Commit 985b8e1cdd1714794c2c116dcb621fa89e67d7f1

Authored by Imanol-Mikel Barba Sabariego
1 parent c0a50a77

--no commit message

DUREX Vendor Control/Base.lproj/Localizable.strings
@@ -45,4 +45,16 @@ @@ -45,4 +45,16 @@
45 "Searching for devices..." = "Searching for devices..."; 45 "Searching for devices..." = "Searching for devices...";
46 "Connection Failed" = "Connection Failed"; 46 "Connection Failed" = "Connection Failed";
47 "An error occurred while trying to connect to the selected device" = "An error occurred while trying to connect to the selected device"; 47 "An error occurred while trying to connect to the selected device" = "An error occurred while trying to connect to the selected device";
48 -"Close" = "Close";  
49 \ No newline at end of file 48 \ No newline at end of file
  49 +"Close" = "Close";
  50 +"20€ Notes" = "20€ Notes";
  51 +"10€ Notes" = "10€ Notes";
  52 +"5€ Notes" = "5€ Notes";
  53 +"2€ Coins" = "2€ Coins";
  54 +"1€ Coins" = "1€ Coins";
  55 +"50c Coins" = "50c Coins";
  56 +"Channel" = "Channel";
  57 +"Product Code" = "Product Code";
  58 +"Nominal Price" = "Nominal Price";
  59 +"Discounted Price" = "Discounted Price";
  60 +"1€ Change" = "1€ Change";
  61 +"50c Change" = "50c Change";
50 \ No newline at end of file 62 \ No newline at end of file
DUREX Vendor Control/CommunicationProtocol.h
@@ -9,8 +9,9 @@ @@ -9,8 +9,9 @@
9 #import <Foundation/Foundation.h> 9 #import <Foundation/Foundation.h>
10 #import "EMFramework.h" 10 #import "EMFramework.h"
11 11
12 -#define MAX_STRING_LENGTH ((int)200)  
13 -#define MAX_RETRIES ((int)3) 12 +#define MAX_STRING_LENGTH ((int)200)
  13 +#define MAX_RETRIES ((int)3)
  14 +#define MAX_PRODUCT_NAME_LENGTH ((int)64)
14 15
15 @interface CommunicationProtocol : NSObject 16 @interface CommunicationProtocol : NSObject
16 17
@@ -18,6 +19,9 @@ @@ -18,6 +19,9 @@
18 -(Boolean) writeMessage: (NSString*) message; 19 -(Boolean) writeMessage: (NSString*) message;
19 -(NSString*) readMessage; 20 -(NSString*) readMessage;
20 -(Boolean) establishConnection; 21 -(Boolean) establishConnection;
  22 +-(Boolean) updateTime: (NSDateComponents*) date;
  23 +-(Boolean) updatePrice: (uint8_t) channel : (uint8_t) product : (uint8_t) eur : (uint8_t) cents;
  24 +-(Boolean) updateProductName: (uint8_t) channel : (uint8_t) product : (NSString*) name;
21 +(id) sharedProtocol; 25 +(id) sharedProtocol;
22 @property Boolean messageAvailable; 26 @property Boolean messageAvailable;
23 27
DUREX Vendor Control/CommunicationProtocol.m
@@ -185,4 +185,54 @@ @@ -185,4 +185,54 @@
185 return FALSE; 185 return FALSE;
186 } 186 }
187 187
  188 +-(Boolean) updateTime: (NSDateComponents*) date
  189 +{
  190 + if(date == nil)
  191 + {
  192 + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
  193 + NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
  194 + date = [calendar components:units fromDate:[NSDate date]];
  195 + }
  196 + NSMutableString *command = [NSMutableString stringWithFormat: @"A5"];
  197 + NSInteger year = [date year];
  198 + year = year - (year/100)*100;
  199 + [command appendString:[NSString stringWithFormat:@"%02d",year]];
  200 + [command appendString:[NSString stringWithFormat:@"%02d%02d%02d%02d%02d",[date month],[date day],[date hour],[date minute],[date second]]];
  201 + [self writeMessage:command];
  202 + NSString *answer = [self readMessage];
  203 + if([answer isEqualToString:@"P51"])
  204 + {
  205 + return TRUE;
  206 + }
  207 + return FALSE;
  208 +}
  209 +
  210 +-(Boolean) updatePrice: (uint8_t) channel : (uint8_t) product : (uint8_t) eur : (uint8_t) cents
  211 +{
  212 + NSMutableString *command = [NSMutableString stringWithFormat: @"A6%01d%01d%02d%02d",channel,product,eur,cents];
  213 + [self writeMessage:command];
  214 + NSString *answer = [self readMessage];
  215 + if([answer isEqualToString:@"P61"])
  216 + {
  217 + return TRUE;
  218 + }
  219 + return FALSE;
  220 +}
  221 +
  222 +-(Boolean) updateProductName: (uint8_t) channel : (uint8_t) product : (NSString*) name
  223 +{
  224 + if([name length] > MAX_PRODUCT_NAME_LENGTH)
  225 + {
  226 + name = [name substringToIndex:MAX_PRODUCT_NAME_LENGTH-1];
  227 + }
  228 + NSMutableString *command = [NSMutableString stringWithFormat: @"A7%01d%01d%@",channel,product,name];
  229 + [self writeMessage:command];
  230 + NSString *answer = [self readMessage];
  231 + if([answer isEqualToString:@"P71"])
  232 + {
  233 + return TRUE;
  234 + }
  235 + return FALSE;
  236 +}
  237 +
