|
@@ -7425,9 +7425,82 @@ FROM
|
|
|
|
|
|
//todo:
|
|
|
#region 汇率变更时更改币种相关费用
|
|
|
- var dayCosts = new List<Grp_DayAndCost>();
|
|
|
- var dayOtherCosts = new List<Grp_DayOtherPrice>();
|
|
|
+ var opDayCosts = new List<Grp_DayAndCost>();
|
|
|
+ var opDayOtherCosts = new List<Grp_DayOtherPrice>();
|
|
|
+ var eecCurrencys = dto.Currencys.Select(x => x.CurrencyCode.ToUpper()).ToList();
|
|
|
+
|
|
|
+ var dayCosts = _sqlSugar.Queryable<Grp_DayAndCost>()
|
|
|
+ .LeftJoin<Sys_SetData>((dac,sd) => dac.Currency == sd.Id)
|
|
|
+ .Where((dac, sd) => dac.IsDel == 0 && dac.DiId == dto.DiId)
|
|
|
+ .Select((dac, sd) => new {
|
|
|
+ dac.Id,
|
|
|
+ dac.DiId,
|
|
|
+ CurrencyCode = sd.Name,
|
|
|
+ dac.Cost
|
|
|
+ })
|
|
|
+ .ToList();
|
|
|
+ var dayOtherCosts = _sqlSugar.Queryable<Grp_DayOtherPrice>()
|
|
|
+ .LeftJoin<Sys_SetData>((dop, sd) => dop.Currency == sd.Id)
|
|
|
+ .Where((dop, sd) => dop.IsDel == 0 && dop.Diid == dto.DiId)
|
|
|
+ .Select((dop, sd) => new {
|
|
|
+ dop.Id,
|
|
|
+ dop.Diid,
|
|
|
+ CurrencyCode = sd.Name,
|
|
|
+ dop.Cost
|
|
|
+ })
|
|
|
+ .ToList();
|
|
|
+ if (dayCosts.Count > 0)
|
|
|
+ {
|
|
|
+ var new_dayCosts = dayCosts.Where(x => eecCurrencys.Contains(x.CurrencyCode.ToUpper())).GroupBy(x => x.CurrencyCode);
|
|
|
+ foreach (var dc in new_dayCosts)
|
|
|
+ {
|
|
|
+ var thisCurrency = dc.Key.ToUpper();
|
|
|
+ var thisRate = dto.Currencys.Where(x => x.CurrencyCode.ToUpper().Equals(thisCurrency)).First()?.Rate ?? 0.00M;
|
|
|
+ if (thisRate == 0.00M) continue;
|
|
|
|
|
|
+ foreach (var dcSub in dc)
|
|
|
+ {
|
|
|
+ opDayCosts.Add(new Grp_DayAndCost() {
|
|
|
+ Id = dcSub.Id,
|
|
|
+ DiId = dcSub.DiId,
|
|
|
+ Cost = dcSub.Cost,
|
|
|
+ SubTotal = dcSub.Cost * thisRate,
|
|
|
+ Remark = $"[移动端->汇率变更时费用变更][变更信息:currency:{thisCurrency}、opDatetime:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}、opUserId:{dto.CurrUserId}]"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (opDayCosts.Count > 0)
|
|
|
+ {
|
|
|
+ await _sqlSugar.Updateable(opDayCosts).UpdateColumns(x => new { x.SubTotal, x.Remark }).WhereColumns(x => new { x.Id }).ExecuteCommandAsync();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (dayOtherCosts.Count > 0)
|
|
|
+ {
|
|
|
+ var new_dayOtherCosts = dayOtherCosts.Where(x => eecCurrencys.Contains(x.CurrencyCode.ToUpper())).GroupBy(x => x.CurrencyCode);
|
|
|
+ foreach (var dc in new_dayOtherCosts)
|
|
|
+ {
|
|
|
+ var thisCurrency = dc.Key.ToUpper();
|
|
|
+ var thisRate = dto.Currencys.Where(x => x.CurrencyCode.ToUpper().Equals(thisCurrency)).First()?.Rate ?? 0.00M;
|
|
|
+ if (thisRate == 0.00M) continue;
|
|
|
+
|
|
|
+ foreach (var dcSub in dc)
|
|
|
+ {
|
|
|
+ opDayOtherCosts.Add(new Grp_DayOtherPrice()
|
|
|
+ {
|
|
|
+ Id = dcSub.Id,
|
|
|
+ Diid = dcSub.Diid,
|
|
|
+ Cost = dcSub.Cost,
|
|
|
+ SubTotal = dcSub.Cost * thisRate,
|
|
|
+ // Remark = $"[移动端->汇率变更时费用变更][变更信息:currency:{thisCurrency}、opDatetime:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}、opUserId:{dto.CurrUserId}]"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (opDayOtherCosts.Count > 0)
|
|
|
+ {
|
|
|
+ await _sqlSugar.Updateable(opDayOtherCosts).UpdateColumns(x => new { x.SubTotal }).WhereColumns(x => new { x.Id }).ExecuteCommandAsync();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
#endregion
|
|
|
|