Browse Source

需求单No.138636

master
wugang 7 years ago
parent
commit
d82c37885b
2 changed files with 54 additions and 32 deletions
  1. +50
    -32
      BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.cs
  2. +4
    -0
      BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.xml

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

@ -59,8 +59,9 @@ namespace BWP.Web.Pages.B3YunKen.Reports
list.Add(new Tuple<string, string>("Code", "编号"));
list.Add(new Tuple<string, string>("Remark", "备注"));
list.Add(new Tuple<string, string>("AccountingUnit_Name", "会计单位"));
list.Add(new Tuple<string, string>("CustomerCatalog_Name", "客户分类"));
list.Add(new Tuple<string, string>("Customer_CustomerCatalog_Name", "客户分类"));
list.Add(new Tuple<string, string>("AccountCustomer_Name", "结账客户"));
list.Add(new Tuple<string, string>("Customer_Name", "购货客户"));
list.Add(new Tuple<string, string>("Customer_DeliveryPhone", "联系方式"));
list.Add(new Tuple<string, string>("OrderDate", "订货时间"));
list.Add(new Tuple<string, string>("LoadTime", "发货时间"));
@ -81,12 +82,14 @@ namespace BWP.Web.Pages.B3YunKen.Reports
list.Add(new Tuple<string, string>("GoodsPropertyCatalog_Name", "存货属性分类"));
list.Add(new Tuple<string, string>("Goods_Name", "存货名称"));
list.Add(new Tuple<string, string>("BrandItem_Name", "品牌"));
list.Add(new Tuple<string, string>("Goods_Spec", "规格"));
list.Add(new Tuple<string, string>("ProductLine_Name", "产品线"));
list.Add(new Tuple<string, string>("PackingMoney", "包装费"));
list.Add(new Tuple<string, string>("Goods_SecondUnit", "辅单位"));
list.Add(new Tuple<string, string>("AcceptSecondNumber", "验收辅数量"));
list.Add(new Tuple<string, string>("Unit", "报价单位"));
list.Add(new Tuple<string, string>("AcceptNum", "验收数量"));
list.Add(new Tuple<string, string>("AcceptPrice", "平均销价"));
list.Add(new Tuple<string, string>("AcceptPrice", "验收单价"));
list.Add(new Tuple<string, string>("NetPrice", "去包装净价"));
list.Add(new Tuple<string, string>("ToFreightNetPrice", "去运费单价"));
list.Add(new Tuple<string, string>("PolicyPrice", "政策价格"));
@ -121,9 +124,9 @@ B3FrameworksConsts.DataSources.授权会计单位全部), s => long.Parse(s)), "
layout.Add("ProductLine_ID", new SimpleLabel("产品线"), mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(_productLine = QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ID"], B3UnitedInfosConsts.DataSources.线), s => long.Parse(s)), "ProductLine_ID"));
layout["ProductLine_ID"].NotAutoAddToContainer = true;
//layout.Add("CustomerCatalog_ID", new SimpleLabel("客户分类"), mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["CustomerCatalog_ID"], B3SaleDataSources.客户分类), s => long.Parse(s)), "CustomerCatalog_ID"));
//layout["CustomerCatalog_ID"].NotAutoAddToContainer = true;
layout.Add("Customer_CustomerCatalog_ID", new SimpleLabel("客户分类"), mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Customer_CustomerCatalog_ID"], B3SaleDataSources.), s => long.Parse(s)), "Customer_CustomerCatalog_ID"));
layout["Customer_CustomerCatalog_ID"].NotAutoAddToContainer = true;
layout.Add("Customer_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Customer_ID"],
B3SaleDataSources.), s => long.Parse(s)), "Customer_ID"));
@ -138,9 +141,9 @@ B3SaleDataSources.结账客户), s => long.Parse(s)), "AccountCustomer_ID"));
layout.Add("Employee_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Employee_ID"], B3FrameworksConsts.DataSources.), s => long.Parse(s)), "Employee_ID"));
layout["Employee_ID"].NotAutoAddToContainer = true;
//layout.Add("CustomerSaleZone_ID", new SimpleLabel("销售地区"), mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["CustomerSaleZone_ID"], B3SaleDataSources.授权销售地区)), "CustomerSaleZone_ID"));
//layout["CustomerSaleZone_ID"].NotAutoAddToContainer = true;
layout.Add("CustomerSaleZone_ID", new SimpleLabel("销售地区"), mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["CustomerSaleZone_ID"], B3SaleDataSources.)), "CustomerSaleZone_ID"));
layout["CustomerSaleZone_ID"].NotAutoAddToContainer = true;
layout.Add("Store_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Store_ID"], B3FrameworksConsts.DataSources.), s => long.Parse(s)), "Store_ID"));
layout["Store_ID"].NotAutoAddToContainer = true;
@ -159,6 +162,8 @@ B3SaleDataSources.结账客户), s => long.Parse(s)), "AccountCustomer_ID"));
layout.Add("CustomerDealer_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["CustomerDealer_ID"],
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);
config.Expand = false;
config.Add("LoadTime");
@ -193,34 +198,36 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID"));
}
private DQueryDom GetGoods_Package()
{
var goods_Package = new JoinAlias(typeof(Goods_Package));
var wrappage = new JoinAlias(typeof(Wrappage));
var query = new DQueryDom(goods_Package);
query.From.AddJoin(JoinType.Left, new DQDmoSource(wrappage), DQCondition.EQ(wrappage, "ID", goods_Package, "Package_ID"));
query.Columns.Add(DQSelectColumn.Field("Goods_ID", goods_Package));
query.Columns.Add(DQSelectColumn.Field("Price", goods_Package));
query.Columns.Add(DQSelectColumn.Field("AccountingUnit_ID", wrappage));
return query;
}
//private DQueryDom GetGoods_Package()
//{
// var goods_Package = new JoinAlias(typeof(Goods_Package));
// var wrappage = new JoinAlias(typeof(Wrappage));
// var query = new DQueryDom(goods_Package);
// query.From.AddJoin(JoinType.Left, new DQDmoSource(wrappage), DQCondition.EQ(wrappage, "ID", goods_Package, "Package_ID"));
// query.Columns.Add(DQSelectColumn.Field("Goods_ID", goods_Package));
// query.Columns.Add(DQSelectColumn.Create(DQExpression.LogicCase(DQExpression.EQ(DQExpression.Field( goods_Package,"WrappageKind_TreeDeep1ID"),DQExpression.Value(5)),DQExpression.Multiply(DQExpression.Field(goods_Package,"Price"),DQExpression.Field(goods_Package,"SmallPackNum")),DQExpression.Field(goo,))) goods_Package,"Price"));
// query.Columns.Add(DQSelectColumn.Field("AccountingUnit_ID", wrappage));
// query.GroupBy.Expressions.Add(DQExpression.Field(goods_Package,"Goods_ID"));
// query.GroupBy.Expressions.Add(DQExpression.Field(wrappage,"AccountingUnit_ID"));
// return query;
//}
protected override DQueryDom GetQueryDom()
{
var dom = base.GetQueryDom();
var main = JoinAlias.Create("main"); new CustomerAccept();
var main = JoinAlias.Create("main");
var detail = new JoinAlias(typeof(CustomerAccept_Detail));
var goods = new JoinAlias(typeof(SaleGoods));
var packageData = new JoinAlias(typeof(PackageData));
var outStore = new JoinAlias(typeof(SaleOutStore));
dom.RegisterQueryTable(typeof(PackageData), new string[] { "Goods_ID", "Price", "AccountingUnit_ID" }, GetGoods_Package());
//dom.RegisterQueryTable(typeof(PackageData), new string[] { "Goods_ID", "Price", "AccountingUnit_ID" }, GetGoods_Package());
dom.From.AddJoin(JoinType.Left, new DQDmoSource(detail),
DQCondition.EQ(main, "ID", detail, "CustomerAccept_ID"));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(outStore), DQCondition.And(DQCondition.EQ(detail, "BillType",DmoTypeIDAttribute.GetID(typeof(SaleOutStore))),
DQCondition.EQ(outStore, "ID", detail, "BillID")));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(packageData),
DQCondition.And(DQCondition.EQ(packageData, "Goods_ID", detail, "SaleGoods_ID"), DQCondition.EQ(packageData, "AccountingUnit_ID", main, "AccountingUnit_ID")));
//dom.From.AddJoin(JoinType.Left, new DQDmoSource(packageData),
// DQCondition.And(DQCondition.EQ(packageData, "Goods_ID", detail, "SaleGoods_ID"), DQCondition.EQ(packageData, "AccountingUnit_ID", main, "AccountingUnit_ID")));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goods),
DQCondition.EQ(goods, "ID", detail, "SaleGoods_ID"));
@ -257,14 +264,10 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID"));
case "Code":
case "Remark":
case "AccountingUnit_Name":
//case "CustomerCatalog_Name":
case "Customer_CustomerCatalog_Name":
case "AccountCustomer_Name":
//case "Customer_DeliveryPhone":
case "OrderDate":
case "LoadTime":
//case "ArriveTime":
case "Customer_DeliveryPhone":
case "Department_Name":
//case "CustomerSaleZone_Name":
case "SaleKind_Name":
case "Employee_Name":
case "CreditPolicy_Name":
@ -272,12 +275,17 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID"));
case "TakeGoods_Type":
case "Store_Name":
case "CustomerDealer_Name":
case "Customer_Name":
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
break;
case "Driver_Name":
case "Driver_Telephone":
case "HandcarNumber":
case "OrderDate":
case "LoadTime":
case "ArriveTime":
case "CustomerSaleZone_Name":
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(outStore, field), item.Text));
dom.GroupBy.Expressions.Add(DQExpression.Field(outStore, field));
break;
@ -288,6 +296,8 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID"));
case "Unit":
case "PolicyPrice":
case "AcceptPrice":
case "Goods_Spec":
case "ProductLine_Name":
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(detail, field), item.Text));
dom.GroupBy.Expressions.Add(DQExpression.Field(detail, field));
break;
@ -308,11 +318,11 @@ 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));
SumColumnIndexs.Add(dom.Columns.Count - 1);
//dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Multiply(DQExpression.Field(packageData, "Price"), DQExpression.Field(detail, "AcceptSecondNumber"))), 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));
//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));
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));
@ -334,6 +344,14 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID"));
if (!_goodsBatch.IsEmpty) {
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(detail, "GoodsBatch_ID"), _goodsBatch.GetValues().Select(x => DQExpression.Value(x)).ToArray()));
}
var minArriveTime = mQueryContainer.GetControl<DFDateInput>("MinArriveTime").Value;
var maxArriveTime = mQueryContainer.GetControl<DFDateInput>("MaxArriveTime").Value;
if (minArriveTime.HasValue) {
dom.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(outStore, "ArriveTime",minArriveTime ));
}
if (maxArriveTime.HasValue) {
dom.Where.Conditions.Add(DQCondition.LessThanOrEqual(outStore, "ArriveTime", maxArriveTime));
}
dom.Where.Conditions.Add(DQCondition.EQ(main, "BillState", .));
return dom;
}


+ 4
- 0
BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.xml View File

@ -43,6 +43,10 @@
<Field name="CustomerSaleZone_ID"/>
<QBE paramName="CustomerSaleZone_ID"/>
</QBEIn>
<QBEIn>
<Field name="Customer_CustomerCatalog_ID"/>
<QBE paramName="Customer_CustomerCatalog_ID"/>
</QBEIn>
<QBEIn>
<Field name="Store_ID"/>
<QBE paramName="Store_ID"/>


Loading…
Cancel
Save