Explorar o código

TradeFiling complete general functions

Ray Zhang %!s(int64=5) %!d(string=hai) anos
pai
achega
488ea2478a
Modificáronse 100 ficheiros con 2713 adicións e 741 borrados
  1. 214 14
      RA TradeFiling/RA TradeFiling.xcodeproj/project.pbxproj
  2. 5 0
      RA TradeFiling/RA TradeFiling.xcodeproj/project.xcworkspace/xcuserdata/ruizhang.xcuserdatad/IDEFindNavigatorScopes.plist
  3. BIN=BIN
      RA TradeFiling/RA TradeFiling.xcodeproj/project.xcworkspace/xcuserdata/ruizhang.xcuserdatad/UserInterfaceState.xcuserstate
  4. 312 355
      RA TradeFiling/RA TradeFiling.xcodeproj/xcuserdata/ruizhang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  5. 153 0
      RA TradeFiling/RA TradeFiling/About/About.storyboard
  6. 16 0
      RA TradeFiling/RA TradeFiling/About/AboutViewController.h
  7. 49 0
      RA TradeFiling/RA TradeFiling/About/AboutViewController.m
  8. 30 30
      RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/Contents.json
  9. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-1.png
  10. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-2.png
  11. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-3.png
  12. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-4.png
  13. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-5.png
  14. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-6.png
  15. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-7.png
  16. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-8.png
  17. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon.png
  18. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/red1.png
  19. 3 6
      RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_30.imageset/Contents.json
  20. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_30.imageset/appicon-1.png
  21. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_30.imageset/appicon-2.png
  22. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_30.imageset/appicon.png
  23. 23 0
      RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_unchecked_30.imageset/Contents.json
  24. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_unchecked_30.imageset/appicon-1.png
  25. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_unchecked_30.imageset/appicon-2.png
  26. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_unchecked_30.imageset/appicon.png
  27. 23 0
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_container_blank.imageset/Contents.json
  28. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_container_blank.imageset/appicon-1.png
  29. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_container_blank.imageset/appicon-2.png
  30. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_container_blank.imageset/appicon.png
  31. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_customer.imageset/appicon-1.png
  32. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_customer.imageset/appicon-2.png
  33. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_customer.imageset/appicon.png
  34. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_more.imageset/appicon-1.png
  35. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_more.imageset/appicon-2.png
  36. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_more.imageset/appicon.png
  37. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_more_dot.imageset/appicon-1.png
  38. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_more_dot.imageset/appicon-2.png
  39. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_more_dot.imageset/appicon.png
  40. 23 0
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_search.imageset/Contents.json
  41. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_search.imageset/appicon-1.png
  42. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_search.imageset/appicon-2.png
  43. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_search.imageset/appicon.png
  44. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/login_main.imageset/appicon-1.png
  45. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/login_main.imageset/appicon-2.png
  46. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/login_main.imageset/appicon.png
  47. 23 0
      RA TradeFiling/RA TradeFiling/Assets.xcassets/status_waiting.imageset/Contents.json
  48. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/status_waiting.imageset/appicon-1.png
  49. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/status_waiting.imageset/appicon-2.png
  50. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/status_waiting.imageset/appicon.png
  51. 23 0
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_about.imageset/Contents.json
  52. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_about.imageset/appicon-1.png
  53. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_about.imageset/appicon-2.png
  54. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_about.imageset/appicon.png
  55. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_home.imageset/appicon-1.png
  56. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_home.imageset/appicon-2.png
  57. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_home.imageset/appicon.png
  58. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_login.imageset/appicon-1.png
  59. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_login.imageset/appicon-2.png
  60. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_login.imageset/appicon.png
  61. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_my.imageset/appicon-1.png
  62. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_my.imageset/appicon-2.png
  63. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_my.imageset/appicon.png
  64. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_search.imageset/tab_search.png
  65. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_search.imageset/tab_search@2x.png
  66. BIN=BIN
      RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_search.imageset/tab_search@3x.png
  67. 9 1
      RA TradeFiling/RA TradeFiling/DataProvider/OfflineDataProvider.h
  68. 99 29
      RA TradeFiling/RA TradeFiling/DataProvider/OfflineDataProvider.m
  69. 5 1
      RA TradeFiling/RA TradeFiling/DataProvider/OnlineDataProvider.h
  70. 181 5
      RA TradeFiling/RA TradeFiling/DataProvider/OnlineDataProvider.m
  71. 7 3
      RA TradeFiling/RA TradeFiling/DataProvider/RADataProvider.h
  72. 101 47
      RA TradeFiling/RA TradeFiling/DataProvider/RADataProvider.m
  73. 59 6
      RA TradeFiling/RA TradeFiling/Detail/Detail.storyboard
  74. 1 1
      RA TradeFiling/RA TradeFiling/Detail/DetailCellContainer.h
  75. 3 1
      RA TradeFiling/RA TradeFiling/Detail/DetailCellContainer.m
  76. 17 0
      RA TradeFiling/RA TradeFiling/Detail/DetailCellContainerCA.h
  77. 23 0
      RA TradeFiling/RA TradeFiling/Detail/DetailCellContainerCA.m
  78. 2 0
      RA TradeFiling/RA TradeFiling/Detail/DetailContent.h
  79. 14 14
      RA TradeFiling/RA TradeFiling/Detail/DetailContent.m
  80. 4 1
      RA TradeFiling/RA TradeFiling/Detail/DetailPageViewController.h
  81. 92 61
      RA TradeFiling/RA TradeFiling/Detail/DetailPageViewController.m
  82. 192 25
      RA TradeFiling/RA TradeFiling/Detail/DetailTabBarController.m
  83. 119 0
      RA TradeFiling/RA TradeFiling/FAKE_DATA/detail_acem1.json
  84. 70 0
      RA TradeFiling/RA TradeFiling/FAKE_DATA/detail_aci.json
  85. 85 0
      RA TradeFiling/RA TradeFiling/FAKE_DATA/detail_emanifest.json
  86. 135 0
      RA TradeFiling/RA TradeFiling/FAKE_DATA/detail_isf.json
  87. BIN=BIN
      RA TradeFiling/RA TradeFiling/FAKE_DATA/fake_export.pdf
  88. 264 104
      RA TradeFiling/RA TradeFiling/FAKE_DATA/home.json
  89. 7 0
      RA TradeFiling/RA TradeFiling/FAKE_DATA/log_acem1.json
  90. 7 0
      RA TradeFiling/RA TradeFiling/FAKE_DATA/log_aci.json
  91. 7 0
      RA TradeFiling/RA TradeFiling/FAKE_DATA/log_emanifest.json
  92. 7 0
      RA TradeFiling/RA TradeFiling/FAKE_DATA/log_hblclose.json
  93. 19 1
      RA TradeFiling/RA TradeFiling/FAKE_DATA/log_isf.json
  94. 259 5
      RA TradeFiling/RA TradeFiling/FAKE_DATA/login.json
  95. 0 1
      RA TradeFiling/RA TradeFiling/FAKE_DATA/searchresult_acem1.json
  96. 10 11
      RA TradeFiling/RA TradeFiling/FAKE_DATA/searchresult_aci.json
  97. 0 1
      RA TradeFiling/RA TradeFiling/FAKE_DATA/searchresult_customer.json
  98. 15 16
      RA TradeFiling/RA TradeFiling/FAKE_DATA/searchresult_emanifest.json
  99. 0 1
      RA TradeFiling/RA TradeFiling/FAKE_DATA/searchresult_isf.json
  100. 3 1
      RA TradeFiling/RA TradeFiling/Home/CollectionViewButtonCell.h

+ 214 - 14
RA TradeFiling/RA TradeFiling.xcodeproj/project.pbxproj

@@ -45,6 +45,30 @@
 		3C2431A2258B3C7A00555555 /* ResultISFCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C2431A0258B3C7A00555555 /* ResultISFCell.m */; };
 		3C2431A3258B3C7A00555555 /* ResultISFCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C2431A1258B3C7A00555555 /* ResultISFCell.xib */; };
 		3C2431B2258B48AA00555555 /* ResultISFModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C2431B1258B48AA00555555 /* ResultISFModel.m */; };
+		3C452F3425B9766C0035AF5F /* HomeDashISFCellP.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452F3225B9766C0035AF5F /* HomeDashISFCellP.m */; };
+		3C452F3525B9766C0035AF5F /* HomeDashISFCellP.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C452F3325B9766C0035AF5F /* HomeDashISFCellP.xib */; };
+		3C452F3B25B9795C0035AF5F /* HomeDashISFModelP.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452F3A25B9795C0035AF5F /* HomeDashISFModelP.m */; };
+		3C452F4425BA73F70035AF5F /* HomeDashACEM1ModelP.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452F4325BA73F70035AF5F /* HomeDashACEM1ModelP.m */; };
+		3C452F4B25BA74610035AF5F /* HomeDashACEM1CellP.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452F4925BA74610035AF5F /* HomeDashACEM1CellP.m */; };
+		3C452F4C25BA74610035AF5F /* HomeDashACEM1CellP.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C452F4A25BA74610035AF5F /* HomeDashACEM1CellP.xib */; };
+		3C452F5F25BAA5570035AF5F /* HomeDashACICellP.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452F5D25BAA5570035AF5F /* HomeDashACICellP.m */; };
+		3C452F6025BAA5570035AF5F /* HomeDashACICellP.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C452F5E25BAA5570035AF5F /* HomeDashACICellP.xib */; };
+		3C452F6925BAA5790035AF5F /* HomeDashACIModelP.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452F6825BAA5790035AF5F /* HomeDashACIModelP.m */; };
+		3C452F6F25BABA2B0035AF5F /* HomeDasheManifestModelP.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452F6E25BABA2B0035AF5F /* HomeDasheManifestModelP.m */; };
+		3C452F7625BABA740035AF5F /* HomeDasheManifestCellP.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452F7425BABA740035AF5F /* HomeDasheManifestCellP.m */; };
+		3C452F7725BABA740035AF5F /* HomeDasheManifestCellP.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C452F7525BABA740035AF5F /* HomeDasheManifestCellP.xib */; };
+		3C452F7E25BE73190035AF5F /* HomeDashISFCellE.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452F7C25BE73190035AF5F /* HomeDashISFCellE.m */; };
+		3C452F7F25BE73190035AF5F /* HomeDashISFCellE.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C452F7D25BE73190035AF5F /* HomeDashISFCellE.xib */; };
+		3C452F8525BE733A0035AF5F /* HomeDashISFModelE.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452F8425BE733A0035AF5F /* HomeDashISFModelE.m */; };
+		3C452F8E25BE971C0035AF5F /* HomeDashACEM1ModelE.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452F8D25BE971C0035AF5F /* HomeDashACEM1ModelE.m */; };
+		3C452F9825BE97430035AF5F /* HomeDashACEM1CellE.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452F9625BE97430035AF5F /* HomeDashACEM1CellE.m */; };
+		3C452F9925BE97430035AF5F /* HomeDashACEM1CellE.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C452F9725BE97430035AF5F /* HomeDashACEM1CellE.xib */; };
+		3C452FA025BE98270035AF5F /* HomeDashACICellE.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452F9E25BE98270035AF5F /* HomeDashACICellE.m */; };
+		3C452FA125BE98270035AF5F /* HomeDashACICellE.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C452F9F25BE98270035AF5F /* HomeDashACICellE.xib */; };
+		3C452FA825BE98410035AF5F /* HomeDasheManifestCellE.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452FA625BE98410035AF5F /* HomeDasheManifestCellE.m */; };
+		3C452FA925BE98410035AF5F /* HomeDasheManifestCellE.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C452FA725BE98410035AF5F /* HomeDasheManifestCellE.xib */; };
+		3C452FAF25BE985C0035AF5F /* HomeDashACIModelE.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452FAE25BE985C0035AF5F /* HomeDashACIModelE.m */; };
+		3C452FB525BE987C0035AF5F /* HomeDasheManifestModelE.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C452FB425BE987C0035AF5F /* HomeDasheManifestModelE.m */; };
 		3C5F8B482564F8D300CFD26A /* JLRefreshBasis.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C5F8B472564F8D300CFD26A /* JLRefreshBasis.m */; };
 		3C5F8B552564FDD100CFD26A /* ResultViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C5F8B522564FDD100CFD26A /* ResultViewController.m */; };
 		3C5F8B562564FDD100CFD26A /* Result.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C5F8B532564FDD100CFD26A /* Result.storyboard */; };
@@ -140,14 +164,17 @@
 		3C7670B225ABFDFF00588DB5 /* wkweb.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C7670B125ABFDFF00588DB5 /* wkweb.storyboard */; };
 		3C7670D825AC268300588DB5 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3C7670D625AC268300588DB5 /* Localizable.strings */; };
 		3C7670E125AC275700588DB5 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3C7670E325AC275700588DB5 /* Localizable.strings */; };
+		3C7670FE25B6ABE900588DB5 /* About.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C7670FD25B6ABE900588DB5 /* About.storyboard */; };
+		3C76710425B6AFF800588DB5 /* AboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C76710325B6AFF800588DB5 /* AboutViewController.m */; };
+		3C76710D25B6D94100588DB5 /* SignupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C76710C25B6D94100588DB5 /* SignupViewController.m */; };
+		3C76711425B7C28600588DB5 /* AgreementViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C76711325B7C28600588DB5 /* AgreementViewController.m */; };
+		3C76711C25B7C29800588DB5 /* SignUp.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C76711B25B7C29800588DB5 /* SignUp.storyboard */; };
 		3C7F37282563CC5F0033BF82 /* NetworkUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7F37262563CC5F0033BF82 /* NetworkUtils.m */; };
-		3C7F37342563CD4E0033BF82 /* RANetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7F37332563CD4E0033BF82 /* RANetwork.m */; };
 		3C7F37432563CDB70033BF82 /* NSData+CommonCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7F373B2563CDB70033BF82 /* NSData+CommonCrypto.m */; };
 		3C7F37442563CDB70033BF82 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = 3C7F373C2563CDB70033BF82 /* LICENSE */; };
 		3C7F37452563CDB70033BF82 /* NSString+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7F373F2563CDB70033BF82 /* NSString+Base64.m */; };
 		3C7F37462563CDB70033BF82 /* NSData+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7F37402563CDB70033BF82 /* NSData+Base64.m */; };
 		3C7F37472563CDB70033BF82 /* AESCrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7F37422563CDB70033BF82 /* AESCrypt.m */; };
-		3C7F374D2564C03F0033BF82 /* RAHomeOrderModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7F374C2564C03F0033BF82 /* RAHomeOrderModel.m */; };
 		3C7F37532564C0690033BF82 /* RAEmptyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7F37512564C0690033BF82 /* RAEmptyView.m */; };
 		3C7F376A2564C11E0033BF82 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7F37662564C11E0033BF82 /* Reachability.m */; };
 		3C7F37712564C13F0033BF82 /* RANetworkTaskDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7F376F2564C13E0033BF82 /* RANetworkTaskDelegate.m */; };
@@ -164,6 +191,12 @@
 		3C7F38232564C70F0033BF82 /* JLCustomerAlertController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7F38222564C70F0033BF82 /* JLCustomerAlertController.m */; };
 		3C7F382D2564C78C0033BF82 /* JLRefreshFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7F382C2564C78C0033BF82 /* JLRefreshFooter.m */; };
 		3C7F38392564C7EB0033BF82 /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7F38372564C7EB0033BF82 /* WebViewController.m */; };
+		3C833CA925C7D6CB006F9BEF /* detail_acem1.json in Resources */ = {isa = PBXBuildFile; fileRef = 3C833CA825C7D6CB006F9BEF /* detail_acem1.json */; };
+		3C833CAE25C92665006F9BEF /* detail_isf.json in Resources */ = {isa = PBXBuildFile; fileRef = 3C833CAD25C92665006F9BEF /* detail_isf.json */; };
+		3C833CB325C941AB006F9BEF /* detail_aci.json in Resources */ = {isa = PBXBuildFile; fileRef = 3C833CB225C941AB006F9BEF /* detail_aci.json */; };
+		3C833CB825C94289006F9BEF /* detail_emanifest.json in Resources */ = {isa = PBXBuildFile; fileRef = 3C833CB725C94289006F9BEF /* detail_emanifest.json */; };
+		3C833CBE25C944FE006F9BEF /* DetailCellContainerCA.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C833CBD25C944FE006F9BEF /* DetailCellContainerCA.m */; };
+		3C833CD225CBF10B006F9BEF /* fake_export.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 3C833CD125CBF10A006F9BEF /* fake_export.pdf */; };
 		3CAB3FDB2564F27D00CB554D /* RAUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CAB3FDA2564F27D00CB554D /* RAUtils.m */; };
 /* End PBXBuildFile section */
 
@@ -249,6 +282,46 @@
 		3C2431A1258B3C7A00555555 /* ResultISFCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ResultISFCell.xib; sourceTree = "<group>"; };
 		3C2431B0258B48AA00555555 /* ResultISFModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ResultISFModel.h; sourceTree = "<group>"; };
 		3C2431B1258B48AA00555555 /* ResultISFModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ResultISFModel.m; sourceTree = "<group>"; };
+		3C452F3125B9766C0035AF5F /* HomeDashISFCellP.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDashISFCellP.h; sourceTree = "<group>"; };
+		3C452F3225B9766C0035AF5F /* HomeDashISFCellP.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDashISFCellP.m; sourceTree = "<group>"; };
+		3C452F3325B9766C0035AF5F /* HomeDashISFCellP.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeDashISFCellP.xib; sourceTree = "<group>"; };
+		3C452F3925B9795C0035AF5F /* HomeDashISFModelP.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDashISFModelP.h; sourceTree = "<group>"; };
+		3C452F3A25B9795C0035AF5F /* HomeDashISFModelP.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDashISFModelP.m; sourceTree = "<group>"; };
+		3C452F4225BA73F70035AF5F /* HomeDashACEM1ModelP.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDashACEM1ModelP.h; sourceTree = "<group>"; };
+		3C452F4325BA73F70035AF5F /* HomeDashACEM1ModelP.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDashACEM1ModelP.m; sourceTree = "<group>"; };
+		3C452F4825BA74610035AF5F /* HomeDashACEM1CellP.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDashACEM1CellP.h; sourceTree = "<group>"; };
+		3C452F4925BA74610035AF5F /* HomeDashACEM1CellP.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDashACEM1CellP.m; sourceTree = "<group>"; };
+		3C452F4A25BA74610035AF5F /* HomeDashACEM1CellP.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeDashACEM1CellP.xib; sourceTree = "<group>"; };
+		3C452F5C25BAA5570035AF5F /* HomeDashACICellP.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDashACICellP.h; sourceTree = "<group>"; };
+		3C452F5D25BAA5570035AF5F /* HomeDashACICellP.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDashACICellP.m; sourceTree = "<group>"; };
+		3C452F5E25BAA5570035AF5F /* HomeDashACICellP.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeDashACICellP.xib; sourceTree = "<group>"; };
+		3C452F6725BAA5790035AF5F /* HomeDashACIModelP.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDashACIModelP.h; sourceTree = "<group>"; };
+		3C452F6825BAA5790035AF5F /* HomeDashACIModelP.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDashACIModelP.m; sourceTree = "<group>"; };
+		3C452F6D25BABA2B0035AF5F /* HomeDasheManifestModelP.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDasheManifestModelP.h; sourceTree = "<group>"; };
+		3C452F6E25BABA2B0035AF5F /* HomeDasheManifestModelP.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDasheManifestModelP.m; sourceTree = "<group>"; };
+		3C452F7325BABA740035AF5F /* HomeDasheManifestCellP.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDasheManifestCellP.h; sourceTree = "<group>"; };
+		3C452F7425BABA740035AF5F /* HomeDasheManifestCellP.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDasheManifestCellP.m; sourceTree = "<group>"; };
+		3C452F7525BABA740035AF5F /* HomeDasheManifestCellP.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeDasheManifestCellP.xib; sourceTree = "<group>"; };
+		3C452F7B25BE73190035AF5F /* HomeDashISFCellE.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDashISFCellE.h; sourceTree = "<group>"; };
+		3C452F7C25BE73190035AF5F /* HomeDashISFCellE.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDashISFCellE.m; sourceTree = "<group>"; };
+		3C452F7D25BE73190035AF5F /* HomeDashISFCellE.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeDashISFCellE.xib; sourceTree = "<group>"; };
+		3C452F8325BE733A0035AF5F /* HomeDashISFModelE.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDashISFModelE.h; sourceTree = "<group>"; };
+		3C452F8425BE733A0035AF5F /* HomeDashISFModelE.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDashISFModelE.m; sourceTree = "<group>"; };
+		3C452F8C25BE971C0035AF5F /* HomeDashACEM1ModelE.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDashACEM1ModelE.h; sourceTree = "<group>"; };
+		3C452F8D25BE971C0035AF5F /* HomeDashACEM1ModelE.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDashACEM1ModelE.m; sourceTree = "<group>"; };
+		3C452F9525BE97430035AF5F /* HomeDashACEM1CellE.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDashACEM1CellE.h; sourceTree = "<group>"; };
+		3C452F9625BE97430035AF5F /* HomeDashACEM1CellE.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDashACEM1CellE.m; sourceTree = "<group>"; };
+		3C452F9725BE97430035AF5F /* HomeDashACEM1CellE.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeDashACEM1CellE.xib; sourceTree = "<group>"; };
+		3C452F9D25BE98270035AF5F /* HomeDashACICellE.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDashACICellE.h; sourceTree = "<group>"; };
+		3C452F9E25BE98270035AF5F /* HomeDashACICellE.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDashACICellE.m; sourceTree = "<group>"; };
+		3C452F9F25BE98270035AF5F /* HomeDashACICellE.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeDashACICellE.xib; sourceTree = "<group>"; };
+		3C452FA525BE98410035AF5F /* HomeDasheManifestCellE.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDasheManifestCellE.h; sourceTree = "<group>"; };
+		3C452FA625BE98410035AF5F /* HomeDasheManifestCellE.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDasheManifestCellE.m; sourceTree = "<group>"; };
+		3C452FA725BE98410035AF5F /* HomeDasheManifestCellE.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeDasheManifestCellE.xib; sourceTree = "<group>"; };
+		3C452FAD25BE985C0035AF5F /* HomeDashACIModelE.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDashACIModelE.h; sourceTree = "<group>"; };
+		3C452FAE25BE985C0035AF5F /* HomeDashACIModelE.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDashACIModelE.m; sourceTree = "<group>"; };
+		3C452FB325BE987C0035AF5F /* HomeDasheManifestModelE.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeDasheManifestModelE.h; sourceTree = "<group>"; };
+		3C452FB425BE987C0035AF5F /* HomeDasheManifestModelE.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeDasheManifestModelE.m; sourceTree = "<group>"; };
 		3C5F8B422564F3DD00CFD26A /* common_const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = common_const.h; path = ../../common/common_const.h; sourceTree = "<group>"; };
 		3C5F8B462564F8D300CFD26A /* JLRefreshBasis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JLRefreshBasis.h; path = ../../common/customUI/Refresh/JLRefreshBasis.h; sourceTree = "<group>"; };
 		3C5F8B472564F8D300CFD26A /* JLRefreshBasis.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = JLRefreshBasis.m; path = ../../common/customUI/Refresh/JLRefreshBasis.m; sourceTree = "<group>"; };
@@ -409,10 +482,16 @@
 		3C7670B825AC254C00588DB5 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/LaunchScreen.strings"; sourceTree = "<group>"; };
 		3C7670D725AC268300588DB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
 		3C7670E225AC275700588DB5 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; };
+		3C7670FD25B6ABE900588DB5 /* About.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = About.storyboard; sourceTree = "<group>"; };
+		3C76710225B6AFF800588DB5 /* AboutViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AboutViewController.h; sourceTree = "<group>"; };
+		3C76710325B6AFF800588DB5 /* AboutViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AboutViewController.m; sourceTree = "<group>"; };
+		3C76710B25B6D94100588DB5 /* SignupViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SignupViewController.h; sourceTree = "<group>"; };
+		3C76710C25B6D94100588DB5 /* SignupViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SignupViewController.m; sourceTree = "<group>"; };
+		3C76711225B7C28600588DB5 /* AgreementViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AgreementViewController.h; sourceTree = "<group>"; };
+		3C76711325B7C28600588DB5 /* AgreementViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AgreementViewController.m; sourceTree = "<group>"; };
+		3C76711B25B7C29800588DB5 /* SignUp.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = SignUp.storyboard; sourceTree = "<group>"; };
 		3C7F37262563CC5F0033BF82 /* NetworkUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NetworkUtils.m; path = ../../../common/NetworkUtils.m; sourceTree = "<group>"; };
 		3C7F37272563CC5F0033BF82 /* NetworkUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkUtils.h; path = ../../../common/NetworkUtils.h; sourceTree = "<group>"; };
-		3C7F37322563CD4E0033BF82 /* RANetwork.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RANetwork.h; sourceTree = "<group>"; };
-		3C7F37332563CD4E0033BF82 /* RANetwork.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RANetwork.m; sourceTree = "<group>"; };
 		3C7F373A2563CDB70033BF82 /* NSData+CommonCrypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSData+CommonCrypto.h"; path = "../../../RedAnt ERP Mobile/common/AES/NSData+CommonCrypto.h"; sourceTree = "<group>"; };
 		3C7F373B2563CDB70033BF82 /* NSData+CommonCrypto.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSData+CommonCrypto.m"; path = "../../../RedAnt ERP Mobile/common/AES/NSData+CommonCrypto.m"; sourceTree = "<group>"; };
 		3C7F373C2563CDB70033BF82 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = LICENSE; path = "../../../RedAnt ERP Mobile/common/AES/LICENSE"; sourceTree = "<group>"; };
@@ -422,8 +501,6 @@
 		3C7F37402563CDB70033BF82 /* NSData+Base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSData+Base64.m"; path = "../../../RedAnt ERP Mobile/common/AES/NSData+Base64.m"; sourceTree = "<group>"; };
 		3C7F37412563CDB70033BF82 /* NSData+Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSData+Base64.h"; path = "../../../RedAnt ERP Mobile/common/AES/NSData+Base64.h"; sourceTree = "<group>"; };
 		3C7F37422563CDB70033BF82 /* AESCrypt.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AESCrypt.m; path = "../../../RedAnt ERP Mobile/common/AES/AESCrypt.m"; sourceTree = "<group>"; };
-		3C7F374B2564C03F0033BF82 /* RAHomeOrderModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAHomeOrderModel.h; sourceTree = "<group>"; };
-		3C7F374C2564C03F0033BF82 /* RAHomeOrderModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAHomeOrderModel.m; sourceTree = "<group>"; };
 		3C7F37512564C0690033BF82 /* RAEmptyView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAEmptyView.m; path = ../../common/EmptyView/RAEmptyView.m; sourceTree = "<group>"; };
 		3C7F37522564C0690033BF82 /* RAEmptyView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RAEmptyView.h; path = ../../common/EmptyView/RAEmptyView.h; sourceTree = "<group>"; };
 		3C7F37662564C11E0033BF82 /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Reachability.m; path = ../../../common/Network/Reachability.m; sourceTree = "<group>"; };
@@ -456,6 +533,13 @@
 		3C7F382C2564C78C0033BF82 /* JLRefreshFooter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = JLRefreshFooter.m; path = ../../common/customUI/Refresh/Footer/JLRefreshFooter.m; sourceTree = "<group>"; };
 		3C7F38372564C7EB0033BF82 /* WebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WebViewController.m; path = "../../common/WK PDF+Web/WebViewController.m"; sourceTree = "<group>"; };
 		3C7F38382564C7EB0033BF82 /* WebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebViewController.h; path = "../../common/WK PDF+Web/WebViewController.h"; sourceTree = "<group>"; };
+		3C833CA825C7D6CB006F9BEF /* detail_acem1.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = detail_acem1.json; sourceTree = "<group>"; };
+		3C833CAD25C92665006F9BEF /* detail_isf.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = detail_isf.json; sourceTree = "<group>"; };
+		3C833CB225C941AB006F9BEF /* detail_aci.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = detail_aci.json; sourceTree = "<group>"; };
+		3C833CB725C94289006F9BEF /* detail_emanifest.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = detail_emanifest.json; sourceTree = "<group>"; };
+		3C833CBC25C944FE006F9BEF /* DetailCellContainerCA.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DetailCellContainerCA.h; sourceTree = "<group>"; };
+		3C833CBD25C944FE006F9BEF /* DetailCellContainerCA.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DetailCellContainerCA.m; sourceTree = "<group>"; };
+		3C833CD125CBF10A006F9BEF /* fake_export.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = fake_export.pdf; sourceTree = "<group>"; };
 		3CAB3FD92564F27D00CB554D /* RAUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RAUtils.h; path = ../../common/RAUtils.h; sourceTree = "<group>"; };
 		3CAB3FDA2564F27D00CB554D /* RAUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAUtils.m; path = ../../common/RAUtils.m; sourceTree = "<group>"; };
 /* End PBXFileReference section */
