Browse Source

implement inbound transaction history & inbound receipt

pull/1/head
InKwon James Kim 5 years ago
parent
commit
08c540118c
  1. 108
      GME Remit.xcodeproj/project.pbxproj
  2. 5
      GME Remit/APIs/Router/APIRouter.swift
  3. 23
      GME Remit/Models/Response/TransactionModel.swift
  4. 3
      GME Remit/Modules/ManageAccountsModules/AutoDebitModules/AutoDebit/User Interface/View/AutoDebitViewController.swift
  5. 16
      GME Remit/Modules/ManageAccountsModules/InboundAccounts/User Interface/View/InboundAccounts.storyboard
  6. 2
      GME Remit/Modules/ManageAccountsModules/ManageAccountGroup/User Interface/View/ManageAccountGroupViewController.swift
  7. 14
      GME Remit/Modules/PowerCallModules/RechargePayment/User Interface/View/RechargePayment.storyboard
  8. 3
      GME Remit/Modules/RemittanceModules/InboundModules/AddInboundAccount/Application Logic/Model/PenneyTestRequest.swift
  9. 8
      GME Remit/Modules/RemittanceModules/InboundModules/AddInboundAccount/User Interface/Presenter/AddInboundAccountPresenter.swift
  10. 4
      GME Remit/Modules/RemittanceModules/InboundModules/AddInboundAccount/User Interface/View/AddInboundAccount.storyboard
  11. 3
      GME Remit/Modules/RemittanceModules/InboundModules/AddInboundAccount/User Interface/View/AddInboundAccountViewController.swift
  12. 10
      GME Remit/Modules/RemittanceModules/InboundModules/InboundPennyTestSubmit/User Interface/Presenter/InboundPennyTestSubmitPresenter.swift
  13. 9
      GME Remit/Modules/RemittanceModules/InboundModules/InboundPennyTestSubmit/User Interface/View/InboundPennyTestSubmitViewController.swift
  14. 1
      GME Remit/Modules/RemittanceModules/InboundModules/InboundPennyTestSubmit/User Interface/Wireframe/InboundPennyTestSubmitWireframe.swift
  15. 1
      GME Remit/Modules/RemittanceModules/InboundModules/InboundPennyTestSubmit/User Interface/Wireframe/InboundPennyTestSubmitWireframeInput.swift
  16. 38
      GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/Application Logic/Interactor/InboundReceiptInteractor.swift
  17. 16
      GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/Application Logic/Interactor/InboundReceiptInteractorIO.swift
  18. 13
      GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/Application Logic/Service/InboundReceiptService.swift
  19. 11
      GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/Application Logic/Service/InboundReceiptServiceType.swift
  20. 70
      GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/User Interface/Presenter/InboundReceiptPresenter.swift
  21. 632
      GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/User Interface/View/InboundReceipt.storyboard
  22. 180
      GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/User Interface/View/InboundReceiptViewController.swift
  23. 52
      GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/User Interface/Wireframe/InboundReceiptWireframe.swift
  24. 13
      GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/User Interface/Wireframe/InboundReceiptWireframeInput.swift
  25. 18
      GME Remit/Modules/RemittanceModules/OverseasModules/SendMoneyReceipt/User Interface/View/SendMoneyReceipt.storyboard
  26. 1
      GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/Module Interface/TransactionHistoryModuleInterface.swift
  27. 9
      GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/User Interface/Presenter/TransactionHistoryPresenter.swift
  28. 25
      GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/User Interface/View/Cell/InboundTransactionCell.swift
  29. 36
      GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/User Interface/View/TransactionHistory.storyboard
  30. 10
      GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/User Interface/View/TransactionHistoryViewController.swift
  31. 5
      GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/User Interface/Wireframe/TransactionHistoryWireframe.swift
  32. 2
      GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/User Interface/Wireframe/TransactionHistoryWireframeInput.swift
  33. BIN
      GME Remit/Supported Files/Assets.xcassets/bankCI/ibk.imageset/ibk.png

108
GME Remit.xcodeproj/project.pbxproj

