Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Micros 9700 SIM - validating tenders entered on check?

Status
Not open for further replies.

talz13

Technical User
Feb 26, 2001
3
I'm trying to validate the forms of payment on a Micros 9700 check via a SIM script. I believe I want to use @TRDTLT to loop through and verify the T=Tender/Media types currently applied to the check before applying the next tender.

I'm trying to do this, but keep getting errors when I reference system variables like @TRDTLT. Here's what I have so far:

Code:
SetReRead

event inq : 1
	var counter : n10
	// waitforclear "Check number: ", @CKNUM
	For counter = ArraySize(@TRDTLT)
	//	// window 3, 1000, @TRDTLT
		waitforclear "Tenders: ", @TRDTLT[counter]
	EndFor
endevent

When calling this event from a button on the Micros PCWS, I get an error stating:
Code:
ISL error on line 7:26
Variable undefined (@TRDTLT)

How am I supposed to use these variables?
 
Not sure, but the issue might be the For loop. You might try using a combination of @Numdtlt and @Dtl_Type. I have had luck withi this in 3700. I'm assuming the @Numdtlt system variable functions the same way in 9700?

For counter = 1 to @Numdtlt
if @Dtl_Type[counter] = "T" and @dtl_is_void[counter] = 0
waitforclear "Tenders: ", @TRDTLT[counter]
//OR waitforclear "Tenders: ",@Dtl_Name[counter]
EndFor
 
Here's what I've updated it to now. It performs the loop correctly now, but I can't read the tender type name on an authorization from any of the @DTL_* that I've tried. I can get to it in the @DTL_NAME[counter] after the payment has been finalized, but it's too late by that point.

Code:
SetReRead

event inq : 1
	var counter : n10
	// waitforclear "Check number: ", @CKNUM
	For counter = 1 to @NUMDTLT
		If @dtl_type[counter] = "T" OR @dtl_type[counter] = "C"
			window 14, 50
			display 2, 5, "Item: ", @dtl_name[counter]
			display 3, 5, "Type: ", @dtl_type[counter]
			display 4, 5, "Act Info: ", @dtl_caacctinfo[counter]
			display 5, 5, "CA Base Tot: ", @dtl_cabasettl[counter]
			display 6, 5, "TM Obj #: ", @dtl_catmedobjnum[counter]
			display 7, 5, "Def Seq #: ", @dtl_defseq[counter]
			display 8, 5, "Fam Grp #: ", @dtl_famgrp[counter]
			display 9, 5, "Obj #: ", @dtl_objnum[counter]
			display 10, 5, "S Itm #: ", @dtl_slsi[counter]
			display 10, 5, "Status: ", @dtl_status[counter]
			//display 6, 5, 
			//waitforclear "Tenders: ", @TRDTLT[counter]
			waitforclear
		EndIf
	EndFor
endevent
 
Can you explain what you are trying to accomplish? That might help.
 
Our back end system can only accept one instance of our house card per transaction, so I'd like to prevent a second house card from being authorized at the Micros terminal.
 
How are you doing the house card authorization? Is this a SIM also?
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top