Browse Source

计算产量

master
yibo 7 years ago
parent
commit
fb46eb55ec
1 changed files with 9 additions and 8 deletions
  1. +9
    -8
      B3ButcherManageToSale/TypeIOCs/ForecastButcherInfo.cs

+ 9
- 8
B3ButcherManageToSale/TypeIOCs/ForecastButcherInfo.cs View File

@ -22,10 +22,10 @@ namespace BWP.B3ButcherManageToSale.TypeIOCs
{
public List<ButcherForecast_Detail> Invoke(IDmoContext context, ButcherForecast dmo)
{
var orderInfo = GetSaleOrderInfo(context.Session, dmo);
var saleOutStoreInfo = GetSaleOutStoreInfo(context.Session, dmo);
var avgWeightList = GetAllProductAvgWeightSet(context.Session);
var result = new List<ButcherForecast_Detail>();
foreach (var item in orderInfo)
foreach (var item in saleOutStoreInfo)
{
var first = avgWeightList.FirstOrDefault(x => x.Item2 == item.Item1);
var detail = new ButcherForecast_Detail();
@ -33,7 +33,7 @@ namespace BWP.B3ButcherManageToSale.TypeIOCs
detail.NeedNumber = item.Item2;
if (first != null)
{
detail.ProductAvgWeightSet_ID = first.Item2;
detail.ProductAvgWeightSet_ID = first.Item1;
detail.AvgWeight = first.Item3;
if (detail.AvgWeight != 0)
{
@ -49,15 +49,16 @@ namespace BWP.B3ButcherManageToSale.TypeIOCs
return result;
}
List<Tuple<long, Money<decimal>>> GetSaleOrderInfo(IDmoSession session, ButcherForecast dmo)
List<Tuple<long, Money<decimal>>> GetSaleOutStoreInfo(IDmoSession session, ButcherForecast dmo)
{
var main = new JoinAlias("_main", typeof(Order));
var detail = new JoinAlias(typeof(Order_Detail));
var main = new JoinAlias("_main", typeof(SaleOutStore));
var detail = new JoinAlias(typeof(SaleOutStore_Detail));
var query = new DQueryDom(main);
query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "Order_ID"));
query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "SaleOutStore_ID"));
query.Columns.Add(DQSelectColumn.Field("SaleGoods_ID", detail));
query.Columns.Add(DQSelectColumn.Sum(detail, "Number"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("AccountingUnit_ID", dmo.AccountingUnit_ID), DQCondition.EQ(DQExpression.Snippet("cast(_main.LoadTime as date)"), DQExpression.Value(dmo.SendDate)), DQCondition.GreaterThanOrEqual("BillState", .), DQCondition.IsNotNull(DQExpression.Field(detail, "Number"))));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("AccountingUnit_ID", dmo.AccountingUnit_ID), DQCondition.EQ(DQExpression.Snippet("cast(_main.LoadTime as date)"), DQExpression.Value(dmo.SendDate)), DQCondition.EQ("BillState", .), DQCondition.IsNotNull(DQExpression.Field(detail, "Number"))));
query.Where.Conditions.Add(DQCondition.EQ("Store_ID", dmo.Store_ID));
query.GroupBy.Expressions.Add(DQExpression.Field(detail, "SaleGoods_ID"));
return query.EExecuteList<long, Money<decimal>>(session);
}


Loading…
Cancel
Save