|
|
@ -11,317 +11,350 @@ import UIKit |
|
|
|
class ResendExchangeViewController: UIViewController { |
|
|
|
|
|
|
|
|
|
|
|
// MARK: IBOutlets |
|
|
|
// 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 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 continueButton: UIButton! |
|
|
|
|
|
|
|
@IBOutlet weak var senderTextField: UITextField! |
|
|
|
@IBOutlet weak var reciepientTextField: UITextField! |
|
|
|
@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 transferFeeInfoLabel: UILabel! |
|
|
|
@IBOutlet weak var exchangeRateLabel: UILabel! |
|
|
|
@IBOutlet weak var exchangeInfoStackView: UIStackView! |
|
|
|
|
|
|
|
@IBOutlet weak var youSendTitleLabel: UILabel! |
|
|
|
@IBOutlet weak var recipientGetsTitleLabel: UILabel! |
|
|
|
@IBOutlet weak var youSendTitleLabel: UILabel! |
|
|
|
@IBOutlet weak var recipientGetsTitleLabel: UILabel! |
|
|
|
|
|
|
|
@IBOutlet weak var couponValueLabel: UILabel! |
|
|
|
@IBOutlet weak var couponNameLabel: UILabel! |
|
|
|
@IBOutlet weak var couponDropDownImageView: UIImageView! |
|
|
|
|
|
|
|
// MARK: Properties |
|
|
|
|
|
|
|
// MARK: Properties |
|
|
|
|
|
|
|
var reciepient: Recipient? { |
|
|
|
didSet { |
|
|
|
self.requestModel?.reciepient = reciepient |
|
|
|
} |
|
|
|
var reciepient: Recipient? { |
|
|
|
didSet { |
|
|
|
self.requestModel?.reciepient = reciepient |
|
|
|
} |
|
|
|
var requestModel: ResendRequestModel? |
|
|
|
var transactionId: String? |
|
|
|
|
|
|
|
var resendInfoModel: ResendDetail? { |
|
|
|
didSet { |
|
|
|
self.senderTextField.text = Utility.getCommaSeperatedStringWithDecimal(numberString: resendInfoModel?.exchangeRate?.cAmount ?? "") |
|
|
|
self.reciepientTextField.text = Utility.getCommaSeperatedStringWithDecimal(numberString: resendInfoModel?.exchangeRate?.pAmount ?? "") |
|
|
|
self.calcBy = resendInfoModel?.exchangeRate?.calcBy ?? "" |
|
|
|
guard let reciever = resendInfoModel?.receiver else {return} |
|
|
|
self.reciepient = self.convertReciepient(model: reciever) |
|
|
|
self.setCountryFlag(countryCode: self.resendInfoModel?.receiver?.rCountryCode ?? "") |
|
|
|
} |
|
|
|
} |
|
|
|
var requestModel: ResendRequestModel? |
|
|
|
var transactionId: String? |
|
|
|
|
|
|
|
var resendInfoModel: ResendDetail? { |
|
|
|
didSet { |
|
|
|
self.senderTextField.text = Utility.getCommaSeperatedStringWithDecimal(numberString: resendInfoModel?.exchangeRate?.cAmount ?? "") |
|
|
|
self.reciepientTextField.text = Utility.getCommaSeperatedStringWithDecimal(numberString: resendInfoModel?.exchangeRate?.pAmount ?? "") |
|
|
|
self.calcBy = resendInfoModel?.exchangeRate?.calcBy ?? "" |
|
|
|
guard let reciever = resendInfoModel?.receiver else {return} |
|
|
|
self.reciepient = self.convertReciepient(model: reciever) |
|
|
|
self.setCountryFlag(countryCode: self.resendInfoModel?.receiver?.rCountryCode ?? "") |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var exchangeRateModel: SendMoneyExchangeRateModel? { |
|
|
|
didSet { |
|
|
|
self.reciepientTextField.text = Utility.getCommaSeperatedStringWithDecimal(numberString: self.exchangeRateModel?.recipientAmount ?? "") |
|
|
|
self.senderTextField.text = Utility.getCommaSeperatedStringWithDecimal(numberString: self.exchangeRateModel?.senderAmount ?? "") |
|
|
|
let transferFee = self.exchangeRateModel?.transferFee ?? "" |
|
|
|
self.transferFeeInfoLabel.text = transferFee + "(" + "transfer_fee_included_text".localized() + ")" |
|
|
|
let exchangeRate = self.exchangeRateModel?.exchangeRate ?? "" |
|
|
|
self.exchangeRateLabel.text = exchangeRate + " (" + "current_exchange_rate_text".localized() + ")" |
|
|
|
self.countryCodeLabel.text = exchangeRateModel?.reciepientCurrency |
|
|
|
UIView.animate(withDuration: 0.33) { |
|
|
|
self.transferFeeInfoLabel.isHidden = false |
|
|
|
self.exchangeRateLabel.isHidden = false |
|
|
|
self.exchangeInfoStackView.isHidden = false |
|
|
|
self.transferFeeInfoLabel.alpha = 1 |
|
|
|
self.exchangeRateLabel.alpha = 1 |
|
|
|
self.exchangeInfoStackView.alpha = 1 |
|
|
|
} |
|
|
|
|
|
|
|
self.action = ._continue |
|
|
|
self.requestModel?.exchangeRateDetail = exchangeRateModel |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var exchangeRateModel: SendMoneyExchangeRateModel? { |
|
|
|
didSet { |
|
|
|
self.reciepientTextField.text = Utility.getCommaSeperatedStringWithDecimal(numberString: self.exchangeRateModel?.recipientAmount ?? "") |
|
|
|
self.senderTextField.text = Utility.getCommaSeperatedStringWithDecimal(numberString: self.exchangeRateModel?.senderAmount ?? "") |
|
|
|
let transferFee = self.exchangeRateModel?.transferFee ?? "" |
|
|
|
self.transferFeeInfoLabel.text = transferFee + "(" + "transfer_fee_included_text".localized() + ")" |
|
|
|
let exchangeRate = self.exchangeRateModel?.exchangeRate ?? "" |
|
|
|
self.exchangeRateLabel.text = exchangeRate + " (" + "current_exchange_rate_text".localized() + ")" |
|
|
|
self.countryCodeLabel.text = exchangeRateModel?.reciepientCurrency |
|
|
|
|
|
|
|
setCoupon() |
|
|
|
|
|
|
|
UIView.animate(withDuration: 0.33) { |
|
|
|
self.transferFeeInfoLabel.isHidden = false |
|
|
|
self.exchangeRateLabel.isHidden = false |
|
|
|
self.exchangeInfoStackView.isHidden = false |
|
|
|
self.transferFeeInfoLabel.alpha = 1 |
|
|
|
self.exchangeRateLabel.alpha = 1 |
|
|
|
self.exchangeInfoStackView.alpha = 1 |
|
|
|
} |
|
|
|
|
|
|
|
self.action = ._continue |
|
|
|
self.requestModel?.exchangeRateDetail = exchangeRateModel |
|
|
|
} |
|
|
|
|
|
|
|
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 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() { |
|
|
|
super.viewDidLoad() |
|
|
|
self.setup() |
|
|
|
} |
|
|
|
var actionDelegate: SendMoneyExchangeRateActionDelegate? |
|
|
|
var selectedCurrencyViewModel: SendMoneyExchangeRateCurrencyViewModel? |
|
|
|
|
|
|
|
// MARK: VC's Life cycle |
|
|
|
|
|
|
|
override func viewDidLoad() { |
|
|
|
super.viewDidLoad() |
|
|
|
self.setup() |
|
|
|
} |
|
|
|
|
|
|
|
override func viewWillAppear(_ animated: Bool) { |
|
|
|
super.viewWillAppear(animated) |
|
|
|
self.navigationItem.title = "resend_money_text".localized() |
|
|
|
initialSetup() |
|
|
|
self.presenter?.viewIsReady() |
|
|
|
self.action = ActionBehaviour.calculate |
|
|
|
} |
|
|
|
|
|
|
|
override func viewWillDisappear(_ animated: Bool) { |
|
|
|
super.viewWillDisappear(animated) |
|
|
|
self.navigationItem.title = "" |
|
|
|
} |
|
|
|
|
|
|
|
// 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.showReceiverDetailPage() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
override func viewWillAppear(_ animated: Bool) { |
|
|
|
super.viewWillAppear(animated) |
|
|
|
self.navigationItem.title = "resend_money_text".localized() |
|
|
|
initialSetup() |
|
|
|
self.presenter?.viewIsReady() |
|
|
|
self.action = ActionBehaviour.calculate |
|
|
|
} |
|
|
|
|
|
|
|
override func viewWillDisappear(_ animated: Bool) { |
|
|
|
super.viewWillDisappear(animated) |
|
|
|
self.navigationItem.title = "" |
|
|
|
} |
|
|
|
|
|
|
|
// 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.showReceiverDetailPage() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// MARK: Other Functions |
|
|
|
|
|
|
|
private func setup() { |
|
|
|
// all setup should be done here |
|
|
|
initialSetup() |
|
|
|
setupTargets() |
|
|
|
setupView() |
|
|
|
configureLanguage() |
|
|
|
} |
|
|
|
|
|
|
|
private func configureLanguage() { |
|
|
|
self.recipientGetsTitleLabel.text = "recepient_gets_text".localized() |
|
|
|
self.youSendTitleLabel.text = "you_send_text".localized() |
|
|
|
|
|
|
|
// MARK: Other Functions |
|
|
|
let dropDownImage = #imageLiteral(resourceName: "dropdown_white").withRenderingMode(UIImageRenderingMode.alwaysTemplate) |
|
|
|
|
|
|
|
private func setup() { |
|
|
|
// all setup should be done here |
|
|
|
initialSetup() |
|
|
|
setupTargets() |
|
|
|
setupView() |
|
|
|
configureLanguage() |
|
|
|
} |
|
|
|
couponDropDownImageView.image = dropDownImage |
|
|
|
couponDropDownImageView.tintColor = AppConstants.themeRedColor |
|
|
|
couponNameLabel.text = "0" |
|
|
|
couponValueLabel.text = "" |
|
|
|
} |
|
|
|
|
|
|
|
private func configureLanguage() { |
|
|
|
self.recipientGetsTitleLabel.text = "recepient_gets_text".localized() |
|
|
|
self.youSendTitleLabel.text = "you_send_text".localized() |
|
|
|
|
|
|
|
} |
|
|
|
func setupView() { |
|
|
|
[backgroundViewCountryLabel1, backgroundViewCountryLabel2].forEach({ |
|
|
|
$0?.layer.cornerRadius = 5 |
|
|
|
}) |
|
|
|
|
|
|
|
[exchangeBackground1, exchangeBackground2].forEach({ |
|
|
|
$0?.layer.borderWidth = 1 |
|
|
|
$0?.layer.borderColor = UIColor.init(hex: "#E0E0E0").cgColor |
|
|
|
$0?.layer.cornerRadius = 5 |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
func setupView() { |
|
|
|
[backgroundViewCountryLabel1, backgroundViewCountryLabel2].forEach({ |
|
|
|
$0?.layer.cornerRadius = 5 |
|
|
|
}) |
|
|
|
private func showReceiverDetailPage() { |
|
|
|
|
|
|
|
[exchangeBackground1, exchangeBackground2].forEach({ |
|
|
|
$0?.layer.borderWidth = 1 |
|
|
|
$0?.layer.borderColor = UIColor.init(hex: "#E0E0E0").cgColor |
|
|
|
$0?.layer.cornerRadius = 5 |
|
|
|
}) |
|
|
|
let sendmoneyModel = self.convertModel() |
|
|
|
if let navigation = self.navigationController, let reciepient = self.reciepient { |
|
|
|
let wireframe = SendMoneyVerificationWireframe() |
|
|
|
wireframe.openVerification(reciepient: reciepient, model: sendmoneyModel, source: navigation) |
|
|
|
} |
|
|
|
|
|
|
|
private func showReceiverDetailPage() { |
|
|
|
|
|
|
|
let sendmoneyModel = self.convertModel() |
|
|
|
if let navigation = self.navigationController, let reciepient = self.reciepient { |
|
|
|
let wireframe = SendMoneyVerificationWireframe() |
|
|
|
wireframe.openVerification(reciepient: reciepient, model: sendmoneyModel, source: navigation) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private func setCoupon(){ |
|
|
|
if exchangeRateModel?.schemeId != nil, |
|
|
|
let couponName = exchangeRateModel?.couponName, |
|
|
|
let discountType = exchangeRateModel?.discountType { |
|
|
|
|
|
|
|
let discountRate = exchangeRateModel?.discountPercent ?? "0" |
|
|
|
let discountValue = exchangeRateModel?.discountValue ?? "0" |
|
|
|
|
|
|
|
switch discountType { |
|
|
|
case "1": // Percent |
|
|
|
couponNameLabel.text = "\(couponName)(\(discountRate)%)" |
|
|
|
couponValueLabel.text = "-\(discountValue) KRW" |
|
|
|
case "2": // Value |
|
|
|
couponNameLabel.text = "\(couponName)(\(discountValue) KRW)" |
|
|
|
couponValueLabel.text = "-\(discountValue) KRW" |
|
|
|
default: |
|
|
|
couponNameLabel.text = "0" |
|
|
|
couponValueLabel.text = "" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func convertReciepient(model: ResendReceiver) -> Recipient { |
|
|
|
var reciepient = Recipient() |
|
|
|
reciepient.firstName = model.rFullName |
|
|
|
reciepient.recipientId = self.resendInfoModel?.remitDetial?.ReceiverId |
|
|
|
reciepient.reasonId = self.resendInfoModel?.remitDetial?.PurposeOfRemittance |
|
|
|
reciepient.relationId = self.resendInfoModel?.remitDetial?.RelWithSender |
|
|
|
reciepient.address = model.rAddress |
|
|
|
reciepient.country = model.rCountry |
|
|
|
reciepient.mobileNumber = model.rMobile |
|
|
|
return reciepient |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func convertModel() -> SendMoneyRequestModel { |
|
|
|
let model = SendMoneyRequestModel() |
|
|
|
self.exchangeRateModel?.calcBy = self.calcBy |
|
|
|
self.exchangeRateModel?.autodebitSendingAmount = self.senderTextField.text!.stringRemovingComma() |
|
|
|
model.exchangeRateDetail = self.exchangeRateModel |
|
|
|
model.autoDebitAccount = self.requestModel?.autoDebitAccount |
|
|
|
|
|
|
|
/* SendMoneyPayoutMode */ |
|
|
|
|
|
|
|
// "deliveryMethodId": model.paymemtMode?.id ?? "", |
|
|
|
// "payOutPartner": model.paymemtMode?.payoutPartner ?? "", |
|
|
|
// "ReceiverAccountNo": model.paymemtMode?.accountNumber ?? "", |
|
|
|
|
|
|
|
|
|
|
|
let paymentMode = SendMoneyPayoutMode() |
|
|
|
paymentMode.id = self.resendInfoModel?.remitDetial?.DeliveryMethodId |
|
|
|
paymentMode.payoutPartner = self.resendInfoModel?.remitDetial?.PayOutPartner |
|
|
|
paymentMode.accountNumber = self.resendInfoModel?.remitDetial?.ReceiverAccountNo |
|
|
|
paymentMode.mode = self.resendInfoModel?.receiver?.deliveryMethod |
|
|
|
model.paymemtMode = paymentMode |
|
|
|
|
|
|
|
|
|
|
|
/* SendMoneyBank */ |
|
|
|
// "pAgent": model.bank?.id ?? "", |
|
|
|
|
|
|
|
let bank = SendMoneyBank() |
|
|
|
bank.id = self.resendInfoModel?.remitDetial?.PAgent |
|
|
|
bank.name = self.requestModel?.transaction?.bankName |
|
|
|
model.bank = bank |
|
|
|
|
|
|
|
/* SendMoneyBankBranch */ |
|
|
|
// branch |
|
|
|
// "pBranch": model.branch?.id ?? "", |
|
|
|
let branch = SendMoneyBankBranch() |
|
|
|
branch.id = self.resendInfoModel?.remitDetial?.PBranch |
|
|
|
model.branch = branch |
|
|
|
return model |
|
|
|
} |
|
|
|
|
|
|
|
private func initialSetup() { |
|
|
|
|
|
|
|
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.stringRemovingComma() // send sAmt amount |
|
|
|
let reciepientAmount = reciepientAmount.stringRemovingComma() |
|
|
|
let recipientCurrency = self.resendInfoModel?.exchangeRate?.pCurrency |
|
|
|
let reciepientCountryId = self.resendInfoModel?.exchangeRate?.pCountryId |
|
|
|
let paymentMethod = self.requestModel?.autoDebitAccount?.type |
|
|
|
let paymentMethodId = self.resendInfoModel?.exchangeRate?.serviceType |
|
|
|
let payoutPartner = self.resendInfoModel?.exchangeRate?.payoutPartner |
|
|
|
let myUsername = Utility.getMyUserName() |
|
|
|
let bankId = self.resendInfoModel?.exchangeRate?.payoutAgent |
|
|
|
let reciepientCountryName = self.resendInfoModel?.exchangeRate?.pCountryName |
|
|
|
|
|
|
|
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 |
|
|
|
} |
|
|
|
self.exchangeRateModel?.calcBy = calcBy |
|
|
|
} |
|
|
|
|
|
|
|
func convertReciepient(model: ResendReceiver) -> Recipient { |
|
|
|
var reciepient = Recipient() |
|
|
|
reciepient.firstName = model.rFullName |
|
|
|
reciepient.recipientId = self.resendInfoModel?.remitDetial?.ReceiverId |
|
|
|
reciepient.reasonId = self.resendInfoModel?.remitDetial?.PurposeOfRemittance |
|
|
|
reciepient.relationId = self.resendInfoModel?.remitDetial?.RelWithSender |
|
|
|
reciepient.address = model.rAddress |
|
|
|
reciepient.country = model.rCountry |
|
|
|
reciepient.mobileNumber = model.rMobile |
|
|
|
return reciepient |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func convertModel() -> SendMoneyRequestModel { |
|
|
|
let model = SendMoneyRequestModel() |
|
|
|
self.exchangeRateModel?.calcBy = self.calcBy |
|
|
|
self.exchangeRateModel?.autodebitSendingAmount = self.senderTextField.text!.stringRemovingComma() |
|
|
|
model.exchangeRateDetail = self.exchangeRateModel |
|
|
|
model.autoDebitAccount = self.requestModel?.autoDebitAccount |
|
|
|
|
|
|
|
/* SendMoneyPayoutMode */ |
|
|
|
|
|
|
|
// "deliveryMethodId": model.paymemtMode?.id ?? "", |
|
|
|
// "payOutPartner": model.paymemtMode?.payoutPartner ?? "", |
|
|
|
// "ReceiverAccountNo": model.paymemtMode?.accountNumber ?? "", |
|
|
|
|
|
|
|
|
|
|
|
let paymentMode = SendMoneyPayoutMode() |
|
|
|
paymentMode.id = self.resendInfoModel?.remitDetial?.DeliveryMethodId |
|
|
|
paymentMode.payoutPartner = self.resendInfoModel?.remitDetial?.PayOutPartner |
|
|
|
paymentMode.accountNumber = self.resendInfoModel?.remitDetial?.ReceiverAccountNo |
|
|
|
paymentMode.mode = self.resendInfoModel?.receiver?.deliveryMethod |
|
|
|
model.paymemtMode = paymentMode |
|
|
|
|
|
|
|
|
|
|
|
/* SendMoneyBank */ |
|
|
|
// "pAgent": model.bank?.id ?? "", |
|
|
|
|
|
|
|
let bank = SendMoneyBank() |
|
|
|
bank.id = self.resendInfoModel?.remitDetial?.PAgent |
|
|
|
bank.name = self.requestModel?.transaction?.bankName |
|
|
|
model.bank = bank |
|
|
|
|
|
|
|
/* SendMoneyBankBranch */ |
|
|
|
// branch |
|
|
|
// "pBranch": model.branch?.id ?? "", |
|
|
|
let branch = SendMoneyBankBranch() |
|
|
|
branch.id = self.resendInfoModel?.remitDetial?.PBranch |
|
|
|
model.branch = branch |
|
|
|
return model |
|
|
|
} |
|
|
|
|
|
|
|
private func initialSetup() { |
|
|
|
|
|
|
|
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.stringRemovingComma() // send sAmt amount |
|
|
|
let reciepientAmount = reciepientAmount.stringRemovingComma() |
|
|
|
let recipientCurrency = self.resendInfoModel?.exchangeRate?.pCurrency |
|
|
|
let reciepientCountryId = self.resendInfoModel?.exchangeRate?.pCountryId |
|
|
|
let paymentMethod = self.requestModel?.autoDebitAccount?.type |
|
|
|
let paymentMethodId = self.resendInfoModel?.exchangeRate?.serviceType |
|
|
|
let payoutPartner = self.resendInfoModel?.exchangeRate?.payoutPartner |
|
|
|
let myUsername = Utility.getMyUserName() |
|
|
|
let bankId = self.resendInfoModel?.exchangeRate?.payoutAgent |
|
|
|
let reciepientCountryName = self.resendInfoModel?.exchangeRate?.pCountryName |
|
|
|
|
|
|
|
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 |
|
|
|
} |
|
|
|
self.exchangeRateModel?.calcBy = calcBy |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// MARK: ResendExchangeViewInterface |
|
|
|
extension ResendExchangeViewController: ResendExchangeViewInterface { |
|
|
|
func show(model: ResendDetail) { |
|
|
|
self.resendInfoModel = model |
|
|
|
self.calculateExchangeRate(senderAmount: self.senderTextField.text!, reciepientAmount: self.reciepientTextField.text!, calcBy: self.calcBy) |
|
|
|
} |
|
|
|
|
|
|
|
func showExchangeRate(error: String) { |
|
|
|
self.alert(message: error) |
|
|
|
func show(model: ResendDetail) { |
|
|
|
self.resendInfoModel = model |
|
|
|
self.calculateExchangeRate(senderAmount: self.senderTextField.text!, reciepientAmount: self.reciepientTextField.text!, calcBy: self.calcBy) |
|
|
|
} |
|
|
|
|
|
|
|
func showExchangeRate(error: String) { |
|
|
|
self.alert(message: error) |
|
|
|
} |
|
|
|
|
|
|
|
func show(error: String) { |
|
|
|
self.alert(message: error, title: nil) { |
|
|
|
self.navigationController?.popViewController(animated: true) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func show(error: String) { |
|
|
|
self.alert(message: error, title: nil) { |
|
|
|
self.navigationController?.popViewController(animated: true) |
|
|
|
} |
|
|
|
} |
|
|
|
func showLoading() { |
|
|
|
self.showProgressHud() |
|
|
|
} |
|
|
|
|
|
|
|
func showLoading() { |
|
|
|
self.showProgressHud() |
|
|
|
} |
|
|
|
func hideLoading() { |
|
|
|
self.hideProgressHud() |
|
|
|
} |
|
|
|
|
|
|
|
func hideLoading() { |
|
|
|
self.hideProgressHud() |
|
|
|
} |
|
|
|
|
|
|
|
func show(model: SendMoneyExchangeRateModel) { |
|
|
|
self.exchangeRateModel = model |
|
|
|
} |
|
|
|
func show(model: SendMoneyExchangeRateModel) { |
|
|
|
self.exchangeRateModel = model |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
extension ResendExchangeViewController: FetchSendMoneyExchangeRateService { |
|
|
|