CustomerOrderViewController.m 14.4 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;
}

曹云霄's avatar
曹云霄 committed
71 72 73 74
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self uiConfigAction];
勾芒's avatar
勾芒 committed
75
   
曹云霄's avatar
曹云霄 committed
76 77
}

勾芒's avatar
勾芒 committed
78 79 80

#pragma mark -UI
- (void)uiConfigAction
曹云霄's avatar
曹云霄 committed
81
{
勾芒's avatar
勾芒 committed
82 83 84 85 86 87 88 89 90 91 92 93 94 95
    self.searchCustomerOrder.delegate = self;
    self.view.backgroundColor = kTCColor(238, 238, 238);
    self.customerOrderTableView.dataSource = self;
    self.customerOrderTableView.delegate = self;
    self.customerOrderTableView.backgroundColor = [UIColor clearColor];
    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];
96 97
    //经销商代码
    self.model.resellerCodeEquals = [[Shoppersmanager manager].Shoppers.employee.currentDepart  orgCode];
勾芒's avatar
勾芒 committed
98
    //下拉刷新
99
    __weak typeof(self) weakSelf = self;
勾芒's avatar
勾芒 committed
100
    MjRefreshHeaderCustom *headerRefresh = [MjRefreshHeaderCustom headerWithRefreshingBlock:^{
勾芒's avatar
勾芒 committed
101 102
        
        self.indexPage = 1;
勾芒's avatar
勾芒 committed
103
        DataPage *page = [[DataPage alloc]init];
104 105
        page.page = weakSelf.indexPage;
        page.rows = KROWS;
106
        weakSelf.model.dp = page;
107 108
        [weakSelf.customerOrderTableView.mj_footer resetNoMoreData];
        [weakSelf getGuideAllcustomerOrder:YES WithorderBill:weakSelf.model];
勾芒's avatar
勾芒 committed
109
    }];
勾芒's avatar
勾芒 committed
110 111 112
    headerRefresh.stateLabel.hidden = YES;
    headerRefresh.lastUpdatedTimeLabel.hidden = YES;
    self.customerOrderTableView.mj_header = headerRefresh;
勾芒's avatar
勾芒 committed
113 114 115 116
    [self.customerOrderTableView.mj_header beginRefreshing];
    //上拉加载
    self.customerOrderTableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        
117 118
        if ( ++ weakSelf.indexPage > weakSelf.totalPages) {
            [weakSelf.customerOrderTableView.mj_footer endRefreshingWithNoMoreData];
勾芒's avatar
勾芒 committed
119 120 121
        }else
        {
            DataPage *page = [[DataPage alloc]init];
122
            page.page = weakSelf.indexPage;
123
            page.rows = KROWS;
124
            weakSelf.model.dp = page;
125
            [weakSelf getGuideAllcustomerOrder:NO WithorderBill:weakSelf.model];
勾芒's avatar
勾芒 committed
126
        }
勾芒's avatar
勾芒 committed
127
    }];
曹云霄's avatar
曹云霄 committed
128 129
    self.customerOrderTableView.mj_footer.automaticallyHidden = YES;

勾芒's avatar
勾芒 committed
130 131 132
}


勾芒's avatar
勾芒 committed
133
#pragma mark -获取导购下客户订单  ----isdelecte 表示是否清空数组
134
- (void)getGuideAllcustomerOrder:(BOOL)isdelecte WithorderBill:(OrderFilter *)allOrder
勾芒's avatar
勾芒 committed
135
{
勾芒's avatar
勾芒 committed
136 137

    [self CreateMBProgressHUDLoding];
138
    [[NetworkRequestClassManager Manager] NetworkRequestWithURL:SERVERREQUESTURL(QUERYORDER) WithRequestType:0 WithParameter:allOrder WithReturnValueBlock:^(id returnValue) {
勾芒's avatar
勾芒 committed
139
        
曹云霄's avatar
曹云霄 committed
140 141
        self.customerOrderTableView.emptyDataSetSource = self;
        self.customerOrderTableView.emptyDataSetDelegate = self;
勾芒's avatar
勾芒 committed
142 143
        [self RemoveMBProgressHUDLoding];
        [self endRefreshingForTableView:self.customerOrderTableView];
勾芒's avatar
勾芒 committed
144 145
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
            
勾芒's avatar
勾芒 committed
146 147 148
            if (isdelecte) {
                [self.datasArray removeAllObjects];
            }
勾芒's avatar
勾芒 committed
149
            OrderResponse *Allorder = [[OrderResponse alloc]initWithDictionary:returnValue[@"data"] error:nil];
勾芒's avatar
勾芒 committed
150
            self.totalPages = [returnValue[@"data"][@"totalpages"] intValue];
勾芒's avatar
勾芒 committed
151 152 153 154
            for (OrderBill *model in Allorder.orderBillList) {
                [self.datasArray addObject:model];
            }
            [self.customerOrderTableView reloadData];
勾芒's avatar
勾芒 committed
155 156 157 158 159 160
        }else
        {
            [self ErrorMBProgressView:returnValue[@"message"]];
        }
        
    } WithErrorCodeBlock:^(id errorCodeValue) {
曹云霄's avatar
曹云霄 committed
161 162
        [self RemoveMBProgressHUDLoding];
        [self ErrorMBProgressView:@"无网络"];
勾芒's avatar
勾芒 committed
163 164
    } WithFailureBlock:^(id error) {
        
勾芒's avatar
勾芒 committed
165 166
        [self endRefreshingForTableView:self.customerOrderTableView];
        [self RemoveMBProgressHUDLoding];
勾芒's avatar
勾芒 committed
167 168 169 170
    }];
}

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

