|
|
|
@ -32,9 +32,11 @@ using TSingSoft.WebPluginFramework; |
|
|
|
using TSingSoft.WebPluginFramework.Controls; |
|
|
|
using TSingSoft.WebPluginFramework.Pages; |
|
|
|
|
|
|
|
namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
namespace BWP.Web.Pages.B3_DongFangWanQi.Tools |
|
|
|
{ |
|
|
|
|
|
|
|
class SaleOrderUpdateList : AppBasePage { |
|
|
|
class SaleOrderUpdateList : AppBasePage |
|
|
|
{ |
|
|
|
QueryContainer _queryContainer; |
|
|
|
readonly DFInfo _dFInfo = DFInfo.Get(typeof(Order)); |
|
|
|
private DFChoiceBox _goodsPropertyCatalog, _liuchengfenlei; |
|
|
|
@ -42,7 +44,8 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
private HiddenField hidden; |
|
|
|
private DFChoiceBox _storeInput, _accInput, _customerCatalogt, _customerInput; |
|
|
|
DFContainer<Order> mDFContainer = new DFContainer<Order>(); |
|
|
|
protected override void InitForm(HtmlForm form) { |
|
|
|
protected override void InitForm(HtmlForm form) |
|
|
|
{ |
|
|
|
_queryContainer = QueryContainer.FromResource(GetType().FullName + ".xml", GetType().Assembly); |
|
|
|
form.Controls.Add(new PageTitle("销售订单调整")); |
|
|
|
|
|
|
|
@ -93,7 +96,8 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
vp.Add(layoutManager.CreateLayout()); |
|
|
|
|
|
|
|
var tsbtn = new TSButton("开始查询"); |
|
|
|
tsbtn.Click += delegate { |
|
|
|
tsbtn.Click += delegate |
|
|
|
{ |
|
|
|
DataBindGrid(); |
|
|
|
}; |
|
|
|
var hPanel = new HLayoutPanel { Align = HorizontalAlign.Left }; |
|
|
|
@ -107,7 +111,8 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
|
|
|
|
var vPanel = new VLayoutPanel(); |
|
|
|
form.Controls.Add(vPanel); |
|
|
|
hidden = new HiddenField { |
|
|
|
hidden = new HiddenField |
|
|
|
{ |
|
|
|
ID = "__hidden", |
|
|
|
Value = null |
|
|
|
}; |
|
|
|
@ -115,7 +120,8 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
mDFContainer.AddNonDFControl(hidden, "$HiddenField01"); |
|
|
|
// addOperations(vPanel);
|
|
|
|
} |
|
|
|
protected override void OnPreRender(EventArgs e) { |
|
|
|
protected override void OnPreRender(EventArgs e) |
|
|
|
{ |
|
|
|
|
|
|
|
base.OnPreRender(e); |
|
|
|
var style = @" <style>
|
|
|
|
@ -148,18 +154,20 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
|
|
|
|
|
|
|
|
DFBrowseGrid _grid; |
|
|
|
void AddDetails(TitlePanel tPanel) { |
|
|
|
void AddDetails(TitlePanel tPanel) |
|
|
|
{ |
|
|
|
|
|
|
|
tPanel.Controls.Add(new LiteralControl("<br /><br />")); |
|
|
|
|
|
|
|
var editor = new DFDataTableEditor(); |
|
|
|
_grid = new DFBrowseGrid(editor) { |
|
|
|
_grid = new DFBrowseGrid(editor) |
|
|
|
{ |
|
|
|
Width = Unit.Percentage(100), |
|
|
|
IgnoreItemsCount = true, |
|
|
|
DFGridSetEnabled = false, |
|
|
|
}; |
|
|
|
|
|
|
|
_grid.Columns.Add(new DFBrowseGridColumn("GoodsProperty_Name")); |
|
|
|
_grid.Columns.Add(new DFBrowseGridColumn("存货属性名称")); |
|
|
|
_grid.Columns.Add(new DFBrowseGridColumn("单品测算数量")); |
|
|
|
_grid.Columns.Add(new DFBrowseGridColumn("牛头数")); |
|
|
|
_grid.Columns.Add(new DFBrowseGridColumn("分完数量")); |
|
|
|
@ -169,7 +177,8 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
//_grid.Columns.Add(new DFBrowseGridColumn("AdjustNumber"));
|
|
|
|
_grid.Columns.Add(new DFBrowseGridColumn("预计剩余数量")); |
|
|
|
//_grid.Columns.Add(new DFBrowseGridColumn("预计剩余头数"));
|
|
|
|
_grid.OnDetailDataBound += (htmlRow, dataRow, o) => { |
|
|
|
_grid.OnDetailDataBound += (htmlRow, dataRow, o) => |
|
|
|
{ |
|
|
|
var row = dataRow as DFDataRow; |
|
|
|
if (row == null) |
|
|
|
return; |
|
|
|
@ -183,16 +192,19 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private void AddLinkBt(int o, DFDataRow row, int numberIndext, decimal? diff, HtmlTableRow htmlRow) { |
|
|
|
private void AddLinkBt(int o, DFDataRow row, int numberIndext, decimal? diff, HtmlTableRow htmlRow) |
|
|
|
{ |
|
|
|
var bt = new DialogButton(); |
|
|
|
bt.CssClass = "btn"; |
|
|
|
bt.Text = htmlRow.Cells[numberIndext].InnerText; |
|
|
|
|
|
|
|
if (o % 2 != 1) { |
|
|
|
if (o % 2 != 1) |
|
|
|
{ |
|
|
|
bt.CssClass = "btn evenbtn"; |
|
|
|
} |
|
|
|
|
|
|
|
if (diff < 0) { |
|
|
|
if (diff < 0) |
|
|
|
{ |
|
|
|
bt.BorderStyle = BorderStyle.Solid; |
|
|
|
bt.BorderColor = Color.Red; |
|
|
|
bt.BorderWidth = 1; |
|
|
|
@ -202,13 +214,13 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
|
|
|
|
|
|
|
|
var idField = (long?)row["GoodsProperty_ID"]; |
|
|
|
var number = (( decimal ?)row["可用与预算合计"]) ?? 0; |
|
|
|
var number = ((decimal?)row["可用与预算合计"]) ?? 0; |
|
|
|
var mainNumber = ((decimal?)row["牛头数"]) ?? 0; |
|
|
|
var date = (DateTime?)row["测算日期"] ; |
|
|
|
var date = (DateTime?)row["测算日期"]; |
|
|
|
var url = AspUtil.UpdateUrlParam("SaleOrderUpdateEdit.aspx", "GoodsProperty_ID", (idField ?? 0).ToString()); |
|
|
|
url = AspUtil.UpdateUrlParam(url, "number", number.ToString()); |
|
|
|
url = AspUtil.UpdateUrlParam(url, "mainNumber", mainNumber.ToString("#")); |
|
|
|
if(date.HasValue) |
|
|
|
if (date.HasValue) |
|
|
|
{ |
|
|
|
url = AspUtil.UpdateUrlParam(url, "date", date.Value.ToString("yyyy-MM-dd")); |
|
|
|
} |
|
|
|
@ -218,7 +230,8 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
bt.Click += delegate { _grid.DataBind(); }; |
|
|
|
} |
|
|
|
|
|
|
|
private void DataBindGrid() { |
|
|
|
private void DataBindGrid() |
|
|
|
{ |
|
|
|
|
|
|
|
var args = new LoadArguments(GetQueryDom()); |
|
|
|
|
|
|
|
@ -228,14 +241,15 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
_grid.DataBind(); |
|
|
|
} |
|
|
|
|
|
|
|
private DQueryDom GetQueryDom() { |
|
|
|
private DQueryDom GetQueryDom() |
|
|
|
{ |
|
|
|
|
|
|
|
var bill = new JoinAlias(typeof(OrderTmp)); |
|
|
|
var goodsProperty = new JoinAlias(typeof(GoodsProperty)); |
|
|
|
var storeDetail = new JoinAlias(typeof(StoreDetailTmp)); |
|
|
|
var output = new JoinAlias(typeof(OutputTmp)); |
|
|
|
var outputConfig = new JoinAlias(typeof(OutputConfigTmp)); |
|
|
|
var dom = new DQueryDom(bill); |
|
|
|
var dom = new DQueryDom(output); |
|
|
|
OrganizationUtil.RegisterOrganizationQueryTable(dom); |
|
|
|
var context = new AvailableStorageContext { Usage = StorageUsage.Sale }; |
|
|
|
|
|
|
|
@ -244,15 +258,15 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
//汇总可用库存
|
|
|
|
RegisgterAvaliableStorageSumTable(dom); |
|
|
|
dom.RegisterQueryTable(typeof(OrderTmp), new[] { "GoodsProperty_ID", "Number", "SecondNumber", "UnitNum", "AdjustNumber" }, GetOrderDQueryDom()); |
|
|
|
dom.RegisterQueryTable(typeof(OutputTmp), new[] { "GoodsProperty_ID", "Number", "MainNumber","Date" }, GetOutputDQueryDom()); |
|
|
|
dom.RegisterQueryTable(typeof(OutputTmp), new[] { "GoodsProperty_ID", "Number", "MainNumber", "Date" }, GetOutputDQueryDom()); |
|
|
|
dom.RegisterQueryTable(typeof(OutputConfigTmp), new[] { "GoodsProperty_ID", "Number" }, GetOutputConfigureDom()); |
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goodsProperty), DQCondition.EQ(bill, "GoodsProperty_ID", goodsProperty, "ID")); |
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(storeDetail), DQCondition.EQ(bill, "GoodsProperty_ID", storeDetail, "GoodsProperty_ID")); |
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(output), DQCondition.EQ(bill, "GoodsProperty_ID", output, "GoodsProperty_ID")); |
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(outputConfig), DQCondition.EQ(bill, "GoodsProperty_ID", outputConfig, "GoodsProperty_ID")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("GoodsProperty_ID", bill)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("GoodsProperty_Name", bill)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(outputConfig,"Number"),"单品测算数量")); |
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(bill), DQCondition.EQ(bill, "GoodsProperty_ID", output, "GoodsProperty_ID")); |
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goodsProperty), DQCondition.EQ(output, "GoodsProperty_ID", goodsProperty, "ID")); |
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(storeDetail), DQCondition.EQ(output, "GoodsProperty_ID", storeDetail, "GoodsProperty_ID")); |
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(outputConfig), DQCondition.EQ(output, "GoodsProperty_ID", outputConfig, "GoodsProperty_ID")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("GoodsProperty_ID", output)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(output, "GoodsProperty_Name"), "存货属性名称")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(outputConfig, "Number"), "单品测算数量")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(output, "MainNumber"), "牛头数")); |
|
|
|
//dom.Columns.Add(DQSelectColumn.Field("AdjustNum", bill));
|
|
|
|
|
|
|
|
@ -271,7 +285,8 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
return dom; |
|
|
|
} |
|
|
|
|
|
|
|
class OutputConfigTmp { |
|
|
|
class OutputConfigTmp |
|
|
|
{ |
|
|
|
public long GoodsProperty_ID { get; set; } |
|
|
|
|
|
|
|
[LogicName("主数量")] |
|
|
|
@ -280,7 +295,8 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private DQueryDom GetOutputConfigureDom() { |
|
|
|
private DQueryDom GetOutputConfigureDom() |
|
|
|
{ |
|
|
|
|
|
|
|
var dom = new DQueryDom(new JoinAlias(typeof(OutputConfigure))); |
|
|
|
dom.Columns.Add(DQSelectColumn.Max("ID")); |
|
|
|
@ -311,12 +327,14 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
return query; |
|
|
|
} |
|
|
|
|
|
|
|
static IDQExpression ESubtract(IDQExpression expression, IDQExpression right) { |
|
|
|
static IDQExpression ESubtract(IDQExpression expression, IDQExpression right) |
|
|
|
{ |
|
|
|
return DQExpression.Subtract(expression, DQExpression.IfNull(right, DQExpression.ConstValue(0.0m))); |
|
|
|
} |
|
|
|
|
|
|
|
[DFClass] |
|
|
|
class OrderTmp { |
|
|
|
class OrderTmp |
|
|
|
{ |
|
|
|
[LogicName("存货属性")] |
|
|
|
public long? GoodsProperty_ID { get; set; } |
|
|
|
|
|
|
|
@ -333,13 +351,14 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
[ReferenceTo(typeof(GoodsProperty), "Name")] |
|
|
|
[Join("GoodsProperty_ID", "ID")] |
|
|
|
public string GoodsProperty_Name { get; set; } |
|
|
|
|
|
|
|
|
|
|
|
[LogicName("调整次数")] |
|
|
|
public int AdjustNumber { get; set; } |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
class StoreDetailTmp { |
|
|
|
class StoreDetailTmp |
|
|
|
{ |
|
|
|
public long GoodsProperty_ID { get; set; } |
|
|
|
|
|
|
|
[LogicName("主数量")] |
|
|
|
@ -350,9 +369,20 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
class OutputTmp { |
|
|
|
class StoreOrderTmp |
|
|
|
{ |
|
|
|
public long? GoodsProperty_ID { get; set; } |
|
|
|
public long? Goods_ID { get; set; } |
|
|
|
} |
|
|
|
|
|
|
|
class OutputTmp |
|
|
|
{ |
|
|
|
public long GoodsProperty_ID { get; set; } |
|
|
|
|
|
|
|
[ReferenceTo(typeof(GoodsProperty), "Name")] |
|
|
|
[Join("GoodsProperty_ID", "ID")] |
|
|
|
public string GoodsProperty_Name { get; set; } |
|
|
|
|
|
|
|
[LogicName("主数量")] |
|
|
|
public Money<decimal>? Number { get; set; } |
|
|
|
|
|
|
|
@ -363,10 +393,11 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
public DateTime? Date { get; set; } |
|
|
|
|
|
|
|
[LogicName("牛头数")] |
|
|
|
public decimal ? MainNumber { get; set; } |
|
|
|
public decimal? MainNumber { get; set; } |
|
|
|
} |
|
|
|
|
|
|
|
DQueryDom GetOrderDQueryDom() { |
|
|
|
DQueryDom GetOrderDQueryDom() |
|
|
|
{ |
|
|
|
var dom = _queryContainer.Build(); |
|
|
|
var bill = dom.From.RootSource.Alias; |
|
|
|
var flowdetail = new JoinAlias("flowdetail", typeof(DepartmentWorkFlow_Detail)); |
|
|
|
@ -385,7 +416,8 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(adjustnumber), DQCondition.EQ(adjustnumber, "GoodsProperty_ID", goodsProperty, "ID")); |
|
|
|
|
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(flowdetail), DQCondition.EQ(bill, "DepartmentWorkFlow_Detail_ID", flowdetail, "ID")); |
|
|
|
if (!_liuchengfenlei.IsEmpty) { |
|
|
|
if (!_liuchengfenlei.IsEmpty) |
|
|
|
{ |
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ(flowdetail, "DepartmentWorkFlowStateCategory_ID", long.Parse(_liuchengfenlei.Value))); |
|
|
|
} |
|
|
|
AddGoodsCondition(goodsPropertyCatalog, goodsProperty, dom); |
|
|
|
@ -400,11 +432,13 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ("BillState", 单据状态.未审核)); |
|
|
|
|
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ(bill, "Domain_ID", DomainContext.Current.ID)); |
|
|
|
if (!_customerCatalogt.IsEmpty) { |
|
|
|
if (!_customerCatalogt.IsEmpty) |
|
|
|
{ |
|
|
|
var strs = B3SaleWebUtil.GetDeepByTreeName(_customerCatalogt.DisplayValue); |
|
|
|
var conditions = new List<IDQExpression>(); |
|
|
|
var values = _customerCatalogt.GetValues(); |
|
|
|
for (int index = 0; index < values.Length; index++) { |
|
|
|
for (int index = 0; index < values.Length; index++) |
|
|
|
{ |
|
|
|
var value = values[index]; |
|
|
|
conditions.Add(DQCondition.EQ(customer, "CustomerCatalog_TreeDeep" + strs[index] + "ID", value)); |
|
|
|
} |
|
|
|
@ -416,7 +450,8 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
return dom; |
|
|
|
} |
|
|
|
|
|
|
|
DQueryDom GetStoreDetailDQueryDom() { |
|
|
|
DQueryDom GetStoreDetailDQueryDom() |
|
|
|
{ |
|
|
|
var storeDetail = new JoinAlias(typeof(StoreDetail)); |
|
|
|
var store = new JoinAlias(typeof(Store)); |
|
|
|
var query = new DQueryDom(storeDetail); |
|
|
|
@ -443,7 +478,8 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
return query; |
|
|
|
} |
|
|
|
|
|
|
|
DQueryDom GetOutputDQueryDom() { |
|
|
|
DQueryDom GetOutputDQueryDom() |
|
|
|
{ |
|
|
|
var dom = new DQueryDom(new JoinAlias(typeof(OutputForecast))); |
|
|
|
dom.Columns.Add(DQSelectColumn.Max("ID")); |
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID)); |
|
|
|
@ -476,61 +512,69 @@ namespace BWP.Web.Pages.B3_DongFangWanQi.Tools { |
|
|
|
return query; |
|
|
|
} |
|
|
|
|
|
|
|
void RegisgterAvaliableStorageSumTable(DQueryDom outerQuery) { |
|
|
|
|
|
|
|
var union = new JoinAlias(typeof(AvailableStorageUtil.AvailableStorageUnionTable)); |
|
|
|
var store = new JoinAlias(typeof(Store)); |
|
|
|
var query = new DQueryDom(union); |
|
|
|
void RegisgterAvaliableStorageSumTable(DQueryDom outerQuery) |
|
|
|
{ |
|
|
|
var order = new JoinAlias(typeof(Order)); |
|
|
|
var detailAlias = new JoinAlias(typeof(Order_Detail)); |
|
|
|
var goodsPropertyCatalog = new JoinAlias(typeof(GoodsPropertyCatalog)); |
|
|
|
var goodsProperty = new JoinAlias(typeof(GoodsProperty)); |
|
|
|
var goods = new JoinAlias(typeof(SaleGoods)); |
|
|
|
var query = new DQueryDom(order); |
|
|
|
|
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(union, "Goods_ID", goods, "ID")); |
|
|
|
query.From.AddJoin(JoinType.Inner, new DQDmoSource(detailAlias), |
|
|
|
DQCondition.EQ(order, "ID", detailAlias, "Order_ID")); |
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(detailAlias, "SaleGoods_ID", goods, "ID")); |
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(goodsProperty), DQCondition.EQ(goodsProperty, "ID", goods, "GoodsProperty_ID")); |
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(goodsPropertyCatalog), DQCondition.EQ(goodsProperty, "GoodsPropertyCatalog_ID", goodsPropertyCatalog, "ID")); |
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(store), DQCondition.EQ(union, "Store_ID", store, "ID")); |
|
|
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("ID", goodsProperty)); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("Number")), "主数量")); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("SecondNumber")), "辅数量")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("SaleGoods_ID", detailAlias)); |
|
|
|
|
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field(goodsProperty, "ID")); |
|
|
|
AddGoodsCondition(goodsPropertyCatalog, goodsProperty, query); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ(store, "Domain_ID", DomainContext.Current.ID)); |
|
|
|
|
|
|
|
var config = AvailableStroageSourceConfigBL.Instance.Load(); |
|
|
|
|
|
|
|
var selectedNames = (config.SelectedNames ?? "").Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries) ; |
|
|
|
|
|
|
|
if( selectedNames.Contains("销售订单")) |
|
|
|
{ |
|
|
|
query.Where.Conditions.Add(DQCondition.InEQ("Source", "销售订单")); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
outerQuery.RegisterQueryTable(typeof(StoreDetailTmp), new[] { "GoodsProperty_ID", "Number", "SecondNumber" }, query); |
|
|
|
|
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field(detailAlias, "SaleGoods_ID")); |
|
|
|
//AddGoodsCondition(goodsPropertyCatalog, goodsProperty, query);
|
|
|
|
query.Where.Conditions.Add(DQCondition.EQ(order, "BillState", 单据状态.未审核)); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ(order, "Domain_ID", DomainContext.Current.ID)); |
|
|
|
outerQuery.RegisterQueryTable(typeof(StoreOrderTmp), new[] { "GoodsProperty_ID", "Goods_ID"}, query); |
|
|
|
|
|
|
|
|
|
|
|
var sotmp = new JoinAlias(typeof(StoreOrderTmp)); |
|
|
|
var stdetail = new JoinAlias(typeof(StoreDetail)); |
|
|
|
var dom = new DQueryDom(sotmp); |
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(stdetail), DQCondition.EQ(stdetail, "Goods_ID", sotmp, "Goods_ID")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("GoodsProperty_ID", sotmp)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Sum(stdetail, "Number")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Sum(stdetail, "SecondNumber")); |
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(sotmp, "GoodsProperty_ID")); |
|
|
|
outerQuery.RegisterQueryTable(typeof(StoreDetailTmp), new[] { "GoodsProperty_ID", "Number", "SecondNumber" },dom); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void AddGoodsCondition(JoinAlias goodsPropertyCatalog, JoinAlias goodsProperty, DQueryDom dom) { |
|
|
|
if (!_goodsPropertyCatalog.IsEmpty) { |
|
|
|
private void AddGoodsCondition(JoinAlias goodsPropertyCatalog, JoinAlias goodsProperty, DQueryDom dom) |
|
|
|
{ |
|
|
|
if (!_goodsPropertyCatalog.IsEmpty) |
|
|
|
{ |
|
|
|
var strs = B3SaleWebUtil.GetDeepByTreeName(_goodsPropertyCatalog.DisplayValue); |
|
|
|
var conditions = new List<IDQExpression>(); |
|
|
|
var values = _goodsPropertyCatalog.GetValues(); |
|
|
|
for (int index = 0; index < values.Length; index++) { |
|
|
|
for (int index = 0; index < values.Length; index++) |
|
|
|
{ |
|
|
|
var value = values[index]; |
|
|
|
conditions.Add(DQCondition.EQ(goodsPropertyCatalog, "TreeDeep" + strs[index] + "ID", value)); |
|
|
|
} |
|
|
|
dom.Where.Conditions.Add(DQCondition.Or(conditions)); |
|
|
|
} |
|
|
|
if (!_goodsProperty.IsEmpty) { |
|
|
|
if (!_goodsProperty.IsEmpty) |
|
|
|
{ |
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ(goodsProperty, "ID", long.Parse(_goodsProperty.Value))); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
protected override void OnLoad(EventArgs e) { |
|
|
|
protected override void OnLoad(EventArgs e) |
|
|
|
{ |
|
|
|
base.OnLoad(e); |
|
|
|
if (!IsPostBack) { |
|
|
|
if (!IsPostBack) |
|
|
|
{ |
|
|
|
DataBindGrid(); |
|
|
|
} |
|
|
|
} |
|
|
|
|