| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744 |
- //
- // CartUtils.m
- // iSales-NPD
- //
- // Created by Ray on 12/26/16.
- // Copyright © 2016 United Software Applications, Inc. All rights reserved.
- //
- #import "CartUtils.h"
- #import "RAUtils.h"
- #import "AppDelegate.h"
- #import "RANetwork.h"
- #import "LoginViewController.h"
- #import "MainViewController.h"
- @implementation CartUtils
- +(void) neworder:(UIViewController*) vc selectorholder:(id)holder selector:(SEL)addtocart
- {
- UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Create Order"];
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
- NSDictionary* return_json = [RANetwork new_Order];
- dispatch_async(dispatch_get_main_queue(), ^{
- [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
- if([[return_json valueForKey:@"result"] intValue]==2)
- {
- int result=[[return_json valueForKey:@"result"] intValue];
- if(result==2)
- {
- //successed.
- NSString* order_code = [return_json valueForKey:@"orderCode"];
- AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
- appDelegate.order_code = order_code;
- appDelegate.order_status = [[return_json valueForKey:@"orderStatus"] intValue];
- [holder performSelector:addtocart];
- }
- }
- else
- {
- [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Create Order" controller:vc] ;
- }
- });
- });
- }
- +(void) add_to_cart:(UIViewController*) vc selectorholder:(id)holder selector:(SEL)addtocart
- {
- UIApplication * app = [UIApplication sharedApplication];
- AppDelegate *appDelegate = (AppDelegate *)[app delegate];
- MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
- if(appDelegate.bLogin==false)
- {
- LoginViewController * loginvc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
- loginvc.returnValue = ^(bool blogin){
- if(blogin)
- {
- if(/*appDelegate.user_type==USER_ROLE_EMPLOYEE*/ true)
- {
- [main_vc checklogin:YES];
- NSString* msg =@"";
- // if(appDelegate.contact_id.length>0)
- // {
- // msg = [msg stringByAppendingString:@"Customer:"];
- // msg = [msg stringByAppendingString:appDelegate.customerInfo[@"customer_name"]];
- //
- // }
- UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Add to cart" message:msg preferredStyle:UIAlertControllerStyleAlert];
- //block代码块取代了delegate
- UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Check for saved order" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- // vc.disable_refresh = true;
- OrderListViewController* ovc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"OrderListViewController"];
- ovc.showNavibar = true;
- //ovc.customer_id = appDelegate.contact_id;
- ovc.selectOrder = ^(NSMutableDictionary* order_detail){
- [holder performSelector:addtocart];
- };
- ovc.init_style = OL_OPEN;
- ovc.onCancel = ^(){
- // self.disable_refresh = false;
- };
- [vc.navigationController pushViewController:ovc animated:true];
- }];
- UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"Create new order" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- {
- //create new;
- // self.disable_refresh = true;
- if(appDelegate.customerInfo==nil)// select contact if current contact not exist
- {
- ContactListViewController* cvc = [vc.storyboard instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
- cvc.showNavibar = true;
- cvc.contact_type = @"Sales_Order_Customer";
- cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
- appDelegate.contact_id=[value valueForKey:@"customer_cid"];
- appDelegate.customerInfo = value;
- if(appDelegate.order_code==nil)
- [self neworder:vc selectorholder:holder selector:addtocart];
- // neworder();
- // [main_vc checklogin:true];
- // [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
- //
- // if(self.returnValue)
- // self.returnValue(value);
- };
- cvc.onCancel = ^(){
- [RAUtils message_alert:@"Cannot create order without cursomer infomation." title:@"New Order Error" controller:vc];
- // self.disable_refresh = false;
- };
- cvc.onReset = ^(){
- // [main_vc checklogin:true];
- };
- [vc.navigationController pushViewController:cvc animated:true];
- }
- else
- {
- [self neworder:vc selectorholder:holder selector:addtocart];
- }
- }
- DebugLog(@"No");
- }];
- [alertControl addAction:actionOne];
- [alertControl addAction:alertthree];
- UIAlertAction *alertcancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
- }];
- [alertControl addAction:alertcancel];
- //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
- [vc presentViewController:alertControl animated:YES completion:nil];
- }
- else
- {
- //customer login;
- [main_vc checklogin:false];
- //[self addtocart];
- [holder performSelector:addtocart];
- }
- }
- };
- UINavigationController* navi = [[UINavigationController alloc] initWithRootViewController:loginvc] ;
- // [self hackModalSheetSize:CGSizeMake(450, 200) ofVC:navi];
- navi.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;//有三种状态,自己看看是哪种
- [vc presentViewController:navi animated:YES completion:^{
- // navi.view.superview.bounds = CGRectMake(0, 0, 480, 320);
- DebugLog(@"LoginViewController present.........");
- // self.btop = false;
- // <#code#>
- }];
- }
- else
- {
- if(/*appDelegate.user_type==USER_ROLE_EMPLOYEE&&/*appDelegate.contact_id==nil&&*/appDelegate.order_code==nil)
- {
- if(appDelegate.contact_id.length==0)
- {
- NSString* msg =@"";
- UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Add to cart" message:msg preferredStyle:UIAlertControllerStyleAlert];
- //block代码块取代了delegate
- UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Check for saved order" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- // vc.disable_refresh = true;
- OrderListViewController* ovc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"OrderListViewController"];
- ovc.showNavibar = true;
- //ovc.customer_id = appDelegate.contact_id;
- ovc.selectOrder = ^(NSMutableDictionary* order_detail){
- [holder performSelector:addtocart];
- };
- ovc.init_style = OL_OPEN;
- ovc.onCancel = ^(){
- // self.disable_refresh = false;
- };
- [vc.navigationController pushViewController:ovc animated:true];
- }];
- UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"Create new order" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- {
- //create new;
- // self.disable_refresh = true;
- if(appDelegate.customerInfo==nil)// select contact if current contact not exist
- {
- ContactListViewController* cvc = [vc.storyboard instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
- cvc.showNavibar = true;
- cvc.contact_type = @"Sales_Order_Customer";
- cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
- appDelegate.contact_id=[value valueForKey:@"customer_cid"];
- appDelegate.customerInfo = value;
- if(appDelegate.order_code==nil)
- [self neworder:vc selectorholder:holder selector:addtocart];
- // neworder();
- // [main_vc checklogin:true];
- // [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
- //
- // if(self.returnValue)
- // self.returnValue(value);
- };
- cvc.onCancel = ^(){
- [RAUtils message_alert:@"Cannot create order without cursomer infomation." title:@"New Order Error" controller:vc];
- // self.disable_refresh = false;
- };
- cvc.onReset = ^(){
- // [main_vc checklogin:true];
- };
- [vc.navigationController pushViewController:cvc animated:true];
- }
- else
- {
- [self neworder:vc selectorholder:holder selector:addtocart];
- }
- }
- DebugLog(@"No");
- }];
- [alertControl addAction:actionOne];
- [alertControl addAction:alertthree];
- UIAlertAction *alertcancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
- }];
- [alertControl addAction:alertcancel];
- //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
- [vc presentViewController:alertControl animated:YES completion:nil];
- }
- else
- {
- UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Checking Pending Order"];
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
- NSDictionary* return_json = [RANetwork request_PendingOrder:appDelegate.contact_id];
- dispatch_async(dispatch_get_main_queue(), ^{
- [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
- if([[return_json valueForKey:@"result"] intValue]==2)
- {
- bool openPendingOrder= [[return_json valueForKey:@"hasPending"] boolValue];
- bool createNewOrder=appDelegate.can_create_order;
- if(openPendingOrder&&createNewOrder)
- {
- NSString* msg =@"";
- if(appDelegate.contact_id.length>0)
- {
- msg = [msg stringByAppendingString:@"Customer:"];
- msg = [msg stringByAppendingString:appDelegate.customerInfo[@"customer_name"]];
- }
- UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Add to cart" message:msg preferredStyle:UIAlertControllerStyleAlert];
- //block代码块取代了delegate
- UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Check for saved order" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- // vc.disable_refresh = true;
- OrderListViewController* ovc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"OrderListViewController"];
- ovc.showNavibar = true;
- ovc.customer_id = appDelegate.contact_id;
- ovc.selectOrder = ^(NSMutableDictionary* order_detail){
- [holder performSelector:addtocart];
- };
- ovc.init_style = OL_OPEN;
- ovc.onCancel = ^(){
- // self.disable_refresh = false;
- };
- [vc.navigationController pushViewController:ovc animated:true];
- }];
- UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"Create new order" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- {
- //create new;
- // self.disable_refresh = true;
- if(appDelegate.customerInfo==nil)// select contact if current contact not exist
- {
- ContactListViewController* cvc = [vc.storyboard instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
- cvc.showNavibar = true;
- cvc.contact_type = @"Sales_Order_Customer";
- cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
- appDelegate.contact_id=[value valueForKey:@"customer_cid"];
- appDelegate.customerInfo = value;
- if(appDelegate.order_code==nil)
- [self neworder:vc selectorholder:holder selector:addtocart];
- // neworder();
- // [main_vc checklogin:true];
- // [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
- //
- // if(self.returnValue)
- // self.returnValue(value);
- };
- cvc.onCancel = ^(){
- [RAUtils message_alert:@"Cannot create order without cursomer infomation." title:@"New Order Error" controller:vc];
- // self.disable_refresh = false;
- };
- cvc.onReset = ^(){
- // [main_vc checklogin:true];
- };
- [vc.navigationController pushViewController:cvc animated:true];
- }
- else
- {
- [self neworder:vc selectorholder:holder selector:addtocart];
- }
- }
- DebugLog(@"No");
- }];
- [alertControl addAction:actionOne];
- [alertControl addAction:alertthree];
- UIAlertAction *alertcancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
- }];
- [alertControl addAction:alertcancel];
- //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
- [vc presentViewController:alertControl animated:YES completion:nil];
- }
- else
- {
- if(openPendingOrder)
- {
- NSString* msg =@"";
- if(appDelegate.contact_id.length>0)
- {
- msg = [msg stringByAppendingString:@"Customer:"];
- msg = [msg stringByAppendingString:appDelegate.customerInfo[@"customer_name"]];
- }
- UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Add to cart" message:msg preferredStyle:UIAlertControllerStyleAlert];
- //block代码块取代了delegate
- UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Check for saved order" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- // vc.disable_refresh = true;
- OrderListViewController* ovc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"OrderListViewController"];
- ovc.showNavibar = true;
- ovc.customer_id = appDelegate.contact_id;
- ovc.selectOrder = ^(NSMutableDictionary* order_detail){
- [holder performSelector:addtocart];
- };
- ovc.init_style = OL_OPEN;
- ovc.onCancel = ^(){
- // self.disable_refresh = false;
- };
- [vc.navigationController pushViewController:ovc animated:true];
- }];
- [alertControl addAction:actionOne];
- UIAlertAction *alertcancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
- }];
- [alertControl addAction:alertcancel];
- // [alertControl addAction:alertthree];
- //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
- [vc presentViewController:alertControl animated:YES completion:nil];
- }
- else if(createNewOrder)
- {
- NSString* msg =@"";
- if(appDelegate.contact_id.length>0)
- {
- msg = [msg stringByAppendingString:@"Customer:"];
- msg = [msg stringByAppendingString:appDelegate.customerInfo[@"customer_name"]];
- }
- UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Add to cart" message:msg preferredStyle:UIAlertControllerStyleAlert];
- //block代码块取代了delegate
- UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"Create new order" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- {
- //create new;
- // self.disable_refresh = true;
- if(appDelegate.customerInfo==nil)// select contact if current contact not exist
- {
- ContactListViewController* cvc = [vc.storyboard instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
- cvc.showNavibar = true;
- cvc.contact_type = @"Sales_Order_Customer";
- cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
- appDelegate.contact_id=[value valueForKey:@"customer_cid"];
- appDelegate.customerInfo = value;
- if(appDelegate.order_code==nil)
- [self neworder:vc selectorholder:holder selector:addtocart];
- // neworder();
- // [main_vc checklogin:true];
- // [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
- //
- // if(self.returnValue)
- // self.returnValue(value);
- };
- cvc.onCancel = ^(){
- [RAUtils message_alert:@"Cannot create order without cursomer infomation." title:@"New Order Error" controller:vc];
- // self.disable_refresh = false;
- };
- cvc.onReset = ^(){
- // [main_vc checklogin:true];
- };
- [vc.navigationController pushViewController:cvc animated:true];
- }
- else
- {
- [self neworder:vc selectorholder:holder selector:addtocart];
- }
- }
- DebugLog(@"No");
- }];
- // [alertControl addAction:actionOne];
- [alertControl addAction:alertthree];
- UIAlertAction *alertcancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
- }];
- [alertControl addAction:alertcancel];
- //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
- [vc presentViewController:alertControl animated:YES completion:nil];
- }
- else
- {
- [RAUtils message_alert:[return_json valueForKey:@"You donot have permission to access order"] title:@"Add To Cart" controller:vc];
- }
- }
- }
- else
- {
- [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Check Pending Order" controller:vc] ;
- }
- });
- });
- }
- // // [main_vc checklogin:false];
- //
- // if(appDelegate.can_create_order)
- // {
- // NSString* msg =@"";
- // if(appDelegate.contact_id.length>0)
- // {
- // msg = [msg stringByAppendingString:@"\n\nCustomer:"];
- // msg = [msg stringByAppendingString:appDelegate.customerInfo[@"customer_name"]];
- //
- // }
- // UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Add to cart", nil) message:msg delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Check for saved order", nil),NSLocalizedString(@"Create new order", nil), nil];
- //
- // // alert.
- // [alert show];
- // }
- // else
- // {
- // UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Add to cart", nil) message:NSLocalizedString(@"", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Check for saved order", nil), nil];
- //
- // // alert.
- // [alert show];
- // }
- }
- else
- {
- // if(appDelegate.order_code==nil)
- // [ self neworder];
- // else
- [holder performSelector:addtocart];
- }
- }
- }
- +(void) add_recent_model:(NSDictionary*) model
- {
- NSMutableDictionary * newdict = [[NSMutableDictionary alloc]init];
- [newdict setObject:model forKey:@"item_0"];
- AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
- int count=[appDelegate.recent_model[@"count"] intValue];
- for(int i=0;i<count;i++)
- {
- NSMutableDictionary * mitem= appDelegate.recent_model[[NSString stringWithFormat:@"item_%d",i]];
- NSString *mitemProductID = [NSString stringWithFormat:@"%@",mitem[@"product_id"]];
- NSString *modelProductID = [NSString stringWithFormat:@"%@",model[@"product_id"]];
- if([mitemProductID isEqualToString:modelProductID])
- continue;
- [newdict setObject:mitem forKey:[NSString stringWithFormat:@"item_%lu",(unsigned long)newdict.allKeys.count]];
- }
- newdict[@"count"]=[NSString stringWithFormat:@"%lu",(unsigned long)newdict.allKeys.count];
- appDelegate.recent_model = newdict;
- //
- //
- // if(!bexist)
- // {
- // [appDelegate.recent_model setObject:item forKey:[NSString stringWithFormat:@"item_%d",count]];
- // appDelegate.recent_model[@"count"]=[NSString stringWithFormat:@"%d",count+1];
- // }
- }
- @end
|