|
@ -17,6 +17,7 @@ class KycForm2Model { |
|
|
var verificationIdNumber = "" |
|
|
var verificationIdNumber = "" |
|
|
var expiryDate = "" |
|
|
var expiryDate = "" |
|
|
var sourceOfFund = "" |
|
|
var sourceOfFund = "" |
|
|
|
|
|
var issueDate = "" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
struct KycForm2FieldKeys { |
|
|
struct KycForm2FieldKeys { |
|
@ -26,6 +27,7 @@ struct KycForm2FieldKeys { |
|
|
static let verificationIdNumber = "verificationIdNumber" |
|
|
static let verificationIdNumber = "verificationIdNumber" |
|
|
static let expiryDate = "expiryDate" |
|
|
static let expiryDate = "expiryDate" |
|
|
static let sourceOfFund = "sourceOfFund" |
|
|
static let sourceOfFund = "sourceOfFund" |
|
|
|
|
|
static let issueDate = "issueDate" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
class KycForm2ViewController: UIViewController { |
|
|
class KycForm2ViewController: UIViewController { |
|
@ -46,6 +48,7 @@ class KycForm2ViewController: UIViewController { |
|
|
@IBOutlet weak var verificationIdNumberErrorLabel: UILabel! |
|
|
@IBOutlet weak var verificationIdNumberErrorLabel: UILabel! |
|
|
@IBOutlet weak var expiryDateErrorLabel: UILabel! |
|
|
@IBOutlet weak var expiryDateErrorLabel: UILabel! |
|
|
@IBOutlet weak var sourceOfFundErrorLabel: UILabel! |
|
|
@IBOutlet weak var sourceOfFundErrorLabel: UILabel! |
|
|
|
|
|
@IBOutlet weak var issueDateErrorLabel: UILabel! |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// textfields |
|
|
// textfields |
|
@ -56,6 +59,7 @@ class KycForm2ViewController: UIViewController { |
|
|
@IBOutlet weak var verificationIdNumberTextField: UITextField! |
|
|
@IBOutlet weak var verificationIdNumberTextField: UITextField! |
|
|
@IBOutlet weak var expiryDateTextField: UITextField! |
|
|
@IBOutlet weak var expiryDateTextField: UITextField! |
|
|
@IBOutlet weak var sourceOfFundTextField: UITextField! |
|
|
@IBOutlet weak var sourceOfFundTextField: UITextField! |
|
|
|
|
|
@IBOutlet weak var issueDateTextField: UITextField! |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// MARK: Properties |
|
|
// MARK: Properties |
|
@ -67,11 +71,17 @@ class KycForm2ViewController: UIViewController { |
|
|
var errorLabelsDict: [String: UILabel] = [:] |
|
|
var errorLabelsDict: [String: UILabel] = [:] |
|
|
|
|
|
|
|
|
var kycModel: KycModel? |
|
|
var kycModel: KycModel? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var banks: [KeyValueModel]? |
|
|
|
|
|
|
|
|
var delegate: KYCForm2Delegate? |
|
|
var delegate: KYCForm2Delegate? |
|
|
var presenter: KycForm2ModuleInterface? |
|
|
var presenter: KycForm2ModuleInterface? |
|
|
|
|
|
|
|
|
var continueActionInitiated = false |
|
|
var continueActionInitiated = false |
|
|
var kycForm2Model: KycForm2Model = KycForm2Model() |
|
|
var kycForm2Model: KycForm2Model = KycForm2Model() |
|
|
|
|
|
let expiaryDatePicker = UIDatePicker() |
|
|
|
|
|
let issueDatePicker = UIDatePicker() |
|
|
|
|
|
|
|
|
// MARK: VC's Life cycle |
|
|
// MARK: VC's Life cycle |
|
|
|
|
|
|
|
@ -109,6 +119,7 @@ class KycForm2ViewController: UIViewController { |
|
|
hideErrorLabels() |
|
|
hideErrorLabels() |
|
|
setupErrorLabels() |
|
|
setupErrorLabels() |
|
|
setupErrorTextFields() |
|
|
setupErrorTextFields() |
|
|
|
|
|
setupDatePicker() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private func validate() { |
|
|
private func validate() { |
|
@ -117,15 +128,42 @@ class KycForm2ViewController: UIViewController { |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func setupDatePicker() { |
|
|
|
|
|
self.expiaryDatePicker.datePickerMode = .date |
|
|
|
|
|
self.expiryDateTextField.inputView = expiaryDatePicker |
|
|
|
|
|
expiaryDatePicker.minimumDate = Date() |
|
|
|
|
|
self.expiaryDatePicker.addTarget(self, action: #selector(handleExpiryDatePicker), for: .valueChanged) |
|
|
|
|
|
|
|
|
|
|
|
self.issueDatePicker.datePickerMode = .date |
|
|
|
|
|
self.issueDateTextField.inputView = issueDatePicker |
|
|
|
|
|
issueDatePicker.maximumDate = Date() |
|
|
|
|
|
self.issueDatePicker.addTarget(self, action: #selector(handleIssueDatePicker), for: .valueChanged) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@objc private func handleIssueDatePicker(sender: UIDatePicker) { |
|
|
|
|
|
let dateFormatter = DateFormatter() |
|
|
|
|
|
dateFormatter.dateFormat = "yyyy-MM-dd" |
|
|
|
|
|
self.issueDateTextField.text = dateFormatter.string(from: sender.date) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@objc private func handleExpiryDatePicker(sender: UIDatePicker) { |
|
|
|
|
|
let dateFormatter = DateFormatter() |
|
|
|
|
|
dateFormatter.dateFormat = "yyyy-MM-dd" |
|
|
|
|
|
self.expiryDateTextField.text = dateFormatter.string(from: sender.date) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private func hideErrorLabels() { |
|
|
private func hideErrorLabels() { |
|
|
[bankErrorLabel, accountNumberErrorLabel, verificationIdErrorLabel, verificationIdNumberErrorLabel, expiryDateErrorLabel, sourceOfFundErrorLabel].forEach({ |
|
|
|
|
|
|
|
|
[bankErrorLabel, accountNumberErrorLabel, verificationIdErrorLabel, verificationIdNumberErrorLabel, expiryDateErrorLabel, issueDateErrorLabel, sourceOfFundErrorLabel].forEach({ |
|
|
$0?.isHidden = true |
|
|
$0?.isHidden = true |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private func setupErrorLabels() { |
|
|
private func setupErrorLabels() { |
|
|
self.errorLabels = [bankErrorLabel, accountNumberErrorLabel, verificationIdErrorLabel, verificationIdNumberErrorLabel, expiryDateErrorLabel, sourceOfFundErrorLabel] |
|
|
|
|
|
|
|
|
self.errorLabels = [bankErrorLabel, accountNumberErrorLabel, verificationIdErrorLabel, verificationIdNumberErrorLabel, expiryDateErrorLabel,issueDateErrorLabel, sourceOfFundErrorLabel] |
|
|
|
|
|
|
|
|
self.errorLabelsDict = |
|
|
self.errorLabelsDict = |
|
|
[ |
|
|
[ |
|
@ -135,6 +173,7 @@ class KycForm2ViewController: UIViewController { |
|
|
KycForm2FieldKeys.verificationIdNumber: self.verificationIdNumberErrorLabel, |
|
|
KycForm2FieldKeys.verificationIdNumber: self.verificationIdNumberErrorLabel, |
|
|
KycForm2FieldKeys.expiryDate: self.expiryDateErrorLabel, |
|
|
KycForm2FieldKeys.expiryDate: self.expiryDateErrorLabel, |
|
|
KycForm2FieldKeys.sourceOfFund: self.sourceOfFundErrorLabel, |
|
|
KycForm2FieldKeys.sourceOfFund: self.sourceOfFundErrorLabel, |
|
|
|
|
|
KycForm2FieldKeys.issueDate: self.issueDateErrorLabel |
|
|
] |
|
|
] |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -142,9 +181,12 @@ class KycForm2ViewController: UIViewController { |
|
|
|
|
|
|
|
|
self.textfields = [bankTextField, accountNumberTextField, verificationIdTextField, verificationIdNumberTextField, expiryDateTextField, sourceOfFundTextField] |
|
|
self.textfields = [bankTextField, accountNumberTextField, verificationIdTextField, verificationIdNumberTextField, expiryDateTextField, sourceOfFundTextField] |
|
|
bankTextField.tag = 12 |
|
|
bankTextField.tag = 12 |
|
|
accountNumberTextField.tag = 12 |
|
|
|
|
|
|
|
|
accountNumberTextField.tag = 13 |
|
|
verificationIdNumberTextField.tag = 14 |
|
|
verificationIdNumberTextField.tag = 14 |
|
|
sourceOfFundTextField.tag = 15 |
|
|
|
|
|
|
|
|
expiryDateTextField.tag = 15 |
|
|
|
|
|
issueDateTextField.tag = 16 |
|
|
|
|
|
sourceOfFundTextField.tag = 17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.errorTextFieldDict = |
|
|
self.errorTextFieldDict = |
|
|