You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

92 lines
3.3 KiB

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>();
}
}
}