TransportPurchaseCell.m 7.89 KB
//
//  TransportPurchaseCell.m
//  XFFruit
//
//  Created by 陈俊俊 on 15/9/6.
//  Copyright (c) 2015年 Xummer. All rights reserved.
//

#import "TransportPurchaseCell.h"
#import "TransportPurductCell.h"
#import "HeaderCell.h"
#define TableHeight 44
#define ShowHeight  110

@interface TransportPurchaseCell ()
@property (strong, nonatomic) HeaderCell *headCell;
@end
@implementation TransportPurchaseCell


- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
    
    self =  [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        [self bulidLayout];
    }
    return self;
}

- (void)bulidLayout
{
    self.contentView.backgroundColor = XXFBgColor;
    
    self.bgView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, ScreenSize.width, 170)];
    self.bgView.backgroundColor = [UIColor whiteColor];
    [self.contentView addSubview:self.bgView];
    
    self.lineLabel = [[UILabel alloc]initWithFrame:(CGRectMake(0,0, ScreenSize.width, 1))];;
    self.lineLabel.backgroundColor = GXF_LINE_COLOR;

    self.titleLabel = [[UILabel alloc]initWithFrame:(CGRectMake(0, 0, ScreenSize.width, 44))];
    self.titleLabel.textColor = GXF_NAVIGAYION_COLOR;
    self.titleLabel.textAlignment = NSTextAlignmentCenter;
    self.titleLabel.font = GXF_SEVENTEENTH_SIZE;
    
    self.secondLabel = [[UILabel alloc]initWithFrame:(CGRectMake(0,44-1, ScreenSize.width, 1))];;
    self.secondLabel.backgroundColor = GXF_LINE_COLOR;

    
    [self.bgView addSubview:self.titleLabel];
    [self.bgView addSubview:self.lineLabel];
    [self.bgView addSubview:self.secondLabel];

    self.secondTable = [[UITableView alloc]initWithFrame:(CGRectMake(0, 44,ScreenSize.width, self.bgView.height-45)) style:(UITableViewStylePlain)];
    
    self.secondTable.delegate = self;
    self.secondTable.dataSource = self;
        self.secondTable.bounces = NO;
    self.secondTable.separatorStyle = UITableViewCellSeparatorStyleNone;
    [self.bgView addSubview:self.secondTable];
    NSArray *arr = @[@"商品",@"包装规格",@"已收货包装数",@"可运包装数"];
    
    __weak TransportPurchaseCell *weakSelf = self;
    self.headCell = [[HeaderCell alloc]initWithFrame:CGRectMake(0, 0, ScreenSize.width, 38) WithCheckBoxArr:arr checkBox:^(BOOL isSelect) {
        if (isSelect) {
//            [weakSelf.selectArr removeAllObjects];
            
            for (TransportPdtDetail *pdt in weakSelf.secondArr) {
                if (pdt.shippedFlag.boolValue) {
                    NSString *msg = [NSString stringWithFormat:@"商品[%@]已被转运或者发运!", pdt.productName];
                    ShowMessage(msg);
                    weakSelf.headCell.checkBox.isSelected = NO;
                    return ;
                }
            }
            
            for (TransportPdtDetail *pdt in weakSelf.secondArr) {
                if (![weakSelf.selectArr containsObject:pdt]) {
                    [weakSelf.selectArr addObject:pdt];
                }
            }
            
//            [weakSelf.selectArr addObjectsFromArray:weakSelf.secondArr];
            
        }else{
            [weakSelf.selectArr removeObjectsInArray:weakSelf.secondArr];
        }
        [weakSelf.secondTable reloadData];
    }];
    self.secondTable.tableHeaderView = self.headCell;
    

}
- (void)setPurchaseBill:(PurchaseBill *)bill selectArr:(NSMutableArray *)selectArr{
    self.bill = bill;
    self.bgView.height = 92 + bill.products.count * 44;
    self.secondTable.height = self.bgView.height - 45;
    self.titleLabel.text = [NSString stringWithFormat:@"采购单:%@  创建人:%@",
                            bill.billNumber, bill.create_operName];
    self.secondArr = [NSMutableArray array];
    self.selectArr = selectArr;
    [self.secondArr addObjectsFromArray:bill.products];
    
    //重要
    [self.secondTable reloadData];
}

