358 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			358 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| COMPILE SUBROUTINE Print_Packing_Slip( CocIds, PrintPath, PDFileName ,PrinterInitialized)
 | |
| 
 | |
| DECLARE FUNCTION set_printer, get_printer, msg, fieldcount, Printer_Select, obj_Install
 | |
| DECLARE SUBROUTINE security_err_msg
 | |
| 
 | |
| $INSERT SECURITY_RIGHTS_EQU
 | |
| $INSERT OIPRINT_EQUATES
 | |
| $INSERT MSG_EQUATES
 | |
| $INSERT QUOTE_EQU
 | |
| $INSERT QUOTE_SPEC_EQU
 | |
| $INSERT PROD_SPEC_EQU
 | |
| $INSERT ORDER_EQU
 | |
| $INSERT COC_EQU
 | |
| $INSERT APPCOLORS
 | |
| 
 | |
| 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(PrintPath))				THEN PrintPath = ''
 | |
| IF NOT(ASSIGNED(PDFFileName))			THEN PDFFileName = ''
 | |
| IF NOT(ASSIGNED(PrinterInitialized))	THEN PrinterInitialized = 0
 | |
| 
 | |
| IF NOT(PrinterInitialized) THEN
 | |
|    
 | |
| 	* * *   PRINT SETUP   * * *
 | |
| 	
 | |
| 	PageInfo	= ''
 | |
| 	PageInfo<PI$LEFT>	= '0.5'
 | |
| 	PageInfo<PI$TOP>	= '1.35'
 | |
| 	PageInfo<PI$RIGHT>	= '0.5'
 | |
| 	PageInfo<PI$BOTTOM>	= '0.25'
 | |
| 	
 | |
| 	PageSetup	= 0				;* 0 = Portrait, 1 = Landscape mode
 | |
| 	
 | |
| 	PrintSetup	= ''
 | |
| 	PrintSetup<1,1>	= '2'	;* Specific Location
 | |
| 	PrintSetup<1,2> = '5'	;* Show Print and PDF, hide Print Setup
 | |
| 	PrintSetup<1,3>	= '0'	;* Show the printing window
 | |
| 	PDFParms = 'Printing PDF Document':@FM: '' :@FM: 6 :@FM: ''
 | |
| 			
 | |
| 	stat = Set_Printer( 'INIT', PDFParms, 'Packing Slip',PageInfo,PageSetup , PrintSetup)
 | |
| 	
 | |
| 	
 | |
| END ELSE
 | |
| 	stat = Set_Printer('PAGEBREAK')
 | |
| END
 | |
| 	
 | |
| IF NOT(PrinterInitialized) THEN
 | |
| 	   
 | |
| 	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:7.5:@FM:-1.2, 1)
 | |
| 	stat = Set_Printer('LINE', -0.1:@FM:-0.1:@FM:7.5:@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)
 | |
| 
 | |
| 	font<2> = 12	;* Drop the font size
 | |
| 	font<4> = 1		;* Bold on
 | |
| 	font<5> = 0		;* Italics off
 | |
| 	
 | |
| 	stat = Set_Printer('TEXTXY',obj_Install('Get_Prop','Company'),5.5:@FM:-1.15,font,1)
 | |
| 
 | |
| 	font<2> = 10	;* 12 point font
 | |
| 	font<4> = 0		;* Bold off
 | |
| 	font<5> = 0		;* Italics Off
 | |
| 
 | |
| 	stat = Set_Printer('TEXTXY',obj_Install('Get_Prop','Address'),5.5:@fm:-0.925,font,1)
 | |
| 	stat = Set_Printer('TEXTXY',obj_Install('Get_Prop','CSZC'),5.5:@fm:-0.775,font,1)
 | |
| 	stat = Set_Printer('TEXTXY','Phone:  ':obj_Install('Get_Prop','Phone'),5.5:@fm:-0.625,font,1)
 | |
| 	stat = Set_Printer('TEXTXY','FAX:    ':obj_Install('Get_Prop','FAX'),5.5:@fm:-0.475,font,1)
 | |
