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

1.抽取NPD CommonEditor Urgency Timer到其子类实现。
2.修改iSalesNetwork为RANetwork。

Pen Li 8 лет назад
Родитель
Сommit
ae3a392c9c
53 измененных файлов с 5407 добавлено и 333 удалено
  1. 1 1
      RedAnt ERP Mobile/GoogleAnalytics/GoogleAnalyst.m
  2. 8 7
      RedAnt ERP Mobile/HMLG Mobile.xcodeproj/project.pbxproj
  3. BIN
      RedAnt ERP Mobile/RedAnt ERP Mobile.xcworkspace/xcuserdata/macmini1.xcuserdatad/UserInterfaceState.xcuserstate
  4. 3 3
      RedAnt ERP Mobile/common/CartUtils.m
  5. 8 4
      RedAnt ERP Mobile/common/CommonEditor/CommonEditorViewController.h
  6. 12 101
      RedAnt ERP Mobile/common/CommonEditor/CommonEditorViewController.m
  7. 1 1
      RedAnt ERP Mobile/common/CommonGridViewController.m
  8. 1 1
      RedAnt ERP Mobile/common/ERPUtils.m
  9. 7 7
      RedAnt ERP Mobile/common/Functions/MainViewController.m
  10. 68 3
      RedAnt ERP Mobile/common/Functions/address/AddressEditorViewController.m
  11. 3 3
      RedAnt ERP Mobile/common/Functions/camscan/ScannerViewController.m
  12. 2 2
      RedAnt ERP Mobile/common/Functions/cart/CartGeneralNotesViewController.m
  13. 17 17
      RedAnt ERP Mobile/common/Functions/cart/CartViewController.m
  14. 1 1
      RedAnt ERP Mobile/common/Functions/cart/EditModelPriceViewController.m
  15. 2 2
      RedAnt ERP Mobile/common/Functions/cart/ItemNotesViewController.m
  16. 4 4
      RedAnt ERP Mobile/common/Functions/cart/ModelItemCell.m
  17. 10 10
      RedAnt ERP Mobile/common/Functions/category/CategoryViewController.m
  18. 56 1
      RedAnt ERP Mobile/common/Functions/contact/ContactAdvanceSearchViewController.m
  19. 3 3
      RedAnt ERP Mobile/common/Functions/contact/ContactListViewController.m
  20. 93 3
      RedAnt ERP Mobile/common/Functions/contact/CustomerEditViewController.m
  21. 64 5
      RedAnt ERP Mobile/common/Functions/contact/CustomerInfoViewController.m
  22. 60 0
      RedAnt ERP Mobile/common/Functions/creditcard/CreditCardEditorViewController.m
  23. 2 2
      RedAnt ERP Mobile/common/Functions/home/HomeViewController.m
  24. 10 10
      RedAnt ERP Mobile/common/Functions/modelDetail/DetailHeaderCell.m
  25. 7 7
      RedAnt ERP Mobile/common/Functions/modelDetail/DetailViewController.m
  26. 3 3
      RedAnt ERP Mobile/common/Functions/offline/OfflineSettingViewController.m
  27. 3 3
      RedAnt ERP Mobile/common/Functions/offline/SelectUploadOrderViewController.m
  28. 83 13
      RedAnt ERP Mobile/common/Functions/order/CreateOrderViewController.m
  29. 8 8
      RedAnt ERP Mobile/common/Functions/order/OrderDetailViewController.m
  30. 7 7
      RedAnt ERP Mobile/common/Functions/order/OrderListViewController.m
  31. 4 4
      RedAnt ERP Mobile/common/Functions/portfolio/PDFListViewController.m
  32. 2 2
      RedAnt ERP Mobile/common/Functions/portfolio/PortfolioEditQTYViewController.m
  33. 9 9
      RedAnt ERP Mobile/common/Functions/portfolio/PortfolioViewController.m
  34. 63 4
      RedAnt ERP Mobile/common/Functions/portfolio/TearSheetParamViewController.m
  35. 10 10
      RedAnt ERP Mobile/common/Functions/search+itemsearch/ItemSearchViewController.m
  36. 10 10
      RedAnt ERP Mobile/common/Functions/search+itemsearch/SearchViewController.m
  37. 1 1
      RedAnt ERP Mobile/common/Functions/sidemenu/LoginViewController.h
  38. 1 1
      RedAnt ERP Mobile/common/Functions/sidemenu/LoginViewController.m
  39. 2 2
      RedAnt ERP Mobile/common/Functions/sidemenu/RetrievePassViewController.m
  40. 1 1
      RedAnt ERP Mobile/common/Functions/sidemenu/UserListViewController.h
  41. 2 2
      RedAnt ERP Mobile/common/Functions/sidemenu/UserListViewController.m
  42. 7 7
      RedAnt ERP Mobile/common/Functions/watchlist/WatchListViewController.m
  43. 3 3
      RedAnt ERP Mobile/common/Price Setting/PriceSettingViewController.m
  44. 2 2
      RedAnt ERP Mobile/common/Price Setting/SetCategoryPriceController.m
  45. 1 1
      RedAnt ERP Mobile/common/categoryMenu_RATree/RAViewController.m
  46. 185 0
      RedAnt ERP Mobile/common/data_provider/RANetwork.h
  47. 4515 0
      RedAnt ERP Mobile/common/data_provider/RANetwork.m
  48. 6 6
      RedAnt ERP Mobile/iSales-GATIT.xcodeproj/project.pbxproj
  49. 8 8
      RedAnt ERP Mobile/iSales-GATIT/AppDelegate.m
  50. 6 6
      RedAnt ERP Mobile/iSales-HOMER.xcodeproj/project.pbxproj
  51. 8 8
      RedAnt ERP Mobile/iSales-HOMER/AppDelegate.m
  52. 6 6
      RedAnt ERP Mobile/iSales-NPD.xcodeproj/project.pbxproj
  53. 8 8
      RedAnt ERP Mobile/iSales-NPD/AppDelegate.m

+ 1 - 1
RedAnt ERP Mobile/GoogleAnalytics/GoogleAnalyst.m

@@ -8,7 +8,7 @@
 
 
 #import "GoogleAnalyst.h"
 #import "GoogleAnalyst.h"
 #import "Analytics.h"
 #import "Analytics.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 
 
 @implementation GoogleAnalyst
 @implementation GoogleAnalyst
 
 

+ 8 - 7
RedAnt ERP Mobile/HMLG Mobile.xcodeproj/project.pbxproj

@@ -85,7 +85,7 @@
 		7183E8A61CF29F3900524787 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 7183E8891CF29F3900524787 /* Reachability.m */; };
 		7183E8A61CF29F3900524787 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 7183E8891CF29F3900524787 /* Reachability.m */; };
 		7183E8A71CF29F3900524787 /* RAUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 7183E88C1CF29F3900524787 /* RAUtils.m */; };
 		7183E8A71CF29F3900524787 /* RAUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 7183E88C1CF29F3900524787 /* RAUtils.m */; };
 		7183E8A81CF29F3900524787 /* iSalesDB.m in Sources */ = {isa = PBXBuildFile; fileRef = 7183E88E1CF29F3900524787 /* iSalesDB.m */; };
 		7183E8A81CF29F3900524787 /* iSalesDB.m in Sources */ = {isa = PBXBuildFile; fileRef = 7183E88E1CF29F3900524787 /* iSalesDB.m */; };
-		7183E8A91CF29F3900524787 /* iSalesNetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 7183E8901CF29F3900524787 /* iSalesNetwork.m */; };
+		7183E8A91CF29F3900524787 /* RANetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 7183E8901CF29F3900524787 /* RANetwork.m */; };
 		7183E8FD1CF29F4500524787 /* PhotoBorder.png in Resources */ = {isa = PBXBuildFile; fileRef = 7183E8AB1CF29F4500524787 /* PhotoBorder.png */; };
 		7183E8FD1CF29F4500524787 /* PhotoBorder.png in Resources */ = {isa = PBXBuildFile; fileRef = 7183E8AB1CF29F4500524787 /* PhotoBorder.png */; };
 		7183E8FE1CF29F4500524787 /* PhotoBorder@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7183E8AC1CF29F4500524787 /* PhotoBorder@2x.png */; };
 		7183E8FE1CF29F4500524787 /* PhotoBorder@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7183E8AC1CF29F4500524787 /* PhotoBorder@2x.png */; };
 		7183E8FF1CF29F4500524787 /* PhotoStackView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7183E8AE1CF29F4500524787 /* PhotoStackView.m */; };
 		7183E8FF1CF29F4500524787 /* PhotoStackView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7183E8AE1CF29F4500524787 /* PhotoStackView.m */; };
@@ -405,8 +405,8 @@
 		7183E88C1CF29F3900524787 /* RAUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAUtils.m; path = ../common/RAUtils.m; sourceTree = "<group>"; };
 		7183E88C1CF29F3900524787 /* RAUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RAUtils.m; path = ../common/RAUtils.m; sourceTree = "<group>"; };
 		7183E88D1CF29F3900524787 /* iSalesDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesDB.h; path = ../common/data_provider/iSalesDB.h; sourceTree = "<group>"; };
 		7183E88D1CF29F3900524787 /* iSalesDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesDB.h; path = ../common/data_provider/iSalesDB.h; sourceTree = "<group>"; };
 		7183E88E1CF29F3900524787 /* iSalesDB.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesDB.m; path = ../common/data_provider/iSalesDB.m; sourceTree = "<group>"; };
 		7183E88E1CF29F3900524787 /* iSalesDB.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesDB.m; path = ../common/data_provider/iSalesDB.m; sourceTree = "<group>"; };
-		7183E88F1CF29F3900524787 /* iSalesNetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesNetwork.h; path = ../common/data_provider/iSalesNetwork.h; sourceTree = "<group>"; };
-		7183E8901CF29F3900524787 /* iSalesNetwork.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesNetwork.m; path = ../common/data_provider/iSalesNetwork.m; sourceTree = "<group>"; };
+		7183E88F1CF29F3900524787 /* RANetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RANetwork.h; path = ../common/data_provider/RANetwork.h; sourceTree = "<group>"; };
+		7183E8901CF29F3900524787 /* RANetwork.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RANetwork.m; path = ../common/data_provider/RANetwork.m; sourceTree = "<group>"; };
 		7183E8AB1CF29F4500524787 /* PhotoBorder.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = PhotoBorder.png; path = ../common/photoStack/PhotoBorder.png; sourceTree = "<group>"; };
 		7183E8AB1CF29F4500524787 /* PhotoBorder.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = PhotoBorder.png; path = ../common/photoStack/PhotoBorder.png; sourceTree = "<group>"; };
 		7183E8AC1CF29F4500524787 /* PhotoBorder@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "PhotoBorder@2x.png"; path = "../common/photoStack/PhotoBorder@2x.png"; sourceTree = "<group>"; };
 		7183E8AC1CF29F4500524787 /* PhotoBorder@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "PhotoBorder@2x.png"; path = "../common/photoStack/PhotoBorder@2x.png"; sourceTree = "<group>"; };
 		7183E8AD1CF29F4500524787 /* PhotoStackView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PhotoStackView.h; path = ../common/photoStack/PhotoStackView.h; sourceTree = "<group>"; };
 		7183E8AD1CF29F4500524787 /* PhotoStackView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PhotoStackView.h; path = ../common/photoStack/PhotoStackView.h; sourceTree = "<group>"; };
@@ -1164,8 +1164,8 @@
 				42F9FAD31F8C5A8600D9C781 /* NetworkUtils.m */,
 				42F9FAD31F8C5A8600D9C781 /* NetworkUtils.m */,
 				42F9FAD51F8C5A8600D9C781 /* RANetworkTaskDelegate.h */,
 				42F9FAD51F8C5A8600D9C781 /* RANetworkTaskDelegate.h */,
 				42F9FAD61F8C5A8600D9C781 /* RANetworkTaskDelegate.m */,
 				42F9FAD61F8C5A8600D9C781 /* RANetworkTaskDelegate.m */,
-				7183E88F1CF29F3900524787 /* iSalesNetwork.h */,
-				7183E8901CF29F3900524787 /* iSalesNetwork.m */,
+				7183E88F1CF29F3900524787 /* RANetwork.h */,
+				7183E8901CF29F3900524787 /* RANetwork.m */,
 				71BF06FF1D2F3CCC00981938 /* OLDataProvider.h */,
 				71BF06FF1D2F3CCC00981938 /* OLDataProvider.h */,
 				71BF07001D2F3CCC00981938 /* OLDataProvider.m */,
 				71BF07001D2F3CCC00981938 /* OLDataProvider.m */,
 			);
 			);
@@ -1699,7 +1699,8 @@
 				71C1D81D1F45571F00CEA1C9 /* storyboard */,
 				71C1D81D1F45571F00CEA1C9 /* storyboard */,
 				71C1D8151F4555CB00CEA1C9 /* Controller */,
 				71C1D8151F4555CB00CEA1C9 /* Controller */,
 			);
 			);
-			path = PhotoList;
+			name = PhotoList;
+			path = ../common/PhotoList;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
 		};
 		};
 		71C1D8151F4555CB00CEA1C9 /* Controller */ = {
 		71C1D8151F4555CB00CEA1C9 /* Controller */ = {
@@ -1923,7 +1924,7 @@
 				428980551E249340005F1BD8 /* JKMessageBoxController.m in Sources */,
 				428980551E249340005F1BD8 /* JKMessageBoxController.m in Sources */,
 				4289808F1E24B2C2005F1BD8 /* pdfCreator.m in Sources */,
 				4289808F1E24B2C2005F1BD8 /* pdfCreator.m in Sources */,
 				7183E89A1CF29F3900524787 /* mask.c in Sources */,
 				7183E89A1CF29F3900524787 /* mask.c in Sources */,
-				7183E8A91CF29F3900524787 /* iSalesNetwork.m in Sources */,
+				7183E8A91CF29F3900524787 /* RANetwork.m in Sources */,
 				7183E9081CF29F4500524787 /* RadioButton.m in Sources */,
 				7183E9081CF29F4500524787 /* RadioButton.m in Sources */,
 				715850431CF6F0C400856B20 /* DefaultAppearance.m in Sources */,
 				715850431CF6F0C400856B20 /* DefaultAppearance.m in Sources */,
 				7183E9E41CF29FCB00524787 /* AddressEditorViewController.m in Sources */,
 				7183E9E41CF29FCB00524787 /* AddressEditorViewController.m in Sources */,

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


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

@@ -9,7 +9,7 @@
 #import "CartUtils.h"
 #import "CartUtils.h"
 #import "RAUtils.h"
 #import "RAUtils.h"
 #import "AppDelegate.h"
 #import "AppDelegate.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "LoginViewController.h"
 #import "LoginViewController.h"
 #import "MainViewController.h"
 #import "MainViewController.h"
 
 
@@ -21,7 +21,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
 
 
-        NSDictionary* return_json = [iSalesNetwork new_Order];
+        NSDictionary* return_json = [RANetwork new_Order];
 
 
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -361,7 +361,7 @@
 
 
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
 
 
-                    NSDictionary* return_json = [iSalesNetwork request_PendingOrder:appDelegate.contact_id];
+                    NSDictionary* return_json = [RANetwork request_PendingOrder:appDelegate.contact_id];
 
 
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
 
 

+ 8 - 4
RedAnt ERP Mobile/common/CommonEditor/CommonEditorViewController.h

@@ -10,7 +10,7 @@
 #import "SignatureViewController.h"
 #import "SignatureViewController.h"
 #import "EnumSelectViewController.h"
 #import "EnumSelectViewController.h"
 #import "MonthPickerViewController.h"
 #import "MonthPickerViewController.h"
-#import "JKTimerManager.h"
+
 
 
 @interface subitem_data : NSObject
 @interface subitem_data : NSObject
 @property (strong, nonatomic) NSMutableDictionary *params;
 @property (strong, nonatomic) NSMutableDictionary *params;
@@ -79,11 +79,9 @@
 
 
 //control cell event;
 //control cell event;
 
 
-@property (nonatomic,copy) NSString *class_name;
+
 @property (nonatomic,assign) BOOL editable;
 @property (nonatomic,assign) BOOL editable;
 
 
-- (void)start_urgency_timer;
-- (void)cancel_urgency_timer;
 //URL_LOCAL 表单填充函数
 //URL_LOCAL 表单填充函数
 - (void) request_fill;
 - (void) request_fill;
 @property (strong,nonatomic) NSMutableDictionary* data_init;
 @property (strong,nonatomic) NSMutableDictionary* data_init;
@@ -94,4 +92,10 @@
 -(NSMutableDictionary*) fill_enum_subitem:(NSMutableDictionary *) enum_item subid:(NSArray*) subid source:(NSMutableDictionary*)source mapping:(NSDictionary*)mapping;
 -(NSMutableDictionary*) fill_enum_subitem:(NSMutableDictionary *) enum_item subid:(NSArray*) subid source:(NSMutableDictionary*)source mapping:(NSDictionary*)mapping;
 -(void) refresh:(NSString*) trigger;
 -(void) refresh:(NSString*) trigger;
 -(void) handle_action_return:(NSMutableDictionary *)value indexPath :(NSIndexPath*) indexPath action:(int) action_code;
 -(void) handle_action_return:(NSMutableDictionary *)value indexPath :(NSIndexPath*) indexPath action:(int) action_code;
+
+// Urgency
+@property (nonatomic,copy) NSString *class_name;
+@property (nonatomic,copy) NSString *urgency_timer_name;
+@property (nonatomic,assign) int level;///<CommonEditor窗口层级
+
 @end
 @end

+ 12 - 101
RedAnt ERP Mobile/common/CommonEditor/CommonEditorViewController.m

@@ -29,7 +29,7 @@
 
 
 //#import "AFHTTPSessionManager.h"
 //#import "AFHTTPSessionManager.h"
 //#import "NetworkUtils.h"
 //#import "NetworkUtils.h"
-
+#import "config.h"
 #import "CustomIOSAlertView.h"
 #import "CustomIOSAlertView.h"
 #import "DefaultAppearance.h"
 #import "DefaultAppearance.h"
 #import "DefaultTableHeaderView.h"
 #import "DefaultTableHeaderView.h"
@@ -51,21 +51,12 @@
 @end
 @end
 @interface CommonEditorViewController ()
 @interface CommonEditorViewController ()
 
 
-@property (nonatomic,copy) NSString *urgency_timer_name;
-
-@property (nonatomic,assign) int level;///<CommonEditor窗口层级
 
 
 @end
 @end
 
 
 @implementation CommonEditorViewController
 @implementation CommonEditorViewController
 
 
-- (void)dealloc {
-    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-    
-    [appDelegate.urgencyDic removeObjectForKey:[NSString stringWithFormat:@"level_%d",self.level]];
-    [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:self.level] forKey:@"count"];
-    
-}
+
 
 
 - (NSString *)class_name {
 - (NSString *)class_name {
     if (!_class_name) {
     if (!_class_name) {
@@ -88,7 +79,7 @@
         
         
         id count = [appDelegate.urgencyDic objectForKey:@"count"];
         id count = [appDelegate.urgencyDic objectForKey:@"count"];
         
         
-        _level = count == nil ? 0 : [count integerValue];
+        _level = count == nil ? 0 : [count intValue];
     }
     }
     return _level;
     return _level;
 }
 }
@@ -108,7 +99,7 @@
 -(void) viewWillAppear:(BOOL)animated
 -(void) viewWillAppear:(BOOL)animated
 {
 {
     [super viewWillAppear:animated];
     [super viewWillAppear:animated];
-    [self start_urgency_timer];
+    
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
     
     
@@ -125,7 +116,6 @@
 {
 {
     [super viewWillDisappear:animated];
     [super viewWillDisappear:animated];
     [[NSNotificationCenter defaultCenter] removeObserver:self];
     [[NSNotificationCenter defaultCenter] removeObserver:self];
-    [self cancel_urgency_timer];
 }
 }
 
 
 -(void)manually_refresh
 -(void)manually_refresh
@@ -151,85 +141,6 @@
     [self refresh:nil];
     [self refresh:nil];
 }
 }
 
 
-- (void)start_urgency_timer {
-    
-    if (!self.editable) {
-        return;
-    }
-    
-    __weak typeof(self) weakSelf = self;
-    
-    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-
-    [appDelegate.urgencyDic setValue:appDelegate.user forKey:@"user"];
-#ifdef OFFLINE_MODE
-    [appDelegate.urgencyDic setValue:[NSNumber numberWithBool:appDelegate.offline_mode] forKey:@"offline_mode"];
-#endif
-    [[JKTimerManager sharedTimerManager] scheduledDispatchTimerWithName:self.urgency_timer_name timeInterval:1 queue:nil repeats:YES action:^{
-        
-        NSMutableDictionary *urgencyDic = [NSMutableDictionary dictionary];
-
-//        DebugLog(@"timer start....");
-        
-        [urgencyDic setValue:weakSelf.content_data_download forKey:[NSString stringWithFormat:@"%@_restored_data",self.class_name]];
-        
-        [urgencyDic setValue:weakSelf.class_name forKey:@"class_name"];
-
-        
-        
-        if ([weakSelf.class_name isEqualToString:@"CustomerEditViewController"]) {
-            // CustomerEditViewController
-            __block NSString *contact_id = @"";
-            
-            [weakSelf.content_data_download enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
-                
-                // section_0
-                if ([key isEqualToString:@"section_0"]) {
-                    NSDictionary *section_0 = (NSDictionary *)obj;
-                    [section_0 enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
-                    
-                        // Contact ID
-                        if ([obj isKindOfClass:[NSDictionary class]]) {
-                            if ([[obj objectForKey:@"aname"] isEqualToString:@"Contact ID"]) {
-                                contact_id = [obj objectForKey:@"value"];
-                            }
-                            
-                        }
-                        
-                    }];
-                }
-
-            }];
-
-            [urgencyDic setValue:contact_id forKey:@"contact_id"];
-            
-            
-        } else if ([weakSelf.class_name isEqualToString:@"CreateOrderViewController"]) {
-            // CreateOrderViewController
-
-            
-            [urgencyDic setValue:appDelegate.order_code forKey:@"order_code"];
-            MainViewController *mainVC = (MainViewController *)appDelegate.main_vc;
-            NSString *so = [mainVC.labelSo.text substringFromIndex:5];
-            [urgencyDic setValue:so forKey:@"order_so"];
-            [urgencyDic setValue:[NSNumber numberWithInt:appDelegate.order_status ] forKey:@"order_status"];
-            
-            [urgencyDic setValue:appDelegate.order_customer_id forKey:@"order_customer_id"];
-            
-        } else if ([weakSelf.class_name isEqualToString:@"AddressEditorViewController"]) {
-            // AddressEditorViewController
-            
-        }
-        
-        [appDelegate.urgencyDic setValue:urgencyDic forKey:[NSString stringWithFormat:@"level_%d",weakSelf.level]];
-        [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:weakSelf.level + 1] forKey:@"count"];
-        
-    }];
-}
-
-- (void)cancel_urgency_timer {
-    [[JKTimerManager sharedTimerManager] cancelTimerWithName:self.urgency_timer_name];
-}
 
 
 - (void)alertMessage:(NSString *)msg {
 - (void)alertMessage:(NSString *)msg {
     
     
@@ -305,7 +216,7 @@
         UIAlertView * waitalert = [RAUtils waiting_alert:self.loading_msg title:self.loading_title];
         UIAlertView * waitalert = [RAUtils waiting_alert:self.loading_msg title:self.loading_title];
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
-            NSDictionary* editor_json = [iSalesNetwork request_Editor:weakself.request_url params:weakself.params];
+            NSDictionary* editor_json = [RANetwork request_Editor:weakself.request_url params:weakself.params];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 
@@ -1017,7 +928,7 @@
                 [weakself.params setObject:obj_str forKey:(NSString*)changed_key[i]];
                 [weakself.params setObject:obj_str forKey:(NSString*)changed_key[i]];
             }
             }
             
             
-            NSDictionary* editor_json = [iSalesNetwork request_Editor:weakself.request_url params:weakself.params];
+            NSDictionary* editor_json = [RANetwork request_Editor:weakself.request_url params:weakself.params];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                 [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -1718,7 +1629,7 @@
             [self.content_data_download setObject:section_json forKey:[NSString stringWithFormat:@"section_%ld",(long)indexPath.section ]];
             [self.content_data_download setObject:section_json forKey:[NSString stringWithFormat:@"section_%ld",(long)indexPath.section ]];
         }
         }
         
         
-        DebugLog(@"CONTENT UPDATE:%@",[iSalesNetwork DataTOjsonString:self.content_data_download]);
+        DebugLog(@"CONTENT UPDATE:%@",[RANetwork DataTOjsonString:self.content_data_download]);
         self.content_data_control = [self translate_json:self.content_data_download changed:self.changed_data];
         self.content_data_control = [self translate_json:self.content_data_download changed:self.changed_data];
         
         
         
         
@@ -1905,7 +1816,7 @@
             [self.content_data_download setObject:section_json forKey:[NSString stringWithFormat:@"section_%ld",(long)indexPath.section ]];
             [self.content_data_download setObject:section_json forKey:[NSString stringWithFormat:@"section_%ld",(long)indexPath.section ]];
         }
         }
         
         
-        DebugLog(@"CONTENT UPDATE:%@",[iSalesNetwork DataTOjsonString:self.content_data_download]);
+        DebugLog(@"CONTENT UPDATE:%@",[RANetwork DataTOjsonString:self.content_data_download]);
         self.content_data_control = [self translate_json:self.content_data_download changed:self.changed_data];
         self.content_data_control = [self translate_json:self.content_data_download changed:self.changed_data];
         
         
         
         
@@ -2155,7 +2066,7 @@
             __weak typeof(self) weakself = self;
             __weak typeof(self) weakself = self;
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* editor_json = [iSalesNetwork commoneditor_partialrefresh:params url:url];
+                NSDictionary* editor_json = [RANetwork commoneditor_partialrefresh:params url:url];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     
@@ -2275,7 +2186,7 @@
             __weak typeof(self) weakself = self;
             __weak typeof(self) weakself = self;
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* editor_json = [iSalesNetwork commoneditor_partialrefresh:params url:url];
+                NSDictionary* editor_json = [RANetwork commoneditor_partialrefresh:params url:url];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     
@@ -4554,7 +4465,7 @@
                     
                     
                    
                    
                     
                     
-                    NSData *data = [OLDataProvider offline_saveBusinesscard:UIImagePNGRepresentation(img)];;
+                    NSData *data = [OLDataProvider offline_saveBusinesscard:UIImagePNGRepresentation(img)];
                     
                     
                     // 再将NSData转为字符串
                     // 再将NSData转为字符串
                     NSString *jsonStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
                     NSString *jsonStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
@@ -4984,7 +4895,7 @@
     }
     }
     
     
     
     
-    DebugLog(@"CONTENT UPDATE:%@",[iSalesNetwork DataTOjsonString:self.content_data_download]);
+    DebugLog(@"CONTENT UPDATE:%@",[RANetwork DataTOjsonString:self.content_data_download]);
     
     
     
     
     
     

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

@@ -8,7 +8,7 @@
 
 
 #import "CommonGridViewController.h"
 #import "CommonGridViewController.h"
 #import "AppDelegate.h"
 #import "AppDelegate.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 //#import "OrderListCell.h"
 //#import "OrderListCell.h"
 #import "CommonEditorViewController.h"
 #import "CommonEditorViewController.h"
 //#import "PopupNavigationController.h"
 //#import "PopupNavigationController.h"

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

@@ -10,7 +10,7 @@
 #import "AppDelegate.h"
 #import "AppDelegate.h"
 #import "Singleton.h"
 #import "Singleton.h"
 #import "GoogleAnalyst.h"
 #import "GoogleAnalyst.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 
 
 
 
  
  

+ 7 - 7
RedAnt ERP Mobile/common/Functions/MainViewController.m

@@ -243,7 +243,7 @@
         [self.btnLogin setTitle:@"Sign out" forState:UIControlStateNormal];
         [self.btnLogin setTitle:@"Sign out" forState:UIControlStateNormal];
     else
     else
         [self.btnLogin setTitle:@"Sign in" forState:UIControlStateNormal];
         [self.btnLogin setTitle:@"Sign in" forState:UIControlStateNormal];
-    [iSalesNetwork LoadImage:appDelegate.user_icon into:self.user_head ];
+    [RANetwork LoadImage:appDelegate.user_icon into:self.user_head ];
     
     
     if(/*appDelegate.user_type==USER_ROLE_EMPLOYEE*/true)
     if(/*appDelegate.user_type==USER_ROLE_EMPLOYEE*/true)
         self.btnContact.hidden = NO;
         self.btnContact.hidden = NO;
@@ -554,7 +554,7 @@
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
             
             
-            NSDictionary* category=[iSalesNetwork request_Cagegory];
+            NSDictionary* category=[RANetwork request_Cagegory];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 
@@ -606,7 +606,7 @@
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Sign out"];
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Sign out"];
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
-            NSDictionary* return_json = [iSalesNetwork logout];
+            NSDictionary* return_json = [RANetwork logout];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                 [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -908,7 +908,7 @@
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
         
         
-        NSDictionary* category=[iSalesNetwork request_Cagegory];
+        NSDictionary* category=[RANetwork request_Cagegory];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             
@@ -980,7 +980,7 @@
     
     
     [self.btnLogin setTitle:@"Sign out" forState:UIControlStateNormal];
     [self.btnLogin setTitle:@"Sign out" forState:UIControlStateNormal];
     
     
-    [iSalesNetwork LoadImage:appDelegate.user_icon into:self.user_head ];
+    [RANetwork LoadImage:appDelegate.user_icon into:self.user_head ];
     
     
     if(/*appDelegate.user_type==USER_ROLE_EMPLOYEE*/true)
     if(/*appDelegate.user_type==USER_ROLE_EMPLOYEE*/true)
         self.btnContact.hidden = NO;
         self.btnContact.hidden = NO;
@@ -1483,7 +1483,7 @@
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
             
             
-            NSDictionary* category=[iSalesNetwork request_Cagegory];
+            NSDictionary* category=[RANetwork request_Cagegory];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 
@@ -2664,7 +2664,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* return_json = [iSalesNetwork new_Order];
+        NSDictionary* return_json = [RANetwork new_Order];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];

+ 68 - 3
RedAnt ERP Mobile/common/Functions/address/AddressEditorViewController.m

@@ -7,8 +7,9 @@
 //
 //
 
 
 #import "AddressEditorViewController.h"
 #import "AddressEditorViewController.h"
-
-#import "iSalesNetwork.h"
+#import "MainViewController.h"
+#import "RANetwork.h"
+#import "JKTimerManager.h"
 
 
 @interface AddressEditorViewController ()
 @interface AddressEditorViewController ()
 
 
@@ -150,7 +151,7 @@
     
     
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* editor_json = [iSalesNetwork create_Address:upparams];
+        NSDictionary* editor_json = [RANetwork create_Address:upparams];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             
@@ -191,4 +192,68 @@
 }
 }
 */
 */
 
 
+#pragma mark - Urgency
+
+- (void)viewWillAppear:(BOOL)animated {
+    [super viewWillAppear:animated];
+    [self start_urgency_timer];
+}
+
+-(void) viewWillDisappear:(BOOL)animated
+{
+    [super viewWillDisappear:animated];
+    [self cancel_urgency_timer];
+}
+
+- (void)dealloc {
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic removeObjectForKey:[NSString stringWithFormat:@"level_%d",self.level]];
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:self.level] forKey:@"count"];
+    
+}
+
+- (void)start_urgency_timer {
+    
+    if (!self.editable) {
+        return;
+    }
+    
+    __weak typeof(self) weakSelf = self;
+    
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic setValue:appDelegate.user forKey:@"user"];
+#ifdef OFFLINE_MODE
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithBool:appDelegate.offline_mode] forKey:@"offline_mode"];
+#endif
+    [[JKTimerManager sharedTimerManager] scheduledDispatchTimerWithName:self.urgency_timer_name timeInterval:1 queue:nil repeats:YES action:^{
+        
+        NSMutableDictionary *urgencyDic = [NSMutableDictionary dictionary];
+        
+        //        DebugLog(@"timer start....");
+        
+        [urgencyDic setValue:weakSelf.content_data_download forKey:[NSString stringWithFormat:@"%@_restored_data",self.class_name]];
+        
+        [urgencyDic setValue:weakSelf.class_name forKey:@"class_name"];
+        
+        
+        
+        if ([weakSelf.class_name isEqualToString:@"AddressEditorViewController"]) {
+            // AddressEditorViewController
+            
+        }
+        
+        [appDelegate.urgencyDic setValue:urgencyDic forKey:[NSString stringWithFormat:@"level_%d",weakSelf.level]];
+        [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:weakSelf.level + 1] forKey:@"count"];
+        
+    }];
+}
+
+- (void)cancel_urgency_timer {
+    [[JKTimerManager sharedTimerManager] cancelTimerWithName:self.urgency_timer_name];
+}
+
+
+
 @end
 @end

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

