using AutoMapper; using OASystem.Domain; using OASystem.Domain.Dtos.Groups; using OASystem.Domain.Entities.Financial; using OASystem.Domain.Entities.Groups; using OASystem.Domain.Entities.Resource; using OASystem.Domain.ViewModels.Groups; using OASystem.Domain.ViewModels.QiYeWeChat; using OASystem.Domain.ViewModels.Resource; using OASystem.Infrastructure.Repositories.System; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Intrinsics.Arm; using System.Text; using System.Threading.Tasks; namespace OASystem.Infrastructure.Repositories.Groups { public class DecreasePaymentsRepository : BaseRepository { private readonly IMapper _mapper; public DecreasePaymentsRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar) { this._mapper = mapper; } /// /// 根据团组Id查询数据 /// /// /// public async Task DecreasePaymentsList(DecreasePaymentsListDto dto) { Result result = new Result() { Code = -2, Msg = "未知错误" }; try { string UserId = ""; List gtaUIdList = _sqlSugar.Queryable().Where(a => a.DIId == dto.DiId && a.IsDel == 0 && a.CTId == 98).ToList(); foreach (Grp_GroupsTaskAssignment gta in gtaUIdList) UserId += gta.UId + ","; if (!string.IsNullOrWhiteSpace(UserId)) { UserId = UserId.Substring(0, UserId.Length - 1); } else { UserId = "0"; } string sql = string.Format(@"select Id,DiId,PriceName,Price,(select name from Sys_SetData where id=s.Currency) as Currency,FilePath, (select CnName from Sys_Users where Id=s.CreateUserId) as 'CreateUserName',CreateTime,(select IsAuditGM from Grp_CreditCardPayment where CTable=98 and CId=s.Id and IsDel=0) as 'isAudit' from Grp_DecreasePayments s where DIID={0} and IsDel=0 and s.CreateUserId in ({1}) ", dto.DiId,UserId); List _DecreasePayments = await _sqlSugar.SqlQueryable(sql).ToListAsync(); if (_DecreasePayments.Count != 0) { result = new Result() { Code = 0, Msg = "查询成功!", Data = _DecreasePayments }; } else { result = new Result() { Code = 0, Msg = "暂无数据!", Data = _DecreasePayments }; } } catch (Exception ex) { result = new Result() { Code = -2, Msg = "未知错误" }; } return result; } public async Task DecreasePaymentsSelect(DecreasePaymentsDto dto) { Result result = new Result() { Code = -2, Msg = "未知错误" }; try { #region 团组下拉框 List grp_GroupsTaskAssignment = Query(a => a.IsDel == 0 && a.UId == dto.UserId && a.CTId == dto.CTId).ToList(); string DiId = "0"; foreach (var item in grp_GroupsTaskAssignment) { DiId += item.DIId + ","; } if (DiId!="0") { DiId = DiId.Substring(0, DiId.Length - 1); } string sql = string.Format(@"select * from Grp_DelegationInfo where Id in({0}) and IsDel={1}", DiId, 0); List grp_Delegations = _sqlSugar.SqlQueryable(sql).ToList(); if (grp_Delegations.Count == 0) { return result = new Result() { Code = -1, Msg = "查询失败!" }; } #endregion #region 其他下拉框查询 //支付方式 List Payment = _sqlSugar.Queryable().Where(a => a.STid == 14 && a.IsDel == 0).ToList(); List _Payment = _mapper.Map>(Payment); #endregion var data = new { Payment = _Payment, GroupName = grp_Delegations, }; return result = new Result() { Code = 0, Msg = "查询成功!", Data = data }; } catch (Exception ex) { return result = new Result() { Code = -2, Msg = "程序错误" }; throw; } } public async Task OpDecreasePayments(DecreasePaymentsOpDto dto) { Result result = new Result() { Code = -2, Msg = "未知错误" }; BeginTran(); try { int id = 0; Grp_DecreasePayments grp_Decrease = _mapper.Map(dto); if (dto.Status == 1)//添加 { string selectSql = string.Format(@"select * from Grp_DecreasePayments where PriceName='{0}' and IsDel={1} and DiId={2}" , dto.PriceName, 0, dto.DiId); var DecreasePayments = await _sqlSugar.SqlQueryable(selectSql).FirstAsync();//查询是否存在 if (DecreasePayments != null) { return result = new Result() { Code = -1, Msg = "该客户已存在,请勿重复添加!" }; } else//不存在,可添加 { id = await AddAsyncReturnId(grp_Decrease); if (id != 0) { result = new Result() { Code = 0, Msg = "添加成功!" }; } else { result = new Result() { Code = 0, Msg = "添加失败!" }; } if (result.Code == 0) { //进行C表添加 Grp_CreditCardPayment C = new Grp_CreditCardPayment(); C.PayDId = dto.PayDId; C.ConsumptionPatterns = ""; C.ConsumptionDate = ""; C.CTDId = 0; C.BankNo = ""; C.CardholderName = ""; C.PayMoney = grp_Decrease.Price; C.PaymentCurrency = grp_Decrease.Currency; //当天汇率 //if (!string.IsNullOrEmpty(hfRate.Value)) // C.DayRate = hfRate.Value; //else //C.DayRate = ""; C.CompanyBankNo = ""; C.OtherBankName = ""; C.OtherSideNo = ""; C.OtherSideName = ""; C.Remark = ""; C.CreateUserId = grp_Decrease.CreateUserId; C.MFOperator = 0; C.MFOperatorDate = ""; C.IsAuditDM = 0; C.AuditDMOperate = 0; C.AuditDMDate = ""; C.IsAuditMF = 0; C.AuditMFOperate = 0; C.AuditMFDate = ""; C.IsAuditGM = 0; C.AuditGMOperate = 21; C.AuditGMDate = ""; C.IsPay = 0; C.DIId = grp_Decrease.DiId; C.CId = id; C.CTable = 98; C.PayPercentage = 0; C.PayThenMoney = 0; C.PayPercentageOld = 0; C.PayThenMoneyOld = 0; C.UpdateDate = ""; C.Payee = dto.Payee; C.OrbitalPrivateTransfer = dto.OrbitalPrivateTransfer; C.ExceedBudget = 0; //C.RMBPrice = 0.00f; //设置该团组的汇率 Grp_TeamRate _TeamRate = _sqlSugar.Queryable().First(a => a.DiId == grp_Decrease.DiId && a.IsDel == 0 && a.CTable == 98); if (_TeamRate != null) { if (grp_Decrease.Currency == 49) { C.DayRate = _TeamRate.RateU; C.RMBPrice = C.PayMoney * Convert.ToDecimal(_TeamRate.RateU); //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateU); } else if (grp_Decrease.Currency == 51) { C.DayRate = _TeamRate.RateE; C.RMBPrice = C.PayMoney * Convert.ToDecimal(_TeamRate.RateE); //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateE); } else { C.DayRate = 1M; C.RMBPrice = C.PayMoney; } } else { C.DayRate = 1M; C.RMBPrice = C.PayMoney; } int cId = await _sqlSugar.Insertable(C).ExecuteReturnIdentityAsync(); if (cId != 0) { result = new Result() { Code = 0, Msg = "添加成功!" }; } else { RollbackTran(); result = new Result() { Code = -1, Msg = "添加失败!" }; } } else { result = new Result() { Code = -1, Msg = "添加失败!" }; } } } else if (dto.Status == 2) { bool res = await UpdateAsync(a => a.Id == grp_Decrease.Id, a => new Grp_DecreasePayments { DiId = grp_Decrease.DiId, PriceName = grp_Decrease.PriceName, Price = grp_Decrease.Price, Currency = grp_Decrease.Currency, FilePath = grp_Decrease.FilePath, Remark = grp_Decrease.Remark, }); if (res) { Grp_CreditCardPayment grp_CreditCardPayment = _sqlSugar.Queryable().First(a => a.CId == grp_Decrease.Id && a.CTable==98 && a.CId==grp_Decrease.Id && a.IsDel == 0); if (grp_CreditCardPayment != null) { Grp_TeamRate _TeamRate = _sqlSugar.Queryable().First(a => a.DiId == grp_Decrease.DiId && a.IsDel == 0 && a.CTable == 98); if (_TeamRate != null) { if (grp_Decrease.Currency == 49) { grp_CreditCardPayment.DayRate = _TeamRate.RateU; grp_CreditCardPayment.RMBPrice = grp_Decrease.Price * Convert.ToDecimal(_TeamRate.RateU); //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateU); } else if (grp_Decrease.Currency == 51) { grp_CreditCardPayment.DayRate = _TeamRate.RateE; grp_CreditCardPayment.RMBPrice = grp_Decrease.Price * Convert.ToDecimal(_TeamRate.RateE); //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateE); } else { grp_CreditCardPayment.DayRate = 1M; grp_CreditCardPayment.RMBPrice = grp_Decrease.Price; } } else { grp_CreditCardPayment.DayRate = 1M; grp_CreditCardPayment.RMBPrice = grp_Decrease.Price; } int CTable = await _sqlSugar.Updateable().Where(a => a.Id == grp_CreditCardPayment.Id).SetColumns(a => new Grp_CreditCardPayment { PayDId = dto.PayDId, PayMoney = grp_Decrease.Price, PaymentCurrency = grp_Decrease.Currency, Payee = dto.Payee, OrbitalPrivateTransfer = dto.OrbitalPrivateTransfer, DayRate = grp_CreditCardPayment.DayRate, RMBPrice = grp_CreditCardPayment.RMBPrice, }).ExecuteCommandAsync(); if (CTable != 0) { result = new Result() { Code = 0, Msg = "修改成功!" }; } else { result = new Result() { Code = -1, Msg = "修改失败!" }; RollbackTran(); } } else { RollbackTran(); result = new Result() { Code = -1, Msg = "修改失败!" }; } } else { result = new Result() { Code = -1, Msg = "修改失败!" }; } } CommitTran(); } catch (Exception ex) { RollbackTran(); result = new Result() { Code = -2, Msg = "未知错误" }; } return result; } public async Task PostGroupNameAndEasy(DecreasePaymentsDto dto) { Result result = new Result() { Code = -2, Msg = "未知错误" }; try { #region 团组下拉框 List grp_GroupsTaskAssignment = Query(a => a.IsDel == 0 && a.UId == dto.UserId && a.CTId == dto.CTId).ToList(); string DiId = ""; foreach (var item in grp_GroupsTaskAssignment) { DiId += item.DIId + ","; } if (!string.IsNullOrWhiteSpace(DiId)) { DiId = DiId.Substring(0, DiId.Length - 1); } else { DiId = "0"; } string sql = string.Format(@"select Id,TourCode,TeamName,ClientName,VisitStartDate,VisitEndDate,VisitCountry,VisitDays,VisitPNumber from Grp_DelegationInfo where Id in({0}) and IsDel={1}", DiId, 0); List grp_Delegations = _sqlSugar.SqlQueryable(sql).ToList(); if (grp_Delegations.Count != 0) { int count = grp_Delegations.Count; float totalPage = (float)count / dto.PageSize;//总页数 if (totalPage == 0) totalPage = 1; else totalPage = (int)Math.Ceiling((double)totalPage); List delegationEasyViews = new List(); for (int i = 0; i < dto.PageSize; i++) { var RowIndex = i + (dto.PageIndex - 1) * dto.PageSize; if (RowIndex < grp_Delegations.Count) { delegationEasyViews.Add(grp_Delegations[RowIndex]); } else { break; } } ListViewBase rst = new ListViewBase(); rst.DataList = delegationEasyViews; rst.DataCount = count; rst.CurrPageIndex = dto.PageIndex; rst.CurrPageSize = dto.PageSize; return result = new Result() { Code = 0, Msg = "查询成功!", Data = rst }; } else { ListViewBase rst = new ListViewBase(); rst.DataList=new List(); return result = new Result() { Code = 0, Msg = "暂无数据!", Data = rst }; } #endregion } catch (Exception ex) { return result = new Result() { Code = -2, Msg = "程序错误" }; throw; } } /// /// 根据团组增减款项表Id查询数据 /// /// /// /// public async Task QueryDecreasePaymentsById(DecreasePaymentsByIdDto dto) { Result result = new Result() { Code = -2, Msg = "程序错误" }; try { Grp_DecreasePayments grp_Decrease = _sqlSugar.Queryable().First(a=>a.Id==dto.Id && a.IsDel==0); Grp_CreditCardPayment grp_CreditCard= _sqlSugar.Queryable().First(a => a.CId == dto.Id && a.IsDel == 0 && a.CTable==98); var data = new { _Decrease = grp_Decrease, _CreditCard = grp_CreditCard, }; result = new Result() { Code = 0, Msg = "查询成功!", Data = data }; } catch (Exception ex) { result = new Result() { Code = -2, Msg = "程序错误" }; throw; } return result; } } }