@@ -508,6 +592,8 @@
 		3C0CB333255E56BF00718A03 /* RA TradeFiling */ = {
 			isa = PBXGroup;
 			children = (
+				3C76711125B7C26300588DB5 /* SignUp */,
+				3C7670FC25B6ABC100588DB5 /* About */,
 				3C7670BF25AC257F00588DB5 /* Localize */,
 				3C5F8D6A257F545A00CFD26A /* Share */,
 				3C5F8CD525777E5800CFD26A /* CustomFields */,
@@ -616,8 +702,6 @@
 				3C7F37912564C2720033BF82 /* RAHomeHeaderView.m */,
 				3C7F37782564C1E10033BF82 /* RABadgeNumberView.h */,
 				3C7F37792564C1E10033BF82 /* RABadgeNumberView.m */,
-				3C7F374B2564C03F0033BF82 /* RAHomeOrderModel.h */,
-				3C7F374C2564C03F0033BF82 /* RAHomeOrderModel.m */,
 				3C0CB3BE256253D800718A03 /* RABaseViewController.h */,
 				3C0CB3BF256253D900718A03 /* RABaseViewController.m */,
 				3C0CB3A0255E81CC00718A03 /* RAHomeViewController.h */,
@@ -643,6 +727,8 @@
 				3C5F8CC12576220400CFD26A /* DashboardModel.m */,
 				3C5F8D8D2580B4E500CFD26A /* CompanySelectViewController.h */,
 				3C5F8D8E2580B4E500CFD26A /* CompanySelectViewController.m */,
+				3C452FBC25BE9BA00035AF5F /* DashCellPending */,
+				3C452FBD25BE9BB10035AF5F /* DashCellError */,
 			);
 			path = Home;
 			sourceTree = "<group>";
@@ -692,6 +778,8 @@
 				3C5F8D32257E2A8C00CFD26A /* DetailPageViewController.h */,
 				3C5F8D31257E2A8C00CFD26A /* DetailPageViewController.m */,
 				3C5F8D37257E2AEF00CFD26A /* DetailCellKVNew.h */,
+				3C833CBC25C944FE006F9BEF /* DetailCellContainerCA.h */,
+				3C833CBD25C944FE006F9BEF /* DetailCellContainerCA.m */,
 				3C76707825A453AD00588DB5 /* DetailCellContainer.h */,
 				3C76707925A453AD00588DB5 /* DetailCellContainer.m */,
 				3C5F8D38257E2AEF00CFD26A /* DetailCellKVNew.m */,
@@ -788,12 +876,64 @@
 				3C7F37662564C11E0033BF82 /* Reachability.m */,
 				3C7F37272563CC5F0033BF82 /* NetworkUtils.h */,
 				3C7F37262563CC5F0033BF82 /* NetworkUtils.m */,
-				3C7F37322563CD4E0033BF82 /* RANetwork.h */,
-				3C7F37332563CD4E0033BF82 /* RANetwork.m */,
 			);
 			path = Network;
 			sourceTree = "<group>";
 		};
