Ray Zhang 10 лет назад
Родитель
Сommit
4a963b209e
35 измененных файлов с 1712 добавлено и 613 удалено
  1. 1 1
      RedAnt ERP Mobile/common/ActiveViewController.h
  2. 12 3
      RedAnt ERP Mobile/common/CommonEditor/CommonEditorCellImg.h
  3. 110 45
      RedAnt ERP Mobile/common/CommonEditor/CommonEditorCellImg.m
  4. 214 86
      RedAnt ERP Mobile/common/CommonEditor/CommonEditorViewController.m
  5. 17 0
      RedAnt ERP Mobile/common/Functions/cart/CartGeneralNotesViewController.h
  6. 90 0
      RedAnt ERP Mobile/common/Functions/cart/CartGeneralNotesViewController.m
  7. 7 0
      RedAnt ERP Mobile/common/Functions/cart/CartViewController.h
  8. 198 60
      RedAnt ERP Mobile/common/Functions/cart/CartViewController.m
  9. 15 0
      RedAnt ERP Mobile/common/Functions/cart/ItemNotesViewController.h
  10. 91 0
      RedAnt ERP Mobile/common/Functions/cart/ItemNotesViewController.m
  11. 1 1
      RedAnt ERP Mobile/common/Functions/cart/ModelItemCell.h
  12. 2 2
      RedAnt ERP Mobile/common/Functions/contact/ContactListViewController.m
  13. 1 1
      RedAnt ERP Mobile/common/Functions/contact/CustomerEditViewController.h
  14. 89 79
      RedAnt ERP Mobile/common/Functions/contact/CustomerEditViewController.m
  15. 1 0
      RedAnt ERP Mobile/common/Functions/contact/CustomerInfoViewController.h
  16. 44 4
      RedAnt ERP Mobile/common/Functions/contact/CustomerInfoViewController.m
  17. 4 1
      RedAnt ERP Mobile/common/Functions/contact/customer_info_template.json
  18. 1 0
      RedAnt ERP Mobile/common/Functions/order/OrderDetailViewController.h
  19. 41 1
      RedAnt ERP Mobile/common/Functions/order/OrderDetailViewController.m
  20. 25 1
      RedAnt ERP Mobile/common/Functions/signature/SignatureView.m
  21. 1 0
      RedAnt ERP Mobile/common/Functions/signature/SignatureViewController.h
  22. 2 1
      RedAnt ERP Mobile/common/Functions/signature/SignatureViewController.m
  23. 2 2
      RedAnt ERP Mobile/common/RAUtils.h
  24. 12 3
      RedAnt ERP Mobile/common/RAUtils.m
  25. 31 1
      RedAnt ERP Mobile/common/customUI/ImageViewController.m
  26. 23 0
      RedAnt ERP Mobile/common/customUI/TouchImageView.h
  27. 38 0
      RedAnt ERP Mobile/common/customUI/TouchImageView.m
  28. 9 4
      RedAnt ERP Mobile/common/data_provider/iSalesNetwork.h
  29. 139 35
      RedAnt ERP Mobile/common/data_provider/iSalesNetwork.m
  30. 18 0
      RedAnt ERP Mobile/iSales-NPD.xcodeproj/project.pbxproj
  31. 1 0
      RedAnt ERP Mobile/iSales-NPD/AppDelegate.h
  32. 3 0
      RedAnt ERP Mobile/iSales-NPD/AppDelegate.m
  33. 322 140
      RedAnt ERP Mobile/iSales-NPD/Base.lproj/Main.storyboard
  34. 1 1
      RedAnt ERP Mobile/iSales-NPD/OLDataProvider.m
  35. 146 141
      RedAnt ERP Mobile/iSales-NPD/config.h

+ 1 - 1
RedAnt ERP Mobile/common/ActiveViewController.h

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import <UIKit/UIKit.h>
 #import <UIKit/UIKit.h>
-#import "TouchLabel.h"
+//#import "TouchLabel.h"
 @protocol ActiveViewController
 @protocol ActiveViewController
 
 
 @required
 @required

+ 12 - 3
RedAnt ERP Mobile/common/CommonEditor/CommonEditorCellImg.h

@@ -7,13 +7,22 @@
 //
 //
 
 
 #import <UIKit/UIKit.h>
 #import <UIKit/UIKit.h>
+#import "TouchImageView.h"
 
 
-@interface CommonEditorCellImg : UITableViewCell
+@interface CommonEditorCellImg : UITableViewCell<TouchImageViewDelegate>
 @property (strong, nonatomic) IBOutlet UILabel *labelTitle;
 @property (strong, nonatomic) IBOutlet UILabel *labelTitle;
-@property (strong, nonatomic) IBOutlet UIButton *buttonImg;
+//@property (strong, nonatomic) IBOutlet UIButton *buttonImg0;
+//@property (strong, nonatomic) IBOutlet UIButton *buttonImg1;
+//@property (strong, nonatomic) IBOutlet UIButton *buttonImg2;
+@property (strong, nonatomic) IBOutlet TouchImageView *touchImageView0;
+@property (strong, nonatomic) IBOutlet TouchImageView *touchImageView1;
+@property (strong, nonatomic) IBOutlet TouchImageView *touchImageView2;
+
+@property (strong, nonatomic) NSMutableArray* imgs;
+
 @property (strong, nonatomic) IBOutlet UILabel *labelDescription;
 @property (strong, nonatomic) IBOutlet UILabel *labelDescription;
 @property bool editable;
 @property bool editable;
 @property bool img_validate;
 @property bool img_validate;
 @property bool isFullScreen;
 @property bool isFullScreen;
-@property (nonatomic , copy) void (^imgChanged)(NSString* url_down,NSString* url_up);
+@property (nonatomic , copy) void (^imgChanged)(NSString* url_down,NSString* url_up, int index);
 @end
 @end

+ 110 - 45
RedAnt ERP Mobile/common/CommonEditor/CommonEditorCellImg.m

@@ -16,69 +16,134 @@
 @implementation CommonEditorCellImg
 @implementation CommonEditorCellImg
 
 
 - (void)awakeFromNib {
 - (void)awakeFromNib {
-    // Initialization code
+    self.touchImageView0.delegate=self;
+
+    self.touchImageView1.delegate=self;
+
+    self.touchImageView2.delegate=self;
+
+    self.imgs= [@[@"", @"",@""] mutableCopy];
 }
 }
 
 
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
     [super setSelected:selected animated:animated];
     [super setSelected:selected animated:animated];
-
+    
     // Configure the view for the selected state
     // Configure the view for the selected state
 }
 }
-
-- (IBAction)ImgButtonClicked:(UIButton *)sender {
-
+- (void)TouchImageViewOnTouche:(TouchImageView *)touchImageView
+{
+    __block int tag = touchImageView.tag;
+    UIViewController* vc=[RAUtils getViewController :touchImageView];
     
     
-    UIViewController* vc=[RAUtils getViewController :sender];
-
     if(self.editable==true)
     if(self.editable==true)
     {
     {
-    
-    
-    ImageUploadViewController * uploadvc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"ImageUploadViewController"];
-    
-//        UIImage* img =[self.buttonImg backgroundImageForState:UIControlStateNormal];;
-    
-    if(self.img_validate)
-    uploadvc.img= [self.buttonImg backgroundImageForState:UIControlStateNormal];
-    
-    uploadvc.returnValue = ^(NSString* url_down,NSString* url_up,UIImage* img)
-    {
         
         
-        [self.buttonImg setBackgroundImage:img forState:UIControlStateNormal];
         
         
-        if(self.imgChanged)
-            self.imgChanged(url_down,url_up);
+        ImageUploadViewController * uploadvc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"ImageUploadViewController"];
         
         
-    };
-    
-    [vc.navigationController pushViewController:uploadvc animated:false];
+        //        UIImage* img =[self.buttonImg backgroundImageForState:UIControlStateNormal];;
+        
+        if(self.img_validate)
+            uploadvc.img= touchImageView.image;
+        
+        uploadvc.returnValue = ^(NSString* url_down,NSString* url_up,UIImage* img)
+        {
+            
+            self.imgs[tag] = url_up;
+            
+            NSString* newurl=[RAUtils arr2string:self.imgs separator:@"," trim:false];
+            
+            touchImageView.image=img;
+            
+            if(self.imgChanged)
+                self.imgChanged(url_down,newurl,tag);
+            
+        };
+        
+        [vc.navigationController pushViewController:uploadvc animated:false];
     }
     }
     else
     else
     {
     {
+        if(touchImageView.image==nil)
+            return ;
         ImageViewController * imagevc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"ImageViewController"];
         ImageViewController * imagevc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"ImageViewController"];
         
         
         
         
-        UIImage* img=[self.buttonImg backgroundImageForState:UIControlStateNormal];
+        UIImage* img=touchImageView.image;
         
         
         if(self.img_validate)
         if(self.img_validate)
-        imagevc.image = img;//.imageView.image = [self.buttonImg backgroundImageForState:UIControlStateNormal];
+            imagevc.image = img;//.imageView.image = [self.buttonImg backgroundImageForState:UIControlStateNormal];
         
         
-//        uploadvc.returnValue = ^(NSString* url_down,NSString* url_up,UIImage* img)
-//        {
-//            
-//            [self.buttonImg setBackgroundImage:img forState:UIControlStateNormal];
-//            
-//            if(self.imgChanged)
-//                self.imgChanged(url_down,url_up);
-//            
-//        };
+        //        uploadvc.returnValue = ^(NSString* url_down,NSString* url_up,UIImage* img)
+        //        {
+        //
+        //            [self.buttonImg setBackgroundImage:img forState:UIControlStateNormal];
+        //
+        //            if(self.imgChanged)
+        //                self.imgChanged(url_down,url_up);
+        //
+        //        };
         
         
         [vc.navigationController pushViewController:imagevc animated:false];
         [vc.navigationController pushViewController:imagevc animated:false];
     }
     }
-//    bundleVC.content_data = self.bundle_item;
+    //    bundleVC.content_data = self.bundle_item;
+    
     
     
-
 }
 }
+//- (IBAction)ImgButtonClicked:(UIButton *)sender {
+//
+//    __block int tag = sender.tag;
+//    UIViewController* vc=[RAUtils getViewController :sender];
+//
+//    if(self.editable==true)
+//    {
+//
+//
+//    ImageUploadViewController * uploadvc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"ImageUploadViewController"];
+//
+////        UIImage* img =[self.buttonImg backgroundImageForState:UIControlStateNormal];;
+//
+//    if(self.img_validate)
+//    uploadvc.img= [sender backgroundImageForState:UIControlStateNormal];
+//
+//    uploadvc.returnValue = ^(NSString* url_down,NSString* url_up,UIImage* img)
+//    {
+//
+//        [sender setBackgroundImage:img forState:UIControlStateNormal];
+//
+//        if(self.imgChanged)
+//            self.imgChanged(url_down,url_up,tag);
+//
+//    };
+//
+//    [vc.navigationController pushViewController:uploadvc animated:false];
+//    }
+//    else
+//    {
+//        ImageViewController * imagevc =[ vc.storyboard instantiateViewControllerWithIdentifier:@"ImageViewController"];
+//
+//
+//        UIImage* img=[sender backgroundImageForState:UIControlStateNormal];
+//
+//        if(self.img_validate)
+//        imagevc.image = img;//.imageView.image = [self.buttonImg backgroundImageForState:UIControlStateNormal];
+//
+////        uploadvc.returnValue = ^(NSString* url_down,NSString* url_up,UIImage* img)
+////        {
+////
+////            [self.buttonImg setBackgroundImage:img forState:UIControlStateNormal];
+////
+////            if(self.imgChanged)
+////                self.imgChanged(url_down,url_up);
+////
+////        };
+//
+//        [vc.navigationController pushViewController:imagevc animated:false];
+//    }
+////    bundleVC.content_data = self.bundle_item;
+//
+//
+//}
 //
 //
 //
 //
 //-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
 //-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
@@ -87,12 +152,12 @@
 //        return;
 //        return;
 //    self.isFullScreen = !self.isFullScreen;
 //    self.isFullScreen = !self.isFullScreen;
 //    UITouch *touch = [touches anyObject];
 //    UITouch *touch = [touches anyObject];
-//    
+//
 //    CGPoint touchPoint = [touch locationInView:self.contentView];
 //    CGPoint touchPoint = [touch locationInView:self.contentView];
-//    
+//
 //    CGPoint imagePoint = self.imageView.frame.origin;
 //    CGPoint imagePoint = self.imageView.frame.origin;
 //    //touchPoint.x ,touchPoint.y 就是触点的坐标
 //    //touchPoint.x ,touchPoint.y 就是触点的坐标
-//    
+//
 //    // 触点在imageView内,点击imageView时 放大,再次点击时缩小
 //    // 触点在imageView内,点击imageView时 放大,再次点击时缩小
 //    if(imagePoint.x <= touchPoint.x && imagePoint.x +self.imageView.frame.size.width >=touchPoint.x && imagePoint.y <=  touchPoint.y && imagePoint.y+self.imageView.frame.size.height >= touchPoint.y)
 //    if(imagePoint.x <= touchPoint.x && imagePoint.x +self.imageView.frame.size.width >=touchPoint.x && imagePoint.y <=  touchPoint.y && imagePoint.y+self.imageView.frame.size.height >= touchPoint.y)
 //    {
 //    {
@@ -100,21 +165,21 @@
 //        [UIView beginAnimations:nil context:nil];
 //        [UIView beginAnimations:nil context:nil];
 //        // 动画时间
 //        // 动画时间
 //        [UIView setAnimationDuration:1];
 //        [UIView setAnimationDuration:1];
-//        
+//
 //        if (self.isFullScreen) {
 //        if (self.isFullScreen) {
 //            // 放大尺寸
 //            // 放大尺寸
-//            
+//
 //            self.buttonImg.frame = CGRectMake(0, 0, 768, 1024);
 //            self.buttonImg.frame = CGRectMake(0, 0, 768, 1024);
 //        }
 //        }
 //        else {
 //        else {
 //            // 缩小尺寸
 //            // 缩小尺寸
 //            self.buttonImg.frame = CGRectMake(50, 65, 100, 100);
 //            self.buttonImg.frame = CGRectMake(50, 65, 100, 100);
 //        }
 //        }
-//        
+//
 //        // commit动画
 //        // commit动画
 //        [UIView commitAnimations];
 //        [UIView commitAnimations];
-//        
+//
 //    }
 //    }
-//    
+//
 //}
 //}
 @end
 @end

+ 214 - 86
RedAnt ERP Mobile/common/CommonEditor/CommonEditorViewController.m

@@ -67,8 +67,8 @@
     UIRefreshControl *reF = (UIRefreshControl *)[self.view viewWithTag:200];
     UIRefreshControl *reF = (UIRefreshControl *)[self.view viewWithTag:200];
     reF.attributedTitle = [[NSAttributedString alloc]initWithString:@"Refreshing"];
     reF.attributedTitle = [[NSAttributedString alloc]initWithString:@"Refreshing"];
     
     
-     if ([self respondsToSelector:@selector(reload_data)])
-    [self performSelector:@selector(reload_data) withObject:nil afterDelay:1];
+    if ([self respondsToSelector:@selector(reload_data)])
+        [self performSelector:@selector(reload_data) withObject:nil afterDelay:1];
     //    DebugLog(@"refresh!!!!!!!!");
     //    DebugLog(@"refresh!!!!!!!!");
     
     
 }
 }
@@ -1713,7 +1713,7 @@
             cvc.contact_type = value;
             cvc.contact_type = value;
             cvc.is_subaction = @"true";
             cvc.is_subaction = @"true";
             cvc.subaction_tag =[NSString stringWithFormat:@"%ld",(long)sender.tag];
             cvc.subaction_tag =[NSString stringWithFormat:@"%ld",(long)sender.tag];
-
+            
             
             
             cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
             cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
                 
                 
@@ -1738,7 +1738,7 @@
             cvc.contact_type = value;
             cvc.contact_type = value;
             cvc.is_subaction = @"true";
             cvc.is_subaction = @"true";
             cvc.subaction_tag =[NSString stringWithFormat:@"%ld",(long)sender.tag];
             cvc.subaction_tag =[NSString stringWithFormat:@"%ld",(long)sender.tag];