| 	stat = Set_Printer('TEXTXY','Web:    ':obj_Install('Get_Prop','WebSite'),5.5:@fm:-0.325,font,1)
 | |
| END
 | |
| 
 | |
| 
 | |
| 
 | |
| CCnt = fieldcount( CocIds, @fm )
 | |
| 
 | |
| FOR I = 1 TO CCnt
 | |
|    ThisCOC = CocIds<i>
 | |
|    ThisCOCRec = xlate( 'COC', ThisCOC, '', 'X' )
 | |
|    
 | |
|    ThisOrder 	= ThisCOCRec<coc_order_no$,I> 
 | |
|                                         
 | |
|    ThisOrderRec = xlate( 'ORDER', ThisOrder, '', 'X' ) 
 | |
|    QuoteIDs     = ThisOrderRec<order_quote_ids$>
 | |
|    PSNIDs       = ThisOrderRec<order_prod_spec_ids$>
 | |
|    BillToAttn   = ThisOrderRec<order_bill_to_attn$>
 | |
|    BillToAddr   = ThisOrderRec<order_bill_to_address$>
 | |
|    BillToCity   = ThisOrderRec<order_bill_to_city$>
 | |
|    BillToState  = ThisOrderRec<order_bill_to_state$>
 | |
|    BillToZip    = ThisOrderRec<order_bill_to_zip$>
 | |
|    BillToCo     = ThisOrderRec<order_bill_to_company$>
 | |
|    ShipToAttn   = ThisOrderRec<order_ship_to_attn$>
 | |
|    ShipToAddr   = ThisOrderRec<order_ship_to_address$>
 | |
|    ShipToCity   = ThisOrderRec<order_ship_to_city$>
 | |
|    ShipToState  = ThisOrderRec<order_ship_to_state$>
 | |
|    ShipToZip    = ThisOrderRec<order_ship_to_zip$>
 | |
|    ShipToCo     = ThisOrderRec<order_ship_to_company$>
 | |
|    
 | |
| 	BillToData  = BillToAttn:CRLF$
 | |
| 	BillToData := BillToCo:CRLF$
 | |
| 
 | |
| 	SWAP @VM WITH CRLF$ IN BillToAddr
 | |
| 
 | |
| 	BillToData := BillToAddr :CRLF$  
 | |
| 	BillToData := BillToCity:', ':BillToState:' ':OCONV(BillToZip,'[ZIP_FORMAT]')
 | |
| 
 | |
| 	ShipToData  = ShipToAttn:CRLF$
 | |
| 	ShipToData := ShiptoCo:CRLF$
 | |
| 	
 | |
| 	SWAP @VM WITH CRLF$ IN ShipToAddr
 | |
| 	
 | |
| 	ShipToData := ShipToAddr:CRLF$
 | |
| 	ShipToData := ShipToCity:', ':ShipToState:' ':OCONV(ShipToZip,'[ZIP_FORMAT]')
 | |
| 	
 | |
|    stat = set_printer( 'TEXTXY', Today, 6.38:@fm:.7, Hf, 0 )
 | |
|    
 | |
| 
 | |
|    Today        = oconv( date(), 'D2/' )
 | |
|    ShipVia      = ThisOrderRec<order_ship_via$>
 | |
|    Terms        = ThisOrderRec<order_terms$>
 | |
|    PO           = ThisOrderRec<order_po$>
 | |
|    WaferQtys    = ThisCOCRec<coc_wafer_qty$>
 | |
|    TotalShipQty = sum( WaferQtys )
 | |
|    CustNo       = ThisCOCRec<coc_cust_no$>                                             
 | |
|    OrderLines   = ThisCOCRec<coc_order_line$>
 | |
|    WO           = ThisCOCRec<coc_wo$>
 | |
|    PartNumbers  = ThisCOCRec<coc_part_num$>
 | |
|    LotNumbers   = ThisCOCRec<coc_lot_num$>
 | |
|    OrderNumbers = ThisCOCRec<coc_order_no$>
 | |
|    
 | |
|    OLCnt = fieldcount( OrderLines, @vm )
 | |