@@ -27,7 +27,7 @@
 #import "ContactListViewController.h"
 #import "ContactListViewController.h"
 #import "CartUtils.h"
 #import "CartUtils.h"
 #import "ERPUtils.h"
 #import "ERPUtils.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 
 
 #define SCANNER_TARGET_DETAIL 0
 #define SCANNER_TARGET_DETAIL 0
 #define SCANNER_TARGET_CART 1
 #define SCANNER_TARGET_CART 1
@@ -574,7 +574,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* return_json = [iSalesNetwork new_Order];
+        NSDictionary* return_json = [RANetwork new_Order];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -618,7 +618,7 @@
     
     
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
-            NSDictionary* return_json = [iSalesNetwork add_toCart_byName: self.scan_val withScreen:ScreenCodeCamScan];
+            NSDictionary* return_json = [RANetwork add_toCart_byName: self.scan_val withScreen:ScreenCodeCamScan];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 

+ 2 - 2
RedAnt ERP Mobile/common/Functions/cart/CartGeneralNotesViewController.m

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import "CartGeneralNotesViewController.h"
 #import "CartGeneralNotesViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 
 
 @interface CartGeneralNotesViewController ()
 @interface CartGeneralNotesViewController ()
 
 
@@ -49,7 +49,7 @@
         UIApplication * app = [UIApplication sharedApplication];
         UIApplication * app = [UIApplication sharedApplication];
         AppDelegate *appDelegate = (AppDelegate *)[app delegate];
         AppDelegate *appDelegate = (AppDelegate *)[app delegate];
         
         
-        cart_json = [iSalesNetwork cart_setGeneralNote:appDelegate.order_code notes:self.tv_notes.text];
+        cart_json = [RANetwork cart_setGeneralNote:appDelegate.order_code notes:self.tv_notes.text];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             

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

@@ -10,7 +10,7 @@
 #import "RAUtils.h"
 #import "RAUtils.h"
 #import "CartViewController.h"
 #import "CartViewController.h"
 #import "ModelItemCell.h"
 #import "ModelItemCell.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 //#import "CommonGridViewController.h"
 //#import "CommonGridViewController.h"
 #import "CreateOrderViewController.h"
 #import "CreateOrderViewController.h"
 #import "DetailViewController.h"
 #import "DetailViewController.h"
@@ -120,7 +120,7 @@
             UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Remove Models From Cart"];
             UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Remove Models From Cart"];
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* cart_json = [iSalesNetwork cart_remove:ids];
+                NSDictionary* cart_json = [RANetwork cart_remove:ids];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     
@@ -167,7 +167,7 @@
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Move Models To Wish List"];
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Move Models To Wish List"];
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
-            NSDictionary* cart_json = [iSalesNetwork move_cart2wish:ids];
+            NSDictionary* cart_json = [RANetwork move_cart2wish:ids];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 
@@ -231,7 +231,7 @@
     
     
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* cart_json = [iSalesNetwork move_cart2wish:ids];
+        NSDictionary* cart_json = [RANetwork move_cart2wish:ids];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             
@@ -293,7 +293,7 @@
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Remove Models From Cart"];
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Remove Models From Cart"];
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
-            NSDictionary* cart_json = [iSalesNetwork cart_remove:ids];
+            NSDictionary* cart_json = [RANetwork cart_remove:ids];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 
@@ -647,7 +647,7 @@
         
         
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             DebugLog(@"BEGIN LOAD CART");
             DebugLog(@"BEGIN LOAD CART");
-            NSDictionary* cart_json = [iSalesNetwork request_Cart:weakself.sortIndex];
+            NSDictionary* cart_json = [RANetwork request_Cart:weakself.sortIndex];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 //
                 //
@@ -1012,7 +1012,7 @@
     NSString * string = [checked componentsJoinedByString:@","];
     NSString * string = [checked componentsJoinedByString:@","];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* cart_json = [iSalesNetwork cart_remove:string];
+        NSDictionary* cart_json = [RANetwork cart_remove:string];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             
@@ -1299,7 +1299,7 @@
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Cancel Order"];
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Cancel Order"];
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
-            NSDictionary* return_json = [iSalesNetwork cancel_Order:nil order_code:appDelegate.order_code];
+            NSDictionary* return_json = [RANetwork cancel_Order:nil order_code:appDelegate.order_code];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                 [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -1943,7 +1943,7 @@
             UIAlertView *waitting_alert = [RAUtils waiting_alert:@"Sending Email" title:@"Waiting"];
             UIAlertView *waitting_alert = [RAUtils waiting_alert:@"Sending Email" title:@"Waiting"];
             dispatch_async(dispatch_get_global_queue(0,0), ^{
             dispatch_async(dispatch_get_global_queue(0,0), ^{
                 
                 
-                NSDictionary *dic = [iSalesNetwork notifyModel:productID emailAddr:nil withScreen:ScreenCodeCart];
+                NSDictionary *dic = [RANetwork notifyModel:productID emailAddr:nil withScreen:ScreenCodeCart];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     
@@ -2005,7 +2005,7 @@
 //            ModelItemCell* cell=[self.itemListTable cellForRowAtIndexPath:indexPath];
 //            ModelItemCell* cell=[self.itemListTable cellForRowAtIndexPath:indexPath];
 //            [cell cancel_setQTY];
 //            [cell cancel_setQTY];
             
             
-            NSDictionary* return_json = [iSalesNetwork move_cart2wish:cart_item_id ];
+            NSDictionary* return_json = [RANetwork move_cart2wish:cart_item_id ];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 
@@ -2150,7 +2150,7 @@
                 
                 
                 NSDictionary* cart_json = nil;
                 NSDictionary* cart_json = nil;
                 
                 
-                cart_json = [iSalesNetwork cart_setPrice:[NSString stringWithFormat:@"%d",[[item_json valueForKey:@"cart_item_id"] intValue]] price:price discount:discount notes:notes];
+                cart_json = [RANetwork cart_setPrice:[NSString stringWithFormat:@"%d",[[item_json valueForKey:@"cart_item_id"] intValue]] price:price discount:discount notes:notes];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     
@@ -2462,7 +2462,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
             
             
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* cart_json = [iSalesNetwork cart_remove:ids];
+                NSDictionary* cart_json = [RANetwork cart_remove:ids];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     
@@ -2550,7 +2550,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
             
             
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* cart_json = [iSalesNetwork cart_setFree:ids isfree:true];
+                NSDictionary* cart_json = [RANetwork cart_setFree:ids isfree:true];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     
@@ -2582,7 +2582,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
             
             
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* cart_json = [iSalesNetwork cart_setFree:ids isfree:false];
+                NSDictionary* cart_json = [RANetwork cart_setFree:ids isfree:false];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     
@@ -2655,7 +2655,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
     
     
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* return_json = [iSalesNetwork add_toCart_byName: modelname withScreen:ScreenCodeCart];
+        NSDictionary* return_json = [RANetwork add_toCart_byName: modelname withScreen:ScreenCodeCart];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             
@@ -2858,7 +2858,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
                 
                 
                 dispatch_async(dispatch_get_global_queue(0, 0), ^{
                 dispatch_async(dispatch_get_global_queue(0, 0), ^{
                    
                    
-                    NSDictionary *result = [iSalesNetwork quoteOrder:appDelegate.order_code emailAddr:text];
+                    NSDictionary *result = [RANetwork quoteOrder:appDelegate.order_code emailAddr:text];
                     DebugLog(@"email cart result: %@",result);
                     DebugLog(@"email cart result: %@",result);
                    dispatch_async(dispatch_get_main_queue(), ^{
                    dispatch_async(dispatch_get_main_queue(), ^{
                       
                       
@@ -2958,7 +2958,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
                 
                 
                 dispatch_async(dispatch_get_global_queue(0, 0), ^{
                 dispatch_async(dispatch_get_global_queue(0, 0), ^{
                     
                     
-                    NSDictionary *result = [iSalesNetwork notifyModel:productID emailAddr:text withScreen:ScreenCodeCart];
+                    NSDictionary *result = [RANetwork notifyModel:productID emailAddr:text withScreen:ScreenCodeCart];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
                         

+ 1 - 1
RedAnt ERP Mobile/common/Functions/cart/EditModelPriceViewController.m

@@ -9,7 +9,7 @@
 #import "EditModelPriceViewController.h"
 #import "EditModelPriceViewController.h"
 #import "RAUtils.h"
 #import "RAUtils.h"
 
 
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #define NUMBERS @"0123456789.\n"
 #define NUMBERS @"0123456789.\n"
 @interface EditModelPriceViewController ()
 @interface EditModelPriceViewController ()
 
 

+ 2 - 2
RedAnt ERP Mobile/common/Functions/cart/ItemNotesViewController.m

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import "ItemNotesViewController.h"
 #import "ItemNotesViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 @interface ItemNotesViewController ()
 @interface ItemNotesViewController ()
 
 
 @end
 @end
@@ -51,7 +51,7 @@
 
 
         
         
 
 
-        cart_json = [iSalesNetwork cart_setItemNote:self.cart_id notes:self.tv_notes.text];
+        cart_json = [RANetwork cart_setItemNote:self.cart_id notes:self.tv_notes.text];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             

+ 4 - 4
RedAnt ERP Mobile/common/Functions/cart/ModelItemCell.m

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import "ModelItemCell.h"
 #import "ModelItemCell.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "EditModelPriceViewController.h"
 #import "EditModelPriceViewController.h"
 #import "RAUtils.h"
 #import "RAUtils.h"
 #import "BundleModelViewController.h"
 #import "BundleModelViewController.h"
@@ -168,7 +168,7 @@
 //    [thread start];
 //    [thread start];
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     
     
-                NSDictionary* cart_json = [iSalesNetwork cart_setQTY:self.cart_id value:self.pre_val];
+                NSDictionary* cart_json = [RANetwork cart_setQTY:self.cart_id value:self.pre_val];
     
     
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     self.totalchange=0;
                     self.totalchange=0;
@@ -407,7 +407,7 @@
                 
                 
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     
                     
-                    NSDictionary* cart_json = [iSalesNetwork cart_setQTY:self.cart_id value:qty];
+                    NSDictionary* cart_json = [RANetwork cart_setQTY:self.cart_id value:qty];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
                         
@@ -458,7 +458,7 @@
             
             
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* cart_json = [iSalesNetwork cart_setQTY:self.cart_id value:qty];
+                NSDictionary* cart_json = [RANetwork cart_setQTY:self.cart_id value:qty];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     

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

@@ -10,7 +10,7 @@
 #import "CategorySearchFilterViewController.h"
 #import "CategorySearchFilterViewController.h"
 #import "DetailHeaderCell.h"
 #import "DetailHeaderCell.h"
 #import "DetailImageCell.h"
 #import "DetailImageCell.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "DetailTopicCell.h"
 #import "DetailTopicCell.h"
 #import "RTLabel.h"
 #import "RTLabel.h"
 #import "DetailKVCell.h"
 #import "DetailKVCell.h"
@@ -505,7 +505,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* return_json = [iSalesNetwork new_Order];
+        NSDictionary* return_json = [RANetwork new_Order];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -690,9 +690,9 @@
         NSDictionary* return_json = nil;
         NSDictionary* return_json = nil;
         if (self.addAll) {
         if (self.addAll) {
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-            return_json = [iSalesNetwork Category_addall:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:self.offset limit:20 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip orderCode:appDelegate.order_code  addTo:@"cart"];
+            return_json = [RANetwork Category_addall:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:self.offset limit:20 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip orderCode:appDelegate.order_code  addTo:@"cart"];
         } else {
         } else {
-            return_json = [iSalesNetwork add_toCart_byName:ids withScreen:ScreenCodeCategory];
+            return_json = [RANetwork add_toCart_byName:ids withScreen:ScreenCodeCategory];
         }
         }
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
@@ -814,9 +814,9 @@
         NSDictionary* return_json = nil;
         NSDictionary* return_json = nil;
         if (self.addAll) {
         if (self.addAll) {
 //            AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
 //            AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-            return_json = [iSalesNetwork Category_addall:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:self.offset limit:20 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip orderCode:nil  addTo:@"portfolio"];
+            return_json = [RANetwork Category_addall:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:self.offset limit:20 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip orderCode:nil  addTo:@"portfolio"];
         } else {
         } else {
-            return_json = [iSalesNetwork add_toPortfolio:ids withScreen:ScreenCodeCategory];
+            return_json = [RANetwork add_toPortfolio:ids withScreen:ScreenCodeCategory];
         }
         }
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
@@ -912,9 +912,9 @@
         
         
         NSDictionary* return_json = nil;
         NSDictionary* return_json = nil;
         if (self.addAll) {
         if (self.addAll) {
-            return_json = [iSalesNetwork Category_addall:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:self.offset limit:20 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip orderCode:nil  addTo:@"wishlist"];
+            return_json = [RANetwork Category_addall:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:self.offset limit:20 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip orderCode:nil  addTo:@"wishlist"];
         } else {
         } else {
-            return_json = [iSalesNetwork add_toWatchList:ids withScreen:ScreenCodeCategory];
+            return_json = [RANetwork add_toWatchList:ids withScreen:ScreenCodeCategory];
         }
         }
 
 
         
         
@@ -997,7 +997,7 @@
         self.isrefreshing=true;
         self.isrefreshing=true;
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
-            NSDictionary* category_more=[iSalesNetwork Category:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:self.offset limit:20 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip] ;
+            NSDictionary* category_more=[RANetwork Category:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:self.offset limit:20 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip] ;
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 [self.mum stopAnimating];
                 [self.mum stopAnimating];
@@ -1105,7 +1105,7 @@
             
             
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* category_data=[iSalesNetwork Category:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:0 limit:20 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip];
+                NSDictionary* category_data=[RANetwork Category:self.categoryid customid:0 price_template:0 sort:0 filter:nil keyword:nil offset:0 limit:20 alert:self.p_alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller modelname:self.modelname modeldescrip:self.modeldescrip];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     

+ 56 - 1
RedAnt ERP Mobile/common/Functions/contact/ContactAdvanceSearchViewController.m

@@ -7,7 +7,9 @@
 //
 //
 
 
 #import "ContactAdvanceSearchViewController.h"
 #import "ContactAdvanceSearchViewController.h"
-#import "iSalesNetwork.h"
+#import "MainViewController.h"
+#import "RANetwork.h"
+#import "JKTimerManager.h"
 
 
 
 
 @interface ContactAdvanceSearchViewController ()
 @interface ContactAdvanceSearchViewController ()
@@ -18,6 +20,7 @@
 -(void) viewWillAppear:(BOOL)animated
 -(void) viewWillAppear:(BOOL)animated
 {
 {
     [super viewWillAppear:animated];
     [super viewWillAppear:animated];
+    [self start_urgency_timer];
             [[self navigationController] setNavigationBarHidden:NO animated:NO];
             [[self navigationController] setNavigationBarHidden:NO animated:NO];
     //    self.offset = 0;
     //    self.offset = 0;
     //    [self.content_data removeAllObjects];
     //    [self.content_data removeAllObjects];
@@ -370,4 +373,56 @@
 }
 }
 */
 */
 
 
+#pragma mark - Urgency
+
+-(void) viewWillDisappear:(BOOL)animated
+{
+    [super viewWillDisappear:animated];
+    [self cancel_urgency_timer];
+}
+
+- (void)dealloc {
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic removeObjectForKey:[NSString stringWithFormat:@"level_%d",self.level]];
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:self.level] forKey:@"count"];
+    
+}
+
+- (void)start_urgency_timer {
+    
+    if (!self.editable) {
+        return;
+    }
+    
+    __weak typeof(self) weakSelf = self;
+    
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic setValue:appDelegate.user forKey:@"user"];
+#ifdef OFFLINE_MODE
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithBool:appDelegate.offline_mode] forKey:@"offline_mode"];
+#endif
+    [[JKTimerManager sharedTimerManager] scheduledDispatchTimerWithName:self.urgency_timer_name timeInterval:1 queue:nil repeats:YES action:^{
+        
+        NSMutableDictionary *urgencyDic = [NSMutableDictionary dictionary];
+        
+        //        DebugLog(@"timer start....");
+        
+        [urgencyDic setValue:weakSelf.content_data_download forKey:[NSString stringWithFormat:@"%@_restored_data",self.class_name]];
+        
+        [urgencyDic setValue:weakSelf.class_name forKey:@"class_name"];
+        
+        
+        [appDelegate.urgencyDic setValue:urgencyDic forKey:[NSString stringWithFormat:@"level_%d",weakSelf.level]];
+        [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:weakSelf.level + 1] forKey:@"count"];
+        
+    }];
+}
+
+- (void)cancel_urgency_timer {
+    [[JKTimerManager sharedTimerManager] cancelTimerWithName:self.urgency_timer_name];
+}
+
+
 @end
 @end

+ 3 - 3
RedAnt ERP Mobile/common/Functions/contact/ContactListViewController.m

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import "ContactListViewController.h"
 #import "ContactListViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "ContactListTableViewCell.h"
 #import "ContactListTableViewCell.h"
 #import "CustomerEditViewController.h"
 #import "CustomerEditViewController.h"
 #import "ContactAdvanceSearchViewController.h"
 #import "ContactAdvanceSearchViewController.h"
@@ -279,7 +279,7 @@ self.label_net_err.hidden=true;
         
         
         
         
         NSMutableDictionary* content=nil;
         NSMutableDictionary* content=nil;
-        content=[[iSalesNetwork request_ContactList:self.offset limit : self.limit keywords:self.keywords type:self.contact_type adv_search:self.adv_search] mutableCopy];
+        content=[[RANetwork request_ContactList:self.offset limit : self.limit keywords:self.keywords type:self.contact_type adv_search:self.adv_search] mutableCopy];
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             
             [self.mum stopAnimating];
             [self.mum stopAnimating];
@@ -504,7 +504,7 @@ self.label_net_err.hidden=true;
     
     
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* editor_json = [iSalesNetwork request_CustomerInfo:contactid];
+        NSDictionary* editor_json = [RANetwork request_CustomerInfo:contactid];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             

+ 93 - 3
RedAnt ERP Mobile/common/Functions/contact/CustomerEditViewController.m

@@ -7,8 +7,10 @@
 //
 //
 
 
 #import "CustomerEditViewController.h"
 #import "CustomerEditViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "MainViewController.h"
 #import "MainViewController.h"
+#import "JKTimerManager.h"
+
 @interface CustomerEditViewController ()
 @interface CustomerEditViewController ()
 
 
 @end
 @end
@@ -263,9 +265,9 @@
         NSDictionary* editor_json = nil;
         NSDictionary* editor_json = nil;
      //   NSString* contactId=[upparams valueForKey:@"contactId"];
      //   NSString* contactId=[upparams valueForKey:@"contactId"];
         if(self.bnewcustomer )
         if(self.bnewcustomer )
-            editor_json=[iSalesNetwork save_newCustomer:upparams];
+            editor_json=[RANetwork save_newCustomer:upparams];
         else
         else
-            editor_json=[iSalesNetwork update_Customer:upparams];
+            editor_json=[RANetwork update_Customer:upparams];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -322,4 +324,92 @@
  }
  }
  */
  */
 
 
+#pragma mark - Urgency
+
+- (void)viewWillAppear:(BOOL)animated {
+    [super viewWillAppear:animated];
+    [self start_urgency_timer];
+}
+
+-(void) viewWillDisappear:(BOOL)animated
+{
+    [super viewWillDisappear:animated];
+    [self cancel_urgency_timer];
+}
+
+- (void)dealloc {
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic removeObjectForKey:[NSString stringWithFormat:@"level_%d",self.level]];
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:self.level] forKey:@"count"];
+    
+}
+
+- (void)start_urgency_timer {
+    
+    if (!self.editable) {
+        return;
+    }
+    
+    __weak typeof(self) weakSelf = self;
+    
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic setValue:appDelegate.user forKey:@"user"];
+#ifdef OFFLINE_MODE
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithBool:appDelegate.offline_mode] forKey:@"offline_mode"];
+#endif
+    [[JKTimerManager sharedTimerManager] scheduledDispatchTimerWithName:self.urgency_timer_name timeInterval:1 queue:nil repeats:YES action:^{
+        
+        NSMutableDictionary *urgencyDic = [NSMutableDictionary dictionary];
+        
+        //        DebugLog(@"timer start....");
+        
+        [urgencyDic setValue:weakSelf.content_data_download forKey:[NSString stringWithFormat:@"%@_restored_data",self.class_name]];
+        
+        [urgencyDic setValue:weakSelf.class_name forKey:@"class_name"];
+        
+        
+        
+        if ([weakSelf.class_name isEqualToString:@"CustomerEditViewController"]) {
+            // CustomerEditViewController
+            __block NSString *contact_id = @"";
+            
+            [weakSelf.content_data_download enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
+                
+                // section_0
+                if ([key isEqualToString:@"section_0"]) {
+                    NSDictionary *section_0 = (NSDictionary *)obj;
+                    [section_0 enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
+                        
+                        // Contact ID
+                        if ([obj isKindOfClass:[NSDictionary class]]) {
+                            if ([[obj objectForKey:@"aname"] isEqualToString:@"Contact ID"]) {
+                                contact_id = [obj objectForKey:@"value"];
+                            }
+                            
+                        }
+                        
+                    }];
+                }
+                
+            }];
+            
+            [urgencyDic setValue:contact_id forKey:@"contact_id"];
+            
+            
+        }
+        
+        [appDelegate.urgencyDic setValue:urgencyDic forKey:[NSString stringWithFormat:@"level_%d",weakSelf.level]];
+        [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:weakSelf.level + 1] forKey:@"count"];
+        
+    }];
+}
+
+- (void)cancel_urgency_timer {
+    [[JKTimerManager sharedTimerManager] cancelTimerWithName:self.urgency_timer_name];
+}
+
+
+
 @end
 @end

+ 64 - 5
RedAnt ERP Mobile/common/Functions/contact/CustomerInfoViewController.m

@@ -7,9 +7,11 @@
 //
 //
 
 
 #import "CustomerInfoViewController.h"
 #import "CustomerInfoViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "CustomerEditViewController.h"
 #import "CustomerEditViewController.h"
 #import "MainViewController.h"
 #import "MainViewController.h"
+#import "JKTimerManager.h"
+
 @interface CustomerInfoViewController ()
 @interface CustomerInfoViewController ()
 
 
 @end
 @end
@@ -98,7 +100,7 @@
         
         
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
-            NSDictionary* editor_json = [iSalesNetwork update_OrderCustomer:appDelegate.order_code customerinfo:self.data_init];
+            NSDictionary* editor_json = [RANetwork update_OrderCustomer:appDelegate.order_code customerinfo:self.data_init];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 
@@ -159,7 +161,7 @@
             UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Release Order"];
             UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Release Order"];
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* order_json = [iSalesNetwork release_Order:appDelegate.order_code withScreen:ScreenCodeCustomerInfo];
+                NSDictionary* order_json = [RANetwork release_Order:appDelegate.order_code withScreen:ScreenCodeCustomerInfo];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -379,7 +381,7 @@
     
     
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* editor_json = [iSalesNetwork request_CustomerInfo:self.contactId];
+        NSDictionary* editor_json = [RANetwork request_CustomerInfo:self.contactId];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             
@@ -604,7 +606,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         NSString* cid=[self getValue:@"customer_cid"];
         NSString* cid=[self getValue:@"customer_cid"];
-        NSDictionary* return_json = [iSalesNetwork update_customer_img:cid img_url:url_up];
+        NSDictionary* return_json = [RANetwork update_customer_img:cid img_url:url_up];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -712,4 +714,61 @@
  }
  }
  */
  */
 
 
+#pragma mark - Urgency
+
+- (void)viewWillAppear:(BOOL)animated {
+    [super viewWillAppear:animated];
+    [self start_urgency_timer];
+}
+
+-(void) viewWillDisappear:(BOOL)animated
+{
+    [super viewWillDisappear:animated];
+    [self cancel_urgency_timer];
+}
+
+- (void)dealloc {
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic removeObjectForKey:[NSString stringWithFormat:@"level_%d",self.level]];
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:self.level] forKey:@"count"];
+    
+}
+
+- (void)start_urgency_timer {
+    
+    if (!self.editable) {
+        return;
+    }
+    
+    __weak typeof(self) weakSelf = self;
+    
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic setValue:appDelegate.user forKey:@"user"];
+#ifdef OFFLINE_MODE
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithBool:appDelegate.offline_mode] forKey:@"offline_mode"];
+#endif
+    [[JKTimerManager sharedTimerManager] scheduledDispatchTimerWithName:self.urgency_timer_name timeInterval:1 queue:nil repeats:YES action:^{
+        
+        NSMutableDictionary *urgencyDic = [NSMutableDictionary dictionary];
+        
+        //        DebugLog(@"timer start....");
+        
+        [urgencyDic setValue:weakSelf.content_data_download forKey:[NSString stringWithFormat:@"%@_restored_data",self.class_name]];
+        
+        [urgencyDic setValue:weakSelf.class_name forKey:@"class_name"];
+        
+        
+        [appDelegate.urgencyDic setValue:urgencyDic forKey:[NSString stringWithFormat:@"level_%d",weakSelf.level]];
+        [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:weakSelf.level + 1] forKey:@"count"];
+        
+    }];
+}
+
+- (void)cancel_urgency_timer {
+    [[JKTimerManager sharedTimerManager] cancelTimerWithName:self.urgency_timer_name];
+}
+
+
 @end
 @end

+ 60 - 0
RedAnt ERP Mobile/common/Functions/creditcard/CreditCardEditorViewController.m

@@ -7,7 +7,9 @@
 //
 //
 
 
 #import "CreditCardEditorViewController.h"
 #import "CreditCardEditorViewController.h"
+#import "MainViewController.h"
 #import "RAUtils.h"
 #import "RAUtils.h"
+#import "JKTimerManager.h"
 
 
 @interface CreditCardEditorViewController ()
 @interface CreditCardEditorViewController ()
 
 
@@ -142,4 +144,62 @@
 }
 }
 */
 */
 
 
+#pragma mark - Urgency
+
+- (void)viewWillAppear:(BOOL)animated {
+    [super viewWillAppear:animated];
+    [self start_urgency_timer];
+}
+
+-(void) viewWillDisappear:(BOOL)animated
+{
+    [super viewWillDisappear:animated];
+    [self cancel_urgency_timer];
+}
+
+- (void)dealloc {
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic removeObjectForKey:[NSString stringWithFormat:@"level_%d",self.level]];
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:self.level] forKey:@"count"];
+    
+}
+
+- (void)start_urgency_timer {
+    
+    if (!self.editable) {
+        return;
+    }
+    
+    __weak typeof(self) weakSelf = self;
+    
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic setValue:appDelegate.user forKey:@"user"];
+#ifdef OFFLINE_MODE
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithBool:appDelegate.offline_mode] forKey:@"offline_mode"];
+#endif
+    [[JKTimerManager sharedTimerManager] scheduledDispatchTimerWithName:self.urgency_timer_name timeInterval:1 queue:nil repeats:YES action:^{
+        
+        NSMutableDictionary *urgencyDic = [NSMutableDictionary dictionary];
+        
+        //        DebugLog(@"timer start....");
+        
+        [urgencyDic setValue:weakSelf.content_data_download forKey:[NSString stringWithFormat:@"%@_restored_data",self.class_name]];
+        
+        [urgencyDic setValue:weakSelf.class_name forKey:@"class_name"];
+        
+        
+        
+        [appDelegate.urgencyDic setValue:urgencyDic forKey:[NSString stringWithFormat:@"level_%d",weakSelf.level]];
+        [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:weakSelf.level + 1] forKey:@"count"];
+        
+    }];
+}
+
+- (void)cancel_urgency_timer {
+    [[JKTimerManager sharedTimerManager] cancelTimerWithName:self.urgency_timer_name];
+}
+
+
 @end
 @end

+ 2 - 2
RedAnt ERP Mobile/common/Functions/home/HomeViewController.m

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import "HomeViewController.h"
 #import "HomeViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "const.h"
 #import "const.h"
 #import "HomeTableViewCellBanner.h"
 #import "HomeTableViewCellBanner.h"
 #import "DetailViewController.h"
 #import "DetailViewController.h"
@@ -112,7 +112,7 @@
 //            NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
 //            NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
 //            
 //            
 //            NSMutableDictionary* data=[jsobj mutableCopy];
 //            NSMutableDictionary* data=[jsobj mutableCopy];
-            NSMutableDictionary* data=[[iSalesNetwork load_HomePage:0 customid:0] mutableCopy];
+            NSMutableDictionary* data=[[RANetwork load_HomePage:0 customid:0] mutableCopy];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 

+ 10 - 10
RedAnt ERP Mobile/common/Functions/modelDetail/DetailHeaderCell.m

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import "DetailHeaderCell.h"
 #import "DetailHeaderCell.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "MainViewController.h"
 #import "MainViewController.h"
 #import "LoginViewController.h"
 #import "LoginViewController.h"
 #import "ContactListViewController.h"
 #import "ContactListViewController.h"
@@ -123,7 +123,7 @@
                 
                 
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     
                     
-                    NSDictionary* return_json = [iSalesNetwork add_toPortfolio:self.product_id withScreen:ScreenCodeModelInfo];
+                    NSDictionary* return_json = [RANetwork add_toPortfolio:self.product_id withScreen:ScreenCodeModelInfo];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
                         
