5578 lines
226 KiB
Plaintext
5578 lines
226 KiB
Plaintext
#INCLUDE 'CGWINCLD.PRG'
|
|
//#INCLUDE 'FIVEWIN.CH'
|
|
//#INCLUDE 'REPORT.CH'
|
|
|
|
|
|
//#INCLUDE 'FIVEWIN.CH'
|
|
// #include "report.ch"
|
|
|
|
#DEFINE SW_SHOW 5
|
|
|
|
|
|
* MIKE LEWIS - PRINT ORDERS - CGWPRINT 02/01/94
|
|
*******************************************************************
|
|
PROCEDURE ALL_ORDPR(OPTION, TITLE, ACTION)
|
|
DBOPEN("CONTROL")
|
|
PRIVATE MD_ALLPRNT := D_ALLPRNT
|
|
PRIVATE MP_ALLPRNT := P_ALLPRNT
|
|
PRIVATE MI_ALLPRNT := I_ALLPRNT
|
|
PRIVATE MO_ALLPRNT := O_ALLPRNT
|
|
PRIVATE MPO_ALLPRNT := PO_ALLPRNT
|
|
PRIVATE MPB_ALLPRNT := PB_ALLPRNT
|
|
PRIVATE MPC_ALLPRNT := PC_ALLPRNT
|
|
PRIVATE MGR_ALLPRNT := GR_ALLPRNT
|
|
PRIVATE MBO_ALLPRNT := BO_ALLPRNT //** P3N - 4/30/98
|
|
PRIVATE _WHEREORD := '1'
|
|
PRIVATE MPRTBYINIT := ' ' //** P3N - 01/07/02
|
|
IF CONTROL->(FIELDPOS( 'ALLPRTINIT' ) ) > 0 //** P3N - 01/07/02
|
|
MPRTBYINIT := CONTROL->ALLPRTINIT //** P3N - 01/07/02
|
|
ENDIF //** P3N - 01/07/02
|
|
USE
|
|
ORD_PRINT(OPTION, TITLE, ACTION)
|
|
RETURN
|
|
*******************************************************************
|
|
PROCEDURE ORD_PRINT(OPTION, TITLE, ACTION, WHEREORD)
|
|
LOCAL SAVESEL := SELECT() //** P3N - 7/12/00
|
|
LOCAL SAVESCR, MTITLE, SVORD := 1, M1, M2, M3, OPT, MARR := {}
|
|
PRIVATE ORD_PARMS, GL_ARR, GL_OVR, GLALLOC_OVR := .F.
|
|
PRIVATE PRNTSOURCE := ACTION, MCUST_ID, MUSER_ID, OUT_ARR
|
|
//** ADDRESS LINDS DELIVERY TICKET PRINT ANOMALY //** P3N - 7/12/00
|
|
IF SELECT(CONTROL) = 0 //** P3N - 7/12/00
|
|
DBOPEN('CONTROL') //** P3N - 7/12/00
|
|
ENDIF //** P3N - 7/12/00
|
|
MLMAR := SPACE(LMAR) //** P3N - 7/12/00
|
|
MTMAR := TMAR //** P3N - 7/12/00
|
|
MBODY_LEN := BODY_LEN //** P3N - 7/12/00
|
|
MHEAD_LEN := HEAD_LEN //** P3N - 7/12/00
|
|
MSING_SHEET := UPPER(SING_SHEET) //** P3N - 7/12/00
|
|
CLOSE CONTROL //** P3N - 7/12/00
|
|
SELECT(SAVESEL) //** P3N - 7/12/00
|
|
|
|
IF !EMPTY(WHEREORD) //SELECTIVE PRINT FROM THE MENU SYSTEM(FUNC-OPEN2100)
|
|
_WHEREORD := WHEREORD
|
|
ENDIF
|
|
IF _WHEREORD = '2' // SECOND TIME THRU - END RECURSIVE CALLS
|
|
_WHEREORD := '1' // RESET TO be first time thru
|
|
RETURN .T.
|
|
ENDIF
|
|
IF LASTKEY() == 27 // ABORT ORDER ENTRY - PRINT MENU
|
|
RETURN
|
|
ENDIF
|
|
|
|
***************************************************************
|
|
* THIS IS THE MENU AT THE END OF ORDER ENTRY PROCESS
|
|
* DETERMINE WHAT COPY OF THE ORDER TO PRINT
|
|
***************************************************************
|
|
IF TITLE = NIL
|
|
IF CUR_MAST = 'QUOTE'
|
|
TITLE = 'PRINT Quotes'
|
|
ELSE
|
|
TITLE = 'PRINT Orders'
|
|
ENDIF
|
|
ENDIF
|
|
CLS
|
|
IF ACTION == 'OE' // ACTION OE = FROM ORDER ENTRY
|
|
TITLE := TITLE + ' ' + ALLTRIM( (CUR_MAST)->ORDER_NUM)
|
|
SAYTITLE(TITLE, 'PR020')
|
|
MORDER_NUM := (CUR_MAST)->ORDER_NUM
|
|
ORD_PROCESS(MORDER_NUM)
|
|
ELSE // MAIN MENU
|
|
DBOPEN(CUR_OL)
|
|
DBOPEN(CUR_MISC)
|
|
DBOPEN('MISC_ITEMS',,,{1})
|
|
ORD_PARMS := DBOPEN(CUR_MAST)
|
|
SAYTITLE(TITLE, 'PR020')
|
|
@ 2,0 CLEAR
|
|
SAVESCR := SAVESCREEN()
|
|
// INDIVIDUALLY SELECTED FROM GET_KEY
|
|
IF ACTION = 'MM'
|
|
DO WHILE .T.
|
|
RESTSCREEN(,,,,SAVESCR)
|
|
MORDER_NUM := GET_KEY(ORD_PARMS)
|
|
IF EMPTY(MORDER_NUM)
|
|
SELECT(CUR_OL)
|
|
USE
|
|
RETURN
|
|
ENDIF
|
|
MTITLE := TITLE + ' ' + ALLTRIM( (CUR_MAST)->ORDER_NUM)
|
|
SAYTITLE(MTITLE, 'PR020')
|
|
IF !NEED_CALC$'N'
|
|
ERR_BOX(' *** THIS ORDER MUST BE RECALCULATED ***', ;
|
|
' Because SOMETHING HAS CHANGED.',;
|
|
' Go to the ORDER ENTRY SCREEN and ',;
|
|
' SAVE THE ORDER AGAIN (F10 key)')
|
|
LOOP
|
|
ENDIF
|
|
MCUST_ID = CUST_ID
|
|
MUSER_ID = USER_ID
|
|
ORD_PROCESS(MORDER_NUM)
|
|
ENDDO
|
|
ELSE
|
|
// PRINT ALL ORDERS UNPRINTED
|
|
MTITLE := TITLE + ' - ALL UNPRINTED'
|
|
SAYTITLE(MTITLE, 'PR020')
|
|
??CHR(7)
|
|
IF MPRTBYINIT == 'Y' //** P3N - 01/07/02
|
|
OPT := PICKLIST({'ALL Unprinted', 'All Unprinted by User('+TRIM(M->USER)+')'}, 13, 25, ' Print Unprinted Orders' )
|
|
IF LASTKEY() = 27 //** P3N - 01/07/02
|
|
ELSE //** P3N - 01/07/02
|
|
IF OPT = 1 //** P3N - 01/07/02
|
|
MPRTBYINIT := '' //** P3N - 01/07/02
|
|
M1 := 'About to Print ALL Unprinted Orders' //** P3N - 01/07/02
|
|
M2 := 'Do You Want to Continue?' //** P3N - 01/07/02
|
|
M3 := '' //** P3N - 01/07/02
|
|
ELSEIF OPT = 2 //** P3N - 01/07/02
|
|
M1 := 'About to Print ALL Unprinted Orders' //** P3N - 01/07/02
|
|
M2 := 'For User - '+ M->USER //** P3N - 01/07/02
|
|
M3 := 'Do You Want to Continue?' //** P3N - 01/07/02
|
|
MTITLE := MTITLE + ' for - '+M->USER //** P3N - 01/07/02
|
|
SAYTITLE(MTITLE, 'PR020') //** P3N - 01/07/02
|
|
ENDIF //** P3N - 01/07/02
|
|
IF PROMPT_BOX(M1, M2, M3) //** P3N - 01/07/02
|
|
MORDER_NUM := NIL //** P3N - 01/07/02
|
|
MCUST_ID = NIL //** P3N - 01/07/02
|
|
MUSER_ID = M->USER //** P3N - 01/07/02
|
|
ORD_PROCESS(MORDER_NUM) //** P3N - 01/07/02
|
|
ENDIF //** P3N - 01/07/02
|
|
ENDIF //** P3N - 01/07/02
|
|
ELSE //** P3N - 01/07/02
|
|
IF PROMPT_BOX('About to Print ALL Unprinted Orders' , ;
|
|
'Do You Want to Continue?', ' ' )
|
|
MORDER_NUM := NIL
|
|
MCUST_ID = NIL
|
|
MUSER_ID = NIL
|
|
ORD_PROCESS(MORDER_NUM)
|
|
ENDIF
|
|
ENDIF //** P3N - 01/07/02
|
|
ENDIF
|
|
ENDIF
|
|
RETURN //** P3N - 3/7/00
|
|
***************************************************************
|
|
** PRINT menu
|
|
***************************************************************
|
|
FUNCTION ORD_PROCESS(MORDER_NUM)
|
|
LOCAL SAVESCR := SAVESCREEN(),CALL_MENU, SVCOLOR, WHATHOTKEY := {' ', ' '}
|
|
//** P3N - 3/8/00
|
|
IF SELECT( CUR_MAST ) > 0 //** AT PRINT ORDER TIME
|
|
SVORD := (CUR_MAST)->(DONSETORD(1)) //** ENSURE YOU ARE ON THE
|
|
ENDIF //** ORDER_NUM ( INDEX ORDER1 )
|
|
|
|
|
|
//** P3N - 3/8/00
|
|
DBOPEN('ALTSHIPADR') //** P3N - 11/13/98
|
|
IF CUR_MAST = 'QUOTE'
|
|
CALL_MENU := 'ORDERS022'
|
|
WHATHOTKEY:= {'F7 - Quote Entry', 'F12- Invoice Msg'}
|
|
ELSE
|
|
//** IF EMPTY( (CUR_MAST)->ORDER_ORG ) //** P3N - 10/21/99
|
|
IF EMPTY( (CUR_MAST)->ORDER_ORG ) .OR. EMPTY(MORDER_NUM) //** P3N - 10/21/99
|
|
CALL_MENU := 'ORDERS020'
|
|
ELSE
|
|
CALL_MENU := 'ORDERS024'
|
|
ENDIF
|
|
WHATHOTKEY:= {'F7 - Order Entry', 'F12- Invoice Msg'}
|
|
ENDIF
|
|
@ 2,0 CLEAR
|
|
IF MORDER_NUM <> NIL
|
|
OUT_ARR := BLD_ORDER(MORDER_NUM)
|
|
ENDIF
|
|
IF EMPTY(OUT_ARR) .AND. MORDER_NUM <> NIL
|
|
@ 2,0 CLEAR
|
|
ERR_BOX('NO Line Items for Order - ' + ALLTRIM(MORDER_NUM))
|
|
ELSE
|
|
|
|
SVCOLOR := SETCOLOR(HREV)
|
|
@ 0,0 SAY WHATHOTKEY[1] // Order or Quote entry?????
|
|
@ 1,0 SAY WHATHOTKEY[2] // Invoice Solicitation msg. entry?????
|
|
SETCOLOR(SVCOLOR)
|
|
SETKEY( -6, {||CHG_REV_HOTKEY( )} ) //ORDER CHG/REV
|
|
SETKEY( -41,{||EDIT_INVNOTES( )} ) //EDIT INVOICE/SOLICITATION MSG
|
|
DO WHILE .T.
|
|
@ 2,0 CLEAR
|
|
CLEAR TYPEAHEAD
|
|
CALLMENU(CALL_MENU) //DISPLAY ORDER/QUOTE PRINT MENU-MENU SYSTEM
|
|
IF LASTKEY() = 27
|
|
EXIT
|
|
ENDIF
|
|
ENDDO
|
|
SETKEY( -6 , NIL)
|
|
SETKEY( -41, NIL)
|
|
ENDIF
|
|
CLOSE ALTSHIPADR //** P3N - 11/13/98
|
|
RETURN
|
|
********************************************************************
|
|
********************************************************************
|
|
********************************************************************
|
|
|
|
FUNCTION PRNT_ORDER(OPTION, TITLE, WHCHORDER)
|
|
|
|
LOCAL XLAST, LASTDATEX, LASTDATE, SEEKKEY, LASTONEPRNT, PARR,CHOICE
|
|
LOCAL OUTMODE := 'BROWSE', CHG_WHAT, CMD, WORKTXT, GL_INBAL
|
|
LOCAL ACTION_CODE := GETAVAR('ACTION_CODE')
|
|
LOCAL SV_SCREEN, ITEMIZE, OPT, SCRNUM, P1, P2, P3, SVSCRN
|
|
LOCAL COD_CNTR := 0, PRINT_ORDER := .T., PRTORDER := .T.
|
|
LOCAL PRTCNTR := 0 //** P3N - 01/07/02
|
|
LOCAL PRT_COD_ONLY := .F., DEL_COD := 0, ESCKEY := .F. //** P3N - 7/20/98
|
|
LOCAL MPORT
|
|
|
|
|
|
DBOPEN('ORD_SHIP') //** P3N - 5/13/98
|
|
PRIVATE BKOSCRNS := 0 //** P3N - 8/12/98 (HAPPY B-DAY JEFF)
|
|
IF MORDER_NUM = NIL // PRINT ALL UNPRINTED ORDERS
|
|
SELECT (CUR_MAST)
|
|
DO CASE
|
|
CASE WHCHORDER = 'PROD'
|
|
SEEKKEY := MP_ALLPRNT
|
|
XLAST := 'PDATE_LAST'
|
|
CASE WHCHORDER = 'DEL'
|
|
DEL_COD := PICKLIST({'ALL Tickets', 'COD Tickets'}, 13, 55, ' Print Delivery' )
|
|
IF DEL_COD == 1 //** P3N - 7/20/98
|
|
PRT_COD_ONLY := .F. //** P3N - 7/20/98
|
|
ELSEIF DEL_COD == 2 //** P3N - 7/20/98
|
|
PRT_COD_ONLY := .T. //** P3N - 7/20/98
|
|
ELSE
|
|
ESCKEY := .T.
|
|
ENDIF //** P3N - 7/20/98
|
|
SEEKKEY := MD_ALLPRNT
|
|
XLAST := 'DDATE_LAST'
|
|
IF ESCKEY
|
|
ELSE
|
|
P1 := '*** Are you sure you want to Print Delivery tickets? *** '
|
|
P2 := ' '
|
|
P3 := ' '
|
|
IF PROMPT_BOX(P1,P2,P3,1) //Default to YES - print
|
|
ELSE
|
|
ESCKEY := .T.
|
|
ENDIF
|
|
ENDIF
|
|
CASE WHCHORDER = 'INV'
|
|
SEEKKEY := MI_ALLPRNT
|
|
XLAST := 'IDATE_LAST'
|
|
CASE WHCHORDER = 'OD'
|
|
SEEKKEY := MO_ALLPRNT
|
|
XLAST := 'ODATE_LAST'
|
|
CASE WHCHORDER = 'PO'
|
|
SEEKKEY := MPO_ALLPRNT
|
|
XLAST := 'XDATE_LAST'
|
|
CASE WHCHORDER = 'PREBILL'
|
|
SEEKKEY := MPB_ALLPRNT
|
|
XLAST := 'BDATE_LAST'
|
|
CASE WHCHORDER = 'PRECOST'
|
|
SEEKKEY := MPC_ALLPRNT
|
|
XLAST := 'CDATE_LAST'
|
|
CASE WHCHORDER = 'GOLDEN'
|
|
SEEKKEY := MGR_ALLPRNT
|
|
XLAST := 'GDATE_LAST'
|
|
CASE WHCHORDER = 'BACKORD' //** P3N - 4/30/98
|
|
SEEKKEY := MBO_ALLPRNT
|
|
XLAST := 'BODATE_LST'
|
|
ENDCASE
|
|
|
|
SET SOFTSEEK ON
|
|
SEEK SEEKKEY
|
|
SET SOFTSEEK OFF
|
|
|
|
IF (CUR_MAST)->ORDER_NUM = SEEKKEY // THE "LAST" ORDER PRINTED
|
|
SKIP 1 // SO GO TO THE NEXT ONE
|
|
ENDIF
|
|
|
|
IF EOF()
|
|
IF ESCKEY
|
|
ELSE
|
|
ERR_BOX('** NO DOCUMENTS TO PRINT ** ')
|
|
ENDIF
|
|
ELSEIF ESCKEY //** P3N - 7/20/98 ESCAPE ON DELIVERY PRINT
|
|
|
|
ELSE
|
|
LASTDATEX := MAKE_BLOCK( XLAST )
|
|
PRTCNTR := 0 //** P3N - 01/07/02
|
|
DO WHILE !EOF()
|
|
PRTORDER := .T. //** P3N - 01/07/02
|
|
IF MPRTBYINIT == 'Y' //** P3N - 01/07/02
|
|
IF ALLTRIM((CUR_MAST)->USER_ID) == ALLTRIM(M->USER) //** P3N - 01/07/02
|
|
ELSE //** P3N - 01/07/02
|
|
PRTORDER := .F. //** P3N - 01/07/02
|
|
ENDIF //** P3N - 01/07/02
|
|
ENDIF //** P3N - 01/07/02
|
|
LASTDATE := EVAL(LASTDATEX)
|
|
//** IF EMPTY(LASTDATE)
|
|
IF EMPTY(LASTDATE) .AND. PRTORDER //** P3N - 01/07/02
|
|
PRTCNTR := PRTCNTR + 1 //** P3N - 01/07/02
|
|
MCUST_ID := CUST_ID
|
|
MUSER_ID := USER_ID
|
|
MORDER_NUM := ORDER_NUM
|
|
PRINT_ORDER := .T. //** P3N - 4/14/98
|
|
IF (CUR_MAST)->TERMS = '98' // CREDIT MEMO //** P3N - 4/14/98
|
|
//** P3N 4/14/98 DO NOT PRINT CREDIT MEMOS FOR PROD OR IC!
|
|
PRINT_ORDER := PRT_ORDER(WHCHORDER) //** P3N - 4/14/98
|
|
ENDIF
|
|
IF PRINT_ORDER //** P3N - 4/14/98
|
|
IF WHCHORDER = 'PREBILL'
|
|
CUST_MAST->(DBSEEK(MCUST_ID))
|
|
IF CUST_MAST->PRE_BILL$'Y'
|
|
OUT_ARR := BLD_ORDER(MORDER_NUM)
|
|
MPORT := PRNT_THIS_ORDER( OPTION, TITLE, WHCHORDER, 1)
|
|
ENDIF
|
|
ELSEIF PRT_COD_ONLY //** P3N - 7/20/98
|
|
IF (CUR_MAST)->TERMS = '30' // C.O.D. //** P3N - 7/20/98
|
|
OUT_ARR := BLD_ORDER(MORDER_NUM) //** P3N - 7/20/98
|
|
MPORT := PRNT_THIS_ORDER( OPTION, TITLE, WHCHORDER, 1)
|
|
COD_CNTR := COD_CNTR + 1
|
|
ENDIF
|
|
ELSEIF WHCHORDER == 'DEL' //** P3N - 7/20/98
|
|
IF EMPTY((CUR_MAST)->DDATE_LAST)
|
|
OUT_ARR := BLD_ORDER(MORDER_NUM)
|
|
MPORT := PRNT_THIS_ORDER( OPTION, TITLE, WHCHORDER, 1)
|
|
ENDIF
|
|
ELSE
|
|
OUT_ARR := BLD_ORDER(MORDER_NUM)
|
|
MPORT := PRNT_THIS_ORDER( OPTION, TITLE, WHCHORDER, 1)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
SELECT (CUR_MAST)
|
|
SKIP 1
|
|
ENDDO
|
|
GOTO BOTTOM
|
|
IF MPRTBYINIT == 'Y' //** P3N - 01/07/02
|
|
IF EMPTY(PRTCNTR) //** P3N - 01/07/02
|
|
ERR_BOX('** NO DOCUMENTS TO PRINT ** ') //** P3N - 01/07/02
|
|
ENDIF //** P3N - 01/07/02
|
|
//** DO NOT UPDATE THE LAST ORDER PRINTED WHEN PRINTING BY INITIALS
|
|
ELSE //** P3N - 01/07/02
|
|
DBOPEN('CONTROL')
|
|
REC_LOCK(1)
|
|
DO CASE
|
|
CASE WHCHORDER = 'PROD'
|
|
REPLACE P_ALLPRNT WITH (CUR_MAST)->ORDER_NUM
|
|
MP_ALLPRNT := P_ALLPRNT
|
|
CASE WHCHORDER = 'DEL'
|
|
IF PRT_COD_ONLY //** P3N - 7/20/98
|
|
IF EMPTY(COD_CNTR) //** P3N - 7/20/98
|
|
ERR_BOX('** NO DOCUMENTS TO PRINT ** ') //** P3N - 7/20/98
|
|
ENDIF //** P3N - 7/20/98
|
|
ELSE //** P3N - 7/20/98
|
|
REPLACE D_ALLPRNT WITH (CUR_MAST)->ORDER_NUM
|
|
MD_ALLPRNT := D_ALLPRNT
|
|
ENDIF
|
|
CASE WHCHORDER = 'INV'
|
|
REPLACE I_ALLPRNT WITH (CUR_MAST)->ORDER_NUM
|
|
MI_ALLPRNT := I_ALLPRNT
|
|
CASE WHCHORDER = 'OD'
|
|
REPLACE O_ALLPRNT WITH (CUR_MAST)->ORDER_NUM
|
|
MO_ALLPRNT := O_ALLPRNT
|
|
CASE WHCHORDER = 'PO'
|
|
REPLACE PO_ALLPRNT WITH (CUR_MAST)->ORDER_NUM
|
|
MPO_ALLPRNT := PO_ALLPRNT
|
|
CASE WHCHORDER = 'PREBILL'
|
|
REPLACE PB_ALLPRNT WITH (CUR_MAST)->ORDER_NUM
|
|
MPB_ALLPRNT := PB_ALLPRNT
|
|
CASE WHCHORDER = 'PRECOST'
|
|
REPLACE PC_ALLPRNT WITH (CUR_MAST)->ORDER_NUM
|
|
MPC_ALLPRNT := PC_ALLPRNT
|
|
CASE WHCHORDER = 'GOLDEN'
|
|
REPLACE GR_ALLPRNT WITH (CUR_MAST)->ORDER_NUM
|
|
MGR_ALLPRNT := GR_ALLPRNT
|
|
CASE WHCHORDER = 'BACKORD' //** P3N - 4/30/98
|
|
REPLACE BO_ALLPRNT WITH (CUR_MAST)->ORDER_NUM
|
|
MBO_ALLPRNT := BO_ALLPRNT
|
|
ENDCASE
|
|
ENDIF //** P3N - 01/07/02
|
|
ENDIF
|
|
MCUST_ID = NIL
|
|
MUSER_ID = NIL
|
|
MORDER_NUM := NIL
|
|
ELSE // PRINT SELECTED ORDERS
|
|
GLALLOC_OVR := .F. //USE THE GL ARRAY ALLOCATIONS - NOT THE OVERRIDES!
|
|
// INVOICE PRINTING????
|
|
IF WHCHORDER == 'INV' .OR. WHCHORDER = 'PREBILL' .OR. WHCHORDER = 'PRECOST'
|
|
ITEMIZE := PICKLIST({'Itemize Amounts', 'NO Amount Itemization'}, 16, 55, '' )
|
|
IF LASTKEY() = 27
|
|
RETURN
|
|
ENDIF
|
|
IF EMPTY(GL_OVR)
|
|
//** NO GL OVERRIDES EXIST FOR THIS ORDER - USE GL_ARR FOR ALLOC.
|
|
ELSE
|
|
P1 := '*** GL Allocation Overrides exist for this order! *** '
|
|
P2 := ' YES - Use GL Allocation Overrides! '
|
|
P3 := ' NO - RE-ALLOCATE GL and DELETE GL Overrides!'
|
|
IF PROMPT_BOX(P1,P2,P3, 1) //Default to YES - Use GL OVERRIDES!
|
|
GLALLOC_OVR := .T. //USE THE GL OVERRIDES FOR THIS ORDER
|
|
ELSE
|
|
IF LASTKEY() = 27
|
|
// ABORT THE USE OF THE EITHER ALLOCATION
|
|
RETURN
|
|
ELSE
|
|
SVSCRN := SAVESCREEN()
|
|
OUT_ARR := BLD_ORDER(MORDER_NUM) // EXEC. TO REALLOC GL ARR
|
|
RESTSCREEN(,,,,SVSCRN)
|
|
GLALLOC_OVR := .F. //USE THE GL ARRAY ALLOCATIONS
|
|
DEL_GLALLOC(MORDER_NUM)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
ITEMIZE := 1
|
|
ENDIF
|
|
SV_SCREEN := SAVESCREEN()
|
|
DO WHILE .T.
|
|
// ONLY THIS GUY GETS THE PREVIEW / CHANGE OPTION
|
|
IF CUR_MAST == 'ORD_MAST'
|
|
IF _OC_CAPABLE
|
|
WORKTXT := 'CHANGE Order'
|
|
ELSE
|
|
WORKTXT := 'REVIEW Order Screens'
|
|
ENDIF
|
|
PARR = {'BROWSE Order Form', WORKTXT , 'PRINT Order'}
|
|
CHG_WHAT := 'ORDER'
|
|
SCRNUM := '2120' // ORDER PROCESSING SCREEN
|
|
ELSE
|
|
IF _OC_CAPABLE
|
|
WORKTXT := 'CHANGE Quote'
|
|
ELSE
|
|
WORKTXT := 'REVIEW Quote Screens'
|
|
ENDIF
|
|
PARR = {'BROWSE Quote Form', WORKTXT , 'PRINT Quote'}
|
|
CHG_WHAT := 'QUOTE'
|
|
SCRNUM := '2220' // QUOTE PROCESSING SCREEN
|
|
ENDIF
|
|
IF WHCHORDER == 'INV' .OR. WHCHORDER = 'PREBILL' .OR. WHCHORDER = 'PRECOST'
|
|
AADD(PARR, 'OVERRIDE GL Alloc.')
|
|
ENDIF
|
|
CHOICE := PICKLIST(PARR,18,55) //Select what ACTION to take?????
|
|
IF LASTKEY() == 27 .OR. CHOICE == 0
|
|
EXIT
|
|
ELSEIF CHOICE == 1 //BROWSE THE ORDER
|
|
OUTMODE := 'BROWSE'
|
|
ELSEIF CHOICE == 2 //CHANGE THE ORDER
|
|
IF _OC_CAPABLE .AND. ACTION_CODE = 'ADD'
|
|
//** OPT := 2 //** P3N - 02/02/07
|
|
//** OPT := 1 //** P3N - 02/02/07
|
|
//** Changed back - per Darlene
|
|
OPT := 1 //** P3N - 02/20/07
|
|
CMD := 'ADD'
|
|
ELSE
|
|
OPT := 3
|
|
CMD := 'REV'
|
|
ENDIF
|
|
IF CUR_MAST = 'QUOTE_MAST'
|
|
ACD_ORDERS (OPT,'CHANGE Quote',{ CUR_MAST, CUR_OL, .T., 2, CMD ,,,,,, .F.,,SCRNUM,.F.,, }, '2')
|
|
ELSE
|
|
ACD_ORDERS (OPT,'CHANGE Sales Order',{ CUR_MAST, CUR_OL, .T., 2, CMD ,,,,,, .F.,,SCRNUM,.F.,, }, '2')
|
|
ENDIF
|
|
SVSCRN := SAVESCREEN()
|
|
OUT_ARR := BLD_ORDER(MORDER_NUM) // EXEC. TO REBUILD OUT_ARR
|
|
//AFTER UPDATES!!
|
|
RESTSCREEN(,,,,SVSCRN)
|
|
LOOP
|
|
ELSEIF CHOICE == 3 //PRINT THE ORDER
|
|
IF WHCHORDER = 'INV' .OR. WHCHORDER = 'PRE'
|
|
// ONLY CHECK FOR GL OVERRIDES FOR INVOICE OR PREBILL/PRECOST
|
|
IF AT('_ARCH', WHCHORDER) > 0 // ARCHIVE COPIES - DO NOT UPDATE
|
|
// BYPASS GL OVERRIDE EDIT FOR ARCHIVED INVOICE OR PREBILL/PRECOST
|
|
ELSE
|
|
IF GLALLOC_OVR //USE THE GL OVERRIDES FOR THIS ORDER
|
|
GL_INBAL := BAL_GLALLOC(MORDER_NUM, GL_OVR)
|
|
ELSE
|
|
GL_INBAL := BAL_GLALLOC(MORDER_NUM, GL_ARR)
|
|
DEL_GLALLOC(MORDER_NUM)
|
|
ENDIF
|
|
IF GL_INBAL
|
|
//THE ORDER AND GL ARE IN BALANCE ALLOW INVOICE PRINT TO OCCUR!!!
|
|
ELSE
|
|
RETURN // RETURN DO NOT ALLOW PRINT WHEN OUT OF BALANCE!!!
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF WHCHORDER == 'INV' //** CHECK SHIPPING AT INVOICE PRINT TIME!
|
|
//** P3N - 11/24/98
|
|
IF CUR_MAST = 'ORD_MAST' //** ONLY CHECK SHIPPING FOR ORDERS
|
|
IF EMPTY((CUR_MAST)->SHIP_DATE)
|
|
CLEAR TYPEAHEAD //** P3N - 12/22/98
|
|
ERR_BOX('**** This Order has NOT been Shipped! ****', ;
|
|
'CONTACT SUPERVISOR TO PRINT THIS INVOICE!!')
|
|
IF LASTKEY() <> 126 //SHIFT + "~" //** P3N - 12/22/98
|
|
LOOP //** P3N - 12/22/98
|
|
ENDIF //** P3N - 12/22/98
|
|
ENDIF
|
|
IF ORD_SHIP->(DBSEEK(MORDER_NUM))
|
|
// ORDER ALREADY SHIPPED DO NOT SHIP @ INV TIME **P3N 5/14/98
|
|
ELSE
|
|
SHIP_TOTQTY(,,CUR_MAST ,.F.)
|
|
SVSCRN := SAVESCREEN()
|
|
OUT_ARR := BLD_ORDER(MORDER_NUM) // EXEC. TO APPLY UPDATES FROM ORDER CONTROL
|
|
RESTSCREEN(,,,,SVSCRN)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
OUTMODE := 'PRINT'
|
|
ELSEIF CHOICE == 4 //UPDATE \ OVERRIDE GL ALLOCATIONS
|
|
GL_OVR := UPD_GLALLOC(MORDER_NUM, GL_ARR)
|
|
IF LASTKEY() = 27
|
|
IF EMPTY(GL_OVR)
|
|
GLALLOC_OVR := .F. //USE THE GL_ARR VALUES AT PRINT TIME!!!
|
|
ELSE
|
|
GLALLOC_OVR := .T. //USE THE OVERRIDE VALUES AT PRINT TIME!!!
|
|
ENDIF
|
|
ELSE
|
|
GLALLOC_OVR := .T. //USE THE OVERRIDE VALUES AT PRINT TIME!!!
|
|
ENDIF
|
|
LOOP
|
|
ENDIF
|
|
MPORT := PRNT_THIS_ORDER( OPTION, TITLE, WHCHORDER, ITEMIZE , OUTMODE)
|
|
|
|
****IF WHCHORDER == 'INV' //** P3N - 6/9/98 IF BO NOT PRINTED
|
|
**** //** FORCE BACKORDER AFTER INVOICE
|
|
**** IF OUTMODE == 'PRINT' //** WHEN PRINTING
|
|
**** IF (CUR_MAST)->(FIELDPOS('BODATE_FST')) > 0
|
|
**** IF EMPTY((CUR_MAST)->BODATE_FST) .AND. ;
|
|
**** EMPTY((CUR_MAST)->BODATE_LST)
|
|
**** //** TURNED OFF UNTIL PRINTER AVAILABLE - PER ELLEN 6/11/98 P3N
|
|
**********PRNT_THIS_ORDER( OPTION, TITLE, 'BACKORD', ITEMIZE , OUTMODE)
|
|
**** ENDIF
|
|
**** ENDIF
|
|
**** ENDIF
|
|
****ENDIF
|
|
|
|
RESTSCREEN(,,,,SV_SCREEN)
|
|
ENDDO
|
|
ENDIF
|
|
|
|
RETURN MPORT
|
|
|
|
**************************************************************
|
|
* P3N - 4/14/98
|
|
* IF THE ORDER IS A PRODUCTION OR INTERCOMPANY ORDER
|
|
* DO NOT PRINT
|
|
**************************************************************
|
|
FUNCTION PRT_ORDER(WHCHORDER)
|
|
LOCAL RETVAL := .T.
|
|
IF WHCHORDER = 'PROD' .OR. WHCHORDER = 'PO' .OR. ;
|
|
WHCHORDER = 'GOLDEN'
|
|
RETVAL := .F.
|
|
ENDIF
|
|
RETURN RETVAL
|
|
**************************************************************
|
|
**************************************************************
|
|
**************************************************************
|
|
|
|
FUNCTION PRNT_THIS_ORDER(OPTION, TITLE, WHCHORDER, ITEMPARM, OUTMODE)
|
|
|
|
LOCAL MPORT
|
|
LOCAL OL_ARR := {}, I, SAVESEL := SELECT()
|
|
LOCAL SS2, CORR, CUSTNAME:='', OUTFILE
|
|
LOCAL MORDER_NUM := (CUR_MAST)->ORDER_NUM
|
|
LOCAL M1, M2, M3, MSG, PARR, CHOICE, PROG, QUOTE_PROCESS := .F.
|
|
LOCAL PIM1 := 'Order '+ (CUR_MAST)->ORDER_NUM +' is NOT entirely SHIPPED! Do you want to: '
|
|
LOCAL PIM2 := ' NO - Invoice Entire Order? - (ALL Items will be Billed.)'
|
|
LOCAL PIM3 := ' YES - PARTIAL Invoice? - (ONLY Shipped items will be Billed.)'
|
|
LOCAL MINVOICENUM, MPO_ARR := {}
|
|
LOCAL MSHIP_DATE, MIDATE_FST, PROD_CODE, ELM, PRTBOCOPY := '1'
|
|
LOCAL BKOARR, ABKOSCR //** P3N - 6/30/98
|
|
LOCAL IPOARR //** P3N - 7/8/98
|
|
LOCAL TOLKEY := '', SCRNINFO := {}, SVDESC //** P3N - 9/16/98
|
|
LOCAL WKORDQTY := 0, WKSHPDQTY := 0 //** P3N -11/4/98
|
|
LOCAL ENTIRE_ORDSHIPPED := .F. //** P3N - 11/13/98
|
|
LOCAL PARTIAL_INVOICE := .F. //** P3N - 11/13/98
|
|
LOCAL REPRINT_INVOICE := .F. //** P3N - 12/3/98
|
|
LOCAL INV_ARR := {} //** P3N - 12/7/98
|
|
|
|
STATIC BKOASCR := {} //** P3N - 8/25/98
|
|
|
|
PRIVATE ITEMIZE := ITEMPARM, SAVE_DESC, SAVE_TYPE, SAVE_DESC1, SAVE_BKOPROD
|
|
|
|
|
|
OUTFILE := M->_THISUSER_TEMP
|
|
|
|
|
|
IF OUTMODE = NIL
|
|
OUTMODE = 'PRINT' // VS. 'REVU'
|
|
ENDIF
|
|
IF CUR_MAST == 'ORD_MAST'
|
|
MSG := 'Order # ' + ALLTRIM(MORDER_NUM)
|
|
ELSEIF CUR_MAST == 'QUOTE_MAST'
|
|
MSG := 'Quote # ' + ALLTRIM(MORDER_NUM)
|
|
QUOTE_PROCESS := .T. //** P3N - 4/13/98
|
|
ENDIF
|
|
IF WHCHORDER == 'INV' // INVOICE COPIES
|
|
M1 := ' INVOICE FOR ' + MSG + ' Was Printed on ' + DTOC((CUR_MAST)->IDATE_LAST) + ' ' + (CUR_MAST)->ITIME_LAST
|
|
M2 := ' It was ORIGINALLY PRINTED on ' + DTOC((CUR_MAST)->IDATE_FST) + ' ' + (CUR_MAST)->ITIME_FST
|
|
M3 := ' CONTACT SUPERVISOR TO REPRINT THIS ITEM '
|
|
ELSEIF WHCHORDER == 'PREBILL' // PRODUCTION COPIES
|
|
M1 := MSG + ' Was Printed on ' + DTOC((CUR_MAST)->BDATE_FST) + ' ' + (CUR_MAST)->BTIME_LAST
|
|
M2 := ' '
|
|
M3 := ' CONTACT SUPERVISOR TO REPRINT THIS ITEM '
|
|
ELSEIF WHCHORDER == 'PRECOST' // PRODUCTION COPIES
|
|
M1 := MSG + ' Was Printed on ' + DTOC((CUR_MAST)->CDATE_FST) + ' ' + (CUR_MAST)->CTIME_LAST
|
|
M2 := ' '
|
|
M3 := ' CONTACT SUPERVISOR TO REPRINT THIS ITEM '
|
|
ELSEIF WHCHORDER == 'GOLDEN' // PRODUCTION COPIES
|
|
M1 := 'Golden Rod for ' + MORDER_NUM + ' Was Printed on ' + DTOC((CUR_MAST)->GDATE_FST) + ' ' + (CUR_MAST)->GTIME_LAST
|
|
M2 := ' '
|
|
M3 := ' CONTACT SUPERVISOR TO REPRINT THIS ITEM '
|
|
ELSEIF WHCHORDER == 'PROD' // PRODUCTION COPIES
|
|
M1 := MSG + ' Was Printed on ' + DTOC((CUR_MAST)->PDATE_LAST) + ' ' + (CUR_MAST)->PTIME_LAST
|
|
M2 := 'It was ORIGINALLY PRINTED on ' + DTOC((CUR_MAST)->PDATE_FST) + ' ' + (CUR_MAST)->PTIME_FST
|
|
M3 := ' CONTACT SUPERVISOR TO REPRINT THIS ITEM '
|
|
ELSEIF WHCHORDER == 'DEL' // PRODUCTION COPIES
|
|
M1 := MSG + ' Was Printed on ' + DTOC((CUR_MAST)->DDATE_LAST) + ' ' + (CUR_MAST)->DTIME_LAST
|
|
M2 := 'It was ORIGINALLY PRINTED on ' + DTOC((CUR_MAST)->DDATE_FST) + ' ' + (CUR_MAST)->DTIME_FST
|
|
M3 := ' CONTACT SUPERVISOR TO REPRINT THIS ITEM '
|
|
ELSEIF WHCHORDER == 'OD' // ORDER DESK COPIES
|
|
M1 := MSG + ' Was Printed on ' + DTOC((CUR_MAST)->ODATE_LAST) + ' ' + (CUR_MAST)->OTIME_LAST
|
|
M2 := 'It was ORIGINALLY PRINTED on ' + DTOC((CUR_MAST)->ODATE_FST) + ' ' + (CUR_MAST)->OTIME_FST
|
|
M3 := ' CONTACT SUPERVISOR TO REPRINT THIS ITEM '
|
|
ELSEIF WHCHORDER == 'PO' // PURCHASE ORDERS
|
|
M1 := MSG + ' Was Printed on ' + DTOC((CUR_MAST)->XDATE_LAST) + ' ' + (CUR_MAST)->XTIME_LAST
|
|
M2 := 'It was ORIGINALLY PRINTED on ' + DTOC((CUR_MAST)->XDATE_FST) + ' ' + (CUR_MAST)->XTIME_FST
|
|
M3 := ' CONTACT SUPERVISOR TO REPRINT THIS ITEM '
|
|
ELSEIF WHCHORDER == 'BACKORD' // BACK ORDERS - **P3N - 4/30/98
|
|
M1 := 'BACK' + MSG + ' Was Printed on ' + DTOC((CUR_MAST)->BODATE_LST) + ' ' + (CUR_MAST)->BOTIME_LST
|
|
M2 := 'It was ORIGINALLY PRINTED on ' + DTOC((CUR_MAST)->BODATE_FST) + ' ' + (CUR_MAST)->BOTIME_FST
|
|
M3 := ' CONTACT SUPERVISOR TO REPRINT THIS ITEM '
|
|
ENDIF
|
|
|
|
CLS
|
|
SAYTITLE(TITLE, 'PR010')
|
|
IF OUTMODE = 'PRINT'
|
|
IF WHCHORDER == 'PROD'
|
|
IF !EMPTY((CUR_MAST)->PDATE_LAST) // PRODUCTION
|
|
CLEAR TYPEAHEAD
|
|
ERR_BOX(M1,M2,M3)
|
|
IF LASTKEY() <> 126 // "~"
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
ELSEIF WHCHORDER == 'INV' .OR. WHCHORDER = 'PREBILL' .OR. WHCHORDER = 'PRECOST'
|
|
IF !EMPTY((CUR_MAST)->IDATE_LAST) .AND. WHCHORDER = 'INV' // INVOICE
|
|
CLEAR TYPEAHEAD
|
|
ERR_BOX(M1,M2,M3)
|
|
IF LASTKEY() <> 126 // "~"
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
IF !EMPTY((CUR_MAST)->BDATE_FST) .AND. WHCHORDER = 'PREBILL' // INVOICE
|
|
CLEAR TYPEAHEAD
|
|
ERR_BOX(M1,M2,M3)
|
|
IF LASTKEY() <> 126 // "~"
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
IF !EMPTY((CUR_MAST)->CDATE_FST) .AND. WHCHORDER = 'PRECOST'
|
|
CLEAR TYPEAHEAD
|
|
ERR_BOX(M1,M2,M3)
|
|
IF LASTKEY() <> 126 // "~"
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
ELSEIF WHCHORDER == 'OD'
|
|
IF !EMPTY((CUR_MAST)->ODATE_LAST) // ORDER DESK
|
|
CLEAR TYPEAHEAD
|
|
ERR_BOX(M1,M2,M3)
|
|
IF LASTKEY() <> 126 // "~"
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
ELSEIF WHCHORDER == 'GOLDEN'
|
|
IF !EMPTY((CUR_MAST)->GDATE_LAST) // GOLDEN ROD
|
|
CLEAR TYPEAHEAD
|
|
ERR_BOX(M1,M2,M3)
|
|
IF LASTKEY() <> 126 // "~"
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
ELSEIF WHCHORDER == 'DEL'
|
|
IF !EMPTY((CUR_MAST)->DDATE_LAST) // DELIVERY COPY
|
|
CLEAR TYPEAHEAD
|
|
M3 := 'Delivery Tickets can NOT be REPRINTED - '
|
|
ERR_BOX(M1,M2, ' ',M3,'they MUST be TYPED to be recreated!')
|
|
IF MHOME_LOC_CODE = 'KC' //** P3N - 6/17/99
|
|
RETURN //** P3N - 6/2/99 DO NOT ALLOW THE DELIVERY
|
|
//** TICKET TO BE RE-PRINTED - PER ARNIE
|
|
ELSE //** P3N - 6/17/99
|
|
IF LASTKEY() <> 126 // "~" //** PER LAURA MAE @ PAWNEE
|
|
RETURN //** ALLOW DELIVERY TO BE
|
|
ENDIF //** REPRINTED
|
|
ENDIF //** P3N - 6/17/99
|
|
ENDIF
|
|
ELSEIF WHCHORDER == 'GOLDEN'
|
|
IF !EMPTY((CUR_MAST)->GDATE_LAST)
|
|
CLEAR TYPEAHEAD
|
|
ERR_BOX(M1,M2,M3)
|
|
IF LASTKEY() <> 126 // "~"
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
ELSEIF WHCHORDER == 'PO'
|
|
IF !EMPTY((CUR_MAST)->XDATE_LAST) // ORDER DESK
|
|
CLEAR TYPEAHEAD
|
|
ERR_BOX(M1,M2,M3)
|
|
IF LASTKEY() <> 126 // "~"
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
ELSEIF WHCHORDER == 'BACKORD' //** P3N - 4/30/98
|
|
IF !EMPTY((CUR_MAST)->BODATE_LST) // BACKORDER
|
|
CLEAR TYPEAHEAD
|
|
ERR_BOX(M1,M2,M3)
|
|
IF LASTKEY() <> 126 // "~"
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
WAIT_BOX('*** Processing ' + MSG , ;
|
|
'*** Please Wait ****' )
|
|
|
|
IF PRNTSOURCE = 'OE' // END OF ORDER ENTRY ALREADY HAVE KEY
|
|
ELSE
|
|
SELECT(CUR_MAST)
|
|
MCUST_ID = CUST_ID
|
|
MUSER_ID = USER_ID
|
|
ENDIF
|
|
|
|
//** P3N - 11/13/98 CHECK FOR A PARTIAL INVOICE HERE
|
|
IF WHCHORDER = 'INV' .AND. CUR_MAST == 'ORD_MAST' //** P3N - 11/13/98
|
|
IF POSTED_ORDER(MORDER_NUM)
|
|
//** ORDER HAS BEEN POSTED - REPRINT INVOICE
|
|
REPRINT_INVOICE := .T.
|
|
|
|
ELSEIF ( EMPTY( (CUR_MAST)->IDATE_FST) .AND. EMPTY( (CUR_MAST)->ITIME_FST) ) ;
|
|
.OR. (CUR_MAST)->IDATE_FST >= CURDATE
|
|
IF (CUR_MAST)->IDATE_FST == CURDATE //** P3N - 12/9/98
|
|
REPRINT_INVOICE := .T. //** P3N - 12/9/98
|
|
ELSEIF ORDER_SHIPPED(OUT_ARR[2,1], MORDER_NUM, WHCHORDER) //** P3N - 12/7/98
|
|
ENTIRE_ORDSHIPPED := .T.
|
|
ELSE
|
|
PARTIAL_INVOICE := PROMPT_BOX(PIM1, PIM2, PIM3)
|
|
IF LASTKEY() == 27
|
|
//** USER REQUESTED TO ABORT THE INVOICE PROCESS
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELSE
|
|
//** ORDER HAS BEEN PRINTED - REPRINT INVOICE
|
|
REPRINT_INVOICE := .T.
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//** THIS LOGIC WILL ENSURE THAT ALL INVOICES CREATED PRIOR TO
|
|
//** THE PARTIAL INVOICE INSTALL WILL BE RECALLED AS IS - WITHOUT
|
|
//** ANY PARTIAL INVOICE LOGIC.
|
|
IF EMPTY((CUR_MAST)->IDATE_FST) //** P3N - 12/10/98
|
|
ELSEIF DTOC((CUR_MAST)->IDATE_FST) < '12/21/98' .AND. MHOME_LOC_CODE = 'KC' //** P3N - 12/10/98
|
|
PARTIAL_INVOICE := .F. //** P3N - 12/10/98
|
|
REPRINT_INVOICE := .F. //** P3N - 12/10/98
|
|
ELSEIF DTOC((CUR_MAST)->IDATE_FST) < '01/20/99' .AND. MHOME_LOC_CODE = 'IOLA' //** P3N - 1/20/99
|
|
PARTIAL_INVOICE := .F. //** P3N - 12/10/98
|
|
REPRINT_INVOICE := .F. //** P3N - 12/10/98
|
|
ELSEIF DTOC((CUR_MAST)->IDATE_FST) < '06/14/99' .AND. MHOME_LOC_CODE = 'LINDS' //** P3N - 1/20/99
|
|
PARTIAL_INVOICE := .F. //** P3N - 12/10/98
|
|
REPRINT_INVOICE := .F. //** P3N - 12/10/98
|
|
ELSEIF DTOC((CUR_MAST)->IDATE_FST) < '02/04/99' .AND. MHOME_LOC_CODE = 'PAWNEE' //** P3N - 1/20/99
|
|
PARTIAL_INVOICE := .F. //** P3N - 12/10/98
|
|
REPRINT_INVOICE := .F. //** P3N - 12/10/98
|
|
ENDIF
|
|
IF QUOTE_PROCESS //** P3N -12/7/98
|
|
//** P3N - 11/18/02 - USE THE ACTUAL SIZE ON THE QUOTES - PER LINDA LINDS
|
|
INV_ARR := ACLONE(OUT_ARR[1,8]) //** P3N - 11/18/02
|
|
ELSEIF WHCHORDER = 'INV' .OR. WHCHORDER = 'PREBILL' .OR. ;
|
|
WHCHORDER = 'PRECOST' .OR. DO_WE_PRT_AMT(WHCHORDER, ' ' )
|
|
//** FOR INVOICE / PREBILL / PRECOST
|
|
//** CALC ORDER TOTALS, AND ITEM DISCOUNTS - AND REBUILD OUT_ARR / GL_ARR
|
|
MISCP_PAINT(.T., PARTIAL_INVOICE, REPRINT_INVOICE, CUR_OL)
|
|
OUT_ARR := BLD_ORDER(MORDER_NUM, ,PARTIAL_INVOICE, REPRINT_INVOICE) //** P3N -12/7/98
|
|
INV_ARR := ACLONE(OUT_ARR[2,1]) //** P3N - 12/7/98
|
|
ENDIF
|
|
PRTBOCOPY := '1' //** P3N - 12/21/98
|
|
IF WHCHORDER = 'BACKORD' //** P3N - 12/21/98
|
|
OUT_ARR := BLD_ORDER(MORDER_NUM, ,PARTIAL_INVOICE, REPRINT_INVOICE) //** P3N -12/7/98
|
|
IF (CUR_MAST)->(FIELDPOS('BODATE_FST')) > 0 //** P3N - 12/21/98
|
|
IF EMPTY((CUR_MAST)->BODATE_FST) //** P3N - 12/21/98
|
|
//** FIRST TIME BO PRINTED - PRINT ALL BO COPIES
|
|
PRTBOCOPY := '1'
|
|
ELSE //** P3N - 12/21/98
|
|
PRTBOCOPY := PICKLIST({'1. ALL Backorders ', '2. Primary','3. Screen', '4. Storm'}, 4, 30, 'Select Backorder' )
|
|
IF LASTKEY() = 27 //** P3N - 12/21/98
|
|
PRTBOCOPY := '0' //** P3N - 12/21/98
|
|
ELSEIF PRTBOCOPY = 1 //** P3N - 12/21/98
|
|
PRTBOCOPY := '1' //** P3N - 12/21/98
|
|
ELSEIF PRTBOCOPY = 2 //** P3N - 12/21/98
|
|
PRTBOCOPY := '2' //** P3N - 12/21/98
|
|
ELSEIF PRTBOCOPY = 3 //** P3N - 12/21/98
|
|
PRTBOCOPY := '3' //** P3N - 12/21/98
|
|
ELSEIF PRTBOCOPY = 4 //** P3N - 12/21/98
|
|
PRTBOCOPY := '4' //** P3N - 12/21/98
|
|
ENDIF //** P3N - 12/21/98
|
|
ENDIF //** P3N - 12/21/98
|
|
ENDIF //** P3N - 12/21/98
|
|
ENDIF //** P3N - 12/21/98
|
|
//** P3N - 6/4/99 MOVED HERE FROM BELOW
|
|
IF OUTMODE == 'PRINT' //** IF PRINT TIME-CHECK FOR PARTIAL INVOICE?
|
|
IF WHCHORDER = 'INV' .AND. CUR_MAST == 'ORD_MAST' //** P3N - 6/4/99
|
|
IF PARTIAL_INVOICE //** P3N - 6/4/99
|
|
IF EMPTY(ORD_MAST->ORDER_NEW) //** NO PARTIAL INVOICE EXISTS !
|
|
PARTIALINVOICE() //** CREATE A NEW INVOICE ONE TIME!
|
|
SHIP_REST(ORD_MAST->ORDER_NUM, 'SCREENS' ) //** SHIP ALL REMAINING ITEMS ON ORDER
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// SETUP THE PRINTER INFO
|
|
|
|
|
|
SET_P_ON()
|
|
IF OUTMODE = 'PRINT' // Print the ORDER
|
|
PORTFLAG := .T.
|
|
ELSE // Browse the ORDER in a userfile
|
|
IF FILE(OUTFILE)
|
|
//PROG := 'DEL ' + OUTFILE
|
|
//CALL_OLAY(,,PROG, 0, '', '')
|
|
FERASE( OUTFILE )
|
|
ENDIF
|
|
SET PRINTER TO (OUTFILE)
|
|
PORTFLAG := .F.
|
|
ENDIF
|
|
IF WHCHORDER = 'INV' .OR. WHCHORDER = 'PREBILL' .OR. WHCHORDER = 'PRECOST'
|
|
IF QUOTE_PROCESS //** P3N - 4/13/98
|
|
MPORT := SET_PORT('_PORT_QUOTE', PORTFLAG, OUTFILE )
|
|
ELSEIF WHCHORDER = 'PREBILL' //** P3N - 4/13/98
|
|
MPORT := SET_PORT('_PORT_PREBILL', PORTFLAG, OUTFILE )
|
|
ELSE
|
|
MPORT := SET_PORT('_PORT_INVOICE', PORTFLAG, OUTFILE )
|
|
ENDIF
|
|
IF WHCHORDER = 'INV' .AND. CUR_MAST == 'ORD_MAST' //** P3N - 11/24/98
|
|
IF PARTIAL_INVOICE //** P3N - 11/24/98
|
|
PRNT_THE_ORDER('INV', INV_ARR, 'INV', 'ALL' , , .T., ;
|
|
PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE ) //** P3N -12/3/98
|
|
ELSE
|
|
PRNT_THE_ORDER('INV', INV_ARR, 'INV', 'ALL' , , .T., ;
|
|
PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE ) //** P3N -12/3/98
|
|
ENDIF
|
|
//** FOR LINDS PRINT THE PREBILL INVOICE WITH EXACT SIZE INFORMATION - PER LINDA - P3N 7/19/00
|
|
ELSEIF WHCHORDER == 'PREBILL' //** P3N - 7/19/00
|
|
IF MHOME_LOC_CODE = 'LINDS' //** P3N - 7/19/00
|
|
PRNT_THE_ORDER('INV', OUT_ARR[1,8], 'INV', 'ALL' , WHCHORDER, .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
ELSE //** P3N - 7/19/00
|
|
PRNT_THE_ORDER('INV', OUT_ARR[2,1], 'INV', 'ALL' , WHCHORDER, .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
ENDIF //** P3N - 7/19/00
|
|
ELSEIF QUOTE_PROCESS ; //** P3N -11/18/02
|
|
.AND. MHOME_LOC_CODE = 'LINDS' //** P3N -11/18/02
|
|
//** P3N - 11/18/02 - USE INV_ARR FOR QUOTES - SHOULD BE SET TO PROPER VALUE
|
|
//** P3N - 11/18/02 THIS WILL PRINT THE ACTUAL SIZE ON THE QUOTES - PER LINDA @ LINDS
|
|
PRNT_THE_ORDER('INV', INV_ARR, 'INV', 'ALL' , WHCHORDER, .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
ELSE
|
|
PRNT_THE_ORDER('INV', OUT_ARR[2,1], 'INV', 'ALL' , WHCHORDER, .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
ENDIF
|
|
ELSEIF WHCHORDER = 'PROD' .AND. !EMPTY(OUT_ARR)
|
|
// IT IS A PRODUCTION REQUEST
|
|
MPORT := SET_PORT('_PORT_PROD', PORTFLAG, OUTFILE)
|
|
FOR I = 1 TO LEN(OUT_ARR[1])
|
|
DO CASE
|
|
CASE I = 2 // PRODUCTION FRAME MADE AT HOME LOCATION
|
|
IF LEN(OUT_ARR[1,I]) > 0
|
|
PRNT_THE_ORDER('PROD', OUT_ARR[1,I], 'FRAME', MHOME_LOC_CODE, , .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE ) // TRUE FOR PRINT THE CUTTING SPECS
|
|
ENDIF
|
|
IF LEN(OUT_ARR[1,I]) > 0
|
|
PRNT_THE_ORDER('PROD', OUT_ARR[1,I], 'STDFRAME', MHOME_LOC_CODE, , .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE ) // TRUE FOR PRINT THE CUTTING SPECS
|
|
ENDIF
|
|
CASE I = 3 // PRODUCTION SASH MADE AT HOME LOCATION
|
|
IF LEN(OUT_ARR[1,I]) > 0
|
|
PRNT_THE_ORDER('PROD', OUT_ARR[1,I], 'SASH', MHOME_LOC_CODE, , .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
ENDIF
|
|
CASE I = 4 // PRODUCTION GLASS MADE AT HOME LOCATION
|
|
IF LEN(OUT_ARR[1,I]) > 0
|
|
PRNT_THE_ORDER('PROD', OUT_ARR[1,I], 'GLASS', MHOME_LOC_CODE, , .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
ENDIF
|
|
CASE I = 5 // PRODUCTION SCREEN MADE AT HOME LOCATION
|
|
IF LEN(OUT_ARR[1,I]) > 0
|
|
PRNT_THE_ORDER('PROD', OUT_ARR[1,I], 'SCREEN', MHOME_LOC_CODE, , .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
ENDIF
|
|
CASE I = 6 // PRODUCTION STORM MADE AT HOME LOCATION
|
|
IF LEN(OUT_ARR[1,I]) > 0
|
|
PRNT_THE_ORDER('PROD', OUT_ARR[1,I], 'STORM', MHOME_LOC_CODE, ,.T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE )
|
|
ENDIF
|
|
CASE I = 7 // EXPANDERS MADE AT HOME LOCATION (SEVENTH ELEMENT IN PROD ARRARY)
|
|
IF LEN(OUT_ARR[1,I]) > 0
|
|
PRNT_THE_ORDER('PROD', OUT_ARR[1,I], 'EXPANDER', MHOME_LOC_CODE, , .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
ENDIF
|
|
ENDCASE
|
|
NEXT
|
|
ELSEIF WHCHORDER = 'OD'
|
|
// ORDER DESK CONTROL COPY
|
|
MPORT := SET_PORT('_PORT_ORDER', PORTFLAG, OUTFILE)
|
|
// USE 2,1(INVOICE) FORMAT-NO ADDL PRODUCTS ON ORDER DESK COPY
|
|
// 8-21-95 - PRINT THE CONTROL COPY AND CALL IT A SPINDLE COPY FOR ALL
|
|
PRNT_THE_ORDER('OD', OUT_ARR[2,1], 'CTRL', MHOME_LOC_CODE, 'ORDERDESK', .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE )
|
|
ELSEIF WHCHORDER = 'PO'
|
|
// PRINT INTERCOMPANY PO'S IF APPLICABLE
|
|
MPORT := SET_PORT('_PORT_IC', PORTFLAG, OUTFILE)
|
|
SAVESEL := SELECT()
|
|
IPOARR := {} //** P3N - 7/8/98
|
|
FOR I := 1 TO LEN(OUT_ARR[2,1]) //** P3N - 7/8/98
|
|
AADD(IPOARR, OUT_ARR[2,1,I]) //** P3N - 7/8/98
|
|
NEXT //** P3N - 7/8/98
|
|
FOR I := 1 TO LEN(OUT_ARR[1,10]) //** P3N - 7/8/98
|
|
IPO_PROD := OUT_ARR[1,10,I,10] //** P3N - 9/14/98
|
|
IPO_LINE := OUT_ARR[1,10,I,9] //** P3N - 9/14/98
|
|
IF ASCAN(IPOARR, {|X| X[10] + X[9] == IPO_PROD + IPO_LINE }) > 0
|
|
ELSE
|
|
AADD(IPOARR, OUT_ARR[1,10,I]) //** P3N - 7/8/98
|
|
ENDIF
|
|
NEXT //** P3N - 7/8/98
|
|
SELECT MFG_LOC
|
|
GOTO TOP
|
|
DO WHILE !EOF()
|
|
IF LOC_CODE == MHOME_LOC_CODE
|
|
SKIP 1
|
|
LOOP
|
|
ENDIF // CONTENTS OF THE "CTRL" COPY
|
|
PRNT_THE_ORDER('OD', IPOARR, 'PO', MFG_LOC->LOC_CODE, 'PO', .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
SELECT MFG_LOC
|
|
SKIP 1
|
|
ENDDO
|
|
ELSEIF WHCHORDER = 'DEL'
|
|
SELECT(SAVESEL)
|
|
SAVE_DESC := NIL
|
|
MPORT := SET_PORT('_PORT_DELIVERY', PORTFLAG, OUTFILE)
|
|
IF MHOME_LOC_CODE = 'LINDS'
|
|
PRNT_THE_ORDER('OD', OUT_ARR[1,8], 'CTRL', MHOME_LOC_CODE, 'DELIVERY', .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
ELSE // INVOICE INFO
|
|
PRNT_THE_ORDER('OD', OUT_ARR[2,1], 'CTRL', MHOME_LOC_CODE, 'DELIVERY', .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
ENDIF
|
|
ELSEIF WHCHORDER = 'GOLDEN'
|
|
SELECT(SAVESEL)
|
|
SAVE_DESC := NIL
|
|
MPORT := SET_PORT('_PORT_GOLDEN', PORTFLAG, OUTFILE)
|
|
PRNT_THE_ORDER('PROD', OUT_ARR[1,8], 'CTRL', MHOME_LOC_CODE, WHCHORDER, .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
ELSEIF WHCHORDER = 'BACKORD' //** P3N - 4/30/98
|
|
SELECT(SAVESEL)
|
|
SAVE_DESC := NIL
|
|
MPORT := SET_PORT('_PORT_BO', PORTFLAG, OUTFILE)
|
|
//** PRINT PRIMARY PRODUCT BACKORDERS - (IE: C500 SINGLE HUNG...)
|
|
BKOARR := {}
|
|
IF PRTBOCOPY $ '12' //** PRINT PRIMARY BACKORDER COPY
|
|
FOR I := 1 TO LEN(OUT_ARR[2,1])
|
|
IF GET_CATCODE(OUT_ARR[2,1,I,10]) == 'SCREENS'
|
|
//** BYPASS SCREENS ON THIS PASS OF THE BACKORDER PRINTING
|
|
ELSEIF GET_CATCODE(OUT_ARR[2,1,I,10]) == 'STORMS '
|
|
//** BYPASS STORMS ON THIS PASS OF THE BACKORDER PRINTING
|
|
ELSE
|
|
WKORDQTY := OUT_ARR[2,1,I,7] //** P3N -11/4/98
|
|
WKSHPDQTY := OUT_ARR[2,1,I,11] //** P3N -11/4/98
|
|
IF WKORDQTY - WKSHPDQTY <= 0 //** P3N -11/4/98
|
|
ELSEIF EMPTY((CUR_MAST)->ORDER_NEW) //** NO PARTIAL INVOICE EXISTS !
|
|
AADD(BKOARR, OUT_ARR[2,1,I])
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
ENDIF
|
|
IF PRTBOCOPY $ '13' //** PRINT SCREEN BACKORDER COPY
|
|
//** PRINT SCREEN BACKORDERS - COMBINE SCREENS AT ALL LOC'S.
|
|
ABKOSCR := {} //* SCREENS NOT AT MFG. LOC.
|
|
FOR I := 1 TO LEN(OUT_ARR[1,9]) //* SCREENS NOT AT MFG. LOC.
|
|
WKORDQTY := OUT_ARR[1,9,I,7] //** P3N -11/4/98
|
|
WKSHPDQTY := OUT_ARR[1,9,I,11] //** P3N -11/4/98
|
|
IF WKORDQTY - WKSHPDQTY <= 0 //** P3N -11/4/98
|
|
ELSEIF EMPTY((CUR_MAST)->ORDER_NEW) //** NO PARTIAL INVOICE EXISTS !
|
|
AADD(ABKOSCR, OUT_ARR[1,9,I])
|
|
ENDIF
|
|
NEXT
|
|
FOR I := 1 TO LEN(OUT_ARR[1,5]) //*SCREENS AT MFG. LOC.
|
|
WKORDQTY := OUT_ARR[1,5,I,7] //** P3N -11/4/98
|
|
WKSHPDQTY := OUT_ARR[1,5,I,11] //** P3N -11/4/98
|
|
IF WKORDQTY - WKSHPDQTY <= 0 //** P3N -11/4/98
|
|
ELSEIF EMPTY((CUR_MAST)->ORDER_NEW) //** NO PARTIAL INVOICE EXISTS !
|
|
AADD(ABKOSCR, OUT_ARR[1,5,I])
|
|
ENDIF
|
|
IF OUT_ARR[1,5,I,8] == 'OL'
|
|
//** LINE_NUM PROD_CODE
|
|
TOLKEY := MORDER_NUM + OUT_ARR[1,5,I,9] + OUT_ARR[1,5,I,10] + 'SCREENS'
|
|
SCRNINFO := TOL_SCREENS(, TOLKEY)
|
|
IF EMPTY(SCRNINFO[2])
|
|
ELSEIF EMPTY(ABKOSCR)
|
|
ELSE
|
|
ABKOSCR[LEN(ABKOSCR),2] := SCRNINFO[2] //**TOL LINE DESC FOR SCREEN
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
SAVE_DESC := NIL
|
|
ENDIF
|
|
IF PRTBOCOPY $ '14' //** PRINT STORM BACKORDER COPY
|
|
//** PRINT STORM BACKORDERS - COMBINE STORMS AT ALL LOC'S.
|
|
SAVE_DESC := NIL
|
|
//**BKOARR := {}
|
|
FOR I := 1 TO LEN(OUT_ARR[1,6]) //** STORMS @ MFG. LOC.
|
|
IF OUT_ARR[1,6,I,10] = 'PWS' //** DO NOT PRINT A BACKORDER FOR
|
|
ELSE //** PWS STORMS
|
|
WKORDQTY := OUT_ARR[1,6,I,7] //** P3N -11/4/98
|
|
WKSHPDQTY := OUT_ARR[1,6,I,11] //** P3N -11/4/98
|
|
IF WKORDQTY - WKSHPDQTY <= 0 //** P3N -11/4/98
|
|
ELSEIF EMPTY((CUR_MAST)->ORDER_NEW) //** NO PARTIAL INVOICE EXISTS !
|
|
AADD(BKOARR, OUT_ARR[1,6,I])
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
FOR I := 1 TO LEN(OUT_ARR[1,10]) //** STORMS NOT @ MFG. LOC.
|
|
IF OUT_ARR[1,10,I,10] = 'PWS' //** DO NOT PRINT A BACKORDER FOR
|
|
ELSE //** PWS STORMS
|
|
WKORDQTY := OUT_ARR[1,10,I,7] //** P3N -11/4/98
|
|
WKSHPDQTY := OUT_ARR[1,10,I,11] //** P3N -11/4/98
|
|
IF WKORDQTY - WKSHPDQTY <= 0 //** P3N -11/4/98
|
|
ELSEIF EMPTY((CUR_MAST)->ORDER_NEW) //** NO PARTIAL INVOICE EXISTS !
|
|
AADD(BKOARR, OUT_ARR[1,10,I])
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
ENDIF
|
|
IF EMPTY(BKOARR)
|
|
//** P3N - 12/3/98 - PRINT BACKORDER IF ONLY MISC/NONTX ITEMS
|
|
SAVE_BKOPROD := ' ' //** P3N - 2/2/99
|
|
PRNT_THE_ORDER('BACKORD', {} , 'BACKORD', 'ALL','BACKORD', .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
ELSE
|
|
BKOARR := ASORT(BKOARR,,, {|X,Y| X[2] + X[9] < Y[2] + Y[9] })
|
|
SAVE_BKOPROD := ' ' //** P3N - 2/2/99
|
|
PRNT_THE_ORDER('BACKORD', BKOARR, 'BACKORD', 'ALL','BACKORD', .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
ENDIF
|
|
IF EMPTY(ABKOSCR)
|
|
BKOASCR := {} //** P3N - 5/25/99
|
|
BKOSCRNS := 0 //** P3N - 5/25/99
|
|
ELSEIF EMPTY(BKOSCRNS) //** ONLY SUMMARIZE SCREENS THE FIRST TIME
|
|
BKOASCR := SUM_BKO_SCREENS(ABKOSCR)
|
|
BKOASCR := ASORT(BKOASCR,,, {|X,Y| STR(X[7],5)+X[2]+X[9] < STR(Y[7],5)+Y[2]+Y[9] })
|
|
//** //** P3N - 9/22/98
|
|
//** SORT BACKORDER SCREENS BY THE PRODUCT & DESCR & QTY
|
|
BKOASCR := ASORT(BKOASCR,,, {|X,Y| X[10]+X[2]+STR(X[7],5) < Y[10]+Y[2]+STR(Y[7],5) })
|
|
ENDIF
|
|
SAVE_BKOPROD := ' ' //** P3N - 2/2/99
|
|
PRNT_THE_ORDER('BACKORD', BKOASCR, 'BACKORD', 'ALL','SCREENS', .T., PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE )
|
|
ENDIF
|
|
|
|
SET_P_OFF()
|
|
IF EMPTY(WIDEON) //PRINTER SELECTION INVALID - GET OUT!!!
|
|
RETURN
|
|
ENDIF
|
|
|
|
IF OUTMODE = 'PRINT' //IF the user requests to PRINT
|
|
// .OR. OUTMODE = 'BROWSE'
|
|
|
|
IF OUTMODE = 'PRINT'
|
|
LPREVIEW := .F.
|
|
ELSE
|
|
LPREVIEW := .T.
|
|
ENDIF
|
|
|
|
IF QUOTE_PROCESS
|
|
CGW_PRNT_FROM_FILE( 'QUOTE', OUTFILE, LPREVIEW ) // 9-10-20
|
|
ELSE
|
|
CGW_PRNT_FROM_FILE( WHCHORDER, OUTFILE, LPREVIEW )
|
|
ENDIF
|
|
|
|
|
|
(CUR_MAST)->(DBSEEK(MORDER_NUM)) // 6/9/20
|
|
|
|
IF OUTMODE = 'PRINT'
|
|
//* SELECT ORD_MAST //UPDATE dates to indicate a PRINT has occured
|
|
IF AT('_ARCH', WHCHORDER) > 0 // ARCHIVE COPIES - DO NOT UPDATE
|
|
// CONTINUE FOR PRINTING ARCHIVED ORDERS
|
|
ELSE
|
|
SELECT(CUR_MAST)
|
|
REC_LOCK(1)
|
|
IF WHCHORDER == 'INV' // INVOICE COPIES
|
|
//** P3N - 11/24/98 - PARTIAL INVOICING
|
|
CUTINVOICE(MORDER_NUM, GL_ARR, PARTIAL_INVOICE)
|
|
//** P3N - 6/4/99 MOVED ABOVE - TIMING ISSUES REGARDING INVOICE PRINT
|
|
//** P3N - THE 'BACKORDER TO' WAS NOT PRINTING ON INVOICE-FIRST PRINT
|
|
ELSEIF WHCHORDER == 'PREBILL' // PREBILL
|
|
IF EMPTY(BDATE_FST)
|
|
REPLACE BDATE_FST WITH CURDATE
|
|
REPLACE BTIME_FST WITH TIME()
|
|
ENDIF
|
|
REPLACE BDATE_LAST WITH CURDATE
|
|
REPLACE BTIME_LAST WITH TIME()
|
|
ELSEIF WHCHORDER == 'PRECOST' // PRECOST
|
|
IF EMPTY(CDATE_FST)
|
|
REPLACE CDATE_FST WITH CURDATE
|
|
REPLACE CTIME_FST WITH TIME()
|
|
ENDIF
|
|
REPLACE CDATE_LAST WITH CURDATE
|
|
REPLACE CTIME_LAST WITH TIME()
|
|
ELSEIF WHCHORDER == 'GOLDEN' // GOLDEN ROD
|
|
IF EMPTY(GDATE_FST)
|
|
REPLACE GDATE_FST WITH CURDATE
|
|
REPLACE GTIME_FST WITH TIME()
|
|
ENDIF
|
|
REPLACE GDATE_LAST WITH CURDATE
|
|
REPLACE GTIME_LAST WITH TIME()
|
|
ELSEIF WHCHORDER == 'PROD' // PRODUCTION COPIES
|
|
IF EMPTY(PDATE_FST)
|
|
REPLACE PDATE_FST WITH CURDATE
|
|
REPLACE PTIME_FST WITH TIME()
|
|
ENDIF
|
|
REPLACE PDATE_LAST WITH CURDATE
|
|
REPLACE PTIME_LAST WITH TIME()
|
|
ELSEIF WHCHORDER == 'DEL' // DELIVERY COPIES
|
|
IF EMPTY(DDATE_FST)
|
|
REPLACE DDATE_FST WITH CURDATE
|
|
REPLACE DTIME_FST WITH TIME()
|
|
ENDIF
|
|
REPLACE DDATE_LAST WITH CURDATE
|
|
REPLACE DTIME_LAST WITH TIME()
|
|
ELSEIF WHCHORDER == 'OD' // ORDER DESK COPIES
|
|
IF EMPTY(ODATE_FST)
|
|
REPLACE ODATE_FST WITH CURDATE
|
|
REPLACE OTIME_FST WITH TIME()
|
|
ENDIF
|
|
REPLACE ODATE_LAST WITH CURDATE
|
|
REPLACE OTIME_LAST WITH TIME()
|
|
ELSEIF WHCHORDER == 'PO' // ORDER DESK COPIES
|
|
IF EMPTY(XDATE_FST)
|
|
REPLACE XDATE_FST WITH CURDATE
|
|
REPLACE XTIME_FST WITH TIME()
|
|
ENDIF
|
|
REPLACE XDATE_LAST WITH CURDATE
|
|
REPLACE XTIME_LAST WITH TIME()
|
|
ELSEIF WHCHORDER == 'BACKORD' //BACKORDER //** P3N - 4/30/98
|
|
IF EMPTY(BODATE_FST)
|
|
REPLACE BODATE_FST WITH CURDATE
|
|
REPLACE BOTIME_FST WITH TIME()
|
|
ENDIF
|
|
REPLACE BODATE_LST WITH CURDATE
|
|
REPLACE BOTIME_LST WITH TIME()
|
|
ELSE
|
|
? ABENDPRNT_THIS
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE // BROWSE ORDER and do not UPDATE dates
|
|
|
|
SHELLEXECUTE(,'OPEN', OUTFILE,'',, SW_SHOW)
|
|
// WAITRUN( 'NOTEPAD ' + OUTFILE ) // 1/20/20
|
|
//PROG := 'BROWSE ' + OUTFILE
|
|
//CALL_OLAY(,,PROG, 0, '', '')
|
|
ENDIF
|
|
|
|
|
|
UNLOCK
|
|
|
|
RETURN MPORT
|
|
|
|
*************************************************************
|
|
* P3N - 11/12/98 CUT AN INVOICE AND APPROPRIATE BILLING *
|
|
* TRANSACTIONS AS NECESSARY. *
|
|
*************************************************************
|
|
FUNCTION CUTINVOICE(MORDER_NUM, GL_ARR, PARTIAL_INVOICE)
|
|
DBOPEN('SALEHIST') //** P3N - 8/13/98 - ADDRESS POSTING LOCKOUT
|
|
SELECT(CUR_MAST)
|
|
REC_LOCK(3)
|
|
REPLACE IDATE_LAST WITH CURDATE //** P3N - 11/11/98
|
|
REPLACE ITIME_LAST WITH TIME() //** P3N - 11/11/98
|
|
IF EMPTY(IDATE_FST)
|
|
REPLACE IDATE_FST WITH CURDATE
|
|
REPLACE ITIME_FST WITH TIME()
|
|
CUT_BILLTRAN( (CUR_MAST)->ORDER_NUM , GL_ARR, PARTIAL_INVOICE )
|
|
ELSE
|
|
IF POSTED_ORDER(MORDER_NUM)
|
|
//** ORDER HAS BEEN POSTED TO THE AS/400 - CAN NOT SEND AGAIN!!!
|
|
ERR_BOX('** Order - ' + ALLTRIM(MORDER_NUM) + ;
|
|
' has already been POSTED to the AS/400! **', ;
|
|
' To ENSURE both Systems are in BALANCE ALL CHANGES ' , ;
|
|
' MUST be made to BOTH Systems!!!')
|
|
ELSE
|
|
//** P3N - 11/11/98 PER ELLEN - REPRINT ORDER WITH EARLIER DATE
|
|
//** P3N - ALLOW THE INVOICE TO SHOW ON THE SALES REPORT IN THE
|
|
//** P3N - PROPER PERIOD.
|
|
IF IDATE_FST > CURDATE //** P3N - 11/11/98
|
|
REPLACE IDATE_FST WITH CURDATE //** P3N - 11/11/98
|
|
REPLACE ITIME_FST WITH TIME() //** P3N - 11/11/98
|
|
ENDIF //** P3N - 11/11/98
|
|
CUT_BILLTRAN( (CUR_MAST)->ORDER_NUM , GL_ARR, PARTIAL_INVOICE )
|
|
ENDIF
|
|
ENDIF
|
|
(CUR_MAST)->(DBUNLOCK())
|
|
CLOSE SALEHIST //** P3N - 8/13/98 - ADDRESS POSTING LOCKOUT
|
|
RETURN .T.
|
|
********************************************************************
|
|
* //** P3N - 8/5/98
|
|
* SUMMARIZE THE BACKORDER SCREENS FOR PRINTING PURPOSES
|
|
* TO THE ( PRODUCT / ENTRY SIZE ) LEVEL
|
|
* (IE: ALL C500 / 3050'S)
|
|
********************************************************************
|
|
FUNCTION SUM_BKO_SCREENS(PASSARR)
|
|
LOCAL RETARR := {}, I, MSIZE, MPROD, MHOWMEAS, DUPLSCRNS := {}, RARR := {}
|
|
LOCAL WKARR := {}, SUMQTY := 0, SVARR := {}, SVPRD, SVSIZ, REMOVSCRN := .F.
|
|
LOCAL BKOARR := ACLONE(PASSARR), SVLINE := '', SVQTY := 0, ELM := 0, SCRTYP := ''
|
|
FOR I := 1 TO LEN(BKOARR) //** P3N - 1/28/99
|
|
SVLINE := BKOARR[I,9] //** P3N - 1/28/99
|
|
SVQTY := BKOARR[I,7] //** P3N - 1/28/99
|
|
IF AT('UNIT', BKOARR[I,10] ) > 0 .OR. ; //** P3N - 1/28/99
|
|
AT('UNT' , BKOARR[I,10] ) > 0 //** P3N - 1/28/99
|
|
IF BKOARR[I,8] == 'OL' //** P3N - 1/28/99
|
|
SVLINE := BKOARR[I,9] //** P3N - 1/28/99
|
|
SVQTY := BKOARR[I,7] //** P3N - 1/28/99
|
|
AADD(DUPLSCRNS,{ SVLINE, SVQTY } ) //** P3N - 1/28/99
|
|
ENDIF //** P3N - 1/28/99
|
|
ENDIF //** P3N - 1/28/99
|
|
NEXT //** P3N - 1/28/99
|
|
FOR I := 1 TO LEN(BKOARR)
|
|
//** ORDER QTY SHIPPED QTY
|
|
IF EMPTY( BKOARR[I,7] - BKOARR[I,11] )
|
|
//** NO BACKORDER STUFF TO SUMMARIZE
|
|
ELSE
|
|
//** P3N - 1/28/99 - REMOVE DUPLICATE SCREENS FROM BACKORDERS
|
|
//** P3N - FOR 'UNIT' MODELS WITH FLANKERS
|
|
REMOVSCRN := .F. //** P3N - 1/28/99
|
|
IF BKOARR[I,8] == 'XL' //** P3N - 1/28/99
|
|
SVLINE := BKOARR[I,9] //** P3N - 1/28/99
|
|
SVQTY := BKOARR[I,7] //** P3N - 1/28/99
|
|
ELM := ASCAN(DUPLSCRNS, {|X| X[1] == SVLINE .AND. ;
|
|
X[2] = SVQTY })
|
|
IF EMPTY(ELM) //** P3N - 1/28/99
|
|
ELSE //** P3N - 1/28/99
|
|
REMOVSCRN := .T. //** P3N - 1/28/99
|
|
ENDIF //** P3N - 1/28/99
|
|
ENDIF //** P3N - 1/28/99
|
|
IF REMOVSCRN //** P3N - 1/28/99
|
|
ELSE //** P3N - 1/28/99
|
|
MPROD := MPROD_SUMMARY(BKOARR[I,10]) //** PRODUCT CODE
|
|
MSIZE := BKOARR[I,5,3] //** ENTRY SIZE
|
|
MHOWMEAS := BKOARR[I,5,4] //** HOW MEASURE
|
|
IF MHOWMEAS == 'NS' //** P3N - 2/02/99
|
|
MSIZE := SUBSTR(MSIZE, 1, 5) //** P3N - 2/02/99
|
|
ENDIF //** P3N - 2/02/99
|
|
AADD(WKARR, {MPROD,MHOWMEAS+MSIZE, BKOARR[I] } )
|
|
ENDIF //** P3N - 1/28/99
|
|
ENDIF
|
|
NEXT
|
|
IF EMPTY(WKARR)
|
|
ELSE
|
|
WKARR := ASORT(WKARR,,, {|X,Y| X[1] + X[2] < Y[1] + Y[2] })
|
|
MPROD := WKARR[1,1]
|
|
MSIZE := WKARR[1,2]
|
|
SVPRD := MPROD
|
|
SVSIZ := MSIZE
|
|
SVARR := {MPROD+MSIZE, WKARR[1,3]}
|
|
FOR I := 1 TO LEN(WKARR)
|
|
SCRTYP := WKARR[I,3,8] //** OL/XL - TYPE OF SCREEN
|
|
MPROD := WKARR[I,1]
|
|
MSIZE := WKARR[I,2]
|
|
//**P3N - SUMMARIZE SCREENS TO MODEL LEVEL
|
|
//** (IE: 500 AND 500SCR (XL) ARE SUMMARIZED TOGETHER)
|
|
//**IF (SVPRD = MPROD) .AND. (SVSIZ = MSIZE) //** P3N - 1/28/99
|
|
IF ((SVPRD = MPROD) .OR. (SCRTYP == 'XL' .AND. AT(SVPRD, MPROD)>0 )) ; //** P3N - 1/28/99
|
|
.AND. (SVSIZ = MSIZE) //** P3N - 1/28/99
|
|
SUMQTY := SUMQTY + WKARR[I,3,7]
|
|
LOOP
|
|
ELSE
|
|
BKOSCRNS := BKOSCRNS + SUMQTY //** P3N - 8/12/98 (HAPPY BDAY JEFF)
|
|
ELM := ASCAN(RETARR,{|X| X[1] = MPROD+MSIZE } )
|
|
IF EMPTY(ELM)
|
|
SVARR[2,7] := SUMQTY
|
|
AADD( RETARR, SVARR)
|
|
ELSE
|
|
RETARR[ELM, 2,7] := RETARR[ELM, 2,7] + SUMQTY
|
|
ENDIF
|
|
SUMQTY := WKARR[I,3,7]
|
|
SVPRD := MPROD
|
|
SVSIZ := MSIZE
|
|
SVARR := {MPROD+MSIZE, WKARR[I,3]}
|
|
ENDIF
|
|
NEXT
|
|
BKOSCRNS := BKOSCRNS + SUMQTY //** P3N - 8/12/98 (HAPPY BDAY JEFF)
|
|
ELM := ASCAN(RETARR,{|X| X[1] = MPROD+MSIZE } )
|
|
IF EMPTY(ELM)
|
|
SVARR[2,7] := SUMQTY
|
|
AADD( RETARR, SVARR)
|
|
ELSE
|
|
RETARR[ELM, 2,7] := RETARR[ELM, 2,7] + SUMQTY
|
|
ENDIF
|
|
ENDIF
|
|
FOR I := 1 TO LEN(RETARR)
|
|
AADD( RARR, RETARR[I, 2])
|
|
NEXT
|
|
RETURN RARR
|
|
********************************************************************
|
|
//** P3N - 1/29/99 - GET THE SUMMARY CODE FOR SCREEN BACKORDERS
|
|
//** SUMMARIZE SCREENS TO MODEL LEVEL
|
|
//** (IE: 500, 500UNIT AND 500SCR ARE ALL SUMMARIZED TOGETHER)
|
|
********************************************************************
|
|
FUNCTION MPROD_SUMMARY(PPROD)
|
|
LOCAL MPROD := PPROD, ENDPROD, I
|
|
LOCAL SUMARR := { 'UNIT', 'UNT', 'SCR', 'SCP','SCF', 'SCA' }
|
|
FOR I := 1 TO LEN(SUMARR)
|
|
ENDPROD := AT(SUMARR[I], MPROD)
|
|
IF EMPTY(ENDPROD)
|
|
ELSE
|
|
MPROD := SUBSTR(MPROD,1, ENDPROD-1)
|
|
EXIT
|
|
ENDIF
|
|
NEXT
|
|
RETURN MPROD
|
|
********************************************************************
|
|
* HAS THE ORDER BEEN POSTED TO THE AS/400??
|
|
* (IE: IS ORDER HISTORY REC POST DATE EMPTY??)
|
|
********************************************************************
|
|
FUNCTION POSTED_ORDER(MORDER_NUM)
|
|
LOCAL RETVAL, CLOSEHST := .T., SVSEL := SELECT()
|
|
IF SELECT('SALEHIST') > 0 //** P3N - 12/3/98
|
|
CLOSEHST := .F. //** P3N - 12/3/98
|
|
ELSE
|
|
DBOPEN('SALEHIST') //** P3N - 8/13/98 - ADDRESS POSTING LOCKOUT
|
|
CLOSEHST := .T. //** P3N - 12/3/98
|
|
ENDIF
|
|
IF SALEHIST->(DBSEEK(MORDER_NUM))
|
|
IF EMPTY(SALEHIST->POST_DATE) .AND. EMPTY(SALEHIST->POST_TIME)
|
|
RETVAL := .F.
|
|
ELSE
|
|
RETVAL := .T.
|
|
ENDIF
|
|
ELSE
|
|
RETVAL := .F.
|
|
ENDIF
|
|
IF CLOSEHST //** P3N - 12/3/98
|
|
CLOSE SALEHIST //** P3N - 12/3/98
|
|
ENDIF //** P3N - 12/3/98
|
|
SELECT(SVSEL) //** P3N - 12/3/98
|
|
RETURN RETVAL
|
|
********************************************************************
|
|
* GET THE INVOICE SHIP DATE
|
|
********************************************************************
|
|
FUNCTION GET_INV_SHPDT()
|
|
LOCAL SV_SCREEN := SAVESCREEN(), SAVESEL := SELECT()
|
|
SELECT (CUR_MAST)
|
|
IF EMPTY(INVOICENUM)
|
|
REC_LOCK(1)
|
|
REPLACE INVOICENUM WITH ORDER_NUM
|
|
UNLOCK
|
|
ENDIF
|
|
MINVOICENUM := (CUR_MAST)->INVOICENUM
|
|
MSHIP_DATE := (CUR_MAST)->SHIP_DATE
|
|
MIDATE_FST := (CUR_MAST)->IDATE_FST
|
|
IF EMPTY(MIDATE_FST)
|
|
MIDATE_FST := CURDATE
|
|
ENDIF
|
|
@ 5,01 CLEAR TO 22,80
|
|
// print all unprinted - ignore ship date pauses
|
|
// if invoice only
|
|
DO WHILE .T.
|
|
@ 11,17 SAY ' Customer :'
|
|
SETCOLOR(HNOR)
|
|
@ 11,32 SAY (CUR_MAST)->CUST_ID ;
|
|
+ '-' + (CUR_MAST)->BILL_NAME
|
|
SETCOLOR(LNOR)
|
|
@ 13,17 SAY 'Invoice Date :'
|
|
SETCOLOR(HNOR)
|
|
@ 13,32 SAY DTOC(MIDATE_FST)
|
|
SETCOLOR(LNOR)
|
|
IF MHOME_LOC_CODE = 'IOLA'
|
|
@ 15,20 SAY 'Invoice # :' + MINVOICENUM + ':'
|
|
ELSE
|
|
@ 15,20 SAY 'Invoice # :' + MINVOICENUM + ':'
|
|
ENDIF
|
|
@ 17,20 SAY 'Ship Date ' GET MSHIP_DATE
|
|
READ()
|
|
IF LASTKEY() = 27
|
|
SELECT (SAVESEL)
|
|
RESTSCREEN(,,,,SV_SCREEN)
|
|
RETURN .F.
|
|
ENDIF
|
|
IF EMPTY(MSHIP_DATE)
|
|
ERR_BOX('You can NOT ship an Order without a Ship Date !')
|
|
LOOP
|
|
ENDIF
|
|
CORR := CORRCHEK()
|
|
IF CORR$'N'
|
|
LOOP
|
|
ENDIF
|
|
IF CORR$'X' .OR. LASTKEY() = 27
|
|
SELECT (SAVESEL)
|
|
RESTSCREEN(,,,,SV_SCREEN)
|
|
RETURN .F.
|
|
ENDIF
|
|
SELECT (CUR_MAST)
|
|
REC_LOCK(3)
|
|
REPLACE (CUR_MAST)->SHIP_DATE WITH MSHIP_DATE
|
|
UNLOCK
|
|
EXIT
|
|
ENDDO
|
|
SELECT(SAVESEL)
|
|
RESTSCREEN(,,,,SV_SCREEN)
|
|
RETURN .T.
|
|
|
|
********************************************************************
|
|
* GET ALL DATA FOR THE SELECTED ORDER INTO AN ARRAY AND FORMAT THE
|
|
* ARRAY INTO A FORMAT USABLE FOR PRINTING
|
|
********************************************************************
|
|
|
|
FUNCTION BLD_ORDER( MORDER_NUM, POSTGL, PARTIAL_INVOICE, REPRINT_INVOICE )
|
|
LOCAL I, II, OL_ARR := {}, XL_ARR, P1, P2, P3
|
|
LOCAL OUT_ARR := { {}, {} }, NUM_ELEM := 8 // FOR NOW!
|
|
LOCAL M1, M2, M3, NOTAX1, NOTAX2, NOTAX3, SVSEL := SELECT()
|
|
LOCAL TAX_ARR := STAX_RATE( (CUR_MAST)->TAXSCH ) // GET THE TAX ARRAY
|
|
LOCAL TAX_DESC := TAX_ARR[3] // DESCRIPTION
|
|
LOCAL TAX_DET := TAX_ARR[4] // ALL COMPONENTS {RATE, DESC, GL_NUM}
|
|
LOCAL TOTTAX := 0, CURTAX := 0, PLUG := 0, SAVESEL := SELECT()
|
|
LOCAL GL312AMT, SHIP_STATE, BILL_STATE, WK_STATE, POST_ORDER := .F.
|
|
LOCAL SM1 := 0, SM2 := 0, SM3 := 0, IM1 := 0, IM2 := 0, IM3 := 0
|
|
LOCAL ST1 := 0, ST2 := 0, ST3 := 0, IT1 := 0, IT2 := 0, IT3 := 0
|
|
LOCAL MISC_ARR := {}, MSALE := 0, MISCKEY := '' //** P3N - 12/9/98
|
|
LOCAL QTYARR := {}, SHPQTY := 0, INVQTY := 0 //** P3N - 12/9/98
|
|
|
|
//DEFAULT PARTIAL_INVOICE := .F.
|
|
//DEFAULT REPRINT_INVOICE := .F.
|
|
|
|
If( PARTIAL_INVOICE == nil, PARTIAL_INVOICE := .F., )
|
|
If( REPRINT_INVOICE == nil, REPRINT_INVOICE := .F., )
|
|
|
|
IF PARTIAL_INVOICE = NIL
|
|
PARTIAL_INOICE := .F. //** P3N -12/7/98
|
|
ENDIF //** P3N -12/7/98
|
|
|
|
IF REPRINT_INVOICE = NIL
|
|
REPRINT_INVOICE := .F. //** P3N -12/7/98
|
|
ENDIF //** P3N -12/7/98
|
|
|
|
DBOPEN('ORD_SHIP') //** P3N - 5/1/98
|
|
IF _WHEREORD == '2' //ORDER ENTRY FROM THE HOTKEY - F7
|
|
CLS //CLEAR THE MISC. ITEMS SCREEN BEFORE PRINT MSG'S
|
|
TITLE := 'Print Order ' + ALLTRIM( (CUR_MAST)->ORDER_NUM)
|
|
SAYTITLE(TITLE, 'PR020')
|
|
ENDIF
|
|
IF EMPTY(POSTGL) //** P3N - 6/5/98
|
|
POST_ORDER := .F. //** P3N - 6/5/98
|
|
ELSE //** P3N - 6/5/98
|
|
POST_ORDER := POSTGL //** P3N - 6/5/98
|
|
ENDIF //** P3N - 6/5/98
|
|
WAIT_BOX( '*** Processing Order # ' + ALLTRIM(MORDER_NUM), ;
|
|
'*** Please Wait ****' )
|
|
|
|
// EXPECTING A 8 ELEMENT ARRAY BACK
|
|
// 1. entire set of data for a particular line
|
|
// 1. LOCATION CODE
|
|
// 2. DESCRIPTION FOR THAT LINE
|
|
// 3. 60 BYTE ITEM PRINT LINE
|
|
// 4. SALE PRICE
|
|
// 5. DISCOUNT AMOUNT
|
|
// 6. MEMO
|
|
// 7. QUANTITY
|
|
// 8. WHERE_FROM (IE: 'OL' / 'XL')
|
|
// 9. LINE_NUM
|
|
// 10. PROD_CODE
|
|
// 11. SHP_QTY //** ORDER SHIPPING TRANSACTION QTY
|
|
|
|
//INITIALIZE THE GL ARRAY
|
|
GL_ARR := {}
|
|
//LOAD THE GL ALLOCATION OVERRIDE ARRAY FROM THE GL_ALLOC DBF
|
|
GL_OVR := GET_GLALLOC(MORDER_NUM)
|
|
SELECT (CUR_MISC)
|
|
SEEK MORDER_NUM
|
|
MTOT := 0
|
|
// PRODUCT SALES FROM (CUR_MISC)
|
|
DO WHILE ORDER_NUM == MORDER_NUM .AND. !EOF()
|
|
IF EMPTY( (CUR_MISC)->ALT_SPRICE) //** P3N - 2/20/98
|
|
MSALE := (CUR_MISC)->SALE_PRICE
|
|
ELSE
|
|
M1 := MSALE := (CUR_MISC)->ALT_SPRICE //** P3N-2/20/98
|
|
ENDIF
|
|
MISCKEY := (CUR_MISC)->ORDER_NUM
|
|
MISCKEY := MISCKEY + (CUR_MISC)->LINE_NUM
|
|
MISCKEY := MISCKEY + 'MISCITM'
|
|
QTYARR := GET_OSTQTY(CUR_OL, MISCKEY, PARTIAL_INVOICE, REPRINT_INVOICE)
|
|
IF EMPTY(QTYARR) //** P3N - 12/9/98
|
|
SHPQTY := 0 //** P3N - 12/9/98
|
|
INVQTY := 0 //** P3N - 12/9/98
|
|
ELSE //** P3N - 12/9/98
|
|
SHPQTY := QTYARR[1] //** P3N - 12/9/98
|
|
INVQTY := QTYARR[2] //** P3N - 12/9/98
|
|
ENDIF //** P3N - 12/9/98
|
|
IF PARTIAL_INVOICE //** P3N - 12/9/98
|
|
M1 := SHPQTY * MSALE //** P3N - 12/9/98
|
|
ELSEIF REPRINT_INVOICE //** P3N - 12/9/98
|
|
M1 := INVQTY * MSALE //** P3N - 12/9/98
|
|
ELSE //** P3N - 12/9/98
|
|
M1 := (CUR_MISC)->QUANTITY * MSALE
|
|
ENDIF
|
|
MISC_ITEMS->(DBSEEK ( (CUR_MISC)->PARTNUM ))
|
|
ELEM := ASCAN(GL_ARR, {|X| X[1] = MISC_ITEMS->GL_NUM } )
|
|
IF ELEM > 0
|
|
GL_ARR[ELEM, 2] := GL_ARR[ELEM, 2]+( M1 )
|
|
ELSE
|
|
AADD(GL_ARR, { MISC_ITEMS->GL_NUM , M1 } )
|
|
ENDIF
|
|
MTOT := MTOT + M1
|
|
SKIP 1
|
|
ENDDO
|
|
|
|
SELECT (CUR_MAST)
|
|
|
|
*************************************************************
|
|
* Capture the Installation amount paid per order
|
|
*************************************************************
|
|
GL312AMT := (CUR_MAST)->INST_PAID
|
|
IF GL312AMT <> 0
|
|
ELEM := ASCAN(GL_ARR, {|X| X[1] = '312 '} )
|
|
IF ELEM > 0
|
|
GL_ARR[ELEM, 2] := GL_ARR[ELEM, 2]+ GL312AMT
|
|
ELSE // EXCLUDE FROM TAX ALLOC
|
|
AADD(GL_ARR, {'312 ', GL312AMT, ,'X' } )
|
|
ENDIF
|
|
ENDIF
|
|
*************************************************************
|
|
* Capture the MISC ITEMS FROM SCREEN 2115
|
|
*************************************************************
|
|
MISC_ARR := GETQTYMISC(MORDER_NUM, PARTIAL_INVOICE, REPRINT_INVOICE)
|
|
FOR I := 1 TO LEN(MISC_ARR[1])
|
|
IF MISC_ARR[1,I,5] == 'ORDMISC1'
|
|
SM1 := MISC_ARR[1,I,3] //** SHIP QTY
|
|
IM1 := MISC_ARR[1,I,6] //** INV QTY
|
|
ELSEIF MISC_ARR[1,I,5] == 'ORDMISC2'
|
|
SM2 := MISC_ARR[1,I,3] //** SHIP QTY
|
|
IM2 := MISC_ARR[1,I,6] //** INV QTY
|
|
ELSEIF MISC_ARR[1,I,5] == 'ORDMISC3'
|
|
SM3 := MISC_ARR[1,I,3] //** SHIP QTY
|
|
IM3 := MISC_ARR[1,I,6] //** INV QTY
|
|
ELSEIF MISC_ARR[1,I,5] == 'ORDNOTX1'
|
|
ST1 := MISC_ARR[1,I,3] //** SHIP QTY
|
|
IT1 := MISC_ARR[1,I,6] //** INV QTY
|
|
ELSEIF MISC_ARR[1,I,5] == 'ORDNOTX2'
|
|
ST2 := MISC_ARR[1,I,3] //** SHIP OR INV QTY
|
|
IT2 := MISC_ARR[1,I,6] //** INV QTY
|
|
ELSEIF MISC_ARR[1,I,5] == 'ORDNOTX3'
|
|
ST3 := MISC_ARR[1,I,3] //** SHIP OR INV QTY
|
|
IT3 := MISC_ARR[1,I,6] //** INV QTY
|
|
ENDIF
|
|
NEXT
|
|
|
|
|
|
IF PARTIAL_INVOICE //** SHIPPED QTYS
|
|
M1 := SM1 * (CUR_MAST)->MISC_AMT1
|
|
M2 := SM2 * (CUR_MAST)->MISC_AMT2
|
|
M3 := SM3 * (CUR_MAST)->MISC_AMT3
|
|
ELSEIF REPRINT_INVOICE //** INVOICED QTYS
|
|
M1 := IM1 * (CUR_MAST)->MISC_AMT1
|
|
M2 := IM2 * (CUR_MAST)->MISC_AMT2
|
|
M3 := IM3 * (CUR_MAST)->MISC_AMT3
|
|
ELSE
|
|
M1 := (CUR_MAST)->MISC_QTY1 * (CUR_MAST)->MISC_AMT1
|
|
M2 := (CUR_MAST)->MISC_QTY2 * (CUR_MAST)->MISC_AMT2
|
|
M3 := (CUR_MAST)->MISC_QTY3 * (CUR_MAST)->MISC_AMT3
|
|
ENDIF
|
|
|
|
MTOT := MTOT + M1 + M2 + M3
|
|
|
|
IF M1 <> 0
|
|
ELEM := ASCAN(GL_ARR, {|X| X[1] = MISC_GL1} )
|
|
IF ELEM > 0
|
|
GL_ARR[ELEM, 2] := GL_ARR[ELEM, 2]+( M1 )
|
|
ELSE
|
|
AADD(GL_ARR, { MISC_GL1, M1 } )
|
|
ENDIF
|
|
ENDIF
|
|
IF M2 <> 0
|
|
ELEM := ASCAN(GL_ARR, {|X| X[1] = MISC_GL2} )
|
|
IF ELEM > 0
|
|
GL_ARR[ELEM, 2] := GL_ARR[ELEM, 2]+( M2 )
|
|
ELSE
|
|
AADD(GL_ARR, { MISC_GL2, M2 } )
|
|
ENDIF
|
|
ENDIF
|
|
IF M3 <> 0
|
|
ELEM := ASCAN(GL_ARR, {|X| X[1] = MISC_GL3} )
|
|
IF ELEM > 0
|
|
GL_ARR[ELEM, 2] := GL_ARR[ELEM, 2]+( M3 )
|
|
ELSE
|
|
AADD(GL_ARR, { MISC_GL3, M3 } )
|
|
ENDIF
|
|
ENDIF
|
|
*************************************************************
|
|
* Capture the NON-TAX ITEMS FROM SCREEN 2115
|
|
* Perry Nichols 7/31/97
|
|
*************************************************************
|
|
IF PARTIAL_INVOICE //** SHIPPED QTYS
|
|
NOTAX1 := ST1 * (CUR_MAST)->NOTX_AMT1
|
|
NOTAX2 := ST2 * (CUR_MAST)->NOTX_AMT2
|
|
NOTAX3 := ST3 * (CUR_MAST)->NOTX_AMT3
|
|
ELSEIF REPRINT_INVOICE //** INVOICED QTYS
|
|
NOTAX1 := IT1 * (CUR_MAST)->NOTX_AMT1
|
|
NOTAX2 := IT2 * (CUR_MAST)->NOTX_AMT2
|
|
NOTAX3 := IT3 * (CUR_MAST)->NOTX_AMT3
|
|
ELSE
|
|
NOTAX1 := (CUR_MAST)->NOTX_QTY1 * (CUR_MAST)->NOTX_AMT1
|
|
NOTAX2 := (CUR_MAST)->NOTX_QTY2 * (CUR_MAST)->NOTX_AMT2
|
|
NOTAX3 := (CUR_MAST)->NOTX_QTY3 * (CUR_MAST)->NOTX_AMT3
|
|
ENDIF
|
|
|
|
IF NOTAX1 <> 0
|
|
ELEM := ASCAN(GL_ARR, {|X| X[1] = NOTX_GL1} )
|
|
IF ELEM > 0
|
|
GL_ARR[ELEM, 2] := GL_ARR[ELEM, 2]+( NOTAX1 )
|
|
ELSE // EXCLUDE FROM TAX ALLOC
|
|
AADD(GL_ARR, { NOTX_GL1, NOTAX1,,'X' } )
|
|
ENDIF
|
|
ENDIF
|
|
IF NOTAX2 <> 0
|
|
ELEM := ASCAN(GL_ARR, {|X| X[1] = NOTX_GL2} )
|
|
IF ELEM > 0
|
|
GL_ARR[ELEM, 2] := GL_ARR[ELEM, 2]+( NOTAX2 )
|
|
ELSE // EXCLUDE FROM TAX ALLOC
|
|
AADD(GL_ARR, { NOTX_GL2, NOTAX2,,'X' } )
|
|
ENDIF
|
|
ENDIF
|
|
IF NOTAX3 <> 0
|
|
ELEM := ASCAN(GL_ARR, {|X| X[1] = NOTX_GL3} )
|
|
IF ELEM > 0
|
|
GL_ARR[ELEM, 2] := GL_ARR[ELEM, 2]+( NOTAX3 )
|
|
ELSE // EXCLUDE FROM TAX ALLOC
|
|
AADD(GL_ARR, { NOTX_GL3, NOTAX3,,'X' } )
|
|
ENDIF
|
|
ENDIF
|
|
SELECT (SAVESEL)
|
|
|
|
IF TAX_ARR[2] <> 0 // TOTAL RATE
|
|
FOR I := 1 TO LEN(TAX_DET)
|
|
CURTAX := VAL(STR(TAX_DET[I,1] * ;
|
|
( (CUR_MAST)->ORD_L_TTL - ;
|
|
(CUR_MAST)->ORD_BO_TTL - ; //** P3N - 11/19/98
|
|
(CUR_MAST)->ORD_D_TTL + MTOT), 9, 2))
|
|
CURTAX := MIN( (CUR_MAST)->SALES_TAX - TOTTAX, CURTAX)
|
|
IF CURTAX <> 0
|
|
// GL ACCT# TAXAMT TAX DESC EXCLUDE FROM ALLOC.
|
|
AADD(GL_ARR, { TAX_DET[I,3] + ' ', CURTAX, TAX_DET[I,2], 'X' } )
|
|
TOTTAX := TOTTAX + CURTAX
|
|
ENDIF
|
|
NEXT
|
|
// IS THE PLUG AMOUNT BASED ON THE total or the quote?
|
|
IF TOTTAX <> (CUR_MAST)->SALES_TAX
|
|
PLUG := (CUR_MAST)->SALES_TAX - TOTTAX
|
|
IF LEN(GL_ARR) > 0 //** P3N - 01/14/09
|
|
GL_ARR[LEN(GL_ARR),2] := GL_ARR[LEN(GL_ARR),2] + PLUG
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF (CUR_MAST)->( FIELDPOS('FREIGHT') ) > 0
|
|
IF (CUR_MAST)->FREIGHT <> 0 //EXCLUDE FROM TAX - ALLOC.
|
|
AADD(GL_ARR, { 'FREIGHT', (CUR_MAST)->FREIGHT, , 'X' } )
|
|
ENDIF
|
|
ENDIF
|
|
IF POST_ORDER
|
|
//** BUILD THE GL_ARR FOR POSTING - NO NEED TO GET_ORD_DATA()!
|
|
ELSE
|
|
OL_ARR := GET_ORD_DATA(MORDER_NUM, CUR_OL, PARTIAL_INVOICE, REPRINT_INVOICE)
|
|
SELECT (CUR_XL)
|
|
DONSETORD(3) // ORDER + LINE#
|
|
XL_ARR := GET_ORD_DATA(MORDER_NUM, CUR_XL, PARTIAL_INVOICE, REPRINT_INVOICE)
|
|
SELECT (CUR_XL)
|
|
DONSETORD(1)
|
|
* DISECT THE OL_ARR AND PUT THE CTRL, FRAME, GLASS, SASH, INV
|
|
* STUFF INTO THE OUT_ARR IN THE PROPER HIERARCHY
|
|
* NOTICE, EACH ELEMENT OF THE OL_ARR IS SIMPLY AN 80 BYTE TEXT PRINT LINE
|
|
|
|
FOR I = 1 TO LEN(OL_ARR)
|
|
IF I = 7 // customer invoice copy
|
|
AADD(OUT_ARR[2], OL_ARR[I]) // 8 ELEMENT ARRAY WITH LOC_CODE, HEADING, ITEM,
|
|
ELSE // GROSS SALE PRICE, DISCOUNT AMT
|
|
AADD(OUT_ARR[1], OL_ARR[I])
|
|
ENDIF
|
|
NEXT
|
|
FOR I = 1 TO LEN(XL_ARR)
|
|
IF I = 7 // customer invoice copy
|
|
// NO XL ITEMS ON CUSTOMER COPIES // 8 ELEMENT ARRAY WITH LOC_CODE, HEADING, ITEM,
|
|
ELSE // GROSS SALE PRICE, DISCOUNT AMT
|
|
FOR II := 1 TO LEN(XL_ARR[I])
|
|
IF I < 7
|
|
AADD(OUT_ARR[1,I], XL_ARR[I, II])
|
|
ELSE
|
|
AADD(OUT_ARR[1,I-1], XL_ARR[I, II])
|
|
ENDIF
|
|
NEXT
|
|
ENDIF
|
|
NEXT
|
|
//* SORT SUB ARRAY'S IN LINE_NUM + OL/XL + PROD_CODE FOR PRINTING
|
|
//* (IE: SUB ARRAY'S ARE - CTRL, FRAME, SASH, GLASS, SCREEN, STORM)
|
|
// IF A SEQUENCE NUMBER, PUT THAT ONE AT THE BOTTOM OR SOMETHING
|
|
///***///***///***\\\***\\\***\\\
|
|
FOR I := 1 TO LEN(OUT_ARR[1])
|
|
* OUT_ARR[1,I] := ASORT(OUT_ARR[1,I],,, {|X,Y| X[9] + X[8] + X[10] < Y[9] + Y[8] + Y[10] })
|
|
IF EMPTY(OUT_ARR[1,I]) //** P3N - 5/17/99
|
|
ELSE //** P3N - 5/17/99
|
|
OUT_ARR[1,I] := ASORT(OUT_ARR[1,I],,, {|X,Y| X[2] + X[9] < Y[2] + Y[9] })
|
|
ENDIF //** P3N - 5/17/99
|
|
NEXT
|
|
// INVOICE PARTS
|
|
OUT_ARR[2,1] := ASORT(OUT_ARR[2,1],,, {|X,Y| X[2] + X[9] < Y[2] + Y[9] })
|
|
ENDIF
|
|
//**IF (CUR_MAST)->TERMS = '90' .OR. ; //** NO CHARGE //**P3N - 6/16/98
|
|
//** (CUR_MAST)->TERMS = '96' //** CANCELLATION //**P3N - 6/16/98
|
|
IF ZERO_ORDER() //** NO CHARGE //**P3N - 3/05/99
|
|
GL_ARR := {} //** P3N - 6/16/98 FORCE GL ALLOC. TO ZERO
|
|
GL_OVR := {} //** P3N - 6/16/98 FORCE GL ALLOC. TO ZERO
|
|
ENDIF
|
|
IF EMPTY(OUT_ARR[1]) .AND. EMPTY(OUT_ARR[2])
|
|
RETURN {}
|
|
ELSE
|
|
RETURN OUT_ARR
|
|
ENDIF
|
|
|
|
|
|
*****************************************************************
|
|
* CALC TOTAL MISC ITEMS / NOTX ITEMS
|
|
*****************************************************************
|
|
FUNCTION CALC_TOTMISC( CUR_MAST , MORDER_NUM, INCLD_NOTX)
|
|
LOCAL RETVAL := ( (CUR_MAST)->MISC_QTY1 * (CUR_MAST)->MISC_AMT1 ) ;
|
|
+ ( (CUR_MAST)->MISC_QTY2 * (CUR_MAST)->MISC_AMT2 ) ;
|
|
+ ( (CUR_MAST)->MISC_QTY3 * (CUR_MAST)->MISC_AMT3 ) ;
|
|
+ (CUR_MAST)->ORD_M_TTL
|
|
IF EMPTY(INCLD_NOTX) //** P3N - 1/11/99
|
|
ELSEIF INCLD_NOTX //** P3N - 1/11/99
|
|
RETVAL := RETVAL + ( (CUR_MAST)->NOTX_QTY1 * (CUR_MAST)->NOTX_AMT1 ) ;
|
|
+ ( (CUR_MAST)->NOTX_QTY2 * (CUR_MAST)->NOTX_AMT2 ) ;
|
|
+ ( (CUR_MAST)->NOTX_QTY3 * (CUR_MAST)->NOTX_AMT3 )
|
|
ENDIF //** P3N - 1/11/99
|
|
RETURN RETVAL //** P3N - 1/11/99
|
|
*****************************************************************
|
|
* GET THE GL ALLOCATIONS FOR A GIVEN ORDER! IF NONE EXIST RET EMPTY ARRAY
|
|
*****************************************************************
|
|
FUNCTION GET_GLALLOC(MORDER_NUM)
|
|
//** GL_ARR-1 = GL_NUM
|
|
//** GL_ARR-2 = GL_AMT
|
|
//** GL_ARR-3 = GL_TAX_DESC
|
|
//** GL_ARR-4 = GL_TAX_IND - "X" EXCLUDE FROM TAX ALLOC
|
|
//** "I" INCLUDE IN TAX ALLOC
|
|
//** "P" PRODUCT ALLOCATION
|
|
LOCAL RET_ARR := {}, GL_AMT
|
|
LOCAL SV_SEL := SELECT()
|
|
DBOPEN('GL_ALLOC')
|
|
|
|
IF DBSEEK(MORDER_NUM)
|
|
DO WHILE .T.
|
|
IF GL_ALLOC->(EOF())
|
|
EXIT
|
|
ENDIF
|
|
IF GL_ALLOC->ORDER_NUM == MORDER_NUM
|
|
GL_AMT := AMOUNT + ADJ_AMT
|
|
AADD(RET_ARR, {GL_NUM, GL_AMT, TAX_DESC, TAX_ALLOC})
|
|
ELSE
|
|
EXIT
|
|
ENDIF
|
|
DBSKIP(+1)
|
|
ENDDO
|
|
ENDIF
|
|
USE
|
|
SELECT(SV_SEL)
|
|
RETURN RET_ARR
|
|
|
|
*****************************************************************
|
|
* PRINT COMPLETE ORDER-(IE: PROD CTRL, OR PROD FRAME, OR PROD SASH...)
|
|
*****************************************************************
|
|
FUNCTION PRNT_THE_ORDER(WHCHORDER, PRN_ARR, WHICH_TYPE, WHCH_LOCATION, ;
|
|
SUBTYPE, DO_CUT_SPECS, PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
|
|
LOCAL MORDER_NUM := (CUR_MAST)->ORDER_NUM, I, LI_TOTALS := 0, ELM
|
|
LOCAL DO_LINES := .T., PAMTS := {}, III, WORKARR := {}
|
|
LOCAL LI_AMTDON, LASTDESC, TOTPRNT := 0, SUBPRNT := 0, NUMPRNT := 0
|
|
LOCAL NUMBRK := 0, THESE_ITEMS := 0, LAST_PAMT, THIS_NUM, DIDFST := .F.
|
|
LOCAL PHEAD_ARR := {}, PRT_AMT := .F., BKOMODEL, LASTBKOM
|
|
LOCAL PBODY_ARR := {}, LASTMODEL, DISC_ARR, PAMTS_ARR := {}, PTAIL_ARR := {}
|
|
LOCAL RETARR := {}, NUMX := 0, PRT_GL_INFO
|
|
LOCAL L1:=0, L2:=0, L3:=0, M1:=0, M2:=0, M3:=0, MTOT:=0, PRINTFRAME := .F.
|
|
LOCAL B1:=0, B2:=0, B3:=0, S1:=0, S2:=0, S3:=0, A1:=0, A2:=0, A3:=0, STOT := 0
|
|
LOCAL I1:=0, I2:=0, I3:=0, ITOT := 0, INCL_ALL_LINES, RET_ARR, PRT_DISC_ARR
|
|
LOCAL CNT_LI_DISC := 0, LI_DISC_PRNT := .F., WORKPRICE := 0
|
|
LOCAL MISCITM_OSTQTY := 0, MISC_ARR := {}, PRT_BO := .F., SUPPRESS_TOT := .F.
|
|
LOCAL MPORT
|
|
|
|
PRIVATE FORMTYPE := GET_FORMTYPE(WHCHORDER, WHICH_TYPE, SUBTYPE)
|
|
|
|
//DEFAULT PARTIAL_INVOICE := .F.
|
|
//DEFAULT REPRINT_INVOICE := .F.
|
|
|
|
If( PARTIAL_INVOICE == nil, PARTIAL_INVOICE := .F., )
|
|
If( REPRINT_INVOICE == nil, REPRINT_INVOICE := .F., )
|
|
|
|
|
|
IF EMPTY(REPRINT_INVOICE) //** P3N - 12/3/98
|
|
REPRINT_INVOICE := .F. //** P3N - 12/3/98
|
|
ENDIF //** P3N - 12/3/98
|
|
IF EMPTY(PARTIAL_INVOICE) //** P3N - 11/13/98
|
|
PARTIAL_INVOICE := .F. //** P3N - 11/13/98
|
|
ENDIF //** P3N - 11/13/98
|
|
IF DO_CUT_SPECS = NIL
|
|
DO_CUT_SPECS := .F.
|
|
ENDIF
|
|
|
|
/*
|
|
************************************************************
|
|
1. WHCHORDER - TELLS WHETHER INVOICE/PRODUCTION/ORDER DESK (DEFINES WHAT COPIES TO PRINT)
|
|
2. PRN_ARR - TELLS WHAT IS AVAIL TO PRINT IN THE LINE ITEM BODY
|
|
3. WHICH_TYPE- TELLS WHAT HEADING TO PRINT ON THE ORDER HEADING
|
|
4. WHCH_LOCAT- TELLS WHICH LOCATION WE ARE CONCERNED WITH
|
|
1. "ALL" MEANS PRINT EVERYTHING IN THE PRN_ARR
|
|
THIS IS SENT FOR "ORDER CONTROL COPY" AND "CUSTOMER INVOICES"
|
|
2. IF NOT "ALL", IT WILL REPRESENT A SPECIFIC LOCATION CODE
|
|
-IF THE CODE IS THE MHOME_LOC_CODE, THE ORDER WILL FILTER OUT
|
|
ONLY ITEMS TO BE PRODUCED ON THE FRAME, SASH, GLASS,STORMS COPY
|
|
-IF THE CODE IS !MHOME_LOC_CODE, THE ORDER WILL PRINT AS
|
|
A "INTERCOMPANY PURCHASE ORDER" CTRL DATA. DON'T WORRY ABOUT
|
|
IT, JUST FYI. WHICH_TYPE WILL BE "PO" OR "MANIFEST", ETC.
|
|
THE PRN_ARR WILL ALREADY CONTAIN THE "CTRL" INFO SINCE THAT
|
|
DATA CAN ALSO BE USED AS PURCHASE ORDER LINE DATA.
|
|
5. SUBTYPE - TELLS IF IT IS AN ORDER DESK DELIVERY COPY
|
|
6. DO_CUT_SPECS - TELLS IF WE SHOULD PRINT ITEMS FROM THE CUT_SPEC_ARR
|
|
( CURRENTLY ONLY DONE ON FRAME COPY )
|
|
************************************************************
|
|
*/
|
|
|
|
|
|
(CUR_MAST)->(DBSEEK(MORDER_NUM))
|
|
//**IF EMPTY(PRN_ARR) .AND. EMPTY( (CUR_MAST)->NOTES )
|
|
IF EMPTY(PRN_ARR)
|
|
//** P3N - 12/2/98 CHECK FOR MISC ITEMS BACKORDERED
|
|
IF ( WHCHORDER == 'BACKORD' .AND. SUBTYPE == 'BACKORD' )
|
|
IF EMPTY((CUR_MAST)->ORDER_NEW) //** P3N - 12/9/98
|
|
ELSE
|
|
RETURN //** PARTIAL INVOICE - NO BACKORDER
|
|
ENDIF
|
|
IF EMPTY( CALC_TOTMISC( CUR_MAST, MORDER_NUM,.T.) ) //** P3N - 1/11/99
|
|
RETURN //** P3N - 1/11/99
|
|
ENDIF //** P3N - 1/11/99
|
|
ELSEIF WHCHORDER == 'INV'
|
|
IF MISCSHIPPED(MORDER_NUM, PARTIAL_INVOICE, REPRINT_INVOICE)
|
|
RETURN
|
|
ENDIF
|
|
ELSEIF EMPTY( (CUR_MAST)->NOTES )
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
IF EMPTY(WIDEON)
|
|
SET_P_OFF()
|
|
ERR_BOX('Printer is NOT properly set!',' ', ;
|
|
'Please SETUP Printer through Utility MENU - PRINTER Selection!' )
|
|
RETURN
|
|
ENDIF
|
|
IF WHCH_LOCATION = NIL
|
|
? ABEND
|
|
ENDIF
|
|
// SCAN THE BODY OF THE ORDER TO ENSURE THAT A LOCATION ITEM EXISTS HERE
|
|
// IF NOT 'ALL' ITEMS
|
|
IF WHCHORDER = 'PROD' .OR. WHCHORDER = 'OD'
|
|
DO CASE
|
|
CASE WHICH_TYPE = 'CTRL'
|
|
DO_LINES := .T.
|
|
OTHERWISE
|
|
DO_LINES := SCAN_PRNARR(PRN_ARR, WHCH_LOCATION)
|
|
ENDCASE
|
|
IF WHICH_TYPE == 'SCREEN'
|
|
DO_LINES := .T. // DO SCREEN regardless of the MFG. location.
|
|
ENDIF
|
|
ELSE
|
|
DO_LINES := .T.
|
|
ENDIF
|
|
// SO FAR, HAVE DATA FOR THIS LOCATION
|
|
// SCAN THE BODY OF THE ORDER TO ENSURE THAT QTY > 0 (NOT CREDIT MEMO)
|
|
// IF NOT 'ALL' ITEMS
|
|
//**TOTMISC := CALC_TOTMISC( CUR_MAST, MORDER_NUM )
|
|
TOTMISC := CALC_TOTMISC( CUR_MAST, MORDER_NUM , .T.) //** P3N - 1/11/99
|
|
IF !EMPTY( (CUR_MAST)->NOTES )
|
|
DO_LINES := .T.
|
|
ENDIF
|
|
IF WHCHORDER <> 'INV' .AND. DO_LINES
|
|
IF TOTMISC <> 0 .AND. ;
|
|
(SUBTYPE = 'DELIVERY' .OR. SUBTYPE = 'ORDERDESK' ) //** P3N - 1/15/99
|
|
//** (SUBTYPE = 'DELIVERY' .OR. SUBTYPE = 'ORDERDESK' .OR. SUBTYPE = 'BACKORD')
|
|
ELSEIF !EMPTY(TOTMISC) .AND. SUBTYPE = 'BACKORD' //** P3N - 1/15/99
|
|
IF MISCSHIPPED(MORDER_NUM, PARTIAL_INVOICE, REPRINT_INVOICE)
|
|
//** P3N - 1/15/99 CHECK FOR MISC ORDER LINES ITEMS ON BACKORDER
|
|
MISC_ARR := BLD_MISCORD('TORD_LINES', {}, {}, 0, ;
|
|
.F., .F., .F., WHCHORDER, , , .T., SUBTYPE )
|
|
IF EMPTY(MISC_ARR[4]) //** P3N - 1/15/99
|
|
DO_LINES := .F. //** P3N - 12/04/01
|
|
FOR I := 1 TO LEN(PRN_ARR) //** P3N - 12/04/01
|
|
// DO BKO COPY IF NO MISC BUT BKO QTY > 0
|
|
IF PRN_ARR[I,7] > 0 .OR. !EMPTY(PRN_ARR[I,13]) //** ONLY PRINT BKO IF QTY > 0
|
|
DO_LINES := .T. //** OR CUT SPECS
|
|
EXIT //** P3N - 12/04/01
|
|
ENDIF //** P3N - 12/04/01
|
|
NEXT //** P3N - 12/04/01
|
|
IF DO_LINES //** P3N - 12/04/01
|
|
//** NO MISC BKO ITMS BUT WE HAVE OTHER BKO ITEMS TO PROCESS
|
|
ELSE //** P3N - 12/04/01
|
|
RETURN //** P3N - 12/04/01
|
|
ENDIF //** P3N - 12/04/01
|
|
ENDIF //** P3N - 1/15/99
|
|
ENDIF //** P3N - 1/15/99
|
|
ELSE //** P3N - 1/15/99
|
|
DO_LINES := .F.
|
|
FOR I := 1 TO LEN(PRN_ARR)
|
|
// ONLY PRINT PRODUCTION,ETC IF QTY > 0
|
|
IF PRN_ARR[I,7] > 0 .OR. !EMPTY(PRN_ARR[I,13]) // ONLY PRINT PRODUCTION,ETC IF QTY > 0
|
|
DO_LINES := .T. // NOT A CREDIT MEMO OR CUT SPECS
|
|
EXIT
|
|
ENDIF
|
|
NEXT
|
|
ENDIF
|
|
ENDIF
|
|
IF !DO_LINES
|
|
RETURN
|
|
ENDIF
|
|
// INVOICE SHOULD NOT PRINT ANY ITEMS
|
|
// WHICH CAME FROM THE 'ADDL_LINES' FILE.
|
|
// ARE THERE ANY PRODUCTION ITEMS TO PRINT AT THIS LOCATION ???
|
|
IF WHCHORDER == 'PROD' .AND. WHICH_TYPE <> 'CTRL'
|
|
IF EMPTY(ASCAN(PRN_ARR,{|X| X[1] == WHCH_LOCATION }))
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
// ARE THERE ANY IC ORDER ITEMS TO PRINT AT THIS LOCATION ???
|
|
IF WHCHORDER == 'OD' .AND. WHICH_TYPE == 'PO'
|
|
IF EMPTY(ASCAN(PRN_ARR,{|X| X[1] == WHCH_LOCATION }))
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
// ARE THERE ANY PRODUCTION FRAME ITEMS TO PRINT ???
|
|
IF AT('FRAME', WHICH_TYPE) > 0
|
|
FOR I := 1 TO LEN(PRN_ARR)
|
|
IF PRT_FRAME(WHICH_TYPE, PRN_ARR[I,10])
|
|
PRINTFRAME := .T.
|
|
ENDIF
|
|
NEXT
|
|
IF PRINTFRAME
|
|
// FRAME COPY FOUND TO PRINT - CONTINUE PROCESSING!
|
|
ELSE
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
PHEAD_ARR := BLD_HEAD(MORDER_NUM, WHICH_TYPE, WHCH_LOCATION, ;
|
|
WHCHORDER, SUBTYPE )
|
|
IF (WHICH_TYPE == 'INV' .AND. CUR_MAST == 'ORD_MAST') .OR. ; //**P3N - 11/24/98
|
|
WHICH_TYPE == 'BACKORD' //**P3N - 2/23/99
|
|
//** P3N -11/19/98 - INVOICE PROCESSING?
|
|
IF EMPTY((CUR_MAST)->ORDER_ORG)
|
|
//** P3N -11/19/98 THIS ORDER WAS NOT CREATED FROM A PARTIAL INVOICE?
|
|
ELSE
|
|
DIDFST := .T.
|
|
//** THIS ORDER WAS CREATED FROM A PARTIAL INVOICE?
|
|
AADD(PBODY_ARR, '^' + SPACE(14) + 'BACKORDER FROM ORDER# ' + (CUR_MAST)->ORDER_ORG )
|
|
AADD(PAMTS_ARR, NIL)
|
|
ENDIF
|
|
IF EMPTY((CUR_MAST)->ORDER_NEW)
|
|
//** P3N -11/19/98 THIS ORDER IS NOT A PARTIAL INVOICE?
|
|
ELSE
|
|
DIDFST := .T.
|
|
//** THIS ORDER IS A PARTIAL INVOICE?
|
|
AADD(PBODY_ARR, '^' + SPACE(14) + 'BACKORDERED ITEMS ON ORDER# ' + (CUR_MAST)->ORDER_NEW )
|
|
AADD(PAMTS_ARR, NIL)
|
|
ENDIF
|
|
ENDIF
|
|
// ONCE FOR EACH LINE ITEM RECORD
|
|
LAST_PAMT := 0
|
|
FOR I := 1 TO LEN(PRN_ARR)
|
|
IF EMPTY(PRN_ARR[I,2])
|
|
LOOP
|
|
ENDIF
|
|
//** IF THIS IS A FRAME COPY ARE THERE ANY STORM DOORS(STD) OR PIN-ONS(PWS)?
|
|
IF AT('FRAME', WHICH_TYPE) > 0
|
|
IF PRT_FRAME(WHICH_TYPE, PRN_ARR[I,10])
|
|
ELSE
|
|
LOOP
|
|
ENDIF
|
|
ENDIF
|
|
INCL_ALL_LINES := .T.
|
|
IF (WHICH_TYPE == 'INV' .OR. WHICH_TYPE == 'CTRL') .AND. WHCHORDER <> 'PROD'
|
|
//** LET INVOICE AND CTRL COPIES PRINT REGARDLESS OF MFG. LOC
|
|
ELSEIF WHCHORDER == 'BACKORD'
|
|
//** P3N - 5/1/98 - LET BACKORDERS PRINT REGARDLESS OF MFG. LOC
|
|
ELSEIF PRN_ARR[I,1] == WHCH_LOCATION
|
|
// FOR ALL COPIES EXCEPT "INV" & "CTRL"
|
|
// ONLY PRINT ITEMS FOR GIVEN LOCATION
|
|
ELSEIF PRN_ARR[I,15] //DO_SCRNS_ONLY regardless of the MFG location
|
|
IF MHOME_LOC_CODE = 'KC' //FOR KANSAS CITY(KC) ONLY !!!!!!! 6-18-97
|
|
LOOP
|
|
ENDIF
|
|
ELSEIF WHICH_TYPE == 'CTRL' .AND. WHCHORDER == 'PROD'
|
|
INCL_ALL_LINES := .T.
|
|
ELSE
|
|
LOOP
|
|
ENDIF
|
|
IF LASTDESC = NIL
|
|
LASTDESC := PRN_ARR[I,2]
|
|
ENDIF
|
|
IF EMPTY(LASTMODEL)
|
|
LASTMODEL := PRN_ARR[I,10] //SAVE THE PRODUCT MODEL
|
|
LASTBKOM := MPROD_SUMMARY(LASTMODEL) //** P3N - 2/02/99
|
|
ENDIF
|
|
BKOMODEL := MPROD_SUMMARY(PRN_ARR[I,10]) //** P3N - 2/02/99
|
|
//** DISCOUNT MODIFICATIONS - 10-7-97
|
|
IF (WHICH_TYPE == 'INV' .OR. WHICH_TYPE == 'CTRL')
|
|
IF LASTMODEL == PRN_ARR[I,10]
|
|
ELSEIF PRINT_DISC(PRN_ARR, LASTMODEL) //PRINT A DISCOUNT%
|
|
DISC_ARR := GETDISCTOT(PRN_ARR, I-1)
|
|
PRT_DISC_ARR := PRNT_DISCOUNTS( DISC_ARR, WHCHORDER, SUBTYPE)
|
|
FOR ELM := 1 TO LEN(PRT_DISC_ARR)
|
|
AADD(PBODY_ARR, PRT_DISC_ARR[ELM] )
|
|
AADD(PAMTS_ARR, {})
|
|
CNT_LI_DISC := CNT_LI_DISC + 1
|
|
NEXT
|
|
ENDIF
|
|
ENDIF
|
|
//** P3N - 2/02/99
|
|
IF ( INCL_ALL_LINES .AND. !(LASTBKOM == BKOMODEL) .AND. ; //** P3N - 2/02/99
|
|
WHCHORDER == 'BACKORD' .AND. SUBTYPE == 'SCREENS' ) //** P3N - 2/02/99
|
|
NUMBRK ++
|
|
IF NUMPRNT > 1 .AND. MHOME_LOC_CODE <> 'IOLA' ; // DARLENE 8-21-96
|
|
.AND. MHOME_LOC_CODE <> 'LINDS' // LINDA 8-23-96
|
|
IF WHCHORDER == 'BACKORD' //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
IF MHOME_LOC_CODE = 'PAWNEE' //** P3N 2-23-99
|
|
AADD(PBODY_ARR,SPACE(5)+'-----') //** P3N - 2/23/99
|
|
AADD(PAMTS_ARR, {}) //** P3N - 2/23/99
|
|
AADD(PBODY_ARR,SPACE(5)+STR(SUBPRNT,4))
|
|
AADD(PAMTS_ARR, {}) //** P3N - 2/23/99
|
|
ELSE //** P3N - 2/23/99
|
|
AADD(PBODY_ARR,SPACE(9)+'-----') //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
AADD(PAMTS_ARR, {}) //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
AADD(PBODY_ARR,SPACE(9)+STR(SUBPRNT,4))
|
|
AADD(PAMTS_ARR, {}) //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
ENDIF //** P3N - 2/23/99
|
|
ELSE //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
AADD(PBODY_ARR, '-----' )
|
|
AADD(PAMTS_ARR, {})
|
|
AADD(PBODY_ARR, STR(SUBPRNT,4) )
|
|
AADD(PAMTS_ARR, {})
|
|
AADD(PBODY_ARR, '-----' )
|
|
AADD(PAMTS_ARR, {})
|
|
ENDIF //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
ENDIF
|
|
SUBPRNT := 0
|
|
NUMPRNT := 0
|
|
//**IF !(LASTDESC == PRN_ARR[I,2]) .AND. INCL_ALL_LINES
|
|
ELSEIF ( INCL_ALL_LINES .AND. !(LASTDESC == PRN_ARR[I,2]) .AND. ;
|
|
(WHCHORDER == 'BACKORD' .AND. SUBTYPE <> 'SCREENS' .OR. ; //** P3N - 2/02/99
|
|
WHCHORDER <> 'BACKORD' ) ) //** P3N - 2/02/99
|
|
NUMBRK ++
|
|
IF NUMPRNT > 1 .AND. MHOME_LOC_CODE <> 'IOLA' ; // DARLENE 8-21-96
|
|
.AND. MHOME_LOC_CODE <> 'LINDS' // LINDA 8-23-96
|
|
IF WHCHORDER == 'BACKORD' //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
IF MHOME_LOC_CODE = 'PAWNEE' //** P3N 2-23-99
|
|
AADD(PBODY_ARR,SPACE(5)+'-----') //** P3N - 2/23/99
|
|
AADD(PAMTS_ARR, {}) //** P3N - 2/23/99
|
|
AADD(PBODY_ARR,SPACE(5)+STR(SUBPRNT,4))
|
|
AADD(PAMTS_ARR, {}) //** P3N - 2/23/99
|
|
ELSE //** P3N - 2/23/99
|
|
AADD(PBODY_ARR,SPACE(9)+'-----') //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
AADD(PAMTS_ARR, {}) //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
AADD(PBODY_ARR,SPACE(9)+STR(SUBPRNT,4))
|
|
AADD(PAMTS_ARR, {}) //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
ENDIF //** P3N - 2/23/99
|
|
ELSE //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
AADD(PBODY_ARR, '-----' )
|
|
AADD(PAMTS_ARR, {})
|
|
AADD(PBODY_ARR, STR(SUBPRNT,4) )
|
|
AADD(PAMTS_ARR, {})
|
|
AADD(PBODY_ARR, '-----' )
|
|
AADD(PAMTS_ARR, {})
|
|
ENDIF //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
ENDIF
|
|
SUBPRNT := 0
|
|
NUMPRNT := 0
|
|
ENDIF
|
|
RETARR := BLD_BODY(PRN_ARR[I], WHICH_TYPE, WHCH_LOCATION, ;
|
|
PBODY_ARR, PAMTS_ARR, WHCHORDER, SUBTYPE, ;
|
|
INCL_ALL_LINES, DO_CUT_SPECS, PARTIAL_INVOICE, REPRINT_INVOICE )
|
|
LI_AMTDON := RETARR[1]
|
|
PBODY_ARR := RETARR[2]
|
|
PAMTS_ARR := RETARR[3]
|
|
IF INCL_ALL_LINES
|
|
LI_TOTALS := LI_TOTALS + LI_AMTDON
|
|
NUMX := PRN_ARR[I,12] + 1 // TOTAL WINDOWS PER UNIT (XTRA WIND + 1)
|
|
// LINE ITEM QUANTITY
|
|
LAST_PAMT ++
|
|
THIS_NUM := 0
|
|
FOR III := LAST_PAMT TO LEN(PAMTS_ARR)
|
|
IF WHCHORDER == 'BACKORD' //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
IF EMPTY(PAMTS_ARR[III]) //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
ELSEIF EMPTY(PAMTS_ARR[III,3])
|
|
ELSE
|
|
THIS_NUM := THIS_NUM + (PAMTS_ARR[III,3])
|
|
ENDIF
|
|
ELSE
|
|
IF EMPTY(PAMTS_ARR[III])
|
|
ELSEIF EMPTY(PAMTS_ARR[III,1])
|
|
ELSE
|
|
THIS_NUM := THIS_NUM + (PAMTS_ARR[III,1])
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
LAST_PAMT := LEN(PAMTS_ARR)
|
|
NUMPRNT := NUMPRNT + THIS_NUM
|
|
// ACTUAL WINDOWS QUANTITY ( 1 TWIN = 2 WINDOWS TOTAL )
|
|
SUBPRNT := SUBPRNT + (THIS_NUM * NUMX)
|
|
TOTPRNT := TOTPRNT + (THIS_NUM * NUMX)
|
|
ENDIF
|
|
LASTDESC := PRN_ARR[I,2]
|
|
LASTMODEL := PRN_ARR[I,10] //SAVE THE PRODUCT MODEL - 10-7-97
|
|
LASTBKOM := BKOMODEL //** P3N - 2/02/99
|
|
NEXT
|
|
//** DISCOUNT MODIFICATIONS - 10-7-97
|
|
IF (WHICH_TYPE == 'INV' .OR. WHICH_TYPE == 'CTRL')
|
|
IF PRINT_DISC(PRN_ARR, LASTMODEL) //PRINT A DISCOUNT%
|
|
DISC_ARR := GETDISCTOT(PRN_ARR, I-1)
|
|
PRT_DISC_ARR := PRNT_DISCOUNTS( DISC_ARR, WHCHORDER, SUBTYPE)
|
|
FOR ELM := 1 TO LEN(PRT_DISC_ARR)
|
|
AADD(PBODY_ARR, PRT_DISC_ARR[ELM] )
|
|
AADD(PAMTS_ARR, {})
|
|
CNT_LI_DISC := CNT_LI_DISC + 1
|
|
NEXT
|
|
ENDIF
|
|
ENDIF
|
|
IF NUMPRNT > 1 .AND. SUBPRNT <> 0 .AND. MHOME_LOC_CODE <> 'IOLA' ; // DARLENE 8-21-96
|
|
.AND. MHOME_LOC_CODE <> 'LINDS' // LINDA 8-23-96
|
|
IF WHCHORDER == 'BACKORD' //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
IF MHOME_LOC_CODE = 'PAWNEE' //** P3N 2-23-99
|
|
AADD(PBODY_ARR,SPACE(5)+'-----') //** P3N - 2/23/99
|
|
AADD(PAMTS_ARR, {}) //** P3N - 2/23/99
|
|
AADD(PBODY_ARR,SPACE(5)+STR(SUBPRNT,4))
|
|
AADD(PAMTS_ARR, {}) //** P3N - 2/23/99
|
|
ELSE //** P3N - 2/23/99
|
|
AADD(PBODY_ARR,SPACE(9)+'-----') //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
AADD(PAMTS_ARR, {}) //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
AADD(PBODY_ARR,SPACE(9)+STR(SUBPRNT,4))
|
|
AADD(PAMTS_ARR, {}) //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
ENDIF //** P3N - 2/23/99
|
|
ELSE //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
AADD(PBODY_ARR, '-----' )
|
|
AADD(PAMTS_ARR, {})
|
|
AADD(PBODY_ARR, STR(SUBPRNT,4) )
|
|
AADD(PAMTS_ARR, {})
|
|
ENDIF //** P3N - 9/22/98 HAPPY BDAY CINDY
|
|
NUMBRK ++
|
|
ENDIF
|
|
// MISC PRINTING
|
|
IF WHCHORDER = 'BACKORD' .AND. SUBTYPE == 'BACKORD' //** P3N - 7/7/98
|
|
PRT_BO := .T. //** P3N - 9/24/98
|
|
//** ORDER MISC(CGW0OMI) MISC ORDER LINE ITEMS BO PRINT
|
|
MISC_ARR := BLD_MISCORD('TORD_LINES', PBODY_ARR, PAMTS_ARR, LI_TOTALS, ;
|
|
PRT_AMT, DIDFST, PRT_BO, WHCHORDER, ;
|
|
PARTIAL_INVOICE, REPRINT_INVOICE, ,SUBTYPE )
|
|
PBODY_ARR := MISC_ARR[1]
|
|
PAMTS_ARR := MISC_ARR[2]
|
|
LI_TOTALS := MISC_ARR[3]
|
|
//** ORDER MASTER(CGW0OM) MISC ITEMS (SCREEN 2115) BO PRINT
|
|
MISC_ARR := BLD_ORDMISC( PBODY_ARR, PAMTS_ARR, LI_TOTALS, PRT_AMT, PRT_BO, WHCHORDER, PARTIAL_INVOICE, REPRINT_INVOICE )
|
|
PBODY_ARR := MISC_ARR[1]
|
|
PAMTS_ARR := MISC_ARR[2]
|
|
LI_TOTALS := MISC_ARR[3]
|
|
MISC_ARR := {{}} //** P3N - 12/2/98
|
|
ELSEIF WHCHORDER = 'INV' ; //INVOICE
|
|
.OR. (WHCHORDER = 'OD' .AND. WHICH_TYPE = 'CTRL'); //OD CTRL & DELIVERY
|
|
.OR. (WHCHORDER = 'PROD' .AND. WHICH_TYPE = 'CTRL') //GOLDEN ROD
|
|
PRT_BO := .F. //** P3N - 9/24/98
|
|
IF WHCHORDER = 'INV' .AND. CUR_MAST = 'ORD_MAST' //** P3N - 9/24/98
|
|
PRT_BO := .T. //** P3N - 9/24/98
|
|
ENDIF //** P3N - 9/24/98
|
|
PRT_AMT := DO_WE_PRT_AMT( WHCHORDER, SUBTYPE )
|
|
MISC_ARR := BLD_MISCORD(CUR_MISC, PBODY_ARR, PAMTS_ARR, LI_TOTALS, ;
|
|
PRT_AMT, DIDFST, PRT_BO, WHCHORDER, ;
|
|
PARTIAL_INVOICE, REPRINT_INVOICE, ,SUBTYPE )
|
|
PBODY_ARR := MISC_ARR[1]
|
|
PAMTS_ARR := MISC_ARR[2]
|
|
LI_TOTALS := MISC_ARR[3]
|
|
//** P3N -11/25/98 - INVOICE PROCESSING
|
|
M1 := (CUR_MAST)->MISC_QTY1
|
|
M2 := (CUR_MAST)->MISC_QTY2
|
|
M3 := (CUR_MAST)->MISC_QTY3
|
|
L1 := (CUR_MAST)->MISC_AMT1
|
|
L2 := (CUR_MAST)->MISC_AMT2
|
|
L3 := (CUR_MAST)->MISC_AMT3
|
|
MTOT := (M1*L1) + (M2*L2) + (M3*L3)
|
|
//** PARTIAL / REPRINT INVOICE
|
|
//** IF PARTIAL INVOICE S1, S2, S3 ARE SHIP QTYS
|
|
//** IF REPRINT INVOICE I1, I2, I3 ARE INV QTYS
|
|
MISC_ARR := GETQTYMISC(MORDER_NUM, PARTIAL_INVOICE, REPRINT_INVOICE)
|
|
FOR I := 1 TO LEN(MISC_ARR[1])
|
|
IF MISC_ARR[1,I,5] == 'ORDMISC1'
|
|
S1 := MISC_ARR[1,I,3] //** SHIP QTY
|
|
I1 := MISC_ARR[1,I,6] //** INV QTY
|
|
A1 := MISC_ARR[1,I,4] //** ITEM PRICE
|
|
ELSEIF MISC_ARR[1,I,5] == 'ORDMISC2'
|
|
S2 := MISC_ARR[1,I,3] //** SHIP QTY
|
|
I2 := MISC_ARR[1,I,6] //** INV QTY
|
|
A2 := MISC_ARR[1,I,4] //** ITEM PRICE
|
|
ELSEIF MISC_ARR[1,I,5] == 'ORDMISC3'
|
|
S3 := MISC_ARR[1,I,3] //** SHIP QTY
|
|
I3 := MISC_ARR[1,I,6] //** INV QTY
|
|
A3 := MISC_ARR[1,I,4] //** ITEM PRICE
|
|
ENDIF
|
|
NEXT
|
|
//** STOT CONTAINS THE TOTAL AMOUNT OF SHIPPED ITEMS
|
|
STOT := (S1*A1) + (S2*A2) + (S3*A3)
|
|
//** ITOT CONTAINS THE TOTAL AMOUNT OF INVOICED ITEMS
|
|
ITOT := (I1*A1) + (I2*A2) + (I3*A3)
|
|
//** CALC BO AMTS
|
|
B1 := M1 - S1 //** P3N - 11/25/98
|
|
B2 := M2 - S2 //** P3N - 11/25/98
|
|
B3 := M3 - S3 //** P3N - 11/25/98
|
|
IF (CUR_MAST)->MISC_QTY1 <> 0 .OR. ;
|
|
(CUR_MAST)->MISC_QTY2 <> 0 .OR. ;
|
|
(CUR_MAST)->MISC_QTY3 <> 0
|
|
IF PARTIAL_INVOICE
|
|
LI_TOTALS := LI_TOTALS + STOT
|
|
ELSEIF REPRINT_INVOICE
|
|
LI_TOTALS := LI_TOTALS + ITOT
|
|
ELSE
|
|
LI_TOTALS := LI_TOTALS + MTOT
|
|
ENDIF
|
|
IF NUMPRNT > 1 .AND. SUBPRNT <> 0 .AND. MHOME_LOC_CODE <> 'IOLA' ; // PER DARLENE 8-22-96
|
|
.AND. MHOME_LOC_CODE <> 'LINDS' // PER LINDA 8-23-96
|
|
AADD(PBODY_ARR, '-----' )
|
|
AADD(PAMTS_ARR, {})
|
|
ENDIF
|
|
//**P3N - 11/24/98 ALREADY EXECUTED ABOVE - 40 or 45 LINES
|
|
//**PRT_AMT := DO_WE_PRT_AMT( WHCHORDER, SUBTYPE )
|
|
//** P3N - 11/25/98
|
|
IF (CUR_MAST)->MISC_QTY1 <> 0
|
|
PAMTS := { M1,B1,S1, L1, PRT_AMT, PRT_BO, 0, , I1 }
|
|
AADD(PBODY_ARR, '^' + (CUR_MAST)->MISC_ITEM1)
|
|
AADD(PAMTS_ARR, PAMTS )
|
|
ENDIF
|
|
IF (CUR_MAST)->MISC_QTY2 <> 0
|
|
AADD(PBODY_ARR, ' ' ) //*DBL SPACE MISC ITEMS ON ORDER - PER ELLEN 7-31-97
|
|
AADD(PAMTS_ARR, {})
|
|
PAMTS := { M2,B2,S2, L2, PRT_AMT, PRT_BO, 0, , I2 }
|
|
AADD(PBODY_ARR, '^' + (CUR_MAST)->MISC_ITEM2 )
|
|
AADD(PAMTS_ARR, PAMTS )
|
|
ENDIF
|
|
IF (CUR_MAST)->MISC_QTY3 <> 0
|
|
AADD(PBODY_ARR, ' ' ) //*DBL SPACE MISC ITEMS ON ORDER - PER ELLEN 7-31-97
|
|
AADD(PAMTS_ARR, {})
|
|
PAMTS := { M3,B3,S3, L3, PRT_AMT, PRT_BO, 0, , I3 }
|
|
AADD(PBODY_ARR, '^' + (CUR_MAST)->MISC_ITEM3 )
|
|
AADD(PAMTS_ARR, PAMTS )
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF TOTPRNT <> 0 .AND. MHOME_LOC_CODE <> 'XXXX' ; // darlene 8-22-96
|
|
.AND. MHOME_LOC_CODE <> 'KC' // EDNA on 3-28-96
|
|
IF PRODUCT->(FIELDPOS('ORD_TOTALS')) > 0 //** P3N - 4/7/99
|
|
IF AT('S', PRODUCT->ORD_TOTALS) > 0 .AND. ; //** P3N - 4/7/99
|
|
WHICH_TYPE == 'STORM' //** P3N - 4/7/99
|
|
SUPPRESS_TOT := .T. //** P3N - 4/7/99
|
|
ENDIF //** P3N - 4/7/99
|
|
ENDIF //** P3N - 4/7/99
|
|
IF SUPPRESS_TOT //** P3N - 4/7/99
|
|
ELSEIF INT(TOTPRNT) = TOTPRNT
|
|
AADD(PBODY_ARR, '=====' )
|
|
AADD(PAMTS_ARR, {})
|
|
AADD(PBODY_ARR, STR(TOTPRNT,4) + ' Total' )
|
|
AADD(PAMTS_ARR, {})
|
|
AADD(PBODY_ARR, '=====' )
|
|
ELSE
|
|
AADD(PBODY_ARR, '========' )
|
|
AADD(PAMTS_ARR, {})
|
|
AADD(PBODY_ARR, STR(TOTPRNT,7,2) + ' Total' )
|
|
AADD(PAMTS_ARR, {})
|
|
AADD(PBODY_ARR, '========' )
|
|
ENDIF
|
|
AADD(PAMTS_ARR, {})
|
|
ENDIF
|
|
IF EMPTY(CNT_LI_DISC)
|
|
LI_DISC_PRNT := .F.
|
|
ELSE
|
|
LI_DISC_PRNT := .T.
|
|
ENDIF
|
|
PTAIL_ARR := BLD_TAIL(MORDER_NUM, WHCHORDER, LI_TOTALS, WHICH_TYPE, ;
|
|
SUBTYPE, LI_DISC_PRNT, PARTIAL_INVOICE, MISC_ARR, ;
|
|
PRT_BO, REPRINT_INVOICE )
|
|
//** PAMTS_ARR := RETVARARR[2]
|
|
IF WHCHORDER = 'BACKORD' //** P3N - 9/2/98
|
|
//** PRINT THE TAIL(ORD_MAST->BO_NOTES) INFO FOR BACKORDERS
|
|
ELSEIF PRT_AMT
|
|
ELSE //DO NOT PRINT AMOUNTS NO PTAIL_ARR - EXEC BLD_TAIL TO UPD GL_ARR
|
|
IF (CUR_MAST)->QUOTE_PRIC = 0 //NOT A QUOTED ORDER!!
|
|
IF WHCHORDER = 'INV' .OR. WHCHORDER = 'OD' .OR. ;
|
|
(WHCHORDER = 'PROD' .AND. WHICH_TYPE = 'CTRL') //** P3N - 12/3/98
|
|
**//** ADDED THE "OD" CHECK 9-30-97
|
|
// ON AN INVOICE / OD / DEL / GOLDEN ROD PRINT
|
|
// TOTALS OR NONTX ITEMS - IF PRESENT.
|
|
ELSE
|
|
PTAIL_ARR := {}
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF EMPTY(PBODY_ARR)
|
|
AADD(PBODY_ARR, '^' )
|
|
AADD(PBODY_ARR, ' ' )
|
|
AADD(PAMTS_ARR, NIL)
|
|
AADD(PAMTS_ARR, NIL)
|
|
ENDIF
|
|
PRT_GL_INFO := PRNT_ACCT_INFO( WHCHORDER, WHICH_TYPE, SUBTYPE )
|
|
PROCESS_OO(PHEAD_ARR, PBODY_ARR, PTAIL_ARR, PAMTS_ARR, SUBTYPE, ;
|
|
PRT_GL_INFO, WHCHORDER, PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
|
|
|
|
RETURN
|
|
|
|
|
|
|
|
|
|
****************************************************************
|
|
* Format the line item discount pct and amount
|
|
****************************************************************
|
|
//** DISCOUNT MODIFICATIONS - 10-7-97
|
|
FUNCTION PRNT_DISCOUNTS(DISC_ARR , WHCHORDER, SUBTYPE)
|
|
LOCAL DISC_PCT, I, DISC_TOTAL, RETARR := {}, RETVAL
|
|
LOCAL SP4 := SPACE(07)+'(', SP5 := SPACE(06)+'('
|
|
LOCAL SP6 := SPACE(05)+'(', SP7 := SPACE(04)+'('
|
|
LOCAL SP9 := SPACE(02)+'(', SP8 := SPACE(03)+'('
|
|
FOR I := 1 TO LEN(DISC_ARR)
|
|
DISC_PCT := DISC_ARR[I,2]
|
|
//** RETVAL := SPACE(10) + STR(DISC_PCT, 3,0) + '% ' //** P3N - 09/27/11
|
|
RETVAL := SPACE(08) + STR(DISC_PCT, 5,2) + '% ' //** P3N - 09/27/11
|
|
IF LEN(DISC_ARR) = 1
|
|
RETVAL := RETVAL + 'Total Discount' + SPACE(19)
|
|
ELSE
|
|
RETVAL := RETVAL + 'Discount for ' + DISC_ARR[I,4] //ENTRY SIZE
|
|
ENDIF
|
|
RETVAL := PADL(TRIM(RETVAL), 48, ' ')
|
|
DISC_TOTAL := DISC_ARR[I,3]
|
|
IF DISC_TOTAL < 0 //** P3N - 4/3/98 DISCOUNT CHARGE BACK
|
|
RETVAL := RETVAL + STR(DISC_TOTAL * -1, 12, 2)
|
|
ELSEIF DISC_TOTAL > 99999.99
|
|
RETVAL := RETVAL + SP9 + STR(DISC_TOTAL, 9,2) + ')'
|
|
ELSEIF DISC_TOTAL > 9999.99
|
|
RETVAL := RETVAL + SP8 + STR(DISC_TOTAL, 8,2) + ')'
|
|
ELSEIF DISC_TOTAL > 999.99
|
|
RETVAL := RETVAL + SP7 + STR(DISC_TOTAL, 7,2) + ')'
|
|
ELSEIF DISC_TOTAL > 99.99
|
|
RETVAL := RETVAL + SP6 + STR(DISC_TOTAL, 6,2) + ')'
|
|
ELSEIF DISC_TOTAL > 9.99
|
|
RETVAL := RETVAL + SP5 + STR(DISC_TOTAL, 5,2) + ')'
|
|
ELSE
|
|
RETVAL := RETVAL + SP4 + STR(DISC_TOTAL, 4,2) + ')'
|
|
ENDIF
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
RETVAL := SPACE(22) + RETVAL
|
|
ELSEIF MHOME_LOC_CODE = 'IOLA'
|
|
RETVAL := SPACE(19) + RETVAL
|
|
ELSEIF MHOME_LOC_CODE = 'LINDS'
|
|
RETVAL := SPACE(21) + RETVAL
|
|
ELSEIF MHOME_LOC_CODE = 'PAWNEE'
|
|
RETVAL := SPACE(19) + RETVAL
|
|
ENDIF
|
|
AADD(RETARR, RETVAL)
|
|
NEXT
|
|
IF DO_WE_PRT_AMT( WHCHORDER, SUBTYPE )
|
|
// IF AMOUNTS TO PRINT; RETURN THE DISCOUNT ARRAY!
|
|
ELSE
|
|
RETARR := {}
|
|
ENDIF
|
|
RETURN RETARR
|
|
****************************************************************
|
|
****************************************************************
|
|
****************************************************************
|
|
FUNCTION IS_COD( TERMCODE )
|
|
IF ASCAN( MCOD_ARR, { |X| ALLTRIM( X ) == ALLTRIM( TERMCODE ) } ) > 0
|
|
RETURN .T.
|
|
ELSE
|
|
RETURN .F.
|
|
ENDIF
|
|
|
|
****************************************************************
|
|
* FIND IF ANY ELEMENTS FOR LOCATION TO PRINT
|
|
****************************************************************
|
|
FUNCTION SCAN_PRNARR(PRN_ARR, WHCH_LOCATION)
|
|
LOCAL ELEM := ASCAN (PRN_ARR, {|X| ALLTRIM(X[1]) == ALLTRIM(WHCH_LOCATION) } )
|
|
IF ELEM > 0
|
|
RETURN .T.
|
|
ELSE
|
|
RETURN .F.
|
|
ENDIF
|
|
|
|
****************************************************************
|
|
* READ THE LINE FILE( ORD_LINES/ADDL_LINES) AND PUT ALL APPLICABLE
|
|
* DATA INTO AN ARRAY FOR LATER USE AND PRINTING
|
|
****************************************************************
|
|
|
|
FUNCTION GET_ORD_DATA( MORDER_NUM, SELFILE, PARTIAL_INVOICE, REPRINT_INVOICE )
|
|
LOCAL DATA_ARR := {}, DISC_ARR, ITEM_LINE, MLOC_CODE, PRNT_ARR, DISC_PCT
|
|
LOCAL PRNT_DESARR, PRNT_DESC, PROD_MEMO, RAN_SLID := .F., MGL_LINE_DESC := ''
|
|
LOCAL ITEM_CAT_CODE, CALC_VAR, AMTVAR, GLASS_COPY, ADDL_MODE
|
|
LOCAL PAR_CAT_CODE, SCRNSIZE,I, WHERE_FROM, PROD_CAT_CODE, EQL_PRNT
|
|
LOCAL SV_SEL := SELECT(), MLINE, MLOC_FILE, SEEKKEY, OPTFILE
|
|
LOCAL FULL_HT, FULL_WD, HALF_HT, HALF_WD, FULL_ITEM, HALF_ITEM
|
|
LOCAL PROD_LINE, GLASS_LINE, EXP_LINE, PO_LINE, SASH_LINE, SCREEN_LINE
|
|
LOCAL FACT, HS_PRNT, PRNT_EXP, GLASS_PRNT, STORM_PRNT, FSARR := {}
|
|
LOCAL OR_TOP := 0, OR_BOT := 0, OR_ARR := {}, OR_VAL, OR_DEC := 0
|
|
LOCAL OR_SCR := 0, EX_DESC:= '', DEFAULT_ORIEL := .F., BALANCE_SIZE
|
|
LOCAL OR_DESC:= '', ODD_ORIEL, ELEM, OR_GLASS := 0, O_GLASS_DESC := ''
|
|
LOCAL MGL_NUM, MGL_AMT, EXP_REQ, ADDIT, SEEKPROD, SIZE_ARR, MNUM_GLASS
|
|
LOCAL MULL_REQ := .F., MULL_TYPE, MULL_ARR, S_REC, NUMMULLS, WKL_AMT := 0
|
|
LOCAL EXP_WK_WIDTH := 0, ADJ_WK_WIDTH := 0, ADJ_WK_HEIGHT := 0
|
|
LOCAL DEL_CHG := 0, WORKVAR, IS_ALWAYS_SLID := .F., STDADJ := 0
|
|
LOCAL XFACTOR := 0, _DISC_INFO, THIS_DISC, FLANKSCR := {.F., ''}
|
|
LOCAL GB_CHUNK := '', GLT_WD, GLT_HT, DO_GLASS_PRNT, GLB_WD, GLB_HT
|
|
LOCAL GLT_QTY, GLB_QTY, WK_QTY, OR_REASON, PR_CUSTID, MLINE_DESC
|
|
LOCAL BAL_INFO, TOTWIND, CUT_SPEC_ARR, WORKSPECS, RETVAL := {}
|
|
LOCAL G_ARR := {}, MCODE, MLINE_NUM, MNUM_SCREEN, PAR_LOC_CODE
|
|
LOCAL MWORK_DESC := '', GL311AMT, FRENCHDOOR, ADJ_HT, GETFLANK
|
|
LOCAL DO_SCRNS_ONLY := .F., BYPASS_SCREEN_PAR := .F., WKSPRICE := 0
|
|
LOCAL MPWHERE := 'U' //DEFAULT Line Notes to print UNDER the line item!
|
|
LOCAL SHP_QTY := 0, INV_QTY := 0, QTYARR := {}, BO_ITEM := ''
|
|
LOCAL CK_BKO_SCRNS := .F., SCRNINFO := {} //** P3N - 6/30/98
|
|
LOCAL FLNKSPECS := {}, PARORD, PARLINE //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
STATIC PARGARR := {}, PARPROD, PARELM //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
IF SELFILE == CUR_OL
|
|
WHERE_FROM := 'OL'
|
|
ADDL_MODE := .F.
|
|
OPTFILE := CUR_OO
|
|
ELSEIF SELFILE == CUR_XL
|
|
WHERE_FROM := 'XL'
|
|
ADDL_MODE := .T.
|
|
OPTFILE := CUR_XO
|
|
ENDIF
|
|
FOR I := 1 TO 11 // 11 TYPES OF OUTPUT FORMS
|
|
AADD(DATA_ARR, {}) // 1-Production
|
|
NEXT // 2-frame
|
|
// 3-sash
|
|
// 4-glass
|
|
// 5-screen
|
|
// 6-storms
|
|
// 7-invoice (customer)
|
|
// 8-expander
|
|
// 9-control desk
|
|
//10-SCREENS(when NOT at mfg. loc)
|
|
//11-storms (when NOT at mfg. loc)
|
|
// FILL ARRAY WITH 14-ELEMENTS CONTAINING
|
|
// 1. LOC CODE MLOC_CODE
|
|
// 2. DESCRIPTION PRNT_DESC
|
|
// 3. ITEM LINE PRINT VALUE - NO $ AMOUNTS ITEM_LINE
|
|
// 4. SALE PRICE
|
|
// 5. DISCOUNT PCT/AMOUNT ARRAY
|
|
// 6. MEMO NOTES PROD_MEMO
|
|
// 7. QUANTITY
|
|
// 8. WHERE DID ALL THE INFO COME FROM (IE: "OL" OR "XL")
|
|
// 9. LINE_NUM
|
|
//10. PROD_CODE
|
|
//11. SHP_QTY // ORDER SHIP QTY
|
|
//12. EXTRA WINDOWS
|
|
//13. cut spec array
|
|
//14. line_desc FOR USE ON GLASS / SCREEN COPIES at kansas city
|
|
//15. flag indicating print SCREEN ONLY regardless of the MFG Location
|
|
//16. flag indicating print notes above size prod_line(item_line)
|
|
// Print-'U ' = UNDER LINE, 'A' = ABOVE LINE, 'B' = Beside the LINE
|
|
//17. INV_QTY // ORDER INVOICE QTY
|
|
//
|
|
SELECT (SELFILE)
|
|
SEEK MORDER_NUM
|
|
DO WHILE ORDER_NUM = MORDER_NUM .AND. !EOF()
|
|
IF ADDL_MODE
|
|
// POINT TO PARENT ORDER LINE RECORD
|
|
(CUR_OL)->(DBSEEK( (SELFILE)->ORDER_NUM + STR((SELFILE)->LINE_NUM,3) ) )
|
|
PAR_LOC_CODE := (CUR_OL)->LOC_CODE
|
|
ELSE
|
|
PAR_LOC_CODE := NIL
|
|
IF EMPTY(PRT_NOTES)
|
|
MPWHERE := 'U' // DEFAULT - print the notes under the line item
|
|
ELSE
|
|
MPWHERE := PRT_NOTES // Print the Line Item notes where ?????
|
|
// "A" print ABOVE line item
|
|
// "B" print BESIDE line item
|
|
// "U" print UNDER line item
|
|
ENDIF
|
|
ENDIF
|
|
MLINE := STR(LINE_NUM,3)
|
|
MLINE := TRIM(MLINE)
|
|
// NUMBER OF XTRA WINDOWS MULLED
|
|
IF ADDL_MODE
|
|
XFACTOR := 0
|
|
ELSE
|
|
XFACTOR := CK_XTRAWIND( SELFILE, OPTFILE, ADDL_MODE )
|
|
QTYARR := GET_OSTQTY(SELFILE, , PARTIAL_INVOICE, REPRINT_INVOICE) //** P3N - 5/1/98
|
|
IF EMPTY(QTYARR) //** P3N - 12/3/98
|
|
SHP_QTY := 0 //** P3N - 12/3/98
|
|
INV_QTY := 0 //** P3N - 12/3/98
|
|
ELSE //** P3N - 12/3/98
|
|
SHP_QTY := QTYARR[1] //** P3N - 12/3/98
|
|
INV_QTY := QTYARR[2] //** P3N - 12/3/98
|
|
ENDIF //** P3N - 12/3/98
|
|
ENDIF
|
|
IF !EMPTY(ALT_SPRICE) // WAS ALTERNATE PRICE USED?
|
|
AMTVAR := ALT_SPRICE
|
|
WKSPRICE := (SELFILE)->ALT_SPRICE //** P3N -08/17/11
|
|
ELSE
|
|
WKSPRICE := (SELFILE)->SALE_PRICE //** P3N -08/17/11
|
|
AMTVAR := SALE_PRICE
|
|
IF !ADDL_MODE // GET ANY AMTS DUE FOR NON STD ADDL ITEMS
|
|
SELECT (CUR_XL)
|
|
DONSETORD(3)
|
|
SEEK (SELFILE)->ORDER_NUM + STR((SELFILE)->LINE_NUM,3)
|
|
IF FOUND()
|
|
//** P3N - 11/24/98 ADDRESS ADDL LINE PRICING FOR MULTI QTY PRODS
|
|
//** AMTVAR := AMTVAR + SALE_PRICE
|
|
AMTVAR := AMTVAR + ( SALE_PRICE * XFACTOR )
|
|
ENDIF
|
|
DONSETORD(1)
|
|
SELECT (CUR_OL)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//** USE THE QUOTED PRICE FOR DEL CHARG CALCS BELOW
|
|
IF EMPTY((CUR_MAST)->QUOTE_PRIC) //** P3N - 08/17/11
|
|
//** NO QUOTED PRICE - CONTINUE W/LINE ITEM AMT IN WKSPRICE
|
|
ELSE //** P3N - 08/17/11
|
|
WKSPRICE := (CUR_MAST)->QUOTE_PRIC //** P3N - 08/17/11
|
|
ENDIF
|
|
|
|
_DISC_INFO := ITEMDISC(PARTIAL_INVOICE, REPRINT_INVOICE, SELFILE)
|
|
// P3N - PER ELLEN - 6/3/98
|
|
**IF EMPTY( (SELFILE)->ALT_SPRICE ) // DO NOT APPLY A DISCOUNT ON ALT PRICE!
|
|
DISC_PCT := (SELFILE)->DISCOUNT //LINE ITEM DISCOUNT PCT - USER ENTERED
|
|
IF EMPTY(DISC_PCT)
|
|
DISC_PCT := (SELFILE)->SYS_DISC //LINE ITEM DISCOUNT PCT - SYSTEM GENERATED
|
|
ENDIF
|
|
**ELSE
|
|
** DISC_PCT := 0
|
|
** _DISC_INFO[2] := 0
|
|
**ENDIF
|
|
DISC_ARR := {DISC_PCT, ; //LINE ITEM DISCOUNT PCT
|
|
_DISC_INFO[2], ; //LINE ITEM DISCOUNT AMT
|
|
(SELFILE)->ENTRY_SIZE, ; //ENTRY SIZE OF DISCOUNT ITEM
|
|
(SELFILE)->HOW_MEAS } //HOW MEASURE
|
|
SELECT PRODUCT
|
|
SEEK (SELFILE)->PROD_CODE
|
|
MGL_NUM := GL_NUM
|
|
MLOC_CODE := (SELFILE)->LOC_CODE
|
|
CUST_MAST->(DBSEEK((CUR_MAST)->CUST_ID ))
|
|
IF !EMPTY(CUST_MAST->GL_CODE)
|
|
MGL_NUM := ALLTRIM(MGL_NUM)+CUST_MAST->GL_CODE //** P3N - 02/01/07 ABW GL FOR INTER COMPANY
|
|
//**MGL_NUM := SUBS(MGL_NUM,1,2) + TRIM(SUBS(MGL_NUM,4)) + ' '+ CUST_MAST->GL_CODE
|
|
ENDIF
|
|
ITEM_CAT_CODE = GET_CATCODE( (SELFILE)->PROD_CODE)
|
|
PAR_CAT_CODE = GET_CATCODE( (SELFILE)->PAR_PROD)
|
|
SELECT (SELFILE)
|
|
PRNT_DESC := ALLTRIM((SELFILE)->ITEM_DESC)
|
|
IF AT('EXPANDER' , PRNT_DESC) > 0 ;
|
|
.AND. AT('NO~EXPANDER' , PRNT_DESC) = 0 ;
|
|
.AND. ( ITEM_CAT_CODE = 'STORMS' .OR. ITEM_CAT_CODE = 'STPW' .OR. ITEM_CAT_CODE = 'EXPANDR' ) //** P3N - 9/29/99
|
|
//**.AND. ( ITEM_CAT_CODE = 'STORMS' .OR. ITEM_CAT_CODE = 'STPW' ) //** P3N - 9/29/99
|
|
EXP_REQ := .T.
|
|
ELSE
|
|
EXP_REQ := .F.
|
|
ENDIF
|
|
// HEADER LINE FROM OPTIONS SELECTED
|
|
IF SELFILE = CUR_XL
|
|
(CUR_OL)->(DBSEEK( (SELFILE)->ORDER_NUM + STR( (SELFILE)->LINE_NUM,3) ) )
|
|
ELSE // IF ORDER LINES, CHECK IF ANY NON-STD OPTION ADDL_LINES
|
|
//** P3N - 5/17/99 REDUNDANT OPTION INFORMATION PRINTING WHEN NOT NEEDED
|
|
//** COMMENTED OUT PER SCOTT IN KC
|
|
//**SELECT (CUR_XL)
|
|
//**SEEKKEY = (SELFILE)->ORDER_NUM
|
|
//**SEEK SEEKKEY
|
|
//**DO WHILE ORDER_NUM == (SELFILE)->ORDER_NUM .AND. !EOF()
|
|
//** IF LINE_NUM == (SELFILE)->LINE_NUM .AND. STD_OPTS$'N'
|
|
//** PRNT_DESC := PRNT_DESC + CHR(13) + CHR(10)
|
|
//** PRNT_DESC := PRNT_DESC + '**~(' + ;
|
|
//** ALLTRIM(ITEM_DESC) + ')~**'
|
|
//** ENDIF
|
|
//** SKIP 1
|
|
//**ENDDO
|
|
//**SELECT (SELFILE)
|
|
ENDIF
|
|
GLASS_COPY := IF( (SELFILE)->GLASSORDER='Y', .T., .F.)
|
|
SELECT (SELFILE)
|
|
ITEM_LINE := ''
|
|
IF ( (SELFILE)->HOW_MEAS = 'NS' .AND. EMPTY((SELFILE)->PAR_PROD));
|
|
.OR. (SELFILE)->HOW_MEAS = 'BW' .OR. ;
|
|
(SELFILE)->HOW_MEAS = 'WO' .OR. (SELFILE)->IN_STOCK$'Y'
|
|
ITEM_LINE := ITEM_LINE + ' ' + STRTRAN( ALLTRIM( (SELFILE)->ENTRY_SIZE ), ' ','~')
|
|
ELSE
|
|
ITEM_LINE := ITEM_LINE + SPACE(11)
|
|
ENDIF
|
|
IF (SELFILE)->(FIELDPOS('GLINE_DESC')) > 0 //** P3N - 6/7/99
|
|
MGL_LINE_DESC := TRIM((SELFILE)->GLINE_DESC) //** P3N - 6/7/99
|
|
ENDIF //** P3N - 6/7/99
|
|
SASH_LINE := ' ' //** P3N - 5/25/00
|
|
IF !EMPTY( (SELFILE)->LINE_DESC )
|
|
MLINE_DESC := ALLTRIM( (SELFILE)->LINE_DESC ) //** P3N - 5/2/00 CHANGED BACK FOR LINE ATTRIB OPTS
|
|
IF AT('I', (SELFILE)->LDESC_COPY ) > 0 //** P3N - 5/2/00 SASH COPY DESC
|
|
SASH_LINE := MLINE_DESC //** P3N - 5/2/00
|
|
ENDIF //** P3N - 5/2/00
|
|
//**MLINE_DESC := ALLTRIM( (SELFILE)->LINE_DESC )+' '+MGL_LINE_DESC //** P3N - 6/7/99
|
|
ITEM_LINE := ITEM_LINE + ' '
|
|
// 12-4-96 - SAVE LINE_DESC UNTIL LATER PER LINDA AT LINDS ??
|
|
ITEM_LINE := ITEM_LINE + '~' + MLINE_DESC + ' '
|
|
MLINE_DESC := ''
|
|
ELSE //** P3N - 6/7/99
|
|
IF EMPTY(ITEM_LINE) //** P3N - 6/9/99
|
|
ITEM_LINE := MGL_LINE_DESC //** P3N - 6/7/99
|
|
ELSE //** P3N - 6/9/99
|
|
//** ITEM_LINE := ITEM_LINE + MGL_LINE_DESC //** P3N - 6/9/99
|
|
ITEM_LINE := ITEM_LINE +'~~'+ MGL_LINE_DESC //** P3N -10/19/99
|
|
ENDIF //** P3N - 6/9/99
|
|
ENDIF
|
|
IF EMPTY( (SELFILE)->LINE_NOTES)
|
|
PROD_MEMO := NIL
|
|
ELSE
|
|
PROD_MEMO := (SELFILE)->LINE_NOTES
|
|
ENDIF
|
|
IF AMTVAR = 0 .AND. (CUR_MAST)->QUOTE_PRIC <> 0
|
|
//** P3N - 7/28/98 - PRINT THE CODING ON QUOTED ORDERS
|
|
//**MGL_AMT := (SELFILE)->QUANTITY * (SELFILE)->CALC_PRICE
|
|
MGL_AMT := (CUR_MAST)->QUOTE_PRIC
|
|
//** P3N - 12/7/98 PARTIAL INVOICE PROCESSING
|
|
ELSEIF PARTIAL_INVOICE //** P3N - 12/7/98
|
|
MGL_AMT := SHP_QTY * AMTVAR //** P3N - 12/7/98
|
|
ELSEIF REPRINT_INVOICE //** P3N - 12/7/98
|
|
MGL_AMT := INV_QTY * AMTVAR //** P3N - 12/7/98
|
|
ELSE
|
|
MGL_AMT := (SELFILE)->QUANTITY * AMTVAR
|
|
ENDIF
|
|
// CALC THE SYSTEM DEALER PICKUP DISCOUNT
|
|
// FILL THE GL_ARR WITH ALLOCATION INFORMATION
|
|
// 09-5-95 - EXCLUDE INTERCOMPANY LINES FROM DELIVERY CHARGE
|
|
// 09-5-95 - SHOULD ANY OTHERS BE EXCLUDED?
|
|
// 03-31-97 - EXCLUDE KC BUILD TO STOCK ITEMS.
|
|
IF MHOME_LOC_CODE = 'IOLA'
|
|
IF (CUR_MAST)->PICK_DEL$'D' ;
|
|
.AND. !(SELFILE)->PRICE_SHT$'I' ;
|
|
.AND. (CUR_MAST)->CUST_ID <> '20187000' //** KC LOCATION
|
|
CATEGORY->(DBSEEK( ITEM_CAT_CODE ))
|
|
IF EMPTY(CATEGORY->FRT_AMT) //** P3N - 08/08/11
|
|
//** USE THE CATEGORY PCT TO CALC DELIVERY CHARGE ON ORDER SUBTOTAL
|
|
//**DEL_CHG := (CATEGORY->FRT_PCT / 100 ) * (SELFILE)->SALE_PRICE
|
|
//**WKL_AMT := (SELFILE)->SALE_PRICE / (1+(CATEGORY->FRT_PCT / 100 ))
|
|
//**WKL_AMT := (SELFILE)->SALE_PRICE - WKL_AMT //** SINGLE ITEM DEL CHG
|
|
WKL_AMT := WKSPRICE / (1+(CATEGORY->FRT_PCT / 100 )) //** P3N - 08/17/11
|
|
WKL_AMT := WKSPRICE - WKL_AMT //** SINGLE ITEM DEL CHG //** P3N - 08/17/11
|
|
DEL_CHG := WKL_AMT * (SELFILE)->QUANTITY
|
|
ELSE
|
|
DEL_CHG := CATEGORY->FRT_AMT * (XFACTOR+1) * (SELFILE)->QUANTITY
|
|
ENDIF
|
|
ELSE
|
|
DEL_CHG := 0
|
|
ENDIF
|
|
ELSEIF MHOME_LOC_CODE = 'KC'
|
|
IF (CUR_MAST)->PICK_DEL$'D' ;
|
|
.AND. !(SELFILE)->PRICE_SHT$'I' ;
|
|
.AND. IS_DELIVERED() //IS THIS ORDER ASSESSED A DELIVERY CHARGE???
|
|
CATEGORY->(DBSEEK( ITEM_CAT_CODE ))
|
|
IF EMPTY(CATEGORY->FRT_AMT) //** P3N - 08/08/11
|
|
//** USE THE CATEGORY PCT TO CALC DELIVERY CHARGE ON ORDER SUBTOTAL
|
|
//** DEL_CHG := (CATEGORY->FRT_PCT / 100 ) * (SELFILE)->SALE_PRICE
|
|
//**WKL_AMT := (SELFILE)->SALE_PRICE / (1+(CATEGORY->FRT_PCT / 100 ))
|
|
//**WKL_AMT := (SELFILE)->SALE_PRICE - WKL_AMT //** SINGLE ITEM DEL CHG
|
|
WKL_AMT := WKSPRICE / (1+(CATEGORY->FRT_PCT / 100 )) //** P3N - 08/17/11
|
|
WKL_AMT := WKSPRICE - WKL_AMT //** SINGLE ITEM DEL CHG //** P3N - 08/17/11
|
|
DEL_CHG := WKL_AMT * (SELFILE)->QUANTITY
|
|
ELSE
|
|
DEL_CHG := CATEGORY->FRT_AMT * (XFACTOR+1) * (SELFILE)->QUANTITY
|
|
ENDIF
|
|
ELSE
|
|
DEL_CHG := 0
|
|
ENDIF
|
|
ELSEIF (CUR_MAST)->PICK_DEL$'D' ;
|
|
.AND. !(SELFILE)->PRICE_SHT$'I'
|
|
CATEGORY->(DBSEEK( ITEM_CAT_CODE ))
|
|
IF EMPTY(CATEGORY->FRT_AMT) //** P3N - 08/08/11
|
|
//** USE THE CATEGORY PCT TO CALC DELIVERY CHARGE ON ORDER SUBTOTAL
|
|
//**DEL_CHG := (CATEGORY->FRT_PCT / 100 ) * (SELFILE)->SALE_PRICE
|
|
//**WKL_AMT := (SELFILE)->SALE_PRICE / (1+(CATEGORY->FRT_PCT / 100 ))
|
|
//**WKL_AMT := (SELFILE)->SALE_PRICE - WKL_AMT //** SINGLE ITEM DEL CHG
|
|
WKL_AMT := WKSPRICE / (1+(CATEGORY->FRT_PCT / 100 )) //** P3N - 08/17/11
|
|
WKL_AMT := WKSPRICE - WKL_AMT //** SINGLE ITEM DEL CHG //** P3N - 08/17/11
|
|
DEL_CHG := WKL_AMT * (SELFILE)->QUANTITY
|
|
ELSE
|
|
DEL_CHG := CATEGORY->FRT_AMT * (XFACTOR+1) * (SELFILE)->QUANTITY
|
|
ENDIF
|
|
ELSE
|
|
DEL_CHG := 0
|
|
ENDIF
|
|
**********************************************************
|
|
* GL 521 IS THE DELIVERY CHARGE - LineItem category calc [$ frt_amt or % frt_pct]
|
|
**********************************************************
|
|
|
|
IF ADDL_MODE
|
|
// NO DELIVERY CHARGE ON ADDL LINE ITEM (XL)
|
|
ELSEIF EMPTY( (CUR_MAST)->FUEL_CHRG ) //** P3N - 08/08/11
|
|
IF DEL_CHG <> 0 .AND. MGL_AMT <> 0
|
|
ELEM := ASCAN(GL_ARR, {|X| X[1] = '521 '} )
|
|
IF ELEM > 0
|
|
GL_ARR[ELEM, 2] := GL_ARR[ELEM, 2]+ DEL_CHG
|
|
ELSE //INCLUDE FOR ALLOC.
|
|
AADD(GL_ARR, { '521 ', DEL_CHG, , 'I' } )
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
DEL_CHG := 0 //** P3N - 08/08/11
|
|
ENDIF
|
|
|
|
**********************************************************
|
|
* GL 311 IS THE INSTALLATION ADJ.
|
|
* GL 361 IS THE INSTALLATION ADJ (as of 02/01/07)
|
|
**********************************************************
|
|
GL311AMT := (SELFILE)->GL311_AMT + (SELFILE)->GL311_ADJ
|
|
IF GL311AMT <> 0 .AND. MGL_AMT <> 0
|
|
ELEM := ASCAN(GL_ARR, {|X| X[1] = '361 '} ) //** P3N - 01/30/07
|
|
//**ELEM := ASCAN(GL_ARR, {|X| X[1] = '311 '} ) //** P3N - 01/30/07
|
|
IF ELEM > 0
|
|
GL_ARR[ELEM, 2] := GL_ARR[ELEM, 2]+ GL311AMT
|
|
ELSE //INCLUDE FOR ALLOC.
|
|
AADD(GL_ARR, { '361 ', GL311AMT, , 'I' } ) //** P3N - 01/30/07
|
|
//** AADD(GL_ARR, { '311 ', GL311AMT, , 'I' } ) //** P3N - 01/30/07
|
|
ENDIF
|
|
ENDIF
|
|
//* AMOUNT ALREADY ALLOCATED TO THE GL ACCT. FOR THE PRIMARY LINE ITEM!
|
|
IF ADDL_MODE
|
|
MGL_AMT := 0
|
|
ENDIF
|
|
//* AMOUNT ALLOCATED TO THE GL ACCT. FOR THE LINE ITEM
|
|
IF MGL_AMT <> 0
|
|
ELEM := ASCAN(GL_ARR, {|X| X[1] = MGL_NUM} )
|
|
// CHECK FOR USER LINE DISCOUNTS OR SYSTEM CALC DISCOUNTS
|
|
//** P3N - 11/24/98 - COMMENTED OUT BECAUSE IT IS ALREADY
|
|
//** EXECUTED ABOVE
|
|
//**_DISC_INFO := ITEMDISC()
|
|
THIS_DISC := _DISC_INFO[2]
|
|
IF ELEM > 0
|
|
GL_ARR[ELEM, 2] := GL_ARR[ELEM, 2] + MGL_AMT - THIS_DISC - DEL_CHG - GL311AMT
|
|
ELSE // PRODUCT ALLOC.
|
|
AADD(GL_ARR, { MGL_NUM + ' ' , MGL_AMT - THIS_DISC - DEL_CHG - GL311AMT , , 'P'} )
|
|
ENDIF
|
|
ENDIF
|
|
|
|
**** CHECK IF RANCH SLIDER, BECAUSE THE WIDTH/HEIGHT WILL BE REVERSED
|
|
**** FOR PRODUCTION PROCESSING
|
|
**** IF ALWAYS SLIDER (C900) THEN DON'T REVERSE, BUT HALF SIZE WIDTH
|
|
**** MAYBE don't check screens for sliders per darlene 6-23-95??
|
|
RAN_SLID := CK_SLIDER(SELFILE, OPTFILE, ADDL_MODE)
|
|
IS_ALWAYS_SLID := ALWAYS_SLIDER(SELFILE, OPTFILE, ADDL_MODE)
|
|
|
|
***** SPECIAL ORIEL PROCESSING HERE
|
|
|
|
ODD_ORIEL := .T.
|
|
OR_DESC := ''
|
|
O_GLASS_DESC := ''
|
|
OR_SCR := 0
|
|
OR_ARR := CK_ORIEL(ITEM_CAT_CODE, SELFILE, OPTFILE, ADDL_MODE, RAN_SLID, IS_ALWAYS_SLID )
|
|
OR_TOP := OR_ARR[1]
|
|
OR_BOT := OR_ARR[2]
|
|
BALANCE_SIZE := OR_ARR[3]
|
|
OR_REASON := OR_ARR[4]
|
|
OR_SCR := OR_ARR[5]
|
|
OR_GLASS := OR_ARR[6]
|
|
ODD_ORIEL := OR_ARR[7]
|
|
DEFAULT_ORIEL := OR_ARR[8]
|
|
STDADJ := 0 //** P3N - 07/05/01
|
|
IF (SELFILE)->HOW_MEAS == 'NS' //** P3N - 07/05/01
|
|
//** STD SIZE ADJ FOR NOM SIZE - PAWNEE RE: DARYL //** P3N - 07/05/01
|
|
STDADJ := OR_ARR[9] //** STD SIZE ADJ - NOM SIZE ONLY
|
|
ENDIF //** P3N - 07/05/01
|
|
// OR_REASON RESULTS
|
|
// 'BAL ADJ'
|
|
// 'NO ORIEL'
|
|
// 'ATT CODE'
|
|
// 'BAL ADJ'
|
|
// 'DEFAULT'
|
|
// EMPTY CUTTING SPECS FOR THIS LINE ITEM
|
|
IF !ADDL_MODE
|
|
CUT_SPEC_ARR := ACLONE(GET_CUT_SPEC( (SELFILE)->PROD_CODE ) )
|
|
CATEGORY->(DBSEEK( ITEM_CAT_CODE ) )
|
|
MCODE := (SELFILE)->PROD_CODE
|
|
ELSE
|
|
IF ITEM_CAT_CODE = 'EXPANDR' //** P3N - 9/29/99
|
|
CUT_SPEC_ARR := ACLONE(GET_CUT_SPEC( (SELFILE)->PROD_CODE, SELFILE, (SELFILE)->QUANTITY, XFACTOR, G_ARR)) //** P3N - 9/29/99
|
|
ELSE //** P3N - 9/29/99
|
|
CUT_SPEC_ARR := ACLONE(GET_CUT_SPEC( (SELFILE)->PAR_PROD ) )
|
|
ENDIF //** P3N - 9/29/99
|
|
CATEGORY->(DBSEEK( PAR_CAT_CODE ) )
|
|
MCODE := (SELFILE)->PAR_PROD
|
|
ENDIF
|
|
IF !EMPTY(CUT_SPEC_ARR) .OR. !EMPTY(CATEGORY->HS_RULE) // NEED GET_ARRAY FOR CUTTING SPEC RULE AND HALF SIZE RULE EVALUATION
|
|
MLINE_NUM := STR((SELFILE)->LINE_NUM,3)
|
|
RETVAL = BUILD_GETARR( MCODE, 1, MORDER_NUM, MLINE_NUM, , .F., ADDL_MODE, PR_CUSTID, .F., SELFILE )
|
|
G_ARR = RETVAL[1]
|
|
// EVALUATED CUTTING SPECS FOR THIS LINE ITEM
|
|
IF ITEM_CAT_CODE = 'EXPANDR' //** P3N - 9/30/99
|
|
ELSE //** P3N - 9/30/99
|
|
CUT_SPEC_ARR := ACLONE(GET_CUT_SPEC( MCODE, SELFILE, (SELFILE)->QUANTITY, XFACTOR, G_ARR ))
|
|
ENDIF //** P3N - 9/30/99
|
|
IF ADDL_MODE //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
ELSE //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
PARORD := (SELFILE)->ORDER_NUM //** P3N - 7/22/99
|
|
PARPROD := (SELFILE)->PROD_CODE //** P3N - 7/22/99
|
|
PARLINE := STR((SELFILE)->LINE_NUM) //** P3N - 7/22/99
|
|
IF EMPTY(PARGARR) //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
AADD(PARGARR, {PARORD, PARPROD, PARLINE, ACLONE(G_ARR)}) //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
ELSEIF PARORD == PARGARR[1,1] //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
IF ASCAN(PARGARR,{|X| X[1] == PARORD .AND. ;
|
|
X[2] == PARPROD .AND. ;
|
|
X[3] == PARLINE } ) > 0
|
|
ELSE //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
AADD(PARGARR, {PARORD, PARPROD, PARLINE, ACLONE(G_ARR)}) //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
ENDIF //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
ELSE //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
PARGARR := {} //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
AADD(PARGARR, {PARORD, PARPROD, PARLINE, ACLONE(G_ARR)}) //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
ENDIF //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
ENDIF //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
ELSE
|
|
PARORD := (SELFILE)->ORDER_NUM //** P3N - 7/22/99
|
|
G_ARR := {}
|
|
IF EMPTY(PARGARR) //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
ELSEIF PARORD == PARGARR[1,1] //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
ELSE //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
PARGARR := {} //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
ENDIF //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
ENDIF
|
|
// CHECK THE PRINTING OF HALF SIZE INFORMATION
|
|
// (IN STOCK ITEMS - NO PRINT, EQUAL LITE MSG IF NORMALLY AN ORIEL.)
|
|
WK_WIDTH := (SELFILE)->PRD_WIDTH
|
|
WK_HEIGHT := (SELFILE)->PRD_HEIGHT
|
|
EQL_PRNT := '' //** P3N - 6/7/99
|
|
HS_PRNT := ''
|
|
PROD_LINE := ''
|
|
IF (SELFILE)->ORIEL_SIZE$'Y' .AND. ;
|
|
OR_TOP = 1 .AND. OR_BOT = 1
|
|
HS_PRNT := CK_HALF_SIZE(ITEM_CAT_CODE, SELFILE, OPTFILE, {0,0}, RAN_SLID, WK_WIDTH, WK_HEIGHT, EXP_REQ, IS_ALWAYS_SLID, G_ARR )
|
|
EQL_PRNT := TRIM(PROD_LINE) + ' ** Equal Lites ** '
|
|
ELSE
|
|
HS_PRNT := CK_HALF_SIZE(ITEM_CAT_CODE, SELFILE, OPTFILE, OR_ARR, RAN_SLID, WK_WIDTH, WK_HEIGHT, EXP_REQ, IS_ALWAYS_SLID, G_ARR)
|
|
IF OR_TOP <> OR_BOT
|
|
HS_PRNT := CK_HALF_SIZE(ITEM_CAT_CODE, SELFILE, OPTFILE, OR_ARR, RAN_SLID, WK_WIDTH, WK_HEIGHT, EXP_REQ, IS_ALWAYS_SLID, G_ARR)
|
|
ENDIF
|
|
ENDIF
|
|
IF (SELFILE)->HOW_MEAS = 'BW' .OR. ;
|
|
(SELFILE)->HOW_MEAS = 'WO' .OR. ;
|
|
((SELFILE)->HOW_MEAS = 'NS' .AND. EMPTY((SELFILE)->PAR_PROD)).OR. ;
|
|
(SELFILE)->IN_STOCK$'Y'
|
|
PROD_LINE := TRIM(ITEM_LINE)
|
|
//** P3N 11/27/01 - IOLA PRINT ENTRY SIZE FOR PRODUCTION FRAME FOR CATEGORY TRAP (TRAPEZOID)
|
|
IF ALLTRIM( ITEM_CAT_CODE ) == 'TRAP' //** P3N - 11/27/01
|
|
PROD_LINE := TRIM(PROD_LINE) + ' ' + ALLTRIM((SELFILE)->ENTRY_SIZE) //** P3N - 11/27/01
|
|
PROD_LINE := PROD_LINE + ' ' + ALLTRIM((SELFILE)->LINE_DESC) //** P3N - 11/27/01
|
|
ELSE
|
|
//** 6/7/99 - P3N - IOLA HALF SIZE PRINT ON NOMINAL SIZE PRODUCTION FRAME
|
|
IF MHOME_LOC_CODE = 'IOLA'
|
|
PROD_LINE := TRIM(PROD_LINE) + ' ' + PRNT_SIZE(WK_WIDTH, WK_HEIGHT)
|
|
PROD_LINE := TRIM(PROD_LINE) + ' ' + ALLTRIM(HS_PRNT)
|
|
PROD_LINE := TRIM(PROD_LINE) + ' ' + MGL_LINE_DESC //** P3N - 12/13/01
|
|
ENDIF
|
|
ENDIF //** P3N - 11/27/01
|
|
ELSE
|
|
//** P3N - 11/23/98 ADDRESS EXPANDER WIDTH FOR SLIDERS - IOLA
|
|
EXP_WK_WIDTH := (SELFILE)->ACT_WIDTH
|
|
IF RAN_SLID
|
|
//** P3N - 12/11/98 ADDRESS PAWNEE REQUEST TO PRINT SIZE BEFORE ITEM
|
|
//** PROD_LINE := TRIM(ITEM_LINE) + ' ' + PRNT_SIZE(WK_HEIGHT, WK_WIDTH)
|
|
PROD_LINE := PRNT_SIZE(WK_HEIGHT, WK_WIDTH)
|
|
//** P3N - 5/26/99 ADDRESS 1/2 SIZE PRINT FOR LINE DESC - IOLA
|
|
IF !EMPTY(HS_PRNT) .AND. (SELFILE)->IN_STOCK = 'N'
|
|
PROD_LINE := TRIM(PROD_LINE) + ' ' + ALLTRIM(HS_PRNT)
|
|
ENDIF
|
|
PROD_LINE := TRIM(PROD_LINE) + ' ' + ALLTRIM(ITEM_LINE)
|
|
//** P3N 11/27/01 - IOLA PRINT ENTRY SIZE FOR PRODUCTION FRAME FOR CATEGORY TRAP (TRAPEZOID)
|
|
ELSEIF ALLTRIM( ITEM_CAT_CODE ) == 'TRAP' //** P3N - 11/27/01
|
|
PROD_LINE := TRIM(PROD_LINE) + ' ' + ALLTRIM((SELFILE)->ENTRY_SIZE) //** P3N - 11/27/01
|
|
PROD_LINE := PROD_LINE + ' ' + ALLTRIM((SELFILE)->LINE_DESC) //** P3N - 11/27/01
|
|
ELSE
|
|
//** P3N - 12/11/98 ADDRESS PAWNEE REQUEST TO PRINT SIZE BEFORE ITEM
|
|
//** PROD_LINE := TRIM(ITEM_LINE) + ' ' + PRNT_SIZE(WK_WIDTH, WK_HEIGHT)
|
|
PROD_LINE := PRNT_SIZE(WK_WIDTH, WK_HEIGHT)
|
|
//** P3N - 5/26/99 ADDRESS 1/2 SIZE PRINT FOR LINE DESC - IOLA
|
|
IF !EMPTY(HS_PRNT) .AND. (SELFILE)->IN_STOCK = 'N'
|
|
PROD_LINE := TRIM(PROD_LINE) + ' ' + ALLTRIM(HS_PRNT)
|
|
ENDIF
|
|
//** P3N - 12/13/01 ADDRESS DARLENE'S PRODUCTION
|
|
IF MHOME_LOC_CODE = 'IOLA'
|
|
IF AT(ALLTRIM(MGL_LINE_DESC),ALLTRIM(ITEM_LINE)) > 0 //** P3N - 01/25/02 - ADDRESS DARLENE'S FRAME PRINTING
|
|
PROD_LINE := TRIM(PROD_LINE)+'~'+ALLTRIM(ITEM_LINE) //** P3N - 01/25/02
|
|
ELSE //** P3N - 01/25/02
|
|
PROD_LINE := TRIM(PROD_LINE)+'~'+MGL_LINE_DESC+ '~' + ALLTRIM(ITEM_LINE)
|
|
ENDIF //** P3N - 01/25/02
|
|
ELSE
|
|
PROD_LINE := TRIM(PROD_LINE) + ' ' + ALLTRIM(ITEM_LINE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//* PERRY - 2-11-98
|
|
FRENCHDOOR := CK_FRENCH(SELFILE, OPTFILE, ADDL_MODE)
|
|
IF (SELFILE)->IN_STOCK$'N'
|
|
IF FRENCHDOOR
|
|
//* PERRY - 2-11-98
|
|
// DO NOT PRINT THE (OS) SIZE FOR FRENCH DOORS -
|
|
// IT WILL BE ENTERED BY THE USER IN THE OPTIONS, OR LINE MEMO
|
|
ELSEIF ALLTRIM(ITEM_CAT_CODE) == 'STD'; // STORM DOORS
|
|
.AND. (SELFILE)->HOW_MEAS = 'OS'
|
|
PROD_LINE := TRIM(PROD_LINE) + ;
|
|
STRTRAN(' (OS=' + ALLTRIM( (SELFILE)->ENTRY_SIZE) + ') ', ' ','~')
|
|
ENDIF
|
|
ELSE
|
|
// ONLY IN_STOCK WINDOWS FIT HERE!
|
|
PROD_LINE := TRIM(PROD_LINE) + ' (S)'
|
|
ITEM_LINE := TRIM(ITEM_LINE) + ' (S)'
|
|
ENDIF
|
|
**** CHECK IF ANY MULLS - CENTER VERTICAL WILL CALC BREAKDOWN, AND
|
|
**** WILL 2 PIECES GLASS / SASH
|
|
**** ANY OTHER 'MULL LOC' WILL HAVE NO SASH/GLASS
|
|
IF ITEM_CAT_CODE = 'STPW' .OR. PAR_CAT_CODE = 'STPW'
|
|
MULL_ARR := CK_MULLS(SELFILE, OPTFILE)
|
|
MULL_REQ := MULL_ARR[1]
|
|
MULL_TYPE := MULL_ARR[2]
|
|
ENDIF
|
|
// PRINT THE ORIEL BANNER
|
|
PROD_LINE := PROD_LINE + EQL_PRNT //** P3N - 6/7/99
|
|
IF (SELFILE)->ORIEL_SIZE$'Y' ;
|
|
.AND. !(OR_TOP = 1 .AND. OR_BOT = 1)
|
|
PROD_LINE := TRIM(PROD_LINE) + ' **~Oriel~** '
|
|
ENDIF
|
|
IF BALANCE_SIZE <> NIL
|
|
//**BAL_INFO := ' USE~' + ALLTRIM(BALANCE_SIZE) + '"~BALANCE '
|
|
//** P3N - 11/19/99 ADDRESSED BALANCE INFO AT PAWNEE
|
|
IF MHOME_LOC_CODE = 'PAWNEE'
|
|
BAL_INFO := '~' + ALLTRIM(BALANCE_SIZE) + '"~BAL '
|
|
ELSE
|
|
BAL_INFO := ' USE~' + ALLTRIM(BALANCE_SIZE) + '"~BALANCE '
|
|
ENDIF
|
|
ELSE
|
|
BAL_INFO := ''
|
|
ENDIF
|
|
PROD_LINE := TRIM(PROD_LINE) + BAL_INFO
|
|
IF CK_SPEC_PRICE( (CUR_MAST)->CUST_ID, (SELFILE)->PROD_CODE, (CUR_MAST)->ORDER_DATE, 'CUST_BP' )
|
|
PR_CUSTID := (CUR_MAST)->CUST_ID
|
|
ELSE
|
|
PR_CUSTID := NIL
|
|
ENDIF
|
|
// 1. SET UP THE PRODUCTION CONTROL CHUNK
|
|
// IF MANUFACTURED IN HOUSE, OTHER "CHUNKS" WILL UTILIZE THIS INFO.
|
|
// IF MADE IN LINDSBORG BUT STOCKED IN KC AND ORDERED IN KC, TREAT AS STOCK
|
|
IF MLOC_CODE = MHOME_LOC_CODE
|
|
ELSEIF IN_STOCK$'N'
|
|
PROD_LINE := TRIM(PROD_LINE) + ' (' + (SELFILE)->HOW_MEAS + ')~' ;
|
|
+ STRTRAN( TRIM( (SELFILE)->ENTRY_SIZE), ' ','~' )
|
|
ENDIF
|
|
// IF NOT ADDL MODE PUT INTO DATA_ARR[1]
|
|
// IF ADDL_MODE AND MADE HERE, BUT PARENT IS MADE ELSEWHERE
|
|
// PUT IT IN DATA_ARR[1]
|
|
ADDIT := .F.
|
|
IF !ADDL_MODE
|
|
IF MLOC_CODE = MHOME_LOC_CODE
|
|
ADDIT := .T.
|
|
ENDIF
|
|
ELSE // ADDL_MODE
|
|
IF MLOC_CODE = MHOME_LOC_CODE ;
|
|
.AND. PAR_LOC_CODE <> MHOME_LOC_CODE
|
|
ADDIT := .T.
|
|
ENDIF
|
|
// IF IN STOCK ITEM BUT NEED SCREEN, ADD_IT SHOULD BE TRUE FOR SCEEN COPY
|
|
IF ITEM_CAT_CODE = 'SCREENS'
|
|
//Create a screen copy regardless of MFG. Loc & stock item
|
|
IF (MLOC_CODE = MHOME_LOC_CODE .AND. (SELFILE)->IN_STOCK <> 'Y')
|
|
ELSE
|
|
DO_SCRNS_ONLY:=.T.
|
|
ADDIT := .T.
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
// 1. DATA_ARR[1] IS THE PRODUCTION PART
|
|
WORKSPECS := GET_THESE_SPECS( G_ARR, CUT_SPEC_ARR, 'C', SELFILE )
|
|
IF ADDIT
|
|
AADD(DATA_ARR[1], {MLOC_CODE, PRNT_DESC, PROD_LINE, ;
|
|
AMTVAR, DISC_ARR, PROD_MEMO, QUANTITY ,WHERE_FROM, MLINE, ;
|
|
PROD_CODE, SHP_QTY, XFACTOR, WORKSPECS, NIL , ;
|
|
DO_SCRNS_ONLY, MPWHERE, INV_QTY })
|
|
ENDIF
|
|
// 9. DATA_ARR[9] IS THE PRODUCTION REPRESENTATION OF ALL DELIVERY/INVOICE ITEMS/CONTROL DESK
|
|
IF !ADDL_MODE
|
|
AADD(DATA_ARR[9], {MLOC_CODE, PRNT_DESC, PROD_LINE, ;
|
|
AMTVAR, DISC_ARR, PROD_MEMO, QUANTITY ,WHERE_FROM, MLINE, ;
|
|
PROD_CODE, SHP_QTY, XFACTOR, WORKSPECS, NIL, ;
|
|
DO_SCRNS_ONLY, MPWHERE, INV_QTY })
|
|
ENDIF
|
|
// 7. INV (CUSOMER INVOICE) PRINT LINES
|
|
IF WHERE_FROM = 'OL'
|
|
SELECT (SELFILE)
|
|
ITEMPRNT1 := PRNT_SIZE(DECVAL(WIDTH), DECVAL(HEIGHT))
|
|
ITEMPRNTX := ALLTRIM( (SELFILE)->ENTRY_SIZE)
|
|
ITEM_LINE := ''
|
|
ITEM_LINE := ITEM_LINE + ' (' + (SELFILE)->HOW_MEAS + ') '
|
|
//** P3N - 3/5/99 REQUESTED BY LAURA @ PAWNEE
|
|
IF ITEM_CAT_CODE = 'HYLIT' //** P3N - 3/5/99
|
|
IF (SELFILE)->HOW_MEAS == 'NS' //** P3N - 3/5/99
|
|
ITEM_LINE := ' Model# ' //** P3N - 3/5/99
|
|
ENDIF //** P3N - 3/5/99
|
|
ENDIF //** P3N - 3/5/99
|
|
ITEM_LINE := ITEM_LINE + ITEMPRNTX
|
|
IF FRENCHDOOR
|
|
// DO NOT PRINT THE OPENING SIZE ON FRENCH DOORS - PERRY 2-11-98
|
|
ITEM_LINE := ''
|
|
ENDIF
|
|
//** P3N - 6/17/99 ADD LINE ITEM GLASS DESC TO INV/DEL... FOR IOLA
|
|
IF AT(MGL_LINE_DESC, ITEM_LINE) = 0 //** P3N - 6/17/99
|
|
ITEM_LINE := ITEM_LINE + ' ' + TRIM(MGL_LINE_DESC) //** P3N - 6/17/99
|
|
ENDIF
|
|
IF !EMPTY( (SELFILE)->LINE_DESC )
|
|
ITEM_LINE := ITEM_LINE + '~' + TRIM( (SELFILE)->LINE_DESC) + ' '
|
|
//** P3N - 4/2/98
|
|
//** MOVED TO DENOTE '(S)' REGARDLESS OF THE ACTUAL SIZE!
|
|
IF (SELFILE)->IN_STOCK$'Y' // ONLY IN_STOCK WINDOWS FIT HERE!
|
|
ITEM_LINE := TRIM(ITEM_LINE) + '~(S)'
|
|
ENDIF
|
|
ENDIF
|
|
ITEMPRNT2 := ALLTRIM(PRNT_SIZE(ACT_WIDTH, ACT_HEIGHT))
|
|
IF ALLTRIM(ITEMPRNT1) == ALLTRIM(ITEMPRNT2)
|
|
ELSEIF (SELFILE)->IN_STOCK$'Y' // ONLY IN_STOCK WINDOWS FIT HERE!
|
|
//** P3N - 4/9/98 IS '(S)' ALREADY DENOTED FOR STOCK WINDOWS!
|
|
IF AT( '(S)', ITEM_LINE) = 0
|
|
//** P3N - 4/9/98 NO - INCLUDE THE '(S)' TO DENOTE STOCK!
|
|
ITEM_LINE := TRIM(ITEM_LINE) + '~(S)'
|
|
ENDIF
|
|
ELSEIF ITEM_CAT_CODE = 'STD'
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
// DO NOT PRINT DOOR SIZE ON THE ORDER FOR KC - 10-01-97
|
|
ELSE
|
|
ITEM_LINE := TRIM(ITEM_LINE) + ' (DOOR~SIZE=~' + ITEMPRNT2 + ')'
|
|
ENDIF
|
|
ENDIF
|
|
ITEM_LINE := ITEM_LINE + BAL_INFO
|
|
// PRINT THE ORIEL BANNER
|
|
IF (SELFILE)->ORIEL_SIZE$'Y' ;
|
|
.AND. !(OR_TOP = 1 .AND. OR_BOT = 1)
|
|
WORKVAR := HS_PRNT
|
|
IF WORKVAR = NIL
|
|
WORKVAR := ''
|
|
ENDIF
|
|
//** - P3N 2/26/98 REMOVED THE HALF-SIZE PRINTING PER SCOTT - KC
|
|
//** - P3N 7/7/98 REINSTATED THE HALF-SIZE PRINTING LINDS/IOLA IC POS
|
|
//** - P3N 7/24/98 REMOVED THE HALF-SIZE PRINTING PER SCOTT/ellen - KC
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
//** - P3N 11/11/98 REINSTATED THE HALF-SIZE PRINTING AT KC FOR
|
|
//** - EVERYTHING NOT PRODUCED AT KC
|
|
IF AT('**Oriel**', ITEM_LINE) > 0
|
|
ELSE
|
|
ITEM_LINE := TRIM(ITEM_LINE) + ' ' + ' **~Oriel~** '
|
|
ENDIF
|
|
IF MHOME_LOC_CODE == MLOC_CODE
|
|
ELSE
|
|
ITEM_LINE := TRIM(ITEM_LINE) + ' ' + WORKVAR
|
|
ENDIF
|
|
ELSEIF AT('**Oriel**', ITEM_LINE) > 0
|
|
ITEM_LINE := TRIM(ITEM_LINE) + ' ' + WORKVAR
|
|
ELSE
|
|
ITEM_LINE := TRIM(ITEM_LINE) + ' ' + ' **~Oriel~** ' + WORKVAR
|
|
ENDIF
|
|
ENDIF
|
|
ITEM_LINE := ITEM_LINE + SPACE( 60 - LEN(ITEM_LINE) )
|
|
WORKSPECS := GET_THESE_SPECS( G_ARR, CUT_SPEC_ARR, 'V' , SELFILE )
|
|
AADD(DATA_ARR[7], {MLOC_CODE, PRNT_DESC, ;
|
|
ITEM_LINE, AMTVAR, DISC_ARR, PROD_MEMO, ;
|
|
QUANTITY, WHERE_FROM, MLINE, PROD_CODE, ;
|
|
SHP_QTY, XFACTOR, WORKSPECS, NIL, ;
|
|
DO_SCRNS_ONLY, MPWHERE, INV_QTY})
|
|
ENDIF
|
|
// THE FOLLOWING "CHUNKS" ONLY APPLY TO IN-HOUSE PRODUCTION ITEMS
|
|
// WHICH ARE NOT IN STOCK - EXCEPT for the screens. ALL screens
|
|
// will get a SCREEN copy regardless of the MFG. location or whether
|
|
// it is a STOCK item.
|
|
// THE SIZE AND SPECS ON HERE ARE THE PRODUCTION FRAME SAW SETTINGS
|
|
// 2. SET UP THE FRAME COPY CHUNK
|
|
IF ADDL_MODE
|
|
ELSE
|
|
// Get the cutting specs for the screen.
|
|
WORKSPECS := GET_THESE_SPECS( G_ARR, CUT_SPEC_ARR, 'N', SELFILE )
|
|
IF EMPTY(WORKSPECS)
|
|
//Create ONLY a screen copy when NOT same MFG. Loc & stock item! 7-30-97
|
|
IF (MLOC_CODE = MHOME_LOC_CODE .AND. (SELFILE)->IN_STOCK <> 'Y')
|
|
ELSE
|
|
DO_SCRNS_ONLY:=.T.
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF (MLOC_CODE = MHOME_LOC_CODE .AND. (SELFILE)->IN_STOCK <> 'Y') .OR. ;
|
|
DO_SCRNS_ONLY
|
|
DO CASE
|
|
CASE ITEM_CAT_CODE = 'SCREENS'
|
|
CASE ITEM_CAT_CODE = 'STORMS'
|
|
CASE ITEM_CAT_CODE = 'EXPAND'
|
|
CASE ITEM_CAT_CODE = 'STPW'
|
|
OTHERWISE
|
|
WORKSPECS := GET_THESE_SPECS( G_ARR, CUT_SPEC_ARR, 'F', SELFILE )
|
|
IF DO_SCRNS_ONLY
|
|
ELSE // BYPASS THE FRAME COPY
|
|
AADD(DATA_ARR[2], {MLOC_CODE, PRNT_DESC, PROD_LINE, AMTVAR, ;
|
|
DISC_ARR , PROD_MEMO, QUANTITY ,WHERE_FROM, MLINE, ;
|
|
PROD_CODE, SHP_QTY, XFACTOR, WORKSPECS, NIL, ;
|
|
DO_SCRNS_ONLY, MPWHERE, INV_QTY })
|
|
ENDIF
|
|
ENDCASE
|
|
// 3. SET UP THE SASH COPY CHUNK
|
|
// DON'T WORRY ABOUT RANCH SLIDERS - STORMS ONLY (NO SASH ON STROMS)
|
|
WORKSPECS := GET_THESE_SPECS( G_ARR, CUT_SPEC_ARR, 'I', SELFILE )
|
|
IF (PRODUCT->MACH_SASHW = 0 .AND. PRODUCT->MACH_SASHH == 0) ;
|
|
.AND. WORKSPECS = NIL
|
|
// NO SASH ADJUSTMENT -- NO SASH COPY PRINTED
|
|
ELSEIF !MULL_REQ .OR. (MULL_REQ .AND. MULL_TYPE = 'CENTER VERTICAL')
|
|
WK_QTY := (SELFILE)->QUANTITY
|
|
IF RAN_SLID
|
|
WK_HEIGHT := PRODUCT->MACH_SASHW + (SELFILE)->ACT_WIDTH
|
|
WK_WIDTH := PRODUCT->MACH_SASHH + (SELFILE)->ACT_HEIGHT
|
|
ELSE
|
|
WK_WIDTH := PRODUCT->MACH_SASHW + (SELFILE)->ACT_WIDTH
|
|
WK_HEIGHT := PRODUCT->MACH_SASHH + (SELFILE)->ACT_HEIGHT
|
|
ENDIF
|
|
IF MULL_REQ // ONLY CENTER VERTICAL TYPE MULLS GOT THIS FAR
|
|
WK_QTY := WK_QTY * 2
|
|
WK_WIDTH := WK_WIDTH - MMULL_SASH
|
|
ITEM_LINE := PRNT_SIZE(WK_WIDTH/2, WK_HEIGHT)
|
|
ELSE
|
|
ITEM_LINE := PRNT_SIZE(WK_WIDTH, WK_HEIGHT)
|
|
ENDIF
|
|
//** SET SASH LINE DESCR. PRINTING FOR ATTRIBUTES - LINDS
|
|
IF EMPTY(SASH_LINE) //** P3N - 5/2/00
|
|
SASH_LINE := ITEM_LINE //** P3N - 5/2/00
|
|
ENDIF //** P3N - 5/2/00
|
|
|
|
IF DO_SCRNS_ONLY
|
|
ELSE // BYPASS THE SASH COPY
|
|
//**P3N5200 AADD(DATA_ARR[3], {MLOC_CODE, PRNT_DESC, ITEM_LINE, AMTVAR,;
|
|
AADD(DATA_ARR[3], {MLOC_CODE, PRNT_DESC, SASH_LINE, AMTVAR, ;
|
|
DISC_ARR, PROD_MEMO, (SELFILE)->QUANTITY, WHERE_FROM, ;
|
|
MLINE, PROD_CODE, SHP_QTY, XFACTOR, WORKSPECS, ;
|
|
NIL, DO_SCRNS_ONLY, MPWHERE, INV_QTY})
|
|
ENDIF
|
|
ENDIF
|
|
// 4. SET UP THE GLASS COPY CHUNK
|
|
// NO RANCH SLIDER CONCERNS BECAUSE ONLY APPLICABLE TO STORMS
|
|
// HOWEVER, IF ALWAYS A SLIDER, SPECIAL PROCESSING IS REQUIRED
|
|
// NOTE THAT THE QUANTITY IS CHANGED TO REFLECT XTRA WINDOWS HERE
|
|
// SO WE PRINT THE TOTAL REQUIRED. NO REFERENCE TO TWIN, ETC IN GLASS DESC!
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
MWORK_DESC := MLINE_DESC
|
|
ELSE
|
|
MWORK_DESC := ' '
|
|
ENDIF
|
|
TOTWIND := XFACTOR + 1
|
|
SELECT CATEGORY
|
|
S_REC := RECNO()
|
|
IF !EMPTY(PAR_CAT_CODE)
|
|
SEEK PAR_CAT_CODE
|
|
ELSE
|
|
SEEK ITEM_CAT_CODE
|
|
ENDIF
|
|
MNUM_GLASS := CATEGORY->NUM_GLASS
|
|
GOTO S_REC
|
|
SELECT (SELFILE)
|
|
GLT_WD = NIL
|
|
GLT_HT = NIL
|
|
GLT_QTY = 0
|
|
GLB_WD = NIL
|
|
GLB_HT = NIL
|
|
GLB_QTY = 0
|
|
WORKSPECS := GET_THESE_SPECS( G_ARR, CUT_SPEC_ARR, 'G', SELFILE )
|
|
IF (PRODUCT->MACH_GLASW = 0 .AND. PRODUCT->MACH_GLASH == 0 ;
|
|
.AND. WORKSPECS = NIL) ;
|
|
.OR. ( ALLTRIM(ITEM_CAT_CODE) = 'STORMS' .AND. ;
|
|
MHOME_LOC_CODE <> 'IOLA' )
|
|
// NO GLASS ADJUSTMENT -- NO GLASS COPY PRINTED
|
|
// STORM WINDOWS DON'T GET A GLASS ADJUSTMENT - BOXES USED IN
|
|
// THE STORM COPY. FORCE TO LOGIC BELOW
|
|
ELSE
|
|
IF ITEM_CAT_CODE = 'STORMS' .AND. MHOME_LOC_CODE = 'IOLA'
|
|
DO_GLASS_PRNT := .F.
|
|
ELSE
|
|
DO_GLASS_PRNT := .T.
|
|
ENDIF
|
|
WK_QTY := (SELFILE)->QUANTITY * TOTWIND
|
|
IF !MULL_REQ .OR. (MULL_REQ .AND. MULL_TYPE = 'CENTER VERTICAL')
|
|
MNUM_GLASS := CATEGORY->NUM_GLASS
|
|
IF MULL_REQ .AND. MULL_TYPE = 'CENTER VERTICAL'
|
|
MNUM_GLASS := MNUM_GLASS * 2 // SINCE A MULL, EXTRA GLASS REQUIRED
|
|
ENDIF
|
|
IF (GLASS_COPY .AND. CATEGORY->(DBSEEK(ITEM_CAT_CODE)) ;
|
|
.AND. MNUM_GLASS > 0) .OR. ;
|
|
(ALLTRIM(ITEM_CAT_CODE) == 'STORMS' ;
|
|
.OR. ALLTRIM(ITEM_CAT_CODE) == 'STPW' )
|
|
WK_ADJ_WIDTH := PRODUCT->MACH_GLASW
|
|
WK_ADJ_HEIGHT := PRODUCT->MACH_GLASH
|
|
// WK_WIDTH/WK_HEIGHT REPRESENT ENTIRE "GLASS AREA REQUIRED"
|
|
// ALL AREAS ARE 'NON SLIDER SPECIFIC NOW'
|
|
//** IF RAN_SLID
|
|
IF RAN_SLID .OR. IS_ALWAYS_SLID //** P3N - 2/8/99
|
|
WK_HEIGHT := WK_ADJ_WIDTH + (SELFILE)->ACT_WIDTH
|
|
WK_WIDTH := WK_ADJ_HEIGHT + (SELFILE)->ACT_HEIGHT
|
|
ELSE
|
|
WK_WIDTH := WK_ADJ_WIDTH + (SELFILE)->ACT_WIDTH
|
|
WK_HEIGHT := WK_ADJ_HEIGHT + (SELFILE)->ACT_HEIGHT
|
|
ENDIF
|
|
IF MULL_REQ
|
|
WK_WIDTH := WK_WIDTH - MMULL_GLASS
|
|
ENDIF
|
|
IF (OR_TOP = 0 .AND. OR_BOT = 0) .OR. ; // EQUAL LITE WINDOW
|
|
(OR_TOP = 1 .AND. OR_BOT = 1)
|
|
// 2 PIECES OF GLASS AT 1/2 SIZE EACH
|
|
IF MULL_REQ .OR. IS_ALWAYS_SLID
|
|
WK_WIDTH := WK_WIDTH / MNUM_GLASS
|
|
ELSE
|
|
WK_HEIGHT := WK_HEIGHT / MNUM_GLASS
|
|
ENDIF
|
|
WK_QTY := WK_QTY * MNUM_GLASS
|
|
GLT_QTY := WK_QTY
|
|
GLB_QTY := 0
|
|
GLT_WD = WK_WIDTH
|
|
GLT_HT = WK_HEIGHT
|
|
GLB_WD = WK_WIDTH
|
|
GLB_HT = WK_HEIGHT
|
|
IF (PRODUCT->MACH_GLASW = 0 .AND. PRODUCT->MACH_GLASH == 0)
|
|
GLASS_PRNT = ''
|
|
IF EMPTY(BAL_INFO)
|
|
// NO BALANCE SIZE INFO - NOT A STD_SASH
|
|
// DETERMINE THE GLASS SIZES FOR STD_SASH
|
|
ELSE
|
|
GLASS_PRNT := PRNT_SIZE(GLT_WD, GLT_HT, ' x ')
|
|
ENDIF
|
|
ELSE
|
|
GLASS_PRNT := PRNT_SIZE(WK_WIDTH, WK_HEIGHT)
|
|
ENDIF
|
|
IF (SELFILE)->(FIELDPOS('LDESC_COPY')) > 0 //** P3N - 5/4/99
|
|
IF AT('G', (SELFILE)->LDESC_COPY) > 0 //** P3N - 5/4/99
|
|
IF EMPTY(GLASS_PRNT) //** P3N - 5/10/99
|
|
WK_QTY := 0 //** P3N - 5/10/99
|
|
ENDIF //** P3N - 5/10/99
|
|
GLASS_PRNT := GLASS_PRNT +' '+ MGL_LINE_DESC //** P3N - 6/7/99
|
|
ENDIF //** P3N - 5/4/99
|
|
ENDIF //** P3N - 5/4/99
|
|
IF DO_SCRNS_ONLY
|
|
ELSE // BYPASS THE GLASS COPY
|
|
IF DO_GLASS_PRNT
|
|
AADD(DATA_ARR[4], {MLOC_CODE, PRNT_DESC, GLASS_PRNT, ;
|
|
AMTVAR, DISC_ARR , PROD_MEMO, ;
|
|
WK_QTY ,WHERE_FROM, ;
|
|
STR(VAL(MLINE)+.00,7,2), PROD_CODE, ;
|
|
SHP_QTY, 0, WORKSPECS, MWORK_DESC, ;
|
|
DO_SCRNS_ONLY, MPWHERE, INV_QTY })
|
|
ENDIF
|
|
ENDIF
|
|
ELSE // ORIEL WINDOW
|
|
GLASS_LINE := ''
|
|
GLT_QTY := QUANTITY
|
|
GLB_QTY := QUANTITY
|
|
GLT_WD = WK_WIDTH
|
|
GLT_HT = WK_HEIGHT
|
|
GLB_WD = WK_WIDTH
|
|
GLB_HT = WK_HEIGHT
|
|
IF OR_TOP > 0
|
|
// DO TOP GLASS FIRST (OR LEFT GLASS ON SLIDER)
|
|
IF OR_GLASS <> 0 // PREDETERMINED SIZE FOR TOP
|
|
IF IS_ALWAYS_SLID
|
|
GLT_WD = OR_GLASS
|
|
GLT_HT = WK_HEIGHT // ADJUSTED ABOVE FOR CUT
|
|
ELSE
|
|
GLT_WD = WK_WIDTH // ADJUSTED ABOVE FOR CUT
|
|
GLT_HT = OR_GLASS
|
|
ENDIF
|
|
ELSE
|
|
IF IS_ALWAYS_SLID
|
|
GLT_WD = (SELFILE)->ACT_WIDTH - OR_BOT + ( WK_ADJ_WIDTH / 2 )
|
|
GLT_HT = WK_HEIGHT // ADJUSTED ABOVE FOR CUT
|
|
ELSE
|
|
GLT_WD = WK_WIDTH // ADJUSTED ABOVE FOR CUT
|
|
GLT_HT = (SELFILE)->ACT_HEIGHT - OR_BOT + ( WK_ADJ_HEIGHT / 2 )
|
|
ENDIF
|
|
IF EMPTY(BAL_INFO) //** P3N - 03/30/98
|
|
// NO BALANCE SIZE INFO - NOT A STD_SASH
|
|
ELSEIF EMPTY(WORKSPECS)
|
|
// NO CUTTING SPEC INFO
|
|
ELSE // DETERMINE THE GLASS TOP SIZE FOR STD_SASH
|
|
IF LEN(WORKSPECS) < 2 .OR. EMPTY(WORKSPECS[1,6]) .OR. EMPTY(WORKSPECS[2,6])
|
|
ERR_BOX(' Order line - ' + STR( (SELFILE)->LINE_NUM, 3) + ;
|
|
' / Model - ' + (SELFILE)->PROD_CODE + ' Contains', ;
|
|
' Invalid or missing GLASS Cutting Specs! ', ' ', ;
|
|
' PRODUCTION GLASS COPY may NOT be accurate!')
|
|
ELSE
|
|
GLT_WD := EVAL_MATH( WORKSPECS[1,6], G_ARR, '_CUT_SP', ;
|
|
WORKSPECS[1,1], SELFILE,'CUT')
|
|
ADJ_HT := EVAL_MATH( WORKSPECS[2,6], G_ARR, '_CUT_SP', ;
|
|
WORKSPECS[2,1], SELFILE,'CUT')
|
|
//** GLT_HT := ADJ_HT - OR_BOT //** P3N - 07/05/01
|
|
GLT_HT := ADJ_HT - OR_BOT - STDADJ //** P3N - 07/05/01
|
|
WORKSPECS[2,7] := GLT_HT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF (PRODUCT->MACH_GLASW = 0 .AND. PRODUCT->MACH_GLASH == 0)
|
|
GLASS_PRNT := ''
|
|
IF EMPTY(BAL_INFO) //** P3N - 03/30/98
|
|
// NO BALANCE SIZE INFO - NOT A STD_SASH
|
|
// DETERMINE THE GLASS SIZES FOR STD_SASH
|
|
IF RAN_SLID //** P3N - 02/01/99
|
|
GLASS_PRNT := PRNT_SIZE(GLT_WD, GLT_HT, ' x ')
|
|
ELSEIF IS_ALWAYS_SLID //** P3N - 02/02/99
|
|
GLASS_PRNT := PRNT_SIZE(GLT_WD, GLT_HT, ' x ')
|
|
ENDIF
|
|
ELSE
|
|
GLASS_PRNT := PRNT_SIZE(GLT_WD, GLT_HT, ' x ')
|
|
ENDIF
|
|
ELSE
|
|
GLASS_PRNT := GLASS_LINE + PRNT_SIZE(GLT_WD, GLT_HT) + EX_DESC
|
|
ENDIF
|
|
IF (SELFILE)->(FIELDPOS('LDESC_COPY')) > 0 //** P3N - 5/4/99
|
|
IF AT('G', (SELFILE)->LDESC_COPY) > 0 //** P3N - 5/4/99
|
|
IF EMPTY(GLASS_PRNT) //** P3N - 5/10/99
|
|
WK_QTY := 0 //** P3N - 5/10/99
|
|
ENDIF //** P3N - 5/10/99
|
|
//** GLASS_PRNT := GLASS_PRNT + MLINE_DESC //** P3N - 5/4/99
|
|
GLASS_PRNT := GLASS_PRNT+' '+ MGL_LINE_DESC //** P3N - 6/7/99
|
|
ENDIF //** P3N - 5/4/99
|
|
ENDIF //** P3N - 5/4/99
|
|
IF DO_SCRNS_ONLY
|
|
ELSE // BYPASS THE GLASS COPY
|
|
IF DO_GLASS_PRNT
|
|
AADD(DATA_ARR[4], {MLOC_CODE, PRNT_DESC, GLASS_PRNT, ;
|
|
AMTVAR, DISC_ARR , PROD_MEMO, ;
|
|
WK_QTY ,WHERE_FROM, ;
|
|
STR(VAL(MLINE)+.00,7,2), PROD_CODE, ;
|
|
SHP_QTY, 0, WORKSPECS, MWORK_DESC, ;
|
|
DO_SCRNS_ONLY, MPWHERE, INV_QTY})
|
|
ENDIF
|
|
ENDIF
|
|
// DO BOTTOM PART NEXT.
|
|
IF OR_GLASS <> 0
|
|
IF IS_ALWAYS_SLID
|
|
GLB_WD = WK_WIDTH - OR_GLASS
|
|
GLB_HT = WK_HEIGHT
|
|
ELSE
|
|
GLB_WD = WK_WIDTH
|
|
GLB_HT = WK_HEIGHT - OR_GLASS
|
|
ENDIF
|
|
ELSE
|
|
IF IS_ALWAYS_SLID
|
|
GLB_WD = (SELFILE)->ACT_WIDTH - OR_TOP + ( WK_ADJ_WIDTH / 2 )
|
|
GLB_HT = WK_HEIGHT // ADJUSTED ABOVE FOR CUT
|
|
ELSE
|
|
GLB_WD = WK_WIDTH // ADJUSTED ABOVE FOR CUT
|
|
GLB_HT = (SELFILE)->ACT_HEIGHT - OR_TOP + ( WK_ADJ_HEIGHT / 2 )
|
|
ENDIF
|
|
ENDIF
|
|
IF EMPTY(BAL_INFO) //** P3N - 03/30/98
|
|
// NO BALANCE SIZE INFO - NOT A STD_SASH
|
|
ELSEIF EMPTY(WORKSPECS)
|
|
// NO CUTTING SPEC INFO
|
|
ELSE // DETERMINE THE GLASS BOTT SIZE FOR STD_SASH
|
|
IF LEN(WORKSPECS) < 2 .OR. EMPTY(WORKSPECS[1,6]) .OR. EMPTY(WORKSPECS[2,6])
|
|
ELSE
|
|
GLB_WD := EVAL_MATH( WORKSPECS[1,6], G_ARR, '_CUT_SP', ;
|
|
WORKSPECS[1,1], SELFILE,'CUT')
|
|
ADJ_HT := EVAL_MATH( WORKSPECS[2,6], G_ARR, '_CUT_SP', ;
|
|
WORKSPECS[2,1], SELFILE,'CUT')
|
|
GLB_HT := ADJ_HT - OR_TOP
|
|
WORKSPECS[2,7] := GLB_HT
|
|
ENDIF
|
|
ENDIF
|
|
IF (PRODUCT->MACH_GLASW = 0 .AND. PRODUCT->MACH_GLASH == 0)
|
|
GLASS_PRNT := ''
|
|
IF EMPTY(BAL_INFO) //** P3N - 03/30/98
|
|
// NO BALANCE SIZE INFO - NOT A STD_SASH
|
|
ELSE // DETERMINE THE GLASS SIZES FOR STD_SASH
|
|
GLASS_PRNT := PRNT_SIZE(GLB_WD, GLB_HT, ' x ')
|
|
ENDIF
|
|
ELSE
|
|
GLASS_PRNT := GLASS_LINE + PRNT_SIZE(GLB_WD, GLB_HT) + EX_DESC
|
|
ENDIF
|
|
IF (SELFILE)->(FIELDPOS('LDESC_COPY')) > 0 //** P3N - 5/4/99
|
|
IF AT('G', (SELFILE)->LDESC_COPY) > 0 //** P3N - 5/4/99
|
|
IF EMPTY(GLASS_PRNT) //** P3N - 5/10/99
|
|
WK_QTY := 0 //** P3N - 5/10/99
|
|
ENDIF //** P3N - 5/10/99
|
|
//** GLASS_PRNT := GLASS_PRNT + MLINE_DESC //** P3N - 5/4/99
|
|
GLASS_PRNT := GLASS_PRNT+' '+ MGL_LINE_DESC //** P3N - 6/7/99
|
|
ENDIF //** P3N - 5/4/99
|
|
ENDIF //** P3N - 5/4/99
|
|
IF DO_SCRNS_ONLY
|
|
ELSE // BYPASS THE GLASS COPY
|
|
// DON'T DO SECOND LINE IF ALL SPECS COME FROM CUT_SPEC_ARR
|
|
IF DO_GLASS_PRNT .AND. ;
|
|
WK_ADJ_WIDTH <> 0 .AND. ;
|
|
WK_ADJ_HEIGHT <> 0
|
|
AADD(DATA_ARR[4], {MLOC_CODE, PRNT_DESC, GLASS_PRNT, ;
|
|
AMTVAR, DISC_ARR , PROD_MEMO, ;
|
|
WK_QTY ,WHERE_FROM, ;
|
|
STR(VAL(MLINE)+.00,7,2), PROD_CODE,;
|
|
SHP_QTY, 0, WORKSPECS, MWORK_DESC,;
|
|
DO_SCRNS_ONLY, MPWHERE, INV_QTY })
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELSE // ORIEL BOTTOM IS > 0 AND ORIEL TOP = 0
|
|
// SHOULDN'T EVER GET TO HERE-ADJUSTED IN CK_ORIEL()
|
|
//** P3N - 9/29/98
|
|
ERR_BOX(' Order line - ' + STR( (SELFILE)->LINE_NUM, 3) + ;
|
|
' / Model - ' + (SELFILE)->PROD_CODE + ' Contains', ;
|
|
' Invalid ORIEL Measurements - Oriel Top can NOT be 0 !', ' ', ;
|
|
' PRODUCTION BREAKDOWNS may NOT be accurate!')
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
// 5. PROD SCREEN PRINT LINES
|
|
IF ADDL_MODE
|
|
ELSE
|
|
IF XL_EXISTS('SCREENS')
|
|
BYPASS_SCREEN_PAR := .T.
|
|
ELSE
|
|
BYPASS_SCREEN_PAR := .F.
|
|
ENDIF
|
|
ENDIF
|
|
BO_ITEM := '(' + (SELFILE)->HOW_MEAS + ') '
|
|
BO_ITEM := BO_ITEM + (SELFILE)->ENTRY_SIZE
|
|
IF BYPASS_SCREEN_PAR
|
|
ELSE
|
|
WORKSPECS := GET_THESE_SPECS( G_ARR, CUT_SPEC_ARR, 'N', SELFILE )
|
|
MNUM_SCREEN := CATEGORY->NUM_SCREEN
|
|
IF MNUM_SCREEN = 0
|
|
MNUM_SCREEN := 1
|
|
ENDIF
|
|
IF ALLTRIM(ITEM_CAT_CODE) == 'SCREENS' ;
|
|
.OR. WORKSPECS <> NIL
|
|
AADD(DATA_ARR[5], SCREEN_CHUNK( SELFILE, ADDL_MODE, WORKSPECS, ;
|
|
MULL_REQ, MULL_TYPE, IS_ALWAYS_SLID, OR_TOP, OR_BOT, ;
|
|
OR_SCR, BO_ITEM, BAL_INFO, RAN_SLID, MLOC_CODE, PRNT_DESC, ;
|
|
AMTVAR, DISC_ARR, PROD_MEMO, WHERE_FROM, MLINE, PROD_CODE, ;
|
|
.F., XFACTOR, DO_SCRNS_ONLY, MPWHERE, MWORK_DESC, MNUM_SCREEN, MNUM_GLASS, G_ARR) )
|
|
//** P3N - 7/21/99 ARE THERE FLANKERS TO PROCESS FOR BACKORDER
|
|
IF ADDL_MODE
|
|
PARORD := (SELFILE)->ORDER_NUM //** P3N - 7/22/99
|
|
PARPROD := (SELFILE)->PAR_PROD //** P3N - 7/22/99
|
|
PARLINE := STR((SELFILE)->LINE_NUM) //** P3N - 7/22/99
|
|
PARELM := ASCAN(PARGARR,{|X| X[1] == PARORD .AND. ;
|
|
X[2] == PARPROD .AND. ;
|
|
X[3] == PARLINE } )
|
|
IF PARELM > 0
|
|
FLNKSPECS := GET_THESE_SPECS( PARGARR[PARELM,4], CUT_SPEC_ARR, 'N', 'ORD_LINES')
|
|
GETFLANK := PARGARR[PARELM,4]
|
|
ELSE
|
|
FLNKSPECS := {}
|
|
GETFLANK := {}
|
|
ENDIF
|
|
FLANKSCR := BKO_FLANKSCR(GETFLANK)
|
|
IF FLANKSCR[1] //**FLANKER SCREENS TO CONSIDER ON BACKORDER
|
|
FSARR := ACLONE(DISC_ARR)
|
|
FSARR[3] := FLANKSCR[2]
|
|
//** AADD(DATA_ARR[10], SCREEN_CHUNK( SELFILE, .F., WORKSPECS, ;
|
|
AADD(DATA_ARR[10], SCREEN_CHUNK( SELFILE, .F., FLNKSPECS, ;
|
|
MULL_REQ, MULL_TYPE, IS_ALWAYS_SLID, OR_TOP, OR_BOT, ;
|
|
OR_SCR, BO_ITEM, BAL_INFO, RAN_SLID, MLOC_CODE, PRNT_DESC, ;
|
|
AMTVAR, FSARR, PROD_MEMO, WHERE_FROM, MLINE, PROD_CODE, ;
|
|
.T., XFACTOR, DO_SCRNS_ONLY, MPWHERE, MWORK_DESC, MNUM_SCREEN, MNUM_GLASS, G_ARR, FLANKSCR) )
|
|
ENDIF //** P3N - 1/27/99
|
|
ENDIF //** P3N - 7/22/99
|
|
ELSE
|
|
SCRNINFO := TOL_SCREENS(SELFILE) //** P3N - 9/16/98
|
|
IF EMPTY(SCRNINFO) //** P3N - 9/16/98
|
|
ELSE //** P3N - 9/16/98
|
|
IF EMPTY(SCRNINFO[1]) //TOL SCREEN QTY //** P3N - 9/16/98
|
|
ELSE //** P3N - 9/16/98
|
|
//** P3N BACKORDER SCREEN COPIES WHEN NO CUTTING SPECS
|
|
AADD(DATA_ARR[10], SCREEN_CHUNK( SELFILE, ADDL_MODE, WORKSPECS, ;
|
|
MULL_REQ, MULL_TYPE, IS_ALWAYS_SLID, OR_TOP, OR_BOT, ;
|
|
OR_SCR, BO_ITEM, BAL_INFO, RAN_SLID, MLOC_CODE, PRNT_DESC, ;
|
|
AMTVAR, DISC_ARR, PROD_MEMO, WHERE_FROM, MLINE, PROD_CODE, ;
|
|
.T., XFACTOR, DO_SCRNS_ONLY, MPWHERE, MWORK_DESC, MNUM_SCREEN, MNUM_GLASS, G_ARR) )
|
|
//** P3N - 1/27/99 ARE THERE FLANKERS TO PROCESS FOR BACKORDER
|
|
FLANKSCR := BKO_FLANKSCR(G_ARR)
|
|
IF FLANKSCR[1] //**FLANKER SCREENS TO CONSIDER ON BACKORDER
|
|
FSARR := ACLONE(DISC_ARR)
|
|
FSARR[3] := FLANKSCR[2]
|
|
AADD(DATA_ARR[10], SCREEN_CHUNK( SELFILE, ADDL_MODE, WORKSPECS, ;
|
|
MULL_REQ, MULL_TYPE, IS_ALWAYS_SLID, OR_TOP, OR_BOT, ;
|
|
OR_SCR, BO_ITEM, BAL_INFO, RAN_SLID, MLOC_CODE, PRNT_DESC, ;
|
|
AMTVAR, FSARR, PROD_MEMO, WHERE_FROM, MLINE, PROD_CODE, ;
|
|
.T., XFACTOR, DO_SCRNS_ONLY, MPWHERE, MWORK_DESC, MNUM_SCREEN, MNUM_GLASS, G_ARR, FLANKSCR) )
|
|
ENDIF //** P3N - 1/27/99
|
|
ENDIF //** P3N - 9/16/98
|
|
ENDIF //** P3N - 9/16/98
|
|
ENDIF
|
|
ENDIF
|
|
// 6. PROD STORMS PRINT LINES
|
|
WORKSPECS := GET_THESE_SPECS( G_ARR, CUT_SPEC_ARR, 'S', SELFILE )
|
|
IF (ALLTRIM(ITEM_CAT_CODE) == 'STORMS' ;
|
|
.OR. ALLTRIM(ITEM_CAT_CODE) == 'STPW') ;
|
|
.OR. WORKSPECS <> NIL
|
|
IF ADDL_MODE .AND. ALLTRIM(ITEM_CAT_CODE) == 'SCREENS'
|
|
//** P3N - 3/24/99
|
|
//** DO NOT PRODUCE STORM COPY WHEN ADDL SCREEN PRODUCT
|
|
ELSE
|
|
WK_QTY := (SELFILE)->QUANTITY
|
|
IF (SELFILE)->CLEAR_SS$'Y' .AND. MHOME_LOC_CODE = 'IOLA'
|
|
GLASS_PRNT := BEST_BOX(GLT_QTY, GLT_WD, GLT_HT, GLB_QTY, GLB_WD, GLB_HT)
|
|
ELSE
|
|
GLASS_PRNT := ''
|
|
ENDIF
|
|
IF ALLTRIM(ITEM_CAT_CODE) == 'STORMS' ;
|
|
.OR. ALLTRIM(ITEM_CAT_CODE) == 'STPW'
|
|
STORM_PRNT := PROD_LINE + ' ' + GLASS_PRNT
|
|
ELSE
|
|
STORM_PRNT := ''
|
|
ENDIF
|
|
IF DO_SCRNS_ONLY
|
|
//** P3N - 9/11/98
|
|
//** THIS IS FOR BACKORDER STORMS NOT AT THE MFG. LOC
|
|
//** AADD(DATA_ARR[11], {MLOC_CODE, PRNT_DESC, STORM_PRNT, AMTVAR, ;
|
|
AADD(DATA_ARR[11], {MLOC_CODE, PRNT_DESC, ITEM_LINE, AMTVAR, ;
|
|
DISC_ARR, PROD_MEMO, WK_QTY ,WHERE_FROM, ;
|
|
MLINE, PROD_CODE, SHP_QTY, XFACTOR, ;
|
|
WORKSPECS, NIL, DO_SCRNS_ONLY, MPWHERE, INV_QTY} )
|
|
ELSE
|
|
IF !MULL_REQ .OR. (MULL_REQ .AND. MULL_TYPE = 'CENTER VERTICAL')
|
|
AADD(DATA_ARR[6], {MLOC_CODE, PRNT_DESC, STORM_PRNT, AMTVAR, ;
|
|
DISC_ARR, PROD_MEMO, WK_QTY ,WHERE_FROM, ;
|
|
MLINE, PROD_CODE, SHP_QTY, XFACTOR, ;
|
|
WORKSPECS, NIL, DO_SCRNS_ONLY, MPWHERE, INV_QTY} )
|
|
ELSE
|
|
AADD(DATA_ARR[6], {MLOC_CODE, PRNT_DESC, ;
|
|
PROD_LINE + ' ** MANUAL BREAKDOWN REQUIRED Due to MULLS **', ;
|
|
AMTVAR, DISC_ARR, PROD_MEMO, WK_QTY ,WHERE_FROM, ;
|
|
MLINE, PROD_CODE, SHP_QTY, XFACTOR, ;
|
|
WORKSPECS, NIL, DO_SCRNS_ONLY , MPWHERE, INV_QTY})
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
// 8. EXPANDERS REQUIRED SECTION
|
|
// ONLY INCLUDE THE ORDER LINE ITEMS (EXTRAS APPEAR IN THE DESCRIPTION)
|
|
WORKSPECS := GET_THESE_SPECS( G_ARR, CUT_SPEC_ARR, 'E', SELFILE )
|
|
IF MHOME_LOC_CODE <> 'LINDS' ;
|
|
.AND. ( EXP_REQ .OR. WORKSPECS <> NIL )
|
|
// EXPANDER SIZES ARE STORED AS ACTUAL CALLED IN SIZES
|
|
WK_QTY := (SELFILE)->QUANTITY
|
|
IF ITEM_CAT_CODE = 'EXPANDR' //** P3N - 9/30/99
|
|
//** IF CATEGORY EXPANDER THE SIZE WILL //** P3N - 9/30/99
|
|
//** BE DEFINED IN THE CUTTING SPECS. //** P3N - 9/30/99
|
|
PRNT_EXP := '' //** P3N - 9/30/99
|
|
ELSE //** P3N - 9/30/99
|
|
PRNT_EXP := PRNT_SIZE( EXP_WK_WIDTH, NIL)
|
|
ENDIF //** P3N - 9/30/99
|
|
IF DO_SCRNS_ONLY
|
|
ELSE // BYPASS THE EXPANDER COPY
|
|
AADD(DATA_ARR[8], {MLOC_CODE, PRNT_DESC, PRNT_EXP, AMTVAR, ;
|
|
DISC_ARR, PROD_MEMO, WK_QTY ,WHERE_FROM, ;
|
|
MLINE, PROD_CODE, SHP_QTY, XFACTOR, ;
|
|
WORKSPECS, NIL, DO_SCRNS_ONLY, MPWHERE, INV_QTY})
|
|
ENDIF
|
|
ENDIF
|
|
ELSE //** P3N BACKORDER SCREEN COPIES WHEN MFG. LOC IS NOT THE SAME
|
|
BO_ITEM := '(' + (SELFILE)->HOW_MEAS + ') '
|
|
BO_ITEM := BO_ITEM + (SELFILE)->ENTRY_SIZE
|
|
CK_BKO_SCRNS := .F.
|
|
IF ALLTRIM(ITEM_CAT_CODE) == 'SCREENS' //** P3N 9/15/98 - HAPY BDAY MOM!
|
|
IF EMPTY(DATA_ARR[5])
|
|
CK_BKO_SCRNS := .T.
|
|
ELSEIF EMPTY( ASCAN(DATA_ARR[5], {|X| X[9] + X[10] == ;
|
|
STR((SELFILE)->LINE_NUM, 3) + (SELFILE)->PROD_CODE}) )
|
|
CK_BKO_SCRNS := .T.
|
|
ELSE
|
|
CK_BKO_SCRNS := .F.
|
|
ENDIF
|
|
ELSE
|
|
SCRNINFO := TOL_SCREENS(SELFILE) //** P3N - 9/16/98
|
|
IF EMPTY(SCRNINFO) //** P3N - 9/16/98
|
|
ELSE //** P3N - 9/16/98
|
|
IF EMPTY(SCRNINFO[1]) //TOL SCREEN QTY //** P3N - 9/16/98
|
|
ELSE //** P3N - 9/16/98
|
|
//** P3N BACKORDER SCREEN COPIES WHEN NO CUTTING SPECS
|
|
AADD(DATA_ARR[10], SCREEN_CHUNK( SELFILE, ADDL_MODE, WORKSPECS, ;
|
|
MULL_REQ, MULL_TYPE, IS_ALWAYS_SLID, OR_TOP, OR_BOT, ;
|
|
OR_SCR, BO_ITEM, BAL_INFO, RAN_SLID, MLOC_CODE, PRNT_DESC, ;
|
|
AMTVAR, DISC_ARR, PROD_MEMO, WHERE_FROM, MLINE, PROD_CODE, ;
|
|
.T., XFACTOR, DO_SCRNS_ONLY, MPWHERE, MWORK_DESC, MNUM_SCREEN, MNUM_GLASS, G_ARR) )
|
|
//** P3N - 1/27/99 ARE THERE FLANKERS TO PROCESS FOR BACKORDER
|
|
FLANKSCR := BKO_FLANKSCR(G_ARR)
|
|
IF FLANKSCR[1] //**FLANKER SCREENS TO CONSIDER ON BACKORDER
|
|
FSARR := ACLONE(DISC_ARR)
|
|
FSARR[3] := FLANKSCR[2]
|
|
AADD(DATA_ARR[10], SCREEN_CHUNK( SELFILE, ADDL_MODE, WORKSPECS, ;
|
|
MULL_REQ, MULL_TYPE, IS_ALWAYS_SLID, OR_TOP, OR_BOT, ;
|
|
OR_SCR, BO_ITEM, BAL_INFO, RAN_SLID, MLOC_CODE, PRNT_DESC, ;
|
|
AMTVAR, FSARR, PROD_MEMO, WHERE_FROM, MLINE, PROD_CODE, ;
|
|
.T., XFACTOR, DO_SCRNS_ONLY, MPWHERE, MWORK_DESC, MNUM_SCREEN, MNUM_GLASS, G_ARR, FLANKSCR) )
|
|
ENDIF //** P3N - 1/27/99
|
|
ENDIF //** P3N - 9/16/98
|
|
ENDIF //** P3N - 9/16/98
|
|
ENDIF //** 9/15/98 - HAPPY BDAY MOM
|
|
IF XL_EXISTS('SCREENS')
|
|
//** USE THE ADDL_LINES FOR SCREEN BACKORDER STUFF!
|
|
ELSEIF CK_BKO_SCRNS
|
|
//** WORKSPECS := GET_THESE_SPECS( G_ARR, CUT_SPEC_ARR, 'N', SELFILE )
|
|
WORKSPECS := GET_THESE_SPECS( G_ARR, CUT_SPEC_ARR, 'B', SELFILE )
|
|
IF ALLTRIM(ITEM_CAT_CODE) == 'SCREENS' .OR. !EMPTY(WORKSPECS)
|
|
AADD( DATA_ARR[10], SCREEN_CHUNK(SELFILE, ADDL_MODE, WORKSPECS, ;
|
|
MULL_REQ, MULL_TYPE, IS_ALWAYS_SLID, OR_TOP, OR_BOT, ;
|
|
OR_SCR, BO_ITEM, BAL_INFO, RAN_SLID, MLOC_CODE, PRNT_DESC, ;
|
|
AMTVAR, DISC_ARR, PROD_MEMO, WHERE_FROM, MLINE, PROD_CODE, ;
|
|
.T., XFACTOR, DO_SCRNS_ONLY, MPWHERE, MWORK_DESC, MNUM_SCREEN, MNUM_GLASS, G_ARR) )
|
|
ENDIF
|
|
ENDIF
|
|
//** P3N BACKORDER STORM COPIES WHEN MFG. LOC IS NOT THE SAME
|
|
// 11. PROD STORMS PRINT LINES FOR BACKORDERS
|
|
WORKSPECS := GET_THESE_SPECS( G_ARR, CUT_SPEC_ARR, 'S', SELFILE )
|
|
IF ALLTRIM(ITEM_CAT_CODE) == 'STORMS' ;
|
|
.OR. ALLTRIM(ITEM_CAT_CODE) == 'STPW' ;
|
|
.OR. WORKSPECS <> NIL
|
|
WK_QTY := (SELFILE)->QUANTITY
|
|
IF (SELFILE)->CLEAR_SS$'Y' .AND. MHOME_LOC_CODE = 'IOLA'
|
|
GLASS_PRNT := BEST_BOX(GLT_QTY, GLT_WD, GLT_HT, GLB_QTY, GLB_WD, GLB_HT)
|
|
ELSE
|
|
GLASS_PRNT := ''
|
|
ENDIF
|
|
IF ALLTRIM(ITEM_CAT_CODE) == 'STORMS' ;
|
|
.OR. ALLTRIM(ITEM_CAT_CODE) == 'STPW'
|
|
STORM_PRNT := PROD_LINE + ' ' + GLASS_PRNT
|
|
ELSE
|
|
STORM_PRNT := ''
|
|
ENDIF
|
|
IF !MULL_REQ .OR. (MULL_REQ .AND. MULL_TYPE = 'CENTER VERTICAL')
|
|
AADD(DATA_ARR[11], {MLOC_CODE, PRNT_DESC, STORM_PRNT, AMTVAR, ;
|
|
DISC_ARR, PROD_MEMO, WK_QTY ,WHERE_FROM, ;
|
|
MLINE, PROD_CODE, SHP_QTY, XFACTOR, ;
|
|
WORKSPECS, NIL, DO_SCRNS_ONLY, MPWHERE, INV_QTY} )
|
|
ELSE
|
|
AADD(DATA_ARR[11], {MLOC_CODE, PRNT_DESC, ;
|
|
PROD_LINE + ' ** MANUAL BREAKDOWN REQUIRED Due to MULLS **', ;
|
|
AMTVAR, DISC_ARR, PROD_MEMO, WK_QTY ,WHERE_FROM, ;
|
|
MLINE, PROD_CODE, SHP_QTY, XFACTOR, ;
|
|
WORKSPECS, NIL, DO_SCRNS_ONLY , MPWHERE, INV_QTY})
|
|
ENDIF
|
|
ENDIF // END STORMS
|
|
ENDIF // ENDIF (MLOC_CODE = MHOME_LOC_CODE)
|
|
DO_SCRNS_ONLY := .F. //7-30-97
|
|
SELECT (SELFILE)
|
|
SKIP 1
|
|
ENDDO
|
|
//** (CUR_MAST)->ORD_L_TTL and (CUR_MAST)->QUOTE_PRIC ( QUOTED PRICE )
|
|
//** P3N - 09/26/06 ADD THE FULE SURCHARGE INTO THE GL_ARR AS NECESSARY
|
|
|
|
IF ADDL_MODE
|
|
// NO FUEL SURCHARGE ON ADDL LINE ITEM (XL) - ONLY ON OL PASS
|
|
ELSEIF EMPTY( (CUR_MAST)->FUEL_CHRG ) //** P3N - 09/26/06
|
|
//** No Fuel Surcharge - Continue
|
|
//** may be a del_chg (gl-521 amt) from category [$frt_amt or %frt_pct]?
|
|
ELSE //** P3N - 09/26/06
|
|
ELEM := ASCAN(GL_ARR, {|X| X[1] = '521 '} ) //** P3N - 09/26/06
|
|
IF ELEM > 0 //** P3N - 09/26/06
|
|
GL_ARR[ELEM, 2] := GL_ARR[ELEM, 2] + (CUR_MAST)->FUEL_CHRG
|
|
ELSE //** P3N - 09/26/06
|
|
AADD(GL_ARR, { '521 ', (CUR_MAST)->FUEL_CHRG, , 'I' } )
|
|
ENDIF //** P3N - 09/26/06
|
|
ENDIF //** P3N - 09/26/06
|
|
|
|
SELECT(SV_SEL)
|
|
RETURN DATA_ARR
|
|
//**********************************************************
|
|
// P3N - 1/27/99 ARE THERE FLANKER SCREENS FOR BACKORDER PRINTING???
|
|
//**********************************************************
|
|
FUNCTION BKO_FLANKSCR(GETARR)
|
|
LOCAL ELM := 0, RETVAL := .F., FLANKERS := ''
|
|
ELM := ASCAN(GETARR, {|X| X[1] = 'FLANKERS'} )
|
|
IF EMPTY(ELM)
|
|
//** NO FLANKERS
|
|
ELSE
|
|
FLANKERS := ALLTRIM(GETARR[ELM,4])
|
|
ELM := ASCAN(GETARR, {|X| X[1] = 'FLANK SCRN'})
|
|
IF EMPTY(ELM)
|
|
RETVAL := .F.
|
|
FLANKERS := ''
|
|
ELSEIF ALLTRIM(GETARR[ELM,4]) == 'YES'
|
|
RETVAL := .T.
|
|
ELSE
|
|
RETVAL := .F.
|
|
FLANKERS := ''
|
|
ENDIF
|
|
ENDIF
|
|
RETURN {RETVAL, FLANKERS}
|
|
//**********************************************************
|
|
// P3N - BUILD THE SCREEN CHUNK FOR ORDER / BACKORDER PRINTING
|
|
//**********************************************************
|
|
FUNCTION SCREEN_CHUNK(SELFILE, ADDL_MODE, WORKSPECS, MULL_REQ, MULL_TYPE, ;
|
|
IS_ALWAYS_SLID, OR_TOP, OR_BOT, OR_SCR, BO_ITEM, BAL_INFO, ;
|
|
RAN_SLID, MLOC_CODE, PRNT_DESC, ;
|
|
AMTVAR, DISC_ARR, PROD_MEMO, WHERE_FROM, MLINE, PROD_CODE, ;
|
|
BACKORD, XFACTOR, DO_SCRNS_ONLY, MPWHERE, MWORK_DESC, MNUM_SCREEN, ;
|
|
MNUM_GLASS, G_ARR, FLANKSCR)
|
|
// NEW LOGIC TO ADD ADJUSTMENT HERE AND NOT IN CGWPRPO.
|
|
LOCAL PASSARR := {} , OR_DESC := '' ,SHP_QTY := 0 , SCRINFO := {}
|
|
LOCAL WK_WIDTH := (SELFILE)->PRD_WIDTH
|
|
LOCAL WK_HEIGHT := (SELFILE)->PRD_HEIGHT
|
|
LOCAL WK_ADJ_WIDTH := 0, WK_QTY := 0, INV_QTY := 0
|
|
LOCAL WK_ADJ_HEIGHT := 0, WORKVAR, SCREEN_LINE, ELM3
|
|
LOCAL ITEM_CAT_CODE := GET_CATCODE( (SELFILE)->PROD_CODE)
|
|
LOCAL OLQTY := 0 , NUM_IN_SPEC := 0 //**P3N - 9/22/98 HAPPY BDAY CINDY
|
|
LOCAL ELM := 0, FLANKERS := '', TOLKEY //** P3N -11/3/98
|
|
LOCAL OSTKEY := (SELFILE)->ORDER_NUM + STR((SELFILE)->LINE_NUM, 3) + 'SCREENS'
|
|
LOCAL OSTFSK := (SELFILE)->ORDER_NUM + STR((SELFILE)->LINE_NUM, 3) + 'SCRFLNK'
|
|
LOCAL QTYARR := GET_OSTQTY(SELFILE), BKOFLNKSCR := .F.
|
|
IF EMPTY(FLANKSCR) //** P3N - 1/27/99
|
|
IF EMPTY(QTYARR) //** P3N - 12/3/98
|
|
SHP_QTY := 0 //** P3N - 12/3/98
|
|
INV_QTY := 0 //** P3N - 12/3/98
|
|
ELSE //** P3N - 12/3/98
|
|
SHP_QTY := QTYARR[1] //** P3N - 12/3/98
|
|
INV_QTY := QTYARR[2] //** P3N - 12/3/98
|
|
ENDIF //** P3N - 12/3/98
|
|
IF EMPTY(SHP_QTY) .OR. ITEM_CAT_CODE <> 'SCREENS'
|
|
QTYARR := GET_OSTQTY(SELFILE, OSTKEY )
|
|
IF EMPTY(QTYARR) //** P3N - 12/3/98
|
|
SHP_QTY := 0 //** P3N - 12/3/98
|
|
INV_QTY := 0 //** P3N - 12/3/98
|
|
ELSE //** P3N - 12/3/98
|
|
SHP_QTY := QTYARR[1] //** P3N - 12/3/98
|
|
INV_QTY := QTYARR[2] //** P3N - 12/3/98
|
|
ENDIF //** P3N - 12/3/98
|
|
ENDIF
|
|
ELSEIF FLANKSCR[1] //** P3N - 1/27/99
|
|
BKOFLNKSCR := .T. //** P3N - 1/27/99
|
|
QTYARR := GET_OSTQTY(SELFILE, OSTFSK )
|
|
IF EMPTY(QTYARR) //** P3N - 1/27/99
|
|
SHP_QTY := 0 //** P3N - 1/27/99
|
|
INV_QTY := 0 //** P3N - 1/27/99
|
|
ELSE //** P3N - 1/27/99
|
|
SHP_QTY := QTYARR[1] //** P3N - 1/27/99
|
|
INV_QTY := QTYARR[2] //** P3N - 1/27/99
|
|
ENDIF //** P3N - 1/27/99
|
|
ENDIF //** P3N - 1/27/99
|
|
IF EMPTY(MNUM_SCREEN)
|
|
MNUM_SCREEN := CATEGORY->NUM_SCREEN
|
|
IF MNUM_SCREEN = 0
|
|
MNUM_SCREEN := 1
|
|
ENDIF
|
|
ENDIF
|
|
IF EMPTY(MNUM_GLASS)
|
|
MNUM_GLASS := CATEGORY->NUM_GLASS
|
|
ENDIF
|
|
IF ADDL_MODE
|
|
PRODUCT->(DBSEEK( (SELFILE)->PAR_PROD))
|
|
IF PRODUCT->MACH_SCRNW <> 0 .AND. PRODUCT->MACH_SCRNH <> 0
|
|
WK_ADJ_WIDTH := PRODUCT->MACH_SCRNW
|
|
WK_ADJ_HEIGHT := PRODUCT->MACH_SCRNH
|
|
WK_WIDTH := (CUR_OL)->ACT_WIDTH
|
|
WK_HEIGHT := (CUR_OL)->ACT_HEIGHT
|
|
WORKSPECS := NIL
|
|
ENDIF
|
|
PRODUCT->(DBSEEK( (SELFILE)->PROD_CODE ))
|
|
ELSE
|
|
WK_WIDTH := (SELFILE)->ACT_WIDTH
|
|
WK_HEIGHT := (SELFILE)->ACT_HEIGHT
|
|
ENDIF
|
|
IF ADDL_MODE // GET FROM PARENT STUFF
|
|
IF EMPTY(WORKSPECS)
|
|
WK_QTY := (SELFILE)->QUANTITY * MNUM_SCREEN
|
|
ELSE
|
|
WK_QTY := (SELFILE)->QUANTITY // (*)FACTOR FROM WORKSPECS
|
|
ENDIF
|
|
ELSEIF BACKORD
|
|
IF BKOFLNKSCR //** P3N - 1/28/99
|
|
TOLKEY := ORDER_NUM + STR(LINE_NUM) + PROD_CODE + 'SCRFLNK'
|
|
IF SELFILE == 'ADDL_LINES' //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
TOLKEY := ORDER_NUM + STR(LINE_NUM) + PAR_PROD + 'SCRFLNK'
|
|
ENDIF //** P3N - 7/21/99 HAPPY BDAY DANIEL
|
|
ELSEIF GET_CATCODE(PROD_CODE) == 'SCREENS' //** P3N - 5/20/99
|
|
TOLKEY := ORDER_NUM + STR(LINE_NUM) + SPACE(7) + PROD_CODE
|
|
ELSE //** P3N - 1/28/99
|
|
TOLKEY := ORDER_NUM + STR(LINE_NUM) + PROD_CODE + 'SCREENS'
|
|
ENDIF //** P3N - 1/28/99
|
|
IF GET_CATCODE(PROD_CODE) == 'SCREENS' //** P3N - 5/20/99
|
|
SCRINFO := TOL_SCREENS( ,TOLKEY, BKOFLNKSCR) //** P3N -11/3/98
|
|
ELSE
|
|
SCRINFO := TOL_SCREENS(SELFILE,TOLKEY, BKOFLNKSCR) //** P3N -11/3/98
|
|
ENDIF
|
|
IF LEN(SCRINFO) > 2 //** P3N -11/3/98
|
|
BO_ITEM := SCRINFO[3] //** P3N -11/3/98
|
|
ENDIF //** P3N -11/3/98
|
|
WK_QTY := SCRINFO[1] //** P3N - 9/9/98
|
|
PRNT_DESC := SCRINFO[2] //** P3N - 9/9/98
|
|
ELSEIF !ADDL_MODE
|
|
IF EMPTY(WORKSPECS)
|
|
WK_QTY := (SELFILE)->QUANTITY * MNUM_SCREEN
|
|
ELSE
|
|
OLQTY := WORKSPECS[1, 3]
|
|
NUM_IN_SPEC := WORKSPECS[1, 13]
|
|
WK_QTY := OLQTY * NUM_IN_SPEC * ( 1 + XFACTOR )
|
|
//**WK_QTY := (SELFILE)->QUANTITY // (*)FACTOR FROM WORKSPECS
|
|
ENDIF
|
|
ENDIF
|
|
// NORMAL WIDTH WINDOWS / NOT ODD WIDTHS MULLED TOGETHER.
|
|
IF !MULL_REQ .OR. (MULL_REQ .AND. MULL_TYPE = 'CENTER VERTICAL')
|
|
// STPW ONLY??
|
|
IF MULL_REQ
|
|
MNUM_GLASS ++ // SINCE A MULL, EXTRA GLASS REQUIRED (ONLY CENTER VERTICAL ONES GOT TO HERE!
|
|
SELECT PRODUCT
|
|
IF RAN_SLID // REVERSE HT/WIDTH
|
|
WORKVAR := WK_HEIGHT // ADDL_MODE PART ADDED
|
|
WK_HEIGHT := WK_WIDTH // 6-05-95 BY DON
|
|
WK_WIDTH := WORKVAR
|
|
WORKVAR := WK_ADJ_HEIGHT // ADDL_MODE PART ADDED
|
|
WK_ADJ_HEIGHT := WK_ADJ_WIDTH // 6-05-95 BY DON
|
|
WK_ADJ_WIDTH := WORKVAR
|
|
ENDIF
|
|
WK_WIDTH := WK_WIDTH + WK_ADJ_WIDTH
|
|
WK_HEIGHT := WK_HEIGHT + WK_ADJ_HEIGHT
|
|
|
|
WK_QTY := WK_QTY * 2
|
|
WK_WIDTH := WK_WIDTH - MMULL_SASH
|
|
SCREEN_LINE := ''
|
|
IF ITEM_CAT_CODE = 'SCREENS' .AND. EMPTY(WORKSPECS)
|
|
SCREEN_LINE := SET_SCREEN_LINE(MULL_REQ, WK_WIDTH, WK_HEIGHT, ' ', PROD_CODE, PRNT_DESC)
|
|
ENDIF
|
|
ELM3 := {SCREEN_LINE, BO_ITEM} //** P3N = 6/26/98
|
|
PASSARR := {MLOC_CODE, PRNT_DESC, ELM3 , AMTVAR,;
|
|
DISC_ARR, PROD_MEMO, WK_QTY, WHERE_FROM, MLINE, ;
|
|
PROD_CODE, SHP_QTY, 0 , WORKSPECS, MWORK_DESC, ;
|
|
DO_SCRNS_ONLY , MPWHERE, INV_QTY }
|
|
ELSE
|
|
// NO WINDOWS MULLED TOGETHER.
|
|
// SCREEN HEIGHT WILL BE WK_HEIGHT / NUM_GLASS UNLESS ORIEL
|
|
// OR WE ARE USING A STANDARD SIZE SASH ON THE BOTTOM
|
|
IF (OR_TOP = 0 .AND. OR_BOT = 0) .OR. ;
|
|
(OR_TOP = 1 .AND. OR_BOT = 1) .OR. MNUM_GLASS = 1
|
|
// 2 PIECES OF GLASS AT 1/2 SIZE EACH
|
|
IF IS_ALWAYS_SLID
|
|
WK_WIDTH := WK_WIDTH / MNUM_GLASS
|
|
ELSE
|
|
WK_HEIGHT := WK_HEIGHT / MNUM_GLASS
|
|
ENDIF
|
|
ELSE
|
|
// oriel processing here.
|
|
IF OR_SCR > 0 // FROM STD SIZE TABLE
|
|
IF IS_ALWAYS_SLID
|
|
WK_WIDTH := OR_SCR
|
|
WK_ADJ_HEIGHT := 0 // is this true??
|
|
ELSE
|
|
WK_HEIGHT := OR_SCR
|
|
WK_ADJ_HEIGHT := 0 // is this true??
|
|
ENDIF
|
|
ELSE
|
|
IF OR_TOP > 0
|
|
IF IS_ALWAYS_SLID
|
|
WK_WIDTH := WK_WIDTH - OR_TOP // SCREEN GOES ON BOTTOM
|
|
ELSE
|
|
WK_HEIGHT := WK_HEIGHT - OR_TOP // SCREEN GOES ON BOTTOM
|
|
ENDIF
|
|
ELSE
|
|
IF IS_ALWAYS_SLID
|
|
WK_WIDTH := OR_BOT // SCREEN GOES ON BOTTOM
|
|
ELSE
|
|
WK_HEIGHT := OR_BOT // SCREEN GOES ON BOTTOM
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
WK_HEIGHT := WK_HEIGHT + WK_ADJ_HEIGHT
|
|
WK_WIDTH := WK_WIDTH + WK_ADJ_WIDTH
|
|
IF RAN_SLID .AND. !ADDL_MODE // REVERSE HT/WIDTH (IF !ADDL_MODE 6-5-95)
|
|
WORKVAR := WK_HEIGHT
|
|
WK_HEIGHT := WK_WIDTH
|
|
WK_WIDTH := WORKVAR
|
|
ENDIF
|
|
IF EMPTY(BAL_INFO) //** P3N - 03/30/98
|
|
// NO BALANCE SIZE INFO - NOT A STD_SASH
|
|
ELSEIF EMPTY(WORKSPECS)
|
|
// NO CUTTING SPEC INFO
|
|
ELSE // DETERMINE THE SCREEN SIZE FOR STD_SASH
|
|
IF LEN(WORKSPECS) < 2 .OR. EMPTY(WORKSPECS[1,6]) .OR. EMPTY(WORKSPECS[2,6])
|
|
ERR_BOX(' Order line - ' + STR( (SELFILE)->LINE_NUM, 3) + ;
|
|
' / Model - ' + (SELFILE)->PROD_CODE + ' Contains', ;
|
|
' Invalid or missing SCREEN Cutting Specs! ', ' ', ;
|
|
' PRODUCTION SCREEN COPY may NOT be accurate!')
|
|
ELSE
|
|
ADJ_HT := EVAL_MATH( WORKSPECS[2,6], G_ARR, '_CUT_SP', ;
|
|
WORKSPECS[2,1], SELFILE,'CUT')
|
|
WK_HEIGHT := ADJ_HT - OR_TOP
|
|
WORKSPECS[2,7] := WK_HEIGHT
|
|
ENDIF
|
|
ENDIF
|
|
IF ITEM_CAT_CODE = 'SCREENS' .AND. EMPTY(WORKSPECS)
|
|
SCREEN_LINE := SET_SCREEN_LINE(MULL_REQ, WK_WIDTH, WK_HEIGHT, OR_DESC, PROD_CODE, PRNT_DESC)
|
|
ELSE
|
|
SCREEN_LINE := ''
|
|
ENDIF
|
|
SELECT (SELFILE)
|
|
ELM3 := {SCREEN_LINE, BO_ITEM} //** P3N = 6/26/98
|
|
PASSARR := {MLOC_CODE, PRNT_DESC, ELM3 , AMTVAR,;
|
|
DISC_ARR, PROD_MEMO, WK_QTY, WHERE_FROM, MLINE, ;
|
|
PROD_CODE, SHP_QTY, 0 , WORKSPECS, MWORK_DESC, ;
|
|
DO_SCRNS_ONLY , MPWHERE, INV_QTY }
|
|
ENDIF
|
|
ENDIF
|
|
RETURN PASSARR
|
|
******************************************************************
|
|
* GET THE BACKORDER QTY FOR SCREENS - FROM THE TORD_LINES DATABASE
|
|
* //** P3N - 9/9/98
|
|
******************************************************************
|
|
FUNCTION TOL_SCREENS(SELFILE, PASSKEY, FLANKERS)
|
|
LOCAL SVREC := 1, TOLKEY, FLANKCNT := 0, RETVAL := { 0 , '' }, BO_ITEM
|
|
IF EMPTY(FLANKERS) //** P3N - 1/27/99
|
|
FLANKERS := .F. //** P3N - 1/27/99
|
|
ENDIF //** P3N - 1/27/99
|
|
IF SELECT('TORD_LINES') > 0
|
|
SVREC := TORD_LINES->(RECNO())
|
|
TORD_LINES->(DBGOTOP())
|
|
IF (CUR_MAST)->ORDER_NUM == TORD_LINES->ORDER_NUM
|
|
ELSE
|
|
CLOSE TORD_LINES
|
|
BLD_TORD_LINES((CUR_MAST)->ORDER_NUM)
|
|
ENDIF
|
|
ELSE
|
|
BLD_TORD_LINES((CUR_MAST)->ORDER_NUM)
|
|
ENDIF
|
|
TORD_LINES->(DBGOTOP())
|
|
DO WHILE TORD_LINES->(!EOF())
|
|
IF EMPTY(SELFILE)
|
|
TOLKEY := TORD_LINES->ORDER_NUM + STR(TORD_LINES->LINE_NUM, 3)
|
|
TOLKEY := TOLKEY + TORD_LINES->PAR_PROD + TORD_LINES->PROD_CODE
|
|
IF TOLKEY == PASSKEY
|
|
RETVAL := { TORD_LINES->QUANTITY, TORD_LINES->ITEM_DESC }
|
|
IF FLANKERS //** P3N - 7/21/99
|
|
IF TORD_LINES->PROD_CODE == 'SCRFLNK' //** P3N - 7/21/99
|
|
BO_ITEM := '(' + TORD_LINES->HOW_MEAS + ') '
|
|
BO_ITEM := BO_ITEM + TORD_LINES->ENTRY_SIZE
|
|
RETVAL := { TORD_LINES->QUANTITY, TORD_LINES->ITEM_DESC, BO_ITEM}
|
|
ENDIF
|
|
ENDIF
|
|
EXIT
|
|
ENDIF
|
|
ELSEIF TORD_LINES->ORDER_NUM == (SELFILE)->ORDER_NUM
|
|
IF TORD_LINES->LINE_NUM == (SELFILE)->LINE_NUM
|
|
IF TORD_LINES->PAR_PROD == (SELFILE)->PROD_CODE
|
|
IF FLANKERS //** P3N - 1/27/99
|
|
IF TORD_LINES->PROD_CODE == 'SCRFLNK' //** P3N - 1/27/99
|
|
BO_ITEM := '(' + TORD_LINES->HOW_MEAS + ') '
|
|
BO_ITEM := BO_ITEM + TORD_LINES->ENTRY_SIZE
|
|
RETVAL := { TORD_LINES->QUANTITY, TORD_LINES->ITEM_DESC, BO_ITEM}
|
|
EXIT
|
|
ENDIF
|
|
ELSEIF TORD_LINES->PROD_CODE == 'SCREENS'
|
|
RETVAL := { TORD_LINES->QUANTITY, TORD_LINES->ITEM_DESC }
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
TORD_LINES->(DBSKIP(+1) )
|
|
ENDDO
|
|
TORD_LINES->(DBGOTO(SVREC) )
|
|
RETURN RETVAL
|
|
******************************************************************
|
|
* GET THE ORDER SHIPPING TRANS IN ORDER TO CALC BACKORDERS!
|
|
* //** P3N - 5/1/98
|
|
******************************************************************
|
|
FUNCTION GET_OSTQTY(CUR_OL, MISCKEY , PARTIAL_INVOICE, REPRINT_INVOICE)
|
|
LOCAL RETVAL := {}, RETSHP := 0, RETINV := 0, SVSEL := SELECT()
|
|
|
|
PRIVATE SEEKKEY := (CUR_OL)->ORDER_NUM + STR((CUR_OL)->LINE_NUM, 3) + ;
|
|
(CUR_OL)->PROD_CODE + (CUR_OL)->PAR_PROD
|
|
PRIVATE SAMELIN := 'ORDER_NUM + STR(LINE_NUM, 3)+PROD_CODE+PAR_PROD == SEEKKEY'
|
|
|
|
//DEFAULT PARTIAL_INVOICE := .F.
|
|
//DEFAULT REPRINT_INVOICE := .F.
|
|
|
|
If( PARTIAL_INVOICE == nil, PARTIAL_INVOICE := .F., )
|
|
If( REPRINT_INVOICE == nil, REPRINT_INVOICE := .F., )
|
|
|
|
|
|
IF EMPTY(PARTIAL_INVOICE) //** P3N - 12/9/98
|
|
PARTIAL_INVOICE := .F. //** P3N - 12/9/98
|
|
ENDIF //** P3N - 12/9/98
|
|
IF EMPTY(REPRINT_INVOICE) //** P3N - 12/9/98
|
|
REPRINT_INVOICE := .F. //** P3N - 12/9/98
|
|
ENDIF //** P3N - 12/9/98
|
|
IF EMPTY(MISCKEY)
|
|
ELSE
|
|
SEEKKEY := MISCKEY
|
|
SAMELIN := 'ORDER_NUM + STR(LINE_NUM, 3)+PROD_CODE == SEEKKEY'
|
|
ENDIF
|
|
SELECT ORD_SHIP
|
|
IF ORD_SHIP->(DBSEEK(SEEKKEY))
|
|
DO WHILE !EOF() .AND. &SAMELIN
|
|
IF REPRINT_INVOICE .AND. EMPTY(INV_QTY) //** P3N - 12/9/98
|
|
//** PARTIAL INVOICE SHIPPED TO NEW ORDER
|
|
ELSE
|
|
RETSHP := RETSHP + ORD_SHIP->SHIP_QTY
|
|
ENDIF
|
|
RETINV := RETINV + ORD_SHIP->INV_QTY
|
|
ORD_SHIP->(DBSKIP(+1))
|
|
ENDDO
|
|
ENDIF
|
|
SELECT(SVSEL)
|
|
RETURN {RETSHP, RETINV}
|
|
******************************************************************
|
|
* IS THERE A STOCK SCREEN AND HOW WERE THE MEASUREMENTS ENTERED
|
|
******************************************************************
|
|
FUNCTION SET_SCREEN_LINE(MULL_REQ, WK_WIDTH, WK_HEIGHT, OR_DESC, PROD_CODE, PRNT_DESC)
|
|
LOCAL SCREEN_LINE := ''
|
|
IF (IN_STOCK == 'Y' .AND. HOW_MEAS == 'NS') .AND. ;
|
|
(PROD_CODE = '500' .AND. AT('WHITE', PRNT_DESC) > 0)
|
|
SCREEN_LINE := ENTRY_SIZE
|
|
ELSEIF MULL_REQ
|
|
SCREEN_LINE := PRNT_SIZE(WK_WIDTH/2, WK_HEIGHT)
|
|
ELSE
|
|
SCREEN_LINE := PRNT_SIZE(WK_WIDTH, WK_HEIGHT) + OR_DESC
|
|
ENDIF
|
|
IF IN_STOCK == 'Y'
|
|
SCREEN_LINE := TRIM(SCREEN_LINE) + ' (S)'
|
|
ENDIF
|
|
RETURN SCREEN_LINE
|
|
************************************************************
|
|
* IS THERE AN ADDITIONAL LINE ITEM
|
|
* FOR THE TYPE PASSED ??? (IE: 'SCREEN')
|
|
************************************************************
|
|
FUNCTION XL_EXISTS(WHAT_TYPE)
|
|
LOCAL SV_SEL := SELECT()
|
|
LOCAL SV_REC := (SV_SEL)->(RECNO()) //** P3N - 7/20/98
|
|
LOCAL SV_ORD := INDEXORD(), RETVAL := .F.
|
|
LOCAL SEEKKEY := (CUR_OL)->ORDER_NUM+(CUR_OL)->PROD_CODE
|
|
SELECT (CUR_XL)
|
|
DONSETORD(2) // ORDER + PAR_PROD
|
|
SEEK SEEKKEY
|
|
IF FOUND()
|
|
IF GET_CATCODE(PROD_CODE) == WHAT_TYPE
|
|
RETVAL := .T.
|
|
ELSE
|
|
RETVAL := .F.
|
|
ENDIF
|
|
ENDIF
|
|
SET ORDER TO SV_ORD
|
|
SELECT(SV_SEL)
|
|
(SV_SEL)->(DBGOTO(SV_REC)) //** P3N - 7/20/98
|
|
RETURN RETVAL
|
|
************************************************************
|
|
* IS THIS ORDER ASSESSED A DELIVERY CHARGE ???
|
|
************************************************************
|
|
FUNCTION IS_DELIVERED()
|
|
LOCAL SEEKKEY := (CUR_MAST)->SHP_METHOD, SV_SEL := SELECT(), RET_VAL := .F.
|
|
IF SHIPMETH->(DBSEEK(SEEKKEY))
|
|
IF SHIPMETH->DEL_CHG$'Y' //DELIVERY CHARGE ????
|
|
RET_VAL := .T.
|
|
ENDIF
|
|
ENDIF
|
|
SELECT(SV_SEL)
|
|
RETURN RET_VAL
|
|
************************************************************
|
|
************************************************************
|
|
************************************************************
|
|
FUNCTION BEST_BOX(GLT_QTY, GLT_WD, GLT_HT, GLB_QTY, GLB_WD, GLB_HT)
|
|
LOCAL RETARR := {}, SAVESEL := SELECT(), I
|
|
LOCAL PRNTLINE, BESTWASTE:=9999, THISWASTE, THISSIZE
|
|
LOCAL BEST_BOX1, BEST_BOX2, ORIEL, WASTE1, RETVAL:=''
|
|
STATIC GLASS_ARR
|
|
IF GLT_WD = NIL
|
|
RETURN RETVAL
|
|
ENDIF
|
|
// IF ORIEL, 1 BOX FOR EACH PIECE OF GLASS
|
|
// OTHERWISE, GIVE BEST 1 AND BEST 2 SITUATION
|
|
IF GLB_QTY = 0
|
|
ORIEL := .F.
|
|
ELSE
|
|
ORIEL := .T.
|
|
ENDIF
|
|
// LOOK ON 'GLASS_BOX' FILE TO FIND BEST SIZE WITH LEAST WASTE
|
|
IF GLASS_ARR = NIL
|
|
GLASS_ARR := {}
|
|
DBOPEN('GLASS_BOX')
|
|
GOTO TOP
|
|
DO WHILE !EOF()
|
|
AADD(GLASS_ARR, { BOX_NUM, WIDTH, HEIGHT } )
|
|
SKIP 1
|
|
ENDDO
|
|
CLOSE GLASS_BOX
|
|
SELECT (SAVESEL)
|
|
ENDIF
|
|
THISSIZE := GLT_WD * GLT_HT
|
|
BESTWASTE := 9999
|
|
FOR I := 1 TO LEN(GLASS_ARR)
|
|
IF (GLT_WD <= GLASS_ARR[I,2] .AND. GLT_HT <= GLASS_ARR[I,3]) .OR. ;
|
|
(GLT_WD <= GLASS_ARR[I,3] .AND. GLT_HT <= GLASS_ARR[I,2])
|
|
THISWASTE := (GLASS_ARR[I,2] * GLASS_ARR[I,3]) - THISSIZE
|
|
IF THISWASTE < BESTWASTE
|
|
BESTWASTE := THISWASTE
|
|
BEST_BOX1 := GLASS_ARR[I,1]
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
WASTE1 := BESTWASTE
|
|
IF ORIEL
|
|
THISSIZE := GLB_WD * GLB_HT
|
|
BESTWASTE := 9999
|
|
FOR I := 1 TO LEN(GLASS_ARR)
|
|
IF (GLB_WD <= GLASS_ARR[I,2] .AND. GLB_HT <= GLASS_ARR[I,3]) .OR. ;
|
|
(GLB_WD <= GLASS_ARR[I,3] .AND. GLB_HT <= GLASS_ARR[I,2])
|
|
THISWASTE := (GLASS_ARR[I,2] * GLASS_ARR[I,3]) - THISSIZE
|
|
IF THISWASTE < BESTWASTE
|
|
BESTWASTE := THISWASTE
|
|
BEST_BOX2 := GLASS_ARR[I,1]
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
ELSE
|
|
THISSIZE := GLB_WD * GLB_HT * 2
|
|
FOR I := 1 TO LEN(GLASS_ARR)
|
|
IF ((GLB_WD * 2) <= GLASS_ARR[I,2] .AND. GLB_HT <= GLASS_ARR[I,3]) .OR. ;
|
|
((GLB_WD * 2) <= GLASS_ARR[I,3] .AND. GLB_HT <= GLASS_ARR[I,2]) .OR. ;
|
|
(GLB_WD <= GLASS_ARR[I,2] .AND. (GLB_HT * 2) <= GLASS_ARR[I,3]) .OR. ;
|
|
(GLB_WD <= GLASS_ARR[I,3] .AND. (GLB_HT * 2) <= GLASS_ARR[I,2])
|
|
THISWASTE := (GLASS_ARR[I,2] * GLASS_ARR[I,3]) - THISSIZE
|
|
IF THISWASTE < BESTWASTE
|
|
BESTWASTE := THISWASTE
|
|
BEST_BOX2 := GLASS_ARR[I,1]
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
ENDIF
|
|
IF BEST_BOX1 = NIL
|
|
BEST_BOX1 := '??'
|
|
ENDIF
|
|
IF BEST_BOX2 = NIL
|
|
BEST_BOX2 := '??'
|
|
ENDIF
|
|
IF ORIEL
|
|
RETURN 'Top~-~BOX~' + ALLTRIM(BEST_BOX1) + ' Bottom~-~BOX~' + ALLTRIM(BEST_BOX2)
|
|
ELSE
|
|
SQFT_SAVED := (WASTE1 - BESTWASTE) / 144
|
|
IF BEST_BOX1 <> '??'
|
|
RETVAL := ' BOX~' + ALLTRIM(BEST_BOX1)
|
|
ENDIF
|
|
IF BEST_BOX2 <> '??'
|
|
RETVAL := RETVAL + ' -or- 2/1~use~BOX~';
|
|
+ ALLTRIM(BEST_BOX2) + ' (~' + ALLTRIM(STR(SQFT_SAVED,7,2)) ;
|
|
+ '~Saved~)'
|
|
ENDIF
|
|
ENDIF
|
|
RETVAL := ALLTRIM(RETVAL)
|
|
RETURN ' ' + RETVAL
|
|
************************************************************
|
|
************************************************************
|
|
************************************************************
|
|
FUNCTION CK_HALF_SIZE(ITEM_CAT_CODE, SELFILE, OPTFILE, OR_ARR, RAN_SLID, P_WIDTH, P_HEIGHT, EXP_REQ, IS_ALWAYS_SLID, G_ARR)
|
|
LOCAL SEEKKEY, FACT, CALC_VAR, PRNT_VAR := '', ORI_SIZE
|
|
LOCAL OR_TOP := OR_ARR[1], OR_BOT := OR_ARR[2], IS_SLIDER := .F.
|
|
LOCAL WK_HEIGHT, WK_WIDTH, SAVESEL := SELECT()
|
|
// NORMALLY, HALF SIZE IS HEIGHT / 2 UNLESS RANCH SLIDER
|
|
// WINDOW ROTATED 90 DEGREES (HT BECOMES WIDTH, WD BECOMES HT)
|
|
IF RAN_SLID .OR. IS_ALWAYS_SLID
|
|
WK_WIDTH := P_HEIGHT
|
|
WK_HEIGHT := P_WIDTH
|
|
ELSE
|
|
WK_WIDTH := P_WIDTH
|
|
WK_HEIGHT := P_HEIGHT
|
|
ENDIF
|
|
IF CATEGORY->(DBSEEK(ITEM_CAT_CODE))
|
|
IF CATEGORY->PRNT_HS = 'Y' .AND. ;
|
|
( EMPTY(CATEGORY->HS_RULE) .OR. CHK_RULE(CATEGORY->HS_RULE, G_ARR , , SELFILE) )
|
|
// PRINT CALC_VAR DIVIDED BY 2 INCLUDING FRACTIONS
|
|
FACT := 2
|
|
ELSE
|
|
SELECT (SAVESEL)
|
|
RETURN '' //** P3N - 6/17/99
|
|
//**RETURN NIL //** P3N - 6/17/99
|
|
ENDIF
|
|
IF OR_TOP <> 0
|
|
IF (SELFILE)->IN_STOCK$'Y'
|
|
PRNT_VAR := ' '
|
|
ELSE
|
|
// ADDED IOLA CONDITION 6-6-95 - DON
|
|
IF EXP_REQ .AND. MHOME_LOC_CODE = 'KC'
|
|
TOPNUM := OR_TOP + .5
|
|
ELSE
|
|
TOPNUM := OR_TOP
|
|
ENDIF
|
|
TOPPART := TOPNUM
|
|
BOTPART := WK_HEIGHT - TOPPART
|
|
PRNT_VAR := ' ( ' + PRNT_SIZE(TOPPART, BOTPART, '/') + ' )'
|
|
ENDIF
|
|
ELSEIF OR_BOT <> 0
|
|
IF (SELFILE)->IN_STOCK$'Y'
|
|
PRNT_VAR := ' '
|
|
ELSE
|
|
IF EXP_REQ .AND. MHOME_LOC_CODE = 'KC'
|
|
BOTNUM := OR_BOT - .5
|
|
ELSE
|
|
BOTNUM := OR_BOT
|
|
ENDIF
|
|
TOPPART := WK_HEIGHT - BOTNUM
|
|
BOTPART := BOTNUM
|
|
PRNT_VAR := ' ( ' + PRNT_SIZE(TOPPART, BOTPART, '/') + ' )'
|
|
ENDIF
|
|
ELSE
|
|
CALC_VAR := WK_HEIGHT / FACT
|
|
// PRINT THIS AS THE HALF SIZE
|
|
PRNT_VAR := ' ( ' + PRNT_SIZE(CALC_VAR, NIL) + ' )'
|
|
ENDIF
|
|
ENDIF
|
|
SELECT (SAVESEL)
|
|
RETURN STRTRAN(PRNT_VAR, ' ', '~')
|
|
**********************************************
|
|
**********************************************
|
|
**********************************************
|
|
FUNCTION CK_XTRAWIND(SELFILE, OPTFILE, ADDL_MODE)
|
|
// IS IT AN EXTRA WINDOW SITUATION?
|
|
LOCAL SAVESEL := SELECT(), RETVAL := 0, I
|
|
LOCAL SEEKKEY := '' //** P3N - 05/24/02
|
|
SELECT (SELFILE)
|
|
FOR I := 1 TO 2
|
|
IF I = 1
|
|
SEEKKEY := BLD_OPT_SEEK(SELFILE, 'XTRA WIND')
|
|
ELSE
|
|
SEEKKEY := BLD_OPT_SEEK(SELFILE, 'FRENCH STY')
|
|
ENDIF
|
|
// DIRECT SEEK ON THIS ATTRIBUTE
|
|
SELECT (OPTFILE) // EITHER ORDER_OPTS OR ADDL_OPTS
|
|
SEEK SEEKKEY
|
|
IF FOUND()
|
|
IF I = 1
|
|
RETVAL := VAL(USER_RESP)
|
|
ELSE
|
|
RETVAL := 1
|
|
ENDIF
|
|
ENDIF
|
|
// IF ADDL_MODE AND CHECK IF XTRA PARENT WINDOWS. IF SO,
|
|
// THE ADD-ON PRODUCT MUST GET EXTRAS ALSO
|
|
IF ADDL_MODE
|
|
SEEKKEY := (SELFILE)->ORDER_NUM + STR( (SELFILE)->LINE_NUM,3) + 'XTRA WIND'
|
|
// DIRECT SEEK ON THIS ATTRIBUTE
|
|
SELECT (CUR_OO) // PARENT OPTIONS
|
|
SEEK SEEKKEY
|
|
IF FOUND()
|
|
IF I = 1
|
|
RETVAL := VAL(USER_RESP)
|
|
ELSE
|
|
RETVAL := 1
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF RETVAL <> 0
|
|
EXIT
|
|
ENDIF
|
|
NEXT
|
|
SELECT (SELFILE)
|
|
RETURN RETVAL
|
|
**********************************************
|
|
**********************************************
|
|
**********************************************
|
|
FUNCTION ALWAYS_SLIDER(SELFILE, OPTFILE, ADDL_MODE)
|
|
// IS IT ALWAYS A RANCH SLIDER?
|
|
LOCAL SAVESEL := SELECT(), RAN_SLID := .F.
|
|
SELECT (SELFILE)
|
|
SEEKKEY := BLD_OPT_SEEK(SELFILE, 'RANCH SLID')
|
|
// DIRECT SEEK ON THIS ATTRIBUTE
|
|
SELECT (OPTFILE) // EITHER ORDER_OPTS OR ADDL_OPTS
|
|
SEEK SEEKKEY
|
|
IF FOUND()
|
|
IF ALLTRIM(USER_RESP) == 'ALWAYS SLIDER'
|
|
RAN_SLID = .T.
|
|
ENDIF
|
|
ENDIF
|
|
// IF ADDL_MODE AND PARENT IS A SLIDER
|
|
// THE ADD-ON PRODUCT MUST BE A SLIDER ALSO
|
|
IF !RAN_SLID .AND. ADDL_MODE
|
|
SEEKKEY := (SELFILE)->ORDER_NUM + STR( (SELFILE)->LINE_NUM,3) + 'RANCH SLID'
|
|
// DIRECT SEEK ON THIS ATTRIBUTE
|
|
SELECT (CUR_OO) // PARENT OPTIONS
|
|
SEEK SEEKKEY
|
|
IF FOUND()
|
|
IF ALLTRIM(USER_RESP) == 'ALWAYS SLIDER'
|
|
RAN_SLID = .T.
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
SELECT (SELFILE)
|
|
RETURN RAN_SLID
|
|
**********************************************
|
|
**********************************************
|
|
**********************************************
|
|
FUNCTION CK_SLIDER(SELFILE, OPTFILE, ADDL_MODE)
|
|
// IS IT A RANCH SLIDER?
|
|
LOCAL SAVESEL := SELECT(), RAN_SLID := .F.
|
|
SELECT (SELFILE)
|
|
SEEKKEY := BLD_OPT_SEEK(SELFILE, 'RANCH SLID')
|
|
// DIRECT SEEK ON THIS ATTRIBUTE
|
|
SELECT (OPTFILE) // EITHER ORDER_OPTS OR ADDL_OPTS
|
|
SEEK SEEKKEY
|
|
IF FOUND()
|
|
IF ALLTRIM(USER_RESP) == 'RANCH SLIDER'
|
|
RAN_SLID = .T.
|
|
ENDIF
|
|
ENDIF
|
|
// IF ADDL_MODE AND PARENT IS A SLIDER
|
|
// THE ADD-ON PRODUCT MUST BE A SLIDER ALSO
|
|
IF !RAN_SLID .AND. ADDL_MODE
|
|
SEEKKEY := (SELFILE)->ORDER_NUM + STR( (SELFILE)->LINE_NUM,3) + 'RANCH SLID'
|
|
// DIRECT SEEK ON THIS ATTRIBUTE
|
|
SELECT (CUR_OO) // PARENT OPTIONS
|
|
SEEK SEEKKEY
|
|
IF FOUND()
|
|
IF ALLTRIM(USER_RESP) == 'RANCH SLIDER'
|
|
RAN_SLID = .T.
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
SELECT (SELFILE)
|
|
RETURN RAN_SLID
|
|
**********************************************
|
|
* CHECK FOR A FRENCH DOOR ATTRIBUTE !
|
|
* PERRY - 2-11-98
|
|
**********************************************
|
|
FUNCTION CK_FRENCH(SELFILE, OPTFILE, ADDL_MODE)
|
|
// IS IT A FRENCH STYLE DOOR KIT?
|
|
LOCAL SAVESEL := SELECT(), FRENCHDOOR := .F.
|
|
SELECT (SELFILE)
|
|
SEEKKEY := BLD_OPT_SEEK(SELFILE, 'FRENCH STY')
|
|
// DIRECT SEEK ON THIS ATTRIBUTE
|
|
SELECT (OPTFILE) // EITHER ORDER_OPTS OR ADDL_OPTS
|
|
SEEK SEEKKEY
|
|
IF FOUND()
|
|
IF ALLTRIM(USER_RESP) == 'FRENCH STYLE KIT'
|
|
FRENCHDOOR := .T.
|
|
ENDIF
|
|
ENDIF
|
|
SELECT (SELFILE)
|
|
RETURN FRENCHDOOR
|
|
**********************************************
|
|
**********************************************
|
|
**********************************************
|
|
FUNCTION CK_MULLS(SELFILE, OPTFILE)
|
|
// IS MULL REQUIRED?
|
|
LOCAL SAVESEL := SELECT(), MULL_REQ := .F., MULL_TYPE := NIL
|
|
SELECT (SELFILE)
|
|
SEEKKEY := BLD_OPT_SEEK(SELFILE, 'MULL LOC ')
|
|
// DIRECT SEEK ON THIS ATTRIBUTE
|
|
SELECT (OPTFILE) // EITHER ORDER_OPTS OR ADDL_OPTS
|
|
SEEK SEEKKEY
|
|
IF FOUND()
|
|
IF !EMPTY(USER_RESP) .AND. ALLTRIM(USER_RESP) <> 'N/A'
|
|
MULL_REQ = .T.
|
|
ENDIF
|
|
IF ALLTRIM(USER_RESP) == 'CENTER VERTICAL'
|
|
MULL_TYPE = ALLTRIM(USER_RESP)
|
|
ENDIF
|
|
ENDIF
|
|
SELECT (SELFILE)
|
|
RETURN {MULL_REQ, MULL_TYPE}
|
|
******************************************************************
|
|
******************************************************************
|
|
******************************************************************
|
|
FUNCTION BLD_OPT_SEEK(SELFILE, MATT_CODE)
|
|
//BUILD THE SEEKKEY FOR OPTIONS FILE
|
|
//**LOCAL SEEKKEY //** P3N - 07/19/13 - ABEND LINDA @ LINDS -
|
|
LOCAL SEEKKEY := '' //** P3N - 07/19/13 - ABEND LINDA @ LINDS - JUST IN CASE NOT FOUND ASSIGN TO EMPTY
|
|
IF SELFILE == CUR_OL
|
|
SEEKKEY = (SELFILE)->ORDER_NUM + STR( (SELFILE)->LINE_NUM,3) + MATT_CODE
|
|
ELSEIF SELFILE == CUR_XL
|
|
SEEKKEY = (SELFILE)->ORDER_NUM + (SELFILE)->PROD_CODE + STR( (SELFILE)->LINE_NUM,3) + MATT_CODE
|
|
ENDIF
|
|
RETURN SEEKKEY
|
|
******************************************************************
|
|
******************************************************************
|
|
******************************************************************
|
|
FUNCTION CK_ORIEL(ITEM_CAT_CODE, SELFILE, OPTFILE, ADDL_MODE, RAN_SLID, IS_ALWAYS_SLID )
|
|
LOCAL SAVESEL := SELECT()
|
|
LOCAL SEEKKEY, BALANCE_SIZE, WORKVAL1, WORKVAL2, WORKVAL3
|
|
LOCAL OR_TOP := 0, OR_BOT := 0, OR_ARR := {}, STDBOTTSASH := .F.
|
|
LOCAL SCRNSIZE, WORKDIFF, OR_REASON := 'NO ORIEL'
|
|
LOCAL OR_SCR := 0 ,OR_GLASS := 0, ODD_ORIEL := .F., DEFAULT_ORIEL := .F.
|
|
LOCAL SIZEARR := {}, MWIDTH, MHEIGHT
|
|
IF EMPTY(IS_ALWAYS_SLID) //** P3N - 3/24/99
|
|
IS_ALWAYS_SLID := .F. //** P3N - 3/24/99
|
|
ENDIF //** P3N - 3/24/99
|
|
// ORIEL SPECIFICATIONS APPEAR IN PARENT SPECS ONLY
|
|
SEEKKEY = (SELFILE)->ORDER_NUM + STR( (SELFILE)->LINE_NUM,3) + 'ORIEL TOP'
|
|
SELECT(CUR_OO)
|
|
SEEK SEEKKEY
|
|
IF FOUND()
|
|
OR_TOP := DECVAL(USER_RESP)
|
|
OR_REASON := 'ATT CODE'
|
|
ENDIF
|
|
SEEKKEY = (SELFILE)->ORDER_NUM + STR( (SELFILE)->LINE_NUM,3) + 'ORIEL BOTT'
|
|
SELECT(CUR_OO)
|
|
SEEK SEEKKEY
|
|
IF FOUND()
|
|
OR_BOT := DECVAL(USER_RESP)
|
|
OR_REASON := 'ATT CODE'
|
|
ENDIF
|
|
SEEKKEY = (SELFILE)->ORDER_NUM + STR( (SELFILE)->LINE_NUM,3) + 'ORIEL BOTT'
|
|
SELECT(CUR_OO)
|
|
SEEK SEEKKEY
|
|
IF FOUND()
|
|
OR_BOT := DECVAL(USER_RESP)
|
|
OR_REASON := 'ATT CODE'
|
|
ENDIF
|
|
IF !ADDL_MODE .AND. PRODUCT->SS_BOTSASH$'Y'
|
|
STDBOTTSASH := .T.
|
|
ENDIF
|
|
SELECT PRODUCT
|
|
SAVEREC := RECNO()
|
|
IF ADDL_MODE
|
|
SEEK (CUR_XL)->PAR_PROD
|
|
IF FOUND() .AND. PRODUCT->SS_BOTSASH$'Y'
|
|
STDBOTTSASH := .T.
|
|
ENDIF
|
|
ENDIF
|
|
// CHECK THE STDSASH FILE AND FORCE TO OR_BOT
|
|
IF OR_TOP = 0 .AND. OR_BOT = 0
|
|
IF STDBOTTSASH
|
|
SEEKKEY := PRODUCT->PROD_CODE
|
|
SELECT STD_SASH
|
|
SEEK SEEKKEY
|
|
WORKVAL1 := (SELFILE)->ACT_HEIGHT
|
|
DO WHILE PROD_CODE == SEEKKEY .AND. !EOF()
|
|
WORKVAL2 := DECVAL( UP_TO_SIZE )
|
|
IF WORKVAL1 <= WORKVAL2
|
|
BALANCE_SIZE := BOTT_SASH
|
|
IF BOTT_SIZE = 0
|
|
WORKVAL3 := DECVAL( BOTT_SASH )
|
|
ELSE
|
|
WORKVAL3 := BOTT_SIZE * 2 // WILL DIVIDE BY 2 BELOW!
|
|
ENDIF
|
|
WORKDIFF = ABS( WORKVAL1 - WORKVAL3 )
|
|
IF ADDL_MODE .AND. ALLTRIM(ITEM_CAT_CODE) = 'STORMS' ;
|
|
.AND. WORKDIFF <= 1.5 // DON'T ADDJUST ADD ON STORMS WITHIN 1.5 INCHES OF BALANCE SIZE
|
|
ELSE
|
|
IF (SELFILE)->HOW_MEAS == 'NS' //** P3N - 07/05/01
|
|
//** STD SASH/NOM SIZE ADJUSTMENT //** P3N - 07/05/01
|
|
//** RE: PAWNEE - DARYL //** P3N - 07/05/01
|
|
//** OR_BOT := (WORKVAL3 / 2) + WORKDIFF // UNEQUAL ORIEL LITES
|
|
ELSE
|
|
WORKDIFF := WORKVAL1 - VAL(BALANCE_SIZE) //** P3N - 06/29/01
|
|
//** OR_BOT := WORKVAL3 / 2 // UNEQUAL ORIEL LITES
|
|
ENDIF
|
|
OR_BOT := WORKVAL3 / 2 // UNEQUAL ORIEL LITES //P3N-07/05/01
|
|
OR_REASON := 'BAL ADJ'
|
|
ENDIF
|
|
EXIT
|
|
ENDIF
|
|
SKIP 1
|
|
ENDDO
|
|
ENDIF
|
|
ENDIF
|
|
IF (!ADDL_MODE .AND. (SELFILE)->ORIEL_SIZE = 'Y') .OR. ;
|
|
(ADDL_MODE .AND. (CUR_OL)->ORIEL_SIZE = 'Y')
|
|
// CONVERT EVERY THING TO ACTUAL SIZE AND SEEK FOR STD_SIZE TABLE
|
|
SELECT STD_SIZES // CHECK IF NORMAL ORIEL SIZE
|
|
DONSETORD(2)
|
|
IF EMPTY( (SELFILE)->PAR_PROD )
|
|
MWIDTH := DECVAL( (SELFILE)->WIDTH )
|
|
MHEIGHT:= DECVAL( (SELFILE)->HEIGHT)
|
|
SIZE_ARR := CONV_SIZE( (SELFILE)->PROD_CODE, MWIDTH,;
|
|
MHEIGHT, (SELFILE )->HOW_MEAS, .T.)
|
|
SEEK (SELFILE)->PROD_CODE + STR(SIZE_ARR[1],10,6) + STR(SIZE_ARR[2],10,6)
|
|
ELSE
|
|
MWIDTH := DECVAL( (CUR_OL)->WIDTH )
|
|
MHEIGHT:= DECVAL( (CUR_OL)->HEIGHT )
|
|
SIZE_ARR := CONV_SIZE( (SELFILE)->PAR_PROD, MWIDTH,;
|
|
MHEIGHT, (SELFILE)->HOW_MEAS, .T.)
|
|
SEEK (SELFILE)->PAR_PROD + STR(SIZE_ARR[1],10,6) + STR(SIZE_ARR[2],10,6)
|
|
ENDIF
|
|
IF FOUND() .AND. ORIEL_SIZE$'X' // NORMALLY AN ORIEL
|
|
IF (OR_TOP = 0 .AND. OR_BOT = 0) ;
|
|
.OR. OR_REASON = 'BAL ADJ' // NO OVERRIDES - USE STD TABLE DEFAULT
|
|
IF ALLTRIM(ITEM_CAT_CODE) == 'STORMS' ;
|
|
.AND. (ADDL_MODE .OR. !EMPTY( (SELFILE)->PAR_PROD) )
|
|
OR_TOP := TOP_STORM
|
|
ELSE
|
|
OR_TOP := ORIEL_TOP
|
|
ENDIF
|
|
OR_BOT := 0
|
|
OR_REASON := 'DEFAULT'
|
|
OR_SCR := ORIEL_SCRN
|
|
OR_GLASS := TOP_GLASS
|
|
ODD_ORIEL := .F.
|
|
DEFAULT_ORIEL := .T.
|
|
ELSE
|
|
ODD_ORIEL := .T.
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
SELECT PRODUCT
|
|
GOTO SAVEREC
|
|
IF OR_TOP <> 0 .AND. OR_BOT = 0
|
|
//** IF !RAN_SLID
|
|
//** OR_BOT := (SELFILE)->ACT_HEIGHT - OR_TOP
|
|
//** ELSE
|
|
//** OR_BOT := (SELFILE)->ACT_WIDTH - OR_TOP
|
|
//** ENDIF
|
|
IF RAN_SLID //** P3N - 02/01/99
|
|
OR_BOT := (SELFILE)->ACT_WIDTH - OR_TOP //** P3N - 02/01/99
|
|
ELSEIF IS_ALWAYS_SLID //** P3N - 02/01/99
|
|
OR_BOT := (SELFILE)->ACT_WIDTH - OR_TOP //** P3N - 02/01/99
|
|
ELSE //** P3N - 02/01/99
|
|
OR_BOT := (SELFILE)->ACT_HEIGHT - OR_TOP //** P3N - 02/01/99
|
|
ENDIF
|
|
ENDIF
|
|
IF OR_BOT <> 0 .AND. OR_TOP = 0
|
|
//** IF !RAN_SLID
|
|
//** OR_TOP := (SELFILE)->ACT_HEIGHT - OR_BOT
|
|
//** ELSE
|
|
//** OR_TOP := (SELFILE)->ACT_WIDTH - OR_BOT
|
|
//** ENDIF
|
|
IF RAN_SLID //** P3N - 02/01/99
|
|
OR_TOP := (SELFILE)->ACT_WIDTH - OR_BOT //** P3N - 02/01/99
|
|
ELSEIF IS_ALWAYS_SLID //** P3N - 02/01/99
|
|
OR_TOP := (SELFILE)->ACT_WIDTH - OR_BOT //** P3N - 02/01/99
|
|
ELSE //** P3N - 02/01/99
|
|
OR_TOP := (SELFILE)->ACT_HEIGHT - OR_BOT //** P3N - 02/01/99
|
|
ENDIF //** P3N - 02/01/99
|
|
ENDIF
|
|
SELECT (SAVESEL)
|
|
RETURN {OR_TOP, OR_BOT, BALANCE_SIZE, OR_REASON, OR_SCR, OR_GLASS, ODD_ORIEL, DEFAULT_ORIEL, WORKDIFF }
|
|
//**RETURN {OR_TOP, OR_BOT, BALANCE_SIZE, OR_REASON, OR_SCR, OR_GLASS, ODD_ORIEL, DEFAULT_ORIEL }
|
|
|
|
*********************************************************************
|
|
* BUILD THE BODY OF THE ORDER
|
|
*********************************************************************
|
|
|
|
FUNCTION BLD_BODY(OL_ARR, WHICH_TYPE, WHCH_LOCATION, PBODY_ARR, ;
|
|
PAMTS_ARR, WHCHORDER, SUBTYPE, INCL_ALL_LINES,;
|
|
DO_CUT_SPECS, PARTIAL_INVOICE, REPRINT_INVOICE)
|
|
|
|
LOCAL PRNT_DESC, PRNT_LEN := 42, PRNTOUTVAR, PRNT_VAL
|
|
LOCAL PRNT_PRICE, PRNT_QTY, XX, I, II, WAMTS_ARR
|
|
LOCAL PAMTS := NIL, MLINE_DESC, X1, X2
|
|
LOCAL LI_TTL := 0, LI_QTY := 0, CUT_SPEC_ARR, VENTPOS := ''
|
|
LOCAL BK_ORD := 0, WORKOUT, WORKQTY := 0, OPT := 0, PRTOPT := ''
|
|
LOCAL PRT_AMT := .T., WORKVAR, SPEC_CHAR, WORKDESC
|
|
LOCAL PRT_BO := .T., RETVARVARR := {}, XFACTOR, WORKARR, OPTARR := {}
|
|
LOCAL WORKDESC1, WORKDESC2, RETVARARR := {}, MGL_LINE_DESC := ''
|
|
LOCAL MWHEREFROM := OL_ARR[8] //** P3N - 5/26/99
|
|
LOCAL SHIP_QTY := 0, QTYARR := {} //** P3N - 5/1/98
|
|
LOCAL GETARR := {}, WKARR := {} //** P3N - 8/17/98
|
|
LOCAL MPROD_CODE := OL_ARR[10] //** P3N - 8/17/98
|
|
LOCAL MLINE_NUM := OL_ARR[9] //** P3N - 8/17/98
|
|
LOCAL USE_TEMP := .F. //** P3N - 8/17/98
|
|
LOCAL ADDL_MODE := .F. //** P3N - 8/17/98
|
|
LOCAL PPR_CUSTID := NIL //** P3N - 8/17/98
|
|
LOCAL DISP_WAIT := .F. //** P3N - 8/17/98
|
|
LOCAL PRNT_DESARR := {} //** P3N - 8/17/98
|
|
LOCAL INV_QTY := OL_ARR[17] //** P3N - 12/3/98
|
|
LOCAL BKOPROD := MPROD_SUMMARY(MPROD_CODE) //** P3N - 2/2/99
|
|
|
|
STATIC VPARR := {} //** P3N - 11/26/01
|
|
//**STATIC PRIORPROD := '' //** P3N - 11/26/01
|
|
//**STATIC PRIORLINE := '' //** P3N - 11/26/01
|
|
|
|
//DEFAULT PARTIAL_INVOICE := .F.
|
|
//DEFAULT REPRINT_INVOICE := .F.
|
|
|
|
If( PARTIAL_INVOICE == nil, PARTIAL_INVOICE := .F., )
|
|
If( REPRINT_INVOICE == nil, REPRINT_INVOICE := .F., )
|
|
|
|
|
|
IF EMPTY(REPRINT_INVOICE) //** P3N - 12/3/98
|
|
REPRINT_INVOICE := .F. //** P3N - 12/3/98
|
|
ENDIF //** P3N - 12/3/98
|
|
IF EMPTY(PARTIAL_INVOICE) //** P3N - 11/16/98
|
|
PARTIAL_INVOICE := .F. //** P3N - 11/16/98
|
|
ENDIF //** P3N - 11/16/98
|
|
IF FORMTYPE <> 'PREPRINT' .AND. !DO_WE_PRT_AMT( WHCHORDER, SUBTYPE )
|
|
PRNT_LEN := 60
|
|
ENDIF
|
|
PRNT_DESC := ALLTRIM(OL_ARR[2])
|
|
IF MHOME_LOC_CODE = 'IOLA' //** P3N - 08/26/02 - FIX DARLENES SPECIAL CUSTOMER IC/PO DESC PRINTING
|
|
//**IF WHICH_TYPE == 'PO' //** P3N - 2/22/02
|
|
ELSEIF WHICH_TYPE == 'PO' //** P3N - 08/26/02
|
|
(CUR_OL)->(DBSEEK(MORDER_NUM+MLINE_NUM)) //** P3N - 2/22/02
|
|
(CUR_XL)->(DBSEEK(MORDER_NUM+MPROD_CODE+MLINE_NUM)) //** P3N - 2/22/02
|
|
IF MWHEREFROM = 'XL' //** P3N - 2/22/02
|
|
ADDL_MODE := .T. //** P3N - 2/22/02
|
|
ENDIF //** P3N - 2/22/02
|
|
WKARR := BUILD_GETARR( MPROD_CODE, 1, MORDER_NUM, MLINE_NUM, '', ;
|
|
USE_TEMP, ADDL_MODE, PPR_CUSTID, DISP_WAIT, CUR_OL)
|
|
GETARR := WKARR[1] //** P3N - 2/22/02
|
|
PRNT_DESARR := BLD_DESC(GETARR, CUR_OL, WHICH_TYPE, MPROD_CODE, SUBTYPE) //** P3N - 02/22/02
|
|
PRNT_DESC := PRNT_DESARR[1] //** P3N - 2/22/02
|
|
ENDIF
|
|
IF WHCHORDER == 'BACKORD' //** P3N - 8/17/98
|
|
//** COMMENTED OUT P3N - 5/26/99
|
|
//** IF SUBTYPE == 'BACKORD' //** P3N - 5/26/99
|
|
//** IF EMPTY(PRIORPROD) //** P3N - 11/26/01
|
|
//** PRIORPROD := MPROD_CODE //** P3N - 11/26/01
|
|
//** ENDIF //** P3N - 11/26/01
|
|
//** IF EMPTY(PRIORLINE) //** P3N - 11/26/01
|
|
//** PRIORLINE := MLINE_NUM //** P3N - 11/26/01
|
|
//** ENDIF //** P3N - 11/26/01
|
|
IF MWHEREFROM = 'XL' //** P3N - 11/26/01
|
|
ADDL_MODE := .T. //** P3N - 11/26/01
|
|
//** ELSEIF PRIORPROD == MPROD_CODE .AND. ; //** P3N - 11/26/01
|
|
//** PRIORLINE == MLINE_NUM //** P3N - 11/26/01
|
|
ELSEIF EMPTY(PBODY_ARR) //** P3N - 11/26/01
|
|
//** PRIORPROD := MPROD_CODE //** P3N - 11/26/01
|
|
//** PRIORLINE := MLINE_NUM //** P3N - 11/26/01
|
|
|
|
VPARR := {} //** P3N - 11/26/01
|
|
VENTPOS := '' //** P3N - 11/26/01
|
|
ENDIF //** P3N - 11/26/01
|
|
IF SUBTYPE == 'SCREENS' .AND. MWHEREFROM = 'OL' //** P3N - 5/26/99
|
|
ELSE
|
|
(CUR_OL)->(DBSEEK(MORDER_NUM+MLINE_NUM)) //** P3N - 8/17/98
|
|
(CUR_XL)->(DBSEEK(MORDER_NUM+MPROD_CODE+MLINE_NUM)) //**P3N-11/26/01
|
|
WKARR := BUILD_GETARR( MPROD_CODE, 1, MORDER_NUM, MLINE_NUM, '', ;
|
|
USE_TEMP, ADDL_MODE, PPR_CUSTID, DISP_WAIT, CUR_OL)
|
|
GETARR := WKARR[1]
|
|
IF ADDL_MODE //** P3N -11/26/01
|
|
ELSE //** P3N -11/26/01
|
|
ELM := ASCAN(GETARR, {|X| X[1] = 'VENT POS'} ) //** P3N -11/26/01
|
|
IF EMPTY(ELM) //** P3N -11/26/01
|
|
//** VENTPOS := '' //** P3N -11/26/01
|
|
PRTOPT := 'N' //** P3N -11/26/01
|
|
ELSE //** P3N -11/26/01
|
|
OPTARR := GETARR[ELM,OPT_ARR] //** P3N -11/26/01
|
|
OPT := ASCAN(OPTARR, {|X| X[1] = GETARR[ELM,4]} ) //** P3N -11/26/01
|
|
IF EMPTY(OPT) //** P3N -11/26/01
|
|
PRTOPT := 'N' //** P3N -11/26/01
|
|
ELSE //** P3N -11/26/01
|
|
PRTOPT := OPTARR[OPT,OPT_PIND] //** P3N -11/26/01
|
|
ENDIF //** P3N -11/26/01
|
|
IF PRTOPT == 'N' // NEVER PRINT DESCRIPTION
|
|
VENTPOS := '' //** P3N -11/26/01
|
|
ELSE //** P3N -11/26/01
|
|
VENTPOS := ALLTRIM(GETARR[ELM,4]) //** P3N -11/26/01
|
|
AADD(VPARR,{TRIM(MPROD_CODE), MLINE_NUM, VENTPOS})
|
|
ENDIF //** P3N -11/26/01
|
|
ENDIF //** P3N -11/26/01
|
|
ENDIF //** P3N -11/26/01
|
|
|
|
PRNT_DESARR := BLD_DESC(GETARR, CUR_OL, WHCHORDER, MPROD_CODE, SUBTYPE)
|
|
PRNT_DESC := PRNT_DESARR[1] //** P3N - 8/17/98
|
|
IF EMPTY(VPARR) //** P3N -11/26/01
|
|
ELSEIF ADDL_MODE //** P3N -11/26/01
|
|
VELM := ASCAN(VPARR, {|X| X[1] == BKOPROD .AND. X[2] == MLINE_NUM })
|
|
IF EMPTY(VELM) //** P3N -11/26/01
|
|
VENTPOS := '' //** P3N -11/26/01
|
|
ELSE //** P3N -11/26/01
|
|
VENTPOS := VPARR[VELM,3] //** P3N -11/26/01
|
|
ENDIF //** P3N -11/26/01
|
|
PRNT_DESC := PRNT_DESC + ' - '+STRTRAN(VENTPOS,' ','~') //** P3N -11/26/01
|
|
ENDIF //** P3N -11/26/01
|
|
ENDIF
|
|
ENDIF //** P3N - 8/17/98
|
|
IF WHICH_TYPE == 'CTRL' .AND. !(OL_ARR[1] == MHOME_LOC_CODE) ;
|
|
.AND. MHOME_LOC_CODE <> 'KC'
|
|
PRNT_DESC := ALLTRIM(PRNT_DESC) + ' (' ;
|
|
+ ALLTRIM(OL_ARR[1]) + '~PO#' + ')'
|
|
ENDIF
|
|
//** P3N - 5/13/98
|
|
//** PRINT BACKORDERED ITEMS
|
|
QTYARR := ORD_QTYS(WHCHORDER, OL_ARR)
|
|
PRNT_QTY := QTYARR[1] // LINE ITEM QTY
|
|
SHIP_QTY := QTYARR[2] // ITEMS SHIPPED
|
|
BK_ORD := QTYARR[3] // ITEMS BACKORDERD
|
|
IF EMPTY(BK_ORD) .AND. WHCHORDER == 'BACKORD'
|
|
//** ONLY PRINT THE BACKORDERED ITEMS
|
|
INCL_ALL_LINES := .F. //** P3N - 9/9/98
|
|
//** P3N - 2/2/99 - SUMMARIZE SCREENS ON BACKORDERS TO MODEL LEVEL
|
|
ELSEIF WHICH_TYPE == 'BACKORD' .AND. SUBTYPE == 'SCREENS' //** P3N - 2/02/99
|
|
IF !(BKOPROD == SAVE_BKOPROD) //** P3N - 2/02/99 PRINT BACKORDER
|
|
SPEC_CHAR := '^' //** P3N - 2/02/99 SCREENS SUMMARIZED
|
|
|
|
IF LEN(PRNT_DESC) <= PRNT_LEN //** P3N - 2/02/99 TO THE MODEL LVL
|
|
IF !EMPTY(PBODY_ARR) .AND. !EMPTY(PBODY_ARR[LEN(PBODY_ARR)])
|
|
IF PBODY_ARR[LEN(PBODY_ARR)] == '-----'
|
|
// ONLY double space when one line item for a given product
|
|
ELSE
|
|
AADD(PBODY_ARR, ' ' )
|
|
AADD(PAMTS_ARR, NIL)
|
|
ENDIF
|
|
ENDIF
|
|
AADD(PBODY_ARR, SPEC_CHAR + STRTRAN(PRNT_DESC, '~', ' ' ) )
|
|
AADD(PBODY_ARR, ' ' )
|
|
AADD(PAMTS_ARR, NIL)
|
|
AADD(PAMTS_ARR, NIL)
|
|
SAVE_DESC1 := ALLTRIM(PRNT_DESC)
|
|
ELSE
|
|
MEMOCNT := MLCOUNT(PRNT_DESC, PRNT_LEN, 0, .T.)
|
|
PRNTOUTVAR = STRTRAN(PRNT_DESC, CHR(248), CHR(179))
|
|
FOR II = 1 TO MEMOCNT
|
|
PRNT_VAL := MEMOTRAN(MEMOLINE(PRNTOUTVAR, PRNT_LEN, II, 0, .T.), '')
|
|
IF II = 1
|
|
IF !EMPTY(PBODY_ARR) .AND. !EMPTY(PBODY_ARR[LEN(PBODY_ARR)])
|
|
IF PBODY_ARR[LEN(PBODY_ARR)] == '-----'
|
|
// ONLY double space when one line item for a given product
|
|
ELSE
|
|
AADD(PBODY_ARR, ' ' )
|
|
AADD(PAMTS_ARR, NIL)
|
|
ENDIF
|
|
ENDIF
|
|
AADD(PBODY_ARR, SPEC_CHAR + STRTRAN(PRNT_VAL, '~', ' ') )
|
|
AADD(PAMTS_ARR, NIL)
|
|
SAVE_DESC1 := ALLTRIM(PRNT_VAL)
|
|
ELSE
|
|
AADD(PBODY_ARR, STRTRAN(PRNT_VAL, '~', ' ') )
|
|
AADD(PAMTS_ARR, NIL)
|
|
ENDIF
|
|
NEXT
|
|
AADD(PBODY_ARR, ' ' ) // OK - LEAVE HERE!
|
|
AADD(PAMTS_ARR, NIL)
|
|
ENDIF //** P3N - 2/02/99
|
|
//** P3N - 2/02/99
|
|
SAVE_BKOPROD := BKOPROD //** P3N - 2/02/99
|
|
ENDIF
|
|
ELSEIF !(PRNT_DESC == SAVE_DESC) .OR. !(WHICH_TYPE == SAVE_TYPE)
|
|
SPEC_CHAR := '^'
|
|
IF WHICH_TYPE = 'STORM' .AND. !(PRNT_DESC = SAVE_DESC1)
|
|
SPEC_CHAR := '^' + CHR(1)
|
|
ENDIF
|
|
// IF SPEC_CHAR = '^' + CHR(1) THEN A NEW PAGE WILL BE FORCED
|
|
IF WHICH_TYPE = 'EXPANDER' .AND. !(PRNT_DESC = SAVE_DESC1) ;
|
|
.AND. MHOME_LOC_CODE = 'KC'
|
|
SPEC_CHAR := '^' + CHR(1)
|
|
ENDIF
|
|
IF LEN(PRNT_DESC) <= PRNT_LEN
|
|
IF !EMPTY(PBODY_ARR) .AND. !EMPTY(PBODY_ARR[LEN(PBODY_ARR)])
|
|
IF PBODY_ARR[LEN(PBODY_ARR)] == '-----'
|
|
// ONLY double space when one line item for a given product
|
|
ELSE
|
|
AADD(PBODY_ARR, ' ' )
|
|
AADD(PAMTS_ARR, NIL)
|
|
ENDIF
|
|
ENDIF
|
|
AADD(PBODY_ARR, SPEC_CHAR + STRTRAN(PRNT_DESC, '~', ' ' ) )
|
|
AADD(PBODY_ARR, ' ' )
|
|
AADD(PAMTS_ARR, NIL)
|
|
AADD(PAMTS_ARR, NIL)
|
|
SAVE_DESC1 := ALLTRIM(PRNT_DESC)
|
|
ELSE
|
|
MEMOCNT := MLCOUNT(PRNT_DESC, PRNT_LEN, 0, .T.)
|
|
PRNTOUTVAR = STRTRAN(PRNT_DESC, CHR(248), CHR(179))
|
|
FOR II = 1 TO MEMOCNT
|
|
PRNT_VAL := MEMOTRAN(MEMOLINE(PRNTOUTVAR, PRNT_LEN, II, 0, .T.), '')
|
|
IF II = 1
|
|
IF !EMPTY(PBODY_ARR) .AND. !EMPTY(PBODY_ARR[LEN(PBODY_ARR)])
|
|
IF PBODY_ARR[LEN(PBODY_ARR)] == '-----'
|
|
// ONLY double space when one line item for a given product
|
|
ELSE
|
|
AADD(PBODY_ARR, ' ' )
|
|
AADD(PAMTS_ARR, NIL)
|
|
ENDIF
|
|
ENDIF
|
|
AADD(PBODY_ARR, SPEC_CHAR + STRTRAN(PRNT_VAL, '~', ' ') )
|
|
AADD(PAMTS_ARR, NIL)
|
|
SAVE_DESC1 := ALLTRIM(PRNT_VAL)
|
|
ELSE
|
|
AADD(PBODY_ARR, STRTRAN(PRNT_VAL, '~', ' ') )
|
|
AADD(PAMTS_ARR, NIL)
|
|
ENDIF
|
|
NEXT
|
|
AADD(PBODY_ARR, ' ' ) // OK - LEAVE HERE!
|
|
AADD(PAMTS_ARR, NIL)
|
|
ENDIF
|
|
SAVE_DESC := PRNT_DESC
|
|
SAVE_BKOPROD := BKOPROD //** P3N - 2/02/99
|
|
ENDIF
|
|
IF INCL_ALL_LINES
|
|
IF VALTYPE(OL_ARR[3]) = 'A' //** ARRAY -SCREEN COPY
|
|
IF WHCHORDER == 'BACKORD'
|
|
DO_CUT_SPECS := .F.
|
|
PRNT_VAL := ALLTRIM(OL_ARR[3,2]) //* 2 - BO SCREEN DESC
|
|
ELSE
|
|
PRNT_VAL := ALLTRIM(OL_ARR[3,1]) //* 1 - SCREEN DESC
|
|
ENDIF
|
|
ELSE
|
|
PRNT_VAL := ALLTRIM(OL_ARR[3]) // ITEM LINE DESC
|
|
ENDIF
|
|
IF !EMPTY( OL_ARR[14])
|
|
MLINE_DESC := ALLTRIM(OL_ARR[14])
|
|
ELSE
|
|
MLINE_DESC := NIL
|
|
ENDIF
|
|
PRNT_PRICE := OL_ARR[4] // ITEM PRICE
|
|
XFACTOR := OL_ARR[12] // XTRA WINDOWS
|
|
PRT_AMT := DO_WE_PRT_AMT( WHCHORDER, SUBTYPE )
|
|
IF WHCHORDER $ 'INV BACKORD' .AND. CUR_MAST = 'ORD_MAST' //** P3N - 5/12/98
|
|
PRT_BO := .T.
|
|
ELSE
|
|
PRT_BO := .F.
|
|
ENDIF
|
|
IF EMPTY(OL_ARR[6]) // LINE ITEM NOTES - LINE_NOTES IN LINE DBF
|
|
ELSEIF OL_ARR[16] == 'A' // PRINT THE NOTES ABOVE THE LINE ITEM
|
|
RETVARARR := PRT_MEMO(PBODY_ARR, PAMTS_ARR, OL_ARR[6], PRNT_LEN) // PRINT THE LINE ITEM NOTES
|
|
PBODY_ARR := RETVARARR[1]
|
|
PAMTS_ARR := RETVARARR[2]
|
|
ENDIF
|
|
// ALL LINE ITEM DETAIL AMOUNTS
|
|
IF EMPTY(PRNT_VAL) // NO LINE ITEM DESC. - NO AMOUNTS
|
|
PAMTS := NIL
|
|
ELSEIF WHCHORDER == 'BACKORD' //** P3N - 5/14/98
|
|
PAMTS := { 0 , 0 , BK_ORD , PRNT_PRICE, PRT_AMT, PRT_BO, XFACTOR, , INV_QTY }
|
|
ELSE
|
|
PAMTS := { PRNT_QTY, BK_ORD, SHIP_QTY, PRNT_PRICE, PRT_AMT, PRT_BO, XFACTOR, , INV_QTY }
|
|
ENDIF
|
|
IF WHICH_TYPE == 'INV' .OR. WHICH_TYPE == 'CTRL' // CUSTOMER INVOICE OR PROD CONTROL COPY
|
|
IF OL_ARR[4] == NIL // LINE ITEM TOTAL
|
|
ELSEIF PARTIAL_INVOICE
|
|
//** P3N - 11/23/98 - PARTIAL INVOICE MODIFICATIONS
|
|
LI_TTL := LI_TTL + (PRNT_PRICE * SHIP_QTY) // TALLY THE LINE TOTALS
|
|
ELSEIF REPRINT_INVOICE
|
|
//** P3N - 12/3/98 - REPRINT INVOICE MODIFICATIONS
|
|
LI_TTL := LI_TTL + (PRNT_PRICE * INV_QTY) // TALLY THE LINE TOTALS
|
|
ELSE
|
|
LI_TTL := LI_TTL + (PRNT_PRICE * PRNT_QTY) // TALLY THE LINE TOTALS
|
|
ENDIF
|
|
ENDIF
|
|
IF EMPTY(OL_ARR[6]) //LINE ITEM NOTES - LINE_NOTES IN LINE DBF
|
|
ELSEIF OL_ARR[16] == 'B' //PRINT THE NOTES BESIDE THE LINE ITEM
|
|
WORKVAR := STRTRAN( ALLTRIM( OL_ARR[6] ), CHR(13), '' )
|
|
WORKVAR := STRTRAN( WORKVAR, CHR(10), ' ' )
|
|
PRNT_VAL := PRNT_VAL + ' ' + WORKVAR
|
|
ENDIF
|
|
//** P3N - 5/13/98
|
|
//** ONLY PRINT BACKORDERED ITEMS
|
|
IF EMPTY(BK_ORD) .AND. WHCHORDER == 'BACKORD'
|
|
PRNT_VAL := ' '
|
|
DO_CUT_SPECS := .F.
|
|
ENDIF
|
|
IF !EMPTY(PRNT_VAL)
|
|
//**IF DO_CUT_SPECS .AND. !EMPTY(OL_ARR[13]) // LINE ITEM CUTTING SPECS
|
|
//** PAMTS := NIL //** P3N - 5/4/99
|
|
//**ENDIF //** P3N - 5/4/99
|
|
IF LEN(PRNT_VAL) <= PRNT_LEN
|
|
IF WHCHORDER == 'PROD' .AND. WHICH_TYPE == 'GLASS' .AND. ; //** P3N - 10/19/99
|
|
EMPTY(PRNT_QTY) .AND. EMPTY(SHIP_QTY) .AND. EMPTY(BK_ORD) //** P3N - 10/19/99
|
|
MGL_LINE_DESC := PRNT_VAL //** P3N - 10/19/99
|
|
ELSE //** P3N - 10/19/99
|
|
AADD(PBODY_ARR, STRTRAN(PRNT_VAL,'~',' ') ) // ITEM LINE FOR ALL PRODUCTION ORDERS
|
|
AADD(PAMTS_ARR, PAMTS) // ITEM LINE FOR ALL PRODUCTION ORDERS
|
|
ENDIF
|
|
ELSE
|
|
MEMOCNT := MLCOUNT(PRNT_VAL, PRNT_LEN, 0, .T.)
|
|
PRNTOUTVAR = STRTRAN(PRNT_VAL, CHR(248), CHR(179))
|
|
FOR II = 1 TO MEMOCNT
|
|
PRNT_VAL := MEMOTRAN(MEMOLINE(PRNTOUTVAR, PRNT_LEN, II, 0, .T.), '')
|
|
AADD(PBODY_ARR, STRTRAN(PRNT_VAL,'~', ' ') )
|
|
IF II < MEMOCNT
|
|
AADD(PAMTS_ARR, NIL)
|
|
ELSE
|
|
AADD(PAMTS_ARR, PAMTS)
|
|
ENDIF
|
|
NEXT
|
|
//** REMOVED DUE TO MULIT SPACING AT PAWNEE - P3N - 11/19/99
|
|
//** AADD(PBODY_ARR, ' ' ) // GET RID OF THIS BLANK BETWEEN ??
|
|
//** AADD(PAMTS_ARR, NIL)
|
|
ENDIF
|
|
ENDIF
|
|
//** P3N*4/1/98 - EXCLUDE PRINT OF CUTTING SPECS
|
|
//** P3N*4/1/98 - DOUBLE SPACE !
|
|
IF ASCAN(OL_ARR[13], {|X| AT('X', X[9]) > 0 }) > 0
|
|
DO_CUT_SPECS := .F.
|
|
AADD(PBODY_ARR, ' ' )
|
|
AADD( PAMTS_ARR, NIL )
|
|
ENDIF
|
|
IF DO_CUT_SPECS .AND. !EMPTY(OL_ARR[13]) // LINE ITEM CUTTING SPECS
|
|
CUT_SPEC_ARR := OL_ARR[13]
|
|
PRNTOUTVAR := {}
|
|
FOR I := 1 TO LEN(CUT_SPEC_ARR)
|
|
WORKVAR := ''
|
|
IF CUT_SPEC_ARR[I,7] <> NIL // CALCULATED RESULT
|
|
WORKVAR := WORKVAR + CUT_SPEC_ARR[I,4] + ' ' // PRINT DESC
|
|
WORKVAR := WORKVAR + CUT_SPEC_ARR[I,5] + ' ' // PROFILE
|
|
WORKVAR := WORKVAR + ': '
|
|
AADD(PRNTOUTVAR, {WORKVAR, CUT_SPEC_ARR[I,7], ;
|
|
CUT_SPEC_ARR[I,11], CUT_SPEC_ARR[I,12], CUT_SPEC_ARR[I,3], ;
|
|
CUT_SPEC_ARR[I,13] , CUT_SPEC_ARR[I,14] , ; // 6-7
|
|
CUT_SPEC_ARR[I,15] , CUT_SPEC_ARR[I,16] , ; // 8-9
|
|
CUT_SPEC_ARR[I,17] } ) // 10
|
|
ENDIF
|
|
NEXT
|
|
II := 0
|
|
WAMTS_ARR := NIL
|
|
FOR I := 1 TO LEN(PRNTOUTVAR)
|
|
II ++
|
|
// DUMP DATA IN "BUFFER" TO START FRESH LINE ON WIDTH/HEIGHT VARS.
|
|
IF PRNTOUTVAR[I,3]$'W' .AND. II = 2 // WIDTH/HEIGHT/NOTHING
|
|
AADD(PBODY_ARR, STRTRAN(WORKVAR,'~',' ') ) // WAITING TO FILL LINE - DUMP LINE FOR CLEAN WID HT
|
|
AADD(PAMTS_ARR, WAMTS_ARR)
|
|
WAMTS_ARR := NIL
|
|
II := 1
|
|
ENDIF
|
|
IF II = 1 // 1ST ITEM IN A LINE
|
|
WORKVAR := ''
|
|
ELSE
|
|
WORKVAR := WORKVAR + ' '
|
|
ENDIF
|
|
IF !PRNTOUTVAR[I,3]$'H' // SINCE A PAIR, TAKE QTY FROM THE WIDTH
|
|
// NUM IN SPEC ORD QTY XFACTOR
|
|
WORKQTY := PRNTOUTVAR[I,5] * (PRNTOUTVAR[I,6] * (1 + PRNTOUTVAR[I,7]) )
|
|
ELSE
|
|
WORKQTY := 0
|
|
ENDIF
|
|
IF !PRNTOUTVAR[I,3]$'WH' // WIDTH/HEIGHT/NOTHING
|
|
IF PRNTOUTVAR[I,5] <> 0
|
|
WORKVAR := WORKVAR + PADR( ALLTRIM(STR( WORKQTY, 2 )),3)
|
|
ELSE
|
|
WORKVAR := WORKVAR + CHR(255) + ' '
|
|
ENDIF
|
|
WORKVAR := WORKVAR + PRNTOUTVAR[I,1]
|
|
IF PRNTOUTVAR[I,4]$'D' // FRACTION / DECIMAL
|
|
WORKOUT := STR(PRNTOUTVAR[I,2],8,4)
|
|
ELSE
|
|
WORKOUT := PADR(PRNT_SIZE( PRNTOUTVAR[I,2] ),8)
|
|
ENDIF
|
|
WORKVAR := WORKVAR + WORKOUT
|
|
//** ELSEIF II = 1
|
|
ELSEIF II = 1 .OR. II = 3 //** P3N - 4/6/99
|
|
// IT IS A WIDTH OR HEIGHT CUT SPEC
|
|
IF !EMPTY(PRNTOUTVAR[I,8]) // WIDTH/HEIGHT DESCRIPTION
|
|
AADD(PBODY_ARR, PRNTOUTVAR[I,8] )
|
|
AADD(PAMTS_ARR, NIL )
|
|
ENDIF
|
|
WORKVAR := WORKVAR + ' ' + ALLTRIM(PRNT_SIZE( PRNTOUTVAR[I,2] )) + '~~x'
|
|
IF WORKQTY = 0
|
|
WAMTS_ARR := NIL
|
|
ELSEIF WHCHORDER == 'BACKORD'
|
|
WAMTS_ARR := { 0 , 0 , BK_ORD , 0, .F., .T., 0 }
|
|
************WAMTS_ARR := { SHIP_QTY, BK_ORD, PRNT_QTY , 0, .F., .T., 0 }
|
|
ELSE
|
|
WAMTS_ARR := { WORKQTY, 0, 0, 0, .F., .F., 0 }
|
|
ENDIF
|
|
// WIDTH/HEIGHT/NOTHING
|
|
ELSE // ASSUME PREVIOUS ONE WAS A WIDTH
|
|
WORKVAR := ALLTRIM(WORKVAR) + ' '
|
|
WORKVAR := WORKVAR + ALLTRIM(PRNT_SIZE( PRNTOUTVAR[I,2] ))
|
|
ENDIF
|
|
// LAST ONE ON LINE OR IN ARRAY
|
|
//** IF I = LEN(PRNTOUTVAR) .OR. II = 2
|
|
//** PRINT STORM COPY COLUMN FORMAT (IE: C200007 @ IOLA)
|
|
IF I = LEN(PRNTOUTVAR) .OR. II >= 2 //** P3N - 4/6/99
|
|
IF PRNTOUTVAR[I,10] == 'S' //** P3N - 4/6/99
|
|
IF II = 2 //** P3N - 4/6/99
|
|
WORKVAR := PADR(WORKVAR , 20, ' ') //** P3N - 4/6/99
|
|
ELSEIF II = 4 //** P3N - 4/6/99
|
|
AADD(PBODY_ARR, STRTRAN(WORKVAR,'~',' ') )
|
|
AADD( PAMTS_ARR, WAMTS_ARR ) //** P3N - 4/6/99
|
|
WAMTS_ARR := NIL //** P3N - 4/6/99
|
|
ENDIF //** P3N - 4/6/99
|
|
ELSE
|
|
WORKVAR := WORKVAR+' '+MGL_LINE_DESC //** P3N - 10/19/99
|
|
AADD(PBODY_ARR, STRTRAN(WORKVAR,'~',' '))
|
|
AADD( PAMTS_ARR, WAMTS_ARR )
|
|
IF PRNTOUTVAR[I,3]$'WH'
|
|
// EXTRA LINE DESCRIPTION
|
|
IF !EMPTY(OL_ARR[14]) .AND. PRNTOUTVAR[I,10]$'Y ' // PRINT ITEM DESC
|
|
AADD(PBODY_ARR, STRTRAN(OL_ARR[14],'~',' ') )
|
|
AADD( PAMTS_ARR, NIL )
|
|
ENDIF
|
|
ENDIF
|
|
WAMTS_ARR := NIL
|
|
ENDIF
|
|
ENDIF
|
|
//** IF II = 2
|
|
//** II := 0
|
|
//** ENDIF
|
|
IF II >= 2 //** P3N - 4/6/99
|
|
//** PRINT STORM COPY COLUMN FORMAT (IE: C200007 @ IOLA)
|
|
IF PRNTOUTVAR[I,10] == 'S' //** P3N - 4/6/99
|
|
IF II > 3 //** P3N - 4/6/99
|
|
II := 0 //** P3N - 4/6/99
|
|
ENDIF //** P3N - 4/6/99
|
|
ELSE //** P3N - 4/6/99
|
|
II := 0 //** P3N - 4/6/99
|
|
ENDIF //** P3N - 4/6/99
|
|
ENDIF //** P3N - 4/6/99
|
|
NEXT
|
|
IF EMPTY(OL_ARR[6]) // LINE ITEM NOTES - LINE_NOTES IN LINE DBF
|
|
ELSEIF OL_ARR[16] == 'U' // PRINT THE NOTES UNDER THE LINE ITEM
|
|
RETVARARR := PRT_MEMO(PBODY_ARR, PAMTS_ARR, OL_ARR[6], PRNT_LEN) // PRINT THE LINE ITEM NOTES
|
|
PBODY_ARR := RETVARARR[1]
|
|
PAMTS_ARR := RETVARARR[2]
|
|
ENDIF
|
|
IF LEN(PRNTOUTVAR) > 0
|
|
AADD(PBODY_ARR, ' ' ) // DOUBLE SPACE
|
|
AADD(PAMTS_ARR, WAMTS_ARR)
|
|
WAMTS_ARR := NIL
|
|
ENDIF
|
|
ELSE
|
|
IF EMPTY(OL_ARR[6]) // LINE ITEM NOTES - LINE_NOTES IN LINE DBF
|
|
ELSEIF OL_ARR[16] == 'U' // PRINT THE NOTES UNDER THE LINE ITEM
|
|
RETVARARR := PRT_MEMO(PBODY_ARR, PAMTS_ARR, OL_ARR[6], PRNT_LEN) // PRINT THE LINE ITEM NOTES
|
|
PBODY_ARR := RETVARARR[1]
|
|
PAMTS_ARR := RETVARARR[2]
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
SAVE_TYPE := WHICH_TYPE
|
|
IF DBLSPACE(WHICH_TYPE, WHCHORDER, SUBTYPE, MPROD_CODE) //** P3N - 02/12/04
|
|
AADD(PBODY_ARR, ' ' ) //** P3N - 02/12/04
|
|
AADD( PAMTS_ARR, NIL ) //** P3N - 02/12/04
|
|
ENDIF //** P3N - 02/12/04
|
|
RETURN {LI_TTL, PBODY_ARR, PAMTS_ARR}
|
|
***************************************************************
|
|
* P3N - 2/12/04 SHOULD WE DOUBLE SPACE THIS ORDER?
|
|
***************************************************************
|
|
FUNCTION DBLSPACE(WHICH_TYPE, WHCHORDER, SUBTYPE, P_PROD) //** P3N - 02/12/04
|
|
LOCAL RETVAL := .F.
|
|
LOCAL ITEM_CAT_CODE := GET_CATCODE( P_PROD )
|
|
IF EMPTY(SUBTYPE)
|
|
SUBTYPE := ''
|
|
ENDIF
|
|
IF CATEGORY->(DBSEEK( ITEM_CAT_CODE ))
|
|
IF WHCHORDER = 'PROD'
|
|
IF WHICH_TYPE = 'FRAME'.AND.AT('F', UPPER(CATEGORY->DBLSP_PROD)) >0
|
|
RETVAL := .T.
|
|
ENDIF
|
|
IF WHICH_TYPE = 'STORM'.AND.AT('F', UPPER(CATEGORY->DBLSP_PROD)) >0
|
|
RETVAL := .T.
|
|
ENDIF
|
|
IF WHICH_TYPE = 'GLASS'.AND.AT('G', UPPER(CATEGORY->DBLSP_PROD)) >0
|
|
RETVAL := .T.
|
|
ENDIF
|
|
IF WHICH_TYPE = 'SCREEN'.AND.AT('S', UPPER(CATEGORY->DBLSP_PROD)) >0
|
|
RETVAL := .T.
|
|
ENDIF
|
|
IF WHICH_TYPE = 'CTRL'.AND.AT('R', UPPER(CATEGORY->DBLSP_PROD)) >0
|
|
//** SUBTYPE = 'GOLDEN'
|
|
RETVAL := .T.
|
|
ENDIF
|
|
ELSEIF WHCHORDER = 'OD'
|
|
IF SUBTYPE = 'DELIVERY'.AND.AT('D', UPPER(CATEGORY->DBLSP_OD)) >0
|
|
//** DELIVERY COPY
|
|
RETVAL := .T.
|
|
ENDIF
|
|
IF SUBTYPE = 'ORDERDESK'.AND.AT('O', UPPER(CATEGORY->DBLSP_OD)) >0
|
|
//** ORDERDESK COPY
|
|
RETVAL := .T.
|
|
ENDIF
|
|
IF SUBTYPE = 'PO'.AND.AT('I', UPPER(CATEGORY->DBLSP_OD)) >0
|
|
//** INTERCOMPANY PURCHASE ORDER
|
|
RETVAL := .T.
|
|
ENDIF
|
|
ELSEIF WHCHORDER = 'INV'
|
|
IF EMPTY(SUBTYPE).AND.AT('I', UPPER(CATEGORY->DBLSP_INV)) >0
|
|
//** CUSTOMER INVOICE COPY
|
|
RETVAL := .T.
|
|
ENDIF
|
|
IF SUBTYPE = 'PREBILL'.AND.AT('B', UPPER(CATEGORY->DBLSP_INV)) >0
|
|
//** PREBILL INVOICE COPY
|
|
RETVAL := .T.
|
|
ENDIF
|
|
IF SUBTYPE = 'PRECOST'.AND.AT('C', UPPER(CATEGORY->DBLSP_INV)) >0
|
|
//** PRECOST INVOICE COPY
|
|
RETVAL := .T.
|
|
ENDIF
|
|
ELSEIF WHCHORDER = 'BACKORD'
|
|
IF CATEGORY->DBLSP_BO = 'Y'
|
|
RETVAL := .T.
|
|
ENDIF
|
|
ENDIF
|
|
**ERR_BOX('FOUND ITEM_CAT_CODE = ' + ITEM_CAT_CODE, ;
|
|
** 'PROD CODE = ' + P_PROD, 'SUBTYPE = '+ SUBTYPE, ;
|
|
** 'WHCHORDER = ' + WHCHORDER, 'WHICH_TYPE = '+ WHICH_TYPE)
|
|
ENDIF
|
|
RETURN RETVAL
|
|
***************************************************************
|
|
* P3N - 2/12/04 VALIDATE THE CATEGROY DOUBLE SPACE CODES
|
|
***************************************************************
|
|
FUNCTION VAL_DBLSP(CMD)
|
|
//** CMD - "PROD" PRODUCTION ORDER COPIES
|
|
//** CMD - "OD" ORDERDESK ORDER COPIES
|
|
//** CMD - "INV" INVOICE ORDER COPIES
|
|
//** CMD - "BO" BACKORDER ORDER COPIES
|
|
LOCAL RETVAL := .T.
|
|
IF CMD = 'PROD'
|
|
* ERR_BOX('Prodction double spaceing opts: "F", "G", "S" are valid')
|
|
* RETVAL := .F.
|
|
ELSEIF CMD = 'OD'
|
|
* IF CATEGORY->DBLSP_OD
|
|
ELSEIF CMD = 'INV'
|
|
* IF CATEGORY->DBLSP_INV
|
|
ELSEIF CMD = 'BO'
|
|
* IF CATEGORY->DBLSP_BO
|
|
ELSE
|
|
* ERR_BOX('Invalid CMD in VAL_DBLSP() function')
|
|
ENDIF
|
|
RETURN RETVAL
|
|
***************************************************************
|
|
* P3N - 5/22/98 ARE THERE ANY BACKORDER ITEMS TO PRINT?
|
|
***************************************************************
|
|
FUNCTION ORD_QTYS(WHCHORDER, OL_ARR)
|
|
LOCAL ELM, OLQTY, NUM_IN_SPEC, XFACTOR, CALCQTY, SCRNKEY, ADDLKEY
|
|
LOCAL PRNT_QTY := OL_ARR[7] // ITEM QUANTITY
|
|
LOCAL SHIP_QTY := OL_ARR[11] // ITEM SHIPPED QTY
|
|
LOCAL CUT_SPEC_ARR := OL_ARR[13] // CUTTING SPECS ARR
|
|
LOCAL LINE_NUM := OL_ARR[9] // ORDER LINE_NUM
|
|
LOCAL PAR_PROD := OL_ARR[10] //ORDER PROD_CODE-PAR_PROD FOR SCREENS
|
|
LOCAL BK_ORD := 0 //** P3N - 11/12/98
|
|
IF EMPTY(PRNT_QTY) //** P3N - 11/12/98
|
|
PRNT_QTY := 0 //** P3N - 11/12/98
|
|
ENDIF //** P3N - 11/12/98
|
|
IF EMPTY(SHIP_QTY) //** P3N - 11/12/98
|
|
SHIP_QTY := 0 //** P3N - 11/12/98
|
|
ENDIF //** P3N - 11/12/98
|
|
BK_ORD := PRNT_QTY - SHIP_QTY // BACK ORDER QTY
|
|
IF WHCHORDER == 'BACKORD'
|
|
IF EMPTY(PRNT_QTY)
|
|
ADDLKEY := MORDER_NUM + PAR_PROD + LINE_NUM
|
|
IF ADDL_LINES->(DBSEEK(ADDLKEY))
|
|
OLQTY := ADDL_LINES->QUANTITY
|
|
ADDLKEY := MORDER_NUM + LINE_NUM + PAR_PROD
|
|
SHIP_QTY := SCRN_SHPQTY(ADDLKEY)
|
|
BK_ORD := OLQTY - SHIP_QTY
|
|
ELSE
|
|
ELM := ASCAN(CUT_SPEC_ARR, {|X| AT('N', X[9]) > 0 }) // IS THIS A SCREEN SPEC?
|
|
IF EMPTY(ELM)
|
|
ELSE
|
|
OLQTY := CUT_SPEC_ARR[ELM, 3]
|
|
NUM_IN_SPEC := CUT_SPEC_ARR[ELM, 13]
|
|
XFACTOR := CK_XTRAWIND( 'ORD_LINES', 'ORDER_OPTS', .F. )
|
|
CALCQTY := OLQTY * NUM_IN_SPEC * ( 1 + XFACTOR )
|
|
PRNT_QTY := CALCQTY //** LINE ITEM QTY
|
|
SCRNKEY := MORDER_NUM + LINE_NUM + 'SCREENS' + PAR_PROD
|
|
SHIP_QTY := SCRN_SHPQTY(SCRNKEY)
|
|
BK_ORD := CALCQTY - SHIP_QTY
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
RETURN { PRNT_QTY, SHIP_QTY, BK_ORD }
|
|
***************************************************************
|
|
* P3N - 5/22/98 GET THE SHIPPED SCREENS TO PRINT ON BACK ORDER!
|
|
***************************************************************
|
|
FUNCTION SCRN_SHPQTY(SCRNKEY)
|
|
RETVAL := 0
|
|
IF ORD_SHIP->(DBSEEK(SCRNKEY))
|
|
DO WHILE ORD_SHIP->(!EOF()) .AND. ;
|
|
( ORD_SHIP->ORDER_NUM + STR(ORD_SHIP->LINE_NUM, 3) + ;
|
|
ORD_SHIP->PROD_CODE + ORD_SHIP->PAR_PROD == SCRNKEY )
|
|
RETVAL := RETVAL + ORD_SHIP->SHIP_QTY
|
|
ORD_SHIP->(DBSKIP(+1))
|
|
ENDDO
|
|
ENDIF
|
|
RETURN RETVAL
|
|
***************************************************************
|
|
***************************************************************
|
|
***************************************************************
|
|
FUNCTION DO_WE_PRT_AMT( WHCHORDER, SUBTYPE )
|
|
LOCAL PRT_AMT := .F.
|
|
//**IF (CUR_MAST)->TERMS = '90' .OR. ; //** NO CHARGE //**P3N - 4/27/98
|
|
//** (CUR_MAST)->TERMS = '96' //** CANCELLATION //**P3N - 4/27/98
|
|
IF ZERO_ORDER() //** NO CHARGE //**P3N - 3/05/99
|
|
//** FOR A NO CHARGE OR CANCELLATION FORCE TO NOT PRINT AMTS
|
|
ELSEIF WHCHORDER == 'INV'
|
|
IF ITEMIZE = 1
|
|
PRT_AMT := .T.
|
|
ENDIF
|
|
ELSEIF WHCHORDER == 'OD' // ORDER DESK
|
|
PRT_AMT := .T.
|
|
IF MHOME_LOC_CODE = 'LINDS' .AND. SUBTYPE == 'ORDERDESK'
|
|
//PER LINDA @ LINDSBOURG 11-10-97
|
|
//PRINT GL ALLOCATIONS / ORDER AMOUNTS ON ORDERDESK - GOLDEN ROD
|
|
****ELSEIF MHOME_LOC_CODE = 'KC' .AND. SUBTYPE == 'ORDERDESK'
|
|
**** //PER ELLEN @ KC 10-26-98
|
|
**** //DO NOT PRINT GL ALLOCATIONS / ORDER AMOUNTS ON ORDERDESK - GOLDEN ROD
|
|
**** PRT_AMT := .F.
|
|
ELSEIF SUBTYPE == 'DELIVERY' .AND. !IS_COD( (CUR_MAST)->TERMS )
|
|
PRT_AMT := .F.
|
|
ELSEIF SUBTYPE == 'PO' // DO NOT PRINT AMTS ON THE INTERCOMPANY COPY
|
|
PRT_AMT := .F.
|
|
ELSEIF (CUR_MAST)->PRICE_SHT$'I' //** P3N - 01/30/06
|
|
//** P3N - 01/30/06 PER PAT PRINT PRICING ON ODERDESK COPY FOR SPECIAL DEALERS
|
|
//**ELSEIF (CUR_MAST)->PRICE_SHT$'IS' //** P3N - 01/30/06
|
|
//DO NOT PRINT AMTS ON OD COPY WHEN INTERCOMPANY OR SPECIAL DEALER PRICING!
|
|
PRT_AMT := .F.
|
|
ENDIF
|
|
ELSEIF WHCHORDER == 'BACKORD' //** P3N - 5/1/98
|
|
PRT_AMT := .F. //** P3N - 5/1/98
|
|
ENDIF
|
|
RETURN PRT_AMT
|
|
********************************************************************
|
|
// PRINT THE PRODUCTION LINE MEMOS
|
|
********************************************************************
|
|
FUNCTION PRT_MEMO(PBODY_ARR, PAMTS_ARR, PROD_MEMO, PRNT_LEN)
|
|
LOCAL MEMOCNT, PRNTOUTVAR, PRNT_VAL, I
|
|
MEMOCNT := MLCOUNT(PROD_MEMO, PRNT_LEN, 0, .T.)
|
|
PRNTOUTVAR = STRTRAN(PROD_MEMO, CHR(248), CHR(179))
|
|
FOR I = 1 TO MEMOCNT
|
|
PRNT_VAL := MEMOTRAN(MEMOLINE(PRNTOUTVAR, PRNT_LEN, I, 0, .T.), '')
|
|
AADD(PBODY_ARR, PRNT_VAL )
|
|
AADD(PAMTS_ARR, NIL)
|
|
NEXT
|
|
RETURN { PBODY_ARR, PAMTS_ARR }
|
|
|
|
**********
|
|
// THIS PRG IS A print port manager for lib programs
|
|
// needing multiple output routings.
|
|
// will be called IF FILE('PRINTERS.DBF')
|
|
|
|
PROCEDURE CUSTOMPRINT()
|
|
|
|
LOCAL CLOSE_ARR := {}, PRN_LIST := {}
|
|
|
|
* - SELECT A PRINTER FROM THE TABLE BELOW
|
|
*
|
|
* draw input screen
|
|
*
|
|
|
|
|
|
AADD(PRN_LIST , 'OKI')
|
|
AADD(PRN_LIST , 'EPS')
|
|
AADD(PRN_LIST , 'HPJ') // MOVED HERE 6-10-20
|
|
AADD(PRN_LIST , 'PRW')
|
|
AADD(PRN_LIST , 'PRN')
|
|
AADD(PRN_LIST , 'P90')
|
|
AADD(PRN_LIST , 'HPD')
|
|
AADD(PRN_LIST , 'HP4')
|
|
|
|
|
|
_REPTPRNT := STR(ASCAN(PRN_LIST, {|X| X = REPT_PRN}),1)
|
|
_BOPRNT := STR(ASCAN(PRN_LIST, {|X| X = BO_PRN}),1) //** P3N - 4/30/98
|
|
_PRODPRNT := STR(ASCAN(PRN_LIST, {|X| X = PROD_PRN}),1)
|
|
_ODPRNT := STR(ASCAN(PRN_LIST, {|X| X = OD_PRN}),1)
|
|
_INVPRNT := STR(ASCAN(PRN_LIST, {|X| X = INV_PRN}),1)
|
|
_DELPRNT := STR(ASCAN(PRN_LIST, {|X| X = DEL_PRN}),1)
|
|
_GRPRNT := STR(ASCAN(PRN_LIST, {|X| X = GR_PRN}),1)
|
|
_ICPRNT := STR(ASCAN(PRN_LIST, {|X| X = IC_PRN}),1)
|
|
_LBLPRNT := STR(ASCAN(PRN_LIST, {|X| X = LBL_PRN}),1)
|
|
_QTEPRNT := STR(ASCAN(PRN_LIST, {|X| X = INV_PRN}),1)
|
|
_PREPRNT := STR(ASCAN(PRN_LIST, {|X| X = INV_PRN}),1)
|
|
|
|
// 3/31/2021 - ADJUSTMENT FACTOR FOR WIDTH/HEIGHT OF PRINT
|
|
_REPTFACW := REPT_FACW
|
|
_REPTFACH := REPT_FACH
|
|
IF _REPTFACW = 0
|
|
_REPTFACW := 100
|
|
ENDIF
|
|
IF _REPTFACH = 0
|
|
_REPTFACH := 100
|
|
ENDIF
|
|
|
|
_PRODFACW := PROD_FACW
|
|
_PRODFACH := PROD_FACH
|
|
IF _PRODFACW = 0
|
|
_PRODFACW := 100
|
|
ENDIF
|
|
IF _PRODFACH = 0
|
|
_PRODFACH := 100
|
|
ENDIF
|
|
|
|
_ODFACW := OD_FACW
|
|
_ODFACH := OD_FACH
|
|
IF _ODFACW = 0
|
|
_ODFACW := 100
|
|
ENDIF
|
|
IF _ODFACH = 0
|
|
_ODFACH := 100
|
|
ENDIF
|
|
|
|
_INVFACW := INV_FACW
|
|
_INVFACH := INV_FACH
|
|
IF _INVFACW = 0
|
|
_INVFACW := 100
|
|
ENDIF
|
|
IF _INVFACH = 0
|
|
_INVFACH := 100
|
|
ENDIF
|
|
|
|
_DELFACW := DEL_FACW
|
|
_DELFACH := DEL_FACH
|
|
IF _DELFACW = 0
|
|
_DELFACW := 100
|
|
ENDIF
|
|
IF _DELFACH = 0
|
|
_DELFACH := 100
|
|
ENDIF
|
|
|
|
_GRFACW := GR_FACW
|
|
_GRFACH := GR_FACH
|
|
IF _GRFACW = 0
|
|
_GRFACW := 100
|
|
ENDIF
|
|
IF _GRFACH = 0
|
|
_GRFACH := 100
|
|
ENDIF
|
|
|
|
_LBLFACW := LBL_FACW
|
|
_LBLFACH := LBL_FACH
|
|
IF _LBLFACW = 0
|
|
_LBLFACW := 100
|
|
ENDIF
|
|
IF _LBLFACH = 0
|
|
_LBLFACH := 100
|
|
ENDIF
|
|
|
|
_ICFACW := IC_FACW
|
|
_ICFACH := IC_FACH
|
|
IF _ICFACW = 0
|
|
_ICFACW := 100
|
|
ENDIF
|
|
IF _ICFACH = 0
|
|
_ICFACH := 100
|
|
ENDIF
|
|
|
|
_BOFACW := BO_FACW
|
|
_BOFACH := BO_FACH
|
|
IF _BOFACW = 0
|
|
_BOFACW := 100
|
|
ENDIF
|
|
IF _BOFACH = 0
|
|
_BOFACH := 100
|
|
ENDIF
|
|
|
|
_QTEFACW := QTE_FACW
|
|
_QTEFACH := QTE_FACH
|
|
IF _QTEFACW = 0
|
|
_QTEFACW := 100
|
|
ENDIF
|
|
IF _QTEFACH = 0
|
|
_QTEFACH := 100
|
|
ENDIF
|
|
|
|
_PREFACW := PRE_FACW
|
|
_PREFACH := PRE_FACH
|
|
IF _PREFACW = 0
|
|
_PREFACW := 100
|
|
ENDIF
|
|
IF _PREFACH = 0
|
|
_PREFACH := 100
|
|
ENDIF
|
|
|
|
M_LPTR := REPT_PORT
|
|
M_LPTP := PROD_PORT
|
|
M_LPTO := OD_PORT
|
|
M_LPTI := INV_PORT
|
|
M_LPTD := DEL_PORT
|
|
M_LPTG := GR_PORT
|
|
M_LPTL := LBL_PORT
|
|
M_LPTIC := IC_PORT
|
|
M_LPTBO := BO_PORT //** P3N - 4/30/98
|
|
M_LPTQ := INV_PORT //** P3N - 4/13/98
|
|
M_LPTPRE := INV_PORT //** P3N - 4/13/98
|
|
IF FIELDPOS('QTE_PORT') > 0 //** P3N - 4/13/98
|
|
M_LPTQ := QTE_PORT //** P3N - 4/13/98
|
|
ENDIF
|
|
IF FIELDPOS('PRE_PORT') > 0 //** P3N - 4/13/98
|
|
M_LPTPRE := PRE_PORT //** P3N - 4/13/98
|
|
ENDIF
|
|
|
|
SELECT WORKSTAT
|
|
|
|
DO WHILE .T.
|
|
CLEAR
|
|
TITLE = 'SELECT PRINTER'
|
|
H = ((80 - LEN(TITLE)) / 2)
|
|
@ 0,H SAY TITLE
|
|
@ 0,74 SAY 'PDEF'
|
|
@ 1,0 SAY DOUBLE
|
|
@ 3,72 SAY DTOC(DATE())
|
|
@ 5,28 SAY " AVAILABLE PRINTERS "
|
|
@ 6,28 SAY " ================== "
|
|
@ 7,26 SAY "1. Okidata Microline 84"
|
|
@ 8,26 SAY "2. Epson (All Models)"
|
|
@ 9,26 SAY "3. HP LaserJet "
|
|
LOOP4100 := .T.
|
|
DO WHILE LOOP4100
|
|
SET CONFIRM OFF
|
|
@ 4,72 SAY TIME()
|
|
|
|
// 3/31/2021 - Set ZOOM Factor for each one.
|
|
@ 11,09 SAY " Set ZOOM Resize Factor from 100% ------>Width Height"
|
|
@ 12,09 SAY " Select REPORTS Printer : : LPT Port : : : : : :"
|
|
@ 13,09 SAY " Select PRODUCTION Printer : : LPT Port : : : : : :"
|
|
@ 14,09 SAY " Select ORDER DESK Printer : : LPT Port : : : : : :"
|
|
@ 15,09 SAY " Select INVOICE Printer : : LPT Port : : : : : :"
|
|
@ 16,09 SAY " Select DELIVERY Printer : : LPT Port : : : : : :"
|
|
@ 17,09 SAY " Select GOLDEN ROD Printer : : LPT Port : : : : : :"
|
|
@ 18,09 SAY "Select MAILING LABEL Printer : : LPT Port : : : : : :"
|
|
@ 19,09 SAY " Select INTERCOMPANY Printer : : LPT Port : : : : : :"
|
|
@ 20,09 SAY " Select BACKORDER Printer : : LPT Port : : : : : :"
|
|
IF FIELDPOS('QTE_PRN') > 0 .AND. FIELDPOS('QTE_PORT') > 0
|
|
@ 21,09 SAY " Select QUOTE Printer : : LPT Port : : : : : :"
|
|
ENDIF
|
|
IF FIELDPOS('PRE_PRN') > 0 .AND. FIELDPOS('PRE_PORT') > 0
|
|
@ 22,09 SAY " Select PREBILL Printer : : LPT Port : : : : : :"
|
|
ENDIF
|
|
|
|
DO WHILE .T.
|
|
@ 12,39 GET _REPTPRNT PICTURE '9' VALID CHK_PRN(_REPTPRNT)
|
|
@ 12,54 GET M_LPTR PICTURE '9' VALID M_LPTR$'1234'
|
|
@ 12,60 GET _REPTFACW PICTURE '999' // 3/31/2021 - WIDTH FACTOR
|
|
@ 12,66 GET _REPTFACH PICTURE '999' // 3/31/2021 - HEIGHT FACTOR
|
|
|
|
@ 13,39 GET _PRODPRNT PICTURE '9' VALID CHK_PRN(_PRODPRNT)
|
|
@ 13,54 GET M_LPTP PICTURE '9' VALID M_LPTP$'1234'
|
|
@ 13,60 GET _PRODFACW PICTURE '999' // 3/31/2021 - WIDTH FACTOR
|
|
@ 13,66 GET _PRODFACH PICTURE '999' // 3/31/2021 - HEIGHT FACTOR
|
|
|
|
@ 14,39 GET _ODPRNT PICTURE '9' VALID CHK_PRN(_ODPRNT)
|
|
@ 14,54 GET M_LPTO PICTURE '9' VALID M_LPTO$'1234'
|
|
@ 14,60 GET _ODFACW PICTURE '999' // 3/31/2021 - WIDTH FACTOR
|
|
@ 14,66 GET _ODFACH PICTURE '999' // 3/31/2021 - HEIGHT FACTOR
|
|
|
|
@ 15,39 GET _INVPRNT PICTURE '9' VALID CHK_PRN(_INVPRNT)
|
|
@ 15,54 GET M_LPTI PICTURE '9' VALID M_LPTI$'1234'
|
|
@ 15,60 GET _INVFACW PICTURE '999' // 3/31/2021 - WIDTH FACTOR
|
|
@ 15,66 GET _INVFACH PICTURE '999' // 3/31/2021 - HEIGHT FACTOR
|
|
|
|
@ 16,39 GET _DELPRNT PICTURE '9' VALID CHK_PRN(_DELPRNT)
|
|
@ 16,54 GET M_LPTD PICTURE '9' VALID M_LPTD$'1234'
|
|
@ 16,60 GET _DELFACW PICTURE '999' // 3/31/2021 - WIDTH FACTOR
|
|
@ 16,66 GET _DELFACH PICTURE '999' // 3/31/2021 - HEIGHT FACTOR
|
|
|
|
@ 17,39 GET _GRPRNT PICTURE '9' VALID CHK_PRN(_GRPRNT)
|
|
@ 17,54 GET M_LPTG PICTURE '9' VALID M_LPTG$'1234'
|
|
@ 17,60 GET _GRFACW PICTURE '999' // 3/31/2021 - WIDTH FACTOR
|
|
@ 17,66 GET _GRFACH PICTURE '999' // 3/31/2021 - HEIGHT FACTOR
|
|
|
|
@ 18,39 GET _LBLPRNT PICTURE '9' VALID CHK_PRN(_LBLPRNT)
|
|
@ 18,54 GET M_LPTL PICTURE '9' VALID M_LPTL$'1234'
|
|
@ 18,60 GET _LBLFACW PICTURE '999' // 3/31/2021 - WIDTH FACTOR
|
|
@ 18,66 GET _LBLFACH PICTURE '999' // 3/31/2021 - HEIGHT FACTOR
|
|
|
|
@ 19,39 GET _ICPRNT PICTURE '9' VALID CHK_PRN(_ICPRNT)
|
|
@ 19,54 GET M_LPTIC PICTURE '9' VALID M_LPTIC$'1234'
|
|
@ 19,60 GET _ICFACW PICTURE '999' // 3/31/2021 - WIDTH FACTOR
|
|
@ 19,66 GET _ICFACH PICTURE '999' // 3/31/2021 - HEIGHT FACTOR
|
|
|
|
@ 20,39 GET _BOPRNT PICTURE '9' VALID CHK_PRN(_BOPRNT) //** P3N - 4/30/98
|
|
@ 20,54 GET M_LPTBO PICTURE '9' VALID M_LPTBO$'1234'
|
|
@ 20,60 GET _BOFACW PICTURE '999' // 3/31/2021 - WIDTH FACTOR
|
|
@ 20,66 GET _BOFACH PICTURE '999' // 3/31/2021 - HEIGHT FACTOR
|
|
|
|
IF FIELDPOS('QTE_PRN') > 0 .AND. FIELDPOS('QTE_PORT') > 0 //** P3N - 4/13/98
|
|
@ 21,39 GET _QTEPRNT PICTURE '9' VALID CHK_PRN(_QTEPRNT)
|
|
@ 21,54 GET M_LPTQ PICTURE '9' VALID M_LPTQ$'1234'
|
|
@ 21,60 GET _QTEFACW PICTURE '999' // 3/31/2021 - WIDTH FACTOR
|
|
@ 21,66 GET _QTEFACH PICTURE '999' // 3/31/2021 - HEIGHT FACTOR
|
|
ENDIF
|
|
|
|
IF FIELDPOS('PRE_PRN') > 0 .AND. FIELDPOS('PRE_PORT') > 0 //** P3N - 4/13/98
|
|
@ 22,39 GET _PREPRNT PICTURE '9' VALID CHK_PRN(_PREPRNT)
|
|
@ 22,54 GET M_LPTPRE PICTURE '9' VALID M_LPTPRE$'1234'
|
|
@ 22,60 GET _PREFACW PICTURE '999' // 3/31/2021 - WIDTH FACTOR
|
|
@ 22,66 GET _PREFACH PICTURE '999' // 3/31/2021 - HEIGHT FACTOR
|
|
ENDIF
|
|
|
|
READ
|
|
IF LASTKEY() == 27 .AND. PROCNAME(1) <> 'SET_PRNT_P'
|
|
CLS
|
|
FOR L = 1 TO LEN(CLOSE_ARR)
|
|
MFILE = CLOSE_ARR[L]
|
|
SELECT(MFILE)
|
|
USE
|
|
NEXT
|
|
RETURN
|
|
ENDIF
|
|
|
|
IF EMPTY(M_LPTR) .OR. EMPTY(M_LPTP) .OR. EMPTY(M_LPTO);
|
|
.OR. EMPTY(M_LPTI) .OR. EMPTY(M_LPTD) .OR. EMPTY(M_LPTG)
|
|
LOOP
|
|
ENDIF
|
|
CORR = CORRCHEK()
|
|
IF CORR = 'Y'
|
|
LOOP4100 := .F.
|
|
EXIT
|
|
ENDIF
|
|
IF LASTKEY() == 27 .AND. PROCNAME(1) <> 'SET_PRNT_P'
|
|
CLEAR
|
|
FOR L = 1 TO LEN(CLOSE_ARR)
|
|
MFILE = CLOSE_ARR[L]
|
|
SELECT(MFILE)
|
|
USE
|
|
NEXT
|
|
RETURN
|
|
ENDIF
|
|
ENDDO
|
|
ENDDO
|
|
SETCOLOR(LNOR)
|
|
SELECT WORKSTAT
|
|
REC_LOCK(1)
|
|
REPLACE REPT_PRN WITH PRN_LIST[VAL(_REPTPRNT)]
|
|
REPLACE PROD_PRN WITH PRN_LIST[VAL(_PRODPRNT)]
|
|
REPLACE OD_PRN WITH PRN_LIST[VAL(_ODPRNT)]
|
|
REPLACE INV_PRN WITH PRN_LIST[VAL(_INVPRNT)]
|
|
REPLACE DEL_PRN WITH PRN_LIST[VAL(_DELPRNT)]
|
|
REPLACE GR_PRN WITH PRN_LIST[VAL(_GRPRNT)]
|
|
REPLACE LBL_PRN WITH PRN_LIST[VAL(_LBLPRNT)]
|
|
REPLACE IC_PRN WITH PRN_LIST[VAL(_ICPRNT)]
|
|
REPLACE BO_PRN WITH PRN_LIST[VAL(_BOPRNT)] //** P3N - 4/30/98
|
|
IF FIELDPOS('QTE_PRN') > 0 //** P3N - 4/13/98
|
|
REPLACE QTE_PRN WITH PRN_LIST[VAL(_QTEPRNT)] //** P3N - 4/13/98
|
|
ENDIF
|
|
IF FIELDPOS('PRE_PRN') > 0 //** P3N - 4/13/98
|
|
REPLACE PRE_PRN WITH PRN_LIST[VAL(_PREPRNT)] //** P3N - 4/13/98
|
|
ENDIF
|
|
REPLACE REPT_PORT WITH M_LPTR
|
|
REPLACE PROD_PORT WITH M_LPTP
|
|
REPLACE OD_PORT WITH M_LPTO
|
|
REPLACE INV_PORT WITH M_LPTI
|
|
REPLACE DEL_PORT WITH M_LPTD
|
|
REPLACE GR_PORT WITH M_LPTG
|
|
REPLACE LBL_PORT WITH M_LPTL
|
|
REPLACE IC_PORT WITH M_LPTIC
|
|
REPLACE BO_PORT WITH M_LPTBO //** P3N - 4/30/98
|
|
IF FIELDPOS('QTE_PORT') > 0 //** P3N - 4/13/98
|
|
REPLACE QTE_PORT WITH M_LPTQ //** P3N - 4/13/98
|
|
ENDIF
|
|
IF FIELDPOS('PRE_PORT') > 0 //** P3N - 4/13/98
|
|
REPLACE PRE_PORT WITH M_LPTPRE //** P3N - 4/13/98
|
|
ENDIF
|
|
|
|
// 3/31/2021 - ADJUSTMENT FACTOR FOR WIDTH/HEIGHT OF PRINT
|
|
REPLACE REPT_FACW WITH _REPTFACW
|
|
REPLACE REPT_FACH WITH _REPTFACH
|
|
|
|
REPLACE PROD_FACW WITH _PRODFACW
|
|
REPLACE PROD_FACH WITH _PRODFACH
|
|
|
|
REPLACE OD_FACW WITH _ODFACW
|
|
REPLACE OD_FACH WITH _ODFACH
|
|
|
|
REPLACE INV_FACW WITH _INVFACW
|
|
REPLACE INV_FACH WITH _INVFACH
|
|
|
|
REPLACE DEL_FACW WITH _DELFACW
|
|
REPLACE DEL_FACH WITH _DELFACH
|
|
|
|
REPLACE GR_FACW WITH _GRFACW
|
|
REPLACE GR_FACH WITH _GRFACH
|
|
|
|
REPLACE LBL_FACW WITH _LBLFACW
|
|
REPLACE LBL_FACH WITH _LBLFACH
|
|
|
|
REPLACE IC_FACW WITH _ICFACW
|
|
REPLACE IC_FACH WITH _ICFACH
|
|
|
|
REPLACE BO_FACW WITH _BOFACW
|
|
REPLACE BO_FACH WITH _BOFACH
|
|
|
|
REPLACE QTE_FACW WITH _QTEFACW
|
|
REPLACE QTE_FACH WITH _QTEFACH
|
|
|
|
REPLACE PRE_FACW WITH _PREFACW
|
|
REPLACE PRE_FACH WITH _PREFACH
|
|
|
|
// RESET THE SYSTEM VARIABLES TOO!!!
|
|
FOR L = 1 TO LEN(CLOSE_ARR)
|
|
MFILE = CLOSE_ARR[L]
|
|
SELECT(MFILE)
|
|
USE
|
|
NEXT
|
|
|
|
CLEAR SCREEN
|
|
RETURN
|
|
ENDDO WHILE .T.
|
|
|
|
RETURN
|
|
|
|
* * * * * * * * * * * * * * * * *
|
|
|
|
// @ 12,10 SAY " Select REPORTS Printer : : LPT Port : :"
|
|
// @ 13,10 SAY " Select PRODUCTION Printer : : LPT Port : :"
|
|
// @ 14,10 SAY " Select ORDER DESK Printer : : LPT Port : :"
|
|
// @ 15,10 SAY " Select INVOICE Printer : : LPT Port : :"
|
|
// @ 16,10 SAY " Select DELIVERY Printer : : LPT Port : :"
|
|
// @ 17,10 SAY " Select GOLDEN ROD Printer : : LPT Port : :"
|
|
// @ 18,10 SAY "Select MAILING LABEL Printer : : LPT Port : :"
|
|
// @ 19,10 SAY " Select INTERCOMPANY Printer : : LPT Port : :"
|
|
// @ 20,10 SAY " Select BACKORDER Printer : : LPT Port : :" //** P3N 4/30/98
|
|
// IF FIELDPOS('QTE_PRN') > 0 .AND. FIELDPOS('QTE_PORT') > 0 //** P3N - 4/13/98
|
|
// @ 21,10 SAY " Select QUOTE Printer : : LPT Port : :"
|
|
// ENDIF
|
|
// IF FIELDPOS('PRE_PRN') > 0 .AND. FIELDPOS('PRE_PORT') > 0 //** P3N - 4/13/98
|
|
// @ 22,10 SAY " Select PREBILL Printer : : LPT Port : :"
|
|
// ENDIF
|
|
|
|
|
|
********************************************************************** |