|    QuoteIDsToUse = ''
 | |
|    for j = 1 to OLCnt
 | |
|       QuoteIDsToUse<1,-1> = QuoteIDs<1,OrderLines<1,j>>
 | |
|    next j
 | |
|    
 | |
|    
 | |
|    PSNToUse = PSNIDs<1,OrderLines<1,1>> ;* TAKE THE FIRST PSN
 | |
|    TSub  = xlate( 'PROD_SPEC', PSNToUse, prod_spec_spec_substrate$, 'X' )
 | |
|    WSize = TSub<1,QSSubWafersize$>
 | |
| 
 | |
| 	* Print the title line
 | |
|  
 | |
| 	font	= 'Arial'
 | |
| 	font<2>	= '18'		;* Big type
 | |
| 	font<4>	= 1			;* Bold on
 | |
| 	font<5> = 1			;* Italics
 | |
| 	stat = Set_Printer('TEXTXY','Packing Slip',2.9:@FM:-0.80,font,0)
 | |
|  
 | |
| 
 | |
| 	font<2> = 12
 | |
| 	font<4> = 0		;* Bold off
 | |
| 	font<5> = 0		;* Italics off
 | |
| 	stat = set_printer( 'FONT', font )
 | |
| 	
 | |
| 	stat = Set_Printer('TEXTXY','Ship Date: ':OCONV(Date(),'D4/'),0.0:@FM:0.4,0,0)
 | |
| 	
 | |
| 	bcFont = ''
 | |
| 	bcFont<1> = '3 of 9 Barcode'
 | |
| 	bcFont<2> = '24'
 | |
| 	bcFont<3> = 'R'
 | |
| 	bcFont<4> = '0'
 | |
| 
 | |
| 	stat = Set_Printer('TEXTXY','*':'2S':'V':ThisCOC:'*',4.00:@FM:.10,bcFont,0)	;* Added JCH
 | |
| 
 | |
| 	font<2> = 12	;* 12 points
 | |
| 	font<4> = 1		;* Bold On
 | |
| 	stat = Set_Printer('TEXTXY', 'Packing List - V':ThisCOC, 4.0:@fm:-.1, font, 0 )
 | |
| 	stat = Set_Printer('TEXTXY','SID (2S) V':ThisCOC,4:@FM:.35,font,0)
 | |
| 	
 | |
| 	stat = Set_Printer("POS", 0:@FM:.60)
 | |
| 
 | |
| 	
 | |
| 	* Bill to and Ship to information	
 | |
| 	
 | |
| 	colFormat = '>1080'
 | |
| 	colFormat<1,2> = '<4700'
 | |
| 	colFormat<1,3> = '>1080'
 | |
| 	colFormat<1,4> = '<3620'
 | |
| 	
 | |
| 	colData = 'Bill To:'
 | |
| 	colData<1,2> = BillToData
 | |
| 	colData<1,3> = 'Ship To:'
 | |
| 	colData<1,4> = ShipToData
 | |
| 	
 | |
| 	font<2> = 10
 | |
| 	font<4> = 0
 | |
| 	stat = Set_Printer('FONT',font)
 | |
| 	
 | |
| 	stat = Set_Printer('ADDTABLE',colFormat,'',colData,LTGREY$,'',1,3)
 | |
| 	
 | |
| 	stat = Set_Printer('TEXT')
 | |
| 	
 | |
| 	* Shipment Information
 | |
| 	
 | |
| 	colHeader = 'Customer No'			; colFormat = '^1440'
 | |
| 	colHeader<1,2> = 'Ship Date'		; colFormat<1,2> = '^1440'
 | |
| 	colHeader<1,3> = 'Ship Via'			; colFormat<1,3> = '^2880'
 | |
| 	colHeader<1,4> = 'Terms'			; colFormat<1,4> = '^2160'
 | |
| 	colHeader<1,5> = 'PO Number'		; colFormat<1,5> = '^2880'
 | |
| 
 | |
| 	colData = CustNo
 | |
| 	colData<1,2> = OCONV(Date(),'D4/')
 | |
| 	colData<1,3> = ShipVia
 | |
