Browse Source

已经配货的条码不能二次配货

master
wugang 7 years ago
parent
commit
d353a52eb5
1 changed files with 20 additions and 15 deletions
  1. +20
    -15
      B3CowButcherManageToSale/Rpcs/SaleOutStoreRpc.cs

+ 20
- 15
B3CowButcherManageToSale/Rpcs/SaleOutStoreRpc.cs View File

@ -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)


Loading…
Cancel
Save