188 @end 238 @end
DUREX Vendor Control/DUREX Vendor Control.xcodeproj/project.pbxproj
@@ -429,8 +429,8 @@ @@ -429,8 +429,8 @@
429 CLANG_WARN_INT_CONVERSION = YES; 429 CLANG_WARN_INT_CONVERSION = YES;
430 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 430 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
431 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 431 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
432 - CODE_SIGN_IDENTITY = "iPhone Developer";  
433 - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 432 + CODE_SIGN_IDENTITY = "";
  433 + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
434 COPY_PHASE_STRIP = NO; 434 COPY_PHASE_STRIP = NO;
435 GCC_C_LANGUAGE_STANDARD = gnu99; 435 GCC_C_LANGUAGE_STANDARD = gnu99;
436 GCC_DYNAMIC_NO_PIC = NO; 436 GCC_DYNAMIC_NO_PIC = NO;
@@ -469,8 +469,8 @@ @@ -469,8 +469,8 @@
469 CLANG_WARN_INT_CONVERSION = YES; 469 CLANG_WARN_INT_CONVERSION = YES;
470 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 470 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
471 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 471 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
472 - CODE_SIGN_IDENTITY = "iPhone Developer";  
473 - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 472 + CODE_SIGN_IDENTITY = "";
  473 + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
474 COPY_PHASE_STRIP = YES; 474 COPY_PHASE_STRIP = YES;
475 ENABLE_NS_ASSERTIONS = NO; 475 ENABLE_NS_ASSERTIONS = NO;
476 GCC_C_LANGUAGE_STANDARD = gnu99; 476 GCC_C_LANGUAGE_STANDARD = gnu99;
DUREX Vendor Control/DUREX Vendor Control.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
DUREX Vendor Control/FirstAppExample/Base.lproj/MainStoryboard.storyboard
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?> 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5056" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="kWw-Rk-wD6"> 2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5056" systemVersion="13E28" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="kWw-Rk-wD6">
3 <dependencies> 3 <dependencies>
4 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/> 4 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
5 </dependencies> 5 </dependencies>
@@ -78,9 +78,26 @@ @@ -78,9 +78,26 @@
78 </subviews> 78 </subviews>
79 </tableViewCellContentView> 79 </tableViewCellContentView>
80 </tableViewCell> 80 </tableViewCell>
81 - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="MaintenanceCell" textLabel="C5J-Ml-IpR" detailTextLabel="2Zv-NQ-q8W" style="IBUITableViewCellStyleValue1" id="tNx-4C-IjZ"> 81 + <tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="ConfigCell" textLabel="PIv-Eg-iw5" style="IBUITableViewCellStyleDefault" id="fRm-AU-oWl">
82 <rect key="frame" x="0.0" y="130" width="320" height="44"/> 82 <rect key="frame" x="0.0" y="130" width="320" height="44"/>
83 <autoresizingMask key="autoresizingMask"/> 83 <autoresizingMask key="autoresizingMask"/>
  84 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="fRm-AU-oWl" id="fZ0-yn-P6t">
  85 + <rect key="frame" x="0.0" y="0.0" width="287" height="43"/>
  86 + <autoresizingMask key="autoresizingMask"/>
  87 + <subviews>
  88 + <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="PIv-Eg-iw5">
  89 + <rect key="frame" x="15" y="0.0" width="270" height="43"/>
  90 + <autoresizingMask key="autoresizingMask"/>
  91 + <fontDescription key="fontDescription" type="system" pointSize="18"/>
  92 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  93 + <nil key="highlightedColor"/>
  94 + </label>
  95 + </subviews>
  96 + </tableViewCellContentView>
  97 + </tableViewCell>
  98 + <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="MaintenanceCell" textLabel="C5J-Ml-IpR" detailTextLabel="2Zv-NQ-q8W" style="IBUITableViewCellStyleValue1" id="tNx-4C-IjZ">
  99 + <rect key="frame" x="0.0" y="174" width="320" height="44"/>
  100 + <autoresizingMask key="autoresizingMask"/>
84 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="tNx-4C-IjZ" id="YyS-Ug-Lg0"> 101 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="tNx-4C-IjZ" id="YyS-Ug-Lg0">
85 <rect key="frame" x="0.0" y="0.0" width="320" height="43"/> 102 <rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
86 <autoresizingMask key="autoresizingMask"/> 103 <autoresizingMask key="autoresizingMask"/>
@@ -102,6 +119,30 @@ @@ -102,6 +119,30 @@
102 </subviews> 119 </subviews>
103 </tableViewCellContentView> 120 </tableViewCellContentView>
104 </tableViewCell> 121 </tableViewCell>
  122 + <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="SalesCell" textLabel="HRc-DC-qxG" detailTextLabel="dhY-17-9fo" style="IBUITableViewCellStyleValue1" id="gpr-Mk-KfN">
  123 + <rect key="frame" x="0.0" y="218" width="320" height="44"/>
  124 + <autoresizingMask key="autoresizingMask"/>
  125 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="gpr-Mk-KfN" id="bFe-TX-iWA">
  126 + <rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
  127 + <autoresizingMask key="autoresizingMask"/>
  128 + <subviews>
  129 + <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="HRc-DC-qxG">
  130 + <rect key="frame" x="15" y="11" width="33" height="21"/>
  131 + <autoresizingMask key="autoresizingMask"/>
  132 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  133 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  134 + <nil key="highlightedColor"/>
  135 + </label>
  136 + <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Detail" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="dhY-17-9fo">
  137 + <rect key="frame" x="261" y="11" width="44" height="21"/>
  138 + <autoresizingMask key="autoresizingMask"/>
  139 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  140 + <color key="textColor" red="0.5568627451" green="0.5568627451" blue="0.57647058819999997" alpha="1" colorSpace="calibratedRGB"/>
  141 + <nil key="highlightedColor"/>
  142 + </label>
  143 + </subviews>
  144 + </tableViewCellContentView>
  145 + </tableViewCell>
