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

#import "ShoppingTableViewCell.h"

@implementation ShoppingTableViewCell

- (void)awakeFromNib {
    [super awakeFromNib];
    // Initialization code
勾芒's avatar
勾芒 committed
16 17
    
    [self uiConfigAction];
曹云霄's avatar
曹云霄 committed
18 19 20
}


勾芒's avatar
勾芒 committed
21 22 23
#pragma mark -UI
- (void)uiConfigAction
{
24
    [self.ClinchPriceBackView setMyCorner:kCornerRadius];
勾芒's avatar
勾芒 committed
25
    self.clinchTextfield.delegate = self;
勾芒's avatar
勾芒 committed
26 27
}

勾芒's avatar
勾芒 committed
28 29 30 31
#pragma mark -赋值
- (void)setModel:(ShopcarModel *)model
{
    _model = model;
勾芒's avatar
勾芒 committed
32
    self.selectedButton.selected = _model.isSelected;
勾芒's avatar
勾芒 committed
33 34
    NSArray *images = [_model.goods.pictures componentsSeparatedByString:@","];
    [self.goodsImageView sd_setImageWithURL:[NSURL URLWithString:[images firstObject]] placeholderImage:REPLACEIMAGE];
勾芒's avatar
勾芒 committed
35
    self.goodsInformationLabe.text = _model.goods.name;
36
    self.specifications.text = _model.goods.spec;
polo2013's avatar
polo2013 committed
37
    self.goodsCode.text = _model.goods.code;
勾芒's avatar
勾芒 committed
38
    self.tagsPriceLabe.text = [_model.goods.tagPrice stringValue];
勾芒's avatar
勾芒 committed
39
    self.clinchTextfield.text = [NSString stringWithFormat:@"%.2f",[_model.costPrice floatValue]?[_model.costPrice floatValue]:[_model.goods.tagPrice floatValue]];
40
    self.goodsNumbersLabe.text = [NSString stringWithFormat:@"%ld",_model.goodsNum];
勾芒's avatar
勾芒 committed
41 42 43 44
    if ([_model.costPrice integerValue] == 0) {
        _model.costPrice = _model.goods.tagPrice;
    }
    self.productPriceLabe.text = [NSString stringWithFormat:@"¥%.2f",[self.goodsNumbersLabe.text integerValue]*[_model.costPrice floatValue]];;
勾芒's avatar
勾芒 committed
45
}
曹云霄's avatar
曹云霄 committed
46 47 48 49 50 51

#pragma mark -增加或者减少商品
- (IBAction)reduceAndaddButtonClick:(UIButton *)sender {
    
    //sender.tag == 100   减少
    //sender.tag == 101   增加
勾芒's avatar
勾芒 committed
52 53 54 55 56
    NSInteger goodsNumber = [self.goodsNumbersLabe.text integerValue];
    switch (sender.tag) {
        case 100://减少
        {
            if (goodsNumber <= 1) {
勾芒's avatar
勾芒 committed
57 58 59
                if (self.promptStringBlock) {
                    self.promptStringBlock(@"个数不能小于1");
                }
勾芒's avatar
勾芒 committed
60 61 62 63 64 65 66 67
                //不能小于1
                return;
            }
            goodsNumber --;
        }
            break;
        case 101://增加
        {
68
            if (goodsNumber >= [self.model.goods.number integerValue]) {
勾芒's avatar
勾芒 committed
69
                //不能大于库存
勾芒's avatar
勾芒 committed
70 71 72
                if (self.promptStringBlock) {
                    self.promptStringBlock(@"个数不能大于库存");
                }
勾芒's avatar
勾芒 committed
73 74 75 76 77 78 79 80
                return;
            }
            goodsNumber ++;
        }
            break;
        default:
            break;
    }
勾芒's avatar
勾芒 committed
81
    //改变价格
曹云霄's avatar
曹云霄 committed
82
    WS(weakSelf);
曹云霄's avatar
曹云霄 committed
83 84
    if ([self.delegate respondsToSelector:@selector(changeGoodsNumber:withcostPrice:withcellindex:returnValue:)]) {
        [self.delegate changeGoodsNumber:goodsNumber withcostPrice:[self.clinchTextfield.text floatValue] withcellindex:_cellindex returnValue:^(id value) {
曹云霄's avatar
曹云霄 committed
85 86
            if ([value isKindOfClass:[NSDictionary class]]) {
                if ([value[@"code"] isEqualToNumber:@0]) {
87
                  weakSelf.goodsNumbersLabe.text = [NSString stringWithFormat:@"%ld",goodsNumber];
88 89 90
                  weakSelf.productPriceLabe.text = [NSString stringWithFormat:@"¥%.2f",goodsNumber*[self.clinchTextfield.text floatValue]];
                    self.model.costPrice = [NSNumber numberWithFloat:[self.clinchTextfield.text floatValue]];
                    self.model.goodsNum = goodsNumber;
曹云霄's avatar
曹云霄 committed
91 92 93
                }
            }
        }];
勾芒's avatar
勾芒 committed
94
    }
曹云霄's avatar
曹云霄 committed
95 96 97 98 99 100
}


