|
|
|
@ -44,22 +44,17 @@ namespace BWP.B3SheepButcherManage.BL |
|
|
|
|
|
|
|
public void SetAbnormal_Money(WeightBill dmo) |
|
|
|
{ |
|
|
|
if (dmo.WeighAbnormalRecording.Count <= 0) |
|
|
|
var riIDs = dmo.WeighAbnormalRecording.Where(x => x.RewardItem_ID.HasValue).Select(x => x.RewardItem_ID).Distinct(); |
|
|
|
if (riIDs.Count() <= 0) |
|
|
|
return; |
|
|
|
var sanction = new JoinAlias(typeof(CB.SanctionSetting)); |
|
|
|
var abnormalItem = new JoinAlias(typeof(CB.RewardItem)); |
|
|
|
var dom = new DQueryDom(sanction); |
|
|
|
dom.From.AddJoin(JoinType.Inner, new DQDmoSource(abnormalItem), |
|
|
|
DQCondition.EQ(sanction, "RewardItem_ID", abnormalItem, "ID")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("ID", abnormalItem)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("ID", sanction)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Condition", sanction)); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("BeforeScript", sanction)); |
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ(sanction, "FitBill", 奖罚设置适用单据类型.过磅单)); |
|
|
|
var dom = new DQueryDom(new JoinAlias(typeof(CB.SanctionSetting))); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("RewardItem_ID")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("Condition")); |
|
|
|
dom.Columns.Add(DQSelectColumn.Field("BeforeScript")); |
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ("FitBill", 奖罚设置适用单据类型.过磅单)); |
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ("BillState", 单据状态.已审核)); |
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID)); |
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ("AccountingUnit_ID", dmo.AccountingUnit_ID)); |
|
|
|
var sanctionList = dom.EExecuteList<long, long, string, string>(Session); |
|
|
|
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("RewardItem_ID"), riIDs.Select(x => DQExpression.Value(x)).ToArray())); |
|
|
|
var sanctionList = dom.EExecuteList<long, string, string>(Session); |
|
|
|
foreach (var detail in dmo.WeighAbnormalRecording) |
|
|
|
{ |
|
|
|
var items = sanctionList.Where(x => x.Item1 == detail.RewardItem_ID); |
|
|
|
@ -68,19 +63,20 @@ namespace BWP.B3SheepButcherManage.BL |
|
|
|
var result = items.First(); |
|
|
|
var runner = new Runner(); |
|
|
|
runner.Global["奖罚依据"] = ""; |
|
|
|
runner.Execute(result.Item4); |
|
|
|
runner.Execute(result.Item3); |
|
|
|
var bType = TypeMarshal.AsString(runner.Global["奖罚依据"]); |
|
|
|
if (bType == "过磅单") |
|
|
|
{ |
|
|
|
runner.Global["单价"] = 0m; |
|
|
|
runner.Execute(result.Item3); |
|
|
|
detail.Abnormal_Money = TypeMarshal.AsNumber(runner.Global["单价"]); |
|
|
|
runner.Execute(result.Item2); |
|
|
|
detail.Price = TypeMarshal.AsNumber(runner.Global["单价"]); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
detail.Abnormal_Money = null; |
|
|
|
detail.Price = null; |
|
|
|
} |
|
|
|
detail.Abnormal_Money = detail.Price * detail.Number; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|