| 	colData<1,4> = Terms
 | |
| 	colData<1,5> = PO
 | |
| 
 | |
| 	font<2> = 10
 | |
| 	font<4> = 1		;* Bold
 | |
| 	stat = Set_Printer('FONT',font)
 | |
| 	
 | |
| 	stat = Set_Printer('ADDTABLE', colFormat,colHeader,'',LTGREY$,'',0,6)
 | |
| 	
 | |
| 	font<2> = 10
 | |
| 	font<4> = 0
 | |
| 	stat = Set_Printer('FONT',font)
 | |
| 	
 | |
| 	stat = Set_Printer('ADDTABLE',colFormat,'',colData,LTGREY$,'',1,6)
 | |
| 
 | |
| 	stat = Set_Printer('TEXT')
 | |
| 	
 | |
| 	* Order detail
 | |
| 
 | |
| 	colHeader = 'Quantity'					; colFormat = '^1440'
 | |
| 	colHeader<1,2> = 'Item'					; colFormat<1,2> = '^1440'
 | |
| 	colHeader<1,3> = 'WO No'				; colFormat<1,3> = '^1440'
 | |
| 	colHeader<1,4> = 'Part No'				; colFormat<1,4> = '^2160'
 | |
| 	colHeader<1,5> = 'Lot No':CRLF$:WSize	; colFormat<1,5> = '^2880'
 | |
| 	colHeader<1,6> = 'Quote No'				; colFormat<1,6> = '^1440'
 | |
| 		
 | |
| 	ShipDetail = ''
 | |
| 	FOR D = 1 TO COUNT(WaferQtys,@VM) + (WaferQtys NE '')
 | |
| 		ShipDetail<D,1> = WaferQtys<1,D>
 | |
| 		ShipDetail<D,2> = OrderLines<1,D>
 | |
| 		ShipDetail<D,3> = WO<1,1>
 | |
| 		ShipDetail<D,4> = PartNumbers<1,D>
 | |
| 		ShipDetail<D,5> = LotNumbers<1,D>
 | |
| 		ShipDetail<D,6> = QuoteIDSToUse<1,D>
 | |
| 	NEXT D
 | |
| 
 | |
| 	font<2> = 10
 | |
| 	font<4> = 1		;* Bold
 | |
| 	stat = Set_Printer('FONT',font)
 | |
| 	
 | |
| 	stat = Set_Printer('ADDTABLE', colFormat,colHeader,'',LTGREY$,'',0,6)
 | |
| 	
 | |
| 	font<2> = 10
 | |
| 	font<4> = 0		;* Bold
 | |
| 	stat = Set_Printer('FONT',font)
 | |
| 	
 | |
| 	FOR J = 1 TO COUNT(WaferQtys,@VM) + (WaferQtys NE '')
 | |
| 		stat = Set_Printer('CALCTABLE',colFormat:@FM:ShipDetail<J>)
 | |
| 		TableSize = Get_Printer('CALCTABLE')
 | |
| 		TableHeight = TableSize<2>
 | |
| 		IF Get_Printer('POS')<2> + TableHeight > 6.75 THEN
 | |
| 			stat = Set_Printer('PAGEBREAK')
 | |
| 			
 | |
| 			font	= 'Arial'
 | |
| 			font<2>	= '18'		;* Big type
 | |
| 			font<4>	= 1			;* Bold on
 | |
| 			font<5> = 1			;* Italics
 | |
| 			stat = Set_Printer('TEXTXY','Packing Slip',2.3:@FM:-0.80,font,0)
 | |
| 			stat = Set_Printer('ADDTABLE',colFormat,colHeader,ShipDetail<J>,LTGREY$,'',0,7)
 | |
| 		END ELSE
 | |
| 			stat = Set_Printer('ADDTABLE',colFormat,'',ShipDetail<J>,LTGREY$,'',1,7)
 | |
| 		END		
 | |
| 	
 | |
| 	NEXT J
 | |
| 	
 | |
| 	stat = Set_Printer('TEXT')
 | |
| 	stat = Set_Printer('TEXT')
 | |
