//
//  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 "iSalesNetwork.h"
#import "MainViewController.h"
#import "Singleton.h"
#import "config.h"
#import "CustomIOSAlertView.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)dealloc {
    if (self.isResume && self.userType == USER_ROLE_CUSTOMER) {
        [self releaseOrderAfterSave];
    }
}

-(void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    
    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:)];
    
    
    self.btnSubmitOrder = nil;
    self.btnSubmitOrder =[[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"commit"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
                                                          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) {
            // customer的订单必须是Sales Order并且有提交权限才能提交
            if ([Singleton sharedInstance].currentOrderIsMerged && [Singleton sharedInstance].permissions_submit_order) {
                
                [items addObject:self.btnSubmitOrder];

            }
        } else {
            [items addObject:self.btnSubmitOrder];
        }
        
    } else {
        // 恢复
        if (self.userType == USER_ROLE_CUSTOMER) {
            // 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:[UIImage imageNamed:@"commit"]];
        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;
    if(appDelegate.offline_mode)
    {
        msg=@"Are you sure to mark offline order as ready for submit?";
    }
    else
    {
        msg=@"Are you sure to submit order?";
        
        if(appDelegate.user_type == USER_ROLE_CUSTOMER) {
            
            NSString *specialInstuction = [Singleton sharedInstance].specialInstruction;
            NSString * deliverprice=[Singleton sharedInstance].deliveryString;
            msg = [NSString stringWithFormat:@"Are you sure to submit order?\n\n1. Your price type is %@, Order will sent to NPD with this price.",deliverprice];
            if (specialInstuction.length) {
                msg = [msg stringByAppendingFormat:@"\n2. Special Instruction: %@.",specialInstuction];
            }
            
        }
    }
    
    
    
    CustomIOSAlertView *alertView = [[CustomIOSAlertView alloc] init];
    
    
    
    
    // Add some custom content to the alert view
    [alertView setContainerView:[self createDemoView:msg]];
    
    // Modify the parameters
    
    
    
    [alertView setButtonTitles:[NSMutableArray arrayWithObjects:@"NO",@"YES", nil]];
    //[alertView setDelegate:self];
    
    // You may use a Block, rather than a delegate.
    [alertView setOnButtonTouchUpInside:^(CustomIOSAlertView *alertView, int buttonIndex) {
        //   DebugLog(@"Block: Button at position %d is clicked on alertView %d.", buttonIndex, (int)[alertView tag]);
        if(buttonIndex==0)
            [alertView close];
        else
        {
            // add params check here.
            [self.lastedit endEditing:true];
            [self.lasttextview endEditing:true];
            
            
            
            //        self.cancommit=true;
            //        NSMutableDictionary* upparams=[[NSMutableDictionary alloc] init];
            //        [upparams setValue:[self.params valueForKey:@"cart2Checkbox"] forKey:@"cart2Checkbox"];
            //        int section_count=[[self.content_data_download valueForKey:@"section_count"] intValue];
            //        for(int i=0;i<section_count;i++)
            //        {
            //            NSMutableDictionary * sectionjson = [[self.content_data_download objectForKey:[NSString stringWithFormat:@"section_%d",i ]] mutableCopy];
            //            int item_count = [[sectionjson valueForKey:@"count"] intValue];
            //            for(int j=0;j<item_count;j++)
            //            {
            //                NSMutableDictionary * itemjson=[[sectionjson objectForKey:[NSString stringWithFormat:@"item_%d",j ]] mutableCopy];
            //                NSString* key = [itemjson valueForKey:@"name"];
            //                if(key==nil || key.length==0)
            //                    continue;
            //                if([[itemjson valueForKey:@"control"] isEqualToString:@"enum"])
            //                {
            //                    NSString* single_select = [itemjson valueForKey:@"single_select"];
            //                    if([single_select isEqualToString:@"true"])
            //                    {
            //                        NSDictionary* cadejson=[itemjson objectForKey:@"cadedate"];
            //                        int count = [[cadejson valueForKey:@"count"] intValue];
            //                        bool setvalue = false;
            //                        for(int cc=0;cc<count;cc++)
            //                        {
            //                            NSDictionary* valjson=[cadejson objectForKey:[NSString stringWithFormat:@"val_%d",cc]];
            //                            if([[valjson valueForKey:@"check"]intValue]==1)
            //                            {
            //                                [upparams setValue:[valjson valueForKey:@"value_id"] forKey:[itemjson valueForKey:@"name"]];
            //                                setvalue=true;
            //                                break;
            //                            }
            //                        }
            //                        if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] && setvalue==false)
            //                        {
            //                            self.cancommit = false;
            //                        }
            //                    }
            //                    else
            //                    {
            //                        //not support multi select for now;
            //                    }
            //                    /*
            //                     upparams setValue:itemjson forKey:<#(NSString *)#>
            //
            //                     */
            //                }else
            //                    if([[itemjson valueForKey:@"control"] isEqualToString:@"action"])
            //                    {
            //                        if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] && [itemjson objectForKeyedSubscript:@"data"]==nil)
            //                            self.cancommit = false;
            //                    }
            //                    else if([[itemjson valueForKey:@"control"] isEqualToString:@"signature"])
            //                    {
            //                        if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] && [itemjson objectForKeyedSubscript:@"value"] ==nil)
            //                            self.cancommit = false;
            //
            //                        NSString* valuestr = [itemjson valueForKey:@"value"];
            //                        [upparams setValue:valuestr forKey:[itemjson valueForKey:@"name"]];
            //                    }
            //                    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];
            //
            //                        }
            //                        else
            //                        {
            //                            boolitem =[[itemjson objectForKey:@"false"] mutableCopy];
            //
            //                        }
            //                        subjson=[[boolitem objectForKey:@"sub_item"] mutableCopy];
            //                        if( subjson!=nil /*&& !active*/)
            //                        {
            //                            int sub_count = [[subjson valueForKey:@"count"] intValue];
            //                            for(int l=0;l<sub_count;l++)
            //                            {
            //                                NSMutableDictionary * modify_item=[[subjson objectForKey:[NSString stringWithFormat:@"item_%d",l ]] mutableCopy];
            //
            //
            //
            //
            //                                if([modify_item valueForKey:@"value"]!=nil && ![[modify_item valueForKey:@"value"]isEqualToString:@""])
            //                                    [upparams setValue:[modify_item valueForKey:@"value"] forKey:[modify_item valueForKey:@"name"]];
            //                                else
            //                                {
            //                                    if([[modify_item valueForKey:@"required"] isEqualToString: @"true"] )
            //                                        self.cancommit = false;
            //                                }
            //                            }
            //
            //
            //
            //                        }
            //                    }
            //                    else
            //                    {
            //                        if([itemjson valueForKey:@"value"]!=nil && ![[itemjson valueForKey:@"value"]isEqualToString:@""])
            //                            [upparams setValue:[itemjson valueForKey:@"value"] forKey:[itemjson valueForKey:@"name"]];
            //                        else
            //                        {
            //                            if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] )
            //                                self.cancommit = false;
            //                        }
            //                    }
            //                upparams= [self subitem_param:itemjson addto:upparams ];
            //            }
            //        }
            //        if(self.cancommit==false)
            //        {
            //            [RAUtils alert_view:@"Fields with * mark cannot be empty." title:@"Some Requried Fields Are Missing."];
            //            self.content_data_control = [self translate_json:self.content_data_download changed:self.changed_data];
            //            //DebugLog(@"CONTENT translate:%@",[iSalesNetwork DataTOjsonString:self.content_data]);
            //            //[self.editorTable reloadData ];
            //            [self.editorTable reloadData];
            //            //  [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
            //            return;
            //        }
            
            NSMutableDictionary* upparams = [self check_cancommit:true];
            if(self.cancommit==false)
                return;
            
            if(upparams[@"shipping"]==nil)
                goto commit_order;
            if([upparams[@"shipping"] isEqualToString:@"Shipping To Be Quoted"])
            {
                upparams[@"shipping"] = nil;
                goto commit_order;
            }
            else if([upparams[@"shipping"] doubleValue]==0)
            {
                
                
                UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Shipping is $0.00, continue submit?" message:nil preferredStyle:UIAlertControllerStyleAlert];
                //block代码块取代了delegate
                
                
                
                UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action)
                                            {
                                                
                                                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                                                
                                                if(appDelegate.user_type ==USER_ROLE_EMPLOYEE )
                                                {
                                                    
                                                    if(/*!self.have_tail*/ true)
                                                    {UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Submit Order"];
                                                        [upparams setValue:@"false" forKey:@"isHold"];
                                                        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                                            
                                                            NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
                                                            
                                                            dispatch_async(dispatch_get_main_queue(), ^{
                                                                [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                                                                
                                                                
                                                                if([[editor_json valueForKey:@"result"] intValue]==2)
                                                                {
                                                                    //          NSMutableDictionary * customerInfo=[self create_cusromer_info_from_table];
                                                                    
                                                                    // debug aaa
                                                                    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                                                                    NSString* company= appDelegate.customerInfo[@"customer_name"];
                                                                    NSString* send_to =appDelegate.customerInfo[@"customer_email"];
                                                                    
                                                                    //                                appDelegate.customerInfo = customerInfo;
                                                                    //                                appDelegate.contact_id = [customerInfo valueForKey:@"customer_cid"];
                                                                    //                                appDelegate.order_code = nil;
                                                                    [appDelegate closeOrder];
                                                                    [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
                                                                    
                                                                    NSString* title=nil;
                                                                    NSString* msg=nil;
                                                                    if(appDelegate.offline_mode)
                                                                    {
                                                                        title=TITLE_OFFLINE_SUBMIT;
                                                                        msg=MSG_OFFLINE_SUBMIT;
                                                                    }
                                                                    else
                                                                    {
                                                                        title=@"Submit successful.";
                                                                        msg=[NSString stringWithFormat:@"SO#: %@",[editor_json valueForKey:@"so#"]];
                                                                    }
                                                                    
                                                                    UIAlertView * alert = [[UIAlertView alloc] initWithTitle: title message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                                                                    
                                                                    [alert show];
                                                                    
                                                                    NSString* pdf_url = [editor_json valueForKey:@"pdf_url"];
                                                                    NSString* email_content =[editor_json valueForKey:@"email_content"];
                                                                    NSString* soid=[editor_json valueForKey:@"so#"];
                                                                    //                                                                if(pdf_url.length>0)
                                                                    //                                                                {
                                                                    //
                                                                    //                                                                    [alert dismissWithClickedButtonIndex:0 animated:FALSE];
                                                                    //                                                                    //[self downloadpdf:pdf_url];
                                                                    //
                                                                    //
                                                                    //                                                                    if([appDelegate.mode isEqualToString:@"Trade Show Mode"]&& appDelegate.submit_order_logout)
                                                                    //                                                                    {
                                                                    //                                                                        //bbb
                                                                    //                                                                        [((MainViewController*)appDelegate.main_vc) Loginout:false];
                                                                    //                                                                    }
                                                                    //
                                                                    //                                                                    [self prepareReturn:nil];
                                                                    //
                                                                    //                                                                    [self.navigationController popViewControllerAnimated:true];
                                                                    //
                                                                    //                                                                    [appDelegate printPdf:pdf_url];
                                                                    ////                                                                    if(self.printPdfCallback)
                                                                    ////                                                                        self.printPdfCallback(pdf_url);
                                                                    //                                                                }
                                                                    //                                                                else
                                                                    {
                                                                        if([appDelegate.mode isEqualToString:@"TM"]&& appDelegate.submit_order_logout)
                                                                        {
                                                                            //bbb
                                                                            [((MainViewController*)appDelegate.main_vc) Loginout:false];
                                                                        }
                                                                        [self prepareReturn:nil];
                                                                        
                                                                        [self.navigationController popViewControllerAnimated:true];
                                                                        
                                                                        if(pdf_url.length>0)
                                                                        {
                                                                            
                                                                            [alert dismissWithClickedButtonIndex:0 animated:FALSE];
                                                                            [appDelegate printPdf:pdf_url company:company send_to:send_to soid:soid content:email_content];
                                                                            //  [appDelegate printPdf:pdf_url];
                                                                            
                                                                        }
                                                                    }
                                                                    
                                                                }
                                                                else
                                                                {
                                                                    [RAUtils message_alert:[editor_json valueForKey:@"err_msg"] title:@"Submit Order" controller:self] ;
                                                                }
                                                                
                                                                
                                                                
                                                                
                                                            });
                                                        });
                                                    }
                                                    else
                                                    {
                                                        UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Retain models", nil) message:NSLocalizedString(@"There are some models left in cart，do you want to keep them?", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil];
                                                        
                                                        
                                                        alert.tag = KEEP_TAIL;
                                                        
                                                        
                                                        self.upparams = upparams;
                                                        
                                                        [alert show];
                                                    }
                                                    
                                                }
                                                else
                                                { //USER_ROLE_CUSTOMER
                                                    
                                                    //            if(self.have_tail)
                                                    //            [upparams setValue:@"true" forKey:@"isHold"];
                                                    //            else
                                                    //                [upparams setValue:@"false" forKey:@"isHold"];
                                                    UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Submit Order"];
                                                    
                                                    [upparams setValue:@"true" forKey:@"isHold"];
                                                    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                                        
                                                        NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
                                                        
                                                        dispatch_async(dispatch_get_main_queue(), ^{
                                                            
                                                            [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                                                            
                                                            if([[editor_json valueForKey:@"result"] intValue]==2)
                                                            {
                                                                //       NSMutableDictionary * customerInfo=[self create_cusromer_info_from_table];
                                                                
                                                                
                                                                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                                                                // appDelegate.customerInfo = customerInfo;
                                                                
                                                                //                                                            NSString* orderCode = [editor_json valueForKey:@"orderCode"];
                                                                //                                                            appDelegate.order_code = orderCode;
                                                                //                                                            appDelegate.order_status = [[editor_json valueForKey:@"orderStatus"] intValue];
                                                                [appDelegate closeOrder];
                                                                [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
                                                                
                                                                NSString* title=nil;
                                                                NSString* msg=nil;
                                                                if(appDelegate.offline_mode)
                                                                {
                                                                    title=TITLE_OFFLINE_SUBMIT;
                                                                    msg=MSG_OFFLINE_SUBMIT;
                                                                }
                                                                else
                                                                {
                                                                    title=@"Submit successful.";
                                                                    msg=[NSString stringWithFormat:@"SO#: %@",[editor_json valueForKey:@"so#"]];
                                                                }
                                                                
                                                                UIAlertView * alert = [[UIAlertView alloc] initWithTitle: title message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                                                                
                                                                [alert show];
                                                                //    //     self.labelContact.text=appDelegate.contact_name;
                                                                //
                                                                //    NSDictionary * customerinfo = appDelegate.customerInfo;
                                                                [self prepareReturn:nil];
                                                                [self.navigationController popViewControllerAnimated:true];
                                                                //                                    [self.navigationController dismissViewControllerAnimated:true completion:^{
                                                                //
                                                                //
                                                                //                                        ;
                                                                //                                    }];
                                                                
                                                            }
                                                            else
                                                            {
                                                                [RAUtils message_alert:[editor_json valueForKey:@"err_msg"] title:@"Submit Order" controller:self] ;
                                                            }
                                                            
                                                            
                                                            
                                                            
                                                        });
                                                    });
                                                    
                                                }
                                                
                                                
                                                
                                            }];
                
                UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"No" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
                    //DebugLog(@"Cancel");
                    
                    
                }];
                [alertControl addAction:actionOne];
                
                [alertControl addAction:alertthree];
                
                //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
                
                
                
                
                [self presentViewController:alertControl animated:YES completion:nil];
                
                
                
            }
            else
            {
            commit_order:
                
                {
                    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                    
                    if(appDelegate.user_type ==USER_ROLE_EMPLOYEE )
                    {
                        
                        if(/*!self.have_tail*/ true)
                        {UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Submit Order"];
                            [upparams setValue:@"false" forKey:@"isHold"];
                            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                
                                NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
                                
                                dispatch_async(dispatch_get_main_queue(), ^{
                                    [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                                    
                                    
                                    if([[editor_json valueForKey:@"result"] intValue]==2)
                                    {
                                        
                                        //debug bbb
                                        //    NSMutableDictionary * customerInfo=[self create_cusromer_info_from_table];
                                        
                                        
                                        AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                                        NSString* company= appDelegate.customerInfo[@"customer_name"];
                                        NSString* send_to =appDelegate.customerInfo[@"customer_email"];
                                        //                                appDelegate.customerInfo = customerInfo;
                                        //                                appDelegate.contact_id = [customerInfo valueForKey:@"customer_cid"];
                                        //                                appDelegate.order_code = nil;
                                        [appDelegate closeOrder];
                                        [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
                                        
                                        NSString* title=nil;
                                        NSString* msg=nil;
                                        if(appDelegate.offline_mode)
                                        {
                                            title=TITLE_OFFLINE_SUBMIT;
                                            msg=MSG_OFFLINE_SUBMIT;
                                        }
                                        else
                                        {
                                            title=@"Submit successful.";
                                            msg=[NSString stringWithFormat:@"SO#: %@",[editor_json valueForKey:@"so#"]];
                                        }
                                        
                                        UIAlertView * alert = [[UIAlertView alloc] initWithTitle: title message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                                        
                                        [alert show];
                                        
                                        NSString* pdf_url = [editor_json valueForKey:@"pdf_url"];
                                        NSString* email_content =[editor_json valueForKey:@"email_content"];
                                        NSString* soid=[editor_json valueForKey:@"so#"];
                                        //                                    if(pdf_url.length>0)
                                        //                                    {
                                        //
                                        //                                        [alert dismissWithClickedButtonIndex:0 animated:FALSE];
                                        ////                                        [self downloadpdf:pdf_url];
                                        //
                                        //
                                        //                                        if([appDelegate.mode isEqualToString:@"Trade Show Mode"]&& appDelegate.submit_order_logout)
                                        //                                        {
                                        //                                            //bbb
                                        //                                            [((MainViewController*)appDelegate.main_vc) Loginout:false];
                                        //                                        }
                                        //
                                        //                                        [self prepareReturn:nil];
                                        //
                                        //                                        [self.navigationController popViewControllerAnimated:true];
                                        //
                                        //                                        [appDelegate printPdf:pdf_url];
                                        //
                                        ////                                        if(self.printPdfCallback)
                                        ////                                            self.printPdfCallback(pdf_url);
                                        //                                    }
                                        //                                    else
                                        {
                                            if([appDelegate.mode isEqualToString:@"TM"]&& appDelegate.submit_order_logout)
                                            {
                                                //bbb
                                                [((MainViewController*)appDelegate.main_vc) Loginout:false];
                                            }
                                            [self prepareReturn:nil];
                                            
                                            [self.navigationController popViewControllerAnimated:true];
                                            
                                            
                                            if(pdf_url.length>0)
                                            {
                                                
                                                [alert dismissWithClickedButtonIndex:0 animated:FALSE];
                                                
                                                [appDelegate printPdf:pdf_url company:company send_to:send_to soid:soid content:email_content];
                                                
                                                
                                            }
                                            
                                            
                                        }
                                        //    //     self.labelContact.text=appDelegate.contact_name;
                                        //
                                        //    NSDictionary * customerinfo = appDelegate.customerInfo;
                                        
                                        
                                        
                                        
                                        
                                        
                                    }
                                    else
                                    {
                                        [RAUtils message_alert:[editor_json valueForKey:@"err_msg"] title:@"Submit Order" controller:self] ;
                                    }
                                    
                                    
                                    
                                    
                                });
                            });
                        }
                        else
                        {
                            UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Retain models", nil) message:NSLocalizedString(@"There are some models left in cart，do you want to keep them?", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil];
                            
                            
                            alert.tag = KEEP_TAIL;
                            
                            
                            self.upparams = upparams;
                            
                            [alert show];
                        }
                        
                    }
                    else
                    { //USER_ROLE_CUSTOMER
                        
                        //            if(self.have_tail)
                        //            [upparams setValue:@"true" forKey:@"isHold"];
                        //            else
                        //                [upparams setValue:@"false" forKey:@"isHold"];
                        UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Submit Order"];
                        
                        [upparams setValue:@"true" forKey:@"isHold"];
                        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                            
                            NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
                            
                            dispatch_async(dispatch_get_main_queue(), ^{
                                
                                [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                                
                                if([[editor_json valueForKey:@"result"] intValue]==2)
                                {
                                    //       NSMutableDictionary * customerInfo=[self create_cusromer_info_from_table];
                                    
                                    
                                    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                                    // appDelegate.customerInfo = customerInfo;
                                    
                                    //                                NSString* orderCode = [editor_json valueForKey:@"orderCode"];
                                    //                                appDelegate.order_code = orderCode;
                                    //                                appDelegate.order_status = [[editor_json valueForKey:@"orderStatus"] intValue];
                                    [appDelegate closeOrder];
                                    [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
                                    
                                    NSString* title=nil;
                                    NSString* msg=nil;
                                    if(appDelegate.offline_mode)
                                    {
                                        title=TITLE_OFFLINE_SUBMIT;
                                        msg=MSG_OFFLINE_SUBMIT;
                                    }
                                    else
                                    {
                                        title=@"Submit successful.";
                                        msg=[NSString stringWithFormat:@"SO#: %@",[editor_json valueForKey:@"so#"]];
                                    }
                                    
                                    
                                    UIAlertView * alert = [[UIAlertView alloc] initWithTitle: title message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                                    
                                    [alert show];
                                    //    //     self.labelContact.text=appDelegate.contact_name;
                                    //
                                    //    NSDictionary * customerinfo = appDelegate.customerInfo;
                                    [self prepareReturn:nil];
                                    //                            [self.navigationController dismissViewControllerAnimated:true completion:^{
                                    //
                                    //
                                    //                                ;
                                    //                            }];
                                    [self.navigationController popViewControllerAnimated:true];
                                    
                                }
                                else
                                {
                                    [RAUtils message_alert:[editor_json valueForKey:@"err_msg"] title:@"Submit Order" controller:self] ;
                                }
                                
                                
                                
                                
                            });
                        });
                        
                    }
                }
                
                
                
                
            }
            
            
            
            
            
            
            
            
            
            
            
        }
    }];
    
    //  [alertView setUseMotionEffects:true];
    
    // And launch the dialog
    
    [alertView sizeToFit];
    [alertView show];
    
//    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Submit Confirm.", nil) message:NSLocalizedString(msg, nil) delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil];
//    
//    alert.tag = SUBMIT_CONFIRM;
//    [alert show];
//    
    
    
    
}
- (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=@"Submit Confirm.";
    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=@"Submit Confirm." sizeWithFont:[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];
    
    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;
    if(appDelegate.order_status==0)
    {
        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
    {
        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];
//    self.cancommit=true;
//    NSMutableDictionary* upparams=[[NSMutableDictionary alloc] init];
//    [upparams setValue:[self.params valueForKey:@"cart2Checkbox"] forKey:@"cart2Checkbox"];
//    int section_count=[[self.content_data_download valueForKey:@"section_count"] intValue];
//    for(int i=0;i<section_count;i++)
//    {
//        NSMutableDictionary * sectionjson = [[self.content_data_download objectForKey:[NSString stringWithFormat:@"section_%d",i ]] mutableCopy];
//        int item_count = [[sectionjson valueForKey:@"count"] intValue];
//        for(int j=0;j<item_count;j++)
//        {
//            NSMutableDictionary * itemjson=[[sectionjson objectForKey:[NSString stringWithFormat:@"item_%d",j ]] mutableCopy];
//            NSString* key = [itemjson valueForKey:@"name"];
//            if(key==nil || key.length==0)
//                continue;
//            if([[itemjson valueForKey:@"control"] isEqualToString:@"enum"])
//            {
//                NSString* single_select = [itemjson valueForKey:@"single_select"];
//                if([single_select isEqualToString:@"true"])
//                {
//                    NSDictionary* cadejson=[itemjson objectForKey:@"cadedate"];
//                    int count = [[cadejson valueForKey:@"count"] intValue];
//                    bool setvalue = false;
//                    for(int cc=0;cc<count;cc++)
//                    {
//                        NSDictionary* valjson=[cadejson objectForKey:[NSString stringWithFormat:@"val_%d",cc]];
//                        if([[valjson valueForKey:@"check"]intValue]==1)
//                        {
//                            [upparams setValue:[valjson valueForKey:@"value_id"] forKey:[itemjson valueForKey:@"name"]];
//                            setvalue=true;
//                            break;
//                        }
//                    }
//                    if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] && setvalue==false)
//                    {
//                        self.cancommit = false;
//                    }
//                }
//                else
//                {
//                    //not support multi select for now;
//                }
//                /*
//                 upparams setValue:itemjson forKey:<#(NSString *)#>
//                 
//                 */
//            }else
//                if([[itemjson valueForKey:@"control"] isEqualToString:@"action"])
//                {
//                    if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] && [itemjson objectForKeyedSubscript:@"data"]==nil)
//                        self.cancommit = false;
//                }
//                else if([[itemjson valueForKey:@"control"] isEqualToString:@"signature"])
//                {
//                    if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] && [itemjson objectForKeyedSubscript:@"value"]==nil)
//                        self.cancommit = false;
//                    
//                    NSString* valuestr = [itemjson valueForKey:@"value"];
//                    [upparams setValue:valuestr forKey:[itemjson valueForKey:@"name"]];
//                }
//                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];
//                        
//                    }
//                    else
//                    {
//                        boolitem =[[itemjson objectForKey:@"false"] mutableCopy];
//                        
//                    }
//                    subjson=[[boolitem objectForKey:@"sub_item"] mutableCopy];
//                    if( subjson!=nil /*&& !active*/)
//                    {
//                        int sub_count = [[subjson valueForKey:@"count"] intValue];
//                        for(int l=0;l<sub_count;l++)
//                        {
//                            NSMutableDictionary * modify_item=[[subjson objectForKey:[NSString stringWithFormat:@"item_%d",l ]] mutableCopy];
//                            
//                            
//                            
//                            
//                            if([modify_item valueForKey:@"value"]!=nil && ![[modify_item valueForKey:@"value"]isEqualToString:@""])
//                                [upparams setValue:[modify_item valueForKey:@"value"] forKey:[modify_item valueForKey:@"name"]];
//                            else
//                            {
//                                if([[modify_item valueForKey:@"required"] isEqualToString: @"true"] )
//                                    self.cancommit = false;
//                            }
//                        }
//                        
//                        
//                        
//                    }
//                }
//                else
//                {
//                    if([itemjson valueForKey:@"value"]!=nil && ![[itemjson valueForKey:@"value"]isEqualToString:@""])
//                        [upparams setValue:[itemjson valueForKey:@"value"] forKey:[itemjson valueForKey:@"name"]];
//                    else
//                    {
//                        if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] )
//                            self.cancommit = false;
//                    }
//                }
//            upparams= [self subitem_param:itemjson addto:upparams ];
//        }
//    }
//    // save order 不检查必填项；
//    self.cancommit=true;
//    if(self.cancommit==false)
//    {
//        [RAUtils alert_view:@"Fields with * mark cannot be empty." title:@"Some Requried Fields Are Missing."];
//        self.content_data_control = [self translate_json:self.content_data_download changed:self.changed_data];
//        //DebugLog(@"CONTENT translate:%@",[iSalesNetwork DataTOjsonString:self.content_data]);
//        //[self.editorTable reloadData ];
//        [self.editorTable reloadData];
//        return;
//    }
    
    NSMutableDictionary* upparams = [self check_cancommit:false];
//    if(self.cancommit==false)
//        return;
    
    if([upparams[@"shipping"] isEqualToString:@"Shipping To Be Quoted"])
        upparams[@"shipping"] = nil;
    
    
    UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Saving Order"];
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        
        NSDictionary* editor_json = [iSalesNetwork save_Order:upparams];
        
        dispatch_async(dispatch_get_main_queue(), ^{
            [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
            
            
            if([[editor_json valueForKey:@"result"] intValue]==2)
            {
                
                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                
                
                
                NSMutableDictionary * customerInfo=[self create_cusromer_info_from_table];
                
                
                if(appDelegate.user_type ==USER_ROLE_EMPLOYEE)
                {
                appDelegate.customerInfo = customerInfo;
                appDelegate.contact_id = [customerInfo valueForKey:@"customer_cid"];
                }
                NSString *msg = nil;
                if ([editor_json objectForKey:@"so#"]) {
                    msg = [@"SO#:" stringByAppendingString:[editor_json objectForKey:@"so#"]];
                }
                [RAUtils message_alert:msg title:@"Order Saved" controller:self] ;
                
                if([appDelegate.mode isEqualToString:@"TM"]&& appDelegate.save_order_logout && appDelegate.user_type ==USER_ROLE_EMPLOYEE)
                {
                    [((MainViewController*)appDelegate.main_vc) Loginout:false];
                    [self prepareReturn:nil];
                    [self.navigationController popViewControllerAnimated:true];
                }
                
                if (appDelegate.user_type == USER_ROLE_CUSTOMER) {
                    
                    if (![Singleton sharedInstance].currentOrderIsMerged) {
                        [self releaseOrderAfterSave];
                    }
                    
                    
                }
                
                
                //                if ([[upparams valueForKey:@"close_on_save"] boolValue]) {
                //                    appDelegate.order_code = nil;
                //
                //                }
                //    //     self.labelContact.text=appDelegate.contact_name;
                //
                //    NSDictionary * customerinfo = appDelegate.customerInfo;
                // [self prepareReturn:nil];
                //                [self.navigationController dismissViewControllerAnimated:true completion:^{
                //
                //
                //                    ;
                //                }];
                
            }
            else
            {
                [RAUtils message_alert:[editor_json valueForKey:@"err_msg"] title:@"Save Order" controller:self] ;
            }
            
            
            
            
        });
    });
    
}



- (void)textFieldDidEndEditing:(UITextField *)textField
{
    
    [super textFieldDidEndEditing:textField];
    
    UITableViewCell *cell = (UITableViewCell *) textField.superview.superview;
    NSIndexPath *   indexPath = [self.editorTable indexPathForCell:cell];
    
    
    NSMutableDictionary* section_json=nil;
    
    
    //    DebugLog(@"endedit %d_%d",indexPath.section,indexPath.row);
    NSMutableDictionary* item_json =[((NSMutableArray*)self.content_data_control[indexPath.section])[indexPath.row] mutableCopy];
    
    
    NSString* name = [item_json valueForKey:@"name"];
    
    if([name isEqualToString:@"shipping"]|| [name isEqualToString:@"handling_fee_value"]||[name isEqualToString:@"lift_gate_value"]||[name isEqualToString:@"tax_percentage"])
    {
        float shipping = [self getprice:@"shipping" section:indexPath.section];
        float paymentsAndCredits = [self getprice:@"paymentsAndCredits" section:indexPath.section];
        float handling_fee_value = [self getprice:@"handling_fee_value" section:indexPath.section];
        float lift_gate =[self getprice:@"lift_gate_value" section:indexPath.section];
        float tax = [self getprice:@"tax_percentage" section:indexPath.section]/100.0*paymentsAndCredits;
        float totalprice=shipping+paymentsAndCredits+handling_fee_value+lift_gate+tax;
        
        section_json = [[self.content_data_download objectForKey:[NSString stringWithFormat:@"section_%ld",(long)indexPath.section ]] mutableCopy];
        int count=0;
        
        count=[[section_json valueForKey:@"count"] intValue];
        
        int total_row_idx=-1;
        
        for(int i=0;i<count;i++)
        {
            NSDictionary * olditem=[[section_json objectForKey:[NSString stringWithFormat:@"item_%d",i ]] mutableCopy];
            if([[olditem valueForKey:@"name"] isEqualToString:@"totalPrice" ])
            {
                [olditem setValue:[NSString stringWithFormat:@"%.2f",totalprice] forKey:@"value"];
                [olditem setValue:@"true" forKey:@"dirty"];
                [section_json setObject:olditem  forKey:[NSString stringWithFormat:@"item_%d",i ]];
                
                total_row_idx=i;
                
            }
            
        }
        
        [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(total_row_idx>=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;i<count;i++)
    {
        NSDictionary * olditem=[[section_json objectForKey:[NSString stringWithFormat:@"item_%d",i ]] mutableCopy];
        if([[olditem valueForKey:@"name"] isEqualToString:name])
        {
            return [[olditem valueForKey:@"value"] floatValue];
            
        }
        
    }
    
    return 0;
}
/*
 #pragma mark - Navigation
 
 // In a storyboard-based application, you will often want to do a little preparation before navigation
 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
 // Get the new view controller using [segue destinationViewController].
 // Pass the selected object to the new view controller.
 }
 */
#pragma mark - UIAlertViewDelegate
// Called when a button is clicked. The view will be automatically dismissed after this call returns
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    
    if(buttonIndex!=alertView.cancelButtonIndex && alertView.tag == SUBMIT_CONFIRM)
    {
        // add params check here.
        [self.lastedit endEditing:true];
        [self.lasttextview endEditing:true];
        
        

//        self.cancommit=true;
//        NSMutableDictionary* upparams=[[NSMutableDictionary alloc] init];
//        [upparams setValue:[self.params valueForKey:@"cart2Checkbox"] forKey:@"cart2Checkbox"];
//        int section_count=[[self.content_data_download valueForKey:@"section_count"] intValue];
//        for(int i=0;i<section_count;i++)
//        {
//            NSMutableDictionary * sectionjson = [[self.content_data_download objectForKey:[NSString stringWithFormat:@"section_%d",i ]] mutableCopy];
//            int item_count = [[sectionjson valueForKey:@"count"] intValue];
//            for(int j=0;j<item_count;j++)
//            {
//                NSMutableDictionary * itemjson=[[sectionjson objectForKey:[NSString stringWithFormat:@"item_%d",j ]] mutableCopy];
//                NSString* key = [itemjson valueForKey:@"name"];
//                if(key==nil || key.length==0)
//                    continue;
//                if([[itemjson valueForKey:@"control"] isEqualToString:@"enum"])
//                {
//                    NSString* single_select = [itemjson valueForKey:@"single_select"];
//                    if([single_select isEqualToString:@"true"])
//                    {
//                        NSDictionary* cadejson=[itemjson objectForKey:@"cadedate"];
//                        int count = [[cadejson valueForKey:@"count"] intValue];
//                        bool setvalue = false;
//                        for(int cc=0;cc<count;cc++)
//                        {
//                            NSDictionary* valjson=[cadejson objectForKey:[NSString stringWithFormat:@"val_%d",cc]];
//                            if([[valjson valueForKey:@"check"]intValue]==1)
//                            {
//                                [upparams setValue:[valjson valueForKey:@"value_id"] forKey:[itemjson valueForKey:@"name"]];
//                                setvalue=true;
//                                break;
//                            }
//                        }
//                        if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] && setvalue==false)
//                        {
//                            self.cancommit = false;
//                        }
//                    }
//                    else
//                    {
//                        //not support multi select for now;
//                    }
//                    /*
//                     upparams setValue:itemjson forKey:<#(NSString *)#>
//                     
//                     */
//                }else
//                    if([[itemjson valueForKey:@"control"] isEqualToString:@"action"])
//                    {
//                        if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] && [itemjson objectForKeyedSubscript:@"data"]==nil)
//                            self.cancommit = false;
//                    }
//                    else if([[itemjson valueForKey:@"control"] isEqualToString:@"signature"])
//                    {
//                        if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] && [itemjson objectForKeyedSubscript:@"value"] ==nil)
//                            self.cancommit = false;
//                        
//                        NSString* valuestr = [itemjson valueForKey:@"value"];
//                        [upparams setValue:valuestr forKey:[itemjson valueForKey:@"name"]];
//                    }
//                    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];
//                            
//                        }
//                        else
//                        {
//                            boolitem =[[itemjson objectForKey:@"false"] mutableCopy];
//                            
//                        }
//                        subjson=[[boolitem objectForKey:@"sub_item"] mutableCopy];
//                        if( subjson!=nil /*&& !active*/)
//                        {
//                            int sub_count = [[subjson valueForKey:@"count"] intValue];
//                            for(int l=0;l<sub_count;l++)
//                            {
//                                NSMutableDictionary * modify_item=[[subjson objectForKey:[NSString stringWithFormat:@"item_%d",l ]] mutableCopy];
//                                
//                                
//                                
//                                
//                                if([modify_item valueForKey:@"value"]!=nil && ![[modify_item valueForKey:@"value"]isEqualToString:@""])
//                                    [upparams setValue:[modify_item valueForKey:@"value"] forKey:[modify_item valueForKey:@"name"]];
//                                else
//                                {
//                                    if([[modify_item valueForKey:@"required"] isEqualToString: @"true"] )
//                                        self.cancommit = false;
//                                }
//                            }
//                            
//                            
//                            
//                        }
//                    }
//                    else
//                    {
//                        if([itemjson valueForKey:@"value"]!=nil && ![[itemjson valueForKey:@"value"]isEqualToString:@""])
//                            [upparams setValue:[itemjson valueForKey:@"value"] forKey:[itemjson valueForKey:@"name"]];
//                        else
//                        {
//                            if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] )
//                                self.cancommit = false;
//                        }
//                    }
//                upparams= [self subitem_param:itemjson addto:upparams ];
//            }
//        }
//        if(self.cancommit==false)
//        {
//            [RAUtils alert_view:@"Fields with * mark cannot be empty." title:@"Some Requried Fields Are Missing."];
//            self.content_data_control = [self translate_json:self.content_data_download changed:self.changed_data];
//            //DebugLog(@"CONTENT translate:%@",[iSalesNetwork DataTOjsonString:self.content_data]);
//            //[self.editorTable reloadData ];
//            [self.editorTable reloadData];
//            //  [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
//            return;
//        }
        
        NSMutableDictionary* upparams = [self check_cancommit:true];
        if(self.cancommit==false)
            return;
        
        if(upparams[@"shipping"]==nil)
            goto commit_order;
        if([upparams[@"shipping"] isEqualToString:@"Shipping To Be Quoted"])
        {
            upparams[@"shipping"] = nil;
            goto commit_order;
        }
        else if([upparams[@"shipping"] doubleValue]==0)
        {
            
            
            UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Shipping is $0.00, continue submit?" message:nil preferredStyle:UIAlertControllerStyleAlert];
            //block代码块取代了delegate
            
            
            
            UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action)
                                        {
                                            
                                            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                                            
                                            if(appDelegate.user_type ==USER_ROLE_EMPLOYEE )
                                            {
                                                
                                                if(/*!self.have_tail*/ true)
                                                {UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Submit Order"];
                                                    [upparams setValue:@"false" forKey:@"isHold"];
                                                    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                                        
                                                        NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
                                                        
                                                        dispatch_async(dispatch_get_main_queue(), ^{
                                                            [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                                                            
                                                            
                                                            if([[editor_json valueForKey:@"result"] intValue]==2)
                                                            {
                                                                //          NSMutableDictionary * customerInfo=[self create_cusromer_info_from_table];
                                                                
                                                                // debug aaa
                                                                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                                                                NSString* company= appDelegate.customerInfo[@"customer_name"];
                                                                NSString* send_to =appDelegate.customerInfo[@"customer_email"];
                                                                
                                                                //                                appDelegate.customerInfo = customerInfo;
                                                                //                                appDelegate.contact_id = [customerInfo valueForKey:@"customer_cid"];
                                                                //                                appDelegate.order_code = nil;
                                                                [appDelegate closeOrder];
                                                                [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
                                                                
                                                                NSString* title=nil;
                                                                NSString* msg=nil;
                                                                if(appDelegate.offline_mode)
                                                                {
                                                                    title=TITLE_OFFLINE_SUBMIT;
                                                                    msg=MSG_OFFLINE_SUBMIT;
                                                                }
                                                                else
                                                                {
                                                                    title=@"Submit successful.";
                                                                    msg=[NSString stringWithFormat:@"SO#: %@",[editor_json valueForKey:@"so#"]];
                                                                }
                                                                
                                                                UIAlertView * alert = [[UIAlertView alloc] initWithTitle: title message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                                                                
                                                                [alert show];
                                                                
                                                                NSString* pdf_url = [editor_json valueForKey:@"pdf_url"];
                                                                NSString* email_content =[editor_json valueForKey:@"email_content"];
                                                                NSString* soid=[editor_json valueForKey:@"so#"];
//                                                                if(pdf_url.length>0)
//                                                                {
//                                                                    
//                                                                    [alert dismissWithClickedButtonIndex:0 animated:FALSE];
//                                                                    //[self downloadpdf:pdf_url];
//                                                                    
//                                                                    
//                                                                    if([appDelegate.mode isEqualToString:@"Trade Show Mode"]&& appDelegate.submit_order_logout)
//                                                                    {
//                                                                        //bbb
//                                                                        [((MainViewController*)appDelegate.main_vc) Loginout:false];
//                                                                    }
//                                                                    
//                                                                    [self prepareReturn:nil];
//                                                                    
//                                                                    [self.navigationController popViewControllerAnimated:true];
//                                                                    
//                                                                    [appDelegate printPdf:pdf_url];
////                                                                    if(self.printPdfCallback)
////                                                                        self.printPdfCallback(pdf_url);
//                                                                }
//                                                                else
                                                                {
                                                                    if([appDelegate.mode isEqualToString:@"TM"]&& appDelegate.submit_order_logout)
                                                                    {
                                                                        //bbb
                                                                        [((MainViewController*)appDelegate.main_vc) Loginout:false];
                                                                    }
                                                                    [self prepareReturn:nil];
                                                                    
                                                                    [self.navigationController popViewControllerAnimated:true];
                                                                    
                                                                    if(pdf_url.length>0)
                                                                    {
                                                                        
                                                                        [alert dismissWithClickedButtonIndex:0 animated:FALSE];
                                                                        [appDelegate printPdf:pdf_url company:company send_to:send_to soid:soid content:email_content];
                                                                      //  [appDelegate printPdf:pdf_url];
                                                                        
                                                                    }
                                                                }
                                                                
                                                            }
                                                            else
                                                            {
                                                                [RAUtils message_alert:[editor_json valueForKey:@"err_msg"] title:@"Submit Order" controller:self] ;
                                                            }
                                                            
                                                            
                                                            
                                                            
                                                        });
                                                    });
                                                }
                                                else
                                                {
                                                    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Retain models", nil) message:NSLocalizedString(@"There are some models left in cart，do you want to keep them?", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil];
                                                    
                                                    
                                                    alert.tag = KEEP_TAIL;
                                                    
                                                    
                                                    self.upparams = upparams;
                                                    
                                                    [alert show];
                                                }
                                                
                                            }
                                            else
                                            { //USER_ROLE_CUSTOMER
                                                
                                                //            if(self.have_tail)
                                                //            [upparams setValue:@"true" forKey:@"isHold"];
                                                //            else
                                                //                [upparams setValue:@"false" forKey:@"isHold"];
                                                UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Submit Order"];
                                                
                                                [upparams setValue:@"true" forKey:@"isHold"];
                                                dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                                                    
                                                    NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
                                                    
                                                    dispatch_async(dispatch_get_main_queue(), ^{
                                                        
                                                        [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                                                        
                                                        if([[editor_json valueForKey:@"result"] intValue]==2)
                                                        {
                                                            //       NSMutableDictionary * customerInfo=[self create_cusromer_info_from_table];
                                                            
                                                            
                                                            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                                                            // appDelegate.customerInfo = customerInfo;
                                                            
//                                                            NSString* orderCode = [editor_json valueForKey:@"orderCode"];
//                                                            appDelegate.order_code = orderCode;
//                                                            appDelegate.order_status = [[editor_json valueForKey:@"orderStatus"] intValue];
                                                            [appDelegate closeOrder];
                                                            [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
                                                            
                                                            NSString* title=nil;
                                                            NSString* msg=nil;
                                                            if(appDelegate.offline_mode)
                                                            {
                                                                title=TITLE_OFFLINE_SUBMIT;
                                                                msg=MSG_OFFLINE_SUBMIT;
                                                            }
                                                            else
                                                            {
                                                                title=@"Submit successful.";
                                                                msg=[NSString stringWithFormat:@"SO#: %@",[editor_json valueForKey:@"so#"]];
                                                            }
                                                            
                                                            UIAlertView * alert = [[UIAlertView alloc] initWithTitle: title message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                                                            
                                                            [alert show];
                                                            //    //     self.labelContact.text=appDelegate.contact_name;
                                                            //
                                                            //    NSDictionary * customerinfo = appDelegate.customerInfo;
                                                            [self prepareReturn:nil];
                                                            [self.navigationController popViewControllerAnimated:true];
                                                            //                                    [self.navigationController dismissViewControllerAnimated:true completion:^{
                                                            //
                                                            //
                                                            //                                        ;
                                                            //                                    }];
                                                            
                                                        }
                                                        else
                                                        {
                                                            [RAUtils message_alert:[editor_json valueForKey:@"err_msg"] title:@"Submit Order" controller:self] ;
                                                        }
                                                        
                                                        
                                                        
                                                        
                                                    });
                                                });
                                                
                                            }
                                            
                                            
                                            
                                        }];
            
            UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"No" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
                //DebugLog(@"Cancel");
                
                
            }];
            [alertControl addAction:actionOne];
            
            [alertControl addAction:alertthree];
            
            //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
            
            
            
            
            [self presentViewController:alertControl animated:YES completion:nil];
            
            
            
        }
        else
        {
        commit_order:
            
            {
                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                
                if(appDelegate.user_type ==USER_ROLE_EMPLOYEE )
                {
                    
                    if(/*!self.have_tail*/ true)
                    {UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Submit Order"];
                        [upparams setValue:@"false" forKey:@"isHold"];
                        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                            
                            NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
                            
                            dispatch_async(dispatch_get_main_queue(), ^{
                                [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                                
                                
                                if([[editor_json valueForKey:@"result"] intValue]==2)
                                {
                                    
                                    //debug bbb
                                    //    NSMutableDictionary * customerInfo=[self create_cusromer_info_from_table];
                                    
                                    
                                    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                                    NSString* company= appDelegate.customerInfo[@"customer_name"];
                                    NSString* send_to =appDelegate.customerInfo[@"customer_email"];
                                    //                                appDelegate.customerInfo = customerInfo;
                                    //                                appDelegate.contact_id = [customerInfo valueForKey:@"customer_cid"];
                                    //                                appDelegate.order_code = nil;
                                    [appDelegate closeOrder];
                                    [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
                                    
                                    NSString* title=nil;
                                    NSString* msg=nil;
                                    if(appDelegate.offline_mode)
                                    {
                                        title=TITLE_OFFLINE_SUBMIT;
                                        msg=MSG_OFFLINE_SUBMIT;
                                    }
                                    else
                                    {
                                        title=@"Submit successful.";
                                        msg=[NSString stringWithFormat:@"SO#: %@",[editor_json valueForKey:@"so#"]];
                                    }
                                    
                                    UIAlertView * alert = [[UIAlertView alloc] initWithTitle: title message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                                    
                                    [alert show];
                                    
                                    NSString* pdf_url = [editor_json valueForKey:@"pdf_url"];
                                    NSString* email_content =[editor_json valueForKey:@"email_content"];
                                    NSString* soid=[editor_json valueForKey:@"so#"];
//                                    if(pdf_url.length>0)
//                                    {
//                                        
//                                        [alert dismissWithClickedButtonIndex:0 animated:FALSE];
////                                        [self downloadpdf:pdf_url];
//                                        
//                                        
//                                        if([appDelegate.mode isEqualToString:@"Trade Show Mode"]&& appDelegate.submit_order_logout)
//                                        {
//                                            //bbb
//                                            [((MainViewController*)appDelegate.main_vc) Loginout:false];
//                                        }
//                                        
//                                        [self prepareReturn:nil];
//                                        
//                                        [self.navigationController popViewControllerAnimated:true];
//                                        
//                                        [appDelegate printPdf:pdf_url];
//                                        
////                                        if(self.printPdfCallback)
////                                            self.printPdfCallback(pdf_url);
//                                    }
//                                    else
                                    {
                                        if([appDelegate.mode isEqualToString:@"TM"]&& appDelegate.submit_order_logout)
                                        {
                                            //bbb
                                            [((MainViewController*)appDelegate.main_vc) Loginout:false];
                                        }
                                        [self prepareReturn:nil];
                                        
                                        [self.navigationController popViewControllerAnimated:true];
                                        
                                        
                                        if(pdf_url.length>0)
                                        {
                                            
                                            [alert dismissWithClickedButtonIndex:0 animated:FALSE];
                                            
                                            [appDelegate printPdf:pdf_url company:company send_to:send_to soid:soid content:email_content];
                                          
                                           
                                        }
                                        
                                        
                                    }
                                    //    //     self.labelContact.text=appDelegate.contact_name;
                                    //
                                    //    NSDictionary * customerinfo = appDelegate.customerInfo;
                                    
                                    
                                    
                                    
                                    
                                    
                                }
                                else
                                {
                                    [RAUtils message_alert:[editor_json valueForKey:@"err_msg"] title:@"Submit Order" controller:self] ;
                                }
                                
                                
                                
                                
                            });
                        });
                    }
                    else
                    {
                        UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Retain models", nil) message:NSLocalizedString(@"There are some models left in cart，do you want to keep them?", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil];
                        
                        
                        alert.tag = KEEP_TAIL;
                        
                        
                        self.upparams = upparams;
                        
                        [alert show];
                    }
                    
                }
                else
                { //USER_ROLE_CUSTOMER
                    
                    //            if(self.have_tail)
                    //            [upparams setValue:@"true" forKey:@"isHold"];
                    //            else
                    //                [upparams setValue:@"false" forKey:@"isHold"];
                    UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Submit Order"];
                    
                    [upparams setValue:@"true" forKey:@"isHold"];
                    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                        
                        NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:upparams];
                        
                        dispatch_async(dispatch_get_main_queue(), ^{
                            
                            [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                            
                            if([[editor_json valueForKey:@"result"] intValue]==2)
                            {
                                //       NSMutableDictionary * customerInfo=[self create_cusromer_info_from_table];
                                
                                
                                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                                // appDelegate.customerInfo = customerInfo;
                                
//                                NSString* orderCode = [editor_json valueForKey:@"orderCode"];
//                                appDelegate.order_code = orderCode;
//                                appDelegate.order_status = [[editor_json valueForKey:@"orderStatus"] intValue];
                                [appDelegate closeOrder];
                                [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
                                
                                NSString* title=nil;
                                NSString* msg=nil;
                                if(appDelegate.offline_mode)
                                {
                                    title=TITLE_OFFLINE_SUBMIT;
                                    msg=MSG_OFFLINE_SUBMIT;
                                }
                                else
                                {
                                    title=@"Submit successful.";
                                    msg=[NSString stringWithFormat:@"SO#: %@",[editor_json valueForKey:@"so#"]];
                                }
                                
                                
                                UIAlertView * alert = [[UIAlertView alloc] initWithTitle: title message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                                
                                [alert show];
                                //    //     self.labelContact.text=appDelegate.contact_name;
                                //
                                //    NSDictionary * customerinfo = appDelegate.customerInfo;
                                [self prepareReturn:nil];
                                //                            [self.navigationController dismissViewControllerAnimated:true completion:^{
                                //
                                //
                                //                                ;
                                //                            }];
                                [self.navigationController popViewControllerAnimated:true];
                                
                            }
                            else
                            {
                                [RAUtils message_alert:[editor_json valueForKey:@"err_msg"] title:@"Submit Order" controller:self] ;
                            }
                            
                            
                            
                            
                        });
                    });
                    
                }
            }
            
            
            
            
        }
        
        
        
        
        
        
        
        
        
        
        
    }
    
    //    else if( alertView.tag == KEEP_TAIL)
    //    {UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Submit Order"];
    //        if(buttonIndex!=alertView.cancelButtonIndex)
    //        {//keep tail;
    //
    //            [self.upparams setValue:@"true" forKey:@"isHold"];
    //            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //
    //                NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:self.upparams];
    //
    //                dispatch_async(dispatch_get_main_queue(), ^{
    //                    [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
    //
    //
    //                    if([[editor_json valueForKey:@"result"] intValue]==2)
    //                    {
    //                        NSMutableDictionary * customerInfo=[self create_cusromer_info_from_table];
    //                        UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @"Submit successful." message:[NSString stringWithFormat:@"SO#: %@",[editor_json valueForKey:@"so#"]] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    //
    //                        [alert show];
    //
    //                        AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
    //                        appDelegate.customerInfo = customerInfo;
    //                        appDelegate.contact_id = [customerInfo valueForKey:@"customer_cid"];
    //                        NSString* orderCode = [editor_json valueForKey:@"orderCode"];
    //                        appDelegate.order_code = orderCode;
    //                        [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
    //                        //    //     self.labelContact.text=appDelegate.contact_name;
    //                        //
    //                        //    NSDictionary * customerinfo = appDelegate.customerInfo;
    //                        [self prepareReturn:nil];
    ////                        [self.navigationController dismissViewControllerAnimated:true completion:^{
    ////
    ////
    ////                            ;
    ////                        }];
    //                        [self.navigationController popViewControllerAnimated:true];
    //
    //                    }
    //                    else
    //                    {
    //                        [RAUtils message_alert:[editor_json valueForKey:@"err_msg"]  title:@"Submit Order" controller:self] ;
    //                    }
    //
    //
    //
    //
    //                });
    //            });
    //        }
    //        else
    //        {// not keep tail;
    //            [self.upparams setValue:@"false" forKey:@"isHold"];
    //            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //
    //                NSDictionary* editor_json = [iSalesNetwork saveandcommit_Order:self.upparams];
    //
    //                dispatch_async(dispatch_get_main_queue(), ^{
    //                    [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
    //
    //
    //                    if([[editor_json valueForKey:@"result"] intValue]==2)
    //                    {
    //                        //    NSMutableDictionary * customerInfo=[self create_cusromer_info_from_table];
    //                        UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @"Submit successful." message:[NSString stringWithFormat:@"SO#: %@",[editor_json valueForKey:@"so#"]] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    //
    //                        [alert show];
    //
    //                        AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
    //                        //                        appDelegate.customerInfo = customerInfo;
    //                        //                        appDelegate.contact_id = [customerInfo valueForKey:@"customer_cid"];
    //                        //                        appDelegate.order_code = nil;
    //                        [appDelegate closeOrder];
    //                        [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
    //                        //    //     self.labelContact.text=appDelegate.contact_name;
    //                        //
    //                        //    NSDictionary * customerinfo = appDelegate.customerInfo;
    //                        [self prepareReturn:nil];
    ////                        [self.navigationController dismissViewControllerAnimated:true completion:^{
    ////
    ////
    ////                            ;
    ////                        }];
    //                        [self.navigationController popViewControllerAnimated:true];
    //
    //                    }
    //                    else
    //                    {
    //                        [RAUtils message_alert:[editor_json valueForKey:@"err_msg"] title:@"Submit Order" controller:self] ;
    //                    }
    //
    //
    //
    //
    //                });
    //            });
    //        }
    //    }
    else if(alertView.tag == CLOSE_ACTION)
    {
        if(buttonIndex==1)
        {
            
            [self.navigationController popViewControllerAnimated:true];
            // back to cart;
            //            [self.navigationController dismissViewControllerAnimated:true completion:^{
            //                ;
            //            }];
            //    if ([[upparams valueForKey:@"close_on_save"] boolValue]) {
            //        appDelegate.order_code = nil;
            //
            //    }
        }
        if(buttonIndex==2)
        {
            
            [self.navigationController popViewControllerAnimated:true];
            
            
            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
            
            [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
            [((MainViewController*)appDelegate.main_vc) switchToOrder];
            // back to cart;
            //            [self.navigationController dismissViewControllerAnimated:true completion:^{
            //                ;
            //            }];
            //    if ([[upparams valueForKey:@"close_on_save"] boolValue]) {
            //        appDelegate.order_code = nil;
            //
            //    }
        }
        else if(buttonIndex==3)
        {
            // close order;
            
            
            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
            UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Release Order"];
            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                
                NSDictionary* order_json = [iSalesNetwork release_Order:appDelegate.order_code];
                
                dispatch_async(dispatch_get_main_queue(), ^{
                    [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                    if([[order_json valueForKey:@"result"] intValue]==2)
                    {
                        AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                        //                        appDelegate.order_code = nil;
                        
                        [appDelegate closeOrder];
                        [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
                        [((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] ;
                    }
                    
                    
                    
                });
            });
            
            
            
            
            
            //
            //    }
        }
    }
}
//
//
//-(void) downloadpdf:(NSString* )url
//{
//    UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Printing..."];
//    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//        
//        
//        NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url]        cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60*5];
//        
//        //设置请求方式为get
//        
//        [request setHTTPMethod:@"GET"];
//        
//        //添加用户会话id
//        
//        [request addValue:@"text/html" forHTTPHeaderField:@"Content-Type"];
//        
//        //连接发送请求
//        
//        
//        NSHTTPURLResponse* urlResponse = nil;
//        
//        NSError *error = [[NSError alloc] init];
//        
//        NSData* content= [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
//        
//        //      self.filename = [urlResponse suggestedFilename];
//        
//        
//        dispatch_async(dispatch_get_main_queue(), ^{
//            [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
//            //  self.navigationItem.title = self.save_name;
//            //   UIRefreshControl *reF = (UIRefreshControl *)[self.view viewWithTag:200];
//            //  self.content=nil;
//            if(content!=nil&&content.length>0)
//            {
//                
//                
//                [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<UIPrintPaper *> *)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 {
    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];

    [iSalesNetwork release_Order:appDelegate.order_code];

    [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];
    
}

@end
