// // NewReceiveProductViewController.m // XFFruit // // Created by 陈俊俊 on 15/10/15. // Copyright (c) 2015年 Xummer. All rights reserved. // #import "NewReceiveProductViewController.h" #import "SurveyCell.h" #import "HPGrowingTextView.h" #import "ChooseProductViewController.h" #import "ChooseProductUnitViewController.h" #import "GeometryView.h" #define LeftMargin 15 #define BtnHeight 44 #define TableRowHeight 46 #define CornerRadius 5 #define BtnSize 19 #define TotalHeight 230 #define KeyboardHeight 258 @interface NewReceiveProductViewController () { UITableView *_tableView; NSMutableArray *_dataArr; UILabel *_chooseProductLabel; UILabel *_choosePackUnitLabel; UILabel *_choosePackStandLabel; UILabel *_choosePackCountLabel; UILabel *_chooseBaseCountLabel; UILabel *_choosePackPriceLabel; UILabel *_chooseBasePriceLabel; UILabel *_chooseTotalLabel; UILabel *_chooseTotalPriceLabel; UITextField *_shPackField; UITextField *_shBaseQuantityField; UILabel *_shjcLabel; UILabel *_shbzLabel; HPGrowingTextView *_noteTextView; GeometryView *_geometryView; } @property (nonatomic,strong)NSString *productNameStr; @property (nonatomic,strong)NSString *productCodeStr; @property (nonatomic,strong)NSString *productUuidStr; @property (nonatomic,strong)NSString *productQpcStr;//商品规格描述 @property (nonatomic,strong)NSMutableArray *selectProducts; @property (nonatomic,strong)NSString *selectUnit; @end @implementation NewReceiveProductViewController - (void)viewDidLoad { [super viewDidLoad]; self.title = self.navTitle; [self initData]; [self createTableView]; } - (void)initData{ _dataArr = [NSMutableArray array]; self.selectProducts = [NSMutableArray array]; [_dataArr addObject:@"商品"]; [_dataArr addObject:@"包装单位"]; [_dataArr addObject:@"包装规格"]; [_dataArr addObject:@"包装单价"]; [_dataArr addObject:@"基础单价"]; [_dataArr addObject:@"包装数量[实收]"]; [_dataArr addObject:@"基础数量[实收]"]; [_dataArr addObject:@"总金额[实收]"]; [_dataArr addObject:@"备注"]; } - (void)createTableView { self.view.backgroundColor = XXFBgColor; _tableView = [[UITableView alloc]initWithFrame:(CGRectMake(0, LeftMargin,ScreenSize.width, ScreenSize.height - 64 - LeftMargin)) style:(UITableViewStylePlain)]; _tableView.delegate = self; _tableView.dataSource = self; UIView *footView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, ScreenSize.width, 60+TableRowHeight* 3)]; UILabel *lineLabel = [[UILabel alloc]initWithFrame:(CGRectMake(LeftMargin, 0, ScreenSize.width - LeftMargin * 2, 1))]; lineLabel.backgroundColor = GXF_LINE_COLOR; lineLabel.font = GXF_FIFTEENTEN_SIZE; [footView addSubview:lineLabel]; _geometryView = [GeometryView new]; _geometryView.frame = CGRectMake(LeftMargin/2, 5, ScreenSize.width - LeftMargin, TableRowHeight* 3); [footView addSubview:_geometryView]; [self createBottomField]; UIButton *commitBtn = [IBTCustomButtom creatButtonWithFrame:CGRectMake(LeftMargin, _geometryView.bottom + 5, (ScreenSize.width - LeftMargin*2), BtnHeight) target:self sel:@selector(btnClick:) tag:0 image:nil title:@"保存" titleColor: [UIColor whiteColor] isCorner:YES corner:CornerRadius bgColor:GXF_COMMIT_COLOR]; [footView addSubview:commitBtn]; _tableView.tableFooterView = footView; [self.view addSubview:_tableView]; } - (void)createBottomField{ NSArray *arr = @[@"包装数量[待收]:",@"基础数量[待收]:",@"总金额[待收]:"]; for (NSInteger i =0; i < arr.count; i++) { UILabel *label =[[UILabel alloc]initWithFrame:(CGRectMake(LeftMargin/2, i*TableRowHeight, 110, TableRowHeight))]; label.textAlignment= NSTextAlignmentLeft; label.textColor = GXF_LEFTSIX_COLOR; label.font = GXF_FIFTEENTEN_SIZE; label.text = arr[i]; [_geometryView addSubview:label]; UILabel *contentLabel = [[UILabel alloc]initWithFrame:CGRectMake(label.right, i*TableRowHeight, _geometryView.width - label.width -LeftMargin, TableRowHeight)]; contentLabel.textAlignment= NSTextAlignmentRight; contentLabel.textColor = GXF_CONTENT_COLOR; contentLabel.font = GXF_FIFTEENTEN_SIZE; [_geometryView addSubview:contentLabel]; if (i == 0) { _choosePackCountLabel = contentLabel; }else if(i == 1){ _chooseBaseCountLabel = contentLabel; }else if(i == 2){ _chooseTotalLabel = contentLabel; } } } #pragma mark - 按钮点击事件 - (void)btnClick:(UIButton *)btn{ if ([self checkCost]) { self.editReceiveProduct(self.noticeProduct,self.indexTag); [self PopViewControllerAnimated:YES]; } } - (BOOL)checkCost{ if (_shPackField.text.length == 0) { ShowMessage(@"包装数量(收货)不能为空"); return NO; } if (_shBaseQuantityField.text.length == 0) { ShowMessage(@"基础数量(收货)不能为空"); return NO; } if (_shPackField.text.floatValue > self.noticeProduct.qty.floatValue) { ShowMessage(@"包装数量[实收]不能大于包装数量[待收]"); return NO; } if (!self.noticeProduct) { self.noticeProduct = [[TransferPdtDetail alloc]init]; } self.noticeProduct.rctQty =[NSNumber numberWithFloat:[_shPackField.text floatValue]]; self.noticeProduct.rctBaseQty = [NSNumber numberWithFloat:[_shBaseQuantityField.text floatValue]]; self.noticeProduct.note = _noteTextView.text; return YES; } #pragma mark - 协议方法 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return _dataArr.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellID = @"cellID"; SurveyCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID]; if (cell == nil) { cell = [[SurveyCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID]; tableView.separatorStyle = UITableViewCellSeparatorStyleNone; cell.selectionStyle = UITableViewCellSelectionStyleNone; cell.titleLabel.width = 110; [self createViewInCell:cell indexPath:indexPath]; } [cell setTitleStr:_dataArr[indexPath.row]]; return cell; } - (void)createViewInCell:(SurveyCell *)cell indexPath:(NSIndexPath *)indexPath{ if (indexPath.row == _dataArr.count -1){ _noteTextView = [[HPGrowingTextView alloc] initWithFrame:CGRectMake(cell.titleLabel.right, 0, ScreenSize.width - cell.titleLabel.width - LeftMargin*2-15, TableRowHeight)]; _noteTextView.contentInset = UIEdgeInsetsMake(5, 5, 5, 0); _noteTextView.minNumberOfLines = 1; _noteTextView.maxNumberOfLines = 2; _noteTextView.isScrollable = YES; _noteTextView.font = GXF_FIFTEENTEN_SIZE; _noteTextView.textAlignment = NSTextAlignmentRight; _noteTextView.delegate = self; _noteTextView.returnKeyType = UIReturnKeyDone; _noteTextView.placeholder = @"输入备注内容"; [cell.contentView addSubview:_noteTextView]; CGRect lineFrame = cell.lineLabel.frame; lineFrame.origin.y = TableRowHeight*2-1; cell.lineLabel.frame = lineFrame; }else if(indexPath.row == 5 || indexPath.row == 6){ UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(cell.titleLabel.right, 0, ScreenSize.width - cell.titleLabel.width - LeftMargin*2-30, TableRowHeight)]; textField.textAlignment = NSTextAlignmentRight; textField.textColor = GXF_CONTENT_COLOR; textField.font = GXF_FIFTEENTEN_SIZE; textField.returnKeyType = UIReturnKeyDone; textField.keyboardType = UIKeyboardTypeDecimalPad; textField.delegate = self; [textField addTarget:self action:@selector(textChange:) forControlEvents:UIControlEventAllEditingEvents]; [cell.contentView addSubview:textField]; UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(CGRectGetMaxX(textField.frame)+ 5, 0, 20, TableRowHeight)]; label.textColor = GXF_CONTENT_COLOR; label.font = GXF_FIFTEENTEN_SIZE; [cell.contentView addSubview:label]; if (indexPath.row == 5) { _shbzLabel = label; textField.placeholder = @"输入包装数量(实收)"; _shPackField = textField; }else if(indexPath.row == 6){ _shjcLabel = label; textField.placeholder = @"输入基础数量(实收)"; _shBaseQuantityField = textField; } }else{ UILabel *contentLabel = [[UILabel alloc]initWithFrame:(CGRectMake(cell.titleLabel.right, 0, ScreenSize.width - cell.titleLabel.width - LeftMargin*2-15, TableRowHeight))]; contentLabel.textAlignment= NSTextAlignmentRight; contentLabel.textColor = GXF_CONTENT_COLOR; contentLabel.font = GXF_FIFTEENTEN_SIZE; [cell.contentView addSubview:contentLabel]; if (indexPath.row == 0) { _chooseProductLabel = contentLabel; }else if(indexPath.row == 1) { _choosePackUnitLabel = contentLabel; }else if(indexPath.row == 2) { _choosePackStandLabel = contentLabel; }else if(indexPath.row == 3) { _choosePackPriceLabel = contentLabel; }else if(indexPath.row == 4) { _chooseBasePriceLabel = contentLabel; }else if(indexPath.row == 7) { _chooseTotalPriceLabel= contentLabel; _chooseTotalPriceLabel.textColor = GXF_NAVIGAYION_COLOR; }else if(indexPath.row == 8) { _choosePackCountLabel = contentLabel; }else if(indexPath.row == 9) { _chooseBaseCountLabel= contentLabel; } } if (self.noticeProduct) { [self prepareDataIncell]; } } - (void)prepareDataIncell{ //商品 _chooseProductLabel.text = [NSString stringWithFormat:@"%@[%@]",self.noticeProduct.productName,self.noticeProduct.productCode]; //包装单位 _choosePackUnitLabel.text = self.noticeProduct.unit; //包装规格 _choosePackStandLabel.text = [NSString stringWithFormat:@"1*%@ %@",[self.noticeProduct.qpc stringValue],self.noticeProduct.baseUnit]; //待收包装数量 _choosePackCountLabel.text = [NSString stringWithFormat:@"%@ %@",[self.noticeProduct.qty stringValue],self.noticeProduct.unit]; //待收基础数量 _chooseBaseCountLabel.text = [NSString stringWithFormat:@"%@ %@",[self.noticeProduct.baseQty stringValue],self.noticeProduct.baseUnit]; //待收总金额 _chooseTotalLabel.text = [NSString stringWithFormat:@"%.2f元",[self.noticeProduct.total floatValue]]; //包装单价 _choosePackPriceLabel.text = [NSString stringWithFormat:@"%.2f 元",[self.noticeProduct.packprice floatValue]]; //基础单价 _chooseBasePriceLabel.text = [NSString stringWithFormat:@"%.2f 元",[self.noticeProduct.price floatValue]]; _shbzLabel.text = self.noticeProduct.unit; _shjcLabel.text = self.noticeProduct.baseUnit; //实收基础数量 if (self.noticeProduct.rctBaseQty) { _shBaseQuantityField.text =[NSString stringWithFormat:@"%@",[self.noticeProduct.rctBaseQty stringValue]]; } //实收包装数量 if (self.noticeProduct.rctQty) { _shPackField.text =[NSString stringWithFormat:@"%@",[self.noticeProduct.rctQty stringValue]]; } //实收总金额 if (self.noticeProduct.rctTotal) { _chooseTotalPriceLabel.text = [NSString stringWithFormat:@"%.2f 元",[self.noticeProduct.rctTotal floatValue]]; }else { _chooseTotalPriceLabel.text = @"0.00元"; } } - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return TableRowHeight; } - (void)textChange:(UITextField *)textField{ if (textField == _shPackField) { if (_shPackField.text.length > 0) { //基础数量【实收】= 包装数量【实收】* 规格 float baseCount = [_shPackField.text floatValue] * [self.noticeProduct.qpc floatValue]; _shBaseQuantityField.text = [NSString stringWithFormat:@"%.2f",baseCount]; //总金额【实收】= 基础数量【实收】* 基础单价 float total = 0; if ([_shPackField.text floatValue] == [self.noticeProduct.qty floatValue]) { total = [self.noticeProduct.total floatValue]; }else{ total = baseCount * [self.noticeProduct.price floatValue]; } _chooseTotalPriceLabel.text = [NSString stringWithFormat:@"%.2f元",total]; self.noticeProduct.rctTotal = [NSNumber numberWithFloat:total]; } }else if (textField == _shBaseQuantityField) { if (_shBaseQuantityField.text.length > 0) { // 包装数量【实收】= 基础数量【实收】/ 规格 float baseCount = 0; if ([self.noticeProduct.qpc floatValue] > 0) { baseCount = [_shBaseQuantityField.text floatValue]/ [self.noticeProduct.qpc floatValue]; } _shPackField.text = [NSString stringWithFormat:@"%.2f",baseCount]; float total = 0; if ([_shPackField.text floatValue] == [self.noticeProduct.qty floatValue]) { total = [self.noticeProduct.total floatValue]; }else{ total = baseCount * [self.noticeProduct.price floatValue]; } _chooseTotalPriceLabel.text = [NSString stringWithFormat:@"%.2f元",total]; self.noticeProduct.rctTotal = [NSNumber numberWithFloat:total]; } } } #pragma mark delegate - (BOOL)growingTextViewShouldReturn:(HPGrowingTextView *)growingTextView{ [_noteTextView resignFirstResponder]; return YES; } - (void)keyboardHidden{ [_shPackField resignFirstResponder]; [_shBaseQuantityField resignFirstResponder]; [_noteTextView resignFirstResponder]; } @end