| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391 |
- //
- // 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<arr.count;i++)
- {
- NSDictionary * dic=arr[i];
- ShopCartItemModel *infoMode=[ShopCartItemModel new];
- [infoMode parseDic:dic];
- CartFrame *cartFrame=[CartFrame new];
- [cartFrame setOrderCartModel:infoMode];
- [_workflowArr addObject:cartFrame];
- }
- _orignalArr =[NSMutableArray arrayWithArray:arr];
-
- }
- }
- /**
- 解析订单明细数组
- @param arr <#arr description#>
- */
- -(void)parseOrderDetailArr:(NSArray *)arr
- {
- if(arr!=nil)
- { [_orderDetailArr removeAllObjects];
- for(int i=0;i<arr.count;i++)
- {
- NSDictionary * dic=arr[i];
- ShopCartItemModel *infoMode=[ShopCartItemModel new];
- [infoMode parseDic:dic];
- [_orderDetailArr addObject:infoMode];
- }
- _orignalArr =[NSMutableArray arrayWithArray:arr];
-
- }
- }
- /**
- 计算产品的合计价格
- @return <#return value description#>
- */
- -(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<arr.count;i++)
- {
- SubmitOrderFrame *frame= [arr objectAtIndex:i] ;
- if([frame.cartModel.salesQuantity intValue]<=0)
- {
- end=NO;
- break;
- }
- }
-
- return end;
- }
- /**
- 更新选中的单元格
- @param checkDocId <#checkDocId description#>
- @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
|