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

160803
change offline file upload

Ray Zhang 9 лет назад
Родитель
Сommit
f1ac8e52c1

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

@@ -29,6 +29,9 @@
 +(NSData *) offline_saveContact:(NSMutableDictionary *) params;
 +(NSDictionary*) offline_contactlist :(NSMutableDictionary *) params;
 +(NSDictionary*) offline_contactinfo :(NSMutableDictionary *) params;
++(NSData *) offline_saveBusinesscard:(NSData *) image;
+
+
 +(NSDictionary*) offline_commoneditor_partialrefresh :(NSMutableDictionary *) params;
 +(NSDictionary*) offline_wishlist :(NSMutableDictionary *) params;
 +(NSDictionary*) offline_add2wishlist :(NSMutableDictionary *) params;

+ 89 - 19
RedAnt ERP Mobile/common/Functions/offline/OLDataProvider.m

@@ -1473,7 +1473,7 @@
 {
     NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
     
-   
+    
     int limit = [[params valueForKey:@"limit"] intValue];
     int offset = [[params valueForKey:@"offset"] intValue];
     NSString* keyword = [params valueForKey:@"keyWord"];
@@ -1981,6 +1981,76 @@
     
     return ret;
 }
++(NSData *) offline_saveBusinesscard:(NSData *) image
+{
+    NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
+    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
+    NSString *cachefolder = [paths objectAtIndex:0];
+    NSString *offline_createimg = [cachefolder stringByAppendingPathComponent:@"offline_createimg"];
+    NSString *img_cache = [cachefolder stringByAppendingPathComponent:@"img_cache"];
+    
+    
+    NSFileManager* fileManager = [NSFileManager defaultManager];
+    BOOL bdir=YES;
+    if(!  [fileManager fileExistsAtPath:offline_createimg isDirectory:&bdir])
+    {
+        
+        NSError *error = nil;
+        bool bsuccess=[fileManager createDirectoryAtPath:offline_createimg withIntermediateDirectories:YES attributes:nil error:&error];
+        
+        if(!bsuccess)
+        {
+            DebugLog(@"Create offline_createimg folder failed");
+            [ret setValue:[NSNumber numberWithInt:RESULT_ERROR] forKey:@"result"];
+            return [RAUtils dict2data:ret];
+        }
+        
+        //        if(bsuccess)
+        //        {
+        //            sqlite3 *db = [self get_db];
+        //
+        //            [self execSql:[NSString stringWithFormat:@"insert into img_cache(name) values('%@')",name] db:db];
+        //            sqlite3_close(db);
+        //        }
+    }
+    
+    
+    //    NSData *imagedata=UIImagePNGRepresentation(self.imgview.image);
+    
+    //JEPG格式
+    
+    //NSData *imagedata=UIImageJEPGRepresentation(m_imgFore,1.0);
+    
+    NSString* filename =[NSString stringWithFormat:@"%@.png",[[NSUUID UUID] UUIDString]];
+    NSString *savedImagePath=[offline_createimg stringByAppendingPathComponent:filename];
+    
+    NSString *cacheImagePath=[img_cache stringByAppendingPathComponent:filename];
+    
+    bool bsuccess=[image writeToFile:savedImagePath atomically:YES];
+    if(bsuccess)
+    {
+        NSError *error = nil;
+        if(![fileManager copyItemAtPath:savedImagePath toPath:cacheImagePath error:&error])
+        {
+            [ret setValue:[NSNumber numberWithInt:RESULT_ERROR] forKey:@"result"];
+        }
+        else
+        {
+            [ret setValue:[NSNumber numberWithInt:RESULT_TRUE] forKey:@"result"];
+            
+            ret[@"img_url_aname"]=filename;
+            ret[@"img_url"]=savedImagePath;
+        }
+    }
+    else
+    {
+        [ret setValue:[NSNumber numberWithInt:RESULT_ERROR] forKey:@"result"];
+    }
+    
+    
+    return [RAUtils dict2data:ret];
+}
+
 +(NSDictionary*) offline_contactlist :(NSMutableDictionary *) params
 {
     
@@ -2588,11 +2658,11 @@
 
 #pragma mark create new contact
 + (NSDictionary *)offline_getAllCountryDefault:(NSString *)countryCode {
-//    "val_227" : {
-//        "check" : 1,
-//        "value" : "US United States",
-//        "value_id" : "228"
-//    },
+    //    "val_227" : {
+    //        "check" : 1,
+    //        "value" : "US United States",
+    //        "value_id" : "228"
+    //    },
     
     if (!countryCode) {
         countryCode = @"US";
@@ -2641,7 +2711,7 @@
     
     NSString *sqlQuery = [NSString stringWithFormat:@"select _id,name,code,country_code from offline_state where country_code = '%@';",countryCode];
     
-//    NSString *sqlQuery = [NSString stringWithFormat:@"select * from offline_state"];
+    //    NSString *sqlQuery = [NSString stringWithFormat:@"select * from offline_state"];
     DebugLog(@"query state:%@",sqlQuery);
     
     sqlite3_stmt * statement;
@@ -2709,7 +2779,7 @@
     sqlite3_close(db);
     [dic setValue:[NSNumber numberWithInt:dic.allKeys.count] forKey:@"count"];
     return dic;
-
+    
 }
 
 + (NSDictionary *)offline_getPrice {
@@ -2740,7 +2810,7 @@
         
         sqlite3_finalize(statement);
     }
-
+    
     sqlite3_close(db);
     
     [dic setValue:[NSNumber numberWithInt:dic.allKeys.count] forKey:@"count"];
@@ -2762,12 +2832,12 @@
             char *name = (char *)sqlite3_column_text(statement, 1);
             char *code = (char *)sqlite3_column_text(statement, 2);
             int salesrep_id = sqlite3_column_int(statement, 3);
-//            int _id = sqlite3_column_int(statement, 0);
-//
-//            "val_0" : {
-//                "value" : "BBSC - BARBARA BORROUGHS",
-//                "value_id" : 121
-//            },
+            //            int _id = sqlite3_column_int(statement, 0);
+            //
+            //            "val_0" : {
+            //                "value" : "BBSC - BARBARA BORROUGHS",
+            //                "value_id" : 121
+            //            },
             NSMutableDictionary *repDic = [NSMutableDictionary dictionary];
             [repDic setValue:[NSString stringWithFormat:@"%s - %s",code,name] forKey:@"value"];
             [repDic setValue:[NSNumber numberWithInt:salesrep_id] forKey:@"value_id"];
@@ -2828,7 +2898,7 @@
         sqlite3_finalize(statement);
     }
     sqlite3_close(db);
-
+    
     return ret;
 }
 
