You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

186 lines
6.1 KiB

//
// 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
}
}