// // NewStockingViewController.m // IBOSS // // Created by apple on 2017/5/17. // Copyright © 2017年 沈阳东科云信软件有限公司. All rights reserved. // // 功能描述:新增盘点控制器 // #import "NewStockingViewController.h" #import "StockingGoodsListViewController.h" #import "BaseIDAndNameViewController.h" #import "ResponsiblePersonViewController.h" #import "ScanViewController.h" #import "RegularExpression.h" #import "ResponsiblePersonModel.h" #import "BaseIDAndNameModel.h" @interface NewStockingViewController () { // 内容view UIView *_contentView; // UIScrollView UIScrollView *_scroll; // 是否有小数点 BOOL _isHaveDot; // 键盘标示 BOOL _keyboardShow; } /** 查询数据对象 */ @property (nonatomic,strong) ASIDownManager *downManager; /** 保存对象 */ @property (nonatomic,strong) ASIDownManager *saveManager; /** 盘亏原因数据 */ @property (nonatomic,strong) NSMutableArray *infoReasons; /** 责任人数据 */ @property (nonatomic,strong) NSMutableArray *infoPersons; @end @implementation NewStockingViewController /** viewDidLoad函数 */ - (void)viewDidLoad { [super viewDidLoad]; [self showTitle:@"新增库存盘点"]; self.navigationController.navigationBar.translucent=NO; [self initUI]; [self initNotification]; [self loadInitResposeData] ; } /** 安全区视图发生变化 */ -(void)viewSafeAreaInsetsDidChange{ UIImage *pic = [UIImage imageNamed:@"bt_datasave"]; CGFloat h = (Screen_Width-40)*pic.size.height/pic.size.width; _scroll.frame= CGRectMake(0, 0, Screen_Width,self.view.safeAreaLayoutGuide.layoutFrame.size.height - h - 5-20); _btnSave.frame=CGRectMake(20, self.view.safeAreaLayoutGuide.layoutFrame.size.height - h - 5 -10, Screen_Width-2*20, h); [super viewSafeAreaInsetsDidChange]; } /** didReceiveMemoryWarning函数 */ - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } /** viewWillDisappear函数 */ - (void)viewWillDisappear:(BOOL)animated { [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil]; } /** viewDidAppear函数 */ - (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide) name:UIKeyboardWillHideNotification object:nil]; } /** dealloc函数 */ - (void)dealloc{ [[NSNotificationCenter defaultCenter]removeObserver:self name:@"UITextFieldTextDidChangeNotification" object:self.txtStockingQuantity]; } #pragma mark - 属性 /** 责任人数据源 @return <#return value description#> */ - (NSMutableArray *)infoPersons{ if (_infoPersons == nil) { _infoPersons = [[NSMutableArray alloc]init]; } return _infoPersons; } /** 盘亏原因数据源 @return <#return value description#> */ - (NSMutableArray *)infoReasons{ if (_infoReasons == nil) { _infoReasons = [[NSMutableArray alloc]init]; } return _infoReasons; } #pragma mark - 委托回调函数 /** 责任人 @param item <#item description#> */ - (void)updateResponsiblePerson:(ResponsiblePersonModel *)item{ self.sResponseiblePerson = item.staffID; [self.btnResponseiblePerson setTitle:item.staffName forState:UIControlStateNormal]; } /** 盘亏原因 @param model <#model description#> @param value <#value description#> */ - (void)baseIDAndNameDoneDatas:(BaseIDAndNameModel *)model BaseIDAndName:(baseIdAndName)value{ self.sResponseibleReason = model.id; [self.btnResponseibleReason setTitle:model.name forState:UIControlStateNormal]; } /** 选取商品信息后回调 @param model <#model description#> */ - (void)stockTextDoneDatas:(StockingModel *)model{ self.inventoryId = model.inventoryID; self.codeId = model.codeID; self.lblOnlyCode.text = model.onlyCode; self.txtOnlyCode.text = model.onlyCode; self.lblWarehouseName.text = model.warehouseName; self.lblSpecification.text = model.specification; self.lblGradeName.text = model.gradeName; self.lblColorNumber.text = model.colorNumber; self.lblPositionNumber.text = model.positionNumber; [self.btnResponseibleReason setTitle:@"请选择盘亏原因" forState:UIControlStateNormal]; [self.btnResponseiblePerson setTitle:@"请选择责任人" forState:UIControlStateNormal]; self.sResponseiblePerson = @""; self.sResponseibleReason = @""; self.lblQuantity.text = model.quantity; self.txtStockingQuantity.text = @""; self.lblCanSaleQuantity.text = model.balanceQuantity; } /** 根据唯一编码查询商品信息 @param code <#code description#> */ - (void)reloadDataWithOnlyCode:(NSString *)code { self.txtOnlyCode.text = code; self.sCode = code; double delayInSeconds = 0.5; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ //刷新 [self loadData]; }); } /** 文本框的长度限制 实现监听方法 @return <#return value description#> */ - (void)onFocusPeopleEditingChanged:(NSNotification *)sender { UITextField *textField = (UITextField *)sender.object; NSString *toBeString = textField.text; if ([textField isEqual:self.txtOnlyCode ]) { return; } NSString *lang = [[[UIApplication sharedApplication] textInputMode] primaryLanguage];// [[UITextInputMode currentInputMode] primaryLanguage]; int kMaxLength=0; //费用 if ([textField isEqual:self.txtStockingQuantity ]) { kMaxLength=17; if (toBeString != nil && toBeString.length>0 && [toBeString floatValue]-MAXIMUM_QUANTITY>0.0000000001f) { textField.text = MAX_COUNT; toBeString = MAX_COUNT; } } if ([lang isEqualToString:@"zh-Hans"]) { UITextRange *selectedRange = [textField markedTextRange]; UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0]; if (!position) { if (toBeString.length > kMaxLength) { textField.text = [toBeString substringToIndex:kMaxLength]; } } }else{ if (toBeString.length > kMaxLength) { textField.text = [toBeString substringToIndex:kMaxLength]; } } } /** 回车事件 @param textField <#textField description#> @return <#return value description#> */ - (BOOL)textFieldShouldReturn:(UITextField *)textField{ if ([textField isEqual:self.txtOnlyCode] && textField.text != nil && [textField.text length]>0) { self.sCode = textField.text; [self loadData]; [self.txtOnlyCode resignFirstResponder]; return NO; } return YES; } /** 限制用户输入小数点后位数的方法 @param textField <#textField description#> @param range <#range description#> @param string <#string description#> @return <#return value description#> */ - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if ([textField isEqual:self.txtOnlyCode]){ return YES; } if ([textField.text rangeOfString:@"."].location == NSNotFound) { _isHaveDot = NO; } if ([string length] > 0) { unichar single = [string characterAtIndex:0];//当前输入的字符 if ((single >= '0' && single <= '9') || single == '.') {//数据格式正确 //首字母不能为0和小数点 if([textField.text length] == 0){ if(single == '.') { [self showAlertViewText:@"第一个数字不能为小数点"]; [textField.text stringByReplacingCharactersInRange:range withString:@""]; return NO; } if (single == '0') { // [self showAlertViewText:@"第一个数字不能为0"]; // [textField.text stringByReplacingCharactersInRange:range withString:@""]; // return NO; } } if([textField.text length] == 1 && [[textField.text substringToIndex:1] isEqualToString: @"0"]){ if(!(single == '.')) { [textField.text stringByReplacingCharactersInRange:range withString:@""]; return NO; } } //输入的字符是否是小数点 if (single == '.') { if(!_isHaveDot)//text中还没有小数点 { _isHaveDot = YES; return YES; }else{ [self showAlertViewText:@"您已经输入过小数点了"]; [textField.text stringByReplacingCharactersInRange:range withString:@""]; return NO; } }else{ if (_isHaveDot) {//存在小数点 //判断小数点的位数 NSRange ran = [textField.text rangeOfString:@"."]; if (range.location - ran.location <= 6) { return YES; }else{ //[self showAlertViewText:@"亲,您最多输入两位小数"]; return NO; } }else{ return YES; } } }else {//输入的数据格式不正确 [self showAlertViewText:@"您输入的格式不正确"]; [textField.text stringByReplacingCharactersInRange:range withString:@""]; return NO; } } else { return YES; } } /** 成功回调函数 @param sender <#sender description#> */ - (void)onSaveSuccess:(ASIDownManager *)sender { [self cancel]; // 服务器返回数据 RequestResultModel *resultModel = [RequestResultModel dk_modelWithJSON:sender.mWebStr]; // 服务器返回数据状态值 int iStatus = resultModel.status; // 服务器返回数据消息 NSString *message = resultModel.message; // 服务器返回数据状态值正确 if (iStatus == 0) { [self clearData]; [self showAlertViewText:@"保存成功!"]; } // 服务器返回数据状态值异常 else if(iStatus == ActionResultStatusAuthError ||iStatus == ActionResultStatusNoLogin ||iStatus == ActionResultStatusLogined||iStatus==ActionResultSessionOverdue){ [self showReLoginDialog:message]; } else { [self showAlertViewText:message]; } } /** 盘亏原因,责任人数据成功回调 @param sender <#sender description#> */ - (void)onResposeSuccess:(ASIDownManager *)sender { // 服务器返回数据 [self cancel]; // 服务器返回数据 RequestResultModel *resultModel = [RequestResultModel dk_modelWithJSON:sender.mWebStr]; // 服务器返回数据状态值 int iStatus = resultModel.status; // 服务器返回数据消息 NSString *message = resultModel.message; // 服务器返回数据状态值正确 if (iStatus == 0) { NSDictionary *dicResult = (NSDictionary *)resultModel.result; NSArray *reasonArr; // 责任人 NSArray *personArr; // 盘亏原因 if(dicResult != nil){ // 盘亏原因 reasonArr = [dicResult objectForKey:@"ShortageReason"]; // 责任人 personArr = [dicResult objectForKey:@"ResponsiblePerson"]; } if(reasonArr != nil && reasonArr.count > 0) { for (int i = 0; i < reasonArr.count; i++) { NSDictionary *d = reasonArr[i]; BaseIDAndNameModel *m = [[BaseIDAndNameModel alloc] init]; m.id = [[d objectForKey:@"DictionaryID"] stringValue]; m.name = [d objectForKey:@"DictionaryValue"]; [self.infoReasons addObject:m]; } } if(personArr != nil && personArr.count > 0) { for (int i = 0; i < personArr.count; i++) { NSDictionary *d = personArr[i]; ResponsiblePersonModel *m = [[ResponsiblePersonModel alloc] init]; m.staffID = [[d objectForKey:@"StaffID"] stringValue]; m.staffCode = [d objectForKey:@"StaffCode"]; m.staffName = [d objectForKey:@"StaffName"]; [self.infoPersons addObject:m]; } } } // 服务器返回数据状态值异常 else if(iStatus == ActionResultStatusAuthError || iStatus == ActionResultStatusNoLogin || iStatus == ActionResultStatusLogined||iStatus==ActionResultSessionOverdue){ [self showReLoginDialog:message]; } else{ [self showAlertViewText:message]; return; } } /** 异常回调 @param sender <#sender description#> */ - (void)onFail:(ASIDownManager *)sender { [self cancel]; [self showAlertViewText:@"网络异常"]; } #pragma mark - 私有函数 /** 隐藏键盘 */ - (void)hideKey{ [self.view endEditing:YES]; } /** 隐藏进度条 */ - (void)cancel { [self stopLoading]; } /** 初始化ui */ - (void)initUI{ CGFloat heightRow = 30; CGFloat lblx = 20; CGFloat lblwidth = 80; CGFloat lblheight = 25; CGFloat valuex = 90; CGFloat valuey = 8; // CGFloat valuewidth = 120; CGFloat valueheight = 25; UIImage *pic = [UIImage imageNamed:@"bt_datasave"]; CGFloat h = (Screen_Width-40)*pic.size.height/pic.size.width; [self.view setBackgroundColor:[UIColor whiteColor]]; _scroll = [UIScrollView new]; _scroll.frame=CGRectMake(0, 0, Screen_Width, Screen_Height- h - 10 - rectStatusHeight-rectNavHeight); _scroll.backgroundColor = [UIColor whiteColor]; UITapGestureRecognizer* singleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKey)]; singleRecognizer.cancelsTouchesInView = NO; [_scroll addGestureRecognizer:singleRecognizer]; [self.view addSubview:_scroll]; _contentView = [[UIView alloc]init]; _contentView.frame = _scroll.frame; [_scroll addSubview:_contentView]; //唯一编码 ————————— UIView *vcode = [UIView new]; vcode.frame=CGRectMake(0, 0, Screen_Width, 41); [_contentView addSubview:vcode]; UILabel *lblcode = [UILabel new]; lblcode.frame=CGRectMake(lblx, 13, lblwidth, lblheight); lblcode.text = @"唯一编码:"; lblcode.font= [UIFont systemFontOfSize:TextFontOfSize]; [vcode addSubview:lblcode]; self.txtOnlyCode = [UITextField new]; self.txtOnlyCode.delegate=self; self.txtOnlyCode.placeholder = @"请输入或扫描唯一编码"; self.txtOnlyCode.font= [UIFont systemFontOfSize:TextFontOfSize]; self.txtOnlyCode.frame=CGRectMake(valuex, 13, Screen_Width - valuex - lblx, valueheight); [vcode addSubview:self.txtOnlyCode]; // UIButton *btnClearCode = [UIButton buttonWithType:UIButtonTypeCustom]; btnClearCode.frame=CGRectMake(Screen_Width-45, 13, 25, 25); [btnClearCode setBackgroundImage:[UIImage imageNamed:@"icon_scan"] forState:UIControlStateNormal]; [btnClearCode addTarget:self action:@selector(scanClick) forControlEvents:UIControlEventTouchUpInside]; [vcode addSubview:btnClearCode]; UIView *vgray = [UIView new]; vgray.frame=CGRectMake(0, CGRectGetMaxY(vcode.frame), Screen_Width, 5); vgray.backgroundColor=LineBackgroundColor; [_contentView addSubview:vgray]; // ————————— UIView *vonlycode = [UIView new]; vonlycode.frame=CGRectMake(0, CGRectGetMaxY(vgray.frame), Screen_Width, heightRow); [_contentView addSubview:vonlycode]; UILabel *lblonlyCode = [UILabel new]; lblonlyCode.frame=CGRectMake(lblx, valuey, lblwidth, valueheight); lblonlyCode.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; lblonlyCode.text = @"唯一编码:"; [vonlycode addSubview:lblonlyCode]; self.lblOnlyCode = [UILabel new]; self.lblOnlyCode.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - 10, valueheight); self.lblOnlyCode.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vonlycode addSubview:self.lblOnlyCode]; // ————————— UIView *vgrade = [UIView new]; vgrade.frame=CGRectMake(0, CGRectGetMaxY(vonlycode.frame), Screen_Width, heightRow); [_contentView addSubview:vgrade]; UILabel *lblgrade = [UILabel new]; lblgrade.frame=CGRectMake(lblx, valuey, lblwidth, valueheight); lblgrade.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; lblgrade.text = @"商品等级:"; [vgrade addSubview:lblgrade]; self.lblGradeName = [UILabel new]; self.lblGradeName.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.lblGradeName.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vgrade addSubview:self.lblGradeName]; // ————————— UIView *vspecification = [UIView new]; vspecification.frame=CGRectMake(0, CGRectGetMaxY(vgrade.frame), Screen_Width, heightRow); [_contentView addSubview:vspecification]; UILabel *lblspecification= [UILabel new]; lblspecification.frame=CGRectMake(lblx, valuey, lblwidth, valueheight); lblspecification.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; lblspecification.text = @"规 格:"; [vspecification addSubview:lblspecification]; self.lblSpecification = [UILabel new]; self.lblSpecification.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.lblSpecification.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vspecification addSubview:self.lblSpecification]; // ————————— UIView *vcolorNumber = [UIView new]; vcolorNumber.frame=CGRectMake(0, CGRectGetMaxY(vspecification.frame), Screen_Width, heightRow); [_contentView addSubview:vcolorNumber]; UILabel *lblcolorNumber= [UILabel new]; lblcolorNumber.frame=CGRectMake(lblx, valuey, lblwidth, valueheight); lblcolorNumber.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; lblcolorNumber.text = @"色 号:"; [vcolorNumber addSubview:lblcolorNumber]; self.lblColorNumber = [UILabel new]; self.lblColorNumber.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.lblColorNumber.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vcolorNumber addSubview:self.lblColorNumber]; // ————————— UIView *vwareHouseName = [UIView new]; vwareHouseName.frame=CGRectMake(0, CGRectGetMaxY(vcolorNumber.frame), Screen_Width, heightRow); [_contentView addSubview:vwareHouseName]; UILabel *lblwareHouseName= [UILabel new]; lblwareHouseName.frame=CGRectMake(lblx, valuey, lblwidth, valueheight); lblwareHouseName.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; lblwareHouseName.text = @"库 区:"; [vwareHouseName addSubview:lblwareHouseName]; self.lblWarehouseName = [UILabel new]; self.lblWarehouseName.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.lblWarehouseName.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vwareHouseName addSubview:self.lblWarehouseName]; // ————————— UIView *vpositionNumber = [UIView new]; vpositionNumber.frame=CGRectMake(0, CGRectGetMaxY(vwareHouseName.frame), Screen_Width, heightRow); [_contentView addSubview:vpositionNumber]; UILabel *lblpositionNumber= [UILabel new]; lblpositionNumber.frame=CGRectMake(lblx, valuey, lblwidth, valueheight); lblpositionNumber.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; lblpositionNumber.text = @"仓 位 号:"; [vpositionNumber addSubview:lblpositionNumber]; self.lblPositionNumber = [UILabel new]; self.lblPositionNumber.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.lblPositionNumber.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vpositionNumber addSubview:self.lblPositionNumber]; // ————————— UIView *vquantity = [UIView new]; vquantity.frame=CGRectMake(0, CGRectGetMaxY(vpositionNumber.frame), Screen_Width, heightRow); [_contentView addSubview:vquantity]; UILabel *lblquantity= [UILabel new]; lblquantity.frame=CGRectMake(lblx, valuey, lblwidth, valueheight); lblquantity.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; lblquantity.text = @"库存数量:"; [vquantity addSubview:lblquantity]; self.lblQuantity = [UILabel new]; self.lblQuantity.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.lblQuantity.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vquantity addSubview:self.lblQuantity]; // ————————— UIView *vcanSaleQuantity = [UIView new]; vcanSaleQuantity.frame=CGRectMake(0, CGRectGetMaxY(vquantity.frame), Screen_Width, heightRow); [_contentView addSubview:vcanSaleQuantity]; UILabel *lblcanSaleQuantity= [UILabel new]; lblcanSaleQuantity.frame=CGRectMake(lblx, valuey, lblwidth, valueheight); lblcanSaleQuantity.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; lblcanSaleQuantity.text = @"可售数量:"; [vcanSaleQuantity addSubview:lblcanSaleQuantity]; self.lblCanSaleQuantity = [UILabel new]; self.lblCanSaleQuantity.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.lblCanSaleQuantity.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vcanSaleQuantity addSubview:self.lblCanSaleQuantity]; // ————————— UIView *vStockingQuantity = [UIView new]; vStockingQuantity.frame=CGRectMake(0, CGRectGetMaxY(vcanSaleQuantity.frame), Screen_Width, heightRow); [_contentView addSubview:vStockingQuantity]; UILabel *lblStockingQuantity= [UILabel new]; lblStockingQuantity.frame=CGRectMake(lblx, valuey, lblwidth, valueheight); lblStockingQuantity.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; lblStockingQuantity.text = @"盘点数量:"; [vStockingQuantity addSubview:lblStockingQuantity]; self.txtStockingQuantity = [UITextField new]; self.txtStockingQuantity.frame=CGRectMake(valuex, valuey, Screen_Width - valuex-lblx, valueheight); self.txtStockingQuantity.keyboardType = UIKeyboardTypeNumberPad; self.txtStockingQuantity.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; self.txtStockingQuantity.placeholder = @"请输入盘点数量"; self.txtStockingQuantity.delegate = self; [vStockingQuantity addSubview:self.txtStockingQuantity]; // ————————— UIView *vresponseiblePerson = [UIView new]; vresponseiblePerson.frame=CGRectMake(0, CGRectGetMaxY(vStockingQuantity.frame), Screen_Width, heightRow); [_contentView addSubview:vresponseiblePerson]; UILabel *lblresponseiblePerson= [UILabel new]; lblresponseiblePerson.frame=CGRectMake(lblx, valuey, lblwidth, valueheight); lblresponseiblePerson.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; lblresponseiblePerson.text = @"责 任 人:"; [vresponseiblePerson addSubview:lblresponseiblePerson]; self.btnResponseiblePerson = [UIButton new]; self.btnResponseiblePerson.frame=CGRectMake(valuex, valuey, Screen_Width - valuex-lblx, valueheight); self.btnResponseiblePerson.titleLabel.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [self.btnResponseiblePerson setTitle:@"请选择责任人" forState:UIControlStateNormal]; self.btnResponseiblePerson.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; self.btnResponseiblePerson.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0); [self.btnResponseiblePerson setTitleColor:ButtonTitleColor forState:UIControlStateNormal]; [self.btnResponseiblePerson addTarget:self action:@selector(showPerson) forControlEvents:UIControlEventTouchUpInside]; [vresponseiblePerson addSubview:self.btnResponseiblePerson]; // ————————— UIView *vresponseibleReason = [UIView new]; vresponseibleReason.frame=CGRectMake(0, CGRectGetMaxY(vresponseiblePerson.frame), Screen_Width, heightRow); [_contentView addSubview:vresponseibleReason]; UILabel *lblresponseibleReason= [UILabel new]; lblresponseibleReason.frame=CGRectMake(lblx, valuey, lblwidth, valueheight); lblresponseibleReason.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; lblresponseibleReason.text = @"盘亏原因:"; [vresponseibleReason addSubview:lblresponseibleReason]; self.btnResponseibleReason = [UIButton new]; self.btnResponseibleReason.frame=CGRectMake(valuex, valuey, Screen_Width - valuex-lblx, valueheight); self.btnResponseibleReason.titleLabel.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [self.btnResponseibleReason setTitle:@"请选择盘亏原因" forState:UIControlStateNormal]; self.btnResponseibleReason.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; self.btnResponseibleReason.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0); [self.btnResponseibleReason setTitleColor:ButtonTitleColor forState:UIControlStateNormal]; [self.btnResponseibleReason addTarget:self action:@selector(showReason) forControlEvents:UIControlEventTouchUpInside]; [vresponseibleReason addSubview:self.btnResponseibleReason]; //保存 _btnSave = [UIButton buttonWithType:UIButtonTypeCustom]; _btnSave.frame=CGRectMake(lblx, Screen_Height - h - 5 - rectStatusHeight-rectNavHeight-10, Screen_Width-2*lblx, h); [_btnSave setBackgroundImage:pic forState:UIControlStateNormal]; [_btnSave addTarget:self action:@selector(dataSave) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_btnSave]; _scroll.frame= CGRectMake(0, 0, Screen_Width, Screen_Height - h - 5 - rectStatusHeight-rectNavHeight-20); _contentView.frame=CGRectMake(0,0,self.view.frame.size.width,CGRectGetMaxY(vresponseibleReason.frame)); if(CGRectGetMaxY(_contentView.frame) > Screen_Height - h - 5 - rectStatusHeight-rectNavHeight-20){ _scroll.contentSize=CGSizeMake(self.view.frame.size.width, CGRectGetMaxY(_contentView.frame)); } } /** 扫描条码的界面跳转 */ - (void)scanClick{ ScanViewController * rt = [[ScanViewController alloc]init]; rt.rootVC = self; self.navigationController.visibleViewController.hidesBottomBarWhenPushed=YES; [self.navigationController pushViewController:rt animated:YES]; } /** 保存数据 */ - (void)dataSave{ [self.view endEditing:YES]; if (![self check]) { return; } [self saveDataManager]; } /** 保存前的校验 @param BOOL <#BOOL description#> @return <#return value description#> */ - (BOOL)check{ if(self.txtOnlyCode.text == nil||[self.txtOnlyCode.text isEqualToString:@""]){ [self showAlertViewText:@"请输入或扫描唯一编码"]; return NO; } if(self.sCode == nil || [self.sCode isEqualToString:@""] ) { [self showAlertViewText:@"请按回车加载数据!"]; return NO; } // if([self.txtStockingQuantity.text doubleValue] == 0){ // [self showAlertViewText:@"库存盘点数量大于0"]; // return NO; // // } if(self.txtStockingQuantity == nil || [self.txtStockingQuantity.text isEqualToString:@""]) { [self showAlertViewText:@"请输入盘点数量"]; return NO; } if(self.txtStockingQuantity.text != nil||![self.txtStockingQuantity.text isEqualToString:@""]){ RegularExpression *regularExpr = [[RegularExpression alloc]init]; bool flg = [regularExpr AmountRegular:self.txtStockingQuantity.text]; if(!flg){ [self showAlertViewText:@"盘点数量格式不正确"]; self.txtStockingQuantity.text = @""; return NO; } } if(self.sResponseiblePerson == nil||[self.sResponseiblePerson isEqualToString:@""]) { [self showAlertViewText:@"请选择责任人"]; return NO; } return YES; } /** 根据唯一编码加载数据 */ - (void)loadData{ self.hidesBottomBarWhenPushed=YES; StockingGoodsListViewController *vc = [[StockingGoodsListViewController alloc] init]; vc.onlyCode = self.sCode; vc.stockDelegate = self; [self.navigationController pushViewController:vc animated:YES]; } /** 保存数据 */ - (void)saveDataManager{ [self startLoading]; self.saveManager = [[ASIDownManager alloc] init]; self.saveManager.delegate = self; self.saveManager.onRequestSuccess = @selector(onSaveSuccess:); self.saveManager.onRequestFail = @selector(onFail:); NSString *urlStr = ServerURL; NSMutableDictionary *dict = [NSMutableDictionary dictionary]; [dict setObject:@"SaveCheckDataIphone" forKey:@"Action"]; [dict setObject:[NSString stringWithFormat:@"%@",kkAccountCode]forKey:@"AccountCode"]; [dict setObject:kkUserCode forKey:@"UserCode"]; [dict setObject:kkUserPwd forKey:@"UserPassword"]; [dict setObject:kkSessionKey forKey:@"SessionKey"]; if (kkLicenseCode != nil) { [dict setObject:kkLicenseCode forKey:@"LicenseCode"]; } //主界面 NSMutableDictionary *dicHead = [[NSMutableDictionary alloc] init]; NSMutableArray *arrHead = [[NSMutableArray alloc]init]; [dicHead setObject:self.inventoryId forKeyedSubscript:@"InventoryID"]; [dicHead setObject:self.lblQuantity.text forKeyedSubscript:@"InventoryQuantity"]; [dicHead setObject:self.txtStockingQuantity.text forKeyedSubscript:@"CheckQuantity"]; [dicHead setObject:self.sResponseibleReason forKeyedSubscript:@"ShortageReason"]; [dicHead setObject:self.sResponseiblePerson forKeyedSubscript:@"ResponsiblePerson"]; [dicHead setObject:self.codeId forKeyedSubscript:@"CodeID"]; [dicHead setObject:@"" forKeyedSubscript:@"Remarks"]; [arrHead addObject:dicHead]; [dict setObject:[Util objectToJson:arrHead] forKey:@"CheckDetailData"]; [self.saveManager postHttpRequest:urlStr dic:dict path:nil fileName:nil]; } /** 加载盘亏原因,责任人 */ - (void)loadInitResposeData{ [self startLoading]; NSString *urlStr = ServerURL; NSMutableDictionary *dict = [NSMutableDictionary new]; [dict setObject:@"GetInventoyCheckInitDataIphone" forKey:@"Action"]; [dict setObject:kkAccountCode forKey:@"AccountCode"]; [dict setObject:kkUserCode forKey:@"UserCode"]; [dict setObject:kkUserPwd forKey:@"UserPassword"]; [dict setObject:kkSessionKey forKey:@"SessionKey"]; self.downManager = [[ASIDownManager alloc] init]; self.downManager.delegate = self; self.downManager.onRequestSuccess = @selector(onResposeSuccess:); self.downManager.onRequestFail = @selector(onFail:); [self.downManager postHttpRequest:urlStr dic:dict path:nil fileName:nil]; } /** Notification */ - (void)initNotification{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onFocusPeopleEditingChanged:) name:@"UITextFieldTextDidChangeNotification" object:self.txtStockingQuantity ]; } /** 责任人点击事件 */ - (void)showPerson{ if(self.sCode == nil || [self.sCode isEqualToString:@""] ) { return ; } self.hidesBottomBarWhenPushed=YES; ResponsiblePersonViewController *vc = [[ResponsiblePersonViewController alloc] init]; vc.arrFilter = self.infoPersons; vc.arrSearch = self.infoPersons; vc.respDelegate = self; [self.navigationController pushViewController:vc animated:YES]; } /** 盘亏原因点击事件 */ - (void)showReason{ if(self.sCode == nil || [self.sCode isEqualToString:@""] ) { return ; } self.hidesBottomBarWhenPushed=YES; BaseIDAndNameViewController *tc = [[BaseIDAndNameViewController alloc ]init]; tc.bDelegate = self; tc.isPresentViewFlg = NO; tc.arrFilter = self.infoReasons; tc.arrSearch = self.infoReasons; tc.showDialogViewTag = baseIdAndNameStockingReason; [self.navigationController pushViewController:tc animated:YES]; } /** 显示键盘 */ - (void)keyboardWillShow { if ([self.txtOnlyCode isFirstResponder]){ return; } if(!_keyboardShow){ [UIView animateWithDuration:0.3f animations:^ { self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y-210, self.view.frame.size.width, self.view.frame.size.height); }];} _keyboardShow=YES; } /** 隐藏键盘 */ - (void)keyboardWillHide { if ([self.txtOnlyCode isFirstResponder]){ return; } self.view.backgroundColor = [UIColor colorWithWhite:0.96 alpha:1.0]; if(_keyboardShow){ [UIView animateWithDuration:0.1f animations:^ { self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y+210, self.view.frame.size.width, self.view.frame.size.height); }];} _keyboardShow=NO; } /** 清空数据 */ - (void)clearData{ self.inventoryId = @""; self.sCode = @""; self.codeId = @""; self.lblOnlyCode.text = @""; self.txtOnlyCode.text = @""; self.lblWarehouseName.text = @""; self.lblSpecification.text = @""; self.lblGradeName.text = @""; self.lblColorNumber.text = @""; self.lblPositionNumber.text = @""; [self.btnResponseibleReason setTitle:@"请选择盘亏原因" forState:UIControlStateNormal]; [self.btnResponseiblePerson setTitle:@"请选择责任人" forState:UIControlStateNormal]; self.sResponseiblePerson = @""; self.sResponseibleReason = @""; self.lblQuantity.text = @""; self.txtStockingQuantity.text = @""; self.lblCanSaleQuantity.text = @""; } @end