Browse Source

修改 详见需求单138708

master
wushukun 7 years ago
parent
commit
aa254781d0
1 changed files with 50 additions and 5 deletions
  1. +50
    -5
      BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.cs

+ 50
- 5
BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.cs View File

@ -40,9 +40,13 @@ namespace BWP.Web.Pages.B3YunKen.Reports
CheckBoxListWithReverseSelect checkbox; CheckBoxListWithReverseSelect checkbox;
DFChoiceBox _goods, _goodsPropertyCatalog, _brandItem, _productLine, _goodsBatch; DFChoiceBox _goods, _goodsPropertyCatalog, _brandItem, _productLine, _goodsBatch;
DFTextBox _saleout;
DFNamedValueInput<> freightBear;
//
private readonly DFInfo mDFInfo = DFInfo.Get(typeof(CustomerAccept)); private readonly DFInfo mDFInfo = DFInfo.Get(typeof(CustomerAccept));
private readonly DFInfo _detailInfo = DFInfo.Get(typeof(CustomerAccept_Detail)); private readonly DFInfo _detailInfo = DFInfo.Get(typeof(CustomerAccept_Detail));
protected override void InitQueryPanel(QueryPanel queryPanel) protected override void InitQueryPanel(QueryPanel queryPanel)
{ {
base.InitQueryPanel(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>("OutNum", "出库数量"));
list.Add(new Tuple<string, string>("OutMoney", "出库金额")); list.Add(new Tuple<string, string>("OutMoney", "出库金额"));
list.Add(new Tuple<string, string>("CustomerDealer_Name", "经销商")); list.Add(new Tuple<string, string>("CustomerDealer_Name", "经销商"));
list.Add(new Tuple<string, string>("FreightBear", "运费承担方"));
var section = mPageLayoutManager.AddSection("显示字段", "显示字段"); var section = mPageLayoutManager.AddSection("显示字段", "显示字段");
section.ApplyLayout(list, mPageLayoutManager); section.ApplyLayout(list, mPageLayoutManager);
foreach (var item in list) { foreach (var item in list) {
@ -168,10 +172,18 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID"));
layout["CustomerDealer_ID"].NotAutoAddToContainer = true; layout["CustomerDealer_ID"].NotAutoAddToContainer = true;
layout.Add("ArriveTime", new SimpleLabel("到货时间"), QueryCreator.DateRange(mDFInfo.Fields["ID"], mQueryContainer, "MinArriveTime", "MaxArriveTime")); layout.Add("ArriveTime", new SimpleLabel("到货时间"), QueryCreator.DateRange(mDFInfo.Fields["ID"], mQueryContainer, "MinArriveTime", "MaxArriveTime"));
layout["ArriveTime"].NotAutoAddToContainer = true; 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.Expand = false;
config.Add("LoadTime"); config.Add("LoadTime");
config.Add("OrderDate"); config.Add("OrderDate");
//config.Add("SaleOutID");
//config.Add("ArriveTime"); //config.Add("ArriveTime");
//config.Add("AccountingUnit_ID"); //config.Add("AccountingUnit_ID");
//config.Add("Goods_ID"); //config.Add("Goods_ID");
@ -237,6 +249,7 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID"));
DQCondition.EQ(goods, "ID", detail, "SaleGoods_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 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) { foreach (ListItem item in checkbox.Items) {
if (!item.Selected) { continue; } if (!item.Selected) { continue; }
var field = item.Value; var field = item.Value;
@ -291,6 +304,8 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID"));
case "LoadTime": case "LoadTime":
case "ArriveTime": case "ArriveTime":
case "CustomerSaleZone_Name": case "CustomerSaleZone_Name":
case "FreightBear":
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(outStore, field), item.Text)); dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(outStore, field), item.Text));
dom.GroupBy.Expressions.Add(DQExpression.Field(outStore, field)); dom.GroupBy.Expressions.Add(DQExpression.Field(outStore, field));
break; break;
@ -335,14 +350,36 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID"));
SumColumnIndexs.Add(dom.Columns.Count - 1); SumColumnIndexs.Add(dom.Columns.Count - 1);
break; break;
case "PackingMoney": 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); SumColumnIndexs.Add(dom.Columns.Count - 1);
break; break;
case "NetPrice": 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; break;
case "ToFreightNetPrice": 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; break;
} }
} }
@ -369,6 +406,14 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID"));
if (maxArriveTime.HasValue) { if (maxArriveTime.HasValue) {
dom.Where.Conditions.Add(DQCondition.LessThanOrEqual(outStore, "ArriveTime", maxArriveTime)); 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", .)); dom.Where.Conditions.Add(DQCondition.EQ(main, "BillState", .));
return dom; return dom;
} }


Loading…
Cancel
Save