Просмотр исходного кода

增加离线新建联系人的son文件,同时在OLDataProvider中增加offline_createContact:方法用于提供离线新建联系人的数据

Pen Li 9 лет назад
Родитель
Сommit
27ad96a734

+ 91 - 0
RedAnt ERP Mobile/HMLG Mobile.xcodeproj/xcuserdata/macmini1.xcuserdatad/xcschemes/HMLG Mobile.xcscheme

@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0730"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "7183E8431CF2913E00524787"
+               BuildableName = "HMLG Mobile.app"
+               BlueprintName = "HMLG Mobile"
+               ReferencedContainer = "container:HMLG Mobile.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7183E8431CF2913E00524787"
+            BuildableName = "HMLG Mobile.app"
+            BlueprintName = "HMLG Mobile"
+            ReferencedContainer = "container:HMLG Mobile.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7183E8431CF2913E00524787"
+            BuildableName = "HMLG Mobile.app"
+            BlueprintName = "HMLG Mobile"
+            ReferencedContainer = "container:HMLG Mobile.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "7183E8431CF2913E00524787"
+            BuildableName = "HMLG Mobile.app"
+            BlueprintName = "HMLG Mobile"
+            ReferencedContainer = "container:HMLG Mobile.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 22 - 0
RedAnt ERP Mobile/HMLG Mobile.xcodeproj/xcuserdata/macmini1.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>SchemeUserState</key>
+	<dict>
+		<key>HMLG Mobile.xcscheme</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>0</integer>
+		</dict>
+	</dict>
+	<key>SuppressBuildableAutocreation</key>
+	<dict>
+		<key>7183E8431CF2913E00524787</key>
+		<dict>
+			<key>primary</key>
+			<true/>
+		</dict>
+	</dict>
+</dict>
+</plist>

+ 80 - 0
RedAnt ERP Mobile/Pods/Pods.xcodeproj/xcuserdata/macmini1.xcuserdatad/xcschemes/AFNetworking.xcscheme

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0730"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "410B25DF16EA5C5B3E2698F74F9625FB"
+               BuildableName = "libAFNetworking.a"
+               BlueprintName = "AFNetworking"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "410B25DF16EA5C5B3E2698F74F9625FB"
+            BuildableName = "libAFNetworking.a"
+            BlueprintName = "AFNetworking"
+            ReferencedContainer = "container:Pods.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "410B25DF16EA5C5B3E2698F74F9625FB"
+            BuildableName = "libAFNetworking.a"
+            BlueprintName = "AFNetworking"
+            ReferencedContainer = "container:Pods.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 80 - 0
RedAnt ERP Mobile/Pods/Pods.xcodeproj/xcuserdata/macmini1.xcuserdatad/xcschemes/Pods.xcscheme

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0730"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "C6D66FE7D3AD8963382F17E79643E1B8"
+               BuildableName = "libPods.a"
+               BlueprintName = "Pods"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "C6D66FE7D3AD8963382F17E79643E1B8"
+            BuildableName = "libPods.a"
+            BlueprintName = "Pods"
+            ReferencedContainer = "container:Pods.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "C6D66FE7D3AD8963382F17E79643E1B8"
+            BuildableName = "libPods.a"
+            BlueprintName = "Pods"
+            ReferencedContainer = "container:Pods.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 32 - 0
RedAnt ERP Mobile/Pods/Pods.xcodeproj/xcuserdata/macmini1.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>SchemeUserState</key>
+	<dict>
+		<key>AFNetworking.xcscheme</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>2</integer>
+		</dict>
+		<key>Pods.xcscheme</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>3</integer>
+		</dict>
+	</dict>
+	<key>SuppressBuildableAutocreation</key>
+	<dict>
+		<key>410B25DF16EA5C5B3E2698F74F9625FB</key>
+		<dict>
+			<key>primary</key>
+			<true/>
+		</dict>
+		<key>C6D66FE7D3AD8963382F17E79643E1B8</key>
+		<dict>
+			<key>primary</key>
+			<true/>
+		</dict>
+	</dict>
+</dict>
+</plist>

BIN
RedAnt ERP Mobile/RedAnt ERP Mobile.xcworkspace/xcuserdata/macmini1.xcuserdatad/UserInterfaceState.xcuserstate


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

@@ -14,6 +14,14 @@
 +(NSDictionary*) offline_itemsearch :(NSMutableDictionary *) params;
 +(NSDictionary*) offline_model :(NSMutableDictionary *) params;
 