@@ -189,7 +189,7 @@
     {
     {
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
-            NSDictionary* return_json = [iSalesNetwork add_toPortfolio:self.product_id withScreen:ScreenCodeModelInfo];
+            NSDictionary* return_json = [RANetwork add_toPortfolio:self.product_id withScreen:ScreenCodeModelInfo];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 
@@ -254,7 +254,7 @@
                 
                 
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     
                     
-                    NSDictionary* return_json = [iSalesNetwork add_toWatchList:self.product_id withScreen:ScreenCodeModelInfo];
+                    NSDictionary* return_json = [RANetwork add_toWatchList:self.product_id withScreen:ScreenCodeModelInfo];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
                         
@@ -320,7 +320,7 @@
     {
     {
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
-            NSDictionary* return_json = [iSalesNetwork add_toWatchList:self.product_id withScreen:ScreenCodeModelInfo];
+            NSDictionary* return_json = [RANetwork add_toWatchList:self.product_id withScreen:ScreenCodeModelInfo];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 
@@ -660,7 +660,7 @@
                     
                     
                     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                         
                         
-                        NSDictionary* return_json = [iSalesNetwork add_toCart:self.product_id count:count name:self.model_label.text];
+                        NSDictionary* return_json = [RANetwork add_toCart:self.product_id count:count name:self.model_label.text];
                         
                         
                         dispatch_async(dispatch_get_main_queue(), ^{
                         dispatch_async(dispatch_get_main_queue(), ^{
                             
                             
@@ -736,7 +736,7 @@
             {
             {
                             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                                NSDictionary* return_json = [iSalesNetwork add_toCart:self.product_id count:count name:self.model_label.text];
+                                NSDictionary* return_json = [RANetwork add_toCart:self.product_id count:count name:self.model_label.text];
                 
                 
                                 dispatch_async(dispatch_get_main_queue(), ^{
                                 dispatch_async(dispatch_get_main_queue(), ^{
                 
                 
@@ -882,7 +882,7 @@
                 
                 
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     
                     
-                    NSDictionary* return_json = [iSalesNetwork add_toCart:self.product_id count:count name:self.model_label.text];
+                    NSDictionary* return_json = [RANetwork add_toCart:self.product_id count:count name:self.model_label.text];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
                         
@@ -962,7 +962,7 @@
         {
         {
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* return_json = [iSalesNetwork add_toCart:self.product_id count:count name:self.model_label.text];
+                NSDictionary* return_json = [RANetwork add_toCart:self.product_id count:count name:self.model_label.text];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     
@@ -1238,7 +1238,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* return_json = [iSalesNetwork new_Order];
+        NSDictionary* return_json = [RANetwork new_Order];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];

+ 7 - 7
RedAnt ERP Mobile/common/Functions/modelDetail/DetailViewController.m

@@ -9,7 +9,7 @@
 #import "DetailViewController.h"
 #import "DetailViewController.h"
 #import "DetailHeaderCell.h"
 #import "DetailHeaderCell.h"
 #import "DetailImageCell.h"
 #import "DetailImageCell.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 
 
 #import "RTLabel.h"
 #import "RTLabel.h"
 #import "DetailKVCell.h"
 #import "DetailKVCell.h"
@@ -116,7 +116,7 @@ dispatch_async(dispatch_get_main_queue(), ^{
     
     
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSMutableDictionary* detail_json = [[iSalesNetwork request_ItemDetail:self.product_id model_name:self.model_name category_id:self.category_id use_name:self.use_model_name] mutableCopy];
+        NSMutableDictionary* detail_json = [[RANetwork request_ItemDetail:self.product_id model_name:self.model_name category_id:self.category_id use_name:self.use_model_name] mutableCopy];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [self.mum stopAnimating];
             [self.mum stopAnimating];
@@ -1058,7 +1058,7 @@ self.isrefreshing=false;
                 UIAlertView *waitting_alert = [RAUtils waiting_alert:@"Sending Email" title:@"Waiting"];
                 UIAlertView *waitting_alert = [RAUtils waiting_alert:@"Sending Email" title:@"Waiting"];
                 dispatch_async(dispatch_get_global_queue(0,0), ^{
                 dispatch_async(dispatch_get_global_queue(0,0), ^{
                     
                     
-                    NSDictionary *dic = [iSalesNetwork notifyModel:self.product_id emailAddr:nil withScreen:ScreenCodeModelInfo];
+                    NSDictionary *dic = [RANetwork notifyModel:self.product_id emailAddr:nil withScreen:ScreenCodeModelInfo];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
                         
@@ -1209,7 +1209,7 @@ self.isrefreshing=false;
                 UIAlertView *waitting_alert = [RAUtils waiting_alert:@"Sending Email" title:@"Waiting"];
                 UIAlertView *waitting_alert = [RAUtils waiting_alert:@"Sending Email" title:@"Waiting"];
                 dispatch_async(dispatch_get_global_queue(0,0), ^{
                 dispatch_async(dispatch_get_global_queue(0,0), ^{
                     
                     
-                    NSDictionary *dic = [iSalesNetwork notifyModel:self.product_id emailAddr:nil withScreen:ScreenCodeModelInfo];
+                    NSDictionary *dic = [RANetwork notifyModel:self.product_id emailAddr:nil withScreen:ScreenCodeModelInfo];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
                         
@@ -1351,7 +1351,7 @@ self.isrefreshing=false;
                 UIAlertView *waitting_alert = [RAUtils waiting_alert:@"Sending Email" title:@"Waiting"];
                 UIAlertView *waitting_alert = [RAUtils waiting_alert:@"Sending Email" title:@"Waiting"];
                 dispatch_async(dispatch_get_global_queue(0,0), ^{
                 dispatch_async(dispatch_get_global_queue(0,0), ^{
                     
                     
-                    NSDictionary *dic = [iSalesNetwork notifyModel:self.product_id emailAddr:nil withScreen:ScreenCodeModelInfo];
+                    NSDictionary *dic = [RANetwork notifyModel:self.product_id emailAddr:nil withScreen:ScreenCodeModelInfo];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
                         
@@ -2252,7 +2252,7 @@ self.isrefreshing=false;
 //    UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..."title:@"Refreshing"];
 //    UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..."title:@"Refreshing"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* editor_json = [iSalesNetwork commoneditor_partialrefresh:params url:url];
+        NSDictionary* editor_json = [RANetwork commoneditor_partialrefresh:params url:url];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [cell end_refresh ];
             [cell end_refresh ];
@@ -2358,7 +2358,7 @@ self.isrefreshing=false;
                 
                 
                 dispatch_async(dispatch_get_global_queue(0, 0), ^{
                 dispatch_async(dispatch_get_global_queue(0, 0), ^{
                     
                     
-                    NSDictionary *result = [iSalesNetwork notifyModel:weakself.product_id emailAddr:text withScreen:ScreenCodeModelInfo];
+                    NSDictionary *result = [RANetwork notifyModel:weakself.product_id emailAddr:text withScreen:ScreenCodeModelInfo];
                     DebugLog(@"email cart result: %@",result);
                     DebugLog(@"email cart result: %@",result);
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
                         

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

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import "OfflineSettingViewController.h"
 #import "OfflineSettingViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "MainViewController.h"
 #import "MainViewController.h"
 #import "LoginViewController.h"
 #import "LoginViewController.h"
 #import "OLDataProvider.h"
 #import "OLDataProvider.h"
@@ -442,7 +442,7 @@
             UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Sign out"];
             UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Sign out"];
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* return_json = [iSalesNetwork logout];
+                NSDictionary* return_json = [RANetwork logout];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -519,7 +519,7 @@
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Sign out"];
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Sign out"];
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     
                     
-                    NSDictionary* return_json = [iSalesNetwork logout];
+                    NSDictionary* return_json = [RANetwork logout];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];

+ 3 - 3
RedAnt ERP Mobile/common/Functions/offline/SelectUploadOrderViewController.m

@@ -12,7 +12,7 @@
 #import "SelectOrderTableViewCell.h"
 #import "SelectOrderTableViewCell.h"
 #import "DefaultTableHeaderView.h"
 #import "DefaultTableHeaderView.h"
 #import "DefaultAppearance.h"
 #import "DefaultAppearance.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "RAUtils.h"
 #import "RAUtils.h"
 #import "AppDelegate.h"
 #import "AppDelegate.h"
 #import "Singleton.h"
 #import "Singleton.h"
@@ -164,7 +164,7 @@
                 [alertVC dismissViewControllerAnimated:YES completion:nil];
                 [alertVC dismissViewControllerAnimated:YES completion:nil];
                 // 关闭订单
                 // 关闭订单
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Release Order"];
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Release Order"];
-                NSDictionary* order_json = [iSalesNetwork release_Order:order_code withScreen:ScreenCodeOfflineSetting];
+                NSDictionary* order_json = [RANetwork release_Order:order_code withScreen:ScreenCodeOfflineSetting];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     
@@ -205,7 +205,7 @@
         
         
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Merge Order"];
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Merge Order"];
         
         
-        NSDictionary *ret = [iSalesNetwork merge_order:params];
+        NSDictionary *ret = [RANetwork merge_order:params];
         
         
         [waitalert dismissWithClickedButtonIndex:0 animated:YES];
         [waitalert dismissWithClickedButtonIndex:0 animated:YES];
         
         

+ 83 - 13
RedAnt ERP Mobile/common/Functions/order/CreateOrderViewController.m

@@ -7,14 +7,14 @@
 //
 //
 
 
 #import "CreateOrderViewController.h"
 #import "CreateOrderViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "MainViewController.h"
 #import "MainViewController.h"
 #import "Singleton.h"
 #import "Singleton.h"
 #import "config.h"
 #import "config.h"
 #import "CustomIOSAlertView.h"
 #import "CustomIOSAlertView.h"
 #import "AddressEditorViewController.h"
 #import "AddressEditorViewController.h"
 #import "CreditCardEditorViewController.h"
 #import "CreditCardEditorViewController.h"
-
+#import "JKTimerManager.h"
 
 
 #define SUBMIT_CONFIRM 123
 #define SUBMIT_CONFIRM 123
 #define KEEP_TAIL 456
 #define KEEP_TAIL 456
@@ -29,15 +29,24 @@
 @implementation CreateOrderViewController
 @implementation CreateOrderViewController
 
 
 - (void)dealloc {
 - (void)dealloc {
+    
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic removeObjectForKey:[NSString stringWithFormat:@"level_%d",self.level]];
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:self.level] forKey:@"count"];
+    
     if (self.isResume && self.userType == USER_ROLE_CUSTOMER) {
     if (self.isResume && self.userType == USER_ROLE_CUSTOMER) {
         [self releaseOrderAfterSave];
         [self releaseOrderAfterSave];
     }
     }
+    
 }
 }
 
 
 -(void) viewWillAppear:(BOOL)animated
 -(void) viewWillAppear:(BOOL)animated
 {
 {
     [super viewWillAppear:animated];
     [super viewWillAppear:animated];
     
     
+    [self start_urgency_timer];
+    
     self.isResume = [[[NSUserDefaults standardUserDefaults] objectForKey:@"urgency_resume"] boolValue];
     self.isResume = [[[NSUserDefaults standardUserDefaults] objectForKey:@"urgency_resume"] boolValue];
     self.userType = [[[NSUserDefaults standardUserDefaults] objectForKey:@"urgency_userType"] integerValue];
     self.userType = [[[NSUserDefaults standardUserDefaults] objectForKey:@"urgency_userType"] integerValue];
     BOOL canSubmit = [[[NSUserDefaults standardUserDefaults] objectForKey:@"urgency_submitOrder"] boolValue];
     BOOL canSubmit = [[[NSUserDefaults standardUserDefaults] objectForKey:@"urgency_submitOrder"] boolValue];
@@ -908,7 +917,7 @@
                                                         [upparams setValue:@"false" forKey:@"isHold"];
                                                         [upparams setValue:@"false" forKey:@"isHold"];
                                                         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                                         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                                             
                                                             
-                                                            NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
+                                                            NSDictionary* editor_json = [RANetwork saveandcommit_Order:upparams];
                                                             
                                                             
                                                             dispatch_async(dispatch_get_main_queue(), ^{
                                                             dispatch_async(dispatch_get_main_queue(), ^{
                                                                 [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                                                                 [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -1031,7 +1040,7 @@
                                                     [upparams setValue:@"true" forKey:@"isHold"];
                                                     [upparams setValue:@"true" forKey:@"isHold"];
                                                     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                                     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                                         
                                                         
-                                                        NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
+                                                        NSDictionary* editor_json = [RANetwork saveandcommit_Order:upparams];
                                                         
                                                         
                                                         dispatch_async(dispatch_get_main_queue(), ^{
                                                         dispatch_async(dispatch_get_main_queue(), ^{
                                                             
                                                             
@@ -1132,7 +1141,7 @@
                             [upparams setValue:@"false" forKey:@"isHold"];
                             [upparams setValue:@"false" forKey:@"isHold"];
                             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                 
                                 
-                                NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
+                                NSDictionary* editor_json = [RANetwork saveandcommit_Order:upparams];
                                 
                                 
                                 dispatch_async(dispatch_get_main_queue(), ^{
                                 dispatch_async(dispatch_get_main_queue(), ^{
                                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -1276,7 +1285,7 @@
                         [upparams setValue:@"true" forKey:@"isHold"];
                         [upparams setValue:@"true" forKey:@"isHold"];
                         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                             
                             
-                            NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
+                            NSDictionary* editor_json = [RANetwork saveandcommit_Order:upparams];
                             
                             
                             dispatch_async(dispatch_get_main_queue(), ^{
                             dispatch_async(dispatch_get_main_queue(), ^{
                                 
                                 
@@ -1595,7 +1604,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Saving Order"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Saving Order"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* editor_json = [iSalesNetwork save_Order:upparams];
+        NSDictionary* editor_json = [RANetwork save_Order:upparams];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -1960,7 +1969,7 @@
                                                     [upparams setValue:@"false" forKey:@"isHold"];
                                                     [upparams setValue:@"false" forKey:@"isHold"];
                                                     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                                     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                                         
                                                         
-                                                        NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
+                                                        NSDictionary* editor_json = [RANetwork saveandcommit_Order:upparams];
                                                         
                                                         
                                                         dispatch_async(dispatch_get_main_queue(), ^{
                                                         dispatch_async(dispatch_get_main_queue(), ^{
                                                             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                                                             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -2083,7 +2092,7 @@
                                                 [upparams setValue:@"true" forKey:@"isHold"];
                                                 [upparams setValue:@"true" forKey:@"isHold"];
                                                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                                     
                                                     
-                                                    NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
+                                                    NSDictionary* editor_json = [RANetwork saveandcommit_Order:upparams];
                                                     
                                                     
                                                     dispatch_async(dispatch_get_main_queue(), ^{
                                                     dispatch_async(dispatch_get_main_queue(), ^{
                                                         
                                                         
@@ -2184,7 +2193,7 @@
                         [upparams setValue:@"false" forKey:@"isHold"];
                         [upparams setValue:@"false" forKey:@"isHold"];
                         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                             
                             
-                            NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
+                            NSDictionary* editor_json = [RANetwork saveandcommit_Order:upparams];
                             
                             
                             dispatch_async(dispatch_get_main_queue(), ^{
                             dispatch_async(dispatch_get_main_queue(), ^{
                                 [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                                 [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -2321,7 +2330,7 @@
                     [upparams setValue:@"true" forKey:@"isHold"];
                     [upparams setValue:@"true" forKey:@"isHold"];
                     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                         
                         
-                        NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
+                        NSDictionary* editor_json = [RANetwork saveandcommit_Order:upparams];
                         
                         
                         dispatch_async(dispatch_get_main_queue(), ^{
                         dispatch_async(dispatch_get_main_queue(), ^{
                             
                             
@@ -2544,7 +2553,7 @@
             UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Release Order"];
             UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Release Order"];
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* order_json = [iSalesNetwork release_Order:appDelegate.order_code withScreen:nil];
+                NSDictionary* order_json = [RANetwork release_Order:appDelegate.order_code withScreen:nil];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -2854,7 +2863,7 @@
 - (void)releaseOrderAfterSave {
 - (void)releaseOrderAfterSave {
     AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
     AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
 
 
-    [iSalesNetwork release_Order:appDelegate.order_code withScreen:nil];
+    [RANetwork release_Order:appDelegate.order_code withScreen:nil];
 
 
     [appDelegate closeOrder]; 
     [appDelegate closeOrder]; 
     [appDelegate SetSo:nil];
     [appDelegate SetSo:nil];
@@ -3224,4 +3233,65 @@
     }
     }
 }
 }
 
 
+#pragma mark - Urgency
+
+
+
+-(void) viewWillDisappear:(BOOL)animated
+{
+    [super viewWillDisappear:animated];
+    [self cancel_urgency_timer];
+}
+
+- (void)start_urgency_timer {
+    
+    if (!self.editable) {
+        return;
+    }
+    
+    __weak typeof(self) weakSelf = self;
+    
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic setValue:appDelegate.user forKey:@"user"];
+#ifdef OFFLINE_MODE
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithBool:appDelegate.offline_mode] forKey:@"offline_mode"];
+#endif
+    [[JKTimerManager sharedTimerManager] scheduledDispatchTimerWithName:self.urgency_timer_name timeInterval:1 queue:nil repeats:YES action:^{
+        
+        NSMutableDictionary *urgencyDic = [NSMutableDictionary dictionary];
+        
+        //        DebugLog(@"timer start....");
+        
+        [urgencyDic setValue:weakSelf.content_data_download forKey:[NSString stringWithFormat:@"%@_restored_data",self.class_name]];
+        
+        [urgencyDic setValue:weakSelf.class_name forKey:@"class_name"];
+        
+        
+        
+       if ([weakSelf.class_name isEqualToString:@"CreateOrderViewController"]) {
+            // CreateOrderViewController
+            
+            
+            [urgencyDic setValue:appDelegate.order_code forKey:@"order_code"];
+            MainViewController *mainVC = (MainViewController *)appDelegate.main_vc;
+            NSString *so = [mainVC.labelSo.text substringFromIndex:5];
+            [urgencyDic setValue:so forKey:@"order_so"];
+            [urgencyDic setValue:[NSNumber numberWithInt:appDelegate.order_status ] forKey:@"order_status"];
+            
+            [urgencyDic setValue:appDelegate.order_customer_id forKey:@"order_customer_id"];
+            
+        }
+        
+        [appDelegate.urgencyDic setValue:urgencyDic forKey:[NSString stringWithFormat:@"level_%d",weakSelf.level]];
+        [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:weakSelf.level + 1] forKey:@"count"];
+        
+    }];
+}
+
+- (void)cancel_urgency_timer {
+    [[JKTimerManager sharedTimerManager] cancelTimerWithName:self.urgency_timer_name];
+}
+
+
 @end
 @end

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

@@ -14,7 +14,7 @@
 #import "OrderDetailPriceCell.h"
 #import "OrderDetailPriceCell.h"
 #import "OrderDetailSignatureCell.h"
 #import "OrderDetailSignatureCell.h"
 
 
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 
 
 #import "RTLabel.h"
 #import "RTLabel.h"
 #import "DetailViewController.h"
 #import "DetailViewController.h"
@@ -284,7 +284,7 @@
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Release Order"];
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Release Order"];
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
-            NSDictionary* order_json = [iSalesNetwork release_Order:self.order_code withScreen:ScreenCodeOrderInfo];
+            NSDictionary* order_json = [RANetwork release_Order:self.order_code withScreen:ScreenCodeOrderInfo];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                 [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -565,7 +565,7 @@
             
             
             dispatch_async(dispatch_get_global_queue(0, 0), ^{
             dispatch_async(dispatch_get_global_queue(0, 0), ^{
                 
                 
-                NSDictionary* order_json = [iSalesNetwork release_Order:appDelegate.order_code withScreen:ScreenCodeOrderInfo];
+                NSDictionary* order_json = [RANetwork release_Order:appDelegate.order_code withScreen:ScreenCodeOrderInfo];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     
@@ -656,7 +656,7 @@
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Signature"];
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Signature"];
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     
                     
-                    NSDictionary* order_json = [iSalesNetwork sign_Order:self.order_code path:img_url_up];
+                    NSDictionary* order_json = [RANetwork sign_Order:self.order_code path:img_url_up];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -770,7 +770,7 @@
                     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Signature"];
                     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Signature"];
                     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                         
                         
-                        NSDictionary* order_json = [iSalesNetwork sign_Order:weakSelf.order_code path:img_url_up];
+                        NSDictionary* order_json = [RANetwork sign_Order:weakSelf.order_code path:img_url_up];
                         
                         
                         dispatch_async(dispatch_get_main_queue(), ^{
                         dispatch_async(dispatch_get_main_queue(), ^{
                             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -1063,7 +1063,7 @@
             UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Open Order"];
             UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Open Order"];
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* order_json = [iSalesNetwork open_Order:self.order_code];
+                NSDictionary* order_json = [RANetwork open_Order:self.order_code];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -1164,7 +1164,7 @@
         
         
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
-            NSDictionary* order_json = [iSalesNetwork request_OrderDetail:self.orderid];
+            NSDictionary* order_json = [RANetwork request_OrderDetail:self.orderid];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 
@@ -3860,7 +3860,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Copy Order"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Copy Order"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* order_json = [iSalesNetwork copy_Order:self.order_code];
+        NSDictionary* order_json = [RANetwork copy_Order:self.order_code];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];

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

@@ -9,7 +9,7 @@
 #import "OrderListViewController.h"
 #import "OrderListViewController.h"
 
 
 #import "OrderListTableViewCell.h"
 #import "OrderListTableViewCell.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "OrderDetailViewController.h"
 #import "OrderDetailViewController.h"
 #import "MainViewController.h"
 #import "MainViewController.h"
 
 
@@ -568,7 +568,7 @@
     
     
     
     
         NSMutableDictionary* content=nil;
         NSMutableDictionary* content=nil;
-        content=[[iSalesNetwork request_OrderList:self.offset limit : self.limit keywords:self.keywords status:str_status customer:self.customer_id is_merged:isMerged] mutableCopy];
+        content=[[RANetwork request_OrderList:self.offset limit : self.limit keywords:self.keywords status:str_status customer:self.customer_id is_merged:isMerged] mutableCopy];
     
     
         
         
         dispatch_sync(dispatch_get_main_queue(), ^{
         dispatch_sync(dispatch_get_main_queue(), ^{
@@ -691,7 +691,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* return_json = [iSalesNetwork new_Order];
+        NSDictionary* return_json = [RANetwork new_Order];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -1299,7 +1299,7 @@
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Delete Order"];
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Delete Order"];
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     
                     
-                    NSDictionary* return_json = [iSalesNetwork delete_Order:orderid];
+                    NSDictionary* return_json = [RANetwork delete_Order:orderid];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -1372,7 +1372,7 @@
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Cancel Order"];
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Cancel Order"];
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     
                     
-                    NSDictionary* return_json = [iSalesNetwork cancel_Order:orderid order_code:nil];
+                    NSDictionary* return_json = [RANetwork cancel_Order:orderid order_code:nil];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -1609,7 +1609,7 @@
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Cancel Order"];
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Cancel Order"];
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     
                     
-                    NSDictionary* return_json = [iSalesNetwork cancel_Order:orderid order_code:nil];
+                    NSDictionary* return_json = [RANetwork cancel_Order:orderid order_code:nil];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -2088,7 +2088,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
     __weak typeof(self) weakself = self;
     __weak typeof(self) weakself = self;
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* order_json = [iSalesNetwork open_Order:orderCode];
+        NSDictionary* order_json = [RANetwork open_Order:orderCode];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
 
 

+ 4 - 4
RedAnt ERP Mobile/common/Functions/portfolio/PDFListViewController.m

@@ -8,7 +8,7 @@
 
 
 #import "PDFListViewController.h"
 #import "PDFListViewController.h"
 #import "PDFListTableViewCell.h"
 #import "PDFListTableViewCell.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "RAPDFViewController.h"
 #import "RAPDFViewController.h"
 #import "MainViewController.h"
 #import "MainViewController.h"
 #import "DefaultAppearance.h"
 #import "DefaultAppearance.h"
@@ -167,7 +167,7 @@
         
         
         
         
         NSMutableDictionary* content=nil;
         NSMutableDictionary* content=nil;
-        content=[[iSalesNetwork request_PDFList:self.offset limit : self.limit keywords:self.keywords] mutableCopy];
+        content=[[RANetwork request_PDFList:self.offset limit : self.limit keywords:self.keywords] mutableCopy];
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             
             
             
@@ -509,7 +509,7 @@
         NSMutableDictionary* values = [[RAUtils string2dict:[self.content_data[indexPath.row] valueForKey:@"model_info"]] mutableCopy];
         NSMutableDictionary* values = [[RAUtils string2dict:[self.content_data[indexPath.row] valueForKey:@"model_info"]] mutableCopy];
         params[@"replaceValue"]=values;
         params[@"replaceValue"]=values;
         params[@"tearsheetsId"]=[self.content_data[indexPath.row] valueForKey:@"tearsheetsId"];
         params[@"tearsheetsId"]=[self.content_data[indexPath.row] valueForKey:@"tearsheetsId"];
-        NSString* createpdf = [iSalesNetwork create_portfolio:params];
+        NSString* createpdf = [RANetwork create_portfolio:params];
         if(createpdf!=nil)
         if(createpdf!=nil)
             url=createpdf;
             url=createpdf;
        // if()
        // if()
@@ -615,7 +615,7 @@
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Remove Portfilio"];
                 UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Remove Portfilio"];
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     
                     
-                    NSDictionary* cart_json = [iSalesNetwork delete_portfoliolist:listid];
+                    NSDictionary* cart_json = [RANetwork delete_portfoliolist:listid];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
                         

+ 2 - 2
RedAnt ERP Mobile/common/Functions/portfolio/PortfolioEditQTYViewController.m

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import "PortfolioEditQTYViewController.h"
 #import "PortfolioEditQTYViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #define INTNUMBERS @"0123456789\n"
 #define INTNUMBERS @"0123456789\n"
 #define NUMBERS @"0123456789.\n"
 #define NUMBERS @"0123456789.\n"
 @interface PortfolioEditQTYViewController ()
 @interface PortfolioEditQTYViewController ()
@@ -115,7 +115,7 @@
     self.labelQueryQTY.text = @"Query current QTY...";
     self.labelQueryQTY.text = @"Query current QTY...";
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* detail_json = [iSalesNetwork request_model_qty:self.arr_fashion_ids[0]];
+        NSDictionary* detail_json = [RANetwork request_model_qty:self.arr_fashion_ids[0]];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             self.buttonRefresh.enabled=true;
             self.buttonRefresh.enabled=true;

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

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import "PortfolioViewController.h"
 #import "PortfolioViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "ModelItemCell.h"
 #import "ModelItemCell.h"
 #import "DetailViewController.h"
 #import "DetailViewController.h"
 #import "LoginViewController.h"
 #import "LoginViewController.h"
@@ -240,7 +240,7 @@
     
     
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* return_json = [iSalesNetwork add_toCart:ids count:-1 name:nil];
+        NSDictionary* return_json = [RANetwork add_toCart:ids count:-1 name:nil];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             
@@ -296,7 +296,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* return_json = [iSalesNetwork new_Order];
+        NSDictionary* return_json = [RANetwork new_Order];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -637,7 +637,7 @@
                     
                     
                     NSDictionary* cart_json = nil;
                     NSDictionary* cart_json = nil;
                     
                     
-                    cart_json= [iSalesNetwork portfolio_setPrice:[NSString stringWithFormat:@"%d",[[item_json valueForKey:@"item_id"] intValue]] price:price discount:discount QTY:qty  qty_p:qty_p notes:notes];
+                    cart_json= [RANetwork portfolio_setPrice:[NSString stringWithFormat:@"%d",[[item_json valueForKey:@"item_id"] intValue]] price:price discount:discount QTY:qty  qty_p:qty_p notes:notes];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -777,7 +777,7 @@
                 
                 
                 NSDictionary* cart_json = nil;
                 NSDictionary* cart_json = nil;
                 
                 
-                cart_json= [iSalesNetwork portfolio_setPrice:ids price:price discount:discount QTY:qty qty_p:qty_p notes:notes];
+                cart_json= [RANetwork portfolio_setPrice:ids price:price discount:discount QTY:qty qty_p:qty_p notes:notes];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -856,7 +856,7 @@
     NSString * string = [checked componentsJoinedByString:@","];
     NSString * string = [checked componentsJoinedByString:@","];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* cart_json = [iSalesNetwork portfolio_remove:string];
+        NSDictionary* cart_json = [RANetwork portfolio_remove:string];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             
@@ -908,7 +908,7 @@
     
     
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* cart_json = [iSalesNetwork request_Portfolio:self.sortIndex];
+        NSDictionary* cart_json = [RANetwork request_Portfolio:self.sortIndex];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [self.mum stopAnimating];
             [self.mum stopAnimating];
@@ -1358,7 +1358,7 @@
                 
                 
                 NSDictionary* cart_json = nil;
                 NSDictionary* cart_json = nil;
                 
                 
-                cart_json= [iSalesNetwork portfolio_setPrice:[NSString stringWithFormat:@"%d",[[item_json valueForKey:@"item_id"] intValue]] price:price discount:discount QTY:qty  qty_p:qty_p notes:notes];
+                cart_json= [RANetwork portfolio_setPrice:[NSString stringWithFormat:@"%d",[[item_json valueForKey:@"item_id"] intValue]] price:price discount:discount QTY:qty  qty_p:qty_p notes:notes];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -1522,7 +1522,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
             
             
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* cart_json = [iSalesNetwork portfolio_remove:ids];
+                NSDictionary* cart_json = [RANetwork portfolio_remove:ids];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     

+ 63 - 4
RedAnt ERP Mobile/common/Functions/portfolio/TearSheetParamViewController.m

@@ -7,11 +7,12 @@
 //
 //
 
 
 #import "TearSheetParamViewController.h"
 #import "TearSheetParamViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "RAPDFViewController.h"
 #import "RAPDFViewController.h"
 #import "MainViewController.h"
 #import "MainViewController.h"
 #import "Singleton.h"
 #import "Singleton.h"
 #import "TextUtils.h"
 #import "TextUtils.h"
+#import "JKTimerManager.h"
 
 
 @interface TearSheetParamViewController ()
 @interface TearSheetParamViewController ()
 
 
@@ -280,7 +281,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Processing"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Processing"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* editor_json = [iSalesNetwork request_TearSheet:upparams];
+        NSDictionary* editor_json = [RANetwork request_TearSheet:upparams];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -382,7 +383,7 @@
                         
                         
 
 
                         
                         
-                        NSDictionary* json = [iSalesNetwork save_TearSheet:upparams];
+                        NSDictionary* json = [RANetwork save_TearSheet:upparams];
                         
                         
                         dispatch_async(dispatch_get_main_queue(), ^{
                         dispatch_async(dispatch_get_main_queue(), ^{
                             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -674,7 +675,7 @@
                 [upparams setValue:del_ids forKey:@"itemIds"];
                 [upparams setValue:del_ids forKey:@"itemIds"];
                 [upparams setValue:saveNote forKey:@"pdfNote"];
                 [upparams setValue:saveNote forKey:@"pdfNote"];
                 
                 
-                NSDictionary* editor_json = [iSalesNetwork direct_save_TearSheet:upparams];
+                NSDictionary* editor_json = [RANetwork direct_save_TearSheet:upparams];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                     [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -743,4 +744,62 @@
  }
  }
  */
  */
 
 
+
+#pragma mark - Urgency
+
+- (void)viewWillAppear:(BOOL)animated {
+    [super viewWillAppear:animated];
+    [self start_urgency_timer];
+}
+
+-(void) viewWillDisappear:(BOOL)animated
+{
+    [super viewWillDisappear:animated];
+    [self cancel_urgency_timer];
+}
+
+- (void)dealloc {
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic removeObjectForKey:[NSString stringWithFormat:@"level_%d",self.level]];
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:self.level] forKey:@"count"];
+    
+}
+
+- (void)start_urgency_timer {
+    
+    if (!self.editable) {
+        return;
+    }
+    
+    __weak typeof(self) weakSelf = self;
+    
+    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    
+    [appDelegate.urgencyDic setValue:appDelegate.user forKey:@"user"];
+#ifdef OFFLINE_MODE
+    [appDelegate.urgencyDic setValue:[NSNumber numberWithBool:appDelegate.offline_mode] forKey:@"offline_mode"];
+#endif
+    [[JKTimerManager sharedTimerManager] scheduledDispatchTimerWithName:self.urgency_timer_name timeInterval:1 queue:nil repeats:YES action:^{
+        
+        NSMutableDictionary *urgencyDic = [NSMutableDictionary dictionary];
+        
+        //        DebugLog(@"timer start....");
+        
+        [urgencyDic setValue:weakSelf.content_data_download forKey:[NSString stringWithFormat:@"%@_restored_data",self.class_name]];
+        
+        [urgencyDic setValue:weakSelf.class_name forKey:@"class_name"];
+        
+        
+        [appDelegate.urgencyDic setValue:urgencyDic forKey:[NSString stringWithFormat:@"level_%d",weakSelf.level]];
+        [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:weakSelf.level + 1] forKey:@"count"];
+        
+    }];
+}
+
+- (void)cancel_urgency_timer {
+    [[JKTimerManager sharedTimerManager] cancelTimerWithName:self.urgency_timer_name];
+}
+
+
 @end
 @end

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

@@ -8,7 +8,7 @@
 
 
 #import "ItemSearchViewController.h"
 #import "ItemSearchViewController.h"
 #import "const.h"
 #import "const.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "CategoryCellNPD.h"
 #import "CategoryCellNPD.h"
 #import "DetailViewController.h"
 #import "DetailViewController.h"
 
 
@@ -530,7 +530,7 @@
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
     
     
-        NSDictionary* category_more=[iSalesNetwork ItemSearch:self.offset limit:20 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller
+        NSDictionary* category_more=[RANetwork ItemSearch:self.offset limit:20 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller
                                      ];
                                      ];
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [self.mum stopAnimating];
             [self.mum stopAnimating];
@@ -667,7 +667,7 @@
          [self.mum startAnimating];
          [self.mum startAnimating];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* category_data=[iSalesNetwork ItemSearch:0 limit:20 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller
+        NSDictionary* category_data=[RANetwork ItemSearch:0 limit:20 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller
                                                              ];
                                                              ];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
@@ -940,7 +940,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* return_json = [iSalesNetwork new_Order];
+        NSDictionary* return_json = [RANetwork new_Order];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -1134,9 +1134,9 @@
         NSDictionary* return_json = nil;
         NSDictionary* return_json = nil;
         if (self.addAll) {
         if (self.addAll) {
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-            return_json = [iSalesNetwork ItemSearch_addall:self.offset limit:20 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller orderCode:appDelegate.order_code addTo:@"cart"];
+            return_json = [RANetwork ItemSearch_addall:self.offset limit:20 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller orderCode:appDelegate.order_code addTo:@"cart"];
         } else {
         } else {
-            return_json = [iSalesNetwork add_toCart_byName:ids withScreen:ScreenCodeParticularCategory];
+            return_json = [RANetwork add_toCart_byName:ids withScreen:ScreenCodeParticularCategory];
         }
         }
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
@@ -1257,9 +1257,9 @@
         NSDictionary* return_json = nil;
         NSDictionary* return_json = nil;
         if (self.addAll) {
         if (self.addAll) {
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-            return_json = [iSalesNetwork ItemSearch_addall:self.offset limit:20 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller orderCode:nil addTo:@"portfolio"];
+            return_json = [RANetwork ItemSearch_addall:self.offset limit:20 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller orderCode:nil addTo:@"portfolio"];
         } else {
         } else {
-            return_json = [iSalesNetwork add_toPortfolio:ids withScreen:ScreenCodeParticularCategory];
+            return_json = [RANetwork add_toPortfolio:ids withScreen:ScreenCodeParticularCategory];
         }
         }
 
 
         
         
@@ -1352,9 +1352,9 @@
         NSDictionary* return_json = nil;
         NSDictionary* return_json = nil;
         if (self.addAll) {
         if (self.addAll) {
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-            return_json = [iSalesNetwork ItemSearch_addall:self.offset limit:20 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller orderCode:nil addTo:@"wishlist"];
+            return_json = [RANetwork ItemSearch_addall:self.offset limit:20 covertype:self.covertype ctgid:self.ctgid modelname:self.modelname modeldescrip:self.modeldescrip alert:self.alert qty:self.p_QTY available:self.p_available price:self.p_price bestseller:self.p_bestseller orderCode:nil addTo:@"wishlist"];
         } else {
         } else {
-            return_json = [iSalesNetwork add_toWatchList:ids withScreen:ScreenCodeParticularCategory];
+            return_json = [RANetwork add_toWatchList:ids withScreen:ScreenCodeParticularCategory];
         }
         }
 
 
         
         

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

@@ -8,7 +8,7 @@
 
 
 #import "SearchViewController.h"
 #import "SearchViewController.h"
 #import "const.h"
 #import "const.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "CategoryCellNPD.h"
 #import "CategoryCellNPD.h"
 #import "DetailViewController.h"
 #import "DetailViewController.h"
 #import "ContactListViewController.h"
 #import "ContactListViewController.h"
@@ -726,7 +726,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* return_json = [iSalesNetwork new_Order];
+        NSDictionary* return_json = [RANetwork new_Order];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -921,9 +921,9 @@
         NSDictionary* return_json = nil;
         NSDictionary* return_json = nil;
         if (self.addAll) {
         if (self.addAll) {
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-            return_json = [iSalesNetwork Search_addall:self.offset limit:20 keywords:self.keywords matchfull:self.loadmore_matchfull orderCode:appDelegate.order_code addTo:@"cart"];
+            return_json = [RANetwork Search_addall:self.offset limit:20 keywords:self.keywords matchfull:self.loadmore_matchfull orderCode:appDelegate.order_code addTo:@"cart"];
         } else {
         } else {
-            return_json = [iSalesNetwork add_toCart_byName:ids withScreen:ScreenCodeSearch];
+            return_json = [RANetwork add_toCart_byName:ids withScreen:ScreenCodeSearch];
         }
         }
 
 
         
         
@@ -1043,9 +1043,9 @@
         NSDictionary* return_json = nil;
         NSDictionary* return_json = nil;
         if (self.addAll) {
         if (self.addAll) {
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-            return_json = [iSalesNetwork Search_addall:self.offset limit:20 keywords:self.keywords matchfull:self.loadmore_matchfull orderCode:nil addTo:@"portfolio"];
+            return_json = [RANetwork Search_addall:self.offset limit:20 keywords:self.keywords matchfull:self.loadmore_matchfull orderCode:nil addTo:@"portfolio"];
         } else {
         } else {
-            return_json = [iSalesNetwork add_toPortfolio:ids withScreen:ScreenCodeSearch];
+            return_json = [RANetwork add_toPortfolio:ids withScreen:ScreenCodeSearch];
         }
         }
 
 
         
         
@@ -1145,9 +1145,9 @@
         NSDictionary* return_json = nil;
         NSDictionary* return_json = nil;
         if (self.addAll) {
         if (self.addAll) {
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
             AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-            return_json = [iSalesNetwork Search_addall:self.offset limit:20 keywords:self.keywords matchfull:self.loadmore_matchfull orderCode:nil addTo:@"wishlist"];
+            return_json = [RANetwork Search_addall:self.offset limit:20 keywords:self.keywords matchfull:self.loadmore_matchfull orderCode:nil addTo:@"wishlist"];
         } else {
         } else {
-            return_json = [iSalesNetwork add_toWatchList:ids withScreen:ScreenCodeSearch];
+            return_json = [RANetwork add_toWatchList:ids withScreen:ScreenCodeSearch];
         }
         }
 
 
         
         
@@ -1231,7 +1231,7 @@
         
         
 
 
         
         
-        NSDictionary* category_more=[iSalesNetwork Search:self.offset limit:20 keywords:self.keywords matchfull:self.loadmore_matchfull];
+        NSDictionary* category_more=[RANetwork Search:self.offset limit:20 keywords:self.keywords matchfull:self.loadmore_matchfull];
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [self.mum stopAnimating];
             [self.mum stopAnimating];
             self.isrefreshing=false;
             self.isrefreshing=false;
@@ -1361,7 +1361,7 @@
         self.loadmore_matchfull = self.switch_matchfull.isOn;
         self.loadmore_matchfull = self.switch_matchfull.isOn;
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* category_data=[iSalesNetwork Search:0 limit:20 keywords:self.keywords matchfull:self.switch_matchfull.isOn];
+        NSDictionary* category_data=[RANetwork Search:0 limit:20 keywords:self.keywords matchfull:self.switch_matchfull.isOn];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             

+ 1 - 1
RedAnt ERP Mobile/common/Functions/sidemenu/LoginViewController.h

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import <UIKit/UIKit.h>
 #import <UIKit/UIKit.h>
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "AESCrypt.h"
 #import "AESCrypt.h"
 //#import "MyAutocompleteView.h"
 //#import "MyAutocompleteView.h"
 @class LoginViewController;
 @class LoginViewController;

+ 1 - 1
RedAnt ERP Mobile/common/Functions/sidemenu/LoginViewController.m

@@ -253,7 +253,7 @@
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
         
         
-        int ret=[iSalesNetwork  Authorize:user password:password];
+        int ret=[RANetwork  Authorize:user password:password];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];

+ 2 - 2
RedAnt ERP Mobile/common/Functions/sidemenu/RetrievePassViewController.m

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import "RetrievePassViewController.h"
 #import "RetrievePassViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 @interface RetrievePassViewController ()
 @interface RetrievePassViewController ()
 
 
 @end
 @end
@@ -50,7 +50,7 @@
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
         
         
-        NSDictionary* json=[iSalesNetwork  retrieve_password:user email:email];
+        NSDictionary* json=[RANetwork  retrieve_password:user email:email];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             

+ 1 - 1
RedAnt ERP Mobile/common/Functions/sidemenu/UserListViewController.h

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import <UIKit/UIKit.h>
 #import <UIKit/UIKit.h>
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "AESCrypt.h"
 #import "AESCrypt.h"
 
 
 @interface UserListViewController : UIViewController
 @interface UserListViewController : UIViewController

+ 2 - 2
RedAnt ERP Mobile/common/Functions/sidemenu/UserListViewController.m

@@ -102,7 +102,7 @@
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Switch user"];
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Switch user"];
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             
             
-            NSDictionary* return_json = [iSalesNetwork logout];
+            NSDictionary* return_json = [RANetwork logout];
             
             
             dispatch_async(dispatch_get_main_queue(), ^{
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 
@@ -144,7 +144,7 @@
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                     
                     
                     
                     
-                    int ret=[iSalesNetwork  Authorize:up[@"name"] password:up[@"pwd"]];
+                    int ret=[RANetwork  Authorize:up[@"name"] password:up[@"pwd"]];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                         [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];

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

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import "WatchListViewController.h"
 #import "WatchListViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "ModelItemCell.h"
 #import "ModelItemCell.h"
 #import "DetailViewController.h"
 #import "DetailViewController.h"
 #import "LoginViewController.h"
 #import "LoginViewController.h"
@@ -241,7 +241,7 @@
     
     
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* return_json = [iSalesNetwork move_wish2cart:ids];
+        NSDictionary* return_json = [RANetwork move_wish2cart:ids];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             
@@ -287,7 +287,7 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* return_json = [iSalesNetwork new_Order];
+        NSDictionary* return_json = [RANetwork new_Order];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -537,7 +537,7 @@
     NSString * string = [checked componentsJoinedByString:@","];
     NSString * string = [checked componentsJoinedByString:@","];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* cart_json = [iSalesNetwork watchlist_remove:string];
+        NSDictionary* cart_json = [RANetwork watchlist_remove:string];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             
@@ -604,7 +604,7 @@
     
     
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* cart_json = [iSalesNetwork request_WatchList:self.sortIndex];
+        NSDictionary* cart_json = [RANetwork request_WatchList:self.sortIndex];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             
@@ -1078,7 +1078,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
             
             
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                 
                 
-                NSDictionary* cart_json = [iSalesNetwork watchlist_remove:ids];
+                NSDictionary* cart_json = [RANetwork watchlist_remove:ids];
                 
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
                     
@@ -1370,7 +1370,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
                 
                 
                 dispatch_async(dispatch_get_global_queue(0, 0), ^{
                 dispatch_async(dispatch_get_global_queue(0, 0), ^{
                     
                     
-                    NSDictionary *result = [iSalesNetwork quoteWishlist2EmailAddr:text];
+                    NSDictionary *result = [RANetwork quoteWishlist2EmailAddr:text];
                     DebugLog(@"email wishlist result: %@",result);
                     DebugLog(@"email wishlist result: %@",result);
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
                         

+ 3 - 3
RedAnt ERP Mobile/common/Price Setting/PriceSettingViewController.m

@@ -10,7 +10,7 @@
 #import "const.h"
 #import "const.h"
 #import "EnumSelectViewController.h"
 #import "EnumSelectViewController.h"
 #import "CategoryPriceViewController.h"
 #import "CategoryPriceViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "Singleton.h"
 #import "Singleton.h"
 #import <objc/runtime.h>
 #import <objc/runtime.h>
 #import "MainViewController.h"
 #import "MainViewController.h"
@@ -121,7 +121,7 @@
 
 
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Load Data"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Load Data"];
     
     
-    NSDictionary *dic = [iSalesNetwork get_npd_shop_givenPrice];
+    NSDictionary *dic = [RANetwork get_npd_shop_givenPrice];
 
 
     [waitalert dismissWithClickedButtonIndex:0 animated:YES];
     [waitalert dismissWithClickedButtonIndex:0 animated:YES];
     
     
@@ -211,7 +211,7 @@
     
     
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Set PriceType"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Set PriceType"];
     
     
-    NSDictionary *dic = [iSalesNetwork set_npd_shop_price_type:self.priceType];
+    NSDictionary *dic = [RANetwork set_npd_shop_price_type:self.priceType];
     
     
     [waitalert dismissWithClickedButtonIndex:0 animated:YES];
     [waitalert dismissWithClickedButtonIndex:0 animated:YES];
     // 成功
     // 成功

+ 2 - 2
RedAnt ERP Mobile/common/Price Setting/SetCategoryPriceController.m

@@ -9,7 +9,7 @@
 #import "SetCategoryPriceController.h"
 #import "SetCategoryPriceController.h"
 #import "const.h"
 #import "const.h"
 #import "EnumSelectViewController.h"
 #import "EnumSelectViewController.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 
 
 #define Percent  100
 #define Percent  100
 #define Float    101
 #define Float    101
@@ -225,7 +225,7 @@
         
         
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Set Price"];
         UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Set Price"];
         
         
-        NSDictionary *dic = [iSalesNetwork set_npd_shop_givenPrice:@{@"base_price" : [NSString stringWithFormat:@"%d",self.priceType],@"discount" : discount,@"category_id" : @(self.categoryID)}.mutableCopy];
+        NSDictionary *dic = [RANetwork set_npd_shop_givenPrice:@{@"base_price" : [NSString stringWithFormat:@"%d",self.priceType],@"discount" : discount,@"category_id" : @(self.categoryID)}.mutableCopy];
         
         
         [waitalert dismissWithClickedButtonIndex:0 animated:YES];
         [waitalert dismissWithClickedButtonIndex:0 animated:YES];
         
         

+ 1 - 1
RedAnt ERP Mobile/common/categoryMenu_RATree/RAViewController.m

@@ -61,7 +61,7 @@
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
         
         
-        NSDictionary* category=[iSalesNetwork request_Cagegory];
+        NSDictionary* category=[RANetwork request_Cagegory];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             
             

+ 185 - 0
RedAnt ERP Mobile/common/data_provider/RANetwork.h

@@ -0,0 +1,185 @@
+//
+//  iSalesNetwork.h
+//  RedAnt ERP Mobile
+//
+//  Created by Ray on 14-6-20.
+//  Copyright (c) 2014年 United Software Applications, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "const.h"
+#import "config.h"
+#import "AppDelegate.h"
+#import "Reachability.h"
+#import "iSalesDB.h"
+#import "RAUtils.h"
+#import "NetworkUtils.h"
+
+extern NSString *const kScreenName;
+extern NSString *const kAction;
+extern NSString *const kExtra;
+
+extern NSString *const ScreenCodeLoginView;
+extern NSString *const ScreenCodeHomeView;
+extern NSString *const ScreenCodeCategory;
+extern NSString *const ScreenCodeCart;
+extern NSString *const ScreenCodeOrderList;
+extern NSString *const ScreenCodeSearch;
+extern NSString *const ScreenCodeAccount;
+extern NSString *const ScreenCodeWishList;
+extern NSString *const ScreenCodePortfolio;
+extern NSString *const ScreenCodeViewPortfolios;
+extern NSString *const ScreenCodeCamScan;
+extern NSString *const ScreenCodeScannerSetting;
+extern NSString *const ScreenCodeOfflineSetting;
+extern NSString *const ScreenCodePlaceOrder;
+extern NSString *const ScreenCodeCustomerInfo;
+extern NSString *const ScreenCodeNewCustomer;
+extern NSString *const ScreenCodeEditCustomer;
+extern NSString *const ScreenCodeModelInfo;
+extern NSString *const ScreenCodeOrderInfo;
+extern NSString *const ScreenCodeUserSign;
+extern NSString *const ScreenCodeNewAddress;
+extern NSString *const ScreenCodeAdvanceSearch;
+extern NSString *const ScreenCodeCreatePortfolio;
+extern NSString *const ScreenCodeParticularCategory;
+extern NSString *const ScreenCodeEditPortfolio;
+extern NSString *const ScreenCodePriceSetting;
+extern NSString *const ScreenCodeCategoryPrice;
+extern NSString *const ScreenCodeSetCatetoryPrice;
+extern NSString *const ScreenCodeUploadImage;
+extern NSString *const ScreenCodeOfflineSync;
+
+@interface RANetwork : NetworkUtils
++(void) LoadImage:(NSString*) url into:(UIImageView*) container;
++(NSDictionary*) portfolio_remove:(NSString* ) item_ids;
++(NSDictionary*)request_Portfolio:(int)sort;
+
++(NSDictionary*) delete_portfoliolist:(NSString* ) listid;
+
++(NSDictionary*) add_toPortfolio:(NSString* ) item_id withScreen:(NSString *)screenName;
+//+(NSData*)get_json : (NSString*) url parameters:(NSMutableDictionary *) params;
++(int)Authorize : (NSString*) user password:(NSString*) password ;
++(NSDictionary*)logout;
++(NSDictionary*)request_Cagegory;
++(NSDictionary*)load_HomePage: (int) price_template customid:(int) customid;
++(NSDictionary*)retrieve_password: (NSString*) user email:(NSString*) email;
+
++(NSDictionary*)request_model_qty: (NSString*) fashionId;
+
++(NSDictionary*)commoneditor_partialrefresh: (NSMutableDictionary*)params url:(NSString*)url;
+
+//+(NSDictionary*)Search: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword;
++(NSDictionary*)Category: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword offset:(long) offset limit:(long) limit alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip ;
+
++(bool) IsNetworkAvailable;
++(int)parse_authinfo : (NSData *) json user:(NSString*) user password:(NSString*) password;
+
+
+
++(NSDictionary*)request_ItemDetail: (NSString* ) item_id model_name:(NSString*) model_name category_id:(NSString*) category_id use_name :(bool) use_name;
+
++(NSDictionary*) cart_incresement:(NSString*) cart_id increse:(bool) increse;
++(NSDictionary*) cart_setQTY:(NSString*) cart_id value:(int) value;
++(NSDictionary*) cart_setPrice:(NSString*) cart_id price:(float) price discount:(float) discount notes:(NSString*) notes;
++(NSDictionary*) cart_setFree:(NSString*) cart_id isfree:(bool) isfree;
+
++(NSDictionary*) cart_setItemNote:(NSString*) cart_id notes:(NSString*) notes;
+
++(NSDictionary*) cart_setGeneralNote:(NSString*) order_code notes:(NSString*) notes;
+
++(NSDictionary*) check_Offline:(NSString* )ver  useInternalAddress:(bool)buseinternaladdress vid:(NSString*) vid;
++(NSDictionary*) download_Offline:(NSString* )vid;
++(NSDictionary*) finish_download_Offline:(NSString* )vid;
+
++(NSDictionary*) add_toCart:(NSString* ) item_id count:(int) count name:(NSString *)name;
++(NSDictionary*) add_toCart_byName:(NSString* ) model_name withScreen:(NSString *)screenName;
++(NSDictionary*) add_toWatchList:(NSString* ) item_id withScreen:(NSString *)screenName;
++(NSDictionary*)request_Cart:(int)sort;
++(NSDictionary*)request_WatchList:(int)sort;
++(NSDictionary*) portfolio_setPrice:(NSString*) watchlist_id price:(float) price discount:(float) discount QTY:(int)qty qty_p:(float) qty_p notes:(NSString*)notes;
+//+(NSDictionary*) portfolio_setQTY:(NSString*) watchlist_id QTY:(int)qty;
+
++(NSDictionary*) cart_remove:(NSString* ) item_ids;
+//+(NSDictionary*) cart_check:(NSString* ) item_ids;
++(NSDictionary*) watchlist_remove:(NSString* ) item_ids;
+
++(NSDictionary*) move_wish2cart:(NSString* ) item_ids;
++(NSDictionary*) move_cart2wish:(NSString* ) item_ids;
+
++(NSDictionary*)request_OrderList:(int ) offset limit :(int)limit keywords :(NSString* ) keywords status:(NSString*) status_code customer:(NSString*) customer is_merged:(BOOL) isMerged;
++(NSDictionary*)request_OrderDetail:(NSString* ) orderid;
++(NSDictionary*)commit_Order:(NSString*) order_code;// saved:(bool) saved;
++(NSDictionary*)copy_Order:(NSString*) order_code;
++(NSDictionary*)sign_Order:(NSString*) order_code path:(NSString*)path;
++(NSDictionary*)update_OrderCustomer:(NSString*) order_code customerinfo:(NSMutableDictionary*)info;
++(NSDictionary*)saveandcommit_Order:(NSMutableDictionary*)params;
++(NSDictionary*) new_Order;
++(NSDictionary*)open_Order:(NSString*) order_code;
++(NSDictionary*)release_Order:(NSString*) order_code withScreen:(NSString *)screenName;
++(NSDictionary*)save_Order:(NSMutableDictionary*)params;
++(NSDictionary*)delete_Order:(NSString*) order_id;
++(NSDictionary*)cancel_Order:(NSString*) order_id order_code:(NSString*) order_code;
++(NSDictionary*)request_PendingOrder:(NSString* ) contactid;
++(NSDictionary*)request_CustomerInfo:(NSString* ) contactid;
++(NSDictionary*)update_customer_img: (NSString*) contactid img_url:(NSString*) url ;
+//+(NSDictionary*) new_Customer;
++(NSDictionary*)save_newCustomer:(NSMutableDictionary*)params;
++(NSDictionary*)update_Customer:(NSMutableDictionary*)params;
+
++(NSDictionary*)create_Address:(NSMutableDictionary*)params;
++(NSDictionary*)request_ContactList:(int) offset limit:(int)limit keywords:(NSString*) keywords type:(NSString*) contact_type adv_search:(NSDictionary*)upparams;
+
+
++(NSDictionary*)Search:(long ) offset limit :(long)limit keywords :(NSString*) keywords matchfull:(bool)matchfull;
++(NSDictionary*)ItemSearch:(long ) offset limit :(long)limit covertype:(NSString* ) covertype ctgid:(NSString*)ctgid modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller;
+
++(NSDictionary*)request_Editor:(NSString*) request_url params:(NSMutableDictionary*)params;
+
++(NSString*)DataTOjsonString:(id)object;
+
+
++(NSDictionary*)request_PDFList:(int ) offset limit:(int)limit keywords:(NSString* ) keywords ;
++(NSDictionary*)request_TearSheet:(NSMutableDictionary*)params;
++(NSDictionary*)save_TearSheet:(NSMutableDictionary *)params;
++(NSDictionary*)direct_save_TearSheet:(NSMutableDictionary*)params;//(NSString*) request_url name:(NSString*)name delete:(NSString* )ids note:(NSString* )saveNote modelIds:(NSDictionary *)modelIds;
+
+
++(NSDictionary*)Category_addall: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword  offset:(long) offset limit:(long) limit alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip orderCode:(NSString*) orderCode addTo:(NSString*) addTo;
+//+(NSDictionary*)category_addall2wish: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword  offset:(long) offset limit:(long) limit alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip;
+//+(NSDictionary*)category_addall2portfolio: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword  offset:(long) offset limit:(long) limit alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip;
+
++(NSString*) create_portfolio:(NSMutableDictionary*)params ;
+
++(NSDictionary*)Search_addall:(long ) offset limit :(long)limit keywords :(NSString*) keywords matchfull:(bool)matchfull orderCode:(NSString*) orderCode  addTo:(NSString*) addTo;
+
++(NSDictionary*)ItemSearch_addall:(long ) offset limit :(long)limit covertype:(NSString* ) covertype ctgid:(NSString*)ctgid modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller orderCode:(NSString*) orderCode addTo:(NSString*) addTo;
+
++(NSDictionary*)err_log:(NSString*) up_params result:(NSString*)result module:(NSString*) module code:(int) code;
+//+(NSDictionary*)category_LoadMore: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword offset:(int)offset;
+//+(NSData*)fake_json:(NSString*) url;
+//+(NSDictionary*)request_ItemDetail: (NSString* ) item_id category_id:(NSString*) category_id price_template:(int) price_template customid:(int) customid;
+
+//+(NSDictionary*)request_OrderInfo:(NSString*) orderid;
+//+(NSDictionary*)request_Editor:(NSString*) sourceid editor:(NSString*)editor;
+
+
+//+(NSString *)flattenHTML:(NSString *)html trimWhiteSpace:(BOOL)trim;
+
++ (NSDictionary *)set_npd_shop_price_type:(NSInteger) priceType;
+
++ (NSDictionary *)get_npd_shop_givenPrice;
+
++ (NSDictionary *)set_npd_shop_givenPrice:(NSMutableDictionary *)params;
+
++ (NSDictionary *)merge_order:(NSMutableDictionary *)params;
+
++ (NSDictionary *)lock_order:(NSString *)oderCode;
+
++ (NSDictionary *)quoteOrder:(NSString *)so_id emailAddr:(NSString *)addr;// email cart as quote
+
++ (NSDictionary *)notifyModel:(NSString *)modelID emailAddr:(NSString *)addr withScreen:(NSString *)screenName;
+
++ (NSDictionary *)quoteWishlist2EmailAddr:(NSString *)addr;
+
+@end

+ 4515 - 0
RedAnt ERP Mobile/common/data_provider/RANetwork.m

@@ -0,0 +1,4515 @@
+//
+//  iSalesNetwork.m
+//  RedAnt ERP Mobile
+//
+//  Created by Ray on 14-6-20.
+//  Copyright (c) 2014年 United Software Applications, Inc. All rights reserved.
+//
+
+#import "RANetwork.h"
+#import "RAUtils.h"
+#import "OLDataProvider.h"
+#import "Singleton.h"
+#import "GoogleAnalyst.h"
+#import "ERPUtils.h"
+
+
+NSString *const kScreenName = @"kScreenName";
+NSString *const kAction = @"kAction";
+NSString *const kExtra = @"kExtra";
+
+
+NSString *const ScreenCodeLoginView = @"Login Screen";
+NSString *const ScreenCodeHomeView = @"Home Screen";
+NSString *const ScreenCodeCategory = @"Category Screen";
+NSString *const ScreenCodeCart = @"Cart Sceen";
+NSString *const ScreenCodeOrderList = @"Order History Screen";
+NSString *const ScreenCodeSearch = @"Search Screen";
+NSString *const ScreenCodeAccount = @"Account Screen";
+NSString *const ScreenCodeWishList = @"Wish List Screen";
+NSString *const ScreenCodePortfolio = @"Portfolio Screen";
+NSString *const ScreenCodeViewPortfolios = @"View Portfolios Screen";
+NSString *const ScreenCodeCamScan = @"Cam Scan Screen";
+NSString *const ScreenCodeScannerSetting = @"Scanner Setting Screen";
+NSString *const ScreenCodeOfflineSetting = @"Offline Setting Screen";
+NSString *const ScreenCodePlaceOrder = @"Place Order Screen";
+NSString *const ScreenCodeCustomerInfo = @"Customer Information Screen";
+NSString *const ScreenCodeNewCustomer = @"New Customer Screen";
+NSString *const ScreenCodeEditCustomer = @"Edit Customer Information Screen";
+NSString *const ScreenCodeModelInfo = @"Model Information Screen";
+NSString *const ScreenCodeOrderInfo = @"Order Information Screeen";
+NSString *const ScreenCodeUserSign = @"User Sign Screen";
+NSString *const ScreenCodeNewAddress = @"New Address Screen";
+NSString *const ScreenCodeAdvanceSearch = @"Account Advance Search Screen";
+NSString *const ScreenCodeCreatePortfolio = @"Create Portfolio Screen";
+NSString *const ScreenCodeParticularCategory = @"Particular Category Screen";
+NSString *const ScreenCodeEditPortfolio = @"Edit Portfolio Screen";
+NSString *const ScreenCodePriceSetting = @"Price Setting Screen";
+NSString *const ScreenCodeCategoryPrice = @"Category Price Screen";
+NSString *const ScreenCodeSetCatetoryPrice = @"Set Category Price Screen";
+NSString *const ScreenCodeUploadImage = @"Upload Image Screen";
+NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
+
+@implementation RANetwork
+
+
++(NSMutableDictionary*) prepare_addtional_params:(NSMutableDictionary* ) params
+{
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    if(appDelegate.user!=nil)
+//        [params setValue:[AESCrypt AES128Encrypt:appDelegate.user key:@"usai"] forKey:@"user"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:[AESCrypt AES128Encrypt:appDelegate.password key:@"usai"] forKey:@"password"];
+//
+//
+//
+    
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//
+//    [params setValue:appDelegate.build forKey:@"app_ver"];
+//
+//    NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
+//    NSString* short_version =[infoDict objectForKey:@"CFBundleShortVersionString"];
+//    [params setValue:short_version forKey:@"app_short_ver"];
+//
+//
+//
+//#if TARGET_IPHONE_SIMULATOR//模拟器
+//    [params setValue:@"simulator_uuid" forKey:@"deviceid"];
+//#elif TARGET_OS_IPHONE//真机
+//    UIDevice * dev = [UIDevice currentDevice];
+//    NSUUID* uuid =dev.identifierForVendor;
+//    [params setValue:uuid.UUIDString forKey:@"deviceid"];
+//#endif
+
+    
+    
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    
+    if(appDelegate.ipad_perm!=nil)
+        [params setValue:appDelegate.ipad_perm forKey:@"ipad_perm"];
+    
+    [params setValue:appDelegate.build forKey:@"app_ver"];
+    
+    NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
+    NSString* short_version =[infoDict objectForKey:@"CFBundleShortVersionString"];
+    [params setValue:short_version forKey:@"app_short_ver"];
+    
+    UIDevice * dev = [UIDevice currentDevice];
+    NSUUID* uuid =dev.identifierForVendor;
+#if TARGET_IPHONE_SIMULATOR//模拟器
+    [params setValue:@"simulator_uuid" forKey:@"idfv"];
+#elif TARGET_OS_IPHONE//真机
+    [params setValue:uuid.UUIDString forKey:@"idfv"];
+#endif
+    
+//
+//    NSString *userAction = [params valueForKey:kAction];
+//    NSMutableDictionary *extra = [[params valueForKey:kExtra] mutableCopy];
+//    if ([userAction isEqualToString:@"Login"]) {
+//        if (!extra) {
+//            extra = [NSMutableDictionary dictionary];
+//        }
+//        [extra setObject:[params objectForKey:@"user"] forKey:@"user"];
+//    }
+    
+    return params;
+}
++(NSData*)get_json : (NSString*) url parameters:(NSMutableDictionary *) params file:(NSString *) file //delegate:(id < NSURLConnectionDelegate >)delegate
+{
+    
+    
+    
+    
+    //    NSString* e=[AESCrypt AES128Encrypt:@"密码学中的高级加密标准(Advanced Encryption Standard,AES),又称 高级加密标准Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。 " key:@"usai2010"];
+    //    DebugLog(e);
+    //    NSString* d=[AESCrypt decrypt:@"VzB4+lENfbzWX7ggHh2Os1P69l5YBzKmM51yqA37AfoKgPY8bJgdK8M4WvF+wDyOsLWP\/o8H5+bHMivQp1u8wM2QV7SYzgzPwV85QKtYWIzEgLe9T0HO69EdutWz7k1rdAT\/mftsRin0Hy5SHk7txTZT\/zPH5X+FQiExCTFm5Zus39HYvp+VxCX4+kYeymn8B63AUd3mRQyscUvDjfgU2olKR\/TP8PV3g+VQMZxpKfol3P1iOtz3XQlHZV0pM6SAf+SwT0sPfrdn6CZFfNQlrKA9QjMrnBdMeSCquSIWXnmLv6okzvnlJnT0SjvJuUeqNdBC5EZ0ACnhI0MrXVZEsq1EuM9al7oPzvU5EZbjZpmx+fSFIkMzTT8bYClTnG1bsL1MCcU4pSODDorUj8zalA==" password:@"usai2010"];
+    params = [self prepare_addtional_params:params];
+    
+    return [super get_json:url parameters:params file:(NSString*)file err_recorder:URL_ERR_LOG result_handler:^NSMutableDictionary *(NSMutableDictionary *jsobj) {
+        int result=[[jsobj valueForKey:@"result"] intValue];
+        //        UIApplication * app = [UIApplication sharedApplication];
+        //        AppDelegate *appDelegate = (AppDelegate *)[app delegate];
+        
+        switch (result) {
+            case 0:
+                [jsobj setValue:MSG_USERAUTH_ERROR forKey:@"err_msg"];
+                break;
+            case 1:
+                [jsobj setValue:MSG_ERROR forKey:@"err_msg"];
+                break;
+            case 2:
+                [jsobj setValue:MSG_SUCCESS forKey:@"err_msg"];
+                break;
+            case 8:
+                [jsobj setValue:[jsobj valueForKey:@"msg"] forKey:@"err_msg"];
+                break;
+            case 9:
+                [jsobj setValue:[jsobj valueForKey:@"msg"] forKey:@"err_msg"];
+                break;
+            case 99:
+                [jsobj setValue:MSG_TIMEOUT forKey:@"err_msg"];
+                break;
+            default:
+                [jsobj setValue:MSG_ERROR forKey:@"err_msg"];
+                break;
+        }
+        
+        
+        //        if([appDelegate.build intValue]< [[jsobj valueForKey:@"min_ver"]intValue])
+        //        {
+        //            [jsobj setValue:@"9" forKey:@"result"];
+        //            [jsobj setValue:MSG_VER_LOW forKey:@"err_msg"];
+        //        }
+        return jsobj;
+    } decrypt_handler:^NSMutableDictionary *(NSMutableDictionary *jsobj) {
+
+        return nil;
+//        NSString* base64str = jsobj[@"str"];
+//        NSString* decryptstr=[AESCrypt AES128Decrypt:base64str key:@"usai2010"];
+//        jsobj=[[RAUtils string2dict:decryptstr] mutableCopy];
+//        return jsobj;
+    }];
+    
+    
+    /*
+     
+     
+     
+     */
+    return nil;
+}
+
++(void) LoadImage:(NSString*) url into:(UIImageView*) container
+{
+    
+    DebugLog(@"LoadImage:(NSString*) url in:(UIImageView*) container");
+    
+    NSString* file_name=[url lastPathComponent];
+    NSData* img_data = [iSalesDB load_cached_img:file_name loadFrom:url];
+    if(img_data==nil)
+        
+    {
+        DebugLog(@"IMG NOT CACHED %@",file_name);
+        img_data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
+        [iSalesDB cache_img:img_data filename:file_name saveTo:nil];
+        
+        //load from internet;
+    }
+    
+    
+    
+    if(img_data!=nil)
+    {
+        UIImage * img =[UIImage imageWithData:img_data];
+        
+        if(img==nil)
+            DebugLog(@"UIIMAGE IS NIL! %@",file_name);
+        else
+            container.image =img;
+        
+    }
+    else
+    {
+        DebugLog(@"IMG DOWNLOAD FAILED! %@",file_name);
+    }
+}
+//+(NSData*)fake_json:(NSString*) url
+//{
+//    NSString* jsonfile = nil;
+//    if([url isEqualToString:URL_UPDATE_AUTH])
+//    {
+//        jsonfile=@"login";
+//
+//    }
+//    else if([url isEqualToString:URL_REQUEST_CATMENU])
+//    {
+//        jsonfile=@"categorymenu";
+//    }
+//    else if([url isEqualToString:URL_LOAD_HOME])
+//    {
+//        jsonfile=@"homepage";
+//    }
+//    else if([url isEqualToString:URL_SEARCH])
+//    {
+//        jsonfile=@"search";
+//    }
+//    else if([url isEqualToString:URL_CATEGORY_LOADMORE])
+//    {
+//        jsonfile=@"category_more";
+//    }else if([url isEqualToString:URL_ITEM_DETAIL])
+//    {
+//        jsonfile=@"detail";
+//    }else if([url isEqualToString:URL_CART])
+//    {
+//        jsonfile=@"cart";
+//    }else if([url isEqualToString:URL_ORDER_LIST])
+//    {
+//        jsonfile=@"orderlist";
+//    }
+////    else if([url isEqualToString:URL_ORDER_INFO])
+////    {
+////        jsonfile=@"orderinfo";
+////    }
+////    else if([url isEqualToString:URL_ORDER_INFO])
+////    {
+////        jsonfile=@"orderinfo2label";
+////    }
+//
+//
+//
+//    NSData* json =[NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:jsonfile ofType:@"json" ]];
+//    NSMutableString *result = [[NSMutableString alloc] initWithData:json encoding:NSUTF8StringEncoding];
+//
+//    DebugLog(@"result: \n%@",result);
+//    return json;
+//}
++(NSData*)get_json : (NSString*) url parameters:(NSMutableDictionary *) params //delegate:(id < NSURLConnectionDelegate >)delegate
+{
+    NSString *screenName = [params valueForKey:kScreenName];
+    NSString *userAction = [params valueForKey:kAction];
+    NSMutableDictionary *extra = [[params valueForKey:kExtra] mutableCopy];
+    if ([userAction isEqualToString:@"Login"]) {
+        if (!extra) {
+            extra = [NSMutableDictionary dictionary];
+        }
+        [extra setObject:[params objectForKey:@"user"] forKey:@"user"];
+    }
+#ifdef BUILD_NPD
+    [ERPUtils googleAnalyticsSendRequestString:url WithScreen:screenName Action:userAction Extra:extra];
+#endif
+    return [self get_json:url parameters:params file:nil];
+    
+    int retry = 0;
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    
+    if(appDelegate.ipad_perm!=nil)
+        [params setValue:appDelegate.ipad_perm forKey:@"ipad_perm"];
+    
+    [params setValue:appDelegate.build forKey:@"app_ver"];
+    
+    NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
+    NSString* short_version =[infoDict objectForKey:@"CFBundleShortVersionString"];
+    [params setValue:short_version forKey:@"app_short_ver"];
+    
+    UIDevice * dev = [UIDevice currentDevice];
+    NSUUID* uuid =dev.identifierForVendor;
+#if TARGET_IPHONE_SIMULATOR//模拟器
+    [params setValue:@"simulator_uuid" forKey:@"idfv"];
+#elif TARGET_OS_IPHONE//真机
+    [params setValue:uuid.UUIDString forKey:@"idfv"];
+#endif
+    
+//    NSString *screenName = [params valueForKey:kScreenName];
+//    NSString *userAction = [params valueForKey:kAction];
+//    NSMutableDictionary *extra = [[params valueForKey:kExtra] mutableCopy];
+//    if ([userAction isEqualToString:@"Login"]) {
+//        if (!extra) {
+//            extra = [NSMutableDictionary dictionary];
+//        }
+//        [extra setObject:[params objectForKey:@"user"] forKey:@"user"];
+//    }
+    
+repeat:
+    {
+        
+        //    return [self fake_json:url];
+        
+        //    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+        //分界线的标识符
+        NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x";
+        //根据url初始化request
+        NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]
+                                                               cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
+                                                           timeoutInterval:JSON_TIMEOUT];
+        //分界线 --AaB03x
+        NSString *MPboundary=[[NSString alloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];
+        //结束符 AaB03x--
+        NSString *endMPboundary=[[NSString alloc]initWithFormat:@"%@--",MPboundary];
+        //要上传的图片
+        //    UIImage *image=[params objectForKey:@"pic"];
+        //得到图片的data
+        //    NSData* data = UIImagePNGRepresentation(image);
+        //http body的字符串
+        NSMutableString *body=[[NSMutableString alloc]init];
+        
+        //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+        //     [params setValue:@"handset_login" forKey:@"action"];
+        //    [headers setValue:[NSString stringWithFormat:@"%d",dataLength] forKey:@"Content-Length"];
+        
+        //    [params setValue:appDelegate.sessionid forKey:@"sessionid"];
+        //   [params setValue:password forKey:@"password"];
+        //    [params setValue:[NSString stringWithFormat:@"%d",ver]  forKey:@"auth_ver"];
+        
+        
+        
+        //    [headers setValue:headQuerlString forKey:@"param"];
+        
+        //参数的集合的所有key的集合
+        NSArray *keys= [params allKeys];
+        DebugLog(@"================parms==================");
+        //遍历keys
+        for(int i=0;i<[keys count];i++)
+        {
+            //得到当前key
+            NSString *key=[keys objectAtIndex:i];
+            //如果key不是pic,说明value是字符类型,比如name:Boris
+            if(![key isEqualToString:@"pic"])
+            {
+                //添加分界线,换行
+                [body appendFormat:@"%@\r\n",MPboundary];
+                //添加字段名称,换2行
+                [body appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key];
+                //添加字段的值
+                [body appendFormat:@"%@\r\n",[params objectForKey:key]];
+                DebugLog(@"parameter: key=%@   value=%@",key,[params objectForKey:key]);
+            }
+        }
+        DebugLog(@"================parms==================");
+        ////添加分界线,换行
+        [body appendFormat:@"%@\r\n",MPboundary];
+        //声明pic字段,文件名为boris.png
+        [body appendFormat:@"Content-Disposition: form-data; name=\"pic\"; filename=\"boris.png\"\r\n"];
+        //声明上传文件的格式
+        [body appendFormat:@"Content-Type: image/png\r\n\r\n"];
+        
+        //声明结束符:--AaB03x--
+        NSString *end=[[NSString alloc]initWithFormat:@"\r\n%@",endMPboundary];
+        //声明myRequestData,用来放入http body
+        NSMutableData *myRequestData=[NSMutableData data];
+        //将body字符串转化为UTF8格式的二进制
+        [myRequestData appendData:[body dataUsingEncoding:NSUTF8StringEncoding]];
+        //将image的data加入
+        //    [myRequestData appendData:data];
+        //加入结束符--AaB03x--
+        [myRequestData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]];
+        
+        //设置HTTPHeader中Content-Type的值
+        NSString *content=[[NSString alloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY];
+        //设置HTTPHeader
+        [request setValue:content forHTTPHeaderField:@"Content-Type"];
+        
+        // 关闭keep alive
+        [request setValue:@"close" forHTTPHeaderField:@"Connection"];
+        //设置Content-Length
+        [request setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[myRequestData length]] forHTTPHeaderField:@"Content-Length"];
+        //设置http body
+        [request setHTTPBody:myRequestData];
+        //http method
+        [request setHTTPMethod:@"POST"];
+        
+        
+        NSHTTPURLResponse* urlResponse = nil;
+        
+        NSError *error = nil;
+        
+        NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
+        
+        
+        DebugLog(@"url: %@",url);
+
+        DebugLog(@"response: %@",[NSHTTPURLResponse localizedStringForStatusCode:urlResponse.statusCode]);
+        
+        if (responseData==nil) {
+            
+//            DebugLog(@"response error:%@", [error localizedDescription]);
+            
+            
+            NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
+            //#define RESULT_FALSE 0
+            //#define RESULT_TRUE		 2
+            //#define RESULT_NET_ERROR			 -3
+            //#define RESULT_NET_NOTAVAILABLE		  -4
+            //#define RESULT_ERROR				 -5
+            //#define RESULT_LOCALFILE_ERROR			 -7
+            //#define RESULT_USERAUTH_ERROR			 -9
+            //#define RESULT_UPDATE_USERAUTH_ERROR	 -11
+            //#define RESULT_SESSION_EXPIRED			  -13
+            //#define RESULT_VER_LOW
+            
+            //     NSString * moreinfo = error.description ;
+            
+            NSString* err_msg = [error localizedDescription];
+            
+            
+            //-----------------retry 3 times for error code -1005------------------------
+            if(error.code==-1005&&retry<3)
+            {
+                retry++;
+                goto repeat;
+                
+            }
+            //-----------------end retry 3 times for error code -1005------------------------
+            
+            NSDictionary* error_json = [RAUtils error_dict:error];
+            [ret setObject:error_json forKey:@"err_obj"];
+            NSString* resp_msg= nil;
+            
+            if(err_msg.length==0)
+            {
+                err_msg =[NSHTTPURLResponse localizedStringForStatusCode:urlResponse.statusCode];
+                resp_msg = err_msg;
+            }
+            [ret setValue:[NSString stringWithFormat:@"%d",RESULT_NET_ERROR] forKey:@"result"];
+            [ret setValue:err_msg forKey:@"err_msg"];
+            [ret setValue:resp_msg forKey:@"resp_msg"];
+            [ret setValue:[NSString stringWithFormat:@"%ld",(long)urlResponse.statusCode] forKey:@"resp_code"];
+            
+            
+            NSData *jsonData = [NSJSONSerialization dataWithJSONObject:ret
+                                                               options:0
+                                                                 error:nil];
+            if(![url isEqualToString:URL_ERR_LOG])
+            {
+                [RANetwork err_log:[RAUtils base64en:[RAUtils dict2string:params]] result:[RAUtils base64en:[RAUtils dict2string:ret]] module:url code:RESULT_NET_ERROR];
+            }
+#ifdef BUILD_NPD
+            [ERPUtils googleAnalyticsSendRequestString:url WithScreen:screenName Action:userAction Extra:extra];
+#endif
+            return jsonData;
+            
+        }
+        else
+        {
+                        NSString* err_msg = [error localizedDescription];
+            NSMutableString *str = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
+            
+            DebugLog(@"data string: %@",str);
+            NSError *error1 = nil;
+            
+            NSMutableDictionary* jsobj = [[NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error1] mutableCopy];
+            
+            if(jsobj==nil)// 服务器返回不是json
+            {
+                
+                jsobj=[[NSMutableDictionary alloc] init];
+                [jsobj setValue:@"1" forKey:@"result"];
+                
+            }
+            
+            int result=[[jsobj valueForKey:@"result"] intValue];
+            UIApplication * app = [UIApplication sharedApplication];
+            AppDelegate *appDelegate = (AppDelegate *)[app delegate];
+            NSString* mode =[jsobj valueForKey:@"mode"];
+            [appDelegate SetMode:mode];
+            switch (result) {
+                case 0:
+                    [jsobj setValue:MSG_USERAUTH_ERROR forKey:@"err_msg"];
+                    break;
+                case 1:
+                    [jsobj setValue:MSG_ERROR forKey:@"err_msg"];
+                    break;
+                case 2:
+                    [jsobj setValue:MSG_SUCCESS forKey:@"err_msg"];
+                    break;
+                case 8:
+                    [jsobj setValue:[jsobj valueForKey:@"msg"] forKey:@"err_msg"];
+                    break;
+                case 9:
+                    [jsobj setValue:[jsobj valueForKey:@"msg"] forKey:@"err_msg"];
+                    break;
+                case 99:
+                    [jsobj setValue:MSG_TIMEOUT forKey:@"err_msg"];
+                    break;
+                default:
+                    [jsobj setValue:MSG_ERROR forKey:@"err_msg"];
+                    break;
+            }
+            
+            
+            if([appDelegate.build intValue]< [[jsobj valueForKey:@"min_ver"]intValue])
+            {
+                [jsobj setValue:@"9" forKey:@"result"];
+                [jsobj setValue:MSG_VER_LOW forKey:@"err_msg"];
+            }
+            
+            if(![url isEqualToString:URL_ERR_LOG]&&![url isEqualToString:URL_DOWNLOAD_OFFLINE]/*&&result!=-3*/&&result!=2&&result!=99)
+            {
+                [RANetwork err_log:[RAUtils base64en:[RAUtils dict2string:params]] result:[RAUtils base64en:str] module:url code:result];
+            }
+            NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsobj
+                                                               options:0
+                                                                 error:nil];
+#ifdef BUILD_NPD
+            [ERPUtils googleAnalyticsSendRequestString:url WithScreen:screenName Action:userAction Extra:extra];
+#endif
+            return jsonData;
+            
+        }
+
+        return responseData;
+    }
+}
+
+
++(NSString*)DataTOjsonString:(id)object
+{
+    NSString *jsonString = nil;
+    NSError *error;
+    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:object
+                                                       options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string
+                                                         error:&error];
+    if (! jsonData) {
+        DebugLog(@"Got an error: %@", error);
+    } else {
+        jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
+    }
+    return jsonString;
+}
+//+(NSDictionary*)request_Editor:(NSString*) sourceid editor:(NSString*)editor
+//{
+//
+//}
+
++(NSDictionary*) delete_portfoliolist:(NSString* ) listid
+{
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    [params setValue:listid forKey:@"tearsheetsId"];
+    //    [params setValue:editor forKey:@"editor"];
+    [params setValue:ScreenCodeViewPortfolios forKey:kScreenName];
+//    [params setValue:@"Delete Portfolio" forKey:kAction];
+    
+    NSData* json = nil;
+    if(appDelegate.offline_mode)
+    {
+        json = [OLDataProvider offline_removePDF:params];
+    } else {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json=[self get_json:URL_PORTFOLIOLIST_REMOVE parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        
+        
+        
+        return jsobj;
+    }
+    else
+        return nil;
+}
++(NSDictionary*) portfolio_remove:(NSString* ) item_ids
+{
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    [params setValue:item_ids forKey:@"portfolioId"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setValue:ScreenCodePortfolio forKey:kScreenName];
+    
+    NSData* json = nil;
+    if(appDelegate.offline_mode)
+    {
+        json = [OLDataProvider offline_removePortfolio:params];
+    } else {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        json=[self get_json:URL_PORTFOLIO_REMOVE parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        
+        
+        int result = [[jsobj valueForKey:@"result"] intValue];
+        
+        if (result==2)
+        {
+            
+            
+            appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+            
+            [appDelegate update_count_mark];
+        }
+        return jsobj;
+    }
+    else
+        return nil;
+}
++(NSDictionary*) watchlist_remove:(NSString* ) item_ids
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    [params setValue:item_ids forKey:@"collectId"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setValue:ScreenCodeWishList forKey:kScreenName];
+    
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_deletewishlist:params];
+    }
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_WATCHLIST_REMOVE parameters:params];
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        int result = [[jsobj valueForKey:@"result"] intValue];
+        
+        if (result==2)
+        {
+            
+            //appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+            appDelegate.wish_count =[[jsobj valueForKey:@"wish_count"] intValue];
+            //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+            
+            [appDelegate update_count_mark];
+        }
+        return jsobj;
+    }
+    else
+        return nil;
+}
++(NSDictionary*) move_cart2wish:(NSString* ) item_ids
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    [params setValue:item_ids forKey:@"cartItemId"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setValue:ScreenCodeCart forKey:kScreenName];
+//    [params setValue:@"Cart Move To Wish List" forKey:kAction];
+    
+    NSData* json = nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_movecart2wish:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    json=[self get_json:URL_CART2WISH parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        int result = [[jsobj valueForKey:@"result"] intValue];
+        
+        if (result==2)
+        {
+            
+            //appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+            appDelegate.wish_count =[[jsobj valueForKey:@"wish_count"] intValue];
+            //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+            
+            [appDelegate update_count_mark];
+        }
+        return jsobj;
+    }
+    else
+        return nil;
+}
++(NSDictionary*) move_wish2cart:(NSString* ) item_ids
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    [params setValue:item_ids forKey:@"collectId"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setValue:ScreenCodeWishList forKey:kScreenName];
+    [params setValue:@"Move To Cart" forKey:kAction];
+    
+    NSData *json = nil;
+    if(appDelegate.offline_mode)
+    {
+        json = [OLDataProvider offline_movewish2cart:params];
+    } else {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json=[self get_json:URL_WISH2CART parameters:params];
+    }
+
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        int result = [[jsobj valueForKey:@"result"] intValue];
+        
+        if (result==2)
+        {
+            
+            //appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+            appDelegate.wish_count =[[jsobj valueForKey:@"wish_count"] intValue];
+            //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+            
+            [appDelegate update_count_mark];
+        }
+        return jsobj;
+    }
+    else
+        return nil;
+}
+
++(NSDictionary*) cart_remove:(NSString* ) item_ids
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    [params setValue:item_ids forKey:@"cartItemId"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setValue:ScreenCodeCart forKey:kScreenName];
+//    [params setValue:@"" forKey:kAction];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_cartremove:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    json=[self get_json:URL_CART_REMOVE parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        
+        int result = [[jsobj valueForKey:@"result"] intValue];
+        
+        if (result==2)
+        {
+            
+            appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+            
+            
+            [appDelegate update_count_mark];
+        }
+        return jsobj;
+    }
+    else
+        return nil;
+}
+
+
+//+(NSDictionary*) cart_check:(NSString* ) item_ids
+//{
+//    return nil;
+//    if(![self IsNetworkAvailable])
+//        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//    [params setValue:item_ids forKey:@"cartItemId"];
+//    //    [params setValue:editor forKey:@"editor"];
+//    if(appDelegate.offline_mode)
+//    {
+//        return [OLDataProvider offline_notimpl];
+//    }
+//    NSData* json=[self get_json:URL_CART_CHECK parameters:params];
+//    if(json!=nil)
+//    {
+//        NSError *error=nil;
+//        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//        return jsobj;
+//    }
+//    else
+//        return nil;
+//}
+
++(NSDictionary*)create_Address:(NSMutableDictionary*)params
+{
+    //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setValue:ScreenCodeNewAddress forKey:kScreenName];
+    
+    NSData* json=nil;
+    
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_saveaddr:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    json =[self get_json:URL_ADDRESS_SAVE parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        return jsobj;
+    }
+    else
+        return nil;
+    
+}
++(NSDictionary*)copy_Order:(NSString*) order_code
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    //    NSString* ssaved = @"false";
+    //     if(saved)
+    //         ssaved=@"true";
+    //  [params setValue:@"true" forKey:@"saved"];
+    [params setValue:order_code forKey:@"code"];
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setValue:ScreenCodeOrderInfo forKey:kScreenName];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_copyorder:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    json=[self get_json:URL_COPY_ORDER parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        return jsobj;
+    }
+    else
+        return nil;
+    
+}
++(NSDictionary*)sign_Order:(NSString*) order_code path:(NSString*)path
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    //    NSString* ssaved = @"false";
+    //     if(saved)
+    //         ssaved=@"true";
+    //  [params setValue:@"true" forKey:@"saved"];
+    [params setValue:order_code forKey:@"orderCode"];
+    [params setValue:path forKey:@"picpath"];
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setValue:ScreenCodeUserSign forKey:kScreenName];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_signorder:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    json=[self get_json:URL_SIGN_ORDER parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        return jsobj;
+    }
+    else
+        return nil;
+    
+}
++(NSDictionary*)commit_Order:(NSString*) order_code //saved:(bool) saved
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    //    NSString* ssaved = @"false";
+    //     if(saved)
+    //         ssaved=@"true";
+    [params setValue:@"true" forKey:@"saved"];
+    [params setValue:order_code forKey:@"orderCode"];
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+     [params setValue:ScreenCodePlaceOrder forKey:kScreenName];
+    
+    NSData* json = nil;
+    
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_submitorder:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    json=[self get_json:URL_COMMIT_ORDER parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        return jsobj;
+    }
+    else
+        return nil;
+    
+}
++(NSDictionary*)open_Order:(NSString*) order_code
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(appDelegate.contact_id!=nil)
+    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:order_code forKey:@"orderCode"];
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+     [params setValue:ScreenCodeOrderInfo forKey:kScreenName];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json=[OLDataProvider offline_editorder:params];
+        
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json=[self get_json:URL_OPEN_ORDER parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        int result = [[jsobj valueForKey:@"result"] intValue];
+        
+        if (result==2)
+        {
+            
+            appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+            //appDelegate.wish_count =[[jsobj valueForKey:@"wish_count"] intValue];
+            //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+            
+            [appDelegate update_count_mark];
+            
+            if (appDelegate.user_type == USER_ROLE_CUSTOMER) {
+                [Singleton sharedInstance].currentOrderIsMerged = [[jsobj valueForKey:@"is_merged_order"] boolValue];
+            }
+            
+        }
+        
+        return jsobj;
+    }
+    else
+        return nil;
+}
+
++(NSDictionary*)delete_Order:(NSString*) order_id
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(appDelegate.contact_id!=nil)
+    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:order_id forKey:@"orderId"];
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+     [params setValue:ScreenCodeOrderList forKey:kScreenName];
+    
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_notimpl];
+    }
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_DELETE_ORDER parameters:params];
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        
+        
+        return jsobj;
+    }
+    else
+        return nil;
+}
+
++(NSDictionary*)cancel_Order:(NSString*) order_id order_code:(NSString*) order_code
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(appDelegate.contact_id!=nil)
+    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:order_id forKey:@"orderId"];
+    [params setValue:order_code forKey:@"orderCode"];
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setValue:ScreenCodeOrderList forKey:kScreenName];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json=[OLDataProvider offline_cancelorder:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    json=[self get_json:URL_CANCEL_ORDER parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        
+        
+        return jsobj;
+    }
+    else
+        return nil;
+}
++(NSDictionary*)release_Order:(NSString*) order_code withScreen:(NSString *)screenName
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(appDelegate.contact_id!=nil)
+    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:order_code forKey:@"orderCode"];
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    if (screenName) {
+        [params setValue:screenName forKey:kScreenName];
+    }
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_resetorder:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    json=[self get_json:URL_RELEASE_ORDER parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        if([[jsobj valueForKey:@"result"]intValue]==2)
+        {    [appDelegate SetSo:nil];
+            
+            
+            appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+            //appDelegate.wish_count =[[jsobj valueForKey:@"wish_count"] intValue];
+            //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+            
+            [appDelegate update_count_mark];
+        }
+        return jsobj;
+    }
+    else
+        return nil;
+}
++(NSDictionary*)update_OrderCustomer:(NSString*) order_code customerinfo:(NSMutableDictionary*)info
+{
+    //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [info setValue:appDelegate.user forKey:@"user"];
+    //    if(appDelegate.contact_id!=nil)
+    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [info setValue:appDelegate.password forKey:@"password"];
+    
+    [info setObject:ScreenCodeEditCustomer forKey:kScreenName];
+    
+    [info setValue:order_code forKey:@"orderCode"];
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_notimpl];
+    }
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_UPDATE_ORDERCUSTOMER parameters:info];
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        return jsobj;
+    }
+    else
+        return nil;
+}
++(NSDictionary*)commoneditor_partialrefresh: (NSMutableDictionary*)params url:(NSString*)url
+{
+    //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    //    if(appDelegate.order_code!=nil)
+    //        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    
+    //    NSDictionary* customerinfo= appDelegate.customerInfo;
+    //
+    //    NSArray* keys=[customerinfo allKeys];
+    //    for(int i=0;i<keys.count;i++)
+    //    {
+    //        [params setValue:[customerinfo valueForKey:(NSString*)keys[i]] forKey:keys[i] ];
+    //    }
+    //
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setObject:ScreenCodeModelInfo forKey:kScreenName];
+    
+    if(appDelegate.offline_mode)
+    {
+        params[@"offline_Command"]=url;
+        return [OLDataProvider offline_commoneditor_partialrefresh:params];
+    }
+    
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:url parameters:params];
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        if([[jsobj valueForKey:@"result"]intValue]==2)
+            [appDelegate SetSo:nil];
+        
+        
+        return jsobj;
+    }
+    else
+        return nil;
+}
++(NSDictionary*)saveandcommit_Order:(NSMutableDictionary*)params
+{
+    //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    
+    //    NSDictionary* customerinfo= appDelegate.customerInfo;
+    //
+    //    NSArray* keys=[customerinfo allKeys];
+    //    for(int i=0;i<keys.count;i++)
+    //    {
+    //        [params setValue:[customerinfo valueForKey:(NSString*)keys[i]] forKey:keys[i] ];
+    //    }
+    //
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setObject:ScreenCodePlaceOrder forKey:kScreenName];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json=[OLDataProvider offline_submitorder:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    json=[self get_json:URL_COMMIT_ORDER parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        if([[jsobj valueForKey:@"result"]intValue]==2)
+            [appDelegate SetSo:nil];
+        
+        
+        return jsobj;
+    }
+    else
+        return nil;
+    
+}
++(NSDictionary*)update_Customer:(NSMutableDictionary*)params
+{
+    //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(![appDelegate.order_customer_id isEqualToString: appDelegate.contact_id]&& appDelegate.order_customer_id!=nil)
+    //        [params setValue:appDelegate.order_customer_id forKey:@"contactId"];
+    //    else
+    
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    //    NSDictionary* customerinfo=nil;
+    
+    //    if(![[appDelegate.customerInfo valueForKey:@"customer_cid" ] isEqualToString: [appDelegate.customerInfo valueForKey:@"customer_cid" ]]&& appDelegate.order_customer_id!=nil)
+    //        [params setValue:appDelegate.order_customer_id forKey:@"contactId"];
+    //    else
+    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    //
+    //    appDelegate.customerInfo;
+    
+    //    NSArray* keys=[customerinfo allKeys];
+    //    for(int i=0;i<keys.count;i++)
+    //    {
+    //        [params setValue:[customerinfo valueForKey:(NSString*)keys[i]] forKey:keys[i] ];
+    //    }
+    
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setObject:ScreenCodeEditCustomer forKey:kScreenName];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_saveContact:params];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json=[self get_json:URL_CUSTOMER_UPDATE parameters:params];
+    }
+    
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        return jsobj;
+    }
+    else
+        return nil;
+    
+}
++(NSDictionary*)save_newCustomer:(NSMutableDictionary*)params
+{
+    //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(![appDelegate.order_customer_id isEqualToString: appDelegate.contact_id]&& appDelegate.order_customer_id!=nil)
+    //        [params setValue:appDelegate.order_customer_id forKey:@"contactId"];
+    //    else
+    
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    //    NSDictionary* customerinfo=nil;
+    
+    //    if(![[appDelegate.customerInfo valueForKey:@"customer_cid" ] isEqualToString: [appDelegate.customerInfo valueForKey:@"customer_cid" ]]&& appDelegate.order_customer_id!=nil)
+    //        [params setValue:appDelegate.order_customer_id forKey:@"contactId"];
+    //    else
+    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    //
+    //    appDelegate.customerInfo;
+    
+    //    NSArray* keys=[customerinfo allKeys];
+    //    for(int i=0;i<keys.count;i++)
+    //    {
+    //        [params setValue:[customerinfo valueForKey:(NSString*)keys[i]] forKey:keys[i] ];
+    //    }
+    
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setObject:ScreenCodeNewCustomer forKey:kScreenName];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_saveNewContact:params];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json=[self get_json:URL_CUSTOMER_SAVE parameters:params];
+    }
+    
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        return jsobj;
+    }
+    else
+        return nil;
+    
+}
+
++(NSDictionary*)save_Order:(NSMutableDictionary*)params
+{
+    //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(![appDelegate.order_customer_id isEqualToString: appDelegate.contact_id]&& appDelegate.order_customer_id!=nil)
+    //        [params setValue:appDelegate.order_customer_id forKey:@"contactId"];
+    //    else
+    
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    
+    //    NSDictionary* customerinfo=nil;
+    
+    //    if(![[appDelegate.customerInfo valueForKey:@"customer_cid" ] isEqualToString: [appDelegate.customerInfo valueForKey:@"customer_cid" ]]&& appDelegate.order_customer_id!=nil)
+    //        [params setValue:appDelegate.order_customer_id forKey:@"contactId"];
+    //    else
+    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    //
+    //    appDelegate.customerInfo;
+    
+    //    NSArray* keys=[customerinfo allKeys];
+    //    for(int i=0;i<keys.count;i++)
+    //    {
+    //        [params setValue:[customerinfo valueForKey:(NSString*)keys[i]] forKey:keys[i] ];
+    //    }
+    
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    
+    [params setObject:ScreenCodePlaceOrder forKey:kScreenName];
+    
+    NSData* json=nil;
+    
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_saveorder:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    json=[self get_json:URL_SAVE_ORDER parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        NSString *so = [jsobj valueForKey:@"so#"];
+        if (so) {
+            [appDelegate SetSo:so];
+        }
+        return jsobj;
+    }
+    else
+        return nil;
+    
+}
++(NSDictionary*)request_Editor:(NSString*) request_url params:(NSMutableDictionary*)params
+{
+    //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    
+    
+    //    if(![appDelegate.order_customer_id isEqualToString: appDelegate.contact_id]&& appDelegate.order_customer_id!=nil)
+    //        [params setValue:appDelegate.order_customer_id forKey:@"contactId"];
+    //    else
+    
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    DebugLog(@"request editor url:%@",request_url);
+    
+    
+    if([request_url isEqualToString:URL_NEW_CUSTOMER])
+    {
+        [params setObject:ScreenCodeNewCustomer forKey:kScreenName];
+    }
+    else if([request_url isEqualToString:URL_EDIT_CUSTOMER])
+    {
+        [params setObject:ScreenCodeEditCustomer forKey:kScreenName];
+    }
+    else if([request_url isEqualToString:URL_CUSTOMER_ADV_SEARCH])
+    {
+        [params setObject:ScreenCodeAdvanceSearch forKey:kScreenName];
+    }
+    else if([request_url isEqualToString:URL_CARTDELIVERY])
+    {
+        [params setObject:ScreenCodePlaceOrder forKey:kScreenName];
+    }
+    else if([request_url isEqualToString:URL_ADDRESS_EDOTOR])
+    {
+        [params setObject:ScreenCodeNewAddress forKey:kScreenName];
+    }
+    else if ([request_url isEqualToString:URL_DM_PARAMS]){
+        [params setObject:ScreenCodeCreatePortfolio forKey:kScreenName];
+    }
+    
+    NSData* json = nil;
+    if(appDelegate.offline_mode)
+    {
+        if([request_url isEqualToString:URL_NEW_CUSTOMER])
+        {
+            json= [OLDataProvider offline_createContact:params];
+        }
+        else if([request_url isEqualToString:URL_EDIT_CUSTOMER])
+        {
+            json= [OLDataProvider offline_editContact:params];
+        }
+        else if([request_url isEqualToString:URL_CUSTOMER_ADV_SEARCH])
+        {
+            json= [OLDataProvider offline_contactAdvancedSearch:params];
+        }
+        else if([request_url isEqualToString:URL_CARTDELIVERY])
+        {
+            json= [OLDataProvider offline_placeorder:params];
+        }
+        else if([request_url isEqualToString:URL_ADDRESS_EDOTOR])
+        {
+            json= [OLDataProvider offline_addreditor:params];
+        }
+        else if ([request_url isEqualToString:URL_DM_PARAMS]){
+            json = [OLDataProvider offline_createTearSheet:params];
+        }
+        
+        else
+            return [OLDataProvider offline_notimpl];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        if([request_url isEqualToString:URL_CARTDELIVERY])
+        {
+            NSError *error=nil;
+            
+            NSString * uuid= [[NSUUID UUID] UUIDString];
+            params[@"resultSerial"]=uuid;
+            
+            for(int i=0;i<150;i++)
+            {
+                //           NSMutableDictionary* result_params = [[NSMutableDictionary alloc]init];
+                //            result_params[@"resultSerial"]=uuid;
+                json=[self get_json:request_url parameters:params];
+                if(json!=nil)
+                {
+                    
+                    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+                    if([jsobj[@"result"] intValue]==2 || [jsobj[@"result"] intValue] == 8)
+                    {
+                        break;
+                    }
+                }
+                sleep(2);
+            }
+        }
+        else
+            json =[self get_json:request_url parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        return jsobj;
+    }
+    else
+        return nil;
+}
+//+(NSDictionary*)request_OrderInfo:(NSString*) orderid
+//{
+//    if(![self IsNetworkAvailable])
+//        return nil;
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//    [params setValue:orderid forKey:@"orderid"];
+//    NSData* json=[self get_json:URL_ORDER_INFO parameters:params];
+//    NSError *error=nil;
+//    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//    return jsobj;
+//}
++(NSDictionary*)request_OrderList:(int ) offset limit :(int)limit keywords :(NSString* ) keywords status:(NSString*) status_code customer:(NSString*) customer is_merged:(BOOL) isMerged
+{
+    
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:[NSString stringWithFormat:@"%d",offset ] forKey:@"offset"];
+    [params setValue:[NSString stringWithFormat:@"%d",limit ] forKey:@"limit"];
+    [params setValue:keywords forKey:@"keyWord"];
+    [params setValue:customer forKey:@"customer_filter"];
+    [params setValue:[NSNumber numberWithBool:isMerged] forKey:@"isMerged"];
+    
+    [params setValue:status_code forKey:@"orderStatus"];
+    
+    [params setObject:ScreenCodeOrderList forKey:kScreenName];
+    if (keywords) {
+        [params setObject:@"Search" forKey:kAction];
+    }
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_orderlist:params];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json=[self get_json:URL_ORDER_LIST parameters:params];
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
+
+
++(NSDictionary*)request_PDFList:(int ) offset limit:(int)limit keywords:(NSString* ) keywords
+{
+    
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",price_template]  forKey:@"price_template"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",customid]  forKey:@"custom_id"];
+    //    [params setValue:[NSString stringWithFormat:@"%@",category]  forKey:@"category"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+    //    [params setValue:filter forKey:@"filter"];
+    [params setValue:keywords forKey:@"keyWord"];
+    
+    [params setValue:[NSString stringWithFormat:@"%d",limit]  forKey:@"limit"];
+    [params setValue:[NSString stringWithFormat:@"%d",offset]  forKey:@"offset"];
+
+    [params setObject:ScreenCodeViewPortfolios forKey:kScreenName];
+    if (keywords) {
+        [params setObject:@"Search" forKey:kAction];
+    }
+    
+    NSData* json = nil;
+    if(appDelegate.offline_mode)
+    {
+        json = [OLDataProvider offline_pdfList:params];
+    } else {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json=[self get_json:URL_DM_LIST parameters:params];
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+    
+}
++(NSString*) create_portfolio:(NSMutableDictionary*)params
+{    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+        if(appDelegate.offline_mode)
+        {
+
+
+            NSData*json = [OLDataProvider offline_direct_save_TearSheet:params];
+            if(json==nil)
+                return nil;
+            NSError *error=nil;
+            NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+            
+            return jsobj[@"pdf_path"];
+        }
+        else
+        {
+            return nil;
+        }
+}
++(NSDictionary*)direct_save_TearSheet:(NSMutableDictionary*)params//(NSString*) request_url name:(NSString*)name delete:(NSString* )ids note:(NSString* )saveNote modelIds:(NSDictionary *)modelIds
+{
+    NSMutableDictionary* off_params = [params mutableCopy];;
+    
+    params[@"off_params"]=[RAUtils dict2string:off_params];;
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setObject:ScreenCodeCreatePortfolio forKey:kScreenName];
+    
+    /*
+    [params setValue:request_url forKey:@"pdfUrl"];
+    [params setValue:name forKey:@"pdfName"];
+    [params setValue:ids forKey:@"itemIds"];
+    [params setValue:saveNote forKey:@"pdfNote"];
+    [params setValue:[modelIds objectForKey:@"product_ids"] forKey:@"product_ids"];
+    [params setValue:[modelIds objectForKey:@"item_ids"] forKey:@"item_ids"];
+    [params setValue:[modelIds objectForKey:@"remove_item"] forKey:@"remove_item"];
+    */
+    NSData* json= nil;
+    
+    if(appDelegate.offline_mode)
+    {
+        json = [OLDataProvider offline_direct_save_TearSheet:params];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json=[self get_json:URL_REQUEST_DM parameters:params];
+
+        NSError *error=nil;
+        
+        NSString * uuid= [[NSUUID UUID] UUIDString];
+        params[@"resultSerial"]=uuid;
+        
+        for(int i=0;i<150;i++)
+        {
+            //           NSMutableDictionary* result_params = [[NSMutableDictionary alloc]init];
+            //            result_params[@"resultSerial"]=uuid;
+            json=[self get_json:URL_REQUEST_DM parameters:params];
+            if(json!=nil)
+            {
+                
+                NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+                if([jsobj[@"result"] intValue]==2)
+                {
+                    break;
+                }
+            }
+            sleep(5);
+        }
+
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*)request_TearSheet:(NSMutableDictionary*)params//(NSString*) request_url
+{
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+     [params setObject:ScreenCodeCreatePortfolio forKey:kScreenName];
+    
+//    [params setValue:request_url forKey:@"pdfUrl"];
+    NSData* json= nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_request_tearsheet:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+        NSError *error=nil;
+        
+        NSString * uuid= [[NSUUID UUID] UUIDString];
+        params[@"resultSerial"]=uuid;
+        
+        for(int i=0;i<150;i++)
+        {
+            //           NSMutableDictionary* result_params = [[NSMutableDictionary alloc]init];
+            //            result_params[@"resultSerial"]=uuid;
+            json=[self get_json:URL_REQUEST_DM parameters:params];
+            if(json!=nil)
+            {
+                
+                NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+                if([jsobj[@"result"] intValue]==2)
+                {
+                    break;
+                }
+            }
+            sleep(5);
+        }
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*)save_TearSheet:(NSMutableDictionary *)params//(NSString*) path name:(NSString*)name delete:(NSString* )ids note:(NSString*)note configureParams:(NSString *)configureParams modelIds:(NSDictionary *)modelIds
+{
+    
+    
+    NSMutableDictionary* off_params = [params mutableCopy];;
+    
+    params[@"off_params"]=[RAUtils dict2string:off_params];
+  //  NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setObject:ScreenCodeCreatePortfolio forKey:kScreenName];
+    
+   /*
+    [params setValue:path forKey:@"pdfPath"];
+    [params setValue:name forKey:@"pdfName"];
+    [params setValue:note forKey:@"pdfNote"];
+    [params setValue:ids forKey:@"itemIds"];
+    [params setValue:configureParams forKey:@"configureParams"];
+    [params setValue:[modelIds objectForKey:@"product_ids"] forKey:@"product_ids"];
+    [params setValue:[modelIds objectForKey:@"item_ids"] forKey:@"item_ids"];
+    [params setValue:[modelIds objectForKey:@"remove_item"] forKey:@"remove_item"];
+    */
+    NSData* json = nil;
+    if(appDelegate.offline_mode)
+    {
+        json = [OLDataProvider offline_save_TearSheet:params];
+    } else {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json=[self get_json:URL_SAVE_DM parameters:params];
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*)err_log:(NSString*) up_params result:(NSString*)result module:(NSString*) module code:(int) code//device:(NSString*) device
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    
+    [params setValue:up_params forKey:@"upparam"];
+    
+    [params setValue:[NSNumber numberWithInt:code ] forKey:@"code"];
+    
+    [params setValue:result forKey:@"result"];
+    [params setValue:module forKey:@"interfac"];
+    
+    [params setValue:[RAUtils base64en:[RAUtils dict2string: [RAUtils device_info]]] forKey:@"device"];
+    
+    
+    //     [params setValue:module forKey:@"module"];
+    
+    //  [[UIDevice currentDevice]  name];
+    
+//    if(appDelegate.offline_mode)
+//    {
+//        return [OLDataProvider offline_notimpl];
+//    }
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_ERR_LOG parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
+
+
++(NSDictionary*)request_ContactList:(int) offset limit:(int)limit keywords:(NSString*) keywords type:(NSString*) contact_type adv_search:(NSDictionary*)upparams
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    
+    if(upparams!=nil)
+        params = [upparams mutableCopy];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    
+    if(![appDelegate.order_customer_id isEqualToString: appDelegate.contact_id]&& appDelegate.order_customer_id!=nil)
+        [params setValue:appDelegate.order_customer_id forKey:@"contactId"];
+    else
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:[NSString stringWithFormat:@"%d",offset ] forKey:@"offset"];
+    [params setValue:[NSString stringWithFormat:@"%d",limit ] forKey:@"limit"];
+    [params setValue:contact_type forKey:@"contactType"];
+    [params setValue:keywords forKey:@"keyword"];
+    
+    [params setObject:ScreenCodeAccount forKey:kScreenName];
+    if (keywords) {
+        [params setObject:@"Search" forKey:kAction];
+    }
+    if (upparams) {
+        [params setObject:@"Advance Search" forKey:kAction];
+    }
+    
+    NSString* url=nil;
+    if([contact_type isEqualToString:@"Sales_Order_Ship_To"])
+        url=URL_SHIPTO_LIST;
+    else
+        url=URL_CONTACT_LIST;
+    
+    if(appDelegate.offline_mode)
+        return [OLDataProvider offline_contactlist:params];
+    
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:url parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*)request_OrderDetail:(NSString* ) orderid
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:orderid forKey:@"orderId"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",limit ] forKey:@"limit"];
+    
+    [params setObject:ScreenCodeOrderInfo forKey:kScreenName];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_orderdetail:params];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+
+            NSError *error=nil;
+            
+            NSString * uuid= [[NSUUID UUID] UUIDString];
+            params[@"resultSerial"]=uuid;
+            
+            for(int i=0;i<150;i++)
+            {
+                //           NSMutableDictionary* result_params = [[NSMutableDictionary alloc]init];
+                //            result_params[@"resultSerial"]=uuid;
+                json=[self get_json:URL_ORDER_DETAIL parameters:params];
+                if(json!=nil)
+                {
+                    
+                    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+                    int resultCode = [jsobj[@"result"] intValue];
+                    if(resultCode==2 || resultCode == 8)
+                    {
+                        break;
+                    }
+                }
+                sleep(2);
+            }
+        
+
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*) add_toCart:(NSString* ) item_id count:(int) count name:(NSString *)name
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    [params setValue:item_id forKey:@"product_id"];
+    [params setValue:[NSString stringWithFormat:@"%d",count]  forKey:@"count"];
+    
+    [params setObject:ScreenCodeModelInfo forKey:kScreenName];
+    [params setObject:@"Add To Cart" forKey:kAction];
+    if (name) {
+        NSDictionary *extra = @{@"ModelName" : name,@"Count" : @(count)};
+        [params setObject:extra forKey:kExtra];
+    }
+    
+    NSDictionary* customerinfo= appDelegate.customerInfo;
+    
+    NSArray* keys=[customerinfo allKeys];
+    for(int i=0;i<keys.count;i++)
+    {
+        [params setValue:[customerinfo valueForKey:(NSString*)keys[i]] forKey:keys[i] ];
+    }
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json=[OLDataProvider offline_add2cart:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    json=[self get_json:URL_ADD_TO_CART parameters:params];
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    
+    
+    
+    int result = [[jsobj valueForKey:@"result"] intValue];
+    
+    if (result==2)
+    {
+        
+        appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+        //    appDelegate.wish_count =[[jsobj valueForKey:@"wish_count"] intValue];
+        //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+        
+        [appDelegate update_count_mark];
+    }
+    
+    return jsobj;
+}
+
++(NSDictionary*) add_toCart_byName:(NSString* ) model_name withScreen:(NSString *)screenName
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    [params setValue:model_name forKey:@"product_name"];
+    [params setValue:[NSString stringWithFormat:@"%d",-1]  forKey:@"count"];
+    
+    [params setObject:screenName forKey:kScreenName];
+    [params setObject:@"Add To Cart" forKey:kAction];
+    [params setObject:@{@"ModelName" : model_name} forKey:kExtra];
+    
+    NSDictionary* customerinfo= appDelegate.customerInfo;
+    
+    NSArray* keys=[customerinfo allKeys];
+    for(int i=0;i<keys.count;i++)
+    {
+        [params setValue:[customerinfo valueForKey:(NSString*)keys[i]] forKey:keys[i] ];
+    }
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_add2cartbyname:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    json=[self get_json:URL_ADD_TO_CART parameters:params];
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    
+    
+    
+    int result = [[jsobj valueForKey:@"result"] intValue];
+    
+    if (result==2||result==8)
+    {
+        
+        appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+        //    appDelegate.wish_count =[[jsobj valueForKey:@"wish_count"] intValue];
+        //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+        
+        [appDelegate update_count_mark];
+    }
+    
+    return jsobj;
+}
+
+//+(NSDictionary*) new_Customer
+//{
+//    if(![self IsNetworkAvailable])
+//        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+////    if(appDelegate.contact_id!=nil)
+////        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//
+////    if(appDelegate.order_code!=nil)
+////        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+//
+//
+//    NSDictionary* customerinfo= appDelegate.customerInfo;
+//
+//    NSArray* keys=[customerinfo allKeys];
+//    for(int i=0;i<keys.count;i++)
+//    {
+//        [params setValue:[customerinfo valueForKey:(NSString*)keys[i]] forKey:keys[i] ];
+//    }
+//
+//    NSData* json=[self get_json:URL_CUSTOMER_EDIT parameters:params];
+//    if(json==nil)
+//        return nil;
+//    NSError *error=nil;
+//    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//    return jsobj;
+//}
++(NSDictionary*) new_Order
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    
+    
+    [params setObject:ScreenCodeOrderList forKey:kScreenName];
+    
+    NSDictionary* customerinfo= appDelegate.customerInfo;
+    
+    NSArray* keys=[customerinfo allKeys];
+    for(int i=0;i<keys.count;i++)
+    {
+        [params setValue:[customerinfo valueForKey:(NSString*)keys[i]] forKey:keys[i] ];
+    }
+    
+    NSData* json = nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_createorder:params];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json=[self get_json:URL_NEW_ORDER parameters:params];
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    int result = [[jsobj valueForKey:@"result"] intValue];
+    
+    if (result==2)
+    {
+        
+        appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+        //appDelegate.wish_count =[[jsobj valueForKey:@"wish_count"] intValue];
+        //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+        
+        [appDelegate update_count_mark];
+    }
+    
+    [appDelegate SetSo:[jsobj valueForKey:@"soId"]];
+    
+    if (appDelegate.user_type == USER_ROLE_CUSTOMER) {
+        [Singleton sharedInstance].currentOrderIsMerged = NO;
+    }
+    
+    return jsobj;
+}
++(NSDictionary*) add_toPortfolio:(NSString* ) item_id withScreen:(NSString *)screenName
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:item_id forKey:@"product_id"];
+    
+    [params setObject:screenName forKey:kScreenName];
+    
+    NSData* json = nil;
+    if(appDelegate.offline_mode)
+    {
+        json = [OLDataProvider offline_add2Portfolio:params];
+    } else {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+        json=[self get_json:URL_ADD_TO_PORTFOLIO parameters:params];
+    }
+    
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    int result = [[jsobj valueForKey:@"result"] intValue];
+    
+    if (result==2)
+    {
+        
+        //        appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+        //    appDelegate.wish_count =[[jsobj valueForKey:@"wish_count"] intValue];
+        appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+        
+        [appDelegate update_count_mark];
+    }
+    return jsobj;
+}
++(NSDictionary*) add_toWatchList:(NSString* ) item_id withScreen:(NSString *)screenName
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    
+    [params setValue:item_id forKey:@"product_id"];
+    
+    [params setObject:screenName forKey:kScreenName];
+    
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_add2wishlist:params];
+    }
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_ADD_TO_WATCHLIST parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    int result = [[jsobj valueForKey:@"result"] intValue];
+    
+    if (result==2)
+    {
+        
+        //appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+        appDelegate.wish_count =[[jsobj valueForKey:@"wish_count"] intValue];
+        //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+        
+        [appDelegate update_count_mark];
+    }
+    return jsobj;
+}
++(NSDictionary*) cart_setPrice:(NSString*) cart_id price:(float) price discount:(float) discount notes:(NSString*) notes
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:cart_id forKey:@"cartitem_id"];
+    [params setValue:notes forKey:@"item_note"];
+    
+    [params setValue:[NSString stringWithFormat:@"%f",price] forKey:@"price"];
+    
+    [params setValue:[NSString stringWithFormat:@"%f",discount] forKey:@"discount"];
+    
+    [params setObject:ScreenCodeCart forKey:kScreenName];
+    
+    NSData* json= nil;
+    if(appDelegate.offline_mode)
+    {
+        json=[OLDataProvider offline_cartsetprice:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+   json=[self get_json:URL_CART_SET_PRICE parameters:params];
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
+//+(NSDictionary*) portfolio_setQTY:(NSString*) watchlist_id QTY:(int)qty
+//{
+//    if(![self IsNetworkAvailable])
+//        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//
+//    [params setValue:watchlist_id forKey:@"item_id"];
+//
+//    [params setValue:[NSString stringWithFormat:@"%d",qty] forKey:@"available_qty"];
+//
+//
+//
+//    NSData* json=[self get_json:URL_DM_SET_QTY parameters:params];
+//    if(json==nil)
+//        return nil;
+//    NSError *error=nil;
+//    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//    return jsobj;
+//}
++(NSDictionary*) portfolio_setPrice:(NSString*) watchlist_id price:(float) price discount:(float) discount QTY:(int)qty qty_p:(float) qty_p notes:(NSString*)notes
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:watchlist_id forKey:@"item_id"];
+    
+//    if(notes.length>0)
+//        [params setValue:notes forKey:@"notes"];
+    if(notes)
+        [params setValue:notes forKey:@"notes"];
+    
+    if(price != -MAXFLOAT)
+        [params setValue:[NSString stringWithFormat:@"%f",price] forKey:@"price"];
+    
+    if (discount != -MAXFLOAT)
+        [params setValue:[NSString stringWithFormat:@"%f",discount] forKey:@"discount"];
+
+    if(qty_p != -MAXFLOAT)
+        [params setValue:[NSString stringWithFormat:@"%f",qty_p] forKey:@"available_percent"];
+    if(qty != -INT32_MAX)
+        [params setValue:[NSString stringWithFormat:@"%d",qty] forKey:@"available_qty"];
+    
+    [params setObject:ScreenCodePortfolio forKey:kScreenName];
+    
+    NSData* json = nil;
+    
+    if(appDelegate.offline_mode)
+    {
+        json = [OLDataProvider offline_editPortfolio:params];
+    } else {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json = [self get_json:URL_PORTFOLIO_SET_PRICE parameters:params];
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*) cart_setGeneralNote:(NSString*) order_code notes:(NSString*) notes
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:order_code forKey:@"orderCode"];
+    
+    [params setObject:ScreenCodeCart forKey:kScreenName];
+    
+    if(notes.length==0)
+        notes=@"";
+    
+    
+    [params setValue:notes forKey:@"comments"];
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_updategnotes:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+     json=[self get_json:URL_CART_GENERAL_NOTES parameters:params];
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*) cart_setItemNote:(NSString*) cart_id notes:(NSString*) notes
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:cart_id forKey:@"cartitem_id"];
+    
+    [params setObject:ScreenCodeCart forKey:kScreenName];
+    
+    if(notes.length==0)
+        notes=@"";
+    
+    
+    [params setValue:notes forKey:@"notes"];
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_cartsetlnotes:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    json=[self get_json:URL_CART_ITEM_NOTES parameters:params];
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*) cart_setFree:(NSString*) cart_id isfree:(bool) isfree
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:cart_id forKey:@"cartitem_id"];
+    
+    [params setObject:ScreenCodeCart forKey:kScreenName];
+    
+    NSString* free=nil;
+    
+    if(isfree)
+        free=@"true";
+    else
+        free=@"false";
+    
+    [params setValue:free forKey:@"free_giveaway"];
+    
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_notimpl];
+    }
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_CART_SET_PRICE parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*) cart_setQTY:(NSString*) cart_id value:(int) value
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:cart_id forKey:@"cartitem_id"];
+    
+    [params setObject:ScreenCodeCart forKey:kScreenName];
+    
+    [params setValue:[NSString stringWithFormat:@"%d",value] forKey:@"inputInt"];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_cartsetqty:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    json=[self get_json:URL_CART_INCRESEMENT parameters:params];
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+    
+}
++(NSDictionary*) cart_incresement:(NSString*) cart_id increse:(bool) increse
+{
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:cart_id forKey:@"cartitem_id"];
+    
+    if(increse)
+        [params setValue:@"1" forKey:@"incrementType"];
+    else
+        [params setValue:@"0" forKey:@"incrementType"];
+    
+    
+    
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_notimpl];
+    }
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_CART_INCRESEMENT parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*) finish_download_Offline:(NSString* )vid
+{
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    
+    [params setObject:ScreenCodeOfflineSetting forKey:kScreenName];
+    
+    //    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    
+    //    if(appDelegate.user!=nil)
+    //        [params setValue:appDelegate.user forKey:@"user"];
+    //    //    if(appDelegate.contact_id!=nil)
+    //    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    //    if(appDelegate.password!=nil)
+    //        [params setValue:appDelegate.password forKey:@"password"];
+    [params setValue:vid forKey:@"downSerial"];
+    NSData* json=[self get_json:URL_FINISH_DOWNLOAD_OFFLINE parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    //    int result = [[jsobj valueForKey:@"result"] intValue];
+    //
+    //    if (result==2)
+    //    {
+    //
+    ////        appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+    ////        //appDelegate.wish_count =[[jsobj valueForKey:@"count"] intValue];
+    ////        //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+    ////
+    ////        [appDelegate update_count_mark];
+    //    }
+    return jsobj;
+
+}
++(NSDictionary*) download_Offline:(NSString* )vid
+{
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    
+    [params setObject:ScreenCodeOfflineSync forKey:kScreenName];
+    
+    //    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    
+    //    if(appDelegate.user!=nil)
+    //        [params setValue:appDelegate.user forKey:@"user"];
+    //    //    if(appDelegate.contact_id!=nil)
+    //    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    //    if(appDelegate.password!=nil)
+    //        [params setValue:appDelegate.password forKey:@"password"];
+    [params setValue:vid forKey:@"downSerial"];
+    NSData* json=[self get_json:URL_DOWNLOAD_OFFLINE parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    //    int result = [[jsobj valueForKey:@"result"] intValue];
+    //
+    //    if (result==2)
+    //    {
+    //
+    ////        appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+    ////        //appDelegate.wish_count =[[jsobj valueForKey:@"count"] intValue];
+    ////        //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+    ////
+    ////        [appDelegate update_count_mark];
+    //    }
+    return jsobj;
+}
++(NSDictionary*) check_Offline:(NSString* )ver  useInternalAddress:(bool)buseinternaladdress vid:(NSString*)vid
+{
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(appDelegate.contact_id!=nil)
+    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    [params setValue:ver forKey:@"ver"];
+    [params setValue:vid forKey:@"vid"];
+    if(buseinternaladdress)
+        [params setValue:@"true" forKey:@"internal_address"];
+    else
+        [params setValue:@"false" forKey:@"internal_address"];
+    
+    [params setObject:ScreenCodeOfflineSync forKey:kScreenName];
+    
+    NSData* json=[self get_json:URL_CHECK_OFFLINE parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    //    int result = [[jsobj valueForKey:@"result"] intValue];
+    //
+    //    if (result==2)
+    //    {
+    //
+    ////        appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+    ////        //appDelegate.wish_count =[[jsobj valueForKey:@"count"] intValue];
+    ////        //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+    ////
+    ////        [appDelegate update_count_mark];
+    //    }
+    return jsobj;
+}
++(NSDictionary*)request_Cart:(int)sort
+{
+    
+    DebugLog(@"iSalesNetwork::request_Cart");
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(appDelegate.contact_id!=nil)
+    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    
+    [params setValue:[NSNumber numberWithInt:sort] forKey:@"sort"];
+    
+    [params setObject:ScreenCodeCart forKey:kScreenName];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_requestcart:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+        NSError *error=nil;
+        
+        NSString * uuid= [[NSUUID UUID] UUIDString];
+        params[@"resultSerial"]=uuid;
+        
+        for(int i=0;i<150;i++)
+        {
+            //           NSMutableDictionary* result_params = [[NSMutableDictionary alloc]init];
+            //            result_params[@"resultSerial"]=uuid;
+            json=[self get_json:URL_CART parameters:params];
+            if(json!=nil)
+            {
+                
+                NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+                if([jsobj[@"result"] intValue]==2)
+                {
+                    break;
+                }
+            }
+            sleep(2);
+        }
+
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    int result = [[jsobj valueForKey:@"result"] intValue];
+    
+    if (result==2)
+    {
+        
+        appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+        //appDelegate.wish_count =[[jsobj valueForKey:@"count"] intValue];
+        //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+        
+        [appDelegate update_count_mark];
+    }
+    return jsobj;
+}
++(NSDictionary*)request_Portfolio:(int)sort
+{
+    
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:[NSString stringWithFormat:@"%d",0 ] forKey:@"offset"];
+    [params setValue:[NSString stringWithFormat:@"%d",INT_MAX ] forKey:@"limit"];
+    [params setValue:[NSNumber numberWithInt:sort] forKey:@"sort"];
+    
+    [params setObject:ScreenCodePortfolio forKey:kScreenName];
+    
+    NSData* json = nil;
+    if(appDelegate.offline_mode)
+    {
+        json = [OLDataProvider offline_portfolioList:params];
+    } else {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json = [self get_json:URL_PORTFOLIO parameters:params];
+    }
+    
+    
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    int result = [[jsobj valueForKey:@"result"] intValue];
+    
+    if (result==2)
+    {
+        
+        //        appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+        //appDelegate.wish_count =[[jsobj valueForKey:@"count"] intValue];
+        appDelegate.port_count =[[jsobj valueForKey:@"count"] intValue];
+        
+        [appDelegate update_count_mark];
+    }
+    return jsobj;
+}
++(NSDictionary*)request_WatchList:(int)sort
+{
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:[NSString stringWithFormat:@"%d",0 ] forKey:@"offset"];
+    [params setValue:[NSString stringWithFormat:@"%d",INT_MAX ] forKey:@"limit"];
+    
+    [params setValue:[NSNumber numberWithInt:sort] forKey:@"sort"];
+    
+    [params setObject:ScreenCodeWishList forKey:kScreenName];
+    
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_wishlist:params];
+    }
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_WATCHLIST parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    int result = [[jsobj valueForKey:@"result"] intValue];
+    
+    if (result==2)
+    {
+        
+        //        appDelegate.cart_count = [[jsobj valueForKey:@"cart_count"] intValue];
+        appDelegate.wish_count =[[jsobj valueForKey:@"count"] intValue];
+        //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
+        
+        [appDelegate update_count_mark];
+    }
+    return jsobj;
+}
++(NSDictionary*)request_ItemDetail: (NSString* ) item_id model_name:(NSString*) model_name category_id:(NSString*) category_id use_name :(bool) use_name
+{
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",price_template]  forKey:@"price_template"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",customid]  forKey:@"custom_id"];
+    if(use_name)
+        [params setValue:model_name  forKey:@"product_name"];
+    else
+        [params setValue:item_id  forKey:@"product_id"];
+    
+    
+    [params setValue:category_id  forKey:@"category"];
+    
+    [params setObject:ScreenCodeModelInfo forKey:kScreenName];
+    [params setObject:@"Open A Model" forKey:kAction];
+    if (model_name) {
+        NSDictionary *extra = @{@"ModelName" : model_name};
+        [params setObject:extra forKey:kExtra];
+    }
+    
+    if(appDelegate.offline_mode)
+        return [OLDataProvider offline_model:params];
+    
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_ITEM_DETAIL parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
+//+(NSDictionary*)category_LoadMore: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword offset:(int)offset
+//{
+//    if(![self IsNetworkAvailable])
+//        return nil;
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//    [params setValue:[NSString stringWithFormat:@"%d",price_template]  forKey:@"price_template"];
+//    [params setValue:[NSString stringWithFormat:@"%d",customid]  forKey:@"custom_id"];
+//    [params setValue:[NSString stringWithFormat:@"%@",category]  forKey:@"category"];
+//    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+//    [params setValue:[NSString stringWithFormat:@"%d",offset]  forKey:@"offset"];
+//    [params setValue:filter forKey:@"filter"];
+//    [params setValue:keyword forKey:@"keyword"];
+//
+//
+//    NSData* json=[self get_json:URL_CATEGORY_LOADMORE parameters:params];
+//    if(json==nil)
+//        return nil;
+//    NSError *error=nil;
+//    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//    return jsobj;
+//
+//}
++(NSDictionary*)Category_addall: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword  offset:(long) offset limit:(long) limit alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip orderCode:(NSString*) orderCode addTo:(NSString*) addTo
+
+{
+
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    
+    [params setValue:addTo forKey:@"addTo"];
+    [params setValue:orderCode forKey:@"orderCode"];
+    [params setValue:alert forKey:@"alert"];
+    [params setValue:qty forKey:@"sold_by_qty"];
+    [params setValue:available forKey:@"available"];
+    [params setValue:price forKey:@"price"];
+    [params setValue:bestseller forKey:@"bestseller"];
+    [params setValue:modelname forKey:@"modelName"];
+    [params setValue:modeldescrip forKey:@"modelDescription"];
+    
+    [params setValue:[NSString stringWithFormat:@"%d",price_template]  forKey:@"price_template"];
+    [params setValue:[NSString stringWithFormat:@"%d",customid]  forKey:@"custom_id"];
+    [params setValue:category  forKey:@"category"];
+    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+    [params setValue:[NSString stringWithFormat:@"%ld",limit]  forKey:@"limit"];
+    [params setValue:[NSString stringWithFormat:@"%ld",offset]  forKey:@"offset"];
+    [params setValue:filter forKey:@"filter"];
+    [params setValue:keyword forKey:@"keyword"];
+    
+    [params setObject:ScreenCodeCategory forKey:kScreenName];
+    if ([addTo isEqualToString:@"cart"]) {
+        [params setObject:@"Add To Cart" forKey:kAction];
+    }
+    
+    
+    NSData* json= nil;
+    
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_categoryaddall:params];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+
+        NSError *error=nil;
+
+        NSString * uuid= [[NSUUID UUID] UUIDString];
+        params[@"resultSerial"]=uuid;
+        
+        for(int i=0;i<150;i++)
+        {
+ //           NSMutableDictionary* result_params = [[NSMutableDictionary alloc]init];
+//            result_params[@"resultSerial"]=uuid;
+            json=[self get_json:URL_CATEGORYADDALL parameters:params];
+            if(json!=nil)
+            {
+                
+                NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+                int resultInt = [jsobj[@"result"] intValue];
+                if(resultInt == 2 || resultInt == 8)
+                {
+                    break;
+                }
+            }
+            sleep(2);
+        }
+
+       
+        
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+
+}
+//+(NSDictionary*)category_addall2portfolio: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword  offset:(long) offset limit:(long) limit alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip
+//{
+//    
+//    
+//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    
+//    
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//    if(appDelegate.order_code!=nil)
+//        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+//    
+//    [params setValue:alert forKey:@"alert"];
+//    [params setValue:qty forKey:@"sold_by_qty"];
+//    [params setValue:available forKey:@"available"];
+//    [params setValue:price forKey:@"price"];
+//    [params setValue:bestseller forKey:@"bestseller"];
+//    [params setValue:modelname forKey:@"modelName"];
+//    [params setValue:modeldescrip forKey:@"modelDescription"];
+//    
+//    [params setValue:[NSString stringWithFormat:@"%d",price_template]  forKey:@"price_template"];
+//    [params setValue:[NSString stringWithFormat:@"%d",customid]  forKey:@"custom_id"];
+//    [params setValue:category  forKey:@"category"];
+//    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+//    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+//    [params setValue:[NSString stringWithFormat:@"%ld",limit]  forKey:@"limit"];
+//    [params setValue:[NSString stringWithFormat:@"%ld",offset]  forKey:@"offset"];
+//    [params setValue:filter forKey:@"filter"];
+//    [params setValue:keyword forKey:@"keyword"];
+//    
+//    
+//    
+//    if(appDelegate.offline_mode)
+//        return [OLDataProvider offline_category:params];
+//    if(![self IsNetworkAvailable])
+//        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//    
+//    NSData* json=[self get_json:URL_ADDALL2PORTFOLIO parameters:params];
+//    if(json==nil)
+//        return nil;
+//    NSError *error=nil;
+//    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//    return jsobj;
+//    
+//}
+//+(NSDictionary*)category_addall2wish: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword  offset:(long) offset limit:(long) limit alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip
+//{
+//    
+//    
+//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    
+//    
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//    if(appDelegate.order_code!=nil)
+//        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+//    
+//    [params setValue:alert forKey:@"alert"];
+//    [params setValue:qty forKey:@"sold_by_qty"];
+//    [params setValue:available forKey:@"available"];
+//    [params setValue:price forKey:@"price"];
+//    [params setValue:bestseller forKey:@"bestseller"];
+//    [params setValue:modelname forKey:@"modelName"];
+//    [params setValue:modeldescrip forKey:@"modelDescription"];
+//    
+//    [params setValue:[NSString stringWithFormat:@"%d",price_template]  forKey:@"price_template"];
+//    [params setValue:[NSString stringWithFormat:@"%d",customid]  forKey:@"custom_id"];
+//    [params setValue:category  forKey:@"category"];
+//    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+//    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+//    [params setValue:[NSString stringWithFormat:@"%ld",limit]  forKey:@"limit"];
+//    [params setValue:[NSString stringWithFormat:@"%ld",offset]  forKey:@"offset"];
+//    [params setValue:filter forKey:@"filter"];
+//    [params setValue:keyword forKey:@"keyword"];
+//    
+//    
+//    
+//    if(appDelegate.offline_mode)
+//        return [OLDataProvider offline_category:params];
+//    if(![self IsNetworkAvailable])
+//        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//    
+//    NSData* json=[self get_json:URL_ADDALL2WISH parameters:params];
+//    if(json==nil)
+//        return nil;
+//    NSError *error=nil;
+//    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//    return jsobj;
+//    
+//}
++(NSDictionary*)Category: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword  offset:(long) offset limit:(long) limit alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip
+{
+    
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    
+    [params setValue:alert forKey:@"alert"];
+    [params setValue:qty forKey:@"sold_by_qty"];
+    [params setValue:available forKey:@"available"];
+    [params setValue:price forKey:@"price"];
+    [params setValue:bestseller forKey:@"bestseller"];
+    [params setValue:modelname forKey:@"modelName"];
+    [params setValue:modeldescrip forKey:@"modelDescription"];
+    
+    [params setValue:[NSString stringWithFormat:@"%d",price_template]  forKey:@"price_template"];
+    [params setValue:[NSString stringWithFormat:@"%d",customid]  forKey:@"custom_id"];
+    [params setValue:category  forKey:@"category"];
+    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+    [params setValue:[NSString stringWithFormat:@"%ld",limit]  forKey:@"limit"];
+    [params setValue:[NSString stringWithFormat:@"%ld",offset]  forKey:@"offset"];
+    [params setValue:filter forKey:@"filter"];
+    [params setValue:keyword forKey:@"keyword"];
+    
+    [params setObject:ScreenCodeCategory forKey:kScreenName];
+    if (alert) {
+        [params setObject:@"Filter" forKey:kAction];
+    }
+    if ([Singleton sharedInstance].homeItemClick) {
+        [params setObject:@"Brow A Particular Category On Home" forKey:kAction];
+        [Singleton sharedInstance].homeItemClick = NO;
+        
+        NSDictionary *extra = @{@"CoverName" : [Singleton sharedInstance].homeClickedItemName};
+        [Singleton sharedInstance].homeClickedItemName = nil;
+        [params setObject:extra forKey:kExtra];
+
+    }
+    
+    
+    if(appDelegate.offline_mode)
+        return [OLDataProvider offline_category:params];
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_CATEGORY parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+    
+}
++(NSDictionary*)Search_addall:(long ) offset limit :(long)limit keywords :(NSString*) keywords matchfull:(bool)matchfull orderCode:(NSString*) orderCode  addTo:(NSString*) addTo
+{
+    
+
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",price_template]  forKey:@"price_template"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",customid]  forKey:@"custom_id"];
+    //    [params setValue:[NSString stringWithFormat:@"%@",category]  forKey:@"category"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+    //    [params setValue:filter forKey:@"filter"];
+    [params setValue:keywords forKey:@"keyword"];
+    [params setValue:addTo forKey:@"addTo"];
+    
+    [params setValue:orderCode forKey:@"orderCode"];
+    [params setValue:[NSString stringWithFormat:@"%ld",limit]  forKey:@"limit"];
+    [params setValue:[NSString stringWithFormat:@"%ld",offset]  forKey:@"offset"];
+    if(matchfull)
+        [params setValue:@"true"  forKey:@"exactMatch"];
+    else
+        [params setValue:@"false"  forKey:@"exactMatch"];
+    
+    [params setObject:ScreenCodeSearch forKey:kScreenName];
+    if ([addTo isEqualToString:@"cart"]) {
+        [params setObject:@"Add To Cart" forKey:kAction];
+    }
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json=[OLDataProvider offline_searchaddall:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+        NSError *error=nil;
+        
+        NSString * uuid= [[NSUUID UUID] UUIDString];
+        params[@"resultSerial"]=uuid;
+        
+        for(int i=0;i<150;i++)
+        {
+            //           NSMutableDictionary* result_params = [[NSMutableDictionary alloc]init];
+            //            result_params[@"resultSerial"]=uuid;
+            json=[self get_json:URL_SEARCHADDALL parameters:params];
+            if(json!=nil)
+            {
+                
+                NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+                if([jsobj[@"result"] intValue]==2)
+                {
+                    break;
+                }
+            }
+            sleep(2);
+        }
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+
+}
++(NSDictionary*)Search:(long ) offset limit :(long)limit keywords :(NSString*) keywords matchfull:(bool)matchfull
+{
+    
+    
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",price_template]  forKey:@"price_template"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",customid]  forKey:@"custom_id"];
+    //    [params setValue:[NSString stringWithFormat:@"%@",category]  forKey:@"category"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+    //    [params setValue:filter forKey:@"filter"];
+    [params setValue:keywords forKey:@"keyword"];
+    
+    [params setValue:[NSString stringWithFormat:@"%ld",limit]  forKey:@"limit"];
+    [params setValue:[NSString stringWithFormat:@"%ld",offset]  forKey:@"offset"];
+    if(matchfull)
+        [params setValue:@"true"  forKey:@"exactMatch"];
+    else
+        [params setValue:@"false"  forKey:@"exactMatch"];
+    
+    [params setObject:ScreenCodeSearch forKey:kScreenName];
+    if (keywords) {
+        [params setObject:@"Search" forKey:kAction];
+    }
+    
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_search:params];
+    }
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_SEARCH parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*)ItemSearch_addall:(long ) offset limit :(long)limit covertype:(NSString* ) covertype ctgid:(NSString*)ctgid modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller orderCode:(NSString*) orderCode addTo:(NSString*) addTo
+{
+    // for debug
+    //    return [RAUtils error_json:RESULT_NET_ERROR err_msg:nil];
+    //return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    
+        [params setValue:addTo forKey:@"addTo"];
+    
+    [params setValue:orderCode forKey:@"orderCode"];
+    
+    //    [params setValue:[NSString stringWithFormat:@"%d",price_template]  forKey:@"price_template"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",customid]  forKey:@"custom_id"];
+    //    [params setValue:[NSString stringWithFormat:@"%@",category]  forKey:@"category"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+    //    [params setValue:filter forKey:@"filter"];
+    [params setValue:covertype forKey:@"covertype"];
+    [params setValue:ctgid forKey:@"ctgId"];
+    [params setValue:modelname forKey:@"modelName"];
+    [params setValue:modeldescrip forKey:@"modelDescription"];
+    [params setValue:alert forKey:@"alert"];
+    [params setValue:qty forKey:@"sold_by_qty"];
+    [params setValue:available forKey:@"available"];
+    [params setValue:price forKey:@"price"];
+    [params setValue:bestseller forKey:@"bestseller"];
+    
+    [params setValue:[NSString stringWithFormat:@"%ld",limit]  forKey:@"limit"];
+    [params setValue:[NSString stringWithFormat:@"%ld",offset]  forKey:@"offset"];
+    
+    [params setObject:ScreenCodeParticularCategory forKey:kScreenName];
+    if ([addTo isEqualToString:@"cart"]) {
+        [params setObject:@"Add To Cart" forKey:kAction];
+    }
+    
+    NSData* json = nil;
+    
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_itemsearchaddall:params];
+    }
+    else
+    {
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        NSError *error=nil;
+        
+        NSString * uuid= [[NSUUID UUID] UUIDString];
+        params[@"resultSerial"]=uuid;
+        
+        for(int i=0;i<150;i++)
+        {
+            //           NSMutableDictionary* result_params = [[NSMutableDictionary alloc]init];
+            //            result_params[@"resultSerial"]=uuid;
+            json=[self get_json:URL_ITEMSEARCHADDALL parameters:params];
+            if(json!=nil)
+            {
+                
+                NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+                if([jsobj[@"result"] intValue]==2)
+                {
+                    break;
+                }
+            }
+            sleep(2);
+        }
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*)ItemSearch:(long ) offset limit :(long)limit covertype:(NSString* ) covertype ctgid:(NSString*)ctgid modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller
+{
+    
+    // for debug
+    //    return [RAUtils error_json:RESULT_NET_ERROR err_msg:nil];
+    //return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    if(appDelegate.order_code!=nil)
+        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+    
+    
+    [params setObject:ScreenCodeParticularCategory forKey:kScreenName];
+    if (alert && qty && available && price && bestseller) {
+        [params setObject:@"Filter" forKey:kAction];
+    }
+    if ([Singleton sharedInstance].homeItemClick) {
+        [params setObject:@"Brow A Particular Category On Home" forKey:kAction];
+        [Singleton sharedInstance].homeItemClick = NO;
+        
+        NSDictionary *extra = @{@"CoverName" : [Singleton sharedInstance].homeClickedItemName};
+        [Singleton sharedInstance].homeClickedItemName = nil;
+        [params setObject:extra forKey:kExtra];
+    }
+    
+    
+    //    [params setValue:[NSString stringWithFormat:@"%d",price_template]  forKey:@"price_template"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",customid]  forKey:@"custom_id"];
+    //    [params setValue:[NSString stringWithFormat:@"%@",category]  forKey:@"category"];
+    //    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+    //    [params setValue:filter forKey:@"filter"];
+    [params setValue:covertype forKey:@"covertype"];
+    [params setValue:ctgid forKey:@"ctgId"];
+    [params setValue:modelname forKey:@"modelName"];
+    [params setValue:modeldescrip forKey:@"modelDescription"];
+    [params setValue:alert forKey:@"alert"];
+    [params setValue:qty forKey:@"sold_by_qty"];
+    [params setValue:available forKey:@"available"];
+    [params setValue:price forKey:@"price"];
+    [params setValue:bestseller forKey:@"bestseller"];
+    
+    [params setValue:[NSString stringWithFormat:@"%ld",limit]  forKey:@"limit"];
+    [params setValue:[NSString stringWithFormat:@"%ld",offset]  forKey:@"offset"];
+    
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_itemsearch:params];
+    }
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    NSData* json=[self get_json:URL_ITEM_SEARCH parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
+
+//+(NSDictionary*)Search: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword
+//{
+//    if(![self IsNetworkAvailable])
+//    return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    if(appDelegate.user!=nil)
+//    [params setValue:appDelegate.user forKey:@"user"];
+//    if(appDelegate.contact_id!=nil)
+//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//    [params setValue:appDelegate.password forKey:@"password"];
+//    [params setValue:[NSString stringWithFormat:@"%d",price_template]  forKey:@"price_template"];
+//    [params setValue:[NSString stringWithFormat:@"%d",customid]  forKey:@"custom_id"];
+//    [params setValue:[NSString stringWithFormat:@"%@",category]  forKey:@"category"];
+//    [params setValue:[NSString stringWithFormat:@"%d",sort_by]  forKey:@"sort_by"];
+//    [params setValue:filter forKey:@"filter"];
+//    [params setValue:keyword forKey:@"keyword"];
+//
+//
+//    NSData* json=[self get_json:URL_SEARCH parameters:params];
+//    if(json==nil)
+//        return nil;
+//    NSError *error=nil;
+//    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//    return jsobj;
+//}
+
+
++(NSDictionary*)request_model_qty: (NSString*) fashionId
+{
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    [params setValue:fashionId  forKey:@"fashionId"];
+    
+    [params setObject:ScreenCodeEditPortfolio forKey:kScreenName];
+    
+    NSData* json = nil;
+    if(appDelegate.offline_mode)
+    {
+        json = [OLDataProvider offline_model_qty:params];
+    } else {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+        json=[self get_json:URL_REQUEST_MODEL_QTY parameters:params];
+    }
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
+
++(NSDictionary*)retrieve_password: (NSString*) user email:(NSString*) email
+{
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    //    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    //    if(appDelegate.user!=nil)
+    //        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(appDelegate.contact_id!=nil)
+    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    //    if(appDelegate.password!=nil)
+    //        [params setValue:appDelegate.password forKey:@"password"];
+    [params setValue:user  forKey:@"username"];
+    [params setValue:email  forKey:@"email"];
+    
+    [params setObject:ScreenCodeLoginView forKey:kScreenName];
+    
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_RETRIEVE_PASS parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*)load_HomePage:(int) price_template customid:(int) customid
+{
+    
+    
+    
+    
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    [params setValue:[NSString stringWithFormat:@"%d",price_template]  forKey:@"price_template"];
+    [params setValue:[NSString stringWithFormat:@"%d",customid]  forKey:@"custom_id"];
+    
+    [params setObject:ScreenCodeHomeView forKey:kScreenName];
+    
+    //    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.offline_mode)
+    {
+        //params[@"offline_Command"]=url;
+        return [OLDataProvider offline_home];
+    }
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_LOAD_HOME parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
+
++(NSDictionary*)logout
+{
+    
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    
+    
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_logout:params];
+    }
+    if(![self IsNetworkAvailable])
+    {
+        DebugLog(@"NET ERR");
+        
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        //        return nil;
+    }
+    NSData* json=[self get_json:URL_LOGOUT parameters:params];
+    //if(json==nil)
+    
+    
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    int result = [[jsobj valueForKey:@"result"] intValue];
+    
+    if (result==2)
+    {
+        
+        appDelegate.cart_count = 0;//[[jsobj valueForKey:@"cart_count"] intValue];
+        appDelegate.wish_count =0;//[[jsobj valueForKey:@"wish_count"] intValue];
+        appDelegate.port_count =0;//[[jsobj valueForKey:@"portfolio_count"] intValue];
+        
+        [appDelegate update_count_mark];
+        
+        
+        appDelegate.can_show_price =false;
+        appDelegate.can_see_price =false;
+        appDelegate.can_create_portfolio =false;
+        appDelegate.can_create_order =false;
+        
+        
+        appDelegate.can_cancel_order =false;
+        appDelegate.can_set_cart_price =false;
+        appDelegate.can_delete_order =false;
+        appDelegate.can_submit_order =false;
+        appDelegate.can_set_tearsheet_price =false;
+        appDelegate.can_update_contact_info = false;
+        
+        appDelegate.save_order_logout = false;
+        appDelegate.submit_order_logout = false;
+        appDelegate.alert_sold_in_quantities = false;
+        
+        appDelegate.ipad_perm =nil ;
+        appDelegate.user_type = USER_ROLE_UNKNOWN;
+        appDelegate.OrderFilter= nil;
+        [appDelegate SetSo:nil];
+        [appDelegate set_main_button_panel];
+    }
+    return jsobj;
+}
++(NSDictionary*)request_Cagegory
+{
+    // DebugLog(@"@@@@@@@@@@@@@@@@@@@LOADING CATEGORY MENU");
+    
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.offline_mode)
+    {
+        //params[@"offline_Command"]=url;
+        return [OLDataProvider offline_category_menu];
+    }
+    
+    if(![self IsNetworkAvailable])
+    {
+        DebugLog(@"NET ERR");
+        
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        //        return nil;
+    }
+    
+    NSData* json=[self get_json:URL_REQUEST_CATMENU parameters:nil];
+    //if(json==nil)
+    
+    
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(int)Authorize : (NSString*) user password:(NSString*) password{
+    
+    //    if(![ApexMobileNetwork IsHostAvailable:URL_UPDATE_AUTH])
+    //        return RESULT_NET_ERROR;
+    NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
+    long ver =[defaults integerForKey:[NSString stringWithFormat:@"%@_Auth_InfoVer",user]];
+    
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.duid !=nil)
+        [params setValue:appDelegate.duid forKey:@"udid"];
+    [params setValue:@"handset_login" forKey:@"action"];
+    //    [headers setValue:[NSString stringWithFormat:@"%d",dataLength] forKey:@"Content-Length"];
+    
+    [params setValue:user forKey:@"user"];
+    [params setValue:password forKey:@"password"];
+    [params setValue:[NSString stringWithFormat:@"%ld",ver]  forKey:@"auth_ver"];
+#ifdef TEST
+    [params setValue:@"true" forKey:@"is_debug"];
+#else
+    [params setValue:@"false" forKey:@"is_debug"];
+#endif
+    
+    [params setObject:ScreenCodeLoginView forKey:kScreenName];
+    [params setObject:@"Login" forKey:kAction];
+    
+    NSData* json= nil;
+    if(appDelegate.offline_mode)
+    {
+        json= [OLDataProvider offline_login:params] ;
+        
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return RESULT_NET_NOTAVAILABLE;
+        json =[self get_json:URL_UPDATE_AUTH parameters:params];
+        
+    }
+    
+    if(json==nil)
+        return RESULT_NET_ERROR;
+
+    int ret = [self parse_authinfo:json user:user password:password];
+    DebugLog(@"parse_authinfo return %d ",ret);
+    
+    
+    return ret;
+    
+    
+}
++(NSDictionary*)update_customer_img: (NSString*) contactid img_url:(NSString*) url
+{
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(appDelegate.contact_id!=nil)
+    
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    [params setValue:contactid forKey:@"contactId"];
+    [params setValue:url forKey:@"business_card"];
+    //   [params setValue:[NSNumber numberWithInt:index ] forKey:@"index"];
+    
+    [params setObject:ScreenCodeEditCustomer forKey:kScreenName];
+    
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_notimpl];
+    }
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_UPDATE_CUSTOMER_BCARD parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*)request_PendingOrder:(NSString *)contactid
+{
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(appDelegate.contact_id!=nil)
+    
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    [params setValue:contactid forKey:@"contactId"];
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_notimpl];
+    }
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_CUSTOMER_PENDINGORDER parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+    
+}
++(NSDictionary*)request_CustomerInfo:(NSString* ) contactid
+{
+    
+    
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(appDelegate.contact_id!=nil)
+    
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    [params setValue:contactid forKey:@"contactId"];
+    
+    [params setObject:ScreenCodeCustomerInfo forKey:kScreenName];
+    
+    if(appDelegate.offline_mode)
+        return [OLDataProvider offline_contactinfo:params];
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    
+    NSData* json=[self get_json:URL_CUSTOMER_INFO parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+    
+}
++(int)parse_authinfo : (NSData *) json user:(NSString*) user password:(NSString*) password
+{
+    DebugLog(@"parse_authinfo");
+    NSError *error=nil;
+    
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    if(jsobj)
+    {
+        
+        UIApplication * app = [UIApplication sharedApplication];
+        AppDelegate *appDelegate = (AppDelegate *)[app delegate];
+        int result = [[jsobj valueForKey:@"result"] intValue];
+        
+        if (result<0)
+            return result;
+        if(result!=AP_USER_AUTH&& result!=9)
+        {
+            
+            
+            DebugLog(@"USER NOT AUTHORIZED CODE=%d ",result);
+            [appDelegate Logout];
+            if(result==8)
+            {
+                return RESULT_LOGIN_DEVICE;
+            }
+            return RESULT_FALSE;
+            
+        }
+        NSDictionary* objheader = [jsobj objectForKey:@"header"];
+        
+        NSString* required_ver=[jsobj objectForKey:@"min_ver"] ;
+        user=[objheader objectForKey:@"username"] ;
+        DebugLog(@"required_ver=%@ ",required_ver);
+        //        NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
+        //        NSString* versionNum =[infoDict valueForKey:@"CFBundleVersion"];
+        //        versionNum = [NSString stringWithFormat:@"A%@",versionNum];
+        int ibadge = [[objheader valueForKey:@"badge"] intValue];
+        
+        //        if([ibadge isEqual:[NSNull null]])
+        //            strbadge=@"0";
+        //        if(ibadge==nil)
+        //            ibadge=@"0";
+        //        if([strbadge isEqualToString:@"null"])
+        //            strbadge=@"0";
+        app.applicationIconBadgeNumber = ibadge;//[strbadge intValue];
+        
+        //  BOOL bigger = [appDelegate.build compare:required_ver] ;
+        if([appDelegate.build intValue]<[required_ver intValue])
+            return RESULT_VER_LOW;
+        //        appDelegate.sessionid = [objheader valueForKey:@"sessionid"];
+        appDelegate.user = user;
+        appDelegate.password = password;
+        appDelegate.user_type = [[objheader valueForKey:@"user_type"] intValue];
+        appDelegate.user_icon =[objheader valueForKey:@"user_img"] ;
+        appDelegate.bLogin = true;
+        
+        
+        
+        
+        if(appDelegate.user_type==USER_ROLE_CUSTOMER)
+        {
+            appDelegate.customerInfo = [[objheader objectForKeyedSubscript:@"customerInfo"] mutableCopy];
+            appDelegate.contact_id = [objheader valueForKey:@"contact_id"];
+//            appDelegate.order_code =[objheader valueForKey:@"orderCode"];
+//            appDelegate.order_status =[[objheader valueForKey:@"orderStatus"] intValue];
+//            [appDelegate SetSo:[objheader valueForKey:@"soId"]];
+        }
+        NSString* mode =[jsobj valueForKey:@"mode"] ;
+        [appDelegate SetMode:mode];
+        
+        
+        appDelegate.cart_count = [[objheader valueForKey:@"cart_count"] intValue];
+        appDelegate.wish_count =[[objheader valueForKey:@"wish_count"] intValue];
+        appDelegate.port_count =[[objheader valueForKey:@"portfolio_count"] intValue];
+        
+        [appDelegate update_count_mark];
+        
+        
+        
+        appDelegate.can_show_price =[[objheader valueForKey:@"can_show_price"] boolValue];
+        appDelegate.can_see_price =[[objheader valueForKey:@"can_see_price"] boolValue];
+        appDelegate.can_create_portfolio =[[objheader valueForKey:@"can_create_portfolio"] boolValue];
+        appDelegate.can_create_order =[[objheader valueForKey:@"can_create_order"] boolValue];
+        
+        appDelegate.can_cancel_order =[[objheader valueForKey:@"can_cancel_order"] boolValue];
+        appDelegate.can_set_cart_price =[[objheader valueForKey:@"can_set_cart_price"] boolValue];
+        appDelegate.can_delete_order =[[objheader valueForKey:@"can_delete_order"] boolValue];
+        appDelegate.can_update_contact_info =[[objheader valueForKey:@"can_update_contact_info"] boolValue];
+        appDelegate.can_submit_order =[[objheader valueForKey:@"can_submit_order"] boolValue];
+        appDelegate.can_set_tearsheet_price =[[objheader valueForKey:@"can_set_tearsheet_price"] boolValue];
+        
+        appDelegate.save_order_logout =[[objheader valueForKey:@"save_order_logout"] boolValue];
+        appDelegate.submit_order_logout =[[objheader valueForKey:@"submit_order_logout"] boolValue];
+        
+        appDelegate.alert_sold_in_quantities = [[objheader valueForKey:@"alert_sold_in_quantities"] boolValue];
+        
+        appDelegate.can_create_backorder = [[objheader valueForKey:@"can_create_backorder"] boolValue];
+        
+        appDelegate.ipad_perm =[objheader valueForKey:@"ipad_perm"] ;
+        
+        NSString* strfilter = [objheader valueForKey:@"statusFilter"] ;
+        
+        
+        
+        appDelegate.OrderFilter= [[RAUtils string2dict:strfilter] mutableCopy];
+        
+        
+        [appDelegate set_main_button_panel];
+        
+        if(appDelegate.user_type==USER_ROLE_CUSTOMER) {
+        
+            // shop order status filter
+            NSString *shopOrderStatusFilterStr = [objheader valueForKey:@"shopOrderFilter"] ;
+            [Singleton sharedInstance].shop_order_status_filter = [[RAUtils string2dict:shopOrderStatusFilterStr] mutableCopy];
+            // Sales order status filter
+            NSString *salesOrderStatusFilterStr = [objheader valueForKey:@"purchaseOrderFilter"] ;
+            [Singleton sharedInstance].sales_order_status_filter = [[RAUtils string2dict:salesOrderStatusFilterStr] mutableCopy];
+            
+            // specialInstruction
+            [Singleton sharedInstance].specialInstruction = [objheader valueForKey:@"specialInstruction"];
+            
+            //-价格类型
+            [Singleton sharedInstance].npd_shop_price_type = [[objheader valueForKey:@"price_type"] integerValue];
+            
+            // 权限
+            [Singleton sharedInstance].permissions_price_setting = [[objheader valueForKey:@"can_set_price_formula"] boolValue];
+            [Singleton sharedInstance].permissions_edit_order = [[objheader valueForKey:@"can_place_order"] boolValue];
+
+            [Singleton sharedInstance].permissions_submit_order = [[objheader valueForKey:@"can_submit_order"] boolValue];
+
+            [Singleton sharedInstance].permissions_merge_order = [[objheader valueForKey:@"can_merge_order"] boolValue];
+            
+            [Singleton sharedInstance].deliveryString = [objheader valueForKey:@"delivery_price"];
+            [[Singleton sharedInstance] resetGlobalLock];
+            [Singleton sharedInstance].customer_can_see_sales_Order = [[objheader valueForKey:@"can_see_salesorder"] boolValue];
+            [Singleton sharedInstance].customerInfo = [objheader objectForKeyedSubscript:@"customerInfo"];
+        }
+        
+        //        DebugLog(@"sessionid=%@ ",appDelegate.sessionid);
+        //        if ([[objheader valueForKey:@"update"] boolValue]==false)
+        //        {
+        //            // no update on the server;
+        //            return RESULT_TRUE;
+        //        }
+        //        int Auth_InfoVer = [[objheader valueForKey:@"ver"] intValue];
+        //        NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
+        //        [defaults removeObjectForKey:[NSString stringWithFormat:@"%@_Auth_InfoVer",user]];
+        //       [defaults setInteger:Auth_InfoVer forKey:[NSString stringWithFormat:@"%@_Auth_InfoVer",user]];
+        //        [defaults synchronize];
+        //
+        //        NSDictionary* objfuncs = [jsobj objectForKey:@"functions"];
+        //        NSArray* keys= [objfuncs allKeys];
+        
+        
+        /*
+         
+         db.setTransactionSuccessful();
+         db.endTransaction();
+         */
+        return RESULT_TRUE;
+        
+    }
+    //    NSDictionary *weatherInfo = [jsobj objectForKey:@"weatherinfo"];
+    //    txtView.text = [NSString stringWithFormat:@"今天是 %@  %@  %@  的天气状况是:%@  %@ ",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"], [weatherInfo objectForKey:@"weather1"], [weatherInfo objectForKey:@"temp1"]];
+    //      DebugLog(@"weatherInfo字典里面的内容为--》%@", weatherDic );
+    
+    
+    
+    return RESULT_USERAUTH_ERROR;
+}
+
++(bool) IsNetworkAvailable
+{
+    
+    if (([Reachability reachabilityForInternetConnection].currentReachabilityStatus == NotReachable) &&
+        ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus == NotReachable))
+        return false;
+    return true;
+}
+//+(NSString *)flattenHTML:(NSString *)html trimWhiteSpace:(BOOL)trim
+//{
+//    NSScanner *theScanner = [NSScanner scannerWithString:html];
+//    NSString *text = nil;
+//
+//    while ([theScanner isAtEnd] == NO) {
+//        // find start of tag
+//        [theScanner scanUpToString:@"<" intoString:NULL] ;
+//        // find end of tag
+//        [theScanner scanUpToString:@">" intoString:&text] ;
+//        // replace the found tag with a space
+//        //(you can filter multi-spaces out later if you wish)
+//        html = [html stringByReplacingOccurrencesOfString:
+//                [ NSString stringWithFormat:@"%@>", text]
+//                                               withString:@""];
+//    }
+//
+//    return trim ? [html stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] : html;
+//}
+//
+//+(NSString *)flattenURL:(NSString *)url trimWhiteSpace:(BOOL)trim
+//{
+//    NSScanner *theScanner = [NSScanner scannerWithString:url];
+//    NSString *text = nil;
+//    
+//    while ([theScanner isAtEnd] == NO) {
+//        // find start of tag
+//        [theScanner scanUpToString:@"/" intoString:NULL] ;
+//        // find end of tag
+//        [theScanner scanUpToString:@"/" intoString:&text] ;
+//        // replace the found tag with a space
+//        //(you can filter multi-spaces out later if you wish)
+//        url = [url stringByReplacingOccurrencesOfString:
+//                [ NSString stringWithFormat:@"%@", text]
+//                                               withString:@""];
+//    }
+//    
+//    return trim ? [url stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] : url;
+//}
+
++ (NSDictionary *)set_npd_shop_price_type:(NSInteger)priceType {
+    
+    NSMutableDictionary* dic = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [dic setValue:appDelegate.user forKey:@"user"];
+    
+    if(appDelegate.password!=nil)
+        [dic setValue:appDelegate.password forKey:@"password"];
+    
+    [dic setValue:[NSString stringWithFormat:@"%ld",priceType] forKey:@"price_type"];
+    [dic setObject:ScreenCodePriceSetting forKey:kScreenName];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_notimpl];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json = [RANetwork get_json:URL_SET_PRICE_TYPE parameters:dic];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        
+        
+        return jsobj;
+    }
+
+    
+    return nil;
+}
+
++ (NSDictionary *)get_npd_shop_givenPrice {
+    NSMutableDictionary* dic = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [dic setValue:appDelegate.user forKey:@"user"];
+    
+    if(appDelegate.password!=nil)
+        [dic setValue:appDelegate.password forKey:@"password"];
+    
+    [dic setObject:ScreenCodeCategoryPrice forKey:kScreenName];
+        
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_notimpl];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json = [RANetwork get_json:URL_GET_CIVEN_PRICE parameters:dic];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        
+        
+        return jsobj;
+    }
+    
+    
+    return nil;
+
+}
+
++ (NSDictionary *)set_npd_shop_givenPrice:(NSMutableDictionary *)params {
+    
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setObject:ScreenCodeSetCatetoryPrice forKey:kScreenName];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_notimpl];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json = [RANetwork get_json:URL_SET_GIVEN_PRICE parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        
+        
+        return jsobj;
+    }
+    
+    
+    return nil;
+}
+
++ (NSDictionary *)merge_order:(NSMutableDictionary *)params {
+    
+    NSMutableDictionary* dic = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [dic setValue:appDelegate.user forKey:@"user"];
+
+    if(appDelegate.password!=nil)
+        [dic setValue:appDelegate.password forKey:@"password"];
+    
+    [dic setValue:[params objectForKey:@"order_ids"] forKey:@"order_ids"];
+    [dic setValue:[params objectForKey:@"targetOrderId"] forKey:@"targetOrderId"];
+    [dic setValue:[params objectForKey:@"customerInfo"] forKey:@"customerInfo"];
+    
+    [dic setObject:ScreenCodeOrderList forKey:kScreenName];
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_notimpl];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json=[self get_json:URL_SET_MERGE_ORDER parameters:dic];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        
+        
+        return jsobj;
+    }
+    else
+        return nil;
+
+}
+
++ (NSDictionary *)lock_order:(NSString *)oderCode {
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:oderCode forKey:@"orderCode"];
+
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        json=[OLDataProvider offline_editorder:params];
+        
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json=[self get_json:URL_OPEN_ORDER parameters:params];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        
+        return jsobj;
+    }
+    else
+        return nil;
+}
+
++ (NSDictionary *)quoteOrder:(NSString *)so_id emailAddr:(NSString *)addr {
+    
+    NSMutableDictionary* dic = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [dic setValue:appDelegate.user forKey:@"user"];
+    
+    if(appDelegate.password!=nil)
+        [dic setValue:appDelegate.password forKey:@"password"];
+    
+    [dic setValue:so_id forKey:@"orderCode"];
+    [dic setValue:addr forKey:@"email"];
+    
+    [dic setObject:ScreenCodeCart forKey:kScreenName];
+    
+    if (appDelegate.customerInfo) {
+        NSString *customer_cid = [appDelegate.customerInfo objectForKey:@"customer_cid"];
+        if (customer_cid) {
+            [dic setValue:customer_cid forKey:@"contactId"];
+        }
+    }
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_notimpl];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json = [RANetwork get_json:URL_EMAIL_CART parameters:dic];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        
+        
+        return jsobj;
+    }
+    
+    return @{@"result" : @(RESULT_FALSE)};
+}
+
++ (NSDictionary *)notifyModel:(NSString *)modelID emailAddr:(NSString *)addr withScreen:(NSString *)screenName{
+    
+    NSMutableDictionary* dic = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [dic setValue:appDelegate.user forKey:@"user"];
+    
+    if(appDelegate.password!=nil)
+        [dic setValue:appDelegate.password forKey:@"password"];
+    
+    if (appDelegate.user_type == USER_ROLE_EMPLOYEE && appDelegate.customerInfo) {
+        NSString *customer_cid = [appDelegate.customerInfo objectForKey:@"customer_cid"];
+        if (customer_cid) {
+            [dic setValue:customer_cid forKey:@"contactId"];
+        }
+    }
+    
+    [dic setObject:screenName forKey:kScreenName];
+    
+    [dic setValue:modelID forKey:@"productId"];
+    
+    if (addr) { // 弹框输入
+        [dic setValue:addr forKey:@"email"];
+    } else {
+        // employee选择了Contact,并且Contact有Email
+//        if (appDelegate.user_type == USER_ROLE_EMPLOYEE && appDelegate.customerInfo) {
+//            NSString *email = [appDelegate.customerInfo objectForKey:@"customer_email"];
+//            if (email) {
+//                [dic setValue:email forKey:@"email"];
+//            }
+//        }
+    }
+    
+    
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_notimpl];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json = [RANetwork get_json:URL_NOTIFY_ME parameters:dic];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        
+        
+        return jsobj;
+    }
+    
+    return @{@"result" : @(RESULT_FALSE)};
+}
+
+
++ (NSDictionary *)quoteWishlist2EmailAddr:(NSString *)addr {
+    
+    NSMutableDictionary* dic = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [dic setValue:appDelegate.user forKey:@"user"];
+    
+    if(appDelegate.password!=nil)
+        [dic setValue:appDelegate.password forKey:@"password"];
+    
+    [dic setValue:addr forKey:@"email"];
+    
+    [dic setObject:ScreenCodeWishList forKey:kScreenName];
+    
+//    if (appDelegate.customerInfo) {
+//        NSString *customer_cid = [appDelegate.customerInfo objectForKey:@"customer_cid"];
+//        if (customer_cid) {
+//            [dic setValue:customer_cid forKey:@"contactId"];
+//        }
+//    }
+    
+    NSData* json=nil;
+    if(appDelegate.offline_mode)
+    {
+        return [OLDataProvider offline_notimpl];
+    }
+    else
+    {
+        if(![self IsNetworkAvailable])
+            return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+        
+        json = [RANetwork get_json:URL_EMAIL_WISHLIST parameters:dic];
+    }
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        
+        
+        return jsobj;
+    }
+    
+    return @{@"result" : @(RESULT_FALSE)};
+}
+
+@end

