예제 #1
0
        //public LoanScheduleReportResult(LoanDetails loanDetails, bool isExcell, Customer customer)
        public LoanScheduleReportResult(PaymentRolloverRepository rolloverRepository, Loan loan, bool isExcell, bool wError, Customer customer)
        {
            var loansDetailsBuilder = new LoansDetailsBuilder();

            _loanDetails = loansDetailsBuilder.Build(loan, rolloverRepository.GetByLoanId(loan.Id));
            _isExcell    = isExcell;
            _withErrors  = wError;
            _customer    = customer;
            _loan        = loan;
        }
        public void GetLoanRepaymentDetails_Returns_LoanDetails()
        {
            LoanDetails loanDetails = new LoanDetails();

            _mortageApiProvider.GetLoanRepaymentDetails(loanDetails).Returns(loanDetails);
            var controller = new MortgageController(_mortageApiProvider);
            PartialViewResult viewResult = controller.GetLoanRepaymentDetails(loanDetails) as PartialViewResult;

            Assert.AreEqual(loanDetails, viewResult.Model);
        }
예제 #3
0
        public IActionResult Application(LoanDetails app)
        {
            if (ModelState.IsValid)
            {
                loanService.CreateLoanApplication(app, Guid.NewGuid().ToString());
                return(RedirectToAction("Employment"));
            }

            return(View(app));
        }
예제 #4
0
 public void CreateLoanApplication(LoanDetails app, string loanId)
 {
     // We always just want one loan on our singleton for demo purposes
     loans.Clear();
     loans.Add(new LoanApplication()
     {
         LoanId   = loanId,
         LoanInfo = app
     });
 }
예제 #5
0
        public void GetLoanRepaymentDetails_Returns_LoanDetails()
        {
            LoanDetails loanDetails = new LoanDetails();

            _mortgageProvider.GetLoanRepaymentDetails(loanDetails).Returns(loanDetails);
            var controller = new MortgageAPIController(_mortgageProvider);
            var result     = controller.GetLoanRepaymentDetails(loanDetails) as LoanDetails;

            Assert.AreEqual(loanDetails, result);
        }