@ -329,6 +329,15 @@
7383F43E22DF15B8003D6393 /* UserDefaultsWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7383F43D22DF15B8003D6393 /* UserDefaultsWrapper.swift */; }; 7383F43E22DF15B8003D6393 /* UserDefaultsWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7383F43D22DF15B8003D6393 /* UserDefaultsWrapper.swift */; };
7384B28222CB377300DD04D9 /* GMEAlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7384B28022CB377300DD04D9 /* GMEAlertViewController.swift */; }; 7384B28222CB377300DD04D9 /* GMEAlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7384B28022CB377300DD04D9 /* GMEAlertViewController.swift */; };
7384B28322CB377300DD04D9 /* GMEAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7384B28122CB377300DD04D9 /* GMEAlertViewController.xib */; }; 7384B28322CB377300DD04D9 /* GMEAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7384B28122CB377300DD04D9 /* GMEAlertViewController.xib */; };
738714B3237CE86E0038FCB1 /* InboundReceiptService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738714A5237CE86D0038FCB1 /* InboundReceiptService.swift */; };
738714B4237CE86E0038FCB1 /* InboundReceiptServiceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738714A6237CE86D0038FCB1 /* InboundReceiptServiceType.swift */; };
738714B5237CE86E0038FCB1 /* InboundReceiptInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738714A8237CE86D0038FCB1 /* InboundReceiptInteractor.swift */; };
738714B6237CE86E0038FCB1 /* InboundReceiptInteractorIO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738714A9237CE86D0038FCB1 /* InboundReceiptInteractorIO.swift */; };
738714B7237CE86E0038FCB1 /* InboundReceiptPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738714AC237CE86D0038FCB1 /* InboundReceiptPresenter.swift */; };
738714B8237CE86E0038FCB1 /* InboundReceiptWireframeInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738714AE237CE86D0038FCB1 /* InboundReceiptWireframeInput.swift */; };
738714B9237CE86E0038FCB1 /* InboundReceiptWireframe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738714AF237CE86D0038FCB1 /* InboundReceiptWireframe.swift */; };
738714BA237CE86E0038FCB1 /* InboundReceipt.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 738714B1237CE86D0038FCB1 /* InboundReceipt.storyboard */; };
738714BB237CE86E0038FCB1 /* InboundReceiptViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738714B2237CE86D0038FCB1 /* InboundReceiptViewController.swift */; };
7388821922CDF20F00592960 /* UITextField+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7388821822CDF20F00592960 /* UITextField+Ext.swift */; }; 7388821922CDF20F00592960 /* UITextField+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7388821822CDF20F00592960 /* UITextField+Ext.swift */; };
7388A6D822E17F9400A57891 /* CountryEnum.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7388A6D722E17F9400A57891 /* CountryEnum.swift */; }; 7388A6D822E17F9400A57891 /* CountryEnum.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7388A6D722E17F9400A57891 /* CountryEnum.swift */; };
7389600A22C2F208003FEA90 /* TablePresenterModuleInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73895FF722C2F208003FEA90 /* TablePresenterModuleInterface.swift */; }; 7389600A22C2F208003FEA90 /* TablePresenterModuleInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73895FF722C2F208003FEA90 /* TablePresenterModuleInterface.swift */; };
@ -2661,6 +2670,15 @@
7383F43D22DF15B8003D6393 /* UserDefaultsWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsWrapper.swift; sourceTree = "<group>"; }; 7383F43D22DF15B8003D6393 /* UserDefaultsWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsWrapper.swift; sourceTree = "<group>"; };
7384B28022CB377300DD04D9 /* GMEAlertViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GMEAlertViewController.swift; sourceTree = "<group>"; }; 7384B28022CB377300DD04D9 /* GMEAlertViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GMEAlertViewController.swift; sourceTree = "<group>"; };
7384B28122CB377300DD04D9 /* GMEAlertViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GMEAlertViewController.xib; sourceTree = "<group>"; }; 7384B28122CB377300DD04D9 /* GMEAlertViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GMEAlertViewController.xib; sourceTree = "<group>"; };
738714A5237CE86D0038FCB1 /* InboundReceiptService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InboundReceiptService.swift; sourceTree = "<group>"; };
738714A6237CE86D0038FCB1 /* InboundReceiptServiceType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InboundReceiptServiceType.swift; sourceTree = "<group>"; };
738714A8237CE86D0038FCB1 /* InboundReceiptInteractor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InboundReceiptInteractor.swift; sourceTree = "<group>"; };
738714A9237CE86D0038FCB1 /* InboundReceiptInteractorIO.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InboundReceiptInteractorIO.swift; sourceTree = "<group>"; };
738714AC237CE86D0038FCB1 /* InboundReceiptPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InboundReceiptPresenter.swift; sourceTree = "<group>"; };
738714AE237CE86D0038FCB1 /* InboundReceiptWireframeInput.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InboundReceiptWireframeInput.swift; sourceTree = "<group>"; };
738714AF237CE86D0038FCB1 /* InboundReceiptWireframe.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InboundReceiptWireframe.swift; sourceTree = "<group>"; };
738714B1237CE86D0038FCB1 /* InboundReceipt.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = InboundReceipt.storyboard; sourceTree = "<group>"; };
738714B2237CE86D0038FCB1 /* InboundReceiptViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InboundReceiptViewController.swift; sourceTree = "<group>"; };
7388821822CDF20F00592960 /* UITextField+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITextField+Ext.swift"; sourceTree = "<group>"; }; 7388821822CDF20F00592960 /* UITextField+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITextField+Ext.swift"; sourceTree = "<group>"; };
7388A6D722E17F9400A57891 /* CountryEnum.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CountryEnum.swift; sourceTree = "<group>"; }; 7388A6D722E17F9400A57891 /* CountryEnum.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CountryEnum.swift; sourceTree = "<group>"; };
73895FF722C2F208003FEA90 /* TablePresenterModuleInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TablePresenterModuleInterface.swift; sourceTree = "<group>"; }; 73895FF722C2F208003FEA90 /* TablePresenterModuleInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TablePresenterModuleInterface.swift; sourceTree = "<group>"; };
@ -6806,6 +6824,86 @@
path = GMEAlert; path = GMEAlert;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
738714A1237CE86D0038FCB1 /* InboundReceipt */ = {
isa = PBXGroup;
children = (
738714A2237CE86D0038FCB1 /* Application Logic */,
738714AA237CE86D0038FCB1 /* User Interface */,
);
path = InboundReceipt;
sourceTree = "<group>";
};
738714A2237CE86D0038FCB1 /* Application Logic */ = {
isa = PBXGroup;
children = (
738714A3237CE86D0038FCB1 /* Model */,
738714A4237CE86D0038FCB1 /* Service */,
738714A7237CE86D0038FCB1 /* Interactor */,
);
path = "Application Logic";
sourceTree = "<group>";
};
738714A3237CE86D0038FCB1 /* Model */ = {
isa = PBXGroup;
children = (
);
path = Model;
sourceTree = "<group>";
};
738714A4237CE86D0038FCB1 /* Service */ = {
isa = PBXGroup;
children = (
738714A5237CE86D0038FCB1 /* InboundReceiptService.swift */,
738714A6237CE86D0038FCB1 /* InboundReceiptServiceType.swift */,
);
path = Service;
sourceTree = "<group>";
};
738714A7237CE86D0038FCB1 /* Interactor */ = {
isa = PBXGroup;
children = (
738714A8237CE86D0038FCB1 /* InboundReceiptInteractor.swift */,
738714A9237CE86D0038FCB1 /* InboundReceiptInteractorIO.swift */,
);
path = Interactor;
sourceTree = "<group>";
};
738714AA237CE86D0038FCB1 /* User Interface */ = {
isa = PBXGroup;
children = (
738714AB237CE86D0038FCB1 /* Presenter */,
738714AD237CE86D0038FCB1 /* Wireframe */,
738714B0237CE86D0038FCB1 /* View */,
);
path = "User Interface";
sourceTree = "<group>";
};
738714AB237CE86D0038FCB1 /* Presenter */ = {
isa = PBXGroup;
children = (
738714AC237CE86D0038FCB1 /* InboundReceiptPresenter.swift */,
);
path = Presenter;
sourceTree = "<group>";
};
738714AD237CE86D0038FCB1 /* Wireframe */ = {
isa = PBXGroup;
children = (
738714AE237CE86D0038FCB1 /* InboundReceiptWireframeInput.swift */,
738714AF237CE86D0038FCB1 /* InboundReceiptWireframe.swift */,
);
path = Wireframe;
sourceTree = "<group>";
};
738714B0237CE86D0038FCB1 /* View */ = {
isa = PBXGroup;
children = (
738714B1237CE86D0038FCB1 /* InboundReceipt.storyboard */,
738714B2237CE86D0038FCB1 /* InboundReceiptViewController.swift */,
);
path = View;
sourceTree = "<group>";
};
73895FF522C2F208003FEA90 /* TablePresenter */ = { 73895FF522C2F208003FEA90 /* TablePresenter */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -6948,6 +7046,7 @@
7390459E2378FC5A00CD5D8A /* InboundModules */ = { 7390459E2378FC5A00CD5D8A /* InboundModules */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
738714A1237CE86D0038FCB1 /* InboundReceipt */,
73911167237AA3C300697D27 /* InboundPennyTestSubmit */, 73911167237AA3C300697D27 /* InboundPennyTestSubmit */,
739045A12378FC9400CD5D8A /* AddInboundAccount */, 739045A12378FC9400CD5D8A /* AddInboundAccount */,
); );
@ -13163,6 +13262,7 @@
D93C26BC22000D630079BF03 /* iPhone_transkey_landscape_alnum_key_0.png in Resources */, D93C26BC22000D630079BF03 /* iPhone_transkey_landscape_alnum_key_0.png in Resources */,
D93C2BE222000D660079BF03 /* transkey_input_cap_17.png in Resources */, D93C2BE222000D660079BF03 /* transkey_input_cap_17.png in Resources */,
D93C2A9722000D650079BF03 /* iPad_transkey_number_cmd_2_2_mongolian_down.png in Resources */, D93C2A9722000D650079BF03 /* iPad_transkey_number_cmd_2_2_mongolian_down.png in Resources */,
738714BA237CE86E0038FCB1 /* InboundReceipt.storyboard in Resources */,
D93C2A4E22000D650079BF03 /* iPad_transkey_number_cmd_2_english.png in Resources */, D93C2A4E22000D650079BF03 /* iPad_transkey_number_cmd_2_english.png in Resources */,
730D78BF227A94F2007E517E /* SearchAddress.storyboard in Resources */, 730D78BF227A94F2007E517E /* SearchAddress.storyboard in Resources */,
D93C280922000D640079BF03 /* iPad_transkey_landscape_alnum_sym_9.png in Resources */, D93C280922000D640079BF03 /* iPad_transkey_landscape_alnum_sym_9.png in Resources */,
@ -15061,6 +15161,7 @@
73B4C8A522A5F1DE0078D495 /* CouponContainer.swift in Sources */, 73B4C8A522A5F1DE0078D495 /* CouponContainer.swift in Sources */,
73FE883C228A4A8C00A5EB56 /* OrderHistoryPresenter.swift in Sources */, 73FE883C228A4A8C00A5EB56 /* OrderHistoryPresenter.swift in Sources */,
D9B7ADF42130048E009B0564 /* ExchangeRatesInteractor.swift in Sources */, D9B7ADF42130048E009B0564 /* ExchangeRatesInteractor.swift in Sources */,
738714B8237CE86E0038FCB1 /* InboundReceiptWireframeInput.swift in Sources */,
73BCCDD5228993040057B161 /* RewardGroupWireframeInput.swift in Sources */, 73BCCDD5228993040057B161 /* RewardGroupWireframeInput.swift in Sources */,
730197A022535135001954AB /* kycForm1ViewController.swift in Sources */, 730197A022535135001954AB /* kycForm1ViewController.swift in Sources */,
73911164237A86D500697D27 /* PenneyTestStartResponse.swift in Sources */, 73911164237A86D500697D27 /* PenneyTestStartResponse.swift in Sources */,
@ -15332,6 +15433,7 @@
D95B5E3A21311057000C0B33 /* GmeContactsService.swift in Sources */, D95B5E3A21311057000C0B33 /* GmeContactsService.swift in Sources */,
D95B5E3F21311057000C0B33 /* GmeContactsWireframeInput.swift in Sources */, D95B5E3F21311057000C0B33 /* GmeContactsWireframeInput.swift in Sources */,
736E321A230A3CC1005799AA /* UIDevice+Ext.swift in Sources */, 736E321A230A3CC1005799AA /* UIDevice+Ext.swift in Sources */,
738714B5237CE86E0038FCB1 /* InboundReceiptInteractor.swift in Sources */,
D922D9692135145F00D43053 /* SendMoneyParentWireframeInput.swift in Sources */, D922D9692135145F00D43053 /* SendMoneyParentWireframeInput.swift in Sources */,
D946719821426DFB003924DB /* LoginInteractor.swift in Sources */, D946719821426DFB003924DB /* LoginInteractor.swift in Sources */,
04546C4120329A36007EFE15 /* AboutGMEViewController.swift in Sources */, 04546C4120329A36007EFE15 /* AboutGMEViewController.swift in Sources */,
@ -15341,12 +15443,14 @@
733A3B9723554DAF00E6B87E /* RechargePaymentService.swift in Sources */, 733A3B9723554DAF00E6B87E /* RechargePaymentService.swift in Sources */,
730D78C0227A94F2007E517E /* SearchAddressViewController.swift in Sources */, 730D78C0227A94F2007E517E /* SearchAddressViewController.swift in Sources */,
738FD48C2303E157008B144D /* FieldModel.swift in Sources */, 738FD48C2303E157008B144D /* FieldModel.swift in Sources */,
738714B9237CE86E0038FCB1 /* InboundReceiptWireframe.swift in Sources */,
732D17972297899400ACEBF1 /* HotLineCell.swift in Sources */, 732D17972297899400ACEBF1 /* HotLineCell.swift in Sources */,
73549BB2236FDD5600AD75D2 /* RechargeHistoryServiceType.swift in Sources */, 73549BB2236FDD5600AD75D2 /* RechargeHistoryServiceType.swift in Sources */,
73AEFF762334A13100A967FB /* TransactionHistoryGroupWireframeInputOutput.swift in Sources */, 73AEFF762334A13100A967FB /* TransactionHistoryGroupWireframeInputOutput.swift in Sources */,
739045D7237921D500CD5D8A /* ManageAccountGroupInteractorIO.swift in Sources */, 739045D7237921D500CD5D8A /* ManageAccountGroupInteractorIO.swift in Sources */,
734BF6882353F7D8004E8D60 /* PhoneCardRechargeWireframeInputOutput.swift in Sources */, 734BF6882353F7D8004E8D60 /* PhoneCardRechargeWireframeInputOutput.swift in Sources */,
73A621642330AD20000FFB5B /* RecentHistoriesPresenter.swift in Sources */, 73A621642330AD20000FFB5B /* RecentHistoriesPresenter.swift in Sources */,
738714B3237CE86E0038FCB1 /* InboundReceiptService.swift in Sources */,
73210DA722FBE73100715D6C /* RecipientsWireframe.swift in Sources */, 73210DA722FBE73100715D6C /* RecipientsWireframe.swift in Sources */,
BE74AFD1227C8FF200F05CE7 /* AutoDebitViewInterface.swift in Sources */, BE74AFD1227C8FF200F05CE7 /* AutoDebitViewInterface.swift in Sources */,
734DD31C2366DA2700BFA7EE /* CheckMark.swift in Sources */, 734DD31C2366DA2700BFA7EE /* CheckMark.swift in Sources */,
@ -15431,6 +15535,7 @@
733A3B9F23554DAF00E6B87E /* RechargePaymentViewController.swift in Sources */, 733A3B9F23554DAF00E6B87E /* RechargePaymentViewController.swift in Sources */,
734BF6842353F7D8004E8D60 /* PhoneCardRechargeInteractor.swift in Sources */, 734BF6842353F7D8004E8D60 /* PhoneCardRechargeInteractor.swift in Sources */,
7372430E235EBABE00FA47DD /* DetailPlanInformation.swift in Sources */, 7372430E235EBABE00FA47DD /* DetailPlanInformation.swift in Sources */,
738714B6237CE86E0038FCB1 /* InboundReceiptInteractorIO.swift in Sources */,
043770EF21AD04240005B22D /* PennyTestViewInterface.swift in Sources */, 043770EF21AD04240005B22D /* PennyTestViewInterface.swift in Sources */,
73071AC62296CF9B008840FD /* HotLineServiceType.swift in Sources */, 73071AC62296CF9B008840FD /* HotLineServiceType.swift in Sources */,
734BF6852353F7D8004E8D60 /* PhoneCardRechargeInteractorIO.swift in Sources */, 734BF6852353F7D8004E8D60 /* PhoneCardRechargeInteractorIO.swift in Sources */,
@ -15470,6 +15575,7 @@
733E8F8D23580BDF0050E499 /* RechargeReceiptService.swift in Sources */, 733E8F8D23580BDF0050E499 /* RechargeReceiptService.swift in Sources */,
730D7886227A94E1007E517E /* RedeemViewController.swift in Sources */, 730D7886227A94E1007E517E /* RedeemViewController.swift in Sources */,
D97785A3215DC55F00754079 /* TransactionHistoryWireframeInput.swift in Sources */, D97785A3215DC55F00754079 /* TransactionHistoryWireframeInput.swift in Sources */,
738714B7237CE86E0038FCB1 /* InboundReceiptPresenter.swift in Sources */,
7383F43622DEB864003D6393 /* GMEDB.swift in Sources */, 7383F43622DEB864003D6393 /* GMEDB.swift in Sources */,
73A6216A2330AD20000FFB5B /* RecentHistoriesViewController.swift in Sources */, 73A6216A2330AD20000FFB5B /* RecentHistoriesViewController.swift in Sources */,
04E36E2021AE585200783685 /* PennyTestSubmitWireframeInput.swift in Sources */, 04E36E2021AE585200783685 /* PennyTestSubmitWireframeInput.swift in Sources */,
@ -15520,6 +15626,7 @@
D9380D2D2165A2ED00E45156 /* ProfileViewController.swift in Sources */, D9380D2D2165A2ED00E45156 /* ProfileViewController.swift in Sources */,
D945F122213E1D5100A24824 /* SendMoneyReceiptPresenter.swift in Sources */, D945F122213E1D5100A24824 /* SendMoneyReceiptPresenter.swift in Sources */,
D92B802A2140C3CB00A25B26 /* MainPresenter.swift in Sources */, D92B802A2140C3CB00A25B26 /* MainPresenter.swift in Sources */,
738714B4237CE86E0038FCB1 /* InboundReceiptServiceType.swift in Sources */,
D946719721426DFB003924DB /* LoginServiceType.swift in Sources */, D946719721426DFB003924DB /* LoginServiceType.swift in Sources */,
D9DC107821639078008F3C51 /* MessageComposeModuleInterface.swift in Sources */, D9DC107821639078008F3C51 /* MessageComposeModuleInterface.swift in Sources */,
D9DC107E21639078008F3C51 /* MessageComposeWireframeInput.swift in Sources */, D9DC107E21639078008F3C51 /* MessageComposeWireframeInput.swift in Sources */,
@ -15551,6 +15658,7 @@
D95B7047213FB5F10053CC3D /* WebLinksViewController.swift in Sources */, D95B7047213FB5F10053CC3D /* WebLinksViewController.swift in Sources */,
73071AAB2296BE6C008840FD /* HotLine.swift in Sources */, 73071AAB2296BE6C008840FD /* HotLine.swift in Sources */,
73071AC82296CF9B008840FD /* HotLineInteractor.swift in Sources */, 73071AC82296CF9B008840FD /* HotLineInteractor.swift in Sources */,
738714BB237CE86E0038FCB1 /* InboundReceiptViewController.swift in Sources */,
D92E656A222620A0004D1B3D /* SendMoneyCodeInteractorIO.swift in Sources */, D92E656A222620A0004D1B3D /* SendMoneyCodeInteractorIO.swift in Sources */,
73168A2322F3D01A00878038 /* TablePresenterProtocol.swift in Sources */, 73168A2322F3D01A00878038 /* TablePresenterProtocol.swift in Sources */,
733A3B8223554AC100E6B87E /* RechargeModel.swift in Sources */, 733A3B8223554AC100E6B87E /* RechargeModel.swift in Sources */,

5
GME Remit/APIs/Router/APIRouter.swift

