/// private function
        //->
        private async Task <tblLoanRequest> SaveToLoanRequest(int payDay, double amount, int accountID, string purpose)
        {
            var loanRequest = new tblLoanRequest();

            loanRequest.createdDate = DateTime.Now;
            //loanRequest.payDate = DateTime.Now;

            var today   = DateTime.Now;
            var payDate = DateTime.Parse(DateTime.Now.AddDays(payDay).ToString("yyyy-MM-dd HH':'mm':'ss"));

            loanRequest.payDate = payDate;


            var interestRate = 0;

            switch (payDay)
            {
            case 10:
                interestRate = 10;
                break;

            case 15:
                interestRate = 15;
                break;

            case 30:
                interestRate = 30;
                break;

            default:
                interestRate = 0;
                break;
            }
            loanRequest.accountID       = accountID;
            loanRequest.payDay          = payDay;
            loanRequest.amount          = Decimal.Parse(amount.ToString());
            loanRequest.interestRate    = interestRate;
            loanRequest.interestAmount  = Decimal.Parse((amount * interestRate / 100).ToString());
            loanRequest.loanAmount      = Decimal.Parse((Decimal.Parse(amount.ToString()) + loanRequest.interestAmount).ToString());
            loanRequest.purpose         = purpose;
            loanRequest.status          = "Pending";
            loanRequest.loan_Balance    = loanRequest.loanAmount;
            loanRequest.loan_PaidAmount = 0;
            db.tblLoanRequests.Add(loanRequest);
            await db.SaveChangesAsync();

            return(loanRequest);
        }
Beispiel #2
0
        private async Task <tblLoanRequest> SaveToLoanRequest(AccountNewDTO accountDTO)
        {
            var loanRequest = new tblLoanRequest();

            //db.tblLoanRequests.Add(loanRequest);
            loanRequest.loan_CreatedDate = DateTime.Now;
            loanRequest.loan_PayDate     = DateTime.Now;
            var interestRate = 0;

            switch (accountDTO.payDay)
            {
            case 10:
                loanRequest.loan_PayDate = DateTime.Now.AddDays(10);
                interestRate             = 10;
                break;

            case 20:
                loanRequest.loan_PayDate = DateTime.Now.AddDays(20);
                interestRate             = 15;
                break;

            case 30:
                loanRequest.loan_PayDate = DateTime.Now.AddDays(30);
                interestRate             = 20;
                break;

            default:
                interestRate = 0;
                break;
            }
            loanRequest.loan_AccountID      = accountDTO.acct_AccountID;
            loanRequest.loan_PayDay         = accountDTO.payDay;
            loanRequest.loan_Amount         = Decimal.Parse(accountDTO.amount.ToString());
            loanRequest.loan_InterestRate   = interestRate;
            loanRequest.loan_InterestAmount = Decimal.Parse((accountDTO.amount * interestRate / 100).ToString());
            loanRequest.loan_LoanAmount     = Decimal.Parse((Decimal.Parse(accountDTO.amount.ToString()) + loanRequest.loan_InterestAmount).ToString());
            loanRequest.loan_Purpose        = accountDTO.loan_Purpose;
            loanRequest.loan_Status         = "Pending";
            loanRequest.loan_Balance        = loanRequest.loan_LoanAmount;
            loanRequest.loan_PaidAmount     = 0;
            db.tblLoanRequests.Add(loanRequest);
            await db.SaveChangesAsync();

            return(loanRequest);
        }
        //-> SelectByID
        public async Task <CheckLoanRequestViewDTO> SelectByID(int id)
        {
            var accountHandler   = new AccountHandler();
            var checkLoanRequest = new CheckLoanRequestViewDTO();

            checkLoanRequest.account = DoubleHelper.TwoPrecision(await accountHandler.SelectByID(id));

            var loanRequest = await db.tblLoanRequests.FirstOrDefaultAsync(l =>
                                                                           (l.loan_Status.ToLower() != "approved" && l.loan_Status.ToLower() != "rejected") &&
                                                                           l.loan_Deleted == null && l.loan_AccountID == id);

            if (loanRequest == null)
            {
                loanRequest = new tblLoanRequest();
            }

            checkLoanRequest.loanRequest = DoubleHelper.TwoPrecision(MappingHelper.MapDBClassToDTO <tblLoanRequest, LoanRequestViewDTO>(loanRequest));
            //checkLoanRequest.loanRequest = MappingHelper.MapDBClassToDTO<tblLoanRequest, LoanRequestViewDTO>(loanRequest);
            return(DoubleHelper.TwoPrecision(checkLoanRequest));
        }
