Browse Source

错误提交单No.46475 结算单奖罚设置带不出单价。

master
yibo 7 years ago
parent
commit
3b44675474
1 changed files with 37 additions and 1 deletions
  1. +37
    -1
      B3SheepButcherManage/BL/Bill/StatPayBL/StatPayBL.cs

+ 37
- 1
B3SheepButcherManage/BL/Bill/StatPayBL/StatPayBL.cs View File

@ -126,6 +126,8 @@ namespace BWP.B3SheepButcherManage.BL
detail.Money = detail.PriceWeight * detail.Price * ((detail.Discount ?? 100) / 100);
}
FillOtherRewardInfo(dmo);
foreach (StatPay_OtherReward detail in dmo.OtherRewardDetails)
{
detail.Money = detail.Price * detail.Number;
@ -160,6 +162,40 @@ namespace BWP.B3SheepButcherManage.BL
base.beforeSave(dmo);
}
void FillOtherRewardInfo(StatPay dmo)
{
var tags = dmo.OtherRewardDetails.Where(x => x.RewardItem_ID.HasValue && x.Price == null);
if (tags.Count() == 0)
return;
var sanction = new JoinAlias(typeof(CW.SanctionSetting));
var abnormalItem = new JoinAlias(typeof(CW.RewardItem));
var dom = new DQueryDom(sanction);
dom.From.AddJoin(JoinType.Left, new DQDmoSource(abnormalItem),
DQCondition.EQ(sanction, "RewardItem_ID", abnormalItem, "ID"));
dom.Columns.Add(DQSelectColumn.Field("ID", abnormalItem));
dom.Columns.Add(DQSelectColumn.Field("Condition", sanction));
dom.Columns.Add(DQSelectColumn.Field("BeforeScript", sanction));
dom.Where.Conditions.Add(DQCondition.EQ(sanction, "FitBill", .));
dom.Where.Conditions.Add(DQCondition.EQ("BillState", .));
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(abnormalItem, "ID"), tags.Select(x => DQExpression.Value(x)).ToArray()));
var sanctionList = dom.EExecuteList<long, string, string>(Session);
var runner = new Runner();
foreach (var item in sanctionList)
{
var detail = dmo.OtherRewardDetails.First(x => x.RewardItem_ID == item.Item1);
runner.Global["单价"] = 0m;
runner.Execute(item.Item2);
var price = TypeMarshal.AsNumber(runner.Global["单价"]);
detail.Price = price;
if (price == 0)
{
detail.Price = null;
}
}
}
public void WeightCreateStayDom(StatPay dmo)
{
if (dmo.ValuationArea_ID == null)
@ -545,7 +581,7 @@ namespace BWP.B3SheepButcherManage.BL
var bType = TypeMarshal.AsString(runner.Global["奖罚依据"]);
switch (bType)
{
case "屠宰单":
case "屠宰单":
AddRewardWithButcher(dmo, runner, tuple);
break;
}


Loading…
Cancel
Save