// // WorkFlowModel.m // IBOSS // // Created by iHope on 14-7-9. // Copyright (c) 2014年 elongtian. All rights reserved. // #import "ShopCartModel.h" #import "ShopCartItemModel.h" #import "OrderQuantity.h" #import "CartFrame.h" #import "SubmitOrderFrame.h" //#import "GoodsSearchItemModel.h" #import "SBJsonWriter.h" @interface ShopCartModel() { MBProgressHUD *HUD; UIView *view; } @property(strong) NSMutableArray *orignalArr; @property(nonatomic) ASIDownManager *mDownManager; @end @implementation ShopCartModel #pragma mark - 公共函数 /** 初始化 @return <#return value description#> */ -(id)init { self =[super init]; if(self){ _workflowArr=[NSMutableArray new]; _orderDetailArr=[NSMutableArray new]; _orignalArr=[NSMutableArray new]; isCheckAll=YES; } return self; } #pragma mark - 私有函数 /** 解析购物车明细数组 @param arr <#arr description#> */ -(void)parseWorkFlowArr:(NSArray *)arr { if(arr!=nil) { [_workflowArr removeAllObjects]; for(int i=0;i */ -(void)parseOrderDetailArr:(NSArray *)arr { if(arr!=nil) { [_orderDetailArr removeAllObjects]; for(int i=0;i */ -(double)calculatePrice { double totalAmount=0.0f; for(int i=0;i<_workflowArr.count;i++) { CartFrame *frame=_workflowArr[i]; if(frame.cartModel!=nil&&frame.cartModel.isChecked) { double num=[frame.cartModel.salesQuantity doubleValue]; double price=[frame.cartModel.salesPrice doubleValue]; totalAmount+=(num*price); } } return totalAmount; } //获得选中的集合 -(NSArray *)checkedArr { NSMutableArray *tempArr=[NSMutableArray new]; for(int i=0;i<_workflowArr.count;i++) { CartFrame *frame= [_workflowArr objectAtIndex:i] ; if(frame.cartModel.isChecked){ SubmitOrderFrame *submitFrame=[SubmitOrderFrame new]; [submitFrame setSubmitOrderModel:frame.cartModel]; [tempArr addObject:submitFrame]; } } return tempArr; } //获得选中的商品的JSON数据,用于获取商品售价 -(NSString *)checkedSalePriceJSON { NSArray *arr= [self checkedArr]; NSMutableArray *finalArr=[NSMutableArray new]; for(SubmitOrderFrame *frame in arr){ NSString *codeID= frame.cartModel.codeId; NSString *gradeID=frame.cartModel.gradeId; if(codeID&&gradeID){ [finalArr addObject:@{@"CodeID": codeID,@"GradeID":gradeID}]; } } SBJsonWriter *write = [[SBJsonWriter alloc] init]; NSString *value = [write stringWithObject:finalArr]; return value; } //获得选中的原始数据的集合 -(NSArray *)checkedOriginalArr { NSArray *tempArr=[self checkedArr]; NSMutableArray *finalArr=[NSMutableArray new]; for(SubmitOrderFrame *frame in tempArr) { for(NSDictionary * dic in _orignalArr) { NSString *cartId=[NSString stringWithFormat:@"%@",[dic objectForKey:@"CartID"]]; if([cartId intValue]==[frame.cartModel.cartId intValue]) { [finalArr addObject:dic]; } } } return finalArr; } //更新商品售价 -(void) updateGoodsSalePrice:(NSArray *)priceArr { NSArray *checkArr=[self checkedArr]; for(NSDictionary *dic in priceArr){ NSString * orderprice=[dic objectForKey:@"OrderPrice"]; NSString *codeId=[NSString stringWithFormat:@"%@",[dic objectForKey:@"CodeID"]]; NSString *gradeId=[NSString stringWithFormat:@"%@",[dic objectForKey:@"GradeID"]]; for(SubmitOrderFrame *frame in checkArr){ if([[NSString stringWithFormat:@"%@",frame.cartModel.codeId] isEqualToString:codeId]&&[[NSString stringWithFormat:@"%@",frame.cartModel.gradeId] isEqualToString:gradeId]){ if(orderprice!=nil) { frame.cartModel.salesPrice=[NSString stringWithFormat:@"%lf",[orderprice doubleValue]]; } else{ frame.cartModel.salesPrice=@"0"; } } } } } //更新商品标价 -(void)updateGoodsMarkedPrice :(NSArray *)priceArr; { NSArray *checkArr=[self checkedArr]; for(NSDictionary *dic in priceArr){ // 2017-7-26 关宏厚 start //渠道价格 NSString * channelPrice = [dic objectForKey:@"ChannelPrice"]; //策略价格 NSString * basePrice = [dic objectForKey:@"BasePrice"]; //基础标价 NSString * standardPrice = [dic objectForKey:@"StandardPrice"]; NSString *codeId = [NSString stringWithFormat:@"%@",[dic objectForKey:@"CodeID"]]; NSString *gradeId = [NSString stringWithFormat:@"%@",[dic objectForKey:@"GradeID"]]; for(SubmitOrderFrame *frame in checkArr){ if([[NSString stringWithFormat:@"%@",frame.cartModel.codeId] isEqualToString:codeId]&&[[NSString stringWithFormat:@"%@",frame.cartModel.gradeId] isEqualToString:gradeId]){ //标价取值顺序: 渠道价格->策略价格->基础标价->0 if(channelPrice != nil) { frame.cartModel.markedPrice=[NSString stringWithFormat:@"%lf",[channelPrice doubleValue]]; } else if(basePrice != nil){ frame.cartModel.markedPrice=[NSString stringWithFormat:@"%lf",[basePrice doubleValue]]; } else if(standardPrice != nil){ frame.cartModel.markedPrice=[NSString stringWithFormat:@"%lf",[standardPrice doubleValue]]; } else{ frame.cartModel.markedPrice=@"0"; } // 2017-7-26 关宏厚 end if(frame.cartModel.salesPrice == nil||[frame.cartModel.salesPrice isEqualToString:@"0"]||[frame.cartModel.salesPrice isEqualToString:@"(null)"]){ frame.cartModel.salesPrice = [frame.cartModel.markedPrice copy]; } } } } } //看是否全选 -(BOOL)isCheckedAll { BOOL ischecked=YES; for(CartFrame *wf in _workflowArr) { if( wf.cartModel.isChecked==NO) { ischecked=NO; break; } } return ischecked; } //全选或者全不选 -(BOOL)updateAllCellCheck { if(!isCheckAll){ isCheckAll=YES; for(CartFrame *wf in _workflowArr) { wf.cartModel.isChecked =YES; } } else { isCheckAll=NO; for(CartFrame *wf in _workflowArr) { wf.cartModel.isChecked =NO; } } return NO; } //至少选择一个 -(BOOL)isSelectAtLeastOne { BOOL s=NO; for(CartFrame *wf in _workflowArr) { if(wf.cartModel.isChecked) { s=YES; break; } } return s; } //检查选中的商品 价格和可售量的填写格式是否正确 -(BOOL)checkFormat { BOOL end=YES; NSArray *arr=[self checkedArr]; //1.数量数目不能为0 for(int i=0;i @return <#return value description#> */ -(BOOL)updateCellChecked : (NSString *) checkDocId { ShopCartItemModel *curobj=nil; for(CartFrame *wf in _workflowArr){ if([wf.cartModel.cartId intValue]==[checkDocId intValue] ) { wf.cartModel.isChecked = !wf.cartModel.isChecked; curobj=wf.cartModel; break; } } //更新全部是否选中 BOOL ischeckedll=YES; for(CartFrame *wf in _workflowArr) { if( wf.cartModel.isChecked==NO) { ischeckedll=NO; break; } } isCheckAll=ischeckedll; if(curobj){ return curobj.isChecked; } else{ return NO; } } //更新文本信息,分为销售量和销售价格 -(void)updateCellSaleText:(UITextField*)txtfield checkeId:(NSString *) checkDocId { if(!txtfield)return; for(CartFrame *wf in _workflowArr) { if([wf.cartModel.cartId intValue]==[checkDocId intValue] ) { if(txtfield.tag==1001) //价格 { if(txtfield.text.length>0){ wf.cartModel.salesPrice=txtfield.text; } else{ wf.cartModel.salesPrice=@"0"; txtfield.text=@"0"; } } else if(txtfield.tag==1002) { if(txtfield.text.length>0){ NSString *saleQuantity= txtfield.text; double acreage=wf.cartModel.acreage.doubleValue; OrderQuantity *quantity=[OrderQuantity new]; NSInteger decimalPlaces= wf.cartModel.decimalPlaces; NSString *calculateQuantity= [quantity calculateOrderQuantity:wf.cartModel.circulateType decimalPlaces:[NSString stringWithFormat:@"%ld",(long)decimalPlaces] quantity:saleQuantity acreage:acreage]; if ([calculateQuantity doubleValue] >MAXIMUM_QUANTITY) { calculateQuantity =[NSString stringWithFormat:@"%lf",MAXIMUM_QUANTITY]; wf.cartModel.salesQuantity=calculateQuantity; txtfield.text=calculateQuantity; // [self showAlertViewText:@"已超出最大数量"]; //return; } wf.cartModel.salesQuantity=calculateQuantity; txtfield.text=calculateQuantity; } else{ wf.cartModel.salesQuantity=@"0"; txtfield.text=@"0"; } } else if(txtfield.tag==1003) { wf.cartModel.remarks=txtfield.text; } else if (txtfield.tag==1004){ if(txtfield.text.length>0){ wf.cartModel.markedPrice=txtfield.text; } else{ wf.cartModel.markedPrice=@"0"; txtfield.text=@"0"; } } } } } -(void)showAlertViewText:(NSString *)text { UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@"提示" message:text delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alert show]; } @end