105 </prototypes> 146 </prototypes>
106 <sections/> 147 <sections/>
107 <connections> 148 <connections>
DUREX Vendor Control/MenuTableViewController.h
@@ -21,13 +21,20 @@ @@ -21,13 +21,20 @@
21 #define MAINTENANCE_CELLS_PER_SECTION num(23),num(3) 21 #define MAINTENANCE_CELLS_PER_SECTION num(23),num(3)
22 #define MAINTENANCE_HEADERS NSLocalizedString(@"Sensors", nil),NSLocalizedString(@"Commands", nil) 22 #define MAINTENANCE_HEADERS NSLocalizedString(@"Sensors", nil),NSLocalizedString(@"Commands", nil)
23 23
24 -#define CELL_IDENTIFIERS @"MenuCell",@"MaintenanceCell",@"ConfigCell",@"ReportCell" 24 +#define SALES_ELEMENTS @"20€ Notes",@"10€ Notes",@"5€ Notes",@"2€ Coins",@"1€ Coins",@"50c Coins",@"Channel",@"Product Code",@"Nominal Price",@"Discounted Price",@"1€ Change",@"50c Change",@"20€ Notes",@"10€ Notes",@"5€ Notes",@"2€ Coins",@"1€ Coins",@"50c Coins",@"Channel",@"Product Code",@"Nominal Price",@"Discounted Price",@"1€ Change",@"50c Change",@"20€ Notes",@"10€ Notes",@"5€ Notes",@"2€ Coins",@"1€ Coins",@"50c Coins",@"Channel",@"Product Code",@"Nominal Price",@"Discounted Price",@"1€ Change",@"50c Change"
  25 +#define SALES_CELLS_PER_SECTION num(12),num(12),num(12)
  26 +#define SALES_HEADERS @"14/06/2014",@"25/06/2014",@"05/07/2014"
25 27
26 -#define NUM_CHANNELS 8 28 +#define CONFIGURATION_ELEMENTS @"Update Date & Time",@"Update product price",@"Update product name"
  29 +#define CONFIGURATION_CELLS_PER_SECTION num(3)
  30 +#define CONFIGURATION_HEADERS nil
  31 +
  32 +#define CELL_IDENTIFIERS @"MenuCell",@"MaintenanceCell",@"SalesCell",@"ConfigCell",@"ReportCell"
27 33
28 enum { 34 enum {
29 MENU = 0, 35 MENU = 0,
30 MAINTENANCE, 36 MAINTENANCE,
  37 + SALES,
31 BASIC_CONFIGURATION, 38 BASIC_CONFIGURATION,
32 REPORT, 39 REPORT,
33 } navigationLevel; 40 } navigationLevel;
DUREX Vendor Control/MenuTableViewController.m
@@ -21,6 +21,14 @@ @@ -21,6 +21,14 @@
21 @property (nonatomic,strong) const NSArray *maintenanceStructure; 21 @property (nonatomic,strong) const NSArray *maintenanceStructure;
22 @property (nonatomic,strong) const NSArray *maintenanceHeaders; 22 @property (nonatomic,strong) const NSArray *maintenanceHeaders;
23 23
  24 +@property (nonatomic,strong) const NSArray *salesElements;
  25 +@property (nonatomic,strong) const NSArray *salesStructure;
  26 +@property (nonatomic,strong) const NSArray *salesHeaders;
  27 +
  28 +@property (nonatomic,strong) const NSArray *configElements;
  29 +@property (nonatomic,strong) const NSArray *configStructure;
  30 +@property (nonatomic,strong) const NSArray *configHeaders;
  31 +
24 @property (nonatomic,strong) const NSArray *cellIdentifiers; 32 @property (nonatomic,strong) const NSArray *cellIdentifiers;
25 33
26 @property (nonatomic,strong) CommunicationProtocol* protocol; 34 @property (nonatomic,strong) CommunicationProtocol* protocol;
@@ -68,6 +76,28 @@ @@ -68,6 +76,28 @@
68 [self setMaintenanceHeaders:nil]; 76 [self setMaintenanceHeaders:nil];
69 } 77 }
70 78
  79 + [self setSalesElements:[[NSArray alloc] initWithObjects:SALES_ELEMENTS, nil]];
  80 + [self setSalesStructure:[[NSArray alloc] initWithObjects:SALES_CELLS_PER_SECTION, nil]];
  81 + if([[self salesStructure] count] > 1)
  82 + {
  83 + [self setSalesHeaders:[[NSArray alloc] initWithObjects:SALES_HEADERS, nil]];
  84 + }
  85 + else
  86 + {
  87 + [self setSalesHeaders:nil];
  88 + }
  89 +
  90 + [self setConfigElements:[[NSArray alloc] initWithObjects:CONFIGURATION_ELEMENTS, nil]];
  91 + [self setConfigStructure:[[NSArray alloc] initWithObjects:CONFIGURATION_CELLS_PER_SECTION, nil]];
  92 + if([[self configStructure] count] > 1)
  93 + {
  94 + [self setConfigHeaders:[[NSArray alloc] initWithObjects:CONFIGURATION_HEADERS, nil]];
  95 + }
  96 + else
  97 + {
  98 + [self setConfigHeaders:nil];
  99 + }
  100 +
71 [self setCellIdentifiers:[[NSArray alloc] initWithObjects:CELL_IDENTIFIERS, nil]]; 101 [self setCellIdentifiers:[[NSArray alloc] initWithObjects:CELL_IDENTIFIERS, nil]];
72 } 102 }
73 103
@@ -94,6 +124,20 @@ @@ -94,6 +124,20 @@
94 [self setCurrentStructure:[self maintenanceStructure]]; 124 [self setCurrentStructure:[self maintenanceStructure]];
95 [self setCurrentHeaders:[self maintenanceHeaders]]; 125 [self setCurrentHeaders:[self maintenanceHeaders]];
96 } 126 }
  127 + else if([self currentNavLevel] == SALES)
  128 + {
  129 + [[self navigationItem] setTitle:NSLocalizedString(@"Sales log", nil)];
  130 + [self setCurrentElements:[self salesElements]];
  131 + [self setCurrentStructure:[self salesStructure]];
  132 + [self setCurrentHeaders:[self salesHeaders]];
  133 + }
  134 + else if([self currentNavLevel] == BASIC_CONFIGURATION)
  135 + {
  136 + [[self navigationItem] setTitle:NSLocalizedString(@"Basic Configuration", nil)];
  137 + [self setCurrentElements:[self configElements]];
  138 + [self setCurrentStructure:[self configStructure]];
  139 + [self setCurrentHeaders:[self configHeaders]];
  140 + }
97 //AND SO ON... 141 //AND SO ON...
98 [[self tableView] reloadData]; 142 [[self tableView] reloadData];
99 NSRange range = NSMakeRange(0, [self numberOfSectionsInTableView:[self tableView]]); 143 NSRange range = NSMakeRange(0, [self numberOfSectionsInTableView:[self tableView]]);
@@ -235,12 +279,27 @@ @@ -235,12 +279,27 @@
235 NSLog(@"Section: %ld Row: %ld",(long)[indexPath section],(long)[indexPath row]); 279 NSLog(@"Section: %ld Row: %ld",(long)[indexPath section],(long)[indexPath row]);
236 [tableView deselectRowAtIndexPath:indexPath animated:YES]; 280 [tableView deselectRowAtIndexPath:indexPath animated:YES];
237 NSString *cellName = [[[[self tableView] cellForRowAtIndexPath:indexPath]textLabel]text]; 281 NSString *cellName = [[[[self tableView] cellForRowAtIndexPath:indexPath]textLabel]text];
238 - if([cellName isEqualToString:NSLocalizedString(@"Maintenance", nil)]) 282 + if([cellName isEqualToString:NSLocalizedString(@"Maintenance", nil)] && [self currentNavLevel] == MENU)
239 { 283 {
240 NSLog(@"[MenuTableViewController.m]: Changing to navLevel: MAINTENANCE"); 284 NSLog(@"[MenuTableViewController.m]: Changing to navLevel: MAINTENANCE");
241 285
242 [self changeNavLevel:MAINTENANCE:TRUE]; 286 [self changeNavLevel:MAINTENANCE:TRUE];
243 } 287 }
  288 + else if([cellName isEqualToString:NSLocalizedString(@"Sales log", nil)] && [self currentNavLevel] == MAINTENANCE)
  289 + {
  290 + NSLog(@"[MenuTableViewController.m]: Changing to navLevel: SALES");
  291 + [self changeNavLevel:SALES:TRUE];
  292 + }
  293 + else if([cellName isEqualToString:NSLocalizedString(@"Sales log", nil)] && [self currentNavLevel] == MAINTENANCE)
  294 + {
  295 + NSLog(@"[MenuTableViewController.m]: Changing to navLevel: SALES");
  296 + [self changeNavLevel:SALES:TRUE];
  297 + }
  298 + else if([cellName isEqualToString:NSLocalizedString(@"Basic Configuration", nil)] && [self currentNavLevel] == MENU)
  299 + {
  300 + NSLog(@"[MenuTableViewController.m]: Changing to navLevel: BASIC_CONFIGURATION");
  301 + [self changeNavLevel:BASIC_CONFIGURATION:TRUE];
  302 + }
244 } 303 }
245 304
246 #pragma mark - Table view data source 305 #pragma mark - Table view data source
@@ -300,6 +359,10 @@ @@ -300,6 +359,10 @@
300 359
301 } 360 }
302 } 361 }
  362 + else if([self currentNavLevel] == SALES)
  363 + {
  364 +
  365 + }
303 return cell; 366 return cell;
304 } 367 }
305 368
DUREX Vendor Control/Stack.m
@@ -27,10 +27,12 @@ @@ -27,10 +27,12 @@
27 - (void) push: (id) element 27 - (void) push: (id) element
28 { 28 {
29 [[self dataArray] addObject:element]; 29 [[self dataArray] addObject:element];
  30 + [self setLastPosition: [self lastPosition] + 1];
30 } 31 }
31 - (id) pop 32 - (id) pop
32 { 33 {
33 id element; 34 id element;
  35 + [self setLastPosition: [self lastPosition] - 1];
34 element = [[self dataArray] objectAtIndex:[self lastPosition]]; 36 element = [[self dataArray] objectAtIndex:[self lastPosition]];
35 [[self dataArray] removeLastObject]; 37 [[self dataArray] removeLastObject];
36 return element; 38 return element;
DUREX Vendor Control/en.lproj/Localizable.strings
@@ -45,4 +45,16 @@ @@ -45,4 +45,16 @@
45 "Searching for devices..." = "Searching for devices..."; 45 "Searching for devices..." = "Searching for devices...";
46 "Connection Failed" = "Connection Failed"; 46 "Connection Failed" = "Connection Failed";
47 "An error occurred while trying to connect to the selected device" = "An error occurred while trying to connect to the selected device"; 47 "An error occurred while trying to connect to the selected device" = "An error occurred while trying to connect to the selected device";
48 -"Close" = "Close";  
49 \ No newline at end of file 48 \ No newline at end of file
  49 +"Close" = "Close";
  50 +"20€ Notes" = "20€ Notes";
  51 +"10€ Notes" = "10€ Notes";
  52 +"5€ Notes" = "5€ Notes";
  53 +"2€ Coins" = "2€ Coins";
  54 +"1€ Coins" = "1€ Coins";
  55 +"50c Coins" = "50c Coins";
  56 +"Channel" = "Channel";
  57 +"Product Code" = "Product Code";
  58 +"Nominal Price" = "Nominal Price";
  59 +"Discounted Price" = "Discounted Price";
  60 +"1€ Change" = "1€ Change";
  61 +"50c Change" = "50c Change";
50 \ No newline at end of file 62 \ No newline at end of file
DUREX Vendor Control/es.lproj/Localizable.strings
@@ -45,4 +45,16 @@ @@ -45,4 +45,16 @@
45 "Searching for devices..." = "Buscando dispositivos..."; 45 "Searching for devices..." = "Buscando dispositivos...";
46 "Connection Failed" = "Falló la conexión"; 46 "Connection Failed" = "Falló la conexión";
47 "An error occurred while trying to connect to the selected device" = "Error al intentar conectarse al dispositivo seleccionado"; 47 "An error occurred while trying to connect to the selected device" = "Error al intentar conectarse al dispositivo seleccionado";
48 -"Close" = "Cerrar";  
49 \ No newline at end of file 48 \ No newline at end of file
  49 +"Close" = "Cerrar";
  50 +"20€ Notes" = "Billetes de 20€";
  51 +"10€ Notes" = "Billetes de 10€";
  52 +"5€ Notes" = "Billetes de 5€";
  53 +"2€ Coins" = "Monedas de 2€";
  54 +"1€ Coins" = "Monedas de 1€";
  55 +"50c Coins" = "Monedas de 50c";
  56 +"Channel" = "Canal";
  57 +"Product Code" = "Código del producto";
  58 +"Nominal Price" = "Precio Nominal";
  59 +"Discounted Price" = "Precio con descuento";
  60 +"1€ Change" = "Cambio de 1€";
  61 +"50c Change" = "Cambio de 50c";
50 \ No newline at end of file 62 \ No newline at end of file
DUREX tests/Base.lproj/Localizable.strings
@@ -38,4 +38,19 @@ @@ -38,4 +38,19 @@
38 "50c Coin spin" = "50c Coin spin"; 38 "50c Coin spin" = "50c Coin spin";
39 "Sales log" = "Sales log"; 39 "Sales log" = "Sales log";
40 "Incident report" = "Incident report"; 40 "Incident report" = "Incident report";
41 -"Send report" = "Send report";  
42 \ No newline at end of file 41 \ No newline at end of file
  42 +"Send report" = "Send report";
  43 +"20€ Notes" = "20€ Notes";
  44 +"10€ Notes" = "10€ Notes";
  45 +"5€ Notes" = "5€ Notes";
  46 +"2€ Coins" = "2€ Coins";
  47 +"1€ Coins" = "1€ Coins";
  48 +"50c Coins" = "50c Coins";
  49 +"Channel" = "Channel";
  50 +"Product Code" = "Product Code";
  51 +"Nominal Price" = "Nominal Price";
  52 +"Discounted Price" = "Discounted Price";
  53 +"1€ Change" = "1€ Change";
  54 +"50c Change" = "50c Change";
  55 +"Update Date & Time" = "Update Date & Time";
  56 +"Update product price" = "Update product price";
  57 +"Update product name" = "Update product name";
43 \ No newline at end of file 58 \ No newline at end of file
DUREX tests/Base.lproj/MainStoryboard.storyboard
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?> 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5056" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="kWw-Rk-wD6"> 2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5056" systemVersion="13E28" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="kWw-Rk-wD6">
3 <dependencies> 3 <dependencies>
4 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/> 4 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
5 </dependencies> 5 </dependencies>
@@ -78,9 +78,26 @@ @@ -78,9 +78,26 @@
78 </subviews> 78 </subviews>
79 </tableViewCellContentView> 79 </tableViewCellContentView>
80 </tableViewCell> 80 </tableViewCell>
81 - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="MaintenanceCell" textLabel="oML-ji-1Ho" detailTextLabel="Ghk-fD-iNE" style="IBUITableViewCellStyleValue1" id="apQ-aM-g3l"> 81 + <tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="ConfigCell" textLabel="lht-4G-6aX" style="IBUITableViewCellStyleDefault" id="udl-ZZ-ijZ">
82 <rect key="frame" x="0.0" y="130" width="320" height="44"/> 82 <rect key="frame" x="0.0" y="130" width="320" height="44"/>
83 <autoresizingMask key="autoresizingMask"/> 83 <autoresizingMask key="autoresizingMask"/>
  84 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="udl-ZZ-ijZ" id="SlK-j4-bxE">
  85 + <rect key="frame" x="0.0" y="0.0" width="287" height="43"/>
  86 + <autoresizingMask key="autoresizingMask"/>
  87 + <subviews>
  88 + <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="lht-4G-6aX">
  89 + <rect key="frame" x="15" y="0.0" width="270" height="43"/>
  90 + <autoresizingMask key="autoresizingMask"/>
  91 + <fontDescription key="fontDescription" type="system" pointSize="18"/>
  92 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  93 + <nil key="highlightedColor"/>
  94 + </label>
  95 + </subviews>
  96 + </tableViewCellContentView>
  97 + </tableViewCell>
  98 + <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="MaintenanceCell" textLabel="oML-ji-1Ho" detailTextLabel="Ghk-fD-iNE" style="IBUITableViewCellStyleValue1" id="apQ-aM-g3l">
  99 + <rect key="frame" x="0.0" y="174" width="320" height="44"/>
  100 + <autoresizingMask key="autoresizingMask"/>
84 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="apQ-aM-g3l" id="dQQ-Yv-wa7"> 101 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="apQ-aM-g3l" id="dQQ-Yv-wa7">
85 <rect key="frame" x="0.0" y="0.0" width="320" height="43"/> 102 <rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
86 <autoresizingMask key="autoresizingMask"/> 103 <autoresizingMask key="autoresizingMask"/>
@@ -102,6 +119,30 @@ @@ -102,6 +119,30 @@
102 </subviews> 119 </subviews>
103 </tableViewCellContentView> 120 </tableViewCellContentView>
104 </tableViewCell> 121 </tableViewCell>
  122 + <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="SalesCell" textLabel="CUV-qn-vKu" detailTextLabel="S5I-Bk-8Z7" style="IBUITableViewCellStyleValue1" id="9Sz-ic-H44">
  123 + <rect key="frame" x="0.0" y="218" width="320" height="44"/>
  124 + <autoresizingMask key="autoresizingMask"/>
  125 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="9Sz-ic-H44" id="Kux-KL-HPg">
  126 + <rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
  127 + <autoresizingMask key="autoresizingMask"/>
  128 + <subviews>
  129 + <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="CUV-qn-vKu">
  130 + <rect key="frame" x="15" y="11" width="33" height="21"/>
  131 + <autoresizingMask key="autoresizingMask"/>
  132 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  133 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  134 + <nil key="highlightedColor"/>
  135 + </label>
  136 + <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Detail" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="S5I-Bk-8Z7">
  137 + <rect key="frame" x="261" y="11" width="44" height="21"/>
  138 + <autoresizingMask key="autoresizingMask"/>
  139 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  140 + <color key="textColor" red="0.5568627451" green="0.5568627451" blue="0.57647058819999997" alpha="1" colorSpace="calibratedRGB"/>
  141 + <nil key="highlightedColor"/>
  142 + </label>
  143 + </subviews>
  144 + </tableViewCellContentView>
  145 + </tableViewCell>
105 </prototypes> 146 </prototypes>
106 <sections/> 147 <sections/>
107 <connections> 148 <connections>
@@ -166,10 +207,10 @@ @@ -166,10 +207,10 @@
166 </subviews> 207 </subviews>
167 <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> 208 <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
168 <constraints> 209 <constraints>
169 - <constraint firstItem="oyW-sA-Lfb" firstAttribute="top" secondItem="bXZ-vt-REt" secondAttribute="bottom" constant="8" id="4cZ-A3-dtl"/> 210 + <constraint firstItem="oyW-sA-Lfb" firstAttribute="centerX" secondItem="bXZ-vt-REt" secondAttribute="centerX" constant="0.5" id="FeM-2t-cfF"/>
  211 + <constraint firstItem="oyW-sA-Lfb" firstAttribute="top" secondItem="bXZ-vt-REt" secondAttribute="bottom" constant="8" id="OG4-ph-EWc"/>
170 <constraint firstAttribute="centerY" secondItem="bXZ-vt-REt" secondAttribute="centerY" id="iX3-rf-HXs"/> 212 <constraint firstAttribute="centerY" secondItem="bXZ-vt-REt" secondAttribute="centerY" id="iX3-rf-HXs"/>
171 <constraint firstAttribute="centerX" secondItem="bXZ-vt-REt" secondAttribute="centerX" id="o5J-8O-TzK"/> 213 <constraint firstAttribute="centerX" secondItem="bXZ-vt-REt" secondAttribute="centerX" id="o5J-8O-TzK"/>
172 - <constraint firstItem="oyW-sA-Lfb" firstAttribute="centerX" secondItem="bXZ-vt-REt" secondAttribute="centerX" constant="0.5" id="ruI-SS-9Bo"/>  
173 </constraints> 214 </constraints>
174 </view> 215 </view>
175 <navigationItem key="navigationItem" id="VgB-ne-yWx"/> 216 <navigationItem key="navigationItem" id="VgB-ne-yWx"/>
DUREX tests/DUREX test.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
DUREX tests/MenuTableViewController.h
@@ -20,13 +20,21 @@ @@ -20,13 +20,21 @@
20 #define MAINTENANCE_CELLS_PER_SECTION num(23),num(3) 20 #define MAINTENANCE_CELLS_PER_SECTION num(23),num(3)
21 #define MAINTENANCE_HEADERS NSLocalizedString(@"Sensors", nil),NSLocalizedString(@"Commands", nil) 21 #define MAINTENANCE_HEADERS NSLocalizedString(@"Sensors", nil),NSLocalizedString(@"Commands", nil)
22 22
23 -#define CELL_IDENTIFIERS @"MenuCell",@"MaintenanceCell",@"ConfigCell",@"ReportCell" 23 +#define SALES_ELEMENTS @"20€ Notes",@"10€ Notes",@"5€ Notes",@"2€ Coins",@"1€ Coins",@"50c Coins",@"Channel",@"Product Code",@"Nominal Price",@"Discounted Price",@"1€ Change",@"50c Change",@"20€ Notes",@"10€ Notes",@"5€ Notes",@"2€ Coins",@"1€ Coins",@"50c Coins",@"Channel",@"Product Code",@"Nominal Price",@"Discounted Price",@"1€ Change",@"50c Change",@"20€ Notes",@"10€ Notes",@"5€ Notes",@"2€ Coins",@"1€ Coins",@"50c Coins",@"Channel",@"Product Code",@"Nominal Price",@"Discounted Price",@"1€ Change",@"50c Change"
  24 +#define SALES_CELLS_PER_SECTION num(12),num(12),num(12)
  25 +#define SALES_HEADERS @"14/06/2014",@"25/06/2014",@"05/07/2014"
24 26
25 -#define NUM_CHANNELS 8 27 +#define CONFIGURATION_ELEMENTS @"Update Date & Time",@"Update product price",@"Update product name"
  28 +#define CONFIGURATION_CELLS_PER_SECTION num(3)
  29 +#define CONFIGURATION_HEADERS nil
  30 +
  31 +
  32 +#define CELL_IDENTIFIERS @"MenuCell",@"MaintenanceCell",@"SalesCell",@"ConfigCell",@"ReportCell"
26 33
27 enum { 34 enum {
28 MENU = 0, 35 MENU = 0,
29 MAINTENANCE, 36 MAINTENANCE,
  37 + SALES,
30 BASIC_CONFIGURATION, 38 BASIC_CONFIGURATION,
31 REPORT, 39 REPORT,
32 } navigationLevel; 40 } navigationLevel;
DUREX tests/MenuTableViewController.m
@@ -22,6 +22,14 @@ @@ -22,6 +22,14 @@
22 @property (nonatomic,strong) const NSArray *maintenanceStructure; 22 @property (nonatomic,strong) const NSArray *maintenanceStructure;
23 @property (nonatomic,strong) const NSArray *maintenanceHeaders; 23 @property (nonatomic,strong) const NSArray *maintenanceHeaders;
24 24
  25 +@property (nonatomic,strong) const NSArray *salesElements;
  26 +@property (nonatomic,strong) const NSArray *salesStructure;
  27 +@property (nonatomic,strong) const NSArray *salesHeaders;
  28 +
  29 +@property (nonatomic,strong) const NSArray *configElements;
  30 +@property (nonatomic,strong) const NSArray *configStructure;
  31 +@property (nonatomic,strong) const NSArray *configHeaders;
  32 +
25 @property (nonatomic,strong) const NSArray *cellIdentifiers; 33 @property (nonatomic,strong) const NSArray *cellIdentifiers;
26 34
27 @property (nonatomic,strong) CommunicationProtocol* protocol; 35 @property (nonatomic,strong) CommunicationProtocol* protocol;
@@ -68,6 +76,28 @@ @@ -68,6 +76,28 @@
68 { 76 {
69 [self setMaintenanceHeaders:nil]; 77 [self setMaintenanceHeaders:nil];
70 } 78 }
  79 +
  80 + [self setSalesElements:[[NSArray alloc] initWithObjects:SALES_ELEMENTS, nil]];
  81 + [self setSalesStructure:[[NSArray alloc] initWithObjects:SALES_CELLS_PER_SECTION, nil]];
  82 + if([[self salesStructure] count] > 1)
  83 + {
  84 + [self setSalesHeaders:[[NSArray alloc] initWithObjects:SALES_HEADERS, nil]];
  85 + }
  86 + else
  87 + {
  88 + [self setSalesHeaders:nil];
  89 + }
  90 +
  91 + [self setConfigElements:[[NSArray alloc] initWithObjects:CONFIGURATION_ELEMENTS, nil]];
  92 + [self setConfigStructure:[[NSArray alloc] initWithObjects:CONFIGURATION_CELLS_PER_SECTION, nil]];
  93 + if([[self configStructure] count] > 1)
  94 + {
  95 + [self setConfigHeaders:[[NSArray alloc] initWithObjects:CONFIGURATION_HEADERS, nil]];
  96 + }
  97 + else
  98 + {
  99 + [self setConfigHeaders:nil];
  100 + }
71 101
72 [self setCellIdentifiers:[[NSArray alloc] initWithObjects:CELL_IDENTIFIERS, nil]]; 102 [self setCellIdentifiers:[[NSArray alloc] initWithObjects:CELL_IDENTIFIERS, nil]];
73 } 103 }
@@ -96,6 +126,20 @@ @@ -96,6 +126,20 @@
96 [self setCurrentHeaders:[self maintenanceHeaders]]; 126 [self setCurrentHeaders:[self maintenanceHeaders]];
97 127
98 } 128 }
  129 + else if([self currentNavLevel] == SALES)
  130 + {
  131 + [[self navigationItem] setTitle:NSLocalizedString(@"Sales log", nil)];
  132 + [self setCurrentElements:[self salesElements]];
  133 + [self setCurrentStructure:[self salesStructure]];
  134 + [self setCurrentHeaders:[self salesHeaders]];
  135 + }
  136 + else if([self currentNavLevel] == BASIC_CONFIGURATION)
  137 + {
  138 + [[self navigationItem] setTitle:NSLocalizedString(@"Basic Configuration", nil)];
  139 + [self setCurrentElements:[self configElements]];
  140 + [self setCurrentStructure:[self configStructure]];
  141 + [self setCurrentHeaders:[self configHeaders]];
  142 + }