Beispiel #4
0
        private void sendmail(tblLoanRequest loanRequest, tblAccount account)
        {
            DocumentHelper.sendEmail("Request -Loan ID " + loanRequest.loan_Code,
                                     "Dear Sirs, " +
                                     "<br/>Your money will be transferred soon as below: " +
                                     //"Bank account name xxxx" +
                                     //"Bank account number xxxx" +
                                     "<br/>Principle " + loanRequest.loan_Amount.Value.ToString("#,##0.00") +
                                     "<br/>Repayment Date " + loanRequest.loan_PayDate.Value.ToString("dd/MM/yyyy") +
                                     "<br/>Repayment Amount " + loanRequest.loan_LoanAmount.Value.ToString("#,##0.00") +
                                     "<br/>Loan ID " + loanRequest.loan_Code, account.acct_Email, isHtml: true);

            DocumentHelper.sendEmail("New Loan Request -Loan ID " + loanRequest.loan_Code,
                                     "Dear Admin, " +
                                     "<br/>New loan request info : " +
                                     "<br/>Principle " + loanRequest.loan_Amount.Value.ToString("#,##0.00") +
                                     "<br/>Repayment Date " + loanRequest.loan_PayDate.Value.ToString("dd/MM/yyyy") +
                                     "<br/>Repayment Amount " + loanRequest.loan_LoanAmount.Value.ToString("#,##0.00") +
                                     "<br/>Loan ID " + loanRequest.loan_Code,
                                     System.Configuration.ConfigurationManager.AppSettings["smtpuser"], isHtml: true);
        }
Beispiel #5
0
        public async Task <tblLoanRequest> SaveToLoanRequest(LoanRequestBaseDTO loanRequestDTO, int accountID)
        {
            /*
             * var loanRequest = new tblLoanRequest();
             * //db.tblLoanRequests.Add(loanRequest);
             * loanRequest.createdDate = DateTime.Now;
             * loanRequest.payDate = DateTime.Now;
             * var interestRate = 0;
             * switch (loanRequestDTO.payday)
             * {
             *  case 10:
             *      interestRate = 10;
             *      break;
             *  case 15:
             *      interestRate = 15;
             *      break;
             *  case 30:
             *      interestRate = 30;
             *      break;
             *  default:
             *      interestRate = 0;
             *      break;
             * }
             * loanRequest.accountID = accountID;
             * loanRequest.payDay = loanRequestDTO.payday;
             * loanRequest.amount = Decimal.Parse(loanRequestDTO.amount.ToString());
             * loanRequest.interestRate = interestRate;
             * loanRequest.interestAmount = Decimal.Parse((loanRequestDTO.amount * interestRate / 100).ToString());
             * loanRequest.loanAmount = Decimal.Parse((Decimal.Parse(loanRequestDTO.amount.ToString()) + loanRequest.interestAmount).ToString());
             * db.tblLoanRequests.Add(loanRequest);
             * await db.SaveChangesAsync();
             * return loanRequest;
             */

            var loanRequest = new tblLoanRequest();

            //db.tblLoanRequests.Add(loanRequest);
            loanRequest.createdDate = DateTime.Now;

            var today   = DateTime.Now;
            var payDate = DateTime.Parse(DateTime.Now.AddDays(loanRequestDTO.payday).ToString("yyyy-MM-dd HH':'mm':'ss"));

            loanRequest.payDate = payDate;
            var interestRate = 0;

            switch (loanRequestDTO.payday)
            {
            case 10:
                interestRate = 10;
                break;

            case 15:
                interestRate = 15;
                break;

            case 30:
                interestRate = 30;
                break;

            default:
                interestRate = 0;
                break;
            }
            loanRequest.accountID       = accountID;
            loanRequest.payDay          = loanRequestDTO.payday;
            loanRequest.loanAmount      = Decimal.Parse(loanRequestDTO.amount.ToString());
            loanRequest.interestRate    = interestRate;
            loanRequest.interestAmount  = Decimal.Parse((loanRequestDTO.amount * interestRate / 100).ToString());
            loanRequest.loanAmount      = Decimal.Parse((Decimal.Parse(loanRequestDTO.amount.ToString()) + loanRequest.interestAmount).ToString());
            loanRequest.purpose         = loanRequestDTO.purpose;
            loanRequest.status          = "Pending";
            loanRequest.loan_Balance    = loanRequest.loanAmount;
            loanRequest.loan_PaidAmount = 0;
            db.tblLoanRequests.Add(loanRequest);
            await db.SaveChangesAsync();

            return(loanRequest);
        }
        //private function
        private tblLoanRequest LoanRequestCalculation(LoanRequestNewDTO loanRequestDTO, tblLoanRequest loanRequest)
        {
            var interestRate = 0;

            switch (loanRequestDTO.payDay)
            {
            case 10:
                interestRate             = 10;
                loanRequest.loan_PayDate = DateTime.Now.AddDays(10);
                break;

            case 20:
                interestRate             = 15;
                loanRequest.loan_PayDate = DateTime.Now.AddDays(15);
                break;

            case 30:
                interestRate             = 30;
                loanRequest.loan_PayDate = DateTime.Now.AddDays(30);
                break;

            default:
                interestRate = 0;
                break;
            }
            loanRequest.loan_InterestRate   = interestRate;
            loanRequest.loan_InterestAmount = Decimal.Parse((loanRequestDTO.amount * interestRate / 100).ToString());
            loanRequest.loan_LoanAmount     = Decimal.Parse((Decimal.Parse(loanRequestDTO.amount.ToString()) + loanRequest.loan_InterestAmount).ToString());

            return(loanRequest);
        }