COMPILE SUBROUTINE Print_WO( WONo, Confirmation )

DECLARE FUNCTION Set_Printer, Get_Printer, Msg, Printer_Select, obj_Install

$INSERT OIPRINT_EQUATES
$INSERT MSG_EQUATES

$INSERT WO_LOG_EQUATES
$INSERT WO_STEP_EQUATES
$INSERT WO_MAT_EQUATES
$INSERT COMPANY_EQUATES
$INSERT EPI_PART_EQUATES
$INSERT PROD_VER_EQUATES
$INSERT APPCOLORS
$INSERT COC_EQUATES

EQU PI$LEFT		TO 1
EQU PI$TOP		TO 2
EQU PI$RIGHT	TO 3
EQU PI$BOTTOM	TO 4
EQU PI$WIDTH	TO 5
EQU PI$HEIGHT	TO 6
EQU PI$SIZE		TO 7


IF NOT(ASSIGNED(WONo)) THEN RETURN
IF NOT(ASSIGNED(Confirmation)) THEN Confirmation = ''

* * *   PRINT SETUP   * * *

FileName = "Printing"
FileName<2>	= ''
FileName<3> = 0
FileName<4> = ''

PrintTitle = "Work Order"
PrintTitle<2>	= "WO Preview"
PrintTitle<3>	= "&Cancel"
PrintTitle<4>	= ''
PrintTitle<5>	= ''

PageInfo			= ''
PageInfo<PI$LEFT>	= 0.25		;* Margins
PageInfo<PI$TOP>	= 1.35
PageInfo<PI$RIGHT>	= 0.25
PageInfo<PI$BOTTOM>	= 0.50

PageSetup	= 1					;* 1 = Landscape mode

PrintSetup	= ''
PrintSetup<1,1>	= '2'	;* Preview Normal
PrintSetup<1,2> = '5'	;* Display all buttons except Printer Setup
PrintSetup<1,3>	= '0'	;* Display Printing Window
PrintSetup<1,6> = '7'	;* Preview window - keyboard and mouse support

stat = Set_Printer("INIT",FileName,PrintTitle,PageInfo,PageSetup,PrintSetup)

font = 'Arial'		;* Font basics
font<2> = 10
font<4> = 0

stat = Set_Printer('FONTHEADFOOT', font)

stat = Set_Printer('FOOTER',"Page 'P' ":@VM:@VM:"'T' 'D'")

stat = Set_Printer('LINESTYLE', PS_SOLID:@FM:2)
stat = Set_Printer('LINE', -0.1:@FM:-1.2:@FM:10.50:@FM:-1.2, 1)
stat = Set_Printer('LINE', -0.1:@FM:-0.1:@FM:10.50:@FM:-0.1, 1)
 
location = -.15:@fm:-1.150:@fm:1.57:@fm:1
stat = Set_Printer('BMP',obj_Install('Get_Prop','ColorBMP'),location, 0,1)


* * * *  Added 10/8/2015 JCH - Updated 'CONFIG','COMPANY'  * * * *

InstDat		= obj_Install('Get_Prop','Company':@FM:'Division')
Company		= InstDat<1>
Division	= InstDat<2>
	
font	= 'Arial'
font<2>	= '12'		;* Big type
font<4>	= 1			;* Bold on
font<5> = 0			;* Italics

stat = Set_Printer('TEXTXY',Company,5.7:@FM:-1.15,font,1)
stat = Set_Printer('TEXTXY',Division,5.7:@FM:-0.970,font,1)

font<2> = 10	;* 10 point font
font<4> = 0		;* Bold off
font<5> = 0		;* Italics Off

stat = Set_Printer('TEXTXY',obj_Install('Get_Prop','Address'), 5.7:@fm:-0.775, font,1)
stat = Set_Printer('TEXTXY',obj_Install('Get_Prop','CSZC'), 5.7:@fm:-0.625, font,1)
stat = Set_Printer('TEXTXY','Tel:      ':obj_Install('Get_Prop','Phone'), 5.7:@fm:-0.475, font, 1)
stat = Set_Printer('TEXTXY','FAX:    ':obj_Install('Get_Prop','FAX'), 5.7:@fm:-0.325, font, 1)

* * * *  End of changes 10/8/2015 JCH  * * * *


stat = Set_Printer('TEXTXY','WO No: ':WONo,4.25:@FM:-0.325,font,1)

font<2>	= '18'		;* Big type
font<4>	= 1			;* Bold on
font<5> = 1			;* Italics

IF Confirmation THEN
	stat = Set_Printer('TEXTXY','Confirmation of Work Order',3.0:@FM:-0.8,font,1)
END ELSE
	stat = Set_Printer('TEXTXY','Work Order',4.00:@FM:-0.8,font,1)
END

WORec = XLATE('WO_LOG',WONo,'','X')

* Received from SAP

