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.

187 lines
6.4 KiB

  1. //
  2. // SendMoneyVerificationViewController.swift
  3. // GMERemittance
  4. //
  5. // Created by gme_2 on 28/08/2018.
  6. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. class SendMoneyVerificationViewController: UITableViewController {
  10. // MARK: IBOutlets
  11. // Recievers Details
  12. @IBOutlet weak var fullNameLabel: UILabel!
  13. @IBOutlet weak var addressLabel: UILabel!
  14. @IBOutlet weak var countryLabel: UILabel!
  15. @IBOutlet weak var mobileLabel: UILabel!
  16. // Transation Details
  17. @IBOutlet weak var payoutCountryLabel: UILabel!
  18. @IBOutlet weak var payoutModeLabel: UILabel!
  19. @IBOutlet weak var payingAmountLabel: UILabel!
  20. @IBOutlet weak var exchangeRateLabel: UILabel!
  21. @IBOutlet weak var serviceChargeLabel: UILabel!
  22. @IBOutlet weak var payoutAgentBankLabel: UILabel!
  23. @IBOutlet weak var checkBoxButton: UIButton!
  24. var url: String?
  25. // MARK: Properties
  26. var presenter: SendMoneyVerificationModuleInterface?
  27. var reciepient: Recipient?
  28. var requestModel: SendMoneyRequestModel?
  29. var hudDelegate: HUDStatusDelegate?
  30. var password: String? {
  31. didSet {
  32. if let model = self.requestModel, let reciepient = self.reciepient {
  33. model.transactionPassword = password ?? ""
  34. self.presenter?.submit(model: model, reciepient: reciepient)
  35. }
  36. }
  37. }
  38. // MARK: VC's Life cycle
  39. override func viewDidLoad() {
  40. super.viewDidLoad()
  41. self.setup()
  42. }
  43. override func viewWillAppear(_ animated: Bool) {
  44. super.viewWillAppear(animated)
  45. populateRecieversInformations()
  46. populateTransactionDetails()
  47. }
  48. // MARK: IBActions
  49. // @IBOutlet weak var usewUserAgreement: UIButton!
  50. @IBAction func showUserAgreement(_ sender: UIButton) {
  51. let webController = UIStoryboard.init(name: "Storyboard", bundle: nil).instantiateViewController(withIdentifier: "WebLinksViewController") as! WebLinksViewController
  52. webController.titleString = "User Agreement"
  53. webController.url = self.url ?? "https://online.gmeremit.com/Terms"
  54. let nav = UINavigationController.init(rootViewController: webController)
  55. self.present(nav, animated: true, completion: nil)
  56. // self.navigationController?.pushViewController(webController, animated: true)
  57. }
  58. @IBAction func submit(_ sender: UIButton) {
  59. let checked = self.checkBoxButton.isSelected
  60. if !checked {
  61. self.alert(message: "Please agree the terms and conditions")
  62. return
  63. }
  64. self.askPassword()
  65. // submit the request model
  66. }
  67. // MARK: Other Functions
  68. private func setup() {
  69. // all setup should be done here
  70. // self.checkBoxButton.layer.borderColor = UIColor.red.cgColor
  71. // self.checkBoxButton.layer.borderWidth = 1
  72. // self.checkBoxButton.setImage(#imageLiteral(resourceName: "right"), for: UIControlState.selected)
  73. // self.checkBoxButton.setImage(nil, for: UIControlState.normal)
  74. }
  75. @IBAction func checkBoxButtonTapped(_ sender: UIButton) {
  76. let selected = sender.isSelected
  77. sender.isSelected = !selected
  78. }
  79. private func populateRecieversInformations() {
  80. self.fullNameLabel.text = self.reciepient?.getFullName()
  81. self.addressLabel.text = self.reciepient?.address
  82. self.countryLabel.text = self.reciepient?.country
  83. self.mobileLabel.text = self.reciepient?.mobileNumber
  84. }
  85. private func populateTransactionDetails() {
  86. self.payoutCountryLabel.text = self.reciepient?.country
  87. self.payoutModeLabel.text = self.requestModel?.paymemtMode?.mode
  88. self.payingAmountLabel.text = (self.requestModel?.exchangeRateDetail?.recipientAmount ?? "") + " \(self.requestModel?.exchangeRateDetail?.reciepientCurrency ?? "")"
  89. self.exchangeRateLabel.text = self.requestModel?.exchangeRateDetail?.exchangeRate
  90. self.serviceChargeLabel.text = self.requestModel?.exchangeRateDetail?.transferFee
  91. self.payoutAgentBankLabel.text = self.requestModel?.bank?.name
  92. }
  93. func askPassword() {
  94. let alertController = UIAlertController(title: "Enter your login password", message: "", preferredStyle: .alert)
  95. alertController.addTextField { (textField : UITextField!) -> Void in
  96. textField.placeholder = "Enter password"
  97. textField.isSecureTextEntry = true
  98. textField.tag = 51
  99. // textField.delegate = self
  100. }
  101. let confirmAction = UIAlertAction(title: "Confirm", style: .default, handler: {
  102. alert -> Void in
  103. let passwordTextField = alertController.textFields![0] as UITextField
  104. if passwordTextField.text! != "" {
  105. self.password = passwordTextField.text!
  106. } else {
  107. self.alert(message: "Password was missing")
  108. }
  109. })
  110. let cancelAction = UIAlertAction(title: "Cancel", style: .destructive, handler: {
  111. (action : UIAlertAction!) -> Void in
  112. })
  113. cancelAction.setValue(UIColor.black, forKey: "titleTextColor")
  114. confirmAction.setValue(UIColor(hex:0xEC1C24), forKey: "titleTextColor")
  115. alertController.addAction(cancelAction)
  116. alertController.addAction(confirmAction)
  117. self.present(alertController, animated: true, completion: nil)
  118. }
  119. }
  120. // MARK: SendMoneyVerificationViewInterface
  121. extension SendMoneyVerificationViewController: SendMoneyVerificationViewInterface {
  122. func show(model: SendMoneySubmitModelContainer?) {
  123. self.alertWithOk(message: model?.message , title: "Success", okTitle: "OK", style: UIAlertControllerStyle.alert, OkStyle: .default) {
  124. if let id = model?.id {
  125. self.presenter?.openReciept(transactionId: id)
  126. }else {
  127. self.alert(message: "No Transaction recievied.")
  128. }
  129. }
  130. }
  131. func show(error: String) {
  132. // self.presenter?.openReciept(transactionId: "1235")
  133. self.alert(message: error)
  134. }
  135. func showLoading() {
  136. self.hudDelegate?.showLoading()
  137. }
  138. func hideLoading() {
  139. self.hudDelegate?.hideLoading()
  140. }
  141. }
  142. extension SendMoneyVerificationViewController {
  143. override func didMove(toParentViewController parent: UIViewController?) {
  144. self.viewWillAppear(true)
  145. }
  146. }