NewExternalCoordinateVC.m 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. //
  2. // NewExternalCoordinateVC.m
  3. // IBOSSmini
  4. //
  5. // Created by guan hong hou on 2018/1/24.
  6. // Copyright © 2018年 elongtian. All rights reserved.
  7. //
  8. #import "NewExternalCoordinateVC.h"
  9. @interface NewExternalCoordinateVC ()
  10. @end
  11. @implementation NewExternalCoordinateVC
  12. - (void)viewDidLoad {
  13. [super viewDidLoad];
  14. _externalCoordinateGoodsList=[[NSMutableArray alloc]init];
  15. _externalCoordinateGoodsDeleteList=[[NSMutableArray alloc]init];
  16. [self initUI];
  17. }
  18. - (void)didReceiveMemoryWarning {
  19. [super didReceiveMemoryWarning];
  20. }
  21. -(void)initUI{
  22. [self.view setBackgroundColor:[UIColor whiteColor]];
  23. UIView *topSeparatorView = [UIView new];
  24. topSeparatorView.frame=CGRectMake(0,3, Screen_Width, 10);
  25. topSeparatorView.backgroundColor = LineBackgroundColor;
  26. [self.view addSubview:topSeparatorView];
  27. CGFloat height = 40;
  28. UIView *searchView = [[UIView alloc]initWithFrame:CGRectMake(0,CGRectGetMaxY(topSeparatorView.frame)+5, Screen_Width, 50)];
  29. searchView.backgroundColor = [UIColor whiteColor];
  30. _btnSearch= [UIButton buttonWithType:UIButtonTypeCustom];
  31. _btnSearch.frame = CGRectMake(20, 5, Screen_Width-height, height);
  32. _btnSearch.layer.cornerRadius = 6.0f;
  33. [_btnSearch setTitle:@"新增商品" forState:UIControlStateNormal];
  34. [_btnSearch setTitleColor:NavBarUnEnbleItemColor forState:UIControlStateNormal];
  35. _btnSearch.titleLabel.textAlignment = NSTextAlignmentCenter;
  36. _btnSearch.titleLabel.font = [UIFont systemFontOfSize:LabelAndTextFontOfSize];
  37. _btnSearch.backgroundColor = LineBackgroundColor;
  38. [_btnSearch addTarget:self action:@selector(addExternalCoordinateGoods) forControlEvents:UIControlEventTouchUpInside];
  39. [searchView addSubview:_btnSearch];
  40. [self.view addSubview:searchView];
  41. UIView *middleSeparatorView = [UIView new];
  42. middleSeparatorView.frame=CGRectMake(0, CGRectGetMaxY(searchView.frame)+5, Screen_Width, 10);
  43. middleSeparatorView.backgroundColor = LineBackgroundColor;
  44. [self.view addSubview:middleSeparatorView];
  45. _vTableView = [[UITableView alloc]
  46. initWithFrame:CGRectMake(0,
  47. CGRectGetMaxY(middleSeparatorView.frame),
  48. self.view.frame.size.width,
  49. Screen_Height - CGRectGetMaxY(middleSeparatorView.frame))];
  50. _vTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  51. _vTableView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
  52. _vTableView.backgroundColor = [UIColor whiteColor];
  53. _vTableView.delegate = self;
  54. _vTableView.dataSource=self;
  55. [self.view addSubview:_vTableView];
  56. _vTableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
  57. //键盘将要显示时候的通知
  58. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
  59. //键盘将要结束时候的通知
  60. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil];
  61. }
  62. #pragma mark - 委托回调函数
  63. #pragma mark - tableView回调
  64. /**
  65. 单元格cell个数
  66. @param tableView <#tableView description#>
  67. @param section <#section description#>
  68. @return <#return value description#>
  69. */
  70. -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  71. {
  72. return [_externalCoordinateGoodsList count];
  73. }
  74. /**
  75. <#Description#>
  76. @param tableView <#tableView description#>
  77. @return <#return value description#>
  78. */
  79. -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
  80. return 1;
  81. }
  82. /**
  83. 高度
  84. @param tableView <#tableView description#>
  85. @param indexPath <#indexPath description#>
  86. @return <#return value description#>
  87. */
  88. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
  89. return 208;
  90. }
  91. /**
  92. 每个单元格cell
  93. @param tableView <#tableView description#>
  94. @param indexPath <#indexPath description#>
  95. @return <#return value description#>
  96. */
  97. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  98. {
  99. static NSString *CellIdentifier = @"InventoryListCell";
  100. NewExternalCoordinateCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier ];
  101. cell=[[NewExternalCoordinateCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
  102. cell.selectionStyle=UITableViewCellSelectionStyleNone;
  103. cell.orderDelegate=self;
  104. cell.cellIndex=indexPath.row;
  105. ExternalCoordinateGoodsModel *externalModel= [_externalCoordinateGoodsList objectAtIndex:indexPath.row];
  106. [cell setNewExternalCoordinateGoodsCell:externalModel editStatus:_editStatus];
  107. return cell;
  108. }
  109. -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  110. {
  111. _currentPosition=indexPath.row;
  112. self.hidesBottomBarWhenPushed=YES;
  113. AddExternalCoordinateGoodsVC *vc=[[AddExternalCoordinateGoodsVC alloc] init];
  114. _externalCoordinateEditFlag=@"edit";
  115. vc.externalCoordinateGoodsModel= _externalCoordinateGoodsList[_currentPosition];
  116. vc.externalCoordinateEditFlag=_externalCoordinateEditFlag;
  117. vc.editStatus=_editStatus;
  118. vc.orderListDelegate=self;
  119. [self.orderNav pushViewController:vc animated:YES];
  120. }
  121. -(void)updateNewExternalCoordinateGoodsCell:(NewExternalCoordinateCell*)cell textField:(UITextField *)field{
  122. _externalCoordinateGoodsList[cell.cellIndex]=cell.externalCoordinateModel;
  123. if(field.tag==1001||field.tag==1002){
  124. [self.homeVC calculate:@""];
  125. }
  126. }
  127. -(void)deleteOrderDetail:(NSInteger)cellIndex{
  128. UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:@"是否要删除?" preferredStyle:UIAlertControllerStyleAlert];
  129. UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
  130. }];
  131. UIAlertAction *otherAction = [UIAlertAction actionWithTitle:@"确定"
  132. style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
  133. if(_editFlag){
  134. ExternalCoordinateGoodsModel *externalGoodsModel= _externalCoordinateGoodsList[cellIndex];
  135. if([externalGoodsModel.editFlag isEqualToString:@"1"]){
  136. [_externalCoordinateGoodsList removeObjectAtIndex:cellIndex];
  137. }
  138. else if([externalGoodsModel.editFlag isEqualToString:@"2"])
  139. {
  140. externalGoodsModel.editFlag=@"3";
  141. [_externalCoordinateGoodsDeleteList addObject:externalGoodsModel];
  142. [_externalCoordinateGoodsList removeObjectAtIndex:cellIndex];
  143. }
  144. }
  145. else{
  146. [_externalCoordinateGoodsList removeObjectAtIndex:cellIndex];
  147. }
  148. [_vTableView reloadData];
  149. [self.homeVC calculate:@""];
  150. }];
  151. UIColor *cancelColor=[UIColor blackColor];
  152. UIColor *sureColor=[UIColor redColor];
  153. [cancelAction setValue:cancelColor forKey:@"titleTextColor"];
  154. [otherAction setValue:sureColor forKey:@"titleTextColor"];
  155. [alertController addAction:cancelAction];
  156. [alertController addAction:otherAction];
  157. [self presentViewController:alertController animated:YES completion:nil];
  158. }
  159. -(void)keyboardWillShow:(NSNotification *)sender{
  160. //获得键盘的尺寸
  161. CGRect keyBoardRect=[sender.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
  162. //当键盘将要显示时,将tableView的下边距增跟改为键盘的高度
  163. self.vTableView.contentInset = UIEdgeInsetsMake(0, 0, keyBoardRect.size.height, 0);
  164. }
  165. -(void)keyboardDidHide:(NSNotification *)sender{
  166. //当键盘将要消失时,边距还原初始状态
  167. self.vTableView.contentInset = UIEdgeInsetsZero;
  168. }
  169. -(void)addExternalCoordinateGoods{
  170. self.hidesBottomBarWhenPushed=YES;
  171. AddExternalCoordinateGoodsVC *vc=[[AddExternalCoordinateGoodsVC alloc] init];
  172. _externalCoordinateEditFlag=@"add";
  173. vc.orderListDelegate=self;
  174. vc.orderNo=_orderNo;
  175. vc.externalCoordinateEditFlag=_externalCoordinateEditFlag;
  176. [self.orderNav pushViewController:vc animated:YES];
  177. }
  178. -(void)addExternalCoordinateGoods:(ExternalCoordinateGoodsModel*)externalCoordinateGoodsModel resultCode:(NSString *)resultCode{
  179. _externalCoordinateModel=externalCoordinateGoodsModel;
  180. if(_editFlag)
  181. {
  182. if([_externalCoordinateEditFlag isEqualToString:@"add"]&&[resultCode isEqualToString:@"resultAdd"])
  183. {
  184. Boolean ll=NO;
  185. for(NSInteger i=_externalCoordinateGoodsList.count-1;i>=0;i--)
  186. {
  187. ExternalCoordinateGoodsModel *model= _externalCoordinateGoodsList[i];
  188. if([model.onlyCode isEqualToString:_externalCoordinateModel.onlyCode]&&[model.supplierId isEqualToString:_externalCoordinateModel.supplierId]&&[model.specification isEqualToString:_externalCoordinateModel.specification]&&[model.colorNumber isEqualToString:_externalCoordinateModel.colorNumber]&&[model.gradeName isEqualToString:_externalCoordinateModel.gradeName]&&[model.goodsCode isEqualToString:_externalCoordinateModel.goodsCode]){
  189. _externalCoordinateModel.orderId=model.orderId;
  190. _externalCoordinateModel.orderNo=model.orderNo;
  191. _externalCoordinateModel.salesQuantity=_externalCoordinateModel.salesQuantity+model.salesQuantity;
  192. _externalCoordinateModel.editFlag=@"2";
  193. ll=YES;
  194. }
  195. }
  196. if(!ll)
  197. {
  198. Boolean jj=NO;
  199. for(ExternalCoordinateGoodsModel *deleteModel in _externalCoordinateGoodsDeleteList)
  200. {
  201. if([deleteModel.onlyCode isEqualToString:_externalCoordinateModel.onlyCode]&&[deleteModel.supplierId isEqualToString:_externalCoordinateModel.supplierId]&&[deleteModel.specification isEqualToString:_externalCoordinateModel.specification]&&[deleteModel.colorNumber isEqualToString:_externalCoordinateModel.colorNumber]&&[deleteModel.gradeName isEqualToString:_externalCoordinateModel.gradeName]&&[deleteModel.goodsCode isEqualToString:_externalCoordinateModel.goodsCode]){
  202. deleteModel.editFlag=@"2";
  203. [_externalCoordinateGoodsList addObject:deleteModel];
  204. [_externalCoordinateGoodsDeleteList removeObject:deleteModel];
  205. jj=YES;
  206. }
  207. }
  208. if(!jj){
  209. _externalCoordinateModel.editFlag=@"1";
  210. [_externalCoordinateGoodsList addObject:_externalCoordinateModel];
  211. }
  212. }
  213. }
  214. if([_externalCoordinateEditFlag isEqualToString:@"edit"]&&[resultCode isEqualToString:@"resultEdit"]){
  215. Boolean ll=NO;
  216. for(NSInteger i=_externalCoordinateGoodsList.count-1;i>=0;i--)
  217. {
  218. ExternalCoordinateGoodsModel *model= _externalCoordinateGoodsList[i];
  219. if([model.onlyCode isEqualToString:_externalCoordinateModel.onlyCode]&&[model.supplierId isEqualToString:_externalCoordinateModel.supplierId]&&[model.specification isEqualToString:_externalCoordinateModel.specification]&&[model.colorNumber isEqualToString:_externalCoordinateModel.colorNumber]&&[model.gradeName isEqualToString:_externalCoordinateModel.gradeName]&&[model.goodsCode isEqualToString:_externalCoordinateModel.goodsCode]){
  220. if(_currentPosition!=i){
  221. _externalCoordinateModel.salesQuantity=model.salesQuantity+_externalCoordinateModel.salesQuantity;
  222. _externalCoordinateModel.editFlag=@"2";
  223. _externalCoordinateModel.orderId=model.orderId;
  224. _externalCoordinateModel.orderNo=model.orderNo;
  225. [_externalCoordinateGoodsList removeObjectAtIndex:_currentPosition];
  226. ll=YES;
  227. }
  228. }
  229. }
  230. if(!ll){
  231. Boolean jj=NO;
  232. for( ExternalCoordinateGoodsModel *model in _externalCoordinateGoodsDeleteList){
  233. if([model.onlyCode isEqualToString:_externalCoordinateModel.onlyCode]&&[model.supplierId isEqualToString:_externalCoordinateModel.supplierId]&&[model.specification isEqualToString:_externalCoordinateModel.specification]&&[model.colorNumber isEqualToString:_externalCoordinateModel.colorNumber]&&[model.gradeName isEqualToString:_externalCoordinateModel.gradeName]&&[model.goodsCode isEqualToString:_externalCoordinateModel.goodsCode]){
  234. model.editFlag=@"2";
  235. [_externalCoordinateGoodsList setObject:model atIndexedSubscript:_currentPosition];
  236. [_externalCoordinateGoodsDeleteList removeObject:model];
  237. jj=YES;
  238. }
  239. }
  240. if(!jj){
  241. _externalCoordinateModel.editFlag=@"2";
  242. [_externalCoordinateGoodsList setObject: _externalCoordinateModel atIndexedSubscript:_currentPosition];
  243. }
  244. }
  245. }
  246. }
  247. else {
  248. if([_externalCoordinateEditFlag isEqualToString:@"add"]&&[resultCode isEqualToString:@"resultAdd"]){
  249. Boolean ll=NO;
  250. if(_externalCoordinateGoodsList!=nil&&_externalCoordinateGoodsList.count>0){
  251. for(ExternalCoordinateGoodsModel *model in _externalCoordinateGoodsList){
  252. if([model.onlyCode isEqualToString:_externalCoordinateModel.onlyCode]){
  253. model.salesQuantity=model.salesQuantity+1;
  254. ll=YES;
  255. }
  256. }
  257. }
  258. if(!ll){
  259. [_externalCoordinateGoodsList addObject:_externalCoordinateModel];
  260. }
  261. }
  262. if([_externalCoordinateEditFlag isEqualToString:@"edit"]&&[resultCode isEqualToString:@"resultEdit"]){
  263. [_externalCoordinateGoodsList setObject:_externalCoordinateModel atIndexedSubscript:_currentPosition];
  264. }
  265. }
  266. [self.homeVC calculate:@""];
  267. [_vTableView reloadData];
  268. }
  269. @end