瀏覽代碼

complete ERP Mobile Optimization

Ray Zhang 2 年之前
父節點
當前提交
050f822590
共有 48 個文件被更改,包括 441 次插入822 次删除
  1. 36 29
      RA Image/RA Image.xcodeproj/project.pbxproj
  2. 1 1
      RA Image/RA Image/AppDelegate.m
  3. 16 56
      RA Image/RA Image/Base.lproj/RAImage.storyboard
  4. 3 2
      RA Image/RA Image/BasicModeViewController.m
  5. 2 6
      RedAnt ERP Mobile/HMLG Scan Order.xcodeproj/project.pbxproj
  6. 2 2
      RedAnt ERP Mobile/HMLG Scan Order/Base.lproj/Main.storyboard
  7. 2 0
      RedAnt ERP Mobile/HMLG Scan Order/CartViewController.m
  8. 20 20
      RedAnt ERP Mobile/HMLG Scan Order/MainViewController.m
  9. 1 1
      RedAnt ERP Mobile/HMLG Scan Order/PriceGroupListViewController.m
  10. 4 4
      RedAnt ERP Mobile/HMLG Scan Order/SO.storyboard
  11. 2 1
      RedAnt ERP Mobile/HMLG Scan Order/ScanHistoryViewController.h
  12. 1 1
      RedAnt ERP Mobile/HMLG Scan Order/ScanHomeViewController.m
  13. 1 1
      RedAnt ERP Mobile/HMLG Scan Order/ScanListCell.m
  14. 1 1
      RedAnt ERP Mobile/HMLG Scan Order/ScanOrderModelListViewController.h
  15. 14 13
      RedAnt ERP Mobile/HMLG Scan Order/ScanOrderModelListViewController.m
  16. 2 1
      RedAnt ERP Mobile/HMLG Scan Order/ScanSearchViewController.h
  17. 1 1
      RedAnt ERP Mobile/HMLG Scan Order/ScanServerListViewController.m
  18. 115 115
      RedAnt ERP Mobile/HMLG Scan Order/ServerSettingViewController.m
  19. 1 1
      RedAnt ERP Mobile/common/AppDelegateBase.h
  20. 1 1
      RedAnt ERP Mobile/common/AppDelegateBase.m
  21. 2 2
      RedAnt ERP Mobile/common/Functions/OLO/ScanOrderListViewController.h
  22. 3 3
      RedAnt ERP Mobile/common/Functions/OLO/ScanOrderListViewController.m
  23. 1 1
      RedAnt ERP Mobile/common/Functions/camscan/ScanResultViewController.h
  24. 1 1
      RedAnt ERP Mobile/common/Functions/camscan/ScannerViewController.m
  25. 6 3
      RedAnt ERP Mobile/common/Functions/cart/CartViewController.m
  26. 14 9
      RedAnt ERP Mobile/common/Functions/offline/OLDataProvider.m
  27. 16 6
      RedAnt ERP Mobile/common/Functions/order/OrderDetailViewController.m
  28. 3 0
      RedAnt ERP Mobile/common/Functions/portfolio/PortfolioViewController.m
  29. 1 1
      RedAnt ERP Mobile/common/Functions/signature/SignatureViewController.m
  30. 2 0
      RedAnt ERP Mobile/common/Functions/watchlist/WatchListViewController.m
  31. 2 2
      RedAnt ERP Mobile/common/JKLock/JKMessageBoxController.m
  32. 25 0
      RedAnt ERP Mobile/common/ScanRefreshStock.h
  33. 4 1
      RedAnt ERP Mobile/common/customUI/RadioButton.m
  34. 2 1
      RedAnt ERP Mobile/common/data_provider/RADataProvider.m
  35. 27 15
      RedAnt ERP Mobile/common/data_provider/RANetwork.m
  36. 2 2
      RedAnt ERP Mobile/common/qrcode/qrencode.c
  37. 2 0
      RedAnt ERP Mobile/iSales-CONTRAST.xcodeproj/project.pbxproj
  38. 5 2
      RedAnt ERP Mobile/iSales-NPD.xcodeproj/project.pbxproj
  39. 2 58
      RedAnt ERP Mobile/iSales-NPD/Base.lproj/OLM.storyboard
  40. 5 220
      RedAnt ERP Mobile/iSales-TRADESHOW.xcodeproj/project.pbxproj
  41. 1 1
      RedAnt ERP Mobile/iSales-TRADESHOW/config.h
  42. 5 12
      RedAnt ERP Mobile/iSales-UNITED WAVER.xcodeproj/project.pbxproj
  43. 5 212
      RedAnt ERP Mobile/iSales-USAI.xcodeproj/project.pbxproj
  44. 3 2
      common/Camera/RACameraViewController.m
  45. 1 4
      common/InfinitePhoto/Controller/RAPhotoPreviewController.m
  46. 5 0
      common/RAUtils.m
  47. 65 7
      common/ScannerViewController.m
  48. 5 0
      common/customUI/UIView+Toast.m

+ 36 - 29
RA Image/RA Image.xcodeproj/project.pbxproj

@@ -3,14 +3,14 @@
 	archiveVersion = 1;
 	classes = {
 	};
-	objectVersion = 46;
+	objectVersion = 53;
 	objects = {
 
 /* Begin PBXBuildFile section */
-		3C23B41829D68B4F008E7C14 /* PopWaitAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C23B41529D68B4F008E7C14 /* PopWaitAlert.m */; };
-		3C23B41929D68B4F008E7C14 /* MessageBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C23B41629D68B4F008E7C14 /* MessageBox.m */; };
-		3C23B41A29D68B4F008E7C14 /* RAPopviewContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C23B41729D68B4F008E7C14 /* RAPopviewContainer.m */; };
 		3C9CCF4A247E4B07006A49A5 /* UIImage+RedAnt.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C9CCF48247E4B07006A49A5 /* UIImage+RedAnt.m */; };
+		3CBC87372A53E99200978758 /* PopWaitAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CBC87342A53E99200978758 /* PopWaitAlert.m */; };
+		3CBC87382A53E99200978758 /* MessageBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CBC87352A53E99200978758 /* MessageBox.m */; };
+		3CBC87392A53E99200978758 /* RAPopviewContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CBC87362A53E99200978758 /* RAPopviewContainer.m */; };
 		3CBE7AE425469D9E000D520B /* ReceivingPalletIDViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CBE7AE325469D9E000D520B /* ReceivingPalletIDViewController.m */; };
 		3CC5BEE0254D10CD00ECBE20 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3CC5BEDF254D10CD00ECBE20 /* Launch Screen.storyboard */; };
 		3CD0EDFE2541BB5C00BDA788 /* RAUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CD0EDFD2541BB5C00BDA788 /* RAUtils.m */; };
@@ -96,14 +96,14 @@
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
-		3C23B41229D68B4F008E7C14 /* MessageBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageBox.h; sourceTree = "<group>"; };
-		3C23B41329D68B4F008E7C14 /* PopWaitAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PopWaitAlert.h; sourceTree = "<group>"; };
-		3C23B41429D68B4F008E7C14 /* RAPopviewContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAPopviewContainer.h; sourceTree = "<group>"; };
-		3C23B41529D68B4F008E7C14 /* PopWaitAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PopWaitAlert.m; sourceTree = "<group>"; };
-		3C23B41629D68B4F008E7C14 /* MessageBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MessageBox.m; sourceTree = "<group>"; };
-		3C23B41729D68B4F008E7C14 /* RAPopviewContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAPopviewContainer.m; sourceTree = "<group>"; };
 		3C9CCF48247E4B07006A49A5 /* UIImage+RedAnt.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIImage+RedAnt.m"; path = "../../common/UIImage/UIImage+RedAnt.m"; sourceTree = "<group>"; };
 		3C9CCF49247E4B07006A49A5 /* UIImage+RedAnt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIImage+RedAnt.h"; path = "../../common/UIImage/UIImage+RedAnt.h"; sourceTree = "<group>"; };
+		3CBC87312A53E99200978758 /* MessageBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageBox.h; sourceTree = "<group>"; };
+		3CBC87322A53E99200978758 /* PopWaitAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PopWaitAlert.h; sourceTree = "<group>"; };
+		3CBC87332A53E99200978758 /* RAPopviewContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAPopviewContainer.h; sourceTree = "<group>"; };
+		3CBC87342A53E99200978758 /* PopWaitAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PopWaitAlert.m; sourceTree = "<group>"; };
+		3CBC87352A53E99200978758 /* MessageBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MessageBox.m; sourceTree = "<group>"; };
+		3CBC87362A53E99200978758 /* RAPopviewContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAPopviewContainer.m; sourceTree = "<group>"; };
 		3CBE7AE225469D9E000D520B /* ReceivingPalletIDViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReceivingPalletIDViewController.h; sourceTree = "<group>"; };
 		3CBE7AE325469D9E000D520B /* ReceivingPalletIDViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReceivingPalletIDViewController.m; sourceTree = "<group>"; };
 		3CC5BEDF254D10CD00ECBE20 /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = "<group>"; };
@@ -269,18 +269,18 @@
 /* End PBXFrameworksBuildPhase section */
 
 /* Begin PBXGroup section */