+		3C452FBC25BE9BA00035AF5F /* DashCellPending */ = {
+			isa = PBXGroup;
+			children = (
+				3C452F3925B9795C0035AF5F /* HomeDashISFModelP.h */,
+				3C452F3A25B9795C0035AF5F /* HomeDashISFModelP.m */,
+				3C452F3125B9766C0035AF5F /* HomeDashISFCellP.h */,
+				3C452F3225B9766C0035AF5F /* HomeDashISFCellP.m */,
+				3C452F3325B9766C0035AF5F /* HomeDashISFCellP.xib */,
+				3C452F4225BA73F70035AF5F /* HomeDashACEM1ModelP.h */,
+				3C452F4325BA73F70035AF5F /* HomeDashACEM1ModelP.m */,
+				3C452F4825BA74610035AF5F /* HomeDashACEM1CellP.h */,
+				3C452F4925BA74610035AF5F /* HomeDashACEM1CellP.m */,
+				3C452F4A25BA74610035AF5F /* HomeDashACEM1CellP.xib */,
+				3C452F6725BAA5790035AF5F /* HomeDashACIModelP.h */,
+				3C452F6825BAA5790035AF5F /* HomeDashACIModelP.m */,
+				3C452F5C25BAA5570035AF5F /* HomeDashACICellP.h */,
+				3C452F5D25BAA5570035AF5F /* HomeDashACICellP.m */,
+				3C452F5E25BAA5570035AF5F /* HomeDashACICellP.xib */,
+				3C452F6D25BABA2B0035AF5F /* HomeDasheManifestModelP.h */,
+				3C452F6E25BABA2B0035AF5F /* HomeDasheManifestModelP.m */,
+				3C452F7325BABA740035AF5F /* HomeDasheManifestCellP.h */,
+				3C452F7425BABA740035AF5F /* HomeDasheManifestCellP.m */,
+				3C452F7525BABA740035AF5F /* HomeDasheManifestCellP.xib */,
+			);
+			path = DashCellPending;
+			sourceTree = "<group>";
+		};
+		3C452FBD25BE9BB10035AF5F /* DashCellError */ = {
+			isa = PBXGroup;
+			children = (
+				3C452F7B25BE73190035AF5F /* HomeDashISFCellE.h */,
+				3C452F7C25BE73190035AF5F /* HomeDashISFCellE.m */,
+				3C452F7D25BE73190035AF5F /* HomeDashISFCellE.xib */,
+				3C452F8325BE733A0035AF5F /* HomeDashISFModelE.h */,
+				3C452F8425BE733A0035AF5F /* HomeDashISFModelE.m */,
+				3C452F9525BE97430035AF5F /* HomeDashACEM1CellE.h */,
+				3C452F9625BE97430035AF5F /* HomeDashACEM1CellE.m */,
+				3C452F9725BE97430035AF5F /* HomeDashACEM1CellE.xib */,
+				3C452F8C25BE971C0035AF5F /* HomeDashACEM1ModelE.h */,
+				3C452F8D25BE971C0035AF5F /* HomeDashACEM1ModelE.m */,
+				3C452F9D25BE98270035AF5F /* HomeDashACICellE.h */,
+				3C452F9E25BE98270035AF5F /* HomeDashACICellE.m */,
+				3C452F9F25BE98270035AF5F /* HomeDashACICellE.xib */,
+				3C452FAD25BE985C0035AF5F /* HomeDashACIModelE.h */,
+				3C452FAE25BE985C0035AF5F /* HomeDashACIModelE.m */,
+				3C452FA525BE98410035AF5F /* HomeDasheManifestCellE.h */,
+				3C452FA625BE98410035AF5F /* HomeDasheManifestCellE.m */,
+				3C452FA725BE98410035AF5F /* HomeDasheManifestCellE.xib */,
+				3C452FB325BE987C0035AF5F /* HomeDasheManifestModelE.h */,
+				3C452FB425BE987C0035AF5F /* HomeDasheManifestModelE.m */,
+			);
+			path = DashCellError;
+			sourceTree = "<group>";
+		};
 		3C5F8C722566609B00CFD26A /* DataProvider */ = {
 			isa = PBXGroup;
 			children = (
@@ -810,6 +950,7 @@
 		3C5F8C822567B72800CFD26A /* FAKE_DATA */ = {
 			isa = PBXGroup;
 			children = (
+				3C833CD125CBF10A006F9BEF /* fake_export.pdf */,
 				3C5F8CB22574C92200CFD26A /* home.json */,
 				3C5F8D1A257A2BCB00CFD26A /* searchresult_aci.json */,
 				3C5F8DB92583655200CFD26A /* searchresult_emanifest.json */,
@@ -825,6 +966,10 @@
 				3C7670A725A84C5900588DB5 /* log_hblclose.json */,
 				3C76709D25A84C1E00588DB5 /* log_aci.json */,
 				3C76707325A2F60C00588DB5 /* container.json */,
+				3C833CA825C7D6CB006F9BEF /* detail_acem1.json */,
+				3C833CAD25C92665006F9BEF /* detail_isf.json */,
+				3C833CB225C941AB006F9BEF /* detail_aci.json */,
+				3C833CB725C94289006F9BEF /* detail_emanifest.json */,
 			);
 			path = FAKE_DATA;
 			sourceTree = "<group>";
@@ -857,6 +1002,28 @@
 			path = Localize;
 			sourceTree = "<group>";
 		};
+		3C7670FC25B6ABC100588DB5 /* About */ = {
+			isa = PBXGroup;
+			children = (
+				3C7670FD25B6ABE900588DB5 /* About.storyboard */,
+				3C76710225B6AFF800588DB5 /* AboutViewController.h */,
+				3C76710325B6AFF800588DB5 /* AboutViewController.m */,
+			);
+			path = About;
+			sourceTree = "<group>";
+		};
+		3C76711125B7C26300588DB5 /* SignUp */ = {
+			isa = PBXGroup;
+			children = (
+				3C76711225B7C28600588DB5 /* AgreementViewController.h */,
+				3C76711325B7C28600588DB5 /* AgreementViewController.m */,
+				3C76711B25B7C29800588DB5 /* SignUp.storyboard */,
+				3C76710B25B6D94100588DB5 /* SignupViewController.h */,
+				3C76710C25B6D94100588DB5 /* SignupViewController.m */,
+			);
+			path = SignUp;
+			sourceTree = "<group>";
+		};
 		3C7F37162563CB710033BF82 /* Common */ = {
 			isa = PBXGroup;
 			children = (
@@ -1042,14 +1209,17 @@
 			buildActionMask = 2147483647;
 			files = (
 				3C767067259B200F00588DB5 /* HomeDashEmptyCell.xib in Resources */,
+				3C452FA125BE98270035AF5F /* HomeDashACICellE.xib in Resources */,
 				3C76707425A2F60C00588DB5 /* container.json in Resources */,
 				3C2431A3258B3C7A00555555 /* ResultISFCell.xib in Resources */,
 				3C24317C258B00A800555555 /* searchresult_customer.json in Resources */,
+				3C452F3525B9766C0035AF5F /* HomeDashISFCellP.xib in Resources */,
 				3C5F8BC9256503ED00CFD26A /* ApexResultAdditionView.xib in Resources */,
 				3C5F8C87256B935E00CFD26A /* my.json in Resources */,
 				3C5F8D16257A265600CFD26A /* result_aci.json in Resources */,
 				3C0CB3B4255E825B00718A03 /* Login.storyboard in Resources */,
 				3C0CB344255E56BF00718A03 /* LaunchScreen.storyboard in Resources */,
+				3C833CAE25C92665006F9BEF /* detail_isf.json in Resources */,
 				3C7670E125AC275700588DB5 /* Localizable.strings in Resources */,
 				3C5F8D84257F5CA800CFD26A /* Detail.storyboard in Resources */,
 				3C76706F25A2F4F000588DB5 /* log_isf.json in Resources */,
@@ -1062,8 +1232,11 @@
 				3C5F8C4525650B0E00CFD26A /* ResultACEM1Cell.xib in Resources */,
 				3C0CB398255E81BD00718A03 /* HomeHeader.xib in Resources */,
 				3C5F8CE42578807100CFD26A /* search_aci.json in Resources */,
+				3C452F4C25BA74610035AF5F /* HomeDashACEM1CellP.xib in Resources */,
+				3C833CA925C7D6CB006F9BEF /* detail_acem1.json in Resources */,
 				3C5F8DBA2583655200CFD26A /* searchresult_emanifest.json in Resources */,
 				3C7670AD25A84C8600588DB5 /* detail_customer.json in Resources */,
+				3C452F7F25BE73190035AF5F /* HomeDashISFCellE.xib in Resources */,
 				3C5F8D972583500A00CFD26A /* ResultACICell.xib in Resources */,
 				3C5F8D89258079BA00CFD26A /* login.json in Resources */,
 				3C2431572589F26100555555 /* searchresult_acem1.json in Resources */,
@@ -1075,24 +1248,33 @@
 				3C5F8CD725777E7300CFD26A /* Fields.storyboard in Resources */,
 				3C5F8CB32574C92300CFD26A /* home.json in Resources */,
 				3C24316E258AF60000555555 /* ResultCustomerCell.xib in Resources */,
+				3C7670FE25B6ABE900588DB5 /* About.storyboard in Resources */,
 				3C5F8CE62578807100CFD26A /* search_emanifest.json in Resources */,
 				3C7670D825AC268300588DB5 /* Localizable.strings in Resources */,
 				3C7F37442563CDB70033BF82 /* LICENSE in Resources */,
+				3C76711C25B7C29800588DB5 /* SignUp.storyboard in Resources */,
 				3C5F8D15257A265600CFD26A /* result_isf.json in Resources */,
 				3C5F8C9D256E3A5900CFD26A /* CollectionViewButtonCell.xib in Resources */,
+				3C452F9925BE97430035AF5F /* HomeDashACEM1CellE.xib in Resources */,
 				3C0CB341255E56BF00718A03 /* Assets.xcassets in Resources */,
 				3C5F8B562564FDD100CFD26A /* Result.storyboard in Resources */,
 				3C5F8D1B257A2BCB00CFD26A /* searchresult_aci.json in Resources */,
+				3C833CB325C941AB006F9BEF /* detail_aci.json in Resources */,
+				3C452F7725BABA740035AF5F /* HomeDasheManifestCellP.xib in Resources */,
 				3C7670A825A84C5900588DB5 /* log_hblclose.json in Resources */,
 				3C0CB3CE2562739F00718A03 /* StaticModelistViewController.xib in Resources */,
 				3C243181258B016C00555555 /* search_customer.json in Resources */,
 				3C0CB3AA255E81F300718A03 /* Search.storyboard in Resources */,
 				3C7670562599B2C700588DB5 /* ResulteManifestCell.xib in Resources */,
 				3C2431522589EF7400555555 /* searchresult_isf.json in Resources */,
+				3C452F6025BAA5570035AF5F /* HomeDashACICellP.xib in Resources */,
 				3C5F8CCE25777A2100CFD26A /* search_acem1.json in Resources */,
 				3C0CB33F255E56BF00718A03 /* Main.storyboard in Resources */,
+				3C452FA925BE98410035AF5F /* HomeDasheManifestCellE.xib in Resources */,
 				3C7670392595BE2A00588DB5 /* detail.json in Resources */,
+				3C833CD225CBF10B006F9BEF /* fake_export.pdf in Resources */,
 				3C0CB3AF255E821500718A03 /* My.storyboard in Resources */,
+				3C833CB825C94289006F9BEF /* detail_emanifest.json in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1117,8 +1299,10 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				3C76710D25B6D94100588DB5 /* SignupViewController.m in Sources */,
 				3C76707A25A453AD00588DB5 /* DetailCellContainer.m in Sources */,
 				3C5F8C3C25650A8500CFD26A /* TableCellBool.m in Sources */,
+				3C452F3425B9766C0035AF5F /* HomeDashISFCellP.m in Sources */,
 				3C7F37E02564C3DD0033BF82 /* UIScrollView+Empty.m in Sources */,
 				3C5F8C6E2565196A00CFD26A /* JLPresentationController.m in Sources */,
 				3C5F8C8D256CFF6F00CFD26A /* CollectionViewButtonCell.m in Sources */,
@@ -1134,21 +1318,25 @@
 				3C7F37462563CDB70033BF82 /* NSData+Base64.m in Sources */,
 				3C0CB33C255E56BF00718A03 /* ViewController.m in Sources */,
 				3C7F38392564C7EB0033BF82 /* WebViewController.m in Sources */,
+				3C452F5F25BAA5570035AF5F /* HomeDashACICellP.m in Sources */,
 				3C7F37E12564C3DD0033BF82 /* RAEmptyDataView.m in Sources */,
+				3C452F8525BE733A0035AF5F /* HomeDashISFModelE.m in Sources */,
 				3C5F8BE12565055400CFD26A /* SavedSearchViewController.m in Sources */,
 				3CAB3FDB2564F27D00CB554D /* RAUtils.m in Sources */,
+				3C452F8E25BE971C0035AF5F /* HomeDashACEM1ModelE.m in Sources */,
 				3C5F8C7B2566610A00CFD26A /* OfflineDataProvider.m in Sources */,
 				3C5F8C75256660E900CFD26A /* OnlineDataProvider.m in Sources */,
+				3C452F4425BA73F70035AF5F /* HomeDashACEM1ModelP.m in Sources */,
+				3C833CBE25C944FE006F9BEF /* DetailCellContainerCA.m in Sources */,
 				3C5F8C212565097600CFD26A /* MySuggestion.m in Sources */,
 				3C5F8CC22576220400CFD26A /* DashboardModel.m in Sources */,
-				3C7F374D2564C03F0033BF82 /* RAHomeOrderModel.m in Sources */,
 				3C5F8D54257F53F300CFD26A /* UIView+Toast.m in Sources */,
 				3C5F8D4B257E2D8700CFD26A /* DetailContent.m in Sources */,
 				3C5F8C2D256509AA00CFD26A /* SearchTableAdapterJson.m in Sources */,
 				3C5F8D2D257E2A6A00CFD26A /* DetailTabBarController.m in Sources */,
 				3C5F8D8F2580B4E500CFD26A /* CompanySelectViewController.m in Sources */,
+				3C76711425B7C28600588DB5 /* AgreementViewController.m in Sources */,
 				3C5F8C3B25650A8500CFD26A /* TableCellEdit.m in Sources */,
-				3C7F37342563CD4E0033BF82 /* RANetwork.m in Sources */,
 				3C5F8C152565092C00CFD26A /* MyAutocompleteView.m in Sources */,
 				3C5F8D73257F54FB00CFD26A /* MDHTMLLabel.m in Sources */,
 				3C7F37452563CDB70033BF82 /* NSString+Base64.m in Sources */,
@@ -1163,12 +1351,15 @@
 				3C0CB38E255E618800718A03 /* MylistViewController.m in Sources */,
 				3C7F37712564C13F0033BF82 /* RANetworkTaskDelegate.m in Sources */,
 				3C0CB336255E56BF00718A03 /* AppDelegate.m in Sources */,
+				3C452FB525BE987C0035AF5F /* HomeDasheManifestModelE.m in Sources */,
 				3C5F8C5925650BD800CFD26A /* LPShareActivity.m in Sources */,
+				3C452F4B25BA74610035AF5F /* HomeDashACEM1CellP.m in Sources */,
 				3C0CB3A5255E81CC00718A03 /* RAHomeViewController.m in Sources */,
 				3C2431A2258B3C7A00555555 /* ResultISFCell.m in Sources */,
 				3C767066259B200F00588DB5 /* HomeDashEmptyCell.m in Sources */,
 				3C5F8B552564FDD100CFD26A /* ResultViewController.m in Sources */,
 				3C5F8C272565099300CFD26A /* MyAutocompletionCellFactory.m in Sources */,
+				3C452FA825BE98410035AF5F /* HomeDasheManifestCellE.m in Sources */,
 				3C0CB3BA255E829000718A03 /* SearchlistViewController.m in Sources */,
 				3C7F382D2564C78C0033BF82 /* JLRefreshFooter.m in Sources */,
 				3C7670342595932D00588DB5 /* RANavigationController.m in Sources */,
@@ -1176,13 +1367,16 @@
 				3C7F37282563CC5F0033BF82 /* NetworkUtils.m in Sources */,
 				3C5F8BC12565017E00CFD26A /* ResultACIModel.m in Sources */,
 				3C5F8BC8256503ED00CFD26A /* ResultAdditionView.m in Sources */,
+				3C452F3B25B9795C0035AF5F /* HomeDashISFModelP.m in Sources */,
 				3C5F8C06256506DC00CFD26A /* CustomizeFieldViewController.m in Sources */,
+				3C452F7625BABA740035AF5F /* HomeDasheManifestCellP.m in Sources */,
 				3C5F8D39257E2AEF00CFD26A /* DetailCellKVNew.m in Sources */,
 				3C5F8D45257E2B4500CFD26A /* DetailCellWeb.m in Sources */,
 				3C7F37472563CDB70033BF82 /* AESCrypt.m in Sources */,
 				3C7F37432563CDB70033BF82 /* NSData+CommonCrypto.m in Sources */,
 				3C0CB347255E56BF00718A03 /* main.m in Sources */,
 				3C5F8D79257F550D00CFD26A /* LineView.m in Sources */,
+				3C76710425B6AFF800588DB5 /* AboutViewController.m in Sources */,
 				3C5F8C93256D079200CFD26A /* ButtonCollectionView.m in Sources */,
 				3C5F8D962583500A00CFD26A /* ResultACICell.m in Sources */,
 				3C7670482599B1E000588DB5 /* ResulteManifestModel.m in Sources */,
@@ -1202,16 +1396,21 @@
 				3C5F8B482564F8D300CFD26A /* JLRefreshBasis.m in Sources */,
 				3C5F8B9E2565003600CFD26A /* ResultPresenter.m in Sources */,
 				3C5F8C5325650B9700CFD26A /* JLCustomerNavigationAlertController.m in Sources */,
+				3C452FA025BE98270035AF5F /* HomeDashACICellE.m in Sources */,
 				3C0CB3C0256253D900718A03 /* RABaseViewController.m in Sources */,
 				3C5F8C3D25650A8500CFD26A /* TableCellDate.m in Sources */,
 				3C5F8BF4256505FC00CFD26A /* CellItemHistory.m in Sources */,
 				3C24316D258AF60000555555 /* ResultCustomerCell.m in Sources */,
+				3C452FAF25BE985C0035AF5F /* HomeDashACIModelE.m in Sources */,
 				3C0CB387255E613200718A03 /* LoginViewController.m in Sources */,
 				3C0CB339255E56BF00718A03 /* SceneDelegate.m in Sources */,
 				3C0CB375255E599C00718A03 /* RootViewController.m in Sources */,
 				3C7F37F92564C4810033BF82 /* RASingleton.m in Sources */,
 				3C7F37FF2564C4C80033BF82 /* RADataProvider.m in Sources */,
+				3C452F6925BAA5790035AF5F /* HomeDashACIModelP.m in Sources */,
 				3C5F8BD52565049400CFD26A /* JLRefreshHeader.m in Sources */,
+				3C452F6F25BABA2B0035AF5F /* HomeDasheManifestModelP.m in Sources */,
+				3C452F9825BE97430035AF5F /* HomeDashACEM1CellE.m in Sources */,
 				3C76708825A6DD7400588DB5 /* ChangePasswordViewController.m in Sources */,
 				3C2431B2258B48AA00555555 /* ResultISFModel.m in Sources */,
 				3C0CB3A4255E81CC00718A03 /* RAHomeViewController+HomeTableDataSource.m in Sources */,
@@ -1219,6 +1418,7 @@
 				3C5F8D3F257E2B3600CFD26A /* DetailCellList.m in Sources */,
 				3C7F376A2564C11E0033BF82 /* Reachability.m in Sources */,
 				3C5F8D7F257F55BD00CFD26A /* TabBarController.m in Sources */,
+				3C452F7E25BE73190035AF5F /* HomeDashISFCellE.m in Sources */,
 				3C0CB3CB2562739F00718A03 /* StaticModelistViewController.m in Sources */,
 				3C5F8C4425650B0E00CFD26A /* ResultACEM1Cell.m in Sources */,
 			);
@@ -1413,7 +1613,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 47883;
+				CURRENT_PROJECT_VERSION = 47889;
 				DEVELOPMENT_TEAM = HXWLAA5YN5;
 				GCC_OPTIMIZATION_LEVEL = 0;
 				INFOPLIST_FILE = "RA TradeFiling/Info.plist";
@@ -1434,7 +1634,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 47883;
+				CURRENT_PROJECT_VERSION = 47889;
 				DEVELOPMENT_TEAM = HXWLAA5YN5;
 				GCC_OPTIMIZATION_LEVEL = s;
 				INFOPLIST_FILE = "RA TradeFiling/Info.plist";

+ 5 - 0
RA TradeFiling/RA TradeFiling.xcodeproj/project.xcworkspace/xcuserdata/ruizhang.xcuserdatad/IDEFindNavigatorScopes.plist

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array/>
+</plist>

BIN=BIN
RA TradeFiling/RA TradeFiling.xcodeproj/project.xcworkspace/xcuserdata/ruizhang.xcuserdatad/UserInterfaceState.xcuserstate


+ 312 - 355
RA TradeFiling/RA TradeFiling.xcodeproj/xcuserdata/ruizhang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -7,7 +7,7 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint">
          <BreakpointContent
-            uuid = "AB9A2E13-9ABB-4BDF-8203-041CD77FE06C"
+            uuid = "787E3155-0DB1-4F02-B1AC-68233ED97F83"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
@@ -16,189 +16,194 @@
             stopOnStyle = "0">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.RuntimeIssueBreakpoint">
-         <BreakpointContent
-            uuid = "B0EF358C-3649-447A-BCBF-622619D01886"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            breakpointStackSelectionBehavior = "1"
-            type = "65535">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "E80A39F9-78C9-4C2E-A4CD-7692BA975337"
+            uuid = "559DE496-65E5-4340-AAA6-874F0A2A67A6"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "RA TradeFiling/DataProvider/RADataProvider.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "88"
-            endingLineNumber = "88"
-            landmarkName = "+Search:completionHandler:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "DF3F7B6F-8A99-4BD2-83EB-CD71F48D7D63"
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Result/ApexResultViewController+TableDataSource.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "80"
-            endingLineNumber = "80"
-            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            startingLineNumber = "319"
+            endingLineNumber = "319"
+            landmarkName = "+updateFunctionPanel"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "1160CB53-B9F2-4D14-943A-0983FCC09A32"
+            uuid = "14B4DE72-5E8A-4968-B9C8-27073020DDD8"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "RA TradeFiling/Home/RAHomeHeaderView.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "230"
-            endingLineNumber = "230"
-            landmarkName = "-setupCollectionView"
+            startingLineNumber = "221"
+            endingLineNumber = "221"
+            landmarkName = "-loadFunctions"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "2CE3260B-D1BE-422F-9DA5-5D56BAB82DE9"
+            uuid = "A194DF56-51FF-41FD-AC42-7A0A881DB80D"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Home/RAHomeHeaderView.m"
+            filePath = "RA TradeFiling/DataProvider/OnlineDataProvider.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "332"
-            endingLineNumber = "332"
-            landmarkName = "-collectionView:didSelectItemAtIndexPath:"
+            startingLineNumber = "92"
+            endingLineNumber = "92"
+            landmarkName = "+request_home:completionHandler:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "F56C57D0-F993-49B5-A5B4-4B84E3741D5A"
+            uuid = "EAB5696B-7BF8-458B-9F0D-9EC721A928D4"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/DataProvider/RADataProvider.m"
+            filePath = "RA TradeFiling/DataProvider/OnlineDataProvider.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "222"
-            endingLineNumber = "222"
-            landmarkName = "+updateFieldsjson:subtype:"
+            startingLineNumber = "221"
+            endingLineNumber = "221"
+            landmarkName = "+request_interface:parameters:err_record_url:completionHandler:retry:"
             landmarkType = "7">
+            <Locations>
+               <Location
+                  uuid = "EAB5696B-7BF8-458B-9F0D-9EC721A928D4 - d6da760cbf73d188"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "+[OnlineDataProvider request_interface:parameters:err_record_url:completionHandler:retry:]"
+                  moduleName = "RA TradeFiling"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/ruizhang/Documents/CODE_IOS/ERPSuiteIOS/RA%20TradeFiling/RA%20TradeFiling/DataProvider/OnlineDataProvider.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "192"
+                  endingLineNumber = "192"
+                  offsetFromSymbolStart = "172">
+               </Location>
+               <Location
+                  uuid = "EAB5696B-7BF8-458B-9F0D-9EC721A928D4 - e9f699b933dca630"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "__90+[OnlineDataProvider request_interface:parameters:err_record_url:completionHandler:retry:]_block_invoke"
+                  moduleName = "RA TradeFiling"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/ruizhang/Documents/CODE_IOS/ERPSuiteIOS/RA%20TradeFiling/RA%20TradeFiling/DataProvider/OnlineDataProvider.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "194"
+                  endingLineNumber = "194"
+                  offsetFromSymbolStart = "51">
+               </Location>
+            </Locations>
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "D29DD49C-70EB-4477-8574-6683D1660BBA"
+            uuid = "56C341F2-62E5-4A0B-8C12-A52E1040249F"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Result/ApexResultViewController+TableDataSource.m"
+            filePath = "RA TradeFiling/Home/RAHomeViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "66"
-            endingLineNumber = "66"
-            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            startingLineNumber = "711"
+            endingLineNumber = "711"
+            landmarkName = "-loadData"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "5F7C40EF-D87A-4161-86CD-1268A9113734"
+            uuid = "A9C9A6FF-2189-4A2F-83D6-D2A3986196DE"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Home/RAHomeViewController+HomeTableDataSource.m"
+            filePath = "RA TradeFiling/Result/ResultPresenter.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "141"
-            endingLineNumber = "141"
-            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            startingLineNumber = "355"
+            endingLineNumber = "355"
+            landmarkName = "-loadData"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "217DBD71-6275-44FA-A62B-9E524D051ACC"
+            uuid = "D7142C58-A0B2-4568-AF8D-2D12705FECA5"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Home/RAHomeViewController+HomeTableDataSource.m"
+            filePath = "RA TradeFiling/Result/ResultViewController+TableDelegate.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "42"
-            endingLineNumber = "42"
-            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            startingLineNumber = "119"
+            endingLineNumber = "119"
+            landmarkName = "-showDetailForAction:withParams:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "346EA6EE-FB72-4E34-9629-06F1CAAD07D8"
+            uuid = "C815E7A3-4F72-497D-96B6-FE3DDD3BCDDA"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Home/RAHomeViewController+HomeTableDelegate.m"
+            filePath = "RA TradeFiling/Result/ResultPresenter.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "53"
-            endingLineNumber = "53"
-            landmarkName = "-tableView:didSelectRowAtIndexPath:"
+            startingLineNumber = "339"
+            endingLineNumber = "339"
+            landmarkName = "-loadData"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "C97B2B5B-A8E9-4280-A379-8CAC656349C5"
+            uuid = "D6A05F44-76BD-4867-B701-2DEC77AD5538"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Result/ApexResultViewController+TableDelegate.m"
+            filePath = "RA TradeFiling/Result/ResultPresenter.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "115"
-            endingLineNumber = "115"
-            landmarkName = "-showDetailForAction:withParams:"
+            startingLineNumber = "416"
+            endingLineNumber = "416"
+            landmarkName = "-saveSearchParameters:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "F15C4B91-2B81-41D0-AF3B-8CEB503AB0F9"
+            uuid = "9778514E-F94B-4CCC-8A4B-3B112BCA9E45"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "RA TradeFiling/Detail/DetailTabBarController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "33"
-            endingLineNumber = "33"
+            startingLineNumber = "93"
+            endingLineNumber = "93"
             landmarkName = "-init:actions:params:"
             landmarkType = "7">
          </BreakpointContent>
@@ -206,111 +211,63 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "4A3365A6-C257-42F2-91EB-43D049F774DE"
+            uuid = "C3958F7E-4964-4E7E-AFE1-D38B40F2CE0D"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Home/RAHomeViewController+HomeTableDelegate.m"
+            filePath = "RA TradeFiling/Search/SearchViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "91"
-            endingLineNumber = "91"
-            landmarkName = "-handleRowAction:"
+            startingLineNumber = "508"
+            endingLineNumber = "508"
+            landmarkName = "-SearchBtnOnClick:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "BD9B0C79-E008-4E40-BF60-EDE8C67DAD25"
+            uuid = "B15C6D41-686B-43B7-84EF-CDE3ACFBFA9F"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Home/RAHomeSectionHeaderView.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "44"
-            endingLineNumber = "44"
-            landmarkName = "-addMoreClickTarget:selector:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "9C8C3180-87AF-4479-8C2D-F66D435E3364"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Result/ApexResultPresenter.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "403"
-            endingLineNumber = "403"
-            landmarkName = "-saveSearchParameters:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "D01FE12B-8F4B-4709-823B-8AB508E57B0C"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Result/ApexResultPresenter.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "50"
-            endingLineNumber = "50"
-            landmarkName = "-initWithParameters:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "95B45919-813F-4BCC-A945-BF146B60F4D5"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/My/FavoritesViewController.m"
+            filePath = "RA TradeFiling/Home/RAHomeHeaderView.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "47"
-            endingLineNumber = "47"
-            landmarkName = "-viewDidLoad"
+            startingLineNumber = "374"
+            endingLineNumber = "374"
+            landmarkName = "-collectionView:didSelectItemAtIndexPath:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "A1A21ECD-7953-4BDE-A38F-9CD82E101923"
+            uuid = "CC3E1956-B6DF-43D0-9831-3994D7DD9C13"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/DataProvider/RADataProvider.m"
+            filePath = "RA TradeFiling/Home/RAHomeViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "116"
-            endingLineNumber = "116"
-            landmarkName = "+saveDetailParameters:forModule:withName:actions:"
+            startingLineNumber = "967"
+            endingLineNumber = "967"
+            landmarkName = "-showMoreOrderForSection:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "7CC88B7C-D7E5-468C-8EA3-B5CE33FC7C6E"
+            uuid = "27463F95-E921-4A3D-BB1C-3E95B68DE4B7"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/My/SavedDetailViewController.m"
+            filePath = "RA TradeFiling/Home/RAHomeViewController+HomeTableDataSource.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "147"
-            endingLineNumber = "147"
+            startingLineNumber = "60"
+            endingLineNumber = "60"
             landmarkName = "-tableView:cellForRowAtIndexPath:"
             landmarkType = "7">
          </BreakpointContent>
@@ -318,592 +275,592 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "5C6971ED-4A0E-4020-B649-F910EF775C5C"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/My/SavedDetailViewController.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "196"
-            endingLineNumber = "196"
-            landmarkName = "-tableView:didSelectRowAtIndexPath:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "EA3BB909-6025-43A8-A231-E7E8AEF560A1"
+            uuid = "F2391358-CF6A-4005-B742-EA2C3E85639D"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/My/SavedSearchViewController.m"
+            filePath = "RA TradeFiling/Home/RAHomeViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "62"
-            endingLineNumber = "62"
-            landmarkName = "-viewWillAppear:"
+            startingLineNumber = "657"
+            endingLineNumber = "657"
+            landmarkName = "-dashModelForIndexPath:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "71A382D6-1D37-4910-A49C-D740CAEE79AA"
+            uuid = "78295C28-5831-4421-AB72-28B3655F94FA"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/My/SavedSearchViewController.m"
+            filePath = "RA TradeFiling/Home/RAHomeViewController+HomeTableDataSource.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "77"
-            endingLineNumber = "77"
-            landmarkName = "-viewWillAppear:"
+            startingLineNumber = "88"
+            endingLineNumber = "88"
+            landmarkName = "-tableView:cellForRowAtIndexPath:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "0C0D5717-7E4A-4991-A1FE-A30210C9BB5E"
+            uuid = "61622252-FE00-4CEA-BA34-C3C0F4734083"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Detail/DetailPageViewController.m"
+            filePath = "RA TradeFiling/Home/RAHomeViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "173"
-            endingLineNumber = "173"
-            landmarkName = "-viewDidLoad"
+            startingLineNumber = "228"
+            endingLineNumber = "228"
+            landmarkName = "-dashModelForIndex:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "031265CE-EFF8-4493-AD8D-C2C862A393C3"
+            uuid = "8EC8E2F4-61E4-49A9-A7B0-847E2D6337A7"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/DataProvider/OfflineDataProvider.m"
+            filePath = "RA TradeFiling/DataProvider/OnlineDataProvider.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "238"
-            endingLineNumber = "238"
-            landmarkName = "+request_retrievepassword"
+            startingLineNumber = "100"
+            endingLineNumber = "100"
+            landmarkName = "+request_result:completionHandler:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "2072E005-8471-4658-AE4A-F32BBDD5D828"
+            uuid = "2E24433C-1315-41AA-B7FD-A47C130096D0"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Home/RAHomeViewController+HomeTableDataSource.m"
+            filePath = "RA TradeFiling/DataProvider/OfflineDataProvider.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "102"
-            endingLineNumber = "102"
-            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            startingLineNumber = "144"
+            endingLineNumber = "144"
+            landmarkName = "+request_detail:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "E325F43A-A115-4353-BAFB-746EB817F7A1"
+            uuid = "B9F3B758-4681-42CF-8104-FA1E235369C6"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Home/RAHomeViewController.m"
+            filePath = "RA TradeFiling/DataProvider/RADataProvider.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "90"
-            endingLineNumber = "90"
-            landmarkName = "-setOrders:"
+            startingLineNumber = "148"
+            endingLineNumber = "148"
+            landmarkName = "+TabDetail:completionHandler:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "9619B1B9-8322-4A61-8394-09D1B5F99A89"
+            uuid = "F5DAC4F3-8805-4CBD-884C-BC8109CAD115"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Result/ResultViewController+TableDataSource.m"
+            filePath = "RA TradeFiling/DataProvider/RADataProvider.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "99"
-            endingLineNumber = "99"
-            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            startingLineNumber = "142"
+            endingLineNumber = "142"
+            landmarkName = "+TabDetail:completionHandler:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "A12A907F-FA9D-47C7-B07E-4DD8DD1114B2"
+            uuid = "C556DE89-223C-43DD-9595-6D0121E4AFDF"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Result/ResultViewController+TableDataSource.m"
+            filePath = "RA TradeFiling/Home/RAHomeViewController+HomeTableDelegate.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "47"
-            endingLineNumber = "47"
-            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            startingLineNumber = "107"
+            endingLineNumber = "107"
+            landmarkName = "-handleRowAction:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "23D13B7C-2A00-4C8F-8E33-1EB6664E6C5E"
+            uuid = "022E3AB7-92B0-4ABC-93A4-15B9B481979E"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Result/ResultACEM1Cell.m"
+            filePath = "RA TradeFiling/Home/RAHomeViewController+HomeTableDelegate.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "117"
-            endingLineNumber = "117"
-            landmarkName = "-setLog:"
+            startingLineNumber = "77"
+            endingLineNumber = "77"
+            landmarkName = "-paramsForIndexPath:withAction:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "93201BB1-C713-4BD8-A8A4-C61597602349"
+            uuid = "DB4A468A-B761-4B6F-AC72-B25B7BA33727"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Result/ResultACEM1Cell.m"
+            filePath = "RA TradeFiling/Detail/DetailTabBarController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "115"
-            endingLineNumber = "115"
-            landmarkName = "-setLog:"
+            startingLineNumber = "80"
+            endingLineNumber = "80"
+            landmarkName = "-init:actions:params:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "B851A694-2AE4-46FB-9335-C534E70452B1"
+            uuid = "F82355F7-AA71-4D04-9A2E-1094F7ADFABF"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/DataProvider/OfflineDataProvider.m"
+            filePath = "RA TradeFiling/Detail/DetailTabBarController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "49"
-            endingLineNumber = "49"
-            landmarkName = "+request_retrievepassword"
+            startingLineNumber = "33"
+            endingLineNumber = "33"
+            landmarkName = "-init:actions:params:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "DFC66462-BDE0-4423-8147-11D56A4F1374"
+            uuid = "5F7A4F3A-5AAE-4287-BBF0-1393FE395234"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Result/ResultViewController+TableDataSource.m"
+            filePath = "RA TradeFiling/Detail/DetailTabBarController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "69"
-            endingLineNumber = "69"
-            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            startingLineNumber = "490"
+            endingLineNumber = "490"
+            landmarkName = "-menuClick:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "F3B08361-41CF-4FAB-B1CA-BA36A99F0C64"
+            uuid = "0E1D4EC2-0A6F-452E-8C3A-43F2768BAFE2"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/DataProvider/OfflineDataProvider.m"
+            filePath = "RA TradeFiling/DataProvider/RADataProvider.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "96"
-            endingLineNumber = "96"
-            landmarkName = "+request_retrievepassword"
+            startingLineNumber = "451"
+            endingLineNumber = "451"
+            landmarkName = "+json2DetailContent:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "9CDA6C4D-04DA-4A1E-A175-4C350F28A991"
+            uuid = "4E989D09-CE46-47E2-BA43-EBB5AA390453"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/DataProvider/OfflineDataProvider.m"
+            filePath = "RA TradeFiling/Result/ResultViewController+TableDelegate.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "94"
-            endingLineNumber = "94"
-            landmarkName = "+request_retrievepassword"
+            startingLineNumber = "117"
+            endingLineNumber = "117"
+            landmarkName = "-showDetailForAction:withParams:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "14E80C4C-5543-4B82-8D6B-D50E49907639"
+            uuid = "38FE9FAB-C4F7-4770-AC78-9F2F576D684A"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Detail/DetailPageViewController.m"
+            filePath = "RA TradeFiling/Result/ResultViewController+TableDelegate.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "348"
-            endingLineNumber = "348"
-            landmarkName = "-loadpage"
+            startingLineNumber = "111"
+            endingLineNumber = "111"
+            landmarkName = "-showDetailForAction:withParams:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "8EBF8683-85FE-47AA-A508-D8BED44E8BE7"
+            uuid = "82ED5FD5-E3D7-4B8F-ABFF-CFFD4B4F2A96"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Detail/DetailPageViewController.m"
+            filePath = "RA TradeFiling/Search/SearchViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1603"
-            endingLineNumber = "1603"
-            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            startingLineNumber = "478"
+            endingLineNumber = "478"
+            landmarkName = "-SearchBtnOnClick:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "E7919D41-DE83-424E-BDA7-BE92F7A09C2D"
+            uuid = "6AE824B7-D238-4EF6-8254-81AC3DA0ECA7"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Detail/DetailPageViewController.m"
+            filePath = "RA TradeFiling/Search/SearchViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1291"
-            endingLineNumber = "1291"
-            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            startingLineNumber = "588"
+            endingLineNumber = "588"
+            landmarkName = "-textFieldDidBeginEditing:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "2603984D-2B12-48C6-B0EB-18694FC83FF3"
+            uuid = "9722DD4B-AD27-482D-BDEF-AEC169FA4593"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Detail/DetailPageViewController.m"
+            filePath = "RA TradeFiling/Search/SearchViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1287"
-            endingLineNumber = "1287"
-            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            startingLineNumber = "619"
+            endingLineNumber = "619"
+            landmarkName = "-textFieldShouldReturn:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "989D9DB7-0195-408A-B403-C285C7D9E8A2"
+            uuid = "E2A72934-DF9D-414C-B816-E032484EE192"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Detail/DetailContent.m"
+            filePath = "RA TradeFiling/Search/SearchViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "80"
-            endingLineNumber = "80"
-            landmarkName = "-get_segmenttype:"
+            startingLineNumber = "626"
+            endingLineNumber = "626"
+            landmarkName = "-textFieldDidEndEditing:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "8CAD1D40-B145-479B-B90D-DB5567E71C01"
+            uuid = "B6815F68-099B-4175-AB33-C1E2D76871FA"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/DataProvider/RADataProvider.m"
+            filePath = "RA TradeFiling/Search/SearchViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "327"
-            endingLineNumber = "327"
-            landmarkName = "+json2DetailContent:"
+            startingLineNumber = "646"
+            endingLineNumber = "646"
+            landmarkName = "-textFieldShouldBeginEditing:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "F9C67320-7CCB-40CA-BA68-52EFE9DC3D13"
+            uuid = "6CB80C58-016B-419E-A020-36E681814574"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Detail/DetailPageViewController.m"
+            filePath = "RA TradeFiling/Search/SearchViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1601"
-            endingLineNumber = "1601"
-            landmarkName = "-tableView:cellForRowAtIndexPath:"
+            startingLineNumber = "648"
+            endingLineNumber = "648"
+            landmarkName = "-textFieldShouldBeginEditing:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "4D93F92E-08B0-4C89-8AE7-644B4CA6A04B"
+            uuid = "C4C2774C-EC75-4818-9026-C2331F822A60"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Detail/DetailPageViewController.m"
+            filePath = "RA TradeFiling/Search/SearchViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1714"
-            endingLineNumber = "1714"
-            landmarkName = "-tableView:didSelectRowAtIndexPath:"
+            startingLineNumber = "637"
+            endingLineNumber = "637"
+            landmarkName = "-textFieldDidEndEditing:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "6557FF15-D2BB-437F-A552-E44C3B73AE57"
+            uuid = "2ADD51AF-8949-4448-9CB8-3DA6C02B3F62"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Detail/DetailPageViewController.m"
+            filePath = "RA TradeFiling/Search/SearchTableAdapterJson.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1734"
-            endingLineNumber = "1734"
-            landmarkName = "-tableView:didSelectRowAtIndexPath:"
+            startingLineNumber = "27"
+            endingLineNumber = "27"
+            landmarkName = "-get_item:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "D309B7DD-FFED-4E9A-A323-9B252E50D28E"
+            uuid = "B1EC5879-2EFC-4DD4-AC93-7CB6255F31CA"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Detail/DetailPageViewController.m"
+            filePath = "RA TradeFiling/DataProvider/OnlineDataProvider.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1068"
-            endingLineNumber = "1068"
-            landmarkName = "-tableView:heightForRowAtIndexPath:"
+            startingLineNumber = "121"
+            endingLineNumber = "121"
+            landmarkName = "+request_detail:completionHandler:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "4A4692FA-04AD-4BBB-BE8A-A2D25554AA08"
+            uuid = "A9413486-90E8-497D-9F83-8EDAA7DF68C0"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "RA TradeFiling/Detail/DetailPageViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1071"
-            endingLineNumber = "1071"
-            landmarkName = "-tableView:heightForRowAtIndexPath:"
+            startingLineNumber = "338"
+            endingLineNumber = "338"
+            landmarkName = "-loadpage"
             landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "4A7AC87C-E939-4C54-983A-7E15AE7E446E"
+            <Locations>
+               <Location
+                  uuid = "A9413486-90E8-497D-9F83-8EDAA7DF68C0 - 933a521048230a4b"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[DetailPageViewController loadpage]"
+                  moduleName = "RA TradeFiling"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/ruizhang/Documents/CODE_IOS/ERPSuiteIOS/RA%20TradeFiling/RA%20TradeFiling/Detail/DetailPageViewController.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "338"
+                  endingLineNumber = "338"
+                  offsetFromSymbolStart = "584">
+               </Location>
+               <Location
+                  uuid = "A9413486-90E8-497D-9F83-8EDAA7DF68C0 - 238949799000008c"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "__36-[DetailPageViewController loadpage]_block_invoke"
+                  moduleName = "RA TradeFiling"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/ruizhang/Documents/CODE_IOS/ERPSuiteIOS/RA%20TradeFiling/RA%20TradeFiling/Detail/DetailPageViewController.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "338"
+                  endingLineNumber = "338"
+                  offsetFromSymbolStart = "15">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "77B3D11A-0524-49B6-A62B-62C8AC865743"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "RA TradeFiling/Detail/DetailPageViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1107"
-            endingLineNumber = "1107"
-            landmarkName = "-tableView:heightForRowAtIndexPath:"
+            startingLineNumber = "1752"
+            endingLineNumber = "1752"
+            landmarkName = "-tableView:didSelectRowAtIndexPath:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "D1E1E4DB-5AE3-4515-A4C8-C246D6A758F1"
-            shouldBeEnabled = "No"
+            uuid = "8AE315C0-1343-4014-B48E-6D44C4555964"
+            shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Detail/DetailPageViewController.m"
+            filePath = "RA TradeFiling/SignUp/SignupViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1097"
-            endingLineNumber = "1097"
-            landmarkName = "-tableView:heightForRowAtIndexPath:"
+            startingLineNumber = "108"
+            endingLineNumber = "108"
+            landmarkName = "-onSignUpClick:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "193A6168-D0B5-49C4-8295-55E3CF3D9393"
-            shouldBeEnabled = "No"
+            uuid = "D108059F-EED7-4670-A0A5-F01E73623B12"
+            shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/My/ChangePasswordViewController.m"
+            filePath = "RA TradeFiling/SignUp/SignupViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "130"
-            endingLineNumber = "130"
-            landmarkName = "-onChange:"
+            startingLineNumber = "96"
+            endingLineNumber = "96"
+            landmarkName = "-onSignUpClick:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "E8DB7F3A-2F04-43AD-A2D0-ECC807EB2D2D"
+            uuid = "597B62B8-5B2D-4744-ADF4-E660092A1A3A"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Result/ResultViewController+TableDelegate.m"
+            filePath = "RA TradeFiling/DataProvider/OnlineDataProvider.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "111"
-            endingLineNumber = "111"
-            landmarkName = "-showDetailForAction:withParams:"
+            startingLineNumber = "223"
+            endingLineNumber = "223"
+            landmarkName = "+request_interface:parameters:err_record_url:completionHandler:retry:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "6529ED9D-C67E-472D-8EE9-A54C1BD8DD49"
+            uuid = "BD7FC3A3-3389-4C09-82AC-5BF61AD3E42E"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Result/ResultViewController+TableDelegate.m"
+            filePath = "../common/NetworkUtils.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "59"
-            endingLineNumber = "59"
-            landmarkName = "-handleRowAction:"
+            startingLineNumber = "743"
+            endingLineNumber = "743"
+            landmarkName = "+request_interface:parameters:err_record_url:completionHandler:retry:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "7DFA1453-E920-4263-8D78-B42ABAE2ECD3"
-            shouldBeEnabled = "No"
+            uuid = "6851E550-64D0-4FB4-A762-CC9B2A51A109"
+            shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Result/ResultViewController+TableDelegate.m"
+            filePath = "../common/NetworkUtils.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "43"
-            endingLineNumber = "43"
-            landmarkName = "-handleRowAction:"
+            startingLineNumber = "764"
+            endingLineNumber = "764"
+            landmarkName = "+request_interface:parameters:err_record_url:completionHandler:retry:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "F1CF309D-8C0A-4F60-A677-9B1CBD17FF4F"
+            uuid = "CCF0EE6F-EC91-4B69-89C2-48FA09B76716"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Login/RetrievePasswordViewController.m"
+            filePath = "RA TradeFiling/Login/LoginViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "86"
-            endingLineNumber = "86"
-            landmarkName = "-OnOk:"
+            startingLineNumber = "81"
+            endingLineNumber = "81"
+            landmarkName = "-LoginButtonClick:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "8CE02DE0-FE67-4462-A760-25F51199E701"
+            uuid = "55A95BD1-F8D8-47D2-ADCE-94C70B62AFBB"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/main.m"
+            filePath = "RA TradeFiling/RANavigationController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "17"
-            endingLineNumber = "17"
-            landmarkName = "main(argc, argv)"
-            landmarkType = "9">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "5BDD95CB-E351-4725-B6D9-236E0833C6D1"
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Login/LoginViewController.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "79"
-            endingLineNumber = "79"
-            landmarkName = "-LoginButtonClick:"
+            startingLineNumber = "107"
+            endingLineNumber = "107"
+            landmarkName = "-_configAppearance"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "ABB218B1-5064-4552-BB0F-9F9285F10655"
+            uuid = "94035BAB-1E78-4472-A547-B54D951932F2"
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/Login/LoginViewController.m"
+            filePath = "RA TradeFiling/RANavigationController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "53"
-            endingLineNumber = "53"
-            landmarkName = "-LoginButtonClick:"
+            startingLineNumber = "75"
+            endingLineNumber = "75"
+            landmarkName = "-setupColor"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "18B770EB-1BD5-4631-A285-963A27361327"
-            shouldBeEnabled = "No"
+            uuid = "F10E52C2-81CD-4BCE-BC5A-9CBAF17F0346"
+            shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "RA TradeFiling/DataProvider/RADataProvider.m"
+            filePath = "RA TradeFiling/RANavigationController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "25"
-            endingLineNumber = "25"
-            landmarkName = "+Login:password:completionHandler:"
+            startingLineNumber = "76"
+            endingLineNumber = "76"
+            landmarkName = "-setupColor"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>

+ 153 - 0
RA TradeFiling/RA TradeFiling/About/About.storyboard

@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17703"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <scenes>
+        <!--About-->
+        <scene sceneID="fTh-7w-tud">
+            <objects>
+                <viewController storyboardIdentifier="AboutViewController" title="About" useStoryboardIdentifierAsRestorationIdentifier="YES" id="X4w-4W-ygK" customClass="AboutViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="swF-RV-c5M">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="navigate_logo" translatesAutoresizingMaskIntoConstraints="NO" id="VBY-Ct-00o">
+                                <rect key="frame" x="25" y="64" width="109" height="32"/>
+                            </imageView>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="trailing" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xHj-2R-AwB">
+                                <rect key="frame" x="148" y="763" width="118" height="30"/>
+                                <state key="normal" title="PRIVACY POLICY"/>
+                                <connections>
+                                    <action selector="onPrivacyClick:" destination="X4w-4W-ygK" eventType="touchUpInside" id="3FZ-7B-KIE"/>
+                                </connections>
+                            </button>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ver:1.0.12345" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9BN-Zo-ol7">
+                                <rect key="frame" x="25" y="106" width="364" height="21"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" editable="NO" usesAttributedText="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ppE-eo-PlT">
+                                <rect key="frame" x="25" y="619.5" width="266.5" height="123.5"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <attributedString key="attributedText">
+                                    <fragment content="United Software Applications, Inc.">
+                                        <attributes>
+                                            <color key="NSColor" red="1" green="0.14913141730000001" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <font key="NSFont" metaFont="system" size="15"/>
+                                            <paragraphStyle key="NSParagraphStyle" alignment="justified" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                        </attributes>
+                                    </fragment>
+                                    <fragment>
+                                        <string key="content">
+7411 CENTRAL AVE,
+NEWARK, CA 94560
+TEL : USA </string>
+                                        <attributes>
+                                            <color key="NSColor" name="textColor" catalog="System" colorSpace="catalog"/>
+                                            <font key="NSFont" metaFont="system" size="15"/>
+                                            <paragraphStyle key="NSParagraphStyle" alignment="justified" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                        </attributes>
+                                    </fragment>
+                                    <fragment content="(1)510 574 8180">
+                                        <attributes>
+                                            <color key="NSColor" red="0.016804177310000001" green="0.19835099580000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <font key="NSFont" metaFont="system" size="15"/>
+                                            <paragraphStyle key="NSParagraphStyle" alignment="justified" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                        </attributes>
+                                    </fragment>
+                                    <fragment>
+                                        <string key="content">
+         China </string>
+                                        <attributes>
+                                            <color key="NSColor" name="textColor" catalog="System" colorSpace="catalog"/>
+                                            <font key="NSFont" metaFont="system" size="15"/>
+                                            <paragraphStyle key="NSParagraphStyle" alignment="justified" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                        </attributes>
+                                    </fragment>
+                                    <fragment content="(86)028 81132160">
+                                        <attributes>
+                                            <color key="NSColor" red="0.016804177310000001" green="0.19835099580000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <font key="NSFont" metaFont="system" size="15"/>
+                                            <paragraphStyle key="NSParagraphStyle" alignment="justified" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                        </attributes>
+                                    </fragment>
+                                    <fragment>
+                                        <string key="content">
+Email :</string>
+                                        <attributes>
+                                            <color key="NSColor" name="textColor" catalog="System" colorSpace="catalog"/>
+                                            <font key="NSFont" metaFont="system" size="15"/>
+                                            <paragraphStyle key="NSParagraphStyle" alignment="justified" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                        </attributes>
+                                    </fragment>
+                                    <fragment content="RedAntSupport@united-us.net">
+                                        <attributes>
+                                            <color key="NSColor" red="0.016804177310000001" green="0.19835099580000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <font key="NSFont" metaFont="system" size="15"/>
+                                            <paragraphStyle key="NSParagraphStyle" alignment="justified" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                        </attributes>
+                                    </fragment>
+                                </attributedString>
+                                <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
+                                <dataDetectorType key="dataDetectorTypes" phoneNumber="YES" link="YES" address="YES"/>
+                            </textView>
+                            <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" usesAttributedText="YES" translatesAutoresizingMaskIntoConstraints="NO" id="NLm-4l-aIH">
+                                <rect key="frame" x="25" y="147" width="364" height="432.5"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <attributedString key="attributedText">
+                                    <fragment>
+                                        <string key="content">RA-Trade Filing is the US and Canadian customs designated AMS/ISF/ACI- Emanifest solution supplier and a streamlined web based app developed to facilitate global shipping strategies from origin to delivery by providing the tools necessary to manage costs, routings, tracing and schedules in a secure data environment.RA-Trade Filing supports Importers, Customs House Brokers, Shippers and NVOCCs with 24/7 access to create and process manifests electronically to the appropriate government systems.</string>
+                                        <attributes>
+                                            <color key="NSColor" systemColor="labelColor"/>
+                                            <font key="NSFont" metaFont="system" size="17"/>
+                                            <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="2" tighteningFactorForTruncation="0.0"/>
+                                        </attributes>
+                                    </fragment>
+                                </attributedString>
+                                <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
+                            </textView>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="4G5-fp-bA6"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="9BN-Zo-ol7" firstAttribute="leading" secondItem="NLm-4l-aIH" secondAttribute="leading" id="0iO-QS-nkJ"/>
+                            <constraint firstItem="NLm-4l-aIH" firstAttribute="leading" secondItem="4G5-fp-bA6" secondAttribute="leading" constant="25" id="5TT-CE-Sgx"/>
+                            <constraint firstItem="9BN-Zo-ol7" firstAttribute="trailing" secondItem="NLm-4l-aIH" secondAttribute="trailing" id="6YC-d8-c5R"/>
+                            <constraint firstItem="VBY-Ct-00o" firstAttribute="top" secondItem="4G5-fp-bA6" secondAttribute="top" constant="20" id="8u3-wz-cJG"/>
+                            <constraint firstItem="4G5-fp-bA6" firstAttribute="trailing" secondItem="NLm-4l-aIH" secondAttribute="trailing" constant="25" id="RP5-Ym-N7G"/>
+                            <constraint firstItem="xHj-2R-AwB" firstAttribute="centerX" secondItem="swF-RV-c5M" secondAttribute="centerX" id="bcq-ke-9D2"/>
+                            <constraint firstItem="ppE-eo-PlT" firstAttribute="leading" secondItem="NLm-4l-aIH" secondAttribute="leading" id="gCO-G8-mbY"/>
+                            <constraint firstItem="NLm-4l-aIH" firstAttribute="top" secondItem="9BN-Zo-ol7" secondAttribute="bottom" constant="20" id="mVw-dp-tXw"/>
+                            <constraint firstItem="4G5-fp-bA6" firstAttribute="bottom" secondItem="xHj-2R-AwB" secondAttribute="bottom" constant="20" id="mxs-m1-L5p"/>
+                            <constraint firstItem="xHj-2R-AwB" firstAttribute="top" secondItem="ppE-eo-PlT" secondAttribute="bottom" constant="20" id="nbV-hp-0wV"/>
+                            <constraint firstItem="NLm-4l-aIH" firstAttribute="leading" secondItem="VBY-Ct-00o" secondAttribute="leading" id="qqJ-pY-5hf"/>
+                            <constraint firstItem="ppE-eo-PlT" firstAttribute="top" secondItem="NLm-4l-aIH" secondAttribute="bottom" constant="40" id="s9M-cM-hER"/>
+                            <constraint firstItem="9BN-Zo-ol7" firstAttribute="top" secondItem="VBY-Ct-00o" secondAttribute="bottom" constant="10" id="uGU-mK-sRq"/>
+                        </constraints>
+                    </view>
+                    <tabBarItem key="tabBarItem" title="ABOUT" image="tab_about" id="EaZ-pp-4cm"/>
+                    <simulatedTabBarMetrics key="simulatedBottomBarMetrics"/>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="5In-gK-nPy" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="121.73913043478262" y="118.52678571428571"/>
+        </scene>
+    </scenes>
+    <resources>
+        <image name="navigate_logo" width="109" height="32"/>
+        <image name="tab_about" width="30" height="30"/>
+        <systemColor name="labelColor">
+            <color white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>

+ 16 - 0
RA TradeFiling/RA TradeFiling/About/AboutViewController.h

@@ -0,0 +1,16 @@
+//
+//  AboutViewController.h
+//  RA TradeFiling
+//
+//  Created by Rui Zhang on 1/19/21.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface AboutViewController : UIViewController
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 49 - 0
RA TradeFiling/RA TradeFiling/About/AboutViewController.m

@@ -0,0 +1,49 @@
+//
+//  AboutViewController.m
+//  RA TradeFiling
+//
+//  Created by Rui Zhang on 1/19/21.
+//
+
+#import "AboutViewController.h"
+#import "config.h"
+#import "WebViewController.h"
+@interface AboutViewController ()
+
+@end
+
+@implementation AboutViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+}
+- (void)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    [[self navigationController] setNavigationBarHidden:NO animated:NO];
+    
+}
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+- (IBAction)onPrivacyClick:(id)sender {
+    
+    NSString* url = URL_PRIVACY;
+    
+    NSString* title = @"Privacy Policy";
+    
+    WebViewController *viewcontroller=[[UIStoryboard storyboardWithName:@"wkweb" bundle:nil] instantiateViewControllerWithIdentifier:@"WebViewController"];
+    viewcontroller.title = title;
+    viewcontroller.url = url;
+    viewcontroller.defaultBarbutton=true;
+    [self.navigationController pushViewController:viewcontroller animated:YES];
+}
+
+@end

+ 30 - 30
RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -1,62 +1,62 @@
 {
   "images" : [
     {
-      "size" : "20x20",
-      "idiom" : "iphone",
       "filename" : "appicon.png",
-      "scale" : "2x"
+      "idiom" : "iphone",
+      "scale" : "2x",
+      "size" : "20x20"
     },
     {
-      "size" : "20x20",
-      "idiom" : "iphone",
       "filename" : "appicon-1.png",
-      "scale" : "3x"
+      "idiom" : "iphone",
+      "scale" : "3x",
+      "size" : "20x20"
     },
     {
-      "size" : "29x29",
-      "idiom" : "iphone",
       "filename" : "appicon-2.png",
-      "scale" : "2x"
+      "idiom" : "iphone",
+      "scale" : "2x",
+      "size" : "29x29"
     },
     {
-      "size" : "29x29",
-      "idiom" : "iphone",
       "filename" : "appicon-3.png",
-      "scale" : "3x"
+      "idiom" : "iphone",
+      "scale" : "3x",
+      "size" : "29x29"
     },
     {
-      "size" : "40x40",
-      "idiom" : "iphone",
       "filename" : "appicon-4.png",
-      "scale" : "2x"
+      "idiom" : "iphone",
+      "scale" : "2x",
+      "size" : "40x40"
     },
     {
-      "size" : "40x40",
-      "idiom" : "iphone",
       "filename" : "appicon-5.png",
-      "scale" : "3x"
+      "idiom" : "iphone",
+      "scale" : "3x",
+      "size" : "40x40"
     },
     {
-      "size" : "60x60",
-      "idiom" : "iphone",
       "filename" : "appicon-6.png",
-      "scale" : "2x"
+      "idiom" : "iphone",
+      "scale" : "2x",
+      "size" : "60x60"
     },
     {
-      "size" : "60x60",
-      "idiom" : "iphone",
       "filename" : "appicon-7.png",
-      "scale" : "3x"
+      "idiom" : "iphone",
+      "scale" : "3x",
+      "size" : "60x60"
     },
     {
-      "size" : "1024x1024",
+      "filename" : "appicon-8.png",
       "idiom" : "ios-marketing",
-      "filename" : "red1.png",
-      "scale" : "1x"
+      "scale" : "1x",
+      "size" : "1024x1024"
     }
   ],
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
   }
-}
+}

BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-3.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-4.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-5.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-6.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-7.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon-8.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/appicon.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/AppIcon.appiconset/red1.png


+ 3 - 6
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_search.imageset/Contents.json → RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_30.imageset/Contents.json

@@ -1,17 +1,17 @@
 {
   "images" : [
     {
-      "filename" : "tab_search.png",
+      "filename" : "appicon.png",
       "idiom" : "universal",
       "scale" : "1x"
     },
     {
-      "filename" : "tab_search@2x.png",
+      "filename" : "appicon-1.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "tab_search@3x.png",
+      "filename" : "appicon-2.png",
       "idiom" : "universal",
       "scale" : "3x"
     }
@@ -19,8 +19,5 @@
   "info" : {
     "author" : "xcode",
     "version" : 1
-  },
-  "properties" : {
-    "template-rendering-intent" : "original"
   }
 }

BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_30.imageset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_30.imageset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_30.imageset/appicon.png


+ 23 - 0
RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_unchecked_30.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "appicon.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "appicon-1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "appicon-2.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_unchecked_30.imageset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_unchecked_30.imageset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/checkbox_unchecked_30.imageset/appicon.png


+ 23 - 0
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_container_blank.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "appicon.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "appicon-1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "appicon-2.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_container_blank.imageset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_container_blank.imageset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_container_blank.imageset/appicon.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_customer.imageset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_customer.imageset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_customer.imageset/appicon.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_more.imageset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_more.imageset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_more.imageset/appicon.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_more_dot.imageset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_more_dot.imageset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_more_dot.imageset/appicon.png


+ 23 - 0
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_search.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "appicon.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "appicon-1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "appicon-2.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_search.imageset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_search.imageset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/ic_search.imageset/appicon.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/login_main.imageset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/login_main.imageset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/login_main.imageset/appicon.png


+ 23 - 0
RA TradeFiling/RA TradeFiling/Assets.xcassets/status_waiting.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "appicon.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "appicon-1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "appicon-2.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/status_waiting.imageset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/status_waiting.imageset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/status_waiting.imageset/appicon.png


+ 23 - 0
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_about.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "appicon.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "appicon-1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "appicon-2.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_about.imageset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_about.imageset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_about.imageset/appicon.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_home.imageset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_home.imageset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_home.imageset/appicon.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_login.imageset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_login.imageset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_login.imageset/appicon.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_my.imageset/appicon-1.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_my.imageset/appicon-2.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_my.imageset/appicon.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_search.imageset/tab_search.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_search.imageset/tab_search@2x.png


BIN=BIN
RA TradeFiling/RA TradeFiling/Assets.xcassets/tab_search.imageset/tab_search@3x.png


+ 9 - 1
RA TradeFiling/RA TradeFiling/DataProvider/OfflineDataProvider.h

@@ -7,16 +7,24 @@
 
 #import <Foundation/Foundation.h>
 
+
+
 NS_ASSUME_NONNULL_BEGIN
 
+typedef void(^resultHandler)(NSMutableDictionary *result);
+
 @interface OfflineDataProvider : NSObject
 + (NSMutableDictionary *)request_login;
++ (NSMutableDictionary *)request_signup;
++ (NSMutableDictionary *)save_panel;
 + (NSMutableDictionary *)request_logout;
-+ (NSMutableDictionary *)request_home;
++ (void)request_home: (resultHandler)result;
 + (NSMutableDictionary *)request_changepassword;
 + (NSMutableDictionary *)request_retrievepassword;
 + (NSMutableDictionary *)request_result: (NSMutableDictionary *) params;
 + (NSMutableDictionary*) request_detail: (NSMutableDictionary *) params;
++ (void)request_fastdownload:(NSMutableDictionary *)params url:(NSString *)url completionHandler:(resultHandler)result;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 99 - 29
RA TradeFiling/RA TradeFiling/DataProvider/OfflineDataProvider.m

@@ -27,8 +27,14 @@
     
 
 }
-
-
++ (NSMutableDictionary *)request_signup
+{
+    return [@{@"result":@2} mutableCopy];
+}
++ (NSMutableDictionary *)save_panel
+{
+    return [@{@"result":@2} mutableCopy];
+}
 + (NSMutableDictionary *)request_retrievepassword
 {
     return [@{@"result":@2} mutableCopy];
@@ -47,15 +53,15 @@
 + (NSMutableDictionary *)request_result:(NSMutableDictionary*) params
 {
     NSData* json;
-    if([params[@"subtype"] isEqualToString:@"aci"])
+    if([params[@"sub_type"] isEqualToString:@"aci"])
         json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"searchresult_aci" ofType:@"json" ]];
-    else if([params[@"subtype"] isEqualToString:@"emanifest"])
+    else if([params[@"sub_type"] isEqualToString:@"emanifest"])
         json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"searchresult_emanifest" ofType:@"json" ]];
-    else if([params[@"subtype"] isEqualToString:@"isf"])
+    else if([params[@"sub_type"] isEqualToString:@"isf"])
         json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"searchresult_isf" ofType:@"json" ]];