예제 #6
0
        /*
         * Loan operations with the db
         *
         */
        public static Boolean IssueLoan(LoanDetails loan, LinkedList <Guarantor> guarantors, long pid)
        {
            if (Validation.isLoanValidForAdding(loan) &&
                Validation.isGuarantorValidForAddingAndUpdating(guarantors.First.Value) &&
                Validation.isGuarantorValidForAddingAndUpdating(guarantors.Last.Value))
            {
                if (pid > 0)
                {
                    try
                    {
                        Connection.updateDB("insert into loan_details (pid, rel_date, rel_amount, no_of_terms, amount_per_term, loan_type_id, profit) values (" +
                                            "" + pid + "," +
                                            "'" + loan.RelDate.ToString("yyyy/MM/d") + "'," +
                                            "" + loan.RelAmount + "," +
                                            "" + loan.NoOfTerms + "," +
                                            "" + loan.AmountPerTerm + "," +
                                            "" + loan.LoanType.Id + "," +
                                            "" + loan.Profit + ");");

                        MySqlDataReader reader = Connection.getData("select MAX(loan_details_id) as id from loan_details where pid=" + pid);

                        long loanId;

                        if (reader.Read())
                        {
                            loanId = reader.GetInt32(0);

                            reader.Close();

                            return(AddGuarantors(guarantors, pid, loanId));
                        }
                        else
                        {
                            return(false);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);

                        MessageBox.Show("Something went wrong!\n" + ex, "Issue Loan", MessageBoxButtons.OK, MessageBoxIcon.Error);

                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
예제 #7
0
        public IList <LoanDetails> ViewLoans()
        {
            SqlConnection       con             = new SqlConnection();
            DataTable           dt              = new DataTable();
            IList <LoanDetails> LoansDetailList = new List <LoanDetails>();

            try
            {
                con.ConnectionString = ConfigurationManager.ConnectionStrings["Bankingsysconn"].ConnectionString;
                con.Open();
                string        getDetails = Query.selectViewLoans;
                SqlCommand    cmd1       = new SqlCommand(getDetails, con);
                SqlDataReader dr1        = cmd1.ExecuteReader();

                dt.Columns.AddRange(new DataColumn[12] {
                    new DataColumn("Account number", typeof(string)),
                    new DataColumn("Customer name", typeof(string)),
                    new DataColumn("Age", typeof(string)),
                    new DataColumn("Address", typeof(string)),
                    new DataColumn("Email", typeof(string)),
                    new DataColumn("City", typeof(string)),
                    new DataColumn("Gender", typeof(string)),
                    new DataColumn("Account balance", typeof(string)),
                    new DataColumn("Loans", typeof(string)),
                    new DataColumn("Approved Loans", typeof(string)),
                    new DataColumn("Fixed Deposit", typeof(string)),
                    new DataColumn("Approved Fd", typeof(string))
                });
                while (dr1.Read())
                {
                    LoanDetails detail = new LoanDetails();

                    detail.AccountNo      = Convert.ToString(dr1["account_no"]);
                    detail.CustomerName   = Convert.ToString(dr1["customer_name"]);
                    detail.Age            = Convert.ToString(dr1["age"]);
                    detail.Address        = Convert.ToString(dr1["address"]);
                    detail.EmailId        = Convert.ToString(dr1["email_id"]);
                    detail.City           = Convert.ToString(dr1["city"]);
                    detail.Gender         = Convert.ToString(dr1["gender"]);
                    detail.AccountBalance = Convert.ToString(dr1["account_balance"]);
                    detail.Loans          = Convert.ToString(dr1["loans"]);
                    detail.ApproveLoans   = Convert.ToString(dr1["approved_loans"]);
                    detail.FixedDEposits  = Convert.ToString(dr1["fixed_deposit"]);
                    detail.ApproveFd      = Convert.ToString(dr1["approved_fd"]);
                    LoansDetailList.Add(detail);
                }
                dr1.Close();
            }

            finally
            {
                con.Close();
            }
            return(LoansDetailList);
        }
예제 #8
0
        public void VerifyNegativeScenarious(LoanDetails input)
        {
            //Arrange
            var calculator = new PaymentCalculator();

            //Act
            Action result = () => calculator.Calculate(input);

            //Assert
            Assert.Throws <ArgumentException>(result);
        }
        public async Task Update(Guid loanId, [FromBody] LoanDTO loanToUpdate)
        {
            LoanModel loanModel = _mapper.Map <LoanModel>(loanToUpdate);
            await _loansService.Update(loanId, loanModel);

            CheckLoanValid loanToCheck = new CheckLoanValid();
            LoanDetails    loanDetails = _mapper.Map <LoanDetails>(loanModel);

            loanDetails.LoanId      = loanId;
            loanToCheck.LoanDetails = loanDetails;
            await _messageSession.Send(loanToCheck);
        }
예제 #10
0
 public static void CalculateLastMonthDetailed(MonthlyBreakdown month, LoanDetails loanDetails)
 {
     month.StartingBalance       = loanDetails.Balance;
     month.PeriodInterest        = month.StartingBalance * loanDetails.R;
     month.PeriodPrincipal       = month.StartingBalance;
     month.MonthlyPayment        = Math.Round(month.PeriodInterest, 2) + Math.Round(month.PeriodPrincipal, 2);
     month.EndingBalance         = month.StartingBalance - month.PeriodPrincipal;
     loanDetails.Balance         = month.EndingBalance;
     loanDetails.TotalInterest  += month.PeriodInterest;
     month.TotalInterestToDate   = loanDetails.TotalInterest;
     loanDetails.TotalPrincipal += month.PeriodPrincipal;
 }
예제 #11
0
    private void FillLoanAgreement()
    {
        LoanDetails LoanDet = GetLoanAgreementDetails();

        InterConnect.LeshLaonApi.ClientDetails cli = GetClientDetails();
        lblCliName.Text  = lblClientName1.Text = lblClientName2.Text = lblClientName3.Text = cli.ClientName;
        lblLocation.Text = cli.BusinessLoc;
        lblTel.Text      = cli.ClientPhoneNumber;

        lblIntRate.Text = LoanDet.InterestRate;
        lblTotAmnt.Text = LoanDet.ApprovedAmount;
    }
예제 #12
0
        public LoanDetails GetLoanDetails(Guid loanId)
        {
            var loanInformation = _loanRepository.GetLoan(loanId);
            var latestRates     = _rateRepository.GetRoborRecent();
            var currentRate     = loanInformation.BankRate + (double)latestRates.GetRate(loanInformation.BankMargin);
            var loan            = new Loan(loanInformation.Ammount, loanInformation.RateDateOfPayment, currentRate,
                                           loanInformation.Months);
            var loanDetails = new LoanDetails(loanInformation);

            loanDetails.BankMarginRate = currentRate;
            loanDetails.Transactions   = loan.GenerateLoanTransactions().Take(5).ToArray();
            return(loanDetails);
        }
예제 #13
0
        public double CalculateMonthlyPayment(LoanDetails loanDetails)
        {
            var totalRates      = loanDetails.RatesPaidPerYear * loanDetails.PeriodYears;
            var nominator       = loanDetails.Principal;
            var denominatorBase = 0.0d;

            for (int i = 1; i <= totalRates; i++)
            {
                denominatorBase += Math.Pow(1.0d + ((loanDetails.InterestRate / 100.0) / loanDetails.RatesPaidPerYear), -i);
            }

            return(nominator / denominatorBase);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            LoanDetails newLoan = null;

            if (Session["LoanDetails"] != null)
            {
                newLoan = Session["LoanDetails"] as LoanDetails;
            }
            else if (Request.QueryString["loanNo"] != null)
            {
                newLoan = XMLReader.LoanXMLReader().LoanList.Where(item => item.loanNo == Request.QueryString["loanNo"]).SingleOrDefault();
            }



            lblClientNo.Text     = newLoan.ClientNo;
            lblClientName.Text   = newLoan.ClientName;
            lblAccNo.Text        = newLoan.loanAccount;
            lblLoanType.Text     = newLoan.LoanType;
            lblLoanID.Text       = newLoan.loanNo;
            lblInterestRate.Text = newLoan.InterestRate;
            lblLoanAmt.Text      = newLoan.loanAmount;

            Employee emp = Session["EmpDetails"] as Employee;

            if (emp.Role.ToUpper() == "ADMIN")
            {
                btnSubmit.Visible = false;
                if (newLoan.loanStatus != "Approved")
                {
                    btnApprove.Visible = true;
                }
                else
                {
                    btnGoBack.Visible = true;
                }
            }
            else
            {
                btnApprove.Visible = false;
                if (Request.QueryString["loanNo"] == null)
                {
                    btnSubmit.Visible = true;
                }
                else
                {
                    btnGoBack.Visible = true;
                    btnSubmit.Visible = false;
                }
            }
        }
예제 #15
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    if (Session[clsConstant.TOKEN] == null)
                    {
                        UrlParameterPasser urlWrapper = new UrlParameterPasser();
                        urlWrapper["pageaccesserr"] = "1";
                        urlWrapper.Url = "../Logout.aspx";
                        urlWrapper.PassParameters();
                    }
                    if (Utility.CheckAccess("LoanDetailsAddEdit") == false)
                    {
                        pnlInvalid.Visible = true;
                        MainDiv.Visible    = true;
                    }

                    if (!Convert.ToBoolean(Session[clsConstant.SESS_VIEWTYPE]))
                    {
                        this.MakeReadOnly(this.Controls);
                    }
                    loanID = Request.QueryString["loanID"];
                    if (loanID != null && IsPostBack == false)
                    {
                        loanDetails     = new LoanDetails();
                        performanceLoan = new PerformanceLoan();
                        loanDetails     = performanceLoan.GetApprovalClosingDate(Convert.ToInt32(loanID));
                        LoanBinding();
                        drpLoanNumber.Items.FindByValue(loanID).Selected = true;
                        AutoFill();
                        checkForPMU();
                        lnkProjBriefSheet.Visible = true;
                    }
                    else
                    {
                        lnkProjBriefSheet.Visible = false;
                    }

                    if (IsPostBack != true && loanID == null)
                    {
                        LoanBinding();
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex);
            }
        }
        public async Task <bool> UpdateLoanDetails(LoanDetails loanDetails)
        {
            try
            {
                _context.LoanDetail.Update(loanDetails);
                await _context.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #17
0
        public LoanDetails AddListPut(LoanDetails model)
        {
            var LoaninDb = DbContext.LoanDetail.FirstOrDefault(a => a.Id == model.Id);

            LoaninDb.Amount    = model.Amount;
            LoaninDb.Term      = model.Term;
            LoaninDb.Type      = model.Type;
            LoaninDb.City      = model.City;
            LoaninDb.Startdate = model.Startdate;
            LoaninDb.Enddate   = model.Enddate;

            DbContext.SaveChanges();
            return(model);
        }
예제 #18
0
        public void VerifyPositiveScenarious(LoanDetails input, PaymentDetails output)
        {
            //Arrange
            var calculator = new PaymentCalculator();

            //Act
            var result = calculator.Calculate(input);

            //Assert
            Assert.NotNull(result);
            Assert.Equal(output.MonthlyPayment, result.MonthlyPayment);
            Assert.Equal(output.TotalInterest, result.TotalInterest);
            Assert.Equal(output.TotalPayment, result.TotalPayment);
        }
예제 #19
0
        public LoanDetails Build(Loan loan, IEnumerable <PaymentRollover> rollovers)
        {
            var details = new LoanDetails();

            details.Transactions = loan.TransactionsWithPaypoint
                                   .Select(t => new LoanTransactionModel()
            {
                Id                = t.Id,
                Amount            = t.Amount,
                Description       = t.Description,
                PostDate          = t.PostDate,
                Status            = t.Status.ToString(),
                StatusDescription = t.Status.ToDescription(),
                Principal         = t.Principal,
                Interest          = t.Interest,
                Fees              = t.Fees,
                Rollover          = t.Rollover,
                Balance           = t.Balance,
                LoanRepayment     = t.LoanRepayment
            });

            details.PacnetTransactions = loan.PacnetTransactions.Select(t => new LoanTransactionModel()
            {
                Id                = t.Id,
                Amount            = t.Amount,
                Description       = t.Description,
                PostDate          = t.PostDate,
                Status            = t.Status.ToString(),
                StatusDescription = t.Status.ToDescription(),
                Fees              = t.Fees
            });

            details.Schedule = loan.Schedule.ToModel();
            details.Charges  = loan.Charges.Select(LoanChargesModel.FromCharges);

            details.Rollovers = rollovers.Where(x => x.Status == RolloverStatus.New).Select(x => new RolloverModel
            {
                ExpiryDate     = x.ExpiryDate,
                Payment        = x.Payment,
                Status         = x.Status,
                LoanScheduleId = x.LoanSchedule.Id,
                Id             = x.Id
            });

            //TODO build loan details using new structure
            Log.InfoFormat("create loan details from new tables for loan {0}", loan.Id);

            return(details);
        }
 /// <summary>
 /// Arranging data
 /// </summary>
 private void LoanDetailsGet()
 {
     loanDetails = new LoanDetails
     {
         LoanId      = "1111",
         LoanAmount  = "23442", LoanTerm = "4 Months", LoanType = "Personal",
         LoanHolders = new LoanHolder
         {
             BorrowerName        = "Adithya",
             LegalDocuments      = "Cash transac",
             LoanId              = "1111",
             PropertyInformation = "3234Acrs"
         },
     };
 }
예제 #21
0
        public async Task <Guid> Create([FromBody] LoanDTO loan)//לבדוק שהמיפוי אכן עובד ולראות אם לקבל יד
        {
            LoanModel loanModel = _mapper.Map <LoanModel>(loan);
            Guid      loanId    = await _loansService.Create(loanModel);

            CheckLoanValid loanToCheck = new CheckLoanValid();
            LoanDetails    loanDetails = _mapper.Map <LoanDetails>(loanModel);

            loanDetails.LoanId      = loanId;
            loanToCheck.LoanDetails = loanDetails;
            await _messageSession.Send(loanToCheck)
            .ConfigureAwait(false);    //del api

            return(loanId);
        }
        public async Task <Guid> Create([FromBody] LoanDTO loan)
        {
            LoanModel loanModel = _mapper.Map <LoanModel>(loan);
            Guid      loanId    = await _loansService.Create(loanModel);

            CheckLoanValid loanToCheck = new CheckLoanValid();
            LoanDetails    loanDetails = _mapper.Map <LoanDetails>(loanModel);

            loanDetails.LoanId      = loanId;
            loanToCheck.LoanDetails = loanDetails;
            await _messageSession.Send(loanToCheck);

            return(loanId);
            //Ok($"Your loan created successfully. Loan Id:{loanId}");
        }
예제 #23
0
        internal LoanComputationWindow(LoanDetails loanDetail, LoanProduct loanProduct,
                                       LoanAmortizationHeader loanAmortizationHeader)
            : this()
        {
            _loanDetails     = loanDetail;
            _loanComputation = new LoanComputation(_loanDetails.LoanAmount, loanProduct.ID)
            {
                LoanDetails = _loanDetails
            };

            _loanAmortizationHeader = loanAmortizationHeader;
            InitializeControls();

            DataContext = _loanComputation;
        }
예제 #24
0
        public LoanDetails CalculateLoanDetails(double loanAmount, int duration, double interestRate)
        {
            double monthlyInterestRate = interestRate / (12 * 100);

            double denominator = Math.Pow((1 + monthlyInterestRate), -duration * 12);

            double emi = (double)(monthlyInterestRate * loanAmount) / (1 - denominator);

            LoanDetails loanDetails = new LoanDetails();

            loanDetails.TotalLoan     = Math.Round(emi * duration * 12, 2);
            loanDetails.TotalInterest = Math.Round(loanDetails.TotalLoan - loanAmount, 2);

            return(loanDetails);
        }
예제 #25
0
        public LoanNoticesView(LoanDetails loanDetails)
        {
            InitializeComponent();
            _loanDetails = loanDetails;

            LoansNonperformingButton.Click += (sender, args) => GenerateNoticesForLoansNonPerforming();

            LoansNearMaturityButton.Click += (sender, args) => GenerateNoticesForLoansNearMaturity();

            LoansOverdueButton.Click += (sender, args) => GenerateNoticesForLoansOverdue();

            LoansOverdueNonResponsiveButton.Click += (sender, args) => GenerateNoticesForNonResponsiveLoansOverdue();

            LoanNoticeForComakersButton.Click += (sender, args) => GenerateNoticesForComakers();
        }
예제 #26
0
    public LoanDetails GetApprovalLoanDetails()
    {
        LoanDetails ApprovalLoanDetails = new LoanDetails();

        ApprovalLoanDetails.ClientID               = Request.QueryString["ClientID"];//get ClientID
        ApprovalLoanDetails.LoanNo                 = txtLoanNo.Text;
        ApprovalLoanDetails.Approved               = "true";
        ApprovalLoanDetails.ApprovedAmount         = txtAppLoanAmount.Text.Replace(",", "");
        ApprovalLoanDetails.EasyPaidAmountPerMonth = txtAmountToPayPerMonth.Text.Replace(",", "");
        ApprovalLoanDetails.MonthsToPayIn          = txtMonths.Text;
        ApprovalLoanDetails.ModifiedBy             = user.UserId;
        ApprovalLoanDetails.ImageProof             = bll.GetImageUploadedInBase64String(ImgGuarantor);
        ApprovalLoanDetails.Observations           = txtComment.Text;
        ApprovalLoanDetails.ProcessingFee          = txtProcFee.Text.Replace(",", "");
        return(ApprovalLoanDetails);
    }
예제 #27
0
        public LoanDetails GetLoanRepaymentDetails(LoanDetails loandetails)
        {
            LoanDetails interestResponse = null;
            string      loandetailsjson  = JsonConvert.SerializeObject(loandetails);
            var         httpContent      = new StringContent(loandetailsjson);

            httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            HttpResponseMessage response = _client.PostAsync(AppConstants.GET_REPAYMENTDETAILS_URL, httpContent).Result;

            if (response.IsSuccessStatusCode)
            {
                var result = response.Content.ReadAsStringAsync().Result;
                interestResponse = JsonConvert.DeserializeObject <LoanDetails>(result);
            }
            return(interestResponse);
        }
예제 #28
0
    public Result SaveLoanDetails(LoanDetails req)
    {
        Result result = new Result();

        try
        {
            result = LeshLoanSystem.SaveLoanDetails(req);
        }
        catch (Exception ex)
        {
            LeshLoanSystem.LogError(req.LoanNo + "-" + req.LoanDesc, ex.StackTrace, req.CompanyCode, ex.Message, "EXCEPTION");
            result.StatusCode = Globals.HIDE_FAILURE_STATUS_CODE;
            result.StatusDesc = "EXCEPTION: " + ex.Message;
        }
        return(result);
    }
예제 #29
0
    protected LoanDetails GetCollateralDetails()
    {
        LoanDetails Loan = new LoanDetails();

        Loan.LoanNo         = txtLoanNo.Text;
        Loan.Name           = txtColName.Text.ToString();
        Loan.Type           = txtLoanAmount.Text.Trim();
        Loan.Model          = txtLoanPurp.Text.Trim().ToString();
        Loan.Make           = txtInterest.Text.Trim().ToString();
        Loan.SerialNumber   = txtColSerialNo.Text.ToString();
        Loan.Observations   = txtColObsv.Text;
        Loan.ImageProof     = txtColImgProof.FileBytes.ToString();
        Loan.EstimatedPrice = txtorg.Text;
        Loan.ModifiedBy     = user.UserId;
        return(Loan);
    }
예제 #30
0
        // Details

        private void Details(object sender, EventArgs e)
        {
            if (!CheckForSelectedItem())
            {
                return;
            }

            Hide();
            switch (_option)
            {
            case 1:
                var authorDetails = new AuthorDetails(entitiesListBox.SelectedItem as Author);
                authorDetails.Closed += (s, args) => Show();
                authorDetails.ShowDialog();
                break;

            case 2:
                var publisherDetails = new PublisherDetails(entitiesListBox.SelectedItem as Publisher);
                publisherDetails.Closed += (s, args) => Show();
                publisherDetails.ShowDialog();
                break;

            case 3:
                var studentDetails = new StudentDetails(entitiesListBox.SelectedItem as Student);
                studentDetails.Closed += (s, args) => Show();
                studentDetails.ShowDialog();
                break;

            case 4:
                var bookDetails = new BookDetails(entitiesListBox.SelectedItem as Book);
                bookDetails.Closed += (s, args) => Show();
                bookDetails.ShowDialog();
                break;

            case 5:
                var loanDetails = new LoanDetails(entitiesListBox.SelectedItem as Loan);
                loanDetails.Closed += (s, args) => Show();
                loanDetails.ShowDialog();
                break;

            default:
                CommonErrorMessage();
                break;
            }

            RefreshRepositories();
        }