ProdOrderNo		= WORec<WO_LOG_PROD_ORD_NO$>
CustPONo		= WORec<WO_LOG_CUST_PO_NO$>
PromiseShipDt	= WORec<WO_LOG_PROMISE_SHIP_DT$>
EpiPartNo		= WORec<WO_LOG_EPI_PART_NO$>
OrdSubPartNo	= WORec<WO_LOG_ORD_SUB_PART_NO$>
OrdSubPartRev	= WORec<WO_LOG_ORD_SUB_PART_REV$>
SAPOrdQty		= WORec<WO_LOG_SAP_ORD_QTY$>

* Customer notification and routing 

ProdVerNo		= WORec<WO_LOG_PROD_VER_NO$>
CustPartNo		= WORec<WO_LOG_CUST_PART_NO$>
CustPartInbound	= WORec<WO_LOG_CUST_PART_INBOUND$>
CustSubPartNo	= WORec<WO_LOG_CUST_SUB_PART_NO$>
CustSubMfr		= WORec<WO_LOG_CUST_SUB_MFR$>
CustLotNos		= WORec<WO_LOG_CUST_LOT_NO$>
CustLotQtys		= WORec<WO_LOG_CUST_LOT_QTY$>
WOCustNo		= WORec<WO_LOG_CUST_NO$>


ShipToCustNo	= WOCustNo
BillToCustNo	= XLATE('COMPANY',ShipToCustNo,COMPANY_BILL_TO_CUST_NO$,'X')

CustShipToInfo	= XLATE('COMPANY',ShipToCustNo,'SHIP_TO_INFO','X')

IF BillToCustNo = '' THEN
	CustBillToInfo	= XLATE('COMPANY',ShipToCustNo,'BILL_TO_INFO','X')
END ELSE
	CustBillToInfo	= XLATE('COMPANY',BillToCustNo,'BILL_TO_INFO','X')
END



SWAP @VM WITH CRLF$ IN CustBillToInfo
SWAP @VM WITH CRLF$ IN CustShipToInfo

SWAP @VM WITH CRLF$ IN CustLotNos
SWAP @VM WITH CRLF$ IN CustLotQtys


WODetail = ''

FirstWOMatKey = WORec<WO_LOG_WO_MAT_KEY$,1>

FirstWOMatRec = XLATE('WO_MAT',FirstWOMatKey,'','X')

RxDTM	= FirstWOMatRec<WO_MAT_RX_DTM$>
RelDTM	= FirstWOMatRec<WO_MAT_REL_DTM$>
	
WOStepKeys	= WORec<WO_LOG_WO_STEP_KEY$>

WODetail<1,1> = OCONV(RxDTM,'DT2/^HS')
WODetail<1,2> = OCONV(RelDTM,'DT2/^HS')

FOR N = 1 TO COUNT(WOStepKeys,@VM) + (WOStepKeys NE '')

	WOStepKey = WOStepKeys<1,N>
	WOStepRec = XLATE('WO_STEP',WOStepKey,'','X')
	
	StepNo = FIELD(WOStepKey,'*',2)
	
	StepPSN		= WOStepRec<WO_STEP_PROD_SPEC_ID$>
	StepDesc	= WOStepRec<WO_STEP_PROC_STEP_DESC$>
	WODetail<1,3,N> = StepNo
	WODetail<1,4,N> = StepPSN
	WODetail<1,5,N> = StepDesc
	
NEXT N


SWAP @SVM WITH CRLF$ IN WODetail

colHeader = 'WO No'						; colFormat = '^1800'
colHeader<1,2> = 'Prod Order No'		; colFormat<1,2> = '^1800'
colHeader<1,3> = 'Cust PO No'			; colFormat<1,3> = '^1800'
colHeader<1,4> = 'Ship Date'			; colFormat<1,4> = '^1800'
colHeader<1,5> = 'Epi Part No'			; colFormat<1,5> = '^1800'
colHeader<1,6> = 'Sub Part No'			; colFormat<1,6> = '^1800'
colHeader<1,7> = 'Sub Part Rev'			; colFormat<1,7> = '^1800'
colHeader<1,8> = 'SAP Ord Qty'			; colFormat<1,8> = '^1800'


colData = WONo
colData<1,2> = ProdOrderNo
colData<1,3> = CustPONo
colData<1,4> = OCONV(PromiseShipDt,'D4/')
colData<1,5> = EpiPartNo
colData<1,6> = OrdSubPartNo
colData<1,7> = OrdSubPartRev
colData<1,8> = SAPOrdQty


font = 'Arial'		;* Font basics
font<2> = 8
font<4> = 0


TableFormat		= TB_ALL
HeaderFormat	= TB_ALL
TablePos		= 'L'
HdrShade		= LTGREY$
PrintHeads		= 1
BoldHeader		= 0
ULHeader		= 0
ItalicHeader	= 0
PrintHeads		= 1

* Basic Order Information


GOSUB PrintTable

