DatabaseItemToFunctionalSpecificationReference.xls - renamed METY_CODE to EXISTING_METY_CODE, included DISPLAY_SEQUENCE to be used in the generation of emails, etc.
Minor internal changes to operation of cout_assert.pck and cout_err.pck. mip_quotation.pck - made validation routines open to external processes. Added enquiry entry details to manual quotes. Schema - Removed data_items table and amended data_item_roles to support display_sequence requirements. git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@3407 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
@@ -15,17 +15,6 @@ CREATE OR REPLACE PROCEDURE gen_mandatory IS
|
||||
BEGIN
|
||||
|
||||
DELETE FROM data_item_roles;
|
||||
DELETE FROM data_items;
|
||||
|
||||
INSERT INTO data_items
|
||||
(field_name
|
||||
,table_name
|
||||
,description)
|
||||
(SELECT DISTINCT field_name
|
||||
,'ENQUIRIES' as table_name
|
||||
,description
|
||||
FROM ext_dataitem_roles
|
||||
WHERE field_name IS NOT NULL);
|
||||
|
||||
FOR l_enty IN (SELECT code
|
||||
FROM enquiry_types) LOOP
|
||||
@@ -37,13 +26,15 @@ BEGIN
|
||||
add_sql(l_sql
|
||||
,' (ENTY_CODE');
|
||||
add_sql(l_sql
|
||||
,' ,DI_FIELD_NAME');
|
||||
,' ,FIELD_NAME');
|
||||
add_sql(l_sql
|
||||
,' ,DI_TABLE_NAME');
|
||||
,' ,TABLE_NAME');
|
||||
add_sql(l_sql
|
||||
,' ,CONDITION');
|
||||
add_sql(l_sql
|
||||
,' ,DESCRIPTION');
|
||||
add_sql(l_sql
|
||||
,' ,DISPLAY_SEQUENCE');
|
||||
add_sql(l_sql
|
||||
,' )');
|
||||
add_sql(l_sql
|
||||
@@ -51,15 +42,17 @@ BEGIN
|
||||
add_sql(l_sql
|
||||
,'SELECT ''' || l_enty.code || '''');
|
||||
add_sql(l_sql
|
||||
,' ,''ENQUIRIES'' as field_name');
|
||||
,' ,field_name');
|
||||
add_sql(l_sql
|
||||
,' ,table_name');
|
||||
,' ,''ENQUIRIES'' as table_name');
|
||||
add_sql(l_sql
|
||||
,' ,diri.' || REPLACE(l_enty.code
|
||||
,' '
|
||||
,'_'));
|
||||
add_sql(l_sql
|
||||
,' ,diri.description');
|
||||
add_sql(l_sql
|
||||
,' ,diri.display_sequence');
|
||||
add_sql(l_sql
|
||||
,' FROM ext_dataitem_roles diri');
|
||||
add_sql(l_sql
|
||||
@@ -89,7 +82,7 @@ BEGIN
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR l_tables IN (SELECT DISTINCT di_table_name AS table_name
|
||||
FOR l_tables IN (SELECT DISTINCT table_name AS table_name
|
||||
FROM data_item_roles) LOOP
|
||||
-- create a package, named MIP_'table'_HELPER
|
||||
-- include functions:
|
||||
@@ -125,9 +118,24 @@ BEGIN
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
add_sql(l_sql
|
||||
,' SUBTYPE T_REC_' || l_tables.table_name || ' IS ' ||
|
||||
l_tables.table_name || '%ROWTYPE;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
--
|
||||
-- CHECK_MANDATORY
|
||||
--
|
||||
add_sql(l_sql
|
||||
,'FUNCTION check_mandatory (p_rec in T_REC_' ||
|
||||
l_tables.table_name);
|
||||
add_sql(l_sql
|
||||
,' ,p_mandatory_checks OUT MIP_MANDATORY.T_MANDATORY_CHECKS)');
|
||||
add_sql(l_sql
|
||||
,' RETURN BOOLEAN;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
add_sql(l_sql
|
||||
,'FUNCTION check_mandatory (');
|
||||
|
||||
@@ -151,6 +159,7 @@ BEGIN
|
||||
,' RETURN BOOLEAN;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
--
|
||||
-- GET_FIELD_LIST
|
||||
--
|
||||
@@ -225,6 +234,79 @@ BEGIN
|
||||
--
|
||||
-- CHECK_MANDATORY
|
||||
--
|
||||
add_sql(l_sql
|
||||
,'FUNCTION check_mandatory (p_rec in T_REC_' ||
|
||||
l_tables.table_name);
|
||||
add_sql(l_sql
|
||||
,' ,p_mandatory_checks OUT MIP_MANDATORY.T_MANDATORY_CHECKS)');
|
||||
add_sql(l_sql
|
||||
,' RETURN BOOLEAN');
|
||||
add_sql(l_sql
|
||||
,'IS');
|
||||
add_sql(l_sql
|
||||
,' l_mandatory_checks MIP_MANDATORY.T_MANDATORY_CHECKS;');
|
||||
add_sql(l_sql
|
||||
,' l_return BOOLEAN;');
|
||||
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
add_sql(l_sql
|
||||
,'BEGIN');
|
||||
|
||||
add_sql(l_sql
|
||||
,' cout_assert.isnotnull(p_rec.id,''NULL enquiry id'');');
|
||||
add_sql(l_sql
|
||||
,' cout_assert.isnotnull(p_rec.enty_code,''NULL enquiry ENTY_CODE'');');
|
||||
FOR l_checks IN (SELECT field_name
|
||||
,condition
|
||||
,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');
|
||||
add_sql(l_sql
|
||||
,' MIP_MANDATORY.add_error(P_mandatory_checks=>l_mandatory_checks, P_field_name=>''' ||
|
||||
l_checks.field_name || ''' ,p_error_message=>''' ||
|
||||
nvl(l_checks.error_message
|
||||
,'Mandatory Field') || ''');');
|
||||
add_sql(l_sql
|
||||
,' END IF;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
add_sql(l_sql
|
||||
,' MIP_HELPER_SPECIAL_CASES.table_' || l_tables.table_name ||
|
||||
'(p_rec => p_rec, p_mandatory_checks=>l_mandatory_checks);');
|
||||
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
add_sql(l_sql
|
||||
,' l_return := NOT(l_mandatory_checks.COUNT > 0);');
|
||||
add_sql(l_sql
|
||||
,' P_mandatory_checks := l_mandatory_checks;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
-- return the overall boolean response
|
||||
add_sql(l_sql
|
||||
,' RETURN l_return;');
|
||||
add_sql(l_sql
|
||||
,'END check_mandatory;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
--
|
||||
-- Check_mandatory - second version
|
||||
--
|
||||
add_sql(l_sql
|
||||
,'FUNCTION check_mandatory (');
|
||||
|
||||
@@ -249,11 +331,7 @@ BEGIN
|
||||
add_sql(l_sql
|
||||
,'IS');
|
||||
add_sql(l_sql
|
||||
,' l_rec ' || l_tables.table_name || '%ROWTYPE;');
|
||||
add_sql(l_sql
|
||||
,' l_mandatory_checks MIP_MANDATORY.T_MANDATORY_CHECKS;');
|
||||
add_sql(l_sql
|
||||
,' l_return BOOLEAN;');
|
||||
,' l_rec T_REC_' || l_tables.table_name || ';');
|
||||
add_sql(l_sql
|
||||
,'BEGIN');
|
||||
|
||||
@@ -279,53 +357,13 @@ BEGIN
|
||||
,' ;');
|
||||
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
FOR l_checks IN (SELECT di_field_name
|
||||
,condition
|
||||
,enty_code
|
||||
,error_message
|
||||
FROM data_item_roles) LOOP
|
||||
|
||||
IF l_checks.condition = 'M' THEN
|
||||
add_sql(l_sql
|
||||
,' IF l_rec.ENTY_CODE = ''' || l_checks.enty_code ||
|
||||
''' AND l_rec.' || l_checks.di_field_name ||
|
||||
' IS NULL THEN');
|
||||
add_sql(l_sql
|
||||
,' MIP_MANDATORY.add_error(P_mandatory_checks=>l_mandatory_checks, P_field_name=>''' ||
|
||||
l_checks.di_field_name || ''' ,P_error_message=>''' ||
|
||||
nvl(l_checks.error_message
|
||||
,'Mandatory Field') || ''');');
|
||||
add_sql(l_sql
|
||||
,' END IF;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
,' RETURN CHECK_MANDATORY(p_rec => l_rec, p_mandatory_checks => p_mandatory_checks);');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
add_sql(l_sql,
|
||||
' MIP_HELPER_SPECIAL_CASES.table_'||l_tables.table_name||'(p_rec => l_rec, p_mandatory_checks=>l_mandatory_checks);');
|
||||
|
||||
,' ');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
,'END CHECK_MANDATORY;');
|
||||
add_sql(l_sql
|
||||
,' l_return := NOT(l_mandatory_checks.COUNT > 0);');
|
||||
add_sql(l_sql
|
||||
,' P_mandatory_checks := l_mandatory_checks;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
-- return the overall boolean response
|
||||
add_sql(l_sql
|
||||
,' RETURN l_return;');
|
||||
add_sql(l_sql
|
||||
,'END check_mandatory;');
|
||||
add_sql(l_sql
|
||||
,' ');
|
||||
|
||||
,' ');
|
||||
--
|
||||
-- GET_FIELD_LIST
|
||||
--
|
||||
@@ -345,7 +383,7 @@ BEGIN
|
||||
,' ');
|
||||
|
||||
add_sql(l_sql
|
||||
,' FOR l_checks IN (SELECT di_field_name');
|
||||
,' FOR l_checks IN (SELECT field_name');
|
||||
add_sql(l_sql
|
||||
,' ,condition');
|
||||
add_sql(l_sql
|
||||
@@ -359,7 +397,7 @@ BEGIN
|
||||
add_sql(l_sql
|
||||
,' ) LOOP');
|
||||
add_sql(l_sql
|
||||
,' MIP_MANDATORY.add_field(P_fields=>l_fields,P_field_name=>l_checks.di_field_name);');
|
||||
,' MIP_MANDATORY.add_field(p_fields=>l_fields,p_field_name=>l_checks.field_name);');
|
||||
add_sql(l_sql
|
||||
,' END LOOP;');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user