|
|
@ -26,7 +26,7 @@ using TSingSoft.WebPluginFramework.Controls; |
|
|
|
|
|
|
|
|
namespace BWP.Web.Pages.B3QingDaoWanFu.Tools |
|
|
namespace BWP.Web.Pages.B3QingDaoWanFu.Tools |
|
|
{ |
|
|
{ |
|
|
class CarLoadingBySendLinePage:AppBasePage |
|
|
|
|
|
|
|
|
class CarLoadingBySendLinePage : AppBasePage |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
private readonly DFInfo _dFInfo = DFInfo.Get(typeof(SaleOutStore)); |
|
|
private readonly DFInfo _dFInfo = DFInfo.Get(typeof(SaleOutStore)); |
|
|
@ -58,7 +58,9 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Tools |
|
|
|
|
|
|
|
|
var btnSearch = new TSButton("开始查询", (sender, e) => |
|
|
var btnSearch = new TSButton("开始查询", (sender, e) => |
|
|
{ |
|
|
{ |
|
|
_slGrid.Query = GetSendLineQuery(_slQueryContainer.Build(), _slChbHidden.Checked); |
|
|
|
|
|
|
|
|
var min = (DateTime?)_slQueryContainer.GetInput("MinLoadTime"); |
|
|
|
|
|
var max = (DateTime?)_slQueryContainer.GetInput("MaxLoadTime"); |
|
|
|
|
|
_slGrid.Query = GetSendLineQuery(_slQueryContainer.Build(), _slChbHidden.Checked, min, max); |
|
|
_slGrid.DataBind(); |
|
|
_slGrid.DataBind(); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
@ -99,8 +101,8 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Tools |
|
|
private void CreateSendLineGridColumns() |
|
|
private void CreateSendLineGridColumns() |
|
|
{ |
|
|
{ |
|
|
_slGrid.Columns.Add(new DFBrowseGridColumn("路线")); |
|
|
_slGrid.Columns.Add(new DFBrowseGridColumn("路线")); |
|
|
_slGrid.Columns.Add(new DFBrowseGridColumn("辅数量")); |
|
|
|
|
|
// _slGrid.Columns.Add(new DFBrowseGridColumn("AllUnitNum"));
|
|
|
|
|
|
|
|
|
_slGrid.Columns.Add(new DFBrowseGridColumn("SecondNumber", "辅数量")); |
|
|
|
|
|
// _slGrid.Columns.Add(new DFBrowseGridColumn("AllUnitNum"));
|
|
|
var allUnitNumcol = new DFBrowseGridCustomExtColumn((row, cell, rowIndex) => |
|
|
var allUnitNumcol = new DFBrowseGridCustomExtColumn((row, cell, rowIndex) => |
|
|
{ |
|
|
{ |
|
|
var allUnitNum = _slGrid.CurrentData.Data.Rows[rowIndex]["AllUnitNum"]; |
|
|
var allUnitNum = _slGrid.CurrentData.Data.Rows[rowIndex]["AllUnitNum"]; |
|
|
@ -139,11 +141,10 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Tools |
|
|
}; |
|
|
}; |
|
|
cell.Controls.Add(link); |
|
|
cell.Controls.Add(link); |
|
|
cell.Align = "right"; |
|
|
cell.Align = "right"; |
|
|
}) |
|
|
|
|
|
{ HeaderText = "报价数量" }; |
|
|
|
|
|
|
|
|
}) { HeaderText = "报价数量" }; |
|
|
_slGrid.Columns.EAdd(allUnitNumcol); |
|
|
_slGrid.Columns.EAdd(allUnitNumcol); |
|
|
|
|
|
|
|
|
_slGrid.Columns.Add(new DFBrowseGridColumn("已派车数量")); |
|
|
|
|
|
|
|
|
_slGrid.Columns.Add(new DFBrowseGridColumn("AlreadyNumber", "已派车数量")); |
|
|
var thisTimeLoadNum = new DFBrowseGridCustomExtColumn((row, cell, rowIndex) => |
|
|
var thisTimeLoadNum = new DFBrowseGridCustomExtColumn((row, cell, rowIndex) => |
|
|
{ |
|
|
{ |
|
|
var x = new Label(); |
|
|
var x = new Label(); |
|
|
@ -152,8 +153,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Tools |
|
|
x.Text = num.ToString(); |
|
|
x.Text = num.ToString(); |
|
|
cell.Controls.Add(x); |
|
|
cell.Controls.Add(x); |
|
|
cell.Align = "right"; |
|
|
cell.Align = "right"; |
|
|
}) |
|
|
|
|
|
{ HeaderText = "本次派车数量" }; |
|
|
|
|
|
|
|
|
}) { HeaderText = "本次派车数量" }; |
|
|
_slGrid.Columns.Add(thisTimeLoadNum); |
|
|
_slGrid.Columns.Add(thisTimeLoadNum); |
|
|
var staffColumn = new DFEditGridColumn<DFChoiceBox>("业务员ID"); |
|
|
var staffColumn = new DFEditGridColumn<DFChoiceBox>("业务员ID"); |
|
|
staffColumn.InitEditControl += (sender, e) => |
|
|
staffColumn.InitEditControl += (sender, e) => |
|
|
@ -233,8 +233,8 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Tools |
|
|
|
|
|
|
|
|
_slGrid.DataBind(); |
|
|
_slGrid.DataBind(); |
|
|
AspUtil.Alert(this, msg); |
|
|
AspUtil.Alert(this, msg); |
|
|
|
|
|
|
|
|
// _carLoadingGrid.DataBind();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// _carLoadingGrid.DataBind();
|
|
|
} |
|
|
} |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
@ -247,76 +247,84 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Tools |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private class AreadyLoadBill |
|
|
|
|
|
{ |
|
|
|
|
|
public long SaleOutStore_ID { get; set; } |
|
|
|
|
|
} |
|
|
|
|
|
public static DQueryDom GetSendLineQuery(DQueryDom dom, bool hidden) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static DQueryDom GetSendLineQuery(DQueryDom dom, bool hidden, DateTime? min, DateTime? max) |
|
|
{ |
|
|
{ |
|
|
var areadyLoadBill = new JoinAlias("AreadyLoadBill", typeof(AreadyLoadBill)); |
|
|
|
|
|
|
|
|
var main = new JoinAlias(typeof(temp2)); |
|
|
|
|
|
var query = new DQueryDom(main); |
|
|
|
|
|
OrganizationUtil.RegisterOrganizationQueryTable(query); |
|
|
|
|
|
AreadyLoadBill.Register(query, min, max); |
|
|
|
|
|
temp2.Register(query, dom, hidden); |
|
|
var sendLine = new JoinAlias("SendLine", typeof(DeliverGoodsLine)); |
|
|
var sendLine = new JoinAlias("SendLine", typeof(DeliverGoodsLine)); |
|
|
var sendLineDetail = new JoinAlias(typeof(DeliverGoodsLine_Detail)); |
|
|
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(sendLineDetail), DQCondition.EQ(sendLineDetail, "Customer_ID", dom.From.RootSource.Alias, "Customer_ID")); |
|
|
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(sendLine), DQCondition.EQ(sendLineDetail, "DeliverGoodsLine_ID", sendLine, "ID")); |
|
|
|
|
|
dom.RegisterQueryTable(typeof(AreadyLoadBill), new List<string> { "SaleOutStore_ID" }, GetTemDom()); |
|
|
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(areadyLoadBill), DQCondition.EQ(areadyLoadBill, "SaleOutStore_ID", dom.From.RootSource.Alias, "ID")); |
|
|
|
|
|
|
|
|
|
|
|
dom.Columns.Clear(); |
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "ID"), "路线ID")); |
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Name"), "路线")); |
|
|
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(sendLine, "ID")); |
|
|
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(sendLine, "Name")); |
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("AllUnitNum")), "AllUnitNum")); |
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("SecondNumber")), "辅数量")); |
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.GreaterThan(DQExpression.Field(areadyLoadBill, "SaleOutStore_ID"), DQExpression.Snippet<long>("0")), DQExpression.Field("AllUnitNum"), DQExpression.NULL)), "已派车数量")); |
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<Money<decimal>?>("null"), "本次派车数量")); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<long?>("null"), "业务员ID"));
|
|
|
|
|
|
// dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("''"), "业务员"));
|
|
|
|
|
|
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(sendLine), DQCondition.EQ(main, "DeliverGoodsLine_ID", sendLine, "ID")); |
|
|
|
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Employee_ID"), "业务员ID")); |
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Employee_Name"), "业务员")); |
|
|
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(sendLine, "Employee_ID")); |
|
|
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(sendLine, "Employee_Name")); |
|
|
|
|
|
|
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Employee_ID"), "送货人员ID")); |
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Employee_Name"), "送货人员")); |
|
|
|
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "ID"), "路线ID")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Name"), "路线")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("AllUnitNum", main)); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("SecondNumber", main)); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("AlreadyNumber", main)); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<Money<decimal>?>("null"), "本次派车数量")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Employee_ID"), "业务员ID")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Employee_Name"), "业务员")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Employee_ID"), "送货人员ID")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Employee_Name"), "送货人员")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Car_ID"), "车辆ID")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Car_Name"), "车辆")); |
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("''"), "Remark")); |
|
|
|
|
|
return query; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<long?>("null"), "送货人员ID"));
|
|
|
|
|
|
// dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("''"), "送货人员"));
|
|
|
|
|
|
|
|
|
class temp2 |
|
|
|
|
|
{ |
|
|
|
|
|
public long? DeliverGoodsLine_ID { get; set; } |
|
|
|
|
|
public Money<decimal>? AllUnitNum { get; set; } |
|
|
|
|
|
public Money<decimal>? SecondNumber { get; set; } |
|
|
|
|
|
public Money<decimal>? AlreadyNumber { get; set; } |
|
|
|
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine,"Car_ID"), "车辆ID")); |
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(sendLine, "Car_Name"), "车辆")); |
|
|
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(sendLine, "Car_ID")); |
|
|
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(sendLine, "Car_Name")); |
|
|
|
|
|
// dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<long?>("null"), "车辆ID"));
|
|
|
|
|
|
// dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("''"), "车辆"));
|
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("''"), "Remark")); |
|
|
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ("BillState", 单据状态.未审核)); |
|
|
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ("TakeGoods_Type", 配送方式.公司配送)); |
|
|
|
|
|
dom.Where.Conditions.Add(DQCondition.GreaterThan(DQExpression.IfNull(DQExpression.Field(sendLine, "ID"), DQExpression.Snippet<long>("0")), DQExpression.Snippet<long>("0"))); |
|
|
|
|
|
dom.Where.Conditions.Add(DQCondition.Or( |
|
|
|
|
|
DQCondition.InEQ(DQExpression.Field("AllUnitNum"), DQExpression.Snippet<Money<decimal>?>("0")), |
|
|
|
|
|
DQCondition.InEQ(DQExpression.Field("SecondNumber"), DQExpression.Snippet<Money<decimal>?>("0")))); |
|
|
|
|
|
if (hidden) |
|
|
|
|
|
|
|
|
public static void Register(DQueryDom root, DQueryDom dom, bool hidden) |
|
|
{ |
|
|
{ |
|
|
dom.Having.Conditions.Add(DQCondition.InEQ(DQExpression.Count(DQExpression.Field("ID")), DQExpression.Count(DQExpression.Field(areadyLoadBill, "SaleOutStore_ID")))); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
var areadyLoadBill = new JoinAlias("AreadyLoadBill", typeof(AreadyLoadBill)); |
|
|
|
|
|
dom.From.AddJoin(JoinType.Left, new DQDmoSource(areadyLoadBill), DQCondition.EQ(areadyLoadBill, "SaleOutStore_ID", dom.From.RootSource.Alias, "ID")); |
|
|
|
|
|
|
|
|
OrganizationUtil.AddOrganizationLimit(dom,typeof(SaleOutStore)); |
|
|
|
|
|
return dom; |
|
|
|
|
|
|
|
|
dom.Columns.Clear(); |
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Field("DeliverGoodsLine_ID")); |
|
|
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field("DeliverGoodsLine_ID")); |
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("AllUnitNum")), "AllUnitNum")); |
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("SecondNumber")), "辅数量")); |
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.IsNull(DQExpression.Field(areadyLoadBill, "SaleOutStore_ID")), DQExpression.NULL, DQExpression.Field("AllUnitNum"))), "已派车数量")); |
|
|
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ("BillState", 单据状态.未审核)); |
|
|
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ("TakeGoods_Type", 配送方式.公司配送)); |
|
|
|
|
|
dom.Where.Conditions.Add(DQCondition.IsNotNull(DQExpression.Field("DeliverGoodsLine_ID"))); |
|
|
|
|
|
dom.Where.Conditions.Add(DQCondition.Or( |
|
|
|
|
|
DQCondition.InEQ(DQExpression.IfNull(DQExpression.Field("AllUnitNum"), DQExpression.Value(0)), DQExpression.Value(0)), |
|
|
|
|
|
DQCondition.InEQ(DQExpression.IfNull(DQExpression.Field("SecondNumber"), DQExpression.Value(0)), DQExpression.Value(0)))); |
|
|
|
|
|
if (hidden) |
|
|
|
|
|
{ |
|
|
|
|
|
dom.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field(areadyLoadBill, "SaleOutStore_ID"))); |
|
|
|
|
|
} |
|
|
|
|
|
OrganizationUtil.AddOrganizationLimit(dom, typeof(SaleOutStore)); |
|
|
|
|
|
root.RegisterQueryTable(typeof(temp2), new string[] { "DeliverGoodsLine_ID", "AllUnitNum", "SecondNumber", "AlreadyNumber" }, dom); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
private static DQueryDom GetTemDom() |
|
|
|
|
|
|
|
|
public class AreadyLoadBill |
|
|
|
|
|
{ |
|
|
|
|
|
public long SaleOutStore_ID { get; set; } |
|
|
|
|
|
public static void Register(DQueryDom root, DateTime? min, DateTime? max) |
|
|
{ |
|
|
{ |
|
|
var carLoadingBillDetail = new JoinAlias(typeof(CarLoading_BillDetail)); |
|
|
var carLoadingBillDetail = new JoinAlias(typeof(CarLoading_BillDetail)); |
|
|
var temDom = new DQueryDom(carLoadingBillDetail); |
|
|
var temDom = new DQueryDom(carLoadingBillDetail); |
|
|
temDom.Columns.Add(DQSelectColumn.Field("BillID", "SaleOutStore_ID")); |
|
|
|
|
|
|
|
|
temDom.Columns.Add(DQSelectColumn.Field("BillID", carLoadingBillDetail, "SaleOutStore_ID")); |
|
|
|
|
|
temDom.GroupBy.Expressions.Add(DQExpression.Field(carLoadingBillDetail, "BillID")); |
|
|
|
|
|
if (min.HasValue) |
|
|
|
|
|
temDom.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("LoadTime", min)); |
|
|
|
|
|
if (max.HasValue) |
|
|
|
|
|
temDom.Where.Conditions.Add(DQCondition.LessThanOrEqual("LoadTime", max)); |
|
|
temDom.Where.Conditions.Add(DQCondition.EQ(carLoadingBillDetail, "BillTypeID", DmoTypeIDAttribute.GetID(typeof(SaleOutStore)))); |
|
|
temDom.Where.Conditions.Add(DQCondition.EQ(carLoadingBillDetail, "BillTypeID", DmoTypeIDAttribute.GetID(typeof(SaleOutStore)))); |
|
|
temDom.GroupBy.Expressions.Add(DQExpression.Field("BillID")); |
|
|
|
|
|
return temDom; |
|
|
|
|
|
|
|
|
root.RegisterQueryTable(typeof(AreadyLoadBill), new string[] { "SaleOutStore_ID" }, temDom); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |