| | |
| | | public async Task<Guid> Handle(SureTaskSettlementOrderCommand request, CancellationToken cancellationToken) |
| | | { |
| | | var entity = await TaskInfoRepository.GetQueryable(rep, false) |
| | | .Include(it => it.TaskInfoUsers) |
| | | .Include(it => it.TaskInfoUsers).ThenInclude(it => it.EnterpriseEmployee) |
| | | .Where(it => it.Id == request.TaskInfoId) |
| | | .FirstOrDefaultAsync(); |
| | | if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "任务"); |
| | |
| | | entity.SettlementOrderStatus = EnumTaskSettlementOrderStatus.Completed; |
| | | entity.SettlementOrderUrl = request.SettlementOrderUrl; |
| | | entity.SettlementOrderName = entity.SettlementOrderUrl.Substring(entity.SettlementOrderUrl.LastIndexOf("/") + 1); |
| | | entity.SettlementOrderTime = DateTime.Now; |
| | | entity.SettlementStatus = EnumTaskSettlementStatus.Wait; |
| | | entity.SettlementUserCount = request.TaskInfoUsers.Count; |
| | | entity.SettlementAmount = request.TaskInfoUsers.Sum(it => it.SettlementAmount ?? 0); |
| | |
| | | if (model.ActualSettlementAmount > 0 && model.ActualSettlementAmount < 1) throw Oops.Oh(EnumErrorCodeType.s510, $"{model.Name}实发金额不可小于1元"); |
| | | user.Bank = model.Bank; |
| | | user.BankBranch = model.BankBranch; |
| | | user.ReceiveName = user.EnterpriseEmployee.Name; |
| | | user.ReceiveAccount = model.ReceiveAccount; |
| | | user.SettlementAmount = model.SettlementAmount; |
| | | user.ActualSettlementAmount = model.ActualSettlementAmount; |
| | | user.SettlementStatus = EnumTaskSettlementStatus.Wait; |
| | | } |
| | | |
| | | foreach (var user in entity.TaskInfoUsers) |
| | | { |
| | | var model = request.TaskInfoUsers.FirstOrDefault(it => it.Id == user.Id); |
| | | if (model == null) |
| | | { |
| | | user.SettlementStatus = null; |
| | | } |
| | | } |
| | | |
| | | await rep.UpdateAsync(entity); |
| | | return entity.Id; |
| | | } |
| | |
| | | .FirstOrDefaultAsync(); |
| | | if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "任务"); |
| | | if (entity.SettlementOrderStatus != EnumTaskSettlementOrderStatus.Completed) throw Oops.Oh(EnumErrorCodeType.s510, "请先上传结算单并确认"); |
| | | if (entity.SettlementStatus == EnumTaskSettlementStatus.Wait) throw Oops.Oh(EnumErrorCodeType.s510, "未开始结算,请先上传结算单并确认"); |
| | | if (entity.SettlementStatus == null) throw Oops.Oh(EnumErrorCodeType.s510, "未开始结算,请先上传结算单并确认"); |
| | | if (entity.SettlementStatus == EnumTaskSettlementStatus.Completed) throw Oops.Oh(EnumErrorCodeType.s510, "已结算"); |
| | | entity.SettlementStatus = EnumTaskSettlementStatus.InProcess; |
| | | entity.SettlementStartTime = DateTime.Now; |