Procházet zdrojové kódy

增加问价more_info.html orderDetail.json orderDetail方法中增加more order info

Pen Li před 9 roky
rodič
revize
4db14285b0

binární
RedAnt ERP Mobile/RedAnt ERP Mobile.xcworkspace/xcuserdata/macmini1.xcuserdatad/UserInterfaceState.xcuserstate


+ 294 - 224
RedAnt ERP Mobile/common/Functions/offline/OLDataProvider.m

@@ -1407,242 +1407,19 @@
         
         
         sqlite3_finalize(statement);
-        
-        
-        
-        
+
     }
     
     [iSalesDB close_db:db];
     
     return [RAUtils dict2data:ret];
 }
-+(NSData*) offline_orderdetail :(NSMutableDictionary *) params
-{
-    
-    int orderId = [params[@"orderId"] intValue];
-        NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
-//    [NSData dataWithContentsOfFile:[[NSBundle mainBundle]  pathForResource:@"debug_category_filter" ofType:@"json" ]];
-    
-//    NSString* content = [NSString stringWithContentsOfFile:thepath encoding:NSUTF8StringEncoding error:nil];
-    
-    NSString* sql=[NSString stringWithFormat:@"select o._id,o.so_id,o.poNumber,o.create_time,o.status,o.TotalCuft,o.TotalWeight,o.TotalCarton,decrypt(c.company_name),o.customer_contact,decrypt(c.addr_1),c.addr_2,c.addr_3,c.addr_4,o.logist,o.shipping,o.lift_gate_value,o.general_notes,o.internal_notes,o.paymentType,o.lift_gate from (select _id,so_id,poNumber,create_time,status,TotalCuft,TotalWeight,TotalCarton,customer_cid,customer_contact,logist,shipping,lift_gate_value,general_notes,internal_notes,paymentType,lift_gate from offline_order where _id=%d) o left join offline_contact c on o.customer_cid=c.contact_id",orderId ];
-    sqlite3 *db = [iSalesDB get_db];
-    sqlite3_stmt * statement;
-    
-    
-    if (sqlite3_prepare_v2(db, [sql UTF8String], -1, &statement, nil) == SQLITE_OK)
-    {
-        
-        
-        if (sqlite3_step(statement) == SQLITE_ROW)
-        {
-            
-            
-            
-//            NSMutableDictionary* item=[[NSMutableDictionary alloc]init];
-            
-            int order_id = sqlite3_column_int(statement, 0);
-            
-            
-            char *soid = (char*)sqlite3_column_text(statement, 1);
-            if(soid==nil)
-                soid= "";
-            NSString *nssoid= [[NSString alloc]initWithUTF8String:soid];
-            
-            
-            char *poNumber = (char*)sqlite3_column_text(statement, 2);
-            if(poNumber==nil)
-                poNumber= "";
-            NSString *nspoNumber= [[NSString alloc]initWithUTF8String:poNumber];
-            
-
-            
-            char *create_time = (char*)sqlite3_column_text(statement, 3);
-            if(create_time==nil)
-                create_time= "";
-            NSString *nscreate_time= [[NSString alloc]initWithUTF8String:create_time];
 
-            int status = sqlite3_column_int(statement, 4);
-            NSString* nsstatus=@"";
-            switch (status) {
-                case 0:
-                {
-                    nsstatus=@"Temp Order";
-                     break;
-                }
-                case 1:
-                {
-                    nsstatus=@"Saved Order";
-                    break;
-                }
-                case 10:
-                {
-                    nsstatus=@"Quote Submitted";
-                    break;
-                }
-                case 11:
-                {
-                    nsstatus=@"Sales Order Submitted";
-                    break;
-                }
-                case 12:
-                {
-                    nsstatus=@"Processing";
-                    break;
-                }
-                case 13:
-                {
-                    nsstatus=@"Shipped";
-                    break;
-                }
-                case 14:
-                {
-                    nsstatus=@"Closed";
-                    break;
-                }
-                case 15:
-                {
-                    nsstatus=@"Cancelled";
-                    break;
-                }
-                    
-                    
-                default:
-                    break;
-            }
-            
-            double TotalCuft = sqlite3_column_double(statement, 5);
-            double TotalWeight = sqlite3_column_double(statement, 6);
-            double TotalCarton = sqlite3_column_double(statement, 7);
-            
-            
-            char *company_name = (char*)sqlite3_column_text(statement, 8);
-            if(company_name==nil)
-                company_name= "";
-            NSString *nscompany_name= [[NSString alloc]initWithUTF8String:company_name];
-            
-            
-            char *customer_contact = (char*)sqlite3_column_text(statement, 9);
-            if(customer_contact==nil)
-                customer_contact= "";
-            NSString *nscustomer_contact= [[NSString alloc]initWithUTF8String:customer_contact];
-            
-            
-            char *addr_1 = (char*)sqlite3_column_text(statement, 10);
-            if(addr_1==nil)
-                addr_1="";
-            NSString *nsaddr_1= [[NSString alloc]initWithUTF8String:addr_1];
-            
-            char *addr_2 = (char*)sqlite3_column_text(statement, 11);
-            if(addr_2==nil)
-                addr_2="";
-            NSString *nsaddr_2= [[NSString alloc]initWithUTF8String:addr_2];
-            
-            
-            char *addr_3 = (char*)sqlite3_column_text(statement, 12);
-            if(addr_3==nil)
-                addr_3="";
-            NSString *nsaddr_3= [[NSString alloc]initWithUTF8String:addr_3];
-            
-            
-            char *addr_4 = (char*)sqlite3_column_text(statement, 13);
-            if(addr_4==nil)
-                addr_4="";
-            NSString *nsaddr_4= [[NSString alloc]initWithUTF8String:addr_4];
-
-            NSMutableArray* arr_addr = [[NSMutableArray alloc] init];
-            [arr_addr addObject:nsaddr_1];
-            [arr_addr addObject:nsaddr_2];
-            [arr_addr addObject:nsaddr_3];
-            [arr_addr addObject:nsaddr_4];
-            NSString * customer_address = [RAUtils arr2string:arr_addr separator:@"<br>" trim:true];
-            
-
-            char *logist = (char*)sqlite3_column_text(statement, 14);
-            if(logist==nil)
-                logist= "";
-            NSString *nslogist=[[NSString alloc]initWithUTF8String:logist];
-            
-            double shipping = sqlite3_column_double(statement, 15);
-            
-            double lift_gate = sqlite3_column_double(statement, 16);
-            
-            char *general_notes = (char*)sqlite3_column_text(statement, 17);
-            if(general_notes==nil)
-                general_notes= "";
-            NSString *nsgeneral_notes=[[NSString alloc]initWithUTF8String:general_notes];
-
-            char *internal_notes = (char*)sqlite3_column_text(statement, 18);
-            if(internal_notes==nil)
-                internal_notes= "";
-            NSString *nsinternal_notes=[[NSString alloc]initWithUTF8String:internal_notes];
-
-            char *payment_type = (char*)sqlite3_column_text(statement, 19);
-            if(payment_type==nil)
-                payment_type= "";
-            NSString *nspayment_type=[[NSString alloc]initWithUTF8String:payment_type];
-            
-            int have_lift_gate = sqlite3_column_int(statement, 20);
-            
-            NSError *error = nil;
-            NSString* orderinfo = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"orderinfo" ofType:@"html"] encoding:NSUTF8StringEncoding error:&error];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"SO_PLACEHOLDER" withString:nssoid];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"PO_PLACEHOLDER" withString:nspoNumber];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"ORDERDATE_PLACEHOLDER" withString:nscreate_time];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"ORDERSTATUS_PLACEHOLDER" withString:nsstatus];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"CUFT_PLACEHOLDER" withString:[NSString stringWithFormat:@"%.2f",TotalCuft]];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"WEIGHT_PLACEHOLDER" withString:[NSString stringWithFormat:@"%.2f",TotalWeight]];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"CARTON_PLACEHOLDER" withString:[NSString stringWithFormat:@"%.2f",TotalCarton]];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"COMPANY_PLACEHOLDER" withString:nscompany_name];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"CONTACT_PLACEHOLDER" withString:nscustomer_contact];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"ADDRESS_PLACEHOLDER" withString:customer_address];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"SHIPPINGMETHOD_PLACEHOLDER" withString:nslogist];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"SHIPPING_PLACEHOLDER" withString:[NSString stringWithFormat:@"%.2f",shipping]];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"LIFTGATE_PLACEHOLDER" withString:[NSString stringWithFormat:@"%.2f",lift_gate]];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"GENERALNOTES_PLACEHOLDER" withString:nsgeneral_notes];
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"INTERNALNOTES_PLACEHOLDER" withString:nsinternal_notes];
-            
-            NSString *payment = nil;
-            if([nspayment_type isEqualToString:@"Credit Card"])
-            {
-                payment=[NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"creditcardpayment" ofType:@"html"] encoding:NSUTF8StringEncoding error:&error];
-                //payment=[payment stringByReplacingOccurrencesOfString:@"PAYMENTTYPE_PLACEHOLDER" withString:nspayment_type];
-            }
-            else
-            {
-                payment=[NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"normalpayment" ofType:@"html"] encoding:NSUTF8StringEncoding error:&error];
-                payment=[payment stringByReplacingOccurrencesOfString:@"PAYMENTTYPE_PLACEHOLDER" withString:nspayment_type];
-            }
-            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"PAYMENT_PLACEHOLDER" withString:payment];
-            ret[@"order_info"]= orderinfo;
-            ret[@"result"]= [NSNumber numberWithInt:2];
-            
-            ret[@"result"]= [NSNumber numberWithInt:2];
-        }
-        
- 
-        
-        
-        
-        sqlite3_finalize(statement);
-        
-        
-        
-        
-    }
-    
-    [iSalesDB close_db:db];
-    
-
-        return [RAUtils dict2data:ret];
-}
 +(NSData*) offline_editorder :(NSMutableDictionary *) params
 {
     NSMutableDictionary* ret = [[NSMutableDictionary alloc] init];
     
     
-
     NSString* orderCode = [params valueForKey:@"orderCode"];
     
 
@@ -1659,6 +1436,7 @@
     [iSalesDB close_db:db];
     
     return [RAUtils dict2data:ret];
+    
 }
 
 +(NSData*) offline_login :(NSMutableDictionary *) params
