diff --git a/BWP.B3_YunKen/TypeIoc/SaleForecastBeforeSaveTypeIoc.cs b/BWP.B3_YunKen/TypeIoc/SaleForecastBeforeSaveTypeIoc.cs index 8f843ff..6af3753 100644 --- a/BWP.B3_YunKen/TypeIoc/SaleForecastBeforeSaveTypeIoc.cs +++ b/BWP.B3_YunKen/TypeIoc/SaleForecastBeforeSaveTypeIoc.cs @@ -12,6 +12,7 @@ using Forks.EnterpriseServices.DomainObjects2; using Forks.EnterpriseServices.DomainObjects2.DQuery; using Forks.Utils; using TSingSoft.WebPluginFramework; +using Forks.EnterpriseServices.SqlDoms; namespace BWP.B3_YunKen.TypeIoc { @@ -24,7 +25,7 @@ namespace BWP.B3_YunKen.TypeIoc foreach (var detail in dmo.Details) { - var list = GetGoods_PackageCount(detail.SaleGoods_ID); + var list = GetGoods_PackageCount(detail.SaleGoods_ID,dmo.AccountingUnit_ID); if (list.Count <= 0) { string msg = "存货【" + detail.Goods_Name + "】没有在【产品包装物设置】界面设置包装物"; @@ -35,19 +36,41 @@ namespace BWP.B3_YunKen.TypeIoc + ////根据存货查找【包装物设置】中对应的存货设置 + //private List> GetGoods_PackageCount(long? goodID) + //{ + // var main = new JoinAlias(typeof(Goods_Package)); + + // var query = new DQueryDom(main); + + // query.Columns.Add(DQSelectColumn.Field("Package_ID", main)); + // query.Columns.Add(DQSelectColumn.Create(DQExpression.Count(), "Count")); + // query.GroupBy.Expressions.Add(DQExpression.Field(main, "Package_ID")); + + // query.Where.Conditions.Add(DQCondition.EQ(main, "Goods_ID", goodID)); + // //query.Where.Conditions.Add(DQCondition.EQ(main, "Stopped", 0)); + + + // return query.EExecuteList(); + //} + + //根据存货查找【包装物设置】中对应的存货设置 - private List> GetGoods_PackageCount(long? goodID) + private List> GetGoods_PackageCount(long? goodID, long? accID) { - var main = new JoinAlias(typeof(Goods_Package)); + var gpackage = new JoinAlias(typeof(Goods_Package)); + var package = new JoinAlias(typeof(Wrappage)); + + var query = new DQueryDom(gpackage); - var query = new DQueryDom(main); + query.From.AddJoin(JoinType.Left, new DQDmoSource(package), DQCondition.EQ(package, "ID", gpackage, "Package_ID")); - query.Columns.Add(DQSelectColumn.Field("Package_ID", main)); + query.Columns.Add(DQSelectColumn.Field("Package_ID", gpackage)); query.Columns.Add(DQSelectColumn.Create(DQExpression.Count(), "Count")); - query.GroupBy.Expressions.Add(DQExpression.Field(main, "Package_ID")); + query.GroupBy.Expressions.Add(DQExpression.Field(gpackage, "Package_ID")); - query.Where.Conditions.Add(DQCondition.EQ(main, "Goods_ID", goodID)); - //query.Where.Conditions.Add(DQCondition.EQ(main, "Stopped", 0)); + query.Where.Conditions.Add(DQCondition.EQ(gpackage, "Goods_ID", goodID)); + query.Where.Conditions.Add(DQCondition.EQ(package, "AccountingUnit_ID", accID)); return query.EExecuteList(); diff --git a/BWP.B3_YunKen/TypeIoc/SaleOutStoreBeforeSaveTypeIoc.cs b/BWP.B3_YunKen/TypeIoc/SaleOutStoreBeforeSaveTypeIoc.cs index d1498cf..b9ffecd 100644 --- a/BWP.B3_YunKen/TypeIoc/SaleOutStoreBeforeSaveTypeIoc.cs +++ b/BWP.B3_YunKen/TypeIoc/SaleOutStoreBeforeSaveTypeIoc.cs @@ -6,6 +6,7 @@ using BWP.B3Sale.BO; using Forks.EnterpriseServices.BusinessInterfaces; using Forks.EnterpriseServices.DomainObjects2; using Forks.EnterpriseServices.DomainObjects2.DQuery; +using Forks.EnterpriseServices.SqlDoms; using Forks.Utils; using System; using System.Collections.Generic; @@ -20,10 +21,10 @@ namespace BWP.B3_YunKen.TypeIoc { public void Invoke(IDmoContext context, SaleOutStore dmo) { - + foreach (var detail in dmo.Details) { - var list=GetGoods_PackageCount(detail.SaleGoods_ID); + var list = GetGoods_PackageCount(detail.SaleGoods_ID, dmo.AccountingUnit_ID); if (list.Count <= 0) { string msg = "存货【" + detail.Goods_Name + "】没有在【产品包装物设置】界面设置包装物"; @@ -35,18 +36,21 @@ namespace BWP.B3_YunKen.TypeIoc //根据存货查找【包装物设置】中对应的存货设置 - private List> GetGoods_PackageCount(long? goodID) + private List> GetGoods_PackageCount(long? goodID, long? accID) { - var main = new JoinAlias(typeof(Goods_Package)); + var gpackage = new JoinAlias(typeof(Goods_Package)); + var package = new JoinAlias(typeof(Wrappage)); + + var query = new DQueryDom(gpackage); - var query = new DQueryDom(main); + query.From.AddJoin(JoinType.Left, new DQDmoSource(package), DQCondition.EQ(package, "ID", gpackage, "Package_ID")); - query.Columns.Add(DQSelectColumn.Field("Package_ID", main)); + query.Columns.Add(DQSelectColumn.Field("Package_ID", gpackage)); query.Columns.Add(DQSelectColumn.Create(DQExpression.Count(), "Count")); - query.GroupBy.Expressions.Add(DQExpression.Field(main, "Package_ID")); + query.GroupBy.Expressions.Add(DQExpression.Field(gpackage, "Package_ID")); - query.Where.Conditions.Add(DQCondition.EQ(main, "Goods_ID", goodID)); - //query.Where.Conditions.Add(DQCondition.EQ(main, "Stopped", 0)); + query.Where.Conditions.Add(DQCondition.EQ(gpackage, "Goods_ID", goodID)); + query.Where.Conditions.Add(DQCondition.EQ(package, "AccountingUnit_ID", accID)); return query.EExecuteList();