-		3C23B41129D68B4F008E7C14 /* MessageBox */ = {
+		3CBC87302A53E99200978758 /* MessageBox */ = {
 			isa = PBXGroup;
 			children = (
-				3C23B41229D68B4F008E7C14 /* MessageBox.h */,
-				3C23B41329D68B4F008E7C14 /* PopWaitAlert.h */,
-				3C23B41429D68B4F008E7C14 /* RAPopviewContainer.h */,
-				3C23B41529D68B4F008E7C14 /* PopWaitAlert.m */,
-				3C23B41629D68B4F008E7C14 /* MessageBox.m */,
-				3C23B41729D68B4F008E7C14 /* RAPopviewContainer.m */,
+				3CBC87312A53E99200978758 /* MessageBox.h */,
+				3CBC87322A53E99200978758 /* PopWaitAlert.h */,
+				3CBC87332A53E99200978758 /* RAPopviewContainer.h */,
+				3CBC87342A53E99200978758 /* PopWaitAlert.m */,
+				3CBC87352A53E99200978758 /* MessageBox.m */,
+				3CBC87362A53E99200978758 /* RAPopviewContainer.m */,
 			);
 			name = MessageBox;
-			path = "../../RedAnt ERP Mobile/HMLG Scan Order/MessageBox";
+			path = ../../common/MessageBox;
 			sourceTree = "<group>";
 		};
 		3CBE7AE125469D36000D520B /* Receiving */ = {
@@ -598,7 +598,7 @@
 		71114AA71EB1C51200D2200C /* util */ = {
 			isa = PBXGroup;
 			children = (
-				3C23B41129D68B4F008E7C14 /* MessageBox */,
+				3CBC87302A53E99200978758 /* MessageBox */,
 				42056E7B1EB989AB0010597A /* KeyboardListener */,
 				71114AB91EB1C71E00D2200C /* zip */,
 				71114AA81EB1C5C000D2200C /* aes */,
@@ -776,7 +776,8 @@
 		71DCDC2C1EAF234E00BA045A /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 1210;
+				BuildIndependentTargetsInParallel = YES;
+				LastUpgradeCheck = 1430;
 				ORGANIZATIONNAME = USAI;
 				TargetAttributes = {
 					71DCDC331EAF234E00BA045A = {
@@ -841,12 +842,12 @@
 				42A829CC1EBC6CA200898B8A /* UploadViewController.m in Sources */,
 				42BC2D051EBAC4C00016B30D /* PhotoCell.m in Sources */,
 				71114AB21EB1C5C800D2200C /* AESCrypt.m in Sources */,
+				3CBC87392A53E99200978758 /* RAPopviewContainer.m in Sources */,
 				42BC2D0C1EBB00FD0016B30D /* PhotoPreviewController.m in Sources */,
 				426E6B241EB85C2B00942BE1 /* PopModeViewController.m in Sources */,
 				42CE45C4217D6D0D003ECD01 /* PODModeViewController.m in Sources */,
 				4203E60121BA5E88003E90BD /* RACameraViewController.m in Sources */,
 				71114AF01EB2DEF900D2200C /* RAMenu.m in Sources */,
-				3C23B41A29D68B4F008E7C14 /* RAPopviewContainer.m in Sources */,
 				71114AC61EB1C73B00D2200C /* ioapi.c in Sources */,
 				42056E7E1EB989AB0010597A /* JLKeyboardListener.m in Sources */,
 				71114AF11EB2DEF900D2200C /* ScannerControllerView.m in Sources */,
@@ -855,12 +856,10 @@
 				71114AB51EB1C5C800D2200C /* NSData+CommonCrypto.m in Sources */,
 				71114AC71EB1C73B00D2200C /* mztools.c in Sources */,
 				4203E61321BA65F5003E90BD /* PhotoPreviewCell.m in Sources */,
-				3C23B41829D68B4F008E7C14 /* PopWaitAlert.m in Sources */,
 				426E6B271EB85C4200942BE1 /* ModelModeViewController.m in Sources */,
 				4203E61021BA65F5003E90BD /* RAPhotoPreviewController.m in Sources */,
 				42A829C71EBC0FAC00898B8A /* ManufacturerCell.m in Sources */,
 				71DCDC3F1EAF234E00BA045A /* RootViewController.m in Sources */,
-				3C23B41929D68B4F008E7C14 /* MessageBox.m in Sources */,
 				42BC6FFA1EC1ACF9004A5F30 /* UploadSettingController.m in Sources */,
 				42A829C01EBC027100898B8A /* RootNavigationController.m in Sources */,
 				42CE45D1217D73E6003ECD01 /* SignatureViewController.m in Sources */,
@@ -890,9 +889,11 @@
 				42D64CC11FD12B21003F49F9 /* RAConvertor.m in Sources */,
 				429F25221EC9AA4200C22ABB /* TakePhotoPreviewController.m in Sources */,
 				42E1B1021EB1C92000EEF27C /* BasicViewController.m in Sources */,
+				3CBC87382A53E99200978758 /* MessageBox.m in Sources */,
 				426E6B1F1EB8558400942BE1 /* RootModeCell.m in Sources */,
 				71DCDC391EAF234E00BA045A /* main.m in Sources */,
 				42BC2CFF1EBAC4050016B30D /* PhotoListViewController.m in Sources */,
+				3CBC87372A53E99200978758 /* PopWaitAlert.m in Sources */,
 				71114ABC1EB1C73400D2200C /* ZipArchive.mm in Sources */,
 				42056E871EB9CF5D0010597A /* BasicModeViewController.m in Sources */,
 				3C9CCF4A247E4B07006A49A5 /* UIImage+RedAnt.m in Sources */,
@@ -971,7 +972,7 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
 				MTL_ENABLE_DEBUG_INFO = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				SDKROOT = iphoneos;
@@ -1023,7 +1024,7 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
 				MTL_ENABLE_DEBUG_INFO = NO;
 				SDKROOT = iphoneos;
 				VALIDATE_PRODUCT = YES;
@@ -1038,8 +1039,11 @@
 				CURRENT_PROJECT_VERSION = 53235;
 				DEVELOPMENT_TEAM = HXWLAA5YN5;
 				INFOPLIST_FILE = "RA Image/Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 11.0;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+				);
 				MARKETING_VERSION = 1.22;
 				PRODUCT_BUNDLE_IDENTIFIER = "usai.redant.RA-Image";
 				PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1055,8 +1059,11 @@
 				CURRENT_PROJECT_VERSION = 53235;
 				DEVELOPMENT_TEAM = HXWLAA5YN5;
 				INFOPLIST_FILE = "RA Image/Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 11.0;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+				);
 				MARKETING_VERSION = 1.22;
 				PRODUCT_BUNDLE_IDENTIFIER = "usai.redant.RA-Image";
 				PRODUCT_NAME = "$(TARGET_NAME)";

+ 1 - 1
RA Image/RA Image/AppDelegate.m

@@ -116,7 +116,7 @@ void UncaughtExceptionHandler(NSException *exception) {
     if(true)
     {
         
-        if(true||self.uploadManager.arr_queue!=nil)
+        if(true/*||self.uploadManager.arr_queue!=nil*/)
         {
             
             [self.uploadManager stopAllTasks];

+ 16 - 56
RA Image/RA Image/Base.lproj/RAImage.storyboard

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="zf9-JT-Kr2">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="zf9-JT-Kr2">
     <device id="retina4_7" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17126"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <scenes>
@@ -12,7 +12,7 @@
             <objects>
                 <navigationController id="zf9-JT-Kr2" customClass="RootNavigationController" sceneMemberID="viewController">
                     <navigationBar key="navigationBar" contentMode="scaleToFill" id="fQ0-CT-SJq">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
+                        <rect key="frame" x="0.0" y="20" width="375" height="44"/>
                         <autoresizingMask key="autoresizingMask"/>
                     </navigationBar>
                     <connections>
@@ -36,11 +36,11 @@
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="40" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="qOW-M6-IJk">
-                                <rect key="frame" x="0.0" y="115" width="375" height="501"/>
+                                <rect key="frame" x="0.0" y="135" width="375" height="481"/>
                                 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                 <prototypes>
                                     <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="RootModeCell" rowHeight="40" id="a3Z-Pv-WAq" customClass="RootModeCell">
-                                        <rect key="frame" x="0.0" y="28" width="375" height="40"/>
+                                        <rect key="frame" x="0.0" y="50" width="375" height="40"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="a3Z-Pv-WAq" id="KU3-qN-JgJ">
                                             <rect key="frame" x="0.0" y="0.0" width="375" height="40"/>
@@ -71,7 +71,7 @@
                                 </connections>
                             </tableView>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="76b-Zz-kRV">
-                                <rect key="frame" x="0.0" y="44" width="375" height="70"/>
+                                <rect key="frame" x="0.0" y="64" width="375" height="70"/>
                                 <subviews>
                                     <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="redAnt" translatesAutoresizingMaskIntoConstraints="NO" id="jOJ-Py-4V7">
                                         <rect key="frame" x="10" y="10" width="50" height="50"/>
@@ -102,7 +102,7 @@
                                 </constraints>
                             </view>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="U7i-RF-fNv">
-                                <rect key="frame" x="0.0" y="112.5" width="375" height="0.5"/>
+                                <rect key="frame" x="0.0" y="132.5" width="375" height="0.5"/>
                                 <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="0.5" id="BoU-iz-Rb0"/>
@@ -182,7 +182,7 @@
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="RA Image" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7Tz-Ne-9Q4">
-                                <rect key="frame" x="0.0" y="80" width="375" height="50"/>
+                                <rect key="frame" x="0.0" y="100" width="375" height="50"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="50" id="tbZ-ys-B3a"/>
                                 </constraints>
@@ -191,14 +191,14 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" bouncesZoom="NO" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="50" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="ZEy-rA-ish">
-                                <rect key="frame" x="0.0" y="170" width="375" height="200"/>
+                                <rect key="frame" x="0.0" y="190" width="375" height="200"/>
                                 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="200" id="qNy-dF-L1y"/>
                                 </constraints>
                                 <prototypes>
                                     <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="LoginTextFiledCell" rowHeight="50" id="AzG-Bz-3Gu" customClass="LoginTextFiledCell">
-                                        <rect key="frame" x="0.0" y="28" width="375" height="50"/>
+                                        <rect key="frame" x="0.0" y="50" width="375" height="50"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="AzG-Bz-3Gu" id="DIU-Qe-sGe">
                                             <rect key="frame" x="0.0" y="0.0" width="375" height="50"/>
@@ -225,7 +225,7 @@
                                         </connections>
                                     </tableViewCell>
                                     <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="LoginSwitchCell" rowHeight="50" id="LYr-Om-Dpu" customClass="LoginSwitchCell">
-                                        <rect key="frame" x="0.0" y="78" width="375" height="50"/>
+                                        <rect key="frame" x="0.0" y="100" width="375" height="50"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="LYr-Om-Dpu" id="DQB-yC-XbO">
                                             <rect key="frame" x="0.0" y="0.0" width="375" height="50"/>
@@ -277,7 +277,7 @@
                                 </connections>
                             </button>
                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9eS-az-Avg">
-                                <rect key="frame" x="20" y="400" width="335" height="50"/>
+                                <rect key="frame" x="20" y="420" width="335" height="50"/>
                                 <color key="backgroundColor" systemColor="lightTextColor"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="50" id="q1V-lL-5KU"/>
@@ -341,13 +341,13 @@
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Name" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="T2p-m2-k3U">
-                                <rect key="frame" x="26" y="10" width="45" height="21"/>
+                                <rect key="frame" x="26" y="30" width="45" height="21"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <nil key="textColor"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Name" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="N4g-tS-PSF">
-                                <rect key="frame" x="26" y="41" width="323" height="30"/>
+                                <rect key="frame" x="26" y="61" width="323" height="30"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="30" id="m3z-CE-Fja"/>
                                 </constraints>
@@ -358,13 +358,13 @@
                                 </connections>
                             </textField>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Server" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="l39-8d-pmH">
-                                <rect key="frame" x="26" y="81" width="323" height="20.5"/>
+                                <rect key="frame" x="26" y="101" width="323" height="20.5"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <nil key="textColor"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="blU-4o-XVJ">
-                                <rect key="frame" x="26" y="112" width="323" height="34"/>
+                                <rect key="frame" x="26" y="132" width="323" height="34"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <textInputTraits key="textInputTraits"/>
                                 <connections>
@@ -396,46 +396,6 @@
             </objects>
             <point key="canvasLocation" x="1652" y="123.68815592203899"/>
         </scene>
-        <!--Title-->
-        <scene sceneID="ved-nH-EPI">
-            <objects>
-                <viewController id="aZG-eq-NWq" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="gWE-Fo-HhX"/>
-                        <viewControllerLayoutGuide type="bottom" id="X5T-cD-J90"/>
-                    </layoutGuides>
-                    <view key="view" contentMode="scaleToFill" id="sHb-9r-rGb">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Pr4-hr-5Sm">
-                                <rect key="frame" x="46" y="605" width="33" height="30"/>
-                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                <state key="normal" title="scan"/>
-                            </button>
-                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="j2w-9X-jhY">
-                                <rect key="frame" x="285" y="605" width="40" height="30"/>
-                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                <state key="normal" title="photo"/>
-                            </button>
-                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0K0-Hx-c1l">
-                                <rect key="frame" x="130" y="566" width="47" height="30"/>
-                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                <state key="normal" title="upload"/>
-                            </button>
-                        </subviews>
-                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
-                    </view>
-                    <toolbarItems/>
-                    <navigationItem key="navigationItem" title="Title" id="L1B-gE-Sul">
-                        <barButtonItem key="rightBarButtonItem" title="Setting" id="q8u-PE-SyA"/>
-                    </navigationItem>
-                    <simulatedToolbarMetrics key="simulatedBottomBarMetrics"/>
-                </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="2M2-NW-Ap7" userLabel="First Responder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="2593" y="106"/>
-        </scene>
     </scenes>
     <resources>
         <image name="redAnt" width="1024" height="1024"/>

+ 3 - 2
RA Image/RA Image/BasicModeViewController.m

@@ -254,7 +254,8 @@
                         [weakself.photos insertObject:photoDic atIndex:0];
                         weakself.photoCount++;
                     } else {
-                        //                        [RAUtils message_alert:@"Save photo failed, storage full?" title:@"Warning" controller:weakPreVC];
+                        [RAUtils message_box:@"Warning" message:@"Save photo failed, storage full?" completion:nil];
+//                                [RAUtils message_alert:@"Save photo failed, storage full?" title:@"Warning" controller:weakPreVC];
                     }
                 });
                 
@@ -496,7 +497,7 @@
 //        [picker dismissViewControllerAnimated:YES completion:nil];
         __weak typeof(self) weakself = self;
         TakePhotoPreviewController *preVC = (TakePhotoPreviewController *)[self viewControllerInStoryboard:@"Mode" withId:@"TakePhotoPreviewController"];
-        __weak typeof(preVC) weakPreVC = preVC;
+//        __weak typeof(preVC) weakPreVC = preVC;
         preVC.photoHandler = ^(UIImage *img){
             if (img) {
                 

+ 2 - 6
RedAnt ERP Mobile/HMLG Scan Order.xcodeproj/project.pbxproj

@@ -15,7 +15,6 @@
 		3C3A5AFE27D74E50005F4EFB /* ScanResultViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3A5AFD27D74E4F005F4EFB /* ScanResultViewController.m */; };
 		3C3A5B0127D74F91005F4EFB /* ScanOrderScanModelViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3A5B0027D74F91005F4EFB /* ScanOrderScanModelViewController.m */; };
 		3C3A5B0327D87BA1005F4EFB /* SO.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C3A5B0227D87BA1005F4EFB /* SO.storyboard */; };
-		3C473C9127C4D22900CC8C12 /* ScanUserListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C473C9027C4D22900CC8C12 /* ScanUserListViewController.m */; };
 		3C4DA61F27B50199001EB44E /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3C4DA61D27B50199001EB44E /* Main.storyboard */; };
 		3C4DA62527B503B1001EB44E /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C4DA62327B503B1001EB44E /* MainViewController.m */; };
 		3C51492F273CF9B900F78617 /* DBUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C51492E273CF9B900F78617 /* DBUtil.m */; };
@@ -349,8 +348,6 @@
 		3C3A5AFF27D74F91005F4EFB /* ScanOrderScanModelViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScanOrderScanModelViewController.h; sourceTree = "<group>"; };
 		3C3A5B0027D74F91005F4EFB /* ScanOrderScanModelViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScanOrderScanModelViewController.m; sourceTree = "<group>"; };
 		3C3A5B0227D87BA1005F4EFB /* SO.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = SO.storyboard; sourceTree = "<group>"; };
-		3C473C8F27C4D22900CC8C12 /* ScanUserListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScanUserListViewController.h; sourceTree = "<group>"; };
-		3C473C9027C4D22900CC8C12 /* ScanUserListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScanUserListViewController.m; sourceTree = "<group>"; };
 		3C4DA61527B4E95C001EB44E /* HMLG Scan Order-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "HMLG Scan Order-Info.plist"; sourceTree = "<group>"; };
 		3C4DA61E27B50199001EB44E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
 		3C4DA62327B503B1001EB44E /* MainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainViewController.m; sourceTree = "<group>"; };
@@ -480,6 +477,7 @@
 		3CABE0222861A5E000CF0DC1 /* StockTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StockTableViewCell.m; sourceTree = "<group>"; };
 		3CB44F0E28733CEC00E24494 /* ScanAPI.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; name = ScanAPI.podspec; path = "ScanApiSDK-10.2.227-2/ScanAPI.podspec"; sourceTree = "<group>"; };
 		3CB44F0F28733D1200E24494 /* libScanApiCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libScanApiCore.a; path = "ScanApiSDK-10.2.227-2/lib/libScanApiCore.a"; sourceTree = "<group>"; };
+		3CBC872A2A4EBEDC00978758 /* ScanRefreshStock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ScanRefreshStock.h; path = common/ScanRefreshStock.h; sourceTree = SOURCE_ROOT; };
 		3CC1122A279163F4004ACA57 /* offline_order_new_contact.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = offline_order_new_contact.json; path = common/Functions/contact/offline_order_new_contact.json; sourceTree = SOURCE_ROOT; };
 		3CD54A77282CF21D0073A15D /* ScanHomeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScanHomeViewController.h; sourceTree = "<group>"; };
 		3CD54A78282CF21D0073A15D /* ScanHomeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScanHomeViewController.m; sourceTree = "<group>"; };
@@ -1035,8 +1033,6 @@
 				3C51E7BC27B2599E00E61163 /* ScanOrderListViewController.m */,
 				3C51E7CE27B2623700E61163 /* UploadCell.h */,
 				3C51E7CF27B2623700E61163 /* UploadCell.m */,
-				3C473C8F27C4D22900CC8C12 /* ScanUserListViewController.h */,
-				3C473C9027C4D22900CC8C12 /* ScanUserListViewController.m */,
 				3C3A5AFC27D74E4F005F4EFB /* ScanResultViewController.h */,
 				3C3A5AFD27D74E4F005F4EFB /* ScanResultViewController.m */,
 				3C3A5AFF27D74F91005F4EFB /* ScanOrderScanModelViewController.h */,
@@ -1304,6 +1300,7 @@
 		713F76AF1929F4A7006A7305 /* HMLG Scan Order */ = {
 			isa = PBXGroup;
 			children = (
+				3CBC872A2A4EBEDC00978758 /* ScanRefreshStock.h */,
 				3C4DA61D27B50199001EB44E /* Main.storyboard */,
 				3C7D31F127882A5F005EB380 /* OLO */,
 				71DF742C1C57567800F2789C /* HMLG SO */,
@@ -2306,7 +2303,6 @@
 				7162A5DB1C5876E300AB630E /* CacheViewController.m in Sources */,
 				7162A5C21C5873BB00AB630E /* FilterCellValue.m in Sources */,
 				71DF74971C57614C00F2789C /* PhotoStackView.m in Sources */,
-				3C473C9127C4D22900CC8C12 /* ScanUserListViewController.m in Sources */,
 				7162A50B1C586FC100AB630E /* SliderPage.m in Sources */,
 				712BABF31C897E3A0007466B /* CategorySearchFilterViewController.m in Sources */,
 				71DF74981C57614C00F2789C /* PhotoStackViewController.m in Sources */,

+ 2 - 2
RedAnt ERP Mobile/HMLG Scan Order/Base.lproj/Main.storyboard

@@ -2,7 +2,7 @@
 <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="jsC-F8-zYF">
     <device id="ipad7_9" orientation="portrait" layout="fullscreen" appearance="light"/>
     <dependencies>
-        <deployment version="4352" identifier="iOS"/>
+        <deployment version="4864" identifier="iOS"/>
         <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -2029,7 +2029,7 @@ Email: redantsupport@united-us.net</string>
         </scene>
     </scenes>
     <resources>
-        <image name="about" width="72" height="72"/>
+        <image name="about" width="96" height="96"/>
         <image name="album" width="48" height="48"/>
         <image name="btn_cancel" width="102" height="30"/>
         <image name="btn_retrieve" width="102" height="30"/>

+ 2 - 0
RedAnt ERP Mobile/HMLG Scan Order/CartViewController.m

@@ -3220,7 +3220,9 @@
     
     // Button 设置了大小约束,Size就不会随内容变化
     [cell.btnImage setContentMode:UIViewContentModeScaleAspectFit];
+#if  __IPHONE_OS_VERSION_MIN_REQUIRED <150000
     [cell.btnImage setContentEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
+#endif
     [cell.btnImage setContentHorizontalAlignment:UIControlContentHorizontalAlignmentFill];
     [cell.btnImage setContentVerticalAlignment:UIControlContentVerticalAlignmentFill];
     cell.btnImage.imageView.contentMode = UIViewContentModeScaleAspectFit;

+ 20 - 20
RedAnt ERP Mobile/HMLG Scan Order/MainViewController.m

@@ -37,7 +37,7 @@
 #import "ScanOrderScanModelViewController.h"
 #import "ScanOrderModelListViewController.h"
 #import "SetupServerViewController.h"
-#import "ScanUserListViewController.h"
+//#import "ScanUserListViewController.h"
 @interface MainViewController ()
 // scan order main frame
 @end
@@ -89,19 +89,19 @@
 }
 
 //- (IBAction)onSelectSales:(id)sender {
-//    
+//
 //
 //    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-// 
-//    
-//    
+//
+//
+//
 //    ScanUserListViewController * userVC =[ [UIStoryboard storyboardWithName:@"OLM" bundle:nil] instantiateViewControllerWithIdentifier:@"ScanUserListViewController"];
 //   userVC.returnValue=^(NSString* user)
 //    {
 ////        self.btnContact.hidden = false;
 //        appDelegate.user = user;
 //        [self.buttonUser setTitle:user forState:UIControlStateNormal];
-//        
+//
 //        [self refreshContactDisplay];
 ////
 //    };
@@ -112,27 +112,27 @@
 ////            appDelegate.active_controller = active_vc;
 ////        };
 //    UINavigationController* navi = [[UINavigationController alloc] initWithRootViewController:userVC] ;
-//    
-//    
-//    
-//    
-//    
+//
+//
+//
+//
+//
 //    //    [self hackModalSheetSize:CGSizeMake(450, 200) ofVC:navi];
-//    
+//
 //    navi.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种
 //    [self presentViewController:navi animated:YES completion:^{
-//        
+//
 //        //        navi.view.superview.bounds = CGRectMake(0, 0, 480, 320);
-//        
+//
 //        DebugLog(@"about present.........");
-//        
+//
 //        //   self.btop = false;
 //        //  <#code#>
 //    }];
-//    
-//    
-//    
-//    
+//
+//
+//
+//
 //    [appDelegate update_count_mark];
 ////    appDelegate.bLogin = true;
 //}
@@ -2235,7 +2235,7 @@
     if([self.current_VC isKindOfClass:[ScanOrderListViewController class]])
         return;
     
-    UIApplication * app = [UIApplication sharedApplication];
+//    UIApplication * app = [UIApplication sharedApplication];
 //    AppDelegate *appDelegate = (AppDelegate *)[app delegate];
                 [self flipFromViewController:self.current_VC toViewController:self.scanorderViewController withDirection:UIViewAnimationOptionTransitionCrossDissolve];
         

+ 1 - 1
RedAnt ERP Mobile/HMLG Scan Order/PriceGroupListViewController.m

@@ -63,7 +63,7 @@ self.navigationItem.leftBarButtonItem = closeButton;
     
     
     if(self.returnValue)
-        self.returnValue(indexPath.item);
+        self.returnValue((int)indexPath.item);
     
     [[self navigationController]popViewControllerAnimated:true];
     

+ 4 - 4
RedAnt ERP Mobile/HMLG Scan Order/SO.storyboard

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="ipad10_2" orientation="portrait" layout="fullscreen" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -2741,7 +2741,7 @@ line 3</string>
                                 <rect key="frame" x="0.0" y="20" width="810" height="1060"/>
                                 <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                                 <prototypes>
-                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="hO3-NR-b05">
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="cell" id="hO3-NR-b05">
                                         <rect key="frame" x="0.0" y="50" width="810" height="43.5"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="hO3-NR-b05" id="jg4-JD-jFQ">
@@ -2782,7 +2782,7 @@ line 3</string>
                                 <rect key="frame" x="0.0" y="70" width="810" height="1010"/>
                                 <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                                 <prototypes>
-                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="k1t-dv-O2g">
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="cell" id="k1t-dv-O2g">
                                         <rect key="frame" x="0.0" y="50" width="810" height="43.5"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="k1t-dv-O2g" id="JR5-7G-JCb">

+ 2 - 1
RedAnt ERP Mobile/HMLG Scan Order/ScanHistoryViewController.h

@@ -8,9 +8,10 @@
 
 #import <UIKit/UIKit.h>
 #import "ActiveViewController.h"
+#import "ScanRefreshStock.h"
 NS_ASSUME_NONNULL_BEGIN
 
-@interface ScanHistoryViewController : ActiveViewController
+@interface ScanHistoryViewController : ActiveViewController<IScanRefreshStock>
 @property (weak, nonatomic) IBOutlet UITableView *tableview;
 @property (weak, nonatomic) IBOutlet UILabel *labelStock;
 

+ 1 - 1
RedAnt ERP Mobile/HMLG Scan Order/ScanHomeViewController.m

@@ -77,7 +77,7 @@
 -(void) onview:(id)sender
 {
     UIButton* b = sender;
-    ScanHomeCell *cell = b.superview.superview;
+    ScanHomeCell *cell = (ScanHomeCell*)b.superview.superview;
     
     NSIndexPath* indexPath=[self.table indexPathForCell:cell];
     

+ 1 - 1
RedAnt ERP Mobile/HMLG Scan Order/ScanListCell.m

@@ -167,7 +167,7 @@
   
 #ifdef DEBUG
     
-    NSLog([RAConvertor dict2string:modelJson]);
+    NSLog(@"%@",[RAConvertor dict2string:modelJson]);
     
 #endif
 //    NSString* s=[RAConvertor dict2string:modelJson];

+ 1 - 1
RedAnt ERP Mobile/HMLG Scan Order/ScanOrderModelListViewController.h

@@ -14,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (weak, nonatomic) IBOutlet UITableView *tableView;
 
 @property (strong, nonatomic) NSMutableArray* modellist;
-@property (strong, nonatomic) UITextField* lastedit;
+@property (strong, nonatomic,nullable) UITextField* lastedit;
 @property bool edit_check;
 @property int pre_val;
 @property (weak, nonatomic) IBOutlet UILabel *labelStock;

+ 14 - 13
RedAnt ERP Mobile/HMLG Scan Order/ScanOrderModelListViewController.m

@@ -14,7 +14,8 @@
 #import "RAUtils.h"
 #import "RAConvertor.h"
 #import "RADataProvider.h"
-@interface ScanOrderModelListViewController ()
+#import "ScanRefreshStock.h"
+@interface ScanOrderModelListViewController ()<IScanRefreshStock>
 
 @end
 
@@ -115,16 +116,16 @@
         NSString* price1=jitem[price_group[@"price_1"][@"name"]]; //WHSE
         NSString* price2=jitem[price_group[@"price_2"][@"name"]]; //SHOW
         NSString* price3=jitem[price_group[@"price_3"][@"name"]]; //%25
-        NSDictionary *addressDic = [[NSUserDefaults standardUserDefaults] valueForKey:@"ScanAddress"];
-        if (addressDic) {
-            
-            int price_index =0;//[addressDic[ @"price_index"] intValue];
-   
-            
-            int idx = 9+price_index;
-
-
-        }
+//        NSDictionary *addressDic = [[NSUserDefaults standardUserDefaults] valueForKey:@"ScanAddress"];
+//        if (addressDic) {
+//
+//            int price_index =0;//[addressDic[ @"price_index"] intValue];
+//
+//
+//            int idx = 9+price_index;
+//
+//
+//        }
 
         
         if(![price0 isEqualToString: @"N/A"])
@@ -399,8 +400,8 @@
     self.lastedit = textField;
     
 //    self.lastedit = textField;
-    UITableViewCell *cell = (UITableViewCell *) textField.superview.superview;
-    ScanModelListCell * scancell = (ScanModelListCell*)cell;
+//    UITableViewCell *cell = (UITableViewCell *) textField.superview.superview;
+//    ScanModelListCell * scancell = (ScanModelListCell*)cell;
     
 //    scancell.pre_val=[textField.text intValue];
     

+ 2 - 1
RedAnt ERP Mobile/HMLG Scan Order/ScanSearchViewController.h

@@ -8,9 +8,10 @@
 
 #import <UIKit/UIKit.h>
 #import "ActiveViewController.h"
+#import "ScanRefreshStock.h"
 NS_ASSUME_NONNULL_BEGIN
 
-@interface ScanSearchViewController : ActiveViewController
+@interface ScanSearchViewController : ActiveViewController<IScanRefreshStock>
 @property (weak, nonatomic) IBOutlet UITableView *tableview;
 @property (strong, nonatomic) NSMutableArray* modellist;
 @property (weak, nonatomic) IBOutlet UISearchBar *searchBar;

+ 1 - 1
RedAnt ERP Mobile/HMLG Scan Order/ScanServerListViewController.m

@@ -51,7 +51,7 @@
     
     
     if(self.returnValue)
-        self.returnValue(indexPath.item);
+        self.returnValue((int)indexPath.item);
     
     [[self navigationController]popViewControllerAnimated:true];
     

+ 115 - 115
RedAnt ERP Mobile/HMLG Scan Order/ServerSettingViewController.m

@@ -306,121 +306,121 @@
         [RADataProvider updateTemplate:self];
         return;
         
-        AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
-        NSString *documents = [paths objectAtIndex:0];
-        
-        [RAUtils deletefiles:[documents stringByAppendingPathComponent:@"download"]];
-        RASingleton.sharedInstance.scan_list = nil;
-        [RADataProvider load_scan_models];
-        
-//        NSString* file_name=[appDelegate.downloadurl lastPathComponent];
-//        __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Update local data" completion:^{
-        
-        PopWaitAlert* pop =[RAUtils waiting_pop:@"Update local data" completion:nil];
-            dispatch_async(dispatch_get_global_queue(0, 0), ^{
-                
-
-                
-                NSData*  download_data = [NSData dataWithContentsOfURL:[NSURL URLWithString:appDelegate.downloadurl]];
-                dispatch_async(dispatch_get_main_queue(), ^{
-                    
-//                    [waitalert dismissViewControllerAnimated:false completion:^{
-                    [pop hide];
-                        if(download_data!=nil)
-                        {
-                            
-
-                            NSString* file_name=[appDelegate.downloadurl lastPathComponent];
-                            NSString* path = [documents stringByAppendingPathComponent:file_name];
-                            [RAUtils saveData:download_data toPath:path];
-                            
-                            ZipArchive* zip = [[ZipArchive alloc] init];
-                            NSString* unZipTo=[documents stringByAppendingPathComponent:@"download"];
-        //                    NSFileManager* fileManager=[NSFileManager defaultManager];
-        //                    [fileManager removeItemAtPath:unZipTo error:nil];
-        //                    NSString *unZipTo = [temp stringByAppendingPathComponent:unziplocation];
-                            //
-                            //    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
-                            //    NSString *documentPath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
-                            //NSString* zipFile = [documentPath stringByAppendingString:@"/images.zip"] ;
-                            // NSString* unZipTo = img_cache;//[documentPath stringByAppendingString:@"/images"] ;
-                            
-                            DebugLog(@"path: %@",unZipTo);
-                            if( [zip UnzipOpenFile:path Password:nil] ){
-                                BOOL result = [zip UnzipFileTo:unZipTo overWrite:YES];
-                                if( NO==result )
-                                {
-                                    //            int aaa=0;
-                                    //解压失败
-                                  
-                                    [zip UnzipCloseFile];
-                                    //文件损坏,删除文件重试
-                                    
-                                    
-                                    NSFileManager* fileManager=[NSFileManager defaultManager];
-                                    //debug
-                        //            BOOL blDele= [fileManager removeItemAtPath:zipFile error:nil];
-                                    [fileManager removeItemAtPath:path error:nil];
-                                    [fileManager removeItemAtPath:unZipTo error:nil];
-                                    
-                                    
-                                    [RAUtils message_box:@"Warrning" message:@"Can not unzip template file, please try download again." completion:nil];
-                                    
-                                    
-                                }
-                                else
-                                {
-                                    [zip UnzipCloseFile];
-                                    
-                                    
-                                    NSFileManager *fileManager = [NSFileManager defaultManager];
-                                    [fileManager removeItemAtPath:path error:nil];
-                                    
-                                    [RAUtils message_box:@"Message" message:@"Update template file successful." completion:nil];
-                                    
-        //                            [RADataProvider encrypt_scan_models];
-
-                                    NSMutableDictionary *templateDic = [NSMutableDictionary dictionary];
-                                    NSString* datetime= [RAUtils current_date_time];
-                                    templateDic[@"updatetime"]= datetime;
-                                    [self setUserDefaultsValue:templateDic forKey:@"ScanTemplate"];
-                                    [self loadTemplate];
-                                    [RADataProvider load_scan_models];
-                                    [RADataProvider default_price_group];
-                                    
-                                }
-                                //[zip UnzipCloseFile];
-                            }
-                            else
-                            {
-                                //打开文件失败,通常是文件路径有问题或密码错误。
-                                
-                                [RAUtils message_box:@"Warrning" message:@"Can not unzip template file, please contact the Administrator." completion:nil];
-                                
-                        //        NSFileManager *fileManager = [NSFileManager defaultManager];
-                        //        [fileManager removeItemAtPath:zipFile error:nil];
-                            }
-                            
-                            
-        //                    [iSalesDB cache_img:downloadimg_data filename:file_name saveTo:img_url];
-        //
-        //                    UIImage * img =[UIImage imageWithData:downloadimg_data];
-        //                    cell.imageView.image=img;
-                        }
-                        else
-                        [RAUtils message_box:@"Warrning" message:@"Can not download template file. Please check online ERP setting or contact your administrator." completion:nil];
-                        
-                        [ActiveViewController Notify:@"ScanSearchViewController" Message:@"Clear"];
-//                    }];
-                    
-                   
-    //                    cell.imageView.image=[UIImage imageNamed:@"notfound_s"];
-                    
-                });
-                
-            });
-//        }];
+//        AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+//        NSString *documents = [paths objectAtIndex:0];
+//        
+//        [RAUtils deletefiles:[documents stringByAppendingPathComponent:@"download"]];
+//        RASingleton.sharedInstance.scan_list = nil;
+//        [RADataProvider load_scan_models];
+//        
+////        NSString* file_name=[appDelegate.downloadurl lastPathComponent];
+////        __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Update local data" completion:^{
+//        
+//        PopWaitAlert* pop =[RAUtils waiting_pop:@"Update local data" completion:nil];
+//            dispatch_async(dispatch_get_global_queue(0, 0), ^{
+//                
+//
+//                
+//                NSData*  download_data = [NSData dataWithContentsOfURL:[NSURL URLWithString:appDelegate.downloadurl]];
+//                dispatch_async(dispatch_get_main_queue(), ^{
+//                    
+////                    [waitalert dismissViewControllerAnimated:false completion:^{
+//                    [pop hide];
+//                        if(download_data!=nil)
+//                        {
+//                            
+//
+//                            NSString* file_name=[appDelegate.downloadurl lastPathComponent];
+//                            NSString* path = [documents stringByAppendingPathComponent:file_name];
+//                            [RAUtils saveData:download_data toPath:path];
+//                            
+//                            ZipArchive* zip = [[ZipArchive alloc] init];
+//                            NSString* unZipTo=[documents stringByAppendingPathComponent:@"download"];
+//        //                    NSFileManager* fileManager=[NSFileManager defaultManager];
+//        //                    [fileManager removeItemAtPath:unZipTo error:nil];
+//        //                    NSString *unZipTo = [temp stringByAppendingPathComponent:unziplocation];
+//                            //
+//                            //    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+//                            //    NSString *documentPath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
+//                            //NSString* zipFile = [documentPath stringByAppendingString:@"/images.zip"] ;
+//                            // NSString* unZipTo = img_cache;//[documentPath stringByAppendingString:@"/images"] ;
+//                            
+//                            DebugLog(@"path: %@",unZipTo);
+//                            if( [zip UnzipOpenFile:path Password:nil] ){
+//                                BOOL result = [zip UnzipFileTo:unZipTo overWrite:YES];
+//                                if( NO==result )
+//                                {
+//                                    //            int aaa=0;
+//                                    //解压失败
+//                                  
+//                                    [zip UnzipCloseFile];
+//                                    //文件损坏,删除文件重试
+//                                    
+//                                    
+//                                    NSFileManager* fileManager=[NSFileManager defaultManager];
+//                                    //debug
+//                        //            BOOL blDele= [fileManager removeItemAtPath:zipFile error:nil];
+//                                    [fileManager removeItemAtPath:path error:nil];
+//                                    [fileManager removeItemAtPath:unZipTo error:nil];
+//                                    
+//                                    
+//                                    [RAUtils message_box:@"Warrning" message:@"Can not unzip template file, please try download again." completion:nil];
+//                                    
+//                                    
+//                                }
+//                                else
+//                                {
+//                                    [zip UnzipCloseFile];
+//                                    
+//                                    
+//                                    NSFileManager *fileManager = [NSFileManager defaultManager];
+//                                    [fileManager removeItemAtPath:path error:nil];
+//                                    
+//                                    [RAUtils message_box:@"Message" message:@"Update template file successful." completion:nil];
+//                                    
+//        //                            [RADataProvider encrypt_scan_models];
+//
+//                                    NSMutableDictionary *templateDic = [NSMutableDictionary dictionary];
+//                                    NSString* datetime= [RAUtils current_date_time];
+//                                    templateDic[@"updatetime"]= datetime;
+//                                    [self setUserDefaultsValue:templateDic forKey:@"ScanTemplate"];
+//                                    [self loadTemplate];
+//                                    [RADataProvider load_scan_models];
+//                                    [RADataProvider default_price_group];
+//                                    
+//                                }
+//                                //[zip UnzipCloseFile];
+//                            }
+//                            else
+//                            {
+//                                //打开文件失败,通常是文件路径有问题或密码错误。
+//                                
+//                                [RAUtils message_box:@"Warrning" message:@"Can not unzip template file, please contact the Administrator." completion:nil];
+//                                
+//                        //        NSFileManager *fileManager = [NSFileManager defaultManager];
+//                        //        [fileManager removeItemAtPath:zipFile error:nil];
+//                            }
+//                            
+//                            
+//        //                    [iSalesDB cache_img:downloadimg_data filename:file_name saveTo:img_url];
+//        //
+//        //                    UIImage * img =[UIImage imageWithData:downloadimg_data];
+//        //                    cell.imageView.image=img;
+//                        }
+//                        else
+//                        [RAUtils message_box:@"Warrning" message:@"Can not download template file. Please check online ERP setting or contact your administrator." completion:nil];
+//                        
+//                        [ActiveViewController Notify:@"ScanSearchViewController" Message:@"Clear"];
+////                    }];
+//                    
+//                   
+//    //                    cell.imageView.image=[UIImage imageNamed:@"notfound_s"];
+//                    
+//                });
+//                
+//            });
+////        }];
 
         
         

+ 1 - 1
RedAnt ERP Mobile/common/AppDelegateBase.h

@@ -36,7 +36,7 @@ typedef enum {
 ,ScanApiHelperDelegate,CBCentralManagerDelegate, CBPeripheralDelegate,NSURLSessionDataDelegate>
 #else
 @interface AppDelegateBase : UIResponder<UIApplicationDelegate , NSURLConnectionDataDelegate
-,ScanApiHelperDelegate>
+,ScanApiHelperDelegate,NSURLSessionDataDelegate>
 
 #endif
 //{

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

@@ -2754,7 +2754,7 @@ void UncaughtExceptionHandler(NSException *exception) {
 }
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
-
+    
     NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
     // 蓝牙扫描枪
 #ifdef USE_BLE_SCANNER

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

@@ -32,7 +32,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (strong, nonatomic) IBOutlet UIToolbar *toolbarView;
 
 //@property (strong, nonatomic) IBOutlet UISearchBar *searchbar;
-@property (strong,nonatomic) NSString* keywords;
+@property (strong,nonatomic,nullable) NSString* keywords;
 @property bool reset;
 @property bool norefresh;
 @property (nonatomic , copy) void (^selectOrder)(NSMutableDictionary * order_detail);
@@ -41,7 +41,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic , copy) void (^onCancel)(void);
 @property (strong, nonatomic) IBOutlet UIBarButtonItem *btn_newOrder;
 
-@property (strong,nonatomic) NSMutableDictionary * status_cadedate;
+@property (strong,nonatomic,nullable) NSMutableDictionary * status_cadedate;
 //@property (strong, nonatomic) IBOutlet UIView *toolbarView;
 @property (strong, nonatomic) IBOutlet UILabel *label_filter;
 

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

@@ -565,7 +565,7 @@
     //    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
     //    NSString *documents = [paths objectAtIndex:0];
     
-    NSString *userdir = [OLDataProvider getUserPath];
+//    NSString *userdir = [OLDataProvider getUserPath];
     NSMutableDictionary* orderlist = [OLDataProvider getScanOrderList];
 //    NSString *orderlistPath = [userdir stringByAppendingPathComponent:@"orderlist.json"];
 //    orderlist=[[RAUtils dictfromfile:orderlistPath] mutableCopy];
@@ -1319,7 +1319,7 @@
                 appDelegate.can_see_price = true;
                 
                 
-                NSMutableDictionary * params= [[NSMutableDictionary alloc] init];
+//                NSMutableDictionary * params= [[NSMutableDictionary alloc] init];
                 
     //            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
     //            NSString *documents = [paths objectAtIndex:0];
@@ -1392,7 +1392,7 @@
                     appDelegate.can_see_price = true;
                     
                     
-                    NSMutableDictionary * params= [[NSMutableDictionary alloc] init];
+//                    NSMutableDictionary * params= [[NSMutableDictionary alloc] init];
                     
         //            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
         //            NSString *documents = [paths objectAtIndex:0];

+ 1 - 1
RedAnt ERP Mobile/common/Functions/camscan/ScanResultViewController.h

@@ -14,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (strong, nonatomic)  id scan_val;
 @property (strong, nonatomic)  NSString *handeled_val;
 
-@property (nonatomic,copy) void(^returnValue)(id val);
+@property (nonatomic,copy) void(^returnValue)(_Nullable id val);
 @end
 
 NS_ASSUME_NONNULL_END

文件差異過大導致無法顯示
+ 1 - 1
RedAnt ERP Mobile/common/Functions/camscan/ScannerViewController.m


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

@@ -843,7 +843,7 @@
     //    [[self navigationController] setNavigationBarHidden:YES animated:NO];
 }
 
-
+#if defined(USE_BLE_SCANNER) || defined(USE_MFI_SCANNER)
 -(void) operation_scan_reload_data
 {
     if (self.dataOperationQueue.operationCount > 1) {
@@ -979,6 +979,7 @@
     });
     //    [[self navigationController] setNavigationBarHidden:YES animated:NO];
 }
+#endif
 -(void)manually_refresh
 {
     UIRefreshControl *reF = (UIRefreshControl *)[self.view viewWithTag:200];
@@ -3481,7 +3482,9 @@
     
     // Button 设置了大小约束,Size就不会随内容变化
     [cell.btnImage setContentMode:UIViewContentModeScaleAspectFit];
+#if  __IPHONE_OS_VERSION_MIN_REQUIRED <150000
     [cell.btnImage setContentEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
+#endif
     [cell.btnImage setContentHorizontalAlignment:UIControlContentHorizontalAlignmentFill];
     [cell.btnImage setContentVerticalAlignment:UIControlContentVerticalAlignmentFill];
     cell.btnImage.imageView.contentMode = UIViewContentModeScaleAspectFit;
@@ -5116,7 +5119,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
     
     [self.dataOperationQueue addOperation:operation];
 }
-
+#if defined(USE_BLE_SCANNER) || defined(USE_MFI_SCANNER)
 -(void) scanner_refresh
 {
     __weak typeof(self) weakself = self;
@@ -5132,7 +5135,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
     
     [self.dataOperationQueue addOperation:operation];
 }
-
+#endif
 //-(void) delayRun
 //{
 //    __weak typeof(self) weakself = self;

+ 14 - 9
RedAnt ERP Mobile/common/Functions/offline/OLDataProvider.m

@@ -2183,13 +2183,13 @@
 {
     
 #ifdef SCANNER_ORDER
-    NSString *userdir = [OLDataProvider getUserPath];
+//    NSString *userdir = [OLDataProvider getUserPath];
     
     if(order_code.length==0)
         return;
     //        orderdirNSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
     //        NSString *documents = [paths objectAtIndex:0];
-    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
     
     
   
@@ -2234,16 +2234,19 @@
     
 //    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
     
-    NSDictionary* price_group = [RADataProvider get_price_group:appDelegate.price_group];
+
     float p =0;
     float s =0;
     for(int j=0;j<[RASingleton.sharedInstance.scan_cart[@"section_0"][@"count"] intValue];j++)
     {
         NSDictionary* cartitem =RASingleton.sharedInstance.scan_cart[@"section_0"][[NSString stringWithFormat:@"item_%d",j]];
         p+=[cartitem[@"unit_price"] doubleValue]*[cartitem[@"count"]intValue] * (1-[cartitem[@"discount"]doubleValue]/100.0);
-        int mcount = [cartitem[@"count"] intValue];
-        double msurcharge =0;
+
+ 
         // remove net price
+//        double msurcharge =0;
+//        int mcount = [cartitem[@"count"] intValue];
+//        NSDictionary* price_group = [RADataProvider get_price_group:appDelegate.price_group];
 //        if(RASingleton.sharedInstance.price_type==1)
 //        {
 //            if([cartitem[@"special_price"] boolValue])
@@ -2256,7 +2259,7 @@
 //            }
 //        }
 
-        s+=msurcharge;
+//        s+=msurcharge;
     }
     
     NSMutableDictionary* section =RASingleton.sharedInstance.scan_cart[@"section_0"];
@@ -2438,7 +2441,7 @@
 //    self.labelPrice3.text = price_group[@"price_3"][@"display"];//appDelegate.price3_name;
 
 #ifdef DEBUG
-    DebugLog( [RAConvertor dict2string:_modelJson]);
+    DebugLog(@"%@", [RAConvertor dict2string:_modelJson]);
 #endif
     NSString * port=_modelJson[@"port"];
     if(port.length==0)
@@ -2624,7 +2627,7 @@
 int stockUom =[jitem[@"stockUom"] intValue];
 if(stockUom==0)
     stockUom=1;
-    bool newitem = true;
+//    bool newitem = true;
 //AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
 //NSDictionary* price_group = [RADataProvider get_price_group:appDelegate.price_group];
 //    for(int i=0;i<count;i++)
@@ -5113,7 +5116,7 @@ if(stockUom==0)
             int mpack = sqlite3_column_int(statement, 13);
             impack = mpack;
             int ipack = sqlite3_column_int(statement, 14);
-            double ucbf = sqlite3_column_double(statement, 15);
+           
             //            double icbf = sqlite3_column_double(statement, 16);
             //            double mcbf = sqlite3_column_double(statement, 17);
             
@@ -5169,11 +5172,13 @@ if(stockUom==0)
                 
             }
 #if defined(BUILD_NPD) || defined(BUILD_USAI) || defined(BUILD_UWAVER)|| defined (BUILD_CONTRAST)
+            double ucbf = sqlite3_column_double(statement, 15);
             cuft=ucbf*count;
             weight= uweight*count;
 #endif
             
 #if defined(BUILD_HOMER) || defined(BUILD_GATIT)
+            double ucbf = sqlite3_column_double(statement, 15);
             cuft=ucbf*count;
             weight= uweight*count;
 #endif

+ 16 - 6
RedAnt ERP Mobile/common/Functions/order/OrderDetailViewController.m

@@ -785,7 +785,7 @@
                         NSMutableDictionary *json=result;
                         if([[json valueForKey:@"result"] intValue]==2)
                         {
-                            NSString* img_url_down = json[@"img_url_aname"];
+                            
                             NSString* img_url_up = json[@"img_url"];
                             {
                                 //                    UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Signature"];
@@ -798,6 +798,7 @@
                                         {
                                             
             #if defined(BUILD_NPD) || defined(BUILD_USAI) || defined(BUILD_UWAVER)|| defined (BUILD_CONTRAST)
+                                            NSString* img_url_down = json[@"img_url_aname"];
                                             int count = [[weakSelf.content_data objectForKey:@"count"] intValue];
                                             for (int i = 0; i < count; i++) {
                                                 NSString *key = [NSString stringWithFormat:@"section_%d",i];
@@ -812,6 +813,7 @@
             #endif
                                             
             #if defined(BUILD_HOMER) || defined(BUILD_GATIT)
+                                            NSString* img_url_down = json[@"img_url_aname"];
                                             int count = [[weakSelf.content_data objectForKey:@"count"] intValue];
                                             for (int i = 0; i < count; i++) {
                                                 NSString *key = [NSString stringWithFormat:@"section_%d",i];
@@ -826,6 +828,7 @@
             #endif
                                             
             #ifdef BUILD_HMLG
+                                            NSString* img_url_down = json[@"img_url_aname"];
                                             [weakSelf.content_data setValue:img_url_down forKey:@"sign_url"];
             #endif
                                             //self.btnSign.enabled = false;
@@ -1932,10 +1935,11 @@
 
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
-    
+#ifndef SCANNER_ORDER
     UIApplication * app = [UIApplication sharedApplication];
     AppDelegate *appDelegate = (AppDelegate *)[app delegate];
- 
+#endif
+    
 #if defined(BUILD_NPD) || defined(BUILD_USAI) || defined(BUILD_UWAVER)|| defined (BUILD_CONTRAST)
     /**
      * ver1.90
@@ -2244,7 +2248,9 @@
             
             // Button 设置了大小约束,Size就不会随内容变化
             [cell.imgbtn setContentMode:UIViewContentModeScaleAspectFit];
-            [cell.imgbtn setContentEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
+#if  __IPHONE_OS_VERSION_MIN_REQUIRED <150000
+    [cell.imgbtn setContentEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
+#endif
             [cell.imgbtn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentFill];
             [cell.imgbtn setContentVerticalAlignment:UIControlContentVerticalAlignmentFill];
             cell.imgbtn.imageView.contentMode = UIViewContentModeScaleAspectFit;
@@ -2638,7 +2644,9 @@
             
             // Button 设置了大小约束,Size就不会随内容变化
             [cell.imgbtn setContentMode:UIViewContentModeScaleAspectFit];
-            [cell.imgbtn setContentEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
+#if  __IPHONE_OS_VERSION_MIN_REQUIRED <150000
+    [cell.imgbtn setContentEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
+#endif
             [cell.imgbtn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentFill];
             [cell.imgbtn setContentVerticalAlignment:UIControlContentVerticalAlignmentFill];
             cell.imgbtn.imageView.contentMode = UIViewContentModeScaleAspectFit;
@@ -3025,7 +3033,9 @@
             
             // Button 设置了大小约束,Size就不会随内容变化
             [cell.imgbtn setContentMode:UIViewContentModeScaleAspectFit];
-            [cell.imgbtn setContentEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
+#if  __IPHONE_OS_VERSION_MIN_REQUIRED <150000
+    [cell.imgbtn setContentEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
+#endif
             [cell.imgbtn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentFill];
             [cell.imgbtn setContentVerticalAlignment:UIControlContentVerticalAlignmentFill];
             cell.imgbtn.imageView.contentMode = UIViewContentModeScaleAspectFit;

+ 3 - 0
RedAnt ERP Mobile/common/Functions/portfolio/PortfolioViewController.m

@@ -1243,7 +1243,10 @@
     
     // Button 设置了大小约束,Size就不会随内容变化
     [cell.btnImage setContentMode:UIViewContentModeScaleAspectFit];
+
+#if  __IPHONE_OS_VERSION_MIN_REQUIRED <150000
     [cell.btnImage setContentEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
+#endif
     [cell.btnImage setContentHorizontalAlignment:UIControlContentHorizontalAlignmentFill];
     [cell.btnImage setContentVerticalAlignment:UIControlContentVerticalAlignmentFill];
     cell.btnImage.imageView.contentMode = UIViewContentModeScaleAspectFit;

+ 1 - 1
RedAnt ERP Mobile/common/Functions/signature/SignatureViewController.m

@@ -117,7 +117,7 @@
     
     
     
-    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
+    if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
         self.navigationItem.rightBarButtonItems=[NSArray arrayWithObjects:doneBtn,clearBtn , nil];
     } else {
         self.navigationItem.rightBarButtonItems=[NSArray arrayWithObjects:doneBtn,clearBtn,settingBtn , nil];

+ 2 - 0
RedAnt ERP Mobile/common/Functions/watchlist/WatchListViewController.m

@@ -628,7 +628,9 @@
     
     // Button 设置了大小约束,Size就不会随内容变化
     [cell.btnImage setContentMode:UIViewContentModeScaleAspectFit];
+#if  __IPHONE_OS_VERSION_MIN_REQUIRED <150000
     [cell.btnImage setContentEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
+#endif
     [cell.btnImage setContentHorizontalAlignment:UIControlContentHorizontalAlignmentFill];
     [cell.btnImage setContentVerticalAlignment:UIControlContentVerticalAlignmentFill];
     cell.btnImage.imageView.contentMode = UIViewContentModeScaleAspectFit;

+ 2 - 2
RedAnt ERP Mobile/common/JKLock/JKMessageBoxController.m

@@ -107,7 +107,7 @@
         [_cancelButton setTitleColor:Button_Title_Highlight_Color forState:UIControlStateHighlighted];
         _cancelButton.backgroundColor = [UIColor whiteColor];
         _cancelButton.titleLabel.font = [UIFont systemFontOfSize:15.0];
-        _cancelButton.titleEdgeInsets = UIEdgeInsetsMake(-15, 0, 0, 0);
+//        _cancelButton.titleEdgeInsets = UIEdgeInsetsMake(-15, 0, 0, 0);
         [_cancelButton addTarget:self action:@selector(cancelButtonClick:) forControlEvents:UIControlEventTouchUpInside];
     }
     return _cancelButton;
@@ -123,7 +123,7 @@
         [_yesButton setTitleColor:Button_Title_Highlight_Color forState:UIControlStateHighlighted];
         _yesButton.backgroundColor = [UIColor whiteColor];
         _yesButton.titleLabel.font = [UIFont systemFontOfSize:15.0];
-        _yesButton.titleEdgeInsets = UIEdgeInsetsMake(-15, 0, 0, 0);
+//        _yesButton.titleEdgeInsets = UIEdgeInsetsMake(-15, 0, 0, 0);
         [_yesButton addTarget:self action:@selector(yesButtonClick:) forControlEvents:UIControlEventTouchUpInside];
     }
     return _yesButton;

+ 25 - 0
RedAnt ERP Mobile/common/ScanRefreshStock.h

@@ -0,0 +1,25 @@
+//
+//  ScanRefreshStock.h
+//  HMLG Scan Order
+//
+//  Created by Rui Zhang on 6/30/23.
+//  Copyright © 2023 United Software Applications, Inc. All rights reserved.
+//
+
+#ifndef ScanRefreshStock_h
+#define ScanRefreshStock_h
+
+
+@protocol IScanRefreshStock
+ 
+-(void) refreshStock;
+ 
+@end
+@interface ScanRefreshStock : UIViewController<IScanRefreshStock> {
+    
+}
+
+ 
+@end
+
+#endif /* ScanRefreshStock_h */

+ 4 - 1
RedAnt ERP Mobile/common/customUI/RadioButton.m

@@ -125,7 +125,10 @@ static NSMutableDictionary *rb_observers=nil;
     // Customize UIButton
     _button = [UIButton buttonWithType:UIButtonTypeCustom];
     _button.frame = CGRectMake(0, 0,kRadioButtonWidth, kRadioButtonHeight);
-    _button.adjustsImageWhenHighlighted = NO; 
+    
+#if  __IPHONE_OS_VERSION_MIN_REQUIRED <150000
+    _button.adjustsImageWhenHighlighted = NO;
+#endif
     
     [_button setImage:[UIImage imageNamed:@"RadioButton-Unselected"] forState:UIControlStateNormal];
     [_button setImage:[UIImage imageNamed:@"RadioButton-Selected"] forState:UIControlStateSelected];

+ 2 - 1
RedAnt ERP Mobile/common/data_provider/RADataProvider.m

@@ -9,6 +9,7 @@
 #import "RADataProvider.h"
 #import "ZipArchive.h"
 #import "ActiveViewController.h"
+#import "ScanRefreshStock.h"
 @implementation RADataProvider
 
 +(void)request_autocomplete:(NSMutableDictionary*)param completionHandler:(resultHandler)result
@@ -244,7 +245,7 @@ NSDate * ddate =[dateFormatter dateFromString:@"2023-4-18"];
     
     
 }
-+(void) updateStock:(UIViewController*) vc
++(void) updateStock:(ScanRefreshStock*) vc
 {
     
     AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];

+ 27 - 15
RedAnt ERP Mobile/common/data_provider/RANetwork.m

@@ -4481,7 +4481,7 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     NSData* json = nil;
     if(appDelegate.offline_mode)
     {
-        json = [OLDataProvider offline_notimpl];
+        return [OLDataProvider offline_notimpl];
     } else {
         if(![self IsNetworkAvailable])
             return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
@@ -6951,7 +6951,7 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     DebugLog(@"iSalesNetwork::request_Cart");
     
     
-    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+
     AppDelegate *appDelegate = nil;
     
     
@@ -6967,8 +6967,8 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
         result(RASingleton.sharedInstance.scan_cart);
         return;
     }
-#endif
-    
+#else
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
     if(appDelegate.user!=nil)
         [params setValue:appDelegate.user forKey:@"user"];
     //    if(appDelegate.contact_id!=nil)
@@ -7121,6 +7121,7 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     //        [appDelegate update_count_mark];
     //    }
     //    return jsobj;
+#endif
 }
 
 +(void) request_move_wish2cart:(NSString* ) item_ids completionHandler:(resultHandler)result
@@ -8521,7 +8522,7 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
 
 +(void) request_update_cartqty:(NSString*) cart_id value:(int) value completionHandler:(resultHandler)result
 {
-    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    
     AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
     
 #ifdef SCANNER_ORDER
@@ -8549,8 +8550,8 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
         [OLDataProvider updateScanOrder:appDelegate.order_code];
         return;
     }
-#endif
-    
+#else
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
     if(appDelegate.user!=nil)
         [params setValue:appDelegate.user forKey:@"user"];
     if(appDelegate.contact_id!=nil)
@@ -8600,12 +8601,12 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     //    NSError *error=nil;
     //    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
     //    return jsobj;
-    
+#endif
 }
 +(void) request_update_cartgeneralnote:(NSString*) order_code notes:(NSString*) notes completionHandler:(resultHandler)result
 {
-    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
-    AppDelegate *appDelegate = nil;
+
+    
 #ifdef SCANNER_ORDER
 //    if(RASingleton.sharedInstance.enable_OfflineOrder)
     {
@@ -8618,7 +8619,9 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
         result(RASingleton.sharedInstance.scan_cart);
         return;
     }
-#endif
+#else
+    AppDelegate *appDelegate = nil;
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
     if(appDelegate.user!=nil)
         [params setValue:appDelegate.user forKey:@"user"];
@@ -8672,10 +8675,11 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     //    NSError *error=nil;
     //    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
     //    return jsobj;
+#endif
 }
 +(void) request_update_cartitemnote:(NSString*) cart_id notes:(NSString*) notes completionHandler:(resultHandler)result
 {
-    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+
     AppDelegate *appDelegate = nil;
     
     
@@ -8705,7 +8709,9 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
         result(RASingleton.sharedInstance.scan_cart);
         return;
     }
-#endif
+#else
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
     if(appDelegate.user!=nil)
         [params setValue:appDelegate.user forKey:@"user"];
     if(appDelegate.contact_id!=nil)
@@ -8759,6 +8765,8 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     //    NSError *error=nil;
     //    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
     //    return jsobj;
+    
+#endif
 }
 + (void)request_update_npd_shop_price_type:(NSInteger)priceType completionHandler:(resultHandler)result
 {
@@ -9943,7 +9951,7 @@ NSMutableDictionary* section = [RASingleton.sharedInstance.scan_cart[@"section_0
 #endif
 +(void) request_update_cart_modelprice:(NSString*) cart_id price:(float) price discount:(float) discount notes:(NSString*) notes completionHandler:(resultHandler)result
 {
-    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+
     AppDelegate *appDelegate = nil;
     
     
@@ -9983,7 +9991,9 @@ NSMutableDictionary* section = [RASingleton.sharedInstance.scan_cart[@"section_0
         [OLDataProvider updateScanOrder:appDelegate.order_code];
         return;
     }
-#endif
+#else
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
     if(appDelegate.user!=nil)
         [params setValue:appDelegate.user forKey:@"user"];
     if(appDelegate.contact_id!=nil)
@@ -10033,6 +10043,8 @@ NSMutableDictionary* section = [RASingleton.sharedInstance.scan_cart[@"section_0
     //    NSError *error=nil;
     //    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
     //    return jsobj;
+    
+#endif
 }
 +(void) request_addto_cart:(NSString* ) item_id count:(int) count name:(NSString *)name completionHandler:(resultHandler)result
 {

+ 2 - 2
RedAnt ERP Mobile/common/qrcode/qrencode.c

@@ -438,7 +438,7 @@ QRcode *QRcode_encodeString8bit(const char *string, int version, QRecLevel level
 	input = QRinput_new2(version, level);
 	if(input == NULL) return NULL;
 
-	ret = QRinput_append(input, QR_MODE_8, strlen(string), (unsigned char *)string);
+	ret = QRinput_append(input, QR_MODE_8, (int)strlen(string), (unsigned char *)string);
 	if(ret < 0) {
 		QRinput_free(input);
 		return NULL;
@@ -598,7 +598,7 @@ QRcode_List *QRcode_encodeString8bitStructured(const char *string, int version,
 	input = QRinput_new2(version, level);
 	if(input == NULL) return NULL;
 
-	ret = QRinput_append(input, QR_MODE_8, strlen(string), (unsigned char *)string);
+	ret = QRinput_append(input, QR_MODE_8, (int)strlen(string), (unsigned char *)string);
 	if(ret < 0) {
 		QRinput_free(input);
 		return NULL;

+ 2 - 0
RedAnt ERP Mobile/iSales-CONTRAST.xcodeproj/project.pbxproj

@@ -423,6 +423,7 @@
 		3CA6DDBD28E54B72003655FF /* ContrastModelItemCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContrastModelItemCell.h; sourceTree = "<group>"; };
 		3CA6DDC228E575FB003655FF /* ModelItemCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ModelItemCell.h; path = common/Functions/cart/ModelItemCell.h; sourceTree = SOURCE_ROOT; };
 		3CA6DDC328E575FB003655FF /* ModelItemCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ModelItemCell.m; path = common/Functions/cart/ModelItemCell.m; sourceTree = SOURCE_ROOT; };
+		3CBC872B2A4EBEE600978758 /* ScanRefreshStock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ScanRefreshStock.h; path = common/ScanRefreshStock.h; sourceTree = SOURCE_ROOT; };
 		3CDDB25A273A564200681F78 /* DefaultTableHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DefaultTableHeaderView.m; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.m; sourceTree = "<group>"; };
 		3CDDB25B273A564200681F78 /* DefaultTableHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DefaultTableHeaderView.h; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.h; sourceTree = "<group>"; };
 		3CDDB25F273A597B00681F78 /* const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = const.h; path = common/const.h; sourceTree = SOURCE_ROOT; };
@@ -1189,6 +1190,7 @@
 		713F76AF1929F4A7006A7305 /* iSales-CONTRAST */ = {
 			isa = PBXGroup;
 			children = (
+				3CBC872B2A4EBEE600978758 /* ScanRefreshStock.h */,
 				3C3300B529430F0A005CFE7C /* common Scanner */,
 				3C88558E27E1D233005DC3FA /* upload */,
 				71DF74311C5757C800F2789C /* CommonUI */,

+ 5 - 2
RedAnt ERP Mobile/iSales-NPD.xcodeproj/project.pbxproj

@@ -3,7 +3,7 @@
 	archiveVersion = 1;
 	classes = {
 	};
-	objectVersion = 46;
+	objectVersion = 53;
 	objects = {
 
 /* Begin PBXBuildFile section */
@@ -404,6 +404,7 @@
 		3CA211082761EA31000FC2F3 /* RADataProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RADataProvider.m; path = common/data_provider/RADataProvider.m; sourceTree = SOURCE_ROOT; };
 		3CA211092761EA31000FC2F3 /* RADataProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RADataProvider.h; path = common/data_provider/RADataProvider.h; sourceTree = SOURCE_ROOT; };
 		3CA2110F2761EBC8000FC2F3 /* common_const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = common_const.h; path = ../../common/common_const.h; sourceTree = "<group>"; };
+		3CBC872F2A4EBF1100978758 /* ScanRefreshStock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ScanRefreshStock.h; path = common/ScanRefreshStock.h; sourceTree = SOURCE_ROOT; };
 		3CC7E72A23BEDA4F00BE5561 /* RAPDFViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RAPDFViewController.h; path = "../../common/WK PDF+Web/RAPDFViewController.h"; sourceTree = "<group>"; };
 		3CC7E72B23BEDA4F00BE5561 /* WebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WebViewController.m; path = "../../common/WK PDF+Web/WebViewController.m"; sourceTree = "<group>"; };
 		3CC7E72C23BEDA4F00BE5561 /* RAPDFViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAPDFViewController.m; path = "../../common/WK PDF+Web/RAPDFViewController.m"; sourceTree = "<group>"; };
@@ -1135,6 +1136,7 @@
 		713F76AF1929F4A7006A7305 /* iSales-NPD */ = {
 			isa = PBXGroup;
 			children = (
+				3CBC872F2A4EBF1100978758 /* ScanRefreshStock.h */,
 				71DF742C1C57567800F2789C /* NPD */,
 				712AFEE31DBDAEA000254965 /* PDFResource */,
 				716387C71953CDB4006E65E6 /* utils */,
@@ -1844,7 +1846,8 @@
 		713F769E1929F4A7006A7305 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 1330;
+				BuildIndependentTargetsInParallel = YES;
+				LastUpgradeCheck = 1430;
 				ORGANIZATIONNAME = "United Software Applications, Inc";
 				TargetAttributes = {
 					713F76A51929F4A7006A7305 = {

+ 2 - 58
RedAnt ERP Mobile/iSales-NPD/Base.lproj/OLM.storyboard

@@ -300,7 +300,7 @@
                                                     <rect key="frame" x="10" y="32" width="21" height="21"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <state key="normal" image="button:hrK-DY-RbO:image"/>
-                                                    <state key="selected" image="24A753FE-9743-4BAD-BFDE-8CCD81F08A8A"/>
+                                                    <state key="selected" image="4B855F13-5BF6-4A18-8FC9-75FDE7163D19"/>
                                                     <connections>
                                                         <action selector="checkButtonClick:" destination="XXr-fU-67o" eventType="touchUpInside" id="KeU-ld-H4J"/>
                                                     </connections>
@@ -1017,65 +1017,9 @@
             </objects>
             <point key="canvasLocation" x="1651.5625" y="123.63281249999999"/>
         </scene>
-        <!--Scan User List View Controller-->
-        <scene sceneID="uYh-qu-qh9">
-            <objects>
-                <viewController storyboardIdentifier="ScanUserListViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="NAL-c8-QGZ" customClass="ScanUserListViewController" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="7uQ-ez-Ikp"/>
-                        <viewControllerLayoutGuide type="bottom" id="Sej-Gp-EgN"/>
-                    </layoutGuides>
-                    <view key="view" contentMode="scaleToFill" id="ofh-e2-bib">
-                        <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="zfV-mD-u4B">
-                                <rect key="frame" x="36" y="36" width="696" height="972"/>
-                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
-                                <prototypes>
-                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="cell" textLabel="If9-Ed-Mke" style="IBUITableViewCellStyleDefault" id="XFZ-pE-gLa">
-                                        <rect key="frame" x="0.0" y="50" width="696" height="43.5"/>
-                                        <autoresizingMask key="autoresizingMask"/>
-                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="XFZ-pE-gLa" id="bSi-0h-mDn">
-                                            <rect key="frame" x="0.0" y="0.0" width="696" height="43.5"/>
-                                            <autoresizingMask key="autoresizingMask"/>
-                                            <subviews>
-                                                <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="If9-Ed-Mke">
-                                                    <rect key="frame" x="16" y="0.0" width="664" height="43.5"/>
-                                                    <autoresizingMask key="autoresizingMask"/>
-                                                    <fontDescription key="fontDescription" type="system" pointSize="0.0"/>
-                                                    <nil key="textColor"/>
-                                                    <nil key="highlightedColor"/>
-                                                </label>
-                                            </subviews>
-                                        </tableViewCellContentView>
-                                    </tableViewCell>
-                                </prototypes>
-                                <connections>
-                                    <outlet property="dataSource" destination="NAL-c8-QGZ" id="q9d-6q-sSI"/>
-                                    <outlet property="delegate" destination="NAL-c8-QGZ" id="2MM-Ge-25C"/>
-                                </connections>
-                            </tableView>
-                        </subviews>
-                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
-                        <constraints>
-                            <constraint firstItem="zfV-mD-u4B" firstAttribute="leading" secondItem="ofh-e2-bib" secondAttribute="leadingMargin" constant="16" id="NPM-BX-cBT"/>
-                            <constraint firstAttribute="trailingMargin" secondItem="zfV-mD-u4B" secondAttribute="trailing" constant="16" id="mAN-Ff-iBP"/>
-                            <constraint firstItem="Sej-Gp-EgN" firstAttribute="top" secondItem="zfV-mD-u4B" secondAttribute="bottom" constant="16" id="pF8-GA-CeT"/>
-                            <constraint firstItem="zfV-mD-u4B" firstAttribute="top" secondItem="7uQ-ez-Ikp" secondAttribute="bottom" constant="16" id="raJ-nd-Hfj"/>
-                        </constraints>
-                    </view>
-                    <connections>
-                        <outlet property="table" destination="zfV-mD-u4B" id="JKi-tt-bmR"/>
-                    </connections>
-                </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="zE5-p3-kYB" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="2366" y="-889"/>
-        </scene>
     </scenes>
     <resources>
-        <image name="24A753FE-9743-4BAD-BFDE-8CCD81F08A8A" width="24" height="24">
+        <image name="4B855F13-5BF6-4A18-8FC9-75FDE7163D19" width="24" height="24">
             <mutableData key="keyedArchiveRepresentation">
 YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8QD05T
 S2V5ZWRBcmNoaXZlctEICVRyb290gAGuCwwZGh8UJCkqMTQ3PUBVJG51bGzWDQ4PEBESExQVFhcYVk5T

+ 5 - 220
RedAnt ERP Mobile/iSales-TRADESHOW.xcodeproj/project.pbxproj

@@ -3,7 +3,7 @@
 	archiveVersion = 1;
 	classes = {
 	};
-	objectVersion = 46;
+	objectVersion = 53;
 	objects = {
 
 /* Begin PBXBuildFile section */
@@ -92,23 +92,10 @@
 		4295AE1C1FE74D46007BE365 /* CommonEditorAutoCompleteView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295AE1A1FE74D46007BE365 /* CommonEditorAutoCompleteView.m */; };
 		4295AE1D1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4295AE1B1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib */; };
 		42B309791E45BA32007AFC62 /* status_filter_cadedate_po.json in Resources */ = {isa = PBXBuildFile; fileRef = 42B309781E45BA32007AFC62 /* status_filter_cadedate_po.json */; };
-		42BEF34F1E89FE1100632AB6 /* FirebaseAnalytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF3241E89FE1100632AB6 /* FirebaseAnalytics.framework */; };
-		42BEF3501E89FE1100632AB6 /* FirebaseCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF3271E89FE1100632AB6 /* FirebaseCore.framework */; };
-		42BEF3511E89FE1200632AB6 /* CHANGELOG.md in Sources */ = {isa = PBXBuildFile; fileRef = 42BEF3291E89FE1100632AB6 /* CHANGELOG.md */; };
-		42BEF3521E89FE1200632AB6 /* FirebaseInstanceID.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF32B1E89FE1100632AB6 /* FirebaseInstanceID.framework */; };
-		42BEF3531E89FE1200632AB6 /* README.md in Sources */ = {isa = PBXBuildFile; fileRef = 42BEF32C1E89FE1100632AB6 /* README.md */; };
-		42BEF3541E89FE1200632AB6 /* GGLAnalytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF32F1E89FE1100632AB6 /* GGLAnalytics.framework */; };
-		42BEF3551E89FE1200632AB6 /* GGLCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF3301E89FE1100632AB6 /* GGLCore.framework */; };
-		42BEF3561E89FE1200632AB6 /* README.md in Sources */ = {isa = PBXBuildFile; fileRef = 42BEF3391E89FE1100632AB6 /* README.md */; };
-		42BEF3571E89FE1200632AB6 /* libGoogleAnalytics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF33C1E89FE1100632AB6 /* libGoogleAnalytics.a */; };
-		42BEF3581E89FE1200632AB6 /* GTMNSData+zlib.m in Sources */ = {isa = PBXBuildFile; fileRef = 42BEF34B1E89FE1100632AB6 /* GTMNSData+zlib.m */; };
-		42BEF35A1E89FE1200632AB6 /* README.md in Sources */ = {isa = PBXBuildFile; fileRef = 42BEF34E1E89FE1100632AB6 /* README.md */; };
 		42BEF35D1E89FECD00632AB6 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF35C1E89FECD00632AB6 /* SystemConfiguration.framework */; };
 		42BEF35F1E89FEE300632AB6 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF35E1E89FEE300632AB6 /* CoreData.framework */; };
-		42BEF3621E8A005800632AB6 /* GoogleAnalyst.m in Sources */ = {isa = PBXBuildFile; fileRef = 42BEF3611E8A005800632AB6 /* GoogleAnalyst.m */; };
 		42BF67CC1E5179970081F90A /* ERPUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 42BF67CB1E5179970081F90A /* ERPUtils.m */; };
 		42D9A0231EB02DA6008AF7AF /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42D9A0221EB02DA6008AF7AF /* AdSupport.framework */; };
-		42D9A0251EB03994008AF7AF /* libAdIdAccess.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42D9A0241EB03994008AF7AF /* libAdIdAccess.a */; };
 		42DC12F11F0CD98E00A4C011 /* OrderDetailPickInfoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 42DC12F01F0CD98E00A4C011 /* OrderDetailPickInfoCell.m */; };
 		42FD1A031FBD1A3000C5D9A8 /* RAOrderPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 42FD1A021FBD1A3000C5D9A8 /* RAOrderPreviewController.m */; };
 		710274251CC606C4009FD219 /* UserListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 710274241CC606C4009FD219 /* UserListViewController.m */; };
@@ -416,6 +403,7 @@
 		3C9FFA9F274799040067830C /* RADataProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RADataProvider.h; path = common/data_provider/RADataProvider.h; sourceTree = SOURCE_ROOT; };
 		3C9FFAA0274799040067830C /* RADataProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RADataProvider.m; path = common/data_provider/RADataProvider.m; sourceTree = SOURCE_ROOT; };
 		3C9FFAA6274799C90067830C /* common_const.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = common_const.h; path = ../../common/common_const.h; sourceTree = "<group>"; };
+		3CBC872C2A4EBEF300978758 /* ScanRefreshStock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ScanRefreshStock.h; path = common/ScanRefreshStock.h; sourceTree = SOURCE_ROOT; };
 		423CC86C21D22F40008BD2C4 /* Launch Screen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = SOURCE_ROOT; };
 		424A02CF1FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RABackOrderSubmitAlertController.h; path = common/Functions/order/RABackOrderSubmitAlertController.h; sourceTree = SOURCE_ROOT; };
 		424A02D01FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RABackOrderSubmitAlertController.m; path = common/Functions/order/RABackOrderSubmitAlertController.m; sourceTree = SOURCE_ROOT; };
@@ -457,43 +445,11 @@
 		4295AE1A1FE74D46007BE365 /* CommonEditorAutoCompleteView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorAutoCompleteView.m; path = ../../common/customUI/commoneditor/CommonEditorAutoCompleteView.m; sourceTree = "<group>"; };
 		4295AE1B1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CommonEditorAutoCompleteView.xib; path = ../../common/customUI/commoneditor/CommonEditorAutoCompleteView.xib; sourceTree = "<group>"; };
 		42B309781E45BA32007AFC62 /* status_filter_cadedate_po.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = status_filter_cadedate_po.json; path = common/Functions/order/status_filter_cadedate_po.json; sourceTree = SOURCE_ROOT; };
-		42BEF3241E89FE1100632AB6 /* FirebaseAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseAnalytics.framework; sourceTree = "<group>"; };
-		42BEF3271E89FE1100632AB6 /* FirebaseCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseCore.framework; sourceTree = "<group>"; };
-		42BEF3291E89FE1100632AB6 /* CHANGELOG.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = "<group>"; };
-		42BEF32B1E89FE1100632AB6 /* FirebaseInstanceID.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseInstanceID.framework; sourceTree = "<group>"; };
-		42BEF32C1E89FE1100632AB6 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
-		42BEF32F1E89FE1100632AB6 /* GGLAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GGLAnalytics.framework; sourceTree = "<group>"; };
-		42BEF3301E89FE1100632AB6 /* GGLCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GGLCore.framework; sourceTree = "<group>"; };
-		42BEF3321E89FE1100632AB6 /* Analytics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Analytics.h; sourceTree = "<group>"; };
-		42BEF3331E89FE1100632AB6 /* Core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Core.h; sourceTree = "<group>"; };
-		42BEF3341E89FE1100632AB6 /* module.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = "<group>"; };
-		42BEF3361E89FE1100632AB6 /* Analytics-Module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Analytics-Module.h"; sourceTree = "<group>"; };
-		42BEF3371E89FE1100632AB6 /* Core-Module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Core-Module.h"; sourceTree = "<group>"; };
-		42BEF3381E89FE1100632AB6 /* SignIn-Module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SignIn-Module.h"; sourceTree = "<group>"; };
-		42BEF3391E89FE1100632AB6 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
-		42BEF33C1E89FE1100632AB6 /* libGoogleAnalytics.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libGoogleAnalytics.a; sourceTree = "<group>"; };
-		42BEF33E1E89FE1100632AB6 /* GAI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAI.h; sourceTree = "<group>"; };
-		42BEF33F1E89FE1100632AB6 /* GAIDictionaryBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIDictionaryBuilder.h; sourceTree = "<group>"; };
-		42BEF3401E89FE1100632AB6 /* GAIEcommerceFields.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommerceFields.h; sourceTree = "<group>"; };
-		42BEF3411E89FE1100632AB6 /* GAIEcommerceProduct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommerceProduct.h; sourceTree = "<group>"; };
-		42BEF3421E89FE1100632AB6 /* GAIEcommerceProductAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommerceProductAction.h; sourceTree = "<group>"; };
-		42BEF3431E89FE1100632AB6 /* GAIEcommercePromotion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommercePromotion.h; sourceTree = "<group>"; };
-		42BEF3441E89FE1100632AB6 /* GAIFields.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIFields.h; sourceTree = "<group>"; };
-		42BEF3451E89FE1100632AB6 /* GAILogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAILogger.h; sourceTree = "<group>"; };
-		42BEF3461E89FE1100632AB6 /* GAITrackedViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAITrackedViewController.h; sourceTree = "<group>"; };
-		42BEF3471E89FE1100632AB6 /* GAITracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAITracker.h; sourceTree = "<group>"; };
-		42BEF34A1E89FE1100632AB6 /* GTMNSData+zlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "GTMNSData+zlib.h"; sourceTree = "<group>"; };
-		42BEF34B1E89FE1100632AB6 /* GTMNSData+zlib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "GTMNSData+zlib.m"; sourceTree = "<group>"; };
-		42BEF34C1E89FE1100632AB6 /* GTMDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMDefines.h; sourceTree = "<group>"; };
-		42BEF34E1E89FE1100632AB6 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
 		42BEF35C1E89FECD00632AB6 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
 		42BEF35E1E89FEE300632AB6 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
-		42BEF3601E8A005800632AB6 /* GoogleAnalyst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GoogleAnalyst.h; sourceTree = "<group>"; };
-		42BEF3611E8A005800632AB6 /* GoogleAnalyst.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GoogleAnalyst.m; sourceTree = "<group>"; };
 		42BF67CA1E5179970081F90A /* ERPUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ERPUtils.h; path = common/ERPUtils.h; sourceTree = SOURCE_ROOT; };
 		42BF67CB1E5179970081F90A /* ERPUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ERPUtils.m; path = common/ERPUtils.m; sourceTree = SOURCE_ROOT; };
 		42D9A0221EB02DA6008AF7AF /* AdSupport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdSupport.framework; path = System/Library/Frameworks/AdSupport.framework; sourceTree = SDKROOT; };
-		42D9A0241EB03994008AF7AF /* libAdIdAccess.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libAdIdAccess.a; sourceTree = "<group>"; };
 		42DC12EF1F0CD98E00A4C011 /* OrderDetailPickInfoCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderDetailPickInfoCell.h; path = common/Functions/order/OrderDetailPickInfoCell.h; sourceTree = SOURCE_ROOT; };
 		42DC12F01F0CD98E00A4C011 /* OrderDetailPickInfoCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderDetailPickInfoCell.m; path = common/Functions/order/OrderDetailPickInfoCell.m; sourceTree = SOURCE_ROOT; };
 		42FD1A011FBD1A3000C5D9A8 /* RAOrderPreviewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RAOrderPreviewController.h; path = common/Functions/order/RAOrderPreviewController.h; sourceTree = SOURCE_ROOT; };
@@ -856,27 +812,20 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				42D9A0251EB03994008AF7AF /* libAdIdAccess.a in Frameworks */,
 				42D9A0231EB02DA6008AF7AF /* AdSupport.framework in Frameworks */,
 				42BEF35F1E89FEE300632AB6 /* CoreData.framework in Frameworks */,
 				42BEF35D1E89FECD00632AB6 /* SystemConfiguration.framework in Frameworks */,
 				71BBA2291CEAC17E00C91DED /* libz.tbd in Frameworks */,
 				7187162C1C43428100F25860 /* libScanApiCore.a in Frameworks */,
-				42BEF3551E89FE1200632AB6 /* GGLCore.framework in Frameworks */,
 				718716291C433DA400F25860 /* AVFoundation.framework in Frameworks */,
 				718716271C433D9700F25860 /* AudioToolbox.framework in Frameworks */,
-				42BEF3541E89FE1200632AB6 /* GGLAnalytics.framework in Frameworks */,
-				42BEF3501E89FE1100632AB6 /* FirebaseCore.framework in Frameworks */,
 				718716251C433D8B00F25860 /* ExternalAccessory.framework in Frameworks */,
 				716961B519594E1000B19FB4 /* libsqlite3.dylib in Frameworks */,
-				42BEF3521E89FE1200632AB6 /* FirebaseInstanceID.framework in Frameworks */,
 				71DEE876192DE00E003F645F /* Accelerate.framework in Frameworks */,
 				71DEE874192DE003003F645F /* QuartzCore.framework in Frameworks */,
 				713F76AC1929F4A7006A7305 /* CoreGraphics.framework in Frameworks */,
 				713F76AE1929F4A7006A7305 /* UIKit.framework in Frameworks */,
 				713F76AA1929F4A7006A7305 /* Foundation.framework in Frameworks */,
-				42BEF34F1E89FE1100632AB6 /* FirebaseAnalytics.framework in Frameworks */,
-				42BEF3571E89FE1200632AB6 /* libGoogleAnalytics.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1044,165 +993,6 @@
 			name = AutoComplete;
 			sourceTree = "<group>";
 		};
-		42BEF3211E89FE1100632AB6 /* GoogleAnalytics */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3601E8A005800632AB6 /* GoogleAnalyst.h */,
-				42BEF3611E8A005800632AB6 /* GoogleAnalyst.m */,
-				42BEF3221E89FE1100632AB6 /* FirebaseAnalytics */,
-				42BEF3251E89FE1100632AB6 /* FirebaseCore */,
-				42BEF3281E89FE1100632AB6 /* FirebaseInstanceID */,
-				42BEF32D1E89FE1100632AB6 /* Google */,
-				42BEF33A1E89FE1100632AB6 /* GoogleAnalytics */,
-				42BEF3481E89FE1100632AB6 /* GoogleToolboxForMac */,
-			);
-			path = GoogleAnalytics;
-			sourceTree = SOURCE_ROOT;
-		};
-		42BEF3221E89FE1100632AB6 /* FirebaseAnalytics */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3231E89FE1100632AB6 /* Frameworks */,
-			);
-			path = FirebaseAnalytics;
-			sourceTree = "<group>";
-		};
-		42BEF3231E89FE1100632AB6 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3241E89FE1100632AB6 /* FirebaseAnalytics.framework */,
-			);
-			path = Frameworks;
-			sourceTree = "<group>";
-		};
-		42BEF3251E89FE1100632AB6 /* FirebaseCore */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3261E89FE1100632AB6 /* Frameworks */,
-			);
-			path = FirebaseCore;
-			sourceTree = "<group>";
-		};
-		42BEF3261E89FE1100632AB6 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3271E89FE1100632AB6 /* FirebaseCore.framework */,
-			);
-			path = Frameworks;
-			sourceTree = "<group>";
-		};
-		42BEF3281E89FE1100632AB6 /* FirebaseInstanceID */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3291E89FE1100632AB6 /* CHANGELOG.md */,
-				42BEF32A1E89FE1100632AB6 /* Frameworks */,
-				42BEF32C1E89FE1100632AB6 /* README.md */,
-			);
-			path = FirebaseInstanceID;
-			sourceTree = "<group>";
-		};
-		42BEF32A1E89FE1100632AB6 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF32B1E89FE1100632AB6 /* FirebaseInstanceID.framework */,
-			);
-			path = Frameworks;
-			sourceTree = "<group>";
-		};
-		42BEF32D1E89FE1100632AB6 /* Google */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF32E1E89FE1100632AB6 /* Frameworks */,
-				42BEF3311E89FE1100632AB6 /* Headers */,
-				42BEF3391E89FE1100632AB6 /* README.md */,
-			);
-			path = Google;
-			sourceTree = "<group>";
-		};
-		42BEF32E1E89FE1100632AB6 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF32F1E89FE1100632AB6 /* GGLAnalytics.framework */,
-				42BEF3301E89FE1100632AB6 /* GGLCore.framework */,
-			);
-			path = Frameworks;
-			sourceTree = "<group>";
-		};
-		42BEF3311E89FE1100632AB6 /* Headers */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3321E89FE1100632AB6 /* Analytics.h */,
-				42BEF3331E89FE1100632AB6 /* Core.h */,
-				42BEF3341E89FE1100632AB6 /* module.modulemap */,
-				42BEF3351E89FE1100632AB6 /* ModuleHeaders */,
-			);
-			path = Headers;
-			sourceTree = "<group>";
-		};
-		42BEF3351E89FE1100632AB6 /* ModuleHeaders */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3361E89FE1100632AB6 /* Analytics-Module.h */,
-				42BEF3371E89FE1100632AB6 /* Core-Module.h */,
-				42BEF3381E89FE1100632AB6 /* SignIn-Module.h */,
-			);
-			path = ModuleHeaders;
-			sourceTree = "<group>";
-		};
-		42BEF33A1E89FE1100632AB6 /* GoogleAnalytics */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF33B1E89FE1100632AB6 /* Libraries */,
-				42BEF33D1E89FE1100632AB6 /* Sources */,
-			);
-			path = GoogleAnalytics;
-			sourceTree = "<group>";
-		};
-		42BEF33B1E89FE1100632AB6 /* Libraries */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF33C1E89FE1100632AB6 /* libGoogleAnalytics.a */,
-				42D9A0241EB03994008AF7AF /* libAdIdAccess.a */,
-			);
-			path = Libraries;
-			sourceTree = "<group>";
-		};
-		42BEF33D1E89FE1100632AB6 /* Sources */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF33E1E89FE1100632AB6 /* GAI.h */,
-				42BEF33F1E89FE1100632AB6 /* GAIDictionaryBuilder.h */,
-				42BEF3401E89FE1100632AB6 /* GAIEcommerceFields.h */,
-				42BEF3411E89FE1100632AB6 /* GAIEcommerceProduct.h */,
-				42BEF3421E89FE1100632AB6 /* GAIEcommerceProductAction.h */,
-				42BEF3431E89FE1100632AB6 /* GAIEcommercePromotion.h */,
-				42BEF3441E89FE1100632AB6 /* GAIFields.h */,
-				42BEF3451E89FE1100632AB6 /* GAILogger.h */,
-				42BEF3461E89FE1100632AB6 /* GAITrackedViewController.h */,
-				42BEF3471E89FE1100632AB6 /* GAITracker.h */,
-			);
-			path = Sources;
-			sourceTree = "<group>";
-		};
-		42BEF3481E89FE1100632AB6 /* GoogleToolboxForMac */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3491E89FE1100632AB6 /* Foundation */,
-				42BEF34C1E89FE1100632AB6 /* GTMDefines.h */,
-				42BEF34E1E89FE1100632AB6 /* README.md */,
-			);
-			path = GoogleToolboxForMac;
-			sourceTree = "<group>";
-		};
-		42BEF3491E89FE1100632AB6 /* Foundation */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF34A1E89FE1100632AB6 /* GTMNSData+zlib.h */,
-				42BEF34B1E89FE1100632AB6 /* GTMNSData+zlib.m */,
-			);
-			path = Foundation;
-			sourceTree = "<group>";
-		};
 		42BEF35B1E89FECC00632AB6 /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
