// // NewStockingViewController.m // IBOSSmini // // Created by apple on 2017/5/17. // Copyright © 2017年 elongtian. 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 () { UIView *contentView; UIScrollView *scroll; BOOL isHaveDot; BOOL keyboardShow; UIButton *_btnSave; } /** 查询数据对象 */ @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 initUI]; [self initNotification]; [self loadInitResposeData] ; } /** didReceiveMemoryWarning函数 */ - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } /** 安全区视图发生变化 */ -(void)viewSafeAreaInsetsDidChange{ self.view.backgroundColor = [UIColor whiteColor]; UIImage *pic=[UIImage imageNamed:@"bt_datasave"]; CGFloat h = (Screen_Width-40)*pic.size.height/pic.size.width; _btnSave.frame=CGRectMake(20, self.view.safeAreaLayoutGuide.layoutFrame.size.height - h - 5, Screen_Width-2*20, h); scroll.frame = CGRectMake(0, 0,self.view.safeAreaLayoutGuide.layoutFrame.size.width, self.view.safeAreaLayoutGuide.layoutFrame.size.height-h-5); [super viewSafeAreaInsetsDidChange]; } /** 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 new]; } return _infoPersons; } /** 盘亏原因数据源 @return <#return value description#> */ - (NSMutableArray *)infoReasons{ if (_infoReasons==nil) { _infoReasons = [NSMutableArray new]; } return _infoReasons; } #pragma mark - 委托回调函数 /** 责任人 @param item <#item description#> */ - (void)updateResponsiblePerson:(ResponsiblePersonModel *)item{ self.sResponseiblePerson = item.staffID; [self.responseiblePerson 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.responseibleReason setTitle:model.name forState:UIControlStateNormal]; } /** 选取商品信息后回调 @param model <#model description#> */ - (void)stockTextDoneDatas:(StockingModel *)model{ self.inventoryId = model.inventoryID; self.codeId = model.codeID; self.onlyCode.text = model.onlyCode; self.txtOnlyCode.text = model.onlyCode; self.warehouseName.text = model.warehouseName; self.specification.text = model.specification; self.gradeName.text = model.gradeName; self.colorNumber.text = model.colorNumber; self.positionNumber.text = model.positionNumber; [self.responseibleReason setTitle:@"请选择盘亏原因" forState:UIControlStateNormal]; [self.responseiblePerson setTitle:@"请选择责任人" forState:UIControlStateNormal]; self.sResponseiblePerson = @""; self.sResponseibleReason = @""; self.quantity.text = model.quantity; self.txtStockingQuantity.text = @""; self.canSaleQuantity.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]-9999999999.999999f>0.0000000001f) { textField.text =@"9999999999.999999"; toBeString=@"9999999999.999999"; } } 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 { // 服务器返回数据 NSDictionary *dic = [sender.mWebStr JSONValue]; [self Cancel]; // 服务器返回数据是否正确 if (dic && [dic isKindOfClass:[NSDictionary class]]) { // 服务器返回数据状态值 int iStatus = [[dic objectForKey:@"Status"] intValue]; // 服务器返回数据消息 NSString *message=[dic objectForKey:@"Message"]; // 服务器返回数据状态值正确 if (iStatus == 0) { [self clearData]; [self showAlertViewText:@"保存成功!"]; // //关闭当前页面 刷新一览主界面 // if ([self.stockdelegate respondsToSelector:@selector(refreshData)]) { // [self.stockdelegate performSelector:@selector(refreshData)]; // } // [self.navigationController popViewControllerAnimated:YES]; } // 服务器返回数据状态值异常 else if(iStatus==ActionResultStatusAuthError ||iStatus==ActionResultStatusNoLogin ||iStatus==ActionResultStatusLogined ||iStatus == ActionResultStatusLoginedInvalid){ [self showReLoginDialog:message]; } else { [self showAlertViewText:message]; } } } /** 盘亏原因,责任人数据成功回调 @param sender <#sender description#> */ - (void)onResposeSuccess:(ASIDownManager *)sender { // 服务器返回数据 [self Cancel]; NSDictionary *dic = [sender.mWebStr JSONValue]; // 服务器返回数据是否正确 if (dic && [dic isKindOfClass:[NSDictionary class]]) { // 服务器返回数据状态值 int iStatus = [[dic objectForKey:@"Status"] intValue]; // 服务器返回数据消息 NSString *message=[dic objectForKey:@"Message"]; // 服务器返回数据状态值正确 if (iStatus == 0) { NSDictionary *dicResult =[dic objectForKey:@"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 == ActionResultStatusLoginedInvalid){ [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 = 40; 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; 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, 51); [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.onlyCode = [UILabel new]; self.onlyCode.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - 10, valueheight); self.onlyCode.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vonlycode addSubview:self.onlyCode]; //================== 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.gradeName = [UILabel new]; self.gradeName.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.gradeName.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vgrade addSubview:self.gradeName]; //================== 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.specification = [UILabel new]; self.specification.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.specification.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vspecification addSubview:self.specification]; //================== 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.colorNumber = [UILabel new]; self.colorNumber.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.colorNumber.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vcolorNumber addSubview:self.colorNumber]; //================== 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.warehouseName = [UILabel new]; self.warehouseName.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.warehouseName.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vwareHouseName addSubview:self.warehouseName]; //================== 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.positionNumber = [UILabel new]; self.positionNumber.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.positionNumber.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vpositionNumber addSubview:self.positionNumber]; //================== 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.quantity = [UILabel new]; self.quantity.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.quantity.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vquantity addSubview:self.quantity]; //================== 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.canSaleQuantity = [UILabel new]; self.canSaleQuantity.frame=CGRectMake(valuex, valuey, Screen_Width - valuex - lblx, valueheight); self.canSaleQuantity.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [vcanSaleQuantity addSubview:self.canSaleQuantity]; //================== 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.responseiblePerson = [UIButton new]; self.responseiblePerson.frame=CGRectMake(valuex, valuey, Screen_Width - valuex-lblx, valueheight); self.responseiblePerson.titleLabel.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [self.responseiblePerson setTitle:@"请选择责任人" forState:UIControlStateNormal]; self.responseiblePerson.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; self.responseiblePerson.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0); [self.responseiblePerson setTitleColor:ButtonTitleColor forState:UIControlStateNormal]; [self.responseiblePerson addTarget:self action:@selector(showPerson) forControlEvents:UIControlEventTouchUpInside]; [vresponseiblePerson addSubview:self.responseiblePerson]; //================== 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.responseibleReason = [UIButton new]; self.responseibleReason.frame=CGRectMake(valuex, valuey, Screen_Width - valuex-lblx, valueheight); self.responseibleReason.titleLabel.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [self.responseibleReason setTitle:@"请选择盘亏原因" forState:UIControlStateNormal]; self.responseibleReason.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; self.responseibleReason.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0); [self.responseibleReason setTitleColor:ButtonTitleColor forState:UIControlStateNormal]; [self.responseibleReason addTarget:self action:@selector(showReason) forControlEvents:UIControlEventTouchUpInside]; [vresponseibleReason addSubview:self.responseibleReason]; //保存 _btnSave=[UIButton buttonWithType:UIButtonTypeCustom]; _btnSave.frame=CGRectMake(lblx, Screen_Height - h - 5 - rectStatusHeight-rectNavHeight, Screen_Width-2*lblx, h); [_btnSave setBackgroundImage:pic forState:UIControlStateNormal]; [_btnSave addTarget:self action:@selector(dataSave) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_btnSave]; contentView.frame=CGRectMake(0,0,self.view.frame.size.width,CGRectGetMaxY(vresponseibleReason.frame)); scroll.contentSize=CGSizeMake(self.view.frame.size.width, CGRectGetMaxY(vresponseibleReason.frame)+20); } /** 扫描条码的界面跳转 */ -(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.OnImageDown = @selector(onSaveSuccess:); self.saveManager.OnImageFail = @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.quantity.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.OnImageDown = @selector(onResposeSuccess:); self.downManager.OnImageFail = @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.filterArr = self.infoPersons; vc.searchArr = 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.filterArr = self.infoReasons; tc.searchArr = 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-190, 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+190, self.view.frame.size.width, self.view.frame.size.height); }];} keyboardShow=NO; } /** 清空数据 */ - (void)clearData{ self.inventoryId = @""; self.sCode = @""; self.codeId = @""; self.onlyCode.text = @""; self.txtOnlyCode.text = @""; self.warehouseName.text = @""; self.specification.text = @""; self.gradeName.text = @""; self.colorNumber.text = @""; self.positionNumber.text = @""; [self.responseibleReason setTitle:@"请选择盘亏原因" forState:UIControlStateNormal]; [self.responseiblePerson setTitle:@"请选择责任人" forState:UIControlStateNormal]; self.sResponseiblePerson = @""; self.sResponseibleReason = @""; self.quantity.text = @""; self.txtStockingQuantity.text = @""; self.canSaleQuantity.text = @""; } @end