first commit
This commit is contained in:
+233
@@ -0,0 +1,233 @@
|
||||
* MIKE LEWIS - UPDATE TABLES FROM GREAT PLAINS DBF - CGW1300 09-22-94
|
||||
|
||||
#INCLUDE 'RQB.CH'
|
||||
#include "RASQLB.CH"
|
||||
** #INCLUDE 'F:\CLIP52\RASQLB\52\RQB.CH'
|
||||
** #include "F:\CLIP52\RASQLB\52\RASQLB.CH"
|
||||
#INCLUDE 'INKEY.CH'
|
||||
|
||||
// CONSTANTS
|
||||
#define A_CUSNO 2 // 2nd Element in CUSMAS Field Array (customer #)
|
||||
|
||||
EXTERNAL N_XVIA
|
||||
|
||||
*****************************************************
|
||||
FUNCTION CGWB1300(MFILE, BFILE, BKEY_FLD, DO_MSG)
|
||||
// UPDATE TABLE DBFs WITH GREAT PLAINS INFO
|
||||
|
||||
// MFILE = CGW FILE NAME
|
||||
// BFILE = BTRIEVE FILE NAME
|
||||
// BKEY_FLD = AN ARRAY OF BTRIEVE KEY FIELDS NEEDE TO LOOKUP CGW RECORDS
|
||||
// DO_MSG = LOGICAL FLAG TO DISPLAY MESSAGE BELOW
|
||||
|
||||
LOCAL MSTRUCT, MFLD_NAMES
|
||||
LOCAL FLDS_TO_GET := {}, GP_FLD, CGW_FLD, MVAL
|
||||
LOCAL BARM_FACTOR, XXX, OPT, MWORK_AREA, ALL := .T.
|
||||
LOCAL DO_IT := .F.
|
||||
|
||||
IF DO_MSG = NIL
|
||||
DO_MSG = .T.
|
||||
ENDIF
|
||||
|
||||
IF DO_MSG
|
||||
CLS
|
||||
@ 10,15 SAY 'About to UPDATE the TABLE Files from the'
|
||||
@ 11,15 SAY 'Great Plains File. This process may take '
|
||||
@ 12,15 SAY 'several minutes to complete.'
|
||||
OPT = ' '
|
||||
@ 14,20 SAY 'Do you wish to continue? (Y/N)' GET OPT PICTURE '!' VALID OPT$'YN'
|
||||
READ
|
||||
IF LASTKEY() = 27 .OR. OPT$'N'
|
||||
RETURN
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
// GO OPEN AND SETUP BTRIEVR FILE
|
||||
RESULT = SET_BTREV(BFILE, MFILE)
|
||||
MTABLE = RESULT[1]
|
||||
MSTRUCT = RESULT[2]
|
||||
|
||||
|
||||
MWORK_AREA = N_XSELECT()
|
||||
|
||||
// OPEN UP CGW MASTER FILE
|
||||
DBOPEN(MFILE)
|
||||
|
||||
|
||||
|
||||
FLDS_TO_GET = GPFLDLIST(BFILE)
|
||||
|
||||
IF DO_IT
|
||||
QBROWSE(2,2,20,79)
|
||||
ENDIF
|
||||
|
||||
|
||||
BARM_FACTOR = SETBARM(,, 20, N_XLASTREC() )
|
||||
|
||||
XXX = 0
|
||||
N_XGOTOTOP() // TOP OF BTRIVE FILE
|
||||
DO WHILE !N_XEOF()
|
||||
XXX++
|
||||
BARM_UPDATE(,,XXX, BARM_FACTOR)
|
||||
|
||||
IF MFILE = 'CUST_MAST'
|
||||
MCUSNO = N_XFETCH(A_CUSNO) // GET CURRENT GREAT PLAINS CUSTOMER ID
|
||||
MKEY = N_XFETCH('BANK') // GET CURRENT CUSTOMER ID
|
||||
ELSE
|
||||
MKEY = ''
|
||||
FOR L = 1 TO LEN(BKEY_FLD)
|
||||
XKEY = N_XFETCH(BKEY_FLD[L]) // GET CURRENT GREAT PLAINS KEY VALUE
|
||||
IF VALTYPE(XKEY) = 'N'
|
||||
MKEY = MKEY + LTRIM(STR(XKEY))
|
||||
ELSE
|
||||
IF VALTYPE(XKEY) = 'D'
|
||||
MKEY = MKEY + DTOS(XKEY)
|
||||
ELSE
|
||||
MKEY = MKEY + XKEY
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
|
||||
// WATCH OUT FOR NULL CHARACTERS!!!
|
||||
FOR L2 = 1 TO LEN(MKEY)
|
||||
X = SUBSTR(MKEY,1,L2)
|
||||
IF ASC(X) = 0
|
||||
X = ' '
|
||||
MKEY = LEFT(MKEY,L2-1) + X + RIGHT(MKEY, LEN(MKEY)-L2)
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
SELECT &MFILE
|
||||
SEEK MKEY // CGW CUST ID OR FILE KEY
|
||||
IF !FOUND()
|
||||
ADD_REC(1)
|
||||
ELSE
|
||||
REC_LOCK(1)
|
||||
ENDIF
|
||||
|
||||
N_XSELECT(MWORK_AREA) // SELECT BTRIEVE FILE
|
||||
|
||||
FOR L = 1 TO LEN(FLDS_TO_GET)
|
||||
GP_FLD = FLDS_TO_GET[L,1]
|
||||
CGW_FLD = FLDS_TO_GET[L,2]
|
||||
|
||||
|
||||
|
||||
IF MFILE = 'CUST_MAST'
|
||||
|
||||
DO CASE
|
||||
|
||||
CASE GP_FLD == 'PHONE'
|
||||
MVAL = SETDASH(GP_FLD)
|
||||
|
||||
CASE GP_FLD == 'FAX'
|
||||
MVAL = SETDASH(GP_FLD)
|
||||
|
||||
CASE GP_FLD == 'SHIPPHN'
|
||||
MVAL = SETDASH(GP_FLD)
|
||||
|
||||
CASE GP_FLD == 'SHIPFAX'
|
||||
MVAL = SETDASH(GP_FLD)
|
||||
|
||||
CASE GP_FLD == 'TERMS'
|
||||
MVAL = STR(N_XFETCH(GP_FLD),2)
|
||||
|
||||
CASE GP_FLD == 'SHP_METHOD'
|
||||
MVAL = STR(N_XFETCH(GP_FLD),2)
|
||||
|
||||
CASE GP_FLD == 'SLSMAN'
|
||||
MVAL = STR(VAL(N_XFETCH(GP_FLD)),5)
|
||||
|
||||
CASE GP_FLD = 'SHIP'
|
||||
// ONLY GET SHIPPING INFO FOR CUSTOMERS WITH '01' OR '02'
|
||||
// IN THE LAST 2 DIGITS IN THE CUST ID
|
||||
IF RIGHT(MKEY,2) = '01' .OR. RIGHT(MKEY,2) = '02'
|
||||
MVAL = N_XFETCH(GP_FLD)
|
||||
ELSE
|
||||
MVAL = ''
|
||||
ENDIF
|
||||
|
||||
OTHERWISE
|
||||
MVAL = N_XFETCH(GP_FLD)
|
||||
|
||||
ENDCASE
|
||||
ELSE
|
||||
MVAL = N_XFETCH(GP_FLD)
|
||||
ENDIF
|
||||
|
||||
REPLACE &MFILE->&CGW_FLD WITH MVAL
|
||||
NEXT
|
||||
|
||||
|
||||
N_XSKIP(1)
|
||||
ENDDO
|
||||
|
||||
N_XCLOSE(ALL)
|
||||
|
||||
CLOSE DATABASES
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* * * * * * * * * * * * * * * * * * * * * * * *
|
||||
FUNCTION SET_BTREV(MFILE, MDESC)
|
||||
// OPEN UP THE BTRIEVE FILE
|
||||
|
||||
CLS
|
||||
WAIT_BOX(' *** UPDATING ' + MDESC + ' FILE *** ',;
|
||||
' *** PLEASE WAIT *** ')
|
||||
|
||||
N_XLOGIN()
|
||||
N_XERRLVL(3)
|
||||
|
||||
MSTRUCT := {}
|
||||
MFLD_NAMES := {}
|
||||
SELECT 0
|
||||
|
||||
NET_USE('CGWBTREV', .F., 1, 'DEFINITIONS') && CUSTOMER CHANGE FLAG
|
||||
GO TOP
|
||||
DO WHILE !EOF()
|
||||
IF TRIM(SYSNAME) == MFILE
|
||||
AADD(MSTRUCT, FNAME + TYPE + LENGTH + DECIMAL_PT + NUM_DECS + FILLER + SEMI_COLON)
|
||||
AADD(MFLD_NAMES, FNAME)
|
||||
ENDIF
|
||||
SKIP 1
|
||||
ENDDO
|
||||
USE
|
||||
|
||||
|
||||
NET_USE('&CONTROL', .F., 5, 'CONTROL') && CUSTOMER CHANGE FLAG
|
||||
MPATH = ALLTRIM(CONTROL->BTR_PATH)
|
||||
MTABLE = MPATH + MFILE + '.DAT'
|
||||
USE
|
||||
|
||||
SET DEFAULT FILETYPE TO '.DAT'
|
||||
SET RDD TO 'RQBRDD'
|
||||
|
||||
N_XSELECT(0) // SELECT NEXT EMPTY BTRIEVE WORK AREA
|
||||
N_XUSE(MTABLE, MSTRUCT)
|
||||
|
||||
|
||||
SET DEFAULT FILETYPE TO
|
||||
SET RDD TO
|
||||
|
||||
RETURN {MTABLE, MSTRUCT}
|
||||
|
||||
* * * * * * * * * * * * * * * * * *
|
||||
FUNCTION SETDASH(MFIELD)
|
||||
// PUT IN DASHES FOR THE PHONE NUMBER IN &MFILD
|
||||
|
||||
LOCAL MVAL
|
||||
|
||||
MVAL = TRIM(N_XFETCH(MFIELD)) // GET PHONE NUMBER
|
||||
MVAL = LEFT(MVAL,3) + '-' + SUBSTR(MVAL,4,3) + '-' + RIGHT(MVAL,4)
|
||||
RETURN MVAL
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user