+ 6 - 6
RedAnt ERP Mobile/iSales-GATIT.xcodeproj/project.pbxproj

@@ -267,7 +267,7 @@
 		71DF74971C57614C00F2789C /* PhotoStackView.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74921C57614C00F2789C /* PhotoStackView.m */; };
 		71DF74971C57614C00F2789C /* PhotoStackView.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74921C57614C00F2789C /* PhotoStackView.m */; };
 		71DF74981C57614C00F2789C /* PhotoStackViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74941C57614C00F2789C /* PhotoStackViewController.m */; };
 		71DF74981C57614C00F2789C /* PhotoStackViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF74941C57614C00F2789C /* PhotoStackViewController.m */; };
 		71FFBBE91C60894900D91DC2 /* iSalesDB.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE61C60894900D91DC2 /* iSalesDB.m */; };
 		71FFBBE91C60894900D91DC2 /* iSalesDB.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE61C60894900D91DC2 /* iSalesDB.m */; };
-		71FFBBEA1C60894900D91DC2 /* iSalesNetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE81C60894900D91DC2 /* iSalesNetwork.m */; };
+		71FFBBEA1C60894900D91DC2 /* RANetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE81C60894900D91DC2 /* RANetwork.m */; };
 /* End PBXBuildFile section */
 /* End PBXBuildFile section */
 
 
 /* Begin PBXFileReference section */
 /* Begin PBXFileReference section */
@@ -755,8 +755,8 @@
 		71DF74941C57614C00F2789C /* PhotoStackViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PhotoStackViewController.m; path = common/photoStack/PhotoStackViewController.m; sourceTree = SOURCE_ROOT; };
 		71DF74941C57614C00F2789C /* PhotoStackViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PhotoStackViewController.m; path = common/photoStack/PhotoStackViewController.m; sourceTree = SOURCE_ROOT; };
 		71FFBBE51C60894900D91DC2 /* iSalesDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesDB.h; path = common/data_provider/iSalesDB.h; sourceTree = SOURCE_ROOT; };
 		71FFBBE51C60894900D91DC2 /* iSalesDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesDB.h; path = common/data_provider/iSalesDB.h; sourceTree = SOURCE_ROOT; };
 		71FFBBE61C60894900D91DC2 /* iSalesDB.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesDB.m; path = common/data_provider/iSalesDB.m; sourceTree = SOURCE_ROOT; };
 		71FFBBE61C60894900D91DC2 /* iSalesDB.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesDB.m; path = common/data_provider/iSalesDB.m; sourceTree = SOURCE_ROOT; };
-		71FFBBE71C60894900D91DC2 /* iSalesNetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesNetwork.h; path = common/data_provider/iSalesNetwork.h; sourceTree = SOURCE_ROOT; };
-		71FFBBE81C60894900D91DC2 /* iSalesNetwork.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesNetwork.m; path = common/data_provider/iSalesNetwork.m; sourceTree = SOURCE_ROOT; };
+		71FFBBE71C60894900D91DC2 /* RANetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RANetwork.h; path = common/data_provider/RANetwork.h; sourceTree = SOURCE_ROOT; };
+		71FFBBE81C60894900D91DC2 /* RANetwork.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RANetwork.m; path = common/data_provider/RANetwork.m; sourceTree = SOURCE_ROOT; };
 /* End PBXFileReference section */
 /* End PBXFileReference section */
 
 
 /* Begin PBXFrameworksBuildPhase section */
 /* Begin PBXFrameworksBuildPhase section */
