Browse Source

adding exchange rates

pull/1/head
gme_2 6 years ago
parent
commit
43497aa85f
  1. 4
      GMERemittance/Module/Resend/User Interface/View/ResendViewController.swift
  2. 151
      GMERemittance/Module/ResendExchange/User Interface/View/ResendExchangeViewController.swift
  3. 10
      GMERemittance/Module/SendMoney/SendMoneyExchangeRate/User Interface/View/SendMoneyExchangeRateViewController.swift

4
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)
}
}
}

151
GMERemittance/Module/ResendExchange/User Interface/View/ResendExchangeViewController.swift

@ -12,10 +12,55 @@ 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
@ -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()
}
}

10
GMERemittance/Module/SendMoney/SendMoneyExchangeRate/User Interface/View/SendMoneyExchangeRateViewController.swift

@ -13,13 +13,15 @@ class SendMoneyExchangeRateCurrencyViewModel{
var currency: String?
}
class SendMoneyExchangeRateViewController: UIViewController {
enum ActionBehaviour {
case calculate
case _continue
}
class SendMoneyExchangeRateViewController: UIViewController {
struct StringConstants {
let youSendText = "you_send_text".localized()
let reciepientGetsText = "recepient_gets_text".localized()
@ -51,6 +53,9 @@ class SendMoneyExchangeRateViewController: UIViewController {
var countryListTapGuesture: UITapGestureRecognizer?
// MARK: Properties
var action: ActionBehaviour? {
didSet {
if let _action = action {
@ -66,7 +71,6 @@ class SendMoneyExchangeRateViewController: UIViewController {
var actionDelegate: SendMoneyExchangeRateActionDelegate?
// MARK: Properties
var presenter: SendMoneyExchangeRateModuleInterface?
var currencyInfoViewModel: [SendMoneyExchangeRateCurrencyViewModel]? {

Loading…
Cancel
Save