勾芒's avatar
勾芒 committed
176

曹云霄's avatar
曹云霄 committed
177 178 179 180 181
- (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
182
    cell.model = [self.datasArray objectAtIndex_opple:indexPath.row];
曹云霄's avatar
曹云霄 committed
183
    cell.cellBackView.layer.cornerRadius = kCornerRadius;
勾芒's avatar
勾芒 committed
184 185 186
    cell.backgroundColor = [UIColor clearColor];
    cell.cellIndex = indexPath.row;
    cell.delegate = self;
曹云霄's avatar
曹云霄 committed
187 188 189 190 191
    return cell;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
勾芒's avatar
勾芒 committed
192
    return self.datasArray.count;
曹云霄's avatar
曹云霄 committed
193 194 195 196 197 198 199
}

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

勾芒's avatar
勾芒 committed
200 201 202 203 204 205 206 207
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"StoryboardwithCYX" bundle:nil];
    OrderdetailsViewController *orderdetails = [storyboard instantiateViewControllerWithIdentifier:@"orderdetails"];
    TOOrderEntity *model = [[self.datasArray objectAtIndex_opple:indexPath.row] order];
    orderdetails.orderCode = model.orderNumber;
    orderdetails.sectionTitle = @[@"订单信息",@"客户信息",@"收货信息",@"商品信息",@"附件信息"];
    orderdetails.isShowattachment = YES;
曹云霄's avatar
曹云霄 committed
208
    if ([model.orderState isEqualToString:@"006"] || [model.orderState isEqualToString:@"002"] || [model.orderState isEqualToString:@"003"]) {
勾芒's avatar
勾芒 committed
209 210 211 212
        orderdetails.isShowPrintButton = YES;
        orderdetails.isDelectedButton = NO;
    }
    if ([model.orderState isEqualToString:@"001"]) {
勾芒's avatar
勾芒 committed
213
        orderdetails.isShowPayButton = YES;
勾芒's avatar
勾芒 committed
214
        orderdetails.isDelectedButton = YES;
勾芒's avatar
勾芒 committed
215 216 217 218 219
        orderdetails.isShowPrintButton = YES;
    }
    [self.navigationController pushViewController:orderdetails animated:YES];
}

曹云霄's avatar
曹云霄 committed
220 221


勾芒's avatar
勾芒 committed
222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254
#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
{
    [self.StyleButton setTitle:title forState:UIControlStateNormal];
    [self dismissViewControllerAnimated:YES completion:nil];
    
    NSString *orderState = nil;
勾芒's avatar
勾芒 committed
255 256 257 258 259 260 261
    //全部订单
    if ([title isEqualToString:@"全部订单"]) {
        orderState = nil;
    }
    //待支付
    else if ([title isEqualToString:@"待支付"]) {
        orderState = @"001";
勾芒's avatar
勾芒 committed
262
    }
勾芒's avatar
勾芒 committed
263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282
    //已支付
   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";
    }
283 284
    self.model.consumerNameOrMobileEquals = nil;
    self.model.orderStateEquals = orderState;
285
    [self.customerOrderTableView.mj_header beginRefreshing];
勾芒's avatar
勾芒 committed
286 287 288 289 290 291 292 293
}



#pragma mark -Search点击
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
294 295
    self.model.consumerNameOrMobileEquals = textField.text;
    self.model.orderStateEquals = nil;
296
    [self.customerOrderTableView.mj_header beginRefreshing];
勾芒's avatar
勾芒 committed
297 298 299 300 301
    return YES;
}



