added code to set a watermark on the pdf if the file test_watermark.jpg exists in the application images, if it does not exist then no watermark will be shown

git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@3293 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
PriestJ
2008-01-17 18:23:32 +00:00
parent 9d7b4c263b
commit 0f58ad85e0

View File

@@ -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