NewReceiveProductViewController.m 13.1 KB
Newer Older
陈俊俊's avatar
陈俊俊 committed
1 2 3 4 5 6 7 8 9 10 11 12 13
//
//  NewReceiveProductViewController.m
//  XFFruit
//
//  Created by 陈俊俊 on 15/10/15.
//  Copyright (c) 2015年 Xummer. All rights reserved.
//

#import "NewReceiveProductViewController.h"
#import "SurveyCell.h"
#import "HPGrowingTextView.h"
#import "ChooseProductViewController.h"
#import "ChooseProductUnitViewController.h"
陈俊俊's avatar
陈俊俊 committed
14
#import "GeometryView.h"
陈俊俊's avatar
陈俊俊 committed
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
#define LeftMargin 15
#define BtnHeight 44
#define TableRowHeight 46
#define CornerRadius 5
#define BtnSize 19
#define TotalHeight 230
#define KeyboardHeight 258

@interface NewReceiveProductViewController ()<UITableViewDataSource,UITableViewDelegate,HPGrowingTextViewDelegate,UITextFieldDelegate,UIAlertViewDelegate>
{
    UITableView *_tableView;
    NSMutableArray *_dataArr;
    
    UILabel *_chooseProductLabel;
    UILabel *_choosePackUnitLabel;
    UILabel *_choosePackStandLabel;
    UILabel *_choosePackCountLabel;
    UILabel *_chooseBaseCountLabel;
    UILabel *_choosePackPriceLabel;
    UILabel *_chooseBasePriceLabel;
陈俊俊's avatar
陈俊俊 committed
35
    UILabel *_chooseTotalLabel;
陈俊俊's avatar
陈俊俊 committed
36
    UILabel *_chooseTotalPriceLabel;
陈俊俊's avatar
陈俊俊 committed
37
    
陈俊俊's avatar
陈俊俊 committed
38 39 40 41 42 43 44

    UITextField *_shPackField;
    UITextField *_shBaseQuantityField;
    UILabel *_shjcLabel;
    UILabel *_shbzLabel;
    
    HPGrowingTextView *_noteTextView;
陈俊俊's avatar
陈俊俊 committed
45
    GeometryView *_geometryView;
陈俊俊's avatar
陈俊俊 committed
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
}
@property (nonatomic,strong)NSString *productNameStr;
@property (nonatomic,strong)NSString *productCodeStr;
@property (nonatomic,strong)NSString *productUuidStr;
@property (nonatomic,strong)NSString *productQpcStr;//商品规格描述
@property (nonatomic,strong)NSMutableArray *selectProducts;
@property (nonatomic,strong)NSString *selectUnit;

@end

@implementation NewReceiveProductViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.title = self.navTitle;
    [self initData];
    [self createTableView];
    
}
- (void)initData{
    
    _dataArr = [NSMutableArray array];
    self.selectProducts = [NSMutableArray array];
    [_dataArr addObject:@"商品"];
    [_dataArr addObject:@"包装单位"];
    [_dataArr addObject:@"包装规格"];
    [_dataArr addObject:@"包装单价"];
    [_dataArr addObject:@"基础单价"];
陈俊俊's avatar
陈俊俊 committed
74 75 76
    [_dataArr addObject:@"包装数量[实收]"];
    [_dataArr addObject:@"基础数量[实收]"];
    [_dataArr addObject:@"总金额[实收]"];
陈俊俊's avatar
陈俊俊 committed
77 78 79 80 81 82 83 84 85 86 87
    [_dataArr addObject:@"备注"];
}

- (void)createTableView
{
    self.view.backgroundColor  = XXFBgColor;

    _tableView = [[UITableView alloc]initWithFrame:(CGRectMake(0, LeftMargin,ScreenSize.width, ScreenSize.height - 64 - LeftMargin)) style:(UITableViewStylePlain)];
    _tableView.delegate = self;
    _tableView.dataSource = self;
    
陈俊俊's avatar
陈俊俊 committed
88 89 90 91 92 93
    UIView *footView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, ScreenSize.width, 60+TableRowHeight* 3)];
    
    UILabel *lineLabel = [[UILabel alloc]initWithFrame:(CGRectMake(LeftMargin, 0, ScreenSize.width - LeftMargin * 2, 1))];
    lineLabel.backgroundColor = GXF_LINE_COLOR;
    lineLabel.font = GXF_FIFTEENTEN_SIZE;
    [footView addSubview:lineLabel];
陈俊俊's avatar
陈俊俊 committed
94
    
