private async Task <DebtModel> EnrichDebtModel(DebtModel debt, DebtDto debtDto) { var customerDto = await customerService.GetCustomerByIdAsync(debtDto.CustomerId).ConfigureAwait(false); var agreemnetDto = await agreementService.GetAgreementByIdAsync(debtDto.AgreementId).ConfigureAwait(false); debt.CustomerINN = customerDto.INN; debt.CustomerName = customerDto.Name; debt.AgreementName = agreemnetDto.Name; debt.Postponement = agreemnetDto.Postponement; debt.Total = debt.StateDuty + debt.Fine + debt.StateDuty + debt.Penalties + debt.InterestAmount; debt.TotalExacted = debt.StateDutyExacted + debt.FineExacted + debt.StateDutyExacted + debt.PenaltiesExacted + debt.InterestAmountExacted; var statusDto = debtStatus.GetDebtStatusByDebtId(debt.Id); var status = statusDto.Select(p => mapper.Map <DebtStatusDto, DebtStatusModel>(p)).ToList(); debt.DebtStatuses = status ?? new List <DebtStatusModel>(); var debtPaidDto = debtPaid.GetDebtPaidByDebtId(debt.Id); debt.DebtPaid = GetDebtPaidModel(debtPaidDto.Sum, debt); var storesDto = debtStore.GetDebtStoreByDebtId(debt.Id); var stores = storesDto.Select(p => mapper.Map <DebtStoreDto, DebtStoreModel>(p)).ToList(); debt.DebtStores = stores ?? new List <DebtStoreModel>(); debt.DebtClaim = new DebtClaimModel { DebtId = 1, ClaimName = "ОД +%", DateClaimStart = DateTime.Now, DateClaimEnd = DateTime.Now, NumberClaim = "1", PenaltyRate = 0.15, RefinancingRate = 9.5 }; return(debt); }
public string genHtmlInfoRepairs(string rep) { string res_html = "<h2>Отчет о задолжностях предприятий</h2><br/>"; List <object> works = ProcessFactory.GetDebtProcess().GetList().Cast <object>().ToList(); res_html += "<tr><td><b>Название предприятия</b></td><td><b>Представитель</b></td><td><b>Контактный номер</b></td><td><b>Дата начала размещения</b></td><td><b>Дата окончания размещения</b></td><td><b>Размер долга (руб)</b></td></tr>"; try { foreach (var work in works) { DebtDto WorkItem = (DebtDto)work; if (WorkItem.Debt != 0) { res_html += "<tr><td><p>" + WorkItem.NameEnterprise + "</p></td>"; res_html += "<td><p>" + WorkItem.Representative + "</p></td>"; res_html += "<td><p>" + Convert.ToDouble(WorkItem.Phone) + "</p></td>"; res_html += "<td><p>" + WorkItem.StartDate.ToString("yyyy-dd-MM") + "</p></td>"; res_html += "<td><p>" + WorkItem.FinnalyDate.ToString("yyyy-dd-MM") + "</p></td>"; res_html += "<td><p>" + WorkItem.Debt + "</p></td></tr>"; } else { } } res_html = rep.Replace("[VRA_TABLE_REPORT]", res_html); } catch (Exception exc) { MessageBox.Show(exc.Message, "Ошибка"); } return(res_html); // return ""; }
public async Task <ActionResult <DebtView> > Post( [FromServices] IAplicDebt aplicDebt, [FromBody] DebtDto dto) { return(await aplicDebt.Insert(dto)); }
public async Task <Result> PayDebt(DebtDto debtToUpdate) { await using var transaction = await _context.Database.BeginTransactionAsync(); try { //update debt status var entity = await _context.Debts .FirstOrDefaultAsync(x => x.Id == debtToUpdate.Id && !x.Deleted); if (entity == null) { return(Result.Failure(new List <string> { "No valid debt found" })); } entity.DebtStatusId = 3; entity.Deleted = true; //update loan return date var loan = await _context.Loans .FirstOrDefaultAsync(x => x.Id == debtToUpdate.LoanId); if (loan == null) { return(Result.Failure(new List <string> { "No valid loan found" })); } loan.ReturnDate = DateTime.Now; var wallletForCurentUser = await _context.Wallets.Where(x => x.UserId == entity.Loan.BorrowerId) .FirstOrDefaultAsync(x => x.CurrencyId == loan.CurrencyId); var walletForLender = await _context.Wallets.Where(x => x.UserId == entity.Loan.LenderId) .FirstOrDefaultAsync(x => x.CurrencyId == loan.CurrencyId); // withdraw amount from borrower and add amount to lender wallet if (loan.CurrencyId == wallletForCurentUser.CurrencyId) { if (wallletForCurentUser.TotalAmount >= debtToUpdate.LoanAmount) { if (loan.CurrencyId == 1) { wallletForCurentUser.TotalAmount -= 0.97; } else if (loan.CurrencyId == 2) { wallletForCurentUser.TotalAmount -= 0.2; } wallletForCurentUser.TotalAmount -= debtToUpdate.LoanAmount; walletForLender.TotalAmount += debtToUpdate.LoanAmount; } else { return(Result.Failure(new List <string> { "Inssuficient funds for wallet in RON" })); } } await _context.SaveChangesAsync(); await transaction.CommitAsync(); return(Result.Success("Debt was successfully payed")); } catch (Exception e) { await transaction.RollbackAsync(); throw new Exception(e.ToString()); } }
public Task <OperationDetails> DeleteDebtAsync(DebtDto debtDto) { throw new System.NotImplementedException(); }