Преглед на файлове

contrast mobile 1.99 230110

cancel 230116 modifycation
Fix crash when scanner return empty value
Fix cart become blank issue.
Ray Zhang преди 3 години
родител
ревизия
4c5c3deb6a

+ 39 - 4
RedAnt ERP Mobile/common/AppDelegateBase.m

@@ -4017,8 +4017,8 @@ void UncaughtExceptionHandler(NSException *exception) {
 //    NSLog(@"didDiscoverPeripheral");
     
     NSArray* pservice = advertisementData[@"kCBAdvDataServiceUUIDs"];
-//    if(pservice.count<=0)
-//        return;
+    if(pservice.count<=0)
+        return;
     if(peripheral.name.length<=0)
         return;
 //    _peripheral = peripheral;
@@ -4163,9 +4163,44 @@ void UncaughtExceptionHandler(NSException *exception) {
     
     NSString *datastring = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
     
-    datastring = [datastring stringByReplacingOccurrencesOfString:@"\r" withString:@""];
+//    NSString *datastring1 = [[NSString alloc] initWithData:data encoding:NSUnicodeStringEncoding];
+//    NSString *datastring2 = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
+//    NSString *datastring3 = [[NSString alloc] initWithData:data encoding:NSUTF32StringEncoding];
+    
+//
+//     = 1,        /* 0..127 only */
+//    NSNEXTSTEPStringEncoding = 2,
+//    NSJapaneseEUCStringEncoding = 3,
+//
+//    NSISOLatin1StringEncoding = 5,
+//    NSSymbolStringEncoding = 6,
+//    NSNonLossyASCIIStringEncoding = 7,
+//    NSShiftJISStringEncoding = 8,          /* kCFStringEncodingDOSJapanese */
+//    NSISOLatin2StringEncoding = 9,
+//    NSUnicodeStringEncoding = 10,
+//    NSWindowsCP1251StringEncoding = 11,    /* Cyrillic; same as AdobeStandardCyrillic */
+//    NSWindowsCP1252StringEncoding = 12,    /* WinLatin1 */
+//    NSWindowsCP1253StringEncoding = 13,    /* Greek */
+//    NSWindowsCP1254StringEncoding = 14,    /* Turkish */
+//    NSWindowsCP1250StringEncoding = 15,    /* WinLatin2 */
+//    NSISO2022JPStringEncoding = 21,        /* ISO 2022 Japanese encoding for e-mail */
+//    NSMacOSRomanStringEncoding = 30,
+//
+//        /* An alias for NSUnicodeStringEncoding */
+//
+//    NSUTF16BigEndianStringEncoding = 0x90000100,          /* NSUTF16StringEncoding encoding with explicit endianness specified */
+//    NSUTF16LittleEndianStringEncoding = 0x94000100,       /* NSUTF16StringEncoding encoding with explicit endianness specified */
+//
+//    NSUTF32StringEncoding = 0x8c000100,
+//    NSUTF32BigEndianStringEncoding = 0x98000100,          /* NSUTF32StringEncoding encoding with explicit endianness specified */
+//    NSUTF32LittleEndianStringEncoding = 0x9c000100
+//
     
-    NSLog(datastring);
+    datastring = [datastring stringByReplacingOccurrencesOfString:@"\r" withString:@""];
+    if(datastring.length==0)
+        NSLog(@"Scan Data is empty");
+    else
+        NSLog(datastring);
     
     
     if((_eventsFeedback!=nil)&&([_eventsFeedback respondsToSelector:@selector(onDecodedData:)])){

+ 5 - 0
RedAnt ERP Mobile/common/Functions/cart/CartViewController.h

@@ -75,5 +75,10 @@
 @property (strong, nonatomic) IBOutlet UILabel *label_items;
 @property (strong, nonatomic) IBOutlet UILabel *label_notes;
 
+#if defined(USE_BLE_SCANNER) || defined(USE_MFI_SCANNER)
+@property bool batch_scan;
+@property bool stop_response;
+#endif
+
 
 @end

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

@@ -833,8 +833,13 @@
 -(void) operation_reload_data
 {
     if (self.dataOperationQueue.operationCount > 1) {
+        
+        NSLog(@"operationCount >1 cancel");
         return;
     }
+    
+    NSLog(@"operating...");
+    
     __block AppDelegate *appDelegate = nil;
     
     dispatch_sync(dispatch_get_main_queue(), ^{
@@ -1205,6 +1210,12 @@
 {
     [super viewDidLoad];
     
+    
+#if defined(USE_BLE_SCANNER) || defined(USE_MFI_SCANNER)
+    self.batch_scan=false;
+    self.stop_response=false;
+#endif
+    
 #ifdef BUILD_CONTRAST
     self.btnOrderDiscount.hidden=false;
 #endif
@@ -5568,6 +5579,17 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
 #pragma mark - Support scanner
 -(void) onDecodedData:(NSString*) value
 {
+    
+    
+    
+    
+#if defined(USE_BLE_SCANNER) || defined(USE_MFI_SCANNER)
+    if(self.stop_response)
+        return;
+    
+#endif
+    
+    
     int cqty=0;
     
     
@@ -5641,6 +5663,13 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
 #ifdef QUERY_BY_UPC
     
     {
+        
+#if defined(USE_BLE_SCANNER) || defined(USE_MFI_SCANNER)
+        self.stop_response=true;
+        
+    
+#endif
+        
         [RANetwork request_addto_cart_byupc:modelname withScreen:ScreenCodeCamScan completionHandler:^(NSMutableDictionary *result) {
             NSDictionary* return_json = result;
             
@@ -5663,12 +5692,29 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
                 [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
     #endif
                 
+#if defined(USE_BLE_SCANNER) || defined(USE_MFI_SCANNER)
+
+        self.stop_response=false;
+        
+    
+#endif
                 
             }
             else
             {
                 
-                [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Add To Cart" controller:self] ;
+                
+                
+                [RAUtils message_alert:return_json[@"err_msg"] title:@"Add To Cart" controller:self action_handler:^(UIAlertAction * _Nonnull action) {
+#if defined(USE_BLE_SCANNER) || defined(USE_MFI_SCANNER)
+        self.stop_response=false;
+        
+    
+#endif
+                } completion:^{
+
+                }];
+//                [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Add To Cart" controller:self] ;
             }