@ -481,7 +481,7 @@ extension APIRouter {
return "\(baseUrl)/inbound/mobile/bankaccounts/\(senderId)" return "\(baseUrl)/inbound/mobile/bankaccounts/\(senderId)"
case .fetchInboundTransactionHistory: case .fetchInboundTransactionHistory:
let senderId = GMEDB.shared.user.string(.senderId) ?? "" let senderId = GMEDB.shared.user.string(.senderId) ?? ""
return "\(baseUrl)/inbound/mobile/transHistory/\(senderId)"
return "\(baseUrl)/inbound/mobile/tranHistory/\(senderId)"
} }
} }
} }
@ -795,7 +795,8 @@ extension APIRouter {
case .penneyTestStart(let model, _): case .penneyTestStart(let model, _):
return [ return [
"KftcID": model.kftcID ?? "",
"accountID": model.accountID ?? "",
"accountType": model.accountType ?? "",
"BankCode": model.bank.bankCode ?? "", "BankCode": model.bank.bankCode ?? "",
"AccountNo": model.account "AccountNo": model.account
] ]

23
GME Remit/Models/Response/TransactionModel.swift

@ -41,6 +41,18 @@ class TransactionModel: Mappable {
var sendDate: String? var sendDate: String?
var paidDate: String? var paidDate: String?
// Inbound
var inboundStatus: String?
var inboundReceivedAmount: String?
var inboundServiceFee: String?
var inboundBankCode: String?
var inboundAccountNo: String?
var inboundBankName: String?
var inboundTranDate: String?
var inboundSenderName: String?
var inboundMobileNo: String?
var inboundControlNo: String?
required init?(map: Map) { required init?(map: Map) {
} }
@ -57,5 +69,16 @@ class TransactionModel: Mappable {
payOutMode <- map["PayoutMode"] payOutMode <- map["PayoutMode"]
sendDate <- map["SendDate"] sendDate <- map["SendDate"]
paidDate <- map["PaidDate"] paidDate <- map["PaidDate"]
inboundStatus <- map["status"]
inboundReceivedAmount <- map["receivedAmount"]
inboundServiceFee <- map["serviceFee"]
inboundBankCode <- map["bankCode"]
inboundAccountNo <- map["accountNo"]
inboundBankName <- map["bank"]
inboundTranDate <- map["tranDate"]
inboundSenderName <- map["senderName"]
inboundMobileNo <- map["MobileNo"]
inboundControlNo <- map["controlNo"]
} }
} }

3
GME Remit/Modules/ManageAccountsModules/AutoDebitModules/AutoDebit/User Interface/View/AutoDebitViewController.swift

@ -275,7 +275,8 @@ extension AutoDebitViewController: AutoDebitTableViewCellDelegate {
let bank = BankInformation(bankCode: model?.bankCode, bankName: model?.bankName) let bank = BankInformation(bankCode: model?.bankCode, bankName: model?.bankName)
let model = PenneyTestRequest( let model = PenneyTestRequest(
kftcID: model?.kftcAccountId,
accountID: model?.kftcAccountId,
accountType: "autodebit",
bank: bank, bank: bank,
account: model?.accountNumMasked ?? "" account: model?.accountNumMasked ?? ""
) )

16
GME Remit/Modules/ManageAccountsModules/InboundAccounts/User Interface/View/InboundAccounts.storyboard

@ -156,17 +156,24 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bmT-u8-mfw"> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bmT-u8-mfw">
<rect key="frame" x="0.0" y="617" width="375" height="50"/> <rect key="frame" x="0.0" y="617" width="375" height="50"/>
<subviews> <subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="K0R-cW-h4c">
<rect key="frame" x="0.0" y="0.0" width="375" height="0.5"/>
<color key="backgroundColor" name="ThemeSeparate"/>
<constraints>
<constraint firstAttribute="height" constant="0.5" id="1jk-gL-GQS"/>
</constraints>
</view>
<stackView opaque="NO" contentMode="scaleToFill" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="9ak-ro-a9Y"> <stackView opaque="NO" contentMode="scaleToFill" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="9ak-ro-a9Y">
<rect key="frame" x="10" y="10" width="355" height="30"/> <rect key="frame" x="10" y="10" width="355" height="30"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aWf-wz-9Cf"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aWf-wz-9Cf">
<rect key="frame" x="0.0" y="0.0" width="230" height="30"/>
<rect key="frame" x="0.0" y="0.0" width="228" height="30"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/> <fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/> <nil key="textColor"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<stackView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="LmG-ZD-fLc"> <stackView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="LmG-ZD-fLc">
<rect key="frame" x="240" y="0.0" width="115" height="30"/>
<rect key="frame" x="238" y="0.0" width="117" height="30"/>
<subviews> <subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_warning" translatesAutoresizingMaskIntoConstraints="NO" id="HkK-bt-2he"> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_warning" translatesAutoresizingMaskIntoConstraints="NO" id="HkK-bt-2he">
<rect key="frame" x="0.0" y="0.0" width="30" height="30"/> <rect key="frame" x="0.0" y="0.0" width="30" height="30"/>
@ -177,7 +184,7 @@
</constraints> </constraints>
</imageView> </imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="253" text="Waiting verified" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="UAc-fD-iht"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="253" text="Waiting verified" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="UAc-fD-iht">
<rect key="frame" x="35" y="0.0" width="80" height="30"/>
<rect key="frame" x="35" y="0.0" width="82" height="30"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="12"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="12"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
@ -191,8 +198,11 @@
<constraints> <constraints>
<constraint firstAttribute="trailing" secondItem="9ak-ro-a9Y" secondAttribute="trailing" constant="10" id="3Jy-1h-dqJ"/> <constraint firstAttribute="trailing" secondItem="9ak-ro-a9Y" secondAttribute="trailing" constant="10" id="3Jy-1h-dqJ"/>
<constraint firstItem="9ak-ro-a9Y" firstAttribute="leading" secondItem="bmT-u8-mfw" secondAttribute="leading" constant="10" id="ASw-fl-nQd"/> <constraint firstItem="9ak-ro-a9Y" firstAttribute="leading" secondItem="bmT-u8-mfw" secondAttribute="leading" constant="10" id="ASw-fl-nQd"/>
<constraint firstItem="K0R-cW-h4c" firstAttribute="leading" secondItem="bmT-u8-mfw" secondAttribute="leading" id="Jyn-3b-MSd"/>
<constraint firstItem="9ak-ro-a9Y" firstAttribute="top" secondItem="bmT-u8-mfw" secondAttribute="top" constant="10" id="Sj1-fm-NRD"/> <constraint firstItem="9ak-ro-a9Y" firstAttribute="top" secondItem="bmT-u8-mfw" secondAttribute="top" constant="10" id="Sj1-fm-NRD"/>
<constraint firstAttribute="bottom" secondItem="9ak-ro-a9Y" secondAttribute="bottom" constant="10" id="rM6-n9-bsq"/> <constraint firstAttribute="bottom" secondItem="9ak-ro-a9Y" secondAttribute="bottom" constant="10" id="rM6-n9-bsq"/>
<constraint firstAttribute="trailing" secondItem="K0R-cW-h4c" secondAttribute="trailing" id="wlz-tg-pQT"/>
<constraint firstItem="K0R-cW-h4c" firstAttribute="top" secondItem="bmT-u8-mfw" secondAttribute="top" id="ybL-7X-3Vu"/>
</constraints> </constraints>
</view> </view>
</subviews> </subviews>

2
GME Remit/Modules/ManageAccountsModules/ManageAccountGroup/User Interface/View/ManageAccountGroupViewController.swift

@ -29,10 +29,12 @@ class ManageAccountGroupViewController: ButtonBarPagerTabStripViewController {
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
title = "Manage Accounts"
} }
override func viewWillDisappear(_ animated: Bool) { override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated) super.viewWillDisappear(animated)
title = ""
} }
override func viewControllers( override func viewControllers(

14
GME Remit/Modules/PowerCallModules/RechargePayment/User Interface/View/RechargePayment.storyboard

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15400" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina4_0" orientation="portrait" appearance="light"/> <device id="retina4_0" orientation="portrait" appearance="light"/>
<dependencies> <dependencies>
<deployment identifier="iOS"/> <deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15404"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15509"/>
<capability name="Named colors" minToolsVersion="9.0"/> <capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/> <capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@ -285,19 +285,19 @@ Balance</string>
<image name="creditCard" width="24" height="24"/> <image name="creditCard" width="24" height="24"/>
<image name="ic_cancel" width="12" height="12"/> <image name="ic_cancel" width="12" height="12"/>
<namedColor name="ThemeBlack"> <namedColor name="ThemeBlack">
<color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</namedColor> </namedColor>
<namedColor name="ThemeMainBackground"> <namedColor name="ThemeMainBackground">
<color red="0.097999997437000275" green="0.097999997437000275" blue="0.097999997437000275" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor> </namedColor>
<namedColor name="ThemeRed"> <namedColor name="ThemeRed">
<color red="1" green="0.15299999713897705" blue="0.15299999713897705" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color red="0.92900002002716064" green="0.10599999874830246" blue="0.14100000262260437" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor> </namedColor>
<namedColor name="ThemeSeparate"> <namedColor name="ThemeSeparate">
<color white="0.5" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color red="0.82400000095367432" green="0.82400000095367432" blue="0.82400000095367432" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor> </namedColor>
<namedColor name="ThemeText"> <namedColor name="ThemeText">
<color white="0.80299997329711914" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color red="0.28999999165534973" green="0.28999999165534973" blue="0.28999999165534973" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor> </namedColor>
</resources> </resources>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>

3
GME Remit/Modules/RemittanceModules/InboundModules/AddInboundAccount/Application Logic/Model/PenneyTestRequest.swift

@ -7,7 +7,8 @@
// //
struct PenneyTestRequest { struct PenneyTestRequest {
var kftcID: String?
var accountID: String?
var accountType: String?
let bank: BankInformation let bank: BankInformation
let account: String let account: String
} }

8
GME Remit/Modules/RemittanceModules/InboundModules/AddInboundAccount/User Interface/Presenter/AddInboundAccountPresenter.swift

@ -45,11 +45,16 @@ class AddInboundAccountPresenter: ViewModelType {
}).disposed(by: disposeBag) }).disposed(by: disposeBag)
let merged = Driver.combineLatest(input.selectedBank, input.account) let merged = Driver.combineLatest(input.selectedBank, input.account)
.map {(bank, account) -> PenneyTestRequest? in
.map {[weak self] (bank, account) -> PenneyTestRequest? in
guard let bank = bank, !account.isEmpty && account.count > 9 else { return nil } guard let bank = bank, !account.isEmpty && account.count > 9 else { return nil }
guard let model = self?.penneyTestModel else {
return PenneyTestRequest(bank: bank, account: account) return PenneyTestRequest(bank: bank, account: account)
} }
return model
}
input.addTap.withLatestFrom(merged) {$1} input.addTap.withLatestFrom(merged) {$1}
.drive(onNext: {[weak self] in .drive(onNext: {[weak self] in
guard let model = $0 else { return } guard let model = $0 else { return }
@ -73,6 +78,7 @@ extension AddInboundAccountPresenter: AddInboundAccountInteractorOutput {
func setModel(with selectedPenneyTestModel: PenneyTestRequest?, banks: [BankInformation]) { func setModel(with selectedPenneyTestModel: PenneyTestRequest?, banks: [BankInformation]) {
progressLinker.onNext(false) progressLinker.onNext(false)
self.banks.onNext(banks) self.banks.onNext(banks)
self.penneyTestModel = selectedPenneyTestModel
self.selectedPenneyTestModel.onNext(selectedPenneyTestModel) self.selectedPenneyTestModel.onNext(selectedPenneyTestModel)
} }

4
GME Remit/Modules/RemittanceModules/InboundModules/AddInboundAccount/User Interface/View/AddInboundAccount.storyboard

@ -28,8 +28,8 @@
<view opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KYQ-fd-fcw"> <view opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KYQ-fd-fcw">
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/> <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Add Deposit Account" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nAr-xe-D9J">
<rect key="frame" x="116" y="13.5" width="143.5" height="17.5"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Add Inbound Account" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nAr-xe-D9J">
<rect key="frame" x="114" y="13.5" width="147" height="17.5"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="15"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="15"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>

3
GME Remit/Modules/RemittanceModules/InboundModules/AddInboundAccount/User Interface/View/AddInboundAccountViewController.swift

@ -122,6 +122,9 @@ extension AddInboundAccountViewController {
self?.bankTextField.didSelect(item: model.bank) self?.bankTextField.didSelect(item: model.bank)
self?.accountTextField.text = model.account self?.accountTextField.text = model.account
self?.accountTextField.sendActions(for: .editingChanged) self?.accountTextField.sendActions(for: .editingChanged)
self?.bankTextField.isEnabled = false
self?.accountTextField.isEnabled = false
}).disposed(by: disposeBag) }).disposed(by: disposeBag)
output.isEnable.map {[weak self] isEnable -> Bool in output.isEnable.map {[weak self] isEnable -> Bool in

10
GME Remit/Modules/RemittanceModules/InboundModules/InboundPennyTestSubmit/User Interface/Presenter/InboundPennyTestSubmitPresenter.swift

@ -26,6 +26,7 @@ class InboundPennyTestSubmitPresenter: ViewModelType {
let isEnable: Driver<Bool> let isEnable: Driver<Bool>
let model: Driver<PenneyTestRequest> let model: Driver<PenneyTestRequest>
let resendMessage: Driver<String> let resendMessage: Driver<String>
let success: Driver<Void>
} }
private let disposeBag = DisposeBag() private let disposeBag = DisposeBag()
@ -33,8 +34,8 @@ class InboundPennyTestSubmitPresenter: ViewModelType {
private let progressLinker = PublishSubject<Bool>() private let progressLinker = PublishSubject<Bool>()
private let errorLinker = PublishSubject<Error>() private let errorLinker = PublishSubject<Error>()
private let message = PublishSubject<String>() private let message = PublishSubject<String>()
private var model = PublishSubject<PenneyTestRequest>()
private let model = PublishSubject<PenneyTestRequest>()
private let success = PublishSubject<Void>()
func transform(input: Input) -> Output { func transform(input: Input) -> Output {
input.viewWillAppear.drive(onNext: {[weak self] in input.viewWillAppear.drive(onNext: {[weak self] in
self?.interactor?.fetchData() self?.interactor?.fetchData()
@ -63,7 +64,8 @@ class InboundPennyTestSubmitPresenter: ViewModelType {
isProgress: progressLinker.asDriverOnErrorJustComplete(), isProgress: progressLinker.asDriverOnErrorJustComplete(),
isEnable: input.code.map {$0.count == 4}, isEnable: input.code.map {$0.count == 4},
model: model.asDriverOnErrorJustComplete(), model: model.asDriverOnErrorJustComplete(),
resendMessage: message.asDriverOnErrorJustComplete()
resendMessage: message.asDriverOnErrorJustComplete(),
success: success.asDriverOnErrorJustComplete()
) )
} }
} }
@ -81,7 +83,7 @@ extension InboundPennyTestSubmitPresenter: InboundPennyTestSubmitInteractorOutpu
func submitSuccess() { func submitSuccess() {
progressLinker.onNext(false) progressLinker.onNext(false)
print("success")
success.onNext(())
} }
func setError(with error: Error) { func setError(with error: Error) {

9
GME Remit/Modules/RemittanceModules/InboundModules/InboundPennyTestSubmit/User Interface/View/InboundPennyTestSubmitViewController.swift

@ -40,6 +40,10 @@ class InboundPennyTestSubmitViewController: UIViewController {
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage() navigationController?.navigationBar.shadowImage = UIImage()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
codeTextField.becomeFirstResponder() codeTextField.becomeFirstResponder()
} }
@ -111,5 +115,10 @@ extension InboundPennyTestSubmitViewController {
} }
}).disposed(by: disposeBag) }).disposed(by: disposeBag)
output.success.drive(onNext: {[weak self] in
self?.alert(type: .success, message: "Added your inbound account", title: "Success") {
self?.dismiss(animated: true)
}
}).disposed(by: disposeBag)
} }
} }