-
+            
             cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
             cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
                 
                 
                 [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
                 [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
@@ -1760,7 +1760,7 @@
             ContactListViewController* cvc = [self.storyboard instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
             ContactListViewController* cvc = [self.storyboard instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
             cvc.is_subaction = @"true";
             cvc.is_subaction = @"true";
             cvc.subaction_tag =[NSString stringWithFormat:@"%ld",(long)sender.tag];
             cvc.subaction_tag =[NSString stringWithFormat:@"%ld",(long)sender.tag];
-cvc.showNavibar = true;
+            cvc.showNavibar = true;
             cvc.contact_type = value;
             cvc.contact_type = value;
             
             
             cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
             cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
@@ -1786,7 +1786,7 @@ cvc.showNavibar = true;
             cvc.contact_type = value;
             cvc.contact_type = value;
             cvc.is_subaction = @"true";
             cvc.is_subaction = @"true";
             cvc.subaction_tag =[NSString stringWithFormat:@"%ld",(long)sender.tag];
             cvc.subaction_tag =[NSString stringWithFormat:@"%ld",(long)sender.tag];
-
+            
             cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
             cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
                 
                 
                 [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
                 [self handle_action_return:value indexPath:indexPath action:ACTION_FILL_SECTION];
@@ -1808,7 +1808,7 @@ cvc.showNavibar = true;
             ContactListViewController* cvc = [self.storyboard instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
             ContactListViewController* cvc = [self.storyboard instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
             cvc.is_subaction = @"true";
             cvc.is_subaction = @"true";
             cvc.subaction_tag =[NSString stringWithFormat:@"%ld",(long)sender.tag];
             cvc.subaction_tag =[NSString stringWithFormat:@"%ld",(long)sender.tag];
-cvc.showNavibar = true;
+            cvc.showNavibar = true;
             cvc.contact_type = value;
             cvc.contact_type = value;
             
             
             cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
             cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
@@ -1832,7 +1832,7 @@ cvc.showNavibar = true;
             ContactListViewController* cvc = [self.storyboard instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
             ContactListViewController* cvc = [self.storyboard instantiateViewControllerWithIdentifier:@"ContactListViewController" ];
             cvc.is_subaction = @"true";
             cvc.is_subaction = @"true";
             cvc.subaction_tag =[NSString stringWithFormat:@"%ld",(long)sender.tag];
             cvc.subaction_tag =[NSString stringWithFormat:@"%ld",(long)sender.tag];
-cvc.showNavibar = true;
+            cvc.showNavibar = true;
             cvc.contact_type = value;
             cvc.contact_type = value;
             
             
             cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
             cvc.returnValue = ^(NSMutableDictionary* value,NSIndexPath* source){
@@ -2150,6 +2150,8 @@ cvc.showNavibar = true;
 //
 //
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
 {
+    
+    bool readonly = [[self.content_data_download valueForKey:@"readonly"]boolValue];
     //    int d=0;
     //    int d=0;
     //    if(indexPath.section==4)
     //    if(indexPath.section==4)
     //        d=0;
     //        d=0;
@@ -2184,7 +2186,7 @@ cvc.showNavibar = true;
         
         
         
         
         int disable = [[item_json valueForKey:@"disable"] intValue];
         int disable = [[item_json valueForKey:@"disable"] intValue];
-        if(disable==1)
+        if(disable==1||readonly)
         {
         {
             cell.textview.editable=NO;
             cell.textview.editable=NO;
             //            cell.textfield.backgroundColor = [UIColor lightGrayColor];
             //            cell.textfield.backgroundColor = [UIColor lightGrayColor];
@@ -2203,12 +2205,12 @@ cvc.showNavibar = true;
         {
         {
             [title appendString:@"*"];
             [title appendString:@"*"];
         }
         }
-    
+        
         cell.label_name.text=title;
         cell.label_name.text=title;
         cell.textview.text = value;
         cell.textview.text = value;
         cell.textview.delegate = self;
         cell.textview.delegate = self;
         cell.accessoryType = UITableViewCellAccessoryNone;
         cell.accessoryType = UITableViewCellAccessoryNone;
-
+        
         
         
         
         
         
         
@@ -2245,7 +2247,7 @@ cvc.showNavibar = true;
             NSString* title = [item_json valueForKey:@"aname"] ;
             NSString* title = [item_json valueForKey:@"aname"] ;
             NSString* value =[item_json valueForKey:@"value"];
             NSString* value =[item_json valueForKey:@"value"];
             int disable = [[item_json valueForKey:@"disable"] intValue];
             int disable = [[item_json valueForKey:@"disable"] intValue];
-            if(disable==1)
+            if(disable==1||readonly)
             {
             {
                 cell.editable=false;
                 cell.editable=false;
             }
             }
@@ -2254,60 +2256,179 @@ cvc.showNavibar = true;
             cell.labelTitle.text = title;
             cell.labelTitle.text = title;
             cell.labelDescription.text = value;
             cell.labelDescription.text = value;
             
             
-            cell.imgChanged = ^(NSString* url_down,NSString* url_up)
+            cell.imgChanged = ^(NSString* url_down,NSString* url_up,int index )
             {
             {
                 //            NSMutableDictionary* editjson = [item_json mutableCopy];
                 //            NSMutableDictionary* editjson = [item_json mutableCopy];
                 //            editjson[@"img_url"]=url;
                 //            editjson[@"img_url"]=url;
-                [self imgIsChanged:url_down url_up:url_up indexPath:indexPath];
+                [self imgIsChanged:url_down url_up:url_up indexPath:indexPath index:index];
                 
                 
                 
                 
             };
             };
             
             
-            NSString* img_url = [item_json valueForKey:@"img_url"];
+            {
+                NSString* img_url0 = [item_json valueForKey:@"img_url_0"];
+                if(img_url0.length>0)
+                {
+                    cell.imgs[0]=img_url0;
+                    NSString* file_name=[img_url0 lastPathComponent];
+                    NSData* img_data=[iSalesDB load_cached_img:file_name];
+                    if(img_data!=nil)
+                    {
+                        
+                        UIImage * img =[UIImage imageWithData:img_data];
+                        
+                        cell.touchImageView0.image=img;
+                        
+                        cell.img_validate = true;
+                        // [cell.touchImageView setImage:img forState:UIControlStateNormal];
+                    }
+                    else
+                    {
+                        
+                        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+                            
+                            NSData*  downloadimg_data = [NSData dataWithContentsOfURL:[NSURL URLWithString:img_url0]];
+                            
+                            dispatch_async(dispatch_get_main_queue(), ^{
+                                
+                                
+                                
+                                if(downloadimg_data!=nil)
+                                {
+                                    [iSalesDB cache_img:downloadimg_data :file_name ];
+                                    
+                                    UIImage * img =[UIImage imageWithData:downloadimg_data];
+                                    cell.touchImageView0.image=img;
+                                    cell.img_validate = true;
+                                }
+                                else
+                                {
+                                    cell.touchImageView0.image=[UIImage imageNamed:@"notfound_s"];
+                                    
+                                    cell.img_validate = false;
+                                }
+                                
+                            });
+                        });
+                        
+                        
+                    }
+                }
+                else
+                {
+                    cell.touchImageView0.image=nil;
+                    cell.imgs[0]=@"";
+                }
+            }
             
             
-            NSString* file_name=[img_url lastPathComponent];
-            NSData* img_data=[iSalesDB load_cached_img:file_name];
-            if(img_data!=nil)
             {
             {
-                
-                UIImage * img =[UIImage imageWithData:img_data];
-                
-                [cell.buttonImg setBackgroundImage:img forState:UIControlStateNormal];
-                
-                cell.img_validate = true;
-                // [cell.buttonImg setImage:img forState:UIControlStateNormal];
+                NSString* img_url1 = [item_json valueForKey:@"img_url_1"];
+                if(img_url1.length>0)
+                {
+                    cell.imgs[1]=img_url1;
+                    NSString* file_name=[img_url1 lastPathComponent];
+                    NSData* img_data=[iSalesDB load_cached_img:file_name];
+                    if(img_data!=nil)
+                    {
+                        
+                        UIImage * img =[UIImage imageWithData:img_data];
+                        
+                        
+                        cell.touchImageView1.image=img;
+                        
+                        cell.img_validate = true;
+                        // [cell.touchImageView setImage:img forState:UIControlStateNormal];
+                    }
+                    else
+                    {
+                        
+                        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+                            
+                            NSData*  downloadimg_data = [NSData dataWithContentsOfURL:[NSURL URLWithString:img_url1]];
+                            
+                            dispatch_async(dispatch_get_main_queue(), ^{
+                                
+                                
+                                
+                                if(downloadimg_data!=nil)
+                                {
+                                    [iSalesDB cache_img:downloadimg_data :file_name ];
+                                    
+                                    UIImage * img =[UIImage imageWithData:downloadimg_data];
+                                    cell.touchImageView1.image=img;
+                                    cell.img_validate = true;
+                                }
+                                else
+                                {
+                                    cell.touchImageView1.image=[UIImage imageNamed:@"notfound_s"] ;
+                                    cell.img_validate = false;
+                                }
+                                
+                            });
+                        });
+                        
+                        
+                    }
+                }
+                else
+                {
+                    cell.touchImageView1.image=nil;
+                    cell.imgs[1]=@"";
+                }
             }
             }
-            else
             {
             {
-                
-                dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
-                    
-                    NSData*  downloadimg_data = [NSData dataWithContentsOfURL:[NSURL URLWithString:img_url]];
-                    
-                    dispatch_async(dispatch_get_main_queue(), ^{
+                NSString* img_url2 = [item_json valueForKey:@"img_url_2"];
+                if(img_url2.length>0)
+                {
+                    cell.imgs[2]=img_url2;
+                    NSString* file_name=[img_url2 lastPathComponent];
+                    NSData* img_data=[iSalesDB load_cached_img:file_name];
+                    if(img_data!=nil)
+                    {
                         
                         
+                        UIImage * img =[UIImage imageWithData:img_data];
                         
                         
+                        cell.touchImageView2.image=img;
                         
                         
-                        if(downloadimg_data!=nil)
-                        {
-                            [iSalesDB cache_img:downloadimg_data :file_name ];
+                        cell.img_validate = true;
+                        // [cell.touchImageView setImage:img forState:UIControlStateNormal];
+                    }
+                    else
+                    {
+                        
+                        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                             
                             
-                            UIImage * img =[UIImage imageWithData:downloadimg_data];
-                            [cell.buttonImg setBackgroundImage:img forState:UIControlStateNormal];
-                            cell.img_validate = true;
-                        }
-                        else
-                        {
-                            [cell.buttonImg setBackgroundImage:[UIImage imageNamed:@"notfound_s"] forState:UIControlStateNormal];
-                            cell.img_validate = false;
-                        }
+                            NSData*  downloadimg_data = [NSData dataWithContentsOfURL:[NSURL URLWithString:img_url2]];
+                            
+                            dispatch_async(dispatch_get_main_queue(), ^{
+                                
+                                
+                                
+                                if(downloadimg_data!=nil)
+                                {
+                                    [iSalesDB cache_img:downloadimg_data :file_name ];
+                                    
+                                    UIImage * img =[UIImage imageWithData:downloadimg_data];
+                                    cell.touchImageView2.image=img;
+                                    cell.img_validate = true;
+                                }
+                                else
+                                {
+                                    cell.touchImageView2.image=[UIImage imageNamed:@"notfound_s"] ;
+                                    cell.img_validate = false;
+                                }
+                                
+                            });
+                        });
                         
                         
-                    });
-                });
-                
-                
+                        
+                    }}
+                else
+                {
+                    cell.touchImageView2.image=nil;
+                    cell.imgs[2]=@"";
+                }
             }
             }
-  
             
             
             cell.backgroundColor = UIColorFromRGB(0xF2EEEA);
             cell.backgroundColor = UIColorFromRGB(0xF2EEEA);
             return cell;
             return cell;
@@ -2328,7 +2449,7 @@ cvc.showNavibar = true;
                     cell.textfield.textAlignment =NSTextAlignmentLeft;
                     cell.textfield.textAlignment =NSTextAlignmentLeft;
                 
                 
                 int disable = [[item_json valueForKey:@"disable"] intValue];
                 int disable = [[item_json valueForKey:@"disable"] intValue];
-                if(disable==1)
+                if(disable==1||readonly)
                 {
                 {
                     cell.textfield.enabled=NO;
                     cell.textfield.enabled=NO;
                     //            cell.textfield.backgroundColor = [UIColor lightGrayColor];
                     //            cell.textfield.backgroundColor = [UIColor lightGrayColor];
@@ -2350,13 +2471,13 @@ cvc.showNavibar = true;
                 if([keyboard isEqualToString:@"number"])
                 if([keyboard isEqualToString:@"number"])
                 {
                 {
                     
                     
-                   // float f = [value floatValue];
+                    // float f = [value floatValue];
                     
                     
                     // value = [NSString stringWithFormat:@"%.2f",f];
                     // value = [NSString stringWithFormat:@"%.2f",f];
                     
                     
                     
                     
                     cell.textfield.keyboardType=UIKeyboardTypeNumbersAndPunctuation;
                     cell.textfield.keyboardType=UIKeyboardTypeNumbersAndPunctuation;
-
+                    
                     
                     
                     
                     
                 }
                 }
@@ -2376,7 +2497,7 @@ cvc.showNavibar = true;
                 cell.textfield.text = value;
                 cell.textfield.text = value;
                 cell.textfield.delegate = self;
                 cell.textfield.delegate = self;
                 cell.accessoryType = UITableViewCellAccessoryNone;
                 cell.accessoryType = UITableViewCellAccessoryNone;
-       
+                
                 
                 
                 
                 
                 
                 
@@ -2440,7 +2561,7 @@ cvc.showNavibar = true;
                     
                     
                     cell.labelTitle.text=title;
                     cell.labelTitle.text=title;
                     cell.labelValue.text = value;
                     cell.labelValue.text = value;
-        
+                    
                     
                     
                     cell.backgroundColor = UIColorFromRGB(0xF2EEEA);
                     cell.backgroundColor = UIColorFromRGB(0xF2EEEA);
                     return cell;
                     return cell;
@@ -2592,7 +2713,7 @@ cvc.showNavibar = true;
             NSDictionary* cadedate_json =[item_json objectForKey:@"cadedate"];
             NSDictionary* cadedate_json =[item_json objectForKey:@"cadedate"];
             
             
             int disable = [[item_json valueForKey:@"disable"] intValue];
             int disable = [[item_json valueForKey:@"disable"] intValue];
-            if(disable==1)
+            if(disable==1||readonly)
             {
             {
                 cell.labelValue.textColor= [UIColor lightGrayColor];
                 cell.labelValue.textColor= [UIColor lightGrayColor];
                 
                 
@@ -3066,6 +3187,8 @@ cvc.showNavibar = true;
 //
 //
 -(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
 -(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
 {
+    
+    bool readonly = [[self.content_data_download valueForKey:@"readonly"]boolValue];
     NSLog(@"tableView willSelectRowAtIndexPath");
     NSLog(@"tableView willSelectRowAtIndexPath");
     NSDictionary* item_json =((NSMutableArray*)self.content_data_control[indexPath.section])[indexPath.row];
     NSDictionary* item_json =((NSMutableArray*)self.content_data_control[indexPath.section])[indexPath.row];
     AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
     AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
@@ -3073,7 +3196,7 @@ cvc.showNavibar = true;
     if([control isEqualToString:@"enum"])//||[control isEqualToString:@"ui"])
     if([control isEqualToString:@"enum"])//||[control isEqualToString:@"ui"])
     {
     {
         int disable = [[item_json valueForKey:@"disable"] intValue];
         int disable = [[item_json valueForKey:@"disable"] intValue];
-        if(disable==1)
+        if(disable==1||readonly)
             return nil;
             return nil;
         //    NSDictionary * item_json = [self.content_data objectForKey:[NSString stringWithFormat:@"item_%d",indexPath.row]];
         //    NSDictionary * item_json = [self.content_data objectForKey:[NSString stringWithFormat:@"item_%d",indexPath.row]];
         NSDictionary* cadedate_json = [item_json objectForKey:@"cadedate"];
         NSDictionary* cadedate_json = [item_json objectForKey:@"cadedate"];
@@ -3746,7 +3869,7 @@ cvc.showNavibar = true;
     
     
     
     
     
     
-  }
+}
 - (void)textViewDidEndEditing:(UITextView *)textView
 - (void)textViewDidEndEditing:(UITextView *)textView
 {
 {
     UITableViewCell *cell = (UITableViewCell *) textView.superview.superview;
     UITableViewCell *cell = (UITableViewCell *) textView.superview.superview;
@@ -3936,7 +4059,7 @@ cvc.showNavibar = true;
 - (void)textFieldDidEndEditing:(UITextField *)textField
 - (void)textFieldDidEndEditing:(UITextField *)textField
 {
 {
     
     
-        NSLog(@"textFieldDidEndEditing");
+    NSLog(@"textFieldDidEndEditing");
     UITableViewCell *cell = (UITableViewCell *) textField.superview.superview;
     UITableViewCell *cell = (UITableViewCell *) textField.superview.superview;
     NSIndexPath *   indexPath = self.lastedit_from;
     NSIndexPath *   indexPath = self.lastedit_from;
     
     
@@ -4059,7 +4182,7 @@ cvc.showNavibar = true;
 #pragma mark- img changed
 #pragma mark- img changed
 
 
 // image 改变时执行
 // image 改变时执行
-- (void) imgIsChanged:(NSString *)url_down url_up:(NSString *)url_up indexPath: (NSIndexPath *) indexPath{
+- (void) imgIsChanged:(NSString *)url_down url_up:(NSString *)url_up indexPath: (NSIndexPath *) indexPath index:(int)index{
     // NSLog(@"Sender is = %@", url);
     // NSLog(@"Sender is = %@", url);
     
     
     
     
@@ -4075,9 +4198,14 @@ cvc.showNavibar = true;
     NSString* refresh_trigger = [item_json valueForKey:@"name"];
     NSString* refresh_trigger = [item_json valueForKey:@"name"];
     NSString* subid=[item_json valueForKey:@"subid"];
     NSString* subid=[item_json valueForKey:@"subid"];
     
     
-    item_json[@"img_url"]=url_down;
-    item_json[@"avalue"]=url_up;
     
     
+//    NSArray* imgs=[RAUtils string2arr:url_up separator:@","];
+    
+    
+//    imgs[index];
+    item_json[ [NSString stringWithFormat:@"img_url_%d",index]]=url_down;
+    item_json[@"avalue"]=url_up;
+    [item_json setValue:@"true" forKey:@"dirty"];
     if(subid==nil)
     if(subid==nil)
     {
     {
         section_json = [[self.content_data_download objectForKey:[NSString stringWithFormat:@"section_%ld",(long)indexPath.section ]] mutableCopy];
         section_json = [[self.content_data_download objectForKey:[NSString stringWithFormat:@"section_%ld",(long)indexPath.section ]] mutableCopy];
@@ -4115,8 +4243,8 @@ cvc.showNavibar = true;
     
     
     self.content_data_control = [self translate_json:self.content_data_download changed: self.changed_data];
     self.content_data_control = [self translate_json:self.content_data_download changed: self.changed_data];
     
     
-  //  NSRange range = NSMakeRange(indexPath.section, 1);
- //   NSIndexSet *sectionToReload = [NSIndexSet indexSetWithIndexesInRange:range];
+    //  NSRange range = NSMakeRange(indexPath.section, 1);
+    //   NSIndexSet *sectionToReload = [NSIndexSet indexSetWithIndexesInRange:range];
     //  [self.editorTable reloadSections:sectionToReload withRowAnimation:UITableViewRowAnimationAutomatic];
     //  [self.editorTable reloadSections:sectionToReload withRowAnimation:UITableViewRowAnimationAutomatic];
     
     
     
     
@@ -4437,9 +4565,9 @@ cvc.showNavibar = true;
     
     
     self.editorTable.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-self.keyboard_h);
     self.editorTable.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-self.keyboard_h);
     
     
-//    CGSize tablecontent =self.editorTable.contentSize;
-//    tablecontent.height=tablecontent.height+self.keyboard_h;
-//    self.editorTable.contentSize=tablecontent;
+    //    CGSize tablecontent =self.editorTable.contentSize;
+    //    tablecontent.height=tablecontent.height+self.keyboard_h;
+    //    self.editorTable.contentSize=tablecontent;
     //    }
     //    }
     // Animate the resize of the text view's frame in sync with the keyboard's appearance.
     // Animate the resize of the text view's frame in sync with the keyboard's appearance.
     //  [self moveInputBarWithKeyboardHeight:keyboardRect.size.height withDuration:animationDuration];
     //  [self moveInputBarWithKeyboardHeight:keyboardRect.size.height withDuration:animationDuration];
@@ -4459,7 +4587,7 @@ cvc.showNavibar = true;
     [animationDurationValue getValue:&animationDuration];
     [animationDurationValue getValue:&animationDuration];
     CGSize tablecontent =self.editorTable.contentSize;
     CGSize tablecontent =self.editorTable.contentSize;
     tablecontent.height=tablecontent.height-self.keyboard_h;
     tablecontent.height=tablecontent.height-self.keyboard_h;
-//    self.editorTable.contentSize=tablecontent;
+    //    self.editorTable.contentSize=tablecontent;
     
     
     self.editorTable.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
     self.editorTable.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
     
     
@@ -4467,25 +4595,25 @@ cvc.showNavibar = true;
     NSLog(@"before refresh %@",NSStringFromCGSize(self.editorTable.contentSize));
     NSLog(@"before refresh %@",NSStringFromCGSize(self.editorTable.contentSize));
     
     
     
     
-//    if(self.resize)
-//    {
-//        NSTimeInterval animationDuration = 0.30f;
-//        CGRect frame = self.view.frame;
-//        //    if(prewTag == textField.tag) //当结束编辑的View的TAG是上次的就移动
-//        //    {   //还原界面
-//        //        moveY =  prewMoveY;
-//        frame.origin.y +=self.ioffset;
-//        frame.size. height -=self.ioffset;
-//        self.view.frame = frame;
-//        //    }
-//        //self.view移回原位置
-//        [UIView beginAnimations:@"ResizeView" context:nil];
-//        [UIView setAnimationDuration:animationDuration];
-//        self.view.frame = frame;
-//        [UIView commitAnimations];
-//        //[textField resignFirstResponder];
-//        self.ioffset=0;
-//    }
+    //    if(self.resize)
+    //    {
+    //        NSTimeInterval animationDuration = 0.30f;
+    //        CGRect frame = self.view.frame;
+    //        //    if(prewTag == textField.tag) //当结束编辑的View的TAG是上次的就移动
+    //        //    {   //还原界面
+    //        //        moveY =  prewMoveY;
+    //        frame.origin.y +=self.ioffset;
+    //        frame.size. height -=self.ioffset;
+    //        self.view.frame = frame;
+    //        //    }
+    //        //self.view移回原位置
+    //        [UIView beginAnimations:@"ResizeView" context:nil];
+    //        [UIView setAnimationDuration:animationDuration];
+    //        self.view.frame = frame;
+    //        [UIView commitAnimations];
+    //        //[textField resignFirstResponder];
+    //        self.ioffset=0;
+    //    }
     
     
     
     
     //  [self moveInputBarWithKeyboardHeight:0.0 withDuration:animationDuration];
     //  [self moveInputBarWithKeyboardHeight:0.0 withDuration:animationDuration];

+ 17 - 0
RedAnt ERP Mobile/common/Functions/cart/CartGeneralNotesViewController.h

@@ -0,0 +1,17 @@
+//
+//  CartGeneralNotesViewController.h
+//  iSales-NPD
+//
+//  Created by Ray on 2/16/16.
+//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface CartGeneralNotesViewController : UIViewController
+@property (strong, nonatomic) IBOutlet UITextView *tv_notes;
+//@property (strong,nonatomic) NSString* cart_id;
+
+@property (nonatomic , copy) void (^onSetValue)(NSString* notes);
+@property (strong,nonatomic) NSString* notes;
+@end

+ 90 - 0
RedAnt ERP Mobile/common/Functions/cart/CartGeneralNotesViewController.m

@@ -0,0 +1,90 @@
+//
+//  CartGeneralNotesViewController.m
+//  iSales-NPD
+//
+//  Created by Ray on 2/16/16.
+//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
+//
+
+#import "CartGeneralNotesViewController.h"
+#import "iSalesNetwork.h"
+
+@interface CartGeneralNotesViewController ()
+
+@end
+
+@implementation CartGeneralNotesViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+        self.tv_notes.text = self.notes;
+    // Do any additional setup after loading the view.
+}
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+- (IBAction)onCloseClicked:(id)sender {
+    [self dismissViewControllerAnimated:NO
+                             completion:^{
+                                 
+                                 
+                             }];
+}
+- (IBAction)onSaveClicked:(id)sender {
+    
+    
+    
+    
+    // [self.tv_notes endEditing:true];
+    self.notes = self.tv_notes.text;
+    
+    UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Update General Notes"];
+    
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+        
+        NSDictionary* cart_json = nil;
+        
+        UIApplication * app = [UIApplication sharedApplication];
+        AppDelegate *appDelegate = (AppDelegate *)[app delegate];
+        
+        cart_json = [iSalesNetwork cart_setGeneralNote:appDelegate.order_code notes:self.tv_notes.text];
+        
+        dispatch_async(dispatch_get_main_queue(), ^{
+            
+            
+            [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
+            if([[cart_json valueForKey:@"result"] intValue]==2)
+            {
+                [self dismissViewControllerAnimated:NO
+                                         completion:^{
+                                             
+                                             if(self.onSetValue)
+                                                 self.onSetValue(self.notes);
+                                             
+                                         }];
+            }
+            else
+            {
+                [RAUtils message_alert:[cart_json valueForKey:@"err_msg"] title:@"Update General Notes" controller:self] ;
+            }
+            
+            
+            
+            
+        });
+    });
+}
+
+/*
+ #pragma mark - Navigation
+ 
+ // In a storyboard-based application, you will often want to do a little preparation before navigation
+ - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+ // Get the new view controller using [segue destinationViewController].
+ // Pass the selected object to the new view controller.
+ }
+ */
+
+@end

+ 7 - 0
RedAnt ERP Mobile/common/Functions/cart/CartViewController.h

@@ -27,6 +27,10 @@
 @property double total_cuft;
 @property double total_cuft;
 @property double total_weight;
 @property double total_weight;
 @property int total_carton;
 @property int total_carton;
+@property int total_item;
+@property int total_QTY;
+
+@property (strong,nonatomic) NSString* notes;
 
 
 @property (strong, nonatomic) IBOutlet UILabel *labelTotal;
 @property (strong, nonatomic) IBOutlet UILabel *labelTotal;
 
 
@@ -52,5 +56,8 @@
 @property (strong, nonatomic) IBOutlet UILabel *label_cuft;
 @property (strong, nonatomic) IBOutlet UILabel *label_cuft;
 @property (strong, nonatomic) IBOutlet UILabel *label_weight;
 @property (strong, nonatomic) IBOutlet UILabel *label_weight;
 @property (strong, nonatomic) IBOutlet UILabel *label_carton;
 @property (strong, nonatomic) IBOutlet UILabel *label_carton;
+@property (strong, nonatomic) IBOutlet UILabel *label_qty;
+@property (strong, nonatomic) IBOutlet UILabel *label_items;
+@property (strong, nonatomic) IBOutlet UILabel *label_notes;
 
 
 @end
 @end

+ 198 - 60
RedAnt ERP Mobile/common/Functions/cart/CartViewController.m

@@ -17,6 +17,9 @@
 #import "EditModelPriceViewController.h"
 #import "EditModelPriceViewController.h"
 #import "MainViewController.h"
 #import "MainViewController.h"
 #import "LoginViewController.h"
 #import "LoginViewController.h"
+#import "ItemNotesViewController.h"
+
+#import "CartGeneralNotesViewController.h"
 
 
 
 
 #define ALERT_FREE 1024
 #define ALERT_FREE 1024
@@ -32,7 +35,7 @@
 
 
 -(void) logout
 -(void) logout
 {
 {
-
+    
     [self.content_arr removeAllObjects];
     [self.content_arr removeAllObjects];
 }
 }
 
 
@@ -41,7 +44,7 @@
     
     
     
     
     
     
-
+    
     NSMutableArray* arr_ids = [[NSMutableArray alloc] init];
     NSMutableArray* arr_ids = [[NSMutableArray alloc] init];
     
     
     
     
@@ -325,12 +328,12 @@
 
 
 - (IBAction)onEditClick:(id)sender {
 - (IBAction)onEditClick:(id)sender {
     
     
-//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-//    
-//    [appDelegate test_onDecodedDataResult:@"371252"];
-//    
-//    
-//    return;
+    //    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    //
+    //    [appDelegate test_onDecodedDataResult:@"371252"];
+    //
+    //
+    //    return;
     
     
     
     
     [self begin_edit];
     [self begin_edit];
@@ -478,10 +481,10 @@
 }
 }
 -(void) reload_data
 -(void) reload_data
 {
 {
-        dispatch_async(dispatch_get_main_queue(), ^{
-    if(self.isrefreshing)
-        return;
-
+    dispatch_async(dispatch_get_main_queue(), ^{
+        if(self.isrefreshing)
+            return;
+        
         self.itemListTable.hidden = true;
         self.itemListTable.hidden = true;
         self.label_net_err.hidden=true;
         self.label_net_err.hidden=true;
         self.isrefreshing=true;
         self.isrefreshing=true;
@@ -508,6 +511,7 @@
                 
                 
                 //            self.content_data = [cart_json mutableCopy];
                 //            self.content_data = [cart_json mutableCopy];
                 self.freejson = [cart_json objectForKey:@"freeGiveaway"];
                 self.freejson = [cart_json objectForKey:@"freeGiveaway"];
+                self.notes = [cart_json valueForKey:@"general_note"];
                 self.content_arr = [RAUtils dictionary2array:cart_json count_fields:@"count" item_mark:@"item_" items_mark:nil];
                 self.content_arr = [RAUtils dictionary2array:cart_json count_fields:@"count" item_mark:@"item_" items_mark:nil];
                 [self.itemListTable reloadData];
                 [self.itemListTable reloadData];
                 
                 
@@ -696,23 +700,23 @@
     
     
     
     
     /*   FREE GIVE AWAY
     /*   FREE GIVE AWAY
-    int free_count = [[self.freejson valueForKey:@"count"]intValue];
-    for(int ic=free_count-1;ic>=0;ic--)
-    {
-        float compare_price = [[self.freejson valueForKey:[NSString stringWithFormat:@"item_%d",ic]] floatValue];
-        if(self.total>=compare_price && !have_free&&appDelegate.can_set_cart_price)
-        {
-            
-            UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Free give away available.", nil) message:[NSString stringWithFormat:@"Order total price more than %.2f, do you want to add free give away item before place order?", compare_price] delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil];
-            alert.tag = ALERT_FREE;
-            [alert show];
-            return;
-            
-        }
-    }
-    
-    */
+     int free_count = [[self.freejson valueForKey:@"count"]intValue];
+     for(int ic=free_count-1;ic>=0;ic--)
+     {
+     float compare_price = [[self.freejson valueForKey:[NSString stringWithFormat:@"item_%d",ic]] floatValue];
+     if(self.total>=compare_price && !have_free&&appDelegate.can_set_cart_price)
+     {
      
      
+     UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Free give away available.", nil) message:[NSString stringWithFormat:@"Order total price more than %.2f, do you want to add free give away item before place order?", compare_price] delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil];
+     alert.tag = ALERT_FREE;
+     [alert show];
+     return;
+     
+     }
+     }
+     
+     */
+    
     NSMutableDictionary * params= [[NSMutableDictionary alloc] init];
     NSMutableDictionary * params= [[NSMutableDictionary alloc] init];
     //   NSString * string = [checked componentsJoinedByString:@","];
     //   NSString * string = [checked componentsJoinedByString:@","];
     //  [params setValue:string forKey:@"cart2Checkbox"];
     //  [params setValue:string forKey:@"cart2Checkbox"];
@@ -862,7 +866,9 @@
             double weight=count*[[item_json valueForKey:@"weight"] doubleValue];
             double weight=count*[[item_json valueForKey:@"weight"] doubleValue];
             int carton=count*[[item_json valueForKey:@"carton"] intValue];
             int carton=count*[[item_json valueForKey:@"carton"] intValue];
             
             
+            int item_count=1;
             
             
+            int item_qty=1;
             NSDictionary * bundle_item =[item_json objectForKey:@"combine"];
             NSDictionary * bundle_item =[item_json objectForKey:@"combine"];
             
             
             double dprice=0;
             double dprice=0;
@@ -877,6 +883,8 @@
                     NSDictionary * bitem = [bundle_item objectForKey:[NSString stringWithFormat:@"item_%d",bc]];
                     NSDictionary * bitem = [bundle_item objectForKey:[NSString stringWithFormat:@"item_%d",bc]];
                     int modulus= [[bitem valueForKey:@"modulus"] intValue];
                     int modulus= [[bitem valueForKey:@"modulus"] intValue];
                     //    citem+= modulus;
                     //    citem+= modulus;
+                    item_count+=1;
+                    item_qty+=modulus;
                     double uprice= [[bitem valueForKey:@"unit_price"]doubleValue];
                     double uprice= [[bitem valueForKey:@"unit_price"]doubleValue];
                     dprice+= uprice*modulus*count;
                     dprice+= uprice*modulus*count;
                     
                     
@@ -888,6 +896,9 @@
             self.total_cuft+=cuft;
             self.total_cuft+=cuft;
             self.total_carton+=carton;
             self.total_carton+=carton;
             self.total_weight+=weight;
             self.total_weight+=weight;
+            self.total_item+=item_count;
+            self.total_QTY+=(item_qty)*count;
+            
         }
         }
         
         
         
         
@@ -899,6 +910,11 @@
     NSString* subcarton = [NSString stringWithFormat:@"%d",self.total_carton];
     NSString* subcarton = [NSString stringWithFormat:@"%d",self.total_carton];
     NSString* subweight = [NSString stringWithFormat:@"%.2f lbs",self.total_weight];
     NSString* subweight = [NSString stringWithFormat:@"%.2f lbs",self.total_weight];
     
     
+    
+    NSString* subitems = [NSString stringWithFormat:@"%d",self.total_item];
+    
+    NSString* subqty = [NSString stringWithFormat:@"%d",self.total_QTY];
+    
     if(appDelegate.can_see_price&&appDelegate.price_hidden==false)
     if(appDelegate.can_see_price&&appDelegate.price_hidden==false)
     {
     {
         
         
@@ -913,6 +929,56 @@
     self.label_cuft.text=subcuft;
     self.label_cuft.text=subcuft;
     self.label_carton.text=subcarton;
     self.label_carton.text=subcarton;
     self.label_weight.text=subweight;
     self.label_weight.text=subweight;
+    self.label_items.text = subitems;
+    self.label_qty.text = subqty;
+    self.label_notes.text = self.notes;
+    
+}
+- (IBAction)onEditGeneralNotes:(id)sender {
+    
+    UIViewController* parentvc=self;
+    
+    
+    
+    
+    CartGeneralNotesViewController * vc =[ parentvc.storyboard instantiateViewControllerWithIdentifier:@"CartGeneralNotesViewController"];
+    
+    
+//    NSMutableDictionary * item_json = [self.content_arr[indexPath.row ] mutableCopy];// [[self.content_data objectForKey:[NSString stringWithFormat:@"item_%ld",(long)indexPath.row]] mutableCopy];
+    
+    
+    
+    
+    vc.notes=self.notes;
+   
+    
+    //    vc.delegate = parentvc.self;
+    //    loginvc.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种
+            vc.onSetValue = ^(NSString* notes){
+                self.notes = notes;
+                
+                [self refresh_total];
+            };
+    //
+    
+    UINavigationController* navi = [[UINavigationController alloc] initWithRootViewController:vc] ;
+    
+    
+    
+    
+    
+    //    [self hackModalSheetSize:CGSizeMake(450, 200) ofVC:navi];
+    
+    navi.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;//有三种状态,自己看看是哪种
+    [parentvc presentViewController:navi animated:YES completion:^{
+        
+        //        navi.view.superview.bounds = CGRectMake(0, 0, 480, 320);
+        
+        NSLog(@"EditModelPriceViewController present.........");
+        
+        //   self.btop = false;
+        //  <#code#>
+    }];
     
     
 }
 }
 - (IBAction)onSelectAll:(UIButton *)sender {
 - (IBAction)onSelectAll:(UIButton *)sender {
@@ -1361,6 +1427,11 @@
         
         
         return;
         return;
     }
     }
+    
+    // no checkmark support anymore for cart
+    
+    return;
+    
     ModelItemCell* cell = (ModelItemCell*)[tableView cellForRowAtIndexPath:indexPath];
     ModelItemCell* cell = (ModelItemCell*)[tableView cellForRowAtIndexPath:indexPath];
     
     
     
     
@@ -1615,44 +1686,108 @@
     
     
     
     
     
     
-    UITableViewRowAction *freeRowAction = nil;
+    //    UITableViewRowAction *freeRowAction = nil;
+    //
+    //
+    //    NSDictionary * item_json = [self.content_arr[indexPath.row] mutableCopy];//[self.content_data objectForKey:[NSString stringWithFormat:@"item_%ld",(long)indexPath.row]];
+    //
+    //    bool isfree = [[item_json valueForKey:@"is_free"]boolValue];
+    //
+    //    if(!isfree)
+    //    {
+    //
+    //        freeRowAction=[UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"Set Free" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
+    //
+    //            NSLog(@"free click");
+    //
+    //
+    //
+    //            UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Free give away confirm", nil) message:NSLocalizedString(@"Are you sure make this model free?", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil];
+    //            alert.tag = ALERT_SET_FREE;
+    //            // alert.
+    //            [alert show];
+    //        }];
+    //    }
+    //    else
+    //    {
+    //
+    //        freeRowAction=[UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"Not Free" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
+    //
+    //            UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Restore free model confirm", nil) message:NSLocalizedString(@"Are you sure restore free model?", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil];
+    //            alert.tag = ALERT_RESTORE_FREE;
+    //            // alert.
+    //            [alert show];
+    //        }];
+    //    }
+    //
+    //
+    //
+    //    freeRowAction.backgroundColor = [UIColor lightGrayColor];
+    
+    UITableViewRowAction *noteRowAction = nil;
+    
+    
+   // NSDictionary * item_json = [self.content_arr[indexPath.row] mutableCopy];//[self.content_data objectForKey:[NSString stringWithFormat:@"item_%ld",(long)indexPath.row]];
     
     
     
     
-    NSDictionary * item_json = [self.content_arr[indexPath.row] mutableCopy];//[self.content_data objectForKey:[NSString stringWithFormat:@"item_%ld",(long)indexPath.row]];
     
     
-    bool isfree = [[item_json valueForKey:@"is_free"]boolValue];
     
     
-    if(!isfree)
-    {
+    noteRowAction=[UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"Edit note" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
         
         
-        freeRowAction=[UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"Set Free" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
-            
-            NSLog(@"free click");
+        NSLog(@"item note click");
+        
+        
+        UIViewController* parentvc=self;
+        
+        
+        
+        
+        ItemNotesViewController * vc =[ parentvc.storyboard instantiateViewControllerWithIdentifier:@"ItemNotesViewController"];
+        
+        
+        NSMutableDictionary * item_json = [self.content_arr[indexPath.row ] mutableCopy];// [[self.content_data objectForKey:[NSString stringWithFormat:@"item_%ld",(long)indexPath.row]] mutableCopy];
+        
+        
+        
+        
+        vc.notes=[item_json valueForKey:@"notes"];
+        vc.cart_id = [NSString stringWithFormat:@"%d",[[item_json valueForKey:@"cart_item_id"] intValue]];
+        //    vc.delegate = parentvc.self;
+        //    loginvc.modalPresentationStyle = UIModalPresentationFormSheet;//有三种状态,自己看看是哪种
+//        vc.onSetValue = ^(){
+//            [self reload_data];//[main_vc checklogin:true];
+//        };
+//        
+        
+        UINavigationController* navi = [[UINavigationController alloc] initWithRootViewController:vc] ;
+        
+        
+        
+        
+        
+        //    [self hackModalSheetSize:CGSizeMake(450, 200) ofVC:navi];
+        
+        navi.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;//有三种状态,自己看看是哪种
+        [parentvc presentViewController:navi animated:YES completion:^{
             
             
+            //        navi.view.superview.bounds = CGRectMake(0, 0, 480, 320);
             
             
+            NSLog(@"EditModelPriceViewController present.........");
             
             
-            UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Free give away confirm", nil) message:NSLocalizedString(@"Are you sure make this model free?", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil];
-            alert.tag = ALERT_SET_FREE;
-            // alert.
-            [alert show];
+            //   self.btop = false;
+            //  <#code#>
         }];
         }];
-    }
-    else
-    {
         
         
-        freeRowAction=[UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"Not Free" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
-            
-            UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Restore free model confirm", nil) message:NSLocalizedString(@"Are you sure restore free model?", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"NO", nil) otherButtonTitles:NSLocalizedString(@"YES", nil), nil];
-            alert.tag = ALERT_RESTORE_FREE;
-            // alert.
-            [alert show];
-        }];
-    }
-    
+        [tableView reloadRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationMiddle];
+        
+
+
+        
+    }];
     
     
     
     
-    freeRowAction.backgroundColor = [UIColor lightGrayColor];
     
     
+    noteRowAction.backgroundColor = [UIColor lightGrayColor];
     
     
     
     
     
     
@@ -1661,16 +1796,19 @@
     {
     {
         NSMutableArray* arr=[@[] mutableCopy];
         NSMutableArray* arr=[@[] mutableCopy];
         
         
+        [arr addObject:noteRowAction];
+        
         [arr addObject:deleteRowAction];
         [arr addObject:deleteRowAction];
         [arr addObject:addWatchAction];
         [arr addObject:addWatchAction];
         
         
         if(appDelegate.can_set_cart_price)
         if(appDelegate.can_set_cart_price)
         {
         {
             [arr addObject:editRowAction];
             [arr addObject:editRowAction];
-           // [arr addObject:freeRowAction];
+            // [arr addObject:freeRowAction];
         }
         }
         
         
         
         
+        
         return arr;
         return arr;
         //    return @[deleteRowAction,addWatchAction, editRowAction,freeRowAction];
         //    return @[deleteRowAction,addWatchAction, editRowAction,freeRowAction];
     }
     }
@@ -1742,7 +1880,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
                     
                     
                     if([[cart_json valueForKey:@"result"] intValue]==2)
                     if([[cart_json valueForKey:@"result"] intValue]==2)
                     {
                     {
-                      //  AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+                        //  AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                         for(int i=0;i<self.content_arr.count;i++)
                         for(int i=0;i<self.content_arr.count;i++)
                         {
                         {
                             NSDictionary* obj_json = self.content_arr[i];
                             NSDictionary* obj_json = self.content_arr[i];
@@ -1878,7 +2016,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
 #pragma mark - Support scanner
 #pragma mark - Support scanner
 -(void) onDecodedData:(NSString*) value
 -(void) onDecodedData:(NSString*) value
 {
 {
- //   return;
+    //   return;
     
     
     
     
     [self addtocart:value];
     [self addtocart:value];
@@ -1958,7 +2096,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
             {
             {
                 NSDictionary* newitem = [return_json objectForKey:@"item_0"];
                 NSDictionary* newitem = [return_json objectForKey:@"item_0"];
                 NSString* item_id = [newitem valueForKey:@"cart_item_id"];
                 NSString* item_id = [newitem valueForKey:@"cart_item_id"];
-              //  bool isnew=false;
+                //  bool isnew=false;
                 AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                 AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                 //                [((MainViewController*)appDelegate.main_vc) reloadWish:true immediately:false];
                 //                [((MainViewController*)appDelegate.main_vc) reloadWish:true immediately:false];
                 for(int i=0;i<self.content_arr.count;i++)
                 for(int i=0;i<self.content_arr.count;i++)
@@ -1967,11 +2105,11 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
                     NSString* _id =[obj_json valueForKey:@"cart_item_id"];
                     NSString* _id =[obj_json valueForKey:@"cart_item_id"];
                     if([_id isEqualToString:item_id])
                     if([_id isEqualToString:item_id])
                     {
                     {
-//                        self.content_arr[i] = newitem;
+                        //                        self.content_arr[i] = newitem;
                         
                         
                         
                         
                         [self.content_arr removeObjectAtIndex:i];
                         [self.content_arr removeObjectAtIndex:i];
-
+                        
                         break;
                         break;
                         //                        [self.content_arr removeObjectAtIndex:i];
                         //                        [self.content_arr removeObjectAtIndex:i];
                         //                        [self.itemListTable deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
                         //                        [self.itemListTable deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
@@ -1982,7 +2120,7 @@ commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  forRowAtIndexPath:
                     
                     
                 }
                 }
                 [self.content_arr insertObject:newitem atIndex:0];
                 [self.content_arr insertObject:newitem atIndex:0];
-               
+                
                 [self.itemListTable reloadData];
                 [self.itemListTable reloadData];
                 [self refresh_total];
                 [self refresh_total];
                 //                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                 //                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];

+ 15 - 0
RedAnt ERP Mobile/common/Functions/cart/ItemNotesViewController.h

@@ -0,0 +1,15 @@
+//
+//  ItemNotesViewController.h
+//  iSales-NPD
+//
+//  Created by Ray on 2/16/16.
+//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface ItemNotesViewController : UIViewController
+@property (strong, nonatomic) IBOutlet UITextView *tv_notes;
+@property (strong,nonatomic) NSString* cart_id;
+@property (strong,nonatomic) NSString* notes;
+@end

+ 91 - 0
RedAnt ERP Mobile/common/Functions/cart/ItemNotesViewController.m

@@ -0,0 +1,91 @@
+//
+//  ItemNotesViewController.m
+//  iSales-NPD
+//
+//  Created by Ray on 2/16/16.
+//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
+//
+
+#import "ItemNotesViewController.h"
+#import "iSalesNetwork.h"
+@interface ItemNotesViewController ()
+
+@end
+
+@implementation ItemNotesViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    
+    self.tv_notes.text = self.notes;
+    // Do any additional setup after loading the view.
+}
+
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+
+- (IBAction)onCloseClicked:(id)sender {
+    [self dismissViewControllerAnimated:NO
+                             completion:^{
+                                 
+                                 
+                             }];
+}
+- (IBAction)onSaveClicked:(id)sender {
+    
+    
+    
+
+   // [self.tv_notes endEditing:true];
+    
+    
+    UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait..." title:@"Update Item Notes"];
+    
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+        
+        NSDictionary* cart_json = nil;
+
+        
+
+        cart_json = [iSalesNetwork cart_setItemNote:self.cart_id notes:self.tv_notes.text];
+        
+        dispatch_async(dispatch_get_main_queue(), ^{
+            
+            
+            [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
+            if([[cart_json valueForKey:@"result"] intValue]==2)
+            {
+                [self dismissViewControllerAnimated:NO
+                                         completion:^{
+//                                             if(self.onSetValue)
+//                                                 
+//                                                 self.onSetValue();
+                                             
+                                         }];
+            }
+            else
+            {
+                [RAUtils message_alert:[cart_json valueForKey:@"err_msg"] title:@"Update Item Notes" controller:self] ;
+            }
+            
+            
+            
+            
+        });
+    });
+}
+
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end

+ 1 - 1
RedAnt ERP Mobile/common/Functions/cart/ModelItemCell.h

@@ -7,7 +7,7 @@
 //
 //
 
 
 #import <UIKit/UIKit.h>
 #import <UIKit/UIKit.h>
-#import "TouchLabel.h"
+//#import "TouchLabel.h"
 #import "StrikethroughLabel.h"
 #import "StrikethroughLabel.h"
 
 
 @class ModelItemCell;
 @class ModelItemCell;

+ 2 - 2
RedAnt ERP Mobile/common/Functions/contact/ContactListViewController.m

@@ -385,9 +385,9 @@ self.label_net_err.hidden=true;
     
     
     CustomerEditViewController * cuseditVC =[ self.storyboard instantiateViewControllerWithIdentifier:@"CustomerEditViewController"];
     CustomerEditViewController * cuseditVC =[ self.storyboard instantiateViewControllerWithIdentifier:@"CustomerEditViewController"];
     
     
-    
+    cuseditVC.bnewcustomer=true;
     cuseditVC.url_type = URL_REMOTE;
     cuseditVC.url_type = URL_REMOTE;
-    cuseditVC.request_url=URL_CUSTOMER_EDIT;
+    cuseditVC.request_url=URL_NEW_CUSTOMER;
     
     
     cuseditVC.params = params;
     cuseditVC.params = params;
     
     

+ 1 - 1
RedAnt ERP Mobile/common/Functions/contact/CustomerEditViewController.h

@@ -9,5 +9,5 @@
 #import "CommonEditorViewController.h"
 #import "CommonEditorViewController.h"
 
 
 @interface CustomerEditViewController : CommonEditorViewController
 @interface CustomerEditViewController : CommonEditorViewController
-
+@property bool bnewcustomer;
 @end
 @end

+ 89 - 79
RedAnt ERP Mobile/common/Functions/contact/CustomerEditViewController.m

@@ -30,7 +30,7 @@
     
     
     
     
     
     
-//    NSMutableArray * items = [[NSMutableArray alloc]init];
+    //    NSMutableArray * items = [[NSMutableArray alloc]init];
     
     
     
     
     UIBarButtonItem *savebtn = nil;//[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"", nil) style:UIBarButtonItemStylePlain target:self action:@selector(onSaveClick:)];
     UIBarButtonItem *savebtn = nil;//[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"", nil) style:UIBarButtonItemStylePlain target:self action:@selector(onSaveClick:)];
@@ -43,56 +43,56 @@
     
     
     self.navigationItem.rightBarButtonItem = savebtn;
     self.navigationItem.rightBarButtonItem = savebtn;
     
     
-//    UIBarButtonItem *btnCommit = nil;
-//    btnCommit =[[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"commit"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
-//                                                style:UIBarButtonItemStylePlain
-//                                               target:self
-//                                               action:@selector(onCommitOrderClick:)];
-//    
-//    
-//    
-//    
-//    //savebtn setBackgroundImage:(nullable UIImage *) forState:<#(UIControlState)#> style:<#(UIBarButtonItemStyle)#> barMetrics:<#(UIBarMetrics)#>
-//    //[savebtn setImage:[UIImage imageNamed:@"save"] ];
-//    
-//    
-//    /*
-//     UIBarMetricsDefault,
-//     UIBarMetricsCompact,
-//     UIBarMetricsDefaultPrompt = 101, // Applicable only in bars with the prompt property, such as UINavigationBar and UISearchBar
-//     UIBarMetricsCompactPrompt
-//     
-//     */
-//    // [savebtn setBackgroundImage:[UIImage imageNamed:@"save"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
-//    //        UIBarButtonItem *item1 = [[UIBarButtonItem alloc] init];
-//    //        item1.title = @"item1";
-//    ////        item1.image = [UIImage imageNamed:@"rect_setting"];
-//    //        UIBarButtonItem *item2 = [[UIBarButtonItem alloc] init];
-//    ////        item2.image = [UIImage imageNamed:@"rect_about"];
-//    //        item2.title = @"item2";
-//    
-//    
-//    UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
-//    fixedItem.width = 20.0f;
-//    
-//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-//    
-//    if(appDelegate.user_type ==USER_ROLE_EMPLOYEE)
-//    {
-//        [items addObject:savebtn];
-//        
-//        [items addObject:fixedItem];
-//    }
-//    [items addObject:btnCommit];
-//    //        [items addObject:item2];
-//    self.navigationItem.rightBarButtonItems=items;
-
-
+    //    UIBarButtonItem *btnCommit = nil;
+    //    btnCommit =[[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"commit"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
+    //                                                style:UIBarButtonItemStylePlain
+    //                                               target:self
+    //                                               action:@selector(onCommitOrderClick:)];
+    //
+    //
+    //
+    //
+    //    //savebtn setBackgroundImage:(nullable UIImage *) forState:<#(UIControlState)#> style:<#(UIBarButtonItemStyle)#> barMetrics:<#(UIBarMetrics)#>
+    //    //[savebtn setImage:[UIImage imageNamed:@"save"] ];
+    //
+    //
+    //    /*
+    //     UIBarMetricsDefault,
+    //     UIBarMetricsCompact,
+    //     UIBarMetricsDefaultPrompt = 101, // Applicable only in bars with the prompt property, such as UINavigationBar and UISearchBar
+    //     UIBarMetricsCompactPrompt
+    //
+    //     */
+    //    // [savebtn setBackgroundImage:[UIImage imageNamed:@"save"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
+    //    //        UIBarButtonItem *item1 = [[UIBarButtonItem alloc] init];
+    //    //        item1.title = @"item1";
+    //    ////        item1.image = [UIImage imageNamed:@"rect_setting"];
+    //    //        UIBarButtonItem *item2 = [[UIBarButtonItem alloc] init];
+    //    ////        item2.image = [UIImage imageNamed:@"rect_about"];
+    //    //        item2.title = @"item2";
+    //
+    //
+    //    UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
+    //    fixedItem.width = 20.0f;
+    //
+    //    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    //
+    //    if(appDelegate.user_type ==USER_ROLE_EMPLOYEE)
+    //    {
+    //        [items addObject:savebtn];
+    //
+    //        [items addObject:fixedItem];
+    //    }
+    //    [items addObject:btnCommit];
+    //    //        [items addObject:item2];
+    //    self.navigationItem.rightBarButtonItems=items;
+    
+    
     // Do any additional setup after loading the view.
     // Do any additional setup after loading the view.
 }
 }
 - (void)onBackClick:(UIButton *)sender {
 - (void)onBackClick:(UIButton *)sender {
     [self.navigationController popViewControllerAnimated:false];
     [self.navigationController popViewControllerAnimated:false];
-     }
+}
 
 
 - (void)onSaveClick:(UIButton *)sender {
 - (void)onSaveClick:(UIButton *)sender {
     // add params check here.
     // add params check here.
@@ -100,7 +100,7 @@
     [self.lasttextview endEditing:true];
     [self.lasttextview endEditing:true];
     self.cancommit=true;
     self.cancommit=true;
     NSMutableDictionary* upparams=[[NSMutableDictionary alloc] init];
     NSMutableDictionary* upparams=[[NSMutableDictionary alloc] init];
-//    [upparams setValue:[self.params valueForKey:@"cart2Checkbox"] forKey:@"cart2Checkbox"];
+    //    [upparams setValue:[self.params valueForKey:@"cart2Checkbox"] forKey:@"cart2Checkbox"];
     int section_count=[[self.content_data_download valueForKey:@"section_count"] intValue];
     int section_count=[[self.content_data_download valueForKey:@"section_count"] intValue];
     for(int i=0;i<section_count;i++)
     for(int i=0;i<section_count;i++)
     {
     {
@@ -138,20 +138,20 @@
                 else
                 else
                 {
                 {
                     
                     
-                     NSMutableArray* checked = [[NSMutableArray alloc] init];
+                    NSMutableArray* checked = [[NSMutableArray alloc] init];
                     NSDictionary* cadejson=[itemjson objectForKey:@"cadedate"];
                     NSDictionary* cadejson=[itemjson objectForKey:@"cadedate"];
                     int count = [[cadejson valueForKey:@"count"] intValue];
                     int count = [[cadejson valueForKey:@"count"] intValue];
-                   // bool setvalue = false;
+                    // bool setvalue = false;
                     for(int cc=0;cc<count;cc++)
                     for(int cc=0;cc<count;cc++)
                     {
                     {
                         NSDictionary* valjson=[cadejson objectForKey:[NSString stringWithFormat:@"val_%d",cc]];
                         NSDictionary* valjson=[cadejson objectForKey:[NSString stringWithFormat:@"val_%d",cc]];
                         if([[valjson valueForKey:@"check"]intValue]==1)
                         if([[valjson valueForKey:@"check"]intValue]==1)
                         {
                         {
                             
                             
-                             [checked addObject:[NSNumber numberWithInt:[[valjson valueForKey:@"value_id"] intValue]]];
-//                            [upparams setValue:[valjson valueForKey:@"value_id"] forKey:[itemjson valueForKey:@"name"]];
-//                            setvalue=true;
-//                            break;
+                            [checked addObject:[NSNumber numberWithInt:[[valjson valueForKey:@"value_id"] intValue]]];
+                            //                            [upparams setValue:[valjson valueForKey:@"value_id"] forKey:[itemjson valueForKey:@"name"]];
+                            //                            setvalue=true;
+                            //                            break;
                         }
                         }
                     }
                     }
                     if([[itemjson valueForKey:@"required"] isEqualToString: @"true"]&&checked.count==0)
                     if([[itemjson valueForKey:@"required"] isEqualToString: @"true"]&&checked.count==0)
@@ -160,7 +160,7 @@
                     }
                     }
                     else
                     else
                     {
                     {
-                    NSString * string = [checked componentsJoinedByString:@","];
+                        NSString * string = [checked componentsJoinedByString:@","];
                         [upparams setValue:string forKey:[itemjson valueForKey:@"name"]];
                         [upparams setValue:string forKey:[itemjson valueForKey:@"name"]];
                     }
                     }
                 }
                 }
@@ -227,22 +227,22 @@
                                 self.cancommit = false;
                                 self.cancommit = false;
                         }
                         }
                     }
                     }
-                else
-                {
-                    if([itemjson valueForKey:@"value"]!=nil && ![[itemjson valueForKey:@"value"]isEqualToString:@""])
-                        [upparams setValue:[itemjson valueForKey:@"value"] forKey:[itemjson valueForKey:@"name"]];
                     else
                     else
                     {
                     {
-                        if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] )
-                            self.cancommit = false;
+                        if([itemjson valueForKey:@"value"]!=nil && ![[itemjson valueForKey:@"value"]isEqualToString:@""])
+                            [upparams setValue:[itemjson valueForKey:@"value"] forKey:[itemjson valueForKey:@"name"]];
+                        else
+                        {
+                            if([[itemjson valueForKey:@"required"] isEqualToString: @"true"] )
+                                self.cancommit = false;
+                        }
                     }
                     }
-                }
             upparams= [self subitem_param:itemjson addto:upparams ];
             upparams= [self subitem_param:itemjson addto:upparams ];
         }
         }
     }
     }
     if(self.cancommit==false)
     if(self.cancommit==false)
     {
     {
-[RAUtils alert_view:@"Fields with * mark cannot be empty." title:@"Some Requried Fields Are Missing."];
+        [RAUtils alert_view:@"Fields with * mark cannot be empty." title:@"Some Requried Fields Are Missing."];
         self.content_data_control = [self translate_json:self.content_data_download changed:self.changed_data];
         self.content_data_control = [self translate_json:self.content_data_download changed:self.changed_data];
         //NSLog(@"CONTENT translate:%@",[iSalesNetwork DataTOjsonString:self.content_data]);
         //NSLog(@"CONTENT translate:%@",[iSalesNetwork DataTOjsonString:self.content_data]);
         //[self.editorTable reloadData ];
         //[self.editorTable reloadData ];
@@ -252,7 +252,12 @@
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Saving Contact"];
     UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Saving Contact"];
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         
         
-        NSDictionary* editor_json = [iSalesNetwork save_Customer:upparams];
+        NSDictionary* editor_json = nil;
+        NSString* contactId=[upparams valueForKey:@"contactId"];
+        if(self.bnewcustomer )
+            editor_json=[iSalesNetwork save_newCustomer:upparams];
+        else
+            editor_json=[iSalesNetwork update_Customer:upparams];
         
         
         dispatch_async(dispatch_get_main_queue(), ^{
         dispatch_async(dispatch_get_main_queue(), ^{
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
             [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
@@ -260,21 +265,26 @@
             
             
             if([[editor_json valueForKey:@"result"] intValue]==2)
             if([[editor_json valueForKey:@"result"] intValue]==2)
             {
             {
-//                NSMutableDictionary * customerInfo=[self create_cusromer_info_from_table];
-//                
-//                
-//                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-//                appDelegate.customerInfo = customerInfo;
-//                appDelegate.contact_id = [customerInfo valueForKey:@"customer_cid"];
+                //                NSMutableDictionary * customerInfo=[self create_cusromer_info_from_table];
+                //
+                //
+                //                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+                //                appDelegate.customerInfo = customerInfo;
+                //                appDelegate.contact_id = [customerInfo valueForKey:@"customer_cid"];
                 //    //     self.labelContact.text=appDelegate.contact_name;
                 //    //     self.labelContact.text=appDelegate.contact_name;
                 //
                 //
                 //    NSDictionary * customerinfo = appDelegate.customerInfo;
                 //    NSDictionary * customerinfo = appDelegate.customerInfo;
                 [self prepareReturn:nil];
                 [self prepareReturn:nil];
-                [self.navigationController popViewControllerAnimated:false];
+                if(self.bnewcustomer  )
+                    [self.navigationController popViewControllerAnimated:false];
+                else
+                    [self.navigationController popToRootViewControllerAnimated:false];
                 
                 
                 AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                 AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                 [((MainViewController*)appDelegate.main_vc) reloadContact:true immediately:false];
                 [((MainViewController*)appDelegate.main_vc) reloadContact:true immediately:false];
                 
                 
+                
+                
             }
             }
             else
             else
             {
             {
@@ -295,13 +305,13 @@
 }
 }
 
 
 /*
 /*
-#pragma mark - Navigation
-
-// In a storyboard-based application, you will often want to do a little preparation before navigation
-- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
-    // Get the new view controller using [segue destinationViewController].
-    // Pass the selected object to the new view controller.
-}
-*/
+ #pragma mark - Navigation
+ 
+ // In a storyboard-based application, you will often want to do a little preparation before navigation
+ - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+ // Get the new view controller using [segue destinationViewController].
+ // Pass the selected object to the new view controller.
+ }
+ */
 
 
 @end
 @end

+ 1 - 0
RedAnt ERP Mobile/common/Functions/contact/CustomerInfoViewController.h

@@ -18,5 +18,6 @@
 @property (strong,nonatomic) NSString* rightbtn_title;
 @property (strong,nonatomic) NSString* rightbtn_title;
 @property (strong, nonatomic) IBOutlet UIBarButtonItem *right_btn;
 @property (strong, nonatomic) IBOutlet UIBarButtonItem *right_btn;
 @property bool update_order;
 @property bool update_order;
+@property (strong, nonatomic) IBOutlet UIBarButtonItem *btn_edit;
 
 
 @end
 @end

+ 44 - 4
RedAnt ERP Mobile/common/Functions/contact/CustomerInfoViewController.m

@@ -8,6 +8,7 @@
 
 
 #import "CustomerInfoViewController.h"
 #import "CustomerInfoViewController.h"
 #import "iSalesNetwork.h"
 #import "iSalesNetwork.h"
+#import "CustomerEditViewController.h"
 
 
 @interface CustomerInfoViewController ()
 @interface CustomerInfoViewController ()
 
 
@@ -105,10 +106,24 @@
             
             
             if([control isEqualToString:@"img"])
             if([control isEqualToString:@"img"])
             {
             {
-                NSString* img_url = [itemjson valueForKey:@"img_url"];
-                
-                NSString* url_value = [self.data_init valueForKey:img_url];
-                [itemjson setValue:url_value forKey:@"img_url"];
+                {
+                    NSString* img_url = [itemjson valueForKey:@"img_url_0"];
+                    
+                    NSString* url_value = [self.data_init valueForKey:img_url];
+                    [itemjson setValue:url_value forKey:@"img_url_0"];
+                }
+                {
+                    NSString* img_url = [itemjson valueForKey:@"img_url_1"];
+                    
+                    NSString* url_value = [self.data_init valueForKey:img_url];
+                    [itemjson setValue:url_value forKey:@"img_url_1"];
+                }
+                {
+                    NSString* img_url = [itemjson valueForKey:@"img_url_2"];
+                    
+                    NSString* url_value = [self.data_init valueForKey:img_url];
+                    [itemjson setValue:url_value forKey:@"img_url_2"];
+                }
             }
             }
             
             
             [sectionjson setObject:itemjson forKey:[NSString stringWithFormat:@"item_%d",j]];
             [sectionjson setObject:itemjson forKey:[NSString stringWithFormat:@"item_%d",j]];
@@ -122,6 +137,31 @@
 //    self.navigationItem.title =  [self.content_data_download valueForKey:@"title"] ;
 //    self.navigationItem.title =  [self.content_data_download valueForKey:@"title"] ;
     [self.editorTable reloadData];
     [self.editorTable reloadData];
 }
 }
+- (IBAction)onEditClick:(id)sender {
+    
+    
+    NSMutableDictionary * params= [[NSMutableDictionary alloc] init];
+    
+    
+    [params setValue:self.contactId forKey:@"contactId"];
+    CustomerEditViewController * cuseditVC =[ self.storyboard instantiateViewControllerWithIdentifier:@"CustomerEditViewController"];
+    
+    cuseditVC.bnewcustomer=false;
+    cuseditVC.url_type = URL_REMOTE;
+    cuseditVC.request_url=URL_EDIT_CUSTOMER;
+    
+    cuseditVC.params = params;
+    
+    cuseditVC.delegate=self;
+    //
+    //    if(checked.count==count)
+    //    {
+    //    orderinfoVC.have_tail = true
+    //    }
+    [[self navigationController] setNavigationBarHidden:NO animated:NO];
+    [self.navigationController pushViewController:cuseditVC animated:false];
+
+}
 - (IBAction)onSetClick:(id)sender {
 - (IBAction)onSetClick:(id)sender {
     
     
         [self.lastedit endEditing:true];
         [self.lastedit endEditing:true];

+ 4 - 1
RedAnt ERP Mobile/common/Functions/contact/customer_info_template.json

@@ -1,5 +1,6 @@
 {
 {
     "result": 1,
     "result": 1,
+    "readonly":"1",
     "title": "Customer Information",
     "title": "Customer Information",
     "section_count": 1,
     "section_count": 1,
     "section_0": {
     "section_0": {
@@ -22,7 +23,9 @@
             "aname": "Contact ID",
             "aname": "Contact ID",
             "name": "customer_cid",
             "name": "customer_cid",
             "control": "img",
             "control": "img",
-            "img_url":"business_card",
+            "img_url_0":"business_card_0",
+            "img_url_1":"business_card_1",
+            "img_url_2":"business_card_2",
             "value": ""
             "value": ""
         },
         },
 
 

+ 1 - 0
RedAnt ERP Mobile/common/Functions/order/OrderDetailViewController.h

@@ -20,6 +20,7 @@
 @property (strong, nonatomic) IBOutlet UIBarButtonItem *btnOpen;
 @property (strong, nonatomic) IBOutlet UIBarButtonItem *btnOpen;
 @property (strong, nonatomic) IBOutlet UIBarButtonItem *btnRelease;
 @property (strong, nonatomic) IBOutlet UIBarButtonItem *btnRelease;
 @property (strong, nonatomic) IBOutlet UIBarButtonItem *btnCommit;
 @property (strong, nonatomic) IBOutlet UIBarButtonItem *btnCommit;
+@property (strong, nonatomic) IBOutlet UIBarButtonItem *btnSign;
 
 
 @property (strong, nonatomic) IBOutlet UIBarButtonItem *btnSend;
 @property (strong, nonatomic) IBOutlet UIBarButtonItem *btnSend;
 
 

+ 41 - 1
RedAnt ERP Mobile/common/Functions/order/OrderDetailViewController.m

@@ -18,7 +18,7 @@
 #import "DetailViewController.h"
 #import "DetailViewController.h"
 
 
 #import "PDFViewController.h"
 #import "PDFViewController.h"
-
+#import "SignatureViewController.h"
 #import "MainViewController.h"
 #import "MainViewController.h"
 
 
 #define  DEF_CELL_HEIGHT 44
 #define  DEF_CELL_HEIGHT 44
@@ -122,6 +122,16 @@
     
     
     self.btnOpen.tintColor = UIColorFromRGB(0x996633);
     self.btnOpen.tintColor = UIColorFromRGB(0x996633);
     
     
+    
+    
+    self.btnSign = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"signature"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
+                                                    style:UIBarButtonItemStylePlain
+                                                   target:self
+                                                   action:@selector(onSignOrderClick:)];//[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Edit", nil) style:UIBarButtonItemStylePlain target:self action:@selector(onOpenOrderClick:)];
+    
+    self.btnSign.tintColor = UIColorFromRGB(0x996633);
+    
+    
     self.btnCommit =[[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"commit"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
     self.btnCommit =[[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"commit"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
                                                      style:UIBarButtonItemStylePlain
                                                      style:UIBarButtonItemStylePlain
                                                     target:self
                                                     target:self
@@ -164,6 +174,10 @@
     [items addObject:self.btnRelease];
     [items addObject:self.btnRelease];
     [items addObject:fixedItem];
     [items addObject:fixedItem];
     [items addObject:self.btnPDF];
     [items addObject:self.btnPDF];
+    [items addObject:fixedItem];
+    [items addObject:self.btnSign];
+    
+    
     //        [items addObject:item2];
     //        [items addObject:item2];
     self.navigationItem.rightBarButtonItems=items;
     self.navigationItem.rightBarButtonItems=items;
     
     
@@ -371,6 +385,32 @@
     }
     }
 
 
     
     
+}
+- (IBAction)onSignOrderClick:(id)sender {
+    
+//    SignatureViewController * vc;
+    
+    __block UIImage* signimg=nil;
+    SignatureViewController * vc =[ self.storyboard instantiateViewControllerWithIdentifier:@"SignatureViewController"];
+    
+    vc.onReturnImg = ^(UIImage* img)
+    {
+        signimg = img;
+        int aaa = 0;
+    };
+//    orderinfoVC.url_type = URL_REMOTE;
+//    orderinfoVC.request_url=URL_CARTDELIVERY;
+//    
+//    orderinfoVC.params = params;
+//    
+//    orderinfoVC.delegate=self;
+    //
+    //    if(checked.count==count)
+    //    {
+    //    orderinfoVC.have_tail = true
+    //    }
+    
+    [self.navigationController pushViewController:vc animated:true];
 }
 }
 - (IBAction)onOpenOrderClick:(id)sender {
 - (IBAction)onOpenOrderClick:(id)sender {
     // get customer info
     // get customer info

+ 25 - 1
RedAnt ERP Mobile/common/Functions/signature/SignatureView.m

@@ -103,9 +103,33 @@
 - (UIImage *)signatureImage {
 - (UIImage *)signatureImage {
     
     
 
 
+    CGRect rect = self.boundary;
+//    rect.size.width = rect.size.width/2;
+//    rect.size.height = rect.size.height/2;
+//    
+//    
+//    cropRect = CGRectMake ((imageHeight - imageWidth) / 2.0, 0.0, imageWidth, imageWidth);
+//    and
+//    
+//    // Create new cropped UIImage
+//    UIImage * croppedImage = [UIImage imageWithCGImage: imageRef scale: chosenImage.scale orientation: chosenImage.imageOrientation];
+//
     
     
+    
+    rect.origin.x=rect.origin.x*self.image.scale;
+        rect.origin.y=rect.origin.y*self.image.scale;
+        rect.size.width=rect.size.width*self.image.scale;
+        rect.size.height=rect.size.height*self.image.scale;
+    
+//    CGImageRef imageRef = self.image.CGImage;
+//    CGImageRef imagePartRef = CGImageCreateWithImageInRect(imageRef, rect);
+//    UIImage *cropImage = [UIImage imageWithCGImage:imagePartRef scale:self.image.scale orientation:self.image.imageOrientation];
+//    CGImageRelease(imagePartRef);
+//    return cropImage;
+//    
+//    UIImage* img= [[UIImage imageWithCGImage: CGImageCreateWithImageInRect(self.image.CGImage, rect)] copy];
 
 
-    return [[UIImage imageWithCGImage: CGImageCreateWithImageInRect(self.image.CGImage, CGRectInset(self.boundary, -1, -1))] copy];
+    return [[UIImage imageWithCGImage: CGImageCreateWithImageInRect(self.image.CGImage, CGRectInset(rect, -1, -1))] copy];
     //return [self.image copy];
     //return [self.image copy];
 }
 }
 
 

+ 1 - 0
RedAnt ERP Mobile/common/Functions/signature/SignatureViewController.h

@@ -20,5 +20,6 @@
 @property (strong,nonatomic) NSIndexPath *indexPath;
 @property (strong,nonatomic) NSIndexPath *indexPath;
 @property (strong,nonatomic) UIImage *existSignature;
 @property (strong,nonatomic) UIImage *existSignature;
 @property (nonatomic, weak) id<SignatureViewControllerDelegate> delegate;
 @property (nonatomic, weak) id<SignatureViewControllerDelegate> delegate;
+@property (nonatomic , copy) void (^onReturnImg)(UIImage* img);
 
 
 @end
 @end

+ 2 - 1
RedAnt ERP Mobile/common/Functions/signature/SignatureViewController.m

@@ -89,7 +89,8 @@
     if (self.delegate && [self.delegate respondsToSelector:@selector(SignatureVCReturnData:indexPath:)]) {
     if (self.delegate && [self.delegate respondsToSelector:@selector(SignatureVCReturnData:indexPath:)]) {
         [self.delegate SignatureVCReturnData:data indexPath:self.indexPath];
         [self.delegate SignatureVCReturnData:data indexPath:self.indexPath];
     }
     }
-
+    if(self.onReturnImg)
+        self.onReturnImg(img);
     [self.navigationController popViewControllerAnimated:true];
     [self.navigationController popViewControllerAnimated:true];
     
     
     //    [self.aBNewPersonNav dismissViewControllerAnimated:true completion:^{
     //    [self.aBNewPersonNav dismissViewControllerAnimated:true completion:^{

+ 2 - 2
RedAnt ERP Mobile/common/RAUtils.h

@@ -21,7 +21,7 @@
 
 
 
 
 +(NSString*) dict2string:(NSDictionary*) dict;
 +(NSString*) dict2string:(NSDictionary*) dict;
-
++(NSString*) arr2string:(NSArray *) arr separator:(NSString*)separator trim:(bool) btrim;
 
 
 +(NSString*) base64en:(NSString*) string;
 +(NSString*) base64en:(NSString*) string;
 +(NSString*) base64de:(NSString*) string;
 +(NSString*) base64de:(NSString*) string;
@@ -33,6 +33,6 @@
 +(NSString* )current_date;
 +(NSString* )current_date;
 +(NSMutableArray*)dictionary2array:(NSDictionary*)json count_fields:(NSString*) count_fields item_mark:(NSString*) item_mark items_mark:(NSString* )items_mark;
 +(NSMutableArray*)dictionary2array:(NSDictionary*)json count_fields:(NSString*) count_fields item_mark:(NSString*) item_mark items_mark:(NSString* )items_mark;
 
 
++(NSArray*) string2arr:(NSString*) string separator:(NSString*)separator;
 
 
-+(NSString*) arr2string:(NSArray *) arr separator:(NSString*)separator;
 @end
 @end

+ 12 - 3
RedAnt ERP Mobile/common/RAUtils.m

@@ -283,15 +283,24 @@
 //    [info setValue:[[UIDevice currentDevice] name] forKey:@"name"];
 //    [info setValue:[[UIDevice currentDevice] name] forKey:@"name"];
     
     
 }
 }
-+(NSString*) arr2string:(NSArray *) arr separator:(NSString*)separator
+
++(NSArray*) string2arr:(NSString*) string separator:(NSString*)separator
+{
+    NSArray  *stringArray = [string componentsSeparatedByString:separator];
+    
+    return stringArray;
+}
++(NSString*) arr2string:(NSArray *) arr separator:(NSString*)separator trim:(bool) btrim
 {
 {
     
     
     NSMutableArray * marr = [arr mutableCopy];
     NSMutableArray * marr = [arr mutableCopy];
     for (NSString* item in marr) {
     for (NSString* item in marr) {
-        if(item.length==0)
+        if(item.length==0 )
+            if( btrim)
             [marr removeObject:item];
             [marr removeObject:item];
+        
     }
     }
-    NSString * ret = [marr componentsJoinedByString:@","];
+    NSString * ret = [marr componentsJoinedByString:separator];
     return ret;
     return ret;
 }
 }
 +(NSString*) dict2string:(NSDictionary*) dict
 +(NSString*) dict2string:(NSDictionary*) dict

+ 31 - 1
RedAnt ERP Mobile/common/customUI/ImageViewController.m

@@ -22,8 +22,13 @@
                                                                    action:@selector( onBackClick:)];
                                                                    action:@selector( onBackClick:)];
     
     
     
     
-    self.navigationItem.leftBarButtonItem = closeButton;
+    UIBarButtonItem *downloadButton = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"download"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
+                                                                    style:UIBarButtonItemStylePlain
+                                                                   target:self
+                                                                   action:@selector( onDownloadClick:)];
     
     
+    self.navigationItem.leftBarButtonItem = closeButton;
+    self.navigationItem.rightBarButtonItem = downloadButton;
     
     
      self.imageView.image = self.image;
      self.imageView.image = self.image;
     // Do any additional setup after loading the view.
     // Do any additional setup after loading the view.
@@ -34,6 +39,31 @@
     [self.navigationController popViewControllerAnimated:FALSE];
     [self.navigationController popViewControllerAnimated:FALSE];
 }
 }
 
 
+- (void)saveImageToPhotos:(UIImage*)savedImage
+{
+    UIImageWriteToSavedPhotosAlbum(savedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
+}
+// 指定回调方法
+- (void)image: (UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo
+{
+    NSString *msg = nil ;
+    if(error != NULL){
+        msg = @"Failed to save image" ;
+    }else{
+        msg = @"Image saved" ;
+    }
+    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Save Image"
+                                                    message:msg
+                                                   delegate:self
+                                          cancelButtonTitle:@"OK"
+                                          otherButtonTitles:nil];
+    [alert show];
+}
+- (void)onDownloadClick:(UIButton *)sender {
+    
+    
+    [self saveImageToPhotos:self.image];
+}
 
 
 - (void)didReceiveMemoryWarning {
 - (void)didReceiveMemoryWarning {
     [super didReceiveMemoryWarning];
     [super didReceiveMemoryWarning];

+ 23 - 0
RedAnt ERP Mobile/common/customUI/TouchImageView.h

@@ -0,0 +1,23 @@
+//
+//  TouchImageView.h
+//  iSales-NPD
+//
+//  Created by Ray on 2/18/16.
+//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+@class TouchImageView;
+@protocol TouchImageViewDelegate <NSObject>
+@required
+//- (void)touchLabel:(TouchImageView *)touchLabel touchesWtihTag:(NSInteger)tag;
+- (void)TouchImageViewOnTouche:(TouchImageView *)touchImageView;
+@end
+@interface TouchImageView : UIImageView
+{
+@private
+    id <TouchImageViewDelegate> __unsafe_unretained delegate;
+}
+
+@property (unsafe_unretained) id <TouchImageViewDelegate> delegate;
+@end

+ 38 - 0
RedAnt ERP Mobile/common/customUI/TouchImageView.m

@@ -0,0 +1,38 @@
+//
+//  TouchImageView.m
+//  iSales-NPD
+//
+//  Created by Ray on 2/18/16.
+//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
+//
+
+#import "TouchImageView.h"
+
+@implementation TouchImageView
+@synthesize delegate;
+
+- (void)awakeFromNib {
+    [self becomeFirstResponder];
+    self.userInteractionEnabled=true;
+    self.layer.borderColor = [UIColor darkGrayColor].CGColor;
+    self.layer.borderWidth = 1.0;
+    // Initialization code
+}
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
+    //    [self setTextColor:COLOR(0,0,0,1.0)];
+    UITouch *touch = [touches anyObject];
+    CGPoint points = [touch locationInView:self];
+//    if (points.x >= self.frame.origin.x && points.y >= self.frame.origin.x && points.x <= self.frame.size.width && points.y <= self.frame.size.height)
+//    {
+        [delegate TouchImageViewOnTouche:self];
+//        [delegate touchLabel:self touchesWtihTag:self.tag];
+//    }
+}
+@end

+ 9 - 4
RedAnt ERP Mobile/common/data_provider/iSalesNetwork.h

@@ -44,6 +44,11 @@
 +(NSDictionary*) cart_setPrice:(NSString*) cart_id price:(float) price discount:(float) discount;
 +(NSDictionary*) cart_setPrice:(NSString*) cart_id price:(float) price discount:(float) discount;
 +(NSDictionary*) cart_setFree:(NSString*) cart_id isfree:(bool) isfree;
 +(NSDictionary*) cart_setFree:(NSString*) cart_id isfree:(bool) isfree;
 
 
++(NSDictionary*) cart_setItemNote:(NSString*) cart_id notes:(NSString*) notes;
+
++(NSDictionary*) cart_setGeneralNote:(NSString*) order_code notes:(NSString*) notes;
+
+
 +(NSDictionary*) add_toCart:(NSString* ) item_id count:(int) count;
 +(NSDictionary*) add_toCart:(NSString* ) item_id count:(int) count;
 +(NSDictionary*) add_toCart_byName:(NSString* ) model_name;
 +(NSDictionary*) add_toCart_byName:(NSString* ) model_name;
 +(NSDictionary*) add_toWatchList:(NSString* ) item_id;
 +(NSDictionary*) add_toWatchList:(NSString* ) item_id;
@@ -72,10 +77,10 @@
 +(NSDictionary*)cancel_Order:(NSString*) order_id;
 +(NSDictionary*)cancel_Order:(NSString*) order_id;
 
 
 +(NSDictionary*)request_CustomerInfo:(NSString* ) contactid;
 +(NSDictionary*)request_CustomerInfo:(NSString* ) contactid;
-+(NSDictionary*)update_customer_img: (NSString*) contactid img_url:(NSString*) url;
-+(NSDictionary*) new_Customer;
-+(NSDictionary*)save_Customer:(NSMutableDictionary*)params;
-
++(NSDictionary*)update_customer_img: (NSString*) contactid img_url:(NSString*) url ;
+//+(NSDictionary*) new_Customer;
++(NSDictionary*)save_newCustomer:(NSMutableDictionary*)params;
++(NSDictionary*)update_Customer:(NSMutableDictionary*)params;
 
 
 +(NSDictionary*)create_Address:(NSMutableDictionary*)params;
 +(NSDictionary*)create_Address:(NSMutableDictionary*)params;
 +(NSDictionary*)request_ContactList:(int) offset limit:(int)limit keywords:(NSString*) keywords type:(NSString*) contact_type adv_search:(NSDictionary*)upparams;
 +(NSDictionary*)request_ContactList:(int) offset limit:(int)limit keywords:(NSString*) keywords type:(NSString*) contact_type adv_search:(NSDictionary*)upparams;

+ 139 - 35
RedAnt ERP Mobile/common/data_provider/iSalesNetwork.m

@@ -542,6 +542,7 @@ repeat:{
 
 
 +(NSDictionary*) cart_check:(NSString* ) item_ids
 +(NSDictionary*) cart_check:(NSString* ) item_ids
 {
 {
+    return nil;
     if(![self IsNetworkAvailable])
     if(![self IsNetworkAvailable])
         return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
         return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
     NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
     NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
@@ -820,8 +821,52 @@ repeat:{
         return nil;
         return nil;
     
     
 }
 }
-
-+(NSDictionary*)save_Customer:(NSMutableDictionary*)params
++(NSDictionary*)update_Customer:(NSMutableDictionary*)params
+{
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    //    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    //    if(![appDelegate.order_customer_id isEqualToString: appDelegate.contact_id]&& appDelegate.order_customer_id!=nil)
+    //        [params setValue:appDelegate.order_customer_id forKey:@"contactId"];
+    //    else
+    
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    //    NSDictionary* customerinfo=nil;
+    
+    //    if(![[appDelegate.customerInfo valueForKey:@"customer_cid" ] isEqualToString: [appDelegate.customerInfo valueForKey:@"customer_cid" ]]&& appDelegate.order_customer_id!=nil)
+    //        [params setValue:appDelegate.order_customer_id forKey:@"contactId"];
+    //    else
+    //        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    //
+    //    appDelegate.customerInfo;
+    
+    //    NSArray* keys=[customerinfo allKeys];
+    //    for(int i=0;i<keys.count;i++)
+    //    {
+    //        [params setValue:[customerinfo valueForKey:(NSString*)keys[i]] forKey:keys[i] ];
+    //    }
+    
+    //    [params setValue:sourceid forKey:@"sourceid"];
+    //    [params setValue:editor forKey:@"editor"];
+    NSData* json=[self get_json:URL_CUSTOMER_UPDATE parameters:params];
+    if(json!=nil)
+    {
+        NSError *error=nil;
+        NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+        return jsobj;
+    }
+    else
+        return nil;
+    
+}
++(NSDictionary*)save_newCustomer:(NSMutableDictionary*)params
 {
 {
     if(![self IsNetworkAvailable])
     if(![self IsNetworkAvailable])
         return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
         return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
@@ -1286,38 +1331,38 @@ repeat:{
     return jsobj;
     return jsobj;
 }
 }
 
 
-+(NSDictionary*) new_Customer
-{
-    if(![self IsNetworkAvailable])
-        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
-    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
-    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-    if(appDelegate.user!=nil)
-        [params setValue:appDelegate.user forKey:@"user"];
-//    if(appDelegate.contact_id!=nil)
-//        [params setValue:appDelegate.contact_id forKey:@"contactId"];
-    if(appDelegate.password!=nil)
-        [params setValue:appDelegate.password forKey:@"password"];
-    
-//    if(appDelegate.order_code!=nil)
-//        [params setValue:appDelegate.order_code forKey:@"orderCode"];
-    
-    
-    NSDictionary* customerinfo= appDelegate.customerInfo;
-    
-    NSArray* keys=[customerinfo allKeys];
-    for(int i=0;i<keys.count;i++)
-    {
-        [params setValue:[customerinfo valueForKey:(NSString*)keys[i]] forKey:keys[i] ];
-    }
-    
-    NSData* json=[self get_json:URL_CUSTOMER_EDIT parameters:params];
-    if(json==nil)
-        return nil;
-    NSError *error=nil;
-    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
-    return jsobj;
-}
+//+(NSDictionary*) new_Customer
+//{
+//    if(![self IsNetworkAvailable])
+//        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+//    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+//    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//    if(appDelegate.user!=nil)
+//        [params setValue:appDelegate.user forKey:@"user"];
+////    if(appDelegate.contact_id!=nil)
+////        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+//    if(appDelegate.password!=nil)
+//        [params setValue:appDelegate.password forKey:@"password"];
+//    
+////    if(appDelegate.order_code!=nil)
+////        [params setValue:appDelegate.order_code forKey:@"orderCode"];
+//    
+//    
+//    NSDictionary* customerinfo= appDelegate.customerInfo;
+//    
+//    NSArray* keys=[customerinfo allKeys];
+//    for(int i=0;i<keys.count;i++)
+//    {
+//        [params setValue:[customerinfo valueForKey:(NSString*)keys[i]] forKey:keys[i] ];
+//    }
+//    
+//    NSData* json=[self get_json:URL_CUSTOMER_EDIT parameters:params];
+//    if(json==nil)
+//        return nil;
+//    NSError *error=nil;
+//    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+//    return jsobj;
+//}
 +(NSDictionary*) new_Order
 +(NSDictionary*) new_Order
 {
 {
     if(![self IsNetworkAvailable])
     if(![self IsNetworkAvailable])
@@ -1486,6 +1531,64 @@ repeat:{
     NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
     NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
     return jsobj;
     return jsobj;
 }
 }
++(NSDictionary*) cart_setGeneralNote:(NSString*) order_code notes:(NSString*) notes
+{
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:order_code forKey:@"orderCode"];
+    
+    if(notes.length==0)
+        notes=@"";
+    
+    
+    [params setValue:notes forKey:@"comments"];
+    
+    
+    NSData* json=[self get_json:URL_CART_GENERAL_NOTES parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
++(NSDictionary*) cart_setItemNote:(NSString*) cart_id notes:(NSString*) notes
+{
+    if(![self IsNetworkAvailable])
+        return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
+    NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
+    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+    if(appDelegate.password!=nil)
+        [params setValue:appDelegate.password forKey:@"password"];
+    
+    [params setValue:cart_id forKey:@"cartitem_id"];
+    
+    if(notes.length==0)
+        notes=@"";
+
+    
+    [params setValue:notes forKey:@"notes"];
+    
+    
+    NSData* json=[self get_json:URL_CART_ITEM_NOTES parameters:params];
+    if(json==nil)
+        return nil;
+    NSError *error=nil;
+    NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
+    return jsobj;
+}
 +(NSDictionary*) cart_setFree:(NSString*) cart_id isfree:(bool) isfree
 +(NSDictionary*) cart_setFree:(NSString*) cart_id isfree:(bool) isfree
 {
 {
     if(![self IsNetworkAvailable])
     if(![self IsNetworkAvailable])
@@ -2083,7 +2186,7 @@ repeat:{
     
     
     
     
 }
 }
-+(NSDictionary*)update_customer_img: (NSString*) contactid img_url:(NSString*) url
++(NSDictionary*)update_customer_img: (NSString*) contactid img_url:(NSString*) url 
 {
 {
     if(![self IsNetworkAvailable])
     if(![self IsNetworkAvailable])
         return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
         return [RAUtils error_json:RESULT_NET_NOTAVAILABLE err_msg:nil];
@@ -2099,6 +2202,7 @@ repeat:{
         [params setValue:appDelegate.password forKey:@"password"];
         [params setValue:appDelegate.password forKey:@"password"];
     [params setValue:contactid forKey:@"contactId"];
     [params setValue:contactid forKey:@"contactId"];
     [params setValue:url forKey:@"business_card"];
     [params setValue:url forKey:@"business_card"];
+    [params setValue:[NSNumber numberWithInt:index ] forKey:@"index"];
     NSData* json=[self get_json:URL_UPDATE_CUSTOMER_BCARD parameters:params];
     NSData* json=[self get_json:URL_UPDATE_CUSTOMER_BCARD parameters:params];
     if(json==nil)
     if(json==nil)
         return nil;
         return nil;

+ 18 - 0
RedAnt ERP Mobile/iSales-NPD.xcodeproj/project.pbxproj

@@ -7,6 +7,8 @@
 	objects = {
 	objects = {
 
 
 /* Begin PBXBuildFile section */
 /* Begin PBXBuildFile section */
+		712C40B61C7310F4000E6831 /* CartGeneralNotesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 712C40B51C7310F4000E6831 /* CartGeneralNotesViewController.m */; };
+		712C40B91C731126000E6831 /* ItemNotesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 712C40B81C731126000E6831 /* ItemNotesViewController.m */; };
 		713F76AA1929F4A7006A7305 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 713F76A91929F4A7006A7305 /* Foundation.framework */; };
 		713F76AA1929F4A7006A7305 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 713F76A91929F4A7006A7305 /* Foundation.framework */; };
 		713F76AC1929F4A7006A7305 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 713F76AB1929F4A7006A7305 /* CoreGraphics.framework */; };
 		713F76AC1929F4A7006A7305 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 713F76AB1929F4A7006A7305 /* CoreGraphics.framework */; };
 		713F76AE1929F4A7006A7305 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 713F76AD1929F4A7006A7305 /* UIKit.framework */; };
 		713F76AE1929F4A7006A7305 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 713F76AD1929F4A7006A7305 /* UIKit.framework */; };
@@ -115,6 +117,7 @@
 		718716271C433D9700F25860 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716261C433D9700F25860 /* AudioToolbox.framework */; };
 		718716271C433D9700F25860 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716261C433D9700F25860 /* AudioToolbox.framework */; };
 		718716291C433DA400F25860 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716281C433DA400F25860 /* AVFoundation.framework */; };
 		718716291C433DA400F25860 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716281C433DA400F25860 /* AVFoundation.framework */; };
 		7187162C1C43428100F25860 /* libScanApiCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716221C433D5000F25860 /* libScanApiCore.a */; };
 		7187162C1C43428100F25860 /* libScanApiCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716221C433D5000F25860 /* libScanApiCore.a */; };
+		718B91831C75638100265FFF /* TouchImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 718B91821C75638100265FFF /* TouchImageView.m */; };
 		71DEE874192DE003003F645F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71DEE873192DE003003F645F /* QuartzCore.framework */; };
 		71DEE874192DE003003F645F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71DEE873192DE003003F645F /* QuartzCore.framework */; };
 		71DEE876192DE00E003F645F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71DEE875192DE00E003F645F /* Accelerate.framework */; };
 		71DEE876192DE00E003F645F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71DEE875192DE00E003F645F /* Accelerate.framework */; };
 		71DF742B1C57560600F2789C /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF742A1C57560600F2789C /* Reachability.m */; };
 		71DF742B1C57560600F2789C /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 71DF742A1C57560600F2789C /* Reachability.m */; };
@@ -162,6 +165,10 @@
 /* Begin PBXFileReference section */
 /* Begin PBXFileReference section */
 		56528CA8B8A71F67C2EE5366 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = "<group>"; };
 		56528CA8B8A71F67C2EE5366 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = "<group>"; };
 		6C826876B24EFB83AC94A464 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = "<group>"; };
 		6C826876B24EFB83AC94A464 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = "<group>"; };
+		712C40B41C7310F4000E6831 /* CartGeneralNotesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CartGeneralNotesViewController.h; path = common/Functions/cart/CartGeneralNotesViewController.h; sourceTree = SOURCE_ROOT; };
+		712C40B51C7310F4000E6831 /* CartGeneralNotesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CartGeneralNotesViewController.m; path = common/Functions/cart/CartGeneralNotesViewController.m; sourceTree = SOURCE_ROOT; };
+		712C40B71C731126000E6831 /* ItemNotesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ItemNotesViewController.h; path = common/Functions/cart/ItemNotesViewController.h; sourceTree = SOURCE_ROOT; };
+		712C40B81C731126000E6831 /* ItemNotesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ItemNotesViewController.m; path = common/Functions/cart/ItemNotesViewController.m; sourceTree = SOURCE_ROOT; };
 		713F76A61929F4A7006A7305 /* NPD iSales.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "NPD iSales.app"; sourceTree = BUILT_PRODUCTS_DIR; };
 		713F76A61929F4A7006A7305 /* NPD iSales.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "NPD iSales.app"; sourceTree = BUILT_PRODUCTS_DIR; };
 		713F76A91929F4A7006A7305 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
 		713F76A91929F4A7006A7305 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
 		713F76AB1929F4A7006A7305 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
 		713F76AB1929F4A7006A7305 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
@@ -366,6 +373,8 @@
 		718716261C433D9700F25860 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
 		718716261C433D9700F25860 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
 		718716281C433DA400F25860 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
 		718716281C433DA400F25860 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
 		7187162A1C43406300F25860 /* libScanApiCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libScanApiCore.a; path = "../../../ios_samples/ScanApiSDK-10.2.227/lib/libScanApiCore.a"; sourceTree = "<group>"; };
 		7187162A1C43406300F25860 /* libScanApiCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libScanApiCore.a; path = "../../../ios_samples/ScanApiSDK-10.2.227/lib/libScanApiCore.a"; sourceTree = "<group>"; };
+		718B91811C75638100265FFF /* TouchImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TouchImageView.h; path = common/customUI/TouchImageView.h; sourceTree = SOURCE_ROOT; };
+		718B91821C75638100265FFF /* TouchImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TouchImageView.m; path = common/customUI/TouchImageView.m; sourceTree = SOURCE_ROOT; };
 		71DEE873192DE003003F645F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
 		71DEE873192DE003003F645F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
 		71DEE875192DE00E003F645F /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
 		71DEE875192DE00E003F645F /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
 		71DF74291C57560600F2789C /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Reachability.h; path = common/Reachability.h; sourceTree = SOURCE_ROOT; };
 		71DF74291C57560600F2789C /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Reachability.h; path = common/Reachability.h; sourceTree = SOURCE_ROOT; };
@@ -604,6 +613,10 @@
 				7162A5131C58704600AB630E /* EditModelPriceViewController.m */,
 				7162A5131C58704600AB630E /* EditModelPriceViewController.m */,
 				7162A5141C58704600AB630E /* ModelItemCell.h */,
 				7162A5141C58704600AB630E /* ModelItemCell.h */,
 				7162A5151C58704600AB630E /* ModelItemCell.m */,
 				7162A5151C58704600AB630E /* ModelItemCell.m */,
+				712C40B71C731126000E6831 /* ItemNotesViewController.h */,
+				712C40B81C731126000E6831 /* ItemNotesViewController.m */,
+				712C40B41C7310F4000E6831 /* CartGeneralNotesViewController.h */,
+				712C40B51C7310F4000E6831 /* CartGeneralNotesViewController.m */,
 			);
 			);
 			name = cartView;
 			name = cartView;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
