Changed mandatory packages (mip_mandatory.pck and gen_mandatory.prc) to produce label conditions for the enquiry screen.
Expose addon_allowed in mip_tripartite.pck. git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@3957 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
@@ -63,7 +63,7 @@ BEGIN
|
||||
add_sql(l_sql
|
||||
,' ,1');
|
||||
add_sql(l_sql
|
||||
,' ,1) IN (''M'',''O'')');
|
||||
,' ,1) IN (''M'',''O'',''H'')');
|
||||
add_sql(l_sql
|
||||
,')');
|
||||
--dbms_output.put_line(l_sql);
|
||||
@@ -197,7 +197,22 @@ BEGIN
|
||||
,' RETURN BOOLEAN;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
add_sql(l_sql
|
||||
,'FUNCTION check_condition (p_enty_code in enquiries.enty_code%type');
|
||||
add_sql(l_sql
|
||||
,' ,p_field_name IN data_item_roles.field_name%type)');
|
||||
add_sql(l_sql
|
||||
,' RETURN data_item_roles.condition%TYPE;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
add_sql(l_sql
|
||||
,'FUNCTION label_condition (p_enty_code in enquiries.enty_code%type');
|
||||
add_sql(l_sql
|
||||
,' ,p_field_name IN data_item_roles.field_name%type)');
|
||||
add_sql(l_sql
|
||||
,' RETURN VARCHAR2;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
add_sql(l_sql
|
||||
,'END MIP_' || l_tables.table_name || '_HELPER;');
|
||||
|
||||
@@ -259,16 +274,16 @@ BEGIN
|
||||
add_sql(l_sql
|
||||
,' cout_assert.isnotnull(p_rec.enty_code,''NULL enquiry ENTY_CODE'');');
|
||||
FOR l_checks IN (SELECT field_name
|
||||
,condition
|
||||
,substr(condition
|
||||
,1
|
||||
,1)
|
||||
,enty_code
|
||||
,error_message
|
||||
FROM data_item_roles) LOOP
|
||||
|
||||
IF l_checks.condition = 'M' THEN
|
||||
add_sql(l_sql
|
||||
,' IF p_rec.ENTY_CODE = ''' || l_checks.enty_code ||
|
||||
''' AND p_rec.' || l_checks.field_name ||
|
||||
' IS NULL THEN');
|
||||
''' AND p_rec.' || l_checks.field_name || ' IS NULL THEN');
|
||||
add_sql(l_sql
|
||||
,' MIP_MANDATORY.add_error(P_mandatory_checks=>l_mandatory_checks, P_field_name=>''' ||
|
||||
l_checks.field_name || ''' ,p_error_message=>''' ||
|
||||
@@ -278,7 +293,6 @@ BEGIN
|
||||
,' END IF;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
add_sql(l_sql
|
||||
@@ -385,7 +399,7 @@ BEGIN
|
||||
add_sql(l_sql
|
||||
,' FOR l_checks IN (SELECT field_name');
|
||||
add_sql(l_sql
|
||||
,' ,condition');
|
||||
,' ,substr(condition,1,1) as condition');
|
||||
add_sql(l_sql
|
||||
,' ,enty_code');
|
||||
add_sql(l_sql
|
||||
@@ -397,7 +411,7 @@ BEGIN
|
||||
add_sql(l_sql
|
||||
,' ) LOOP');
|
||||
add_sql(l_sql
|
||||
,' MIP_MANDATORY.add_field(p_fields=>l_fields,p_field_name=>l_checks.field_name);');
|
||||
,' MIP_MANDATORY.add_field(p_fields=>l_fields,p_field_name=>l_checks.field_name, p_field_condition=>l_checks.condition);');
|
||||
add_sql(l_sql
|
||||
,' END LOOP;');
|
||||
|
||||
@@ -474,6 +488,82 @@ BEGIN
|
||||
,'END record_exists;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
--
|
||||
-- CHECK_CONDITION
|
||||
--
|
||||
add_sql(l_sql
|
||||
,'FUNCTION check_condition (p_enty_code in enquiries.enty_code%type');
|
||||
add_sql(l_sql
|
||||
,' ,p_field_name IN data_item_roles.field_name%type)');
|
||||
add_sql(l_sql
|
||||
,' RETURN data_item_roles.condition%TYPE');
|
||||
add_sql(l_sql
|
||||
,'IS');
|
||||
add_sql(l_sql
|
||||
,' l_return data_item_roles.condition%TYPE;');
|
||||
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
add_sql(l_sql
|
||||
,'BEGIN');
|
||||
|
||||
add_sql(l_sql
|
||||
,' cout_assert.isnotnull(p_field_name,''NULL enquiry FIELD_NAME'');');
|
||||
|
||||
FOR l_checks IN (SELECT upper(field_name) AS field_name
|
||||
,substr(condition
|
||||
,1
|
||||
,2) AS condition
|
||||
,enty_code
|
||||
,error_message
|
||||
FROM data_item_roles) LOOP
|
||||
add_sql(l_sql
|
||||
,' IF p_enty_code = ''' || l_checks.enty_code ||
|
||||
''' AND p_field_name = ''' || l_checks.field_name ||
|
||||
''' THEN');
|
||||
add_sql(l_sql
|
||||
,' l_return := ''' || l_checks.condition || ''';');
|
||||
add_sql(l_sql
|
||||
,' END IF;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
END LOOP;
|
||||
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
-- return the overall response
|
||||
add_sql(l_sql
|
||||
,' RETURN l_return;');
|
||||
add_sql(l_sql
|
||||
,'END check_condition;');
|
||||
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
add_sql(l_sql
|
||||
,'FUNCTION label_condition (p_enty_code in enquiries.enty_code%type');
|
||||
add_sql(l_sql
|
||||
,' ,p_field_name IN data_item_roles.field_name%type)');
|
||||
add_sql(l_sql
|
||||
,' RETURN VARCHAR2');
|
||||
add_sql(l_sql
|
||||
,'IS');
|
||||
add_sql(l_sql,'BEGIN');
|
||||
add_sql(l_sql,' RETURN (');
|
||||
add_sql(l_sql,' CASE mip_enquiries_helper.check_condition(p_enty_code, p_field_name)');
|
||||
add_sql(l_sql,' WHEN ''M'' THEN ''*''');
|
||||
add_sql(l_sql,' WHEN ''O-'' THEN ''+''');
|
||||
add_sql(l_sql,' WHEN ''O'' THEN '' ''');
|
||||
add_sql(l_sql,' WHEN ''H'' THEN ''H''');
|
||||
add_sql(l_sql,' END');
|
||||
add_sql(l_sql,' );');
|
||||
add_sql(l_sql,'END label_condition;');
|
||||
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
add_sql(l_sql
|
||||
,'END MIP_' || l_tables.table_name || '_HELPER;');
|
||||
|
||||
|
||||
@@ -14,19 +14,17 @@ END mip_friendly_messages;
|
||||
/
|
||||
CREATE OR REPLACE PACKAGE BODY mip_friendly_messages IS
|
||||
|
||||
PROCEDURE pl(p_in VARCHAR2) IS
|
||||
l_fh utl_file.file_type;
|
||||
PROCEDURE pl(p_in VARCHAR2
|
||||
,p_line IN NUMBER DEFAULT NULL) IS
|
||||
BEGIN
|
||||
dbms_application_info.set_module('MIP_FRIENDLY_MESSAGES'
|
||||
,p_in);
|
||||
l_fh := utl_file.fopen(location => 'WEBMIP_BULK_LOAD'
|
||||
,filename => 'MIP_FRIENDLY_MESSAGES.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;
|
||||
NULL;
|
||||
/* $IF mip_debug_constants.debugging OR mip_debug_constants.friendly_messages
|
||||
$THEN*/
|
||||
mip_debug.pl(p_unit => $$PLSQL_UNIT
|
||||
,p_line => p_line
|
||||
,p_in => p_in);
|
||||
/* $END*/
|
||||
END pl;
|
||||
|
||||
FUNCTION get_constraint_message(p_ora_msg IN VARCHAR2) RETURN VARCHAR2 IS
|
||||
c_marker CONSTANT VARCHAR2(30) := 'constraint (';
|
||||
@@ -81,9 +79,11 @@ CREATE OR REPLACE PACKAGE BODY mip_friendly_messages IS
|
||||
l_sqlcode NUMBER;
|
||||
l_msg VARCHAR2(2000);
|
||||
BEGIN
|
||||
pl('get_friendly_message:entry:'||p_ora_msg);
|
||||
l_sqlcode := substr(l_ora_msg
|
||||
,1
|
||||
,5);
|
||||
|
||||
IF instr(l_ora_msg
|
||||
,'constraint (') > 0 THEN
|
||||
l_msg := nvl(get_constraint_message(l_ora_msg)
|
||||
@@ -92,6 +92,7 @@ CREATE OR REPLACE PACKAGE BODY mip_friendly_messages IS
|
||||
l_msg := l_ora_msg;
|
||||
END IF;
|
||||
|
||||
pl('get_friendly_message:exit:'||l_msg);
|
||||
return(l_msg);
|
||||
END get_friendly_message;
|
||||
|
||||
|
||||
@@ -11,7 +11,11 @@ CREATE OR REPLACE PACKAGE mip_mandatory IS
|
||||
|
||||
TYPE t_mandatory_checks IS TABLE OF t_mandatory_check INDEX BY BINARY_INTEGER;
|
||||
|
||||
TYPE t_fields IS TABLE OF VARCHAR2(80) INDEX BY BINARY_INTEGER;
|
||||
TYPE t_field IS RECORD(
|
||||
field_name VARCHAR2(80)
|
||||
,field_condition VARCHAR2(1));
|
||||
|
||||
TYPE t_fields IS TABLE OF t_field INDEX BY BINARY_INTEGER;
|
||||
|
||||
-- Public function and procedure declarations
|
||||
|
||||
@@ -20,10 +24,11 @@ CREATE OR REPLACE PACKAGE mip_mandatory IS
|
||||
,p_error_message IN VARCHAR2);
|
||||
|
||||
PROCEDURE add_field(p_fields IN OUT t_fields
|
||||
,p_field_name IN VARCHAR2);
|
||||
,p_field_name IN VARCHAR2
|
||||
,p_field_condition IN VARCHAR2);
|
||||
END mip_mandatory;
|
||||
/
|
||||
CREATE OR REPLACE PACKAGE BODY MIP_MANDATORY IS
|
||||
CREATE OR REPLACE PACKAGE BODY mip_mandatory IS
|
||||
|
||||
PROCEDURE add_error(p_mandatory_checks IN OUT t_mandatory_checks
|
||||
,p_field_name IN VARCHAR2
|
||||
@@ -35,14 +40,16 @@ CREATE OR REPLACE PACKAGE BODY MIP_MANDATORY IS
|
||||
END;
|
||||
|
||||
PROCEDURE add_field(p_fields IN OUT t_fields
|
||||
,p_field_name IN VARCHAR2) IS
|
||||
,p_field_name IN VARCHAR2
|
||||
,p_field_condition IN VARCHAR2) IS
|
||||
l_idx NUMBER := p_fields.COUNT + 1;
|
||||
BEGIN
|
||||
p_fields(l_idx) := p_field_name;
|
||||
p_fields(l_idx).field_name := p_field_name;
|
||||
p_fields(l_idx).field_condition := p_field_condition;
|
||||
END add_field;
|
||||
|
||||
BEGIN
|
||||
-- Initialization
|
||||
NULL;
|
||||
END MIP_MANDATORY;
|
||||
END mip_mandatory;
|
||||
/
|
||||
|
||||
@@ -43,6 +43,13 @@ CREATE OR REPLACE PACKAGE mip_tripartite IS
|
||||
,p_tab_messages IN OUT t_tab_messages)
|
||||
RETURN BOOLEAN;
|
||||
|
||||
/** Is the given addon allowed to non-Tripartite members
|
||||
%param p_addit_code the addon to be checked
|
||||
%param p_regi_code the region to be checked against
|
||||
%return TRUE if the addon is allowed
|
||||
*/
|
||||
FUNCTION addon_allowed(p_adit_code IN additional_items.code%TYPE
|
||||
,p_regi_code IN regions.code%TYPE) RETURN BOOLEAN;
|
||||
/** Is the given enquiry valid with respect to the Tripartite arrangements?
|
||||
%param p_enqu_id the id of the enquiry to be checked
|
||||
%param p_tab_messages reasons for the enquiry not being valid
|
||||
|
||||
Reference in New Issue
Block a user