+/**
+ *  新建客户信息数据
+ *
+ *  @param params 指定需要哪些类型参数
+ *
+ *  @return 返回新建客户信息所需数据
+ */
++(NSDictionary *) offline_createContact:(NSMutableDictionary *) params;
 +(NSDictionary*) offline_contactlist :(NSMutableDictionary *) params;
 +(NSDictionary*) offline_contactinfo :(NSMutableDictionary *) params;
 +(NSDictionary*) offline_commoneditor_partialrefresh :(NSMutableDictionary *) params;

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

@@ -2584,4 +2584,136 @@
     return ret;
 }
 
+#pragma mark - Jack
+
+#pragma mark create new contact
++ (NSDictionary *)offline_getAllCountry {
+//    "val_227" : {
+//        "check" : 1,
+//        "value" : "US United States",
+//        "value_id" : "228"
+//    },
+    
+    NSMutableDictionary *dic = [NSMutableDictionary dictionary];
+    sqlite3 *db = [iSalesDB get_db];
+    
+    const char *sqlQuery = "select * from offline_country;";
+    sqlite3_stmt * statement;
+    
+    if (sqlite3_prepare_v2(db, sqlQuery, -1, &statement, nil) == SQLITE_OK) {
+        
+        while (sqlite3_step(statement) == SQLITE_ROW) {
+            char *name = (char *) sqlite3_column_text(statement, 1);
+            char *code = (char *) sqlite3_column_text(statement, 2);
+            
+            NSMutableDictionary *countryDic = [NSMutableDictionary dictionaryWithCapacity:2];
+            [countryDic setValue:[NSString stringWithUTF8String:name] forKey:@"value"];
+            [countryDic setValue:[NSString stringWithUTF8String:code] forKey:@"value_id"];
+            [countryDic setValue:[NSNumber numberWithInt:0] forKey:@"check"];
+            
+            NSString *key = [NSString stringWithFormat:@"val_%d",[[NSString stringWithUTF8String:code] integerValue] - 1];
+            [dic setValue:countryDic forKey:key];
+        }
+        
+        sqlite3_finalize(statement);
+    }
+    
+    sqlite3_close(db);
+    return dic;
+}
+
++ (NSDictionary *)offline_getStateByCountryCode:(NSString *)countryCode {
+    
+    NSMutableDictionary *dic = [NSMutableDictionary dictionary];
+    
+    sqlite3 *db = [iSalesDB get_db];
+    
+    NSString *sqlQuery = [NSString stringWithFormat:@"select * from offline_state where country_code = %@;",countryCode];
+    sqlite3_stmt * statement;
+    
+    if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK) {
+        int i = 0;
+        while (sqlite3_step(statement) == SQLITE_ROW) {
+            char *name = (char *) sqlite3_column_text(statement, 1); // value
+            char *code = (char *) sqlite3_column_text(statement, 2); // value_id
+            
+            NSMutableDictionary *stateDic = [NSMutableDictionary dictionaryWithCapacity:2];
+            [stateDic setValue:[NSString stringWithUTF8String:name] forKey:@"value"];
+            [stateDic setValue:[NSString stringWithUTF8String:code] forKey:@"value_id"];
+            [stateDic setValue:[NSNumber numberWithInt:0] forKey:@"check"];
+            
+            NSString *key = [NSString stringWithFormat:@"val_%d",i++];
+            [dic setValue:stateDic forKey:key];
+        }
+        
+        sqlite3_finalize(statement);
+    }
+    
+    sqlite3_close(db);
+    return dic;
+}
+
++ (NSDictionary *)offline_getPrice {
+    NSMutableDictionary *priceDic = [NSMutableDictionary dictionary];
+    
+    sqlite3 *db = [iSalesDB get_db];
+    NSString *sqlQuery = [NSString stringWithFormat:@"select * from price;"];
+    sqlite3_stmt * statement;
+    
+    if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK) {
+        while (sqlite3_step(statement) == SQLITE_ROW) {
+            char *name = (char *) sqlite3_column_text(statement, 1);
+            int type = sqlite3_column_int(statement, 2);
+            int orderBy = sqlite3_column_int(statement, 3);
+        }
+        
+        sqlite3_finalize(statement);
+    }
+
+    sqlite3_close(db);
+    return priceDic;
+}
+
++ (NSDictionary *)offline_createContact:(NSMutableDictionary *)params {
+    
+    NSString *path = [[NSBundle mainBundle] pathForResource:@"createContact.json" ofType:nil];
+    NSData *data = [NSData dataWithContentsOfFile:path];
+    NSMutableDictionary *ret = [[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil] mutableCopy];
+    
+    // country
+    NSDictionary *allCountry = [self offline_getAllCountry];
+    
+    NSString *key = nil;
+    NSString *countryCode = nil;
+    if ([params.allKeys containsObject:@"refresh_trigger"]) {
+        if([params[@"refresh_trigger"] isEqualToString:@"country"]) { // choose country
+            countryCode = params[@"country"];
+            key = [NSString stringWithFormat:@"val_%d",[countryCode integerValue] - 1];
+        }
+    } else {
+        // default: US United States
+        key = @"val_227";
+        countryCode = @"228";
+    }
+    
+    NSMutableDictionary *country = [allCountry objectForKey:key];
+    [country setValue:[NSNumber numberWithInt:1] forKey:@"check"];
+    
+    NSDictionary *section_0 = [ret objectForKey:@"section_0"];
+    NSDictionary *item_country = [section_0 objectForKey:@"item_5"];
+    [item_country setValue:allCountry forKey:@"cadedate"];
+    
+    // state
+    NSDictionary *allState = [self offline_getStateByCountryCode:countryCode];
+    NSMutableDictionary *item_state = [section_0 objectForKey:@"item_11"];
+    [item_state setValue:allState forKey:@"cadedate"];
+    
+    // price type
+    
+    
+    // Sales Rep
+    
+    return ret;
+}
+
 @end

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