@@ -1342,6 +1132,7 @@
 		713F76AF1929F4A7006A7305 /* iSales-TRADESHOW */ = {
 			isa = PBXGroup;
 			children = (
+				3CBC872C2A4EBEF300978758 /* ScanRefreshStock.h */,
 				71DF742C1C57567800F2789C /* TRADESHOW */,
 				712AFEE31DBDAEA000254965 /* PDFResource */,
 				716387C71953CDB4006E65E6 /* utils */,
@@ -1557,7 +1348,6 @@
 				71C1D84D1F456CAA00CEA1C9 /* HWWeakTimer.m */,
 				3C9FFA9F274799040067830C /* RADataProvider.h */,
 				3C9FFAA0274799040067830C /* RADataProvider.m */,
-				42BEF3211E89FE1100632AB6 /* GoogleAnalytics */,
 				4289809B1E24B526005F1BD8 /* JKTimer */,
 				4289805A1E249375005F1BD8 /* UIColor+HEX */,
 				4289803C1E249339005F1BD8 /* JKLock */,
@@ -2039,7 +1829,8 @@
 		713F769E1929F4A7006A7305 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 1200;
+				BuildIndependentTargetsInParallel = YES;
+				LastUpgradeCheck = 1430;
 				ORGANIZATIONNAME = "United Software Applications, Inc";
 				TargetAttributes = {
 					713F76A51929F4A7006A7305 = {
@@ -2164,7 +1955,6 @@
 				424A02D11FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m in Sources */,
 				7162A5C11C5873BB00AB630E /* FilterCellCadedate.m in Sources */,
 				3C9FFA8A274798810067830C /* MonthPickerViewController.m in Sources */,
-				42BEF3581E89FE1200632AB6 /* GTMNSData+zlib.m in Sources */,
 				71DF742B1C57560600F2789C /* Reachability.m in Sources */,
 				7162A5701C58728D00AB630E /* DetailHeaderCell.m in Sources */,
 				71BBA2271CEAC16000C91DED /* ZipArchive.mm in Sources */,
@@ -2191,7 +1981,6 @@
 				7162A5E01C5876E300AB630E /* SettingViewController.m in Sources */,
 				712AFEDB1DBA050200254965 /* LineDrawable.m in Sources */,
 				71DF748B1C57608F00F2789C /* SimpleGrid.m in Sources */,
-				42BEF3621E8A005800632AB6 /* GoogleAnalyst.m in Sources */,
 				7162A5171C58704600AB630E /* BundleModelViewController.m in Sources */,
 				7162A5411C58719D00AB630E /* RATreeNode.m in Sources */,
 				7162A5251C58706C00AB630E /* CategoryCellSmall.m in Sources */,
@@ -2224,7 +2013,6 @@
 				716AF8E11D7AA0E0001188E0 /* SelectUploadOrderViewController.m in Sources */,
 				712AFEDF1DBA050200254965 /* TextDrawable.m in Sources */,
 				7162A5611C58724700AB630E /* CustomerInfoViewController.m in Sources */,
-				42BEF3531E89FE1200632AB6 /* README.md in Sources */,
 				428980471E249339005F1BD8 /* JKLockController.m in Sources */,
 				7162A5731C58728D00AB630E /* DetailTopicCell.m in Sources */,
 				3C9FFA722747981F0067830C /* CommonEditorCellLabel.m in Sources */,
@@ -2292,7 +2080,6 @@
 				7141DD521C57459B00F7DF59 /* qrinput.c in Sources */,
 				7162A5601C58724700AB630E /* CustomerEditViewController.m in Sources */,
 				7162A5DC1C5876E300AB630E /* LoginViewController.m in Sources */,
-				42BEF3561E89FE1200632AB6 /* README.md in Sources */,
 				3C9FFA9A274798BB0067830C /* EnumSelectAndSortViewController.m in Sources */,
 				3C9FFA4B274797200067830C /* TouchImageView.m in Sources */,
 				4289805D1E249375005F1BD8 /* UIColor+JK_HEX.m in Sources */,
@@ -2317,8 +2104,6 @@
 				7162A5471C58719D00AB630E /* RATreeView+Private.m in Sources */,
 				428980041E2490C1005F1BD8 /* NotificationNameCenter.m in Sources */,
 				4289802C1E2492D2005F1BD8 /* CategoryPriceViewController.m in Sources */,
-				42BEF3511E89FE1200632AB6 /* CHANGELOG.md in Sources */,
-				42BEF35A1E89FE1200632AB6 /* README.md in Sources */,
 				71DF748D1C57608F00F2789C /* TouchLabel.m in Sources */,
 				428980171E24924D005F1BD8 /* SortItemViewController.m in Sources */,
 				3C2F99AF237BE1420000808F /* PortfolioListTableViewCell.m in Sources */,

+ 1 - 1
RedAnt ERP Mobile/iSales-TRADESHOW/config.h

@@ -8,7 +8,7 @@
 
 #ifndef RedAnt_ERP_Mobile_config_h
 #define RedAnt_ERP_Mobile_config_h
-#define BUILD_UWAVER
+#define BUILD_USAI
 #define BACKORDER_PROCESS // 允许backorder process
 #define JSON_TIMEOUT 60
 # ifdef DEBUG

+ 5 - 12
RedAnt ERP Mobile/iSales-UNITED WAVER.xcodeproj/project.pbxproj

@@ -3,7 +3,7 @@
 	archiveVersion = 1;
 	classes = {
 	};
-	objectVersion = 46;
+	objectVersion = 53;
 	objects = {
 
 /* Begin PBXBuildFile section */
@@ -91,11 +91,6 @@
 		4295AE1C1FE74D46007BE365 /* CommonEditorAutoCompleteView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295AE1A1FE74D46007BE365 /* CommonEditorAutoCompleteView.m */; };
 		4295AE1D1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4295AE1B1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib */; };
 		42B309791E45BA32007AFC62 /* status_filter_cadedate_po.json in Resources */ = {isa = PBXBuildFile; fileRef = 42B309781E45BA32007AFC62 /* status_filter_cadedate_po.json */; };
-		42BEF34F1E89FE1100632AB6 /* FirebaseAnalytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF3241E89FE1100632AB6 /* FirebaseAnalytics.framework */; };
-		42BEF3501E89FE1100632AB6 /* FirebaseCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF3271E89FE1100632AB6 /* FirebaseCore.framework */; };
-		42BEF3521E89FE1200632AB6 /* FirebaseInstanceID.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF32B1E89FE1100632AB6 /* FirebaseInstanceID.framework */; };
-		42BEF3541E89FE1200632AB6 /* GGLAnalytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF32F1E89FE1100632AB6 /* GGLAnalytics.framework */; };
-		42BEF3551E89FE1200632AB6 /* GGLCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF3301E89FE1100632AB6 /* GGLCore.framework */; };
 		42BEF3571E89FE1200632AB6 /* libGoogleAnalytics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF33C1E89FE1100632AB6 /* libGoogleAnalytics.a */; };
 		42BEF3581E89FE1200632AB6 /* GTMNSData+zlib.m in Sources */ = {isa = PBXBuildFile; fileRef = 42BEF34B1E89FE1100632AB6 /* GTMNSData+zlib.m */; };
 		42BEF35D1E89FECD00632AB6 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF35C1E89FECD00632AB6 /* SystemConfiguration.framework */; };