1
GME Remit/Modules/RemittanceModules/InboundModules/InboundPennyTestSubmit/User Interface/Wireframe/InboundPennyTestSubmitWireframe.swift

@ -51,4 +51,5 @@ extension InboundPennyTestSubmitWireframe: InboundPennyTestSubmitWireframeInput
source.present(naviVC, animated: true) source.present(naviVC, animated: true)
} }
} }

1
GME Remit/Modules/RemittanceModules/InboundModules/InboundPennyTestSubmit/User Interface/Wireframe/InboundPennyTestSubmitWireframeInput.swift

@ -9,5 +9,4 @@
import Foundation import Foundation
protocol InboundPennyTestSubmitWireframeInput: WireframeInput { protocol InboundPennyTestSubmitWireframeInput: WireframeInput {
} }

38
GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/Application Logic/Interactor/InboundReceiptInteractor.swift

@ -0,0 +1,38 @@
//
// InboundReceiptInteractor.swift
// GME Remit
//
// Created by InKwon James Kim on 2019/11/14.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
class InboundReceiptInteractor {
// MARK: Properties
weak var output: InboundReceiptInteractorOutput?
private let service: InboundReceiptServiceType
private var model: TransactionModel?
// MARK: Initialization
init(service: InboundReceiptServiceType, model: TransactionModel?) {
self.service = service
self.model = model
}
}
// MARK: InboundReceipt interactor input interface
extension InboundReceiptInteractor: InboundReceiptInteractorInput {
func fetch() {
guard let model = model else {
let error = NSError(domain: "Error", code: 0, message: "Transaction Model is nil")
output?.setError(with: error)
return
}
output?.setModel(with: model)
}
}

16
GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/Application Logic/Interactor/InboundReceiptInteractorIO.swift

@ -0,0 +1,16 @@
//
// InboundReceiptInteractorIO.swift
// GME Remit
//
// Created by InKwon James Kim on 2019/11/14.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
protocol InboundReceiptInteractorInput: class {
func fetch()
}
protocol InboundReceiptInteractorOutput: class {
func setModel(with model: TransactionModel)
func setError(with error: Error)
}

13
GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/Application Logic/Service/InboundReceiptService.swift

@ -0,0 +1,13 @@
//
// InboundReceiptService.swift
// GME Remit
//
// Created by InKwon James Kim on 2019/11/14.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
class InboundReceiptService: InboundReceiptServiceType {
}

11
GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/Application Logic/Service/InboundReceiptServiceType.swift

@ -0,0 +1,11 @@
//
// InboundReceiptServiceType.swift
// GME Remit
//
// Created by InKwon James Kim on 2019/11/14.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
protocol InboundReceiptServiceType: class {
}

70
GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/User Interface/Presenter/InboundReceiptPresenter.swift

@ -0,0 +1,70 @@
//
// InboundReceiptPresenter.swift
// GME Remit
//
// Created by InKwon James Kim on 2019/11/14.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import RxSwift
import RxCocoa
class InboundReceiptPresenter: ViewModelType {
var interactor: InboundReceiptInteractorInput?
var wireframe: InboundReceiptWireframeInput?
struct Input {
let viewWillAppear: Driver<Void>
let register: Driver<Void>
let cancel: Driver<Void>
}
struct Output {
let isError: Driver<Error>
let isProgress: Driver<Bool>
let model: Driver<TransactionModel>
let status: Driver<InboundStatus>
}
private let disposeBag = DisposeBag()
private let progressLinker = PublishSubject<Bool>()
private let errorLinker = PublishSubject<Error>()
private let model = PublishSubject<TransactionModel>()
private let status = PublishSubject<InboundStatus>()
func transform(input: Input) -> Output {
input.viewWillAppear.drive(onNext: {[weak self] in
self?.interactor?.fetch()
}).disposed(by: disposeBag)
input.register.withLatestFrom(model.asDriverOnErrorJustComplete()) {$1}
.drive(onNext: {[weak self] in
self?.wireframe?.openAddInboundAccount(with: $0)
}).disposed(by: disposeBag)
return Output(
isError: errorLinker.asDriverOnErrorJustComplete(),
isProgress: progressLinker.asDriverOnErrorJustComplete(),
model: model.asDriverOnErrorJustComplete(),
status: status.asDriverOnErrorJustComplete()
)
}
}
// MARK: InboundReceipt interactor output interface
extension InboundReceiptPresenter: InboundReceiptInteractorOutput {
func setModel(with model: TransactionModel) {
self.model.onNext(model)
guard let inboundStatus = model.inboundStatus, let type = InboundStatus(rawValue: inboundStatus) else {
return
}
status.onNext(type)
}
func setError(with error: Error) {
errorLinker.onNext(error)
}
}

632
GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/User Interface/View/InboundReceipt.storyboard

