diff --git a/B3CowButcherManageToSale/Rpcs/SaleOutStoreRpc.cs b/B3CowButcherManageToSale/Rpcs/SaleOutStoreRpc.cs index 090afb6..43846eb 100644 --- a/B3CowButcherManageToSale/Rpcs/SaleOutStoreRpc.cs +++ b/B3CowButcherManageToSale/Rpcs/SaleOutStoreRpc.cs @@ -5,6 +5,7 @@ using System.Text; using BWP.B3CowButcherManage.BO; using BWP.B3Frameworks.Utils; using BWP.B3Sale.BO; +using BWP.B3Sale.Utils; using Forks.EnterpriseServices.DomainObjects2; using Forks.EnterpriseServices.DomainObjects2.DQuery; using Forks.EnterpriseServices.JsonRpc; @@ -162,28 +163,30 @@ namespace BWP.B3CowButcherManageToSale.Rpcs session.ExecuteNonQuery(delete); } - private static Tuple?, Money?> UpdateAssignNumber(IDmoSession session, long billID, long detailID, bool isAdd = true) - { - var weightingInfo = GetWeightingInfor(session, detailID); - - var update = new DQUpdateDom(typeof(SaleOutStore_Detail)); - update.Columns.Add(new DQUpdateColumn("AssignUnitNum", DQExpression.Value(weightingInfo.Item1))); - update.Columns.Add(new DQUpdateColumn("AssignMainUnitNum", DQExpression.Value(weightingInfo.Item1))); - update.Columns.Add(new DQUpdateColumn("AssignSecondaryUnit1Num", DQExpression.Value(weightingInfo.Item2))); - if (isAdd) - update.Columns.Add(new DQUpdateColumn("PackageNum", DQExpression.Add(DQExpression.IfNull(DQExpression.Field("PackageNum"), DQExpression.Value(0)), DQExpression.Value(1)))); - else - update.Columns.Add(new DQUpdateColumn("PackageNum", DQExpression.Add(DQExpression.IfNull(DQExpression.Field("PackageNum"), DQExpression.Value(0)), DQExpression.Value(-1)))); - update.Where.Conditions.Add(DQCondition.EQ("ID", detailID)); - session.ExecuteNonQuery(update); - - var update2 = new DQUpdateDom(typeof(SaleOutStore)); - update2.Columns.Add(new DQUpdateColumn("RowVersion", DQExpression.Add(DQExpression.Field("RowVersion"), DQExpression.Value(1)))); - update2.Where.Conditions.Add(DQCondition.EQ("ID", billID)); - session.ExecuteNonQuery(update2); + private static Tuple?, Money?> UpdateAssignNumber(IDmoSession session, long billID, long detailID, bool isAdd = true) + { + var weightingInfo = GetWeightingInfor(session, detailID); + var assigning = true; + if (weightingInfo.Item1 == null || weightingInfo.Item1 <= 0) + assigning = false; + var update = new DQUpdateDom(typeof(SaleOutStore_Detail)); + update.Columns.Add(new DQUpdateColumn("AssignUnitNum", DQExpression.Value(weightingInfo.Item1))); + update.Columns.Add(new DQUpdateColumn("AssignMainUnitNum", DQExpression.Value(weightingInfo.Item1))); + update.Columns.Add(new DQUpdateColumn("AssignSecondaryUnit1Num", DQExpression.Value(weightingInfo.Item2))); + if (isAdd) + update.Columns.Add(new DQUpdateColumn("PackageNum", DQExpression.Add(DQExpression.IfNull(DQExpression.Field("PackageNum"), DQExpression.Value(0)), DQExpression.Value(1)))); + else + update.Columns.Add(new DQUpdateColumn("PackageNum", DQExpression.Add(DQExpression.IfNull(DQExpression.Field("PackageNum"), DQExpression.Value(0)), DQExpression.Value(-1)))); + update.Where.Conditions.Add(DQCondition.EQ("ID", detailID)); + session.ExecuteNonQuery(update); - return weightingInfo; - } + var update2 = new DQUpdateDom(typeof(SaleOutStore)); + update2.Columns.Add(new DQUpdateColumn("RowVersion", DQExpression.Add(DQExpression.Field("RowVersion"), DQExpression.Value(1)))); + update2.Columns.Add(new DQUpdateColumn("AssignState", assigning ? DQExpression.Value(配货状态.正在配货) : DQExpression.Value(配货状态.未配货))); + update2.Where.Conditions.Add(DQCondition.EQ("ID", billID)); + session.ExecuteNonQuery(update2); + return weightingInfo; + } static Tuple?, Money?> GetWeightingInfor(IDmoSession session, long detailID) {