-    else if([params[@"subtype"] isEqualToString:@"acem1"])
+    else if([params[@"sub_type"] isEqualToString:@"acem1"])
         json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"searchresult_acem1" ofType:@"json" ]];
-    else if([params[@"subtype"] isEqualToString:@"customer"])
+    else if([params[@"sub_type"] isEqualToString:@"customer"])
         json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"searchresult_customer" ofType:@"json" ]];
     if(json==nil)
     {
@@ -70,42 +76,106 @@
 
 }
 
-+ (NSMutableDictionary *)request_home
++ (void)request_home: (resultHandler)result
 {
-    NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"home" ofType:@"json" ]];
-    
-    
-    if(json==nil)
-    {
-        return [@{@"result":@2} mutableCopy];
+    dispatch_async(dispatch_get_global_queue(0, 0), ^{
+        sleep(0);
+        NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"home" ofType:@"json" ]];
         
-    }
-    NSError *error=nil;
-    NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error] ;
+        
+        if(json==nil)
+        {
+         
+            
+            
+            
+            dispatch_async(dispatch_get_main_queue(), ^{
+                result( [@{@"result":@2} mutableCopy]);
+            });
+            
+        }
+        NSError *error=nil;
+        NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error] ;
+        
+        
+        dispatch_async(dispatch_get_main_queue(), ^{
+            result( [dict mutableCopy]);
+        });
+        
+        
+    });
     
     
-    return [dict mutableCopy];
+    
+
 }
 
++ (void)request_fastdownload:(NSMutableDictionary *)params url:(NSString *)url completionHandler:(resultHandler)result;
+{
+//    NSString* path=NSTemporaryDirectory();
+    
+    NSData* pdf =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"fake_export" ofType:@"pdf" ]];
+    
+    
 
+//        path = [path stringByAppendingPathComponent:[NSUUID UUID].UUIDString];
+//    NSError *error = nil;
+//
+//    [[NSFileManager defaultManager] copyItemAtPath:location.path toPath:path error:&error];
+    
+//            [[NSFileManager defaultManager] copyItemAtURL:[NSURL URLWithString:location.path] toURL:[NSURL URLWithString:path] error:&error];
+//            NSFileManager
+//                    NSString *cacheDir = NSTemporaryDirectory();
+//
+//                    if (![[NSFileManager defaultManager] fileExistsAtPath:cacheDir]) {
+//                        [[NSFileManager defaultManager] createDirectoryAtPath:cacheDir withIntermediateDirectories:NO attributes:nil error:nil];
+//                    }
+    NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
+    ret[@"suggestedFilename"]=@"fake_export.pdf";
+    ret[@"result"]=@"2";
+    ret[@"data"]=pdf;
+    ret[@"path"]=[[NSBundle mainBundle]  pathForResource:@"fake_export" ofType:@"pdf" ];//[location absoluteString];
+
+        result(ret);
+}
 + (NSMutableDictionary*) request_detail: (NSMutableDictionary *) params;
 {
     
     if([params[@"action_type"] isEqualToString:@"Detail"])
     {
-        NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"detail" ofType:@"json" ]];
         
-        
-        if(json==nil)
-        {
-            return [@{@"result":@2} mutableCopy];
+//        if([params[@"module_name"] isEqualToString:@"acem1"]||true)
+//        {
+            NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:[NSString stringWithFormat:@"detail_%@",params[@"sub_type"]] ofType:@"json" ]];
             
-        }
-        NSError *error=nil;
-        NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error] ;
-        
-        
-        return [dict mutableCopy];
+            
+            if(json==nil)
+            {
+                return [@{@"result":@2} mutableCopy];
+                
+            }
+            NSError *error=nil;
+            NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error] ;
+            
+            
+            return [dict mutableCopy];
+//        }
+//        else
+//        {
+//        NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"detail" ofType:@"json" ]];
+//
+//
+//        if(json==nil)
+//        {
+//            return [@{@"result":@2} mutableCopy];
+//
+//        }
+//        NSError *error=nil;
+//        NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error] ;
+//
+//
+//        return [dict mutableCopy];
+//        }
     }
     else if([params[@"action_type"] isEqualToString:@"Container Detail"])
     {

+ 5 - 1
RA TradeFiling/RA TradeFiling/DataProvider/OnlineDataProvider.h

@@ -7,16 +7,20 @@
 
 #import <Foundation/Foundation.h>
 #import "NetworkUtils.h"
+#import "RASingleton.h"
 NS_ASSUME_NONNULL_BEGIN
 
 @interface OnlineDataProvider : NetworkUtils
 + (void)request_login : (NSString*) user password:(NSString*) password completionHandler:(resultHandler)result;
++ (void)request_signup : (NSString*) user password:(NSString*) password completionHandler:(resultHandler)result;
 + (void)request_changepassword:(NSString*) newpassword completionHandler:(resultHandler)result;
 + (void)request_logout : (resultHandler)result;
-+ (void)request_home : (resultHandler)result;
++ (void)request_home :(NSMutableDictionary *)params completionHandler:(resultHandler)result;
 + (void)request_result:(NSMutableDictionary *)params completionHandler:(resultHandler)result;
 + (void) request_detail: (NSMutableDictionary *) params completionHandler:(resultHandler)result;
 + (void)request_retrievepassword: (NSString*)user  email:(NSString*)email completionHandler:(resultHandler)result;
++ (void)request_fastdownload:(NSMutableDictionary *)params url:(NSString *)url completionHandler:(resultHandler)result;
++ (void)request_savepanel: (NSString*)panel_setting completionHandler:(resultHandler)result;
 @end
 
 NS_ASSUME_NONNULL_END

+ 181 - 5
RA TradeFiling/RA TradeFiling/DataProvider/OnlineDataProvider.m

@@ -7,29 +7,98 @@
 
 #import "OnlineDataProvider.h"
 
+#import "config.h"
+#import "RAUtils.h"
+
 @implementation OnlineDataProvider
 + (void)request_login : (NSString*) user password:(NSString*) password completionHandler:(resultHandler)result
 {
-    
+//    long ver = 0;
+   NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+   
+
+//       AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
+//       ver = appDelegate.authVer;
+//       if(appDelegate.duid !=nil)
+//           [params setValue:appDelegate.duid forKey:@"udid"];
+   
+   [params setValue:@"login" forKey:@"action"];
+   //    [headers setValue:[NSString stringWithFormat:@"%d",dataLength] forKey:@"Content-Length"];
+   
+   [params setValue:user forKey:@"user"];
+   [params setValue:password forKey:@"password"];
+//   [params setValue:[NSString stringWithFormat:@"%ld",ver]  forKey:@"auth_ver"];
+#ifdef TEST
+   [params setValue:@"true" forKey:@"is_debug"];
+#else
+   [params setValue:@"false" forKey:@"is_debug"];
+#endif
+   
+   
+   [self request_interface:URL_LOGIN parameters:params err_record_url:nil completionHandler:result retry:0];
+   
+}
+
++ (void)request_signup : (NSString*) user password:(NSString*) password completionHandler:(resultHandler)result
+{
+//    long ver = 0;
+   NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+   
+
+//       AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
+//       ver = appDelegate.authVer;
+//       if(appDelegate.duid !=nil)
+//           [params setValue:appDelegate.duid forKey:@"udid"];
+   
+   [params setValue:@"signup" forKey:@"action"];
+   //    [headers setValue:[NSString stringWithFormat:@"%d",dataLength] forKey:@"Content-Length"];
+   
+   [params setValue:user forKey:@"email"];
+   [params setValue:password forKey:@"password"];
+//   [params setValue:[NSString stringWithFormat:@"%ld",ver]  forKey:@"auth_ver"];
+//#ifdef TEST
+//   [params setValue:@"true" forKey:@"is_debug"];
+//#else
+//   [params setValue:@"false" forKey:@"is_debug"];
+//#endif
+   
+   
+   [self request_interface:URL_SIGNUP parameters:params err_record_url:nil completionHandler:result retry:0];
+   
 }
 
 + (void)request_changepassword:(NSString*) newpassword completionHandler:(resultHandler)result
 {
-    
+    NSMutableDictionary* params = [NSMutableDictionary new];
+    params[@"newpassword"]=newpassword;
+    params[@"action"]=@"";
+//    params = [self prepare_addtional_params:params];
+    [self request_interface:URL_CHANGE_PASS parameters:params err_record_url:nil completionHandler:result retry:0];
 }
 + (void)request_logout : (resultHandler)result
 {
+    NSMutableDictionary* params = [NSMutableDictionary new];
+    params[@"action"]=@"logout";
     
+//    params = [self prepare_addtional_params:params];
+    [self request_interface:URL_LOGOUT parameters:params err_record_url:nil completionHandler:result retry:0];
 }
 
-+ (void)request_home : (resultHandler)result
++ (void)request_home :(NSMutableDictionary *)params completionHandler:(resultHandler)result
 {
-    
+//    params = [self prepare_addtional_params:params];
+    if(params==nil)
+        params = [NSMutableDictionary new];
+    params[@"action"]=@"dashboardMobile";
+    [self request_interface:URL_HOME parameters:params err_record_url:nil completionHandler:result retry:0];
 }
 
 + (void)request_result:(NSMutableDictionary *)params completionHandler:(resultHandler)result
 {
     
+    params[@"action"]=@"result";
+    [self request_interface:URL_SEARCH_RESULT parameters:params err_record_url:nil completionHandler:result retry:0];
+    
 //    return [self mockResult:params];
 //    
 //    params[@"action"]=@"handset_search";
@@ -49,7 +118,7 @@
 
 +(void) request_detail: (NSMutableDictionary *) params completionHandler:(resultHandler)result
 {
-    
+    [self request_interface:URL_REQUEST_DETAIL parameters:params err_record_url:nil completionHandler:result retry:0];
 
 //    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
 //        [params setValue:@"handset_search" forKey:@"action"];
@@ -63,6 +132,113 @@
 
 + (void)request_retrievepassword: (NSString*)user  email:(NSString*)email completionHandler:(resultHandler)result
 {
+    NSMutableDictionary* params = [NSMutableDictionary new];
+    
+    params[@"user"]=user;
+    params[@"email"]=email;
+    [self request_interface:URL_RETRIEVE_PASS parameters:params err_record_url:nil completionHandler:result retry:0];
+}
+
+
++ (void)request_fastdownload:(NSMutableDictionary *)params url:(NSString *)url completionHandler:(resultHandler)result
+{
+    
+#ifdef test_server
+//    url=URL_REQUEST_RECORDS;
+//    params[@"prefix"]=URL_REQUEST_RECORDS;
+#endif
+    
+//    if(method.length==0)
+//        method=@"POST";
+//
+//    if(path.length==0)
+//        path=NSTemporaryDirectory();
+    
+//
+//    (NSString*) url parameters:(NSMutableDictionary *) params  err_record_url:(NSString* )recorder_url offset:(NSUInteger)offset method:(NSString *)method storein:(NSString *)path progressHandler:(progressHandler)progressHandler completionHandler:(resultHandler)result;
+    
+//    params = [self prepare_addtional_params:params];
+//    [self request_file:url parameters:params err_record_url:err_record offset:offset method:method storein:path progressHandler:progressHandler completionHandler:result];
+    
+    [self request_file_fast:url parameters:params completionHandler:result];
+    
+}
+
+
++(NSMutableDictionary*) prepare_additional_params:(NSMutableDictionary* ) params
+{
+    
+    if (params == nil) {
+        params = [NSMutableDictionary dictionary];
+    }
+    
+//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    if(appDelegate.user!=nil && params[@"user"] == nil)
+//        [params setValue:[AESCrypt AES128Encrypt:appDelegate.user key:@"Usai2010"] forKey:@"user"];
+//    if(appDelegate.password!=nil&& params[@"pwd"] == nil)
+//        [params setValue:[AESCrypt AES128Encrypt:appDelegate.password key:@"Usai2010"] forKey:@"pwd"];
+    
+    if(RASingleton.sharedInstance.user!=nil && params[@"user"] == nil)
+        [params setValue:RASingleton.sharedInstance.user  forKey:@"user"];
+    if(RASingleton.sharedInstance.password!=nil&& params[@"password"] == nil)
+        [params setValue:RASingleton.sharedInstance.password  forKey:@"password"];
+    
+//    [params setValue:appDelegate.build forKey:@"app_ver"];
+//
+    NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
+    NSString* short_version =[infoDict objectForKey:@"CFBundleShortVersionString"];
+    [params setValue:short_version forKey:@"app_ver"];
+    
+    
     
+#if TARGET_IPHONE_SIMULATOR//模拟器
+    [params setValue:@"simulator_uuid" forKey:@"deviceid"];
+#elif TARGET_OS_IPHONE//真机
+    UIDevice * dev = [UIDevice currentDevice];
+    NSUUID* uuid =dev.identifierForVendor;
+    [params setValue:uuid.UUIDString forKey:@"deviceid"];
+#endif
+    
+    params[@"os"]=@"iOS";
+    return params;
+}
+
+
++ (void)request_savepanel: (NSString*)panel_setting completionHandler:(resultHandler)result
+{
+    NSMutableDictionary* params = [NSMutableDictionary new];
+    params[@"function_panel"]=panel_setting;
+//    params = [self prepare_addtional_params:params];
+    [self request_interface:URL_SAVE_PANEL parameters:params err_record_url:nil completionHandler:result retry:0];
+}
+
+
+
+//重新实现request_interface 接口,对部分返回结果预处理。
++(void)request_interface : (NSString*) url parameters:(NSMutableDictionary *) params  err_record_url:(NSString* )recorder_url completionHandler:(resultHandler)result retry:(int) retry
+{
+
+    [super request_interface:url parameters:params err_record_url:recorder_url completionHandler:^(NSMutableDictionary *resultjson) {
+        
+        if([resultjson[@"result"] intValue]==RESULT_LOGIN_ON_OTHER_DEVICE)
+        {
+//            [RAUtils message_alert:@"User login on other device." title:@"Warrning" controller:nil];
+            
+            [RAUtils message_alert:@"User login on other device." title:@"Warrning" controller:[RAUtils getCurrentVC] action_handler:nil completion:^{
+                [RASingleton.sharedInstance logout];
+                        }];
+        }
+        
+        //            NSMutableDictionary *resultDic = resultjson;
+        //
+        //            // detail data in local database
+        //            NSString *module_name = [params objectForKey:@"module_name"];
+        //            AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
+        //            NSArray *actions = [ApexMobileDB getActionsForFunction:module_name withUser:appDelegate.user];
+        //            [resultDic setValue:actions forKey:@"actions"];
+                result(resultjson);
+        
+        
+    }retry:retry];
 }
 @end

+ 7 - 3
RA TradeFiling/RA TradeFiling/DataProvider/RADataProvider.h

@@ -22,19 +22,23 @@
 + (void)LoadHome :(resultHandler)result;
 + (void)Search:(NSMutableDictionary *)params completionHandler:(resultHandler)result;
 + (void)ChangePassword : (NSString*) newpassword completionHandler:(resultHandler)result;
-+ (void)RetrievePassword : (NSString*)user  email:(NSString*)email completionHandler:(resultHandler)result;
+//+ (void)RetrievePassword : (NSString*)user  email:(NSString*)email completionHandler:(resultHandler)result;
 + (void) TabDetail: (NSMutableDictionary *) params completionHandler:(resultHandler)result;
++ (void)DownloadFile:(NSMutableDictionary *)params url:(NSString *)url completionHandler:(resultHandler)result;
++ (void)SavePanel:(NSString*)panel_setting completionHandler:(resultHandler)result;
++ (void)Signup : (NSString*) user password:(NSString*) password completionHandler:(resultHandler)result;
+
 +(DetailContent*) json2DetailContent:(NSMutableDictionary*)jsobj;
 //
 //+ (NSDictionary *)requestLogin:(NSString *)user password:(NSString *)pwd;
 //
 
 //
-+ (NSDictionary *)requestOrderList;
+//+ (NSDictionary *)requestOrderList;
 //
 //+ (NSDictionary *)requestMoreOrder:(NSInteger)orderType offset:(NSInteger)offset limit:(NSInteger)limit filter:(NSDictionary *)filter;
 //
-+ (NSDictionary *)requestOrderDetail:(NSString *)orderID type:(NSInteger)type type2:(NSString *)type2 statusNo:(NSString *)statusNo;
+//+ (NSDictionary *)requestOrderDetail:(NSString *)orderID type:(NSInteger)type type2:(NSString *)type2 statusNo:(NSString *)statusNo;
 //
 //+ (NSDictionary *)requestUpdateOrder:(NSString *)orderID driverAction:(NSInteger)action index:(NSInteger)idx;
 //

+ 101 - 47
RA TradeFiling/RA TradeFiling/DataProvider/RADataProvider.m

@@ -19,10 +19,38 @@
 //
 //
 @implementation RADataProvider
+
+
++ (void)SavePanel:(NSString*)panel_setting completionHandler:(resultHandler)result
+{
+    if(fake_data)
+    {
+        result([OfflineDataProvider save_panel]);
+    }
+    else
+    {
+        [OnlineDataProvider request_savepanel:panel_setting completionHandler:result];
+        
+    }
+}
+
++ (void)Signup : (NSString*) user password:(NSString*) password completionHandler:(resultHandler)result
+{
+//    bool boffline = RASingleton.sharedInstance.offline;
+    if(fake_data&& false)
+    {
+        result([OfflineDataProvider request_signup]);
+    }
+    else
+    {
+        [OnlineDataProvider request_signup:user password:password completionHandler:result];
+        
+    }
+}
 + (void)Login: (NSString*) user password:(NSString*) password completionHandler:(resultHandler)result
 {
 //    bool boffline = RASingleton.sharedInstance.offline;
-    if(fake_data)
+    if(fake_data&& false)
     {
         result([OfflineDataProvider request_login]);
     }
@@ -70,16 +98,29 @@
     }
 }
 
+
++ (void)DownloadFile:(NSMutableDictionary *)params url:(NSString *)url completionHandler:(resultHandler)result;
+{
+    if(fake_data)
+    {
+        [OfflineDataProvider request_fastdownload:nil url:url completionHandler:result];
+    }
+    else
+    {
+        [OnlineDataProvider request_fastdownload:nil url:url completionHandler:result];
+        
+    }
+}
 + (void)LoadHome :(resultHandler)result
 {
 //    bool boffline = RASingleton.sharedInstance.offline;
     if(fake_data)
     {
-        result([OfflineDataProvider request_home]);
+        [OfflineDataProvider request_home:result];
     }
     else
     {
-        [OnlineDataProvider request_home:result];
+        [OnlineDataProvider request_home:nil completionHandler:result];
         
     }
 }
@@ -219,36 +260,39 @@
     NSData* json_user =[NSData dataWithContentsOfFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@_%@.json",type,subtype,RASingleton.sharedInstance.user]]];
 
     
-    NSData* json=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:[NSString stringWithFormat:@"%@_%@",type,subtype] ofType:@"json" ]]; ;
+//    NSData* json=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:[NSString stringWithFormat:@"%@_%@",type,subtype] ofType:@"json" ]]; ;
     if(json_user!=nil)
     {
         
 
-        NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:nil] ;
+//        NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:nil] ;
+        
+        NSDictionary* dict = RASingleton.sharedInstance.fields[type][subtype];
         NSMutableDictionary* dict_user = [[NSJSONSerialization JSONObjectWithData:json_user options:NSJSONReadingMutableLeaves error:nil] mutableCopy] ;
         
         if([dict_user[@"ver"] doubleValue]<[dict[@"ver"] doubleValue])
         {
-            dict_user[@"ver"] =dict[@"ver"];
-            NSArray * arr_add=dict[@"add"];
+//            dict_user[@"ver"] =dict[@"ver"];
+//            NSArray * arr_add=dict[@"add"];
+//
+//            NSMutableArray* user_show=[dict_user[@"show"] mutableCopy];
+//            NSMutableArray* user_hide=[dict_user[@"hide"] mutableCopy];
+//            for(int i=0;i<arr_add.count;i++)
+//            {
+//                [user_hide addObject:arr_add[i]];
+//
+//            }
+//            NSArray * arr_remove=dict[@"remove"];
+//            for(int i=0;i<arr_remove.count;i++)
+//            {
+//                [user_hide removeObject:arr_remove[i]];
+//                [user_show removeObject:arr_remove[i]];
+//
+//            }
+//            dict_user[@"show"] = user_show;
+//            dict_user[@"user_hide"] = user_hide;
+            json_user =[RAConvertor dict2data:dict];
             
-            NSMutableArray* user_show=[dict_user[@"show"] mutableCopy];
-            NSMutableArray* user_hide=[dict_user[@"hide"] mutableCopy];
-            for(int i=0;i<arr_add.count;i++)
-            {
-                [user_hide addObject:arr_add[i]];
-                
-            }
-            NSArray * arr_remove=dict[@"remove"];
-            for(int i=0;i<arr_remove.count;i++)
-            {
-                [user_hide removeObject:arr_remove[i]];
-                [user_show removeObject:arr_remove[i]];
-                
-            }
-            dict_user[@"show"] = user_show;
-            dict_user[@"user_hide"] = user_hide;
-            json_user =[RAConvertor dict2data:dict_user];
             bool result =[json_user writeToFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@_%@.json",type,subtype,RASingleton.sharedInstance.user]]  atomically:true];
         }
 
@@ -256,10 +300,13 @@
     }
     else
     {
+        
+        NSData* json = [RAConvertor dict2data:RASingleton.sharedInstance.fields[type][subtype] ];
+        
 //        json=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"FunctionPanel" ofType:@"json" ]];
         bool result =[json writeToFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@_%@.json",type,subtype,RASingleton.sharedInstance.user]]  atomically:true];
         
-        NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:nil] ;
+//        NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:nil] ;
         return json;
     }
     
@@ -276,31 +323,35 @@
     NSData* json ;
     if(json_user!=nil)
     {
-        json=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"FunctionPanel" ofType:@"json" ]];
-        NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:nil] ;
+//        json=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"FunctionPanel" ofType:@"json" ]];
+//        NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:nil] ;
+        NSDictionary* dict = RASingleton.sharedInstance.functionPanel;
         NSMutableDictionary* dict_user = [[NSJSONSerialization JSONObjectWithData:json_user options:NSJSONReadingMutableLeaves error:nil] mutableCopy] ;
         
         if([dict_user[@"ver"] doubleValue]<[dict[@"ver"] doubleValue])
         {
-            dict_user[@"ver"] =dict[@"ver"];
-            NSArray * arr_add=dict[@"add"];
             
-            NSMutableArray* user_deactive=[dict_user[@"deactive_functions"] mutableCopy];
-            NSMutableArray* user_active=[dict_user[@"active_functions"] mutableCopy];
-            for(int i=0;i<arr_add.count;i++)
-            {
-                [user_deactive addObject:arr_add[i]];
-                
-            }
-            NSArray * arr_remove=dict[@"remove"];
-            for(int i=0;i<arr_remove.count;i++)
-            {
-                [user_deactive removeObject:arr_remove[i]];
-                [user_active removeObject:arr_remove[i]];
-                
-            }
-            dict_user[@"deactive_functions"] = user_deactive;
-            dict_user[@"active_functions"] = user_active;
+            
+            dict_user = [dict mutableCopy];
+//            dict_user[@"ver"] =dict[@"ver"];
+//            NSArray * arr_add=dict[@"add"];
+//            
+//            NSMutableArray* user_deactive=[dict_user[@"deactive_functions"] mutableCopy];
+//            NSMutableArray* user_active=[dict_user[@"active_functions"] mutableCopy];
+//            for(int i=0;i<arr_add.count;i++)
+//            {
+//                [user_deactive addObject:arr_add[i]];
+//                
+//            }
+//            NSArray * arr_remove=dict[@"remove"];
+//            for(int i=0;i<arr_remove.count;i++)
+//            {
+//                [user_deactive removeObject:arr_remove[i]];
+//                [user_active removeObject:arr_remove[i]];
+//                
+//            }
+//            dict_user[@"deactive_functions"] = user_deactive;
+//            dict_user[@"active_functions"] = user_active;
             json_user =[RAConvertor dict2data:dict_user];
             bool result =[json_user writeToFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"FunctionPanel_%@.json",RASingleton.sharedInstance.user]]  atomically:true];
         }
@@ -309,7 +360,9 @@
     }
     else
     {
-        json=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"FunctionPanel" ofType:@"json" ]];
+        json=[RAConvertor dict2data:RASingleton.sharedInstance.functionPanel];
+        
+//        json=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"FunctionPanel" ofType:@"json" ]];
         bool result =[json writeToFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"FunctionPanel_%@.json",RASingleton.sharedInstance.user]]  atomically:true];
         
         NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:nil] ;