@ -0,0 +1,632 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15509"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<customFonts key="customFonts">
<array key="SanFranciscoDisplay-Bold.otf">
<string>SanFranciscoDisplay-Bold</string>
</array>
<array key="SanFranciscoDisplay-Medium.otf">
<string>SanFranciscoDisplay-Medium</string>
</array>
<array key="SanFranciscoDisplay-Regular.otf">
<string>SanFranciscoDisplay-Regular</string>
</array>
<array key="SanFranciscoText-Bold.otf">
<string>SanFranciscoText-Bold</string>
</array>
<array key="SanFranciscoText-Regular.otf">
<string>SanFranciscoText-Regular</string>
</array>
</customFonts>
<scenes>
<!--Inbound Receipt View Controller-->
<scene sceneID="G0O-2h-F1s">
<objects>
<viewController storyboardIdentifier="InboundReceiptViewController" id="dcW-qo-rx5" customClass="InboundReceiptViewController" customModule="GME_Remit" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Hg2-y8-LC3">
<rect key="frame" x="0.0" y="0.0" width="375" height="800"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wWR-dD-FNf">
<rect key="frame" x="0.0" y="0.0" width="375" height="800"/>
<subviews>
<view contentMode="scaleToFill" placeholderIntrinsicWidth="375" placeholderIntrinsicHeight="667" translatesAutoresizingMaskIntoConstraints="NO" id="vYC-uV-BDD">
<rect key="frame" x="0.0" y="0.0" width="375" height="762"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" placeholderIntrinsicWidth="355" placeholderIntrinsicHeight="572" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="nH9-TW-YRF">
<rect key="frame" x="10" y="10" width="355" height="742"/>
<subviews>
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qcP-4X-gHI">
<rect key="frame" x="0.0" y="0.0" width="355" height="222"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_recipient_bg" translatesAutoresizingMaskIntoConstraints="NO" id="GaL-Iw-0tw">
<rect key="frame" x="0.0" y="0.0" width="355" height="222"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Transfer Holding" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XC6-UE-X8h">
<rect key="frame" x="30" y="20" width="295" height="26"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Bold" family="San Francisco Display" pointSize="22"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="J1f-7t-h7l">
<rect key="frame" x="20" y="76" width="315" height="40"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rtO-Wn-iSP">
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="flag_cambodia" translatesAutoresizingMaskIntoConstraints="NO" id="VVa-U0-Ur0">
<rect key="frame" x="5" y="5" width="30" height="30"/>
</imageView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="VVa-U0-Ur0" secondAttribute="trailing" constant="5" id="3CX-ze-Zw2"/>
<constraint firstAttribute="width" constant="40" id="3mk-Cb-sy1"/>
<constraint firstAttribute="bottom" secondItem="VVa-U0-Ur0" secondAttribute="bottom" constant="5" id="Aao-iJ-Fyh"/>
<constraint firstItem="VVa-U0-Ur0" firstAttribute="top" secondItem="rtO-Wn-iSP" secondAttribute="top" constant="5" id="BbM-Vt-Yaf"/>
<constraint firstAttribute="height" constant="40" id="Ffa-jh-cA0"/>
<constraint firstItem="VVa-U0-Ur0" firstAttribute="leading" secondItem="rtO-Wn-iSP" secondAttribute="leading" constant="5" id="tYY-Dw-wfI"/>
</constraints>
</view>
<view contentMode="scaleToFill" horizontalHuggingPriority="249" translatesAutoresizingMaskIntoConstraints="NO" id="rKJ-cb-faX">
<rect key="frame" x="40" y="0.0" width="97.5" height="40"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="k8f-pT-7Hu">
<rect key="frame" x="0.0" y="19" width="97.5" height="2"/>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints>
<constraint firstAttribute="height" constant="2" id="qO7-GC-Rew"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="k8f-pT-7Hu" firstAttribute="leading" secondItem="rKJ-cb-faX" secondAttribute="leading" id="70C-Lw-cHU"/>
<constraint firstItem="k8f-pT-7Hu" firstAttribute="centerY" secondItem="rKJ-cb-faX" secondAttribute="centerY" id="AZj-e3-Ayv"/>
<constraint firstAttribute="trailing" secondItem="k8f-pT-7Hu" secondAttribute="trailing" id="Yaj-oF-AJ9"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7GG-Qf-Gws">
<rect key="frame" x="137.5" y="0.0" width="40" height="40"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_gme_logo" translatesAutoresizingMaskIntoConstraints="NO" id="os0-mb-2dT">
<rect key="frame" x="7" y="7" width="26" height="26"/>
</imageView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="os0-mb-2dT" firstAttribute="leading" secondItem="7GG-Qf-Gws" secondAttribute="leading" constant="7" id="6ez-ZK-fGy"/>
<constraint firstAttribute="trailing" secondItem="os0-mb-2dT" secondAttribute="trailing" constant="7" id="6ja-U0-P5I"/>
<constraint firstAttribute="bottom" secondItem="os0-mb-2dT" secondAttribute="bottom" constant="7" id="85k-pJ-im2"/>
<constraint firstAttribute="width" constant="40" id="LJN-qP-ORg"/>
<constraint firstItem="os0-mb-2dT" firstAttribute="top" secondItem="7GG-Qf-Gws" secondAttribute="top" constant="7" id="Nol-qt-e1s"/>
<constraint firstAttribute="height" constant="40" id="PcK-HC-nYm"/>
</constraints>
</view>
<view contentMode="scaleToFill" horizontalHuggingPriority="249" translatesAutoresizingMaskIntoConstraints="NO" id="Wxx-gn-Wzg">
<rect key="frame" x="177.5" y="0.0" width="97.5" height="40"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cCE-Ad-VG8">
<rect key="frame" x="0.0" y="19" width="97.5" height="2"/>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints>
<constraint firstAttribute="height" constant="2" id="RT4-8k-DwB"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="cCE-Ad-VG8" firstAttribute="centerY" secondItem="Wxx-gn-Wzg" secondAttribute="centerY" id="1k5-KR-QPa"/>
<constraint firstItem="cCE-Ad-VG8" firstAttribute="leading" secondItem="Wxx-gn-Wzg" secondAttribute="leading" id="4s1-lf-BEv"/>
<constraint firstAttribute="trailing" secondItem="cCE-Ad-VG8" secondAttribute="trailing" id="pZI-vV-QTE"/>
</constraints>
</view>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ibk" translatesAutoresizingMaskIntoConstraints="NO" id="BvH-Qa-9cS">
<rect key="frame" x="275" y="0.0" width="40" height="40"/>
<constraints>
<constraint firstAttribute="width" constant="40" id="Rd8-9J-aNN"/>
<constraint firstAttribute="height" constant="40" id="v95-EK-7vA"/>
</constraints>
</imageView>
</subviews>
<constraints>
<constraint firstItem="Wxx-gn-Wzg" firstAttribute="width" secondItem="rKJ-cb-faX" secondAttribute="width" id="aEd-Ia-uSt"/>
</constraints>
</stackView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Cambodian Kim" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="Irl-hr-4eV">
<rect key="frame" x="7" y="116" width="66" height="28"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="12"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Max Kim" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="CV7-nn-Hbs">
<rect key="frame" x="280" y="116" width="70" height="14"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="12"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="GME" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="FL1-HU-Tq7">
<rect key="frame" x="164" y="123" width="27" height="14"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="12"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="B0y-K9-Cr0">
<rect key="frame" x="30" y="166" width="295" height="36"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yst-bw-KeH">
<rect key="frame" x="0.0" y="0.0" width="295" height="20"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="izg-bz-vlD">
<rect key="frame" x="0.0" y="0.0" width="78" height="20"/>
<constraints>
<constraint firstAttribute="height" constant="20" id="5AP-Cr-A71"/>
</constraints>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="15"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" spacing="3" translatesAutoresizingMaskIntoConstraints="NO" id="t2l-Hc-bNJ">
<rect key="frame" x="78" y="0.0" width="139" height="20"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="IBK" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="PXk-kC-HgM">
<rect key="frame" x="0.0" y="0.0" width="22.5" height="20"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="17"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="251" text="110223458044" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ysv-FY-2Ev">
<rect key="frame" x="25.5" y="0.0" width="113.5" height="20"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="17"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CSj-Zu-3pe">
<rect key="frame" x="217" y="0.0" width="78" height="20"/>
<constraints>
<constraint firstAttribute="height" constant="20" id="yns-QR-K5d"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstItem="CSj-Zu-3pe" firstAttribute="width" secondItem="izg-bz-vlD" secondAttribute="width" id="pqJ-Pc-LXc"/>
</constraints>
</stackView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="You have to register account at GME" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dWC-PH-K0l">
<rect key="frame" x="0.0" y="22" width="295" height="14"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="12"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" name="ThemeMainBackground"/>
<constraints>
<constraint firstItem="J1f-7t-h7l" firstAttribute="centerX" secondItem="qcP-4X-gHI" secondAttribute="centerX" id="1d1-1b-lwx"/>
<constraint firstAttribute="bottom" secondItem="GaL-Iw-0tw" secondAttribute="bottom" id="1zm-5u-zJ1"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="CV7-nn-Hbs" secondAttribute="trailing" constant="5" id="2Yr-b6-2Ho"/>
<constraint firstItem="CV7-nn-Hbs" firstAttribute="top" secondItem="J1f-7t-h7l" secondAttribute="bottom" id="4hB-tO-aen"/>
<constraint firstItem="XC6-UE-X8h" firstAttribute="leading" secondItem="qcP-4X-gHI" secondAttribute="leading" constant="30" id="Bng-xV-74G"/>
<constraint firstItem="CV7-nn-Hbs" firstAttribute="centerX" secondItem="BvH-Qa-9cS" secondAttribute="centerX" id="CdS-aG-U47"/>
<constraint firstAttribute="trailing" secondItem="XC6-UE-X8h" secondAttribute="trailing" constant="30" id="HZ6-Ey-1WG"/>
<constraint firstAttribute="trailing" secondItem="GaL-Iw-0tw" secondAttribute="trailing" id="KLt-46-r4m"/>
<constraint firstItem="Irl-hr-4eV" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="qcP-4X-gHI" secondAttribute="leading" constant="5" id="PJM-5E-sZW"/>
<constraint firstItem="GaL-Iw-0tw" firstAttribute="top" secondItem="qcP-4X-gHI" secondAttribute="top" id="QDR-7T-Lvu"/>
<constraint firstItem="Irl-hr-4eV" firstAttribute="top" secondItem="J1f-7t-h7l" secondAttribute="bottom" id="cOm-3A-qpb"/>
<constraint firstAttribute="trailing" secondItem="B0y-K9-Cr0" secondAttribute="trailing" constant="30" id="fDg-bV-lkS"/>
<constraint firstAttribute="height" constant="222" id="fFD-B2-J1D"/>
<constraint firstAttribute="trailing" secondItem="CV7-nn-Hbs" secondAttribute="trailing" constant="5" id="ggo-GJ-m1v"/>
<constraint firstItem="Irl-hr-4eV" firstAttribute="centerX" secondItem="rtO-Wn-iSP" secondAttribute="centerX" id="m9Z-Pt-th4"/>
<constraint firstAttribute="bottom" secondItem="B0y-K9-Cr0" secondAttribute="bottom" constant="20" id="msb-4T-coA"/>
<constraint firstItem="GaL-Iw-0tw" firstAttribute="leading" secondItem="qcP-4X-gHI" secondAttribute="leading" id="pVy-03-Fec"/>
<constraint firstItem="B0y-K9-Cr0" firstAttribute="leading" secondItem="qcP-4X-gHI" secondAttribute="leading" constant="30" id="pcP-Z1-c8W"/>
<constraint firstItem="FL1-HU-Tq7" firstAttribute="centerX" secondItem="7GG-Qf-Gws" secondAttribute="centerX" id="pfZ-OU-Vsz"/>
<constraint firstItem="XC6-UE-X8h" firstAttribute="top" secondItem="qcP-4X-gHI" secondAttribute="top" constant="20" id="s7z-fO-3pH"/>
<constraint firstItem="J1f-7t-h7l" firstAttribute="top" secondItem="XC6-UE-X8h" secondAttribute="bottom" constant="30" id="vks-np-aYd"/>
<constraint firstItem="FL1-HU-Tq7" firstAttribute="centerY" secondItem="Irl-hr-4eV" secondAttribute="centerY" id="wAG-vM-wr3"/>
<constraint firstItem="J1f-7t-h7l" firstAttribute="leading" secondItem="qcP-4X-gHI" secondAttribute="leading" constant="20" id="yHs-Pw-Z6s"/>
<constraint firstAttribute="trailing" secondItem="J1f-7t-h7l" secondAttribute="trailing" constant="20" id="yQ2-X0-JPW"/>
</constraints>
</view>
<view opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zuk-jN-axO" customClass="ShadowView" customModule="GME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="232" width="355" height="400"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="yW8-AN-msK">
<rect key="frame" x="0.0" y="0.0" width="355" height="400"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vDl-3w-2rE">
<rect key="frame" x="0.0" y="0.0" width="355" height="50"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillProportionally" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="NjK-8J-XEO">
<rect key="frame" x="13" y="0.0" width="329" height="50"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Control No." lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="s20-Ea-baB" userLabel="Agent">
<rect key="frame" x="0.0" y="0.0" width="148" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="Zbk-cq-VVQ"/>
</constraints>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="12390482293" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="6Xt-jI-7GZ">
<rect key="frame" x="150" y="0.0" width="179" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Bold" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="NjK-8J-XEO" secondAttribute="trailing" constant="13" id="VcQ-Bu-c0z"/>
<constraint firstItem="NjK-8J-XEO" firstAttribute="top" secondItem="vDl-3w-2rE" secondAttribute="top" id="a7T-ey-kq6"/>
<constraint firstAttribute="bottom" secondItem="NjK-8J-XEO" secondAttribute="bottom" id="hYy-xR-51M"/>
<constraint firstItem="NjK-8J-XEO" firstAttribute="leading" secondItem="vDl-3w-2rE" secondAttribute="leading" constant="13" id="l7u-qE-SJT"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pVx-Zy-Vfq">
<rect key="frame" x="0.0" y="50" width="355" height="50"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillProportionally" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="YQf-5X-jrx">
<rect key="frame" x="13" y="0.0" width="329" height="50"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Transaction Date" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="Xtb-Ib-lpc" userLabel="Agent">
<rect key="frame" x="0.0" y="0.0" width="192" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2019-10-11" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="JxV-yj-EMz">
<rect key="frame" x="194" y="0.0" width="135" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Bold" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="YQf-5X-jrx" firstAttribute="top" secondItem="pVx-Zy-Vfq" secondAttribute="top" id="5c9-Cw-Lec"/>
<constraint firstAttribute="trailing" secondItem="YQf-5X-jrx" secondAttribute="trailing" constant="13" id="hZ6-6H-ITB"/>
<constraint firstAttribute="bottom" secondItem="YQf-5X-jrx" secondAttribute="bottom" id="ivW-QN-Sb3"/>
<constraint firstItem="YQf-5X-jrx" firstAttribute="leading" secondItem="pVx-Zy-Vfq" secondAttribute="leading" constant="13" id="wVq-eb-ipJ"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Sih-NQ-1Hj">
<rect key="frame" x="0.0" y="100" width="355" height="50"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillProportionally" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="YVg-V9-x11">
<rect key="frame" x="13" y="0.0" width="329" height="50"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sender Name" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="5NU-Qx-Ofw" userLabel="Agent">
<rect key="frame" x="0.0" y="0.0" width="189.5" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Wing Test" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="dZe-rZ-5by">
<rect key="frame" x="191.5" y="0.0" width="137.5" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Bold" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="YVg-V9-x11" secondAttribute="trailing" constant="13" id="EHK-II-gXM"/>
<constraint firstItem="YVg-V9-x11" firstAttribute="top" secondItem="Sih-NQ-1Hj" secondAttribute="top" id="II8-sw-FmR"/>
<constraint firstAttribute="bottom" secondItem="YVg-V9-x11" secondAttribute="bottom" id="JjJ-Pm-F2b"/>
<constraint firstItem="YVg-V9-x11" firstAttribute="leading" secondItem="Sih-NQ-1Hj" secondAttribute="leading" constant="13" id="gic-79-mYl"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bOF-qN-QVq">
<rect key="frame" x="0.0" y="150" width="355" height="50"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillProportionally" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="TpP-k4-Fsl">
<rect key="frame" x="13" y="0.0" width="329" height="50"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="251" text="Mobile No." lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="m71-TZ-5X2" userLabel="Agent">
<rect key="frame" x="0.0" y="0.0" width="144" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="01052850125" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="13j-q7-PPr">
<rect key="frame" x="146" y="0.0" width="183" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Bold" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="TpP-k4-Fsl" firstAttribute="top" secondItem="bOF-qN-QVq" secondAttribute="top" id="0Ob-Ih-exZ"/>
<constraint firstItem="TpP-k4-Fsl" firstAttribute="leading" secondItem="bOF-qN-QVq" secondAttribute="leading" constant="13" id="UM1-QZ-yJz"/>
<constraint firstAttribute="trailing" secondItem="TpP-k4-Fsl" secondAttribute="trailing" constant="13" id="aku-eM-07L"/>
<constraint firstAttribute="bottom" secondItem="TpP-k4-Fsl" secondAttribute="bottom" id="eOn-dz-dOU"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="USp-gS-D4I">
<rect key="frame" x="0.0" y="200" width="355" height="50"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillProportionally" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="hjx-Sj-LxE">
<rect key="frame" x="13" y="0.0" width="329" height="50"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Bank" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="jrx-xv-i6r" userLabel="Reciever">
<rect key="frame" x="0.0" y="0.0" width="186" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="IBK" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="TOM-qp-7zr">
<rect key="frame" x="188" y="0.0" width="141" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Bold" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="hjx-Sj-LxE" secondAttribute="bottom" id="1FD-ZK-4NX"/>
<constraint firstItem="hjx-Sj-LxE" firstAttribute="leading" secondItem="USp-gS-D4I" secondAttribute="leading" constant="13" id="D2V-oh-v5z"/>
<constraint firstAttribute="trailing" secondItem="hjx-Sj-LxE" secondAttribute="trailing" constant="13" id="Eom-4h-Oko"/>
<constraint firstItem="hjx-Sj-LxE" firstAttribute="top" secondItem="USp-gS-D4I" secondAttribute="top" id="hmk-nv-rFV"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ioq-eT-B5P">
<rect key="frame" x="0.0" y="250" width="355" height="50"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="GqV-UD-gDQ">
<rect key="frame" x="13" y="0.0" width="329" height="50"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="Bank Account" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="t1Y-8m-K81" userLabel="Agent">
<rect key="frame" x="0.0" y="0.0" width="88.5" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="110223458044" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="zBi-QA-eu5">
<rect key="frame" x="90.5" y="0.0" width="238.5" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Bold" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="GqV-UD-gDQ" secondAttribute="bottom" id="5Lj-0q-CRi"/>
<constraint firstAttribute="trailing" secondItem="GqV-UD-gDQ" secondAttribute="trailing" constant="13" id="MR8-WT-y5J"/>
<constraint firstItem="GqV-UD-gDQ" firstAttribute="top" secondItem="ioq-eT-B5P" secondAttribute="top" id="lSs-6p-hD7"/>
<constraint firstItem="GqV-UD-gDQ" firstAttribute="leading" secondItem="ioq-eT-B5P" secondAttribute="leading" constant="13" id="upl-In-Kqt"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="deC-q3-hZr">
<rect key="frame" x="0.0" y="300" width="355" height="50"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="5hx-n9-gyL">
<rect key="frame" x="13" y="0.0" width="329" height="50"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="Received Amount" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="2d4-eq-cXZ" userLabel="Agent">
<rect key="frame" x="0.0" y="0.0" width="111" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="11,000 KRW" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="tKO-5l-kOy">
<rect key="frame" x="113" y="0.0" width="216" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Bold" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="5hx-n9-gyL" firstAttribute="leading" secondItem="deC-q3-hZr" secondAttribute="leading" constant="13" id="ALW-AU-1QT"/>
<constraint firstAttribute="bottom" secondItem="5hx-n9-gyL" secondAttribute="bottom" id="Pkr-r8-Pkb"/>
<constraint firstItem="5hx-n9-gyL" firstAttribute="top" secondItem="deC-q3-hZr" secondAttribute="top" id="peZ-4i-ZGC"/>
<constraint firstAttribute="trailing" secondItem="5hx-n9-gyL" secondAttribute="trailing" constant="13" id="zvI-4W-Tr4"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="a7r-ij-NQ4">
<rect key="frame" x="0.0" y="350" width="355" height="50"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="LrM-yZ-Saj">
<rect key="frame" x="13" y="0.0" width="329" height="50"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="Service Fee" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="FQ3-6J-ibS" userLabel="Agent">
<rect key="frame" x="0.0" y="0.0" width="73.5" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="10,000 KRW" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="4zF-Gh-kae">
<rect key="frame" x="75.5" y="0.0" width="253.5" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Bold" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="LrM-yZ-Saj" firstAttribute="leading" secondItem="a7r-ij-NQ4" secondAttribute="leading" constant="13" id="EaA-pt-6mf"/>
<constraint firstAttribute="trailing" secondItem="LrM-yZ-Saj" secondAttribute="trailing" constant="13" id="S4U-MU-0xC"/>
<constraint firstItem="LrM-yZ-Saj" firstAttribute="top" secondItem="a7r-ij-NQ4" secondAttribute="top" id="ZVr-3r-pOU"/>
<constraint firstAttribute="bottom" secondItem="LrM-yZ-Saj" secondAttribute="bottom" id="g61-Wq-wWb"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="yW8-AN-msK" firstAttribute="leading" secondItem="zuk-jN-axO" secondAttribute="leading" id="JnU-ox-P8t"/>
<constraint firstAttribute="bottom" secondItem="yW8-AN-msK" secondAttribute="bottom" id="P7I-Gc-nqU"/>
<constraint firstItem="yW8-AN-msK" firstAttribute="top" secondItem="zuk-jN-axO" secondAttribute="top" id="dM7-hd-AmF"/>
<constraint firstAttribute="trailing" secondItem="yW8-AN-msK" secondAttribute="trailing" id="yEf-Tz-yom"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="10"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="shadowBackground">
<color key="value" name="ThemeMainBackground"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="200" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zKB-6P-6iu">
<rect key="frame" x="0.0" y="642" width="355" height="50"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="1OV-x4-AkU">
<rect key="frame" x="0.0" y="702" width="355" height="40"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qbr-Ug-ywW">
<rect key="frame" x="0.0" y="0.0" width="129.5" height="40"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="15"/>
<state key="normal" title="Cancel">
<color key="titleColor" name="ThemeRed"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="6"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="a5e-dp-XrJ">
<rect key="frame" x="139.5" y="0.0" width="215.5" height="40"/>
<color key="backgroundColor" name="ThemeRed"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="15"/>
<inset key="titleEdgeInsets" minX="5" minY="0.0" maxX="5" maxY="0.0"/>
<state key="normal" title="Register Account">
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="6"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</button>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="4op-jj-VUD"/>
<constraint firstItem="qbr-Ug-ywW" firstAttribute="width" secondItem="a5e-dp-XrJ" secondAttribute="width" multiplier="0.6:1" id="SES-9j-mSw"/>
</constraints>
</stackView>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="nH9-TW-YRF" secondAttribute="bottom" constant="10" id="63d-Hg-CvH"/>
<constraint firstItem="nH9-TW-YRF" firstAttribute="leading" secondItem="vYC-uV-BDD" secondAttribute="leading" constant="10" id="6L0-g0-bwM"/>
<constraint firstItem="nH9-TW-YRF" firstAttribute="top" secondItem="vYC-uV-BDD" secondAttribute="top" constant="10" id="Eef-4t-Gdo"/>
<constraint firstAttribute="trailing" secondItem="nH9-TW-YRF" secondAttribute="trailing" constant="10" id="HsD-9r-77F"/>
</constraints>
</view>
</subviews>
<constraints>
<constraint firstItem="vYC-uV-BDD" firstAttribute="leading" secondItem="wWR-dD-FNf" secondAttribute="leading" id="C49-JO-bwP"/>
<constraint firstItem="vYC-uV-BDD" firstAttribute="top" secondItem="wWR-dD-FNf" secondAttribute="top" id="DMo-kU-hK2"/>
<constraint firstAttribute="trailing" secondItem="vYC-uV-BDD" secondAttribute="trailing" id="MIB-hS-Ol3"/>
<constraint firstItem="vYC-uV-BDD" firstAttribute="width" secondItem="wWR-dD-FNf" secondAttribute="width" id="P2V-rb-J5t"/>
<constraint firstAttribute="bottom" secondItem="vYC-uV-BDD" secondAttribute="bottom" id="vca-cB-NM6"/>
</constraints>
</scrollView>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints>
<constraint firstItem="wWR-dD-FNf" firstAttribute="top" secondItem="aD3-8c-HPv" secondAttribute="top" id="B66-pQ-eR6"/>
<constraint firstItem="wWR-dD-FNf" firstAttribute="bottom" secondItem="aD3-8c-HPv" secondAttribute="bottom" id="Dbm-s7-gRG"/>
<constraint firstItem="wWR-dD-FNf" firstAttribute="leading" secondItem="aD3-8c-HPv" secondAttribute="leading" id="Go4-ej-X8k"/>
<constraint firstItem="wWR-dD-FNf" firstAttribute="trailing" secondItem="aD3-8c-HPv" secondAttribute="trailing" id="Wfl-nh-C4U"/>
</constraints>
<viewLayoutGuide key="safeArea" id="aD3-8c-HPv"/>
</view>
<size key="freeformSize" width="375" height="800"/>
<connections>
<outlet property="amountContentsLabel" destination="tKO-5l-kOy" id="fNv-c1-dL2"/>
<outlet property="amountTitleLabel" destination="2d4-eq-cXZ" id="OK6-Cu-95X"/>
<outlet property="bankAccountContentLabel" destination="zBi-QA-eu5" id="eO4-6B-Fv7"/>
<outlet property="bankAccountLabel" destination="Ysv-FY-2Ev" id="H34-Hg-0eP"/>
<outlet property="bankAccountTitleLabel" destination="t1Y-8m-K81" id="Rd2-3W-Lnn"/>
<outlet property="bankContentLabel" destination="TOM-qp-7zr" id="YDu-Tm-fD0"/>
<outlet property="bankNameLabel" destination="PXk-kC-HgM" id="Kjn-eX-nxt"/>
<outlet property="bankTitleLabel" destination="jrx-xv-i6r" id="ADu-g6-tdp"/>
<outlet property="cancelButton" destination="qbr-Ug-ywW" id="5lw-fK-f1j"/>
<outlet property="controlContentLabel" destination="6Xt-jI-7GZ" id="HmX-n7-lmZ"/>
<outlet property="controlTitleLabel" destination="s20-Ea-baB" id="Cl8-Zl-rnM"/>
<outlet property="gmeToReceiverProcess" destination="cCE-Ad-VG8" id="9Uy-uu-gfJ"/>
<outlet property="messageContainerView" destination="B0y-K9-Cr0" id="bgp-5m-Q7u"/>
<outlet property="messageTitleLabel" destination="dWC-PH-K0l" id="JDE-GJ-seb"/>
<outlet property="mobileContentLabel" destination="13j-q7-PPr" id="wAa-e1-bGr"/>
<outlet property="mobileTitleLabel" destination="m71-TZ-5X2" id="TDU-J8-5Fi"/>
<outlet property="receiveBankImageView" destination="BvH-Qa-9cS" id="zm9-rx-uIe"/>
<outlet property="receiverName" destination="CV7-nn-Hbs" id="LsY-L7-ja0"/>
<outlet property="registerButton" destination="a5e-dp-XrJ" id="rXl-UD-bZY"/>
<outlet property="senderCountryImageView" destination="VVa-U0-Ur0" id="MJg-i3-vZs"/>
<outlet property="senderNameContentLabel" destination="dZe-rZ-5by" id="JiH-pG-lwm"/>
<outlet property="senderNameLabel" destination="Irl-hr-4eV" id="7DN-jN-Z8F"/>
<outlet property="senderNameTitleLabel" destination="5NU-Qx-Ofw" id="9yM-Tr-pUq"/>
<outlet property="senderToGMEProcess" destination="k8f-pT-7Hu" id="UBk-4S-ddw"/>
<outlet property="serviceFeeContentLabel" destination="4zF-Gh-kae" id="Wht-8d-Aex"/>
<outlet property="serviceFeeTitleLabel" destination="FQ3-6J-ibS" id="PmJ-7V-Y71"/>
<outlet property="statusTitleLabel" destination="XC6-UE-X8h" id="4pw-5j-NBb"/>
<outlet property="transactionDateContentLabel" destination="JxV-yj-EMz" id="7XA-39-FLl"/>
<outlet property="transactionDateTitleLabel" destination="Xtb-Ib-lpc" id="IHf-1U-sjj"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="NdL-QG-wf3" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="367" y="228"/>
</scene>
</scenes>
<resources>
<image name="flag_cambodia" width="512" height="512"/>
<image name="ibk" width="100" height="67"/>
<image name="ic_gme_logo" width="40" height="40"/>
<image name="ic_recipient_bg" width="355" height="226"/>
<namedColor name="ThemeMainBackground">
<color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
<namedColor name="ThemeRed">
<color red="0.92900002002716064" green="0.10599999874830246" blue="0.14100000262260437" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
<namedColor name="ThemeText">
<color red="0.28999999165534973" green="0.28999999165534973" blue="0.28999999165534973" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
</resources>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</document>