@@ -399,6 +394,7 @@
 		3C9FFA32274796920067830C /* VideoPreviewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoPreviewCell.h; sourceTree = "<group>"; };
 		3C9FFA37274796A00067830C /* ContentPreviewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContentPreviewController.m; sourceTree = "<group>"; };
 		3C9FFA38274796A00067830C /* ContentPreviewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentPreviewController.h; sourceTree = "<group>"; };
+		3CBC872D2A4EBEFE00978758 /* ScanRefreshStock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ScanRefreshStock.h; path = common/ScanRefreshStock.h; sourceTree = SOURCE_ROOT; };
 		3CC7E74F23C4133900BE5561 /* RAPDFViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RAPDFViewController.h; path = "../../common/WK PDF+Web/RAPDFViewController.h"; sourceTree = "<group>"; };
 		3CC7E75023C4133900BE5561 /* RAPDFViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAPDFViewController.m; path = "../../common/WK PDF+Web/RAPDFViewController.m"; sourceTree = "<group>"; };
 		3CC7E75123C4133900BE5561 /* WebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WebViewController.m; path = "../../common/WK PDF+Web/WebViewController.m"; sourceTree = "<group>"; };
@@ -862,20 +858,15 @@
 				42BEF35D1E89FECD00632AB6 /* SystemConfiguration.framework in Frameworks */,
 				71BBA2291CEAC17E00C91DED /* libz.tbd in Frameworks */,
 				7187162C1C43428100F25860 /* libScanApiCore.a in Frameworks */,
