// // SendMoneyReceiptViewController.swift // GMERemittance // // Created by gme_2 on 04/09/2018. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. // import UIKit enum MailBoxType { case cancel case edit } class SendMoneyReceiptViewController: UIViewController { // MARK: IBOutlets @IBOutlet weak var fullnameLabel: UILabel! @IBOutlet weak var transactionDateLabel: UILabel! @IBOutlet weak var exchangeRateLabel: UILabel! @IBOutlet weak var relationLabel: UILabel! @IBOutlet weak var addressLabel: UILabel! @IBOutlet weak var mobileNoLabel: UILabel! @IBOutlet weak var recieverNameLabelLabel: UILabel! @IBOutlet weak var agentBankLabel: UILabel! @IBOutlet weak var branchLabel: UILabel! @IBOutlet weak var accountNoLabel: UILabel! @IBOutlet weak var transferFeeLabel: UILabel! @IBOutlet weak var totalAmountLabel: UILabel! @IBOutlet weak var gmeControlNumberLabel: UILabel! @IBOutlet weak var totalAmountHeaderLabel: UILabel! @IBOutlet weak var doneButton: UIButton! @IBOutlet weak var requestToChangeButton: UIButton! @IBOutlet weak var requestToCancelButton: UIButton! @IBOutlet weak var transactionReportButtonStackView: UIStackView! @IBOutlet weak var accountNoView: UIView! @IBOutlet weak var branchView: UIView! // MARK: Properties var presenter: SendMoneyReceiptModuleInterface? var hudDelegate: HUDStatusDelegate? var shouldShowCancelAmmendButton = false var controlNo: String? var transactionId: String? var type: MailBoxType? var reciept: SendMoneyReciept? { didSet { self.showRecipt() } } // MARK: VC's Life cycle override func viewDidLoad() { super.viewDidLoad() self.setup() self.presenter?.viewIsReady() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationItem.title = "Receipt" self.setupBackButton() } override func viewWillDisappear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationItem.title = "" } // MARK: IBActions @IBAction func done(_ sender: UIButton) { if (self.shouldShowCancelAmmendButton) { self.navigationController?.popToRootViewController(animated: true) }else { self.navigationController?.popViewController(animated: true) } } // MARK: Other Functions @IBAction func requestToCancel(_ sender: UIButton) { self.sendMail(type: .cancel) } @IBAction func requestToChange(_ sender: UIButton) { self.sendMail(type: .edit) } func sendMail(type: MailBoxType) { self.presenter?.openMail(controlNO: self.controlNo ?? "", transactionId: self.transactionId ?? "", type: type) } private func setup() { // all setup should be done here setupBackButton() // self.gmeControlNumberLabel.textColor = AppConstants.themeBlueColor } func setupBackButton() { if shouldShowCancelAmmendButton { self.navigationController?.navigationItem.hidesBackButton = false let button = UIBarButtonItem.init(image: #imageLiteral(resourceName: "backIconBlack"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.back)) self.navigationItem.backBarButtonItem = button self.doneButton.isHidden = true self.transactionReportButtonStackView.isHidden = false } else { self.doneButton.isHidden = false self.transactionReportButtonStackView.isHidden = true self.navigationController?.navigationItem.hidesBackButton = true let button = UIBarButtonItem.init(title: nil, style: UIBarButtonItemStyle.plain, target: nil, action: nil) self.navigationItem.leftBarButtonItem = button } } @objc private func back() { self.presenter?.dismiss() } private func showRecipt() { let firstName = self.reciept?.rFirstName ?? "" let lastName = self.reciept?.rLastName ?? "" let middleName = self.reciept?.rMiddleName ?? "" self.recieverNameLabelLabel.text = self.reciept?.rFirstName let fullName = firstName + " " + middleName + " " + lastName self.fullnameLabel.text = fullName self.transactionDateLabel.text = reciept?.transactionDate self.fullnameLabel.text = self.reciept?.rFirstName self.transactionDateLabel.text = reciept?.transactionDate self.addressLabel.text = self.reciept?.rAddress self.mobileNoLabel.text = self.reciept?.rContactNo self.agentBankLabel.text = self.reciept?.agentBank let branch = self.reciept?.payoutBankBranch ?? "" self.branchLabel.text = branch self.branchView.isHidden = branch == "" let accountNo = self.reciept?.accountNo ?? "" self.accountNoView.isHidden = accountNo == "" self.accountNoLabel.text = self.reciept?.accountNo self.relationLabel.text = self.reciept?.collAmount self.transferFeeLabel.text = self.reciept?.serviceCharge self.exchangeRateLabel.text = self.reciept?.exRate let controlNo = self.reciept?.controNo ?? "" self.gmeControlNumberLabel.text = "GME Control No: " + controlNo let totalAmount = self.reciept?.payoutAmount ?? "" // let _totalAmt = Utility.getCommaSeperatedString(numberString: totalAmount) ?? "" self.totalAmountLabel.text = totalAmount self.totalAmountHeaderLabel.text = "Total Payout Amount: \(totalAmount)" } } // MARK: SendMoneyReceiptViewInterface extension SendMoneyReceiptViewController: SendMoneyReceiptViewInterface { func showLoading() { self.hudDelegate?.showLoading() } func hideLoading() { self.hudDelegate?.hideLoading() } func show(error: String) { self.alert(message: error) } func show(model: SendMoneyReciept) { self.reciept = model } }