| 		
 | |
| 	* Notes	
 | |
| 	
 | |
| 	colHeader = 'Notes:'	; colFormat = '<10840'
 | |
| 	
 | |
| 	colData = xlate( 'ORDER', OrderNumbers<1,1>, order_invoice_notes$, 'X' )
 | |
| 	SWAP @TM WITH CRLF$ IN colData
 | |
| 	IF colData NE '' THEN
 | |
| 		stat = Set_Printer('CALCTABLE',colFormat:@FM:ShipDetail<J>)
 | |
| 		TableSize = Get_Printer('CALCTABLE')
 | |
| 		TableHeight = TableSize<2>
 | |
| 		IF Get_Printer('POS')<2> + TableHeight > 6.75 THEN
 | |
| 			stat = Set_Printer('PAGEBREAK')
 | |
| 			
 | |
| 			font	= 'Arial'
 | |
| 			font<2>	= '18'		;* Big type
 | |
| 			font<4>	= 1			;* Bold on
 | |
| 			font<5> = 1			;* Italics
 | |
| 			stat = Set_Printer('TEXTXY','Packing Slip',2.3:@FM:-0.80,font,0)
 | |
| 			
 | |
| 		END
 | |
| 
 | |
| 		font<2> = 10
 | |
| 		font<4> = 1		;* Bold
 | |
| 		stat = Set_Printer('FONT',font)
 | |
| 		
 | |
| 		stat = Set_Printer('ADDTABLE', colFormat,colHeader,'',LTGREY$,'',0,6)
 | |
| 		
 | |
| 		font<2> = 10
 | |
| 		font<4> = 0
 | |
| 		stat = Set_Printer('FONT',font)
 | |
| 		
 | |
| 		stat = Set_Printer('ADDTABLE',colFormat,'',colData,LTGREY$,'',1,6)
 | |
| 	END 	;* End of check for notes
 | |
| 	
 | |
| 	* Check boxes at bottom of the sheet
 | |
| 	
 | |
| 	colFormat = '<+2160'
 | |
| 	colFormat<1,2> = '<+2160'
 | |
| 	colFormat<1,3> = '<+2160'
 | |
| 	colFormat<1,4> = '<+2160'
 | |
| 	colFormat<1,5> = '<+2160'
 | |
| 	
 | |
| 	colData<1> = 'Date Shipped:':@VM:'Checked By:':@VM:'Packed By:':@VM:'Total Pieces:':@VM:'Total Weight':CRLF$
 | |
| 	colData<2> = 'Box 1:':@VM:'Box 2':@VM:'Box 3':@VM:'Box 4':@VM:'Box 5':CRLF$
 | |
| 	colData<3> = 'Box 6:':@VM:'Box 7':@VM:'Box 8':@VM:'Box 9':@VM:'Box 10':CRLF$
 | |
| 	
 | |
| 	SWAP @VM WITH CRLF$:@VM IN colData
 | |
| 	
 | |
| 	stat = Set_Printer('POS',0:@FM:'8.1')
 | |
| 	
 | |
| 	font<2> = 8
 | |
| 	stat = Set_Printer('FONT',font)
 | |
| 	
 | |
| 	stat = Set_Printer("ADDTABLE", colFormat, '', colData, '', '', 1, TB_ALL)
 | |
| 	
 | |
| 	* Order totals at bottom of the page
 | |
| 	
 | |
| 	font<2> = 10
 | |
| 	stat = Set_Printer('FONT',font)
 | |
| 	
 | |
| 	stat = set_printer('TEXTXY', 'Total Qty Shipped:':fmt( TotalShipQty, 'R#7' ), 0:@fm:9.63, font, 0 )
 | |
| 	stat = set_Printer('TEXTXY','Manufacturing DUNs Number: 121457774',2.5:@FM:9.63,font,0)
 | |
|  
 | |
|        
 | |
| 	IF NOT(PrinterInitialized) THEN
 | |
| 		stat = set_printer( 'TERM' )
 | |
| 	END  
 | |
| NEXT I
 | |
| RETURN
 | |
| 
 | |
| 
 |