@@ -808,6 +821,8 @@
 				71DF747E1C57608F00F2789C /* StrikethroughLabel.m */,
 				71DF747E1C57608F00F2789C /* StrikethroughLabel.m */,
 				71DF747F1C57608F00F2789C /* TouchLabel.h */,
 				71DF747F1C57608F00F2789C /* TouchLabel.h */,
 				71DF74801C57608F00F2789C /* TouchLabel.m */,
 				71DF74801C57608F00F2789C /* TouchLabel.m */,
+				718B91811C75638100265FFF /* TouchImageView.h */,
+				718B91821C75638100265FFF /* TouchImageView.m */,
 				71DF74811C57608F00F2789C /* UILabel+FontAppearance.h */,
 				71DF74811C57608F00F2789C /* UILabel+FontAppearance.h */,
 				71DF74821C57608F00F2789C /* UILabel+FontAppearance.m */,
 				71DF74821C57608F00F2789C /* UILabel+FontAppearance.m */,
 			);
 			);
@@ -1183,6 +1198,7 @@
 				71DF745B1C575E7900F2789C /* CommonEditorCellAction.m in Sources */,
 				71DF745B1C575E7900F2789C /* CommonEditorCellAction.m in Sources */,
 				7162A5411C58719D00AB630E /* RATreeNode.m in Sources */,
 				7162A5411C58719D00AB630E /* RATreeNode.m in Sources */,
 				7162A5251C58706C00AB630E /* CategoryCellSmall.m in Sources */,
 				7162A5251C58706C00AB630E /* CategoryCellSmall.m in Sources */,
