Exemple #1
0
 private void DataAssignment()
 {
     installment                   = new LoanInstallment();
     installment.IdLoan            = loan.IdLoan;
     installment.Date              = dtpData.Value.Date;
     installment.InstallmentAmount = Convert.ToSingle(tbKwota.Text.Replace('.', ','));
     //oznacza że wpłata własna nie będzie odciagana od wypłaty
     installment.IsOwnRepeyment = true;
 }
        public void AddLoanInstallment(LoanInstallment loanInstallment, int userId, string userName, int concernId)
        {
            var date = DateTime.Now;

            loanInstallment.ConcernId        = concernId;
            loanInstallment.CreatorId        = userId;
            loanInstallment.CreationDate     = date;
            loanInstallment.ModificationDate = date;
            loanInstallment.ModifierId       = userId;
            _context.LoanInstallments.Add(loanInstallment);
            _context.SaveChanges();
        }
        public void UpdateLoanInstallment(LoanInstallment loanInstallment, int userId, string userName, int concernId, int id)
        {
            var getIoanInstallment = LoanInstallment(userId, userName, concernId, id);

            getIoanInstallment.Description       = loanInstallment.Description;
            getIoanInstallment.LenderId          = loanInstallment.LenderId;
            getIoanInstallment.InstallmentAmount = loanInstallment.InstallmentAmount;
            getIoanInstallment.InstallmentDate   = loanInstallment.InstallmentDate;
            getIoanInstallment.ModificationDate  = DateTime.Now;
            getIoanInstallment.ModifierId        = userId;
            _context.SaveChanges();
        }
Exemple #4
0
        public ResultDto PayInstallment(LoanInstallmentDto installmentDto)
        {
            var result = new ResultDto();
            var loan   = _loanRepository.GetSingle(installmentDto.LoanId, t => t.BankAccount);

            if (!loan.Repayment && loan.InstallmentsLeft > 0)
            {
                decimal penalty = 0m;
                if (loan.NextInstallmentDate <= DateTime.Today)
                {
                    penalty              = loan.InstallmentAmount * 1.10m - loan.InstallmentAmount;
                    loan.LoanAmountLeft += penalty;
                }

                var installment = new LoanInstallment()
                {
                    InstallmentAmount = loan.InstallmentAmount + penalty,
                    LoanId            = loan.Id,
                    PaidOn            = DateTime.Now
                };


                var isValid = _bankAccountService.TakeCash(installment.InstallmentAmount, loan.BankAccountId);
                if (isValid)
                {
                    loan.InstallmentsLeft--;
                    loan.LoanAmountLeft     -= installment.InstallmentAmount;
                    loan.NextInstallmentDate = loan.NextInstallmentDate.Value.AddDays(1);
                    if (loan.InstallmentsLeft == 0 && loan.LoanAmountLeft == 0)
                    {
                        loan.Repayment     = true;
                        loan.RepaymentDate = DateTime.Now;
                    }
                    _loanRepository.Update(loan);
                    _loanInstallmentRepository.Create(installment);

                    result.Success = true;
                    result.Message = "Payment has been successful!";
                }
                else
                {
                    result.Message = "There was a problem with paying installment";
                }
            }
            else
            {
                result.Message = "You cannot pay the installment for this loan. Check date of your next installment or contact support.";
            }

            return(result);
        }
 /// <summary>
 /// Konstruktor zmiany daty, kwoty raty pożyczki
 /// </summary>
 /// <param name="dod"></param>
 /// <param name="isAmountChange">czy edycja kwoty: true/false</param>
 /// <param name="co">z-zaliczka</param>
 /// <param name="isDateChange">czy edycja daty: true/false</param>
 public ChangeAmountOrDateForm(LoanInstallment li, bool isAmountChange, bool isDateChange)
 {
     InitializeComponent();
     //pasek tytułowy
     this.Text = DaneFirmy.NazwaProgramu + "Edycja raty";
     //ikona
     this.Icon            = Properties.Resources.logo_firmy;
     this.loanInstallment = li;
     if (isDateChange)
     {
         dtpDate.Enabled = true;
         dtpDate.Value   = li.Date;
     }
     if (isAmountChange)
     {
         tbAmount.Enabled = true;
         TbAmountChange   = li.InstallmentAmount;
     }
 }