-				42BEF3551E89FE1200632AB6 /* GGLCore.framework in Frameworks */,
 				718716291C433DA400F25860 /* AVFoundation.framework in Frameworks */,
 				718716271C433D9700F25860 /* AudioToolbox.framework in Frameworks */,
-				42BEF3541E89FE1200632AB6 /* GGLAnalytics.framework in Frameworks */,
-				42BEF3501E89FE1100632AB6 /* FirebaseCore.framework in Frameworks */,
 				718716251C433D8B00F25860 /* ExternalAccessory.framework in Frameworks */,
 				716961B519594E1000B19FB4 /* libsqlite3.dylib in Frameworks */,
-				42BEF3521E89FE1200632AB6 /* FirebaseInstanceID.framework in Frameworks */,
 				71DEE876192DE00E003F645F /* Accelerate.framework in Frameworks */,
 				71DEE874192DE003003F645F /* QuartzCore.framework in Frameworks */,
 				713F76AC1929F4A7006A7305 /* CoreGraphics.framework in Frameworks */,
 				713F76AE1929F4A7006A7305 /* UIKit.framework in Frameworks */,
 				713F76AA1929F4A7006A7305 /* Foundation.framework in Frameworks */,
-				42BEF34F1E89FE1100632AB6 /* FirebaseAnalytics.framework in Frameworks */,
 				42BEF3571E89FE1200632AB6 /* libGoogleAnalytics.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1343,6 +1334,7 @@
 		713F76AF1929F4A7006A7305 /* iSales-UWAVER */ = {
 			isa = PBXGroup;
 			children = (
+				3CBC872D2A4EBEFE00978758 /* ScanRefreshStock.h */,
 				71DF742C1C57567800F2789C /* UWAVER */,
 				712AFEE31DBDAEA000254965 /* PDFResource */,
 				716387C71953CDB4006E65E6 /* utils */,
@@ -2043,7 +2035,8 @@
 		713F769E1929F4A7006A7305 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 1200;
+				BuildIndependentTargetsInParallel = YES;
+				LastUpgradeCheck = 1430;
 				ORGANIZATIONNAME = "United Software Applications, Inc";
 				TargetAttributes = {
 					713F76A51929F4A7006A7305 = {

+ 5 - 212
RedAnt ERP Mobile/iSales-USAI.xcodeproj/project.pbxproj

@@ -3,7 +3,7 @@
 	archiveVersion = 1;
 	classes = {
 	};
-	objectVersion = 46;
+	objectVersion = 53;
 	objects = {
 
 /* Begin PBXBuildFile section */
@@ -92,19 +92,10 @@
 		4295AE1C1FE74D46007BE365 /* CommonEditorAutoCompleteView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4295AE1A1FE74D46007BE365 /* CommonEditorAutoCompleteView.m */; };
 		4295AE1D1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4295AE1B1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib */; };
 		42B309791E45BA32007AFC62 /* status_filter_cadedate_po.json in Resources */ = {isa = PBXBuildFile; fileRef = 42B309781E45BA32007AFC62 /* status_filter_cadedate_po.json */; };
-		42BEF34F1E89FE1100632AB6 /* FirebaseAnalytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF3241E89FE1100632AB6 /* FirebaseAnalytics.framework */; };
-		42BEF3501E89FE1100632AB6 /* FirebaseCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF3271E89FE1100632AB6 /* FirebaseCore.framework */; };
-		42BEF3521E89FE1200632AB6 /* FirebaseInstanceID.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF32B1E89FE1100632AB6 /* FirebaseInstanceID.framework */; };
-		42BEF3541E89FE1200632AB6 /* GGLAnalytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF32F1E89FE1100632AB6 /* GGLAnalytics.framework */; };
-		42BEF3551E89FE1200632AB6 /* GGLCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF3301E89FE1100632AB6 /* GGLCore.framework */; };
-		42BEF3571E89FE1200632AB6 /* libGoogleAnalytics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF33C1E89FE1100632AB6 /* libGoogleAnalytics.a */; };
-		42BEF3581E89FE1200632AB6 /* GTMNSData+zlib.m in Sources */ = {isa = PBXBuildFile; fileRef = 42BEF34B1E89FE1100632AB6 /* GTMNSData+zlib.m */; };
 		42BEF35D1E89FECD00632AB6 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF35C1E89FECD00632AB6 /* SystemConfiguration.framework */; };
 		42BEF35F1E89FEE300632AB6 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42BEF35E1E89FEE300632AB6 /* CoreData.framework */; };