@@ -1402,8 +1402,8 @@
 				42F9FACE1F8C592700D9C781 /* NetworkUtils.m */,
 				42F9FACE1F8C592700D9C781 /* NetworkUtils.m */,
 				42F9FAD01F8C595A00D9C781 /* RANetworkTaskDelegate.h */,
 				42F9FAD01F8C595A00D9C781 /* RANetworkTaskDelegate.h */,
 				42F9FAD11F8C595A00D9C781 /* RANetworkTaskDelegate.m */,
 				42F9FAD11F8C595A00D9C781 /* RANetworkTaskDelegate.m */,
-				71FFBBE71C60894900D91DC2 /* iSalesNetwork.h */,
-				71FFBBE81C60894900D91DC2 /* iSalesNetwork.m */,
+				71FFBBE71C60894900D91DC2 /* RANetwork.h */,
+				71FFBBE81C60894900D91DC2 /* RANetwork.m */,
 				71BF06F91D2F3CAC00981938 /* OLDataProvider.h */,
 				71BF06F91D2F3CAC00981938 /* OLDataProvider.h */,
 				71BF06FA1D2F3CAC00981938 /* OLDataProvider.m */,
 				71BF06FA1D2F3CAC00981938 /* OLDataProvider.m */,
 				71C1D8361F456BE800CEA1C9 /* more_info.html */,
 				71C1D8361F456BE800CEA1C9 /* more_info.html */,