陈俊俊's avatar
陈俊俊 committed
95 96 97 98 99
    _geometryView = [GeometryView new];
    _geometryView.frame = CGRectMake(LeftMargin/2, 5, ScreenSize.width - LeftMargin, TableRowHeight* 3);
    [footView addSubview:_geometryView];
    [self createBottomField];
    UIButton *commitBtn = [IBTCustomButtom creatButtonWithFrame:CGRectMake(LeftMargin, _geometryView.bottom + 5, (ScreenSize.width - LeftMargin*2), BtnHeight) target:self sel:@selector(btnClick:) tag:0 image:nil title:@"保存" titleColor: [UIColor whiteColor] isCorner:YES corner:CornerRadius bgColor:GXF_COMMIT_COLOR];
陈俊俊's avatar
陈俊俊 committed
100 101 102 103 104 105
    [footView addSubview:commitBtn];
    
    _tableView.tableFooterView = footView;
    [self.view addSubview:_tableView];
}

陈俊俊's avatar
陈俊俊 committed
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
- (void)createBottomField{
    NSArray *arr = @[@"包装数量[待收]:",@"基础数量[待收]:",@"总金额[待收]:"];
    for (NSInteger i =0; i < arr.count; i++) {
        UILabel *label =[[UILabel alloc]initWithFrame:(CGRectMake(LeftMargin/2, i*TableRowHeight, 110, TableRowHeight))];
        label.textAlignment= NSTextAlignmentLeft;
        label.textColor = GXF_LEFTSIX_COLOR;
        label.font = GXF_FIFTEENTEN_SIZE;
        label.text = arr[i];
        [_geometryView addSubview:label];
        
        
        UILabel *contentLabel = [[UILabel alloc]initWithFrame:CGRectMake(label.right, i*TableRowHeight,  _geometryView.width - label.width -LeftMargin, TableRowHeight)];
        contentLabel.textAlignment= NSTextAlignmentRight;
        contentLabel.textColor = GXF_CONTENT_COLOR;
        contentLabel.font = GXF_FIFTEENTEN_SIZE;
        [_geometryView addSubview:contentLabel];
        if (i == 0) {
            _choosePackCountLabel = contentLabel;
        }else if(i == 1){
            _chooseBaseCountLabel = contentLabel;
        }else if(i == 2){
            _chooseTotalLabel = contentLabel;
        }
    }
}


陈俊俊's avatar
陈俊俊 committed
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
#pragma mark - 按钮点击事件
- (void)btnClick:(UIButton *)btn{
    if ([self checkCost]) {
        self.editReceiveProduct(self.noticeProduct,self.indexTag);
        [self PopViewControllerAnimated:YES];
    }
}
- (BOOL)checkCost{
    
    if (_shPackField.text.length == 0) {
        ShowMessage(@"包装数量(收货)不能为空");
        return NO;
    }
    if (_shBaseQuantityField.text.length == 0) {
        ShowMessage(@"基础数量(收货)不能为空");
        return NO;
    }
    if (!self.noticeProduct) {
        self.noticeProduct = [[TransferPdtDetail alloc]init];
    }
    
    self.noticeProduct.rctQty =[NSNumber numberWithFloat:[_shPackField.text floatValue]];
    self.noticeProduct.rctBaseQty = [NSNumber numberWithFloat:[_shBaseQuantityField.text floatValue]];;
    self.noticeProduct.rctTotal = [NSNumber numberWithFloat:[_chooseTotalPriceLabel.text floatValue]];
    self.noticeProduct.note = _noteTextView.text;
    return YES;
}