-		42BEF3621E8A005800632AB6 /* GoogleAnalyst.m in Sources */ = {isa = PBXBuildFile; fileRef = 42BEF3611E8A005800632AB6 /* GoogleAnalyst.m */; };
 		42BF67CC1E5179970081F90A /* ERPUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 42BF67CB1E5179970081F90A /* ERPUtils.m */; };
 		42D9A0231EB02DA6008AF7AF /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42D9A0221EB02DA6008AF7AF /* AdSupport.framework */; };
-		42D9A0251EB03994008AF7AF /* libAdIdAccess.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42D9A0241EB03994008AF7AF /* libAdIdAccess.a */; };
 		42DC12F11F0CD98E00A4C011 /* OrderDetailPickInfoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 42DC12F01F0CD98E00A4C011 /* OrderDetailPickInfoCell.m */; };
 		42E489611EE63F4E007256A0 /* more_color_64.png in Resources */ = {isa = PBXBuildFile; fileRef = 42E489601EE63F4E007256A0 /* more_color_64.png */; };
 		42FD1A031FBD1A3000C5D9A8 /* RAOrderPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 42FD1A021FBD1A3000C5D9A8 /* RAOrderPreviewController.m */; };
@@ -403,6 +394,7 @@
 		3C70C0882A2DC256008C2400 /* RAPopviewContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RAPopviewContainer.m; sourceTree = "<group>"; };
 		3C7E5A8C237BDB0C006D0105 /* PortfolioListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PortfolioListViewController.m; path = common/Functions/portfolio/PortfolioListViewController.m; sourceTree = SOURCE_ROOT; };
 		3C7E5A8D237BDB0C006D0105 /* PortfolioListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PortfolioListViewController.h; path = common/Functions/portfolio/PortfolioListViewController.h; sourceTree = SOURCE_ROOT; };
+		3CBC872E2A4EBF0700978758 /* ScanRefreshStock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ScanRefreshStock.h; path = common/ScanRefreshStock.h; sourceTree = SOURCE_ROOT; };
 		3CC1122A279163F4004ACA57 /* offline_order_new_contact.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = offline_order_new_contact.json; path = common/Functions/contact/offline_order_new_contact.json; sourceTree = SOURCE_ROOT; };
 		3CDDB25A273A564200681F78 /* DefaultTableHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DefaultTableHeaderView.m; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.m; sourceTree = "<group>"; };
 		3CDDB25B273A564200681F78 /* DefaultTableHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DefaultTableHeaderView.h; path = ../../common/customUI/commoneditor/DefaultTableHeaderView.h; sourceTree = "<group>"; };
@@ -456,43 +448,11 @@
 		4295AE1A1FE74D46007BE365 /* CommonEditorAutoCompleteView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CommonEditorAutoCompleteView.m; path = ../../common/customUI/commoneditor/CommonEditorAutoCompleteView.m; sourceTree = "<group>"; };
 		4295AE1B1FE74D46007BE365 /* CommonEditorAutoCompleteView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CommonEditorAutoCompleteView.xib; path = ../../common/customUI/commoneditor/CommonEditorAutoCompleteView.xib; sourceTree = "<group>"; };
 		42B309781E45BA32007AFC62 /* status_filter_cadedate_po.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = status_filter_cadedate_po.json; path = common/Functions/order/status_filter_cadedate_po.json; sourceTree = SOURCE_ROOT; };
-		42BEF3241E89FE1100632AB6 /* FirebaseAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseAnalytics.framework; sourceTree = "<group>"; };
-		42BEF3271E89FE1100632AB6 /* FirebaseCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseCore.framework; sourceTree = "<group>"; };
-		42BEF3291E89FE1100632AB6 /* CHANGELOG.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = "<group>"; };
-		42BEF32B1E89FE1100632AB6 /* FirebaseInstanceID.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseInstanceID.framework; sourceTree = "<group>"; };
-		42BEF32C1E89FE1100632AB6 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
-		42BEF32F1E89FE1100632AB6 /* GGLAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GGLAnalytics.framework; sourceTree = "<group>"; };
-		42BEF3301E89FE1100632AB6 /* GGLCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GGLCore.framework; sourceTree = "<group>"; };
-		42BEF3321E89FE1100632AB6 /* Analytics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Analytics.h; sourceTree = "<group>"; };
-		42BEF3331E89FE1100632AB6 /* Core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Core.h; sourceTree = "<group>"; };
-		42BEF3341E89FE1100632AB6 /* module.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = "<group>"; };
-		42BEF3361E89FE1100632AB6 /* Analytics-Module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Analytics-Module.h"; sourceTree = "<group>"; };
-		42BEF3371E89FE1100632AB6 /* Core-Module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Core-Module.h"; sourceTree = "<group>"; };
-		42BEF3381E89FE1100632AB6 /* SignIn-Module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SignIn-Module.h"; sourceTree = "<group>"; };
-		42BEF3391E89FE1100632AB6 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
-		42BEF33C1E89FE1100632AB6 /* libGoogleAnalytics.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libGoogleAnalytics.a; sourceTree = "<group>"; };
-		42BEF33E1E89FE1100632AB6 /* GAI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAI.h; sourceTree = "<group>"; };
-		42BEF33F1E89FE1100632AB6 /* GAIDictionaryBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIDictionaryBuilder.h; sourceTree = "<group>"; };
-		42BEF3401E89FE1100632AB6 /* GAIEcommerceFields.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommerceFields.h; sourceTree = "<group>"; };
-		42BEF3411E89FE1100632AB6 /* GAIEcommerceProduct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommerceProduct.h; sourceTree = "<group>"; };
-		42BEF3421E89FE1100632AB6 /* GAIEcommerceProductAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommerceProductAction.h; sourceTree = "<group>"; };
-		42BEF3431E89FE1100632AB6 /* GAIEcommercePromotion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommercePromotion.h; sourceTree = "<group>"; };
-		42BEF3441E89FE1100632AB6 /* GAIFields.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIFields.h; sourceTree = "<group>"; };
-		42BEF3451E89FE1100632AB6 /* GAILogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAILogger.h; sourceTree = "<group>"; };
-		42BEF3461E89FE1100632AB6 /* GAITrackedViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAITrackedViewController.h; sourceTree = "<group>"; };
-		42BEF3471E89FE1100632AB6 /* GAITracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAITracker.h; sourceTree = "<group>"; };
-		42BEF34A1E89FE1100632AB6 /* GTMNSData+zlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "GTMNSData+zlib.h"; sourceTree = "<group>"; };
-		42BEF34B1E89FE1100632AB6 /* GTMNSData+zlib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "GTMNSData+zlib.m"; sourceTree = "<group>"; };
-		42BEF34C1E89FE1100632AB6 /* GTMDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMDefines.h; sourceTree = "<group>"; };
-		42BEF34E1E89FE1100632AB6 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
 		42BEF35C1E89FECD00632AB6 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
 		42BEF35E1E89FEE300632AB6 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
-		42BEF3601E8A005800632AB6 /* GoogleAnalyst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GoogleAnalyst.h; sourceTree = "<group>"; };
-		42BEF3611E8A005800632AB6 /* GoogleAnalyst.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GoogleAnalyst.m; sourceTree = "<group>"; };
 		42BF67CA1E5179970081F90A /* ERPUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ERPUtils.h; path = common/ERPUtils.h; sourceTree = SOURCE_ROOT; };
 		42BF67CB1E5179970081F90A /* ERPUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ERPUtils.m; path = common/ERPUtils.m; sourceTree = SOURCE_ROOT; };
 		42D9A0221EB02DA6008AF7AF /* AdSupport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdSupport.framework; path = System/Library/Frameworks/AdSupport.framework; sourceTree = SDKROOT; };
-		42D9A0241EB03994008AF7AF /* libAdIdAccess.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libAdIdAccess.a; sourceTree = "<group>"; };
 		42DC12EF1F0CD98E00A4C011 /* OrderDetailPickInfoCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderDetailPickInfoCell.h; path = common/Functions/order/OrderDetailPickInfoCell.h; sourceTree = SOURCE_ROOT; };
 		42DC12F01F0CD98E00A4C011 /* OrderDetailPickInfoCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderDetailPickInfoCell.m; path = common/Functions/order/OrderDetailPickInfoCell.m; sourceTree = SOURCE_ROOT; };
 		42E489601EE63F4E007256A0 /* more_color_64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = more_color_64.png; sourceTree = "<group>"; };
@@ -859,27 +819,20 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				42D9A0251EB03994008AF7AF /* libAdIdAccess.a in Frameworks */,
 				42D9A0231EB02DA6008AF7AF /* AdSupport.framework in Frameworks */,
 				42BEF35F1E89FEE300632AB6 /* CoreData.framework in Frameworks */,
 				42BEF35D1E89FECD00632AB6 /* SystemConfiguration.framework in Frameworks */,
 				71BBA2291CEAC17E00C91DED /* libz.tbd in Frameworks */,
 				7187162C1C43428100F25860 /* libScanApiCore.a in Frameworks */,