@@ -454,7 +507,8 @@
     [params setValue:uuid.UUIDString forKey:@"deviceid"];
 #endif
     
-    params[@"company_id"]= @(RASingleton.sharedInstance.companyid);
+    if(RASingleton.sharedInstance.companyid>0)
+        params[@"company_id"]= RASingleton.sharedInstance.companylist[RASingleton.sharedInstance.companyid][@"id"];
     return params;
 }
 //

+ 59 - 6
RA TradeFiling/RA TradeFiling/Detail/Detail.storyboard

@@ -191,7 +191,7 @@
                                             <rect key="frame" x="0.0" y="0.0" width="414" height="100"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
-                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_container" translatesAutoresizingMaskIntoConstraints="NO" id="LVu-fR-HhX">
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_container_blank" translatesAutoresizingMaskIntoConstraints="NO" id="LVu-fR-HhX">
                                                     <rect key="frame" x="15" y="41" width="48" height="48"/>
                                                     <constraints>
                                                         <constraint firstAttribute="height" constant="48" id="Cg2-sF-6wV"/>
@@ -204,8 +204,8 @@
                                                     <nil key="textColor"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="size" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Th0-26-rH8">
-                                                    <rect key="frame" x="370" y="16" width="24" height="16"/>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="service" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Th0-26-rH8">
+                                                    <rect key="frame" x="350" y="16" width="44" height="16"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                                     <nil key="textColor"/>
                                                     <nil key="highlightedColor"/>
@@ -231,16 +231,23 @@
                                                     <nil key="textColor"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="service" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="frZ-76-N3c">
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="seal no" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="frZ-76-N3c">
                                                     <rect key="frame" x="238.5" y="68" width="155.5" height="16"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                                     <nil key="textColor"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="45HC" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="I0A-vb-i2Y">
+                                                    <rect key="frame" x="31" y="59" width="28" height="12"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="10"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
                                             </subviews>
                                             <constraints>
                                                 <constraint firstItem="e3d-SE-ahU" firstAttribute="top" secondItem="1Xx-Qr-zfX" secondAttribute="top" constant="15" id="0xD-LU-xyx"/>
                                                 <constraint firstItem="FMX-Pc-3J0" firstAttribute="leading" secondItem="M9b-AQ-9bF" secondAttribute="trailing" constant="10" id="3KJ-tE-oMZ"/>
+                                                <constraint firstItem="I0A-vb-i2Y" firstAttribute="trailing" secondItem="LVu-fR-HhX" secondAttribute="trailing" constant="-4" id="4IG-8t-NXu"/>
                                                 <constraint firstItem="Cld-ag-Wp1" firstAttribute="bottom" secondItem="LVu-fR-HhX" secondAttribute="bottom" constant="-5" id="4SI-k1-N3W"/>
                                                 <constraint firstItem="frZ-76-N3c" firstAttribute="width" secondItem="FMX-Pc-3J0" secondAttribute="width" id="5cF-q6-1re"/>
                                                 <constraint firstItem="Th0-26-rH8" firstAttribute="centerY" secondItem="e3d-SE-ahU" secondAttribute="centerY" id="8aZ-yc-pFv"/>
@@ -251,6 +258,7 @@
                                                 <constraint firstItem="Cld-ag-Wp1" firstAttribute="width" secondItem="M9b-AQ-9bF" secondAttribute="width" id="TZw-pZ-aHt"/>
                                                 <constraint firstItem="M9b-AQ-9bF" firstAttribute="leading" secondItem="LVu-fR-HhX" secondAttribute="trailing" constant="10" id="aDQ-HK-bcv"/>
                                                 <constraint firstItem="FMX-Pc-3J0" firstAttribute="top" secondItem="M9b-AQ-9bF" secondAttribute="top" id="ftO-o0-RdF"/>
+                                                <constraint firstItem="I0A-vb-i2Y" firstAttribute="centerY" secondItem="LVu-fR-HhX" secondAttribute="centerY" id="gJC-5K-wKT"/>
                                                 <constraint firstItem="M9b-AQ-9bF" firstAttribute="top" secondItem="LVu-fR-HhX" secondAttribute="top" constant="5" id="pMO-eg-eAo"/>
                                                 <constraint firstAttribute="trailingMargin" secondItem="Th0-26-rH8" secondAttribute="trailing" id="qbv-XT-Ulx"/>
                                                 <constraint firstItem="frZ-76-N3c" firstAttribute="bottom" secondItem="Cld-ag-Wp1" secondAttribute="bottom" id="rvH-wQ-1Tj"/>
@@ -263,11 +271,55 @@
                                             <outlet property="labelCMB" destination="FMX-Pc-3J0" id="0My-CS-mFW"/>
                                             <outlet property="labelContainerNo" destination="e3d-SE-ahU" id="H3V-WM-72d"/>
                                             <outlet property="labelQTY" destination="M9b-AQ-9bF" id="COy-75-Oo5"/>
-                                            <outlet property="labelService" destination="frZ-76-N3c" id="frW-IL-kkm"/>
-                                            <outlet property="labelSize" destination="Th0-26-rH8" id="Rf8-hv-S74"/>
+                                            <outlet property="labelSealNo" destination="frZ-76-N3c" id="fHb-Sw-zfj"/>
+                                            <outlet property="labelService" destination="Th0-26-rH8" id="Zim-g9-Zxs"/>
+                                            <outlet property="labelSize" destination="I0A-vb-i2Y" id="Stt-2C-jwL"/>
                                             <outlet property="labelWeight" destination="Cld-ag-Wp1" id="PIP-D9-zeU"/>
                                         </connections>
                                     </tableViewCell>
+                                    <tableViewCell tag="1" contentMode="scaleToFill" restorationIdentifier="detail_item_container_ca" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="detail_item_container_ca" rowHeight="64" id="m5E-N0-YZg" customClass="DetailCellContainerCA">
+                                        <rect key="frame" x="0.0" y="515.5" width="414" height="64"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="m5E-N0-YZg" id="rl6-KX-SG2">
+                                            <rect key="frame" x="0.0" y="0.0" width="414" height="64"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_container" translatesAutoresizingMaskIntoConstraints="NO" id="KwX-zp-7Mu">
+                                                    <rect key="frame" x="15" y="8" width="48" height="48"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="48" id="4tS-ro-A3n"/>
+                                                        <constraint firstAttribute="height" constant="48" id="Hf8-ME-HRz"/>
+                                                    </constraints>
+                                                </imageView>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="seal no" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KpM-8o-y7U">
+                                                    <rect key="frame" x="73" y="40" width="331" height="16"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Container#" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Zlh-Uj-aWp">
+                                                    <rect key="frame" x="73" y="8" width="331" height="18"/>
+                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="KwX-zp-7Mu" firstAttribute="centerY" secondItem="rl6-KX-SG2" secondAttribute="centerY" id="9Mc-gD-uhk"/>
+                                                <constraint firstAttribute="bottom" secondItem="KpM-8o-y7U" secondAttribute="bottom" constant="8" id="E1f-ok-vHi"/>
+                                                <constraint firstItem="KpM-8o-y7U" firstAttribute="leading" secondItem="KwX-zp-7Mu" secondAttribute="trailing" constant="10" id="ExH-oh-adw"/>
+                                                <constraint firstItem="KwX-zp-7Mu" firstAttribute="leading" secondItem="rl6-KX-SG2" secondAttribute="leading" constant="15" id="SS3-da-YZv"/>
+                                                <constraint firstAttribute="trailing" secondItem="KpM-8o-y7U" secondAttribute="trailing" constant="10" id="ges-SL-v80"/>
+                                                <constraint firstAttribute="trailing" secondItem="Zlh-Uj-aWp" secondAttribute="trailing" constant="10" id="uk6-0H-ti0"/>
+                                                <constraint firstItem="Zlh-Uj-aWp" firstAttribute="leading" secondItem="KwX-zp-7Mu" secondAttribute="trailing" constant="10" id="vnD-Sy-74E"/>
+                                                <constraint firstItem="Zlh-Uj-aWp" firstAttribute="top" secondItem="rl6-KX-SG2" secondAttribute="top" constant="8" id="xqT-oX-Dfw"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <connections>
+                                            <outlet property="labelContainerNo" destination="Zlh-Uj-aWp" id="vjx-KR-SF4"/>
+                                            <outlet property="labelSealNo" destination="KpM-8o-y7U" id="3Hz-60-6ri"/>
+                                        </connections>
+                                    </tableViewCell>
                                 </prototypes>
                                 <connections>
                                     <outlet property="dataSource" destination="oTP-Ix-BLa" id="TgV-qI-gLZ"/>
@@ -301,6 +353,7 @@
     </scenes>
     <resources>
         <image name="ic_container" width="48" height="48"/>
+        <image name="ic_container_blank" width="48" height="48"/>
         <systemColor name="tableCellGroupedBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>

+ 1 - 1
RA TradeFiling/RA TradeFiling/Detail/DetailCellContainer.h

@@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (weak, nonatomic) IBOutlet UILabel *labelWeight;
 @property (weak, nonatomic) IBOutlet UILabel *labelQTY;
 @property (weak, nonatomic) IBOutlet UILabel *labelService;
-
+@property (weak, nonatomic) IBOutlet UILabel *labelSealNo;
 @end
 
 NS_ASSUME_NONNULL_END

+ 3 - 1
RA TradeFiling/RA TradeFiling/Detail/DetailCellContainer.m

@@ -6,11 +6,13 @@
 //
 
 #import "DetailCellContainer.h"
-
+#import "const.h"
 @implementation DetailCellContainer
 
 - (void)awakeFromNib {
     [super awakeFromNib];
+    
+    self.labelSize.textColor = SecondaryTextColor;
     // Initialization code
 }
 

+ 17 - 0
RA TradeFiling/RA TradeFiling/Detail/DetailCellContainerCA.h

@@ -0,0 +1,17 @@
+//
+//  DetailCellContainerCA.h
+//  RA TradeFiling
+//
+//  Created by Rui Zhang on 2/2/21.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface DetailCellContainerCA : UITableViewCell
+@property (weak, nonatomic) IBOutlet UILabel *labelContainerNo;
+@property (weak, nonatomic) IBOutlet UILabel *labelSealNo;
+@end
+
+NS_ASSUME_NONNULL_END

+ 23 - 0
RA TradeFiling/RA TradeFiling/Detail/DetailCellContainerCA.m

@@ -0,0 +1,23 @@
+//
+//  DetailCellContainerCA.m
+//  RA TradeFiling
+//
+//  Created by Rui Zhang on 2/2/21.
+//
+
+#import "DetailCellContainerCA.h"
+
+@implementation DetailCellContainerCA
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
+@end

+ 2 - 0
RA TradeFiling/RA TradeFiling/Detail/DetailContent.h

@@ -23,6 +23,8 @@
 @property (strong,nonatomic) NSArray* segments;
 @property (strong,nonatomic) NSMutableDictionary* webviewHeight;
 
+
+
 @property (nonatomic,strong) NSDictionary *originContent;
 
 @end

+ 14 - 14
RA TradeFiling/RA TradeFiling/Detail/DetailContent.m

@@ -30,15 +30,15 @@
     NSString* type =[segment valueForKey:@"_type"];
     if([type isEqualToString:@"table"])
         count=1;