#pragma mark - 协议方法
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return _dataArr.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *cellID = @"cellID";
    SurveyCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
    if (cell == nil) {
        cell = [[SurveyCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
        tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
陈俊俊's avatar
陈俊俊 committed
175
        cell.titleLabel.width = 110;
陈俊俊's avatar
陈俊俊 committed
176 177 178 179 180 181 182 183
        [self createViewInCell:cell indexPath:indexPath];
    }
    [cell setTitleStr:_dataArr[indexPath.row]];
    return cell;
}

-  (void)createViewInCell:(SurveyCell *)cell indexPath:(NSIndexPath *)indexPath{
    if (indexPath.row == _dataArr.count -1){
陈俊俊's avatar
陈俊俊 committed
184
        _noteTextView = [[HPGrowingTextView alloc] initWithFrame:CGRectMake(cell.titleLabel.right, 0, ScreenSize.width - cell.titleLabel.width - LeftMargin*2-15, TableRowHeight)];
陈俊俊's avatar
陈俊俊 committed
185 186 187 188 189 190 191 192 193 194 195 196 197 198
        _noteTextView.contentInset = UIEdgeInsetsMake(5, 5, 5, 0);
        _noteTextView.minNumberOfLines = 1;
        _noteTextView.maxNumberOfLines = 2;
        _noteTextView.isScrollable = YES;
        _noteTextView.font = GXF_FIFTEENTEN_SIZE;
        _noteTextView.textAlignment = NSTextAlignmentRight;
        _noteTextView.delegate = self;
        _noteTextView.returnKeyType = UIReturnKeyDone;
        _noteTextView.placeholder = @"输入备注内容";
        [cell.contentView addSubview:_noteTextView];
        
        CGRect lineFrame =  cell.lineLabel.frame;
        lineFrame.origin.y = TableRowHeight*2-1;
        cell.lineLabel.frame = lineFrame;
陈俊俊's avatar
陈俊俊 committed
199
    }else if(indexPath.row == 5 || indexPath.row == 6){
陈俊俊's avatar
陈俊俊 committed
200
        UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(cell.titleLabel.right, 0, ScreenSize.width - cell.titleLabel.width - LeftMargin*2-30, TableRowHeight)];
陈俊俊's avatar
陈俊俊 committed
201 202 203 204 205 206
        textField.textAlignment = NSTextAlignmentRight;
        textField.textColor = GXF_CONTENT_COLOR;
        textField.font = GXF_FIFTEENTEN_SIZE;
        textField.returnKeyType = UIReturnKeyDone;
        textField.keyboardType = UIKeyboardTypeDecimalPad;
        textField.delegate = self;
陈俊俊's avatar
陈俊俊 committed
207
        [textField addTarget:self action:@selector(textChange:) forControlEvents:UIControlEventAllEditingEvents];
陈俊俊's avatar
陈俊俊 committed
208 209 210 211 212 213
        [cell.contentView addSubview:textField];

        UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(CGRectGetMaxX(textField.frame)+ 5, 0, 20, TableRowHeight)];
        label.textColor = GXF_CONTENT_COLOR;
        label.font = GXF_FIFTEENTEN_SIZE;
        [cell.contentView addSubview:label];
陈俊俊's avatar
陈俊俊 committed
214
        if (indexPath.row == 5) {
陈俊俊's avatar
陈俊俊 committed
215
            _shbzLabel = label;
陈俊俊's avatar
陈俊俊 committed
216
            textField.placeholder = @"输入包装数量(实收)";
陈俊俊's avatar
陈俊俊 committed
217 218 219
            _shPackField = textField;
        }else if(indexPath.row == 6){
            _shjcLabel = label;
陈俊俊's avatar
陈俊俊 committed
220
            textField.placeholder = @"输入基础数量(实收)";
陈俊俊's avatar
陈俊俊 committed
221 222 223
            _shBaseQuantityField = textField;
        }
    }else{
陈俊俊's avatar
陈俊俊 committed
224
        UILabel *contentLabel = [[UILabel alloc]initWithFrame:(CGRectMake(cell.titleLabel.right, 0, ScreenSize.width - cell.titleLabel.width - LeftMargin*2-15, TableRowHeight))];
陈俊俊's avatar
陈俊俊 committed
225 226 227 228 229 230 231 232 233 234 235 236 237
        contentLabel.textAlignment= NSTextAlignmentRight;
        contentLabel.textColor = GXF_CONTENT_COLOR;
        contentLabel.font = GXF_FIFTEENTEN_SIZE;
        [cell.contentView addSubview:contentLabel];
        
        if (indexPath.row == 0) {
            _chooseProductLabel = contentLabel;
        }else if(indexPath.row == 1) {
            _choosePackUnitLabel = contentLabel;
        }else if(indexPath.row == 2) {
            _choosePackStandLabel = contentLabel;
        }else if(indexPath.row == 3) {
            _choosePackPriceLabel = contentLabel;
陈俊俊's avatar
陈俊俊 committed
238
        }else if(indexPath.row == 4) {
陈俊俊's avatar
陈俊俊 committed
239
            _chooseBasePriceLabel = contentLabel;
陈俊俊's avatar
陈俊俊 committed
240 241
        }else if(indexPath.row == 7) {
             _chooseTotalPriceLabel= contentLabel;
陈俊俊's avatar
陈俊俊 committed
242
            _chooseTotalPriceLabel.textColor = [UIColor redColor];
陈俊俊's avatar
陈俊俊 committed
243 244 245 246
        }else if(indexPath.row == 8) {
            _choosePackCountLabel = contentLabel;
        }else if(indexPath.row == 9) {
            _chooseBaseCountLabel= contentLabel;
陈俊俊's avatar
陈俊俊 committed
247 248 249 250 251 252 253 254 255 256 257 258 259 260
        }
    }
    if (self.noticeProduct) {
        [self prepareDataIncell];
    }
}
- (void)prepareDataIncell{
    _chooseProductLabel.text = [NSString stringWithFormat:@"%@[%@]",self.noticeProduct.productName,self.noticeProduct.productCode];
    
    _choosePackUnitLabel.text = self.noticeProduct.unit;
    
    _choosePackStandLabel.text = [NSString stringWithFormat:@"1*%@ %@",self.noticeProduct.qpc,self.noticeProduct.baseUnit];
    _choosePackCountLabel.text = [NSString stringWithFormat:@"%@ %@",self.noticeProduct.qty,self.noticeProduct.unit];
    _chooseBaseCountLabel.text = [NSString stringWithFormat:@"%@ %@",self.noticeProduct.baseQty,self.noticeProduct.baseUnit];
陈俊俊's avatar
陈俊俊 committed
261
    _chooseTotalLabel.text = [NSString stringWithFormat:@"%@元",self.noticeProduct.total];
陈俊俊's avatar
陈俊俊 committed
262 263 264 265 266 267 268 269 270 271 272 273 274 275 276
    _choosePackPriceLabel.text = [NSString stringWithFormat:@"%@ 元",self.noticeProduct.packprice];
     _chooseBasePriceLabel.text = [NSString stringWithFormat:@"%@ 元",self.noticeProduct.price];
    
    _shbzLabel.text = self.noticeProduct.unit;
    _shjcLabel.text = self.noticeProduct.baseUnit;
    if (self.noticeProduct.rctBaseQty) {
        _shBaseQuantityField.text =[NSString stringWithFormat:@"%@",self.noticeProduct.rctBaseQty];
    }
    if (self.noticeProduct.rctQty) {
        _shPackField.text =[NSString stringWithFormat:@"%@",self.noticeProduct.rctQty];
    }
    if (self.noticeProduct.rctTotal) {
        _chooseTotalPriceLabel.text = [NSString stringWithFormat:@"%@ 元",self.noticeProduct.rctTotal];

    }else {
陈俊俊's avatar
陈俊俊 committed
277
        _chooseTotalPriceLabel.text = @"0.00元";
陈俊俊's avatar
陈俊俊 committed
278 279 280 281 282 283 284 285 286 287 288
    }
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
//    if (indexPath.row == _dataArr.count - 1) {
//        return TableRowHeight *2;
//    }
    return TableRowHeight;
}


