diff --git a/BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.cs b/BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.cs index b113e8a..60c62a1 100644 --- a/BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.cs +++ b/BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.cs @@ -77,7 +77,7 @@ namespace BWP.Web.Pages.B3YunKen.Reports list.Add(new Tuple("OrderDate", "订货时间")); list.Add(new Tuple("LoadTime", "发货时间")); list.Add(new Tuple("ArriveTime", "到货时间")); - list.Add(new Tuple("CheckTime", "审核时间")); + list.Add(new Tuple("CheckTime", "验收审核时间")); list.Add(new Tuple("BillType", "业务类型")); list.Add(new Tuple("Department_Name", "部门")); list.Add(new Tuple("CustomerSaleZone_Name", "地区")); @@ -111,6 +111,11 @@ namespace BWP.Web.Pages.B3YunKen.Reports list.Add(new Tuple("OutMoney", "出库金额")); list.Add(new Tuple("CustomerDealer_Name", "经销商")); list.Add(new Tuple("FreightBear", "运费承担方")); + list.Add(new Tuple("DeliveryTime", "预报提货时间")); + list.Add(new Tuple("OrderLoadTime", "订单发货时间")); + list.Add(new Tuple("OutCheckTime", "出库审核时间")); + list.Add(new Tuple("AcceptCheckTime", "验收审核时间")); + var section = mPageLayoutManager.AddSection("显示字段", "显示字段"); section.ApplyLayout(list, mPageLayoutManager); foreach (var item in list) { @@ -317,8 +322,6 @@ B3SaleDataSources.结账客户), s => long.Parse(s)), "AccountCustomer_ID")); layout.Add("CustomerDealer_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["CustomerDealer_ID"], B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); layout["CustomerDealer_ID"].NotAutoAddToContainer = true; - layout.Add("ArriveTime", new SimpleLabel("到货时间"), QueryCreator.DateRange(mDFInfo.Fields["ID"], mQueryContainer, "MinArriveTime", "MaxArriveTime")); - layout["ArriveTime"].NotAutoAddToContainer = true; layout.Add("SaleOutID", new SimpleLabel("出库单号"), _saleout = QueryCreator.DFTextBox(mDFInfo.Fields["ID"])); layout["SaleOutID"].NotAutoAddToContainer = true; @@ -333,11 +336,16 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); layout.Add("BillType", new SimpleLabel("业务类型"), billTypeBox); layout["BillType"].NotAutoAddToContainer = true; + layout.Add("DeliveryTime", new SimpleLabel("预报提货时间"), QueryCreator.DateRange(mDFInfo.Fields["ID"], mQueryContainer, "MinDeliveryTime", "MaxDeliveryTime")); + layout["DeliveryTime"].NotAutoAddToContainer = true; + layout.Add("OrderLoadTime", new SimpleLabel("订单发货时间"), QueryCreator.DateRange(mDFInfo.Fields["ID"], mQueryContainer, "MinOrderLoadTime", "MaxOrderLoadTime")); + layout["OrderLoadTime"].NotAutoAddToContainer = true; + layout.Add("OutCheckTime", new SimpleLabel("出库审核时间"), QueryCreator.DateRange(mDFInfo.Fields["ID"], mQueryContainer, "MinOutCheckTime", "MaxOutCheckTime")); + layout["OutCheckTime"].NotAutoAddToContainer = true; + layout.Add("AcceptCheckTime", new SimpleLabel("验收审核时间"), QueryCreator.DateRange(mDFInfo.Fields["ID"], mQueryContainer, "MinAcceptCheckTime", "MaxAcceptCheckTime")); + layout["AcceptCheckTime"].NotAutoAddToContainer = true; var config = layout.CreateDefaultConfig(4); config.Expand = false; - config.Add("LoadTime"); - config.Add("OrderDate"); - config.Add("CheckTime"); config.Add("Code"); //config.Add("SaleOutID"); //config.Add("ArriveTime"); @@ -377,7 +385,7 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); var goods_Package = new JoinAlias(typeof(Goods_PackagePrice)); var query = new DQueryDom(goods_Package); query.Columns.Add(DQSelectColumn.Field("Goods_ID")); - query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("Price")),"packagePrice")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.Field("Price")),"packagePrice")); query.Columns.Add(DQSelectColumn.Field("AccountingUnit_ID")); query.GroupBy.Expressions.Add(DQExpression.Field("Goods_ID")); query.GroupBy.Expressions.Add(DQExpression.Field("AccountingUnit_ID")); @@ -402,7 +410,8 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); var goodsProperty = new JoinAlias(typeof(GoodsProperty)); var customerCatalo = new JoinAlias(typeof(SaleCustomerCatalog)); var customer2 = new JoinAlias("cus2",typeof(Customer)); - + var order = new JoinAlias(typeof(Order)); + var saleForecast = new JoinAlias(typeof(SaleForecast)); //var salzone = JoinAlias.Create("_9"); //var cus = new JoinAlias(typeof(Customer)); @@ -417,7 +426,8 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); DQCondition.And(DQCondition.EQ(packageData, "Goods_ID", detail, "SaleGoods_ID"), DQCondition.EQ(packageData, "AccountingUnit_ID", main, "AccountingUnit_ID"))); dom.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(goods, "ID", detail, "SaleGoods_ID")); - + dom.From.AddJoin(JoinType.Left, new DQDmoSource(order), DQCondition.EQ(outStore, "Order_ID", order,"ID")); + dom.From.AddJoin(JoinType.Left, new DQDmoSource(saleForecast), DQCondition.EQ(order, "SaleForecast_ID", saleForecast, "ID")); dom.From.AddJoin(JoinType.Left, new DQDmoSource(customer), DQCondition.EQ(main, "Customer_ID", customer, "ID")); dom.From.AddJoin(JoinType.Left, new DQDmoSource(customer2), DQCondition.EQ(main, "CustomerDealer_ID", customer2, "ID")); dom.From.AddJoin(JoinType.Left, new DQDmoSource(salzone), DQCondition.EQ(customer, "SaleZone_ID", salzone, "ID")); @@ -464,6 +474,26 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); dom.GroupBy.Expressions.Add(DQExpression.Snippet("Convert(nvarchar(10),main.LoadTime, 23)")); ColumnNames.Add(item.Text); break; + case "DeliveryTime": + dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(saleForecast, field), item.Text)); + dom.GroupBy.Expressions.Add(DQExpression.Field(saleForecast, field)); + ColumnNames.Add(item.Text); + break; + case "OrderLoadTime": + dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(order, "LoadTime"), item.Text)); + dom.GroupBy.Expressions.Add(DQExpression.Field(order, "LoadTime")); + ColumnNames.Add(item.Text); + break; + case "OutCheckTime": + dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(outStore, "CheckTime"), item.Text)); + dom.GroupBy.Expressions.Add(DQExpression.Field(outStore, "CheckTime")); + ColumnNames.Add(item.Text); + break; + case "AcceptCheckTime": + dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, "CheckTime"), item.Text)); + dom.GroupBy.Expressions.Add(DQExpression.Field(main, "CheckTime")); + ColumnNames.Add(item.Text); + break; case "Code": case "Remark": case "AccountingUnit_Name": @@ -479,7 +509,6 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); case "Store_Name": case "CustomerDealer_Name": case "Customer_Name": - case "CheckTime": case "BillType": dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text)); dom.GroupBy.Expressions.Add(DQExpression.Field(main, field)); @@ -649,14 +678,39 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); if (!_goodsBatch.IsEmpty) { dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(detail, "GoodsBatch_ID"), _goodsBatch.GetValues().Select(x => DQExpression.Value(x)).ToArray())); } - var minArriveTime = mQueryContainer.GetControl("MinArriveTime").Value; - var maxArriveTime = mQueryContainer.GetControl("MaxArriveTime").Value; - if (minArriveTime.HasValue) { - dom.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(outStore, "ArriveTime",minArriveTime )); + var minDeliveryTime = mQueryContainer.GetControl("MinDeliveryTime").Value; + var maxDeliveryTime = mQueryContainer.GetControl("MaxDeliveryTime").Value; + if (minDeliveryTime.HasValue) { + dom.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(saleForecast, "DeliveryTime", minDeliveryTime)); + } + if (maxDeliveryTime.HasValue) { + dom.Where.Conditions.Add(DQCondition.LessThanOrEqual(saleForecast, "DeliveryTime", maxDeliveryTime)); + } + var minOrderLoadTime = mQueryContainer.GetControl("MinOrderLoadTime").Value; + var maxOrderLoadTime = mQueryContainer.GetControl("MaxOrderLoadTime").Value; + if (minOrderLoadTime.HasValue) { + dom.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(order, "LoadTime", minOrderLoadTime)); + } + if (maxOrderLoadTime.HasValue) { + dom.Where.Conditions.Add(DQCondition.LessThanOrEqual(order, "LoadTime", maxOrderLoadTime)); } - if (maxArriveTime.HasValue) { - dom.Where.Conditions.Add(DQCondition.LessThanOrEqual(outStore, "ArriveTime", maxArriveTime)); + var minOutCheckTime = mQueryContainer.GetControl("MinOutCheckTime").Value; + var maxOutCheckTime = mQueryContainer.GetControl("MaxOutCheckTime").Value; + if (minOutCheckTime.HasValue) { + dom.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(outStore, "CheckTime", minOutCheckTime)); } + if (maxOutCheckTime.HasValue) { + dom.Where.Conditions.Add(DQCondition.LessThanOrEqual(outStore, "CheckTime", maxOutCheckTime)); + } + var minAcceptCheckTime = mQueryContainer.GetControl("MinAcceptCheckTime").Value; + var maxAcceptCheckTime = mQueryContainer.GetControl("MaxAcceptCheckTime").Value; + if (minAcceptCheckTime.HasValue) { + dom.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(main, "CheckTime", minAcceptCheckTime)); + } + if (maxAcceptCheckTime.HasValue) { + dom.Where.Conditions.Add(DQCondition.LessThanOrEqual(main, "CheckTime", maxAcceptCheckTime)); + } + if (!_saleout.IsEmpty) { dom.Where.Conditions.Add(DQCondition.EQ(outStore, "ID", long.Parse(_saleout.Text))); diff --git a/BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.xml b/BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.xml index a50a220..9783b93 100644 --- a/BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.xml +++ b/BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.xml @@ -15,30 +15,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/BWP.B3_YunKen.Web/PluginClass.cs b/BWP.B3_YunKen.Web/PluginClass.cs index 2466894..fbe93f0 100644 --- a/BWP.B3_YunKen.Web/PluginClass.cs +++ b/BWP.B3_YunKen.Web/PluginClass.cs @@ -50,6 +50,7 @@ namespace BWP.B3_YunKen.Web GlobalFlags.On(B3FrameworksConsts.GlobalFlags.青花瓷公众号登陆支持验证码); GlobalFlags.On(B3SaleConsts.Flags.SetPriceByBrandItem); GlobalFlags.On(B3UnitedInfosConsts.GlobalFlags.QucklyAddGoodsByBrandItem); + GlobalFlags.On(B3SaleConsts.Flags.ManySaleOutStoreToOneCustomerAccept); WpfPageFactory.RegisterPageOverlay(typeof(OrderEdit).FullName, typeof(OrderEdit_Ext).FullName); WpfPageFactory.RegisterPageOverlay(typeof(SaleOutStoreEdit).FullName, typeof(SaleOutStoreEdit_Ext).FullName); WpfPageFactory.RegisterPageOverlay(typeof(SaleForecastEdit).FullName, typeof(SaleForecastEdit_Ext).FullName);