|
|
|
@ -0,0 +1,322 @@ |
|
|
|
using BWP.B3Frameworks; |
|
|
|
using BWP.B3Frameworks.BO.NamedValueTemplate; |
|
|
|
using BWP.B3Sale.BO; |
|
|
|
using BWP.B3Sale.Utils; |
|
|
|
using BWP.Web.Layout; |
|
|
|
using BWP.Web.Utils; |
|
|
|
using BWP.Web.WebControls; |
|
|
|
using Forks.EnterpriseServices.DataForm; |
|
|
|
using Forks.EnterpriseServices.DomainObjects2; |
|
|
|
using Forks.EnterpriseServices.DomainObjects2.DQuery; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using System.Text; |
|
|
|
using System.Web.UI.WebControls; |
|
|
|
using TSingSoft.WebControls2; |
|
|
|
using TSingSoft.WebControls2.QBELinks; |
|
|
|
using Forks.EnterpriseServices.SqlDoms; |
|
|
|
using BWP.B3_YunKen.BO; |
|
|
|
using BWP.B3UnitedInfos; |
|
|
|
using Forks.Utils; |
|
|
|
|
|
|
|
namespace BWP.Web.Pages.B3YunKen.Reports |
|
|
|
{ |
|
|
|
public class ToFreightNetPriceReport : DFBrowseGridReportPage |
|
|
|
{ |
|
|
|
|
|
|
|
protected override string AccessRoleName |
|
|
|
{ |
|
|
|
get |
|
|
|
{ |
|
|
|
return "B3_YunKen.报表分析.去运费净价表"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
protected override string Caption |
|
|
|
{ |
|
|
|
get { return "去运费净价表"; } |
|
|
|
} |
|
|
|
|
|
|
|
CheckBoxListWithReverseSelect checkbox; |
|
|
|
DFChoiceBox _goods, _goodsPropertyCatalog, _brandItem, _productLine, _goodsBatch; |
|
|
|
private readonly DFInfo mDFInfo = DFInfo.Get(typeof(SaleOutStore)); |
|
|
|
private readonly DFInfo _detailInfo = DFInfo.Get(typeof(SaleOutStore_Detail)); |
|
|
|
|
|
|
|
protected override void InitQueryPanel(QueryPanel queryPanel) |
|
|
|
{ |
|
|
|
base.InitQueryPanel(queryPanel); |
|
|
|
var panel = queryPanel.CreateTab("显示字段"); |
|
|
|
|
|
|
|
checkbox = new CheckBoxListWithReverseSelect() { RepeatColumns = 6, RepeatDirection = RepeatDirection.Horizontal }; |
|
|
|
|
|
|
|
var list = new List<Tuple<string, string>>(); |
|
|
|
list.Add(new Tuple<string, string>("YearOfLoadTime", "每年")); |
|
|
|
list.Add(new Tuple<string, string>("TenDaysOfLoadTime", "每旬")); |
|
|
|
list.Add(new Tuple<string, string>("MonthOfLoadTime", "每月")); |
|
|
|
list.Add(new Tuple<string, string>("WeekOfLoadTime", "每周")); |
|
|
|
list.Add(new Tuple<string, string>("DayOfLoadTime", "每日")); |
|
|
|
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>("AccountCustomer_Name", "结账客户")); |
|
|
|
list.Add(new Tuple<string, string>("Customer_DeliveryPhone", "联系方式")); |
|
|
|
list.Add(new Tuple<string, string>("OrderDate", "订货时间")); |
|
|
|
list.Add(new Tuple<string, string>("LoadTime", "发货时间")); |
|
|
|
list.Add(new Tuple<string, string>("ArriveTime", "到货时间")); |
|
|
|
list.Add(new Tuple<string, string>("Department_Name", "部门")); |
|
|
|
list.Add(new Tuple<string, string>("CustomerSaleZone_Name", "地区")); |
|
|
|
list.Add(new Tuple<string, string>("SaleKind_Name", "销售类型")); |
|
|
|
list.Add(new Tuple<string, string>("Employee_Name", "销售人员")); |
|
|
|
list.Add(new Tuple<string, string>("AccountCustomer_CreditPolicy_Name", "信用政策")); |
|
|
|
list.Add(new Tuple<string, string>("FreightMoney", "运费")); |
|
|
|
list.Add(new Tuple<string, string>("Money", "金额")); |
|
|
|
list.Add(new Tuple<string, string>("Store_Name", "仓库")); |
|
|
|
list.Add(new Tuple<string, string>("DeliverAddress", "送货地址")); |
|
|
|
list.Add(new Tuple<string, string>("TakeGoods_Type", "配送方式")); |
|
|
|
list.Add(new Tuple<string, string>("Driver_Name", "司机")); |
|
|
|
list.Add(new Tuple<string, string>("Driver_Telephone", "司机电话")); |
|
|
|
list.Add(new Tuple<string, string>("HandcarNumber", "车牌号")); |
|
|
|
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>("PackingMoney", "包装费")); |
|
|
|
list.Add(new Tuple<string, string>("Goods_SecondUnit", "辅单位")); |
|
|
|
list.Add(new Tuple<string, string>("SecondNumber", "辅数量")); |
|
|
|
list.Add(new Tuple<string, string>("Unit", "报价单位")); |
|
|
|
list.Add(new Tuple<string, string>("UnitNum", "报价数量")); |
|
|
|
list.Add(new Tuple<string, string>("Price", "平均销价")); |
|
|
|
list.Add(new Tuple<string, string>("NetPrice", "去包装净价")); |
|
|
|
list.Add(new Tuple<string, string>("ToFreightNetPrice", "去运费单价")); |
|
|
|
list.Add(new Tuple<string, string>("PolicyPrice", "政策价格")); |
|
|
|
var section = mPageLayoutManager.AddSection("显示字段", "显示字段"); |
|
|
|
section.ApplyLayout(list, mPageLayoutManager); |
|
|
|
foreach (var item in list) |
|
|
|
{ |
|
|
|
section.SetDisplayName(item.Item1, item.Item2); |
|
|
|
checkbox.Items.Add(new ListItem(item.Item2, item.Item1)); |
|
|
|
} |
|
|
|
panel.EAdd(checkbox); |
|
|
|
mQueryControls.Add("显示字段", checkbox); |
|
|
|
mQueryControls.EnableHoldLastControlNames.Add("显示字段"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
protected override void AddQueryControls(VLayoutPanel vPanel) |
|
|
|
{ |
|
|
|
var layout = new LayoutManager("main", mDFInfo, mQueryContainer); |
|
|
|
|
|
|
|
layout.Add("AccountingUnit_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["AccountingUnit_ID"], |
|
|
|
B3FrameworksConsts.DataSources.授权会计单位全部), s => long.Parse(s)), "AccountingUnit_ID")); |
|
|
|
layout["AccountingUnit_ID"].NotAutoAddToContainer = true; |
|
|
|
|
|
|
|
layout.Add("Goods_ID", new SimpleLabel("存货"), mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(_goods = QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ID"], B3SaleDataSources.可销售存货), s => long.Parse(s)), "Goods_ID")); |
|
|
|
layout["Goods_ID"].NotAutoAddToContainer = true; |
|
|
|
|
|
|
|
layout.Add("GoodsPropertyCatalog_ID", new SimpleLabel("属性分类"), _goodsPropertyCatalog = new DFChoiceBox() { DataKind = B3UnitedInfosConsts.DataSources.存货属性分类, Width = Unit.Empty, EnableTopItem = true, EnableMultiSelection = true, EnableMultiSelectionViewer = true, EnableInputArgument = true }, false); |
|
|
|
layout["GoodsPropertyCatalog_ID"].NotAutoAddToContainer = true; |
|
|
|
|
|
|
|
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_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Customer_ID"], |
|
|
|
B3SaleDataSources.用户配置客户), s => long.Parse(s)), "Customer_ID")); |
|
|
|
layout["Customer_ID"].NotAutoAddToContainer = true; |
|
|
|
|
|
|
|
layout.Add("AccountCustomer_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["AccountCustomer_ID"], |
|
|
|
B3SaleDataSources.结账客户), s => long.Parse(s)), "AccountCustomer_ID")); |
|
|
|
layout["AccountCustomer_ID"].NotAutoAddToContainer = true; |
|
|
|
|
|
|
|
layout.Add("Department_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Department_ID"], B3FrameworksConsts.DataSources.授权部门), s => long.Parse(s)), "Department_ID")); |
|
|
|
layout["Department_ID"].NotAutoAddToContainer = true; |
|
|
|
|
|
|
|
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("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; |
|
|
|
|
|
|
|
layout.Add("SaleKind_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["SaleKind_ID"], B3SaleDataSources.销售类型), s => long.Parse(s)), "SaleKind_ID")); |
|
|
|
layout["SaleKind_ID"].NotAutoAddToContainer = true; |
|
|
|
|
|
|
|
layout.Add("Car_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Car_ID"], B3SaleDataSources.车辆), s => long.Parse(s)), "Car_ID")); |
|
|
|
layout["Car_ID"].NotAutoAddToContainer = true; |
|
|
|
|
|
|
|
layout.Add("GoodsBatch_ID", new SimpleLabel("存货批次"), mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(_goodsBatch = QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ID"], B3UnitedInfosConsts.DataSources.存货批次), s => long.Parse(s)), "GoodsBatch_ID")); |
|
|
|
layout["GoodsBatch_ID"].NotAutoAddToContainer = true; |
|
|
|
|
|
|
|
layout.Add("BrandItem_ID", new SimpleLabel("品牌项"),mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(_brandItem = QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Car_ID"], B3UnitedInfosConsts.DataSources.品牌项), s => long.Parse(s)), "BrandItem_ID")); |
|
|
|
layout["BrandItem_ID"].NotAutoAddToContainer = true; |
|
|
|
var config = layout.CreateDefaultConfig(2); |
|
|
|
config.Expand = false; |
|
|
|
//config.Add("LoadTime");
|
|
|
|
//config.Add("OrderDate");
|
|
|
|
//config.Add("AccountingUnit_ID");
|
|
|
|
//config.Add("Goods_ID");
|
|
|
|
//config.Add("GoodsPropertyCatalog_ID");
|
|
|
|
//config.Add("ProductLine_ID");
|
|
|
|
//config.Add("CustomerCatalog_ID");
|
|
|
|
//config.Add("Customer_ID");
|
|
|
|
//config.Add("AccountCustomer_ID");
|
|
|
|
//config.Add("Department_ID");
|
|
|
|
//config.Add("Employee_ID");
|
|
|
|
//config.Add("SaleZone_ID");
|
|
|
|
//config.Add("Store_ID");
|
|
|
|
//config.Add("SaleKind_ID");
|
|
|
|
//config.Add("Car_ID");
|
|
|
|
//config.Add("GoodsBatch_ID");
|
|
|
|
//config.Add("BrandItem_ID");
|
|
|
|
layout.Config = config; |
|
|
|
var section = mPageLayoutManager.AddSection("查询条件", "查询条件"); |
|
|
|
section.ApplyLayout(layout, config, mPageLayoutManager, mDFInfo); |
|
|
|
vPanel.Add(layout.CreateLayout(), new VLayoutOption(HorizontalAlign.Center)); |
|
|
|
} |
|
|
|
|
|
|
|
class PackageData |
|
|
|
{ |
|
|
|
public long? Goods_ID { get; set; } |
|
|
|
public Money<decimal>? Price { get; set; } |
|
|
|
public long? AccountingUnit_ID { get; set; } |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
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; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
protected override DQueryDom GetQueryDom() |
|
|
|
{ |
|
|
|
var dom = base.GetQueryDom(); |
|
|
|
var main = JoinAlias.Create("main"); |
|
|
|
var detail = new JoinAlias(typeof(SaleOutStore_Detail)); |
|
|
|
var goods = new JoinAlias(typeof(SaleGoods)); |
|
|
|
var packageData = new JoinAlias(typeof(PackageData)); |
|
|
|
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, "SaleOutStore_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")); |
|
|
|
|
|
|
|
var freightMoney = DQExpression.LogicCase(DQExpression.EQ(DQExpression.Field(main, "FreightBear"), DQExpression.Value(运费承担方.购方)), DQExpression.NULL, DQExpression.Multiply(DQExpression.Field(main, "FreightPrice"), DQExpression.Divide(DQExpression.Field(detail, "UnitNum"), DQExpression.NullIfZero(DQExpression.Field(main, "AllUnitNum"))))); |
|
|
|
foreach (ListItem item in checkbox.Items) |
|
|
|
{ |
|
|
|
if (!item.Selected) { continue; } |
|
|
|
var field = item.Value; |
|
|
|
switch (field) { |
|
|
|
case "YearOfLoadTime": |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("Left(Convert(nvarchar(10),main.LoadTime, 23),4)"), item.Text)); |
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, "LoadTime")); |
|
|
|
break; |
|
|
|
case "MonthOfLoadTime": |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("Left(Convert(nvarchar(10),main.LoadTime, 23),7)"), item.Text)); |
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, "LoadTime")); |
|
|
|
break; |
|
|
|
case "TenDaysOfLoadTime": |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>(@"CASE WHEN day(main.LoadTime) > 0 AND day(main.LoadTime)<= 10
|
|
|
|
THEN cast(YEAR(main.LoadTime)as nvarchar)+'年'+cast(MONTH(main.LoadTime)as nvarchar) + '月上旬' |
|
|
|
WHEN day(main.LoadTime) > 10 AND day(main.LoadTime)<= 20 |
|
|
|
THEN cast(YEAR(main.LoadTime)as nvarchar)+'年'+cast(MONTH(main.LoadTime)as nvarchar) + '月中旬' |
|
|
|
WHEN day(main.LoadTime) > 20 |
|
|
|
THEN cast(YEAR(main.LoadTime)as nvarchar)+'年'+cast(MONTH(main.LoadTime)as nvarchar) + '月下旬' END"), item.Text));
|
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, "LoadTime")); |
|
|
|
break; |
|
|
|
case "WeekOfLoadTime": |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("convert(nvarchar(10), dateadd(day,1-(datepart(weekday,main.LoadTime)+@@datefirst-1)%7,main.LoadTime),23)+'~'+convert(nvarchar(10),dateadd(day,7-(datepart(weekday,main.LoadTime)+@@datefirst-1)%7,main.LoadTime),23)"), item.Text)); |
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, "LoadTime")); |
|
|
|
break; |
|
|
|
case "DayOfLoadTime": |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("Convert(nvarchar(10),main.LoadTime, 23)"), item.Text)); |
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, "LoadTime")); |
|
|
|
break; |
|
|
|
case "Code": |
|
|
|
case "Remark": |
|
|
|
case "AccountingUnit_Name": |
|
|
|
case "CustomerCatalog_Name": |
|
|
|
case "AccountCustomer_Name": |
|
|
|
case "Customer_DeliveryPhone": |
|
|
|
case "OrderDate": |
|
|
|
case "LoadTime": |
|
|
|
case "ArriveTime": |
|
|
|
case "Department_Name": |
|
|
|
case "CustomerSaleZone_Name": |
|
|
|
case "SaleKind_Name": |
|
|
|
case "Employee_Name": |
|
|
|
case "AccountCustomer_CreditPolicy_Name": |
|
|
|
case "DeliverAddress": |
|
|
|
case "TakeGoods_Type": |
|
|
|
case "Driver_Name": |
|
|
|
case "Driver_Telephone": |
|
|
|
case "HandcarNumber": |
|
|
|
case "Store_Name": |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text)); |
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field)); |
|
|
|
break; |
|
|
|
case "GoodsPropertyCatalog_Name": |
|
|
|
case "Goods_Name": |
|
|
|
case "BrandItem_Name": |
|
|
|
case "Goods_SecondUnit": |
|
|
|
case "Unit": |
|
|
|
case "PolicyPrice": |
|
|
|
case "Price": |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(detail, field), item.Text)); |
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(detail, field)); |
|
|
|
break; |
|
|
|
case "FreightMoney": |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(freightMoney),item.Text)); |
|
|
|
break; |
|
|
|
case "Money": |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field(main, field)), item.Text)); |
|
|
|
break; |
|
|
|
case "PackingMoney": |
|
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Multiply(DQExpression.Field(packageData, "Price"), DQExpression.Field(detail, "SecondNumber"))), item.Text)); |
|
|
|
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, "UnitNum")))), 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, "UnitNum")))), item.Text)); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (!_goods.IsEmpty) { |
|
|
|
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(detail, "SaleGoods_ID"), _goods.GetValues().Select(x => DQExpression.Value(x)).ToArray())); |
|
|
|
} |
|
|
|
if (!_brandItem.IsEmpty) { |
|
|
|
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(detail, "BrandItem_ID"), _brandItem.GetValues().Select(x => DQExpression.Value(x)).ToArray())); |
|
|
|
} |
|
|
|
if (!_goodsPropertyCatalog.IsEmpty) { |
|
|
|
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(detail, "GoodsPropertyCatalog_ID"), _goodsPropertyCatalog.GetValues().Select(x => DQExpression.Value(x)).ToArray())); |
|
|
|
} |
|
|
|
if (!_productLine.IsEmpty) { |
|
|
|
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(goods, "ProductLine_ID"), _productLine.GetValues().Select(x => DQExpression.Value(x)).ToArray())); |
|
|
|
} |
|
|
|
if (!_goodsBatch.IsEmpty) { |
|
|
|
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(detail, "GoodsBatch_ID"), _goodsBatch.GetValues().Select(x => DQExpression.Value(x)).ToArray())); |
|
|
|
} |
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ(main, "BillState", 单据状态.已审核)); |
|
|
|
return dom; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |