Updated LeadTimes.csv and modules in line with Gareths email of 20/2/2008

git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@3648 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
hardya
2008-02-20 18:24:35 +00:00
parent 04581befd1
commit cc3f165ee5
15 changed files with 288 additions and 163 deletions

View File

@@ -31,6 +31,22 @@ PROCEDURE export_table_to_csv(p_table IN VARCHAR2,
end MIP_FILES;
/
create or replace package body MIP_FILES as
PROCEDURE pl(p_in VARCHAR2) IS
l_fh utl_file.file_type;
BEGIN
dbms_application_info.set_module('MIP_FILES'
,p_in);
l_fh := utl_file.fopen(location => 'WEBMIP_BULK_LOAD'
,filename => 'MIP_FILES.txt'
,open_mode => 'A');
utl_file.put_line(l_fh
,to_char(SYSDATE
,'DD/MM/YYYY HH24:MI:SS') || ',' || p_in);
utl_file.fclose(l_fh);
END pl;
/*
FUNCTION is_file_over_size_limit
- takes the uri of the file to test for size and returns true if the file
@@ -42,11 +58,12 @@ create or replace package body MIP_FILES as
BEGIN
pl('is_file_over_size_limit:'||p_uri);
SELECT doc_size
INTO l_file_size
FROM wwv_flow_files
WHERE NAME = p_uri;
pl('l_file_size:'||l_file_size);
RETURN(l_file_size > 3 * 1024 * 1024);
end is_file_over_size_limit;
@@ -60,7 +77,7 @@ create or replace package body MIP_FILES as
function are_files_over_size_limit(p_enqu_id NUMBER) return boolean is
l_total_size number;
BEGIN
pl('are_files_over_size_limit:'||p_enqu_id);
SELECT SUM(doc_size)
INTO l_total_size
FROM documents d
@@ -70,6 +87,7 @@ create or replace package body MIP_FILES as
AND d.id = dr.docu_id
AND d.uri = f.NAME;
pl('l_total_size:'||l_total_size);
RETURN (nvl(l_total_size,0) > 10 * 1024 * 1024);
end are_files_over_size_limit;
@@ -223,7 +241,8 @@ create or replace package body MIP_FILES as
p_doro_type in varchar2) return BOOLEAN is
l_doc_id number;
l_success boolean;
begin
BEGIN
pl('set_file_association, p_uri='||p_uri||', p_drwg_code='||p_drwg_code);
--reference it in the documents table
insert into documents( uri, description, id, docu_type )
values (p_uri,
@@ -249,11 +268,15 @@ create or replace package body MIP_FILES as
sysdate,
p_description,
doev_seq.NEXTVAL);
pl('check_file_sizes');
if (are_files_over_size_limit(p_enqu_id) or is_file_over_size_limit(p_uri)) and p_rt_code = 'ENQUIRY SUPPORTING DOC' and not p_enqu_id is null then
l_success := delete_file(l_doc_id,'REMOVED SIZE','webMIP determined the file or files to be too big');
pl('returning false');
return false;
else
--if it works then return true
pl('returning true');
return true;
end if;
end set_file_association;

View File

@@ -643,10 +643,10 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,upper(TRIM(inlet_cnty_code)) AS inlet_cnty_code
,upper(TRIM(drwg_code)) AS drwg_code
,upper(TRIM(metr_code)) AS metr_code
,upper(nvl(TRIM(reva_code)
,'UNKNOWN')) AS reva_code
,upper(nvl(TRIM(slva_code)
,'UNKNOWN')) AS slva_code
,upper(TRIM(reva_code)
) AS reva_code
,upper(TRIM(slva_code)
) AS slva_code
,upper(TRIM(svcp_code)) AS svcp_code
,weight
,inlet_height
@@ -661,6 +661,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,dim_c
,dim_d
,dim_e
,dim_f
,dim_h
,CASE
WHEN valid_from IS NULL THEN
@@ -709,6 +710,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,dim_b = e.dim_b
,dim_c = e.dim_c
,dim_e = e.dim_e
,dim_f = e.dim_f
,dim_h = e.dim_h
,valid_from = e.valid_from
,valid_to = e.valid_to
@@ -742,6 +744,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,dim_c
,dim_d
,dim_e
,dim_f
,dim_h
,valid_from
,valid_to
@@ -774,6 +777,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
,e.dim_c
,e.dim_d
,e.dim_e
,e.dim_f
,e.dim_h
,e.valid_from
,e.valid_to

View File

@@ -758,7 +758,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
l_agent_comt_code enquiries.agent_comt_code%TYPE;
l_agent_contact_value enquiries.agent_contact_value%TYPE;
l_email_recipient system_configuration.VALUE%TYPE;
l_email_subject VARCHAR2(80);
l_email_subject VARCHAR2(240);
l_agent_first_name parties.first_name%TYPE;
l_agent_last_name parties.last_name%TYPE;
l_agent_prty_id parties.id%TYPE;
@@ -849,6 +849,8 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
pl('mip_email.send_email_clob returned ' || SQLERRM);
END;
pl('email_quotes_available:exit');
END email_quotes_available;
PROCEDURE email_rfq_submitted(p_enqu_id IN enquiries.id%TYPE) IS
@@ -1649,6 +1651,46 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
RAISE;
END get_lead_time;
FUNCTION get_lead_time_desc(p_enty_code enquiry_types.code%TYPE
,p_mety_code meter_types.code%TYPE
,p_svcp_code service_pressures.code%TYPE
,p_qmax NUMBER) RETURN VARCHAR2 IS
l_desc VARCHAR2(400);
BEGIN
FOR l_rec IN (SELECT description
FROM (SELECT 1
,'Enquiry Type is ' || description AS description
FROM enquiry_types
WHERE code = p_enty_code
UNION
SELECT 2
,'Meter Type is ' || description
FROM meter_types
WHERE code = p_mety_code
UNION
SELECT 3
,'Service Pressure is ' || svcpt.description
FROM service_pressure_types svcpt
,service_pressures svcp
WHERE svcp.svcpt_code = svcpt.code
AND svcp.code = p_svcp_code
UNION
SELECT 4
,'Qmax is ' || p_qmax
FROM dual
WHERE p_qmax IS NOT NULL)
ORDER BY 1) LOOP
l_desc := l_desc || l_rec.description || ', ';
END LOOP;
l_desc := substr(l_desc
,1
,length(l_desc) - 2) || '.';
RETURN l_desc;
END get_lead_time_desc;
PROCEDURE produce_module_quotes(p_enqu IN t_enqu
,p_rfq_prty_id IN parties.id%TYPE
,p_owner_prty_id IN parties.id%TYPE DEFAULT NULL
@@ -1822,7 +1864,11 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
l_this_is_automatic_quote := FALSE;
add_quote_reason(p_enqu.id
,p_reason => 'Unable to find lead time for module ' ||
l_rec_module.modu_code || '.'
l_rec_module.modu_code || '. (' ||
get_lead_time_desc(p_enty_code => p_enqu.enty_code
,p_mety_code => p_enqu.existing_mety_code
,p_svcp_code => p_enqu.required_svcp_code
,p_qmax => p_enqu.qmax) || ')'
,p_internal_or_external => gc_internal_reason);
END IF;
@@ -1999,6 +2045,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
,cost_price
,selling_price
,delivery_price
,lead_time
,quit_type)
VALUES
(quit_seq.NEXTVAL
@@ -2010,6 +2057,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
,l_rec_module.laco_cost_price
,l_rec_module.laco_selling_price
,l_rec_module.laco_delivery_cost
,l_rec_module.modu_lead_time
,'LQI');
INSERT INTO quote_items
@@ -2269,8 +2317,9 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
l_produced_automatic_quote BOOLEAN;
l_this_is_automatic_quote BOOLEAN;
l_regi_code regions.code%TYPE := mip_regions.get_region_for_postcode(p_enqu.install_postcode);
l_lead_time NUMBER;
l_qute_id quotes.id%TYPE;
l_additional_costs t_rec_additional_costs;
l_labour_costs t_rec_additional_costs;
l_quote_document VARCHAR2(240);
BEGIN
pl('produce_labour_only_quotes');
@@ -2296,12 +2345,12 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
l_this_is_automatic_quote := TRUE;
l_additional_costs := get_laco(p_enty_code => p_enqu.enty_code
,p_regi_code => l_regi_code
,p_mety_code => p_enqu.existing_mety_code
,p_mesc_code => p_enqu.existing_mesc_code
,p_svcp_code => p_enqu.required_svcp_code);
IF l_additional_costs.selling_price IS NULL THEN
l_labour_costs := get_laco(p_enty_code => p_enqu.enty_code
,p_regi_code => l_regi_code
,p_mety_code => p_enqu.existing_mety_code
,p_mesc_code => p_enqu.existing_mesc_code
,p_svcp_code => p_enqu.required_svcp_code);
IF l_labour_costs.selling_price IS NULL THEN
l_this_is_automatic_quote := FALSE;
add_quote_reason(p_enqu.id
,p_reason => 'Unable to find Labour Cost (selling price) for this Enquiry Type Code: ' ||
@@ -2316,11 +2365,27 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
,p_internal_or_external => gc_internal_reason);
END IF;
l_lead_time := get_lead_time(p_enty_code => p_enqu.enty_code
,p_mety_code => p_enqu.existing_mety_code
,p_svcp_code => p_enqu.required_svcp_code
,p_qmax => p_enqu.qmax);
IF l_lead_time IS NULL THEN
l_this_is_automatic_quote := FALSE;
add_quote_reason(p_enqu.id
,p_reason => 'Unable to find lead time for ' ||
get_lead_time_desc(p_enty_code => p_enqu.enty_code
,p_mety_code => p_enqu.existing_mety_code
,p_svcp_code => p_enqu.required_svcp_code
,p_qmax => p_enqu.qmax)
,p_internal_or_external => gc_internal_reason);
END IF;
IF l_this_is_automatic_quote THEN
l_produced_automatic_quote := TRUE;
add_quote_reason(p_enqu_id => p_enqu.id
,p_reason => 'Producing an automatic quote.'
,p_reason => '
producing an automatic quote. '
,p_internal_or_external => gc_internal_reason);
l_qute_id := start_quote(p_enqu_id => p_enqu.id
@@ -2338,24 +2403,27 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
,cost_price
,selling_price
,delivery_price
,lead_time
,quit_type)
VALUES
(quit_seq.NEXTVAL
,l_qute_id
,p_enqu.enty_code
,l_additional_costs.svcpt_code
,l_labour_costs.svcpt_code
,p_enqu.existing_mesc_code
,p_enqu.existing_mety_code
,l_additional_costs.cost_price
,l_additional_costs.selling_price
,l_additional_costs.delivery_cost
,l_labour_costs.cost_price
,l_labour_costs.selling_price
,l_labour_costs.delivery_cost
,l_lead_time
,'LQI');
-- Generate the quote PDF
l_quote_document := mip_quotation_document.generate_quote_pdf(p_quote_id => l_qute_id);
add_quote_reason(p_enqu_id => p_enqu.id
,p_reason => 'Produced Quote Document ' ||
l_quote_document || '.'
,p_reason => '
produced quote document ' ||
l_quote_document || ' . '
,p_internal_or_external => gc_internal_reason);
make_quote_available(l_qute_id);
@@ -2365,7 +2433,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
IF l_produced_automatic_quote THEN
p_manual_or_automatic_quote := gc_automatic_quote;
add_quote_reason(p_enqu_id => p_enqu.id
,p_reason => '-- Produced an automatic quote.'
,p_reason => ' -- Produced an automatic quote.'
,p_internal_or_external => gc_internal_reason);
ELSE
p_manual_or_automatic_quote := gc_manual_quote;