Browse Source

Hdlg scan order 1.0

Ray Zhang 4 years ago
parent
commit
02b3f09903
63 changed files with 9968 additions and 1933 deletions
  1. 3 2
      RedAnt ERP Mobile/HMLG Mobile.xcodeproj/project.pbxproj
  2. 33 31
      RedAnt ERP Mobile/HMLG Mobile/Assets.xcassets/AppIcon.appiconset/Contents.json
  3. BIN
      RedAnt ERP Mobile/HMLG Mobile/Assets.xcassets/AppIcon.appiconset/appicon-7.png
  4. BIN
      RedAnt ERP Mobile/HMLG Mobile/Assets.xcassets/AppIcon.appiconset/appicon-8.png
  5. 2720 0
      RedAnt ERP Mobile/HMLG Scan Order.xcodeproj/project.pbxproj
  6. 7 0
      RedAnt ERP Mobile/HMLG Scan Order.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  7. 14 0
      RedAnt ERP Mobile/HMLG Scan Order.xcodeproj/xcuserdata/ruizhang.xcuserdatad/xcschemes/xcschememanagement.plist
  8. 3 0
      RedAnt ERP Mobile/RedAnt ERP Mobile.xcworkspace/contents.xcworkspacedata
  9. 2 0
      RedAnt ERP Mobile/RedAnt ERP Mobile.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
  10. 19 0
      RedAnt ERP Mobile/common/AppDelegateBase.h
  11. 98 34
      RedAnt ERP Mobile/common/AppDelegateBase.m
  12. 1 1
      RedAnt ERP Mobile/common/CartUtils.m
  13. 46 34
      RedAnt ERP Mobile/common/ERP_Mobile_Cart.storyboard
  14. 297 26
      RedAnt ERP Mobile/common/ERP_Mobile_Order.storyboard
  15. 2 0
      RedAnt ERP Mobile/common/Functions/MainViewController.h
  16. 428 22
      RedAnt ERP Mobile/common/Functions/MainViewController.m
  17. 20 0
      RedAnt ERP Mobile/common/Functions/OLO/OLOSettingViewController.h
  18. 415 0
      RedAnt ERP Mobile/common/Functions/OLO/OLOSettingViewController.m
  19. 51 0
      RedAnt ERP Mobile/common/Functions/OLO/ScanOrderListViewController.h
  20. 2426 0
      RedAnt ERP Mobile/common/Functions/OLO/ScanOrderListViewController.m
  21. 15 0
      RedAnt ERP Mobile/common/Functions/OLO/scan_cart.json
  22. 848 0
      RedAnt ERP Mobile/common/Functions/OLO/scan_order.json
  23. 246 147
      RedAnt ERP Mobile/common/Functions/camscan/ScannerViewController.m
  24. 214 6
      RedAnt ERP Mobile/common/Functions/cart/CartViewController.m
  25. 5 5
      RedAnt ERP Mobile/common/Functions/category/CategoryViewController.m
  26. 1 0
      RedAnt ERP Mobile/common/Functions/contact/CustomerEditViewController.h
  27. 13 152
      RedAnt ERP Mobile/common/Functions/contact/CustomerEditViewController.m
  28. 32 0
      RedAnt ERP Mobile/common/Functions/contact/CustomerInfoViewController.m
  29. 145 0
      RedAnt ERP Mobile/common/Functions/contact/offline_order_new_contact.json
  30. 145 0
      RedAnt ERP Mobile/common/Functions/contact/scan_contact.json
  31. 8 0
      RedAnt ERP Mobile/common/Functions/offline/OLDataProvider.h
  32. 317 0
      RedAnt ERP Mobile/common/Functions/offline/OLDataProvider.m
  33. 4 0
      RedAnt ERP Mobile/common/Functions/offline/OfflineSettingViewController.m
  34. 2 1112
      RedAnt ERP Mobile/common/Functions/order/CreateOrderViewController.m
  35. 1 0
      RedAnt ERP Mobile/common/Functions/order/OrderDetailViewController.m
  36. 2 1
      RedAnt ERP Mobile/common/Functions/order/OrderListViewController.m
  37. 5 5
      RedAnt ERP Mobile/common/Functions/search+itemsearch/ItemSearchViewController.m
  38. 5 5
      RedAnt ERP Mobile/common/Functions/search+itemsearch/SearchViewController.m
  39. 4 0
      RedAnt ERP Mobile/common/RASingleton.h
  40. 47 1
      RedAnt ERP Mobile/common/RASingleton.m
  41. 11 0
      RedAnt ERP Mobile/common/const.h
  42. 1 0
      RedAnt ERP Mobile/common/customUI/ImageUploadViewController.h
  43. 36 1
      RedAnt ERP Mobile/common/customUI/ImageUploadViewController.m
  44. 1 1
      RedAnt ERP Mobile/common/data_provider/RANetwork.h
  45. 483 323
      RedAnt ERP Mobile/common/data_provider/RANetwork.m
  46. 22 4
      RedAnt ERP Mobile/iSales-CONTRAST.xcodeproj/project.pbxproj
  47. 1 1
      RedAnt ERP Mobile/iSales-CONTRAST.xcodeproj/xcuserdata/ruizhang.xcuserdatad/xcschemes/xcschememanagement.plist
  48. 59 0
      RedAnt ERP Mobile/iSales-NPD.xcodeproj/project.pbxproj
  49. 5 5
      RedAnt ERP Mobile/iSales-NPD/Base.lproj/Main.storyboard
  50. 428 5
      RedAnt ERP Mobile/iSales-NPD/Base.lproj/OLM.storyboard
  51. 1 0
      RedAnt ERP Mobile/iSales-NPD/config.h
  52. 14 0
      RedAnt ERP Mobile/iSales-UNITED WAVER.xcodeproj/project.pbxproj
  53. 71 0
      RedAnt ERP Mobile/iSales-USAI.xcodeproj/project.pbxproj
  54. 20 0
      RedAnt ERP Mobile/iSales-USAI/UploadCell.h
  55. 72 0
      RedAnt ERP Mobile/iSales-USAI/UploadCell.m
  56. 10 0
      RedAnt ERP Mobile/iSales-USAI/config.h
  57. 1 0
      common/RAUtils.h
  58. 16 1
      common/RAUtils.m
  59. 1 1
      common/customUI/commoneditor/CommonEditorCellImg.h
  60. 3 3
      common/customUI/commoneditor/CommonEditorCellImg.m
  61. 2 1
      common/customUI/commoneditor/CommonEditorViewController.h
  62. 65 3
      common/customUI/commoneditor/CommonEditorViewController.m
  63. 1 0
      common/upload/RAUploadListViewController.m

+ 3 - 2
RedAnt ERP Mobile/HMLG Mobile.xcodeproj/project.pbxproj

@@ -1914,6 +1914,7 @@
 				TargetAttributes = {
 				TargetAttributes = {
 					7183E8431CF2913E00524787 = {
 					7183E8431CF2913E00524787 = {
 						CreatedOnToolsVersion = 7.3.1;
 						CreatedOnToolsVersion = 7.3.1;
+						DevelopmentTeam = HXWLAA5YN5;
 					};
 					};
 				};
 				};
 			};
 			};
@@ -2365,7 +2366,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				CURRENT_PROJECT_VERSION = 200214;
 				CURRENT_PROJECT_VERSION = 200214;
-				DEVELOPMENT_TEAM = "";
+				DEVELOPMENT_TEAM = HXWLAA5YN5;
 				FRAMEWORK_SEARCH_PATHS = (
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(inherited)",
 					"$(PROJECT_DIR)/GoogleAnalytics/FirebaseAnalytics/Frameworks",
 					"$(PROJECT_DIR)/GoogleAnalytics/FirebaseAnalytics/Frameworks",
@@ -2398,7 +2399,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				CURRENT_PROJECT_VERSION = 200214;
 				CURRENT_PROJECT_VERSION = 200214;
-				DEVELOPMENT_TEAM = "";
+				DEVELOPMENT_TEAM = HXWLAA5YN5;
 				FRAMEWORK_SEARCH_PATHS = (
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(inherited)",
 					"$(PROJECT_DIR)/GoogleAnalytics/FirebaseAnalytics/Frameworks",
 					"$(PROJECT_DIR)/GoogleAnalytics/FirebaseAnalytics/Frameworks",

+ 33 - 31
RedAnt ERP Mobile/HMLG Mobile/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -1,66 +1,68 @@
 {
 {
   "images" : [
   "images" : [
     {
     {
+      "filename" : "appicon-7.png",
       "idiom" : "ipad",
       "idiom" : "ipad",
-      "size" : "20x20",
-      "scale" : "1x"
+      "scale" : "1x",
+      "size" : "20x20"
     },
     },
     {
     {
+      "filename" : "appicon-8.png",
       "idiom" : "ipad",
       "idiom" : "ipad",
-      "size" : "20x20",
-      "scale" : "2x"
+      "scale" : "2x",
+      "size" : "20x20"
     },
     },
     {
     {
-      "size" : "29x29",
-      "idiom" : "ipad",
       "filename" : "appicon-5.png",
       "filename" : "appicon-5.png",
-      "scale" : "1x"
+      "idiom" : "ipad",
+      "scale" : "1x",
+      "size" : "29x29"
     },
     },
     {
     {
-      "size" : "29x29",
-      "idiom" : "ipad",
       "filename" : "appicon-6.png",
       "filename" : "appicon-6.png",
-      "scale" : "2x"
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "29x29"
     },
     },
     {
     {
-      "size" : "40x40",
-      "idiom" : "ipad",
       "filename" : "appicon-3.png",
       "filename" : "appicon-3.png",
-      "scale" : "1x"
+      "idiom" : "ipad",
+      "scale" : "1x",
+      "size" : "40x40"
     },
     },
     {
     {
-      "size" : "40x40",
-      "idiom" : "ipad",
       "filename" : "appicon-4.png",
       "filename" : "appicon-4.png",
-      "scale" : "2x"
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "40x40"
     },
     },
     {
     {
-      "size" : "76x76",
-      "idiom" : "ipad",
       "filename" : "appicon-1.png",
       "filename" : "appicon-1.png",
-      "scale" : "1x"
+      "idiom" : "ipad",
+      "scale" : "1x",
+      "size" : "76x76"
     },
     },
     {
     {
-      "size" : "76x76",
-      "idiom" : "ipad",
       "filename" : "appicon-2.png",
       "filename" : "appicon-2.png",
-      "scale" : "2x"
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "76x76"
     },
     },
     {
     {
-      "size" : "83.5x83.5",
-      "idiom" : "ipad",
       "filename" : "appicon.png",
       "filename" : "appicon.png",
-      "scale" : "2x"
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "83.5x83.5"
     },
     },
     {
     {
-      "size" : "1024x1024",
-      "idiom" : "ios-marketing",
       "filename" : "homelegance.png",
       "filename" : "homelegance.png",
-      "scale" : "1x"
+      "idiom" : "ios-marketing",
+      "scale" : "1x",
+      "size" : "1024x1024"
     }
     }
   ],
   ],
   "info" : {
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
   }
   }
-}
+}

BIN
RedAnt ERP Mobile/HMLG Mobile/Assets.xcassets/AppIcon.appiconset/appicon-7.png


BIN
RedAnt ERP Mobile/HMLG Mobile/Assets.xcassets/AppIcon.appiconset/appicon-8.png


+ 2720 - 0
RedAnt ERP Mobile/HMLG Scan Order.xcodeproj/project.pbxproj

@@ -0,0 +1,2720 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		3C2F99B8237BE1790000808F /* PortfolioListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C2F99B6237BE1790000808F /* PortfolioListTableViewCell.m */; };
+		3C473C9127C4D22900CC8C12 /* ScanUserListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C473C9027C4D22900CC8C12 /* ScanUserListViewController.m */; };
+		3C4DA61627B4E95C001EB44E /* HMLG Scan Order-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3C4DA61527B4E95C001EB44E /* HMLG Scan Order-Info.plist */; };
+		3C4DA61F27B50199001EB44E /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C4DA61D27B50199001EB44E /* Main.storyboard */; };
+		3C4DA62527B503B1001EB44E /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C4DA62327B503B1001EB44E /* MainViewController.m */; };
+		3C51492F273CF9B900F78617 /* DBUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51492E273CF9B900F78617 /* DBUtil.m */; };
+		3C514932273D092A00F78617 /* EnumSelectViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514931273D092A00F78617 /* EnumSelectViewController.m */; };
+		3C514947273D095900F78617 /* CommonEditorCellSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514934273D095800F78617 /* CommonEditorCellSwitch.m */; };
+		3C514948273D095900F78617 /* CommonEditorCellTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514935273D095800F78617 /* CommonEditorCellTextView.m */; };
+		3C514949273D095900F78617 /* CommonEditorCellEnum.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514939273D095800F78617 /* CommonEditorCellEnum.m */; };
+		3C51494A273D095900F78617 /* CommonEditorCellEdit.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51493A273D095900F78617 /* CommonEditorCellEdit.m */; };
+		3C51494B273D095900F78617 /* CommonEditorCellLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51493C273D095900F78617 /* CommonEditorCellLabel.m */; };
+		3C51494C273D095900F78617 /* CommonEditorCellMAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51493D273D095900F78617 /* CommonEditorCellMAction.m */; };
+		3C51494D273D095900F78617 /* CommonEditorCellSignature.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51493E273D095900F78617 /* CommonEditorCellSignature.m */; };
+		3C51494E273D095900F78617 /* CommonEditorCellImg.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51493F273D095900F78617 /* CommonEditorCellImg.m */; };
+		3C51494F273D095900F78617 /* CommonEditorCellAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514944273D095900F78617 /* CommonEditorCellAction.m */; };
+		3C514950273D095900F78617 /* CommonEditorCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514945273D095900F78617 /* CommonEditorCellModel.m */; };
+		3C514953273D096A00F78617 /* CommonEditorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514951273D096A00F78617 /* CommonEditorViewController.m */; };
+		3C514956273D097E00F78617 /* CommonEditorTableContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514955273D097E00F78617 /* CommonEditorTableContainerView.m */; };
+		3C514959273D098700F78617 /* DatePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514958273D098700F78617 /* DatePickerViewController.m */; };
+		3C51495C273D099600F78617 /* EnumSelectorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51495B273D099600F78617 /* EnumSelectorCell.m */; };
+		3C51495F273D09B800F78617 /* MonthPickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51495E273D09B800F78617 /* MonthPickerViewController.m */; };
+		3C514961273D09E700F78617 /* CommonEditor.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C514960273D09E700F78617 /* CommonEditor.storyboard */; };
+		3C514966273D0A2F00F78617 /* SRMonthPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514965273D0A2F00F78617 /* SRMonthPicker.m */; };
+		3C514969273D0B1E00F78617 /* RADataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514968273D0B1E00F78617 /* RADataProvider.m */; };
+		3C514974273E074500F78617 /* CommonEditorCellEditor.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514972273E074500F78617 /* CommonEditorCellEditor.m */; };
+		3C51497D273E07D600F78617 /* EnumSelectAndSort.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C514976273E07D500F78617 /* EnumSelectAndSort.storyboard */; };
+		3C51497E273E07D600F78617 /* EnumSelectAndSortViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514979273E07D500F78617 /* EnumSelectAndSortViewController.m */; };
+		3C51497F273E07D600F78617 /* EnumSelectAndSortCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51497A273E07D500F78617 /* EnumSelectAndSortCell.m */; };
+		3C514980273E07D600F78617 /* EnumModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51497C273E07D600F78617 /* EnumModel.m */; };
+		3C514992273E091500F78617 /* PhotoList.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C514989273E091500F78617 /* PhotoList.storyboard */; };
+		3C514993273E091500F78617 /* ContentPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51498B273E091500F78617 /* ContentPreviewController.m */; };
+		3C514994273E091500F78617 /* VideoPreviewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51498E273E091500F78617 /* VideoPreviewCell.m */; };
+		3C514995273E091500F78617 /* PhotoPreviewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514990273E091500F78617 /* PhotoPreviewCell.m */; };
+		3C514999273E097C00F78617 /* RAProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514998273E097B00F78617 /* RAProgressHUD.m */; };
+		3C51E7BD27B2599E00E61163 /* ScanOrderListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51E7BC27B2599E00E61163 /* ScanOrderListViewController.m */; };
+		3C51E7CA27B261EC00E61163 /* RANetworkTaskDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51E7C227B261EC00E61163 /* RANetworkTaskDelegate.m */; };
+		3C51E7CB27B261EC00E61163 /* RAUploadOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51E7C327B261EC00E61163 /* RAUploadOperation.m */; };
+		3C51E7CC27B261EC00E61163 /* RAUploadListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51E7C527B261EC00E61163 /* RAUploadListViewController.m */; };
+		3C51E7CD27B261EC00E61163 /* RAUploadManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51E7C827B261EC00E61163 /* RAUploadManager.m */; };
+		3C51E7D027B2623700E61163 /* UploadCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51E7CF27B2623700E61163 /* UploadCell.m */; };
+		3C51E7D327B2628900E61163 /* UIView+Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51E7D227B2628900E61163 /* UIView+Toast.m */; };
+		3C68314D239607B500AD5BD7 /* ytplayer.html in Resources */ = {isa = PBXBuildFile; fileRef = 3C68314A239607B500AD5BD7 /* ytplayer.html */; };
+		3C68314E239607B500AD5BD7 /* RAYTPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C68314B239607B500AD5BD7 /* RAYTPlayer.m */; };
+		3C6831562396082800AD5BD7 /* ERP_Mobile_Discard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C68314F2396082700AD5BD7 /* ERP_Mobile_Discard.storyboard */; };
+		3C6831572396082800AD5BD7 /* ERP_Mobile_Cart.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831502396082700AD5BD7 /* ERP_Mobile_Cart.storyboard */; };
+		3C6831582396082800AD5BD7 /* ERP_Mobile_Model.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831512396082700AD5BD7 /* ERP_Mobile_Model.storyboard */; };
+		3C6831592396082800AD5BD7 /* ERP_Mobile_Search.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831522396082700AD5BD7 /* ERP_Mobile_Search.storyboard */; };
+		3C68315A2396082800AD5BD7 /* ERP_Mobile_Contact.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831532396082700AD5BD7 /* ERP_Mobile_Contact.storyboard */; };
+		3C68315B2396082800AD5BD7 /* ERP_Mobile_Order.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831542396082800AD5BD7 /* ERP_Mobile_Order.storyboard */; };
+		3C68315C2396082800AD5BD7 /* ERP_Mobile_Portfolio.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831552396082800AD5BD7 /* ERP_Mobile_Portfolio.storyboard */; };
+		3C6831682396094200AD5BD7 /* iPadCommonEditorCellImg.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C68315D2396094100AD5BD7 /* iPadCommonEditorCellImg.xib */; };
+		3C6831692396094200AD5BD7 /* CommonEditor.iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C68315E2396094100AD5BD7 /* CommonEditor.iPad.xib */; };
+		3C68316A2396094200AD5BD7 /* iPadCommonEditorCellLabel.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C68315F2396094200AD5BD7 /* iPadCommonEditorCellLabel.xib */; };
+		3C68316B2396094200AD5BD7 /* iPadCommonEditorCellSwitch.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831602396094200AD5BD7 /* iPadCommonEditorCellSwitch.xib */; };
+		3C68316C2396094200AD5BD7 /* iPadCommonEditorCellEnum.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831612396094200AD5BD7 /* iPadCommonEditorCellEnum.xib */; };
+		3C68316D2396094200AD5BD7 /* iPadCommonEditorCellTextView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831622396094200AD5BD7 /* iPadCommonEditorCellTextView.xib */; };
+		3C68316E2396094200AD5BD7 /* iPadCommonEditorCellAction.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831632396094200AD5BD7 /* iPadCommonEditorCellAction.xib */; };
+		3C68316F2396094200AD5BD7 /* iPadCommonEditorCellModel.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831642396094200AD5BD7 /* iPadCommonEditorCellModel.xib */; };
+		3C6831702396094200AD5BD7 /* iPadCommonEditorCellMAction.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831652396094200AD5BD7 /* iPadCommonEditorCellMAction.xib */; };
+		3C6831712396094200AD5BD7 /* iPadCommonEditorCellSignature.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831662396094200AD5BD7 /* iPadCommonEditorCellSignature.xib */; };
+		3C6831722396094200AD5BD7 /* iPadCommonEditorCellEdit.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C6831672396094200AD5BD7 /* iPadCommonEditorCellEdit.xib */; };
+		3C69618223C7156D0075172A /* RAPDFViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C69617E23C7156D0075172A /* RAPDFViewController.m */; };
+		3C69618323C7156D0075172A /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C69617F23C7156D0075172A /* WebViewController.m */; };
+		3C69618423C7156D0075172A /* wkweb.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C69618023C7156D0075172A /* wkweb.storyboard */; };
+		3C7E5A8E237BDB0C006D0105 /* PortfolioListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7E5A8C237BDB0C006D0105 /* PortfolioListViewController.m */; };
+		3C872A1E27955CF300BE1FC8 /* scan_cart.json in Resources */ = {isa = PBXBuildFile; fileRef = 3C872A1D27955CF300BE1FC8 /* scan_cart.json */; };
+		3C872A262797FE7C00BE1FC8 /* scan_order.json in Resources */ = {isa = PBXBuildFile; fileRef = 3C872A252797FE7C00BE1FC8 /* scan_order.json */; };
+		3CC1122B279163F4004ACA57 /* offline_order_new_contact.json in Resources */ = {isa = PBXBuildFile; fileRef = 3CC1122A279163F4004ACA57 /* offline_order_new_contact.json */; };
+		3CDDB25C273A564200681F78 /* DefaultTableHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB25A273A564200681F78 /* DefaultTableHeaderView.m */; };
+		3CDDB262273A59DF00681F78 /* TouchImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB260273A59DF00681F78 /* TouchImageView.m */; };
+		3CDDB265273A59EF00681F78 /* RTLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB264273A59EF00681F78 /* RTLabel.m */; };
+		3CDDB268273A5A0400681F78 /* StrikethroughLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB267273A5A0400681F78 /* StrikethroughLabel.m */; };
+		3CDDB26B273A5A1500681F78 /* CustomIOSAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB269273A5A1400681F78 /* CustomIOSAlertView.m */; };
+		3CDDB26E273A5A7800681F78 /* RAUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB26C273A5A7800681F78 /* RAUtils.m */; };
+		3CF33C8B27BF4936001CBEEC /* ServerSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CF33C8A27BF4936001CBEEC /* ServerSettingViewController.m */; };
+		3CF33C8F27BF4A3D001CBEEC /* RAQRCodeScannerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CF33C8C27BF4A3D001CBEEC /* RAQRCodeScannerViewController.m */; };
+		3CF33C9027BF4A3D001CBEEC /* QRCode.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3CF33C8E27BF4A3D001CBEEC /* QRCode.storyboard */; };
+		423CC87521D22FDE008BD2C4 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 423CC87421D22FDE008BD2C4 /* Launch Screen.storyboard */; };
+		424A02D11FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m in Sources */ = {isa = PBXBuildFile; fileRef = 424A02D01FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m */; };
+		4254CCDE1FB1AC2B00C8B4B6 /* RAOrderEditorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4254CCDD1FB1AC2B00C8B4B6 /* RAOrderEditorViewController.m */; };
+		428980041E2490C1005F1BD8 /* NotificationNameCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 428980031E2490C1005F1BD8 /* NotificationNameCenter.m */; };
+		4289800A1E24918F005F1BD8 /* CartUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 428980091E24918F005F1BD8 /* CartUtils.m */; };
+		428980151E24924D005F1BD8 /* SortButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 428980101E24924D005F1BD8 /* SortButton.m */; };
+		428980161E24924D005F1BD8 /* SortItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 428980121E24924D005F1BD8 /* SortItemCell.m */; };
+		428980171E24924D005F1BD8 /* SortItemViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 428980141E24924D005F1BD8 /* SortItemViewController.m */; };
+		4289802B1E2492D2005F1BD8 /* CategoryPriceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 428980241E2492D2005F1BD8 /* CategoryPriceCell.m */; };
+		4289802C1E2492D2005F1BD8 /* CategoryPriceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 428980261E2492D2005F1BD8 /* CategoryPriceViewController.m */; };
+		4289802D1E2492D2005F1BD8 /* PriceSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 428980281E2492D2005F1BD8 /* PriceSettingViewController.m */; };
+		4289802E1E2492D2005F1BD8 /* SetCategoryPriceController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4289802A1E2492D2005F1BD8 /* SetCategoryPriceController.m */; };
+		428980451E249339005F1BD8 /* JKDotView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4289803E1E249339005F1BD8 /* JKDotView.m */; };
+		428980461E249339005F1BD8 /* JKLockButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 428980401E249339005F1BD8 /* JKLockButton.m */; };
+		428980471E249339005F1BD8 /* JKLockController.m in Sources */ = {isa = PBXBuildFile; fileRef = 428980421E249339005F1BD8 /* JKLockController.m */; };
+		428980481E249339005F1BD8 /* JKMessageBoxController.m in Sources */ = {isa = PBXBuildFile; fileRef = 428980441E249339005F1BD8 /* JKMessageBoxController.m */; };
+		4289805D1E249375005F1BD8 /* UIColor+JK_HEX.m in Sources */ = {isa = PBXBuildFile; fileRef = 4289805C1E249375005F1BD8 /* UIColor+JK_HEX.m */; };
+		428980721E24B1E9005F1BD8 /* RASingleton.m in Sources */ = {isa = PBXBuildFile; fileRef = 428980711E24B1E9005F1BD8 /* RASingleton.m */; };
+		4289809E1E24B526005F1BD8 /* JKTimerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4289809D1E24B526005F1BD8 /* JKTimerManager.m */; };
+		4295AE1C1FE74D46007BE365 /* CommonEditorAutoCompleteView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295AE1A1FE74D46007BE365 /* CommonEditorAutoCompleteView.m */; };
+		4295AE1D1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4295AE1B1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib */; };
+		42B309791E45BA32007AFC62 /* status_filter_cadedate_po.json in Resources */ = {isa = PBXBuildFile; fileRef = 42B309781E45BA32007AFC62 /* status_filter_cadedate_po.json */; };
+		42BEF34F1E89FE1100632AB6 /* FirebaseAnalytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF3241E89FE1100632AB6 /* FirebaseAnalytics.framework */; };
+		42BEF3501E89FE1100632AB6 /* FirebaseCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF3271E89FE1100632AB6 /* FirebaseCore.framework */; };
+		42BEF3521E89FE1200632AB6 /* FirebaseInstanceID.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF32B1E89FE1100632AB6 /* FirebaseInstanceID.framework */; };
+		42BEF3541E89FE1200632AB6 /* GGLAnalytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF32F1E89FE1100632AB6 /* GGLAnalytics.framework */; };
+		42BEF3551E89FE1200632AB6 /* GGLCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF3301E89FE1100632AB6 /* GGLCore.framework */; };
+		42BEF3571E89FE1200632AB6 /* libGoogleAnalytics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF33C1E89FE1100632AB6 /* libGoogleAnalytics.a */; };
+		42BEF3581E89FE1200632AB6 /* GTMNSData+zlib.m in Sources */ = {isa = PBXBuildFile; fileRef = 42BEF34B1E89FE1100632AB6 /* GTMNSData+zlib.m */; };
+		42BEF35D1E89FECD00632AB6 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF35C1E89FECD00632AB6 /* SystemConfiguration.framework */; };
+		42BEF35F1E89FEE300632AB6 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF35E1E89FEE300632AB6 /* CoreData.framework */; };
+		42BEF3621E8A005800632AB6 /* GoogleAnalyst.m in Sources */ = {isa = PBXBuildFile; fileRef = 42BEF3611E8A005800632AB6 /* GoogleAnalyst.m */; };
+		42BF67CC1E5179970081F90A /* ERPUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 42BF67CB1E5179970081F90A /* ERPUtils.m */; };
+		42D9A0231EB02DA6008AF7AF /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42D9A0221EB02DA6008AF7AF /* AdSupport.framework */; };
+		42D9A0251EB03994008AF7AF /* libAdIdAccess.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42D9A0241EB03994008AF7AF /* libAdIdAccess.a */; };
+		42DC12F11F0CD98E00A4C011 /* OrderDetailPickInfoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 42DC12F01F0CD98E00A4C011 /* OrderDetailPickInfoCell.m */; };
+		42E489611EE63F4E007256A0 /* more_color_64.png in Resources */ = {isa = PBXBuildFile; fileRef = 42E489601EE63F4E007256A0 /* more_color_64.png */; };
+		42FD1A031FBD1A3000C5D9A8 /* RAOrderPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 42FD1A021FBD1A3000C5D9A8 /* RAOrderPreviewController.m */; };
+		710274251CC606C4009FD219 /* UserListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 710274241CC606C4009FD219 /* UserListViewController.m */; };
+		7111E5721C76C557004763B3 /* customer_info_template_edit.json in Resources */ = {isa = PBXBuildFile; fileRef = 7111E5711C76C557004763B3 /* customer_info_template_edit.json */; };
+		71131F921CA1372300DBF6E2 /* SimplifiedBuyingProgramViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71131F911CA1372300DBF6E2 /* SimplifiedBuyingProgramViewController.m */; };
+		712AFED71DBA050200254965 /* BasicDrawable.m in Sources */ = {isa = PBXBuildFile; fileRef = 712AFEC61DBA050200254965 /* BasicDrawable.m */; };
+		712AFED81DBA050200254965 /* GridDrawable.m in Sources */ = {isa = PBXBuildFile; fileRef = 712AFEC81DBA050200254965 /* GridDrawable.m */; };
+		712AFED91DBA050200254965 /* GroupDrawable.m in Sources */ = {isa = PBXBuildFile; fileRef = 712AFECA1DBA050200254965 /* GroupDrawable.m */; };
+		712AFEDA1DBA050200254965 /* ImageDrawable.m in Sources */ = {isa = PBXBuildFile; fileRef = 712AFECC1DBA050200254965 /* ImageDrawable.m */; };
+		712AFEDB1DBA050200254965 /* LineDrawable.m in Sources */ = {isa = PBXBuildFile; fileRef = 712AFECE1DBA050200254965 /* LineDrawable.m */; };
+		712AFEDC1DBA050200254965 /* PDFDrawable.m in Sources */ = {isa = PBXBuildFile; fileRef = 712AFED01DBA050200254965 /* PDFDrawable.m */; };
+		712AFEDD1DBA050200254965 /* RAPDFPage.m in Sources */ = {isa = PBXBuildFile; fileRef = 712AFED21DBA050200254965 /* RAPDFPage.m */; };
+		712AFEDE1DBA050200254965 /* TableDrawable.m in Sources */ = {isa = PBXBuildFile; fileRef = 712AFED41DBA050200254965 /* TableDrawable.m */; };
+		712AFEDF1DBA050200254965 /* TextDrawable.m in Sources */ = {isa = PBXBuildFile; fileRef = 712AFED61DBA050200254965 /* TextDrawable.m */; };
+		712AFEE21DBA077F00254965 /* pdfCreator.m in Sources */ = {isa = PBXBuildFile; fileRef = 712AFEE11DBA077F00254965 /* pdfCreator.m */; };
+		712AFEE51DBDAF0300254965 /* pdfcreator.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 712AFEE41DBDAF0300254965 /* pdfcreator.xcassets */; };
+		712BABF31C897E3A0007466B /* CategorySearchFilterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 712BABF21C897E3A0007466B /* CategorySearchFilterViewController.m */; };
+		712C40B61C7310F4000E6831 /* CartGeneralNotesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 712C40B51C7310F4000E6831 /* CartGeneralNotesViewController.m */; };
+		712C40B91C731126000E6831 /* ItemNotesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 712C40B81C731126000E6831 /* ItemNotesViewController.m */; };
+		713F76AA1929F4A7006A7305 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 713F76A91929F4A7006A7305 /* Foundation.framework */; };
+		713F76AC1929F4A7006A7305 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 713F76AB1929F4A7006A7305 /* CoreGraphics.framework */; };
+		713F76AE1929F4A7006A7305 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 713F76AD1929F4A7006A7305 /* UIKit.framework */; };
+		713F76B41929F4A7006A7305 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 713F76B21929F4A7006A7305 /* InfoPlist.strings */; };
+		713F76B61929F4A7006A7305 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 713F76B51929F4A7006A7305 /* main.m */; };
+		713F76BA1929F4A7006A7305 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 713F76B91929F4A7006A7305 /* AppDelegate.m */; };
+		713F76C21929F4A7006A7305 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 713F76C11929F4A7006A7305 /* Images.xcassets */; };
+		714036F921646B8C0029B10F /* AppDelegateBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 714036F721646B8C0029B10F /* AppDelegateBase.m */; };
+		714036FC21646CFF0029B10F /* UIResponder+Router.m in Sources */ = {isa = PBXBuildFile; fileRef = 714036FA21646CFF0029B10F /* UIResponder+Router.m */; };
+		714037052164707E0029B10F /* MainHeaderViewColorPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = 714037042164707D0029B10F /* MainHeaderViewColorPanel.m */; };
+		7141DD341C57269B00F7DF59 /* include in Resources */ = {isa = PBXBuildFile; fileRef = 7141DD331C57269B00F7DF59 /* include */; };
+		7141DD3B1C5726B700F7DF59 /* DeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD361C5726B700F7DF59 /* DeviceInfo.m */; };
+		7141DD3C1C5726B700F7DF59 /* ScanApiHelper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD381C5726B700F7DF59 /* ScanApiHelper.mm */; };
+		7141DD3D1C5726B700F7DF59 /* softScanBeep.wav in Resources */ = {isa = PBXBuildFile; fileRef = 7141DD3A1C5726B700F7DF59 /* softScanBeep.wav */; };
+		7141DD4E1C57459B00F7DF59 /* bitstream.c in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD3E1C57459B00F7DF59 /* bitstream.c */; };
+		7141DD4F1C57459B00F7DF59 /* mask.c in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD401C57459B00F7DF59 /* mask.c */; };
+		7141DD501C57459B00F7DF59 /* QRCodeGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD431C57459B00F7DF59 /* QRCodeGenerator.m */; };
+		7141DD511C57459B00F7DF59 /* qrencode.c in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD441C57459B00F7DF59 /* qrencode.c */; settings = {COMPILER_FLAGS = "-Wno-shorten-64-to-32"; }; };
+		7141DD521C57459B00F7DF59 /* qrinput.c in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD461C57459B00F7DF59 /* qrinput.c */; };
+		7141DD531C57459B00F7DF59 /* qrspec.c in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD481C57459B00F7DF59 /* qrspec.c */; };
+		7141DD541C57459B00F7DF59 /* rscode.c in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD4A1C57459B00F7DF59 /* rscode.c */; };
+		7141DD551C57459B00F7DF59 /* split.c in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD4C1C57459B00F7DF59 /* split.c */; settings = {COMPILER_FLAGS = "-Wno-shorten-64-to-32"; }; };
+		7141DD5F1C5747CE00F7DF59 /* AESCrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD571C5747CE00F7DF59 /* AESCrypt.m */; };
+		7141DD601C5747CE00F7DF59 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = 7141DD581C5747CE00F7DF59 /* LICENSE */; };
+		7141DD611C5747CE00F7DF59 /* NSData+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD5A1C5747CE00F7DF59 /* NSData+Base64.m */; };
+		7141DD621C5747CE00F7DF59 /* NSData+CommonCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD5C1C5747CE00F7DF59 /* NSData+CommonCrypto.m */; };
+		7141DD631C5747CE00F7DF59 /* NSString+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 7141DD5E1C5747CE00F7DF59 /* NSString+Base64.m */; };
+		7142E87A1DBF577A0077EFA2 /* KALINGA.TTF in Resources */ = {isa = PBXBuildFile; fileRef = 7142E8781DBF57510077EFA2 /* KALINGA.TTF */; };
+		7142E87B1DBF577A0077EFA2 /* KALINGAB.TTF in Resources */ = {isa = PBXBuildFile; fileRef = 7142E8791DBF57510077EFA2 /* KALINGAB.TTF */; };
+		7142E87E1DC300690077EFA2 /* DejaVuSans-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7142E87C1DC300010077EFA2 /* DejaVuSans-Bold.ttf */; };
+		7142E87F1DC300690077EFA2 /* DejaVuSans.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7142E87D1DC300010077EFA2 /* DejaVuSans.ttf */; };
+		7143E20C202FCEEC00451903 /* OLM.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7143E208202FCEEB00451903 /* OLM.storyboard */; };
+		7143E20F202FCEF600451903 /* CUL.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7143E20E202FCEF600451903 /* CUL.storyboard */; };
+		7143E212202FCF7600451903 /* CategoryCellNPD.m in Sources */ = {isa = PBXBuildFile; fileRef = 7143E211202FCF7600451903 /* CategoryCellNPD.m */; };
+		7143E214202FCFC000451903 /* debug_category_filter.json in Resources */ = {isa = PBXBuildFile; fileRef = 7143E213202FCFC000451903 /* debug_category_filter.json */; };
+		7143E217202FD15A00451903 /* category.json in Resources */ = {isa = PBXBuildFile; fileRef = 7143E216202FD15A00451903 /* category.json */; };
+		7143E21A202FD1DC00451903 /* contactAdvanceSearch.json in Resources */ = {isa = PBXBuildFile; fileRef = 7143E218202FD1DC00451903 /* contactAdvanceSearch.json */; };
+		7143E21B202FD1DC00451903 /* createContact.json in Resources */ = {isa = PBXBuildFile; fileRef = 7143E219202FD1DC00451903 /* createContact.json */; };
+		7143E21D202FD21F00451903 /* editContact.json in Resources */ = {isa = PBXBuildFile; fileRef = 7143E21C202FD21F00451903 /* editContact.json */; };
+		7143E220202FD28900451903 /* TearSheet.json in Resources */ = {isa = PBXBuildFile; fileRef = 7143E21E202FD28800451903 /* TearSheet.json */; };
+		7143E221202FD28900451903 /* placeOrderTemplate.json in Resources */ = {isa = PBXBuildFile; fileRef = 7143E21F202FD28900451903 /* placeOrderTemplate.json */; };
+		7143E226202FD2CA00451903 /* so_thumb.json in Resources */ = {isa = PBXBuildFile; fileRef = 7143E222202FD2CA00451903 /* so_thumb.json */; };
+		7143E227202FD2CA00451903 /* portfolio_3x2.json in Resources */ = {isa = PBXBuildFile; fileRef = 7143E223202FD2CA00451903 /* portfolio_3x2.json */; };
+		7143E228202FD2CA00451903 /* portfolio_2x3.json in Resources */ = {isa = PBXBuildFile; fileRef = 7143E224202FD2CA00451903 /* portfolio_2x3.json */; };
+		7143E229202FD2CA00451903 /* so.json in Resources */ = {isa = PBXBuildFile; fileRef = 7143E225202FD2CA00451903 /* so.json */; };
+		7143E22B202FD37500451903 /* orderDetail.json in Resources */ = {isa = PBXBuildFile; fileRef = 7143E22A202FD37500451903 /* orderDetail.json */; };
+		7143E22E202FD3CD00451903 /* more_info.html in Resources */ = {isa = PBXBuildFile; fileRef = 7143E22C202FD3CC00451903 /* more_info.html */; };
+		7143E22F202FD3CD00451903 /* order_info.html in Resources */ = {isa = PBXBuildFile; fileRef = 7143E22D202FD3CC00451903 /* order_info.html */; };
+		714B1F401C7BF74100539193 /* OrderDetailSignatureCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 714B1F3F1C7BF74100539193 /* OrderDetailSignatureCell.m */; };
+		715001FF1D114D9100F5927F /* BundleDetailButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 715001FE1D114D9100F5927F /* BundleDetailButton.m */; };
+		715671331E10A0EF006324A0 /* RectDrawable.m in Sources */ = {isa = PBXBuildFile; fileRef = 715671321E10A0EF006324A0 /* RectDrawable.m */; };
+		715850461CF6F0E500856B20 /* DefaultAppearance.m in Sources */ = {isa = PBXBuildFile; fileRef = 715850451CF6F0E500856B20 /* DefaultAppearance.m */; };
+		715F30BD1DAB37EB00490EED /* OfflineUnlockViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 715F30BC1DAB37EB00490EED /* OfflineUnlockViewController.m */; };
+		7161FEB51D61B24900157EE1 /* creditcardpayment.html in Resources */ = {isa = PBXBuildFile; fileRef = 7161FEB21D61B24900157EE1 /* creditcardpayment.html */; };
+		7161FEB61D61B24900157EE1 /* normalpayment.html in Resources */ = {isa = PBXBuildFile; fileRef = 7161FEB31D61B24900157EE1 /* normalpayment.html */; };
+		7161FEB71D61B24900157EE1 /* orderinfo.html in Resources */ = {isa = PBXBuildFile; fileRef = 7161FEB41D61B24900157EE1 /* orderinfo.html */; };
+		7162A5021C586F5B00AB630E /* AddressEditorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5011C586F5B00AB630E /* AddressEditorViewController.m */; };
+		7162A5091C586FC100AB630E /* CycleScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5041C586FC100AB630E /* CycleScrollView.m */; };
+		7162A50A1C586FC100AB630E /* NSTimer+Addition.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5061C586FC100AB630E /* NSTimer+Addition.m */; };
+		7162A50B1C586FC100AB630E /* SliderPage.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5081C586FC100AB630E /* SliderPage.m */; };
+		7162A5161C58704600AB630E /* BundleModelCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A50D1C58704600AB630E /* BundleModelCell.m */; };
+		7162A5171C58704600AB630E /* BundleModelViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A50F1C58704600AB630E /* BundleModelViewController.m */; };
+		7162A5181C58704600AB630E /* CartViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5111C58704600AB630E /* CartViewController.m */; };
+		7162A5191C58704600AB630E /* EditModelPriceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5131C58704600AB630E /* EditModelPriceViewController.m */; };
+		7162A51A1C58704600AB630E /* ModelItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5151C58704600AB630E /* ModelItemCell.m */; };
+		7162A5251C58706C00AB630E /* CategoryCellSmall.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5201C58706C00AB630E /* CategoryCellSmall.m */; };
+		7162A5261C58706C00AB630E /* CategoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5221C58706C00AB630E /* CategoryViewController.m */; };
+		7162A5411C58719D00AB630E /* RATreeNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A52C1C58719D00AB630E /* RATreeNode.m */; };
+		7162A5421C58719D00AB630E /* RATreeNodeCollectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A52E1C58719D00AB630E /* RATreeNodeCollectionController.m */; };
+		7162A5431C58719D00AB630E /* RATreeNodeInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5301C58719D00AB630E /* RATreeNodeInfo.m */; };
+		7162A5441C58719D00AB630E /* RATreeNodeInfo+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5321C58719D00AB630E /* RATreeNodeInfo+Private.m */; };
+		7162A5451C58719D00AB630E /* RATreeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5341C58719D00AB630E /* RATreeView.m */; };
+		7162A5461C58719D00AB630E /* RATreeView+Enums.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5361C58719D00AB630E /* RATreeView+Enums.m */; };
+		7162A5471C58719D00AB630E /* RATreeView+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5381C58719D00AB630E /* RATreeView+Private.m */; };
+		7162A5481C58719D00AB630E /* RATreeView+TableViewDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A53A1C58719D00AB630E /* RATreeView+TableViewDataSource.m */; };
+		7162A5491C58719D00AB630E /* RATreeView+TableViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A53C1C58719D00AB630E /* RATreeView+TableViewDelegate.m */; };
+		7162A54A1C58719D00AB630E /* RATreeView+UIScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A53E1C58719D00AB630E /* RATreeView+UIScrollView.m */; };
+		7162A54B1C58719D00AB630E /* RAViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5401C58719D00AB630E /* RAViewController.m */; };
+		7162A54E1C58722200AB630E /* CreditCardEditorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A54D1C58722200AB630E /* CreditCardEditorViewController.m */; };
+		7162A55B1C58724700AB630E /* ContactAdvanceSearchViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5501C58724700AB630E /* ContactAdvanceSearchViewController.m */; };
+		7162A55C1C58724700AB630E /* ContactListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5521C58724700AB630E /* ContactListTableViewCell.m */; };
+		7162A55D1C58724700AB630E /* ContactListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5541C58724700AB630E /* ContactListViewController.m */; };
+		7162A55E1C58724700AB630E /* customer_advanced_search.json in Resources */ = {isa = PBXBuildFile; fileRef = 7162A5551C58724700AB630E /* customer_advanced_search.json */; };
+		7162A55F1C58724700AB630E /* customer_info_template.json in Resources */ = {isa = PBXBuildFile; fileRef = 7162A5561C58724700AB630E /* customer_info_template.json */; };
+		7162A5601C58724700AB630E /* CustomerEditViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5581C58724700AB630E /* CustomerEditViewController.m */; };
+		7162A5611C58724700AB630E /* CustomerInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A55A1C58724700AB630E /* CustomerInfoViewController.m */; };
+		7162A5701C58728D00AB630E /* DetailHeaderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5631C58728D00AB630E /* DetailHeaderCell.m */; };
+		7162A5711C58728D00AB630E /* DetailImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5651C58728D00AB630E /* DetailImageCell.m */; };
+		7162A5721C58728D00AB630E /* DetailKVCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5671C58728D00AB630E /* DetailKVCell.m */; };
+		7162A5731C58728D00AB630E /* DetailTopicCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5691C58728D00AB630E /* DetailTopicCell.m */; };
+		7162A5741C58728D00AB630E /* DetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A56B1C58728D00AB630E /* DetailViewController.m */; };
+		7162A5751C58728D00AB630E /* LineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A56D1C58728D00AB630E /* LineView.m */; };
+		7162A5811C5872EF00AB630E /* HomeTableViewCellBanner.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5781C5872EF00AB630E /* HomeTableViewCellBanner.m */; };
+		7162A5821C5872EF00AB630E /* HomeTableViewCellButtonBanner.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A57A1C5872EF00AB630E /* HomeTableViewCellButtonBanner.m */; };
+		7162A5831C5872EF00AB630E /* HomeTableViewCellSlide.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A57C1C5872EF00AB630E /* HomeTableViewCellSlide.m */; };
+		7162A5841C5872EF00AB630E /* HomeTableViewCellTopic.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A57E1C5872EF00AB630E /* HomeTableViewCellTopic.m */; };
+		7162A5851C5872EF00AB630E /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5801C5872EF00AB630E /* HomeViewController.m */; };
+		7162A5981C58733400AB630E /* CreateOrderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5871C58733400AB630E /* CreateOrderViewController.m */; };
+		7162A5991C58733400AB630E /* OrderDetailHtmlCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5891C58733400AB630E /* OrderDetailHtmlCell.m */; };
+		7162A59A1C58733400AB630E /* OrderDetailInfoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A58B1C58733400AB630E /* OrderDetailInfoCell.m */; };
+		7162A59B1C58733400AB630E /* OrderDetailModelCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A58D1C58733400AB630E /* OrderDetailModelCell.m */; };
+		7162A59C1C58733400AB630E /* OrderDetailPriceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A58F1C58733400AB630E /* OrderDetailPriceCell.m */; };
+		7162A59D1C58733400AB630E /* OrderDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5911C58733400AB630E /* OrderDetailViewController.m */; };
+		7162A59E1C58733400AB630E /* OrderListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5931C58733400AB630E /* OrderListTableViewCell.m */; };
+		7162A59F1C58733400AB630E /* OrderListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5951C58733400AB630E /* OrderListViewController.m */; };
+		7162A5A01C58733400AB630E /* status_filter_cadedate_open.json in Resources */ = {isa = PBXBuildFile; fileRef = 7162A5961C58733400AB630E /* status_filter_cadedate_open.json */; };
+		7162A5A11C58733400AB630E /* offline_status_filter_cadedate.json in Resources */ = {isa = PBXBuildFile; fileRef = 7162A5971C58733400AB630E /* offline_status_filter_cadedate.json */; };
+		7162A5AC1C58735900AB630E /* PortfolioViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5A71C58735900AB630E /* PortfolioViewController.m */; };
+		7162A5AD1C58735900AB630E /* TearSheetParamViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5A91C58735900AB630E /* TearSheetParamViewController.m */; };
+		7162A5B41C58738600AB630E /* ScannerControllerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5AF1C58738600AB630E /* ScannerControllerView.m */; };
+		7162A5B51C58738600AB630E /* ScannerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5B11C58738600AB630E /* ScannerViewController.m */; };
+		7162A5B61C58738600AB630E /* SCShapeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5B31C58738600AB630E /* SCShapeView.m */; };
+		7162A5C11C5873BB00AB630E /* FilterCellCadedate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5B81C5873BB00AB630E /* FilterCellCadedate.m */; };
+		7162A5C21C5873BB00AB630E /* FilterCellValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5BA1C5873BB00AB630E /* FilterCellValue.m */; };
+		7162A5C31C5873BB00AB630E /* ItemSearchFilterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5BC1C5873BB00AB630E /* ItemSearchFilterViewController.m */; };
+		7162A5C41C5873BB00AB630E /* ItemSearchViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5BE1C5873BB00AB630E /* ItemSearchViewController.m */; };
+		7162A5C51C5873BB00AB630E /* SearchViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5C01C5873BB00AB630E /* SearchViewController.m */; };
+		7162A5CA1C58761500AB630E /* SignatureView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5C71C58761500AB630E /* SignatureView.m */; };
+		7162A5CB1C58761500AB630E /* SignatureViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5C91C58761500AB630E /* SignatureViewController.m */; };
+		7162A5DA1C5876E300AB630E /* AboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5CD1C5876E300AB630E /* AboutViewController.m */; };
+		7162A5DB1C5876E300AB630E /* CacheViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5CF1C5876E300AB630E /* CacheViewController.m */; };
+		7162A5DC1C5876E300AB630E /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5D11C5876E300AB630E /* LoginViewController.m */; };
+		7162A5DD1C5876E300AB630E /* PopupNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5D31C5876E300AB630E /* PopupNavigationController.m */; };
+		7162A5DE1C5876E300AB630E /* RetrievePassViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5D51C5876E300AB630E /* RetrievePassViewController.m */; };
+		7162A5DF1C5876E300AB630E /* ScannerSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5D71C5876E300AB630E /* ScannerSettingViewController.m */; };
+		7162A5E01C5876E300AB630E /* SettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5D91C5876E300AB630E /* SettingViewController.m */; };
+		7162A5E31C5877CE00AB630E /* WatchListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5E21C5877CE00AB630E /* WatchListViewController.m */; };
+		7162A5E61C58781000AB630E /* iSalesNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7162A5E51C58781000AB630E /* iSalesNavigationController.m */; };
+		7165662E1EF3ACD900CB897F /* photostack_image.html in Resources */ = {isa = PBXBuildFile; fileRef = 7165662C1EF3ACD900CB897F /* photostack_image.html */; };
+		7165662F1EF3ACD900CB897F /* photostack_video.html in Resources */ = {isa = PBXBuildFile; fileRef = 7165662D1EF3ACD900CB897F /* photostack_video.html */; };
+		716961B519594E1000B19FB4 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 716961B419594E1000B19FB4 /* libsqlite3.dylib */; };
+		716AF8E11D7AA0E0001188E0 /* SelectUploadOrderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 716AF8E01D7AA0E0001188E0 /* SelectUploadOrderViewController.m */; };
+		716AF8E71D7AA398001188E0 /* SelectOrderTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 716AF8E51D7AA398001188E0 /* SelectOrderTableViewCell.m */; };
+		7186C25D1C97A6EE00CB43F4 /* FunctionTestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7186C25C1C97A6EE00CB43F4 /* FunctionTestViewController.m */; };
+		718716251C433D8B00F25860 /* ExternalAccessory.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716241C433D8B00F25860 /* ExternalAccessory.framework */; };
+		718716271C433D9700F25860 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716261C433D9700F25860 /* AudioToolbox.framework */; };
+		718716291C433DA400F25860 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716281C433DA400F25860 /* AVFoundation.framework */; };
+		7187162C1C43428100F25860 /* libScanApiCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716221C433D5000F25860 /* libScanApiCore.a */; };
+		7195623C1CF57D1800C74A49 /* CategoryHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7195623B1CF57D1800C74A49 /* CategoryHeaderView.m */; };
+		71BBA2271CEAC16000C91DED /* ZipArchive.mm in Sources */ = {isa = PBXBuildFile; fileRef = 71BBA2221CEAC16000C91DED /* ZipArchive.mm */; };
+		71BBA2291CEAC17E00C91DED /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 71BBA2281CEAC17E00C91DED /* libz.tbd */; };
+		71BBA2401CEAEF0700C91DED /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 71BBA2381CEAEF0700C91DED /* ioapi.c */; };
+		71BBA2411CEAEF0700C91DED /* mztools.c in Sources */ = {isa = PBXBuildFile; fileRef = 71BBA23A1CEAEF0700C91DED /* mztools.c */; };
+		71BBA2421CEAEF0700C91DED /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 71BBA23C1CEAEF0700C91DED /* unzip.c */; settings = {COMPILER_FLAGS = "-Wno-dangling-else"; }; };
+		71BBA2431CEAEF0700C91DED /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 71BBA23E1CEAEF0700C91DED /* zip.c */; };
+		71BF06FB1D2F3CAC00981938 /* OLDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 71BF06FA1D2F3CAC00981938 /* OLDataProvider.m */; };
+		71BF06FE1D2F3CBA00981938 /* OfflineSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71BF06FD1D2F3CBA00981938 /* OfflineSettingViewController.m */; };
+		71BF07081D2F3D2800981938 /* SyncControlPanelViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71BF07071D2F3D2800981938 /* SyncControlPanelViewController.m */; };
+		71C1D84E1F456CAA00CEA1C9 /* HWWeakTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 71C1D84D1F456CAA00CEA1C9 /* HWWeakTimer.m */; };
+		71C1D8541F456D2700CEA1C9 /* ModelDescriptionController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71C1D8531F456D2700CEA1C9 /* ModelDescriptionController.m */; };
+		71CB70751F99DF02009FDCB7 /* FileCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 71CB70731F99DF01009FDCB7 /* FileCache.m */; };
+		71CB70781F99E338009FDCB7 /* RAConvertor.m in Sources */ = {isa = PBXBuildFile; fileRef = 71CB70771F99E338009FDCB7 /* RAConvertor.m */; };
+		71D01ADD1E08CB1C006620CE /* signature.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 71D01ADC1E08CB1C006620CE /* signature.storyboard */; };
+		71D01B1A1E0A2055006620CE /* ImageUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 71D01B151E0A2055006620CE /* ImageUtils.m */; };
+		71D01B1B1E0A2055006620CE /* PDFUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 71D01B171E0A2055006620CE /* PDFUtils.m */; };
+		71D01B1C1E0A2055006620CE /* TextUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 71D01B191E0A2055006620CE /* TextUtils.m */; };
+		71D0344F1C9BF3C400E0F7AD /* PortfolioEditQTYViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71D0344E1C9BF3C400E0F7AD /* PortfolioEditQTYViewController.m */; };
+		71D30A211CFBEDC6006F9477 /* default_appearance.json in Resources */ = {isa = PBXBuildFile; fileRef = 71D30A201CFBEDC6006F9477 /* default_appearance.json */; };
+		71D30A2D1CFC0EF8006F9477 /* DefaultImageButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 71D30A2C1CFC0EF8006F9477 /* DefaultImageButton.m */; };
+		71DEE874192DE003003F645F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71DEE873192DE003003F645F /* QuartzCore.framework */; };
+		71DEE876192DE00E003F645F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71DEE875192DE00E003F645F /* Accelerate.framework */; };
+		71DF742B1C57560600F2789C /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF742A1C57560600F2789C /* Reachability.m */; };
+		71DF74341C5757DA00F2789C /* ActiveViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74331C5757DA00F2789C /* ActiveViewController.m */; };
+		71DF74831C57608F00F2789C /* ImageScrollerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF746C1C57608F00F2789C /* ImageScrollerView.m */; };
+		71DF74841C57608F00F2789C /* ImageScrollerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF746E1C57608F00F2789C /* ImageScrollerViewController.m */; };
+		71DF74851C57608F00F2789C /* ImageUploadViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74701C57608F00F2789C /* ImageUploadViewController.m */; };
+		71DF74861C57608F00F2789C /* ImageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74721C57608F00F2789C /* ImageViewController.m */; };
+		71DF74871C57608F00F2789C /* NIDropDown.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74741C57608F00F2789C /* NIDropDown.m */; };
+		71DF74881C57608F00F2789C /* PulldownMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74761C57608F00F2789C /* PulldownMenu.m */; };
+		71DF74891C57608F00F2789C /* RadioButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74781C57608F00F2789C /* RadioButton.m */; };
+		71DF748B1C57608F00F2789C /* SimpleGrid.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF747C1C57608F00F2789C /* SimpleGrid.m */; };
+		71DF748D1C57608F00F2789C /* TouchLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74801C57608F00F2789C /* TouchLabel.m */; };
+		71DF748E1C57608F00F2789C /* UILabel+FontAppearance.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74821C57608F00F2789C /* UILabel+FontAppearance.m */; };
+		71DF74951C57614C00F2789C /* PhotoBorder.png in Resources */ = {isa = PBXBuildFile; fileRef = 71DF748F1C57614C00F2789C /* PhotoBorder.png */; };
+		71DF74961C57614C00F2789C /* PhotoBorder@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 71DF74901C57614C00F2789C /* PhotoBorder@2x.png */; };
+		71DF74971C57614C00F2789C /* PhotoStackView.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74921C57614C00F2789C /* PhotoStackView.m */; };
+		71DF74981C57614C00F2789C /* PhotoStackViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74941C57614C00F2789C /* PhotoStackViewController.m */; };
+		71E5A0101DC99370005BF655 /* config.plist in Resources */ = {isa = PBXBuildFile; fileRef = 71E5A00F1DC99370005BF655 /* config.plist */; };
+		71E9F6BC1F8B52DD0052C78E /* NetworkUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E9F6BA1F8B52DC0052C78E /* NetworkUtils.m */; };
+		71E9F6C21F8B57E40052C78E /* RANetworkTaskDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E9F6C01F8B57E30052C78E /* RANetworkTaskDelegate.m */; };
+		71FFBBE91C60894900D91DC2 /* iSalesDB.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE61C60894900D91DC2 /* iSalesDB.m */; };
+		71FFBBEA1C60894900D91DC2 /* RANetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE81C60894900D91DC2 /* RANetwork.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		3C2F99B6237BE1790000808F /* PortfolioListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PortfolioListTableViewCell.m; path = common/Functions/portfolio/PortfolioListTableViewCell.m; sourceTree = SOURCE_ROOT; };
+		3C2F99B7237BE1790000808F /* PortfolioListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PortfolioListTableViewCell.h; path = common/Functions/portfolio/PortfolioListTableViewCell.h; sourceTree = SOURCE_ROOT; };
+		3C473C8F27C4D22900CC8C12 /* ScanUserListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScanUserListViewController.h; sourceTree = "<group>"; };
+		3C473C9027C4D22900CC8C12 /* ScanUserListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScanUserListViewController.m; sourceTree = "<group>"; };
+		3C4DA61527B4E95C001EB44E /* HMLG Scan Order-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "HMLG Scan Order-Info.plist"; sourceTree = "<group>"; };
+		3C4DA61E27B50199001EB44E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+		3C4DA62327B503B1001EB44E /* MainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainViewController.m; sourceTree = "<group>"; };
+		3C4DA62427B503B1001EB44E /* MainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainViewController.h; sourceTree = "<group>"; };
+		3C51492D273CF9B900F78617 /* DBUtil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DBUtil.h; path = common/DBUtil.h; sourceTree = SOURCE_ROOT; };
+		3C51492E273CF9B900F78617 /* DBUtil.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = DBUtil.m; path = common/DBUtil.m; sourceTree = SOURCE_ROOT; };
+		3C514930273D092A00F78617 /* EnumSelectViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EnumSelectViewController.h; path = ../../common/customUI/commoneditor/EnumSelectViewController.h; sourceTree = "<group>"; };
+		3C514931273D092A00F78617 /* EnumSelectViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EnumSelectViewController.m; path = ../../common/customUI/commoneditor/EnumSelectViewController.m; sourceTree = "<group>"; };
+		3C514933273D095800F78617 /* CommonEditorCellEdit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorCellEdit.h; path = ../../common/customUI/commoneditor/CommonEditorCellEdit.h; sourceTree = "<group>"; };
+		3C514934273D095800F78617 /* CommonEditorCellSwitch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorCellSwitch.m; path = ../../common/customUI/commoneditor/CommonEditorCellSwitch.m; sourceTree = "<group>"; };
+		3C514935273D095800F78617 /* CommonEditorCellTextView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorCellTextView.m; path = ../../common/customUI/commoneditor/CommonEditorCellTextView.m; sourceTree = "<group>"; };
+		3C514936273D095800F78617 /* CommonEditorCellSwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorCellSwitch.h; path = ../../common/customUI/commoneditor/CommonEditorCellSwitch.h; sourceTree = "<group>"; };
+		3C514937273D095800F78617 /* CommonEditorCellLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorCellLabel.h; path = ../../common/customUI/commoneditor/CommonEditorCellLabel.h; sourceTree = "<group>"; };
+		3C514938273D095800F78617 /* CommonEditorCellSignature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorCellSignature.h; path = ../../common/customUI/commoneditor/CommonEditorCellSignature.h; sourceTree = "<group>"; };
+		3C514939273D095800F78617 /* CommonEditorCellEnum.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorCellEnum.m; path = ../../common/customUI/commoneditor/CommonEditorCellEnum.m; sourceTree = "<group>"; };
+		3C51493A273D095900F78617 /* CommonEditorCellEdit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorCellEdit.m; path = ../../common/customUI/commoneditor/CommonEditorCellEdit.m; sourceTree = "<group>"; };
+		3C51493B273D095900F78617 /* CommonEditorCellMAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorCellMAction.h; path = ../../common/customUI/commoneditor/CommonEditorCellMAction.h; sourceTree = "<group>"; };
+		3C51493C273D095900F78617 /* CommonEditorCellLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorCellLabel.m; path = ../../common/customUI/commoneditor/CommonEditorCellLabel.m; sourceTree = "<group>"; };
+		3C51493D273D095900F78617 /* CommonEditorCellMAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorCellMAction.m; path = ../../common/customUI/commoneditor/CommonEditorCellMAction.m; sourceTree = "<group>"; };
+		3C51493E273D095900F78617 /* CommonEditorCellSignature.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorCellSignature.m; path = ../../common/customUI/commoneditor/CommonEditorCellSignature.m; sourceTree = "<group>"; };
+		3C51493F273D095900F78617 /* CommonEditorCellImg.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorCellImg.m; path = ../../common/customUI/commoneditor/CommonEditorCellImg.m; sourceTree = "<group>"; };
+		3C514940273D095900F78617 /* CommonEditorCellModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorCellModel.h; path = ../../common/customUI/commoneditor/CommonEditorCellModel.h; sourceTree = "<group>"; };
+		3C514941273D095900F78617 /* CommonEditorCellAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorCellAction.h; path = ../../common/customUI/commoneditor/CommonEditorCellAction.h; sourceTree = "<group>"; };
+		3C514942273D095900F78617 /* CommonEditorCellEnum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorCellEnum.h; path = ../../common/customUI/commoneditor/CommonEditorCellEnum.h; sourceTree = "<group>"; };
+		3C514943273D095900F78617 /* CommonEditorCellImg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorCellImg.h; path = ../../common/customUI/commoneditor/CommonEditorCellImg.h; sourceTree = "<group>"; };
+		3C514944273D095900F78617 /* CommonEditorCellAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorCellAction.m; path = ../../common/customUI/commoneditor/CommonEditorCellAction.m; sourceTree = "<group>"; };
+		3C514945273D095900F78617 /* CommonEditorCellModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorCellModel.m; path = ../../common/customUI/commoneditor/CommonEditorCellModel.m; sourceTree = "<group>"; };
+		3C514946273D095900F78617 /* CommonEditorCellTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorCellTextView.h; path = ../../common/customUI/commoneditor/CommonEditorCellTextView.h; sourceTree = "<group>"; };
+		3C514951273D096A00F78617 /* CommonEditorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorViewController.m; path = ../../common/customUI/commoneditor/CommonEditorViewController.m; sourceTree = "<group>"; };
+		3C514952273D096A00F78617 /* CommonEditorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorViewController.h; path = ../../common/customUI/commoneditor/CommonEditorViewController.h; sourceTree = "<group>"; };
+		3C514954273D097E00F78617 /* CommonEditorTableContainerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorTableContainerView.h; path = ../../common/customUI/commoneditor/CommonEditorTableContainerView.h; sourceTree = "<group>"; };
+		3C514955273D097E00F78617 /* CommonEditorTableContainerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorTableContainerView.m; path = ../../common/customUI/commoneditor/CommonEditorTableContainerView.m; sourceTree = "<group>"; };
+		3C514957273D098700F78617 /* DatePickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DatePickerViewController.h; path = ../../common/customUI/commoneditor/DatePickerViewController.h; sourceTree = "<group>"; };
+		3C514958273D098700F78617 /* DatePickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DatePickerViewController.m; path = ../../common/customUI/commoneditor/DatePickerViewController.m; sourceTree = "<group>"; };
+		3C51495A273D099600F78617 /* EnumSelectorCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EnumSelectorCell.h; path = ../../common/customUI/commoneditor/EnumSelectorCell.h; sourceTree = "<group>"; };
+		3C51495B273D099600F78617 /* EnumSelectorCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EnumSelectorCell.m; path = ../../common/customUI/commoneditor/EnumSelectorCell.m; sourceTree = "<group>"; };
+		3C51495D273D09B800F78617 /* MonthPickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MonthPickerViewController.h; path = ../../common/customUI/commoneditor/MonthPickerViewController.h; sourceTree = "<group>"; };
+		3C51495E273D09B800F78617 /* MonthPickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MonthPickerViewController.m; path = ../../common/customUI/commoneditor/MonthPickerViewController.m; sourceTree = "<group>"; };
+		3C514960273D09E700F78617 /* CommonEditor.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = CommonEditor.storyboard; path = ../../common/customUI/commoneditor/CommonEditor.storyboard; sourceTree = "<group>"; };
+		3C514964273D0A2F00F78617 /* SRMonthPicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SRMonthPicker.h; path = ../../common/customUI/commoneditor/SRMonthPicker.h; sourceTree = "<group>"; };
+		3C514965273D0A2F00F78617 /* SRMonthPicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SRMonthPicker.m; path = ../../common/customUI/commoneditor/SRMonthPicker.m; sourceTree = "<group>"; };
+		3C514967273D0B1E00F78617 /* RADataProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RADataProvider.h; path = common/data_provider/RADataProvider.h; sourceTree = SOURCE_ROOT; };
+		3C514968273D0B1E00F78617 /* RADataProvider.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RADataProvider.m; path = common/data_provider/RADataProvider.m; sourceTree = SOURCE_ROOT; };
+		3C514972273E074500F78617 /* CommonEditorCellEditor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorCellEditor.m; path = ../../common/customUI/commoneditor/CommonEditorCellEditor.m; sourceTree = "<group>"; };
+		3C514973273E074500F78617 /* CommonEditorCellEditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorCellEditor.h; path = ../../common/customUI/commoneditor/CommonEditorCellEditor.h; sourceTree = "<group>"; };
+		3C514976273E07D500F78617 /* EnumSelectAndSort.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = EnumSelectAndSort.storyboard; path = ../../common/customUI/commoneditor/EnumSelectAndSort/EnumSelectAndSort.storyboard; sourceTree = "<group>"; };
+		3C514977273E07D500F78617 /* EnumSelectAndSortCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EnumSelectAndSortCell.h; path = ../../common/customUI/commoneditor/EnumSelectAndSort/EnumSelectAndSortCell.h; sourceTree = "<group>"; };
+		3C514978273E07D500F78617 /* EnumModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EnumModel.h; path = ../../common/customUI/commoneditor/EnumSelectAndSort/EnumModel.h; sourceTree = "<group>"; };
+		3C514979273E07D500F78617 /* EnumSelectAndSortViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EnumSelectAndSortViewController.m; path = ../../common/customUI/commoneditor/EnumSelectAndSort/EnumSelectAndSortViewController.m; sourceTree = "<group>"; };
+		3C51497A273E07D500F78617 /* EnumSelectAndSortCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EnumSelectAndSortCell.m; path = ../../common/customUI/commoneditor/EnumSelectAndSort/EnumSelectAndSortCell.m; sourceTree = "<group>"; };
+		3C51497B273E07D500F78617 /* EnumSelectAndSortViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EnumSelectAndSortViewController.h; path = ../../common/customUI/commoneditor/EnumSelectAndSort/EnumSelectAndSortViewController.h; sourceTree = "<group>"; };
+		3C51497C273E07D600F78617 /* EnumModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EnumModel.m; path = ../../common/customUI/commoneditor/EnumSelectAndSort/EnumModel.m; sourceTree = "<group>"; };
+		3C514989273E091500F78617 /* PhotoList.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = PhotoList.storyboard; sourceTree = "<group>"; };
+		3C51498B273E091500F78617 /* ContentPreviewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContentPreviewController.m; sourceTree = "<group>"; };
+		3C51498C273E091500F78617 /* ContentPreviewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentPreviewController.h; sourceTree = "<group>"; };
+		3C51498E273E091500F78617 /* VideoPreviewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoPreviewCell.m; sourceTree = "<group>"; };
+		3C51498F273E091500F78617 /* PhotoPreviewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PhotoPreviewCell.h; sourceTree = "<group>"; };
+		3C514990273E091500F78617 /* PhotoPreviewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PhotoPreviewCell.m; sourceTree = "<group>"; };
+		3C514991273E091500F78617 /* VideoPreviewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoPreviewCell.h; sourceTree = "<group>"; };
+		3C514997273E097B00F78617 /* RAProgressHUD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAProgressHUD.h; sourceTree = "<group>"; };
+		3C514998273E097B00F78617 /* RAProgressHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAProgressHUD.m; sourceTree = "<group>"; };
+		3C51499A273E0B6400F78617 /* common_const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = common_const.h; path = ../../common/common_const.h; sourceTree = "<group>"; };
+		3C51E7BB27B2599E00E61163 /* ScanOrderListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ScanOrderListViewController.h; path = common/Functions/OLO/ScanOrderListViewController.h; sourceTree = SOURCE_ROOT; };
+		3C51E7BC27B2599E00E61163 /* ScanOrderListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = ScanOrderListViewController.m; path = common/Functions/OLO/ScanOrderListViewController.m; sourceTree = SOURCE_ROOT; };
+		3C51E7C227B261EC00E61163 /* RANetworkTaskDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RANetworkTaskDelegate.m; sourceTree = "<group>"; };
+		3C51E7C327B261EC00E61163 /* RAUploadOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAUploadOperation.m; sourceTree = "<group>"; };
+		3C51E7C427B261EC00E61163 /* RAUploadManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAUploadManager.h; sourceTree = "<group>"; };
+		3C51E7C527B261EC00E61163 /* RAUploadListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAUploadListViewController.m; sourceTree = "<group>"; };
+		3C51E7C627B261EC00E61163 /* RANetworkTaskDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RANetworkTaskDelegate.h; sourceTree = "<group>"; };
+		3C51E7C727B261EC00E61163 /* RAUploadOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAUploadOperation.h; sourceTree = "<group>"; };
+		3C51E7C827B261EC00E61163 /* RAUploadManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAUploadManager.m; sourceTree = "<group>"; };
+		3C51E7C927B261EC00E61163 /* RAUploadListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAUploadListViewController.h; sourceTree = "<group>"; };
+		3C51E7CE27B2623700E61163 /* UploadCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UploadCell.h; sourceTree = "<group>"; };
+		3C51E7CF27B2623700E61163 /* UploadCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UploadCell.m; sourceTree = "<group>"; };
+		3C51E7D127B2628900E61163 /* UIView+Toast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIView+Toast.h"; path = "../../common/customUI/UIView+Toast.h"; sourceTree = "<group>"; };
+		3C51E7D227B2628900E61163 /* UIView+Toast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIView+Toast.m"; path = "../../common/customUI/UIView+Toast.m"; sourceTree = "<group>"; };
+		3C68314A239607B500AD5BD7 /* ytplayer.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = ytplayer.html; path = ../../common/Youtube/ytplayer.html; sourceTree = "<group>"; };
+		3C68314B239607B500AD5BD7 /* RAYTPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAYTPlayer.m; path = ../../common/Youtube/RAYTPlayer.m; sourceTree = "<group>"; };
+		3C68314C239607B500AD5BD7 /* RAYTPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RAYTPlayer.h; path = ../../common/Youtube/RAYTPlayer.h; sourceTree = "<group>"; };
+		3C68314F2396082700AD5BD7 /* ERP_Mobile_Discard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = ERP_Mobile_Discard.storyboard; path = common/ERP_Mobile_Discard.storyboard; sourceTree = SOURCE_ROOT; };
+		3C6831502396082700AD5BD7 /* ERP_Mobile_Cart.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = ERP_Mobile_Cart.storyboard; path = common/ERP_Mobile_Cart.storyboard; sourceTree = SOURCE_ROOT; };
+		3C6831512396082700AD5BD7 /* ERP_Mobile_Model.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = ERP_Mobile_Model.storyboard; path = common/ERP_Mobile_Model.storyboard; sourceTree = SOURCE_ROOT; };
+		3C6831522396082700AD5BD7 /* ERP_Mobile_Search.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = ERP_Mobile_Search.storyboard; path = common/ERP_Mobile_Search.storyboard; sourceTree = SOURCE_ROOT; };
+		3C6831532396082700AD5BD7 /* ERP_Mobile_Contact.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = ERP_Mobile_Contact.storyboard; path = common/ERP_Mobile_Contact.storyboard; sourceTree = SOURCE_ROOT; };
+		3C6831542396082800AD5BD7 /* ERP_Mobile_Order.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = ERP_Mobile_Order.storyboard; path = common/ERP_Mobile_Order.storyboard; sourceTree = SOURCE_ROOT; };
+		3C6831552396082800AD5BD7 /* ERP_Mobile_Portfolio.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = ERP_Mobile_Portfolio.storyboard; path = common/ERP_Mobile_Portfolio.storyboard; sourceTree = SOURCE_ROOT; };
+		3C68315D2396094100AD5BD7 /* iPadCommonEditorCellImg.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellImg.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellImg.xib; sourceTree = "<group>"; };
+		3C68315E2396094100AD5BD7 /* CommonEditor.iPad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CommonEditor.iPad.xib; path = ../../common/customUI/CommonEditoriPad/CommonEditor.iPad.xib; sourceTree = "<group>"; };
+		3C68315F2396094200AD5BD7 /* iPadCommonEditorCellLabel.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellLabel.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellLabel.xib; sourceTree = "<group>"; };
+		3C6831602396094200AD5BD7 /* iPadCommonEditorCellSwitch.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellSwitch.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellSwitch.xib; sourceTree = "<group>"; };
+		3C6831612396094200AD5BD7 /* iPadCommonEditorCellEnum.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellEnum.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellEnum.xib; sourceTree = "<group>"; };
+		3C6831622396094200AD5BD7 /* iPadCommonEditorCellTextView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellTextView.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellTextView.xib; sourceTree = "<group>"; };
+		3C6831632396094200AD5BD7 /* iPadCommonEditorCellAction.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellAction.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellAction.xib; sourceTree = "<group>"; };
+		3C6831642396094200AD5BD7 /* iPadCommonEditorCellModel.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellModel.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellModel.xib; sourceTree = "<group>"; };
+		3C6831652396094200AD5BD7 /* iPadCommonEditorCellMAction.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellMAction.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellMAction.xib; sourceTree = "<group>"; };
+		3C6831662396094200AD5BD7 /* iPadCommonEditorCellSignature.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellSignature.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellSignature.xib; sourceTree = "<group>"; };
+		3C6831672396094200AD5BD7 /* iPadCommonEditorCellEdit.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellEdit.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellEdit.xib; sourceTree = "<group>"; };
+		3C69617D23C7156D0075172A /* RAPDFViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RAPDFViewController.h; path = "../../common/WK PDF+Web/RAPDFViewController.h"; sourceTree = "<group>"; };
+		3C69617E23C7156D0075172A /* RAPDFViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAPDFViewController.m; path = "../../common/WK PDF+Web/RAPDFViewController.m"; sourceTree = "<group>"; };
+		3C69617F23C7156D0075172A /* WebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WebViewController.m; path = "../../common/WK PDF+Web/WebViewController.m"; sourceTree = "<group>"; };
+		3C69618023C7156D0075172A /* wkweb.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = wkweb.storyboard; path = "../../common/WK PDF+Web/wkweb.storyboard"; sourceTree = "<group>"; };
+		3C69618123C7156D0075172A /* WebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebViewController.h; path = "../../common/WK PDF+Web/WebViewController.h"; sourceTree = "<group>"; };
+		3C7E5A8C237BDB0C006D0105 /* PortfolioListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PortfolioListViewController.m; path = common/Functions/portfolio/PortfolioListViewController.m; sourceTree = SOURCE_ROOT; };
+		3C7E5A8D237BDB0C006D0105 /* PortfolioListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PortfolioListViewController.h; path = common/Functions/portfolio/PortfolioListViewController.h; sourceTree = SOURCE_ROOT; };
+		3C872A1D27955CF300BE1FC8 /* scan_cart.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = scan_cart.json; path = common/Functions/OLO/scan_cart.json; sourceTree = SOURCE_ROOT; };
+		3C872A252797FE7C00BE1FC8 /* scan_order.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = scan_order.json; path = common/Functions/OLO/scan_order.json; sourceTree = SOURCE_ROOT; };
+		3CC1122A279163F4004ACA57 /* offline_order_new_contact.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = offline_order_new_contact.json; path = common/Functions/contact/offline_order_new_contact.json; sourceTree = SOURCE_ROOT; };
+		3CDDB25A273A564200681F78 /* DefaultTableHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DefaultTableHeaderView.m; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.m; sourceTree = "<group>"; };
+		3CDDB25B273A564200681F78 /* DefaultTableHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DefaultTableHeaderView.h; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.h; sourceTree = "<group>"; };
+		3CDDB25F273A597B00681F78 /* const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = const.h; path = common/const.h; sourceTree = SOURCE_ROOT; };
+		3CDDB260273A59DF00681F78 /* TouchImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TouchImageView.m; path = ../../common/customUI/TouchImageView.m; sourceTree = "<group>"; };
+		3CDDB261273A59DF00681F78 /* TouchImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TouchImageView.h; path = ../../common/customUI/TouchImageView.h; sourceTree = "<group>"; };
+		3CDDB263273A59EF00681F78 /* RTLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RTLabel.h; path = ../../common/customUI/RTLabel.h; sourceTree = "<group>"; };
+		3CDDB264273A59EF00681F78 /* RTLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RTLabel.m; path = ../../common/customUI/RTLabel.m; sourceTree = "<group>"; };
+		3CDDB266273A5A0400681F78 /* StrikethroughLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StrikethroughLabel.h; path = ../../common/customUI/StrikethroughLabel.h; sourceTree = "<group>"; };
+		3CDDB267273A5A0400681F78 /* StrikethroughLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StrikethroughLabel.m; path = ../../common/customUI/StrikethroughLabel.m; sourceTree = "<group>"; };
+		3CDDB269273A5A1400681F78 /* CustomIOSAlertView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CustomIOSAlertView.m; path = ../../common/customUI/CustomIOSAlertView.m; sourceTree = "<group>"; };
+		3CDDB26A273A5A1500681F78 /* CustomIOSAlertView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CustomIOSAlertView.h; path = ../../common/customUI/CustomIOSAlertView.h; sourceTree = "<group>"; };
+		3CDDB26C273A5A7800681F78 /* RAUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAUtils.m; path = ../../common/RAUtils.m; sourceTree = "<group>"; };
+		3CDDB26D273A5A7800681F78 /* RAUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RAUtils.h; path = ../../common/RAUtils.h; sourceTree = "<group>"; };
+		3CF33C8927BF4936001CBEEC /* ServerSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerSettingViewController.h; sourceTree = "<group>"; };
+		3CF33C8A27BF4936001CBEEC /* ServerSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerSettingViewController.m; sourceTree = "<group>"; };
+		3CF33C8C27BF4A3D001CBEEC /* RAQRCodeScannerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAQRCodeScannerViewController.m; sourceTree = "<group>"; };
+		3CF33C8D27BF4A3D001CBEEC /* RAQRCodeScannerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAQRCodeScannerViewController.h; sourceTree = "<group>"; };
+		3CF33C8E27BF4A3D001CBEEC /* QRCode.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = QRCode.storyboard; sourceTree = "<group>"; };
+		423CC87421D22FDE008BD2C4 /* Launch Screen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = SOURCE_ROOT; };
+		424A02CF1FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RABackOrderSubmitAlertController.h; path = common/Functions/order/RABackOrderSubmitAlertController.h; sourceTree = SOURCE_ROOT; };
+		424A02D01FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RABackOrderSubmitAlertController.m; path = common/Functions/order/RABackOrderSubmitAlertController.m; sourceTree = SOURCE_ROOT; };
+		4254CCDC1FB1AC2B00C8B4B6 /* RAOrderEditorViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RAOrderEditorViewController.h; path = common/Functions/order/RAOrderEditorViewController.h; sourceTree = SOURCE_ROOT; };
+		4254CCDD1FB1AC2B00C8B4B6 /* RAOrderEditorViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RAOrderEditorViewController.m; path = common/Functions/order/RAOrderEditorViewController.m; sourceTree = SOURCE_ROOT; };
+		428980021E2490C1005F1BD8 /* NotificationNameCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NotificationNameCenter.h; path = common/NotificationNameCenter.h; sourceTree = SOURCE_ROOT; };
+		428980031E2490C1005F1BD8 /* NotificationNameCenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NotificationNameCenter.m; path = common/NotificationNameCenter.m; sourceTree = SOURCE_ROOT; };
+		428980081E24918F005F1BD8 /* CartUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CartUtils.h; path = common/CartUtils.h; sourceTree = SOURCE_ROOT; };
+		428980091E24918F005F1BD8 /* CartUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CartUtils.m; path = common/CartUtils.m; sourceTree = SOURCE_ROOT; };
+		4289800F1E24924D005F1BD8 /* SortButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SortButton.h; sourceTree = "<group>"; };
+		428980101E24924D005F1BD8 /* SortButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SortButton.m; sourceTree = "<group>"; };
+		428980111E24924D005F1BD8 /* SortItemCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SortItemCell.h; sourceTree = "<group>"; };
+		428980121E24924D005F1BD8 /* SortItemCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SortItemCell.m; sourceTree = "<group>"; };
+		428980131E24924D005F1BD8 /* SortItemViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SortItemViewController.h; sourceTree = "<group>"; };
+		428980141E24924D005F1BD8 /* SortItemViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SortItemViewController.m; sourceTree = "<group>"; };
+		428980231E2492D2005F1BD8 /* CategoryPriceCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CategoryPriceCell.h; sourceTree = "<group>"; };
+		428980241E2492D2005F1BD8 /* CategoryPriceCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CategoryPriceCell.m; sourceTree = "<group>"; };
+		428980251E2492D2005F1BD8 /* CategoryPriceViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CategoryPriceViewController.h; sourceTree = "<group>"; };
+		428980261E2492D2005F1BD8 /* CategoryPriceViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CategoryPriceViewController.m; sourceTree = "<group>"; };
+		428980271E2492D2005F1BD8 /* PriceSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PriceSettingViewController.h; sourceTree = "<group>"; };
+		428980281E2492D2005F1BD8 /* PriceSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PriceSettingViewController.m; sourceTree = "<group>"; };
+		428980291E2492D2005F1BD8 /* SetCategoryPriceController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SetCategoryPriceController.h; sourceTree = "<group>"; };
+		4289802A1E2492D2005F1BD8 /* SetCategoryPriceController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SetCategoryPriceController.m; sourceTree = "<group>"; };
+		4289803D1E249339005F1BD8 /* JKDotView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JKDotView.h; sourceTree = "<group>"; };
+		4289803E1E249339005F1BD8 /* JKDotView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JKDotView.m; sourceTree = "<group>"; };
+		4289803F1E249339005F1BD8 /* JKLockButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JKLockButton.h; sourceTree = "<group>"; };
+		428980401E249339005F1BD8 /* JKLockButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JKLockButton.m; sourceTree = "<group>"; };
+		428980411E249339005F1BD8 /* JKLockController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JKLockController.h; sourceTree = "<group>"; };
+		428980421E249339005F1BD8 /* JKLockController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JKLockController.m; sourceTree = "<group>"; };
+		428980431E249339005F1BD8 /* JKMessageBoxController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JKMessageBoxController.h; sourceTree = "<group>"; };
+		428980441E249339005F1BD8 /* JKMessageBoxController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JKMessageBoxController.m; sourceTree = "<group>"; };
+		4289805B1E249375005F1BD8 /* UIColor+JK_HEX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIColor+JK_HEX.h"; sourceTree = "<group>"; };
+		4289805C1E249375005F1BD8 /* UIColor+JK_HEX.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+JK_HEX.m"; sourceTree = "<group>"; };
+		428980701E24B1E9005F1BD8 /* RASingleton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RASingleton.h; path = common/RASingleton.h; sourceTree = SOURCE_ROOT; };
+		428980711E24B1E9005F1BD8 /* RASingleton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RASingleton.m; path = common/RASingleton.m; sourceTree = SOURCE_ROOT; };
+		4289809C1E24B526005F1BD8 /* JKTimerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JKTimerManager.h; sourceTree = "<group>"; };
+		4289809D1E24B526005F1BD8 /* JKTimerManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JKTimerManager.m; sourceTree = "<group>"; };
+		4295AE191FE74D46007BE365 /* CommonEditorAutoCompleteView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommonEditorAutoCompleteView.h; path = ../../common/customUI/commoneditor/CommonEditorAutoCompleteView.h; sourceTree = "<group>"; };
+		4295AE1A1FE74D46007BE365 /* CommonEditorAutoCompleteView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorAutoCompleteView.m; path = ../../common/customUI/commoneditor/CommonEditorAutoCompleteView.m; sourceTree = "<group>"; };
+		4295AE1B1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CommonEditorAutoCompleteView.xib; path = ../../common/customUI/commoneditor/CommonEditorAutoCompleteView.xib; sourceTree = "<group>"; };
+		42B309781E45BA32007AFC62 /* status_filter_cadedate_po.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = status_filter_cadedate_po.json; path = common/Functions/order/status_filter_cadedate_po.json; sourceTree = SOURCE_ROOT; };
+		42BEF3241E89FE1100632AB6 /* FirebaseAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseAnalytics.framework; sourceTree = "<group>"; };
+		42BEF3271E89FE1100632AB6 /* FirebaseCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseCore.framework; sourceTree = "<group>"; };
+		42BEF3291E89FE1100632AB6 /* CHANGELOG.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = "<group>"; };
+		42BEF32B1E89FE1100632AB6 /* FirebaseInstanceID.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseInstanceID.framework; sourceTree = "<group>"; };
+		42BEF32C1E89FE1100632AB6 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
+		42BEF32F1E89FE1100632AB6 /* GGLAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GGLAnalytics.framework; sourceTree = "<group>"; };
+		42BEF3301E89FE1100632AB6 /* GGLCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GGLCore.framework; sourceTree = "<group>"; };
+		42BEF3321E89FE1100632AB6 /* Analytics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Analytics.h; sourceTree = "<group>"; };
+		42BEF3331E89FE1100632AB6 /* Core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Core.h; sourceTree = "<group>"; };
+		42BEF3341E89FE1100632AB6 /* module.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = "<group>"; };
+		42BEF3361E89FE1100632AB6 /* Analytics-Module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Analytics-Module.h"; sourceTree = "<group>"; };
+		42BEF3371E89FE1100632AB6 /* Core-Module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Core-Module.h"; sourceTree = "<group>"; };
+		42BEF3381E89FE1100632AB6 /* SignIn-Module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SignIn-Module.h"; sourceTree = "<group>"; };
+		42BEF3391E89FE1100632AB6 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
+		42BEF33C1E89FE1100632AB6 /* libGoogleAnalytics.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libGoogleAnalytics.a; sourceTree = "<group>"; };
+		42BEF33E1E89FE1100632AB6 /* GAI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAI.h; sourceTree = "<group>"; };
+		42BEF33F1E89FE1100632AB6 /* GAIDictionaryBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIDictionaryBuilder.h; sourceTree = "<group>"; };
+		42BEF3401E89FE1100632AB6 /* GAIEcommerceFields.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommerceFields.h; sourceTree = "<group>"; };
+		42BEF3411E89FE1100632AB6 /* GAIEcommerceProduct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommerceProduct.h; sourceTree = "<group>"; };
+		42BEF3421E89FE1100632AB6 /* GAIEcommerceProductAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommerceProductAction.h; sourceTree = "<group>"; };
+		42BEF3431E89FE1100632AB6 /* GAIEcommercePromotion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommercePromotion.h; sourceTree = "<group>"; };
+		42BEF3441E89FE1100632AB6 /* GAIFields.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIFields.h; sourceTree = "<group>"; };
+		42BEF3451E89FE1100632AB6 /* GAILogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAILogger.h; sourceTree = "<group>"; };
+		42BEF3461E89FE1100632AB6 /* GAITrackedViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAITrackedViewController.h; sourceTree = "<group>"; };
+		42BEF3471E89FE1100632AB6 /* GAITracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAITracker.h; sourceTree = "<group>"; };
+		42BEF34A1E89FE1100632AB6 /* GTMNSData+zlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "GTMNSData+zlib.h"; sourceTree = "<group>"; };
+		42BEF34B1E89FE1100632AB6 /* GTMNSData+zlib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "GTMNSData+zlib.m"; sourceTree = "<group>"; };
+		42BEF34C1E89FE1100632AB6 /* GTMDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMDefines.h; sourceTree = "<group>"; };
+		42BEF34E1E89FE1100632AB6 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
+		42BEF35C1E89FECD00632AB6 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
+		42BEF35E1E89FEE300632AB6 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
+		42BEF3601E8A005800632AB6 /* GoogleAnalyst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GoogleAnalyst.h; sourceTree = "<group>"; };
+		42BEF3611E8A005800632AB6 /* GoogleAnalyst.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GoogleAnalyst.m; sourceTree = "<group>"; };
+		42BF67CA1E5179970081F90A /* ERPUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ERPUtils.h; path = common/ERPUtils.h; sourceTree = SOURCE_ROOT; };
+		42BF67CB1E5179970081F90A /* ERPUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ERPUtils.m; path = common/ERPUtils.m; sourceTree = SOURCE_ROOT; };
+		42D9A0221EB02DA6008AF7AF /* AdSupport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdSupport.framework; path = System/Library/Frameworks/AdSupport.framework; sourceTree = SDKROOT; };
+		42D9A0241EB03994008AF7AF /* libAdIdAccess.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libAdIdAccess.a; sourceTree = "<group>"; };
+		42DC12EF1F0CD98E00A4C011 /* OrderDetailPickInfoCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderDetailPickInfoCell.h; path = common/Functions/order/OrderDetailPickInfoCell.h; sourceTree = SOURCE_ROOT; };
+		42DC12F01F0CD98E00A4C011 /* OrderDetailPickInfoCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderDetailPickInfoCell.m; path = common/Functions/order/OrderDetailPickInfoCell.m; sourceTree = SOURCE_ROOT; };
+		42E489601EE63F4E007256A0 /* more_color_64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = more_color_64.png; sourceTree = "<group>"; };
+		42FD1A011FBD1A3000C5D9A8 /* RAOrderPreviewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RAOrderPreviewController.h; path = common/Functions/order/RAOrderPreviewController.h; sourceTree = SOURCE_ROOT; };
+		42FD1A021FBD1A3000C5D9A8 /* RAOrderPreviewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RAOrderPreviewController.m; path = common/Functions/order/RAOrderPreviewController.m; sourceTree = SOURCE_ROOT; };
+		710274231CC606C4009FD219 /* UserListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UserListViewController.h; path = common/Functions/sidemenu/UserListViewController.h; sourceTree = SOURCE_ROOT; };
+		710274241CC606C4009FD219 /* UserListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UserListViewController.m; path = common/Functions/sidemenu/UserListViewController.m; sourceTree = SOURCE_ROOT; };
+		7111E5711C76C557004763B3 /* customer_info_template_edit.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = customer_info_template_edit.json; path = common/Functions/contact/customer_info_template_edit.json; sourceTree = SOURCE_ROOT; };
+		71131F901CA1372300DBF6E2 /* SimplifiedBuyingProgramViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SimplifiedBuyingProgramViewController.h; path = common/Functions/sidemenu/SimplifiedBuyingProgramViewController.h; sourceTree = SOURCE_ROOT; };
+		71131F911CA1372300DBF6E2 /* SimplifiedBuyingProgramViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SimplifiedBuyingProgramViewController.m; path = common/Functions/sidemenu/SimplifiedBuyingProgramViewController.m; sourceTree = SOURCE_ROOT; };
+		712AFEC51DBA050200254965 /* BasicDrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BasicDrawable.h; path = common/pdfCreator/BasicDrawable.h; sourceTree = SOURCE_ROOT; };
+		712AFEC61DBA050200254965 /* BasicDrawable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BasicDrawable.m; path = common/pdfCreator/BasicDrawable.m; sourceTree = SOURCE_ROOT; };
+		712AFEC71DBA050200254965 /* GridDrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GridDrawable.h; path = common/pdfCreator/GridDrawable.h; sourceTree = SOURCE_ROOT; };
+		712AFEC81DBA050200254965 /* GridDrawable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GridDrawable.m; path = common/pdfCreator/GridDrawable.m; sourceTree = SOURCE_ROOT; };
+		712AFEC91DBA050200254965 /* GroupDrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GroupDrawable.h; path = common/pdfCreator/GroupDrawable.h; sourceTree = SOURCE_ROOT; };
+		712AFECA1DBA050200254965 /* GroupDrawable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GroupDrawable.m; path = common/pdfCreator/GroupDrawable.m; sourceTree = SOURCE_ROOT; };
+		712AFECB1DBA050200254965 /* ImageDrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ImageDrawable.h; path = common/pdfCreator/ImageDrawable.h; sourceTree = SOURCE_ROOT; };
+		712AFECC1DBA050200254965 /* ImageDrawable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ImageDrawable.m; path = common/pdfCreator/ImageDrawable.m; sourceTree = SOURCE_ROOT; };
+		712AFECD1DBA050200254965 /* LineDrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LineDrawable.h; path = common/pdfCreator/LineDrawable.h; sourceTree = SOURCE_ROOT; };
+		712AFECE1DBA050200254965 /* LineDrawable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LineDrawable.m; path = common/pdfCreator/LineDrawable.m; sourceTree = SOURCE_ROOT; };
+		712AFECF1DBA050200254965 /* PDFDrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PDFDrawable.h; path = common/pdfCreator/PDFDrawable.h; sourceTree = SOURCE_ROOT; };
+		712AFED01DBA050200254965 /* PDFDrawable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PDFDrawable.m; path = common/pdfCreator/PDFDrawable.m; sourceTree = SOURCE_ROOT; };
+		712AFED11DBA050200254965 /* RAPDFPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RAPDFPage.h; path = common/pdfCreator/RAPDFPage.h; sourceTree = SOURCE_ROOT; };
+		712AFED21DBA050200254965 /* RAPDFPage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAPDFPage.m; path = common/pdfCreator/RAPDFPage.m; sourceTree = SOURCE_ROOT; };
+		712AFED31DBA050200254965 /* TableDrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TableDrawable.h; path = common/pdfCreator/TableDrawable.h; sourceTree = SOURCE_ROOT; };
+		712AFED41DBA050200254965 /* TableDrawable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TableDrawable.m; path = common/pdfCreator/TableDrawable.m; sourceTree = SOURCE_ROOT; };
+		712AFED51DBA050200254965 /* TextDrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TextDrawable.h; path = common/pdfCreator/TextDrawable.h; sourceTree = SOURCE_ROOT; };
+		712AFED61DBA050200254965 /* TextDrawable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TextDrawable.m; path = common/pdfCreator/TextDrawable.m; sourceTree = SOURCE_ROOT; };
+		712AFEE01DBA077F00254965 /* pdfCreator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pdfCreator.h; path = common/pdfCreator/pdfCreator.h; sourceTree = SOURCE_ROOT; };
+		712AFEE11DBA077F00254965 /* pdfCreator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = pdfCreator.m; path = common/pdfCreator/pdfCreator.m; sourceTree = SOURCE_ROOT; };
+		712AFEE41DBDAF0300254965 /* pdfcreator.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = pdfcreator.xcassets; sourceTree = "<group>"; };
+		712BABF11C897E3A0007466B /* CategorySearchFilterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CategorySearchFilterViewController.h; path = common/Functions/category/CategorySearchFilterViewController.h; sourceTree = SOURCE_ROOT; };
+		712BABF21C897E3A0007466B /* CategorySearchFilterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CategorySearchFilterViewController.m; path = common/Functions/category/CategorySearchFilterViewController.m; sourceTree = SOURCE_ROOT; };
+		712C40B41C7310F4000E6831 /* CartGeneralNotesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CartGeneralNotesViewController.h; path = common/Functions/cart/CartGeneralNotesViewController.h; sourceTree = SOURCE_ROOT; };
+		712C40B51C7310F4000E6831 /* CartGeneralNotesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CartGeneralNotesViewController.m; path = common/Functions/cart/CartGeneralNotesViewController.m; sourceTree = SOURCE_ROOT; };
+		712C40B71C731126000E6831 /* ItemNotesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ItemNotesViewController.h; path = common/Functions/cart/ItemNotesViewController.h; sourceTree = SOURCE_ROOT; };
+		712C40B81C731126000E6831 /* ItemNotesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ItemNotesViewController.m; path = common/Functions/cart/ItemNotesViewController.m; sourceTree = SOURCE_ROOT; };
+		713F76A61929F4A7006A7305 /* HMLG Scan Order.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "HMLG Scan Order.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+		713F76A91929F4A7006A7305 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		713F76AB1929F4A7006A7305 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+		713F76AD1929F4A7006A7305 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+		713F76B31929F4A7006A7305 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		713F76B51929F4A7006A7305 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+		713F76B71929F4A7006A7305 /* HMLG Scan Order-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "HMLG Scan Order-Prefix.pch"; sourceTree = "<group>"; };
+		713F76B81929F4A7006A7305 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
+		713F76B91929F4A7006A7305 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
+		713F76C11929F4A7006A7305 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
+		713F76C81929F4A7006A7305 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
+		714036F721646B8C0029B10F /* AppDelegateBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegateBase.m; path = common/AppDelegateBase.m; sourceTree = SOURCE_ROOT; };
+		714036F821646B8C0029B10F /* AppDelegateBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegateBase.h; path = common/AppDelegateBase.h; sourceTree = SOURCE_ROOT; };
+		714036FA21646CFF0029B10F /* UIResponder+Router.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIResponder+Router.m"; path = "common/UIResponder+Router.m"; sourceTree = SOURCE_ROOT; };
+		714036FB21646CFF0029B10F /* UIResponder+Router.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIResponder+Router.h"; path = "common/UIResponder+Router.h"; sourceTree = SOURCE_ROOT; };
+		714037032164707D0029B10F /* MainHeaderViewColorPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MainHeaderViewColorPanel.h; path = common/Functions/MainHeaderViewColorPanel.h; sourceTree = SOURCE_ROOT; };
+		714037042164707D0029B10F /* MainHeaderViewColorPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MainHeaderViewColorPanel.m; path = common/Functions/MainHeaderViewColorPanel.m; sourceTree = SOURCE_ROOT; };
+		7141DD331C57269B00F7DF59 /* include */ = {isa = PBXFileReference; lastKnownFileType = folder; name = include; path = "ScanApiSDK-10.2.227-2/include"; sourceTree = SOURCE_ROOT; };
+		7141DD351C5726B700F7DF59 /* DeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DeviceInfo.h; path = "ScanApiSDK-10.2.227-2/DeviceInfo.h"; sourceTree = SOURCE_ROOT; };
+		7141DD361C5726B700F7DF59 /* DeviceInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DeviceInfo.m; path = "ScanApiSDK-10.2.227-2/DeviceInfo.m"; sourceTree = SOURCE_ROOT; };
+		7141DD371C5726B700F7DF59 /* ScanApiHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScanApiHelper.h; path = "ScanApiSDK-10.2.227-2/ScanApiHelper.h"; sourceTree = SOURCE_ROOT; };
+		7141DD381C5726B700F7DF59 /* ScanApiHelper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ScanApiHelper.mm; path = "ScanApiSDK-10.2.227-2/ScanApiHelper.mm"; sourceTree = SOURCE_ROOT; };
+		7141DD391C5726B700F7DF59 /* ScanApiIncludes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScanApiIncludes.h; path = "ScanApiSDK-10.2.227-2/ScanApiIncludes.h"; sourceTree = SOURCE_ROOT; };
+		7141DD3A1C5726B700F7DF59 /* softScanBeep.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = softScanBeep.wav; path = "ScanApiSDK-10.2.227-2/softScanBeep.wav"; sourceTree = SOURCE_ROOT; };
+		7141DD3E1C57459B00F7DF59 /* bitstream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bitstream.c; path = common/qrcode/bitstream.c; sourceTree = SOURCE_ROOT; };
+		7141DD3F1C57459B00F7DF59 /* bitstream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bitstream.h; path = common/qrcode/bitstream.h; sourceTree = SOURCE_ROOT; };
+		7141DD401C57459B00F7DF59 /* mask.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mask.c; path = common/qrcode/mask.c; sourceTree = SOURCE_ROOT; };
+		7141DD411C57459B00F7DF59 /* mask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mask.h; path = common/qrcode/mask.h; sourceTree = SOURCE_ROOT; };
+		7141DD421C57459B00F7DF59 /* QRCodeGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = QRCodeGenerator.h; path = common/qrcode/QRCodeGenerator.h; sourceTree = SOURCE_ROOT; };
+		7141DD431C57459B00F7DF59 /* QRCodeGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = QRCodeGenerator.m; path = common/qrcode/QRCodeGenerator.m; sourceTree = SOURCE_ROOT; };
+		7141DD441C57459B00F7DF59 /* qrencode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = qrencode.c; path = common/qrcode/qrencode.c; sourceTree = SOURCE_ROOT; };
+		7141DD451C57459B00F7DF59 /* qrencode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = qrencode.h; path = common/qrcode/qrencode.h; sourceTree = SOURCE_ROOT; };
+		7141DD461C57459B00F7DF59 /* qrinput.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = qrinput.c; path = common/qrcode/qrinput.c; sourceTree = SOURCE_ROOT; };
+		7141DD471C57459B00F7DF59 /* qrinput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = qrinput.h; path = common/qrcode/qrinput.h; sourceTree = SOURCE_ROOT; };
+		7141DD481C57459B00F7DF59 /* qrspec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = qrspec.c; path = common/qrcode/qrspec.c; sourceTree = SOURCE_ROOT; };
+		7141DD491C57459B00F7DF59 /* qrspec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = qrspec.h; path = common/qrcode/qrspec.h; sourceTree = SOURCE_ROOT; };
+		7141DD4A1C57459B00F7DF59 /* rscode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = rscode.c; path = common/qrcode/rscode.c; sourceTree = SOURCE_ROOT; };
+		7141DD4B1C57459B00F7DF59 /* rscode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rscode.h; path = common/qrcode/rscode.h; sourceTree = SOURCE_ROOT; };
+		7141DD4C1C57459B00F7DF59 /* split.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = split.c; path = common/qrcode/split.c; sourceTree = SOURCE_ROOT; };
+		7141DD4D1C57459B00F7DF59 /* split.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = split.h; path = common/qrcode/split.h; sourceTree = SOURCE_ROOT; };
+		7141DD561C5747CE00F7DF59 /* AESCrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AESCrypt.h; path = common/AES/AESCrypt.h; sourceTree = SOURCE_ROOT; };
+		7141DD571C5747CE00F7DF59 /* AESCrypt.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AESCrypt.m; path = common/AES/AESCrypt.m; sourceTree = SOURCE_ROOT; };
+		7141DD581C5747CE00F7DF59 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = LICENSE; path = common/AES/LICENSE; sourceTree = SOURCE_ROOT; };
+		7141DD591C5747CE00F7DF59 /* NSData+Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSData+Base64.h"; path = "common/AES/NSData+Base64.h"; sourceTree = SOURCE_ROOT; };
+		7141DD5A1C5747CE00F7DF59 /* NSData+Base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSData+Base64.m"; path = "common/AES/NSData+Base64.m"; sourceTree = SOURCE_ROOT; };
+		7141DD5B1C5747CE00F7DF59 /* NSData+CommonCrypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSData+CommonCrypto.h"; path = "common/AES/NSData+CommonCrypto.h"; sourceTree = SOURCE_ROOT; };
+		7141DD5C1C5747CE00F7DF59 /* NSData+CommonCrypto.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSData+CommonCrypto.m"; path = "common/AES/NSData+CommonCrypto.m"; sourceTree = SOURCE_ROOT; };
+		7141DD5D1C5747CE00F7DF59 /* NSString+Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSString+Base64.h"; path = "common/AES/NSString+Base64.h"; sourceTree = SOURCE_ROOT; };
+		7141DD5E1C5747CE00F7DF59 /* NSString+Base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSString+Base64.m"; path = "common/AES/NSString+Base64.m"; sourceTree = SOURCE_ROOT; };
+		7142E8781DBF57510077EFA2 /* KALINGA.TTF */ = {isa = PBXFileReference; lastKnownFileType = file; path = KALINGA.TTF; sourceTree = "<group>"; };
+		7142E8791DBF57510077EFA2 /* KALINGAB.TTF */ = {isa = PBXFileReference; lastKnownFileType = file; path = KALINGAB.TTF; sourceTree = "<group>"; };
+		7142E87C1DC300010077EFA2 /* DejaVuSans-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "DejaVuSans-Bold.ttf"; sourceTree = "<group>"; };
+		7142E87D1DC300010077EFA2 /* DejaVuSans.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = DejaVuSans.ttf; sourceTree = "<group>"; };
+		7143E209202FCEEB00451903 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = "iSales-NPD/Base.lproj/OLM.storyboard"; sourceTree = SOURCE_ROOT; };
+		7143E20E202FCEF600451903 /* CUL.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = CUL.storyboard; path = "iSales-NPD/CUL.storyboard"; sourceTree = SOURCE_ROOT; };
+		7143E210202FCF7600451903 /* CategoryCellNPD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CategoryCellNPD.h; path = "iSales-NPD/CategoryCellNPD.h"; sourceTree = SOURCE_ROOT; };
+		7143E211202FCF7600451903 /* CategoryCellNPD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CategoryCellNPD.m; path = "iSales-NPD/CategoryCellNPD.m"; sourceTree = SOURCE_ROOT; };
+		7143E213202FCFC000451903 /* debug_category_filter.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = debug_category_filter.json; path = "iSales-NPD/debug_category_filter.json"; sourceTree = SOURCE_ROOT; };
+		7143E216202FD15A00451903 /* category.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = category.json; path = "iSales-NPD/category.json"; sourceTree = SOURCE_ROOT; };
+		7143E218202FD1DC00451903 /* contactAdvanceSearch.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = contactAdvanceSearch.json; path = "iSales-NPD/contactAdvanceSearch.json"; sourceTree = SOURCE_ROOT; };
+		7143E219202FD1DC00451903 /* createContact.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = createContact.json; path = "iSales-NPD/createContact.json"; sourceTree = SOURCE_ROOT; };
+		7143E21C202FD21F00451903 /* editContact.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = editContact.json; path = "iSales-NPD/editContact.json"; sourceTree = SOURCE_ROOT; };
+		7143E21E202FD28800451903 /* TearSheet.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = TearSheet.json; path = "iSales-NPD/TearSheet.json"; sourceTree = SOURCE_ROOT; };
+		7143E21F202FD28900451903 /* placeOrderTemplate.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = placeOrderTemplate.json; path = "iSales-NPD/placeOrderTemplate.json"; sourceTree = SOURCE_ROOT; };
+		7143E222202FD2CA00451903 /* so_thumb.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = so_thumb.json; path = "iSales-NPD/so_thumb.json"; sourceTree = SOURCE_ROOT; };
+		7143E223202FD2CA00451903 /* portfolio_3x2.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = portfolio_3x2.json; path = "iSales-NPD/portfolio_3x2.json"; sourceTree = SOURCE_ROOT; };
+		7143E224202FD2CA00451903 /* portfolio_2x3.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = portfolio_2x3.json; path = "iSales-NPD/portfolio_2x3.json"; sourceTree = SOURCE_ROOT; };
+		7143E225202FD2CA00451903 /* so.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = so.json; path = "iSales-NPD/so.json"; sourceTree = SOURCE_ROOT; };
+		7143E22A202FD37500451903 /* orderDetail.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = orderDetail.json; path = "iSales-NPD/orderDetail.json"; sourceTree = SOURCE_ROOT; };
+		7143E22C202FD3CC00451903 /* more_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = more_info.html; path = "iSales-NPD/more_info.html"; sourceTree = SOURCE_ROOT; };
+		7143E22D202FD3CC00451903 /* order_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = order_info.html; path = "iSales-NPD/order_info.html"; sourceTree = SOURCE_ROOT; };
+		714B1F3E1C7BF74100539193 /* OrderDetailSignatureCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderDetailSignatureCell.h; path = common/Functions/order/OrderDetailSignatureCell.h; sourceTree = SOURCE_ROOT; };
+		714B1F3F1C7BF74100539193 /* OrderDetailSignatureCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderDetailSignatureCell.m; path = common/Functions/order/OrderDetailSignatureCell.m; sourceTree = SOURCE_ROOT; };
+		715001FD1D114D9100F5927F /* BundleDetailButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BundleDetailButton.h; path = common/Functions/BundleDetailButton.h; sourceTree = SOURCE_ROOT; };
+		715001FE1D114D9100F5927F /* BundleDetailButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BundleDetailButton.m; path = common/Functions/BundleDetailButton.m; sourceTree = SOURCE_ROOT; };
+		715671311E10A0EF006324A0 /* RectDrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RectDrawable.h; path = common/pdfCreator/RectDrawable.h; sourceTree = SOURCE_ROOT; };
+		715671321E10A0EF006324A0 /* RectDrawable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RectDrawable.m; path = common/pdfCreator/RectDrawable.m; sourceTree = SOURCE_ROOT; };
+		715850441CF6F0E500856B20 /* DefaultAppearance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DefaultAppearance.h; path = common/Functions/DefaultAppearance.h; sourceTree = SOURCE_ROOT; };
+		715850451CF6F0E500856B20 /* DefaultAppearance.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DefaultAppearance.m; path = common/Functions/DefaultAppearance.m; sourceTree = SOURCE_ROOT; };
+		715F30BB1DAB37EB00490EED /* OfflineUnlockViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OfflineUnlockViewController.h; path = common/Functions/offline/OfflineUnlockViewController.h; sourceTree = SOURCE_ROOT; };
+		715F30BC1DAB37EB00490EED /* OfflineUnlockViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OfflineUnlockViewController.m; path = common/Functions/offline/OfflineUnlockViewController.m; sourceTree = SOURCE_ROOT; };
+		7161FEB21D61B24900157EE1 /* creditcardpayment.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = creditcardpayment.html; path = common/Functions/offline/creditcardpayment.html; sourceTree = SOURCE_ROOT; };
+		7161FEB31D61B24900157EE1 /* normalpayment.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = normalpayment.html; path = common/Functions/offline/normalpayment.html; sourceTree = SOURCE_ROOT; };
+		7161FEB41D61B24900157EE1 /* orderinfo.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = orderinfo.html; path = common/Functions/offline/orderinfo.html; sourceTree = SOURCE_ROOT; };
+		7162A5001C586F5B00AB630E /* AddressEditorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AddressEditorViewController.h; path = common/Functions/address/AddressEditorViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5011C586F5B00AB630E /* AddressEditorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AddressEditorViewController.m; path = common/Functions/address/AddressEditorViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5031C586FC100AB630E /* CycleScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CycleScrollView.h; path = common/AutoScrollImage/CycleScrollView.h; sourceTree = SOURCE_ROOT; };
+		7162A5041C586FC100AB630E /* CycleScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CycleScrollView.m; path = common/AutoScrollImage/CycleScrollView.m; sourceTree = SOURCE_ROOT; };
+		7162A5051C586FC100AB630E /* NSTimer+Addition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSTimer+Addition.h"; path = "common/AutoScrollImage/NSTimer+Addition.h"; sourceTree = SOURCE_ROOT; };
+		7162A5061C586FC100AB630E /* NSTimer+Addition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSTimer+Addition.m"; path = "common/AutoScrollImage/NSTimer+Addition.m"; sourceTree = SOURCE_ROOT; };
+		7162A5071C586FC100AB630E /* SliderPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SliderPage.h; path = common/AutoScrollImage/SliderPage.h; sourceTree = SOURCE_ROOT; };
+		7162A5081C586FC100AB630E /* SliderPage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SliderPage.m; path = common/AutoScrollImage/SliderPage.m; sourceTree = SOURCE_ROOT; };
+		7162A50C1C58704600AB630E /* BundleModelCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BundleModelCell.h; path = common/Functions/cart/BundleModelCell.h; sourceTree = SOURCE_ROOT; };
+		7162A50D1C58704600AB630E /* BundleModelCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BundleModelCell.m; path = common/Functions/cart/BundleModelCell.m; sourceTree = SOURCE_ROOT; };
+		7162A50E1C58704600AB630E /* BundleModelViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BundleModelViewController.h; path = common/Functions/cart/BundleModelViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A50F1C58704600AB630E /* BundleModelViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BundleModelViewController.m; path = common/Functions/cart/BundleModelViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5101C58704600AB630E /* CartViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CartViewController.h; path = common/Functions/cart/CartViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5111C58704600AB630E /* CartViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CartViewController.m; path = common/Functions/cart/CartViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5121C58704600AB630E /* EditModelPriceViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditModelPriceViewController.h; path = common/Functions/cart/EditModelPriceViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5131C58704600AB630E /* EditModelPriceViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EditModelPriceViewController.m; path = common/Functions/cart/EditModelPriceViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5141C58704600AB630E /* ModelItemCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ModelItemCell.h; path = common/Functions/cart/ModelItemCell.h; sourceTree = SOURCE_ROOT; };
+		7162A5151C58704600AB630E /* ModelItemCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ModelItemCell.m; path = common/Functions/cart/ModelItemCell.m; sourceTree = SOURCE_ROOT; };
+		7162A51F1C58706C00AB630E /* CategoryCellSmall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CategoryCellSmall.h; path = common/Functions/category/CategoryCellSmall.h; sourceTree = SOURCE_ROOT; };
+		7162A5201C58706C00AB630E /* CategoryCellSmall.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CategoryCellSmall.m; path = common/Functions/category/CategoryCellSmall.m; sourceTree = SOURCE_ROOT; };
+		7162A5211C58706C00AB630E /* CategoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CategoryViewController.h; path = common/Functions/category/CategoryViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5221C58706C00AB630E /* CategoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CategoryViewController.m; path = common/Functions/category/CategoryViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A52B1C58719D00AB630E /* RATreeNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RATreeNode.h; path = common/categoryMenu_RATree/RATreeNode.h; sourceTree = SOURCE_ROOT; };
+		7162A52C1C58719D00AB630E /* RATreeNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RATreeNode.m; path = common/categoryMenu_RATree/RATreeNode.m; sourceTree = SOURCE_ROOT; };
+		7162A52D1C58719D00AB630E /* RATreeNodeCollectionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RATreeNodeCollectionController.h; path = common/categoryMenu_RATree/RATreeNodeCollectionController.h; sourceTree = SOURCE_ROOT; };
+		7162A52E1C58719D00AB630E /* RATreeNodeCollectionController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RATreeNodeCollectionController.m; path = common/categoryMenu_RATree/RATreeNodeCollectionController.m; sourceTree = SOURCE_ROOT; };
+		7162A52F1C58719D00AB630E /* RATreeNodeInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RATreeNodeInfo.h; path = common/categoryMenu_RATree/RATreeNodeInfo.h; sourceTree = SOURCE_ROOT; };
+		7162A5301C58719D00AB630E /* RATreeNodeInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RATreeNodeInfo.m; path = common/categoryMenu_RATree/RATreeNodeInfo.m; sourceTree = SOURCE_ROOT; };
+		7162A5311C58719D00AB630E /* RATreeNodeInfo+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "RATreeNodeInfo+Private.h"; path = "common/categoryMenu_RATree/RATreeNodeInfo+Private.h"; sourceTree = SOURCE_ROOT; };
+		7162A5321C58719D00AB630E /* RATreeNodeInfo+Private.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "RATreeNodeInfo+Private.m"; path = "common/categoryMenu_RATree/RATreeNodeInfo+Private.m"; sourceTree = SOURCE_ROOT; };
+		7162A5331C58719D00AB630E /* RATreeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RATreeView.h; path = common/categoryMenu_RATree/RATreeView.h; sourceTree = SOURCE_ROOT; };
+		7162A5341C58719D00AB630E /* RATreeView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RATreeView.m; path = common/categoryMenu_RATree/RATreeView.m; sourceTree = SOURCE_ROOT; };
+		7162A5351C58719D00AB630E /* RATreeView+Enums.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "RATreeView+Enums.h"; path = "common/categoryMenu_RATree/RATreeView+Enums.h"; sourceTree = SOURCE_ROOT; };
+		7162A5361C58719D00AB630E /* RATreeView+Enums.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "RATreeView+Enums.m"; path = "common/categoryMenu_RATree/RATreeView+Enums.m"; sourceTree = SOURCE_ROOT; };
+		7162A5371C58719D00AB630E /* RATreeView+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "RATreeView+Private.h"; path = "common/categoryMenu_RATree/RATreeView+Private.h"; sourceTree = SOURCE_ROOT; };
+		7162A5381C58719D00AB630E /* RATreeView+Private.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "RATreeView+Private.m"; path = "common/categoryMenu_RATree/RATreeView+Private.m"; sourceTree = SOURCE_ROOT; };
+		7162A5391C58719D00AB630E /* RATreeView+TableViewDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "RATreeView+TableViewDataSource.h"; path = "common/categoryMenu_RATree/RATreeView+TableViewDataSource.h"; sourceTree = SOURCE_ROOT; };
+		7162A53A1C58719D00AB630E /* RATreeView+TableViewDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "RATreeView+TableViewDataSource.m"; path = "common/categoryMenu_RATree/RATreeView+TableViewDataSource.m"; sourceTree = SOURCE_ROOT; };
+		7162A53B1C58719D00AB630E /* RATreeView+TableViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "RATreeView+TableViewDelegate.h"; path = "common/categoryMenu_RATree/RATreeView+TableViewDelegate.h"; sourceTree = SOURCE_ROOT; };
+		7162A53C1C58719D00AB630E /* RATreeView+TableViewDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "RATreeView+TableViewDelegate.m"; path = "common/categoryMenu_RATree/RATreeView+TableViewDelegate.m"; sourceTree = SOURCE_ROOT; };
+		7162A53D1C58719D00AB630E /* RATreeView+UIScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "RATreeView+UIScrollView.h"; path = "common/categoryMenu_RATree/RATreeView+UIScrollView.h"; sourceTree = SOURCE_ROOT; };
+		7162A53E1C58719D00AB630E /* RATreeView+UIScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "RATreeView+UIScrollView.m"; path = "common/categoryMenu_RATree/RATreeView+UIScrollView.m"; sourceTree = SOURCE_ROOT; };
+		7162A53F1C58719D00AB630E /* RAViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RAViewController.h; path = common/categoryMenu_RATree/RAViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5401C58719D00AB630E /* RAViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAViewController.m; path = common/categoryMenu_RATree/RAViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A54C1C58722200AB630E /* CreditCardEditorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CreditCardEditorViewController.h; path = common/Functions/creditcard/CreditCardEditorViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A54D1C58722200AB630E /* CreditCardEditorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CreditCardEditorViewController.m; path = common/Functions/creditcard/CreditCardEditorViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A54F1C58724700AB630E /* ContactAdvanceSearchViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ContactAdvanceSearchViewController.h; path = common/Functions/contact/ContactAdvanceSearchViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5501C58724700AB630E /* ContactAdvanceSearchViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ContactAdvanceSearchViewController.m; path = common/Functions/contact/ContactAdvanceSearchViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5511C58724700AB630E /* ContactListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ContactListTableViewCell.h; path = common/Functions/contact/ContactListTableViewCell.h; sourceTree = SOURCE_ROOT; };
+		7162A5521C58724700AB630E /* ContactListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ContactListTableViewCell.m; path = common/Functions/contact/ContactListTableViewCell.m; sourceTree = SOURCE_ROOT; };
+		7162A5531C58724700AB630E /* ContactListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ContactListViewController.h; path = common/Functions/contact/ContactListViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5541C58724700AB630E /* ContactListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ContactListViewController.m; path = common/Functions/contact/ContactListViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5551C58724700AB630E /* customer_advanced_search.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = customer_advanced_search.json; path = common/Functions/contact/customer_advanced_search.json; sourceTree = SOURCE_ROOT; };
+		7162A5561C58724700AB630E /* customer_info_template.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = customer_info_template.json; path = common/Functions/contact/customer_info_template.json; sourceTree = SOURCE_ROOT; };
+		7162A5571C58724700AB630E /* CustomerEditViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CustomerEditViewController.h; path = common/Functions/contact/CustomerEditViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5581C58724700AB630E /* CustomerEditViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CustomerEditViewController.m; path = common/Functions/contact/CustomerEditViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5591C58724700AB630E /* CustomerInfoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CustomerInfoViewController.h; path = common/Functions/contact/CustomerInfoViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A55A1C58724700AB630E /* CustomerInfoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CustomerInfoViewController.m; path = common/Functions/contact/CustomerInfoViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5621C58728D00AB630E /* DetailHeaderCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailHeaderCell.h; path = common/Functions/modelDetail/DetailHeaderCell.h; sourceTree = SOURCE_ROOT; };
+		7162A5631C58728D00AB630E /* DetailHeaderCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailHeaderCell.m; path = common/Functions/modelDetail/DetailHeaderCell.m; sourceTree = SOURCE_ROOT; };
+		7162A5641C58728D00AB630E /* DetailImageCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailImageCell.h; path = common/Functions/modelDetail/DetailImageCell.h; sourceTree = SOURCE_ROOT; };
+		7162A5651C58728D00AB630E /* DetailImageCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailImageCell.m; path = common/Functions/modelDetail/DetailImageCell.m; sourceTree = SOURCE_ROOT; };
+		7162A5661C58728D00AB630E /* DetailKVCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailKVCell.h; path = common/Functions/modelDetail/DetailKVCell.h; sourceTree = SOURCE_ROOT; };
+		7162A5671C58728D00AB630E /* DetailKVCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailKVCell.m; path = common/Functions/modelDetail/DetailKVCell.m; sourceTree = SOURCE_ROOT; };
+		7162A5681C58728D00AB630E /* DetailTopicCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailTopicCell.h; path = common/Functions/modelDetail/DetailTopicCell.h; sourceTree = SOURCE_ROOT; };
+		7162A5691C58728D00AB630E /* DetailTopicCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailTopicCell.m; path = common/Functions/modelDetail/DetailTopicCell.m; sourceTree = SOURCE_ROOT; };
+		7162A56A1C58728D00AB630E /* DetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailViewController.h; path = common/Functions/modelDetail/DetailViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A56B1C58728D00AB630E /* DetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailViewController.m; path = common/Functions/modelDetail/DetailViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A56C1C58728D00AB630E /* LineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LineView.h; path = common/Functions/modelDetail/LineView.h; sourceTree = SOURCE_ROOT; };
+		7162A56D1C58728D00AB630E /* LineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LineView.m; path = common/Functions/modelDetail/LineView.m; sourceTree = SOURCE_ROOT; };
+		7162A5771C5872EF00AB630E /* HomeTableViewCellBanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HomeTableViewCellBanner.h; path = common/Functions/home/HomeTableViewCellBanner.h; sourceTree = SOURCE_ROOT; };
+		7162A5781C5872EF00AB630E /* HomeTableViewCellBanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HomeTableViewCellBanner.m; path = common/Functions/home/HomeTableViewCellBanner.m; sourceTree = SOURCE_ROOT; };
+		7162A5791C5872EF00AB630E /* HomeTableViewCellButtonBanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HomeTableViewCellButtonBanner.h; path = common/Functions/home/HomeTableViewCellButtonBanner.h; sourceTree = SOURCE_ROOT; };
+		7162A57A1C5872EF00AB630E /* HomeTableViewCellButtonBanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HomeTableViewCellButtonBanner.m; path = common/Functions/home/HomeTableViewCellButtonBanner.m; sourceTree = SOURCE_ROOT; };
+		7162A57B1C5872EF00AB630E /* HomeTableViewCellSlide.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HomeTableViewCellSlide.h; path = common/Functions/home/HomeTableViewCellSlide.h; sourceTree = SOURCE_ROOT; };
+		7162A57C1C5872EF00AB630E /* HomeTableViewCellSlide.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HomeTableViewCellSlide.m; path = common/Functions/home/HomeTableViewCellSlide.m; sourceTree = SOURCE_ROOT; };
+		7162A57D1C5872EF00AB630E /* HomeTableViewCellTopic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HomeTableViewCellTopic.h; path = common/Functions/home/HomeTableViewCellTopic.h; sourceTree = SOURCE_ROOT; };
+		7162A57E1C5872EF00AB630E /* HomeTableViewCellTopic.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HomeTableViewCellTopic.m; path = common/Functions/home/HomeTableViewCellTopic.m; sourceTree = SOURCE_ROOT; };
+		7162A57F1C5872EF00AB630E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HomeViewController.h; path = common/Functions/home/HomeViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5801C5872EF00AB630E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HomeViewController.m; path = common/Functions/home/HomeViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5861C58733400AB630E /* CreateOrderViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CreateOrderViewController.h; path = common/Functions/order/CreateOrderViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5871C58733400AB630E /* CreateOrderViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CreateOrderViewController.m; path = common/Functions/order/CreateOrderViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5881C58733400AB630E /* OrderDetailHtmlCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderDetailHtmlCell.h; path = common/Functions/order/OrderDetailHtmlCell.h; sourceTree = SOURCE_ROOT; };
+		7162A5891C58733400AB630E /* OrderDetailHtmlCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderDetailHtmlCell.m; path = common/Functions/order/OrderDetailHtmlCell.m; sourceTree = SOURCE_ROOT; };
+		7162A58A1C58733400AB630E /* OrderDetailInfoCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderDetailInfoCell.h; path = common/Functions/order/OrderDetailInfoCell.h; sourceTree = SOURCE_ROOT; };
+		7162A58B1C58733400AB630E /* OrderDetailInfoCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderDetailInfoCell.m; path = common/Functions/order/OrderDetailInfoCell.m; sourceTree = SOURCE_ROOT; };
+		7162A58C1C58733400AB630E /* OrderDetailModelCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderDetailModelCell.h; path = common/Functions/order/OrderDetailModelCell.h; sourceTree = SOURCE_ROOT; };
+		7162A58D1C58733400AB630E /* OrderDetailModelCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderDetailModelCell.m; path = common/Functions/order/OrderDetailModelCell.m; sourceTree = SOURCE_ROOT; };
+		7162A58E1C58733400AB630E /* OrderDetailPriceCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderDetailPriceCell.h; path = common/Functions/order/OrderDetailPriceCell.h; sourceTree = SOURCE_ROOT; };
+		7162A58F1C58733400AB630E /* OrderDetailPriceCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderDetailPriceCell.m; path = common/Functions/order/OrderDetailPriceCell.m; sourceTree = SOURCE_ROOT; };
+		7162A5901C58733400AB630E /* OrderDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderDetailViewController.h; path = common/Functions/order/OrderDetailViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5911C58733400AB630E /* OrderDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderDetailViewController.m; path = common/Functions/order/OrderDetailViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5921C58733400AB630E /* OrderListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderListTableViewCell.h; path = common/Functions/order/OrderListTableViewCell.h; sourceTree = SOURCE_ROOT; };
+		7162A5931C58733400AB630E /* OrderListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderListTableViewCell.m; path = common/Functions/order/OrderListTableViewCell.m; sourceTree = SOURCE_ROOT; };
+		7162A5941C58733400AB630E /* OrderListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderListViewController.h; path = common/Functions/order/OrderListViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5951C58733400AB630E /* OrderListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderListViewController.m; path = common/Functions/order/OrderListViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5961C58733400AB630E /* status_filter_cadedate_open.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = status_filter_cadedate_open.json; path = common/Functions/order/status_filter_cadedate_open.json; sourceTree = SOURCE_ROOT; };
+		7162A5971C58733400AB630E /* offline_status_filter_cadedate.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = offline_status_filter_cadedate.json; path = common/Functions/order/offline_status_filter_cadedate.json; sourceTree = SOURCE_ROOT; };
+		7162A5A61C58735900AB630E /* PortfolioViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PortfolioViewController.h; path = common/Functions/portfolio/PortfolioViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5A71C58735900AB630E /* PortfolioViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PortfolioViewController.m; path = common/Functions/portfolio/PortfolioViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5A81C58735900AB630E /* TearSheetParamViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TearSheetParamViewController.h; path = common/Functions/portfolio/TearSheetParamViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5A91C58735900AB630E /* TearSheetParamViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TearSheetParamViewController.m; path = common/Functions/portfolio/TearSheetParamViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5AE1C58738600AB630E /* ScannerControllerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScannerControllerView.h; path = common/Functions/camscan/ScannerControllerView.h; sourceTree = SOURCE_ROOT; };
+		7162A5AF1C58738600AB630E /* ScannerControllerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ScannerControllerView.m; path = common/Functions/camscan/ScannerControllerView.m; sourceTree = SOURCE_ROOT; };
+		7162A5B01C58738600AB630E /* ScannerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScannerViewController.h; path = common/Functions/camscan/ScannerViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5B11C58738600AB630E /* ScannerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ScannerViewController.m; path = common/Functions/camscan/ScannerViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5B21C58738600AB630E /* SCShapeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SCShapeView.h; path = common/Functions/camscan/SCShapeView.h; sourceTree = SOURCE_ROOT; };
+		7162A5B31C58738600AB630E /* SCShapeView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SCShapeView.m; path = common/Functions/camscan/SCShapeView.m; sourceTree = SOURCE_ROOT; };
+		7162A5B71C5873BB00AB630E /* FilterCellCadedate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FilterCellCadedate.h; path = "common/Functions/search+itemsearch/FilterCellCadedate.h"; sourceTree = SOURCE_ROOT; };
+		7162A5B81C5873BB00AB630E /* FilterCellCadedate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FilterCellCadedate.m; path = "common/Functions/search+itemsearch/FilterCellCadedate.m"; sourceTree = SOURCE_ROOT; };
+		7162A5B91C5873BB00AB630E /* FilterCellValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FilterCellValue.h; path = "common/Functions/search+itemsearch/FilterCellValue.h"; sourceTree = SOURCE_ROOT; };
+		7162A5BA1C5873BB00AB630E /* FilterCellValue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FilterCellValue.m; path = "common/Functions/search+itemsearch/FilterCellValue.m"; sourceTree = SOURCE_ROOT; };
+		7162A5BB1C5873BB00AB630E /* ItemSearchFilterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ItemSearchFilterViewController.h; path = "common/Functions/search+itemsearch/ItemSearchFilterViewController.h"; sourceTree = SOURCE_ROOT; };
+		7162A5BC1C5873BB00AB630E /* ItemSearchFilterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ItemSearchFilterViewController.m; path = "common/Functions/search+itemsearch/ItemSearchFilterViewController.m"; sourceTree = SOURCE_ROOT; };
+		7162A5BD1C5873BB00AB630E /* ItemSearchViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ItemSearchViewController.h; path = "common/Functions/search+itemsearch/ItemSearchViewController.h"; sourceTree = SOURCE_ROOT; };
+		7162A5BE1C5873BB00AB630E /* ItemSearchViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ItemSearchViewController.m; path = "common/Functions/search+itemsearch/ItemSearchViewController.m"; sourceTree = SOURCE_ROOT; };
+		7162A5BF1C5873BB00AB630E /* SearchViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SearchViewController.h; path = "common/Functions/search+itemsearch/SearchViewController.h"; sourceTree = SOURCE_ROOT; };
+		7162A5C01C5873BB00AB630E /* SearchViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SearchViewController.m; path = "common/Functions/search+itemsearch/SearchViewController.m"; sourceTree = SOURCE_ROOT; };
+		7162A5C61C58761500AB630E /* SignatureView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SignatureView.h; path = common/Functions/signature/SignatureView.h; sourceTree = SOURCE_ROOT; };
+		7162A5C71C58761500AB630E /* SignatureView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SignatureView.m; path = common/Functions/signature/SignatureView.m; sourceTree = SOURCE_ROOT; };
+		7162A5C81C58761500AB630E /* SignatureViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SignatureViewController.h; path = common/Functions/signature/SignatureViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5C91C58761500AB630E /* SignatureViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SignatureViewController.m; path = common/Functions/signature/SignatureViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5CC1C5876E300AB630E /* AboutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AboutViewController.h; path = common/Functions/sidemenu/AboutViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5CD1C5876E300AB630E /* AboutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AboutViewController.m; path = common/Functions/sidemenu/AboutViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5CE1C5876E300AB630E /* CacheViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CacheViewController.h; path = common/Functions/sidemenu/CacheViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5CF1C5876E300AB630E /* CacheViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CacheViewController.m; path = common/Functions/sidemenu/CacheViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5D01C5876E300AB630E /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LoginViewController.h; path = common/Functions/sidemenu/LoginViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5D11C5876E300AB630E /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LoginViewController.m; path = common/Functions/sidemenu/LoginViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5D21C5876E300AB630E /* PopupNavigationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PopupNavigationController.h; path = common/Functions/sidemenu/PopupNavigationController.h; sourceTree = SOURCE_ROOT; };
+		7162A5D31C5876E300AB630E /* PopupNavigationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PopupNavigationController.m; path = common/Functions/sidemenu/PopupNavigationController.m; sourceTree = SOURCE_ROOT; };
+		7162A5D41C5876E300AB630E /* RetrievePassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RetrievePassViewController.h; path = common/Functions/sidemenu/RetrievePassViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5D51C5876E300AB630E /* RetrievePassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RetrievePassViewController.m; path = common/Functions/sidemenu/RetrievePassViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5D61C5876E300AB630E /* ScannerSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScannerSettingViewController.h; path = common/Functions/sidemenu/ScannerSettingViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5D71C5876E300AB630E /* ScannerSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ScannerSettingViewController.m; path = common/Functions/sidemenu/ScannerSettingViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5D81C5876E300AB630E /* SettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SettingViewController.h; path = common/Functions/sidemenu/SettingViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5D91C5876E300AB630E /* SettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SettingViewController.m; path = common/Functions/sidemenu/SettingViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5E11C5877CE00AB630E /* WatchListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WatchListViewController.h; path = common/Functions/watchlist/WatchListViewController.h; sourceTree = SOURCE_ROOT; };
+		7162A5E21C5877CE00AB630E /* WatchListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WatchListViewController.m; path = common/Functions/watchlist/WatchListViewController.m; sourceTree = SOURCE_ROOT; };
+		7162A5E41C58781000AB630E /* iSalesNavigationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesNavigationController.h; path = common/iSalesNavigationController.h; sourceTree = SOURCE_ROOT; };
+		7162A5E51C58781000AB630E /* iSalesNavigationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesNavigationController.m; path = common/iSalesNavigationController.m; sourceTree = SOURCE_ROOT; };
+		716387D3195408E7006E65E6 /* config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
+		7165662C1EF3ACD900CB897F /* photostack_image.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = photostack_image.html; path = common/photoStack/photostack_image.html; sourceTree = SOURCE_ROOT; };
+		7165662D1EF3ACD900CB897F /* photostack_video.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = photostack_video.html; path = common/photoStack/photostack_video.html; sourceTree = SOURCE_ROOT; };
+		716961B419594E1000B19FB4 /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
+		716AF8DF1D7AA0E0001188E0 /* SelectUploadOrderViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SelectUploadOrderViewController.h; path = common/Functions/offline/SelectUploadOrderViewController.h; sourceTree = SOURCE_ROOT; };
+		716AF8E01D7AA0E0001188E0 /* SelectUploadOrderViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SelectUploadOrderViewController.m; path = common/Functions/offline/SelectUploadOrderViewController.m; sourceTree = SOURCE_ROOT; };
+		716AF8E51D7AA398001188E0 /* SelectOrderTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SelectOrderTableViewCell.m; path = common/Functions/offline/SelectOrderTableViewCell.m; sourceTree = SOURCE_ROOT; };
+		716AF8E61D7AA398001188E0 /* SelectOrderTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SelectOrderTableViewCell.h; path = common/Functions/offline/SelectOrderTableViewCell.h; sourceTree = SOURCE_ROOT; };
+		7186C25B1C97A6EE00CB43F4 /* FunctionTestViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FunctionTestViewController.h; path = common/Functions/sidemenu/FunctionTestViewController.h; sourceTree = SOURCE_ROOT; };
+		7186C25C1C97A6EE00CB43F4 /* FunctionTestViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FunctionTestViewController.m; path = common/Functions/sidemenu/FunctionTestViewController.m; sourceTree = SOURCE_ROOT; };
+		718716221C433D5000F25860 /* libScanApiCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libScanApiCore.a; path = ../lib/libScanApiCore.a; sourceTree = "<group>"; };
+		718716241C433D8B00F25860 /* ExternalAccessory.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ExternalAccessory.framework; path = System/Library/Frameworks/ExternalAccessory.framework; sourceTree = SDKROOT; };
+		718716261C433D9700F25860 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+		718716281C433DA400F25860 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
+		7187162A1C43406300F25860 /* libScanApiCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libScanApiCore.a; path = "../../../ios_samples/ScanApiSDK-10.2.227/lib/libScanApiCore.a"; sourceTree = "<group>"; };
+		7195623A1CF57D1800C74A49 /* CategoryHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CategoryHeaderView.h; path = common/Functions/category/CategoryHeaderView.h; sourceTree = SOURCE_ROOT; };
+		7195623B1CF57D1800C74A49 /* CategoryHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CategoryHeaderView.m; path = common/Functions/category/CategoryHeaderView.m; sourceTree = SOURCE_ROOT; };
+		71BBA2211CEAC16000C91DED /* ZipArchive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ZipArchive.h; path = common/zip/ZipArchive.h; sourceTree = SOURCE_ROOT; };
+		71BBA2221CEAC16000C91DED /* ZipArchive.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ZipArchive.mm; path = common/zip/ZipArchive.mm; sourceTree = SOURCE_ROOT; };
+		71BBA2281CEAC17E00C91DED /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
+		71BBA2371CEAEF0700C91DED /* crypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crypt.h; path = common/zip/minizip/crypt.h; sourceTree = SOURCE_ROOT; };
+		71BBA2381CEAEF0700C91DED /* ioapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ioapi.c; path = common/zip/minizip/ioapi.c; sourceTree = SOURCE_ROOT; };
+		71BBA2391CEAEF0700C91DED /* ioapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ioapi.h; path = common/zip/minizip/ioapi.h; sourceTree = SOURCE_ROOT; };
+		71BBA23A1CEAEF0700C91DED /* mztools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mztools.c; path = common/zip/minizip/mztools.c; sourceTree = SOURCE_ROOT; };
+		71BBA23B1CEAEF0700C91DED /* mztools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mztools.h; path = common/zip/minizip/mztools.h; sourceTree = SOURCE_ROOT; };
+		71BBA23C1CEAEF0700C91DED /* unzip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = unzip.c; path = common/zip/minizip/unzip.c; sourceTree = SOURCE_ROOT; };
+		71BBA23D1CEAEF0700C91DED /* unzip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = unzip.h; path = common/zip/minizip/unzip.h; sourceTree = SOURCE_ROOT; };
+		71BBA23E1CEAEF0700C91DED /* zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip.c; path = common/zip/minizip/zip.c; sourceTree = SOURCE_ROOT; };
+		71BBA23F1CEAEF0700C91DED /* zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zip.h; path = common/zip/minizip/zip.h; sourceTree = SOURCE_ROOT; };
+		71BF06F91D2F3CAC00981938 /* OLDataProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OLDataProvider.h; path = common/Functions/offline/OLDataProvider.h; sourceTree = SOURCE_ROOT; };
+		71BF06FA1D2F3CAC00981938 /* OLDataProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OLDataProvider.m; path = common/Functions/offline/OLDataProvider.m; sourceTree = SOURCE_ROOT; };
+		71BF06FC1D2F3CBA00981938 /* OfflineSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OfflineSettingViewController.h; path = common/Functions/offline/OfflineSettingViewController.h; sourceTree = SOURCE_ROOT; };
+		71BF06FD1D2F3CBA00981938 /* OfflineSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OfflineSettingViewController.m; path = common/Functions/offline/OfflineSettingViewController.m; sourceTree = SOURCE_ROOT; };
+		71BF07061D2F3D2800981938 /* SyncControlPanelViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SyncControlPanelViewController.h; path = common/Functions/offline/SyncControlPanelViewController.h; sourceTree = SOURCE_ROOT; };
+		71BF07071D2F3D2800981938 /* SyncControlPanelViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SyncControlPanelViewController.m; path = common/Functions/offline/SyncControlPanelViewController.m; sourceTree = SOURCE_ROOT; };
+		71C1D84C1F456CAA00CEA1C9 /* HWWeakTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HWWeakTimer.h; path = common/AutoScrollImage/HWWeakTimer.h; sourceTree = SOURCE_ROOT; };
+		71C1D84D1F456CAA00CEA1C9 /* HWWeakTimer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HWWeakTimer.m; path = common/AutoScrollImage/HWWeakTimer.m; sourceTree = SOURCE_ROOT; };
+		71C1D8521F456D2700CEA1C9 /* ModelDescriptionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ModelDescriptionController.h; path = common/Functions/modelDetail/ModelDescriptionController.h; sourceTree = SOURCE_ROOT; };
+		71C1D8531F456D2700CEA1C9 /* ModelDescriptionController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ModelDescriptionController.m; path = common/Functions/modelDetail/ModelDescriptionController.m; sourceTree = SOURCE_ROOT; };
+		71CB70731F99DF01009FDCB7 /* FileCache.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = FileCache.m; path = ../../common/FileCache.m; sourceTree = "<group>"; };
+		71CB70741F99DF02009FDCB7 /* FileCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FileCache.h; path = ../../common/FileCache.h; sourceTree = "<group>"; };
+		71CB70761F99E337009FDCB7 /* RAConvertor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RAConvertor.h; path = ../../common/RAConvertor.h; sourceTree = "<group>"; };
+		71CB70771F99E338009FDCB7 /* RAConvertor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RAConvertor.m; path = ../../common/RAConvertor.m; sourceTree = "<group>"; };
+		71D01ADC1E08CB1C006620CE /* signature.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = signature.storyboard; path = common/Functions/signature/signature.storyboard; sourceTree = SOURCE_ROOT; };
+		71D01B141E0A2055006620CE /* ImageUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ImageUtils.h; path = common/ImageUtils.h; sourceTree = SOURCE_ROOT; };
+		71D01B151E0A2055006620CE /* ImageUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ImageUtils.m; path = common/ImageUtils.m; sourceTree = SOURCE_ROOT; };
+		71D01B161E0A2055006620CE /* PDFUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PDFUtils.h; path = common/PDFUtils.h; sourceTree = SOURCE_ROOT; };
+		71D01B171E0A2055006620CE /* PDFUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PDFUtils.m; path = common/PDFUtils.m; sourceTree = SOURCE_ROOT; };
+		71D01B181E0A2055006620CE /* TextUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TextUtils.h; path = common/TextUtils.h; sourceTree = SOURCE_ROOT; };
+		71D01B191E0A2055006620CE /* TextUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TextUtils.m; path = common/TextUtils.m; sourceTree = SOURCE_ROOT; };
+		71D0344D1C9BF3C400E0F7AD /* PortfolioEditQTYViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PortfolioEditQTYViewController.h; path = common/Functions/portfolio/PortfolioEditQTYViewController.h; sourceTree = SOURCE_ROOT; };
+		71D0344E1C9BF3C400E0F7AD /* PortfolioEditQTYViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PortfolioEditQTYViewController.m; path = common/Functions/portfolio/PortfolioEditQTYViewController.m; sourceTree = SOURCE_ROOT; };
+		71D30A201CFBEDC6006F9477 /* default_appearance.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = default_appearance.json; sourceTree = "<group>"; };
+		71D30A2B1CFC0EF8006F9477 /* DefaultImageButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DefaultImageButton.h; path = common/Functions/DefaultImageButton.h; sourceTree = SOURCE_ROOT; };
+		71D30A2C1CFC0EF8006F9477 /* DefaultImageButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DefaultImageButton.m; path = common/Functions/DefaultImageButton.m; sourceTree = SOURCE_ROOT; };
+		71DEE873192DE003003F645F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+		71DEE875192DE00E003F645F /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
+		71DF74291C57560600F2789C /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Reachability.h; path = common/Reachability.h; sourceTree = SOURCE_ROOT; };
+		71DF742A1C57560600F2789C /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Reachability.m; path = common/Reachability.m; sourceTree = SOURCE_ROOT; };
+		71DF74321C5757DA00F2789C /* ActiveViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ActiveViewController.h; path = common/ActiveViewController.h; sourceTree = SOURCE_ROOT; };
+		71DF74331C5757DA00F2789C /* ActiveViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ActiveViewController.m; path = common/ActiveViewController.m; sourceTree = SOURCE_ROOT; };
+		71DF746B1C57608F00F2789C /* ImageScrollerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ImageScrollerView.h; path = common/customUI/ImageScrollerView.h; sourceTree = SOURCE_ROOT; };
+		71DF746C1C57608F00F2789C /* ImageScrollerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ImageScrollerView.m; path = common/customUI/ImageScrollerView.m; sourceTree = SOURCE_ROOT; };
+		71DF746D1C57608F00F2789C /* ImageScrollerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ImageScrollerViewController.h; path = common/customUI/ImageScrollerViewController.h; sourceTree = SOURCE_ROOT; };
+		71DF746E1C57608F00F2789C /* ImageScrollerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ImageScrollerViewController.m; path = common/customUI/ImageScrollerViewController.m; sourceTree = SOURCE_ROOT; };
+		71DF746F1C57608F00F2789C /* ImageUploadViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ImageUploadViewController.h; path = common/customUI/ImageUploadViewController.h; sourceTree = SOURCE_ROOT; };
+		71DF74701C57608F00F2789C /* ImageUploadViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ImageUploadViewController.m; path = common/customUI/ImageUploadViewController.m; sourceTree = SOURCE_ROOT; };
+		71DF74711C57608F00F2789C /* ImageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ImageViewController.h; path = common/customUI/ImageViewController.h; sourceTree = SOURCE_ROOT; };
+		71DF74721C57608F00F2789C /* ImageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ImageViewController.m; path = common/customUI/ImageViewController.m; sourceTree = SOURCE_ROOT; };
+		71DF74731C57608F00F2789C /* NIDropDown.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NIDropDown.h; path = common/customUI/NIDropDown.h; sourceTree = SOURCE_ROOT; };
+		71DF74741C57608F00F2789C /* NIDropDown.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NIDropDown.m; path = common/customUI/NIDropDown.m; sourceTree = SOURCE_ROOT; };
+		71DF74751C57608F00F2789C /* PulldownMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PulldownMenu.h; path = common/customUI/PulldownMenu.h; sourceTree = SOURCE_ROOT; };
+		71DF74761C57608F00F2789C /* PulldownMenu.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PulldownMenu.m; path = common/customUI/PulldownMenu.m; sourceTree = SOURCE_ROOT; };
+		71DF74771C57608F00F2789C /* RadioButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RadioButton.h; path = common/customUI/RadioButton.h; sourceTree = SOURCE_ROOT; };
+		71DF74781C57608F00F2789C /* RadioButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RadioButton.m; path = common/customUI/RadioButton.m; sourceTree = SOURCE_ROOT; };
+		71DF747B1C57608F00F2789C /* SimpleGrid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SimpleGrid.h; path = common/customUI/SimpleGrid.h; sourceTree = SOURCE_ROOT; };
+		71DF747C1C57608F00F2789C /* SimpleGrid.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SimpleGrid.m; path = common/customUI/SimpleGrid.m; sourceTree = SOURCE_ROOT; };
+		71DF747F1C57608F00F2789C /* TouchLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TouchLabel.h; path = common/customUI/TouchLabel.h; sourceTree = SOURCE_ROOT; };
+		71DF74801C57608F00F2789C /* TouchLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TouchLabel.m; path = common/customUI/TouchLabel.m; sourceTree = SOURCE_ROOT; };
+		71DF74811C57608F00F2789C /* UILabel+FontAppearance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UILabel+FontAppearance.h"; path = "common/customUI/UILabel+FontAppearance.h"; sourceTree = SOURCE_ROOT; };
+		71DF74821C57608F00F2789C /* UILabel+FontAppearance.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UILabel+FontAppearance.m"; path = "common/customUI/UILabel+FontAppearance.m"; sourceTree = SOURCE_ROOT; };
+		71DF748F1C57614C00F2789C /* PhotoBorder.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = PhotoBorder.png; path = common/photoStack/PhotoBorder.png; sourceTree = SOURCE_ROOT; };
+		71DF74901C57614C00F2789C /* PhotoBorder@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "PhotoBorder@2x.png"; path = "common/photoStack/PhotoBorder@2x.png"; sourceTree = SOURCE_ROOT; };
+		71DF74911C57614C00F2789C /* PhotoStackView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PhotoStackView.h; path = common/photoStack/PhotoStackView.h; sourceTree = SOURCE_ROOT; };
+		71DF74921C57614C00F2789C /* PhotoStackView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PhotoStackView.m; path = common/photoStack/PhotoStackView.m; sourceTree = SOURCE_ROOT; };
+		71DF74931C57614C00F2789C /* PhotoStackViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PhotoStackViewController.h; path = common/photoStack/PhotoStackViewController.h; sourceTree = SOURCE_ROOT; };
+		71DF74941C57614C00F2789C /* PhotoStackViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PhotoStackViewController.m; path = common/photoStack/PhotoStackViewController.m; sourceTree = SOURCE_ROOT; };
+		71E5A00F1DC99370005BF655 /* config.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = config.plist; sourceTree = "<group>"; };
+		71E9F6BA1F8B52DC0052C78E /* NetworkUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = NetworkUtils.m; path = ../../common/NetworkUtils.m; sourceTree = "<group>"; };
+		71E9F6BB1F8B52DC0052C78E /* NetworkUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = NetworkUtils.h; path = ../../common/NetworkUtils.h; sourceTree = "<group>"; };
+		71E9F6C01F8B57E30052C78E /* RANetworkTaskDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RANetworkTaskDelegate.m; path = ../../common/upload/RANetworkTaskDelegate.m; sourceTree = "<group>"; };
+		71E9F6C11F8B57E40052C78E /* RANetworkTaskDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RANetworkTaskDelegate.h; path = ../../common/upload/RANetworkTaskDelegate.h; sourceTree = "<group>"; };
+		71FFBBE51C60894900D91DC2 /* iSalesDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesDB.h; path = common/data_provider/iSalesDB.h; sourceTree = SOURCE_ROOT; };
+		71FFBBE61C60894900D91DC2 /* iSalesDB.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesDB.m; path = common/data_provider/iSalesDB.m; sourceTree = SOURCE_ROOT; };
+		71FFBBE71C60894900D91DC2 /* RANetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RANetwork.h; path = common/data_provider/RANetwork.h; sourceTree = SOURCE_ROOT; };
+		71FFBBE81C60894900D91DC2 /* RANetwork.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RANetwork.m; path = common/data_provider/RANetwork.m; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		713F76A31929F4A7006A7305 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				42D9A0251EB03994008AF7AF /* libAdIdAccess.a in Frameworks */,
+				42D9A0231EB02DA6008AF7AF /* AdSupport.framework in Frameworks */,
+				42BEF35F1E89FEE300632AB6 /* CoreData.framework in Frameworks */,
+				42BEF35D1E89FECD00632AB6 /* SystemConfiguration.framework in Frameworks */,
+				71BBA2291CEAC17E00C91DED /* libz.tbd in Frameworks */,
+				7187162C1C43428100F25860 /* libScanApiCore.a in Frameworks */,
+				42BEF3551E89FE1200632AB6 /* GGLCore.framework in Frameworks */,
+				718716291C433DA400F25860 /* AVFoundation.framework in Frameworks */,
+				718716271C433D9700F25860 /* AudioToolbox.framework in Frameworks */,
+				42BEF3541E89FE1200632AB6 /* GGLAnalytics.framework in Frameworks */,
+				42BEF3501E89FE1100632AB6 /* FirebaseCore.framework in Frameworks */,
+				718716251C433D8B00F25860 /* ExternalAccessory.framework in Frameworks */,
+				716961B519594E1000B19FB4 /* libsqlite3.dylib in Frameworks */,
+				42BEF3521E89FE1200632AB6 /* FirebaseInstanceID.framework in Frameworks */,
+				71DEE876192DE00E003F645F /* Accelerate.framework in Frameworks */,
+				71DEE874192DE003003F645F /* QuartzCore.framework in Frameworks */,
+				713F76AC1929F4A7006A7305 /* CoreGraphics.framework in Frameworks */,
+				713F76AE1929F4A7006A7305 /* UIKit.framework in Frameworks */,
+				713F76AA1929F4A7006A7305 /* Foundation.framework in Frameworks */,
+				42BEF34F1E89FE1100632AB6 /* FirebaseAnalytics.framework in Frameworks */,
+				42BEF3571E89FE1200632AB6 /* libGoogleAnalytics.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		3C514975273E07C400F78617 /* EnumSelectAndSort\ */ = {
+			isa = PBXGroup;
+			children = (
+				3C514978273E07D500F78617 /* EnumModel.h */,
+				3C51497C273E07D600F78617 /* EnumModel.m */,
+				3C514976273E07D500F78617 /* EnumSelectAndSort.storyboard */,
+				3C514977273E07D500F78617 /* EnumSelectAndSortCell.h */,
+				3C51497A273E07D500F78617 /* EnumSelectAndSortCell.m */,
+				3C51497B273E07D500F78617 /* EnumSelectAndSortViewController.h */,
+				3C514979273E07D500F78617 /* EnumSelectAndSortViewController.m */,
+			);
+			name = "EnumSelectAndSort\\";
+			sourceTree = "<group>";
+		};
+		3C514987273E091500F78617 /* PhotoList */ = {
+			isa = PBXGroup;
+			children = (
+				3C514988273E091500F78617 /* Storyboard */,
+				3C51498A273E091500F78617 /* Controller */,
+				3C51498D273E091500F78617 /* View */,
+			);
+			name = PhotoList;
+			path = ../../common/customUI/PhotoList;
+			sourceTree = "<group>";
+		};
+		3C514988273E091500F78617 /* Storyboard */ = {
+			isa = PBXGroup;
+			children = (
+				3C514989273E091500F78617 /* PhotoList.storyboard */,
+			);
+			path = Storyboard;
+			sourceTree = "<group>";
+		};
+		3C51498A273E091500F78617 /* Controller */ = {
+			isa = PBXGroup;
+			children = (
+				3C51498B273E091500F78617 /* ContentPreviewController.m */,
+				3C51498C273E091500F78617 /* ContentPreviewController.h */,
+			);
+			path = Controller;
+			sourceTree = "<group>";
+		};
+		3C51498D273E091500F78617 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				3C51498E273E091500F78617 /* VideoPreviewCell.m */,
+				3C51498F273E091500F78617 /* PhotoPreviewCell.h */,
+				3C514990273E091500F78617 /* PhotoPreviewCell.m */,
+				3C514991273E091500F78617 /* VideoPreviewCell.h */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		3C514996273E097B00F78617 /* HUD */ = {
+			isa = PBXGroup;
+			children = (
+				3C514997273E097B00F78617 /* RAProgressHUD.h */,
+				3C514998273E097B00F78617 /* RAProgressHUD.m */,
+			);
+			name = HUD;
+			path = ../../common/HUD;
+			sourceTree = "<group>";
+		};
+		3C51E7C127B261EC00E61163 /* upload */ = {
+			isa = PBXGroup;
+			children = (
+				3C51E7C227B261EC00E61163 /* RANetworkTaskDelegate.m */,
+				3C51E7C327B261EC00E61163 /* RAUploadOperation.m */,
+				3C51E7C427B261EC00E61163 /* RAUploadManager.h */,
+				3C51E7C527B261EC00E61163 /* RAUploadListViewController.m */,
+				3C51E7C627B261EC00E61163 /* RANetworkTaskDelegate.h */,
+				3C51E7C727B261EC00E61163 /* RAUploadOperation.h */,
+				3C51E7C827B261EC00E61163 /* RAUploadManager.m */,
+				3C51E7C927B261EC00E61163 /* RAUploadListViewController.h */,
+			);
+			name = upload;
+			path = ../../common/upload;
+			sourceTree = "<group>";
+		};
+		3C7D31F127882A5F005EB380 /* OLO */ = {
+			isa = PBXGroup;
+			children = (
+				3C51E7D127B2628900E61163 /* UIView+Toast.h */,
+				3C51E7D227B2628900E61163 /* UIView+Toast.m */,
+				3C51E7C127B261EC00E61163 /* upload */,
+				3CF33C8927BF4936001CBEEC /* ServerSettingViewController.h */,
+				3CF33C8A27BF4936001CBEEC /* ServerSettingViewController.m */,
+				3C872A1D27955CF300BE1FC8 /* scan_cart.json */,
+				3C872A252797FE7C00BE1FC8 /* scan_order.json */,
+				3C51E7BB27B2599E00E61163 /* ScanOrderListViewController.h */,
+				3C51E7BC27B2599E00E61163 /* ScanOrderListViewController.m */,
+				3C51E7CE27B2623700E61163 /* UploadCell.h */,
+				3C51E7CF27B2623700E61163 /* UploadCell.m */,
+				3C473C8F27C4D22900CC8C12 /* ScanUserListViewController.h */,
+				3C473C9027C4D22900CC8C12 /* ScanUserListViewController.m */,
+			);
+			name = OLO;
+			sourceTree = "<group>";
+		};
+		4254CCDB1FB1AB6600C8B4B6 /* Order Editor */ = {
+			isa = PBXGroup;
+			children = (
+				4254CCDC1FB1AC2B00C8B4B6 /* RAOrderEditorViewController.h */,
+				4254CCDD1FB1AC2B00C8B4B6 /* RAOrderEditorViewController.m */,
+			);
+			name = "Order Editor";
+			sourceTree = "<group>";
+		};
+		4289800E1E24924D005F1BD8 /* sort */ = {
+			isa = PBXGroup;
+			children = (
+				4289800F1E24924D005F1BD8 /* SortButton.h */,
+				428980101E24924D005F1BD8 /* SortButton.m */,
+				428980111E24924D005F1BD8 /* SortItemCell.h */,
+				428980121E24924D005F1BD8 /* SortItemCell.m */,
+				428980131E24924D005F1BD8 /* SortItemViewController.h */,
+				428980141E24924D005F1BD8 /* SortItemViewController.m */,
+			);
+			name = sort;
+			path = common/sort;
+			sourceTree = SOURCE_ROOT;
+		};
+		428980221E2492D2005F1BD8 /* Price Setting */ = {
+			isa = PBXGroup;
+			children = (
+				428980231E2492D2005F1BD8 /* CategoryPriceCell.h */,
+				428980241E2492D2005F1BD8 /* CategoryPriceCell.m */,
+				428980251E2492D2005F1BD8 /* CategoryPriceViewController.h */,
+				428980261E2492D2005F1BD8 /* CategoryPriceViewController.m */,
+				428980271E2492D2005F1BD8 /* PriceSettingViewController.h */,
+				428980281E2492D2005F1BD8 /* PriceSettingViewController.m */,
+				428980291E2492D2005F1BD8 /* SetCategoryPriceController.h */,
+				4289802A1E2492D2005F1BD8 /* SetCategoryPriceController.m */,
+			);
+			name = "Price Setting";
+			path = "common/Price Setting";
+			sourceTree = SOURCE_ROOT;
+		};
+		4289803C1E249339005F1BD8 /* JKLock */ = {
+			isa = PBXGroup;
+			children = (
+				4289803D1E249339005F1BD8 /* JKDotView.h */,
+				4289803E1E249339005F1BD8 /* JKDotView.m */,
+				4289803F1E249339005F1BD8 /* JKLockButton.h */,
+				428980401E249339005F1BD8 /* JKLockButton.m */,
+				428980411E249339005F1BD8 /* JKLockController.h */,
+				428980421E249339005F1BD8 /* JKLockController.m */,
+				428980431E249339005F1BD8 /* JKMessageBoxController.h */,
+				428980441E249339005F1BD8 /* JKMessageBoxController.m */,
+			);
+			name = JKLock;
+			path = common/JKLock;
+			sourceTree = SOURCE_ROOT;
+		};
+		4289805A1E249375005F1BD8 /* UIColor+HEX */ = {
+			isa = PBXGroup;
+			children = (
+				4289805B1E249375005F1BD8 /* UIColor+JK_HEX.h */,
+				4289805C1E249375005F1BD8 /* UIColor+JK_HEX.m */,
+			);
+			name = "UIColor+HEX";
+			path = "common/UIColor+HEX";
+			sourceTree = SOURCE_ROOT;
+		};
+		4289809B1E24B526005F1BD8 /* JKTimer */ = {
+			isa = PBXGroup;
+			children = (
+				4289809C1E24B526005F1BD8 /* JKTimerManager.h */,
+				4289809D1E24B526005F1BD8 /* JKTimerManager.m */,
+			);
+			name = JKTimer;
+			path = common/JKTimer;
+			sourceTree = SOURCE_ROOT;
+		};
+		4295AE181FE74D26007BE365 /* AutoComplete */ = {
+			isa = PBXGroup;
+			children = (
+				4295AE191FE74D46007BE365 /* CommonEditorAutoCompleteView.h */,
+				4295AE1A1FE74D46007BE365 /* CommonEditorAutoCompleteView.m */,
+				4295AE1B1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib */,
+			);
+			name = AutoComplete;
+			sourceTree = "<group>";
+		};
+		42BEF3211E89FE1100632AB6 /* GoogleAnalytics */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF3601E8A005800632AB6 /* GoogleAnalyst.h */,
+				42BEF3611E8A005800632AB6 /* GoogleAnalyst.m */,
+				42BEF3221E89FE1100632AB6 /* FirebaseAnalytics */,
+				42BEF3251E89FE1100632AB6 /* FirebaseCore */,
+				42BEF3281E89FE1100632AB6 /* FirebaseInstanceID */,
+				42BEF32D1E89FE1100632AB6 /* Google */,
+				42BEF33A1E89FE1100632AB6 /* GoogleAnalytics */,
+				42BEF3481E89FE1100632AB6 /* GoogleToolboxForMac */,
+			);
+			path = GoogleAnalytics;
+			sourceTree = SOURCE_ROOT;
+		};
+		42BEF3221E89FE1100632AB6 /* FirebaseAnalytics */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF3231E89FE1100632AB6 /* Frameworks */,
+			);
+			path = FirebaseAnalytics;
+			sourceTree = "<group>";
+		};
+		42BEF3231E89FE1100632AB6 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF3241E89FE1100632AB6 /* FirebaseAnalytics.framework */,
+			);
+			path = Frameworks;
+			sourceTree = "<group>";
+		};
+		42BEF3251E89FE1100632AB6 /* FirebaseCore */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF3261E89FE1100632AB6 /* Frameworks */,
+			);
+			path = FirebaseCore;
+			sourceTree = "<group>";
+		};
+		42BEF3261E89FE1100632AB6 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF3271E89FE1100632AB6 /* FirebaseCore.framework */,
+			);
+			path = Frameworks;
+			sourceTree = "<group>";
+		};
+		42BEF3281E89FE1100632AB6 /* FirebaseInstanceID */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF3291E89FE1100632AB6 /* CHANGELOG.md */,
+				42BEF32A1E89FE1100632AB6 /* Frameworks */,
+				42BEF32C1E89FE1100632AB6 /* README.md */,
+			);
+			path = FirebaseInstanceID;
+			sourceTree = "<group>";
+		};
+		42BEF32A1E89FE1100632AB6 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF32B1E89FE1100632AB6 /* FirebaseInstanceID.framework */,
+			);
+			path = Frameworks;
+			sourceTree = "<group>";
+		};
+		42BEF32D1E89FE1100632AB6 /* Google */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF32E1E89FE1100632AB6 /* Frameworks */,
+				42BEF3311E89FE1100632AB6 /* Headers */,
+				42BEF3391E89FE1100632AB6 /* README.md */,
+			);
+			path = Google;
+			sourceTree = "<group>";
+		};
+		42BEF32E1E89FE1100632AB6 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF32F1E89FE1100632AB6 /* GGLAnalytics.framework */,
+				42BEF3301E89FE1100632AB6 /* GGLCore.framework */,
+			);
+			path = Frameworks;
+			sourceTree = "<group>";
+		};
+		42BEF3311E89FE1100632AB6 /* Headers */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF3321E89FE1100632AB6 /* Analytics.h */,
+				42BEF3331E89FE1100632AB6 /* Core.h */,
+				42BEF3341E89FE1100632AB6 /* module.modulemap */,
+				42BEF3351E89FE1100632AB6 /* ModuleHeaders */,
+			);
+			path = Headers;
+			sourceTree = "<group>";
+		};
+		42BEF3351E89FE1100632AB6 /* ModuleHeaders */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF3361E89FE1100632AB6 /* Analytics-Module.h */,
+				42BEF3371E89FE1100632AB6 /* Core-Module.h */,
+				42BEF3381E89FE1100632AB6 /* SignIn-Module.h */,
+			);
+			path = ModuleHeaders;
+			sourceTree = "<group>";
+		};
+		42BEF33A1E89FE1100632AB6 /* GoogleAnalytics */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF33B1E89FE1100632AB6 /* Libraries */,
+				42BEF33D1E89FE1100632AB6 /* Sources */,
+			);
+			path = GoogleAnalytics;
+			sourceTree = "<group>";
+		};
+		42BEF33B1E89FE1100632AB6 /* Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF33C1E89FE1100632AB6 /* libGoogleAnalytics.a */,
+				42D9A0241EB03994008AF7AF /* libAdIdAccess.a */,
+			);
+			path = Libraries;
+			sourceTree = "<group>";
+		};
+		42BEF33D1E89FE1100632AB6 /* Sources */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF33E1E89FE1100632AB6 /* GAI.h */,
+				42BEF33F1E89FE1100632AB6 /* GAIDictionaryBuilder.h */,
+				42BEF3401E89FE1100632AB6 /* GAIEcommerceFields.h */,
+				42BEF3411E89FE1100632AB6 /* GAIEcommerceProduct.h */,
+				42BEF3421E89FE1100632AB6 /* GAIEcommerceProductAction.h */,
+				42BEF3431E89FE1100632AB6 /* GAIEcommercePromotion.h */,
+				42BEF3441E89FE1100632AB6 /* GAIFields.h */,
+				42BEF3451E89FE1100632AB6 /* GAILogger.h */,
+				42BEF3461E89FE1100632AB6 /* GAITrackedViewController.h */,
+				42BEF3471E89FE1100632AB6 /* GAITracker.h */,
+			);
+			path = Sources;
+			sourceTree = "<group>";
+		};
+		42BEF3481E89FE1100632AB6 /* GoogleToolboxForMac */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF3491E89FE1100632AB6 /* Foundation */,
+				42BEF34C1E89FE1100632AB6 /* GTMDefines.h */,
+				42BEF34E1E89FE1100632AB6 /* README.md */,
+			);
+			path = GoogleToolboxForMac;
+			sourceTree = "<group>";
+		};
+		42BEF3491E89FE1100632AB6 /* Foundation */ = {
+			isa = PBXGroup;
+			children = (
+				42BEF34A1E89FE1100632AB6 /* GTMNSData+zlib.h */,
+				42BEF34B1E89FE1100632AB6 /* GTMNSData+zlib.m */,
+			);
+			path = Foundation;
+			sourceTree = "<group>";
+		};
+		42BEF35B1E89FECC00632AB6 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				42D9A0221EB02DA6008AF7AF /* AdSupport.framework */,
+				42BEF35E1E89FEE300632AB6 /* CoreData.framework */,
+				42BEF35C1E89FECD00632AB6 /* SystemConfiguration.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		42FD1A001FBD19B800C5D9A8 /* Order Preview */ = {
+			isa = PBXGroup;
+			children = (
+				42FD1A011FBD1A3000C5D9A8 /* RAOrderPreviewController.h */,
+				42FD1A021FBD1A3000C5D9A8 /* RAOrderPreviewController.m */,
+				424A02CF1FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.h */,
+				424A02D01FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m */,
+			);
+			name = "Order Preview";
+			sourceTree = "<group>";
+		};
+		710212821B8D59DE00E1788B /* watchlist */ = {
+			isa = PBXGroup;
+			children = (
+				7162A5E11C5877CE00AB630E /* WatchListViewController.h */,
+				7162A5E21C5877CE00AB630E /* WatchListViewController.m */,
+			);
+			name = watchlist;
+			sourceTree = "<group>";
+		};
+		711A551F1C153AA800EF5FDA /* portfolio */ = {
+			isa = PBXGroup;
+			children = (
+				3C2F99B7237BE1790000808F /* PortfolioListTableViewCell.h */,
+				3C2F99B6237BE1790000808F /* PortfolioListTableViewCell.m */,
+				3C7E5A8D237BDB0C006D0105 /* PortfolioListViewController.h */,
+				3C7E5A8C237BDB0C006D0105 /* PortfolioListViewController.m */,
+				7162A5A61C58735900AB630E /* PortfolioViewController.h */,
+				7162A5A71C58735900AB630E /* PortfolioViewController.m */,
+				7162A5A81C58735900AB630E /* TearSheetParamViewController.h */,
+				7162A5A91C58735900AB630E /* TearSheetParamViewController.m */,
+				71D0344D1C9BF3C400E0F7AD /* PortfolioEditQTYViewController.h */,
+				71D0344E1C9BF3C400E0F7AD /* PortfolioEditQTYViewController.m */,
+			);
+			name = portfolio;
+			sourceTree = "<group>";
+		};
+		712AFEC41DBA044C00254965 /* pdfCreator */ = {
+			isa = PBXGroup;
+			children = (
+				712AFEC51DBA050200254965 /* BasicDrawable.h */,
+				712AFEC61DBA050200254965 /* BasicDrawable.m */,
+				715671311E10A0EF006324A0 /* RectDrawable.h */,
+				715671321E10A0EF006324A0 /* RectDrawable.m */,
+				712AFEC71DBA050200254965 /* GridDrawable.h */,
+				712AFEC81DBA050200254965 /* GridDrawable.m */,
+				712AFEC91DBA050200254965 /* GroupDrawable.h */,
+				712AFECA1DBA050200254965 /* GroupDrawable.m */,
+				712AFECB1DBA050200254965 /* ImageDrawable.h */,
+				712AFECC1DBA050200254965 /* ImageDrawable.m */,
+				712AFECD1DBA050200254965 /* LineDrawable.h */,
+				712AFECE1DBA050200254965 /* LineDrawable.m */,
+				712AFECF1DBA050200254965 /* PDFDrawable.h */,
+				712AFED01DBA050200254965 /* PDFDrawable.m */,
+				712AFED11DBA050200254965 /* RAPDFPage.h */,
+				712AFED21DBA050200254965 /* RAPDFPage.m */,
+				712AFED31DBA050200254965 /* TableDrawable.h */,
+				712AFED41DBA050200254965 /* TableDrawable.m */,
+				712AFED51DBA050200254965 /* TextDrawable.h */,
+				712AFED61DBA050200254965 /* TextDrawable.m */,
+				712AFEE01DBA077F00254965 /* pdfCreator.h */,
+				712AFEE11DBA077F00254965 /* pdfCreator.m */,
+			);
+			name = pdfCreator;
+			sourceTree = "<group>";
+		};
+		712AFEE31DBDAEA000254965 /* PDFResource */ = {
+			isa = PBXGroup;
+			children = (
+				7142E8471DBF01A10077EFA2 /* font */,
+				712AFEE41DBDAF0300254965 /* pdfcreator.xcassets */,
+				7142E8481DBF01AC0077EFA2 /* template */,
+			);
+			name = PDFResource;
+			sourceTree = "<group>";
+		};
+		713393FE19936C980075BBAC /* Signature */ = {
+			isa = PBXGroup;
+			children = (
+				71D01ADC1E08CB1C006620CE /* signature.storyboard */,
+				7162A5C61C58761500AB630E /* SignatureView.h */,
+				7162A5C71C58761500AB630E /* SignatureView.m */,
+				7162A5C81C58761500AB630E /* SignatureViewController.h */,
+				7162A5C91C58761500AB630E /* SignatureViewController.m */,
+			);
+			name = Signature;
+			sourceTree = "<group>";
+		};
+		713F769D1929F4A7006A7305 = {
+			isa = PBXGroup;
+			children = (
+				713F76AF1929F4A7006A7305 /* HMLG Scan Order */,
+				42BEF35B1E89FECC00632AB6 /* Frameworks */,
+			);
+			sourceTree = "<group>";
+		};
+		713F76A71929F4A7006A7305 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				713F76A61929F4A7006A7305 /* HMLG Scan Order.app */,
+			);
+			name = Products;
+			path = ..;
+			sourceTree = "<group>";
+		};
+		713F76A81929F4A7006A7305 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				71BBA2281CEAC17E00C91DED /* libz.tbd */,
+				7187162A1C43406300F25860 /* libScanApiCore.a */,
+				718716281C433DA400F25860 /* AVFoundation.framework */,
+				718716261C433D9700F25860 /* AudioToolbox.framework */,
+				718716241C433D8B00F25860 /* ExternalAccessory.framework */,
+				718716221C433D5000F25860 /* libScanApiCore.a */,
+				716961B419594E1000B19FB4 /* libsqlite3.dylib */,
+				71DEE875192DE00E003F645F /* Accelerate.framework */,
+				71DEE873192DE003003F645F /* QuartzCore.framework */,
+				713F76A91929F4A7006A7305 /* Foundation.framework */,
+				713F76AB1929F4A7006A7305 /* CoreGraphics.framework */,
+				713F76AD1929F4A7006A7305 /* UIKit.framework */,
+				713F76C81929F4A7006A7305 /* XCTest.framework */,
+			);
+			name = Frameworks;
+			path = ..;
+			sourceTree = "<group>";
+		};
+		713F76AF1929F4A7006A7305 /* HMLG Scan Order */ = {
+			isa = PBXGroup;
+			children = (
+				3C4DA61D27B50199001EB44E /* Main.storyboard */,
+				3C7D31F127882A5F005EB380 /* OLO */,
+				71DF742C1C57567800F2789C /* HMLG SO */,
+				712AFEE31DBDAEA000254965 /* PDFResource */,
+				716387C71953CDB4006E65E6 /* utils */,
+				718716141C433B4300F25860 /* ScanAPI */,
+				7190F1091BBBCAF100B2F243 /* PDF+Web */,
+				714C6ADA1B83016A000123E3 /* address */,
+				71F731FC192F395000F2CF76 /* AutoScrollImage */,
+				7143E0C919414E4B00B2EB1A /* cartView */,
+				7191A67319650A11007DC977 /* cagegory */,
+				716BA58D195AB4170007093A /* categoryMenu */,
+				714C6ADE1B83069A000123E3 /* creditcard */,
+				7185C3CE1B919C7200B4823C /* contact */,
+				719E45D71B63883100FD098B /* modelDetail */,
+				71DBACEE1B5E401A00D8BD7E /* HomeView */,
+				714C6AE21B83107A000123E3 /* order */,
+				4254CCDB1FB1AB6600C8B4B6 /* Order Editor */,
+				42FD1A001FBD19B800C5D9A8 /* Order Preview */,
+				717AE10B1D1A5E99007DC5CA /* offline */,
+				711A551F1C153AA800EF5FDA /* portfolio */,
+				714A52061995E90300627D23 /* cam_scan */,
+				71A2478A1B955448000E1F84 /* search */,
+				713393FE19936C980075BBAC /* Signature */,
+				716387CC1953D693006E65E6 /* sideMenu */,
+				710212821B8D59DE00E1788B /* watchlist */,
+				428980221E2492D2005F1BD8 /* Price Setting */,
+				713F76B81929F4A7006A7305 /* AppDelegate.h */,
+				713F76B91929F4A7006A7305 /* AppDelegate.m */,
+				714036F821646B8C0029B10F /* AppDelegateBase.h */,
+				714036F721646B8C0029B10F /* AppDelegateBase.m */,
+				428980701E24B1E9005F1BD8 /* RASingleton.h */,
+				428980711E24B1E9005F1BD8 /* RASingleton.m */,
+				428980021E2490C1005F1BD8 /* NotificationNameCenter.h */,
+				428980031E2490C1005F1BD8 /* NotificationNameCenter.m */,
+				3C4DA62427B503B1001EB44E /* MainViewController.h */,
+				3C4DA62327B503B1001EB44E /* MainViewController.m */,
+				714037032164707D0029B10F /* MainHeaderViewColorPanel.h */,
+				714037042164707D0029B10F /* MainHeaderViewColorPanel.m */,
+				7162A5E41C58781000AB630E /* iSalesNavigationController.h */,
+				7162A5E51C58781000AB630E /* iSalesNavigationController.m */,
+				3C6831502396082700AD5BD7 /* ERP_Mobile_Cart.storyboard */,
+				3C6831532396082700AD5BD7 /* ERP_Mobile_Contact.storyboard */,
+				3C68314F2396082700AD5BD7 /* ERP_Mobile_Discard.storyboard */,
+				3C6831512396082700AD5BD7 /* ERP_Mobile_Model.storyboard */,
+				3C6831542396082800AD5BD7 /* ERP_Mobile_Order.storyboard */,
+				3C6831552396082800AD5BD7 /* ERP_Mobile_Portfolio.storyboard */,
+				3C6831522396082700AD5BD7 /* ERP_Mobile_Search.storyboard */,
+				7143E208202FCEEB00451903 /* OLM.storyboard */,
+				7143E20E202FCEF600451903 /* CUL.storyboard */,
+				713F76C11929F4A7006A7305 /* Images.xcassets */,
+				713F76B01929F4A7006A7305 /* Supporting Files */,
+				713F76B21929F4A7006A7305 /* InfoPlist.strings */,
+				3C4DA61527B4E95C001EB44E /* HMLG Scan Order-Info.plist */,
+				713F76B51929F4A7006A7305 /* main.m */,
+				713F76B71929F4A7006A7305 /* HMLG Scan Order-Prefix.pch */,
+				713F76A81929F4A7006A7305 /* Frameworks */,
+				713F76A71929F4A7006A7305 /* Products */,
+			);
+			path = "HMLG Scan Order";
+			sourceTree = "<group>";
+		};
+		713F76B01929F4A7006A7305 /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				423CC87421D22FDE008BD2C4 /* Launch Screen.storyboard */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+		7142E8471DBF01A10077EFA2 /* font */ = {
+			isa = PBXGroup;
+			children = (
+				7142E8781DBF57510077EFA2 /* KALINGA.TTF */,
+				7142E8791DBF57510077EFA2 /* KALINGAB.TTF */,
+				7142E87C1DC300010077EFA2 /* DejaVuSans-Bold.ttf */,
+				7142E87D1DC300010077EFA2 /* DejaVuSans.ttf */,
+			);
+			name = font;
+			sourceTree = "<group>";
+		};
+		7142E8481DBF01AC0077EFA2 /* template */ = {
+			isa = PBXGroup;
+			children = (
+				7143E224202FD2CA00451903 /* portfolio_2x3.json */,
+				7143E223202FD2CA00451903 /* portfolio_3x2.json */,
+				7143E222202FD2CA00451903 /* so_thumb.json */,
+				7143E225202FD2CA00451903 /* so.json */,
+				42E489601EE63F4E007256A0 /* more_color_64.png */,
+			);
+			name = template;
+			sourceTree = "<group>";
+		};
+		7143E0C919414E4B00B2EB1A /* cartView */ = {
+			isa = PBXGroup;
+			children = (
+				7162A50C1C58704600AB630E /* BundleModelCell.h */,
+				7162A50D1C58704600AB630E /* BundleModelCell.m */,
+				7162A50E1C58704600AB630E /* BundleModelViewController.h */,
+				7162A50F1C58704600AB630E /* BundleModelViewController.m */,
+				7162A5101C58704600AB630E /* CartViewController.h */,
+				7162A5111C58704600AB630E /* CartViewController.m */,
+				7162A5121C58704600AB630E /* EditModelPriceViewController.h */,
+				7162A5131C58704600AB630E /* EditModelPriceViewController.m */,
+				7162A5141C58704600AB630E /* ModelItemCell.h */,
+				7162A5151C58704600AB630E /* ModelItemCell.m */,
+				712C40B71C731126000E6831 /* ItemNotesViewController.h */,
+				712C40B81C731126000E6831 /* ItemNotesViewController.m */,
+				712C40B41C7310F4000E6831 /* CartGeneralNotesViewController.h */,
+				712C40B51C7310F4000E6831 /* CartGeneralNotesViewController.m */,
+			);
+			name = cartView;
+			sourceTree = "<group>";
+		};
+		7143E215202FD12B00451903 /* json */ = {
+			isa = PBXGroup;
+			children = (
+				7143E213202FCFC000451903 /* debug_category_filter.json */,
+				7143E216202FD15A00451903 /* category.json */,
+				7143E218202FD1DC00451903 /* contactAdvanceSearch.json */,
+				7143E219202FD1DC00451903 /* createContact.json */,
+				7143E21C202FD21F00451903 /* editContact.json */,
+				7143E21F202FD28900451903 /* placeOrderTemplate.json */,
+				7143E21E202FD28800451903 /* TearSheet.json */,
+				7143E22A202FD37500451903 /* orderDetail.json */,
+			);
+			name = json;
+			sourceTree = "<group>";
+		};
+		714A52061995E90300627D23 /* cam_scan */ = {
+			isa = PBXGroup;
+			children = (
+				3CF33C8E27BF4A3D001CBEEC /* QRCode.storyboard */,
+				3CF33C8D27BF4A3D001CBEEC /* RAQRCodeScannerViewController.h */,
+				3CF33C8C27BF4A3D001CBEEC /* RAQRCodeScannerViewController.m */,
+				7162A5AE1C58738600AB630E /* ScannerControllerView.h */,
+				7162A5AF1C58738600AB630E /* ScannerControllerView.m */,
+				7162A5B01C58738600AB630E /* ScannerViewController.h */,
+				7162A5B11C58738600AB630E /* ScannerViewController.m */,
+				7162A5B21C58738600AB630E /* SCShapeView.h */,
+				7162A5B31C58738600AB630E /* SCShapeView.m */,
+			);
+			name = cam_scan;
+			sourceTree = "<group>";
+		};
+		714C6ADA1B83016A000123E3 /* address */ = {
+			isa = PBXGroup;
+			children = (
+				7162A5001C586F5B00AB630E /* AddressEditorViewController.h */,
+				7162A5011C586F5B00AB630E /* AddressEditorViewController.m */,
+			);
+			name = address;
+			sourceTree = "<group>";
+		};
+		714C6ADE1B83069A000123E3 /* creditcard */ = {
+			isa = PBXGroup;
+			children = (
+				7162A54C1C58722200AB630E /* CreditCardEditorViewController.h */,
+				7162A54D1C58722200AB630E /* CreditCardEditorViewController.m */,
+			);
+			name = creditcard;
+			sourceTree = "<group>";
+		};
+		714C6AE21B83107A000123E3 /* order */ = {
+			isa = PBXGroup;
+			children = (
+				7162A5861C58733400AB630E /* CreateOrderViewController.h */,
+				7162A5871C58733400AB630E /* CreateOrderViewController.m */,
+				7162A5881C58733400AB630E /* OrderDetailHtmlCell.h */,
+				7162A5891C58733400AB630E /* OrderDetailHtmlCell.m */,
+				7162A58A1C58733400AB630E /* OrderDetailInfoCell.h */,
+				7162A58B1C58733400AB630E /* OrderDetailInfoCell.m */,
+				7162A58C1C58733400AB630E /* OrderDetailModelCell.h */,
+				7162A58D1C58733400AB630E /* OrderDetailModelCell.m */,
+				7162A58E1C58733400AB630E /* OrderDetailPriceCell.h */,
+				7162A58F1C58733400AB630E /* OrderDetailPriceCell.m */,
+				42DC12EF1F0CD98E00A4C011 /* OrderDetailPickInfoCell.h */,
+				42DC12F01F0CD98E00A4C011 /* OrderDetailPickInfoCell.m */,
+				7162A5901C58733400AB630E /* OrderDetailViewController.h */,
+				7162A5911C58733400AB630E /* OrderDetailViewController.m */,
+				7162A5921C58733400AB630E /* OrderListTableViewCell.h */,
+				7162A5931C58733400AB630E /* OrderListTableViewCell.m */,
+				7162A5941C58733400AB630E /* OrderListViewController.h */,
+				7162A5951C58733400AB630E /* OrderListViewController.m */,
+				7162A5961C58733400AB630E /* status_filter_cadedate_open.json */,
+				42B309781E45BA32007AFC62 /* status_filter_cadedate_po.json */,
+				7162A5971C58733400AB630E /* offline_status_filter_cadedate.json */,
+				714B1F3E1C7BF74100539193 /* OrderDetailSignatureCell.h */,
+				714B1F3F1C7BF74100539193 /* OrderDetailSignatureCell.m */,
+			);
+			name = order;
+			sourceTree = "<group>";
+		};
+		715EB9A6193866F2006D16A5 /* photoStack */ = {
+			isa = PBXGroup;
+			children = (
+				71DF748F1C57614C00F2789C /* PhotoBorder.png */,
+				71DF74901C57614C00F2789C /* PhotoBorder@2x.png */,
+				7165662C1EF3ACD900CB897F /* photostack_image.html */,
+				7165662D1EF3ACD900CB897F /* photostack_video.html */,
+				71DF74911C57614C00F2789C /* PhotoStackView.h */,
+				71DF74921C57614C00F2789C /* PhotoStackView.m */,
+				71DF74931C57614C00F2789C /* PhotoStackViewController.h */,
+				71DF74941C57614C00F2789C /* PhotoStackViewController.m */,
+			);
+			name = photoStack;
+			sourceTree = "<group>";
+		};
+		716387C71953CDB4006E65E6 /* utils */ = {
+			isa = PBXGroup;
+			children = (
+				3C51499A273E0B6400F78617 /* common_const.h */,
+				71DF74311C5757C800F2789C /* CommonUI */,
+				71C1D84C1F456CAA00CEA1C9 /* HWWeakTimer.h */,
+				71C1D84D1F456CAA00CEA1C9 /* HWWeakTimer.m */,
+				42BEF3211E89FE1100632AB6 /* GoogleAnalytics */,
+				4289809B1E24B526005F1BD8 /* JKTimer */,
+				4289805A1E249375005F1BD8 /* UIColor+HEX */,
+				4289803C1E249339005F1BD8 /* JKLock */,
+				712AFEC41DBA044C00254965 /* pdfCreator */,
+				71BBA2171CEAC10200C91DED /* zip */,
+				71B1250B1C55BD4600118904 /* QRCODE */,
+				71E9F6BD1F8B53AB0052C78E /* upload */,
+				71BE066E1BA1607400FA6544 /* AES */,
+				71DF74291C57560600F2789C /* Reachability.h */,
+				71DF742A1C57560600F2789C /* Reachability.m */,
+				71CB70761F99E337009FDCB7 /* RAConvertor.h */,
+				71CB70771F99E338009FDCB7 /* RAConvertor.m */,
+				71CB70741F99DF02009FDCB7 /* FileCache.h */,
+				71CB70731F99DF01009FDCB7 /* FileCache.m */,
+				71D01B141E0A2055006620CE /* ImageUtils.h */,
+				71D01B151E0A2055006620CE /* ImageUtils.m */,
+				428980081E24918F005F1BD8 /* CartUtils.h */,
+				428980091E24918F005F1BD8 /* CartUtils.m */,
+				71D01B161E0A2055006620CE /* PDFUtils.h */,
+				71D01B171E0A2055006620CE /* PDFUtils.m */,
+				71D01B181E0A2055006620CE /* TextUtils.h */,
+				71D01B191E0A2055006620CE /* TextUtils.m */,
+				42BF67CA1E5179970081F90A /* ERPUtils.h */,
+				42BF67CB1E5179970081F90A /* ERPUtils.m */,
+				71FFBBE51C60894900D91DC2 /* iSalesDB.h */,
+				71FFBBE61C60894900D91DC2 /* iSalesDB.m */,
+				71E9F6BB1F8B52DC0052C78E /* NetworkUtils.h */,
+				71E9F6BA1F8B52DC0052C78E /* NetworkUtils.m */,
+				71E9F6C11F8B57E40052C78E /* RANetworkTaskDelegate.h */,
+				71E9F6C01F8B57E30052C78E /* RANetworkTaskDelegate.m */,
+				3CDDB26D273A5A7800681F78 /* RAUtils.h */,
+				3CDDB26C273A5A7800681F78 /* RAUtils.m */,
+				71FFBBE71C60894900D91DC2 /* RANetwork.h */,
+				71FFBBE81C60894900D91DC2 /* RANetwork.m */,
+				71BF06F91D2F3CAC00981938 /* OLDataProvider.h */,
+				71BF06FA1D2F3CAC00981938 /* OLDataProvider.m */,
+				7143E22C202FD3CC00451903 /* more_info.html */,
+				7143E22D202FD3CC00451903 /* order_info.html */,
+				3C51492D273CF9B900F78617 /* DBUtil.h */,
+				3C51492E273CF9B900F78617 /* DBUtil.m */,
+				3C514967273D0B1E00F78617 /* RADataProvider.h */,
+				3C514968273D0B1E00F78617 /* RADataProvider.m */,
+			);
+			name = utils;
+			sourceTree = "<group>";
+		};
+		716387CC1953D693006E65E6 /* sideMenu */ = {
+			isa = PBXGroup;
+			children = (
+				7162A5CC1C5876E300AB630E /* AboutViewController.h */,
+				7162A5CD1C5876E300AB630E /* AboutViewController.m */,
+				7162A5CE1C5876E300AB630E /* CacheViewController.h */,
+				7162A5CF1C5876E300AB630E /* CacheViewController.m */,
+				7162A5D01C5876E300AB630E /* LoginViewController.h */,
+				7162A5D11C5876E300AB630E /* LoginViewController.m */,
+				7162A5D21C5876E300AB630E /* PopupNavigationController.h */,
+				7162A5D31C5876E300AB630E /* PopupNavigationController.m */,
+				7162A5D41C5876E300AB630E /* RetrievePassViewController.h */,
+				7162A5D51C5876E300AB630E /* RetrievePassViewController.m */,
+				7162A5D61C5876E300AB630E /* ScannerSettingViewController.h */,
+				7162A5D71C5876E300AB630E /* ScannerSettingViewController.m */,
+				7162A5D81C5876E300AB630E /* SettingViewController.h */,
+				7162A5D91C5876E300AB630E /* SettingViewController.m */,
+				7186C25B1C97A6EE00CB43F4 /* FunctionTestViewController.h */,
+				7186C25C1C97A6EE00CB43F4 /* FunctionTestViewController.m */,
+				71131F901CA1372300DBF6E2 /* SimplifiedBuyingProgramViewController.h */,
+				71131F911CA1372300DBF6E2 /* SimplifiedBuyingProgramViewController.m */,
+				710274231CC606C4009FD219 /* UserListViewController.h */,
+				710274241CC606C4009FD219 /* UserListViewController.m */,
+			);
+			name = sideMenu;
+			sourceTree = "<group>";
+		};
+		716387D2195408DA006E65E6 /* config */ = {
+			isa = PBXGroup;
+			children = (
+				716387D3195408E7006E65E6 /* config.h */,
+				71E5A00F1DC99370005BF655 /* config.plist */,
+				3CDDB25F273A597B00681F78 /* const.h */,
+			);
+			name = config;
+			sourceTree = "<group>";
+		};
+		716BA58D195AB4170007093A /* categoryMenu */ = {
+			isa = PBXGroup;
+			children = (
+				7162A52B1C58719D00AB630E /* RATreeNode.h */,
+				7162A52C1C58719D00AB630E /* RATreeNode.m */,
+				7162A52D1C58719D00AB630E /* RATreeNodeCollectionController.h */,
+				7162A52E1C58719D00AB630E /* RATreeNodeCollectionController.m */,
+				7162A52F1C58719D00AB630E /* RATreeNodeInfo.h */,
+				7162A5301C58719D00AB630E /* RATreeNodeInfo.m */,
+				7162A5311C58719D00AB630E /* RATreeNodeInfo+Private.h */,
+				7162A5321C58719D00AB630E /* RATreeNodeInfo+Private.m */,
+				7162A5331C58719D00AB630E /* RATreeView.h */,
+				7162A5341C58719D00AB630E /* RATreeView.m */,
+				7162A5351C58719D00AB630E /* RATreeView+Enums.h */,
+				7162A5361C58719D00AB630E /* RATreeView+Enums.m */,
+				7162A5371C58719D00AB630E /* RATreeView+Private.h */,
+				7162A5381C58719D00AB630E /* RATreeView+Private.m */,
+				7162A5391C58719D00AB630E /* RATreeView+TableViewDataSource.h */,
+				7162A53A1C58719D00AB630E /* RATreeView+TableViewDataSource.m */,
+				7162A53B1C58719D00AB630E /* RATreeView+TableViewDelegate.h */,
+				7162A53C1C58719D00AB630E /* RATreeView+TableViewDelegate.m */,
+				7162A53D1C58719D00AB630E /* RATreeView+UIScrollView.h */,
+				7162A53E1C58719D00AB630E /* RATreeView+UIScrollView.m */,
+				7162A53F1C58719D00AB630E /* RAViewController.h */,
+				7162A5401C58719D00AB630E /* RAViewController.m */,
+			);
+			name = categoryMenu;
+			sourceTree = "<group>";
+		};
+		717AE10B1D1A5E99007DC5CA /* offline */ = {
+			isa = PBXGroup;
+			children = (
+				7161FEB21D61B24900157EE1 /* creditcardpayment.html */,
+				7161FEB31D61B24900157EE1 /* normalpayment.html */,
+				7161FEB41D61B24900157EE1 /* orderinfo.html */,
+				71BF06FC1D2F3CBA00981938 /* OfflineSettingViewController.h */,
+				71BF06FD1D2F3CBA00981938 /* OfflineSettingViewController.m */,
+				71BF07061D2F3D2800981938 /* SyncControlPanelViewController.h */,
+				71BF07071D2F3D2800981938 /* SyncControlPanelViewController.m */,
+				716AF8DF1D7AA0E0001188E0 /* SelectUploadOrderViewController.h */,
+				716AF8E01D7AA0E0001188E0 /* SelectUploadOrderViewController.m */,
+				716AF8E61D7AA398001188E0 /* SelectOrderTableViewCell.h */,
+				716AF8E51D7AA398001188E0 /* SelectOrderTableViewCell.m */,
+				715F30BB1DAB37EB00490EED /* OfflineUnlockViewController.h */,
+				715F30BC1DAB37EB00490EED /* OfflineUnlockViewController.m */,
+			);
+			name = offline;
+			sourceTree = "<group>";
+		};
+		7185C3CE1B919C7200B4823C /* contact */ = {
+			isa = PBXGroup;
+			children = (
+				7162A54F1C58724700AB630E /* ContactAdvanceSearchViewController.h */,
+				7162A5501C58724700AB630E /* ContactAdvanceSearchViewController.m */,
+				7162A5511C58724700AB630E /* ContactListTableViewCell.h */,
+				7162A5521C58724700AB630E /* ContactListTableViewCell.m */,
+				7162A5531C58724700AB630E /* ContactListViewController.h */,
+				7162A5541C58724700AB630E /* ContactListViewController.m */,
+				7162A5551C58724700AB630E /* customer_advanced_search.json */,
+				7162A5561C58724700AB630E /* customer_info_template.json */,
+				7111E5711C76C557004763B3 /* customer_info_template_edit.json */,
+				3CC1122A279163F4004ACA57 /* offline_order_new_contact.json */,
+				7162A5571C58724700AB630E /* CustomerEditViewController.h */,
+				7162A5581C58724700AB630E /* CustomerEditViewController.m */,
+				7162A5591C58724700AB630E /* CustomerInfoViewController.h */,
+				7162A55A1C58724700AB630E /* CustomerInfoViewController.m */,
+			);
+			name = contact;
+			sourceTree = "<group>";
+		};
+		718600B31936C385004B6CDE /* customUI */ = {
+			isa = PBXGroup;
+			children = (
+				3CDDB26A273A5A1500681F78 /* CustomIOSAlertView.h */,
+				3CDDB269273A5A1400681F78 /* CustomIOSAlertView.m */,
+				71DF746B1C57608F00F2789C /* ImageScrollerView.h */,
+				71DF746C1C57608F00F2789C /* ImageScrollerView.m */,
+				71DF746D1C57608F00F2789C /* ImageScrollerViewController.h */,
+				71DF746E1C57608F00F2789C /* ImageScrollerViewController.m */,
+				71DF746F1C57608F00F2789C /* ImageUploadViewController.h */,
+				71DF74701C57608F00F2789C /* ImageUploadViewController.m */,
+				71DF74711C57608F00F2789C /* ImageViewController.h */,
+				71DF74721C57608F00F2789C /* ImageViewController.m */,
+				71DF74731C57608F00F2789C /* NIDropDown.h */,
+				71DF74741C57608F00F2789C /* NIDropDown.m */,
+				71DF74751C57608F00F2789C /* PulldownMenu.h */,
+				71DF74761C57608F00F2789C /* PulldownMenu.m */,
+				71DF74771C57608F00F2789C /* RadioButton.h */,
+				71DF74781C57608F00F2789C /* RadioButton.m */,
+				71DF747B1C57608F00F2789C /* SimpleGrid.h */,
+				71DF747C1C57608F00F2789C /* SimpleGrid.m */,
+				3CDDB263273A59EF00681F78 /* RTLabel.h */,
+				3CDDB264273A59EF00681F78 /* RTLabel.m */,
+				3CDDB266273A5A0400681F78 /* StrikethroughLabel.h */,
+				3CDDB267273A5A0400681F78 /* StrikethroughLabel.m */,
+				3CDDB261273A59DF00681F78 /* TouchImageView.h */,
+				3CDDB260273A59DF00681F78 /* TouchImageView.m */,
+				71DF747F1C57608F00F2789C /* TouchLabel.h */,
+				71DF74801C57608F00F2789C /* TouchLabel.m */,
+				71DF74811C57608F00F2789C /* UILabel+FontAppearance.h */,
+				71DF74821C57608F00F2789C /* UILabel+FontAppearance.m */,
+			);
+			name = customUI;
+			sourceTree = "<group>";
+		};
+		718716141C433B4300F25860 /* ScanAPI */ = {
+			isa = PBXGroup;
+			children = (
+				7141DD351C5726B700F7DF59 /* DeviceInfo.h */,
+				7141DD361C5726B700F7DF59 /* DeviceInfo.m */,
+				7141DD371C5726B700F7DF59 /* ScanApiHelper.h */,
+				7141DD381C5726B700F7DF59 /* ScanApiHelper.mm */,
+				7141DD391C5726B700F7DF59 /* ScanApiIncludes.h */,
+				7141DD3A1C5726B700F7DF59 /* softScanBeep.wav */,
+				7141DD331C57269B00F7DF59 /* include */,
+			);
+			name = ScanAPI;
+			sourceTree = "<group>";
+		};
+		7190F1091BBBCAF100B2F243 /* PDF+Web */ = {
+			isa = PBXGroup;
+			children = (
+				3C69617D23C7156D0075172A /* RAPDFViewController.h */,
+				3C69617E23C7156D0075172A /* RAPDFViewController.m */,
+				3C69618123C7156D0075172A /* WebViewController.h */,
+				3C69617F23C7156D0075172A /* WebViewController.m */,
+				3C69618023C7156D0075172A /* wkweb.storyboard */,
+			);
+			name = "PDF+Web";
+			sourceTree = "<group>";
+		};
+		7191A67319650A11007DC977 /* cagegory */ = {
+			isa = PBXGroup;
+			children = (
+				7143E210202FCF7600451903 /* CategoryCellNPD.h */,
+				7143E211202FCF7600451903 /* CategoryCellNPD.m */,
+				7162A51F1C58706C00AB630E /* CategoryCellSmall.h */,
+				7162A5201C58706C00AB630E /* CategoryCellSmall.m */,
+				712BABF11C897E3A0007466B /* CategorySearchFilterViewController.h */,
+				712BABF21C897E3A0007466B /* CategorySearchFilterViewController.m */,
+				7162A5211C58706C00AB630E /* CategoryViewController.h */,
+				7162A5221C58706C00AB630E /* CategoryViewController.m */,
+				7195623A1CF57D1800C74A49 /* CategoryHeaderView.h */,
+				7195623B1CF57D1800C74A49 /* CategoryHeaderView.m */,
+			);
+			name = cagegory;
+			sourceTree = "<group>";
+		};
+		719562351CF5733500C74A49 /* appearance */ = {
+			isa = PBXGroup;
+			children = (
+				715850441CF6F0E500856B20 /* DefaultAppearance.h */,
+				715850451CF6F0E500856B20 /* DefaultAppearance.m */,
+				71D30A201CFBEDC6006F9477 /* default_appearance.json */,
+			);
+			name = appearance;
+			sourceTree = "<group>";
+		};
+		719E45D71B63883100FD098B /* modelDetail */ = {
+			isa = PBXGroup;
+			children = (
+				7162A5621C58728D00AB630E /* DetailHeaderCell.h */,
+				7162A5631C58728D00AB630E /* DetailHeaderCell.m */,
+				7162A5641C58728D00AB630E /* DetailImageCell.h */,
+				7162A5651C58728D00AB630E /* DetailImageCell.m */,
+				7162A5661C58728D00AB630E /* DetailKVCell.h */,
+				7162A5671C58728D00AB630E /* DetailKVCell.m */,
+				7162A5681C58728D00AB630E /* DetailTopicCell.h */,
+				7162A5691C58728D00AB630E /* DetailTopicCell.m */,
+				7162A56A1C58728D00AB630E /* DetailViewController.h */,
+				7162A56B1C58728D00AB630E /* DetailViewController.m */,
+				7162A56C1C58728D00AB630E /* LineView.h */,
+				7162A56D1C58728D00AB630E /* LineView.m */,
+				71C1D8521F456D2700CEA1C9 /* ModelDescriptionController.h */,
+				71C1D8531F456D2700CEA1C9 /* ModelDescriptionController.m */,
+			);
+			name = modelDetail;
+			sourceTree = "<group>";
+		};
+		71A2478A1B955448000E1F84 /* search */ = {
+			isa = PBXGroup;
+			children = (
+				7162A5B71C5873BB00AB630E /* FilterCellCadedate.h */,
+				7162A5B81C5873BB00AB630E /* FilterCellCadedate.m */,
+				7162A5B91C5873BB00AB630E /* FilterCellValue.h */,
+				7162A5BA1C5873BB00AB630E /* FilterCellValue.m */,
+				7162A5BB1C5873BB00AB630E /* ItemSearchFilterViewController.h */,
+				7162A5BC1C5873BB00AB630E /* ItemSearchFilterViewController.m */,
+				7162A5BD1C5873BB00AB630E /* ItemSearchViewController.h */,
+				7162A5BE1C5873BB00AB630E /* ItemSearchViewController.m */,
+				7162A5BF1C5873BB00AB630E /* SearchViewController.h */,
+				7162A5C01C5873BB00AB630E /* SearchViewController.m */,
+			);
+			name = search;
+			sourceTree = "<group>";
+		};
+		71B1250B1C55BD4600118904 /* QRCODE */ = {
+			isa = PBXGroup;
+			children = (
+				7141DD3E1C57459B00F7DF59 /* bitstream.c */,
+				7141DD3F1C57459B00F7DF59 /* bitstream.h */,
+				7141DD401C57459B00F7DF59 /* mask.c */,
+				7141DD411C57459B00F7DF59 /* mask.h */,
+				7141DD421C57459B00F7DF59 /* QRCodeGenerator.h */,
+				7141DD431C57459B00F7DF59 /* QRCodeGenerator.m */,
+				7141DD441C57459B00F7DF59 /* qrencode.c */,
+				7141DD451C57459B00F7DF59 /* qrencode.h */,
+				7141DD461C57459B00F7DF59 /* qrinput.c */,
+				7141DD471C57459B00F7DF59 /* qrinput.h */,
+				7141DD481C57459B00F7DF59 /* qrspec.c */,
+				7141DD491C57459B00F7DF59 /* qrspec.h */,
+				7141DD4A1C57459B00F7DF59 /* rscode.c */,
+				7141DD4B1C57459B00F7DF59 /* rscode.h */,
+				7141DD4C1C57459B00F7DF59 /* split.c */,
+				7141DD4D1C57459B00F7DF59 /* split.h */,
+			);
+			name = QRCODE;
+			sourceTree = "<group>";
+		};
+		71BBA2171CEAC10200C91DED /* zip */ = {
+			isa = PBXGroup;
+			children = (
+				71BBA2371CEAEF0700C91DED /* crypt.h */,
+				71BBA2381CEAEF0700C91DED /* ioapi.c */,
+				71BBA2391CEAEF0700C91DED /* ioapi.h */,
+				71BBA23A1CEAEF0700C91DED /* mztools.c */,
+				71BBA23B1CEAEF0700C91DED /* mztools.h */,
+				71BBA23C1CEAEF0700C91DED /* unzip.c */,
+				71BBA23D1CEAEF0700C91DED /* unzip.h */,
+				71BBA23E1CEAEF0700C91DED /* zip.c */,
+				71BBA23F1CEAEF0700C91DED /* zip.h */,
+				71BBA2211CEAC16000C91DED /* ZipArchive.h */,
+				71BBA2221CEAC16000C91DED /* ZipArchive.mm */,
+			);
+			name = zip;
+			sourceTree = "<group>";
+		};
+		71BE066E1BA1607400FA6544 /* AES */ = {
+			isa = PBXGroup;
+			children = (
+				7141DD561C5747CE00F7DF59 /* AESCrypt.h */,
+				7141DD571C5747CE00F7DF59 /* AESCrypt.m */,
+				7141DD581C5747CE00F7DF59 /* LICENSE */,
+				7141DD591C5747CE00F7DF59 /* NSData+Base64.h */,
+				7141DD5A1C5747CE00F7DF59 /* NSData+Base64.m */,
+				7141DD5B1C5747CE00F7DF59 /* NSData+CommonCrypto.h */,
+				7141DD5C1C5747CE00F7DF59 /* NSData+CommonCrypto.m */,
+				7141DD5D1C5747CE00F7DF59 /* NSString+Base64.h */,
+				7141DD5E1C5747CE00F7DF59 /* NSString+Base64.m */,
+			);
+			name = AES;
+			sourceTree = "<group>";
+		};
+		71BF32FA1EFA1C0700842CB4 /* youtube player */ = {
+			isa = PBXGroup;
+			children = (
+				3C68314C239607B500AD5BD7 /* RAYTPlayer.h */,
+				3C68314B239607B500AD5BD7 /* RAYTPlayer.m */,
+				3C68314A239607B500AD5BD7 /* ytplayer.html */,
+			);
+			name = "youtube player";
+			sourceTree = "<group>";
+		};
+		71DBACEE1B5E401A00D8BD7E /* HomeView */ = {
+			isa = PBXGroup;
+			children = (
+				7162A5771C5872EF00AB630E /* HomeTableViewCellBanner.h */,
+				7162A5781C5872EF00AB630E /* HomeTableViewCellBanner.m */,
+				7162A5791C5872EF00AB630E /* HomeTableViewCellButtonBanner.h */,
+				7162A57A1C5872EF00AB630E /* HomeTableViewCellButtonBanner.m */,
+				7162A57B1C5872EF00AB630E /* HomeTableViewCellSlide.h */,
+				7162A57C1C5872EF00AB630E /* HomeTableViewCellSlide.m */,
+				7162A57D1C5872EF00AB630E /* HomeTableViewCellTopic.h */,
+				7162A57E1C5872EF00AB630E /* HomeTableViewCellTopic.m */,
+				7162A57F1C5872EF00AB630E /* HomeViewController.h */,
+				7162A5801C5872EF00AB630E /* HomeViewController.m */,
+			);
+			name = HomeView;
+			sourceTree = "<group>";
+		};
+		71DF742C1C57567800F2789C /* HMLG SO */ = {
+			isa = PBXGroup;
+			children = (
+				7143E215202FD12B00451903 /* json */,
+				719562351CF5733500C74A49 /* appearance */,
+				716387D2195408DA006E65E6 /* config */,
+			);
+			name = "HMLG SO";
+			sourceTree = "<group>";
+		};
+		71DF74311C5757C800F2789C /* CommonUI */ = {
+			isa = PBXGroup;
+			children = (
+				3C514996273E097B00F78617 /* HUD */,
+				3C514987273E091500F78617 /* PhotoList */,
+				71BF32FA1EFA1C0700842CB4 /* youtube player */,
+				4289800E1E24924D005F1BD8 /* sort */,
+				715EB9A6193866F2006D16A5 /* photoStack */,
+				718600B31936C385004B6CDE /* customUI */,
+				71DF743A1C575E6600F2789C /* CommonEditor */,
+				71DF74321C5757DA00F2789C /* ActiveViewController.h */,
+				71DF74331C5757DA00F2789C /* ActiveViewController.m */,
+				71D30A2B1CFC0EF8006F9477 /* DefaultImageButton.h */,
+				71D30A2C1CFC0EF8006F9477 /* DefaultImageButton.m */,
+				3CDDB25B273A564200681F78 /* DefaultTableHeaderView.h */,
+				3CDDB25A273A564200681F78 /* DefaultTableHeaderView.m */,
+				715001FD1D114D9100F5927F /* BundleDetailButton.h */,
+				715001FE1D114D9100F5927F /* BundleDetailButton.m */,
+			);
+			name = CommonUI;
+			sourceTree = "<group>";
+		};
+		71DF743A1C575E6600F2789C /* CommonEditor */ = {
+			isa = PBXGroup;
+			children = (
+				3C514975273E07C400F78617 /* EnumSelectAndSort\ */,
+				714036FB21646CFF0029B10F /* UIResponder+Router.h */,
+				714036FA21646CFF0029B10F /* UIResponder+Router.m */,
+				3C514930273D092A00F78617 /* EnumSelectViewController.h */,
+				3C514931273D092A00F78617 /* EnumSelectViewController.m */,
+				4295AE181FE74D26007BE365 /* AutoComplete */,
+				3C514941273D095900F78617 /* CommonEditorCellAction.h */,
+				3C514944273D095900F78617 /* CommonEditorCellAction.m */,
+				3C514973273E074500F78617 /* CommonEditorCellEditor.h */,
+				3C514972273E074500F78617 /* CommonEditorCellEditor.m */,
+				3C514933273D095800F78617 /* CommonEditorCellEdit.h */,
+				3C51493A273D095900F78617 /* CommonEditorCellEdit.m */,
+				3C514942273D095900F78617 /* CommonEditorCellEnum.h */,
+				3C514939273D095800F78617 /* CommonEditorCellEnum.m */,
+				3C514943273D095900F78617 /* CommonEditorCellImg.h */,
+				3C51493F273D095900F78617 /* CommonEditorCellImg.m */,
+				3C514937273D095800F78617 /* CommonEditorCellLabel.h */,
+				3C51493C273D095900F78617 /* CommonEditorCellLabel.m */,
+				3C51493B273D095900F78617 /* CommonEditorCellMAction.h */,
+				3C51493D273D095900F78617 /* CommonEditorCellMAction.m */,
+				3C514940273D095900F78617 /* CommonEditorCellModel.h */,
+				3C514945273D095900F78617 /* CommonEditorCellModel.m */,
+				3C514938273D095800F78617 /* CommonEditorCellSignature.h */,
+				3C51493E273D095900F78617 /* CommonEditorCellSignature.m */,
+				3C514936273D095800F78617 /* CommonEditorCellSwitch.h */,
+				3C514934273D095800F78617 /* CommonEditorCellSwitch.m */,
+				3C514946273D095900F78617 /* CommonEditorCellTextView.h */,
+				3C514935273D095800F78617 /* CommonEditorCellTextView.m */,
+				3C514952273D096A00F78617 /* CommonEditorViewController.h */,
+				3C514951273D096A00F78617 /* CommonEditorViewController.m */,
+				3C514954273D097E00F78617 /* CommonEditorTableContainerView.h */,
+				3C514955273D097E00F78617 /* CommonEditorTableContainerView.m */,
+				3C514957273D098700F78617 /* DatePickerViewController.h */,
+				3C514958273D098700F78617 /* DatePickerViewController.m */,
+				3C51495A273D099600F78617 /* EnumSelectorCell.h */,
+				3C51495B273D099600F78617 /* EnumSelectorCell.m */,
+				3C51495D273D09B800F78617 /* MonthPickerViewController.h */,
+				3C51495E273D09B800F78617 /* MonthPickerViewController.m */,
+				3C514964273D0A2F00F78617 /* SRMonthPicker.h */,
+				3C514965273D0A2F00F78617 /* SRMonthPicker.m */,
+				3C514960273D09E700F78617 /* CommonEditor.storyboard */,
+				3C68315E2396094100AD5BD7 /* CommonEditor.iPad.xib */,
+				3C6831632396094200AD5BD7 /* iPadCommonEditorCellAction.xib */,
+				3C6831672396094200AD5BD7 /* iPadCommonEditorCellEdit.xib */,
+				3C6831612396094200AD5BD7 /* iPadCommonEditorCellEnum.xib */,
+				3C68315D2396094100AD5BD7 /* iPadCommonEditorCellImg.xib */,
+				3C68315F2396094200AD5BD7 /* iPadCommonEditorCellLabel.xib */,
+				3C6831652396094200AD5BD7 /* iPadCommonEditorCellMAction.xib */,
+				3C6831642396094200AD5BD7 /* iPadCommonEditorCellModel.xib */,
+				3C6831662396094200AD5BD7 /* iPadCommonEditorCellSignature.xib */,
+				3C6831602396094200AD5BD7 /* iPadCommonEditorCellSwitch.xib */,
+				3C6831622396094200AD5BD7 /* iPadCommonEditorCellTextView.xib */,
+			);
+			name = CommonEditor;
+			sourceTree = "<group>";
+		};
+		71E9F6BD1F8B53AB0052C78E /* upload */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = upload;
+			sourceTree = "<group>";
+		};
+		71F731FC192F395000F2CF76 /* AutoScrollImage */ = {
+			isa = PBXGroup;
+			children = (
+				7162A5031C586FC100AB630E /* CycleScrollView.h */,
+				7162A5041C586FC100AB630E /* CycleScrollView.m */,
+				7162A5051C586FC100AB630E /* NSTimer+Addition.h */,
+				7162A5061C586FC100AB630E /* NSTimer+Addition.m */,
+				7162A5071C586FC100AB630E /* SliderPage.h */,
+				7162A5081C586FC100AB630E /* SliderPage.m */,
+			);
+			name = AutoScrollImage;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		713F76A51929F4A7006A7305 /* HMLG Scan Order */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 713F76D81929F4A7006A7305 /* Build configuration list for PBXNativeTarget "HMLG Scan Order" */;
+			buildPhases = (
+				713F76A21929F4A7006A7305 /* Sources */,
+				713F76A31929F4A7006A7305 /* Frameworks */,
+				713F76A41929F4A7006A7305 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = "HMLG Scan Order";
+			productName = "HMLG Scan Order";
+			productReference = 713F76A61929F4A7006A7305 /* HMLG Scan Order.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		713F769E1929F4A7006A7305 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 1200;
+				ORGANIZATIONNAME = "United Software Applications, Inc";
+				TargetAttributes = {
+					713F76A51929F4A7006A7305 = {
+						DevelopmentTeam = HXWLAA5YN5;
+						ProvisioningStyle = Automatic;
+					};
+				};
+			};
+			buildConfigurationList = 713F76A11929F4A7006A7305 /* Build configuration list for PBXProject "HMLG Scan Order" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = en;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 713F769D1929F4A7006A7305;
+			productRefGroup = 713F76A71929F4A7006A7305 /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				713F76A51929F4A7006A7305 /* HMLG Scan Order */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		713F76A41929F4A7006A7305 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7143E217202FD15A00451903 /* category.json in Resources */,
+				7143E22B202FD37500451903 /* orderDetail.json in Resources */,
+				7143E20F202FCEF600451903 /* CUL.storyboard in Resources */,
+				3C68316B2396094200AD5BD7 /* iPadCommonEditorCellSwitch.xib in Resources */,
+				3C6831582396082800AD5BD7 /* ERP_Mobile_Model.storyboard in Resources */,
+				7143E20C202FCEEC00451903 /* OLM.storyboard in Resources */,
+				3C4DA61F27B50199001EB44E /* Main.storyboard in Resources */,
+				7142E87E1DC300690077EFA2 /* DejaVuSans-Bold.ttf in Resources */,
+				3C6831682396094200AD5BD7 /* iPadCommonEditorCellImg.xib in Resources */,
+				7142E87F1DC300690077EFA2 /* DejaVuSans.ttf in Resources */,
+				7142E87A1DBF577A0077EFA2 /* KALINGA.TTF in Resources */,
+				7142E87B1DBF577A0077EFA2 /* KALINGAB.TTF in Resources */,
+				7143E228202FD2CA00451903 /* portfolio_2x3.json in Resources */,
+				713F76C21929F4A7006A7305 /* Images.xcassets in Resources */,
+				3C6831572396082800AD5BD7 /* ERP_Mobile_Cart.storyboard in Resources */,
+				3C872A262797FE7C00BE1FC8 /* scan_order.json in Resources */,
+				3C6831592396082800AD5BD7 /* ERP_Mobile_Search.storyboard in Resources */,
+				3C514992273E091500F78617 /* PhotoList.storyboard in Resources */,
+				42E489611EE63F4E007256A0 /* more_color_64.png in Resources */,
+				713F76B41929F4A7006A7305 /* InfoPlist.strings in Resources */,
+				7165662F1EF3ACD900CB897F /* photostack_video.html in Resources */,
+				3C6831712396094200AD5BD7 /* iPadCommonEditorCellSignature.xib in Resources */,
+				3C6831722396094200AD5BD7 /* iPadCommonEditorCellEdit.xib in Resources */,
+				7162A5A01C58733400AB630E /* status_filter_cadedate_open.json in Resources */,
+				71D30A211CFBEDC6006F9477 /* default_appearance.json in Resources */,
+				3C68315A2396082800AD5BD7 /* ERP_Mobile_Contact.storyboard in Resources */,
+				7161FEB71D61B24900157EE1 /* orderinfo.html in Resources */,
+				3C69618423C7156D0075172A /* wkweb.storyboard in Resources */,
+				3C68316D2396094200AD5BD7 /* iPadCommonEditorCellTextView.xib in Resources */,
+				3C68315C2396082800AD5BD7 /* ERP_Mobile_Portfolio.storyboard in Resources */,
+				7143E221202FD28900451903 /* placeOrderTemplate.json in Resources */,
+				7161FEB51D61B24900157EE1 /* creditcardpayment.html in Resources */,
+				7143E227202FD2CA00451903 /* portfolio_3x2.json in Resources */,
+				7143E21A202FD1DC00451903 /* contactAdvanceSearch.json in Resources */,
+				3C6831702396094200AD5BD7 /* iPadCommonEditorCellMAction.xib in Resources */,
+				3C68315B2396082800AD5BD7 /* ERP_Mobile_Order.storyboard in Resources */,
+				71E5A0101DC99370005BF655 /* config.plist in Resources */,
+				71DF74951C57614C00F2789C /* PhotoBorder.png in Resources */,
+				7143E229202FD2CA00451903 /* so.json in Resources */,
+				3CC1122B279163F4004ACA57 /* offline_order_new_contact.json in Resources */,
+				3C6831562396082800AD5BD7 /* ERP_Mobile_Discard.storyboard in Resources */,
+				7162A55F1C58724700AB630E /* customer_info_template.json in Resources */,
+				7141DD3D1C5726B700F7DF59 /* softScanBeep.wav in Resources */,
+				3C68316F2396094200AD5BD7 /* iPadCommonEditorCellModel.xib in Resources */,
+				3C4DA61627B4E95C001EB44E /* HMLG Scan Order-Info.plist in Resources */,
+				4295AE1D1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib in Resources */,
+				3C872A1E27955CF300BE1FC8 /* scan_cart.json in Resources */,
+				7141DD341C57269B00F7DF59 /* include in Resources */,
+				7141DD601C5747CE00F7DF59 /* LICENSE in Resources */,
+				3C68314D239607B500AD5BD7 /* ytplayer.html in Resources */,
+				71D01ADD1E08CB1C006620CE /* signature.storyboard in Resources */,
+				7143E22F202FD3CD00451903 /* order_info.html in Resources */,
+				423CC87521D22FDE008BD2C4 /* Launch Screen.storyboard in Resources */,
+				3C68316A2396094200AD5BD7 /* iPadCommonEditorCellLabel.xib in Resources */,
+				7111E5721C76C557004763B3 /* customer_info_template_edit.json in Resources */,
+				7161FEB61D61B24900157EE1 /* normalpayment.html in Resources */,
+				3C68316C2396094200AD5BD7 /* iPadCommonEditorCellEnum.xib in Resources */,
+				7143E214202FCFC000451903 /* debug_category_filter.json in Resources */,
+				7143E220202FD28900451903 /* TearSheet.json in Resources */,
+				71DF74961C57614C00F2789C /* PhotoBorder@2x.png in Resources */,
+				7143E226202FD2CA00451903 /* so_thumb.json in Resources */,
+				7165662E1EF3ACD900CB897F /* photostack_image.html in Resources */,
+				3C6831692396094200AD5BD7 /* CommonEditor.iPad.xib in Resources */,
+				3C51497D273E07D600F78617 /* EnumSelectAndSort.storyboard in Resources */,
+				712AFEE51DBDAF0300254965 /* pdfcreator.xcassets in Resources */,
+				7143E21B202FD1DC00451903 /* createContact.json in Resources */,
+				7162A55E1C58724700AB630E /* customer_advanced_search.json in Resources */,
+				3C514961273D09E700F78617 /* CommonEditor.storyboard in Resources */,
+				3C68316E2396094200AD5BD7 /* iPadCommonEditorCellAction.xib in Resources */,
+				7143E22E202FD3CD00451903 /* more_info.html in Resources */,
+				3CF33C9027BF4A3D001CBEEC /* QRCode.storyboard in Resources */,
+				7143E21D202FD21F00451903 /* editContact.json in Resources */,
+				7162A5A11C58733400AB630E /* offline_status_filter_cadedate.json in Resources */,
+				42B309791E45BA32007AFC62 /* status_filter_cadedate_po.json in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		713F76A21929F4A7006A7305 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7141DD531C57459B00F7DF59 /* qrspec.c in Sources */,
+				3C69618323C7156D0075172A /* WebViewController.m in Sources */,
+				71BF07081D2F3D2800981938 /* SyncControlPanelViewController.m in Sources */,
+				4289802D1E2492D2005F1BD8 /* PriceSettingViewController.m in Sources */,
+				714036F921646B8C0029B10F /* AppDelegateBase.m in Sources */,
+				71FFBBEA1C60894900D91DC2 /* RANetwork.m in Sources */,
+				428980161E24924D005F1BD8 /* SortItemCell.m in Sources */,
+				3C51495C273D099600F78617 /* EnumSelectorCell.m in Sources */,
+				3C51494C273D095900F78617 /* CommonEditorCellMAction.m in Sources */,
+				7162A59D1C58733400AB630E /* OrderDetailViewController.m in Sources */,
+				7141DD3B1C5726B700F7DF59 /* DeviceInfo.m in Sources */,
+				714037052164707E0029B10F /* MainHeaderViewColorPanel.m in Sources */,
+				712AFEDC1DBA050200254965 /* PDFDrawable.m in Sources */,
+				7195623C1CF57D1800C74A49 /* CategoryHeaderView.m in Sources */,
+				3C51E7D327B2628900E61163 /* UIView+Toast.m in Sources */,
+				712AFED81DBA050200254965 /* GridDrawable.m in Sources */,
+				424A02D11FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m in Sources */,
+				7162A5C11C5873BB00AB630E /* FilterCellCadedate.m in Sources */,
+				42BEF3581E89FE1200632AB6 /* GTMNSData+zlib.m in Sources */,
+				3C2F99B8237BE1790000808F /* PortfolioListTableViewCell.m in Sources */,
+				71DF742B1C57560600F2789C /* Reachability.m in Sources */,
+				7162A5701C58728D00AB630E /* DetailHeaderCell.m in Sources */,
+				71BBA2271CEAC16000C91DED /* ZipArchive.mm in Sources */,
+				7162A5491C58719D00AB630E /* RATreeView+TableViewDelegate.m in Sources */,
+				3C514950273D095900F78617 /* CommonEditorCellModel.m in Sources */,
+				3C51E7CC27B261EC00E61163 /* RAUploadListViewController.m in Sources */,
+				428980451E249339005F1BD8 /* JKDotView.m in Sources */,
+				7162A5B41C58738600AB630E /* ScannerControllerView.m in Sources */,
+				7162A5831C5872EF00AB630E /* HomeTableViewCellSlide.m in Sources */,
+				4289800A1E24918F005F1BD8 /* CartUtils.m in Sources */,
+				7162A5851C5872EF00AB630E /* HomeViewController.m in Sources */,
+				7162A5E31C5877CE00AB630E /* WatchListViewController.m in Sources */,
+				715001FF1D114D9100F5927F /* BundleDetailButton.m in Sources */,
+				7162A5421C58719D00AB630E /* RATreeNodeCollectionController.m in Sources */,
+				7162A5DE1C5876E300AB630E /* RetrievePassViewController.m in Sources */,
+				428980461E249339005F1BD8 /* JKLockButton.m in Sources */,
+				71C1D8541F456D2700CEA1C9 /* ModelDescriptionController.m in Sources */,
+				7143E212202FCF7600451903 /* CategoryCellNPD.m in Sources */,
+				7141DD541C57459B00F7DF59 /* rscode.c in Sources */,
+				7162A5E01C5876E300AB630E /* SettingViewController.m in Sources */,
+				712AFEDB1DBA050200254965 /* LineDrawable.m in Sources */,
+				71DF748B1C57608F00F2789C /* SimpleGrid.m in Sources */,
+				42BEF3621E8A005800632AB6 /* GoogleAnalyst.m in Sources */,
+				7162A5171C58704600AB630E /* BundleModelViewController.m in Sources */,
+				7162A5411C58719D00AB630E /* RATreeNode.m in Sources */,
+				3C514947273D095900F78617 /* CommonEditorCellSwitch.m in Sources */,
+				7162A5251C58706C00AB630E /* CategoryCellSmall.m in Sources */,
+				712AFEDA1DBA050200254965 /* ImageDrawable.m in Sources */,
+				428980721E24B1E9005F1BD8 /* RASingleton.m in Sources */,
+				3C51E7BD27B2599E00E61163 /* ScanOrderListViewController.m in Sources */,
+				3C514953273D096A00F78617 /* CommonEditorViewController.m in Sources */,
+				71E9F6C21F8B57E40052C78E /* RANetworkTaskDelegate.m in Sources */,
+				712C40B91C731126000E6831 /* ItemNotesViewController.m in Sources */,
+				3CDDB268273A5A0400681F78 /* StrikethroughLabel.m in Sources */,
+				7162A5AD1C58735900AB630E /* TearSheetParamViewController.m in Sources */,
+				7141DD611C5747CE00F7DF59 /* NSData+Base64.m in Sources */,
+				71BBA2431CEAEF0700C91DED /* zip.c in Sources */,
+				7141DD5F1C5747CE00F7DF59 /* AESCrypt.m in Sources */,
+				3C514959273D098700F78617 /* DatePickerViewController.m in Sources */,
+				7162A5991C58733400AB630E /* OrderDetailHtmlCell.m in Sources */,
+				7162A5091C586FC100AB630E /* CycleScrollView.m in Sources */,
+				715F30BD1DAB37EB00490EED /* OfflineUnlockViewController.m in Sources */,
+				7162A5161C58704600AB630E /* BundleModelCell.m in Sources */,
+				42DC12F11F0CD98E00A4C011 /* OrderDetailPickInfoCell.m in Sources */,
+				3C51494A273D095900F78617 /* CommonEditorCellEdit.m in Sources */,
+				7141DD621C5747CE00F7DF59 /* NSData+CommonCrypto.m in Sources */,
+				712AFED71DBA050200254965 /* BasicDrawable.m in Sources */,
+				3C51494E273D095900F78617 /* CommonEditorCellImg.m in Sources */,
+				71DF74891C57608F00F2789C /* RadioButton.m in Sources */,
+				3CDDB26B273A5A1500681F78 /* CustomIOSAlertView.m in Sources */,
+				7162A5DF1C5876E300AB630E /* ScannerSettingViewController.m in Sources */,
+				71DF74831C57608F00F2789C /* ImageScrollerView.m in Sources */,
+				71DF74871C57608F00F2789C /* NIDropDown.m in Sources */,
+				710274251CC606C4009FD219 /* UserListViewController.m in Sources */,
+				3CDDB265273A59EF00681F78 /* RTLabel.m in Sources */,
+				3C51494D273D095900F78617 /* CommonEditorCellSignature.m in Sources */,
+				3C4DA62527B503B1001EB44E /* MainViewController.m in Sources */,
+				71DF74881C57608F00F2789C /* PulldownMenu.m in Sources */,
+				7141DD551C57459B00F7DF59 /* split.c in Sources */,
+				716AF8E11D7AA0E0001188E0 /* SelectUploadOrderViewController.m in Sources */,
+				712AFEDF1DBA050200254965 /* TextDrawable.m in Sources */,
+				7162A5611C58724700AB630E /* CustomerInfoViewController.m in Sources */,
+				428980471E249339005F1BD8 /* JKLockController.m in Sources */,
+				7162A5731C58728D00AB630E /* DetailTopicCell.m in Sources */,
+				71BBA2421CEAEF0700C91DED /* unzip.c in Sources */,
+				7162A5AC1C58735900AB630E /* PortfolioViewController.m in Sources */,
+				71D01B1C1E0A2055006620CE /* TextUtils.m in Sources */,
+				7162A5981C58733400AB630E /* CreateOrderViewController.m in Sources */,
+				4289809E1E24B526005F1BD8 /* JKTimerManager.m in Sources */,
+				3C514999273E097C00F78617 /* RAProgressHUD.m in Sources */,
+				3C51494F273D095900F78617 /* CommonEditorCellAction.m in Sources */,
+				7162A5021C586F5B00AB630E /* AddressEditorViewController.m in Sources */,
+				71131F921CA1372300DBF6E2 /* SimplifiedBuyingProgramViewController.m in Sources */,
+				7162A55C1C58724700AB630E /* ContactListTableViewCell.m in Sources */,
+				7186C25D1C97A6EE00CB43F4 /* FunctionTestViewController.m in Sources */,
+				71C1D84E1F456CAA00CEA1C9 /* HWWeakTimer.m in Sources */,
+				3C514948273D095900F78617 /* CommonEditorCellTextView.m in Sources */,
+				71D0344F1C9BF3C400E0F7AD /* PortfolioEditQTYViewController.m in Sources */,
+				7162A5B51C58738600AB630E /* ScannerViewController.m in Sources */,
+				3C51492F273CF9B900F78617 /* DBUtil.m in Sources */,
+				716AF8E71D7AA398001188E0 /* SelectOrderTableViewCell.m in Sources */,
+				713F76BA1929F4A7006A7305 /* AppDelegate.m in Sources */,
+				71BF06FB1D2F3CAC00981938 /* OLDataProvider.m in Sources */,
+				7162A59B1C58733400AB630E /* OrderDetailModelCell.m in Sources */,
+				3C514994273E091500F78617 /* VideoPreviewCell.m in Sources */,
+				71D01B1B1E0A2055006620CE /* PDFUtils.m in Sources */,
+				3CDDB26E273A5A7800681F78 /* RAUtils.m in Sources */,
+				7141DD4F1C57459B00F7DF59 /* mask.c in Sources */,
+				7162A54E1C58722200AB630E /* CreditCardEditorViewController.m in Sources */,
+				7162A5C31C5873BB00AB630E /* ItemSearchFilterViewController.m in Sources */,
+				3C51497F273E07D600F78617 /* EnumSelectAndSortCell.m in Sources */,
+				71D30A2D1CFC0EF8006F9477 /* DefaultImageButton.m in Sources */,
+				7162A5841C5872EF00AB630E /* HomeTableViewCellTopic.m in Sources */,
+				7162A59F1C58733400AB630E /* OrderListViewController.m in Sources */,
+				4254CCDE1FB1AC2B00C8B4B6 /* RAOrderEditorViewController.m in Sources */,
+				712AFEE21DBA077F00254965 /* pdfCreator.m in Sources */,
+				71BBA2401CEAEF0700C91DED /* ioapi.c in Sources */,
+				7162A5461C58719D00AB630E /* RATreeView+Enums.m in Sources */,
+				7162A54B1C58719D00AB630E /* RAViewController.m in Sources */,
+				71BBA2411CEAEF0700C91DED /* mztools.c in Sources */,
+				7162A59C1C58733400AB630E /* OrderDetailPriceCell.m in Sources */,
+				715850461CF6F0E500856B20 /* DefaultAppearance.m in Sources */,
+				3C7E5A8E237BDB0C006D0105 /* PortfolioListViewController.m in Sources */,
+				4295AE1C1FE74D46007BE365 /* CommonEditorAutoCompleteView.m in Sources */,
+				7162A5B61C58738600AB630E /* SCShapeView.m in Sources */,
+				71CB70751F99DF02009FDCB7 /* FileCache.m in Sources */,
+				7162A54A1C58719D00AB630E /* RATreeView+UIScrollView.m in Sources */,
+				7162A55D1C58724700AB630E /* ContactListViewController.m in Sources */,
+				3C514995273E091500F78617 /* PhotoPreviewCell.m in Sources */,
+				7162A5751C58728D00AB630E /* LineView.m in Sources */,
+				712AFEDD1DBA050200254965 /* RAPDFPage.m in Sources */,
+				428980481E249339005F1BD8 /* JKMessageBoxController.m in Sources */,
+				7162A5741C58728D00AB630E /* DetailViewController.m in Sources */,
+				71DF748E1C57608F00F2789C /* UILabel+FontAppearance.m in Sources */,
+				712C40B61C7310F4000E6831 /* CartGeneralNotesViewController.m in Sources */,
+				712AFEDE1DBA050200254965 /* TableDrawable.m in Sources */,
+				7162A5CB1C58761500AB630E /* SignatureViewController.m in Sources */,
+				7162A5DD1C5876E300AB630E /* PopupNavigationController.m in Sources */,
+				7162A59E1C58733400AB630E /* OrderListTableViewCell.m in Sources */,
+				714B1F401C7BF74100539193 /* OrderDetailSignatureCell.m in Sources */,
+				4289802E1E2492D2005F1BD8 /* SetCategoryPriceController.m in Sources */,
+				714036FC21646CFF0029B10F /* UIResponder+Router.m in Sources */,
+				71D01B1A1E0A2055006620CE /* ImageUtils.m in Sources */,
+				3CF33C8F27BF4A3D001CBEEC /* RAQRCodeScannerViewController.m in Sources */,
+				7141DD521C57459B00F7DF59 /* qrinput.c in Sources */,
+				7162A5601C58724700AB630E /* CustomerEditViewController.m in Sources */,
+				7162A5DC1C5876E300AB630E /* LoginViewController.m in Sources */,
+				3C51495F273D09B800F78617 /* MonthPickerViewController.m in Sources */,
+				4289805D1E249375005F1BD8 /* UIColor+JK_HEX.m in Sources */,
+				7162A5811C5872EF00AB630E /* HomeTableViewCellBanner.m in Sources */,
+				3C514956273D097E00F78617 /* CommonEditorTableContainerView.m in Sources */,
+				7162A5E61C58781000AB630E /* iSalesNavigationController.m in Sources */,
+				7141DD631C5747CE00F7DF59 /* NSString+Base64.m in Sources */,
+				71E9F6BC1F8B52DD0052C78E /* NetworkUtils.m in Sources */,
+				7162A5C41C5873BB00AB630E /* ItemSearchViewController.m in Sources */,
+				7162A5481C58719D00AB630E /* RATreeView+TableViewDataSource.m in Sources */,
+				3C514993273E091500F78617 /* ContentPreviewController.m in Sources */,
+				71CB70781F99E338009FDCB7 /* RAConvertor.m in Sources */,
+				7162A5DB1C5876E300AB630E /* CacheViewController.m in Sources */,
+				7162A5C21C5873BB00AB630E /* FilterCellValue.m in Sources */,
+				71DF74971C57614C00F2789C /* PhotoStackView.m in Sources */,
+				3C473C9127C4D22900CC8C12 /* ScanUserListViewController.m in Sources */,
+				7162A50B1C586FC100AB630E /* SliderPage.m in Sources */,
+				712BABF31C897E3A0007466B /* CategorySearchFilterViewController.m in Sources */,
+				71DF74981C57614C00F2789C /* PhotoStackViewController.m in Sources */,
+				428980151E24924D005F1BD8 /* SortButton.m in Sources */,
+				3C51E7CB27B261EC00E61163 /* RAUploadOperation.m in Sources */,
+				3C514980273E07D600F78617 /* EnumModel.m in Sources */,
+				7162A59A1C58733400AB630E /* OrderDetailInfoCell.m in Sources */,
+				7162A5471C58719D00AB630E /* RATreeView+Private.m in Sources */,
+				3CDDB262273A59DF00681F78 /* TouchImageView.m in Sources */,
+				428980041E2490C1005F1BD8 /* NotificationNameCenter.m in Sources */,
+				3C51497E273E07D600F78617 /* EnumSelectAndSortViewController.m in Sources */,
+				4289802C1E2492D2005F1BD8 /* CategoryPriceViewController.m in Sources */,
+				71DF748D1C57608F00F2789C /* TouchLabel.m in Sources */,
+				3C68314E239607B500AD5BD7 /* RAYTPlayer.m in Sources */,
+				3C514932273D092A00F78617 /* EnumSelectViewController.m in Sources */,
+				428980171E24924D005F1BD8 /* SortItemViewController.m in Sources */,
+				3CF33C8B27BF4936001CBEEC /* ServerSettingViewController.m in Sources */,
+				7162A5711C58728D00AB630E /* DetailImageCell.m in Sources */,
+				7162A51A1C58704600AB630E /* ModelItemCell.m in Sources */,
+				7141DD511C57459B00F7DF59 /* qrencode.c in Sources */,
+				7162A5451C58719D00AB630E /* RATreeView.m in Sources */,
+				3C514974273E074500F78617 /* CommonEditorCellEditor.m in Sources */,
+				71DF74841C57608F00F2789C /* ImageScrollerViewController.m in Sources */,
+				3CDDB25C273A564200681F78 /* DefaultTableHeaderView.m in Sources */,
+				71DF74861C57608F00F2789C /* ImageViewController.m in Sources */,
+				7162A5821C5872EF00AB630E /* HomeTableViewCellButtonBanner.m in Sources */,
+				713F76B61929F4A7006A7305 /* main.m in Sources */,
+				71BF06FE1D2F3CBA00981938 /* OfflineSettingViewController.m in Sources */,
+				71DF74341C5757DA00F2789C /* ActiveViewController.m in Sources */,
+				3C51E7CA27B261EC00E61163 /* RANetworkTaskDelegate.m in Sources */,
+				7162A5431C58719D00AB630E /* RATreeNodeInfo.m in Sources */,
+				3C51494B273D095900F78617 /* CommonEditorCellLabel.m in Sources */,
+				71FFBBE91C60894900D91DC2 /* iSalesDB.m in Sources */,
+				7162A55B1C58724700AB630E /* ContactAdvanceSearchViewController.m in Sources */,
+				7162A5441C58719D00AB630E /* RATreeNodeInfo+Private.m in Sources */,
+				7162A5C51C5873BB00AB630E /* SearchViewController.m in Sources */,
+				7162A5191C58704600AB630E /* EditModelPriceViewController.m in Sources */,
+				3C514969273D0B1E00F78617 /* RADataProvider.m in Sources */,
+				7162A5721C58728D00AB630E /* DetailKVCell.m in Sources */,
+				7141DD501C57459B00F7DF59 /* QRCodeGenerator.m in Sources */,
+				715671331E10A0EF006324A0 /* RectDrawable.m in Sources */,
+				3C51E7D027B2623700E61163 /* UploadCell.m in Sources */,
+				4289802B1E2492D2005F1BD8 /* CategoryPriceCell.m in Sources */,
+				7162A5DA1C5876E300AB630E /* AboutViewController.m in Sources */,
+				7141DD4E1C57459B00F7DF59 /* bitstream.c in Sources */,
+				71DF74851C57608F00F2789C /* ImageUploadViewController.m in Sources */,
+				3C514966273D0A2F00F78617 /* SRMonthPicker.m in Sources */,
+				3C69618223C7156D0075172A /* RAPDFViewController.m in Sources */,
+				7162A5CA1C58761500AB630E /* SignatureView.m in Sources */,
+				7162A5181C58704600AB630E /* CartViewController.m in Sources */,
+				42BF67CC1E5179970081F90A /* ERPUtils.m in Sources */,
+				42FD1A031FBD1A3000C5D9A8 /* RAOrderPreviewController.m in Sources */,
+				7141DD3C1C5726B700F7DF59 /* ScanApiHelper.mm in Sources */,
+				7162A5261C58706C00AB630E /* CategoryViewController.m in Sources */,
+				7162A50A1C586FC100AB630E /* NSTimer+Addition.m in Sources */,
+				3C514949273D095900F78617 /* CommonEditorCellEnum.m in Sources */,
+				712AFED91DBA050200254965 /* GroupDrawable.m in Sources */,
+				3C51E7CD27B261EC00E61163 /* RAUploadManager.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+		3C4DA61D27B50199001EB44E /* Main.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				3C4DA61E27B50199001EB44E /* Base */,
+			);
+			name = Main.storyboard;
+			sourceTree = "<group>";
+		};
+		713F76B21929F4A7006A7305 /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				713F76B31929F4A7006A7305 /* en */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+		7143E208202FCEEB00451903 /* OLM.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				7143E209202FCEEB00451903 /* Base */,
+			);
+			name = OLM.storyboard;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		713F76D61929F4A7006A7305 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = (
+					"$(PROJECT_DIR)/ScanApiSDK-10.2.227-2/include",
+					"$(PROJECT_DIR)/common/qrcode",
+					"$(PROJECT_DIR)/common/CommonEditor",
+				);
+				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+				LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)/ScanApiSDK-10.2.227-2/lib";
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = 2;
+			};
+			name = Debug;
+		};
+		713F76D71929F4A7006A7305 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = YES;
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = (
+					"$(PROJECT_DIR)/ScanApiSDK-10.2.227-2/include",
+					"$(PROJECT_DIR)/common/qrcode",
+					"$(PROJECT_DIR)/common/CommonEditor",
+				);
+				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+				LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)/ScanApiSDK-10.2.227-2/lib";
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = 2;
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		713F76D91929F4A7006A7305 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CURRENT_PROJECT_VERSION = 200119;
+				DEVELOPMENT_TEAM = HXWLAA5YN5;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/GoogleAnalytics/FirebaseAnalytics/Frameworks",
+					"$(PROJECT_DIR)/GoogleAnalytics/FirebaseCore/Frameworks",
+					"$(PROJECT_DIR)/GoogleAnalytics/FirebaseInstanceID/Frameworks",
+					"$(PROJECT_DIR)/GoogleAnalytics/Google/Frameworks",
+				);
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "HMLG Scan Order/HMLG Scan Order-Prefix.pch";
+				INFOPLIST_FILE = "$(SRCROOT)/HMLG Scan Order/HMLG Scan Order-Info.plist";
+				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+				LIBRARY_SEARCH_PATHS = (
+					"$(PROJECT_DIR)/ScanApiSDK-10.2.227-2/lib",
+					"$(PROJECT_DIR)/GoogleAnalytics/GoogleAnalytics/Libraries",
+				);
+				MARKETING_VERSION = 1.02;
+				OTHER_LDFLAGS = (
+					"$(inherited)",
+					"-ObjC",
+					"-framework",
+					"\"CoreGraphics\"",
+					"-framework",
+					"\"MobileCoreServices\"",
+					"-framework",
+					"\"Security\"",
+					"-framework",
+					"\"SystemConfiguration\"",
+					"-v",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = "usai.hmlg.Scan-Order";
+				PRODUCT_NAME = "HMLG Scan Order";
+				PROVISIONING_PROFILE = "";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Debug;
+		};
+		713F76DA1929F4A7006A7305 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CURRENT_PROJECT_VERSION = 200119;
+				DEVELOPMENT_TEAM = HXWLAA5YN5;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/GoogleAnalytics/FirebaseAnalytics/Frameworks",
+					"$(PROJECT_DIR)/GoogleAnalytics/FirebaseCore/Frameworks",
+					"$(PROJECT_DIR)/GoogleAnalytics/FirebaseInstanceID/Frameworks",
+					"$(PROJECT_DIR)/GoogleAnalytics/Google/Frameworks",
+				);
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "HMLG Scan Order/HMLG Scan Order-Prefix.pch";
+				INFOPLIST_FILE = "$(SRCROOT)/HMLG Scan Order/HMLG Scan Order-Info.plist";
+				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+				LIBRARY_SEARCH_PATHS = (
+					"$(PROJECT_DIR)/ScanApiSDK-10.2.227-2/lib",
+					"$(PROJECT_DIR)/GoogleAnalytics/GoogleAnalytics/Libraries",
+				);
+				MARKETING_VERSION = 1.02;
+				OTHER_LDFLAGS = (
+					"$(inherited)",
+					"-ObjC",
+					"-framework",
+					"\"CoreGraphics\"",
+					"-framework",
+					"\"MobileCoreServices\"",
+					"-framework",
+					"\"Security\"",
+					"-framework",
+					"\"SystemConfiguration\"",
+					"-v",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = "usai.hmlg.Scan-Order";
+				PRODUCT_NAME = "HMLG Scan Order";
+				PROVISIONING_PROFILE = "";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		713F76A11929F4A7006A7305 /* Build configuration list for PBXProject "HMLG Scan Order" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				713F76D61929F4A7006A7305 /* Debug */,
+				713F76D71929F4A7006A7305 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		713F76D81929F4A7006A7305 /* Build configuration list for PBXNativeTarget "HMLG Scan Order" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				713F76D91929F4A7006A7305 /* Debug */,
+				713F76DA1929F4A7006A7305 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 713F769E1929F4A7006A7305 /* Project object */;
+}

+ 7 - 0
RedAnt ERP Mobile/HMLG Scan Order.xcodeproj/project.xcworkspace/contents.xcworkspacedata

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:HMLG Scan Order.xcodeproj">
+   </FileRef>
+</Workspace>

+ 14 - 0
RedAnt ERP Mobile/HMLG Scan Order.xcodeproj/xcuserdata/ruizhang.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -0,0 +1,14 @@
+<?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">
+<dict>
+	<key>SchemeUserState</key>
+	<dict>
+		<key>HMLG Scan Order.xcscheme_^#shared#^_</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>1</integer>
+		</dict>
+	</dict>
+</dict>
+</plist>

+ 3 - 0
RedAnt ERP Mobile/RedAnt ERP Mobile.xcworkspace/contents.xcworkspacedata

@@ -4,6 +4,9 @@
    <FileRef
    <FileRef
       location = "group:iSales-CONTRAST.xcodeproj">
       location = "group:iSales-CONTRAST.xcodeproj">
    </FileRef>
    </FileRef>
+   <FileRef
+      location = "group:HMLG Scan Order.xcodeproj">
+   </FileRef>
    <Group
    <Group
       location = "container:"
       location = "container:"
       name = "not active">
       name = "not active">

+ 2 - 0
RedAnt ERP Mobile/RedAnt ERP Mobile.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings

@@ -4,5 +4,7 @@
 <dict>
 <dict>
 	<key>BuildSystemType</key>
 	<key>BuildSystemType</key>
 	<string>Latest</string>
 	<string>Latest</string>
+	<key>PreviewsEnabled</key>
+	<false/>
 </dict>
 </dict>
 </plist>
 </plist>

+ 19 - 0
RedAnt ERP Mobile/common/AppDelegateBase.h

@@ -12,6 +12,9 @@
 #import "UIResponder+Router.h"
 #import "UIResponder+Router.h"
 #import "iSalesDB.h"
 #import "iSalesDB.h"
 #import "SyncControlPanelViewController.h"
 #import "SyncControlPanelViewController.h"
+
+#import "RAUploadManager.h"
+
 @protocol ScannerEventsFeedback <NSObject>
 @protocol ScannerEventsFeedback <NSObject>
 -(void) onDecodedData:(NSString*) value;
 -(void) onDecodedData:(NSString*) value;
 -(void) onErrorInfo:(NSString*) errorInfo;
 -(void) onErrorInfo:(NSString*) errorInfo;
@@ -56,6 +59,7 @@ typedef enum {
 @property BOOL softScannerEnabled;
 @property BOOL softScannerEnabled;
 -(void) addlog:(NSString*) newtext;
 -(void) addlog:(NSString*) newtext;
 @property bool enable_ScannerLog;
 @property bool enable_ScannerLog;
+
 @property (strong,nonatomic) NSMutableArray* devices;
 @property (strong,nonatomic) NSMutableArray* devices;
 - (void)enableScanner:(bool)enable ;
 - (void)enableScanner:(bool)enable ;
 @property int api_Status;
 @property int api_Status;
@@ -67,6 +71,10 @@ typedef enum {
 // scanner test
 // scanner test
 -(void) test_onDecodedDataResult:(NSString*) value;
 -(void) test_onDecodedDataResult:(NSString*) value;
 
 
+//offline order
+-(void) backup_oc;
+-(void) restore_oc;
+
 
 
 @property (strong,nonatomic)NSMutableDictionary* recent_model;
 @property (strong,nonatomic)NSMutableDictionary* recent_model;
 @property (nonatomic,assign) bool offline_mode;
 @property (nonatomic,assign) bool offline_mode;
@@ -157,6 +165,9 @@ typedef enum {
 @property double file_progress;
 @property double file_progress;
 @property double overall_progress;
 @property double overall_progress;
 @property (strong, nonatomic) NSString* downloadlog;
 @property (strong, nonatomic) NSString* downloadlog;
+
+
+
 @property (strong, nonatomic) NSString* vid;
 @property (strong, nonatomic) NSString* vid;
 @property bool downloading;
 @property bool downloading;
 -(void) add_downloadlog:(NSString*) newtext;
 -(void) add_downloadlog:(NSString*) newtext;
@@ -182,4 +193,12 @@ typedef enum {
 
 
 - (void)checkLogin:(BOOL)reloadCurVC;
 - (void)checkLogin:(BOOL)reloadCurVC;
 
 
+- (void)updateScanButton:(BOOL)enable;
+
+@property (strong, nonatomic) NSString* uploadurl;
+@property (strong, nonatomic) NSString* address;
+@property (strong, nonatomic) NSString* downloadurl;
+@property (strong, nonatomic)  RAUploadManager *uploadManager;
+@property (nonatomic,assign) BOOL compressFile;
+
 @end
 @end

+ 98 - 34
RedAnt ERP Mobile/common/AppDelegateBase.m

@@ -34,7 +34,7 @@
 #import "RAOrderEditorViewController.h"
 #import "RAOrderEditorViewController.h"
 #endif
 #endif
 #import "RAConvertor.h"
 #import "RAConvertor.h"
-
+#import "config.h"
 #define UNZIP_OPEN_FAILED 0
 #define UNZIP_OPEN_FAILED 0
 #define UNZIP_SUCCESS 1
 #define UNZIP_SUCCESS 1
 #define UNZIP_NO_SPACE 2
 #define UNZIP_NO_SPACE 2
@@ -176,6 +176,13 @@
         }
         }
     });
     });
 }
 }
+#ifdef SCANNER_ORDER
+- (void)updateScanButton:(BOOL)enable
+{
+    MainViewController * mainvc=(MainViewController * )self.main_vc;
+    mainvc.btnScan.enabled = enable;
+}
+#endif
 -(void) update_count_mark
 -(void) update_count_mark
 {
 {
     
     
@@ -364,6 +371,9 @@
     [((MainViewController*)self.main_vc) reloadOrder:true immediately:false];
     [((MainViewController*)self.main_vc) reloadOrder:true immediately:false];
 #endif
 #endif
     
     
+    
+    [self updateScanButton:false];
+    
 }
 }
 -(void) switchToPreviousVC
 -(void) switchToPreviousVC
 {
 {
@@ -399,27 +409,19 @@
             
             
             main_vc.labelMode.text=nil;
             main_vc.labelMode.text=nil;
             [main_vc.labelMode setTextColor:UIColorFromRGB(0x336699)];
             [main_vc.labelMode setTextColor:UIColorFromRGB(0x336699)];
-            //        [main_vc.buttonUser setTitleColor:UIColorFromRGB(0x996633) forState:UIControlStateNormal];
-            //        main_vc.buttonUser.hidden=true;
-            //        main_vc.buttonUser.hidden=false;
-            //         [main_vc.headerView setNeedsDisplay];
-            //        [main_vc.headerView setNeedsLayout];
+
             return;
             return;
         }
         }
         else
         else
         {
         {
+            main_vc.btnContact.hidden = NO;
             if(self.user_type==USER_ROLE_CUSTOMER)
             if(self.user_type==USER_ROLE_CUSTOMER)
             {
             {
                 NSString* title = [NSString stringWithFormat:@"%@",self.user];
                 NSString* title = [NSString stringWithFormat:@"%@",self.user];
                 [main_vc.buttonUser setTitle:title forState:UIControlStateNormal];
                 [main_vc.buttonUser setTitle:title forState:UIControlStateNormal];
                 main_vc.labelMode.text=nil;
                 main_vc.labelMode.text=nil;
                 [main_vc.labelMode setTextColor:UIColorFromRGB(0x336699)];
                 [main_vc.labelMode setTextColor:UIColorFromRGB(0x336699)];
-                
-                //            [main_vc.buttonUser setTitleColor:UIColorFromRGB(0x996633) forState:UIControlStateNormal];
-                //            main_vc.buttonUser.hidden=true;
-                //            main_vc.buttonUser.hidden=false;
-                //             [main_vc.headerView setNeedsDisplay];
-                //            [main_vc.headerView setNeedsLayout];
+
             }
             }
             else
             else
             {
             {
@@ -431,11 +433,7 @@
                     
                     
                     main_vc.labelMode.text=self.mode;
                     main_vc.labelMode.text=self.mode;
                     [main_vc.labelMode setTextColor:UIColorFromRGB(0x336699)];
                     [main_vc.labelMode setTextColor:UIColorFromRGB(0x336699)];
-                    //                [main_vc.buttonUser setTitleColor:UIColorFromRGB(0x996633) forState:UIControlStateNormal];
-                    //                main_vc.buttonUser.hidden=true;
-                    //                main_vc.buttonUser.hidden=false;
-                    //                 [main_vc.headerView setNeedsDisplay];
-                    //                [main_vc.headerView setNeedsLayout];
+
                 }
                 }
                 else
                 else
                 {
                 {
@@ -446,11 +444,7 @@
                     
                     
                     main_vc.labelMode.text=self.mode;
                     main_vc.labelMode.text=self.mode;
                     [main_vc.labelMode setTextColor:UIColorFromRGB(0x009966)];
                     [main_vc.labelMode setTextColor:UIColorFromRGB(0x009966)];
-                    //                [main_vc.buttonUser setTitleColor:UIColorFromRGB(0x009966) forState:UIControlStateNormal];
-                    //                main_vc.buttonUser.hidden=true;
-                    //                main_vc.buttonUser.hidden=false;
-                    //                 [main_vc.headerView setNeedsDisplay];
-                    //                [main_vc.headerView setNeedsLayout];
+
                 }
                 }
                 
                 
                 
                 
@@ -521,17 +515,7 @@
         }
         }
         else
         else
         {
         {
-            //            if(self.user_type==USER_ROLE_CUSTOMER)
-            //            {
-            //
-            //
-            //                main_vc.labelSo.text=nil;
-            //                //            main_vc.buttonUser.hidden=true;
-            //                //            main_vc.buttonUser.hidden=false;
-            //                //             [main_vc.headerView setNeedsDisplay];
-            //                //            [main_vc.headerView setNeedsLayout];
-            //            }
-            //            else
+
             {
             {
                 if(So.length==0)
                 if(So.length==0)
                     main_vc.labelSo.text=nil;
                     main_vc.labelSo.text=nil;
@@ -606,6 +590,10 @@ void UncaughtExceptionHandler(NSException *exception) {
         [appDelegate writeUrgencyCache];
         [appDelegate writeUrgencyCache];
 
 
     });
     });
+    
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+
+        [appDelegate saveUploadTasks];
 }
 }
 
 
 - (void)handleErrorLog {
 - (void)handleErrorLog {
@@ -974,10 +962,19 @@ void UncaughtExceptionHandler(NSException *exception) {
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleUrgencyFile) name:LoginOK_HandleUrgencyFile_Notification object:nil];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleUrgencyFile) name:LoginOK_HandleUrgencyFile_Notification object:nil];
 }
 }
 
 
+
 - (void)dealloc {
 - (void)dealloc {
     [[NSNotificationCenter defaultCenter] removeObserver:self];
     [[NSNotificationCenter defaultCenter] removeObserver:self];
 }
 }
-
+#ifdef SCANNER_ORDER
+-(void) setAddress:(NSString *)address
+{
+    
+    _address = address;
+    _uploadurl = [address stringByAppendingPathComponent:URL_SCAN_UPLOAD];// [NSString stringWithFormat:@"%@%@",address,URL_SCAN_UPLOAD];
+    _downloadurl =[address stringByAppendingPathComponent:URL_SCAN_DOWNLOAD]; // [NSString stringWithFormat:@"%@%@",address,URL_SCAN_DOWNLOAD];
+}
+#endif
 - (void)setUpGoogleAnalytics {
 - (void)setUpGoogleAnalytics {
     
     
     // 初始化Google Analytics
     // 初始化Google Analytics
@@ -1116,6 +1113,18 @@ void UncaughtExceptionHandler(NSException *exception) {
     self.forgroundDate = [NSDate date];
     self.forgroundDate = [NSDate date];
     
     
     
     
+    
+    
+    [RAUploadManager configureUploadManager:^(RAUPloadManagerConfigure *configure) {
+       
+        configure.autoRemoveFinish = YES;
+    }];
+    
+    if (!self.uploadManager) {
+        self.uploadManager=[RAUploadManager sharedManager];
+    }
+    
+    
 }
 }
 -(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
 -(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
 {
 {
@@ -2801,6 +2810,12 @@ void UncaughtExceptionHandler(NSException *exception) {
 }
 }
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
 {
+    self.compressFile = [[RAUPloadManagerConfigure alloc] init].compressImage;
+#ifdef OFFLINE_ORDER
+    
+#endif
+    
+    
     self.window.backgroundColor = [UIColor whiteColor];
     self.window.backgroundColor = [UIColor whiteColor];
     
     
     //    [RAUtils expression_varable:nil regex:nil];
     //    [RAUtils expression_varable:nil regex:nil];
@@ -3627,4 +3642,53 @@ void UncaughtExceptionHandler(NSException *exception) {
     // [self.dev_table reloadData];
     // [self.dev_table reloadData];
     
     
 }
 }
+
+#pragma mark - offline order
+-(void) backup_oc
+{
+    
+}
+-(void) restore_oc
+{
+    
+}
+
+
+
+#pragma mark - upload manager
+
+- (void)saveUploadTasks {
+    
+    if(true)
+    {
+        
+        if(self.uploadManager.arr_queue!=nil)
+        {
+            
+            [self.uploadManager stopAllTasks];
+            [self.uploadManager saveTasks];
+
+            
+        }
+        return;
+    }
+
+}
+
+- (NSMutableArray *)cachedUploadTasks {
+    if (!self.user) {
+        return nil;
+    }
+    NSString *path = [[RAUtils appCacheDirectory] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_uploadTasks",self.user]];
+    
+    NSFileManager *manager = [NSFileManager defaultManager];
+    if ([manager fileExistsAtPath:path]) {
+        NSMutableArray *arr = [NSMutableArray arrayWithContentsOfFile:path];
+        [manager removeItemAtPath:path error:nil];
+        return arr;
+    }
+    
+    return nil;
+}
+
 @end
 @end

+ 1 - 1
RedAnt ERP Mobile/common/CartUtils.m

@@ -12,7 +12,7 @@
 #import "RANetwork.h"
 #import "RANetwork.h"
 #import "LoginViewController.h"
 #import "LoginViewController.h"
 #import "MainViewController.h"
 #import "MainViewController.h"
-
+#import "OrderListViewController.h"
 
 
 @implementation CartUtils
 @implementation CartUtils
 +(void) neworder:(UIViewController*) vc selectorholder:(id)holder selector:(SEL)addtocart
 +(void) neworder:(UIViewController*) vc selectorholder:(id)holder selector:(SEL)addtocart

+ 46 - 34
RedAnt ERP Mobile/common/ERP_Mobile_Cart.storyboard

@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <dependencies>
     <dependencies>
         <deployment identifier="iOS"/>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19519"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <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"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <scenes>
     <scenes>
@@ -29,19 +30,19 @@
                                         <color key="sectionIndexBackgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                         <color key="sectionIndexBackgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                         <prototypes>
                                         <prototypes>
                                             <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="CartItemCell" rowHeight="146" id="9d9-Fh-IGR" customClass="ModelItemCell">
                                             <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="CartItemCell" rowHeight="146" id="9d9-Fh-IGR" customClass="ModelItemCell">
-                                                <rect key="frame" x="0.0" y="28" width="768" height="146"/>
+                                                <rect key="frame" x="0.0" y="44.5" width="768" height="146"/>
                                                 <autoresizingMask key="autoresizingMask"/>
                                                 <autoresizingMask key="autoresizingMask"/>
                                                 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="9d9-Fh-IGR" id="NLP-mv-Q7E">
                                                 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="9d9-Fh-IGR" id="NLP-mv-Q7E">
                                                     <rect key="frame" x="0.0" y="0.0" width="768" height="146"/>
                                                     <rect key="frame" x="0.0" y="0.0" width="768" height="146"/>
                                                     <autoresizingMask key="autoresizingMask"/>
                                                     <autoresizingMask key="autoresizingMask"/>
                                                     <subviews>
                                                     <subviews>
                                                         <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="name aaaaaaaaaaaaa aaaaaaaaaa BBBBB  CCCCC" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sj7-pu-c1Y" userLabel="name and description">
                                                         <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="name aaaaaaaaaaaaa aaaaaaaaaa BBBBB  CCCCC" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sj7-pu-c1Y" userLabel="name and description">
-                                                            <rect key="frame" x="123" y="10" width="183" height="100"/>
+                                                            <rect key="frame" x="123" y="10" width="182" height="100"/>
                                                             <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="15"/>
                                                             <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="15"/>
                                                             <nil key="highlightedColor"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         </label>
                                                         <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="9999" borderStyle="roundedRect" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="cfH-6d-98v" userLabel="qty">
                                                         <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="9999" borderStyle="roundedRect" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="cfH-6d-98v" userLabel="qty">
-                                                            <rect key="frame" x="439" y="41" width="60" height="32"/>
+                                                            <rect key="frame" x="438" y="41" width="60" height="32"/>
                                                             <constraints>
                                                             <constraints>
                                                                 <constraint firstAttribute="height" constant="32" id="9qV-vK-2rq"/>
                                                                 <constraint firstAttribute="height" constant="32" id="9qV-vK-2rq"/>
                                                                 <constraint firstAttribute="width" constant="60" id="Lkj-nL-CD6"/>
                                                                 <constraint firstAttribute="width" constant="60" id="Lkj-nL-CD6"/>
@@ -67,7 +68,7 @@
                                                             </connections>
                                                             </connections>
                                                         </button>
                                                         </button>
                                                         <stepper opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="1" maximumValue="99999" translatesAutoresizingMaskIntoConstraints="NO" id="Icr-T0-BzH">
                                                         <stepper opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="1" maximumValue="99999" translatesAutoresizingMaskIntoConstraints="NO" id="Icr-T0-BzH">
-                                                            <rect key="frame" x="514" y="41" width="94" height="32"/>
+                                                            <rect key="frame" x="513" y="41" width="94" height="32"/>
                                                             <constraints>
                                                             <constraints>
                                                                 <constraint firstAttribute="height" constant="32" id="8h7-sY-BPG"/>
                                                                 <constraint firstAttribute="height" constant="32" id="8h7-sY-BPG"/>
                                                                 <constraint firstAttribute="width" constant="94" id="wmY-Eg-mTQ"/>
                                                                 <constraint firstAttribute="width" constant="94" id="wmY-Eg-mTQ"/>
@@ -77,7 +78,7 @@
                                                             </connections>
                                                             </connections>
                                                         </stepper>
                                                         </stepper>
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="12345678.99" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9e7-U4-taE" userLabel="unit price">
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="12345678.99" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9e7-U4-taE" userLabel="unit price">
-                                                            <rect key="frame" x="314" y="46.5" width="110" height="21"/>
+                                                            <rect key="frame" x="313" y="46.5" width="110" height="21"/>
                                                             <constraints>
                                                             <constraints>
                                                                 <constraint firstAttribute="width" constant="110" id="W0G-CU-uww"/>
                                                                 <constraint firstAttribute="width" constant="110" id="W0G-CU-uww"/>
                                                             </constraints>
                                                             </constraints>
@@ -86,7 +87,7 @@
                                                             <nil key="highlightedColor"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         </label>
                                                         <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="30 bundle item with $xxx" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6Z9-hg-rlD">
                                                         <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="30 bundle item with $xxx" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6Z9-hg-rlD">
-                                                            <rect key="frame" x="123" y="87.5" width="449" height="21"/>
+                                                            <rect key="frame" x="123" y="87.5" width="448" height="21"/>
                                                             <constraints>
                                                             <constraints>
                                                                 <constraint firstAttribute="height" constant="21" id="hlq-zF-MhA"/>
                                                                 <constraint firstAttribute="height" constant="21" id="hlq-zF-MhA"/>
                                                             </constraints>
                                                             </constraints>
@@ -95,7 +96,7 @@
                                                             <nil key="highlightedColor"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         </label>
                                                         <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="12345678.99" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7zr-Zx-7tD" userLabel="price before discount" customClass="StrikethroughLabel">
                                                         <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="12345678.99" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7zr-Zx-7tD" userLabel="price before discount" customClass="StrikethroughLabel">
-                                                            <rect key="frame" x="314" y="10" width="110" height="21"/>
+                                                            <rect key="frame" x="313" y="10" width="110" height="21"/>
                                                             <constraints>
                                                             <constraints>
                                                                 <constraint firstAttribute="width" constant="110" id="0wV-fW-oya"/>
                                                                 <constraint firstAttribute="width" constant="110" id="0wV-fW-oya"/>
                                                                 <constraint firstAttribute="height" constant="21" id="1BK-GJ-UM1"/>
                                                                 <constraint firstAttribute="height" constant="21" id="1BK-GJ-UM1"/>
@@ -105,7 +106,7 @@
                                                             <nil key="highlightedColor"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         </label>
                                                         <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="99.99% off" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aTC-Ir-xIh" userLabel="discount">
                                                         <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="99.99% off" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aTC-Ir-xIh" userLabel="discount">
-                                                            <rect key="frame" x="468" y="10" width="100" height="21"/>
+                                                            <rect key="frame" x="467" y="10" width="100" height="21"/>
                                                             <constraints>
                                                             <constraints>
                                                                 <constraint firstAttribute="width" constant="100" id="u3i-gR-l4k"/>
                                                                 <constraint firstAttribute="width" constant="100" id="u3i-gR-l4k"/>
                                                             </constraints>
                                                             </constraints>
@@ -114,7 +115,7 @@
                                                             <nil key="highlightedColor"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         </label>
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sold in QTY of:9999" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="d6n-Fn-anV">
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sold in QTY of:9999" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="d6n-Fn-anV">
-                                                            <rect key="frame" x="578" y="10" width="160" height="21"/>
+                                                            <rect key="frame" x="577" y="10" width="160" height="21"/>
                                                             <constraints>
                                                             <constraints>
                                                                 <constraint firstAttribute="width" constant="160" id="JFg-Eg-ICy"/>
                                                                 <constraint firstAttribute="width" constant="160" id="JFg-Eg-ICy"/>
                                                                 <constraint firstAttribute="height" constant="21" id="bk0-ux-cHr"/>
                                                                 <constraint firstAttribute="height" constant="21" id="bk0-ux-cHr"/>
@@ -124,15 +125,15 @@
                                                             <nil key="highlightedColor"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         </label>
                                                         <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="123456789.00" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4CM-f3-iTa" userLabel="subtotal price">
                                                         <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="123456789.00" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4CM-f3-iTa" userLabel="subtotal price">
-                                                            <rect key="frame" x="623" y="46.5" width="115" height="21"/>
+                                                            <rect key="frame" x="622" y="46.5" width="115" height="21"/>
                                                             <constraints>
                                                             <constraints>
                                                                 <constraint firstAttribute="width" constant="115" id="H2W-Ot-Soh"/>
                                                                 <constraint firstAttribute="width" constant="115" id="H2W-Ot-Soh"/>
                                                             </constraints>
                                                             </constraints>
                                                             <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                             <nil key="highlightedColor"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         </label>
-                                                        <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ocu-RP-B0J" customClass="BundleDetailButton">
-                                                            <rect key="frame" x="580" y="83" width="50" height="30"/>
+                                                        <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ocu-RP-B0J" customClass="BundleDetailButton">
+                                                            <rect key="frame" x="579" y="83" width="50" height="30"/>
                                                             <constraints>
                                                             <constraints>
                                                                 <constraint firstAttribute="height" constant="30" id="DSn-b9-pka"/>
                                                                 <constraint firstAttribute="height" constant="30" id="DSn-b9-pka"/>
                                                                 <constraint firstAttribute="width" constant="50" id="vPF-fd-wAB"/>
                                                                 <constraint firstAttribute="width" constant="50" id="vPF-fd-wAB"/>
@@ -154,7 +155,7 @@
                                                             <nil key="highlightedColor"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         </label>
                                                         <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No Such Model" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FOL-ZC-Dqb">
                                                         <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No Such Model" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FOL-ZC-Dqb">
-                                                            <rect key="frame" x="60" y="56" width="337" height="42"/>
+                                                            <rect key="frame" x="61" y="56" width="337" height="42"/>
                                                             <constraints>
                                                             <constraints>
                                                                 <constraint firstAttribute="width" constant="337" id="6hb-Mb-KlY"/>
                                                                 <constraint firstAttribute="width" constant="337" id="6hb-Mb-KlY"/>
                                                                 <constraint firstAttribute="height" constant="42" id="R9d-BO-jGl"/>
                                                                 <constraint firstAttribute="height" constant="42" id="R9d-BO-jGl"/>
@@ -176,8 +177,8 @@ Stock</string>
                                                             <color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                             <color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                             <nil key="highlightedColor"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         </label>
-                                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Dh8-s0-2mU" customClass="BundleDetailButton">
-                                                            <rect key="frame" x="638" y="83" width="100" height="30"/>
+                                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Dh8-s0-2mU" customClass="BundleDetailButton">
+                                                            <rect key="frame" x="637" y="83" width="100" height="30"/>
                                                             <constraints>
                                                             <constraints>
                                                                 <constraint firstAttribute="height" constant="30" id="k4d-bv-5h4"/>
                                                                 <constraint firstAttribute="height" constant="30" id="k4d-bv-5h4"/>
                                                                 <constraint firstAttribute="width" constant="100" id="qzO-hT-b92"/>
                                                                 <constraint firstAttribute="width" constant="100" id="qzO-hT-b92"/>
@@ -246,7 +247,7 @@ Stock</string>
                                                 </connections>
                                                 </connections>
                                             </tableViewCell>
                                             </tableViewCell>
                                             <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="section_header_cell" rowHeight="50" id="XyA-7C-sJn">
                                             <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="section_header_cell" rowHeight="50" id="XyA-7C-sJn">
-                                                <rect key="frame" x="0.0" y="174" width="768" height="50"/>
+                                                <rect key="frame" x="0.0" y="190.5" width="768" height="50"/>
                                                 <autoresizingMask key="autoresizingMask"/>
                                                 <autoresizingMask key="autoresizingMask"/>
                                                 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="XyA-7C-sJn" translatesAutoresizingMaskIntoConstraints="NO" id="Ugp-AX-JtS">
                                                 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="XyA-7C-sJn" translatesAutoresizingMaskIntoConstraints="NO" id="Ugp-AX-JtS">
                                                     <rect key="frame" x="0.0" y="0.0" width="768" height="50"/>
                                                     <rect key="frame" x="0.0" y="0.0" width="768" height="50"/>
@@ -280,7 +281,7 @@ Stock</string>
                                         </connections>
                                         </connections>
                                     </tableView>
                                     </tableView>
                                     <label hidden="YES" opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Cannot get data from server.
Tap to try again." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="c8z-jb-g0B">
                                     <label hidden="YES" opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Cannot get data from server.
Tap to try again." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="c8z-jb-g0B">
-                                        <rect key="frame" x="262" y="407.5" width="244" height="45.5"/>
+                                        <rect key="frame" x="263.5" y="407.5" width="241.5" height="45.5"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="19"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="19"/>
                                         <color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <nil key="highlightedColor"/>
                                         <nil key="highlightedColor"/>
@@ -389,7 +390,7 @@ Stock</string>
                                         <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                         <nil key="highlightedColor"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     </label>
-                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Rdv-8s-Jy6" customClass="DefaultImageButton">
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Rdv-8s-Jy6" customClass="DefaultImageButton">
                                         <rect key="frame" x="623" y="84" width="130" height="30"/>
                                         <rect key="frame" x="623" y="84" width="130" height="30"/>
                                         <constraints>
                                         <constraints>
                                             <constraint firstAttribute="height" constant="30" id="BbJ-vM-qDn"/>
                                             <constraint firstAttribute="height" constant="30" id="BbJ-vM-qDn"/>
@@ -407,7 +408,7 @@ Stock</string>
                                             <action selector="onPlaceOrder:" destination="K4s-dn-ekA" eventType="touchUpInside" id="cCk-ol-tXj"/>
                                             <action selector="onPlaceOrder:" destination="K4s-dn-ekA" eventType="touchUpInside" id="cCk-ol-tXj"/>
                                         </connections>
                                         </connections>
                                     </button>
                                     </button>
-                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WY7-cp-N9a" customClass="DefaultImageButton">
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WY7-cp-N9a" customClass="DefaultImageButton">
                                         <rect key="frame" x="573" y="84" width="30" height="30"/>
                                         <rect key="frame" x="573" y="84" width="30" height="30"/>
                                         <constraints>
                                         <constraints>
                                             <constraint firstAttribute="width" constant="30" id="3ZM-R4-EV0"/>
                                             <constraint firstAttribute="width" constant="30" id="3ZM-R4-EV0"/>
@@ -420,7 +421,7 @@ Stock</string>
                                             <action selector="OnCancelOrderClicked:" destination="K4s-dn-ekA" eventType="touchUpInside" id="pwm-Io-sVV"/>
                                             <action selector="OnCancelOrderClicked:" destination="K4s-dn-ekA" eventType="touchUpInside" id="pwm-Io-sVV"/>
                                         </connections>
                                         </connections>
                                     </button>
                                     </button>
-                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="wordWrap" translatesAutoresizingMaskIntoConstraints="NO" id="jbg-4H-dCx">
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="system" lineBreakMode="wordWrap" translatesAutoresizingMaskIntoConstraints="NO" id="jbg-4H-dCx">
                                         <rect key="frame" x="15" y="47" width="130" height="30"/>
                                         <rect key="frame" x="15" y="47" width="130" height="30"/>
                                         <constraints>
                                         <constraints>
                                             <constraint firstAttribute="width" constant="130" id="9Vf-cs-lYQ"/>
                                             <constraint firstAttribute="width" constant="130" id="9Vf-cs-lYQ"/>
@@ -476,7 +477,7 @@ Stock</string>
                                         <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <nil key="highlightedColor"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     </label>
-                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YOv-h4-k5B">
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YOv-h4-k5B">
                                         <rect key="frame" x="15" y="84" width="100" height="30"/>
                                         <rect key="frame" x="15" y="84" width="100" height="30"/>
                                         <constraints>
                                         <constraints>
                                             <constraint firstAttribute="height" constant="30" id="GnN-Xt-FzU"/>
                                             <constraint firstAttribute="height" constant="30" id="GnN-Xt-FzU"/>
@@ -516,7 +517,7 @@ Stock</string>
                                         <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         <nil key="highlightedColor"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     </label>
-                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PaU-lk-9JI">
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PaU-lk-9JI">
                                         <rect key="frame" x="15" y="10" width="30" height="30"/>
                                         <rect key="frame" x="15" y="10" width="30" height="30"/>
                                         <constraints>
                                         <constraints>
                                             <constraint firstAttribute="width" constant="30" id="Cxd-yg-hBh"/>
                                             <constraint firstAttribute="width" constant="30" id="Cxd-yg-hBh"/>
@@ -532,7 +533,7 @@ Stock</string>
                                             <action selector="onEditClick:" destination="K4s-dn-ekA" eventType="touchUpInside" id="WPt-ej-a03"/>
                                             <action selector="onEditClick:" destination="K4s-dn-ekA" eventType="touchUpInside" id="WPt-ej-a03"/>
                                         </connections>
                                         </connections>
                                     </button>
                                     </button>
-                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="y50-hu-fgy">
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="y50-hu-fgy">
                                         <rect key="frame" x="523" y="84" width="30" height="30"/>
                                         <rect key="frame" x="523" y="84" width="30" height="30"/>
                                         <constraints>
                                         <constraints>
                                             <constraint firstAttribute="width" constant="30" id="aLc-U8-fS9"/>
                                             <constraint firstAttribute="width" constant="30" id="aLc-U8-fS9"/>
@@ -543,7 +544,7 @@ Stock</string>
                                             <action selector="emailButtonClick:" destination="K4s-dn-ekA" eventType="touchUpInside" id="7PS-7q-SiA"/>
                                             <action selector="emailButtonClick:" destination="K4s-dn-ekA" eventType="touchUpInside" id="7PS-7q-SiA"/>
                                         </connections>
                                         </connections>
                                     </button>
                                     </button>
-                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Y27-jk-l1Z">
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Y27-jk-l1Z">
                                         <rect key="frame" x="473" y="84" width="30" height="30"/>
                                         <rect key="frame" x="473" y="84" width="30" height="30"/>
                                         <constraints>
                                         <constraints>
                                             <constraint firstAttribute="height" constant="30" id="dEP-Jv-ccc"/>
                                             <constraint firstAttribute="height" constant="30" id="dEP-Jv-ccc"/>
@@ -603,6 +604,7 @@ Stock</string>
                                 </constraints>
                                 </constraints>
                             </view>
                             </view>
                         </subviews>
                         </subviews>
+                        <viewLayoutGuide key="safeArea" id="1t3-Kj-yvQ"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <constraints>
                         <constraints>
                             <constraint firstItem="EdG-w6-IAt" firstAttribute="leading" secondItem="1t3-Kj-yvQ" secondAttribute="leading" id="9Mi-ko-pK8"/>
                             <constraint firstItem="EdG-w6-IAt" firstAttribute="leading" secondItem="1t3-Kj-yvQ" secondAttribute="leading" id="9Mi-ko-pK8"/>
@@ -616,7 +618,6 @@ Stock</string>
                             <constraint firstAttribute="bottom" secondItem="gh3-Tt-1Iu" secondAttribute="bottom" id="xbu-id-hLZ"/>
                             <constraint firstAttribute="bottom" secondItem="gh3-Tt-1Iu" secondAttribute="bottom" id="xbu-id-hLZ"/>
                             <constraint firstItem="gh3-Tt-1Iu" firstAttribute="top" secondItem="EdG-w6-IAt" secondAttribute="bottom" id="zwo-pN-3iU"/>
                             <constraint firstItem="gh3-Tt-1Iu" firstAttribute="top" secondItem="EdG-w6-IAt" secondAttribute="bottom" id="zwo-pN-3iU"/>
                         </constraints>
                         </constraints>
-                        <viewLayoutGuide key="safeArea" id="1t3-Kj-yvQ"/>
                     </view>
                     </view>
                     <connections>
                     <connections>
                         <outlet property="btn_addwish" destination="T3K-rc-7ct" id="Zf7-To-GOl"/>
                         <outlet property="btn_addwish" destination="T3K-rc-7ct" id="Zf7-To-GOl"/>
@@ -624,9 +625,14 @@ Stock</string>
                         <outlet property="btn_edit_select" destination="7hG-Xr-io0" id="HYs-y7-mrB"/>
                         <outlet property="btn_edit_select" destination="7hG-Xr-io0" id="HYs-y7-mrB"/>
                         <outlet property="cancelOrderButton" destination="WY7-cp-N9a" id="bgO-w6-DqN"/>
                         <outlet property="cancelOrderButton" destination="WY7-cp-N9a" id="bgO-w6-DqN"/>
                         <outlet property="cartItemView" destination="EdG-w6-IAt" id="3Dc-Iv-heg"/>
                         <outlet property="cartItemView" destination="EdG-w6-IAt" id="3Dc-Iv-heg"/>
+                        <outlet property="continueButton" destination="jbg-4H-dCx" id="vM2-70-85P"/>
+                        <outlet property="editButton" destination="PaU-lk-9JI" id="FQT-bW-eks"/>
                         <outlet property="emailButton" destination="y50-hu-fgy" id="Pgg-5v-pxL"/>
                         <outlet property="emailButton" destination="y50-hu-fgy" id="Pgg-5v-pxL"/>
                         <outlet property="itemListTable" destination="OMD-NW-nZo" id="LM4-Uh-sbX"/>
                         <outlet property="itemListTable" destination="OMD-NW-nZo" id="LM4-Uh-sbX"/>
                         <outlet property="labelTotal" destination="BdK-WN-iBd" id="Un4-Px-xlm"/>
                         <outlet property="labelTotal" destination="BdK-WN-iBd" id="Un4-Px-xlm"/>
+                        <outlet property="labelTotalCarton" destination="1bF-Cv-KYG" id="rxW-1B-6Us"/>
+                        <outlet property="labelTotalWeight" destination="PWY-Zc-LEx" id="j6U-Vk-jwC"/>
+                        <outlet property="labelTotalcuft" destination="jqa-Zp-Sg2" id="SvJ-qM-HBK"/>
                         <outlet property="label_carton" destination="oeZ-Yi-d5I" id="MU2-E2-slq"/>
                         <outlet property="label_carton" destination="oeZ-Yi-d5I" id="MU2-E2-slq"/>
                         <outlet property="label_cuft" destination="QFj-Yq-8py" id="2Tg-cr-JD5"/>
                         <outlet property="label_cuft" destination="QFj-Yq-8py" id="2Tg-cr-JD5"/>
                         <outlet property="label_items" destination="9Da-eJ-p37" id="scY-Mp-3QZ"/>
                         <outlet property="label_items" destination="9Da-eJ-p37" id="scY-Mp-3QZ"/>
@@ -639,6 +645,9 @@ Stock</string>
                         <outlet property="printButton" destination="Y27-jk-l1Z" id="Qz8-xl-meX"/>
                         <outlet property="printButton" destination="Y27-jk-l1Z" id="Qz8-xl-meX"/>
                         <outlet property="toolbar" destination="JjI-8g-Zx7" id="JVO-kG-uco"/>
                         <outlet property="toolbar" destination="JjI-8g-Zx7" id="JVO-kG-uco"/>
                         <outlet property="toolpanel" destination="gh3-Tt-1Iu" id="aod-Di-PG2"/>
                         <outlet property="toolpanel" destination="gh3-Tt-1Iu" id="aod-Di-PG2"/>
+                        <outlet property="valuecarton" destination="oeZ-Yi-d5I" id="6uw-8D-qa8"/>
+                        <outlet property="valuecuft" destination="QFj-Yq-8py" id="TX4-LX-lGT"/>
+                        <outlet property="valueweight" destination="Yo2-dv-uQb" id="v4v-Rj-yty"/>
                     </connections>
                     </connections>
                 </viewController>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="B6D-9I-foB" userLabel="First Responder" sceneMemberID="firstResponder"/>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="B6D-9I-foB" userLabel="First Responder" sceneMemberID="firstResponder"/>
@@ -659,7 +668,7 @@ Stock</string>
                                 <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                 <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
                                 <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
                             </textView>
                             </textView>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="2mZ-oE-Upn" customClass="DefaultImageButton">
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="2mZ-oE-Upn" customClass="DefaultImageButton">
                                 <rect key="frame" x="358" y="270" width="102" height="30"/>
                                 <rect key="frame" x="358" y="270" width="102" height="30"/>
                                 <constraints>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="30" id="zsK-mj-wNb"/>
                                     <constraint firstAttribute="height" constant="30" id="zsK-mj-wNb"/>
@@ -679,6 +688,7 @@ Stock</string>
                                 </connections>
                                 </connections>
                             </button>
                             </button>
                         </subviews>
                         </subviews>
+                        <viewLayoutGuide key="safeArea" id="ht7-8i-y2A"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <constraints>
                         <constraints>
                             <constraint firstItem="2mZ-oE-Upn" firstAttribute="top" secondItem="d3M-dW-oMp" secondAttribute="bottom" constant="10" id="02U-fr-sgW"/>
                             <constraint firstItem="2mZ-oE-Upn" firstAttribute="top" secondItem="d3M-dW-oMp" secondAttribute="bottom" constant="10" id="02U-fr-sgW"/>
@@ -688,7 +698,6 @@ Stock</string>
                             <constraint firstItem="ht7-8i-y2A" firstAttribute="trailing" secondItem="2mZ-oE-Upn" secondAttribute="trailing" constant="20" id="qbu-51-uIN"/>
                             <constraint firstItem="ht7-8i-y2A" firstAttribute="trailing" secondItem="2mZ-oE-Upn" secondAttribute="trailing" constant="20" id="qbu-51-uIN"/>
                             <constraint firstItem="ht7-8i-y2A" firstAttribute="trailing" secondItem="d3M-dW-oMp" secondAttribute="trailing" constant="10" id="tke-WU-3R1"/>
                             <constraint firstItem="ht7-8i-y2A" firstAttribute="trailing" secondItem="d3M-dW-oMp" secondAttribute="trailing" constant="10" id="tke-WU-3R1"/>
                         </constraints>
                         </constraints>
-                        <viewLayoutGuide key="safeArea" id="ht7-8i-y2A"/>
                     </view>
                     </view>
                     <navigationItem key="navigationItem" title="General Notes:" id="aPC-9j-6cM" userLabel="General Notes">
                     <navigationItem key="navigationItem" title="General Notes:" id="aPC-9j-6cM" userLabel="General Notes">
                         <barButtonItem key="rightBarButtonItem" title="Close" id="GWa-7G-Qo3">
                         <barButtonItem key="rightBarButtonItem" title="Close" id="GWa-7G-Qo3">
@@ -779,7 +788,7 @@ Stock</string>
                                     <outlet property="delegate" destination="YGz-ds-7ex" id="LlE-8m-cvh"/>
                                     <outlet property="delegate" destination="YGz-ds-7ex" id="LlE-8m-cvh"/>
                                 </connections>
                                 </connections>
                             </textField>
                             </textField>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rgr-8g-0ab" customClass="DefaultImageButton">
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rgr-8g-0ab" customClass="DefaultImageButton">
                                 <rect key="frame" x="348" y="270" width="102" height="30"/>
                                 <rect key="frame" x="348" y="270" width="102" height="30"/>
                                 <constraints>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="30" id="4Ce-lO-jQx"/>
                                     <constraint firstAttribute="height" constant="30" id="4Ce-lO-jQx"/>
@@ -800,6 +809,7 @@ Stock</string>
                                 </connections>
                                 </connections>
                             </button>
                             </button>
                         </subviews>
                         </subviews>
+                        <viewLayoutGuide key="safeArea" id="9Jp-BB-LGM"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <constraints>
                         <constraints>
                             <constraint firstItem="Tq7-Xz-zO7" firstAttribute="centerY" secondItem="bWO-kn-4oR" secondAttribute="centerY" id="0eR-Z2-4ra"/>
                             <constraint firstItem="Tq7-Xz-zO7" firstAttribute="centerY" secondItem="bWO-kn-4oR" secondAttribute="centerY" id="0eR-Z2-4ra"/>
@@ -818,7 +828,6 @@ Stock</string>
                             <constraint firstItem="bWO-kn-4oR" firstAttribute="leading" secondItem="9Jp-BB-LGM" secondAttribute="leading" constant="60" id="muu-4q-hyz"/>
                             <constraint firstItem="bWO-kn-4oR" firstAttribute="leading" secondItem="9Jp-BB-LGM" secondAttribute="leading" constant="60" id="muu-4q-hyz"/>
                             <constraint firstItem="9Jp-BB-LGM" firstAttribute="trailing" secondItem="Tq7-Xz-zO7" secondAttribute="trailing" constant="60" id="yJK-Eo-8ES"/>
                             <constraint firstItem="9Jp-BB-LGM" firstAttribute="trailing" secondItem="Tq7-Xz-zO7" secondAttribute="trailing" constant="60" id="yJK-Eo-8ES"/>
                         </constraints>
                         </constraints>
-                        <viewLayoutGuide key="safeArea" id="9Jp-BB-LGM"/>
                     </view>
                     </view>
                     <navigationItem key="navigationItem" title="Model Price" id="GIs-em-aBZ" userLabel="Edit Model Price">
                     <navigationItem key="navigationItem" title="Model Price" id="GIs-em-aBZ" userLabel="Edit Model Price">
                         <barButtonItem key="rightBarButtonItem" title="Close" id="DlO-hY-Jvw">
                         <barButtonItem key="rightBarButtonItem" title="Close" id="DlO-hY-Jvw">
@@ -849,8 +858,8 @@ Stock</string>
                     <view key="view" contentMode="scaleToFill" id="MLp-rr-7PZ">
                     <view key="view" contentMode="scaleToFill" id="MLp-rr-7PZ">
                         <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
                         <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
                         <viewLayoutGuide key="safeArea" id="Rxk-rC-Cfr"/>
                         <viewLayoutGuide key="safeArea" id="Rxk-rC-Cfr"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                     </view>
                     </view>
                 </viewController>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="LqY-Ba-cib" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="LqY-Ba-cib" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
@@ -871,7 +880,7 @@ Stock</string>
                                 <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                 <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
                                 <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
                             </textView>
                             </textView>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="y3C-hl-3ZL" customClass="DefaultImageButton">
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="y3C-hl-3ZL" customClass="DefaultImageButton">
                                 <rect key="frame" x="348" y="270" width="102" height="30"/>
                                 <rect key="frame" x="348" y="270" width="102" height="30"/>
                                 <constraints>
                                 <constraints>
                                     <constraint firstAttribute="width" constant="102" id="gek-rF-znL"/>
                                     <constraint firstAttribute="width" constant="102" id="gek-rF-znL"/>
@@ -892,6 +901,7 @@ Stock</string>
                                 </connections>
                                 </connections>
                             </button>
                             </button>
                         </subviews>
                         </subviews>
+                        <viewLayoutGuide key="safeArea" id="XuB-is-1lr"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <constraints>
                         <constraints>
                             <constraint firstItem="XuB-is-1lr" firstAttribute="trailing" secondItem="CSd-vz-o8d" secondAttribute="trailing" constant="10" id="SZU-ZH-uTS"/>
                             <constraint firstItem="XuB-is-1lr" firstAttribute="trailing" secondItem="CSd-vz-o8d" secondAttribute="trailing" constant="10" id="SZU-ZH-uTS"/>
@@ -901,7 +911,6 @@ Stock</string>
                             <constraint firstItem="CSd-vz-o8d" firstAttribute="top" secondItem="cMB-7O-YB4" secondAttribute="top" constant="10" id="jpy-yl-9SL"/>
                             <constraint firstItem="CSd-vz-o8d" firstAttribute="top" secondItem="cMB-7O-YB4" secondAttribute="top" constant="10" id="jpy-yl-9SL"/>
                             <constraint firstAttribute="bottom" secondItem="y3C-hl-3ZL" secondAttribute="bottom" constant="20" id="tsb-om-23i"/>
                             <constraint firstAttribute="bottom" secondItem="y3C-hl-3ZL" secondAttribute="bottom" constant="20" id="tsb-om-23i"/>
                         </constraints>
                         </constraints>
-                        <viewLayoutGuide key="safeArea" id="XuB-is-1lr"/>
                     </view>
                     </view>
                     <navigationItem key="navigationItem" title="Item Notes" id="2im-Mr-UtR" userLabel="Item Notes">
                     <navigationItem key="navigationItem" title="Item Notes" id="2im-Mr-UtR" userLabel="Item Notes">
                         <barButtonItem key="rightBarButtonItem" title="Close" id="Sda-hD-o7j">
                         <barButtonItem key="rightBarButtonItem" title="Close" id="Sda-hD-o7j">
@@ -928,5 +937,8 @@ Stock</string>
         <image name="btn_print_order" width="30" height="30"/>
         <image name="btn_print_order" width="30" height="30"/>
         <image name="btn_save" width="102" height="30"/>
         <image name="btn_save" width="102" height="30"/>
         <image name="continue" width="130" height="30"/>
         <image name="continue" width="130" height="30"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
     </resources>
     </resources>
 </document>
 </document>

+ 297 - 26
RedAnt ERP Mobile/common/ERP_Mobile_Order.storyboard

@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <dependencies>
     <dependencies>
         <deployment identifier="iOS"/>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19519"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <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"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
     <scenes>
     <scenes>
@@ -17,11 +18,11 @@
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                         <subviews>
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="oO0-Aa-nhV">
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="oO0-Aa-nhV">
-                                <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
+                                <rect key="frame" x="0.0" y="20" width="768" height="1004"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <prototypes>
                                 <prototypes>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailInfoCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailInfoCell" id="j6Z-EZ-h51" customClass="OrderDetailInfoCell">
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailInfoCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailInfoCell" id="j6Z-EZ-h51" customClass="OrderDetailInfoCell">
-                                        <rect key="frame" x="0.0" y="28" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="44.5" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="j6Z-EZ-h51" id="XdH-yQ-RbM">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="j6Z-EZ-h51" id="XdH-yQ-RbM">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
@@ -39,7 +40,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailModelCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailModelCell" rowHeight="190" id="1Fs-vK-Pg3" customClass="OrderDetailModelCell">
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailModelCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailModelCell" rowHeight="190" id="1Fs-vK-Pg3" customClass="OrderDetailModelCell">
-                                        <rect key="frame" x="0.0" y="72" width="768" height="190"/>
+                                        <rect key="frame" x="0.0" y="88.5" width="768" height="190"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="1Fs-vK-Pg3" id="dka-AS-2v7">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="1Fs-vK-Pg3" id="dka-AS-2v7">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="190"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="190"/>
@@ -130,7 +131,7 @@
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                     <nil key="highlightedColor"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 </label>
-                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jem-ju-7ya">
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jem-ju-7ya">
                                                     <rect key="frame" x="123" y="99.5" width="522" height="30"/>
                                                     <rect key="frame" x="123" y="99.5" width="522" height="30"/>
                                                     <constraints>
                                                     <constraints>
                                                         <constraint firstAttribute="height" constant="30" id="G0t-9u-U3i"/>
                                                         <constraint firstAttribute="height" constant="30" id="G0t-9u-U3i"/>
@@ -182,7 +183,7 @@
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                     <nil key="highlightedColor"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 </label>
-                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tCx-RZ-0dk">
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tCx-RZ-0dk">
                                                     <rect key="frame" x="653" y="99.5" width="100" height="30"/>
                                                     <rect key="frame" x="653" y="99.5" width="100" height="30"/>
                                                     <constraints>
                                                     <constraints>
                                                         <constraint firstAttribute="height" constant="30" id="SJt-TD-mdf"/>
                                                         <constraint firstAttribute="height" constant="30" id="SJt-TD-mdf"/>
@@ -246,14 +247,14 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailPriceCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailPriceCell" id="7bD-vr-aXj" customClass="OrderDetailPriceCell">
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailPriceCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailPriceCell" id="7bD-vr-aXj" customClass="OrderDetailPriceCell">
-                                        <rect key="frame" x="0.0" y="262" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="278.5" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7bD-vr-aXj" id="3fR-xo-Duc">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7bD-vr-aXj" id="3fR-xo-Duc">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                             <subviews>
                                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="$123456789.00" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DMR-2D-GN0" userLabel="price">
                                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="$123456789.00" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DMR-2D-GN0" userLabel="price">
-                                                    <rect key="frame" x="535" y="11.5" width="191" height="21"/>
+                                                    <rect key="frame" x="534" y="11.5" width="191" height="21"/>
                                                     <constraints>
                                                     <constraints>
                                                         <constraint firstAttribute="width" constant="191" id="a1U-12-0c9"/>
                                                         <constraint firstAttribute="width" constant="191" id="a1U-12-0c9"/>
                                                         <constraint firstAttribute="height" constant="21" id="yuv-Nz-4GL"/>
                                                         <constraint firstAttribute="height" constant="21" id="yuv-Nz-4GL"/>
@@ -263,7 +264,7 @@
                                                     <nil key="highlightedColor"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 </label>
                                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="name" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="k0G-s0-PuV" userLabel="charge type">
                                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="name" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="k0G-s0-PuV" userLabel="charge type">
-                                                    <rect key="frame" x="282" y="11.5" width="246" height="21"/>
+                                                    <rect key="frame" x="281" y="11.5" width="246" height="21"/>
                                                     <constraints>
                                                     <constraints>
                                                         <constraint firstAttribute="height" constant="21" id="6Wc-CD-Lj5"/>
                                                         <constraint firstAttribute="height" constant="21" id="6Wc-CD-Lj5"/>
                                                         <constraint firstAttribute="width" constant="246" id="o7a-OM-TFC"/>
                                                         <constraint firstAttribute="width" constant="246" id="o7a-OM-TFC"/>
@@ -286,7 +287,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailHtmlCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailHtmlCell" rowHeight="44" id="7Vz-DF-k8E" customClass="OrderDetailHtmlCell">
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailHtmlCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailHtmlCell" rowHeight="44" id="7Vz-DF-k8E" customClass="OrderDetailHtmlCell">
-                                        <rect key="frame" x="0.0" y="306" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="322.5" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7Vz-DF-k8E" id="jPD-gn-rpJ">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7Vz-DF-k8E" id="jPD-gn-rpJ">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
@@ -313,7 +314,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailSignatureCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailSignatureCell" rowHeight="148" id="a2N-8P-mNM" customClass="OrderDetailSignatureCell">
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailSignatureCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailSignatureCell" rowHeight="148" id="a2N-8P-mNM" customClass="OrderDetailSignatureCell">
-                                        <rect key="frame" x="0.0" y="350" width="768" height="148"/>
+                                        <rect key="frame" x="0.0" y="366.5" width="768" height="148"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="a2N-8P-mNM" id="Puc-DI-9DR">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="a2N-8P-mNM" id="Puc-DI-9DR">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="148"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="148"/>
@@ -346,7 +347,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="OrderDetailPickInfoCell" rowHeight="218" id="oDs-9g-3Lq" customClass="OrderDetailPickInfoCell">
                                     <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="OrderDetailPickInfoCell" rowHeight="218" id="oDs-9g-3Lq" customClass="OrderDetailPickInfoCell">
-                                        <rect key="frame" x="0.0" y="498" width="768" height="218"/>
+                                        <rect key="frame" x="0.0" y="514.5" width="768" height="218"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="oDs-9g-3Lq" translatesAutoresizingMaskIntoConstraints="NO" id="0gN-bu-MIM">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="oDs-9g-3Lq" translatesAutoresizingMaskIntoConstraints="NO" id="0gN-bu-MIM">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="218"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="218"/>
@@ -476,12 +477,13 @@
                                 <color key="color" red="0.59999999999999998" green="0.40000000000000002" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <color key="color" red="0.59999999999999998" green="0.40000000000000002" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             </activityIndicatorView>
                             </activityIndicatorView>
                             <label hidden="YES" opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Cannot get data from server.
Tap to try again." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9SM-7Q-zs1">
                             <label hidden="YES" opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Cannot get data from server.
Tap to try again." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9SM-7Q-zs1">
-                                <rect key="frame" x="262" y="489.5" width="244" height="45.5"/>
+                                <rect key="frame" x="263.5" y="489.5" width="241.5" height="45.5"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="19"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="19"/>
                                 <color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             </label>
                         </subviews>
                         </subviews>
+                        <viewLayoutGuide key="safeArea" id="6Fa-am-6rF"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <constraints>
                         <constraints>
                             <constraint firstItem="oO0-Aa-nhV" firstAttribute="trailing" secondItem="6Fa-am-6rF" secondAttribute="trailing" id="LsP-Dq-EtH"/>
                             <constraint firstItem="oO0-Aa-nhV" firstAttribute="trailing" secondItem="6Fa-am-6rF" secondAttribute="trailing" id="LsP-Dq-EtH"/>
@@ -493,7 +495,6 @@
                             <constraint firstItem="9SM-7Q-zs1" firstAttribute="centerX" secondItem="6Fa-am-6rF" secondAttribute="centerX" id="rAY-gU-5ca"/>
                             <constraint firstItem="9SM-7Q-zs1" firstAttribute="centerX" secondItem="6Fa-am-6rF" secondAttribute="centerX" id="rAY-gU-5ca"/>
                             <constraint firstItem="oO0-Aa-nhV" firstAttribute="leading" secondItem="6Fa-am-6rF" secondAttribute="leading" id="y0r-Ef-8GY"/>
                             <constraint firstItem="oO0-Aa-nhV" firstAttribute="leading" secondItem="6Fa-am-6rF" secondAttribute="leading" id="y0r-Ef-8GY"/>
                         </constraints>
                         </constraints>
-                        <viewLayoutGuide key="safeArea" id="6Fa-am-6rF"/>
                     </view>
                     </view>
                     <navigationItem key="navigationItem" title="Title" id="lT3-8p-5dM"/>
                     <navigationItem key="navigationItem" title="Title" id="lT3-8p-5dM"/>
                     <connections>
                     <connections>
@@ -515,7 +516,7 @@
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                         <subviews>
                             <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MSe-Rl-r7w">
                             <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MSe-Rl-r7w">
-                                <rect key="frame" x="0.0" y="0.0" width="768" height="50"/>
+                                <rect key="frame" x="0.0" y="20" width="768" height="50"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <items>
                                 <items>
                                     <barButtonItem title="Select Order Status" id="Wkf-BC-Ol7">
                                     <barButtonItem title="Select Order Status" id="Wkf-BC-Ol7">
@@ -553,11 +554,11 @@
                                 <color key="barTintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <color key="barTintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             </toolbar>
                             </toolbar>
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="E4J-T4-LdO">
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="E4J-T4-LdO">
-                                <rect key="frame" x="0.0" y="101.5" width="768" height="922.5"/>
+                                <rect key="frame" x="0.0" y="121.5" width="768" height="902.5"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <prototypes>
                                 <prototypes>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderListTableViewCell" rowHeight="66" id="WVB-xn-Efd" customClass="OrderListTableViewCell">
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderListTableViewCell" rowHeight="66" id="WVB-xn-Efd" customClass="OrderListTableViewCell">
-                                        <rect key="frame" x="0.0" y="28" width="768" height="66"/>
+                                        <rect key="frame" x="0.0" y="44.5" width="768" height="66"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="WVB-xn-Efd" translatesAutoresizingMaskIntoConstraints="NO" id="LkX-13-tk6">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="WVB-xn-Efd" translatesAutoresizingMaskIntoConstraints="NO" id="LkX-13-tk6">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="66"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="66"/>
@@ -699,13 +700,13 @@
                                 <color key="color" red="0.59999999999999998" green="0.40000000000000002" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <color key="color" red="0.59999999999999998" green="0.40000000000000002" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             </activityIndicatorView>
                             </activityIndicatorView>
                             <label hidden="YES" opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Cannot get data from server.
Tap to try again." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="026-gJ-EDh">
                             <label hidden="YES" opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Cannot get data from server.
Tap to try again." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="026-gJ-EDh">
-                                <rect key="frame" x="262" y="489.5" width="244" height="45.5"/>
+                                <rect key="frame" x="263.5" y="489.5" width="241.5" height="45.5"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="19"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="19"/>
                                 <color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             </label>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Status Selected:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aBZ-AJ-0Qn">
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Status Selected:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aBZ-AJ-0Qn">
-                                <rect key="frame" x="20" y="50" width="131" height="21"/>
+                                <rect key="frame" x="20" y="70" width="131" height="21"/>
                                 <constraints>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="21" id="95F-aQ-qFQ"/>
                                     <constraint firstAttribute="height" constant="21" id="95F-aQ-qFQ"/>
                                     <constraint firstAttribute="width" constant="131" id="Izz-RG-sz6"/>
                                     <constraint firstAttribute="width" constant="131" id="Izz-RG-sz6"/>
@@ -715,7 +716,7 @@
                                 <nil key="highlightedColor"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             </label>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xKm-bM-vOg">
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xKm-bM-vOg">
-                                <rect key="frame" x="153" y="49.5" width="595" height="21"/>
+                                <rect key="frame" x="153" y="69.5" width="595" height="21"/>
                                 <constraints>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="21" id="Bp8-eN-GHB"/>
                                     <constraint firstAttribute="height" constant="21" id="Bp8-eN-GHB"/>
                                 </constraints>
                                 </constraints>
@@ -724,7 +725,7 @@
                                 <nil key="highlightedColor"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             </label>
                             <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="ohH-1K-QsE">
                             <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="ohH-1K-QsE">
-                                <rect key="frame" x="0.0" y="70.5" width="768" height="32"/>
+                                <rect key="frame" x="0.0" y="90.5" width="768" height="32"/>
                                 <segments>
                                 <segments>
                                     <segment title="Store Order"/>
                                     <segment title="Store Order"/>
                                     <segment title="Purchase Order to NPD"/>
                                     <segment title="Purchase Order to NPD"/>
@@ -734,6 +735,7 @@
                                 </connections>
                                 </connections>
                             </segmentedControl>
                             </segmentedControl>
                         </subviews>
                         </subviews>
+                        <viewLayoutGuide key="safeArea" id="EDz-4H-49A"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <constraints>
                         <constraints>
                             <constraint firstItem="026-gJ-EDh" firstAttribute="centerY" secondItem="Q2c-bd-Qtd" secondAttribute="centerY" id="8RW-sL-6XS"/>
                             <constraint firstItem="026-gJ-EDh" firstAttribute="centerY" secondItem="Q2c-bd-Qtd" secondAttribute="centerY" id="8RW-sL-6XS"/>
@@ -757,7 +759,6 @@
                             <constraint firstItem="EDz-4H-49A" firstAttribute="bottom" secondItem="E4J-T4-LdO" secondAttribute="bottom" id="v2f-fD-J6u"/>
                             <constraint firstItem="EDz-4H-49A" firstAttribute="bottom" secondItem="E4J-T4-LdO" secondAttribute="bottom" id="v2f-fD-J6u"/>
                         </constraints>
                         </constraints>
                         <inset key="insetFor6xAndEarlier" minX="0.0" minY="20" maxX="0.0" maxY="-20"/>
                         <inset key="insetFor6xAndEarlier" minX="0.0" minY="20" maxX="0.0" maxY="-20"/>
-                        <viewLayoutGuide key="safeArea" id="EDz-4H-49A"/>
                     </view>
                     </view>
                     <navigationItem key="navigationItem" title="Title" id="ulo-pz-ECv">
                     <navigationItem key="navigationItem" title="Title" id="ulo-pz-ECv">
                         <barButtonItem key="backBarButtonItem" title="Cancel" id="NJc-pm-EAo">
                         <barButtonItem key="backBarButtonItem" title="Cancel" id="NJc-pm-EAo">
@@ -793,8 +794,8 @@
                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                         <subviews>
                         <subviews>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Bfq-vH-yU5" customClass="CommonEditorTableContainerView">
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Bfq-vH-yU5" customClass="CommonEditorTableContainerView">
-                                <rect key="frame" x="0.0" y="0.0" width="768" height="980"/>
-                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                                <rect key="frame" x="0.0" y="20" width="768" height="960"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                             </view>
                             </view>
                             <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MGc-zD-JUk">
                             <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MGc-zD-JUk">
                                 <rect key="frame" x="0.0" y="980" width="768" height="44"/>
                                 <rect key="frame" x="0.0" y="980" width="768" height="44"/>
@@ -816,6 +817,7 @@
                                 </items>
                                 </items>
                             </toolbar>
                             </toolbar>
                         </subviews>
                         </subviews>
+                        <viewLayoutGuide key="safeArea" id="eMi-uQ-tu7"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <constraints>
                         <constraints>
                             <constraint firstItem="MGc-zD-JUk" firstAttribute="trailing" secondItem="eMi-uQ-tu7" secondAttribute="trailing" id="Ev2-5d-LFz"/>
                             <constraint firstItem="MGc-zD-JUk" firstAttribute="trailing" secondItem="eMi-uQ-tu7" secondAttribute="trailing" id="Ev2-5d-LFz"/>
@@ -826,7 +828,6 @@
                             <constraint firstItem="eMi-uQ-tu7" firstAttribute="bottom" secondItem="MGc-zD-JUk" secondAttribute="bottom" id="MwC-Zu-kMD"/>
                             <constraint firstItem="eMi-uQ-tu7" firstAttribute="bottom" secondItem="MGc-zD-JUk" secondAttribute="bottom" id="MwC-Zu-kMD"/>
                             <constraint firstItem="MGc-zD-JUk" firstAttribute="top" secondItem="Bfq-vH-yU5" secondAttribute="bottom" id="v2u-KN-quv"/>
                             <constraint firstItem="MGc-zD-JUk" firstAttribute="top" secondItem="Bfq-vH-yU5" secondAttribute="bottom" id="v2u-KN-quv"/>
                         </constraints>
                         </constraints>
-                        <viewLayoutGuide key="safeArea" id="eMi-uQ-tu7"/>
                     </view>
                     </view>
                     <navigationItem key="navigationItem" title="Title" id="tSY-7S-OY9">
                     <navigationItem key="navigationItem" title="Title" id="tSY-7S-OY9">
                         <barButtonItem key="rightBarButtonItem" title="Save" id="e50-jZ-PXx"/>
                         <barButtonItem key="rightBarButtonItem" title="Save" id="e50-jZ-PXx"/>
@@ -842,9 +843,279 @@
             </objects>
             </objects>
             <point key="canvasLocation" x="2081.25" y="-813.28125"/>
             <point key="canvasLocation" x="2081.25" y="-813.28125"/>
         </scene>
         </scene>
+        <!--ScanOrderListViewController-->
+        <scene sceneID="xWX-Ld-Lkx">
+            <objects>
+                <viewController storyboardIdentifier="ScanOrderListViewController" title="Order History" useStoryboardIdentifierAsRestorationIdentifier="YES" id="LNa-Wq-bWf" userLabel="ScanOrderListViewController" customClass="ScanOrderListViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="G1e-qe-u3C">
+                        <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oZx-AD-gXG">
+                                <rect key="frame" x="0.0" y="20" width="768" height="50"/>
+                                <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <items>
+                                    <barButtonItem style="plain" systemItem="flexibleSpace" id="w4w-O7-Tmb"/>
+                                    <barButtonItem title="New Order" id="rgW-na-gao">
+                                        <connections>
+                                            <action selector="onNewOrderClicked:" destination="LNa-Wq-bWf" id="0pQ-8a-WRM"/>
+                                        </connections>
+                                    </barButtonItem>
+                                </items>
+                                <color key="barTintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            </toolbar>
+                            <tableView hidden="YES" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="xxx-Rl-Yvi">
+                                <rect key="frame" x="0.0" y="101" width="768" height="923"/>
+                                <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <prototypes>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="UploadCell" rowHeight="100" id="Bww-5l-BiC" customClass="UploadCell">
+                                        <rect key="frame" x="0.0" y="44.5" width="768" height="100"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Bww-5l-BiC" id="1P1-CU-Qyh">
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="100"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="QS8884456999666666" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cwY-qp-nb8">
+                                                    <rect key="frame" x="10" y="5" width="748" height="20"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="20" id="VDg-gC-3k1"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <progressView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" progress="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="vHH-Yd-1OW">
+                                                    <rect key="frame" x="10" y="35" width="748" height="5"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="5" id="2HV-In-7mn"/>
+                                                    </constraints>
+                                                </progressView>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="99.9%" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bfp-K3-xcV">
+                                                    <rect key="frame" x="708" y="45" width="50" height="21"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="50" id="O6Y-Kw-Ti2"/>
+                                                        <constraint firstAttribute="height" constant="21" id="Xid-WA-kwm"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <color key="textColor" white="0.33333333329999998" alpha="1" colorSpace="calibratedWhite"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Waiting" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="quC-0r-nse">
+                                                    <rect key="frame" x="10" y="45" width="688" height="21"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Error:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h9l-Ql-1of">
+                                                    <rect key="frame" x="10" y="71" width="748" height="17"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="h9l-Ql-1of" firstAttribute="leading" secondItem="quC-0r-nse" secondAttribute="leading" id="2Fe-k9-r5h"/>
+                                                <constraint firstItem="bfp-K3-xcV" firstAttribute="top" secondItem="vHH-Yd-1OW" secondAttribute="bottom" constant="5" id="6Ep-wu-EPe"/>
+                                                <constraint firstAttribute="trailing" secondItem="vHH-Yd-1OW" secondAttribute="trailing" constant="10" id="EJy-Nx-H9R"/>
+                                                <constraint firstItem="quC-0r-nse" firstAttribute="centerY" secondItem="bfp-K3-xcV" secondAttribute="centerY" id="F7E-1N-iYe"/>
+                                                <constraint firstItem="cwY-qp-nb8" firstAttribute="top" secondItem="1P1-CU-Qyh" secondAttribute="top" constant="5" id="Gnm-i0-neY"/>
+                                                <constraint firstItem="cwY-qp-nb8" firstAttribute="leading" secondItem="1P1-CU-Qyh" secondAttribute="leading" constant="10" id="OKb-wE-YVa"/>
+                                                <constraint firstAttribute="trailing" secondItem="cwY-qp-nb8" secondAttribute="trailing" constant="10" id="QVf-qu-JSw"/>
+                                                <constraint firstItem="quC-0r-nse" firstAttribute="height" secondItem="bfp-K3-xcV" secondAttribute="height" id="WR8-dI-iA6"/>
+                                                <constraint firstItem="vHH-Yd-1OW" firstAttribute="leading" secondItem="1P1-CU-Qyh" secondAttribute="leading" constant="10" id="eHq-iW-LrD"/>
+                                                <constraint firstItem="h9l-Ql-1of" firstAttribute="top" secondItem="quC-0r-nse" secondAttribute="bottom" constant="5" id="eZP-Ni-jTf"/>
+                                                <constraint firstItem="quC-0r-nse" firstAttribute="trailing" secondItem="bfp-K3-xcV" secondAttribute="leading" constant="-10" id="heI-qX-ciJ"/>
+                                                <constraint firstItem="h9l-Ql-1of" firstAttribute="trailing" secondItem="bfp-K3-xcV" secondAttribute="trailing" id="okg-ml-kgE"/>
+                                                <constraint firstItem="vHH-Yd-1OW" firstAttribute="top" secondItem="cwY-qp-nb8" secondAttribute="bottom" constant="10" id="oxx-A4-rO5"/>
+                                                <constraint firstItem="quC-0r-nse" firstAttribute="leading" secondItem="vHH-Yd-1OW" secondAttribute="leading" id="tAc-5x-cYX"/>
+                                                <constraint firstItem="bfp-K3-xcV" firstAttribute="trailing" secondItem="vHH-Yd-1OW" secondAttribute="trailing" id="xer-hq-qpS"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <connections>
+                                            <outlet property="errorLabel" destination="h9l-Ql-1of" id="5Gd-s5-LUg"/>
+                                            <outlet property="nameLabel" destination="cwY-qp-nb8" id="Q9W-Yh-r8E"/>
+                                            <outlet property="progressIndicator" destination="bfp-K3-xcV" id="UYN-xe-hfT"/>
+                                            <outlet property="progressView" destination="vHH-Yd-1OW" id="daL-GM-jPD"/>
+                                            <outlet property="stateLabel" destination="quC-0r-nse" id="g5S-RJ-za6"/>
+                                        </connections>
+                                    </tableViewCell>
+                                </prototypes>
+                                <connections>
+                                    <outlet property="dataSource" destination="LNa-Wq-bWf" id="f6n-HG-cab"/>
+                                    <outlet property="delegate" destination="LNa-Wq-bWf" id="6CH-jc-j9I"/>
+                                </connections>
+                            </tableView>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="okE-6e-1XS">
+                                <rect key="frame" x="0.0" y="101" width="768" height="923"/>
+                                <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <prototypes>
+                                    <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderListTableViewCell" rowHeight="66" id="X1d-0l-bjq" customClass="OrderListTableViewCell">
+                                        <rect key="frame" x="0.0" y="44.5" width="768" height="66"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="X1d-0l-bjq" id="3SE-8W-1Ko">
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="66"/>
+                                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                            <subviews>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="123456789.00" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IcS-uQ-aJ9" userLabel="price">
+                                                    <rect key="frame" x="492" y="37" width="102" height="21"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="21" id="RzM-6p-uL1"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="02/02/2015 10:10:10" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yU1-tY-7yp" userLabel="date">
+                                                    <rect key="frame" x="604" y="37" width="149" height="21"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="21" id="GM9-00-Tz4"/>
+                                                        <constraint firstAttribute="width" constant="149" id="mee-Mg-lf4"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="commit" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rcx-Xh-jKX" userLabel="status">
+                                                    <rect key="frame" x="15" y="12" width="135" height="42"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="135" id="SDS-Tu-aMW"/>
+                                                        <constraint firstAttribute="height" constant="21" id="nbO-4i-9R1"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="contact" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kx8-Rf-daE">
+                                                    <rect key="frame" x="310" y="8" width="172" height="50"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="999999" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="i3l-Nh-iIk">
+                                                    <rect key="frame" x="492" y="5" width="102" height="18"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="18" id="cZ2-9h-eCQ"/>
+                                                        <constraint firstAttribute="width" constant="102" id="fae-eM-tUr"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="create by" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Vxx-Iu-KZK" userLabel="creator">
+                                                    <rect key="frame" x="165" y="22.5" width="125" height="21"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="21" id="EKB-S5-J7I"/>
+                                                        <constraint firstAttribute="width" constant="125" id="qpa-vv-pFk"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="i3l-Nh-iIk" firstAttribute="centerX" secondItem="IcS-uQ-aJ9" secondAttribute="centerX" id="8i2-Pv-FQ5"/>
+                                                <constraint firstItem="rcx-Xh-jKX" firstAttribute="top" secondItem="3SE-8W-1Ko" secondAttribute="top" constant="12" id="CLm-cj-UVD"/>
+                                                <constraint firstAttribute="bottom" secondItem="kx8-Rf-daE" secondAttribute="bottom" constant="8" id="Gnv-1O-Nht"/>
+                                                <constraint firstAttribute="trailing" secondItem="yU1-tY-7yp" secondAttribute="trailing" constant="15" id="JNy-T4-MmL"/>
+                                                <constraint firstItem="yU1-tY-7yp" firstAttribute="baseline" secondItem="kx8-Rf-daE" secondAttribute="baseline" id="Jhh-ZS-S70"/>
+                                                <constraint firstItem="yU1-tY-7yp" firstAttribute="baseline" secondItem="IcS-uQ-aJ9" secondAttribute="baseline" id="ODP-ki-bSc"/>
+                                                <constraint firstItem="yU1-tY-7yp" firstAttribute="leading" secondItem="IcS-uQ-aJ9" secondAttribute="trailing" constant="10" id="UEJ-TZ-Lgh"/>
+                                                <constraint firstItem="kx8-Rf-daE" firstAttribute="top" secondItem="3SE-8W-1Ko" secondAttribute="top" constant="8" id="X7a-7b-5QD"/>
+                                                <constraint firstItem="IcS-uQ-aJ9" firstAttribute="leading" secondItem="kx8-Rf-daE" secondAttribute="trailing" constant="10" id="Y7k-eE-EOs"/>
+                                                <constraint firstItem="Vxx-Iu-KZK" firstAttribute="leading" secondItem="rcx-Xh-jKX" secondAttribute="trailing" constant="15" id="iwC-uc-6WR"/>
+                                                <constraint firstItem="Vxx-Iu-KZK" firstAttribute="centerY" secondItem="3SE-8W-1Ko" secondAttribute="centerY" id="mTN-6g-b6s"/>
+                                                <constraint firstItem="rcx-Xh-jKX" firstAttribute="leading" secondItem="3SE-8W-1Ko" secondAttribute="leading" constant="15" id="mch-pS-yoS"/>
+                                                <constraint firstItem="i3l-Nh-iIk" firstAttribute="top" secondItem="3SE-8W-1Ko" secondAttribute="top" constant="5" id="teW-7J-YMR"/>
+                                                <constraint firstItem="rcx-Xh-jKX" firstAttribute="centerY" secondItem="3SE-8W-1Ko" secondAttribute="centerY" id="wci-7P-HC4"/>
+                                                <constraint firstItem="kx8-Rf-daE" firstAttribute="leading" secondItem="Vxx-Iu-KZK" secondAttribute="trailing" constant="20" id="yqw-FL-Mmc"/>
+                                                <constraint firstItem="i3l-Nh-iIk" firstAttribute="trailing" secondItem="IcS-uQ-aJ9" secondAttribute="trailing" id="zcQ-wk-pRR"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <constraints>
+                                            <constraint firstItem="3SE-8W-1Ko" firstAttribute="leading" secondItem="X1d-0l-bjq" secondAttribute="leading" id="Hyl-ka-SU2"/>
+                                            <constraint firstAttribute="bottom" secondItem="3SE-8W-1Ko" secondAttribute="bottom" id="IlJ-1G-Jtf"/>
+                                            <constraint firstItem="3SE-8W-1Ko" firstAttribute="top" secondItem="X1d-0l-bjq" secondAttribute="top" id="qWM-wP-06x"/>
+                                            <constraint firstAttribute="trailing" secondItem="3SE-8W-1Ko" secondAttribute="trailing" id="wzT-3t-LHs"/>
+                                        </constraints>
+                                        <connections>
+                                            <outlet property="label_contact" destination="kx8-Rf-daE" id="ZFR-qA-QcT"/>
+                                            <outlet property="label_creator" destination="Vxx-Iu-KZK" id="G3x-h2-J2u"/>
+                                            <outlet property="label_date" destination="yU1-tY-7yp" id="FEO-h2-bKz"/>
+                                            <outlet property="label_model" destination="i3l-Nh-iIk" id="23Z-T4-A7n"/>
+                                            <outlet property="label_status" destination="rcx-Xh-jKX" id="IRS-8R-MJ9"/>
+                                            <outlet property="labelprice" destination="IcS-uQ-aJ9" id="880-ep-gQo"/>
+                                        </connections>
+                                    </tableViewCell>
+                                </prototypes>
+                                <connections>
+                                    <outlet property="dataSource" destination="LNa-Wq-bWf" id="DbO-FB-nPK"/>
+                                    <outlet property="delegate" destination="LNa-Wq-bWf" id="nkG-SY-IGY"/>
+                                </connections>
+                            </tableView>
+                            <label hidden="YES" opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Cannot get data from server.
Tap to try again." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UGJ-LO-fre">
+                                <rect key="frame" x="263.5" y="489.5" width="241.5" height="45.5"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="19"/>
+                                <color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="ni4-Ku-8zb">
+                                <rect key="frame" x="0.0" y="70" width="768" height="32"/>
+                                <segments>
+                                    <segment title="Order List"/>
+                                    <segment title="Upload List"/>
+                                </segments>
+                                <connections>
+                                    <action selector="onSegmentChanged:" destination="LNa-Wq-bWf" eventType="valueChanged" id="4UH-f2-Obg"/>
+                                </connections>
+                            </segmentedControl>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="87c-G3-bR6"/>
+                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstItem="UGJ-LO-fre" firstAttribute="centerY" secondItem="G1e-qe-u3C" secondAttribute="centerY" id="1hN-9J-IhR"/>
+                            <constraint firstItem="ni4-Ku-8zb" firstAttribute="top" secondItem="oZx-AD-gXG" secondAttribute="bottom" id="9hi-XT-OCv"/>
+                            <constraint firstItem="ni4-Ku-8zb" firstAttribute="trailing" secondItem="87c-G3-bR6" secondAttribute="trailing" id="BCq-ef-bKa"/>
+                            <constraint firstItem="xxx-Rl-Yvi" firstAttribute="top" secondItem="ni4-Ku-8zb" secondAttribute="bottom" id="Br7-BM-zYP"/>
+                            <constraint firstItem="okE-6e-1XS" firstAttribute="trailing" secondItem="87c-G3-bR6" secondAttribute="trailing" id="CYw-dN-lKm"/>
+                            <constraint firstItem="UGJ-LO-fre" firstAttribute="centerX" secondItem="87c-G3-bR6" secondAttribute="centerX" id="DgH-Cz-nMY"/>
+                            <constraint firstItem="xxx-Rl-Yvi" firstAttribute="leading" secondItem="87c-G3-bR6" secondAttribute="leading" id="RtC-y6-XAw"/>
+                            <constraint firstItem="oZx-AD-gXG" firstAttribute="trailing" secondItem="87c-G3-bR6" secondAttribute="trailing" id="Vq5-YW-sv3"/>
+                            <constraint firstItem="87c-G3-bR6" firstAttribute="bottom" secondItem="okE-6e-1XS" secondAttribute="bottom" id="VrZ-UR-j9V"/>
+                            <constraint firstItem="oZx-AD-gXG" firstAttribute="leading" secondItem="87c-G3-bR6" secondAttribute="leading" id="XrA-am-r8P"/>
+                            <constraint firstItem="ni4-Ku-8zb" firstAttribute="leading" secondItem="87c-G3-bR6" secondAttribute="leading" id="cVY-4b-je4"/>
+                            <constraint firstItem="oZx-AD-gXG" firstAttribute="top" secondItem="87c-G3-bR6" secondAttribute="top" id="dZs-hK-Y2k"/>
+                            <constraint firstItem="xxx-Rl-Yvi" firstAttribute="trailing" secondItem="87c-G3-bR6" secondAttribute="trailing" id="fEq-Te-TL2"/>
+                            <constraint firstItem="okE-6e-1XS" firstAttribute="top" secondItem="ni4-Ku-8zb" secondAttribute="bottom" id="n8D-H8-YNt"/>
+                            <constraint firstItem="87c-G3-bR6" firstAttribute="bottom" secondItem="xxx-Rl-Yvi" secondAttribute="bottom" id="uZr-Eg-xf0"/>
+                            <constraint firstItem="okE-6e-1XS" firstAttribute="leading" secondItem="87c-G3-bR6" secondAttribute="leading" id="vFE-Su-x3Y"/>
+                        </constraints>
+                        <inset key="insetFor6xAndEarlier" minX="0.0" minY="20" maxX="0.0" maxY="-20"/>
+                    </view>
+                    <navigationItem key="navigationItem" title="Title" id="Ktb-M9-72h">
+                        <barButtonItem key="backBarButtonItem" title="Cancel" id="UYC-36-mSt">
+                            <connections>
+                                <action selector="onCancel:" destination="LNa-Wq-bWf" id="fXY-lI-HLk"/>
+                            </connections>
+                        </barButtonItem>
+                    </navigationItem>
+                    <connections>
+                        <outlet property="label_net_err" destination="UGJ-LO-fre" id="Wvu-QG-uBY"/>
+                        <outlet property="orderTypeSegmentControl" destination="ni4-Ku-8zb" id="AIo-vd-42F"/>
+                        <outlet property="tableTopConstraint" destination="n8D-H8-YNt" id="B2u-cz-hZ6"/>
+                        <outlet property="table_order" destination="okE-6e-1XS" id="ilq-MS-I4G"/>
+                        <outlet property="table_upload" destination="xxx-Rl-Yvi" id="YQk-5r-i5l"/>
+                        <outlet property="toolbarView" destination="oZx-AD-gXG" id="CeH-Jo-8Ko"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="HND-Qs-fSM" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1083.59375" y="-57.421874999999993"/>
+        </scene>
     </scenes>
     </scenes>
     <resources>
     <resources>
         <image name="Combinegray" width="40" height="40"/>
         <image name="Combinegray" width="40" height="40"/>
         <image name="neworder" width="40" height="40"/>
         <image name="neworder" width="40" height="40"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
     </resources>
     </resources>
 </document>
 </document>

+ 2 - 0
RedAnt ERP Mobile/common/Functions/MainViewController.h

@@ -14,6 +14,7 @@
 #import "LoginViewController.h"
 #import "LoginViewController.h"
 #import "RAViewController.h"
 #import "RAViewController.h"
 #import "OrderListViewController.h"
 #import "OrderListViewController.h"
+//#import "ScanOrderListViewController.h"
 #import "SearchViewController.h"
 #import "SearchViewController.h"
 #import "CustomerInfoViewController.h"
 #import "CustomerInfoViewController.h"
 #import "ItemSearchViewController.h"
 #import "ItemSearchViewController.h"
@@ -38,6 +39,7 @@
 @property  (strong,nonatomic)CategoryViewController* categoryViewController;
 @property  (strong,nonatomic)CategoryViewController* categoryViewController;
 @property  (strong,nonatomic)CartViewController* cartViewController;
 @property  (strong,nonatomic)CartViewController* cartViewController;
 @property  (strong,nonatomic)OrderListViewController* orderViewController;
 @property  (strong,nonatomic)OrderListViewController* orderViewController;
+//@property  (strong,nonatomic)ScanOrderListViewController* scanorderViewController;
 @property  (strong,nonatomic)ItemSearchViewController* itemSearchViewController;
 @property  (strong,nonatomic)ItemSearchViewController* itemSearchViewController;
 @property  (strong,nonatomic)WatchListViewController* watchListViewController;
 @property  (strong,nonatomic)WatchListViewController* watchListViewController;
 @property  (strong,nonatomic)PortfolioViewController* portfolioViewController;
 @property  (strong,nonatomic)PortfolioViewController* portfolioViewController;

+ 428 - 22
RedAnt ERP Mobile/common/Functions/MainViewController.m

@@ -31,7 +31,8 @@
 #import "JKLockController.h"
 #import "JKLockController.h"
 #import "RASingleton.h"
 #import "RASingleton.h"
 #import "NotificationNameCenter.h"
 #import "NotificationNameCenter.h"
-
+#import "OLOSettingViewController.h"
+#import "CustomerEditViewController.h"
 @interface MainViewController ()
 @interface MainViewController ()
 
 
 @end
 @end
@@ -324,7 +325,7 @@
     
     
     
     
 #ifdef RA_NOTIFICATION
 #ifdef RA_NOTIFICATION
-    [ActiveViewController Notify:@"DetailViewController,PDFListViewController,CartViewController,PortfolioViewController,WatchListViewController,OrderListViewController,ContactListViewController,CategoryViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+    [ActiveViewController Notify:@"DetailViewController,PDFListViewController,CartViewController,PortfolioViewController,WatchListViewController,OrderListViewController,OrderListViewController,ContactListViewController,CategoryViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
 #else
 #else
     [self reloadDocuments:true immediately:false];
     [self reloadDocuments:true immediately:false];
     [self reloadCart:true immediately:false];
     [self reloadCart:true immediately:false];
@@ -524,8 +525,30 @@
     self.homeViewController =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"HomeViewController"];
     self.homeViewController =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"HomeViewController"];
     self.categoryViewController =[ [UIStoryboard storyboardWithName:@"ERP_Mobile_Search" bundle:nil] instantiateViewControllerWithIdentifier:@"CategoryViewController"];
     self.categoryViewController =[ [UIStoryboard storyboardWithName:@"ERP_Mobile_Search" bundle:nil] instantiateViewControllerWithIdentifier:@"CategoryViewController"];
     self.cartViewController =[[UIStoryboard storyboardWithName:@"ERP_Mobile_Cart" bundle:nil] instantiateViewControllerWithIdentifier:@"CartViewController"];
     self.cartViewController =[[UIStoryboard storyboardWithName:@"ERP_Mobile_Cart" bundle:nil] instantiateViewControllerWithIdentifier:@"CartViewController"];
+    __block MainViewController *brself= self;
+    
+    
+#ifdef SCANNER_ORDER
+    
+    self.scanorderViewController =[[UIStoryboard storyboardWithName:@"ERP_Mobile_Order" bundle:nil] instantiateViewControllerWithIdentifier:@"ScanOrderListViewController"];
+#else
     self.orderViewController =[[UIStoryboard storyboardWithName:@"ERP_Mobile_Order" bundle:nil] instantiateViewControllerWithIdentifier:@"OrderListViewController"];
     self.orderViewController =[[UIStoryboard storyboardWithName:@"ERP_Mobile_Order" bundle:nil] instantiateViewControllerWithIdentifier:@"OrderListViewController"];
-
+    self.orderViewController.selectOrder=^(NSMutableDictionary* order_detail){
+        //main view 下打开order
+        
+        //Capturing strongly  warring;
+        __block MainViewController *brbrself= brself;
+        brself.cartViewController.onFinishLoad=^()
+        {
+            [brbrself.cartViewController placeOrder];
+            brbrself.cartViewController.onFinishLoad=nil;
+        };
+        [brself refreshContactDisplay];
+        [brself switchToCart:nil];
+        
+    };
+    
+#endif
     
     
     self.contactListViewController = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
     self.contactListViewController = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
     self.contactListViewController.contact_type = @"Sales_Order_Customer";
     self.contactListViewController.contact_type = @"Sales_Order_Customer";
@@ -534,7 +557,7 @@
     self.contactListViewController.assig_icon = true;
     self.contactListViewController.assig_icon = true;
     self.contactListViewController.reset_icon = false;
     self.contactListViewController.reset_icon = false;
     self.contactListViewController.ui_type = CONTACT_LIST;
     self.contactListViewController.ui_type = CONTACT_LIST;
-    __block MainViewController *brself= self;
+
     self.contactListViewController.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
     self.contactListViewController.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
         
         
         appDelegate.contact_id=[value valueForKey:@"customer_cid"];
         appDelegate.contact_id=[value valueForKey:@"customer_cid"];
@@ -553,20 +576,7 @@
     //Capturing strongly  warring;
     //Capturing strongly  warring;
     
     
     
     
-    self.orderViewController.selectOrder=^(NSMutableDictionary* order_detail){
-        //main view 下打开order
-        
-        //Capturing strongly  warring;
-        __block MainViewController *brbrself= brself;
-        brself.cartViewController.onFinishLoad=^()
-        {
-            [brbrself.cartViewController placeOrder];
-            brbrself.cartViewController.onFinishLoad=nil;
-        };
-        [brself refreshContactDisplay];
-        [brself switchToCart:nil];
-        
-    };
+    
     self.watchListViewController =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"WatchListViewController"];
     self.watchListViewController =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"WatchListViewController"];
     self.portfolioViewController = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Portfolio" bundle:nil] instantiateViewControllerWithIdentifier:@"PortfolioViewController" ];
     self.portfolioViewController = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Portfolio" bundle:nil] instantiateViewControllerWithIdentifier:@"PortfolioViewController" ];
     
     
@@ -1336,7 +1346,7 @@
     UIApplication * app = [UIApplication sharedApplication];
     UIApplication * app = [UIApplication sharedApplication];
     AppDelegate *appDelegate = (AppDelegate *)[app delegate];
     AppDelegate *appDelegate = (AppDelegate *)[app delegate];
  //   MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
  //   MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
-    if(appDelegate.bLogin==false)
+    if(appDelegate.bLogin==false&& !RASingleton.sharedInstance.enable_OfflineOrder)
     {
     {
         
         
         LoginViewController * loginvc =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"LoginViewController"];
         LoginViewController * loginvc =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"LoginViewController"];
@@ -1727,12 +1737,14 @@
 {
 {
     if([self.current_VC isKindOfClass:[OrderListViewController class]])
     if([self.current_VC isKindOfClass:[OrderListViewController class]])
         return;
         return;
-    
+//    if([self.current_VC isKindOfClass:[ScanOrderListViewController class]])
+//        return;
     
     
     UIApplication * app = [UIApplication sharedApplication];
     UIApplication * app = [UIApplication sharedApplication];
     AppDelegate *appDelegate = (AppDelegate *)[app delegate];
     AppDelegate *appDelegate = (AppDelegate *)[app delegate];
     if(appDelegate.bLogin==false)
     if(appDelegate.bLogin==false)
     {
     {
+        
         LoginViewController * loginvc =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"LoginViewController"];
         LoginViewController * loginvc =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"LoginViewController"];
         //        loginvc.delegate = self;
         //        loginvc.delegate = self;
         //    loginvc.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种
         //    loginvc.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种
@@ -1744,8 +1756,11 @@
             {
             {
                 [self checklogin:true];
                 [self checklogin:true];
                 
                 
-                
+#ifdef SCANNER_ORDER
+                [self flipFromViewController:self.current_VC toViewController:self.scanorderViewController withDirection:UIViewAnimationOptionTransitionCrossDissolve];
+#else
                 [self flipFromViewController:self.current_VC toViewController:self.orderViewController withDirection:UIViewAnimationOptionTransitionCrossDissolve];
                 [self flipFromViewController:self.current_VC toViewController:self.orderViewController withDirection:UIViewAnimationOptionTransitionCrossDissolve];
+#endif
             }
             }
             
             
             
             
@@ -1771,8 +1786,15 @@
         }];
         }];
     }
     }
     else
     else
+    {
+#ifdef SCANNER_ORDER
+                [self flipFromViewController:self.current_VC toViewController:self.scanorderViewController withDirection:UIViewAnimationOptionTransitionCrossDissolve];
+#else
         [self flipFromViewController:self.current_VC toViewController:self.orderViewController withDirection:UIViewAnimationOptionTransitionCrossDissolve];
         [self flipFromViewController:self.current_VC toViewController:self.orderViewController withDirection:UIViewAnimationOptionTransitionCrossDissolve];
-  
+#endif
+        
+    }
+        
 }
 }
 - (IBAction)switchToOrder:(id)sender {
 - (IBAction)switchToOrder:(id)sender {
     
     
@@ -2105,6 +2127,12 @@
     [self.sideMenuItems addObject:map.copy];
     [self.sideMenuItems addObject:map.copy];
 # endif
 # endif
     
     
+#if defined(SCANNER_ORDER)
+    [map setValue:@"Scanner Order" forKey:@"title"];
+    [map setValue:@"rect_change_password" forKey:@"img"];
+    [self.sideMenuItems addObject:map.copy];
+# endif
+    
 #if defined(BUILD_NPD)|| defined (BUILD_CONTRAST)
 #if defined(BUILD_NPD)|| defined (BUILD_CONTRAST)
     if(appDelegate.user_type==USER_ROLE_EMPLOYEE)
     if(appDelegate.user_type==USER_ROLE_EMPLOYEE)
     {
     {
@@ -2428,6 +2456,347 @@
     
     
     
     
 }
 }
+
+#ifdef SCANNER_ORDER
+
+#pragma mark - Offline Order
+-(void) CreateOfflineOrder
+{
+    
+    RASingleton.sharedInstance.enable_OfflineOrder = true;
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    __block MainViewController *brself= self;
+    if(appDelegate.contact_id.length<=0)
+    {
+        
+        UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"New Offline Order" message:nil preferredStyle:UIAlertControllerStyleAlert];
+        UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"With Offline Contact" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
+
+//            if(appDelegate.order_code && appDelegate.order_code.length>0)
+//            {
+//                [RAUtils message_alert:@"Please close current order and try again." title:@"" controller:self];
+//            }
+//            NSLog(@"new click");
+            
+            NSMutableDictionary * params= [[NSMutableDictionary alloc] init];
+            
+//            NSString *path = [[NSBundle mainBundle] pathForResource:@"editContact.json" ofType:nil];
+            
+            CustomerEditViewController * cuseditVC = [[CustomerEditViewController alloc] initWithNibName:@"CommonEditor.iPad" bundle:nil];
+            cuseditVC.bnewcustomer=true;
+            cuseditVC.bolocustomer = true;
+            cuseditVC.url_type = URL_FILE;
+            cuseditVC.request_url=[OLDataProvider scanTemplatePath:@"scan_contact.json"];
+            
+            cuseditVC.params = params;
+            
+            cuseditVC.returnValue=^(NSMutableDictionary* value)
+            {
+                if(value==nil)
+                {
+                    [RAUtils message_alert:@"Cannot create order without cursomer infomation." title:@"" controller:self];
+                }
+                else
+                {
+                    NSString* contact_id=[[NSUUID new] UUIDString];
+                    
+                    
+                    
+    
+                        
+                        
+                        value [@"customer_cid"] = contact_id;
+                        appDelegate.contact_id=contact_id;
+                        appDelegate.customerInfo = value;
+                        [brself refreshContactDisplay];
+                    [self newoloorder];
+//                        [brself switchToCart:nil];
+                    
+                }
+            };
+            
+            
+        //    cuseditVC.delegate=self;
+            //
+            //    if(checked.count==count)
+            //    {
+            //    orderinfoVC.have_tail = true
+            //    }
+            
+            [[self navigationController] setNavigationBarHidden:NO animated:NO];
+            [self.navigationController pushViewController:cuseditVC animated:false];
+            
+//            [self dismissViewControllerAnimated:NO completion:^{
+////                [(UINavigationController*)[self parentViewController] pushViewController:cuseditVC animated:false];;
+////                            [[self navigationController] setNavigationBarHidden:NO animated:NO];
+//
+////                            [self pushViewController:cuseditVC animated:false];
+//            }];
+            
+//            [[self navigationController] setNavigationBarHidden:NO animated:NO];
+//            [self.navigationController pushViewController:cuseditVC animated:false];
+            
+            
+        }];
+
+        UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"With Online Contact" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
+            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+            
+            if(appDelegate.order_code && appDelegate.order_code.length>0)
+            {
+    //            appDelegate.order_code= nil;
+    //            [appDelegate SetSo:nil];
+                
+                
+                    //     MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
+                    ContactListViewController* cvc = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
+                    cvc.showNavibar = true;
+                    cvc.contact_type = @"Sales_Order_Customer";
+                    cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
+                        
+                        appDelegate.contact_id=[value valueForKey:@"customer_cid"];
+                        appDelegate.customerInfo = value;
+                        
+//                        self.norefresh = true;
+                        [self newoloorder];
+                        
+                        
+                        
+                        //    [main_vc checklogin:true];
+                        //            [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
+                        
+                        //
+                        //                if(self.returnValue)
+                        //                    self.returnValue(value);
+                    };
+                    
+                    cvc.onCancel = ^(){
+//                        self.norefresh = true;
+                        if(appDelegate.customerInfo==nil)
+                        {
+                            [RAUtils message_alert:@"Cannot create order without cursomer infomation." title:@"" controller:self];
+                        }
+                        else
+                        {
+                            [self newoloorder];
+                        }
+                        //  [main_vc checklogin:true];
+                    };
+                    cvc.onReset = ^(){
+                        //   [main_vc checklogin:true];
+                    };
+                    
+                    [self.navigationController pushViewController:cvc animated:true];
+                
+
+                
+            }
+            else
+            {
+                //create new;
+                
+                if(appDelegate.customerInfo==nil)// select contact if current contact not exist
+                {
+                    MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
+                    ContactListViewController* cvc = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
+                    cvc.showNavibar = true;
+                    cvc.contact_type = @"Sales_Order_Customer";
+                    cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
+                        
+                        appDelegate.contact_id=[value valueForKey:@"customer_cid"];
+                        appDelegate.customerInfo = value;
+                        
+                        
+                        if(appDelegate.order_code==nil)
+                            [self newoloorder];
+                        
+                        //   [main_vc checklogin:true];
+                        //            [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
+                        
+                        //
+                        //                if(self.returnValue)
+                        //                    self.returnValue(value);
+                    };
+                    
+                    cvc.onCancel = ^(){
+                        
+                        [RAUtils message_alert:@"Cannot create order without cursomer infomation." title:@"" controller:self];
+                        
+                        
+                        
+                    };
+                    cvc.onReset = ^(){
+                        [main_vc checklogin:true];
+                    };
+                    
+                    [self.navigationController pushViewController:cvc animated:true];
+                }
+                else
+                {
+                    [self newoloorder];
+                }
+            }
+            
+        }];
+
+        UIAlertAction *alertCancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
+            
+        }];
+        
+        [alertControl addAction:actionOne];
+        
+        [alertControl addAction:alertthree];
+        [alertControl addAction:alertCancel];
+        
+        [self presentViewController:alertControl animated:YES completion:nil];
+    }
+    else
+    {
+        [self newoloorder];
+    }
+}
+
+-(void) newoloorder
+{
+    NSString* order_code = [[NSUUID new] UUIDString];
+                                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+                                appDelegate.order_code = order_code;
+    
+//    NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:URL_SO_CART ofType:@"json" ]];
+    NSMutableDictionary* cartTemplate=[OLDataProvider loadScanTemplate:@"scan_cart.json"];
+    RASingleton.sharedInstance.scan_cart=cartTemplate;//[[RAConvertor data2dict:json] mutableCopy];
+    appDelegate.user_type = USER_ROLE_EMPLOYEE;
+    appDelegate.can_set_cart_price = true;
+    appDelegate.can_see_price = true;
+    
+//    __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Create Order" completion:^{
+//        [RANetwork request_create_order:^(NSMutableDictionary *result) {
+//                NSMutableDictionary* return_json =result;
+//
+//                [waitalert dismissViewControllerAnimated:YES completion:^{
+//                    if([[return_json valueForKey:@"result"] intValue]==2)
+//                    {
+//                        int result=[[return_json valueForKey:@"result"] intValue];
+//                        if(result==2)
+//                        {
+//                            //successed.
+//
+//                            NSString* order_code = [return_json valueForKey:@"orderCode"];
+//                            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//                            appDelegate.order_code = order_code;
+//                            appDelegate.order_status = [[return_json valueForKey:@"orderStatus"] intValue];
+//
+//
+//        #ifdef RA_NOTIFICATION
+//                            [ActiveViewController Notify:@"CartViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+//        #else
+//                            MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
+//                            [main_vc reloadCart:true immediately:false];
+//        #endif
+//
+////                            [self ReloadData];
+//
+//
+//                            //     [self performSelector:@selector(loadpage) withObject:nil afterDelay:1];
+//                            //    [self loadpage];
+//
+//
+//                            //                    if(self.shopCartBlock!=nil)
+//                            //                    {
+//                            //                        UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
+//                            //
+//                            //
+//                            //                        CGRect iv_rect = CGRectMake(self.btnaddCart.center.x-50, self.btnaddCart.center.y-50, 100, 100);
+//                            //                        UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
+//                            //                        iv.image = img;
+//                            //                        //                        [self.contentView addSubview:iv];
+//                            //                        self.shopCartBlock(iv);
+//                            //
+//                            //                    }
+//
+//                        }
+//                    }
+//                    else
+//                    {
+//                        [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Create Order" controller:self] ;
+//                    }
+//                }];
+//        //        [waitalert dismissViewControllerAnimated:YES completion:nil];
+//
+//
+//
+//
+//
+//
+//
+//
+//            }];
+//
+//    }];
+        
+//    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+//
+//        NSDictionary* return_json = [RANetwork new_Order];
+//
+//        dispatch_async(dispatch_get_main_queue(), ^{
+//            [waitalert dismissViewControllerAnimated:YES completion:nil];
+//
+//
+//            if([[return_json valueForKey:@"result"] intValue]==2)
+//            {
+//                int result=[[return_json valueForKey:@"result"] intValue];
+//                if(result==2)
+//                {
+//                    //successed.
+//
+//                    NSString* order_code = [return_json valueForKey:@"orderCode"];
+//                    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//                    appDelegate.order_code = order_code;
+//                    appDelegate.order_status = [[return_json valueForKey:@"orderStatus"] intValue];
+//
+//
+//#ifdef RA_NOTIFICATION
+//                    [ActiveViewController Notify:@"CartViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+//#else
+//                    MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
+//                    [main_vc reloadCart:true immediately:false];
+//#endif
+//
+//                    [self ReloadData];
+//
+//
+//                    //     [self performSelector:@selector(loadpage) withObject:nil afterDelay:1];
+//                    //    [self loadpage];
+//
+//
+//                    //                    if(self.shopCartBlock!=nil)
+//                    //                    {
+//                    //                        UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
+//                    //
+//                    //
+//                    //                        CGRect iv_rect = CGRectMake(self.btnaddCart.center.x-50, self.btnaddCart.center.y-50, 100, 100);
+//                    //                        UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
+//                    //                        iv.image = img;
+//                    //                        //                        [self.contentView addSubview:iv];
+//                    //                        self.shopCartBlock(iv);
+//                    //
+//                    //                    }
+//
+//                }
+//            }
+//            else
+//            {
+//                [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Create Order" controller:self] ;
+//            }
+//
+//
+//
+//
+//        });
+//    });
+}
+#endif
 #pragma mark - Table view delegate
 #pragma mark - Table view delegate
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
 {
@@ -2449,6 +2818,43 @@
         
         
         
         
     }
     }
+#ifdef SCANNER_ORDER
+    else if([title isEqualToString:@"Scanner Order"])
+    {
+        
+        OLOSettingViewController * offlineVC =[ [UIStoryboard storyboardWithName:@"OLM" bundle:nil] instantiateViewControllerWithIdentifier:@"OLOSettingViewController"];
+        offlineVC.returnValue=^(int type){
+            if(type == OOC_CREATE_ORDER){
+                [self CreateOfflineOrder];
+            }
+        };
+        //    loginvc.delegate = self;
+        //    loginvc.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种
+ //       appDelegate.active_controller = gunVC;
+//        gunVC.onDismissVC = ^(){
+//            appDelegate.active_controller = active_vc;
+//        };
+        UINavigationController* navi = [[UINavigationController alloc] initWithRootViewController:offlineVC] ;
+        
+        
+        
+        
+        
+        //    [self hackModalSheetSize:CGSizeMake(450, 200) ofVC:navi];
+        
+        navi.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;//有三种状态,自己看看是哪种
+        [self presentViewController:navi animated:YES completion:^{
+            
+            //        navi.view.superview.bounds = CGRectMake(0, 0, 480, 320);
+            
+            DebugLog(@"about present.........");
+            
+            //   self.btop = false;
+            //  <#code#>
+        }];
+        
+    }
+#endif
     else if([title isEqualToString:@"Scanner Setting"])
     else if([title isEqualToString:@"Scanner Setting"])
     {
     {
         
         

+ 20 - 0
RedAnt ERP Mobile/common/Functions/OLO/OLOSettingViewController.h

@@ -0,0 +1,20 @@
+//
+//  OLOSettingViewController.h
+//  iSales-UWAVER
+//
+//  Created by Rui Zhang on 1/7/22.
+//  Copyright © 2022 United Software Applications, Inc. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface OLOSettingViewController : UIViewController
+@property (weak, nonatomic) IBOutlet UISwitch *switch_enable;
+@property (weak, nonatomic) IBOutlet UITextField *textfieldName;
+@property (weak, nonatomic) IBOutlet UITextField *textfieldServer;
+@property (nonatomic , copy) void (^returnValue)(int type);
+@end
+
+NS_ASSUME_NONNULL_END

+ 415 - 0
RedAnt ERP Mobile/common/Functions/OLO/OLOSettingViewController.m

@@ -0,0 +1,415 @@
+//
+//  OLOSettingViewController.m
+//  iSales-UWAVER
+//
+//  Created by Rui Zhang on 1/7/22.
+//  Copyright © 2022 United Software Applications, Inc. All rights reserved.
+//
+
+#import "OLOSettingViewController.h"
+#import "AppDelegate.h"
+#import "RASingleton.h"
+#import "ContactListViewController.h"
+#import "MainViewController.h"
+#import "CustomerEditViewController.h"
+
+#import "UploadCell.h"
+#import "UIView+Toast.h"
+//#import "ServerSettingViewController.h"
+
+#define OOC_OFFLINE_CONTACT 0
+#define OOC_ONLINE_CONTACT 1
+#define OOC_CREATE_ORDER 10
+@interface OLOSettingViewController ()
+
+@end
+
+@implementation OLOSettingViewController
+- (IBAction)onSetUnlockCode:(id)sender {
+}
+- (IBAction)onUpdateLocalData:(id)sender {
+}
+- (IBAction)onSetServer:(id)sender {
+//    ServerSettingViewController *loginSettingVC = [[UIStoryboard storyboardWithName:@"OLM" bundle:nil] instantiateViewControllerWithIdentifier:@"ServerSettingViewController"];
+//    __weak typeof(self) weakself = self;
+//    loginSettingVC.returnValue = ^(NSString *name,NSString *address) {
+//        if (weakself) {
+//            __strong typeof(weakself) strongself = weakself;
+//            AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+//            appDelegate.address = address;
+//            weakself.textfieldName.text = name;
+//            weakself.textfieldServer.text = address;
+////            [strongself.loginTable reloadData];
+//        }
+//    };
+//    UINavigationController *settingRootNav = [[UINavigationController alloc] initWithRootViewController:loginSettingVC];
+//    [self presentViewController:settingRootNav animated:YES completion:nil];
+//    
+    
+}
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    
+    
+    
+    
+
+    if(RASingleton.sharedInstance.enable_OfflineOrder)
+    {
+        self.switch_enable.on=true;
+    }
+    else
+    {
+        self.switch_enable.on=false;
+    }
+    // Do any additional setup after loading the view.
+}
+//- (IBAction)onEnableOLOChanged:(id)sender {
+//
+//    RASingleton.sharedInstance.enable_OfflineOrder = [self.switch_enable isOn];
+//}
+- (IBAction)onCreateOO:(id)sender
+{
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+        if(appDelegate.user.length<=0)
+        {
+            [RAUtils message_alert:@"Please select a sales first" title:@"Create Offline Order" controller:self];
+            return;
+        }
+    
+    [self dismissViewControllerAnimated:NO completion:^{
+        if(self.returnValue)
+            self.returnValue(OOC_CREATE_ORDER);
+        
+    }];
+    
+    return;
+    
+    
+//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    __block bool abort = false;
+    
+    if(appDelegate.contact_id.length<=0)
+    {
+        UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"New Offline Order" message:nil preferredStyle:UIAlertControllerStyleAlert];
+        UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"With Offline Contact" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
+
+//            if(appDelegate.order_code && appDelegate.order_code.length>0)
+//            {
+//                [RAUtils message_alert:@"Please close current order and try again." title:@"" controller:self];
+//            }
+//            NSLog(@"new click");
+            
+            NSMutableDictionary * params= [[NSMutableDictionary alloc] init];
+            
+//            NSString *path = [[NSBundle mainBundle] pathForResource:@"editContact.json" ofType:nil];
+            
+            CustomerEditViewController * cuseditVC = [[CustomerEditViewController alloc] initWithNibName:@"CommonEditor.iPad" bundle:nil];
+            cuseditVC.bnewcustomer=true;
+            cuseditVC.url_type = URL_LOCAL;
+            cuseditVC.request_url=LOCAL_URL_CUSTOMER_INFO_EDIT;
+            
+            cuseditVC.params = params;
+            
+        //    cuseditVC.delegate=self;
+            //
+            //    if(checked.count==count)
+            //    {
+            //    orderinfoVC.have_tail = true
+            //    }
+            
+            [self dismissViewControllerAnimated:NO completion:^{
+                [(UINavigationController*)[self parentViewController] pushViewController:cuseditVC animated:false];;
+            }];
+            
+//            [[self navigationController] setNavigationBarHidden:NO animated:NO];
+//            [self.navigationController pushViewController:cuseditVC animated:false];
+            
+            
+        }];
+
+        UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"With Online Contact" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
+            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+            
+            if(appDelegate.order_code && appDelegate.order_code.length>0)
+            {
+    //            appDelegate.order_code= nil;
+    //            [appDelegate SetSo:nil];
+                
+                
+                    //     MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
+                    ContactListViewController* cvc = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
+                    cvc.showNavibar = true;
+                    cvc.contact_type = @"Sales_Order_Customer";
+                    cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
+                        
+                        appDelegate.contact_id=[value valueForKey:@"customer_cid"];
+                        appDelegate.customerInfo = value;
+                        
+//                        self.norefresh = true;
+                        [self neworder];
+                        
+                        
+                        
+                        //    [main_vc checklogin:true];
+                        //            [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
+                        
+                        //
+                        //                if(self.returnValue)
+                        //                    self.returnValue(value);
+                    };
+                    
+                    cvc.onCancel = ^(){
+//                        self.norefresh = true;
+                        if(appDelegate.customerInfo==nil)
+                        {
+                            [RAUtils message_alert:@"Cannot create order without cursomer infomation." title:@"" controller:self];
+                        }
+                        else
+                        {
+                            [self neworder];
+                        }
+                        //  [main_vc checklogin:true];
+                    };
+                    cvc.onReset = ^(){
+                        //   [main_vc checklogin:true];
+                    };
+                    
+                    [self.navigationController pushViewController:cvc animated:true];
+                
+
+                
+            }
+            else
+            {
+                //create new;
+                
+                if(appDelegate.customerInfo==nil)// select contact if current contact not exist
+                {
+                    MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
+                    ContactListViewController* cvc = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
+                    cvc.showNavibar = true;
+                    cvc.contact_type = @"Sales_Order_Customer";
+                    cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
+                        
+                        appDelegate.contact_id=[value valueForKey:@"customer_cid"];
+                        appDelegate.customerInfo = value;
+                        
+                        
+                        if(appDelegate.order_code==nil)
+                            [self neworder];
+                        
+                        //   [main_vc checklogin:true];
+                        //            [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
+                        
+                        //
+                        //                if(self.returnValue)
+                        //                    self.returnValue(value);
+                    };
+                    
+                    cvc.onCancel = ^(){
+                        
+                        [RAUtils message_alert:@"Cannot create order without cursomer infomation." title:@"" controller:self];
+                        
+                        
+                        
+                    };
+                    cvc.onReset = ^(){
+                        [main_vc checklogin:true];
+                    };
+                    
+                    [self.navigationController pushViewController:cvc animated:true];
+                }
+                else
+                {
+                    [self neworder];
+                }
+            }
+            
+        }];
+
+        UIAlertAction *alertCancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
+            
+        }];
+        
+        [alertControl addAction:actionOne];
+        
+        [alertControl addAction:alertthree];
+        [alertControl addAction:alertCancel];
+        
+        [self presentViewController:alertControl animated:YES completion:nil];
+    }
+    else
+    {
+        [self neworder];
+    }
+    
+    
+    //block代码块取代了delegate
+    
+    
+    
+    
+
+
+    
+
+    
+    //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
+    
+    
+
+    
+}
+
+
+-(void) neworder
+{
+    
+    __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Create Order" completion:^{
+        [RANetwork request_create_order:^(NSMutableDictionary *result) {
+                NSMutableDictionary* return_json =result;
+                
+                [waitalert dismissViewControllerAnimated:YES completion:^{
+                    if([[return_json valueForKey:@"result"] intValue]==2)
+                    {
+                        int result=[[return_json valueForKey:@"result"] intValue];
+                        if(result==2)
+                        {
+                            //successed.
+                            
+                            NSString* order_code = [return_json valueForKey:@"orderCode"];
+                            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+                            appDelegate.order_code = order_code;
+                            appDelegate.order_status = [[return_json valueForKey:@"orderStatus"] intValue];
+                            
+                            
+        #ifdef RA_NOTIFICATION
+                            [ActiveViewController Notify:@"CartViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+        #else
+                            MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
+                            [main_vc reloadCart:true immediately:false];
+        #endif
+                            
+//                            [self ReloadData];
+                            
+                            
+                            //     [self performSelector:@selector(loadpage) withObject:nil afterDelay:1];
+                            //    [self loadpage];
+                            
+                            
+                            //                    if(self.shopCartBlock!=nil)
+                            //                    {
+                            //                        UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
+                            //
+                            //
+                            //                        CGRect iv_rect = CGRectMake(self.btnaddCart.center.x-50, self.btnaddCart.center.y-50, 100, 100);
+                            //                        UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
+                            //                        iv.image = img;
+                            //                        //                        [self.contentView addSubview:iv];
+                            //                        self.shopCartBlock(iv);
+                            //
+                            //                    }
+                            
+                        }
+                    }
+                    else
+                    {
+                        [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Create Order" controller:self] ;
+                    }
+                }];
+        //        [waitalert dismissViewControllerAnimated:YES completion:nil];
+                
+                
+                
+                
+                
+                
+                
+                
+            }];
+
+    }];
+        
+//    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+//
+//        NSDictionary* return_json = [RANetwork new_Order];
+//
+//        dispatch_async(dispatch_get_main_queue(), ^{
+//            [waitalert dismissViewControllerAnimated:YES completion:nil];
+//
+//
+//            if([[return_json valueForKey:@"result"] intValue]==2)
+//            {
+//                int result=[[return_json valueForKey:@"result"] intValue];
+//                if(result==2)
+//                {
+//                    //successed.
+//
+//                    NSString* order_code = [return_json valueForKey:@"orderCode"];
+//                    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//                    appDelegate.order_code = order_code;
+//                    appDelegate.order_status = [[return_json valueForKey:@"orderStatus"] intValue];
+//
+//
+//#ifdef RA_NOTIFICATION
+//                    [ActiveViewController Notify:@"CartViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+//#else
+//                    MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
+//                    [main_vc reloadCart:true immediately:false];
+//#endif
+//
+//                    [self ReloadData];
+//
+//
+//                    //     [self performSelector:@selector(loadpage) withObject:nil afterDelay:1];
+//                    //    [self loadpage];
+//
+//
+//                    //                    if(self.shopCartBlock!=nil)
+//                    //                    {
+//                    //                        UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
+//                    //
+//                    //
+//                    //                        CGRect iv_rect = CGRectMake(self.btnaddCart.center.x-50, self.btnaddCart.center.y-50, 100, 100);
+//                    //                        UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
+//                    //                        iv.image = img;
+//                    //                        //                        [self.contentView addSubview:iv];
+//                    //                        self.shopCartBlock(iv);
+//                    //
+//                    //                    }
+//
+//                }
+//            }
+//            else
+//            {
+//                [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Create Order" controller:self] ;
+//            }
+//
+//
+//
+//
+//        });
+//    });
+}
+
+- (IBAction)onSelectSales:(id)sender {
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    appDelegate.user = @"OLOTEST";
+    appDelegate.bLogin = true;
+}
+
+/*
+#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.
+}
+*/
+
+@end

+ 51 - 0
RedAnt ERP Mobile/common/Functions/OLO/ScanOrderListViewController.h

@@ -0,0 +1,51 @@
+//
+//  ScanOrderListViewController.h
+//  iSales-USAI
+//
+//  Created by Rui Zhang on 2/8/22.
+//  Copyright © 2022 United Software Applications, Inc. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "LoginViewController.h"
+#import "ActiveViewController.h"
+#import "EnumSelectViewController.h"
+#import "UIView+Toast.h"
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ScanOrderListViewController : ActiveViewController
+@property (strong, nonatomic) IBOutlet UITableView *table_order;
+
+@property (weak, nonatomic) IBOutlet UITableView *table_upload;
+//@property (strong, nonatomic) IBOutlet UIActivityIndicatorView *mum;
+@property (strong,nonatomic) NSMutableArray * content_data;
+@property dispatch_queue_t  loading_queue;
+@property int offset;
+@property int limit;
+@property bool showNavibar;
+@property bool reset_result;
+//@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
+@property (strong,nonatomic) NSString* load_more_hint;
+@property (strong,nonatomic) NSString* time_zone;
+@property (strong, nonatomic) IBOutlet UIToolbar *toolbarView;
+
+//@property (strong, nonatomic) IBOutlet UISearchBar *searchbar;
+@property (strong,nonatomic) NSString* keywords;
+@property bool reset;
+@property bool norefresh;
+@property (nonatomic , copy) void (^selectOrder)(NSMutableDictionary * order_detail);
+//@property (strong, nonatomic) IBOutlet UIBarButtonItem *btnStatusFilter;
+@property (strong, nonatomic) NSString* statusFilter;
+@property (nonatomic , copy) void (^onCancel)(void);
+@property (strong, nonatomic) IBOutlet UIBarButtonItem *btn_newOrder;
+
+@property (strong,nonatomic) NSMutableDictionary * status_cadedate;
+//@property (strong, nonatomic) IBOutlet UIView *toolbarView;
+@property (strong, nonatomic) IBOutlet UILabel *label_filter;
+
+@property (strong, nonatomic) IBOutlet UILabel *label_net_err;
+@property int init_style;
+@property (strong,nonatomic) NSString* customer_id;
+@end
+
+NS_ASSUME_NONNULL_END

+ 2426 - 0
RedAnt ERP Mobile/common/Functions/OLO/ScanOrderListViewController.m

@@ -0,0 +1,2426 @@
+//
+//  ScanOrderListViewController.m
+//  iSales-USAI
+//
+//  Created by Rui Zhang on 2/8/22.
+//  Copyright © 2022 United Software Applications, Inc. All rights reserved.
+//
+
+#import "ScanOrderListViewController.h"
+
+
+#import "OrderListTableViewCell.h"
+#import "RANetwork.h"
+#import "OrderDetailViewController.h"
+#import "MainViewController.h"
+
+#import "ContactListViewController.h"
+#import "DefaultAppearance.h"
+#import "DefaultTableHeaderView.h"
+#import "SelectUploadOrderViewController.h"
+#import "NotificationNameCenter.h"
+#import "RASingleton.h"
+#import "ERPUtils.h"
+#import "UploadCell.h"
+#import "CustomerEditViewController.h"
+#import "CreateOrderViewController.h"
+
+#import "MainViewController.h"
+
+@interface ScanOrderListViewController ()
+
+@property (nonatomic,strong) NSOperationQueue *dataOperationQueue;
+
+@property (nonatomic,strong) NSMutableArray *mergeList;
+
+@property (nonatomic,assign) NSInteger orderType;///<sales order/shop order
+
+@property (nonatomic,strong) NSMutableDictionary *sales_order_filter;
+@property (nonatomic,strong) NSMutableDictionary *shop_order_filter;
+
+@property (strong, nonatomic) IBOutlet UIBarButtonItem *mergeListButton;
+@property (strong, nonatomic) IBOutlet UIBarButtonItem *editOrderListButton;
+@property (strong, nonatomic) IBOutlet UISegmentedControl *orderTypeSegmentControl;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *tableTopConstraint;
+
+@end
+
+@implementation ScanOrderListViewController
+
+
+- (NSOperationQueue *)dataOperationQueue {
+    if (!_dataOperationQueue) {
+        _dataOperationQueue = [[NSOperationQueue alloc] init];
+        _dataOperationQueue.maxConcurrentOperationCount = 1;
+    }
+    return _dataOperationQueue;
+}
+
+- (void)dealloc {
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+}
+
+- (NSMutableArray *)mergeList {
+    if (!_mergeList) {
+        _mergeList = [NSMutableArray array];
+    }
+    return _mergeList;
+}
+
+-(void) logout
+{
+        [self.mergeList removeAllObjects];
+    self.offset = 0;
+    [self.content_data removeAllObjects];
+    [self.table_order reloadData];
+    self.status_cadedate = nil;
+}
+#ifndef RA_NOTIFICATION
+-(void) reload_container_getdata:(bool) update_data
+{
+    [super reload_container_getdata:update_data];
+    if(update_data)
+    {
+        //    self.offset = 0;
+        //    [self.content_data removeAllObjects];
+        self.reset_result=true;
+        self.norefresh=true;
+        [self reload_data];
+    }
+    else
+    {
+        [self.table_order reloadData];
+    }
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    
+    if(appDelegate.can_create_order)
+    {
+        
+        
+        [self.btn_newOrder setImage:[UIImage imageNamed:@"neworder"]];
+        self.btn_newOrder.enabled = true;
+    }
+    else
+    {
+        [self.btn_newOrder setImage:nil];
+        self.btn_newOrder.enabled = false;
+    }
+}
+#endif
+-(void) showHidePrice
+{
+#ifndef RA_NOTIFICATION
+    [self reload_container_getdata:false];
+#endif
+}
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.edgesForExtendedLayout = UIRectEdgeNone;
+    
+    self.loading_queue = dispatch_queue_create("orderlist_loading", NULL);
+    
+    self.label_net_err.layer.borderColor = [UIColor darkGrayColor].CGColor;
+    self.label_net_err.layer.borderWidth = 2.0;
+    self.label_net_err.layer.cornerRadius=15;
+    self.label_net_err.layer.masksToBounds=true;
+        #ifndef RA_NOTIFICATION
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changePriceType:) name:Change_Price_Type_Notification object:nil];
+#endif
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(lockOrderListNotification:) name:Lock_Permission_Notification object:nil];
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(lockOrderListNotification:) name:unLock_Permission_Notification object:nil];
+    
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleUserLogin:) name:User_LoginOK_Notification object:nil];
+    
+    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(refresh_btn_click:)];
+    //            tap.minimumPressDuration = 0.8; //定义按的时间
+    [self.label_net_err addGestureRecognizer:tap];
+    // Do any additional setup after loading the view.
+    self.offset = 0;
+    self.limit = 25;
+    self.content_data = [[NSMutableArray alloc]init];
+    // Customer Order Type 0 Shop Order/ 1 Sales Order
+//    self.orderType = self.orderTypeSegmentControl.selectedSegmentIndex;
+    [RASingleton sharedInstance].customer_order_type = self.orderType;
+    
+    
+    UIRefreshControl *ref = [[UIRefreshControl alloc]init];
+    ref.tag = 201 ;
+    ref.attributedTitle = [[NSAttributedString alloc]initWithString:@"Pull to refresh"];
+    ref.tintColor = [UIColor colorWithRed:0.10 green:0.68 blue:0.94 alpha:0.7];
+    //    ref.hidden = true;
+    [ref addTarget:self action:@selector(manually_refresh) forControlEvents:UIControlEventValueChanged];
+    [self.table_order addSubview:ref];
+    self.table_order.allowsMultipleSelectionDuringEditing = YES;
+    
+//    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
+//    NSString *documents = [paths objectAtIndex:0];
+//    NSString *dist_path = [documents stringByAppendingPathComponent:@"status_filter_cadedate.json"];
+    
+    
+    //    if ([[NSFileManager defaultManager] fileExistsAtPath:dist_path]) {
+    //
+    //        DebugLog(@"文件已经存在了");
+    //
+    //    }
+    //    else
+    //    {
+    //
+    //
+    //
+    //        //        DebugLog(@"resourceSampleImagesFolderPath=%@",resourceFolderPath);
+    //
+    //        NSData *mainBundleFile = [NSData dataWithContentsOfFile:order_filter_source_path];
+    //
+    //        //        DebugLog(@"mainBundleFile==%@",mainBundleFile);
+    //
+    //        [[NSFileManager defaultManager] createFileAtPath:dist_path
+    //
+    //                                                contents:mainBundleFile
+    //
+    //                                              attributes:nil];
+    //
+    //    }
+    
+    [self loadfilter];
+    
+    
+}
+-(void) loadfilter
+{
+//    
+//    if(self.status_cadedate!=nil)
+//        return;
+//    
+//    UIApplication * app = [UIApplication sharedApplication];
+//    AppDelegate *appDelegate = (AppDelegate *)[app delegate];
+//    
+//    if (appDelegate.user && appDelegate.user_type == USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeStore) {
+//        self.shop_order_filter = [RASingleton sharedInstance].shop_order_status_filter;
+//        self.sales_order_filter = [RASingleton sharedInstance].sales_order_status_filter;
+//        if(self.init_style==OL_OPEN)
+//        {
+//            NSData *data=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"status_filter_cadedate_open" ofType:@"json" ]];
+//            NSError *error=nil;
+//            self.status_cadedate = [[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error] mutableCopy];
+//            
+//        }
+////        else if (self.orderTypeSegmentControl.selectedSegmentIndex == 0) {
+////            self.status_cadedate = self.shop_order_filter;
+////        } else {
+////            self.status_cadedate = self.sales_order_filter;
+////        }
+//        return;
+//    }
+//    
+//    NSData* json =nil;
+//    if(self.init_style==OL_OPEN)
+//    {
+//        json=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"status_filter_cadedate_open" ofType:@"json" ]];
+//        NSError *error=nil;
+//        self.status_cadedate = [[NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error] mutableCopy];
+//        
+//    }
+//    else
+//    {
+//        //        json=//[NSData dataWithContentsOfFile:dist_path];
+//        //    NSError *error=nil;
+//        self.status_cadedate = appDelegate.OrderFilter;//[[NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error] mutableCopy];
+//    }
+}
+- (IBAction)onCancel:(id)sender {
+    if(self.onCancel)
+        self.onCancel();
+    [self.navigationController popViewControllerAnimated:false];
+}
+- (IBAction)onStatusFilterClick:(id)sender {
+//    if (self.table_order.isEditing || self.init_style == OL_OPEN) {
+//        return;
+//    }
+//    EnumSelectViewController* enumvc =[[UIStoryboard storyboardWithName:@"CommonEditor" bundle:nil] instantiateViewControllerWithIdentifier:@"EnumSelectorViewController"];
+//    enumvc.delegate = self;
+//    enumvc.max_select = 0;
+//    //enumvc.updatePosition = indexPath;
+//    //        if([[required lowercaseString] isEqualToString:@"true"])
+//    //        enumvc.canbeEmpty = false;
+//    //        else
+//    //        enumvc.canbeEmpty =true;
+//    enumvc.cadedate = self.status_cadedate ;
+//    enumvc.title = @"Order Status Selection";
+//    //       enumvc.value = [value_json mutableCopy];
+//    enumvc.single_select =false;
+//
+//    [self.navigationController pushViewController:enumvc animated:true];
+}
+- (void)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    [self loadfilter];
+  
+    [[self navigationController] setNavigationBarHidden:!self.showNavibar animated:NO];
+    
+    // 检查权限
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    NSMutableArray *items = [self.toolbarView.items mutableCopy];
+    
+    if(appDelegate.user && appDelegate.user_type == USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeStore) {
+        
+        //  Check for Saved Order中Type和History Type不一致导致Status不正确
+        [RASingleton sharedInstance].customer_order_type = self.orderType;
+//        if (!self.table_order.isEditing) { // 在编辑状态下不能change Type否则显示混乱
+//            [self changeOrderType:self.orderType];
+//        }
+        
+        // 合并订单的权限
+        if ([RASingleton sharedInstance].permissions_merge_order) { // 能够合并
+            
+            // 4 6 顺序不能换
+            if (![items containsObject:self.editOrderListButton]) { // 没显示button
+                [items insertObject:self.editOrderListButton atIndex:4];
+            }
+
+            self.toolbarView.items = items;
+            
+        } else { // 不能合并
+
+            if ([items containsObject:self.editOrderListButton]) { // 显示button
+                [items removeObject:self.editOrderListButton];
+            }
+            
+            self.toolbarView.items = items;
+        }
+        
+//        // Check For Saved Order 不能合并
+//        if(self.init_style==OL_OPEN || self.orderType == 1) {
+//
+//            if ([items containsObject:self.editOrderListButton]) { // 显示button
+//                [items removeObject:self.editOrderListButton];
+//            }
+//
+//            self.toolbarView.items = items;
+//
+//        }
+
+    } else {
+        
+
+        if ([items containsObject:self.editOrderListButton]) { // 显示button
+            [items removeObject:self.editOrderListButton];
+        }
+        
+        self.toolbarView.items = items;
+    }
+    
+    // 非Customer用户不用区分Sales Order 和 Shop Order
+    {
+        self.orderTypeSegmentControl.hidden = NO;
+        
+//        [self.view removeConstraint:self.tableTopConstraint];
+//
+//
+//        NSLayoutConstraint *myConstraint =[NSLayoutConstraint
+//                                           constraintWithItem:self.table_order //item1
+//                                           attribute:NSLayoutAttributeTop //约束属性
+//                                           relatedBy:NSLayoutRelationEqual //属性间的关系
+//                                           toItem:self.orderTypeSegmentControl//item2
+//                                           attribute:NSLayoutAttributeBottom//约束属性
+//                                           multiplier:1
+//                                           constant:0.0];// 固定距离
+//        self.tableTopConstraint = myConstraint;
+//        [self.view addConstraint: myConstraint];//为button重新添加一个约束
+//
+//
+//
+//        CGFloat y = CGRectGetMinY(self.orderTypeSegmentControl.frame);
+//        CGFloat height = CGRectGetHeight(self.orderTypeSegmentControl.frame);
+//        CGRect frame = self.table_order.frame;
+//        if (frame.origin.y == y) {
+//            frame.origin.y = y + height;
+//            frame.size.height -= height;
+//        }
+//        self.table_order.frame = frame;
+    }
+    
+    // 修复Homer显示NPD
+//    if (self.orderTypeSegmentControl.numberOfSegments > 1) {
+//        [self.orderTypeSegmentControl setTitle:[NSString stringWithFormat:@"Purchase Order to %@",COMPANY_SHORT_NAME] forSegmentAtIndex:1];
+//    }
+//    
+//    // 显示Sales Order与否
+//    if (appDelegate.user && appDelegate.user_type == USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeStore) {
+//        if ([RASingleton sharedInstance].global_lock || ![RASingleton sharedInstance].customer_can_see_sales_Order) { // 是否解锁,是否有查看Sales Order权限
+//            if (self.orderTypeSegmentControl.numberOfSegments > 1) {
+//                [self.orderTypeSegmentControl removeSegmentAtIndex:1 animated:YES];
+//                [self changeOrderType:0];
+//            }
+//        } else {
+//            
+//            if (self.orderTypeSegmentControl.numberOfSegments == 1 && !self.table_order.isEditing) {
+//                [self.orderTypeSegmentControl insertSegmentWithTitle:[NSString stringWithFormat:@"Purchase Order to %@",COMPANY_SHORT_NAME] atIndex:1 animated:YES];
+//            }
+//            
+//        }
+//    }
+    
+}
+-(void) newoloorder
+{
+    NSString* order_code = [[NSUUID new] UUIDString];
+                                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+                                appDelegate.order_code = order_code;
+    
+    if(appDelegate.user.length==0)
+    {
+        [RAUtils message_alert:@"Please select a sales first." title:@"Warring" controller:self];
+        return;
+    }
+    
+//    NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:URL_SO_CART ofType:@"json" ]];
+    NSMutableDictionary* cartTemplate=[OLDataProvider loadScanTemplate:@"scan_cart.json"];
+    RASingleton.sharedInstance.scan_cart=cartTemplate;//[[RAConvertor data2dict:json] mutableCopy];
+    
+    
+    
+    appDelegate.user_type = USER_ROLE_EMPLOYEE;
+    appDelegate.can_set_cart_price = true;
+    appDelegate.can_see_price = true;
+    
+    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+    NSString *documents = [paths objectAtIndex:0];
+    
+    {
+        
+        
+        NSString *orderdir = [documents stringByAppendingPathComponent:appDelegate.order_code];
+        
+        
+        NSError *error = nil;
+        bool bsuccess=[[NSFileManager defaultManager] createDirectoryAtPath:orderdir withIntermediateDirectories:YES attributes:nil error:&error];
+        
+        
+        NSMutableDictionary * params= [[NSMutableDictionary alloc] init];
+        //   NSString * string = [checked componentsJoinedByString:@","];
+        //  [params setValue:string forKey:@"cart2Checkbox"];
+        
+//        NSData* data=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:URL_SO_ORDER ofType:@"json" ]];
+        
+//        NSMutableDictionary* dict=[[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error] mutableCopy];
+        
+        NSMutableDictionary* dict=[OLDataProvider loadScanTemplate:@"scan_order.json"];
+
+
+        
+        
+        NSString *orderPath = [orderdir stringByAppendingPathComponent:@"order.json"];
+        
+        
+        
+        [RAUtils dicttofile:orderPath dict:dict];
+        
+        
+
+        
+        
+        NSString *contactpath = [orderdir stringByAppendingPathComponent:@"contact.json"];
+        
+        
+        
+        [RAUtils dicttofile:contactpath dict:appDelegate.customerInfo];
+        
+        
+    }
+//    MainViewController * mainvc=(MainViewController * )appDelegate.main_vc;
+//    mainvc.btnScan.enabled = true;
+    
+    [appDelegate updateScanButton:true];
+
+   
+    
+}
+- (IBAction)onNewOrderClicked:(id)sender {
+    
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+        
+if(appDelegate.user.length<=0)
+{
+    [RAUtils message_alert:@"Please select a sales first." title:@"Warring" controller:self];
+    return;
+}
+    
+    if(appDelegate.order_code.length>0)
+    {
+//        当前订单先关闭
+//        [OLDataProvider deleteScanOrder:appDelegate.order_code];
+        appDelegate.order_code = nil;
+        appDelegate.customerInfo = nil;
+        RASingleton.sharedInstance.scan_cart = nil;
+        appDelegate.contact_id = nil;
+        [appDelegate updateScanButton:false];
+
+        [appDelegate update_count_mark];
+        [appDelegate closeOrder];
+        
+    }
+    
+    
+    RASingleton.sharedInstance.enable_OfflineOrder = true;
+    
+
+//    __block MainViewController *brself= self;
+    if(appDelegate.contact_id.length<=0)
+    {
+        
+        UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"New Offline Order" message:nil preferredStyle:UIAlertControllerStyleAlert];
+        UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"With Offline Contact" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
+
+//            if(appDelegate.order_code && appDelegate.order_code.length>0)
+//            {
+//                [RAUtils message_alert:@"Please close current order and try again." title:@"" controller:self];
+//            }
+//            NSLog(@"new click");
+            
+            NSMutableDictionary * params= [[NSMutableDictionary alloc] init];
+            
+//            NSString *path = [[NSBundle mainBundle] pathForResource:@"editContact.json" ofType:nil];
+            
+            CustomerEditViewController * cuseditVC = [[CustomerEditViewController alloc] initWithNibName:@"CommonEditor.iPad" bundle:nil];
+            cuseditVC.bnewcustomer=true;
+            cuseditVC.bolocustomer = true;
+            cuseditVC.url_type = URL_FILE;
+            cuseditVC.request_url=[OLDataProvider scanTemplatePath:@"scan_contact.json"];
+            
+            cuseditVC.params = params;
+            
+            cuseditVC.returnValue=^(NSMutableDictionary* value)
+            {
+                if(value==nil)
+                {
+                    [RAUtils message_alert:@"Cannot create order without cursomer infomation." title:@"" controller:self];
+                }
+                else
+                {
+                    NSString* contact_id=[[NSUUID new] UUIDString];
+                    
+                    
+                    //---------------- construct customer_contact----------------------
+                    NSString* customer_first_name = [value valueForKey:@"customer_first_name"];
+                    if(customer_first_name==nil)
+                        customer_first_name=@"";
+                    
+                    NSString* customer_last_name= [value valueForKey:@"customer_last_name"];
+                    if(customer_last_name==nil)
+                        customer_last_name=@"";
+                    NSString* customer_contact = [NSString stringWithFormat:@"%@ %@",customer_first_name,customer_last_name];
+                    customer_contact=[customer_contact stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
+                    [value setValue:customer_contact forKey:@"customer_contact"];
+    
+                        
+                        
+                        value [@"customer_cid"] = contact_id;
+                        appDelegate.contact_id=contact_id;
+                        appDelegate.customerInfo = value;
+                    
+                    
+
+                    
+                    
+                    
+//                        [brself refreshContactDisplay];
+                    [self newoloorder];
+                    
+//                        [brself switchToCart:nil];
+                    
+                }
+            };
+            
+            
+        //    cuseditVC.delegate=self;
+            //
+            //    if(checked.count==count)
+            //    {
+            //    orderinfoVC.have_tail = true
+            //    }
+            
+            [[self navigationController] setNavigationBarHidden:NO animated:NO];
+            [self.navigationController pushViewController:cuseditVC animated:false];
+            
+//            [self dismissViewControllerAnimated:NO completion:^{
+////                [(UINavigationController*)[self parentViewController] pushViewController:cuseditVC animated:false];;
+////                            [[self navigationController] setNavigationBarHidden:NO animated:NO];
+//
+////                            [self pushViewController:cuseditVC animated:false];
+//            }];
+            
+//            [[self navigationController] setNavigationBarHidden:NO animated:NO];
+//            [self.navigationController pushViewController:cuseditVC animated:false];
+            
+            
+        }];
+
+        
+
+        UIAlertAction *alertCancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
+            
+        }];
+        
+        [alertControl addAction:actionOne];
+        
+//        [alertControl addAction:alertthree];
+        [alertControl addAction:alertCancel];
+        
+        [self presentViewController:alertControl animated:YES completion:nil];
+    }
+    else
+    {
+        [self newoloorder];
+    }
+}
+
+
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+-(void)manually_refresh
+{
+    UIRefreshControl *reF = (UIRefreshControl *)[self.view viewWithTag:201];
+    if(self.isrefreshing)
+    {
+        [reF endRefreshing];
+        return;
+    }
+    reF.attributedTitle = [[NSAttributedString alloc]initWithString:@"Refreshing"];
+    if ([self respondsToSelector:@selector(ReloadData)])
+        [self performSelector:@selector(ReloadData) withObject:nil afterDelay:1];
+    
+}
+
+-(void)ReloadData
+{
+    
+    
+    //    [self.content_data removeAllObjects];
+    //    [self.table_order reloadData];
+    
+    
+    // self.table_order.hidden = true;
+    UIRefreshControl *reF = (UIRefreshControl *)[self.view viewWithTag:201];
+    
+    [reF endRefreshing];
+    
+    reF.attributedTitle = [[NSAttributedString alloc]initWithString:@"Pull to refresh"];
+    
+    self.keywords=nil;
+    //    self.offset = 0;
+    self.reset_result=true;
+    //    [self.content_data removeAllObjects];
+    //    [self.table_order reloadData];
+    
+    
+    [self loadpage];
+    
+    //   [self loadpage];
+    
+}
+
+- (void)operation_loadPage {
+
+    if (self.dataOperationQueue.operationCount > 1) { // 队列后面还有操作
+        return;
+    }
+    
+    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+    NSString *documents = [paths objectAtIndex:0];
+    NSMutableDictionary* orderlist = nil;
+        NSString *orderlistPath = [documents stringByAppendingPathComponent:@"orderlist.json"];
+    orderlist=[[RAUtils dictfromfile:orderlistPath] mutableCopy];
+    [self.content_data removeAllObjects];
+    int count = [orderlist[@"count"] intValue];
+    for(int i=0;i<count;i++)
+    {
+        
+        NSDictionary* objmsg = [orderlist objectForKey:[NSString stringWithFormat:@"item_%d",i]];
+        [self.content_data addObject:[NSMutableDictionary dictionaryWithDictionary:objmsg]];
+        
+    }
+
+        
+        //                    int i =self.btnrefresh.state;
+        self.load_more_hint=@"All loaded";
+        //                    self.btnrefresh.titleLabel.text =NSLocalizedString(@"no_more", nil);
+        //                    [self.btnrefresh setTitle:@"No more" forState:UIControlStateNormal];
+  
+    
+
+        dispatch_sync(dispatch_get_main_queue(), ^{
+            self.table_order.hidden = false;
+            self.reset_result=false;
+            [self.table_order reloadData ];
+        });
+    return;
+//
+//
+//
+////    dispatch_async(self.loading_queue, ^{
+//
+//        dispatch_sync(dispatch_get_main_queue(), ^{
+//            if(self.reset_result)
+//            {
+//                self.offset = 0;
+//                [self.content_data removeAllObjects];
+//                [self.table_order reloadData];
+//            }
+//
+//            //            NSMutableArray* arr_status = [[NSMutableArray alloc] init];
+//
+//            NSMutableArray* arr_statusname = [[NSMutableArray alloc] init];
+//            int count = [[self.status_cadedate valueForKey:@"count"] intValue];
+//            for(int i=0;i<count;i++)
+//            {
+//                NSDictionary* val_json =[self.status_cadedate objectForKey:[NSString stringWithFormat:@"val_%d",i]];
+//                int check = [[val_json valueForKey:@"check"] intValue];
+//                if(check==1)
+//                {
+//                    //                    [arr_status addObject:[NSString stringWithFormat:@"%@",[val_json valueForKey:@"value_id"]]];
+//                    [arr_statusname addObject:[NSString stringWithFormat:@"%@",[val_json valueForKey:@"value"]]];
+//
+//                    // break;
+//                }
+//            }
+//
+//            //            NSString * str_status = [arr_status componentsJoinedByString:@","];
+//            NSString * str_statusname = [arr_statusname componentsJoinedByString:@","];
+//            if(str_statusname.length==0)
+//                str_statusname = @"All";
+//            self.label_filter.text = str_statusname;
+//            if(self.offset==0)
+//            {
+//                self.table_order.hidden = true;
+//
+//                self.mum.center = self.view.center;
+//
+//                self.mum.hidden = false;
+//                [self.mum startAnimating];
+//            }
+//            self.label_net_err.hidden=true;
+//
+//        });
+////    });
+////    dispatch_async(self.loading_queue, ^{
+//        if(self.isrefreshing)
+//            return;
+//        self.isrefreshing=true;
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//        NSMutableArray* arr_status = [[NSMutableArray alloc] init];
+//
+//        //    NSMutableArray* arr_statusname = [[NSMutableArray alloc] init];
+//        int count = [[self.status_cadedate valueForKey:@"count"] intValue];
+//        for(int i=0;i<count;i++)
+//        {
+//            NSDictionary* val_json =[self.status_cadedate objectForKey:[NSString stringWithFormat:@"val_%d",i]];
+//            int check = [[val_json valueForKey:@"check"] intValue];
+//            if(check==1)
+//            {
+//                [arr_status addObject:[NSString stringWithFormat:@"%@",[val_json valueForKey:@"value_id"]]];
+//                //            [arr_statusname addObject:[NSString stringWithFormat:@"%@",[val_json valueForKey:@"value"]]];
+//
+//                // break;
+//            }
+//        }
+//
+//        NSString * str_status = [arr_status componentsJoinedByString:@","];
+//
+//
+//
+//
+//
+//    dispatch_sync(dispatch_get_main_queue(), ^{
+//        BOOL isMerged = NO;
+//        AppDelegate *appDelegate = nil;
+//        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
+//        if (appDelegate.user_type == USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeStore) {
+//            if (self.orderType == 0) {
+//                isMerged = NO;
+//            } else {
+//                isMerged = YES;
+//            }
+//        }
+//
+//        [RANetwork request_orderlist:self.offset limit:self.limit keywords:self.keywords status:str_status customer:self.customer_id is_merged:isMerged completionHandler:^(NSMutableDictionary *result) {
+//            NSMutableDictionary* content=result;
+//
+//
+//
+//
+//
+//
+//            [self.mum stopAnimating];
+//            self.isrefreshing=false;
+//            if (self.dataOperationQueue.operationCount > 1) { // 队列后面还有操作
+//                return ;
+//            }
+//            int result_code=[[content valueForKey:@"result"] intValue];
+//
+//            if(result_code==2||result_code==0)
+//            {
+//
+//
+//                int count = [[content valueForKey:@"count" ] intValue] ;
+//
+//
+//                self.time_zone = [content valueForKey:@"time_zone" ];
+//                self.offset += count;
+//                for(int i=0;i<count;i++)
+//                {
+//
+//                    NSDictionary* objmsg = [content objectForKey:[NSString stringWithFormat:@"item_%d",i]];
+//                    [self.content_data addObject:[NSMutableDictionary dictionaryWithDictionary:objmsg]];
+//
+//                }
+//                if(count<self.limit)
+//                {
+//
+//                    //                    int i =self.btnrefresh.state;
+//                    self.load_more_hint=@"All loaded";
+//                    //                    self.btnrefresh.titleLabel.text =NSLocalizedString(@"no_more", nil);
+//                    //                    [self.btnrefresh setTitle:@"No more" forState:UIControlStateNormal];
+//                }
+//                else
+//                {
+//                    self.load_more_hint=@"Load more...";
+//                    //                    self.btnrefresh.enabled = true;
+//                    //                    self.btnrefresh.titleLabel.text =NSLocalizedString(@"load_more",nil);
+//                    //                    [self.btnrefresh setTitle:@"Load more" forState:UIControlStateNormal];
+//                }
+//
+//
+//                self.table_order.hidden = false;
+//                self.reset_result=false;
+//                [self.table_order reloadData ];
+//            }
+//            else if(result_code==RESULT_NET_ERROR &&self.offset==0)
+//            {
+//                self.label_net_err.hidden=false;
+//                self.table_order.hidden = true;
+//            }
+//            else
+//            {
+//                [RAUtils message_alert:[content valueForKey:@"err_msg"]  title:@"Loading Order List" controller:self] ;
+//            }
+//
+//
+//
+//
+//
+//
+//        }];
+//
+//    });
+//
+////
+////        NSMutableDictionary* content=nil;
+////        content=[[RANetwork request_OrderList:self.offset limit : self.limit keywords:self.keywords status:str_status customer:self.customer_id is_merged:isMerged] mutableCopy];
+////
+////
+////        dispatch_sync(dispatch_get_main_queue(), ^{
+////
+////
+////
+////
+////
+////            [self.mum stopAnimating];
+////            self.isrefreshing=false;
+////            if (self.dataOperationQueue.operationCount > 1) { // 队列后面还有操作
+////                return ;
+////            }
+////            int result=[[content valueForKey:@"result"] intValue];
+////
+////            if(result==2||result==0)
+////            {
+////
+////
+////                int count = [[content valueForKey:@"count" ] intValue] ;
+////
+////
+////                self.time_zone = [content valueForKey:@"time_zone" ];
+////                self.offset += count;
+////                for(int i=0;i<count;i++)
+////                {
+////
+////                    NSDictionary* objmsg = [content objectForKey:[NSString stringWithFormat:@"item_%d",i]];
+////                    [self.content_data addObject:[NSMutableDictionary dictionaryWithDictionary:objmsg]];
+////
+////                }
+////                if(count<self.limit)
+////                {
+////
+////                    //                    int i =self.btnrefresh.state;
+////                    self.load_more_hint=@"All loaded";
+////                    //                    self.btnrefresh.titleLabel.text =NSLocalizedString(@"no_more", nil);
+////                    //                    [self.btnrefresh setTitle:@"No more" forState:UIControlStateNormal];
+////                }
+////                else
+////                {
+////                    self.load_more_hint=@"Load more...";
+////                    //                    self.btnrefresh.enabled = true;
+////                    //                    self.btnrefresh.titleLabel.text =NSLocalizedString(@"load_more",nil);
+////                    //                    [self.btnrefresh setTitle:@"Load more" forState:UIControlStateNormal];
+////                }
+////
+////
+////                self.table_order.hidden = false;
+////                self.reset_result=false;
+////                [self.table_order reloadData ];
+////            }
+////            else if(result==RESULT_NET_ERROR &&self.offset==0)
+////            {
+////                self.label_net_err.hidden=false;
+////                self.table_order.hidden = true;
+////            }
+////            else
+////            {
+////                [RAUtils message_alert:[content valueForKey:@"err_msg"]  title:@"Loading Order List" controller:self] ;
+////            }
+////
+////
+////
+////
+////        });
+////
+//
+////    });
+}
+-(void) loadpage
+{
+    __weak typeof(self) weakself = self;
+    NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
+        
+        if (weakself) {
+            __strong typeof(weakself) strongself = weakself;
+            [strongself operation_loadPage];
+        }
+        
+    }];
+    
+    [self.dataOperationQueue addOperation:operation];
+    
+}
+
+- (void)loadmore
+{
+    //    self.btnrefresh.enabled = NO;
+    //    self.btnrefresh.titleLabel.text =NSLocalizedString(@"loading",nil);
+    
+    //    [self.btnrefresh setTitle:@"Loading..." forState:UIControlStateNormal];
+    [self loadpage];
+}
+//-(void)changeCell
+//{
+////    UIRefreshControl *reF = (UIRefreshControl *)[self.view viewWithTag:200];
+////    reF.attributedTitle = [[NSAttributedString alloc]initWithString:@"refreshing"];
+//    [self performSelector:@selector(loadmore) withObject:nil afterDelay:1];
+//    DebugLog(@"refresh!!!!!!!!");
+//
+//}
+
+-(void) neworder
+{
+    
+    __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Create Order" completion:^{
+        [RANetwork request_create_order:^(NSMutableDictionary *result) {
+                NSMutableDictionary* return_json =result;
+                
+                [waitalert dismissViewControllerAnimated:YES completion:^{
+                    if([[return_json valueForKey:@"result"] intValue]==2)
+                    {
+                        int result=[[return_json valueForKey:@"result"] intValue];
+                        if(result==2)
+                        {
+                            //successed.
+                            
+                            NSString* order_code = [return_json valueForKey:@"orderCode"];
+                            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+                            appDelegate.order_code = order_code;
+                            appDelegate.order_status = [[return_json valueForKey:@"orderStatus"] intValue];
+                            
+                            
+        #ifdef RA_NOTIFICATION
+                            [ActiveViewController Notify:@"CartViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+        #else
+                            MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
+                            [main_vc reloadCart:true immediately:false];
+        #endif
+                            
+                            [self ReloadData];
+                            
+                            
+                            //     [self performSelector:@selector(loadpage) withObject:nil afterDelay:1];
+                            //    [self loadpage];
+                            
+                            
+                            //                    if(self.shopCartBlock!=nil)
+                            //                    {
+                            //                        UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
+                            //
+                            //
+                            //                        CGRect iv_rect = CGRectMake(self.btnaddCart.center.x-50, self.btnaddCart.center.y-50, 100, 100);
+                            //                        UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
+                            //                        iv.image = img;
+                            //                        //                        [self.contentView addSubview:iv];
+                            //                        self.shopCartBlock(iv);
+                            //
+                            //                    }
+                            
+                        }
+                    }
+                    else
+                    {
+                        [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Create Order" controller:self] ;
+                    }
+                }];
+        //        [waitalert dismissViewControllerAnimated:YES completion:nil];
+                
+                
+                
+                
+                
+                
+                
+                
+            }];
+
+    }];
+        
+//    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+//
+//        NSDictionary* return_json = [RANetwork new_Order];
+//
+//        dispatch_async(dispatch_get_main_queue(), ^{
+//            [waitalert dismissViewControllerAnimated:YES completion:nil];
+//
+//
+//            if([[return_json valueForKey:@"result"] intValue]==2)
+//            {
+//                int result=[[return_json valueForKey:@"result"] intValue];
+//                if(result==2)
+//                {
+//                    //successed.
+//
+//                    NSString* order_code = [return_json valueForKey:@"orderCode"];
+//                    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//                    appDelegate.order_code = order_code;
+//                    appDelegate.order_status = [[return_json valueForKey:@"orderStatus"] intValue];
+//
+//
+//#ifdef RA_NOTIFICATION
+//                    [ActiveViewController Notify:@"CartViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+//#else
+//                    MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
+//                    [main_vc reloadCart:true immediately:false];
+//#endif
+//
+//                    [self ReloadData];
+//
+//
+//                    //     [self performSelector:@selector(loadpage) withObject:nil afterDelay:1];
+//                    //    [self loadpage];
+//
+//
+//                    //                    if(self.shopCartBlock!=nil)
+//                    //                    {
+//                    //                        UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
+//                    //
+//                    //
+//                    //                        CGRect iv_rect = CGRectMake(self.btnaddCart.center.x-50, self.btnaddCart.center.y-50, 100, 100);
+//                    //                        UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
+//                    //                        iv.image = img;
+//                    //                        //                        [self.contentView addSubview:iv];
+//                    //                        self.shopCartBlock(iv);
+//                    //
+//                    //                    }
+//
+//                }
+//            }
+//            else
+//            {
+//                [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Create Order" controller:self] ;
+//            }
+//
+//
+//
+//
+//        });
+//    });
+}
+//#pragma mark - UIAlertViewDelegate
+//// Called when a button is clicked. The view will be automatically dismissed after this call returns
+//- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
+//{
+//    if(buttonIndex!=alertView.cancelButtonIndex)
+//    {
+//        AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//
+//        if(appDelegate.order_code && appDelegate.order_code.length>0)
+//        {
+////            appDelegate.order_code= nil;
+////            [appDelegate SetSo:nil];
+//
+//            if (appDelegate.user_type == USER_ROLE_EMPLOYEE) {
+//                //     MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
+//                ContactListViewController* cvc = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
+//                cvc.showNavibar = true;
+//                cvc.contact_type = @"Sales_Order_Customer";
+//                cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
+//
+//                    appDelegate.contact_id=[value valueForKey:@"customer_cid"];
+//                    appDelegate.customerInfo = value;
+//
+//                    self.norefresh = true;
+//                    [self neworder];
+//
+//
+//
+//                    //    [main_vc checklogin:true];
+//                    //            [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
+//
+//                    //
+//                    //                if(self.returnValue)
+//                    //                    self.returnValue(value);
+//                };
+//
+//                cvc.onCancel = ^(){
+//                    self.norefresh = true;
+//                    if(appDelegate.customerInfo==nil)
+//                    {
+//                        [RAUtils message_alert:@"Cannot create order without cursomer infomation." title:@"" controller:self];
+//                    }
+//                    else
+//                    {
+//                        [self neworder];
+//                    }
+//                    //  [main_vc checklogin:true];
+//                };
+//                cvc.onReset = ^(){
+//                    //   [main_vc checklogin:true];
+//                };
+//
+//                [self.navigationController pushViewController:cvc animated:true];
+//            }
+//            else if (appDelegate.user_type == USER_ROLE_CUSTOMER){
+//                [self neworder];
+//            }
+//
+//        }
+//        else
+//        {
+//            //create new;
+//
+//            if(appDelegate.customerInfo==nil)// select contact if current contact not exist
+//            {
+//                MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
+//                ContactListViewController* cvc = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
+//                cvc.showNavibar = true;
+//                cvc.contact_type = @"Sales_Order_Customer";
+//                cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
+//
+//                    appDelegate.contact_id=[value valueForKey:@"customer_cid"];
+//                    appDelegate.customerInfo = value;
+//
+//
+//                    if(appDelegate.order_code==nil)
+//                        [self neworder];
+//
+//                    //   [main_vc checklogin:true];
+//                    //            [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
+//
+//                    //
+//                    //                if(self.returnValue)
+//                    //                    self.returnValue(value);
+//                };
+//
+//                cvc.onCancel = ^(){
+//
+//                    [RAUtils message_alert:@"Cannot create order without cursomer infomation." title:@"" controller:self];
+//
+//
+//
+//                };
+//                cvc.onReset = ^(){
+//                    [main_vc checklogin:true];
+//                };
+//
+//                [self.navigationController pushViewController:cvc animated:true];
+//            }
+//            else
+//            {
+//                [self neworder];
+//            }
+//        }
+//
+//    }
+//}
+#pragma mark - Table view data source
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
+{
+    if(tableView==self.table_order)
+    return 66;
+    else
+        return 100;
+        
+}
+
+//- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
+//{
+//    return 0;
+//}
+//- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
+//{
+//    return 0;
+//}
+//- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
+//{
+//        UIView* myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 0.0001)];
+//    return myView;
+//
+//}
+
+- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
+{
+    if(tableView==self.table_order)
+    {
+        NSString* value =[DefaultAppearance get_noneappearance_value:@"DefaultTableHeaderView" valuename:@"title_text_color"];
+        
+        if(value==nil)
+            value=@"";
+        unsigned long color = strtoul([value UTF8String],0,16);
+        
+        DefaultTableHeaderView* myView = [[DefaultTableHeaderView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 0.0001)];
+        //  myView.backgroundColor =  UIColorFromRGB(0x996633);
+        myView.layer.shadowPath =[UIBezierPath bezierPathWithRect:myView.bounds].CGPath;
+        myView.layer.shadowColor = [UIColor blackColor].CGColor;
+        myView.layer.shadowOffset = CGSizeMake(0, 0);
+        myView.layer.shadowOpacity = 0.5;
+        myView.layer.shadowRadius = 2.0;
+        
+        
+        UILabel *statuslabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 11, 130, 22)];
+        statuslabel.textColor=UIColorFromRGB(color);
+        statuslabel.backgroundColor = [UIColor clearColor];
+        statuslabel.text=NSLocalizedString(@"Status", nil);
+        [statuslabel sizeToFit];
+        [myView addSubview:statuslabel];
+        
+//        UILabel *solabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 21, 130, 22)];
+//        solabel.textColor=UIColorFromRGB(color);
+//        solabel.backgroundColor = [UIColor clearColor];
+//        solabel.text=NSLocalizedString(@"SO#", nil);
+//        [solabel sizeToFit];
+//        [myView addSubview:solabel];
+        
+//        UILabel *userlabel = [[UILabel alloc] initWithFrame:CGRectMake(165, 21, 125, 22)];
+//        userlabel.textColor=UIColorFromRGB(color);
+//        userlabel.backgroundColor = [UIColor clearColor];
+//        userlabel.text=NSLocalizedString(@"Sales rep", nil);
+//        [userlabel sizeToFit];
+//        [myView addSubview:userlabel];
+        
+        UILabel *creatorlabel = [[UILabel alloc] initWithFrame:CGRectMake(165, 11, 125, 22)];
+        creatorlabel.textColor=UIColorFromRGB(color);
+        creatorlabel.backgroundColor = [UIColor clearColor];
+        creatorlabel.text=NSLocalizedString(@"Create by", nil);
+        [creatorlabel sizeToFit];
+        [myView addSubview:creatorlabel];
+        
+        UILabel *contactlabel = [[UILabel alloc] initWithFrame:CGRectMake(296, 11, 150, 22)];
+        
+        contactlabel.textColor=UIColorFromRGB(color);
+        contactlabel.backgroundColor = [UIColor clearColor];
+        contactlabel.text=NSLocalizedString(@"Contact", nil);
+        [contactlabel sizeToFit];
+        [myView addSubview:contactlabel];
+        
+        
+        
+        //
+        //    UILabel *modellabel = [[UILabel alloc] initWithFrame:CGRectMake(424, 11, 52, 22)];
+        //    modellabel.textColor=[UIColor whiteColor];
+        //    modellabel.backgroundColor = [UIColor clearColor];
+        //    modellabel.text=NSLocalizedString(@"Model", nil);
+        //    [modellabel sizeToFit];
+        //    [myView addSubview:modellabel];
+        
+        //    UILabel *modellabel = [[UILabel alloc] initWithFrame:CGRectMake(self.table_order.frame.size.width-276, 2, 100, 22)];
+        //    modellabel.autoresizingMask=UIViewAutoresizingFlexibleLeftMargin;
+        //    modellabel.textColor=[UIColor whiteColor];
+        //    modellabel.backgroundColor = [UIColor clearColor];
+        //    modellabel.text=NSLocalizedString(@"Items/QTY", nil);
+        //    [modellabel sizeToFit];
+        //    [myView addSubview:modellabel];
+        
+        
+        
+        AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+        
+        UILabel *pricelabel = nil;
+        if(appDelegate.user_type==USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeStore && self.orderType==1)
+            pricelabel=[[UILabel alloc] initWithFrame:CGRectMake(/*492*/self.table_order.frame.size.width-276, 2, 100, 22)];
+        else
+            pricelabel=[[UILabel alloc] initWithFrame:CGRectMake(/*492*/self.table_order.frame.size.width-276, 11, 100, 22)];
+        pricelabel.autoresizingMask=UIViewAutoresizingFlexibleLeftMargin;
+        pricelabel.textColor=UIColorFromRGB(color);
+        pricelabel.backgroundColor = [UIColor clearColor];
+        pricelabel.text=NSLocalizedString(@"Order Total", nil);
+        [pricelabel sizeToFit];
+        [myView addSubview:pricelabel];
+        
+        
+        if(appDelegate.user_type==USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeStore && self.orderType==1)
+        {
+            UILabel *polabel = nil;
+            polabel=[[UILabel alloc] initWithFrame:CGRectMake(/*492*/self.table_order.frame.size.width-276, 21, 100, 22)];
+            polabel.autoresizingMask=UIViewAutoresizingFlexibleLeftMargin;
+            polabel.textColor=UIColorFromRGB(color);
+            polabel.backgroundColor = [UIColor clearColor];
+            polabel.text=NSLocalizedString(@"PO#", nil);
+            [polabel sizeToFit];
+            [myView addSubview:polabel];
+        }
+        
+        
+        UILabel *timelabel = [[UILabel alloc] initWithFrame:CGRectMake(self.table_order.frame.size.width-163/*605*/,11, 148, 22)];
+        timelabel.autoresizingMask=UIViewAutoresizingFlexibleLeftMargin;
+        timelabel.textColor=UIColorFromRGB(color);
+        timelabel.backgroundColor = [UIColor clearColor];
+        if(self.time_zone==nil)
+            timelabel.text=@"Create time";
+        else
+            timelabel.text=[NSString stringWithFormat:@"Create time (%@)",self.time_zone];
+        [timelabel sizeToFit];
+        [myView addSubview:timelabel];
+        
+        myView.autoresizesSubviews=true;
+        // [myView setAutoresizingMask:UIViewAutoresizingFlexibleWidth  | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin];
+        
+        
+        
+        
+        //    modellabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
+        //    pricelabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
+        //    timelabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
+        myView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
+        //
+        return myView;
+    }
+    else return nil;
+    
+}
+- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
+{
+    return 44;
+}
+//
+//- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
+//    if(section==0)
+//        return nil;
+//    else
+//        return @"detail section";
+//}
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
+{
+    return 1;
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    if(tableView==self.table_order)
+    {
+        return self.content_data.count;
+    // NSDictionary * item_json = [self.content_data objectForKey:@"items"];
+//    if( self.content_data.count==0)
+//        return 0;
+//    return self.content_data.count+1;
+    }
+    else
+    {
+        AppDelegate* Appdelegate=(AppDelegate*)[UIApplication sharedApplication].delegate;
+        return Appdelegate.uploadManager.arr_queue.count;
+    }
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    if(tableView==self.table_order)
+    {
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    
+    //    if(tableView==self.itemListTable)
+    //    {
+    
+    //    if(indexPath.row>self.content_data.count)
+    //    {
+    //        int debug=true;
+    //    }
+    //   DebugLog(@"row %ld",(long)indexPath.row);
+//    if(indexPath.row==self.content_data.count)
+//    {
+//        UITableViewCell *moreCell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"mores"];
+//        UILabel *moreDataLabel=[[UILabel alloc] init];
+//
+//        moreDataLabel.tag=200;
+//        moreDataLabel.text=self.load_more_hint;
+//        [moreDataLabel setFont:[UIFont systemFontOfSize:14.0f]];
+//        [moreDataLabel setTextAlignment:NSTextAlignmentCenter];
+//        moreDataLabel.frame=CGRectMake(0, 10, self.table_order.bounds.size.width, 20);
+//        [moreDataLabel setBackgroundColor:[UIColor clearColor]];
+//        moreDataLabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
+//        //        [moreDataLabel addTarget:self action:@selector(changeCell) forControlEvents:UIControlEventValueChanged];
+//
+//        [moreCell.contentView addSubview:moreDataLabel];
+//        if([self.load_more_hint isEqualToString:@"Load more..."])
+//            [self performSelector:@selector(loadmore) withObject:nil afterDelay:1];
+//        //        DebugLog(@"更多...");
+//        moreCell.backgroundColor = [UIColor whiteColor];
+//        return moreCell;
+//    }
+//    else
+    {
+        NSString *CellIdentifier = @"OrderListTableViewCell";
+        OrderListTableViewCell * cell= [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
+        
+        NSString* so= [self.content_data[indexPath.row] valueForKey:@"so#"];
+        NSString* price= [self.content_data[indexPath.row] valueForKey:@"price"];
+        if(appDelegate.can_see_price&&appDelegate.price_hidden==false)
+        {
+            
+        }
+        else
+        {
+            price=nil;
+        }
+        
+        NSInteger statusCode = [[self.content_data[indexPath.row] valueForKey:@"orderStatus"] integerValue];
+        NSString* purchase_time= [self.content_data[indexPath.row] valueForKey:@"purchase_time"];
+        NSString* status = [self.content_data[indexPath.row] valueForKey:@"order_status"] ;
+        if (appDelegate.user && appDelegate.user_type == USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeStore) {
+            status = [ERPUtils orderStatus:statusCode];
+        }
+        NSString* customer_name = [self.content_data[indexPath.row] valueForKey:@"customer_name"];
+        NSString* model_count = [self.content_data[indexPath.row] valueForKey:@"model_count"];
+        NSString* sales = [self.content_data[indexPath.row] valueForKey:@"sales_rep"];
+        NSString* creator = [self.content_data[indexPath.row] valueForKey:@"create_by"];
+        NSString *po = [self.content_data[indexPath.row] valueForKey:@"po_id"];
+        
+        CGRect price_frame = cell.labelprice.frame;
+        if (appDelegate.user_type == USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeStore && self.orderType == 1) {
+            
+            cell.label_po.hidden = NO;
+            price_frame.origin.y = 5;
+            cell.label_po.text = po;
+            
+        } else {
+            
+            cell.label_po.hidden = YES;
+            price_frame.origin.y = 21;
+        }
+        cell.labelprice.frame = price_frame;
+        cell.label_so.text=so;
+        cell.labelprice.text=price;
+        cell.label_date.text=purchase_time;
+        cell.label_contact.text=customer_name;
+        cell.label_model.text = model_count;
+        
+        cell.label_sales.text = sales;
+        cell.label_creator.text = creator;
+        
+        cell.label_status.text=status;
+        cell.backgroundColor = [UIColor whiteColor];
+        return cell;
+    }
+    }
+    else
+    {
+        AppDelegate* Appdelegate=(AppDelegate*)[UIApplication sharedApplication].delegate;
+        
+
+        
+        
+        {
+            NSString *CellIdentifier = @"UploadCell";
+            UploadCell * cell= [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
+            
+            
+            NSDictionary * item_json = Appdelegate.uploadManager.arr_queue[indexPath.row];
+    //
+    //        if (cell.operation) {
+    //            cell.operation.updateUI = nil;
+    //        }
+
+            RAUploadOperation* op = item_json[@"operation"];
+
+            
+
+            NSString* status =nil;
+            switch ([item_json[@"status"] intValue]) {
+                case TaskStatusStart:
+                    status=@"uploading";
+                    break;
+                case TaskStatusStop:
+                    status=@"stop";
+                    break;
+                case TaskStatusError:
+                    status=@"warning";
+                    break;
+                case TaskStatusWait:
+                    status=@"waiting";
+                    break;
+                case TaskStatusFinish:
+                    status=@"finish";
+                    break;
+                    
+                default:
+                    status=@"warning";
+                    break;
+            }
+            
+            double progress =[item_json[@"progress"] doubleValue];
+            cell.progress=progress;
+            cell.name=item_json[@"file"];
+            cell.state=  status;
+            cell.errorMsg = item_json[@"msg"];
+            
+            
+            
+       
+            //        __block RAUploadOperation* block_op = op;
+    //        __block UploadCell* block_cell = cell;
+    //        __block NSIndexPath* block_index = indexPath;
+    //        long idx = indexPath.row;
+    //        __weak typeof(self) weakself = self;
+            
+            op.updateUI=^(){
+                
+                
+    //            blockDebugLog(@"updateUI @ row%ld %p \n operation %p",idx,block_cell,block_op);
+                
+                NSString* status =nil;
+                switch ([item_json[@"status"] intValue]) {
+                    case TaskStatusStart:
+                        status=@"uploading";
+                        break;
+                    case TaskStatusStop:
+                        status=@"stop";
+                        break;
+                    case TaskStatusError:
+                        status=@"warning";
+                        break;
+                    case TaskStatusWait:
+                        status=@"waiting";
+                        break;
+                    case TaskStatusFinish:
+                        status=@"finish";
+                        break;
+                        
+                    default:
+                        status=@"warning";
+                        break;
+                }
+                double progress =[item_json[@"progress"] doubleValue];
+                cell.progress=progress;
+                cell.name=item_json[@"file"];
+                cell.state=  status;
+                cell.errorMsg = item_json[@"msg"];
+                
+            };
+            DebugLog(@"%@ set update ui",item_json[@"file"]);
+    //        cell.operation = op;
+            //
+            return cell;
+        }
+        
+    }
+}
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    if(tableView==self.table_order)
+    {
+        
+        
+        
+        
+        RASingleton.sharedInstance.enable_OfflineOrder = true;
+        if (tableView.isEditing) { // 编辑模式下不响应
+            return;
+        }
+        //
+        if(indexPath.row==self.content_data.count)
+            return;
+        
+        
+        
+        UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Open Saved Order" message:nil preferredStyle:UIAlertControllerStyleAlert];
+        UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Open" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
+            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+            
+            
+            NSMutableDictionary* orderitem =self.content_data[indexPath.row];
+            NSString* ordercode =orderitem[@"order_code"];
+            appDelegate.order_code = ordercode;
+            
+            [appDelegate setUser:orderitem[@"create_by"]];
+//            appDelegate.user =;
+            //        appDelegate.custo orderitem[@"customer_name"]
+            appDelegate.user_type = USER_ROLE_EMPLOYEE;
+            appDelegate.can_set_cart_price = true;
+            appDelegate.can_see_price = true;
+            
+
+            NSMutableDictionary * params= [[NSMutableDictionary alloc] init];
+            
+            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+            NSString *documents = [paths objectAtIndex:0];
+            
+            
+            
+            NSString *orderdir = [documents stringByAppendingPathComponent:appDelegate.order_code];
+            //        NSMutableDictionary* order= [[RAUtils dictfromfile:[orderdir stringByAppendingPathComponent:@"order.json"]] mutableCopy];
+            NSMutableDictionary* cart= [[RAUtils dictfromfile:[orderdir stringByAppendingPathComponent:@"cart.json"]] mutableCopy];
+            NSMutableDictionary* contact= [[RAUtils dictfromfile:[orderdir stringByAppendingPathComponent:@"contact.json"]] mutableCopy];
+            //        NSMutableDictionary* app= [[RAUtils dictfromfile:[orderdir stringByAppendingPathComponent:@"app.json"]] mutableCopy];
+            
+            [appDelegate setCustomerInfo: contact];
+            RASingleton.sharedInstance.scan_cart = cart;
+          
+            
+            [appDelegate update_count_mark];
+            [appDelegate updateScanButton:true];
+            [appDelegate SetMode:@""];
+            
+            CreateOrderViewController * orderinfoVC = [[CreateOrderViewController alloc] initWithNibName:@"CommonEditor.iPad" bundle:nil];
+            
+            
+            
+            orderinfoVC.disable_dropdown_refresh=true;
+            orderinfoVC.url_type = URL_FILE;
+            orderinfoVC.request_url=[orderdir stringByAppendingPathComponent:@"order.json"];
+            
+            orderinfoVC.params = params;
+            orderinfoVC.title=@"";
+            //            orderinfoVC.delegate=self;
+            //
+            //    if(checked.count==count)
+            //    {
+            //    orderinfoVC.have_tail = true
+            //    }
+            
+            [self.navigationController pushViewController:orderinfoVC animated:true];
+            
+            return;
+            
+
+        }];
+
+        
+
+        UIAlertAction *alertCancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
+            
+        }];
+        
+        [alertControl addAction:actionOne];
+        
+//        [alertControl addAction:alertthree];
+        [alertControl addAction:alertCancel];
+        
+        [self presentViewController:alertControl animated:YES completion:nil];
+        
+        
+        
+    
+        
+        //    NSString* orderid= [ valueForKey:@"order_id"];
+        
+        
+        
+    }
+}
+
+
+#pragma mark - searchBar delegate;
+- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
+{
+    self.keywords=searchBar.text;
+    //        self.offset = 0;
+    //        [self.content_data removeAllObjects];
+    self.reset_result=true;
+    [self loadpage];
+}
+- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
+{
+    
+    if([searchText isEqualToString:@""] && !self.reset)
+    {
+        DebugLog(@"clear");
+        self.reset=true;
+        self.keywords=nil;
+        
+        //        self.offset = 0;
+        //        [self.content_data removeAllObjects];
+        self.reset_result=true;
+        [self loadpage];
+    }
+    else
+        self.reset = false;
+}
+
+
+
+
+#pragma mark 在滑动手势删除某一行的时候,显示出更多的按钮
+
+- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
+
+{
+    
+    // 添加一个删除按钮
+    
+    //    self.indexPath=indexPath;
+    
+    if(tableView==self.table_order)
+    {
+    if(indexPath.row==self.content_data.count)
+        return @[];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    NSString* so= [self.content_data[indexPath.row] valueForKey:@"so#"];
+    NSString* order_code= [self.content_data[indexPath.row] valueForKey:@"order_code"];
+//    NSString* order_status= [self.content_data[indexPath.row] valueForKey:@"order_status"];
+//    NSInteger statusCode = [[self.content_data[indexPath.row] valueForKey:@"orderStatus"] integerValue];
+    
+    if(appDelegate.user_type==USER_ROLE_EMPLOYEE || (appDelegate.user_type==USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeCustomer)) {
+
+        UITableViewRowAction *deleteRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"Delete" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
+            
+            DebugLog(@"delete click");
+            
+            
+            NSString * title =@"Are you sure to delete order?";
+            
+            UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:title message:nil preferredStyle:UIAlertControllerStyleAlert];
+            //block代码块取代了delegate
+            
+            
+            //        [alertControl addTextFieldWithConfigurationHandler:^(UITextField *textField) {
+            //            textField.text = self.save_name;
+            //
+            //
+            //        }];
+            
+            UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
+        
+                    [OLDataProvider deleteScanOrder:order_code];
+                    [appDelegate closeOrder];
+                    
+                    
+          //
+
+                    
+//                    [self prepareReturn:nil];
+                    
+                    
+                    
+//                    [self.navigationController popViewControllerAnimated:true];
+//                    [((MainViewController*)appDelegate.main_vc) switchToOrder];
+       
+            
+                return;
+            }];
+            
+            UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"No" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
+                DebugLog(@"Cancel");
+            }];
+            [alertControl addAction:actionOne];
+            
+            [alertControl addAction:alertthree];
+            
+            //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
+            
+            
+            [self presentViewController:alertControl animated:YES completion:nil];
+            
+            
+            
+            
+            
+            
+            
+        }];
+        deleteRowAction.backgroundColor = UIColorFromRGB(0x336699);
+        
+        // 添加一个编辑按钮
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+//
+//        if(/*[order_status isEqualToString:@"Saved Order"]*/statusCode == 1&&appDelegate.can_cancel_order)
+//            return @[cancelAction];
+//
+//        else
+//        {
+            
+            {
+                NSMutableArray* arr=[@[] mutableCopy];
+                if(appDelegate.can_delete_order)
+                    [arr addObject:deleteRowAction];
+//                if(appDelegate.can_cancel_order)
+//                    [arr addObject:cancelAction];
+                return arr;
+            }
+//        }
+        
+        
+        
+    }
+    
+    return @[];
+    }
+    else
+    {
+        AppDelegate* Appdelegate=(AppDelegate*)[UIApplication sharedApplication].delegate;
+                   NSMutableDictionary * task = Appdelegate.uploadManager.arr_queue[indexPath.row];
+        
+        
+        __weak typeof(self) weakself = self;
+        UITableViewRowAction *startAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"Restart"handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
+            
+            if (Appdelegate.uploadManager.onlyWiFi && Appdelegate.uploadManager.reach.currentReachabilityStatus != ReachableViaWiFi) {
+                [weakself.view makeToast:@"Current Network is not WiFi" duration:3.0 position:CSToastPositionCenter];
+                [tableView reloadRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationMiddle];
+                return ;
+            }
+            DebugLog(@"Start click");
+            task[@"retry"]=[NSNumber numberWithInt:0];
+            [Appdelegate.uploadManager startTask:task];
+            
+            [tableView reloadRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationMiddle];
+            
+            
+         
+            
+        }];
+        
+        
+        startAction.backgroundColor = UIColorFromRGB(0xff9933);
+        
+        
+        UITableViewRowAction *removeAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"Remove" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
+            
+            
+            [Appdelegate.uploadManager removeTask:task];
+            
+          //  [tableView reloadRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationMiddle];
+            
+        }];
+        
+        removeAction.backgroundColor = UIColorFromRGB(0x9BBF5A);
+        
+        
+      
+        
+      //   UIColorFromRGB(0x336699);
+        
+        
+        //    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+        
+        switch ([task[@"status"] intValue]) {
+
+            case TaskStatusFinish:
+                return @[removeAction];
+            
+            case TaskStatusError:
+                
+                return @[startAction,removeAction];
+                
+                case TaskStatusStop:
+                return @[startAction];
+            default:
+                return nil;
+                break;
+        }
+        
+        
+        
+    }
+    
+}
+
+- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
+    
+    
+    
+    if(tableView==self.table_order)
+        
+    {
+    if(indexPath.row==self.content_data.count)
+        return NO;
+    
+//    if(self.init_style==OL_OPEN)
+//        return NO;
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    NSString* order_status= [self.content_data[indexPath.row] valueForKey:@"order_status"];
+    NSInteger statusCode = [[self.content_data[indexPath.row] valueForKey:@"orderStatus"] integerValue];
+    
+    if(appDelegate.user_type==USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeStore) {
+        // saved && ((type==0 && merge_permission) || type == 1 || can_cancel)
+
+        BOOL isSavedOrder = /*[order_status isEqualToString:@"Saved Order"]*/statusCode == 1;
+        switch (self.orderType) {
+            case 0:{ // Shop Order
+                
+                if (!isSavedOrder) {
+                    return NO;
+                } else {
+                    if ([RASingleton sharedInstance].permissions_merge_order || appDelegate.can_cancel_order) {
+                        return YES;
+                    } else {
+                        return NO;
+                    }
+                }
+                
+            }
+                break;
+            case 1:{ // Sales Order
+                if (isSavedOrder && appDelegate.can_cancel_order) {
+                    return YES;
+                }
+                return NO;
+            }
+                break;
+                
+            default:
+                break;
+        }
+        
+    } else {
+        return YES;
+    }
+    return YES;
+    }
+    else
+    {
+        AppDelegate* Appdelegate=(AppDelegate*)[UIApplication sharedApplication].delegate;
+               NSDictionary * item_json = Appdelegate.uploadManager.arr_queue[indexPath.row];
+        
+        bool ret=false;
+        switch ([item_json[@"status"] intValue]) {
+            case TaskStatusStart:
+            case TaskStatusWait:
+            
+                ret=false;
+                break;
+            case TaskStatusFinish:
+            case TaskStatusStop:
+            case TaskStatusError:
+            
+                ret = true;
+                break;
+            default:
+                ret=false;
+                break;
+        }
+        return ret;
+    }
+}
+
+
+
+- (UITableViewCellEditingStyle)tableView:(UITableView *)tv editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
+    
+    if(tv==self.table_order)
+    {
+    if(indexPath.row==self.content_data.count)
+        return UITableViewCellEditingStyleNone;
+    
+    bool offline_edit =[[self.content_data[indexPath.row] valueForKey:@"offline_edit"] boolValue];
+    
+//    NSString* order_status= [self.content_data[indexPath.row] valueForKey:@"order_status"];
+    NSInteger statusCode = [[self.content_data[indexPath.row] valueForKey:@"orderStatus"] integerValue];
+    if(/*![order_status isEqualToString:@"Saved Order"]&&! [order_status isEqualToString:@"Quote Saved"]*/statusCode != 1 && statusCode != 0)
+        return UITableViewCellEditingStyleNone;
+    else
+    {
+        BOOL condition = offline_edit;
+#ifdef OFFLINE_MODE
+        AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+        condition = condition || appDelegate.offline_mode==false;
+#else
+        condition = YES;
+#endif
+        if (condition)
+            return UITableViewCellEditingStyleDelete;
+        else
+            return UITableViewCellEditingStyleNone;
+    }
+    }
+    else
+        return UITableViewCellEditingStyleDelete;
+}
+/*
+ #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.
+ }
+ */
+
+#pragma mark EnumSelectViewControllerDelegate
+-(void) EnumValueChanged:(NSMutableDictionary *)value indexPath :(NSIndexPath*) indexPath
+{
+    
+    
+    self.status_cadedate = value;
+    UIApplication * app = [UIApplication sharedApplication];
+    AppDelegate *appDelegate = (AppDelegate *)[app delegate];
+    appDelegate.OrderFilter = value;
+    
+    
+    //    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
+    //    NSString *documents = [paths objectAtIndex:0];
+    //    NSString *dist_path = [documents stringByAppendingPathComponent:@"status_filter_cadedate.json"];
+    //
+    //
+    //    //    if ([[NSFileManager defaultManager] fileExistsAtPath:dist_path]) {
+    //    //
+    //    //        DebugLog(@"文件已经存在了");
+    //    //
+    //    //    }
+    //    //    else
+    //    //    {
+    //    //
+    //    //
+    //    //
+    //            //        DebugLog(@"resourceSampleImagesFolderPath=%@",resourceFolderPath);
+    //
+    //NSData *data = [NSJSONSerialization dataWithJSONObject:self.status_cadedate options:kNilOptions error:nil];
+    //
+    //            //        DebugLog(@"mainBundleFile==%@",mainBundleFile);
+    //
+    //            [[NSFileManager defaultManager] createFileAtPath:dist_path
+    //
+    //                                                    contents:data
+    //
+    //                                                  attributes:nil];
+    //
+    //    }
+    
+    
+    
+    
+    //    self.keywords=searchBar.text;
+    //    self.offset = 0;
+    //    [self.content_data removeAllObjects];
+    self.reset_result=true;
+    [self loadpage];
+    
+    //[self.btnStatusFilter setTitle:setTitle:alert ];
+    
+    
+    
+}
+
+#pragma mark - button action
+
+- (NSIndexPath *)indexPathOfDeleteOrder:(NSString *)orderID {
+    for (NSIndexPath *indexPath in self.table_order.indexPathsForSelectedRows) {
+        
+        NSString* orderid= [NSString stringWithFormat:@"%@",[self.content_data[indexPath.row] valueForKey:@"order_id"]];
+        if ([orderid isEqualToString:orderID]) {
+            return indexPath;
+        }
+    }
+    return nil;
+}
+
+- (IBAction)mergeListButtonClick:(UIBarButtonItem *)sender {
+    
+    if (!self.table_order.isEditing) {
+        
+        [RAUtils message_alert:@"You have to click select firstly then select some saved order" title:@"Warning" controller:self];
+        return;
+    }
+    
+    [self handleSelectedOrders];
+    
+    if (!self.mergeList.count) {
+        
+//        [RAUtils message_alert:@"Combine List is Empty" title:@"Warning" controller:self];
+        return;
+    }
+    
+    SelectUploadOrderViewController *mergeVC = [[UIStoryboard storyboardWithName:@"OLM" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"SelectUploadOrderViewController"];
+    
+    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:mergeVC];
+    
+    mergeVC.mergeList = self.mergeList;
+    
+    mergeVC.title = @"Combine List";
+    
+    __weak typeof(self) weakself = self;
+    
+    mergeVC.mergeBlock = ^(NSDictionary *ret) {
+      
+        
+        if (weakself) {
+            
+            __strong typeof(weakself) strongself = weakself;
+            
+            if([[ret objectForKey:@"result"]integerValue] == RESULT_TRUE) {
+                
+                [weakself.mergeList removeAllObjects];
+                [strongself.table_order endEditing:YES];
+                [strongself ReloadData];
+                
+                if ([RASingleton sharedInstance].customer_can_see_sales_Order) {
+                    
+                    [strongself openOrder:ret];
+                    
+                }
+                
+            } else {
+                
+                NSString *msg = [ret objectForKey:@"err_msg"];
+                [RAUtils message_alert:msg title:nil controller:strongself];
+            }
+        }
+        
+    };
+    
+    mergeVC.deleteBlock = ^(NSString *orderID){
+        NSIndexPath *indexPath = [weakself indexPathOfDeleteOrder:orderID];
+        [weakself.table_order deselectRowAtIndexPath:indexPath animated:YES];
+    };
+    
+    mergeVC.clearBlock = ^{
+        for (NSDictionary *order in self.mergeList) {
+            
+            NSString *order_id = [NSString stringWithFormat:@"%@",[order objectForKey:@"order_id"]];
+            NSIndexPath *indexPath = [weakself indexPathOfDeleteOrder:order_id];
+            [weakself.table_order deselectRowAtIndexPath:indexPath animated:YES];
+        }
+    };
+    
+    nav.modalPresentationStyle = UIModalPresentationFormSheet;
+    
+    [self presentViewController:nav animated:YES completion:nil];
+    
+}
+
+- (void)handleSelectedOrders {
+    
+    [self.mergeList removeAllObjects];
+    if (!self.table_order.isEditing) {
+        return;
+    }
+    for (NSIndexPath *indexPath in self.table_order.indexPathsForSelectedRows) {
+       
+        if(indexPath.row==self.content_data.count)
+            continue;
+        
+        NSString* so= [self.content_data[indexPath.row] valueForKey:@"so#"];
+        NSString* orderid= [self.content_data[indexPath.row] valueForKey:@"order_id"];
+        NSString *create_by = [self.content_data[indexPath.row] valueForKey:@"create_by"];
+        NSString *create_time = [self.content_data[indexPath.row] valueForKey:@"purchase_time"];
+        NSString *orderCode = [NSString stringWithFormat:@"%@",[self.content_data[indexPath.row] valueForKey:@"order_code"]];
+        
+        NSMutableDictionary *dic = [NSMutableDictionary dictionary];
+        
+        [dic setValue:orderid forKey:@"order_id"];
+        [dic setValue:orderCode forKey:@"order_code"];
+        [dic setValue:so forKey:@"so_id"];
+        [dic setValue:create_by forKey:@"create_by"];
+        [dic setValue:create_time forKey:@"create_time"];
+        [dic setValue:[NSNumber numberWithInteger:0] forKey:@"check"]; // 合并到
+        
+        [self.mergeList addObject:dic];
+
+    }
+    
+}
+
+- (IBAction)editOrderListButtonClick:(UIBarButtonItem *)sender {
+
+//    if ([RASingleton sharedInstance].global_lock) { // Order list 被锁
+//        [RAUtils message_alert:@"Permission Needed.\nGoto Menu -> Unlock" title:@"Warning" controller:self];
+//        return;
+//    }
+//
+//    UIImage *gray = [UIImage imageNamed:@"Combinegray"];
+//    UIImage *green = [[UIImage imageNamed:@"converttopo"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];//converttopo
+//
+//    if (self.table_order.isEditing) {
+//        [self mergeListButtonClick:nil];
+//        // 结束选择时恢复
+//        if ([RASingleton sharedInstance].customer_can_see_sales_Order && ![RASingleton sharedInstance].global_lock) { // 有查看Sales order 权限,并且app没有锁
+//            if (self.orderTypeSegmentControl.numberOfSegments == 1) {
+//                [self.orderTypeSegmentControl insertSegmentWithTitle:[NSString stringWithFormat:@"Purchase Order to %@",COMPANY_SHORT_NAME] atIndex:1 animated:YES];
+//            }
+//        }
+//
+//        self.status_cadedate = self.shop_order_filter;
+//        [self ReloadData];
+//
+//        [self.table_order setEditing:NO animated:YES];
+////        sender.title = @"Select";
+////        [self.mergeList removeAllObjects];
+//        [sender setImage:gray];
+//
+//    } else {
+//        // 选择时不能选择Sales Order
+//        if(self.orderTypeSegmentControl.numberOfSegments > 1) {
+//            [self.orderTypeSegmentControl removeSegmentAtIndex:1 animated:YES];
+//            [self changeOrderType:0];
+//        }
+//        // 切换filter
+//        NSData *data=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"status_filter_cadedate_open" ofType:@"json" ]];
+//        NSError *error=nil;
+//        self.status_cadedate = [[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error] mutableCopy];
+//        // 刷新,取Saved Order
+//        [self ReloadData];
+//
+//        [self.table_order setEditing:YES animated:YES];
+////        sender.title = @"Exit";
+//        [sender setImage:green];
+//    }
+    
+}
+
+
+- (IBAction)onSegmentChanged:(UISegmentedControl *)sender {
+
+    if(sender.selectedSegmentIndex==0)
+    {
+        self.table_order.hidden=false;
+        self.table_upload.hidden = true;
+        [self.table_order reloadData];
+    }
+    else
+    {
+        self.table_order.hidden=true;
+        self.table_upload.hidden = false;
+        [self.table_upload reloadData];
+    }
+    
+}
+
+- (void)openOrder:(NSDictionary *)order {
+    
+    if (!order) {
+        return;
+    }
+    
+    NSString *orderCode = [order objectForKey:@"orderCode"];
+    NSInteger orderStatus = [[order objectForKey:@"orderStatus"] integerValue];
+    NSString *so = [order objectForKey:@"so#"];
+    
+    __weak typeof(self) weakself = self;
+    
+    [RANetwork request_open_order:orderCode completionHandler:^(NSMutableDictionary *result) {
+        NSDictionary* order_json = result ;
+        
+        
+        if([[order_json valueForKey:@"result"] intValue]==2)
+        {
+            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+            appDelegate.order_code = orderCode;
+            appDelegate.order_status = (int)orderStatus;
+            [appDelegate SetSo:so];
+            
+            __weak MainViewController *mainVC = (MainViewController*)appDelegate.main_vc;
+            
+#ifdef RA_NOTIFICATION
+            [ActiveViewController Notify:@"CartViewController,OrderListViewController,ContactListViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+#else
+            
+            
+            [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
+            [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
+            [((MainViewController*)appDelegate.main_vc) reloadContact:true immediately:false];
+#endif
+            
+            [((MainViewController*)appDelegate.main_vc) switchToCart];
+            
+            mainVC.cartViewController.onFinishLoad=^{
+                [mainVC.cartViewController placeOrder];
+                mainVC.cartViewController.onFinishLoad=nil;
+            };
+            
+        }
+        else
+        {
+            [RAUtils message_alert:[order_json valueForKey:@"err_msg"] title:@"Open Order" controller:weakself] ;
+        }
+        
+        
+        
+        
+    }];
+//    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+//
+//        NSDictionary* order_json = [RANetwork open_Order:orderCode];
+//
+//        dispatch_async(dispatch_get_main_queue(), ^{
+//
+//            if([[order_json valueForKey:@"result"] intValue]==2)
+//            {
+//                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//                appDelegate.order_code = orderCode;
+//                appDelegate.order_status = orderStatus;
+//                [appDelegate SetSo:so];
+//
+//                __weak MainViewController *mainVC = (MainViewController*)appDelegate.main_vc;
+//
+//#ifdef RA_NOTIFICATION
+//                [ActiveViewController Notify:@"CartViewController,OrderListViewController,ContactListViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+//#else
+//
+//
+//                [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
+//                [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
+//                [((MainViewController*)appDelegate.main_vc) reloadContact:true immediately:false];
+//#endif
+//
+//                [((MainViewController*)appDelegate.main_vc) switchToCart];
+//
+//                mainVC.cartViewController.onFinishLoad=^{
+//                    [mainVC.cartViewController placeOrder];
+//                    mainVC.cartViewController.onFinishLoad=nil;
+//                };
+//
+//            }
+//            else
+//            {
+//                [RAUtils message_alert:[order_json valueForKey:@"err_msg"] title:@"Open Order" controller:weakself] ;
+//            }
+//
+//
+//
+//        });
+//    });
+
+    
+}
+
+#pragma mark - notification action
+
+- (void)changePriceType:(id)notification {
+    [self ReloadData];
+}
+
+- (void)lockOrderListNotification:(NSNotification *)notification {
+    if ([notification.name isEqual:Lock_Permission_Notification]) {
+        if (self.orderType == 1) {
+            self.orderTypeSegmentControl.selectedSegmentIndex = 0;
+//            [self changeOrderType:0];
+            [self.orderTypeSegmentControl sendActionsForControlEvents:UIControlEventValueChanged];
+        }
+        
+        if(self.orderTypeSegmentControl.numberOfSegments > 1) {
+            [self.orderTypeSegmentControl removeSegmentAtIndex:1 animated:YES];
+//            [self changeOrderType:0];
+        }
+    } else { // 解锁
+        if ([RASingleton sharedInstance].customer_can_see_sales_Order) { // 有查看Sales order 权限
+            if (self.orderTypeSegmentControl.numberOfSegments == 1 && !self.table_order.isEditing) {
+                [self.orderTypeSegmentControl insertSegmentWithTitle:[NSString stringWithFormat:@"Purchase Order to %@",COMPANY_SHORT_NAME] atIndex:1 animated:YES];
+            }
+        }
+        
+    }
+}
+
+- (void)handleUserLogin:(NSNotification *)notification {
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    self.orderType = 0;
+    if (self.table_order.isEditing) {
+        [self.table_order setEditing:NO animated:YES];
+        self.editOrderListButton.image = [UIImage imageNamed:@"Combinegray"];
+    }
+    if (appDelegate.user_type == USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeStore) {
+        self.orderTypeSegmentControl.selectedSegmentIndex = 0;
+        [RASingleton sharedInstance].customer_order_type = 0;
+        
+    }
+}
+
+- (void)reRefreshView {
+    [self.table_order reloadData];
+}
+#pragma mark - RA_NOTIFICAITON
+-(void) refresh_ui
+{
+    [self.table_order reloadData];
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    
+    if(appDelegate.can_create_order)
+    {
+        
+        
+        [self.btn_newOrder setImage:[UIImage imageNamed:@"neworder"]];
+        self.btn_newOrder.enabled = true;
+    }
+    else
+    {
+        [self.btn_newOrder setImage:nil];
+        self.btn_newOrder.enabled = false;
+    }
+}
+-(void) reload_data
+{
+    self.reset_result=true;
+    self.norefresh=true;
+    [self loadpage];
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    
+    if(appDelegate.can_create_order)
+    {
+        
+        
+        [self.btn_newOrder setImage:[UIImage imageNamed:@"neworder"]];
+        self.btn_newOrder.enabled = true;
+    }
+    else
+    {
+        [self.btn_newOrder setImage:nil];
+        self.btn_newOrder.enabled = false;
+    }
+}
+-(void) refresh_price
+{
+    [self refresh_ui];
+}
+@end

+ 15 - 0
RedAnt ERP Mobile/common/Functions/OLO/scan_cart.json

@@ -0,0 +1,15 @@
+{
+  "section_0": {
+    "title": "Model List",
+    "count": 0,
+    "available": "1"
+  },
+  "result": 2,
+  "section_count": 1,
+  "min_ver": "170127",
+  "can_see_price": true,
+  "general_note": "",
+  "cart_count": "0",
+  "mode": "Regular Mode",
+  "back_order_version":true
+}

+ 848 - 0
RedAnt ERP Mobile/common/Functions/OLO/scan_order.json

@@ -0,0 +1,848 @@
+{
+  "section_7": {
+    "item_1": {
+      "control": "text",
+      "aname": "Shipping*",
+      "value": "Shipping To Be Quoted",
+      "type": "price",
+      "align": "right",
+      "required": "false",
+      "name": "shipping"
+    },
+    "item_4": {
+      "align": "right",
+      "control": "text",
+      "value": "0.00",
+      "name": "",
+      "aname": "Total Weight"
+    },
+    "item_2": {
+      "align": "right",
+      "control": "text",
+      "value": "15.51",
+      "name": "totalPrice",
+      "type": "price",
+      "aname": "Total"
+    },
+    "hide": false,
+    "item_0": {
+      "align": "right",
+      "control": "text",
+      "value": "15.51",
+      "name": "paymentsAndCredits",
+      "type": "price",
+      "aname": "Payments/Credits"
+    },
+    "title": "Order Total",
+    "item_3": {
+      "align": "right",
+      "control": "text",
+      "value": "0.00",
+      "name": "",
+      "aname": "Total Cuft"
+    },
+    "item_5": {
+      "align": "right",
+      "control": "text",
+      "value": "2",
+      "name": "",
+      "aname": "Total Carton"
+    },
+    "count": 6
+  },
+  "section_4": {
+    "item_1": {
+      "disable": "1",
+      "aname": "Contact ID",
+      "keyboard": "text",
+      "value": "",
+      "required": "false",
+      "name": "receive_cid",
+      "control": "edit"
+    },
+    "item_3": {
+      "keyboard": "text",
+      "control": "text_view",
+      "value": "",
+      "name": "receive_ext",
+      "aname": "Address"
+    },
+    "hide": false,
+    "item_0": {
+      "item_1": {
+        "value": "new_addr",
+        "refresh": 0,
+        "name": "Add new address",
+        "aname": "Create new ship to"
+      },
+      "control": "multi_action",
+      "count": 3,
+      "item_2": {
+        "value": "Sales_Order_Ship_To",
+        "key_map": {
+          "receive_fax": "customer_fax",
+          "receive_contact": "customer_contact",
+          "receive_phone": "customer_phone",
+          "receive_cid": "customer_cid",
+          "receive_email": "customer_email",
+          "receive_name": "customer_name",
+          "receive_ext": "customer_contact_ext"
+        },
+        "name": "select_ship_to",
+        "refresh": 0,
+        "aname": "Select ship to"
+      },
+      "item_0": {
+        "key_map": {
+          "receive_fax": "customer_fax",
+          "receive_contact": "customer_contact",
+          "receive_phone": "customer_phone",
+          "receive_cid": "customer_cid",
+          "receive_email": "customer_email",
+          "receive_name": "customer_name",
+          "receive_ext": "customer_contact_ext"
+        },
+        "refresh": 0,
+        "type": "pull",
+        "aname": "Same as customer"
+      },
+      "aname": "choose"
+    },
+    "item_2": {
+      "keyboard": "text",
+      "control": "edit",
+      "value": "",
+      "name": "receive_name",
+      "aname": "Company Name"
+    },
+    "title": "Ship To",
+    "count": 8,
+    "item_4": {
+      "keyboard": "text",
+      "control": "edit",
+      "value": "",
+      "name": "receive_contact",
+      "aname": "Contact"
+    },
+    "item_5": {
+      "keyboard": "text",
+      "control": "edit",
+      "value": "",
+      "name": "receive_phone",
+      "aname": "Phone"
+    },
+    "item_6": {
+      "keyboard": "text",
+      "control": "edit",
+      "value": "",
+      "name": "receive_fax",
+      "aname": "Fax"
+    },
+    "item_7": {
+      "keyboard": "text",
+      "control": "edit",
+      "value": "",
+      "name": "receive_email",
+      "aname": "Email"
+    }
+  },
+  "section_1": {
+    "title": "Shipping Method",
+    "count": 1,
+    "hide": false,
+    "item_0": {
+      "cadedate": {
+        "count": 2,
+        "val_0": {
+          "check": 0,
+          "value": "WILL CALL(requires 24 hours advance notice)",
+          "sub_item": {
+            "count": 1,
+            "item_0": {
+              "cadedate": {
+                "count": 2,
+                "val_0": {
+                  "check": 0,
+                  "value": "PERSONAL PICK UP",
+                  "refresh": 0,
+                  "value_id": "PERSONAL PICK UP"
+                },
+                "val_1": {
+                  "check": 0,
+                  "value": "USE MY CARRIER",
+                  "sub_item": {
+                    "count": 1,
+                    "item_0": {
+                      "control": "edit",
+                      "aname": "BOL",
+                      "keyboard": "text",
+                      "value": "",
+                      "required": "false",
+                      "refresh": 0,
+                      "name": "logist_note_text"
+                    }
+                  },
+                  "refresh": 0,
+                  "value_id": "USE MY CARRIER"
+                }
+              },
+              "single_select": "true",
+              "control": "enum",
+              "name": "logistic_note",
+              "required": "false",
+              "aname": "Option"
+            }
+          },
+          "value_id": "WILL CALL"
+        },
+        "val_1": {
+          "check": 0,
+          "value": "COMMON CARRIER",
+          "sub_item": {
+            "count": 1,
+            "item_0": {
+              "value": "true",
+              "control": "switch",
+              "refresh": 0,
+              "name": "lift_gate",
+              "required": "false",
+              "aname": "Do you have Loading Dock Available ? Slide to green for YES"
+            }
+          },
+          "value_id": "COMMON CARRIER"
+        }
+      },
+      "control": "enum",
+      "single_select": "true",
+      "aname": "Shipping",
+      "required": "false",
+      "name": "logist",
+      "refresh": 0
+    }
+  },
+  "has_reItem": false,
+  "up_params": {
+    "val_2": "lift_gate",
+    "count": 4,
+    "val_1": "receive_cid",
+    "val_0": "logist",
+    "val_3": "customer_cid"
+  },
+  "section_8": {
+    "title": "Signature",
+    "count": 1,
+    "hide": false,
+    "item_0": {
+      "value": "",
+      "control": "signature",
+      "avalue": "",
+      "name": "sign_picpath",
+      "aname": "Signature"
+    }
+  },
+  "section_5": {
+   
+    "title": "Model Information",
+    "count": 0
+  },
+  "title": "Edit Order",
+  "section_2": {
+    "title": "Payment Information",
+    "count": 1,
+    "hide": false,
+    "item_0": {
+      "cadedate": {
+        "val_3": {
+          "check": 0,
+          "value": "Cash",
+          "value_id": "Cash"
+        },
+        "val_2": {
+          "check": 0,
+          "value": "Credit Card",
+          "sub_item": {
+            "item_1": {
+              "aname": "",
+              "value": "USA Credit cards only",
+              "control": "text",
+              "name": "",
+              "color": "red"
+            },
+            "item_2": {
+              "cadedate": {
+                "count": 2,
+                "val_0": {
+                  "check": 1,
+                  "value": "Fill Now",
+                  "sub_item": {
+                    "item_4": {
+                      "keyboard": "text",
+                      "control": "edit",
+                      "value": "",
+                      "name": "credit_card_first_name",
+                      "required": "false",
+                      "aname": "First Name"
+                    },
+                    "item_9": {
+                      "keyboard": "text",
+                      "control": "edit",
+                      "value": "",
+                      "name": "credit_card_city",
+                      "required": "false",
+                      "aname": "City"
+                    },
+                    "item_3": {
+                      "length": "3",
+                      "aname": "Security Code",
+                      "keyboard": "int",
+                      "value": "",
+                      "required": "false",
+                      "name": "credit_card_security_code",
+                      "control": "edit"
+                    },
+                    "count": 11,
+                    "item_10": {
+                      "control": "enum",
+                      "aname": "State",
+                      "single_select": "true",
+                      "enum": "true",
+                      "required": "false",
+                      "name": "credit_card_state",
+                      "cadedate": {
+                        "val_28": {
+                          "value": "NH-NEW HAMPSHIRE",
+                          "value_id": "NH",
+                          "check": 0
+                        },
+                        "val_9": {
+                          "value": "GA-GEORGIA",
+                          "value_id": "GA",
+                          "check": 0
+                        },
+                        "val_14": {
+                          "value": "KS-KANSAS",
+                          "value_id": "KS",
+                          "check": 0
+                        },
+                        "val_42": {
+                          "value": "UT-UTAH",
+                          "value_id": "UT",
+                          "check": 0
+                        },
+                        "val_27": {
+                          "value": "NE-NEBRASKA",
+                          "value_id": "NE",
+                          "check": 0
+                        },
+                        "val_7": {
+                          "value": "DE-DELAWARE",
+                          "value_id": "DE",
+                          "check": 0
+                        },
+                        "val_13": {
+                          "value": "IN-INDIANA",
+                          "value_id": "IN",
+                          "check": 0
+                        },
+                        "val_5": {
+                          "value": "CT-CONNECTICUT",
+                          "value_id": "CT",
+                          "check": 0
+                        },
+                        "val_26": {
+                          "value": "ND-NORTH DAKOTA",
+                          "value_id": "ND",
+                          "check": 0
+                        },
+                        "val_41": {
+                          "value": "TX-TEXAS",
+                          "value_id": "TX",
+                          "check": 0
+                        },
+                        "val_39": {
+                          "value": "SD-SOUTH DAKOTA",
+                          "value_id": "SD",
+                          "check": 0
+                        },
+                        "val_3": {
+                          "value": "CA-CALIFORNIA",
+                          "value_id": "CA",
+                          "check": 0
+                        },
+                        "val_12": {
+                          "value": "IL-ILLINOIS",
+                          "value_id": "IL",
+                          "check": 0
+                        },
+                        "val_25": {
+                          "value": "NC-NORTH CAROLINA",
+                          "value_id": "NC",
+                          "check": 0
+                        },
+                        "val_40": {
+                          "value": "TN-TENNESSEE",
+                          "value_id": "TN",
+                          "check": 0
+                        },
+                        "val_38": {
+                          "value": "SC-SOUTH CAROLINA",
+                          "value_id": "SC",
+                          "check": 0
+                        },
+                        "val_1": {
+                          "value": "AR-ARKANSAS",
+                          "value_id": "AR",
+                          "check": 0
+                        },
+                        "val_11": {
+                          "value": "ID-IDAHO",
+                          "value_id": "ID",
+                          "check": 0
+                        },
+                        "val_24": {
+                          "value": "MT-MONTANA",
+                          "value_id": "MT",
+                          "check": 0
+                        },
+                        "val_37": {
+                          "value": "RI-RHODE ISLAND",
+                          "value_id": "RI",
+                          "check": 0
+                        },
+                        "val_10": {
+                          "value": "IA-IOWA",
+                          "value_id": "IA",
+                          "check": 0
+                        },
+                        "val_23": {
+                          "value": "MS-MISSISSIPPI",
+                          "value_id": "MS",
+                          "check": 0
+                        },
+                        "val_36": {
+                          "value": "PA-PENNSYLVANIA",
+                          "value_id": "PA",
+                          "check": 0
+                        },
+                        "val_22": {
+                          "value": "MO-MISSOURI",
+                          "value_id": "MO",
+                          "check": 0
+                        },
+                        "val_35": {
+                          "value": "OR-OREGON",
+                          "value_id": "OR",
+                          "check": 0
+                        },
+                        "val_8": {
+                          "value": "FL-FLORIDA",
+                          "value_id": "FL",
+                          "check": 0
+                        },
+                        "val_48": {
+                          "value": "WY-WYOMING",
+                          "value_id": "WY",
+                          "check": 0
+                        },
+                        "count": 49,
+                        "val_21": {
+                          "value": "MN-MINNESOTA",
+                          "value_id": "MN",
+                          "check": 0
+                        },
+                        "val_6": {
+                          "value": "DC-DISTRICT OF COLUMBIA",
+                          "value_id": "DC",
+                          "check": 0
+                        },
+                        "val_19": {
+                          "value": "ME-MAINE",
+                          "value_id": "ME",
+                          "check": 0
+                        },
+                        "val_34": {
+                          "value": "OK-OKLAHOMA",
+                          "value_id": "OK",
+                          "check": 0
+                        },
+                        "val_47": {
+                          "value": "WV-WEST VIRGINIA",
+                          "value_id": "WV",
+                          "check": 0
+                        },
+                        "val_20": {
+                          "value": "MI-MICHIGAN",
+                          "value_id": "MI",
+                          "check": 0
+                        },
+                        "val_4": {
+                          "value": "CO-COLORADO",
+                          "value_id": "CO",
+                          "check": 0
+                        },
+                        "val_33": {
+                          "value": "OH-OHIO",
+                          "value_id": "OH",
+                          "check": 0
+                        },
+                        "val_18": {
+                          "value": "MD-MARYLAND",
+                          "value_id": "MD",
+                          "check": 0
+                        },
+                        "val_46": {
+                          "value": "WI-WISCONSIN",
+                          "value_id": "WI",
+                          "check": 0
+                        },
+                        "val_2": {
+                          "value": "AZ-ARIZONA",
+                          "value_id": "AZ",
+                          "check": 0
+                        },
+                        "val_32": {
+                          "value": "NY-NEW YORK",
+                          "value_id": "NY",
+                          "check": 0
+                        },
+                        "val_17": {
+                          "value": "MA-MASSACHUSETTS",
+                          "value_id": "MA",
+                          "check": 0
+                        },
+                        "val_45": {
+                          "value": "WA-WASHINGTON",
+                          "value_id": "WA",
+                          "check": 0
+                        },
+                        "val_0": {
+                          "value": "AL-ALABAMA",
+                          "value_id": "AL",
+                          "check": 0
+                        },
+                        "val_31": {
+                          "value": "NV-NEVADA",
+                          "value_id": "NV",
+                          "check": 0
+                        },
+                        "val_16": {
+                          "value": "LA-LOUISIANA",
+                          "value_id": "LA",
+                          "check": 0
+                        },
+                        "val_44": {
+                          "value": "VT-VERMONT",
+                          "value_id": "VT",
+                          "check": 0
+                        },
+                        "val_29": {
+                          "value": "NJ-NEW JERSEY",
+                          "value_id": "NJ",
+                          "check": 0
+                        },
+                        "val_30": {
+                          "value": "NM-NEW MEXICO",
+                          "value_id": "NM",
+                          "check": 0
+                        },
+                        "val_15": {
+                          "value": "KY-KENTUCKY",
+                          "value_id": "KY",
+                          "check": 0
+                        },
+                        "val_43": {
+                          "value": "VA-VIRGINIA",
+                          "value_id": "VA",
+                          "check": 0
+                        }
+                      }
+                    },
+                    "item_2": {
+                      "aname": "Expiration Date",
+                      "value": "",
+                      "control": "monthpicker",
+                      "type": "date",
+                      "name": "credit_card_expiration",
+                      "required": "false"
+                    },
+                    "item_8": {
+                      "keyboard": "text",
+                      "control": "edit",
+                      "value": "",
+                      "name": "credit_card_zipcode",
+                      "required": "false",
+                      "aname": "zip code"
+                    },
+                    "item_7": {
+                      "keyboard": "text",
+                      "control": "edit",
+                      "value": "",
+                      "name": "credit_card_address2",
+                      "aname": "Address 2"
+                    },
+                    "item_1": {
+                      "length": "16",
+                      "aname": "Number",
+                      "keyboard": "int",
+                      "value": "",
+                      "required": "false",
+                      "name": "credit_card_number",
+                      "control": "edit"
+                    },
+                    "item_6": {
+                      "keyboard": "text",
+                      "control": "edit",
+                      "value": "",
+                      "name": "credit_card_address1",
+                      "required": "false",
+                      "aname": "Address 1"
+                    },
+                    "item_0": {
+                      "cadedate": {
+                        "count": 2,
+                        "val_0": {
+                          "check": 0,
+                          "value": "VISA",
+                          "value_id": "VISA"
+                        },
+                        "val_1": {
+                          "check": 0,
+                          "value": "MASTER CARD",
+                          "value_id": "MASTER CARD"
+                        }
+                      },
+                      "single_select": "true",
+                      "control": "enum",
+                      "name": "credit_card_type",
+                      "required": "false",
+                      "aname": "Type"
+                    },
+                    "item_5": {
+                      "keyboard": "text",
+                      "control": "edit",
+                      "value": "",
+                      "name": "credit_card_last_name",
+                      "required": "false",
+                      "aname": "Last Name"
+                    }
+                  },
+                  "value_id": ""
+                },
+                "val_1": {
+                  "check": 0,
+                  "value": "Fill Later",
+                  "value_id": ""
+                }
+              },
+              "single_select": "true",
+              "control": "enum",
+              "name": "",
+              "aname": "Fill"
+            },
+            "count": 3,
+            "item_0": {
+              "control": "multi_action",
+              "count": 1,
+              "item_0": {
+                "aname": "Same as customer",
+                "key_map": {
+                  "credit_card_address1": "customer_address1",
+                  "credit_card_last_name": "customer_last_name",
+                  "credit_card_city": "customer_city",
+                  "credit_card_first_name": "customer_first_name",
+                  "credit_card_state": "customer_state",
+                  "credit_card_zipcode": "customer_zipcode",
+                  "credit_card_address2": "customer_address2"
+                },
+                "type": "pull"
+              },
+              "aname": "choose"
+            }
+          },
+          "value_id": "Visa/Master"
+        },
+        "count": 5,
+        "val_4": {
+          "check": 0,
+          "value": "AR Settlement",
+          "value_id": "AR Settlement"
+        },
+        "val_1": {
+          "check": 0,
+          "value": "EFT",
+          "value_id": "EFT"
+        },
+        "val_0": {
+          "check": 0,
+          "value": "Check",
+          "value_id": "Check"
+        }
+      },
+      "single_select": "true",
+      "control": "enum",
+      "required": "false",
+      "name": "paymentType",
+      "aname": "Payment"
+    }
+  },
+  "mode": "Regular Mode",
+  "can_see_price": true,
+  "result": 2,
+  "section_3": {
+      "item_4": {
+        "value": "",
+        "control": "text",
+        "name": "customer_address2",
+        "aname": "Address_2"
+      },
+      "item_13": {
+        "value": "",
+        "control": "text",
+        "name": "customer_state",
+        "aname": "State"
+      },
+      "item_3": {
+        "value": "",
+        "control": "text",
+        "name": "customer_address1",
+        "aname": "Address_1"
+      },
+      "count": 15,
+      "item_9": {
+        "keyboard": "text",
+        "control": "edit",
+        "value": "",
+        "name": "customer_phone",
+        "aname": "Phone"
+      },
+      "item_10": {
+        "keyboard": "text",
+        "control": "edit",
+        "value": "",
+        "name": "customer_fax",
+        "aname": "Fax"
+      },
+      "item_2": {
+        "value": "",
+        "control": "text",
+        "name": "customer_name",
+        "aname": "Company Name"
+      },
+      "item_8": {
+        "keyboard": "text",
+        "control": "edit",
+        "value": "",
+        "name": "customer_email",
+        "aname": "Email"
+      },
+      "title": "Customer",
+      "item_1": {
+        "img_url_2": "",
+        "disable": "1",
+        "img_url_aname_1": "",
+        "img_url_0": "",
+        "img_url_aname_0": "",
+        "img_url_1": "",
+        "aname": "Business Card",
+        "img_url_aname_2": "",
+        "name": "business_card",
+        "control": "img"
+      },
+      "item_12": {
+        "value": "",
+        "control": "text",
+        "name": "customer_city",
+        "aname": "City"
+      },
+      "item_7": {
+        "keyboard": "text",
+        "control": "edit",
+        "value": "",
+        "name": "customer_contact",
+        "aname": "Contact"
+      },
+      "item_6": {
+        "value": "",
+        "control": "text",
+        "name": "customer_address4",
+        "aname": "Address_4"
+      },
+      "item_0": {
+        "keyboard": "text",
+        "control": "text",
+        "value": "",
+        "name": "customer_cid",
+        "required": "true",
+        "aname": "Contact ID"
+      },
+      "item_14": {
+        "value": "",
+        "control": "text",
+        "name": "customer_country",
+        "aname": "Country"
+      },
+      "item_5": {
+        "value": "",
+        "control": "text",
+        "name": "customer_address3",
+        "aname": "Address_3"
+      },
+      "item_11": {
+        "value": "",
+        "control": "text",
+        "name": "customer_zipcode",
+        "aname": "Zipcode"
+      }
+    },
+  "section_6": {
+    "item_1": {
+      "value": "true",
+      "control": "switch",
+      "name": "must_call",
+      "aname": "MUST CALL BEFORE DELIVERY"
+    },
+    "title": "Remarks Content",
+    "item_2": {
+      "keyboard": "text",
+      "control": "text_view",
+      "value": "",
+      "name": "comments",
+      "aname": "General notes"
+    },
+    "hide": false,
+    "item_0": {
+      "keyboard": "text",
+      "control": "edit",
+      "value": "",
+      "name": "poNumber",
+      "aname": "PO#"
+    },
+    "count": 3
+  },
+  "section_0": {
+    "title": "Order Type",
+    "count": 1,
+    "hide": false,
+    "item_0": {
+      "cadedate": {
+        "count": 2,
+        "val_0": {
+          "check": 0,
+          "value": "Sales Order",
+          "value_id": 11
+        },
+        "val_1": {
+          "check": 0,
+          "value": "Quote",
+          "value_id": 10
+        }
+      },
+      "single_select": "true",
+      "control": "enum",
+      "name": "erpOrderStatus",
+      "required": "false",
+      "aname": "Submit Order As"
+    }
+  },
+  "section_count": 9
+}

+ 246 - 147
RedAnt ERP Mobile/common/Functions/camscan/ScannerViewController.m

@@ -248,7 +248,15 @@
    // self.backgroundView.autoresizingMask=0xff;
    // self.backgroundView.autoresizingMask=0xff;
     self.handelOutput = false;
     self.handelOutput = false;
     
     
+#if TARGET_IPHONE_SIMULATOR//模拟器
     
     
+    if(RASingleton.sharedInstance.enable_OfflineOrder)
+    {
+        self.scan_val = @"[\"5683\",\"US19ZL000290135\",\"US19BW19ZL000290135\",123.4,1]";
+        [self addtocart];
+    }
+        
+#endif
 
 
     
     
     // Do any additional setup after loading the view, typically from a nib.
     // Do any additional setup after loading the view, typically from a nib.
@@ -276,6 +284,8 @@
         
         
     } else {
     } else {
         DebugLog(@"error: %@", error);
         DebugLog(@"error: %@", error);
+        
+        
         return;
         return;
     }
     }
     
     
@@ -397,6 +407,8 @@
     self.type = SCANNER_TYPE_MODELNAME;
     self.type = SCANNER_TYPE_MODELNAME;
 #endif
 #endif
     
     
+    
+
 }
 }
 //#pragma mark - ScannerControllerDelegate
 //#pragma mark - ScannerControllerDelegate
 //-(void)BeginScan:(bool)begin
 //-(void)BeginScan:(bool)begin
@@ -471,6 +483,13 @@
     
     
     self.scan_val = [transformed stringValue];
     self.scan_val = [transformed stringValue];
     
     
+    if(RASingleton.sharedInstance.enable_OfflineOrder)
+    {
+        [self addtocart];
+//        [CartUtils add_to_cart:self selectorholder:self selector:@selector(addtocart)];
+        return;
+    }
+    
     NSString *action = nil;
     NSString *action = nil;
     switch (self.target) {
     switch (self.target) {
         case SCANNER_TARGET_DETAIL:
         case SCANNER_TARGET_DETAIL:
@@ -530,160 +549,160 @@
     
     
 }
 }
 
 
-
-
--(void)add_toCart
-{
-    
-    [CartUtils add_to_cart:self selectorholder:self selector:@selector(addtocart)];
-    return;
-    
-//    UIApplication * app = [UIApplication sharedApplication];
-//    AppDelegate *appDelegate = (AppDelegate *)[app delegate];
-//    MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
-//    if(appDelegate.bLogin==false)
-//    {
-//        LoginViewController * loginvc =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"LoginViewController"];
-//
-//
-//        loginvc.returnValue = ^(bool blogin){
-//
-//
-//
-//
-//
-//            if(blogin)
-//            {
-//                if(/*appDelegate.user_type==USER_ROLE_EMPLOYEE*/ true)
-//                {
-//
-//#ifdef RA_NOTIFICATION
-//                    [ActiveViewController Notify:@"CategoryViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
-//#else
-//
-//                    [((MainViewController*)appDelegate.main_vc) reloadCategory:true immediately:false];
-//#endif
-//
-//
-//
-//                    [main_vc checklogin:false];
-//
-//
-//
-//                    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Add to cart" message:@"Do you want to add to pending a order or a new order" preferredStyle:UIAlertControllerStyleAlert];
-//
-//
-//                     UIAlertAction *action_1 = [UIAlertAction actionWithTitle:@"Add to pending order" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
-//
-//
-//
-//                     }];
-//
-//                     UIAlertAction *action_2 = [UIAlertAction actionWithTitle:@"Add to new order" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
-//
-//
-//
-//                     }];
-//                     UIAlertAction *action_3 = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
-//
-//
 //
 //
-//                     }];
-//
-//                     [alertController addAction:action_1];
-//                     [alertController addAction:action_2];
-//                     [alertController addAction:action_3];
 //
 //
+//-(void)add_toCart
+//{
 //
 //
-//                     [self presentViewController:alertController animated:YES completion:nil];
+//    [CartUtils add_to_cart:self selectorholder:self selector:@selector(addtocart)];
+//    return;
 //
 //
-////                    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Add to cart", nil) message:NSLocalizedString(@"Do you want to add to pending a order or a new order", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Add to pending order", nil),NSLocalizedString(@"Add to new order", nil), nil];
+////    UIApplication * app = [UIApplication sharedApplication];
+////    AppDelegate *appDelegate = (AppDelegate *)[app delegate];
+////    MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
+////    if(appDelegate.bLogin==false)
+////    {
+////        LoginViewController * loginvc =[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"LoginViewController"];
 ////
 ////
 ////
 ////
+////        loginvc.returnValue = ^(bool blogin){
 ////
 ////
-////                    // alert.
-////                    [alert show];
-//                }
-//                else
-//                {
-//                    [main_vc checklogin:true];
-//                }
-//            }
-//
-//
-//
-//        };
-//
-//        UINavigationController* navi = [[UINavigationController alloc] initWithRootViewController:loginvc] ;
-//
-//
-//
-//
-//
-//        //    [self hackModalSheetSize:CGSizeMake(450, 200) ofVC:navi];
-//
-//        navi.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;//有三种状态,自己看看是哪种
-//        [self presentViewController:navi animated:YES completion:^{
-//
-//            //        navi.view.superview.bounds = CGRectMake(0, 0, 480, 320);
-//
-//            DebugLog(@"LoginViewController present.........");
-//
-//            //   self.btop = false;
-//            //  <#code#>
-//        }];
-//    }
-//    else
-//    {
-//
-//        //if(/*appDelegate.user_type==USER_ROLE_EMPLOYEE&&/*appDelegate.contact_id==nil&&*/appDelegate.order_code==nil)
-//        if(appDelegate.order_code==nil)
-//        {
-//            [main_vc checklogin:false];
-//
-//            if(appDelegate.can_create_order)
-//            {
-//                NSString* msg =@"";
-//                if(appDelegate.contact_id.length>0)
-//                {
-//                    msg = [msg stringByAppendingString:@"\n\nCustomer:"];
-//                    msg = [msg stringByAppendingString:appDelegate.customerInfo[@"customer_name"]];
-//
-//                }
-//                UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Add to cart", nil) message:msg delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Add to pending order", nil),NSLocalizedString(@"Add to new order", nil), nil];
-//
-//                // alert.
-//                [alert show];
-//            }
-//            else
-//            {
-//                UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Add to cart", nil) message:NSLocalizedString(@"", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Add to pending order", nil), nil];
-//
-//                // alert.
-//                [alert show];
-//            }
-//        }
-//        else
-//        {
-//
-//
-//            if(appDelegate.order_code==nil)
-//                [ self neworder];
-//            else
-//                [self addtocart];
-//
-//
-//        }
-//    }
-//
-//
-//
-//
-//
-//
-//
-//
-}
+////
+////
+////
+////
+////            if(blogin)
+////            {
+////                if(/*appDelegate.user_type==USER_ROLE_EMPLOYEE*/ true)
+////                {
+////
+////#ifdef RA_NOTIFICATION
+////                    [ActiveViewController Notify:@"CategoryViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+////#else
+////
+////                    [((MainViewController*)appDelegate.main_vc) reloadCategory:true immediately:false];
+////#endif
+////
+////
+////
+////                    [main_vc checklogin:false];
+////
+////
+////
+////                    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Add to cart" message:@"Do you want to add to pending a order or a new order" preferredStyle:UIAlertControllerStyleAlert];
+////
+////
+////                     UIAlertAction *action_1 = [UIAlertAction actionWithTitle:@"Add to pending order" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
+////
+////
+////
+////                     }];
+////
+////                     UIAlertAction *action_2 = [UIAlertAction actionWithTitle:@"Add to new order" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
+////
+////
+////
+////                     }];
+////                     UIAlertAction *action_3 = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
+////
+////
+////
+////                     }];
+////
+////                     [alertController addAction:action_1];
+////                     [alertController addAction:action_2];
+////                     [alertController addAction:action_3];
+////
+////
+////                     [self presentViewController:alertController animated:YES completion:nil];
+////
+//////                    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Add to cart", nil) message:NSLocalizedString(@"Do you want to add to pending a order or a new order", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Add to pending order", nil),NSLocalizedString(@"Add to new order", nil), nil];
+//////
+//////
+//////
+//////                    // alert.
+//////                    [alert show];
+////                }
+////                else
+////                {
+////                    [main_vc checklogin:true];
+////                }
+////            }
+////
+////
+////
+////        };
+////
+////        UINavigationController* navi = [[UINavigationController alloc] initWithRootViewController:loginvc] ;
+////
+////
+////
+////
+////
+////        //    [self hackModalSheetSize:CGSizeMake(450, 200) ofVC:navi];
+////
+////        navi.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;//有三种状态,自己看看是哪种
+////        [self presentViewController:navi animated:YES completion:^{
+////
+////            //        navi.view.superview.bounds = CGRectMake(0, 0, 480, 320);
+////
+////            DebugLog(@"LoginViewController present.........");
+////
+////            //   self.btop = false;
+////            //  <#code#>
+////        }];
+////    }
+////    else
+////    {
+////
+////        //if(/*appDelegate.user_type==USER_ROLE_EMPLOYEE&&/*appDelegate.contact_id==nil&&*/appDelegate.order_code==nil)
+////        if(appDelegate.order_code==nil)
+////        {
+////            [main_vc checklogin:false];
+////
+////            if(appDelegate.can_create_order)
+////            {
+////                NSString* msg =@"";
+////                if(appDelegate.contact_id.length>0)
+////                {
+////                    msg = [msg stringByAppendingString:@"\n\nCustomer:"];
+////                    msg = [msg stringByAppendingString:appDelegate.customerInfo[@"customer_name"]];
+////
+////                }
+////                UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Add to cart", nil) message:msg delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Add to pending order", nil),NSLocalizedString(@"Add to new order", nil), nil];
+////
+////                // alert.
+////                [alert show];
+////            }
+////            else
+////            {
+////                UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Add to cart", nil) message:NSLocalizedString(@"", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Add to pending order", nil), nil];
+////
+////                // alert.
+////                [alert show];
+////            }
+////        }
+////        else
+////        {
+////
+////
+////            if(appDelegate.order_code==nil)
+////                [ self neworder];
+////            else
+////                [self addtocart];
+////
+////
+////        }
+////    }
+////
+////
+////
+////
+////
+////
+////
+////
+//}
 
 
 
 
 
 
@@ -775,6 +794,86 @@
 -(void) addtocart
 -(void) addtocart
 {
 {
     
     
+#ifdef SCANNER_ORDER
+    if(RASingleton.sharedInstance.enable_OfflineOrder)
+    {
+        
+        
+        
+        NSString* key =@"usai2010";
+        NSString * cart_item = [AESCrypt decrypt:self.scan_val password:key];
+#if TARGET_IPHONE_SIMULATOR
+        cart_item = self.scan_val;
+#endif
+        NSMutableArray* item = [[RAConvertor string2dict:cart_item] mutableCopy];
+        
+        
+        NSMutableDictionary* jitem = [NSMutableDictionary new];
+        jitem[@"product_id"]= item[0];
+        NSString* model =item[1];
+        NSString* description =item[2];
+        jitem[@"model"] =model;
+        jitem[@"description"] = [NSString stringWithFormat:@"%@ \r\n%@",model,description];
+        jitem[@"unit_price"] =@( [item[3] doubleValue]);
+        jitem[@"stockUom"] = @([item[4] intValue]);
+        jitem[@"count"] = @([item[4] intValue]);
+        jitem[@"subtotal_price"] = @([item[4] intValue]* [item[3] doubleValue]);
+        
+        jitem[@"check"]=@(true);
+        if(RASingleton.sharedInstance.scan_cart ==nil)
+        {
+//            NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:URL_SO_CART ofType:@"json" ]];
+            NSMutableDictionary* cartTemplate=[OLDataProvider loadScanTemplate:@"scan_cart.json"];
+            RASingleton.sharedInstance.scan_cart=cartTemplate;//[[RAConvertor data2dict:json] mutableCopy];
+        }
+        NSMutableDictionary* section =[RASingleton.sharedInstance.scan_cart[@"section_0"] mutableCopy];
+        int count =[section[@"count"] intValue];
+        bool newitem = true;
+        for(int i=0;i<count;i++)
+        {
+            NSMutableDictionary* litem = [section[[NSString stringWithFormat:@"item_%i",i]] mutableCopy];
+            if([litem[@"product_id"] isEqualToString:jitem[@"product_id"]])
+            {
+                
+                int unit = [litem[@"stockUom"] intValue];
+                newitem = false;
+                litem[@"count"]=@([litem[@"count"] intValue] +unit);
+                
+                section[[NSString stringWithFormat:@"item_%i",i]] = litem;
+                break;
+            }
+        }
+        
+
+        if(newitem)
+        {
+
+            jitem[@"cart_item_id"]=[NSUUID UUID].UUIDString;
+            section[[NSString stringWithFormat:@"item_%i",count]] = jitem;
+            section[@"count"]= @(count+1);
+            
+        }
+        
+        RASingleton.sharedInstance.scan_cart[@"section_0"] = section;
+        
+        
+        
+        
+#ifdef RA_NOTIFICATION
+            [ActiveViewController Notify:@"CartViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+#else
+            
+            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+            [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
+#endif
+            
+        [OLDataProvider saveScanCart:RASingleton.sharedInstance.scan_cart];
+        
+        return;
+    }
+    
+#endif
+    
     if(self.type == SCANNER_TYPE_UPCCODE)
     if(self.type == SCANNER_TYPE_UPCCODE)
     {
     {
         [RANetwork request_addto_cart_byupc:self.scan_val withScreen:ScreenCodeCamScan completionHandler:^(NSMutableDictionary *result) {
         [RANetwork request_addto_cart_byupc:self.scan_val withScreen:ScreenCodeCamScan completionHandler:^(NSMutableDictionary *result) {

+ 214 - 6
RedAnt ERP Mobile/common/Functions/cart/CartViewController.m

@@ -52,6 +52,15 @@
 @property (nonatomic,strong) NSOperationQueue *dataOperationQueue;
 @property (nonatomic,strong) NSOperationQueue *dataOperationQueue;
 @property (strong, nonatomic) IBOutlet UIButton *emailButton;
 @property (strong, nonatomic) IBOutlet UIButton *emailButton;
 @property (strong, nonatomic) IBOutlet UIButton *printButton;
 @property (strong, nonatomic) IBOutlet UIButton *printButton;
+@property (weak, nonatomic) IBOutlet UIButton *editButton;
+@property (weak, nonatomic) IBOutlet UIButton *continueButton;
+
+@property (weak, nonatomic) IBOutlet UILabel *labelTotalcuft;
+@property (weak, nonatomic) IBOutlet UILabel *labelTotalWeight;
+@property (weak, nonatomic) IBOutlet UILabel *labelTotalCarton;
+@property (weak, nonatomic) IBOutlet UILabel *valuecuft;
+@property (weak, nonatomic) IBOutlet UILabel *valueweight;
+@property (weak, nonatomic) IBOutlet UILabel *valuecarton;
 
 
 @property (nonatomic,assign) BOOL currentOrderIsMerged;
 @property (nonatomic,assign) BOOL currentOrderIsMerged;
 @property (nonatomic,strong) DefaultTableHeaderView *cartIndicatorBar;
 @property (nonatomic,strong) DefaultTableHeaderView *cartIndicatorBar;
@@ -1040,9 +1049,11 @@
     myView.layer.shadowOffset = CGSizeMake(0, 0);
     myView.layer.shadowOffset = CGSizeMake(0, 0);
     myView.layer.shadowOpacity = 0.5;
     myView.layer.shadowOpacity = 0.5;
     myView.layer.shadowRadius = 2.0;
     myView.layer.shadowRadius = 2.0;
+    
+#ifndef SCANNER_ORDER
     self.sortButton.tag = 5678 + 0;
     self.sortButton.tag = 5678 + 0;
     [myView addSubview:self.sortButton];
     [myView addSubview:self.sortButton];
-    
+#endif
     UILabel *solabel = [[UILabel alloc] initWithFrame:CGRectMake(130, 9, 90, 22)];
     UILabel *solabel = [[UILabel alloc] initWithFrame:CGRectMake(130, 9, 90, 22)];
     solabel.tag = 5678 + 1;
     solabel.tag = 5678 + 1;
     
     
@@ -1113,6 +1124,23 @@
 - (void)viewDidLoad
 - (void)viewDidLoad
 {
 {
     [super viewDidLoad];
     [super viewDidLoad];
+    
+#ifdef SCANNER_ORDER
+    self.printButton.hidden = true;
+    self.emailButton.hidden = true;
+    self.editButton.hidden = true;
+    self.continueButton.hidden = true;
+   
+    self.labelTotalcuft.hidden = true;
+    self.labelTotalWeight.hidden = true;
+    self.labelTotalCarton.hidden = true;
+    self.valuecuft.hidden = true;
+    self.valueweight.hidden = true;
+    self.valuecarton.hidden = true;
+    
+    
+
+#endif
 #ifdef RA_NOTIFICATION
 #ifdef RA_NOTIFICATION
     self.support_scanner = true;
     self.support_scanner = true;
 #endif
 #endif
@@ -1282,6 +1310,166 @@
      }
      }
      
      
      */
      */
+#ifdef SCANNER_ORDER
+    if(RASingleton.sharedInstance.enable_OfflineOrder)
+    {
+        
+        NSMutableDictionary * params= [[NSMutableDictionary alloc] init];
+        //   NSString * string = [checked componentsJoinedByString:@","];
+        //  [params setValue:string forKey:@"cart2Checkbox"];
+        
+//        NSData* data=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:URL_SO_ORDER ofType:@"json" ]];
+//        NSError *error=nil;
+//        NSMutableDictionary* dict=[[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error] mutableCopy];
+//
+        
+        
+        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+        NSString *documents = [paths objectAtIndex:0];
+        
+            
+            
+            NSString *orderdir = [documents stringByAppendingPathComponent:appDelegate.order_code];
+        
+        NSMutableDictionary* dict= [[RAUtils dictfromfile:[orderdir stringByAppendingPathComponent:@"order.json"]] mutableCopy];
+        
+        int section_count = [dict[@"section_count"] intValue];
+        
+        for(int i=0;i<section_count;i++)
+        {
+            NSMutableDictionary* section = [dict[[NSString stringWithFormat:@"section_%d",i]] mutableCopy];
+            NSString* title = section[@"title"];
+            if([title isEqualToString:@"Model Information"])
+            {
+                
+                NSMutableDictionary* cart_section = RASingleton.sharedInstance.scan_cart[@"section_0"];
+                int cart_count = [cart_section[@"count"] intValue];
+                for(int j=0;j<cart_count;j++)
+                {
+                    NSMutableDictionary* cart_item = [cart_section[[NSString stringWithFormat:@"item_%d",j]] mutableCopy];
+                    cart_item[@"control"]=@"model";
+                    section[[NSString stringWithFormat:@"item_%d",j]] = cart_item;
+                    
+                }
+                section[@"count"] = @(cart_count);
+                dict[[NSString stringWithFormat:@"section_%d",i]] = section;
+            }
+            else
+                if([title isEqualToString:@"Customer"])
+                {
+                    
+                    int scount = [section[@"count"] intValue];
+                    for(int j=0;j<scount;j++)
+                    {
+                        NSMutableDictionary * item = [section[[NSString stringWithFormat:@"item_%d",j]] mutableCopy];
+                        NSString * name = item[@"name"];
+                        
+                        if([name isEqualToString:@"business_card"])
+                        {
+                            NSArray*arr =[RAConvertor string2arr:appDelegate.customerInfo[name] separator:@","];
+                            for(int l=0;l<arr.count;l++)
+                            {
+                                item[[NSString stringWithFormat:@"img_url_%d",l] ]=arr[l];
+                            }
+                        }
+                        else
+                            item[@"value"]=appDelegate.customerInfo[name];
+                        
+                        section[[NSString stringWithFormat:@"item_%d",j]] = item;
+                    }
+                    
+//                    NSDictionary* item_0=@{@"control":@"text",@"name":@"customer_cid",@"aname":@"Contact",@"value":appDelegate.contact_id};
+                    dict[[NSString stringWithFormat:@"section_%d",i]] = section;
+                    
+                    
+                }
+                else
+                    if([title isEqualToString:@"Remarks Content"])
+                    {
+                        
+                        int scount = [section[@"count"] intValue];
+                        for(int j=0;j<scount;j++)
+                        {
+                            NSMutableDictionary * item = [section[[NSString stringWithFormat:@"item_%d",j]] mutableCopy];
+                            NSString * name = item[@"name"];
+                            
+                            
+                            if([name isEqualToString:@"comments"])
+                            {
+                                item[@"value"] = RASingleton.sharedInstance.scan_cart[@"general_note"];
+                                section[[NSString stringWithFormat:@"item_%d",j]] = item;
+                            }
+                            
+                            
+                        }
+                        
+    //                    NSDictionary* item_0=@{@"control":@"text",@"name":@"customer_cid",@"aname":@"Contact",@"value":appDelegate.contact_id};
+                        dict[[NSString stringWithFormat:@"section_%d",i]] = section;
+                        
+                        
+                    }
+            else if([title isEqualToString:@"Order Total"])
+            {
+                
+                int scount = [section[@"count"] intValue];
+                for(int j=0;j<scount;j++)
+                {
+                    NSMutableDictionary * item = [section[[NSString stringWithFormat:@"item_%d",j]] mutableCopy];
+                    NSString * name = item[@"name"];
+                    
+                    
+                    if([name isEqualToString:@"totalPrice"])
+                    {
+                        item[@"value"] = [NSString stringWithFormat:@"%.2f",self.total];
+                        section[[NSString stringWithFormat:@"item_%d",j]] = item;
+                    }
+                    
+                    
+                }
+                
+//                    NSDictionary* item_0=@{@"control":@"text",@"name":@"customer_cid",@"aname":@"Contact",@"value":appDelegate.contact_id};
+                dict[[NSString stringWithFormat:@"section_%d",i]] = section;
+                
+                
+                
+            }
+               
+            
+            
+            
+        }
+        
+//        NSString *path = NSTemporaryDirectory();
+//
+//        NSString* file=[NSString stringWithFormat:@"SO_%@.json",appDelegate.order_code];
+//        NSString *filePath = [path stringByAppendingPathComponent:file];
+//
+//
+//
+        [RAUtils dicttofile:[orderdir stringByAppendingPathComponent:@"order.json"] dict:dict];
+        
+         CreateOrderViewController * orderinfoVC = [[CreateOrderViewController alloc] initWithNibName:@"CommonEditor.iPad" bundle:nil];
+        
+        
+        
+        orderinfoVC.disable_dropdown_refresh=true;
+        orderinfoVC.url_type = URL_FILE;
+        orderinfoVC.request_url=[orderdir stringByAppendingPathComponent:@"order.json"];
+        
+        orderinfoVC.params = params;
+        orderinfoVC.title=@"";
+        orderinfoVC.delegate=self;
+        //
+        //    if(checked.count==count)
+        //    {
+        //    orderinfoVC.have_tail = true
+        //    }
+        
+        [self.navigationController pushViewController:orderinfoVC animated:true];
+        
+        return;
+    }
+#endif
     
     
 #ifdef BACKORDER_PROCESS
 #ifdef BACKORDER_PROCESS
     if (self.back_order_flag) {
     if (self.back_order_flag) {
@@ -1661,6 +1849,16 @@
     UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
     UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
         __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Cancel Order" completion:^{
         __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Cancel Order" completion:^{
+            
+#ifdef SCANNER_ORDER
+      if(RASingleton.sharedInstance.enable_OfflineOrder)
+      {
+          [waitalert dismissViewControllerAnimated:YES completion:nil];
+          [OLDataProvider deleteScanOrder:appDelegate.order_code];
+          [appDelegate closeOrder];
+          return;
+      }
+#endif
             [RANetwork request_cancel_order:nil order_code:appDelegate.order_code completionHandler:^(NSMutableDictionary *result) {
             [RANetwork request_cancel_order:nil order_code:appDelegate.order_code completionHandler:^(NSMutableDictionary *result) {
                         [waitalert dismissViewControllerAnimated:YES completion:^{
                         [waitalert dismissViewControllerAnimated:YES completion:^{
                             NSDictionary* return_json = result;
                             NSDictionary* return_json = result;
@@ -1892,6 +2090,9 @@
 }
 }
 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
 {
 {
+#ifdef SCANNER_ORDER
+    return 0;
+#endif
     
     
     if (self.back_order_flag) {
     if (self.back_order_flag) {
         return 50;
         return 50;
@@ -1901,6 +2102,11 @@
 }
 }
 - (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
 - (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
 {
 {
+    
+#ifdef SCANNER_ORDER
+    return nil;
+#endif
+    
     if (self.back_order_flag) {
     if (self.back_order_flag) {
 //        UIView *header = [tableView dequeueReusableCellWithIdentifier:@"section_header_cell"];
 //        UIView *header = [tableView dequeueReusableCellWithIdentifier:@"section_header_cell"];
 //        UILabel *title_lb = [header viewWithTag:8520];
 //        UILabel *title_lb = [header viewWithTag:8520];
@@ -2424,7 +2630,7 @@
                  
                  
              }
              }
              
              
-             NSString *ids=[NSString stringWithFormat:@"%d",[[item_json valueForKey:@"cart_item_id"] intValue]];
+             NSString *ids=[NSString stringWithFormat:@"%@",[item_json valueForKey:@"cart_item_id"] ];
              
              
              __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Remove Model" completion:^{
              __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Remove Model" completion:^{
                  [RANetwork request_remove_cart:ids completionHandler:^(NSMutableDictionary *result) {
                  [RANetwork request_remove_cart:ids completionHandler:^(NSMutableDictionary *result) {
@@ -2904,7 +3110,8 @@
         
         
         vc.discount=[[item_json valueForKey:@"discount"] floatValue];
         vc.discount=[[item_json valueForKey:@"discount"] floatValue];
         vc.price = [[item_json valueForKey:@"unit_price"] floatValue];
         vc.price = [[item_json valueForKey:@"unit_price"] floatValue];
-        vc.cart_id = [NSString stringWithFormat:@"%d",[[item_json valueForKey:@"cart_item_id"] intValue]];
+        vc.cart_id = [item_json valueForKey:@"cart_item_id"];//[NSString stringWithFormat:@"%d",[[item_json valueForKey:@"cart_item_id"] intValue]];
+        __block NSString* cartid=[item_json valueForKey:@"cart_item_id"];
         //    vc.delegate = parentvc.self;
         //    vc.delegate = parentvc.self;
         //    loginvc.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种
         //    loginvc.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种
         vc.onSetValue = ^(double price,double discount){
         vc.onSetValue = ^(double price,double discount){
@@ -2931,7 +3138,7 @@
             }
             }
             
             
             __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Update Price" completion:^{
             __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Update Price" completion:^{
-                [RANetwork request_update_cart_modelprice:[NSString stringWithFormat:@"%d",[[item_json valueForKey:@"cart_item_id"] intValue]] price:price discount:discount notes:notes completionHandler:^(NSMutableDictionary *result) {
+                [RANetwork request_update_cart_modelprice:cartid price:price discount:discount notes:notes completionHandler:^(NSMutableDictionary *result) {
                                             NSDictionary* cart_json = result;
                                             NSDictionary* cart_json = result;
                                             
                                             
                                 [waitalert dismissViewControllerAnimated:YES completion:^{
                                 [waitalert dismissViewControllerAnimated:YES completion:^{
@@ -3157,7 +3364,7 @@
         };
         };
         
         
         vc.notes=[item_json valueForKey:@"note"];
         vc.notes=[item_json valueForKey:@"note"];
-        vc.cart_id = [NSString stringWithFormat:@"%d",[[item_json valueForKey:@"cart_item_id"] intValue]];
+        vc.cart_id = [item_json valueForKey:@"cart_item_id"];//[NSString stringWithFormat:@"%d",[[item_json valueForKey:@"cart_item_id"] intValue]];
         //    vc.delegate = parentvc.self;
         //    vc.delegate = parentvc.self;
         //    loginvc.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种
         //    loginvc.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种
 //        vc.onSetValue = ^(){
 //        vc.onSetValue = ^(){
@@ -3300,9 +3507,10 @@
         
         
         [arr addObject:deleteRowAction];
         [arr addObject:deleteRowAction];
         
         
+#ifndef SCANNER_ORDER
         if(product_id.length>0&& is_rate==0)
         if(product_id.length>0&& is_rate==0)
             [arr addObject:addWatchAction];
             [arr addObject:addWatchAction];
-        
+#endif
         if(appDelegate.can_set_cart_price && product_id.length>0&& is_rate==0)
         if(appDelegate.can_set_cart_price && product_id.length>0&& is_rate==0)
         {
         {
             [arr addObject:editRowAction];
             [arr addObject:editRowAction];

+ 5 - 5
RedAnt ERP Mobile/common/Functions/category/CategoryViewController.m

@@ -1558,7 +1558,7 @@
 
 
         self.isrefreshing=true;
         self.isrefreshing=true;
         
         
-        [RANetwork request_categorylist:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:self.offset limit:20 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip completionHandler:^(NSMutableDictionary *result) {
+        [RANetwork request_categorylist:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:self.offset limit:30 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip completionHandler:^(NSMutableDictionary *result) {
             NSMutableDictionary* category_more = result;
             NSMutableDictionary* category_more = result;
             
             
             [self.mum stopAnimating];
             [self.mum stopAnimating];
@@ -1587,7 +1587,7 @@
                 [self.category_data setObject:items_json forKey:@"items"];
                 [self.category_data setObject:items_json forKey:@"items"];
                 self.offset+=count;
                 self.offset+=count;
                 
                 
-                if(count<20)
+                if(count<30)
                 {
                 {
                     self.loadall=true;
                     self.loadall=true;
                     
                     
@@ -1721,7 +1721,7 @@
             
             
             //        self.collectionview.userInteractionEnabled = false;
             //        self.collectionview.userInteractionEnabled = false;
             
             
-            [RANetwork request_categorylist:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:0 limit:20 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip completionHandler:^(NSMutableDictionary *result) {
+            [RANetwork request_categorylist:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:0 limit:30 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip completionHandler:^(NSMutableDictionary *result) {
                 NSMutableDictionary* category_data = result;
                 NSMutableDictionary* category_data = result;
                 [self.mum stopAnimating];
                 [self.mum stopAnimating];
                 self.isrefreshing=false;
                 self.isrefreshing=false;
@@ -2962,7 +2962,7 @@
         //        DebugLog(@"frame.size.height %f",frame.size.height);
         //        DebugLog(@"frame.size.height %f",frame.size.height);
         //        DebugLog(@"self.collectionview.contentSize.height %f",self.collectionview.contentSize.height);
         //        DebugLog(@"self.collectionview.contentSize.height %f",self.collectionview.contentSize.height);
         
         
-        if (contentOffsetPoint.y == (self.collectionview.contentSize.height - frame.size.height) /*|| self.collectionview.contentSize.height < frame.size.height*/)
+        if ((contentOffsetPoint.y >= (self.collectionview.contentSize.height - frame.size.height)) || (self.collectionview.contentSize.height < frame.size.height&& [self.category_data[@"count"] intValue]>=30))
             
             
         {
         {
             
             
@@ -2984,7 +2984,7 @@
         //        DebugLog(@"frame.size.height %f",frame.size.height);
         //        DebugLog(@"frame.size.height %f",frame.size.height);
         //        DebugLog(@"self.collectionview.contentSize.height %f",self.collectionview.contentSize.height);
         //        DebugLog(@"self.collectionview.contentSize.height %f",self.collectionview.contentSize.height);
         
         
-        if (contentOffsetPoint.x == (self.collectionview.contentSize.width - frame.size.width) /*|| self.collectionview.contentSize.width < frame.size.width*/)
+        if (contentOffsetPoint.x >= (self.collectionview.contentSize.width - frame.size.width) || (self.collectionview.contentSize.width < frame.size.width && [self.category_data[@"count"] intValue]>=30))
             
             
         {
         {
             if(self.isrefreshing)
             if(self.isrefreshing)

+ 1 - 0
RedAnt ERP Mobile/common/Functions/contact/CustomerEditViewController.h

@@ -10,4 +10,5 @@
 
 
 @interface CustomerEditViewController : CommonEditorViewController
 @interface CustomerEditViewController : CommonEditorViewController
 @property bool bnewcustomer;
 @property bool bnewcustomer;
+@property bool bolocustomer;
 @end
 @end

+ 13 - 152
RedAnt ERP Mobile/common/Functions/contact/CustomerEditViewController.m

@@ -95,6 +95,8 @@
 }
 }
 - (void)onBackClick:(UIButton *)sender {
 - (void)onBackClick:(UIButton *)sender {
     [self.navigationController popViewControllerAnimated:false];
     [self.navigationController popViewControllerAnimated:false];
+    if(self.returnValue)
+        self.returnValue(nil);
 }
 }
 
 
 - (void)onSaveClick:(UIButton *)sender {
 - (void)onSaveClick:(UIButton *)sender {
@@ -102,162 +104,21 @@
 
 
     [self.lastedit endEditing:true];
     [self.lastedit endEditing:true];
     [self.lasttextview endEditing:true];
     [self.lasttextview endEditing:true];
-//    self.cancommit=true;
-//    NSMutableDictionary* upparams=[[NSMutableDictionary alloc] init];
-//    //    [upparams setValue:[self.params valueForKey:@"cart2Checkbox"] forKey:@"cart2Checkbox"];
-//    int section_count=[[self.content_data_download valueForKey:@"section_count"] intValue];
-//    for(int i=0;i<section_count;i++)
-//    {
-//        NSMutableDictionary * sectionjson = [[self.content_data_download objectForKey:[NSString stringWithFormat:@"section_%d",i ]] mutableCopy];
-//        int item_count = [[sectionjson valueForKey:@"count"] intValue];
-//        for(int j=0;j<item_count;j++)
-//        {
-//            NSMutableDictionary * itemjson=[[sectionjson objectForKey:[NSString stringWithFormat:@"item_%d",j ]] mutableCopy];
-//            NSString* key = [itemjson valueForKey:@"name"];
-//            if(key==nil || key.length==0)
-//                continue;
-//            if([[itemjson valueForKey:@"control"] isEqualToString:@"enum"])
-//            {
-//                NSString* single_select = [itemjson valueForKey:@"single_select"];
-//                if([single_select isEqualToString:@"true"])
-//                {
-//                    NSDictionary* cadejson=[itemjson objectForKey:@"cadedate"];
-//                    int count = [[cadejson valueForKey:@"count"] intValue];
-//                    bool setvalue = false;
-//                    for(int cc=0;cc<count;cc++)
-//                    {
-//                        NSDictionary* valjson=[cadejson objectForKey:[NSString stringWithFormat:@"val_%d",cc]];
-//                        if([[valjson valueForKey:@"check"]intValue]==1)
-//                        {
-//                            [upparams setValue:[valjson valueForKey:@"value_id"] forKey:[itemjson valueForKey:@"name"]];
-//                            setvalue=true;
-//                            break;
-//                        }
-//                    }
-//                    if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] && setvalue==false)
-//                    {
-//                        self.cancommit = false;
-//                    }
-//                }
-//                else
-//                {
-//                    
-//                    NSMutableArray* checked = [[NSMutableArray alloc] init];
-//                    NSDictionary* cadejson=[itemjson objectForKey:@"cadedate"];
-//                    int count = [[cadejson valueForKey:@"count"] intValue];
-//                    // bool setvalue = false;
-//                    for(int cc=0;cc<count;cc++)
-//                    {
-//                        NSDictionary* valjson=[cadejson objectForKey:[NSString stringWithFormat:@"val_%d",cc]];
-//                        if([[valjson valueForKey:@"check"]intValue]==1)
-//                        {
-//                            
-//                            [checked addObject:[NSNumber numberWithInt:[[valjson valueForKey:@"value_id"] intValue]]];
-//                            //                            [upparams setValue:[valjson valueForKey:@"value_id"] forKey:[itemjson valueForKey:@"name"]];
-//                            //                            setvalue=true;
-//                            //                            break;
-//                        }
-//                    }
-//                    if([[itemjson valueForKey:@"required"] isEqualToString: @"true"]&&checked.count==0)
-//                    {
-//                        self.cancommit = false;
-//                    }
-//                    else
-//                    {
-//                        NSString * string = [checked componentsJoinedByString:@","];
-//                        [upparams setValue:string forKey:[itemjson valueForKey:@"name"]];
-//                    }
-//                }
-//                /*
-//                 upparams setValue:itemjson forKey:<#(NSString *)#>
-//                 
-//                 */
-//            }else
-//                if([[itemjson valueForKey:@"control"] isEqualToString:@"action"])
-//                {
-//                    if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] && [itemjson objectForKeyedSubscript:@"data"]==nil)
-//                        self.cancommit = false;
-//                }
-//                else if([[itemjson valueForKey:@"control"] isEqualToString:@"switch"])
-//                {
-//                    NSString* valuestr = [itemjson valueForKey:@"value"];
-//                    [upparams setValue:valuestr forKey:[itemjson valueForKey:@"name"]];
-//                    
-//                    NSString* value = [itemjson valueForKey:@"value"];
-//                    NSMutableDictionary* boolitem=nil;
-//                    NSMutableDictionary* subjson=nil;
-//                    if([value isEqualToString:@"true"])
-//                    {
-//                        boolitem =[[itemjson objectForKey:@"true"] mutableCopy];
-//                        
-//                    }
-//                    else
-//                    {
-//                        boolitem =[[itemjson objectForKey:@"false"] mutableCopy];
-//                        
-//                    }
-//                    subjson=[[boolitem objectForKey:@"sub_item"] mutableCopy];
-//                    if( subjson!=nil /*&& !active*/)
-//                    {
-//                        int sub_count = [[subjson valueForKey:@"count"] intValue];
-//                        for(int l=0;l<sub_count;l++)
-//                        {
-//                            NSMutableDictionary * modify_item=[[subjson objectForKey:[NSString stringWithFormat:@"item_%d",l ]] mutableCopy];
-//                            
-//                            
-//                            
-//                            
-//                            if([modify_item valueForKey:@"value"]!=nil && ![[modify_item valueForKey:@"value"]isEqualToString:@""])
-//                                [upparams setValue:[modify_item valueForKey:@"value"] forKey:[modify_item valueForKey:@"name"]];
-//                            else
-//                            {
-//                                if([[modify_item valueForKey:@"required"] isEqualToString: @"true"] )
-//                                    self.cancommit = false;
-//                            }
-//                        }
-//                        
-//                        
-//                        
-//                    }
-//                }
-//                else
-//                    if([[itemjson valueForKey:@"control"] isEqualToString:@"img"])
-//                    {
-//                        if([itemjson valueForKey:@"avalue"]!=nil && ![[itemjson valueForKey:@"avalue"]isEqualToString:@""])
-//                            [upparams setValue:[itemjson valueForKey:@"avalue"] forKey:[itemjson valueForKey:@"name"]];
-//                        else
-//                        {
-//                            if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] )
-//                                self.cancommit = false;
-//                        }
-//                    }
-//                    else
-//                    {
-//                        if([itemjson valueForKey:@"value"]!=nil && ![[itemjson valueForKey:@"value"]isEqualToString:@""])
-//                            [upparams setValue:[itemjson valueForKey:@"value"] forKey:[itemjson valueForKey:@"name"]];
-//                        else
-//                        {
-//                            if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] )
-//                                self.cancommit = false;
-//                        }
-//                    }
-//            upparams= [self subitem_param:itemjson addto:upparams ];
-//        }
-//    }
-//    if(self.cancommit==false)
-//    {
-//        [RAUtils alert_view:@"Fields with * mark cannot be empty." title:@"Some Requried Fields Are Missing."];
-//        self.content_data_control = [self translate_json:self.content_data_download changed:self.changed_data];
-//        //DebugLog(@"CONTENT translate:%@",[iSalesNetwork DataTOjsonString:self.content_data]);
-//        //[self.editorTable reloadData ];
-//        [self.editorTable reloadData];
-//        return;
-//    }
-    
+
     
     
     NSMutableDictionary* upparams = [self check_cancommit:true];
     NSMutableDictionary* upparams = [self check_cancommit:true];
     if(self.cancommit==false)
     if(self.cancommit==false)
         return;
         return;
+    
+    
+    if(self.bolocustomer)
+    {
+        [self.navigationController popViewControllerAnimated:false];
+        if(self.returnValue)
+            self.returnValue(upparams);
+        
+        return;
+    }
     __weak typeof(self) weakself = self;
     __weak typeof(self) weakself = self;
     __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Saving Contact" completion:^{
     __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Saving Contact" completion:^{
         resultHandler handler =^(NSMutableDictionary *result) {
         resultHandler handler =^(NSMutableDictionary *result) {

+ 32 - 0
RedAnt ERP Mobile/common/Functions/contact/CustomerInfoViewController.m

@@ -93,6 +93,16 @@
     [self.data_init setValue:customer_contact forKey:@"customer_contact"];
     [self.data_init setValue:customer_contact forKey:@"customer_contact"];
     //---------------- finish construct customer_contact----------------------
     //---------------- finish construct customer_contact----------------------
     
     
+#ifdef SCANNER_ORDER
+    [self.navigationController popViewControllerAnimated:false];
+    if(self.returnValue)
+    {
+        self.returnValue(self.data_init);
+        
+    }
+    return;
+#endif
+    
     AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
     AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
     if(self.update_order && appDelegate.order_code!=nil)
     if(self.update_order && appDelegate.order_code!=nil)
     {
     {
@@ -182,6 +192,17 @@
         
         
         
         
         UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
         UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
+#ifdef SCANNER_ORDER
+    [self.navigationController popViewControllerAnimated:false];
+    if(self.returnValue)
+    {
+        self.returnValue(nil);
+        
+    }
+    return;
+#endif
+            
+            
             __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Release Order" completion:^{
             __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Release Order" completion:^{
                 [RANetwork request_release_order:appDelegate.order_code withScreen:ScreenCodeCustomerInfo  completionHandler:^(NSMutableDictionary *result) {
                 [RANetwork request_release_order:appDelegate.order_code withScreen:ScreenCodeCustomerInfo  completionHandler:^(NSMutableDictionary *result) {
                                 NSDictionary* order_json = result;
                                 NSDictionary* order_json = result;
@@ -283,6 +304,17 @@
         
         
         UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
         UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
           
           
+#ifdef SCANNER_ORDER
+    [self.navigationController popViewControllerAnimated:false];
+    if(self.returnValue)
+    {
+        self.returnValue(nil);
+        
+    }
+    return;
+#endif
+            
+            
             if(appDelegate.user_type!=USER_ROLE_CUSTOMER)
             if(appDelegate.user_type!=USER_ROLE_CUSTOMER)
             {
             {
             appDelegate.contact_id=nil;
             appDelegate.contact_id=nil;

+ 145 - 0
RedAnt ERP Mobile/common/Functions/contact/offline_order_new_contact.json

@@ -0,0 +1,145 @@
+{
+    "result": 1,
+    "title": "Customer Information",
+    "section_count": 1,
+    "section_0": {
+        "title": "Customer Info",
+        "count": 19,
+        
+        "item_0": {
+            "aname": "Country",
+            "name": "customer_country",
+            "control": "text",
+            "value": ""
+        },
+        "item_1": {
+            "aname": "Company Name",
+            "name": "customer_name",
+            "control": "edit",
+            "value": ""
+        },
+        "item_2": {
+            "aname": "Contact ID",
+            "name": "customer_cid",
+            "control": "img",
+            "img_url_0":"business_card_0",
+            "img_url_1":"business_card_1",
+            "img_url_2":"business_card_2",
+            "img_url_aname_0":"business_card_0",
+            "img_url_aname_1":"business_card_1",
+            "img_url_aname_2":"business_card_2",
+            "value": ""
+        },
+        
+        "item_3": {
+            "aname": "Address 1",
+            "name": "customer_address1",
+            "control": "edit",
+            "value": ""
+        },
+        "item_4": {
+            "aname": "Address 2",
+            "name": "customer_address2",
+            "control": "edit",
+            "value": ""
+        },
+        "item_5": {
+            "aname": "Address 3",
+            "name": "customer_address3",
+            "control": "edit",
+            "value": ""
+        },
+        "item_6": {
+            "aname": "Address 4",
+            "name": "customer_address4",
+            "control": "edit",
+            "value": ""
+        },
+        "item_7": {
+            "aname": "Zip Code",
+            "name": "customer_zipcode",
+            "control": "text",
+            "value": ""
+        },
+        "item_8": {
+            "aname": "State/Province",
+            "name": "customer_state",
+            "control": "text",
+            "value": ""
+        },
+        "item_9": {
+            "aname": "City",
+            "name": "customer_city",
+            "control": "text",
+            "value": ""
+        },
+        "item_10": {
+            "aname": "Contact First Name",
+            "name": "customer_first_name",
+            "control": "edit",
+            "value": "",
+            "keyboard": "default"
+        },
+        "item_11": {
+            "aname": "Contact Last Name",
+            "name": "customer_last_name",
+            "control": "edit",
+            "value": "",
+            "keyboard": "default"
+        },
+        "item_12": {
+            "aname": "Phone",
+            "name": "customer_phone",
+            "control": "edit",
+            "value": "",
+            "keyboard": "phone"
+        },
+        "item_13": {
+            "aname": "Fax",
+            "name": "customer_fax",
+            "control": "edit",
+            "value": "",
+            "keyboard": "phone"
+        },
+        "item_14": {
+            "aname": "Email",
+            "name": "customer_email",
+            "control": "edit",
+            "value": "",
+            "keyboard": "email"
+        },
+        "item_15": {
+            "aname": "Contact Notes",
+            "name": "customer_contact_notes",
+            "control": "text_view",
+            "value": "",
+            "disable":"1",
+            
+        },
+        "item_16": {
+            "aname": "Price Type",
+            "name": "customer_price_type",
+            "control": "text",
+            "value": "",
+            
+        },
+        "item_17": {
+            "aname": "Contact Type",
+            "name": "customer_contact_type",
+            "control": "text",
+            "value": "",
+            
+        },
+        "item_18": {
+            "aname": "Sales Rep",
+            "name": "customer_sales_rep",
+            "control": "text",
+            "value": "",
+            
+        }
+        
+        
+        
+        
+    }
+}

+ 145 - 0
RedAnt ERP Mobile/common/Functions/contact/scan_contact.json

@@ -0,0 +1,145 @@
+{
+    "result": 1,
+    "title": "Customer Information",
+    "section_count": 1,
+    "section_0": {
+        "title": "Customer Info",
+        "count": 19,
+        
+        "item_0": {
+            "aname": "Country",
+            "name": "customer_country",
+            "control": "text",
+            "value": ""
+        },
+        "item_1": {
+            "aname": "Company Name",
+            "name": "customer_name",
+            "control": "edit",
+            "value": ""
+        },
+        "item_2": {
+            "aname": "Contact ID",
+            "name": "customer_cid",
+            "control": "img",
+            "img_url_0":"business_card_0",
+            "img_url_1":"business_card_1",
+            "img_url_2":"business_card_2",
+            "img_url_aname_0":"business_card_0",
+            "img_url_aname_1":"business_card_1",
+            "img_url_aname_2":"business_card_2",
+            "value": ""
+        },
+        
+        "item_3": {
+            "aname": "Address 1",
+            "name": "customer_address1",
+            "control": "edit",
+            "value": ""
+        },
+        "item_4": {
+            "aname": "Address 2",
+            "name": "customer_address2",
+            "control": "edit",
+            "value": ""
+        },
+        "item_5": {
+            "aname": "Address 3",
+            "name": "customer_address3",
+            "control": "edit",
+            "value": ""
+        },
+        "item_6": {
+            "aname": "Address 4",
+            "name": "customer_address4",
+            "control": "edit",
+            "value": ""
+        },
+        "item_7": {
+            "aname": "Zip Code",
+            "name": "customer_zipcode",
+            "control": "text",
+            "value": ""
+        },
+        "item_8": {
+            "aname": "State/Province",
+            "name": "customer_state",
+            "control": "text",
+            "value": ""
+        },
+        "item_9": {
+            "aname": "City",
+            "name": "customer_city",
+            "control": "text",
+            "value": ""
+        },
+        "item_10": {
+            "aname": "Contact First Name",
+            "name": "customer_first_name",
+            "control": "edit",
+            "value": "",
+            "keyboard": "default"
+        },
+        "item_11": {
+            "aname": "Contact Last Name",
+            "name": "customer_last_name",
+            "control": "edit",
+            "value": "",
+            "keyboard": "default"
+        },
+        "item_12": {
+            "aname": "Phone",
+            "name": "customer_phone",
+            "control": "edit",
+            "value": "",
+            "keyboard": "phone"
+        },
+        "item_13": {
+            "aname": "Fax",
+            "name": "customer_fax",
+            "control": "edit",
+            "value": "",
+            "keyboard": "phone"
+        },
+        "item_14": {
+            "aname": "Email",
+            "name": "customer_email",
+            "control": "edit",
+            "value": "",
+            "keyboard": "email"
+        },
+        "item_15": {
+            "aname": "Contact Notes",
+            "name": "customer_contact_notes",
+            "control": "text_view",
+            "value": "",
+            "disable":"1",
+            
+        },
+        "item_16": {
+            "aname": "Price Type",
+            "name": "customer_price_type",
+            "control": "text",
+            "value": "",
+            
+        },
+        "item_17": {
+            "aname": "Contact Type",
+            "name": "customer_contact_type",
+            "control": "text",
+            "value": "",
+            
+        },
+        "item_18": {
+            "aname": "Sales Rep",
+            "name": "customer_sales_rep",
+            "control": "text",
+            "value": "",
+            
+        }
+        
+        
+        
+        
+    }
+}

+ 8 - 0
RedAnt ERP Mobile/common/Functions/offline/OLDataProvider.h

@@ -149,4 +149,12 @@ typedef void(^resultHandler)(NSMutableDictionary *result);
 //+(void) offline_add2cartbyname :(NSMutableDictionary *) params completionHandler:(resultHandler)result;
 //+(void) offline_add2cartbyname :(NSMutableDictionary *) params completionHandler:(resultHandler)result;
 //+(void) offline_movewish2cart:(NSMutableDictionary *)params completionHandler:(resultHandler)result;
 //+(void) offline_movewish2cart:(NSMutableDictionary *)params completionHandler:(resultHandler)result;
 //+(void) addAll:(NSMutableDictionary *) params from:(int)from completionHandler:(resultHandler)result;
 //+(void) addAll:(NSMutableDictionary *) params from:(int)from completionHandler:(resultHandler)result;
+
+
+//scan order
++(void) saveScanCart:(NSMutableDictionary*) cart;
++(void) save2submitScanOrder;
++(void) deleteScanOrder:(NSString*) order_code;
++(NSMutableDictionary*) loadScanTemplate:(NSString*)file;
++(NSString*) scanTemplatePath:(NSString*)file;
 @end
 @end

+ 317 - 0
RedAnt ERP Mobile/common/Functions/offline/OLDataProvider.m

@@ -21,6 +21,7 @@
 #import "config.h"
 #import "config.h"
 #import "ImageUtils.h"
 #import "ImageUtils.h"
 #import "RAConvertor.h"
 #import "RAConvertor.h"
+#import "ActiveViewController.h"
 
 
 @interface OLDataProvider ()
 @interface OLDataProvider ()
 
 
@@ -1820,6 +1821,282 @@ NSString* gprice = [self get_portfolio_price :params[@"contact_id"] item_id:item
 //    [uploadTask resume];
 //    [uploadTask resume];
 //    
 //    
 //}
 //}
+
+//+(void) saveScanOrder:(NSMutableDictionary*) ordercontent
+//{
+//    
+//    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+//    NSString *documents = [paths objectAtIndex:0];
+//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//        
+//        
+//    NSString *orderdir = [documents stringByAppendingPathComponent:appDelegate.order_code];
+//    
+//    NSString *orderPath = [orderdir stringByAppendingPathComponent:@"order.json"];
+//    
+//    
+//    
+//    [RAUtils dicttofile:orderPath dict:ordercontent];
+//    
+//    
+//
+//    
+//    
+//    NSString *contactpath = [orderdir stringByAppendingPathComponent:@"contact.json"];
+//    
+//    
+//    
+//    [RAUtils dicttofile:contactpath dict:appDelegate.customerInfo];
+//    
+//    
+//    NSString *cartpath = [orderdir stringByAppendingPathComponent:@"cart.json"];
+//    
+//    
+//    
+//    [RAUtils dicttofile:cartpath dict:RASingleton.sharedInstance.scan_cart];
+//    
+//    
+//    
+//    
+//    NSMutableDictionary* orderlist = nil;
+//        NSString *orderlistPath = [documents stringByAppendingPathComponent:@"orderlist.json"];
+//    
+//    
+//            if (![[NSFileManager defaultManager] fileExistsAtPath:orderlistPath]) {
+// 
+//                
+//                orderlist = [NSMutableDictionary new];
+//                
+////                    [orderlist addObject:appDelegate.order_code];
+////                    [RAUtils dicttofile:orderlistPath dict:orderlist];
+//                
+//          }
+//            else
+//            {
+//                orderlist=[[RAUtils dictfromfile:orderlistPath] mutableCopy];
+//                
+////                    [orderlist insertObject:appDelegate.order_code atIndex:0];
+// 
+////                    [RAUtils dicttofile:orderlistPath dict:orderlist];
+//            }
+//    
+//    NSMutableDictionary* orderitem = [NSMutableDictionary new];
+//    orderitem[@"create_by"] = appDelegate.user;
+//    orderitem[@"price"] = upparams[@"total_price"];
+//    orderitem[@"customer_name"] = upparams[@"customer_contact"];
+//    orderitem[@"purchase_time"] = [RAUtils current_date_time];
+//    orderitem[@"order_status"] = @"Saved Order";
+//    orderitem[@"order_code"] = appDelegate.order_code;
+//    orderitem[@"model_count"] =[ NSString stringWithFormat:@"%@",RASingleton.sharedInstance.scan_cart[@"section_0"][@"count"] ];
+//    
+//    
+//    int count = [orderlist[@"count"] intValue];
+//    
+//    NSMutableDictionary* newlist  = [NSMutableDictionary new];
+//    
+//    newlist[@"item_0"]=orderitem;
+//    int newcount = 1;
+//    for(int i=0;i<count;i++)
+//    {
+//        NSMutableDictionary* item = orderlist[[NSString stringWithFormat:@"item_%d",i]];
+//        if([item[@"order_code"] isEqualToString: appDelegate.order_code ])
+//            continue;
+//        else
+//        {
+//            newlist[[NSString stringWithFormat:@"item_%d",newcount]] = item;
+//            newcount++;
+//        }
+//    }
+//    newlist[@"count"] = @(newcount);
+//    [RAUtils dicttofile:orderlistPath dict:newlist];
+//    
+//    return;
+//}
++(void) save2submitScanOrder
+{
+    
+        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+        NSString *documents = [paths objectAtIndex:0];
+        AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+            
+    NSMutableDictionary* orderlist = nil;
+        NSString *orderlistPath = [documents stringByAppendingPathComponent:@"orderlist.json"];
+    
+    
+            if (![[NSFileManager defaultManager] fileExistsAtPath:orderlistPath]) {
+ 
+                // order list 为空,不用维护
+#ifdef RA_NOTIFICATION
+                [ActiveViewController Notify:@"CartViewController,ScanOrderListViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+#else
+            
+            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+            [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
+#endif
+                return;
+                
+//                    [orderlist addObject:appDelegate.order_code];
+//                    [RAUtils dicttofile:orderlistPath dict:orderlist];
+                
+          }
+            else
+            {
+                orderlist=[[RAUtils dictfromfile:orderlistPath] mutableCopy];
+                
+//                    [orderlist insertObject:appDelegate.order_code atIndex:0];
+ 
+//                    [RAUtils dicttofile:orderlistPath dict:orderlist];
+            }
+    
+  
+    int count = [orderlist[@"count"] intValue];
+    
+    NSMutableDictionary* newlist  = [NSMutableDictionary new];
+    
+    
+    int newcount = 0;
+    for(int i=0;i<count;i++)
+    {
+        NSMutableDictionary* item = orderlist[[NSString stringWithFormat:@"item_%d",i]];
+        if([item[@"order_code"] isEqualToString: appDelegate.order_code ])
+            continue;
+        else
+        {
+            newlist[[NSString stringWithFormat:@"item_%d",newcount]] = item;
+            newcount++;
+        }
+    }
+    newlist[@"count"] = @(newcount);
+    [RAUtils dicttofile:orderlistPath dict:newlist];
+#ifdef RA_NOTIFICATION
+    [ActiveViewController Notify:@"CartViewController,ScanOrderListViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+#else
+            
+            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+            [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
+#endif
+    
+}
+
++(NSString*) scanTemplatePath:(NSString*)file
+{
+    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+    NSString *documents = [paths objectAtIndex:0];
+    NSString* unZipTo=[documents stringByAppendingPathComponent:@"download"];
+    NSString* templatefile = [unZipTo stringByAppendingPathComponent:file];
+    return templatefile;
+}
++(NSMutableDictionary*) loadScanTemplate:(NSString*)file
+{
+    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+    NSString *documents = [paths objectAtIndex:0];
+    NSString* unZipTo=[documents stringByAppendingPathComponent:@"download"];
+    NSString* templatefile = [unZipTo stringByAppendingPathComponent:file];
+    NSDictionary* dict=[RAUtils dictfromfile:templatefile];
+    return [dict mutableCopy];
+}
++(void) deleteScanOrder:(NSString*) order_code
+{
+    
+    if(order_code.length==0)
+        return;
+        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+        NSString *documents = [paths objectAtIndex:0];
+        AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+            
+    
+    if([appDelegate.order_code isEqualToString:order_code])
+    {
+        //要删除的订单是当前打开的订单;
+        appDelegate.order_code = nil;
+        appDelegate.customerInfo = nil;
+        RASingleton.sharedInstance.scan_cart = nil;
+        appDelegate.contact_id = nil;
+        [appDelegate updateScanButton:false];
+
+        [appDelegate update_count_mark];
+    }
+    //删除订单目录
+    [[NSFileManager defaultManager] removeItemAtPath:[documents stringByAppendingPathComponent:order_code] error:nil];
+    //维护订单列表
+    NSMutableDictionary* orderlist = nil;
+        NSString *orderlistPath = [documents stringByAppendingPathComponent:@"orderlist.json"];
+    
+    
+            if (![[NSFileManager defaultManager] fileExistsAtPath:orderlistPath]) {
+ 
+                // order list 为空,不用维护
+                
+                
+        #ifdef RA_NOTIFICATION
+                [ActiveViewController Notify:@"CartViewController,ScanOrderListViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+                
+        #else
+                    
+                    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+                    [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
+        #endif
+                return;
+                
+//                    [orderlist addObject:appDelegate.order_code];
+//                    [RAUtils dicttofile:orderlistPath dict:orderlist];
+                
+          }
+            else
+            {
+                orderlist=[[RAUtils dictfromfile:orderlistPath] mutableCopy];
+                
+//                    [orderlist insertObject:appDelegate.order_code atIndex:0];
+ 
+//                    [RAUtils dicttofile:orderlistPath dict:orderlist];
+            }
+    
+  
+    int count = [orderlist[@"count"] intValue];
+    
+    NSMutableDictionary* newlist  = [NSMutableDictionary new];
+    
+    
+    int newcount = 0;
+    for(int i=0;i<count;i++)
+    {
+        NSMutableDictionary* item = orderlist[[NSString stringWithFormat:@"item_%d",i]];
+        if([item[@"order_code"] isEqualToString: order_code ])
+            continue;
+        else
+        {
+            newlist[[NSString stringWithFormat:@"item_%d",newcount]] = item;
+            newcount++;
+        }
+    }
+    newlist[@"count"] = @(newcount);
+    [RAUtils dicttofile:orderlistPath dict:newlist];
+#ifdef RA_NOTIFICATION
+    [ActiveViewController Notify:@"CartViewController,ScanOrderListViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+#else
+            
+            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+            [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
+#endif
+}
+
++(void) saveScanCart:(NSMutableDictionary*) cart
+{
+    if(cart==nil)
+        return;
+    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+    NSString *documents = [paths objectAtIndex:0];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+        
+        
+    NSString *orderdir = [documents stringByAppendingPathComponent:appDelegate.order_code];
+    
+    NSString *cartpath = [orderdir stringByAppendingPathComponent:@"cart.json"];
+    
+    
+    
+    [RAUtils dicttofile:cartpath dict:cart];
+}
 +(NSDictionary *) prepareUpload:(NSArray*) arr_order params:(NSMutableDictionary*)add_params
 +(NSDictionary *) prepareUpload:(NSArray*) arr_order params:(NSMutableDictionary*)add_params
 {
 {
     assert(add_params[@"user"]!=nil);
     assert(add_params[@"user"]!=nil);
@@ -5086,6 +5363,29 @@ NSString* gprice = [self get_portfolio_price :params[@"contact_id"] item_id:item
     }
     }
     
     
     
     
+    if(!  [fileManager fileExistsAtPath:img_cache isDirectory:&bdir])
+    {
+        
+        NSError *error = nil;
+        bool bsuccess=[fileManager createDirectoryAtPath:img_cache withIntermediateDirectories:YES attributes:nil error:&error];
+        
+        if(!bsuccess)
+        {
+            DebugLog(@"Create img_cache folder failed");
+            [ret setValue:[NSNumber numberWithInt:RESULT_ERROR] forKey:@"result"];
+            return [RAConvertor dict2data:ret];
+        }
+        
+        //        if(bsuccess)
+        //        {
+        //            sqlite3 *db = [self get_db];
+        //
+        //            [self execSql:[NSString stringWithFormat:@"insert into img_cache(name) values('%@')",name] db:db];
+        //            [iSalesDB close_db:db];
+        //        }
+    }
+    
+    
     //    NSData *imagedata=UIImagePNGRepresentation(self.imgview.image);
     //    NSData *imagedata=UIImagePNGRepresentation(self.imgview.image);
     
     
     //JEPG格式
     //JEPG格式
@@ -11669,6 +11969,23 @@ NSString* gprice = [self get_portfolio_price :params[@"contact_id"] item_id:item
 }
 }
 
 
 #pragma mark add to cart by name
 #pragma mark add to cart by name
++(NSData*) offline_add2cartbymodelQR :(NSMutableDictionary *) params
+{
+
+    NSString *orderCode = [params objectForKey:@"orderCode"];
+    
+    NSDictionary *newParams = @{
+                                @"product_id" : params[@"product_id_string"],
+                                @"orderCode"  : orderCode,
+                                @"can_create_backorder":params[@"can_create_backorder"]
+                                };
+    
+    
+    
+    
+    
+    return [self offline_add2cart:[newParams mutableCopy]];
+}
 +(NSData*) offline_add2cartbyupc :(NSMutableDictionary *) params
 +(NSData*) offline_add2cartbyupc :(NSMutableDictionary *) params
 {
 {
 
 

+ 4 - 0
RedAnt ERP Mobile/common/Functions/offline/OfflineSettingViewController.m

@@ -19,6 +19,10 @@
 @end
 @end
 
 
 @implementation OfflineSettingViewController
 @implementation OfflineSettingViewController
+
+- (IBAction)onAboutClick:(id)sender {
+}
+
 - (IBAction)onUnlockClicked:(id)sender {
 - (IBAction)onUnlockClicked:(id)sender {
     
     
     UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Unlock offline" message:@"Unlock offline to sync with another account. Current user data will lost!" preferredStyle:UIAlertControllerStyleAlert];
     UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Unlock offline" message:@"Unlock offline to sync with another account. Current user data will lost!" preferredStyle:UIAlertControllerStyleAlert];

File diff suppressed because it is too large
+ 2 - 1112
RedAnt ERP Mobile/common/Functions/order/CreateOrderViewController.m


+ 1 - 0
RedAnt ERP Mobile/common/Functions/order/OrderDetailViewController.m

@@ -2448,6 +2448,7 @@
 #ifdef BUILD_HMLG
 #ifdef BUILD_HMLG
     return 4;
     return 4;
 #endif
 #endif
+    return 4;
 }
 }
 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
 {
 {

+ 2 - 1
RedAnt ERP Mobile/common/Functions/order/OrderListViewController.m

@@ -306,7 +306,8 @@
     }
     }
     
     
     // 非Customer用户不用区分Sales Order 和 Shop Order
     // 非Customer用户不用区分Sales Order 和 Shop Order
-    if (appDelegate.user_type != USER_ROLE_CUSTOMER || (appDelegate.user_type == USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeCustomer)) {
+    if (appDelegate.user_type != USER_ROLE_CUSTOMER || (appDelegate.user_type == USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeCustomer))
+    {
         self.orderTypeSegmentControl.hidden = YES;
         self.orderTypeSegmentControl.hidden = YES;
         
         
         
         

+ 5 - 5
RedAnt ERP Mobile/common/Functions/search+itemsearch/ItemSearchViewController.m

@@ -562,7 +562,7 @@
         
         
         self.isrefreshing=true;
         self.isrefreshing=true;
         
         
-        [RANetwork request_itemsearch:self.offset limit:20 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller completionHandler:^(NSMutableDictionary *result) {
+        [RANetwork request_itemsearch:self.offset limit:30 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller completionHandler:^(NSMutableDictionary *result) {
             NSDictionary* category_more=result;
             NSDictionary* category_more=result;
             [self.mum stopAnimating];
             [self.mum stopAnimating];
             self.isrefreshing=false;
             self.isrefreshing=false;
@@ -589,7 +589,7 @@
                 [self.category_data setObject:items_json forKey:@"items"];
                 [self.category_data setObject:items_json forKey:@"items"];
                 self.offset+=count;
                 self.offset+=count;
                 
                 
-                if(count<20)
+                if(count<30)
                 {
                 {
                     self.loadall=true;
                     self.loadall=true;
                     
                     
@@ -751,7 +751,7 @@
          self.mum.hidden = false;
          self.mum.hidden = false;
          [self.mum startAnimating];
          [self.mum startAnimating];
          
          
-         [RANetwork request_itemsearch:0 limit:20 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller completionHandler:^(NSMutableDictionary *result) {
+         [RANetwork request_itemsearch:0 limit:30 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller completionHandler:^(NSMutableDictionary *result) {
              NSDictionary* category_data=result;
              NSDictionary* category_data=result;
            [self.mum stopAnimating];
            [self.mum stopAnimating];
            self.isrefreshing=false;
            self.isrefreshing=false;
@@ -2698,7 +2698,7 @@
         DebugLog(@"frame.size.height %f",frame.size.height);
         DebugLog(@"frame.size.height %f",frame.size.height);
         DebugLog(@"self.collectionview.contentSize.height %f",self.collectionview.contentSize.height);
         DebugLog(@"self.collectionview.contentSize.height %f",self.collectionview.contentSize.height);
         
         
-        if (contentOffsetPoint.y == (self.collectionview.contentSize.height - frame.size.height) /*|| self.collectionview.contentSize.height < frame.size.height*/)
+        if ((contentOffsetPoint.y >= (self.collectionview.contentSize.height - frame.size.height)) || (self.collectionview.contentSize.height < frame.size.height&& [self.category_data[@"count"] intValue]>=30))
             
             
         {
         {
             if(self.isrefreshing)
             if(self.isrefreshing)
@@ -2718,7 +2718,7 @@
         DebugLog(@"frame.size.height %f",frame.size.height);
         DebugLog(@"frame.size.height %f",frame.size.height);
         DebugLog(@"self.collectionview.contentSize.height %f",self.collectionview.contentSize.height);
         DebugLog(@"self.collectionview.contentSize.height %f",self.collectionview.contentSize.height);
         
         
-        if (contentOffsetPoint.x == (self.collectionview.contentSize.width - frame.size.width) /*|| self.collectionview.contentSize.width < frame.size.width*/)
+        if (contentOffsetPoint.x >= (self.collectionview.contentSize.width - frame.size.width) || (self.collectionview.contentSize.width < frame.size.width && [self.category_data[@"count"] intValue]>=30))
             
             
         {
         {
             if(self.isrefreshing)
             if(self.isrefreshing)

+ 5 - 5
RedAnt ERP Mobile/common/Functions/search+itemsearch/SearchViewController.m

@@ -1675,7 +1675,7 @@
         
         
         self.isrefreshing=true;
         self.isrefreshing=true;
         
         
-        [RANetwork request_search:self.offset limit:20 keywords:self.keywords matchfull:self.loadmore_matchfull completionHandler:^(NSMutableDictionary *result) {
+        [RANetwork request_search:self.offset limit:30 keywords:self.keywords matchfull:self.loadmore_matchfull completionHandler:^(NSMutableDictionary *result) {
             NSMutableDictionary* category_more=result;
             NSMutableDictionary* category_more=result;
             
             
             [self.mum stopAnimating];
             [self.mum stopAnimating];
@@ -1703,7 +1703,7 @@
                 [items_json setValue: [NSString stringWithFormat:@"%ld",newcount] forKey:@"count"];
                 [items_json setValue: [NSString stringWithFormat:@"%ld",newcount] forKey:@"count"];
                 [self.category_data setObject:items_json forKey:@"items"];
                 [self.category_data setObject:items_json forKey:@"items"];
                 self.offset+=count;
                 self.offset+=count;
-                if(count<20)
+                if(count<30)
                 {
                 {
                     self.loadall=true;
                     self.loadall=true;
                     
                     
@@ -1861,7 +1861,7 @@
         self.mum.hidden = false;
         self.mum.hidden = false;
         [self.mum startAnimating];
         [self.mum startAnimating];
         self.loadmore_matchfull = self.switch_matchfull.isOn;
         self.loadmore_matchfull = self.switch_matchfull.isOn;
-        [RANetwork request_search:0 limit:20 keywords:self.keywords
+        [RANetwork request_search:0 limit:30 keywords:self.keywords
                         matchfull:self.loadmore_matchfull completionHandler:^(NSMutableDictionary *result) {
                         matchfull:self.loadmore_matchfull completionHandler:^(NSMutableDictionary *result) {
             NSMutableDictionary* category_data=result;
             NSMutableDictionary* category_data=result;
             
             
@@ -2660,7 +2660,7 @@
         DebugLog(@"frame.size.height %f",frame.size.height);
         DebugLog(@"frame.size.height %f",frame.size.height);
         DebugLog(@"self.collectionview.contentSize.height %f",self.collectionview.contentSize.height);
         DebugLog(@"self.collectionview.contentSize.height %f",self.collectionview.contentSize.height);
         
         
-        if (contentOffsetPoint.y == (self.collectionview.contentSize.height - frame.size.height) /*|| self.collectionview.contentSize.height < frame.size.height*/)
+        if ((contentOffsetPoint.y >= (self.collectionview.contentSize.height - frame.size.height)) || (self.collectionview.contentSize.height < frame.size.height && [self.category_data[@"count"] intValue]>=30))
             
             
         {
         {
             if(self.isrefreshing)
             if(self.isrefreshing)
@@ -2680,7 +2680,7 @@
         DebugLog(@"frame.size.height %f",frame.size.height);
         DebugLog(@"frame.size.height %f",frame.size.height);
         DebugLog(@"self.collectionview.contentSize.height %f",self.collectionview.contentSize.height);
         DebugLog(@"self.collectionview.contentSize.height %f",self.collectionview.contentSize.height);
         
         
-        if (contentOffsetPoint.x == (self.collectionview.contentSize.width - frame.size.width) /*|| self.collectionview.contentSize.width < frame.size.width*/)
+        if (contentOffsetPoint.x >= (self.collectionview.contentSize.width - frame.size.width) || (self.collectionview.contentSize.width < frame.size.width && [self.category_data[@"count"] intValue]>=30))
             
             
         {
         {
             if(self.isrefreshing)
             if(self.isrefreshing)

+ 4 - 0
RedAnt ERP Mobile/common/RASingleton.h

@@ -39,6 +39,10 @@ typedef enum {
 @property (nonatomic,assign) BOOL currentOrderIsMerged;///<当前打开的订单是否为Purchas Order
 @property (nonatomic,assign) BOOL currentOrderIsMerged;///<当前打开的订单是否为Purchas Order
 @property (nonatomic,strong) NSDictionary *customerInfo;///<登录账号信息
 @property (nonatomic,strong) NSDictionary *customerInfo;///<登录账号信息
 ///
 ///
+@property bool enable_OfflineOrder; // 离线订单开关
+@property (nonatomic,strong) NSMutableDictionary *scan_cart;///<购物车
+///
+///
 ///
 ///
 #pragma mark - Global Param Begin
 #pragma mark - Global Param Begin
 
 

+ 47 - 1
RedAnt ERP Mobile/common/RASingleton.m

@@ -8,6 +8,8 @@
 
 
 #import "RASingleton.h"
 #import "RASingleton.h"
 #import "NotificationNameCenter.h"
 #import "NotificationNameCenter.h"
+#import "AppDelegate.h"
+#import "RAUtils.h"
 @interface RASingleton ()
 @interface RASingleton ()
 
 
 @property (nonatomic,strong) NSMutableDictionary *globalParameters;
 @property (nonatomic,strong) NSMutableDictionary *globalParameters;
@@ -41,19 +43,63 @@
 
 
 - (void)dealloc {
 - (void)dealloc {
     [[NSNotificationCenter defaultCenter] removeObserver:self];
     [[NSNotificationCenter defaultCenter] removeObserver:self];
+    
+    [self removeObserver:self forKeyPath:@"stack_contents"];
 }
 }
-
+//- (instancetype)init {
+//    if (self = [super init]) {
+//        
+//        [self addObserver:self forKeyPath:@"scan_cart"
+//                                       options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld)
+//                                       context:@"content changed"];
+//      
+//    }
+//    return self;
+//}
 
 
 + (instancetype)sharedInstance {
 + (instancetype)sharedInstance {
+    
     static RASingleton *singleton = nil;
     static RASingleton *singleton = nil;
     static dispatch_once_t onceToken;
     static dispatch_once_t onceToken;
     dispatch_once(&onceToken, ^{
     dispatch_once(&onceToken, ^{
+        
         singleton = [[RASingleton alloc] init];
         singleton = [[RASingleton alloc] init];
         [[NSNotificationCenter defaultCenter] addObserver:singleton selector:@selector(handleLogin:) name:User_LoginOK_Notification object:nil];
         [[NSNotificationCenter defaultCenter] addObserver:singleton selector:@selector(handleLogin:) name:User_LoginOK_Notification object:nil];
+        
+
+        
+//        self addObserver:self forKeyPath:self.scan_cart options:<#(NSKeyValueObservingOptions)#> context:<#(nullable void *)#>
     });
     });
     return singleton;
     return singleton;
 }
 }
 
 
+//- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
+//{
+//    if(self.enable_OfflineOrder)
+//    {
+//    if([keyPath isEqualToString:@"scan_cart"])
+//    {
+//        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+//        NSString *documents = [paths objectAtIndex:0];
+//        AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//            
+//            
+//        NSString *orderdir = [documents stringByAppendingPathComponent:appDelegate.order_code];
+//        
+//        NSString *cartpath = [orderdir stringByAppendingPathComponent:@"cart.json"];
+//        
+//        
+//        
+//        [RAUtils dicttofile:cartpath dict:self.scan_cart];
+//        
+//        
+//        self.scan_cart addObserver:<#(nonnull NSObject *)#> forKeyPath:<#(nonnull NSString *)#> options:<#(NSKeyValueObservingOptions)#> context:<#(nullable void *)#>
+//        
+//    }
+//    }
+//
+//}
+
 - (void)setGlobal_lock:(BOOL)global_lock {
 - (void)setGlobal_lock:(BOOL)global_lock {
     _global_lock = global_lock;
     _global_lock = global_lock;
     if (global_lock) {
     if (global_lock) {

+ 11 - 0
RedAnt ERP Mobile/common/const.h

@@ -36,12 +36,19 @@
 
 
 #define COLOR(R,G,B,A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]
 #define COLOR(R,G,B,A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]
 
 
+// OFFLINE ORDER 
+#define OOC_OFFLINE_CONTACT 0
+#define OOC_ONLINE_CONTACT 1
+#define OOC_CREATE_ORDER 10
+
+
 #define DBNAME    @"iSales.db"
 #define DBNAME    @"iSales.db"
 #define CYCLESCROLL_STOPTIMMER  @"CycleScroll stop timer"
 #define CYCLESCROLL_STOPTIMMER  @"CycleScroll stop timer"
 #define URL_REMOTE 1
 #define URL_REMOTE 1
 #define URL_LOCAL 0
 #define URL_LOCAL 0
 #define URL_NONE 2
 #define URL_NONE 2
 #define URL_RESTORE 3
 #define URL_RESTORE 3
+#define URL_FILE 4
 
 
 #define RETRY_DELAY 15 //offline getting data retry delay.
 #define RETRY_DELAY 15 //offline getting data retry delay.
 #define DOWNLOAD_RETRY_TIMES 5 //retry times for single download.
 #define DOWNLOAD_RETRY_TIMES 5 //retry times for single download.
@@ -52,6 +59,10 @@
 #define REFRESH_DATA 2
 #define REFRESH_DATA 2
 
 
 
 
+
+#define RESULT_BARCODE_ERROR             -50
+
+
 #define AP_USER_NOT_EXIST				 0
 #define AP_USER_NOT_EXIST				 0
 #define AP_USER_NOT_AUTH				 1
 #define AP_USER_NOT_AUTH				 1
 #define AP_USER_AUTH					 2
 #define AP_USER_AUTH					 2

+ 1 - 0
RedAnt ERP Mobile/common/customUI/ImageUploadViewController.h

@@ -15,6 +15,7 @@
 @property (strong, nonatomic) IBOutlet UIButton *buttonUpload;
 @property (strong, nonatomic) IBOutlet UIButton *buttonUpload;
 @property (strong, nonatomic) IBOutlet UIProgressView *uploadProgress;
 @property (strong, nonatomic) IBOutlet UIProgressView *uploadProgress;
 @property (nonatomic , copy) void (^returnValue)(NSString* url_down,NSString* url_up,UIImage* img);
 @property (nonatomic , copy) void (^returnValue)(NSString* url_down,NSString* url_up,UIImage* img);
+@property bool local_store;
 @property bool dirty;
 @property bool dirty;
 @property (strong, nonatomic) UIImage* img;
 @property (strong, nonatomic) UIImage* img;
 @end
 @end

+ 36 - 1
RedAnt ERP Mobile/common/customUI/ImageUploadViewController.m

@@ -22,6 +22,7 @@
 #endif
 #endif
 //#import "iSalesNetwork.h"
 //#import "iSalesNetwork.h"
 #import "NetworkUtils.h"
 #import "NetworkUtils.h"
+#import "OLDataProvider.h"
 
 
 //#import "UIAlertView+AFNetworking.h"
 //#import "UIAlertView+AFNetworking.h"
 
 
@@ -221,7 +222,41 @@
     self.uploadProgress.progress = 0;
     self.uploadProgress.progress = 0;
     
     
     AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
     AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-    
+#ifdef SCANNER_ORDER
+//    if(RASingleton.sharedInstance.enable_OfflineOrder)
+    {
+        
+        NSData *data = [OLDataProvider offline_saveBusinesscard:UIImagePNGRepresentation(self.imgview.image)];;
+        
+        // 再将NSData转为字符串
+        NSString *jsonStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
+        
+        //            NSMutableString *str = [[NSMutableString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
+        
+        DebugLog(@"data string: %@",jsonStr);
+        NSError *error=nil;
+        NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
+       
+        
+        
+        if([[json valueForKey:@"result"] intValue]==2)
+        {
+            NSString* img_url_down = json[@"img_url_aname"];
+            NSString* img_url_up = json[@"img_url"];
+            
+            if(self.returnValue)
+                self.returnValue(img_url_down,img_url_up,self.imgview.image);
+            
+            [self.navigationController popViewControllerAnimated:false];
+        }
+        else
+        {
+            [RAUtils message_alert:[json valueForKey:@"err_msg"] title:@"Upload Image" controller:self] ;
+        }
+        
+        return;
+    }
+#endif
 #ifdef OFFLINE_MODE
 #ifdef OFFLINE_MODE
     if(appDelegate.offline_mode)
     if(appDelegate.offline_mode)
     {
     {

+ 1 - 1
RedAnt ERP Mobile/common/data_provider/RANetwork.h

@@ -102,7 +102,7 @@ extern NSString *const ScreenCodeOfflineSync;
 //+(NSDictionary*) portfolio_setPrice:(NSString*) watchlist_id price:(float) price discount:(float) discount QTY:(int)qty qty_p:(float) qty_p notes:(NSString*)notes;
 //+(NSDictionary*) portfolio_setPrice:(NSString*) watchlist_id price:(float) price discount:(float) discount QTY:(int)qty qty_p:(float) qty_p notes:(NSString*)notes;
 //+(NSDictionary*) portfolio_setQTY:(NSString*) watchlist_id QTY:(int)qty;
 //+(NSDictionary*) portfolio_setQTY:(NSString*) watchlist_id QTY:(int)qty;
 
 
-//+(NSDictionary*) cart_remove:(NSString* ) item_ids;
+//+(NSDictionary*) cart_setGeneralNote:(NSString* ) item_ids;
 //+(NSDictionary*) cart_check:(NSString* ) item_ids;
 //+(NSDictionary*) cart_check:(NSString* ) item_ids;
 //+(NSDictionary*) watchlist_remove:(NSString* ) item_ids;
 //+(NSDictionary*) watchlist_remove:(NSString* ) item_ids;
 
 

+ 483 - 323
RedAnt ERP Mobile/common/data_provider/RANetwork.m

@@ -14,6 +14,7 @@
 #import "ERPUtils.h"
 #import "ERPUtils.h"
 #import "RAConvertor.h"
 #import "RAConvertor.h"
 #import "ActiveViewController.h"
 #import "ActiveViewController.h"
+#import "ZipArchive.h"
 
 
 NSString *const kScreenName = @"kScreenName";
 NSString *const kScreenName = @"kScreenName";
 NSString *const kAction = @"kAction";
 NSString *const kAction = @"kAction";
@@ -721,61 +722,61 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
 //    else
 //    else
 //        return nil;
 //        return nil;
 //}
 //}
-+(NSDictionary*) move_cart2wish:(NSString* ) item_ids
-{
-    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
-    __block AppDelegate *appDelegate = nil;
-    
-    dispatch_sync(dispatch_get_main_queue(), ^{
-        //some UI methods ej
-        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
-    });
-    if(appDelegate.user!=nil)
-        [params setValue:appDelegate.user forKey:@"user"];
-    if(appDelegate.contact_id!=nil)
-        [params setValue:appDelegate.contact_id forKey:@"contactId"];
-    if(appDelegate.password!=nil)
-        [params setValue:appDelegate.password forKey:@"password"];
-    if(appDelegate.order_code!=nil)
-        [params setValue:appDelegate.order_code forKey:@"orderCode"];
-    [params setValue:item_ids forKey:@"cartItemId"];
-    //    [params setValue:editor forKey:@"editor"];
-    
-    [params setValue:ScreenCodeCart forKey:kScreenName];
-    //    [params setValue:@"Cart Move To Wish List" forKey:kAction];
-    
-    NSData* json = nil;
-    if(appDelegate.offline_mode)
-    {
-        json= [OLDataProvider offline_movecart2wish:params];
-    }
-    else
-    {
-        if(![self IsNetworkAvailable])
-            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
-        
-        json=[self get_json:URL_CART2WISH parameters:params];
-    }
-    if(json!=nil)
-    {
-        NSError *error=nil;
-        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
-        int result = [[jsobj valueForKey:@"result"] intValue];
-        
-        if (result==2)
-        {
-            
-            //appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
-            appDelegate.wish_count =[[jsobj valueForKey:@"wish_count"] intValue];
-            //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
-            
-            [appDelegate update_count_mark];
-        }
-        return jsobj;
-    }
-    else
-        return nil;
-}
+//+(NSDictionary*) move_cart2wish:(NSString* ) item_ids
+//{
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    __block AppDelegate *appDelegate = nil;
+//
+//    dispatch_sync(dispatch_get_main_queue(), ^{
+//        //some UI methods ej
+//        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    });
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//    if(appDelegate.order_code!=nil)
+//        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+//    [params setValue:item_ids forKey:@"cartItemId"];
+//    //    [params setValue:editor forKey:@"editor"];
+//
+//    [params setValue:ScreenCodeCart forKey:kScreenName];
+//    //    [params setValue:@"Cart Move To Wish List" forKey:kAction];
+//
+//    NSData* json = nil;
+//    if(appDelegate.offline_mode)
+//    {
+//        json= [OLDataProvider offline_movecart2wish:params];
+//    }
+//    else
+//    {
+//        if(![self IsNetworkAvailable])
+//            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//
+//        json=[self get_json:URL_CART2WISH parameters:params];
+//    }
+//    if(json!=nil)
+//    {
+//        NSError *error=nil;
+//        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//        int result = [[jsobj valueForKey:@"result"] intValue];
+//
+//        if (result==2)
+//        {
+//
+//            //appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+//            appDelegate.wish_count =[[jsobj valueForKey:@"wish_count"] intValue];
+//            //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+//
+//            [appDelegate update_count_mark];
+//        }
+//        return jsobj;
+//    }
+//    else
+//        return nil;
+//}
 //+(NSDictionary*) move_wish2cart:(NSString* ) item_ids
 //+(NSDictionary*) move_wish2cart:(NSString* ) item_ids
 //{
 //{
 //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
 //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
@@ -831,62 +832,62 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
 //        return nil;
 //        return nil;
 //}
 //}
 
 
-+(NSDictionary*) cart_remove:(NSString* ) item_ids
-{
-    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
-    __block AppDelegate *appDelegate = nil;
-    
-    dispatch_sync(dispatch_get_main_queue(), ^{
-        //some UI methods ej
-        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
-    });
-    if(appDelegate.user!=nil)
-        [params setValue:appDelegate.user forKey:@"user"];
-    if(appDelegate.contact_id!=nil)
-        [params setValue:appDelegate.contact_id forKey:@"contactId"];
-    if(appDelegate.password!=nil)
-        [params setValue:appDelegate.password forKey:@"password"];
-    
-    if(appDelegate.order_code!=nil)
-        [params setValue:appDelegate.order_code forKey:@"orderCode"];
-    [params setValue:item_ids forKey:@"cartItemId"];
-    //    [params setValue:editor forKey:@"editor"];
-    
-    [params setValue:ScreenCodeCart forKey:kScreenName];
-    //    [params setValue:@"" forKey:kAction];
-    
-    NSData* json=nil;
-    if(appDelegate.offline_mode)
-    {
-        json= [OLDataProvider offline_cartremove:params];
-    }
-    else
-    {
-        if(![self IsNetworkAvailable])
-            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
-        
-        json=[self get_json:URL_CART_REMOVE parameters:params];
-    }
-    if(json!=nil)
-    {
-        NSError *error=nil;
-        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
-        
-        int result = [[jsobj valueForKey:@"result"] intValue];
-        
-        if (result==2)
-        {
-            
-            appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
-            
-            
-            [appDelegate update_count_mark];
-        }
-        return jsobj;
-    }
-    else
-        return nil;
-}
+//+(NSDictionary*) cart_remove:(NSString* ) item_ids
+//{
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    __block AppDelegate *appDelegate = nil;
+//
+//    dispatch_sync(dispatch_get_main_queue(), ^{
+//        //some UI methods ej
+//        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    });
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//
+//    if(appDelegate.order_code!=nil)
+//        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+//    [params setValue:item_ids forKey:@"cartItemId"];
+//    //    [params setValue:editor forKey:@"editor"];
+//
+//    [params setValue:ScreenCodeCart forKey:kScreenName];
+//    //    [params setValue:@"" forKey:kAction];
+//
+//    NSData* json=nil;
+//    if(appDelegate.offline_mode)
+//    {
+//        json= [OLDataProvider offline_cartremove:params];
+//    }
+//    else
+//    {
+//        if(![self IsNetworkAvailable])
+//            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//
+//        json=[self get_json:URL_CART_REMOVE parameters:params];
+//    }
+//    if(json!=nil)
+//    {
+//        NSError *error=nil;
+//        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//
+//        int result = [[jsobj valueForKey:@"result"] intValue];
+//
+//        if (result==2)
+//        {
+//
+//            appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+//
+//
+//            [appDelegate update_count_mark];
+//        }
+//        return jsobj;
+//    }
+//    else
+//        return nil;
+//}
 
 
 
 
 //+(NSDictionary*) cart_check:(NSString* ) item_ids
 //+(NSDictionary*) cart_check:(NSString* ) item_ids
@@ -2595,49 +2596,49 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
 //    }
 //    }
 //    return jsobj;
 //    return jsobj;
 //}
 //}
-+(NSDictionary*) cart_setPrice:(NSString*) cart_id price:(float) price discount:(float) discount notes:(NSString*) notes
-{
-    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
-    __block AppDelegate *appDelegate = nil;
-    
-    dispatch_sync(dispatch_get_main_queue(), ^{
-        //some UI methods ej
-        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
-    });
-    if(appDelegate.user!=nil)
-        [params setValue:appDelegate.user forKey:@"user"];
-    if(appDelegate.contact_id!=nil)
-        [params setValue:appDelegate.contact_id forKey:@"contactId"];
-    if(appDelegate.password!=nil)
-        [params setValue:appDelegate.password forKey:@"password"];
-    
-    [params setValue:cart_id forKey:@"cartitem_id"];
-    [params setValue:notes forKey:@"item_note"];
-    
-    [params setValue:[NSString stringWithFormat:@"%f",price] forKey:@"price"];
-    
-    [params setValue:[NSString stringWithFormat:@"%f",discount] forKey:@"discount"];
-    
-    [params setObject:ScreenCodeCart forKey:kScreenName];
-    
-    NSData* json= nil;
-    if(appDelegate.offline_mode)
-    {
-        json=[OLDataProvider offline_cartsetprice:params];
-    }
-    else
-    {
-        if(![self IsNetworkAvailable])
-            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
-        
-        json=[self get_json:URL_CART_SET_PRICE parameters:params];
-    }
-    if(json==nil)
-        return nil;
-    NSError *error=nil;
-    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
-    return jsobj;
-}
+//+(NSDictionary*) cart_setPrice:(NSString*) cart_id price:(float) price discount:(float) discount notes:(NSString*) notes
+//{
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    __block AppDelegate *appDelegate = nil;
+//
+//    dispatch_sync(dispatch_get_main_queue(), ^{
+//        //some UI methods ej
+//        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    });
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//
+//    [params setValue:cart_id forKey:@"cartitem_id"];
+//    [params setValue:notes forKey:@"item_note"];
+//
+//    [params setValue:[NSString stringWithFormat:@"%f",price] forKey:@"price"];
+//
+//    [params setValue:[NSString stringWithFormat:@"%f",discount] forKey:@"discount"];
+//
+//    [params setObject:ScreenCodeCart forKey:kScreenName];
+//
+//    NSData* json= nil;
+//    if(appDelegate.offline_mode)
+//    {
+//        json=[OLDataProvider offline_cartsetprice:params];
+//    }
+//    else
+//    {
+//        if(![self IsNetworkAvailable])
+//            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//
+//        json=[self get_json:URL_CART_SET_PRICE parameters:params];
+//    }
+//    if(json==nil)
+//        return nil;
+//    NSError *error=nil;
+//    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//    return jsobj;
+//}
 //+(NSDictionary*) portfolio_setQTY:(NSString*) watchlist_id QTY:(int)qty
 //+(NSDictionary*) portfolio_setQTY:(NSString*) watchlist_id QTY:(int)qty
 //{
 //{
 //    if(![self IsNetworkAvailable])
 //    if(![self IsNetworkAvailable])
@@ -2717,135 +2718,135 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
     NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
     return jsobj;
     return jsobj;
 }
 }
-+(NSDictionary*) cart_setGeneralNote:(NSString*) order_code notes:(NSString*) notes
-{
-    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
-    __block AppDelegate *appDelegate = nil;
-    
-    dispatch_sync(dispatch_get_main_queue(), ^{
-        //some UI methods ej
-        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
-    });
-    if(appDelegate.user!=nil)
-        [params setValue:appDelegate.user forKey:@"user"];
-    if(appDelegate.contact_id!=nil)
-        [params setValue:appDelegate.contact_id forKey:@"contactId"];
-    if(appDelegate.password!=nil)
-        [params setValue:appDelegate.password forKey:@"password"];
-    
-    [params setValue:order_code forKey:@"orderCode"];
-    
-    [params setObject:ScreenCodeCart forKey:kScreenName];
-    
-    if(notes.length==0)
-        notes=@"";
-    
-    
-    [params setValue:notes forKey:@"comments"];
-    NSData* json=nil;
-    if(appDelegate.offline_mode)
-    {
-        json= [OLDataProvider offline_updategnotes:params];
-    }
-    else
-    {
-        if(![self IsNetworkAvailable])
-            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
-        
-        json=[self get_json:URL_CART_GENERAL_NOTES parameters:params];
-    }
-    if(json==nil)
-        return nil;
-    NSError *error=nil;
-    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
-    return jsobj;
-}
-+(NSDictionary*) cart_setItemNote:(NSString*) cart_id notes:(NSString*) notes
-{
-    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
-    __block AppDelegate *appDelegate = nil;
-    
-    dispatch_sync(dispatch_get_main_queue(), ^{
-        //some UI methods ej
-        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
-    });
-    if(appDelegate.user!=nil)
-        [params setValue:appDelegate.user forKey:@"user"];
-    if(appDelegate.contact_id!=nil)
-        [params setValue:appDelegate.contact_id forKey:@"contactId"];
-    if(appDelegate.password!=nil)
-        [params setValue:appDelegate.password forKey:@"password"];
-    
-    [params setValue:cart_id forKey:@"cartitem_id"];
-    
-    [params setObject:ScreenCodeCart forKey:kScreenName];
-    
-    if(notes.length==0)
-        notes=@"";
-    
-    
-    [params setValue:notes forKey:@"notes"];
-    NSData* json=nil;
-    if(appDelegate.offline_mode)
-    {
-        json= [OLDataProvider offline_cartsetlnotes:params];
-    }
-    else
-    {
-        if(![self IsNetworkAvailable])
-            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
-        
-        json=[self get_json:URL_CART_ITEM_NOTES parameters:params];
-    }
-    if(json==nil)
-        return nil;
-    NSError *error=nil;
-    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
-    return jsobj;
-}
-+(NSDictionary*) cart_setFree:(NSString*) cart_id isfree:(bool) isfree
-{
-    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
-    __block AppDelegate *appDelegate = nil;
-    
-    dispatch_sync(dispatch_get_main_queue(), ^{
-        //some UI methods ej
-        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
-    });
-    if(appDelegate.user!=nil)
-        [params setValue:appDelegate.user forKey:@"user"];
-    if(appDelegate.contact_id!=nil)
-        [params setValue:appDelegate.contact_id forKey:@"contactId"];
-    if(appDelegate.password!=nil)
-        [params setValue:appDelegate.password forKey:@"password"];
-    
-    [params setValue:cart_id forKey:@"cartitem_id"];
-    
-    [params setObject:ScreenCodeCart forKey:kScreenName];
-    
-    NSString* free=nil;
-    
-    if(isfree)
-        free=@"true";
-    else
-        free=@"false";
-    
-    [params setValue:free forKey:@"free_giveaway"];
-    
-    if(appDelegate.offline_mode)
-    {
-        return [OLDataProvider offline_notimpl];
-    }
-    if(![self IsNetworkAvailable])
-        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
-    
-    NSData* json=[self get_json:URL_CART_SET_PRICE parameters:params];
-    if(json==nil)
-        return nil;
-    NSError *error=nil;
-    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
-    return jsobj;
-}
+//+(NSDictionary*) cart_setGeneralNote:(NSString*) order_code notes:(NSString*) notes
+//{
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    __block AppDelegate *appDelegate = nil;
+//
+//    dispatch_sync(dispatch_get_main_queue(), ^{
+//        //some UI methods ej
+//        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    });
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//
+//    [params setValue:order_code forKey:@"orderCode"];
+//
+//    [params setObject:ScreenCodeCart forKey:kScreenName];
+//
+//    if(notes.length==0)
+//        notes=@"";
+//
+//
+//    [params setValue:notes forKey:@"comments"];
+//    NSData* json=nil;
+//    if(appDelegate.offline_mode)
+//    {
+//        json= [OLDataProvider offline_updategnotes:params];
+//    }
+//    else
+//    {
+//        if(![self IsNetworkAvailable])
+//            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//
+//        json=[self get_json:URL_CART_GENERAL_NOTES parameters:params];
+//    }
+//    if(json==nil)
+//        return nil;
+//    NSError *error=nil;
+//    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//    return jsobj;
+//}
+//+(NSDictionary*) cart_setItemNote:(NSString*) cart_id notes:(NSString*) notes
+//{
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    __block AppDelegate *appDelegate = nil;
+//
+//    dispatch_sync(dispatch_get_main_queue(), ^{
+//        //some UI methods ej
+//        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    });
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//
+//    [params setValue:cart_id forKey:@"cartitem_id"];
+//
+//    [params setObject:ScreenCodeCart forKey:kScreenName];
+//
+//    if(notes.length==0)
+//        notes=@"";
+//
+//
+//    [params setValue:notes forKey:@"notes"];
+//    NSData* json=nil;
+//    if(appDelegate.offline_mode)
+//    {
+//        json= [OLDataProvider offline_cartsetlnotes:params];
+//    }
+//    else
+//    {
+//        if(![self IsNetworkAvailable])
+//            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//
+//        json=[self get_json:URL_CART_ITEM_NOTES parameters:params];
+//    }
+//    if(json==nil)
+//        return nil;
+//    NSError *error=nil;
+//    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//    return jsobj;
+//}
+//+(NSDictionary*) cart_setFree:(NSString*) cart_id isfree:(bool) isfree
+//{
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    __block AppDelegate *appDelegate = nil;
+//
+//    dispatch_sync(dispatch_get_main_queue(), ^{
+//        //some UI methods ej
+//        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    });
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//
+//    [params setValue:cart_id forKey:@"cartitem_id"];
+//
+//    [params setObject:ScreenCodeCart forKey:kScreenName];
+//
+//    NSString* free=nil;
+//
+//    if(isfree)
+//        free=@"true";
+//    else
+//        free=@"false";
+//
+//    [params setValue:free forKey:@"free_giveaway"];
+//
+//    if(appDelegate.offline_mode)
+//    {
+//        return [OLDataProvider offline_notimpl];
+//    }
+//    if(![self IsNetworkAvailable])
+//        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//
+//    NSData* json=[self get_json:URL_CART_SET_PRICE parameters:params];
+//    if(json==nil)
+//        return nil;
+//    NSError *error=nil;
+//    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//    return jsobj;
+//}
 //+(NSDictionary*) cart_setQTY:(NSString*) cart_id value:(int) value
 //+(NSDictionary*) cart_setQTY:(NSString*) cart_id value:(int) value
 //{
 //{
 //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
 //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
@@ -2882,45 +2883,45 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
 //    return jsobj;
 //    return jsobj;
 //
 //
 //}
 //}
-+(NSDictionary*) cart_incresement:(NSString*) cart_id increse:(bool) increse
-{
-    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
-    __block AppDelegate *appDelegate = nil;
-    
-    dispatch_sync(dispatch_get_main_queue(), ^{
-        //some UI methods ej
-        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
-    });
-    if(appDelegate.user!=nil)
-        [params setValue:appDelegate.user forKey:@"user"];
-    if(appDelegate.contact_id!=nil)
-        [params setValue:appDelegate.contact_id forKey:@"contactId"];
-    if(appDelegate.password!=nil)
-        [params setValue:appDelegate.password forKey:@"password"];
-    
-    [params setValue:cart_id forKey:@"cartitem_id"];
-    
-    if(increse)
-        [params setValue:@"1" forKey:@"incrementType"];
-    else
-        [params setValue:@"0" forKey:@"incrementType"];
-    
-    
-    
-    if(appDelegate.offline_mode)
-    {
-        return [OLDataProvider offline_notimpl];
-    }
-    if(![self IsNetworkAvailable])
-        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
-    
-    NSData* json=[self get_json:URL_CART_INCRESEMENT parameters:params];
-    if(json==nil)
-        return nil;
-    NSError *error=nil;
-    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
-    return jsobj;
-}
+//+(NSDictionary*) cart_incresement:(NSString*) cart_id increse:(bool) increse
+//{
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    __block AppDelegate *appDelegate = nil;
+//
+//    dispatch_sync(dispatch_get_main_queue(), ^{
+//        //some UI methods ej
+//        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    });
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//
+//    [params setValue:cart_id forKey:@"cartitem_id"];
+//
+//    if(increse)
+//        [params setValue:@"1" forKey:@"incrementType"];
+//    else
+//        [params setValue:@"0" forKey:@"incrementType"];
+//
+//
+//
+//    if(appDelegate.offline_mode)
+//    {
+//        return [OLDataProvider offline_notimpl];
+//    }
+//    if(![self IsNetworkAvailable])
+//        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//
+//    NSData* json=[self get_json:URL_CART_INCRESEMENT parameters:params];
+//    if(json==nil)
+//        return nil;
+//    NSError *error=nil;
+//    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//    return jsobj;
+//}
 +(NSDictionary*) finish_download_Offline:(NSString* )vid
 +(NSDictionary*) finish_download_Offline:(NSString* )vid
 {
 {
     if(![self IsNetworkAvailable])
     if(![self IsNetworkAvailable])
@@ -6971,6 +6972,54 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     
     
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
     
     
+    
+#ifdef SCANNER_ORDER
+ 
+    
+    if(RASingleton.sharedInstance.enable_OfflineOrder)
+    {
+//        appDelegate.cart_count = [[RASingleton.sharedInstance.scan_cart valueForKey:@"cart_count"] intValue];
+//
+//
+//        [appDelegate update_count_mark];
+        
+        NSArray* arr=[RAConvertor string2arr:item_ids separator:@","];
+
+        
+//        NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:URL_SO_CART ofType:@"json" ]];
+        
+        NSMutableDictionary* cartTemplate=[OLDataProvider loadScanTemplate:@"scan_cart.json"];
+        NSMutableDictionary* newsection =[cartTemplate[@"section_0"] mutableCopy];
+        
+        
+        int newcount = 0;
+        
+        
+    NSMutableDictionary* section = [RASingleton.sharedInstance.scan_cart[@"section_0"] mutableCopy];
+        int count = [section[@"count"] intValue];
+        for(int i=0;i<count;i++)
+        {
+            NSMutableDictionary* item = [section[[NSString stringWithFormat:@"item_%d",i]] mutableCopy];
+            
+            int index  = [arr indexOfObject:item[@"cart_item_id"]] ;
+            if(index <0)
+            {
+                newsection[[NSString stringWithFormat:@"item_%d",newcount]] = item;
+                newcount ++;
+            }
+            
+            
+          
+        }
+        newsection[@"count"]=@(newcount);
+        RASingleton.sharedInstance.scan_cart[@"section_0"] = newsection;
+        [OLDataProvider saveScanCart:RASingleton.sharedInstance.scan_cart];
+        result(RASingleton.sharedInstance.scan_cart);
+        return;
+    }
+    
+#endif
+    
     if(appDelegate.user!=nil)
     if(appDelegate.user!=nil)
         [params setValue:appDelegate.user forKey:@"user"];
         [params setValue:appDelegate.user forKey:@"user"];
     if(appDelegate.contact_id!=nil)
     if(appDelegate.contact_id!=nil)
@@ -7277,6 +7326,9 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
 +(void)request_cart:(int)sort completionHandler:(resultHandler)result
 +(void)request_cart:(int)sort completionHandler:(resultHandler)result
 {
 {
     
     
+    
+
+    
     DebugLog(@"iSalesNetwork::request_Cart");
     DebugLog(@"iSalesNetwork::request_Cart");
     
     
     
     
@@ -7286,6 +7338,18 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     
     
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
     
     
+    
+    if(RASingleton.sharedInstance.enable_OfflineOrder)
+    {
+        appDelegate.cart_count = [[RASingleton.sharedInstance.scan_cart valueForKey:@"cart_count"] intValue];
+        
+        
+        [appDelegate update_count_mark];
+        result(RASingleton.sharedInstance.scan_cart);
+        return;
+    }
+    
+    
     if(appDelegate.user!=nil)
     if(appDelegate.user!=nil)
         [params setValue:appDelegate.user forKey:@"user"];
         [params setValue:appDelegate.user forKey:@"user"];
     //    if(appDelegate.contact_id!=nil)
     //    if(appDelegate.contact_id!=nil)
@@ -8840,6 +8904,32 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
 {
 {
     NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
     NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
     AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
     AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    
+    if(RASingleton.sharedInstance.enable_OfflineOrder)
+    {
+//        appDelegate.cart_count = [[RASingleton.sharedInstance.scan_cart valueForKey:@"cart_count"] intValue];
+//
+//
+//        [appDelegate update_count_mark];
+    NSMutableDictionary* section = [RASingleton.sharedInstance.scan_cart[@"section_0"] mutableCopy];
+        int count = [section[@"count"] intValue];
+        for(int i=0;i<count;i++)
+        {
+            NSMutableDictionary* item = [section[[NSString stringWithFormat:@"item_%d",i]] mutableCopy];
+            if([item[@"cart_item_id"] isEqualToString:cart_id])
+            {
+                item[@"count"] =@(value);
+                section[[NSString stringWithFormat:@"item_%d",i]] = item;
+                break;
+            }
+        }
+        RASingleton.sharedInstance.scan_cart[@"section_0"] = section;
+        [OLDataProvider saveScanCart:RASingleton.sharedInstance.scan_cart];
+        result(RASingleton.sharedInstance.scan_cart);
+        return;
+    }
+    
+    
     if(appDelegate.user!=nil)
     if(appDelegate.user!=nil)
         [params setValue:appDelegate.user forKey:@"user"];
         [params setValue:appDelegate.user forKey:@"user"];
     if(appDelegate.contact_id!=nil)
     if(appDelegate.contact_id!=nil)
@@ -8896,7 +8986,17 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
     NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
     AppDelegate *appDelegate = nil;
     AppDelegate *appDelegate = nil;
     
     
-    
+    if(RASingleton.sharedInstance.enable_OfflineOrder)
+    {
+//        appDelegate.cart_count = [[RASingleton.sharedInstance.scan_cart valueForKey:@"cart_count"] intValue];
+//
+//
+//        [appDelegate update_count_mark];
+        RASingleton.sharedInstance.scan_cart[@"general_note"] = notes;
+        [OLDataProvider saveScanCart:RASingleton.sharedInstance.scan_cart];
+        result(RASingleton.sharedInstance.scan_cart);
+        return;
+    }
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
     if(appDelegate.user!=nil)
     if(appDelegate.user!=nil)
         [params setValue:appDelegate.user forKey:@"user"];
         [params setValue:appDelegate.user forKey:@"user"];
@@ -8958,6 +9058,32 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     
     
     
     
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
+    
+    
+    if(RASingleton.sharedInstance.enable_OfflineOrder)
+    {
+//        appDelegate.cart_count = [[RASingleton.sharedInstance.scan_cart valueForKey:@"cart_count"] intValue];
+//
+//
+//        [appDelegate update_count_mark];
+    NSMutableDictionary* section = [RASingleton.sharedInstance.scan_cart[@"section_0"] mutableCopy];
+        int count = [section[@"count"] intValue];
+        for(int i=0;i<count;i++)
+        {
+            NSMutableDictionary* item = [section[[NSString stringWithFormat:@"item_%d",i]] mutableCopy];
+            if([item[@"cart_item_id"] isEqualToString:cart_id])
+            {
+                item[@"note"] =notes;
+                section[[NSString stringWithFormat:@"item_%d",i]] = item;
+                break;
+            }
+        }
+        RASingleton.sharedInstance.scan_cart[@"section_0"] = section;
+        [OLDataProvider saveScanCart:RASingleton.sharedInstance.scan_cart];
+        result(RASingleton.sharedInstance.scan_cart);
+        return;
+    }
+    
     if(appDelegate.user!=nil)
     if(appDelegate.user!=nil)
         [params setValue:appDelegate.user forKey:@"user"];
         [params setValue:appDelegate.user forKey:@"user"];
     if(appDelegate.contact_id!=nil)
     if(appDelegate.contact_id!=nil)
@@ -10159,6 +10285,35 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     
     
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
     
     
+    
+    if(RASingleton.sharedInstance.enable_OfflineOrder)
+    {
+//        appDelegate.cart_count = [[RASingleton.sharedInstance.scan_cart valueForKey:@"cart_count"] intValue];
+//
+//
+//        [appDelegate update_count_mark];
+    NSMutableDictionary* section = [RASingleton.sharedInstance.scan_cart[@"section_0"] mutableCopy];
+        int count = [section[@"count"] intValue];
+        for(int i=0;i<count;i++)
+        {
+            NSMutableDictionary* item = [section[[NSString stringWithFormat:@"item_%d",i]] mutableCopy];
+            if([item[@"cart_item_id"] isEqualToString:cart_id])
+            {
+                int item_count = [item[@"count"] intValue];
+                item[@"unit_price"] =@(price);
+                item[@"discount"] =@(discount);
+                item[@"subtotal_price"] =@(price*item_count);
+                item[@"note"] =@"PRICE MODIFIED";
+                section[[NSString stringWithFormat:@"item_%d",i]] = item;
+                break;
+            }
+        }
+        RASingleton.sharedInstance.scan_cart[@"section_0"] = section;
+        [OLDataProvider saveScanCart:RASingleton.sharedInstance.scan_cart];
+        result(RASingleton.sharedInstance.scan_cart);
+        return;
+    }
+    
     if(appDelegate.user!=nil)
     if(appDelegate.user!=nil)
         [params setValue:appDelegate.user forKey:@"user"];
         [params setValue:appDelegate.user forKey:@"user"];
     if(appDelegate.contact_id!=nil)
     if(appDelegate.contact_id!=nil)
@@ -10679,6 +10834,11 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     
     
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
     
     
+    
+   
+    
+    
+    
     if(appDelegate.user!=nil)
     if(appDelegate.user!=nil)
         [params setValue:appDelegate.user forKey:@"user"];
         [params setValue:appDelegate.user forKey:@"user"];
     if(appDelegate.contact_id!=nil)
     if(appDelegate.contact_id!=nil)

+ 22 - 4
RedAnt ERP Mobile/iSales-CONTRAST.xcodeproj/project.pbxproj

@@ -62,6 +62,8 @@
 		3C69618323C7156D0075172A /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C69617F23C7156D0075172A /* WebViewController.m */; };
 		3C69618323C7156D0075172A /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C69617F23C7156D0075172A /* WebViewController.m */; };
 		3C69618423C7156D0075172A /* wkweb.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C69618023C7156D0075172A /* wkweb.storyboard */; };
 		3C69618423C7156D0075172A /* wkweb.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C69618023C7156D0075172A /* wkweb.storyboard */; };
 		3C7E5A8E237BDB0C006D0105 /* PortfolioListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7E5A8C237BDB0C006D0105 /* PortfolioListViewController.m */; };
 		3C7E5A8E237BDB0C006D0105 /* PortfolioListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7E5A8C237BDB0C006D0105 /* PortfolioListViewController.m */; };
+		3C872A232797F1C800BE1FC8 /* OLOSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C872A202797F1C800BE1FC8 /* OLOSettingViewController.m */; };
+		3C872A242797F1C800BE1FC8 /* scan_cart.json in Resources */ = {isa = PBXBuildFile; fileRef = 3C872A212797F1C800BE1FC8 /* scan_cart.json */; };
 		3CDDB25C273A564200681F78 /* DefaultTableHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB25A273A564200681F78 /* DefaultTableHeaderView.m */; };
 		3CDDB25C273A564200681F78 /* DefaultTableHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB25A273A564200681F78 /* DefaultTableHeaderView.m */; };
 		3CDDB262273A59DF00681F78 /* TouchImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB260273A59DF00681F78 /* TouchImageView.m */; };
 		3CDDB262273A59DF00681F78 /* TouchImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB260273A59DF00681F78 /* TouchImageView.m */; };
 		3CDDB265273A59EF00681F78 /* RTLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB264273A59EF00681F78 /* RTLabel.m */; };
 		3CDDB265273A59EF00681F78 /* RTLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB264273A59EF00681F78 /* RTLabel.m */; };
@@ -398,6 +400,9 @@
 		3C69618123C7156D0075172A /* WebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebViewController.h; path = "../../common/WK PDF+Web/WebViewController.h"; sourceTree = "<group>"; };
 		3C69618123C7156D0075172A /* WebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebViewController.h; path = "../../common/WK PDF+Web/WebViewController.h"; sourceTree = "<group>"; };
 		3C7E5A8C237BDB0C006D0105 /* PortfolioListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PortfolioListViewController.m; path = common/Functions/portfolio/PortfolioListViewController.m; sourceTree = SOURCE_ROOT; };
 		3C7E5A8C237BDB0C006D0105 /* PortfolioListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PortfolioListViewController.m; path = common/Functions/portfolio/PortfolioListViewController.m; sourceTree = SOURCE_ROOT; };
 		3C7E5A8D237BDB0C006D0105 /* PortfolioListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PortfolioListViewController.h; path = common/Functions/portfolio/PortfolioListViewController.h; sourceTree = SOURCE_ROOT; };
 		3C7E5A8D237BDB0C006D0105 /* PortfolioListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PortfolioListViewController.h; path = common/Functions/portfolio/PortfolioListViewController.h; sourceTree = SOURCE_ROOT; };
+		3C872A202797F1C800BE1FC8 /* OLOSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OLOSettingViewController.m; path = common/Functions/OLO/OLOSettingViewController.m; sourceTree = SOURCE_ROOT; };
+		3C872A212797F1C800BE1FC8 /* scan_cart.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = scan_cart.json; path = common/Functions/OLO/scan_cart.json; sourceTree = SOURCE_ROOT; };
+		3C872A222797F1C800BE1FC8 /* OLOSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OLOSettingViewController.h; path = common/Functions/OLO/OLOSettingViewController.h; sourceTree = SOURCE_ROOT; };
 		3CDDB25A273A564200681F78 /* DefaultTableHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DefaultTableHeaderView.m; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.m; sourceTree = "<group>"; };
 		3CDDB25A273A564200681F78 /* DefaultTableHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DefaultTableHeaderView.m; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.m; sourceTree = "<group>"; };
 		3CDDB25B273A564200681F78 /* DefaultTableHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DefaultTableHeaderView.h; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.h; sourceTree = "<group>"; };
 		3CDDB25B273A564200681F78 /* DefaultTableHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DefaultTableHeaderView.h; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.h; sourceTree = "<group>"; };
 		3CDDB25F273A597B00681F78 /* const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = const.h; path = common/const.h; sourceTree = SOURCE_ROOT; };
 		3CDDB25F273A597B00681F78 /* const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = const.h; path = common/const.h; sourceTree = SOURCE_ROOT; };
@@ -947,6 +952,16 @@
 			path = ../../common/HUD;
 			path = ../../common/HUD;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
 		};
 		};
+		3C872A1F2797F1AD00BE1FC8 /* Scaner Order */ = {
+			isa = PBXGroup;
+			children = (
+				3C872A222797F1C800BE1FC8 /* OLOSettingViewController.h */,
+				3C872A202797F1C800BE1FC8 /* OLOSettingViewController.m */,
+				3C872A212797F1C800BE1FC8 /* scan_cart.json */,
+			);
+			name = "Scaner Order";
+			sourceTree = "<group>";
+		};
 		4254CCDB1FB1AB6600C8B4B6 /* Order Editor */ = {
 		4254CCDB1FB1AB6600C8B4B6 /* Order Editor */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
@@ -1330,6 +1345,7 @@
 		713F76AF1929F4A7006A7305 /* iSales-CONTRAST */ = {
 		713F76AF1929F4A7006A7305 /* iSales-CONTRAST */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
+				3C872A1F2797F1AD00BE1FC8 /* Scaner Order */,
 				71DF74311C5757C800F2789C /* CommonUI */,
 				71DF74311C5757C800F2789C /* CommonUI */,
 				71DF742C1C57567800F2789C /* CONTRAST */,
 				71DF742C1C57567800F2789C /* CONTRAST */,
 				712AFEE31DBDAEA000254965 /* PDFResource */,
 				712AFEE31DBDAEA000254965 /* PDFResource */,
@@ -2079,6 +2095,7 @@
 				3C68316B2396094200AD5BD7 /* iPadCommonEditorCellSwitch.xib in Resources */,
 				3C68316B2396094200AD5BD7 /* iPadCommonEditorCellSwitch.xib in Resources */,
 				3C6831582396082800AD5BD7 /* ERP_Mobile_Model.storyboard in Resources */,
 				3C6831582396082800AD5BD7 /* ERP_Mobile_Model.storyboard in Resources */,
 				7143E20C202FCEEC00451903 /* OLM.storyboard in Resources */,
 				7143E20C202FCEEC00451903 /* OLM.storyboard in Resources */,
+				3C872A242797F1C800BE1FC8 /* scan_cart.json in Resources */,
 				7143E20D202FCEEC00451903 /* Main.storyboard in Resources */,
 				7143E20D202FCEEC00451903 /* Main.storyboard in Resources */,
 				7142E87E1DC300690077EFA2 /* DejaVuSans-Bold.ttf in Resources */,
 				7142E87E1DC300690077EFA2 /* DejaVuSans-Bold.ttf in Resources */,
 				3C6831682396094200AD5BD7 /* iPadCommonEditorCellImg.xib in Resources */,
 				3C6831682396094200AD5BD7 /* iPadCommonEditorCellImg.xib in Resources */,
@@ -2189,6 +2206,7 @@
 				71C1D8541F456D2700CEA1C9 /* ModelDescriptionController.m in Sources */,
 				71C1D8541F456D2700CEA1C9 /* ModelDescriptionController.m in Sources */,
 				7143E212202FCF7600451903 /* CategoryCellNPD.m in Sources */,
 				7143E212202FCF7600451903 /* CategoryCellNPD.m in Sources */,
 				7141DD541C57459B00F7DF59 /* rscode.c in Sources */,
 				7141DD541C57459B00F7DF59 /* rscode.c in Sources */,
+				3C872A232797F1C800BE1FC8 /* OLOSettingViewController.m in Sources */,
 				7162A5E01C5876E300AB630E /* SettingViewController.m in Sources */,
 				7162A5E01C5876E300AB630E /* SettingViewController.m in Sources */,
 				712AFEDB1DBA050200254965 /* LineDrawable.m in Sources */,
 				712AFEDB1DBA050200254965 /* LineDrawable.m in Sources */,
 				71DF748B1C57608F00F2789C /* SimpleGrid.m in Sources */,
 				71DF748B1C57608F00F2789C /* SimpleGrid.m in Sources */,
@@ -2516,7 +2534,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				CURRENT_PROJECT_VERSION = 211229;
+				CURRENT_PROJECT_VERSION = 211231;
 				DEVELOPMENT_TEAM = HXWLAA5YN5;
 				DEVELOPMENT_TEAM = HXWLAA5YN5;
 				FRAMEWORK_SEARCH_PATHS = (
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(inherited)",
@@ -2533,7 +2551,7 @@
 					"$(PROJECT_DIR)/ScanApiSDK-10.2.227-2/lib",
 					"$(PROJECT_DIR)/ScanApiSDK-10.2.227-2/lib",
 					"$(PROJECT_DIR)/GoogleAnalytics/GoogleAnalytics/Libraries",
 					"$(PROJECT_DIR)/GoogleAnalytics/GoogleAnalytics/Libraries",
 				);
 				);
-				MARKETING_VERSION = 1.97;
+				MARKETING_VERSION = 1.98;
 				OTHER_LDFLAGS = (
 				OTHER_LDFLAGS = (
 					"$(inherited)",
 					"$(inherited)",
 					"-ObjC",
 					"-ObjC",
@@ -2560,7 +2578,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				CURRENT_PROJECT_VERSION = 211229;
+				CURRENT_PROJECT_VERSION = 211231;
 				DEVELOPMENT_TEAM = HXWLAA5YN5;
 				DEVELOPMENT_TEAM = HXWLAA5YN5;
 				FRAMEWORK_SEARCH_PATHS = (
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(inherited)",
@@ -2577,7 +2595,7 @@
 					"$(PROJECT_DIR)/ScanApiSDK-10.2.227-2/lib",
 					"$(PROJECT_DIR)/ScanApiSDK-10.2.227-2/lib",
 					"$(PROJECT_DIR)/GoogleAnalytics/GoogleAnalytics/Libraries",
 					"$(PROJECT_DIR)/GoogleAnalytics/GoogleAnalytics/Libraries",
 				);
 				);
-				MARKETING_VERSION = 1.97;
+				MARKETING_VERSION = 1.98;
 				OTHER_LDFLAGS = (
 				OTHER_LDFLAGS = (
 					"$(inherited)",
 					"$(inherited)",
 					"-ObjC",
 					"-ObjC",

+ 1 - 1
RedAnt ERP Mobile/iSales-CONTRAST.xcodeproj/xcuserdata/ruizhang.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -7,7 +7,7 @@
 		<key>iSales-CONTRAST.xcscheme_^#shared#^_</key>
 		<key>iSales-CONTRAST.xcscheme_^#shared#^_</key>
 		<dict>
 		<dict>
 			<key>orderHint</key>
 			<key>orderHint</key>
-			<integer>3</integer>
+			<integer>2</integer>
 		</dict>
 		</dict>
 		<key>iSales-USAI.xcscheme_^#shared#^_</key>
 		<key>iSales-USAI.xcscheme_^#shared#^_</key>
 		<dict>
 		<dict>

+ 59 - 0
RedAnt ERP Mobile/iSales-NPD.xcodeproj/project.pbxproj

@@ -9,6 +9,12 @@
 /* Begin PBXBuildFile section */
 /* Begin PBXBuildFile section */
 		3C2F99BB237BE1880000808F /* PortfolioListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C2F99BA237BE1880000808F /* PortfolioListTableViewCell.m */; };
 		3C2F99BB237BE1880000808F /* PortfolioListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C2F99BA237BE1880000808F /* PortfolioListTableViewCell.m */; };
 		3C2F99BF237BE7190000808F /* NPD_Mobile.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C2F99BE237BE7190000808F /* NPD_Mobile.storyboard */; };
 		3C2F99BF237BE7190000808F /* NPD_Mobile.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C2F99BE237BE7190000808F /* NPD_Mobile.storyboard */; };
+		3C3E26AF27CDF83300EF6F5C /* RANetworkTaskDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3E26A727CDF83300EF6F5C /* RANetworkTaskDelegate.m */; };
+		3C3E26B027CDF83300EF6F5C /* RAUploadOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3E26A827CDF83300EF6F5C /* RAUploadOperation.m */; };
+		3C3E26B127CDF83300EF6F5C /* RAUploadListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3E26AA27CDF83300EF6F5C /* RAUploadListViewController.m */; };
+		3C3E26B227CDF83300EF6F5C /* RAUploadManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3E26AD27CDF83300EF6F5C /* RAUploadManager.m */; };
+		3C3E26B527CDF87000EF6F5C /* UIView+Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3E26B327CDF87000EF6F5C /* UIView+Toast.m */; };
+		3C3E26B827CDF8A600EF6F5C /* UploadCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3E26B727CDF8A600EF6F5C /* UploadCell.m */; };
 		3C57169923CEA4120002E9FC /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C57169823CEA4120002E9FC /* Launch Screen.storyboard */; };
 		3C57169923CEA4120002E9FC /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C57169823CEA4120002E9FC /* Launch Screen.storyboard */; };
 		3C6831A72397884A00AD5BD7 /* iPadCommonEditorCellSignature.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C68319C2397884A00AD5BD7 /* iPadCommonEditorCellSignature.xib */; };
 		3C6831A72397884A00AD5BD7 /* iPadCommonEditorCellSignature.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C68319C2397884A00AD5BD7 /* iPadCommonEditorCellSignature.xib */; };
 		3C6831A82397884A00AD5BD7 /* iPadCommonEditorCellTextView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C68319D2397884A00AD5BD7 /* iPadCommonEditorCellTextView.xib */; };
 		3C6831A82397884A00AD5BD7 /* iPadCommonEditorCellTextView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C68319D2397884A00AD5BD7 /* iPadCommonEditorCellTextView.xib */; };
@@ -71,6 +77,7 @@
 		3CC7E72E23BEDA5000BE5561 /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CC7E72B23BEDA4F00BE5561 /* WebViewController.m */; };
 		3CC7E72E23BEDA5000BE5561 /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CC7E72B23BEDA4F00BE5561 /* WebViewController.m */; };
 		3CC7E72F23BEDA5000BE5561 /* RAPDFViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CC7E72C23BEDA4F00BE5561 /* RAPDFViewController.m */; };
 		3CC7E72F23BEDA5000BE5561 /* RAPDFViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CC7E72C23BEDA4F00BE5561 /* RAPDFViewController.m */; };
 		3CC7E73123BEDA7B00BE5561 /* wkweb.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3CC7E73023BEDA7B00BE5561 /* wkweb.storyboard */; };
 		3CC7E73123BEDA7B00BE5561 /* wkweb.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3CC7E73023BEDA7B00BE5561 /* wkweb.storyboard */; };
+		3CF8CEBB27A0D4920094A6CD /* OLOSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CF8CEB927A0D4920094A6CD /* OLOSettingViewController.m */; };
 		423A4ADC1D503A53005ECE4A /* createContact.json in Resources */ = {isa = PBXBuildFile; fileRef = 423A4ADB1D503A53005ECE4A /* createContact.json */; };
 		423A4ADC1D503A53005ECE4A /* createContact.json in Resources */ = {isa = PBXBuildFile; fileRef = 423A4ADB1D503A53005ECE4A /* createContact.json */; };
 		423B49EF1DAC8071004181C2 /* CUL.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 423B49EE1DAC8071004181C2 /* CUL.storyboard */; };
 		423B49EF1DAC8071004181C2 /* CUL.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 423B49EE1DAC8071004181C2 /* CUL.storyboard */; };
 		424A02D11FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m in Sources */ = {isa = PBXBuildFile; fileRef = 424A02D01FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m */; };
 		424A02D11FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m in Sources */ = {isa = PBXBuildFile; fileRef = 424A02D01FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m */; };
@@ -312,6 +319,18 @@
 		3C2F99B9237BE1880000808F /* PortfolioListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PortfolioListTableViewCell.h; path = common/Functions/portfolio/PortfolioListTableViewCell.h; sourceTree = SOURCE_ROOT; };
 		3C2F99B9237BE1880000808F /* PortfolioListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PortfolioListTableViewCell.h; path = common/Functions/portfolio/PortfolioListTableViewCell.h; sourceTree = SOURCE_ROOT; };
 		3C2F99BA237BE1880000808F /* PortfolioListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PortfolioListTableViewCell.m; path = common/Functions/portfolio/PortfolioListTableViewCell.m; sourceTree = SOURCE_ROOT; };
 		3C2F99BA237BE1880000808F /* PortfolioListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PortfolioListTableViewCell.m; path = common/Functions/portfolio/PortfolioListTableViewCell.m; sourceTree = SOURCE_ROOT; };
 		3C2F99BE237BE7190000808F /* NPD_Mobile.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = NPD_Mobile.storyboard; sourceTree = "<group>"; };
 		3C2F99BE237BE7190000808F /* NPD_Mobile.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = NPD_Mobile.storyboard; sourceTree = "<group>"; };
+		3C3E26A727CDF83300EF6F5C /* RANetworkTaskDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RANetworkTaskDelegate.m; sourceTree = "<group>"; };
+		3C3E26A827CDF83300EF6F5C /* RAUploadOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAUploadOperation.m; sourceTree = "<group>"; };
+		3C3E26A927CDF83300EF6F5C /* RAUploadManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAUploadManager.h; sourceTree = "<group>"; };
+		3C3E26AA27CDF83300EF6F5C /* RAUploadListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAUploadListViewController.m; sourceTree = "<group>"; };
+		3C3E26AB27CDF83300EF6F5C /* RANetworkTaskDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RANetworkTaskDelegate.h; sourceTree = "<group>"; };
+		3C3E26AC27CDF83300EF6F5C /* RAUploadOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAUploadOperation.h; sourceTree = "<group>"; };
+		3C3E26AD27CDF83300EF6F5C /* RAUploadManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAUploadManager.m; sourceTree = "<group>"; };
+		3C3E26AE27CDF83300EF6F5C /* RAUploadListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAUploadListViewController.h; sourceTree = "<group>"; };
+		3C3E26B327CDF87000EF6F5C /* UIView+Toast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIView+Toast.m"; path = "../../common/customUI/UIView+Toast.m"; sourceTree = "<group>"; };
+		3C3E26B427CDF87000EF6F5C /* UIView+Toast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIView+Toast.h"; path = "../../common/customUI/UIView+Toast.h"; sourceTree = "<group>"; };
+		3C3E26B627CDF8A600EF6F5C /* UploadCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UploadCell.h; path = "iSales-USAI/UploadCell.h"; sourceTree = SOURCE_ROOT; };
+		3C3E26B727CDF8A600EF6F5C /* UploadCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UploadCell.m; path = "iSales-USAI/UploadCell.m"; sourceTree = SOURCE_ROOT; };
 		3C57169823CEA4120002E9FC /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = "<group>"; };
 		3C57169823CEA4120002E9FC /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = "<group>"; };
 		3C68319C2397884A00AD5BD7 /* iPadCommonEditorCellSignature.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellSignature.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellSignature.xib; sourceTree = "<group>"; };
 		3C68319C2397884A00AD5BD7 /* iPadCommonEditorCellSignature.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellSignature.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellSignature.xib; sourceTree = "<group>"; };
 		3C68319D2397884A00AD5BD7 /* iPadCommonEditorCellTextView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellTextView.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellTextView.xib; sourceTree = "<group>"; };
 		3C68319D2397884A00AD5BD7 /* iPadCommonEditorCellTextView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = iPadCommonEditorCellTextView.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellTextView.xib; sourceTree = "<group>"; };
@@ -413,6 +432,8 @@
 		3CC7E72C23BEDA4F00BE5561 /* RAPDFViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAPDFViewController.m; path = "../../common/WK PDF+Web/RAPDFViewController.m"; sourceTree = "<group>"; };
 		3CC7E72C23BEDA4F00BE5561 /* RAPDFViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAPDFViewController.m; path = "../../common/WK PDF+Web/RAPDFViewController.m"; sourceTree = "<group>"; };
 		3CC7E72D23BEDA4F00BE5561 /* WebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebViewController.h; path = "../../common/WK PDF+Web/WebViewController.h"; sourceTree = "<group>"; };
 		3CC7E72D23BEDA4F00BE5561 /* WebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebViewController.h; path = "../../common/WK PDF+Web/WebViewController.h"; sourceTree = "<group>"; };
 		3CC7E73023BEDA7B00BE5561 /* wkweb.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = wkweb.storyboard; path = "../../common/WK PDF+Web/wkweb.storyboard"; sourceTree = "<group>"; };
 		3CC7E73023BEDA7B00BE5561 /* wkweb.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = wkweb.storyboard; path = "../../common/WK PDF+Web/wkweb.storyboard"; sourceTree = "<group>"; };
+		3CF8CEB927A0D4920094A6CD /* OLOSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OLOSettingViewController.m; path = common/Functions/OLO/OLOSettingViewController.m; sourceTree = SOURCE_ROOT; };
+		3CF8CEBA27A0D4920094A6CD /* OLOSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OLOSettingViewController.h; path = common/Functions/OLO/OLOSettingViewController.h; sourceTree = SOURCE_ROOT; };
 		423A4ADB1D503A53005ECE4A /* createContact.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = createContact.json; sourceTree = "<group>"; };
 		423A4ADB1D503A53005ECE4A /* createContact.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = createContact.json; sourceTree = "<group>"; };
 		423B49EE1DAC8071004181C2 /* CUL.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = CUL.storyboard; sourceTree = "<group>"; };
 		423B49EE1DAC8071004181C2 /* CUL.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = CUL.storyboard; sourceTree = "<group>"; };
 		424A02CF1FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RABackOrderSubmitAlertController.h; path = common/Functions/order/RABackOrderSubmitAlertController.h; sourceTree = SOURCE_ROOT; };
 		424A02CF1FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RABackOrderSubmitAlertController.h; path = common/Functions/order/RABackOrderSubmitAlertController.h; sourceTree = SOURCE_ROOT; };
@@ -882,6 +903,22 @@
 /* End PBXFrameworksBuildPhase section */
 /* End PBXFrameworksBuildPhase section */
 
 
 /* Begin PBXGroup section */
 /* Begin PBXGroup section */
+		3C3E26A627CDF83300EF6F5C /* upload */ = {
+			isa = PBXGroup;
+			children = (
+				3C3E26A727CDF83300EF6F5C /* RANetworkTaskDelegate.m */,
+				3C3E26A827CDF83300EF6F5C /* RAUploadOperation.m */,
+				3C3E26A927CDF83300EF6F5C /* RAUploadManager.h */,
+				3C3E26AA27CDF83300EF6F5C /* RAUploadListViewController.m */,
+				3C3E26AB27CDF83300EF6F5C /* RANetworkTaskDelegate.h */,
+				3C3E26AC27CDF83300EF6F5C /* RAUploadOperation.h */,
+				3C3E26AD27CDF83300EF6F5C /* RAUploadManager.m */,
+				3C3E26AE27CDF83300EF6F5C /* RAUploadListViewController.h */,
+			);
+			name = upload;
+			path = ../../common/upload;
+			sourceTree = "<group>";
+		};
 		3CA2109D2761DA66000FC2F3 /* PhotoList */ = {
 		3CA2109D2761DA66000FC2F3 /* PhotoList */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
@@ -946,6 +983,15 @@
 			path = ../../common/HUD;
 			path = ../../common/HUD;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
 		};
 		};
+		3CF8CEB827A0D4740094A6CD /* SCAN_ORDER */ = {
+			isa = PBXGroup;
+			children = (
+				3CF8CEBA27A0D4920094A6CD /* OLOSettingViewController.h */,
+				3CF8CEB927A0D4920094A6CD /* OLOSettingViewController.m */,
+			);
+			name = SCAN_ORDER;
+			sourceTree = "<group>";
+		};
 		4254CCDB1FB1AB6600C8B4B6 /* Order Editor */ = {
 		4254CCDB1FB1AB6600C8B4B6 /* Order Editor */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
@@ -1329,6 +1375,8 @@
 		713F76AF1929F4A7006A7305 /* iSales-NPD */ = {
 		713F76AF1929F4A7006A7305 /* iSales-NPD */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
+				3C3E26A627CDF83300EF6F5C /* upload */,
+				3CF8CEB827A0D4740094A6CD /* SCAN_ORDER */,
 				71DF742C1C57567800F2789C /* NPD */,
 				71DF742C1C57567800F2789C /* NPD */,
 				712AFEE31DBDAEA000254965 /* PDFResource */,
 				712AFEE31DBDAEA000254965 /* PDFResource */,
 				716387C71953CDB4006E65E6 /* utils */,
 				716387C71953CDB4006E65E6 /* utils */,
@@ -1908,6 +1956,10 @@
 		71DF742C1C57567800F2789C /* NPD */ = {
 		71DF742C1C57567800F2789C /* NPD */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
+				3C3E26B627CDF8A600EF6F5C /* UploadCell.h */,
+				3C3E26B727CDF8A600EF6F5C /* UploadCell.m */,
+				3C3E26B427CDF87000EF6F5C /* UIView+Toast.h */,
+				3C3E26B327CDF87000EF6F5C /* UIView+Toast.m */,
 				719562351CF5733500C74A49 /* appearance */,
 				719562351CF5733500C74A49 /* appearance */,
 				716387D2195408DA006E65E6 /* config */,
 				716387D2195408DA006E65E6 /* config */,
 				3C57169823CEA4120002E9FC /* Launch Screen.storyboard */,
 				3C57169823CEA4120002E9FC /* Launch Screen.storyboard */,
@@ -2164,6 +2216,7 @@
 				712AFED81DBA050200254965 /* GridDrawable.m in Sources */,
 				712AFED81DBA050200254965 /* GridDrawable.m in Sources */,
 				424A02D11FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m in Sources */,
 				424A02D11FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m in Sources */,
 				7162A5C11C5873BB00AB630E /* FilterCellCadedate.m in Sources */,
 				7162A5C11C5873BB00AB630E /* FilterCellCadedate.m in Sources */,
+				3C3E26B827CDF8A600EF6F5C /* UploadCell.m in Sources */,
 				42BEF3581E89FE1200632AB6 /* GTMNSData+zlib.m in Sources */,
 				42BEF3581E89FE1200632AB6 /* GTMNSData+zlib.m in Sources */,
 				3CA210B12761DAAC000FC2F3 /* RASingleton.m in Sources */,
 				3CA210B12761DAAC000FC2F3 /* RASingleton.m in Sources */,
 				71DF742B1C57560600F2789C /* Reachability.m in Sources */,
 				71DF742B1C57560600F2789C /* Reachability.m in Sources */,
@@ -2191,6 +2244,7 @@
 				71DF748B1C57608F00F2789C /* SimpleGrid.m in Sources */,
 				71DF748B1C57608F00F2789C /* SimpleGrid.m in Sources */,
 				42BEF3621E8A005800632AB6 /* GoogleAnalyst.m in Sources */,
 				42BEF3621E8A005800632AB6 /* GoogleAnalyst.m in Sources */,
 				7162A5171C58704600AB630E /* BundleModelViewController.m in Sources */,
 				7162A5171C58704600AB630E /* BundleModelViewController.m in Sources */,
+				3C3E26B127CDF83300EF6F5C /* RAUploadListViewController.m in Sources */,
 				7162A5411C58719D00AB630E /* RATreeNode.m in Sources */,
 				7162A5411C58719D00AB630E /* RATreeNode.m in Sources */,
 				7162A5251C58706C00AB630E /* CategoryCellSmall.m in Sources */,
 				7162A5251C58706C00AB630E /* CategoryCellSmall.m in Sources */,
 				712AFEDA1DBA050200254965 /* ImageDrawable.m in Sources */,
 				712AFEDA1DBA050200254965 /* ImageDrawable.m in Sources */,
@@ -2212,6 +2266,7 @@
 				3CA210AE2761DA8B000FC2F3 /* DefaultTableHeaderView.m in Sources */,
 				3CA210AE2761DA8B000FC2F3 /* DefaultTableHeaderView.m in Sources */,
 				7162A5DF1C5876E300AB630E /* ScannerSettingViewController.m in Sources */,
 				7162A5DF1C5876E300AB630E /* ScannerSettingViewController.m in Sources */,
 				3CA210F02761DC38000FC2F3 /* CommonEditorViewController.m in Sources */,
 				3CA210F02761DC38000FC2F3 /* CommonEditorViewController.m in Sources */,
+				3C3E26B227CDF83300EF6F5C /* RAUploadManager.m in Sources */,
 				71DF74831C57608F00F2789C /* ImageScrollerView.m in Sources */,
 				71DF74831C57608F00F2789C /* ImageScrollerView.m in Sources */,
 				71DF74871C57608F00F2789C /* NIDropDown.m in Sources */,
 				71DF74871C57608F00F2789C /* NIDropDown.m in Sources */,
 				3CA210FF2761DC95000FC2F3 /* DatePickerViewController.m in Sources */,
 				3CA210FF2761DC95000FC2F3 /* DatePickerViewController.m in Sources */,
@@ -2262,6 +2317,8 @@
 				7162A54B1C58719D00AB630E /* RAViewController.m in Sources */,
 				7162A54B1C58719D00AB630E /* RAViewController.m in Sources */,
 				71BBA2411CEAEF0700C91DED /* mztools.c in Sources */,
 				71BBA2411CEAEF0700C91DED /* mztools.c in Sources */,
 				7162A59C1C58733400AB630E /* OrderDetailPriceCell.m in Sources */,
 				7162A59C1C58733400AB630E /* OrderDetailPriceCell.m in Sources */,
+				3CF8CEBB27A0D4920094A6CD /* OLOSettingViewController.m in Sources */,
+				3C3E26B027CDF83300EF6F5C /* RAUploadOperation.m in Sources */,
 				715850461CF6F0E500856B20 /* DefaultAppearance.m in Sources */,
 				715850461CF6F0E500856B20 /* DefaultAppearance.m in Sources */,
 				4295AE1C1FE74D46007BE365 /* CommonEditorAutoCompleteView.m in Sources */,
 				4295AE1C1FE74D46007BE365 /* CommonEditorAutoCompleteView.m in Sources */,
 				7162A5B61C58738600AB630E /* SCShapeView.m in Sources */,
 				7162A5B61C58738600AB630E /* SCShapeView.m in Sources */,
@@ -2281,6 +2338,7 @@
 				3C6831B52397887800AD5BD7 /* RAYTPlayer.m in Sources */,
 				3C6831B52397887800AD5BD7 /* RAYTPlayer.m in Sources */,
 				712C40B61C7310F4000E6831 /* CartGeneralNotesViewController.m in Sources */,
 				712C40B61C7310F4000E6831 /* CartGeneralNotesViewController.m in Sources */,
 				712AFEDE1DBA050200254965 /* TableDrawable.m in Sources */,
 				712AFEDE1DBA050200254965 /* TableDrawable.m in Sources */,
+				3C3E26B527CDF87000EF6F5C /* UIView+Toast.m in Sources */,
 				7162A5CB1C58761500AB630E /* SignatureViewController.m in Sources */,
 				7162A5CB1C58761500AB630E /* SignatureViewController.m in Sources */,
 				7162A5DD1C5876E300AB630E /* PopupNavigationController.m in Sources */,
 				7162A5DD1C5876E300AB630E /* PopupNavigationController.m in Sources */,
 				3CA210E32761DC2C000FC2F3 /* CommonEditorCellAction.m in Sources */,
 				3CA210E32761DC2C000FC2F3 /* CommonEditorCellAction.m in Sources */,
@@ -2343,6 +2401,7 @@
 				7162A5441C58719D00AB630E /* RATreeNodeInfo+Private.m in Sources */,
 				7162A5441C58719D00AB630E /* RATreeNodeInfo+Private.m in Sources */,
 				7162A5C51C5873BB00AB630E /* SearchViewController.m in Sources */,
 				7162A5C51C5873BB00AB630E /* SearchViewController.m in Sources */,
 				7162A5191C58704600AB630E /* EditModelPriceViewController.m in Sources */,
 				7162A5191C58704600AB630E /* EditModelPriceViewController.m in Sources */,
+				3C3E26AF27CDF83300EF6F5C /* RANetworkTaskDelegate.m in Sources */,
 				7162A5721C58728D00AB630E /* DetailKVCell.m in Sources */,
 				7162A5721C58728D00AB630E /* DetailKVCell.m in Sources */,
 				7141DD501C57459B00F7DF59 /* QRCodeGenerator.m in Sources */,
 				7141DD501C57459B00F7DF59 /* QRCodeGenerator.m in Sources */,
 				715671331E10A0EF006324A0 /* RectDrawable.m in Sources */,
 				715671331E10A0EF006324A0 /* RectDrawable.m in Sources */,

+ 5 - 5
RedAnt ERP Mobile/iSales-NPD/Base.lproj/Main.storyboard

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19162" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="jsC-F8-zYF">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19529" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="jsC-F8-zYF">
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <dependencies>
     <dependencies>
         <deployment version="4352" identifier="iOS"/>
         <deployment version="4352" identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19144"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19519"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
@@ -1156,7 +1156,7 @@
                                         <rect key="frame" x="0.0" y="132.5" width="768" height="44"/>
                                         <rect key="frame" x="0.0" y="132.5" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Pol-lE-P45" id="FAm-1c-nX0">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Pol-lE-P45" id="FAm-1c-nX0">
-                                            <rect key="frame" x="0.0" y="0.0" width="738.5" height="44"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="739.5" height="44"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                             <subviews>
                                                 <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Clean Cache" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AHm-p1-51h">
                                                 <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Clean Cache" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AHm-p1-51h">
@@ -1810,13 +1810,13 @@ Email: redantsupport@united-us.net</string>
         </scene>
         </scene>
     </scenes>
     </scenes>
     <resources>
     <resources>
-        <image name="about" width="96" height="96"/>
+        <image name="about" width="72" height="72"/>
         <image name="album" width="48" height="48"/>
         <image name="album" width="48" height="48"/>
         <image name="btn_cancel" width="102" height="30"/>
         <image name="btn_cancel" width="102" height="30"/>
         <image name="btn_retrieve" width="102" height="30"/>
         <image name="btn_retrieve" width="102" height="30"/>
         <image name="btn_signin" width="100" height="30"/>
         <image name="btn_signin" width="100" height="30"/>
         <image name="camera" width="48" height="48"/>
         <image name="camera" width="48" height="48"/>
-        <image name="cart_empty" width="72" height="72"/>
+        <image name="cart_empty" width="96" height="96"/>
         <image name="category" width="96" height="96"/>
         <image name="category" width="96" height="96"/>
         <image name="check_1_24" width="24" height="24"/>
         <image name="check_1_24" width="24" height="24"/>
         <image name="checkbox" width="16" height="16"/>
         <image name="checkbox" width="16" height="16"/>

+ 428 - 5
RedAnt ERP Mobile/iSales-NPD/Base.lproj/OLM.storyboard

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19162" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19529" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES">
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <dependencies>
     <dependencies>
         <deployment identifier="iOS"/>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19144"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19519"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     </dependencies>
@@ -301,7 +301,7 @@
                                                     <rect key="frame" x="10" y="32" width="21" height="21"/>
                                                     <rect key="frame" x="10" y="32" width="21" height="21"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <state key="normal" image="button:hrK-DY-RbO:image"/>
                                                     <state key="normal" image="button:hrK-DY-RbO:image"/>
-                                                    <state key="selected" image="D7B231FC-53DF-41CD-B3DC-EC892BFA0A8B"/>
+                                                    <state key="selected" image="98A4F9B9-AA28-4FCB-B3A5-2A5F7BB3CC0D"/>
                                                     <connections>
                                                     <connections>
                                                         <action selector="checkButtonClick:" destination="XXr-fU-67o" eventType="touchUpInside" id="KeU-ld-H4J"/>
                                                         <action selector="checkButtonClick:" destination="XXr-fU-67o" eventType="touchUpInside" id="KeU-ld-H4J"/>
                                                     </connections>
                                                     </connections>
@@ -670,9 +670,429 @@
             </objects>
             </objects>
             <point key="canvasLocation" x="1167.96875" y="-935.15624999999989"/>
             <point key="canvasLocation" x="1167.96875" y="-935.15624999999989"/>
         </scene>
         </scene>
+        <!--Offline Order Setting-->
+        <scene sceneID="udc-on-3hE">
+            <objects>
+                <viewController storyboardIdentifier="OLOSettingViewController" title="Offline Order Setting" useStoryboardIdentifierAsRestorationIdentifier="YES" id="lfk-1f-lmJ" customClass="OLOSettingViewController" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="1Ax-TN-3w1"/>
+                        <viewControllerLayoutGuide type="bottom" id="9cM-4f-S8t"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="yhb-rw-zyA">
+                        <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Server Setting" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aNw-mP-oBD">
+                                <rect key="frame" x="44" y="44" width="124" height="22"/>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Local Data " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Kh8-il-Vgk">
+                                <rect key="frame" x="44" y="196" width="94" height="21"/>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <textField opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="aeH-Kl-T6M">
+                                <rect key="frame" x="114" y="79.5" width="610" height="34"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <textInputTraits key="textInputTraits"/>
+                            </textField>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="URz-TP-ORX">
+                                <rect key="frame" x="654" y="232" width="70" height="31"/>
+                                <state key="normal" title="Button"/>
+                                <buttonConfiguration key="configuration" style="plain" title="update"/>
+                                <connections>
+                                    <action selector="onUpdateLocalData:" destination="lfk-1f-lmJ" eventType="touchUpInside" id="drO-j0-1IX"/>
+                                </connections>
+                            </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xNv-rw-rP8">
+                                <rect key="frame" x="678" y="343" width="46" height="31"/>
+                                <state key="normal" title="Button"/>
+                                <buttonConfiguration key="configuration" style="plain" title="Set"/>
+                                <connections>
+                                    <action selector="onSetUnlockCode:" destination="lfk-1f-lmJ" eventType="touchUpInside" id="sCD-Uf-fN7"/>
+                                </connections>
+                            </button>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Local data has not been initialized" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9O1-4j-aHK">
+                                <rect key="frame" x="44" y="237" width="257" height="21"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Name:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dRO-ry-Snw">
+                                <rect key="frame" x="44" y="86" width="50" height="21"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="URL:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jCN-CG-uWi">
+                                <rect key="frame" x="44" y="127" width="37" height="21"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <textField opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="aBL-8I-Mqn">
+                                <rect key="frame" x="114" y="120.5" width="610" height="34"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <textInputTraits key="textInputTraits"/>
+                            </textField>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Unlock Code" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UTp-Ah-jRN">
+                                <rect key="frame" x="44" y="306" width="110" height="22"/>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Unlock code has not been set" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EZe-UB-PAW">
+                                <rect key="frame" x="44" y="348" width="227" height="21"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Fzf-aI-cFn">
+                                <rect key="frame" x="678" y="39.5" width="46" height="31"/>
+                                <state key="normal" title="Button"/>
+                                <buttonConfiguration key="configuration" style="plain" title="Set"/>
+                                <connections>
+                                    <action selector="onSetServer:" destination="lfk-1f-lmJ" eventType="touchUpInside" id="age-Mz-P9S"/>
+                                </connections>
+                            </button>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="aNw-mP-oBD" firstAttribute="leading" secondItem="yhb-rw-zyA" secondAttribute="leadingMargin" constant="24" id="1VK-eQ-0Ex"/>
+                            <constraint firstAttribute="trailingMargin" secondItem="Fzf-aI-cFn" secondAttribute="trailing" constant="24" id="33g-WI-ag3"/>
+                            <constraint firstItem="aBL-8I-Mqn" firstAttribute="leading" secondItem="aeH-Kl-T6M" secondAttribute="leading" id="4bc-tE-q2o"/>
+                            <constraint firstItem="URz-TP-ORX" firstAttribute="centerY" secondItem="9O1-4j-aHK" secondAttribute="centerY" id="6fa-f6-j63"/>
+                            <constraint firstItem="xNv-rw-rP8" firstAttribute="centerY" secondItem="EZe-UB-PAW" secondAttribute="centerY" id="8SM-QG-jYU"/>
+                            <constraint firstItem="dRO-ry-Snw" firstAttribute="top" secondItem="aNw-mP-oBD" secondAttribute="bottom" constant="20" id="Aw5-gL-Ksl"/>
+                            <constraint firstItem="UTp-Ah-jRN" firstAttribute="leading" secondItem="Kh8-il-Vgk" secondAttribute="leading" id="N88-AW-jjm"/>
+                            <constraint firstItem="aeH-Kl-T6M" firstAttribute="leading" secondItem="dRO-ry-Snw" secondAttribute="trailing" constant="20" id="Nrs-pn-l1B"/>
+                            <constraint firstItem="9O1-4j-aHK" firstAttribute="leading" secondItem="Kh8-il-Vgk" secondAttribute="leading" id="O8Q-pe-2AK"/>
+                            <constraint firstItem="Fzf-aI-cFn" firstAttribute="trailing" secondItem="aeH-Kl-T6M" secondAttribute="trailing" id="Pvg-Ud-iLF"/>
+                            <constraint firstItem="Fzf-aI-cFn" firstAttribute="centerY" secondItem="aNw-mP-oBD" secondAttribute="centerY" id="PyZ-OU-lQo"/>
+                            <constraint firstItem="jCN-CG-uWi" firstAttribute="top" secondItem="dRO-ry-Snw" secondAttribute="bottom" constant="20" id="R2A-ax-b4f"/>
+                            <constraint firstItem="EZe-UB-PAW" firstAttribute="top" secondItem="UTp-Ah-jRN" secondAttribute="bottom" constant="20" id="Ukp-p6-zbi"/>
+                            <constraint firstItem="dRO-ry-Snw" firstAttribute="leading" secondItem="yhb-rw-zyA" secondAttribute="leadingMargin" constant="24" id="YFh-DK-QUT"/>
+                            <constraint firstItem="Fzf-aI-cFn" firstAttribute="trailing" secondItem="URz-TP-ORX" secondAttribute="trailing" id="cpr-GF-2qV"/>
+                            <constraint firstItem="aeH-Kl-T6M" firstAttribute="centerY" secondItem="dRO-ry-Snw" secondAttribute="centerY" id="fN6-In-Lok"/>
+                            <constraint firstItem="9O1-4j-aHK" firstAttribute="top" secondItem="Kh8-il-Vgk" secondAttribute="bottom" constant="20" id="gdr-xh-g2y"/>
+                            <constraint firstItem="aBL-8I-Mqn" firstAttribute="centerY" secondItem="jCN-CG-uWi" secondAttribute="centerY" id="i6f-21-OUc"/>
+                            <constraint firstItem="Fzf-aI-cFn" firstAttribute="trailing" secondItem="xNv-rw-rP8" secondAttribute="trailing" id="m3B-Ks-c2L"/>
+                            <constraint firstItem="aBL-8I-Mqn" firstAttribute="trailing" secondItem="aeH-Kl-T6M" secondAttribute="trailing" id="nR3-TZ-6SM"/>
+                            <constraint firstItem="jCN-CG-uWi" firstAttribute="leading" secondItem="yhb-rw-zyA" secondAttribute="leadingMargin" constant="24" id="ny4-8l-9kw"/>
+                            <constraint firstItem="aNw-mP-oBD" firstAttribute="top" secondItem="1Ax-TN-3w1" secondAttribute="bottom" constant="24" id="oKm-4d-K4O"/>
+                            <constraint firstItem="Kh8-il-Vgk" firstAttribute="top" secondItem="jCN-CG-uWi" secondAttribute="bottom" constant="48" id="pJY-hA-dpe"/>
+                            <constraint firstItem="EZe-UB-PAW" firstAttribute="leading" secondItem="UTp-Ah-jRN" secondAttribute="leading" id="uiL-Qi-fC7"/>
+                            <constraint firstItem="Kh8-il-Vgk" firstAttribute="leading" secondItem="jCN-CG-uWi" secondAttribute="leading" id="w2g-iC-dtc"/>
+                            <constraint firstItem="UTp-Ah-jRN" firstAttribute="top" secondItem="9O1-4j-aHK" secondAttribute="bottom" constant="48" id="x0e-u7-V8U"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="textfieldName" destination="aeH-Kl-T6M" id="N1Q-cI-1Cd"/>
+                        <outlet property="textfieldServer" destination="aBL-8I-Mqn" id="ClG-lf-lP1"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="FD0-nO-nqr" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="501.5625" y="-193.359375"/>
+        </scene>
+        <!--Server Setting View Controller-->
+        <scene sceneID="odL-0Z-JNt">
+            <objects>
+                <viewController storyboardIdentifier="ServerSettingViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="4E6-80-nis" customClass="ServerSettingViewController" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="auC-0B-URb"/>
+                        <viewControllerLayoutGuide type="bottom" id="5EI-0x-Aa2"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="7d3-Km-gpZ">
+                        <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Name" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="I4e-nd-eUd">
+                                <rect key="frame" x="30" y="98" width="45" height="21"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Name" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="i1w-0J-KZf">
+                                <rect key="frame" x="30" y="129" width="708" height="34"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <textInputTraits key="textInputTraits"/>
+                                <connections>
+                                    <action selector="onNameChange:" destination="4E6-80-nis" eventType="editingChanged" id="1TU-hO-0mF"/>
+                                </connections>
+                            </textField>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Server" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pwr-RB-oXC">
+                                <rect key="frame" x="30" y="173" width="50" height="20.5"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="NdB-xa-R2E">
+                                <rect key="frame" x="30" y="204" width="708" height="34"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <textInputTraits key="textInputTraits"/>
+                                <connections>
+                                    <action selector="onServerChange:" destination="4E6-80-nis" eventType="editingChanged" id="Wto-AN-933"/>
+                                </connections>
+                            </textField>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Server Setting" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R0K-zW-L9z">
+                                <rect key="frame" x="30" y="56" width="124" height="22"/>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3vw-sE-OsA">
+                                <rect key="frame" x="681.5" y="51.5" width="56.5" height="31"/>
+                                <state key="normal" title="Button"/>
+                                <buttonConfiguration key="configuration" style="plain" title="Scan"/>
+                                <connections>
+                                    <action selector="onScanClick:" destination="4E6-80-nis" eventType="touchUpInside" id="8Z9-lm-Z9I"/>
+                                    <action selector="onSetServer:" destination="lfk-1f-lmJ" eventType="touchUpInside" id="jgE-II-8kA"/>
+                                </connections>
+                            </button>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Local Data " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yuq-p9-cMU">
+                                <rect key="frame" x="30" y="274" width="94" height="21"/>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="TJI-TK-yrX">
+                                <rect key="frame" x="668" y="310" width="70" height="31"/>
+                                <state key="normal" title="Button"/>
+                                <buttonConfiguration key="configuration" style="plain" title="update"/>
+                                <connections>
+                                    <action selector="onUpdateClick:" destination="4E6-80-nis" eventType="touchUpInside" id="UHo-1S-Tnu"/>
+                                </connections>
+                            </button>
+                            <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nFJ-HW-wWn">
+                                <rect key="frame" x="692" y="677" width="46" height="31"/>
+                                <state key="normal" title="Button"/>
+                                <buttonConfiguration key="configuration" style="plain" title="Set"/>
+                                <connections>
+                                    <action selector="onSetUnlockCode:" destination="lfk-1f-lmJ" eventType="touchUpInside" id="xh0-fd-2BO"/>
+                                    <action selector="onUnlockCodeClick:" destination="4E6-80-nis" eventType="touchUpInside" id="Mgi-1T-A8J"/>
+                                </connections>
+                            </button>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Local data has not been initialized" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Obj-1G-kcW">
+                                <rect key="frame" x="30" y="315" width="257" height="21"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Unlock Code" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TQb-CN-2tn">
+                                <rect key="frame" x="30" y="640" width="110" height="22"/>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Unlock code has not been set" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pjl-GE-L5s">
+                                <rect key="frame" x="30" y="682" width="227" height="21"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Upload Setting" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zhm-2h-vLW">
+                                <rect key="frame" x="30" y="372" width="128.5" height="21"/>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Max Retry Count" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ao6-r1-uXr">
+                                <rect key="frame" x="30" y="413" width="127.5" height="20.5"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Rj3-QR-Agk">
+                                <rect key="frame" x="688" y="406.5" width="50" height="34"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="50" id="vR6-EP-Mmm"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
+                                <connections>
+                                    <action selector="onRetryChange:" destination="4E6-80-nis" eventType="editingChanged" id="tsc-b4-Uot"/>
+                                </connections>
+                            </textField>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Retry Wait TimeInterval" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bt3-RG-tEN">
+                                <rect key="frame" x="30" y="453.5" width="177" height="20.5"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="yzC-7l-hc0">
+                                <rect key="frame" x="688" y="447" width="50" height="34"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="50" id="XIG-Hs-C1i"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
+                                <connections>
+                                    <action selector="onWaitingChange:" destination="4E6-80-nis" eventType="editingChanged" id="C4m-dP-qe5"/>
+                                </connections>
+                            </textField>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="OM7-ch-z2g">
+                                <rect key="frame" x="624" y="957" width="114" height="31"/>
+                                <state key="normal" title="Button"/>
+                                <buttonConfiguration key="configuration" style="plain" title="Privacy Policy"/>
+                                <connections>
+                                    <action selector="onPrivacyClick:" destination="4E6-80-nis" eventType="touchUpInside" id="uMP-iC-OjY"/>
+                                </connections>
+                            </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BqX-sY-rTI">
+                                <rect key="frame" x="513" y="957" width="63" height="31"/>
+                                <state key="normal" title="Button"/>
+                                <buttonConfiguration key="configuration" style="plain" title="About"/>
+                                <connections>
+                                    <action selector="onAboutClick:" destination="4E6-80-nis" eventType="touchUpInside" id="zmW-UI-yqH"/>
+                                </connections>
+                            </button>
+                            <switch hidden="YES" opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tKv-XG-Ugr">
+                                <rect key="frame" x="689" y="489" width="51" height="31"/>
+                                <connections>
+                                    <action selector="onAutoUpload:" destination="4E6-80-nis" eventType="valueChanged" id="9a0-gt-v8G"/>
+                                </connections>
+                            </switch>
+                            <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Auto Start Upload" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Vel-ZT-H2H">
+                                <rect key="frame" x="30" y="494" width="136" height="20.5"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                        <constraints>
+                            <constraint firstItem="OM7-ch-z2g" firstAttribute="trailing" secondItem="yzC-7l-hc0" secondAttribute="trailing" id="1Be-LR-7i0"/>
+                            <constraint firstItem="I4e-nd-eUd" firstAttribute="top" secondItem="R0K-zW-L9z" secondAttribute="bottom" constant="20" id="2Xj-Ia-usW"/>
+                            <constraint firstItem="3vw-sE-OsA" firstAttribute="trailing" secondItem="tKv-XG-Ugr" secondAttribute="trailing" id="2qA-D9-mfJ"/>
+                            <constraint firstItem="nFJ-HW-wWn" firstAttribute="centerY" secondItem="pjl-GE-L5s" secondAttribute="centerY" id="3DR-8Q-Axe"/>
+                            <constraint firstItem="R0K-zW-L9z" firstAttribute="leading" secondItem="7d3-Km-gpZ" secondAttribute="leadingMargin" constant="10" id="4v2-eO-gar"/>
+                            <constraint firstItem="bt3-RG-tEN" firstAttribute="leading" secondItem="R0K-zW-L9z" secondAttribute="leading" id="8G9-nm-TnI"/>
+                            <constraint firstItem="TQb-CN-2tn" firstAttribute="leading" secondItem="R0K-zW-L9z" secondAttribute="leading" id="8a7-Qp-xjJ"/>
+                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="yuq-p9-cMU" secondAttribute="trailing" constant="20" symbolic="YES" id="AOj-cR-SdM"/>
+                            <constraint firstItem="Obj-1G-kcW" firstAttribute="leading" secondItem="yuq-p9-cMU" secondAttribute="leading" id="Bn2-8S-64c"/>
+                            <constraint firstItem="yuq-p9-cMU" firstAttribute="top" secondItem="NdB-xa-R2E" secondAttribute="bottom" constant="36" id="CWm-Af-Ta8"/>
+                            <constraint firstItem="TJI-TK-yrX" firstAttribute="centerY" secondItem="Obj-1G-kcW" secondAttribute="centerY" id="EXA-Sq-gml"/>
+                            <constraint firstItem="pjl-GE-L5s" firstAttribute="leading" secondItem="R0K-zW-L9z" secondAttribute="leading" id="FVr-34-x7y"/>
+                            <constraint firstItem="R0K-zW-L9z" firstAttribute="top" secondItem="auC-0B-URb" secondAttribute="bottom" constant="36" id="HFw-4H-pIJ"/>
+                            <constraint firstItem="Vel-ZT-H2H" firstAttribute="leading" secondItem="R0K-zW-L9z" secondAttribute="leading" id="HQS-3n-bCN"/>
+                            <constraint firstItem="TJI-TK-yrX" firstAttribute="trailing" secondItem="3vw-sE-OsA" secondAttribute="trailing" id="HRD-fh-HR7"/>
+                            <constraint firstItem="OM7-ch-z2g" firstAttribute="centerY" secondItem="BqX-sY-rTI" secondAttribute="centerY" id="HUv-gz-KVD"/>
+                            <constraint firstItem="NdB-xa-R2E" firstAttribute="top" secondItem="pwr-RB-oXC" secondAttribute="bottom" constant="10.5" id="I0R-za-PKc"/>
+                            <constraint firstItem="3vw-sE-OsA" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="R0K-zW-L9z" secondAttribute="trailing" constant="8" symbolic="YES" id="M1R-Ft-RMd"/>
+                            <constraint firstItem="ao6-r1-uXr" firstAttribute="leading" secondItem="R0K-zW-L9z" secondAttribute="leading" id="Mdq-Ji-FxD"/>
+                            <constraint firstItem="TJI-TK-yrX" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="Obj-1G-kcW" secondAttribute="trailing" constant="8" symbolic="YES" id="P60-Yg-CB1"/>
+                            <constraint firstItem="zhm-2h-vLW" firstAttribute="top" secondItem="Obj-1G-kcW" secondAttribute="bottom" constant="36" id="QCw-tU-FSW"/>
+                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="I4e-nd-eUd" secondAttribute="trailing" constant="20" symbolic="YES" id="Quu-V1-6oq"/>
+                            <constraint firstItem="I4e-nd-eUd" firstAttribute="leading" secondItem="R0K-zW-L9z" secondAttribute="leading" id="TFg-oq-D04"/>
+                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="pwr-RB-oXC" secondAttribute="trailing" constant="20" symbolic="YES" id="Tn7-KK-Kj4"/>
+                            <constraint firstItem="Obj-1G-kcW" firstAttribute="leading" secondItem="R0K-zW-L9z" secondAttribute="leading" id="U5C-06-qZ9"/>
+                            <constraint firstItem="pwr-RB-oXC" firstAttribute="leading" secondItem="R0K-zW-L9z" secondAttribute="leading" id="WWa-H5-tKM"/>
+                            <constraint firstItem="yuq-p9-cMU" firstAttribute="leading" secondItem="R0K-zW-L9z" secondAttribute="leading" id="X1e-lJ-bkm"/>
+                            <constraint firstItem="ao6-r1-uXr" firstAttribute="top" secondItem="zhm-2h-vLW" secondAttribute="bottom" constant="20" id="YLl-pj-Cd7"/>
+                            <constraint firstItem="i1w-0J-KZf" firstAttribute="leading" secondItem="R0K-zW-L9z" secondAttribute="leading" id="ZUW-IV-Lwd"/>
+                            <constraint firstItem="Rj3-QR-Agk" firstAttribute="centerY" secondItem="ao6-r1-uXr" secondAttribute="centerY" id="ZyE-8y-M9t"/>
+                            <constraint firstItem="NdB-xa-R2E" firstAttribute="leading" secondItem="R0K-zW-L9z" secondAttribute="leading" id="bYj-aX-acO"/>
+                            <constraint firstItem="5EI-0x-Aa2" firstAttribute="top" secondItem="pjl-GE-L5s" secondAttribute="bottom" constant="321" id="buo-Y2-8Dj"/>
+                            <constraint firstItem="tKv-XG-Ugr" firstAttribute="centerY" secondItem="Vel-ZT-H2H" secondAttribute="centerY" id="d4b-Fa-8gv"/>
+                            <constraint firstItem="nFJ-HW-wWn" firstAttribute="trailing" secondItem="3vw-sE-OsA" secondAttribute="trailing" id="ddH-L0-dQH"/>
+                            <constraint firstItem="TQb-CN-2tn" firstAttribute="leading" secondItem="yuq-p9-cMU" secondAttribute="leading" id="g0N-k3-cqN"/>
+                            <constraint firstItem="NdB-xa-R2E" firstAttribute="trailing" secondItem="i1w-0J-KZf" secondAttribute="trailing" id="gmy-7k-yGH"/>
+                            <constraint firstItem="pjl-GE-L5s" firstAttribute="leading" secondItem="TQb-CN-2tn" secondAttribute="leading" id="hcZ-c0-Ctj"/>
+                            <constraint firstItem="3vw-sE-OsA" firstAttribute="centerY" secondItem="R0K-zW-L9z" secondAttribute="centerY" id="jDM-CV-sia"/>
+                            <constraint firstItem="yzC-7l-hc0" firstAttribute="trailing" secondItem="tKv-XG-Ugr" secondAttribute="trailing" id="jlR-Rk-9k1"/>
+                            <constraint firstItem="yzC-7l-hc0" firstAttribute="centerY" secondItem="bt3-RG-tEN" secondAttribute="centerY" id="kBD-OQ-oop"/>
+                            <constraint firstItem="Rj3-QR-Agk" firstAttribute="trailing" secondItem="tKv-XG-Ugr" secondAttribute="trailing" id="kbY-QM-OPq"/>
+                            <constraint firstItem="bt3-RG-tEN" firstAttribute="top" secondItem="ao6-r1-uXr" secondAttribute="bottom" constant="20" id="mPR-xw-2aK"/>
+                            <constraint firstItem="Obj-1G-kcW" firstAttribute="top" secondItem="yuq-p9-cMU" secondAttribute="bottom" constant="20" id="mz2-QM-vNd"/>
+                            <constraint firstItem="3vw-sE-OsA" firstAttribute="trailing" secondItem="i1w-0J-KZf" secondAttribute="trailing" id="neN-ot-wfg"/>
+                            <constraint firstItem="zhm-2h-vLW" firstAttribute="leading" secondItem="TQb-CN-2tn" secondAttribute="leading" id="ogE-Y1-fHv"/>
+                            <constraint firstItem="OM7-ch-z2g" firstAttribute="leading" secondItem="BqX-sY-rTI" secondAttribute="trailing" constant="48" id="qFU-BW-R9Y"/>
+                            <constraint firstItem="i1w-0J-KZf" firstAttribute="top" secondItem="I4e-nd-eUd" secondAttribute="bottom" constant="10" id="qfP-6Q-JBd"/>
+                            <constraint firstAttribute="trailingMargin" secondItem="3vw-sE-OsA" secondAttribute="trailing" constant="10" id="rDV-kc-ko1"/>
+                            <constraint firstItem="pwr-RB-oXC" firstAttribute="top" secondItem="i1w-0J-KZf" secondAttribute="bottom" constant="10" id="rp3-LR-ylX"/>
+                            <constraint firstItem="Vel-ZT-H2H" firstAttribute="top" secondItem="bt3-RG-tEN" secondAttribute="bottom" constant="20" id="vwp-Tm-MLJ"/>
+                            <constraint firstItem="5EI-0x-Aa2" firstAttribute="top" secondItem="OM7-ch-z2g" secondAttribute="bottom" constant="36" id="wob-ev-E1S"/>
+                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="TQb-CN-2tn" secondAttribute="trailing" constant="20" symbolic="YES" id="x3D-8R-lg2"/>
+                            <constraint firstItem="nFJ-HW-wWn" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="pjl-GE-L5s" secondAttribute="trailing" constant="8" symbolic="YES" id="yc1-RV-uTJ"/>
+                            <constraint firstItem="pjl-GE-L5s" firstAttribute="top" secondItem="TQb-CN-2tn" secondAttribute="bottom" constant="20" id="zrU-DR-xHf"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="autoSwitch" destination="tKv-XG-Ugr" id="2ty-AC-KoQ"/>
+                        <outlet property="internalTextField" destination="NdB-xa-R2E" id="h4q-n3-3zf"/>
+                        <outlet property="labelUpdate" destination="Obj-1G-kcW" id="hgR-GJ-jxc"/>
+                        <outlet property="nameTextField" destination="i1w-0J-KZf" id="Wp0-8i-mDx"/>
+                        <outlet property="retryCountBox" destination="Rj3-QR-Agk" id="DLa-KS-G1a"/>
+                        <outlet property="retryTimeIntervalBox" destination="yzC-7l-hc0" id="dQ0-hZ-fEm"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="HyK-4u-2wT" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1651.5625" y="123.63281249999999"/>
+        </scene>
+        <!--Scan User List View Controller-->
+        <scene sceneID="uYh-qu-qh9">
+            <objects>
+                <viewController storyboardIdentifier="ScanUserListViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="NAL-c8-QGZ" customClass="ScanUserListViewController" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="7uQ-ez-Ikp"/>
+                        <viewControllerLayoutGuide type="bottom" id="Sej-Gp-EgN"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="ofh-e2-bib">
+                        <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="zfV-mD-u4B">
+                                <rect key="frame" x="36" y="36" width="696" height="972"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <prototypes>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" textLabel="If9-Ed-Mke" style="IBUITableViewCellStyleDefault" id="XFZ-pE-gLa">
+                                        <rect key="frame" x="0.0" y="44.5" width="696" height="43.5"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="XFZ-pE-gLa" id="bSi-0h-mDn">
+                                            <rect key="frame" x="0.0" y="0.0" width="696" height="43.5"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="If9-Ed-Mke">
+                                                    <rect key="frame" x="16" y="0.0" width="664" height="43.5"/>
+                                                    <autoresizingMask key="autoresizingMask"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="0.0"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                        </tableViewCellContentView>
+                                    </tableViewCell>
+                                </prototypes>
+                                <connections>
+                                    <outlet property="dataSource" destination="NAL-c8-QGZ" id="q9d-6q-sSI"/>
+                                    <outlet property="delegate" destination="NAL-c8-QGZ" id="2MM-Ge-25C"/>
+                                </connections>
+                            </tableView>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="zfV-mD-u4B" firstAttribute="leading" secondItem="ofh-e2-bib" secondAttribute="leadingMargin" constant="16" id="NPM-BX-cBT"/>
+                            <constraint firstAttribute="trailingMargin" secondItem="zfV-mD-u4B" secondAttribute="trailing" constant="16" id="mAN-Ff-iBP"/>
+                            <constraint firstItem="Sej-Gp-EgN" firstAttribute="top" secondItem="zfV-mD-u4B" secondAttribute="bottom" constant="16" id="pF8-GA-CeT"/>
+                            <constraint firstItem="zfV-mD-u4B" firstAttribute="top" secondItem="7uQ-ez-Ikp" secondAttribute="bottom" constant="16" id="raJ-nd-Hfj"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="table" destination="zfV-mD-u4B" id="JKi-tt-bmR"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="zE5-p3-kYB" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="2366" y="-889"/>
+        </scene>
     </scenes>
     </scenes>
     <resources>
     <resources>
-        <image name="D7B231FC-53DF-41CD-B3DC-EC892BFA0A8B" width="24" height="24">
+        <image name="98A4F9B9-AA28-4FCB-B3A5-2A5F7BB3CC0D" width="24" height="24">
             <mutableData key="keyedArchiveRepresentation">
             <mutableData key="keyedArchiveRepresentation">
 YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8QD05T
 YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8QD05T
 S2V5ZWRBcmNoaXZlctEICVRyb290gAGuCwwZGh8UJCkqMTQ3PUBVJG51bGzWDQ4PEBESExQVFhcYVk5T
 S2V5ZWRBcmNoaXZlctEICVRyb290gAGuCwwZGh8UJCkqMTQ3PUBVJG51bGzWDQ4PEBESExQVFhcYVk5T
@@ -857,6 +1277,9 @@ QwAAAAAAAAAAAAAAAAAAE5M
 </mutableData>
 </mutableData>
         </image>
         </image>
         <image name="checkbox" width="16" height="16"/>
         <image name="checkbox" width="16" height="16"/>
-        <image name="close" width="40" height="40"/>
+        <image name="close" width="32" height="32"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
     </resources>
     </resources>
 </document>
 </document>

+ 1 - 0
RedAnt ERP Mobile/iSales-NPD/config.h

@@ -27,6 +27,7 @@
 
 
 #import "RASingleton.h"
 #import "RASingleton.h"
 
 
+#define URL_SO_CART @""
 
 
 #define OFFLINE_MODE
 #define OFFLINE_MODE
 
 

+ 14 - 0
RedAnt ERP Mobile/iSales-UNITED WAVER.xcodeproj/project.pbxproj

@@ -48,6 +48,7 @@
 		3C3F4EF7276B346200B091AE /* DBUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3F4EF6276B346200B091AE /* DBUtil.m */; };
 		3C3F4EF7276B346200B091AE /* DBUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3F4EF6276B346200B091AE /* DBUtil.m */; };
 		3C3F4EFB276B34AD00B091AE /* RAProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3F4EFA276B34AD00B091AE /* RAProgressHUD.m */; };
 		3C3F4EFB276B34AD00B091AE /* RAProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3F4EFA276B34AD00B091AE /* RAProgressHUD.m */; };
 		3C623FD5237566A800780211 /* CommonEditor.iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C623FD4237566A800780211 /* CommonEditor.iPad.xib */; };
 		3C623FD5237566A800780211 /* CommonEditor.iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C623FD4237566A800780211 /* CommonEditor.iPad.xib */; };
+		3C7D31F027882788005EB380 /* OLOSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7D31EF27882788005EB380 /* OLOSettingViewController.m */; };
 		3C7E5A81237BD953006D0105 /* PortfolioListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7E5A7F237BD952006D0105 /* PortfolioListViewController.m */; };
 		3C7E5A81237BD953006D0105 /* PortfolioListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7E5A7F237BD952006D0105 /* PortfolioListViewController.m */; };
 		3C9BED082373FED40052241C /* iPadCommonEditorCellSignature.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C9BED072373FED40052241C /* iPadCommonEditorCellSignature.xib */; };
 		3C9BED082373FED40052241C /* iPadCommonEditorCellSignature.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C9BED072373FED40052241C /* iPadCommonEditorCellSignature.xib */; };
 		3C9BED0A2373FF1B0052241C /* iPadCommonEditorCellSwitch.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C9BED092373FF1B0052241C /* iPadCommonEditorCellSwitch.xib */; };
 		3C9BED0A2373FF1B0052241C /* iPadCommonEditorCellSwitch.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3C9BED092373FF1B0052241C /* iPadCommonEditorCellSwitch.xib */; };
@@ -384,6 +385,8 @@
 		3C3F4EFA276B34AD00B091AE /* RAProgressHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAProgressHUD.m; sourceTree = "<group>"; };
 		3C3F4EFA276B34AD00B091AE /* RAProgressHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAProgressHUD.m; sourceTree = "<group>"; };
 		3C3F4EFC276B34F400B091AE /* common_const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = common_const.h; path = ../../common/common_const.h; sourceTree = "<group>"; };
 		3C3F4EFC276B34F400B091AE /* common_const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = common_const.h; path = ../../common/common_const.h; sourceTree = "<group>"; };
 		3C623FD4237566A800780211 /* CommonEditor.iPad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CommonEditor.iPad.xib; path = ../../common/customUI/CommonEditoriPad/CommonEditor.iPad.xib; sourceTree = "<group>"; };
 		3C623FD4237566A800780211 /* CommonEditor.iPad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CommonEditor.iPad.xib; path = ../../common/customUI/CommonEditoriPad/CommonEditor.iPad.xib; sourceTree = "<group>"; };
+		3C7D31EE27882788005EB380 /* OLOSettingViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = OLOSettingViewController.h; path = common/Functions/OLO/OLOSettingViewController.h; sourceTree = SOURCE_ROOT; };
+		3C7D31EF27882788005EB380 /* OLOSettingViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = OLOSettingViewController.m; path = common/Functions/OLO/OLOSettingViewController.m; sourceTree = SOURCE_ROOT; };
 		3C7E5A7F237BD952006D0105 /* PortfolioListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PortfolioListViewController.m; path = common/Functions/portfolio/PortfolioListViewController.m; sourceTree = SOURCE_ROOT; };
 		3C7E5A7F237BD952006D0105 /* PortfolioListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PortfolioListViewController.m; path = common/Functions/portfolio/PortfolioListViewController.m; sourceTree = SOURCE_ROOT; };
 		3C7E5A80237BD953006D0105 /* PortfolioListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PortfolioListViewController.h; path = common/Functions/portfolio/PortfolioListViewController.h; sourceTree = SOURCE_ROOT; };
 		3C7E5A80237BD953006D0105 /* PortfolioListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PortfolioListViewController.h; path = common/Functions/portfolio/PortfolioListViewController.h; sourceTree = SOURCE_ROOT; };
 		3C9BED072373FED40052241C /* iPadCommonEditorCellSignature.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = iPadCommonEditorCellSignature.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellSignature.xib; sourceTree = "<group>"; };
 		3C9BED072373FED40052241C /* iPadCommonEditorCellSignature.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = iPadCommonEditorCellSignature.xib; path = ../../common/customUI/CommonEditoriPad/iPadCommonEditorCellSignature.xib; sourceTree = "<group>"; };
@@ -910,6 +913,15 @@
 			path = ../../common/HUD;
 			path = ../../common/HUD;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
 		};
 		};
+		3C7D31ED27882722005EB380 /* OLO */ = {
+			isa = PBXGroup;
+			children = (
+				3C7D31EE27882788005EB380 /* OLOSettingViewController.h */,
+				3C7D31EF27882788005EB380 /* OLOSettingViewController.m */,
+			);
+			name = OLO;
+			sourceTree = "<group>";
+		};
 		3C9FFA29274796620067830C /* PhotoList */ = {
 		3C9FFA29274796620067830C /* PhotoList */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
@@ -1333,6 +1345,7 @@
 		713F76AF1929F4A7006A7305 /* iSales-UWAVER */ = {
 		713F76AF1929F4A7006A7305 /* iSales-UWAVER */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
+				3C7D31ED27882722005EB380 /* OLO */,
 				71DF742C1C57567800F2789C /* UWAVER */,
 				71DF742C1C57567800F2789C /* UWAVER */,
 				712AFEE31DBDAEA000254965 /* PDFResource */,
 				712AFEE31DBDAEA000254965 /* PDFResource */,
 				716387C71953CDB4006E65E6 /* utils */,
 				716387C71953CDB4006E65E6 /* utils */,
@@ -2332,6 +2345,7 @@
 				7162A51A1C58704600AB630E /* ModelItemCell.m in Sources */,
 				7162A51A1C58704600AB630E /* ModelItemCell.m in Sources */,
 				7141DD511C57459B00F7DF59 /* qrencode.c in Sources */,
 				7141DD511C57459B00F7DF59 /* qrencode.c in Sources */,
 				7162A5451C58719D00AB630E /* RATreeView.m in Sources */,
 				7162A5451C58719D00AB630E /* RATreeView.m in Sources */,
+				3C7D31F027882788005EB380 /* OLOSettingViewController.m in Sources */,
 				3C3F4EDC276B336900B091AE /* EnumSelectViewController.m in Sources */,
 				3C3F4EDC276B336900B091AE /* EnumSelectViewController.m in Sources */,
 				71DF74841C57608F00F2789C /* ImageScrollerViewController.m in Sources */,
 				71DF74841C57608F00F2789C /* ImageScrollerViewController.m in Sources */,
 				71DF74861C57608F00F2789C /* ImageViewController.m in Sources */,
 				71DF74861C57608F00F2789C /* ImageViewController.m in Sources */,

+ 71 - 0
RedAnt ERP Mobile/iSales-USAI.xcodeproj/project.pbxproj

@@ -38,6 +38,12 @@
 		3C514994273E091500F78617 /* VideoPreviewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51498E273E091500F78617 /* VideoPreviewCell.m */; };
 		3C514994273E091500F78617 /* VideoPreviewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51498E273E091500F78617 /* VideoPreviewCell.m */; };
 		3C514995273E091500F78617 /* PhotoPreviewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514990273E091500F78617 /* PhotoPreviewCell.m */; };
 		3C514995273E091500F78617 /* PhotoPreviewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514990273E091500F78617 /* PhotoPreviewCell.m */; };
 		3C514999273E097C00F78617 /* RAProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514998273E097B00F78617 /* RAProgressHUD.m */; };
 		3C514999273E097C00F78617 /* RAProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C514998273E097B00F78617 /* RAProgressHUD.m */; };
+		3C51E7CA27B261EC00E61163 /* RANetworkTaskDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51E7C227B261EC00E61163 /* RANetworkTaskDelegate.m */; };
+		3C51E7CB27B261EC00E61163 /* RAUploadOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51E7C327B261EC00E61163 /* RAUploadOperation.m */; };
+		3C51E7CC27B261EC00E61163 /* RAUploadListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51E7C527B261EC00E61163 /* RAUploadListViewController.m */; };
+		3C51E7CD27B261EC00E61163 /* RAUploadManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51E7C827B261EC00E61163 /* RAUploadManager.m */; };
+		3C51E7D027B2623700E61163 /* UploadCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51E7CF27B2623700E61163 /* UploadCell.m */; };
+		3C51E7D327B2628900E61163 /* UIView+Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51E7D227B2628900E61163 /* UIView+Toast.m */; };
 		3C68314D239607B500AD5BD7 /* ytplayer.html in Resources */ = {isa = PBXBuildFile; fileRef = 3C68314A239607B500AD5BD7 /* ytplayer.html */; };
 		3C68314D239607B500AD5BD7 /* ytplayer.html in Resources */ = {isa = PBXBuildFile; fileRef = 3C68314A239607B500AD5BD7 /* ytplayer.html */; };
 		3C68314E239607B500AD5BD7 /* RAYTPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C68314B239607B500AD5BD7 /* RAYTPlayer.m */; };
 		3C68314E239607B500AD5BD7 /* RAYTPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C68314B239607B500AD5BD7 /* RAYTPlayer.m */; };
 		3C6831562396082800AD5BD7 /* ERP_Mobile_Discard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C68314F2396082700AD5BD7 /* ERP_Mobile_Discard.storyboard */; };
 		3C6831562396082800AD5BD7 /* ERP_Mobile_Discard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C68314F2396082700AD5BD7 /* ERP_Mobile_Discard.storyboard */; };
@@ -61,7 +67,11 @@
 		3C69618223C7156D0075172A /* RAPDFViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C69617E23C7156D0075172A /* RAPDFViewController.m */; };
 		3C69618223C7156D0075172A /* RAPDFViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C69617E23C7156D0075172A /* RAPDFViewController.m */; };
 		3C69618323C7156D0075172A /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C69617F23C7156D0075172A /* WebViewController.m */; };
 		3C69618323C7156D0075172A /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C69617F23C7156D0075172A /* WebViewController.m */; };
 		3C69618423C7156D0075172A /* wkweb.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C69618023C7156D0075172A /* wkweb.storyboard */; };
 		3C69618423C7156D0075172A /* wkweb.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C69618023C7156D0075172A /* wkweb.storyboard */; };
+		3C7D31F427882A74005EB380 /* OLOSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7D31F327882A73005EB380 /* OLOSettingViewController.m */; };
 		3C7E5A8E237BDB0C006D0105 /* PortfolioListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7E5A8C237BDB0C006D0105 /* PortfolioListViewController.m */; };
 		3C7E5A8E237BDB0C006D0105 /* PortfolioListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7E5A8C237BDB0C006D0105 /* PortfolioListViewController.m */; };
+		3C872A1E27955CF300BE1FC8 /* scan_cart.json in Resources */ = {isa = PBXBuildFile; fileRef = 3C872A1D27955CF300BE1FC8 /* scan_cart.json */; };
+		3C872A262797FE7C00BE1FC8 /* scan_order.json in Resources */ = {isa = PBXBuildFile; fileRef = 3C872A252797FE7C00BE1FC8 /* scan_order.json */; };
+		3CC1122B279163F4004ACA57 /* offline_order_new_contact.json in Resources */ = {isa = PBXBuildFile; fileRef = 3CC1122A279163F4004ACA57 /* offline_order_new_contact.json */; };
 		3CDDB25C273A564200681F78 /* DefaultTableHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB25A273A564200681F78 /* DefaultTableHeaderView.m */; };
 		3CDDB25C273A564200681F78 /* DefaultTableHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB25A273A564200681F78 /* DefaultTableHeaderView.m */; };
 		3CDDB262273A59DF00681F78 /* TouchImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB260273A59DF00681F78 /* TouchImageView.m */; };
 		3CDDB262273A59DF00681F78 /* TouchImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB260273A59DF00681F78 /* TouchImageView.m */; };
 		3CDDB265273A59EF00681F78 /* RTLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB264273A59EF00681F78 /* RTLabel.m */; };
 		3CDDB265273A59EF00681F78 /* RTLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDDB264273A59EF00681F78 /* RTLabel.m */; };
@@ -370,6 +380,18 @@
 		3C514997273E097B00F78617 /* RAProgressHUD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAProgressHUD.h; sourceTree = "<group>"; };
 		3C514997273E097B00F78617 /* RAProgressHUD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAProgressHUD.h; sourceTree = "<group>"; };
 		3C514998273E097B00F78617 /* RAProgressHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAProgressHUD.m; sourceTree = "<group>"; };
 		3C514998273E097B00F78617 /* RAProgressHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAProgressHUD.m; sourceTree = "<group>"; };
 		3C51499A273E0B6400F78617 /* common_const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = common_const.h; path = ../../common/common_const.h; sourceTree = "<group>"; };
 		3C51499A273E0B6400F78617 /* common_const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = common_const.h; path = ../../common/common_const.h; sourceTree = "<group>"; };
+		3C51E7C227B261EC00E61163 /* RANetworkTaskDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RANetworkTaskDelegate.m; sourceTree = "<group>"; };
+		3C51E7C327B261EC00E61163 /* RAUploadOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAUploadOperation.m; sourceTree = "<group>"; };
+		3C51E7C427B261EC00E61163 /* RAUploadManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAUploadManager.h; sourceTree = "<group>"; };
+		3C51E7C527B261EC00E61163 /* RAUploadListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAUploadListViewController.m; sourceTree = "<group>"; };
+		3C51E7C627B261EC00E61163 /* RANetworkTaskDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RANetworkTaskDelegate.h; sourceTree = "<group>"; };
+		3C51E7C727B261EC00E61163 /* RAUploadOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAUploadOperation.h; sourceTree = "<group>"; };
+		3C51E7C827B261EC00E61163 /* RAUploadManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAUploadManager.m; sourceTree = "<group>"; };
+		3C51E7C927B261EC00E61163 /* RAUploadListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAUploadListViewController.h; sourceTree = "<group>"; };
+		3C51E7CE27B2623700E61163 /* UploadCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UploadCell.h; sourceTree = "<group>"; };
+		3C51E7CF27B2623700E61163 /* UploadCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UploadCell.m; sourceTree = "<group>"; };
+		3C51E7D127B2628900E61163 /* UIView+Toast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIView+Toast.h"; path = "../../common/customUI/UIView+Toast.h"; sourceTree = "<group>"; };
+		3C51E7D227B2628900E61163 /* UIView+Toast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIView+Toast.m"; path = "../../common/customUI/UIView+Toast.m"; sourceTree = "<group>"; };
 		3C68314A239607B500AD5BD7 /* ytplayer.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = ytplayer.html; path = ../../common/Youtube/ytplayer.html; sourceTree = "<group>"; };
 		3C68314A239607B500AD5BD7 /* ytplayer.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = ytplayer.html; path = ../../common/Youtube/ytplayer.html; sourceTree = "<group>"; };
 		3C68314B239607B500AD5BD7 /* RAYTPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAYTPlayer.m; path = ../../common/Youtube/RAYTPlayer.m; sourceTree = "<group>"; };
 		3C68314B239607B500AD5BD7 /* RAYTPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAYTPlayer.m; path = ../../common/Youtube/RAYTPlayer.m; sourceTree = "<group>"; };
 		3C68314C239607B500AD5BD7 /* RAYTPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RAYTPlayer.h; path = ../../common/Youtube/RAYTPlayer.h; sourceTree = "<group>"; };
 		3C68314C239607B500AD5BD7 /* RAYTPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RAYTPlayer.h; path = ../../common/Youtube/RAYTPlayer.h; sourceTree = "<group>"; };
@@ -396,8 +418,13 @@
 		3C69617F23C7156D0075172A /* WebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WebViewController.m; path = "../../common/WK PDF+Web/WebViewController.m"; sourceTree = "<group>"; };
 		3C69617F23C7156D0075172A /* WebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WebViewController.m; path = "../../common/WK PDF+Web/WebViewController.m"; sourceTree = "<group>"; };
 		3C69618023C7156D0075172A /* wkweb.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = wkweb.storyboard; path = "../../common/WK PDF+Web/wkweb.storyboard"; sourceTree = "<group>"; };
 		3C69618023C7156D0075172A /* wkweb.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = wkweb.storyboard; path = "../../common/WK PDF+Web/wkweb.storyboard"; sourceTree = "<group>"; };
 		3C69618123C7156D0075172A /* WebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebViewController.h; path = "../../common/WK PDF+Web/WebViewController.h"; sourceTree = "<group>"; };
 		3C69618123C7156D0075172A /* WebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebViewController.h; path = "../../common/WK PDF+Web/WebViewController.h"; sourceTree = "<group>"; };
+		3C7D31F227882A73005EB380 /* OLOSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OLOSettingViewController.h; path = common/Functions/OLO/OLOSettingViewController.h; sourceTree = SOURCE_ROOT; };
+		3C7D31F327882A73005EB380 /* OLOSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OLOSettingViewController.m; path = common/Functions/OLO/OLOSettingViewController.m; sourceTree = SOURCE_ROOT; };
 		3C7E5A8C237BDB0C006D0105 /* PortfolioListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PortfolioListViewController.m; path = common/Functions/portfolio/PortfolioListViewController.m; sourceTree = SOURCE_ROOT; };
 		3C7E5A8C237BDB0C006D0105 /* PortfolioListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PortfolioListViewController.m; path = common/Functions/portfolio/PortfolioListViewController.m; sourceTree = SOURCE_ROOT; };
 		3C7E5A8D237BDB0C006D0105 /* PortfolioListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PortfolioListViewController.h; path = common/Functions/portfolio/PortfolioListViewController.h; sourceTree = SOURCE_ROOT; };
 		3C7E5A8D237BDB0C006D0105 /* PortfolioListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PortfolioListViewController.h; path = common/Functions/portfolio/PortfolioListViewController.h; sourceTree = SOURCE_ROOT; };
+		3C872A1D27955CF300BE1FC8 /* scan_cart.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = scan_cart.json; path = common/Functions/OLO/scan_cart.json; sourceTree = SOURCE_ROOT; };
+		3C872A252797FE7C00BE1FC8 /* scan_order.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = scan_order.json; path = common/Functions/OLO/scan_order.json; sourceTree = SOURCE_ROOT; };
+		3CC1122A279163F4004ACA57 /* offline_order_new_contact.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = offline_order_new_contact.json; path = common/Functions/contact/offline_order_new_contact.json; sourceTree = SOURCE_ROOT; };
 		3CDDB25A273A564200681F78 /* DefaultTableHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DefaultTableHeaderView.m; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.m; sourceTree = "<group>"; };
 		3CDDB25A273A564200681F78 /* DefaultTableHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DefaultTableHeaderView.m; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.m; sourceTree = "<group>"; };
 		3CDDB25B273A564200681F78 /* DefaultTableHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DefaultTableHeaderView.h; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.h; sourceTree = "<group>"; };
 		3CDDB25B273A564200681F78 /* DefaultTableHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DefaultTableHeaderView.h; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.h; sourceTree = "<group>"; };
 		3CDDB25F273A597B00681F78 /* const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = const.h; path = common/const.h; sourceTree = SOURCE_ROOT; };
 		3CDDB25F273A597B00681F78 /* const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = const.h; path = common/const.h; sourceTree = SOURCE_ROOT; };
@@ -947,6 +974,38 @@
 			path = ../../common/HUD;
 			path = ../../common/HUD;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
 		};
 		};
+		3C51E7C127B261EC00E61163 /* upload */ = {
+			isa = PBXGroup;
+			children = (
+				3C51E7C227B261EC00E61163 /* RANetworkTaskDelegate.m */,
+				3C51E7C327B261EC00E61163 /* RAUploadOperation.m */,
+				3C51E7C427B261EC00E61163 /* RAUploadManager.h */,
+				3C51E7C527B261EC00E61163 /* RAUploadListViewController.m */,
+				3C51E7C627B261EC00E61163 /* RANetworkTaskDelegate.h */,
+				3C51E7C727B261EC00E61163 /* RAUploadOperation.h */,
+				3C51E7C827B261EC00E61163 /* RAUploadManager.m */,
+				3C51E7C927B261EC00E61163 /* RAUploadListViewController.h */,
+			);
+			name = upload;
+			path = ../../common/upload;
+			sourceTree = "<group>";
+		};
+		3C7D31F127882A5F005EB380 /* OLO */ = {
+			isa = PBXGroup;
+			children = (
+				3C51E7D127B2628900E61163 /* UIView+Toast.h */,
+				3C51E7D227B2628900E61163 /* UIView+Toast.m */,
+				3C51E7C127B261EC00E61163 /* upload */,
+				3C7D31F227882A73005EB380 /* OLOSettingViewController.h */,
+				3C7D31F327882A73005EB380 /* OLOSettingViewController.m */,
+				3C872A1D27955CF300BE1FC8 /* scan_cart.json */,
+				3C872A252797FE7C00BE1FC8 /* scan_order.json */,
+				3C51E7CE27B2623700E61163 /* UploadCell.h */,
+				3C51E7CF27B2623700E61163 /* UploadCell.m */,
+			);
+			name = OLO;
+			sourceTree = "<group>";
+		};
 		4254CCDB1FB1AB6600C8B4B6 /* Order Editor */ = {
 		4254CCDB1FB1AB6600C8B4B6 /* Order Editor */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
@@ -1330,6 +1389,7 @@
 		713F76AF1929F4A7006A7305 /* iSales-USAI */ = {
 		713F76AF1929F4A7006A7305 /* iSales-USAI */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
+				3C7D31F127882A5F005EB380 /* OLO */,
 				71DF742C1C57567800F2789C /* USAI */,
 				71DF742C1C57567800F2789C /* USAI */,
 				712AFEE31DBDAEA000254965 /* PDFResource */,
 				712AFEE31DBDAEA000254965 /* PDFResource */,
 				716387C71953CDB4006E65E6 /* utils */,
 				716387C71953CDB4006E65E6 /* utils */,
@@ -1686,6 +1746,7 @@
 				7162A5551C58724700AB630E /* customer_advanced_search.json */,
 				7162A5551C58724700AB630E /* customer_advanced_search.json */,
 				7162A5561C58724700AB630E /* customer_info_template.json */,
 				7162A5561C58724700AB630E /* customer_info_template.json */,
 				7111E5711C76C557004763B3 /* customer_info_template_edit.json */,
 				7111E5711C76C557004763B3 /* customer_info_template_edit.json */,
+				3CC1122A279163F4004ACA57 /* offline_order_new_contact.json */,
 				7162A5571C58724700AB630E /* CustomerEditViewController.h */,
 				7162A5571C58724700AB630E /* CustomerEditViewController.h */,
 				7162A5581C58724700AB630E /* CustomerEditViewController.m */,
 				7162A5581C58724700AB630E /* CustomerEditViewController.m */,
 				7162A5591C58724700AB630E /* CustomerInfoViewController.h */,
 				7162A5591C58724700AB630E /* CustomerInfoViewController.h */,
@@ -2088,6 +2149,7 @@
 				7143E228202FD2CA00451903 /* portfolio_2x3.json in Resources */,
 				7143E228202FD2CA00451903 /* portfolio_2x3.json in Resources */,
 				713F76C21929F4A7006A7305 /* Images.xcassets in Resources */,
 				713F76C21929F4A7006A7305 /* Images.xcassets in Resources */,
 				3C6831572396082800AD5BD7 /* ERP_Mobile_Cart.storyboard in Resources */,
 				3C6831572396082800AD5BD7 /* ERP_Mobile_Cart.storyboard in Resources */,
+				3C872A262797FE7C00BE1FC8 /* scan_order.json in Resources */,
 				3C6831592396082800AD5BD7 /* ERP_Mobile_Search.storyboard in Resources */,
 				3C6831592396082800AD5BD7 /* ERP_Mobile_Search.storyboard in Resources */,
 				3C514992273E091500F78617 /* PhotoList.storyboard in Resources */,
 				3C514992273E091500F78617 /* PhotoList.storyboard in Resources */,
 				42E489611EE63F4E007256A0 /* more_color_64.png in Resources */,
 				42E489611EE63F4E007256A0 /* more_color_64.png in Resources */,
@@ -2111,11 +2173,13 @@
 				71E5A0101DC99370005BF655 /* config.plist in Resources */,
 				71E5A0101DC99370005BF655 /* config.plist in Resources */,
 				71DF74951C57614C00F2789C /* PhotoBorder.png in Resources */,
 				71DF74951C57614C00F2789C /* PhotoBorder.png in Resources */,
 				7143E229202FD2CA00451903 /* so.json in Resources */,
 				7143E229202FD2CA00451903 /* so.json in Resources */,
+				3CC1122B279163F4004ACA57 /* offline_order_new_contact.json in Resources */,
 				3C6831562396082800AD5BD7 /* ERP_Mobile_Discard.storyboard in Resources */,
 				3C6831562396082800AD5BD7 /* ERP_Mobile_Discard.storyboard in Resources */,
 				7162A55F1C58724700AB630E /* customer_info_template.json in Resources */,
 				7162A55F1C58724700AB630E /* customer_info_template.json in Resources */,
 				7141DD3D1C5726B700F7DF59 /* softScanBeep.wav in Resources */,
 				7141DD3D1C5726B700F7DF59 /* softScanBeep.wav in Resources */,
 				3C68316F2396094200AD5BD7 /* iPadCommonEditorCellModel.xib in Resources */,
 				3C68316F2396094200AD5BD7 /* iPadCommonEditorCellModel.xib in Resources */,
 				4295AE1D1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib in Resources */,
 				4295AE1D1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib in Resources */,
+				3C872A1E27955CF300BE1FC8 /* scan_cart.json in Resources */,
 				7141DD341C57269B00F7DF59 /* include in Resources */,
 				7141DD341C57269B00F7DF59 /* include in Resources */,
 				7141DD601C5747CE00F7DF59 /* LICENSE in Resources */,
 				7141DD601C5747CE00F7DF59 /* LICENSE in Resources */,
 				3C68314D239607B500AD5BD7 /* ytplayer.html in Resources */,
 				3C68314D239607B500AD5BD7 /* ytplayer.html in Resources */,
@@ -2166,6 +2230,7 @@
 				714037052164707E0029B10F /* MainHeaderViewColorPanel.m in Sources */,
 				714037052164707E0029B10F /* MainHeaderViewColorPanel.m in Sources */,
 				712AFEDC1DBA050200254965 /* PDFDrawable.m in Sources */,
 				712AFEDC1DBA050200254965 /* PDFDrawable.m in Sources */,
 				7195623C1CF57D1800C74A49 /* CategoryHeaderView.m in Sources */,
 				7195623C1CF57D1800C74A49 /* CategoryHeaderView.m in Sources */,
+				3C51E7D327B2628900E61163 /* UIView+Toast.m in Sources */,
 				712AFED81DBA050200254965 /* GridDrawable.m in Sources */,
 				712AFED81DBA050200254965 /* GridDrawable.m in Sources */,
 				424A02D11FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m in Sources */,
 				424A02D11FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m in Sources */,
 				7162A5C11C5873BB00AB630E /* FilterCellCadedate.m in Sources */,
 				7162A5C11C5873BB00AB630E /* FilterCellCadedate.m in Sources */,
@@ -2176,6 +2241,7 @@
 				71BBA2271CEAC16000C91DED /* ZipArchive.mm in Sources */,
 				71BBA2271CEAC16000C91DED /* ZipArchive.mm in Sources */,
 				7162A5491C58719D00AB630E /* RATreeView+TableViewDelegate.m in Sources */,
 				7162A5491C58719D00AB630E /* RATreeView+TableViewDelegate.m in Sources */,
 				3C514950273D095900F78617 /* CommonEditorCellModel.m in Sources */,
 				3C514950273D095900F78617 /* CommonEditorCellModel.m in Sources */,
+				3C51E7CC27B261EC00E61163 /* RAUploadListViewController.m in Sources */,
 				428980451E249339005F1BD8 /* JKDotView.m in Sources */,
 				428980451E249339005F1BD8 /* JKDotView.m in Sources */,
 				7162A5B41C58738600AB630E /* ScannerControllerView.m in Sources */,
 				7162A5B41C58738600AB630E /* ScannerControllerView.m in Sources */,
 				7162A5831C5872EF00AB630E /* HomeTableViewCellSlide.m in Sources */,
 				7162A5831C5872EF00AB630E /* HomeTableViewCellSlide.m in Sources */,
@@ -2189,6 +2255,7 @@
 				71C1D8541F456D2700CEA1C9 /* ModelDescriptionController.m in Sources */,
 				71C1D8541F456D2700CEA1C9 /* ModelDescriptionController.m in Sources */,
 				7143E212202FCF7600451903 /* CategoryCellNPD.m in Sources */,
 				7143E212202FCF7600451903 /* CategoryCellNPD.m in Sources */,
 				7141DD541C57459B00F7DF59 /* rscode.c in Sources */,
 				7141DD541C57459B00F7DF59 /* rscode.c in Sources */,
+				3C7D31F427882A74005EB380 /* OLOSettingViewController.m in Sources */,
 				7162A5E01C5876E300AB630E /* SettingViewController.m in Sources */,
 				7162A5E01C5876E300AB630E /* SettingViewController.m in Sources */,
 				712AFEDB1DBA050200254965 /* LineDrawable.m in Sources */,
 				712AFEDB1DBA050200254965 /* LineDrawable.m in Sources */,
 				71DF748B1C57608F00F2789C /* SimpleGrid.m in Sources */,
 				71DF748B1C57608F00F2789C /* SimpleGrid.m in Sources */,
@@ -2313,6 +2380,7 @@
 				712BABF31C897E3A0007466B /* CategorySearchFilterViewController.m in Sources */,
 				712BABF31C897E3A0007466B /* CategorySearchFilterViewController.m in Sources */,
 				71DF74981C57614C00F2789C /* PhotoStackViewController.m in Sources */,
 				71DF74981C57614C00F2789C /* PhotoStackViewController.m in Sources */,
 				428980151E24924D005F1BD8 /* SortButton.m in Sources */,
 				428980151E24924D005F1BD8 /* SortButton.m in Sources */,
+				3C51E7CB27B261EC00E61163 /* RAUploadOperation.m in Sources */,
 				3C514980273E07D600F78617 /* EnumModel.m in Sources */,
 				3C514980273E07D600F78617 /* EnumModel.m in Sources */,
 				7162A59A1C58733400AB630E /* OrderDetailInfoCell.m in Sources */,
 				7162A59A1C58733400AB630E /* OrderDetailInfoCell.m in Sources */,
 				7162A5471C58719D00AB630E /* RATreeView+Private.m in Sources */,
 				7162A5471C58719D00AB630E /* RATreeView+Private.m in Sources */,
@@ -2336,6 +2404,7 @@
 				713F76B61929F4A7006A7305 /* main.m in Sources */,
 				713F76B61929F4A7006A7305 /* main.m in Sources */,
 				71BF06FE1D2F3CBA00981938 /* OfflineSettingViewController.m in Sources */,
 				71BF06FE1D2F3CBA00981938 /* OfflineSettingViewController.m in Sources */,
 				71DF74341C5757DA00F2789C /* ActiveViewController.m in Sources */,
 				71DF74341C5757DA00F2789C /* ActiveViewController.m in Sources */,
+				3C51E7CA27B261EC00E61163 /* RANetworkTaskDelegate.m in Sources */,
 				7162A5431C58719D00AB630E /* RATreeNodeInfo.m in Sources */,
 				7162A5431C58719D00AB630E /* RATreeNodeInfo.m in Sources */,
 				3C51494B273D095900F78617 /* CommonEditorCellLabel.m in Sources */,
 				3C51494B273D095900F78617 /* CommonEditorCellLabel.m in Sources */,
 				71FFBBE91C60894900D91DC2 /* iSalesDB.m in Sources */,
 				71FFBBE91C60894900D91DC2 /* iSalesDB.m in Sources */,
@@ -2347,6 +2416,7 @@
 				7162A5721C58728D00AB630E /* DetailKVCell.m in Sources */,
 				7162A5721C58728D00AB630E /* DetailKVCell.m in Sources */,
 				7141DD501C57459B00F7DF59 /* QRCodeGenerator.m in Sources */,
 				7141DD501C57459B00F7DF59 /* QRCodeGenerator.m in Sources */,
 				715671331E10A0EF006324A0 /* RectDrawable.m in Sources */,
 				715671331E10A0EF006324A0 /* RectDrawable.m in Sources */,
+				3C51E7D027B2623700E61163 /* UploadCell.m in Sources */,
 				4289802B1E2492D2005F1BD8 /* CategoryPriceCell.m in Sources */,
 				4289802B1E2492D2005F1BD8 /* CategoryPriceCell.m in Sources */,
 				7162A5DA1C5876E300AB630E /* AboutViewController.m in Sources */,
 				7162A5DA1C5876E300AB630E /* AboutViewController.m in Sources */,
 				7141DD4E1C57459B00F7DF59 /* bitstream.c in Sources */,
 				7141DD4E1C57459B00F7DF59 /* bitstream.c in Sources */,
@@ -2362,6 +2432,7 @@
 				7162A50A1C586FC100AB630E /* NSTimer+Addition.m in Sources */,
 				7162A50A1C586FC100AB630E /* NSTimer+Addition.m in Sources */,
 				3C514949273D095900F78617 /* CommonEditorCellEnum.m in Sources */,
 				3C514949273D095900F78617 /* CommonEditorCellEnum.m in Sources */,
 				712AFED91DBA050200254965 /* GroupDrawable.m in Sources */,
 				712AFED91DBA050200254965 /* GroupDrawable.m in Sources */,
+				3C51E7CD27B261EC00E61163 /* RAUploadManager.m in Sources */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};

+ 20 - 0
RedAnt ERP Mobile/iSales-USAI/UploadCell.h

@@ -0,0 +1,20 @@
+//
+//  UploadCell.h
+//  RA Image
+//
+//  Created by Jack on 2017/5/5.
+//  Copyright © 2017年 USAI. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "RAUploadOperation.h"
+
+@interface UploadCell : UITableViewCell
+
+@property (nonatomic,copy) NSString *name;
+@property (nonatomic,assign) float progress;
+@property (nonatomic,copy) NSString *state;
+@property (nonatomic,copy) NSString *errorMsg;
+@property (nonatomic,weak) RAUploadOperation *operation;
+
+@end

+ 72 - 0
RedAnt ERP Mobile/iSales-USAI/UploadCell.m

@@ -0,0 +1,72 @@
+//
+//  UploadCell.m
+//  RA Image
+//
+//  Created by Jack on 2017/5/5.
+//  Copyright © 2017年 USAI. All rights reserved.
+//
+
+#import "UploadCell.h"
+#import "const.h"
+
+@interface UploadCell ()
+
+@property (strong, nonatomic) IBOutlet UILabel *nameLabel;
+@property (strong, nonatomic) IBOutlet UIProgressView *progressView;
+@property (strong, nonatomic) IBOutlet UILabel *progressIndicator;
+@property (strong, nonatomic) IBOutlet UILabel *errorLabel;
+
+@property (strong, nonatomic) IBOutlet UILabel *stateLabel;
+
+@end
+
+@implementation UploadCell
+
+- (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
+}
+
+- (void)setName:(NSString *)name {
+    _name = name;
+    self.nameLabel.text = name;
+}
+
+- (void)setProgress:(float)progress {
+    
+//    DebugLog(@"cell %p setProgress %f",self,progress);
+    if (progress < 0) {
+        progress = 0.0f;
+    }
+    if (progress > 1) {
+        progress = 1.0f;
+    }
+    _progress = progress;
+    self.progressView.progress = progress;
+    progress = progress * 100;
+    self.progressIndicator.text = [NSString stringWithFormat:@"%.1f%%",progress];
+}
+
+- (void)setState:(NSString *)state {
+    _state = state;
+    self.stateLabel.text = state;
+}
+
+- (void)setErrorMsg:(NSString *)errorMsg {
+    _errorMsg = errorMsg;
+    if (errorMsg.length) {
+        self.errorLabel.hidden = NO;
+        self.errorLabel.text = errorMsg;
+    } else {
+        self.errorLabel.hidden = YES;
+        self.errorLabel.text = nil;
+    }
+}
+
+@end

+ 10 - 0
RedAnt ERP Mobile/iSales-USAI/config.h

@@ -29,6 +29,14 @@
 
 
 //离线模式开关
 //离线模式开关
 #define OFFLINE_MODE
 #define OFFLINE_MODE
+// 离线订单开关
+//#define SCANNER_ORDER
+#ifdef SCANNER_ORDER
+//#define  URL_SO_CONTACT  @"abc"
+#define URL_SO_NEW_CONTACT @"offline_order_new_contact"
+#define URL_SO_ORDER @"scan_order"
+#define URL_SO_CART @"scan_cart"
+#endif
 //google analytics 开关
 //google analytics 开关
 //#define GOOGLE_ANALYTICS
 //#define GOOGLE_ANALYTICS
 //pdf 调试开关
 //pdf 调试开关
@@ -48,6 +56,8 @@
 #define LOCAL_URL_CUSTOMER_INFO_EDITOR @"customer_info_template"
 #define LOCAL_URL_CUSTOMER_INFO_EDITOR @"customer_info_template"
 #define LOCAL_URL_CUSTOMER_INFO_EDIT @"customer_info_template_edit"
 #define LOCAL_URL_CUSTOMER_INFO_EDIT @"customer_info_template_edit"
 
 
+
+
 // http://192.168.0.133:8080/site
 // http://192.168.0.133:8080/site
 // http://12.196.120.217
 // http://12.196.120.217
 #ifdef test_server
 #ifdef test_server

+ 1 - 0
common/RAUtils.h

@@ -73,6 +73,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (NSArray*) allFilesAtPath:(NSString*) dirString;
 + (NSArray*) allFilesAtPath:(NSString*) dirString;
 //+(void) enum_font;
 //+(void) enum_font;
 +(NSDictionary*) dictfromfile:(NSString*) path;
 +(NSDictionary*) dictfromfile:(NSString*) path;
++(void) dicttofile:(NSString*) path dict:(NSDictionary*)dict;
 //+(NSArray*) expression_varable:(NSString*)content regex:(NSString*) pattern;
 //+(NSArray*) expression_varable:(NSString*)content regex:(NSString*) pattern;
 //+(NSTextCheckingResult*) expression_findfistMatch:(NSString*)content regex:(NSString*) pattern;
 //+(NSTextCheckingResult*) expression_findfistMatch:(NSString*)content regex:(NSString*) pattern;
 +(NSData*) getdbfile:(NSString*)dbname;
 +(NSData*) getdbfile:(NSString*)dbname;

+ 16 - 1
common/RAUtils.m

@@ -7,6 +7,7 @@
 //
 //
 
 
 #import "RAUtils.h"
 #import "RAUtils.h"
+#import "RAConvertor.h"
 #import "const.h"
 #import "const.h"
 //#import "LoginViewController.h"
 //#import "LoginViewController.h"
 //#import "MainViewController.h"
 //#import "MainViewController.h"
@@ -47,7 +48,8 @@
 +(NSDictionary*) dictfromfile:(NSString*) path
 +(NSDictionary*) dictfromfile:(NSString*) path
 {
 {
     NSData *filedata = [NSData dataWithContentsOfFile:path];
     NSData *filedata = [NSData dataWithContentsOfFile:path];
-    
+    if(filedata == nil)
+        return nil;
     NSError *error = nil;
     NSError *error = nil;
     NSDictionary *string2dic = [NSJSONSerialization JSONObjectWithData: filedata
     NSDictionary *string2dic = [NSJSONSerialization JSONObjectWithData: filedata
                                                                options: NSJSONReadingMutableContainers
                                                                options: NSJSONReadingMutableContainers
@@ -56,6 +58,19 @@
     return string2dic;
     return string2dic;
     
     
 }
 }
+
++(void) dicttofile:(NSString*) path dict:(NSDictionary*)dict
+{
+    NSString *filestr =[RAConvertor dict2string:dict];
+
+    NSError *error=nil;
+    
+    [filestr writeToFile:path atomically:true encoding:NSUTF8StringEncoding error:&error];
+    // DebugLog(@"%@",string2dic);
+//    return string2dic;
+    
+}
+
 + (NSArray*) allFilesAtPath:(NSString*) dirString
 + (NSArray*) allFilesAtPath:(NSString*) dirString
 {
 {
     
     

+ 1 - 1
common/customUI/commoneditor/CommonEditorCellImg.h

@@ -17,7 +17,7 @@
 @property (strong, nonatomic) IBOutlet TouchImageView *touchImageView0;
 @property (strong, nonatomic) IBOutlet TouchImageView *touchImageView0;
 @property (strong, nonatomic) IBOutlet TouchImageView *touchImageView1;
 @property (strong, nonatomic) IBOutlet TouchImageView *touchImageView1;
 @property (strong, nonatomic) IBOutlet TouchImageView *touchImageView2;
 @property (strong, nonatomic) IBOutlet TouchImageView *touchImageView2;
-
+@property bool local_store;
 @property (strong, nonatomic) NSMutableArray* imgs;
 @property (strong, nonatomic) NSMutableArray* imgs;
 
 
 @property (strong, nonatomic) IBOutlet UILabel *labelDescription;
 @property (strong, nonatomic) IBOutlet UILabel *labelDescription;

+ 3 - 3
common/customUI/commoneditor/CommonEditorCellImg.m

@@ -18,11 +18,11 @@
 - (void)awakeFromNib {
 - (void)awakeFromNib {
     [super awakeFromNib];
     [super awakeFromNib];
     self.touchImageView0.delegate=self;
     self.touchImageView0.delegate=self;
-
+    self.touchImageView0.tag = 0;
     self.touchImageView1.delegate=self;
     self.touchImageView1.delegate=self;
-
+    self.touchImageView1.tag =1;
     self.touchImageView2.delegate=self;
     self.touchImageView2.delegate=self;
-
+    self.touchImageView2.tag = 2;
     self.imgs= [@[@"", @"",@""] mutableCopy];
     self.imgs= [@[@"", @"",@""] mutableCopy];
 }
 }
 
 

+ 2 - 1
common/customUI/commoneditor/CommonEditorViewController.h

@@ -53,6 +53,7 @@
 @property (strong,nonatomic) NSIndexPath* lasttextview_from;
 @property (strong,nonatomic) NSIndexPath* lasttextview_from;
 @property (strong,nonatomic) UITableViewCell* editingcell;
 @property (strong,nonatomic) UITableViewCell* editingcell;
 @property bool cancommit;
 @property bool cancommit;
+@property bool local_store;
 @property bool resize;
 @property bool resize;
 @property int ioffset;
 @property int ioffset;
 @property int keyboard_h;
 @property int keyboard_h;
@@ -88,7 +89,7 @@
 
 
 //control cell event;
 //control cell event;
 
 
-
+- (id)downloadValueForKey:(NSString *)key_name;
 @property (nonatomic,assign) BOOL editable;
 @property (nonatomic,assign) BOOL editable;
 
 
 //URL_LOCAL 表单填充函数
 //URL_LOCAL 表单填充函数

+ 65 - 3
common/customUI/commoneditor/CommonEditorViewController.m

@@ -478,10 +478,15 @@ if(!self.alert.isBeingDismissed)
         self.alert = waitalert;
         self.alert = waitalert;
                 
                 
     }
     }
-    else if(self.url_type== URL_LOCAL )
+    else if(self.url_type== URL_LOCAL || self.url_type==URL_FILE)
     {
     {
         
         
-        NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:self.request_url ofType:@"json" ]];
+        
+        NSData* json =nil;
+        if(self.url_type== URL_LOCAL)
+            json=[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:self.request_url ofType:@"json" ]];
+        else
+            json=[NSData dataWithContentsOfFile:self.request_url];
         NSError *error=nil;
         NSError *error=nil;
         self.content_data_download = [[NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error] mutableCopy];
         self.content_data_download = [[NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error] mutableCopy];
         self.content_data_control=[self translate_json:self.content_data_download changed:self.changed_data];
         self.content_data_control=[self translate_json:self.content_data_download changed:self.changed_data];
@@ -5020,8 +5025,65 @@ if(!self.alert.isBeingDismissed)
             
             
             if(signimg!=nil)
             if(signimg!=nil)
             {
             {
-#ifdef OFFLINE_MODE
                 AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                 AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+                if(RASingleton.sharedInstance.enable_OfflineOrder)
+                {
+                    
+                   
+                    
+                    NSData *data = [OLDataProvider offline_saveBusinesscard:UIImagePNGRepresentation(img)];
+                    
+                    // 再将NSData转为字符串
+                    NSString *jsonStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
+                    
+                    //            NSMutableString *str = [[NSMutableString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
+                    
+                    DebugLog(@"data string: %@",jsonStr);
+                    NSError *error=nil;
+                    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
+                    
+                    
+                    
+                    
+                    
+                    
+                    //NSMutableArray* arr_ret = [[NSMutableArray alloc] init];
+                    if([[json valueForKey:@"result"] intValue]==2)
+                    {
+                        NSString* img_url_down = json[@"img_url_aname"];
+                        //                            if(img_url_down.length==0)
+                        //                                img_url_down=@"";
+                        NSString* img_url_up = json[@"img_url"];
+                        //                            if(img_url_up.length==0)
+                        //                                img_url_up=@"";
+                        
+                        NSMutableDictionary* item_json =((NSMutableArray*)weakself.content_data_control[indexPath.section])[indexPath.row];
+                        
+                        [item_json setValue:img_url_down forKey:@"avalue"];
+                        [item_json setValue:img_url_up forKey:@"value"];
+                        [item_json setValue:@"true" forKey:@"dirty"];
+                        NSMutableDictionary* section_json = [[weakself.content_data_download objectForKey:[NSString stringWithFormat:@"section_%ld",(long)indexPath.section ]] mutableCopy];
+                        [section_json setObject:item_json forKey:[NSString stringWithFormat:@"item_%ld",indexPath.row]];
+                        
+                        [weakself.content_data_download setObject:section_json forKey:[NSString stringWithFormat:@"section_%ld",(long)indexPath.section ]];
+                        weakself.content_data_control = [weakself translate_json:weakself.content_data_download changed:weakself.changed_data];
+                        
+                        
+                        CommonEditorCellSignature* cell = (CommonEditorCellSignature*) [weakself.editorTable cellForRowAtIndexPath:indexPath];
+                        
+                        cell.imageviewSignature.image = signimg;
+                        
+                        
+                    }
+                    else
+                    {
+                        [RAUtils message_alert:[json valueForKey:@"err_msg"] title:@"Upload Image" controller:weakself] ;
+                    }
+                    return;
+                }
+                
+#ifdef OFFLINE_MODE
+
                 BOOL offline_mode = [[RASingleton.sharedInstance globalParameterForKey:@"offline_mode"] boolValue];
                 BOOL offline_mode = [[RASingleton.sharedInstance globalParameterForKey:@"offline_mode"] boolValue];
                 if(offline_mode)
                 if(offline_mode)
                 {
                 {

+ 1 - 0
common/upload/RAUploadListViewController.m

@@ -9,6 +9,7 @@
 #import "RAUploadListViewController.h"
 #import "RAUploadListViewController.h"
 #import "UIView+Toast.h"
 #import "UIView+Toast.h"
 #import "AppDelegate.h"
 #import "AppDelegate.h"
+#import "RAUtils.h"
 
 
 @interface RAUploadListViewController ()
 @interface RAUploadListViewController ()
 
 

Some files were not shown because too many files changed in this diff