Parcourir la source

160726 add offline mode

Ray Zhang il y a 9 ans
Parent
commit
59b358db22
100 fichiers modifiés avec 1065 ajouts et 1704 suppressions
  1. 10 6
      RedAnt ERP Mobile/iSales-NPD/AppDelegate.h
  2. 705 253
      RedAnt ERP Mobile/iSales-NPD/AppDelegate.m
  3. 49 31
      RedAnt ERP Mobile/iSales-NPD/Base.lproj/Main.storyboard
  4. 101 41
      RedAnt ERP Mobile/iSales-NPD/Base.lproj/OLM.storyboard
  5. 3 3
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/Contents.json
  6. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/appicon-1.png
  7. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/appicon-2.png
  8. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/appicon.png
  9. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/assign.png
  10. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/assign@2x.png
  11. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/assign@3x.png
  12. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/back.imageset/appicon-1.png
  13. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/back.imageset/appicon-2.png
  14. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/back.imageset/appicon.png
  15. 3 3
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/Contents.json
  16. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/Trash.png
  17. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/Trash@2x.png
  18. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/Trash@3x.png
  19. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/appicon-1.png
  20. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/appicon-2.png
  21. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/appicon.png
  22. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_placeorder.imageset/appicon-1.png
  23. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_placeorder.imageset/appicon-2.png
  24. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_placeorder.imageset/appicon.png
  25. 3 3
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/Contents.json
  26. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/appicon-1.png
  27. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/appicon-2.png
  28. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/appicon.png
  29. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/close1.png
  30. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/close1@2x.png
  31. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/close1@3x.png
  32. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/commit.imageset/appicon-1.png
  33. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/commit.imageset/appicon-2.png
  34. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/commit.imageset/appicon.png
  35. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/copy.imageset/appicon-1.png
  36. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/copy.imageset/appicon-2.png
  37. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/copy.imageset/appicon.png
  38. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/edit.imageset/appicon-1.png
  39. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/edit.imageset/appicon-2.png
  40. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/edit.imageset/appicon.png
  41. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/mail.imageset/appicon-1.png
  42. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/mail.imageset/appicon-2.png
  43. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/mail.imageset/appicon.png
  44. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/newcustomer.imageset/appicon-1.png
  45. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/newcustomer.imageset/appicon-2.png
  46. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/newcustomer.imageset/appicon.png
  47. 3 3
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/Contents.json
  48. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/appicon-1.png
  49. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/appicon-2.png
  50. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/appicon.png
  51. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/we.png
  52. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/we@2x.png
  53. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/we@3x.png
  54. 3 3
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/Contents.json
  55. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/appicon-1.png
  56. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/appicon-2.png
  57. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/appicon.png
  58. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/yanjing.png
  59. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/yanjing@2x.png
  60. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/yanjing@3x.png
  61. 3 3
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/Contents.json
  62. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/appicon-1.png
  63. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/appicon-2.png
  64. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/appicon.png
  65. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/so.png
  66. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/so@2x.png
  67. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/so@3x.png
  68. 3 3
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/Contents.json
  69. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/appicon-1.png
  70. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/appicon-2.png
  71. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/appicon.png
  72. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/save.png
  73. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/save@2x.png
  74. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/save@3x.png
  75. 3 3
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/Contents.json
  76. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/action.png
  77. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/action@2x.png
  78. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/action@3x.png
  79. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/appicon-1.png
  80. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/appicon-2.png
  81. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/appicon.png
  82. 3 3
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/Contents.json
  83. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/appicon-1.png
  84. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/appicon-2.png
  85. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/appicon.png
  86. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/sign1.png
  87. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/sign1@2x.png
  88. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/sign1@3x.png
  89. 3 3
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/Contents.json
  90. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/appicon-1.png
  91. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/appicon-2.png
  92. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/appicon.png
  93. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/rel1.png
  94. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/rel1@2x.png
  95. BIN
      RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/rel1@3x.png
  96. 0 18
      RedAnt ERP Mobile/iSales-NPD/OLDataProvider.h
  97. 0 972
      RedAnt ERP Mobile/iSales-NPD/OLDataProvider.m
  98. 0 24
      RedAnt ERP Mobile/iSales-NPD/OfflineSettingViewController.h
  99. 0 161
      RedAnt ERP Mobile/iSales-NPD/OfflineSettingViewController.m
  100. 170 168
      RedAnt ERP Mobile/iSales-NPD/config.h

+ 10 - 6
RedAnt ERP Mobile/iSales-NPD/AppDelegate.h

@@ -11,7 +11,7 @@
 #import "ScanApiHelper.h"
 //#import "MainViewController.h"
 #import "ActiveViewController.h"
-#import "OfflineSettingViewController.h"
+#import "SyncControlPanelViewController.h"
 
 
 @interface AppDelegate : UIResponder <UIApplicationDelegate,ScanApiHelperDelegate , NSURLConnectionDataDelegate>
@@ -86,17 +86,21 @@
 
 -(void) update_count_mark;
 // downloader
--(void) check_offline:(NSString*) ver;
-@property (nonatomic, strong) OfflineSettingViewController *settingUI;
+-(void) check_offline:(NSString*) ver useInternalAddress:(bool)buseinternaladdress;
+@property (nonatomic, strong) SyncControlPanelViewController *settingUI;
 @property (nonatomic, strong) NSFileHandle *fileHandle;
-@property (nonatomic, assign) long long currentLength; //>>写入文件的长度
-@property (nonatomic, assign) long long fileLength; //>>文件长度
-@property (nonatomic, strong) NSString *fileName;   //>>文件名
+//@property (nonatomic, assign) long long currentLength; //>>写入文件的长度
+//@property (nonatomic, assign) long long fileLength; //>>文件长度
+//@property (nonatomic, strong) NSString *fileName;   //>>文件名
 @property (nonatomic, strong) NSURLConnection *connection;
 @property double file_progress;
+@property double overall_progress;
 @property (strong, nonatomic) NSString* downloadlog;
+@property (strong, nonatomic) NSString* vid;
 @property bool downloading;
 -(void) add_downloadlog:(NSString*) newtext;
+@property (strong, nonatomic) NSMutableDictionary* download_task;
+@property int current_task;
 //scanner
 #define API_START 1
 #define API_STOP 3

Fichier diff supprimé car celui-ci est trop grand
+ 705 - 253
RedAnt ERP Mobile/iSales-NPD/AppDelegate.m


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

@@ -470,7 +470,7 @@
                                         <rect key="frame" x="0.0" y="22" width="768" height="120"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Hjj-gq-Qs5" id="bKF-1X-6DE">
-                                            <rect key="frame" x="0.0" y="0.0" width="768" height="120"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="119.5"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                                 <label hidden="YES" opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1234567890.00" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="MZM-06-tL3" userLabel="item price">
@@ -591,7 +591,7 @@
                                         <rect key="frame" x="0.0" y="28" width="768" height="120"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="L9J-GT-Vuy" id="8jz-dG-ECN">
-                                            <rect key="frame" x="0.0" y="0.0" width="768" height="120"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="119.5"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                                 <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1234567890.00" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="0CU-0E-u4Q" userLabel="item price">
@@ -812,6 +812,16 @@
                                     <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
                                 </state>
                             </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="20z-6W-PvH">
+                                <rect key="frame" x="295" y="196" width="125" height="22"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <inset key="contentEdgeInsets" minX="4" minY="0.0" maxX="0.0" maxY="0.0"/>
+                                <inset key="imageEdgeInsets" minX="-4" minY="0.0" maxX="0.0" maxY="0.0"/>
+                                <state key="normal" title="Offline mode" image="checkbox">
+                                    <color key="titleColor" red="0.59999999999999998" green="0.40000000000000002" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                    <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                </state>
+                            </button>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sign in" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="2AI-yS-Vfe">
                                 <rect key="frame" x="60" y="67" width="65" height="26"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
@@ -856,7 +866,7 @@
                                         <rect key="frame" x="0.0" y="28" width="360" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="kAP-gb-Gce" id="Ilc-6o-RhI">
-                                            <rect key="frame" x="0.0" y="0.0" width="360" height="43.5"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="360" height="44"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                                 <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="AxX-hS-Jtg">
@@ -891,6 +901,7 @@
                         <outlet property="Loginlist" destination="3dj-qP-iVc" id="XaJ-eX-qBn"/>
                         <outlet property="bb_close" destination="Rl4-6e-kHm" id="0Mj-Do-OjV"/>
                         <outlet property="btnLogin" destination="CZM-O3-JlR" id="unz-tZ-32M"/>
+                        <outlet property="checkOfflineMode" destination="20z-6W-PvH" id="dce-H9-djn"/>
                         <outlet property="checkSavePassword" destination="B5F-AY-BkK" id="zzE-TR-Jcm"/>
                         <outlet property="editpass" destination="oCu-XS-jr9" id="Tqo-ji-zau"/>
                         <outlet property="edituser" destination="e4L-J6-NNX" id="MPR-BH-UPe"/>
@@ -922,10 +933,10 @@
                                 <inset key="separatorInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
                                 <prototypes>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="DetailHeaderCell" rowHeight="550" id="PCZ-Ci-oQf" customClass="DetailHeaderCell">
-                                        <rect key="frame" x="0.0" y="49.5" width="768" height="550"/>
+                                        <rect key="frame" x="0.0" y="50" width="768" height="550"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="PCZ-Ci-oQf" id="DiR-eY-PiR">
-                                            <rect key="frame" x="0.0" y="0.0" width="768" height="549.5"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="550"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                                 <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="USD 123.45" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="fD8-Km-IT3">
@@ -1029,7 +1040,7 @@
                                                 </label>
                                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="8bl-N2-vQ8" customClass="DefaultImageButton">
                                                     <rect key="frame" x="458" y="487" width="124" height="39"/>
-                                                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                                                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
                                                     <state key="normal" title="Add to portfolio" backgroundImage="btn_addtoportfolio">
                                                         <color key="titleColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
                                                         <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
@@ -1092,13 +1103,6 @@
                                                     <fontDescription key="fontDescription" type="system" pointSize="21"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="uvh-e3-ZNr">
-                                                    <rect key="frame" x="533" y="146" width="147" height="61"/>
-                                                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
-                                                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
-                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                                                    <nil key="highlightedColor"/>
-                                                </label>
                                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="AHJ-EJ-V5A" customClass="DefaultImageButton">
                                                     <rect key="frame" x="590" y="487" width="124" height="39"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
@@ -1128,6 +1132,13 @@
                                                         <action selector="add_toCart:" destination="PCZ-Ci-oQf" eventType="touchUpInside" id="BVv-yh-dvO"/>
                                                     </connections>
                                                 </button>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="uvh-e3-ZNr">
+                                                    <rect key="frame" x="533" y="146" width="147" height="61"/>
+                                                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
                                             </subviews>
                                         </tableViewCellContentView>
                                         <inset key="separatorInset" minX="15" minY="0.0" maxX="0.0" maxY="0.0"/>
@@ -1151,6 +1162,7 @@
                                             <outlet property="qrcode_imageview" destination="L3L-K2-xev" id="CfK-Lz-cs7"/>
                                             <outlet property="quantity_text" destination="aRf-kp-OGg" id="rgW-mP-5hT"/>
                                             <outlet property="selector_Button" destination="FwX-9Z-HgC" id="xla-FR-kaP"/>
+                                            <outlet property="selector_dorpdown" destination="tGi-MX-FEf" id="P8m-Vk-5Uh"/>
                                             <outlet property="selector_imageView" destination="EY8-ki-JTY" id="6nO-yl-3sy"/>
                                             <outlet property="selector_label" destination="uvh-e3-ZNr" id="M0z-pj-qQ1"/>
                                             <outlet property="selector_nameLabel" destination="qoq-Cs-JnE" id="2wI-Q7-u2H"/>
@@ -1159,10 +1171,10 @@
                                         </connections>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="DetailTopicCell" selectionStyle="default" indentationWidth="10" reuseIdentifier="DetailTopicCell" id="zzF-db-bsq" customClass="DetailTopicCell">
-                                        <rect key="frame" x="0.0" y="599.5" width="768" height="600"/>
+                                        <rect key="frame" x="0.0" y="600" width="768" height="600"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="zzF-db-bsq" id="rZ0-x8-h3B">
-                                            <rect key="frame" x="0.0" y="0.0" width="768" height="599.5"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="600"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                                 <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Refreshing...
Please wait." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="bSP-hh-M2A">
@@ -1226,18 +1238,18 @@
                                         </connections>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="DetailImageCell" id="gSx-f2-mrB" customClass="DetailImageCell">
-                                        <rect key="frame" x="0.0" y="1199.5" width="768" height="600"/>
+                                        <rect key="frame" x="0.0" y="1200" width="768" height="600"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="gSx-f2-mrB" id="k28-H7-ddZ">
-                                            <rect key="frame" x="0.0" y="0.0" width="768" height="599.5"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="600"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                         </tableViewCellContentView>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="DetailInfoCell" rowHeight="44" id="hYM-aE-rjR" customClass="DetailKVCell">
-                                        <rect key="frame" x="0.0" y="1799.5" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="1800" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="hYM-aE-rjR" id="o59-aa-UU2">
-                                            <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                                 <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="EOR-Ov-zPZ">
@@ -2531,7 +2543,7 @@
                                     </button>
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="HXI-1Z-Yo5" customClass="DefaultImageButton">
                                         <rect key="frame" x="550" y="83" width="30" height="30"/>
