2365 lines
92 KiB
Plaintext
2365 lines
92 KiB
Plaintext
*****************************************************************
|
|
//** P3N - 8/20/99 - MOVED FROM CGWPRINT.PRG
|
|
//** P3N - 8/20/99 - CGWPRINT.PRG WAS TOOO BIG FOR THE DBUGER
|
|
*****************************************************************
|
|
FUNCTION FORMAT_PRT(BODY_DESC, PAMTS_ARR, PADSZ, SUBTYPE, WHCHORDER, ;
|
|
PARTIAL_INVOICE, REPRINT_INVOICE )
|
|
LOCAL PRT_VAL, NEGAMT, NEGTOT, PRT_AMTS := PAMTS_ARR[5], PRT_BO := PAMTS_ARR[6]
|
|
LOCAL BOQTY := PAMTS_ARR[2], SHPQTY := PAMTS_ARR[3], INVQTY := 0
|
|
LOCAL OQTY := PAMTS_ARR[1], XQTY := PAMTS_ARR[7], XUOM := ' ', MIENTRYSZ := 0
|
|
LOCAL PRT_QTY := 0, TOTWINDOWS := XQTY + 1, WORKVAR
|
|
IF WHCHORDER == 'BACKORD' //** P3N -12/2/98
|
|
BOQTY := PAMTS_ARR[3] //** P3N -12/2/98
|
|
SHPQTY := 0 //** P3N -12/2/98
|
|
ENDIF
|
|
IF LEN(PAMTS_ARR) >= 8
|
|
IF EMPTY(PAMTS_ARR[8]) //** P3N - 12/3/98
|
|
XUOM := ' '
|
|
ELSE
|
|
XUOM := ALLTRIM(PAMTS_ARR[8]) + ' ' //** P3N - 12/01/98
|
|
ENDIF
|
|
ENDIF
|
|
IF LEN(PAMTS_ARR) >= 9 //** P3N - 12/3/98
|
|
IF EMPTY(PAMTS_ARR[9]) //** P3N - 12/3/98
|
|
INVQTY := 0 //** P3N - 12/3/98
|
|
ELSE //** P3N - 12/3/98
|
|
INVQTY := PAMTS_ARR[9] //** P3N - 12/3/98
|
|
ENDIF
|
|
ENDIF
|
|
/////////////*****************\\\\\\\\\\\\\\\\\\\\\\\
|
|
//** IF THE OQTY IS AN ARRAY - IT CONTAINS THE QTY AND THE
|
|
//** MISC_ITEMS ENTRY SIZE WHICH WILL PRINT IN THE PLACE OF THE QTY.
|
|
/////////////*****************\\\\\\\\\\\\\\\\\\\\\\\
|
|
IF VALTYPE(OQTY) = 'A'
|
|
PAMTS_ARR[1] := OQTY[1]
|
|
MIENTRYSZ := FORMAT_MISCSIZE( OQTY[2] )
|
|
OQTY := PAMTS_ARR[1] //** NUMERIC MISC ITEM ORDER QTY
|
|
ELSEIF EMPTY(OQTY) // NUMERIC QUANTITY //** P3N - 6/5/98
|
|
OQTY := 0 //** P3N - 12/2/98
|
|
ENDIF
|
|
IF VALTYPE(MIENTRYSZ) = 'N' //** P3N -12/3/98
|
|
IF EMPTY(MIENTRYSZ) //** P3N -12/3/98
|
|
ELSE //** P3N -12/3/98
|
|
XUOM := STR(MIENTRYSZ) + ' ' + XUOM //** P3N -12/3/98
|
|
OQTY := 0 //** P3N - 5/26/98
|
|
BOQTY := 0 //** P3N - 5/26/98
|
|
SHPQTY := 0 //** P3N - 5/26/98
|
|
ENDIF //** P3N -12/3/98
|
|
IF WHCHORDER == 'BACKORD' //** P3N -12/3/98
|
|
IF EMPTY(BOQTY) //** P3N - 5/26/99
|
|
PRT_VAL := SPACE(13) //** P3N - 5/26/99
|
|
//** IOLA AND PAWNEE USE DELIVERY COPIES FOR BACKORDERS
|
|
ELSEIF MHOME_LOC_CODE = 'PAWNEE' //** P3N - 2/23/99
|
|
IF BOQTY <= 999 //** P3N - 2/23/99
|
|
PRT_VAL := SPACE(5) + STR(BOQTY, 4,0)+SPACE(4)
|
|
ELSE //** P3N - 2/23/99
|
|
PRT_VAL := SPACE(3) + STR(BOQTY, 6,0)+SPACE(4)
|
|
ENDIF //** P3N - 2/23/99
|
|
ELSEIF MHOME_LOC_CODE = 'IOLA' //** P3N - 3/09/99
|
|
IF BOQTY <= 999 //** P3N - 3/09/99
|
|
PRT_VAL := SPACE(4) + STR(BOQTY, 4,0)+SPACE(5)
|
|
ELSE //** P3N - 3/09/99
|
|
PRT_VAL := SPACE(3) + STR(BOQTY, 6,0)+SPACE(4)
|
|
ENDIF //** P3N - 3/09/99
|
|
ELSE //** P3N - 3/09/99
|
|
IF BOQTY <= 999 //** P3N -12/3/98
|
|
PRT_VAL := SPACE(9) + STR(BOQTY, 4,0) //** P3N -12/3/98
|
|
ELSE //** P3N -12/3/98
|
|
PRT_VAL := SPACE(7) + STR(BOQTY, 6,0) //** P3N -12/3/98
|
|
ENDIF //** P3N -12/3/98
|
|
ENDIF //** P3N - 2/23/99
|
|
ELSE
|
|
//** MISC ITEMS CAN HAVE A QTY OF 999999
|
|
IF OQTY <= 999 //** P3N -12/3/98
|
|
IF EMPTY(OQTY) //** P3N - 5/10/99
|
|
PRT_VAL := SPACE(4) // ORDER QTY //** P3N - 5/10/99
|
|
ELSE //** P3N - 5/10/99
|
|
PRT_VAL := STR(OQTY,4,0) // ORDER QTY //** P3N -12/3/98
|
|
ENDIF //** P3N - 5/10/99
|
|
IF PRT_BO .AND. !EMPTY(BOQTY) // DO NOT PRINT 0 BACK ORDER QTY
|
|
PRT_VAL := PRT_VAL + SPACE(1) + STR(BOQTY,3,0) //BACK ORDER QTY
|
|
ELSE
|
|
PRT_VAL := PRT_VAL + SPACE(4)
|
|
ENDIF
|
|
IF PRT_BO .AND. !EMPTY( SHPQTY ) .AND. ; // DO NOT PRINT 0 SHIP QTY
|
|
PAMTS_ARR[1] <> SHPQTY // IS THE ORDER QTY = SHIP QTY
|
|
PRT_VAL := PRT_VAL + SPACE(2) + STR(SHPQTY,3,0) //SHIP QTY
|
|
ELSE
|
|
PRT_VAL := PRT_VAL + SPACE(5)
|
|
ENDIF
|
|
ELSEIF EMPTY(OQTY) //** P3N - 5/10/99
|
|
PRT_VAL := SPACE(6) //MISC ITEM ORDER QTY //** P3N - 5/10/99
|
|
ELSE //** P3N - 5/10/99
|
|
PRT_VAL := STR(OQTY,6,0) //MISC ITEM ORDER QTY //** P3N -12/3/98
|
|
ENDIF //** P3N - 5/10/99
|
|
PRT_VAL := PADR(PRT_VAL, 13,' ') //** P3N -12/3/98
|
|
ENDIF
|
|
PRT_VAL := PRT_VAL + SPACE(2)
|
|
IF PRT_AMTS .AND. !EMPTY(PAMTS_ARR[4])
|
|
IF EMPTY(XUOM)
|
|
PRT_VAL := PRT_VAL + PADR(ALLTRIM(BODY_DESC), PADSZ, ' ') //ITEM DESC
|
|
ELSE
|
|
PRT_VAL := PRT_VAL + PADR(XUOM + ALLTRIM(BODY_DESC), PADSZ, ' ') //ITEM DESC
|
|
ENDIF
|
|
IF CUR_MAST == 'ORD_MAST' .AND. WHCHORDER == 'INV' .AND. PARTIAL_INVOICE
|
|
PRTQTY := SHPQTY
|
|
ELSEIF CUR_MAST == 'ORD_MAST' .AND. WHCHORDER == 'INV' .AND. REPRINT_INVOICE
|
|
PRTQTY := INVQTY
|
|
ELSE
|
|
PRTQTY := PAMTS_ARR[1]
|
|
ENDIF
|
|
IF PAMTS_ARR[4] < 0 .OR. PAMTS_ARR[1] < 0
|
|
//** P3N - 11/23/98 PARTIAL INVOICE MODIFICATIONS
|
|
//**NEGTOT := TRANSFORM(PAMTS_ARR[1] * PAMTS_ARR[4],'(9999999999.99)')
|
|
NEGTOT := TRANSFORM(PRTQTY * PAMTS_ARR[4],'(9999999999.99)')
|
|
NEGAMT := TRANSFORM(PAMTS_ARR[4],'(99999.99)')
|
|
NEGAMT := STRTRAN(NEGAMT, ' ', '')
|
|
NEGAMT := STRTRAN(NEGAMT, '-', '')
|
|
NEGTOT := STRTRAN(NEGTOT, ' ', '')
|
|
NEGTOT := STRTRAN(NEGTOT, '-', '')
|
|
NEGAMT := PADL(NEGAMT, 9, ' ')
|
|
NEGTOT := PADL(NEGTOT,13, ' ')
|
|
ELSE
|
|
NEGAMT := 0
|
|
NEGTOT := 0
|
|
ENDIF
|
|
WORKVAR := STR(PAMTS_ARR[4],12,4)
|
|
//**IF MHOME_LOC_CODE = 'KC' .OR. MHOME_LOC_CODE = 'LINDS' //PER LINDA - 6/16/97
|
|
//** PRT_VAL := PRT_VAL + ' '
|
|
//**ENDIF
|
|
//**IF MHOME_LOC_CODE = 'KC' //** P3N - 7/18/00 remove spaces for kc
|
|
//** PRT_VAL := PRT_VAL + ' '
|
|
//**ENDIF
|
|
IF MHOME_LOC_CODE = 'LINDS' //** P3N - 7/17/00 ADDRESS THE DELIVERY TICKET PRINT ISSUES
|
|
IF SUBTYPE = 'DELIVERY' //** P3N - 7/17/00
|
|
PRT_VAL := PRT_VAL + ' ' //** P3N - 7/17/00
|
|
ELSE //** P3N - 7/17/00
|
|
PRT_VAL := PRT_VAL + ' ' //** P3N - 7/17/00 LEAVE THE SAME FOR ALL OTHER COPIES AT LINDS
|
|
ENDIF //** P3N - 7/17/00
|
|
ELSEIF MHOME_LOC_CODE = 'KC' //** P3N - 7/18/00 LEAVE THE SAME FOR KC COPIES
|
|
PRT_VAL := PRT_VAL + ' ' //** P3N - 7/18/00
|
|
ENDIF
|
|
IF RIGHT(WORKVAR,2) = '00'
|
|
IF EMPTY(NEGAMT)
|
|
PRT_VAL := PRT_VAL + STR(PAMTS_ARR[4], 8, 2) //POSITIVE ITEM AMT
|
|
ELSE
|
|
PRT_VAL := PRT_VAL + NEGAMT //(NEGATIVE) ITEM AMT
|
|
ENDIF
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
PRT_VAL := PRT_VAL + ' '
|
|
ENDIF
|
|
IF EMPTY(NEGTOT) //POSITIVE TOTAL AMT
|
|
IF CUR_MAST == 'ORD_MAST' .AND. WHCHORDER == 'INV' .AND. PARTIAL_INVOICE
|
|
PRT_VAL := PRT_VAL + STR( SHPQTY * PAMTS_ARR[4], 13, 2 )
|
|
ELSEIF CUR_MAST == 'ORD_MAST' .AND. WHCHORDER == 'INV' .AND. REPRINT_INVOICE
|
|
PRT_VAL := PRT_VAL + STR( INVQTY * PAMTS_ARR[4], 13, 2 )
|
|
ELSE
|
|
PRT_VAL := PRT_VAL + STR( PAMTS_ARR[1] * PAMTS_ARR[4], 13, 2 )
|
|
ENDIF
|
|
ELSE
|
|
PRT_VAL := PRT_VAL + NEGTOT //(NEGATIVE) TOTAL AMT
|
|
ENDIF
|
|
ELSE
|
|
IF EMPTY(NEGAMT) //POSITIVE AMT
|
|
PRT_VAL := PRT_VAL + STR(PAMTS_ARR[4], 9, 4) //MISC 9.9999 ITEM AMT
|
|
ELSE
|
|
PRT_VAL := PRT_VAL + NEGAMT //MISC 9.9999 ITEM AMT
|
|
ENDIF
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
PRT_VAL := PRT_VAL + ' '
|
|
ENDIF
|
|
IF EMPTY(NEGTOT) //POSITIVE TOTAL AMT
|
|
IF CUR_MAST == 'ORD_MAST' .AND. WHCHORDER == 'INV' .AND. PARTIAL_INVOICE
|
|
PRT_VAL := PRT_VAL + STR( SHPQTY * PAMTS_ARR[4], 12, 2 )
|
|
ELSEIF CUR_MAST == 'ORD_MAST' .AND. WHCHORDER == 'INV' .AND. REPRINT_INVOICE
|
|
PRT_VAL := PRT_VAL + STR( INVQTY * PAMTS_ARR[4], 12, 2 )
|
|
ELSE
|
|
PRT_VAL := PRT_VAL + STR( PAMTS_ARR[1] * PAMTS_ARR[4], 12, 2 )
|
|
ENDIF
|
|
ELSE
|
|
PRT_VAL := PRT_VAL + NEGTOT //(NEGATIVE) TOTAL
|
|
ENDIF
|
|
ENDIF
|
|
ELSEIF EMPTY(XUOM)
|
|
PRT_VAL := PRT_VAL + PADR(ALLTRIM(BODY_DESC), PADSZ, ' ') //ITEM DESC
|
|
ELSE
|
|
PRT_VAL := PRT_VAL + PADR(XUOM + ALLTRIM(BODY_DESC), PADSZ, ' ') //ITEM DESC
|
|
ENDIF
|
|
ELSE
|
|
//** INVALID MISC ITEM ENTRY SIZE
|
|
PRT_VAL := MIENTRYSZ+' '+ PADR(XUOM + ALLTRIM(BODY_DESC), PADSZ, ' ') //ITEM DESC
|
|
ENDIF
|
|
RETURN PRT_VAL
|
|
**************************************************
|
|
**************************************************
|
|
**************************************************
|
|
***************************************************************
|
|
//* PRINT THE ORDER AS DEFINED IN THE PASSED ARRAYS
|
|
***************************************************************
|
|
FUNCTION PROCESS_OO(PHEAD_ARR, PBODY_ARR, PTAIL_ARR, PAMTS_ARR, SUBTYPE, ;
|
|
PRT_GL_INFO, WHCHORDER, PARTIAL_INVOICE, REPRINT_INVOICE, OUTMODE)
|
|
LOCAL I:= 0, PG_NUM := 0, LINE_CNT := 0, LINES_DONE := 0, PASSHEAD := {}
|
|
LOCAL SV_LI_DESC := {}, TAILERR, WKNOTEARR, N := 0
|
|
LOCAL PG_DEF_ARR := CALC_PAGES(PBODY_ARR, PTAIL_ARR)
|
|
LOCAL TOTL_PAGES := LEN(PG_DEF_ARR)
|
|
LOCAL WKNOTES := '', PRNTLEN := 55 //** P3N - 12/22/00
|
|
LOCAL RETVARARR := {}, II := 0 //** P3N - 12/22/00
|
|
//** ADDRESS LINDS DELIVERY COPY PRINT ANOMALLY //** P3N - 7/12/00
|
|
LOCAL SVLMAR := MLMAR //** P3N - 7/12/00
|
|
|
|
|
|
IF EMPTY(PRINTERS->SP10) //** P3N - 05/16/01
|
|
TSTPRT := '' //** P3N - 05/16/01
|
|
ELSE //** FOR TESTING WITH EPSON LQ-500 //** P3N - 05/16/01
|
|
TSTPRT := ALLTRIM(PRINTERS->SP10) //** P3N - 05/16/01
|
|
TSTPRT := &TSTPRT //** P3N - 05/16/01
|
|
?? TSTPRT //** P3N - 05/16/01
|
|
ENDIF //** P3N - 05/16/01
|
|
IF MHOME_LOC_CODE == 'LINDS ' //** P3N - 7/12/00
|
|
IF SUBTYPE == 'DELIVERY' //** P3N - 7/12/00
|
|
MLMAR := SPACE( LEN(MLMAR) - 5 ) //** P3N - 7/12/00
|
|
ENDIF //** P3N - 7/12/00
|
|
ENDIF //** P3N - 7/12/00
|
|
IF TOTL_PAGES = 0
|
|
RETURN
|
|
ENDIF
|
|
IF PG_DEF_ARR[TOTL_PAGES, 2] + LEN(PTAIL_ARR) > MBODY_LEN
|
|
TOTL_PAGES := TOTL_PAGES + 1
|
|
ENDIF
|
|
FOR I := 1 TO LEN(PG_DEF_ARR)
|
|
IF OUTMODE == 'PRINT' //** P3N - 12/14/98
|
|
IF !EJECT_MSG()
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
FOR II := 1 TO MTMAR
|
|
? // PRINT THE TOP MARGIN LINES AS DEFINED IN
|
|
NEXT // THE CONTROL FILE FIELD TMAR
|
|
PG_NUM := PG_NUM + 1
|
|
|
|
//* THE CUSTOMER INVOICE MUST FIT ON THE EXISTING ORDER FORM
|
|
PRT_HEAD(PHEAD_ARR, PG_NUM, TOTL_PAGES, SUBTYPE )
|
|
IF I <= LEN(PG_DEF_ARR)
|
|
LINE_CNT := PG_DEF_ARR[I,2]
|
|
IF EMPTY(SV_LI_DESC) .OR. EMPTY(LINES_DONE)
|
|
SV_LI_DESC := ;
|
|
PRT_BODY(PBODY_ARR, PG_DEF_ARR[I, 2], LINES_DONE, PAMTS_ARR, , ;
|
|
SUBTYPE, WHCHORDER, PARTIAL_INVOICE, REPRINT_INVOICE)
|
|
ELSE
|
|
SV_LI_DESC := ;
|
|
PRT_BODY(PBODY_ARR, PG_DEF_ARR[I, 2], LINES_DONE, PAMTS_ARR, ;
|
|
SV_LI_DESC, SUBTYPE, WHCHORDER, PARTIAL_INVOICE, REPRINT_INVOICE )
|
|
IF PG_NUM == TOTL_PAGES
|
|
SV_LI_DESC := {} // CLEAR LINE ITEM DESC FOR NEXT PRODUCT
|
|
ENDIF
|
|
ENDIF
|
|
LINES_DONE := LINES_DONE + PG_DEF_ARR[I,2]
|
|
ENDIF
|
|
//** FIXED NOTE FIELD ON ORDER SCREEN
|
|
IF !EMPTY( (CUR_MAST)->NOTE_FIELD ) .AND. (CUR_MAST)->PRNT_NOTES$'Y'
|
|
//PRT ORDER MASTER ONE LINE NOTE - UP TO 5 LINES OF 55 BYTES / 254 CHARS. TOTAL
|
|
//**? SPACE(15) + ALLTRIM((CUR_MAST)->NOTE_FIELD) //** P3N - 12/22/00
|
|
WKNOTES := (CUR_MAST)->NOTE_FIELD //** P3N - 12/22/00
|
|
RETVARARR := PRT_MEMO({}, {}, WKNOTES, PRNTLEN) // PRINT THE ORDER MASTER NOTES
|
|
IF EMPTY(RETVARARR) //** P3N - 12/22/00
|
|
ELSE //** P3N - 12/22/00
|
|
WKNOTES := RETVARARR[1] //** P3N - 12/22/00
|
|
FOR II := 1 TO LEN(WKNOTES) //** P3N - 12/22/00
|
|
IF EMPTY(WKNOTES[II]) //** P3N - 05/15/01
|
|
ELSE //** P3N - 05/15/01
|
|
? SPACE(15) + WKNOTES[II] //** P3N - 12/22/00
|
|
ENDIF //** P3N - 05/15/01
|
|
NEXT //** P3N - 12/22/00
|
|
ENDIF //** P3N - 12/22/00
|
|
ENDIF
|
|
IF LEN(PG_DEF_ARR) < TOTL_PAGES .OR. I < LEN(PG_DEF_ARR)
|
|
?? CHR(13) + CHR(10)
|
|
EJECT
|
|
ENDIF
|
|
NEXT
|
|
IF LEN(PG_DEF_ARR) < TOTL_PAGES
|
|
IF OUTMODE == 'PRINT' //** P3N - 12/14/98
|
|
IF !EJECT_MSG()
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
PG_NUM := PG_NUM + 1
|
|
PRT_HEAD(PHEAD_ARR, PG_NUM, TOTL_PAGES, SUBTYPE )
|
|
LINES_DONE := 0
|
|
ELSE
|
|
LINES_DONE := PG_DEF_ARR[TOTL_PAGES,2]
|
|
ENDIF
|
|
TAILERR := PRT_TAIL(PTAIL_ARR, LINES_DONE, PRT_GL_INFO, WHCHORDER, SUBTYPE, PG_DEF_ARR )
|
|
?? CHR(13) + CHR(10)
|
|
EJECT
|
|
IF EMPTY(TSTPRT) //** P3N - 05/16/01
|
|
ELSE //** SET BACK TO 10 PITCH (CPI) //** P3N - 05/16/01
|
|
TSTPRT := SP10 //** P3N - 05/16/01
|
|
ENDIF //** P3N - 05/16/01
|
|
IF EMPTY(TAILERR)
|
|
ELSE
|
|
SET_P_OFF()
|
|
IF PRT_GL_INFO .AND. TAILERR < 3
|
|
ERR_BOX('** Can NOT print GL entries on bottom of this Order! **')
|
|
ELSE
|
|
ERR_BOX('** Can NOT print ENTIRE Invoice Msg on the bottom of this Order! **')
|
|
ENDIF
|
|
ENDIF
|
|
MLMAR := SVLMAR //** P3N - 7/12/00
|
|
RETURN
|
|
*************************************************************
|
|
*************************************************************
|
|
*************************************************************
|
|
FUNCTION EJECT_MSG()
|
|
// NOTE THAT FORMTYPE MAY = 'PREPRINT-TRACTOR' - THUS BYPASS THIS LOGIC
|
|
IF FORMTYPE == 'PREPRINT' // PRE-PRINTED FORMS
|
|
IF MSING_SHEET == 'Y' // SINGLE SHEET FEED
|
|
//SEND MSG FOR PAUSE
|
|
SET_P_OFF(.F.) // DON'T CHANGE PRINTER PORT ASSIGNMENT
|
|
?? CHR(7)
|
|
@ 23,0 SAY 'Place PRE-PRINTED ORDER FORM in PRINTER - Then Any Key to CONTINUE.'
|
|
@ 24,0 SAY ' OR Press <ESC> to CANCEL.'
|
|
CLEAR TYPEAHEAD
|
|
INKEY(0) //PAUSE
|
|
@23, 0
|
|
@24, 0
|
|
IF LASTKEY() = 27
|
|
RETURN .F.
|
|
ENDIF
|
|
SET_P_ON()
|
|
ENDIF
|
|
ENDIF
|
|
RETURN .T.
|
|
***************************************************************
|
|
//* PRINT THE ORDER HEADING
|
|
***************************************************************
|
|
FUNCTION PRT_HEAD(PHEAD_ARR, PG_NUM, TOT_PAGES, SUBTYPE )
|
|
LOCAL PG_HD := 'Page' + STR(PG_NUM,2) + ' OF ' + STR(TOT_PAGES,2), I_NUMPRT, I_LINE, I
|
|
|
|
// I_NUMPRT := INVOICE NUMBER TO PRINT IN BOLD LETTERS
|
|
IF SUBTYPE <> 'PREBILL' ;
|
|
.AND. SUBTYPE <> 'PO' // SUPRESS ORDER NUMBER ON INTER-COMPANY PO'S PER DARLENE 6-26-20
|
|
I_NUMPRT := &WIDEON + (CUR_MAST)->ORDER_NUM + &WIDEOFF
|
|
ELSE
|
|
I_NUMPRT := ''
|
|
ENDIF
|
|
IF MHOME_LOC_CODE = 'IOLA'
|
|
?
|
|
?
|
|
ENDIF
|
|
IF MHOME_LOC_CODE = 'LINDS'
|
|
I_LINE := 3 //NEW FORMS - ADJUST BASED ON THE LP_HEADING() FUNCTION!
|
|
ELSEIF MHOME_LOC_CODE = 'PAWNEE' //** P3N - 2/04/99
|
|
IF FORMTYPE = 'PREPRINT' // PRE-PRINTED FORMS //** P3N - 2/04/99
|
|
? //** P3N - 2/04/99
|
|
I_LINE := 5 //PAWNEE FORMS - ADJUST BASED ON THE LP_HEADING() FUNCTION!
|
|
ELSE
|
|
I_LINE := 1
|
|
ENDIF
|
|
ELSE
|
|
I_LINE := 1
|
|
ENDIF
|
|
FOR I := 1 TO LEN(PHEAD_ARR)
|
|
IF I = I_LINE
|
|
IF MHOME_LOC_CODE = 'IOLA'
|
|
? PADR(MLMAR + PHEAD_ARR[I], 60) + I_NUMPRT
|
|
ELSEIF MHOME_LOC_CODE = 'KC'
|
|
IF AT('DUPLICATE', PHEAD_ARR[I]) > 0 //DUPLICATE INVOICE MSG
|
|
? PADR(MLMAR + PHEAD_ARR[I], 63) + I_NUMPRT
|
|
ELSE
|
|
? PADR(MLMAR + PHEAD_ARR[I], 70) + I_NUMPRT
|
|
ENDIF
|
|
ELSE
|
|
? PADR(MLMAR + PHEAD_ARR[I], 66) + I_NUMPRT
|
|
ENDIF
|
|
ELSEIF I = I_LINE + 1
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
? PADR(MLMAR + PHEAD_ARR[I], 70) + PG_HD
|
|
ELSEIF MHOME_LOC_CODE = 'PAWNEE'
|
|
IF SUBTYPE = 'DELIVERY'
|
|
? PADR(MLMAR + PHEAD_ARR[I], 63) + PG_HD
|
|
ELSE
|
|
? PADR(MLMAR + PHEAD_ARR[I], 66) + PG_HD
|
|
ENDIF
|
|
ELSEIF MHOME_LOC_CODE = 'LINDS' //** P3N - 7/12/00
|
|
IF SUBTYPE = 'DELIVERY' .AND. ; //** P3N - 7/12/00
|
|
AT('DUPLICATE', PHEAD_ARR[I]) > 0 //DUPLICATE INVOICE MSG
|
|
? PADR(MLMAR + PHEAD_ARR[I], 59) + PG_HD //** P3N - 7/12/00
|
|
ELSE //** P3N - 7/12/00
|
|
? PADR(MLMAR + PHEAD_ARR[I], 66) + PG_HD //** P3N - 7/12/00
|
|
ENDIF //** P3N - 7/12/00
|
|
ELSE
|
|
? PADR(MLMAR + PHEAD_ARR[I], 66) + PG_HD
|
|
ENDIF
|
|
ELSE
|
|
? MLMAR + PHEAD_ARR[I]
|
|
ENDIF
|
|
NEXT
|
|
RETURN
|
|
***************************************************************
|
|
//* PRINT THE ORDER BODY
|
|
***************************************************************
|
|
FUNCTION PRT_BODY(PBODY_ARR, LINE_CNT, LINES_DONE, PAMTS_ARR , SV_LI_DESC, ;
|
|
SUBTYPE, WHCHORDER, PARTIAL_INVOICE, REPRINT_INVOICE)
|
|
LOCAL I, CUR_LINE := LINES_DONE + 1, PRT_VAL
|
|
LOCAL PADSZ := 43, IOLAMAR := '', STRTPOS, II := 0, RET_VAL := SV_LI_DESC
|
|
IF FORMTYPE <> 'PREPRINT' .AND. !DO_WE_PRT_AMT( WHCHORDER, SUBTYPE ) //** P3N - 10/13/98
|
|
PADSZ := 60 //** P3N - 10/13/98
|
|
ENDIF //** P3N - 10/13/98
|
|
FOR I := 1 TO LINE_CNT
|
|
IF LEFT(PBODY_ARR[CUR_LINE], 1) == '^'
|
|
SV_LI_DESC := {} //CLEAR LINE ITEM HEADING
|
|
IF EMPTY(SUBS(PBODY_ARR[CUR_LINE],2))
|
|
ELSE
|
|
RET_VAL := SV_DESC_LINE_ITEM(PBODY_ARR, CUR_LINE) //FIND LINE ITEM HEADING
|
|
ENDIF
|
|
IF SUBS(PBODY_ARR[CUR_LINE], 2,1)$CHR(1)
|
|
STRTPOS := 3
|
|
ELSE
|
|
STRTPOS := 2
|
|
ENDIF
|
|
IF PAMTS_ARR[CUR_LINE] = NIL
|
|
// use entire line - no amounts will print
|
|
PRT_VAL := SPACE(15) + ALLTRIM(SUBS(PBODY_ARR[CUR_LINE], STRTPOS ))
|
|
ELSEIF EMPTY( PAMTS_ARR[CUR_LINE] )
|
|
PRT_VAL := PBODY_ARR[CUR_LINE] // ITEM TOTAL LINE
|
|
ELSE
|
|
PRT_VAL := ALLTRIM(SUBS(PBODY_ARR[CUR_LINE], STRTPOS ))
|
|
PRT_VAL := FORMAT_PRT(PRT_VAL, PAMTS_ARR[CUR_LINE], PADSZ, SUBTYPE, WHCHORDER, PARTIAL_INVOICE, REPRINT_INVOICE )
|
|
ENDIF
|
|
ELSE
|
|
IF !EMPTY(SV_LI_DESC) //PRINT LINE ITEM HEADING FOR MULTIPLE PAGES
|
|
IF EMPTY(II) // ONLY PRINT ONCE
|
|
FOR II := 1 TO LEN(SV_LI_DESC)
|
|
IF SUBS(SV_LI_DESC[II], 2,1)$CHR(1)
|
|
STRTPOS := 3
|
|
ELSEIF SUBS(SV_LI_DESC[II], 1,1)$'^'
|
|
STRTPOS := 2
|
|
ELSE
|
|
STRTPOS := 1
|
|
ENDIF
|
|
PRT_VAL := SPACE(15) + ALLTRIM(SUBS(SV_LI_DESC[II], STRTPOS) )
|
|
PRINT_BODY_LINE(IOLAMAR, MLMAR, PRT_VAL, 0)
|
|
NEXT
|
|
ENDIF
|
|
ENDIF
|
|
IF PAMTS_ARR[CUR_LINE] = NIL
|
|
PRT_VAL := SPACE(15) + ALLTRIM(PBODY_ARR[CUR_LINE])
|
|
ELSEIF EMPTY( PAMTS_ARR[CUR_LINE] )
|
|
PRT_VAL := PBODY_ARR[CUR_LINE] // ITEM TOTAL LINE
|
|
ELSE
|
|
PRT_VAL := FORMAT_PRT(PBODY_ARR[CUR_LINE], PAMTS_ARR[CUR_LINE], PADSZ, SUBTYPE, WHCHORDER, PARTIAL_INVOICE, REPRINT_INVOICE )
|
|
ENDIF
|
|
ENDIF
|
|
CUR_LINE := PRINT_BODY_LINE(IOLAMAR, MLMAR, PRT_VAL, CUR_LINE)
|
|
NEXT
|
|
RETURN RET_VAL //LINE ITEM HEADING
|
|
***************************************************************
|
|
* PRINT THE LINE ITEM LINE
|
|
***************************************************************
|
|
FUNCTION PRINT_BODY_LINE(IOLAMAR, MLMAR, PRT_VAL, CUR_LINE)
|
|
? IOLAMAR + MLMAR + PRT_VAL
|
|
CUR_LINE++
|
|
RETURN CUR_LINE
|
|
***************************************************************
|
|
* SAVE THE LINE ITEM DESCRIPTION FOR PRINTING ON MULTIPLE PAGES
|
|
***************************************************************
|
|
FUNCTION SV_DESC_LINE_ITEM(PBODY_ARR, CUR_LINE)
|
|
LOCAL RET_VAL := {}, I := CUR_LINE
|
|
DO WHILE I <= LEN(PBODY_ARR) .AND. !EMPTY(PBODY_ARR[I])
|
|
IF SUBS(PBODY_ARR[I], 1,1)$'^'
|
|
//**AADD(RET_VAL, PBODY_ARR[I])
|
|
FOR I := I TO LEN(PBODY_ARR)
|
|
IF EMPTY(PBODY_ARR[I])
|
|
I := LEN(PBODY_ARR)
|
|
EXIT
|
|
ELSE
|
|
AADD(RET_VAL, PBODY_ARR[I])
|
|
ENDIF
|
|
NEXT
|
|
ENDIF
|
|
I++
|
|
ENDDO
|
|
IF EMPTY(RET_VAL)
|
|
ELSE
|
|
AADD(RET_VAL, ' ') // BLANK LINE BETWEEN LINE ITEM DESC AND THE
|
|
ENDIF
|
|
RETURN RET_VAL // LINE ITEM DETAIL
|
|
***************************************************************
|
|
* FORMAT THE ORDER ITEM LINES
|
|
***************************************************************
|
|
***************************************************************
|
|
//* PRINT THE ORDER TAIL
|
|
***************************************************************
|
|
FUNCTION PRT_TAIL (PTAIL_ARR, LINES_DONE, PRNT_GL_INFO, WHCHORDER, SUBTYPE, PG_DEF_ARR )
|
|
LOCAL I, STOPVAR, X, WKI, WKGLAMT, NEGTOT, WKTAIL, WORKARR, TAILERR := 0
|
|
LOCAL RETVARARR := {}, PRNT_LEN := 80, WINV_NOTE := ' ', MSGCNT := 0
|
|
LOCAL DEFAULT_NOTE := DEFAULTNOTE()
|
|
LOCAL INVNOTEPOS := DEFAULT_NOTE[2]
|
|
LOCAL NOTE_LEN := 0 //** P3N - 05/15/01
|
|
IF EMPTY(PTAIL_ARR)
|
|
RETURN TAILERR
|
|
ENDIF
|
|
IF EMPTY( (CUR_MAST)->NOTE_FIELD ) //** P3N - 05/15/01
|
|
ELSEIF (CUR_MAST)->PRNT_NOTES$'Y' //** P3N - 05/15/01
|
|
//** TAKE INTO ACCOUNT THE ORDER MASTER->NOTE_FIELD (UP TO 5 LINES OF 50 CHARS)
|
|
NOTE_LEN := INT (LEN(ALLTRIM( (CUR_MAST)->NOTE_FIELD) ) / 50 )
|
|
LINES_DONE := LINES_DONE + NOTE_LEN + 1 //** P3N - 05/15/01
|
|
ENDIF //** P3N - 05/15/01
|
|
WORKARR := {}
|
|
//** THE QUOTE HEADING IS LONGER THAN THE ORDER HEADING
|
|
//** INCREASE THE LINES_DONE TO ACCOUNT FOR THIS DIFF.
|
|
IF CUR_MAST = 'QUOTE' //** P3N - 1/6/99
|
|
LINES_DONE := LINES_DONE + 8 //** P3N - 1/6/99
|
|
ENDIF //** P3N - 1/6/99
|
|
FOR I := LINES_DONE + 1 TO MAX(MBODY_LEN, LEN(PTAIL_ARR) )
|
|
AADD(WORKARR, '')
|
|
NEXT
|
|
IF LEN(WORKARR) < LEN(PTAIL_ARR)
|
|
FOR I := 1 TO LEN(PTAIL_ARR)
|
|
//** P3N - 4/20/98 NONTAX ITEM
|
|
IF AT(' ~ ',PTAIL_ARR[I]) > 0
|
|
//** P3N - 6/8/98 ADJ NONTAX ITEM FORMATING
|
|
WKTAIL := STRTRAN(PTAIL_ARR[I], '~', ' ' )
|
|
? MLMAR + WKTAIL
|
|
ELSE
|
|
? MLMAR + SPACE(5) + PTAIL_ARR[I]
|
|
ENDIF
|
|
NEXT
|
|
TAILERR := 1
|
|
ELSE
|
|
FOR I := 1 TO LEN(PTAIL_ARR)
|
|
WORKARR[I] := PTAIL_ARR[I]
|
|
NEXT
|
|
IF PRNT_GL_INFO
|
|
STOPVAR := LEN(WORKARR) - LEN(GL_ARR)
|
|
X := LEN(GL_ARR)
|
|
FOR I := LEN(WORKARR) TO MAX(STOPVAR, 1) STEP -1
|
|
IF X > 0 .AND. X <= LEN(GL_ARR)
|
|
IF GL_ARR[X,2] < 0 //** P3N - 4/28/98
|
|
NEGTOT := TRANSFORM(GL_ARR[X,2],'(9999999999999999.99)') //**P3N 4/28/98
|
|
NEGTOT := STRTRAN(NEGTOT, ' ', '') //** P3N - 4/28/98
|
|
NEGTOT := STRTRAN(NEGTOT, '-', '') //** P3N - 4/28/98
|
|
NEGTOT := PADL(NEGTOT,11, ' ') //** P3N - 4/28/98
|
|
ELSE
|
|
NEGTOT := '' //** P3N - 6/3/98
|
|
ENDIF
|
|
|
|
IF EMPTY(NEGTOT) //** P3N - 4/28/98
|
|
IF GL_ARR[X,2] <= 999999.99 //** P3N - 4/28/98
|
|
WKGLAMT := STR(GL_ARR[X,2],10,2) //** P3N - 4/28/98
|
|
ELSE //** P3N - 4/28/98
|
|
WKGLAMT := STR(GL_ARR[X,2],16,2) //** P3N - 4/28/98
|
|
ENDIF //** P3N - 4/28/98
|
|
ELSE //** P3N - 4/28/98
|
|
WKGLAMT := NEGTOT //** P3N - 4/28/98
|
|
ENDIF //** P3N - 4/28/98
|
|
|
|
IF EMPTY(SUBST(WORKARR[I], 1, 40) ) //** P3N - 11/25/98
|
|
WORKARR[I] := PADR(GL_ARR[X,1],10) + WKGLAMT ;
|
|
+ SUBS(WORKARR[I],21) //** P3N - 12/10/98
|
|
//** + SUBS(WORKARR[I],19) //** P3N - 12/10/98
|
|
ELSE //** P3N - 11/25/98
|
|
WKI := LEN(WORKARR)
|
|
WORKARR[WKI] := 'GL ALLOCATIONS WILL NOT FIT ON ORDER'
|
|
WORKARR[WKI-1] := 'GL ALLOCATIONS WILL NOT FIT ON ORDER'
|
|
WORKARR[WKI-2] := 'GL ALLOCATIONS WILL NOT FIT ON ORDER'
|
|
WORKARR[WKI-3] := 'GL ALLOCATIONS WILL NOT FIT ON ORDER'
|
|
//** P3N - 11/25/98
|
|
//** P3N - 11/25/98
|
|
TAILERR := 2 //** P3N - 11/25/98
|
|
EXIT //** P3N - 11/25/98
|
|
ENDIF
|
|
ELSE
|
|
EXIT
|
|
ENDIF
|
|
X --
|
|
NEXT
|
|
ENDIF
|
|
FOR I := 1 TO LEN(WORKARR)
|
|
//** P3N - 4/20/98 NONTAX ITEM
|
|
IF AT(' ~ ',WORKARR[I]) > 0
|
|
//** P3N - 6/8/98 ADJ NONTAX ITEM FORMATING
|
|
WKTAIL := STRTRAN(WORKARR[I], '~', ' ' )
|
|
? MLMAR + WKTAIL
|
|
ELSE
|
|
? MLMAR + SPACE(5) + WORKARR[I]
|
|
ENDIF
|
|
NEXT
|
|
ENDIF
|
|
|
|
IF WHCHORDER = 'INV' .AND. EMPTY(SUBTYPE) //** P3N - 12/15/98
|
|
FOR I := 1 TO INVNOTEPOS //** P3N - 12/16/98
|
|
? MLMAR + SPACE(5) //** P3N - 12/16/98
|
|
NEXT //** P3N - 12/16/98
|
|
//** PRINT THE TAIL(ORD_MAST->INVNOTES) INVOICE/SOLICITATION INFO FOR ORDERS
|
|
IF EMPTY( (CUR_MAST)->INVNOTES ) //** P3N - 12/15/98
|
|
WINV_NOTE := DEFAULT_NOTE[1] //** P3N - 12/16/98
|
|
ELSE
|
|
WINV_NOTE := (CUR_MAST)->INVNOTES //** P3N - 12/15/98
|
|
ENDIF
|
|
RETVARARR := PRT_MEMO({}, {}, WINV_NOTE, PRNT_LEN) // PRINT THE LINE ITEM NOTES
|
|
IF EMPTY(RETVARARR) //** P3N - 12/15/98
|
|
ELSE //** P3N - 12/15/98
|
|
FOR I := 1 TO LEN(RETVARARR[1]) //** P3N - 12/15/98
|
|
IF EMPTY(RETVARARR[1,I]) //** P3N - 12/15/98
|
|
LOOP //** P3N - 12/15/98
|
|
ENDIF //** P3N - 12/15/98
|
|
MSGCNT := MSGCNT + 1 //** P3N - 12/15/98
|
|
IF MSGCNT <= 3 //** P3N - 12/15/98
|
|
? MLMAR + RETVARARR[1,I] //** P3N - 12/15/98
|
|
PTAIL_ARR := RETVARARR[1,I] //** P3N - 12/15/98
|
|
ELSE //** P3N - 12/15/98
|
|
TAILERR := 3 //** P3N - 12/15/98
|
|
EXIT //** P3N - 12/15/98
|
|
ENDIF //** P3N - 12/15/98
|
|
NEXT //** P3N - 12/15/98
|
|
ENDIF //** P3N - 12/15/98
|
|
ENDIF //** P3N - 12/15/98
|
|
RETURN TAILERR
|
|
***********************************************************
|
|
* BUILD THE HEADING OF THE ORDER
|
|
***********************************************************
|
|
PROCEDURE BLD_HEAD(MORDER_NUM, ORD_TYPE, OLOC_CODE, WHCHORDER, SUBTYPE)
|
|
LOCAL PHEAD_ARR := {}, PV := ' ', I := 0 ,HD1ARR := {}, III
|
|
LOCAL HD2ARR := {}, WORKVAR, MPO_NUM, HD3ARR := {}
|
|
LOCAL DUPL_MSG := {' ', ' ' , ' ' } , HD_LINES := 0
|
|
LOCAL MTIME, MDATE, MAXLEN := 0
|
|
ALTSHIPADR->(DBSEEK( (CUR_MAST)->ORDER_NUM) ) //** P3N - 1/6/99
|
|
HD1ARR := HD1_PART(ORD_TYPE, OLOC_CODE, WHCHORDER, SUBTYPE)
|
|
HD2ARR := HD2_PART(ORD_TYPE, OLOC_CODE)
|
|
IF ORD_TYPE == 'BACKORD' //** P3N - 9/14/98
|
|
HD2ARR := HD2_PART(ORD_TYPE, OLOC_CODE, SUBTYPE) //** P3N - 9/14/98
|
|
ENDIF //** P3N - 9/14/98
|
|
HD3ARR := HD3_PART(ORD_TYPE, SUBTYPE)
|
|
DO CASE //** P3N - 4/30/98 CHGD TO CASE STMT!
|
|
CASE WHCHORDER = 'INV'
|
|
IF !EMPTY((CUR_MAST)->IDATE_LAST)
|
|
IF SUBTYPE <> 'PREBILL'
|
|
DUPL_MSG := DUPL_MSG(ORD_TYPE, (CUR_MAST)->IDATE_LAST, (CUR_MAST)->ITIME_LAST )
|
|
ENDIF
|
|
ENDIF
|
|
CASE WHCHORDER = 'PROD'
|
|
IF !EMPTY((CUR_MAST)->PDATE_LAST)
|
|
DUPL_MSG := DUPL_MSG(ORD_TYPE, (CUR_MAST)->PDATE_LAST, (CUR_MAST)->PTIME_LAST )
|
|
ENDIF
|
|
CASE WHCHORDER = 'OD'
|
|
IF SUBTYPE = 'DELIVERY' .AND. !EMPTY( (CUR_MAST)->DDATE_LAST )
|
|
DUPL_MSG := DUPL_MSG(SUBTYPE, (CUR_MAST)->DDATE_LAST, (CUR_MAST)->DTIME_LAST )
|
|
ELSEIF SUBTYPE = 'ORDERDESK' .AND. !EMPTY((CUR_MAST)->ODATE_LAST)
|
|
DUPL_MSG := DUPL_MSG(ORD_TYPE, (CUR_MAST)->ODATE_LAST, (CUR_MAST)->OTIME_LAST )
|
|
ENDIF
|
|
CASE WHCHORDER = 'BACKORD' //* P3N - 4/30/98
|
|
IF !EMPTY((CUR_MAST)->BODATE_LST)
|
|
DUPL_MSG := DUPL_MSG(ORD_TYPE, (CUR_MAST)->BODATE_LST, (CUR_MAST)->BOTIME_LST )
|
|
ENDIF
|
|
ENDCASE
|
|
DO CASE
|
|
CASE FORMTYPE = 'PREPRINT' //PRE-PRINTED ORDER FORM
|
|
**** LINDSBORG TOP HEADING
|
|
//**IF MHOME_LOC_CODE = 'LINDS' //** P3N - 2/04/99
|
|
IF MHOME_LOC_CODE = 'LINDS' .OR. MHOME_LOC_CODE = 'PAWNEE'
|
|
//** PHEAD_ARR := LINDS_HEADING(MORDER_NUM, DUPL_MSG, WHCHORDER, SUBTYPE )
|
|
PHEAD_ARR := LP_HEADING(MORDER_NUM, DUPL_MSG, WHCHORDER, SUBTYPE )
|
|
ELSE
|
|
FOR III := 1 TO LEN(DUPL_MSG)
|
|
AADD(PHEAD_ARR, SPACE(25) + DUPL_MSG[III])
|
|
NEXT
|
|
PV := SUBS( (CUR_MAST)->CUST_ID,1,2) + ' '
|
|
PV := PV + SUBS( (CUR_MAST)->CUST_ID,3,4) + ' '
|
|
PV := PV + SUBS( (CUR_MAST)->CUST_ID,7,2)
|
|
IF WHCHORDER = 'BACKORD' //* P3N - 8/12/98
|
|
AADD(PHEAD_ARR, ' ' )
|
|
AADD(PHEAD_ARR, ' ' )
|
|
IF MHOME_LOC_CODE <> 'IOLA'
|
|
AADD(PHEAD_ARR, ' ')
|
|
AADD(PHEAD_ARR, ' ')
|
|
ENDIF
|
|
ELSE
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
AADD(PHEAD_ARR, PADL( PV, 81, ' ' ) )
|
|
ELSE
|
|
AADD(PHEAD_ARR, PADL( PV, 78, ' ' ) )
|
|
ENDIF
|
|
IF MHOME_LOC_CODE <> 'IOLA'
|
|
AADD(PHEAD_ARR, TRIM(MORDER_NUM) )
|
|
ENDIF
|
|
IF MHOME_LOC_CODE <> 'IOLA'
|
|
AADD(PHEAD_ARR, ' ')
|
|
ENDIF
|
|
AADD(PHEAD_ARR, (CUR_MAST)->USER_ID )
|
|
ENDIF
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
AADD(PHEAD_ARR, ' ')
|
|
AADD(PHEAD_ARR, ' ')
|
|
ENDIF
|
|
ENDIF
|
|
IF MHOME_LOC_CODE = 'IOLA'
|
|
AADD(PHEAD_ARR, ' ')
|
|
ENDIF
|
|
FOR I := 1 TO LEN(HD2ARR)
|
|
AADD(PHEAD_ARR, HD2ARR[I])
|
|
NEXT
|
|
** MAXLEN := 4 // 1-31-97 - EXTRA LINE FOR IOLA ABOVE HEAD2
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
MAXLEN := 5
|
|
ELSE
|
|
MAXLEN := 4
|
|
ENDIF
|
|
FOR I := LEN(HD2ARR)+1 TO MAXLEN
|
|
AADD(PHEAD_ARR, ' ')
|
|
NEXT
|
|
FOR I := 1 TO LEN(HD3ARR)
|
|
AADD(PHEAD_ARR, HD3ARR[I])
|
|
NEXT
|
|
IF LEN(PHEAD_ARR) < MHEAD_LEN
|
|
HD_LINES := MHEAD_LEN - LEN(PHEAD_ARR)
|
|
FOR I := 1 TO HD_LINES
|
|
AADD(PHEAD_ARR, ' ' )
|
|
NEXT
|
|
ENDIF
|
|
OTHERWISE // BLANK PAPER DOCUMENT
|
|
FOR I := 1 TO LEN(HD1ARR)
|
|
AADD(PHEAD_ARR, HD1ARR[I])
|
|
NEXT
|
|
FOR III := 1 TO LEN(DUPL_MSG)
|
|
AADD(PHEAD_ARR, DUPL_MSG[III])
|
|
NEXT
|
|
IF ORD_TYPE = 'PO'
|
|
//** MPO_NUM := GET_PO_NUM( MORDER_NUM, OLOC_CODE , .T. )
|
|
//** AADD(PHEAD_ARR, PADL('PO #: ' + ALLTRIM(MPO_NUM), 78, ' ') )
|
|
AADD(PHEAD_ARR, ' ' ) //** P3N - 04/06/10 - PER ELLEN - REMOVE PO #: PRINT
|
|
AADD(PHEAD_ARR, ' ' )
|
|
AADD(PHEAD_ARR, PADL('Order #: ' + ALLTRIM(MORDER_NUM), 78, ' ') )
|
|
AADD(PHEAD_ARR, ' ' )
|
|
PV := 'Customer : '
|
|
PV := PV + ALLTRIM((CUR_MAST)->BILL_NAME)
|
|
AADD(PHEAD_ARR, PADL( PV, 78, ' ' ) )
|
|
ELSE
|
|
AADD(PHEAD_ARR, PADL('Order #: ' + ALLTRIM(MORDER_NUM), 78, ' ') )
|
|
AADD(PHEAD_ARR, ' ' )
|
|
IF WHCHORDER = 'BACKORD' //* P3N - 6/5/98
|
|
ELSE
|
|
PV := 'Customer #: '
|
|
PV := PV + SUBS( (CUR_MAST)->CUST_ID,1,2) + ' '
|
|
PV := PV + SUBS( (CUR_MAST)->CUST_ID,3,4) + ' '
|
|
PV := PV + SUBS( (CUR_MAST)->CUST_ID,7,2)
|
|
AADD(PHEAD_ARR, PADL( PV, 78, ' ' ) )
|
|
ENDIF
|
|
ENDIF
|
|
IF WHCHORDER = 'BACKORD' //* P3N - 6/5/98
|
|
ELSE
|
|
AADD(PHEAD_ARR, (CUR_MAST)->USER_ID )
|
|
ENDIF
|
|
FOR I := 1 TO LEN(HD2ARR)
|
|
AADD(PHEAD_ARR, HD2ARR[I])
|
|
NEXT
|
|
FOR I := 1 TO LEN(HD3ARR)
|
|
AADD(PHEAD_ARR, HD3ARR[I])
|
|
NEXT
|
|
IF LEN(PHEAD_ARR) < MHEAD_LEN .AND. FORMTYPE = 'PREPRINT'
|
|
HD_LINES := MHEAD_LEN - LEN(PHEAD_ARR)
|
|
FOR I := 1 TO HD_LINES
|
|
AADD(PHEAD_ARR, ' ' )
|
|
NEXT
|
|
ENDIF
|
|
ENDCASE
|
|
RETURN PHEAD_ARR
|
|
*************************************************************
|
|
//** LP_HEADING IS USED FOR BOTH LINDSBOURG AND PAWNEE *
|
|
//** LOCATIONS *
|
|
*************************************************************
|
|
FUNCTION LP_HEADING( MORDER_NUM, DUPL_MSG, WHCHORDER, SUBTYPE )
|
|
LOCAL PHEAD_ARR := {}, PV, I , III
|
|
//** DUPL_MSG := {' ',' ',' '} //** P3N - 6/17/99
|
|
** 6-16-97 - USE OLD FORMS UNTIL FURTHER NOTICE - PER LINDA!!!!!
|
|
** FOR I := 1 TO 3
|
|
** 1-23-98 - USE NEW FORMS PER LINDA!!!!!
|
|
IF WHCHORDER == 'INV' // NEW INVOICE ORDER FORM
|
|
FOR I := 1 TO 1 // FORM HEADING IS 2 LINES LESS THAN OLD
|
|
AADD(PHEAD_ARR, ' ')
|
|
NEXT
|
|
IF MHOME_LOC_CODE = 'PAWNEE' //** P3N - 2/04/99
|
|
AADD(PHEAD_ARR, ' ') //** P3N - 2/04/99
|
|
AADD(PHEAD_ARR, ' ') //** P3N - 2/04/99
|
|
AADD(PHEAD_ARR, ' ') //** P3N - 2/04/99
|
|
AADD(PHEAD_ARR, ' ') //** P3N - 2/04/99
|
|
ENDIF //** P3N - 2/04/99
|
|
//**ELSEIF SUBTYPE = 'DELIVERY' .AND. ; // DELIVERY ORDER FORM
|
|
ELSEIF (SUBTYPE = 'DELIVERY' .OR. WHCHORDER = 'BACKORD') .AND. ; // DELIVERY/BACKORDER ORDER FORM
|
|
MHOME_LOC_CODE = 'PAWNEE' //** P3N - 2/04/99
|
|
AADD(PHEAD_ARR, ' ') //** P3N - 2/04/99
|
|
AADD(PHEAD_ARR, ' ') //** P3N - 2/04/99
|
|
AADD(PHEAD_ARR, ' ') //** P3N - 2/04/99
|
|
AADD(PHEAD_ARR, ' ') //** P3N - 2/04/99
|
|
AADD(PHEAD_ARR, ' ') //** P3N - 2/04/99
|
|
ELSE
|
|
FOR I := 1 TO 3 // ALL OTHER LINDS FORMS
|
|
AADD(PHEAD_ARR, ' ')
|
|
NEXT
|
|
ENDIF
|
|
FOR III := 1 TO LEN(DUPL_MSG)
|
|
IF III = 1 .OR. III = 3
|
|
AADD(PHEAD_ARR, SPACE(25) + DUPL_MSG[III])
|
|
ELSE
|
|
AADD(PHEAD_ARR, MORDER_NUM + SPACE(19) + DUPL_MSG[III])
|
|
ENDIF
|
|
NEXT
|
|
PV := SUBS( (CUR_MAST)->CUST_ID,1,2) + ' '
|
|
PV := PV + SUBS( (CUR_MAST)->CUST_ID,3,4) + ' '
|
|
PV := PV + SUBS( (CUR_MAST)->CUST_ID,7,2)
|
|
AADD(PHEAD_ARR, (CUR_MAST)->USER_ID + SPACE(60) + PV )
|
|
AADD(PHEAD_ARR, ' ')
|
|
RETURN PHEAD_ARR
|
|
***********************************************************
|
|
***********************************************************
|
|
***********************************************************
|
|
FUNCTION HD1_PART( ORD_TYPE, OLOC_CODE, WHCHORDER, SUBTYPE )
|
|
LOCAL PHEAD_ARR := {' ', ' ', ' '}
|
|
LOCAL FROM_LOC, PADLEN, Q_PHONE, QUOTE_LOC, QUOTE_LOC1, QUOTE_LOC2, QUOTE_LOC3
|
|
|
|
MFG_LOC->(DBSEEK(MHOME_LOC_CODE))
|
|
FROM_LOC := 'From: ' + ALLTRIM(UPPER(MFG_LOC->LOC_DESC)) + ' ' ;
|
|
+ ALLTRIM(UPPER(MFG_LOC->LOC_CITY)) + ' ' + MFG_LOC->LOC_STATE ;
|
|
+ ' ' + ALLTRIM(MFG_LOC->LOC_ZIP)
|
|
QUOTE_LOC := 'From: ' + ALLTRIM(UPPER(MFG_LOC->LOC_DESC))
|
|
QUOTE_LOC1 := ' ' + ALLTRIM(UPPER(MFG_LOC->LOC_ADDR1))
|
|
QUOTE_LOC2 := ' ' + ALLTRIM(UPPER(MFG_LOC->LOC_ADDR2))
|
|
QUOTE_LOC3 := ' ' + ALLTRIM(UPPER(MFG_LOC->LOC_CITY)) + ' ' + MFG_LOC->LOC_STATE ;
|
|
+ ' ' + ALLTRIM(MFG_LOC->LOC_ZIP)
|
|
DO CASE
|
|
CASE FORMTYPE = 'PREPRINT' // PRE-PRINTED ORDER FORM
|
|
PHEAD_ARR := {}
|
|
IF MHOME_LOC_CODE <> 'KC'
|
|
AADD(PHEAD_ARR, ' ')
|
|
ENDIF
|
|
IF MHOME_LOC_CODE = 'IOLA'
|
|
AADD(PHEAD_ARR, ' ')
|
|
ENDIF
|
|
CASE ORD_TYPE = 'BACKORD' //** 4-30-98
|
|
IF SUBTYPE == 'SCREENS'
|
|
AADD(PHEAD_ARR, PADC('B A C K O R D E R S C R E E N S', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('----------------------------------', 80 ) )
|
|
ELSEIF SUBTYPE == 'STORMS'
|
|
AADD(PHEAD_ARR, PADC('B A C K O R D E R S T O R M S', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('--------------------------------', 80 ) )
|
|
ELSE
|
|
AADD(PHEAD_ARR, PADC('B A C K O R D E R', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('------------------', 80 ) )
|
|
ENDIF
|
|
CASE ORD_TYPE = 'PO'
|
|
AADD(PHEAD_ARR, PADC('I N T E R C O M P A N Y P U R C H A S E O R D E R', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('-----------------------------------------------------', 80 ) )
|
|
CASE ORD_TYPE == 'CTRL' // PRINT PRODUCTION ORDER
|
|
IF WHCHORDER == 'OD'
|
|
IF SUBTYPE == 'DELIVERY'
|
|
AADD(PHEAD_ARR, PADC('D E L I V E R Y C O P Y', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('-------------------------', 80) )
|
|
ELSE
|
|
AADD(PHEAD_ARR, PADC('O R D E R D E S K - C O N T R O L C O P Y', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('---------------------------------------------', 80) )
|
|
ENDIF
|
|
ELSE
|
|
AADD(PHEAD_ARR, PADC('P R O D U C T I O N O R D E R - C O N T R O L C O P Y', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('---------------------------------------------------------', 80) )
|
|
ENDIF
|
|
CASE ORD_TYPE == 'INV' // PRINT CUSTOMER ORDER
|
|
IF CUR_MAST = 'QUOTE'
|
|
AADD(PHEAD_ARR, PADC( 'C U S T O M E R Q U O T E' , 80) )
|
|
AADD(PHEAD_ARR, PADC(QUOTE_LOC , 80 ) )
|
|
AADD(PHEAD_ARR, PADC(QUOTE_LOC1, 80 ) )
|
|
IF EMPTY(QUOTE_LOC2)
|
|
ELSE
|
|
AADD(PHEAD_ARR, PADC(QUOTE_LOC2, 80 ) )
|
|
ENDIF
|
|
AADD(PHEAD_ARR, PADC(QUOTE_LOC3, 80 ) )
|
|
Q_PHONE := 'Phone: ' + MFG_LOC->PHONE_NUM
|
|
Q_PHONE := Q_PHONE + ' Fax: '+ MFG_LOC->FAX_NUMBER
|
|
AADD(PHEAD_ARR, ' ' + PADC( Q_PHONE, 80 ) )
|
|
PADLEN := MAX( LEN(FROM_LOC), LEN(Q_PHONE) )
|
|
AADD(PHEAD_ARR, ' ' + PADC( REPLICATE('-', PADLEN) , 80 ) )
|
|
//** P3N - 01/16/02 PER LINDA @ LINDS - ADDED THE CONT_FNAME TO PRINT ON THE QUOTE
|
|
IF EMPTY( (CUR_MAST)->CONT_FNAME ) //** P3N - 01/16/02
|
|
ELSE //** P3N - 01/16/02
|
|
AADD(PHEAD_ARR,' '+PADL('Ordered By: '+(CUR_MAST)->CONT_FNAME,77,' ')) //** P3N - 01/16/02
|
|
ENDIF //** P3N - 01/16/02
|
|
ELSEIF SUBTYPE = 'PREBILL'
|
|
AADD(PHEAD_ARR, PADC( 'C U S T O M E R P R E B I L L', 80 ) )
|
|
AADD(PHEAD_ARR, PADC( FROM_LOC , 80 ) )
|
|
PADLEN := MAX( LEN(FROM_LOC), 31 )
|
|
AADD(PHEAD_ARR, PADC( REPLICATE('-', PADLEN) , 80 ) )
|
|
ELSEIF SUBTYPE = 'PRECOST'
|
|
AADD(PHEAD_ARR, PADC( 'P R E - C O S T C O P Y ', 80 ) )
|
|
AADD(PHEAD_ARR, PADC( FROM_LOC , 80 ) )
|
|
PADLEN := MAX( LEN(FROM_LOC), 31 )
|
|
AADD(PHEAD_ARR, PADC( REPLICATE('-', PADLEN) , 80 ) )
|
|
ELSE
|
|
AADD(PHEAD_ARR, SPACE(25) + 'C U S T O M E R I N V O I C E' )
|
|
AADD(PHEAD_ARR, SPACE(25) + '-------------------------------' )
|
|
ENDIF
|
|
CASE ORD_TYPE == 'FRAME' // PRINT FRAME ORDER
|
|
AADD(PHEAD_ARR, OLOC_CODE )
|
|
AADD(PHEAD_ARR, PADC('P R O D U C T I O N O R D E R - F R A M E C O P Y', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('-----------------------------------------------------', 80 ) )
|
|
CASE ORD_TYPE == 'STDFRAME' // PRINT STD FRAME ORDER
|
|
AADD(PHEAD_ARR, OLOC_CODE )
|
|
AADD(PHEAD_ARR, PADC('P R O D U C T I O N O R D E R - S T D F R A M E C O P Y', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('-------------------------------------------------------------', 80 ) )
|
|
CASE ORD_TYPE == 'SASH' // PRINT SASH ORDER
|
|
AADD(PHEAD_ARR, OLOC_CODE )
|
|
AADD(PHEAD_ARR, PADC('P R O D U C T I O N O R D E R - S A S H C O P Y', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('---------------------------------------------------', 80 ) )
|
|
CASE ORD_TYPE == 'GLASS' // PRINT GLASS ORDER
|
|
AADD(PHEAD_ARR, OLOC_CODE )
|
|
AADD(PHEAD_ARR, PADC('P R O D U C T I O N O R D E R - G L A S S C O P Y', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('-----------------------------------------------------', 80 ) )
|
|
CASE ORD_TYPE == 'SCREEN' // PRINT SCREEN ORDER
|
|
AADD(PHEAD_ARR, OLOC_CODE )
|
|
AADD(PHEAD_ARR, PADC('P R O D U C T I O N O R D E R - S C R E E N C O P Y', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('-------------------------------------------------------', 80 ))
|
|
CASE ORD_TYPE == 'STORM' // PRINT STORM ORDER
|
|
AADD(PHEAD_ARR, OLOC_CODE )
|
|
AADD(PHEAD_ARR, PADC('P R O D U C T I O N O R D E R - S T O R M C O P Y', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('-----------------------------------------------------', 80 ) )
|
|
CASE ORD_TYPE == 'EXPANDER' // PRINT EXPANDER ORDER
|
|
AADD(PHEAD_ARR, OLOC_CODE )
|
|
AADD(PHEAD_ARR, PADC('P R O D U C T I O N O R D E R - E X P A N D E R C O P Y', 80 ) )
|
|
AADD(PHEAD_ARR, PADC('-----------------------------------------------------------', 80 ) )
|
|
OTHERWISE
|
|
AADD(PHEAD_ARR, 'UNDEFINED Order' )
|
|
AADD(PHEAD_ARR, ' ')
|
|
ENDCASE
|
|
|
|
RETURN PHEAD_ARR
|
|
***********************************************************
|
|
* BUILD THE BILL TO/SHIP TO PART OF THE ORDER
|
|
***********************************************************
|
|
FUNCTION HD2_PART(ORD_TYPE, OLOC_CODE, SUBTYPE )
|
|
LOCAL PHEAD_ARR := {},FROM_LOC, PDESC, PPHONE, PFAXC, PMODM, OLOC
|
|
LOCAL BIL_ARR := {}, SHP_ARR := {}, I, II , PADLEN, AS_ARR := {}
|
|
IF ORD_TYPE == 'PO'
|
|
PADLEN := 40
|
|
ELSE
|
|
PADLEN := 48
|
|
ENDIF
|
|
MFG_LOC->(DBSEEK(MHOME_LOC_CODE))
|
|
FROM_LOC := MFG_LOC->LOC_DESC
|
|
PDESC := MFG_LOC->LOC_DESC
|
|
PPHONE := MFG_LOC->PHONE_NUM
|
|
PFAX := MFG_LOC->FAX_NUMBER
|
|
PMODM := MFG_LOC->MODEM_NUM
|
|
MFG_LOC->(DBSEEK(OLOC_CODE))
|
|
OLOC := ALLTRIM(MFG_LOC->LOC_DESC)
|
|
DO CASE
|
|
CASE ORD_TYPE == 'PO'
|
|
PADLEN := 40
|
|
AADD(BIL_ARR, 'Taken: ' + DTOC( (CUR_MAST)->CALL_DATE ) )
|
|
AADD(BIL_ARR, 'From: ' + PDESC )
|
|
|
|
AADD(SHP_ARR, ' To: ' + MFG_LOC->LOC_DESC)
|
|
AADD(SHP_ARR, ' ' + TRIM(MFG_LOC->LOC_ADDR1) )
|
|
IF !EMPTY(MFG_LOC->LOC_ADDR2)
|
|
AADD(SHP_ARR, ' ' + TRIM(MFG_LOC->LOC_ADDR2) )
|
|
ENDIF
|
|
AADD(SHP_ARR, ' ' + TRIM(MFG_LOC->LOC_CITY) + SPACE(2) + ;
|
|
TRIM(MFG_LOC->LOC_STATE) + ' ' + MFG_LOC->LOC_ZIP )
|
|
OTHERWISE
|
|
IF EMPTY( (CUR_MAST)->CALL_DATE) .OR. ORD_TYPE == 'BACKORD'
|
|
AADD(BIL_ARR, SPACE(12) + (CUR_MAST)->BILL_NAME + SPACE(6))
|
|
ELSE
|
|
AADD(BIL_ARR, DTOC( (CUR_MAST)->CALL_DATE ) + SPACE(4) + (CUR_MAST)->BILL_NAME )
|
|
ENDIF
|
|
|
|
IF ORD_TYPE == 'BACKORD' .AND. ; //** P3N - 6/5/98
|
|
MHOME_LOC_CODE = 'KC' //** P3N - 03/09/99
|
|
SHP_ARR := ALTSHP(SHP_ARR, SUBTYPE) //** P3N - 03/09/99
|
|
IF EMPTY(SHP_ARR)
|
|
AADD(SHP_ARR, (CUR_MAST)->BILL_ADD1 ) //** P3N - 11/11/98
|
|
AADD(SHP_ARR, (CUR_MAST)->BILL_ADD2 ) //** P3N - 11/11/98
|
|
AADD(SHP_ARR, (CUR_MAST)->BILL_CSZ ) //** P3N - 11/11/98
|
|
AADD(SHP_ARR, (CUR_MAST)->PHONE ) //** P3N - 11/11/98
|
|
ENDIF
|
|
//** END BACKORDER
|
|
ELSE
|
|
AADD(BIL_ARR, SPACE(12) + (CUR_MAST)->BILL_ADD1 + SPACE(6) )
|
|
IF !EMPTY( (CUR_MAST)->BILL_ADD2 )
|
|
AADD(BIL_ARR, SPACE(12) + (CUR_MAST)->BILL_ADD2 + SPACE(6) )
|
|
ENDIF
|
|
AADD(BIL_ARR, SPACE(12) + (CUR_MAST)->BILL_CSZ + SPACE(6) )
|
|
|
|
IF (CUR_MAST)->BILL_NAME == (CUR_MAST)->SHIP_NAME
|
|
ELSEIF !EMPTY( (CUR_MAST)->SHIP_NAME )
|
|
AADD(SHP_ARR, (CUR_MAST)->SHIP_NAME )
|
|
ENDIF
|
|
IF (CUR_MAST)->BILL_ADD1 == (CUR_MAST)->SHIP_ADD1
|
|
ELSEIF !EMPTY( (CUR_MAST)->SHIP_ADD1 )
|
|
AADD(SHP_ARR, (CUR_MAST)->SHIP_ADD1 )
|
|
ENDIF
|
|
IF !EMPTY( (CUR_MAST)->SHIP_ADD2 )
|
|
IF (CUR_MAST)->BILL_ADD2 == (CUR_MAST)->SHIP_ADD2
|
|
ELSEIF !EMPTY( (CUR_MAST)->SHIP_ADD2 )
|
|
AADD(SHP_ARR, (CUR_MAST)->SHIP_ADD2 )
|
|
ENDIF
|
|
ENDIF
|
|
IF (CUR_MAST)->BILL_CSZ == (CUR_MAST)->SHIP_CSZ
|
|
ELSEIF !EMPTY( (CUR_MAST)->SHIP_CSZ )
|
|
AADD(SHP_ARR, (CUR_MAST)->SHIP_CSZ )
|
|
ENDIF
|
|
IF (CUR_MAST)->PHONE == (CUR_MAST)->SHIPPHN
|
|
AADD(SHP_ARR, (CUR_MAST)->PHONE )
|
|
ELSE
|
|
AADD(SHP_ARR, (CUR_MAST)->PHONE + ' / ' + (CUR_MAST)->SHIPPHN )
|
|
ENDIF
|
|
ENDIF
|
|
//** P3N - 03/09/99
|
|
IF ORD_TYPE == 'BACKORD' //** P3N - 03/09/99
|
|
IF MHOME_LOC_CODE = 'KC' //** P3N - 03/09/99
|
|
//** ALREADY FORMATED FOR THE BACK ORDER FORMS IN KC
|
|
ELSE //** P3N - 03/09/99
|
|
AS_ARR := ALTSHP(AS_ARR, SUBTYPE) //** P3N - 03/09/99
|
|
IF EMPTY(AS_ARR) //** P3N - 03/09/99
|
|
ELSE //** P3N - 03/09/99
|
|
SHP_ARR := AS_ARR //** P3N - 03/09/99
|
|
ENDIF //** P3N - 03/09/99
|
|
ENDIF //** P3N - 03/09/99
|
|
ENDIF //** P3N - 03/09/99
|
|
ENDCASE
|
|
FOR I := 1 TO MIN( LEN(BIL_ARR), LEN(SHP_ARR) )
|
|
BIL_ARR[I] := PADR( BIL_ARR[I], PADLEN )
|
|
AADD(PHEAD_ARR, BIL_ARR[I] + SHP_ARR[I] )
|
|
NEXT
|
|
IF LEN(BIL_ARR) <> LEN(SHP_ARR)
|
|
IF I > LEN(BIL_ARR)
|
|
FOR I := I TO LEN(SHP_ARR)
|
|
AADD(PHEAD_ARR, SPACE(PADLEN) + SHP_ARR[I] )
|
|
NEXT
|
|
ELSE
|
|
FOR I := I TO LEN(BIL_ARR)
|
|
BIL_ARR[I] := PADR( BIL_ARR[I], PADLEN )
|
|
AADD(PHEAD_ARR, BIL_ARR[I] )
|
|
NEXT
|
|
ENDIF
|
|
ENDIF
|
|
//** PER LINDA @ LINDS PRINT THE DELIVERY ROUTE INFORMATION - LINDS ONLY
|
|
//**IF MHOME_LOC_CODE = 'LINDS' //** P3N - 08/26/99
|
|
//** AADD(PHEAD_ARR, SPACE(35)+ 'Del Route: ' + (CUR_MAST)->DEL_ROUTE)
|
|
//**ENDIF //** P3N - 08/26/99
|
|
RETURN PHEAD_ARR
|
|
********************************************************************
|
|
//** P3N-03/09/99 MADE A FUNCTION FOR MULTI USE
|
|
//** USE ORDER ALTERNATE SHIPPING
|
|
//** INFO FOR BACKORDERS IF PRESENT!
|
|
********************************************************************
|
|
FUNCTION ALTSHP(SHP_ARR, SUBTYPE)
|
|
LOCAL WKALTSHPZIP
|
|
IF EMPTY(SUBTYPE) .OR. SUBTYPE == 'BACKORD'
|
|
IF !EMPTY( ALTSHIPADR->ALTSHPNAME )
|
|
AADD(SHP_ARR, ALTSHIPADR->ALTSHPNAME )
|
|
ENDIF
|
|
IF !EMPTY( ALTSHIPADR->ALTSHPADDR )
|
|
AADD(SHP_ARR, ALTSHIPADR->ALTSHPADDR )
|
|
ENDIF
|
|
IF !EMPTY( ALTSHIPADR->ALTSHPADD2 )
|
|
AADD(SHP_ARR, ALTSHIPADR->ALTSHPADD2 )
|
|
ENDIF
|
|
IF !EMPTY( ALTSHIPADR->ALTSHPADD3 )
|
|
AADD(SHP_ARR, ALTSHIPADR->ALTSHPADD3 )
|
|
ENDIF
|
|
WKALTSHPZIP := ALTSHIPADR->ALTSHPZIP
|
|
IF EMPTY(SUBST(WKALTSHPZIP, 7, 4))
|
|
WKALTSHPZIP := SUBST(WKALTSHPZIP, 1,5)
|
|
ENDIF
|
|
IF !EMPTY( ALTSHIPADR->ALTSHPCITY ) .AND. ;
|
|
!EMPTY( ALTSHIPADR->ALTSHPSTAT ) .AND. ;
|
|
!EMPTY( ALTSHIPADR->ALTSHPZIP )
|
|
IF LEN(ALLTRIM(ALTSHIPADR->ALTSHPCITY)) > 20
|
|
AADD(SHP_ARR, ALLTRIM( ALTSHIPADR->ALTSHPCITY) )
|
|
AADD(SHP_ARR, ALLTRIM( ALTSHIPADR->ALTSHPSTAT) + ' ' + ;
|
|
WKALTSHPZIP )
|
|
ELSE
|
|
AADD(SHP_ARR, ALLTRIM( ALTSHIPADR->ALTSHPCITY) + ' ' + ;
|
|
ALLTRIM( ALTSHIPADR->ALTSHPSTAT) + ' ' + ;
|
|
WKALTSHPZIP )
|
|
ENDIF
|
|
ELSEIF !EMPTY( ALTSHIPADR->ALTSHPCITY )
|
|
AADD(SHP_ARR, ALTSHIPADR->ALTSHPCITY )
|
|
ENDIF
|
|
ELSEIF SUBTYPE == 'SCREENS' //** P3N - 9/23/98
|
|
//** USE ORDER ALTERNATE SHIPPING
|
|
//** INFO FOR SCREEN BACKORDERS IF PRESENT!
|
|
IF !EMPTY( ALTSHIPADR->ASNAMESCRN )
|
|
AADD(SHP_ARR, ALTSHIPADR->ASNAMESCRN )
|
|
ENDIF
|
|
IF !EMPTY( ALTSHIPADR->ASADDRSCRN )
|
|
AADD(SHP_ARR, ALTSHIPADR->ASADDRSCRN )
|
|
ENDIF
|
|
IF !EMPTY( ALTSHIPADR->ASADD2SCRN )
|
|
AADD(SHP_ARR, ALTSHIPADR->ASADD2SCRN )
|
|
ENDIF
|
|
IF !EMPTY( ALTSHIPADR->ASADD3SCRN )
|
|
AADD(SHP_ARR, ALTSHIPADR->ASADD3SCRN )
|
|
ENDIF
|
|
WKALTSHPZIP := ALTSHIPADR->ASZIPSCRN
|
|
IF EMPTY(SUBST(WKALTSHPZIP, 7, 4))
|
|
WKALTSHPZIP := SUBST(WKALTSHPZIP, 1,5)
|
|
ENDIF
|
|
IF !EMPTY( ALTSHIPADR->ASCITYSCRN ) .AND. ;
|
|
!EMPTY( ALTSHIPADR->ASSTATSCRN ) .AND. ;
|
|
!EMPTY( ALTSHIPADR->ASZIPSCRN )
|
|
IF LEN(ALLTRIM(ALTSHIPADR->ASCITYSCRN)) > 20
|
|
AADD(SHP_ARR, ALLTRIM( ALTSHIPADR->ASCITYSCRN) )
|
|
AADD(SHP_ARR, ALLTRIM( ALTSHIPADR->ASCITYSCRN) + ' ' + ;
|
|
WKALTSHPZIP )
|
|
ELSE
|
|
AADD(SHP_ARR, ALLTRIM( ALTSHIPADR->ASCITYSCRN) + ' ' + ;
|
|
ALLTRIM( ALTSHIPADR->ASSTATSCRN) + ' ' + ;
|
|
WKALTSHPZIP )
|
|
ENDIF
|
|
ELSEIF !EMPTY( ALTSHIPADR->ASCITYSCRN )
|
|
AADD(SHP_ARR, ALTSHIPADR->ASCITYSCRN )
|
|
ENDIF
|
|
ELSEIF SUBTYPE == 'STORMS' //** P3N - 9/23/98
|
|
//** USE ORDER ALTERNATE SHIPPING
|
|
//** INFO FOR STORM BACKORDERS IF PRESENT!
|
|
IF !EMPTY( ALTSHIPADR->ASNAMESTRM )
|
|
AADD(SHP_ARR, ALTSHIPADR->ASNAMESTRM )
|
|
ENDIF
|
|
IF !EMPTY( ALTSHIPADR->ASADDRSTRM )
|
|
AADD(SHP_ARR, ALTSHIPADR->ASADDRSTRM )
|
|
ENDIF
|
|
IF !EMPTY( ALTSHIPADR->ASADD2STRM )
|
|
AADD(SHP_ARR, ALTSHIPADR->ASADD2STRM )
|
|
ENDIF
|
|
IF !EMPTY( ALTSHIPADR->ASADD3STRM )
|
|
AADD(SHP_ARR, ALTSHIPADR->ASADD3STRM )
|
|
ENDIF
|
|
WKALTSHPZIP := ALTSHIPADR->ASZIPSTRM
|
|
IF EMPTY(SUBST(WKALTSHPZIP, 7, 4))
|
|
WKALTSHPZIP := SUBST(WKALTSHPZIP, 1,5)
|
|
ENDIF
|
|
IF !EMPTY( ALTSHIPADR->ASCITYSTRM ) .AND. ;
|
|
!EMPTY( ALTSHIPADR->ASSTATSTRM ) .AND. ;
|
|
!EMPTY( ALTSHIPADR->ASZIPSTRM )
|
|
IF LEN(ALLTRIM(ALTSHIPADR->ASCITYSTRM)) > 20
|
|
AADD(SHP_ARR, ALLTRIM( ALTSHIPADR->ASCITYSTRM) )
|
|
AADD(SHP_ARR, ALLTRIM( ALTSHIPADR->ASCITYSTRM) + ' ' + ;
|
|
WKALTSHPZIP )
|
|
ELSE
|
|
AADD(SHP_ARR, ALLTRIM( ALTSHIPADR->ASCITYSTRM) + ' ' + ;
|
|
ALLTRIM( ALTSHIPADR->ASSTATSTRM) + ' ' + ;
|
|
WKALTSHPZIP )
|
|
ENDIF
|
|
ELSEIF !EMPTY( ALTSHIPADR->ASCITYSTRM )
|
|
AADD(SHP_ARR, ALTSHIPADR->ASCITYSTRM )
|
|
ENDIF
|
|
ENDIF
|
|
//** USE ORDER SHIPPING INFO FOR BACK ORDERS IF NO ALT SHIPINFO!
|
|
IF EMPTY(SHP_ARR)
|
|
IF !EMPTY( (CUR_MAST)->SHIP_NAME )
|
|
AADD(SHP_ARR, (CUR_MAST)->SHIP_NAME )
|
|
ENDIF
|
|
IF !EMPTY( (CUR_MAST)->SHIP_ADD1 )
|
|
AADD(SHP_ARR, (CUR_MAST)->SHIP_ADD1 )
|
|
ENDIF
|
|
IF !EMPTY( (CUR_MAST)->SHIP_ADD2 )
|
|
AADD(SHP_ARR, (CUR_MAST)->SHIP_ADD2 )
|
|
ENDIF
|
|
IF !EMPTY( (CUR_MAST)->SHIP_CSZ )
|
|
AADD(SHP_ARR, (CUR_MAST)->SHIP_CSZ )
|
|
ENDIF
|
|
ENDIF
|
|
//** USE ORDER BILLING INFO FOR BACK ORDERS IF NO ALT SHIPINFO AND SHIPPING
|
|
IF EMPTY(SHP_ARR) //** P3N - 10/01/99
|
|
IF (CUR_MAST)->BILL_NAME = (CUR_MAST)->SHIP_NAME; //** P3N - 10/01/99
|
|
.OR. EMPTY((CUR_MAST)->SHIP_NAME) //** P3N - 10/01/99
|
|
ELSE //** P3N - 10/01/99
|
|
AADD(SHP_ARR, (CUR_MAST)->BILL_NAME ) //** P3N - 10/01/99
|
|
ENDIF //** P3N - 10/01/99
|
|
AADD(SHP_ARR, (CUR_MAST)->BILL_ADD1 ) //** P3N - 10/01/99
|
|
IF EMPTY((CUR_MAST)->BILL_ADD2 ) //** P3N - 10/01/99
|
|
ELSE //** P3N - 10/01/99
|
|
AADD(SHP_ARR, (CUR_MAST)->BILL_ADD2 ) //** P3N - 10/01/99
|
|
ENDIF //** P3N - 10/01/99
|
|
AADD(SHP_ARR, (CUR_MAST)->BILL_CSZ ) //** P3N - 10/01/99
|
|
ENDIF //** P3N - 10/01/99
|
|
IF EMPTY ( (CUR_MAST)->SHIPPHN)
|
|
AADD(SHP_ARR, (CUR_MAST)->PHONE ) //** P3N - 9/29/99
|
|
ELSEIF (CUR_MAST)->SHIPPHN = ' - - '
|
|
AADD(SHP_ARR, (CUR_MAST)->PHONE ) //** P3N - 9/29/99
|
|
ELSE
|
|
AADD(SHP_ARR, (CUR_MAST)->SHIPPHN )
|
|
ENDIF
|
|
RETURN SHP_ARR
|
|
***********************************************************
|
|
* BUILD THE TERMS PART OF THE ORDER
|
|
**********************************************************
|
|
FUNCTION HD3_PART(ORD_TYPE, SUBTYPE)
|
|
LOCAL PHEAD_ARR := {}, I, COL_HD_ARR := {}, SM_FRST, SM_LAST, WORKDATE
|
|
LOCAL TERMS_DESC := GP_TERMS( (CUR_MAST)->TERMS ), SM_ALL, SPACEPOS := 0
|
|
LOCAL SHIP_DESC := GP_SHIP( (CUR_MAST)->SHP_METHOD)
|
|
LOCAL BOSHIP_DESC := '' //** P3N - 8/12/98 - HAPPY 40TH JEFF
|
|
LOCAL BOSHIP_SCRNS := '', BOSHIP_STORM := '' //** P3N - 8/17/98
|
|
IF ORD_TYPE == 'BACKORD' //** P3N - 8/17/98
|
|
BOSHIP_DESC := GP_SHIP( ALTSHIPADR->BOSHP_METH) //** P3N -11/13/98
|
|
IF EMPTY(BOSHIP_DESC) //** P3N - 1/6/99
|
|
BOSHIP_DESC := SHIP_DESC //** P3N - 1/6/99
|
|
ENDIF
|
|
BOSHIP_SCRNS := GP_SHIP( ALTSHIPADR->BOSHP_SCRN) //** P3N -11/13/98
|
|
IF EMPTY(BOSHIP_SCRNS) //** P3N - 1/6/99
|
|
BOSHIP_DESC := SHIP_DESC //** P3N - 1/6/99
|
|
ENDIF //** P3N - 1/6/99
|
|
BOSHIP_STORM := GP_SHIP( ALTSHIPADR->BOSHP_STRM) //** P3N -11/13/98
|
|
IF EMPTY(BOSHIP_STORM) //** P3N - 1/6/99
|
|
BOSHIP_DESC := SHIP_DESC //** P3N - 1/6/99
|
|
ENDIF //** P3N - 1/6/99
|
|
IF SUBTYPE == 'SCREENS' //** P3N - 8/17/98
|
|
BOSHIP_DESC := BOSHIP_SCRNS //** P3N - 8/17/98
|
|
ELSEIF SUBTYPE == 'STORMS' //** P3N - 8/17/98
|
|
BOSHIP_DESC := BOSHIP_STORM //** P3N - 8/17/98
|
|
ENDIF
|
|
ENDIF
|
|
SALESMEN->(DBSEEK( (CUR_MAST)->SLSMAN ) )
|
|
IF SALESMEN->(FOUND())
|
|
SM_FRST := SALESMEN->FST_NME
|
|
SM_LAST := SALESMEN->LST_NME
|
|
ELSE
|
|
SM_FRST := ' '
|
|
SM_LAST := (CUR_MAST)->SLSMAN
|
|
ENDIF
|
|
SM_ALL := ALLTRIM(TRIM(SM_FRST) + ' ' + TRIM(SM_LAST))
|
|
SPACEPOS := AT(' ', SM_ALL)
|
|
SM_FRST := SUBS(SM_ALL, 1, SPACEPOS - 1 )
|
|
SM_LAST := SUBS(SM_ALL, SPACEPOS + 1 )
|
|
IF ORD_TYPE == 'INV'
|
|
WORKDATE := MAX( (CUR_MAST)->IDATE_FST, CURDATE )
|
|
ELSEIF ORD_TYPE == 'BACKORD' //** P3N - 05/18/06 - IF BACKORDER USE CURRENT DATE
|
|
WORKDATE := CURDATE //** P3N - 05/18/06 - PER DARLENE-IOLA
|
|
ELSE
|
|
WORKDATE := (CUR_MAST)->IDATE_FST
|
|
ENDIF
|
|
IF FORMTYPE = 'PREPRINT'
|
|
AADD(PHEAD_ARR, SPACE(70) + TRIM(SM_FRST) )
|
|
IF ORD_TYPE == 'BACKORD' //** P3N - 8/12/98
|
|
AADD(PHEAD_ARR, SPACE(6)+ DTOC(WORKDATE) + SPACE(22)+;
|
|
BOSHIP_DESC + SPACE(19) + TRIM(SM_LAST) )
|
|
AADD(PHEAD_ARR, ' ')
|
|
AADD(PHEAD_ARR, SPACE(68) + (CUR_MAST)->CUST_PO )
|
|
ELSE
|
|
AADD(PHEAD_ARR, SPACE(12) + DTOC(WORKDATE) + SPACE(16) + SHIP_DESC + SPACE(19) + TRIM(SM_LAST) )
|
|
AADD(PHEAD_ARR, ' ')
|
|
AADD(PHEAD_ARR, DTOC((CUR_MAST)->ORDER_DATE) ;
|
|
+ SPACE(9) + DTOC( (CUR_MAST)->SHIP_DATE ) + SPACE(10) ;
|
|
+ TERMS_DESC + SPACE(07) ;
|
|
+ (CUR_MAST)->CUST_PO )
|
|
ENDIF
|
|
AADD(PHEAD_ARR, ' ')
|
|
AADD(PHEAD_ARR, ' ')
|
|
ELSE //FORMTYPE == 'BLANK'
|
|
IF EMPTY(SUBTYPE) // Condensed PRODUCTION headings
|
|
//** P3N - 8/4/98 (HAPPY BIRTHDAY TO ME!!!)
|
|
//** ADDED TERMS TO QUOTE HEADING - PER ELLEN
|
|
IF CUR_MAST = 'ORD_MAST'
|
|
AADD(PHEAD_ARR, 'Entered: ' + DTOC((CUR_MAST)->ORDER_DATE) + ;
|
|
' Shipped Via: ' + SHIP_DESC + ;
|
|
' Cust PO#: ' + (CUR_MAST)->CUST_PO )
|
|
ELSE
|
|
AADD(PHEAD_ARR, 'Entered: ' + DTOC((CUR_MAST)->ORDER_DATE) + ;
|
|
' ' + SPACE(LEN(SHIP_DESC))+ ;
|
|
' Cust PO#: ' + (CUR_MAST)->CUST_PO )
|
|
AADD(PHEAD_ARR, 'Terms: ' + TERMS_DESC + ;
|
|
+ SPACE(LEN(SHIP_DESC))+ ;
|
|
' Shipped Via: ' + SHIP_DESC )
|
|
ENDIF
|
|
AADD(PHEAD_ARR, REPLICATE('-', 80 ) )
|
|
ELSE
|
|
AADD(PHEAD_ARR, ' ')
|
|
IF SUBTYPE = 'PREBILL'
|
|
AADD(PHEAD_ARR, 'Prebill Date: ' + DTOC(WORKDATE) + ' Shipped Via: ' + SHIP_DESC + ' Sold By: '+ ALLTRIM(SM_FRST) + ' ' + ALLTRIM(SM_LAST) )
|
|
ELSE
|
|
IF SUBTYPE = 'PREBILL'
|
|
AADD(PHEAD_ARR, ' Print Date: ' + DTOC(WORKDATE) + ' Shipped Via: ' + SHIP_DESC + ' Sold By: '+ ALLTRIM(SM_FRST) + ' ' + ALLTRIM(SM_LAST) )
|
|
ELSEIF SUBTYPE == 'BACKORD'
|
|
IF EMPTY((CUR_MAST)->BOSHP_METH)
|
|
REC_LOCK(3, CUR_MAST)
|
|
(CUR_MAST)->BOSHP_METH := CUST_MAST->BOSHP_METH
|
|
(CUR_MAST)->(DBUNLOCK())
|
|
ENDIF
|
|
SHIP_DESC := GP_SHIP( (CUR_MAST)->BOSHP_METH)
|
|
AADD(PHEAD_ARR, SPACE(22) + ' Shipped Via: ' + SHIP_DESC)
|
|
ELSE
|
|
AADD(PHEAD_ARR, 'Invoice Date: ' + DTOC(WORKDATE) + ' Shipped Via: ' + SHIP_DESC + ' Sold By: '+ ALLTRIM(SM_FRST) + ' ' + ALLTRIM(SM_LAST) )
|
|
ENDIF
|
|
ENDIF
|
|
AADD(PHEAD_ARR, ' ')
|
|
IF SUBTYPE == 'BACKORD'
|
|
AADD(PHEAD_ARR, SPACE(34) + SPACE(LEN(SHIP_DESC)) + ;
|
|
' Cust PO#: ' + (CUR_MAST)->CUST_PO )
|
|
ELSE
|
|
AADD(PHEAD_ARR, 'Entered: ' + DTOC((CUR_MAST)->ORDER_DATE) + ' Shipped: ' + DTOC((CUR_MAST)->SHIP_DATE) + ;
|
|
' Terms: ' + SUBS(TERMS_DESC,1,15) + ' Cust PO#: ' + (CUR_MAST)->CUST_PO )
|
|
ENDIF
|
|
AADD(PHEAD_ARR, REPLICATE('-', 80 ) )
|
|
DO CASE
|
|
CASE ORD_TYPE == 'BACKORD' //** P3N - 5/1/98
|
|
COL_HD_ARR := BO_HEAD() //** P3N - 5/1/98
|
|
CASE ORD_TYPE == 'INV'
|
|
COL_HD_ARR := FULL_HEAD()
|
|
CASE ORD_TYPE == 'CTRL'
|
|
IF SUBTYPE = NIL
|
|
COL_HD_ARR := PART_HDQTY()
|
|
ELSEIF SUBTYPE = 'DELIVERY'
|
|
COL_HD_ARR := FULL_HEAD()
|
|
ELSEIF SUBTYPE = 'ORDERDESK'
|
|
COL_HD_ARR := PART_HEAD()
|
|
ENDIF
|
|
OTHERWISE
|
|
COL_HD_ARR := PART_HEAD()
|
|
ENDCASE
|
|
FOR I := 1 TO LEN(COL_HD_ARR)
|
|
AADD(PHEAD_ARR, COL_HD_ARR[I])
|
|
NEXT
|
|
IF EMPTY(COL_HD_ARR)
|
|
ELSE
|
|
AADD(PHEAD_ARR, REPLICATE('-', 80 ) )
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
RETURN PHEAD_ARR
|
|
***********************************************************
|
|
* BUILD THE PARTIAL HEADING LINE FOR FREE FORM PRINT
|
|
* (IE: FRAME/GLASS/SASH/EXPANDER, ... COPIES)
|
|
***********************************************************
|
|
FUNCTION PART_HEAD()
|
|
LOCAL COL_HEAD := SPACE(1) + 'Ord' + SPACE(25) + ' ' + SPACE(23) + ' ' + SPACE(5) + ' '
|
|
LOCAL PHEAD_ARR := {}
|
|
AADD(PHEAD_ARR, COL_HEAD)
|
|
COL_HEAD := SPACE(1) + 'Qty' + SPACE(25) + 'Description' + SPACE(23) + ' ' + SPACE(5) + ' '
|
|
AADD(PHEAD_ARR, COL_HEAD)
|
|
RETURN PHEAD_ARR
|
|
***********************************************************
|
|
* BUILD THE FULL HEADING LINE FOR FREE FORM PRINT
|
|
* (IE: PRODUCTION CTRL / DELIVERY COPIES)
|
|
***********************************************************
|
|
FUNCTION PART_HDQTY()
|
|
LOCAL COL_HEAD := SPACE(1) + 'Ord' + ' Back' + ' Ship' + SPACE(13) + ' ' + SPACE(23) + ' ' + SPACE(5) + ' '
|
|
LOCAL PHEAD_ARR := {}
|
|
AADD(PHEAD_ARR, COL_HEAD)
|
|
COL_HEAD := SPACE(1) + 'Qty' + ' Ord.' + ' Qty ' + SPACE(13) + 'Description' + SPACE(23) + ' ' + SPACE(5) + ' '
|
|
AADD(PHEAD_ARR, COL_HEAD)
|
|
RETURN PHEAD_ARR
|
|
***********************************************************
|
|
* BUILD THE FULL HEADING LINE FOR FREE FORM PRINT
|
|
* (IE: ORDER DESK COPY)
|
|
***********************************************************
|
|
FUNCTION FULL_HEAD()
|
|
LOCAL COL_HEAD := SPACE(1) + 'Ord' + ' Back' + ' Ship' + SPACE(13) + ' ' + SPACE(23) + ' ' + SPACE(5) + ' '
|
|
LOCAL PHEAD_ARR := {}
|
|
AADD(PHEAD_ARR, COL_HEAD)
|
|
COL_HEAD := SPACE(1) + 'Qty' + ' Ord.' + ' Qty ' + SPACE(13) + 'Description' + SPACE(23) + ' Unit ' + SPACE(5) + 'Amount'
|
|
AADD(PHEAD_ARR, COL_HEAD)
|
|
RETURN PHEAD_ARR
|
|
***********************************************************
|
|
* BUILD THE BACKORDER HEADING LINE FOR FREE FORM PRINT
|
|
* (IE: ORDER DESK COPY)
|
|
***********************************************************
|
|
FUNCTION BO_HEAD()
|
|
LOCAL COL_HEAD := SPACE(10) + 'Ord.'
|
|
LOCAL PHEAD_ARR := {}
|
|
AADD(PHEAD_ARR, COL_HEAD)
|
|
COL_HEAD := SPACE(10) + 'Qty ' + SPACE(13) + 'Description'
|
|
AADD(PHEAD_ARR, COL_HEAD)
|
|
RETURN PHEAD_ARR
|
|
***********************************************************
|
|
* BUILD THE DUPLICATE ORDER MSG. LINE
|
|
***********************************************************
|
|
FUNCTION DUPL_MSG( ORD_TYPE, MDATE, MTIME )
|
|
LOCAL PV1, PV2, RET_VAL, DUP_MSG_TYPE := SUBS(ORD_TYPE,1,3)
|
|
PV1 := &WIDEON ;
|
|
+ 'DUPLICATE ' + DUP_MSG_TYPE ;
|
|
+ &WIDEOFF
|
|
PV2 := + '(Last Printed ' ;
|
|
+ DTOC(MDATE) + ' ' ;
|
|
+ SUBS(MTIME,1,5) + ')'
|
|
RET_VAL := { PV1, PV2, ' ' }
|
|
RETURN RET_VAL
|
|
***********************************************************
|
|
// PRINTS THE SIZE AS 23 15/16 X 23 1/4
|
|
***********************************************************
|
|
FUNCTION PRNT_SIZE(PRNTWIDTH, PRNTHEIGHT, DELIMCHAR, MAX_DENOMINATOR, VALUESONLY)
|
|
LOCAL MDEC, ELM, W_FRACT, H_FRACT, ADDVAL, ITEM_LINE := '', WIDVAL, HTVAL
|
|
IF VALUESONLY = NIL
|
|
VALUESONLY := .F.
|
|
ENDIF
|
|
IF MAX_DENOMINATOR = NIL
|
|
MAX_DENOMINATOR := 16
|
|
ENDIF
|
|
IF DELIMCHAR = NIL
|
|
DELIMCHAR := ' x '
|
|
ELSE
|
|
DELIMCHAR := ' ' + DELIMCHAR + ' '
|
|
ENDIF
|
|
MDEC := PRNTWIDTH - INT(PRNTWIDTH)
|
|
IF MDEC = 0
|
|
ELM = 0
|
|
ELSE
|
|
ELM := ASCAN( FRACTION_ARR , {|X| X[2] == MDEC } )
|
|
ENDIF
|
|
IF ELM == 0 // DECIMAL - FRACTION NOT FOUND IN ARRAY
|
|
W_FRACT := ''
|
|
ELSE
|
|
W_FRACT := FRACTION_ARR[ELM, 1] // WIDTH FRACTION VALUE TO PRT
|
|
IF RIGHT(ALLTRIM(W_FRACT),2) = '32'
|
|
IF ELM = 1
|
|
W_FRACT := ' '
|
|
ELSE
|
|
W_FRACT := FRACTION_ARR[ELM-1,1]
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ADDVAL := LTRIM(STR(INT(PRNTWIDTH),3))
|
|
ITEM_LINE := ITEM_LINE + ADDVAL
|
|
WIDVAL := ADDVAL
|
|
IF LEN(W_FRACT) > 0
|
|
ADDVAL := ALLTRIM(W_FRACT)
|
|
ITEM_LINE := ITEM_LINE + ' ' + ADDVAL
|
|
WIDVAL := WIDVAL + ' ' + ADDVAL
|
|
ENDIF
|
|
IF PRNTHEIGHT <> NIL .AND. PRNTHEIGHT <> 0
|
|
MDEC := PRNTHEIGHT - INT(PRNTHEIGHT)
|
|
IF MDEC = 0
|
|
ELM = 0
|
|
ELSE
|
|
ELM := ASCAN( FRACTION_ARR , {|X| X[2] == MDEC } )
|
|
ENDIF
|
|
IF ELM == 0 // DECIMAL - FRACTION NOT FOUND IN ARRAY
|
|
H_FRACT := ''
|
|
ELSE
|
|
H_FRACT := FRACTION_ARR[ELM, 1] + ' ' // HEIGHT FRACTION VALUE TO PRT
|
|
ENDIF
|
|
ADDVAL := LTRIM(STR(INT(PRNTHEIGHT),3))
|
|
ITEM_LINE := ITEM_LINE + DELIMCHAR + ADDVAL
|
|
HTVAL := ADDVAL
|
|
IF LEN(H_FRACT) > 0
|
|
ADDVAL := ALLTRIM(H_FRACT)
|
|
ITEM_LINE := TRIM(ITEM_LINE + ' ' + ADDVAL )
|
|
HTVAL := HTVAL + ' ' + ADDVAL
|
|
ENDIF
|
|
ENDIF
|
|
IF VALUESONLY
|
|
RETURN { WIDVAL, HTVAL }
|
|
ELSE
|
|
RETURN STRTRAN(ITEM_LINE, ' ', '~')
|
|
ENDIF
|
|
*******************************************************************
|
|
* THIS FUNCTION WILL CALCULATE THE UNIT PRICE FOR PRINTING PURPOSES
|
|
*******************************************************************
|
|
FUNCTION CALC_UNIT(PRICE, QTY)
|
|
RETURN TRANSFORM(PRICE / QTY,'99999.99')
|
|
|
|
*******************************************************************
|
|
* THIS FUNCTION PRINT THE MISC. ITEMS ON THE INVOICE COPY OF THE ORDER
|
|
*******************************************************************
|
|
FUNCTION PRT_MISC(P_DESC, P_AMT)
|
|
LOCAL RET_VAL := PADL(ALLTRIM(P_DESC), LEN(P_DESC)+8 ) + ': ' + STR(P_AMT,10,2)
|
|
RETURN
|
|
**********************************************************
|
|
* BUILD BOTTOM OF ORDER (IE: CUSTOMER ORDER MISC ITEMS/TAX/TOTALS)
|
|
**********************************************************
|
|
FUNCTION BLD_TAIL(MORDER_NUM, ORD_TYPE, LINE_TOTAL, WHICHCOPY, SUBTYPE,;
|
|
LI_DISC_PRNT, PARTIAL_INVOICE, MISC_ARR, PRT_BO, REPRINT_INVOICE )
|
|
LOCAL MISCPRNT, I, ELEM, PRT_AMT, NEGTOT, TAXPRNTARR := {}
|
|
LOCAL NUMGL_LINES := LEN(GL_ARR), NUMPRNT := 0, DIFF, QUOT_FACTOR
|
|
LOCAL PV1, PV2, PVCNT := 0, TOTAL_GL := 0, WK_TOTAL, PTAIL_ARR := {}
|
|
LOCAL DP_DESC := 'Downpmt - ' + DTOC( (CUR_MAST)->DP_DATE) + ':'
|
|
LOCAL TAX_ARR := STAX_RATE( (CUR_MAST)->TAXSCH ) // WHOLE TAX ARRAY
|
|
LOCAL TAX_DESC := TAX_ARR[3] // DESCRIPTION
|
|
LOCAL TAX_DET := TAX_ARR[4] // ALL COMPONENTS {RATE, DESC, GL_NUM}
|
|
LOCAL NOTEVAL := '', RETVALARR := {}, RETVARARR := {},DID_NOTES := .F.
|
|
LOCAL NOTEARR := {}, ARR2 := {}, WORKSPACE := 56, NOTELEN := 32
|
|
LOCAL TEMPSPACE := 23, GL_TOTAL := 0, SV_TOTAL := 0, ELM, WKPCT := 0
|
|
LOCAL WORKARR, BILL_STATE, SHIP_STATE, WK_STATE, SVARR_LEN := 0, SUBTOTL := 0
|
|
LOCAL WKNOTES := '',NONTX_ARR := {} //** P3N-11/2/98 -HAPPY B-DAY MATT
|
|
LOCAL ORDTOT := (CUR_MAST)->TOTAL_AMT //** P3N - 11/19/98
|
|
STATIC SV_GLARR := {}
|
|
//**ORDTOT := ORDTOT - (CUR_MAST)->ORD_BO_TTL //** P3N - 11/19/98
|
|
|
|
FOR I := 1 TO LEN(GL_ARR)
|
|
GL_TOTAL := GL_TOTAL + GL_ARR[I,2]
|
|
NEXT
|
|
FOR I := 1 TO LEN(SV_GLARR)
|
|
IF VALTYPE(SV_GLARR[I]) == 'C'
|
|
ELSE
|
|
SV_TOTAL := SV_TOTAL + SV_GLARR[I,2]
|
|
SVARR_LEN := SVARR_LEN + 1
|
|
ENDIF
|
|
NEXT
|
|
|
|
IF EMPTY(SV_GLARR)
|
|
SV_GLARR:= ACLONE(GL_ARR)
|
|
AADD(SV_GLARR, MORDER_NUM)
|
|
ELSE
|
|
// IS IT THE SAME ORDER NUMBER USE THE SAVE GL_ARR
|
|
ELM := ASCAN(SV_GLARR, {|X| VALTYPE(X) == 'C'})
|
|
IF EMPTY(ELM)
|
|
SV_GLARR:= ACLONE(GL_ARR)
|
|
AADD(SV_GLARR,MORDER_NUM)
|
|
ELSEIF MORDER_NUM == SV_GLARR[ELM]
|
|
// THE SAME ORDER NUMBER HAS THE GL_ARR CHANGED
|
|
IF LEN(GL_ARR) <> SVARR_LEN .OR. SV_TOTAL <> GL_TOTAL
|
|
SV_GLARR:= ACLONE(GL_ARR)
|
|
AADD(SV_GLARR,MORDER_NUM)
|
|
ENDIF
|
|
ELSE
|
|
SV_GLARR:= ACLONE(GL_ARR)
|
|
AADD(SV_GLARR,MORDER_NUM)
|
|
ENDIF
|
|
ENDIF
|
|
IF GLALLOC_OVR
|
|
GL_ARR := ASORT(GL_OVR,,, {|X,Y| X[1] < Y[1] })
|
|
ELSE
|
|
GL_ARR := {}
|
|
FOR I := 1 TO LEN(SV_GLARR)
|
|
IF VALTYPE(SV_GLARR[I]) == 'C'
|
|
//THIS IS THE ORDER NUMBER-USED TO DETERMINE WHEN TO RESET THE ARRAY
|
|
ELSE
|
|
AADD(GL_ARR, SV_GLARR[I])
|
|
ENDIF
|
|
NEXT
|
|
GL_ARR := ASORT(GL_ARR,,, {|X,Y| X[1] < Y[1] })
|
|
ENDIF
|
|
WORKSPACE := 46
|
|
TEMPSPACE := 21
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
WORKSPACE := 49
|
|
ELSEIF MHOME_LOC_CODE = 'LINDS'
|
|
WORKSPACE := 48
|
|
//** ADDRESS LINDS DELIVERY TICKET PRINT ANOMALIES //** P3N -07/17/00
|
|
IF SUBTYPE = 'DELIVERY'
|
|
WORKSPACE := 47
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
FOR I := 1 TO LEN(GL_ARR)
|
|
IF LEN(GL_ARR[I]) > 2 // TAX SCHEDULE NAME
|
|
AADD(TAXPRNTARR, GL_ARR[I]) // GL NUM, TAX AMT, DESC
|
|
ENDIF
|
|
NEXT
|
|
|
|
// MEMO NOTE FIELD FROM ORDER SCREEN
|
|
IF !EMPTY( (CUR_MAST)->NOTES )
|
|
RETVARARR := PRT_MEMO( {} , {} , ALLTRIM((CUR_MAST)->NOTES), NOTELEN) // PRINT THE ORDER MASTER NOTES
|
|
WORKARR := ACLONE( RETVARARR[1] )
|
|
FOR I := 1 TO LEN( WORKARR )
|
|
AADD(NOTEARR, WORKARR[I] )
|
|
NEXT
|
|
AADD(NOTEARR, ' ' )
|
|
ENDIF
|
|
|
|
// TAX NOTES ON INVOICE
|
|
IF ORD_TYPE = 'INV' .AND. TAX_SCHED->(DBSEEK ( (CUR_MAST)->TAXSCH ) ) ;
|
|
.AND. !EMPTY( TAX_SCHED->NOTES )
|
|
RETVARARR := PRT_MEMO( {}, {}, TAX_SCHED->NOTES, NOTELEN) // PRINT THE TAX SCHEDULE NOTES
|
|
WORKARR := ACLONE( RETVARARR[1] )
|
|
FOR I := 1 TO LEN( WORKARR )
|
|
AADD(NOTEARR, WORKARR[I] )
|
|
NEXT
|
|
ENDIF
|
|
|
|
// 9-6-95 - just say "Sales Tax"
|
|
IF EMPTY(TAX_DESC) .OR. MHOME_LOC_CODE <> 'KC'
|
|
TAX_DESC := PADL( TRIM("Sales Tax") + ': ', TEMPSPACE-3, ' ' )
|
|
ELSE
|
|
TAX_DESC := PADL( TRIM(TAX_DESC) + ': ', TEMPSPACE-3, ' ' )
|
|
ENDIF
|
|
|
|
PRT_AMT := DO_WE_PRT_AMT( ORD_TYPE, SUBTYPE )
|
|
IF PRT_AMT .OR. ITEMIZE = 2
|
|
DID_NOTES := .T.
|
|
IF (CUR_MAST)->ORDER_NUM == MORDER_NUM
|
|
ELSE
|
|
(CUR_MAST)->(DBSEEK(MORDER_NUM))
|
|
ENDIF
|
|
|
|
// PRINT SUBTOTAL SO FAR
|
|
PVCNT ++
|
|
PV1 := GETPV1(GL_ARR, PVCNT, SPACE(WORKSPACE), NOTEARR )
|
|
PV2 := SPACE(18) + '----------'
|
|
AADD(PTAIL_ARR, PV1 + PV2)
|
|
|
|
IF (CUR_MAST)->ORD_D_TTL <> 0 .AND. LI_DISC_PRNT
|
|
LINE_TOTAL := LINE_TOTAL - (CUR_MAST)->ORD_D_TTL
|
|
ENDIF
|
|
|
|
IF LINE_TOTAL < 0
|
|
NEGTOT := TRANSFORM(LINE_TOTAL, '(9999999999999999.99)') //**P3N 4/28/98
|
|
****NEGTOT := TRANSFORM(LINE_TOTAL, '(9999999999.99)')
|
|
NEGTOT := STRTRAN(NEGTOT, ' ', '')
|
|
NEGTOT := STRTRAN(NEGTOT, '-', '')
|
|
NEGTOT := PADL(NEGTOT,17, ' ') //** P3N - 4/28/98
|
|
****NEGTOT := PADL(NEGTOT,11, ' ')
|
|
ELSE
|
|
NEGTOT := 0
|
|
ENDIF
|
|
PVCNT ++
|
|
PV1 := GETPV1(GL_ARR, PVCNT, SPACE(WORKSPACE), NOTEARR )
|
|
IF (CUR_MAST)->QUOTE_PRIC = 0
|
|
IF EMPTY(NEGTOT)
|
|
PV2 = ' ' + STR(LINE_TOTAL,16,2) //** P3N - 4/28/98
|
|
ELSE
|
|
PV2 = ' ' + NEGTOT // NEGATIVE TOTAL //** P3N - 4/28/98
|
|
ENDIF
|
|
ELSE
|
|
PV2 = ' Quoted Amount: ' + STR( (CUR_MAST)->QUOTE_PRIC,10,2)
|
|
ENDIF
|
|
AADD(PTAIL_ARR, PV1 + PV2)
|
|
|
|
MISCPRNT := .F.
|
|
IF (CUR_MAST)->ORD_D_TTL <> 0
|
|
PVCNT ++
|
|
PV1 := GETPV1(GL_ARR, PVCNT, SPACE(WORKSPACE-8), NOTEARR )
|
|
IF LI_DISC_PRNT
|
|
IF EMPTY(PV1)
|
|
ELSE
|
|
AADD(PTAIL_ARR, PV1 )
|
|
ENDIF
|
|
ELSEIF EMPTY((CUR_MAST)->ORD_D_TTL)
|
|
ELSE
|
|
IF EMPTY((CUR_MAST)->DISCOUNT)
|
|
PV2 := ' Less ORDER Discount:'
|
|
ELSE
|
|
PV2 := 'Less ORDER Discount '
|
|
PV2 := PV2+ STR((CUR_MAST)->DISCOUNT,3,0) + '%:'
|
|
ENDIF
|
|
PV2 := PV2+ STR((CUR_MAST)->ORD_D_TTL*-1,11,2) //** P3N - 12/10/98
|
|
PV2 := STRTRAN( PV2, '-','(' ) + ')' //** P3N - 12/10/98
|
|
//** PV2 := STRTRAN(((CUR_MAST)->ORD_D_TTL*-1,11,2) //** P3N - 12/10/98
|
|
AADD(PTAIL_ARR, PV1 + PV2)
|
|
LINE_TOTAL := LINE_TOTAL - (CUR_MAST)->ORD_D_TTL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (CUR_MAST)->( FIELDPOS('FREIGHT') ) > 0
|
|
IF (CUR_MAST)->FREIGHT <> 0
|
|
PVCNT ++
|
|
PV1 := GETPV1(GL_ARR, PVCNT, SPACE(WORKSPACE), NOTEARR )
|
|
AADD(PTAIL_ARR, PV1 + ' Freight Charges: ' + STR((CUR_MAST)->FREIGHT,10,2) )
|
|
MISCPRNT := .T.
|
|
ENDIF
|
|
ENDIF
|
|
|
|
NEGTOT := 0 //** P3N - 12/4/98
|
|
|
|
//** P3N - 09/21/06 - ADDED THE FUEL SURCHARGE TO ORDER ENTRY
|
|
IF (CUR_MAST)->FUEL_CHRG <> 0
|
|
PVCNT ++
|
|
PV1 := GETPV1(GL_ARR, PVCNT, SPACE(WORKSPACE-30), NOTEARR )
|
|
SUBTOTL := (CUR_MAST)->ORD_L_TTL - (CUR_MAST)->ORD_D_TTL + (CUR_MAST)->ORD_M_TTL //**P3N - 11/13/06
|
|
//**SUBTOTL := (CUR_MAST)->ORD_L_TTL - (CUR_MAST)->ORD_D_TTL //** P3N - 11/13/06
|
|
SUBTOTL += (CUR_MAST)->MISC_QTY1 * (CUR_MAST)->MISC_AMT1
|
|
SUBTOTL += (CUR_MAST)->MISC_QTY2 * (CUR_MAST)->MISC_AMT2
|
|
SUBTOTL += (CUR_MAST)->MISC_QTY3 * (CUR_MAST)->MISC_AMT3
|
|
//**WKPCT := VAL(STR(((CUR_MAST)->FUEL_CHRG / SUBTOTL) * 100,15,2) ) //** P3N - 04/22/09 - per Darlene - remove %
|
|
AADD(PTAIL_ARR, PV1 +SPACE(31)+ ; //** P3N - 04/22/09 - per Darlene - remove %
|
|
'Delivery Charge:'+ STR((CUR_MAST)->FUEL_CHRG,11,2)) //** P3N - 04/22/09
|
|
//**AADD(PTAIL_ARR, PV1 +SPACE(8)+ STR( WKPCT,3,0) + ; //** P3N - 04/13/09
|
|
//** '% Delivery Charge:'+ STR((CUR_MAST)->FUEL_CHRG,28,2)) //** P3N - 04/13/09
|
|
//** P3N - 04/13/09 - PER DARLENE - REMOVE "Fuel Sur" from description
|
|
//** '% Delivery Fuel SurCharge:'+ STR((CUR_MAST)->FUEL_CHRG,28,2))
|
|
MISCPRNT := .T.
|
|
ENDIF
|
|
|
|
IF (CUR_MAST)->SALES_TAX <> 0
|
|
PVCNT ++
|
|
PV1 := GETPV1(GL_ARR, PVCNT, SPACE(WORKSPACE ), NOTEARR )
|
|
IF (CUR_MAST)->SALES_TAX < 0 //** P3N - 10/14/98
|
|
NEGTOT := TRANSFORM((CUR_MAST)->SALES_TAX, '(9999999999.99)')
|
|
NEGTOT := STRTRAN(NEGTOT, ' ', '') //** P3N - 10/14/98
|
|
NEGTOT := STRTRAN(NEGTOT, '-', '') //** P3N - 10/14/98
|
|
NEGTOT := PADL(NEGTOT,11, ' ') //** P3N - 10/14/98
|
|
ENDIF //** P3N - 10/14/98
|
|
IF EMPTY(NEGTOT) //** P3N - 10/14/98
|
|
AADD(PTAIL_ARR, PV1 + TAX_DESC + STR((CUR_MAST)->SALES_TAX,10,2) )
|
|
ELSE //** P3N - 10/14/98
|
|
AADD(PTAIL_ARR, PV1 + TAX_DESC + NEGTOT ) //** P3N - 10/14/98
|
|
ENDIF
|
|
MISCPRNT := .T.
|
|
ENDIF
|
|
|
|
//** P3N - 12/3/98 DO NOT PRINT NONTAX ITEMS FOR INTER COMPANY PO'S
|
|
IF WHICHCOPY == 'PO' .AND. SUBTYPE == 'PO'
|
|
//** P3N - 12/2/98 PREPARE NONTAX ITEMS FOR PRINTING
|
|
ELSE
|
|
NONTX_ARR := PRT_NONTX(MISC_ARR, PARTIAL_INVOICE, .T., PRT_BO, REPRINT_INVOICE)
|
|
FOR I := 1 TO LEN(NONTX_ARR)
|
|
PV1 := NONTX_ARR[I]
|
|
PVCNT ++
|
|
AADD(PTAIL_ARR, PV1)
|
|
MISCPRNT := .T.
|
|
NEXT
|
|
ENDIF
|
|
|
|
NEGTOT := 0 //** P3N - 12/4/98
|
|
|
|
IF MISCPRNT .OR. PRT_AMT //** P3N - 4/8/98
|
|
PVCNT ++
|
|
PV1 := GETPV1(GL_ARR, PVCNT, SPACE(WORKSPACE), NOTEARR )
|
|
PV2 := SPACE(18) + '----------'
|
|
AADD(PTAIL_ARR, PV1 + PV2)
|
|
PVCNT ++
|
|
PV1 := GETPV1(GL_ARR, PVCNT, SPACE(WORKSPACE), NOTEARR )
|
|
IF ORDTOT < 0
|
|
//** NEGTOT := TRANSFORM((CUR_MAST)->TOTAL_AMT, '(9999999999.99)')
|
|
NEGTOT := TRANSFORM(ORDTOT, '(9999999999.99)')
|
|
NEGTOT := STRTRAN(NEGTOT, ' ', '')
|
|
NEGTOT := STRTRAN(NEGTOT, '-', '')
|
|
NEGTOT := PADL(NEGTOT,11, ' ')
|
|
//** P3N - 11/19/98
|
|
//**ELSEIF (CUR_MAST)->TOTAL_AMT = 0.00 // ** P3N - 4/8/98
|
|
ELSEIF ORDTOT = 0.00
|
|
GL_ARR := {} // ** NO GL ALLOCATIONS
|
|
NEGTOT := 0 // ** FOR A ORDER TOTAL OF 0!
|
|
ELSE
|
|
NEGTOT := 0
|
|
ENDIF
|
|
IF EMPTY(NEGTOT)
|
|
//** P3N - 11/19/98
|
|
//** AADD(PTAIL_ARR, PV1 + ' Order Total: ' + STR((CUR_MAST)->TOTAL_AMT,10,2) )
|
|
AADD(PTAIL_ARR, PV1 + ' Order Total: ' + STR(ORDTOT,10,2) )
|
|
ELSE
|
|
AADD(PTAIL_ARR, PV1 + ' Order Total: ' + NEGTOT )
|
|
ENDIF
|
|
ENDIF
|
|
|
|
NEGTOT := 0 //** P3N - 12/4/98
|
|
|
|
IF (CUR_MAST)->DOWN_PMT <> 0
|
|
PVCNT ++
|
|
PV1 := GETPV1(GL_ARR, PVCNT, SPACE(WORKSPACE-2), NOTEARR )
|
|
NEGTOT := TRANSFORM((CUR_MAST)->DOWN_PMT*-1 , '(9999999999.99)')
|
|
NEGTOT := STRTRAN(NEGTOT, ' ', '')
|
|
NEGTOT := STRTRAN(NEGTOT, '-', '')
|
|
NEGTOT := PADL(NEGTOT,12, ' ')
|
|
AADD(PTAIL_ARR, PV1 + DP_DESC + NEGTOT )
|
|
PVCNT ++
|
|
PV1 := GETPV1(GL_ARR, PVCNT, SPACE(WORKSPACE), NOTEARR )
|
|
AADD(PTAIL_ARR, PV1 + SPACE(18) + '----------' )
|
|
PVCNT ++
|
|
PV1 := GETPV1(GL_ARR, PVCNT, SPACE(WORKSPACE), NOTEARR )
|
|
|
|
NEGTOT := 0 //** P3N - 12/4/98
|
|
|
|
//** P3N - 11/19/98
|
|
//**IF (CUR_MAST)->TOTAL_AMT < 0
|
|
IF ORDTOT < 0
|
|
//** IF (CUR_MAST)->TOTAL_AMT + (CUR_MAST)->DOWN_PMT < 0
|
|
IF ORDTOT + (CUR_MAST)->DOWN_PMT < 0
|
|
//** NEGTOT := TRANSFORM((CUR_MAST)->TOTAL_AMT-(CUR_MAST)->DOWN_PMT , '(9999999999.99)')
|
|
NEGTOT := TRANSFORM(ORDTOT-(CUR_MAST)->DOWN_PMT , '(9999999999.99)')
|
|
NEGTOT := STRTRAN(NEGTOT, ' ', '')
|
|
NEGTOT := STRTRAN(NEGTOT, '-', '')
|
|
NEGTOT := PADL(NEGTOT,11, ' ')
|
|
ELSE
|
|
NEGTOT := 0
|
|
ENDIF
|
|
ELSE
|
|
NEGTOT := 0
|
|
ENDIF
|
|
IF EMPTY(NEGTOT)
|
|
//** P3N - 11/19/98
|
|
//** AADD(PTAIL_ARR, PV1 + 'Total Amount Due: ' + STR((CUR_MAST)->TOTAL_AMT - (CUR_MAST)->DOWN_PMT,10,2) )
|
|
AADD(PTAIL_ARR, PV1 + 'Total Amount Due: ' + STR(ORDTOT - (CUR_MAST)->DOWN_PMT,10,2) )
|
|
ELSE
|
|
AADD(PTAIL_ARR, PV1 + 'Total Amount Due: ' + NEGTOT )
|
|
ENDIF
|
|
ENDIF
|
|
PVCNT ++
|
|
PV1 := GETPV1(GL_ARR, PVCNT, SPACE(WORKSPACE), NOTEARR )
|
|
IF MHOME_LOC_CODE <> 'IOLA' // DARLENE 8-22-96
|
|
AADD(PTAIL_ARR, PV1 + SPACE(18) + '----------' )
|
|
ENDIF
|
|
|
|
FOR I := PVCNT TO MAX(LEN(GL_ARR), LEN(NOTEARR) )
|
|
PVCNT ++
|
|
PV1 := GETPV1(GL_ARR, PVCNT, SPACE(WORKSPACE), NOTEARR )
|
|
AADD(PTAIL_ARR, PV1 )
|
|
NEXT
|
|
ELSE
|
|
//** P3N - 12/3/98 DO NOT PRINT NONTAX ITEMS FOR INTER COMPANY PO'S
|
|
IF WHICHCOPY == 'PO' .AND. SUBTYPE == 'PO'
|
|
//** P3N - 12/2/98 PREPARE NONTAX ITEMS FOR PRINTING
|
|
ELSE
|
|
NONTX_ARR := PRT_NONTX(MISC_ARR, PARTIAL_INVOICE, .F., PRT_BO, REPRINT_INVOICE)
|
|
FOR I := 1 TO LEN(NONTX_ARR)
|
|
PV1 := NONTX_ARR[I]
|
|
PVCNT ++
|
|
AADD(PTAIL_ARR, PV1)
|
|
MISCPRNT := .T.
|
|
NEXT
|
|
ENDIF
|
|
ENDIF
|
|
IF !DID_NOTES .AND. LEN(NOTEARR) > 0
|
|
//** P3N 9/2/98
|
|
//** ONLY INCLUDE THE SPECIAL BACKORDER NOTES ON THE INVOICE COPIES
|
|
IF AT(' ARE ON BACK ORDER AND INCLUDED IN THE ', (CUR_MAST)->NOTES) > 0
|
|
IF ORD_TYPE == 'INV'
|
|
FOR I := 1 TO LEN(NOTEARR)
|
|
AADD(PTAIL_ARR, SPACE(15) + NOTEARR[I])
|
|
NEXT
|
|
ENDIF
|
|
ELSE
|
|
FOR I := 1 TO LEN(NOTEARR)
|
|
AADD(PTAIL_ARR, SPACE(15) + NOTEARR[I])
|
|
NEXT
|
|
ENDIF
|
|
ENDIF
|
|
//** P3N 9/2/98
|
|
//** BO MEMO NOTE FIELD FROM ORDER MASTER(CGW0OM)
|
|
//** ORDER CONTROL SCREEN (3220B/F1)
|
|
IF ORD_TYPE == 'BACKORD'
|
|
PTAIL_ARR := {}
|
|
IF SUBTYPE == 'BACKORD' //** P3N - 11/2/98 HAPPY B-DAY MATT
|
|
WKNOTES := (CUR_MAST)->BO_NOTES //** P3N - 11/2/98 HAPPY B-DAY MATT
|
|
ELSEIF SUBTYPE == 'SCREENS' //** P3N - 11/2/98 HAPPY B-DAY MATT
|
|
IF (CUR_MAST)->(FIELDPOS('BONOTESCRN')) > 0
|
|
WKNOTES := (CUR_MAST)->BONOTESCRN //** P3N - 11/2/98 HAPPY B-DAY MATT
|
|
ENDIF //** P3N - 11/2/98 HAPPY B-DAY MATT
|
|
ENDIF //** P3N - 11/2/98 HAPPY B-DAY MATT
|
|
IF !EMPTY( WKNOTES )
|
|
RETVARARR := PRT_MEMO( {} , {} , ALLTRIM(WKNOTES), NOTELEN) // PRINT THE ORDER MASTER BO_NOTES
|
|
WORKARR := ACLONE( RETVARARR[1] )
|
|
FOR I := 1 TO LEN( WORKARR )
|
|
AADD(PTAIL_ARR, SPACE(12) + WORKARR[I] )
|
|
NEXT
|
|
AADD(PTAIL_ARR, ' ' )
|
|
ENDIF
|
|
ENDIF
|
|
RETURN PTAIL_ARR
|
|
***************************************************************
|
|
* P3N - 12/02/98 *
|
|
* PREPARE NONTAX ITEMS FOR PRINTING *
|
|
***************************************************************
|
|
FUNCTION PRT_NONTX(MISC_ARR, PARTIAL_INVOICE, PRT_AMT, PRT_BO, REPRINT_INVOICE)
|
|
LOCAL TX1SHP := 0, TX2SHP := 0, TX3SHP := 0, TX1INV := 0, TX2INV := 0, TX3INV := 0
|
|
LOCAL TX1BO := 0, TX2BO := 0, TX3BO := 0, TX1A := 0, TX2A := 0, TX3A := 0
|
|
LOCAL TX1Q := 0 , TX2Q := 0, TX3Q := 0, I := 0, WK_TOTAL := 0, PV1
|
|
LOCAL PTAXAMT := PRT_AMT, PTAIL_ARR := { }
|
|
IF ITEMIZE = 2
|
|
PTAXAMT := .F.
|
|
ENDIF
|
|
TX1A := (CUR_MAST)->NOTX_AMT1
|
|
TX1Q := (CUR_MAST)->NOTX_QTY1
|
|
TX2A := (CUR_MAST)->NOTX_AMT2
|
|
TX2Q := (CUR_MAST)->NOTX_QTY2
|
|
TX3A := (CUR_MAST)->NOTX_AMT3
|
|
TX3Q := (CUR_MAST)->NOTX_QTY3
|
|
IF PRT_BO
|
|
FOR I := 1 TO LEN(MISC_ARR[1])
|
|
IF MISC_ARR[1,I,5] == 'ORDNOTX1'
|
|
TX1SHP := MISC_ARR[1,I,3] //** SHIP QTY
|
|
TX1INV := MISC_ARR[1,I,6] //** INV QTY
|
|
ELSEIF MISC_ARR[1,I,5] == 'ORDNOTX2'
|
|
TX2SHP := MISC_ARR[1,I,3] //** SHIP QTY
|
|
TX2INV := MISC_ARR[1,I,6] //** INV QTY
|
|
ELSEIF MISC_ARR[1,I,5] == 'ORDNOTX3'
|
|
TX3SHP := MISC_ARR[1,I,3] //** SHIP QTY
|
|
TX3INV := MISC_ARR[1,I,6] //** INV QTY
|
|
ENDIF
|
|
NEXT
|
|
TX1BO := TX1Q - TX1SHP
|
|
TX2BO := TX2Q - TX2SHP
|
|
TX3BO := TX3Q - TX3SHP
|
|
ENDIF
|
|
IF (CUR_MAST)->NOTX_QTY1 <> 0
|
|
IF PARTIAL_INVOICE
|
|
WK_TOTAL := TX1A * TX1SHP
|
|
ELSEIF REPRINT_INVOICE
|
|
WK_TOTAL := TX1A * TX1INV
|
|
ELSE
|
|
WK_TOTAL := TX1A * TX1Q
|
|
ENDIF
|
|
IF EMPTY(TX1BO)
|
|
TX1BO := SPACE(4)
|
|
ELSE
|
|
TX1BO := STR(TX1BO,4,0)
|
|
ENDIF
|
|
IF EMPTY(TX1SHP)
|
|
TX1SHP := SPACE(5)
|
|
ELSEIF TX1Q = TX1SHP //** P3N - 12/28/98
|
|
TX1SHP := SPACE(5) //** DO NOT PRINT SHIP QTY IF SAME AS
|
|
ELSE //** ORDER QTY
|
|
TX1SHP := STR(TX1SHP,5,0)
|
|
ENDIF
|
|
PV1 := STR(TX1Q,4,0) + TX1BO + TX1SHP + SPACE(2)
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
PV1 := PV1 + (CUR_MAST)->NOTX_ITEM1 + ' ~ ' + SPACE(13)
|
|
IF PTAXAMT
|
|
PV1 := PV1 + STR(TX1A,7,2) + ' '
|
|
ENDIF
|
|
ELSEIF MHOME_LOC_CODE = 'LINDS'
|
|
PV1 := PV1 + (CUR_MAST)->NOTX_ITEM1 + ' ~ ' + SPACE(13)
|
|
IF PTAXAMT
|
|
PV1 := PV1 + STR(TX1A,7,2) + ' '
|
|
ENDIF
|
|
ELSE // IOLA AND PAWNEE
|
|
PV1 := PV1 + (CUR_MAST)->NOTX_ITEM1 + ' ~ ' + SPACE(11)
|
|
IF PTAXAMT
|
|
PV1 := PV1 + STR(TX1A,7,2) + ' '
|
|
ENDIF
|
|
ENDIF
|
|
IF PTAXAMT
|
|
PV1 := PV1 + STR(WK_TOTAL,10,2)
|
|
ELSE
|
|
AADD(PTAIL_ARR, ' ')
|
|
ENDIF
|
|
AADD(PTAIL_ARR, PV1)
|
|
ENDIF
|
|
IF (CUR_MAST)->NOTX_QTY2 <> 0
|
|
IF PARTIAL_INVOICE
|
|
WK_TOTAL := TX2A * TX2SHP
|
|
ELSEIF REPRINT_INVOICE
|
|
WK_TOTAL := TX2A * TX2INV
|
|
ELSE
|
|
WK_TOTAL := TX2A * TX2Q
|
|
ENDIF
|
|
IF EMPTY(TX2BO)
|
|
TX2BO := SPACE(4)
|
|
ELSE
|
|
TX2BO := STR(TX2BO,4,0)
|
|
ENDIF
|
|
IF EMPTY(TX2SHP)
|
|
TX2SHP := SPACE(5)
|
|
ELSEIF TX2Q = TX2SHP //** P3N - 12/28/98
|
|
TX2SHP := SPACE(5) //** DO NOT PRINT SHIP QTY IF SAME AS
|
|
ELSE //** ORDER QTY
|
|
TX2SHP := STR(TX2SHP,5,0)
|
|
ENDIF
|
|
PV1 := STR(TX2Q,4,0) + TX2BO + TX2SHP + SPACE(2)
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
PV1 := PV1 + (CUR_MAST)->NOTX_ITEM2 + ' ~ ' + SPACE(13)
|
|
IF PTAXAMT
|
|
PV1 := PV1 + STR(TX2A,7,2) + ' '
|
|
ENDIF
|
|
ELSEIF MHOME_LOC_CODE = 'LINDS'
|
|
PV1 := PV1 + (CUR_MAST)->NOTX_ITEM2 + ' ~ ' + SPACE(13)
|
|
IF PTAXAMT
|
|
PV1 := PV1 + STR(TX2A,7,2) + ' '
|
|
ENDIF
|
|
ELSE // IOLA AND PAWNEE
|
|
PV1 := PV1 + (CUR_MAST)->NOTX_ITEM2 + ' ~ ' + SPACE(11)
|
|
IF PTAXAMT
|
|
PV1 := PV1 + STR(TX2A,7,2) + ' '
|
|
ENDIF
|
|
ENDIF
|
|
IF PTAXAMT
|
|
PV1 := PV1 + STR(WK_TOTAL,10,2)
|
|
ELSE
|
|
AADD(PTAIL_ARR, ' ')
|
|
ENDIF
|
|
AADD(PTAIL_ARR, PV1)
|
|
ENDIF
|
|
IF (CUR_MAST)->NOTX_QTY3 <> 0
|
|
IF PARTIAL_INVOICE
|
|
WK_TOTAL := TX3A * TX3SHP
|
|
ELSEIF REPRINT_INVOICE
|
|
WK_TOTAL := TX3A * TX3INV
|
|
ELSE
|
|
WK_TOTAL := TX3A * TX3Q
|
|
ENDIF
|
|
IF EMPTY(TX3BO)
|
|
TX3BO := SPACE(4)
|
|
ELSE
|
|
TX3BO := STR(TX3BO,4,0)
|
|
ENDIF
|
|
IF EMPTY(TX3SHP)
|
|
TX3SHP := SPACE(5)
|
|
ELSEIF TX3Q = TX3SHP //** P3N - 12/28/98
|
|
TX3SHP := SPACE(5) //** DO NOT PRINT SHIP QTY IF SAME AS
|
|
ELSE //** ORDER QTY
|
|
TX3SHP := STR(TX3SHP,5,0)
|
|
ENDIF
|
|
PV1 := STR(TX3Q,4,0) + TX3BO + TX3SHP + SPACE(2)
|
|
IF MHOME_LOC_CODE = 'KC'
|
|
PV1 := PV1 + (CUR_MAST)->NOTX_ITEM3 + ' ~ ' + SPACE(13)
|
|
IF PTAXAMT
|
|
PV1 := PV1 + STR(TX3A,7,2) + ' '
|
|
ENDIF
|
|
ELSEIF MHOME_LOC_CODE = 'LINDS'
|
|
PV1 := PV1 + (CUR_MAST)->NOTX_ITEM3 + ' ~ ' + SPACE(13)
|
|
IF PTAXAMT
|
|
PV1 := PV1 + STR(TX3A,7,2) + ' '
|
|
ENDIF
|
|
ELSE // IOLA AND PAWNEE
|
|
PV1 := PV1 + (CUR_MAST)->NOTX_ITEM3 + ' ~ ' + SPACE(11)
|
|
IF PTAXAMT
|
|
PV1 := PV1 + STR(TX3A,7,2) + ' '
|
|
ENDIF
|
|
ENDIF
|
|
IF PTAXAMT
|
|
PV1 := PV1 + STR(WK_TOTAL,10,2)
|
|
ELSE
|
|
AADD(PTAIL_ARR, ' ')
|
|
ENDIF
|
|
AADD(PTAIL_ARR, PV1)
|
|
ENDIF
|
|
RETURN PTAIL_ARR
|
|
***************************************************************
|
|
***************************************************************
|
|
***************************************************************
|
|
// PRINT THE ACCOUNTING TOTALS / GL ALLOCATIONS?
|
|
FUNCTION PRNT_ACCT_INFO( ORD_TYPE, WHICHCOPY, SUBTYPE )
|
|
LOCAL RETVAL
|
|
//**IF (CUR_MAST)->TERMS = '90' .OR. ; //** NO CHARGE //**P3N - 6/4/98
|
|
//** (CUR_MAST)->TERMS = '96' //** CANCELLATION //**P3N - 6/4/98
|
|
IF ZERO_ORDER() //** NO CHARGE //**P3N - 3/5/99
|
|
//** FOR A NO CHARGE OR CANCELLATION FORCE TO NOT PRINT GL AMTS
|
|
RETVAL := .F.
|
|
ELSEIF ORD_TYPE == 'INV' // PRINT CUSTOMER INVOICE
|
|
RETVAL := .T.
|
|
ELSEIF (ORD_TYPE == 'OD' .AND. WHICHCOPY == 'CTRL' )
|
|
RETVAL := .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 SUBTYPE = 'DELIVERY' .AND. IS_COD( (CUR_MAST)->TERMS )
|
|
RETVAL := .T.
|
|
ELSE
|
|
RETVAL := .F.
|
|
ENDIF
|
|
ELSE
|
|
RETVAL := .F.
|
|
ENDIF
|
|
RETURN RETVAL
|
|
************************************************************
|
|
************************************************************
|
|
************************************************************
|
|
FUNCTION GETPV1(GL_ARR, ELEM, ALTVALU, NOTEARR)
|
|
LOCAL RETVAL := SPACE(10) // FILL OUT 1ST "COLUMN"
|
|
IF LEN(NOTEARR) >= ELEM
|
|
RETVAL := RETVAL + ' ' + NOTEARR[ELEM]
|
|
ENDIF
|
|
IF LEN(RETVAL) < LEN(ALTVALU)
|
|
RETVAL := PADR(RETVAL, LEN(ALTVALU) )
|
|
ELSE
|
|
IF LEN(RETVAL) > LEN(ALTVALU)
|
|
RETVAL := SUBS(RETVAL, 1, LEN(ALTVALU) )
|
|
ENDIF
|
|
ENDIF
|
|
RETURN RETVAL
|
|
***************************************************************
|
|
//* CALCULATE THE NUMBER OF LINES THAT WILL FIT ON EACH PAGE OF THE ORDER
|
|
//* AND THE NUMBER OF PAGES ON THE ORDER
|
|
***************************************************************
|
|
FUNCTION CALC_PAGES(PBODY_ARR, PTAIL_ARR)
|
|
LOCAL STRT := 1, PG_NUM := 0, I
|
|
LOCAL NEW_PROD, PG_LINES := 0
|
|
LOCAL LINES_LEFT := MBODY_LEN
|
|
LOCAL PG_ARR := {}, THIS_PG, WKPG
|
|
LOCAL NEWSTRT := 1, WK_LI_DESC
|
|
|
|
IF LEN(PBODY_ARR) = 1
|
|
AADD (PG_ARR, {1, 1})
|
|
RETURN PG_ARR
|
|
ENDIF
|
|
|
|
DO WHILE STRT < LEN(PBODY_ARR)
|
|
PG_LINES := 0
|
|
// START ON FIRST PRODUCT
|
|
// WON'T FIND ANY IF ONLY MISC LINE ITEMS
|
|
FOR I := STRT TO LEN(PBODY_ARR)
|
|
IF SUBS(PBODY_ARR[I], 1,1)$'^'
|
|
STRT = I
|
|
EXIT
|
|
ENDIF
|
|
NEXT
|
|
THIS_PG := CNT_PAGE_LINES(STRT, PBODY_ARR, PTAIL_ARR) //** P3N - 05/15/01
|
|
//** THIS_PG := CNT_PAGE_LINES(STRT, PBODY_ARR) //** P3N - 05/15/01
|
|
STRT := STRT + THIS_PG
|
|
//** IF THIS_PG > MBODY_LEN //** P3N - 9/8/99
|
|
//** DO WHILE THIS_PG > MBODY_LEN //** P3N - 9/8/99
|
|
IF THIS_PG >= MBODY_LEN //** P3N - 9/8/99
|
|
DO WHILE THIS_PG >= MBODY_LEN //** P3N - 9/8/99
|
|
PG_NUM ++
|
|
IF PG_NUM == 1
|
|
SV_LI_DESC := SV_DESC_LINE_ITEM(PBODY_ARR, 1) //FIND LINE ITEM HEADING
|
|
ELSE
|
|
WK_LI_DESC := SV_DESC_LINE_ITEM(PBODY_ARR, (PG_NUM*MBODY_LEN)) //FIND LINE ITEM HEADING
|
|
IF EMPTY(WK_LI_DESC)
|
|
ELSE
|
|
SV_LI_DESC := WK_LI_DESC
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF LEN(PBODY_ARR) > (PG_NUM*MBODY_LEN)
|
|
IF SUBS(PBODY_ARR[PG_NUM*MBODY_LEN], 1,1)$'^'
|
|
AADD (PG_ARR, {PG_NUM, MBODY_LEN-1 })
|
|
THIS_PG := THIS_PG - MBODY_LEN+1
|
|
ELSEIF THIS_PG = MBODY_LEN //** P3N 12/07/99 PAGE BRK
|
|
ELSE
|
|
//7-24-97 FIX PAGE BREAK LOGIC!
|
|
AADD (PG_ARR, {PG_NUM, PAGEBRK(PBODY_ARR, PG_ARR, PG_NUM) })
|
|
THIS_PG := THIS_PG - PAGEBRK(PBODY_ARR, PG_ARR, PG_NUM)
|
|
ENDIF
|
|
ELSE
|
|
WKPG := MIN( LEN(PBODY_ARR)-(PG_NUM-1*MBODY_LEN),MBODY_LEN)
|
|
AADD (PG_ARR, {PG_NUM, WKPG })
|
|
THIS_PG := THIS_PG - WKPG
|
|
ENDIF
|
|
ENDDO
|
|
ENDIF
|
|
PG_NUM ++
|
|
IF PG_NUM == 1 //** P3N - 9/9/99 NO THE EARTH DID NOT COME TO AN END TODAY
|
|
SV_LI_DESC := SV_DESC_LINE_ITEM(PBODY_ARR, 1) //FIND LINE ITEM HEADING
|
|
ENDIF //** P3N - 9/9/99 NO THE EARCH DID NOT COME TO AN END TODAY
|
|
IF EMPTY(THIS_PG) //** P3N - 12/7/99 PAGE BRK
|
|
ELSE //** P3N - 12/7/99 PAGE BRK
|
|
AADD (PG_ARR, {PG_NUM, THIS_PG })
|
|
ENDIF //** P3N - 12/7/99 PAGE BRK
|
|
ENDDO
|
|
|
|
// PRINT NOTES AT BOTTOM OF EVERY PAGE. ALTER LINE COUNT ACCORDINGLY
|
|
IF !EMPTY((CUR_MAST)->NOTE_FIELD) .AND. (CUR_MAST)->PRNT_NOTES$'Y'
|
|
FOR I := 1 TO LEN(PG_ARR)
|
|
IF MBODY_LEN < PG_ARR[I,2]
|
|
PG_ARR[I,2] --
|
|
ENDIF
|
|
NEXT
|
|
ENDIF
|
|
|
|
RETURN PG_ARR
|
|
***************************************************************
|
|
* FIND THE SPOT TO BREAK A PAGE CLEANLY!!!
|
|
***************************************************************
|
|
FUNCTION PAGEBRK(PBODY_ARR, PG_ARR, PG_NUM)
|
|
LOCAL LOOPSTRT := 0
|
|
LOCAL PG_BRK, I
|
|
IF EMPTY(PG_ARR) //** P3N - 8/20/99
|
|
LOOPSTRT := LEN(PBODY_ARR) //** P3N - 8/20/99
|
|
ELSE //** P3N - 8/20/99
|
|
FOR I := 1 TO LEN(PG_ARR) //** P3N - 8/20/99
|
|
LOOPSTRT := LOOPSTRT + PG_ARR[I,2] //** P3N - 8/20/99
|
|
NEXT //** P3N - 8/20/99
|
|
LOOPSTRT := LEN(PBODY_ARR) - LOOPSTRT //** P3N - 8/20/99
|
|
ENDIF //** P3N - 8/20/99
|
|
DO WHILE .T.
|
|
FOR I := LOOPSTRT TO 1 STEP -1
|
|
//** IF SUBS(PBODY_ARR[I], 1,1)$'^' //** P3N - 3/20/98
|
|
IF SUBS(PBODY_ARR[I], 1,1)$'^' .OR. ;
|
|
SUBS(PBODY_ARR[I], 1,1)$' '
|
|
PG_BRK := I - 1
|
|
EXIT
|
|
ENDIF
|
|
NEXT
|
|
IF PG_BRK > MBODY_LEN
|
|
LOOPSTRT := PG_BRK
|
|
LOOP
|
|
ELSE //** P3N - 8/20/99
|
|
PG_BRK := ( MBODY_LEN - LEN(SV_LI_DESC) ) //** NO CLEAN BREAK FOUND - BREAK BASED
|
|
EXIT //** ON MBODY_LEN FROM CONTROL FILE
|
|
ENDIF
|
|
ENDDO
|
|
RETURN PG_BRK
|
|
***************************************************************
|
|
* BLD A PAGE OF ORDER LINES FOR A GIVEN PRODUCT
|
|
***************************************************************
|
|
//**FUNCTION CNT_PAGE_LINES( STRT, PBODY_ARR ) //** P3N - 05/15/01
|
|
FUNCTION CNT_PAGE_LINES( STRT, PBODY_ARR, PTAIL_ARR) //** P3N - 05/15/01
|
|
LOCAL I, ENDLINE := 0, NEW_PROD, RET_ARR := {}
|
|
LOCAL INLOOP := .F., WORKVAR
|
|
LOCAL NOTE_LEN := 0 //** P3N - 05/15/01
|
|
IF EMPTY( (CUR_MAST)->NOTE_FIELD ) //** P3N - 05/15/01
|
|
ELSEIF (CUR_MAST)->PRNT_NOTES$'Y' //** P3N - 05/15/01
|
|
//** TAKE INTO ACCOUNT THE ORDER MASTER->NOTE_FIELD (UP TO 5 LINES OF 50 CHARS)
|
|
NOTE_LEN := INT (LEN(ALLTRIM( (CUR_MAST)->NOTE_FIELD) ) / 50 )
|
|
NOTE_LEN := NOTE_LEN + 1 + LEN(PTAIL_ARR) //** P3N - 05/15/01
|
|
ENDIF //** P3N - 05/15/01
|
|
LINE_CNTR := 0
|
|
DO WHILE .T.
|
|
THIS_PROD := CNT_PROD_LINES(STRT, PBODY_ARR )
|
|
|
|
// STORM COPY - ONLY ONE PRODUCT PER PAGE
|
|
IF SUBS( PBODY_ARR[STRT],2,1 ) = CHR(1)
|
|
WORKVAR := ENDLINE + THIS_PROD
|
|
IF WORKVAR < LEN(PBODY_ARR) .AND. SUBS( PBODY_ARR[WORKVAR + 1],2,1) = CHR(1)
|
|
ENDLINE := ENDLINE + THIS_PROD
|
|
RETURN ENDLINE
|
|
ELSEIF WORKVAR = LEN(PBODY_ARR) //** P3N - 4/8/98
|
|
IF EMPTY(ENDLINE) //** P3N - 4/9/98
|
|
RETURN THIS_PROD //** ONLY ONE STORM COPY - ONE PAGE!
|
|
ELSE
|
|
RETURN ENDLINE //** LAST ITEM ON STORM S/B ON OWN PAGE!
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//** IF ENDLINE + THIS_PROD <= MBODY_LEN //**P3N - 05/15/01
|
|
IF ENDLINE + THIS_PROD <= ( MBODY_LEN - NOTE_LEN ) //**P3N - 05/15/01
|
|
ENDLINE := ENDLINE + THIS_PROD
|
|
STRT := STRT + THIS_PROD
|
|
ELSE
|
|
IF ENDLINE > 0
|
|
RETURN ENDLINE
|
|
ELSE // IF ENDLINE IS ZERO THIS MEANS THE PRODUCT
|
|
// WON'T FIT ON THE PAGE ( > 36 LINES [BODYLINES] )
|
|
RETURN THIS_PROD
|
|
ENDIF
|
|
ENDIF
|
|
IF STRT > LEN(PBODY_ARR)
|
|
RETURN ENDLINE
|
|
ENDIF
|
|
ENDDO
|
|
*********************************************************************
|
|
* COUNT THE NUMBER OF LINES ON THE
|
|
*********************************************************************
|
|
FUNCTION CNT_PROD_LINES(STRT, PBODY_ARR)
|
|
LOCAL LAST_ROW := 1
|
|
STRT ++
|
|
DO WHILE STRT <= LEN(PBODY_ARR)
|
|
IF SUBS(PBODY_ARR[STRT], 1, 1 )$'^' //COUNT PRODUCT LINES
|
|
EXIT
|
|
ENDIF
|
|
IF SUBS(PBODY_ARR[STRT], 1, 2 )$'^'+CHR(1) //STORMPAGE EACH ITEM ON OWN PAGE
|
|
EXIT
|
|
ENDIF
|
|
LAST_ROW ++
|
|
STRT ++
|
|
ENDDO
|
|
RETURN LAST_ROW
|
|
*******************************************************************
|
|
* THIS FUNCTION WILL DETERMINE THE FORM TYPE USED FOR PRINTING
|
|
*******************************************************************
|
|
FUNCTION GET_FORMTYPE(WHCHORDER, WHICH_TYPE, SUBTYPE)
|
|
LOCAL RET_VAL := ' ', ORD_TYPE := WHCHORDER, PP_LOC := {'IOLA', 'LINDS', 'KC', 'PAWNEE' }
|
|
DO CASE
|
|
CASE SUBTYPE = 'PREBILL' .OR. SUBTYPE = 'PRECOST'
|
|
MLMAR := '' // DO NOT ADJUST THE LMAR/TMAR FOR FREE FORM PRT
|
|
MTMAR := 0 // FORCE TO '' / 0 RESPECTIVELY
|
|
RET_VAL := 'BLANK'
|
|
CASE SUBTYPE = 'DELIVERY' .AND. ;
|
|
ASCAN( PP_LOC, {|X| X = ALLTRIM(MHOME_LOC_CODE) } ) > 0
|
|
RET_VAL := 'PREPRINT-TRACTOR'
|
|
CASE ORD_TYPE = 'INV' .AND. CUR_MAST = 'ORD_MAST' ;
|
|
.AND. ASCAN( PP_LOC, {|X| X = ALLTRIM(MHOME_LOC_CODE) } ) > 0
|
|
RET_VAL := 'PREPRINT-TRACTOR' // NO EJECT MESSAGE
|
|
CASE ORD_TYPE == 'INV' .AND. CUR_MAST = 'ORD_MAST'
|
|
RET_VAL := 'PREPRINT'
|
|
CASE ORD_TYPE == 'BACKORD' .AND. CUR_MAST = 'ORD_MAST' ; //** P3N - 9/11/98
|
|
.AND. ASCAN( PP_LOC, {|X| X = ALLTRIM(MHOME_LOC_CODE) } ) > 0
|
|
RET_VAL := 'PREPRINT-TRACTOR'
|
|
OTHERWISE
|
|
MLMAR := '' // DO NOT ADJUST THE LMAR/TMAR FOR FREE FORM PRT
|
|
MTMAR := 0 // FORCE TO '' / 0 RESPECTIVELY
|
|
RET_VAL := 'BLANK'
|
|
ENDCASE
|
|
RETURN RET_VAL
|
|
*******************************************************************
|
|
* THIS FUNCTION WILL FORMAT THE MISC SIZE FOR PRINTING
|
|
*******************************************************************
|
|
FUNCTION FORMAT_MISCSIZE(P_SIZE)
|
|
LOCAL RETVAL, I
|
|
FOR I := 1 TO LEN(P_SIZE)
|
|
IF SUBST(P_SIZE,I,1)$'0123456789'
|
|
IF EMPTY(RETVAL)
|
|
RETVAL := SUBST(P_SIZE,I,1)
|
|
ELSE
|
|
RETVAL := RETVAL + SUBST(P_SIZE,I,1)
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
IF EMPTY(RETVAL) .OR. LEN(RETVAL) > 4
|
|
RETVAL := 'INV MISC SIZE'
|
|
ELSE
|
|
//** RETVAL := PADL(RETVAL, 4, ' ')
|
|
RETVAL := VAL(RETVAL)
|
|
ENDIF
|
|
|
|
RETURN RETVAL
|
|
*******************************************************************
|
|
//** P3N - 12/15/98
|
|
//** THIS FUNCTION WILL GET THE DEFUALT SOLICITATION NOTE
|
|
//** FROM THE CONTROL FILE (CGW0KA)
|
|
*******************************************************************
|
|
FUNCTION DEFAULTNOTE()
|
|
LOCAL SVSEL := SELECT(), RETNOTE := ' ', RETPOS := 0
|
|
DBOPEN('CONTROL')
|
|
IF FIELDPOS('INVNOTES') > 0
|
|
RETNOTE := CONTROL->INVNOTES
|
|
ENDIF
|
|
IF FIELDPOS('INVNOTEPOS') > 0
|
|
RETPOS := CONTROL->INVNOTEPOS
|
|
ENDIF
|
|
CLOSE CONTROL
|
|
SELECT(SVSEL)
|
|
RETURN {RETNOTE, RETPOS}
|
|
*******************************************************************
|
|
//** P3N - 1/15/99
|
|
//** THIS IS A POSTPROC FOR SCREEN 21350 - SELECTIVE SHIPPING
|
|
*******************************************************************
|
|
FUNCTION EDT_TMP_OST()
|
|
LOCAL SVREC := USERFILE2->(RECNO())
|
|
LOCAL RETVAL := .T.
|
|
USERFILE2->(DBGOTOP())
|
|
DO WHILE USERFILE2->(!EOF())
|
|
IF USERFILE2->(FIELDPOS('SHIP_DATE') ) > 0 //** P3N - 01/15/02
|
|
IF DUPOSTDATE(USERFILE2->SHIP_DATE, 'SHIP')
|
|
ERR_BOX('** Can NOT have the Same SHIP date on TWO shipment transactions! **')
|
|
RETVAL := .F.
|
|
EXIT
|
|
ENDIF
|
|
ELSEIF USERFILE2->(FIELDPOS('COMPL_DATE') ) > 0 //** P3N - 01/15/02
|
|
IF DUPOSTDATE(USERFILE2->COMPL_DATE, 'COMPL')
|
|
ERR_BOX('** Can NOT have the Same COMPLETION date on TWO production Transactions! **')
|
|
RETVAL := .F.
|
|
EXIT
|
|
ENDIF
|
|
ENDIF //** P3N - 01/15/02
|
|
USERFILE2->(DBSKIP(+1))
|
|
ENDDO
|
|
USERFILE2->(DBGOTO(SVREC))
|
|
RETURN RETVAL
|
|
*******************************************************************
|
|
//** P3N - 1/15/99
|
|
//** THIS FUNCTION WILL ENSURE THERE ARE NO DUPLICATE ORD_SHIP TRANS.
|
|
*******************************************************************
|
|
FUNCTION DUPOSTDATE(CHKDATE, WHATDATE)
|
|
LOCAL SVREC := USERFILE2->(RECNO())
|
|
LOCAL RETVAL := .F. , CNTR := 0
|
|
USERFILE2->(DBGOTOP())
|
|
DO WHILE USERFILE2->(!EOF())
|
|
IF WHATDATE == 'SHIP' //** P3N - 01/15/02
|
|
IF USERFILE2->SHIP_DATE == CHKDATE
|
|
CNTR := CNTR + 1
|
|
ENDIF
|
|
ELSEIF WHATDATE == 'COMPL' //** P3N - 01/15/02
|
|
IF USERFILE2->COMPL_DATE == CHKDATE
|
|
CNTR := CNTR + 1
|
|
ENDIF
|
|
ENDIF
|
|
USERFILE2->(DBSKIP(+1))
|
|
ENDDO
|
|
USERFILE2->(DBGOTO(SVREC))
|
|
IF CNTR > 1
|
|
RETVAL := .T.
|
|
ENDIF
|
|
RETURN RETVAL
|
|
*****************************************************************
|
|
* THIS FUNCTION IS INITIATED FROM THE IMPORT CUST VALID_FUNC FOR*
|
|
* THE FIELD PRNT_ID IN THE CGW0CS DATABASE. *
|
|
*****************************************************************
|
|
FUNCTION VALID_CS_PRNT_ID() //** P3N - 4/07/99
|
|
LOCAL WKFLD := PRNT_ID, RETVAL := .F.
|
|
IF WKFLD$' YNS'
|
|
RETVAL := .T.
|
|
ELSEIF AT('?',WKFLD) > 0
|
|
ERR_BOX(' Valid Print ID(PID) values:', ;
|
|
' " " - Do NOT Print Extra(line) Description on Production', ;
|
|
' "N" - Do NOT Print Extra(line) Description on Production', ;
|
|
' "Y" - Print Extra(line) Description on Production Glass/Screen', ;
|
|
' "S" - Print Column Format on Production Storm (ie: C200007)')
|
|
ELSE
|
|
ERR_BOX('** Invalid Print ID (PID) - "'+ WKFLD + '" **', ;
|
|
' ','Valid Values Are: " ", "Y", "N" or "S" ', ;
|
|
' ','Key a "?" for more information. ')
|
|
ENDIF
|
|
RETURN RETVAL
|
|
|