InventoryFreezedOrderSearchViewController.m 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507
  1. //
  2. // InventoryFreezedOrderSearchViewController.m
  3. // IBOSS
  4. //
  5. // Created by 关宏厚 on 2020/5/9.
  6. // Copyright © 2020 elongtian. All rights reserved.
  7. //
  8. #import "InventoryFreezedOrderSearchViewController.h"
  9. @interface InventoryFreezedOrderSearchViewController ()
  10. @end
  11. @implementation InventoryFreezedOrderSearchViewController
  12. - (void)viewDidLoad {
  13. [super viewDidLoad];
  14. [self initUI];
  15. [self initSlideSlip];
  16. _unfreezeGoodsList=[[NSMutableArray alloc]init];
  17. }
  18. -(void)initUI
  19. {
  20. self.view.backgroundColor = [UIColor whiteColor];
  21. _searchView = [[UIView alloc] init];
  22. _searchView.frame = CGRectMake(15,10,Screen_Width-30,35);
  23. _searchView.backgroundColor = LineBackgroundColor;
  24. _searchView.layer.cornerRadius = 10;
  25. _searchView.layer.masksToBounds = YES;
  26. UIButton *btnSearch = [UIButton buttonWithType:UIButtonTypeCustom];
  27. btnSearch.frame = CGRectMake(20,0, Screen_Width-40, 35);
  28. btnSearch.layer.cornerRadius = 6.0f;
  29. [btnSearch setTitle:@"库存解冻订单查询" forState:UIControlStateNormal];
  30. [btnSearch setTitleColor:NavBarUnEnbleItemColor forState:UIControlStateNormal];
  31. btnSearch.titleLabel.textAlignment = NSTextAlignmentCenter;
  32. btnSearch.titleLabel.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize];
  33. [btnSearch addTarget:self action:@selector(dataSearch) forControlEvents:UIControlEventTouchUpInside];
  34. [_searchView addSubview:btnSearch];
  35. [self.view addSubview:_searchView];
  36. _viewBackground = [UIView new];
  37. _viewBackground.frame = CGRectMake(0, CGRectGetMaxY(_searchView.frame)+10, Screen_Width, 10);
  38. _viewBackground.backgroundColor = LineBackgroundColor;
  39. [self.view addSubview:_viewBackground];
  40. _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(_viewBackground.frame),self.view.frame.size.width, self.view.frame.size.height-140-rectStatusHeight-rectNavHeight)];
  41. _tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
  42. _tableView.separatorStyle=UITableViewCellSeparatorStyleNone;
  43. _tableView.delegate = self;
  44. _tableView.dataSource=self;
  45. [self.view addSubview:_tableView];
  46. //保存
  47. _bottomView = [UIView new];
  48. [_bottomView setBackgroundColor:[UIColor whiteColor]];
  49. _bottomView.frame=CGRectMake(0, Screen_Height-140-rectStatusHeight-rectNavHeight, self.view.frame.size.width, 50);
  50. [self.view addSubview:_bottomView];
  51. UIView *bottomSeparator= [UIView new];
  52. bottomSeparator.frame=CGRectMake(0, 0, Screen_Width, 1);
  53. bottomSeparator.backgroundColor = LineBackgroundColor;
  54. [_bottomView addSubview:bottomSeparator];
  55. _btnCheckAll = [UIButton buttonWithType:UIButtonTypeCustom];
  56. _btnCheckAll.frame=CGRectMake(15,15, 25, 25);
  57. [_btnCheckAll addTarget:self action:@selector(checkAll)
  58. forControlEvents:UIControlEventTouchUpInside];
  59. [_bottomView addSubview:_btnCheckAll];
  60. UILabel *lblall = [UILabel new];
  61. lblall.frame=CGRectMake(CGRectGetMaxX(_btnCheckAll.frame)+3,15, 60, 25);
  62. lblall.text = @"全选";
  63. [_bottomView addSubview:lblall];
  64. [ self changeCheckAllUnSelect];
  65. _btnSave = [UIButton buttonWithType:UIButtonTypeCustom];
  66. [_btnSave setTitle:@"确定" forState:UIControlStateNormal];
  67. [_btnSave setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  68. _btnSave.frame=CGRectMake(Screen_Width-114,0, 114,50);
  69. [_btnSave setBackgroundColor:[UIColor colorWithRed:189.0/255.0 green:0 blue:7.0/255.0 alpha:1]];
  70. [_btnSave addTarget:self action:@selector(submitUnFreezeData) forControlEvents:UIControlEventTouchUpInside];
  71. [_bottomView addSubview:_btnSave];
  72. }
  73. /**
  74. 抽屉初始化
  75. */
  76. - (void)initSlideSlip{
  77. // 抽屉对象
  78. __weak typeof(self) weakself = self;
  79. self.filterController = [[SideSlipFilterController alloc]
  80. initWithSponsor:self
  81. resetBlock:^(NSArray *dataList) {
  82. for (SideSlipModel *model in dataList)
  83. {
  84. model.selectedItemList = nil;
  85. model.customDict = nil;
  86. }
  87. }
  88. commitBlock:^(NSArray *dataList) {
  89. // 查询条件
  90. SideSlipModel *serviceRegionModel = dataList[0];
  91. InventoryFreezeOrderSearchModel *searchModel = [serviceRegionModel.customDict objectForKey:INVENTORY_FREEZE_ORDER_SEARCH_MODEL];
  92. self->_customerCode=searchModel.customerCode;
  93. self->_contacts=searchModel.contacts;
  94. self->_staffName=searchModel.staffName;
  95. self->_telephone=searchModel.telephone;
  96. self->_freezeReasonName=searchModel.freezeReasonName;
  97. InventoryFrozenOrderListViewController *orderlistVc=[[InventoryFrozenOrderListViewController alloc]init];
  98. self.cNav.visibleViewController.hidesBottomBarWhenPushed=YES;
  99. orderlistVc.customerCode=self->_customerCode;
  100. orderlistVc.contacts=self->_contacts;
  101. orderlistVc.staffName=self->_staffName;
  102. orderlistVc.telephone=self->_telephone;
  103. orderlistVc.freezeReasonName=self->_freezeReasonName;
  104. orderlistVc.inventoryDelegate=self;
  105. [self.cNav pushViewController:orderlistVc animated:YES];
  106. [weakself.filterController dismiss];
  107. }];
  108. _filterController.animationDuration = AnimationDuration;
  109. _filterController.hasHeadView = YES;
  110. _filterController.sideSlipLeading = UIScreenSideSlipLeading*[UIScreen mainScreen].bounds.size.width;
  111. _filterController.dataList = [self packageDataList];
  112. }
  113. /**
  114. 抽屉数据源
  115. @return <#return value description#>
  116. */
  117. - (NSArray *)packageDataList {
  118. NSMutableArray *dataArray = [NSMutableArray array];
  119. SideSlipModel *model = [[SideSlipModel alloc] init];
  120. model.containerCellClass = @"InventoryFreezeOrderSearchCell";
  121. model.regionTitle = @"查询条件";
  122. [dataArray addObject:model];
  123. return [dataArray mutableCopy];
  124. }
  125. -(void)submitUnFreezeData
  126. {
  127. if(_unfreezeGoodsList==nil||_unfreezeGoodsList.count==0)
  128. {
  129. [self showAlertViewText:@"没有可提交的商品!"];
  130. return;
  131. }
  132. int num=0;
  133. for(int j=0;j<_unfreezeGoodsList.count;j++)
  134. {
  135. InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:j] ;
  136. if(goodsModel.isChecked)
  137. {
  138. ++num;
  139. }
  140. }
  141. if(num==0)
  142. {
  143. [self showAlertViewText:@"至少选择一种商品!"];
  144. return;
  145. }
  146. _submitUnfreezeGoodsList=[[NSMutableArray alloc]init];
  147. for(int j=0;j<_unfreezeGoodsList.count;j++)
  148. {
  149. InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:j] ;
  150. if(goodsModel.isChecked)
  151. {
  152. [_submitUnfreezeGoodsList addObject:goodsModel];
  153. }
  154. }
  155. NewInventoryUnfreezeViewController *unfreezeVc = [[NewInventoryUnfreezeViewController alloc] init];
  156. unfreezeVc.freezeId=_freezeId;
  157. unfreezeVc.unfreezeId=_unfreezeId;
  158. unfreezeVc.inventoryDelegate=self;
  159. unfreezeVc.unfreezeGoodsList=_submitUnfreezeGoodsList;
  160. [self.cNav pushViewController:unfreezeVc animated:YES];
  161. }
  162. -(void)loadGoodsDetail:(NSString*)freezeId
  163. {
  164. _mDownManager = [[ASIDownManager alloc] init];
  165. _mDownManager.delegate = self;
  166. _mDownManager.onRequestSuccess = @selector(onLoadDetailFinish:);
  167. _mDownManager.onRequestFail = @selector(onLoadDetailFail:);
  168. NSString *urlStr = ServerURL;
  169. NSMutableDictionary *dict = [NSMutableDictionary dictionary];
  170. [dict setObject:@"GetFreezeDetailDataSearchIPhone" forKey:@"Action"];
  171. [dict setObject:[NSString stringWithFormat:@"%@",kkAccountCode]forKey:@"AccountCode"];
  172. [dict setObject:kkUserCode forKey:@"UserCode"];
  173. [dict setObject:kkUserPwd forKey:@"UserPassword"];
  174. [dict setObject:kkSessionKey forKey:@"SessionKey"];
  175. [dict setObject:freezeId forKey:@"FreezeID"];
  176. [_mDownManager postHttpRequest:urlStr dic:dict path:nil fileName:nil];
  177. }
  178. -(void)refreshData
  179. {
  180. if(_unfreezeGoodsList!=nil&&_unfreezeGoodsList.count>0)
  181. {
  182. [_unfreezeGoodsList removeAllObjects];
  183. [_tableView reloadData];
  184. }
  185. }
  186. -(void)onLoadDetailFinish:(ASIDownManager *)sender {
  187. [self cancel];
  188. RequestResultModel *resultModel = [RequestResultModel dk_modelWithJSON:sender.mWebStr];
  189. int iStatus = resultModel.status;
  190. // 服务器返回数据消息
  191. NSString *message = resultModel.message;
  192. if(iStatus==0)
  193. {
  194. NSArray *resultArray=(NSArray*)resultModel.result;
  195. if(resultArray!=nil&&resultArray.count>0)
  196. {
  197. for(int i=0;i<resultArray.count;i++)
  198. {
  199. NSDictionary *resultDic=[resultArray objectAtIndex:i];
  200. InventoryFrozenGoodsModel *model = [InventoryFrozenGoodsModel dk_modelWithDictionary:resultDic];
  201. [_unfreezeGoodsList addObject:model];
  202. }
  203. [_tableView reloadData];
  204. }
  205. }
  206. // 服务器返回数据状态值异常
  207. else if(iStatus == ActionResultStatusAuthError
  208. ||iStatus == ActionResultStatusNoLogin
  209. ||iStatus == ActionResultStatusLogined||iStatus==ActionResultSessionOverdue){
  210. [self showReLoginDialog:message];
  211. }
  212. else{
  213. [self showAlertViewText:message];
  214. }
  215. }
  216. -(void)onLoadDetailFail:(ASIDownManager *)sender {
  217. [self cancel];
  218. [self showAlertViewText:@"网络异常"];
  219. }
  220. -(void)btnFrozenGoodsCheckPressed:(InventoryFrozenGoodsListCell*)cell
  221. {
  222. NSInteger pos= cell.position;
  223. InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:pos];
  224. if([goodsModel.freezeQuantity doubleValue]>[goodsModel.allUnfreezeQuantity doubleValue])
  225. {
  226. goodsModel.isChecked=!goodsModel.isChecked;
  227. [cell setCheckBackground: goodsModel.isChecked];
  228. int num=0;
  229. for(int i=0;i<_unfreezeGoodsList.count;i++)
  230. {
  231. InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:i];
  232. BOOL isChecked=goodsModel.isChecked;
  233. if(isChecked)
  234. {
  235. ++num;
  236. }
  237. }
  238. NSString *saveTxt=[NSString stringWithFormat:@"确定(%d)",num];
  239. [_btnSave setTitle:saveTxt forState:UIControlStateNormal];
  240. if(![self isCheckedAll])
  241. {
  242. [self changeCheckAllUnSelect];
  243. }
  244. else{
  245. [self changeCheckALLSelect];
  246. }
  247. }
  248. }
  249. //看是否全选
  250. - (BOOL)isCheckedAll
  251. {
  252. BOOL ischecked=YES;
  253. for(int i=0;i<_unfreezeGoodsList.count;i++) {
  254. InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:i];
  255. if(goodsModel.isChecked == NO)
  256. {
  257. ischecked=NO;
  258. break;
  259. }
  260. }
  261. return ischecked;
  262. }
  263. /**
  264. 全部选中
  265. */
  266. - (void)changeCheckALLSelect
  267. {
  268. [_btnCheckAll setBackgroundImage:[UIImage imageNamed:@"order_checked"] forState:UIControlStateNormal];
  269. }
  270. -(void)checkAll
  271. {
  272. [self updateAllCellCheck];
  273. [_tableView reloadData];
  274. int num=0;
  275. for(int i=0;i<_unfreezeGoodsList.count;i++)
  276. {
  277. InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:i];
  278. BOOL isChecked=goodsModel.isChecked;
  279. if(isChecked)
  280. {
  281. ++num;
  282. }
  283. }
  284. NSString *saveTxt=[NSString stringWithFormat:@"确定(%d)",num];
  285. [_btnSave setTitle:saveTxt forState:UIControlStateNormal];
  286. if(!_isCheckAll)
  287. {
  288. [self changeCheckAllUnSelect];
  289. }
  290. else{
  291. [self changeCheckALLSelect];
  292. }
  293. }
  294. //全选或者全不选
  295. - (BOOL)updateAllCellCheck
  296. {
  297. if(!_isCheckAll){
  298. _isCheckAll=YES;
  299. for(int i=0;i<_unfreezeGoodsList.count;i++) {
  300. InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:i];
  301. if([goodsModel.freezeQuantity doubleValue]>[goodsModel.allUnfreezeQuantity doubleValue])
  302. {
  303. goodsModel.isChecked =YES;
  304. }
  305. else{
  306. goodsModel.isChecked =NO;
  307. }
  308. }
  309. }
  310. else
  311. {
  312. _isCheckAll=NO;
  313. for(int i=0;i<_unfreezeGoodsList.count;i++) {
  314. InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:i];
  315. goodsModel.isChecked =NO;
  316. }
  317. }
  318. return NO;
  319. }
  320. /**
  321. 进度条隐藏
  322. */
  323. - (void)cancel {
  324. [self stopLoading];
  325. }
  326. /**
  327. 全部未选中
  328. */
  329. - (void)changeCheckAllUnSelect
  330. {
  331. [_btnCheckAll setBackgroundImage:[UIImage imageNamed:@"order_unchecked"] forState:UIControlStateNormal];
  332. }
  333. /**
  334. 单元格cell个数
  335. @param tableView <#tableView description#>
  336. @param section <#section description#>
  337. @return <#return value description#>
  338. */
  339. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  340. {
  341. return [_unfreezeGoodsList count];
  342. }
  343. /**
  344. table view 分区数
  345. @param tableView <#tableView description#>
  346. @return <#return value description#>
  347. */
  348. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
  349. return 1;
  350. }
  351. /**
  352. cell 高度
  353. @param tableView <#tableView description#>
  354. @param indexPath <#indexPath description#>
  355. @return <#return value description#>
  356. */
  357. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
  358. return [self.heights[@(indexPath.row)] doubleValue];;
  359. }
  360. /**
  361. 高度
  362. @return <#return value description#>
  363. */
  364. - (NSMutableDictionary *)heights{
  365. if (_heights == nil){
  366. _heights = [NSMutableDictionary dictionary];
  367. }
  368. return _heights;
  369. }
  370. /**
  371. 预防高度
  372. @param tableView <#tableView description#>
  373. @param indexPath <#indexPath description#>
  374. @return <#return value description#>
  375. */
  376. -(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath{
  377. return 250;
  378. }
  379. /**
  380. 每个单元格cell
  381. @param tableView <#tableView description#>
  382. @param indexPath <#indexPath description#>
  383. @return <#return value description#>
  384. */
  385. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  386. {
  387. static NSString *cellIdentifier = @"InventoryFrozenGoodsListCell";
  388. InventoryFrozenGoodsListCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier ];
  389. cell = [[InventoryFrozenGoodsListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
  390. cell.selectionStyle=UITableViewCellSelectionStyleNone;
  391. InventoryFrozenGoodsModel *goodsModel= [_unfreezeGoodsList objectAtIndex:indexPath.row];
  392. cell.delegate = self;
  393. [cell setInventoryFrozenGoodsListCell:goodsModel];
  394. cell.position = (int)indexPath.row;
  395. self.heights[@(indexPath.row)] = @(cell.height);
  396. BOOL isChecked= goodsModel.isChecked;
  397. [cell setCheckBackground:isChecked];
  398. return cell;
  399. }
  400. -(void)dataSearch
  401. {
  402. [_filterController showPagerView:self.cNav];
  403. }
  404. -(void)getInventoryFrozenGoodsDetail:(NSString*)freezeId unfreezeId:(NSString*)unfreezeId
  405. {
  406. self.freezeId=freezeId;
  407. self.unfreezeId=unfreezeId;
  408. [self loadGoodsDetail:freezeId];
  409. }
  410. /**
  411. 安全区视图发生变化
  412. */
  413. -(void)viewSafeAreaInsetsDidChange{
  414. _tableView.frame =CGRectMake(0,CGRectGetMaxY(_viewBackground.frame), self.view.frame.size.width,self.view.superview.frame.size.height-60-CGRectGetMaxY(_viewBackground.frame));
  415. _bottomView.frame=CGRectMake(0, self.view.superview.frame.size.height-50, self.view.frame.size.width, 50);
  416. [super viewSafeAreaInsetsDidChange];
  417. }
  418. @end