-				42BEF3551E89FE1200632AB6 /* GGLCore.framework in Frameworks */,
 				718716291C433DA400F25860 /* AVFoundation.framework in Frameworks */,
 				718716271C433D9700F25860 /* AudioToolbox.framework in Frameworks */,
-				42BEF3541E89FE1200632AB6 /* GGLAnalytics.framework in Frameworks */,
-				42BEF3501E89FE1100632AB6 /* FirebaseCore.framework in Frameworks */,
 				718716251C433D8B00F25860 /* ExternalAccessory.framework in Frameworks */,
 				716961B519594E1000B19FB4 /* libsqlite3.dylib in Frameworks */,
-				42BEF3521E89FE1200632AB6 /* FirebaseInstanceID.framework in Frameworks */,
 				71DEE876192DE00E003F645F /* Accelerate.framework in Frameworks */,
 				71DEE874192DE003003F645F /* QuartzCore.framework in Frameworks */,
 				713F76AC1929F4A7006A7305 /* CoreGraphics.framework in Frameworks */,
 				713F76AE1929F4A7006A7305 /* UIKit.framework in Frameworks */,
 				713F76AA1929F4A7006A7305 /* Foundation.framework in Frameworks */,
-				42BEF34F1E89FE1100632AB6 /* FirebaseAnalytics.framework in Frameworks */,
-				42BEF3571E89FE1200632AB6 /* libGoogleAnalytics.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1046,165 +999,6 @@
 			name = AutoComplete;
 			sourceTree = "<group>";
 		};
-		42BEF3211E89FE1100632AB6 /* GoogleAnalytics */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3601E8A005800632AB6 /* GoogleAnalyst.h */,
-				42BEF3611E8A005800632AB6 /* GoogleAnalyst.m */,
-				42BEF3221E89FE1100632AB6 /* FirebaseAnalytics */,
-				42BEF3251E89FE1100632AB6 /* FirebaseCore */,
-				42BEF3281E89FE1100632AB6 /* FirebaseInstanceID */,
-				42BEF32D1E89FE1100632AB6 /* Google */,
-				42BEF33A1E89FE1100632AB6 /* GoogleAnalytics */,
-				42BEF3481E89FE1100632AB6 /* GoogleToolboxForMac */,
-			);
-			path = GoogleAnalytics;
-			sourceTree = SOURCE_ROOT;
-		};
-		42BEF3221E89FE1100632AB6 /* FirebaseAnalytics */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3231E89FE1100632AB6 /* Frameworks */,
-			);
-			path = FirebaseAnalytics;
-			sourceTree = "<group>";
-		};
-		42BEF3231E89FE1100632AB6 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3241E89FE1100632AB6 /* FirebaseAnalytics.framework */,
-			);
-			path = Frameworks;
-			sourceTree = "<group>";
-		};
-		42BEF3251E89FE1100632AB6 /* FirebaseCore */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3261E89FE1100632AB6 /* Frameworks */,
-			);
-			path = FirebaseCore;
-			sourceTree = "<group>";
-		};
-		42BEF3261E89FE1100632AB6 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3271E89FE1100632AB6 /* FirebaseCore.framework */,
-			);
-			path = Frameworks;
-			sourceTree = "<group>";
-		};
-		42BEF3281E89FE1100632AB6 /* FirebaseInstanceID */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3291E89FE1100632AB6 /* CHANGELOG.md */,
-				42BEF32A1E89FE1100632AB6 /* Frameworks */,
-				42BEF32C1E89FE1100632AB6 /* README.md */,
-			);
-			path = FirebaseInstanceID;
-			sourceTree = "<group>";
-		};
-		42BEF32A1E89FE1100632AB6 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF32B1E89FE1100632AB6 /* FirebaseInstanceID.framework */,
-			);
-			path = Frameworks;
-			sourceTree = "<group>";
-		};
-		42BEF32D1E89FE1100632AB6 /* Google */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF32E1E89FE1100632AB6 /* Frameworks */,
-				42BEF3311E89FE1100632AB6 /* Headers */,
-				42BEF3391E89FE1100632AB6 /* README.md */,
-			);
-			path = Google;
-			sourceTree = "<group>";
-		};
-		42BEF32E1E89FE1100632AB6 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF32F1E89FE1100632AB6 /* GGLAnalytics.framework */,
-				42BEF3301E89FE1100632AB6 /* GGLCore.framework */,
-			);
-			path = Frameworks;
-			sourceTree = "<group>";
-		};
-		42BEF3311E89FE1100632AB6 /* Headers */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3321E89FE1100632AB6 /* Analytics.h */,
-				42BEF3331E89FE1100632AB6 /* Core.h */,
-				42BEF3341E89FE1100632AB6 /* module.modulemap */,
-				42BEF3351E89FE1100632AB6 /* ModuleHeaders */,
-			);
-			path = Headers;
-			sourceTree = "<group>";
-		};
-		42BEF3351E89FE1100632AB6 /* ModuleHeaders */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3361E89FE1100632AB6 /* Analytics-Module.h */,
-				42BEF3371E89FE1100632AB6 /* Core-Module.h */,
-				42BEF3381E89FE1100632AB6 /* SignIn-Module.h */,
-			);
-			path = ModuleHeaders;
-			sourceTree = "<group>";
-		};
-		42BEF33A1E89FE1100632AB6 /* GoogleAnalytics */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF33B1E89FE1100632AB6 /* Libraries */,
-				42BEF33D1E89FE1100632AB6 /* Sources */,
-			);
-			path = GoogleAnalytics;
-			sourceTree = "<group>";
-		};
-		42BEF33B1E89FE1100632AB6 /* Libraries */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF33C1E89FE1100632AB6 /* libGoogleAnalytics.a */,
-				42D9A0241EB03994008AF7AF /* libAdIdAccess.a */,
-			);
-			path = Libraries;
-			sourceTree = "<group>";
-		};
-		42BEF33D1E89FE1100632AB6 /* Sources */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF33E1E89FE1100632AB6 /* GAI.h */,
-				42BEF33F1E89FE1100632AB6 /* GAIDictionaryBuilder.h */,
-				42BEF3401E89FE1100632AB6 /* GAIEcommerceFields.h */,
-				42BEF3411E89FE1100632AB6 /* GAIEcommerceProduct.h */,
-				42BEF3421E89FE1100632AB6 /* GAIEcommerceProductAction.h */,
-				42BEF3431E89FE1100632AB6 /* GAIEcommercePromotion.h */,
-				42BEF3441E89FE1100632AB6 /* GAIFields.h */,
-				42BEF3451E89FE1100632AB6 /* GAILogger.h */,
-				42BEF3461E89FE1100632AB6 /* GAITrackedViewController.h */,
-				42BEF3471E89FE1100632AB6 /* GAITracker.h */,
-			);
-			path = Sources;
-			sourceTree = "<group>";
-		};
-		42BEF3481E89FE1100632AB6 /* GoogleToolboxForMac */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF3491E89FE1100632AB6 /* Foundation */,
-				42BEF34C1E89FE1100632AB6 /* GTMDefines.h */,
-				42BEF34E1E89FE1100632AB6 /* README.md */,
-			);
-			path = GoogleToolboxForMac;
-			sourceTree = "<group>";
-		};
-		42BEF3491E89FE1100632AB6 /* Foundation */ = {
-			isa = PBXGroup;
-			children = (
-				42BEF34A1E89FE1100632AB6 /* GTMNSData+zlib.h */,
-				42BEF34B1E89FE1100632AB6 /* GTMNSData+zlib.m */,
-			);
-			path = Foundation;
-			sourceTree = "<group>";
-		};
 		42BEF35B1E89FECC00632AB6 /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