stat = Set_Printer('TEXT')


* Bill to and Ship to Information *

colHeader = 'Bill To'					; colFormat = '<5400'
colHeader<1,2> = 'Ship To'				; colFormat<1,2> = '<5400'

colData = CustBillToInfo
colData<1,2> = CustShipToInfo

PrintHeads = 1
GOSUB PrintTable

stat = Set_Printer('TEXT')
stat = Set_Printer('TEXT')

* Order Detail Information *

colHeader = 'Prod Ver No'					; colFormat = '^1080'
colHeader<1,2> = 'Description'				; colFormat<1,2> = '<2700'
colHeader<1,3> = 'Cust Part No'				; colFormat<1,3> = '^1800'
colHeader<1,4> = 'Cust Part Inbound'		; colFormat<1,4> = '^1800'
colHeader<1,5> = 'Cust Sub Part No'			; colFormat<1,5> = '^1800'
colHeader<1,6> = 'Cust Sub Mfr'				; colFormat<1,6> = '^1800'
colHeader<1,7> = 'Lot No'					; colFormat<1,7> = '^1800'
colHeader<1,8> = 'Lot Qty'					; colFormat<1,8> = '>720'


Desc = XLATE('PROD_VER',ProdVerNo,PROD_VER_DESC$,'X')

IF Desc = '' THEN
	Desc = XLATE('EPI_PART',EpiPartNo,EPI_PART_EPI_PART_DESC$,'X')
END

colData = ProdVerNo
colData<1,2> = Desc
colData<1,3> = CustPartNo
colData<1,4> = CustPartInbound
colData<1,5> = CustSubPartNo
colData<1,6> = CustSubMfr
colData<1,7> = CustLotNos
colData<1,8> = CustLotQtys

fontSpacing = 120

PrintHeads = 1
GOSUB PrintTable

stat = Set_Printer('TEXT')
stat = Set_Printer('TEXT')


* * * * * *  Print Work Order Detail  * * * * * *


colHeader = 'Received'						; colFormat = '<2160'
colHeader<1,2> = 'Released'					; colFormat<1,2> = '<2160'
colHeader<1,3> = 'WO Step'					; colFormat<1,3> = '^720'
colHeader<1,4> = 'Step PSN'					; colFormat<1,4> = '^1080'
colHeader<1,5> = 'Step Description'			; colFormat<1,5> = '<2440'

* Customer notification and routing 


colData = WODetail

fontSpacing = 120
TableFormat = TB_ALL

PrintHeads = 1
GOSUB PrintTable


Void = Set_Printer('TERM')


RETURN



* * * * * *
PrintTable:
* * * * * * 

FOR I = 1 TO COUNT(colData,@FM) + (colData NE '')
	stat = Set_Printer('CALCTABLE',colFormat:@FM:colData<I>)
	TableSize = Get_Printer('CALCTABLE')
	TableHeight = TableSize<2>
	YPos = Get_Printer('POS')<2>
	IF YPos + TableHeight > 9.0 THEN 
		
		FirstLine = 0
		stat = Set_Printer('PAGEBREAK')
		font<2> = 8
		
		IF BoldHeader	THEN font<4> = 1 ELSE font<4> = 0
		IF ULHeader		THEN font<6> = 1 ELSE font<6> = 0
		IF ItalicHeader THEN font<5> = 1 ELSE font<5> = 0
		
		stat = Set_Printer('FONT',font,'100')
		
		IF HeaderFormat = '' THEN HeaderFormat = TableFormat
		
		stat = Set_Printer('ADDTABLE',colFormat,colHeader,'',HdrShade,'',0,HeaderFormat:@FM:TablePos)
		
		font<4> = 0
		font<5> = 0
		font<6> = 0
		stat = Set_Printer('FONT',font,fontSpacing)
		
		stat = Set_Printer('ADDTABLE',colFormat,'',colData<I>,HdrShade,'',0,TableFormat:@FM:TablePos)
		
	END ELSE
		
		IF PrintHeads THEN
			IF BoldHeader	THEN font<4> = 1 ELSE font<4> = 0
			IF ULHeader		THEN font<6> = 1 ELSE font<6> = 0
			IF ItalicHeader THEN font<5> = 1 ELSE font<5> = 0
			stat = Set_Printer('FONT',font,'100')
			
			IF HeaderFormat = '' THEN HeaderFormat = TableFormat
		
			stat = Set_Printer('ADDTABLE',colFormat,colHeader,'',HdrShade,'',0,HeaderFormat:@FM:TablePos)
			PrintHeads = 0
	
		END
	
		font<2> = 8
		font<4> = 0
		font<5> = 0
		font<6> = 0
		stat = Set_Printer('FONT',font,fontSpacing)
		stat = Set_Printer('ADDTABLE',colFormat,'',colData<I>,HdrShade,'',1,TableFormat:@FM:TablePos)
	
	END
	
NEXT I
							
RETURN


