// // InventoryFreezedOrderSearchViewController.m // IBOSS // // Created by 关宏厚 on 2020/5/9. // Copyright © 2020 elongtian. All rights reserved. // #import "InventoryFreezedOrderSearchViewController.h" @interface InventoryFreezedOrderSearchViewController () @end @implementation InventoryFreezedOrderSearchViewController - (void)viewDidLoad { [super viewDidLoad]; [self initUI]; [self initSlideSlip]; _unfreezeGoodsList=[[NSMutableArray alloc]init]; } -(void)initUI { self.view.backgroundColor = [UIColor whiteColor]; _searchView = [[UIView alloc] init]; _searchView.frame = CGRectMake(15,10,Screen_Width-30,35); _searchView.backgroundColor = LineBackgroundColor; _searchView.layer.cornerRadius = 10; _searchView.layer.masksToBounds = YES; UIButton *btnSearch = [UIButton buttonWithType:UIButtonTypeCustom]; btnSearch.frame = CGRectMake(20,0, Screen_Width-40, 35); btnSearch.layer.cornerRadius = 6.0f; [btnSearch setTitle:@"库存解冻订单查询" forState:UIControlStateNormal]; [btnSearch setTitleColor:NavBarUnEnbleItemColor forState:UIControlStateNormal]; btnSearch.titleLabel.textAlignment = NSTextAlignmentCenter; btnSearch.titleLabel.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize]; [btnSearch addTarget:self action:@selector(dataSearch) forControlEvents:UIControlEventTouchUpInside]; [_searchView addSubview:btnSearch]; [self.view addSubview:_searchView]; _viewBackground = [UIView new]; _viewBackground.frame = CGRectMake(0, CGRectGetMaxY(_searchView.frame)+10, Screen_Width, 10); _viewBackground.backgroundColor = LineBackgroundColor; [self.view addSubview:_viewBackground]; _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(_viewBackground.frame),self.view.frame.size.width, self.view.frame.size.height-140-rectStatusHeight-rectNavHeight)]; _tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight; _tableView.separatorStyle=UITableViewCellSeparatorStyleNone; _tableView.delegate = self; _tableView.dataSource=self; [self.view addSubview:_tableView]; //保存 _bottomView = [UIView new]; [_bottomView setBackgroundColor:[UIColor whiteColor]]; _bottomView.frame=CGRectMake(0, Screen_Height-140-rectStatusHeight-rectNavHeight, self.view.frame.size.width, 50); [self.view addSubview:_bottomView]; UIView *bottomSeparator= [UIView new]; bottomSeparator.frame=CGRectMake(0, 0, Screen_Width, 1); bottomSeparator.backgroundColor = LineBackgroundColor; [_bottomView addSubview:bottomSeparator]; _btnCheckAll = [UIButton buttonWithType:UIButtonTypeCustom]; _btnCheckAll.frame=CGRectMake(15,15, 25, 25); [_btnCheckAll addTarget:self action:@selector(checkAll) forControlEvents:UIControlEventTouchUpInside]; [_bottomView addSubview:_btnCheckAll]; UILabel *lblall = [UILabel new]; lblall.frame=CGRectMake(CGRectGetMaxX(_btnCheckAll.frame)+3,15, 60, 25); lblall.text = @"全选"; [_bottomView addSubview:lblall]; [ self changeCheckAllUnSelect]; _btnSave = [UIButton buttonWithType:UIButtonTypeCustom]; [_btnSave setTitle:@"确定" forState:UIControlStateNormal]; [_btnSave setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; _btnSave.frame=CGRectMake(Screen_Width-114,0, 114,50); [_btnSave setBackgroundColor:[UIColor colorWithRed:189.0/255.0 green:0 blue:7.0/255.0 alpha:1]]; [_btnSave addTarget:self action:@selector(submitUnFreezeData) forControlEvents:UIControlEventTouchUpInside]; [_bottomView addSubview:_btnSave]; } /** 抽屉初始化 */ - (void)initSlideSlip{ // 抽屉对象 __weak typeof(self) weakself = self; self.filterController = [[SideSlipFilterController alloc] initWithSponsor:self resetBlock:^(NSArray *dataList) { for (SideSlipModel *model in dataList) { model.selectedItemList = nil; model.customDict = nil; } } commitBlock:^(NSArray *dataList) { // 查询条件 SideSlipModel *serviceRegionModel = dataList[0]; InventoryFreezeOrderSearchModel *searchModel = [serviceRegionModel.customDict objectForKey:INVENTORY_FREEZE_ORDER_SEARCH_MODEL]; self->_customerCode=searchModel.customerCode; self->_contacts=searchModel.contacts; self->_staffName=searchModel.staffName; self->_telephone=searchModel.telephone; self->_freezeReasonName=searchModel.freezeReasonName; InventoryFrozenOrderListViewController *orderlistVc=[[InventoryFrozenOrderListViewController alloc]init]; self.cNav.visibleViewController.hidesBottomBarWhenPushed=YES; orderlistVc.customerCode=self->_customerCode; orderlistVc.contacts=self->_contacts; orderlistVc.staffName=self->_staffName; orderlistVc.telephone=self->_telephone; orderlistVc.freezeReasonName=self->_freezeReasonName; orderlistVc.inventoryDelegate=self; [self.cNav pushViewController:orderlistVc animated:YES]; [weakself.filterController dismiss]; }]; _filterController.animationDuration = AnimationDuration; _filterController.hasHeadView = YES; _filterController.sideSlipLeading = UIScreenSideSlipLeading*[UIScreen mainScreen].bounds.size.width; _filterController.dataList = [self packageDataList]; } /** 抽屉数据源 @return <#return value description#> */ - (NSArray *)packageDataList { NSMutableArray *dataArray = [NSMutableArray array]; SideSlipModel *model = [[SideSlipModel alloc] init]; model.containerCellClass = @"InventoryFreezeOrderSearchCell"; model.regionTitle = @"查询条件"; [dataArray addObject:model]; return [dataArray mutableCopy]; } -(void)submitUnFreezeData { if(_unfreezeGoodsList==nil||_unfreezeGoodsList.count==0) { [self showAlertViewText:@"没有可提交的商品!"]; return; } int num=0; for(int j=0;j<_unfreezeGoodsList.count;j++) { InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:j] ; if(goodsModel.isChecked) { ++num; } } if(num==0) { [self showAlertViewText:@"至少选择一种商品!"]; return; } _submitUnfreezeGoodsList=[[NSMutableArray alloc]init]; for(int j=0;j<_unfreezeGoodsList.count;j++) { InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:j] ; if(goodsModel.isChecked) { [_submitUnfreezeGoodsList addObject:goodsModel]; } } NewInventoryUnfreezeViewController *unfreezeVc = [[NewInventoryUnfreezeViewController alloc] init]; unfreezeVc.freezeId=_freezeId; unfreezeVc.unfreezeId=_unfreezeId; unfreezeVc.inventoryDelegate=self; unfreezeVc.unfreezeGoodsList=_submitUnfreezeGoodsList; [self.cNav pushViewController:unfreezeVc animated:YES]; } -(void)loadGoodsDetail:(NSString*)freezeId { _mDownManager = [[ASIDownManager alloc] init]; _mDownManager.delegate = self; _mDownManager.onRequestSuccess = @selector(onLoadDetailFinish:); _mDownManager.onRequestFail = @selector(onLoadDetailFail:); NSString *urlStr = ServerURL; NSMutableDictionary *dict = [NSMutableDictionary dictionary]; [dict setObject:@"GetFreezeDetailDataSearchIPhone" forKey:@"Action"]; [dict setObject:[NSString stringWithFormat:@"%@",kkAccountCode]forKey:@"AccountCode"]; [dict setObject:kkUserCode forKey:@"UserCode"]; [dict setObject:kkUserPwd forKey:@"UserPassword"]; [dict setObject:kkSessionKey forKey:@"SessionKey"]; [dict setObject:freezeId forKey:@"FreezeID"]; [_mDownManager postHttpRequest:urlStr dic:dict path:nil fileName:nil]; } -(void)refreshData { if(_unfreezeGoodsList!=nil&&_unfreezeGoodsList.count>0) { [_unfreezeGoodsList removeAllObjects]; [_tableView reloadData]; } } -(void)onLoadDetailFinish:(ASIDownManager *)sender { [self cancel]; RequestResultModel *resultModel = [RequestResultModel dk_modelWithJSON:sender.mWebStr]; int iStatus = resultModel.status; // 服务器返回数据消息 NSString *message = resultModel.message; if(iStatus==0) { NSArray *resultArray=(NSArray*)resultModel.result; if(resultArray!=nil&&resultArray.count>0) { for(int i=0;i[goodsModel.allUnfreezeQuantity doubleValue]) { goodsModel.isChecked=!goodsModel.isChecked; [cell setCheckBackground: goodsModel.isChecked]; int num=0; for(int i=0;i<_unfreezeGoodsList.count;i++) { InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:i]; BOOL isChecked=goodsModel.isChecked; if(isChecked) { ++num; } } NSString *saveTxt=[NSString stringWithFormat:@"确定(%d)",num]; [_btnSave setTitle:saveTxt forState:UIControlStateNormal]; if(![self isCheckedAll]) { [self changeCheckAllUnSelect]; } else{ [self changeCheckALLSelect]; } } } //看是否全选 - (BOOL)isCheckedAll { BOOL ischecked=YES; for(int i=0;i<_unfreezeGoodsList.count;i++) { InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:i]; if(goodsModel.isChecked == NO) { ischecked=NO; break; } } return ischecked; } /** 全部选中 */ - (void)changeCheckALLSelect { [_btnCheckAll setBackgroundImage:[UIImage imageNamed:@"order_checked"] forState:UIControlStateNormal]; } -(void)checkAll { [self updateAllCellCheck]; [_tableView reloadData]; int num=0; for(int i=0;i<_unfreezeGoodsList.count;i++) { InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:i]; BOOL isChecked=goodsModel.isChecked; if(isChecked) { ++num; } } NSString *saveTxt=[NSString stringWithFormat:@"确定(%d)",num]; [_btnSave setTitle:saveTxt forState:UIControlStateNormal]; if(!_isCheckAll) { [self changeCheckAllUnSelect]; } else{ [self changeCheckALLSelect]; } } //全选或者全不选 - (BOOL)updateAllCellCheck { if(!_isCheckAll){ _isCheckAll=YES; for(int i=0;i<_unfreezeGoodsList.count;i++) { InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:i]; if([goodsModel.freezeQuantity doubleValue]>[goodsModel.allUnfreezeQuantity doubleValue]) { goodsModel.isChecked =YES; } else{ goodsModel.isChecked =NO; } } } else { _isCheckAll=NO; for(int i=0;i<_unfreezeGoodsList.count;i++) { InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:i]; goodsModel.isChecked =NO; } } return NO; } /** 进度条隐藏 */ - (void)cancel { [self stopLoading]; } /** 全部未选中 */ - (void)changeCheckAllUnSelect { [_btnCheckAll setBackgroundImage:[UIImage imageNamed:@"order_unchecked"] forState:UIControlStateNormal]; } /** 单元格cell个数 @param tableView <#tableView description#> @param section <#section description#> @return <#return value description#> */ - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [_unfreezeGoodsList count]; } /** table view 分区数 @param tableView <#tableView description#> @return <#return value description#> */ - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } /** cell 高度 @param tableView <#tableView description#> @param indexPath <#indexPath description#> @return <#return value description#> */ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return [self.heights[@(indexPath.row)] doubleValue];; } /** 高度 @return <#return value description#> */ - (NSMutableDictionary *)heights{ if (_heights == nil){ _heights = [NSMutableDictionary dictionary]; } return _heights; } /** 预防高度 @param tableView <#tableView description#> @param indexPath <#indexPath description#> @return <#return value description#> */ -(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath{ return 250; } /** 每个单元格cell @param tableView <#tableView description#> @param indexPath <#indexPath description#> @return <#return value description#> */ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellIdentifier = @"InventoryFrozenGoodsListCell"; InventoryFrozenGoodsListCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier ]; cell = [[InventoryFrozenGoodsListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; cell.selectionStyle=UITableViewCellSelectionStyleNone; InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:indexPath.row]; cell.delegate = self; [cell setInventoryFrozenGoodsListCell:goodsModel]; cell.position = (int)indexPath.row; self.heights[@(indexPath.row)] = @(cell.height); BOOL isChecked= goodsModel.isChecked; [cell setCheckBackground:isChecked]; return cell; } -(void)dataSearch { [_filterController showPagerView:self.cNav]; } -(void)getInventoryFrozenGoodsDetail:(NSString*)freezeId unfreezeId:(NSString*)unfreezeId { self.freezeId=freezeId; self.unfreezeId=unfreezeId; [self loadGoodsDetail:freezeId]; } /** 安全区视图发生变化 */ -(void)viewSafeAreaInsetsDidChange{ _tableView.frame =CGRectMake(0,CGRectGetMaxY(_viewBackground.frame), self.view.frame.size.width,self.view.superview.frame.size.height-60-CGRectGetMaxY(_viewBackground.frame)); _bottomView.frame=CGRectMake(0, self.view.superview.frame.size.height-50, self.view.frame.size.width, 50); [super viewSafeAreaInsetsDidChange]; } @end