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

offline_contactlist中对price 为单选情况下进行数据库查询时条件直接为= 改为like 对关键字phone没有解密做出修改

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

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


+ 47 - 26
RedAnt ERP Mobile/common/Functions/offline/OLDataProvider.m

@@ -2668,7 +2668,7 @@
     }
     NSString* customer_phone = [params valueForKey:@"customer_phone"]; // "customer_phone"
     if (customer_phone) {
-        customer_phone = [NSString stringWithFormat:@"and lower(phone) like '%%%@%%'",customer_phone.lowercaseString];
+        customer_phone = [NSString stringWithFormat:@"and lower(decrypt(phone)) like '%%%@%%'",customer_phone.lowercaseString];
     } else {
         customer_phone = @"";
     }
@@ -2769,7 +2769,29 @@
             price_name = mutable_price_name;
             
         } else {
-            price_name = [NSString stringWithFormat:@"and price_type in (SELECT name FROM price where type = %@ )",price_name];
+            price_name = [price_name stringByReplacingOccurrencesOfString:@" " withString:@""];
+            if ([price_name isEqualToString:@""]) {
+                price_name = @"";
+            } else {
+                
+                __block NSString *price;
+                
+                [iSalesDB jk_query:[NSString stringWithFormat:@"SELECT name FROM price where type = %@ ;",price_name] db:db close:NO completion:^(sqlite3_stmt *stmt, NSMutableDictionary *container, long *count) {
+                    char *p = (char *)sqlite3_column_text(stmt, 0);
+                    if (p == NULL) {
+                        p = "";
+                    }
+                    price = [NSString stringWithUTF8String:p];
+                }];
+                
+                if ([price isEqualToString:@""]) {
+                    price_name = @"";
+                } else {
+                    price_name = [NSString stringWithFormat:@"and price_type like '%%%@%%'",price];
+                }
+                
+            }
+            
         }
         
     } else {
@@ -3032,7 +3054,7 @@
 }
 
 
-#pragma mark contact search
+#pragma mark contact Advanced search
 
 +(NSData *) offline_contactAdvancedSearch:(NSMutableDictionary *) params
 {
@@ -3148,30 +3170,29 @@
     
     NSString *addr4 = [params objectForKey:@"address_4"];
     
-    addr = [RAUtils arr2string:@[addr1,addr2,addr3,addr4] separator:@" " trim:true];
-    addr = [AESCrypt fastencrypt:addr];
-    addr = [self translateSingleQuote:addr];
-    
-    if (addr1) {
-        addr1 = [AESCrypt fastencrypt:addr1];
-    } else {
-        addr1 = @"";
-    }
-    addr1 = [self translateSingleQuote:addr1];
-    
     if (!addr2) {
         addr2 = @"";
     }
-    addr2 = [self translateSingleQuote:addr2];
-    
     if (!addr3) {
         addr3 = @"";
     }
-    addr3 = [self translateSingleQuote:addr3];
-    
     if (!addr4) {
         addr4 = @"";
     }
+    if (!addr1) {
+        addr1 = @"";
+    }
+    
+    addr = [RAUtils arr2string:@[addr1,addr2,addr3,addr4] separator:@" " trim:true];
+    addr = [AESCrypt fastencrypt:addr];
+    addr = [self translateSingleQuote:addr];
+    
+    if (addr1 && ![addr1 isEqualToString:@""]) {
+        addr1 = [AESCrypt fastencrypt:addr1];
+    }
+    addr1 = [self translateSingleQuote:addr1];
+    addr2 = [self translateSingleQuote:addr2];
+    addr3 = [self translateSingleQuote:addr3];
     addr4 = [self translateSingleQuote:addr4];
     
     
@@ -3202,21 +3223,22 @@
     zipcode = [self translateSingleQuote:zipcode];
     
     NSString *fistName = [params objectForKey:@"firstname"];
-    
+    if (!fistName) {
+        fistName = @"";
+    }
+
     
     NSString *lastName = [params objectForKey:@"lastname"];
+    if (!lastName) {
+        lastName = @"";
+    }
     
     contact_name = [RAUtils arr2string:@[fistName,lastName] separator:@" " trim:true];
     contact_name = [self translateSingleQuote:contact_name];
     
-    if (!fistName) {
-        fistName = @"";
-    }
     fistName = [self translateSingleQuote:fistName];
     
-    if (!lastName) {
-        lastName = @"";
-    }
+    
     lastName = [self translateSingleQuote:lastName];
     
     NSString *phone = [params objectForKey:@"phone"];
@@ -3833,7 +3855,6 @@
     sqlite3 *db = [iSalesDB get_db];
   //  [iSalesDB AddExFunction:db];
     
-#warning count 在filter情况下不能使用get_recordcount:table:where:
     int count;
     
     NSString *sqlQuery = nil;