Add module Qmax to bulk load process and quotation generation.
Add tripartite_agreement_message to mip_quotation.pck (supported by mip_tripartite.pck). Produces a message when enquiry does not meet tripartite requirements. Removed extraneous role types for Seed/prtp.ctl and Seed/rt.ctl. git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@3497 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
@@ -343,11 +343,11 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
(SELECT code
|
||||
,'Inserted for load_modules'
|
||||
FROM (SELECT DISTINCT code
|
||||
FROM (SELECT upper(field_2) AS code
|
||||
FROM v_complete_ext_modules
|
||||
FROM (SELECT upper(inlet_cnty_code) AS code
|
||||
FROM ext_modules
|
||||
UNION
|
||||
SELECT upper(field_3)
|
||||
FROM v_complete_ext_modules))
|
||||
SELECT upper(outlet_cnty_code)
|
||||
FROM ext_modules))
|
||||
WHERE code NOT IN (SELECT code
|
||||
FROM connection_types));
|
||||
|
||||
@@ -359,9 +359,9 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
,description)
|
||||
(SELECT code
|
||||
,'Inserted for load_modules'
|
||||
FROM (SELECT DISTINCT upper(field_4) AS code
|
||||
FROM v_complete_ext_modules
|
||||
WHERE field_4 IS NOT NULL)
|
||||
FROM (SELECT DISTINCT upper(drwg_code) AS code
|
||||
FROM ext_modules
|
||||
WHERE drwg_code IS NOT NULL)
|
||||
WHERE code NOT IN (SELECT code
|
||||
FROM drawings));
|
||||
|
||||
@@ -382,8 +382,8 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
,'MANU'
|
||||
,SYSDATE
|
||||
,USER
|
||||
FROM (SELECT DISTINCT upper(field_30) AS manu_ref
|
||||
FROM v_complete_ext_modules)
|
||||
FROM (SELECT DISTINCT upper(manu_ref) AS manu_ref
|
||||
FROM ext_modules)
|
||||
WHERE manu_ref NOT IN (SELECT manu_ref
|
||||
FROM parties
|
||||
WHERE prty_type = 'MANU'));
|
||||
@@ -417,9 +417,9 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
,.999
|
||||
,.999
|
||||
,trunc(SYSDATE)
|
||||
FROM (SELECT DISTINCT nvl(upper(field_5)
|
||||
FROM (SELECT DISTINCT nvl(upper(metr_code)
|
||||
,'UNKNOWN') AS code
|
||||
FROM v_complete_ext_modules)
|
||||
FROM ext_modules)
|
||||
WHERE code NOT IN (SELECT code
|
||||
FROM meters));
|
||||
|
||||
@@ -436,8 +436,9 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
,'UNKNOWN'
|
||||
,999
|
||||
,999
|
||||
FROM (SELECT DISTINCT upper(field_6) AS code
|
||||
FROM v_complete_ext_modules)
|
||||
FROM (SELECT DISTINCT upper(reva_code) AS code
|
||||
FROM ext_modules
|
||||
WHERE reva_code IS NOT NULL)
|
||||
WHERE code NOT IN (SELECT code
|
||||
FROM relief_valves));
|
||||
|
||||
@@ -453,8 +454,9 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
,'UNKNOWN'
|
||||
,999
|
||||
,999
|
||||
FROM (SELECT DISTINCT upper(field_7) AS code
|
||||
FROM v_complete_ext_modules)
|
||||
FROM (SELECT DISTINCT upper(slva_code) AS code
|
||||
FROM ext_modules
|
||||
WHERE slva_code IS NOT NULL)
|
||||
WHERE code NOT IN (SELECT code
|
||||
FROM slamshut_valves));
|
||||
|
||||
@@ -469,8 +471,8 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
(SELECT code
|
||||
,'UNKNOWN'
|
||||
,'Inserted for load_modules'
|
||||
FROM (SELECT DISTINCT upper(field_8) AS code
|
||||
FROM v_complete_ext_modules)
|
||||
FROM (SELECT DISTINCT upper(svcp_code) AS code
|
||||
FROM ext_modules)
|
||||
WHERE code NOT IN (SELECT code
|
||||
FROM service_pressures));
|
||||
|
||||
@@ -505,9 +507,9 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
,999
|
||||
,999
|
||||
,999
|
||||
FROM (SELECT DISTINCT upper(field_15) AS code
|
||||
FROM v_complete_ext_modules
|
||||
WHERE field_15 IS NOT NULL)
|
||||
FROM (SELECT DISTINCT upper(bas_code) AS code
|
||||
FROM ext_modules
|
||||
WHERE bas_code IS NOT NULL)
|
||||
WHERE code NOT IN (SELECT code
|
||||
FROM bases));
|
||||
|
||||
@@ -534,9 +536,9 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
,999
|
||||
,999
|
||||
,999
|
||||
FROM (SELECT DISTINCT upper(field_16) AS code
|
||||
FROM v_complete_ext_modules
|
||||
WHERE field_16 IS NOT NULL)
|
||||
FROM (SELECT DISTINCT upper(hou_code) AS code
|
||||
FROM ext_modules
|
||||
WHERE hou_code IS NOT NULL)
|
||||
WHERE code NOT IN (SELECT code
|
||||
FROM housings));
|
||||
|
||||
@@ -555,9 +557,9 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
,'Inserted for load_modules'
|
||||
,999
|
||||
,999
|
||||
FROM (SELECT DISTINCT upper(field_25) AS code
|
||||
FROM v_complete_ext_modules
|
||||
WHERE field_25 IS NOT NULL)
|
||||
FROM (SELECT DISTINCT upper(regu_code) AS code
|
||||
FROM ext_modules
|
||||
WHERE regu_code IS NOT NULL)
|
||||
WHERE code NOT IN (SELECT code
|
||||
FROM regulators));
|
||||
|
||||
@@ -572,9 +574,9 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
(SELECT code
|
||||
,'UNKNOWN'
|
||||
,999
|
||||
FROM (SELECT DISTINCT upper(field_26) AS code
|
||||
FROM v_complete_ext_modules
|
||||
WHERE field_26 IS NOT NULL)
|
||||
FROM (SELECT DISTINCT upper(fltr_code) AS code
|
||||
FROM ext_modules
|
||||
WHERE fltr_code IS NOT NULL)
|
||||
WHERE code NOT IN (SELECT code
|
||||
FROM filters));
|
||||
|
||||
@@ -588,11 +590,11 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
(SELECT code
|
||||
,'Inserted for load_modules'
|
||||
FROM (SELECT DISTINCT code
|
||||
FROM (SELECT upper(field_27) AS code
|
||||
FROM v_complete_ext_modules
|
||||
FROM (SELECT upper(inlet_cnor_code) AS code
|
||||
FROM ext_modules
|
||||
UNION
|
||||
SELECT upper(field_28)
|
||||
FROM v_complete_ext_modules)
|
||||
SELECT upper(outlet_cnor_code)
|
||||
FROM ext_modules)
|
||||
WHERE code IS NOT NULL)
|
||||
WHERE code NOT IN (SELECT code
|
||||
FROM connection_orientations));
|
||||
@@ -601,148 +603,150 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
,'FM099G999G999') || ': connection_orientations');
|
||||
|
||||
MERGE INTO modules modu
|
||||
USING (SELECT upper(field_1) AS field_1
|
||||
,upper(field_2) AS field_2
|
||||
,upper(field_3) AS field_3
|
||||
,upper(field_4) AS field_4 -- drwg_code
|
||||
,upper(field_5) AS field_5
|
||||
,upper(field_6) AS field_6
|
||||
,upper(field_7) AS field_7
|
||||
,upper(field_8) AS field_8
|
||||
,field_9
|
||||
,field_10
|
||||
,field_11
|
||||
,field_12
|
||||
,field_13
|
||||
,field_14
|
||||
,upper(field_15) AS field_15 -- base
|
||||
,upper(field_16) AS field_16 -- housing
|
||||
,field_17
|
||||
,field_18
|
||||
,field_19
|
||||
,field_20
|
||||
,field_21
|
||||
,field_22
|
||||
USING (SELECT upper(code) AS code
|
||||
,upper(outlet_cnty_code) AS outlet_cnty_code
|
||||
,upper(inlet_cnty_code) AS inlet_cnty_code
|
||||
,upper(drwg_code) AS drwg_code
|
||||
,upper(metr_code) AS metr_code
|
||||
,upper(nvl(reva_code
|
||||
,'UNKNOWN')) AS reva_code
|
||||
,upper(nvl(slva_code
|
||||
,'UNKNOWN')) AS slva_code
|
||||
,upper(svcp_code) AS svcp_code
|
||||
,weight
|
||||
,inlet_height
|
||||
,inlet_size
|
||||
,outlet_pressure
|
||||
,outlet_height
|
||||
,outlet_size
|
||||
,upper(bas_code) AS bas_code
|
||||
,upper(hou_code) AS hou_code
|
||||
,dim_a
|
||||
,dim_b
|
||||
,dim_c
|
||||
,dim_d
|
||||
,dim_e
|
||||
,dim_h
|
||||
,CASE
|
||||
WHEN field_23 IS NULL THEN
|
||||
WHEN valid_from IS NULL THEN
|
||||
trunc(SYSDATE)
|
||||
ELSE
|
||||
to_date(field_23
|
||||
to_date(valid_from
|
||||
,'dd/mm/yyyy')
|
||||
END AS field_23
|
||||
END AS valid_from
|
||||
,CASE
|
||||
WHEN field_24 IS NULL THEN
|
||||
WHEN valid_to IS NULL THEN
|
||||
NULL
|
||||
ELSE
|
||||
to_date(field_24
|
||||
to_date(valid_to
|
||||
,'dd/mm/yyyy')
|
||||
END AS field_24
|
||||
,upper(field_25) AS field_25 -- regu_code
|
||||
,upper(field_26) AS field_26 -- fltr_code
|
||||
,upper(field_27) AS field_27 -- inlet connection orientation
|
||||
,upper(field_28) AS field_28 -- outlet ...
|
||||
,field_29
|
||||
,p.id AS field_30 -- MANU_REF
|
||||
FROM v_complete_ext_modules
|
||||
,parties p
|
||||
WHERE p.manu_ref = upper(field_30)
|
||||
END AS valid_to
|
||||
,upper(regu_code) AS regu_code
|
||||
,upper(fltr_code) AS fltr_code
|
||||
,upper(inlet_cnor_code) AS inlet_cnor_code
|
||||
,upper(outlet_cnor_code) AS outlet_cnor_code
|
||||
,lead_time
|
||||
,p.id AS prty_id
|
||||
,qmax
|
||||
FROM ext_modules e
|
||||
,parties p
|
||||
WHERE p.manu_ref = upper(e.manu_ref)
|
||||
AND p.prty_type = 'MANU') e
|
||||
ON (e.field_1 = modu.code)
|
||||
ON (upper(e.code) = modu.code)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE
|
||||
SET outlet_cnty_code = e.field_2
|
||||
,inlet_cnty_code = e.field_3
|
||||
,drwg_code = e.field_4
|
||||
,metr_code = e.field_5
|
||||
,reva_code = e.field_6
|
||||
,slva_code = e.field_7
|
||||
,svcp_code = e.field_8
|
||||
,weight = e.field_9
|
||||
,inlet_height = e.field_10
|
||||
,inlet_size = e.field_11
|
||||
,outlet_pressure = e.field_12
|
||||
,outlet_height = e.field_13
|
||||
,outlet_size = e.field_14
|
||||
,bas_code = e.field_15
|
||||
,hou_code = e.field_16
|
||||
,dim_a = e.field_17
|
||||
,dim_b = e.field_18
|
||||
,dim_c = e.field_19
|
||||
,dim_e = e.field_20
|
||||
,dim_h = e.field_22
|
||||
,valid_from = e.field_23
|
||||
,valid_to = e.field_24
|
||||
,regu_code = e.field_25
|
||||
,fltr_code = e.field_26
|
||||
,inlet_cnor_code = e.field_27
|
||||
,outlet_cnor_code = e.field_28
|
||||
,lead_time = e.field_29
|
||||
,prty_id = e.field_30
|
||||
|
||||
|
||||
SET outlet_cnty_code = e.outlet_cnty_code
|
||||
,inlet_cnty_code = e.inlet_cnty_code
|
||||
,drwg_code = e.drwg_code
|
||||
,metr_code = e.metr_code
|
||||
,reva_code = e.reva_code
|
||||
,slva_code = e.slva_code
|
||||
,svcp_code = e.svcp_code
|
||||
,weight = e.weight
|
||||
,inlet_height = e.inlet_height
|
||||
,inlet_size = e.inlet_size
|
||||
,outlet_pressure = e.outlet_pressure
|
||||
,outlet_height = e.outlet_height
|
||||
,outlet_size = e.outlet_size
|
||||
,bas_code = e.bas_code
|
||||
,hou_code = e.hou_code
|
||||
,dim_a = e.dim_a
|
||||
,dim_b = e.dim_b
|
||||
,dim_c = e.dim_c
|
||||
,dim_e = e.dim_e
|
||||
,dim_h = e.dim_h
|
||||
,valid_from = e.valid_from
|
||||
,valid_to = e.valid_to
|
||||
,regu_code = e.regu_code
|
||||
,fltr_code = e.fltr_code
|
||||
,inlet_cnor_code = e.inlet_cnor_code
|
||||
,outlet_cnor_code = e.outlet_cnor_code
|
||||
,lead_time = e.lead_time
|
||||
,prty_id = e.prty_id
|
||||
,qmax = e.qmax
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT
|
||||
(code
|
||||
,drwg_code
|
||||
,fltr_code
|
||||
,inlet_cnor_code
|
||||
,inlet_cnty_code
|
||||
,metr_code
|
||||
,outlet_cnor_code
|
||||
,outlet_cnty_code
|
||||
,prty_id
|
||||
,regu_code
|
||||
,inlet_cnty_code
|
||||
,drwg_code
|
||||
,metr_code
|
||||
,reva_code
|
||||
,slva_code
|
||||
,svcp_code
|
||||
,lead_time
|
||||
,weight
|
||||
,inlet_height
|
||||
,inlet_size
|
||||
,outlet_pressure
|
||||
,outlet_height
|
||||
,outlet_size
|
||||
,bas_code
|
||||
,hou_code
|
||||
,dim_a
|
||||
,dim_b
|
||||
,dim_c
|
||||
,dim_d
|
||||
,dim_e
|
||||
,dim_h
|
||||
,valid_from
|
||||
,bas_code
|
||||
,hou_code
|
||||
,valid_to)
|
||||
,valid_to
|
||||
,regu_code
|
||||
,fltr_code
|
||||
,inlet_cnor_code
|
||||
,outlet_cnor_code
|
||||
,lead_time
|
||||
,prty_id
|
||||
,qmax)
|
||||
VALUES
|
||||
(e.field_1
|
||||
,e.field_4
|
||||
,e.field_26
|
||||
,e.field_27
|
||||
,e.field_3
|
||||
,e.field_5
|
||||
,e.field_28
|
||||
,e.field_2 -- outlet_cnty_code
|
||||
,e.field_30
|
||||
,e.field_25
|
||||
,e.field_6
|
||||
,e.field_7
|
||||
,e.field_8
|
||||
,e.field_29
|
||||
,e.field_9
|
||||
,e.field_10
|
||||
,e.field_11 -- inlet size
|
||||
,e.field_12
|
||||
,e.field_13
|
||||
,e.field_14
|
||||
,e.field_17
|
||||
,e.field_18
|
||||
,e.field_19
|
||||
,e.field_20
|
||||
,e.field_21
|
||||
,e.field_22
|
||||
,e.field_23
|
||||
,e.field_15
|
||||
,e.field_16
|
||||
,e.field_24) log errors reject LIMIT unlimited;
|
||||
(e.code
|
||||
,e.outlet_cnty_code
|
||||
,e.inlet_cnty_code
|
||||
,e.drwg_code
|
||||
,e.metr_code
|
||||
,e.reva_code
|
||||
,e.slva_code
|
||||
,e.svcp_code
|
||||
,e.weight
|
||||
,e.inlet_height
|
||||
,e.inlet_size
|
||||
,e.outlet_pressure
|
||||
,e.outlet_height
|
||||
,e.outlet_size
|
||||
,e.bas_code
|
||||
,e.hou_code
|
||||
,e.dim_a
|
||||
,e.dim_b
|
||||
,e.dim_c
|
||||
,e.dim_e
|
||||
,e.dim_h
|
||||
,e.valid_from
|
||||
,e.valid_to
|
||||
,e.regu_code
|
||||
,e.fltr_code
|
||||
,e.inlet_cnor_code
|
||||
,e.outlet_cnor_code
|
||||
,e.lead_time
|
||||
,e.prty_id
|
||||
,e.qmax) log errors reject LIMIT unlimited;
|
||||
|
||||
pl(to_char(SQL%ROWCOUNT
|
||||
,'FM099G999G999') || ': modules');
|
||||
@@ -1375,7 +1379,7 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
|
||||
,e.mety_code) log errors reject LIMIT unlimited;
|
||||
|
||||
pl(to_char(SQL%ROWCOUNT
|
||||
,'FM099G999G999') ||': '|| l_enty.code || ':NETW0' ||
|
||||
,'FM099G999G999') || ': ' || l_enty.code || ':NETW0' ||
|
||||
l_network || ': labour');
|
||||
|
||||
END LOOP;
|
||||
|
||||
@@ -116,8 +116,13 @@ CREATE OR REPLACE PACKAGE mip_quotation IS
|
||||
|
||||
PROCEDURE lapse_quotes_job;
|
||||
|
||||
/*TESTING ONLY*/
|
||||
PROCEDURE email_request_for_mq(p_enqu_id IN enquiries.id%TYPE);
|
||||
/** Return a message if the Tripartite agreement is broached
|
||||
%param p_rec record containing enquiry details to be checked
|
||||
%return message is the agreement was broached
|
||||
*/
|
||||
FUNCTION tripartite_agreement_message(p_rec IN mip_enquiries_helper.t_rec_enquiries)
|
||||
RETURN VARCHAR2;
|
||||
|
||||
END mip_quotation;
|
||||
/
|
||||
CREATE OR REPLACE PACKAGE BODY mip_quotation IS
|
||||
@@ -440,8 +445,8 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS
|
||||
pl('mark_enquiry_submitted');
|
||||
|
||||
add_enquiry_event(p_enqu_id => p_enqu_id
|
||||
,p_enst_code => 'SUBMITTED'
|
||||
,p_event_date => SYSDATE);
|
||||
,p_enst_code => 'SUBMITTED'
|
||||
,p_event_date => SYSDATE);
|
||||
|
||||
email_rfq_submitted(p_enqu_id);
|
||||
END mark_enquiry_submitted;
|
||||
@@ -449,10 +454,10 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS
|
||||
PROCEDURE mark_enquiry_quoted(p_enqu_id IN enquiries.id%TYPE) IS
|
||||
BEGIN
|
||||
pl('mark_enquiry_quoted');
|
||||
|
||||
|
||||
add_enquiry_event(p_enqu_id => p_enqu_id
|
||||
,p_enst_code => 'QUOTED'
|
||||
,p_event_date => SYSDATE);
|
||||
,p_enst_code => 'QUOTED'
|
||||
,p_event_date => SYSDATE);
|
||||
|
||||
email_quotes_available(p_enqu_id);
|
||||
|
||||
@@ -461,10 +466,10 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS
|
||||
PROCEDURE mark_enquiry_invalid(p_enqu_id IN enquiries.id%TYPE) IS
|
||||
BEGIN
|
||||
pl('mark_enquiry_invalid');
|
||||
|
||||
|
||||
add_enquiry_event(p_enqu_id => p_enqu_id
|
||||
,p_enst_code => 'INVALID'
|
||||
,p_event_date => SYSDATE);
|
||||
,p_enst_code => 'INVALID'
|
||||
,p_event_date => SYSDATE);
|
||||
END mark_enquiry_invalid;
|
||||
|
||||
FUNCTION get_system_configuration_value(p_parameter IN system_configuration.parameter%TYPE)
|
||||
@@ -1260,6 +1265,38 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
|
||||
|
||||
END survey_required;
|
||||
|
||||
FUNCTION tripartite_agreement_message(p_rec IN mip_enquiries_helper.t_rec_enquiries)
|
||||
RETURN VARCHAR2 IS
|
||||
l_tab_messages mip_tripartite.t_tab_messages;
|
||||
l_return VARCHAR2(4000);
|
||||
l_valid BOOLEAN;
|
||||
l_idx INTEGER;
|
||||
BEGIN
|
||||
|
||||
pl('tripartite_agreement_message');
|
||||
|
||||
l_valid := mip_tripartite.valid_enquiry(p_rec => p_rec
|
||||
,p_tab_messages => l_tab_messages);
|
||||
|
||||
-- processing an enquiry that has not passed the tripartite agreement
|
||||
-- infers a processing error
|
||||
IF NOT l_valid THEN
|
||||
l_idx := l_tab_messages.FIRST;
|
||||
LOOP
|
||||
EXIT WHEN l_idx IS NULL;
|
||||
l_return := l_return || l_tab_messages(l_idx) || ',';
|
||||
l_idx := l_tab_messages.NEXT(l_idx);
|
||||
END LOOP;
|
||||
-- remove the trailing comma
|
||||
l_return := substr(l_return
|
||||
,1
|
||||
,length(l_return) - 1);
|
||||
END IF;
|
||||
|
||||
RETURN l_return;
|
||||
|
||||
END tripartite_agreement_message;
|
||||
|
||||
FUNCTION tripartite_agreement_satisfied(p_enqu_id IN enquiries.id%TYPE)
|
||||
RETURN BOOLEAN IS
|
||||
l_tab_messages mip_tripartite.t_tab_messages;
|
||||
@@ -1631,6 +1668,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
|
||||
,modu.hou_code AS hou_code
|
||||
,modu.inlet_orientation AS modu_inlet_orientation
|
||||
,modu.outlet_orientation AS modu_outlet_orientation
|
||||
,modu.qmax
|
||||
,NULL AS hou_selling_price
|
||||
,NULL AS hou_cost_price
|
||||
,NULL AS hou_delivery_cost
|
||||
@@ -1640,11 +1678,8 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
|
||||
,NULL AS bas_delivery_cost
|
||||
,metr.code AS metr_code
|
||||
,metr.qnom
|
||||
,metr.qmax
|
||||
,metr.qmax AS metr_qmax
|
||||
,metr.qmin
|
||||
,metr.selling_price AS metr_selling_price
|
||||
,metr.cost_price AS metr_cost_price
|
||||
,metr.delivery_cost AS metr_delivery_cost
|
||||
,metr.mety_code
|
||||
,NULL AS laco_mety_code
|
||||
,NULL AS laco_svcpt_code
|
||||
@@ -1676,6 +1711,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
|
||||
,modu.metr_code
|
||||
,modu.hou_code
|
||||
,modu.bas_code
|
||||
,modu.qmax
|
||||
,svcp_code
|
||||
,outlet_pressure
|
||||
,cnor_i.description AS inlet_orientation
|
||||
@@ -1713,34 +1749,13 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
|
||||
,metr.qmin
|
||||
,metr.qnom
|
||||
,metr.mety_code
|
||||
,selling_price
|
||||
,cost_price
|
||||
,delivery_cost
|
||||
FROM meters metr
|
||||
,(SELECT metr_code
|
||||
,selling_price
|
||||
,cost_price
|
||||
,delivery_cost
|
||||
FROM (SELECT row_number() over(PARTITION BY metr_code ORDER BY(decode(regi_code, l_regi_code, 1, 999))) AS accuracy
|
||||
,metr_code
|
||||
,selling_price
|
||||
,cost_price
|
||||
,delivery_cost
|
||||
,ROWID
|
||||
FROM v_meco cost
|
||||
WHERE SYSDATE BETWEEN
|
||||
cost.effective_from AND
|
||||
cost.effective_to
|
||||
AND (regi_code =
|
||||
l_regi_code OR
|
||||
regi_code IS NULL))
|
||||
WHERE accuracy <= 1) cost
|
||||
WHERE metr.code = cost.metr_code(+)) metr
|
||||
FROM meters metr
|
||||
) metr
|
||||
WHERE modu.svcp_code = p_enqu.required_svcp_code
|
||||
AND modu.outlet_pressure =
|
||||
p_enqu.required_metering_pressure
|
||||
AND metr.code = modu.metr_code
|
||||
AND metr.qmax >= p_enqu.qmax) LOOP
|
||||
AND modu.qmax >= p_enqu.qmax) LOOP
|
||||
l_this_is_automatic_quote := TRUE;
|
||||
add_quote_reason(p_enqu.id
|
||||
,p_reason => 'Considering module : ' ||
|
||||
|
||||
@@ -50,6 +50,13 @@ CREATE OR REPLACE PACKAGE mip_tripartite IS
|
||||
*/
|
||||
FUNCTION valid_enquiry(p_enqu_id IN enquiries.id%TYPE
|
||||
,p_tab_messages OUT t_tab_messages) RETURN BOOLEAN;
|
||||
/** Is the given enquiry valid with respect to the Tripartite arrangements?
|
||||
%param p_rec a record containing details of the enquiry to be checked
|
||||
%param p_tab_messages reasons for the enquiry not being valid
|
||||
%return TRUE if the enquiry is valid
|
||||
*/
|
||||
FUNCTION valid_enquiry(p_rec IN mip_enquiries_helper.t_rec_enquiries
|
||||
,p_tab_messages OUT t_tab_messages) RETURN BOOLEAN;
|
||||
END mip_tripartite;
|
||||
/
|
||||
CREATE OR REPLACE PACKAGE BODY mip_tripartite IS
|
||||
@@ -62,7 +69,7 @@ CREATE OR REPLACE PACKAGE BODY mip_tripartite IS
|
||||
|
||||
FUNCTION tripartite_region(p_postcode IN VARCHAR2) RETURN BOOLEAN IS
|
||||
l_regi_code regions.code%TYPE;
|
||||
l_rec_found NUMBER DEFAULT 0;
|
||||
l_rec_found NUMBER DEFAULT 0;
|
||||
BEGIN
|
||||
|
||||
cout_assert.istrue(mip_regions.valid_postcode_format(p_postcode => p_postcode)
|
||||
@@ -170,6 +177,40 @@ CREATE OR REPLACE PACKAGE BODY mip_tripartite IS
|
||||
|
||||
END addon_allowed;
|
||||
|
||||
FUNCTION addons_allowed(p_amr_required IN enquiries.amr_required%TYPE
|
||||
,p_ems_required IN enquiries.ems_required%TYPE
|
||||
,p_bypass_required IN enquiries.bypass_required%TYPE
|
||||
,p_regi_code IN regions.code%TYPE
|
||||
,p_tab_messages IN OUT t_tab_messages)
|
||||
RETURN BOOLEAN IS
|
||||
l_valid BOOLEAN DEFAULT TRUE;
|
||||
BEGIN
|
||||
|
||||
IF p_amr_required = 'YES'
|
||||
AND NOT addon_allowed(p_adit_code => 'AMR'
|
||||
,p_regi_code => p_regi_code) THEN
|
||||
l_valid := FALSE;
|
||||
al('Tripartite agreement prevents AMR being requested.'
|
||||
,p_tab_messages);
|
||||
END IF;
|
||||
IF p_ems_required = 'YES'
|
||||
AND NOT addon_allowed(p_adit_code => 'EMS'
|
||||
,p_regi_code => p_regi_code) THEN
|
||||
l_valid := FALSE;
|
||||
al('Tripartite agreement prevents EMS being requested.'
|
||||
,p_tab_messages);
|
||||
END IF;
|
||||
IF p_bypass_required = 'YES'
|
||||
AND NOT addon_allowed(p_adit_code => 'BYPASS'
|
||||
,p_regi_code => p_regi_code) THEN
|
||||
l_valid := FALSE;
|
||||
al('Tripartite agreement prevents Bypass being requested.'
|
||||
,p_tab_messages);
|
||||
END IF;
|
||||
|
||||
RETURN l_valid;
|
||||
END addons_allowed;
|
||||
|
||||
FUNCTION addons_allowed(p_enqu_id IN enquiries.id%TYPE
|
||||
,p_tab_messages IN OUT t_tab_messages)
|
||||
RETURN BOOLEAN IS
|
||||
@@ -193,31 +234,46 @@ CREATE OR REPLACE PACKAGE BODY mip_tripartite IS
|
||||
WHERE id = p_enqu_id;
|
||||
|
||||
l_regi_code := mip_regions.get_region_for_postcode(p_postcode => l_postcode);
|
||||
IF l_amr_required = 'YES'
|
||||
AND NOT addon_allowed(p_adit_code => 'AMR'
|
||||
,p_regi_code => l_regi_code) THEN
|
||||
l_valid := FALSE;
|
||||
al('Tripartite agreement prevents AMR being requested.'
|
||||
,p_tab_messages);
|
||||
END IF;
|
||||
IF l_ems_required = 'YES'
|
||||
AND NOT addon_allowed(p_adit_code => 'EMS'
|
||||
,p_regi_code => l_regi_code) THEN
|
||||
l_valid := FALSE;
|
||||
al('Tripartite agreement prevents EMS being requested.'
|
||||
,p_tab_messages);
|
||||
END IF;
|
||||
IF l_bypass_required = 'YES'
|
||||
AND NOT addon_allowed(p_adit_code => 'BYPASS'
|
||||
,p_regi_code => l_regi_code) THEN
|
||||
l_valid := FALSE;
|
||||
al('Tripartite agreement prevents Bypass being requested.'
|
||||
,p_tab_messages);
|
||||
END IF;
|
||||
|
||||
l_valid := addons_allowed(p_amr_required => l_amr_required
|
||||
,p_ems_required => l_ems_required
|
||||
,p_bypass_required => l_bypass_required
|
||||
,p_regi_code => l_regi_code
|
||||
|
||||
,p_tab_messages => p_tab_messages);
|
||||
RETURN l_valid;
|
||||
END addons_allowed;
|
||||
|
||||
FUNCTION valid_enquiry(p_rec IN mip_enquiries_helper.t_rec_enquiries
|
||||
,p_tab_messages OUT t_tab_messages) RETURN BOOLEAN IS
|
||||
l_tab_messages t_tab_messages;
|
||||
l_valid BOOLEAN DEFAULT TRUE;
|
||||
l_regi_code regions.code%TYPE;
|
||||
l_supp_prty_id parties.id%TYPE;
|
||||
BEGIN
|
||||
l_regi_code := mip_regions.get_region_for_postcode(p_postcode => p_rec.install_postcode);
|
||||
l_supp_prty_id := mip_enquiry.get_enquiry_role(p_enquiryid => p_rec.id
|
||||
,p_rolecode => 'SUPP');
|
||||
IF NOT enquiry_allowed(p_supp_prty_id => l_supp_prty_id
|
||||
,p_enty_code => p_rec.enty_code
|
||||
,p_regi_code => l_regi_code) THEN
|
||||
al('Tripartite agreement prevents this enquiry being processed.'
|
||||
,l_tab_messages);
|
||||
l_valid := FALSE;
|
||||
ELSE
|
||||
l_valid := addons_allowed(p_amr_required => p_rec.amr_required
|
||||
,p_ems_required => p_rec.ems_required
|
||||
,p_bypass_required => p_rec.bypass_required
|
||||
,p_regi_code => l_regi_code
|
||||
,p_tab_messages => l_tab_messages);
|
||||
END IF;
|
||||
|
||||
p_tab_messages := l_tab_messages;
|
||||
|
||||
RETURN l_valid;
|
||||
|
||||
END valid_enquiry;
|
||||
|
||||
FUNCTION valid_enquiry(p_enqu_id IN enquiries.id%TYPE
|
||||
,p_tab_messages OUT t_tab_messages) RETURN BOOLEAN IS
|
||||
l_tab_messages t_tab_messages;
|
||||
|
||||
Reference in New Issue
Block a user