180
GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/User Interface/View/InboundReceiptViewController.swift

@ -0,0 +1,180 @@
//
// InboundReceiptViewController.swift
// GME Remit
//
// Created by InKwon James Kim on 2019/11/14.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
import RxSwift
import RxCocoa
class InboundReceiptViewController: UIViewController {
// MARK: Properties
var presenter: InboundReceiptPresenter!
private let disposeBag = DisposeBag()
// MARK: Computed Properties
// MARK: IBOutlets
@IBOutlet private weak var statusTitleLabel: UILabel!
@IBOutlet private weak var senderCountryImageView: UIImageView!
@IBOutlet private weak var senderNameLabel: UILabel!
@IBOutlet private weak var receiveBankImageView: UIImageView!
@IBOutlet private weak var receiverName: UILabel!
@IBOutlet private weak var messageContainerView: UIStackView!
@IBOutlet private weak var messageTitleLabel: UILabel!
@IBOutlet private weak var bankNameLabel: UILabel!
@IBOutlet private weak var bankAccountLabel: UILabel!
@IBOutlet private weak var senderToGMEProcess: UIView!
@IBOutlet private weak var gmeToReceiverProcess: UIView!
@IBOutlet private weak var controlTitleLabel: UILabel!
@IBOutlet private weak var controlContentLabel: UILabel!
@IBOutlet private weak var transactionDateTitleLabel: UILabel!
@IBOutlet private weak var transactionDateContentLabel: UILabel!
@IBOutlet private weak var senderNameTitleLabel: UILabel!
@IBOutlet private weak var senderNameContentLabel: UILabel!
@IBOutlet private weak var mobileTitleLabel: UILabel!
@IBOutlet private weak var mobileContentLabel: UILabel!
@IBOutlet private weak var bankTitleLabel: UILabel!
@IBOutlet private weak var bankContentLabel: UILabel!
@IBOutlet private weak var bankAccountTitleLabel: UILabel!
@IBOutlet private weak var bankAccountContentLabel: UILabel!
@IBOutlet private weak var amountTitleLabel: UILabel!
@IBOutlet private weak var amountContentsLabel: UILabel!
@IBOutlet private weak var serviceFeeTitleLabel: UILabel!
@IBOutlet private weak var serviceFeeContentLabel: UILabel!
@IBOutlet private weak var cancelButton: UIButton!
@IBOutlet private weak var registerButton: UIButton!
// MARK: VC's Life cycle
override func viewDidLoad() {
super.viewDidLoad()
setup()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
title = "Inbound Receipt"
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
title = ""
}
// MARK: IBActions
}
// MARK: Other Functions
extension InboundReceiptViewController {
private func setup() {
setUI()
setBinding()
setUIBinding()
}
private func setUI() {
messageContainerView.isHidden = true
senderToGMEProcess.layer.cornerRadius = 5
gmeToReceiverProcess.layer.cornerRadius = 5
senderToGMEProcess.isHidden = true
gmeToReceiverProcess.isHidden = true
receiverName.text = GMEDB.shared.user.string(.fullName)
registerButton.titleLabel?.minimumScaleFactor = 0.5
registerButton.titleLabel?.adjustsFontSizeToFitWidth = true
registerButton.titleLabel?.numberOfLines = 2
registerButton.titleLabel?.textAlignment = .center
registerButton.layer.cornerRadius = 5
}
private func setUIBinding() {
}
private func setBinding() {
let viewWillAppear = rx.sentMessage(#selector(UIViewController.viewWillAppear(_:)))
.mapToVoid()
.asDriverOnErrorJustComplete()
let input = InboundReceiptPresenter.Input(
viewWillAppear: viewWillAppear,
register: registerButton.rx.tap.asDriverOnErrorJustComplete(),
cancel: cancelButton.rx.tap.asDriverOnErrorJustComplete()
)
let output = presenter.transform(input: input)
output.isError
.drive(
onNext: { self.alert(type: .error, message: $0.localizedDescription) }
).disposed(by: disposeBag)
output.isProgress
.drive(
onNext: { $0 ? self.showProgressHud() : self.hideProgressHud() }
).disposed(by: disposeBag)
output.model.map {$0.inboundControlNo}.drive(controlContentLabel.rx.text).disposed(by: disposeBag)
output.model.map {$0.inboundTranDate}.drive(transactionDateContentLabel.rx.text).disposed(by: disposeBag)
output.model.map {$0.inboundSenderName}.drive(senderNameContentLabel.rx.text).disposed(by: disposeBag)
output.model.map {$0.inboundSenderName}.drive(senderNameLabel.rx.text).disposed(by: disposeBag)
output.model.map {$0.inboundMobileNo}.drive(mobileContentLabel.rx.text).disposed(by: disposeBag)
output.model.map {$0.inboundBankName}.drive(bankContentLabel.rx.text).disposed(by: disposeBag)
output.model.map {$0.inboundBankName}.drive(bankNameLabel.rx.text).disposed(by: disposeBag)
output.model.map {$0.inboundAccountNo}.drive(bankAccountContentLabel.rx.text).disposed(by: disposeBag)
output.model.map {$0.inboundAccountNo}.drive(bankAccountLabel.rx.text).disposed(by: disposeBag)
output.model
.map {$0.inboundReceivedAmount?.decimalToCurrency(as: .krw, isFront: false)}
.drive(amountContentsLabel.rx.text).disposed(by: disposeBag)
output.model.map {$0.inboundServiceFee?.decimalToCurrency(as: .krw, isFront: false)}
.drive(serviceFeeContentLabel.rx.text).disposed(by: disposeBag)
output.model.map {BankEnum(rawValue: $0.inboundBankCode ?? "")?.ciImage}
.drive(receiveBankImageView.rx.image).disposed(by: disposeBag)
output.status.drive(onNext: {[weak self] in
switch $0 {
case .success:
self?.statusTitleLabel.text = "Trnasfer Successfuly"
self?.messageContainerView.isHidden = true
self?.senderToGMEProcess.isHidden = true
self?.gmeToReceiverProcess.isHidden = true
case .hold:
self?.statusTitleLabel.text = "Trnasfer Holding"
self?.messageContainerView.isHidden = false
self?.senderToGMEProcess.isHidden = false
self?.gmeToReceiverProcess.isHidden = true
case .cancel:
self?.statusTitleLabel.text = "Trnasfer Canceled"
}
}).disposed(by: disposeBag)
}
}

52
GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/User Interface/Wireframe/InboundReceiptWireframe.swift

@ -0,0 +1,52 @@
//
// InboundReceiptWireframe.swift
// GME Remit
//
// Created by InKwon James Kim on 2019/11/14.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class InboundReceiptWireframe {
weak var view: UIViewController!
private var model: TransactionModel?
}
extension InboundReceiptWireframe: InboundReceiptWireframeInput {
var storyboardName: String {return "InboundReceipt"}
func getMainView() -> UIViewController {
let service = InboundReceiptService()
let interactor = InboundReceiptInteractor(service: service, model: model)
let presenter = InboundReceiptPresenter()
let viewController = viewControllerFromStoryboard(of: InboundReceiptViewController.self)
viewController.presenter = presenter
interactor.output = presenter
presenter.interactor = interactor
presenter.wireframe = self
view = viewController
return viewController
}
func push(with model: TransactionModel?, on source: UIViewController) {
self.model = model
let vc = getMainView()
source.navigationController?.pushViewController(vc, animated: true)
}
func openAddInboundAccount(with model: TransactionModel) {
let bank = BankInformation(bankCode: model.inboundBankCode, bankName: model.inboundBankName)
let model = PenneyTestRequest(
bank: bank,
account: model.inboundAccountNo ?? ""
)
AddInboundAccountWireframe().open(with: model, source: view)
}
}

