using BO.BO; using BO.BO.BaseInfo; using Forks.JsonRpc.Client; using Forks.JsonRpc.Client.Data; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Script.Serialization; namespace BO.Utils.BillRpc { public static class WeightBillRpc { static JavaScriptSerializer serializer = new JavaScriptSerializer(); public static List GetWeightBillList(long? carID, long? supplierID,DateTime date) { const string method = "/MainSystem/B3ClientService/Rpcs/BillRpc/WeightBillRpc/GetWeightBillList"; var obj = RpcFacade.Call(method, date, carID, supplierID); return serializer.Deserialize>(obj); } public static WeightBill Load(long id) { const string method = "/MainSystem/B3ClientService/Rpcs/BillRpc/WeightBillRpc/Load"; var obj = RpcFacade.Call(method, id); obj = obj.ESerializeDateTime(); return serializer.Deserialize(obj); } public static bool UpdateOrInsert(WeightBill bo, List weightRecord) { const string method = "/MainSystem/B3ClientService/Rpcs/BillRpc/WeightBillRpc/UpdateOrInsert"; if (bo.ID == 0) { bo.Creator = ButcherAppContext.Context.UserConfig.UserName; bo.AccountingUnit_ID = ButcherAppContext.Context.UserConfig.AccountingUnit_ID; bo.Department_ID = ButcherAppContext.Context.UserConfig.Department_ID; } var s = serializer.Serialize(weightRecord); var json = RpcFacade.Call(method, serializer.Serialize(bo), s); var result = serializer.Deserialize(json); bo.ID = result.ID; bo.RowVersion += 1; foreach (var d in result.DetailBack) { switch (d.Flag) { case "Details": foreach (var rd in d.DetailBack) { var idx = Convert.ToInt32(rd.Flag); var first = bo.Details.First(x => !x.DeleteState && x.Index == idx); first.ID = rd.ID; first.WeightBill_ID = bo.ID; } break; case "FarmerDetails": foreach (var rd in d.DetailBack) { var idx = Convert.ToInt32(rd.Flag); var first = bo.FarmerDetails.First(x => !x.DeleteState && x.Index == idx); first.ID = rd.ID; first.WeightBill_ID = bo.ID; } break; } } return true; } public static List GetWeightRecord(long id) { const string method = "/MainSystem/B3ClientService/Rpcs/BillRpc/WeightBillRpc/GetWeightRecord"; var obj = RpcFacade.Call(method, id); obj = obj.ESerializeDateTime(); return serializer.Deserialize>(obj); } public static bool Delete(long id) { const string method = "/MainSystem/B3ClientService/Rpcs/BillRpc/WeightBillRpc/DeleteBill"; return RpcFacade.Call(method, id); } public static List> SyncBillB3Ids(List ids) { const string method = "/MainSystem/B3ClientService/Rpcs/BillRpc/WeightBillRpc/SyncBillB3Ids"; var json = RpcFacade.Call(method, ids.ToArray()); return serializer.Deserialize>>(json); } public static List> SyncBillB3IdsAndSanctionMoney(DateTime date) { const string method = "/MainSystem/B3ClientService/Rpcs/BillRpc/WeightBillRpc/SyncBillB3IdsAndSanctionMoney"; var json = RpcFacade.Call(method, date); return serializer.Deserialize>>(json); } public static PrintWeightBill GetPrintWeightBill(long id) { const string method = "/MainSystem/B3ClientService/Rpcs/BillRpc/WeightBillRpc/GetPrintWeightBill"; var obj = RpcFacade.Call(method, id); obj = obj.ESerializeDateTime(); return serializer.Deserialize(obj); } public static void DoCheck(long id) { const string method = "/MainSystem/B3ClientService/Rpcs/BillRpc/WeightBillRpc/DoCheck"; RpcFacade.Call(method, id, ButcherAppContext.Context.UserConfig.UserName); } public static string GetSupplierBankAccount(long id) { const string method = "/MainSystem/B3ClientService/Rpcs/BillRpc/WeightBillRpc/GetSupplierBankAccount"; return RpcFacade.Call(method, id); } public static Farmer GetFarmerInfo(long id) { const string method = "/MainSystem/B3ClientService/Rpcs/BillRpc/WeightBillRpc/GetFarmerInfo"; return serializer.Deserialize(RpcFacade.Call(method, id)); } } }