勾芒's avatar
勾芒 committed
302
#pragma mark -撤销订单
勾芒's avatar
勾芒 committed
303
- (void)undoOrderButtonClick:(NSInteger)cellindex
勾芒's avatar
勾芒 committed
304
{
勾芒's avatar
勾芒 committed
305 306 307 308 309
    __weak typeof(self) weakSelf = self;
    UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"提示" message:@"请确认是否撤销订单" preferredStyle:UIAlertControllerStyleAlert];
    [alertVC addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
        [weakSelf dismissViewControllerAnimated:YES completion:nil];
    }]];
勾芒's avatar
勾芒 committed
310
    
勾芒's avatar
勾芒 committed
311 312 313 314
    [alertVC addAction:[UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
        
        [weakSelf CreateMBProgressHUDLoding];
        OrderBill *model = [weakSelf.datasArray objectAtIndex_opple:cellindex];
315
        [[NetworkRequestClassManager Manager] NetworkWithDictionaryRequestWithURL:[NSString stringWithFormat:@"%@%@/%@/%@",SERVERREQUESTURL(RESETORDER),model.order.orderNumber,model.order.orderState,@"005"] WithRequestType:1 WithParameter:nil WithReturnValueBlock:^(id returnValue) {
勾芒's avatar
勾芒 committed
316
            
勾芒's avatar
勾芒 committed
317 318
            [weakSelf dismissViewControllerAnimated:YES completion:nil];
            [weakSelf RemoveMBProgressHUDLoding];
勾芒's avatar
勾芒 committed
319 320
            if ([returnValue[@"code"] isEqualToNumber:@0]) {
                
勾芒's avatar
勾芒 committed
321
                [weakSelf SuccessMBProgressView:@"撤销成功"];
勾芒's avatar
勾芒 committed
322 323
                model.order.orderState = @"005";
                NSIndexPath *indexapath = [NSIndexPath indexPathForRow:cellindex inSection:0];
勾芒's avatar
勾芒 committed
324
                [weakSelf.customerOrderTableView reloadRowsAtIndexPaths:@[indexapath] withRowAnimation:UITableViewRowAnimationLeft];
勾芒's avatar
勾芒 committed
325 326 327
            }
            else
            {
勾芒's avatar
勾芒 committed
328
                [weakSelf ErrorMBProgressView:returnValue[@"message"]];
勾芒's avatar
勾芒 committed
329 330 331
            }
            
        } WithErrorCodeBlock:^(id errorCodeValue) {
曹云霄's avatar
曹云霄 committed
332 333
            [self RemoveMBProgressHUDLoding];
            [self ErrorMBProgressView:@"无网络"];
勾芒's avatar
勾芒 committed
334 335
        } WithFailureBlock:^(id error) {
            
勾芒's avatar
勾芒 committed
336
            [weakSelf RemoveMBProgressHUDLoding];
勾芒's avatar
勾芒 committed
337
        }];
勾芒's avatar
勾芒 committed
338 339 340
    }]];
    
    [self presentViewController:alertVC animated:YES completion:nil];
勾芒's avatar
勾芒 committed
341 342 343
}


勾芒's avatar
勾芒 committed
344 345

#pragma mark -去支付
勾芒's avatar
勾芒 committed
346 347 348 349 350 351 352 353
- (void)TopayButtonClick:(NSInteger)cellindex
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"StoryboardwithCYX" bundle:nil];
    OrderdetailsViewController *orderdetails = [storyboard instantiateViewControllerWithIdentifier:@"orderdetails"];
    TOOrderEntity *model = [[self.datasArray objectAtIndex_opple:cellindex] order];
    orderdetails.orderCode = model.orderNumber;
    orderdetails.sectionTitle = @[@"订单信息",@"客户信息",@"收货信息",@"商品信息",@"附件信息"];
    orderdetails.isShowattachment = YES;
曹云霄's avatar
曹云霄 committed
354
    if ([model.orderState isEqualToString:@"006"] || [model.orderState isEqualToString:@"002"] || [model.orderState isEqualToString:@"003"]) {
勾芒's avatar
勾芒 committed
355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374
        orderdetails.isShowPrintButton = YES;
        orderdetails.isDelectedButton = NO;
    }
    if ([model.orderState isEqualToString:@"001"]) {
        orderdetails.isShowPayButton = YES;
        orderdetails.isDelectedButton = YES;
        orderdetails.isShowPrintButton = YES;
    }
    
    //撤销、支付回调
    [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
375 376


曹云霄's avatar
曹云霄 committed
377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392
#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
393

曹云霄's avatar
曹云霄 committed
394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410

- (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