@@ -1931,7 +1931,7 @@
 				7141DD531C57459B00F7DF59 /* qrspec.c in Sources */,
 				7141DD531C57459B00F7DF59 /* qrspec.c in Sources */,
 				71BF07081D2F3D2800981938 /* SyncControlPanelViewController.m in Sources */,
 				71BF07081D2F3D2800981938 /* SyncControlPanelViewController.m in Sources */,
 				4289802D1E2492D2005F1BD8 /* PriceSettingViewController.m in Sources */,
 				4289802D1E2492D2005F1BD8 /* PriceSettingViewController.m in Sources */,
-				71FFBBEA1C60894900D91DC2 /* iSalesNetwork.m in Sources */,
+				71FFBBEA1C60894900D91DC2 /* RANetwork.m in Sources */,
 				428980161E24924D005F1BD8 /* SortItemCell.m in Sources */,
 				428980161E24924D005F1BD8 /* SortItemCell.m in Sources */,
 				7162A59D1C58733400AB630E /* OrderDetailViewController.m in Sources */,
 				7162A59D1C58733400AB630E /* OrderDetailViewController.m in Sources */,
 				7141DD3B1C5726B700F7DF59 /* DeviceInfo.m in Sources */,
 				7141DD3B1C5726B700F7DF59 /* DeviceInfo.m in Sources */,

