diff --git a/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Reports/OutputToSaleOutDiff_/OutputToSaleOutDiff.cs b/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Reports/OutputToSaleOutDiff_/OutputToSaleOutDiff.cs index d88e0e9..5165d91 100644 --- a/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Reports/OutputToSaleOutDiff_/OutputToSaleOutDiff.cs +++ b/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Reports/OutputToSaleOutDiff_/OutputToSaleOutDiff.cs @@ -15,6 +15,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.UI; +using System.Web.UI.WebControls; using TSingSoft.WebControls2; using TSingSoft.WebPluginFramework; @@ -38,6 +39,7 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Reports.OutputToSaleOutDiff_ queryPanel.ConditonPanel.EAdd(CreateDataRangePanel()); } + DFDropDownList stateDp; HLayoutPanel CreateDataRangePanel() { var hPanel = new HLayoutPanel(); @@ -45,6 +47,13 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Reports.OutputToSaleOutDiff_ hPanel.Add(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ID"], mQueryContainer, "Store_ID", B3FrameworksConsts.DataSources.授权仓库全部)); hPanel.Add(new LiteralControl("*日期:")); hPanel.Add(QueryCreator.DateRange(mDFInfo.Fields["Date"], mQueryContainer, "MinDate", "MaxDate", DateTime.Today, DateTime.Today + new TimeSpan(23, 59, 29))); + hPanel.Add(new LiteralControl("存货属性:")); + hPanel.Add(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ID"], mQueryContainer, "GoodsProperty_Catalog_ID", B3UnitedInfos.B3UnitedInfosConsts.DataSources.存货属性分类全部)); + hPanel.Add(new LiteralControl("单据状态:")); + stateDp = hPanel.Add(new DFDropDownList() { Width = Unit.Pixel(80) }); + stateDp.Items.Add(""); + stateDp.Items.Add(new ListItem("未审核", "0")); + stateDp.Items.Add(new ListItem("已审核", "20")); return hPanel; } @@ -53,6 +62,10 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Reports.OutputToSaleOutDiff_ var minInput = mQueryContainer.GetControl("MinDate"); var maxInput = mQueryContainer.GetControl("MaxDate"); var storeInput = mQueryContainer.GetControl("Store_ID"); + var gpc = mQueryContainer.GetControl("GoodsProperty_Catalog_ID"); + int? billState = null; + if (stateDp.SelectedIndex > 0) + billState = int.Parse(stateDp.SelectedValue); if (minInput.IsEmpty) throw new Exception("请选择开始日期"); if (maxInput.IsEmpty) @@ -63,7 +76,7 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Reports.OutputToSaleOutDiff_ var main = new JoinAlias(typeof(UnionTemp)); var goods = new JoinAlias(typeof(Goods)); var query = new DQueryDom(main); - UnionTemp.Register(query, minInput.Date, maxInput.Date, storeInput.GetValues().Select(x => long.Parse(x))); + UnionTemp.Register(query, minInput.Date, maxInput.Date, billState, storeInput.GetValues().Select(x => long.Parse(x))); query.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(main, "Goods_ID", goods, "ID")); query.Columns.Add(DQSelectColumn.Field("Code", goods, "编码")); query.Columns.Add(DQSelectColumn.Field("Name", goods, "名称")); @@ -90,6 +103,8 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Reports.OutputToSaleOutDiff_ query.GroupBy.Expressions.Add(DQExpression.Field(goods, "Spec")); query.GroupBy.Expressions.Add(DQExpression.Field(goods, "MainUnit")); query.GroupBy.Expressions.Add(DQExpression.Field(goods, "SecondUnit")); + if (!gpc.IsEmpty) + query.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(goods, "GoodsPropertyCatalog_ID"), gpc.GetValues().Select(x => DQExpression.Value(long.Parse(x))).ToArray())); return query; } @@ -103,15 +118,15 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Reports.OutputToSaleOutDiff_ public Money? OutUnitNum { get; set; } public Money? OutSecondNumber { get; set; } - public static void Register(DQueryDom root, DateTime minDate, DateTime maxDate, IEnumerable storeID) + public static void Register(DQueryDom root, DateTime minDate, DateTime maxDate, int? billState, IEnumerable storeID) { - var query = GetSaleOutStore(minDate, maxDate, storeID); + var query = GetSaleOutStore(minDate, maxDate, billState, storeID); query.UnionNext.Select = GetOutput(minDate, maxDate); OrganizationUtil.RegisterOrganizationQueryTable(root); root.RegisterQueryTable(typeof(UnionTemp), new string[] { "Goods_ID", "UnitNum", "SecondNumber", "OutUnitNum", "OutSecondNumber" }, query); } - static DQueryDom GetSaleOutStore(DateTime minDate, DateTime maxDate, IEnumerable storeID) + static DQueryDom GetSaleOutStore(DateTime minDate, DateTime maxDate, int? billState, IEnumerable storeID) { var main = new JoinAlias(typeof(SaleOutStore)); var detail = new JoinAlias(typeof(SaleOutStore_Detail)); @@ -122,7 +137,11 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Reports.OutputToSaleOutDiff_ query.Columns.Add(DQSelectColumn.Field("SecondNumber", detail)); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "OutUnitNum")); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "OutSecondNumber")); - query.Where.Conditions.Add(DQCondition.And(DQCondition.Between("LoadTime", minDate, maxDate), DQCondition.InList(DQExpression.Field("Store_ID"), storeID.Select(x => DQExpression.Value(x)).ToArray()), DQCondition.EQ("BillState", 单据状态.未审核))); + query.Where.Conditions.Add(DQCondition.And(DQCondition.Between("LoadTime", minDate, maxDate), DQCondition.InList(DQExpression.Field("Store_ID"), storeID.Select(x => DQExpression.Value(x)).ToArray()))); + if (billState.HasValue) + query.Where.Conditions.Add(DQCondition.EQ("BillState", billState)); + else + query.Where.Conditions.Add(DQCondition.InEQ("BillState", 单据状态.已作废)); OrganizationUtil.AddOrganizationLimit(query, typeof(SaleOutStore)); return query; }