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

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