13
GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/User Interface/Wireframe/InboundReceiptWireframeInput.swift

@ -0,0 +1,13 @@
//
// InboundReceiptWireframeInput.swift
// GME Remit
//
// Created by InKwon James Kim on 2019/11/14.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
protocol InboundReceiptWireframeInput: WireframeInput {
func openAddInboundAccount(with model: TransactionModel)
}

18
GME Remit/Modules/RemittanceModules/OverseasModules/SendMoneyReceipt/User Interface/View/SendMoneyReceipt.storyboard

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15400" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait" appearance="light"/> <device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies> <dependencies>
<deployment identifier="iOS"/> <deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15404"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15509"/>
<capability name="Named colors" minToolsVersion="9.0"/> <capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/> <capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@ -168,13 +168,13 @@ Share with concerned party only</string>
<rect key="frame" x="13" y="0.0" width="329" height="50"/> <rect key="frame" x="13" y="0.0" width="329" height="50"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Transaction Date" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0F1-wm-gWq" userLabel="Relation"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Transaction Date" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0F1-wm-gWq" userLabel="Relation">
<rect key="frame" x="0.0" y="0.0" width="106.5" height="50"/>
<rect key="frame" x="0.0" y="0.0" width="106" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/> <fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="Qz4-OT-jiF"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="Qz4-OT-jiF">
<rect key="frame" x="106.5" y="0.0" width="222.5" height="50"/>
<rect key="frame" x="106" y="0.0" width="223" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Bold" family="San Francisco Text" pointSize="14"/> <fontDescription key="fontDescription" name="SanFranciscoText-Bold" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
@ -377,13 +377,13 @@ Share with concerned party only</string>
<rect key="frame" x="13" y="0.0" width="329" height="50"/> <rect key="frame" x="13" y="0.0" width="329" height="50"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Account Number" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AIR-Co-29n" userLabel="Agent"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Account Number" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AIR-Co-29n" userLabel="Agent">
<rect key="frame" x="0.0" y="0.0" width="107" height="50"/>
<rect key="frame" x="0.0" y="0.0" width="106.5" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/> <fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="Mle-zI-ZDV"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="Mle-zI-ZDV">
<rect key="frame" x="109" y="0.0" width="220" height="50"/>
<rect key="frame" x="108.5" y="0.0" width="220.5" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Bold" family="San Francisco Text" pointSize="14"/> <fontDescription key="fontDescription" name="SanFranciscoText-Bold" family="San Francisco Text" pointSize="14"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
@ -694,13 +694,13 @@ Share with concerned party only</string>
<image name="ic_lock" width="6" height="7"/> <image name="ic_lock" width="6" height="7"/>
<image name="ic_recipient_bg" width="355" height="226"/> <image name="ic_recipient_bg" width="355" height="226"/>
<namedColor name="ThemeMainBackground"> <namedColor name="ThemeMainBackground">
<color red="0.097999997437000275" green="0.097999997437000275" blue="0.097999997437000275" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor> </namedColor>
<namedColor name="ThemeRed"> <namedColor name="ThemeRed">
<color red="1" green="0.15299999713897705" blue="0.15299999713897705" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color red="0.92900002002716064" green="0.10599999874830246" blue="0.14100000262260437" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor> </namedColor>
<namedColor name="ThemeText"> <namedColor name="ThemeText">
<color white="0.80299997329711914" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color red="0.28999999165534973" green="0.28999999165534973" blue="0.28999999165534973" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor> </namedColor>
</resources> </resources>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>

1
GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/Module Interface/TransactionHistoryModuleInterface.swift

