// // CreateOrderViewController.m // RedAnt ERP Mobile // // Created by Ray on 8/24/15. // Copyright (c) 2015 United Software Applications, Inc. All rights reserved. // #import "CreateOrderViewController.h" #import "RANetwork.h" #import "MainViewController.h" #import "RASingleton.h" #import "config.h" #import "CustomIOSAlertView.h" #import "AddressEditorViewController.h" #import "CreditCardEditorViewController.h" #import "JKTimerManager.h" #import "ZipArchive.h" #define SUBMIT_CONFIRM 123 #define KEEP_TAIL 456 #define CLOSE_ACTION 567 @interface CreateOrderViewController () // static const char associatedkey; @property (nonatomic,assign) BOOL isResume;///<恢复 @property (nonatomic,assign) NSInteger userType;///<恢复使用 @end @implementation CreateOrderViewController - (void)alertMessage:(NSString *)msg { if (notifyMe_switch) { if ([self.class_name isEqualToString:@"CreateOrderViewController"]) { NSString *err_msg = msg; UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"Attention!!" message:err_msg preferredStyle:UIAlertControllerStyleAlert]; __weak typeof(self) weakself = self; UIAlertAction *action = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [weakself.navigationController popViewControllerAnimated:YES]; }]; [alertVC addAction:action]; [self presentViewController:alertVC animated:YES completion:nil]; } else { [RAUtils message_alert:msg title:nil controller:self] ; } } else { [RAUtils message_alert:msg title:nil controller:self] ; } } -(void) commonAction:(NSString *)value index:(NSIndexPath*) indexPath data:(NSMutableDictionary*) item_json { AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; if([value isEqualToString:@"new_addr"]) { AddressEditorViewController * addressVC = [[AddressEditorViewController alloc] initWithNibName:@"CommonEditor.iPad" bundle:nil]; addressVC.url_type = URL_REMOTE; addressVC.request_url=URL_ADDRESS_EDOTOR; NSMutableDictionary * params= [[NSMutableDictionary alloc] init]; // NSString * string = [checked componentsJoinedByString:@","]; // [params setValue:string forKey:@"cart2Checkbox"]; addressVC.params = params; addressVC.delegate = self; addressVC.from = indexPath; // orderinfoVC.params = params; [self.navigationController pushViewController:addressVC animated:true]; }else if([value isEqualToString:@"credit_card"]) { CreditCardEditorViewController * cardVC = [[CreditCardEditorViewController alloc] initWithNibName:@"CommonEditor.iPad" bundle:nil]; NSDictionary *data = [item_json objectForKey:@"data"]; if(data!=nil) { cardVC.content_data_download = [data mutableCopy]; cardVC.url_type = URL_NONE; cardVC.request_url=nil; } else { cardVC.url_type = URL_REMOTE; cardVC.request_url=URL_CREDITCARD_EDOTOR; } NSMutableDictionary * params= [[NSMutableDictionary alloc] init]; params[@"orderCode"]=appDelegate.order_code; cardVC.params = params; cardVC.delegate = self; cardVC.from = indexPath; // orderinfoVC.params = params; [self.navigationController pushViewController:cardVC animated:true]; } else if([value isEqualToString:@"Sales_Order_Freight_Bill_To"]) { ContactListViewController* cvc = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ]; cvc.showNavibar = true; cvc.contact_type = value; __weak typeof(self) weakself = self; cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){ [weakself handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION]; // // if(self.returnValue) // self.returnValue(value); }; [self.navigationController pushViewController:cvc animated:true]; } else if([value isEqualToString:@"Sales_Order_Ship_From"]) { ContactListViewController* cvc = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ]; cvc.showNavibar = true; cvc.contact_type = value; __weak typeof(self) weakself = self; cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){ [weakself handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION]; // // if(self.returnValue) // self.returnValue(value); }; [self.navigationController pushViewController:cvc animated:true]; } else if([value isEqualToString:@"Sales_Order_Customer"]) { ContactListViewController* cvc = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ]; cvc.contact_type = value; cvc.showNavibar = true; __weak typeof(self) weakself = self; cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){ [weakself handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION]; // // if(self.returnValue) // self.returnValue(value); }; [self.navigationController pushViewController:cvc animated:true]; } else if([value isEqualToString:@"Sales_Order_Merchandise_Bill_To"]) { ContactListViewController* cvc = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ]; cvc.showNavibar = true; cvc.contact_type = value; __weak typeof(self) weakself = self; cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){ [weakself handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION]; // // if(self.returnValue) // self.returnValue(value); }; [self.navigationController pushViewController:cvc animated:true]; } else if([value isEqualToString:@"Contact_Return_To"]) { ContactListViewController* cvc = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ]; cvc.showNavibar = true; cvc.contact_type = value; __weak typeof(self) weakself = self; cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){ [weakself handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION]; // // if(self.returnValue) // self.returnValue(value); }; [self.navigationController pushViewController:cvc animated:true]; } else if([value isEqualToString:@"Sales_Order_Ship_To"]) { ContactListViewController* cvc = [[UIStoryboard storyboardWithName:@"ERP_Mobile_Contact" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListViewController" ]; cvc.showNavibar = true; cvc.contact_type = value; __weak typeof(self) weakself = self; cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){ [weakself handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION]; // // if(self.returnValue) // self.returnValue(value); }; [self.navigationController pushViewController:cvc animated:true]; } } - (void)dealloc { AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; [appDelegate.urgencyDic removeObjectForKey:[NSString stringWithFormat:@"level_%d",self.level]]; [appDelegate.urgencyDic setValue:[NSNumber numberWithInteger:self.level] forKey:@"count"]; if (self.isResume && self.userType == USER_ROLE_CUSTOMER) { [self releaseOrderAfterSave]; } } -(void) viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self start_urgency_timer]; self.isResume = [[[NSUserDefaults standardUserDefaults] objectForKey:@"urgency_resume"] boolValue]; self.userType = [[[NSUserDefaults standardUserDefaults] objectForKey:@"urgency_userType"] integerValue]; BOOL canSubmit = [[[NSUserDefaults standardUserDefaults] objectForKey:@"urgency_submitOrder"] boolValue]; // 检查权限 NSMutableArray * items = [[NSMutableArray alloc]init]; UIBarButtonItem *savebtn = nil; savebtn = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"save"] imageWithRenderingMode:UIImageRenderingModeAutomatic] style:UIBarButtonItemStylePlain target:self action:@selector(onSaveClick:)]; UIImage *submit_img = [[UIImage imageNamed:@"commit"] imageWithRenderingMode:UIImageRenderingModeAutomatic]; #if defined(BUILD_NPD) || defined(BUILD_USAI) || defined(BUILD_UWAVER)|| defined (BUILD_CONTRAST) submit_img = [[UIImage imageNamed:@"submit_red"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; #endif self.btnSubmitOrder = nil; self.btnSubmitOrder =[[UIBarButtonItem alloc] initWithImage:submit_img style:UIBarButtonItemStylePlain target:self action:@selector(onCommitOrderClick:)]; UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; fixedItem.width = 20.0f; AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; // if(appDelegate.user_type ==USER_ROLE_EMPLOYEE) { [items addObject:savebtn]; [items addObject:fixedItem]; } if (!self.isResume) { // 正常情况 if (appDelegate.user_type == USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeStore) { // customer的订单必须是Sales Order并且有提交权限才能提交 if ([RASingleton sharedInstance].currentOrderIsMerged && [RASingleton sharedInstance].permissions_submit_order) { [items addObject:self.btnSubmitOrder]; } } else { [items addObject:self.btnSubmitOrder]; } } else { // 恢复 if (self.userType == USER_ROLE_CUSTOMER && appDelegate.customer_type == CustomerTypeStore) { // customer的订单必须是Sales Order并且有提交权限才能提交 if (canSubmit) { [items addObject:self.btnSubmitOrder]; } } else { [items addObject:self.btnSubmitOrder]; } [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"urgency_resume"]; [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"urgency_userType"]; [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"urgency_submitOrder"]; } // [items addObject:item2]; self.navigationItem.rightBarButtonItems=items; if(appDelegate.can_submit_order) { [self.btnSubmitOrder setImage:submit_img]; self.btnSubmitOrder.enabled = true; } else { [self.btnSubmitOrder setImage:nil]; self.btnSubmitOrder.enabled = false; } self.navigationController.navigationBarHidden=false; } -(void) download_success { // 用于处理不同child,在成功去的数据后,需要附加的操作。 self.have_tail=[[self.content_data_download valueForKey:@"has_reItem"] boolValue]; NSString* order_customerid=[self getValue:@"customer_cid"]; AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; appDelegate.order_customer_id = order_customerid; } - (void)viewDidLoad { [super viewDidLoad]; self.editable = YES; UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"close"] imageWithRenderingMode:UIImageRenderingModeAutomatic] style:UIBarButtonItemStylePlain target:self action:@selector(onCloseClick:)]; //[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Close", nil) style:UIBarButtonItemStylePlain target:self action:@selector(onCloseClick:)]; // closeButton.title = @"Close"; self.navigationItem.leftBarButtonItem = closeButton; // self.navigationItem.backBarButtonItem = backButton; // Do any additional setup after loading the view. } - (void)onCommitOrderClick:(id)sender { // get customer info AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; // if (appDelegate.user_type == USER_ROLE_CUSTOMER) { // // // 检查价格类型 // // 提货价才能提交订单 // /** 价格类型 // * 0 提货价 // * 1 统一价 // * 2 计算价 // */ // NSInteger priceType = [Singleton sharedInstance].npd_shop_price_type; // if (priceType != 0) { // // NSString* pricename = nil; // switch (priceType) { // case 1: // pricename=flat_price; // break; // case 2: // pricename=given_price; // break; // default: // break; // } // // UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"Warning" message:[NSString stringWithFormat:@"Current price is %@, please change to %@ and try again.",pricename,[Singleton sharedInstance].deliveryString] preferredStyle:UIAlertControllerStyleAlert]; // // UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { // // [alertVC dismissViewControllerAnimated:YES completion:nil]; // // }]; // // // [alertVC addAction:cancelAction]; // // [self presentViewController:alertVC animated:YES completion:nil]; // // return; // } // } NSString* msg; #ifdef OFFLINE_MODE if(appDelegate.offline_mode) { msg=@"Are you sure to mark offline order as ready for submit?"; } else #endif { msg=@"Submit order now?"; } // UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"Order Submission" message:msg preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *yesAction = [UIAlertAction actionWithTitle:@"YES" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { { // add params check here. [self.lastedit endEditing:true]; [self.lasttextview endEditing:true]; NSMutableDictionary* upparams = [self check_cancommit:true]; if(self.cancommit==false) return; // 2018-1-2 Modify if(appDelegate.user_type == USER_ROLE_CUSTOMER) { [self customer_commit_order:upparams]; } else // USER_ROLE_EMPLOYEE { if([upparams[@"shipping"] isEqualToString:@"Shipping To Be Quoted"]||[upparams[@"shipping"] isEqualToString:@"To Be Quoted"]) { upparams[@"shipping"] = nil; } if(upparams[@"shipping"]==nil || [upparams[@"shipping"] doubleValue]!=0) [self empolyee_commit_order:upparams]; else { UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Shipping is $0.00, continue submit?" message:nil preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) { //yes [self empolyee_commit_order:upparams]; }]; UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"No" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) { //DebugLog(@"Cancel"); }]; [alertControl addAction:actionOne]; [alertControl addAction:alertthree]; [self presentViewController:alertControl animated:YES completion:nil]; } } } }]; UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"NO" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { }]; [alertVC addAction:yesAction]; [alertVC addAction:cancelAction]; [self presentViewController:alertVC animated:yesAction completion:nil]; } - (UIView *)createDemoView:(NSString*) msg { UIView *demoView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 290, 200)]; // UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 270, 180)]; // [imageView setImage:[UIImage imageNamed:@"demo"]]; UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 270, 10)]; titleLabel.font = [UIFont boldSystemFontOfSize:20]; titleLabel.text=@"Order Submission"; titleLabel.numberOfLines = 0; titleLabel.lineBreakMode =NSLineBreakByWordWrapping; // titleLabel.textAlignment = NSTextAlignmentRight; titleLabel.textAlignment = NSTextAlignmentCenter; CGSize constraintkey = CGSizeMake(270, 20000.0f);//key label width is 40% cell width; // CGSize sizetitle = [titleLabel.text=@"Order Submission" sizeWithFont:[UIFont systemFontOfSize:20.0] constrainedToSize:constraintkey lineBreakMode:NSLineBreakByWordWrapping]; CGSize sizetitle = [RAUtils sizeWithFont:titleLabel.text=@"Order Submission" font:[UIFont systemFontOfSize:20.0] constrainedToSize:constraintkey lineBreakMode:NSLineBreakByWordWrapping]; //[titleLabel sizeToFit]; // titleLabel.center.x = demoView.center.x; titleLabel.frame = CGRectMake(10, 10, 270, sizetitle.height); [demoView addSubview:titleLabel]; UILabel *lineLabel = [[UILabel alloc] initWithFrame:CGRectMake(15, titleLabel.frame.origin.y+ titleLabel.frame.size.height+20, 260, 10)]; lineLabel.font = [UIFont systemFontOfSize:17]; lineLabel.text=msg; lineLabel.numberOfLines = 0; lineLabel.lineBreakMode =NSLineBreakByWordWrapping; // CGSize sizemsg = [msg sizeWithFont:[UIFont systemFontOfSize:17.0] constrainedToSize:constraintkey lineBreakMode:NSLineBreakByWordWrapping]; CGSize sizemsg = [RAUtils sizeWithFont:msg font:[UIFont systemFontOfSize:17.0] constrainedToSize:constraintkey lineBreakMode:NSLineBreakByWordWrapping]; lineLabel.frame = CGRectMake(15, titleLabel.frame.origin.y+ titleLabel.frame.size.height+20, 260, sizemsg.height); //[lineLabel sizeToFit]; [demoView addSubview:lineLabel]; demoView.frame = CGRectMake(0, 0, 290, lineLabel.frame.origin.y+lineLabel.frame.size.height+25); return demoView; } - (void)onCloseClick:(UIButton *)sender { AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; if (self.resumeOrder) { [appDelegate.main_vc.navigationController popViewControllerAnimated:YES]; return; } // // NSRange range = [tempStr rangeOfString:@")\">"];//判断字符串是否包含 // // //if (range.location ==NSNotFound)//不包含 // if (range.length >0)//包含 // { // // // // } // else//不包含 // { // // } // UIAlertView * alert = nil; UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Close" message:@"Choose your action" preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *action_0 = [UIAlertAction actionWithTitle:@"Switch to cart" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { [((MainViewController*)appDelegate.main_vc) switchToCart]; [self.navigationController popViewControllerAnimated:true]; }]; UIAlertAction *action_1 = [UIAlertAction actionWithTitle:@"Switch to order history" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { [self.navigationController popViewControllerAnimated:false]; AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; [((MainViewController*)appDelegate.main_vc) switchToOrder]; }]; NSString * a2Title=nil; if(appDelegate.order_status==0) a2Title=@"Close and cancel order"; else a2Title=@"Close and release order"; UIAlertAction *action_2 = [UIAlertAction actionWithTitle:a2Title style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; __block UIAlertController * waitalert = [RAUtils waiting_alert:self title:@"Release Order" completion:^{ #ifdef SCANNER_ORDER if(RASingleton.sharedInstance.enable_OfflineOrder) { [waitalert dismissViewControllerAnimated:YES completion:^{ [OLDataProvider deleteScanOrder:appDelegate.order_code]; [appDelegate closeOrder]; // [self prepareReturn:nil]; [self.navigationController popViewControllerAnimated:true]; [((MainViewController*)appDelegate.main_vc) switchToOrder]; }]; return; } #endif [RANetwork request_release_order:appDelegate.order_code withScreen:nil completionHandler:^(NSMutableDictionary *result) { NSDictionary* order_json = result; [waitalert dismissViewControllerAnimated:YES completion:^{ if([[order_json valueForKey:@"result"] intValue]==2) { AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; // appDelegate.order_code = nil; [appDelegate closeOrder]; #ifdef RA_NOTIFICATION [ActiveViewController Notify:@"CartViewController,OrderListViewController" Message:RA_NOTIFICATION_RELOAD_DATA]; #else [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false]; [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false]; #endif [((MainViewController*)appDelegate.main_vc) switchToHome]; if([appDelegate.mode isEqualToString:@"TM"]&& appDelegate.submit_order_logout) { [((MainViewController*)appDelegate.main_vc) Loginout:false]; } [self prepareReturn:nil]; [self.navigationController popViewControllerAnimated:true]; // [self.navigationController dismissViewControllerAnimated:true completion:^{ // ; // }]; } else { [RAUtils message_alert:[order_json valueForKey:@"err_msg"] title:@"Open Order"controller:self] ; } }]; }]; }]; // dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // // NSDictionary* order_json = [RANetwork release_Order:appDelegate.order_code withScreen:nil]; // // dispatch_async(dispatch_get_main_queue(), ^{ // [waitalert dismissViewControllerAnimated:YES completion:nil]; // if([[order_json valueForKey:@"result"] intValue]==2) // { // AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; // // appDelegate.order_code = nil; // // [appDelegate closeOrder]; // // //#ifdef RA_NOTIFICATION // [ActiveViewController Notify:@"CartViewController,OrderListViewController" Message:RA_NOTIFICATION_RELOAD_DATA]; //#else // [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false]; // [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false]; //#endif // // [((MainViewController*)appDelegate.main_vc) switchToHome]; // // if([appDelegate.mode isEqualToString:@"TM"]&& appDelegate.submit_order_logout) // { // [((MainViewController*)appDelegate.main_vc) Loginout:false]; // } // // [self prepareReturn:nil]; // // // [self.navigationController popViewControllerAnimated:true]; // // [self.navigationController dismissViewControllerAnimated:true completion:^{ // // ; // // }]; // // } // else // { // [RAUtils message_alert:[order_json valueForKey:@"err_msg"] title:@"Open Order"controller:self] ; // } // // // // }); // }); }]; UIAlertAction *action_3 = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { }]; [alertController addAction:action_0]; [alertController addAction:action_1]; [alertController addAction:action_2]; [alertController addAction:action_3]; [self presentViewController:alertController animated:YES completion:nil]; // alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Choose your action", nil) message:NSLocalizedString(@"", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Switch to cart", nil),@"Switch to order history",NSLocalizedString(@"Close and cancel order", nil), nil]; // else // { // // UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Close" message:@"Choose your action" preferredStyle:UIAlertControllerStyleAlert]; // // // UIAlertAction *action_0 = [UIAlertAction actionWithTitle:@"Switch to cart" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { // // // // }]; // // UIAlertAction *action_1 = [UIAlertAction actionWithTitle:@"Switch to order history" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { // // // // }]; // UIAlertAction *action_2 = [UIAlertAction actionWithTitle:@"Close and release order" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { // // // // }]; // UIAlertAction *action_3 = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { // // // // }]; // [alertController addAction:action_0]; // [alertController addAction:action_1]; // [alertController addAction:action_2]; // [alertController addAction:action_3]; // // // [self presentViewController:alertController animated:YES completion:nil]; // // //// alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Choose your action", nil) message:NSLocalizedString(@"", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Switch to cart", nil),@"Switch to order history",NSLocalizedString(@"Close and release order", nil), nil]; // // } // alert.tag = CLOSE_ACTION; // // alert. // [alert show]; // if ([[upparams valueForKey:@"close_on_save"] boolValue]) { // appDelegate.order_code = nil; // // } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)onSaveClick:(id)sender { // id foo = nil; // [[NSMutableArray array] addObject:foo]; // add params check here. [self.lastedit endEditing:true]; [self.lasttextview endEditing:true]; NSMutableDictionary* upparams = [self check_cancommit:false]; // if(self.cancommit==false) // return; if([upparams[@"shipping"] isEqualToString:@"Shipping To Be Quoted"]||[upparams[@"shipping"] isEqualToString:@"To Be Quoted"]) upparams[@"shipping"] = nil; if(RASingleton.sharedInstance.enable_OfflineOrder) { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documents = [paths objectAtIndex:0]; AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; NSString *orderdir = [documents stringByAppendingPathComponent:appDelegate.order_code]; NSString *orderPath = [orderdir stringByAppendingPathComponent:@"order.json"]; [RAUtils dicttofile:orderPath dict:self.content_data_download]; NSString *contactpath = [orderdir stringByAppendingPathComponent:@"contact.json"]; [RAUtils dicttofile:contactpath dict:appDelegate.customerInfo]; NSString *cartpath = [orderdir stringByAppendingPathComponent:@"cart.json"]; [RAUtils dicttofile:cartpath dict:RASingleton.sharedInstance.scan_cart]; NSMutableDictionary* orderlist = nil; NSString *orderlistPath = [documents stringByAppendingPathComponent:@"orderlist.json"]; if (![[NSFileManager defaultManager] fileExistsAtPath:orderlistPath]) { orderlist = [NSMutableDictionary new]; // [orderlist addObject:appDelegate.order_code]; // [RAUtils dicttofile:orderlistPath dict:orderlist]; } else { orderlist=[[RAUtils dictfromfile:orderlistPath] mutableCopy]; // [orderlist insertObject:appDelegate.order_code atIndex:0]; // [RAUtils dicttofile:orderlistPath dict:orderlist]; } NSMutableDictionary* orderitem = [NSMutableDictionary new]; orderitem[@"create_by"] = appDelegate.user; orderitem[@"price"] = upparams[@"total_price"]; orderitem[@"customer_name"] = upparams[@"customer_contact"]; orderitem[@"purchase_time"] = [RAUtils current_date_time]; orderitem[@"order_status"] = @"Saved Order"; orderitem[@"order_code"] = appDelegate.order_code; orderitem[@"model_count"] =[ NSString stringWithFormat:@"%@",RASingleton.sharedInstance.scan_cart[@"section_0"][@"count"] ]; int count = [orderlist[@"count"] intValue]; NSMutableDictionary* newlist = [NSMutableDictionary new]; newlist[@"item_0"]=orderitem; int newcount = 1; for(int i=0;i=0) { NSUInteger newIndex[] = {indexPath.section, total_row_idx}; NSIndexPath *newPath = [[NSIndexPath alloc] initWithIndexes:newIndex length:2]; // DebugLog(@"before refresh %@",NSStringFromCGSize(self.editorTable.contentSize)); [self.editorTable reloadRowsAtIndexPaths:@[newPath]withRowAnimation:UITableViewRowAnimationMiddle]; // DebugLog(@"after refresh %@",NSStringFromCGSize(self.editorTable.contentSize)); // CGSize tablecontent =self.editorTable.contentSize; // tablecontent.height=tablecontent.height+self.keyboard_h; // self.editorTable.contentSize=tablecontent; // // // DebugLog(@"resize to %@",NSStringFromCGSize(self.editorTable.contentSize)); } // self.content_data = [editor_json mutableCopy]; // self.content_data = [self translate_json:editor_json]; // NSMutableDictionary* content_data1 = [self translate_json:self.content_data]; // [self.editorTable reloadData]; } // // [item_json setValue:@"true" forKey:@"dirty"]; // [item_json setValue:textField.text forKey:@"value"]; } -(float) getprice:(NSString*) name section :(long) index { NSMutableDictionary* section_json=nil; section_json = [[self.content_data_download objectForKey:[NSString stringWithFormat:@"section_%ld",index ]] mutableCopy]; int count=0; count=[[section_json valueForKey:@"count"] intValue]; for(int i=0;i0) // { // // // [self startAirPrintWithData:content]; // // // } // else // { // [RAUtils message_alert:nil title:@"Open PDF Failed" controller:self]; // // self.content = [self.url dataUsingEncoding:NSUTF8StringEncoding]; // } // // ; // // DebugLog(@"%@",[[NSString alloc] initWithData:self.content encoding:NSASCIIStringEncoding]); // // // // // // [self.webView loadData:self.content MIMEType:urlResponse.MIMEType textEncodingName:nil baseURL:nil]; // // // // // }); // }); //} // //- (void)startAirPrintWithData:(id )data //{ // // // // // UIPrintInteractionController* airPrinterController=[UIPrintInteractionController sharedPrintController]; // UIPrintInfo *printInfo = [UIPrintInfo printInfo]; // printInfo.outputType = UIPrintInfoOutputGeneral; // printInfo.orientation = UIPrintInfoOrientationPortrait; // printInfo.jobName = @"CoolVisitAirPrint"; // airPrinterController.printInfo = printInfo; // airPrinterController.printingItem = data; // airPrinterController.delegate = self; // // // airPrinterController.showsNumberOfCopies=true; // airPrinterController.showsPageRange = true; // airPrinterController.showsPaperSelectionForLoadedPapers=true; // // void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) = ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) { // if(completed && error) // DebugLog(@"Printing failed due to error in domain %@ with error code %lu. Localized description: %@, and failure reason: %@", error.domain, (long)error.code, error.localizedDescription, error.localizedFailureReason); // }; // // AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; // // UIPrinter *airPrinter = [UIPrinter printerWithURL:[NSURL URLWithString:appDelegate.printerURL] ];///*self.printer;*/ // // // // // [[UIPrinter printerWithURL:[NSURL URLWithString:appDelegate.printerURL]] contactPrinter:^(BOOL available) // { // if (available&& appDelegate.printerURL.length>0) // { // // [airPrinterController printToPrinter:airPrinter completionHandler:completionHandler]; // DebugLog(@"AIRPRINTER AVAILABLE"); // } // else // { // // // [airPrinterController presentFromRect:CGRectMake(0, 0, 300, 500) inView:self.view animated:YES completionHandler: // // // // // // // // // [printPicker presentAnimated:YES completionHandler: // // ^(UIPrintInteractionController *printerController, BOOL userDidSelect, NSError *error) // // { // // if (userDidSelect) // // { // // NSString* sid= printerController.printInfo.printerID; // // UIPrintPaper*paper= printerController.printPaper; // // // // } // // }]; // // // DebugLog(@"AIRPRINTER NOT AVAILABLE"); // // // // if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1) // { // UIPrinterPickerController *printPicker = [UIPrinterPickerController printerPickerControllerWithInitiallySelectedPrinter:nil]; // // [printPicker presentFromBarButtonItem:self.btnSubmitOrder animated:yes completionHandler: // // // // [ printPicker presentFromBarButtonItem:self.btnSubmitOrder animated:YES completionHandler: // // // // [printPicker presentFromRect:CGRectMake(0, 0, 300, 500) inView:self.view animated:YES completionHandler: // // // // // [printPicker presentAnimated:YES completionHandler: // ^(UIPrinterPickerController *printerPicker, BOOL userDidSelect, NSError *error) // { // if (userDidSelect) // { // //User selected the item in the UIPrinterPickerController and got the printer details. // // [UIPrinterPickerController printerPickerControllerWithInitiallySelectedPrinter:printerPicker.selectedPrinter]; // // //Here you will get the printer and printer details.ie, // // printerPicker.selectedPrinter, printerPicker.selectedPrinter.displayName, printerPicker.selectedPrinter.URL etc. So you can display the printer name in your label text or button title. // // // // // appDelegate.printerURL =printerPicker.selectedPrinter.URL.absoluteString; // // [self startAirPrintWithData:data]; // // } // else // { // // // AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; // if([appDelegate.mode isEqualToString:@"Trade Show Mode"]&& appDelegate.submit_order_logout) // { // // [((MainViewController*)appDelegate.main_vc) Loginout:false]; // } // [self prepareReturn:nil]; // // [self.navigationController popViewControllerAnimated:true]; // } // }]; // } // } // }]; // // // //} // //#pragma mark - UIPrintInteractionControllerDelegate //- (UIPrintPaper *)printInteractionController:(UIPrintInteractionController *)printInteractionController choosePaper:(NSArray *)paperList //{ // // ; // // // (int) width = 29700 // // Printing description of (*( (int *)0x7caa3a40)): // // (int) height = 42000 // //设置纸张大小 // // // for(UIPrintPaper* paper in paperList) // { // if (CGSizeEqualToSize(paper.paperSize, CGSizeMake(612, 792))) // return paper; // // } // CGSize paperSize = CGSizeMake(612, 792); // UIPrintPaper * p=[UIPrintPaper bestPaperForPageSize:paperSize withPapersFromArray:paperList]; // return p; //} //- (void)printInteractionControllerWillPresentPrinterOptions:(UIPrintInteractionController *)printInteractionController //{ // //} //- (void)printInteractionControllerDidPresentPrinterOptions:(UIPrintInteractionController *)printInteractionController //{ // //} //- (void)printInteractionControllerWillDismissPrinterOptions:(UIPrintInteractionController *)printInteractionController //{ // //} //- (void)printInteractionControllerDidDismissPrinterOptions:(UIPrintInteractionController *)printInteractionController //{ // //} // //- (void)printInteractionControllerWillStartJob:(UIPrintInteractionController *)printInteractionController //{ // //} //- (void)printInteractionControllerDidFinishJob:(UIPrintInteractionController *)printInteractionController //{ // // AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; // if([appDelegate.mode isEqualToString:@"Trade Show Mode"]&& appDelegate.submit_order_logout) // { // // [((MainViewController*)appDelegate.main_vc) Loginout:false]; // } // // [self prepareReturn:nil]; // // [self.navigationController popViewControllerAnimated:true]; //} // //- (NSString *)currentPriceTypeName { // NSInteger priceType = [Singleton sharedInstance].npd_shop_price_type; // // NSString* pricename = nil; // switch (priceType) { // case 0: // pricename=[Singleton sharedInstance].deliveryString; // break; // case 1: // pricename=flat_price; // break; // case 2: // pricename=given_price; // break; // default: // break; // } // return pricename; //} - (void)releaseOrderAfterSave { dispatch_async(dispatch_get_main_queue(), ^{ AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; // [RANetwork release_Order:appDelegate.order_code withScreen:nil]; [RANetwork request_release_order:appDelegate.order_code withScreen:nil completionHandler:nil]; [appDelegate closeOrder]; [appDelegate SetSo:nil]; appDelegate.cart_count=0; [appDelegate update_count_mark]; [((MainViewController*)appDelegate.main_vc) switchToOrder]; [self prepareReturn:nil]; [self.navigationController popToRootViewControllerAnimated:false]; }); } -(NSString* )create_customer_ext:(NSDictionary*)customerinfo { NSString* ret=nil; NSString* customer_address1= [customerinfo valueForKey:@"customer_address1"]; NSString* customer_address2= [customerinfo valueForKey:@"customer_address2"]; NSString* customer_address3= [customerinfo valueForKey:@"customer_address3"]; NSString* customer_address4= [customerinfo valueForKey:@"customer_address4"]; NSMutableArray* arraddr = [[NSMutableArray alloc] init]; if(customer_address1.length>0) [arraddr addObject:customer_address1]; if(customer_address2.length>0) [arraddr addObject:customer_address2]; if(customer_address3.length>0) [arraddr addObject:customer_address3]; if(customer_address4.length>0) [arraddr addObject:customer_address4]; NSString *addr_string = [arraddr componentsJoinedByString:@"\r\n"]; NSString* customer_city= [customerinfo valueForKey:@"customer_city"]; NSString* customer_country= [customerinfo valueForKey:@"customer_country"]; NSString* customer_zipcode= [customerinfo valueForKey:@"customer_zipcode"]; NSString* customer_state= [customerinfo valueForKey:@"customer_state"]; NSMutableArray* arrcty = [[NSMutableArray alloc] init]; if(customer_city.length>0) [arrcty addObject:customer_city]; if(customer_state.length>0) [arrcty addObject:customer_state]; if(customer_zipcode.length>0) [arrcty addObject:customer_zipcode]; if(customer_country.length>0) [arrcty addObject:customer_country]; NSString *cty_string = [arrcty componentsJoinedByString:@", "]; // NSString* customer_phone= [customerinfo valueForKey:@"customer_phone"]; // NSString* customer_fax= [customerinfo valueForKey:@"customer_fax"]; // // NSMutableArray* arrpho = [[NSMutableArray alloc] init]; // if(customer_phone.length>0) // { // customer_phone = [NSString stringWithFormat:@"TEL: %@",customer_phone]; // [arrpho addObject:customer_phone]; // } // if(customer_fax.length>0) // { // customer_fax = [NSString stringWithFormat:@"FAX: %@",customer_fax]; // [arrpho addObject:customer_fax]; // } // NSString *phone_string = [arrpho componentsJoinedByString:@", "]; // // // NSString* customer_contact= [customerinfo valueForKey:@"customer_contact"]; // if(customer_contact.length>0) // { // customer_contact = [NSString stringWithFormat:@"ATTN: %@",customer_contact]; // // } // NSString *contact_string = customer_contact; // // // NSString* customer_email= [customerinfo valueForKey:@"customer_email"]; // if(customer_email.length>0) // { // customer_email = [NSString stringWithFormat:@"Email: %@",customer_email]; // // } // NSString *email_string = customer_email; NSMutableArray* arrext = [[NSMutableArray alloc] init]; if(addr_string.length>0) [arrext addObject:addr_string]; if(cty_string.length>0) [arrext addObject:cty_string]; // if(phone_string.length>0) // [arrext addObject:phone_string]; // if(contact_string.length>0) // [arrext addObject:contact_string]; // if(email_string.length>0) // [arrext addObject:email_string]; ret = [arrext componentsJoinedByString:@"\r\n"]; // NSString *string = [array componentsJoinedByString:@" "]; // NSString* customer_name= [customerinfo valueForKey:@"customer_name"]; return ret; } -(NSMutableDictionary*)create_value_map:(NSDictionary*)key_map { NSMutableDictionary* ret= [[NSMutableDictionary alloc] init]; NSArray *keys= [key_map allKeys]; //遍历keys for(int i=0;i<[keys count];i++) { //得到当前key NSString *key=[keys objectAtIndex:i]; //如果key不是pic,说明value是字符类型,比如name:Boris NSString* valuefrom = [key_map valueForKey:key]; if(valuefrom.length==0) continue; NSString* value=[self getValue:valuefrom]; [ret setValue:value forKey:valuefrom]; } NSDictionary * customerinfo =[self create_cusromer_info_from_table]; [ret setValue:[self create_customer_ext:customerinfo] forKey:@"customer_contact_ext"]; [ret setValue:customerinfo[@"customer_first_name"] forKey:@"customer_first_name"]; [ret setValue:customerinfo[@"customer_last_name"] forKey:@"customer_last_name"]; return ret; } -(NSMutableDictionary*)create_cusromer_info_from_table { AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; NSMutableDictionary* ret= [appDelegate.customerInfo mutableCopy] ; [ret setValue:[self getValue:@"customer_country"] forKey:@"customer_country"]; [ret setValue:[self getValue:@"customer_phone"] forKey:@"customer_phone"]; [ret setValue:[self getValue:@"customer_email"] forKey:@"customer_email"]; [ret setValue:[self getValue:@"customer_name"] forKey:@"customer_name"]; [ret setValue:[self getValue:@"customer_address4"] forKey:@"customer_address4"]; [ret setValue:[self getValue:@"customer_address3"] forKey:@"customer_address3"]; [ret setValue:[self getValue:@"customer_address2"] forKey:@"customer_address2"]; [ret setValue:[self getValue:@"customer_address1"] forKey:@"customer_address1"]; [ret setValue:[self getValue:@"customer_zipcode"] forKey:@"customer_zipcode"]; [ret setValue:[self getValue:@"customer_city"] forKey:@"customer_city"]; [ret setValue:[self getValue:@"customer_state"] forKey:@"customer_state"]; [ret setValue:[self getValue:@"customer_cid"] forKey:@"customer_cid"]; [ret setValue:[self getValue:@"customer_state"] forKey:@"customer_state"]; [ret setValue:[self getValue:@"customer_contact"] forKey:@"customer_contact"]; [ret setValue:[self getValue:@"customer_fax"] forKey:@"customer_fax"]; NSString * firstname =nil; NSString* lastname = nil; NSString* contact_name = [self getValue:@"customer_contact"]; if(contact_name!=nil) { NSArray *_arr = [contact_name componentsSeparatedByString:NSLocalizedString(@" ", nil)]; if(_arr.count>=1) { firstname =_arr[0]; if(_arr.count>1) { lastname=[[_arr subarrayWithRange:NSMakeRange(1, _arr.count-1)] componentsJoinedByString:@" "]; } } } [ret setValue:firstname forKey:@"customer_first_name"]; [ret setValue:lastname forKey:@"customer_last_name"]; // [ret setValue:[self create_customer_ext:ret] forKey:@"customer_contact_ext"]; return ret; } #pragma mark - multi_action sub action clicked - (void)MActionClicked:(UIButton *)sender { UITableViewCell *cell = (UITableViewCell *) sender.superview.superview; NSIndexPath * indexPath = [self.editorTable indexPathForCell:cell]; int refresh =0; NSMutableDictionary* section_json=nil; NSMutableDictionary* item_json =[((NSMutableArray*)self.content_data_control[indexPath.section])[indexPath.row] mutableCopy]; NSString* subid=[item_json valueForKey:@"subid"]; NSString* refresh_trigger = [item_json valueForKey:@"name"]; NSDictionary* sub_action = [item_json objectForKey:[NSString stringWithFormat:@"item_%ld",(long)sender.tag]]; NSString* type = [sub_action valueForKey:@"type"]; bool discardDirty = [[sub_action valueForKey:@"discard_dirty"] boolValue]; if([type isEqualToString:@"pull"]) { [self.lastedit endEditing:true]; refresh = [[sub_action valueForKey:@"refresh"] intValue]; NSDictionary* keymap= [sub_action objectForKey:@"key_map"]; NSMutableDictionary* value=[self create_value_map:keymap]; if(subid==nil) { NSDictionary* jsonmap=[sub_action valueForKey:@"key_map"]; section_json = [[self.content_data_download objectForKey:[NSString stringWithFormat:@"section_%ld",(long)indexPath.section ]] mutableCopy]; int icount=[[section_json valueForKey:@"count"] intValue]; for (int ic=0;ic0) [modify_item setValue:valuestr forKey:@"value"]; else [modify_item setValue:@"" forKey:@"value"]; [modify_item setValue:@"true" forKey:@"dirty"]; [section_json setObject:modify_item forKey:[NSString stringWithFormat:@"item_%d",ic ]]; } } } else { NSArray* idarr=[subid componentsSeparatedByString:@"_"]; int section = [(NSString*)idarr[0] intValue]; int item=[(NSString*)idarr[1] intValue]; NSDictionary* jsonmap=[sub_action valueForKey:@"key_map"]; section_json = [[self.content_data_download objectForKey:[NSString stringWithFormat:@"section_%d", section]] mutableCopy]; NSMutableDictionary * olditem=[[section_json objectForKey:[NSString stringWithFormat:@"item_%d",item ]] mutableCopy]; NSString* control_type = [olditem valueForKey:@"control"]; if([control_type isEqualToString:@"switch"]) olditem= [self fill_switch_subitem:olditem subid:nil source:value mapping:jsonmap ]; else if([control_type isEqualToString:@"enum"]) { olditem= [self fill_enum_subitem:olditem subid:nil source:value mapping:jsonmap ]; } else { [RAUtils message_alert:@"not impl" title:@"Sorry" controller:self]; // [RAUtils alert_view:@"" title:@"not impl"]; } [olditem setValue:@"true" forKey:@"dirty"]; [section_json setObject:olditem forKey:[NSString stringWithFormat:@"item_%d",item ]]; } [self.content_data_download setObject:section_json forKey:[NSString stringWithFormat:@"section_%ld",(long)indexPath.section ]]; self.content_data_control = [self translate_json:self.content_data_download changed:self.changed_data]; if(refresh==1) { // if(restore_json!=nil) // { // int rc=[[restore_json valueForKey:@"count"] intValue]; // for(int ir=0;ir */ } else if([[itemjson valueForKey:@"control"] isEqualToString:@"action"]) { return nil; } else if([[itemjson valueForKey:@"control"] isEqualToString:@"signature"]) { NSString* valuestr = [itemjson valueForKey:@"value"]; if(valuestr.length==0) valuestr=@""; [upparams setValue:valuestr forKey:[itemjson valueForKey:@"name"]]; return upparams; } else if([[itemjson valueForKey:@"control"] isEqualToString:@"switch"]) { NSString* valuestr = [itemjson valueForKey:@"value"]; [upparams setValue:valuestr forKey:[itemjson valueForKey:@"name"]]; NSString* value = [itemjson valueForKey:@"value"]; // NSMutableDictionary* boolitem=nil; // NSMutableDictionary* subjson=nil; if([value isEqualToString:@"true"]) { // boolitem =[[itemjson objectForKey:@"true"] mutableCopy]; NSMutableDictionary* subitem = itemjson[@"sub_item"]; if(subitem!=nil) { int scount = [subitem[@"count"]intValue]; for(int si=0;si 0) { // // key // NSString *max_key = [itemjson objectForKey:@"max"]; // id max_obj = [self downloadValueForKey:max_key]; // if (max_obj) { // max_value = [max_obj floatValue]; // } // // } else { // // value // id max_obj = [itemjson objectForKey:@"max"]; // if (max_obj != nil) { // max_value = [max_obj floatValue]; // } // // } // // if (max_value < f_value) { // mfield =[NSString stringWithFormat:@"%ld. the value of %@ must be not larger than %.2f",fields.count+1,itemjson[@"aname"],max_value]; // } // } // // if (check_min) { // // if (min_type > 0) { // // key // NSString *min_key = [itemjson objectForKey:@"min"]; // id min_obj = [self downloadValueForKey:min_key]; // if (min_obj) { // min_value = [min_obj floatValue]; // } // } else { // // value // id min_obj = [itemjson objectForKey:@"min"]; // if (min_obj != nil) { // min_value = [min_obj floatValue]; // } // } // // if (min_value > f_value) { // mfield =[NSString stringWithFormat:@"%ld. the value of %@ must be not smaller than %.2f",fields.count+1,itemjson[@"aname"],min_value]; // } // } // // // if (check_min && check_max) { // if (f_value < min_value || f_value > max_value) { // mfield =[NSString stringWithFormat:@"%ld. the value of %@ must between %.2f and %.2f",fields.count+1,itemjson[@"aname"],min_value,max_value]; // } // } // // // [upparams setValue:valuestr forKey:[itemjson valueForKey:@"name"]]; // // // } else { // [upparams setValue:valuestr forKey:[itemjson valueForKey:@"name"]]; // } // // } return upparams; } else { NSString* value = [itemjson valueForKey:@"value"]; if(value.length==0) value=@""; [upparams setValue:value forKey:[itemjson valueForKey:@"name"]]; return upparams; } return upparams; } -(NSMutableDictionary*) convertScanOrder :(NSMutableDictionary*) dict { [[[UIApplication sharedApplication] keyWindow] endEditing:YES]; // [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder)]; [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; // self.first_miss_pos = nil; NSMutableDictionary* upparams=[[NSMutableDictionary alloc] init]; // [upparams setValue:[self.params valueForKey:@"cart2Checkbox"] forKey:@"cart2Checkbox"]; int section_count=(int)self.content_data_control.count;//[[self.content_data_download valueForKey:@"section_count"] intValue]; // NSString* aaa = [RAUtils dict2string:self.content_data_control]; for(int i=0;i0&&[fileManager fileExistsAtPath:[img_cache stringByAppendingPathComponent:img_url_0]]) { NSError* err; [fileManager copyItemAtURL:[NSURL fileURLWithPath:[img_cache stringByAppendingPathComponent:img_url_0]] toURL:[NSURL fileURLWithPath:[orderdir stringByAppendingPathComponent:img_url_0]] error:&err]; int i=0; } if(img_url_1.length>0&&[fileManager fileExistsAtPath:[img_cache stringByAppendingPathComponent:img_url_1]]) { NSError* err; [fileManager copyItemAtURL:[NSURL fileURLWithPath:[img_cache stringByAppendingPathComponent:img_url_1]] toURL:[NSURL fileURLWithPath:[orderdir stringByAppendingPathComponent:img_url_1]] error:&err]; } if(img_url_2.length>0&&[fileManager fileExistsAtPath:[img_cache stringByAppendingPathComponent:img_url_2]]) { NSError* err; [fileManager copyItemAtURL:[NSURL fileURLWithPath:[img_cache stringByAppendingPathComponent:img_url_2]] toURL:[NSURL fileURLWithPath:[orderdir stringByAppendingPathComponent:img_url_2]] error:&err]; } } else if([item[@"control"] isEqualToString:@"signature"]) { // 复制图片到打包目录 NSString* img_url_0=item[@"value"]; 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]; if(img_url_0.length>0&&[fileManager fileExistsAtPath:[img_cache stringByAppendingPathComponent:img_url_0]]) { NSError* err; [fileManager copyItemAtURL:[NSURL fileURLWithPath:[img_cache stringByAppendingPathComponent:img_url_0]] toURL:[NSURL fileURLWithPath:[orderdir stringByAppendingPathComponent:img_url_0]] error:&err]; } } } } NSString * parampath= [orderdir stringByAppendingPathComponent:@"param.json"]; NSDictionary* param=[self convertScanOrder:self.content_data_download]; [RAUtils dicttofile:parampath dict:param]; NSString *contactpath = [orderdir stringByAppendingPathComponent:@"contact.json"]; [RAUtils dicttofile:contactpath dict:appDelegate.customerInfo]; NSString *cartpath = [orderdir stringByAppendingPathComponent:@"cart.json"]; [RAUtils dicttofile:cartpath dict:RASingleton.sharedInstance.scan_cart]; NSString * zippath= [orderdir stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.zip",appDelegate.order_code]]; // NSError *error=nil; // // [str writeToFile:jsonpath atomically:true encoding:NSUTF8StringEncoding error:&error]; NSArray* arr_files=[RAUtils allFilesAtPath:orderdir]; ZipArchive* zip = [[ZipArchive alloc] init]; // if ([[NSFileManager defaultManager] fileExistsAtPath:zippath]) { // // // [[NSFileManager defaultManager] removeItemAtPath:zippath error:nil]; // // // } BOOL r = [zip CreateZipFile2:zippath Password:@"usai2010"]; for(int i=0;i0) { // [message_alert dismissViewControllerAnimated:YES completion:^{ // [alert dismissWithClickedButtonIndex:0 animated:FALSE]; // [self.navigationController popToRootViewControllerAnimated:true]; [appDelegate printPdf:pdf_url company:company send_to:send_to soid:soid content:email_content]; // [appDelegate printPdf:pdf_url]; // }]; } else dispatch_async(dispatch_get_main_queue(), ^{ // UIAlertController* message_alert= [RAUtils message_alert:msg title:title controller:message_parent]; }); // __block UIAlertController* message_alert=[RAUtils message_alert:msg title:title controller:self.parentViewController action_handler:^(UIAlertAction * _Nonnull action) { // // // // //// [self.navigationController popToRootViewControllerAnimated:true]; // // // } completion:^{ // // }]; // UIAlertView * alert = [[UIAlertView alloc] initWithTitle: title message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; // // [alert show]; // } else { [RAUtils message_alert:[editor_json valueForKey:@"err_msg"] title:@"Order Submission" controller:self] ; } }]; }]; }]; } @end