|
|
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 CarcassSaleOutBL
|
|
|
{
|
|
|
const string MethodPath = @"/MainSystem/B3Dealer/Rpcs/SaleOutStoreRpc/";
|
|
|
public static List<CarcassSaleOut> GetDmoList(object condition)
|
|
|
{
|
|
|
var method = MethodPath + "GetSaleOutStoreList";
|
|
|
var json = RpcFacade.Call<string>(method, JsonConvert.SerializeObject(condition));
|
|
|
var list = JsonConvert.DeserializeObject<List<CarcassSaleOut>>(json);
|
|
|
FillAlreadyInfo(list);
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
private static void FillAlreadyInfo(List<CarcassSaleOut> list)
|
|
|
{
|
|
|
if (list.Count == 0)
|
|
|
return;
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(CarcassSaleOut_Record)));
|
|
|
query.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("DetailID"), list.Select(x => DQExpression.Value(x.DetailID)).ToArray()));
|
|
|
query.Columns.Add(DQSelectColumn.Field("DetailID"));
|
|
|
query.Columns.Add(DQSelectColumn.Sum("NetWeight"));
|
|
|
query.Columns.Add(DQSelectColumn.Sum("SecondNumber"));
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field("DetailID"));
|
|
|
var records = query.EExecuteList<long, decimal, decimal>();
|
|
|
foreach (var item in records)
|
|
|
{
|
|
|
var f = list.First(x => x.DetailID == item.Item1);
|
|
|
f.AlreadyNumber = item.Item2;
|
|
|
f.AlreadySecondNumber = item.Item3;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static List<CustomerObj> GetCustomers(object condition)
|
|
|
{
|
|
|
var method = MethodPath + "GetCustomers";
|
|
|
var json = RpcFacade.Call<string>(method, JsonConvert.SerializeObject(condition));
|
|
|
return JsonConvert.DeserializeObject<List<CustomerObj>>(json);
|
|
|
}
|
|
|
|
|
|
public static IEnumerable<CarcassSaleOut_Record> GetDetailRecords(long detailID)
|
|
|
{
|
|
|
var query = new DmoQuery(typeof(CarcassSaleOut_Record));
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("DetailID", detailID));
|
|
|
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
|
|
|
return query.EExecuteList().Cast<CarcassSaleOut_Record>();
|
|
|
}
|
|
|
|
|
|
public static void Delete(long id)
|
|
|
{
|
|
|
var del = new DQDeleteDom(typeof(CarcassSaleOut_Record));
|
|
|
del.Where.Conditions.Add(DQCondition.EQ("ID", id));
|
|
|
del.EExecute();
|
|
|
}
|
|
|
|
|
|
public static void InsertRecord(CarcassSaleOut_Record record)
|
|
|
{
|
|
|
using (var session = DmoSession.New())
|
|
|
{
|
|
|
session.Insert(record);
|
|
|
session.Commit();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void FinishAssign(long id)
|
|
|
{
|
|
|
var target = GetBillRecords(id);
|
|
|
|
|
|
RpcFacade.Call<int>(MethodPath + "FinishAssign", JsonConvert.SerializeObject(target), id);
|
|
|
}
|
|
|
|
|
|
public static IEnumerable<CarcassSaleOut_Record> GetBillRecords(long billID)
|
|
|
{
|
|
|
var query = new DmoQuery(typeof(CarcassSaleOut_Record));
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("MainID", billID));
|
|
|
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
|
|
|
return query.EExecuteList().Cast<CarcassSaleOut_Record>();
|
|
|
}
|
|
|
}
|
|
|
}
|