|
|
|
@ -40,9 +40,13 @@ namespace BWP.Web.Pages.B3YunKen.Reports |
|
|
|
|
|
|
|
CheckBoxListWithReverseSelect checkbox; |
|
|
|
DFChoiceBox _goods, _goodsPropertyCatalog, _brandItem, _productLine, _goodsBatch; |
|
|
|
DFTextBox _saleout; |
|
|
|
DFNamedValueInput<运费承担方> freightBear; |
|
|
|
//
|
|
|
|
private readonly DFInfo mDFInfo = DFInfo.Get(typeof(CustomerAccept)); |
|
|
|
private readonly DFInfo _detailInfo = DFInfo.Get(typeof(CustomerAccept_Detail)); |
|
|
|
|
|
|
|
|
|
|
|
protected override void InitQueryPanel(QueryPanel queryPanel) |
|
|
|
{ |
|
|
|
base.InitQueryPanel(queryPanel); |
|
|
|
@ -97,7 +101,7 @@ namespace BWP.Web.Pages.B3YunKen.Reports |
|
|
|
list.Add(new Tuple<string, string>("OutNum", "出库数量")); |
|
|
|
list.Add(new Tuple<string, string>("OutMoney", "出库金额")); |
|
|
|
list.Add(new Tuple<string, string>("CustomerDealer_Name", "经销商")); |
|
|
|
|
|
|
|
list.Add(new Tuple<string, string>("FreightBear", "运费承担方")); |
|
|
|
var section = mPageLayoutManager.AddSection("显示字段", "显示字段"); |
|
|
|
section.ApplyLayout(list, mPageLayoutManager); |
|
|
|
foreach (var item in list) { |
|
|
|
@ -168,10 +172,18 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); |
|
|
|
layout["CustomerDealer_ID"].NotAutoAddToContainer = true; |
|
|
|
layout.Add("ArriveTime", new SimpleLabel("到货时间"), QueryCreator.DateRange(mDFInfo.Fields["ID"], mQueryContainer, "MinArriveTime", "MaxArriveTime")); |
|
|
|
layout["ArriveTime"].NotAutoAddToContainer = true; |
|
|
|
var config = layout.CreateDefaultConfig(2); |
|
|
|
|
|
|
|
layout.Add("SaleOutID", new SimpleLabel("出库单号"), _saleout = QueryCreator.DFTextBox(mDFInfo.Fields["ID"])); |
|
|
|
layout["SaleOutID"].NotAutoAddToContainer = true; |
|
|
|
|
|
|
|
layout.Add("FreightBear", new SimpleLabel("运费承担方"), freightBear = QueryCreator.DFNameValueInputEnableMultiSelection<运费承担方>(mDFInfo.Fields["ID"])); |
|
|
|
layout["SaleOutID"].NotAutoAddToContainer = true; |
|
|
|
layout["FreightBear"].NotAutoAddToContainer = true; |
|
|
|
var config = layout.CreateDefaultConfig(4); |
|
|
|
config.Expand = false; |
|
|
|
config.Add("LoadTime"); |
|
|
|
config.Add("OrderDate"); |
|
|
|
//config.Add("SaleOutID");
|
|
|
|
//config.Add("ArriveTime");
|
|
|
|
//config.Add("AccountingUnit_ID");
|
|
|
|
//config.Add("Goods_ID");
|
|
|
|
@ -237,6 +249,7 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); |
|
|
|
DQCondition.EQ(goods, "ID", detail, "SaleGoods_ID")); |
|
|
|
|
|
|
|
var freightMoney = DQExpression.Multiply(DQExpression.Field(main, "FreightPrice"), DQExpression.Divide(DQExpression.Field(detail, "AcceptNum"), DQExpression.NullIfZero(DQExpression.Field(main, "AcceptNumber")))); |
|
|
|
var 包装费Exp = DQExpression.Multiply(DQExpression.Field(packageData, "Price"), DQExpression.Field(detail, "AcceptSecondNumber")); |
|
|
|
foreach (ListItem item in checkbox.Items) { |
|
|
|
if (!item.Selected) { continue; } |
|
|
|
var field = item.Value; |
|
|
|
@ -291,6 +304,8 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); |
|
|
|
case "LoadTime": |
|
|
|
case "ArriveTime": |
|
|
|
case "CustomerSaleZone_Name": |
|
|
|
case "FreightBear": |
|
|
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(outStore, field), item.Text)); |
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(outStore, field)); |
|
|
|
break; |
|
|
|
@ -335,14 +350,36 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); |
|
|
|
SumColumnIndexs.Add(dom.Columns.Count - 1); |
|
|
|
break; |
|
|
|
case "PackingMoney": |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Multiply(DQExpression.Field(packageData, "Price"), DQExpression.Field(detail, "AcceptSecondNumber"))), item.Text)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(包装费Exp), item.Text)); |
|
|
|
SumColumnIndexs.Add(dom.Columns.Count - 1); |
|
|
|
break; |
|
|
|
case "NetPrice": |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Divide(DQExpression.Sum(DQExpression.Subtract(DQExpression.Field(detail, "Money"), DQExpression.IfNull(freightMoney, DQExpression.Value(0))).ESubtract(DQExpression.IfNull(DQExpression.Field(packageData, "Price"), DQExpression.Value(0)))), DQExpression.NullIfZero(DQExpression.Sum(DQExpression.Field(detail, "AcceptNum")))), item.Text)); |
|
|
|
|
|
|
|
var 购方netExp = DQExpression.Divide(DQExpression.Sum(DQExpression.Subtract(DQExpression.Field(detail, "Money"), DQExpression.IfNull(包装费Exp, DQExpression.Value(0)))) , DQExpression.NullIfZero(DQExpression.Sum(DQExpression.Field(detail, "AcceptNum")))); |
|
|
|
|
|
|
|
var 供方netExp = DQExpression.Divide(DQExpression.Sum(DQExpression.Subtract(DQExpression.Field(detail, "Money"), DQExpression.IfNull(freightMoney, DQExpression.Value(0))).ESubtract(DQExpression.IfNull(包装费Exp, DQExpression.Value(0)))), DQExpression.NullIfZero(DQExpression.Sum(DQExpression.Field(detail, "AcceptNum")))); |
|
|
|
|
|
|
|
var netExp = DQExpression.LogicCase(DQCondition.EQ(outStore, "FreightBear", 运费承担方.购方), 购方netExp, DQCondition.EQ(outStore, "FreightBear", 运费承担方.供方), 供方netExp, DQExpression.Value(null)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dom.Columns.Add(DQSelectColumn.Create(netExp, item.Text)); |
|
|
|
break; |
|
|
|
case "ToFreightNetPrice": |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Divide(DQExpression.Sum(DQExpression.Subtract(DQExpression.Field(detail, "Money"), DQExpression.IfNull(freightMoney, DQExpression.Value(0)))), DQExpression.NullIfZero(DQExpression.Sum(DQExpression.Field(detail, "AcceptNum")))), item.Text)); |
|
|
|
// 增加逻辑,当运费承担方为‘购方’:
|
|
|
|
//{去运费单价}= 验收单价
|
|
|
|
//{去包装净价}=(验收金额 - 包装费用)÷验收报价数量
|
|
|
|
// 当运费承担方为‘供方’
|
|
|
|
//{去运费单价}=(验收金额 - 运费费用)÷报价数量
|
|
|
|
//{去包装净价}=(验收金额 - 包装费用 - 运费)÷验收报价数量
|
|
|
|
|
|
|
|
var 购方priceExp = DQExpression.Field(detail, "AcceptPrice"); |
|
|
|
|
|
|
|
var 供方priceExp = DQExpression.Divide(DQExpression.Sum(DQExpression.Subtract(DQExpression.Field(detail, "Money"), DQExpression.IfNull(freightMoney, DQExpression.Value(0)))), DQExpression.NullIfZero(DQExpression.Sum(DQExpression.Field(detail, "AcceptNum")))); |
|
|
|
|
|
|
|
var priceExp = DQExpression.LogicCase(DQCondition.EQ(outStore, "FreightBear", 运费承担方.购方), 购方priceExp, DQCondition.EQ(outStore, "FreightBear", 运费承担方.供方), 供方priceExp, DQExpression.Value(null)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(priceExp, item.Text)); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -369,6 +406,14 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); |
|
|
|
if (maxArriveTime.HasValue) { |
|
|
|
dom.Where.Conditions.Add(DQCondition.LessThanOrEqual(outStore, "ArriveTime", maxArriveTime)); |
|
|
|
} |
|
|
|
if (!_saleout.IsEmpty) |
|
|
|
{ |
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ(outStore, "ID", long.Parse(_saleout.Text))); |
|
|
|
} |
|
|
|
if (!freightBear.IsEmpty) |
|
|
|
{ |
|
|
|
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(outStore, "FreightBear"), freightBear.GetValues().Select(x=> DQExpression.Value(x)).ToArray())); |
|
|
|
} |
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ(main, "BillState", 单据状态.已审核)); |
|
|
|
return dom; |
|
|
|
} |
|
|
|
|