SalesManVC.m 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. //
  2. // SalesManVC.m
  3. // IBOSSmini
  4. //
  5. // Created by guan hong hou on 2018/1/31.
  6. // Copyright © 2018年 elongtian. All rights reserved.
  7. //
  8. #import "SalesManVC.h"
  9. @interface SalesManVC ()
  10. @end
  11. @implementation SalesManVC
  12. - (void)viewDidLoad {
  13. [super viewDidLoad];
  14. [self loadNavStyle];
  15. [self initUI];
  16. }
  17. -(void)loadNavStyle
  18. {
  19. //右边
  20. UIButton *btnAdd = [UIButton buttonWithType:UIButtonTypeCustom];
  21. [btnAdd addTarget:self action:@selector(submitData)
  22. forControlEvents:UIControlEventTouchUpInside];
  23. btnAdd.frame = CGRectMake(0, 0,60,14);
  24. [btnAdd setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  25. btnAdd.titleLabel.font=[UIFont systemFontOfSize:16];
  26. [btnAdd setTitle:@"确定" forState:UIControlStateNormal];
  27. UIBarButtonItem *menubtnAdd = [[UIBarButtonItem alloc] initWithCustomView:btnAdd];
  28. self.navigationItem.title=@"请选择";
  29. self.navigationItem.rightBarButtonItem = menubtnAdd;
  30. //返回
  31. UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
  32. [button setBackgroundImage:[UIImage imageNamed:@"icon_back"]
  33. forState:UIControlStateNormal];
  34. [button addTarget:self action:@selector(goBack)
  35. forControlEvents:UIControlEventTouchUpInside];
  36. button.frame = CGRectMake(0, 0, 15, 18);
  37. UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithCustomView:button];
  38. self.navigationItem.leftBarButtonItem = menuButton;
  39. }
  40. -(void)initUI{
  41. _vTableView = [[UITableView alloc]
  42. initWithFrame:CGRectMake(0,
  43. 0,
  44. self.view.frame.size.width,
  45. self.view.frame.size.height)];
  46. _vTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  47. _vTableView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
  48. _vTableView.backgroundColor = [UIColor whiteColor];
  49. _vTableView.delegate = self;
  50. _vTableView.dataSource=self;
  51. [self.view addSubview:_vTableView];
  52. if(_salesmanList!=nil&&_salesmanList.count>0){
  53. [_vTableView reloadData];
  54. }
  55. }
  56. -(void)submitData{
  57. _salesmanCheckedList=[[NSMutableArray alloc]init];
  58. for( SalesManFrame *frame in _salesmanList){
  59. if(frame.salesmanModel.isCheckedStatus){
  60. [_salesmanCheckedList addObject:frame];
  61. }
  62. }
  63. if(_salesmanCheckedList!=nil&&_salesmanCheckedList.count==0){
  64. [self showAlertViewText:@"请选择业务员"];
  65. return;
  66. }
  67. Boolean mainSalesManFlag=[self isMainSalesMan:_salesmanCheckedList];
  68. if(!mainSalesManFlag){
  69. [self showAlertViewText:@"请选择主业务员"];
  70. return;
  71. }
  72. SalesManModel *mainSalesMan=[self getMainSalesMan:_salesmanCheckedList];
  73. NSMutableArray *secondarySalesmanList=[self getSecondarySalesManList:_salesmanCheckedList];
  74. if(_editFlag){
  75. if(mainSalesMan.staffId==_originalMainSalesManModel.staffId){
  76. mainSalesMan.commission=_originalMainSalesManModel.commission;
  77. }
  78. else{
  79. mainSalesMan.commission=@"100";
  80. }
  81. if(secondarySalesmanList!=nil&&secondarySalesmanList.count>0){
  82. for(SalesManFrame *salesmanFrame in secondarySalesmanList){
  83. SalesManModel *salesmanModel=salesmanFrame.salesmanModel;
  84. if(_originalSecondarySalesmanList!=nil&&_originalSecondarySalesmanList.count>0){
  85. for(SalesManFrame *orginalSalesmanFrame in _originalSecondarySalesmanList){
  86. if(salesmanModel.staffId==orginalSalesmanFrame.salesmanModel.staffId){
  87. salesmanModel.commission=orginalSalesmanFrame.salesmanModel.commission;
  88. }
  89. }
  90. Boolean isExistsSalsman=[self isExistsSalsman:salesmanModel salesmanList:_originalSecondarySalesmanList];
  91. if(!isExistsSalsman){
  92. salesmanModel.commission=@"100";
  93. }
  94. }
  95. else{
  96. salesmanModel.commission=@"100";
  97. }
  98. }
  99. }
  100. }
  101. if(secondarySalesmanList!=nil&&secondarySalesmanList.count>0){
  102. Boolean isHasSamePosition= [self isHasSamePosition:mainSalesMan secondarySalesMan:secondarySalesmanList];
  103. if(isHasSamePosition){
  104. [self showAlertViewText:@"主业务员和从业务员不能有同样的职务"];
  105. return;
  106. }
  107. }
  108. if([self.salesmanDelegate respondsToSelector:@selector(showSaleManInfo:secondarySalesMan:salesmanSelectedList:)])
  109. {
  110. [self.salesmanDelegate showSaleManInfo:mainSalesMan secondarySalesMan:secondarySalesmanList salesmanSelectedList:_salesmanCheckedList];
  111. }
  112. [self.navigationController popViewControllerAnimated:YES];
  113. }
  114. -(Boolean) isExistsSalsman:(SalesManModel*)salesmanModel salesmanList:(NSMutableArray*)salesmanList{
  115. Boolean flag=NO;
  116. for(SalesManFrame *salesmanFrame in salesmanList){
  117. if(salesmanModel.staffId==salesmanFrame.salesmanModel.staffId){
  118. flag=YES;
  119. break;
  120. }
  121. }
  122. return flag;
  123. }
  124. -(Boolean) isMainSalesMan:(NSMutableArray*) salesmanList{
  125. Boolean mainSalesManFlag=NO;
  126. for(SalesManFrame *frame in _salesmanList){
  127. if(frame.salesmanModel.isMainSalesManStatus){
  128. mainSalesManFlag=YES;
  129. break;
  130. }
  131. }
  132. return mainSalesManFlag;
  133. }
  134. -(Boolean)isHasSamePosition:(SalesManModel*)mainSalesMan secondarySalesMan:(NSMutableArray*)secondarySalesManList{
  135. Boolean isHasSameDuties=NO;
  136. for(SalesManFrame *frame in secondarySalesManList){
  137. if([frame.salesmanModel.positionName isEqualToString:mainSalesMan.positionName]){
  138. isHasSameDuties=YES;
  139. break;
  140. }
  141. }
  142. return isHasSameDuties;
  143. }
  144. -(SalesManModel*)getMainSalesMan:(NSMutableArray*)salesmanList{
  145. SalesManModel *mainSalesmanModel;
  146. for(SalesManFrame *frame in salesmanList){
  147. if(frame.salesmanModel.isMainSalesManStatus){
  148. mainSalesmanModel=frame.salesmanModel;
  149. break;
  150. }
  151. }
  152. return mainSalesmanModel;
  153. }
  154. -(NSMutableArray*)getSecondarySalesManList:(NSMutableArray*)salesmanList{
  155. NSMutableArray *secondarySalesmanList=[[NSMutableArray alloc]init];
  156. for(SalesManFrame *frame in salesmanList){
  157. if(!frame.salesmanModel.isMainSalesManStatus){
  158. [secondarySalesmanList addObject:frame];
  159. }
  160. }
  161. return secondarySalesmanList;
  162. }
  163. -(void)btnSaleManCheckPressed:(SalesManCell*)cell{
  164. SalesManFrame *salesmanFrame= _salesmanList[cell.cellIndex];
  165. _salemanModel =salesmanFrame.salesmanModel;
  166. BOOL checked=!_salemanModel.isCheckedStatus;
  167. int total=0;
  168. for(SalesManFrame *frame in _salesmanList){
  169. if(frame.salesmanModel.isCheckedStatus){
  170. ++total;
  171. }
  172. }
  173. if(total==0){
  174. _salemanModel.isMainSalesManStatus=YES;
  175. _salemanModel.isCheckedStatus=checked;
  176. [_vTableView reloadData];
  177. return;
  178. }
  179. _salemanModel.isCheckedStatus=checked;
  180. if( !_salemanModel.isCheckedStatus&&_salemanModel.isMainSalesManStatus){
  181. _salemanModel.isMainSalesManStatus=NO;
  182. }
  183. [_vTableView reloadData];
  184. }
  185. -(void)btnMainSalesManPressed:(SalesManCell*)cell{
  186. SalesManFrame *salesmanFrame= _salesmanList[cell.cellIndex];
  187. _salemanModel= salesmanFrame.salesmanModel;
  188. if(_salemanModel.isCheckedStatus){
  189. if(!_salemanModel.isMainSalesManStatus){
  190. _salemanModel.isMainSalesManStatus=YES;
  191. for(SalesManFrame *frame1 in _salesmanList){
  192. if(frame1.salesmanModel.staffId!=_salemanModel.staffId){
  193. frame1.salesmanModel.isMainSalesManStatus=NO;
  194. }
  195. }
  196. }
  197. else{
  198. _salemanModel.isMainSalesManStatus=NO;
  199. for(SalesManFrame *frame1 in _salesmanList){
  200. if(frame1.salesmanModel.staffId!=_salemanModel.staffId){
  201. frame1.salesmanModel.isMainSalesManStatus=NO;
  202. }
  203. }
  204. }
  205. }
  206. else{
  207. _salemanModel.isMainSalesManStatus=NO;
  208. }
  209. [_vTableView reloadData];
  210. }
  211. #pragma mark - tableView回调
  212. /**
  213. 单元格cell个数
  214. @param tableView <#tableView description#>
  215. @param section <#section description#>
  216. @return <#return value description#>
  217. */
  218. -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  219. {
  220. return [_salesmanList count];
  221. }
  222. /**
  223. <#Description#>
  224. @param tableView <#tableView description#>
  225. @return <#return value description#>
  226. */
  227. -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
  228. return 1;
  229. }
  230. /**
  231. 高度
  232. @param tableView <#tableView description#>
  233. @param indexPath <#indexPath description#>
  234. @return <#return value description#>
  235. */
  236. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
  237. SalesManFrame *frame= [_salesmanList objectAtIndex:indexPath.row];
  238. return frame.cellHeight ;
  239. }
  240. /**
  241. 每个单元格cell
  242. @param tableView <#tableView description#>
  243. @param indexPath <#indexPath description#>
  244. @return <#return value description#>
  245. */
  246. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  247. {
  248. static NSString *cellIdentifier = @"SalesManCell";
  249. SalesManCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier ];
  250. cell=[[SalesManCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
  251. cell.selectionStyle=UITableViewCellSelectionStyleNone;
  252. SalesManFrame *salesmanFrame = [_salesmanList objectAtIndex:indexPath.row];
  253. cell.delegate = self;
  254. [cell parseStaffInfo:salesmanFrame];
  255. cell.cellIndex=indexPath.row;
  256. BOOL checked = salesmanFrame.salesmanModel.isCheckedStatus;
  257. BOOL mainSalesmanChecked= salesmanFrame.salesmanModel.isMainSalesManStatus;
  258. [cell setCheckBackground:checked];
  259. [cell setMainSalesManCheckBackground:mainSalesmanChecked];
  260. return cell;
  261. }
  262. - (void)goBack
  263. {
  264. if([self.salesmanDelegate respondsToSelector:@selector(recoveryData)])
  265. {
  266. [self.salesmanDelegate recoveryData];
  267. }
  268. [self.navigationController popViewControllerAnimated:YES];
  269. }
  270. - (void)didReceiveMemoryWarning {
  271. [super didReceiveMemoryWarning];
  272. }
  273. @end