1864 lines
53 KiB
Plaintext
1864 lines
53 KiB
Plaintext
// CGW0350 - don and mike - 08-06-94
|
|
*************************************************
|
|
|
|
#INCLUDE 'CGWINCLD.PRG'
|
|
|
|
|
|
*************************************************
|
|
FUNCTION DEF_MITEMS()
|
|
LOCAL FIELDARR := {}
|
|
LOCAL FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC := 0
|
|
|
|
FIELDNAME := 'PARTNUM'
|
|
COLHEAD := {'Part #'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
|
|
FIELDNAME := 'DISPVALUE(PARTNUM,"MISC_ITEMS",{"DESC"})'
|
|
COLHEAD := {'Description'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 25
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'DISPVALUE(PARTNUM,"MISC_ITEMS",{"GL_NUM"})'
|
|
COLHEAD := {'GL Num'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'UOM'
|
|
COLHEAD := {'Unit','Of', 'Measure'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(DLR_AMT, 10,4) '
|
|
COLHEAD := {'Dealer'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 10
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(SD_AMT, 10,4) '
|
|
COLHEAD := {'Special','Dealer'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 10
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(BU_AMT, 10,4) '
|
|
COLHEAD := {'Builder'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 10
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(DIST_AMT, 10,4) '
|
|
COLHEAD := {'Distributor'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 10
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(LUMB_AMT, 10,4) '
|
|
COLHEAD := {'Lumbermen'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 10
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(IC_AMT, 10,4) '
|
|
COLHEAD := {'Intercompany'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 10
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
|
|
|
|
RETURN FIELDARR
|
|
|
|
|
|
|
|
********************************************************************
|
|
//** P3N - 3/18/99 - LIMIT THE NUMBER OF FIELDS PRINTING ON REPORT
|
|
********************************************************************
|
|
FUNCTION DEF_BILLTRAN()
|
|
LOCAL FIELDARR := {}
|
|
LOCAL FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC := 0
|
|
|
|
FIELDNAME := 'ORDER_NUM'
|
|
COLHEAD := {'Order #'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 6
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'SPACE(1) + INVNR'
|
|
COLHEAD := {'Invoice#'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'CRMNR'
|
|
COLHEAD := {' Ref #'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 6
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
* FIELDNAME := 'GL_NUM'
|
|
* COLHEAD := {'GL Acct #'}
|
|
* TOTALFLD := .F.
|
|
* DISPLEN := 10
|
|
* DISPDEC := 0
|
|
* AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'SPACE(2) + SALCD'
|
|
COLHEAD := {'Sale','Code'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 4
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'SLSNR'
|
|
COLHEAD := {'Sales',' Rep'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'SPACE(3) + ACREC'
|
|
COLHEAD := {'Active',' Code'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 6
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'SPACE(1) + COMNO'
|
|
COLHEAD := {'Comp#'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'CUSNR'
|
|
COLHEAD := {'Customer#'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 9
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'TRNDT'
|
|
COLHEAD := {'Trans','Date'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 6
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(INVAM,13,2)'
|
|
COLHEAD := {' Invoice ',' Amount '}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 13
|
|
DISPDEC := 2
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(TXBLAMT,13,2)'
|
|
COLHEAD := {' Taxable ',' Amount '}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 13
|
|
DISPDEC := 2
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(TXAM1,13,2)'
|
|
COLHEAD := {'Sales Tax Amt'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 13
|
|
DISPDEC := 2
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'TXSCHED'
|
|
COLHEAD := {' Tax ',' Sched'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 6
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
RETURN FIELDARR
|
|
|
|
*************************************************
|
|
FUNCTION DEF_ORDERS(WHATRPT)
|
|
LOCAL FIELDARR := {}
|
|
LOCAL FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC := 0
|
|
LOCAL PRTCUSTNAME := .F.
|
|
IF EMPTY(WHATRPT)
|
|
ELSEIF WHATRPT = 'FULFILLMENT'
|
|
PRTCUSTNAME := .T.
|
|
ENDIF
|
|
FIELDNAME := 'CUST_ID'
|
|
COLHEAD := {'Cust ID'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
IF PRTCUSTNAME
|
|
//**IF EMPTY(CUST_ID) //** P3N - 08/29/01
|
|
//** FIELDNAME := 'No Customer Found' //** P3N - 08/29/01
|
|
//**ELSE //** P3N - 08/29/01
|
|
//** FIELDNAME := 'GET_COMPNAME(CUST_ID)' //** P3N - 08/29/01
|
|
//**ENDIF //** P3N - 08/29/01
|
|
FIELDNAME := 'GET_COMPNAME(CUST_ID)' //** P3N - 08/29/01
|
|
COLHEAD := {'Company Name'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 30
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
ENDIF
|
|
|
|
IF EMPTY(WHATRPT) //** P3N - 08/30/01
|
|
FIELDNAME := 'ORDER_NUM'
|
|
COLHEAD := {'Order#'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 6
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'CUST_PO'
|
|
COLHEAD := {'PO #'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 10
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
ENDIF //** P3N - 08/30/01
|
|
|
|
FIELDNAME := 'INVOICENUM'
|
|
COLHEAD := {'Invoice'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 7
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'DTOC(ORDER_DATE)'
|
|
COLHEAD := {'Order','Date'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
IF EMPTY(WHATRPT) //** P3N - 08/30/01
|
|
FIELDNAME := 'DTOC(CALL_DATE)'
|
|
COLHEAD := {'Call','Date'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'DTOC(PDATE_LAST)'
|
|
COLHEAD := {'Prod','Date'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'DTOC(DDATE_LAST)'
|
|
COLHEAD := {'Delivery','Date'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'SLSMAN'
|
|
COLHEAD := {'Sold','By'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'TERMS'
|
|
COLHEAD := {'Terms'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
ENDIF //** P3N - 08/30/01
|
|
|
|
FIELDNAME := 'SHP_METHOD'
|
|
COLHEAD := {'Shp','Mthd'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 4
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
IF EMPTY(WHATRPT) //** P3N - 08/30/01
|
|
FIELDNAME := 'DEL_ROUTE'
|
|
COLHEAD := {'Rte'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 3
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'PRICE_SHT'
|
|
COLHEAD := {'Price','Sheet'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'TAXSCH'
|
|
COLHEAD := {'Tax','Sch'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 6
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(ORD_L_TTL,10,2)'
|
|
COLHEAD := {' Items',' Total'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 10
|
|
DISPDEC := 2
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(ORD_D_TTL,8,2)'
|
|
COLHEAD := {' Misc.',' Total'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 8
|
|
DISPDEC := 2
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(SALES_TAX,9,2)'
|
|
COLHEAD := {' Tax'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 9
|
|
DISPDEC := 2
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
**FIELDNAME := 'STR(FREIGHT,8,2)'
|
|
**COLHEAD := {' Freight'}
|
|
**TOTALFLD := .T.
|
|
**DISPLEN := 8
|
|
**DISPDEC := 2
|
|
**AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(DISCOUNT,6,2)'
|
|
COLHEAD := {'Discnt'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 6
|
|
DISPDEC := 2
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
ENDIF //** P3N - 08/30/01
|
|
|
|
FIELDNAME := 'STR(TOTAL_AMT,9,2)'
|
|
COLHEAD := {' Total',' Amount'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 10
|
|
DISPDEC := 2
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
|
|
|
|
RETURN FIELDARR
|
|
|
|
*************************************************
|
|
FUNCTION GET_COMPNAME(SEEKKEY)
|
|
LOCAL RETVAL
|
|
IF CUST_MAST->(DBSEEK(SEEKKEY))
|
|
RETVAL := CUST_MAST->COMP_NAME
|
|
ELSEIF EMPTY(SEEKKEY) //** P3N - 08/29/01
|
|
RETVAL := 'NO Customer Found' //** P3N - 08/29/01
|
|
ELSE
|
|
RETVAL := 'Cust. ID - ' + TRIM(SEEKKEY) + ' NOT Found!'
|
|
ENDIF
|
|
RETURN TRIM(RETVAL)
|
|
*************************************************
|
|
FUNCTION BLD_MOPROD(ACTION)
|
|
|
|
LOCAL MORDER_NUM, SEEKKEY, MYEAR, MMONTH, MQUANTITY
|
|
LOCAL RANGEBLOCK, MPROD_CODE, M_DATE
|
|
LOCAL BARM_FACTOR, XXX := 0,I, SELFILE
|
|
|
|
|
|
SELECT ORD_LINES
|
|
IF LASTREC() = 1 .OR. EMPTY(RANGEARR) .OR. EMPTY(RANGEARR[1])
|
|
RANGEBLOCK := MAKE_BLOCK( '.T.' )
|
|
ELSE
|
|
RANGEBLOCK := MAKE_BLOCK( RANGEARR[1] )
|
|
ENDIF
|
|
|
|
DO CASE
|
|
CASE ACTION = 'ORDER'
|
|
M_DATE = 'ORDER_DATE'
|
|
|
|
CASE ACTION = 'PRODUCTION'
|
|
M_DATE = 'PDATE_LAST'
|
|
|
|
CASE ACTION = 'INVOICING'
|
|
M_DATE = 'IDATE_LAST'
|
|
|
|
CASE ACTION = 'DELIVER'
|
|
M_DATE = 'DDATE_LAST'
|
|
END CASE
|
|
|
|
FOR I := 1 TO 2
|
|
IF I = 1
|
|
SELFILE := 'ORD_LINES'
|
|
ELSE
|
|
SELFILE := 'ADDL_LINES'
|
|
ENDIF
|
|
SELECT (SELFILE)
|
|
GOTO TOP
|
|
BARM_FACTOR = SETBARM(,, 20, RECCOUNT() )
|
|
XXX = 0
|
|
DO WHILE !EOF()
|
|
|
|
XXX++
|
|
BARM_UPDATE(,,XXX, BARM_FACTOR)
|
|
IF NEXTKEY() = 27
|
|
INKEY() // GET RID OF ESCAPE KEY
|
|
CLOSE DATABASES
|
|
RETURN NIL
|
|
ENDIF
|
|
|
|
IF EMPTY(PROD_CODE)
|
|
SKIP 1
|
|
LOOP
|
|
ENDIF
|
|
|
|
IF !EVAL(RANGEBLOCK)
|
|
SKIP 1
|
|
LOOP
|
|
ENDIF
|
|
|
|
PROD_RPTLINE( SELFILE, M_DATE )
|
|
SKIP 1
|
|
ENDDO
|
|
NEXT
|
|
RETURN .T.
|
|
|
|
********************************************************
|
|
FUNCTION ORD_MAST_DATA( FLDNAME )
|
|
|
|
LOCAL SEEKKEY := ORDER_NUM
|
|
ORD_MAST->(DBSEEK(SEEKKEY ))
|
|
RETURN ORD_MAST->&FLDNAME
|
|
|
|
********************************************************
|
|
FUNCTION PROD_RPTLINE( SELFILE, MDATE )
|
|
|
|
LOCAL SAVESEL := SELECT(), M_DATE, MYEAR, MMONTH, MQUANTITY, MPROD_CODE
|
|
LOCAL MLOC_CODE
|
|
LOCAL MCOLOR := ' ' //** P3N - 01/16/02
|
|
LOCAL PRODTIME := LEFT(MDATE,1) //** P3N - 01/16/02
|
|
LOCAL MPRODHRS := 0 //** P3N - 01/16/02
|
|
|
|
ORD_MAST->(DBSEEK( (SAVESEL)->ORDER_NUM ))
|
|
M_DATE := ORD_MAST->&MDATE
|
|
MYEAR = STR(YEAR(M_DATE),4)
|
|
MMONTH = LEFT(CMONTH(M_DATE),3)
|
|
IF EMPTY(MMONTH) .OR. QUANTITY = 0
|
|
RETURN .F.
|
|
ENDIF
|
|
MCOLOR := GETCOLOR() //** P3N - 01/16/02
|
|
MPROD_CODE = PROD_CODE
|
|
IF PRODTIME == 'P' //** P3N - 01/16/02
|
|
MQUANTITY := GETPRODQTY('QTY') //** P3N - 01/16/02
|
|
MPRODHRS := GETPRODQTY('HRS') //** P3N - 01/16/02
|
|
ELSE //** P3N - 01/16/02
|
|
MQUANTITY := QUANTITY //** P3N - 01/16/02
|
|
ENDIF //** P3N - 01/16/02
|
|
MLOC_CODE = LOC_CODE
|
|
|
|
SEEKKEY = MYEAR + MPROD_CODE + MLOC_CODE
|
|
SELECT USERFILE7
|
|
SEEK SEEKKEY
|
|
IF !FOUND()
|
|
ADD_REC()
|
|
REPLACE PROD_YEAR WITH MYEAR
|
|
REPLACE PROD_CODE WITH MPROD_CODE
|
|
REPLACE LOC_CODE WITH MLOC_CODE
|
|
ELSE
|
|
REC_LOCK()
|
|
ENDIF
|
|
|
|
REPLACE PROD_COLOR WITH MCOLOR //** P3N - 01/16/02
|
|
REPLACE PROD_HOURS WITH PROD_HOURS + MPRODHRS //** P3N - 01/16/02
|
|
REPLACE &MMONTH WITH &MMONTH + MQUANTITY
|
|
REPLACE CAT_CODE WITH GET_CATCODE(MPROD_CODE)
|
|
REPLACE ORDER_NUM WITH ORD_MAST->ORDER_NUM
|
|
REPLACE THIS_DATE WITH M_DATE
|
|
|
|
REPLACE PDATE_LAST WITH ORD_MAST->PDATE_LAST
|
|
REPLACE IDATE_LAST WITH ORD_MAST->IDATE_LAST
|
|
REPLACE DDATE_LAST WITH ORD_MAST->DDATE_LAST
|
|
|
|
UNLOCK
|
|
|
|
SELECT (SAVESEL)
|
|
RETURN .T.
|
|
|
|
********************************************************************
|
|
//** P3N - 01/16/02 **
|
|
//** GET THE PRODUCTION QTY FOR A GIVEN LINE ITEM **
|
|
********************************************************************
|
|
FUNCTION GETPRODQTY(CMD)
|
|
LOCAL RETVAL := 0
|
|
LOCAL CURFILE := 'ORD_PROD'
|
|
LOCAL SVSEL := ALIAS()
|
|
LOCAL SEEKKEY := (SVSEL)->ORDER_NUM + STR((SVSEL)->LINE_NUM,3)
|
|
IF (CURFILE)->(DBSEEK(SEEKKEY))
|
|
DO WHILE (CURFILE)->(!EOF()) .AND. ;
|
|
(CURFILE)->ORDER_NUM == ORD_LINES->ORDER_NUM .AND. ;
|
|
(CURFILE)->LINE_NUM == ORD_LINES->LINE_NUM
|
|
IF EMPTY((CURFILE)->COMPL_DATE)
|
|
ELSEIF EMPTY(M->RANGE5) .AND. EMPTY(M->RANGE6)
|
|
IF CMD == 'QTY'
|
|
RETVAL := RETVAL + (CURFILE)->COMPL_QTY
|
|
ELSEIF CMD == 'HRS'
|
|
RETVAL := RETVAL + (CURFILE)->HOURS
|
|
ENDIF
|
|
ELSEIF (CURFILE)->COMPL_DATE >= M->RANGE5 .AND. ;
|
|
(CURFILE)->COMPL_DATE <= M->RANGE6
|
|
IF CMD == 'QTY'
|
|
RETVAL := RETVAL + (CURFILE)->COMPL_QTY
|
|
ELSEIF CMD == 'HRS'
|
|
RETVAL := RETVAL + (CURFILE)->COMPL_HOURS
|
|
ENDIF
|
|
ENDIF
|
|
(CURFILE)->(DBSKIP(+1))
|
|
ENDDO
|
|
ENDIF
|
|
|
|
RETURN RETVAL
|
|
********************************************************************
|
|
//** P3N - 01/16/02 **
|
|
//** GET THE COLOR FOR A GIVEN LINE ITEM **
|
|
********************************************************************
|
|
FUNCTION GETCOLOR(CMD)
|
|
LOCAL RETVAL := ''
|
|
LOCAL SVSEL := ALIAS(), CURFILE
|
|
LOCAL SEEKKEY := ''
|
|
IF ALLTRIM( SVSEL ) == 'ORD_LINES'
|
|
CURFILE := 'ORDER_OPTS'
|
|
ELSEIF ALLTRIM( SVSEL ) == 'ADDL_LINES'
|
|
CURFILE := 'ADDL_OPTS'
|
|
ENDIF
|
|
IF EMPTY(CMD) .OR. ALLTRIM( SVSEL )$'ORD_LINES ADDL_LINES'
|
|
SEEKKEY := ORD_LINES->ORDER_NUM + STR(ORD_LINES->LINE_NUM,3)
|
|
IF (CURFILE)->(DBSEEK(SEEKKEY))
|
|
DO WHILE (CURFILE)->(!EOF()) .AND. ;
|
|
(CURFILE)->ORDER_NUM == ORD_LINES->ORDER_NUM .AND. ;
|
|
(CURFILE)->LINE_NUM == ORD_LINES->LINE_NUM
|
|
IF AT('COLOR',(CURFILE)->ATT_CODE) > 0
|
|
RETVAL := (CURFILE)->USER_RESP
|
|
ENDIF
|
|
(CURFILE)->(DBSKIP(+1))
|
|
ENDDO
|
|
ENDIF
|
|
ELSEIF CMD == 'PROD_COLOR'
|
|
RETVAL := (SVSEL)->PROD_COLOR
|
|
ENDIF
|
|
RETURN RETVAL
|
|
********************************************************************
|
|
// SELECT ORD_MAST
|
|
//
|
|
// IF LASTREC() = 1 .OR. EMPTY(RANGEARR) .OR. EMPTY(RANGEARR[1])
|
|
// RANGEBLOCK := MAKE_BLOCK( '.T.' )
|
|
// ELSE
|
|
// RANGEBLOCK := MAKE_BLOCK( RANGEARR[1] )
|
|
// ENDIF
|
|
//
|
|
// GO TOP
|
|
// BARM_FACTOR = SETBARM(,, 20, RECCOUNT() )
|
|
// DO WHILE EVAL(RANGEBLOCK) .AND. !EOF()
|
|
//
|
|
// XXX++
|
|
// BARM_UPDATE(,,XXX, BARM_FACTOR)
|
|
//
|
|
// DO CASE
|
|
// CASE ACTION = 'ORDER'
|
|
// M_DATE = ORDER_DATE
|
|
//
|
|
// CASE ACTION = 'PRODUCTION'
|
|
// M_DATE = PDATE_LAST
|
|
//
|
|
// CASE ACTION = 'INVOICING'
|
|
// M_DATE = IDATE_LAST
|
|
//
|
|
// CASE ACTION = 'DELIVER'
|
|
// M_DATE = DDATE_LAST
|
|
// END CASE
|
|
//
|
|
// MORDER_NUM = ORDER_NUM
|
|
//
|
|
// SELECT ORD_LINES
|
|
// SEEK MORDER_NUM
|
|
// DO WHILE MORDER_NUM = ORDER_NUM .AND. !EOF()
|
|
// IF EMPTY(PROD_CODE)
|
|
// SKIP 1
|
|
// LOOP
|
|
// ENDIF
|
|
//
|
|
// MYEAR = STR(YEAR(M_DATE),4)
|
|
// MMONTH = LEFT(CMONTH(M_DATE),3)
|
|
// IF EMPTY(MMONTH)
|
|
// SKIP 1
|
|
// LOOP
|
|
// ENDIF
|
|
//
|
|
// MPROD_CODE = PROD_CODE
|
|
// MQUANTITY = QUANTITY
|
|
//
|
|
// SEEKKEY = MYEAR + MPROD_CODE
|
|
// SELECT USERFILE7
|
|
// SEEK SEEKKEY
|
|
// IF !FOUND()
|
|
// ADD_REC()
|
|
// REPLACE PROD_YEAR WITH MYEAR
|
|
// REPLACE PROD_CODE WITH MPROD_CODE
|
|
// ELSE
|
|
// REC_LOCK()
|
|
// ENDIF
|
|
//
|
|
// REPLACE &MMONTH WITH &MMONTH + MQUANTITY
|
|
// REPLACE CAT_CODE WITH GET_CATCODE(MPROD_CODE)
|
|
// REPLACE CAT_CODE WITH GET_CATCODE(MPROD_CODE)
|
|
// REPLACE ORDER_NUM WITH ORD_MAST->ORDER_NUM
|
|
// REPLACE ORDER_DATE WITH ORD_MAST->ORDER_DATE
|
|
// REPLACE PDATE_LAST WITH ORD_MAST->PDATE_LAST
|
|
// REPLACE IDATE_LAST WITH ORD_MAST->IDATE_LAST
|
|
// REPLACE DDATE_LAST WITH ORD_MAST->DDATE_LAST
|
|
//
|
|
// UNLOCK
|
|
// SELECT ORD_LINES
|
|
// SKIP 1
|
|
// ENDDO
|
|
// SELECT ORD_MAST
|
|
// SKIP 1
|
|
// ENDDO
|
|
// RETURN NIL
|
|
//
|
|
*************************************************
|
|
FUNCTION DEF_MOPROD()
|
|
LOCAL FIELDARR := {}
|
|
LOCAL FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC := 0
|
|
|
|
FIELDNAME := 'PROD_YEAR'
|
|
COLHEAD := {'Year'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 6
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'PROD_CODE'
|
|
COLHEAD := {'Product'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 9
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'PROD_COLOR' //** P3N - 01/16/02
|
|
COLHEAD := {'Product',' Color'} //** P3N - 01/16/02
|
|
TOTALFLD := .F. //** P3N - 01/16/02
|
|
DISPLEN := 10 //** P3N - 01/16/02
|
|
DISPDEC := 0 //** P3N - 01/16/02
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
IF M->PRODTIME = 2 //** P3N - 01/16/02
|
|
FIELDNAME := 'STR(PROD_HOURS,10,2)' //** P3N - 01/16/02
|
|
COLHEAD := {'Total Prod',' Hours'} //** P3N - 01/16/02
|
|
TOTALFLD := .T. //** P3N - 01/16/02
|
|
DISPLEN := 10 //** P3N - 01/16/02
|
|
DISPDEC := 2 //** P3N - 01/16/02
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
ENDIF //** P3N - 01/16/02
|
|
|
|
FIELDNAME := 'LOC_CODE'
|
|
COLHEAD := {'Location'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 14
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(JAN,5)'
|
|
COLHEAD := {' JAN'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(FEB,5)'
|
|
COLHEAD := {' FEB'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(MAR,5)'
|
|
COLHEAD := {' MAR'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(APR,5)'
|
|
COLHEAD := {' APR'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(MAY,5)'
|
|
COLHEAD := {' MAY'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(JUN,5)'
|
|
COLHEAD := {' JUN'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(JUL,5)'
|
|
COLHEAD := {' JUL'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(AUG,5)'
|
|
COLHEAD := {' AUG'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(SEP,5)'
|
|
COLHEAD := {' SEP'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(OCT,5)'
|
|
COLHEAD := {' OCT'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(NOV,5)'
|
|
COLHEAD := {' NOV'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(DEC,5)'
|
|
COLHEAD := {' DEC'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 5
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'STR(YEAR_END(),10)'
|
|
COLHEAD := {' TOTAL'}
|
|
TOTALFLD := .T.
|
|
DISPLEN := 10
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
RETURN FIELDARR
|
|
|
|
|
|
*************************************************
|
|
//** P3N - 02/27/02 **
|
|
//** PER LINDAS REQUEST FROM DATADICT PRNT_POS**
|
|
*************************************************
|
|
FUNCTION DEF_CMRPT()
|
|
LOCAL FIELDARR := {}
|
|
LOCAL FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC := 0
|
|
|
|
FIELDNAME := 'CUST_ID'
|
|
COLHEAD := {'Customer','Number'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'COMP_NAME'
|
|
COLHEAD := {'Customer','Name'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 30
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
//**FIELDNAME := 'ALLTRIM(CONT_FNAME) + " " + CONT_LNAME'
|
|
//**COLHEAD := {'Contact','Name'}
|
|
//**TOTALFLD := .F.
|
|
//**DISPLEN := 40
|
|
//**AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'CUST_ADDR'
|
|
COLHEAD := {'Address '}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 30
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'CUST_ADDR2'
|
|
COLHEAD := {'Address '}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 30
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'CUST_CITY'
|
|
COLHEAD := {'City'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 30
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'CUST_STATE'
|
|
COLHEAD := {'ST'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 2
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'CUST_ZIP'
|
|
COLHEAD := {' Zip'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 5
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'PHONE'
|
|
COLHEAD := {'Phone'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 12
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'FAX'
|
|
COLHEAD := {'FAX'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 12
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'TERMS +"/"+ GETTERMS()'
|
|
COLHEAD := {'Terms'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 25
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'STR(CREDIT_LIM,12,2)'
|
|
COLHEAD := {'Credit Limit'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 12
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'SPACE(3)+PRE_BILL'
|
|
COLHEAD := {'PreBill'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 7
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'SPACE(1)+PICK_DEL'
|
|
COLHEAD := {'PU','Del','Ins'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 3
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := '" " + DEL_ROUTE'
|
|
COLHEAD := {'Del', 'Rte'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 3
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := '" " + GL_CODE'
|
|
COLHEAD := {'GL', 'Code'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 4
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
|
|
RETURN FIELDARR
|
|
*************************************************
|
|
//** P3N - 02/27/02
|
|
*************************************************
|
|
FUNCTION GETTERMS()
|
|
LOCAL SEEKKEY := CUST_MAST->TERMS
|
|
LOCAL RETVAL := 'No TERM ' + ALLTRIM(SEEKKEY) + ' FOUND'
|
|
IF TERMS->(DBSEEK(SEEKKEY))
|
|
RETVAL := TERMS->DESC
|
|
ENDIF
|
|
RETURN RETVAL
|
|
*************************************************
|
|
FUNCTION BLD_CUSTDEL()
|
|
LOCAL FIELDARR := {}
|
|
LOCAL FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC := 0
|
|
|
|
FIELDNAME := 'CUST_ID'
|
|
COLHEAD := {'Customer',' ID'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'COMP_NAME'
|
|
COLHEAD := {'Customer','Name'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 30
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'ALLTRIM(CONT_FNAME) + " " + CONT_LNAME'
|
|
COLHEAD := {'Contact','Name'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 15
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := '" " + DEL_ROUTE'
|
|
COLHEAD := {'Delivery', ' Route'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 30
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'SHIPNAME'
|
|
COLHEAD := {'Shipping', 'Information'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 40
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
|
|
RETURN FIELDARR
|
|
|
|
|
|
*************************************************
|
|
FUNCTION BLD_CUSTSETUP()
|
|
LOCAL FIELDARR := {}
|
|
LOCAL FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC := 0
|
|
|
|
FIELDNAME := 'CUST_ID'
|
|
COLHEAD := {'Customer',' ID'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
DISPDEC := 0
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC} )
|
|
|
|
FIELDNAME := 'COMP_NAME'
|
|
COLHEAD := {'Customer','Name'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 30
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := '" " + PICK_DEL'
|
|
COLHEAD := {'PU/DEL','Install'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 7
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := '" " + SHP_METHOD'
|
|
COLHEAD := {'Shipping', ' Code'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := '" " + SLSMAN'
|
|
COLHEAD := {'Salesman'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 8
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := '" " + TERMS'
|
|
COLHEAD := {'Terms'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 5
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := '" " + PRICE_SHT'
|
|
COLHEAD := {'Price', 'Sheet'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 5
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := 'TAXSCH'
|
|
COLHEAD := {'Sales', ' Tax','Sched'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 6
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
**FIELDNAME := 'STR(SLS_TX_PCT,7,4)'
|
|
FIELDNAME := 'STR( CALC_STAX( TAXSCH, .F. ),7,4)'
|
|
COLHEAD := {'Sales', ' Tax',' %'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 6
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
FIELDNAME := '" " + RND_PRICE'
|
|
COLHEAD := {'Round', 'Price'}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 5
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
|
|
|
|
RETURN FIELDARR
|
|
|
|
|
|
*************************************************
|
|
|
|
|
|
*********************************************************
|
|
FUNCTION SEEKCATDESC(SEEKKEY)
|
|
LOCAL SAVESEL := SELECT()
|
|
SELECT CATEGORY
|
|
DBSEEK(SEEKKEY)
|
|
SELECT (SAVESEL)
|
|
RETURN ALLTRIM(CATEGORY->DESC)
|
|
|
|
**************************************************
|
|
|
|
FUNCTION SEEKATTDESC(SEEKKEY)
|
|
LOCAL SAVESEL := SELECT()
|
|
SELECT ATTRIBUTES
|
|
DBSEEK(SEEKKEY)
|
|
SELECT (SAVESEL)
|
|
RETURN '"' + ALLTRIM(ATTRIBUTES->ATT_CODE) + '"/' + ALLTRIM(ATTRIBUTES->DESC)
|
|
|
|
**************************************************
|
|
* BUILD THE PRICING REPORT IN A USER FILE
|
|
**************************************************
|
|
|
|
FUNCTION BLD_PRICERPT(DATAFILE, PKEY, RPT_TYPE, LEVEL )
|
|
|
|
LOCAL PROD_ARR := {}, P_ARR := {}, G_ARR := {}, I, ELM, II
|
|
LOCAL ROW_CNT := 0, COL_CNT := 0, CNT_ARR := {}, AS_FILE, P_SOURCE
|
|
LOCAL MP_KEY, MP_SK_BLK, MP_FOUND := .F., PCT_STR
|
|
LOCAL PE_KEY, PE_SK_BLK, PE_FOUND := .F., P_ARRAY := {}, SEEKKEY
|
|
LOCAL CUT_SPEC_ARR, L, L2, MP_ARR
|
|
|
|
//*
|
|
//* OPEN ALL DBFS TO BE USED TO BUILD THE REPORT
|
|
//*
|
|
DBOPEN('RULES')
|
|
DBOPEN('RULEPACK')
|
|
DBOPEN('CUST_ATTS',,,{2})
|
|
DBOPEN('CUST_OPTS',,,{3})
|
|
DBOPEN('PROD_ATTS',,,{2})
|
|
DBOPEN('PROD_OPTS',,,{3})
|
|
DBOPEN('CAT_ATTS',,,{2})
|
|
DBOPEN('CAT_OPTS',,,{3})
|
|
DBOPEN('ATTRIBUTES',,,{1})
|
|
DBOPEN('ATT_OPTS',,,{3})
|
|
DBOPEN('MATHPACK',,,{1})
|
|
DBOPEN('PRI_EXTRAS',,,{2})
|
|
DBOPEN('CUST_PE',,,{1})
|
|
DBOPEN("PRODUCT",,, {1}) // OPEN PRODUCT FILE FO SINGLE INDEX
|
|
DBOPEN("CATEGORY",,, {1}) // OPEN CATEGORY FILE FO SINGLE INDEX
|
|
DBOPEN("CUT_SPEC")
|
|
DBOPEN("ATTRIB_CUT")
|
|
|
|
IF LEVEL = 'MODEL'
|
|
PR_CUSTID := SPACE(8)
|
|
ELSE
|
|
PR_CUSTID := CUST_MAST->CUST_ID
|
|
ENDIF
|
|
PROD_ARR := BUILD_GETARR(PKEY, 2,,,,,,PR_CUSTID) //* GET ALL INFO FOR THE PRICING RPT
|
|
P_ARRAY := PROD_ARR[PRICE_ARR]
|
|
G_ARR := PROD_ARR[GET_ARR]
|
|
AS_FILE := PROD_ARR[ATRB_SRC]
|
|
IF SUBS(PROD_ARR[ATRB_SRC], 1, 3) == 'PRO' //PRODUCT LEVEL
|
|
P_SOURCE := 'MODEL Level'
|
|
ELSEIF SUBS(PROD_ARR[ATRB_SRC], 1, 3) == 'CAT' //CATEGORY LEVEL
|
|
P_SOURCE := 'CATEGORY Level'
|
|
ELSEIF SUBS(PROD_ARR[ATRB_SRC], 1, 3) == 'CUS' //CATEGORY LEVEL
|
|
P_SOURCE := 'CUSTOMER Level'
|
|
ELSE
|
|
P_SOURCE := 'SYSTEM Level' // SYSTEM LEVEL
|
|
ENDIF
|
|
|
|
// ADDED BY DON 2-21-94 TO GET DEALER PICKUP DISCOUNT
|
|
SELECT CATEGORY
|
|
DBSEEK(PRODUCT->CAT_CODE)
|
|
|
|
SELECT USERFILE7
|
|
GO TOP
|
|
IF RPT_TYPE == 'PRICE' //PRICING REPORT
|
|
FOR II := 1 TO LEN(P_ARRAY)
|
|
IF LEVEL = 'CUST' .AND. P_ARRAY[II,1] <> CUST_MAST->PRICE_SHT
|
|
LOOP
|
|
ENDIF
|
|
P_ARR := GET_PRICEARR(P_ARRAY, P_ARRAY[II, 1])
|
|
IF EMPTY(P_ARR)
|
|
LOOP
|
|
ENDIF
|
|
IF LEVEL = 'CUST'
|
|
REP_VAR := 'Normal Base Price for CUSTOMER ' + PR_CUSTID + ' - (Pick up Discount = ' ;
|
|
+ STR(CATEGORY->D_PICKDISC, 5,2) + ')'
|
|
* ADD_U7(REP_VAR)
|
|
* REP_VAR := ' '
|
|
* ADD_U7(REP_VAR)
|
|
* LOOP
|
|
ELSE
|
|
IF P_ARRAY[II, 1] == 'D' //DEALER PRICING
|
|
REP_VAR := 'Base Price - DEALER PRICING - (Pick up Discount = ' ;
|
|
+ STR(CATEGORY->D_PICKDISC, 5,2) + ')'
|
|
ELSE
|
|
IF VALTYPE(P_ARR) != 'A' // IS THIS AN ARRAY OF ROWS / COLS
|
|
// NO - IT IS THE % OF DEALER PRICE
|
|
PCT_STR := STR(P_ARR,6,2) + '% ' + ' of Dealer Price'
|
|
IF P_ARRAY[II, 1] == 'J' //DISTIBUTER PRICING
|
|
REP_VAR := 'Base Price - DISTRIBUTER PRICING - ' + PCT_STR
|
|
ELSEIF P_ARRAY[II, 1] == 'L' //LUMBER MAN PRICING
|
|
REP_VAR := 'Base Price - LUMBER MAN PRICING - ' + PCT_STR
|
|
ELSEIF P_ARRAY[II, 1] == 'B' //BUILDER PRICING
|
|
REP_VAR := 'Base Price - BUILDER PRICING - ' + PCT_STR
|
|
ELSEIF P_ARRAY[II, 1] == 'S' //SPECIAL DEALER PRICING
|
|
REP_VAR := 'Base Price - SPECIAL DEALER PRICING - ' + PCT_STR
|
|
ELSEIF P_ARRAY[II, 1] == 'I' //INTERCOMPANY PRICING
|
|
REP_VAR := 'Base Price - INTERCOMPANY PRICING - ' + PCT_STR
|
|
ELSE //PRICING OPTION NOT FOUND
|
|
REP_VAR := 'OPTION NOT FOUND - ' + P_ARR[II, 1]
|
|
ENDIF
|
|
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := ' '
|
|
ADD_U7(REP_VAR)
|
|
LOOP
|
|
ELSE
|
|
IF P_ARRAY[II, 1] == 'J' //DISTIBUTER PRICING
|
|
REP_VAR := 'Base Price - DISTRIBUTER PRICING '
|
|
ELSEIF P_ARRAY[II, 1] == 'L' //LUMBER MAN PRICING
|
|
REP_VAR := 'Base Price - LUMBER MAN PRICING '
|
|
ELSEIF P_ARRAY[II, 1] == 'B' //BUILDER PRICING
|
|
REP_VAR := 'Base Price - BUILDER PRICING '
|
|
ELSEIF P_ARRAY[II, 1] == 'S' //SPECIAL DEALER PRICING
|
|
REP_VAR := 'Base Price - SPECIAL DEALER PRICING '
|
|
ELSEIF P_ARRAY[II, 1] == 'I' //SPECIAL DEALER PRICING
|
|
REP_VAR := 'Base Price - INTERCOMPANY PRICING '
|
|
ELSE //PRICING OPTION NOT FOUND
|
|
REP_VAR := 'OPTION NOT FOUND - ' + P_ARR[II, 1]
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := SPACE(15) + ' Attributes' + SPACE(5) + ' Options' + SPACE(15) + 'Default Rule'
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := SPACE(15) + ' ----------' + SPACE(5) + ' -------' + SPACE(15) + '------- ----'
|
|
ADD_U7(REP_VAR)
|
|
|
|
FOR I := 1 TO LEN(P_ARR)
|
|
IF P_ARR[I, ROW_COL] == 'R' // PROCESS ROWS
|
|
ELM := ASCAN(G_ARR, { |X| X[ATRB] == P_ARR[I, ATRB] } )
|
|
IF ELM > 0
|
|
CNT_ARR := BLD_BASE( G_ARR[ELM], P_ARR[I], ROW_CNT, COL_CNT )
|
|
ROW_CNT := CNT_ARR[1]
|
|
COL_CNT := CNT_ARR[2]
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
|
|
ROW_CNT := 0
|
|
COL_CNT := 0
|
|
|
|
FOR I := 1 TO LEN(P_ARR)
|
|
IF P_ARR[I, ROW_COL] == 'C' // PROCESS COLUMNS
|
|
ELM := ASCAN(G_ARR, { |X| X[ATRB] == P_ARR[I, ATRB] } )
|
|
IF ELM > 0
|
|
CNT_ARR := BLD_BASE( G_ARR[ELM], P_ARR[I], ROW_CNT, COL_CNT )
|
|
ROW_CNT := CNT_ARR[1]
|
|
COL_CNT := CNT_ARR[2]
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
|
|
ROW_CNT := 0
|
|
COL_CNT := 0
|
|
|
|
NEXT
|
|
|
|
BLD_LEGND('1')
|
|
|
|
ELSE //PRODUCTION REPORT
|
|
|
|
REP_VAR := 'Production Information:'
|
|
ADD_U7(REP_VAR)
|
|
ADD_U7(' ')
|
|
REP_VAR := 'Adjustments:'
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := 'SAW Width' + SPACE(5) + 'SAW Height' + SPACE(5) + ;
|
|
' TT Width' + SPACE(5) + ' TT Height' + SPACE(5) + ;
|
|
' NS Width' + SPACE(5) + ' NS Height' + SPACE(5) + ;
|
|
' OS Width' + SPACE(5) + ' OS Height' + SPACE(5)
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := '---------' + SPACE(5) + '----------' + SPACE(5) + ;
|
|
'---------' + SPACE(5) + '----------' + SPACE(5) + ;
|
|
'---------' + SPACE(5) + '----------' + SPACE(5) + ;
|
|
'---------' + SPACE(5) + '----------' + SPACE(5)
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := STR(PRODUCT->SAW_WIDTH,9,4) + SPACE(5) + STR(PRODUCT->SAW_HEIGHT,10,4) + SPACE(5) + ;
|
|
STR(PRODUCT->TT_WIDTH,9,4) + SPACE(5) + STR(PRODUCT->TT_HEIGHT,10,4) + SPACE(5) + ;
|
|
STR(PRODUCT->NS_WIDTH,9,4) + SPACE(5) + STR(PRODUCT->NS_HEIGHT,10,4) + SPACE(5) + ;
|
|
STR(PRODUCT->OS_WIDTH,9,4) + SPACE(5) + STR(PRODUCT->OS_HEIGHT,10,4)
|
|
ADD_U7(REP_VAR)
|
|
ADD_U7(' ')
|
|
REP_VAR := 'Sizes:'
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := 'Storm Width ' + SPACE(2) + 'Storm Hght ' + SPACE(5) + ;
|
|
'Screen Width' + SPACE(2) + 'Screen Hght' + SPACE(5) + ;
|
|
'Glass Width ' + SPACE(2) + 'Glass Hght ' + SPACE(5) + ;
|
|
'Sash Width ' + SPACE(2) + 'Sash Hght '
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := '----------- ' + SPACE(2) + '---------- ' + SPACE(5) + ;
|
|
'------------' + SPACE(2) + '-----------' + SPACE(5) + ;
|
|
'----------- ' + SPACE(2) + '---------- ' + SPACE(5) + ;
|
|
'---------- ' + SPACE(2) + '--------- '
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := SPACE(3) + ;
|
|
STR(PRODUCT->STR_WIDTH,8,4) + SPACE(5) + STR(PRODUCT->STR_HEIGHT,8,4) + SPACE(10) + ;
|
|
STR(PRODUCT->MACH_SCRNW,8,4) + SPACE(5) + STR(PRODUCT->MACH_SCRNW,8,4) + SPACE(8) + ;
|
|
STR(PRODUCT->MACH_GLASW,8,4) + SPACE(5) + STR(PRODUCT->MACH_GLASW,8,4) + SPACE(8) + ;
|
|
STR(PRODUCT->MACH_SASHW,8,4) + SPACE(5) + STR(PRODUCT->MACH_SASHW,8,4)
|
|
ADD_U7(REP_VAR)
|
|
ENDIF
|
|
|
|
**************************************************
|
|
* BUILD THE PRODUCT OPTIONS PRICING INFO
|
|
**************************************************
|
|
|
|
REP_VAR := REPLICATE('-', LEN(USERFILE7->DATA) )
|
|
ADD_U7(REP_VAR)
|
|
IF RPT_TYPE == 'PRICE' //PRICING REPORT
|
|
REP_VAR := 'Product Option Pricing - Attributes are Defined at the '
|
|
ELSE
|
|
REP_VAR := 'Product Option Cutting - Attributes are Defined at the '
|
|
ENDIF
|
|
REP_VAR := REP_VAR + ALLTRIM(P_SOURCE)
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := ' '
|
|
ADD_U7(REP_VAR)
|
|
|
|
IF RPT_TYPE == 'PRICE' //PRICING REPORT
|
|
REP_VAR := ' Attributes' + ' B/A' + ' Options' + ;
|
|
SPACE(21) + '$/Unit ' + SPACE(6) + ' $/UI' + SPACE(5) + ;
|
|
' $/SqFt' + SPACE(5) + ' Default Rule' + SPACE(5) + 'Print Options'
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := ' ----------' + ' ---' + ' -------' + ;
|
|
SPACE(21) + '------ ' + SPACE(6) + '------' + SPACE(5) + ;
|
|
'--------' + SPACE(5) + '------- ----' + SPACE(5) + '-------------'
|
|
|
|
ELSE //PRODUCTION REPORT
|
|
|
|
REP_VAR := ' Attributes' + ' B/A' + ' Options' + ;
|
|
SPACE(17) + 'Width Adj.' + SPACE(2) + 'Height Adj.' + SPACE(3) + ;
|
|
'Default' + SPACE(3) + 'Rule' + SPACE(5) + 'Print Options'
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := ' ----------' + ' ---' + ' -------' + ;
|
|
SPACE(17) + '----------' + SPACE(2) + '-----------' + SPACE(3) + ;
|
|
'-------' + SPACE(3) + '----' + SPACE(5) + '-------------'
|
|
ENDIF
|
|
ADD_U7(REP_VAR)
|
|
|
|
FOR I := 1 TO LEN(G_ARR)
|
|
IF EMPTY(G_ARR[I])
|
|
ELSE
|
|
REP_VAR := SPACE(1)
|
|
BLD_OPT(G_ARR[I], REP_VAR, 'PO', RPT_TYPE)
|
|
ENDIF
|
|
NEXT
|
|
|
|
BLD_LEGND('2')
|
|
|
|
**************************************************
|
|
* BUILD THE USER NUMERIC INPUT FIELDS
|
|
**************************************************
|
|
|
|
REP_VAR := REPLICATE('-', LEN(USERFILE7->DATA) )
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := 'User Numeric Input Fields - Attributes are Defined at the '
|
|
REP_VAR := REP_VAR + ALLTRIM(P_SOURCE)
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := SPACE(10) + 'User Input Attributes'
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := SPACE(10) + '---------------------'
|
|
ADD_U7(REP_VAR)
|
|
|
|
FOR I := 1 TO LEN(G_ARR)
|
|
IF EMPTY( G_ARR[I] )
|
|
ELSE
|
|
IF G_ARR[I, OPT_TYP] == 'U'
|
|
REP_VAR := SPACE(15) + G_ARR[I, ATRB]
|
|
ADD_U7(REP_VAR)
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
|
|
|
|
**************************************************
|
|
* BUILD THE SYSTEM CALC FIELDS - MATHPACK
|
|
**************************************************
|
|
REP_VAR := REPLICATE('-', LEN(USERFILE7->DATA) )
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := 'System Calc. Fields - These Apply to ALL UI Excess Attributes for entire CATEGORY - '
|
|
REP_VAR := REP_VAR + SEEKCATDESC(PRODUCT->CAT_CODE)
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := SPACE(15) + 'Calc Attribute' + SPACE(4) + ' Field 1 ' + SPACE(6) + 'Oper' + SPACE(10) + ' Field 2 '
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := SPACE(15) + '--------------' + SPACE(4) + '---------' + SPACE(6) + '----' + SPACE(10) + '---------'
|
|
ADD_U7(REP_VAR)
|
|
|
|
FOR I := 1 TO LEN(G_ARR)
|
|
IF EMPTY( G_ARR[I] )
|
|
ELSE
|
|
IF G_ARR[I, OPT_TYP] == 'C'
|
|
REP_VAR := SPACE(19) + G_ARR[I, ATRB]
|
|
MP_KEY := PRODUCT->CAT_CODE + G_ARR[I, ATRB]
|
|
MP_SK_BLK := {|| MATHPACK->CAT_CODE + MATHPACK->ATT_CODE}
|
|
MP_FOUND := MATHPACK->(DBSEEK (MP_KEY) )
|
|
IF MP_FOUND
|
|
DO WHILE MP_KEY == EVAL(MP_SK_BLK)
|
|
REP_VAR := REP_VAR + SPACE(5) + MATHPACK->FIELD1 + SPACE(6) + MATHPACK->OPERATOR + SPACE(15) + MATHPACK->FIELD2
|
|
ADD_U7(REP_VAR)
|
|
MATHPACK->(DBSKIP(1))
|
|
REP_VAR := SPACE(29)
|
|
ENDDO
|
|
ELSE
|
|
REP_VAR := REP_VAR + 'NO Calc. Values FOUND'
|
|
ADD_U7(REP_VAR)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
|
|
|
|
IF RPT_TYPE == 'PRICE' //PRICING REPORT
|
|
**************************************************
|
|
* BUILD THE PRICING EXTRA FIELDS - PRI_EXTRAS
|
|
**************************************************
|
|
REP_VAR := REPLICATE('-', LEN(USERFILE7->DATA) )
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := 'Pricing Extra Fields Defined for CATEGORY - '
|
|
REP_VAR := REP_VAR + SEEKCATDESC(PRODUCT->CAT_CODE)
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := SPACE(5) + ' Extra Option ' + SPACE(5) + ' Rule '
|
|
REP_VAR := REP_VAR + SPACE(5) + 'Price Sheet'
|
|
REP_VAR := REP_VAR + SPACE(5) + 'True Value' + SPACE(5) + 'False Value'
|
|
REP_VAR := REP_VAR + SPACE(5) + ' $ / Unit ' + SPACE(5) + ' $ / UI '
|
|
REP_VAR := REP_VAR + SPACE(5) + ' $ / SqFt '
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := SPACE(5) + '---------------- ' + SPACE(5) + ' ---- '
|
|
REP_VAR := REP_VAR + SPACE(5) + '-----------'
|
|
REP_VAR := REP_VAR + SPACE(5) + '----------' + SPACE(5) + '-----------'
|
|
REP_VAR := REP_VAR + SPACE(5) + ' -------- ' + SPACE(5) + ' ------- '
|
|
REP_VAR := REP_VAR + SPACE(5) + ' -------- '
|
|
ADD_U7(REP_VAR)
|
|
|
|
|
|
PE_KEY := PRODUCT->CAT_CODE
|
|
PE_SK_BLK := {|| PRI_EXTRAS->CAT_CODE }
|
|
PE_FOUND := PRI_EXTRAS->(DBSEEK (PE_KEY) )
|
|
IF PE_FOUND
|
|
DO WHILE PE_KEY == EVAL(PE_SK_BLK)
|
|
REP_VAR := STR(PRI_EXTRAS->SEQ_NUM,2) + '. '+ PRI_EXTRAS->OPTION + SPACE(5)
|
|
REP_VAR := REP_VAR + PRI_EXTRAS->RULE_PACK + SPACE(5)
|
|
REP_VAR := REP_VAR + PRI_EXTRAS->PRICE_SHT + SPACE(7)
|
|
REP_VAR := REP_VAR + PRI_EXTRAS->TRUE_VAL + SPACE(5)
|
|
REP_VAR := REP_VAR + PRI_EXTRAS->FALSE_VAL + SPACE(6)
|
|
REP_VAR := REP_VAR + TRANSFORM(PRI_EXTRAS->UNIT_SALE, '99,999.99') + SPACE(6)
|
|
//** P3N - 6/9/98 UPDATED TO ALLOW UI/SQFT PRICING @ .01 CENT
|
|
REP_VAR := REP_VAR + TRANSFORM(PRI_EXTRAS->UI_SALE, '99,999.9999') + SPACE(4)
|
|
REP_VAR := REP_VAR + TRANSFORM(PRI_EXTRAS->SQFT_SALE, '99,999.9999')
|
|
******REP_VAR := REP_VAR + TRANSFORM(PRI_EXTRAS->UI_SALE, '99,999.99') + SPACE(6)
|
|
******REP_VAR := REP_VAR + TRANSFORM(PRI_EXTRAS->SQFT_SALE, '99,999.99')
|
|
ADD_U7(REP_VAR)
|
|
|
|
SEEKKEY := PRI_EXTRAS->CAT_CODE + PRI_EXTRAS->OPTION
|
|
CUST_PE->(DBSEEK(SEEKKEY) )
|
|
DO WHILE CUST_PE->CAT_CODE + CUST_PE->OPTION == SEEKKEY .AND. !EOF()
|
|
IF EMPTY(PR_CUSTID) .OR. CUST_PE->CUST_ID == PR_CUSTID
|
|
REP_VAR := SPACE(41) + '* ' + CUST_PE->CUST_ID + ' *'
|
|
ADD_U7(REP_VAR)
|
|
ENDIF
|
|
CUST_PE->(DBSKIP(1))
|
|
ENDDO
|
|
PRI_EXTRAS->(DBSKIP(1))
|
|
ENDDO
|
|
ELSE
|
|
REP_VAR := 'NO Pricing Extras FOUND'
|
|
ADD_U7(REP_VAR)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
**************************************************
|
|
* BUILD THE CUTTING SPEC ARRAY AND PRINT IT
|
|
**************************************************
|
|
IF LEVEL == 'MODEL' //MODEL CUTTING REPT
|
|
REP_VAR := REPLICATE('-', LEN(USERFILE7->DATA) )
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR = 'Cutting Specifications'
|
|
ADD_U7(REP_VAR)
|
|
|
|
REP_VAR = 'ATTRIBUTE DESC' + SPACE(22) + 'CODE PROFILE SEQ# QTY RULE PRINT ON'
|
|
REP_VAR = REP_VAR + ' Field 1 ' + SPACE(2) + 'Oper' + SPACE(1) + 'Field 2'
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR = '---------- ------------------------- ------ ------- ---- --- ------- --------'
|
|
REP_VAR = REP_VAR + ' ---------' + SPACE(1) + '----' + SPACE(1) + '---------'
|
|
ADD_U7(REP_VAR)
|
|
|
|
CUT_SPEC_ARR := GET_CUT_SPEC( PKEY )
|
|
FOR L = 1 TO LEN(CUT_SPEC_ARR)
|
|
REP_VAR = CUT_SPEC_ARR[L,1] + ' ' // ATT_CODE
|
|
REP_VAR = REP_VAR + CUT_SPEC_ARR[L,10] + ' ' // DESC
|
|
REP_VAR = REP_VAR + CUT_SPEC_ARR[L,4] + ' ' // PRNT CODE
|
|
REP_VAR = REP_VAR + CUT_SPEC_ARR[L,5] + ' ' // PROFILE
|
|
REP_VAR = REP_VAR + STR(CUT_SPEC_ARR[L,2],4) + ' ' // SEQ #
|
|
REP_VAR = REP_VAR + STR(CUT_SPEC_ARR[L,3],3) + ' ' // QTY
|
|
REP_VAR = REP_VAR + CUT_SPEC_ARR[L,8] + ' ' // RULE
|
|
REP_VAR = REP_VAR + CUT_SPEC_ARR[L,9] + ' ' // PRINT ON
|
|
|
|
MP_ARR := {}
|
|
SEEKKEY = PRODUCT->PROD_CODE + CUT_SPEC_ARR[L,1] // MATH PACK
|
|
SELECT MATHPACK
|
|
SEEK SEEKKEY
|
|
DO WHILE SEEKKEY == CAT_CODE + ATT_CODE
|
|
IF TYPE = 'C' // CUTTING SPEC MATH PATH
|
|
AADD(MP_ARR, FIELD1 + SPACE(2) + OPERATOR + SPACE(2) + FIELD2)
|
|
ENDIF
|
|
SKIP 1
|
|
ENDDO
|
|
IF !EMPTY(MP_ARR)
|
|
FOR L2 = 1 TO LEN(MP_ARR)
|
|
IF L2 = 1 // IF IT'S THE FIRST LINE
|
|
REP_VAR = REP_VAR + SPACE(1) + MP_ARR[L2]
|
|
ELSE
|
|
REP_VAR = SPACE(78) + MP_ARR[L2]
|
|
ENDIF
|
|
ADD_U7(REP_VAR)
|
|
NEXT
|
|
ELSE
|
|
ADD_U7(REP_VAR)
|
|
ENDIF
|
|
NEXT
|
|
|
|
ENDIF
|
|
|
|
REP_VAR := REPLICATE('-', LEN(USERFILE7->DATA) )
|
|
ADD_U7(REP_VAR)
|
|
RETURN P_SOURCE
|
|
|
|
**************************************************
|
|
* BUILD THE BASE PRICING REPORT INFO
|
|
**************************************************
|
|
|
|
PROCEDURE BLD_BASE(G_ARR, P_ARR, ROW_CNT, COL_CNT)
|
|
LOCAL REP_VAR := ' ', I
|
|
|
|
IF P_ARR[ROW_COL] == 'R' .AND. ROW_CNT < 1
|
|
ROW_CNT ++
|
|
REP_VAR := SPACE(2) + 'ROWS '
|
|
ELSEIF P_ARR[ROW_COL] == 'C' .AND. COL_CNT < 1
|
|
COL_CNT ++
|
|
REP_VAR := SPACE(2) + 'COLUMNS '
|
|
ELSE
|
|
REP_VAR := SPACE(10)
|
|
ENDIF
|
|
|
|
BLD_OPT(G_ARR, REP_VAR, 'BP')
|
|
|
|
RETURN {ROW_CNT, COL_CNT}
|
|
|
|
|
|
**************************************************
|
|
* FIND ALL OPTIONS IN THE OPT_ARR - G_ARR[3]
|
|
**************************************************
|
|
PROCEDURE BLD_OPT ( G_ARR, REP_VAR, TYP, RPT_TYPE )
|
|
*-LOCAL I, OPT_SOURCE
|
|
LOCAL I, OPT_SOURCE, MSEQUENCE
|
|
IF EMPTY( G_ARR[OPT_ARR] ) .OR. G_ARR[OPT_TYP]$'CU'
|
|
ELSE
|
|
|
|
// MSL
|
|
*-REP_VAR := REP_VAR + SPACE(9) + G_ARR[ATRB]
|
|
|
|
|
|
|
|
//// MIKE LEWIS CHANGE 2/21/94
|
|
// MOVED THE FOLLOWING TO END OF ATTRIBUTE
|
|
|
|
IF SUBS(G_ARR[OPT_SRC], 1, 3) == 'PRO'
|
|
OPT_SOURCE := '(M) '
|
|
ELSEIF SUBS(G_ARR[OPT_SRC], 1, 3) == 'CAT'
|
|
OPT_SOURCE := '(C) '
|
|
ELSEIF SUBS(G_ARR[OPT_SRC], 1, 3) == 'CUS'
|
|
OPT_SOURCE := '(U) '
|
|
ELSE
|
|
OPT_SOURCE := '(S) '
|
|
ENDIF
|
|
|
|
IF TYP == 'BP'
|
|
REP_VAR := REP_VAR + SPACE(5) + OPT_SOURCE + G_ARR[ATRB]
|
|
ELSEIF TYP == 'PO'
|
|
REP_VAR := REP_VAR + OPT_SOURCE + G_ARR[ATRB] + ' (' + G_ARR[BAFLAG] + ')'
|
|
ENDIF
|
|
|
|
|
|
FOR I := 1 TO LEN(G_ARR[OPT_ARR])
|
|
//// MIKE LEWIS CHANGE 2/21/94
|
|
// PUTTING THE SEQUENCE NUMBER OF OPTION WHERE THE SOURCE WAS!
|
|
MSEQUENCE = STR(G_ARR[OPT_ARR,I,5],2) + '. ' // SEQUENCE OF OPTIONS
|
|
IF TYP == 'BP' // BASE PRICE
|
|
REP_VAR := REP_VAR + SPACE(5) + MSEQUENCE + G_ARR[OPT_ARR, I, OPT_DESC]
|
|
REP_VAR := REP_VAR + SPACE(4) + G_ARR[OPT_ARR, I, OPT_DEF]
|
|
REP_VAR := REP_VAR + SPACE(5) + G_ARR[OPT_ARR, I, OPT_RULE]
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := SPACE(29)
|
|
ELSEIF TYP == 'PO' // PRICING OPTIONS
|
|
REP_VAR := REP_VAR + SPACE(3) + MSEQUENCE + G_ARR[OPT_ARR, I, OPT_DESC]
|
|
|
|
IF RPT_TYPE == 'PRICE' //PRICING REPORT
|
|
REP_VAR := REP_VAR + SPACE(3) + TRANSFORM(G_ARR[OPT_ARR, I, OPT_AMTS, OA_PRICE], '9,999.99')
|
|
REP_VAR := REP_VAR + SPACE(3) + TRANSFORM(G_ARR[OPT_ARR, I, OPT_AMTS, OA_UI], '9,999.9999')
|
|
REP_VAR := REP_VAR + SPACE(3) + TRANSFORM(G_ARR[OPT_ARR, I, OPT_AMTS, OA_SQFT], '9,999.9999')
|
|
ELSE //PRODUCT REPORT
|
|
REP_VAR := REP_VAR + SPACE(3) + TRANSFORM(G_ARR[OPT_ARR, I, OPT_WADJ], '999.9999')
|
|
REP_VAR := REP_VAR + SPACE(3) + TRANSFORM(G_ARR[OPT_ARR, I, OPT_HADJ], '999.9999')
|
|
ENDIF
|
|
|
|
REP_VAR := REP_VAR + SPACE(8) + G_ARR[OPT_ARR, I, OPT_DEF]
|
|
REP_VAR := REP_VAR + SPACE(6) + G_ARR[OPT_ARR, I, OPT_RULE]
|
|
IF EMPTY( G_ARR[OPT_ARR, I, OPT_PIND] )
|
|
ELSE
|
|
REP_VAR := REP_VAR + SPACE(3) + '(' + G_ARR[OPT_ARR, I, OPT_PIND] + ')'
|
|
REP_VAR := REP_VAR + SPACE(1) + G_ARR[OPT_ARR, I, OPT_PVAL]
|
|
ENDIF
|
|
ADD_U7(REP_VAR)
|
|
REP_VAR := SPACE(20)
|
|
ENDIF
|
|
|
|
NEXT
|
|
ADD_U7(REP_VAR)
|
|
ENDIF
|
|
RETURN
|
|
**************************************************
|
|
* CREATE THE LEGEND FOR THE REPORTS
|
|
**************************************************
|
|
PROCEDURE BLD_LEGND(OPT)
|
|
LOCAL REP_VAR
|
|
IF OPT == '1'
|
|
REP_VAR := SPACE(15) + '(S) - SYSTEM Option '
|
|
ELSE
|
|
REP_VAR := SPACE(1) + '(S) - SYSTEM Option ' + SPACE(76) + '(A) - ALWAYS Print'
|
|
ENDIF
|
|
ADD_U7(REP_VAR)
|
|
|
|
IF OPT == '1'
|
|
REP_VAR := SPACE(15) + '(C) - CATEGORY Option '
|
|
ELSE
|
|
REP_VAR := SPACE(1) + '(C) - CATEGORY Option ' + SPACE(76) + '(N) - NEVER Print'
|
|
ENDIF
|
|
ADD_U7(REP_VAR)
|
|
|
|
IF OPT == '1'
|
|
REP_VAR := SPACE(15) + '(M) - MODEL Option '
|
|
ELSE
|
|
REP_VAR := SPACE(1) + '(M) - MODEL Option ' + SPACE(76) + '(D) - Print If DEFAULT'
|
|
ENDIF
|
|
ADD_U7(REP_VAR)
|
|
|
|
IF OPT == '1'
|
|
REP_VAR := SPACE(15) + '(U) - USER DEFINED Special Pricing Option'
|
|
ELSE
|
|
REP_VAR := SPACE(1) + '(U) - USER DEFINED Special Pricing Option ' + SPACE(56) + '(E) - Print If NOT DEFAULT'
|
|
ENDIF
|
|
ADD_U7(REP_VAR)
|
|
|
|
* IF OPT == '1'
|
|
* ELSE
|
|
* REP_VAR := SPACE(99) + '(E) - Print If NOT Default'
|
|
* ADD_U7(REP_VAR)
|
|
* ENDIF
|
|
RETURN
|
|
**************************************************
|
|
* ADD THE INFORMATION INTO THE USER FILE
|
|
**************************************************
|
|
PROCEDURE ADD_U7(REP_VAR)
|
|
LOCAL SAVESEL := SELECT()
|
|
SELECT USERFILE7
|
|
ADD_REC(5)
|
|
REPLACE DATA WITH REP_VAR
|
|
SELECT(SAVESEL)
|
|
RETURN
|
|
**************************************************
|
|
* DEFINE THE PRICING REPORT USERFILE LAYOUT AND HEADINGS FOR RPRIN-REPORT GENERATOR
|
|
**************************************************
|
|
FUNCTION FLD_PRICERPT(RPT_TYPE, LEVEL)
|
|
//* FUNCTION FLD_PRICERPT(ATRB_SOURCE)
|
|
LOCAL FIELDARR := {}
|
|
LOCAL FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC := 0
|
|
LOCAL HEAD1, HEAD2, HEAD3, HEAD4, HEAD5
|
|
LOCAL DBF_FLD_INFO := {}
|
|
|
|
WAIT_BOX(' *** Retreiving Model Definitions *** ',;
|
|
' *** PLEASE WAIT ***')
|
|
|
|
// THIS IS REALLY A BLD_PROC PARAMETER ??
|
|
ATRB_SOURCE := BLD_PRICERPT('USERFILE7', PRODUCT->PROD_CODE, RPT_TYPE, LEVEL)
|
|
|
|
FIELDNAME := 'DATA'
|
|
HEAD1 := [ 'Category - ' + ALLTRIM(PRODUCT->CAT_CODE) + ' / ' + SEEKCATDESC(PRODUCT->CAT_CODE) ]
|
|
HEAD2 := [ 'Model - ' + ALLTRIM(PRODUCT->PROD_CODE) + ' / ' + ALLTRIM(PRODUCT->DESC) ]
|
|
HEAD3 := 'Attributes are Defined at the ' + ATRB_SOURCE
|
|
IF LEVEL = 'CUST'
|
|
HEAD4 := 'Customer - ' + ALLTRIM(CUST_MAST->COMP_NAME) + ' Phone - ' + CUST_MAST->PHONE + ' Fax - ' + CUST_MAST->FAX
|
|
ELSE
|
|
HEAD4 := ' '
|
|
ENDIF
|
|
IF LEVEL = 'CUST'
|
|
HEAD5 := ' ' + ALLTRIM(CUST_MAST->CUST_CITY) + ' ' + ALLTRIM(CUST_MAST->CUST_STATE) + ' ' + CUST_MAST->CUST_ZIP
|
|
ELSE
|
|
HEAD5 := ' '
|
|
ENDIF
|
|
COLHEAD := {&HEAD1, &HEAD2, HEAD3, HEAD4, HEAD5}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 130
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
RETURN FIELDARR
|
|
|
|
**************************************************
|
|
* DEFINE THE PRODUCT PRICING REPORT USERFILE LAYOUT
|
|
* AND HEADINGS FOR RPRIN-REPORT GENERATOR
|
|
**************************************************
|
|
FUNCTION BASEPRICE()
|
|
//* FUNCTION FLD_PRICERPT(ATRB_SOURCE)
|
|
LOCAL FIELDARR := {}
|
|
LOCAL FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC := 0
|
|
LOCAL HEAD1, HEAD2, HEAD3
|
|
LOCAL DBF_FLD_INFO := {}
|
|
|
|
WAIT_BOX(' *** Retreiving Model Definitions *** ',;
|
|
' *** PLEASE WAIT ***')
|
|
|
|
|
|
FIELDNAME := 'DATA'
|
|
HEAD1 := [ 'Category - "' + ALLTRIM(PRODUCT->CAT_CODE) + '" / ' + SEEKCATDESC(PRODUCT->CAT_CODE) ]
|
|
HEAD2 := ' '
|
|
COLHEAD := {&HEAD1, HEAD2}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 131
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
RETURN FIELDARR
|
|
|
|
|
|
|
|
***********************************
|
|
FUNCTION BLD_RULERPT
|
|
// BUILD REPORT FOR RULE VERIFICATION AND ASSIGNMENT
|
|
|
|
LOCAL FIELDARR := {}
|
|
LOCAL FIELDNAME, COLHEAD, TOTALFLD, DISPLEN, DISPDEC := 0
|
|
LOCAL HEAD1, HEAD2, HEAD3
|
|
LOCAL DBF_FLD_INFO := {}
|
|
LOCAL FLD_ARR := {}, MSG
|
|
|
|
WAIT_BOX(' *** Verifying Rule Definitions *** ',;
|
|
' *** PLEASE WAIT ***')
|
|
|
|
FIELDNAME := 'DATA'
|
|
HEAD1 := 'RULE VERIFICATION'
|
|
HEAD2 := ''
|
|
HEAD3 := ''
|
|
COLHEAD := {HEAD1, HEAD2, HEAD3}
|
|
TOTALFLD := .F.
|
|
DISPLEN := 120
|
|
AADD(FIELDARR, {FIELDNAME, COLHEAD, TOTALFLD, DISPLEN} )
|
|
|
|
//*
|
|
//* OPEN ALL DBFS TO BE USED TO BUILD THE REPORT
|
|
//*
|
|
DBOPEN('RULES')
|
|
DBOPEN('RULEPACK')
|
|
DBOPEN('PROD_ATTS',,,{2})
|
|
DBOPEN('PROD_OPTS',,,{3})
|
|
DBOPEN('CAT_ATTS',,,{2})
|
|
DBOPEN('CAT_OPTS',,,{3})
|
|
DBOPEN('ATT_OPTS',,,{3})
|
|
DBOPEN('PRI_EXTRAS',,,{2})
|
|
DBOPEN("PRODUCT",,, {1}) // OPEN PRODUCT FILE FO SINGLE INDEX
|
|
DBOPEN("CATEGORY",,, {1}) // OPEN CATEGORY FILE FO SINGLE INDEX
|
|
DBOPEN("STD_SIZES",,, {1})
|
|
|
|
|
|
// RESET THE UPDATED FLAGS IN BOTH RULE FILES
|
|
SELECT RULES
|
|
FIL_LOCK(1)
|
|
REPLACE ALL UPDATED WITH ' '
|
|
UNLOCK
|
|
|
|
SELECT RULEPACK
|
|
FIL_LOCK(1)
|
|
REPLACE ALL UPDATED WITH ' '
|
|
UNLOCK
|
|
|
|
|
|
// CHECK THE PRODUCT FILE
|
|
AADD(FLD_ARR, {'Stock Product ', 'PROD_CODE'})
|
|
VERIFY_RULE('PRODUCT', FLD_ARR) //** PERRY 2-17-98
|
|
** VERIFY_RULE('PRI_EXTRAS', FLD_ARR)
|
|
|
|
// CHECK THE PRICING EXTRA FILE
|
|
FLD_ARR := {} //** PERRY 2-17-98
|
|
AADD(FLD_ARR, {'Category ', 'CAT_CODE'})
|
|
AADD(FLD_ARR, {'Option ', 'OPTION'})
|
|
VERIFY_RULE('PRI_EXTRAS', FLD_ARR)
|
|
|
|
// CHECK THE PRODUCT ATTRIBUTES
|
|
FLD_ARR := {}
|
|
AADD(FLD_ARR, {'Model', 'PROD_CODE'})
|
|
AADD(FLD_ARR, {'Attribute', 'ATT_CODE'})
|
|
VERIFY_RULE('PROD_ATTS', FLD_ARR)
|
|
|
|
|
|
// CHECK THE CATEGORY ATTRIBUTES
|
|
FLD_ARR := {}
|
|
AADD(FLD_ARR, {'Category ', 'CAT_CODE'})
|
|
AADD(FLD_ARR, {'Attribute', 'ATT_CODE'})
|
|
VERIFY_RULE('CAT_ATTS', FLD_ARR)
|
|
|
|
|
|
// CHECK THE ATTRIBUTE OPTIONS
|
|
FLD_ARR := {}
|
|
AADD(FLD_ARR, {'Attribute ', 'ATT_CODE'})
|
|
AADD(FLD_ARR, {'Option ', 'OPT_VALUE'})
|
|
VERIFY_RULE('ATT_OPTS', FLD_ARR)
|
|
|
|
|
|
// CHECK THE PRODUCT OPTIONS
|
|
FLD_ARR := {}
|
|
AADD(FLD_ARR, {'Model ', 'PROD_CODE'})
|
|
AADD(FLD_ARR, {'Attribute ', 'ATT_CODE'})
|
|
AADD(FLD_ARR, {'Option ', 'OPT_VALUE'})
|
|
VERIFY_RULE('PROD_OPTS', FLD_ARR)
|
|
|
|
|
|
// CHECK THE CATEGORY OPTIONS
|
|
FLD_ARR := {}
|
|
AADD(FLD_ARR, {'Category ', 'CAT_CODE'})
|
|
AADD(FLD_ARR, {'Attribute ', 'ATT_CODE'})
|
|
AADD(FLD_ARR, {'Option ', 'OPT_VALUE'})
|
|
VERIFY_RULE('CAT_OPTS', FLD_ARR)
|
|
|
|
// SEE IF ALL RULES ARE BEING USED
|
|
SELECT RULES
|
|
GOTO TOP
|
|
DO WHILE !EOF()
|
|
IF UPDATED <> 'Y'
|
|
MSG = 'Rule ' + ALLTRIM(RULE_CODE) + ' in the Rule File is not assigned'
|
|
ADD_U7(MSG)
|
|
ENDIF
|
|
SKIP 1
|
|
ENDDO
|
|
|
|
// SEE IF ALL RULES HAVE A RULEPACK
|
|
SELECT RULEPACK
|
|
GOTO TOP
|
|
DO WHILE !EOF()
|
|
IF UPDATED <> 'Y'
|
|
MSG = 'Rule ' + ALLTRIM(RULE_CODE) + ' in the Rule PACK File is not assigned'
|
|
ADD_U7(MSG)
|
|
ENDIF
|
|
SKIP 1
|
|
ENDDO
|
|
|
|
|
|
RETURN FIELDARR
|
|
|
|
************************************************
|
|
FUNCTION VERIFY_RULE(MFILE, FLD_ARR, FLD2CHECK)
|
|
// CHECK RULES FOR FOR MFILE
|
|
|
|
LOCAL MRULE_PACK
|
|
|
|
IF FLD2CHECK = NIL
|
|
FLD2CHECK := 'RULE_PACK'
|
|
ENDIF
|
|
|
|
SELECT &MFILE
|
|
DO WHILE !EOF()
|
|
IF !EMPTY(&FLD2CHECK)
|
|
MRULE_PACK = &FLD2CHECK
|
|
SELECT RULES
|
|
SEEK MRULE_PACK
|
|
IF !FOUND()
|
|
REPORT_IT(MFILE, 'RULES', FLD_ARR, FLD2CHECK)
|
|
ELSE
|
|
REC_LOCK(1)
|
|
REPLACE UPDATED WITH 'Y'
|
|
UNLOCK
|
|
|
|
SELECT RULEPACK
|
|
SEEK MRULE_PACK
|
|
IF !FOUND()
|
|
REPORT_IT(MFILE, 'RULEPACK', FLD_ARR, FLD2CHECK)
|
|
ELSE
|
|
DO WHILE RULE_CODE == MRULE_PACK .AND. !EOF()
|
|
REC_LOCK(1)
|
|
REPLACE UPDATED WITH 'Y'
|
|
UNLOCK
|
|
SKIP 1
|
|
ENDDO
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
SELECT &MFILE
|
|
SKIP 1
|
|
ENDDO
|
|
RETURN
|
|
|
|
|
|
************************************************
|
|
FUNCTION REPORT_IT(MFILE1, MFILE2, FLD_ARR, FLD2CHECK)
|
|
// ADD A RECORD TO THE REPORT FILE
|
|
|
|
LOCAL SAVESEL := SELECT(), REPTLINE, MSG:= ' ', MFIELD
|
|
|
|
SELECT USERFILE7
|
|
ADD_REC(1)
|
|
|
|
FOR L = 1 TO LEN(FLD_ARR)
|
|
MFIELD = FLD_ARR[L,2]
|
|
MSG = MSG + FLD_ARR[L,1] + ALLTRIM(&MFILE1->&MFIELD) + ', '
|
|
NEXT
|
|
|
|
**REPTLINE = 'Rule ' + ALLTRIM(&MFILE1->RULE_PACK) + ',' + MSG
|
|
REPTLINE = 'Rule ' + ALLTRIM(&MFILE1->&FLD2CHECK) + ',' + MSG
|
|
REPTLINE = REPTLINE + ' in the ' + MFILE1 + " wasn't Found in the " + MFILE2 + ' File'
|
|
|
|
REPLACE DATA WITH REPTLINE
|
|
SELECT(SAVESEL)
|
|
RETURN
|
|
|
|
**********************************************************
|
|
FUNCTION YEAR_END
|
|
// RETURN TOTAL OF ALL THE MONTHLY BUCKETS FOR 'MONTHLY PRODUCTION REPORT'
|
|
|
|
LOCAL RETVAL
|
|
|
|
RETVAL = USERFILE7->JAN + USERFILE7->FEB + USERFILE7->MAR + USERFILE7->APR
|
|
RETVAL = RETVAL + USERFILE7->MAY + USERFILE7->JUN + USERFILE7->JUL + USERFILE7->AUG
|
|
RETVAL = RETVAL + USERFILE7->SEP + USERFILE7->OCT + USERFILE7->NOV + USERFILE7->DEC
|
|
|
|
RETURN RETVAL
|
|
|