160 lines
3.9 KiB
Plaintext
160 lines
3.9 KiB
Plaintext
* MIKE LEWIS - UPDATE CUSTMAST FROM GREAT PLAINS DBF - CGW1170 04-26-94
|
|
|
|
#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 CGW1170
|
|
// 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
|
|
|
|
|
|
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
|
|
|
|
CLS
|
|
WAIT_BOX(' *** UPDATING CUSTOMER FILE *** ',;
|
|
' *** PLEASE WAIT *** ')
|
|
|
|
N_XLOGIN()
|
|
N_XERRLVL(3)
|
|
|
|
MSTRUCT := {}
|
|
MFLD_NAMES := {}
|
|
SELECT 0
|
|
USE CUSTMAST ALIAS DEFINITIONS
|
|
NET_USE('CUSTMAST', .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
|
|
|
|
|
|
DBOPEN('CUST_MAST')
|
|
DONSETORD(4) // INDEXED ON GP_CUST
|
|
DBOPEN('CONTROL', .F.)
|
|
*-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'
|
|
NEW_STRUCT := RQBSTRUCT('CUSMAS')
|
|
|
|
N_XSELECT(0) // SELECT NEXT EMPTY BTRIEVE WORK AREA
|
|
N_XUSE(MTABLE, MSTRUCT)
|
|
MWORK_AREA = N_XSELECT()
|
|
|
|
*-N_XORDER(MORDER) // SET TO CORRECT INDEX ORDER
|
|
|
|
N_XSRECSIZ()
|
|
N_XRECSIZ()
|
|
SET DEFAULT FILETYPE TO
|
|
SET RDD TO
|
|
|
|
// BUILD LIST OF FIELDS TO GET INFO FROM
|
|
*-AADD(FLDS_TO_GET, {'CUSNO', 'GP_CUST'})
|
|
AADD(FLDS_TO_GET, {'NAME', 'COMP_NAME'})
|
|
AADD(FLDS_TO_GET, {'SLSMAN', 'SLSMAN'})
|
|
AADD(FLDS_TO_GET, {'DSHP', 'SHP_METHOD'})
|
|
AADD(FLDS_TO_GET, {'DTRM', '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, {'SHIPADD2', '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'})
|
|
|
|
|
|
|
|
|
|
*-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 CUSTOMER ID
|
|
|
|
SELECT CUST_MAST
|
|
SEEK MCUSNO
|
|
IF !FOUND()
|
|
ADD_REC(1)
|
|
REPLACE GP_CUST WITH MCUSNO
|
|
|
|
///////////////////////////////////////////////////
|
|
// TEMPORARY FOR NOW
|
|
REPLACE CUST_ID WITH MCUSNO
|
|
|
|
|
|
|
|
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 GP_FLD == 'DTRM'
|
|
MVAL = STR(N_XFETCH(GP_FLD),12)
|
|
ELSE
|
|
MVAL = N_XFETCH(GP_FLD)
|
|
ENDIF
|
|
|
|
REPLACE CUST_MAST->&CGW_FLD WITH MVAL
|
|
|
|
NEXT
|
|
|
|
|
|
N_XSKIP(1)
|
|
ENDDO
|
|
CLOSE DATABASES
|
|
RETURN
|
|
|