Files
mip/Modules/mip_helper_special_cases.pck
hardya cae05e68a9 Address #483 with changes to DATAITEM_ROLES.csv, DATAITEM_ROLES.xls.
Add conditional compilation for debugging.

Use correct NLS language in dads.conf 

git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@4793 248e525c-4dfb-0310-94bc-949c084e9493
2008-04-14 17:04:06 +00:00

105 lines
5.1 KiB
Plaintext

CREATE OR REPLACE PACKAGE mip_helper_special_cases IS
-- Author : HARDYA
-- Created : 21/01/2008 11:40:25
-- Purpose : helper package to support special cases not provided through mip_'tablename'_helper.
PROCEDURE table_enquiries(p_rec IN enquiries%ROWTYPE
,p_mandatory_checks IN OUT mip_mandatory.t_mandatory_checks);
END mip_helper_special_cases;
/
CREATE OR REPLACE PACKAGE BODY mip_helper_special_cases IS
PROCEDURE table_enquiries(p_rec IN enquiries%ROWTYPE
,p_mandatory_checks IN OUT mip_mandatory.t_mandatory_checks) IS
l_bypass_other bypass_reasons.description%TYPE;
BEGIN
-- O-M1
IF p_rec.install_building IS NULL
AND p_rec.install_sub_building IS NULL THEN
mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks
,p_field_name => 'INSTALL_BUILDING'
,p_error_message => 'At least one of Building or Sub-Building must be completed.');
mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks
,p_field_name => 'INSTALL_SUB_BUILDING'
,p_error_message => 'At least one of Building or Sub-Building must be completed.');
END IF;
-- O-M2
IF p_rec.enty_code IN ('STD INSTALL', 'STD EXCHANGE') THEN
IF (p_rec.required_mesc_code IS NULL OR
p_rec.required_mesc_code = 'OTHER') THEN
IF p_rec.qmax IS NULL THEN
mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks
,p_field_name => 'QMAX'
,p_error_message => 'At least one of Qmax or Meter Size must be completed.');
END IF;
END IF;
END IF;
-- O-M3
IF p_rec.enty_code IN
('INSTALL', 'OFMAT', 'REMOVE', 'ADVERSARIAL', 'ALTERATION',
'CHANGE CAPACITY', 'ADDON', 'OTHER')
AND p_rec.required_svcp_code = 'IP'
AND (p_rec.required_ip_details IS NULL) THEN
mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks
,p_field_name => 'REQUIRED_SVCP_CODE'
,p_error_message => 'Required IP Details must be completed when a Service Pressure of ''IP'' is requested.');
mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks
,p_field_name => 'REQUIRED_IP_DETAILS'
,p_error_message => 'Required IP Details must be completed when a Service Pressure of ''IP'' is requested.');
END IF;
-- O-M4
IF p_rec.enty_code IN ('INSTALL', 'STD INSTALL')
AND (p_rec.mprn IS NULL AND p_rec.mprn_alt IS NULL) THEN
mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks
,p_field_name => 'MPRN'
,p_error_message => 'Either MPRN or Additional Information must be completed.');
mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks
,p_field_name => 'MPRN_ALT'
,p_error_message => 'Either MPRN or Additional Information must be completed.');
END IF;
-- O-M5
-- Tripartite Agreement and AMR -- this is a specific example of the Tripartite and addons
-- This is handled through the mip_tripartite.addon functionality
-- O-M6
IF p_rec.enty_code IN ('OFMAT', 'EXCHANGE', 'STD EXCHANGE', 'REMOVE',
'STD REMOVE', 'ADVERSARIAL', 'CHANGE CAPACITY', 'ALTERATION')
AND nvl(p_rec.existing_metr_code, 'OTHER') = 'OTHER'
AND (p_rec.existing_mesc_code IS NULL OR
p_rec.existing_mety_code IS NULL) THEN
mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks
,p_field_name => 'EXISTING_MESC_CODE'
,p_error_message => 'Either Existing Meter Model OR Existing Meter Size and Meter Type information must be completed.');
mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks
,p_field_name => 'EXISTING_METY_CODE'
,p_error_message => 'Either Existing Meter Model OR Existing Meter Size and Meter Type information must be completed.');
END IF;
-- O-M7
IF p_rec.enty_code IN
('INSTALL', 'STD INSTALL', 'EXCHANGE', 'STD EXCHANGE', 'ALTERATION',
'CHANGE CAPACITY', 'ADDON', 'OTHER') THEN
SELECT description
INTO l_bypass_other
FROM bypass_reasons
WHERE code = '7';
IF (p_rec.bypass_required = l_bypass_other AND
p_rec.bypass_other IS NULL) THEN
mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks
,p_field_name => 'BYPASS_OTHER'
,p_error_message => '''Other'' reason must be completed.');
END IF;
END IF;
END table_enquiries;
BEGIN
-- Initialization
NULL;
END mip_helper_special_cases;
/