finished off a bit more of quotation pdf, tidied up a few bits. Moved each page inside individual procedures to make things a bit tidier. Now need to figure out how to get it into the APEX files table.
git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@3128 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
@@ -74,8 +74,8 @@ CREATE OR REPLACE PACKAGE mip_quotation_document IS
|
||||
FUNCTION determine_caveats(p_enquiryid in number) RETURN BOOLEAN;
|
||||
procedure set_quote_items_data (p_quote_data in out quote_data, p_quoteid number, p_enqu_row enquiries%ROWTYPE);
|
||||
FUNCTION get_detailed_quote_data(p_quoteid in number) RETURN quote_data;
|
||||
--PROCEDURE covering_letter(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number);
|
||||
FUNCTION generate_detailed_quote_pdf(p_quote_data in quote_data) RETURN BOOLEAN;
|
||||
FUNCTION build_detailed_quote(p_enquiryid in number) RETURN BOOLEAN;
|
||||
END mip_quotation_document;
|
||||
/
|
||||
CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
@@ -584,36 +584,25 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
--phew, lets return all that lovely data we captured then...
|
||||
return l_quote_data;
|
||||
end get_detailed_quote_data;
|
||||
|
||||
/*
|
||||
FUNCTION generate_detailed_quote_pdf
|
||||
--This function should return a data populated pdf of the detailed quotation.
|
||||
--The return value could be a pdf or reference to a pdf that it has stored in the system?
|
||||
%param p_quote_data - the data to build into the quote.
|
||||
%param possibly a few more params to get the required data in
|
||||
PROCEDURE build_covering_letter
|
||||
--This procedure builds the covering letter for the quotation, it writes data
|
||||
--to an existing plpdf document
|
||||
%param p_quote_data in - The current data for this quote
|
||||
%param p_font - the type of font to use - typically 'Arial'.
|
||||
%param p_indent - the left margin measurement.
|
||||
%param p_vertical_offset - the top margin measurement.
|
||||
*/
|
||||
FUNCTION generate_detailed_quote_pdf(p_quote_data in quote_data) RETURN BOOLEAN is
|
||||
l_blob blob;
|
||||
l_indent number := 31.7;
|
||||
l_vertical_offset number := 30;
|
||||
l_vertical_offset_for_costs number := l_vertical_offset+110;
|
||||
l_font varchar2(40) := 'Arial';
|
||||
PROCEDURE build_covering_letter(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number) is
|
||||
l_contracts_text varchar2(500);
|
||||
l_big_text varchar2(9000);
|
||||
l_cost_line_counter number;
|
||||
l_cost_totals_offset number; --used to position the cost totals after the cost line items
|
||||
begin
|
||||
-- Get the blob from somewhere
|
||||
--Simple example to retrieve and use template:
|
||||
-- Initialize PDF
|
||||
plpdf.init;
|
||||
plpdf.NewPage;
|
||||
-- Slap on our data
|
||||
-- set margins
|
||||
plpdf.SetLeftMargin(31.7);
|
||||
plpdf.SetRightMargin(31.7);
|
||||
plpdf.SetTopMargin(25.4);
|
||||
|
||||
plpdf.SetPrintFont(l_font,null,7);
|
||||
plpdf.SetPrintFont(p_font,null,7);
|
||||
-- Set header stuff up
|
||||
plpdf.PrintText(140,10,'4 Abbotts Lane ');
|
||||
plpdf.PrintText(140,13,'Coventry');
|
||||
@@ -624,133 +613,185 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
-- And Footer stuff
|
||||
plpdf.PrintText(50,280,'National Grid Metering is the trading name for National Grid Metering Ltd.');
|
||||
plpdf.PrintText(50,283,'Registered Office: 1-3 Strand, London, WCZN 5EH. Registered in England and Wales, No. 3705992');
|
||||
plpdf.SetPrintFont(l_font,null,10); -- big text please
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+10,'National Grid Metering''s Ref: '|| to_char(p_quote_data.quote_ref));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+14,'Customer Reference: '|| p_quote_data.transaction_ref);
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+18,'MPRN: '|| to_char(p_quote_data.mprn));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+26,p_quote_data.supplier_address(1));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+30,p_quote_data.supplier_address(2));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+34,p_quote_data.supplier_address(3));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+38,p_quote_data.supplier_address(4));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+42,p_quote_data.supplier_address(5));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+46,p_quote_data.supplier_address(6));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+50,p_quote_data.supplier_address(7));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+58,'Date: '||p_quote_data.current_date);
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+66,'Quotation Contact: Customer Services Team 1');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+70,'Telephone Number: 02476 286 320');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+74,'Fax Number: 02476 286 044');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+78,'E-mail address: iandcrequests1@uk.ngrid.com');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+90,'Dear '|| p_quote_data.agent_first_name); --agent first name
|
||||
plpdf.SetPrintFont(l_font,'B',10); --set bold
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+98,'Re: '||p_quote_data.site_address(1)||', '||p_quote_data.site_address(2)||', '||p_quote_data.site_address(3)||', '||p_quote_data.site_address(4)||', '||p_quote_data.site_address(5)||', '||p_quote_data.site_address(6)||', '||p_quote_data.site_address(7)); --site address
|
||||
plpdf.SetPrintFont(l_font,null,10); --unset bold
|
||||
plpdf.SetPrintFont(p_font,null,10); -- set back to 10 pt
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+10,'National Grid Metering''s Ref: '|| to_char(p_quote_data.quote_ref));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+14,'Customer Reference: '|| p_quote_data.transaction_ref);
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+18,'MPRN: '|| to_char(p_quote_data.mprn));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+26,p_quote_data.supplier_address(1));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+30,p_quote_data.supplier_address(2));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+34,p_quote_data.supplier_address(3));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+38,p_quote_data.supplier_address(4));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+42,p_quote_data.supplier_address(5));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+46,p_quote_data.supplier_address(6));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+50,p_quote_data.supplier_address(7));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+58,'Date: '||p_quote_data.current_date);
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+66,'Quotation Contact: Customer Services Team 1');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+70,'Telephone Number: 02476 286 320');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+74,'Fax Number: 02476 286 044');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+78,'E-mail address: iandcrequests1@uk.ngrid.com');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+90,'Dear '|| p_quote_data.agent_first_name); --agent first name
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set bold
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+98,'Re: '||p_quote_data.site_address(1)||', '||p_quote_data.site_address(2)||', '||p_quote_data.site_address(3)||', '||p_quote_data.site_address(4)||', '||p_quote_data.site_address(5)||', '||p_quote_data.site_address(6)||', '||p_quote_data.site_address(7)); --site address
|
||||
plpdf.SetPrintFont(p_font,null,10); --unset bold
|
||||
l_contracts_text :='I am pleased to provide you with a quotation for works in accordance with the '||p_quote_data.mam;--mam
|
||||
l_contracts_text := l_contracts_text||' General Conditions of Contract for Transactional Meter Works not Exceeding 7 Bar.';
|
||||
plpdf.SetCurrentY(l_vertical_offset+106);
|
||||
plpdf.SetCurrentY(p_vertical_offset+106);
|
||||
plpdf.PrintFlowingText(6,l_contracts_text);
|
||||
plpdf.LineBreak;
|
||||
plpdf.LineBreak;
|
||||
l_big_text := 'This quotation is produced on the basis that, the information provided in the request is correct. Your acceptance of the quotation will be taken to mean that you also accept that the stated assumptions are correct. If it is later determined, by either party prior to works commencing on site, that any stated assumption is significantly incorrect, National Grid Metering will determine whether the quotation shall be varied or withdrawn. Works will only then commence if any variation is agreed in line with the relevant General Conditions of Contract.';
|
||||
plpdf.PrintFlowingText(6,l_big_text);
|
||||
plpdf.LineBreak;
|
||||
plpdf.LineBreak;
|
||||
l_big_text := 'To accept the quotation please submit a work request via IX, as outlined in the Rainbow Manual, or complete the enclosed Acceptance Form and return it to the above National Grid Metering office.';
|
||||
plpdf.PrintFlowingText(6,l_big_text);
|
||||
plpdf.LineBreak;
|
||||
plpdf.LineBreak;
|
||||
l_big_text := 'Please note that this quotation is valid for 90 days from the date specified in the quotation. Please use National Grid Metering''s Reference, which is at the top of the letter, on any future correspondence relating to this request.';
|
||||
plpdf.PrintFlowingText(6,l_big_text);
|
||||
plpdf.LineBreak;
|
||||
plpdf.LineBreak;
|
||||
plpdf.PrintFlowingText(6,'If you have any queries, please contact the team on the number above');
|
||||
plpdf.LineBreak;
|
||||
plpdf.LineBreak;
|
||||
plpdf.PrintFlowingText(6,'Yours sincerely');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+230,'David Harper');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+234,'I&C Technical Manager');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+238,'National Grid Metering');
|
||||
----Das page one complete, now lets do page 2...
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+128,'This quotation is produced on the basis that, the information provided in the request is correct.');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+132,'Your acceptance of the quotation will be taken to mean that you also accept that the stated');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+136,'assumptions are correct. If it is later determined, by either party prior to works commencing on');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+140,'site, that any stated assumption is significantly incorrect, National Grid Metering will determine');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+144,'whether the quotation shall be varied or withdrawn. Works will only then commence if any');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+148,'variation is agreed in line with the relevant General Conditions of Contract.');
|
||||
--
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+156,'To accept the quotation please submit a work request via IX, as outlined in the Rainbow Manual,');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+160,'or complete the enclosed Acceptance Form and return it to the above National Grid Metering''');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+164,'office.');
|
||||
--
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+172,'Please note that this quotation is valid for 90 days from the date specified in the quotation.');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+176,'Please use National Grid Metering''s Reference, which is at the top of the letter, on any future');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+180,'correspondence relating to this request.');
|
||||
--
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+188,'If you have any queries, please contact the team on the number above');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+196,'Yours sincerely');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+216,'David Harper');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+220,'I&C Technical Manager');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+224,'National Grid Metering');
|
||||
end build_covering_letter;
|
||||
/*
|
||||
PROCEDURE build_costs_page
|
||||
--This procedure builds the costs page for the quotation, it writes data
|
||||
--to an existing plpdf document
|
||||
%param p_quote_data in - The current data for this quote
|
||||
%param p_font - the type of font to use - typically 'Arial'.
|
||||
%param p_indent - the left margin measurement.
|
||||
%param p_vertical_offset - the top margin measurement.
|
||||
*/
|
||||
PROCEDURE build_costs_page(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number) is
|
||||
l_cost_line_counter number;
|
||||
l_vertical_offset_for_costs number := p_vertical_offset+110;
|
||||
l_cost_totals_offset number; --used to position the cost totals after the cost line items
|
||||
begin
|
||||
--Page 2
|
||||
plpdf.NewPage;
|
||||
plpdf.SetPrintFont(l_font,'B',10); --set bold
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+10,'QUOTATION');
|
||||
plpdf.SetPrintFont(l_font,null,10); --unset bold
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+18,'National Grid Metering''s Ref: '|| to_char(p_quote_data.quote_ref));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+22,'Customer Reference: '|| p_quote_data.transaction_ref);
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+30,'Date: '||p_quote_data.current_date);
|
||||
plpdf.SetPrintFont(l_font,'B',10); --set bold
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+38,'Re: '||p_quote_data.site_address(1)||', '||p_quote_data.site_address(2)||', '||p_quote_data.site_address(3)||', '||p_quote_data.site_address(4)||', '||p_quote_data.site_address(5)||', '||p_quote_data.site_address(6)||', '||p_quote_data.site_address(7)); --site address
|
||||
plpdf.SetPrintFont(l_font,'U',10); --set underline
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+48,'Full Description of Works to be carried out by National Grid Metering:');
|
||||
plpdf.SetPrintFont(l_font,'B',10); --set bold
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+56, p_quote_data.quote_works(1));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+60, p_quote_data.quote_works(2));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+64, p_quote_data.quote_works(3));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+68, p_quote_data.quote_works(4));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+72, p_quote_data.quote_works(5));
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+76, p_quote_data.quote_works(6));
|
||||
plpdf.SetPrintFont(l_font,null,10); --unset bold
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+90, 'Indicative Lead Time from Acceptance to Physical Commencement: ');
|
||||
plpdf.SetPrintFont(l_font,'B',10); --set bold
|
||||
plpdf.PrintText(140,l_vertical_offset+90, p_quote_data.lead_time||' working days');
|
||||
plpdf.SetPrintFont(l_font,null,10); --unset bold
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+98,'Contract sum (excluding V.A.T): ');
|
||||
plpdf.SetPrintFont(l_font,'B',10); --set bold
|
||||
plpdf.PrintText(85,l_vertical_offset+98,'<27>'||p_quote_data.total_cost);
|
||||
plpdf.SetPrintFont(l_font,null,10); --unset bold
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+106,'Analysis of Costs (all costs exclude V.A.T)');
|
||||
plpdf.SetPrintFont(l_font,'B',10); --set bold
|
||||
-- set margins
|
||||
plpdf.SetLeftMargin(31.7);
|
||||
plpdf.SetRightMargin(31.7);
|
||||
plpdf.SetTopMargin(25.4);
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set bold
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+10,'QUOTATION');
|
||||
plpdf.SetPrintFont(p_font,null,10); --unset bold
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+18,'National Grid Metering''s Ref: '|| to_char(p_quote_data.quote_ref));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+22,'Customer Reference: '|| p_quote_data.transaction_ref);
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+30,'Date: '||p_quote_data.current_date);
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set bold
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+38,'Re: '||p_quote_data.site_address(1)||', '||p_quote_data.site_address(2)||', '||p_quote_data.site_address(3)||', '||p_quote_data.site_address(4)||', '||p_quote_data.site_address(5)||', '||p_quote_data.site_address(6)||', '||p_quote_data.site_address(7)); --site address
|
||||
plpdf.SetPrintFont(p_font,'U',10); --set underline
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+48,'Full Description of Works to be carried out by National Grid Metering:');
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set bold
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+56, p_quote_data.quote_works(1));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+60, p_quote_data.quote_works(2));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+64, p_quote_data.quote_works(3));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+68, p_quote_data.quote_works(4));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+72, p_quote_data.quote_works(5));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+76, p_quote_data.quote_works(6));
|
||||
plpdf.SetPrintFont(p_font,null,10); --unset bold
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+90, 'Indicative Lead Time from Acceptance to Physical Commencement: ');
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set bold
|
||||
plpdf.PrintText(140,p_vertical_offset+90, p_quote_data.lead_time||' working days');
|
||||
plpdf.SetPrintFont(p_font,null,10); --unset bold
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+98,'Contract sum (excluding V.A.T): ');
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set bold
|
||||
plpdf.PrintText(85,p_vertical_offset+98,'<27>'||p_quote_data.total_cost);
|
||||
plpdf.SetPrintFont(p_font,null,10); --unset bold
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+106,'Analysis of Costs (all costs exclude V.A.T)');
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set bold
|
||||
l_cost_line_counter:=1;
|
||||
while p_quote_data.quote_costs(l_cost_line_counter).cost_description is not null
|
||||
loop
|
||||
plpdf.PrintText(l_indent,l_vertical_offset_for_costs+l_cost_line_counter*4,p_quote_data.quote_costs(l_cost_line_counter).cost_description);
|
||||
plpdf.PrintText(p_indent,l_vertical_offset_for_costs+l_cost_line_counter*4,p_quote_data.quote_costs(l_cost_line_counter).cost_description);
|
||||
plpdf.PrintText(120,l_vertical_offset_for_costs+l_cost_line_counter*4,'<27>'||p_quote_data.quote_costs(l_cost_line_counter).cost_price);
|
||||
l_cost_line_counter := l_cost_line_counter +1;
|
||||
end loop;
|
||||
l_cost_totals_offset := l_vertical_offset_for_costs+l_cost_line_counter*4;
|
||||
--think this line supposed to be in the cost items collection rather than hardcoded
|
||||
--also delivery cost price does not seem to be available on the example I've been using
|
||||
plpdf.PrintText(l_indent,l_cost_totals_offset,'Lifting Gear if required');
|
||||
plpdf.PrintText(p_indent,l_cost_totals_offset,'Lifting Gear if required');
|
||||
plpdf.PrintText(120,l_cost_totals_offset,'<27>220');
|
||||
plpdf.DrawLine(l_indent,l_cost_totals_offset+2,185,l_cost_totals_offset+2);
|
||||
plpdf.PrintText(l_indent,l_cost_totals_offset+6,'Total costs:');
|
||||
plpdf.PrintText(120,l_cost_totals_offset+6,'<27>'||p_quote_data.total_cost||' excluding lifting gear if required');
|
||||
--Well 2 pages down just another 2..4 left to go! Let's start page 3
|
||||
plpdf.DrawLine(p_indent,l_cost_totals_offset+2,185,l_cost_totals_offset+2);
|
||||
plpdf.PrintText(p_indent,l_cost_totals_offset+6,'Total costs:');
|
||||
plpdf.PrintText(120,l_cost_totals_offset+6,'<27>'||p_quote_data.total_cost||' excluding lifting gear if required');
|
||||
end build_costs_page;
|
||||
/*
|
||||
PROCEDURE build_caveats_page
|
||||
--This procedure builds the caveats page for the quotation, it writes data
|
||||
--to an existing plpdf document
|
||||
%param p_quote_data in - The current data for this quote
|
||||
%param p_font - the type of font to use - typically 'Arial'.
|
||||
%param p_indent - the left margin measurement.
|
||||
%param p_vertical_offset - the top margin measurement.
|
||||
*/
|
||||
PROCEDURE build_caveats_page(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number) is
|
||||
begin
|
||||
--Page 3
|
||||
plpdf.NewPage;
|
||||
plpdf.SetPrintFont(l_font,null,10); --unset bold
|
||||
-- set margins
|
||||
plpdf.SetLeftMargin(31.7);
|
||||
plpdf.SetRightMargin(31.7);
|
||||
plpdf.SetTopMargin(25.4);
|
||||
plpdf.SetPrintFont(p_font,null,10); --set font to plain
|
||||
--house
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+10,'Meter Housing Details (if required):');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+18,'Length: '||p_quote_data.house_length||' mm');
|
||||
plpdf.PrintText(l_indent+40,l_vertical_offset+18,'Depth: '||p_quote_data.house_depth||' mm');
|
||||
plpdf.PrintText(l_indent+80,l_vertical_offset+18,'Height: '||p_quote_data.house_height||' mm');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+26,'Minimum Ventilation: '||p_quote_data.house_ventilation||' sq. cm');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+10,'Meter Housing Details (if required):');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+18,'Length: '||p_quote_data.house_length||' mm');
|
||||
plpdf.PrintText(p_indent+40,p_vertical_offset+18,'Depth: '||p_quote_data.house_depth||' mm');
|
||||
plpdf.PrintText(p_indent+80,p_vertical_offset+18,'Height: '||p_quote_data.house_height||' mm');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+26,'Minimum Ventilation: '||p_quote_data.house_ventilation||' sq. cm');
|
||||
--base
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+42,'Meter Housing Base (if required):');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+50,'Length: '||p_quote_data.base_length||' mm');
|
||||
plpdf.PrintText(l_indent+40,l_vertical_offset+50,'Depth: '||p_quote_data.base_depth||' mm');
|
||||
plpdf.PrintText(l_indent+80,l_vertical_offset+50,'Height: '||p_quote_data.base_height||' mm');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+58,'Minimum Ventilation: '||p_quote_data.outlet_termninal_size||' mm');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+74,'Special Features/Terms/Conditions:');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+42,'Meter Housing Base (if required):');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+50,'Length: '||p_quote_data.base_length||' mm');
|
||||
plpdf.PrintText(p_indent+40,p_vertical_offset+50,'Depth: '||p_quote_data.base_depth||' mm');
|
||||
plpdf.PrintText(p_indent+80,p_vertical_offset+50,'Height: '||p_quote_data.base_height||' mm');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+58,'Minimum Ventilation: '||p_quote_data.outlet_termninal_size||' mm');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+74,'Special Features/Terms/Conditions:');
|
||||
--CAVEATS GO HERE DUDES/DUDETTES
|
||||
plpdf.SetPrintFont(l_font,'B',10); --set bold
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set bold
|
||||
--the caveats will be looped in so the positioning of the the following items will
|
||||
--need to be dynamic (see the quote costs code above for an example)
|
||||
plpdf.SetPrintFont(l_font,null,10); --unset bold
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+200,'Liquidated Damages (sum per day)(excluding V.A.T):');
|
||||
plpdf.PrintText(130,l_vertical_offset+200,'<27>'||p_quote_data.liquid_damage_day);
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+208,'Liquidated Damages (monetary cap)(excluding V.A.T):');
|
||||
plpdf.PrintText(130,l_vertical_offset+208,'<27>'||p_quote_data.liquid_damage_cap);
|
||||
plpdf.SetPrintFont(p_font,null,10); --unset bold
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+200,'Liquidated Damages (sum per day)(excluding V.A.T):');
|
||||
plpdf.PrintText(130,p_vertical_offset+200,'<27>'||p_quote_data.liquid_damage_day);
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+208,'Liquidated Damages (monetary cap)(excluding V.A.T):');
|
||||
plpdf.PrintText(130,p_vertical_offset+208,'<27>'||p_quote_data.liquid_damage_cap);
|
||||
|
||||
end build_caveats_page;
|
||||
/*
|
||||
PROCEDURE build_drawings_page
|
||||
--This procedure builds the drawings page for the quotation, it writes data
|
||||
--to an existing plpdf document
|
||||
%param p_quote_data in - The current data for this quote
|
||||
%param p_font - the type of font to use - typically 'Arial'.
|
||||
%param p_indent - the left margin measurement.
|
||||
%param p_vertical_offset - the top margin measurement.
|
||||
*/
|
||||
PROCEDURE build_drawings_page(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number) is
|
||||
begin
|
||||
--Okay here come the pretty pictures, the technical spec for the module, house & base
|
||||
--this will be page 4 for the quotation
|
||||
plpdf.NewPage;
|
||||
plpdf.SetPrintFont(l_font,'B',18); --set bold and 18pt
|
||||
plpdf.PrintText(l_indent,l_vertical_offset,'Technical Specification for '||p_quote_data.quote_ref);
|
||||
plpdf.SetPrintFont(l_font,'B',10); --set back to 10pt
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+6,'Re: '||p_quote_data.site_address(1)||', '||p_quote_data.site_address(2)||', '||p_quote_data.site_address(3)||', '||p_quote_data.site_address(4)||', '||p_quote_data.site_address(5)||', '||p_quote_data.site_address(6)||', '||p_quote_data.site_address(7)); --site address
|
||||
-- set margins
|
||||
plpdf.SetLeftMargin(31.7);
|
||||
plpdf.SetRightMargin(31.7);
|
||||
plpdf.SetTopMargin(25.4);
|
||||
plpdf.SetPrintFont(p_font,'B',18); --set bold and 18pt
|
||||
plpdf.PrintText(p_indent,p_vertical_offset,'Technical Specification for '||p_quote_data.quote_ref);
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set back to 10pt
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+6,'Re: '||p_quote_data.site_address(1)||', '||p_quote_data.site_address(2)||', '||p_quote_data.site_address(3)||', '||p_quote_data.site_address(4)||', '||p_quote_data.site_address(5)||', '||p_quote_data.site_address(6)||', '||p_quote_data.site_address(7)); --site address
|
||||
--Base Details
|
||||
plpdf.SetPrintFont(l_font,'BU',12); --set bold,underline and 12pt
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+12,'Floor Area/Base Requirements');
|
||||
plpdf.SetPrintFont(l_font,null,10); --set back to 10pt plain
|
||||
plpdf.SetCurrentXY(l_indent,l_vertical_offset+25);
|
||||
plpdf.SetPrintFont(p_font,'BU',12); --set bold,underline and 12pt
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+12,'Floor Area/Base Requirements');
|
||||
plpdf.SetPrintFont(p_font,null,10); --set back to 10pt plain
|
||||
plpdf.SetCurrentXY(p_indent,p_vertical_offset+25);
|
||||
plpdf.PrintCell(15,6,'Depth:',1,0,'L',0);
|
||||
plpdf.PrintCell(15,6,p_quote_data.base_dimensions(1),1,1,'R',0);
|
||||
plpdf.PrintCell(15,6,'Dim A:',1,0,'L',0);
|
||||
@@ -772,10 +813,10 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
plpdf.PrintCell(15,6,'Dim I:',1,0,'L',0);
|
||||
plpdf.PrintCell(15,6,p_quote_data.base_dimensions(10),1,1,'R',0);
|
||||
--House Details
|
||||
plpdf.SetPrintFont(l_font,'BU',12); --set bold,underline and 12pt
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+100,'Housing / Work Area');
|
||||
plpdf.SetPrintFont(l_font,null,10); --set back to 10pt plain
|
||||
plpdf.SetCurrentXY(l_indent,l_vertical_offset+108);
|
||||
plpdf.SetPrintFont(p_font,'BU',12); --set bold,underline and 12pt
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+100,'Housing / Work Area');
|
||||
plpdf.SetPrintFont(p_font,null,10); --set back to 10pt plain
|
||||
plpdf.SetCurrentXY(p_indent,p_vertical_offset+108);
|
||||
plpdf.PrintCell(15,6,'Length:',1,0,'L',0);
|
||||
plpdf.PrintCell(15,6,p_quote_data.house_dimensions(1),1,1,'R',0);
|
||||
plpdf.PrintCell(15,6,'Width:',1,0,'L',0);
|
||||
@@ -785,10 +826,10 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
plpdf.PrintCell(15,6,'Weight:',1,0,'L',0);
|
||||
plpdf.PrintCell(15,6,p_quote_data.house_dimensions(4),1,1,'R',0);
|
||||
--Module details
|
||||
plpdf.SetPrintFont(l_font,'BU',12); --set bold,underline and 12pt
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+168,'Module Dimensions');
|
||||
plpdf.SetPrintFont(l_font,null,10); --set back to 10pt plain
|
||||
plpdf.SetCurrentXY(l_indent,l_vertical_offset+180);
|
||||
plpdf.SetPrintFont(p_font,'BU',12); --set bold,underline and 12pt
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+168,'Module Dimensions');
|
||||
plpdf.SetPrintFont(p_font,null,10); --set back to 10pt plain
|
||||
plpdf.SetCurrentXY(p_indent,p_vertical_offset+180);
|
||||
plpdf.PrintCell(15,6,'Dim A:',1,0,'L',0);
|
||||
plpdf.PrintCell(15,6,p_quote_data.module_dimensions(1),1,1,'R',0);
|
||||
plpdf.PrintCell(15,6,'Dim B:',1,0,'L',0);
|
||||
@@ -807,25 +848,43 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
plpdf.PrintCell(15,6,p_quote_data.module_dimensions(8),1,1,'R',0);
|
||||
plpdf.PrintCell(15,6,'Weight:',1,0,'L',0);
|
||||
plpdf.PrintCell(15,6,p_quote_data.module_dimensions(9),1,1,'R',0);
|
||||
plpdf.SetPrintFont(l_font,null,9); --set to 9pt
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+245,'Note: All weights are in kg and all dimensions in mm Module Ref: '||p_quote_data.module_reference);
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+260,'National Grid Metering, Abbotts Lane, Coventry, West Midlands, CV1 4AY Tel 02476 286000 Fax 02476 286022');
|
||||
plpdf.SetPrintFont(p_font,null,9); --set to 9pt
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+245,'Note: All weights are in kg and all dimensions in mm Module Ref: '||p_quote_data.module_reference);
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+260,'National Grid Metering, Abbotts Lane, Coventry, West Midlands, CV1 4AY Tel 02476 286000 Fax 02476 286022');
|
||||
|
||||
end build_drawings_page;
|
||||
/*
|
||||
PROCEDURE build_module_specs_page
|
||||
--This procedure builds the module specification page for the quotation, it writes data
|
||||
--to an existing plpdf document
|
||||
%param p_quote_data in - The current data for this quote
|
||||
%param p_font - the type of font to use - typically 'Arial'.
|
||||
%param p_indent - the left margin measurement.
|
||||
%param p_vertical_offset - the top margin measurement.
|
||||
*/
|
||||
PROCEDURE build_module_specs_page(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number) is
|
||||
begin
|
||||
--this will be page 5 (part of the technical spec sheet) for the quotation
|
||||
plpdf.NewPage;
|
||||
plpdf.SetPrintFont(l_font,'B',18); --set bold and 18pt
|
||||
plpdf.PrintText(l_indent,l_vertical_offset,'Technical Specification for '||p_quote_data.quote_ref);
|
||||
plpdf.SetPrintFont(l_font,'B',10); --set back to 10pt
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+6,'Re: '||p_quote_data.site_address(1)||', '||p_quote_data.site_address(2)||', '||p_quote_data.site_address(3)||', '||p_quote_data.site_address(4)||', '||p_quote_data.site_address(5)||', '||p_quote_data.site_address(6)||', '||p_quote_data.site_address(7)); --site address
|
||||
plpdf.SetPrintFont(l_font,null,10); --set back to plain
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+14,'The supply point must be of a suitable size and capacity to provide the specified Lowest');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+18,'Operating Pressure(LOP-from table1) at the Emergency Control Valve(ECV) outlet');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+22,'under the requested Q Max load as detailed below in table 2');
|
||||
plpdf.SetCurrentXY(l_indent,l_vertical_offset+30);
|
||||
plpdf.SetPrintFont(l_font,'B',10); --set to bold
|
||||
-- set margins
|
||||
plpdf.SetLeftMargin(31.7);
|
||||
plpdf.SetRightMargin(31.7);
|
||||
plpdf.SetTopMargin(25.4);
|
||||
plpdf.SetPrintFont(p_font,'B',18); --set bold and 18pt
|
||||
plpdf.PrintText(p_indent,p_vertical_offset,'Technical Specification for '||p_quote_data.quote_ref);
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set back to 10pt
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+6,'Re: '||p_quote_data.site_address(1)||', '||p_quote_data.site_address(2)||', '||p_quote_data.site_address(3)||', '||p_quote_data.site_address(4)||', '||p_quote_data.site_address(5)||', '||p_quote_data.site_address(6)||', '||p_quote_data.site_address(7)); --site address
|
||||
plpdf.SetPrintFont(p_font,null,10); --set back to plain
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+14,'The supply point must be of a suitable size and capacity to provide the specified Lowest');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+18,'Operating Pressure(LOP-from table1) at the Emergency Control Valve(ECV) outlet');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+22,'under the requested Q Max load as detailed below in table 2');
|
||||
--table 1
|
||||
plpdf.SetCurrentXY(p_indent,p_vertical_offset+30);
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set to bold
|
||||
plpdf.PrintCell(90,6,'Table 1',1,0,'L',0);
|
||||
plpdf.PrintCell(30,6,'ECV Outlet (u)',1,0,'C',0);
|
||||
plpdf.PrintCell(40,6,'Consumer Outlet (c)',1,1,'C',0);
|
||||
plpdf.SetPrintFont(l_font,null,10); --set back to plain
|
||||
plpdf.SetPrintFont(p_font,null,10); --set back to plain
|
||||
plpdf.PrintCell(90,6,'Design Minimum Pressure (DMP)',1,0,'L',0);
|
||||
plpdf.PrintCell(30,6,'19 mbar',1,0,'C',0);
|
||||
plpdf.PrintCell(40,6,'15 mbar',1,1,'C',0);
|
||||
@@ -835,24 +894,29 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
plpdf.PrintCell(90,6,'Pressure Tier',1,0,'L',0);
|
||||
plpdf.PrintCell(30,6,'75 mbar',1,0,'C',0);
|
||||
plpdf.PrintCell(40,6,'21 mbar',1,1,'C',0);
|
||||
plpdf.SetCurrentXY(l_indent,l_vertical_offset+60);
|
||||
plpdf.SetPrintFont(l_font,'B',10); --set to bold
|
||||
--table 2
|
||||
plpdf.SetCurrentXY(p_indent,p_vertical_offset+60);
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set to bold
|
||||
plpdf.PrintCell(90,6,'Table 2',1,0,'L',0);
|
||||
plpdf.PrintCell(70,6,'Meter Module Design',1,1,'C',0);
|
||||
plpdf.SetPrintFont(l_font,null,10); --set back to plain
|
||||
plpdf.SetPrintFont(p_font,null,10); --set back to plain
|
||||
plpdf.PrintCell(90,6,'Requested Q Max (kw/h)',1,0,'L',0);
|
||||
plpdf.PrintCell(70,6,p_quote_data.requested_qmax,1,1,'C',0);
|
||||
plpdf.PrintCell(90,6,'Q Max of the meter module (kw/h)',1,0,'L',0);
|
||||
plpdf.PrintCell(70,6,p_quote_data.module_qmax,1,1,'C',0);
|
||||
plpdf.PrintCell(90,6,'Q Min of the meter module (kw/h)',1,0,'L',0);
|
||||
plpdf.PrintCell(70,6,p_quote_data.module_qmin,1,1,'C',0);
|
||||
plpdf.SetCurrentXY(l_indent,l_vertical_offset+90);
|
||||
plpdf.SetPrintFont(l_font,'B',10); --set to bold
|
||||
--table 3
|
||||
plpdf.SetCurrentXY(p_indent,p_vertical_offset+90);
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set to bold
|
||||
plpdf.PrintCell(90,6,'Table 3',1,0,'L',0);
|
||||
plpdf.PrintCell(70,6,'Module Design Parameters',1,1,'C',0);
|
||||
plpdf.SetPrintFont(l_font,null,10); --set back to plain
|
||||
plpdf.PrintMultilineCell(60,30,'Note: Inlet connection',1,'L',0);
|
||||
plpdf.SetCurrentXY(91.7,l_vertical_offset+101);
|
||||
plpdf.SetPrintFont(p_font,null,10); --set back to plain
|
||||
plpdf.PrintMultilineCell(60,6,'Note: Inlet connection size and location details must be checked against supply point details supplied by GT to ensure compatibility ',1,'L',0);
|
||||
--Multi line cell thing is a bit annoying the printcell will not wrap to
|
||||
--the edge of the multi-line cell so we have to set the cursor for the
|
||||
--remaining parts of the table
|
||||
plpdf.SetCurrentXY(91.7,p_vertical_offset+96);
|
||||
plpdf.PrintCell(30,6,'',1,0,'C',0);
|
||||
plpdf.PrintCell(35,6,'Inlet',1,0,'C',0);
|
||||
plpdf.PrintCell(35,6,'Outlet',1,1,'C',0);
|
||||
@@ -872,34 +936,129 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
plpdf.PrintCell(30,6,'Orientation',1,0,'C',0);
|
||||
plpdf.PrintCell(35,6,p_quote_data.module_inlet_orientation,1,0,'C',0);
|
||||
plpdf.PrintCell(35,6,p_quote_data.module_outlet_orientation,1,1,'C',0);
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+130,'The meter module offered is a single stream supply with only a nominal maintenance');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+134,'bypass facility. The bypass connections are for use during maintenance, and are only');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+138,'sized to maintain gas pressure downstream under no load conditions. Therefore');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+142,'during maintenance it will be necessary to disrupt supplies.');
|
||||
--
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+150,'Electric Connections to gas meters are subject to the assesment of the hazardous');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+154,'area around the meter, this is largely affected by the ventilation of the housing. Should');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+158,'the ventilation be found to be inadequate, the connection will not be made and the');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+162,'requirements to allow the connection reported to you. The quotation does not include');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+166,'the provision of a separate instrumentation cabinet.');
|
||||
plpdf.SetPrintFont(l_font,null,9); --set back to plain
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+174,'Definitions');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+178,'DMP - The minimum pressure that may occur at the point of reference at the time of system design flow rate under extreme gas supply conditions');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+182,'LOP - The lowest pressure that may occur under normal operating conditions');
|
||||
plpdf.PrintText(l_indent,l_vertical_offset+186,'Conversion calculations are based on an average CV of 38.4 MJ/m3');
|
||||
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+134,'The meter module offered is a single stream supply with only a nominal maintenance');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+138,'bypass facility. The bypass connections are for use during maintenance, and are only');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+142,'sized to maintain gas pressure downstream under no load conditions. Therefore');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+146,'during maintenance it will be necessary to disrupt supplies.');
|
||||
--next para
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+154,'Electric Connections to gas meters are subject to the assesment of the hazardous');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+158,'area around the meter, this is largely affected by the ventilation of the housing. Should');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+162,'the ventilation be found to be inadequate, the connection will not be made and the');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+166,'requirements to allow the connection reported to you. The quotation does not include');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+170,'the provision of a separate instrumentation cabinet.');
|
||||
plpdf.SetPrintFont(p_font,null,7); --set to 7 pt
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+178,'Definitions');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+182,'DMP - The minimum pressure that may occur at the point of reference at the time of system design flow rate under extreme gas supply conditions');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+186,'LOP - The lowest pressure that may occur under normal operating conditions');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+190,'Conversion calculations are based on an average CV of 38.4 MJ/m3');
|
||||
plpdf.SetPrintFont(p_font,null,9); --set to 9 pt
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+260,'National Grid Metering, Abbotts Lane, Coventry, West Midlands, CV1 4AY Tel 02476 286000 Fax 02476 286022');
|
||||
end build_module_specs_page;
|
||||
/*
|
||||
PROCEDURE build_acceptance_page
|
||||
--This procedure builds the acceptance form page for the quotation, it writes data
|
||||
--to an existing plpdf document
|
||||
%param p_quote_data in - The current data for this quote
|
||||
%param p_font - the type of font to use - typically 'Arial'.
|
||||
%param p_indent - the left margin measurement.
|
||||
%param p_vertical_offset - the top margin measurement.
|
||||
*/
|
||||
PROCEDURE build_acceptance_page(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number) is
|
||||
begin
|
||||
---weeeeee last page
|
||||
plpdf.NewPage;
|
||||
-- set margins
|
||||
plpdf.SetLeftMargin(31.7);
|
||||
plpdf.SetRightMargin(31.7);
|
||||
plpdf.SetTopMargin(25.4);
|
||||
-- Set header stuff up
|
||||
plpdf.SetPrintFont(p_font,null,7);
|
||||
plpdf.PrintText(140,10,'4 Abbotts Lane ');
|
||||
plpdf.PrintText(140,13,'Coventry');
|
||||
plpdf.PrintText(140,16,'CV1 4AY');
|
||||
plpdf.PrintText(170,10,'T +44 (0) 24 7628 6000');
|
||||
plpdf.PrintText(170,13,'F +44 (0) 24 7628 6022');
|
||||
plpdf.PrintText(170,16,'www.nationalgrid.com');
|
||||
-- And Footer stuff
|
||||
plpdf.PrintText(50,280,'National Grid Metering is the trading name for National Grid Metering Ltd.');
|
||||
plpdf.PrintText(50,283,'Registered Office: 1-3 Strand, London, WCZN 5EH. Registered in England and Wales, No. 3705992');
|
||||
plpdf.SetPrintFont(p_font,null,10); -- big text please
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+10,'National Grid Metering''s Ref: '|| to_char(p_quote_data.quote_ref));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+14,'Customer Reference: '|| p_quote_data.transaction_ref);
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+18,'MPRN: '|| to_char(p_quote_data.mprn));
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+26,'F.A.O');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+30,'I&C Work Planning Team');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+34,'National Grid Metering Ltd');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+38,'Abbott''s Lane');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+42,'Coventry');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+46,'CV1 4AY');
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set bold
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+54,'Re: '||p_quote_data.site_address(1)||', '||p_quote_data.site_address(2)||', '||p_quote_data.site_address(3)||', '||p_quote_data.site_address(4)||', '||p_quote_data.site_address(5)||', '||p_quote_data.site_address(6)||', '||p_quote_data.site_address(7)); --site address
|
||||
plpdf.SetPrintFont(p_font,null,10); --unset bold
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+62,'Contract sum (excluding V.A.T): ');
|
||||
plpdf.SetPrintFont(p_font,'B',10); --set bold
|
||||
plpdf.PrintText(85,p_vertical_offset+62,'<27>'||p_quote_data.total_cost||' excluding lifting gear if required.');
|
||||
plpdf.SetPrintFont(p_font,null,10); --unset bold
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+74,'* I confirm on behalf of my Company that I accept the above referenced quotation for the conduct');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+78,'of works as detailed therein, and here by certify on behalf of my Company that no additional');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+82,'terms and conditions (other than those set out in the quotation) are required.');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+90,'OR');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+98,'* I confirm on behalf of my Company that the above referenced quotation for the conduct or works');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+102,'as detailed therein is acceptable to my Company provided that (in addition to the conditions set');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+106,'out in the quotation [if any]) the General Conditions of Contract for Transactional Meter Works');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+110,'Not Exceeding 7 Bar in respect of the works are modified by the incorporation of the terms and');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+114,'conditions annexed hereto.');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+122,'(* Delete as appropriate)');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+130,'Save as set out above, I confirm that my Company agrees to be bound in connection with the');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+134,'works by the General Conditions of Contract for Transactional Meter Works Not');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+138,'Exceeding 7 Bar (as ammended by the quotation).');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+146,'Commencement');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+154,'Permission to organise directly with site contact');
|
||||
plpdf.PrintText(p_indent+120,p_vertical_offset+154,'Yes / No');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+162,'Earliest date site ready for work to commence');
|
||||
plpdf.PrintText(p_indent+120,p_vertical_offset+162,'___/___/___');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+170,'Anticipated date gas required on site');
|
||||
plpdf.PrintText(p_indent+120,p_vertical_offset+170,'___/___/___');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+178,'Signed on behalf of the Company');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+186,'Name:________________________________');
|
||||
plpdf.PrintText(p_indent+85,p_vertical_offset+186,'Position:____________________________');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+194,'Company:_____________________________');
|
||||
plpdf.PrintText(p_indent+85,p_vertical_offset+194,'Date:_______________________________');
|
||||
plpdf.PrintText(p_indent,p_vertical_offset+202,'Signature:_____________________________________________________________________');
|
||||
|
||||
end build_acceptance_page;
|
||||
/*
|
||||
FUNCTION generate_detailed_quote_pdf
|
||||
--The generate_detailed_quote_pdf builds the pdf document for the quotation from
|
||||
--the supplied data and stores the resulting pdf document in the database.
|
||||
%param p_quote_data - the data to build into the quote.
|
||||
%return - true if we created and stored the pdf(perhaps should be the id of the pdf file
|
||||
*/
|
||||
FUNCTION generate_detailed_quote_pdf(p_quote_data in quote_data) RETURN BOOLEAN is
|
||||
l_blob blob;
|
||||
l_indent number := 31.7;
|
||||
l_vertical_offset number := 30;
|
||||
l_font varchar2(40) := 'Arial'; --arial not daz
|
||||
begin
|
||||
-- Get the blob from somewhere
|
||||
--Simple example to retrieve and use template:
|
||||
-- Initialize PDF
|
||||
plpdf.init;
|
||||
--build the pages for the quote
|
||||
build_covering_letter(p_quote_data,l_font,l_indent,l_vertical_offset); --1
|
||||
build_costs_page(p_quote_data,l_font,l_indent,l_vertical_offset); --2
|
||||
build_caveats_page(p_quote_data,l_font,l_indent,l_vertical_offset); --3
|
||||
build_drawings_page(p_quote_data,l_font,l_indent,l_vertical_offset); --4
|
||||
--build_module_specs_page(p_quote_data,l_font,l_indent,l_vertical_offset); --5
|
||||
build_acceptance_page(p_quote_data,l_font,l_indent,l_vertical_offset); --6
|
||||
--get our beautiful pdf into the local var l_blob
|
||||
plpdf.SendDoc(l_blob);
|
||||
--punt the created pdf into the testpdf table
|
||||
insert into testpdf (id, pdf_report)
|
||||
values (11, l_blob);
|
||||
return true;
|
||||
return true; -- perhaps we should return the id of the newly created blob record?
|
||||
end generate_detailed_quote_pdf;
|
||||
|
||||
FUNCTION build_detailed_quote(p_enquiryid in number) RETURN BOOLEAN is
|
||||
begin
|
||||
null;
|
||||
end build_detailed_quote;
|
||||
|
||||
BEGIN
|
||||
-- Initialization
|
||||
|
||||
Reference in New Issue
Block a user