@@ -2948,6 +2726,16 @@
     return ret;
 }
 
++ (NSString *)textFileName:(NSString *)name {
+    NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:nil];
+    NSString *text = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
+    if (!text) {
+        text = @"";
+    }
+    
+    return text;
+}
+
 + (NSMutableDictionary *)mutableDictionary:(NSString *)key inDictionary:(NSDictionary *)dic {
     return [[dic objectForKey:key] mutableCopy];
 }
@@ -4442,6 +4230,288 @@
     return ret;
 }
 
+#pragma mark order detail
+
++(NSData*) offline_orderdetail :(NSMutableDictionary *) params
+{
+    
+    DebugLog(@"offline oderdetail params: %@",params);
+    return nil;
+    
+    
+    int orderId = [params[@"orderId"] intValue];
+    NSMutableDictionary* ret = [self dictionaryFileName:@"orderDetail.json"];
+    
+    NSString* sql=[NSString stringWithFormat:@"select o._id,o.so_id,o.poNumber,o.create_time,o.status,o.TotalCuft,o.TotalWeight,o.TotalCarton,decrypt(c.company_name),o.customer_contact,decrypt(c.addr_1),c.addr_2,c.addr_3,c.addr_4,o.logist,o.shipping,o.lift_gate_value,o.general_notes,o.internal_notes,o.paymentType,o.lift_gate,o.receive_name,o.receive_contact,o.receive_ext,o.sender_name,o.sender_contact,o.sender_ext,o.shipping_billto_name,o.shipping_billto_contact,o.shipping_billto_ext,o.billing_name,o.billing_contact,o.billing_ext,o.returnto_name,o.returnto_contact,o.returnto_ext from (select _id,so_id,poNumber,create_time,status,TotalCuft,TotalWeight,TotalCarton,customer_cid,customer_contact,logist,shipping,lift_gate_value,general_notes,internal_notes,paymentType,lift_gate,receive_name,receive_contact,receive_ext,sender_name,sender_contact,sender_ext,shipping_billto_name,shipping_billto_contact,shipping_billto_ext,billing_name,billing_contact,billing_ext,returnto_name,returnto_contact,returnto_ext from offline_order where _id=%d) o left join offline_contact c on o.customer_cid=c.contact_id",orderId ];
+    
+    sqlite3 *db = [iSalesDB get_db];
+    sqlite3_stmt * statement;
+    
+    
+    if (sqlite3_prepare_v2(db, [sql UTF8String], -1, &statement, nil) == SQLITE_OK)
+    {
+        
+        
+        if (sqlite3_step(statement) == SQLITE_ROW)
+        {
+            
+            
+            
+            //            NSMutableDictionary* item=[[NSMutableDictionary alloc]init];
+            
+            int order_id = sqlite3_column_int(statement, 0);
+            
+            
+            char *soid = (char*)sqlite3_column_text(statement, 1);
+            if(soid==nil)
+                soid= "";
+            NSString *nssoid= [[NSString alloc]initWithUTF8String:soid];
+            
+            
+            char *poNumber = (char*)sqlite3_column_text(statement, 2);
+            if(poNumber==nil)
+                poNumber= "";
+            NSString *nspoNumber= [[NSString alloc]initWithUTF8String:poNumber];
+            
+            
+            
+            char *create_time = (char*)sqlite3_column_text(statement, 3);
+            if(create_time==nil)
+                create_time= "";
+            NSString *nscreate_time= [[NSString alloc]initWithUTF8String:create_time];
+            
+            int status = sqlite3_column_int(statement, 4);
+            NSString* nsstatus=@"";
+            switch (status) {
+                case 0:
+                {
+                    nsstatus=@"Temp Order";
+                    break;
+                }
+                case 1:
+                {
+                    nsstatus=@"Saved Order";
+                    break;
+                }
+                case 10:
+                {
+                    nsstatus=@"Quote Submitted";
+                    break;
+                }
+                case 11:
+                {
+                    nsstatus=@"Sales Order Submitted";
+                    break;
+                }
+                case 12:
+                {
+                    nsstatus=@"Processing";
+                    break;
+                }
+                case 13:
+                {
+                    nsstatus=@"Shipped";
+                    break;
+                }
+                case 14:
+                {
+                    nsstatus=@"Closed";
+                    break;
+                }
+                case 15:
+                {
+                    nsstatus=@"Cancelled";
+                    break;
+                }
+                    
+                    
+                default:
+                    break;
+            }
+            
+            // status
+            ret[@"orderStatus"] = [NSNumber numberWithInteger:status];
+            ret[@"order_status"] = nsstatus;
+            
+            double TotalCuft = sqlite3_column_double(statement, 5);
+            double TotalWeight = sqlite3_column_double(statement, 6);
+            double TotalCarton = sqlite3_column_double(statement, 7);
+            
+            
+            char *company_name = (char*)sqlite3_column_text(statement, 8);
+            if(company_name==nil)
+                company_name= "";
+            NSString *nscompany_name= [[NSString alloc]initWithUTF8String:company_name];
+            // company name
+            ret[@"company_name"] = nscompany_name;
+            
+            char *customer_contact = (char*)sqlite3_column_text(statement, 9);
+            if(customer_contact==nil)
+                customer_contact= "";
+            NSString *nscustomer_contact= [[NSString alloc]initWithUTF8String:customer_contact];
+            
+            
+            char *addr_1 = (char*)sqlite3_column_text(statement, 10);
+            if(addr_1==nil)
+                addr_1="";
+            NSString *nsaddr_1= [[NSString alloc]initWithUTF8String:addr_1];
+            
+            char *addr_2 = (char*)sqlite3_column_text(statement, 11);
+            if(addr_2==nil)
+                addr_2="";
+            NSString *nsaddr_2= [[NSString alloc]initWithUTF8String:addr_2];
+            
+            
+            char *addr_3 = (char*)sqlite3_column_text(statement, 12);
+            if(addr_3==nil)
+                addr_3="";
+            NSString *nsaddr_3= [[NSString alloc]initWithUTF8String:addr_3];
+            
+            
+            char *addr_4 = (char*)sqlite3_column_text(statement, 13);
+            if(addr_4==nil)
+                addr_4="";
+            NSString *nsaddr_4= [[NSString alloc]initWithUTF8String:addr_4];
+            
+            NSMutableArray* arr_addr = [[NSMutableArray alloc] init];
+            [arr_addr addObject:nsaddr_1];
+            [arr_addr addObject:nsaddr_2];
+            [arr_addr addObject:nsaddr_3];
+            [arr_addr addObject:nsaddr_4];
+            NSString * customer_address = [RAUtils arr2string:arr_addr separator:@"<br>" trim:true];
+            
+            
+            char *logist = (char*)sqlite3_column_text(statement, 14);
+            if(logist==nil)
+                logist= "";
+            NSString *nslogist=[[NSString alloc]initWithUTF8String:logist];
+            
+            double shipping = sqlite3_column_double(statement, 15);
+            
+            double lift_gate = sqlite3_column_double(statement, 16);
+            
+            char *general_notes = (char*)sqlite3_column_text(statement, 17);
+            if(general_notes==nil)
+                general_notes= "";
+            NSString *nsgeneral_notes=[[NSString alloc]initWithUTF8String:general_notes];
+            
+            char *internal_notes = (char*)sqlite3_column_text(statement, 18);
+            if(internal_notes==nil)
+                internal_notes= "";
+            NSString *nsinternal_notes=[[NSString alloc]initWithUTF8String:internal_notes];
+            
+            char *payment_type = (char*)sqlite3_column_text(statement, 19);
+            if(payment_type==nil)
+                payment_type= "";
+            NSString *nspayment_type=[[NSString alloc]initWithUTF8String:payment_type];
+            
+            int have_lift_gate = sqlite3_column_int(statement, 20);
+            
+            // order info
+            NSError *error = nil;
+            NSString* orderinfo = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"orderinfo" ofType:@"template"] encoding:NSUTF8StringEncoding error:&error];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"SO_PLACEHOLDER" withString:nssoid];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"PO_PLACEHOLDER" withString:nspoNumber];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"ORDERDATE_PLACEHOLDER" withString:nscreate_time];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"ORDERSTATUS_PLACEHOLDER" withString:nsstatus];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"CUFT_PLACEHOLDER" withString:[NSString stringWithFormat:@"%.2f",TotalCuft]];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"WEIGHT_PLACEHOLDER" withString:[NSString stringWithFormat:@"%.2f",TotalWeight]];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"CARTON_PLACEHOLDER" withString:[NSString stringWithFormat:@"%.2f",TotalCarton]];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"COMPANY_PLACEHOLDER" withString:nscompany_name];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"CONTACT_PLACEHOLDER" withString:nscustomer_contact];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"ADDRESS_PLACEHOLDER" withString:customer_address];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"SHIPPINGMETHOD_PLACEHOLDER" withString:nslogist];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"SHIPPING_PLACEHOLDER" withString:[NSString stringWithFormat:@"%.2f",shipping]];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"LIFTGATE_PLACEHOLDER" withString:[NSString stringWithFormat:@"%.2f",lift_gate]];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"GENERALNOTES_PLACEHOLDER" withString:nsgeneral_notes];
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"INTERNALNOTES_PLACEHOLDER" withString:nsinternal_notes];
+            
+            NSString *payment = nil;
+            if([nspayment_type isEqualToString:@"Credit Card"])
+            {
+                payment=[NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"creditcardpayment" ofType:@"template"] encoding:NSUTF8StringEncoding error:&error];
+                //payment=[payment stringByReplacingOccurrencesOfString:@"PAYMENTTYPE_PLACEHOLDER" withString:nspayment_type];
+            }
+            else
+            {
+                payment=[NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"normalpayment" ofType:@"template"] encoding:NSUTF8StringEncoding error:&error];
+                payment=[payment stringByReplacingOccurrencesOfString:@"PAYMENTTYPE_PLACEHOLDER" withString:nspayment_type];
+            }
+            orderinfo=[orderinfo stringByReplacingOccurrencesOfString:@"PAYMENT_PLACEHOLDER" withString:payment];
+            ret[@"order_info"]= orderinfo;
+            ret[@"result"]= [NSNumber numberWithInt:2];
+            
+            
+            // more info
+            NSString *moreInfo = [self textFileName:@"more_info.html"];
+            
+            /*****ship to******/
+            // ShipToCompany_or_&nbsp
+            NSString *shipToCompany = [self textAtColumn:21 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"ShipToCompany_or_&nbsp" withString:shipToCompany];
+            NSString *shipToName = [self textAtColumn:22 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"ShipToName_or_&nbsp" withString:shipToName];
+            NSString *shipToAddr = [self textAtColumn:23 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"ShipToAddress_or_&nbsp" withString:shipToAddr];
+            
+            /*****ship from******/
+            // ShipFromCompany_or_&nbsp
+            NSString *shipFromCompany = [self textAtColumn:24 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"ShipFromCompany_or_&nbsp" withString:shipFromCompany];
+            NSString *shipFromName = [self textAtColumn:25 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"ShipFromName_or_&nbsp" withString:shipFromName];
+            NSString *shipFromAddr = [self textAtColumn:26 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"ShipFromAddress_or_&nbsp" withString:shipFromAddr];
+            
+            /*****freight to******/
+            // FreightBillToCompany_or_&nbsp
+            NSString *freightBillToCompany = [self textAtColumn:27 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"FreightBillToCompany_or_&nbsp" withString:freightBillToCompany];
+            NSString *freightBillToName = [self textAtColumn:28 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"FreightBillToName_or_&nbsp" withString:freightBillToName];
+            NSString *freightBillToAddr = [self textAtColumn:29 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"FreightBillToAddress_or_&nbsp" withString:freightBillToAddr];
+            
+            /*****merchandise to******/
+            // MerchandiseBillToCompany_or_&nbsp
+            NSString *merchandiseBillToCompany = [self textAtColumn:30 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"MerchandiseBillToCompany_or_&nbsp" withString:merchandiseBillToCompany];
+            NSString *merchandiseBillToName = [self textAtColumn:31 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"MerchandiseBillToName_or_&nbsp" withString:merchandiseBillToName];
+            NSString *merchandiseBillToAddr = [self textAtColumn:32 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"MerchandiseBillToAddress_or_&nbsp" withString:merchandiseBillToAddr];
+            
+            /*****return to******/
+            // ReturnToCompany_or_&nbsp
+            NSString *returnToCompany = [self textAtColumn:33 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"ReturnToCompany_or_&nbsp" withString:returnToCompany];
+            NSString *returnToName = [self textAtColumn:34 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"ReturnToName_or_&nbsp" withString:returnToName];
+            NSString *returnToAddr = [self textAtColumn:35 statement:statement];
+            moreInfo = [moreInfo stringByReplacingOccurrencesOfString:@"ReturnToAddress_or_&nbsp" withString:returnToAddr];
+            
+            ret[@"more_order_info"] = moreInfo;
+        }
+        
+        
+        
+        
+        
+        sqlite3_finalize(statement);
+        
+        
+        
+        
+    }
+    
+    [iSalesDB close_db:db];
+    
+    
+    return [RAUtils dict2data:ret];
+    
+}
+
+
 
 
 @end

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