-                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                         <state key="normal" title="Cancel Order" backgroundImage="btn_cancelorder">
                                             <color key="titleColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
                                         </state>
@@ -2824,7 +2836,7 @@
                                         <rect key="frame" x="0.0" y="28" width="768" height="66"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="wnt-DO-dKG" id="BF2-Qh-ul9">
-                                            <rect key="frame" x="0.0" y="0.0" width="768" height="65.5"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="66"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="XKD-dm-WDq" userLabel="name">
@@ -6020,7 +6032,7 @@ Email: redantsupport@united-us.net</string>
                                         </connections>
                                     </collectionViewCell>
                                     <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="CategoryCellNPD" id="Cox-ku-WUC" customClass="CategoryCellNPD">
-                                        <rect key="frame" x="588" y="94.5" width="180" height="251"/>
+                                        <rect key="frame" x="588" y="95" width="180" height="251"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
                                         <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
                                             <rect key="frame" x="0.0" y="0.0" width="180" height="251"/>
@@ -6328,7 +6340,7 @@ Email: redantsupport@united-us.net</string>
                                         <rect key="frame" x="0.0" y="22" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Vyi-Ez-P2a" id="LVn-pY-YDc">
-                                            <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="43.5"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                                 <view contentMode="scaleToFill" id="N1s-I8-bJv" customClass="RTLabel">
@@ -8271,7 +8283,7 @@ Email: redantsupport@united-us.net</string>
                                 <nil key="highlightedColor"/>
                             </label>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Line Note" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="9eL-xq-rV3">
-                                <rect key="frame" x="60" y="320" width="112" height="26"/>
+                                <rect key="frame" x="60" y="318" width="112" height="26"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
@@ -8350,13 +8362,6 @@ Email: redantsupport@united-us.net</string>
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" id="DaX-ZG-fqt">
-                                <rect key="frame" x="158" y="318" width="262" height="63"/>
-                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
-                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                <textInputTraits key="textInputTraits" autocapitalizationType="words"/>
-                            </textView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="WbW-HI-0PK" userLabel="new price">
                                 <rect key="frame" x="223" y="279" width="213" height="21"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
@@ -8378,6 +8383,18 @@ Email: redantsupport@united-us.net</string>
                                     <action selector="QTYPercentageValueChanged:" destination="LhD-eu-RdF" eventType="valueChanged" id="eIY-Xj-8Tq"/>
                                 </connections>
                             </switch>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Limit input to 20 characters" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Ucx-Cn-HR6">
+                                <rect key="frame" x="158" y="389" width="224" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" id="DaX-ZG-fqt">
+                                <rect key="frame" x="158" y="318" width="262" height="63"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <textInputTraits key="textInputTraits" autocapitalizationType="words"/>
+                            </textView>
                         </subviews>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                     </view>
@@ -8396,6 +8413,7 @@ Email: redantsupport@united-us.net</string>
                         <outlet property="editPrice" destination="ezN-vF-6te" id="bpD-eJ-E0h"/>
                         <outlet property="editQTY" destination="b0D-zg-gh2" id="v26-sy-X3M"/>
                         <outlet property="labelNewPrice" destination="WbW-HI-0PK" id="vVe-vg-VQi"/>
+                        <outlet property="labelNote" destination="Ucx-Cn-HR6" id="IKc-bu-l7B"/>
                         <outlet property="labelQTYTitle" destination="ePh-2A-r7b" id="uwA-E2-xXB"/>
                         <outlet property="labelQueryQTY" destination="J9S-ON-BZC" id="pYu-H1-SN9"/>
                         <outlet property="label_multiItems" destination="Smc-AX-cPb" id="haI-aH-t82"/>

+ 101 - 41
RedAnt ERP Mobile/iSales-NPD/Base.lproj/OLM.storyboard

@@ -13,13 +13,20 @@
                         <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="Enable Offline Mode" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="iMj-3v-3eE">
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Enable offline mode" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="iMj-3v-3eE">
                                 <rect key="frame" x="20" y="25" width="181" height="21"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Use internal address" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Baf-ru-Ueq">
+                                <rect key="frame" x="20" y="76" width="173" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
                             <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="9fI-uo-0D5">
                                 <rect key="frame" x="217" y="20" width="51" height="31"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
@@ -28,81 +35,69 @@
                                 </connections>
                             </switch>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Last sync" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="o7T-n9-rhA">
-                                <rect key="frame" x="20" y="74" width="91" height="21"/>
+                                <rect key="frame" x="20" y="119" width="91" height="21"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="02/28/2016" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="mAv-YK-pnD">
-                                <rect key="frame" x="217" y="74" width="111" height="21"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="mAv-YK-pnD">
+                                <rect key="frame" x="217" y="119" width="179" height="21"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Cache size" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="4VN-I0-qDk">
-                                <rect key="frame" x="20" y="123" width="91" height="21"/>
+                                <rect key="frame" x="20" y="168" width="91" height="21"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Version" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="kcI-2q-g1r">
-                                <rect key="frame" x="20" y="172" width="91" height="21"/>
+                                <rect key="frame" x="20" y="217" width="91" height="21"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="Kdt-hI-Mna">
-                                <rect key="frame" x="663" y="167" width="85" height="30"/>
+                            <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="Kdt-hI-Mna">
+                                <rect key="frame" x="663" y="212" width="85" height="30"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                 <state key="normal" title="Submit local"/>
                             </button>
-                            <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" id="e5o-kf-vgO">
-                                <rect key="frame" x="20" y="291" width="728" height="713"/>
-                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
-                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
-                                <string key="text">Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.</string>
-                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
-                            </textView>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="jns-5C-X4w">
-                                <rect key="frame" x="616" y="70" width="132" height="30"/>
-                                <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
-                                <state key="normal" title="Update offline data"/>
-                            </button>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="3.22GB" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="J6c-cK-Ihd">
-                                <rect key="frame" x="217" y="123" width="111" height="21"/>
+                                <rect key="frame" x="217" y="168" width="111" height="21"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="Vzg-50-bc2">
-                                <rect key="frame" x="666" y="119" width="82" height="30"/>
-                                <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
-                                <state key="normal" title="Clear cache"/>
-                            </button>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="20160228231919" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Avj-sE-gE6">
-                                <rect key="frame" x="217" y="172" width="147" height="21"/>
+                                <rect key="frame" x="217" y="217" width="147" height="21"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Progress" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="sDs-06-tny">
-                                <rect key="frame" x="20" y="252" width="68" height="21"/>
+                            <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="Vzg-50-bc2">
+                                <rect key="frame" x="666" y="164" width="82" height="30"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                                <state key="normal" title="Clear cache"/>
+                            </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="jns-5C-X4w">
+                                <rect key="frame" x="616" y="115" width="132" height="30"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                                <state key="normal" title="Check update"/>
+                                <connections>
+                                    <action selector="OnCheckUpdate:" destination="FG7-WW-Z5X" eventType="touchUpInside" id="2zt-3T-WH7"/>
+                                </connections>
+                            </button>
+                            <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" id="lgu-mf-cTC">
+                                <rect key="frame" x="217" y="71" width="51" height="31"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
-                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                                <nil key="highlightedColor"/>
-                            </label>
-                            <progressView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" progress="0.5" id="vOC-FT-Ods">
-                                <rect key="frame" x="20" y="281" width="728" height="2"/>
-                                <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
-                            </progressView>
+                            </switch>
                         </subviews>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                     </view>
@@ -112,15 +107,80 @@
                         <outlet property="btn_clearcache" destination="Vzg-50-bc2" id="FQa-mv-uRb"/>
                         <outlet property="btn_submitlocal" destination="Kdt-hI-Mna" id="wNS-AA-KN8"/>
                         <outlet property="label_cachesize" destination="J6c-cK-Ihd" id="cpk-YX-rlK"/>
-                        <outlet property="label_ver" destination="mAv-YK-pnD" id="q2r-6E-GnW"/>
-                        <outlet property="progress_update" destination="vOC-FT-Ods" id="Rzn-Kr-KE3"/>
+                        <outlet property="label_sync" destination="mAv-YK-pnD" id="Yjp-N4-owz"/>
+                        <outlet property="label_ver" destination="Avj-sE-gE6" id="vsF-b2-8kY"/>
+                        <outlet property="switch_internal_address" destination="lgu-mf-cTC" id="8ta-De-UeF"/>
                         <outlet property="switch_offline" destination="9fI-uo-0D5" id="jmI-9t-4XI"/>
-                        <outlet property="tv_log" destination="e5o-kf-vgO" id="8Hc-KD-VC5"/>
                     </connections>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="hdi-ff-J4b" userLabel="First Responder" sceneMemberID="firstResponder"/>
             </objects>
             <point key="canvasLocation" x="887" y="803"/>
         </scene>
+        <!--Sync Control Panel View Controller-->
+        <scene sceneID="INA-Kf-FWJ">
+            <objects>
+                <viewController storyboardIdentifier="SyncControlPanelViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="Kn8-15-Yzp" customClass="SyncControlPanelViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="3kg-RW-dkB">
+                        <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="Progress" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="k2H-8o-P97">
+                                <rect key="frame" x="20" y="64" width="68" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <progressView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" id="qll-0O-PAI">
+                                <rect key="frame" x="20" y="93" width="728" height="2"/>
+                                <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            </progressView>
+                            <progressView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" id="jJD-lt-Uuj">
+                                <rect key="frame" x="20" y="132" width="728" height="2"/>
+                                <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            </progressView>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Overall progress" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="6P9-Se-W27">
+                                <rect key="frame" x="20" y="103" width="126" height="21"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="sEa-AW-QiJ">
+                                <rect key="frame" x="219" y="20" width="330" height="24"/>
+                                <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="20"/>
+                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="0lX-Gd-bGG">
+                                <rect key="frame" x="639" y="974" width="109" height="30"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
+                                <state key="normal" title="Send log"/>
+                                <connections>
+                                    <action selector="onSendlogClick:" destination="Kn8-15-Yzp" eventType="touchUpInside" id="OYC-bp-Xth"/>
+                                </connections>
+                            </button>
+                            <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" id="e3H-tp-xCS">
+                                <rect key="frame" x="20" y="151" width="728" height="815"/>
+                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
+                            </textView>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                    </view>
+                    <connections>
+                        <outlet property="progress_current" destination="qll-0O-PAI" id="vAK-WH-4Z0"/>
+                        <outlet property="progress_overall" destination="jJD-lt-Uuj" id="t5p-OZ-Ke7"/>
+                        <outlet property="tv_log" destination="e3H-tp-xCS" id="yNl-7h-db1"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="bbp-AC-14q" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1789" y="803"/>
+        </scene>
     </scenes>
 </document>

+ 3 - 3
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/Contents.json

@@ -2,17 +2,17 @@
   "images" : [
     {
       "idiom" : "universal",
-      "filename" : "assign.png",
+      "filename" : "appicon.png",
       "scale" : "1x"
     },
     {
       "idiom" : "universal",
-      "filename" : "assign@2x.png",
+      "filename" : "appicon-1.png",
       "scale" : "2x"
     },
     {
       "idiom" : "universal",
-      "filename" : "assign@3x.png",
+      "filename" : "appicon-2.png",
       "scale" : "3x"
     }
   ],

BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/appicon.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/assign.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/assign@2x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/assign.imageset/assign@3x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/back.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/back.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/back.imageset/appicon.png


+ 3 - 3
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/Contents.json

@@ -2,17 +2,17 @@
   "images" : [
     {
       "idiom" : "universal",
-      "filename" : "Trash.png",
+      "filename" : "appicon.png",
       "scale" : "1x"
     },
     {
       "idiom" : "universal",
-      "filename" : "Trash@2x.png",
+      "filename" : "appicon-1.png",
       "scale" : "2x"
     },
     {
       "idiom" : "universal",
-      "filename" : "Trash@3x.png",
+      "filename" : "appicon-2.png",
       "scale" : "3x"
     }
   ],

BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/Trash.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/Trash@2x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/Trash@3x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_cancelorder.imageset/appicon.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_placeorder.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_placeorder.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/btn_placeorder.imageset/appicon.png


+ 3 - 3
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/Contents.json

@@ -2,17 +2,17 @@
   "images" : [
     {
       "idiom" : "universal",
-      "filename" : "close1.png",
+      "filename" : "appicon.png",
       "scale" : "1x"
     },
     {
       "idiom" : "universal",
-      "filename" : "close1@2x.png",
+      "filename" : "appicon-1.png",
       "scale" : "2x"
     },
     {
       "idiom" : "universal",
-      "filename" : "close1@3x.png",
+      "filename" : "appicon-2.png",
       "scale" : "3x"
     }
   ],

BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/appicon.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/close1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/close1@2x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/close.imageset/close1@3x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/commit.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/commit.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/commit.imageset/appicon.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/copy.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/copy.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/copy.imageset/appicon.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/edit.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/edit.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/edit.imageset/appicon.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/mail.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/mail.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/mail.imageset/appicon.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/newcustomer.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/newcustomer.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/newcustomer.imageset/appicon.png


+ 3 - 3
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/Contents.json

