now gathers all information for the quotation, but have not tested this. Currently has a collection error on one of my varray types.
git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@3062 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
@@ -44,6 +44,7 @@ CREATE OR REPLACE PACKAGE mip_quotation_document IS
|
||||
house_dimensions dimensions,
|
||||
house_diagram number,
|
||||
module_dimensions dimensions,
|
||||
module_reference varchar2(80),
|
||||
module_diagram number,
|
||||
requested_qmax number,
|
||||
module_qmax number,
|
||||
@@ -67,21 +68,66 @@ CREATE OR REPLACE PACKAGE mip_quotation_document IS
|
||||
|
||||
-- Public function and procedure declarations
|
||||
-- function <FunctionName>(<Parameter> <Datatype>) return <Datatype>;
|
||||
function get_module_row(p_id number) return modules%ROWTYPE;
|
||||
function get_max_lead_time(p_id number) return number;
|
||||
function get_mam(p_region_code varchar2) return varchar2;
|
||||
function get_module_row(p_code number) return modules%ROWTYPE;
|
||||
function get_max_lead_time(p_quoteid number) return number;
|
||||
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 determine_caveats(p_enquiry in number) RETURN BOOLEAN;
|
||||
FUNCTION get_detailed_quote_data(data_for_quote in number) RETURN BOOLEAN;
|
||||
FUNCTION get_detailed_quote_data(p_quoteid in number) RETURN quote_data;
|
||||
FUNCTION generate_detailed_quote_pdf(get_detailed_quote_data in number) RETURN BOOLEAN;
|
||||
FUNCTION build_detailed_quote(p_enquiry_id in number) RETURN BOOLEAN;
|
||||
|
||||
PROCEDURE produce_quotes(p_id IN enquiries.id%TYPE);
|
||||
FUNCTION build_detailed_quote(p_enquiryid in number) RETURN BOOLEAN;
|
||||
END mip_quotation_document;
|
||||
/
|
||||
CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
function get_module_row(p_id number) return modules%ROWTYPE is
|
||||
/*
|
||||
FUNCTION get_mam
|
||||
--The get_mam function returns a meter asset manager description for the supplied region code.
|
||||
%param p_region_code - the code of the region you want to get the mam description of.
|
||||
%return varchar(80)description of the supplied regions code mam
|
||||
*/
|
||||
function get_mam(p_region_code varchar2) return varchar2 is
|
||||
l_mam_desc varchar2(80);
|
||||
CURSOR c_get_mam(cp_region_code varchar2) IS
|
||||
SELECT description
|
||||
FROM regions
|
||||
WHERE code = cp_region_code;
|
||||
begin
|
||||
IF NOT c_get_mam%ISOPEN THEN
|
||||
OPEN c_get_mam(p_region_code);
|
||||
END IF;
|
||||
FETCH c_get_mam
|
||||
INTO l_mam_desc;
|
||||
CLOSE c_get_mam;
|
||||
return l_mam_desc;
|
||||
end get_mam;
|
||||
/*
|
||||
FUNCTION get_meter_row
|
||||
--The get_meter_row function returns a meter record for the supplied meter code.
|
||||
%param p_code - the code of the meter you want to get a record of.
|
||||
%return meters row of the supplied meter code
|
||||
*/
|
||||
function get_meter_row(p_code varchar2) return meters%ROWTYPE is
|
||||
l_meter_row meters%ROWTYPE;
|
||||
CURSOR c_get_meter(cp_meter_code varchar2) IS
|
||||
SELECT *
|
||||
FROM meters
|
||||
WHERE code = cp_meter_code;
|
||||
begin
|
||||
IF NOT c_get_meter%ISOPEN THEN
|
||||
OPEN c_get_meter(p_code);
|
||||
END IF;
|
||||
FETCH c_get_meter
|
||||
INTO l_meter_row;
|
||||
CLOSE c_get_meter;
|
||||
return l_meter_row;
|
||||
end get_meter_row;
|
||||
/*
|
||||
FUNCTION get_module_row
|
||||
--The get_module_row function returns a module record for the supplied module code.
|
||||
%param p_code - the code of the module you want to get a record of.
|
||||
%return modules row of the supplied module code
|
||||
*/
|
||||
function get_module_row(p_code number) return modules%ROWTYPE is
|
||||
l_module_row modules%ROWTYPE;
|
||||
CURSOR c_get_module(cp_module_code varchar2) IS
|
||||
SELECT *
|
||||
@@ -89,14 +135,19 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
WHERE code = cp_module_code;
|
||||
begin
|
||||
IF NOT c_get_module%ISOPEN THEN
|
||||
OPEN c_get_module(p_id);
|
||||
OPEN c_get_module(p_code);
|
||||
END IF;
|
||||
FETCH c_get_module
|
||||
INTO l_module_row;
|
||||
CLOSE c_get_module;
|
||||
return l_module_row;
|
||||
end get_module_row;
|
||||
|
||||
/*
|
||||
FUNCTION get_housing_row
|
||||
--The get_housing_row function returns a housing record for the supplied housing code.
|
||||
%param p_code - the code of the housing you want to get a record of.
|
||||
%return housings row of the supplied housing code
|
||||
*/
|
||||
function get_housing_row(p_code varchar2) return housings%ROWTYPE is
|
||||
l_housing_row housings%ROWTYPE;
|
||||
CURSOR c_get_housing(cp_housing_code varchar2) IS
|
||||
@@ -112,7 +163,12 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
CLOSE c_get_housing;
|
||||
return l_housing_row;
|
||||
end get_housing_row;
|
||||
|
||||
/*
|
||||
FUNCTION get_base_row
|
||||
--The get_base_row function returns a base record for the supplied base code.
|
||||
%param p_code - the code of the base you want to get a record of.
|
||||
%return bases row of the supplied base code
|
||||
*/
|
||||
function get_base_row(p_code varchar2) return bases%ROWTYPE is
|
||||
l_base_row bases%ROWTYPE;
|
||||
CURSOR c_get_base(cp_base_code varchar2) IS
|
||||
@@ -128,8 +184,13 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
CLOSE c_get_base;
|
||||
return l_base_row;
|
||||
end get_base_row;
|
||||
|
||||
|
||||
/*
|
||||
FUNCTION get_additional_item
|
||||
--The get_additional_item function returns an additional_item record for the supplied additional
|
||||
--item code.
|
||||
%param p_code - the code of the additional item you want to get a record of.
|
||||
%return additional_items row of the supplied item code
|
||||
*/
|
||||
function get_additional_item(p_code varchar2) return additional_items%ROWTYPE is
|
||||
--Additional Items
|
||||
l_add_item_row additional_items%ROWTYPE;
|
||||
@@ -148,9 +209,15 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
CLOSE c_get_add_item;
|
||||
return l_add_item_row;
|
||||
end get_additional_item;
|
||||
|
||||
|
||||
function get_max_lead_time(p_id number) return number is
|
||||
/*
|
||||
FUNCTION get_max_lead_time
|
||||
--The get_max lead_time function returns the contracted lead time for the provided quotation.
|
||||
--It takes the largest lead time of all the quotation items (modules, addons, housings bases)
|
||||
--hence the max bit
|
||||
%param p_quoteid - the id of the quote you want to get the lead time.
|
||||
%return number the maximum contacted lead time for the supplied quotation
|
||||
*/
|
||||
function get_max_lead_time(p_quoteid number) return number is
|
||||
l_quote_item_maxlt number;
|
||||
CURSOR c_get_max_lead_time (cp_id number) is
|
||||
SELECT MAX(lead_time)
|
||||
@@ -158,15 +225,20 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
WHERE qute_id = cp_id;
|
||||
begin
|
||||
IF NOT c_get_max_lead_time%ISOPEN THEN
|
||||
OPEN c_get_max_lead_time(p_id);
|
||||
OPEN c_get_max_lead_time(p_quoteid);
|
||||
END IF;
|
||||
FETCH c_get_max_lead_time
|
||||
INTO l_quote_item_maxlt;
|
||||
CLOSE c_get_max_lead_time;
|
||||
return l_quote_item_maxlt;
|
||||
end get_max_lead_time;
|
||||
|
||||
function get_total_cost(p_id number) return number is
|
||||
/*
|
||||
FUNCTION get_total_cost
|
||||
--The get_total_cost function returns the total cost for a quotation (excluding lifting gear)
|
||||
%param p_quoteid - the id of the quote you want to get the total cost for.
|
||||
%return number the total cost
|
||||
*/
|
||||
function get_total_cost(p_quoteid number) return number is
|
||||
l_quote_total_cost number;
|
||||
CURSOR c_get_total_cost (cp_id number) is
|
||||
SELECT SUM(selling_price + delivery_price)
|
||||
@@ -174,7 +246,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
WHERE qute_id = cp_id;
|
||||
begin
|
||||
IF NOT c_get_total_cost%ISOPEN THEN
|
||||
OPEN c_get_total_cost(p_id);
|
||||
OPEN c_get_total_cost(p_quoteid);
|
||||
END IF;
|
||||
FETCH c_get_total_cost
|
||||
INTO l_quote_total_cost;
|
||||
@@ -182,141 +254,6 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
return l_quote_total_cost;
|
||||
end get_total_cost;
|
||||
|
||||
function get_quote_costs(p_id number) return costs is
|
||||
CURSOR c_get_quote_costs(cp_id number) is
|
||||
SELECT *
|
||||
FROM quote_items
|
||||
WHERE qute_id = cp_id;
|
||||
l_costs costs;
|
||||
l_counter number;
|
||||
l_add_item_row additional_items%ROWTYPE;
|
||||
l_module_row modules%ROWTYPE;
|
||||
begin
|
||||
l_counter := 0;
|
||||
FOR quote_item_rec IN c_get_quote_costs(p_id) LOOP
|
||||
l_counter := l_counter + 1;
|
||||
case quote_item_rec.quit_type
|
||||
when 'BQI' then --base item
|
||||
l_costs(l_counter).cost_description := 'Base Materials cost';
|
||||
l_costs(l_counter).cost_price := quote_item_rec.selling_price;
|
||||
if not (quote_item_rec.delivery_price is null) then
|
||||
l_costs(l_counter).cost_description := 'Base Labour cost';
|
||||
l_costs(l_counter).cost_price := quote_item_rec.delivery_price;
|
||||
end if;
|
||||
when 'HQI' then --housing item
|
||||
l_costs(l_counter).cost_description := 'Housing Materials cost';
|
||||
l_costs(l_counter).cost_price := quote_item_rec.selling_price;
|
||||
if not (quote_item_rec.delivery_price is null) then
|
||||
l_costs(l_counter).cost_description := 'Housing Labour cost';
|
||||
l_costs(l_counter).cost_price := quote_item_rec.delivery_price;
|
||||
end if;
|
||||
when 'AQI' then --add-on item
|
||||
--If we get time add an if statement round this that checks if the
|
||||
--Additional Item is lifting gear that it only appears for
|
||||
--LP Diaphgram install/std install jobs
|
||||
l_add_item_row := get_additional_item(quote_item_rec.adit_code);
|
||||
l_costs(l_counter).cost_description := l_add_item_row.description||' Materials cost';
|
||||
l_costs(l_counter).cost_price := quote_item_rec.selling_price;
|
||||
if not(quote_item_rec.delivery_price is null) then
|
||||
l_costs(l_counter).cost_description := l_add_item_row.description||' Labour cost';
|
||||
l_costs(l_counter).cost_price := quote_item_rec.delivery_price;
|
||||
end if;
|
||||
|
||||
when 'MQI' then --module item
|
||||
l_costs(l_counter).cost_description := 'Module Materials cost';
|
||||
l_costs(l_counter).cost_price := quote_item_rec.selling_price;
|
||||
if not(quote_item_rec.delivery_price is null) then
|
||||
l_costs(l_counter).cost_description := 'Module Labour cost';
|
||||
l_costs(l_counter).cost_price := quote_item_rec.delivery_price;
|
||||
end if;
|
||||
end case;
|
||||
|
||||
END LOOP;
|
||||
|
||||
return l_costs;
|
||||
end get_quote_costs;
|
||||
|
||||
/*
|
||||
FUNCTION determine_works
|
||||
--This function should return a list of works, probably in an array, required for
|
||||
--the quotation. It will need to be passed relevent data so that it can make the
|
||||
--determinations
|
||||
%param p_enqu_row - the current enquiry row to make determinations against.
|
||||
%param possibly a few more params to get the required data in
|
||||
*/
|
||||
/* FUNCTION determine_works(p_quoteid number, p_enqu_row enquiries%ROWTYPE) RETURN works is
|
||||
|
||||
--Enquiry type
|
||||
l_enqu_type_row enquiry_types%ROWTYPE;
|
||||
CURSOR c_get_enquiry_type(cp_enty_code varchar2) IS
|
||||
SELECT *
|
||||
FROM enquiry_types
|
||||
WHERE code = cp_enty_code;
|
||||
--Quote Items
|
||||
l_quote_item_row quote_items%ROWTYPE;
|
||||
CURSOR c_get_quote_item(cp_quoteid number) IS
|
||||
SELECT *
|
||||
FROM quote_items
|
||||
WHERE qute_id = cp_quoteid;
|
||||
--Module data
|
||||
l_module_row modules%ROWTYPE;
|
||||
CURSOR c_get_module(cp_module_code varchar2) IS
|
||||
SELECT *
|
||||
FROM modules
|
||||
WHERE code = cp_module_code;
|
||||
--Costs
|
||||
-- l_cost_row costs%ROWTYPE;
|
||||
-- CURSOR c_get_cost(cp_costid number) IS
|
||||
-- SELECT *
|
||||
-- FROM costs
|
||||
-- WHERE id = cp_costid;
|
||||
--Additional Items
|
||||
l_add_item_row additional_items%ROWTYPE;
|
||||
l_works works; --list of works for the quote
|
||||
l_addons varchar(300); --list of addons for the quote
|
||||
begin
|
||||
--cycle through the quote items picking up each item to display on the
|
||||
--description of works section
|
||||
FOR quote_item_rec IN c_get_quote_item(p_quoteid) LOOP
|
||||
case quote_item_rec.quit_type
|
||||
when 'BQI' then --base item
|
||||
l_addons := l_addons || ', Base';
|
||||
when 'HQI' then --housing item
|
||||
l_addons := l_addons || ', Housing';
|
||||
when 'AQI' then --add-on item
|
||||
l_add_item_row := get_additional_item(quote_item_rec.adit_code);
|
||||
l_addons := l_addons || ', '||l_add_item_row.description;
|
||||
when 'MQI' then --module item
|
||||
l_module_row := get_module_row (quote_item_rec.modu_code);
|
||||
l_works(3) := 'Meter Type: '|| l_module_row.svcp_code || ' ' || l_module_row.metr_code;
|
||||
when 'LQI' then --labour item (job type)
|
||||
--get type of enquiry to display as works type
|
||||
IF NOT c_get_enquiry_type%ISOPEN THEN
|
||||
OPEN c_get_enquiry_type(quote_item_rec.enty_code);
|
||||
END IF;
|
||||
|
||||
FETCH c_get_enquiry_type
|
||||
INTO l_enqu_type_row;
|
||||
CLOSE c_get_enquiry_type;
|
||||
|
||||
l_works(1) := 'Works Type: '||l_enqu_type_row.description;
|
||||
--get service pressure
|
||||
l_works(2) := 'Service Pressure: '|| quote_item_rec.svcpt_code;
|
||||
--get existing meter if appropriate
|
||||
if l_quote_item_row.enty_code <>'INSTALL' or l_quote_item_row.enty_code <>'STD INSTALL' then
|
||||
l_works(4) := 'Existing Meter Type: '|| p_enqu_row.existing_mesc_code ||', '|| p_enqu_row.existing_meter_model;
|
||||
end if;
|
||||
end case;
|
||||
|
||||
|
||||
END LOOP;
|
||||
--
|
||||
--add up all the addons and format the string
|
||||
l_works(5) := 'Add-Ons: '|| l_addons;
|
||||
|
||||
return l_works;
|
||||
end determine_works; */
|
||||
|
||||
/*
|
||||
FUNCTION determine_caveats
|
||||
--This function should return a list of caveats, probably in an array, required for
|
||||
@@ -330,7 +267,15 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
begin
|
||||
null;
|
||||
end determine_caveats;
|
||||
|
||||
/*
|
||||
PROCEDURE set_quote_items
|
||||
--This procedure sets the data for each of the items associated with the quotation.
|
||||
--may want to break it up a bit using individual functions for each type of items
|
||||
--just to make it more legible(it's rather a large procedure)
|
||||
%param p_quote_data in out - The current data for this enquiry(what write our data values to)
|
||||
%param p_quoteid - used to list all the quote items.
|
||||
%param p_enqu_row - the current enquiry row to get data only available in the enquiry.
|
||||
*/
|
||||
procedure set_quote_items_data (p_quote_data in out quote_data, p_quoteid number, p_enqu_row enquiries%ROWTYPE) is
|
||||
--Enquiry type
|
||||
l_enqu_type_row enquiry_types%ROWTYPE;
|
||||
@@ -352,36 +297,112 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
l_addons varchar(300); --list of addons for the quote
|
||||
l_housing_row housings%ROWTYPE;
|
||||
l_base_row bases%ROWTYPE;
|
||||
l_meter_row meters%ROWTYPE; -- used to get the qmax and qmin of the meter
|
||||
l_total_cost number; --used to figure out the liquidated damages costs
|
||||
l_counter number;
|
||||
begin
|
||||
--cycle through the quote items picking up each item to display on the
|
||||
--description of works section
|
||||
l_counter := 0;
|
||||
FOR quote_item_rec IN c_get_quote_item(p_quoteid) LOOP
|
||||
l_counter := l_counter + 1;
|
||||
case quote_item_rec.quit_type
|
||||
when 'BQI' then --base item
|
||||
l_addons := l_addons || ', Base';
|
||||
--Set the costs
|
||||
p_quote_data.quote_costs(l_counter).cost_description := 'Base Materials cost';
|
||||
p_quote_data.quote_costs(l_counter).cost_price := quote_item_rec.selling_price;
|
||||
if not (quote_item_rec.delivery_price is null) then
|
||||
p_quote_data.quote_costs(l_counter).cost_description := 'Base Labour cost';
|
||||
p_quote_data.quote_costs(l_counter).cost_price := quote_item_rec.delivery_price;
|
||||
end if;
|
||||
--get the base details
|
||||
l_base_row := get_base_row(quote_item_rec.bas_code);
|
||||
p_quote_data.base_length := l_base_row.dim_a;
|
||||
p_quote_data.base_depth := l_base_row.dim_b;
|
||||
p_quote_data.base_height := 1; -- need to reference the bases table after AH has added the column
|
||||
|
||||
p_quote_data.base_height := l_base_row.depth;
|
||||
--get base technical details
|
||||
p_quote_data.base_dimensions(1) := l_base_row.depth;
|
||||
p_quote_data.base_dimensions(2) := l_base_row.dim_a;
|
||||
p_quote_data.base_dimensions(3) := l_base_row.dim_b;
|
||||
p_quote_data.base_dimensions(4) := l_base_row.dim_c;
|
||||
p_quote_data.base_dimensions(5) := l_base_row.dim_d;
|
||||
p_quote_data.base_dimensions(6) := l_base_row.dim_e;
|
||||
p_quote_data.base_dimensions(7) := l_base_row.dim_f;
|
||||
p_quote_data.base_dimensions(8) := l_base_row.dim_g;
|
||||
p_quote_data.base_dimensions(9) := l_base_row.dim_h;
|
||||
p_quote_data.base_dimensions(10) := l_base_row.dim_i;
|
||||
when 'HQI' then --housing item
|
||||
l_addons := l_addons || ', Housing';
|
||||
--Set up the costs
|
||||
p_quote_data.quote_costs(l_counter).cost_description := 'Housing Materials cost';
|
||||
p_quote_data.quote_costs(l_counter).cost_price := quote_item_rec.selling_price;
|
||||
if not (quote_item_rec.delivery_price is null) then
|
||||
p_quote_data.quote_costs(l_counter).cost_description := 'Housing Labour cost';
|
||||
p_quote_data.quote_costs(l_counter).cost_price := quote_item_rec.delivery_price;
|
||||
end if;
|
||||
--get the housing code and return the housing details into p_quote_data
|
||||
l_housing_row := get_housing_row(quote_item_rec.hou_code);
|
||||
p_quote_data.house_length := l_housing_row.dim_l;
|
||||
p_quote_data.house_depth := l_housing_row.dim_w;
|
||||
p_quote_data.house_height := l_housing_row.dim_h;
|
||||
p_quote_data.house_ventilation := ((l_housing_row.dim_l*l_housing_row.dim_w)/100)*3;
|
||||
--get housing technical details
|
||||
p_quote_data.house_dimensions(1) := l_housing_row.dim_l;
|
||||
p_quote_data.house_dimensions(2) := l_housing_row.dim_w;
|
||||
p_quote_data.house_dimensions(3) := l_housing_row.dim_h;
|
||||
p_quote_data.house_dimensions(4) := l_housing_row.weight;
|
||||
|
||||
when 'AQI' then --add-on item
|
||||
--If we get time add an if statement round this that checks if the
|
||||
--Additional Item is lifting gear that it only appears for
|
||||
--LP Diaphgram install/std install jobs
|
||||
--Get costs
|
||||
l_add_item_row := get_additional_item(quote_item_rec.adit_code);
|
||||
p_quote_data.quote_costs(l_counter).cost_description := l_add_item_row.description||' Materials cost';
|
||||
p_quote_data.quote_costs(l_counter).cost_price := quote_item_rec.selling_price;
|
||||
if not(quote_item_rec.delivery_price is null) then
|
||||
p_quote_data.quote_costs(l_counter).cost_description := l_add_item_row.description||' Labour cost';
|
||||
p_quote_data.quote_costs(l_counter).cost_price := quote_item_rec.delivery_price;
|
||||
end if;
|
||||
--set the list of add-ons for this quote
|
||||
l_addons := l_addons || ', '||l_add_item_row.description;
|
||||
when 'MQI' then --module item
|
||||
--get costs
|
||||
p_quote_data.quote_costs(l_counter).cost_description := 'Module Materials cost';
|
||||
p_quote_data.quote_costs(l_counter).cost_price := quote_item_rec.selling_price;
|
||||
if not(quote_item_rec.delivery_price is null) then
|
||||
p_quote_data.quote_costs(l_counter).cost_description := 'Module Labour cost';
|
||||
p_quote_data.quote_costs(l_counter).cost_price := quote_item_rec.delivery_price;
|
||||
end if;
|
||||
--other module details
|
||||
l_module_row := get_module_row (quote_item_rec.modu_code);
|
||||
l_works(3) := 'Meter Type: '|| l_module_row.svcp_code || ' ' || l_module_row.metr_code;
|
||||
p_quote_data.outlet_termninal_size := l_module_row.outlet_size;
|
||||
--module technical details
|
||||
p_quote_data.module_dimensions(1) := l_module_row.dim_a;
|
||||
p_quote_data.module_dimensions(2) := l_module_row.dim_b;
|
||||
p_quote_data.module_dimensions(3) := l_module_row.dim_c;
|
||||
p_quote_data.module_dimensions(4) := l_module_row.dim_d;
|
||||
p_quote_data.module_dimensions(5) := l_module_row.dim_e;
|
||||
p_quote_data.module_dimensions(6) := l_module_row.dim_h;
|
||||
p_quote_data.module_dimensions(7) := l_module_row.inlet_height;
|
||||
p_quote_data.module_dimensions(8) := l_module_row.outlet_height;
|
||||
p_quote_data.module_dimensions(9) := l_module_row.weight;
|
||||
p_quote_data.module_reference := l_module_row.code;
|
||||
p_quote_data.module_inlet_height := l_module_row.inlet_height;
|
||||
p_quote_data.module_outlet_height := l_module_row.outlet_height;
|
||||
p_quote_data.module_inlet_size := l_module_row.inlet_size;
|
||||
p_quote_data.module_outlet_size := l_module_row.outlet_size;
|
||||
p_quote_data.module_inlet_type := l_module_row.inlet_cnty_code;
|
||||
p_quote_data.module_outlet_type := l_module_row.outlet_cnty_code;
|
||||
p_quote_data.module_inlet_orientation := l_module_row.inlet_cnor_code;
|
||||
p_quote_data.module_outlet_orientation := l_module_row.outlet_cnor_code;
|
||||
--get meters qmax/qmin
|
||||
l_meter_row := get_meter_row(l_module_row.metr_code);
|
||||
|
||||
p_quote_data.module_qmax := l_meter_row.qmax;
|
||||
p_quote_data.module_qmin := l_meter_row.qmin;
|
||||
when 'LQI' then --labour item (job type)
|
||||
--get type of enquiry to display as works type
|
||||
IF NOT c_get_enquiry_type%ISOPEN THEN
|
||||
@@ -450,7 +471,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
WHERE id = cp_party_id and rt_code=cp_rt_type;
|
||||
l_supplier_id number;
|
||||
l_agent_id number;
|
||||
l_address_id number;
|
||||
--l_address_id number;
|
||||
--Party name
|
||||
l_party_row parties%ROWTYPE;
|
||||
CURSOR c_get_party(cp_party_id number) IS
|
||||
@@ -469,7 +490,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
-- FROM meters
|
||||
-- WHERE id = cp_meter_id;
|
||||
--housing data
|
||||
l_housing_row housings%ROWTYPE;
|
||||
--l_housing_row housings%ROWTYPE;
|
||||
|
||||
begin
|
||||
--probably call determine caveats here
|
||||
@@ -525,8 +546,6 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
FETCH c_get_party
|
||||
INTO l_party_row;
|
||||
CLOSE c_get_party;
|
||||
l_agent_first_name := l_party_row.first_name;
|
||||
l_agent_last_name := l_party_row.last_name;
|
||||
|
||||
|
||||
l_agent_first_name := l_party_row.first_name;
|
||||
@@ -549,15 +568,17 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
l_quote_data.site_address(3) := l_enqu_row.install_street;
|
||||
l_quote_data.site_address(4) := l_enqu_row.install_city;
|
||||
l_quote_data.site_address(5) := l_enqu_row.install_postcode;
|
||||
--need to find out how to get the mam
|
||||
l_quote_data.mam := get_mam(mip_regions.get_region_for_postcode(l_enqu_row.install_postcode));
|
||||
l_quote_data.mam := '<need to write routine to get mam>';
|
||||
set_quote_items_data(l_quote_data, l_quote_row.id,l_enqu_row);
|
||||
-- l_quote_data.quote_works := determine_works(l_quote_row.id, l_enqu_row);
|
||||
l_quote_data.lead_time := get_max_lead_time(l_quote_row.id);
|
||||
l_quote_data.total_cost := get_total_cost(l_quote_row.id);
|
||||
l_quote_data.quote_costs := get_quote_costs(l_quote_row.id);
|
||||
--if
|
||||
--l_housing_row := get_housing_row(l_quo
|
||||
--l_quote_data.house_length := l_housing_row
|
||||
l_quote_data.requested_qmax := l_enqu_row.qmax;
|
||||
--get individual quote item details
|
||||
set_quote_items_data(l_quote_data, l_quote_row.id,l_enqu_row);
|
||||
--get caveats
|
||||
--determine_caveats call (this could be a procedure, depends on what GW gives us)
|
||||
--phew, lets return all that lovely data we captured then...
|
||||
return l_quote_data;
|
||||
end get_detailed_quote_data;
|
||||
|
||||
@@ -572,6 +593,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation_document IS
|
||||
begin
|
||||
null;
|
||||
end generate_detailed_quote_pdf;
|
||||
|
||||
FUNCTION build_detailed_quote(p_enquiryid in number) RETURN BOOLEAN is
|
||||
begin
|
||||
null;
|
||||
|
||||
Reference in New Issue
Block a user