- (void)textChange:(UITextField *)textField{
陈俊俊's avatar
陈俊俊 committed
289 290 291 292 293 294 295 296
    if (textField == _shPackField) {
        if (_shPackField.text.length > 0) {
            float total = [_shPackField.text floatValue] * [self.noticeProduct.packprice floatValue];
            float baseCount = 0;
            if ([self.noticeProduct.price floatValue] > 0) {
                baseCount = total / [self.noticeProduct.price floatValue];
                
            }
陈俊俊's avatar
陈俊俊 committed
297
            _chooseTotalPriceLabel.text = [NSString stringWithFormat:@"%.4f元",total];
陈俊俊's avatar
陈俊俊 committed
298 299 300 301 302 303 304 305 306 307
            _shBaseQuantityField.text = [NSString stringWithFormat:@"%.0f",baseCount];
        }
    }else if (textField == _shBaseQuantityField) {
        if (_shBaseQuantityField.text.length > 0) {
            float total = [_shBaseQuantityField.text floatValue] * [self.noticeProduct.price floatValue];
            float baseCount = 0;
            if ([self.noticeProduct.packprice floatValue] > 0) {
                baseCount = total / [self.noticeProduct.packprice floatValue];
                
            }
陈俊俊's avatar
陈俊俊 committed
308
            _chooseTotalPriceLabel.text = [NSString stringWithFormat:@"%.4f元",total];
陈俊俊's avatar
陈俊俊 committed
309
            _shPackField.text = [NSString stringWithFormat:@"%.0f",baseCount];
陈俊俊's avatar
陈俊俊 committed
310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328
        }
    }
}


#pragma mark delegate
- (BOOL)growingTextViewShouldReturn:(HPGrowingTextView *)growingTextView{
    [_noteTextView resignFirstResponder];
    return YES;
}

- (void)keyboardHidden{
    [_shPackField resignFirstResponder];
    [_shBaseQuantityField resignFirstResponder];
    [_noteTextView resignFirstResponder];
}


@end