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