@ -9,6 +9,7 @@
protocol TransactionHistoryModuleInterface: class { protocol TransactionHistoryModuleInterface: class {
func viewIsReady() func viewIsReady()
func showDetailOf(type: ReceiptType, index: Int) func showDetailOf(type: ReceiptType, index: Int)
func showInboundDetailOf(index: Int)
func search(text: String) func search(text: String)
func filterTransaction(type: TransactionModelType) func filterTransaction(type: TransactionModelType)
func fetchTransactionHistories(overseasType: OverseasType, fromDate: String?, toDate: String?) func fetchTransactionHistories(overseasType: OverseasType, fromDate: String?, toDate: String?)

9
GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/User Interface/Presenter/TransactionHistoryPresenter.swift

@ -77,10 +77,17 @@ extension TransactionHistoryPresenter: TransactionHistoryModuleInterface {
} }
} }
func showInboundDetailOf(index: Int) {
let element = self.filteredModels.elementAt(index: index)
wireframe?.openInboundReceipt(with: element)
}
func search(text: String) { func search(text: String) {
let searchText = text.lowercased() let searchText = text.lowercased()
self.filteredModels = (models).filter { model in self.filteredModels = (models).filter { model in
return searchText.isEmpty || (model.controlNumber ?? "").contains(searchText)
return searchText.isEmpty ||
(model.controlNumber ?? "").contains(searchText) ||
(model.inboundControlNo ?? "").contains(searchText)
} }
} }
} }

25
GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/User Interface/View/Cell/InboundTransactionCell.swift

@ -8,6 +8,20 @@
import UIKit import UIKit
enum InboundStatus: String {
case hold = "HOLD"
case cancel = "CANCEL"
case success = "SUCCESS"
var color: UIColor {
switch self {
case .hold: return .themeGreen
case .cancel: return .themeRed
case .success: return .themeBlue
}
}
}
class InboundTransactionCell: UITableViewCell { class InboundTransactionCell: UITableViewCell {
@IBOutlet private weak var dateLabel: UILabel! @IBOutlet private weak var dateLabel: UILabel!
@IBOutlet private weak var controlNumberLabel: UILabel! @IBOutlet private weak var controlNumberLabel: UILabel!
@ -19,6 +33,17 @@ class InboundTransactionCell: UITableViewCell {
@IBOutlet private weak var bgView: UIView! @IBOutlet private weak var bgView: UIView!
func setModel(with model: TransactionModel?) { func setModel(with model: TransactionModel?) {
dateLabel.text = model?.inboundTranDate
controlNumberLabel.text = model?.inboundControlNo
senderNameLabel.text = model?.inboundSenderName
amountLabel.text = model?.inboundReceivedAmount?.decimalToCurrency(as: .krw, isFront: false)
bankLabel.text = model?.inboundBankName
statusLabel.text = model?.inboundStatus
guard let status = InboundStatus(rawValue: model?.inboundStatus ?? "HOLD") else { return }
statusLabel.backgroundColor = status.color
statusLabel.layer.cornerRadius = 5
} }
} }

36
GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/User Interface/View/TransactionHistory.storyboard

@ -134,19 +134,19 @@
</subviews> </subviews>
</stackView> </stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eGL-X3-yur"> <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eGL-X3-yur">
<rect key="frame" x="0.0" y="14" width="300" height="30.5"/>
<rect key="frame" x="0.0" y="14" width="300" height="30"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="200" verticalCompressionResistancePriority="700" text="To: Dhan Singh Saud" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="p2g-GW-5Xg">
<rect key="frame" x="0.0" y="0.0" width="150" height="30.5"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="200" verticalCompressionResistancePriority="700" text="To: Dhan Singh Saud" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="p2g-GW-5Xg">
<rect key="frame" x="0.0" y="0.0" width="150" height="30"/>
<constraints> <constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="30" id="wNs-Py-y0m"/>
<constraint firstAttribute="height" constant="30" id="wNs-Py-y0m"/>
</constraints> </constraints>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="16"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="16"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="255" verticalHuggingPriority="251" horizontalCompressionResistancePriority="755" text="-1,000,000" textAlignment="right" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Dow-0z-Sq7"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="255" verticalHuggingPriority="251" horizontalCompressionResistancePriority="755" text="-1,000,000" textAlignment="right" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Dow-0z-Sq7">
<rect key="frame" x="150" y="0.0" width="150" height="30.5"/>
<rect key="frame" x="150" y="0.0" width="150" height="30"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="18"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="18"/>
<color key="textColor" name="ThemeRed"/> <color key="textColor" name="ThemeRed"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
@ -154,16 +154,16 @@
</subviews> </subviews>
</stackView> </stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4Y6-9G-6bb"> <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4Y6-9G-6bb">
<rect key="frame" x="0.0" y="44.5" width="300" height="15.5"/>
<rect key="frame" x="0.0" y="44" width="300" height="16"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="751" text="Cash Payment" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nbJ-vS-KkN"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="751" text="Cash Payment" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nbJ-vS-KkN">
<rect key="frame" x="0.0" y="0.0" width="235" height="15.5"/>
<rect key="frame" x="0.0" y="0.0" width="235" height="16"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="12"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="12"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" text="Unpaid" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oBB-nk-OGM"> <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" text="Unpaid" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oBB-nk-OGM">
<rect key="frame" x="235" y="0.0" width="65" height="15.5"/>
<rect key="frame" x="235" y="0.0" width="65" height="16"/>
<constraints> <constraints>
<constraint firstAttribute="width" constant="65" id="W8P-Xj-TuP"/> <constraint firstAttribute="width" constant="65" id="W8P-Xj-TuP"/>
</constraints> </constraints>
@ -205,7 +205,7 @@
<constraint firstAttribute="bottom" secondItem="4JO-sI-TZX" secondAttribute="bottom" id="92d-Et-mTX"/> <constraint firstAttribute="bottom" secondItem="4JO-sI-TZX" secondAttribute="bottom" id="92d-Et-mTX"/>
<constraint firstAttribute="trailing" secondItem="4JO-sI-TZX" secondAttribute="trailing" constant="5" id="XTO-Qn-Ydf"/> <constraint firstAttribute="trailing" secondItem="4JO-sI-TZX" secondAttribute="trailing" constant="5" id="XTO-Qn-Ydf"/>
<constraint firstItem="4JO-sI-TZX" firstAttribute="leading" secondItem="GwV-Rb-yET" secondAttribute="leading" id="hM8-gK-Plv"/> <constraint firstItem="4JO-sI-TZX" firstAttribute="leading" secondItem="GwV-Rb-yET" secondAttribute="leading" id="hM8-gK-Plv"/>
<constraint firstAttribute="height" constant="90" id="nVW-fb-aP2"/>
<constraint firstAttribute="height" constant="80" id="nVW-fb-aP2"/>
</constraints> </constraints>
</view> </view>
</subviews> </subviews>
@ -264,19 +264,19 @@
</subviews> </subviews>
</stackView> </stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3Tq-dD-DPn"> <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3Tq-dD-DPn">
<rect key="frame" x="0.0" y="14" width="300" height="30.5"/>
<rect key="frame" x="0.0" y="14" width="300" height="30"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="200" verticalCompressionResistancePriority="700" text="From: Sender Name" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="a0u-g8-9Ob">
<rect key="frame" x="0.0" y="0.0" width="150" height="30.5"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="200" verticalCompressionResistancePriority="700" text="From: Sender Name" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="a0u-g8-9Ob">
<rect key="frame" x="0.0" y="0.0" width="150" height="30"/>
<constraints> <constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="30" id="7jb-5c-dGn"/>
<constraint firstAttribute="height" constant="30" id="7jb-5c-dGn"/>
</constraints> </constraints>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="16"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="16"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="255" verticalHuggingPriority="251" horizontalCompressionResistancePriority="755" text="1,000,000 KRW" textAlignment="right" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="V90-xx-mYx"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="255" verticalHuggingPriority="251" horizontalCompressionResistancePriority="755" text="1,000,000 KRW" textAlignment="right" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="V90-xx-mYx">
<rect key="frame" x="150" y="0.0" width="150" height="30.5"/>
<rect key="frame" x="150" y="0.0" width="150" height="30"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="18"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="18"/>
<color key="textColor" name="ThemeRed"/> <color key="textColor" name="ThemeRed"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
@ -284,16 +284,16 @@
</subviews> </subviews>
</stackView> </stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8Kq-19-fos"> <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8Kq-19-fos">
<rect key="frame" x="0.0" y="44.5" width="300" height="15.5"/>
<rect key="frame" x="0.0" y="44" width="300" height="16"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="751" text="Shinhan" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lpz-go-gHB"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="751" text="Shinhan" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lpz-go-gHB">
<rect key="frame" x="0.0" y="0.0" width="235" height="15.5"/>
<rect key="frame" x="0.0" y="0.0" width="235" height="16"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="12"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="12"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" text="Unpaid" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ckd-qO-Mir"> <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" text="Unpaid" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ckd-qO-Mir">
<rect key="frame" x="235" y="0.0" width="65" height="15.5"/>
<rect key="frame" x="235" y="0.0" width="65" height="16"/>
<constraints> <constraints>
<constraint firstAttribute="width" constant="65" id="faj-0I-fHt"/> <constraint firstAttribute="width" constant="65" id="faj-0I-fHt"/>
</constraints> </constraints>
@ -334,7 +334,7 @@
<constraint firstItem="ZUa-2i-VcC" firstAttribute="leading" secondItem="Cbr-PP-7r5" secondAttribute="leading" id="7tr-82-GWP"/> <constraint firstItem="ZUa-2i-VcC" firstAttribute="leading" secondItem="Cbr-PP-7r5" secondAttribute="leading" id="7tr-82-GWP"/>
<constraint firstAttribute="bottom" secondItem="ZUa-2i-VcC" secondAttribute="bottom" id="Gio-dZ-q8L"/> <constraint firstAttribute="bottom" secondItem="ZUa-2i-VcC" secondAttribute="bottom" id="Gio-dZ-q8L"/>
<constraint firstItem="ZUa-2i-VcC" firstAttribute="top" secondItem="Cbr-PP-7r5" secondAttribute="top" id="Tfv-Jj-hdO"/> <constraint firstItem="ZUa-2i-VcC" firstAttribute="top" secondItem="Cbr-PP-7r5" secondAttribute="top" id="Tfv-Jj-hdO"/>
<constraint firstAttribute="height" constant="90" id="fmy-aB-DF7"/>
<constraint firstAttribute="height" constant="80" id="fmy-aB-DF7"/>
<constraint firstAttribute="trailing" secondItem="ZUa-2i-VcC" secondAttribute="trailing" constant="5" id="mM3-6P-g7e"/> <constraint firstAttribute="trailing" secondItem="ZUa-2i-VcC" secondAttribute="trailing" constant="5" id="mM3-6P-g7e"/>
</constraints> </constraints>
</view> </view>

10
GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/User Interface/View/TransactionHistoryViewController.swift

@ -200,7 +200,13 @@ extension TransactionHistoryViewController: TransactionHistoryViewInterface {
// MARK: TableViewDelegate // MARK: TableViewDelegate
extension TransactionHistoryViewController: UITableViewDelegate { extension TransactionHistoryViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
switch overseasType {
case .outbound:
self.presenter?.showDetailOf(type: receiptType ,index: indexPath.row) self.presenter?.showDetailOf(type: receiptType ,index: indexPath.row)
case .inbound:
self.presenter?.showInboundDetailOf(index: indexPath.row)
}
} }
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) { func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
@ -215,6 +221,10 @@ extension TransactionHistoryViewController: UITableViewDataSource {
return transactions.count return transactions.count
} }
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 100
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch overseasType { switch overseasType {
case .outbound: case .outbound:

5
GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/User Interface/Wireframe/TransactionHistoryWireframe.swift

@ -71,4 +71,9 @@ extension TransactionHistoryWireframe: TransactionHistoryWireframeInput {
) )
} }
} }
func openInboundReceipt(with model: TransactionModel?) {
// TODO Link InboundReceipt
InboundReceiptWireframe().push(with: model, on: view)
}
} }

2
GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/User Interface/Wireframe/TransactionHistoryWireframeInput.swift

@ -15,4 +15,6 @@ protocol TransactionHistoryWireframeInput: WireframeInput {
shouldShowCancelAmmendButton: Bool, shouldShowCancelAmmendButton: Bool,
control: String control: String
) )
func openInboundReceipt(with model: TransactionModel?)
} }

BIN
GME Remit/Supported Files/Assets.xcassets/bankCI/ibk.imageset/ibk.png

Before

Width: 100  |  Height: 67  |  Size: 7.4 KiB

After

Width: 100  |  Height: 67  |  Size: 7.4 KiB

Loading…
Cancel
Save