//
//  OrderRecordViewController.m
//  Lighting
//
//  Created by 曹云霄 on 2016/10/25.
//  Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//

#import "OrderRecordViewController.h"
#import "OrderdetailsViewController.h"
#import "OrderTableViewCell.h"

@interface OrderRecordViewController ()<UITableViewDelegate,UITableViewDataSource,DZNEmptyDataSetSource,DZNEmptyDataSetDelegate>

/**
 *  记录总页数
 */
@property (nonatomic,assign) NSInteger totalPage;

/**
 *  订单记录数据
 */
@property (nonatomic,strong) NSMutableArray *orderRecordArray;

/**
 *  请求订单记录
 */
@property (nonatomic,strong) OrderFilter *orderRecordModel;

@end

@implementation OrderRecordViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    [self GetdatasAciton];
}

#pragma mark -获取数据
- (void)GetdatasAciton
{
    WS(weakSelf);
    //下拉刷新
    MjRefreshHeaderCustom *headerRefresh = [MjRefreshHeaderCustom headerWithRefreshingBlock:^{
        //购物袋
        weakSelf.orderRecordModel.dp.page = 1;
        [weakSelf.orderRecordTableView.mj_footer resetNoMoreData];
        [weakSelf getGuideAllcustomerOrder:weakSelf.orderRecordModel isRemove:YES];
    }];
    headerRefresh.stateLabel.hidden = YES;
    headerRefresh.lastUpdatedTimeLabel.hidden = YES;
    self.orderRecordTableView.mj_header = headerRefresh;
    //进入刷新状态
    [self.orderRecordTableView.mj_header beginRefreshing];
    //上拉加载
    self.orderRecordTableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        
        [weakSelf.orderRecordTableView.mj_footer resetNoMoreData];
        //购物袋
        if (++ weakSelf.orderRecordModel.dp.page > weakSelf.totalPage) {
            [weakSelf.orderRecordTableView.mj_footer endRefreshingWithNoMoreData];
        }else
        {
            [weakSelf getGuideAllcustomerOrder:weakSelf.orderRecordModel isRemove:NO];
        }
    }];
    self.orderRecordTableView.mj_footer.automaticallyHidden = YES;
    self.orderRecordTableView.tableFooterView = [UIView new];
}


#pragma mark -获取客户订单数据
- (void)getGuideAllcustomerOrder:(OrderFilter *)allOrder isRemove:(BOOL)remove
{
    [self CreateMBProgressHUDLoding];
    WS(weakSelf);
    [[NetworkRequestClassManager Manager] NetworkRequestWithURL:SERVERREQUESTURL(QUERYORDER) WithCallClass:weakSelf WithRequestType:0 WithParameter:allOrder WithReturnValueBlock:^(id returnValue) {
        
        weakSelf.orderRecordTableView.emptyDataSetSource = weakSelf;
        weakSelf.orderRecordTableView.emptyDataSetDelegate = weakSelf;
        [weakSelf RemoveMBProgressHUDLoding];
        [weakSelf endRefreshingForTableView:weakSelf.orderRecordTableView];
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
            if (remove) {
                [weakSelf.orderRecordArray removeAllObjects];
            }
            OrderResponse *Allorder = [[OrderResponse alloc]initWithDictionary:returnValue[@"data"] error:nil];
            weakSelf.totalPage = [returnValue[@"data"][@"totalpages"] intValue];
            for (OrderBill *model in Allorder.orderBillList) {
                [weakSelf.orderRecordArray addObject:model];
            }
            [weakSelf.orderRecordTableView reloadData];
        }else
        {
            [weakSelf ErrorMBProgressView:returnValue[@"message"]];
        }
        
    } WithErrorCodeBlock:^(id errorCodeValue) {
        [weakSelf RemoveMBProgressHUDLoding];
        [weakSelf ErrorMBProgressView:NETWORK];
    } WithFailureBlock:^(NSError *error) {
        [weakSelf RemoveMBProgressHUDLoding];
        [weakSelf ErrorMBProgressView:error.localizedDescription];
    }];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    OrderTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ordercell" forIndexPath:indexPath];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    cell.model = [self.orderRecordArray objectAtIndex_opple:indexPath.row];
    return  cell;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.orderRecordArray.count;
}


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


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    OrderdetailsViewController *orderdetails = [[self getStoryboardWithName] instantiateViewControllerWithIdentifier:@"orderdetails"];
    TOOrderEntity *model = (TOOrderEntity *)[[self.orderRecordArray objectAtIndex_opple:indexPath.row] order];
    orderdetails.orderCode = model.orderNumber;
    if ([model.orderState isEqualToString:@"006"] || [model.orderState isEqualToString:@"002"] || [model.orderState isEqualToString:@"003"]) {
        orderdetails.isShowPrintButton = YES;
        orderdetails.isShowPayButton = NO;
        orderdetails.isShowHeaderView = YES;
        orderdetails.isUserInteractionEnabled = NO;
        
    } else if ([model.orderState isEqualToString:@"001"]) {//未付款
        orderdetails.isShowPayButton = YES;
        orderdetails.isShowPrintButton = NO;
        orderdetails.isShowHeaderView = YES;
        orderdetails.isUserInteractionEnabled = YES;
        
    }else{
        orderdetails.isShowHeaderView = NO;
    }
    //撤销、支付回调
    WS(weakSelf);
    [orderdetails setDelecteAndPayButtonBlock:^(NSInteger cellindex, NSString *orderSate) {
        OrderBill *model = [weakSelf.orderRecordArray objectAtIndex_opple:cellindex];
        model.order.orderState = orderSate;
        NSIndexPath *indexapath = [NSIndexPath indexPathForRow:cellindex inSection:0];
        [weakSelf.orderRecordTableView reloadRowsAtIndexPaths:@[indexapath] withRowAnimation:UITableViewRowAnimationNone];
    }];
    [self.navigationController pushViewController:orderdetails animated:YES];
}

#pragma mark - lazy
- (NSMutableArray *)orderRecordArray
{
    if (_orderRecordArray == nil) {
        
        _orderRecordArray = [NSMutableArray array];
    }
    return _orderRecordArray;
}

- (OrderFilter *)orderRecordModel
{
    if (!_orderRecordModel) {
        _orderRecordModel = [[OrderFilter alloc]init];
        DataPage *Newpage = [[DataPage alloc]init];
        Newpage.page = 1;
        Newpage.rows = KROWS;
        _orderRecordModel.dp = Newpage;
        _orderRecordModel.consumerIdEquals = self.model.fid;
    }
    return _orderRecordModel;
}

#pragma mark -友好界面
- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView
{
    return kNoDataImage;
}

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

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

- (CGFloat)verticalOffsetForEmptyDataSet:(UIScrollView *)scrollView
{
    return 100;
}


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


@end
