* 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