@@ -7,6 +7,7 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
+		423A4ADC1D503A53005ECE4A /* createContact.json in Resources */ = {isa = PBXBuildFile; fileRef = 423A4ADB1D503A53005ECE4A /* createContact.json */; };
 		710274251CC606C4009FD219 /* UserListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 710274241CC606C4009FD219 /* UserListViewController.m */; };
 		7111E5721C76C557004763B3 /* customer_info_template_edit.json in Resources */ = {isa = PBXBuildFile; fileRef = 7111E5711C76C557004763B3 /* customer_info_template_edit.json */; };
 		71131F921CA1372300DBF6E2 /* SimplifiedBuyingProgramViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71131F911CA1372300DBF6E2 /* SimplifiedBuyingProgramViewController.m */; };
@@ -187,6 +188,7 @@
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
+		423A4ADB1D503A53005ECE4A /* createContact.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = createContact.json; sourceTree = "<group>"; };
 		56528CA8B8A71F67C2EE5366 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = "<group>"; };
 		6C826876B24EFB83AC94A464 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = "<group>"; };
 		710274231CC606C4009FD219 /* UserListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UserListViewController.h; path = common/Functions/sidemenu/UserListViewController.h; sourceTree = SOURCE_ROOT; };
@@ -794,6 +796,7 @@
 				71FFBBE81C60894900D91DC2 /* iSalesNetwork.m */,
 				71BF06F91D2F3CAC00981938 /* OLDataProvider.h */,
 				71BF06FA1D2F3CAC00981938 /* OLDataProvider.m */,
+				423A4ADB1D503A53005ECE4A /* createContact.json */,
 			);
 			name = utils;
 			sourceTree = "<group>";
@@ -1252,6 +1255,7 @@
 				7141DD3D1C5726B700F7DF59 /* softScanBeep.wav in Resources */,
 				7141DD341C57269B00F7DF59 /* include in Resources */,
 				7141DD601C5747CE00F7DF59 /* LICENSE in Resources */,
+				423A4ADC1D503A53005ECE4A /* createContact.json in Resources */,
 				7111E5721C76C557004763B3 /* customer_info_template_edit.json in Resources */,
 				71DF74961C57614C00F2789C /* PhotoBorder@2x.png in Resources */,
 				7162A55E1C58724700AB630E /* customer_advanced_search.json in Resources */,

+ 91 - 0
RedAnt ERP Mobile/iSales-NPD.xcodeproj/xcuserdata/macmini1.xcuserdatad/xcschemes/iSales-NPD.xcscheme

@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0730"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "713F76A51929F4A7006A7305"
+               BuildableName = "NPD Mobile.app"
+               BlueprintName = "iSales-NPD"
+               ReferencedContainer = "container:iSales-NPD.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "713F76A51929F4A7006A7305"
+            BuildableName = "NPD Mobile.app"
+            BlueprintName = "iSales-NPD"
+            ReferencedContainer = "container:iSales-NPD.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "713F76A51929F4A7006A7305"
+            BuildableName = "NPD Mobile.app"
+            BlueprintName = "iSales-NPD"
+            ReferencedContainer = "container:iSales-NPD.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "713F76A51929F4A7006A7305"
+            BuildableName = "NPD Mobile.app"
+            BlueprintName = "iSales-NPD"
+            ReferencedContainer = "container:iSales-NPD.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 22 - 0
RedAnt ERP Mobile/iSales-NPD.xcodeproj/xcuserdata/macmini1.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>SchemeUserState</key>
+	<dict>
+		<key>iSales-NPD.xcscheme</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>1</integer>
+		</dict>
+	</dict>
+	<key>SuppressBuildableAutocreation</key>
+	<dict>
+		<key>713F76A51929F4A7006A7305</key>
+		<dict>
+			<key>primary</key>
+			<true/>
+		</dict>
+	</dict>
+</dict>
+</plist>

