using Microsoft.AspNetCore.Components.Web; using OASystem.Domain.Dtos.Financial; using OASystem.Domain.Dtos.Groups; using OASystem.Domain.ViewModels.Financial; using OASystem.Domain.ViewModels.Groups; using OASystem.Infrastructure.Repositories.Financial; using OASystem.Infrastructure.Repositories.Groups; namespace OASystem.API.OAMethodLib { /// /// 团组提成 /// 雷怡 2023-08-14 16:04 /// public static class GroupCommission { //团组信息 private readonly static DelegationInfoRepository _dirRep = AutofacIocManager.Instance.GetService(); //团组实付金额 private readonly static CreditCardPaymentRepository _ccpRep = AutofacIocManager.Instance.GetService(); //团组应收款项 private readonly static ForeignReceivablesRepository _frRep = AutofacIocManager.Instance.GetService(); //团组已收款项 private readonly static ProceedsReceivedRepository _prRep = AutofacIocManager.Instance.GetService(); //团组其他款项 private readonly static OtherPriceRepository _opRep = AutofacIocManager.Instance.GetService(); /// /// 获取团组提成 Page List /// public static async Task GetCommissionPageList(GroupCommissionDto dto) { Result result = new Result() { Code = -1 }; GroupListPageDto groupPageDto = new GroupListPageDto() { PortType = dto.PortType, PageIndex = dto.PageIndex, PageSize = dto.PageSize }; var groupResult = await _dirRep.GetGroupPageList(groupPageDto); if (groupResult.Code != 0) { result.Code = groupResult.Code; result.Msg = groupResult.Msg; return result; } if (groupResult.Data == null) { } //List groupData = groupResult.Data; result.Data = groupResult.Data; return result; } /// /// 根据团组Id计算 团组利润 /// /// 团组Id public static async void GetCommission(int DiId) { decimal sumFr = 0.00M, //团组 应收款项 sumPr = 0.00M, //团组 已收款项 refund = 0.00M, //团组 退款和其他费用 cost = 0.00M; //团组成本费用 if (DiId == 0) return; #region 计算各项费用 //应收款项 Result frData = await _frRep.GetGroupReceivablesByDiid(DiId); if (frData.Code == 0 && frData.Data != null) { foreach (var item in frData.Data) { sumFr += item.Price; } } //已收款项 Result prData = await _prRep.GetGroupReceivedByDiid(DiId); if (frData.Code == 0 && frData.Data != null) { foreach (var item in prData.Data) { sumPr += item.Price; } } //收款退还费用 Result ccpData = await _ccpRep.GetGroupRefundByDiid(DiId, true); if (ccpData.Code == 0 && ccpData.Data != null) { foreach (var item in ccpData.Data) { refund += item.Price; } } //实际的团组类型已收金额需除去退款 sumPr = sumPr - refund; //团组与非团组产生的成本费用数据 Result _ccpData = await _ccpRep.GetGroupPaymentInfoByDiid(DiId, true); if (_ccpData.Code == 0 && _ccpData.Data != null) { foreach (Grp_Fin_CreditCardPaymentView item in _ccpData.Data) { if (item.PayThenMoney != 0M) cost += item.PayThenMoney * item.DayRate; } } #endregion } } }