#pragma mark -商品选中
- (IBAction)selectedButtonClick:(UIButton *)sender {
    
勾芒's avatar
勾芒 committed
101 102 103
    if (self.returnCellblock) {
        self.returnCellblock(_cellindex);
    }
勾芒's avatar
勾芒 committed
104
    sender.selected = !sender.selected;
曹云霄's avatar
曹云霄 committed
105 106 107
}


勾芒's avatar
勾芒 committed
108 109 110
#pragma mark -成交价完成修改
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
111
    Shoppersmanager *user = [Shoppersmanager manager];
112
    if ([textField.text floatValue] < [user.shoppers.lowestDiscount floatValue]/100 * [self.model.goods.tagPrice floatValue])
113 114 115 116 117 118
    {
        if (self.promptStringBlock) {
            self.promptStringBlock(@"当前价格低于你的权限范围!");
        }
    }
    else
勾芒's avatar
勾芒 committed
119 120
    {
        //改变价格
勾芒's avatar
勾芒 committed
121
        self.productPriceLabe.text = [NSString stringWithFormat:@"¥%.2f",[self.goodsNumbersLabe.text integerValue]*[textField.text floatValue]];
勾芒's avatar
勾芒 committed
122
        
曹云霄's avatar
曹云霄 committed
123 124
        if ([self.delegate respondsToSelector:@selector(changeGoodsNumber:withcostPrice:withcellindex:returnValue:)]) {
            [self.delegate changeGoodsNumber:[self.goodsNumbersLabe.text integerValue] withcostPrice:[self.clinchTextfield.text floatValue] withcellindex:_cellindex returnValue:^(id value) {
曹云霄's avatar
曹云霄 committed
125
            }];
勾芒's avatar
勾芒 committed
126
        }
勾芒's avatar
勾芒 committed
127 128 129 130
    }
    return YES;
}

131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
#pragma mark - <UITextFieldDelegate>
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSScanner      *scanner    = [NSScanner scannerWithString:string];
    NSCharacterSet *numbers;
    NSRange        pointRange = [textField.text rangeOfString:@"."];
    if ( (pointRange.length > 0) && (pointRange.location < range.location  || pointRange.location > range.location + range.length) ){
        numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
    }else{
        numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789."];
    }
    if ( [textField.text isEqualToString:@""] && [string isEqualToString:@"."] ){
        return NO;
    }
    short remain = 2; //保留 number位小数
    NSString *tempStr = [textField.text stringByAppendingString:string];
    NSUInteger strlen = [tempStr length];
    if(pointRange.length > 0 && pointRange.location > 0){ //判断输入框内是否含有“.”。
        if([string isEqualToString:@"."]){ //当输入框内已经含有“.”时,如果再输入“.”则被视为无效。
            return NO;
        }
        if(strlen > 0 && (strlen - pointRange.location) > remain+1){ //当输入框内已经含有“.”,当字符串长度减去小数点前面的字符串长度大于需要要保留的小数点位数,则视当次输入无效。
            return NO;
        }
    }
156 157
    NSRange ZERORange = [textField.text rangeOfString:@"0"];
    if(ZERORange.length == 1 && ZERORange.location == 0){ //判断输入框第一个字符是否为“0”
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
        if(![string isEqualToString:@"0"] && ![string isEqualToString:@"."] && [textField.text length] == 1){ //当输入框只有一个字符并且字符为“0”时,再输入不为“0”或者“.”的字符时,则将此输入替换输入框的这唯一字符。
            textField.text = string;
            return NO;
        }else{
            if(pointRange.length == 0 && pointRange.location > 0){ //当输入框第一个字符为“0”时,并且没有“.”字符时,如果当此输入的字符为“0”,则视当此输入无效。
                if([string isEqualToString:@"0"]){
                    return NO;
                }
            }
        }
    }
    NSString *buffer;
    if ( ![scanner scanCharactersFromSet:numbers intoString:&buffer] && ([string length] != 0) ){
        return NO;
    }else{
        return YES;
    }
勾芒's avatar
勾芒 committed
175 176 177
}


曹云霄's avatar
曹云霄 committed
178
@end