|
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using System.Text; |
|
|
|
using BWP.B3CowButcherManage.BO; |
|
|
|
using BWP.B3CowButcherManage.Rpcs; |
|
|
|
using BWP.B3Frameworks.Utils; |
|
|
|
using BWP.B3Sale.BO; |
|
|
|
using BWP.B3Sale.Utils; |
|
|
|
@ -68,8 +69,7 @@ namespace BWP.B3CowButcherManageToSale.Rpcs |
|
|
|
var weightRecord = JsonConvert.DeserializeObject<WeightRecord>(json); |
|
|
|
var result = new List<ExtObj>(); |
|
|
|
Tuple<Money<decimal>?, Money<decimal>?> assignInfo; |
|
|
|
var longListExt1 = new List<long?>(); |
|
|
|
var longListExt2 = new List<long?>(); |
|
|
|
var list = new List<string>(); |
|
|
|
using (var session = Dmo.NewSession()) |
|
|
|
{ |
|
|
|
var saleInfo = GetSaleOutInfo(session, detailID); |
|
|
|
@ -80,13 +80,12 @@ namespace BWP.B3CowButcherManageToSale.Rpcs |
|
|
|
{ |
|
|
|
var record = CreateWeightingInfo(detailID, saleInfo, billType, weightRecord.MainUnitNum, weightRecord.SecondNumber, weightRecord.WeightTime, weightRecord.Product_Batch, weightRecord.ID); |
|
|
|
session.Insert(record); |
|
|
|
longListExt1.Add(record.ID); |
|
|
|
var barCodes = GetBarCodeInfo(weightRecord.BarCode); |
|
|
|
foreach (var code in barCodes) |
|
|
|
{ |
|
|
|
var scan = CreateSanDetail(detailID, saleInfo, code.Weight, 1m, weightRecord.ID, record.ID, code.BarCode); |
|
|
|
session.Insert(scan); |
|
|
|
longListExt2.Add(scan.ID); |
|
|
|
list.Add(code.BarCode); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
@ -96,10 +95,9 @@ namespace BWP.B3CowButcherManageToSale.Rpcs |
|
|
|
{ |
|
|
|
var wInfo = CreateWeightingInfo(detailID, saleInfo, billType, code.Weight, 1m, weightRecord.WeightTime, code.Product_Batch, weightRecord.ID); |
|
|
|
session.Insert(wInfo); |
|
|
|
longListExt1.Add(wInfo.ID); |
|
|
|
var scan = CreateSanDetail(detailID, saleInfo, code.Weight, 1m, weightRecord.ID, wInfo.ID, code.BarCode); |
|
|
|
session.Insert(scan); |
|
|
|
longListExt2.Add(scan.ID); |
|
|
|
list.Add(code.BarCode); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -107,16 +105,21 @@ namespace BWP.B3CowButcherManageToSale.Rpcs |
|
|
|
{ |
|
|
|
var record = CreateWeightingInfo(detailID, saleInfo, billType, weightRecord.MainUnitNum, weightRecord.SecondNumber, weightRecord.WeightTime, weightRecord.Product_Batch, weightRecord.ID); |
|
|
|
session.Insert(record); |
|
|
|
longListExt1.Add(record.ID); |
|
|
|
var scan = CreateSanDetail(detailID, saleInfo, weightRecord.MainUnitNum, weightRecord.SecondNumber.Value, weightRecord.ID, record.ID, weightRecord.BarCode); |
|
|
|
session.Insert(scan); |
|
|
|
longListExt2.Add(scan.ID); |
|
|
|
list.Add(weightRecord.BarCode); |
|
|
|
} |
|
|
|
result.Add(new ExtObj { LongExt1 = weightRecord.ID, LongListExt1 = longListExt1, LongListExt2 = longListExt2 }); |
|
|
|
assignInfo = UpdateAssignNumber(session, saleInfo.Item1, detailID); |
|
|
|
UpdateIsAssignGoods(session,true, saleInfo.Item1,list.ToArray()); |
|
|
|
session.Commit(); |
|
|
|
} |
|
|
|
return JsonConvert.SerializeObject(new Tuple<decimal?, decimal?, List<ExtObj>>(assignInfo.Item1.EToDecimal(), assignInfo.Item2.EToDecimal(), result)); |
|
|
|
return JsonConvert.SerializeObject(new Tuple<decimal?, decimal?>(assignInfo.Item1.EToDecimal(), assignInfo.Item2.EToDecimal())); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static void UpdateIsAssignGoods(IDmoSession session, bool isAssignGoods,long? billID,params string[] barCodes) |
|
|
|
{ |
|
|
|
BarCodeProductRpc.UpdateAssignGoodsInfo(session, isAssignGoods,billID, barCodes); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -128,11 +131,12 @@ namespace BWP.B3CowButcherManageToSale.Rpcs |
|
|
|
var weightIDs = GetWeightingInforID(session, detailId, clientId); |
|
|
|
if(weightIDs.Count > 0) |
|
|
|
DeleteByID<WeightingInfor>(session, weightIDs); |
|
|
|
var scanIds = GetScanDetailID(session, detailId, clientId); |
|
|
|
if (scanIds.Count > 0) |
|
|
|
DeleteByID<WeightingInfo_ScanDetail>(session, scanIds); |
|
|
|
var scans = GetScanDetailID(session, detailId, clientId); |
|
|
|
if (scans.Count > 0) |
|
|
|
DeleteByID<WeightingInfo_ScanDetail>(session, scans.Select(x=>x.Item1)); |
|
|
|
var billID = InnerBLUtil.GetDmoPropertyByID<long>(session, typeof(SaleOutStore_Detail), "SaleOutStore_ID", detailId); |
|
|
|
UpdateAssignNumber(session, billID, detailId, false); |
|
|
|
UpdateIsAssignGoods(session, false, null,scans.Select(x => x.Item2).ToArray()); |
|
|
|
session.Commit(); |
|
|
|
} |
|
|
|
return 1; |
|
|
|
@ -148,12 +152,13 @@ namespace BWP.B3CowButcherManageToSale.Rpcs |
|
|
|
return query.EExecuteList<long>(session); |
|
|
|
} |
|
|
|
|
|
|
|
static List<long> GetScanDetailID(IDmoSession session, long detailID, long clientId) |
|
|
|
static List<Tuple<long,string>> GetScanDetailID(IDmoSession session, long detailID, long clientId) |
|
|
|
{ |
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(WeightingInfo_ScanDetail))); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("BarCode")); |
|
|
|
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("ClientID", clientId), DQCondition.EQ("Detail_ID", detailID))); |
|
|
|
return query.EExecuteList<long>(session); |
|
|
|
return query.EExecuteList<long,string>(session); |
|
|
|
} |
|
|
|
|
|
|
|
static void DeleteByID<T>(IDmoSession session, IEnumerable<long> ids) |
|
|
|
|