AirTicketResRepository.cs 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614
  1. using AutoMapper;
  2. using MySqlX.XDevAPI.Relational;
  3. using OASystem.Domain;
  4. using OASystem.Domain.Dtos.Groups;
  5. using OASystem.Domain.Dtos.UserDto;
  6. using OASystem.Domain.Entities.Customer;
  7. using OASystem.Domain.Entities.Groups;
  8. using OASystem.Domain.Entities.Resource;
  9. using OASystem.Domain.ViewModels.Groups;
  10. using Org.BouncyCastle.Asn1.Ocsp;
  11. using System;
  12. using System.Collections.Generic;
  13. using System.Linq;
  14. using System.Security.Cryptography;
  15. using System.Text;
  16. using System.Threading.Tasks;
  17. using System.Xml.Linq;
  18. namespace OASystem.Infrastructure.Repositories.Resource
  19. {
  20. public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations, Grp_AirTicketReservations>
  21. {
  22. private readonly IMapper _mapper;
  23. public AirTicketResRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar)
  24. {
  25. _mapper = mapper;
  26. }
  27. public async Task<Result> AirTicketResById(AirTicketResByIdDto dto)
  28. {
  29. Result result = new Result() { Code = -2, Msg = "未知错误" };
  30. try
  31. {
  32. Grp_AirTicketReservations grp_AirTicket = _sqlSugar.Queryable<Grp_AirTicketReservations>().First(a=>a.Id==dto.Id && a.IsDel==0);
  33. if (grp_AirTicket == null)
  34. {
  35. return result = new Result() { Code = -1, Msg = "暂无数据" };
  36. }
  37. else
  38. {
  39. Grp_CreditCardPayment grp_CreditCard = _sqlSugar.Queryable<Grp_CreditCardPayment>().First(a => a.CId == grp_AirTicket.Id && a.IsDel == 0);
  40. if (grp_CreditCard == null) { return result = new Result() { Code = -1, Msg = "暂无数据" }; }
  41. return result = new Result() { Code = 0, Msg = "查询成功!",Data=new
  42. {
  43. AirTicket= grp_AirTicket,
  44. CreditCard= grp_CreditCard,
  45. }
  46. };
  47. }
  48. }
  49. catch (Exception)
  50. {
  51. return result = new Result() { Code = -2, Msg = "未知错误" };
  52. throw;
  53. }
  54. }
  55. public async Task<Result> AirTicketResList(AirTicketResListDto dto)
  56. {
  57. Result result = new Result() { Code = -2, Msg = "未知错误" };
  58. Grp_DelegationInfo _DelegationInfo = _sqlSugar.Queryable<Grp_DelegationInfo>().First(it => it.Id == dto.DiId);
  59. if (_DelegationInfo != null)
  60. {
  61. string sql = string.Format(@"select a.*,c.IsAuditGM,(select Name from Sys_SetData where Id=a.cType) as 'CTypeName',(select Name from
  62. Sys_SetData where Id=a.PreCurrency) as 'PreCurrencyStr',(select Name from Sys_SetData where Id=a.Currency)
  63. as 'CurrencyStr' from Grp_AirTicketReservations a,Grp_CreditCardPayment c where a.id=c.CId and a.isdel={1}
  64. and a.DIId={0} Order By a.CreateTime desc", dto.DiId, 0);
  65. List<AirTicketReservationsView> _AirTicketReservations = _sqlSugar.SqlQueryable<AirTicketReservationsView>(sql).ToList();
  66. foreach (var item in _AirTicketReservations)
  67. {
  68. if (item.FlightsDescription.Contains("\r\n"))
  69. {
  70. var spilitArr = Regex.Split(item.FlightsDescription, "\r\n");
  71. int rowindex = 1;
  72. foreach (var spilitItem in spilitArr)
  73. {
  74. try
  75. {
  76. var spDotandEmpty = spilitItem.Split('.')[1].Split(' ').Where(x => !string.IsNullOrEmpty(x)).ToList();
  77. var depCode = spDotandEmpty[3].Substring(0, 3);
  78. var arrCode = spDotandEmpty[3].Substring(3, 3);
  79. Res_ThreeCode depData = _sqlSugar.Queryable<Res_ThreeCode>().First(it => it.IsDel == 0 && it.Three == depCode);
  80. Res_ThreeCode arrData = _sqlSugar.Queryable<Res_ThreeCode>().First(it => it.IsDel == 0 && it.Three == arrCode);
  81. string day = spDotandEmpty[2].Substring(2, 2);//日
  82. string monthAbbreviations = spDotandEmpty[1].Substring(4, 3).ToUpper();//月份
  83. switch (monthAbbreviations)
  84. {
  85. case "JAN":
  86. monthAbbreviations = "1";
  87. break;
  88. case "FEB":
  89. monthAbbreviations = "2";
  90. break;
  91. case "MAR":
  92. monthAbbreviations = "3";
  93. break;
  94. case "APR":
  95. monthAbbreviations = "4";
  96. break;
  97. case "MAY":
  98. monthAbbreviations = "5";
  99. break;
  100. case "JUN":
  101. monthAbbreviations = "6";
  102. break;
  103. case "JUL":
  104. monthAbbreviations = "7";
  105. break;
  106. case "AUG":
  107. monthAbbreviations = "8";
  108. break;
  109. case "SEP":
  110. monthAbbreviations = "9";
  111. break;
  112. case "OCT":
  113. monthAbbreviations = "10";
  114. break;
  115. case "NOV":
  116. monthAbbreviations = "11";
  117. break;
  118. case "DEC":
  119. monthAbbreviations = "12";
  120. break;
  121. }
  122. string tate = $"{monthAbbreviations}月{day}日";
  123. item.FlightDescription += rowindex + ". " + depData.AirPort + " " + arrData.AirPort + " (" + tate + ")\r\n";
  124. }
  125. catch (Exception)
  126. {
  127. item.FlightDescription = "录入数据不规范!请检查";
  128. break;
  129. }
  130. rowindex++;
  131. }
  132. }
  133. else
  134. {
  135. try
  136. {
  137. var spDotandEmpty = item.FlightsDescription.Split('.')[1].Split(' ').Where(x => !string.IsNullOrEmpty(x)).ToList();
  138. var depCode = spDotandEmpty[3].Substring(0, 3);
  139. var arrCode = spDotandEmpty[3].Substring(3, 3);
  140. Res_ThreeCode depData = _sqlSugar.Queryable<Res_ThreeCode>().First(it => it.IsDel == 0 && it.Three == depCode);
  141. Res_ThreeCode arrData = _sqlSugar.Queryable<Res_ThreeCode>().First(it => it.IsDel == 0 && it.Three == arrCode);
  142. string day = spDotandEmpty[2].Substring(2, 2);//日
  143. string monthAbbreviations = spDotandEmpty[2].Substring(4, 3).ToUpper();//月份
  144. switch (monthAbbreviations)
  145. {
  146. case "JAN":
  147. monthAbbreviations = "1";
  148. break;
  149. case "FEB":
  150. monthAbbreviations = "2";
  151. break;
  152. case "MAR":
  153. monthAbbreviations = "3";
  154. break;
  155. case "APR":
  156. monthAbbreviations = "4";
  157. break;
  158. case "MAY":
  159. monthAbbreviations = "5";
  160. break;
  161. case "JUN":
  162. monthAbbreviations = "6";
  163. break;
  164. case "JUL":
  165. monthAbbreviations = "7";
  166. break;
  167. case "AUG":
  168. monthAbbreviations = "8";
  169. break;
  170. case "SEP":
  171. monthAbbreviations = "9";
  172. break;
  173. case "OCT":
  174. monthAbbreviations = "10";
  175. break;
  176. case "NOV":
  177. monthAbbreviations = "11";
  178. break;
  179. case "DEC":
  180. monthAbbreviations = "12";
  181. break;
  182. }
  183. string tate = $"{monthAbbreviations}月{day}日";
  184. item.FlightDescription += depData.AirPort + " " + arrData.AirPort + " (" + tate + ")\r\n";
  185. }
  186. catch (Exception)
  187. {
  188. item.FlightDescription = "录入数据不规范!请检查";
  189. }
  190. }
  191. }
  192. //团组成本预算表查询
  193. Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == dto.DiId);
  194. AirGroupCostParameterView _AirgroupCostParameter = _mapper.Map<AirGroupCostParameterView>(_GroupCostParameter);
  195. var data = new
  196. {
  197. DelegationInfo = _DelegationInfo,
  198. AirTicketReservations = _AirTicketReservations,
  199. AirGroupCostParameter = _AirgroupCostParameter
  200. };
  201. return result = new Result() { Code = 0, Msg = "查询成功!", Data = data };
  202. }
  203. else
  204. {
  205. return result = new Result() { Code = -1, Msg = "暂无团组数据!" };
  206. }
  207. }
  208. public async Task<Result> AirTicketResSelect(AirTicketResDto dto)
  209. {
  210. Result result = new Result() { Code = -2, Msg = "未知错误" };
  211. try
  212. {
  213. #region 团组下拉框
  214. List<Grp_GroupsTaskAssignment> grp_GroupsTaskAssignment = Query<Grp_GroupsTaskAssignment>(a => a.IsDel == 0 && a.UId == dto.UserId && a.CTId == 85).ToList();
  215. string DiId = "";
  216. foreach (var item in grp_GroupsTaskAssignment)
  217. {
  218. DiId += item.DIId + ",";
  219. }
  220. DiId = DiId.Substring(0, DiId.Length - 1);
  221. string sql = string.Format(@"select * from Grp_DelegationInfo where Id in({0}) and IsDel={1}", DiId, 0);
  222. List<Grp_DelegationInfo> grp_Delegations = _sqlSugar.SqlQueryable<Grp_DelegationInfo>(sql).ToList();
  223. if (grp_Delegations.Count == 0)
  224. {
  225. return result = new Result() { Code = -1, Msg = "查询失败!" };
  226. }
  227. List<GroupNameView> grp_NameView = new List<GroupNameView>();
  228. foreach (var item in grp_Delegations)
  229. {
  230. GroupNameView groupNameView = new GroupNameView();
  231. groupNameView.Id = item.Id;
  232. groupNameView.GroupName = item.TeamName;
  233. grp_NameView.Add(groupNameView);
  234. }
  235. #endregion
  236. #region 其他下拉框查询
  237. //舱位类型
  238. List<Sys_SetData> TicketClass = _sqlSugar.Queryable<Sys_SetData>().Where(a=>a.STid==44 && a.IsDel==0).ToList();
  239. List<SetDataInfoView> _TicketClassa = _mapper.Map<List<SetDataInfoView>>(TicketClass);
  240. //支付方式
  241. List<Sys_SetData> Payment = _sqlSugar.Queryable<Sys_SetData>().Where(a => a.STid == 14 && a.IsDel == 0).ToList();
  242. List<SetDataInfoView> _Payment = _mapper.Map<List<SetDataInfoView>>(Payment);
  243. //卡类型
  244. List<Sys_SetData> CardType = _sqlSugar.Queryable<Sys_SetData>().Where(a => a.STid == 15 && a.IsDel == 0).ToList();
  245. List<SetDataInfoView> _CardType = _mapper.Map<List<SetDataInfoView>>(CardType);
  246. //合作方资料
  247. List<Res_AirTicketAgent> _AirTicketAgents = _sqlSugar.Queryable<Res_AirTicketAgent>().Where(a=>a.IsDel == 0).ToList();
  248. #endregion
  249. var data = new
  250. {
  251. TicketClass = _TicketClassa,
  252. Payment = _Payment,
  253. CardType = _CardType,
  254. GroupName = grp_NameView,
  255. AirTicketAgents= _AirTicketAgents
  256. };
  257. return result = new Result() { Code = 0, Msg = "查询成功!", Data=data };
  258. }
  259. catch (Exception ex)
  260. {
  261. return result = new Result() { Code = -2, Msg = "程序错误" };
  262. throw;
  263. }
  264. }
  265. public async Task<Result> OpAirTicketRes(AirTicketResOpDto dto)
  266. {
  267. Result result = new Result() { Code = -2, Msg = "未知错误" };
  268. try
  269. {
  270. BeginTran();
  271. int id = 0;
  272. Grp_AirTicketReservations grp_AirTicket = _mapper.Map<Grp_AirTicketReservations>(dto.AirTicketResOpData);
  273. if (dto.Status==1)
  274. {
  275. string selectSql = string.Format(@"select * from Grp_AirTicketReservations where ClientName='{0}' and IsDel={1}"
  276. , dto.AirTicketResOpData.ClientName, 0);
  277. var DeleClient = await _sqlSugar.SqlQueryable<Grp_AirTicketReservations>(selectSql).FirstAsync();//查询是否存在
  278. if (DeleClient != null)
  279. {
  280. return result = new Result() { Code = -1, Msg = "该客户已存在,请勿重复添加!" };
  281. }
  282. else//不存在,可添加
  283. {
  284. id = await AddAsyncReturnId(grp_AirTicket);
  285. if (id == 0)
  286. {
  287. result = new Result() { Code = -1, Msg = "添加失败!" };
  288. }
  289. else
  290. {
  291. result = new Result() { Code = 0, Msg = "添加成功!" };
  292. }
  293. }
  294. if (result.Code==0)
  295. {
  296. Grp_CreditCardPayment grp_CreditCard = _mapper.Map<Grp_CreditCardPayment>(dto.CardPaymentOpData);
  297. //换算
  298. Grp_TeamRate _TeamRate = _sqlSugar.Queryable<Grp_TeamRate>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0 && a.CTable==85);
  299. if (_TeamRate!=null)
  300. {
  301. if (grp_CreditCard.PaymentCurrency == 49)
  302. {
  303. grp_CreditCard.DayRate = _TeamRate.RateU;
  304. grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney * Convert.ToDecimal(_TeamRate.RateU);
  305. //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateU);
  306. }
  307. else if (grp_CreditCard.PaymentCurrency == 51)
  308. {
  309. grp_CreditCard.DayRate = _TeamRate.RateE;
  310. grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney * Convert.ToDecimal(_TeamRate.RateE);
  311. //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateE);
  312. }
  313. else
  314. {
  315. grp_CreditCard.DayRate = "1";
  316. grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney;
  317. }
  318. }
  319. else
  320. {
  321. grp_CreditCard.DayRate = "1";
  322. grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney;
  323. }
  324. //判断是否超出成本
  325. Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel==0);
  326. if (grp_AirTicket.CType==460)//经济舱
  327. {
  328. if((Convert.ToDecimal(_GroupCostParameter.JJCCB)* Convert.ToDecimal(grp_AirTicket.ClientNum))> grp_CreditCard.RMBPrice)
  329. {
  330. grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
  331. grp_CreditCard.IsAuditGM = 3;//3 为自动审核
  332. grp_CreditCard.AuditGMOperate = 0;
  333. grp_CreditCard.AuditGMDate = DateTime.Now;
  334. grp_CreditCard.IsPay = 1;
  335. }
  336. else
  337. {
  338. var a = grp_CreditCard.RMBPrice - Convert.ToDecimal(_GroupCostParameter.JJCCB);
  339. var b = a / Convert.ToDecimal(_GroupCostParameter.JJCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum);
  340. grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
  341. grp_CreditCard.IsAuditGM = 0;//3 为自动审核
  342. grp_CreditCard.AuditGMOperate = 21;
  343. grp_CreditCard.AuditGMDate =new DateTime();
  344. grp_CreditCard.IsPay = 1;
  345. }
  346. }
  347. else if(grp_AirTicket.CType==458)
  348. {
  349. if ((Convert.ToDecimal(_GroupCostParameter.GWCB) * Convert.ToDecimal(grp_AirTicket.ClientNum)) > grp_CreditCard.RMBPrice)
  350. {
  351. grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
  352. grp_CreditCard.IsAuditGM = 3;//3 为自动审核
  353. grp_CreditCard.AuditGMOperate = 21;
  354. grp_CreditCard.AuditGMDate = DateTime.Now;
  355. grp_CreditCard.IsPay = 1;
  356. }
  357. else
  358. {
  359. var a = grp_CreditCard.RMBPrice - Convert.ToDecimal(_GroupCostParameter.GWCB);
  360. var b = a / Convert.ToDecimal(_GroupCostParameter.GWCB) * Convert.ToDecimal(grp_AirTicket.ClientNum);
  361. grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
  362. grp_CreditCard.IsAuditGM = 0;//3 为自动审核
  363. grp_CreditCard.AuditGMOperate = 21;
  364. grp_CreditCard.AuditGMDate = new DateTime();
  365. grp_CreditCard.IsPay = 1;
  366. }
  367. }
  368. grp_CreditCard.CId = id;
  369. grp_CreditCard.CTable = 85;
  370. grp_CreditCard.PayPercentage = 100;
  371. //查询上一次付款信息
  372. Grp_CreditCardPayment _CreditCardPayment = _sqlSugar.Queryable<Grp_CreditCardPayment>().OrderByDescending(x=>x.CreateUserId).First(a => a.DIId == grp_AirTicket.DIId && a.IsDel == 0 && a.IsPay==1);
  373. if (_CreditCardPayment != null)
  374. {
  375. grp_CreditCard.PayPercentageOld = _CreditCardPayment.PayPercentageOld;// 上次付款百分比 查询并计算最近一次
  376. grp_CreditCard.PayThenMoneyOld = _CreditCardPayment.PayMoney;// 上次付款金额 查询上一次
  377. grp_CreditCard.UpdateDate = _CreditCardPayment.UpdateDate;// 上次付款时间 查询上一次
  378. }
  379. else
  380. {
  381. grp_CreditCard.PayPercentageOld =0;// 上次付款百分比 查询并计算最近一次
  382. grp_CreditCard.PayThenMoneyOld =0;// 上次付款金额 查询上一次
  383. grp_CreditCard.UpdateDate =new DateTime();// 上次付款时间 查询上一次
  384. }
  385. id = await _sqlSugar.Insertable(grp_CreditCard).ExecuteReturnIdentityAsync();
  386. if (id == 0)
  387. {
  388. RollbackTran();
  389. return result = new Result() { Code = -1, Msg = "添加失败!" };
  390. }
  391. CommitTran();
  392. return result = new Result() { Code = 0, Msg = "添加成功!" };
  393. //C表操作
  394. }
  395. else
  396. {
  397. RollbackTran();
  398. return result = new Result() { Code = -1, Msg = "添加失败!" };
  399. }
  400. }
  401. else if (dto.Status==2)
  402. {
  403. id = dto.AirTicketResOpData.Id;
  404. bool res = await UpdateAsync(a => a.Id == dto.AirTicketResOpData.Id, a => new Grp_AirTicketReservations
  405. {
  406. CType = dto.AirTicketResOpData.CType,
  407. PrePrice = dto.AirTicketResOpData.PrePrice,
  408. PreCurrency = dto.AirTicketResOpData.PreCurrency,
  409. Price = dto.AirTicketResOpData.Price,
  410. Currency = dto.AirTicketResOpData.Currency,
  411. ClientNum = dto.AirTicketResOpData.ClientNum,
  412. ClientName = dto.AirTicketResOpData.ClientName,
  413. IsCheckIn = dto.AirTicketResOpData.IsCheckIn,
  414. IsSetSeat = dto.AirTicketResOpData.IsSetSeat,
  415. IsPackage = dto.AirTicketResOpData.IsPackage,
  416. IsBagHandle = dto.AirTicketResOpData.IsBagHandle,
  417. IsTrain = dto.AirTicketResOpData.IsTrain,
  418. FlightsCode = dto.AirTicketResOpData.FlightsCode,
  419. FlightsCity = dto.AirTicketResOpData.FlightsCity,
  420. FlightsDescription = dto.AirTicketResOpData.FlightsDescription,
  421. PriceDescription = dto.AirTicketResOpData.PriceDescription,
  422. Remark = dto.AirTicketResOpData.Remark,
  423. });
  424. if (!res)
  425. {
  426. result = new Result() { Code = -1, Msg = "修改失败!" };
  427. }
  428. else { result = new Result() { Code = 0, Msg = "修改成功!" }; }
  429. if (result.Code==0)
  430. {
  431. //C表操作
  432. Grp_CreditCardPayment grp_CreditCard = _mapper.Map<Grp_CreditCardPayment>(dto.CardPaymentOpData);
  433. //换算
  434. Grp_TeamRate _TeamRate = _sqlSugar.Queryable<Grp_TeamRate>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0 && a.CTable == 85);
  435. if (_TeamRate != null)
  436. {
  437. if (grp_CreditCard.PaymentCurrency == 49)
  438. {
  439. grp_CreditCard.DayRate = _TeamRate.RateU;
  440. grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney * Convert.ToDecimal(_TeamRate.RateU);
  441. //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateU);
  442. }
  443. else if (grp_CreditCard.PaymentCurrency == 51)
  444. {
  445. grp_CreditCard.DayRate = _TeamRate.RateE;
  446. grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney * Convert.ToDecimal(_TeamRate.RateE);
  447. //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateE);
  448. }
  449. else
  450. {
  451. grp_CreditCard.DayRate = "1";
  452. grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney;
  453. }
  454. }
  455. else
  456. {
  457. grp_CreditCard.DayRate = "1";
  458. grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney;
  459. }
  460. //grp_CreditCard.PayMoney = grp_CreditCard.PayMoney;
  461. //判断是否超出成本
  462. Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0);
  463. if (grp_AirTicket.CType == 460)//经济舱
  464. {
  465. if ((Convert.ToDecimal(_GroupCostParameter.JJCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum)) > grp_CreditCard.RMBPrice)
  466. {
  467. grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
  468. grp_CreditCard.IsAuditGM = 3;//3 为自动审核
  469. grp_CreditCard.AuditGMOperate = 0;
  470. grp_CreditCard.AuditGMDate = DateTime.Now;
  471. grp_CreditCard.IsPay = 1;
  472. }
  473. else
  474. {
  475. var a = grp_CreditCard.RMBPrice - Convert.ToDecimal(_GroupCostParameter.JJCCB);
  476. var b = a / Convert.ToDecimal(_GroupCostParameter.JJCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum);
  477. grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
  478. grp_CreditCard.IsAuditGM = 0;//3 为自动审核
  479. grp_CreditCard.AuditGMOperate = 21;
  480. grp_CreditCard.AuditGMDate = new DateTime();
  481. grp_CreditCard.IsPay = 1;
  482. }
  483. }
  484. else if (grp_AirTicket.CType == 458)
  485. {
  486. if ((Convert.ToDecimal(_GroupCostParameter.GWCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum)) > grp_CreditCard.RMBPrice)
  487. {
  488. grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
  489. grp_CreditCard.IsAuditGM = 3;//3 为自动审核
  490. grp_CreditCard.AuditGMOperate = 21;
  491. grp_CreditCard.AuditGMDate = DateTime.Now;
  492. grp_CreditCard.IsPay = 1;
  493. }
  494. else
  495. {
  496. var a = grp_CreditCard.RMBPrice - Convert.ToDecimal(_GroupCostParameter.GWCB);
  497. var b = a / Convert.ToDecimal(_GroupCostParameter.GWCB) * Convert.ToDecimal(grp_AirTicket.ClientNum);
  498. grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
  499. grp_CreditCard.IsAuditGM = 0;//3 为自动审核
  500. grp_CreditCard.AuditGMOperate = 21;
  501. grp_CreditCard.AuditGMDate = new DateTime();
  502. grp_CreditCard.IsPay = 1;
  503. }
  504. }
  505. grp_CreditCard.CId = id;
  506. grp_CreditCard.CTable = 85;
  507. grp_CreditCard.PayPercentage = 100;
  508. //查询上一次付款信息
  509. Grp_CreditCardPayment _CreditCardPayment = _sqlSugar.Queryable<Grp_CreditCardPayment>().OrderByDescending(x => x.CreateUserId).First(a => a.DIId == grp_AirTicket.DIId && a.IsDel == 0 && a.IsPay == 1);
  510. if (_CreditCardPayment != null)
  511. {
  512. grp_CreditCard.PayPercentageOld = _CreditCardPayment.PayPercentageOld;// 上次付款百分比 查询并计算最近一次
  513. grp_CreditCard.PayThenMoneyOld = _CreditCardPayment.PayMoney;// 上次付款金额 查询上一次
  514. grp_CreditCard.UpdateDate = _CreditCardPayment.UpdateDate;// 上次付款时间 查询上一次
  515. }
  516. else
  517. {
  518. grp_CreditCard.PayPercentageOld = 0;// 上次付款百分比 查询并计算最近一次
  519. grp_CreditCard.PayThenMoneyOld = 0;// 上次付款金额 查询上一次
  520. grp_CreditCard.UpdateDate = new DateTime();// 上次付款时间 查询上一次
  521. }
  522. int CTable=await _sqlSugar.Updateable<Grp_CreditCardPayment>().Where(a => a.Id == dto.CardPaymentOpData.Id).SetColumns(a => new Grp_CreditCardPayment
  523. {
  524. PayDId = grp_CreditCard.PayDId,
  525. ConsumptionPatterns = grp_CreditCard.ConsumptionPatterns,
  526. ConsumptionDate = grp_CreditCard.ConsumptionDate,
  527. CTDId = grp_CreditCard.CTDId,
  528. BankNo = grp_CreditCard.BankNo,
  529. CardholderName = grp_CreditCard.CardholderName,
  530. PayMoney = grp_CreditCard.PayMoney,
  531. PaymentCurrency = grp_CreditCard.PaymentCurrency,
  532. DayRate = grp_CreditCard.DayRate,
  533. CompanyBankNo = grp_CreditCard.CompanyBankNo,
  534. OtherBankName = grp_CreditCard.OtherBankName,
  535. OtherSideNo = grp_CreditCard.OtherSideNo,
  536. OtherSideName = grp_CreditCard.OtherSideName,
  537. IsAuditGM = grp_CreditCard.IsAuditGM,
  538. AuditGMOperate = grp_CreditCard.AuditGMOperate,
  539. AuditGMDate = grp_CreditCard.AuditGMDate,
  540. IsPay = grp_CreditCard.IsPay,
  541. PayPercentage = grp_CreditCard.PayPercentage,
  542. PayThenMoney = grp_CreditCard.PayThenMoney,
  543. PayPercentageOld = grp_CreditCard.PayPercentageOld,
  544. PayThenMoneyOld = grp_CreditCard.PayThenMoneyOld,
  545. UpdateDate = grp_CreditCard.UpdateDate,
  546. Payee = grp_CreditCard.Payee,
  547. RMBPrice = grp_CreditCard.RMBPrice,
  548. OrbitalPrivateTransfer = grp_CreditCard.OrbitalPrivateTransfer,
  549. ExceedBudget = grp_CreditCard.ExceedBudget
  550. }).ExecuteCommandAsync();
  551. if (CTable == 0)
  552. {
  553. RollbackTran();
  554. return result = new Result() { Code = -1, Msg = "修改失败!" };
  555. }
  556. else
  557. {
  558. result = new Result() { Code = 0, Msg = "修改成功!" };
  559. }
  560. }
  561. else
  562. {
  563. result = new Result() { Code = -1, Msg = "修改失败!" };
  564. RollbackTran();
  565. }
  566. }
  567. CommitTran();
  568. }
  569. catch (Exception ex)
  570. {
  571. RollbackTran();
  572. return result = new Result() { Code = -2, Msg = "程序错误" };
  573. throw;
  574. }
  575. return result;
  576. }
  577. }
  578. }