@@ -2,17 +2,17 @@
   "images" : [
     {
       "idiom" : "universal",
-      "filename" : "we.png",
+      "filename" : "appicon.png",
       "scale" : "1x"
     },
     {
       "idiom" : "universal",
-      "filename" : "we@2x.png",
+      "filename" : "appicon-1.png",
       "scale" : "2x"
     },
     {
       "idiom" : "universal",
-      "filename" : "we@3x.png",
+      "filename" : "appicon-2.png",
       "scale" : "3x"
     }
   ],

BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/appicon.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/we.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/we@2x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/neworder.imageset/we@3x.png


+ 3 - 3
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/Contents.json

@@ -2,17 +2,17 @@
   "images" : [
     {
       "idiom" : "universal",
-      "filename" : "yanjing.png",
+      "filename" : "appicon.png",
       "scale" : "1x"
     },
     {
       "idiom" : "universal",
-      "filename" : "yanjing@2x.png",
+      "filename" : "appicon-1.png",
       "scale" : "2x"
     },
     {
       "idiom" : "universal",
-      "filename" : "yanjing@3x.png",
+      "filename" : "appicon-2.png",
       "scale" : "3x"
     }
   ],

BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/appicon.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/yanjing.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/yanjing@2x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/preview.imageset/yanjing@3x.png


+ 3 - 3
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/Contents.json

@@ -2,17 +2,17 @@
   "images" : [
     {
       "idiom" : "universal",
-      "filename" : "so.png",
+      "filename" : "appicon.png",
       "scale" : "1x"
     },
     {
       "idiom" : "universal",
-      "filename" : "so@2x.png",
+      "filename" : "appicon-1.png",
       "scale" : "2x"
     },
     {
       "idiom" : "universal",
-      "filename" : "so@3x.png",
+      "filename" : "appicon-2.png",
       "scale" : "3x"
     }
   ],

BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/appicon.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/so.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/so@2x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/sales_order.imageset/so@3x.png


+ 3 - 3
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/Contents.json

@@ -2,17 +2,17 @@
   "images" : [
     {
       "idiom" : "universal",
-      "filename" : "save.png",
+      "filename" : "appicon.png",
       "scale" : "1x"
     },
     {
       "idiom" : "universal",
-      "filename" : "save@2x.png",
+      "filename" : "appicon-1.png",
       "scale" : "2x"
     },
     {
       "idiom" : "universal",
-      "filename" : "save@3x.png",
+      "filename" : "appicon-2.png",
       "scale" : "3x"
     }
   ],

BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/appicon.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/save.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/save@2x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/save.imageset/save@3x.png


+ 3 - 3
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/Contents.json

@@ -2,17 +2,17 @@
   "images" : [
     {
       "idiom" : "universal",
-      "filename" : "action.png",
+      "filename" : "appicon.png",
       "scale" : "1x"
     },
     {
       "idiom" : "universal",
-      "filename" : "action@2x.png",
+      "filename" : "appicon-1.png",
       "scale" : "2x"
     },
     {
       "idiom" : "universal",
-      "filename" : "action@3x.png",
+      "filename" : "appicon-2.png",
       "scale" : "3x"
     }
   ],

BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/action.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/action@2x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/action@3x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/share.imageset/appicon.png


+ 3 - 3
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/Contents.json

@@ -2,17 +2,17 @@
   "images" : [
     {
       "idiom" : "universal",
-      "filename" : "sign1.png",
+      "filename" : "appicon.png",
       "scale" : "1x"
     },
     {
       "idiom" : "universal",
-      "filename" : "sign1@2x.png",
+      "filename" : "appicon-1.png",
       "scale" : "2x"
     },
     {
       "idiom" : "universal",
-      "filename" : "sign1@3x.png",
+      "filename" : "appicon-2.png",
       "scale" : "3x"
     }
   ],

BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/appicon.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/sign1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/sign1@2x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/signature.imageset/sign1@3x.png


+ 3 - 3
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/Contents.json

@@ -2,17 +2,17 @@
   "images" : [
     {
       "idiom" : "universal",
-      "filename" : "rel1.png",
+      "filename" : "appicon.png",
       "scale" : "1x"
     },
     {
       "idiom" : "universal",
-      "filename" : "rel1@2x.png",
+      "filename" : "appicon-1.png",
       "scale" : "2x"
     },
     {
       "idiom" : "universal",
-      "filename" : "rel1@3x.png",
+      "filename" : "appicon-2.png",
       "scale" : "3x"
     }
   ],

BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/appicon.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/rel1.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/rel1@2x.png


BIN
RedAnt ERP Mobile/iSales-NPD/Images.xcassets/unlock.imageset/rel1@3x.png


+ 0 - 18
RedAnt ERP Mobile/iSales-NPD/OLDataProvider.h

@@ -1,18 +0,0 @@
-//
-//  OLDataProvider.h
-//  iSales-NPD
-//
-//  Created by Ray on 2/2/16.
-//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-@interface OLDataProvider : NSObject
-+(NSDictionary*) offline_category :(NSMutableDictionary *) params;
-+(NSDictionary*) offline_model :(NSMutableDictionary *) params;
-+(NSDictionary*) offline_login :(NSMutableDictionary *) params;
-+(NSDictionary*) offline_contactlist :(NSMutableDictionary *) params;
-//+(NSDictionary*) model_img :(int)product_id;
-//+(NSDictionary*) model_property :(int)product_id field:(NSString*) value ;
-@end

+ 0 - 972
RedAnt ERP Mobile/iSales-NPD/OLDataProvider.m