+				712C40B91C731126000E6831 /* ItemNotesViewController.m in Sources */,
 				7162A5AD1C58735900AB630E /* TearSheetParamViewController.m in Sources */,
 				7162A5AD1C58735900AB630E /* TearSheetParamViewController.m in Sources */,
 				7141DD611C5747CE00F7DF59 /* NSData+Base64.m in Sources */,
 				7141DD611C5747CE00F7DF59 /* NSData+Base64.m in Sources */,
 				7141DD5F1C5747CE00F7DF59 /* AESCrypt.m in Sources */,
 				7141DD5F1C5747CE00F7DF59 /* AESCrypt.m in Sources */,
@@ -1231,6 +1247,7 @@
 				7162A5741C58728D00AB630E /* DetailViewController.m in Sources */,
 				7162A5741C58728D00AB630E /* DetailViewController.m in Sources */,
 				7162A52A1C58713200AB630E /* CategoryCellNPD.m in Sources */,
 				7162A52A1C58713200AB630E /* CategoryCellNPD.m in Sources */,
 				71DF748E1C57608F00F2789C /* UILabel+FontAppearance.m in Sources */,
 				71DF748E1C57608F00F2789C /* UILabel+FontAppearance.m in Sources */,
+				712C40B61C7310F4000E6831 /* CartGeneralNotesViewController.m in Sources */,
 				7162A5CB1C58761500AB630E /* SignatureViewController.m in Sources */,
 				7162A5CB1C58761500AB630E /* SignatureViewController.m in Sources */,
 				7162A5DD1C5876E300AB630E /* PopupNavigationController.m in Sources */,
 				7162A5DD1C5876E300AB630E /* PopupNavigationController.m in Sources */,
 				7162A59E1C58733400AB630E /* OrderListTableViewCell.m in Sources */,
 				7162A59E1C58733400AB630E /* OrderListTableViewCell.m in Sources */,