@@ -2857,7 +2927,7 @@
         sqlite3_finalize(statement);
     }
     sqlite3_close(db);
-
+    
     
     return dic;
 }
@@ -2926,7 +2996,7 @@
     
     // state
     NSDictionary *allState = [self offline_getStateByCountryCode:countryCode checkedState:stateCode];
-//     NSDictionary *allState = [self offline_getStateByCountryCodeId:countryCode_id checkedState:stateCode];
+    //     NSDictionary *allState = [self offline_getStateByCountryCodeId:countryCode_id checkedState:stateCode];
     [self setValue:allState forItemKey:@"item_11" valueKey:@"cadedate" inDictionary:section_0];
     
     // city
@@ -2940,7 +3010,7 @@
     // price type
     NSDictionary *priceDic = [self offline_getPrice];
     [self setValue:priceDic forItemKey:@"item_2" valueKey:@"cadedate" inDictionary:section_0];
-
+    
     // Sales Rep
     NSDictionary *repDic = [self offline_getSalesRep];
     [self setValue:repDic forItemKey:@"item_17" valueKey:@"cadedate" inDictionary:section_0];

+ 28 - 0
RedAnt ERP Mobile/common/customUI/ImageUploadViewController.m

@@ -14,6 +14,7 @@
 #import "config.h"
 #import "RAUtils.h"
 #import "AppDelegate.h"
+#import "OLDataProvider.h"
 
 //#import "UIAlertView+AFNetworking.h"
 
@@ -215,6 +216,33 @@
     if(appDelegate.offline_mode)
     {
         
+        NSData *data = [OLDataProvider offline_saveBusinesscard:UIImagePNGRepresentation(self.imgview.image)];;
+        
+        // 再将NSData转为字符串
+        NSString *jsonStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
+        
+        //            NSMutableString *str = [[NSMutableString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
+        
+        NSLog(@"data string: %@",jsonStr);
+        NSError *error=nil;
+        NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
+       
+        
+        
+        if([[json valueForKey:@"result"] intValue]==2)
+        {
+            NSString* img_url_down = json[@"img_url_aname"];
+            NSString* img_url_up = json[@"img_url"];
+            
+            if(self.returnValue)
+                self.returnValue(img_url_down,img_url_up,self.imgview.image);
+            
+            [self.navigationController popViewControllerAnimated:false];
+        }
+        else
+        {
+            [RAUtils message_alert:[json valueForKey:@"err_msg"] title:@"Upload Image" controller:self] ;
+        }
     }
     else
     {