@@ -1,972 +0,0 @@
-//
-//  OLDataProvider.m
-//  iSales-NPD
-//
-//  Created by Ray on 2/2/16.
-//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
-//
-
-#import "OLDataProvider.h"
-#import "iSalesDB.h"
-#import "RAUtils.h"
-#import "AESCrypt.h"
-#import "AppDelegate.h"
-
-
-@interface OLDataProvider ()
-
-@end
-
-@implementation OLDataProvider
-+(NSDictionary*) offline_model :(NSMutableDictionary *) params
-{
-    
-
-    
-    
-    
-    
-    NSString* model_name = [params valueForKey:@"product_name"];
-    
-    NSString* product_id = [params valueForKey:@"product_id"];
-    
-    NSString* category = [params valueForKey:@"category"];
-    
-    
-    NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
-    
-    
-    
-    
-    
-    
-    sqlite3 *db = [iSalesDB get_db];
-    
-    int count = [iSalesDB get_recordcount:db table:@"model" where:[NSString stringWithFormat:@"category like'#%%%@%%#'",category]];
-    
-    
-    NSString *sqlQuery = nil;
-    
-    if(product_id==nil)
-        sqlQuery = [NSString stringWithFormat:@"select name,description,product_id,color,legcolor,availability,incoming_stock,demension,seat_height,meterial,box_dim,volume,weight,model_set,load_ability,default_category,fabric_content,assembling,made_in,special_remarks,stockUom,fashion,selector_field,property_field from model where name='%@';",model_name];
-    else
-        sqlQuery = [NSString stringWithFormat:@"select name,description,product_id,color,legcolor,availability,incoming_stock,demension,seat_height,meterial,box_dim,volume,weight,model_set,load_ability,default_category,fabric_content,assembling,made_in,special_remarks,stockUom,fashion,selector_field,property_field from model where product_id=%@;",product_id];
-    
-    sqlite3_stmt * statement;
-    [ret setValue:@"2" forKey:@"result"];
-    [ret setValue:@"2" forKey:@"detail_section_count"];
-    
-    //    int count=0;
-    if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK)
-    {
-        
-        
-        if (sqlite3_step(statement) == SQLITE_ROW)
-        {
-            NSMutableDictionary* item = [[NSMutableDictionary alloc] init];
-            
-            
-            char *name = (char*)sqlite3_column_text(statement, 0);
-            if(name==nil)
-                name="";
-            NSString *nsname = [[NSString alloc]initWithUTF8String:name];
-            
-            char *description = (char*)sqlite3_column_text(statement, 1);
-            if(description==nil)
-                description="";
-            NSString *nsdescription = [[NSString alloc]initWithUTF8String:description];
-            
-            
-            int product_id = sqlite3_column_int(statement, 2);
-            
-            
-            char *color = (char*)sqlite3_column_text(statement, 3);
-            if(color==nil)
-                color="";
-            //            NSString *nscolor = [[NSString alloc]initWithUTF8String:color];
-            //
-            //            char *legcolor = (char*)sqlite3_column_text(statement, 4);
-            //            if(legcolor==nil)
-            //                legcolor="";
-            //            NSString *nslegcolor = [[NSString alloc]initWithUTF8String:legcolor];
-            //
-            //
-            int availability = sqlite3_column_int(statement, 5);
-            //
-            //            int incoming_stock = sqlite3_column_int(statement, 6);
-            
-            
-            char *demension = (char*)sqlite3_column_text(statement, 7);
-            if(demension==nil)
-                demension="";
-            NSString *nsdemension = [[NSString alloc]initWithUTF8String:demension];
-            
-            
-            
-            //          ,,,,,,,,,
-            
-            
-            char *seat_height = (char*)sqlite3_column_text(statement, 8);
-            if(seat_height==nil)
-                seat_height="";
-            NSString *nsseat_height = [[NSString alloc]initWithUTF8String:seat_height];
-            
-            
-            char *meterial = (char*)sqlite3_column_text(statement, 9);
-            if(meterial==nil)
-                meterial="";
-            NSString *nsmeterial = [[NSString alloc]initWithUTF8String:meterial];
-            
-            char *box_dim = (char*)sqlite3_column_text(statement, 10);
-            if(box_dim==nil)
-                box_dim="";
-            NSString *nsbox_dim = [[NSString alloc]initWithUTF8String:box_dim];
-            
-            char *volume = (char*)sqlite3_column_text(statement, 11);
-            if(volume==nil)
-                volume="";
-            NSString *nsvolume = [[NSString alloc]initWithUTF8String:volume];
-            
-            double weight = sqlite3_column_double(statement, 12);
-            
-            char *model_set = (char*)sqlite3_column_text(statement, 13);
-            if(model_set==nil)
-                model_set="";
-            NSString *nsmodel_set = [[NSString alloc]initWithUTF8String:model_set];
-            
-            char *load_ability = (char*)sqlite3_column_text(statement, 14);
-            if(load_ability==nil)
-                load_ability="";
-            NSString *nsload_ability = [[NSString alloc]initWithUTF8String:load_ability];
-            
-            char *default_category = (char*)sqlite3_column_text(statement, 15);
-            if(default_category==nil)
-                default_category="";
-            NSString *nsdefault_category = [[NSString alloc]initWithUTF8String:default_category];
-            
-            
-            char *fabric_content = (char*)sqlite3_column_text(statement, 16);
-            if(fabric_content==nil)
-                fabric_content="";
-            NSString *nsfabric_content = [[NSString alloc]initWithUTF8String:fabric_content];
-            
-            char *assembling = (char*)sqlite3_column_text(statement, 17);
-            if(assembling==nil)
-                assembling="";
-            NSString *nsassembling = [[NSString alloc]initWithUTF8String:assembling];
-            
-            char *made_in = (char*)sqlite3_column_text(statement, 18);
-            if(made_in==nil)
-                made_in="";
-            NSString *nsmade_in = [[NSString alloc]initWithUTF8String:made_in];
-            
-            
-            char *special_remarks = (char*)sqlite3_column_text(statement, 19);
-            if(special_remarks==nil)
-                special_remarks="";
-            NSString *nsspecial_remarks = [[NSString alloc]initWithUTF8String:special_remarks];
-            
-            
-            int stockUcom = sqlite3_column_double(statement, 20);
-            
-            char *fashion = (char*)sqlite3_column_text(statement, 21);
-            if(fashion==nil)
-                fashion="";
-            NSString *nsfashion = [[NSString alloc]initWithUTF8String:fashion];
-            
-            //            char *fashion_selector = (char*)sqlite3_column_text(statement, 22);
-            //            if(fashion_selector==nil)
-            //                fashion_selector="";
-            //            NSString *nsfashion_selector = [[NSString alloc]initWithUTF8String:fashion_selector];
-            
-            char *property_field = (char*)sqlite3_column_text(statement, 22);
-            if(property_field==nil)
-                property_field="";
-            NSString *nsproperty_field = [[NSString alloc]initWithUTF8String:property_field];
-            
-            [ret setValue:[NSString stringWithFormat:@"%d",product_id] forKey:@"product_id"];
-            
-            NSMutableDictionary* img_section = [[NSMutableDictionary alloc] init];
-            [img_section setObject:[self model_img:product_id] forKey:@"images"];
-            [img_section setObject:[self model_property:product_id field:nsproperty_field] forKey:@"property"];
-            [img_section setObject:[self model_selector:nsfashion field:nsproperty_field] forKey:@"selector"];
-            NSString* Availability=nil;
-            if(availability>0)
-                Availability=[NSString stringWithFormat:@"%d",availability];
-            else
-                Availability = @"In Production";
-            
-            [img_section setValue:Availability forKey:@"Availability"];
-            [img_section setValue:[NSString stringWithFormat:@"%d",stockUcom] forKey:@"stockUom"];
-            
-            NSString* Price=@"Must Sign in.";
-            
-            [img_section setValue:Price forKey:@"price"];
-            [img_section setValue:nsname forKey:@"model_name"];
-            [img_section setValue:nsdescription forKey:@"model_descrition"];
-            
-            [ret setObject:img_section forKey:@"img_section"];
-            
-            NSMutableDictionary* detail0_section = [[NSMutableDictionary alloc] init];
-            int detail0_item_count=0;
-            
-            [detail0_section setObject:[self model_kvItem:@"Dimension" value:nsdemension] forKey:[NSString stringWithFormat:@"item_%d",detail0_item_count++]];
-            [detail0_section setObject:[self model_kvItem:@"Seat Height" value:nsseat_height] forKey:[NSString stringWithFormat:@"item_%d",detail0_item_count++]];
-            [detail0_section setObject:[self model_kvItem:@"Material" value:nsmeterial] forKey:[NSString stringWithFormat:@"item_%d",detail0_item_count++]];
-            [detail0_section setObject:[self model_kvItem:@"Box dimension" value:nsbox_dim] forKey:[NSString stringWithFormat:@"item_%d",detail0_item_count++]];
-            [detail0_section setObject:[self model_kvItem:@"Volume" value:nsvolume] forKey:[NSString stringWithFormat:@"item_%d",detail0_item_count++]];
-            [detail0_section setObject:[self model_kvItem:@"Weight" value:[NSString stringWithFormat:@"%0.2f",weight]] forKey:[NSString stringWithFormat:@"item_%d",detail0_item_count++]];
-            [detail0_section setObject:[self model_kvItem:@"Set" value:nsmodel_set] forKey:[NSString stringWithFormat:@"item_%d",detail0_item_count++]];
-            [detail0_section setObject:[self model_kvItem:@"Load ability" value:nsload_ability] forKey:[NSString stringWithFormat:@"item_%d",detail0_item_count++]];
-            [detail0_section setObject:[self model_kvItem:@"Fabric Content" value:nsfabric_content] forKey:[NSString stringWithFormat:@"item_%d",detail0_item_count++]];
-            [detail0_section setObject:[self model_kvItem:@"Assembling" value:nsassembling] forKey:[NSString stringWithFormat:@"item_%d",detail0_item_count++]];
-            [detail0_section setObject:[self model_kvItem:@"Made in" value:nsmade_in] forKey:[NSString stringWithFormat:@"item_%d",detail0_item_count++]];
-            [detail0_section setObject:[self model_kvItem:@"Special Remarks" value:nsspecial_remarks] forKey:[NSString stringWithFormat:@"item_%d",detail0_item_count++]];
-            
-            
-            [detail0_section setValue:[NSString stringWithFormat:@"%d",detail0_item_count] forKey:@"count"];
-            [detail0_section setValue:@"kv" forKey:@"type"];
-            [detail0_section setValue:@"Product Information" forKey:@"title"];
-            
-            [ret setObject:detail0_section forKey:@"detail_0"];
-            
-            
-            NSMutableDictionary* detail1_section = [[self model_NIYMAL:category] mutableCopy];
-            [detail1_section setValue:@"detail" forKey:@"target"];
-            [detail1_section setValue:@"popup" forKey:@"action"];
-            [detail1_section setValue:@"content" forKey:@"type"];
-            
-            [ret setObject:detail1_section forKey:@"detail_1"];
-        }
-        
-        
-        
-        
-        sqlite3_finalize(statement);
-    }
-    else
-    {
-        [ret setValue:@"8" forKey:@"result"];
-    }
-    NSLog(@"count:%d",count);
-    
-    
-    sqlite3_close(db);
-    DebugLog(@"data string: %@",[RAUtils dict2string:ret] );
-    
-    return ret;
-}
-+(NSDictionary*) offline_category :(NSMutableDictionary *) params
-{
-    
-
-    
-    
-    
-    
-    NSString* orderCode = [params valueForKey:@"orderCode"];
-    
-    NSString* category = [params valueForKey:@"category"];
-    
-    int limit = [[params valueForKey:@"limit"] intValue];
-    int offset = [[params valueForKey:@"offset"] intValue];
-    
-    NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
-    
-    
-    
-    
-    
-    
-    sqlite3 *db = [iSalesDB get_db];
-    
-    int count = [iSalesDB get_recordcount:db table:@"model" where:[NSString stringWithFormat:@"category like'%%#%@#%%'",category]];
-    
-    
-    NSString *sqlQuery = [NSString stringWithFormat:@"select m.name,m.description,m.product_id,i.url from model m LEFT join model_image i on m.product_id = i.product_id where m.category like'%%#%@#%%' and i.type =%d order by m.name limit %d offset %d ;",category,OFFLINE_IMG_TYPE_CATEGORY,limit, offset];
-    
-    DebugLog(@"offline_category sql:%@",sqlQuery);
-    sqlite3_stmt * statement;
-    [ret setValue:@"2" forKey:@"result"];
-    [ret setValue:[NSString stringWithFormat:@"%d",count] forKey:@"item_total_count"];
-    NSMutableDictionary* items = [[NSMutableDictionary alloc] init];
-    //    int count=0;
-    if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK)
-    {
-        
-        int i=0;
-        while (sqlite3_step(statement) == SQLITE_ROW)
-        {
-            NSMutableDictionary* item = [[NSMutableDictionary alloc] init];
-            
-            //            char *name = (char*)sqlite3_column_text(statement, 1);
-            //            NSString *nsNameStr = [[NSString alloc]initWithUTF8String:name];
-            
-            char *name = (char*)sqlite3_column_text(statement, 0);
-            NSString *nsname = [[NSString alloc]initWithUTF8String:name];
-            
-            char *description = (char*)sqlite3_column_text(statement, 1);
-            NSString *nsdescription = [[NSString alloc]initWithUTF8String:description];
-            
-            
-            
-            int product_id = sqlite3_column_int(statement, 2);
-            
-            
-            char *url = (char*)sqlite3_column_text(statement, 3);
-            if(url==nil)
-                url="";
-            NSString *nsurl = [[NSString alloc]initWithUTF8String:url];
-            
-            [item setValue:nsurl forKey:@"img"];
-            [item setValue:nsname forKey:@"name"];
-            [item setValue:nsdescription forKey:@"description"];
-            [item setValue:[NSString stringWithFormat:@"%d",product_id] forKey:@"product_id"];
-            [items setObject:item forKey:[NSString stringWithFormat:@"item_%d",i]];
-            i++;
-            
-        }
-        [items setValue:[NSString stringWithFormat:@"%d",i] forKey:@"count"];
-        [ret setObject:items forKey:@"items"];
-        sqlite3_finalize(statement);
-    }
-    NSLog(@"count:%d",count);
-    
-    
-    sqlite3_close(db);
-    
-    
-    
-    
-    DebugLog(@"data string: %@",[RAUtils dict2string:ret] );
-    
-    return ret;
-}
-+(NSDictionary*) offline_login :(NSMutableDictionary *) params
-{
-    
-    
-    
-    NSString* user = [params valueForKey:@"user"];
-    
-    NSString* password = [params valueForKey:@"password"];
-    
-    
-    
-    NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
-    
-    
-    
-    
-    
-    
-    sqlite3 *db = [iSalesDB get_db];
-    
-    
-    
-    
-    
-    NSString *sqlQuery = [NSString stringWithFormat:@"select can_show_price,can_see_price,contact_id,user_type,can_cancel_order,can_set_cart_price,can_create_portfolio,can_delete_order,can_submit_order,can_set_tearsheet_price,can_create_order,mode,username from offline_login where lower(username)='%@' and password='%@'",user.lowercaseString ,[AESCrypt encrypt:password password:@"usai"]];
-    
-    
-
-    
-    DebugLog(@"offline_login sql:%@",sqlQuery);
-    sqlite3_stmt * statement;
-    
-    
-    [ret setValue:[NSNumber numberWithInt:AP_USER_NOT_AUTH ] forKey:@"result"];
-    
-    
-    if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK)
-    {
-        
-        
-        if (sqlite3_step(statement) == SQLITE_ROW)
-        {
-            
-            [ret setValue:[NSNumber numberWithInt:AP_USER_AUTH ] forKey:@"result"];
-            NSMutableDictionary* header = [[NSMutableDictionary alloc] init];
-            
-            
-            
-            int can_show_price = sqlite3_column_int(statement, 0);
-            int can_see_price = sqlite3_column_int(statement, 1);
-            
-            char *contact_id = (char*)sqlite3_column_text(statement, 2);
-            if(contact_id==nil)
-                contact_id="";
-            NSString *nscontact_id= [[NSString alloc]initWithUTF8String:contact_id];
-            
-            int user_type = sqlite3_column_int(statement, 3);
-            
-            int can_cancel_order = sqlite3_column_int(statement, 4);
-            int can_set_cart_price = sqlite3_column_int(statement, 5);
-            int can_create_portfolio = sqlite3_column_int(statement, 6);
-            int can_delete_order = sqlite3_column_int(statement, 7);
-            int can_submit_order = sqlite3_column_int(statement, 8);
-            int can_set_tearsheet_price = sqlite3_column_int(statement, 9);
-            int can_create_order = sqlite3_column_int(statement, 10);
-            
-            
-            char *mode = (char*)sqlite3_column_text(statement, 11);
-            if(mode==nil)
-                mode="";
-            NSString *nsmode= [[NSString alloc]initWithUTF8String:mode];
-            
-            
-            char *username = (char*)sqlite3_column_text(statement, 12);
-            if(username==nil)
-                username="";
-            NSString *nsusername= [[NSString alloc]initWithUTF8String:username];
-            
-            
-            [header setValue:[NSNumber numberWithBool:can_show_price]   forKey:@"can_show_price"];
-            [header setValue:[NSNumber numberWithBool:can_see_price]   forKey:@"can_see_price"];
-            [header setValue:nscontact_id   forKey:@"contact_id"];
-            [header setValue:[NSNumber numberWithBool:user_type]   forKey:@"user_type"];
-            [header setValue:[NSNumber numberWithBool:can_cancel_order]   forKey:@"can_cancel_order"];
-            [header setValue:[NSNumber numberWithBool:can_set_cart_price]   forKey:@"can_set_cart_price"];
-            [header setValue:[NSNumber numberWithBool:can_create_portfolio]   forKey:@"can_create_portfolio"];
-            [header setValue:[NSNumber numberWithBool:can_delete_order]   forKey:@"can_delete_order"];
-            [header setValue:[NSNumber numberWithBool:can_submit_order]   forKey:@"can_submit_order"];
-            [header setValue:[NSNumber numberWithBool:can_set_tearsheet_price]   forKey:@"can_set_tearsheet_price"];
-            [header setValue:[NSNumber numberWithBool:can_create_order]   forKey:@"can_create_order"];
-            
-            [header setValue:nsusername   forKey:@"username"];
-            
-            
-            [ret setObject:header forKey:@"header"];
-            [ret setValue:nsmode   forKey:@"mode"];
-            
-            
-        }
-        
-        
-        
-        sqlite3_finalize(statement);
-    }
-    
-    
-    
-    sqlite3_close(db);
-    
-    
-    
-    
-    DebugLog(@"data string: %@",[RAUtils dict2string:ret] );
-    
-    return ret;
-}
-+(NSDictionary*) offline_contactlist :(NSMutableDictionary *) params
-{
-    
-    
-    
-    
-    
-    NSString* contactType = [params valueForKey:@"contactType"];
-    
-    NSString* keyword = [params valueForKey:@"keyword"];
-    
-    
-    // advanced search
-    
-     NSString* contact_name = [params valueForKey:@"contact_name"];
-     NSString* customer_phone = [params valueForKey:@"customer_phone"];
-     NSString* customer_fax = [params valueForKey:@"customer_fax"];
-     NSString* customer_zipcode = [params valueForKey:@"customer_zipcode"];
-     NSString* sales_rep = [params valueForKey:@"sales_rep"];
-     NSString* customer_state = [params valueForKey:@"customer_state"];
-     NSString* customer_name = [params valueForKey:@"customer_name"];
-     NSString* customer_country = [params valueForKey:@"customer_country"];
-     NSString* customer_cid = [params valueForKey:@"customer_cid"];
-     NSString* customer_city = [params valueForKey:@"customer_city"];
-     NSString* customer_address = [params valueForKey:@"customer_address"];
-     NSString* customer_email = [params valueForKey:@"customer_email"];
-    
-    
-    int limit = [[params valueForKey:@"limit"] intValue];
-    int offset = [[params valueForKey:@"offset"] intValue];
-    
-    
-    NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
-    
-    
-    
-    
-    
-    
-    sqlite3 *db = [iSalesDB get_db];
-    
-    
-    
-    int count =0;
-    
-    
-    
-    NSString *sqlQuery = nil;
-    
-    if(keyword.length==0)
-    {
-        sqlQuery=[NSString stringWithFormat:@"select editable,company_name,country,addr,zipcode,state,city,contact_name,phone,contact_id from offline_contact where contactType='%@' order by create_time limit %d offset %d",contactType , limit, offset];
-        count=[iSalesDB get_recordcount:db table:@"offline_contact" where:[NSString stringWithFormat:@"contactType='%@'",contactType]];
-    }
-    else
-    {
-        keyword = keyword.lowercaseString;
-        sqlQuery=[NSString stringWithFormat:@"select editable,company_name,country,addr,zipcode,state,city,contact_name,phone,contact_id from offline_contact where contactType='%@' and (lower(contact_id ) like'%@' or lower(company_name) like'%@') order by create_time limit %d offset %d",contactType , keyword,keyword,limit, offset];
-    
-        count=[iSalesDB get_recordcount:db table:@"offline_contact" where:[NSString stringWithFormat:@"contactType='%@' and (lower(contact_id ) like'%@' or lower(company_name) like'%@')",contactType,keyword,keyword]];
-    }
-    
-    
-    DebugLog(@"offline_contactlist sql:%@",sqlQuery);
-    sqlite3_stmt * statement;
-    
-    
-    [ret setValue:@"2" forKey:@"result"];
-    [ret setValue:[NSNumber numberWithInt:count ]  forKey:@"total"];
-    
-    
-    if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK)
-    {
-        
-        int i = 0;
-        while (sqlite3_step(statement) == SQLITE_ROW)
-        {
-            
-            [ret setValue:[NSNumber numberWithInt:AP_USER_AUTH ] forKey:@"result"];
-            
-            NSMutableDictionary* item = [[NSMutableDictionary alloc] init];
-            
-   
-            int editable  = sqlite3_column_int(statement, 0);
-
-            
-            char *company_name = (char*)sqlite3_column_text(statement, 1);
-            NSString *nscompany_name =nil;
-            if(company_name==nil)
-                nscompany_name=@"";
-            else
-                nscompany_name=[NSString stringWithFormat:@"<b>%@</b>", [[NSString alloc]initWithUTF8String:company_name] ];
-            
-            
-            char *country = (char*)sqlite3_column_text(statement, 2);
-            if(country==nil)
-                country="";
-            NSString *nscountry= [[NSString alloc]initWithUTF8String:country];
-            
-            
-            char *addr = (char*)sqlite3_column_text(statement, 3);
-            if(addr==nil)
-                addr="";
-            NSString *nsaddr= [[NSString alloc]initWithUTF8String:addr];
-            
-            
-            char *zipcode = (char*)sqlite3_column_text(statement, 4);
-            if(zipcode==nil)
-                zipcode="";
-            NSString *nszipcode= [[NSString alloc]initWithUTF8String:zipcode];
-            
-            
-            char *state = (char*)sqlite3_column_text(statement, 5);
-            if(state==nil)
-                state="";
-            NSString *nsstate= [[NSString alloc]initWithUTF8String:state];
-            
-            char *city = (char*)sqlite3_column_text(statement, 6);
-            if(city==nil)
-                city="";
-            NSString *nscity= [[NSString alloc]initWithUTF8String:city];
-            
-            char *contact_name = (char*)sqlite3_column_text(statement, 7);
-            NSString *nscontact_name = nil;
-            if(contact_name==nil)
-                nscontact_name=@"";
-            else
-                nscontact_name= [[NSString alloc]initWithUTF8String:contact_name];
-            
-            char *phone = (char*)sqlite3_column_text(statement, 8);
-            NSString *nsphone = nil;
-            if(phone==nil)
-                nsphone=@"";
-            else
-                nsphone= [NSString stringWithFormat:@"TEL:%@",[[NSString alloc]initWithUTF8String:phone]];
-            
-            
-            char *contact_id = (char*)sqlite3_column_text(statement, 9);
-            if(contact_id==nil)
-                contact_id="";
-            NSString *nscontact_id= [[NSString alloc]initWithUTF8String:contact_id];
-            
-
-            
-            NSMutableArray* arr_addr = [[NSMutableArray alloc] init];
-            
-            
-            [arr_addr addObject:nscompany_name];
-            [arr_addr addObject:nscontact_name];
-            [arr_addr addObject:@"<br>"];
-            
-            [arr_addr addObject:nsaddr];
-            [arr_addr addObject:nszipcode];
-            [arr_addr addObject:nscity];
-            [arr_addr addObject:nsstate];
-            [arr_addr addObject:nscountry];
-            [arr_addr addObject:nsphone];
-            
-            
-            NSString * name = [RAUtils arr2string:arr_addr separator:@"," trim:true];
-            
-            
-          
-            [item setValue:name   forKey:@"name"];
-             [item setValue:nscontact_id   forKey:@"contact_id"];
-            
-            [ret setObject:item forKey:[NSString stringWithFormat:@"item_%d",i]];
-            i++;
-           
-            
-            
-        }
-        UIApplication * app = [UIApplication sharedApplication];
-        AppDelegate *appDelegate = (AppDelegate *)[app delegate];
-         [ret setValue:appDelegate.mode   forKey:@"mode"];
-         [ret setValue:[NSNumber numberWithInt:i ]    forKey:@"count"];
-        
-        
-        
-        sqlite3_finalize(statement);
-    }
-    
-    
-    
-    sqlite3_close(db);
-    
-    
-    
-    
-    DebugLog(@"data string: %@",[RAUtils dict2string:ret] );
-    
-    return ret;
-}
-+(NSDictionary*) model_NIYMAL:(NSString*) category
-{
-    // MODEL DETAIL NEW ITEM YOU MAY ALSO LIKE
-    
-    
-    
-    NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
-    
-    
-    
-    
-    
-    
-    sqlite3 *db = [iSalesDB get_db];
-    
-    //  int count = [iSalesDB get_recordcount:db table:@"model" where:[NSString stringWithFormat:@"category like'#%%%@%%#'",category]];
-    
-    
-    NSString *sqlQuery = [NSString stringWithFormat:@"select m.name,m.product_id,i.url from model m LEFT join model_image i on m.product_id = i.product_id where m.category like'%%#%@#%%' and isnew=1 and i.type = %d order by m.name ;",category,OFFLINE_IMG_TYPE_CATEGORY];
-    sqlite3_stmt * statement;
-    int count = 0;
-    [ret setValue:[NSString stringWithFormat:@"%d",count] forKey:@"count"];
-    
-    //    int count=0;
-    if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK)
-    {
-        
-        int i=0;
-        while (sqlite3_step(statement) == SQLITE_ROW)
-        {
-            NSMutableDictionary* item = [[NSMutableDictionary alloc] init];
-            
-            //            char *name = (char*)sqlite3_column_text(statement, 1);
-            //            NSString *nsNameStr = [[NSString alloc]initWithUTF8String:name];
-            
-            char *name = (char*)sqlite3_column_text(statement, 0);
-            NSString *nsname = [[NSString alloc]initWithUTF8String:name];
-            
-            
-            
-            
-            int product_id = sqlite3_column_int(statement, 1);
-            
-            
-            char *url = (char*)sqlite3_column_text(statement, 2);
-            if(url==nil)
-                url="";
-            NSString *nsurl = [[NSString alloc]initWithUTF8String:url];
-            
-            [item setValue:nsurl forKey:@"picture_path"];
-            [item setValue:nsname forKey:@"fash_name"];
-            [item setValue:[NSString stringWithFormat:@"%d",product_id] forKey:@"product_id"];
-            [item setValue:category forKey:@"category"];
-            [ret setObject:item forKey:[NSString stringWithFormat:@"item_%d",i]];
-            i++;
-            
-        }
-        [ret setValue:[NSString stringWithFormat:@"%d",i] forKey:@"count"];
-        
-        
-        sqlite3_finalize(statement);
-    }
-    NSLog(@"count:%d",count);
-    
-    
-    sqlite3_close(db);
-    
-    
-    return ret;
-    
-    
-}
-+(NSDictionary*) model_kvItem:(NSString*) key value:(NSString*)value
-{
-    NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
-    
-    [ret setValue:key forKey:@"key"];
-    [ret setValue:value forKey:@"val"];
-    return ret;
-}
-+(NSDictionary*) model_property :(int)product_id field:(NSString*) field
-{
-    NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
-    
-    [ret setValue:@"0" forKey:@"img_count"];
-    
-    sqlite3 *db = [iSalesDB get_db];
-    
-    
-    
-    
-    NSString *sqlQuery = [NSString stringWithFormat:@"select %@,property_display from model where product_id=%d ;",field,product_id];
-    sqlite3_stmt * statement;
-    
-    
-    if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK)
-    {
-        
-        int i=0;
-        if (sqlite3_step(statement) == SQLITE_ROW)
-        {
-            NSMutableDictionary* item = [[NSMutableDictionary alloc] init];
-            
-            //            char *name = (char*)sqlite3_column_text(statement, 1);
-            //            NSString *nsNameStr = [[NSString alloc]initWithUTF8String:name];
-            
-            char *value = (char*)sqlite3_column_text(statement, 0);
-            if(value==nil)
-                value="";
-            NSString *nsvalue = [[NSString alloc]initWithUTF8String:value];
-            
-            char *key = (char*)sqlite3_column_text(statement, 1);
-            if(key==nil)
-                key="";
-            NSString *nskey = [[NSString alloc]initWithUTF8String:key];
-            
-            [item setValue:nsvalue forKey:@"val"];
-            [item setValue:nskey forKey:@"key"];
-            
-            
-            [ret setObject:item forKey:[NSString stringWithFormat:@"item_%d",i]];
-            [ret setValue:@"1" forKey:@"count"];
-            i++;
-            
-        }
-        
-        
-        
-        sqlite3_finalize(statement);
-    }
-    
-    
-    
-    sqlite3_close(db);
-    
-    return ret;
-}
-+(NSDictionary*) model_selector :(NSString*)fashion field:(NSString*) field
-{
-    NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
-    
-    [ret setValue:@"0" forKey:@"count"];
-    
-    sqlite3 *db = [iSalesDB get_db];
-    
-    
-    
-    
-    NSString *sqlQuery = [NSString stringWithFormat:@"select %@,selector_display,product_id,category from model where fashion='%@'  order by name;",field,fashion];
-    sqlite3_stmt * statement;
-    
-    
-    if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK)
-    {
-        
-        int i=0;
-        while (sqlite3_step(statement) == SQLITE_ROW)
-        {
-            NSMutableDictionary* item = [[NSMutableDictionary alloc] init];
-            
-            //            char *name = (char*)sqlite3_column_text(statement, 1);
-            //            NSString *nsNameStr = [[NSString alloc]initWithUTF8String:name];
-            
-            char *value = (char*)sqlite3_column_text(statement, 0);
-            if(value==nil)
-                value="";
-            NSString *nsvalue = [[NSString alloc]initWithUTF8String:value];
-            
-            char *selector_display = (char*)sqlite3_column_text(statement, 1);
-            if(selector_display==nil)
-                selector_display="";
-            NSString *nsselector_display = [[NSString alloc]initWithUTF8String:selector_display];
-            
-            
-            int product_id = sqlite3_column_int(statement, 2);
-            
-            
-            char *category = (char*)sqlite3_column_text(statement, 3);
-            if(category==nil)
-                category="";
-            NSString *nscategory = [[NSString alloc]initWithUTF8String:category];
-            
-            NSString* url = [self category_img:product_id];
-            
-            [item setValue:nsvalue forKey:@"title"];
-            [item setValue:url forKey:@"pic_url"];
-            
-            NSMutableDictionary* params=[[NSMutableDictionary alloc] init];
-            [params setValue:@"2" forKey:@"count"];
-            NSMutableDictionary* param0=[[NSMutableDictionary alloc] init];
-            [param0 setValue:[NSNumber numberWithInt:product_id ] forKey:@"val"];
-            [param0 setValue:@"product_id" forKey:@"name"];
-            
-            
-            NSMutableDictionary* param1=[[NSMutableDictionary alloc] init];
-            [param1 setValue:nscategory forKey:@"val"];
-            [param1 setValue:@"category" forKey:@"name"];
-            
-            [params setObject:param0 forKey:@"param_0"];
-            [params setObject:param1 forKey:@"param_1"];
-            
-            
-            [item setObject:params forKey:@"params"];
-            
-            
-            
-            [ret setValue:nsselector_display forKey:@"name"];
-            
-            [ret setObject:item forKey:[NSString stringWithFormat:@"item_%d",i]];
-            i++;
-            
-        }
-        [ret setValue:[NSString stringWithFormat:@"%d",i] forKey:@"count"];
-        [ret setValue:@"switch" forKey:@"action"];
-        
-        sqlite3_finalize(statement);
-    }
-    
-    
-    
-    sqlite3_close(db);
-    
-    return ret;
-}
-+(NSString*) category_img :(int)product_id
-{
-    // model 在 category search 显示的图片。
-    NSString* ret =nil;
-    
-    [ret setValue:@"0" forKey:@"img_count"];
-    
-    sqlite3 *db = [iSalesDB get_db];
-    
-    
-    
-    NSString *sqlQuery = [NSString stringWithFormat:@"select url from model_image where product_id=%d and type=%d;",product_id,OFFLINE_IMG_TYPE_CATEGORY];
-    sqlite3_stmt * statement;
-    
-    
-    if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK)
-    {
-        
-        
-        if (sqlite3_step(statement) == SQLITE_ROW)
-        {
-            char *url = (char*)sqlite3_column_text(statement, 0);
-            if(url==nil)
-                url="";
-            ret = [[NSString alloc]initWithUTF8String:url];
-            
-            
-            
-        }
-        
-        
-        
-        sqlite3_finalize(statement);
-    }
-    
-    
-    
-    sqlite3_close(db);
-    
-    return ret;
-}
-+(NSDictionary*) model_img :(int)product_id
-{
-    NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
-    
-    [ret setValue:@"0" forKey:@"img_count"];
-    
-    sqlite3 *db = [iSalesDB get_db];
-    
-    
-    
-    NSString *sqlQuery = [NSString stringWithFormat:@"select url from model_image where product_id=%d and type=%d;",product_id,OFFLINE_IMG_TYPE_DETAIL];
-    sqlite3_stmt * statement;
-    
-    
-    if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK)
-    {
-        
-        int i=0;
-        while (sqlite3_step(statement) == SQLITE_ROW)
-        {
-            NSMutableDictionary* item = [[NSMutableDictionary alloc] init];
-            
-            //            char *name = (char*)sqlite3_column_text(statement, 1);
-            //            NSString *nsNameStr = [[NSString alloc]initWithUTF8String:name];
-            
-            char *url = (char*)sqlite3_column_text(statement, 0);
-            if(url==nil)
-                url="";
-            NSString *nsurl = [[NSString alloc]initWithUTF8String:url];
-            
-            
-            
-            [item setValue:nsurl forKey:@"s"];
-            [item setValue:nsurl forKey:@"l"];
-            
-            
-            [ret setObject:item forKey:[NSString stringWithFormat:@"img_%d",i]];
-            i++;
-            
-        }
-        [ret setValue:[NSString stringWithFormat:@"%d",i] forKey:@"img_count"];
-        
-        
-        sqlite3_finalize(statement);
-    }
-    
-    
-    
-    sqlite3_close(db);
-    
-    return ret;
-}
-
-@end

