193 lines
4.1 KiB
Plaintext
193 lines
4.1 KiB
Plaintext
* MIKE LEWIS - UPDATE CUSTMAST FROM GREAT PLAINS DBF - CGW1170 04-26-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 T_CM_CUSNO 1 // 1ST Index order for CUSMAS.DAT (customer #)
|
|
#define T_CM_NAME 2 // 2nd Index order for CUSMAS.DAT (customer name)
|
|
#define A_CUSNO 2 // 2nd Element in CUSMAS Field Array (customer #)
|
|
#define A_NAME 4 // 4TH Element in CUSMAS Field Array (customer name)
|
|
|
|
|
|
EXTERNAL N_XVIA
|
|
*****************************************************
|
|
FUNCTION CGWB1170
|
|
// UPDATE CUSTOMER DBF WITH GREAT PLAINS INFO
|
|
|
|
LOCAL MSTRUCT, MFLD_NAMES
|
|
LOCAL FLDS_TO_GET := {}, GP_FLD, CGW_FLD, MVAL
|
|
LOCAL BARM_FACTOR, XXX, OPT, MWORK_AREA
|
|
LOCAL MBANK
|
|
|
|
|
|
CLS
|
|
@ 10,15 SAY 'About to UPDATE the CUSTOMER File 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
|
|
|
|
// GO OPEN AND SETUP BTRIEVR FILE
|
|
RESULT = SET_BTREV()
|
|
MTABLE = RESULT[1]
|
|
MSTRUCT = RESULT[2]
|
|
|
|
|
|
MWORK_AREA = N_XSELECT()
|
|
|
|
// OPEN UP CGW MASTER FILE
|
|
DBOPEN('CUST_MAST')
|
|
*-NET_USE('CGW0CM', .F., 5, 'CUST_MAST') && CUSTOMER CHANGE FLAG
|
|
*-SET INDEX TO CGW1CM,CGW2CM,CGW3CM,CGW4CM
|
|
|
|
|
|
|
|
FLDS_TO_GET = GPFLDLIST()
|
|
|
|
*-QBROWSE(2,2,20,79)
|
|
|
|
|
|
BARM_FACTOR = SETBARM(,, 20, N_XLASTREC() )
|
|
|
|
XXX = 0
|
|
N_XGOTOTOP() // TOP OF BTRIVE FILE
|
|
DO WHILE !N_XEOF()
|
|
XXX++
|
|
BARM_UPDATE(,,XXX, BARM_FACTOR)
|
|
MCUSNO = N_XFETCH(A_CUSNO) // GET CURRENT GREAT PLAINS CUSTOMER ID
|
|
MBANK = N_XFETCH('BANK') // GET CURRENT CUSTOMER ID
|
|
|
|
SELECT CUST_MAST
|
|
*-SEEK MCUSNO
|
|
SEEK MBANK // CGW CUST ID
|
|
IF !FOUND()
|
|
ADD_REC(1)
|
|
REPLACE GP_CUST WITH MCUSNO
|
|
|
|
///////////////////////////////////////////////////
|
|
// TEMPORARY FOR NOW
|
|
*- REPLACE CUST_ID WITH MCUSNO
|
|
REPLACE CUST_ID WITH MBANK
|
|
|
|
|
|
|
|
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]
|
|
|
|
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),12)
|
|
|
|
CASE GP_FLD == 'SHP_METHOD'
|
|
MVAL = STR(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(MBANK,2) = '01' .OR. RIGHT(MBANK,2) = '02'
|
|
MVAL = N_XFETCH(GP_FLD)
|
|
ELSE
|
|
MVAL = ''
|
|
ENDIF
|
|
|
|
|
|
|
|
OTHERWISE
|
|
MVAL = N_XFETCH(GP_FLD)
|
|
|
|
ENDCASE
|
|
|
|
|
|
*- IF EMPTY(CUST_MAST->&CGW_FLD)
|
|
REPLACE CUST_MAST->&CGW_FLD WITH MVAL
|
|
*- ENDIF
|
|
|
|
NEXT
|
|
|
|
|
|
N_XSKIP(1)
|
|
ENDDO
|
|
CLOSE DATABASES
|
|
RETURN
|
|
|
|
* * * * * * * * * * * * * * * * * * * * * * * *
|
|
*- FUNCTION SET_BTREV
|
|
*- // OPEN UP THE BTRIEVE FILE
|
|
*-
|
|
*- CLS
|
|
*- WAIT_BOX(' *** UPDATING CUSTOMER FILE *** ',;
|
|
*- ' *** PLEASE WAIT *** ')
|
|
*-
|
|
*- N_XLOGIN()
|
|
*- N_XERRLVL(3)
|
|
*-
|
|
*- MSTRUCT := {}
|
|
*- MFLD_NAMES := {}
|
|
*- SELECT 0
|
|
*-
|
|
*- NET_USE('CGWBTREV', .F., 5, 'DEFINITIONS') && CUSTOMER CHANGE FLAG
|
|
*- DO WHILE !EOF()
|
|
*- AADD(MSTRUCT, FNAME + TYPE + LENGTH + DECIMAL_PT + NUM_DECS + FILLER + SEMI_COLON)
|
|
*- AADD(MFLD_NAMES, FNAME)
|
|
*- SKIP 1
|
|
*- ENDDO
|
|
*- USE
|
|
*-
|
|
*-
|
|
*- NET_USE('&CONTROL', .F., 5, 'CONTROL') && CUSTOMER CHANGE FLAG
|
|
*- MPATH = ALLTRIM(CONTROL->BTR_PATH)
|
|
*- MTABLE = MPATH + 'CUSMAS.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
|
|
|
|
|
|
|
|
|