@@ -1238,6 +1255,7 @@
 				71DF745D1C575E7900F2789C /* CommonEditorCellEnum.m in Sources */,
 				71DF745D1C575E7900F2789C /* CommonEditorCellEnum.m in Sources */,
 				7141DD521C57459B00F7DF59 /* qrinput.c in Sources */,
 				7141DD521C57459B00F7DF59 /* qrinput.c in Sources */,
 				7162A5601C58724700AB630E /* CustomerEditViewController.m in Sources */,
 				7162A5601C58724700AB630E /* CustomerEditViewController.m in Sources */,
+				718B91831C75638100265FFF /* TouchImageView.m in Sources */,
 				7162A5DC1C5876E300AB630E /* LoginViewController.m in Sources */,
 				7162A5DC1C5876E300AB630E /* LoginViewController.m in Sources */,
 				7162A5811C5872EF00AB630E /* HomeTableViewCellBanner.m in Sources */,
 				7162A5811C5872EF00AB630E /* HomeTableViewCellBanner.m in Sources */,
 				7162A5E61C58781000AB630E /* iSalesNavigationController.m in Sources */,
 				7162A5E61C58781000AB630E /* iSalesNavigationController.m in Sources */,

+ 1 - 0
RedAnt ERP Mobile/iSales-NPD/AppDelegate.h

@@ -41,6 +41,7 @@
 @property (strong,nonatomic) NSString* build;
 @property (strong,nonatomic) NSString* build;
 -(void) Logout;
 -(void) Logout;
 -(void) SetMode:(NSString*)mode;
 -(void) SetMode:(NSString*)mode;
+@property (strong,nonatomic) NSString* mode;
 -(void) SetSo:(NSString*)So;
 -(void) SetSo:(NSString*)So;
 
 
 -(void) switchToPreviousVC;
 -(void) switchToPreviousVC;

+ 3 - 0
RedAnt ERP Mobile/iSales-NPD/AppDelegate.m

