diff --git a/B3ClientService.Web/B3ClientService.Web.csproj b/B3ClientService.Web/B3ClientService.Web.csproj
index c43fe72..e422296 100644
--- a/B3ClientService.Web/B3ClientService.Web.csproj
+++ b/B3ClientService.Web/B3ClientService.Web.csproj
@@ -144,6 +144,15 @@
ASPXCodeBehind
+
+ ASPXCodeBehind
+
+
+ ASPXCodeBehind
+
+
+ ASPXCodeBehind
+
ASPXCodeBehind
diff --git a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassInOutStoreAnalyse_/CarcassInOutStoreAnalyse.cs b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassInOutStoreAnalyse_/CarcassInOutStoreAnalyse.cs
index 6da9ba2..5196d11 100644
--- a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassInOutStoreAnalyse_/CarcassInOutStoreAnalyse.cs
+++ b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassInOutStoreAnalyse_/CarcassInOutStoreAnalyse.cs
@@ -67,11 +67,14 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassInOutStoreAnalyse_
url = AspUtil.UpdateUrlParam(url, "flag", "1");
SetCellAtt(tr.Cells[7], url, "进销存明细");//领用
+ url = AspUtil.UpdateUrlParam(url, "flag", "4");
+ SetCellAtt(tr.Cells[8], url, "进销存明细");//转段
+
url = AspUtil.UpdateUrlParam(url, "flag", "2");
- SetCellAtt(tr.Cells[8], url, "进销存明细");//销售
+ SetCellAtt(tr.Cells[9], url, "进销存明细");//销售
url = AspUtil.UpdateUrlParam(url, "flag", "-2");
- SetCellAtt(tr.Cells[10], url, "进销存明细");//期末
+ SetCellAtt(tr.Cells[11], url, "进销存明细");//期末
};
}
@@ -138,6 +141,7 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassInOutStoreAnalyse_
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("Flag", 3)), DQExpression.Field("Number"))), "本期增加头数|库存盘点"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("InStore", true)), DQExpression.Field("Number"))), "本期增加头数|合计"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("Flag", 1)), DQExpression.Field("Number"))), "本期减少头数|分割领用"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("Flag", 4)), DQExpression.Field("Number"))), "本期减少头数|条转段"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("Flag", 2)), DQExpression.Field("Number"))), "本期减少头数|销售出库"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("InStore", false)), DQExpression.Field("Number"))), "本期减少头数|合计"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("InStore", true), DQExpression.Field("Number"), DQExpression.Multiply(DQExpression.Value(-1), DQExpression.Field("Number")))), "期末头数"));
@@ -147,6 +151,7 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassInOutStoreAnalyse_
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("Flag", 3)), DQExpression.Field("Weight"))), "本期增加重量|库存盘点"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("InStore", true)), DQExpression.Field("Weight"))), "本期增加重量|合计"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("Flag", 1)), DQExpression.Field("Weight"))), "本期减少重量|分割领用"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("Flag", 4)), DQExpression.Field("Weight"))), "本期减少重量|条转段"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("Flag", 2)), DQExpression.Field("Weight"))), "本期减少重量|销售出库"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("InStore", false)), DQExpression.Field("Weight"))), "本期减少重量|合计"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("InStore", true), DQExpression.Field("Weight"), DQExpression.Multiply(DQExpression.Value(-1), DQExpression.Field("Weight")))), "期末重量"));
diff --git a/B3ClientService.Web/Pages/B3ClientService/Reports/SectionInOutStoreAnalyse_/SectionDetailDialog.cs b/B3ClientService.Web/Pages/B3ClientService/Reports/SectionInOutStoreAnalyse_/SectionDetailDialog.cs
new file mode 100644
index 0000000..d6ddc59
--- /dev/null
+++ b/B3ClientService.Web/Pages/B3ClientService/Reports/SectionInOutStoreAnalyse_/SectionDetailDialog.cs
@@ -0,0 +1,130 @@
+using BWP.B3ClientService.BO;
+using BWP.Web.Utils;
+using BWP.Web.WebControls;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using TSingSoft.WebPluginFramework.Controls;
+using TSingSoft.WebPluginFramework.Pages;
+using TSingSoft.WebControls2;
+using BWP.B3Frameworks.Utils;
+using System.Web.UI.WebControls;
+using Forks.EnterpriseServices.DomainObjects2.DQuery;
+using Forks.EnterpriseServices.SqlDoms;
+using Forks.EnterpriseServices.DataForm;
+using Forks.EnterpriseServices.DomainObjects2;
+using TSingSoft.WebPluginFramework;
+using Forks.Utils;
+
+namespace BWP.Web.Pages.B3ClientService.Reports.SectionInOutStoreAnalyse_
+{
+ class SectionDetailDialog : ServerPage
+ {
+ long? GoodsID
+ {
+ get
+ {
+ if (string.IsNullOrEmpty(Request.QueryString["Goods_ID"]))
+ return null;
+ return long.Parse(Request.QueryString["Goods_ID"]);
+ }
+ }
+
+ int Flag
+ {
+ get { return int.Parse(Request.QueryString["flag"]); }
+ }
+
+ DateTime startTime { get { return DateTime.Parse(Request.QueryString["Start"]); } }
+
+ DateTime endTime { get { return DateTime.Parse(Request.QueryString["End"]); } }
+
+ protected override void InitForm(System.Web.UI.HtmlControls.HtmlForm form)
+ {
+ var pageTitle = BuildTitle();
+ form.Controls.Add(new PageTitle(pageTitle));
+
+ CreateResultPanel(form.EAdd(new TitlePanel("查询结果")));
+ }
+
+ string BuildTitle()
+ {
+ var goodsName = string.Empty;
+ if (GoodsID.HasValue)
+ goodsName = WebBLUtil.GetDmoPropertyByID(typeof(Goods), "Name", GoodsID.Value);
+ var billName = "期初";
+ switch (Flag)
+ {
+ case 0:
+ billName = "入库";
+ break;
+ case 1:
+ billName = "出库";
+ break;
+ case -2:
+ billName = "期初";
+ break;
+ }
+
+ return string.Format("{0}{1}信息", goodsName, billName);
+ }
+
+ DFBrowseGrid mBrowseGrid;
+ private void CreateResultPanel(TitlePanel titlePanel)
+ {
+ mBrowseGrid = titlePanel.EAdd(new DFBrowseGrid(new DFDataTableEditor()) { Width = Unit.Percentage(100) });
+ mBrowseGrid.Columns.Add(new DFBrowseGridAutoColumn());
+ }
+
+ void StartQuery()
+ {
+ var sumColumns = new List();
+ var query = new DQueryDom(new JoinAlias(typeof(SectionStoreView)));
+
+ query.Columns.Add(DQSelectColumn.Field("ProductBatch_Name", "批次"));
+
+ if (Flag < 0)
+ {
+ var numCol = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("InStore", true), DQExpression.Value("1"), DQExpression.Value(-1)));
+ var weightCol = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("InStore", true), DQExpression.Field("Weight"), DQExpression.Multiply(DQExpression.Value(-1), DQExpression.Field("Weight"))));
+ query.Columns.Add(DQSelectColumn.Create(numCol.ECastType(), "头数"));
+ query.Columns.Add(DQSelectColumn.Create(weightCol.ECastType?>(), "重量"));
+ query.Having.Conditions.Add(DQCondition.Or(DQCondition.InEQ(DQExpression.IfNull(numCol, DQExpression.Value(0)), DQExpression.Value(0)), DQCondition.InEQ(DQExpression.IfNull(weightCol, DQExpression.Value(0)), DQExpression.Value(0))));
+ }
+ else
+ {
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Value(1)).ECastType(), "头数"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("Weight")), "重量"));
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Flag", Flag), DQCondition.GreaterThanOrEqual("Time", startTime)));
+ query.Having.Conditions.Add(DQCondition.Or(DQCondition.InEQ(DQExpression.Sum(DQExpression.Value(1)), DQExpression.Value(0)), DQCondition.InEQ(DQExpression.IfNull(DQExpression.Sum(DQExpression.Field("Weight")), DQExpression.Value(0)), DQExpression.Value(0))));
+ }
+ query.GroupBy.Expressions.Add(DQExpression.Field("ProductBatch_Name"));
+
+ if (Flag == -1)//期初
+ query.Where.Conditions.Add(DQCondition.LessThan("Time", startTime));
+ else
+ query.Where.Conditions.Add(DQCondition.LessThanOrEqual("Time", endTime));
+ if (GoodsID.HasValue)
+ query.Where.Conditions.Add(DQCondition.EQ("Goods_ID", GoodsID));
+ else
+ query.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field("Goods_ID")));
+
+ var args = new LoadArguments(query);
+ for (var idx = 1; idx < query.Columns.Count; idx++)
+ {
+ args.SumColumns.Add(idx);
+ args.GroupSumColumns.Add(idx);
+ }
+ mBrowseGrid.LoadArguments = args;
+ mBrowseGrid.DataBind();
+ }
+
+ protected override void OnLoad(EventArgs e)
+ {
+ base.OnLoad(e);
+ if (!IsPostBack)
+ StartQuery();
+ }
+ }
+}
diff --git a/B3ClientService.Web/Pages/B3ClientService/Reports/SectionInOutStoreAnalyse_/SectionInOutStoreAnalyse.cs b/B3ClientService.Web/Pages/B3ClientService/Reports/SectionInOutStoreAnalyse_/SectionInOutStoreAnalyse.cs
new file mode 100644
index 0000000..e000bbf
--- /dev/null
+++ b/B3ClientService.Web/Pages/B3ClientService/Reports/SectionInOutStoreAnalyse_/SectionInOutStoreAnalyse.cs
@@ -0,0 +1,163 @@
+using BWP.B3ClientService;
+using BWP.B3ClientService.BO;
+using BWP.B3Frameworks.Utils;
+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 System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security;
+using System.Text;
+using System.Web.UI;
+using System.Web.UI.HtmlControls;
+using System.Web.UI.WebControls;
+using TSingSoft.WebControls2;
+using TSingSoft.WebPluginFramework.Controls;
+using TSingSoft.WebPluginFramework.Pages;
+using TSingSoft.WebPluginFramework;
+using System.Web;
+
+namespace BWP.Web.Pages.B3ClientService.Reports.SectionInOutStoreAnalyse_
+{
+ class SectionInOutStoreAnalyse : ServerPage
+ {
+ protected override void OnInit(EventArgs e)
+ {
+ if (!User.IsInRole("B3ClientService.报表展示.条段进销存"))
+ throw new SecurityException();
+ base.OnInit(e);
+ }
+
+ DFBrowseGrid mBrowseGrid;
+ protected override void InitForm(HtmlForm form)
+ {
+ form.EAdd(new PageTitle("条段进销存"));
+
+ var queryPanel = new Panel();
+ queryPanel.Style.Add(HtmlTextWriterStyle.BackgroundColor, "white");
+ queryPanel.CssClass = "QueryPanel PrintInVisible";
+ form.Controls.Add(queryPanel);
+
+ AddQueryControl(queryPanel);
+
+ var mZone = new TitlePanelZone();
+ form.Controls.Add(mZone);
+
+ mZone.Add(CreateResultTab());
+
+ mBrowseGrid.OnDetailDataBound = (tr, obj, index) =>
+ {
+ var row = obj as DFDataRow;
+ var gid = string.Format("{0}", row["Goods_ID"]);
+ var url = BuildUrl(string.Format("{0}", gid));
+ url = WpfPageUrl.ToGlobal(url);
+ url = AspUtil.AddParamToUrl(url, "flag", "-1");
+ SetCellAtt(tr.Cells[1], url, "进销存明细");//期初
+
+ url = AspUtil.UpdateUrlParam(url, "flag", "0");
+ SetCellAtt(tr.Cells[3], url, "进销存明细");//入库
+
+ url = AspUtil.UpdateUrlParam(url, "flag", "1");
+ SetCellAtt(tr.Cells[5], url, "进销存明细");//出库
+
+ url = AspUtil.UpdateUrlParam(url, "flag", "-2");
+ SetCellAtt(tr.Cells[7], url, "进销存明细");//期末
+ };
+ }
+
+ string BuildUrl(string goodsID)
+ {
+ var url = "~/B3ClientService/Reports/SectionInOutStoreAnalyse_/SectionDetailDialog.aspx";
+ url = AspUtil.AddParamToUrl(url, "Start", HttpUtility.UrlEncode(startTime.ToString("yyyy/MM/dd HH:mm:ss")));
+ url = AspUtil.AddParamToUrl(url, "End", HttpUtility.UrlEncode(endTime.ToString("yyyy/MM/dd HH:mm:ss")));
+ url = AspUtil.AddParamToUrl(url, "Goods_ID", goodsID);
+ return 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");
+ }
+
+ DFDateTimeInput startInput;
+ DFDateTimeInput endInput;
+ DateTime startTime;
+ DateTime endTime;
+ private void AddQueryControl(Panel queryPanel)
+ {
+ var hPanel = queryPanel.EAdd(new Panel());
+ hPanel.Style.Add("float", "right");
+ hPanel.EAdd(new SimpleLabel("期间"));
+ startInput = hPanel.EAdd(new DFDateTimeInput() { Date = DateTime.Today, DefaultTime = DateInputDefaultTime.minValue });
+ hPanel.EAdd(new LiteralControl("-"));
+ endInput = hPanel.EAdd(new DFDateTimeInput() { Date = DateTime.Today + new TimeSpan(23, 59, 59), DefaultTime = DateInputDefaultTime.maxValue });
+ hPanel.EAdd(new TSButton("开始查询", delegate { StartQuery(); }));
+ hPanel.EAdd(new RedirectTSButton("清除条件"));
+ }
+
+ private TitlePanel CreateResultTab()
+ {
+ var result = new TitlePanel("查询结果");
+ mBrowseGrid = result.EAdd(new DFBrowseGrid(new DFDataTableEditor()) { Width = Unit.Percentage(100) });
+ mBrowseGrid.Columns.Add(new DFBrowseGridAutoColumn("Goods_ID"));
+ var hPanel = result.EAdd(new HLayoutPanel());
+ PageUtil.AddExcelExportPanel(hPanel, mBrowseGrid, "条段进销存");
+ return result;
+ }
+
+ void StartQuery()
+ {
+ startTime = new DateTime(2017, 10, 10);
+ endTime = DateTime.Today + new TimeSpan(23, 59, 59);
+ if (startInput.Value.HasValue)
+ startTime = startInput.Date;
+ if (endInput.Value.HasValue)
+ endTime = endInput.Date;
+ var sumColumns = new List();
+ var query = new DQueryDom(new JoinAlias(typeof(SectionStoreView)));
+ query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
+ query.Columns.Add(DQSelectColumn.Field("Goods_Name", "存货名称"));
+
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.LessThan("Time", startTime), DQExpression.LogicCase(DQCondition.EQ("InStore", true), DQExpression.Value(1), DQExpression.Value(-1)))).ECastType(), "期初库存|头数"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.LessThan("Time", startTime), DQExpression.LogicCase(DQCondition.EQ("InStore", true), DQExpression.Field("Weight"), DQExpression.Multiply(DQExpression.Value(-1), DQExpression.Field("Weight"))))), "期初库存|重量"));
+
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("InStore",true)), DQExpression.Value(1))).ECastType(), "入库|头数"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("InStore", true)), DQExpression.Field("Number"))), "入库|重量"));
+
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("InStore", false)), DQExpression.Value(1))).ECastType(), "出库|头数"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("InStore", false)), DQExpression.Field("Number"))), "出库|重量"));
+
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("InStore", true), DQExpression.Value(1), DQExpression.Value(-1))).ECastType(), "期初库存|头数"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("InStore", true), DQExpression.Field("Weight"), DQExpression.Multiply(DQExpression.Value(-1), DQExpression.Field("Weight")))), "期初库存|重量"));
+
+ query.GroupBy.Expressions.Add(DQExpression.Field("Goods_ID"));
+ query.GroupBy.Expressions.Add(DQExpression.Field("Goods_Name"));
+ query.Where.Conditions.Add(DQCondition.LessThanOrEqual("Time", endTime));
+
+ query.Having.Conditions.Add(DQCondition.Or(DQCondition.InEQ(DQExpression.IfNull(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("InStore", true), DQExpression.Value(1), DQExpression.Value(-1))), DQExpression.Value(0)), DQExpression.Value(0)), DQCondition.InEQ(DQExpression.IfNull(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("InStore", true), DQExpression.Field("Weight"), DQExpression.Multiply(DQExpression.Value(-1), DQExpression.Field("Weight")))), DQExpression.Value(0)), DQExpression.Value(0))));
+
+ var args = new LoadArguments(query);
+ for (var idx = 2; idx < query.Columns.Count; idx++)
+ {
+ args.SumColumns.Add(idx);
+ args.GroupSumColumns.Add(idx);
+ }
+ mBrowseGrid.LoadArguments = args;
+ mBrowseGrid.DataBind();
+ }
+
+ protected override void OnLoad(EventArgs e)
+ {
+ base.OnLoad(e);
+ if (!IsPostBack)
+ StartQuery();
+ }
+ }
+}
diff --git a/B3ClientService.Web/Pages/B3ClientService/Reports/SectionLossAnalyse_/SectionLossAnalyse.cs b/B3ClientService.Web/Pages/B3ClientService/Reports/SectionLossAnalyse_/SectionLossAnalyse.cs
new file mode 100644
index 0000000..369b3be
--- /dev/null
+++ b/B3ClientService.Web/Pages/B3ClientService/Reports/SectionLossAnalyse_/SectionLossAnalyse.cs
@@ -0,0 +1,131 @@
+//using BWP.B3ClientService;
+//using BWP.B3ClientService.BO;
+//using BWP.B3Frameworks.Utils;
+//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 System;
+//using System.Collections.Generic;
+//using System.Linq;
+//using System.Security;
+//using System.Text;
+//using System.Web.UI;
+//using System.Web.UI.HtmlControls;
+//using System.Web.UI.WebControls;
+//using TSingSoft.WebControls2;
+//using TSingSoft.WebPluginFramework.Controls;
+//using TSingSoft.WebPluginFramework.Pages;
+//using TSingSoft.WebPluginFramework;
+
+//namespace BWP.Web.Pages.B3ClientService.Reports.SectionLossAnalyse_
+//{
+// class SectionLossAnalyse : ServerPage
+// {
+// protected override void OnInit(EventArgs e)
+// {
+// if (!User.IsInRole("B3ClientService.报表展示.条段损耗"))
+// throw new SecurityException();
+// base.OnInit(e);
+// }
+
+// DFBrowseGrid mBrowseGrid;
+// protected override void InitForm(HtmlForm form)
+// {
+// form.EAdd(new PageTitle("条段损耗"));
+
+// var queryPanel = new Panel();
+// queryPanel.Style.Add(HtmlTextWriterStyle.BackgroundColor, "white");
+// queryPanel.CssClass = "QueryPanel PrintInVisible";
+// form.Controls.Add(queryPanel);
+
+// AddQueryControl(queryPanel);
+
+// var mZone = new TitlePanelZone();
+// form.Controls.Add(mZone);
+
+// mZone.Add(CreateResultTab());
+// }
+
+// ChoiceBox batchSelect;
+// private void AddQueryControl(Panel queryPanel)
+// {
+// var hp = queryPanel.EAdd(new Panel());
+// hp.Style.Add("float", "right");
+// hp.EAdd(new SimpleLabel("生产批次"));
+// batchSelect = hp.EAdd(new ChoiceBox(B3ClientServiceConsts.DataSources.生产批次) { EnableInputArgument = true, EnableTopItem = true, AutoPostBack = true, Width = Unit.Pixel(180) });
+// var batch = GetYesterdayBatch();
+// if (batch != null)
+// batchSelect.Fill(batch.Item1.ToString(), batch.Item2);
+// batchSelect.SelectedValueChanged += delegate
+// {
+// StartQuery();
+// };
+// }
+
+// Tuple GetYesterdayBatch()
+// {
+// var dom = new DQueryDom(new JoinAlias(typeof(ProductBatch)));
+// dom.Columns.Add(DQSelectColumn.Field("ID"));
+// dom.Columns.Add(DQSelectColumn.Field("Name"));
+// dom.OrderBy.Expressions.Add(DQOrderByExpression.Create("Date", true));
+// dom.Where.Conditions.Add(DQCondition.LessThan("Date", DateTime.Today));
+// dom.Range = SelectRange.Top(1);
+// return dom.EExecuteScalar();
+// }
+
+// private TitlePanel CreateResultTab()
+// {
+// var result = new TitlePanel("查询结果");
+// mBrowseGrid = result.EAdd(new DFBrowseGrid(new DFDataTableEditor()) { Width = Unit.Percentage(100) });
+// mBrowseGrid.Columns.Add(new DFBrowseGridAutoColumn());
+// var hPanel = result.EAdd(new HLayoutPanel());
+// PageUtil.AddExcelExportPanel(hPanel, mBrowseGrid, "条段损耗");
+// return result;
+// }
+
+// void StartQuery()
+// {
+// var sumColumns = new List();
+// var groupSumColumns = new List();
+
+// var main = new JoinAlias(typeof(SectionStoreDetail));
+// var goods = new JoinAlias("iGoods", typeof(Goods));
+// var query = new DQueryDom(main);
+// query.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(main, "Goods_ID", goods, "ID"));
+// query.Columns.Add(DQSelectColumn.Field("Name", goods, "存货名称"));
+// query.GroupBy.Expressions.Add(DQExpression.Field(goods, "Name"));
+
+// query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Value(1)).ECastType(), "头数"));
+// sumColumns.Add(query.Columns.Count - 1);
+// groupSumColumns.Add(query.Columns.Count - 1);
+// query.Columns.Add(DQSelectColumn.Sum("GradeWeight", "胴体重量"));
+// sumColumns.Add(query.Columns.Count - 1);
+// query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(inGoods, "Name"), "存货名称"));
+// query.GroupBy.Expressions.Add(DQExpression.Field(inGoods, "Name"));
+// query.Columns.Add(DQSelectColumn.Sum("InStoreWeight", "入库重量"));
+// sumColumns.Add(query.Columns.Count - 1);
+// query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Subtract(DQExpression.Field("GradeWeight"), DQExpression.IfNull(DQExpression.Field("InStoreWeight"), DQExpression.Value(0)))), "损耗"));
+// sumColumns.Add(query.Columns.Count - 1);
+// groupSumColumns.Add(query.Columns.Count - 1);
+// if (!batchSelect.IsEmpty)
+// query.Where.Conditions.Add(DQCondition.EQ("ProductBatch_ID", long.Parse(batchSelect.Value)));
+// var args = new LoadArguments(query);
+// foreach (var idx in sumColumns)
+// args.SumColumns.Add(idx);
+// foreach (var idx in groupSumColumns)
+// args.GroupSumColumns.Add(idx);
+// mBrowseGrid.LoadArguments = args;
+// mBrowseGrid.DataBind();
+// }
+
+// protected override void OnLoad(EventArgs e)
+// {
+// base.OnLoad(e);
+// if (!IsPostBack)
+// StartQuery();
+// }
+// }
+//}
diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj
index fab28fc..36e5a0a 100644
--- a/B3ClientService/B3ClientService.csproj
+++ b/B3ClientService/B3ClientService.csproj
@@ -174,6 +174,7 @@
+
diff --git a/B3ClientService/BO/CarcassFullInfoView.cs b/B3ClientService/BO/CarcassFullInfoView.cs
index 0f527af..188d6df 100644
--- a/B3ClientService/BO/CarcassFullInfoView.cs
+++ b/B3ClientService/BO/CarcassFullInfoView.cs
@@ -51,12 +51,15 @@ namespace BWP.B3ClientService.BO
var u1 = GetInStore();
var u2 = GetPickOutStore();
var u3 = GetSaleOutStore();
+ var u4 = GetSectionPickOut();
u1.UnionNext.Select = u2;
u1.UnionNext.Type = UnionType.All;
u2.UnionNext.Select = u3;
u2.UnionNext.Type = UnionType.All;
- u3.UnionNext.Select = GetCarcassInventory();
+ u3.UnionNext.Select = u4;
u3.UnionNext.Type = UnionType.All;
+ u4.UnionNext.Select = GetCarcassInventory();
+ u4.UnionNext.Type = UnionType.All;
var sqlDom1 = u1.Build(DbProviderType.SqlClient, DbmsType.sqlserver);
return sqlDom1;
@@ -104,6 +107,20 @@ namespace BWP.B3ClientService.BO
return query;
}
+ DQueryDom GetSectionPickOut()
+ {
+ var query = new DQueryDom(new JoinAlias("_saleOut", typeof(CarcassFullInfo)));
+ query.Columns.Add(DQSelectColumn.Field("ProductBatch_ID"));
+ query.Columns.Add(DQSelectColumn.Field("InStoreGoods_ID", "Goods_ID"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "Number"));
+ query.Columns.Add(DQSelectColumn.Field("InStoreWeight", "Weight"));
+ query.Columns.Add(DQSelectColumn.Field("PickTime", "Time"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(false), "InStore"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(4), "Flag"));
+ query.Where.Conditions.Add(DQCondition.EQ("PickType", 2));
+ return query;
+ }
+
DQueryDom GetCarcassInventory()
{
var main = new JoinAlias(typeof(CarcassInventory));
diff --git a/B3ClientService/BO/SectionStoreView.cs b/B3ClientService/BO/SectionStoreView.cs
new file mode 100644
index 0000000..9d0ec30
--- /dev/null
+++ b/B3ClientService/BO/SectionStoreView.cs
@@ -0,0 +1,69 @@
+using Forks.EnterpriseServices;
+using Forks.EnterpriseServices.DataForm;
+using Forks.EnterpriseServices.DomainObjects2;
+using Forks.EnterpriseServices.DomainObjects2.DQuery;
+using Forks.EnterpriseServices.SqlDoms;
+using Forks.Utils.Data;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using TSingSoft.WebPluginFramework;
+
+namespace BWP.B3ClientService.BO
+{
+ [DFClass]
+ [Serializable]
+ [MapToView]
+ public class SectionStoreView : ICreateView
+ {
+ public long Goods_ID { get; set; }
+
+ public long? ProductBatch_ID { get; set; }
+
+ public decimal Weight { get; set; }
+
+ public DateTime Time { get; set; }
+
+ public bool InStore { get; set; }
+
+ public int Flag { get; set; }
+
+ [ReferenceTo(typeof(Goods),"Name")]
+ [Join("Goods_ID", "ID")]
+ public string Goods_Name { get; set; }
+ public ISqlDom CreateView()
+ {
+ var u1 = GetInStore();
+ u1.UnionNext.Select =GetOutStore();
+ u1.UnionNext.Type = UnionType.All;
+ var sqlDom1 = u1.Build(DbProviderType.SqlClient, DbmsType.sqlserver);
+ return sqlDom1;
+ }
+
+ private DQueryDom GetInStore()
+ {
+ var query = new DQueryDom(new JoinAlias("_inStore", typeof(SectionStoreDetail)));
+ query.Columns.Add(DQSelectColumn.Field("ProductBatch_ID"));
+ query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
+ query.Columns.Add(DQSelectColumn.Field("Weight"));
+ query.Columns.Add(DQSelectColumn.Field("InStoreTime", "Time"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(true), "InStore"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(0), "Flag"));
+ return query;
+ }
+
+ private DQueryDom GetOutStore()
+ {
+ var query = new DQueryDom(new JoinAlias("_outStore", typeof(SectionStoreDetail)));
+ query.Columns.Add(DQSelectColumn.Field("ProductBatch_ID"));
+ query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
+ query.Columns.Add(DQSelectColumn.Field("Weight"));
+ query.Columns.Add(DQSelectColumn.Field("OutStoreTime", "Time"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(false), "InStore"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "Flag"));
+ query.Where.Conditions.Add(DQCondition.IsNotNull(DQExpression.Field("OutStoreTime")));
+ return query;
+ }
+ }
+}
diff --git a/WebFolder/config/plugins/B3ClientService.plugin b/WebFolder/config/plugins/B3ClientService.plugin
index c28c092..cd4ecc4 100644
--- a/WebFolder/config/plugins/B3ClientService.plugin
+++ b/WebFolder/config/plugins/B3ClientService.plugin
@@ -46,6 +46,8 @@
+
+
@@ -131,6 +133,8 @@
+
+