+ 164 - 0
RedAnt ERP Mobile/iSales-NPD/createContact.json

@@ -0,0 +1,164 @@
+{
+  "min_ver" : "160409",
+  "mode" : "Regular Mode",
+  "result" : 2,
+  "section_0" : {
+    "count" : 18,
+    "item_0" : {
+      "aname" : "Company Name",
+      "control" : "edit",
+      "keyboard" : "text",
+      "name" : "company",
+      "required" : "true",
+      "value" : ""
+    },
+    "item_1" : {
+      "aname" : "Contact ID",
+      "control" : "img",
+      "img_url_0" : "",
+      "img_url_1" : "",
+      "img_url_2" : "",
+      "name" : "business_card",
+      "value" : ""
+    },
+    "item_10" : {
+      "aname" : "Zip Code",
+      "control" : "edit",
+      "keyboard" : "text",
+      "name" : "zipcode",
+      "refresh" : 1,
+      "restore" : {
+        "count" : 3,
+        "item_0" : "state",
+        "item_1" : "city",
+        "item_2" : "country"
+      },
+      "value" : ""
+    },
+    "item_11" : {
+      "aname" : "State/Province",
+      "cadedate" : "",
+      "control" : "enum",
+      "name" : "state",
+      "single_select" : "true"
+    },
+    "item_12" : {
+      "aname" : "City",
+      "control" : "edit",
+      "keyboard" : "text",
+      "name" : "city",
+      "value" : ""
+    },
+    "item_13" : {
+      "aname" : "Contact First Name",
+      "capital" : "1",
+      "control" : "edit",
+      "keyboard" : "text",
+      "name" : "firstname",
+      "value" : ""
+    },
+    "item_14" : {
+      "aname" : "Contact Last Name",
+      "capital" : "1",
+      "control" : "edit",
+      "keyboard" : "text",
+      "name" : "lastname",
+      "value" : ""
+    },
+    "item_15" : {
+      "aname" : "Fax",
+      "control" : "edit",
+      "keyboard" : "text",
+      "name" : "fax",
+      "value" : ""
+    },
+    "item_16" : {
+      "aname" : "Contact Notes",
+      "control" : "text_view",
+      "name" : "contact_notes",
+      "value" : ""
+    },
+    "item_17" : {
+      "aname" : "Sales Rep",
+      "cadedate" : "",
+      "control" : "enum",
+      "max" : "3",
+      "name" : "sales_rep",
+      "single_select" : "true"
+    },
+    "item_2" : {
+      "aname" : "Price Type",
+      "cadedate" : "",
+      "control" : "enum",
+      "name" : "price_name",
+      "required" : "true",
+      "single_select" : "true"
+    },
+    "item_3" : {
+      "aname" : "Email",
+      "control" : "edit",
+      "keyboard" : "text",
+      "name" : "email",
+      "required" : "true",
+      "value" : ""
+    },
+    "item_4" : {
+      "aname" : "Phone",
+      "control" : "edit",
+      "keyboard" : "text",
+      "name" : "phone",
+      "required" : "true",
+      "value" : ""
+    },
+    "item_5" : {
+      "aname" : "Country",
+      "cadedate" : "",
+      "control" : "enum",
+      "name" : "country",
+      "refresh" : 1,
+      "restore" : {
+        "count" : 3,
+        "item_0" : "state",
+        "item_1" : "city",
+        "item_2" : "zipcode"
+      },
+      "single_select" : "true"
+    },
+    "item_6" : {
+      "aname" : "Address 1",
+      "control" : "edit",
+      "keyboard" : "text",
+      "name" : "address",
+      "value" : ""
+    },
+    "item_7" : {
+      "aname" : "Address 2",
+      "control" : "edit",
+      "keyboard" : "text",
+      "name" : "address2",
+      "value" : ""
+    },
+    "item_8" : {
+      "aname" : "Address 3",
+      "control" : "edit",
+      "keyboard" : "text",
+      "name" : "address_3",
+      "value" : ""
+    },
+    "item_9" : {
+      "aname" : "Address 4",
+      "control" : "edit",
+      "keyboard" : "text",
+      "name" : "address_4",
+      "value" : ""
+    },
+    "title" : "* field is required"
+  },
+  "section_count" : 1,
+  "title" : "New Contact",
+  "up_params" : {
+    "count" : 2,
+    "val_0" : "zipcode",
+    "val_1" : "country"
+  }
+}