- (void)setTransPort:(Transport *)bill selectArr:(NSMutableArray *)selectArr{
    self.bgView.height = 92 + bill.pdtDetails.count * 44;
    self.secondTable.height = self.bgView.height - 45;
    self.titleLabel.text = [NSString stringWithFormat:@"发运单号:%@",bill.billnumber];
    self.secondArr = [NSMutableArray array];
    self.selectArr = selectArr;
    [self.secondArr addObjectsFromArray:bill.pdtDetails];
    //重要
    [self.secondTable reloadData];
}

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellID = @"TransportPurductCell";
    TransportPurductCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
    cell.editBtn.enabled = NO;
    [self checkIsSelectAll];
    if (cell == nil) {
        cell = [[TransportPurductCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID withImageName:@"selected"];
        cell.editBtn.hidden = YES;
        cell.rightImageName = @"edit";
    }
    if (self.secondArr.count > 0) {
        TransportPdtDetail * billProduct = self.secondArr[indexPath.row];
        [cell setPdtDetail:billProduct row:indexPath.row];
        
        if ([self isHaveIndexPath:billProduct]) {
            cell.editBtn.hidden = NO;
            //        cell.smallImageView.image = [UIImage imageNamed:@"arrowdown"];
            //        cell.lineLabel.y = ShowHeight + TableHeight -1;
            //        cell.showView.height = ShowHeight;
            //        cell.backgroundColor = XXFBgColor;
        }else{
            cell.editBtn.hidden = YES;
            //        cell.smallImageView.image = [UIImage imageNamed:@"arrowright"];
            //        cell.lineLabel.y =  TableHeight -1;
            //        cell.showView.height = 0;
            //        cell.backgroundColor = [UIColor whiteColor];
        }
    }
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    return cell;
    
}

- (void)checkIsSelectAll {
    BOOL isHasAll = YES;
    for (TransportPdtDetail *detail in self.bill.products) {
        if (![self.selectArr containsObject:detail]) {
            isHasAll = NO;
        }
    }
    
    self.headCell.checkBox.isSelected = isHasAll;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
//    TransportPdtDetail * billProduct = self.secondArr[indexPath.row];
//    if ([self isHaveIndexPath:billProduct]) {
//        return ShowHeight + TableHeight;
//    }
    return TableHeight;
}


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    
    //如果不是发运单,则可以单选
//    if (!self.isTransportIn) {
        TransportPdtDetail * billProduct = self.secondArr[indexPath.row];
        if (billProduct.shippedFlag.boolValue) {
            ShowMessage(@"该商品已经被转运或发运!");
            return;
        }
        
        TransportPurductCell *cell = (TransportPurductCell *)[tableView cellForRowAtIndexPath:indexPath];
        if (![self isHaveIndexPath:billProduct]) {
            cell.editBtn.hidden = NO;
            [self.selectArr addObject:billProduct];
            
        }else{
            [self.selectArr removeObject:billProduct];
            cell.editBtn.hidden = YES;
        }
        self.headCell.checkBox.isSelected = self.selectArr.count == self.secondArr.count;
        [self.secondTable reloadData];
        
//    }
}
- (BOOL)isHaveIndexPath:(TransportPdtDetail *)billProduct{
    for (TransportPdtDetail *detail in self.selectArr) {
        if (detail.uuid == billProduct.uuid || [detail.uuid isEqualToString:billProduct.uuid]) {
            return YES;
        }
    }
    return NO;
}
- (void)awakeFromNib {
    // Initialization code
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

@end