@@ -1344,6 +1138,7 @@
 		713F76AF1929F4A7006A7305 /* iSales-USAI */ = {
 			isa = PBXGroup;
 			children = (
+				3CBC872E2A4EBF0700978758 /* ScanRefreshStock.h */,
 				71DF742C1C57567800F2789C /* USAI */,
 				712AFEE31DBDAEA000254965 /* PDFResource */,
 				716387C71953CDB4006E65E6 /* utils */,
@@ -1556,7 +1351,6 @@
 				71DF74311C5757C800F2789C /* CommonUI */,
 				71C1D84C1F456CAA00CEA1C9 /* HWWeakTimer.h */,
 				71C1D84D1F456CAA00CEA1C9 /* HWWeakTimer.m */,
-				42BEF3211E89FE1100632AB6 /* GoogleAnalytics */,
 				4289809B1E24B526005F1BD8 /* JKTimer */,
 				4289805A1E249375005F1BD8 /* UIColor+HEX */,
 				4289803C1E249339005F1BD8 /* JKLock */,
@@ -2053,7 +1847,8 @@
 		713F769E1929F4A7006A7305 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 1330;
+				BuildIndependentTargetsInParallel = YES;
+				LastUpgradeCheck = 1430;
 				ORGANIZATIONNAME = "United Software Applications, Inc";
 				TargetAttributes = {
 					713F76A51929F4A7006A7305 = {
@@ -2182,7 +1977,6 @@
 				712AFED81DBA050200254965 /* GridDrawable.m in Sources */,
 				424A02D11FFB3A0B0088DC56 /* RABackOrderSubmitAlertController.m in Sources */,
 				7162A5C11C5873BB00AB630E /* FilterCellCadedate.m in Sources */,
-				42BEF3581E89FE1200632AB6 /* GTMNSData+zlib.m in Sources */,
 				3C2F99B8237BE1790000808F /* PortfolioListTableViewCell.m in Sources */,
 				71DF742B1C57560600F2789C /* Reachability.m in Sources */,
 				7162A5701C58728D00AB630E /* DetailHeaderCell.m in Sources */,
@@ -2205,7 +1999,6 @@
 				7162A5E01C5876E300AB630E /* SettingViewController.m in Sources */,
 				712AFEDB1DBA050200254965 /* LineDrawable.m in Sources */,
 				71DF748B1C57608F00F2789C /* SimpleGrid.m in Sources */,
-				42BEF3621E8A005800632AB6 /* GoogleAnalyst.m in Sources */,
 				7162A5171C58704600AB630E /* BundleModelViewController.m in Sources */,
 				7162A5411C58719D00AB630E /* RATreeNode.m in Sources */,
 				3C514947273D095900F78617 /* CommonEditorCellSwitch.m in Sources */,

+ 3 - 2
common/Camera/RACameraViewController.m

@@ -10,6 +10,7 @@
 #import <AVFoundation/AVFoundation.h>
 #import "RATakePhotoPreviewController.h"
 #import <CoreMotion/CoreMotion.h>
+#import "RAUtils.h"
 
 
 @interface RACameraViewController ()<AVCapturePhotoCaptureDelegate>
@@ -260,8 +261,8 @@
     if ([self camerAuthorization] && self.cameraInitial) {
         
         CGRect frame = self.previewContainer.bounds;
-        
-        BOOL isPortrait = self.interfaceOrientation == UIInterfaceOrientationPortrait || self.interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown;
+        UIInterfaceOrientation orientation =[RAUtils query_orientation:self];
+        BOOL isPortrait = /*self.interfaceOrientation*/orientation == UIInterfaceOrientationPortrait || /*self.interfaceOrientation*/orientation == UIInterfaceOrientationPortraitUpsideDown;
         // aspect ratio 3:4
         if (self.gravity == AVLayerVideoGravityResizeAspect) {
             

+ 1 - 4
common/InfinitePhoto/Controller/RAPhotoPreviewController.m

@@ -95,10 +95,7 @@
 
     if (@available(iOS 11, *)) {
         self.previewContainer.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
-    } else {
-        self.automaticallyAdjustsScrollViewInsets = NO;
-    }
-    
+    } 
     self.indicator.layer.cornerRadius = 20;
     self.indicator.layer.masksToBounds = YES;
     self.previewContainer.pagingEnabled = YES;

+ 5 - 0
common/RAUtils.m

@@ -1112,6 +1112,10 @@ done:
 
 +(UIInterfaceOrientation)query_orientation:(UIViewController*)vc
 {
+#if  __IPHONE_OS_VERSION_MIN_REQUIRED <130000
+    return [[UIApplication sharedApplication]statusBarOrientation];
+#else
+    
     NSArray *scenes=[[[UIApplication sharedApplication] connectedScenes] allObjects];
     NSArray *windows=[[scenes objectAtIndex:0] windows];
 
@@ -1119,6 +1123,7 @@ done:
 
     
     return [w.windowScene interfaceOrientation];
+#endif
 }
 
 + (CGSize)sizeWithFont:(NSString*)string font:(UIFont *)font constrainedToSize:(CGSize)maxsize lineBreakMode:(NSLineBreakMode)lineBreakMode

+ 65 - 7
common/ScannerViewController.m

@@ -58,12 +58,16 @@
     return false;
     
 }
-
--(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
+- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
 {
-    
-
-    [super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
+//    [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context)
+//    {
+//        UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
+//        // do whatever
+//    } completion:^(id<UIViewControllerTransitionCoordinatorContext> context)
+//    {
+//
+//    }];
     CGRect rect=self.view.bounds;
     
     DebugLog(@"%@",NSStringFromCGRect(self.focusZone.frame));
@@ -111,9 +115,63 @@
             break;
     }
     [CATransaction commit];
-
-    
+    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
 }
+//-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
+//{
+//    
+//
+//    [super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
+//    CGRect rect=self.view.bounds;
+//    
+//    DebugLog(@"%@",NSStringFromCGRect(self.focusZone.frame));
+//    //    rect.origin.y=rect.origin.y+40;
+//    //    rect.size.height = rect.size.height-40;
+//    
+//    
+//    
+//    
+//    
+//    
+//    
+//    [CATransaction begin];
+//    [CATransaction setAnimationDuration:0.5];
+//    [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
+////    [self updatePreviewLayerForOrientation:toInterfaceOrientation];
+//    _previewLayer.position = CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect));
+//    
+// //   self.backgroundView.highLightRect = CGRectInset(self.focusZone.frame,6,6);
+//    _previewLayer.bounds = rect;
+//    
+//    UIInterfaceOrientation orientation = [[UIApplication sharedApplication]statusBarOrientation];
+//    switch (orientation) {
+//            
+//            
+//            
+//        case UIInterfaceOrientationPortrait:
+//           // [_previewLayer setAffineTransform:CGAffineTransformMakeRotation(0)];
+//           
+//            _previewLayer.connection.videoOrientation=AVCaptureVideoOrientationPortrait;
+//            break;
+//        case UIInterfaceOrientationPortraitUpsideDown:
+//            //[_previewLayer setAffineTransform:CGAffineTransformMakeRotation(M_PI)];
+//            _previewLayer.connection.videoOrientation=AVCaptureVideoOrientationPortraitUpsideDown;
+//            break;
+//        case UIInterfaceOrientationLandscapeLeft:
+//           // [_previewLayer setAffineTransform:CGAffineTransformMakeRotation(M_PI/2)];
+//            _previewLayer.connection.videoOrientation=AVCaptureVideoOrientationLandscapeLeft;
+//            break;
+//        case UIInterfaceOrientationLandscapeRight:
+//           // [_previewLayer setAffineTransform:CGAffineTransformMakeRotation(-M_PI/2)];
+//            _previewLayer.connection.videoOrientation=AVCaptureVideoOrientationLandscapeRight;
+//            break;
+//        default:
+//            break;
+//    }
+//    [CATransaction commit];
+//
+//    
+//}
 //- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
 //{
 //    return UIInterfaceOrientationPortrait;

+ 5 - 0
common/customUI/UIView+Toast.m

@@ -374,7 +374,12 @@ static const NSString * CSToastQueueKey             = @"CSToastQueueKey";
         activityView.layer.shadowOffset = style.shadowOffset;
     }
     
+    
+#if  __IPHONE_OS_VERSION_MIN_REQUIRED <130000
     UIActivityIndicatorView *activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
+#else
+    UIActivityIndicatorView *activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleLarge];
+#endif
     activityIndicatorView.center = CGPointMake(activityView.bounds.size.width / 2, activityView.bounds.size.height / 2);
     [activityView addSubview:activityIndicatorView];
     [activityIndicatorView startAnimating];

部分文件因文件數量過多而無法顯示