-    else if([type isEqualToString:@"tracking"])
-    {
-        BOOL close = [[segment objectForKey:@"close"] boolValue];
-        if (!close) {
-            count=[[segment valueForKey:@"count"] intValue];
-        } else {
-            count = 0;
-        }
-    }
+//    else if([type isEqualToString:@"tracking"])
+//    {
+//        BOOL close = [[segment objectForKey:@"close"] boolValue];
+//        if (!close) {
+//            count=[[segment valueForKey:@"count"] intValue];
+//        } else {
+//            count = 0;
+//        }
+//    }
     else
     {
         count=[[segment valueForKey:@"count"] intValue];
@@ -58,14 +58,14 @@
     {
         return [self.segments[seg] objectForKey:[NSString stringWithFormat:@"item%ld",row]];
     }
-    else if([type isEqualToString:@"container"])
-    {
-        return [self.segments[seg] objectForKey:[NSString stringWithFormat:@"item%ld",row]];
-    }
-    else if([type isEqualToString:@"tracking"])
+    else if([type isEqualToString:@"container"]||[type isEqualToString:@"container_ca"])
     {
         return [self.segments[seg] objectForKey:[NSString stringWithFormat:@"item%ld",row]];
     }
+//    else if([type isEqualToString:@"tracking"])
+//    {
+//        return [self.segments[seg] objectForKey:[NSString stringWithFormat:@"item%ld",row]];
+//    }
     else if([type isEqualToString:@"log"])
     {
         return [self.segments[seg] objectForKey:[NSString stringWithFormat:@"item%ld",row]];

+ 4 - 1
RA TradeFiling/RA TradeFiling/Detail/DetailPageViewController.h

@@ -7,7 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
-#import "RANetwork.h"
+//#import "RANetwork.h"
 //#import "DetailCellKV.h"
 #import "DetailCellList.h"
 #import "DetailCellWeb.h"
@@ -22,6 +22,9 @@
 //@property (strong, nonatomic) IBOutlet UILabel *norecordLabel;
 @property (strong, nonatomic) IBOutlet UILabel *norecordLabel;
 @property (strong, nonatomic) IBOutlet UIActivityIndicatorView *mum;
+@property (strong,nonatomic) NSArray   * page_menu;
+
+- (void)showDocument:(NSString *)url;
 //@property bool showtabbar;
 //@property (strong, nonatomic) NSOperationQueue *webviewoprationQueue;
 

+ 92 - 61
RA TradeFiling/RA TradeFiling/Detail/DetailPageViewController.m

@@ -21,6 +21,7 @@
 #import <QuickLook/QuickLook.h>
 #import "DetailCellKVNew.h"
 #import "DetailCellContainer.h"
+#import "DetailCellContainerCA.h"
 #import "MyQLPreviewController.h"
 #import "LPShareActivity.h"
 #import "RADataProvider.h"
@@ -347,6 +348,7 @@
             self.mum.hidden = true;
             if(self.content.result_code!=RESULT_TRUE)
             {
+                
                 self.table.hidden =false;
                 [self.table reloadData];
                 UIAlertController *alertVC = [UIAlertController alertControllerWithTitle: @"Warning"
@@ -388,6 +390,8 @@
             }
             else
             {
+                
+                self.page_menu = result[@"page_menu"];
                 self.table.hidden =false;
                 [self.table reloadData];
                 
@@ -412,12 +416,12 @@
                 NSMutableDictionary* segment = [self.content.segments[i] mutableCopy];
                 NSString* type =[segment valueForKey:@"_type"];
                 
-                if([type isEqualToString:@"tracking"]) {
-                    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:i];
-                    [self.table selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
-                    [self tableView:self.table didSelectRowAtIndexPath:indexPath];
-                    break;
-                }
+//                if([type isEqualToString:@"tracking"]) {
+//                    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:i];
+//                    [self.table selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
+//                    [self tableView:self.table didSelectRowAtIndexPath:indexPath];
+//                    break;
+//                }
             }
     }];
     
@@ -615,7 +619,7 @@
     [self presentViewController: alertController animated: YES completion: nil];
     
 //    NSString *cacheDir = NSTemporaryDirectory();
-    [RANetwork request_fastdownload:nil url:url completionHandler:^(NSMutableDictionary *result) {
+    [RADataProvider DownloadFile:nil url:url completionHandler:^(NSMutableDictionary *result) {
 //    [RANetwork request_download:nil url:url err_record_url:nil offset:0 method:nil storein:cacheDir progressHandler:nil completionHandler:^(NSMutableDictionary *result) {
         weakSelf.documentPath = nil;
         [alertController dismissViewControllerAnimated:YES completion:^{
@@ -816,21 +820,21 @@
     NSMutableArray *segments = [self.content.segments mutableCopy];
     NSMutableDictionary* segment = [self.content.segments[section] mutableCopy];
     NSString* type =[segment valueForKey:@"_type"];
-    if([type isEqualToString:@"tracking"])
-    {
-        BOOL close = [[segment objectForKey:@"close"] boolValue];
-        
-        if (!close) {
-            close = YES;
-        } else {
-            close = NO;
-        }
-        [segment setValue:@(close) forKey:@"close"];
-        segments[section] = segment;
-        self.content.segments = segments;
-//        [self.table reloadSections:[NSIndexSet indexSetWithIndex:section] withRowAnimation:UITableViewRowAnimationNone];
-        [self.table reloadData];
-    }
+//    if([type isEqualToString:@"tracking"])
+//    {
+//        BOOL close = [[segment objectForKey:@"close"] boolValue];
+//
+//        if (!close) {
+//            close = YES;
+//        } else {
+//            close = NO;
+//        }
+//        [segment setValue:@(close) forKey:@"close"];
+//        segments[section] = segment;
+//        self.content.segments = segments;
+////        [self.table reloadSections:[NSIndexSet indexSetWithIndex:section] withRowAnimation:UITableViewRowAnimationNone];
+//        [self.table reloadData];
+//    }
 }
 
 - (void)copyTap:(UITapGestureRecognizer *)tap {
@@ -870,15 +874,18 @@
         return height;
         
     }
-    else if([type isEqualToString:@"tracking"])
-    {
-        return 64;
-    }
+//    else if([type isEqualToString:@"tracking"])
+//    {
+//        return 64;
+//    }
     else if([type isEqualToString:@"container"])
     {
         return 100;
     }
-
+    else if([type isEqualToString:@"container_ca"])
+    {
+        return 48;
+    }
         
     else if([type isEqualToString:@"mapping"])
     {
@@ -1223,31 +1230,31 @@
     
     [header addSubview:titleLb];
     
-    if([type isEqualToString:@"tracking"])
-    {
-        BOOL close = [[segment objectForKey:@"close"] boolValue];
-        NSString *title = @"Show";
-        if (!close) {
-            title = @"Hide";
-        } else {
-            title = @"Show";
-        }
-        
-        UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
-        btn.frame = CGRectMake(w - 70, 0, 60, 30);
-        btn.tag = 1020 + section;
-        [btn setTitle:title forState:UIControlStateNormal];
-        [btn setTitleColor:APGRAYCOLOR forState:UIControlStateNormal];
-        [btn addTarget:self action:@selector(sectionSwitchClick:) forControlEvents:UIControlEventTouchUpInside];
-        
-        [header addSubview:btn];
-        
-        // Tap Copy
-        UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(copyTap:)];
-        tapGesture.numberOfTapsRequired = 2;
-        [titleLb addGestureRecognizer:tapGesture];
-        titleLb.userInteractionEnabled = YES;
-    }
+//    if([type isEqualToString:@"tracking"])
+//    {
+//        BOOL close = [[segment objectForKey:@"close"] boolValue];
+//        NSString *title = @"Show";
+//        if (!close) {
+//            title = @"Hide";
+//        } else {
+//            title = @"Show";
+//        }
+//        
+//        UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
+//        btn.frame = CGRectMake(w - 70, 0, 60, 30);
+//        btn.tag = 1020 + section;
+//        [btn setTitle:title forState:UIControlStateNormal];
+//        [btn setTitleColor:APGRAYCOLOR forState:UIControlStateNormal];
+//        [btn addTarget:self action:@selector(sectionSwitchClick:) forControlEvents:UIControlEventTouchUpInside];
+//        
+//        [header addSubview:btn];
+//        
+//        // Tap Copy
+//        UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(copyTap:)];
+//        tapGesture.numberOfTapsRequired = 2;
+//        [titleLb addGestureRecognizer:tapGesture];
+//        titleLb.userInteractionEnabled = YES;
+//    }
     
     return header;
 }
@@ -1375,6 +1382,29 @@
         cell.labelSize.text = item[@"size"];
         cell.labelContainerNo.text = item[@"container#"];
         cell.labelService.text=item[@"service"];
+        cell.labelSealNo.text=item[@"seal_no"];
+        
+        //cell.tapDelegate = self;
+        
+//                UIView * lineview = [[LineView alloc] initWithFrame:cell.contentView.frame];
+//                lineview.userInteractionEnabled = NO;// 不设为NO会屏蔽cell的点击事件
+//                lineview.backgroundColor = [UIColor clearColor];// 设为透明从而使得cell.backgroundColor有效.
+//                lineview.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+//                [cell.contentView addSubview:lineview];// cell.contentView是个readonly属性,所以别想着替换contentView了.
+        return cell;
+
+    }
+    else if([type isEqualToString:@"container_ca"])
+    {
+        
+        
+        NSString *CellIdentifier = @"detail_item_container_ca";
+        DetailCellContainerCA *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
+        NSDictionary* item = [self.content get_item_seg:indexPath.section row:indexPath.row];
+
+        cell.labelContainerNo.text = item[@"container#"];
+
+        cell.labelSealNo.text=item[@"seal_no"];
         
         //cell.tapDelegate = self;
         
@@ -1402,10 +1432,10 @@
         cell.keyLabel.text = key;
         cell.valLabel.htmlText = val;
         
-        if([key isEqualToString:@"Place_Of_Delivery"])
-        {
-//            int abc=0;
-        }
+//        if([key isEqualToString:@"Place_Of_Delivery"])
+//        {
+////            int abc=0;
+//        }
         
         NSLog(@"key %@ val %@",key,val);
         
@@ -1716,15 +1746,16 @@
     
     NSDictionary* item = [self.content get_item_seg:indexPath.section row:indexPath.row];
 
-    if([type isEqualToString: @"container"])
+    if(([type isEqualToString: @"container"]||[type isEqualToString: @"container_ca"])&& [item[@"commodity"] boolValue])
     {
         
-        int cid=[item[@"id"] intValue];
+        NSString* cid=[item[@"id"] stringValue];
         
         NSMutableDictionary* param =[NSMutableDictionary new];
-        param[@"action"]=@"handset_search";
+        param[@"action"]=@"detail";
+        param[@"sub_type"]=@"container";
         param[@"action_type"]=@"Container Detail";
-        param[@"id"]= [NSNumber numberWithInt:cid];;
+        param[@"id"]= cid;
         
         
         UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Detail" bundle:[NSBundle mainBundle]];
@@ -1927,7 +1958,7 @@
         
     }];
     
-    [menuAlert addAction:saveAction];
+//    [menuAlert addAction:saveAction];
     [menuAlert addAction:shareAction];
     [menuAlert addAction:cancelAction];
     

+ 192 - 25
RA TradeFiling/RA TradeFiling/Detail/DetailTabBarController.m

@@ -85,27 +85,28 @@
         {
             
             
-            NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
+            NSMutableDictionary *params = [[NSMutableDictionary alloc] initWithDictionary:self.params copyItems:true];;
             
             
-            [params setValue:@"handset_search" forKey:@"action"];
+            [params setValue:@"detail" forKey:@"action"];
             [params setValue:self.actions[i] forKey:@"action_type"];
-            [params setValue:self.function_name forKey:@"module_name"];
-            [params setValue:[self.params valueForKey:@"id"] forKey:@"id"];
-            [params setValue:[self.params valueForKey:@"_schema"] forKey:@"_schema"];
-//            [params setValue:[self.params valueForKey:@"sessionid"] forKey:@"sessionid"];
+            [params setValue:self.function_name forKey:@"sub_type"];
+//            [params setValue:[self.params valueForKey:@"id"] forKey:@"id"];
+//            [params setValue:[self.params valueForKey:@"_schema"] forKey:@"_schema"];
             
-            if([self.function_name isEqualToString:@"Cargo Tracking"])
-            {
-
-                if([[self.params valueForKey:@"criterion_type"] isEqualToString:@"0"])
-                   [params setValue:[self.params valueForKey:@"cargo_criterion"] forKey:@"hbol"];
-                else
-                   [params setValue:[self.params valueForKey:@"cargo_criterion"] forKey:@"container_no"];
-               
-             
-            }
+//            [params setValue:[self.params valueForKey:@"sessionid"] forKey:@"sessionid"];
             
+//            if([self.function_name isEqualToString:@"Cargo Tracking"])
+//            {
+//
+//                if([[self.params valueForKey:@"criterion_type"] isEqualToString:@"0"])
+//                   [params setValue:[self.params valueForKey:@"cargo_criterion"] forKey:@"hbol"];
+//                else
+//                   [params setValue:[self.params valueForKey:@"cargo_criterion"] forKey:@"container_no"];
+//               
+//             
+//            }
+//            
 //            testViewController * one = [[testViewController alloc] init];
             
             UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Detail" bundle:[NSBundle mainBundle]];
@@ -310,11 +311,11 @@
 
 - (void)configureNavigationBar {
     
-    UIButton *saveBtn = [UIButton buttonWithType:UIButtonTypeCustom];
-    saveBtn.frame = CGRectMake(0, 0, 30, 30);
-    [saveBtn setImage:[UIImage imageNamed:@"ic_save"] forState:UIControlStateNormal];
-    //    [saveBtn setImageEdgeInsets:UIEdgeInsetsMake(0, 0, 0, -15)]; // 右移
-    [saveBtn addTarget:self action:@selector(saveDetail:) forControlEvents:UIControlEventTouchUpInside];
+//    UIButton *saveBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+//    saveBtn.frame = CGRectMake(0, 0, 30, 30);
+//    [saveBtn setImage:[UIImage imageNamed:@"ic_save"] forState:UIControlStateNormal];
+//    //    [saveBtn setImageEdgeInsets:UIEdgeInsetsMake(0, 0, 0, -15)]; // 右移
+//    [saveBtn addTarget:self action:@selector(saveDetail:) forControlEvents:UIControlEventTouchUpInside];
 //    UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithCustomView:saveBtn];
     
 //    UIBarButtonItem *fixBtn = [[UIBarButtonItem alloc] initWithTitle:nil style:UIBarButtonItemStylePlain target:nil action:nil];
@@ -460,6 +461,8 @@
 
 - (void)menuClick:(id)sender {
     
+    
+    
     UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
     
     __weak typeof(self) weakSelf = self;
@@ -482,17 +485,181 @@
     [alertVC addAction:saveAction];
     [alertVC addAction:shareAction];
     
-    DetailPageViewController *pageVC = (DetailPageViewController *)self.selectedViewController;
     
-    if([pageVC.function_name isEqualToString:@"Cargo Tracking"]) {
-        [alertVC addAction:searchAction];
-    } else {
+    DetailPageViewController *pageVC = (DetailPageViewController *)self.selectedViewController;
+    for(int i=0;i<pageVC.page_menu.count;i++)
+    {
+        NSDictionary* item = pageVC.page_menu[i];
+        
+        if([item[@"type"] isEqualToString:@"quickview"])
+        {
+            
+            UIAlertAction *injectAction = [UIAlertAction actionWithTitle:NSLocalizedString(item[@"title"], nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
+                [pageVC showDocument:item[@"url"]];
+            }];
+            [alertVC addAction:injectAction];
+        }
         
     }
+    
+    
+//    if([pageVC.function_name isEqualToString:@"Cargo Tracking"]) {
+//        [alertVC addAction:searchAction];
+//    } else {
+//
+//    }
     [alertVC addAction:cancelAction];
     
     [self presentViewController:alertVC animated:YES completion:nil];
     
 }
 
+//
+//- (void)showDocument:(NSString *)url {
+//
+//    __weak typeof(self) weakSelf = self;
+//
+//    // show alert
+//    UIAlertController *alertController = [UIAlertController alertControllerWithTitle: nil
+//                                                                             message: @"loading..."
+//                                                                      preferredStyle: UIAlertControllerStyleAlert];
+//
+//
+//
+//    UIViewController *customVC     = [[UIViewController alloc] init];
+//
+//
+//    UIActivityIndicatorView* spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
+//    spinner.color = [UIColor darkGrayColor];
+//    [spinner startAnimating];
+//    [customVC.view addSubview:spinner];
+//
+//    [customVC.view addConstraint:[NSLayoutConstraint
+//                                  constraintWithItem: spinner
+//                                  attribute:NSLayoutAttributeCenterX
+//                                  relatedBy:NSLayoutRelationEqual
+//                                  toItem:customVC.view
+//                                  attribute:NSLayoutAttributeCenterX
+//                                  multiplier:1.0f
+//                                  constant:0.0f]];
+//
+//
+//
+//    [customVC.view addConstraint:[NSLayoutConstraint
+//                                  constraintWithItem: spinner
+//                                  attribute:NSLayoutAttributeCenterY
+//                                  relatedBy:NSLayoutRelationEqual
+//                                  toItem:customVC.view
+//                                  attribute:NSLayoutAttributeCenterY
+//                                  multiplier:1.0f
+//                                  constant:0.0f]];
+//
+//
+//    [alertController setValue:customVC forKey:@"contentViewController"];
+//
+//    [self presentViewController: alertController animated: YES completion: nil];
+//
+////    NSString *cacheDir = NSTemporaryDirectory();
+//    [RADataProvider DownloadFile:nil url:url completionHandler:^(NSMutableDictionary *result) {
+////    [RANetwork request_download:nil url:url err_record_url:nil offset:0 method:nil storein:cacheDir progressHandler:nil completionHandler:^(NSMutableDictionary *result) {
+//        weakSelf.documentPath = nil;
+//        [alertController dismissViewControllerAnimated:YES completion:^{
+//
+//
+//            if ([[result objectForKey:@"result"] intValue] == RESULT_TRUE) {
+//
+//                NSString *cachePath = [result objectForKey:@"path"];
+//                weakSelf.documentPath = cachePath;
+//
+//                if (cachePath) { // push 必须在completion中
+//                    [weakSelf.navigationController pushViewController:weakSelf.quickLook animated:YES];
+//                }
+//
+//            } else {
+//
+//                NSString *msg = [result objectForKey:@"msg"];
+//
+//                UIAlertController *alertVC = [UIAlertController alertControllerWithTitle: @"Warning"
+//                                                                                 message: msg
+//                                                                          preferredStyle: UIAlertControllerStyleAlert];
+//                UIAlertAction *action = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
+//
+//                }];
+//                [alertVC addAction:action];
+//                [weakSelf presentViewController:alertVC animated:YES completion:nil];
+//            }
+//
+//        }];
+//    }];
+//
+////    [RANetwork request_download:nil  url:url completionHandler:^(NSMutableDictionary *result) {
+////
+////
+////    }];
+//
+////
+////    // download
+////    dispatch_async(dispatch_get_global_queue(0, 0), ^{
+////
+////        //        NSArray *paths = NSSearchPathForDirectoriesInDomains(nstem, NSUserDomainMask, YES);
+////        //        NSString *documents = [paths objectAtIndex:0];
+////        //        NSString *cacheDir = [documents stringByAppendingPathComponent:[module_name stringByAppendingString:@"_download"]];
+////
+////        NSString *cacheDir = NSTemporaryDirectory();
+////
+////        if (![[NSFileManager defaultManager] fileExistsAtPath:cacheDir]) {
+////            [[NSFileManager defaultManager] createDirectoryAtPath:cacheDir withIntermediateDirectories:NO attributes:nil error:nil];
+////        }
+////
+////        //        NSString *path = [cacheDir stringByAppendingPathComponent:[NSUUID UUID].UUIDString];
+////
+////
+////
+////        [RANetwork download_file:nil url:url toCachePath:cacheDir progressHandler:^(NSURLSessionTask *task, double progress) {
+////
+////            DebugLog(@"download progress %f",progress);
+////        } completionHandler:^(NSMutableDictionary *result) {
+////
+////            dispatch_async(dispatch_get_main_queue(), ^{
+////
+////                weakSelf.documentPath = nil;
+////                [alertController dismissViewControllerAnimated:YES completion:^{
+////
+////
+////                    if ([[result objectForKey:@"result"] intValue] == RESULT_TRUE) {
+////
+////                        NSString *cachePath = [result objectForKey:@"path"];
+////                        weakSelf.documentPath = cachePath;
+////
+////                        if (cachePath) { // push 必须在completion中
+////                            [weakSelf.navigationController pushViewController:weakSelf.quickLook animated:YES];
+////                        }
+////
+////                    } else {
+////
+////                        NSString *msg = [result objectForKey:@"msg"];
+////
+////                        UIAlertController *alertVC = [UIAlertController alertControllerWithTitle: @"Warning"
+////                                                                                         message: msg
+////                                                                                  preferredStyle: UIAlertControllerStyleAlert];
+////                        UIAlertAction *action = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
+////
+////                        }];
+////                        [alertVC addAction:action];
+////                        [weakSelf presentViewController:alertVC animated:YES completion:nil];
+////                    }
+////
+////                }];
+////
+////
+////            });
+////
+////            DebugLog(@"download result %@",result);
+////
+////        }];
+////
+////
+////    });
+//
+//}
 @end

+ 119 - 0
RA TradeFiling/RA TradeFiling/FAKE_DATA/detail_acem1.json

@@ -0,0 +1,119 @@
+{
+  "result": 2,
+  "group0": {
+    "item0": {
+      "Vessel": "KAIMANA HILA"
+    },
+    "item1": {
+      "Carrier": "MATS"
+    },
+    "item2": {
+      "Voyage": "023E"
+    },
+    "item3": {
+      "Flag": "US"
+    },
+    "item4": {
+      "H_BOL": "MSPCSHF21201"
+    },
+    "item5": {
+      "M_BOL": "MATS9148910000"
+    },
+    "item6": {
+      "E.T.A": "03/14/2021"
+    },
+    "item7": {
+      "Station": "KLNL_CNECNSHAA"
+    },
+    "item8": {
+      "Place_Of_Receipt": "SHANGHAI, 31(UNCODE : CNSHA)"
+    },
+    "item9": {
+      "Port_Of_Loading": "SHANGHAI, 31(SCHK : 57035)"
+    },
+    "item10": {
+      "Port_Of_Discharge": "LONG BEACH, CA(SCHD : 2709)"
+    },
+    "item11": {
+      "Last_Port": "SHANGHAI, 31(SCHK : 57035)"
+    },
+    "item12": {
+      "Shipper": "IMEX INTERNATIONAL CO.,LTD.<br />\r\n134-135 RIM-KHLONGPRAPA  RD.,\t\t<br />\r\nSHANGHAI  10800 CHINA\t\t<br />\r\nTEL: +86(0) 2910-4827-9"
+    },
+    "item13": {
+      "Consignee": "M S INTERNATIONAL INC<br />\r\n2095 N. BATAVIA STREET ORANGE,\t\t<br />\r\nCA USA 92865\t\t<br />\r\nTEL: 714-685-7500 TAX : (714) 685-7600\t\t<br />\r\nCONTACT PERSON: MR. MARTIN"
+    },
+    "item14": {
+      "Notify_Party": "M S INTERNATIONAL INC<br />\r\n2095 N. BATAVIA STREET ORANGE,\t\t<br />\r\nCA USA 92865\t\t<br />\r\nTEL: 714-685-7500 TAX : (714) 685-7600\t\t<br />\r\nCONTACT PERSON: MR. MARTIN"
+    },
+    "item15": {
+      "Port_Of_Loading": "SHANGHAI, 31(SCHK : 57035)"
+    },
+    "item16": {
+      "E.T.D": ""
+    },
+    "count": 17,
+    "_name": "General Information",
+    "_type": "mapping"
+  },
+  "group1": {
+    "item0": {
+      "container#": "SEGU4098872",
+      "size": "40HD",
+      "seal_no": "Seal#: MATU936152",
+      "qty": "QTY: 10/PKG-PACKAGE",
+      "service": "Service: CY",
+      "weight": "Weight: 4130 KG",
+      "commodity": false
+    },
+    "item1": {
+      "container#": "MATU2699470",
+      "size": "40HD",
+      "seal_no": "Seal#: MATU936101",
+      "qty": "QTY: 10/PKG-PACKAGE",
+      "service": "Service: CY",
+      "weight": "Weight: 4130 KG",
+      "commodity": false
+    },
+    "item2": {
+      "container#": "MATU2618502",
+      "size": "40HD",
+      "seal_no": "Seal#: MATU908056",
+      "qty": "QTY: 10/PKG-PACKAGE",
+      "service": "Service: CY",
+      "weight": "Weight: 4130 KG",
+      "commodity": false
+    },
+    "item3": {
+      "container#": "FCIU9409406",
+      "size": "40HD",
+      "seal_no": "Seal#: MATU936245",
+      "qty": "QTY: 10/PKG-PACKAGE",
+      "service": "Service: CY",
+      "weight": "Weight: 4130 KG",
+      "commodity": false
+    },
+    "item4": {
+      "container#": "MATU2690786",
+      "size": "40HD",
+      "seal_no": "Seal#: MATU936142",
+      "qty": "QTY: 10/PKG-PACKAGE",
+      "service": "Service: CY",
+      "weight": "Weight: 4130 KG",
+      "commodity": false
+    },
+    "item5": {
+      "container#": "MATU2593960",
+      "size": "40HD",
+      "seal_no": "Seal#: MATU936196",
+      "qty": "QTY: 10/PKG-PACKAGE",
+      "service": "Service: CY",
+      "weight": "Weight: 4130 KG",
+      "commodity": false
+    },
+    "_type": "container",
+    "_name": "Container",
+    "count": 6
+  },
+  "count": 2
+}

+ 70 - 0
RA TradeFiling/RA TradeFiling/FAKE_DATA/detail_aci.json

@@ -0,0 +1,70 @@
+{
+  "result": 2,
+  "group0": {
+    "item0": {
+      "Type": "ACI"
+    },
+    "item1": {
+      "House Bill CCN": "8112 : SHSZXQ018364"
+    },
+    "item2": {
+      "Primary CCN": "9502 : COSU6288461210"
+    },
+    "item3": {
+      "Application Type": "In-Transit Goods"
+    },
+    "item4": {
+      "Transaction Code": "Original"
+    },
+    "item5": {
+      "Vessel": "OOCL MEMPHIS"
+    },
+    "item6": {
+      "Voyage": "063N"
+    },
+    "item7": {
+      "Cargo_Weight": "0"
+    },
+    "item8": {
+      "Cargo_Volumn": "0"
+    },
+    "item9": {
+      "Location Qualifier": "City"
+    },
+    "item10": {
+      "Location Identifier": "PRINCE RUPERT,BC"
+    },
+    "item11": {
+      "Country Code": "CA"
+    },
+    "count": 12,
+    "_name": "General Information",
+    "_type": "mapping"
+  },
+  "group1": {
+    "item0": {
+      "Shipper": "CHAOSHUN CERAMICS MANUFACTORY"
+    },
+    "item1": {
+      "Consignee": "LERMAN DECOR INC"
+    },
+    "item2": {
+      "Notify Party": "AXXESS INTERNATIONAL USA"
+    },
+    "count": 3,
+    "_name": "Party Information",
+    "_type": "mapping"
+  },
+  "group2": {
+    "item0": {
+      "container#": "TCLU4887078",
+      "seal_no": "Seal#: 17465136",
+      "commodity": true,
+      "id":"123456"
+    },
+    "_type": "container_ca",
+    "_name": "Container Information",
+    "count": 1
+  },
+  "count": 3
+}

+ 85 - 0
RA TradeFiling/RA TradeFiling/FAKE_DATA/detail_emanifest.json

@@ -0,0 +1,85 @@
+{
+  "result": 2,
+  "group0": {
+    "item0": {
+      "Type": "eManifest"
+    },
+    "item1": {
+      "House Bill CCN": "8112 : SHTAOA100282"
+    },
+    "item2": {
+      "Primary CCN": "9082 : 2659322250"
+    },
+    "item3": {
+      "Previous CCN": "8752 : QINN84938800"
+    },
+    "item4": {
+      "Manifest Type": "Import"
+    },
+    "item5": {
+      "Consolidation Indicator": "No"
+    },
+    "item6": {
+      "Transaction Code": "Change"
+    },
+    "item7": {
+      "Vessel": "EVER SMART"
+    },
+    "item8": {
+      "Voyage": "0303E"
+    },
+    "item9": {
+      "Cargo_Weight": "7902 : Kilogram"
+    },
+    "item10": {
+      "Port Of Destination": "0497 : TORONTO INTERNATIONAL AIRPORT (PEARSON)"
+    },
+    "item11": {
+      "Sub-Location Of Destination": "4620 : HUNA LOGISTICS INC."
+    },
+    "item12": {
+      "Port Of Discharge": "0497 : TORONTO INTERNATIONAL AIRPORT (PEARSON)"
+    },
+    "item13": {
+      "Sub-Location Of Discharge": "4620 : HUNA LOGISTICS INC."
+    },
+    "count": 14,
+    "_name": "General Information",
+    "_type": "mapping"
+  },
+  "group1": {
+    "item0": {
+      "Shipper": "LAIZHOU HONGJI AUTOMOBILE FITTING C"
+    },
+    "item1": {
+      "Consignee": "CBK INTERNATION INC"
+    },
+    "item2": {
+      "Place Of Consolidation": "OOCL LOGISTICS CHINA LTD QINGDAO BRANCH"
+    },
+    "item3": {
+      "Consolidator": "QINGDAO MEDLOG LOGISTICS CO LTD"
+    },
+    "item4": {
+      "Notify Party": "OOCLCBK INTERNATION INC"
+    },
+    "item5": {
+      "Delivery": ""
+    },
+    "count": 6,
+    "_name": "Party Information",
+    "_type": "mapping"
+  },
+  "group2": {
+    "item0": {
+      "container#": "TGHU9724072",
+      "seal_no": "Seal#: OOLGGP8557",
+      "commodity": true,
+      "id":"123456"
+    },
+    "_type": "container_ca",
+    "_name": "Container Information",
+    "count": 1
+  },
+  "count": 3
+}

+ 135 - 0
RA TradeFiling/RA TradeFiling/FAKE_DATA/detail_isf.json

@@ -0,0 +1,135 @@
+{
+  "result": 2,
+  "group0": {
+    "item0": {
+      "ISF_Transaction#": "KLNL67486075608"
+    },
+    "item1": {
+      "BOL": "KLNLSHNGBA015487"
+    },
+    "item2": {
+      "BOL Code": "House Bill of Lading"
+    },
+    "item3": {
+      "ISF Type": "5+2"
+    },
+    "item4": {
+      "Use ISF Bond": "No"
+    },
+    "item5": {
+      "Action Type Code": "CT - Complete Transaction"
+    },
+    "item6": {
+      "ISF Bond Activity": "03 - International Carrier"
+    },
+    "item7": {
+      "Shipment Type Code": "01 - Standard or regular filings"
+    },
+    "item8": {
+      "ISF Bond Type": "8 - Continuous"
+    },
+    "item9": {
+      "ISF Importer Code": "ANI - YYDDPP-NNNNN;USCBP Assgined Number"
+    },
+    "item10": {
+      "ISF Importer No.": "033901-00088"
+    },
+    "item11": {
+      "DOB": ""
+    },
+    "item12": {
+      "Passport Country": ""
+    },
+    "item13": {
+      "Vessel Operator SCAC": ""
+    },
+    "item14": {
+      "ISF-BondHolder": "033901-00088"
+    },
+    "item15": {
+      "Last_Action": "ADD"
+    },
+    "count": 16,
+    "_name": "General Information",
+    "_type": "mapping"
+  },
+  "group1": {
+    "item0": {
+      "MF-Manufacturer/Supplier": "NINGBO JOYANCY INTERNATIONAL TRADE"
+    },
+    "item1": {
+      "ST-Ship To Party": "8704147 CANADA INC"
+    },
+    "item2": {
+      "BKP-Booking Party": "NINGBO JOYANCY INTERNATIONAL TRADE"
+    },
+    "count": 3,
+    "_name": "Parties Details",
+    "_type": "mapping"
+  },
+  "group2": {
+    "item0": {
+      "621430": "NINGBO JOYANCY INTERNATIONAL TRADE(CN)"
+    },
+    "item1": {
+      "900410": "NINGBO JOYANCY INTERNATIONAL TRADE(CN)"
+    },
+    "item2": {
+      "650400": "NINGBO JOYANCY INTERNATIONAL TRADE(CN)"
+    },
+    "item3": {
+      "420292": "NINGBO JOYANCY INTERNATIONAL TRADE(CN)"
+    },
+    "item4": {
+      "871680": "NINGBO JOYANCY INTERNATIONAL TRADE(CN)"
+    },
+    "item5": {
+      "420212": "NINGBO JOYANCY INTERNATIONAL TRADE(CN)"
+    },
+    "item6": {
+      "650400": "NINGBO JOYANCY INTERNATIONAL TRADE(CN)"
+    },
+    "item7": {
+      "621430": "NINGBO JOYANCY INTERNATIONAL TRADE(CN)"
+    },
+    "item8": {
+      "650500": "NINGBO JOYANCY INTERNATIONAL TRADE(CN)"
+    },
+    "item9": {
+      "611710": "NINGBO JOYANCY INTERNATIONAL TRADE(CN)"
+    },
+    "count": 10,
+    "_name": "HTS Code",
+    "_type": "mapping"
+  },
+  "group3": {
+    "item0": {
+      "CR": ""
+    },
+    "item1": {
+      "V1": ""
+    },
+    "item2": {
+      "SBN": ""
+    },
+    "item3": {
+      "MB": ""
+    },
+    "item4": {
+      "6C": ""
+    },
+    "item5": {
+      "6B": ""
+    },
+    "item6": {
+      "FC": "KLNL"
+    },
+    "item7": {
+      "FN": ""
+    },
+    "_type": "mapping",
+    "_name": "Addtional Reference",
+    "count": 8
+  },
+  "count": 4
+}

BIN=BIN
RA TradeFiling/RA TradeFiling/FAKE_DATA/fake_export.pdf


+ 264 - 104
RA TradeFiling/RA TradeFiling/FAKE_DATA/home.json

@@ -1,260 +1,420 @@
 {
   "result": 2,
+  "total": {
+    "acem1": 0,
+    "isf": 99999,
+    "aci": 99999,
+    "emanifest": 99999
+  },
   "sections": [
     {
       "more": {
         "param": {
-          "keyword": "",
-          "subtype": "acem1"
+          "keyword": ""
         },
-        "module": "acem1"
+        "sub_type": "acem1"
       },
+      "type": 3,
       "title": "Unsubmitted - ACE-M1",
       "totalCount": "5",
       "row_actions": [
         {
           "title": "Detail",
-          "module": "detail",
-          "url": "https://ra.apexshipping.com/main_new.php?action=handset_search",
+          "sub_type": "acem1",
           "params": {
             "id": 0
           }
         }
       ],
-      "detail_tabs": [
+      "actions": [
         "Detail",
         "ACE M1 Log",
-        "ISF Log",
-        "eManifest/ACI Log"
+        "ISF Log"
       ],
       "orders": [
-          {
-            "port": "TWTXG-USOAK",
-            "log": "1Y,3Z,S1,69,CBP ACCEPT,SENT",
-            "icon": "status_pending",
-            "consignee": "BC COORDINATE INTERNATIONAL INC.",
-            "hbol": "PDLA200127H",
-            "date": "08/14/2108-02/11/2020",
-            "rowActionParameters": [
-              "_49208a00d6908828437963179575e3aa"
-            ],
-            "type": 3,
-            "mbol": "MBOL: SMLMTAYH9L071600 "
-          }
+        {
+          "sn": "1",
+          "hbol": "HBOL: PDLA200127H",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "mbol": "MBOL: SMLMTAYH9L071600 "
+        },
+        {
+          "sn": "99",
+          "hbol": "HBOL: PDLA200127H",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "mbol": "MBOL: SMLMTAYH9L071600 "
+        },
+        {
+          "sn": "999",
+          "hbol": "HBOL: PDLA200127H",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "mbol": "MBOL: SMLMTAYH9L071600 "
+        }
       ]
     },
     {
       "more": {
         "param": {
-          "keyword": "",
-          "subtype": "isf"
+          "keyword": ""
         },
-        "module": "isf"
+        "sub_type": "isf"
       },
       "title": "Unsubmitted - ISF",
+      "type": 4,
       "totalCount": "5",
       "row_actions": [
         {
           "title": "Detail",
-          "module": "detail",
-          "url": "https://ra.apexshipping.com/main_new.php?action=handset_search",
+          "sub_type": "isf",
           "params": {
             "id": 0
           }
         }
       ],
-      "detail_tabs": [
+      "actions": [
+        "Detail",
         "ACE M1 Log",
-        "ISF Log",
-        "eManifest/ACI Log"
+        "ISF Log"
       ],
       "orders": [
         {
-          "bol": "TLKPTAOATL0D199X",
-          "log": "S1,CBP REPLY,SENT",
-          "icon": "status_pending",
-          "consignee": "SUNRISE IMPORT&EXPORT LTD",
-          "transactionno": "CLLB98451749890",
+          "bol": "BOL: TLKPTAOATL0D199X",
+          "sn": "1",
           "rowActionParameters": [
             "_49208a00d6908828437963179575e3aa"
           ],
-          "type": 4,
-          "isftype": "10+2"
+          "isftype": "ISF TYPE: 10+2"
+        },
+        {
+          "bol": "BOL: TLKPTAOATL0D199X",
+          "sn": "99",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "isftype": "ISF TYPE: 10+2"
+        },
+        {
+          "bol": "BOL: TLKPTAOATL0D199X",
+          "sn": "999",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "isftype": "ISF TYPE: 10+2"
         }
       ]
     },
     {
       "more": {
         "param": {
-          "keyword": "",
-          "subtype": "aci"
+          "keyword": ""
         },
-        "module": "aci"
+        "sub_type": "aci"
       },
       "title": "Unsubmitted - ACI",
       "totalCount": "1",
       "row_actions": [
         {
           "title": "Detail",
-          "module": "detail",
-          "url": "https://ra.apexshipping.com/main_new.php?action=handset_search",
+          "sub_type": "aci",
           "params": {
             "id": 0
           }
         }
       ],
-      "detail_tabs": [
-        "ACE M1 Log",
-        "ISF Log",
-        "eManifest/ACI Log"
+      "actions": [
+        "Detail",
+        "ACI Log"
       ],
       "orders": [
         {
-          "lastaction": "Original",
-          "log": "ACCEPTED,06",
-          "icon": "status_pending",
-          
-          "mbol": "Primary CCN: 9558THD0608081",
-          "hbol": "8FFLA2012311120",
-          "date": "12/16/2020-01/04/2021",
+          "primary_ccn": "Primary CCN: 9558THD0608081",
+          "hbccn": "House CCN: 8FFLA2012311120",
+          "sn": "1",
           "rowActionParameters": [
             "_49208a00d6908828437963179575e3aa"
-          ],
-          "type": 1,
-          "desc": "PO#: "
+          ]
+        },
+        {
+          "primary_ccn": "Primary CCN: 9558THD0608081",
+          "hbccn": "House CCN: 8FFLA2012311120",
+          "sn": "99",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ]
+        },
+        {
+          "primary_ccn": "Primary CCN: 9558THD0608081",
+          "hbccn": "House CCN: 8FFLA2012311120",
+          "sn": "999",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ]
         }
-      ]
+      ],
+      "type": 1
     },
     {
       "more": {
         "param": {
-          "keyword": "",
-          "subtype": "emanifest"
+          "keyword": ""
         },
-        "module": "emanifest"
+        "sub_type": "emanifest"
       },
       "title": "Unsubmitted - eManifest",
       "totalCount": "1",
       "row_actions": [
         {
           "title": "Detail",
-          "module": "detail",
-          "url": "https://ra.apexshipping.com/main_new.php?action=handset_search",
+          "sub_type": "emanifest",
           "params": {
             "id": 0
           }
         }
       ],
-      "detail_tabs": [
-        "ACE M1 Log",
-        "ISF Log",
-        "eManifest/ACI Log"
+      "actions": [
+        "Detail",
+        "eManifest Log",
+        "HBL Close Log"
       ],
       "orders": [
         {
-          "lastaction": "Original",
-          "log": "ACCEPTED,06",
-          "cbol": "C9558THD0608081",
-          "icon": "status_pending",
-          "mbol": "MBOL: 9558THD0608081",
-          "hbol": "8FFLA2012311120",
-          "date": "12/16/2020-01/04/2021",
+          "sn": "1",
+          "primary_ccn": "Primary CCN: 9558THD0608081",
+          "hbccn": "House CCN: 8FFLA2012311120",
+          "previous_ccn": "Previous CCN: 9558THD0608081",
           "rowActionParameters": [
             "_49208a00d6908828437963179575e3aa"
-          ],
-          "type": 2,
-          "desc": "PO#: "
+          ]
+        },
+        {
+          "sn": "99",
+          "primary_ccn": "Primary CCN: 9558THD0608081",
+          "hbccn": "House CCN: 8FFLA2012311120",
+          "previous_ccn": "Previous CCN: 9558THD0608081",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ]
+        },
+        {
+          "sn": "999",
+          "primary_ccn": "Primary CCN: 9558THD0608081",
+          "hbccn": "House CCN: 8FFLA2012311120",
+          "previous_ccn": "Previous CCN: 9558THD0608081",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ]
         }
-      ]
+      ],
+      "type": 2
     },
     {
+      "more": {
+        "param": {
+          "keyword": ""
+        },
+        "sub_type": "acem1"
+      },
       "title": "Error - ACE-M1",
       "totalCount": "0",
       "row_actions": [
         {
           "title": "Detail",
-          "module": "detail",
-          "url": "https://ra.apexshipping.com/main_new.php?action=handset_search",
+          "sub_type": "acem1",
           "params": {
             "id": 0
           }
         }
       ],
-      "detail_tabs": [
+      "actions": [
+        "Detail",
         "ACE M1 Log",
-        "ISF Log",
-        "eManifest/ACI Log"
+        "ISF Log"
       ],
+      "type": 7,
       "orders": [
-        {}
+        {
+          "hbol": "HBOL: CTLQD1912860",
+          "sn": "1",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "log": "LOG: CBP REJECT,ERROR,DEL"
+        },
+        {
+          "hbol": "HBOL: CTLQD1912860",
+          "sn": "99",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "log": "LOG: CBP REJECT,ERROR,DEL"
+        },
+        {
+          "hbol": "HBOL: CTLQD1912860",
+          "sn": "999",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "log": "LOG: CBP REJECT,ERROR,DEL"
+        }
       ]
     },
     {
+      "more": {
+        "param": {
+          "keyword": ""
+        },
+        "sub_type": "isf"
+      },
       "title": "Error - ISF",
       "totalCount": "0",
       "row_actions": [
         {
           "title": "Detail",
-          "module": "detail",
-          "url": "https://ra.apexshipping.com/main_new.php?action=handset_search",
+          "sub_type": "isf",
           "params": {
             "id": 0
           }
         }
       ],
-      "detail_tabs": [
+      "actions": [
+        "Detail",
         "ACE M1 Log",
-        "ISF Log",
-        "eManifest/ACI Log"
+        "ISF Log"
       ],
+      "type": 8,
       "orders": [
-        {}
+        {
+          "bol": "BOL: TLKPTAOATL0D199X",
+          "sn": "1",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "log": "LOG: CANNOT SEND TO CBP,CBP REPLY,SA7,SENT"
+        },
+        {
+          "bol": "BOL: TLKPTAOATL0D199X",
+          "sn": "99",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "log": "LOG: CANNOT SEND TO CBP,CBP REPLY,SA7,SENT"
+        },
+        {
+          "bol": "BOL: TLKPTAOATL0D199X",
+          "sn": "999",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "log": "LOG: CANNOT SEND TO CBP,CBP REPLY,SA7,SENT"
+        }
       ]
     },
     {
+      "more": {
+        "param": {
+          "keyword": ""
+        },
+        "sub_type": "aci"
+      },
       "title": "Error - ACI",
       "totalCount": "0",
       "row_actions": [
         {
           "title": "Detail",
-          "module": "detail",
-          "url": "https://ra.apexshipping.com/main_new.php?action=handset_search",
+          "sub_type": "aci",
           "params": {
             "id": 0
           }
         }
       ],
-      "detail_tabs": [
-        "ACE M1 Log",
-        "ISF Log",
-        "eManifest/ACI Log"
+      "actions": [
+        "Detail",
+        "ACI Log"
       ],
+      "type": 5,
       "orders": [
-        {}
+        {
+          "hbccn": "CCN: 8FFLA2102410143",
+          "sn": "1",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "log": "LOG: ACCEPTED,06,SU,ACCEPTED,06"
+        },
+        {
+          "hbccn": "CCN: 8FFLA2102410143",
+          "sn": "99",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "log": "LOG: ACCEPTED,06,SU,ACCEPTED,06"
+        },
+        {
+          "hbccn": "CCN: 8FFLA2102410143",
+          "sn": "999",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "log": "LOG: ACCEPTED,06,SU,ACCEPTED,06"
+        }
       ]
     },
     {
+      "more": {
+        "param": {
+          "keyword": ""
+        },
+        "sub_type": "emanifest"
+      },
       "title": "Error - eManifest",
       "totalCount": "0",
       "row_actions": [
         {
           "title": "Detail",
-          "module": "detail",
-          "url": "https://ra.apexshipping.com/main_new.php?action=handset_search",
+          "sub_type": "emanifest",
           "params": {
             "id": 0
           }
         }
       ],
-      "detail_tabs": [
-        "ACE M1 Log",
-        "ISF Log",
-        "eManifest/ACI Log"
+      "actions": [
+        "Detail",
+        "eManifest/ACI Log",
+        "HBL Close Log"
       ],
+      "type": 6,
       "orders": [
-        {}
+        {
+          "hbccn": "CCN: 8112S2102180093",
+          "sn": "1",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "log": "LOG: "
+        },
+        {
+          "hbccn": "CCN: 8112A2101545403",
+          "sn": "1",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "log": "LOG: ACCEPTED,06,0003,0002"
+        },
+        {
+          "hbccn": "CCN: 8112A2101545399",
+          "sn": "1",
+          "rowActionParameters": [
+            "_49208a00d6908828437963179575e3aa"
+          ],
+          "log": "LOG: ACCEPTED 06 ACCEPTED 06 0003 0002 0001 0001 0001 0001"
+        }
       ]
     }
-  ],
-  "badge": 3
+  ]
 }

+ 7 - 0
RA TradeFiling/RA TradeFiling/FAKE_DATA/log_acem1.json

@@ -30,6 +30,13 @@
     },
     "_type": "log"
   },
+  "page_menu": [
+  {
+    "type": "quickview",
+    "title": "Export PDF",
+    "url": "https://......."
+  }
+  ],
   "count": 1
   
 }

+ 7 - 0
RA TradeFiling/RA TradeFiling/FAKE_DATA/log_aci.json

@@ -19,6 +19,13 @@
    
     "_type": "log"
   },
+  "page_menu": [
+  {
+    "type": "quickview",
+    "title": "Export PDF",
+    "url": "https://......."
+  }
+  ],
   "count": 1
   
 }

+ 7 - 0
RA TradeFiling/RA TradeFiling/FAKE_DATA/log_emanifest.json

@@ -33,6 +33,13 @@
     },
     "_type": "log"
   },