@@ -9,6 +9,8 @@
 /* Begin PBXBuildFile section */
 		423A4ADC1D503A53005ECE4A /* createContact.json in Resources */ = {isa = PBXBuildFile; fileRef = 423A4ADB1D503A53005ECE4A /* createContact.json */; };
 		42969C021D52F31C00FF190A /* editContact.json in Resources */ = {isa = PBXBuildFile; fileRef = 42969C011D52F31C00FF190A /* editContact.json */; };
+		42A51BF41D62F60300F13667 /* more_info.html in Resources */ = {isa = PBXBuildFile; fileRef = 42A51BF31D62F60300F13667 /* more_info.html */; };
+		42A51BF61D62F9AB00F13667 /* orderDetail.json in Resources */ = {isa = PBXBuildFile; fileRef = 42A51BF51D62F9AB00F13667 /* orderDetail.json */; };
 		42C9FB151D5B28FA001DCA8B /* contactAdvanceSearch.json in Resources */ = {isa = PBXBuildFile; fileRef = 42C9FB141D5B28FA001DCA8B /* contactAdvanceSearch.json */; };
 		42DC31131D546FBE00BCD1C6 /* category.json in Resources */ = {isa = PBXBuildFile; fileRef = 42DC31121D546FBE00BCD1C6 /* category.json */; };
 		710274251CC606C4009FD219 /* UserListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 710274241CC606C4009FD219 /* UserListViewController.m */; };
