diff --git a/Modules/mip_quotation_document.pck b/Modules/mip_quotation_document.pck index 60aad79..add1f50 100644 --- a/Modules/mip_quotation_document.pck +++ b/Modules/mip_quotation_document.pck @@ -772,11 +772,15 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS %param p_logo_blob - the logo(image) to display at the top of the page %param p_signature_blob - the signature(image) to display at the bottom of the page */ - PROCEDURE build_covering_letter(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number,p_logo_blob blob,p_signature_blob blob) is + PROCEDURE build_covering_letter(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number,p_logo_blob blob,p_signature_blob blob,p_watermark_blob blob) is l_contracts_text varchar2(500); l_cell_margin number; begin plpdf.NewPage; + --set watermark if it exists + if p_watermark_blob is not null then + plpdf.PutImage('test watermark',p_watermark_blob,50,50,200,200); + end if; -- set margins plpdf.SetLeftMargin(31.7); plpdf.SetRightMargin(31.7); @@ -842,7 +846,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS plpdf.PrintText(p_indent,p_vertical_offset+176,'If you have any queries, please contact the team on the number above'); plpdf.PrintText(p_indent,p_vertical_offset+184,'Yours sincerely'); --put on daves signature - plpdf.PutImage('dhsignature',p_signature_blob,p_indent,222,44,11); + -- plpdf.PutImage('dhsignature',p_signature_blob,p_indent,222,44,11); 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'); @@ -856,7 +860,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS %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 + PROCEDURE build_costs_page(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number,p_watermark_blob blob) is l_cost_line_counter number; l_vertical_offset_for_costs number := p_vertical_offset+110; l_works_counter number; @@ -866,6 +870,10 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS begin --Page 2 plpdf.NewPage; + --set watermark if it exists + if p_watermark_blob is not null then + plpdf.PutImage('test watermark',p_watermark_blob,50,50,200,200); + end if; -- set margins plpdf.SetLeftMargin(31.7); plpdf.SetRightMargin(31.7); @@ -886,8 +894,8 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS exit when l_works_counter is null; if p_quote_data.quote_works(l_works_counter) is not null then plpdf.PrintText(p_indent,l_vertical_offset_for_works+(l_works_counter*4), p_quote_data.quote_works(l_works_counter)); - l_works_counter := p_quote_data.quote_works.next(l_works_counter); end if; + l_works_counter := p_quote_data.quote_works.next(l_works_counter); end loop; -- DESC_WORK caveat here if p_quote_data.caveat_desc_works is not null then @@ -929,10 +937,14 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS %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 + PROCEDURE build_caveats_page(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number,p_watermark_blob blob) is begin --Page 3 plpdf.NewPage; + --set watermark if it exists + if p_watermark_blob is not null then + plpdf.PutImage('test watermark',p_watermark_blob,50,50,200,200); + end if; -- set margins plpdf.SetLeftMargin(31.7); plpdf.SetRightMargin(31.7); @@ -977,12 +989,16 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS %param p_house_blob - the image of the house %param p_module_blob - the image of the module */ - PROCEDURE build_drawings_page(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number, p_base_blob blob, p_house_blob blob, p_module_blob blob) is + PROCEDURE build_drawings_page(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number, p_base_blob blob, p_house_blob blob, p_module_blob blob,p_watermark_blob blob) is l_img_props img_props; 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; + --set watermark if it exists + if p_watermark_blob is not null then + plpdf.PutImage('test watermark',p_watermark_blob,50,50,200,200); + end if; -- set margins plpdf.SetLeftMargin(31.7); plpdf.SetRightMargin(31.7); @@ -1085,10 +1101,14 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS %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 + PROCEDURE build_module_specs_page(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number,p_watermark_blob blob) is begin --this will be page 5 (part of the technical spec sheet) for the quotation plpdf.NewPage; + --set watermark if it exists + if p_watermark_blob is not null then + plpdf.PutImage('test watermark',p_watermark_blob,50,50,200,200); + end if; -- set margins plpdf.SetLeftMargin(31.7); plpdf.SetRightMargin(31.7); @@ -1188,10 +1208,14 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS %param p_vertical_offset - the top margin measurement. %param p_logo_blob - the logo(image) to display at the top of the page */ - PROCEDURE build_acceptance_page(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number,p_logo_blob blob) is + PROCEDURE build_acceptance_page(p_quote_data in quote_data, p_font in varchar2, p_indent in number, p_vertical_offset in number,p_logo_blob blob,p_watermark_blob blob) is begin ---weeeeee last page plpdf.NewPage; + --set watermark if it exists + if p_watermark_blob is not null then + plpdf.PutImage('test watermark',p_watermark_blob,50,50,200,200); + end if; -- set margins plpdf.SetLeftMargin(31.7); plpdf.SetRightMargin(31.7); @@ -1269,6 +1293,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS l_enty_code varchar2(80); --the type of enquiry l_logo_blob blob; l_signature_blob blob; + l_watermark_blob blob; l_success boolean; --holds whether the quote was saved in the docuemnts tables or not l_base_blob blob; --the base drawing l_house_blob blob; --the house drawing @@ -1285,6 +1310,10 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS SELECT blob_content FROM wwv_flow_files WHERE filename = cp_signature; + CURSOR c_get_watermark(cp_watermark varchar2) IS + SELECT blob_content + FROM wwv_flow_files + WHERE filename = cp_watermark; CURSOR c_get_enty(cp_quid varchar2) IS SELECT enty_code FROM quote_items @@ -1303,6 +1332,12 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS FETCH c_get_signature INTO l_signature_blob; CLOSE c_get_signature; + IF NOT c_get_watermark%ISOPEN THEN + OPEN c_get_watermark('test_watermark.jpg'); + END IF; + FETCH c_get_watermark + INTO l_watermark_blob; + CLOSE c_get_watermark; IF NOT c_get_enty%ISOPEN THEN OPEN c_get_enty(p_quote_id); END IF; @@ -1317,15 +1352,15 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS -- Initialize PDF plpdf.init; --build the pages for the quote - build_covering_letter(p_quote_data,l_font,l_indent,l_vertical_offset,l_logo_blob, l_signature_blob);--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_covering_letter(p_quote_data,l_font,l_indent,l_vertical_offset,l_logo_blob, l_signature_blob, l_watermark_blob);--1 + build_costs_page(p_quote_data,l_font,l_indent,l_vertical_offset,l_watermark_blob); --2 + build_caveats_page(p_quote_data,l_font,l_indent,l_vertical_offset,l_watermark_blob); --3 --OFMAT, Addon jobs don't have module diagrams if not (l_enty_code = 'OFMAT' or l_enty_code = 'AMR' or l_enty_code = 'EMS') then - build_drawings_page(p_quote_data,l_font,l_indent,l_vertical_offset, l_base_blob, l_house_blob, l_module_blob); --4 + build_drawings_page(p_quote_data,l_font,l_indent,l_vertical_offset, l_base_blob, l_house_blob, l_module_blob,l_watermark_blob); --4 end if; - 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,l_logo_blob); --6 + build_module_specs_page(p_quote_data,l_font,l_indent,l_vertical_offset,l_watermark_blob); --5 + build_acceptance_page(p_quote_data,l_font,l_indent,l_vertical_offset,l_logo_blob,l_watermark_blob); --6 --get our beautiful pdf into the local var l_blob plpdf.SendDoc(l_blob); --punt the created pdf into the APEX files table