Browse Source

订单匹配。

master
yibo 7 years ago
parent
commit
06dada82ea
6 changed files with 457 additions and 15 deletions
  1. +7
    -0
      B3ButcherManageToSale.Web/B3ButcherManageToSale.Web.csproj
  2. +177
    -0
      B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderInfo.cs
  3. +168
    -7
      B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderMatchPage.cs
  4. +0
    -8
      B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderMatchPage.xml
  5. +104
    -0
      B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/StoreDetailPage.cs
  6. +1
    -0
      B3ButcherManageToSale.Web/PluginClass.cs

+ 7
- 0
B3ButcherManageToSale.Web/B3ButcherManageToSale.Web.csproj View File

@ -72,6 +72,7 @@
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" /> <Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" /> <Reference Include="System.Data.DataSetExtensions" />
@ -99,12 +100,18 @@
<Compile Include="Pages\B3ButcherManageToSale\Overlays\CustomerAdjust.cs"> <Compile Include="Pages\B3ButcherManageToSale\Overlays\CustomerAdjust.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
<Compile Include="Pages\B3ButcherManageToSale\Overlays\OrderInfo.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3ButcherManageToSale\Overlays\OrderMatchPage.cs"> <Compile Include="Pages\B3ButcherManageToSale\Overlays\OrderMatchPage.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
<Compile Include="Pages\B3ButcherManageToSale\Overlays\SaleOutStoreBalance.cs"> <Compile Include="Pages\B3ButcherManageToSale\Overlays\SaleOutStoreBalance.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
<Compile Include="Pages\B3ButcherManageToSale\Overlays\StoreDetailPage.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3ButcherManageToSale\Reports\OutputToSaleOutDiff_\OutputToSaleOutDiff.cs"> <Compile Include="Pages\B3ButcherManageToSale\Reports\OutputToSaleOutDiff_\OutputToSaleOutDiff.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>


+ 177
- 0
B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderInfo.cs View File

@ -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<int> SumColumnIndex
{
get
{
if (ViewState["sc"] == null)
ViewState["sc"] = new List<int>();
return (List<int>)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;
}
}
}

+ 168
- 7
B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderMatchPage.cs View File

@ -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.B3Frameworks.Utils;
using BWP.B3Sale.BO; using BWP.B3Sale.BO;
using BWP.B3UnitedInfos.BO;
using BWP.Web.Layout; using BWP.Web.Layout;
using BWP.Web.Utils; using BWP.Web.Utils;
using BWP.Web.WebControls; using BWP.Web.WebControls;
using Forks.EnterpriseServices.DataForm; using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery; using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms; using Forks.EnterpriseServices.SqlDoms;
using Forks.Utils;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Web;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using TSingSoft.WebControls2; using TSingSoft.WebControls2;
using TSingSoft.WebPluginFramework;
namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
{ {
@ -28,44 +37,196 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
} }
DFBrowseGrid _browseGrid; DFBrowseGrid _browseGrid;
string rootPath = "~/B3ButcherManageToSale/Overlays/";
protected override void InitForm(System.Web.UI.HtmlControls.HtmlForm form) protected override void InitForm(System.Web.UI.HtmlControls.HtmlForm form)
{ {
base.InitForm(form); base.InitForm(form);
CreateQueryPanel(form.EAdd(new VLayoutPanel())); CreateQueryPanel(form.EAdd(new VLayoutPanel()));
CreateResultPanel(form.EAdd(new TitlePanel("查询结果"))); 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<DFChoiceBox>("AccountingUnit_ID").Value);
url = AspUtil.AddParamToUrl(url, "DepartmentID", mQueryContainer.GetControl<DFChoiceBox>("Department_ID").Value);
url = AspUtil.AddParamToUrl(url, "Date", HttpUtility.UrlEncode(mQueryContainer.GetControl<DFDateInput>("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) private void CreateQueryPanel(VLayoutPanel panel)
{ {
var manager = new LayoutManager("", _dFInfo, mQueryContainer); var manager = new LayoutManager("", _dFInfo, mQueryContainer);
manager.Add("AccountingUnit_ID", QueryCreator.DFChoiceBox(_dFInfo.Fields["AccountingUnit_ID"], B3FrameworksConsts.DataSources.)); 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("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); var config = manager.CreateDefaultConfig(6);
config.Expand = false; 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)); var hPanel = panel.Add(new HLayoutPanel(), new VLayoutOption(HorizontalAlign.Left));
hPanel.Add(new TSButton("查询", delegate hPanel.Add(new TSButton("查询", delegate
{ {
StartQuery(); StartQuery();
if (!createBt.Enabled)
createBt.Enabled = true;
})); }));
} }
private void CreateResultPanel(TitlePanel titlePanel) 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() private void StartQuery()
{ {
_browseGrid.Query = GetQueryDom();
_browseGrid.DataBind();
_browseGrid.CurrentPageIndex = 0;
} }
DQueryDom GetQueryDom() DQueryDom GetQueryDom()
{ {
return null;
var dateInput = mQueryContainer.GetControl<DFDateInput>("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<Money<decimal>?>(), "缺货数量"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.LogicCase(DQCondition.GreaterThan(col, DQExpression.Value(0)), col, DQExpression.NULL).ECastType<Money<decimal>?>(), "剩余数量"));
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<decimal>? OrderNumber { get; set; }
public Money<decimal>? ProductNumber { get; set; }
public Money<decimal>? 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;
} }
} }
} }

+ 0
- 8
B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/OrderMatchPage.xml View File

@ -15,14 +15,6 @@
<Field name="Department_ID"/> <Field name="Department_ID"/>
<QBE paramName="Department_ID"/> <QBE paramName="Department_ID"/>
</EQ> </EQ>
<GreaterThanOrEqual>
<Field name="LoadTime"/>
<QBE paramName="MinLoadTime" />
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="LoadTime"/>
<QBE paramName="MaxLoadTime"/>
</LessThanOrEqual>
</And> </And>
</Where> </Where>
</Select> </Select>

+ 104
- 0
B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/StoreDetailPage.cs View File

@ -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<int> SumColumnIndex
{
get
{
if (ViewState["sc"] == null)
ViewState["sc"] = new List<int>();
return (List<int>)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();
}
}
}
}

+ 1
- 0
B3ButcherManageToSale.Web/PluginClass.cs View File

@ -12,6 +12,7 @@ namespace BWP.Web.Pages
public void OnInit() public void OnInit()
{ {
WpfPageFactory.RegisterPageOverlay(typeof(B3ButcherManage.Tools.SaleOutStoreBalance).FullName, typeof(B3ButcherManageToSale.Overlays.SaleOutStoreBalance).FullName); WpfPageFactory.RegisterPageOverlay(typeof(B3ButcherManage.Tools.SaleOutStoreBalance).FullName, typeof(B3ButcherManageToSale.Overlays.SaleOutStoreBalance).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(B3ButcherManage.Tools.OrderMatchPage).FullName, typeof(B3ButcherManageToSale.Overlays.OrderMatchPage).FullName);
} }
} }
} }

Loading…
Cancel
Save