@@ -226,6 +226,7 @@
         {
         {
             if([mode isEqualToString:@"Regualar Mode"])
             if([mode isEqualToString:@"Regualar Mode"])
             {
             {
+                self.mode=@"Regualar Mode";
                 NSString* title = self.user;
                 NSString* title = self.user;
                 [main_vc.buttonUser setTitle:title forState:UIControlStateNormal];
                 [main_vc.buttonUser setTitle:title forState:UIControlStateNormal];
                 
                 
@@ -239,6 +240,8 @@
             }
             }
             else
             else
             {
             {
+                
+                self.mode=@"Tradeshow Mode";
                 NSString* title = self.user;
                 NSString* title = self.user;
                 [main_vc.buttonUser setTitle:title forState:UIControlStateNormal];
                 [main_vc.buttonUser setTitle:title forState:UIControlStateNormal];
                 
                 

+ 322 - 140
RedAnt ERP Mobile/iSales-NPD/Base.lproj/Main.storyboard

@@ -2195,7 +2195,7 @@
                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                         <subviews>
                         <subviews>
                             <view contentMode="scaleToFill" id="APc-j8-ZhR" userLabel="cart item view">
                             <view contentMode="scaleToFill" id="APc-j8-ZhR" userLabel="cart item view">
-                                <rect key="frame" x="0.0" y="0.0" width="768" height="924"/>
+                                <rect key="frame" x="0.0" y="0.0" width="768" height="900"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                 <subviews>
                                 <subviews>
                                     <activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" hidesWhenStopped="YES" animating="YES" style="whiteLarge" id="636-3h-qpT" userLabel="mum">
                                     <activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" hidesWhenStopped="YES" animating="YES" style="whiteLarge" id="636-3h-qpT" userLabel="mum">
@@ -2204,7 +2204,7 @@
                                         <color key="color" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
                                         <color key="color" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
                                     </activityIndicatorView>
                                     </activityIndicatorView>
                                     <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="120" sectionHeaderHeight="22" sectionFooterHeight="22" id="r3H-Zh-AQ4">
                                     <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="120" sectionHeaderHeight="22" sectionFooterHeight="22" id="r3H-Zh-AQ4">
-                                        <rect key="frame" x="0.0" y="0.0" width="768" height="924"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="768" height="900"/>
                                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                         <color key="backgroundColor" red="0.94901960780000005" green="0.93333333330000001" blue="0.91764705879999997" alpha="1" colorSpace="calibratedRGB"/>
                                         <color key="backgroundColor" red="0.94901960780000005" green="0.93333333330000001" blue="0.91764705879999997" alpha="1" colorSpace="calibratedRGB"/>
                                         <prototypes>
                                         <prototypes>
@@ -2277,22 +2277,18 @@
                                                             <nil key="highlightedColor"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         </label>
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Master pack:9999" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="qsG-i3-KAv">
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Master pack:9999" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="qsG-i3-KAv">
-                                                            <rect key="frame" x="589" y="14" width="144" height="21"/>
+                                                            <rect key="frame" x="609" y="14" width="144" height="21"/>
                                                             <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                                             <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                             <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                             <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                             <nil key="highlightedColor"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         </label>
                                                         <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="123456789.00" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Cxh-Hh-Y8F" userLabel="subtotal price">
                                                         <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="123456789.00" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Cxh-Hh-Y8F" userLabel="subtotal price">
-                                                            <rect key="frame" x="613" y="50" width="120" height="21"/>
+                                                            <rect key="frame" x="633" y="50" width="120" height="21"/>
                                                             <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                                             <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                             <nil key="highlightedColor"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         </label>
-                                                        <imageView hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="check_1_24" id="5sz-2Y-3e4">
-                                                            <rect key="frame" x="733" y="48" width="24" height="24"/>
-                                                            <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
-                                                        </imageView>
                                                         <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="Dkp-pb-PTw">
                                                         <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="Dkp-pb-PTw">
                                                             <rect key="frame" x="645" y="86" width="56" height="25"/>
                                                             <rect key="frame" x="645" y="86" width="56" height="25"/>
                                                             <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                                             <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
@@ -2310,7 +2306,6 @@
                                                     <outlet property="bundleButton" destination="Dkp-pb-PTw" id="eDc-dg-qwF"/>
                                                     <outlet property="bundleButton" destination="Dkp-pb-PTw" id="eDc-dg-qwF"/>
                                                     <outlet property="bundleLabel" destination="QWI-YE-CV8" id="srT-BQ-YqU"/>
                                                     <outlet property="bundleLabel" destination="QWI-YE-CV8" id="srT-BQ-YqU"/>
                                                     <outlet property="editCount" destination="oSc-5L-77o" id="yVB-6f-UJ1"/>
                                                     <outlet property="editCount" destination="oSc-5L-77o" id="yVB-6f-UJ1"/>
-                                                    <outlet property="img_checkmark" destination="5sz-2Y-3e4" id="CgF-xt-SqK"/>
                                                     <outlet property="labelDescription" destination="S98-fV-nsC" id="3cx-Ee-3zi"/>
                                                     <outlet property="labelDescription" destination="S98-fV-nsC" id="3cx-Ee-3zi"/>
                                                     <outlet property="labelDiscount" destination="eye-i2-TEC" id="7ZC-tD-pNg"/>
                                                     <outlet property="labelDiscount" destination="eye-i2-TEC" id="7ZC-tD-pNg"/>
                                                     <outlet property="labelMasterpack" destination="qsG-i3-KAv" id="Kaj-AC-zHb"/>
                                                     <outlet property="labelMasterpack" destination="qsG-i3-KAv" id="Kaj-AC-zHb"/>
@@ -2337,18 +2332,25 @@
                                 <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                                 <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                             </view>
                             </view>
                             <view contentMode="scaleToFill" id="NPc-ws-YtX">
                             <view contentMode="scaleToFill" id="NPc-ws-YtX">
-                                <rect key="frame" x="0.0" y="924" width="768" height="100"/>
+                                <rect key="frame" x="0.0" y="900" width="768" height="124"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
                                 <subviews>
                                 <subviews>
-                                    <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sub Total Price:" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="wXv-yr-XXW" userLabel="total price">
-                                        <rect key="frame" x="502" y="10" width="117" height="18"/>
+                                    <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Total QTY:" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="wXv-yr-XXW" userLabel="total price">
+                                        <rect key="frame" x="502" y="10" width="117" height="20"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sub Total Price:" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="tXb-kL-1kM" userLabel="total price">
+                                        <rect key="frame" x="502" y="62" width="117" height="18"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                         <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                         <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                         <nil key="highlightedColor"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     </label>
                                     <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Rak-uF-hDd" userLabel="value">
                                     <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Rak-uF-hDd" userLabel="value">
-                                        <rect key="frame" x="627" y="8" width="124" height="18"/>
+                                        <rect key="frame" x="627" y="62" width="124" height="18"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                         <nil key="highlightedColor"/>
                                         <nil key="highlightedColor"/>
@@ -2371,13 +2373,10 @@
                                         <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                         <nil key="highlightedColor"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     </label>
-                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="jew-M1-our">
-                                        <rect key="frame" x="634" y="48" width="117" height="30"/>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="jew-M1-our">
+                                        <rect key="frame" x="634" y="83" width="117" height="30"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
-                                        <color key="backgroundColor" red="0.59999999999999998" green="0.40000000000000002" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
-                                        <state key="normal" title="Place Order">
-                                            <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
-                                        </state>
+                                        <state key="normal" title="Place Order"/>
                                         <userDefinedRuntimeAttributes>
                                         <userDefinedRuntimeAttributes>
                                             <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                             <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                                 <integer key="value" value="15"/>
                                                 <integer key="value" value="15"/>
@@ -2387,31 +2386,18 @@
                                             <action selector="onPlaceOrder:" destination="Cwo-Rn-ZMW" eventType="touchUpInside" id="oox-kf-LJE"/>
                                             <action selector="onPlaceOrder:" destination="Cwo-Rn-ZMW" eventType="touchUpInside" id="oox-kf-LJE"/>
                                         </connections>
                                         </connections>
                                     </button>
                                     </button>
-                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="TuC-Bk-vSP">
-                                        <rect key="frame" x="15" y="7" width="200" height="30"/>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="TuC-Bk-vSP">
+                                        <rect key="frame" x="15" y="7" width="170" height="30"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <color key="backgroundColor" red="0.59999999999999998" green="0.40000000000000002" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
-                                        <state key="normal" title="Remove all from order">
-                                            <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
-                                            <color key="titleShadowColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
-                                        </state>
-                                        <userDefinedRuntimeAttributes>
-                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
-                                                <integer key="value" value="15"/>
-                                            </userDefinedRuntimeAttribute>
-                                        </userDefinedRuntimeAttributes>
+                                        <state key="normal" title="Remove all from order"/>
                                         <connections>
                                         <connections>
                                             <action selector="onSelectAll:" destination="Cwo-Rn-ZMW" eventType="touchUpInside" id="Ab4-tx-Bth"/>
                                             <action selector="onSelectAll:" destination="Cwo-Rn-ZMW" eventType="touchUpInside" id="Ab4-tx-Bth"/>
                                         </connections>
                                         </connections>
                                     </button>
                                     </button>
-                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="wordWrap" id="R1S-km-dYZ">
-                                        <rect key="frame" x="15" y="48" width="200" height="30"/>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="wordWrap" id="R1S-km-dYZ">
+                                        <rect key="frame" x="15" y="45" width="170" height="30"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <color key="backgroundColor" red="0.59999999999999998" green="0.40000000000000002" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
-                                        <state key="normal" title="Continue shopping">
-                                            <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
-                                            <color key="titleShadowColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
-                                        </state>
+                                        <state key="normal" title="Continue shopping"/>
                                         <userDefinedRuntimeAttributes>
                                         <userDefinedRuntimeAttributes>
                                             <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                             <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                                 <integer key="value" value="15"/>
                                                 <integer key="value" value="15"/>
@@ -2436,16 +2422,22 @@
                                         <nil key="highlightedColor"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     </label>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Total Carton:" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="iga-uL-e6c">
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Total Carton:" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="iga-uL-e6c">
-                                        <rect key="frame" x="216" y="63" width="117" height="18"/>
+                                        <rect key="frame" x="216" y="62" width="117" height="18"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Total  Items:" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Gqc-UY-CbE">
+                                        <rect key="frame" x="502" y="36" width="117" height="20"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                         <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                         <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                         <nil key="highlightedColor"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     </label>
-                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="Tqs-85-7UT">
-                                        <rect key="frame" x="502" y="48" width="117" height="30"/>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="Tqs-85-7UT">
+                                        <rect key="frame" x="502" y="83" width="117" height="30"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
-                                        <color key="backgroundColor" red="0.59999999999999998" green="0.40000000000000002" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
                                         <state key="normal" title="Edit"/>
                                         <state key="normal" title="Edit"/>
                                         <userDefinedRuntimeAttributes>
                                         <userDefinedRuntimeAttributes>
                                             <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
                                             <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
@@ -2456,6 +2448,35 @@
                                             <action selector="onEditClick:" destination="Cwo-Rn-ZMW" eventType="touchUpInside" id="P5Y-zO-eCp"/>
                                             <action selector="onEditClick:" destination="Cwo-Rn-ZMW" eventType="touchUpInside" id="P5Y-zO-eCp"/>
                                         </connections>
                                         </connections>
                                     </button>
                                     </button>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="7DL-ww-tGr">
+                                        <rect key="frame" x="15" y="83" width="107" height="30"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                        <state key="normal" title="General notes"/>
+                                        <connections>
+                                            <action selector="onEditGeneralNotes:" destination="Cwo-Rn-ZMW" eventType="touchUpInside" id="CNQ-t3-MJV"/>
+                                        </connections>
+                                    </button>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="hbx-ZC-6uS">
+                                        <rect key="frame" x="627" y="35" width="124" height="21"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                        <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="a8v-V0-Le7">
+                                        <rect key="frame" x="627" y="10" width="117" height="21"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                        <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Q86-CY-riR">
+                                        <rect key="frame" x="130" y="89" width="356" height="18"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                        <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
                                 </subviews>
                                 </subviews>
                                 <color key="backgroundColor" red="0.94901960780000005" green="0.93333333330000001" blue="0.91764705879999997" alpha="1" colorSpace="calibratedRGB"/>
                                 <color key="backgroundColor" red="0.94901960780000005" green="0.93333333330000001" blue="0.91764705879999997" alpha="1" colorSpace="calibratedRGB"/>
                             </view>
                             </view>
@@ -2501,7 +2522,10 @@
                         <outlet property="labelTotal" destination="Rak-uF-hDd" id="zd4-Ey-hCG"/>
                         <outlet property="labelTotal" destination="Rak-uF-hDd" id="zd4-Ey-hCG"/>
                         <outlet property="label_carton" destination="ur8-5x-2YG" id="Kme-E8-VpV"/>
                         <outlet property="label_carton" destination="ur8-5x-2YG" id="Kme-E8-VpV"/>
                         <outlet property="label_cuft" destination="iCF-vq-woI" id="RuT-aL-IYn"/>
                         <outlet property="label_cuft" destination="iCF-vq-woI" id="RuT-aL-IYn"/>
+                        <outlet property="label_items" destination="hbx-ZC-6uS" id="15E-ep-V4m"/>
                         <outlet property="label_net_err" destination="ibW-P7-Q9w" id="TZZ-ja-WIj"/>
                         <outlet property="label_net_err" destination="ibW-P7-Q9w" id="TZZ-ja-WIj"/>
+                        <outlet property="label_notes" destination="Q86-CY-riR" id="Ahd-Yr-Y5K"/>
+                        <outlet property="label_qty" destination="a8v-V0-Le7" id="o1W-1L-2Mc"/>
                         <outlet property="label_weight" destination="5XQ-b9-pCs" id="T2j-4T-MeJ"/>
                         <outlet property="label_weight" destination="5XQ-b9-pCs" id="T2j-4T-MeJ"/>
                         <outlet property="mum" destination="636-3h-qpT" id="oVo-Z4-hgK"/>
                         <outlet property="mum" destination="636-3h-qpT" id="oVo-Z4-hgK"/>
                         <outlet property="toolbar" destination="GnW-hP-0qy" id="etW-tE-Wxa"/>
                         <outlet property="toolbar" destination="GnW-hP-0qy" id="etW-tE-Wxa"/>
@@ -3330,29 +3354,34 @@
                                             <outlet property="labelValue" destination="v3W-a9-ogk" id="K77-QV-Q2i"/>
                                             <outlet property="labelValue" destination="v3W-a9-ogk" id="K77-QV-Q2i"/>
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
-                                    <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellImg" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellImg" rowHeight="120" id="hDB-VQ-RpN" customClass="CommonEditorCellImg">
+                                    <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellImg" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellImg" rowHeight="120" id="hgq-kD-iRf" customClass="CommonEditorCellImg">
                                         <rect key="frame" x="0.0" y="733.5" width="768" height="120"/>
                                         <rect key="frame" x="0.0" y="733.5" width="768" height="120"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="hDB-VQ-RpN" id="Vxw-RY-3YI">
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="hgq-kD-iRf" id="9g7-Vy-Z4W">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="119.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="119.5"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                             <subviews>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="HKI-dr-fh2">
-                                                    <rect key="frame" x="15" y="53" width="150" height="21"/>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="20K-3B-t9q">
+                                                    <rect key="frame" x="15" y="50" width="150" height="21"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                     <nil key="highlightedColor"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 </label>
-                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="T9P-k8-pco">
-                                                    <rect key="frame" x="653" y="10" width="100" height="100"/>
+                                                <imageView contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="ogu-IX-QqF" customClass="TouchImageView">
+                                                    <rect key="frame" x="653" y="11" width="100" height="100"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                                    <connections>
-                                                        <action selector="ImgButtonClicked:" destination="hDB-VQ-RpN" eventType="touchUpInside" id="XSe-uC-x8t"/>
-                                                    </connections>
-                                                </button>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="ggV-BV-1Ym">
-                                                    <rect key="frame" x="180" y="53" width="458" height="21"/>
+                                                </imageView>
+                                                <imageView contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="G7O-cG-QMH" customClass="TouchImageView">
+                                                    <rect key="frame" x="545" y="11" width="100" height="100"/>
+                                                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                                </imageView>
+                                                <imageView contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="7OZ-ga-2So" customClass="TouchImageView">
+                                                    <rect key="frame" x="437" y="11" width="100" height="100"/>
+                                                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                                </imageView>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="nhU-Ia-Mq5">
+                                                    <rect key="frame" x="180" y="27" width="249" height="67"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
@@ -3361,9 +3390,11 @@
                                             </subviews>
                                             </subviews>
                                         </tableViewCellContentView>
                                         </tableViewCellContentView>
                                         <connections>
                                         <connections>
-                                            <outlet property="buttonImg" destination="T9P-k8-pco" id="ENc-Fk-eT7"/>
-                                            <outlet property="labelDescription" destination="ggV-BV-1Ym" id="aZp-m1-RCs"/>
-                                            <outlet property="labelTitle" destination="HKI-dr-fh2" id="bRi-KL-Inw"/>
+                                            <outlet property="labelDescription" destination="nhU-Ia-Mq5" id="Qo3-ek-A7W"/>
+                                            <outlet property="labelTitle" destination="20K-3B-t9q" id="mLH-Pk-VSt"/>
+                                            <outlet property="touchImageView0" destination="ogu-IX-QqF" id="Ocq-Yw-AK0"/>
+                                            <outlet property="touchImageView1" destination="G7O-cG-QMH" id="vkG-hJ-GIB"/>
+                                            <outlet property="touchImageView2" destination="7OZ-ga-2So" id="IEM-1r-lEt"/>
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                 </prototypes>
                                 </prototypes>
@@ -3783,7 +3814,7 @@
                                 <color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/>
                                 <color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/>
                                 <prototypes>
                                 <prototypes>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellModel" rowHeight="140" id="jfO-PG-uLf" customClass="CommonEditorCellModel">
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellModel" rowHeight="140" id="jfO-PG-uLf" customClass="CommonEditorCellModel">
-                                        <rect key="frame" x="0.0" y="49.5" width="768" height="140"/>
+                                        <rect key="frame" x="0.0" y="50" width="768" height="140"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="jfO-PG-uLf" id="OQa-3r-YQf">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="jfO-PG-uLf" id="OQa-3r-YQf">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="139.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="139.5"/>
@@ -3868,7 +3899,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellEnum" id="hBt-wz-8R3" customClass="CommonEditorCellEnum">
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellEnum" id="hBt-wz-8R3" customClass="CommonEditorCellEnum">
-                                        <rect key="frame" x="0.0" y="189.5" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="190" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="hBt-wz-8R3" id="4tx-f9-R46">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="hBt-wz-8R3" id="4tx-f9-R46">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
@@ -3894,7 +3925,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellSwitch" rowHeight="44" id="Frq-at-iBO" customClass="CommonEditorCellSwitch">
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellSwitch" rowHeight="44" id="Frq-at-iBO" customClass="CommonEditorCellSwitch">
-                                        <rect key="frame" x="0.0" y="233.5" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="234" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Frq-at-iBO" id="u5d-Y6-H6n">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Frq-at-iBO" id="u5d-Y6-H6n">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
@@ -3919,7 +3950,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="CommonEditorCellEdit" rowHeight="44" id="HHd-xB-CbF" customClass="CommonEditorCellEdit">
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="CommonEditorCellEdit" rowHeight="44" id="HHd-xB-CbF" customClass="CommonEditorCellEdit">
-                                        <rect key="frame" x="0.0" y="277.5" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="278" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="HHd-xB-CbF" id="3YF-sE-hnj">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="HHd-xB-CbF" id="3YF-sE-hnj">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
@@ -3946,7 +3977,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellSignature" rowHeight="140" id="O6q-II-rf6" customClass="CommonEditorCellSignature">
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellSignature" rowHeight="140" id="O6q-II-rf6" customClass="CommonEditorCellSignature">
-                                        <rect key="frame" x="0.0" y="321.5" width="768" height="140"/>
+                                        <rect key="frame" x="0.0" y="322" width="768" height="140"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="O6q-II-rf6" id="xAz-ry-USU">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="O6q-II-rf6" id="xAz-ry-USU">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="139.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="139.5"/>
@@ -3971,7 +4002,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellLabel" id="8jN-k8-vT8" customClass="CommonEditorCellLabel">
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellLabel" id="8jN-k8-vT8" customClass="CommonEditorCellLabel">
-                                        <rect key="frame" x="0.0" y="461.5" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="462" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="8jN-k8-vT8" id="y8d-Br-QK9">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="8jN-k8-vT8" id="y8d-Br-QK9">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
@@ -3999,7 +4030,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellAction" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellAction" id="fhp-We-Evw" customClass="CommonEditorCellAction">
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellAction" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellAction" id="fhp-We-Evw" customClass="CommonEditorCellAction">
-                                        <rect key="frame" x="0.0" y="505.5" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="506" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="fhp-We-Evw" id="peL-rj-bhn">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="fhp-We-Evw" id="peL-rj-bhn">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
@@ -4019,7 +4050,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellMAction" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellMAction" id="953-S4-Ybs" customClass="CommonEditorCellMAction">
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellMAction" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellMAction" id="953-S4-Ybs" customClass="CommonEditorCellMAction">
-                                        <rect key="frame" x="0.0" y="549.5" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="550" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="953-S4-Ybs" id="Tf0-xp-ake">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="953-S4-Ybs" id="Tf0-xp-ake">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
@@ -4067,7 +4098,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellTextView" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellTextView" rowHeight="140" id="4O2-Vc-tpo" customClass="CommonEditorCellTextView">
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellTextView" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellTextView" rowHeight="140" id="4O2-Vc-tpo" customClass="CommonEditorCellTextView">
-                                        <rect key="frame" x="0.0" y="593.5" width="768" height="140"/>
+                                        <rect key="frame" x="0.0" y="594" width="768" height="140"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="4O2-Vc-tpo" id="8ou-Ms-EtS">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="4O2-Vc-tpo" id="8ou-Ms-EtS">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="139.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="139.5"/>
@@ -4096,40 +4127,55 @@
                                             <outlet property="textview" destination="2GD-3v-rgI" id="nvr-rx-gzq"/>
                                             <outlet property="textview" destination="2GD-3v-rgI" id="nvr-rx-gzq"/>
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
-                                    <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellImg" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellImg" rowHeight="120" id="p7f-LJ-3n3" customClass="CommonEditorCellImg">
-                                        <rect key="frame" x="0.0" y="733.5" width="768" height="120"/>
+                                    <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellImg" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellImg" rowHeight="120" id="hgI-Qq-2nD" customClass="CommonEditorCellImg">
+                                        <rect key="frame" x="0.0" y="734" width="768" height="120"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="p7f-LJ-3n3" id="PLc-yV-TeX">
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="hgI-Qq-2nD" id="wiw-ap-T5s">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="119.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="119.5"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                             <subviews>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="cxB-Wr-yQO">
-                                                    <rect key="frame" x="15" y="53" width="150" height="21"/>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="xSE-Wq-J3k">
+                                                    <rect key="frame" x="15" y="50" width="150" height="21"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                     <nil key="highlightedColor"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 </label>
-                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="04x-2v-ZLv">
-                                                    <rect key="frame" x="653" y="10" width="100" height="100"/>
-                                                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
-                                                    <connections>
-                                                        <action selector="ImgButtonClicked:" destination="p7f-LJ-3n3" eventType="touchUpInside" id="AGP-2Z-BJF"/>
-                                                    </connections>
-                                                </button>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="HQS-Sz-ZY1">
-                                                    <rect key="frame" x="180" y="53" width="458" height="21"/>
-                                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="yAI-bA-SEu">
+                                                    <rect key="frame" x="180" y="27" width="249" height="67"/>
+                                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                     <nil key="highlightedColor"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 </label>
+                                                <imageView contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="add_180" id="fc7-B8-2rh" customClass="TouchImageView">
+                                                    <rect key="frame" x="653" y="11" width="100" height="100"/>
+                                                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                                                </imageView>
+                                                <imageView tag="1" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="add_180" id="pq3-uQ-q6j" customClass="TouchImageView">
+                                                    <rect key="frame" x="545" y="11" width="100" height="100"/>
+                                                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                                                </imageView>
+                                                <imageView tag="2" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="add_180" id="4yp-de-o0H" customClass="TouchImageView">
+                                                    <rect key="frame" x="437" y="11" width="100" height="100"/>
+                                                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                                                    <userDefinedRuntimeAttributes>
+                                                        <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
+                                                            <integer key="value" value="2"/>
+                                                        </userDefinedRuntimeAttribute>
+                                                        <userDefinedRuntimeAttribute type="color" keyPath="layer.borderColor">
+                                                            <color key="value" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
+                                                        </userDefinedRuntimeAttribute>
+                                                    </userDefinedRuntimeAttributes>
+                                                </imageView>
                                             </subviews>
                                             </subviews>
                                         </tableViewCellContentView>
                                         </tableViewCellContentView>
                                         <connections>
                                         <connections>
-                                            <outlet property="buttonImg" destination="04x-2v-ZLv" id="tEA-mc-Znk"/>
-                                            <outlet property="labelDescription" destination="HQS-Sz-ZY1" id="irp-On-5NC"/>
-                                            <outlet property="labelTitle" destination="cxB-Wr-yQO" id="Quw-rt-HSi"/>
+                                            <outlet property="labelDescription" destination="yAI-bA-SEu" id="2Tc-gF-OsQ"/>
+                                            <outlet property="labelTitle" destination="xSE-Wq-J3k" id="mb1-Gu-mDf"/>
+                                            <outlet property="touchImageView0" destination="fc7-B8-2rh" id="ejg-wi-bdA"/>
+                                            <outlet property="touchImageView1" destination="pq3-uQ-q6j" id="azR-bh-08y"/>
+                                            <outlet property="touchImageView2" destination="4yp-de-o0H" id="Oha-rM-3x2"/>
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                 </prototypes>
                                 </prototypes>
@@ -4166,10 +4212,10 @@
                                 <color key="backgroundColor" red="0.94901960780000005" green="0.93333333330000001" blue="0.91764705879999997" alpha="1" colorSpace="calibratedRGB"/>
                                 <color key="backgroundColor" red="0.94901960780000005" green="0.93333333330000001" blue="0.91764705879999997" alpha="1" colorSpace="calibratedRGB"/>
                                 <prototypes>
                                 <prototypes>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellModel" rowHeight="140" id="VsS-mx-QUE" customClass="CommonEditorCellModel">
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellModel" rowHeight="140" id="VsS-mx-QUE" customClass="CommonEditorCellModel">
-                                        <rect key="frame" x="0.0" y="49.5" width="768" height="140"/>
+                                        <rect key="frame" x="0.0" y="50" width="768" height="140"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="VsS-mx-QUE" id="swD-Ty-dh5">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="VsS-mx-QUE" id="swD-Ty-dh5">
-                                            <rect key="frame" x="0.0" y="0.0" width="768" height="139.5"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="140"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                             <subviews>
                                                 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="YuT-mx-pzq">
                                                 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="YuT-mx-pzq">
@@ -4227,10 +4273,10 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellEnum" id="hLG-bx-D5g" customClass="CommonEditorCellEnum">
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellEnum" id="hLG-bx-D5g" customClass="CommonEditorCellEnum">
-                                        <rect key="frame" x="0.0" y="189.5" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="190" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="hLG-bx-D5g" id="Ftr-it-733">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="hLG-bx-D5g" id="Ftr-it-733">
-                                            <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                             <subviews>
                                                 <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="2u9-Yh-yPm">
                                                 <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="2u9-Yh-yPm">
@@ -4254,10 +4300,10 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellSwitch" rowHeight="44" id="84I-ba-dgo" customClass="CommonEditorCellSwitch">
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellSwitch" rowHeight="44" id="84I-ba-dgo" customClass="CommonEditorCellSwitch">
-                                        <rect key="frame" x="0.0" y="233.5" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="234" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="84I-ba-dgo" id="m4g-FC-0qV">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="84I-ba-dgo" id="m4g-FC-0qV">
-                                            <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                             <subviews>
                                                 <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="KeC-Bb-MiK">
                                                 <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="KeC-Bb-MiK">
@@ -4281,10 +4327,10 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="CommonEditorCellEdit" rowHeight="44" id="rbQ-WZ-rgp" customClass="CommonEditorCellEdit">
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="CommonEditorCellEdit" rowHeight="44" id="rbQ-WZ-rgp" customClass="CommonEditorCellEdit">
-                                        <rect key="frame" x="0.0" y="277.5" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="278" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="rbQ-WZ-rgp" id="lou-RM-uZo">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="rbQ-WZ-rgp" id="lou-RM-uZo">
-                                            <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                             <subviews>
                                                 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" minimumFontSize="17" id="gmO-WI-XRS">
                                                 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" minimumFontSize="17" id="gmO-WI-XRS">
@@ -4310,7 +4356,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellSignature" rowHeight="140" id="UdD-HS-now" customClass="CommonEditorCellSignature">
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellSignature" rowHeight="140" id="UdD-HS-now" customClass="CommonEditorCellSignature">
-                                        <rect key="frame" x="0.0" y="321.5" width="768" height="140"/>
+                                        <rect key="frame" x="0.0" y="322" width="768" height="140"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="UdD-HS-now" id="f4h-LX-6q5">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="UdD-HS-now" id="f4h-LX-6q5">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="139.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="139.5"/>
@@ -4335,7 +4381,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellLabel" id="jMZ-h9-v7w" customClass="CommonEditorCellLabel">
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellLabel" id="jMZ-h9-v7w" customClass="CommonEditorCellLabel">
-                                        <rect key="frame" x="0.0" y="461.5" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="462" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="jMZ-h9-v7w" id="h5V-78-c7u">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="jMZ-h9-v7w" id="h5V-78-c7u">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
@@ -4365,7 +4411,7 @@
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="nEditorCellAction" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellAction" id="3LN-pk-gwJ" customClass="CommonEditorCellAction">
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="nEditorCellAction" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellAction" id="3LN-pk-gwJ" customClass="CommonEditorCellAction">
-                                        <rect key="frame" x="0.0" y="505.5" width="768" height="44"/>
+                                        <rect key="frame" x="0.0" y="506" width="768" height="44"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="3LN-pk-gwJ" id="m3o-A5-n3D">
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="3LN-pk-gwJ" id="m3o-A5-n3D">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
@@ -4384,70 +4430,77 @@
                                             <outlet property="labelAction" destination="2fm-Jo-U0U" id="GOS-R8-kAq"/>
                                             <outlet property="labelAction" destination="2fm-Jo-U0U" id="GOS-R8-kAq"/>
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
-                                    <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellImg" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellImg" rowHeight="120" id="bE1-Ad-zVH" customClass="CommonEditorCellImg">
-                                        <rect key="frame" x="0.0" y="549.5" width="768" height="120"/>
+                                    <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellTextView" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellTextView" rowHeight="140" id="JAa-Em-AdW" customClass="CommonEditorCellTextView">
+                                        <rect key="frame" x="0.0" y="550" width="768" height="140"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="bE1-Ad-zVH" id="gga-Wr-JVE">
-                                            <rect key="frame" x="0.0" y="0.0" width="768" height="119.5"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="JAa-Em-AdW" id="Hkq-Qy-8zT">
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="139.5"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                             <subviews>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="9H2-D9-Rdf">
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="fQe-Uq-XBK">
                                                     <rect key="frame" x="15" y="53" width="150" height="21"/>
                                                     <rect key="frame" x="15" y="53" width="150" height="21"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                     <nil key="highlightedColor"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 </label>
-                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="UJC-AK-hq7">
-                                                    <rect key="frame" x="653" y="10" width="100" height="100"/>
-                                                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
-                                                    <connections>
-                                                        <action selector="ImgButtonClicked:" destination="bE1-Ad-zVH" eventType="touchUpInside" id="r7M-kK-UwH"/>
-                                                    </connections>
-                                                </button>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="MGR-QP-ALd">
-                                                    <rect key="frame" x="180" y="53" width="458" height="21"/>
+                                                <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" textAlignment="natural" id="pLs-zi-uRi">
+                                                    <rect key="frame" x="180" y="8" width="573" height="128"/>
                                                     <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                                                     <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                                                    <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                                    <string key="text">Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.</string>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
-                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                                                    <nil key="highlightedColor"/>
-                                                </label>
+                                                    <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
+                                                    <dataDetectorType key="dataDetectorTypes" phoneNumber="YES" link="YES" address="YES"/>
+                                                </textView>
                                             </subviews>
                                             </subviews>
                                         </tableViewCellContentView>
                                         </tableViewCellContentView>
                                         <connections>
                                         <connections>
-                                            <outlet property="buttonImg" destination="UJC-AK-hq7" id="SN4-TL-e94"/>
-                                            <outlet property="labelDescription" destination="MGR-QP-ALd" id="F6F-Gp-CfG"/>
-                                            <outlet property="labelTitle" destination="9H2-D9-Rdf" id="bfO-2W-ZJZ"/>
+                                            <outlet property="label_name" destination="fQe-Uq-XBK" id="r6B-gi-dgU"/>
+                                            <outlet property="textview" destination="pLs-zi-uRi" id="bdw-9I-ugc"/>
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
-                                    <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellTextView" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellTextView" rowHeight="140" id="JAa-Em-AdW" customClass="CommonEditorCellTextView">
-                                        <rect key="frame" x="0.0" y="669.5" width="768" height="140"/>
+                                    <tableViewCell contentMode="scaleToFill" restorationIdentifier="CommonEditorCellImg" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorCellImg" rowHeight="120" id="ILu-EU-lsU" customClass="CommonEditorCellImg">
+                                        <rect key="frame" x="0.0" y="690" width="768" height="120"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="JAa-Em-AdW" id="Hkq-Qy-8zT">
-                                            <rect key="frame" x="0.0" y="0.0" width="768" height="139.5"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ILu-EU-lsU" id="e2Y-b9-F17">
+                                            <rect key="frame" x="0.0" y="0.0" width="768" height="119.5"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                             <subviews>
-                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="fQe-Uq-XBK">
-                                                    <rect key="frame" x="15" y="53" width="150" height="21"/>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Trd-8e-3Q4">
+                                                    <rect key="frame" x="15" y="50" width="150" height="21"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                                     <nil key="highlightedColor"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 </label>
-                                                <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" textAlignment="natural" id="pLs-zi-uRi">
-                                                    <rect key="frame" x="180" y="8" width="573" height="128"/>
-                                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
-                                                    <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
-                                                    <string key="text">Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.</string>
+                                                <imageView contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="7ij-FH-q5R" customClass="TouchImageView">
+                                                    <rect key="frame" x="653" y="11" width="100" height="100"/>
+                                                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                                                </imageView>
+                                                <imageView contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="KXp-os-ybo" customClass="TouchImageView">
+                                                    <rect key="frame" x="545" y="11" width="100" height="100"/>
+                                                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                                                </imageView>
+                                                <imageView contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="vbh-DM-fhR" customClass="TouchImageView">
+                                                    <rect key="frame" x="437" y="11" width="100" height="100"/>
+                                                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                                                </imageView>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="k3J-mJ-kiN">
+                                                    <rect key="frame" x="180" y="27" width="249" height="67"/>
+                                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
-                                                    <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
-                                                    <dataDetectorType key="dataDetectorTypes" phoneNumber="YES" link="YES" address="YES"/>
-                                                </textView>
+                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
                                             </subviews>
                                             </subviews>
                                         </tableViewCellContentView>
                                         </tableViewCellContentView>
                                         <connections>
                                         <connections>
-                                            <outlet property="label_name" destination="fQe-Uq-XBK" id="r6B-gi-dgU"/>
-                                            <outlet property="textview" destination="pLs-zi-uRi" id="bdw-9I-ugc"/>
+                                            <outlet property="labelDescription" destination="k3J-mJ-kiN" id="iPb-ck-9Ah"/>
+                                            <outlet property="labelTitle" destination="Trd-8e-3Q4" id="HWD-rP-tad"/>
+                                            <outlet property="touchImageView0" destination="7ij-FH-q5R" id="N8r-sS-rTw"/>
+                                            <outlet property="touchImageView1" destination="KXp-os-ybo" id="lHw-ga-q4S"/>
+                                            <outlet property="touchImageView2" destination="vbh-DM-fhR" id="ofo-OW-3pu"/>
                                         </connections>
                                         </connections>
                                     </tableViewCell>
                                     </tableViewCell>
                                 </prototypes>
                                 </prototypes>
@@ -4461,13 +4514,21 @@
                     </view>
                     </view>
                     <navigationItem key="navigationItem" title="Title" id="QgA-cN-k2t">
                     <navigationItem key="navigationItem" title="Title" id="QgA-cN-k2t">
                         <barButtonItem key="backBarButtonItem" title="Back" id="y0W-sT-I3b"/>
                         <barButtonItem key="backBarButtonItem" title="Back" id="y0W-sT-I3b"/>
-                        <barButtonItem key="rightBarButtonItem" title="Assign contact to order" id="5sG-x3-eg6">
-                            <connections>
-                                <action selector="onSetClick:" destination="DWK-Wf-EcW" id="k97-rq-IKo"/>
-                            </connections>
-                        </barButtonItem>
+                        <rightBarButtonItems>
+                            <barButtonItem title="Edit" id="6Dl-e3-x5X">
+                                <connections>
+                                    <action selector="onEditClick:" destination="DWK-Wf-EcW" id="scn-UR-6Pi"/>
+                                </connections>
+                            </barButtonItem>
+                            <barButtonItem title="Assign to order" id="5sG-x3-eg6">
+                                <connections>
+                                    <action selector="onSetClick:" destination="DWK-Wf-EcW" id="k97-rq-IKo"/>
+                                </connections>
+                            </barButtonItem>
+                        </rightBarButtonItems>
                     </navigationItem>
                     </navigationItem>
                     <connections>
                     <connections>
+                        <outlet property="btn_edit" destination="6Dl-e3-x5X" id="0Zb-6F-d86"/>
                         <outlet property="editorTable" destination="5qU-ef-a2c" id="uh4-uU-1k5"/>
                         <outlet property="editorTable" destination="5qU-ef-a2c" id="uh4-uU-1k5"/>
                         <outlet property="right_btn" destination="5sG-x3-eg6" id="w81-ln-KCf"/>
                         <outlet property="right_btn" destination="5sG-x3-eg6" id="w81-ln-KCf"/>
                     </connections>
                     </connections>
@@ -4959,7 +5020,7 @@ redantsupport@united-us.net</string>
                         <subviews>
                         <subviews>
                             <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="rJ3-Gh-cOg">
                             <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="rJ3-Gh-cOg">
                                 <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
                                 <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
-                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                             </imageView>
                             </imageView>
                         </subviews>
                         </subviews>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
@@ -6209,10 +6270,10 @@ redantsupport@united-us.net</string>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                         <prototypes>
                         <prototypes>
                             <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="Ebw-26-5Ud">
                             <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="Ebw-26-5Ud">
-                                <rect key="frame" x="0.0" y="86" width="768" height="44"/>
+                                <rect key="frame" x="0.0" y="22" width="768" height="44"/>
                                 <autoresizingMask key="autoresizingMask"/>
                                 <autoresizingMask key="autoresizingMask"/>
                                 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Ebw-26-5Ud" id="gop-RV-8fg">
                                 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Ebw-26-5Ud" id="gop-RV-8fg">
-                                    <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
+                                    <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/>
                                     <autoresizingMask key="autoresizingMask"/>
                                     <autoresizingMask key="autoresizingMask"/>
                                 </tableViewCellContentView>
                                 </tableViewCellContentView>
                             </tableViewCell>
                             </tableViewCell>
@@ -6404,7 +6465,7 @@ redantsupport@united-us.net</string>
                 </viewController>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="yoH-31-hlo" userLabel="First Responder" sceneMemberID="firstResponder"/>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="yoH-31-hlo" userLabel="First Responder" sceneMemberID="firstResponder"/>
             </objects>
             </objects>
-            <point key="canvasLocation" x="2084" y="-1596"/>
+            <point key="canvasLocation" x="2065" y="-1588"/>
         </scene>
         </scene>
         <!--ItemSearchViewController-->
         <!--ItemSearchViewController-->
         <scene sceneID="Afq-lt-Ifc">
         <scene sceneID="Afq-lt-Ifc">
@@ -7183,9 +7244,130 @@ redantsupport@united-us.net</string>
             </objects>
             </objects>
             <point key="canvasLocation" x="-1558" y="-395"/>
             <point key="canvasLocation" x="-1558" y="-395"/>
         </scene>
         </scene>
+        <!--ItemNotesViewController-->
+        <scene sceneID="FU0-46-0B3">
+            <objects>
+                <viewController storyboardIdentifier="ItemNotesViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="z8X-Ni-xE3" userLabel="ItemNotesViewController" customClass="ItemNotesViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="glj-lT-GGb">
+                        <rect key="frame" x="0.0" y="0.0" width="480" height="320"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                        <subviews>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="2Mn-Q2-gEG">
+                                <rect key="frame" x="60" y="268" width="360" height="38"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                                <color key="backgroundColor" red="0.59999999999999998" green="0.40000000000000002" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="20"/>
+                                <state key="normal" title="Save">
+                                    <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                    <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                </state>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                        <integer key="value" value="19"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
+                                <connections>
+                                    <action selector="onSaveClicked:" destination="z8X-Ni-xE3" eventType="touchUpInside" id="7ky-nQ-Ik9"/>
+                                </connections>
+                            </button>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Item notes:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="90Q-DQ-Par">
+                                <rect key="frame" x="41" y="48" width="90" height="26"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" id="uaF-eS-aiA">
+                                <rect key="frame" x="41" y="82" width="419" height="170"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
+                            </textView>
+                        </subviews>
+                        <color key="backgroundColor" red="0.94901960780000005" green="0.93333333330000001" blue="0.91764705879999997" alpha="1" colorSpace="calibratedRGB"/>
+                    </view>
+                    <navigationItem key="navigationItem" title="Model Price" id="hah-34-zzN" userLabel="Item Notes">
+                        <barButtonItem key="rightBarButtonItem" title="Close" id="PWl-19-p8o">
+                            <connections>
+                                <action selector="onCloseClicked:" destination="z8X-Ni-xE3" id="4Mj-Pb-GQB"/>
+                            </connections>
+                        </barButtonItem>
+                    </navigationItem>
+                    <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+                    <size key="freeformSize" width="480" height="320"/>
+                    <connections>
+                        <outlet property="tv_notes" destination="uaF-eS-aiA" id="gDE-OV-HDT"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="fiS-Df-JZ2" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="2034" y="-1176"/>
+        </scene>
+        <!--CartGeneralNotesViewController-->
+        <scene sceneID="WsE-4P-YUg">
+            <objects>
+                <viewController storyboardIdentifier="CartGeneralNotesViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="UXD-DN-MuG" userLabel="CartGeneralNotesViewController" customClass="CartGeneralNotesViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="81c-tD-KgH">
+                        <rect key="frame" x="0.0" y="0.0" width="480" height="320"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                        <subviews>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="S4A-xz-neh">
+                                <rect key="frame" x="60" y="268" width="360" height="38"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                                <color key="backgroundColor" red="0.59999999999999998" green="0.40000000000000002" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="20"/>
+                                <state key="normal" title="Save">
+                                    <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                    <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                </state>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                        <integer key="value" value="19"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
+                                <connections>
+                                    <action selector="onSaveClicked:" destination="UXD-DN-MuG" eventType="touchUpInside" id="Sjq-Vw-nBG"/>
+                                </connections>
+                            </button>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="General notes:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="YNX-KI-Jc2">
+                                <rect key="frame" x="41" y="48" width="112" height="26"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" id="83p-xc-EHS">
+                                <rect key="frame" x="41" y="82" width="419" height="170"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
+                            </textView>
+                        </subviews>
+                        <color key="backgroundColor" red="0.94901960780000005" green="0.93333333330000001" blue="0.91764705879999997" alpha="1" colorSpace="calibratedRGB"/>
+                    </view>
+                    <navigationItem key="navigationItem" title="Model Price" id="ksw-64-JnJ" userLabel="General Notes">
+                        <barButtonItem key="rightBarButtonItem" title="Close" id="hQq-Q9-S7C">
+                            <connections>
+                                <action selector="onCloseClicked:" destination="UXD-DN-MuG" id="poZ-5O-HTu"/>
+                            </connections>
+                        </barButtonItem>
+                    </navigationItem>
+                    <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+                    <size key="freeformSize" width="480" height="320"/>
+                    <connections>
+                        <outlet property="tv_notes" destination="83p-xc-EHS" id="adD-iG-5Gh"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="QYs-KB-eRL" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="2561" y="-1176"/>
+        </scene>
     </scenes>
     </scenes>
     <resources>
     <resources>
         <image name="about" width="96" height="96"/>
         <image name="about" width="96" height="96"/>
+        <image name="add_180" width="180" height="180"/>
         <image name="album" width="48" height="48"/>
         <image name="album" width="48" height="48"/>
         <image name="camera" width="48" height="48"/>
         <image name="camera" width="48" height="48"/>
         <image name="cart_empty" width="72" height="72"/>
         <image name="cart_empty" width="72" height="72"/>

+ 1 - 1
RedAnt ERP Mobile/iSales-NPD/OLDataProvider.m

@@ -617,7 +617,7 @@
             [arr_addr addObject:nsphone];
             [arr_addr addObject:nsphone];
             
             
             
             
-            NSString * name = [RAUtils arr2string:arr_addr separator:@","];
+            NSString * name = [RAUtils arr2string:arr_addr separator:@"," trim:true];
             
             
             
             
           
           

+ 146 - 141
RedAnt ERP Mobile/iSales-NPD/config.h

@@ -16,178 +16,183 @@
 #define LOCAL_URL_CUSTOMER_INFO_EDITOR @"customer_info_template"
 #define LOCAL_URL_CUSTOMER_INFO_EDITOR @"customer_info_template"
 #define LOCAL_URL_CUSTOMER_ADV_SEARCH @"customer_advanced_search"
 #define LOCAL_URL_CUSTOMER_ADV_SEARCH @"customer_advanced_search"
 
 
-//
-////------------------- chen server-----------------------
-//#define  URL_UPDATE_AUTH  @"http://192.168.0.119:8080/site/isales/login.htm"
-//#define  URL_LOGOUT  @"http://192.168.0.119:8080/site/isales/loginOut.htm"
-//#define  URL_RETRIEVE_PASS  @"http://192.168.0.119:8080/site/isales/forgotPassword.htm"
-//
-//#define  URL_REQUEST_CATMENU  @"http://192.168.0.119:8080/site/isales/menu.htm"
-//#define  URL_LOAD_HOME  @"http://192.168.0.119:8080/site/isales/homePage.htm"
-//#define  URL_CATEGORY @"http://192.168.0.119:8080/site/isales/distinctCategory.htm"
-//#define  URL_SEARCH  @"http://192.168.0.119:8080/site/isales/search.htm"
-//#define  URL_ITEM_SEARCH  @"http://192.168.0.119:8080/site/isales/itemSearch.htm"
-//#define  URL_CATEGORY_LOADMORE  @"http://192.168.0.119:8080/site/isales/categoryMore.htm"
-//
-//
-//
-//#define  URL_ORDER_LIST  @"http://192.168.0.119:8080/site/isales/orderList.htm"
-//#define  URL_ORDER_DETAIL  @"http://192.168.0.119:8080/site/isales/orderDetail.htm"
-//#define URL_COMMIT_ORDER @"http://192.168.0.119:8080/site/isales/createOrder.htm"
-//#define URL_SAVE_ORDER @"http://192.168.0.119:8080/site/isales/saveOrder.htm"
-//#define URL_UPDATE_ORDERCUSTOMER @"http://192.168.0.119:8080/site/isales/updateOrderCustomerInfo.htm"
-//#define  URL_NEW_ORDER  @"http://192.168.0.119:8080/site/isales/createNewOrder.htm"
-//#define  URL_OPEN_ORDER  @"http://192.168.0.119:8080/site/isales/openOrder.htm"
-//#define  URL_RELEASE_ORDER  @"http://192.168.0.119:8080/site/isales/closeOrder.htm"
-//#define  URL_DELETE_ORDER  @"http://192.168.0.119:8080/site/isales/deleteOrder.htm"
-//#define  URL_CANCEL_ORDER  @"http://192.168.0.119:8080/site/isales/cancelOrder.htm"
-//
-//
-//#define  URL_CART_SET_PRICE  @"http://192.168.0.119:8080/site/isales/setPrice.htm"
-//#define  URL_CART_INCRESEMENT  @"http://192.168.0.119:8080/site/isales/increment.htm"
-//#define  URL_CART  @"http://192.168.0.119:8080/site/isales/cartDtail.htm"
-//#define  URL_CARTDELIVERY  @"http://192.168.0.119:8080/site/isales/cartDelivery.htm"
-//#define  URL_ADD_TO_CART  @"http://192.168.0.119:8080/site/isales/addToCart.htm"
-//#define  URL_CART_REMOVE  @"http://192.168.0.119:8080/site/isales/deleteToCart.htm"
-//#define  URL_CART_CHECK  @"http://192.168.0.119:8080/site/isales/checkCartItem.htm"
-//#define  URL_CART2WISH  @"http://192.168.0.119:8080/site/isales/cartRemoveToWishlist.htm"
-//#define  URL_WISH2CART  @"http://192.168.0.119:8080/site/isales/wishlistRemoveToCart.htm"
-//
-//
-//
-//
-//#define  URL_ITEM_DETAIL  @"http://192.168.0.119:8080/site/isales/modelDetail.htm"
-//
-//#define  URL_ADD_TO_WATCHLIST  @"http://192.168.0.119:8080/site/isales/addToWishList.htm"
-//#define  URL_WATCHLIST  @"http://192.168.0.119:8080/site/isales/wishList.htm"
-//#define  URL_WATCHLIST_REMOVE  @"http://192.168.0.119:8080/site/isales/deleteToWishList.htm"
-//
-//
-//
-//#define  URL_ADD_TO_PORTFOLIO @"http://192.168.0.119:8080/site/isales/addToPortfolio.htm"
-//#define  URL_PORTFOLIO_REMOVE  @"http://192.168.0.119:8080/site/isales/deleteToPortfolio.htm"
-//#define  URL_PORTFOLIO  @"http://192.168.0.119:8080/site/isales/portfolios.htm"
-//#define  URL_PORTFOLIO_SET_PRICE  @"http://192.168.0.119:8080/site/isales/setTearSheetPrice.htm"
-//#define  URL_DM_PARAMS @"http://192.168.0.119:8080/site/isales/selectTearSheetParam.htm"
-//#define  URL_REQUEST_DM @"http://192.168.0.119:8080/site/isales/getTearSheetPdf.htm"
-//#define  URL_SAVE_DM_DIRECT @"http://192.168.0.119:8080/site/isales/getTearSheetPdf.htm"
-//#define  URL_SAVE_DM @"http://192.168.0.119:8080/site/isales/saveTearSheetPdf.htm"
-//#define  URL_DM_LIST @"http://192.168.0.119:8080/site/isales/tearSheetPdfList.htm"
-//
-//
-//#define  URL_CONTACT_LIST  @"http://192.168.0.119:8080/site/isales/getAllContact.htm"
-//#define  URL_SHIPTO_LIST  @"http://192.168.0.119:8080/site/isales/getShipToContact.htm"
-//
-//#define  URL_ADDRESS_EDOTOR  @"http://192.168.0.119:8080/site/isales/getAddAddress.htm"
-//#define  URL_ADDRESS_SAVE  @"http://192.168.0.119:8080/site/isales/saveAddress.htm"
-//
-//
-//#define  URL_CREDITCARD_EDOTOR  @"http://192.168.0.119:8080/site/isales/creditCard.htm"
-//#define  URL_CREDITCARD_SAVE  @"http://192.168.0.119:8080/site/isales/saveAddress.htm"
-//
-//
-//
-//#define  URL_CUSTOMER_INFO  @"http://192.168.0.119:8080/site/isales/getCustomerInfoByContact.htm"
-//#define  URL_CUSTOMER_EDIT  @"http://192.168.0.119:8080/site/isales/getAddCustomer.htm"
-//#define  URL_CUSTOMER_SAVE  @"http://192.168.0.119:8080/site/isales/saveCustomer.htm"
-//#define  URL_UPDATE_CUSTOMER_BCARD  @"http://192.168.0.119:8080/site/isales/updateCustomerBusiCard.htm"
-//
-//
-//
-//
-//
-//
-//#define  URL_ERR_LOG  @"http://192.168.0.119:8080/site/isales/er_log.htm"
-//
-//#define  URL_UPLOAD_IMG  @"http://192.168.0.119:8080/site/isales/uploadImg.htm"
-//
-//
 
 
+//------------------- chen server-----------------------
+#define  URL_UPDATE_AUTH  @"http://192.168.0.119:8080/site/isales/login.htm"
+#define  URL_LOGOUT  @"http://192.168.0.119:8080/site/isales/loginOut.htm"
+#define  URL_RETRIEVE_PASS  @"http://192.168.0.119:8080/site/isales/forgotPassword.htm"
+
+#define  URL_REQUEST_CATMENU  @"http://192.168.0.119:8080/site/isales/menu.htm"
+#define  URL_LOAD_HOME  @"http://192.168.0.119:8080/site/isales/homePage.htm"
+#define  URL_CATEGORY @"http://192.168.0.119:8080/site/isales/distinctCategory.htm"
+#define  URL_SEARCH  @"http://192.168.0.119:8080/site/isales/search.htm"
+#define  URL_ITEM_SEARCH  @"http://192.168.0.119:8080/site/isales/itemSearch.htm"
+#define  URL_CATEGORY_LOADMORE  @"http://192.168.0.119:8080/site/isales/categoryMore.htm"
 
 
 
 
 
 
+#define  URL_ORDER_LIST  @"http://192.168.0.119:8080/site/isales/orderList.htm"
+#define  URL_ORDER_DETAIL  @"http://192.168.0.119:8080/site/isales/orderDetail.htm"
+#define URL_COMMIT_ORDER @"http://192.168.0.119:8080/site/isales/createOrder.htm"
+#define URL_SAVE_ORDER @"http://192.168.0.119:8080/site/isales/saveOrder.htm"
+#define URL_UPDATE_ORDERCUSTOMER @"http://192.168.0.119:8080/site/isales/updateOrderCustomerInfo.htm"
+#define  URL_NEW_ORDER  @"http://192.168.0.119:8080/site/isales/createNewOrder.htm"
+#define  URL_OPEN_ORDER  @"http://192.168.0.119:8080/site/isales/openOrder.htm"
+#define  URL_RELEASE_ORDER  @"http://192.168.0.119:8080/site/isales/closeOrder.htm"
+#define  URL_DELETE_ORDER  @"http://192.168.0.119:8080/site/isales/deleteOrder.htm"
+#define  URL_CANCEL_ORDER  @"http://192.168.0.119:8080/site/isales/cancelOrder.htm"
 
 
-//------------------- test server-----------------------
-#define  URL_UPDATE_AUTH  @"http://113.28.30.235/site/isales/login.htm"
-#define  URL_LOGOUT  @"http://113.28.30.235/site/isales/loginOut.htm"
-#define  URL_RETRIEVE_PASS  @"http://113.28.30.235/site/isales/forgotPassword.htm"
 
 
-#define  URL_REQUEST_CATMENU  @"http://113.28.30.235/site/isales/menu.htm"
-#define  URL_LOAD_HOME  @"http://113.28.30.235/site/isales/homePage.htm"
-#define  URL_CATEGORY @"http://113.28.30.235/site/isales/distinctCategory.htm"
-#define  URL_SEARCH  @"http://113.28.30.235/site/isales/search.htm"
-#define  URL_ITEM_SEARCH  @"http://113.28.30.235/site/isales/itemSearch.htm"
-#define  URL_CATEGORY_LOADMORE  @"http://113.28.30.235/site/isales/categoryMore.htm"
+#define  URL_CART_SET_PRICE  @"http://192.168.0.119:8080/site/isales/setPrice.htm"
+#define  URL_CART_ITEM_NOTES  @"http://192.168.0.119:8080/site/isales/setItemNotes.htm"
+#define  URL_CART_GENERAL_NOTES  @"http://192.168.0.119:8080/site/isales/updateGeneralNote.htm"
 
 
+#define  URL_CART_INCRESEMENT  @"http://192.168.0.119:8080/site/isales/increment.htm"
+#define  URL_CART  @"http://192.168.0.119:8080/site/isales/cartDtail.htm"
+#define  URL_CARTDELIVERY  @"http://192.168.0.119:8080/site/isales/cartDelivery.htm"
+#define  URL_ADD_TO_CART  @"http://192.168.0.119:8080/site/isales/addToCart.htm"
+#define  URL_CART_REMOVE  @"http://192.168.0.119:8080/site/isales/deleteToCart.htm"
+#define  URL_CART_CHECK  @"http://192.168.0.119:8080/site/isales/checkCartItem.htm"
+#define  URL_CART2WISH  @"http://192.168.0.119:8080/site/isales/cartRemoveToWishlist.htm"
+#define  URL_WISH2CART  @"http://192.168.0.119:8080/site/isales/wishlistRemoveToCart.htm"
 
 
 
 
-#define  URL_ORDER_LIST  @"http://113.28.30.235/site/isales/orderList.htm"
-#define  URL_ORDER_DETAIL  @"http://113.28.30.235/site/isales/orderDetail.htm"
-#define URL_COMMIT_ORDER @"http://113.28.30.235/site/isales/createOrder.htm"
-#define URL_SAVE_ORDER @"http://113.28.30.235/site/isales/saveOrder.htm"
-#define URL_UPDATE_ORDERCUSTOMER @"http://113.28.30.235/site/isales/updateOrderCustomerInfo.htm"
-#define  URL_NEW_ORDER  @"http://113.28.30.235/site/isales/createNewOrder.htm"
-#define  URL_OPEN_ORDER  @"http://113.28.30.235/site/isales/openOrder.htm"
-#define  URL_RELEASE_ORDER  @"http://113.28.30.235/site/isales/closeOrder.htm"
-#define  URL_DELETE_ORDER  @"http://113.28.30.235/site/isales/deleteOrder.htm"
-#define  URL_CANCEL_ORDER  @"http://113.28.30.235/site/isales/cancelOrder.htm"
 
 
 
 
-#define  URL_CART_SET_PRICE  @"http://113.28.30.235/site/isales/setPrice.htm"
-#define  URL_CART_INCRESEMENT  @"http://113.28.30.235/site/isales/increment.htm"
-#define  URL_CART  @"http://113.28.30.235/site/isales/cartDtail.htm"
-#define  URL_CARTDELIVERY  @"http://113.28.30.235/site/isales/cartDelivery.htm"
-#define  URL_ADD_TO_CART  @"http://113.28.30.235/site/isales/addToCart.htm"
-#define  URL_CART_REMOVE  @"http://113.28.30.235/site/isales/deleteToCart.htm"
-#define  URL_CART_CHECK  @"http://113.28.30.235/site/isales/checkCartItem.htm"
+#define  URL_ITEM_DETAIL  @"http://192.168.0.119:8080/site/isales/modelDetail.htm"
 
 
-#define  URL_CART2WISH  @"http://113.28.30.235/site/isales/cartRemoveToWishlist.htm"
-#define  URL_WISH2CART  @"http://113.28.30.235/site/isales/wishlistRemoveToCart.htm"
+#define  URL_ADD_TO_WATCHLIST  @"http://192.168.0.119:8080/site/isales/addToWishList.htm"
+#define  URL_WATCHLIST  @"http://192.168.0.119:8080/site/isales/wishList.htm"
+#define  URL_WATCHLIST_REMOVE  @"http://192.168.0.119:8080/site/isales/deleteToWishList.htm"
 
 
-#define  URL_ITEM_DETAIL  @"http://113.28.30.235/site/isales/modelDetail.htm"
 
 
-#define  URL_ADD_TO_WATCHLIST  @"http://113.28.30.235/site/isales/addToWishList.htm"
-#define  URL_WATCHLIST  @"http://113.28.30.235/site/isales/wishList.htm"
-#define  URL_WATCHLIST_REMOVE  @"http://113.28.30.235/site/isales/deleteToWishList.htm"
 
 
+#define  URL_ADD_TO_PORTFOLIO @"http://192.168.0.119:8080/site/isales/addToPortfolio.htm"
+#define  URL_PORTFOLIO_REMOVE  @"http://192.168.0.119:8080/site/isales/deleteToPortfolio.htm"
+#define  URL_PORTFOLIO  @"http://192.168.0.119:8080/site/isales/portfolios.htm"
+#define  URL_PORTFOLIO_SET_PRICE  @"http://192.168.0.119:8080/site/isales/setTearSheetPrice.htm"
+#define  URL_DM_PARAMS @"http://192.168.0.119:8080/site/isales/selectTearSheetParam.htm"
+#define  URL_REQUEST_DM @"http://192.168.0.119:8080/site/isales/getTearSheetPdf.htm"
+#define  URL_SAVE_DM_DIRECT @"http://192.168.0.119:8080/site/isales/getTearSheetPdf.htm"
+#define  URL_SAVE_DM @"http://192.168.0.119:8080/site/isales/saveTearSheetPdf.htm"
+#define  URL_DM_LIST @"http://192.168.0.119:8080/site/isales/tearSheetPdfList.htm"
 
 
 
 
-#define  URL_ADD_TO_PORTFOLIO @"http://113.28.30.235/site/isales/addToPortfolio.htm"
-#define  URL_PORTFOLIO_REMOVE  @"http://113.28.30.235/site/isales/deleteToPortfolio.htm"
-#define  URL_PORTFOLIO  @"http://113.28.30.235/site/isales/portfolios.htm"
-#define  URL_PORTFOLIO_SET_PRICE  @"http://113.28.30.235/site/isales/setTearSheetPrice.htm"
-#define  URL_DM_PARAMS @"http://113.28.30.235/site/isales/selectTearSheetParam.htm"
-#define  URL_REQUEST_DM @"http://113.28.30.235/site/isales/getTearSheetPdf.htm"
-#define  URL_SAVE_DM_DIRECT @"http://113.28.30.235/site/isales/getTearSheetPdf.htm"
-#define  URL_SAVE_DM @"http://113.28.30.235/site/isales/saveTearSheetPdf.htm"
-#define  URL_DM_LIST @"http://113.28.30.235/site/isales/tearSheetPdfList.htm"
+#define  URL_CONTACT_LIST  @"http://192.168.0.119:8080/site/isales/getAllContact.htm"
+#define  URL_SHIPTO_LIST  @"http://192.168.0.119:8080/site/isales/getShipToContact.htm"
 
 
+#define  URL_ADDRESS_EDOTOR  @"http://192.168.0.119:8080/site/isales/getAddAddress.htm"
+#define  URL_ADDRESS_SAVE  @"http://192.168.0.119:8080/site/isales/saveAddress.htm"
 
 
-#define  URL_CONTACT_LIST  @"http://113.28.30.235/site/isales/getAllContact.htm"
-#define  URL_SHIPTO_LIST  @"http://113.28.30.235/site/isales/getShipToContact.htm"
 
 
-#define  URL_ADDRESS_EDOTOR  @"http://113.28.30.235/site/isales/getAddAddress.htm"
-#define  URL_ADDRESS_SAVE  @"http://113.28.30.235/site/isales/saveAddress.htm"
+#define  URL_CREDITCARD_EDOTOR  @"http://192.168.0.119:8080/site/isales/creditCard.htm"
+#define  URL_CREDITCARD_SAVE  @"http://192.168.0.119:8080/site/isales/saveAddress.htm"
 
 
 
 
-#define  URL_CREDITCARD_EDOTOR  @"http://113.28.30.235/site/isales/creditCard.htm"
-#define  URL_CREDITCARD_SAVE  @"http://113.28.30.235/site/isales/saveAddress.htm"
 
 
+#define  URL_CUSTOMER_INFO  @"http://192.168.0.119:8080/site/isales/getCustomerInfoByContact.htm"
+#define  URL_NEW_CUSTOMER  @"http://192.168.0.119:8080/site/isales/getAddCustomer.htm"
+#define  URL_EDIT_CUSTOMER  @"http://192.168.0.119:8080/site/isales/getUpdateCustomerInfoByContact.htm"
+#define  URL_CUSTOMER_SAVE  @"http://192.168.0.119:8080/site/isales/saveCustomer.htm"
+#define  URL_CUSTOMER_UPDATE  @"http://192.168.0.119:8080/site/isales/updateCustomer.htm"
+#define  URL_UPDATE_CUSTOMER_BCARD  @"http://192.168.0.119:8080/site/isales/updateCustomerBusiCard.htm"
 
 
 
 
-#define  URL_CUSTOMER_INFO  @"http://113.28.30.235/site/isales/getCustomerInfoByContact.htm"
-#define  URL_CUSTOMER_EDIT  @"http://113.28.30.235/site/isales/getAddCustomer.htm"
-#define  URL_CUSTOMER_SAVE  @"http://113.28.30.235/site/isales/saveCustomer.htm"
-#define  URL_UPDATE_CUSTOMER_BCARD  @"http://113.28.30.235/site/isales/updateCustomerBusiCard.htm"
 
 
 
 
 
 
 
 
+#define  URL_ERR_LOG  @"http://192.168.0.119:8080/site/isales/er_log.htm"
 
 
+#define  URL_UPLOAD_IMG  @"http://192.168.0.119:8080/site/isales/uploadImg.htm"
 
 
-#define  URL_ERR_LOG  @"http://113.28.30.235/site/isales/er_log.htm"
 
 
-#define  URL_UPLOAD_IMG  @"http://113.28.30.235/site/isales/uploadImg.htm"
+
+
+//
+//
+//
+////------------------- test server-----------------------
+//#define  URL_UPDATE_AUTH  @"http://113.28.30.235/site/isales/login.htm"
+//#define  URL_LOGOUT  @"http://113.28.30.235/site/isales/loginOut.htm"
+//#define  URL_RETRIEVE_PASS  @"http://113.28.30.235/site/isales/forgotPassword.htm"
+//
+//#define  URL_REQUEST_CATMENU  @"http://113.28.30.235/site/isales/menu.htm"
+//#define  URL_LOAD_HOME  @"http://113.28.30.235/site/isales/homePage.htm"
+//#define  URL_CATEGORY @"http://113.28.30.235/site/isales/distinctCategory.htm"
+//#define  URL_SEARCH  @"http://113.28.30.235/site/isales/search.htm"
+//#define  URL_ITEM_SEARCH  @"http://113.28.30.235/site/isales/itemSearch.htm"
+//#define  URL_CATEGORY_LOADMORE  @"http://113.28.30.235/site/isales/categoryMore.htm"
+//
+//
+//
+//#define  URL_ORDER_LIST  @"http://113.28.30.235/site/isales/orderList.htm"
+//#define  URL_ORDER_DETAIL  @"http://113.28.30.235/site/isales/orderDetail.htm"
+//#define URL_COMMIT_ORDER @"http://113.28.30.235/site/isales/createOrder.htm"
+//#define URL_SAVE_ORDER @"http://113.28.30.235/site/isales/saveOrder.htm"
+//#define URL_UPDATE_ORDERCUSTOMER @"http://113.28.30.235/site/isales/updateOrderCustomerInfo.htm"
+//#define  URL_NEW_ORDER  @"http://113.28.30.235/site/isales/createNewOrder.htm"
+//#define  URL_OPEN_ORDER  @"http://113.28.30.235/site/isales/openOrder.htm"
+//#define  URL_RELEASE_ORDER  @"http://113.28.30.235/site/isales/closeOrder.htm"
+//#define  URL_DELETE_ORDER  @"http://113.28.30.235/site/isales/deleteOrder.htm"
+//#define  URL_CANCEL_ORDER  @"http://113.28.30.235/site/isales/cancelOrder.htm"
+//
+//
+//#define  URL_CART_SET_PRICE  @"http://113.28.30.235/site/isales/setPrice.htm"
+//#define  URL_CART_INCRESEMENT  @"http://113.28.30.235/site/isales/increment.htm"
+//#define  URL_CART  @"http://113.28.30.235/site/isales/cartDtail.htm"
+//#define  URL_CARTDELIVERY  @"http://113.28.30.235/site/isales/cartDelivery.htm"
+//#define  URL_ADD_TO_CART  @"http://113.28.30.235/site/isales/addToCart.htm"
+//#define  URL_CART_REMOVE  @"http://113.28.30.235/site/isales/deleteToCart.htm"
+//#define  URL_CART_CHECK  @"http://113.28.30.235/site/isales/checkCartItem.htm"
+//
+//#define  URL_CART2WISH  @"http://113.28.30.235/site/isales/cartRemoveToWishlist.htm"
+//#define  URL_WISH2CART  @"http://113.28.30.235/site/isales/wishlistRemoveToCart.htm"
+//
+//#define  URL_ITEM_DETAIL  @"http://113.28.30.235/site/isales/modelDetail.htm"
+//
+//#define  URL_ADD_TO_WATCHLIST  @"http://113.28.30.235/site/isales/addToWishList.htm"
+//#define  URL_WATCHLIST  @"http://113.28.30.235/site/isales/wishList.htm"
+//#define  URL_WATCHLIST_REMOVE  @"http://113.28.30.235/site/isales/deleteToWishList.htm"
+//
+//
+//
+//#define  URL_ADD_TO_PORTFOLIO @"http://113.28.30.235/site/isales/addToPortfolio.htm"
+//#define  URL_PORTFOLIO_REMOVE  @"http://113.28.30.235/site/isales/deleteToPortfolio.htm"
+//#define  URL_PORTFOLIO  @"http://113.28.30.235/site/isales/portfolios.htm"
+//#define  URL_PORTFOLIO_SET_PRICE  @"http://113.28.30.235/site/isales/setTearSheetPrice.htm"
+//#define  URL_DM_PARAMS @"http://113.28.30.235/site/isales/selectTearSheetParam.htm"
+//#define  URL_REQUEST_DM @"http://113.28.30.235/site/isales/getTearSheetPdf.htm"
+//#define  URL_SAVE_DM_DIRECT @"http://113.28.30.235/site/isales/getTearSheetPdf.htm"
+//#define  URL_SAVE_DM @"http://113.28.30.235/site/isales/saveTearSheetPdf.htm"
+//#define  URL_DM_LIST @"http://113.28.30.235/site/isales/tearSheetPdfList.htm"
+//
+//
+//#define  URL_CONTACT_LIST  @"http://113.28.30.235/site/isales/getAllContact.htm"
+//#define  URL_SHIPTO_LIST  @"http://113.28.30.235/site/isales/getShipToContact.htm"
+//
+//#define  URL_ADDRESS_EDOTOR  @"http://113.28.30.235/site/isales/getAddAddress.htm"
+//#define  URL_ADDRESS_SAVE  @"http://113.28.30.235/site/isales/saveAddress.htm"
+//
+//
+//#define  URL_CREDITCARD_EDOTOR  @"http://113.28.30.235/site/isales/creditCard.htm"
+//#define  URL_CREDITCARD_SAVE  @"http://113.28.30.235/site/isales/saveAddress.htm"
+//
+//
+//
+//#define  URL_CUSTOMER_INFO  @"http://113.28.30.235/site/isales/getCustomerInfoByContact.htm"
+//#define  URL_NEW_CUSTOMER  @"http://113.28.30.235/site/isales/getAddCustomer.htm"
+//#define  URL_CUSTOMER_SAVE  @"http://113.28.30.235/site/isales/saveCustomer.htm"
+//#define  URL_UPDATE_CUSTOMER_BCARD  @"http://113.28.30.235/site/isales/updateCustomerBusiCard.htm"
+//
+//
+//
+//
+//
+//
+//#define  URL_ERR_LOG  @"http://113.28.30.235/site/isales/er_log.htm"
+//
+//#define  URL_UPLOAD_IMG  @"http://113.28.30.235/site/isales/uploadImg.htm"
 
 
 
 
 //
 //
@@ -260,7 +265,7 @@
 //
 //
 //
 //
 //#define  URL_CUSTOMER_INFO  @"https://www.newpacificdirect.com/isales/getCustomerInfoByContact.htm"
 //#define  URL_CUSTOMER_INFO  @"https://www.newpacificdirect.com/isales/getCustomerInfoByContact.htm"
-//#define  URL_CUSTOMER_EDIT  @"https://www.newpacificdirect.com/isales/getAddCustomer.htm"
+//#define  URL_NEW_CUSTOMER  @"https://www.newpacificdirect.com/isales/getAddCustomer.htm"
 //#define  URL_CUSTOMER_SAVE  @"https://www.newpacificdirect.com/isales/saveCustomer.htm"
 //#define  URL_CUSTOMER_SAVE  @"https://www.newpacificdirect.com/isales/saveCustomer.htm"
 //#define  URL_UPDATE_CUSTOMER_BCARD  @"https://www.newpacificdirect.com/isales/updateCustomerBusiCard.htm"
 //#define  URL_UPDATE_CUSTOMER_BCARD  @"https://www.newpacificdirect.com/isales/updateCustomerBusiCard.htm"
 //
 //