+  "page_menu": [
+  {
+    "type": "quickview",
+    "title": "Export PDF",
+    "url": "https://......."
+  }
+  ],
   "count": 1
   
 }

+ 7 - 0
RA TradeFiling/RA TradeFiling/FAKE_DATA/log_hblclose.json

@@ -27,6 +27,13 @@
  
     "_type": "log"
   },
+  "page_menu": [
+  {
+    "type": "quickview",
+    "title": "Export Close Message",
+    "url": "https://......."
+  }
+  ],
   "count": 1
   
 }

+ 19 - 1
RA TradeFiling/RA TradeFiling/FAKE_DATA/log_isf.json

@@ -32,7 +32,25 @@
       "bg": false
     },
     "_type": "log"
-  },
+  }
+  ,
+  "page_menu": [
+    {
+      "type": "quickview",
+      "title": "Export PDF",
+      "url": "https://......."
+    },
+    {
+      "type": "quickview",
+      "title": "Export PDF Without Log",
+      "url": "https://......."
+    },
+    {
+      "type": "quickview",
+      "title": "Export PDF With Address",
+      "url": "https://......."
+    }
+  ],
   "count": 1
   
 }

+ 259 - 5
RA TradeFiling/RA TradeFiling/FAKE_DATA/login.json

@@ -1,13 +1,267 @@
 {
   "result": 2,
+  "nick_name": "Ray",
   "company": [
     {
-      "name": "company0 usa llc",
-      "id": 0
+      "name": "CSLL - CSLL LOGISTICS INC.",
+      "id": "aaaa"
     },
     {
-      "name": "company1 abc def hijklmn",
-      "id": 1
+      "name": "KLNL - Kerry",
+      "id": "bbbb"
     }
-  ]
+  ],
+  "function_panel": {
+    "ver": 4,
+    "active_functions": [
+      {
+        "name": "ACE-M1",
+        "icon": "flag_us",
+        "type": "result",
+        "sub_type": "acem1"
+      },
+      {
+        "name": "ISF",
+        "icon": "flag_us",
+        "type": "result",
+        "sub_type": "isf"
+      },
+      {
+        "name": "eManifest",
+        "icon": "flag_ca",
+        "type": "result",
+        "sub_type": "emanifest"
+      },
+      {
+        "name": "ACI",
+        "icon": "flag_ca",
+        "type": "result",
+        "sub_type": "aci"
+      }
+    ],
+    "deactive_functions": [
+      {
+        "name": "Customer",
+        "icon": "ic_customer",
+        "type": "result",
+        "sub_type": "customer"
+      }
+    ]
+  },
+  "fields": {
+    "search": {
+      "acem1": {
+        "ver": 10,
+        "show": [
+          {
+            "name": "booking_no",
+            "type": "string",
+            "aname": "Booking#"
+          },
+          {
+            "aname": "Active",
+            "name": "active",
+            "type": "boolean"
+          },
+          {
+            "aname": "ETA",
+            "name": "eta",
+            "type": "time"
+          },
+          {
+            "aname": "PO#",
+            "name": "po_no",
+            "type": "string"
+          }
+        ]
+      },
+      "aci": {
+        "ver": 2,
+        "show": [
+          {
+            "name": "booking_no",
+            "type": "string",
+            "aname": "Booking#"
+          },
+          {
+            "aname": "Active",
+            "name": "active",
+            "type": "boolean"
+          },
+          {
+            "aname": "ETA",
+            "name": "eta",
+            "type": "time"
+          },
+          {
+            "aname": "PO#",
+            "name": "po_no",
+            "type": "string"
+          }
+        ]
+      },
+      "emanifest": {
+        "ver": 2,
+        "show": [
+          {
+            "name": "booking_no",
+            "type": "string",
+            "aname": "Booking#"
+          },
+          {
+            "aname": "Active",
+            "name": "active",
+            "type": "boolean"
+          },
+          {
+            "aname": "ETA",
+            "name": "eta",
+            "type": "time"
+          },
+          {
+            "aname": "PO#",
+            "name": "po_no",
+            "type": "string"
+          }
+        ]
+      },
+      "isf": {
+        "ver": 2,
+        "show": [
+          {
+            "name": "booking_no",
+            "type": "string",
+            "aname": "Booking#"
+          },
+          {
+            "aname": "Active",
+            "name": "active",
+            "type": "boolean"
+          },
+          {
+            "aname": "ETA",
+            "name": "eta",
+            "type": "time"
+          },
+          {
+            "aname": "PO#",
+            "name": "po_no",
+            "type": "string"
+          }
+        ]
+      },
+      "customer": {
+        "ver": 2,
+        "show": [
+          {
+            "name": "booking_no",
+            "type": "string",
+            "aname": "Booking#"
+          },
+          {
+            "aname": "Active",
+            "name": "active",
+            "type": "boolean"
+          },
+          {
+            "aname": "ETA",
+            "name": "eta",
+            "type": "time"
+          },
+          {
+            "aname": "PO#",
+            "name": "po_no",
+            "type": "string"
+          }
+        ]
+      }
+    },
+    "result": {
+      "acem1": {
+        "ver": 3,
+        "hide": [
+          {
+            "name": "booking_no",
+            "aname": "Booking#"
+          },
+          {
+            "aname": "Shipper",
+            "name": "shipper"
+          },
+          {
+            "aname": "Consignee",
+            "name": "consignee"
+          }
+        ]
+      },
+      "aci": {
+        "ver": 2,
+        "hide": [
+          {
+            "name": "booking_no",
+            "aname": "Booking#"
+          },
+          {
+            "aname": "Shipper",
+            "name": "shipper"
+          },
+          {
+            "aname": "Consignee",
+            "name": "consignee"
+          }
+        ]
+      },
+      "emanifest": {
+        "ver": 1,
+        "hide": [
+          {
+            "name": "booking_no",
+            "aname": "Booking#"
+          },
+          {
+            "aname": "Shipper",
+            "name": "shipper"
+          },
+          {
+            "aname": "Consignee",
+            "name": "consignee"
+          }
+        ]
+      },
+      "isf": {
+        "ver": 1,
+        "hide": [
+          {
+            "name": "booking_no",
+            "aname": "Booking#"
+          },
+          {
+            "aname": "Shipper",
+            "name": "shipper"
+          },
+          {
+            "aname": "Consignee",
+            "name": "consignee"
+          }
+        ]
+      },
+      "customer": {
+        "ver": 1,
+        "hide": [
+          {
+            "name": "booking_no",
+            "aname": "Booking#"
+          },
+          {
+            "aname": "Shipper",
+            "name": "shipper"
+          },
+          {
+            "aname": "Consignee",
+            "name": "consignee"
+          }
+        ]
+      }
+    }
+  }
 }

+ 0 - 1
RA TradeFiling/RA TradeFiling/FAKE_DATA/searchresult_acem1.json

@@ -4,7 +4,6 @@
     {
       "title": "ACE M1 Detail",
       "module": "detail",
-      "url": "https://ra.apexshipping.com/main_new.php?action=handset_search",
       "params": {
         "id": 0
       }

+ 10 - 11
RA TradeFiling/RA TradeFiling/FAKE_DATA/searchresult_aci.json

@@ -4,7 +4,6 @@
     {
       "title": "ACI Detail",
       "module": "detail",
-      "url": "https://ra.apexshipping.com/main_new.php?action=handset_search",
       "params": {
         "id": 0
       }
@@ -16,8 +15,8 @@
         "icon":"status_pending",
       "lastaction": "Original",
       "log": "ACCEPTED,06",
-      "mbol": "Primary CCN: 9558THD0608081",
-      "hbol": "8FFLA2012311120",
+      "primary_ccn": "Primary CCN: 9558THD0608081",
+      "hbccn": "8FFLA2012311120",
       "date": "12/16/2020-01/04/2021",
       "rowActionParameters": [
         "_49208a00d6908828437963179575e3aa"
@@ -39,8 +38,8 @@
           "value": "ACI282012119682"
         }
       ],
-      "mbol": "Primary CCN: 9558THD0608081",
-      "hbol": "8FFLA2012311120",
+      "primary_ccn": "Primary CCN: 9558THD0608081",
+      "hbccn": "8FFLA2012311120",
       "date": "12/16/2020-01/04/2021",
       "rowActionParameters": [
         "_49208a00d6908828437963179575e3aa"
@@ -62,8 +61,8 @@
           "value": "ACI282012119682"
         }
       ],
-      "mbol": "Primary CCN: 9558THD0608081",
-      "hbol": "8FFLA2012311120",
+      "primary_ccn": "Primary CCN: 9558THD0608081",
+      "hbccn": "8FFLA2012311120",
       "date": "12/16/2020-01/04/2021",
       "rowActionParameters": [
         "_49208a00d6908828437963179575e3aa"
@@ -85,8 +84,8 @@
           "value": "ACI282012119682"
         }
       ],
-      "mbol": "Primary CCN: 9558THD0608081",
-      "hbol": "8FFLA2012311120",
+      "primary_ccn": "Primary CCN: 9558THD0608081",
+      "hbccn": "8FFLA2012311120",
       "date": "12/16/2020-01/04/2021",
       "rowActionParameters": [
         "_49208a00d6908828437963179575e3aa"
@@ -108,8 +107,8 @@
           "value": "ACI282012119682"
         }
       ],
-      "mbol": "Primary CCN: 9558THD0608081",
-      "hbol": "8FFLA2012311120",
+      "primary_ccn": "Primary CCN: 9558THD0608081",
+      "hbccn": "8FFLA2012311120",
       "date": "12/16/2020-01/04/2021",
       "rowActionParameters": [
         "_49208a00d6908828437963179575e3aa"

+ 0 - 1
RA TradeFiling/RA TradeFiling/FAKE_DATA/searchresult_customer.json

@@ -4,7 +4,6 @@
     {
       "title": "Customer Detail",
       "module": "detail",
-      "url": "https://ra.apexshipping.com/main_new.php?action=handset_search",
       "params": {
         "id": 0
       }

+ 15 - 16
RA TradeFiling/RA TradeFiling/FAKE_DATA/searchresult_emanifest.json

@@ -4,7 +4,6 @@
     {
       "title": "eManifest Detail",
       "module": "detail",
-      "url": "https://ra.apexshipping.com/main_new.php?action=handset_search",
       "params": {
         "id": 0
       }
@@ -17,10 +16,10 @@
       "log": "ACCEPTED,06",
       
       "icon": "status_matched",
-      "cbol": "C9558THD0608081",
+      "previous_ccn": "C9558THD0608081",
       "inclose": true,
-      "mbol": "MBOL: 9558THD0608081",
-      "hbol": "8FFLA2012311120",
+      "primary_ccn": "MBOL: 9558THD0608081",
+      "hbccn": "8FFLA2012311120",
       "date": "12/16/2020-01/04/2021",
       "rowActionParameters": [
         "_49208a00d6908828437963179575e3aa"
@@ -32,10 +31,10 @@
       "lastaction": "Original",
       "log": "ACCEPTED,06",
       "icon": "status_pending",
-      "cbol": "C9558THD0608081",
+      "previous_ccn": "C9558THD0608081",
       "inclose": true,
-      "mbol": "MBOL: 9558THD0608081",
-      "hbol": "8FFLA2012311120",
+      "primary_ccn": "MBOL: 9558THD0608081",
+      "hbccn": "8FFLA2012311120",
       "date": "12/16/2020-01/04/2021",
       "rowActionParameters": [
         "_49208a00d6908828437963179575e3aa"
@@ -57,10 +56,10 @@
       "lastaction": "Original",
       "log": "ACCEPTED,06",
       "icon": "status_pending",
-      "cbol": "C9558THD0608081",
+      "previous_ccn": "C9558THD0608081",
       "inclose": false,
-      "mbol": "MBOL: 9558THD0608081",
-      "hbol": "8FFLA2012311120",
+      "primary_ccn": "MBOL: 9558THD0608081",
+      "hbccn": "8FFLA2012311120",
       "date": "12/16/2020-01/04/2021",
       "rowActionParameters": [
         "_49208a00d6908828437963179575e3aa"
@@ -82,10 +81,10 @@
       "lastaction": "Original",
       "log": "ACCEPTED,06",
       "icon": "status_deleted",
-      "cbol": "C9558THD0608081",
+      "previous_ccn": "C9558THD0608081",
       "inclose": true,
-      "mbol": "MBOL: 9558THD0608081",
-      "hbol": "8FFLA2012311120",
+      "primary_ccn": "MBOL: 9558THD0608081",
+      "hbccn": "8FFLA2012311120",
       "date": "12/16/2020-01/04/2021",
       "rowActionParameters": [
         "_49208a00d6908828437963179575e3aa"
@@ -107,10 +106,10 @@
       "lastaction": "Original",
       "log": "ACCEPTED,06",
       "icon": "status_error",
-      "cbol": "C9558THD0608081",
+      "previous_ccn": "C9558THD0608081",
       "inclose": false,
-      "mbol": "MBOL: 9558THD0608081",
-      "hbol": "8FFLA2012311120",
+      "primary_ccn": "MBOL: 9558THD0608081",
+      "hbccn": "8FFLA2012311120",
       "date": "12/16/2020-01/04/2021",
       "rowActionParameters": [
         "_49208a00d6908828437963179575e3aa"

+ 0 - 1
RA TradeFiling/RA TradeFiling/FAKE_DATA/searchresult_isf.json

@@ -4,7 +4,6 @@
     {
       "title": "ISF Detail",
       "module": "detail",
-      "url": "https://ra.apexshipping.com/main_new.php?action=handset_search",
       "params": {
         "id": 0
       }

+ 3 - 1
RA TradeFiling/RA TradeFiling/Home/CollectionViewButtonCell.h

@@ -6,13 +6,15 @@
 //
 
 #import <UIKit/UIKit.h>
-
+#import "RABadgeNumberView.h"
 NS_ASSUME_NONNULL_BEGIN
 
 @interface CollectionViewButtonCell : UICollectionViewCell
 @property (weak, nonatomic) IBOutlet UIImageView *icon;
 @property (weak, nonatomic) IBOutlet UILabel *label;
+@property (weak, nonatomic) IBOutlet UILabel *markerLabel;
 @property (weak, nonatomic) NSMutableDictionary* params;
+@property (weak, nonatomic) IBOutlet RABadgeNumberView *badgeView;
 @end
 
 NS_ASSUME_NONNULL_END

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio