CustomerOrderViewController.m 15.6 KB
Newer Older
曹云霄's avatar
曹云霄 committed
1 2 3 4 5 6 7 8 9 10
//
//  CustomerOrderViewController.m
//  Lighting
//
//  Created by 曹云霄 on 16/5/6.
//  Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//

#import "CustomerOrderViewController.h"
#import "CustomerOrderTableViewCell.h"
勾芒's avatar
勾芒 committed
11
#import "OrderdetailsViewController.h"
曹云霄's avatar
曹云霄 committed
12
@interface CustomerOrderViewController ()<UITableViewDataSource,UITableViewDelegate,ReturnTableviewcellIndexpathdelegate,UITextFieldDelegate,undoOrderDelegate,DZNEmptyDataSetSource,DZNEmptyDataSetDelegate>
曹云霄's avatar
曹云霄 committed
13

勾芒's avatar
勾芒 committed
14 15 16 17 18
/**
 *  数据源数组
 */
@property (nonatomic,strong) NSMutableArray *datasArray;

勾芒's avatar
勾芒 committed
19 20 21 22 23 24 25 26 27 28
/**
 *  当前页数
 */
@property (nonatomic,assign) int indexPage;

/**
 *  订单状态数组
 */
@property (nonatomic,strong) NSArray *orderStateArray;

勾芒's avatar
勾芒 committed
29 30 31 32 33
/**
 *  总页数
 */
@property (nonatomic,assign) int totalPages;

曹云霄's avatar
曹云霄 committed
34

勾芒's avatar
勾芒 committed
35

曹云霄's avatar
曹云霄 committed
36 37 38 39
@end

@implementation CustomerOrderViewController

勾芒's avatar
勾芒 committed
40 41 42 43 44 45 46 47 48 49 50 51

/**
 *  初始化数据源数组
 */
- (NSMutableArray *)datasArray
{
    if (_datasArray == nil) {
        _datasArray = [NSMutableArray array];
    }
    return _datasArray;
}

勾芒's avatar
勾芒 committed
52 53 54 55 56 57 58 59 60 61
/**
 *  订单状态数组
 */
- (NSArray *)orderStateArray
{
    if (_orderStateArray == nil) {
        _orderStateArray = [NSArray arrayWithObjects:@"全部订单",@"待支付",@"已支付",@"已发货",@"已完成",@"已撤销",@"已退货", nil];
    }
    return _orderStateArray;
}
勾芒's avatar
勾芒 committed
62

63
- (OrderFilter *)model
64 65
{
    if (!_model) {
66
        _model = [[OrderFilter alloc]init];
67 68 69 70
    }
    return _model;
}

71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
#pragma mark -渲染完成
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    self.navigationController.fd_fullscreenPopGestureRecognizer.enabled = NO;
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = NO;
    }
}

#pragma mark -视图即将消失
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.navigationController.fd_fullscreenPopGestureRecognizer.enabled = YES;
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = YES;
    }
}

曹云霄's avatar
曹云霄 committed
91 92 93 94 95
- (void)viewDidLoad {
    [super viewDidLoad];
    [self uiConfigAction];
}

勾芒's avatar
勾芒 committed
96 97 98

#pragma mark -UI
- (void)uiConfigAction
曹云霄's avatar
曹云霄 committed
99
{
勾芒's avatar
勾芒 committed
100 101 102 103 104
    self.searchCustomerOrder.delegate = self;
    self.view.backgroundColor = kTCColor(238, 238, 238);
    self.customerOrderTableView.dataSource = self;
    self.customerOrderTableView.delegate = self;
    self.customerOrderTableView.backgroundColor = [UIColor clearColor];
105 106 107 108 109 110 111 112 113
    self.styleButton = [ScreeningButton buttonWithType:UIButtonTypeCustom];
    self.styleButton.frame = CGRectMake(ScreenWidth-250, 20, 150, 30);
    self.styleButton.backgroundColor = kTCColor(131, 131, 131);
    [self.styleButton setTitle:@"订单状态" forState:UIControlStateNormal];
    [self.styleButton addTarget:self action:@selector(OrderStateButtonClick:) forControlEvents:UIControlEventTouchUpInside];
    [self.styleButton setImage:TCImage(@"down_arr") forState:UIControlStateNormal];
    self.styleButton.layer.masksToBounds = YES;
    self.styleButton.layer.cornerRadius = 10;
    [self.orderStateBackView addSubview:self.styleButton];
114 115
    //经销商代码
    self.model.resellerCodeEquals = [[Shoppersmanager manager].Shoppers.employee.currentDepart  orgCode];
勾芒's avatar
勾芒 committed
116
    //下拉刷新
117
    WS(weakSelf);
勾芒's avatar
勾芒 committed
118
    MjRefreshHeaderCustom *headerRefresh = [MjRefreshHeaderCustom headerWithRefreshingBlock:^{
勾芒's avatar
勾芒 committed
119
        
120
        weakSelf.indexPage = ONE;
勾芒's avatar
勾芒 committed
121
        DataPage *page = [[DataPage alloc]init];
122 123
        page.page = weakSelf.indexPage;
        page.rows = KROWS;
124
        weakSelf.model.dp = page;
125 126
        [weakSelf.customerOrderTableView.mj_footer resetNoMoreData];
        [weakSelf getGuideAllcustomerOrder:YES WithorderBill:weakSelf.model];
勾芒's avatar
勾芒 committed
127
    }];
勾芒's avatar
勾芒 committed
128 129 130
    headerRefresh.stateLabel.hidden = YES;
    headerRefresh.lastUpdatedTimeLabel.hidden = YES;
    self.customerOrderTableView.mj_header = headerRefresh;
勾芒's avatar
勾芒 committed
131 132 133 134
    [self.customerOrderTableView.mj_header beginRefreshing];
    //上拉加载
    self.customerOrderTableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        
135 136
        if ( ++ weakSelf.indexPage > weakSelf.totalPages) {
            [weakSelf.customerOrderTableView.mj_footer endRefreshingWithNoMoreData];
勾芒's avatar
勾芒 committed
137 138 139
        }else
        {
            DataPage *page = [[DataPage alloc]init];
140
            page.page = weakSelf.indexPage;
141
            page.rows = KROWS;
142
            weakSelf.model.dp = page;
143
            [weakSelf getGuideAllcustomerOrder:NO WithorderBill:weakSelf.model];
勾芒's avatar
勾芒 committed
144
        }
勾芒's avatar
勾芒 committed
145
    }];
曹云霄's avatar
曹云霄 committed
146
    self.customerOrderTableView.mj_footer.automaticallyHidden = YES;
勾芒's avatar
勾芒 committed
147 148 149
}


勾芒's avatar
勾芒 committed
150
#pragma mark -获取导购下客户订单  ----isdelecte 表示是否清空数组
151
- (void)getGuideAllcustomerOrder:(BOOL)isdelecte WithorderBill:(OrderFilter *)allOrder
勾芒's avatar
勾芒 committed
152
{
勾芒's avatar
勾芒 committed
153
    [self CreateMBProgressHUDLoding];
曹云霄's avatar
曹云霄 committed
154
    WS(weakSelf);
155
    [[NetworkRequestClassManager Manager] NetworkRequestWithURL:SERVERREQUESTURL(QUERYORDER) WithCallClass:weakSelf WithRequestType:0 WithParameter:allOrder WithReturnValueBlock:^(id returnValue) {
勾芒's avatar
勾芒 committed
156
        
曹云霄's avatar
曹云霄 committed
157 158 159 160
        weakSelf.customerOrderTableView.emptyDataSetSource = weakSelf;
        weakSelf.customerOrderTableView.emptyDataSetDelegate = weakSelf;
        [weakSelf RemoveMBProgressHUDLoding];
        [weakSelf endRefreshingForTableView:weakSelf.customerOrderTableView];
勾芒's avatar
勾芒 committed
161 162
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
            
勾芒's avatar
勾芒 committed
163
            if (isdelecte) {
曹云霄's avatar
曹云霄 committed
164
                [weakSelf.datasArray removeAllObjects];
勾芒's avatar
勾芒 committed
165
            }
勾芒's avatar
勾芒 committed
166
            OrderResponse *Allorder = [[OrderResponse alloc]initWithDictionary:returnValue[@"data"] error:nil];
曹云霄's avatar
曹云霄 committed
167
            weakSelf.totalPages = [returnValue[@"data"][@"totalpages"] intValue];
勾芒's avatar
勾芒 committed
168
            for (OrderBill *model in Allorder.orderBillList) {
曹云霄's avatar
曹云霄 committed
169
                [weakSelf.datasArray addObject:model];
勾芒's avatar
勾芒 committed
170
            }
曹云霄's avatar
曹云霄 committed
171
            [weakSelf.customerOrderTableView reloadData];
勾芒's avatar
勾芒 committed
172 173
        }else
        {
曹云霄's avatar
曹云霄 committed
174
            [weakSelf ErrorMBProgressView:returnValue[@"message"]];
勾芒's avatar
勾芒 committed
175 176 177
        }
        
    } WithErrorCodeBlock:^(id errorCodeValue) {
曹云霄's avatar
曹云霄 committed
178 179
        [weakSelf RemoveMBProgressHUDLoding];
        [weakSelf ErrorMBProgressView:@"无网络"];
勾芒's avatar
勾芒 committed
180 181
    } WithFailureBlock:^(id error) {
        
曹云霄's avatar
曹云霄 committed
182 183
        [weakSelf endRefreshingForTableView:weakSelf.customerOrderTableView];
        [weakSelf RemoveMBProgressHUDLoding];
勾芒's avatar
勾芒 committed
184 185 186 187
    }];
}

#pragma mark -订单状态筛选
勾芒's avatar
勾芒 committed
188
- (void)OrderStateButtonClick:(UIButton *)button
勾芒's avatar
勾芒 committed
189
{
勾芒's avatar
勾芒 committed
190
    [self ShowPopoverViewController:CGSizeMake(200, 400) Withdatas:self.orderStateArray ShowButton:button SelectedIndex:0];
曹云霄's avatar
曹云霄 committed
191 192
}

勾芒's avatar
勾芒 committed
193

曹云霄's avatar
曹云霄 committed
194 195 196 197 198
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CustomerOrderTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"customerordercell" forIndexPath:indexPath];
    cell.backgroundColor = [UIColor clearColor];
    cell.cellBackView.layer.masksToBounds = YES;
勾芒's avatar
勾芒 committed
199
    cell.model = [self.datasArray objectAtIndex_opple:indexPath.row];
曹云霄's avatar
曹云霄 committed
200
    cell.cellBackView.layer.cornerRadius = kCornerRadius;
勾芒's avatar
勾芒 committed
201 202 203
    cell.backgroundColor = [UIColor clearColor];
    cell.cellIndex = indexPath.row;
    cell.delegate = self;
曹云霄's avatar
曹云霄 committed
204 205 206 207 208
    return cell;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
勾芒's avatar
勾芒 committed
209
    return self.datasArray.count;
曹云霄's avatar
曹云霄 committed
210 211 212 213 214 215 216
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 260;
}

勾芒's avatar
勾芒 committed
217 218
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
曹云霄's avatar
曹云霄 committed
219
    OrderdetailsViewController *orderdetails = [[[self class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"orderdetails"];
220
    TOOrderEntity *model = (TOOrderEntity *)[[self.datasArray objectAtIndex_opple:indexPath.row] order];
勾芒's avatar
勾芒 committed
221
    orderdetails.orderCode = model.orderNumber;
222
    orderdetails.consumerID = model.consumerId;
曹云霄's avatar
曹云霄 committed
223
    if ([model.orderState isEqualToString:@"006"] || [model.orderState isEqualToString:@"002"] || [model.orderState isEqualToString:@"003"]) {
勾芒's avatar
勾芒 committed
224
        orderdetails.isShowPrintButton = YES;
225 226
        orderdetails.isShowPayButton = NO;
        orderdetails.isShowHeaderView = YES;
227
        orderdetails.isUserInteractionEnabled = NO;
228 229
        
    } else if ([model.orderState isEqualToString:@"001"]) {//未付款
勾芒's avatar
勾芒 committed
230
        orderdetails.isShowPayButton = YES;
231 232
        orderdetails.isShowPrintButton = NO;
        orderdetails.isShowHeaderView = YES;
233
        orderdetails.isUserInteractionEnabled = YES;
234 235 236
        
    }else{
        orderdetails.isShowHeaderView = NO;
勾芒's avatar
勾芒 committed
237
    }
238 239 240 241 242 243 244
    //撤销、支付回调
    [orderdetails setDelecteAndPayButtonBlock:^(NSInteger cellindex, NSString *orderSate) {
        OrderBill *model = [self.datasArray objectAtIndex_opple:cellindex];
        model.order.orderState = orderSate;
        NSIndexPath *indexapath = [NSIndexPath indexPathForRow:cellindex inSection:0];
        [self.customerOrderTableView reloadRowsAtIndexPaths:@[indexapath] withRowAnimation:UITableViewRowAnimationNone];
    }];
勾芒's avatar
勾芒 committed
245 246 247
    [self.navigationController pushViewController:orderdetails animated:YES];
}

曹云霄's avatar
曹云霄 committed
248 249


勾芒's avatar
勾芒 committed
250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278
#pragma mark -弹出popover视图控制器
- (void)ShowPopoverViewController:(CGSize)size Withdatas:(NSArray *)datasArray ShowButton:(UIButton *)button SelectedIndex:(NSInteger)index
{
    
    PopoverViewController *popover = [[PopoverViewController alloc]init];
    popover.datasArray = datasArray;
    popover.delegate = self;
    popover.isString = YES;
    popover.Selectedindex = index;
    popover.contentSize = size;
    popover.preferredContentSize = size;
    popover.modalPresentationStyle = UIModalPresentationPopover;
    UIPopoverPresentationController *pop = popover.popoverPresentationController;
    pop.permittedArrowDirections = UIPopoverArrowDirectionAny;
    pop.sourceView = popover.view;
    pop.barButtonItem = [[UIBarButtonItem alloc]initWithCustomView:button];
    [self presentViewController:popover animated:YES completion:nil];
    
}


#pragma mark -选中代理
/**
 *  选中筛选条件对象typecode
 *
 *  @param index NSString
 */
- (void)returnCellindexpathwithrow:(NSString *)Type WithcellTitle:(NSString *)title Withselected:(NSInteger)Selected
{
279
    [self.styleButton setTitle:title forState:UIControlStateNormal];
勾芒's avatar
勾芒 committed
280 281 282
    [self dismissViewControllerAnimated:YES completion:nil];
    
    NSString *orderState = nil;
勾芒's avatar
勾芒 committed
283 284 285 286 287 288 289
    //全部订单
    if ([title isEqualToString:@"全部订单"]) {
        orderState = nil;
    }
    //待支付
    else if ([title isEqualToString:@"待支付"]) {
        orderState = @"001";
勾芒's avatar
勾芒 committed
290
    }
勾芒's avatar
勾芒 committed
291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310
    //已支付
   else if ([title isEqualToString:@"已支付"]) {
        orderState = @"002";
    }
    //已发货
   else  if ([title isEqualToString:@"已发货"]) {
        orderState = @"003";
    }
    //已完成
   else if ([title isEqualToString:@"已完成"]) {
        orderState = @"006";
    }
    //已撤销
   else if ([title isEqualToString:@"已撤销"]) {
        orderState = @"005";
    }
    //已退货
   else if ([title isEqualToString:@"已退货"]) {
        orderState = @"004";
    }
311 312
    self.model.consumerNameOrMobileEquals = nil;
    self.model.orderStateEquals = orderState;
313
    [self.customerOrderTableView.mj_header beginRefreshing];
勾芒's avatar
勾芒 committed
314 315 316 317 318 319 320 321
}



#pragma mark -Search点击
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
322 323
    self.model.consumerNameOrMobileEquals = textField.text;
    self.model.orderStateEquals = nil;
324
    [self.customerOrderTableView.mj_header beginRefreshing];
勾芒's avatar
勾芒 committed
325 326 327 328 329
    return YES;
}



勾芒's avatar
勾芒 committed
330
#pragma mark -撤销订单
勾芒's avatar
勾芒 committed
331
- (void)undoOrderButtonClick:(NSInteger)cellindex
勾芒's avatar
勾芒 committed
332
{
333
    WS(weakSelf);
勾芒's avatar
勾芒 committed
334
    UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"提示" message:@"请确认是否撤销订单" preferredStyle:UIAlertControllerStyleAlert];
335
    [alertVC addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]];
