|
|
|
@ -4,8 +4,10 @@ using BWP.B3Frameworks.BO.NamedValueTemplate; |
|
|
|
using BWP.B3Frameworks.Utils; |
|
|
|
using BWP.B3Sale.BO; |
|
|
|
using BWP.B3UnitedInfos.BO; |
|
|
|
using BWP.Web.Pages.B3Sale.Reports; |
|
|
|
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; |
|
|
|
@ -21,8 +23,13 @@ using TSingSoft.WebPluginFramework; |
|
|
|
|
|
|
|
namespace BWP.Web.Pages.B3ButcherManageToSale.Reports.OutputToSaleOutDiff_ |
|
|
|
{ |
|
|
|
class OutputToSaleOutDiff : DFBrowseGridReportPage<Output> |
|
|
|
class OutputToSaleOutDiff : B3SaleDFGridReportPage |
|
|
|
{ |
|
|
|
protected override void InitForm(System.Web.UI.HtmlControls.HtmlForm form) |
|
|
|
{ |
|
|
|
base.InitForm(form); |
|
|
|
mDFGrid.AllowColGroup = true; |
|
|
|
} |
|
|
|
protected override string AccessRoleName |
|
|
|
{ |
|
|
|
get { return "B3ButcherManageToSale.报表分析.订单完成情况"; } |
|
|
|
@ -39,6 +46,7 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Reports.OutputToSaleOutDiff_ |
|
|
|
queryPanel.ConditonPanel.EAdd(CreateDataRangePanel()); |
|
|
|
} |
|
|
|
|
|
|
|
readonly DFInfo mDFInfo = DFInfo.Get(typeof(Output)); |
|
|
|
DFDropDownList stateDp; |
|
|
|
HLayoutPanel CreateDataRangePanel() |
|
|
|
{ |
|
|
|
@ -73,28 +81,41 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Reports.OutputToSaleOutDiff_ |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Code", goods, "编码")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Name", goods, "名称")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Spec", goods, "规格")); |
|
|
|
query.Columns.Add(DQSelectColumn.Sum("UnitNum", "订货|数量")); |
|
|
|
SumColumnIndexs.Add(query.Columns.Count - 1); |
|
|
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("OrderNumber")), "原订单|数量")); |
|
|
|
SumColumnNames.Add("原订单|数量"); |
|
|
|
GroupSumColumnNamnes.Add("原订单|数量"); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("OrderSecondNumber")), "原订单|辅数量")); |
|
|
|
SumColumnNames.Add("原订单|辅数量"); |
|
|
|
GroupSumColumnNamnes.Add("原订单|辅数量"); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("UnitNum")), "订货|数量")); |
|
|
|
SumColumnNames.Add("订货|数量"); |
|
|
|
GroupSumColumnNamnes.Add("订货|数量"); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("MainUnit", goods, "订货|单位")); |
|
|
|
query.Columns.Add(DQSelectColumn.Sum("SecondNumber", "订货|辅数量")); |
|
|
|
SumColumnIndexs.Add(query.Columns.Count - 1); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("SecondNumber")), "订货|辅数量")); |
|
|
|
SumColumnNames.Add("订货|辅数量"); |
|
|
|
GroupSumColumnNamnes.Add("订货|辅数量"); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("SecondUnit", goods, "订货|辅单位")); |
|
|
|
query.Columns.Add(DQSelectColumn.Sum("OutUnitNum", "产出|数量")); |
|
|
|
SumColumnIndexs.Add(query.Columns.Count - 1); |
|
|
|
query.Columns.Add(DQSelectColumn.Sum("OutSecondNumber", "产出|辅数量")); |
|
|
|
SumColumnIndexs.Add(query.Columns.Count - 1); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("OutUnitNum")), "产出|数量")); |
|
|
|
SumColumnNames.Add("产出|数量"); |
|
|
|
GroupSumColumnNamnes.Add("产出|数量"); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("OutSecondNumber")), "产出|辅数量")); |
|
|
|
SumColumnNames.Add("产出|辅数量"); |
|
|
|
GroupSumColumnNamnes.Add("产出|辅数量"); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(DQExpression.IfNull(DQExpression.Sum(DQExpression.Field("UnitNum")), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Sum(DQExpression.Field("OutUnitNum")), DQExpression.Value(0))).ECastType<Money<decimal>?>(), "差异|数量")); |
|
|
|
SumColumnIndexs.Add(query.Columns.Count - 1); |
|
|
|
GroupSumColumnIndexs.Add(query.Columns.Count - 1); |
|
|
|
SumColumnNames.Add("差异|数量"); |
|
|
|
GroupSumColumnNamnes.Add("差异|数量"); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(DQExpression.IfNull(DQExpression.Sum(DQExpression.Field("SecondNumber")), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Sum(DQExpression.Field("OutSecondNumber")), DQExpression.Value(0))).ECastType<Money<decimal>?>(), "差异|辅数量")); |
|
|
|
SumColumnIndexs.Add(query.Columns.Count - 1); |
|
|
|
GroupSumColumnIndexs.Add(query.Columns.Count - 1); |
|
|
|
SumColumnNames.Add("差异|辅数量"); |
|
|
|
GroupSumColumnNamnes.Add("差异|辅数量"); |
|
|
|
|
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field(goods, "Code")); |
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field(goods, "Name")); |
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field(goods, "Spec")); |
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field(goods, "MainUnit")); |
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field(goods, "SecondUnit")); |
|
|
|
foreach (var c in query.Columns) |
|
|
|
ColumnNames.Add(c.Name); |
|
|
|
return query; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -102,6 +123,8 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Reports.OutputToSaleOutDiff_ |
|
|
|
class UnionTemp |
|
|
|
{ |
|
|
|
public long Goods_ID { get; set; } |
|
|
|
public Money<decimal>? OrderNumber { get; set; } |
|
|
|
public Money<decimal>? OrderSecondNumber { get; set; } |
|
|
|
public Money<decimal>? UnitNum { get; set; } |
|
|
|
public Money<decimal>? SecondNumber { get; set; } |
|
|
|
public Money<decimal>? OutUnitNum { get; set; } |
|
|
|
@ -112,18 +135,20 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Reports.OutputToSaleOutDiff_ |
|
|
|
var query = GetSaleOutStore(minDate, maxDate, billState); |
|
|
|
query.UnionNext.Select = GetOutput(minDate, maxDate); |
|
|
|
OrganizationUtil.RegisterOrganizationQueryTable(root); |
|
|
|
root.RegisterQueryTable(typeof(UnionTemp), new string[] { "Goods_ID", "UnitNum", "SecondNumber", "OutUnitNum", "OutSecondNumber" }, query); |
|
|
|
root.RegisterQueryTable(typeof(UnionTemp), new string[] { "Goods_ID", "OrderNumber", "OrderSecondNumber", "UnitNum", "SecondNumber", "OutUnitNum", "OutSecondNumber" }, query); |
|
|
|
} |
|
|
|
|
|
|
|
static DQueryDom GetSaleOutStore(DateTime minDate, DateTime maxDate, int? billState) |
|
|
|
{ |
|
|
|
var main = new JoinAlias(typeof(SaleOutStore)); |
|
|
|
var detail = new JoinAlias(typeof(SaleOutStore_Detail)); |
|
|
|
var config = new JoinAlias("_gvc1",typeof(GoodsViewConfig)); |
|
|
|
var config = new JoinAlias("_gvc1", typeof(GoodsViewConfig)); |
|
|
|
var query = new DQueryDom(main); |
|
|
|
query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "SaleOutStore_ID")); |
|
|
|
query.From.AddJoin(JoinType.Inner, new DQDmoSource(config), DQCondition.EQ(detail, "SaleGoods_ID", config, "Goods_ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("SaleGoods_ID", detail)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Order_Detail_UnitNum", detail, "OrderNumber")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Order_Detail_SecondNumber", detail, "OrderSecondNumber")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("UnitNum", detail)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("SecondNumber", detail)); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "OutUnitNum")); |
|
|
|
@ -146,6 +171,8 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Reports.OutputToSaleOutDiff_ |
|
|
|
query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "Output_ID")); |
|
|
|
query.From.AddJoin(JoinType.Inner, new DQDmoSource(config), DQCondition.EQ(config, "Goods_ID", detail, "Goods_ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Goods_ID", detail)); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "OrderNumber")); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "OrderSecondNumber")); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "UnitNum")); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "SecondNumber")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Number", detail)); |
|
|
|
|