99 //AND SO ON... 143 //AND SO ON...
100 [[self tableView] reloadData]; 144 [[self tableView] reloadData];
101 NSRange range = NSMakeRange(0, [self numberOfSectionsInTableView:[self tableView]]); 145 NSRange range = NSMakeRange(0, [self numberOfSectionsInTableView:[self tableView]]);
@@ -207,13 +251,22 @@ @@ -207,13 +251,22 @@
207 NSLog(@"[MenuTableViewController.m]: Section: %d Row: %d",[indexPath section],[indexPath row]); 251 NSLog(@"[MenuTableViewController.m]: Section: %d Row: %d",[indexPath section],[indexPath row]);
208 [tableView deselectRowAtIndexPath:indexPath animated:YES]; 252 [tableView deselectRowAtIndexPath:indexPath animated:YES];
209 NSString *cellName = [[[[self tableView] cellForRowAtIndexPath:indexPath]textLabel]text]; 253 NSString *cellName = [[[[self tableView] cellForRowAtIndexPath:indexPath]textLabel]text];
210 - if([cellName isEqualToString:NSLocalizedString(@"Maintenance", nil)]) 254 + if([cellName isEqualToString:NSLocalizedString(@"Maintenance", nil)] && [self currentNavLevel] == MENU)
211 { 255 {
212 NSLog(@"[MenuTableViewController.m]: Changing to navLevel: MAINTENANCE"); 256 NSLog(@"[MenuTableViewController.m]: Changing to navLevel: MAINTENANCE");
213 [self changeNavLevel:MAINTENANCE:TRUE]; 257 [self changeNavLevel:MAINTENANCE:TRUE];
214 } 258 }
  259 + else if([cellName isEqualToString:NSLocalizedString(@"Sales log", nil)] && [self currentNavLevel] == MAINTENANCE)
  260 + {
  261 + NSLog(@"[MenuTableViewController.m]: Changing to navLevel: SALES");
  262 + [self changeNavLevel:SALES:TRUE];
  263 + }
  264 + else if([cellName isEqualToString:NSLocalizedString(@"Basic Configuration", nil)] && [self currentNavLevel] == MENU)
  265 + {
  266 + NSLog(@"[MenuTableViewController.m]: Changing to navLevel: BASIC_CONFIGURATION");
  267 + [self changeNavLevel:BASIC_CONFIGURATION:TRUE];
  268 + }
215 269
216 -  
217 } 270 }
218 271
219 #pragma mark - Table view data source 272 #pragma mark - Table view data source
@@ -273,6 +326,10 @@ @@ -273,6 +326,10 @@
273 326
274 } 327 }
275 } 328 }
  329 + else if([self currentNavLevel] == SALES)
  330 + {
  331 +
  332 + }
276 return cell; 333 return cell;
277 } 334 }
278 335
DUREX tests/Stack.m
@@ -27,14 +27,17 @@ @@ -27,14 +27,17 @@
27 - (void) push: (id) element 27 - (void) push: (id) element
28 { 28 {
29 [[self dataArray] addObject:element]; 29 [[self dataArray] addObject:element];
  30 + [self setLastPosition: [self lastPosition] + 1];
30 } 31 }
31 - (id) pop 32 - (id) pop
32 { 33 {
33 id element; 34 id element;
  35 + [self setLastPosition: [self lastPosition] - 1];
34 element = [[self dataArray] objectAtIndex:[self lastPosition]]; 36 element = [[self dataArray] objectAtIndex:[self lastPosition]];
35 [[self dataArray] removeLastObject]; 37 [[self dataArray] removeLastObject];
36 return element; 38 return element;
37 } 39 }
  40 +
38 - (NSInteger) count 41 - (NSInteger) count
39 { 42 {
40 return [[self dataArray] count]; 43 return [[self dataArray] count];
DUREX tests/en.lproj/Localizable.strings
@@ -38,4 +38,19 @@ @@ -38,4 +38,19 @@
38 "50c Coin spin" = "50c Coin spin"; 38 "50c Coin spin" = "50c Coin spin";
39 "Sales log" = "Sales log"; 39 "Sales log" = "Sales log";
40 "Incident report" = "Incident report"; 40 "Incident report" = "Incident report";
41 -"Send report" = "Send report";  
42 \ No newline at end of file 41 \ No newline at end of file
  42 +"Send report" = "Send report";
  43 +"20€ Notes" = "20€ Notes";
  44 +"10€ Notes" = "10€ Notes";
  45 +"5€ Notes" = "5€ Notes";
  46 +"2€ Coins" = "2€ Coins";
  47 +"1€ Coins" = "1€ Coins";
  48 +"50c Coins" = "50c Coins";
  49 +"Channel" = "Channel";
  50 +"Product Code" = "Product Code";
  51 +"Nominal Price" = "Nominal Price";
  52 +"Discounted Price" = "Discounted Price";
  53 +"1€ Change" = "1€ Change";
  54 +"50c Change" = "50c Change";
  55 +"Update Date & Time" = "Update Date & Time";
  56 +"Update product price" = "Update product price";
  57 +"Update product name" = "Update product name";
43 \ No newline at end of file 58 \ No newline at end of file
DUREX tests/es.lproj/Localizable.strings
@@ -39,3 +39,18 @@ @@ -39,3 +39,18 @@
39 "Sales log" = "Registro de ventas"; 39 "Sales log" = "Registro de ventas";
40 "Incident report" = "Registro de incidencias"; 40 "Incident report" = "Registro de incidencias";
41 "Send report" = "Mandar informe"; 41 "Send report" = "Mandar informe";
  42 +"20€ Notes" = "Billetes de 20€";
  43 +"10€ Notes" = "Billetes de 10€";
  44 +"5€ Notes" = "Billetes de 5€";
  45 +"2€ Coins" = "Monedas de 2€";
  46 +"1€ Coins" = "Monedas de 1€";
  47 +"50c Coins" = "Monedas de 50c";
  48 +"Channel" = "Canal";
  49 +"Product Code" = "Código del producto";
  50 +"Nominal Price" = "Precio Nominal";
  51 +"Discounted Price" = "Precio con descuento";
  52 +"1€ Change" = "Cambio de 1€";
  53 +"50c Change" = "Cambio de 50c";
  54 +"Update Date & Time" = "Actualizar fecha y hora";
  55 +"Update product price" = "Actualizar precio del producto";
  56 +"Update product name" = "Actualizar nombre del producto";
42 \ No newline at end of file 57 \ No newline at end of file
1 --Implement sensors options  
2 --Make changes to DUREX Vendor Control Project  
3 --Implement Navigation Controller  
4 --Implement table inside UITableViewCell 1 +- Incident class
  2 +- Sale class
  3 +- Sale parser
  4 +- Incident parser
  5 +- Popup view
  6 +- A2 command
  7 +- A3 command
  8 +- Redefine A4 command
  9 +- A4 command