123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- //
- // EMILoanSummaryViewController.swift
- // Product Calculator
- //
- // Created by Suraj Kumar Mandal on 07/12/21.
- //
- import UIKit
- import Toast_Swift
- class EMILoanSummaryViewController: UIViewController {
- @IBOutlet var label1: UILabel!
- @IBOutlet var textField1: UITextField!
- @IBOutlet var label2: UILabel!
- @IBOutlet var textField2: UITextField!
- @IBOutlet var label3: UILabel!
- @IBOutlet var textField3: UITextField!
- @IBOutlet var viewDetailedButton: UIButton!
- @IBOutlet var tableView: UITableView!
-
- var viewModel = EMILoanSummaryViewModel()
-
- var emiOriginalModel:EMILoanOriginalModel?
- var emiOutstandingModel:EMILoanOutstandingModel?
- var emiOriginalOutputList = [EMIOriginalLookupList]()
- var emiOutstandingOutputList = [EMIOutstandingLookupList]()
-
- var loanType = String()
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- // Do any additional setup after loading the view.
- setupUI()
- setupData()
- }
-
- override func viewWillAppear(_ animated: Bool) {
- viewModel.delegate = self
- if loanType == "Original Loan Amount(Rs)" {
- viewModel.getEMIOriginalOutputList(numberOfEMI: String(emiOriginalModel!.numberOfEMI ?? 0), loanStartingDate: String(emiOriginalModel?.loanStartDate ?? ""), originalLoanAmount: String(emiOriginalModel?.loanAmount ?? 0), loanEMIAmt: String(emiOriginalModel?.emiAmount ?? 0), originalInterestRate: String(emiOriginalModel?.interestRate ?? 0), loanFlag: String(emiOriginalModel?.loan_original_flag ?? ""))
- } else {
- viewModel.getEMIOutstandingOutputList(numberOfEMI: String(emiOutstandingModel!.numberOfEMI ?? 0), loanStartingDate: String(emiOutstandingModel?.loanStartDate ?? ""), originalLoanAmount: String(emiOutstandingModel?.loanAmount ?? 0), loanEMIAmt: String(emiOutstandingModel?.emiAmount ?? 0), originalInterestRate: String(emiOutstandingModel?.interestRate ?? 0), loanFlag: String(emiOutstandingModel?.loan_original_flag ?? ""))
- }
- }
-
- func setupUI() {
- viewDetailedButton.isHidden = false
- tableView.isHidden = true
- }
-
- func setupData() {
- if loanType == "Original Loan Amount(Rs)" {
- label1.isHidden = false
- label2.isHidden = false
- label3.isHidden = false
- textField1.isHidden = false
- textField2.isHidden = false
- textField3.isHidden = false
- //Head label name
- label1.text = "No. of Original EMI Installments"
- label2.text = "Original EMI Amount(Rs)"
- label3.text = "Original Loan End Date"
- textField1.text = String(emiOriginalModel!.numberOfEMI!)
- textField2.text = String(format: "%.2f", "\(emiOriginalModel!.emiAmount!)")
- let date = emiOriginalModel!.loanEndDate
- let dateString = date?.stringBefore("T")
- textField3.text = convertDateFormat(inputDate: dateString!)
- } else {
- textField1.isHidden = false
- textField2.isHidden = false
- textField3.isHidden = true
- label1.isHidden = false
- label2.isHidden = false
- label3.isHidden = true
- //Head label name
- label1.text = "No. of Pending Installments"
- label2.text = "Current Loan End Date"
- textField1.text = String(emiOutstandingModel!.numberOfEMI!)
- let date = emiOriginalModel!.loanEndDate
- let dateString = date?.stringBefore("T")
- textField2.text = convertDateFormat(inputDate: dateString!)
- }
- }
-
-
- /*
- // MARK: - Navigation
-
- // In a storyboard-based application, you will often want to do a little preparation before navigation
- override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
- // Get the new view controller using segue.destination.
- // Pass the selected object to the new view controller.
- }
- */
-
- @IBAction func viewDetailedProjectionAction(_ sender: Any) {
- viewDetailedButton.isHidden = true
- tableView.isHidden = false
- }
-
- }
- extension EMILoanSummaryViewController : EMILoanSummaryViewProtocol {
- func startLoader() {
- ActivityIndicator.start()
- }
-
- func stopLoader() {
- ActivityIndicator.stop()
- }
-
- func showError(error: String) {
- self.view.makeToast(error)
- }
-
- func loadOriginal(_ data: [EMIOriginalLookupList]) {
- self.emiOriginalOutputList = data
- self.tableView.reloadData()
- }
-
- func loadOutstanding(_ data: [EMIOutstandingLookupList]) {
- self.emiOutstandingOutputList = data
- self.tableView.reloadData()
- }
- }
- extension EMILoanSummaryViewController : UITableViewDelegate, UITableViewDataSource {
- func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- if loanType == "Original Loan Amount(Rs)" {
- return emiOriginalOutputList.count
- } else {
- return emiOutstandingOutputList.count
- }
- }
-
- func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let cell = tableView.dequeueReusableCell(withIdentifier: "EMILoanTableViewCell", for: indexPath) as? EMILoanTableViewCell
-
- if loanType == "Original Loan Amount(Rs)" {
- cell?.monthLabel.text = emiOriginalOutputList[indexPath.row].referenceMonth
- cell?.installmentNoLabel.text = String(format: "%.2f", "\(emiOriginalOutputList[indexPath.row].installmentNumber!)")
- cell?.beginningBalanceLabel.text = String(format: "%.2f", "\(emiOriginalOutputList[indexPath.row].begningBal!)")
- cell?.interestPaymentLabel.text = String(format: "%.2f", "\(emiOriginalOutputList[indexPath.row].interestPayment!)")
- cell?.principalPaymentLabel.text = String(format: "%.2f", "\(emiOriginalOutputList[indexPath.row].principalPayment!)")
- cell?.endingBalanceLabel.text = String(format: "%.2f", "\(emiOriginalOutputList[indexPath.row].endingBalance!)")
- cell?.emiAmountLabel.text = String(format: "%.2f", "\(emiOriginalOutputList[indexPath.row].emiAmount!)")
- cell?.totalPrincipalPaidToDateLabel.text = String(format: "%.2f", "\(emiOriginalOutputList[indexPath.row].totalPrincipalPaid!)")
- cell?.totalInterestPaidToDateLabel.text = String(format: "%.2f", "\(emiOriginalOutputList[indexPath.row].totalInterestPaid!)")
- } else {
- cell?.monthLabel.text = emiOutstandingOutputList[indexPath.row].referenceMonth
- cell?.installmentNoLabel.text = String(format: "%.2f", "\(emiOutstandingOutputList[indexPath.row].installmentNumber!)")
- cell?.beginningBalanceLabel.text = String(format: "%.2f", "\(emiOutstandingOutputList[indexPath.row].begningBal!)")
- cell?.interestPaymentLabel.text = String(format: "%.2f", "\(emiOutstandingOutputList[indexPath.row].interestPayment!)")
- cell?.principalPaymentLabel.text = String(format: "%.2f", "\(emiOutstandingOutputList[indexPath.row].principalPayment!)")
- cell?.endingBalanceLabel.text = String(format: "%.2f", "\(emiOutstandingOutputList[indexPath.row].endingBalance!)")
- cell?.emiAmountLabel.text = String(format: "%.2f", "\(emiOutstandingOutputList[indexPath.row].emiAmount!)")
- cell?.totalPrincipalPaidToDateLabel.text = String(format: "%.2f", "\(emiOutstandingOutputList[indexPath.row].totalPrincipalPaid!)")
- cell?.totalInterestPaidToDateLabel.text = String(format: "%.2f", "\(emiOutstandingOutputList[indexPath.row].totalInterestPaid!)")
- }
-
- return cell!
- }
- }
|