@@ -196,6 +198,8 @@
 /* Begin PBXFileReference section */
 		423A4ADB1D503A53005ECE4A /* createContact.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = createContact.json; sourceTree = "<group>"; };
 		42969C011D52F31C00FF190A /* editContact.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = editContact.json; sourceTree = "<group>"; };
+		42A51BF31D62F60300F13667 /* more_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = more_info.html; sourceTree = "<group>"; };
+		42A51BF51D62F9AB00F13667 /* orderDetail.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = orderDetail.json; sourceTree = "<group>"; };
 		42C9FB141D5B28FA001DCA8B /* contactAdvanceSearch.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = contactAdvanceSearch.json; sourceTree = "<group>"; };
 		42DC31121D546FBE00BCD1C6 /* category.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = category.json; sourceTree = "<group>"; };
 		56528CA8B8A71F67C2EE5366 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = "<group>"; };
@@ -812,6 +816,8 @@
 				423A4ADB1D503A53005ECE4A /* createContact.json */,
 				42969C011D52F31C00FF190A /* editContact.json */,
 				42DC31121D546FBE00BCD1C6 /* category.json */,
+				42A51BF51D62F9AB00F13667 /* orderDetail.json */,
+				42A51BF31D62F60300F13667 /* more_info.html */,
 			);
 			name = utils;
 			sourceTree = "<group>";