+ 8 - 8
RedAnt ERP Mobile/iSales-GATIT/AppDelegate.m

@@ -16,7 +16,7 @@
 //#import "AFHTTPSessionManager.h"
 //#import "AFHTTPSessionManager.h"
 #import "SelectUploadOrderViewController.h"
 #import "SelectUploadOrderViewController.h"
 #import "iSalesDB.h"
 #import "iSalesDB.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "NotificationNameCenter.h"
 #import "NotificationNameCenter.h"
 #import "CustomerEditViewController.h"
 #import "CustomerEditViewController.h"
 #import "CreateOrderViewController.h"
 #import "CreateOrderViewController.h"
@@ -27,7 +27,7 @@
 #import "Analytics.h"
 #import "Analytics.h"
 #import "GoogleAnalyst.h"
 #import "GoogleAnalyst.h"
 #import "ERPUtils.h"
 #import "ERPUtils.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 
 
 #define UNZIP_OPEN_FAILED 0
 #define UNZIP_OPEN_FAILED 0
 #define UNZIP_SUCCESS 1
 #define UNZIP_SUCCESS 1
@@ -558,7 +558,7 @@ void UncaughtExceptionHandler(NSException *exception) {
             
             
             NSString *result = [NSString stringWithFormat:@"version: %@ \n crash_datetime: %@ \n",version,time];
             NSString *result = [NSString stringWithFormat:@"version: %@ \n crash_datetime: %@ \n",version,time];
             
             
-            NSDictionary *ret = [iSalesNetwork err_log:errlog result:result module:@"crash" code:0];
+            NSDictionary *ret = [RANetwork err_log:errlog result:result module:@"crash" code:0];
             
             
             // 上传成功之后清除纪录
             // 上传成功之后清除纪录
             if ([[ret objectForKey:@"result"] integerValue] == 2) {
             if ([[ret objectForKey:@"result"] integerValue] == 2) {
@@ -652,7 +652,7 @@ void UncaughtExceptionHandler(NSException *exception) {
                     self.order_customer_id = order_customer_id;
                     self.order_customer_id = order_customer_id;
                     
                     
                     // 首先通过order code 打开订单
                     // 首先通过order code 打开订单
-                    NSDictionary* order_json = [iSalesNetwork open_Order:order_code];
+                    NSDictionary* order_json = [RANetwork open_Order:order_code];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         //                [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                         //                [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -664,7 +664,7 @@ void UncaughtExceptionHandler(NSException *exception) {
                             [self SetSo:so];
                             [self SetSo:so];
                             
                             
                             if (userType != USER_ROLE_CUSTOMER) {
                             if (userType != USER_ROLE_CUSTOMER) {
-                                self.customerInfo = [[[iSalesNetwork request_CustomerInfo:order_customer_id] objectForKey:@"customerInfo"] mutableCopy];
+                                self.customerInfo = [[[RANetwork request_CustomerInfo:order_customer_id] objectForKey:@"customerInfo"] mutableCopy];
                                 
                                 
                                 self.contact_id=[self.customerInfo valueForKey:@"customer_cid"];
                                 self.contact_id=[self.customerInfo valueForKey:@"customer_cid"];
                             }
                             }
@@ -1497,7 +1497,7 @@ void UncaughtExceptionHandler(NSException *exception) {
         
         
         [self add_downloadlog:@"Checking offline data, this will take a few minute, please wait."];
         [self add_downloadlog:@"Checking offline data, this will take a few minute, please wait."];
         
         
-        NSMutableDictionary* json=[[iSalesNetwork  check_Offline:ver useInternalAddress:buseinternaladdress vid:pvid] mutableCopy];
+        NSMutableDictionary* json=[[RANetwork  check_Offline:ver useInternalAddress:buseinternaladdress vid:pvid] mutableCopy];
         
         
         
         
         if([json[@"result"] intValue]!=2)
         if([json[@"result"] intValue]!=2)
@@ -1535,7 +1535,7 @@ void UncaughtExceptionHandler(NSException *exception) {
             
             
             
             
             count++;
             count++;
-            download_json=[[iSalesNetwork  download_Offline:downSerial] mutableCopy];
+            download_json=[[RANetwork  download_Offline:downSerial] mutableCopy];
             
             
             
             
             
             
@@ -1978,7 +1978,7 @@ void UncaughtExceptionHandler(NSException *exception) {
                     
                     
                     
                     
                     
                     
-                    NSDictionary* editor_json = [iSalesNetwork finish_download_Offline:downSerial];
+                    NSDictionary* editor_json = [RANetwork finish_download_Offline:downSerial];
                     
                     
 
 
                 });
                 });

+ 6 - 6
RedAnt ERP Mobile/iSales-HOMER.xcodeproj/project.pbxproj

@@ -273,7 +273,7 @@
 		71E9F6B61F8B46830052C78E /* NetworkUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E9F6B41F8B46820052C78E /* NetworkUtils.m */; };
 		71E9F6B61F8B46830052C78E /* NetworkUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E9F6B41F8B46820052C78E /* NetworkUtils.m */; };
 		71E9F6C51F8B58740052C78E /* RANetworkTaskDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E9F6C31F8B58740052C78E /* RANetworkTaskDelegate.m */; };
 		71E9F6C51F8B58740052C78E /* RANetworkTaskDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E9F6C31F8B58740052C78E /* RANetworkTaskDelegate.m */; };
 		71FFBBE91C60894900D91DC2 /* iSalesDB.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE61C60894900D91DC2 /* iSalesDB.m */; };
 		71FFBBE91C60894900D91DC2 /* iSalesDB.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE61C60894900D91DC2 /* iSalesDB.m */; };
-		71FFBBEA1C60894900D91DC2 /* iSalesNetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE81C60894900D91DC2 /* iSalesNetwork.m */; };
+		71FFBBEA1C60894900D91DC2 /* RANetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE81C60894900D91DC2 /* RANetwork.m */; };
 /* End PBXBuildFile section */
 /* End PBXBuildFile section */
 
 
 /* Begin PBXFileReference section */
 /* Begin PBXFileReference section */
@@ -763,8 +763,8 @@
 		71E9F6C41F8B58740052C78E /* RANetworkTaskDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RANetworkTaskDelegate.h; path = ../../common/upload/RANetworkTaskDelegate.h; sourceTree = "<group>"; };
 		71E9F6C41F8B58740052C78E /* RANetworkTaskDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RANetworkTaskDelegate.h; path = ../../common/upload/RANetworkTaskDelegate.h; sourceTree = "<group>"; };
 		71FFBBE51C60894900D91DC2 /* iSalesDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesDB.h; path = common/data_provider/iSalesDB.h; sourceTree = SOURCE_ROOT; };
 		71FFBBE51C60894900D91DC2 /* iSalesDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesDB.h; path = common/data_provider/iSalesDB.h; sourceTree = SOURCE_ROOT; };
 		71FFBBE61C60894900D91DC2 /* iSalesDB.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesDB.m; path = common/data_provider/iSalesDB.m; sourceTree = SOURCE_ROOT; };
 		71FFBBE61C60894900D91DC2 /* iSalesDB.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesDB.m; path = common/data_provider/iSalesDB.m; sourceTree = SOURCE_ROOT; };
-		71FFBBE71C60894900D91DC2 /* iSalesNetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesNetwork.h; path = common/data_provider/iSalesNetwork.h; sourceTree = SOURCE_ROOT; };
-		71FFBBE81C60894900D91DC2 /* iSalesNetwork.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesNetwork.m; path = common/data_provider/iSalesNetwork.m; sourceTree = SOURCE_ROOT; };
+		71FFBBE71C60894900D91DC2 /* RANetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RANetwork.h; path = common/data_provider/RANetwork.h; sourceTree = SOURCE_ROOT; };
+		71FFBBE81C60894900D91DC2 /* RANetwork.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RANetwork.m; path = common/data_provider/RANetwork.m; sourceTree = SOURCE_ROOT; };
 /* End PBXFileReference section */
 /* End PBXFileReference section */
 
 
 /* Begin PBXFrameworksBuildPhase section */
 /* Begin PBXFrameworksBuildPhase section */
@@ -1410,8 +1410,8 @@
 				71E9F6B41F8B46820052C78E /* NetworkUtils.m */,
 				71E9F6B41F8B46820052C78E /* NetworkUtils.m */,
 				71E9F6C41F8B58740052C78E /* RANetworkTaskDelegate.h */,
 				71E9F6C41F8B58740052C78E /* RANetworkTaskDelegate.h */,
 				71E9F6C31F8B58740052C78E /* RANetworkTaskDelegate.m */,
 				71E9F6C31F8B58740052C78E /* RANetworkTaskDelegate.m */,
-				71FFBBE71C60894900D91DC2 /* iSalesNetwork.h */,
-				71FFBBE81C60894900D91DC2 /* iSalesNetwork.m */,
+				71FFBBE71C60894900D91DC2 /* RANetwork.h */,
+				71FFBBE81C60894900D91DC2 /* RANetwork.m */,
 				71BF06F91D2F3CAC00981938 /* OLDataProvider.h */,
 				71BF06F91D2F3CAC00981938 /* OLDataProvider.h */,
 				71BF06FA1D2F3CAC00981938 /* OLDataProvider.m */,
 				71BF06FA1D2F3CAC00981938 /* OLDataProvider.m */,
 				71C1D8361F456BE800CEA1C9 /* more_info.html */,
 				71C1D8361F456BE800CEA1C9 /* more_info.html */,
@@ -1947,7 +1947,7 @@
 				7141DD531C57459B00F7DF59 /* qrspec.c in Sources */,
 				7141DD531C57459B00F7DF59 /* qrspec.c in Sources */,
 				71BF07081D2F3D2800981938 /* SyncControlPanelViewController.m in Sources */,
 				71BF07081D2F3D2800981938 /* SyncControlPanelViewController.m in Sources */,
 				4289802D1E2492D2005F1BD8 /* PriceSettingViewController.m in Sources */,
 				4289802D1E2492D2005F1BD8 /* PriceSettingViewController.m in Sources */,
-				71FFBBEA1C60894900D91DC2 /* iSalesNetwork.m in Sources */,
+				71FFBBEA1C60894900D91DC2 /* RANetwork.m in Sources */,
 				428980161E24924D005F1BD8 /* SortItemCell.m in Sources */,
 				428980161E24924D005F1BD8 /* SortItemCell.m in Sources */,
 				7162A59D1C58733400AB630E /* OrderDetailViewController.m in Sources */,
 				7162A59D1C58733400AB630E /* OrderDetailViewController.m in Sources */,
 				7141DD3B1C5726B700F7DF59 /* DeviceInfo.m in Sources */,
 				7141DD3B1C5726B700F7DF59 /* DeviceInfo.m in Sources */,

+ 8 - 8
RedAnt ERP Mobile/iSales-HOMER/AppDelegate.m

@@ -16,7 +16,7 @@
 //#import "AFHTTPSessionManager.h"
 //#import "AFHTTPSessionManager.h"
 #import "SelectUploadOrderViewController.h"
 #import "SelectUploadOrderViewController.h"
 #import "iSalesDB.h"
 #import "iSalesDB.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "NotificationNameCenter.h"
 #import "NotificationNameCenter.h"
 #import "CustomerEditViewController.h"
 #import "CustomerEditViewController.h"
 #import "CreateOrderViewController.h"
 #import "CreateOrderViewController.h"
@@ -27,7 +27,7 @@
 #import "Analytics.h"
 #import "Analytics.h"
 #import "GoogleAnalyst.h"
 #import "GoogleAnalyst.h"
 #import "ERPUtils.h"
 #import "ERPUtils.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 
 
 #define UNZIP_OPEN_FAILED 0
 #define UNZIP_OPEN_FAILED 0
 #define UNZIP_SUCCESS 1
 #define UNZIP_SUCCESS 1
@@ -565,7 +565,7 @@ void UncaughtExceptionHandler(NSException *exception) {
             
             
             NSString *result = [NSString stringWithFormat:@"version: %@ \n crash_datetime: %@ \n",version,time];
             NSString *result = [NSString stringWithFormat:@"version: %@ \n crash_datetime: %@ \n",version,time];
             
             
-            NSDictionary *ret = [iSalesNetwork err_log:errlog result:result module:@"crash" code:0];
+            NSDictionary *ret = [RANetwork err_log:errlog result:result module:@"crash" code:0];
             
             
             // 上传成功之后清除纪录
             // 上传成功之后清除纪录
             if ([[ret objectForKey:@"result"] integerValue] == 2) {
             if ([[ret objectForKey:@"result"] integerValue] == 2) {
@@ -659,7 +659,7 @@ void UncaughtExceptionHandler(NSException *exception) {
                     self.order_customer_id = order_customer_id;
                     self.order_customer_id = order_customer_id;
                     
                     
                     // 首先通过order code 打开订单
                     // 首先通过order code 打开订单
-                    NSDictionary* order_json = [iSalesNetwork open_Order:order_code];
+                    NSDictionary* order_json = [RANetwork open_Order:order_code];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         //                [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                         //                [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -671,7 +671,7 @@ void UncaughtExceptionHandler(NSException *exception) {
                             [self SetSo:so];
                             [self SetSo:so];
                             
                             
                             if (userType != USER_ROLE_CUSTOMER) {
                             if (userType != USER_ROLE_CUSTOMER) {
-                                self.customerInfo = [[[iSalesNetwork request_CustomerInfo:order_customer_id] objectForKey:@"customerInfo"] mutableCopy];
+                                self.customerInfo = [[[RANetwork request_CustomerInfo:order_customer_id] objectForKey:@"customerInfo"] mutableCopy];
                                 
                                 
                                 self.contact_id=[self.customerInfo valueForKey:@"customer_cid"];
                                 self.contact_id=[self.customerInfo valueForKey:@"customer_cid"];
                             }
                             }
@@ -1504,7 +1504,7 @@ void UncaughtExceptionHandler(NSException *exception) {
         
         
         [self add_downloadlog:@"Checking offline data, this will take a few minute, please wait."];
         [self add_downloadlog:@"Checking offline data, this will take a few minute, please wait."];
         
         
-        NSMutableDictionary* json=[[iSalesNetwork  check_Offline:ver useInternalAddress:buseinternaladdress vid:pvid] mutableCopy];
+        NSMutableDictionary* json=[[RANetwork  check_Offline:ver useInternalAddress:buseinternaladdress vid:pvid] mutableCopy];
         
         
         
         
         if([json[@"result"] intValue]!=2)
         if([json[@"result"] intValue]!=2)
@@ -1542,7 +1542,7 @@ void UncaughtExceptionHandler(NSException *exception) {
             
             
             
             
             count++;
             count++;
-            download_json=[[iSalesNetwork  download_Offline:downSerial] mutableCopy];
+            download_json=[[RANetwork  download_Offline:downSerial] mutableCopy];
             
             
             
             
             
             
@@ -1985,7 +1985,7 @@ void UncaughtExceptionHandler(NSException *exception) {
                     
                     
                     
                     
                     
                     
-                    NSDictionary* editor_json = [iSalesNetwork finish_download_Offline:downSerial];
+                    NSDictionary* editor_json = [RANetwork finish_download_Offline:downSerial];
                     
                     
 
 
                 });
                 });

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

@@ -275,7 +275,7 @@
 		71E9F6BC1F8B52DD0052C78E /* NetworkUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E9F6BA1F8B52DC0052C78E /* NetworkUtils.m */; };
 		71E9F6BC1F8B52DD0052C78E /* NetworkUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E9F6BA1F8B52DC0052C78E /* NetworkUtils.m */; };
 		71E9F6C21F8B57E40052C78E /* RANetworkTaskDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E9F6C01F8B57E30052C78E /* RANetworkTaskDelegate.m */; };
 		71E9F6C21F8B57E40052C78E /* RANetworkTaskDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E9F6C01F8B57E30052C78E /* RANetworkTaskDelegate.m */; };
 		71FFBBE91C60894900D91DC2 /* iSalesDB.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE61C60894900D91DC2 /* iSalesDB.m */; };
 		71FFBBE91C60894900D91DC2 /* iSalesDB.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE61C60894900D91DC2 /* iSalesDB.m */; };
-		71FFBBEA1C60894900D91DC2 /* iSalesNetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE81C60894900D91DC2 /* iSalesNetwork.m */; };
+		71FFBBEA1C60894900D91DC2 /* RANetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE81C60894900D91DC2 /* RANetwork.m */; };
 /* End PBXBuildFile section */
 /* End PBXBuildFile section */
 
 
 /* Begin PBXFileReference section */
 /* Begin PBXFileReference section */
@@ -767,8 +767,8 @@
 		71E9F6C11F8B57E40052C78E /* RANetworkTaskDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RANetworkTaskDelegate.h; path = ../../common/upload/RANetworkTaskDelegate.h; sourceTree = "<group>"; };
 		71E9F6C11F8B57E40052C78E /* RANetworkTaskDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RANetworkTaskDelegate.h; path = ../../common/upload/RANetworkTaskDelegate.h; sourceTree = "<group>"; };
 		71FFBBE51C60894900D91DC2 /* iSalesDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesDB.h; path = common/data_provider/iSalesDB.h; sourceTree = SOURCE_ROOT; };
 		71FFBBE51C60894900D91DC2 /* iSalesDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesDB.h; path = common/data_provider/iSalesDB.h; sourceTree = SOURCE_ROOT; };
 		71FFBBE61C60894900D91DC2 /* iSalesDB.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesDB.m; path = common/data_provider/iSalesDB.m; sourceTree = SOURCE_ROOT; };
 		71FFBBE61C60894900D91DC2 /* iSalesDB.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesDB.m; path = common/data_provider/iSalesDB.m; sourceTree = SOURCE_ROOT; };
-		71FFBBE71C60894900D91DC2 /* iSalesNetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iSalesNetwork.h; path = common/data_provider/iSalesNetwork.h; sourceTree = SOURCE_ROOT; };
-		71FFBBE81C60894900D91DC2 /* iSalesNetwork.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesNetwork.m; path = common/data_provider/iSalesNetwork.m; sourceTree = SOURCE_ROOT; };
+		71FFBBE71C60894900D91DC2 /* RANetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RANetwork.h; path = common/data_provider/RANetwork.h; sourceTree = SOURCE_ROOT; };
+		71FFBBE81C60894900D91DC2 /* RANetwork.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RANetwork.m; path = common/data_provider/RANetwork.m; sourceTree = SOURCE_ROOT; };
 /* End PBXFileReference section */
 /* End PBXFileReference section */
 
 
 /* Begin PBXFrameworksBuildPhase section */
 /* Begin PBXFrameworksBuildPhase section */
@@ -1417,8 +1417,8 @@
 				71E9F6BA1F8B52DC0052C78E /* NetworkUtils.m */,
 				71E9F6BA1F8B52DC0052C78E /* NetworkUtils.m */,
 				71E9F6C11F8B57E40052C78E /* RANetworkTaskDelegate.h */,
 				71E9F6C11F8B57E40052C78E /* RANetworkTaskDelegate.h */,
 				71E9F6C01F8B57E30052C78E /* RANetworkTaskDelegate.m */,
 				71E9F6C01F8B57E30052C78E /* RANetworkTaskDelegate.m */,
-				71FFBBE71C60894900D91DC2 /* iSalesNetwork.h */,
-				71FFBBE81C60894900D91DC2 /* iSalesNetwork.m */,
+				71FFBBE71C60894900D91DC2 /* RANetwork.h */,
+				71FFBBE81C60894900D91DC2 /* RANetwork.m */,
 				71BF06F91D2F3CAC00981938 /* OLDataProvider.h */,
 				71BF06F91D2F3CAC00981938 /* OLDataProvider.h */,
 				71BF06FA1D2F3CAC00981938 /* OLDataProvider.m */,
 				71BF06FA1D2F3CAC00981938 /* OLDataProvider.m */,
 				42C9FB141D5B28FA001DCA8B /* contactAdvanceSearch.json */,
 				42C9FB141D5B28FA001DCA8B /* contactAdvanceSearch.json */,
@@ -1963,7 +1963,7 @@
 				7141DD531C57459B00F7DF59 /* qrspec.c in Sources */,
 				7141DD531C57459B00F7DF59 /* qrspec.c in Sources */,
 				71BF07081D2F3D2800981938 /* SyncControlPanelViewController.m in Sources */,
 				71BF07081D2F3D2800981938 /* SyncControlPanelViewController.m in Sources */,
 				4289802D1E2492D2005F1BD8 /* PriceSettingViewController.m in Sources */,
 				4289802D1E2492D2005F1BD8 /* PriceSettingViewController.m in Sources */,
-				71FFBBEA1C60894900D91DC2 /* iSalesNetwork.m in Sources */,
+				71FFBBEA1C60894900D91DC2 /* RANetwork.m in Sources */,
 				428980161E24924D005F1BD8 /* SortItemCell.m in Sources */,
 				428980161E24924D005F1BD8 /* SortItemCell.m in Sources */,
 				7162A59D1C58733400AB630E /* OrderDetailViewController.m in Sources */,
 				7162A59D1C58733400AB630E /* OrderDetailViewController.m in Sources */,
 				7141DD3B1C5726B700F7DF59 /* DeviceInfo.m in Sources */,
 				7141DD3B1C5726B700F7DF59 /* DeviceInfo.m in Sources */,

+ 8 - 8
RedAnt ERP Mobile/iSales-NPD/AppDelegate.m

@@ -16,7 +16,7 @@
 //#import "AFHTTPSessionManager.h"
 //#import "AFHTTPSessionManager.h"
 #import "SelectUploadOrderViewController.h"
 #import "SelectUploadOrderViewController.h"
 #import "iSalesDB.h"
 #import "iSalesDB.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 #import "NotificationNameCenter.h"
 #import "NotificationNameCenter.h"
 #import "CustomerEditViewController.h"
 #import "CustomerEditViewController.h"
 #import "CreateOrderViewController.h"
 #import "CreateOrderViewController.h"
@@ -27,7 +27,7 @@
 #import "Analytics.h"
 #import "Analytics.h"
 #import "GoogleAnalyst.h"
 #import "GoogleAnalyst.h"
 #import "ERPUtils.h"
 #import "ERPUtils.h"
-#import "iSalesNetwork.h"
+#import "RANetwork.h"
 
 
 #define UNZIP_OPEN_FAILED 0
 #define UNZIP_OPEN_FAILED 0
 #define UNZIP_SUCCESS 1
 #define UNZIP_SUCCESS 1
@@ -558,7 +558,7 @@ void UncaughtExceptionHandler(NSException *exception) {
             
             
             NSString *result = [NSString stringWithFormat:@"version: %@ \n crash_datetime: %@ \n",version,time];
             NSString *result = [NSString stringWithFormat:@"version: %@ \n crash_datetime: %@ \n",version,time];
             
             
-            NSDictionary *ret = [iSalesNetwork err_log:errlog result:result module:@"crash" code:0];
+            NSDictionary *ret = [RANetwork err_log:errlog result:result module:@"crash" code:0];
             
             
             // 上传成功之后清除纪录
             // 上传成功之后清除纪录
             if ([[ret objectForKey:@"result"] integerValue] == 2) {
             if ([[ret objectForKey:@"result"] integerValue] == 2) {
@@ -652,7 +652,7 @@ void UncaughtExceptionHandler(NSException *exception) {
                     self.order_customer_id = order_customer_id;
                     self.order_customer_id = order_customer_id;
                     
                     
                     // 首先通过order code 打开订单
                     // 首先通过order code 打开订单
-                    NSDictionary* order_json = [iSalesNetwork open_Order:order_code];
+                    NSDictionary* order_json = [RANetwork open_Order:order_code];
                     
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                     dispatch_async(dispatch_get_main_queue(), ^{
                         //                [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                         //                [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -664,7 +664,7 @@ void UncaughtExceptionHandler(NSException *exception) {
                             [self SetSo:so];
                             [self SetSo:so];
                             
                             
                             if (userType != USER_ROLE_CUSTOMER) {
                             if (userType != USER_ROLE_CUSTOMER) {
-                                self.customerInfo = [[[iSalesNetwork request_CustomerInfo:order_customer_id] objectForKey:@"customerInfo"] mutableCopy];
+                                self.customerInfo = [[[RANetwork request_CustomerInfo:order_customer_id] objectForKey:@"customerInfo"] mutableCopy];
                                 
                                 
                                 self.contact_id=[self.customerInfo valueForKey:@"customer_cid"];
                                 self.contact_id=[self.customerInfo valueForKey:@"customer_cid"];
                             }
                             }
@@ -1460,7 +1460,7 @@ void UncaughtExceptionHandler(NSException *exception) {
         
         
         [self add_downloadlog:@"Checking offline data, this will take a few minute, please wait."];
         [self add_downloadlog:@"Checking offline data, this will take a few minute, please wait."];
         
         
-        NSMutableDictionary* json=[[iSalesNetwork  check_Offline:ver useInternalAddress:buseinternaladdress vid:pvid] mutableCopy];
+        NSMutableDictionary* json=[[RANetwork  check_Offline:ver useInternalAddress:buseinternaladdress vid:pvid] mutableCopy];
         
         
         
         
         if([json[@"result"] intValue]!=2)
         if([json[@"result"] intValue]!=2)
@@ -1498,7 +1498,7 @@ void UncaughtExceptionHandler(NSException *exception) {
             
             
             
             
             count++;
             count++;
-            download_json=[[iSalesNetwork  download_Offline:downSerial] mutableCopy];
+            download_json=[[RANetwork  download_Offline:downSerial] mutableCopy];
             
             
             
             
             
             
@@ -1941,7 +1941,7 @@ void UncaughtExceptionHandler(NSException *exception) {
                     
                     
                     
                     
                     
                     
-                    NSDictionary* editor_json = [iSalesNetwork finish_download_Offline:downSerial];
+                    NSDictionary* editor_json = [RANetwork finish_download_Offline:downSerial];
                     
                     
 
 
                 });
                 });