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

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. //
  2. // SendMoneyReceiptViewController.swift
  3. // GMERemittance
  4. //
  5. // Created by gme_2 on 04/09/2018.
  6. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. enum MailBoxType {
  10. case cancel
  11. case edit
  12. }
  13. class SendMoneyReceiptViewController: UIViewController {
  14. // MARK: IBOutlets
  15. @IBOutlet weak var fullnameLabel: UILabel!
  16. @IBOutlet weak var transactionDateLabel: UILabel!
  17. @IBOutlet weak var exchangeRateLabel: UILabel!
  18. @IBOutlet weak var relationLabel: UILabel!
  19. @IBOutlet weak var addressLabel: UILabel!
  20. @IBOutlet weak var mobileNoLabel: UILabel!
  21. @IBOutlet weak var recieverNameLabelLabel: UILabel!
  22. @IBOutlet weak var agentBankLabel: UILabel!
  23. @IBOutlet weak var branchLabel: UILabel!
  24. @IBOutlet weak var accountNoLabel: UILabel!
  25. @IBOutlet weak var transferFeeLabel: UILabel!
  26. @IBOutlet weak var totalAmountLabel: UILabel!
  27. @IBOutlet weak var gmeControlNumberLabel: UILabel!
  28. @IBOutlet weak var totalAmountHeaderLabel: UILabel!
  29. @IBOutlet weak var doneButton: UIButton!
  30. @IBOutlet weak var requestToChangeButton: UIButton!
  31. @IBOutlet weak var requestToCancelButton: UIButton!
  32. @IBOutlet weak var transactionReportButtonStackView: UIStackView!
  33. @IBOutlet weak var accountNoView: UIView!
  34. @IBOutlet weak var branchView: UIView!
  35. // MARK: Properties
  36. var presenter: SendMoneyReceiptModuleInterface?
  37. var hudDelegate: HUDStatusDelegate?
  38. var shouldShowCancelAmmendButton = false
  39. var controlNo: String?
  40. var transactionId: String?
  41. var type: MailBoxType?
  42. var reciept: SendMoneyReciept? {
  43. didSet {
  44. self.showRecipt()
  45. }
  46. }
  47. // MARK: VC's Life cycle
  48. override func viewDidLoad() {
  49. super.viewDidLoad()
  50. self.setup()
  51. self.presenter?.viewIsReady()
  52. }
  53. override func viewWillAppear(_ animated: Bool) {
  54. super.viewWillAppear(animated)
  55. self.navigationItem.title = "Receipt"
  56. self.setupBackButton()
  57. }
  58. override func viewWillDisappear(_ animated: Bool) {
  59. super.viewWillAppear(animated)
  60. self.navigationItem.title = ""
  61. }
  62. // MARK: IBActions
  63. @IBAction func done(_ sender: UIButton) {
  64. if (self.shouldShowCancelAmmendButton) {
  65. self.navigationController?.popToRootViewController(animated: true)
  66. }else {
  67. self.navigationController?.popViewController(animated: true)
  68. }
  69. }
  70. // MARK: Other Functions
  71. @IBAction func requestToCancel(_ sender: UIButton) {
  72. self.sendMail(type: .cancel)
  73. }
  74. @IBAction func requestToChange(_ sender: UIButton) {
  75. self.sendMail(type: .edit)
  76. }
  77. func sendMail(type: MailBoxType) {
  78. self.presenter?.openMail(controlNO: self.controlNo ?? "", transactionId: self.transactionId ?? "", type: type)
  79. }
  80. private func setup() {
  81. // all setup should be done here
  82. setupBackButton()
  83. // self.gmeControlNumberLabel.textColor = AppConstants.themeBlueColor
  84. }
  85. func setupBackButton() {
  86. if shouldShowCancelAmmendButton {
  87. self.navigationController?.navigationItem.hidesBackButton = false
  88. let button = UIBarButtonItem.init(image: #imageLiteral(resourceName: "backIconBlack"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.back))
  89. self.navigationItem.backBarButtonItem = button
  90. self.doneButton.isHidden = true
  91. self.transactionReportButtonStackView.isHidden = false
  92. }
  93. else {
  94. self.doneButton.isHidden = false
  95. self.transactionReportButtonStackView.isHidden = true
  96. self.navigationController?.navigationItem.hidesBackButton = true
  97. let button = UIBarButtonItem.init(title: nil, style: UIBarButtonItemStyle.plain, target: nil, action: nil)
  98. self.navigationItem.leftBarButtonItem = button
  99. }
  100. }
  101. @objc private func back() {
  102. self.presenter?.dismiss()
  103. }
  104. private func showRecipt() {
  105. let firstName = self.reciept?.rFirstName ?? ""
  106. let lastName = self.reciept?.rLastName ?? ""
  107. let middleName = self.reciept?.rMiddleName ?? ""
  108. self.recieverNameLabelLabel.text = self.reciept?.rFirstName
  109. let fullName = firstName + " " + middleName + " " + lastName
  110. self.fullnameLabel.text = fullName
  111. self.transactionDateLabel.text = reciept?.transactionDate
  112. self.fullnameLabel.text = self.reciept?.rFirstName
  113. self.transactionDateLabel.text = reciept?.transactionDate
  114. self.addressLabel.text = self.reciept?.rAddress
  115. self.mobileNoLabel.text = self.reciept?.rContactNo
  116. self.agentBankLabel.text = self.reciept?.agentBank
  117. let branch = self.reciept?.payoutBankBranch ?? ""
  118. self.branchLabel.text = branch
  119. self.branchView.isHidden = branch == ""
  120. let accountNo = self.reciept?.accountNo ?? ""
  121. self.accountNoView.isHidden = accountNo == ""
  122. self.accountNoLabel.text = self.reciept?.accountNo
  123. self.relationLabel.text = self.reciept?.collAmount
  124. self.transferFeeLabel.text = self.reciept?.serviceCharge
  125. self.exchangeRateLabel.text = self.reciept?.exRate
  126. let controlNo = self.reciept?.controNo ?? ""
  127. self.gmeControlNumberLabel.text = "GME Control No: " + controlNo
  128. let totalAmount = self.reciept?.payoutAmount ?? ""
  129. // let _totalAmt = Utility.getCommaSeperatedString(numberString: totalAmount) ?? ""
  130. self.totalAmountLabel.text = totalAmount
  131. self.totalAmountHeaderLabel.text = "Total Payout Amount: \(totalAmount)"
  132. }
  133. }
  134. // MARK: SendMoneyReceiptViewInterface
  135. extension SendMoneyReceiptViewController: SendMoneyReceiptViewInterface {
  136. func showLoading() {
  137. self.hudDelegate?.showLoading()
  138. }
  139. func hideLoading() {
  140. self.hudDelegate?.hideLoading()
  141. }
  142. func show(error: String) {
  143. self.alert(message: error)
  144. }
  145. func show(model: SendMoneyReciept) {
  146. self.reciept = model
  147. }
  148. }