|
@@ -2668,7 +2668,7 @@
|
|
|
}
|
|
}
|
|
|
NSString* customer_phone = [params valueForKey:@"customer_phone"]; // "customer_phone"
|
|
NSString* customer_phone = [params valueForKey:@"customer_phone"]; // "customer_phone"
|
|
|
if (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 {
|
|
} else {
|
|
|
customer_phone = @"";
|
|
customer_phone = @"";
|
|
|
}
|
|
}
|
|
@@ -2769,7 +2769,29 @@
|
|
|
price_name = mutable_price_name;
|
|
price_name = mutable_price_name;
|
|
|
|
|
|
|
|
} else {
|
|
} 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 {
|
|
} else {
|
|
@@ -3032,7 +3054,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-#pragma mark contact search
|
|
|
|
|
|
|
+#pragma mark contact Advanced search
|
|
|
|
|
|
|
|
+(NSData *) offline_contactAdvancedSearch:(NSMutableDictionary *) params
|
|
+(NSData *) offline_contactAdvancedSearch:(NSMutableDictionary *) params
|
|
|
{
|
|
{
|
|
@@ -3148,30 +3170,29 @@
|
|
|
|
|
|
|
|
NSString *addr4 = [params objectForKey:@"address_4"];
|
|
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) {
|
|
if (!addr2) {
|
|
|
addr2 = @"";
|
|
addr2 = @"";
|
|
|
}
|
|
}
|
|
|
- addr2 = [self translateSingleQuote:addr2];
|
|
|
|
|
-
|
|
|
|
|
if (!addr3) {
|
|
if (!addr3) {
|
|
|
addr3 = @"";
|
|
addr3 = @"";
|
|
|
}
|
|
}
|
|
|
- addr3 = [self translateSingleQuote:addr3];
|
|
|
|
|
-
|
|
|
|
|
if (!addr4) {
|
|
if (!addr4) {
|
|
|
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];
|
|
addr4 = [self translateSingleQuote:addr4];
|
|
|
|
|
|
|
|
|
|
|
|
@@ -3202,21 +3223,22 @@
|
|
|
zipcode = [self translateSingleQuote:zipcode];
|
|
zipcode = [self translateSingleQuote:zipcode];
|
|
|
|
|
|
|
|
NSString *fistName = [params objectForKey:@"firstname"];
|
|
NSString *fistName = [params objectForKey:@"firstname"];
|
|
|
-
|
|
|
|
|
|
|
+ if (!fistName) {
|
|
|
|
|
+ fistName = @"";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
|
|
|
NSString *lastName = [params objectForKey:@"lastname"];
|
|
NSString *lastName = [params objectForKey:@"lastname"];
|
|
|
|
|
+ if (!lastName) {
|
|
|
|
|
+ lastName = @"";
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
contact_name = [RAUtils arr2string:@[fistName,lastName] separator:@" " trim:true];
|
|
contact_name = [RAUtils arr2string:@[fistName,lastName] separator:@" " trim:true];
|
|
|
contact_name = [self translateSingleQuote:contact_name];
|
|
contact_name = [self translateSingleQuote:contact_name];
|
|
|
|
|
|
|
|
- if (!fistName) {
|
|
|
|
|
- fistName = @"";
|
|
|
|
|
- }
|
|
|
|
|
fistName = [self translateSingleQuote:fistName];
|
|
fistName = [self translateSingleQuote:fistName];
|
|
|
|
|
|
|
|
- if (!lastName) {
|
|
|
|
|
- lastName = @"";
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
lastName = [self translateSingleQuote:lastName];
|
|
lastName = [self translateSingleQuote:lastName];
|
|
|
|
|
|
|
|
NSString *phone = [params objectForKey:@"phone"];
|
|
NSString *phone = [params objectForKey:@"phone"];
|
|
@@ -3833,7 +3855,6 @@
|
|
|
sqlite3 *db = [iSalesDB get_db];
|
|
sqlite3 *db = [iSalesDB get_db];
|
|
|
// [iSalesDB AddExFunction:db];
|
|
// [iSalesDB AddExFunction:db];
|
|
|
|
|
|
|
|
-#warning count 在filter情况下不能使用get_recordcount:table:where:
|
|
|
|
|
int count;
|
|
int count;
|
|
|
|
|
|
|
|
NSString *sqlQuery = nil;
|
|
NSString *sqlQuery = nil;
|