+ 0 - 24
RedAnt ERP Mobile/iSales-NPD/OfflineSettingViewController.h

@@ -1,24 +0,0 @@
-//
-//  OfflineSettingViewController.h
-//  iSales-NPD
-//
-//  Created by Ray on 5/11/16.
-//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-@interface OfflineSettingViewController : UIViewController
-
-@property (strong, nonatomic) IBOutlet UISwitch *switch_offline;
-@property (strong, nonatomic) IBOutlet UILabel *label_ver;
-@property (strong, nonatomic) IBOutlet UILabel *label_cachesize;
-@property (strong, nonatomic) IBOutlet UIButton *btn_checkupdate;
-@property (strong, nonatomic) IBOutlet UIButton *btn_submitlocal;
-
-@property (strong, nonatomic) IBOutlet UIProgressView *progress_update;
-@property (strong, nonatomic) IBOutlet UIButton *btn_clearcache;
-@property (strong, nonatomic) IBOutlet UITextView *tv_log;
-
--(void) onLogUpdate;
-@end

+ 0 - 161
RedAnt ERP Mobile/iSales-NPD/OfflineSettingViewController.m

@@ -1,161 +0,0 @@
-//
-//  OfflineSettingViewController.m
-//  iSales-NPD
-//
-//  Created by Ray on 5/11/16.
-//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
-//
-
-#import "OfflineSettingViewController.h"
-#import "iSalesNetwork.h"
-
-@interface OfflineSettingViewController ()
-
-@end
-
-@implementation OfflineSettingViewController
-
-- (void)viewDidLoad {
-    [super viewDidLoad];
-    // Do any additional setup after loading the view.
-    
-    
-    
-    NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
-    bool  offline = [defaults boolForKey:@"EnableOfflineMode"] ;
-    
-    self.switch_offline.on = offline;
-    
-    
-    
-    self.edgesForExtendedLayout = UIRectEdgeNone ;
-    
-    UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"close"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
-                                                                    style:UIBarButtonItemStylePlain
-                                                                   target:self
-                                                                   action:@selector( onCloseClick:)];
-    self.navigationItem.rightBarButtonItem = closeButton;
-    
-    
-    self.tv_log.layer.borderWidth=1 ; //边框粗细
-    self.tv_log.layer.borderColor=[UIColor darkGrayColor].CGColor; //边框颜色
-    
-    
-}
-
-- (void)onCloseClick:(UIButton *)sender {
-    
-    //    if(self.onDismissVC)
-    //        self.onDismissVC();
-    [self dismissViewControllerAnimated:true completion:nil];
-}
-
-- (void)didReceiveMemoryWarning {
-    [super didReceiveMemoryWarning];
-    // Dispose of any resources that can be recreated.
-}
-- (IBAction)onChangeOfflineSwitch:(id)sender {
-    
-
-    
-    NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
-    
-    if(self.switch_offline.isOn==false)
-    {
-        //disable offline
-        [defaults removeObjectForKey:@"EnableOfflineMode"];
-        [defaults setBool:self.switch_offline.isOn forKey:@"EnableOfflineMode"];
-        
-        [defaults synchronize];
-    }
-    else
-    {
-        
-        UIApplication * app = [UIApplication sharedApplication];
-        AppDelegate *appDelegate = (AppDelegate *)[app delegate];
-        
-        NSString*  ver = [defaults stringForKey:@"OfflineVer"] ;
-        
-        [appDelegate check_offline:ver];
-        return;
-        
-        if(ver.length==0)
-        {
-            
-            UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Offline data does not exist, do you like download now?" message:nil preferredStyle:UIAlertControllerStyleAlert];
-            //block代码块取代了delegate
-            
-            
-            UIAlertAction *actionTwo = [UIAlertAction actionWithTitle:@"Download" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
-             //   UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Checking offline data"];
-                //init offline mode
-                dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
-                    
-                    
-                  //  [self check_offline];
-                });
-                
-                
-                
-                
-            }];
-            
-            UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
-                [self.switch_offline setOn:false];
-                //[RAUtils message_alert:@"No item in the cart" title:@"Offline" controller:self] ;
-            }];
-            
-            [alertControl addAction:actionTwo];
-            [alertControl addAction:alertthree];
-            
-            //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
-            
-            
-            [self presentViewController:alertControl animated:YES completion:nil];
-            
-            
-            
-            
-            
-            
-            
-            
-        }
-        else
-        {
-            
-        }
-    }
-}
-
--(void) download_file:(NSString*)url type:(NSString*)type
-{
-    
-}
-
-
-
--(void) onLogUpdate
-{
-    UIApplication * app = [UIApplication sharedApplication];
-    AppDelegate *appDelegate = (AppDelegate *)[app delegate];
-    
-    dispatch_async(dispatch_get_main_queue(), ^{
-        self.tv_log.text = appDelegate.downloadlog;
-        
-        [self.tv_log scrollRangeToVisible:NSMakeRange(appDelegate.downloadlog.length-1,0)];
-    });
-    
-    
-}
-/*
- #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

+ 170 - 168
RedAnt ERP Mobile/iSales-NPD/config.h

@@ -20,207 +20,209 @@
 #define LOCAL_URL_CUSTOMER_INFO_EDIT @"customer_info_template_edit"
 
 
+
+//------------------- chen server-----------------------
+#define  URL_UPDATE_AUTH  @"http://192.168.0.116:8080/site/isales/login.htm"
+#define  URL_LOGOUT  @"http://192.168.0.116:8080/site/isales/loginOut.htm"
+#define  URL_RETRIEVE_PASS  @"http://192.168.0.116:8080/site/isales/forgotPassword.htm"
+
+#define  URL_REQUEST_CATMENU  @"http://192.168.0.116:8080/site/isales/menu.htm"
+#define  URL_LOAD_HOME  @"http://192.168.0.116:8080/site/isales/homePage.htm"
+#define  URL_CATEGORY @"http://192.168.0.116:8080/site/isales/distinctCategory.htm"
+#define  URL_SEARCH  @"http://192.168.0.116:8080/site/isales/search.htm"
+#define  URL_ITEM_SEARCH  @"http://192.168.0.116:8080/site/isales/itemSearch.htm"
+#define  URL_CATEGORY_LOADMORE  @"http://192.168.0.116:8080/site/isales/categoryMore.htm"
+#define  URL_CUSTOMER_ADV_SEARCH @"http://192.168.0.116:8080/site/isales/getContactAdvance.htm"
+
+
+#define  URL_ORDER_LIST  @"http://192.168.0.116:8080/site/isales/orderList.htm"
+#define  URL_ORDER_DETAIL  @"http://192.168.0.116:8080/site/isales/orderDetail.htm"
+#define URL_COMMIT_ORDER @"http://192.168.0.116:8080/site/isales/createOrder.htm"
+#define URL_COPY_ORDER @"http://192.168.0.116:8080/site/isales/copyOrder.htm"
+#define URL_SIGN_ORDER @"http://192.168.0.116:8080/site/isales/updateOrderSign.htm"
+#define URL_SAVE_ORDER @"http://192.168.0.116:8080/site/isales/saveOrder.htm"
+#define URL_UPDATE_ORDERCUSTOMER @"http://192.168.0.116:8080/site/isales/updateOrderCustomerInfo.htm"
+#define  URL_NEW_ORDER  @"http://192.168.0.116:8080/site/isales/createNewOrder.htm"
+#define  URL_OPEN_ORDER  @"http://192.168.0.116:8080/site/isales/openOrder.htm"
+#define  URL_RELEASE_ORDER  @"http://192.168.0.116:8080/site/isales/closeOrder.htm"
+#define  URL_DELETE_ORDER  @"http://192.168.0.116:8080/site/isales/deleteOrder.htm"
+#define  URL_CANCEL_ORDER  @"http://192.168.0.116:8080/site/isales/cancelOrder.htm"
+
+
+#define  URL_CART_SET_PRICE  @"http://192.168.0.116:8080/site/isales/setPrice.htm"
+#define  URL_CART_ITEM_NOTES  @"http://192.168.0.116:8080/site/isales/setItemNotes.htm"
+#define  URL_CART_GENERAL_NOTES  @"http://192.168.0.116:8080/site/isales/updateGeneralNote.htm"
+
+#define  URL_CART_INCRESEMENT  @"http://192.168.0.116:8080/site/isales/increment.htm"
+#define  URL_CART  @"http://192.168.0.116:8080/site/isales/cartDtail.htm"
+#define  URL_CARTDELIVERY  @"http://192.168.0.116:8080/site/isales/cartDelivery.htm"
+#define  URL_ADD_TO_CART  @"http://192.168.0.116:8080/site/isales/addToCart.htm"
+#define  URL_CART_REMOVE  @"http://192.168.0.116:8080/site/isales/deleteToCart.htm"
+#define  URL_CART_CHECK  @"http://192.168.0.116:8080/site/isales/checkCartItem.htm"
+#define  URL_CART2WISH  @"http://192.168.0.116:8080/site/isales/cartRemoveToWishlist.htm"
+#define  URL_WISH2CART  @"http://192.168.0.116:8080/site/isales/wishlistRemoveToCart.htm"
+
+
+
+
+#define  URL_ITEM_DETAIL  @"http://192.168.0.116:8080/site/isales/modelDetail.htm"
+
+#define  URL_ADD_TO_WATCHLIST  @"http://192.168.0.116:8080/site/isales/addToWishList.htm"
+#define  URL_WATCHLIST  @"http://192.168.0.116:8080/site/isales/wishList.htm"
+#define  URL_WATCHLIST_REMOVE  @"http://192.168.0.116:8080/site/isales/deleteToWishList.htm"
+
+
+
+#define  URL_ADD_TO_PORTFOLIO @"http://192.168.0.116:8080/site/isales/addToPortfolio.htm"
+#define  URL_PORTFOLIO_REMOVE  @"http://192.168.0.116:8080/site/isales/deleteToPortfolio.htm"
+#define  URL_PORTFOLIOLIST_REMOVE  @"http://192.168.0.116:8080/site/isales/deleteTearSheetPdf.htm"
+#define  URL_PORTFOLIO  @"http://192.168.0.116:8080/site/isales/portfolios.htm"
+#define  URL_PORTFOLIO_SET_PRICE  @"http://192.168.0.116:8080/site/isales/setTearSheetPrice.htm"
+#define  URL_DM_PARAMS @"http://192.168.0.116:8080/site/isales/selectTearSheetParam.htm"
+#define  URL_REQUEST_DM @"http://192.168.0.116:8080/site/isales/getTearSheetPdf.htm"
+#define  URL_SAVE_DM_DIRECT @"http://192.168.0.116:8080/site/isales/getTearSheetPdf.htm"
+#define  URL_SAVE_DM @"http://192.168.0.116:8080/site/isales/saveTearSheetPdf.htm"
+#define  URL_DM_LIST @"http://192.168.0.116:8080/site/isales/tearSheetPdfList.htm"
+//#define  URL_DM_SET_QTY @"http://192.168.0.116:8080/site/isales/setTearSheetAvailableQty.htm"
+#define  URL_REQUEST_MODEL_QTY @"http://192.168.0.116:8080/site/isales/getTearSheetAvailableQty.htm"
+
+#define  URL_CONTACT_LIST  @"http://192.168.0.116:8080/site/isales/getAllContact.htm"
+#define  URL_SHIPTO_LIST  @"http://192.168.0.116:8080/site/isales/getShipToContact.htm"
+
+#define  URL_ADDRESS_EDOTOR  @"http://192.168.0.116:8080/site/isales/getAddAddress.htm"
+#define  URL_ADDRESS_SAVE  @"http://192.168.0.116:8080/site/isales/saveAddress.htm"
+
+
+#define  URL_CREDITCARD_EDOTOR  @"http://192.168.0.116:8080/site/isales/creditCard.htm"
+#define  URL_CREDITCARD_SAVE  @"http://192.168.0.116:8080/site/isales/saveAddress.htm"
+
+
+
+#define  URL_CUSTOMER_INFO  @"http://192.168.0.116:8080/site/isales/getCustomerInfoByContact.htm"
+#define  URL_CUSTOMER_PENDINGORDER  @"http://192.168.0.116:8080/site/isales/hasPendingOrderByContact.htm"
+#define  URL_NEW_CUSTOMER  @"http://192.168.0.116:8080/site/isales/getAddCustomer.htm"
+#define  URL_EDIT_CUSTOMER  @"http://192.168.0.116:8080/site/isales/getUpdateCustomerInfoByContact.htm"
+#define  URL_CUSTOMER_SAVE  @"http://192.168.0.116:8080/site/isales/saveCustomer.htm"
+#define  URL_CUSTOMER_UPDATE  @"http://192.168.0.116:8080/site/isales/updateCustomer.htm"
+#define  URL_UPDATE_CUSTOMER_BCARD  @"http://192.168.0.116:8080/site/isales/updateCustomerBusiCard.htm"
+
+
+
+
+
+
+#define  URL_ERR_LOG  @"http://192.168.0.116:8080/site/isales/er_log.htm"
+
+#define  URL_UPLOAD_IMG  @"http://192.168.0.116:8080/site/isales/uploadImg.htm"
+
+#define  URL_NPD_POLICY  @"http://192.168.0.116:8080/site/isales/generalPolicy.htm"
+
+
+#define  URL_CHECK_OFFLINE  @"http://192.168.0.116:8080/site/offline/initDatas.htm"
+
+#define  URL_DOWNLOAD_OFFLINE  @"http://192.168.0.116:8080/site/offline/downloadDatas.htm"
+
 //
-////------------------- chen server-----------------------
-//#define  URL_UPDATE_AUTH  @"http://192.168.0.116:8080/site/isales/login.htm"
-//#define  URL_LOGOUT  @"http://192.168.0.116:8080/site/isales/loginOut.htm"
-//#define  URL_RETRIEVE_PASS  @"http://192.168.0.116:8080/site/isales/forgotPassword.htm"
 //
-//#define  URL_REQUEST_CATMENU  @"http://192.168.0.116:8080/site/isales/menu.htm"
-//#define  URL_LOAD_HOME  @"http://192.168.0.116:8080/site/isales/homePage.htm"
-//#define  URL_CATEGORY @"http://192.168.0.116:8080/site/isales/distinctCategory.htm"
-//#define  URL_SEARCH  @"http://192.168.0.116:8080/site/isales/search.htm"
-//#define  URL_ITEM_SEARCH  @"http://192.168.0.116:8080/site/isales/itemSearch.htm"
-//#define  URL_CATEGORY_LOADMORE  @"http://192.168.0.116:8080/site/isales/categoryMore.htm"
-//#define  URL_CUSTOMER_ADV_SEARCH @"http://192.168.0.116:8080/site/isales/getContactAdvance.htm"
+////------------------- NPD server-----------------------
+//#define  URL_UPDATE_AUTH  @"https://www.newpacificdirect.com/isales/login.htm"
+//#define  URL_LOGOUT  @"https://www.newpacificdirect.com/isales/loginOut.htm"
+//#define  URL_RETRIEVE_PASS  @"https://www.newpacificdirect.com/isales/forgotPassword.htm"
 //
+//#define  URL_REQUEST_CATMENU  @"https://www.newpacificdirect.com/isales/menu.htm"
+//#define  URL_LOAD_HOME  @"https://www.newpacificdirect.com/isales/homePage.htm"
+//#define  URL_CATEGORY @"https://www.newpacificdirect.com/isales/distinctCategory.htm"
+//#define  URL_SEARCH  @"https://www.newpacificdirect.com/isales/search.htm"
+//#define  URL_ITEM_SEARCH  @"https://www.newpacificdirect.com/isales/itemSearch.htm"
+//#define  URL_CATEGORY_LOADMORE  @"https://www.newpacificdirect.com/isales/categoryMore.htm"
 //
-//#define  URL_ORDER_LIST  @"http://192.168.0.116:8080/site/isales/orderList.htm"
-//#define  URL_ORDER_DETAIL  @"http://192.168.0.116:8080/site/isales/orderDetail.htm"
-//#define URL_COMMIT_ORDER @"http://192.168.0.116:8080/site/isales/createOrder.htm"
-//#define URL_COPY_ORDER @"http://192.168.0.116:8080/site/isales/copyOrder.htm"
-//#define URL_SIGN_ORDER @"http://192.168.0.116:8080/site/isales/updateOrderSign.htm"
-//#define URL_SAVE_ORDER @"http://192.168.0.116:8080/site/isales/saveOrder.htm"
-//#define URL_UPDATE_ORDERCUSTOMER @"http://192.168.0.116:8080/site/isales/updateOrderCustomerInfo.htm"
-//#define  URL_NEW_ORDER  @"http://192.168.0.116:8080/site/isales/createNewOrder.htm"
-//#define  URL_OPEN_ORDER  @"http://192.168.0.116:8080/site/isales/openOrder.htm"
-//#define  URL_RELEASE_ORDER  @"http://192.168.0.116:8080/site/isales/closeOrder.htm"
-//#define  URL_DELETE_ORDER  @"http://192.168.0.116:8080/site/isales/deleteOrder.htm"
-//#define  URL_CANCEL_ORDER  @"http://192.168.0.116:8080/site/isales/cancelOrder.htm"
 //
 //
-//#define  URL_CART_SET_PRICE  @"http://192.168.0.116:8080/site/isales/setPrice.htm"
-//#define  URL_CART_ITEM_NOTES  @"http://192.168.0.116:8080/site/isales/setItemNotes.htm"
-//#define  URL_CART_GENERAL_NOTES  @"http://192.168.0.116:8080/site/isales/updateGeneralNote.htm"
+//#define  URL_ORDER_LIST  @"https://www.newpacificdirect.com/isales/orderList.htm"
+//#define  URL_ORDER_DETAIL  @"https://www.newpacificdirect.com/isales/orderDetail.htm"
+//#define URL_COMMIT_ORDER @"https://www.newpacificdirect.com/isales/createOrder.htm"
+//#define URL_SAVE_ORDER @"https://www.newpacificdirect.com/isales/saveOrder.htm"
+//#define URL_UPDATE_ORDERCUSTOMER @"https://www.newpacificdirect.com/isales/updateOrderCustomerInfo.htm"
+//#define  URL_NEW_ORDER  @"https://www.newpacificdirect.com/isales/createNewOrder.htm"
+//#define  URL_OPEN_ORDER  @"https://www.newpacificdirect.com/isales/openOrder.htm"
+//#define  URL_RELEASE_ORDER  @"https://www.newpacificdirect.com/isales/closeOrder.htm"
+//#define  URL_DELETE_ORDER  @"https://www.newpacificdirect.com/isales/deleteOrder.htm"
+//#define  URL_CANCEL_ORDER  @"https://www.newpacificdirect.com/isales/cancelOrder.htm"
 //
-//#define  URL_CART_INCRESEMENT  @"http://192.168.0.116:8080/site/isales/increment.htm"
-//#define  URL_CART  @"http://192.168.0.116:8080/site/isales/cartDtail.htm"
-//#define  URL_CARTDELIVERY  @"http://192.168.0.116:8080/site/isales/cartDelivery.htm"
-//#define  URL_ADD_TO_CART  @"http://192.168.0.116:8080/site/isales/addToCart.htm"
-//#define  URL_CART_REMOVE  @"http://192.168.0.116:8080/site/isales/deleteToCart.htm"
-//#define  URL_CART_CHECK  @"http://192.168.0.116:8080/site/isales/checkCartItem.htm"
-//#define  URL_CART2WISH  @"http://192.168.0.116:8080/site/isales/cartRemoveToWishlist.htm"
-//#define  URL_WISH2CART  @"http://192.168.0.116:8080/site/isales/wishlistRemoveToCart.htm"
 //
+//#define  URL_CART_SET_PRICE  @"https://www.newpacificdirect.com/isales/setPrice.htm"
+//#define  URL_CART_INCRESEMENT  @"https://www.newpacificdirect.com/isales/increment.htm"
+//#define  URL_CART  @"https://www.newpacificdirect.com/isales/cartDtail.htm"
+//#define  URL_CARTDELIVERY  @"https://www.newpacificdirect.com/isales/cartDelivery.htm"
+//#define  URL_ADD_TO_CART  @"https://www.newpacificdirect.com/isales/addToCart.htm"
+//#define  URL_CART_REMOVE  @"https://www.newpacificdirect.com/isales/deleteToCart.htm"
+//#define  URL_CART_CHECK  @"https://www.newpacificdirect.com/isales/checkCartItem.htm"
 //
+//#define  URL_CART2WISH  @"https://www.newpacificdirect.com/isales/cartRemoveToWishlist.htm"
+//#define  URL_WISH2CART  @"https://www.newpacificdirect.com/isales/wishlistRemoveToCart.htm"
 //
+//#define  URL_ITEM_DETAIL  @"https://www.newpacificdirect.com/isales/modelDetail.htm"
 //
-//#define  URL_ITEM_DETAIL  @"http://192.168.0.116:8080/site/isales/modelDetail.htm"
+//#define  URL_ADD_TO_WATCHLIST  @"https://www.newpacificdirect.com/isales/addToWishList.htm"
+//#define  URL_WATCHLIST  @"https://www.newpacificdirect.com/isales/wishList.htm"
+//#define  URL_WATCHLIST_REMOVE  @"https://www.newpacificdirect.com/isales/deleteToWishList.htm"
 //
-//#define  URL_ADD_TO_WATCHLIST  @"http://192.168.0.116:8080/site/isales/addToWishList.htm"
-//#define  URL_WATCHLIST  @"http://192.168.0.116:8080/site/isales/wishList.htm"
-//#define  URL_WATCHLIST_REMOVE  @"http://192.168.0.116:8080/site/isales/deleteToWishList.htm"
 //
 //
+//#define  URL_ADD_TO_PORTFOLIO @"https://www.newpacificdirect.com/isales/addToPortfolio.htm"
+//#define  URL_PORTFOLIO_REMOVE  @"https://www.newpacificdirect.com/isales/deleteToPortfolio.htm"
+//#define  URL_PORTFOLIO  @"https://www.newpacificdirect.com/isales/portfolios.htm"
+//#define  URL_PORTFOLIO_SET_PRICE  @"https://www.newpacificdirect.com/isales/setTearSheetPrice.htm"
+//#define  URL_DM_PARAMS @"https://www.newpacificdirect.com/isales/selectTearSheetParam.htm"
+//#define  URL_REQUEST_DM @"https://www.newpacificdirect.com/isales/getTearSheetPdf.htm"
+//#define  URL_SAVE_DM_DIRECT @"https://www.newpacificdirect.com/isales/getTearSheetPdf.htm"
+//#define  URL_SAVE_DM @"https://www.newpacificdirect.com/isales/saveTearSheetPdf.htm"
+//#define  URL_DM_LIST @"https://www.newpacificdirect.com/isales/tearSheetPdfList.htm"
+////#define  URL_DM_SET_QTY @"https://www.newpacificdirect.com/isales/setTearSheetAvailableQty.htm"
+//#define  URL_REQUEST_MODEL_QTY @"https://www.newpacificdirect.com/isales/getTearSheetAvailableQty.htm"
 //
-//#define  URL_ADD_TO_PORTFOLIO @"http://192.168.0.116:8080/site/isales/addToPortfolio.htm"
-//#define  URL_PORTFOLIO_REMOVE  @"http://192.168.0.116:8080/site/isales/deleteToPortfolio.htm"
-//#define  URL_PORTFOLIOLIST_REMOVE  @"http://192.168.0.116:8080/site/isales/deleteTearSheetPdf.htm"
-//#define  URL_PORTFOLIO  @"http://192.168.0.116:8080/site/isales/portfolios.htm"
-//#define  URL_PORTFOLIO_SET_PRICE  @"http://192.168.0.116:8080/site/isales/setTearSheetPrice.htm"
-//#define  URL_DM_PARAMS @"http://192.168.0.116:8080/site/isales/selectTearSheetParam.htm"
-//#define  URL_REQUEST_DM @"http://192.168.0.116:8080/site/isales/getTearSheetPdf.htm"
-//#define  URL_SAVE_DM_DIRECT @"http://192.168.0.116:8080/site/isales/getTearSheetPdf.htm"
-//#define  URL_SAVE_DM @"http://192.168.0.116:8080/site/isales/saveTearSheetPdf.htm"
-//#define  URL_DM_LIST @"http://192.168.0.116:8080/site/isales/tearSheetPdfList.htm"
-////#define  URL_DM_SET_QTY @"http://192.168.0.116:8080/site/isales/setTearSheetAvailableQty.htm"
-//#define  URL_REQUEST_MODEL_QTY @"http://192.168.0.116:8080/site/isales/getTearSheetAvailableQty.htm"
 //
-//#define  URL_CONTACT_LIST  @"http://192.168.0.116:8080/site/isales/getAllContact.htm"
-//#define  URL_SHIPTO_LIST  @"http://192.168.0.116:8080/site/isales/getShipToContact.htm"
+//#define  URL_CONTACT_LIST  @"https://www.newpacificdirect.com/isales/getAllContact.htm"
+//#define  URL_SHIPTO_LIST  @"https://www.newpacificdirect.com/isales/getShipToContact.htm"
 //
-//#define  URL_ADDRESS_EDOTOR  @"http://192.168.0.116:8080/site/isales/getAddAddress.htm"
-//#define  URL_ADDRESS_SAVE  @"http://192.168.0.116:8080/site/isales/saveAddress.htm"
+//#define  URL_ADDRESS_EDOTOR  @"https://www.newpacificdirect.com/isales/getAddAddress.htm"
+//#define  URL_ADDRESS_SAVE  @"https://www.newpacificdirect.com/isales/saveAddress.htm"
 //
 //
-//#define  URL_CREDITCARD_EDOTOR  @"http://192.168.0.116:8080/site/isales/creditCard.htm"
-//#define  URL_CREDITCARD_SAVE  @"http://192.168.0.116:8080/site/isales/saveAddress.htm"
+//#define  URL_CREDITCARD_EDOTOR  @"https://www.newpacificdirect.com/isales/creditCard.htm"
+//#define  URL_CREDITCARD_SAVE  @"https://www.newpacificdirect.com/isales/saveAddress.htm"
 //
 //
 //
-//#define  URL_CUSTOMER_INFO  @"http://192.168.0.116:8080/site/isales/getCustomerInfoByContact.htm"
-//#define  URL_CUSTOMER_PENDINGORDER  @"http://192.168.0.116:8080/site/isales/hasPendingOrderByContact.htm"
-//#define  URL_NEW_CUSTOMER  @"http://192.168.0.116:8080/site/isales/getAddCustomer.htm"
-//#define  URL_EDIT_CUSTOMER  @"http://192.168.0.116:8080/site/isales/getUpdateCustomerInfoByContact.htm"
-//#define  URL_CUSTOMER_SAVE  @"http://192.168.0.116:8080/site/isales/saveCustomer.htm"
-//#define  URL_CUSTOMER_UPDATE  @"http://192.168.0.116:8080/site/isales/updateCustomer.htm"
-//#define  URL_UPDATE_CUSTOMER_BCARD  @"http://192.168.0.116:8080/site/isales/updateCustomerBusiCard.htm"
+//#define  URL_CUSTOMER_INFO  @"https://www.newpacificdirect.com/isales/getCustomerInfoByContact.htm"
+//#define  URL_NEW_CUSTOMER  @"https://www.newpacificdirect.com/isales/getAddCustomer.htm"
+//#define  URL_CUSTOMER_SAVE  @"https://www.newpacificdirect.com/isales/saveCustomer.htm"
+//#define  URL_UPDATE_CUSTOMER_BCARD  @"https://www.newpacificdirect.com/isales/updateCustomerBusiCard.htm"
+//#define  URL_CUSTOMER_ADV_SEARCH @"https://www.newpacificdirect.com/isales/getContactAdvance.htm"
 //
 //
 //
 //
 //
+//#define  URL_ERR_LOG  @"https://www.newpacificdirect.com/isales/er_log.htm"
 //
-//#define  URL_ERR_LOG  @"http://192.168.0.116:8080/site/isales/er_log.htm"
+//#define  URL_UPLOAD_IMG  @"https://www.newpacificdirect.com/isales/uploadImg.htm"
 //
-//#define  URL_UPLOAD_IMG  @"http://192.168.0.116:8080/site/isales/uploadImg.htm"
+//#define URL_COPY_ORDER @"https://www.newpacificdirect.com/isales/copyOrder.htm"
+//#define URL_SIGN_ORDER @"https://www.newpacificdirect.com/isales/updateOrderSign.htm"
+//#define  URL_CUSTOMER_UPDATE  @"https://www.newpacificdirect.com/isales/updateCustomer.htm"
+//#define  URL_CART_GENERAL_NOTES  @"https://www.newpacificdirect.com/isales/updateGeneralNote.htm"
+//#define  URL_CART_ITEM_NOTES  @"https://www.newpacificdirect.com/isales/setItemNotes.htm"
+//#define  URL_EDIT_CUSTOMER  @"https://www.newpacificdirect.com/isales/getUpdateCustomerInfoByContact.htm"
+//#define  URL_CUSTOMER_PENDINGORDER  @"https://www.newpacificdirect.com/isales/hasPendingOrderByContact.htm"
+//#define  URL_PORTFOLIOLIST_REMOVE  @"https://www.newpacificdirect.com/isales/deleteTearSheetPdf.htm"
+//#define  URL_NPD_POLICY   @"https://www.newpacificdirect.com/isales/generalPolicy.htm"
 //
-//#define  URL_NPD_POLICY  @"http://192.168.0.116:8080/site/isales/generalPolicy.htm"
 //
 //
-//#define  URL_CHECK_OFFLINE  @"http://192.168.0.116/pj/offline/initDatas.htm"
+//#define  URL_CHECK_OFFLINE  @"https://www.newpacificdirect.com/offline/initDatas.htm"
 //
-//#define  URL_DOWNLOAD_OFFLINE  @"http://192.168.0.116/pj/offline/downloadDatas.htm"
-
-
-
-//------------------- NPD server-----------------------
-#define  URL_UPDATE_AUTH  @"https://www.newpacificdirect.com/isales/login.htm"
-#define  URL_LOGOUT  @"https://www.newpacificdirect.com/isales/loginOut.htm"
-#define  URL_RETRIEVE_PASS  @"https://www.newpacificdirect.com/isales/forgotPassword.htm"
-
-#define  URL_REQUEST_CATMENU  @"https://www.newpacificdirect.com/isales/menu.htm"
-#define  URL_LOAD_HOME  @"https://www.newpacificdirect.com/isales/homePage.htm"
-#define  URL_CATEGORY @"https://www.newpacificdirect.com/isales/distinctCategory.htm"
-#define  URL_SEARCH  @"https://www.newpacificdirect.com/isales/search.htm"
-#define  URL_ITEM_SEARCH  @"https://www.newpacificdirect.com/isales/itemSearch.htm"
-#define  URL_CATEGORY_LOADMORE  @"https://www.newpacificdirect.com/isales/categoryMore.htm"
-
-
-
-#define  URL_ORDER_LIST  @"https://www.newpacificdirect.com/isales/orderList.htm"
-#define  URL_ORDER_DETAIL  @"https://www.newpacificdirect.com/isales/orderDetail.htm"
-#define URL_COMMIT_ORDER @"https://www.newpacificdirect.com/isales/createOrder.htm"
-#define URL_SAVE_ORDER @"https://www.newpacificdirect.com/isales/saveOrder.htm"
-#define URL_UPDATE_ORDERCUSTOMER @"https://www.newpacificdirect.com/isales/updateOrderCustomerInfo.htm"
-#define  URL_NEW_ORDER  @"https://www.newpacificdirect.com/isales/createNewOrder.htm"
-#define  URL_OPEN_ORDER  @"https://www.newpacificdirect.com/isales/openOrder.htm"
-#define  URL_RELEASE_ORDER  @"https://www.newpacificdirect.com/isales/closeOrder.htm"
-#define  URL_DELETE_ORDER  @"https://www.newpacificdirect.com/isales/deleteOrder.htm"
-#define  URL_CANCEL_ORDER  @"https://www.newpacificdirect.com/isales/cancelOrder.htm"
-
-
-#define  URL_CART_SET_PRICE  @"https://www.newpacificdirect.com/isales/setPrice.htm"
-#define  URL_CART_INCRESEMENT  @"https://www.newpacificdirect.com/isales/increment.htm"
-#define  URL_CART  @"https://www.newpacificdirect.com/isales/cartDtail.htm"
-#define  URL_CARTDELIVERY  @"https://www.newpacificdirect.com/isales/cartDelivery.htm"
-#define  URL_ADD_TO_CART  @"https://www.newpacificdirect.com/isales/addToCart.htm"
-#define  URL_CART_REMOVE  @"https://www.newpacificdirect.com/isales/deleteToCart.htm"
-#define  URL_CART_CHECK  @"https://www.newpacificdirect.com/isales/checkCartItem.htm"
-
-#define  URL_CART2WISH  @"https://www.newpacificdirect.com/isales/cartRemoveToWishlist.htm"
-#define  URL_WISH2CART  @"https://www.newpacificdirect.com/isales/wishlistRemoveToCart.htm"
-
-#define  URL_ITEM_DETAIL  @"https://www.newpacificdirect.com/isales/modelDetail.htm"
-
-#define  URL_ADD_TO_WATCHLIST  @"https://www.newpacificdirect.com/isales/addToWishList.htm"
-#define  URL_WATCHLIST  @"https://www.newpacificdirect.com/isales/wishList.htm"
-#define  URL_WATCHLIST_REMOVE  @"https://www.newpacificdirect.com/isales/deleteToWishList.htm"
-
-
-
-#define  URL_ADD_TO_PORTFOLIO @"https://www.newpacificdirect.com/isales/addToPortfolio.htm"
-#define  URL_PORTFOLIO_REMOVE  @"https://www.newpacificdirect.com/isales/deleteToPortfolio.htm"
-#define  URL_PORTFOLIO  @"https://www.newpacificdirect.com/isales/portfolios.htm"
-#define  URL_PORTFOLIO_SET_PRICE  @"https://www.newpacificdirect.com/isales/setTearSheetPrice.htm"
-#define  URL_DM_PARAMS @"https://www.newpacificdirect.com/isales/selectTearSheetParam.htm"
-#define  URL_REQUEST_DM @"https://www.newpacificdirect.com/isales/getTearSheetPdf.htm"
-#define  URL_SAVE_DM_DIRECT @"https://www.newpacificdirect.com/isales/getTearSheetPdf.htm"
-#define  URL_SAVE_DM @"https://www.newpacificdirect.com/isales/saveTearSheetPdf.htm"
-#define  URL_DM_LIST @"https://www.newpacificdirect.com/isales/tearSheetPdfList.htm"
-//#define  URL_DM_SET_QTY @"https://www.newpacificdirect.com/isales/setTearSheetAvailableQty.htm"
-#define  URL_REQUEST_MODEL_QTY @"https://www.newpacificdirect.com/isales/getTearSheetAvailableQty.htm"
-
-
-#define  URL_CONTACT_LIST  @"https://www.newpacificdirect.com/isales/getAllContact.htm"
-#define  URL_SHIPTO_LIST  @"https://www.newpacificdirect.com/isales/getShipToContact.htm"
-
-#define  URL_ADDRESS_EDOTOR  @"https://www.newpacificdirect.com/isales/getAddAddress.htm"
-#define  URL_ADDRESS_SAVE  @"https://www.newpacificdirect.com/isales/saveAddress.htm"
-
-
-#define  URL_CREDITCARD_EDOTOR  @"https://www.newpacificdirect.com/isales/creditCard.htm"
-#define  URL_CREDITCARD_SAVE  @"https://www.newpacificdirect.com/isales/saveAddress.htm"
-
-
-
-#define  URL_CUSTOMER_INFO  @"https://www.newpacificdirect.com/isales/getCustomerInfoByContact.htm"
-#define  URL_NEW_CUSTOMER  @"https://www.newpacificdirect.com/isales/getAddCustomer.htm"
-#define  URL_CUSTOMER_SAVE  @"https://www.newpacificdirect.com/isales/saveCustomer.htm"
-#define  URL_UPDATE_CUSTOMER_BCARD  @"https://www.newpacificdirect.com/isales/updateCustomerBusiCard.htm"
-#define  URL_CUSTOMER_ADV_SEARCH @"https://www.newpacificdirect.com/isales/getContactAdvance.htm"
-
-
-
-
-
-#define  URL_ERR_LOG  @"https://www.newpacificdirect.com/isales/er_log.htm"
-
-#define  URL_UPLOAD_IMG  @"https://www.newpacificdirect.com/isales/uploadImg.htm"
-
-#define URL_COPY_ORDER @"https://www.newpacificdirect.com/isales/copyOrder.htm"
-#define URL_SIGN_ORDER @"https://www.newpacificdirect.com/isales/updateOrderSign.htm"
-#define  URL_CUSTOMER_UPDATE  @"https://www.newpacificdirect.com/isales/updateCustomer.htm"
-#define  URL_CART_GENERAL_NOTES  @"https://www.newpacificdirect.com/isales/updateGeneralNote.htm"
-#define  URL_CART_ITEM_NOTES  @"https://www.newpacificdirect.com/isales/setItemNotes.htm"
-#define  URL_EDIT_CUSTOMER  @"https://www.newpacificdirect.com/isales/getUpdateCustomerInfoByContact.htm"
-#define  URL_CUSTOMER_PENDINGORDER  @"https://www.newpacificdirect.com/isales/hasPendingOrderByContact.htm"
-#define  URL_PORTFOLIOLIST_REMOVE  @"https://www.newpacificdirect.com/isales/deleteTearSheetPdf.htm"
-#define  URL_NPD_POLICY   @"https://www.newpacificdirect.com/isales/generalPolicy.htm"
-
-#define  URL_CHECK_OFFLINE  @"http://192.168.1.3/check.json"
-
-#define  URL_DOWNLOAD_OFFLINE  @"http://192.168.1.3/update.json"
+//#define  URL_DOWNLOAD_OFFLINE  @"https://www.newpacificdirect.com/offline/downloadDatas.htm"
 
 #endif
 /*

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff