Files
CGW/CGWB0100.PRG
Jason Soltys 7905c43278 first commit
2026-07-14 00:41:31 -05:00

727 lines
18 KiB
Plaintext

PROCEDURE CGWB0100()
******************************************************
** MIKE LEWIS - MAIN MENU 09-10-93 - CGWB0100
******************************************************
LOCAL NCHOICE, MARR := {}, SAVESCR
SETCOLOR(LNOR)
CLS
@ 0,30 SAY ' Great Plains File Maintenance '
@ 1,0 SAY DOUBLE
// IF WE WANT TO ADD A RECORD TO GREAT PLAINS FILES
IF ACTION = 'ADDREC'
CGWB1100() // GO ADD RECORD
RETURN
ENDIF
AADD(MARR, 'BROWSE Great Plains Files')
AADD(MARR, 'UPDATE From Great Plains Files')
DO WHILE .T.
SAVESCR = SAVESCREEN()
NCHOICE = PICKLIST(MARR, 10)
IF LASTKEY() = 27
CLOSE DATABASES
RETURN
ENDIF
IF NCHOICE = 1
CGWB1210()
ELSE
IF NCHOICE = 2
CGWB1220()
ENDIF
ENDIF
RESTSCREEN(,,,,SAVESCR)
ENDDO
* ********************************************************
* FUNCTION PICKLIST(PASS_ARR, ROW, COL, PICKMSG, INITVAL, CLR_SCREEN)
* *
* *===== PICK BOX FOR LIST SELECTION =====*
* *
* * PASS_ARR = ARRAY HOLDING LINES OF LIST TO SELECT FROM
* * ROW = STARTING ROW OF LIST BOX
* * COL = STARTING COLUMN OF LIST BOX
* * pickmsg = MESSAGE FOR TOP OF LIST BOX
* * INITVAL = INITIAL VALUE OF CHOICE
* *
*
* LOCAL NUM_LINES, MAX_LENGTH, XX, FUNCBOX, MKEY_DESC, DOFUNC
* LOCAL bTOP, bBOTM, bLEFT, bRIGHT, BCENTER, OFFSET, I, MKEYDESC, MARR:={}
* LOCAL SAVECOLOR := SETCOLOR(), SAME_ONE := .F., NUM_TRUE := 0
* LOCAL MCHOICE
*
* STATIC FIRST_ELEM, LAST_ELEM, PICKED_ELEM, LAST_CHOICE
*
*
* IF FIRST_ELEM == PASS_ARR[1]
* NUM_TRUE++
* ENDIF
*
* IF LAST_ELEM == PASS_ARR[LEN(PASS_ARR)]
* NUM_TRUE++
* ENDIF
*
* IF LAST_CHOICE == NIL .OR. LAST_CHOICE > LEN(PASS_ARR) .OR. LAST_CHOICE < 1
* ELSE
* IF PICKED_ELEM == PASS_ARR[LAST_CHOICE]
* NUM_TRUE++
* ENDIF
* ENDIF
* IF NUM_TRUE = 3
* SAME_ONE = .T.
* ENDIF
*
*
*
*
* IF !SAME_ONE
* IF INITVAL = NIL
* MCHOICE = 1
* ELSE
* MCHOICE = INITVAL
* ENDIF
* ELSE
* MCHOICE = LAST_CHOICE
* ENDIF
*
* IF PICKMSG = NIL
* PICKMSG = ''
* ELSE
* PICKMSG = ' ' + PICKMSG + ' '
* ENDIF
*
* IF CLR_SCREEN = NIL
* CLR_SCREEN := .T.
* ENDIF
*
* NUM_LINES = LEN(PASS_ARR) // GET NUMBER OF ARRAY ELEMENTS
* IF NUM_LINES = 0
* RETURN
* ENDIF
* *
* MAX_LENGTH = LEN(PICKMSG)
* FOR XX = 1 TO NUM_LINES
* IF VALTYPE(PASS_ARR[XX]) = 'A' // PASSED A FUNCTION(S) INSTEAD
* MKEYDESC = '' // OF A CHARACTER DESCRIPTION
* FOR I = 1 TO LEN(PASS_ARR[XX])
* DOFUNC = PASS_ARR[XX,I]
* MKEYDESC = MKEYDESC + &DOFUNC
* NEXT
* AADD(MARR, MKEYDESC)
* ELSE
* AADD(MARR, PASS_ARR[XX])
* ENDIF
*
* IF LEN(MARR[XX]) > MAX_LENGTH // FIND LONGEST LINE LENGTH
* MAX_LENGTH = LEN(MARR[XX])
* ENDIF
* NEXT
* *
*
* MAX_LENGTH++
*
* bTOP = ROW
* bBOTM = bTOP + NUM_LINES + 1
* IF bBOTM > 23
* bBOTM = 23
* ENDIF
*
* IF COL = NIL .OR. COL = 0
* // CENTER THE BOX
* bLEFT = ((80 - MAX_LENGTH)/2) - 2
* bRIGHT = 80 - bLEFT
* ELSE
* bLEFT = COL - 1
* bRIGHT = bLEFT + MAX_LENGTH
* ENDIF
*
* FUNCBOX = SAVESCREEN(BTOP,BLEFT,BBOTM+1,BRIGHT+1)
* *
* SETCOLOR(BLACK)
* @ bTOP+1,bLEFT+1 CLEAR TO bBOTM+1,bRIGHT+1 // DRAW SHADOW BOX
* SETCOLOR(HNOR)
* @ bTOP,bLEFT CLEAR TO bBOTM,bRIGHT // DRAW BACKROUND COLOR
* @ bTOP,bLEFT TO bBOTM,bRIGHT // DRAW DOUBLE LINE
*
*
*
* IF LEN(PICKMSG) > 0
* // FIND THE CENTER OF THE BOX
* BCENTER = INT( (BRIGHT - BLEFT) / 2)
* OFFSET = INT(LEN(PICKMSG) / 2)
* SETCOLOR(HREV)
* @ BTOP,BLEFT+(BCENTER-OFFSET) SAY PICKMSG
* ENDIF
*
* SETCOLOR(LNOR)
* DO WHILE .T.
* MCHOICE := ACHOICE(bTOP+1,bLEFT+1,bBOTM-1,bRIGHT-1,MARR,,,MCHOICE)
* // DON'T LEAVE UNLESS VALID INPUT OR ESCAPE KEY IS PRESSED!!!
* IF MCHOICE <> 0 .OR. LASTKEY() = 27
* EXIT
* ENDIF
* ENDDO
* IF CLR_SCREEN
* RESTSCREEN(bTOP,bLEFT,bBOTM+1,BRIGHT+1,FUNCBOX)
* ENDIF
* SETCOLOR(SAVECOLOR) // RESET COLOR IN CASE OF AN ESCAPE
*
* // IF ONE WAS PICKED, DO THIS
* IF MCHOICE > 0
* FIRST_ELEM = PASS_ARR[1]
* LAST_ELEM = PASS_ARR[LEN(PASS_ARR)]
* PICKED_ELEM = PASS_ARR[MCHOICE]
* LAST_CHOICE = MCHOICE
* RETURN MCHOICE
* ELSE
* RETURN 0
* ENDIF
*
* ******************************************************************
*
* FUNCTION NET_USE
* PARAMETERS file, ex_use, wait, Falias, SETNDX
* PRIVATE forever, NUMTIMES, LOCKVAR
*
* IF WAIT = NIL .OR. WAIT > 1
* WAIT = 1
* ENDIF
*
* IF EX_USE = NIL
* EX_USE = .F.
* ENDIF
*
* IF WAIT > 1
* WAIT := 1
* ENDIF
* NUMTIMES = 0
* DO WHILE .T.
* IF PCOUNT() > 3
* IF SELECT(FALIAS) != 0 // IS FILE ALREADY OPENED?
* /////////////////////////////////
* // CHECK TO SEE IF FILE NEEDS TO CHANGE EXCLUSIVE STATUS!!!!!
* /////////////////////////////////
* SELECT &FALIAS
* RETURN .T.
* ENDIF
* ENDIF
*
* forever = (wait = 0)
* DO WHILE (forever .OR. wait > 0)
*
* SELECT 0
* IF ex_use && exclusive
* IF PCOUNT() = 3
* USE &file EXCLUSIVE
* ELSE
* USE &file EXCLUSIVE ALIAS &FALIAS
* ENDIF
* ELSE
* IF PCOUNT() = 3
* USE &file
* ELSE
* USE &file ALIAS &FALIAS && shared
* ENDIF
* ENDIF
*
* IF !NETERR()
* IF PCOUNT() > 4
* NDXFILE := {}
* DO WHILE .T.
* STOP := AT(',', SETNDX)
* IF STOP = 0
* AADD(NDXFILE, SETNDX)
* EXIT
* ELSE
* NDX1 := SUBSTR(SETNDX,1,STOP-1)
* AADD(NDXFILE, NDX1)
* SETNDX := SUBSTR(SETNDX,STOP+1, LEN(SETNDX)-STOP)
* ENDIF
* ENDDO
*
* IF LEN(NDXFILE) = 1
* SET INDEX TO (NDXFILE[1])
* ELSE
* IF LEN(NDXFILE) = 2
* SET INDEX TO (NDXFILE[1]), (NDXFILE[2])
* ELSE
* IF LEN(NDXFILE) = 3
* SET INDEX TO (NDXFILE[1]), (NDXFILE[2]), (NDXFILE[3])
* ELSE
* IF LEN(NDXFILE) = 4
* SET INDEX TO (NDXFILE[1]), (NDXFILE[2]), (NDXFILE[3]), (NDXFILE[4])
* ELSE
* IF LEN(NDXFILE) = 5
* SET INDEX TO (NDXFILE[1]), (NDXFILE[2]), (NDXFILE[3]), (NDXFILE[4]), (NDXFILE[5])
* ENDIF
* ENDIF
* ENDIF
* ENDIF
* ENDIF
* ENDIF
* ENDIF
*
* IF .NOT. NETERR() && USE succeeds
* RETURN (.T.)
* ENDIF
*
* INKEY(1) && wait 1 second
* wait = wait - 1
* ENDDO
* LOCKVAR = 'FILE ' + TRIM(FILE) + ' COULD NOT BE OPENED'
* LOCK_ERR() && USE fails
* NUMTIMES = NUMTIMES + 1
* WAIT = 3
* IF NUMTIMES > 5
* WHATSGOINGON()
* NUMTIMES = 0
* ENDIF
* ENDDO
* * End - NET_USE
*
* ******************************************************************
*
* FUNCTION FIL_LOCK
* PARAMETERS wait, OKABORT
* PRIVATE forever, NUMTIMES, LOCKVAR
*
* IF WAIT > 1
* WAIT := 1
* ENDIF
* NUMTIMES = 0
* DO WHILE .T.
* IF FLOCK()
* RETURN (.T.) && locked
* ENDIF
*
* forever = (wait = 0)
* DO WHILE (forever .OR. wait > 0)
*
* INKEY(.5) && wait 1/2 second
* wait = wait - .5
*
* IF FLOCK()
* RETURN (.T.) && locked
* ENDIF
*
* ENDDO
* LOCKVAR = 'FILE ' + TRIM(FILE) + ' COULD NOT BE OPENED'
* LOCK_ERR() && not locked
* NUMTIMES = NUMTIMES + 1
* WAIT = 3
* IF NUMTIMES > 5
* WHATSGOINGON()
* NUMTIMES = 0
* ENDIF
* ENDDO
* * End - FIL_LOCK
*
*
* FUNCTION REC_LOCK
* PARAMETERS wait, OKABORT
* PRIVATE forever, NUMTIMES, LOCKVAR
*
* IF WAIT = NIL .OR. WAIT > 1
* WAIT := 1
* ENDIF
* NUMTIMES = 0
* DO WHILE .T.
* IF RLOCK()
* RETURN (.T.) && locked
* ENDIF
*
* forever = (wait = 0)
* DO WHILE (forever .OR. wait > 0)
*
* IF RLOCK()
* RETURN (.T.) && locked
* ENDIF
*
* INKEY(.5) && wait 1/2 second
* wait = wait - .5
*
* ENDDO
* LOCKVAR = 'THE RECORD YOU REQUESTED IS IN USE BY SOMEONE ELSE'
* LOCK_ERR() && not locked
* NUMTIMES = NUMTIMES + 1
* WAIT = 3
* IF NUMTIMES > 5
* WHATSGOINGON()
* NUMTIMES = 0
* ENDIF
* ENDDO
* * End - REC_LOCK
*
*
* FUNCTION ADD_REC
* PARAMETERS wait, OKABORT
* PRIVATE forever, NUMTIMES, LOCKVAR
*
* IF WAIT > 3
* WAIT := 3
* ENDIF
* APPEND BLANK
* IF .NOT. NETERR()
* RETURN (.T.)
* ENDIF
*
* NUMTIMES = 0
* DO WHILE .T.
* forever = (wait = 0)
* DO WHILE (forever .OR. wait > 0)
*
* APPEND BLANK
* IF .NOT. NETERR()
* RETURN .T.
* ENDIF
*
* INKEY(.5) && wait 1/2 second
* wait = wait - .5
*
* ENDDO
* LOCKVAR = 'THE RECORD COULD NOT BE ADDED - FILE IN USE BY SOMEONE ELSE'
* LOCK_ERR() && not locked
* NUMTIMES = NUMTIMES + 1
* WAIT = 3
* IF NUMTIMES > 5
* WHATSGOINGON()
* NUMTIMES = 0
* ENDIF
* ENDDO
*
* *************************************************************
*
* PROCEDURE LOCK_ERR
* PARAMETERS OKABORT
* LOCAL XXX, SAVESCR := SAVESCREEN()
*
* SETCOLOR(HREV)
* @ 22,0
* @ 23,0
* @ 22,0 SAY LOCKVAR
* XXX = ' '
* @ 23,17 SAY " Enter 'Y' To Try Again "
* DO WHILE .NOT. XXX$'Y'
* @ 23,42 GET XXX PICTURE '!'
* READ
* ENDDO
* SETCOLOR(LNOR)
* RESTSCREEN(,,,,SAVESCR)
* RETURN
*
*
*
* STATIC PROCEDURE WHATSGOINGON
* PRIVATE WHATGIVES
* ?? CHR(7)
* SAVE SCREEN TO WHATGIVES
* @ 07,10 CLEAR TO 19,70
* @ 07,10 TO 19,70
* @ 09,15 SAY 'YOU HAVE TRIED TO GRAB THAT FILE OR RECORD '
* @ 10,15 SAY 'OVER 5 TIMES NOW. SOMEBODY HAS LOCKED THAT '
* @ 11,15 SAY 'FILE/RECORD UP TIGHTER THAN A DRUM!!!!! '
* @ 13,15 SAY 'First, find out who has the file/record locked.'
* @ 14,15 SAY 'Let them finish their process if possible. '
* @ 16,15 SAY 'You May Keep RETRYING or PRESS ALT-C as a '
* @ 17,15 SAY 'LAST RESORT Option to ABORT YOUR APPLICATION.'
* @ 21,14 SAY ' '
* WAIT
* RESTORE SCREEN FROM WHATGIVES
* RETURN
*
* * * * * * * * * * * * * * * * * * * * * * * * * *
* FUNCTION WAIT_BOX(LINE1, LINE2, LINE3, LINE4, V )
* LOCAL SCRN1, I, LONGEST, H, SAVECOL
* PRIVATE LINEVAR, MSG1, MSG2, MSG3, MSG4
* IF V = NIL
* V := 11
* ENDIF
* DO CASE
* CASE MSG2 = NIL
* NUMMSG := 1
* CASE MSG3 = NIL
* NUMMSG := 2
* CASE MSG4 = NIL
* NUMMSG := 3
* OTHERWISE
* NUMMSG := 4
* ENDCASE
* SET CURSOR OFF
* MSG1 := LINE1
* MSG2 := LINE2
* MSG3 := LINE3
* MSG4 := LINE4
* SAVECOL := SETCOLOR()
* SETCOLOR(HREV)
* LONGEST := 0
* FOR I = 1 TO NUMMSG
* LINEVAR := 'MSG' + STR(I,1)
* IF &LINEVAR = NIL
* ELSE
* IF LEN(&LINEVAR) > LONGEST
* LONGEST := LEN(&LINEVAR)
* ENDIF
* ENDIF
* NEXT
*
* H = ((80 - LONGEST) / 2)
* @ V,H-5 CLEAR TO V+7,H+5+LONGEST
* @ V,H-5 TO V+7,H+5+LONGEST DOUBLE
* @ V+2,H SAY LINE1
* IF PCOUNT() > 1
* @ V+3,H SAY LINE2
* ENDIF
* IF PCOUNT() > 2
* @ V+4,H SAY LINE3
* ENDIF
* IF PCOUNT() > 3
* @ V+5,H SAY LINE4
* ENDIF
* SETCOLOR(SAVECOL)
* SET CURSOR ON
* RETURN (.T.)
*
* ***************************************************************
*
* FUNCTION SETBARM(ROW, COL, LEN, TOTRECS)
* LOCAL SAVECOL := SETCOLOR(LNOR)
* IF ROW = NIL
* ROW := 16
* LEN = 20
* COL := 40 - (LEN / 2)
* ENDIF
* @ ROW,COL SAY REPLICATE('Û', LEN )
* SETCOLOR(HREV)
* @ ROW+1,COL SAY '0'
* @ ROW+1,COL+LEN-1 SAY ALLTRIM(STR(TOTRECS))
* SETCOLOR(SAVECOL)
* RETURN LEN/TOTRECS
*
* ***************************************************************
*
* PROCEDURE BARM_UPDATE(ROW, COL, CURREC, BARMFACT)
* LOCAL SAVECOL := SETCOLOR(HREV), MID
* IF ROW = NIL
* ROW := 16
* COL := 30
* MID := 38
* ELSE
* MID := COL + (RECCOUNT() * BARMFACTOR / 2) - 2
* ENDIF
* @ ROW,COL SAY REPLICATE('Û', INT(CURREC*BARMFACT) )
* @ ROW+1,MID SAY '(' + ALLTRIM(STR(CURREC)) + ')'
* SETCOLOR(SAVECOL)
* RETURN .T.
*
* **********************************************************************
*
FUNCTION GPFLDLIST(MSYSNAME)
LOCAL FLDS_TO_GET := {}
// FLDS_TO_GET LAYOUT
// 1 = GREAT PLAINS FIELD NAME
// 2 = CGW0CM FIELD NAME
IF MSYSNAME = NIL
MSYSNAME = 'CUSMAS'
ENDIF
// BUILD LIST OF FIELDS TO GET INFO FROM
DO CASE
CASE MSYSNAME = 'CUSMAS'
AADD(FLDS_TO_GET, {'CUSNO', 'GP_CUST'})
AADD(FLDS_TO_GET, {'NAME', 'COMP_NAME'})
AADD(FLDS_TO_GET, {'SLSMAN', 'SLSMAN'})
AADD(FLDS_TO_GET, {'SHP_METHOD', 'SHP_METHOD'})
AADD(FLDS_TO_GET, {'TERMS', 'TERMS'})
AADD(FLDS_TO_GET, {'CUSDSC', 'DISCOUNT'})
AADD(FLDS_TO_GET, {'DAYSTOPAY', 'DAYSTOPAY'})
AADD(FLDS_TO_GET, {'ADD1', 'CUST_ADDR'})
AADD(FLDS_TO_GET, {'ADD2', 'CUST_ADDR2'})
AADD(FLDS_TO_GET, {'CONTACT', 'CONT_LNAME'})
AADD(FLDS_TO_GET, {'COMMENT', 'COMMENT'})
AADD(FLDS_TO_GET, {'TAXNUM', 'TAXNUM'})
AADD(FLDS_TO_GET, {'CITY', 'CUST_CITY'})
AADD(FLDS_TO_GET, {'CUSTYP', 'CUSTYP'})
AADD(FLDS_TO_GET, {'STATE', 'CUST_STATE'})
AADD(FLDS_TO_GET, {'UPSZONE', 'UPSZONE'})
AADD(FLDS_TO_GET, {'ZIP', 'CUST_ZIP'})
AADD(FLDS_TO_GET, {'PHONE', 'PHONE'})
AADD(FLDS_TO_GET, {'TAXSCH', 'TAXSCH'})
AADD(FLDS_TO_GET, {'SHIPNAME', 'SHIPNAME'})
AADD(FLDS_TO_GET, {'SHIPADD1', 'SHIPADD1'})
AADD(FLDS_TO_GET, {'SHIPCITY', 'SHIPADD2'})
AADD(FLDS_TO_GET, {'SHIPST', 'SHIPST'})
AADD(FLDS_TO_GET, {'SHIPZIP', 'SHIPZIP'})
AADD(FLDS_TO_GET, {'SHIPPHN', 'SHIPPHN'})
AADD(FLDS_TO_GET, {'SHIPFAX', 'SHIPFAX'})
AADD(FLDS_TO_GET, {'FAX', 'FAX'})
AADD(FLDS_TO_GET, {'TAXRGST', 'TAXRGST'})
AADD(FLDS_TO_GET, {'CURRID', 'CURRID'})
AADD(FLDS_TO_GET, {'BANK', 'CUST_ID'})
CASE MSYSNAME = 'SLSMAS'
AADD(FLDS_TO_GET, {'SLSMAN', 'SLSMAN'})
AADD(FLDS_TO_GET, {'LST_NME', 'LST_NME'})
AADD(FLDS_TO_GET, {'FST_NME', 'FST_NME'})
AADD(FLDS_TO_GET, {'MID_NME', 'MID_NME'})
CASE MSYSNAME = 'STXDET'
AADD(FLDS_TO_GET, {'SSTAXDET', 'SSTAXDET'})
AADD(FLDS_TO_GET, {'SSTAXSEQ', 'SSTAXSEQ'})
AADD(FLDS_TO_GET, {'SDETDESC', 'SDETDESC'})
AADD(FLDS_TO_GET, {'STAXON', 'STAXON'})
AADD(FLDS_TO_GET, {'STAXINCL', 'STAXINCL'})
AADD(FLDS_TO_GET, {'STAXAMT', 'STAXAMT'})
AADD(FLDS_TO_GET, {'STAXRND', 'STAXRND'})
AADD(FLDS_TO_GET, {'SAPMNMX', 'SAPMNMX'})
AADD(FLDS_TO_GET, {'SMINAMT', 'SMINAMT'})
AADD(FLDS_TO_GET, {'SMAXAMT', 'SMAXAMT'})
CASE MSYSNAME = 'STXSCH'
AADD(FLDS_TO_GET, {'STAXSCH', 'STAXSCH'})
AADD(FLDS_TO_GET, {'SEQ1', 'SEQ1'})
AADD(FLDS_TO_GET, {'SEQ2', 'SEQ2'})
AADD(FLDS_TO_GET, {'SEQ3', 'SEQ3'})
AADD(FLDS_TO_GET, {'SEQ4', 'SEQ4'})
AADD(FLDS_TO_GET, {'SEQ5', 'SEQ5'})
AADD(FLDS_TO_GET, {'SEQ6', 'SEQ6'})
AADD(FLDS_TO_GET, {'SEQ7', 'SEQ7'})
AADD(FLDS_TO_GET, {'SEQ8', 'SEQ8'})
AADD(FLDS_TO_GET, {'SEQ9', 'SEQ9'})
AADD(FLDS_TO_GET, {'SEQ10', 'SEQ10'})
CASE MSYSNAME = 'ARARAM'
AADD(FLDS_TO_GET, {'SHIP0', 'SHIP0'})
AADD(FLDS_TO_GET, {'SHIP1', 'SHIP1'})
AADD(FLDS_TO_GET, {'SHIP2', 'SHIP2'})
AADD(FLDS_TO_GET, {'SHIP3', 'SHIP3'})
AADD(FLDS_TO_GET, {'SHIP4', 'SHIP4'})
AADD(FLDS_TO_GET, {'SHIP5', 'SHIP5'})
AADD(FLDS_TO_GET, {'SHIP6', 'SHIP6'})
AADD(FLDS_TO_GET, {'SHIP7', 'SHIP7'})
AADD(FLDS_TO_GET, {'SHIP8', 'SHIP8'})
AADD(FLDS_TO_GET, {'SHIP9', 'SHIP9'})
AADD(FLDS_TO_GET, {'TRMDSC1', 'TRMDSC1'})
AADD(FLDS_TO_GET, {'PERCNT1', 'PERCNT1'})
AADD(FLDS_TO_GET, {'DSCDAY1', 'DSCDAY1'})
AADD(FLDS_TO_GET, {'NETDAY1', 'NETDAY1'})
AADD(FLDS_TO_GET, {'DAYMON1', 'DAYMON1'})
AADD(FLDS_TO_GET, {'DTEDUE1', 'DTEDUE1'})
AADD(FLDS_TO_GET, {'TRMDSC2', 'TRMDSC2'})
AADD(FLDS_TO_GET, {'PERCNT2', 'PERCNT2'})
AADD(FLDS_TO_GET, {'DSCDAY2', 'DSCDAY2'})
AADD(FLDS_TO_GET, {'NETDAY2', 'NETDAY2'})
AADD(FLDS_TO_GET, {'DAYMON2', 'DAYMON2'})
AADD(FLDS_TO_GET, {'DTEDUE2', 'DTEDUE2'})
AADD(FLDS_TO_GET, {'TRMDSC3', 'TRMDSC3'})
AADD(FLDS_TO_GET, {'PERCNT3', 'PERCNT3'})
AADD(FLDS_TO_GET, {'DSCDAY3', 'DSCDAY3'})
AADD(FLDS_TO_GET, {'NETDAY3', 'NETDAY3'})
AADD(FLDS_TO_GET, {'DAYMON3', 'DAYMON3'})
AADD(FLDS_TO_GET, {'DTEDUE3', 'DTEDUE3'})
AADD(FLDS_TO_GET, {'TRMDSC4', 'TRMDSC4'})
AADD(FLDS_TO_GET, {'PERCNT4', 'PERCNT4'})
AADD(FLDS_TO_GET, {'DSCDAY4', 'DSCDAY4'})
AADD(FLDS_TO_GET, {'NETDAY4', 'NETDAY4'})
AADD(FLDS_TO_GET, {'DAYMON4', 'DAYMON4'})
AADD(FLDS_TO_GET, {'DTEDUE4', 'DTEDUE4'})
AADD(FLDS_TO_GET, {'TRMDSC5', 'TRMDSC5'})
AADD(FLDS_TO_GET, {'PERCNT5', 'PERCNT5'})
AADD(FLDS_TO_GET, {'DSCDAY5', 'DSCDAY5'})
AADD(FLDS_TO_GET, {'NETDAY5', 'NETDAY5'})
AADD(FLDS_TO_GET, {'DAYMON5', 'DAYMON5'})
AADD(FLDS_TO_GET, {'DTEDUE5', 'DTEDUE5'})
AADD(FLDS_TO_GET, {'TRMDSC6', 'TRMDSC6'})
AADD(FLDS_TO_GET, {'PERCNT6', 'PERCNT6'})
AADD(FLDS_TO_GET, {'DSCDAY6', 'DSCDAY6'})
AADD(FLDS_TO_GET, {'NETDAY6', 'NETDAY6'})
AADD(FLDS_TO_GET, {'DAYMON6', 'DAYMON6'})
AADD(FLDS_TO_GET, {'DTEDUE6', 'DTEDUE6'})
AADD(FLDS_TO_GET, {'TRMDSC7', 'TRMDSC7'})
AADD(FLDS_TO_GET, {'PERCNT7', 'PERCNT7'})
AADD(FLDS_TO_GET, {'DSCDAY7', 'DSCDAY7'})
AADD(FLDS_TO_GET, {'NETDAY7', 'NETDAY7'})
AADD(FLDS_TO_GET, {'DAYMON7', 'DAYMON7'})
AADD(FLDS_TO_GET, {'DTEDUE7', 'DTEDUE7'})
AADD(FLDS_TO_GET, {'TRMDSC8', 'TRMDSC8'})
AADD(FLDS_TO_GET, {'PERCNT8', 'PERCNT8'})
AADD(FLDS_TO_GET, {'DSCDAY8', 'DSCDAY8'})
AADD(FLDS_TO_GET, {'NETDAY8', 'NETDAY8'})
AADD(FLDS_TO_GET, {'DAYMON8', 'DAYMON8'})
AADD(FLDS_TO_GET, {'DTEDUE8', 'DTEDUE8'})
AADD(FLDS_TO_GET, {'TRMDSC9', 'TRMDSC9'})
AADD(FLDS_TO_GET, {'PERCNT9', 'PERCNT9'})
AADD(FLDS_TO_GET, {'DSCDAY9', 'DSCDAY9'})
AADD(FLDS_TO_GET, {'NETDAY9', 'NETDAY9'})
AADD(FLDS_TO_GET, {'DAYMON9', 'DAYMON9'})
AADD(FLDS_TO_GET, {'DTEDUE9', 'DTEDUE9'})
AADD(FLDS_TO_GET, {'TRMDSC10', 'TRMDSC10'})
AADD(FLDS_TO_GET, {'PERCNT10', 'PERCNT10'})
AADD(FLDS_TO_GET, {'DSCDAY10', 'DSCDAY10'})
AADD(FLDS_TO_GET, {'NETDAY10', 'NETDAY10'})
AADD(FLDS_TO_GET, {'DAYMON10', 'DAYMON10'})
AADD(FLDS_TO_GET, {'DTEDUE10', 'DTEDUE10'})
END CASE
RETURN FLDS_TO_GET
*
*
*******************************************************
FUNCTION ORD_HOTKEYS(WHICHONE)
LOCAL RETVAL := {}, NOTEVAR, NEEDVAR, SEEKKEY
LOCAL MTITLE := ' + "Reg: " + CURCONVREG->REGID + [-] + TRIM(CURCONVREG->FNAME) + [ ] + CURCONVREG->LNAME '
AADD(RETVAL, { 'F6-Customer Update', -5, 'UPDT_CUST()' } )
RETURN RETVAL
*******************************************************
FUNCTION UPDT_CUST()
LOCAL SAVESEL := SELECT()
STATIC MELEM
IF MELEM = NIL
MELEM := ASCAN(GETVARS, {|X| X[3] = 'CUST_ID'})
ENDIF
**KEYBOARD (SAVESEL)->CUST_ID
KEYBOARD GETVARS[MELEM, 4]
ADD_SING_REC(1,'Update CUSTOMER' ,{'CUST_MAST', .F.,,,,,'ADD',,.F.,.F. })
SELECT (SAVESEL)
RETURN .T.