Browse Source

both date picker configured

pull/1/head
gme_2 6 years ago
parent
commit
0795a4af39
  1. 3
      GMERemittance/Module/New Group/Kyc/Application Logic/Interactor/KycInteractor.swift
  2. 48
      GMERemittance/Module/New Group/kycForm2/User Interface/View/kycForm2.storyboard
  3. 50
      GMERemittance/Module/New Group/kycForm2/User Interface/View/kycForm2ViewController.swift

3
GMERemittance/Module/New Group/Kyc/Application Logic/Interactor/KycInteractor.swift

@ -61,7 +61,8 @@ class KycInteractor {
KycForm2FieldKeys.verificationId: model.verificationId,
KycForm2FieldKeys.verificationIdNumber: model.verificationIdNumber,
KycForm2FieldKeys.expiryDate: model.expiryDate,
KycForm2FieldKeys.sourceOfFund: model.sourceOfFund
KycForm2FieldKeys.sourceOfFund: model.sourceOfFund,
KycForm2FieldKeys.issueDate: model.issueDate
]
formDick.forEach({

48
GMERemittance/Module/New Group/kycForm2/User Interface/View/kycForm2.storyboard

@ -30,16 +30,16 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="1000"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xZ0-um-uue">
<rect key="frame" x="0.0" y="0.0" width="375" height="598"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="691"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IE0-Zq-eS2">
<rect key="frame" x="0.0" y="0.0" width="10" height="598"/>
<rect key="frame" x="0.0" y="0.0" width="10" height="691"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="anD-5Z-YFb">
<rect key="frame" x="10" y="0.0" width="355" height="598"/>
<rect key="frame" x="10" y="0.0" width="355" height="691"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Let’s get your bank connected" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="g52-Uu-7q2">
<rect key="frame" x="0.0" y="0.0" width="355" height="50"/>
@ -52,7 +52,7 @@
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="iYl-Ae-ZeD">
<rect key="frame" x="0.0" y="60" width="355" height="538"/>
<rect key="frame" x="0.0" y="60" width="355" height="631"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="Vkm-mw-jKY">
<rect key="frame" x="0.0" y="0.0" width="355" height="73"/>
@ -214,8 +214,40 @@
</textField>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="Q6K-dk-Fvm">
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="yM7-a3-ulY">
<rect key="frame" x="0.0" y="465" width="355" height="73"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Issue Date" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ixN-Jd-JNc">
<rect key="frame" x="0.0" y="0.0" width="355" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="B1B-Fp-bfK"/>
</constraints>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Error" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wxY-TQ-cBk">
<rect key="frame" x="0.0" y="15" width="355" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="xr8-Xa-e8c"/>
</constraints>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="12"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Select Expiry Date" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="kUi-PF-GWY">
<rect key="frame" x="0.0" y="30" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="zjl-jG-DW7"/>
</constraints>
<nil key="textColor"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="14"/>
<textInputTraits key="textInputTraits"/>
</textField>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="Q6K-dk-Fvm">
<rect key="frame" x="0.0" y="558" width="355" height="73"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Source of Fund" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wHY-Ry-2io">
<rect key="frame" x="0.0" y="0.0" width="355" height="15"/>
@ -251,7 +283,7 @@
</subviews>
</stackView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FYl-j0-qFF">
<rect key="frame" x="365" y="0.0" width="10" height="598"/>
<rect key="frame" x="365" y="0.0" width="10" height="691"/>
<constraints>
<constraint firstAttribute="width" constant="10" id="qJa-si-CvP"/>
</constraints>
@ -265,7 +297,7 @@
</constraints>
</stackView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="MY3-oE-Z4R">
<rect key="frame" x="87.5" y="648" width="200" height="50"/>
<rect key="frame" x="87.5" y="741" width="200" height="50"/>
<color key="backgroundColor" red="0.91372549020000005" green="0.2470588235" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="2gk-5O-4R1"/>
@ -314,6 +346,8 @@
<outlet property="bankTextField" destination="Set-eg-8lP" id="y3w-mI-9t5"/>
<outlet property="expiryDateErrorLabel" destination="1ib-sC-j3N" id="4Cg-Gz-1am"/>
<outlet property="expiryDateTextField" destination="Nrg-9j-ZFG" id="Z0E-Fz-fUU"/>
<outlet property="issueDateErrorLabel" destination="wxY-TQ-cBk" id="pAm-MP-AC5"/>
<outlet property="issueDateTextField" destination="kUi-PF-GWY" id="gSf-zN-hf6"/>
<outlet property="sourceOfFundErrorLabel" destination="lNc-Z7-jX6" id="Hld-MK-nnR"/>
<outlet property="sourceOfFundTextField" destination="gnX-qG-gpP" id="BwJ-Kl-Un7"/>
<outlet property="verificationIdErrorLabel" destination="xod-e9-MeD" id="KFG-YO-2vh"/>

50
GMERemittance/Module/New Group/kycForm2/User Interface/View/kycForm2ViewController.swift

@ -17,6 +17,7 @@ class KycForm2Model {
var verificationIdNumber = ""
var expiryDate = ""
var sourceOfFund = ""
var issueDate = ""
}
struct KycForm2FieldKeys {
@ -26,6 +27,7 @@ struct KycForm2FieldKeys {
static let verificationIdNumber = "verificationIdNumber"
static let expiryDate = "expiryDate"
static let sourceOfFund = "sourceOfFund"
static let issueDate = "issueDate"
}
class KycForm2ViewController: UIViewController {
@ -46,6 +48,7 @@ class KycForm2ViewController: UIViewController {
@IBOutlet weak var verificationIdNumberErrorLabel: UILabel!
@IBOutlet weak var expiryDateErrorLabel: UILabel!
@IBOutlet weak var sourceOfFundErrorLabel: UILabel!
@IBOutlet weak var issueDateErrorLabel: UILabel!
// textfields
@ -56,6 +59,7 @@ class KycForm2ViewController: UIViewController {
@IBOutlet weak var verificationIdNumberTextField: UITextField!
@IBOutlet weak var expiryDateTextField: UITextField!
@IBOutlet weak var sourceOfFundTextField: UITextField!
@IBOutlet weak var issueDateTextField: UITextField!
// MARK: Properties
@ -67,11 +71,17 @@ class KycForm2ViewController: UIViewController {
var errorLabelsDict: [String: UILabel] = [:]
var kycModel: KycModel?
var banks: [KeyValueModel]?
var delegate: KYCForm2Delegate?
var presenter: KycForm2ModuleInterface?
var continueActionInitiated = false
var kycForm2Model: KycForm2Model = KycForm2Model()
let expiaryDatePicker = UIDatePicker()
let issueDatePicker = UIDatePicker()
// MARK: VC's Life cycle
@ -109,6 +119,7 @@ class KycForm2ViewController: UIViewController {
hideErrorLabels()
setupErrorLabels()
setupErrorTextFields()
setupDatePicker()
}
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() {
[bankErrorLabel, accountNumberErrorLabel, verificationIdErrorLabel, verificationIdNumberErrorLabel, expiryDateErrorLabel, sourceOfFundErrorLabel].forEach({
[bankErrorLabel, accountNumberErrorLabel, verificationIdErrorLabel, verificationIdNumberErrorLabel, expiryDateErrorLabel, issueDateErrorLabel, sourceOfFundErrorLabel].forEach({
$0?.isHidden = true
})
}
private func setupErrorLabels() {
self.errorLabels = [bankErrorLabel, accountNumberErrorLabel, verificationIdErrorLabel, verificationIdNumberErrorLabel, expiryDateErrorLabel, sourceOfFundErrorLabel]
self.errorLabels = [bankErrorLabel, accountNumberErrorLabel, verificationIdErrorLabel, verificationIdNumberErrorLabel, expiryDateErrorLabel,issueDateErrorLabel, sourceOfFundErrorLabel]
self.errorLabelsDict =
[
@ -135,6 +173,7 @@ class KycForm2ViewController: UIViewController {
KycForm2FieldKeys.verificationIdNumber: self.verificationIdNumberErrorLabel,
KycForm2FieldKeys.expiryDate: self.expiryDateErrorLabel,
KycForm2FieldKeys.sourceOfFund: self.sourceOfFundErrorLabel,
KycForm2FieldKeys.issueDate: self.issueDateErrorLabel
]
}
@ -142,9 +181,12 @@ class KycForm2ViewController: UIViewController {
self.textfields = [bankTextField, accountNumberTextField, verificationIdTextField, verificationIdNumberTextField, expiryDateTextField, sourceOfFundTextField]
bankTextField.tag = 12
accountNumberTextField.tag = 12
accountNumberTextField.tag = 13
verificationIdNumberTextField.tag = 14
sourceOfFundTextField.tag = 15
expiryDateTextField.tag = 15
issueDateTextField.tag = 16
sourceOfFundTextField.tag = 17
self.errorTextFieldDict =

Loading…
Cancel
Save