VAR DBL_ITEM_TRIGGER : N7 = 190402 //set this to a non-opened priced 'Double' menu item that will be used to trigger the SIM
VAR DBL_ITEM_OPEN : N7 = 190405 //set this to open priced item called 'Double', that will swap places with the menu item above
VAR DBL_MULTIPLIER : $12 = 1
VAR VOID_ITEM : N9
EVENT MI
IF VOID_ITEM <> 0
VOIDDETAIL(VOID_ITEM)
VOID_ITEM = 0
EXITCONTINUE
ENDIF
IF VOID_ITEM = -1
VOID_ITEM = 0
EXITCONTINUE
ENDIF
VAR CUR_ITEM : N3 = @NUMDTLT
VAR FOUND_ITEM : N1 = 0
//this gets us the most recently added item - if it was added at the end the system clears all selections
//but if it was inserted the newly inserted item is always highlighted
VAR I : N3 = @NUMDTLT
WHILE I > (@NUMDTLT - @NUMDTLR)
IF @DTL_SELECTED[ I ] = 1
CUR_ITEM = I
BREAK
ELSE
I = I - 1
ENDIF
ENDWHILE
IF @DTL_OBJECT[ CUR_ITEM ] <> DBL_ITEM_TRIGGER
EXITCONTINUE
ENDIF
VOID_ITEM = CUR_ITEM
WHILE FOUND_ITEM <> 1 AND CUR_ITEM > (@NUMDTLT - @NUMDTLR)
IF @DTL_IS_COND[ CUR_ITEM ] = 0 AND @DTL_TYPE[ CUR_ITEM ] = "M"
FOUND_ITEM = 1
ELSE
CUR_ITEM = CUR_ITEM - 1
ENDIF
ENDWHILE
IF FOUND_ITEM = 1
IF VOID_ITEM <> @NUMDTLT
LOADKYBDMACRO MAKEKEYS( (@DTL_TTL[ CUR_ITEM ] * DBL_MULTIPLIER) ), KEY(3,DBL_ITEM_OPEN)
ELSE
VOID_ITEM = -1
LOADKYBDMACRO KEY(1,458753), KEY(1,458753), MAKEKEYS( (@DTL_TTL[ CUR_ITEM ] * DBL_MULTIPLIER) ), KEY(3,DBL_ITEM_OPEN)
ENDIF
ELSE
EXITWITHERROR "Invalid Entry"
ENDIF
ENDEVENT
//inquiry that also doubles cost of mixers
EVENT INQ : 2
VAR CUR_ITEM : N3 = @NUMDTLT
VAR FOUND_ITEM : N1 = 0
VAR TOTAL_TO_DBL : $12 = 0
WHILE FOUND_ITEM <> 1 AND CUR_ITEM > (@NUMDTLT - @NUMDTLR)
TOTAL_TO_DBL = TOTAL_TO_DBL + @DTL_TTL[ CUR_ITEM ]
IF @DTL_IS_COND[ CUR_ITEM ] = 0 AND @DTL_TYPE[ CUR_ITEM ] = "M"
FOUND_ITEM = 1
ELSE
CUR_ITEM = CUR_ITEM - 1
ENDIF
ENDWHILE
IF FOUND_ITEM = 1
LOADKYBDMACRO MAKEKEYS( (TOTAL_TO_DBL * DBL_MULTIPLIER) ), KEY(3, DBL_ITEM_OPEN)
ELSE
EXITWITHERROR "Invalid Entry"
ENDIF
ENDIF
//inquiry that doubles by ringing the item in twice, and modifying with a doubles
EVENT INQ : 3
VAR CUR_ITEM : N3 = @NUMDTLT
VAR FOUND_ITEM : N1 = 0
WHILE FOUND_ITEM <> 1 AND CUR_ITEM > (@NUMDTLT - @NUMDTLR)
IF @DTL_IS_COND[ CUR_ITEM ] = 0 AND @DTL_TYPE[ CUR_ITEM ] = "M"
FOUND_ITEM = 1
ELSE
CUR_ITEM = CUR_ITEM - 1
ENDIF
ENDWHILE
VAR ORIGINAL_ITEM : N7 = CUR_ITEM
IF FOUND_ITEM = 1
//things get trickier here, becuase we have to actually ring the items in
again and then void the existing item
LOADKYBDMACRO MAKEKEYS(2), KEY(3, @DTL_OBJECT[ CUR_ITEM ])
WHILE CUR_ITEM < @NUMDTLT
CUR_ITEM = CUR_ITEM + 1
LOADKYBDMACRO KEY(3, @DTL_OBJECT[ CUR_ITEM ])
ENDWHILE
LOADKYBDMACRO KEY(1,458776)
LOADKYBDMACRO KEY(3, DBL_ITEM)
VOIDDETAIL( ORIGINAL_ITEM )
//LOADKYBDMACRO MAKEKEYS( TOTAL_TO_DBL ), KEY(3, DBL_ITEM_OPEN)
ELSE
EXITWITHERROR "Invalid Entry"
ENDIF
ENDEVENT