|
|
using B3DealerClient.BO;
|
|
|
using Forks.EnterpriseServices.DomainObjects2.DQuery;
|
|
|
using Forks.JsonRpc.Client;
|
|
|
using Newtonsoft.Json;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
using B3DealerClient.Utils;
|
|
|
using Forks.EnterpriseServices.DomainObjects2;
|
|
|
|
|
|
namespace B3DealerClient.BL
|
|
|
{
|
|
|
public static class CarcassInStoreBL
|
|
|
{
|
|
|
const string MethodPath = @"/MainSystem/B3Dealer/Rpcs/PayBillRpc/";
|
|
|
public static List<CarcassInStore> GetDmoList(object condition)
|
|
|
{
|
|
|
var method = MethodPath + "GetPayBillList";
|
|
|
var json = RpcFacade.Call<string>(method, JsonConvert.SerializeObject(condition));
|
|
|
return JsonConvert.DeserializeObject<List<CarcassInStore>>(json);
|
|
|
}
|
|
|
|
|
|
public static List<CarcassInStore_Detail> GetDmoDetailList(long id)
|
|
|
{
|
|
|
var method = MethodPath + "GetPayBillDetails";
|
|
|
var json = RpcFacade.Call<string>(method, id);
|
|
|
var list = JsonConvert.DeserializeObject<List<CarcassInStore_Detail>>(json);
|
|
|
FillAlreadyInfo(list);
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
static void FillAlreadyInfo(List<CarcassInStore_Detail> details)
|
|
|
{
|
|
|
if (details.Count == 0)
|
|
|
return;
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(CarcassInStore_Receive)));
|
|
|
query.Columns.Add(DQSelectColumn.Field("DetailID"));
|
|
|
query.Columns.Add(DQSelectColumn.Sum("NetWeight"));
|
|
|
query.Columns.Add(DQSelectColumn.Sum("Pics"));
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field("DetailID"));
|
|
|
query.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("DetailID"), details.Select(x => DQExpression.Value(x.ID)).ToArray()));
|
|
|
var list = query.EExecuteList<long, decimal, decimal>();
|
|
|
foreach (var item in list)
|
|
|
{
|
|
|
var first = details.First(x => x.ID == item.Item1);
|
|
|
first.AlreadyNumber = item.Item2;
|
|
|
first.AlreadySecondNumber = item.Item3;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static IEnumerable<CarcassInStore_Receive> GetDetailReceive(long detailID)
|
|
|
{
|
|
|
var query = new DmoQuery(typeof(CarcassInStore_Receive));
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("DetailID", detailID));
|
|
|
return query.EExecuteList().Cast<CarcassInStore_Receive>();
|
|
|
}
|
|
|
|
|
|
public static IEnumerable<CarcassInStore_Receive> GetBillReceive(long mainID)
|
|
|
{
|
|
|
var query = new DmoQuery(typeof(CarcassInStore_Receive));
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("MainID", mainID));
|
|
|
return query.EExecuteList().Cast<CarcassInStore_Receive>();
|
|
|
}
|
|
|
|
|
|
public static void InsertRecord(CarcassInStore_Receive record)
|
|
|
{
|
|
|
using (var session = DmoSession.New())
|
|
|
{
|
|
|
session.Insert(record);
|
|
|
session.Commit();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void Delete(long id)
|
|
|
{
|
|
|
var del = new DQDeleteDom(typeof(CarcassInStore_Receive));
|
|
|
del.Where.Conditions.Add(DQCondition.EQ("ID", id));
|
|
|
del.EExecute();
|
|
|
}
|
|
|
|
|
|
public static long FinishInStore(long id,long inStoreID)
|
|
|
{
|
|
|
var target = GetBillReceive(id);
|
|
|
|
|
|
return RpcFacade.Call<long>(MethodPath + "FinishInStore", JsonConvert.SerializeObject(target), inStoreID);
|
|
|
}
|
|
|
}
|
|
|
}
|