// // OtherInStorageListVC.m // IBOSSmini // // Created by guan hong hou on 2018/4/20. // Copyright © 2018年 elongtian. All rights reserved. // #import "OtherInStorageListVC.h" @interface OtherInStorageListVC (){ int pageNumber; } @end @implementation OtherInStorageListVC #pragma mark - 公共函数 /** 视图加载完成 */ - (void)viewDidLoad { [super viewDidLoad]; [self loadNavStyle]; [self initUI]; [self initSlideSlip]; } /** 修改:2017-9-25 适配机型 安全区视图发生变化 */ -(void)viewSafeAreaInsetsDidChange{ self.view.backgroundColor = [UIColor whiteColor]; _vCustomTableView.frame = CGRectMake(0,CGRectGetMaxY(_topSeparatorView.frame),Screen_Width, self.view.safeAreaLayoutGuide.layoutFrame.size.height-CGRectGetMaxY(_topSeparatorView.frame) ); [super viewSafeAreaInsetsDidChange]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } #pragma mark - 委托函数 #pragma mark - 刷新回调 /** 取消刷新 @param sender sender description @return return value description */ - (BOOL)CanRefreshTableView:(RefreshTableView *)sender { return YES; } /** 加载更多 @param sender sender description */ - (void)LoadMoreList:(RefreshTableView *)sender { pageNumber++; [self startLoading]; [self loadData]; } /** 下拉刷新 @param sender <#sender description#> */ - (void)ReloadList:(RefreshTableView *)sender{ pageNumber = 1; [_dataList removeAllObjects]; [_vCustomTableView reloadData]; _vCustomTableView.mbMoreHidden=YES; [self startLoading]; [self loadData]; } /** 到入库列表明细 @param index <#index description#> */ -(void) goInStorageDetail:(NSInteger)index{ self.hidesBottomBarWhenPushed = YES; _otherInStorageListModel=[_dataList objectAtIndex:index]; OtherInStorageGoodsDetailListVC *goodsDetailVc=[[OtherInStorageGoodsDetailListVC alloc]init]; goodsDetailVc.enterId=_otherInStorageListModel.enterId; goodsDetailVc.enterNo=_otherInStorageListModel.enterNo; [self.navigationController pushViewController:goodsDetailVc animated:YES]; } /** 冲正 @param index <#index description#> */ -(void) goCorrect:(NSInteger)index{ _otherInStorageListModel=[_dataList objectAtIndex:index]; UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"" message:@"确定要冲正吗?" preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){ [self correctData:_otherInStorageListModel]; }]; UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){ }]; UIColor *cancelColor=[UIColor blackColor]; UIColor *sureColor=[UIColor redColor]; [cancelAction setValue:cancelColor forKey:@"titleTextColor"]; [okAction setValue:sureColor forKey:@"titleTextColor"]; [alert addAction:okAction]; [alert addAction:cancelAction]; [self presentViewController:alert animated:YES completion:nil]; } /** 隐藏键盘 @param scrollView <#scrollView description#> */ -(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { [self.view endEditing:YES]; } /** 冲正成功数据源回调 @param sender <#sender description#> */ - (void)onCorrectFinish:(ASIDownManager *)sender { NSDictionary *dic = [sender.mWebStr JSONValue]; _vCustomTableView.mTableView.backgroundView = nil; [self stopLoading]; // 服务器返回数据是否正确 if (dic && [dic isKindOfClass:[NSDictionary class]]) { // 服务器返回数据状态值 int iStatus = [[dic objectForKey:@"Status"] intValue]; // 服务器返回数据消息 NSString *message=[dic objectForKey:@"Message"]; // 服务器返回数据状态值正确 if (iStatus == 0) { pageNumber = 1; [_dataList removeAllObjects]; [_vCustomTableView reloadData]; _vCustomTableView.mbMoreHidden=YES; [self startLoading]; [self loadData]; [self showAlertViewText:@"冲正成功"]; } // 服务器返回数据状态值异常 else if(iStatus==ActionResultStatusAuthError ||iStatus==ActionResultStatusNoLogin ||iStatus==ActionResultStatusLogined ||iStatus == ActionResultStatusLoginedInvalid){ [self showReLoginDialog:message]; } else{ [_vCustomTableView FinishLoading]; [self showAlertViewText:message]; } } } /** 冲正失败数据源回调 @param sender <#sender description#> */ - (void)onCorrectFail:(ASIDownManager *)sender { [self stopLoading]; [self showAlertViewText:@"加载失败"]; } /** 单元格cell个数 @param tableView <#tableView description#> @param section <#section description#> @return <#return value description#> */ -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [_dataList count]; } /** tableview的分区数 @param tableView <#tableView description#> @return <#return value description#> */ -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } /** 高度 @param tableView <#tableView description#> @param indexPath <#indexPath description#> @return <#return value description#> */ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return 275; } /** 每个单元格cell @param tableView <#tableView description#> @param indexPath <#indexPath description#> @return <#return value description#> */ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"SalesInStorageListCell"; SalesInStorageListCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier ]; if (!cell) { cell=[[SalesInStorageListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; cell.selectionStyle=UITableViewCellSelectionStyleNone; } else //当页面拉动的时候 当cell存在并且最后一个存在 把它进行删除就出来一个独特的cell我们在进行数据配置即可避免 { while ([cell.contentView.subviews lastObject] != nil) { [(UIView *)[cell.contentView.subviews lastObject] removeFromSuperview]; } } _otherInStorageListModel= [_dataList objectAtIndex:indexPath.row]; cell.inStorageDelegate = self; cell.index=indexPath.row; [cell setSalesInStorageListModel:_otherInStorageListModel]; return cell; } /** 点击单元格事件 @param tableView tableView description @param indexPath indexPath description */ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { self.hidesBottomBarWhenPushed=YES; OtherInStorageDetailVC *detailVc=[[OtherInStorageDetailVC alloc] init]; OtherInStorageListModel *otherInStorageDetailModel= [_dataList objectAtIndex:indexPath.row]; detailVc.otherInStorageListModel= otherInStorageDetailModel; [self.navigationController pushViewController:detailVc animated:YES]; } /** 显示下拉更新 @param scrollView <#scrollView description#> */ - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ if (scrollView.isDragging) {//显示下拉更新 if (_vCustomTableView.mRefreshHeader.state == PullRefreshPulling && scrollView.contentOffset.y > -65.0f && scrollView.contentOffset.y < 0.0f && [_vCustomTableView CanRefresh]) { [_vCustomTableView.mRefreshHeader setState:PullRefreshNormal]; } else if (_vCustomTableView.mRefreshHeader.state == PullRefreshNormal && scrollView.contentOffset.y < -65.0f && [_vCustomTableView CanRefresh]) {//显示松开更新 [_vCustomTableView.mRefreshHeader setState:PullRefreshPulling]; } } } -(void)refreshData{ pageNumber = 1; [_dataList removeAllObjects]; [_vCustomTableView reloadData]; _vCustomTableView.mbMoreHidden=YES; [self startLoading]; [self loadData]; } #pragma mark - 私有函数 /** 导航按钮样式 */ -(void)loadNavStyle { //右边 UIButton *btnAdd = [UIButton buttonWithType:UIButtonTypeCustom]; [btnAdd addTarget:self action:@selector(add) forControlEvents:UIControlEventTouchUpInside]; UIImage *pic =[UIImage imageNamed:@"title_add"]; btnAdd.frame = CGRectMake(0, 0, 18, 18); [btnAdd setTitleColor:NavBarItemColor forState:UIControlStateNormal]; [btnAdd setBackgroundImage:pic forState:UIControlStateNormal]; UIBarButtonItem *menubtnAdd = [[UIBarButtonItem alloc] initWithCustomView:btnAdd]; self.navigationItem.title=@"其他入库列表"; self.navigationItem.rightBarButtonItem = menubtnAdd; //返回 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; [button setBackgroundImage:[UIImage imageNamed:@"icon_back"] forState:UIControlStateNormal]; [button addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside]; button.frame = CGRectMake(0, 0, 15, 18); UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithCustomView:button]; self.navigationItem.leftBarButtonItem = menuButton; } /** 跳转到新增其它入库 */ -(void)add{ self.hidesBottomBarWhenPushed=YES; NewOtherInStorageHomeVC *homeVc=[[NewOtherInStorageHomeVC alloc] init]; homeVc.refreshDelegate=self; [self.navigationController pushViewController:homeVc animated:YES]; } /** 初始化UI */ -(void)initUI{ CGFloat height = 40; _searchView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, Screen_Width, 60)]; _searchView.backgroundColor = [UIColor whiteColor]; UIButton *btnSearch = [UIButton buttonWithType:UIButtonTypeCustom]; btnSearch.frame = CGRectMake(20,10, Screen_Width-height, height); 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.backgroundColor = LineBackgroundColor; [btnSearch addTarget:self action:@selector(dataSearch) forControlEvents:UIControlEventTouchUpInside]; [_searchView addSubview:btnSearch]; [self.view addSubview:_searchView]; _topSeparatorView = [UIView new]; _topSeparatorView.frame=CGRectMake(0, CGRectGetMaxY(_searchView.frame), Screen_Width, 10); _topSeparatorView.backgroundColor = LineBackgroundColor; [self.view addSubview:_topSeparatorView]; _dataList=[[NSMutableArray alloc]init]; _vCustomTableView = [[RefreshTableView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(_topSeparatorView.frame), self.view.frame.size.width, Screen_Height - CGRectGetMaxY(_topSeparatorView.frame))]; _vCustomTableView.separatorStyle = UITableViewCellSeparatorStyleNone; _vCustomTableView.autoresizingMask = UIViewAutoresizingFlexibleHeight; _vCustomTableView.backgroundColor = [UIColor whiteColor]; _vCustomTableView.delegate = self; [self.view addSubview:_vCustomTableView]; pageNumber = 1; _enterType=@"1"; [self loadData]; } /** 返回函数 */ - (void)goBack { [self.navigationController popViewControllerAnimated:YES]; } /** 加载数据源 */ -(void)loadData{ NSMutableDictionary *dict = [NSMutableDictionary dictionary]; [dict setObject:@"GetEnterDataListIphone" 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:_enterNo== nil? @"" : _enterNo forKey:@"EnterNo"]; [dict setObject:_supplierId== nil? @"" : _supplierId forKey:@"SupplierID"]; [dict setObject:_organizationCode== nil? @"" : _organizationCode forKey:@"OrganizationCode"]; [dict setObject:_staffId== nil? @"" : _staffId forKey:@"StaffID"]; [dict setObject:_enterType== nil? @"" : _enterType forKey:@"EnterType"]; [dict setObject:_customerCode == nil? @"" : _customerCode forKey:@"CustomerCode"]; [dict setObject:_startDate == nil? @"" : _startDate forKey:@"AccountDateFrom"]; [dict setObject:_endDate == nil? @"" : _endDate forKey:@"AccountDateTo"]; [dict setObject:_invoiceStatus == nil? @"" : _invoiceStatus forKey:@"InvoiceStatus"]; [dict setObject:@"20" forKey:@"PageSize"]; [dict setObject:[NSString stringWithFormat:@"%d",pageNumber] forKey:@"PageNum"]; _downManager = [[ASIDownManager alloc] init]; [self startLoading]; _downManager.delegate = self; _downManager.OnImageDown = @selector(onEnterStorageListFinish:); _downManager.OnImageFail = @selector(onEnterStorageListFail:); [_downManager postHttpRequest:ServerURL dic:dict path:nil fileName:nil]; } /** 加载数据成功回调 @param sender sender description */ - (void)onEnterStorageListFinish:(ASIDownManager *)sender { NSDictionary *dic = [sender.mWebStr JSONValue]; [self stopLoading]; _vCustomTableView.mTableView.backgroundView = nil; // 服务器返回数据是否正确 if (dic && [dic isKindOfClass:[NSDictionary class]]) { // 服务器返回数据状态值 int iStatus = [[dic objectForKey:@"Status"] intValue]; int iNewCount = 0; // 服务器返回数据消息 NSString *message=[dic objectForKey:@"Message"]; // 服务器返回数据状态值正确 if (iStatus == 0) { NSArray * infoArr=[dic objectForKey:@"Result"]; // 返回结果 if(infoArr!=nil&& infoArr.count>0) { for (int i = 0; i < infoArr.count; i++) { NSDictionary * dic=infoArr[i]; OtherInStorageListModel *otherInStorageListModel=[OtherInStorageListModel new]; [otherInStorageListModel parseDic:dic]; [_dataList addObject:otherInStorageListModel]; } iNewCount =(int)infoArr.count; _vCustomTableView.mbMoreHidden = (iNewCount == 0); [_vCustomTableView FinishLoading]; [_vCustomTableView reloadData]; } else{ if(pageNumber==1){ [_vCustomTableView FinishLoading]; _vCustomTableView.separatorStyle = UITableViewCellSeparatorStyleNone; [self showAlertViewText:@"未找到匹配结果"]; UIView *noDataView=[[UIView alloc]init]; noDataView.frame=_vCustomTableView.bounds; UIImageView *nodataImgView=[[UIImageView alloc] initWithFrame:CGRectMake(noDataView.frame.size.width/2-16,noDataView.frame.size.height/2-16,32,32)]; [nodataImgView setImage:[UIImage imageNamed:@"icon_no_data"]]; [noDataView addSubview:nodataImgView]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(noDataView.frame.size.width/2-16-12,CGRectGetMaxY(nodataImgView.frame)+3,70, 25)]; label.font=[UIFont systemFontOfSize:NoDataFontOfSize]; label.text = @"无数据"; label.numberOfLines = 2; label.textColor = [UIColor lightGrayColor]; [noDataView addSubview:label]; _vCustomTableView.mTableView.backgroundView =noDataView; } } } else if(iStatus==ActionResultStatusAuthError ||iStatus==ActionResultStatusNoLogin ||iStatus==ActionResultStatusLogined ||iStatus == ActionResultStatusLoginedInvalid){ [self showReLoginDialog:message]; } else{ [self showAlertViewText:message]; } } } /** 加载数据失败回调 @param sender <#sender description#> */ - (void)onEnterStorageListFail:(ASIDownManager *)sender { [self stopLoading]; [self showAlertViewText:@"加载失败"]; } /** 打开查询抽屉 */ -(void)dataSearch{ [_filterController show]; } /** 抽屉初始化 */ - (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]; OtherInStorageSearchModel *m = [serviceRegionModel.customDict objectForKey:SALES_IN_STORAGE_SEARCH_RANGE_MODEL]; _enterNo =m.inStorageNo; _supplierId=m.supplierId; _customerCode=m.customerCode; _startDate=m.startDate; _endDate=m.endDate; _organizationCode=m.organizationCode; _staffId=m.staffId; _invoiceStatus=m.invoiceStatus; _enterType=@"1"; [weakself.filterController dismiss]; pageNumber = 1; [_dataList removeAllObjects]; [_vCustomTableView reloadData]; _vCustomTableView.mbMoreHidden=YES; [self startLoading]; [self loadData]; }]; _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 = @"SalesInStorageSearchCell"; model.regionTitle = @"查询条件"; [dataArray addObject:model]; return [dataArray mutableCopy]; } /** 冲正数据源 @param model <#model description#> */ -(void)correctData:(OtherInStorageListModel *)model{ NSMutableDictionary *dict = [NSMutableDictionary dictionary]; [dict setObject:@"SaveEnterReversedIphone" 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:@"1" forKey:@"IDevicesType"]; [dict setObject:model.enterId == nil?@"":model.enterId forKey:@"EnterID"]; NSString *statusStr = [NSString stringWithFormat:@"%ld",(long)model.invoiceStatusId]; [dict setObject:statusStr == nil?@"":statusStr forKey:@"Status"]; [dict setObject:model.enterType forKey:@"EnterType"]; [self startLoading]; _downManager = [[ASIDownManager alloc] init]; _downManager.delegate = self; _downManager.OnImageDown = @selector(onCorrectFinish:); _downManager.OnImageFail = @selector(onCorrectFail:); [_downManager postHttpRequest:ServerURL dic:dict path:nil fileName:nil]; } @end