| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430 |
- //
- // NewDeliveryListCellTableViewCell.m
- // IBOSS
- //
- // Created by guan hong hou on 2017/7/10.
- // Copyright © 2017年 沈阳东科云信软件有限公司. All rights reserved.
- //
- // 功能描述:新增配送列表明细单元格
- #import "NewDeliveryListTableViewCell.h"
- #import "OrderQuantity.h"
- #define kTextFont [UIFont systemFontOfSize:LabelAndTextFontOfSize]
- @implementation NewDeliveryListTableViewCell
- #pragma mark - 公共函数
- /**
- 初始化单元格
- @param style <#style description#>
- @param reuseIdentifier <#reuseIdentifier description#>
- @return <#return value description#>
- */
- - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
- self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
- if (self) {
-
-
- }
- return self;
- }
- /**
- 单元格选中事件
- @param selected <#selected description#>
- @param animated <#animated description#>
- */
- - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
- [super setSelected:selected animated:animated];
- }
- #pragma mark - 委托函数
- /**
- 限制用户输入小数点后位数的方法
- @param textField <#textField description#>
- @param range <#range description#>
- @param string <#string description#>
- @return <#return value description#>
- */
- - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
- if([textField isEqual:self.remark]){
- return YES;
- }
-
- if ([textField.text rangeOfString:@"."].location == NSNotFound) {
- _isHaveDian = NO;
- }
- if ([string length] > 0) {
-
- unichar single = [string characterAtIndex:0];//当前输入的字符
- if ((single >= '0' && single <= '9') || single == '.') {//数据格式正确
-
- //首字母不能为0和小数点
- if([textField.text length] == 0){
- if(single == '.') {
- [self showAlertViewText:@"第一个数字不能为小数点"];
- [textField.text stringByReplacingCharactersInRange:range withString:@""];
- return NO;
- }
-
- }
- if([textField.text length] == 1 && [[textField.text substringToIndex:1] isEqualToString: @"0"]){
- if(!(single == '.')) {
- [textField.text stringByReplacingCharactersInRange:range withString:@""];
- return NO;
- }
-
- }
-
- //输入的字符是否是小数点
- if (single == '.') {
- if(!_isHaveDian)//text中还没有小数点
- {
- _isHaveDian = YES;
- return YES;
-
- }else{
- [self showAlertViewText:@"您已经输入过小数点了"];
- [textField.text stringByReplacingCharactersInRange:range withString:@""];
- return NO;
- }
- }else{
- if (_isHaveDian) {//存在小数点
-
- //判断小数点的位数
- NSRange ran = [textField.text rangeOfString:@"."];
- if (range.location - ran.location <= 6) {
- return YES;
- }
- else{
- return NO;
- }
- }else{
- return YES;
- }
- }
- }else{//输入的数据格式不正确
- [self showAlertViewText:@"您输入的格式不正确"];
- [textField.text stringByReplacingCharactersInRange:range withString:@""];
- return NO;
- }
- }
- else
- {
- return YES;
- }
-
- }
- /**
- 文本字段开始编辑回调
- @param textField <#textField description#>
- */
- - (void)textFieldDidBeginEditing:(UITextField *)textField{
- NSLog(@"textFieldDidBeginEditing");
- if([textField isEqual:self.remark]||[textField isEqual:self.receiptQuantity] ){
- if([self.nddelegate respondsToSelector:@selector(keyboardWillShow:)])
- {
- [self.nddelegate keyboardWillShow:self];
- }
- }
- }
- /**
- 文本字段结束编辑回调
- @param textField <#textField description#>
- */
- - (void)textFieldDidEndEditing:(UITextField *)textField{
-
- if([textField isEqual:self.remark]){
- if([self.nddelegate respondsToSelector:@selector(keyboardWillHide:)])
- {
- [self.nddelegate keyboardWillHide:self];
- }
-
- }else if([textField isEqual:self.receiptQuantity]){
- OrderQuantity *quantity = [OrderQuantity new];
- NSInteger decimalPlaces= self.model.decimalPlaces;
- NSString *receiptQuantity = [quantity calculateReceiptQuantity:[self.model.circulateType integerValue] decimalPlaces:[NSString stringWithFormat:@"%ld",(long)decimalPlaces] quantity:self.receiptQuantity.text acreage:[self.model.acreage doubleValue]];
- self.receiptQuantity.text = receiptQuantity;
- self.model.receiptQuantity = receiptQuantity;
- [self.nddelegate keyboardWillHide:self];
- }
- if([self.nddelegate respondsToSelector:@selector(endEdit:)])
- {
- [self.nddelegate endEdit:self];
- }
- return ;
-
- }
- #pragma mark - 私有函数
- /**
- 设置回执类型
- @param receiptType <#receiptType description#>
- */
- - (void)setReceiptType:(NSString *)receiptType{
- _receiptType=receiptType;
- }
- /**
- 设置配送回执单元格UI和数据
- @param model <#model description#>
- @param receiptType <#receiptType description#>
- */
- - (void)parseInfoModel:(NewDeliveryReceiptModel *)model receiptType:(NSString*)receiptType{
- if(model != nil){
- UILabel *lblTitleOnlyCode = [UILabel new];
- lblTitleOnlyCode.frame=CGRectMake(20, 8, 80,21);
- lblTitleOnlyCode.text = @"唯一编码:";
- lblTitleOnlyCode.font=kTextFont;
- [self addSubview:lblTitleOnlyCode];
- self.lblOnlyCode = [UILabel new];
- self.lblOnlyCode.font=kTextFont;
- self.lblOnlyCode.frame=CGRectMake(95, 8,200,21);
- [self.contentView addSubview:self.lblOnlyCode];
-
- UILabel *lblTitleCode = [UILabel new];
- lblTitleCode.frame=CGRectMake(20,CGRectGetMaxY(lblTitleOnlyCode.frame)+10, 80,21);
- lblTitleCode.text = @"商品编码:";
- lblTitleCode.font=kTextFont;
- [self.contentView addSubview:lblTitleCode];
-
- self.code=[UILabel new];
- self.code.font=kTextFont;
- self.code.frame=CGRectMake(95,CGRectGetMaxY(lblTitleOnlyCode.frame)+10,200,21);
- [self.contentView addSubview: self.code];
-
- UILabel *lblDeliveryQuantity = [UILabel new];
- lblDeliveryQuantity.frame=CGRectMake(20, CGRectGetMaxY(lblTitleCode.frame)+10,80, 21);
- lblDeliveryQuantity.font=kTextFont;
- lblDeliveryQuantity.text = @"送货数量:";
- [self addSubview:lblDeliveryQuantity];
- self.deliveryQuantity = [UILabel new];
- self.deliveryQuantity.font=kTextFont;
- self.deliveryQuantity.frame=CGRectMake(95, CGRectGetMaxY(lblTitleCode.frame)+10, 200, 21);
- [self.contentView addSubview:self.deliveryQuantity];
- UILabel *lblOutQuantity = [UILabel new];
- lblOutQuantity.text = @"出库数量:";
- lblOutQuantity.font=kTextFont;
- lblOutQuantity.frame=CGRectMake(Screen_Width/2, CGRectGetMaxY(lblTitleCode.frame)+10, 75, 21);
- [self.contentView addSubview:lblOutQuantity];
- self.outQuantity = [UILabel new];
- self.outQuantity.font=kTextFont;
- self.outQuantity.frame=CGRectMake(CGRectGetMaxX(lblOutQuantity.frame), CGRectGetMaxY(lblTitleCode.frame)+10, 200, 21);
- [self.contentView addSubview:self.outQuantity];
- UILabel *lblReceiptType = [UILabel new];
- lblReceiptType.frame=CGRectMake(20,CGRectGetMaxY(lblDeliveryQuantity.frame)+10, 80,21);
- lblReceiptType.text = @"回执类型:";
- lblReceiptType.font=kTextFont;
- [self.contentView addSubview:lblReceiptType];
- self.btstate = [UIButton buttonWithType:UIButtonTypeCustom];
- self.btstate.frame=CGRectMake(95,CGRectGetMaxY(lblDeliveryQuantity.frame)+10,80, 21);
- self.btstate.titleLabel.font=kTextFont;
- self.btstate.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
- [self.btstate setTitle:@"完成" forState:UIControlStateNormal];
- [self.btstate setTitleColor:[UIColor blackColor]forState:UIControlStateNormal];
- [self.contentView addSubview:self.btstate];
-
-
- UILabel *lblReceiptQuantity = [UILabel new];
- lblReceiptQuantity.frame=CGRectMake(20,CGRectGetMaxY(lblReceiptType.frame)+10,80,21);
- lblReceiptQuantity.text = @"回执数量:";
- lblReceiptQuantity.font=kTextFont;
- [self.contentView addSubview:lblReceiptQuantity];
-
- self.receiptQuantity = [[UITextField alloc]initWithFrame:CGRectMake(95,CGRectGetMaxY(lblReceiptType.frame)+10,200,21)];
- self.receiptQuantity.font=kTextFont;
- [self.contentView addSubview:self.receiptQuantity];
-
- UILabel *lblRemarks = [UILabel new];
- lblRemarks.frame=CGRectMake(20,CGRectGetMaxY(lblReceiptQuantity.frame)+10,80,21);
- lblRemarks.text = @"回执备注:";
- lblRemarks.font=kTextFont;
- [self.contentView addSubview:lblRemarks];
- self.remark = [[UITextField alloc]initWithFrame:CGRectMake(95,CGRectGetMaxY(lblReceiptQuantity.frame)+10,200,21)];
- self.remark.font=kTextFont;
- [self.contentView addSubview:self.remark];
- UIView *separatorView = [UIView new];
- separatorView.frame=CGRectMake(0,CGRectGetMaxY(lblRemarks.frame)+10, Screen_Width, 3);
- separatorView.backgroundColor=LineBackgroundColor;
- [self.contentView addSubview:separatorView];
- if([receiptType intValue] == 1){
- [self.btstate setEnabled:YES];
- }
- else if([receiptType intValue] == 2){
- [self.btstate setEnabled:NO];
- }
- self.sCode=model.code;
- self.sDeliveryQuantity=model.deliveryQuantity;
- self.sReceiptType=model.receiptType;
-
- self.sReceiptRemarks=model.receiptRemarks;
- self.sOutQuantity=model.outQuantity;
- self.sDetailID=model.detailId;
- self.sInvoiceID=model.invoiceId;
- self.sInvoiceDetailID=model.invoiceDetailId;
- self.code.text=_sCode;
- self.deliveryQuantity.text=_sDeliveryQuantity;
- self.lblOnlyCode.text=model.onlyCode;
- self.outQuantity.text=_sOutQuantity;
- self.remark.text=_sReceiptRemarks;
- self.remark.placeholder = @"请输入回执备注";
- self.remark.delegate=self;
- self.remark.tag=1001;
- self.receiptQuantity.delegate=self;
- self.receiptQuantity.placeholder = @"请输入回执数量";
- self.receiptQuantity.keyboardType=UIKeyboardTypeDecimalPad;
- self.receiptQuantity.tag=1000;
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onFocusPeopleEditingChanged:) name:@"UITextFieldTextDidChangeNotification" object: self.receiptQuantity];
-
- [self.receiptQuantity addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
- [self.remark addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
- [self.btstate addTarget:self action:@selector(btnCilck) forControlEvents:UIControlEventTouchUpInside];
-
- _model=model;
- switch ([_sReceiptType intValue]) {
- case 1:
- [self.btstate setTitle:@"完成" forState:UIControlStateNormal];
- [self.receiptQuantity setEnabled:NO];
- if([model.circulateType intValue] == 1){
- self.receiptQuantity.text=[NSString stringWithFormat:@"%.0f",model.maxReceiptQuantity];
- model.receiptQuantity = [NSString stringWithFormat:@"%.0f",model.maxReceiptQuantity];
- }else{
- self.receiptQuantity.text=[NSString stringWithFormat:@"%.6f",model.maxReceiptQuantity];
- model.receiptQuantity = [NSString stringWithFormat:@"%.6f",model.maxReceiptQuantity];
- }
- if([receiptType intValue] == 2){
- self.receiptQuantity.text=@"0";
- model.receiptQuantity = @"0";
- }
- break;
- case 2:
- [self.btstate setTitle:@"再送" forState:UIControlStateNormal];
- [self.receiptQuantity setEnabled:YES];
- self.receiptQuantity.text = model.receiptQuantity;
- break;
- case 3:
- [self.btstate setTitle:@"换货" forState:UIControlStateNormal];
- [self.receiptQuantity setEnabled:NO];
- self.receiptQuantity.text = @"0";
- _model.receiptQuantity = @"0";
-
- break;
- case 4:
- [self.btstate setTitle:@"退货" forState:UIControlStateNormal];
- [self.receiptQuantity setEnabled:NO];
- self.receiptQuantity.text = @"0";
- _model.receiptQuantity = @"0";
- break;
- default:
- break;
-
- }
-
- }
- }
- - (void)setback:(int)mytage:(NSString *)mystateid{
-
- [self.btstate setTitle:@"退货" forState:UIControlStateNormal];
- self.outQuantity.text = @"5";
- _model.outQuantity = @"5";
-
-
- }
- /**
- 文本框长度限制
- @param sender <#sender description#>
- */
- - (void)onFocusPeopleEditingChanged:(NSNotification *)sender
- {
-
- UITextField *textField = (UITextField *)sender.object;
- NSString *toBeString = textField.text;
-
- NSString *lang = [[UIApplication sharedApplication]textInputMode].primaryLanguage;
- int kMaxLength=0;
- if([textField isEqual:self.remark]){
- return;
- }
-
- if([textField isEqual:self.receiptQuantity]){
- kMaxLength=17;
-
- if (toBeString != nil && toBeString.length>0 && [toBeString floatValue]-MAXIMUM_QUANTITY>0.0000000001f) {
- textField.text = MAX_COUNT ;
- toBeString = MAX_COUNT;
- }
-
- }
- if ([lang isEqualToString:@"zh-Hans"]) {
- UITextRange *selectedRange = [textField markedTextRange];
- UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
-
- if (!position) {
- if (toBeString.length > kMaxLength) {
- textField.text = [toBeString substringToIndex:kMaxLength];
- }
- }
- }else{
- if (toBeString.length > kMaxLength) {
- textField.text = [toBeString substringToIndex:kMaxLength];
- }
- }
- }
- /**
- 出示警告对话框
- @param text <#text description#>
- */
- - (void)showAlertViewText:(NSString *)text
- {
- UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@"提示"
- message:text
- delegate:nil
- cancelButtonTitle:@"确定"
- otherButtonTitles:nil];
- [alert show];
-
-
- }
- /**
- 回执类型点击事件
- */
- - (void)btnCilck{
- if ([self.delegate respondsToSelector:@selector(setReceiptType:)]) {
- [self.delegate setReceiptType:_myIndexPath];
- }
- }
- /**
- 文本字段变化事件
- @param sender <#sender description#>
- */
- - (void)textFieldDidChange:(UITextField*) sender{
- UITextField* txt=sender;
-
- if([self.nddelegate respondsToSelector:@selector(textValueChange:txtField:qualityField:remarkField:)])
- {
- [self.nddelegate textValueChange:self txtField:txt qualityField:nil remarkField:nil];
-
- }
- }
- @end
|