|
|
|
@ -28,6 +28,56 @@ namespace BWP.B3QingDaoWanFu.TypeIOCs |
|
|
|
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
[TypeIOC(typeof(StatPayBL), typeof(StatPayBL.BaseBLIOCs.AfterInsert))] |
|
|
|
public class StatPayAfterInsertBLTypeIoc : StatPayBL.BaseBLIOCs.AfterInsert |
|
|
|
{ |
|
|
|
public void Invoke(IDmoContext context, StatPay dmo) |
|
|
|
{ |
|
|
|
if (dmo.Weigh_ID == null) |
|
|
|
return; |
|
|
|
var details = GetFarmerDetail(context.Session, dmo.Weigh_ID.Value); |
|
|
|
var total = details.Sum(x => x.Item2 ?? 0); |
|
|
|
foreach (var detail in details) |
|
|
|
{ |
|
|
|
var arr = new List<Tuple<string, object>>(); |
|
|
|
if (total != 0) |
|
|
|
{ |
|
|
|
var v = dmo.RealWeight * detail.Item2 / total; |
|
|
|
if (v.HasValue) |
|
|
|
{ |
|
|
|
v = decimal.Round(v.Value, 2); |
|
|
|
arr.Add(new Tuple<string, object>("ExeWeight", v)); |
|
|
|
} |
|
|
|
} |
|
|
|
if (detail.Item3 != null) |
|
|
|
{ |
|
|
|
arr.Add(new Tuple<string, object>("ExtMoney", detail.Item3)); |
|
|
|
} |
|
|
|
if (arr.Any()) |
|
|
|
UpdateProperty(detail.Item1, context.Session, arr.ToArray()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
List<Tuple<long, decimal?, decimal?>> GetFarmerDetail(IDmoSession session, long weightID) |
|
|
|
{ |
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(Weigh_FarmerDetail))); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("Weigh_ID", weightID)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Number")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Money")); |
|
|
|
return query.EExecuteList<long, decimal?, decimal?>(session); |
|
|
|
} |
|
|
|
|
|
|
|
void UpdateProperty(long id, IDmoSession session, params Tuple<string, object>[] par) |
|
|
|
{ |
|
|
|
var update = new DQUpdateDom(typeof(Weigh_FarmerDetail)); |
|
|
|
update.Where.Conditions.Add(DQCondition.EQ("ID", id)); |
|
|
|
foreach (var item in par) |
|
|
|
update.Columns.Add(new DQUpdateColumn(item.Item1, item.Item2)); |
|
|
|
session.ExecuteNonQuery(update); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[TypeIOC(typeof(StatPayBL), typeof(StatPayBL.BaseBLIOCs.AfterSave))] |
|
|
|
@ -50,6 +100,8 @@ namespace BWP.B3QingDaoWanFu.TypeIOCs |
|
|
|
|
|
|
|
if (dmo.PurchaseType_Name == "业务") |
|
|
|
{ |
|
|
|
if (dmo.FarmerDetails.Any()) |
|
|
|
dmo.ShackMoney = dmo.FarmerDetails.Sum(x => x.ExtMoney ?? 0); |
|
|
|
dmo.ActualMoney = (dmo.ShackMoney.EToDecimal() ?? 0); |
|
|
|
Money<decimal>? we = null; |
|
|
|
if (dmo.ShackWeight != 0) |
|
|
|
|