|
|
|
@ -127,7 +127,6 @@ namespace BWP.B3SheepButcherManage.BL |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
FillOtherRewardInfo(dmo); |
|
|
|
foreach (StatPay_OtherReward detail in dmo.OtherRewardDetails) |
|
|
|
{ |
|
|
|
detail.Money = detail.Price * detail.Number; |
|
|
|
@ -162,40 +161,6 @@ 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) |
|
|
|
@ -336,24 +301,24 @@ namespace BWP.B3SheepButcherManage.BL |
|
|
|
{ |
|
|
|
var 屠宰记录头数 = dmo.Details.Sum(x => x.Number ?? 0); |
|
|
|
var 急宰记录头数 = dmo.HurryButcherDetails.Sum(x => x.Number ?? 0); //StatPay_HurryButcher
|
|
|
|
var 磅后记录头数 = dmo.HurryButcherDetails.Sum(x => x.Number ?? 0); |
|
|
|
//var 磅后记录头数 = dmo.HurryButcherDetails.Sum(x => x.Number ?? 0);
|
|
|
|
// if (屠宰记录头数 + 急宰记录头数 == dmo.RealNumber)
|
|
|
|
// {
|
|
|
|
// return;
|
|
|
|
// }
|
|
|
|
var 总磅后头数 = 屠宰记录头数 + 磅后记录头数; |
|
|
|
var 总头数 = 屠宰记录头数 + 急宰记录头数; |
|
|
|
var 过磅单已结算 = Get过磅单已结算(dmo.ID, dmo.WeightBill_ID); |
|
|
|
var 已结算过磅单头数 = 过磅单已结算.Item1; |
|
|
|
var 已结算过磅单重量 = Math.Round((decimal)过磅单已结算.Item2, 2); |
|
|
|
if (总磅后头数 + 已结算过磅单头数 > (dmo.WeighBill_BuyNum ?? 0)) |
|
|
|
if (总头数 + 已结算过磅单头数 > (dmo.WeighBill_BuyNum ?? 0)) |
|
|
|
{ |
|
|
|
throw new Exception("已结算头数:" + 已结算过磅单头数 + " 本次结算头数:" + 总磅后头数 + "不能大于 过磅单:" + dmo.WeightBill_ID + " 总收购头数:" + dmo.WeighBill_BuyNum); |
|
|
|
throw new Exception("已结算头数:" + 已结算过磅单头数 + " 本次结算头数:" + 总头数 + "不能大于 过磅单:" + dmo.WeightBill_ID + " 总收购头数:" + dmo.WeighBill_BuyNum); |
|
|
|
} |
|
|
|
|
|
|
|
dmo.RealNumber = 屠宰记录头数 + 急宰记录头数;//收购头数计算
|
|
|
|
dmo.RealNumber = 总头数;//收购头数计算
|
|
|
|
|
|
|
|
var 榜前急宰重量 = Math.Round(dmo.HurryButcherDetails.Sum(x => (decimal?)x.Weight ?? 0), 2); |
|
|
|
if (总磅后头数 + 已结算过磅单头数 == (dmo.WeighBill_BuyNum ?? 0)) |
|
|
|
if (总头数 == (dmo.WeighBill_BuyNum ?? 0)) |
|
|
|
{ |
|
|
|
//如果刚好等于过磅单的头数,则重量直接减掉,防止小数点
|
|
|
|
dmo.RealWeight = Math.Round((decimal)(dmo.WeighBill_BuyWeigh1 ?? 0), 2);//收购重量计算
|
|
|
|
@ -361,7 +326,7 @@ namespace BWP.B3SheepButcherManage.BL |
|
|
|
else |
|
|
|
{ |
|
|
|
var 过磅单每头猪的重量 = dmo.WeighBill_BuyWeigh1 / dmo.WeighBill_BuyNum; |
|
|
|
var 本次榜后结算重量 = Math.Round((总磅后头数 * 过磅单每头猪的重量 ?? 0), 2); |
|
|
|
var 本次榜后结算重量 = Math.Round((总头数 * 过磅单每头猪的重量 ?? 0), 2); |
|
|
|
dmo.RealWeight = 榜前急宰重量 + 本次榜后结算重量; |
|
|
|
} |
|
|
|
//更新到数据库
|
|
|
|
|