// // PurchaseDetailViewController.m // XFFruit // // Created by 陈俊俊 on 15/8/23. // Copyright (c) 2015年 Xummer. All rights reserved. // #import "PurchaseDetailViewController.h" #import "ProductBillViewController.h" #import "PurchaseBillProduct.h" #define BottomHeight 50 #define LeftMargin 15 #define LeftWidth 100 #define LeftHeight 30 #define TopMargin 15 typedef enum : NSUInteger { CancleTag = 3500, EndTag, RejectTag, PassTag, SureTag } BtnTag; @interface PurchaseDetailViewController () { UIScrollView *_scrollView; UIView *_purchaseView; UIView *_bottomView; ProductBillViewController *_pvc; NSArray *_leftArr; UIButton *_endBtn; UIButton *_rejectBtn; } @property (nonatomic,strong)UILabel *billNumberLabel; @property (nonatomic,strong)UILabel *noticeNumberLabel; @property (nonatomic,strong)UILabel *createOperNameLabel; @property (nonatomic,strong)UILabel *checkNameLabel; @property (nonatomic,strong)UILabel *stateLabel; @property (nonatomic,strong)UILabel *lastModifyNameLabel; @property (nonatomic,strong)UILabel *typeLabel; @property (nonatomic,strong)UILabel *vendorNameLabel; @property (nonatomic,strong)UILabel *vendorIsSureLabel; @property (nonatomic,strong)UILabel *warehouseLabel; @property (nonatomic,strong)UILabel *otherPriceLabel; @property (nonatomic,strong)UILabel *totalPriceLabel; @property (nonatomic,strong)UILabel *noteLabel; @end @implementation PurchaseDetailViewController - (void)viewDidLoad { [super viewDidLoad]; [self bulidLayout]; [self getDataFromServer]; } - (void)getDataFromServer{ __weak typeof(self)weakSelf = self; void(^succ)(id) = ^(id data) { [IBTLoadingView hideHUDWithText:nil]; __strong __typeof(weakSelf)strongSelf = weakSelf; if (data) { NSInteger success = [data[@"success"] integerValue]; NSString *message = data[@"message"] ; if (success == 1) { NSDictionary *dictData = data[@"data"]; PurchaseBill *bill = [[PurchaseBill alloc]init]; [bill setValuesForKeysWithDictionary:dictData]; self.bill = bill; [strongSelf fetchtPurchaseDetail]; }else{ [IBTLoadingView showTips:message]; } }else{ [IBTLoadingView showTips:@" 无记录 "]; } }; void(^fail)(id) = ^(id data) { [IBTLoadingView hideHUDWithText:nil]; [IBTLoadingView showTips:data]; }; [IBTLoadingView showProgressLabel:@"正在加载..."]; [[ICRHTTPController sharedController] getPurchaseResultWithPurchaseUuid:@"5a7417014f926eb5014f93b18fbc000f" success:succ failure:fail]; } #pragma mark - 视图初始化 - (void)bulidLayout{ _scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, ScreenSize.width, ScreenSize.height - 64 - BottomHeight)]; _scrollView.showsHorizontalScrollIndicator = NO; _scrollView.showsVerticalScrollIndicator = NO; _scrollView.backgroundColor = XXFBgColor; [self.view addSubview:_scrollView]; [self createBtn]; [self createPurchaseView]; [self createBottomView]; if ([self.bill.state isEqualToString:@"finished"]) { _endBtn.hidden = YES; _rejectBtn.hidden = YES; CGRect scrollViewFrame = _scrollView.frame; scrollViewFrame.size.height = ScreenSize.height - 64; _scrollView.frame = scrollViewFrame; } } - (void)createBtn{ _rejectBtn = [IBTCustomButtom creatButtonWithFrame:CGRectMake(LeftMargin, ScreenSize.height - 64 - BottomHeight +5, (ScreenSize.width - LeftMargin*3)/2, 40) target:self sel:@selector(btnClick:) tag:RejectTag image:nil title:@"" titleColor: [UIColor whiteColor] isCorner:YES corner:5 bgColor:GXF_SAVE_COLOR]; [self.view addSubview:_rejectBtn]; _endBtn = [IBTCustomButtom creatButtonWithFrame:CGRectMake(CGRectGetMaxX(_rejectBtn.frame)+ LeftMargin, ScreenSize.height - 64 - BottomHeight +5, (ScreenSize.width - LeftMargin*3)/2, 40) target:self sel:@selector(btnClick:) tag:0 image:nil title:@"" titleColor:[UIColor whiteColor] isCorner:YES corner:5 bgColor:GXF_COMMIT_COLOR]; [self.view addSubview:_endBtn]; if (self.indexPerson == 0) { _rejectBtn.hidden = NO; _rejectBtn.tag = CancleTag; [_rejectBtn setTitle:@"作废" forState:UIControlStateNormal]; _endBtn.tag = EndTag; [_endBtn setTitle:@"结束" forState:UIControlStateNormal]; }else if(self.indexPerson == 1){ _rejectBtn.hidden = NO; _rejectBtn.tag = RejectTag; [_rejectBtn setTitle:@"拒绝" forState:UIControlStateNormal]; [_endBtn setTitle:@"审核通过" forState:UIControlStateNormal]; _endBtn.tag = PassTag; }else{ _rejectBtn.hidden = YES; _endBtn.frame = CGRectMake(LeftMargin, ScreenSize.height - 64 - BottomHeight +5, ScreenSize.width - LeftMargin * 2, 40); _endBtn.tag = SureTag; [_endBtn setTitle:@"确认" forState:UIControlStateNormal]; } } - (void)btnClick:(UIButton *)btn{ NSLog(@"%ld",(long)btn.tag); switch (btn.tag) { case CancleTag: { NSLog(@"作废"); } break; case EndTag: { NSLog(@"结束"); } break; case RejectTag: { NSLog(@"拒绝"); } break; case PassTag: { NSLog(@"审核通过"); } break; case SureTag: { NSLog(@"确定"); } break; default: break; } } - (void)createBottomView{ _bottomView= [[UIView alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(_purchaseView.frame) + TopMargin, ScreenSize.width, 200)]; _bottomView.backgroundColor = [UIColor whiteColor]; [_scrollView addSubview:_bottomView]; _pvc = [[ProductBillViewController alloc]init]; [self addChildViewController:_pvc]; _pvc.viewFrame = _bottomView.bounds; _pvc.isHiddenEdit = YES; [_bottomView addSubview:_pvc.view]; } - (void)createPurchaseView{ if (self.indexPerson == 0) { _leftArr = @[@"单号:",@"采购通知单:",@"创建人:",@"最后修改人:",@"状态:",@"类型:",@"供应商:",@"供应商确认:",@"收货仓库:",@"其他费用:",@"总金额:",@"备注:"]; }else if (self.indexPerson == 1) { _leftArr = @[@"单号:",@"采购通知单:",@"创建人:",@"审核人:",@"状态:",@"类型:",@"供应商:",@"供应商确认:",@"收货仓库:",@"其他费用:",@"总金额:",@"备注:"]; }else{ _leftArr = @[@"单号:",@"采购通知单:",@"创建人:",@"审核人:",@"状态:",@"供应商:",@"其他费用:",@"总金额:",@"备注:"]; } _purchaseView= [[UIView alloc]initWithFrame:CGRectMake(0, TopMargin, ScreenSize.width, LeftHeight*_leftArr.count +LeftMargin)]; _purchaseView.backgroundColor = [UIColor whiteColor]; [_scrollView addSubview:_purchaseView]; for (NSInteger i = 0 ; i < _leftArr.count; i++) { UILabel *leftLabel = [[UILabel alloc]initWithFrame:CGRectMake(LeftMargin, 10 + LeftHeight *i, LeftWidth, LeftHeight)]; leftLabel.font = GXF_SEVENTEENTH_SIZE; leftLabel.text = _leftArr[i]; leftLabel.textColor = GXF_DETAIL_COLOR; [_purchaseView addSubview:leftLabel]; UILabel *rightLabel = [[UILabel alloc]initWithFrame:CGRectMake(CGRectGetMaxX(leftLabel.frame), 10 + LeftHeight *i, _purchaseView.frame.size.width - LeftMargin - LeftWidth, LeftHeight)]; rightLabel.font = GXF_SEVENTEENTH_SIZE; rightLabel.textColor = GXF_DETAIL_COLOR; if (i == 0) { self.billNumberLabel = rightLabel; }else if (i == 1) { self.noticeNumberLabel = rightLabel; }else if(i == 2){ self.createOperNameLabel = rightLabel; }else if(i == _leftArr.count - 3){ self.otherPriceLabel = rightLabel; }else if(i == _leftArr.count - 2){ self.totalPriceLabel = rightLabel; }else if(i == _leftArr.count - 1){ rightLabel.numberOfLines = 0; self.noteLabel = rightLabel; } if (self.indexPerson == 0 || self.indexPerson == 1) { if (self.indexPerson == 0) { if (i == 3) { self.lastModifyNameLabel = rightLabel; } }else{ if (i == 3) { self.checkNameLabel = rightLabel; } } if(i == 4){ self.stateLabel = rightLabel; }else if(i == 5){ self.typeLabel = rightLabel; }else if(i == 6){ self.vendorNameLabel = rightLabel; }else if(i == 7){ self.vendorIsSureLabel = rightLabel; }else if(i == 8){ self.warehouseLabel = rightLabel; } }else{ if(i == 3){ self.checkNameLabel = rightLabel; }else if(i == 4){ self.stateLabel = rightLabel; }else if(i == 5){ self.vendorNameLabel = rightLabel; } } [_purchaseView addSubview:rightLabel]; } } - (void)fetchtPurchaseDetail{ self.billNumberLabel.text = [IBTCommon checkString:self.bill.billNumber]; if ([self.bill.state isEqualToString:PURCHASE_STATE_INITIAL]) { self.stateLabel.textColor = [UIColor redColor]; self.stateLabel.text = @"未提交"; }else if ([self.bill.state isEqualToString:PURCHASE_STATE_SUBMITTED]) { self.stateLabel.textColor = [UIColor greenColor]; self.stateLabel.text = @"已提交"; }else if ([self.bill.state isEqualToString:PURCHASE_STATE_REJECTED]) { self.stateLabel.textColor = [UIColor grayColor]; self.stateLabel.text = @"已拒绝"; }else if ([self.bill.state isEqualToString:PURCHASE_STATE_APPROVED]) { self.stateLabel.textColor = [UIColor grayColor]; self.stateLabel.text = @"已审批"; }else if ([self.bill.state isEqualToString:PURCHASE_STATE_SHIPPING]) { self.stateLabel.textColor = [UIColor grayColor]; self.stateLabel.text = @"发运中"; }else if ([self.bill.state isEqualToString:PURCHASE_STATE_FINISHED]) { self.stateLabel.textColor = [UIColor blackColor]; self.stateLabel.text = @"已完成"; } self.noticeNumberLabel.text = (self.bill.noticeNumber.length == 0) ? @"无":(self.bill.noticeNumber); self.createOperNameLabel.text = [IBTCommon checkString:self.bill.create_operName]; self.checkNameLabel.text = [IBTCommon checkString:self.bill.vendor_name]; self.vendorNameLabel.text = [IBTCommon checkString:self.bill.vendor_name]; self.totalPriceLabel.text = [IBTCommon checkString:[self.bill.total stringValue]]; self.noteLabel.text = [IBTCommon checkString:self.bill.remark]; self.lastModifyNameLabel.text = [IBTCommon checkString:self.bill.lastModify_operName]; NSString *type = [self.bill.type isEqualToString:GXF_Critical] ? @"紧急" : @"普通"; self.typeLabel.text = type; self.vendorIsSureLabel.text = self.bill.vendorConfirmTime.length > 0 ? @"是":@"否"; self.warehouseLabel.text = [IBTCommon checkString:self.bill.receiveWrh_name]; self.otherPriceLabel.text = [self.bill.charge stringValue]; NSMutableArray *productArr = [NSMutableArray array]; for (NSDictionary *billDict in self.bill.products) { PurchaseBillProduct *billProbuct = [PurchaseBillProduct new]; [billProbuct setValuesForKeysWithDictionary:billDict]; [productArr addObject:billProbuct]; } _pvc.productArr = productArr; [_pvc.tableView reloadData]; [self setNoteHeight]; } - (void)setNoteHeight { CGFloat height = [self.noteLabel calculateHeight]; CGRect noteFrame = self.noteLabel.frame; noteFrame.size.height = height; self.noteLabel.frame = noteFrame; CGFloat totalHeight = height + LeftHeight*_leftArr.count; CGRect purchaseFrame = _purchaseView.frame; purchaseFrame.size.height = totalHeight; _purchaseView.frame = purchaseFrame; CGRect bottomFrame = _bottomView.frame; bottomFrame.origin.y = CGRectGetMaxY(_purchaseView.frame) + TopMargin; _bottomView.frame = bottomFrame; _scrollView.contentSize = CGSizeMake(ScreenSize.width, totalHeight + CGRectGetHeight(_bottomView.frame) + TopMargin*2); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* #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. } */ @end