|
|
@@ -0,0 +1,1244 @@
|
|
|
+//
|
|
|
+// HomerModelDetailHeaderCell.m
|
|
|
+// iSales-HOMER
|
|
|
+//
|
|
|
+// Created by Jack on 2017/10/25.
|
|
|
+// Copyright © 2017年 United Software Applications, Inc. All rights reserved.
|
|
|
+//
|
|
|
+
|
|
|
+#import "HomerModelDetailHeaderCell.h"
|
|
|
+#import "RANetwork.h"
|
|
|
+#import "MainViewController.h"
|
|
|
+#import "LoginViewController.h"
|
|
|
+#import "ContactListViewController.h"
|
|
|
+#import "RAUtils.h"
|
|
|
+#import "OrderListViewController.h"
|
|
|
+
|
|
|
+
|
|
|
+#import "ImageScrollerViewController.h"
|
|
|
+#import "CartUtils.h"
|
|
|
+#import "CustomIOSAlertView.h"
|
|
|
+#import "TextUtils.h"
|
|
|
+
|
|
|
+#import "ContentPreviewController.h"
|
|
|
+
|
|
|
+
|
|
|
+@implementation HomerModelDetailHeaderCell
|
|
|
+@synthesize celldelegate;
|
|
|
+
|
|
|
+- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
|
|
|
+{
|
|
|
+ self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
|
|
|
+ if (self) {
|
|
|
+ // Initialization code
|
|
|
+ }
|
|
|
+
|
|
|
+ return self;
|
|
|
+}
|
|
|
+
|
|
|
+- (void)awakeFromNib
|
|
|
+{
|
|
|
+
|
|
|
+ [super awakeFromNib];
|
|
|
+
|
|
|
+ self.quantity_text.delegate = self;
|
|
|
+
|
|
|
+// self.selector_Button.layer.borderWidth = 0.5;
|
|
|
+// self.selector_Button.layer.borderColor = [[UIColor lightGrayColor] CGColor];
|
|
|
+// self.selector_Button.layer.cornerRadius = 0;
|
|
|
+
|
|
|
+
|
|
|
+ [self.descriptionRTLabel setLineBreakMode: RTTextLineBreakModeWordWrapping];
|
|
|
+ [self.descriptionRTLabel setTextAlignment:RTTextAlignmentCenter];
|
|
|
+ [self.descriptionRTLabel setFont:[UIFont systemFontOfSize:22]];
|
|
|
+
|
|
|
+ [self addObserver:self
|
|
|
+ forKeyPath:@"stack_contents"
|
|
|
+ options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld)
|
|
|
+ context:@"content changed"];
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+-(void) dealloc
|
|
|
+{
|
|
|
+ [self removeObserver:self forKeyPath:@"stack_contents"];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
|
|
|
+{
|
|
|
+
|
|
|
+ if([keyPath isEqualToString:@"stack_contents"])
|
|
|
+ {
|
|
|
+ [self.playerView stopVideo];
|
|
|
+
|
|
|
+ self.playerView.hidden=true;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+- (IBAction)add_toPortfolio:(id)sender {
|
|
|
+
|
|
|
+ UIApplication * app = [UIApplication sharedApplication];
|
|
|
+ AppDelegate *appDelegate = (AppDelegate *)[app delegate];
|
|
|
+
|
|
|
+ if (appDelegate.user && appDelegate.user_type == USER_ROLE_CUSTOMER) {
|
|
|
+ [[NSNotificationCenter defaultCenter] postNotificationName:No_Rights_Notification object:nil];
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
|
|
|
+ if(appDelegate.bLogin==false)
|
|
|
+ {
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ LoginViewController * loginvc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
|
|
|
+
|
|
|
+
|
|
|
+ loginvc.returnValue = ^(bool blogin){
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if(blogin)
|
|
|
+ {
|
|
|
+
|
|
|
+ if(self.set_update_data)
|
|
|
+ self.set_update_data(true);
|
|
|
+
|
|
|
+ [main_vc checklogin:true];
|
|
|
+
|
|
|
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+
|
|
|
+ NSDictionary* return_json = [RANetwork add_toPortfolio:self.product_id withScreen:ScreenCodeModelInfo];
|
|
|
+
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
+
|
|
|
+ if([[return_json valueForKey:@"result"] intValue]==2)
|
|
|
+ {
|
|
|
+
|
|
|
+ [((MainViewController*)appDelegate.main_vc) reloadWish:true immediately:false];
|
|
|
+ if(self.WatchlistBlock!=nil)
|
|
|
+ {
|
|
|
+ UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
|
|
|
+
|
|
|
+
|
|
|
+ CGRect iv_rect = CGRectMake(self.btnaddPortfolio.center.x-50, self.btnaddPortfolio.center.y-50, 100, 100);
|
|
|
+ UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
|
|
|
+ iv.image = img;
|
|
|
+ self.PortfolioBlock(iv);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Add to portfolio" controller:vc] ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+ UINavigationController* navi = [[UINavigationController alloc] initWithRootViewController:loginvc] ;
|
|
|
+
|
|
|
+
|
|
|
+ navi.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;//有三种状态,自己看看是哪种
|
|
|
+ [vc presentViewController:navi animated:YES completion:^{
|
|
|
+
|
|
|
+ }];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+
|
|
|
+ NSDictionary* return_json = [RANetwork add_toPortfolio:self.product_id withScreen:ScreenCodeModelInfo];
|
|
|
+
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
+
|
|
|
+ if([[return_json valueForKey:@"result"] intValue]==2)
|
|
|
+ {
|
|
|
+ [((MainViewController*)appDelegate.main_vc) reloadWish:true immediately:false];
|
|
|
+ if(self.WatchlistBlock!=nil)
|
|
|
+ {
|
|
|
+ UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
|
|
|
+
|
|
|
+ CGRect iv_rect = CGRectMake(self.btnaddPortfolio.center.x-50, self.btnaddPortfolio.center.y-50, 100, 100);
|
|
|
+ UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
|
|
|
+ iv.image = img;
|
|
|
+
|
|
|
+ self.PortfolioBlock(iv);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Add to portfolio" controller:vc] ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+- (IBAction)add_toWatchList:(id)sender {
|
|
|
+
|
|
|
+ UIApplication * app = [UIApplication sharedApplication];
|
|
|
+ AppDelegate *appDelegate = (AppDelegate *)[app delegate];
|
|
|
+ MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
|
|
|
+ if(appDelegate.bLogin==false)
|
|
|
+ {
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ LoginViewController * loginvc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
|
|
|
+
|
|
|
+
|
|
|
+ loginvc.returnValue = ^(bool blogin){
|
|
|
+
|
|
|
+ if(blogin)
|
|
|
+ {
|
|
|
+
|
|
|
+ if(self.set_update_data)
|
|
|
+ self.set_update_data(true);
|
|
|
+
|
|
|
+ [main_vc checklogin:true];
|
|
|
+
|
|
|
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+
|
|
|
+ NSDictionary* return_json = [RANetwork add_toWatchList:self.product_id withScreen:ScreenCodeModelInfo];
|
|
|
+
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
+
|
|
|
+ if([[return_json valueForKey:@"result"] intValue]==2)
|
|
|
+ {
|
|
|
+
|
|
|
+ [((MainViewController*)appDelegate.main_vc) reloadWish:true immediately:false];
|
|
|
+ if(self.WatchlistBlock!=nil)
|
|
|
+ {
|
|
|
+ UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
|
|
|
+
|
|
|
+
|
|
|
+ CGRect iv_rect = CGRectMake(self.btnaddWish.center.x-50, self.btnaddWish.center.y-50, 100, 100);
|
|
|
+ UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
|
|
|
+ iv.image = img;
|
|
|
+ self.WatchlistBlock(iv);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Add Wish List" controller:vc] ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+ UINavigationController* navi = [[UINavigationController alloc] initWithRootViewController:loginvc] ;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ navi.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;//有三种状态,自己看看是哪种
|
|
|
+ [vc presentViewController:navi animated:YES completion:^{
|
|
|
+
|
|
|
+ }];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+
|
|
|
+ NSDictionary* return_json = [RANetwork add_toWatchList:self.product_id withScreen:ScreenCodeModelInfo];
|
|
|
+
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
+
|
|
|
+ if([[return_json valueForKey:@"result"] intValue]==2)
|
|
|
+ {
|
|
|
+ [((MainViewController*)appDelegate.main_vc) reloadWish:true immediately:false];
|
|
|
+ if(self.WatchlistBlock!=nil)
|
|
|
+ {
|
|
|
+ UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
|
|
|
+
|
|
|
+
|
|
|
+ CGRect iv_rect = CGRectMake(self.btnaddWish.center.x-50, self.btnaddWish.center.y-50, 100, 100);
|
|
|
+ UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
|
|
|
+ iv.image = img;
|
|
|
+ self.WatchlistBlock(iv);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Add Wish List" controller:vc] ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+- (IBAction)add_toCart:(id)sender {
|
|
|
+
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ [CartUtils add_to_cart:vc selectorholder:self selector:@selector(addtocart)];
|
|
|
+ return;
|
|
|
+
|
|
|
+}
|
|
|
+-(void) addtocart
|
|
|
+{
|
|
|
+ int count=[self.quantity_text.text intValue];
|
|
|
+
|
|
|
+#ifdef MPACK
|
|
|
+
|
|
|
+ if (count % self.step != 0) {
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ [RAUtils message_alert:[NSString stringWithFormat:@"Sold in quantities of %d",(int)(self.stepper.stepValue)] title:@"Add to cart" controller:vc];
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+#endif
|
|
|
+
|
|
|
+ int c=[self.count_Label.text intValue];
|
|
|
+ DebugLog(@"count label : %@ , convert:%d", self.count_Label.text ,c);
|
|
|
+
|
|
|
+ NSString* ct=[self.count_Label.text stringByReplacingOccurrencesOfString:@"\n" withString:@""];
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
|
|
|
+ if(/*c<count*/!appDelegate.can_create_backorder && c == 0)
|
|
|
+ {
|
|
|
+
|
|
|
+ NSString *msg = nil;
|
|
|
+ BOOL continueAdd = YES;
|
|
|
+ // #ifdef BUILD_NPD
|
|
|
+ AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
|
|
|
+ if (appDelegate.user_type == USER_ROLE_CUSTOMER) {
|
|
|
+
|
|
|
+ if ([Singleton sharedInstance].currentOrderIsMerged) { // Purchase Order不允许购买数量大于库存
|
|
|
+ msg = [NSString stringWithFormat:@"Item is OUT OF STOCK and not available to order from %@.",COMPANY_SHORT_NAME];
|
|
|
+ continueAdd = NO;
|
|
|
+ } else { // Shop Order购买数量大于库存需要确认
|
|
|
+ msg = [NSString stringWithFormat:@"Item is OUT OF STOCK and not available to order from %@.\nAdd to cart anyway?",COMPANY_SHORT_NAME];
|
|
|
+ continueAdd = YES;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (appDelegate.user_type == USER_ROLE_EMPLOYEE) { // Employee不允许购买数量大于库存
|
|
|
+ msg = @"Item is OUT OF STOCK and not available to order.";
|
|
|
+ continueAdd = NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ // #endif
|
|
|
+
|
|
|
+
|
|
|
+ UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:@"Availability %@",ct ] message:msg preferredStyle:UIAlertControllerStyleAlert];
|
|
|
+
|
|
|
+ UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
|
|
|
+ if (continueAdd) {
|
|
|
+ [self addtocart:count];
|
|
|
+ }
|
|
|
+ }];
|
|
|
+
|
|
|
+
|
|
|
+ [alertControl addAction:alertthree];
|
|
|
+
|
|
|
+
|
|
|
+ UIAlertAction *alertcancel = [UIAlertAction actionWithTitle:@"No" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
|
|
|
+ }];
|
|
|
+ if (continueAdd) {
|
|
|
+ [alertControl addAction:alertcancel];
|
|
|
+ }
|
|
|
+
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+
|
|
|
+
|
|
|
+ [vc presentViewController:alertControl animated:YES completion:nil];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ [self addtocart:count];
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+-(void)Hide_selector:(bool) bhide
|
|
|
+{
|
|
|
+// self.selector_Button.hidden=bhide;
|
|
|
+// self.selector_dorpdown.hidden=bhide;
|
|
|
+// self.selector_imageView.hidden=bhide;
|
|
|
+//
|
|
|
+}
|
|
|
+-(void) addtocart:(int) count
|
|
|
+{
|
|
|
+ AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
|
|
|
+
|
|
|
+ if(self.cqty>0)
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+ UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:@"QTY: %d of this model already in cart. Continue ?",self.cqty] message:nil preferredStyle:UIAlertControllerStyleAlert];
|
|
|
+ //block代码块取代了delegate
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
|
|
|
+
|
|
|
+ int c=self.cqty+count;
|
|
|
+
|
|
|
+ int m=c%self.step;
|
|
|
+ if(m!=0&&appDelegate.alert_sold_in_quantities)
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:@"Sold in quantities of %d, Are you sure?",self.step] message:nil preferredStyle:UIAlertControllerStyleAlert];
|
|
|
+ //block代码块取代了delegate
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
|
|
|
+
|
|
|
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+
|
|
|
+ NSDictionary* return_json = [RANetwork add_toCart:self.product_id count:count name:self.model_label.text];
|
|
|
+
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if([[return_json valueForKey:@"result"] intValue]==2)
|
|
|
+ {
|
|
|
+
|
|
|
+ // NSString* order_code = [return_json valueForKey:@"order_code"];
|
|
|
+ AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
|
|
|
+ [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
|
|
|
+
|
|
|
+
|
|
|
+ if(self.shopCartBlock!=nil)
|
|
|
+ {
|
|
|
+ UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
|
|
|
+
|
|
|
+
|
|
|
+ CGRect iv_rect = CGRectMake(self.btnaddCart.center.x-50, self.btnaddCart.center.y-50, 100, 100);
|
|
|
+ UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
|
|
|
+ iv.image = img;
|
|
|
+ // [self.contentView addSubview:iv];
|
|
|
+ self.shopCartBlock(iv);
|
|
|
+
|
|
|
+ self.cqty +=count;
|
|
|
+ if(self.set_cqty)
|
|
|
+ self.set_cqty(self.cqty);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ NSString *msg = [return_json valueForKey:@"err_msg"];
|
|
|
+ NSString *title = @"Add To Cart";
|
|
|
+ if ([msg hasPrefix:@"Out of Stock.\n"]) {
|
|
|
+ title = @"Add To Cart: Out of Stock";
|
|
|
+ msg = [msg substringFromIndex:[@"Out of Stock.\n" length]];
|
|
|
+ self.btnNotifyMe.enabled = YES;
|
|
|
+ self.btnaddCart.enabled = NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ [RAUtils message_alert:msg title:title controller:vc] ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ }];
|
|
|
+
|
|
|
+ UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"No" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
|
|
|
+ DebugLog(@"No");
|
|
|
+ }];
|
|
|
+ [alertControl addAction:actionOne];
|
|
|
+
|
|
|
+ [alertControl addAction:alertthree];
|
|
|
+
|
|
|
+ //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
|
|
|
+
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ [vc presentViewController:alertControl animated:YES completion:nil];
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+
|
|
|
+ NSDictionary* return_json = [RANetwork add_toCart:self.product_id count:count name:self.model_label.text];
|
|
|
+
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if([[return_json valueForKey:@"result"] intValue]==2)
|
|
|
+ {
|
|
|
+
|
|
|
+ // NSString* order_code = [return_json valueForKey:@"order_code"];
|
|
|
+ AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
|
|
|
+ [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
|
|
|
+
|
|
|
+
|
|
|
+ if(self.shopCartBlock!=nil)
|
|
|
+ {
|
|
|
+ UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
|
|
|
+
|
|
|
+
|
|
|
+ CGRect iv_rect = CGRectMake(self.btnaddCart.center.x-50, self.btnaddCart.center.y-50, 100, 100);
|
|
|
+ UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
|
|
|
+ iv.image = img;
|
|
|
+ // [self.contentView addSubview:iv];
|
|
|
+ self.shopCartBlock(iv);
|
|
|
+
|
|
|
+ self.cqty +=count;
|
|
|
+ if(self.set_cqty)
|
|
|
+ self.set_cqty(self.cqty);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ NSString *msg = [return_json valueForKey:@"err_msg"];
|
|
|
+ NSString *title = @"Add To Cart";
|
|
|
+ if ([msg hasPrefix:@"Out of Stock.\n"]) {
|
|
|
+ title = @"Add To Cart: Out of Stock";
|
|
|
+ msg = [msg substringFromIndex:[@"Out of Stock.\n" length]];
|
|
|
+ self.btnNotifyMe.enabled = YES;
|
|
|
+ self.btnaddCart.enabled = NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ [RAUtils message_alert:msg title:title controller:vc] ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }];
|
|
|
+
|
|
|
+ UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"No" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
|
|
|
+ DebugLog(@"No");
|
|
|
+ }];
|
|
|
+ [alertControl addAction:actionOne];
|
|
|
+
|
|
|
+ [alertControl addAction:alertthree];
|
|
|
+
|
|
|
+ //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
|
|
|
+
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ [vc presentViewController:alertControl animated:YES completion:nil];
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ int c=self.cqty+count;
|
|
|
+
|
|
|
+ int m=c%self.step;
|
|
|
+ if(m!=0&&appDelegate.alert_sold_in_quantities)
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:@"Sold in quantities of %d, Are you sure?",self.step] message:nil preferredStyle:UIAlertControllerStyleAlert];
|
|
|
+ //block代码块取代了delegate
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
|
|
|
+
|
|
|
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+
|
|
|
+ NSDictionary* return_json = [RANetwork add_toCart:self.product_id count:count name:self.model_label.text];
|
|
|
+
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if([[return_json valueForKey:@"result"] intValue]==2)
|
|
|
+ {
|
|
|
+
|
|
|
+ // NSString* order_code = [return_json valueForKey:@"order_code"];
|
|
|
+ AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
|
|
|
+
|
|
|
+ [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
|
|
|
+
|
|
|
+
|
|
|
+ if(self.shopCartBlock!=nil)
|
|
|
+ {
|
|
|
+ UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
|
|
|
+
|
|
|
+
|
|
|
+ CGRect iv_rect = CGRectMake(self.btnaddCart.center.x-50, self.btnaddCart.center.y-50, 100, 100);
|
|
|
+ UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
|
|
|
+ iv.image = img;
|
|
|
+ // [self.contentView addSubview:iv];
|
|
|
+ self.shopCartBlock(iv);
|
|
|
+
|
|
|
+ self.cqty +=count;
|
|
|
+ if(self.set_cqty)
|
|
|
+ self.set_cqty(self.cqty);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ NSString *msg = [return_json valueForKey:@"err_msg"];
|
|
|
+ NSString *title = @"Add To Cart";
|
|
|
+ if ([msg hasPrefix:@"Out of Stock.\n"]) {
|
|
|
+ title = @"Add To Cart: Out of Stock";
|
|
|
+ msg = [msg substringFromIndex:[@"Out of Stock.\n" length]];
|
|
|
+ self.btnNotifyMe.enabled = YES;
|
|
|
+ self.btnaddCart.enabled = NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ [RAUtils message_alert:msg title:title controller:vc] ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ }];
|
|
|
+
|
|
|
+ UIAlertAction *alertthree = [UIAlertAction actionWithTitle:@"No" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
|
|
|
+ DebugLog(@"No");
|
|
|
+ }];
|
|
|
+ [alertControl addAction:actionOne];
|
|
|
+
|
|
|
+ [alertControl addAction:alertthree];
|
|
|
+
|
|
|
+ //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
|
|
|
+
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ [vc presentViewController:alertControl animated:YES completion:nil];
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+
|
|
|
+ NSDictionary* return_json = [RANetwork add_toCart:self.product_id count:count name:self.model_label.text];
|
|
|
+
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if([[return_json valueForKey:@"result"] intValue]==2)
|
|
|
+ {
|
|
|
+
|
|
|
+ // NSString* order_code = [return_json valueForKey:@"order_code"];
|
|
|
+ AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
|
|
|
+
|
|
|
+ [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
|
|
|
+
|
|
|
+
|
|
|
+ if(self.shopCartBlock!=nil)
|
|
|
+ {
|
|
|
+ UIImage* img=[self photoStackView:self.photoStack photoForIndex:0];
|
|
|
+
|
|
|
+
|
|
|
+ CGRect iv_rect = CGRectMake(self.btnaddCart.center.x-50, self.btnaddCart.center.y-50, 100, 100);
|
|
|
+ UIImageView* iv = [[UIImageView alloc] initWithFrame:iv_rect];
|
|
|
+ iv.image = img;
|
|
|
+ // [self.contentView addSubview:iv];
|
|
|
+ self.shopCartBlock(iv);
|
|
|
+
|
|
|
+ self.cqty +=count;
|
|
|
+ if(self.set_cqty)
|
|
|
+ self.set_cqty(self.cqty);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+
|
|
|
+ NSString *msg = [return_json valueForKey:@"err_msg"];
|
|
|
+ NSString *title = @"Add To Cart";
|
|
|
+ if ([msg hasPrefix:@"Out of Stock.\n"]) {
|
|
|
+ title = @"Add To Cart: Out of Stock";
|
|
|
+ msg = [msg substringFromIndex:[@"Out of Stock.\n" length]];
|
|
|
+ self.btnNotifyMe.enabled = YES;
|
|
|
+ self.btnaddCart.enabled = NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ [RAUtils message_alert:msg title:title controller:vc] ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated
|
|
|
+{
|
|
|
+ [super setSelected:selected animated:animated];
|
|
|
+
|
|
|
+ // Configure the view for the selected state
|
|
|
+}
|
|
|
+
|
|
|
+- (IBAction)selectorOnClick:(id)sender {
|
|
|
+ DebugLog(@"select click");
|
|
|
+ [celldelegate SelectorClicked:(UIButton*) sender];
|
|
|
+ // [self performSegueWithIdentifier:@"selector_popover" sender:self];
|
|
|
+
|
|
|
+}
|
|
|
+#pragma mark -
|
|
|
+#pragma mark Deck DataSource Protocol Methods
|
|
|
+
|
|
|
+-(NSUInteger)numberOfPhotosInPhotoStackView:(PhotoStackView *)photoStack {
|
|
|
+ return [self.photos count];
|
|
|
+}
|
|
|
+
|
|
|
+-(UIImage *)photoStackView:(PhotoStackView *)photoStack photoForIndex:(NSUInteger)index {
|
|
|
+
|
|
|
+
|
|
|
+ if(self.photos.count==0)
|
|
|
+ return nil;
|
|
|
+ return [self.photos objectAtIndex:index];
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#pragma mark -
|
|
|
+#pragma mark Deck Delegate Protocol Methods
|
|
|
+
|
|
|
+-(void)photoStackView:(PhotoStackView *)photoStackView willStartMovingPhotoAtIndex:(NSUInteger)index {
|
|
|
+ // User started moving a photo
|
|
|
+}
|
|
|
+
|
|
|
+-(void)photoStackView:(PhotoStackView *)photoStackView willFlickAwayPhotoFromIndex:(NSUInteger)fromIndex toIndex:(NSUInteger)toIndex {
|
|
|
+ // User flicked the photo away, revealing the next one in the stack
|
|
|
+}
|
|
|
+
|
|
|
+-(void)photoStackView:(PhotoStackView *)photoStackView didRevealPhotoAtIndex:(NSUInteger)index {
|
|
|
+ self.pageControl.currentPage = index;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+- (UIView *)createVideoView:(NSString*) videoID
|
|
|
+{
|
|
|
+ UIView *demoView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 640, 360)];
|
|
|
+
|
|
|
+ // UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 270, 180)];
|
|
|
+ // [imageView setImage:[UIImage imageNamed:@"demo"]];
|
|
|
+
|
|
|
+ UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 620, 10)];
|
|
|
+ titleLabel.font = [UIFont boldSystemFontOfSize:20];
|
|
|
+ titleLabel.text=@"a separated player will show here:";
|
|
|
+ titleLabel.numberOfLines = 0;
|
|
|
+ titleLabel.lineBreakMode =NSLineBreakByWordWrapping;
|
|
|
+ // titleLabel.textAlignment = NSTextAlignmentRight;
|
|
|
+ titleLabel.textAlignment = NSTextAlignmentCenter;
|
|
|
+ CGSize constraintkey = CGSizeMake(620, 20000.0f);//key label width is 40% cell width;
|
|
|
+ CGSize sizetitle = [@"a separated player will show here:" sizeWithFont:[UIFont systemFontOfSize:20.0] constrainedToSize:constraintkey lineBreakMode:NSLineBreakByWordWrapping];
|
|
|
+
|
|
|
+ //[titleLabel sizeToFit];
|
|
|
+ // titleLabel.center.x = demoView.center.x;
|
|
|
+ titleLabel.frame = CGRectMake(10, 10, 620, sizetitle.height);
|
|
|
+ [demoView addSubview:titleLabel];
|
|
|
+
|
|
|
+ UILabel *lineLabel = [[UILabel alloc] initWithFrame:CGRectMake(15, titleLabel.frame.origin.y+ titleLabel.frame.size.height+20, 610, 10)];
|
|
|
+ lineLabel.font = [UIFont boldSystemFontOfSize:17];
|
|
|
+ lineLabel.text=videoID;
|
|
|
+ lineLabel.numberOfLines = 0;
|
|
|
+ lineLabel.lineBreakMode =NSLineBreakByWordWrapping;
|
|
|
+
|
|
|
+ CGSize sizemsg = [videoID sizeWithFont:[UIFont boldSystemFontOfSize:17.0] constrainedToSize:constraintkey lineBreakMode:NSLineBreakByWordWrapping];
|
|
|
+
|
|
|
+ lineLabel.frame = CGRectMake(15, titleLabel.frame.origin.y+ titleLabel.frame.size.height+20, 630, sizemsg.height);
|
|
|
+ //[lineLabel sizeToFit];
|
|
|
+
|
|
|
+ [demoView addSubview:lineLabel];
|
|
|
+ demoView.frame = CGRectMake(0, 0, 640, lineLabel.frame.origin.y+lineLabel.frame.size.height+25);
|
|
|
+ return demoView;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+-(void)photoStackView:(PhotoStackView *)photoStackView didSelectPhotoAtIndex:(NSUInteger)index {
|
|
|
+ DebugLog(@"selected %lu", (unsigned long)index);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ NSDictionary* item= self.stack_contents[[NSString stringWithFormat:@"item_%ld",index]];
|
|
|
+
|
|
|
+ if([item[@"type"] isEqualToString:@"video"])
|
|
|
+ {
|
|
|
+
|
|
|
+ NSString* video_code=item[@"code"];
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // [TextUtils expression_varable:video regex:<#(NSString *)#>]
|
|
|
+
|
|
|
+ NSString* video_id=[self.playerView Embed2VID:video_code];
|
|
|
+
|
|
|
+ NSDictionary *playerVars = @{
|
|
|
+ @"playsinline" : @1,
|
|
|
+ @"autoplay" : @(1),
|
|
|
+ @"rel":@0,
|
|
|
+ @"showinfo": @0,
|
|
|
+ @"modestbranding":@0,
|
|
|
+ @"enablejsapi":@1
|
|
|
+ };
|
|
|
+
|
|
|
+ [self.playerView loadWithVideoId:video_id playerVars:playerVars];
|
|
|
+ for(UIView *v in self.playerView.subviews)
|
|
|
+ {
|
|
|
+ if([v isKindOfClass:[UIButton class] ])
|
|
|
+ [self.playerView bringSubviewToFront:v];
|
|
|
+ }
|
|
|
+ self.playerView.webView.allowsPictureInPictureMediaPlayback=false;
|
|
|
+ self.playerView.hidden=false;
|
|
|
+
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ ContentPreviewController *preVC = [[UIStoryboard storyboardWithName:@"PhotoList" bundle:nil] instantiateViewControllerWithIdentifier:@"ContentPreviewController"];
|
|
|
+ preVC.content = self.stack_contents;
|
|
|
+ // preVC.currentIndex = index;
|
|
|
+ [preVC setOffset:index];
|
|
|
+ UIViewController *superVC= [RAUtils getViewController:self];
|
|
|
+ [superVC.navigationController pushViewController:preVC animated:true];
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // }
|
|
|
+
|
|
|
+ // 调用展示窗口
|
|
|
+ ImageScrollerViewController *imgShow = [[ImageScrollerViewController alloc] initWithSourceData:[self.photos mutableCopy] withIndex:index];
|
|
|
+
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ [vc.navigationController pushViewController:imgShow animated:true];
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+-(void) neworder
|
|
|
+{
|
|
|
+
|
|
|
+ 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;
|
|
|
+
|
|
|
+ int count=[self.quantity_text.text intValue];
|
|
|
+ [self addtocart:count];
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ NSString *msg = [return_json valueForKey:@"err_msg"];
|
|
|
+ NSString *title = @"Add To Cart";
|
|
|
+ if ([msg hasPrefix:@"Out of Stock.\n"]) {
|
|
|
+ title = @"Add To Cart: Out of Stock";
|
|
|
+ msg = [msg substringFromIndex:[@"Out of Stock.\n" length]];
|
|
|
+ self.btnNotifyMe.enabled = YES;
|
|
|
+ self.btnaddCart.enabled = NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ [RAUtils message_alert:msg title:title controller:vc] ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ });
|
|
|
+}
|
|
|
+#pragma mark - UIAlertViewDelegate
|
|
|
+// Called when a button is clicked. The view will be automatically dismissed after this call returns
|
|
|
+- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
|
|
|
+{
|
|
|
+ UIApplication * app = [UIApplication sharedApplication];
|
|
|
+ AppDelegate *appDelegate = (AppDelegate *)[app delegate];
|
|
|
+ if(alertView.tag==1234)//库存小于0
|
|
|
+ {
|
|
|
+
|
|
|
+ // availability warring;
|
|
|
+
|
|
|
+ int count=[self.quantity_text.text intValue];
|
|
|
+ if(buttonIndex!=alertView.cancelButtonIndex)
|
|
|
+ {
|
|
|
+ if(appDelegate.order_code==nil)
|
|
|
+ {
|
|
|
+ [self neworder];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ [self addtocart:count];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // int count=[self.quantity_text.text intValue];
|
|
|
+
|
|
|
+ MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
|
|
|
+ if(buttonIndex==alertView.cancelButtonIndex)
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else if(buttonIndex==1)
|
|
|
+ {
|
|
|
+ //open exist
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ OrderListViewController* ovc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"OrderListViewController"];
|
|
|
+ ovc.showNavibar = true;
|
|
|
+ ovc.selectOrder = ^(NSMutableDictionary* order_detail){
|
|
|
+ if(appDelegate.order_code==nil)
|
|
|
+ {
|
|
|
+ [self neworder];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if(self.set_update_data)
|
|
|
+ self.set_update_data(true);
|
|
|
+
|
|
|
+ int model_count = [[order_detail valueForKey:@"model_count"] intValue];
|
|
|
+ for(int i=0;i<model_count;i++)
|
|
|
+ {
|
|
|
+ NSDictionary* item = [order_detail objectForKey:[NSString stringWithFormat:@"item_%d",i]];
|
|
|
+ NSString* product_id = [item valueForKey:@"product_id"];
|
|
|
+ if([product_id isEqualToString:self.product_id])
|
|
|
+ {
|
|
|
+ self.cqty = [[item valueForKey:@"QTY"]intValue];
|
|
|
+ if(self.set_cqty)
|
|
|
+ self.set_cqty(self.cqty);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ int count=[self.quantity_text.text intValue];
|
|
|
+ [self addtocart:count];
|
|
|
+ [main_vc checklogin:true];
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ };
|
|
|
+ ovc.init_style = OL_OPEN;
|
|
|
+ ovc.onCancel = ^(){
|
|
|
+
|
|
|
+ [main_vc checklogin:true];
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+ [vc.navigationController pushViewController:ovc animated:true];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //create new;
|
|
|
+ if(appDelegate.customerInfo==nil)// select contact if current contact not exist
|
|
|
+ {
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+
|
|
|
+ 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];
|
|
|
+
|
|
|
+ [main_vc checklogin:true];
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+ cvc.onCancel = ^(){
|
|
|
+
|
|
|
+ UIViewController *vc= [RAUtils getViewController:self];
|
|
|
+ [RAUtils message_alert:@"Cannot create order without cursomer infomation." title:@"New Order" controller:vc];
|
|
|
+
|
|
|
+ };
|
|
|
+ cvc.onReset = ^(){
|
|
|
+ [main_vc checklogin:true];
|
|
|
+ };
|
|
|
+
|
|
|
+ [vc.navigationController pushViewController:cvc animated:true];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ [self neworder];
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+- (void)valueChanged:(UIStepper *)sender {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ self.quantity_text.text = [NSString stringWithFormat:@"%d",(int)sender.value ];
|
|
|
+
|
|
|
+ [celldelegate stepClicked:(int)sender.value];
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+#pragma mark -
|
|
|
+#pragma mark Actions
|
|
|
+-(void)ClearPhotos
|
|
|
+{
|
|
|
+ NSMutableArray *photosMutable = [self.photos mutableCopy];
|
|
|
+ [photosMutable removeAllObjects];
|
|
|
+ self.photos = photosMutable;
|
|
|
+ [self.photoStack reloadData];
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+- (void)AddPhoto :(UIImage*)photo {
|
|
|
+
|
|
|
+ NSMutableArray *photosMutable = [self.photos mutableCopy];
|
|
|
+ [photosMutable addObject:photo];
|
|
|
+ self.photos = photosMutable;
|
|
|
+ [self.photoStack reloadData];
|
|
|
+ self.pageControl.numberOfPages = [self.photos count];
|
|
|
+ if(self.photos.count<2-1)//1 for qrcode;
|
|
|
+ self.photoStack.showBorder=false;
|
|
|
+ else
|
|
|
+ self.photoStack.showBorder=true;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#pragma mark -
|
|
|
+#pragma mark Setup
|
|
|
+-(void)setup {
|
|
|
+
|
|
|
+
|
|
|
+ // int availability = [self.count_Label.text intValue];
|
|
|
+ self.stepper.minimumValue= self.step;
|
|
|
+ self.stepper.maximumValue = INTMAX_MAX;
|
|
|
+
|
|
|
+
|
|
|
+ self.stepper.stepValue= self.step;
|
|
|
+
|
|
|
+ self.stepper.value= self.quantity;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ [self.stepper addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged];
|
|
|
+
|
|
|
+ if(true)//(self.photos==nil)
|
|
|
+ {
|
|
|
+
|
|
|
+ self.photos = [NSArray array];
|
|
|
+ }
|
|
|
+ if(true)//(self.photoStack==nil)
|
|
|
+ {
|
|
|
+
|
|
|
+ self.photoStack.dataSource = self;
|
|
|
+ self.photoStack.delegate = self;
|
|
|
+
|
|
|
+
|
|
|
+ // [self addSubview:self.photoStack];
|
|
|
+ self.pageControl.numberOfPages = [self.photos count];
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+- (IBAction)notifyMeButtonClicked:(UIButton *)sender {
|
|
|
+
|
|
|
+ if (self.notifyMeBlock) {
|
|
|
+ self.notifyMeBlock();
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+#pragma mark - TextField Delegate
|
|
|
+
|
|
|
+- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
|
|
|
+
|
|
|
+ int buyQTY = [newString intValue];
|
|
|
+
|
|
|
+
|
|
|
+ self.stepper.value = buyQTY;
|
|
|
+
|
|
|
+ return YES;
|
|
|
+}
|
|
|
+
|
|
|
+#pragma mark - Private
|
|
|
+/**检查是否缺货*/
|
|
|
+- (void)checkAvailability:(int)availability buyQTY:(int)buyQty cartQTY:(int)cartQty { // availability不可以通过textField.text取得
|
|
|
+
|
|
|
+ //#ifdef BUILD_NPD
|
|
|
+ AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
|
|
|
+ if (!appDelegate.bLogin || buyQty < 1) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+#ifdef OFFLINE_MODE
|
|
|
+ if (appDelegate.offline_mode) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+#endif
|
|
|
+
|
|
|
+
|
|
|
+ if (appDelegate.user_type == USER_ROLE_CUSTOMER) { // customer
|
|
|
+
|
|
|
+ if (!appDelegate.order_code) { // 未打开订单状态
|
|
|
+
|
|
|
+ if ((buyQty + cartQty) > availability) {
|
|
|
+
|
|
|
+ self.btnaddCart.enabled = NO;
|
|
|
+ self.btnNotifyMe.enabled = YES;
|
|
|
+ } else {
|
|
|
+
|
|
|
+ self.btnaddCart.enabled = YES;
|
|
|
+ self.btnNotifyMe.enabled = NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ // 打开订单状态
|
|
|
+ if (![Singleton sharedInstance].currentOrderIsMerged) {
|
|
|
+ // Shop Order
|
|
|
+ self.btnaddCart.enabled = YES;
|
|
|
+ // 默认未缺货
|
|
|
+ self.btnNotifyMe.enabled = NO;
|
|
|
+
|
|
|
+ if ((buyQty + cartQty) > availability) { // 缺货
|
|
|
+
|
|
|
+ self.btnNotifyMe.enabled = YES;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ } else {
|
|
|
+ // Purchase Order
|
|
|
+ if ((buyQty + cartQty) > availability) { // 缺货
|
|
|
+ self.btnaddCart.enabled = NO;
|
|
|
+ self.btnNotifyMe.enabled = YES;
|
|
|
+ } else { // 未缺货
|
|
|
+ self.btnNotifyMe.enabled = NO;
|
|
|
+ self.btnaddCart.enabled = YES;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ } else { // empoyee
|
|
|
+
|
|
|
+ if ((buyQty + cartQty) > availability) { // 缺货
|
|
|
+ self.btnaddCart.enabled = NO;
|
|
|
+ self.btnNotifyMe.enabled = YES;
|
|
|
+ } else { // 未缺货
|
|
|
+ self.btnNotifyMe.enabled = NO;
|
|
|
+ self.btnaddCart.enabled = YES;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ //#endif
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+- (IBAction)introduceBtnClick:(UIButton *)sender {
|
|
|
+
|
|
|
+ if (self.introduceBlock) {
|
|
|
+ self.introduceBlock(sender);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+- (IBAction)descriptionBtnClick:(UIButton *)sender {
|
|
|
+ if (self.descriptionBlock) {
|
|
|
+ self.descriptionBlock(sender);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+- (IBAction)OnClosePlayer:(id)sender {
|
|
|
+ [self.playerView stopVideo];
|
|
|
+
|
|
|
+ self.playerView.hidden=true;
|
|
|
+}
|
|
|
+
|
|
|
+@end
|