diff --git a/GMERemittance/Module/Resend/User Interface/View/ResendViewController.swift b/GMERemittance/Module/Resend/User Interface/View/ResendViewController.swift index 6a0a8a3a..e6e07088 100644 --- a/GMERemittance/Module/Resend/User Interface/View/ResendViewController.swift +++ b/GMERemittance/Module/Resend/User Interface/View/ResendViewController.swift @@ -57,8 +57,8 @@ class ResendViewController: UIViewController { func selectedAcunt(acunt: Account) { guard let index = self.selectedIndex else {return} if let navigation = self.navigationController, let reciepient = self.reciepient { -// let wireframe = SendMoneyParentWireframe() -// wireframe.open(for: reciepient, with: acunt, in: navigation) + let wireframe = ResendExchangeWireframe() + wireframe.pushMainView(in: navigation) } } } diff --git a/GMERemittance/Module/ResendExchange/User Interface/View/ResendExchangeViewController.swift b/GMERemittance/Module/ResendExchange/User Interface/View/ResendExchangeViewController.swift index 839f6c03..0fedf7df 100644 --- a/GMERemittance/Module/ResendExchange/User Interface/View/ResendExchangeViewController.swift +++ b/GMERemittance/Module/ResendExchange/User Interface/View/ResendExchangeViewController.swift @@ -12,12 +12,57 @@ class ResendExchangeViewController: UIViewController { // MARK: IBOutlets + @IBOutlet weak var exchangeBackground1: UIView! + @IBOutlet weak var exchangeBackground2: UIView! + @IBOutlet weak var backgroundViewCountryLabel1: UIView! + @IBOutlet weak var backgroundViewCountryLabel2: UIView! + @IBOutlet weak var countryListStackView: UIStackView! + @IBOutlet weak var countryCodeLabel: UILabel! + @IBOutlet weak var countryFlagImage: UIImageView! + + @IBOutlet weak var continueButton: UIButton! + + @IBOutlet weak var senderTextField: UITextField! + @IBOutlet weak var reciepientTextField: UITextField! + + @IBOutlet weak var transferFeeInfoLabel: UILabel! + @IBOutlet weak var exchangeRateLabel: UILabel! + @IBOutlet weak var exchangeInfoStackView: UIStackView! + + @IBOutlet weak var youSendTitleLabel: UILabel! + @IBOutlet weak var recipientGetsTitleLabel: UILabel! // MARK: Properties + var reciepient: Recipient? + var requestModel: SendMoneyRequestModel? + var exchangeRateModel: SendMoneyExchangeRateModel? { + didSet { + // list all rhe + } + } + var presenter: ResendExchangeModuleInterface? + var calcBy = "" + var action: ActionBehaviour? { + didSet { + if let _action = action { + switch _action { + case .calculate: + self.continueButton.setTitle("calculate_text".localized(), for: .normal) + case ._continue: + self.continueButton.setTitle("continue_text".localized(), for: .normal) + } + } + } + } + var actionDelegate: SendMoneyExchangeRateActionDelegate? + + var selectedCurrencyViewModel: SendMoneyExchangeRateCurrencyViewModel? + + // MARK: VC's Life cycle override func viewDidLoad() { @@ -25,13 +70,103 @@ class ResendExchangeViewController: UIViewController { self.setup() } + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + configureViews() + self.action = ActionBehaviour.calculate + } + // MARK: IBActions + @IBAction func continueButton(_ sender: UIButton) { + self.view.endEditing(true) + if let _action = action { + switch _action { + case .calculate: + self.calculate() + case ._continue: + // todo + self.goToVerification() + } + } + } + private func goToVerification() { + self.exchangeRateModel?.calcBy = self.calcBy + self.exchangeRateModel?.reciepientCurrency = self.selectedCurrencyViewModel?.currency ?? "" +// self.requestModel = exchangeRateModel + + + } // MARK: Other Functions private func setup() { // all setup should be done here - + configureViews() + setupTargets() + } + + private func configureViews() { + self.exchangeRateModel = nil + self.exchangeRateLabel.isHidden = true + self.exchangeRateLabel.alpha = 0 + self.transferFeeInfoLabel.isHidden = true + self.transferFeeInfoLabel.alpha = 0 + self.exchangeInfoStackView.isHidden = true + exchangeInfoStackView.alpha = 0 + self.setCountryFlag(countryCode: self.reciepient?.countryCode ?? "") + let deliveryMethod = self.requestModel?.paymemtMode + } + + private func setCountryFlag(countryCode: String) { + let flag = CountryInfo().getFlag(for: countryCode) + self.countryFlagImage.image = flag + } + + private func setupTargets() { + self.reciepientTextField.addTarget(self, action: #selector(self.textChanged(sender:)), for: UIControlEvents.editingChanged) + + self.senderTextField.addTarget(self, action: #selector(self.textChanged(sender:)), for: UIControlEvents.editingChanged) + } + + func calculate() { + let senderAmount = self.senderTextField.text! + let reciepientAmount = self.reciepientTextField.text! + self.calculateExchangeRate(senderAmount: senderAmount, reciepientAmount: reciepientAmount, calcBy: self.calcBy) + } + + func calculateExchangeRate(senderAmount: String, reciepientAmount: String, calcBy: String) { + let senderAmount = senderAmount // send sAmt amount + let reciepientAmount = reciepientAmount + let recipientCurrency = self.selectedCurrencyViewModel?.currency + let reciepientCountryId = self.reciepient?.countryId + let paymentMethod = self.requestModel?.autoDebitAccount?.type ?? "" + let paymentMethodId = self.requestModel?.paymemtMode?.id + let payoutPartner = self.requestModel?.paymemtMode?.payoutPartner + let myUsername = Utility.getMyUserName() + let bankId = self.requestModel?.bank?.id //bank id if selected bank + let reciepientCountryName = self.reciepient?.country + self.calculate(senderAmt: senderAmount, recieverAmt: reciepientAmount, recieverCurrency: recipientCurrency, recieverCountryName: reciepientCountryName, recieverCountryId: reciepientCountryId, paymentMethod: paymentMethod, paymentMethodId: paymentMethodId, calcBy: calcBy, payoutPartner: payoutPartner, userId: myUsername, bankId: bankId) + } + + func calculate(senderAmt: String?, senderCurrency: String? = "KRW", recieverAmt: String?, recieverCurrency: String?, recieverCountryName: String?, recieverCountryId: String?, paymentMethod: String?, paymentMethodId: String? ,calcBy: String?, senderCountryId: String? = "118", payoutPartner: String?, userId: String?, bankId: String?) { +// self.presenter?.calculate(senderAmt: senderAmt, senderCurrency: senderCurrency, recieverAmt: recieverAmt, recieverCurrency: recieverCurrency, recieverCountryName: recieverCountryName, recieverCountryId: recieverCountryId, paymentMethod: paymentMethod, paymentMethodId: paymentMethodId, calcBy: calcBy, senderCountryId: senderCountryId, payoutPartner: payoutPartner, userId: userId, bankId: bankId) + } + + + @objc private func textChanged(sender: UITextField) { + self.action = .calculate + switch sender { + case senderTextField: + self.reciepientTextField.text = "" + self.calcBy = "c" + senderTextField.text = Utility.getCommaSeperatedString(numberString: senderTextField.text!) + case reciepientTextField: + self.senderTextField.text = "" + self.calcBy = "p" + reciepientTextField.text = Utility.getCommaSeperatedString(numberString: reciepientTextField.text!) + default: + break + } } } @@ -39,3 +174,19 @@ class ResendExchangeViewController: UIViewController { extension ResendExchangeViewController: ResendExchangeViewInterface { } + + +extension ResendExchangeViewController { + + func show(error: String) { + self.alert(message: error) + } + + func showLoading() { + self.showProgressHud() + } + + func hideLoading() { + self.hideProgressHud() + } +} diff --git a/GMERemittance/Module/SendMoney/SendMoneyExchangeRate/User Interface/View/SendMoneyExchangeRateViewController.swift b/GMERemittance/Module/SendMoney/SendMoneyExchangeRate/User Interface/View/SendMoneyExchangeRateViewController.swift index bfdc01ea..c133b406 100644 --- a/GMERemittance/Module/SendMoney/SendMoneyExchangeRate/User Interface/View/SendMoneyExchangeRateViewController.swift +++ b/GMERemittance/Module/SendMoney/SendMoneyExchangeRate/User Interface/View/SendMoneyExchangeRateViewController.swift @@ -13,12 +13,14 @@ class SendMoneyExchangeRateCurrencyViewModel{ var currency: String? } +enum ActionBehaviour { + case calculate + case _continue +} + class SendMoneyExchangeRateViewController: UIViewController { - enum ActionBehaviour { - case calculate - case _continue - } + struct StringConstants { let youSendText = "you_send_text".localized() @@ -51,6 +53,9 @@ class SendMoneyExchangeRateViewController: UIViewController { var countryListTapGuesture: UITapGestureRecognizer? + // MARK: Properties + + var action: ActionBehaviour? { didSet { if let _action = action { @@ -66,8 +71,7 @@ class SendMoneyExchangeRateViewController: UIViewController { var actionDelegate: SendMoneyExchangeRateActionDelegate? - // MARK: Properties - + var presenter: SendMoneyExchangeRateModuleInterface? var currencyInfoViewModel: [SendMoneyExchangeRateCurrencyViewModel]? { didSet {