示例#1
0
        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));
 }
示例#4
0
        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());
            }
        }
示例#5
0
 public Task <OperationDetails> DeleteDebtAsync(DebtDto debtDto)
 {
     throw new System.NotImplementedException();
 }