// // OrderDetailViewController.m // RedAnt ERP Mobile // // Created by Ray on 8/28/15. // Copyright (c) 2015 United Software Applications, Inc. All rights reserved. // #import "OrderDetailViewController.h" #import "OrderDetailInfoCell.h" #import "OrderDetailHtmlCell.h" #import "OrderDetailModelCell.h" #import "OrderDetailPriceCell.h" #import "iSalesNetwork.h" #import "RTLabel.h" #import "DetailViewController.h" #import "PDFViewController.h" #import "MainViewController.h" #define DEF_CELL_HEIGHT 44 #define DEF_TABLE_HEIGHT 44 #define LINE_WIDTH 0 #define CELL_MARGIN 0 #define LABEL_MARGIN 15 @interface OrderDetailViewController () @end @implementation OrderDetailViewController - (void)onBackClick:(UIButton *)sender { [self.navigationController popViewControllerAnimated:FALSE]; } -(void)manually_refresh { UIRefreshControl *reF = (UIRefreshControl *)[self.view viewWithTag:200]; if(self.isrefreshing) { [reF endRefreshing]; return; } reF.attributedTitle = [[NSAttributedString alloc]initWithString:@"Refreshing"]; if ([self respondsToSelector:@selector(reload_data)]) [self performSelector:@selector(reload_data) withObject:nil afterDelay:1]; // DebugLog(@"refresh!!!!!!!!"); } -(void) reload_data { UIRefreshControl *reF = (UIRefreshControl *)[self.view viewWithTag:200]; [reF endRefreshing]; reF.attributedTitle = [[NSAttributedString alloc]initWithString:@"Pull to refresh"]; [self loaddata]; } - (void)viewDidLoad { [super viewDidLoad]; self.label_net_err.layer.borderColor = [UIColor darkGrayColor].CGColor; self.label_net_err.layer.borderWidth = 2.0; self.label_net_err.layer.cornerRadius=15; self.label_net_err.layer.masksToBounds=true; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(refresh_btn_click:)]; // tap.minimumPressDuration = 0.8; //定义按的时间 [self.label_net_err addGestureRecognizer:tap]; UIRefreshControl *ref = [[UIRefreshControl alloc]init]; ref.tag = 200 ; ref.attributedTitle = [[NSAttributedString alloc]initWithString:@"Pull to refresh"]; ref.tintColor = [UIColor colorWithRed:0.10 green:0.68 blue:0.94 alpha:0.7]; // ref.hidden = true; [ref addTarget:self action:@selector(manually_refresh) forControlEvents:UIControlEventValueChanged]; [self.detailTable addSubview:ref]; NSMutableArray * items = [[NSMutableArray alloc]init]; self.navigationItem.title=@"View Order Detail"; UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"back"] imageWithRenderingMode:UIImageRenderingModeAutomatic] style:UIBarButtonItemStylePlain target:self action:@selector( onBackClick:)]; closeButton.tintColor = UIColorFromRGB(0x996633); self.navigationItem.leftBarButtonItem = closeButton; self.btnOpen = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"edit"] imageWithRenderingMode:UIImageRenderingModeAutomatic] style:UIBarButtonItemStylePlain target:self action:@selector(onOpenOrderClick:)];//[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Edit", nil) style:UIBarButtonItemStylePlain target:self action:@selector(onOpenOrderClick:)]; self.btnOpen.tintColor = UIColorFromRGB(0x996633); self.btnCommit =[[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"commit"] imageWithRenderingMode:UIImageRenderingModeAutomatic] style:UIBarButtonItemStylePlain target:self action:@selector(onCommitOrderClick:)];// [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Commit", nil) style:UIBarButtonItemStylePlain target:self action:@selector(onCommitOrderClick:)]; self.btnCommit.tintColor = UIColorFromRGB(0x996633); // self.btnSend = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Email", nil) style:UIBarButtonItemStylePlain target:self action:@selector(onSendMailClick:)]; self.btnRelease = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"unlock"] imageWithRenderingMode:UIImageRenderingModeAutomatic] style:UIBarButtonItemStylePlain target:self action:@selector(onReleaseOrderClick:)]; self.btnRelease.tintColor = UIColorFromRGB(0x996633); self.btnPDF = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"sales_order"] imageWithRenderingMode:UIImageRenderingModeAutomatic] style:UIBarButtonItemStylePlain target:self action:@selector(onDownloadOrderClick:)];//[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Download", nil) style:UIBarButtonItemStylePlain target:self action:@selector(onDownloadOrderClick:)]; self.btnPDF.tintColor = UIColorFromRGB(0x996633); // UIBarButtonItem *item1 = [[UIBarButtonItem alloc] init]; // item1.title = @"item1"; //// item1.image = [UIImage imageNamed:@"rect_setting"]; // UIBarButtonItem *item2 = [[UIBarButtonItem alloc] init]; //// item2.image = [UIImage imageNamed:@"rect_about"]; // item2.title = @"item2"; UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; fixedItem.width = 0.0f; [items addObject:self.btnOpen]; [items addObject:fixedItem]; // [items addObject:self.btnCommit]; // [items addObject:fixedItem]; [items addObject:self.btnRelease]; [items addObject:fixedItem]; [items addObject:self.btnPDF]; // [items addObject:item2]; self.navigationItem.rightBarButtonItems=items; self.btnOpen.enabled =false; self.btnCommit.enabled =false; self.btnPDF.enabled =false; self.btnRelease.enabled =false; // if(self.isTempOrder) // { // // // self.btnOpen.enabled =true; // // // self.btnCommit.enabled =true; // } // else // { // // [self.btnOpen setImage:[[UIImage imageNamed:@"edit"] imageWithRenderingMode:UIImageRenderingModeAutomatic]]; // // [self.btnCommit setImage:[[UIImage imageNamed:@"commit"] imageWithRenderingMode:UIImageRenderingModeAutomatic]]; // self.btnOpen.enabled =false; // self.btnCommit.enabled =false; // } // Do any additional setup after loading the view. } - (IBAction)onReleaseOrderClick:(id)sender { UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Are you sure to release order?" message:nil preferredStyle:UIAlertControllerStyleAlert]; //block代码块取代了delegate UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) { 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:self.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]; // appDelegate.customerInfo=[[self.content_data objectForKey:@"customerInfo"] mutableCopy]; // // appDelegate.contact_id=[appDelegate.customerInfo valueForKey:@"customer_cid"]; // if(self.selectOrder) // self.selectOrder(); [self.navigationController popToRootViewControllerAnimated:false]; } else { [RAUtils message_alert:[order_json valueForKey:@"err_msg"] title:@"Open Order" controller:self] ; } }); }); }]; UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"No" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) { NSLog(@"Cancel"); }]; [alertControl addAction:actionOne]; [alertControl addAction:alertthree]; //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField) [self presentViewController:alertControl animated:YES completion:nil]; // get customer info } - (void)onDownloadOrderClick:(id)sender { // get customer info NSString* url=[self.content_data valueForKey:@"pdfUrl"]; NSLog(@"pdf url:%@",url); PDFViewController *ViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PDFViewController"]; ViewController.url = url; ViewController.mail_content = [self.content_data valueForKey:@"email_content"]; NSString* so = [self.content_data valueForKey:@"so#"]; if(so==nil) so =@""; NSString* company = [self.content_data[@"customerInfo"] valueForKey:@"customer_name"]; if(company==nil) company =@""; ViewController.save_name =so; // AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; // NSString* company= [appDelegate.customerInfo valueForKey:@"customer_name"]; // NSString* cid= [appDelegate.customerInfo valueForKey:@"customer_cid"]; // if(cid==nil) // cid=@""; if(company==nil) company=@""; NSString* customer_email= [self.content_data[@"customerInfo"] valueForKey:@"customer_email"]; NSMutableArray* arr_subject = [[NSMutableArray alloc]init]; if(company.length>0) [arr_subject addObject:company]; if(so.length>0) [arr_subject addObject:so]; NSMutableArray* send_to = [[NSMutableArray alloc]init]; if(customer_email.length>0) { send_to=[[customer_email componentsSeparatedByString:NSLocalizedString(@";", nil)] mutableCopy]; // customer_email compo // [send_to addObject:customer_email]; } ViewController.mail_to = send_to; NSString* subject=[arr_subject componentsJoinedByString:@" : "]; // NSString* str_sendto=[send_to componentsJoinedByString:@";"]; // if (company.length==0) { // subject = @"Tear sheet"; // // } // else // { // subject = [NSString stringWithFormat:@"Tear sheet for %@",company ]; // } ViewController.mail_subject = subject; // ViewController.onSavePDF=^(NSString* name,NSString* file) // { // // NSString *path = NSTemporaryDirectory(); // NSString *temp_path = [path stringByAppendingPathComponent:file]; // // [iSalesDB save_pdf:temp_path filename:file]; // // NSString *sql = [NSString stringWithFormat: // @"INSERT INTO pdf_cache (name,file_name,c_id,c_name,o_id,pdf_type,send_to) VALUES ('%@', '%@', '%@', '%@', '%@', '%@', '%@')", // name, file,cid, company, so, @"Sales Order",str_sendto]; // // [iSalesDB execSql:sql]; // // }; // ViewController. = self.function_name; // ViewController.behavior =BEHAVIOR_SEARCH; [self.navigationController pushViewController:ViewController animated:YES]; // UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Commit confirm", nil) message:NSLocalizedString(@"Are you sure to commit order?", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil]; // [alert show]; } - (void)onCommitOrderClick:(id)sender { // get customer info int model_count = [[self.content_data valueForKey:@"model_count"] intValue]; if(model_count==0) { // UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @"Error." message:@"Can not submit an order without models." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; // // [alert show]; [RAUtils alert_view:@"Cannot submit an order without models" title:@""]; } else { UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Submit confirm", nil) message:NSLocalizedString(@"Are you sure to submit order?", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil]; [alert show]; } } - (IBAction)onOpenOrderClick:(id)sender { // get customer info UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Are you sure to open order?" message:nil preferredStyle:UIAlertControllerStyleAlert]; //block代码块取代了delegate UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) { // int count =[[self.content_data valueForKey:@"model_count"] intValue]; // if(count>0) // { // /* // // //检查赠品符合条件 // NSDictionary * freejson = [self.content_data objectForKey:@"freeGiveaway"]; // // int free_count = [[freejson valueForKey:@"count"]intValue]; // for(int ic=free_count-1;ic>=0;ic--) // { // float compare_price = [[freejson valueForKey:[NSString stringWithFormat:@"item_%d",ic]] floatValue]; // if(self.total>=compare_price && !have_free) // { // // UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Free give away available.", nil) message:[NSString stringWithFormat:@"Order total price more than %.2f, do you want to add free give away item before place order?", compare_price] delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil]; // alert.tag = ALERT_FREE; // [alert show]; // return; // // } // } // // // */ // // // NSMutableDictionary * params= [[NSMutableDictionary alloc] init]; // // NSString * string = [checked componentsJoinedByString:@","]; // // [params setValue:string forKey:@"cart2Checkbox"]; // // // // CreateOrderViewController * orderinfoVC =[ self.storyboard instantiateViewControllerWithIdentifier:@"CreateOrderViewController"]; // // // orderinfoVC.url_type = URL_REMOTE; // orderinfoVC.request_url=URL_CARTDELIVERY; // // orderinfoVC.params = params; // // orderinfoVC.delegate=self; // // // // if(checked.count==count) // // { // // orderinfoVC.have_tail = true // // } // // UINavigationController* navi = [[UINavigationController alloc] initWithRootViewController:orderinfoVC] ; // // // // // // navi.modalPresentationStyle = UIModalPresentationPageSheet;//有三种状态,自己看看是哪种 // [self presentViewController:navi animated:YES completion:^{ // // NSLog(@"CreateOrderViewController present........."); // // // self.btop = false; // // <#code#> // }]; // // } // // else { UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Open Order"]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSDictionary* order_json = [iSalesNetwork open_Order:self.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 = self.order_code; [appDelegate SetSo:[self.content_data valueForKey:@"so#"]]; appDelegate.customerInfo=[[self.content_data objectForKey:@"customerInfo"] mutableCopy]; appDelegate.contact_id=[appDelegate.customerInfo valueForKey:@"customer_cid"]; [self.navigationController popViewControllerAnimated:false]; [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false]; [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false]; if(self.selectOrder) self.selectOrder(self.content_data); } else { [RAUtils message_alert:[order_json valueForKey:@"err_msg"] title:@"Open Order" controller:self] ; } }); }); } }]; UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"No" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) { NSLog(@"Cancel"); }]; [alertControl addAction:actionOne]; [alertControl addAction:alertthree]; //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField) [self presentViewController:alertControl animated:YES completion:nil]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } -(void) loaddata { dispatch_async(dispatch_get_main_queue(), ^{ if(self.isrefreshing) return; self.detailTable.hidden = true; self.label_net_err.hidden=true; self.isrefreshing=true; self.mum.center = self.view.center; self.mum.hidden = false; [self.mum startAnimating]; NSLog(@"reloading..."); self.web_info_height=0; self.web_moreinfo_height=0; self.content_data = nil; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSDictionary* order_json = [iSalesNetwork request_OrderDetail:self.orderid]; dispatch_async(dispatch_get_main_queue(), ^{ [self.mum stopAnimating]; if([[order_json valueForKey:@"result"] intValue]==2) { self.detailTable.hidden = false; self.content_data = [order_json mutableCopy]; } else if([[order_json valueForKey:@"result"] intValue]==RESULT_NET_ERROR) { self.label_net_err.hidden=false; self.detailTable.hidden=true; } else { [RAUtils message_alert:[order_json valueForKey:@"err_msg"] title:@"Loading Order Detail" controller:self] ; } int model_count =[[self.content_data valueForKey:@"model_count"] intValue]; if(model_count>0) self.btnPDF.enabled =true; // [self.btnPDF setImage:[[UIImage imageNamed:@"download"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; NSString* status = [self.content_data valueForKey:@"order_status"]; NSString* lock_user = [self.content_data valueForKey:@"opened_customer"]; AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; if([status isEqualToString:@"SO Saved"]) { // [self.btnOpen setImage:[[UIImage imageNamed:@"edit"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; // // [self.btnCommit setImage:[[UIImage imageNamed:@"commit"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; self.btnOpen.enabled =true; if([lock_user isEqualToString:appDelegate.user]) { self.btnCommit.enabled =true; } else self.btnCommit.enabled =false; } else if([status isEqualToString:@"Quote Saved"]) { // [self.btnOpen setImage:[[UIImage imageNamed:@"edit"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; // // [self.btnCommit setImage:[[UIImage imageNamed:@"commit"] imageWithRenderingMode:UIImageRenderingModeAutomatic]]; self.btnOpen.enabled =true; self.btnCommit.enabled =false; } if([lock_user isEqualToString:appDelegate.user]) { // [self.btnRelease setImage:[[UIImage imageNamed:@"order"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; self.btnRelease.enabled =true; } else { // [self.btnRelease setImage:[[UIImage imageNamed:@"order"] imageWithRenderingMode:UIImageRenderingModeAutomatic]]; self.btnRelease.enabled =false; } [self.detailTable reloadData]; self.isrefreshing=false; }); }); }); } - (void)viewWillAppear:(BOOL)animated { [self loaddata]; AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; if(appDelegate.can_submit_order) { [self.btnCommit setImage:[UIImage imageNamed:@"commit"]]; self.btnCommit.enabled = true; } else { [self.btnCommit setImage:nil]; self.btnCommit.enabled = false; } [[self navigationController] setNavigationBarHidden:NO animated:NO]; } - (IBAction)imgbtnClicked:(UIButton*)sender { UITableViewCell* cell =(UITableViewCell*) sender.superview.superview; NSIndexPath * indexPath = [self.detailTable indexPathForCell:cell]; if(indexPath.section!=1) return ; // NSLog(@"shouldchangeedit %d_%d",indexPath.section,indexPath.row); NSDictionary * item_json = [self.content_data objectForKey:[NSString stringWithFormat:@"item_%ld",(long)indexPath.row]]; NSString* product_id = [item_json valueForKey:@"product_id"]; DetailViewController* dvc = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController" ]; // dvc dvc.product_id=product_id; dvc.category_id=nil; dvc.ispush=true; [dvc reload]; [self.navigationController pushViewController:dvc animated:true]; } /* #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 - Table view data source - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; { // NSDictionary * item_json = [self.content_data objectForKey:[NSString stringWithFormat:@"item_%ld",(long)indexPath.row]]; // if([item_json objectForKey:@"combine"] == nil) // { // return 120; // } // else // return 150; switch (indexPath.section) { case 0: { float height= self.web_info_height; if(height==0) height=DEF_TABLE_HEIGHT; // DebugLog(@"heightForRowAtIndexPath...............webview,hight = %f section=%ld",height,indexPath.section); //wait(1000); return height; // float width = tableView.frame.size.width; // width-=CELL_MARGIN*2; // CGSize constraintkey = CGSizeMake(width-2*LABEL_MARGIN, 10.0f);//key label width is 40% cell width; //// CGSize constraintval = CGSizeMake(width*0.6-2*LABEL_MARGIN, 20000.0f);//val label width is 60% cell width; // // // // // NSDictionary* item = [self.content get_item_seg:indexPath.section row:indexPath.row]; // NSString* key =[self.content_data valueForKey:@"order_info"]; // // // [cell.keyLabel sizeToFit]; //// NSString* val=[item_json valueForKey:@"val"] ; // //// if([val isEqual:[NSNull null]]) //// val=@""; //// if(val==nil) //// val=@""; //// if([val isEqualToString:@"null"]) //// val=@""; // // // // CGRect frame; // frame.size = constraintkey; // frame.origin.x=0; // frame.origin.y=0; // // RTLabel* rtlabel = [[RTLabel alloc] initWithFrame:frame]; //// [rtlabel setLineBreakMode: RTTextLineBreakModeWordWrapping]; // // rtlabel.lineSpacing = 20.0; // [rtlabel setText: key]; // CGSize optimumSize = [rtlabel optimumSize]; //// NSLog(@"%@",key); // //// [rtlabel sizeThatFits:constraintkey]; // //// rtlabel frameHeight:<#(CTFrameRef)#> //// rtlabel //// [rtlabel sizeToFit]; ////CGSize newsize= rtlabel.frame.size; //// CGSize sizeval=rtlabel.optimumSize; // // //// CGSize sizekey = [key sizeWithFont:[UIFont systemFontOfSize:17.0] constrainedToSize:constraintkey lineBreakMode:NSLineBreakByWordWrapping]; // // CGSize sizeval = [val sizeWithFont:[UIFont systemFontOfSize:17.0] constrainedToSize:constraintval lineBreakMode:NSLineBreakByWordWrapping]; // float height = optimumSize.height; // height = MAX(height+LINE_WIDTH+2*LABEL_MARGIN, DEF_CELL_HEIGHT); // // // return height; } break; case 1: { float height= self.web_moreinfo_height; if(height==0) height=DEF_TABLE_HEIGHT; // DebugLog(@"heightForRowAtIndexPath...............webview,hight = %f section=%ld",height,indexPath.section); //wait(1000); return height; } break; case 2: return 162; case 3: return 44; default: break; } return 44; } //- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section //{ // return 0; //} //- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section //{ // return 0; //} //- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section //{ // UIView* myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 0.0001)]; // return myView; // //} //- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section //{ // UIView* myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 0.0001)]; //// myView.backgroundColor = [UIColor colorWithRed:0.10 green:0.68 blue:0.94 alpha:0.7]; //// UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 90, 22)]; //// titleLabel.textColor=[UIColor whiteColor]; //// titleLabel.backgroundColor = [UIColor clearColor]; //// if(section==0) //// titleLabel.text=NSLocalizedString(@"display_items", nil); //// else //// titleLabel.text=NSLocalizedString(@"hide_items", nil); //// [titleLabel sizeToFit]; //// [myView addSubview:titleLabel]; //// // return myView; //} // - (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { UIView* myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 0.0001)]; myView.backgroundColor = UIColorFromRGB(0x996633);; myView.layer.shadowPath =[UIBezierPath bezierPathWithRect:myView.bounds].CGPath; // myView.layer.masksToBounds = false; //添加四个边阴影 myView.layer.shadowColor = [UIColor blackColor].CGColor; myView.layer.shadowOffset = CGSizeMake(0, 0); myView.layer.shadowOpacity = 0.5; myView.layer.shadowRadius = 2.0; NSString*labeltitle = nil; switch (section) { case 0: labeltitle= @"Order Info"; break; case 1: { labeltitle= @"More Info"; NSString* btntitle=nil ; if(self.showMore) { btntitle=@"Hide"; // [section setValue:@"false" forKey:@"hide"]; // [sender setTitle:@"Show" forState:UIControlStateNormal]; } else{ btntitle=@"Show"; } UIButton * btn =[[UIButton alloc] initWithFrame:CGRectMake(tableView.bounds.size.width-50-15, 0, 50, 33)]; btn.tag=section; [btn addTarget:self action:@selector(HideSction:) forControlEvents:UIControlEventTouchUpInside]; [btn setTitle:btntitle forState:UIControlStateNormal]; [myView addSubview:btn]; } break; case 2: labeltitle= @"Models"; break; case 3: labeltitle= @"Price Info"; default: break; } UILabel *titlelabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 5.5, 200, 20)]; titlelabel.textColor=[UIColor whiteColor]; titlelabel.backgroundColor = [UIColor clearColor]; titlelabel.text=NSLocalizedString(labeltitle, nil); [titlelabel sizeToFit]; [myView addSubview:titlelabel]; // return myView; } #pragma mark - hide section button clicked - (void)HideSction:(UIButton *)sender { /* NSMutableDictionary* section= [[self.content_data_download objectForKey:[NSString stringWithFormat:@"section_%d",sender.tag]] mutableCopy]; bool hide = [[section valueForKey:@"hide"]boolValue]; if(hide) { [section setValue:@"false" forKey:@"hide"]; [sender setTitle:@"Show" forState:UIControlStateNormal]; } else{ [section setValue:@"true" forKey:@"hide"]; [sender setTitle:@"Hide" forState:UIControlStateNormal]; } [self.content_data_download setObject:section forKey:[NSString stringWithFormat:@"section_%d",sender.tag]]; self.content_data_control = [self translate_json:self.content_data_download changed:self.changed_data]; */ self.showMore=!self.showMore; NSRange range = NSMakeRange(1, 1); NSIndexSet *sectionToReload = [NSIndexSet indexSetWithIndexesInRange:range]; [self.detailTable reloadSections:sectionToReload withRowAnimation:UITableViewRowAnimationAutomatic]; } - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { switch (section) { case 0: return @"Order Info"; break; case 1: return @"More Info"; break; case 2: return @"Models"; case 3: return @"Price Info"; default: break; } return nil; } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { if(self.content_data==nil) return 0; return 4; } - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return 33; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { // NSDictionary * item_json = [self.content_data objectForKey:@"items"]; if(section==0) return 1; if(section==1) { if(self.showMore) return 1; else return 0; } if(section==2) { int count =[[self.content_data valueForKey:@"model_count"] intValue]; return count; } if(section==3) return 5; return 0; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UIApplication * app = [UIApplication sharedApplication]; AppDelegate *appDelegate = (AppDelegate *)[app delegate]; switch(indexPath.section) { case 0: { // NSString *CellIdentifier = @"OrderDetailInfoCell"; // OrderDetailInfoCell * cell= [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; // // // // NSString* emailcontent=[self.content_data valueForKey:@"email_content"]; // emailcontent=[emailcontent stringByReplacingOccurrencesOfString:@"\t" withString:@""]; // cell.infoLabel.text =emailcontent;//[self.content_data valueForKey:@"order_info"]; // NSString *CellIdentifier = @"OrderDetailHtmlCell"; OrderDetailHtmlCell * cell= [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; // NSString* emailcontent=[self.content_data valueForKey:@"email_content"]; // emailcontent=[emailcontent stringByReplacingOccurrencesOfString:@"\t" withString:@""]; // cell.infoLabel.text =emailcontent;//[self.content_data valueForKey:@"order_info"]; // // NSString* tablecontent = [item valueForKey:@"content"]; cell.webview.tag = indexPath.section; // cell.webview.scrollView.contentInset = UIEdgeInsetsZero; // self.automaticallyAdjustsScrollViewInsets=no; cell.webview.delegate = self; // cell.webView.scrollView.contentSize.height = 0; cell.webview.scrollView.bounces=NO; cell.webview.scrollView.directionalLockEnabled = true; CGSize size= cell.webview.scrollView.contentSize; size.height=10; cell.webview.scrollView.contentSize=size; // nsstring* c = [NSString stringwith] // NSString *filePath = [[NSBundle mainBundle]pathForResource:@"about" ofType:@"htm"]; // NSString *htmlString = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; // NSString* aaa= @""; [cell.webview loadHTMLString:[self.content_data valueForKey:@"order_info"] baseURL:nil]; cell.backgroundColor = UIColorFromRGB(0xF2EEEA); return cell; } break; case 1: { NSString *CellIdentifier = @"OrderDetailHtmlCell"; OrderDetailHtmlCell * cell= [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; cell.webview.tag = indexPath.section; cell.webview.delegate = self; // cell.webView.scrollView.contentSize.height = 0; cell.webview.scrollView.bounces=NO; cell.webview.scrollView.directionalLockEnabled = true; CGSize size= cell.webview.scrollView.contentSize; size.height=10; cell.webview.scrollView.contentSize=size; [cell.webview loadHTMLString:[self.content_data valueForKey:@"more_order_info"] baseURL:nil]; cell.backgroundColor = UIColorFromRGB(0xF2EEEA); return cell; // NSString *CellIdentifier = @"OrderDetailInfoCell"; // OrderDetailInfoCell * cell= [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; // // cell.infoLabel.text =[self.content_data valueForKey:@"more_order_info"]; // // // //// float width = tableView.frame.size.width; //// width-=CELL_MARGIN*2; //// CGSize constraintkey = CGSizeMake(width-2*LABEL_MARGIN, 10.0f);//key label width is 40% cell width; //// //// NSString* key =[self.content_data valueForKey:@"order_info"]; //// //// //// //// CGRect frame; //// frame.size = constraintkey; //// frame.origin.x=0; //// frame.origin.y=0; //// //// RTLabel* rtlabel = [[RTLabel alloc] initWithFrame:frame]; //// //// [rtlabel setText: key]; //// CGSize optimumSize = [rtlabel optimumSize]; //// //// float height = optimumSize.height; //// height = MAX(height+LINE_WIDTH+2*LABEL_MARGIN, DEF_CELL_HEIGHT); //// //// //// frame.origin.x=LABEL_MARGIN; //// frame.size=CGSizeMake(width, height); //// //// cell.infoLabel.frame = frame; // // // // // cell.backgroundColor = UIColorFromRGB(0xF2EEEA); // return cell; } break; case 2: { NSString *CellIdentifier = @"OrderDetailModelCell"; OrderDetailModelCell * cell= [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; NSDictionary * item_json = [self.content_data objectForKey:[NSString stringWithFormat:@"item_%ld",(long)indexPath.row]]; int count = [[item_json valueForKey:@"count"] intValue]; NSDictionary * combine_json =[item_json objectForKey:@"combine"]; cell.bundle_item=combine_json; double dprice=0.0; if(cell.bundle_item!=nil) { int citem=0; int bcount=[[cell.bundle_item valueForKey:@"count"] intValue]; for(int bc=0;bc0) return; // UIScrollView *scrollerView = [webView.subviews objectAtIndex:0]; // CGSize size= webView.scrollView.contentSize; // CGSize fittingSize = [webView sizeThatFits:CGSizeZero]; CGRect frame = webView.frame; NSString *fitHeight = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"]; frame.size.height = [fitHeight floatValue]; //webView.frame = frame; // DebugLog(@"webViewDidFinishLoad ^^^^^^^^^^^^^^^^^Saveheight height=%f section=%ld",webView.scrollView.contentSize.height,indexPath.section); if(indexPath.section==0) self.web_info_height=frame.size.height; else self.web_moreinfo_height = frame.size.height; // [self.content.webviewHeight setObject:[NSString stringWithFormat:@"%f",frame.size.height/*webView.scrollView.contentSize.height*/] forKey:[NSString stringWithFormat:@"%ld",(long)indexPath.section]]; DebugLog(@"webViewDidFinishLoad ^^^^^^^^^^^^^^^^^reloadRowsAtIndexPaths"); // [self.table beginUpdates]; [self.detailTable reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES]; // [self.table endUpdates]; // [self.webviewoprationQueue addOperationWithBlock:^{ // }]; // [self.table endUpdates]; // } } @end