From 06dada82eadf39b1d4d1132d613bd64490b41a21 Mon Sep 17 00:00:00 2001
From: yibo <361071264@qq.com>
Date: Tue, 25 Sep 2018 20:43:55 +0800
Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=8C=B9=E9=85=8D=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../B3ButcherManageToSale.Web.csproj | 7 +
.../Overlays/OrderInfo.cs | 177 ++++++++++++++++++
.../Overlays/OrderMatchPage.cs | 175 ++++++++++++++++-
.../Overlays/OrderMatchPage.xml | 8 -
.../Overlays/StoreDetailPage.cs | 104 ++++++++++
B3ButcherManageToSale.Web/PluginClass.cs | 1 +
6 files changed, 457 insertions(+), 15 deletions(-)
create mode 100644 B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderInfo.cs
create mode 100644 B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/StoreDetailPage.cs
diff --git a/B3ButcherManageToSale.Web/B3ButcherManageToSale.Web.csproj b/B3ButcherManageToSale.Web/B3ButcherManageToSale.Web.csproj
index 4517f8a..f306775 100644
--- a/B3ButcherManageToSale.Web/B3ButcherManageToSale.Web.csproj
+++ b/B3ButcherManageToSale.Web/B3ButcherManageToSale.Web.csproj
@@ -72,6 +72,7 @@
+
@@ -99,12 +100,18 @@
ASPXCodeBehind
+
+ ASPXCodeBehind
+
ASPXCodeBehind
ASPXCodeBehind
+
+ ASPXCodeBehind
+
ASPXCodeBehind
diff --git a/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderInfo.cs b/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderInfo.cs
new file mode 100644
index 0000000..f2a6426
--- /dev/null
+++ b/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderInfo.cs
@@ -0,0 +1,177 @@
+using BWP.B3Frameworks;
+using BWP.B3Frameworks.BO.NamedValueTemplate;
+using BWP.B3Frameworks.Utils;
+using BWP.B3Sale.BO;
+using BWP.Web.WebControls;
+using Forks.EnterpriseServices.DataForm;
+using Forks.EnterpriseServices.DomainObjects2;
+using Forks.EnterpriseServices.DomainObjects2.DQuery;
+using Forks.EnterpriseServices.SqlDoms;
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Web.UI.HtmlControls;
+using System.Web.UI.WebControls;
+using TSingSoft.WebControls2;
+using TSingSoft.WebPluginFramework.Controls;
+using TSingSoft.WebPluginFramework.Pages;
+
+namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
+{
+ class OrderInfo : ServerPage
+ {
+ long? AccountingUnitID
+ {
+ get
+ {
+ var str = Request.QueryString["AccountingUnitID"];
+ if (string.IsNullOrEmpty(str))
+ return null;
+ return long.Parse(str);
+ }
+ }
+
+ long? DepartmentID
+ {
+ get
+ {
+ var str = Request.QueryString["DepartmentID"];
+ if (string.IsNullOrEmpty(str))
+ return null;
+ return long.Parse(str);
+ }
+ }
+
+ long? ProductAvgWeightSet_ID
+ {
+ get
+ {
+ var str = Request.QueryString["ID"];
+ if (string.IsNullOrEmpty(str))
+ return null;
+ return long.Parse(str);
+ }
+ }
+
+ DateTime Date
+ {
+ get { return DateTime.Parse(Request.QueryString["Date"]); }
+ }
+
+ protected override void InitForm(HtmlForm form)
+ {
+ form.EAdd(new PageTitle("订货明细"));
+ CreateToolBox(form.EAdd(new Panel()));
+ CreateBrowseGrid(form.EAdd(new TitlePanel("明细详情")));
+ }
+
+ LinkButton bt1, bt2;
+ private void CreateToolBox(Panel panel)
+ {
+ panel.CssClass = "FilterTree";
+ panel.Style.Add("margin-left", "20px");
+ var hPanel = panel.EAdd(new HLayoutPanel());
+ hPanel.CssClass = "FilterTree_Table_HLayout";
+ bt1 = hPanel.Add(new LinkButton() { Text = "存货汇总" });
+ bt1.CssClass = "FilterTree";
+ bt1.Click += delegate
+ {
+ StartQuery(true);
+ };
+
+ bt2 = hPanel.Add(new LinkButton() { Text = "客户明细" });
+ bt2.CssClass = "FilterTree";
+ bt2.Click += delegate
+ {
+ StartQuery(false);
+ };
+ }
+
+ DFBrowseGrid mGrid;
+ private void CreateBrowseGrid(TitlePanel titlePanel)
+ {
+ mGrid = titlePanel.EAdd(new DFBrowseGrid(new DFDataTableEditor()) { Width = Unit.Percentage(100), EnableRowsGroup = true });
+ mGrid.Columns.Add(new DFBrowseGridAutoColumn());
+ }
+
+ void StartQuery(bool byGoods)
+ {
+ if (byGoods)
+ {
+ bt1.CssClass = "FilterTreeSelected";
+ bt2.CssClass = "FilterTree";
+ }
+ else
+ {
+ bt2.CssClass = "FilterTreeSelected";
+ bt1.CssClass = "FilterTree";
+ }
+ mGrid.Reset();
+ SumColumnIndex.Clear();
+ var args = new LoadArguments(GetQueryDom(byGoods));
+ foreach (var idx in SumColumnIndex)
+ args.SumColumns.Add(idx);
+ mGrid.LoadArguments = args;
+ mGrid.DataBind();
+ }
+
+ List SumColumnIndex
+ {
+ get
+ {
+ if (ViewState["sc"] == null)
+ ViewState["sc"] = new List();
+ return (List)ViewState["sc"];
+ }
+ }
+
+ DQueryDom GetQueryDom(bool byGoods)
+ {
+ var main = new JoinAlias(typeof(Order));
+ var detail = new JoinAlias(typeof(Order_Detail));
+ var temp = new JoinAlias(typeof(ProductAvgWeightSetTemp));
+ var query = new DQueryDom(main);
+ ProductAvgWeightSetTemp.Register(query);
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "Order_ID"));
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(temp), DQCondition.EQ(detail, "SaleGoods_ID", temp, "Goods_ID"));
+
+ //按存货:存货、订货数量
+ //按客户:客户、存货、订货数量
+ if (!byGoods)
+ {
+ query.Columns.Add(DQSelectColumn.Field("Customer_Name"));
+ query.GroupBy.Expressions.Add(DQExpression.Field("Customer_Name"));
+ query.GroupBy.Expressions.Add(DQExpression.Field("Customer_ID"));
+ query.OrderBy.Expressions.Add(DQOrderByExpression.Create("Customer_ID"));
+ }
+ query.Columns.Add(DQSelectColumn.Field("Goods_Name", detail));
+ query.Columns.Add(DQSelectColumn.Field("Goods_Code", detail));
+ query.Columns.Add(DQSelectColumn.Sum(detail, "UnitNum"));
+ SumColumnIndex.Add(query.Columns.Count - 1);
+ query.Columns.Add(DQSelectColumn.Field("Unit", detail));
+ query.Columns.Add(DQSelectColumn.Sum(detail, "SecondNumber"));
+ SumColumnIndex.Add(query.Columns.Count - 1);
+ query.Columns.Add(DQSelectColumn.Field("Goods_SecondUnit", detail));
+
+ query.GroupBy.Expressions.Add(DQExpression.Field(detail, "Goods_Name"));
+ query.GroupBy.Expressions.Add(DQExpression.Field(detail, "Goods_Code"));
+ query.GroupBy.Expressions.Add(DQExpression.Field(detail, "Unit"));
+ query.GroupBy.Expressions.Add(DQExpression.Field(detail, "Goods_SecondUnit"));
+
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Domain_ID", DomainContext.Current.ID), DQCondition.Or(DQCondition.EQ("BillState", 单据状态.已审核), DQCondition.EQ("IsLocked", true))));
+ query.Where.Conditions.Add(DQCondition.Between("LoadTime", Date, Date + new TimeSpan(23, 59, 59)));
+ if (AccountingUnitID.HasValue)
+ query.Where.Conditions.Add(DQCondition.EQ("AccountingUnit_ID", AccountingUnitID));
+ if (DepartmentID.HasValue)
+ query.Where.Conditions.Add(DQCondition.EQ("Department_ID", DepartmentID));
+ if (ProductAvgWeightSet_ID.HasValue)
+ query.Where.Conditions.Add(DQCondition.EQ(temp, "ProductAvgWeightSet_ID", ProductAvgWeightSet_ID));
+ else
+ query.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field(temp, "ProductAvgWeightSet_ID")));
+
+ return query;
+ }
+ }
+}
diff --git a/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderMatchPage.cs b/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderMatchPage.cs
index d8ba358..2ea3be3 100644
--- a/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderMatchPage.cs
+++ b/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderMatchPage.cs
@@ -1,18 +1,27 @@
-using BWP.B3Frameworks;
+using BWP.B3ButcherManage.BO;
+using BWP.B3Frameworks;
+using BWP.B3Frameworks.BO;
+using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.B3Frameworks.Utils;
using BWP.B3Sale.BO;
+using BWP.B3UnitedInfos.BO;
using BWP.Web.Layout;
using BWP.Web.Utils;
using BWP.Web.WebControls;
using Forks.EnterpriseServices.DataForm;
+using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
+using Forks.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using System.Web;
+using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using TSingSoft.WebControls2;
+using TSingSoft.WebPluginFramework;
namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
{
@@ -28,44 +37,196 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
}
DFBrowseGrid _browseGrid;
+ string rootPath = "~/B3ButcherManageToSale/Overlays/";
protected override void InitForm(System.Web.UI.HtmlControls.HtmlForm form)
{
base.InitForm(form);
CreateQueryPanel(form.EAdd(new VLayoutPanel()));
CreateResultPanel(form.EAdd(new TitlePanel("查询结果")));
+ _browseGrid.OnDetailDataBound = (tr, obj, index) =>
+ {
+ var row = obj as DFDataRow;
+ var gid = string.Format("{0}", row["ID"]);
+
+ var url = BuildUrl("OrderInfo.aspx", gid);
+ SetCellAtt(tr.Cells[1], url, "订货明细");
+
+ url = rootPath + "StoreDetailPage.aspx";
+ url = AspUtil.AddParamToUrl(url, "ID", gid);
+ SetCellAtt(tr.Cells[3], WpfPageUrl.ToGlobal(url), "库存明细");
+ };
+ }
+
+ string BuildUrl(string url, string pawsID)
+ {
+ url = rootPath + url;
+ url = AspUtil.AddParamToUrl(url, "AccountingUnitID", mQueryContainer.GetControl("AccountingUnit_ID").Value);
+ url = AspUtil.AddParamToUrl(url, "DepartmentID", mQueryContainer.GetControl("Department_ID").Value);
+ url = AspUtil.AddParamToUrl(url, "Date", HttpUtility.UrlEncode(mQueryContainer.GetControl("LoadTime").Date.ToString("yyyy/MM/dd")));
+ url = AspUtil.AddParamToUrl(url, "ID", pawsID);
+ return WpfPageUrl.ToGlobal(url);
}
+ void SetCellAtt(HtmlTableCell cell, string url, string title)
+ {
+ cell.Attributes["onclick"] = "OpenUrlInTopTab('" + url + "','" + title + "');";
+ cell.Style.Add("color", "blue");
+ cell.Style.Add("text-decoration", "underline");
+ cell.Style.Add("cursor", "pointer");
+ }
+
+ TSButton createBt;
private void CreateQueryPanel(VLayoutPanel panel)
{
var manager = new LayoutManager("", _dFInfo, mQueryContainer);
manager.Add("AccountingUnit_ID", QueryCreator.DFChoiceBox(_dFInfo.Fields["AccountingUnit_ID"], B3FrameworksConsts.DataSources.授权会计单位全部));
manager.Add("Department_ID", QueryCreator.DFChoiceBox(_dFInfo.Fields["Department_ID"], B3FrameworksConsts.DataSources.授权部门全部));
- manager.Add("LoadTime", QueryCreator.TimeRange(_dFInfo.Fields["LoadTime"], mQueryContainer, "MinLoadTime", "MaxLoadTime", DateTime.Today, DateTime.Today + new TimeSpan(23, 59, 59)));
+ var d = manager.Add("LoadTime", new DFDateInput(_dFInfo.Fields["LoadTime"]));
+ d.Date = DateTime.Today;
var config = manager.CreateDefaultConfig(6);
config.Expand = false;
- panel.Add(manager.CreateLayout());
+ panel.Add(manager.CreateLayout(), new VLayoutOption(HorizontalAlign.Left));
var hPanel = panel.Add(new HLayoutPanel(), new VLayoutOption(HorizontalAlign.Left));
hPanel.Add(new TSButton("查询", delegate
{
StartQuery();
+ if (!createBt.Enabled)
+ createBt.Enabled = true;
}));
}
private void CreateResultPanel(TitlePanel titlePanel)
{
- _browseGrid = new DFBrowseGrid(new DFDataTableEditor()) { Width = Unit.Percentage(100) };
- _browseGrid.Columns.Add(new DFBrowseGridAutoColumn());
+ _browseGrid = titlePanel.EAdd(new DFBrowseGrid(new DFDataTableEditor()) { Width = Unit.Percentage(100) });
+ _browseGrid.Columns.Add(new DFBrowseGridAutoColumn("ID"));
+ createBt = titlePanel.EAdd(new TSButton("创建缺货/剩货单", delegate { }) { Enabled = false });
}
private void StartQuery()
{
-
+ _browseGrid.Query = GetQueryDom();
+ _browseGrid.DataBind();
+ _browseGrid.CurrentPageIndex = 0;
}
DQueryDom GetQueryDom()
{
- return null;
+ var dateInput = mQueryContainer.GetControl("LoadTime");
+ if (dateInput.IsEmpty)
+ throw new Exception("请选择发货日期");
+ var alias = new JoinAlias(typeof(UnionTemp));
+ var paws = new JoinAlias("_paws2", typeof(ProductAvgWeightSet));
+ var query = new DQueryDom(alias);
+ UnionTemp.Register(query, mQueryContainer, dateInput.Date);
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(paws), DQCondition.EQ(alias, "ProductAvgWeightSet_ID", paws, "ID"));
+ query.Columns.Add(DQSelectColumn.Field("ID", paws));
+ query.Columns.Add(DQSelectColumn.Field("Name", paws, "品项"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("OrderNumber")), "订货数量"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("ProductNumber")), "预计产量"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("StoreNumber")), "库存数量"));
+
+ var col = DQExpression.Sum(DQExpression.Subtract(DQExpression.Add(DQExpression.IfNull(DQExpression.Field("ProductNumber"), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field("StoreNumber"), DQExpression.Value(0))), DQExpression.IfNull(DQExpression.Field("OrderNumber"), DQExpression.Value(0))));
+
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.LogicCase(DQCondition.LessThan(col, DQExpression.Value(0)), DQExpression.Subtract(DQExpression.Value(0), col), DQExpression.NULL).ECastType?>(), "缺货数量"));
+
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.LogicCase(DQCondition.GreaterThan(col, DQExpression.Value(0)), col, DQExpression.NULL).ECastType?>(), "剩余数量"));
+ query.GroupBy.Expressions.Add(DQExpression.Field(paws, "ID"));
+ query.GroupBy.Expressions.Add(DQExpression.Field(paws, "Name"));
+ query.OrderBy.Expressions.Add(DQOrderByExpression.Create(paws, "ID"));
+ return query;
+ }
+ }
+
+ class ProductAvgWeightSetTemp
+ {
+ public long Goods_ID { get; set; }
+
+ public long ProductAvgWeightSet_ID { get; set; }
+
+ public static void Register(DQueryDom root)
+ {
+ var main = new JoinAlias("_paws1", typeof(ProductAvgWeightSet));
+ var detail = new JoinAlias(typeof(ProductAvgWeightSet_Detail));
+ var query = new DQueryDom(main);
+ query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "ProductAvgWeightSet_ID"));
+ query.Columns.Add(DQSelectColumn.Field("Goods_ID", detail));
+ query.Columns.Add(DQSelectColumn.Field("ID", main));
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Domain_ID", DomainContext.Current.ID), DQCondition.EQ("Stopped", false)));
+ root.RegisterQueryTable(typeof(ProductAvgWeightSetTemp), new string[] { "Goods_ID", "ProductAvgWeightSet_ID" }, query);
+ }
+ }
+
+ class UnionTemp
+ {
+ public long ProductAvgWeightSet_ID { get; set; }
+
+ public Money? OrderNumber { get; set; }
+
+ public Money? ProductNumber { get; set; }
+
+ public Money? StoreNumber { get; set; }
+
+ public static void Register(DQueryDom root, QueryContainer container, DateTime date)
+ {
+ var q1 = GetOrderQuery(root, container, date);
+ var q2 = GetCompute(date);
+ var q3 = GetStoreQuery();
+ q1.UnionNext.Select = q2;
+ q2.UnionNext.Select = q3;
+ root.RegisterQueryTable(typeof(UnionTemp), new string[] { "ProductAvgWeightSet_ID", "OrderNumber", "ProductNumber", "StoreNumber" }, q1);
+ }
+
+ static DQueryDom GetOrderQuery(DQueryDom root, QueryContainer container, DateTime date)
+ {
+ var detail = new JoinAlias(typeof(Order_Detail));
+ var query = container.Build();
+ var main = query.From.RootSource.Alias;
+ var temp = new JoinAlias("_temp1", typeof(ProductAvgWeightSetTemp));
+ ProductAvgWeightSetTemp.Register(root);
+ query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "Order_ID"));
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(temp), DQCondition.EQ(detail, "SaleGoods_ID", temp, "Goods_ID"));
+ query.Columns.Add(DQSelectColumn.Field("ProductAvgWeightSet_ID", temp));
+ query.Columns.Add(DQSelectColumn.Sum(detail, "UnitNum", "OrderNumber"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "ProductNumber"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "StoreNumber"));
+ query.GroupBy.Expressions.Add(DQExpression.Field(temp, "ProductAvgWeightSet_ID"));
+ query.Where.Conditions.Add(DQCondition.Between("LoadTime", date, date + new TimeSpan(23, 59, 59)));
+ query.Where.Conditions.Add(DQCondition.Or(DQCondition.EQ("BillState", 单据状态.已审核), DQCondition.EQ("IsLocked", true)));
+ query.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID));
+ return query;
+ }
+
+ static DQueryDom GetCompute(DateTime date)
+ {
+ var main = new JoinAlias(typeof(ProductCompute));
+ var detail = new JoinAlias(typeof(ProductCompute_Detail));
+ var query = new DQueryDom(main);
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "ProductCompute_ID"));
+ query.Columns.Add(DQSelectColumn.Field("ProductAvgWeightSet_ID", detail));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "OrderNumber"));
+ query.Columns.Add(DQSelectColumn.Field("ProductNumber", detail, "ProductNumber"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "StoreNumber"));
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.GreaterThanOrEqual("BillState", 单据状态.已审核), DQCondition.EQ("Domain_ID", DomainContext.Current.ID), DQCondition.EQ("Date", date)));
+ return query;
+ }
+
+ static DQueryDom GetStoreQuery()
+ {
+ var main = new JoinAlias(typeof(StoreDetail));
+ var store = new JoinAlias(typeof(Store));
+ var temp = new JoinAlias("_temp2", typeof(ProductAvgWeightSetTemp));//这个临时表在前面已经注册过了。
+ var query = new DQueryDom(main);
+
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(store), DQCondition.EQ(main, "Store_ID", store, "ID"));
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(temp), DQCondition.EQ(main, "Goods_ID", temp, "Goods_ID"));
+ query.Columns.Add(DQSelectColumn.Field("ProductAvgWeightSet_ID", temp));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "OrderNumber"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "ProductNumber"));
+ query.Columns.Add(DQSelectColumn.Sum(main, "Number", "StoreNumber"));
+ query.GroupBy.Expressions.Add(DQExpression.Field(temp, "ProductAvgWeightSet_ID"));
+ query.Where.Conditions.Add(DQCondition.EQ(store, "Domain_ID", DomainContext.Current.ID));
+ return query;
}
}
}
diff --git a/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderMatchPage.xml b/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderMatchPage.xml
index a6d02c0..b10def6 100644
--- a/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderMatchPage.xml
+++ b/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderMatchPage.xml
@@ -15,14 +15,6 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/StoreDetailPage.cs b/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/StoreDetailPage.cs
new file mode 100644
index 0000000..76cd93a
--- /dev/null
+++ b/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/StoreDetailPage.cs
@@ -0,0 +1,104 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Web.UI.HtmlControls;
+using TSingSoft.WebPluginFramework.Controls;
+using TSingSoft.WebPluginFramework.Pages;
+using TSingSoft.WebControls2;
+using BWP.B3Frameworks.Utils;
+using System.Web.UI.WebControls;
+using Forks.EnterpriseServices.DataForm;
+using Forks.EnterpriseServices.DomainObjects2.DQuery;
+using BWP.B3UnitedInfos.BO;
+using Forks.EnterpriseServices.DomainObjects2;
+using Forks.EnterpriseServices.SqlDoms;
+using BWP.B3Frameworks.BO;
+using BWP.B3Frameworks;
+using BWP.Web.WebControls;
+
+namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
+{
+ class StoreDetailPage : ServerPage
+ {
+ long? ProductAvgWeightSet_ID
+ {
+ get
+ {
+ var str = Request.QueryString["ID"];
+ if (string.IsNullOrEmpty(str))
+ return null;
+ return long.Parse(str);
+ }
+ }
+
+ protected override void InitForm(HtmlForm form)
+ {
+ form.EAdd(new PageTitle("库存明细"));
+ CreateBrowseGrid(form.EAdd(new TitlePanel("库存明细")));
+ }
+
+ DFBrowseGrid mGrid;
+ private void CreateBrowseGrid(TitlePanel titlePanel)
+ {
+ mGrid = titlePanel.EAdd(new DFBrowseGrid(new DFDataTableEditor()) { Width = Unit.Percentage(100), EnableRowsGroup = true });
+ mGrid.Columns.Add(new DFBrowseGridAutoColumn());
+ }
+
+ List SumColumnIndex
+ {
+ get
+ {
+ if (ViewState["sc"] == null)
+ ViewState["sc"] = new List();
+ return (List)ViewState["sc"];
+ }
+ }
+
+ DQueryDom GetQueryDom()
+ {
+ var main = new JoinAlias(typeof(StoreDetail));
+ var store = new JoinAlias(typeof(Store));
+ var temp = new JoinAlias(typeof(ProductAvgWeightSetTemp));
+ var query = new DQueryDom(main);
+ ProductAvgWeightSetTemp.Register(query);
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(store), DQCondition.EQ(main, "Store_ID", store, "ID"));
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(temp), DQCondition.EQ(main, "Goods_ID", temp, "Goods_ID"));
+
+ query.Columns.Add(DQSelectColumn.Field("Goods_Name", main));
+ query.Columns.Add(DQSelectColumn.Field("Goods_Code", main));
+ query.Columns.Add(DQSelectColumn.Sum(main, "Number"));
+ SumColumnIndex.Add(query.Columns.Count - 1);
+ query.Columns.Add(DQSelectColumn.Field("Goods_MainUnit", main));
+ query.Columns.Add(DQSelectColumn.Sum(main, "SecondNumber"));
+ SumColumnIndex.Add(query.Columns.Count - 1);
+ query.Columns.Add(DQSelectColumn.Field("Goods_SecondUnit", main));
+
+ query.GroupBy.Expressions.Add(DQExpression.Field(main, "Goods_Name"));
+ query.GroupBy.Expressions.Add(DQExpression.Field(main, "Goods_Code"));
+ query.GroupBy.Expressions.Add(DQExpression.Field(main, "Goods_MainUnit"));
+ query.GroupBy.Expressions.Add(DQExpression.Field(main, "Goods_SecondUnit"));
+
+ query.Where.Conditions.Add(DQCondition.EQ(store, "Domain_ID", DomainContext.Current.ID));
+ if (ProductAvgWeightSet_ID.HasValue)
+ query.Where.Conditions.Add(DQCondition.EQ(temp, "ProductAvgWeightSet_ID", ProductAvgWeightSet_ID));
+ else
+ query.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field(temp, "ProductAvgWeightSet_ID")));
+
+ return query;
+ }
+
+ protected override void OnLoad(EventArgs e)
+ {
+ base.OnLoad(e);
+ if (!IsPostBack)
+ {
+ var args = new LoadArguments(GetQueryDom());
+ foreach (var idx in SumColumnIndex)
+ args.SumColumns.Add(idx);
+ mGrid.LoadArguments = args;
+ mGrid.DataBind();
+ }
+ }
+ }
+}
diff --git a/B3ButcherManageToSale.Web/PluginClass.cs b/B3ButcherManageToSale.Web/PluginClass.cs
index a2af57c..aa97c14 100644
--- a/B3ButcherManageToSale.Web/PluginClass.cs
+++ b/B3ButcherManageToSale.Web/PluginClass.cs
@@ -12,6 +12,7 @@ namespace BWP.Web.Pages
public void OnInit()
{
WpfPageFactory.RegisterPageOverlay(typeof(B3ButcherManage.Tools.SaleOutStoreBalance).FullName, typeof(B3ButcherManageToSale.Overlays.SaleOutStoreBalance).FullName);
+ WpfPageFactory.RegisterPageOverlay(typeof(B3ButcherManage.Tools.OrderMatchPage).FullName, typeof(B3ButcherManageToSale.Overlays.OrderMatchPage).FullName);
}
}
}