勾芒's avatar
勾芒 committed
336 337 338 339
    [alertVC addAction:[UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
        
        [weakSelf CreateMBProgressHUDLoding];
        OrderBill *model = [weakSelf.datasArray objectAtIndex_opple:cellindex];
340
        [[NetworkRequestClassManager Manager] NetworkWithDictionaryRequestWithURL:[NSString stringWithFormat:@"%@%@/%@/%@",SERVERREQUESTURL(RESETORDER),model.order.orderNumber,model.order.orderState,@"005"] WithCallClass:weakSelf WithRequestType:1 WithParameter:nil WithReturnValueBlock:^(id returnValue) {
勾芒's avatar
勾芒 committed
341
            
勾芒's avatar
勾芒 committed
342
            [weakSelf RemoveMBProgressHUDLoding];
勾芒's avatar
勾芒 committed
343
            if ([returnValue[@"code"] isEqualToNumber:@0]) {
勾芒's avatar
勾芒 committed
344
                [weakSelf SuccessMBProgressView:@"撤销成功"];
勾芒's avatar
勾芒 committed
345 346
                model.order.orderState = @"005";
                NSIndexPath *indexapath = [NSIndexPath indexPathForRow:cellindex inSection:0];
勾芒's avatar
勾芒 committed
347
                [weakSelf.customerOrderTableView reloadRowsAtIndexPaths:@[indexapath] withRowAnimation:UITableViewRowAnimationLeft];
勾芒's avatar
勾芒 committed
348 349 350
            }
            else
            {
勾芒's avatar
勾芒 committed
351
                [weakSelf ErrorMBProgressView:returnValue[@"message"]];
勾芒's avatar
勾芒 committed
352 353 354
            }
            
        } WithErrorCodeBlock:^(id errorCodeValue) {
曹云霄's avatar
曹云霄 committed
355
            [self RemoveMBProgressHUDLoding];
356 357
            [self ErrorMBProgressView:NETWORK];
        } WithFailureBlock:^(NSError *error) {
勾芒's avatar
勾芒 committed
358
            [weakSelf RemoveMBProgressHUDLoding];
359
            [weakSelf ErrorMBProgressView:error.localizedDescription];
勾芒's avatar
勾芒 committed
360
        }];
勾芒's avatar
勾芒 committed
361 362
    }]];
    [self presentViewController:alertVC animated:YES completion:nil];
勾芒's avatar
勾芒 committed
363 364 365
}


勾芒's avatar
勾芒 committed
366 367

#pragma mark -去支付
勾芒's avatar
勾芒 committed
368 369
- (void)TopayButtonClick:(NSInteger)cellindex
{
曹云霄's avatar
曹云霄 committed
370
    OrderdetailsViewController *orderdetails = [[[self class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"orderdetails"];
曹云霄's avatar
曹云霄 committed
371
    TOOrderEntity *model = (TOOrderEntity *)[[self.datasArray objectAtIndex_opple:cellindex] order];
勾芒's avatar
勾芒 committed
372
    orderdetails.orderCode = model.orderNumber;
曹云霄's avatar
曹云霄 committed
373
    if ([model.orderState isEqualToString:@"006"] || [model.orderState isEqualToString:@"002"] || [model.orderState isEqualToString:@"003"]) {
勾芒's avatar
勾芒 committed
374
        orderdetails.isShowPrintButton = YES;
375 376
        orderdetails.isShowPayButton = NO;
        orderdetails.isShowHeaderView = YES;
377
        orderdetails.isUserInteractionEnabled = NO;
378 379
        
    } else if ([model.orderState isEqualToString:@"001"]) {//未付款
勾芒's avatar
勾芒 committed
380
        orderdetails.isShowPayButton = YES;
381 382
        orderdetails.isShowPrintButton = NO;
        orderdetails.isShowHeaderView = YES;
383
        orderdetails.isUserInteractionEnabled = YES;
384 385 386
        
    }else{
        orderdetails.isShowHeaderView = NO;
勾芒's avatar
勾芒 committed
387 388 389 390 391 392 393 394 395 396 397 398
    }
    //撤销、支付回调
    [orderdetails setDelecteAndPayButtonBlock:^(NSInteger cellindex, NSString *orderSate) {
        
        OrderBill *model = [self.datasArray objectAtIndex_opple:cellindex];
        model.order.orderState = orderSate;
        NSIndexPath *indexapath = [NSIndexPath indexPathForRow:cellindex inSection:0];
        [self.customerOrderTableView reloadRowsAtIndexPaths:@[indexapath] withRowAnimation:UITableViewRowAnimationNone];
        
    }];
    [self.navigationController pushViewController:orderdetails animated:YES];
}
勾芒's avatar
勾芒 committed
399 400


曹云霄's avatar
曹云霄 committed
401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416
#pragma mark -友好界面
- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView
{
    return kNoDataImage;
}

- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView
{
    return [[NSAttributedString alloc]initWithString:@"暂无数据" attributes:nil];
}

- (BOOL)emptyDataSetShouldAllowScroll:(UIScrollView *)scrollView
{
    return YES;
}

勾芒's avatar
勾芒 committed
417

曹云霄's avatar
曹云霄 committed
418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end