@@ -1267,6 +1273,7 @@
 				7162A5A01C58733400AB630E /* status_filter_cadedate_open.json in Resources */,
 				71D30A211CFBEDC6006F9477 /* default_appearance.json in Resources */,
 				42969C021D52F31C00FF190A /* editContact.json in Resources */,
+				42A51BF61D62F9AB00F13667 /* orderDetail.json in Resources */,
 				7161FEB71D61B24900157EE1 /* orderinfo.html in Resources */,
 				42C9FB151D5B28FA001DCA8B /* contactAdvanceSearch.json in Resources */,
 				7161FEB51D61B24900157EE1 /* creditcardpayment.html in Resources */,
@@ -1285,6 +1292,7 @@
 				7162A55E1C58724700AB630E /* customer_advanced_search.json in Resources */,
 				7162A5A11C58733400AB630E /* offline_status_filter_cadedate.json in Resources */,
 				713F76BD1929F4A7006A7305 /* Main.storyboard in Resources */,
+				42A51BF41D62F60300F13667 /* more_info.html in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

+ 50 - 0
RedAnt ERP Mobile/iSales-NPD/more_info.html

@@ -0,0 +1,50 @@
+<body style='background-color:#FFFFFF;'>
+<div id='left_div' style='width:45%;float:left;margin-bottom:55px;'>
+<div><p><b style='font-size:20px;'>Ship to information</b></p>
+<div style='margin-left:15px;word-wrap:break-word;word-break:break-all;'>
+<div style='width:25%;float:left;'>Company:</div>
+<div style='width:75%;float:left;'>ShipToCompany_or_&nbsp</div>
+<div style='width:25%;float:left;'>Name:</div>
+<div style='width:75%;float:left;'>ShipToName_or_&nbsp</div>
+<div style='width:25%;float:left;'>Address:</div>
+<div style='width:75%;float:left;'>ShipToAddress_or_&nbsp</div>
+</div>
+</div>
+<div><p><b style='font-size:20px;'>Ship from information</b></p>
+<div style='margin-left:15px;word-wrap:break-word;word-break:break-all;'>
+<div style='width:25%;float:left;'>Company:</div>
+<div style='width:75%;float:left;'>ShipFromCompany_or_&nbsp</div>
+<div style='width:25%;float:left;'>Name:</div>
+<div style='width:75%;float:left;'>ShipFromName_or_&nbsp</div>
+<div style='width:25%;float:left;'>Address:</div>
+<div style='width:75%;float:left;'>ShipFromAddress_or_&nbsp</div>
+</div></div>
+<div><p><b style='font-size:20px;'>Freight bill to information</b></p>
+<div style='margin-left:15px;word-wrap:break-word;word-break:break-all;'>
+<div style='width:25%;float:left;'>Company:</div>
+<div style='width:75%;float:left;'>FreightBillToCompany_or_&nbsp</div>
+<div style='width:25%;float:left;'>Name:</div>
+<div style='width:75%;float:left;'>FreightBillToName_or_&nbsp</div>
+<div style='width:25%;float:left;'>Address:</div>
+<div style='width:75%;float:left;'>FreightBillToAddress_or_&nbsp</div>
+</div></div></div> 
+<div id='right-div' style='width:45%;float:left;margin-left:55px;margin-bottom:55px;'>
+<div><p><b style='font-size:20px;'>Merchandise bill to information</b></p>
+<div style='margin-left:15px;word-wrap:break-word;word-break:break-all;'>
+<div style='width:25%;float:left;'>Company:</div>
+<div style='width:75%;float:left;'>MerchandiseBillToCompany_or_&nbsp</div>
+<div style='width:25%;float:left;'>Name:</div>
+<div style='width:75%;float:left;'>MerchandiseBillToName_or_&nbsp</div>
+<div style='width:25%;float:left;'>Address:</div>
+<div style='width:75%;float:left;'>MerchandiseBillToAddress_or_&nbsp</div>
+</div></div>
+<div><p><b style='font-size:20px;'>Return to information</b></p>
+<div style='margin-left:15px;word-wrap:break-word;word-break:break-all;'>
+<div style='width:25%;float:left;'>Company:</div>
+<div style='width:75%;float:left;'>ReturnToCompany_or_&nbsp</div>
+<div style='width:25%;float:left;'>Name:</div>
+<div style='width:75%;float:left;'>ReturnToName_or_&nbsp</div>
+<div style='width:25%;float:left;'>Address:</div>
+<div style='width:75%;float:left;'>ReturnToAddress_or_&nbsp</div>
+</div></div></div>
+</body>

+ 68 - 0
RedAnt ERP Mobile/iSales-NPD/orderDetail.json

@@ -0,0 +1,68 @@
+{
+  "Handling Fee" : "",
+  "Liftgate Fee(No loading dock)" : "",
+  "Payments/Credits" : "",
+  "Shipping" : "",
+  "Total" : "",
+  "can_see_price" : true,
+  "company_name" : "",
+  "customerInfo" : {
+    "business_card_0" : "",
+    "business_card_1" : "",
+    "business_card_2" : "",
+    "customer_address1" : "",
+    "customer_address2" : "",
+    "customer_address3" : "",
+    "customer_address4" : "",
+    "customer_cid" : "",
+    "customer_city" : "",
+    "customer_contact" : "",
+    "customer_contact_notes" : "",
+    "customer_country" : "",
+    "customer_email" : "",
+    "customer_fax" : "",
+    "customer_first_name" : "",
+    "customer_last_name" : "",
+    "customer_name" : "",
+    "customer_phone" : "",
+    "customer_price_type" : "",
+    "customer_sales_rep" : "",
+    "customer_state" : "",
+    "customer_zipcode" : ""
+  },
+  "email_content" : "",
+  "from_online" : false,
+  "has_reItem" : false,
+  "item_0" : {
+    "Item Number" : "",
+    "QTY" : "",
+    "Subtotal" : "",
+    "The unit price" : "",
+    "img" : "",
+    "note" : "",
+    "order_item_status" : "",
+    "product_id" : ""
+  },
+  "item_1" : {
+    "Item Number" : "",
+    "QTY" : "",
+    "Subtotal" : "",
+    "The unit price" : "",
+    "img" : "",
+    "note" : "",
+    "order_item_status" : "",
+    "product_id" : ""
+  },
+  "min_ver" : "",
+  "mode" : "",
+  "model_count" : 2,
+  "more_order_info" : "",
+  "opened_customer" : "",
+  "orderStatus" : 0,
+  "order_info" : "",
+  "order_status" : "",
+  "pdfUrl" : "",
+  "result" : 2,
+  "sign_url" : "",
+  "so#" : ""
+}