|
|
@@ -1419,6 +1419,8 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
|
|
|
})
|
|
|
.ToListAsync();
|
|
|
|
|
|
+ //创建附加服务与CreditPayment的链接查询数据List,与dbAirTicketList匹配并赋值;
|
|
|
+
|
|
|
if (!dbAirTicketList.Any())
|
|
|
{
|
|
|
groupInfo.FlightsDescription = string.Empty;
|
|
|
@@ -1469,6 +1471,17 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
|
|
|
|
|
|
var clientNameIds = ParseToIntListSafe(allClientNames);
|
|
|
var allCustTicketInfos = sortedGroup.SelectMany(x => x.Air.CustTicketInfos ?? new List<CustTicketInfo>()).ToList();
|
|
|
+ //foreach (var cust in allCustTicketInfos.Where(c => c?.AdditionalServices != null))
|
|
|
+ //{
|
|
|
+ // foreach (var add in cust.AdditionalServices)
|
|
|
+ // {
|
|
|
+ // var cardInfo = sortedGroup.FirstOrDefault(x => x.Card?.CId == add.Id);
|
|
|
+ // //if (cardInfo?.Card != null)
|
|
|
+ // //{
|
|
|
+ // add.PaymentCurrency = cardInfo.Card.PaymentCurrency;
|
|
|
+ // //}
|
|
|
+ // }
|
|
|
+ //}
|
|
|
|
|
|
// 汇总金额
|
|
|
decimal totalPayMoney = allCustTicketInfos?.Sum(c =>
|
|
|
@@ -1481,6 +1494,7 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
|
|
|
return ticketAndServices - refundFees;
|
|
|
}) ?? 0M;
|
|
|
|
|
|
+
|
|
|
// 多舱位状态精炼串联
|
|
|
var auditsStr = new StringBuilder();
|
|
|
foreach (var item in sortedGroup)
|
|
|
@@ -1549,7 +1563,7 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
|
|
|
//ConsumptionPatterns = primaryItem.Card.ConsumptionPatterns,
|
|
|
//ConsumptionDate = primaryItem.Card.ConsumptionDate,
|
|
|
//PayMoney = totalPayMoney,
|
|
|
- //PaymentCurrency = primaryItem.Card.PaymentCurrency,
|
|
|
+ PaymentCurrency = primaryItem.Card.PaymentCurrency,
|
|
|
//CTDId = primaryItem.Card.CTDId,
|
|
|
//BankNo = primaryItem.Card.BankNo,
|
|
|
//CardholderName = primaryItem.Card.CardholderName,
|
|
|
@@ -1896,6 +1910,7 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
|
|
|
cardEntity.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
cardEntity.PayMoney = currentSegmentPrice;
|
|
|
cardEntity.PayThenMoney = cardEntity.PayMoney;
|
|
|
+ cardEntity.DayRate = tempCardSource?.DayRate ?? 0M;
|
|
|
|
|
|
decimal effectiveRate = cardEntity.DayRate > 0M ? cardEntity.DayRate : (item.OriginalItem?.DayRate > 0M ? item.OriginalItem.DayRate : 1M);
|
|
|
cardEntity.RMBPrice = cardEntity.PayMoney * effectiveRate;
|
|
|
@@ -1942,9 +1957,30 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
|
|
|
cardEntity_addi.CreateUserId = currUserId;
|
|
|
cardEntity_addi.CreateTime = DateTime.Now;
|
|
|
cardEntity_addi.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
cardEntity_addi.PayMoney = addItem.Amount;
|
|
|
cardEntity_addi.PayThenMoney = addItem.Amount;
|
|
|
+ cardEntity_addi.PayDId = addItem.PayDId;
|
|
|
+ cardEntity_addi.ConsumptionDate = addItem.ConsumptionDate;
|
|
|
+ cardEntity_addi.PaymentCurrency = addItem.PaymentCurrency;
|
|
|
+ cardEntity_addi.CTDId = addItem.CTDId;
|
|
|
+ cardEntity_addi.BankNo = addItem.BankNo;
|
|
|
+ cardEntity_addi.CardholderName = addItem.CardholderName;
|
|
|
+ cardEntity_addi.DayRate = addItem.DayRate;
|
|
|
+ cardEntity_addi.CompanyBankNo = addItem.CompanyBankNo;
|
|
|
+ cardEntity_addi.Payee = addItem.Payee;
|
|
|
+ cardEntity_addi.OtherBankName = addItem.OtherBankName;
|
|
|
+ cardEntity_addi.OtherSideNo = addItem.OtherSideNo;
|
|
|
+ cardEntity_addi.OtherSideName = addItem.OtherSideName;
|
|
|
+ cardEntity_addi.OrbitalPrivateTransfer = addItem.OrbitalPrivateTransfer;
|
|
|
+ cardEntity_addi.Remark = addItem.Remark;
|
|
|
cardEntity_addi.IsAuditGM = 0;
|
|
|
+ cardEntity_addi.AuditGMOperate = addItem.AuditGMOperate;
|
|
|
+ cardEntity_addi.AuditGMDate = addItem.AuditGMDate;
|
|
|
+ cardEntity_addi.ConsumptionPatterns = addItem.ConsumptionPatterns;
|
|
|
+
|
|
|
+ decimal effectiveRate_addi = cardEntity_addi.DayRate > 0M ? cardEntity_addi.DayRate : (addItem?.DayRate > 0M ? addItem.DayRate : 1M);
|
|
|
+ cardEntity_addi.RMBPrice = cardEntity_addi.PayMoney * effectiveRate_addi;
|
|
|
|
|
|
var cardId_addi = await _sqlSugar.Insertable(cardEntity_addi).ExecuteReturnIdentityAsync();
|
|
|
|
|
|
@@ -1954,6 +1990,23 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
|
|
|
// -------------------- 分支 B:编辑覆盖 --------------------
|
|
|
else
|
|
|
{
|
|
|
+ //创建ResId对应的待删除附加服务费集合(指已进入数据库的附加服务费,并且存在某航段某旅客修改票号等导致匹配不上已存在的(未审核)附加服务费数据,导致C表数据存在冗余错误)
|
|
|
+ List<Grp_AirAdditionServices> sourceAddList = await _sqlSugar.Queryable<Grp_AirAdditionServices>()
|
|
|
+ .Where(x => x.ResId == dbAir.Id && x.IsDel == 0)
|
|
|
+ .ToListAsync(); //当前ResId的所有未删除附加服务费
|
|
|
+
|
|
|
+ List<Grp_AirAdditionServices> waitDelList = new List<Grp_AirAdditionServices>();
|
|
|
+ //待删除附加服务费集合,后续会从中移除已更新或新增的附加服务费,剩余的就是需要删除的附加服务费
|
|
|
+
|
|
|
+ foreach (var sourceAdd in sourceAddList) {
|
|
|
+
|
|
|
+ var checkcard = await _sqlSugar.Queryable<Grp_CreditCardPayment>()
|
|
|
+ .Where(x => x.CId == sourceAdd.Id && x.CTable == sourceAdd.SysTypeId && x.IsDel == 0 && x.IsAuditGM % 2 == 0)
|
|
|
+ .FirstAsync();
|
|
|
+ if (checkcard != null) {
|
|
|
+ waitDelList.Add(sourceAdd);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
//添加附加服务费用表数据,以及C表对应费用审核数据
|
|
|
//需要预检查数据库中是否存在附加服务数据,如果存在则更新,不存在则新增
|
|
|
@@ -1962,6 +2015,7 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
|
|
|
foreach (var custItem in custList)
|
|
|
{
|
|
|
List<AdditionalService> addList = custItem.AdditionalServices;
|
|
|
+
|
|
|
//检查数据库中对应的附加服务数据集合
|
|
|
List<Grp_AirAdditionServices> dbAddList = await _sqlSugar.Queryable<Grp_AirAdditionServices>()
|
|
|
.Where(x => x.ResId == dbAir.Id && x.ClientId == custItem.ClientId && x.TicketCode == custItem.TicketCode && x.IsDel == 0)
|
|
|
@@ -1970,6 +2024,12 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
|
|
|
//添加、修改附加服务数据,并统计执行操作的附加服务数据集合与dbAddList比较,检查是否有多余的附加服务数据需要删除
|
|
|
foreach (var addItem in addList)
|
|
|
{
|
|
|
+ var checkDel = waitDelList.FirstOrDefault(x => x.SysTypeId == addItem.ServiceTypeId && x.ClientId == custItem.ClientId && x.TicketCode == custItem.TicketCode);
|
|
|
+ if (checkDel != null)
|
|
|
+ {
|
|
|
+ waitDelList.Remove(checkDel);//从待删除集合中移除,表示该附加服务数据仍存在于此次提交,不需要删除
|
|
|
+ }
|
|
|
+
|
|
|
// 先检查数据库中是否存在该附加服务数据
|
|
|
var existingAddService = await _sqlSugar.Queryable<Grp_AirAdditionServices>()
|
|
|
.Where(x => x.ResId == dbAir.Id && x.SysTypeId == addItem.ServiceTypeId && x.ClientId == custItem.ClientId && x.TicketCode == custItem.TicketCode && x.IsDel == 0)
|
|
|
@@ -1994,8 +2054,29 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
|
|
|
|
|
|
//更新对应的信用卡付款表数据
|
|
|
checkCard.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
- checkCard.PayMoney = addItem.Amount;
|
|
|
+
|
|
|
checkCard.PayThenMoney = addItem.Amount;
|
|
|
+
|
|
|
+ checkCard.PayDId = addItem.PayDId;
|
|
|
+ checkCard.ConsumptionDate = addItem.ConsumptionDate;
|
|
|
+ checkCard.PayMoney = addItem.Amount;
|
|
|
+ checkCard.PaymentCurrency = addItem.PaymentCurrency;
|
|
|
+ checkCard.CTDId = addItem.CTDId;
|
|
|
+ checkCard.BankNo = addItem.BankNo;
|
|
|
+ checkCard.CardholderName = addItem.CardholderName;
|
|
|
+ checkCard.DayRate = addItem.DayRate;
|
|
|
+ checkCard.CompanyBankNo = addItem.CompanyBankNo;
|
|
|
+ checkCard.Payee = addItem.Payee;
|
|
|
+ checkCard.OtherBankName = addItem.OtherBankName;
|
|
|
+ checkCard.OtherSideNo = addItem.OtherSideNo;
|
|
|
+ checkCard.OtherSideName = addItem.OtherSideName;
|
|
|
+ checkCard.OrbitalPrivateTransfer = addItem.OrbitalPrivateTransfer;
|
|
|
+ checkCard.Remark = addItem.Remark;
|
|
|
+ checkCard.IsAuditGM = addItem.IsAuditGM;
|
|
|
+ checkCard.AuditGMOperate = addItem.AuditGMOperate;
|
|
|
+ checkCard.AuditGMDate = addItem.AuditGMDate;
|
|
|
+ checkCard.ConsumptionPatterns = addItem.ConsumptionPatterns;
|
|
|
+
|
|
|
await _sqlSugar.Updateable(checkCard).ExecuteCommandAsync();
|
|
|
}
|
|
|
}
|
|
|
@@ -2022,9 +2103,30 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
|
|
|
cardEntity_addi.CreateUserId = currUserId;
|
|
|
cardEntity_addi.CreateTime = DateTime.Now;
|
|
|
cardEntity_addi.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
cardEntity_addi.PayMoney = addItem.Amount;
|
|
|
cardEntity_addi.PayThenMoney = addItem.Amount;
|
|
|
+ cardEntity_addi.PayDId = addItem.PayDId;
|
|
|
+ cardEntity_addi.ConsumptionDate = addItem.ConsumptionDate;
|
|
|
+ cardEntity_addi.PaymentCurrency = addItem.PaymentCurrency;
|
|
|
+ cardEntity_addi.CTDId = addItem.CTDId;
|
|
|
+ cardEntity_addi.BankNo = addItem.BankNo;
|
|
|
+ cardEntity_addi.CardholderName = addItem.CardholderName;
|
|
|
+ cardEntity_addi.DayRate = addItem.DayRate;
|
|
|
+ cardEntity_addi.CompanyBankNo = addItem.CompanyBankNo;
|
|
|
+ cardEntity_addi.Payee = addItem.Payee;
|
|
|
+ cardEntity_addi.OtherBankName = addItem.OtherBankName;
|
|
|
+ cardEntity_addi.OtherSideNo = addItem.OtherSideNo;
|
|
|
+ cardEntity_addi.OtherSideName = addItem.OtherSideName;
|
|
|
+ cardEntity_addi.OrbitalPrivateTransfer = addItem.OrbitalPrivateTransfer;
|
|
|
+ cardEntity_addi.Remark = addItem.Remark;
|
|
|
cardEntity_addi.IsAuditGM = 0;
|
|
|
+ cardEntity_addi.AuditGMOperate = addItem.AuditGMOperate;
|
|
|
+ cardEntity_addi.AuditGMDate = addItem.AuditGMDate;
|
|
|
+ cardEntity_addi.ConsumptionPatterns = addItem.ConsumptionPatterns;
|
|
|
+
|
|
|
+ decimal effectiveRate_addi = cardEntity_addi.DayRate > 0M ? cardEntity_addi.DayRate : (addItem?.DayRate > 0M ? addItem.DayRate : 1M);
|
|
|
+ cardEntity_addi.RMBPrice = cardEntity_addi.PayMoney * effectiveRate_addi;
|
|
|
|
|
|
var cardId_addi = await _sqlSugar.Insertable(cardEntity_addi).ExecuteReturnIdentityAsync();
|
|
|
}
|
|
|
@@ -2062,6 +2164,20 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //待删除附加服务费
|
|
|
+ foreach (var waitDelItem in waitDelList)
|
|
|
+ {
|
|
|
+ await _sqlSugar.Updateable<Grp_AirAdditionServices>()
|
|
|
+ .SetColumns(x => new Grp_AirAdditionServices { IsDel = 1, DeleteUserId = currUserId, DeleteTime = DateTime.Now.ToString() })
|
|
|
+ .Where(x => x.Id == waitDelItem.Id)
|
|
|
+ .ExecuteCommandAsync();
|
|
|
+ //删除对应的信用卡付款表数据
|
|
|
+ await _sqlSugar.Updateable<Grp_CreditCardPayment>()
|
|
|
+ .SetColumns(x => new Grp_CreditCardPayment { IsDel = 1, DeleteUserId = currUserId, DeleteTime = DateTime.Now.ToString() })
|
|
|
+ .Where(x => x.CId == waitDelItem.Id && x.CTable == waitDelItem.SysTypeId)
|
|
|
+ .ExecuteCommandAsync();
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
var dbCard = dbCardList.FirstOrDefault(x => x.CId == dbAir.Id);
|
|
|
|
|
|
@@ -2119,6 +2235,10 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
|
|
|
dbCard.Payee = submitCardInfo?.Payee;
|
|
|
dbCard.OrbitalPrivateTransfer = submitCardInfo?.OrbitalPrivateTransfer ?? 0;
|
|
|
dbCard.Remark = submitCardInfo?.Remark;
|
|
|
+ dbCard.DayRate = submitCardInfo?.DayRate ?? 0M;
|
|
|
+
|
|
|
+ decimal effectiveRate_addi = dbCard.DayRate > 0M ? dbCard.DayRate : (submitCardInfo?.DayRate > 0M ? submitCardInfo.DayRate : 1M);
|
|
|
+ dbCard.RMBPrice = dbCard.PayMoney * effectiveRate_addi;
|
|
|
|
|
|
await _sqlSugar.Updateable(dbCard).ExecuteCommandAsync();
|
|
|
|