diff --git a/Data/BulkLoad/BULK_LOAD.xls b/Data/BulkLoad/BULK_LOAD.xls index 7fd0f80..6ae7830 100644 Binary files a/Data/BulkLoad/BULK_LOAD.xls and b/Data/BulkLoad/BULK_LOAD.xls differ diff --git a/Data/BulkLoad/bulk_load.sql b/Data/BulkLoad/bulk_load.sql new file mode 100644 index 0000000..df3e52e --- /dev/null +++ b/Data/BulkLoad/bulk_load.sql @@ -0,0 +1,26 @@ +DECLARE + l_test_load BOOLEAN := upper('&&1') = 'TEST'; + l_fat_load BOOLEAN := upper('&&1') = 'FAT'; + l_dev_load BOOLEAN := upper(nvl('&&1','DEV')) = 'DEV'; + +BEGIN + + IF l_test_load THEN + mip_bulk_load.g_flow_id := 102; + ELSIF l_fat_load THEN + mip_bulk_load.g_flow_id := 200; + ELSIF l_dev_load THEN + mip_bulk_load.g_flow_id := 200; + END IF; + + IF mip_bulk_load.g_flow_id IS NOT NULL THEN + mip_bulk_load.load_all; + mip_bulk_load.report_err; + ELSE + dbms_output.put_line('Run bulk_load: Unexpected parameter value of &&1 received'); + END IF; + +END; +/ +exit +/ diff --git a/InstallMIP.cmd b/InstallMIP.cmd index 441dca5..5e44336 100644 --- a/InstallMIP.cmd +++ b/InstallMIP.cmd @@ -23,11 +23,15 @@ sqlplus %3/%4@%5 @Modules\Modules.sql sqlplus %3/%4@%5 @Data\Seed\create_passwords.sql + +sqlplus %3/%4@%5 @Data\BulkLoad\bulk_load.sql "%6" + if "%6"=="" goto :done if "%6"=="demo" goto :demo if "%6"=="test" goto :test if "%6"=="fat" goto :fat + :demo @echo Demo cd Data\Demo diff --git a/Modules/MIP_ENQUIRY.pck b/Modules/MIP_ENQUIRY.pck index 02c8c2a..0ed3bc7 100644 --- a/Modules/MIP_ENQUIRY.pck +++ b/Modules/MIP_ENQUIRY.pck @@ -236,11 +236,13 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS INSERT INTO enquiry_events (enqu_id ,event_date - ,enst_code) + ,enst_code + ,id) VALUES (p_enquiryid ,SYSDATE - ,p_eventcode); + ,p_eventcode + ,enev_seq.nextval); RETURN TRUE; -- diff --git a/Modules/mip_bulk_load.pck b/Modules/mip_bulk_load.pck index 853584d..2fa1f70 100644 --- a/Modules/mip_bulk_load.pck +++ b/Modules/mip_bulk_load.pck @@ -1586,11 +1586,13 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS get_globals; + pl('Application id:' || g_flow_id); + SELECT wwv_flow.get_current_flow_sgid(g_flow_id) INTO l_sgid FROM dual; - pl('Security group id ' || l_sgid); + pl('Security group id:' || l_sgid); wwv_flow_api.set_security_group_id(l_sgid); apex_application.g_flow_id := g_flow_id; diff --git a/Modules/mip_quotation.pck b/Modules/mip_quotation.pck index c40f5aa..537af84 100644 --- a/Modules/mip_quotation.pck +++ b/Modules/mip_quotation.pck @@ -178,14 +178,35 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS (qute_id ,qust_code ,event_date - ,description) + ,description + ,id) VALUES (p_qute_id ,p_qust_code ,p_event_date - ,p_description); + ,p_description + ,quev_seq.NEXTVAL); END add_quote_event; + PROCEDURE add_enquiry_event(p_enqu_id IN enquiries.id%TYPE + ,p_enst_code enquiry_status_types.code%TYPE + ,p_description enquiry_events.description%TYPE DEFAULT NULL + ,p_event_date DATE DEFAULT SYSDATE) IS + BEGIN + INSERT INTO enquiry_events + (enqu_id + ,enst_code + ,event_date + ,description + ,id) + VALUES + (p_enqu_id + ,p_enst_code + ,p_event_date + ,p_description + ,enev_seq.NEXTVAL); + END add_enquiry_event; + PROCEDURE add_quote_role(p_qute_id IN quotes.id%TYPE ,p_prty_id IN parties.id%TYPE ,p_rt_code quote_roles.rt_code%TYPE @@ -373,14 +394,9 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS ,USER) RETURNING id INTO l_qute_id; - INSERT INTO quote_events - (event_date - ,qust_code - ,qute_id) - VALUES - (SYSDATE - ,'INP' -- In Progress - ,l_qute_id); + add_quote_event(p_qute_id => l_qute_id + ,p_qust_code => 'INP' + ,p_event_date => SYSDATE); INSERT INTO quote_roles (prty_id @@ -413,14 +429,9 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS BEGIN pl('make_quote_available'); - INSERT INTO quote_events - (event_date - ,qust_code - ,qute_id) - VALUES - (SYSDATE - ,'AV' -- Available - ,p_qute_id); + add_quote_event(p_qute_id => p_qute_id + ,p_qust_code => 'AV' + ,p_event_date => SYSDATE); END make_quote_available; @@ -428,28 +439,20 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS BEGIN pl('mark_enquiry_submitted'); - INSERT INTO enquiry_events - (event_date - ,enst_code - ,enqu_id) - VALUES - (SYSDATE - ,'SUBMITTED' - ,p_enqu_id); + add_enquiry_event(p_enqu_id => p_enqu_id + ,p_enst_code => 'SUBMITTED' + ,p_event_date => SYSDATE); email_rfq_submitted(p_enqu_id); END mark_enquiry_submitted; PROCEDURE mark_enquiry_quoted(p_enqu_id IN enquiries.id%TYPE) IS BEGIN - INSERT INTO enquiry_events - (event_date - ,enst_code - ,enqu_id) - VALUES - (SYSDATE - ,'QUOTED' - ,p_enqu_id); + pl('mark_enquiry_quoted'); + + add_enquiry_event(p_enqu_id => p_enqu_id + ,p_enst_code => 'QUOTED' + ,p_event_date => SYSDATE); email_quotes_available(p_enqu_id); @@ -457,14 +460,11 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS PROCEDURE mark_enquiry_invalid(p_enqu_id IN enquiries.id%TYPE) IS BEGIN - INSERT INTO enquiry_events - (event_date - ,enst_code - ,enqu_id) - VALUES - (SYSDATE - ,'INVALID' - ,p_enqu_id); + pl('mark_enquiry_invalid'); + + add_enquiry_event(p_enqu_id => p_enqu_id + ,p_enst_code => 'INVALID' + ,p_event_date => SYSDATE); END mark_enquiry_invalid; FUNCTION get_system_configuration_value(p_parameter IN system_configuration.parameter%TYPE) @@ -1236,26 +1236,26 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); END IF; -- RELOCATE IF p_enqu.enty_code IN ('EXCHANGE', 'STD EXCHANGE') THEN --- SELECT svcpt_code --- INTO l_svcpt_code --- FROM service_pressures --- WHERE code = p_enqu.required_svcp_code; --- IF l_svcpt_code = 'LP' THEN - l_existing_meter_size_code := p_enqu.existing_mesc_code; - l_required_meter_size_code := p_enqu.required_mesc_code; - IF l_required_meter_size_code IS NULL THEN - l_required_meter_size_code := get_u_meter_size(p_enqu.qmax); - END IF; - IF NOT - valid_meter_size_upgrade(p_existing_meter_size_code => l_existing_meter_size_code - ,p_required_meter_size_code => l_required_meter_size_code) THEN - p_manual_or_automatic_quote := gc_manual_quote; - add_quote_reason(p_enqu.id - ,'Site Survey is required for exchange of meter from size ' || - l_existing_meter_size_code || ' to ' || - l_required_meter_size_code || '.'); - END IF; --- END IF; -- svcpt_code = 'LP' + -- SELECT svcpt_code + -- INTO l_svcpt_code + -- FROM service_pressures + -- WHERE code = p_enqu.required_svcp_code; + -- IF l_svcpt_code = 'LP' THEN + l_existing_meter_size_code := p_enqu.existing_mesc_code; + l_required_meter_size_code := p_enqu.required_mesc_code; + IF l_required_meter_size_code IS NULL THEN + l_required_meter_size_code := get_u_meter_size(p_enqu.qmax); + END IF; + IF NOT + valid_meter_size_upgrade(p_existing_meter_size_code => l_existing_meter_size_code + ,p_required_meter_size_code => l_required_meter_size_code) THEN + p_manual_or_automatic_quote := gc_manual_quote; + add_quote_reason(p_enqu.id + ,'Site Survey is required for exchange of meter from size ' || + l_existing_meter_size_code || ' to ' || + l_required_meter_size_code || '.'); + END IF; + -- END IF; -- svcpt_code = 'LP' END IF; -- EXCHANGE END survey_required; diff --git a/Schema/mip.con b/Schema/mip.con index 46e01df..56525ae 100644 --- a/Schema/mip.con +++ b/Schema/mip.con @@ -1,6 +1,6 @@ -- C:\Andy\svn\WEBMIP\Schema\mip.con -- --- Generated for Oracle 10g on Tue Jan 29 11:31:54 2008 by Server Generator 10.1.2.6.18 +-- Generated for Oracle 10g on Tue Feb 05 12:03:58 2008 by Server Generator 10.1.2.6.18 PROMPT Creating Primary Key on 'SYSTEM_CONFIGURATION' ALTER TABLE SYSTEM_CONFIGURATION @@ -175,8 +175,7 @@ ALTER TABLE PARTY_RELATIONSHIPS PROMPT Creating Primary Key on 'QUOTE_EVENTS' ALTER TABLE QUOTE_EVENTS ADD (CONSTRAINT QUEV_PK PRIMARY KEY - (QUTE_ID - ,QUST_CODE)) + (ID)) / PROMPT Creating Primary Key on 'PARTY_ADDRESSES' @@ -196,9 +195,7 @@ ALTER TABLE SERVICE_PRESSURES PROMPT Creating Primary Key on 'ENQUIRY_EVENTS' ALTER TABLE ENQUIRY_EVENTS ADD (CONSTRAINT ENEV_PK PRIMARY KEY - (EVENT_DATE - ,ENST_CODE - ,ENQU_ID)) + (ID)) / PROMPT Creating Primary Key on 'PARTIES' @@ -456,28 +453,28 @@ ALTER TABLE REGI_ENQU_EXCLUSIONS PROMPT Creating Check Constraint on 'METER_SIZE_CODES' ALTER TABLE METER_SIZE_CODES - ADD (CONSTRAINT AVCON_1201606313_VALID_000 CHECK (VALID_FOR_EXISTING_METER IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1202213037_VALID_000 CHECK (VALID_FOR_EXISTING_METER IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'METER_SIZE_CODES' ALTER TABLE METER_SIZE_CODES - ADD (CONSTRAINT AVCON_1201606313_VALID_001 CHECK (VALID_FOR_NEW_METER IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1202213037_VALID_001 CHECK (VALID_FOR_NEW_METER IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'COSTS' ALTER TABLE COSTS - ADD (CONSTRAINT AVCON_1201606313_COST__000 CHECK (COST_TYPE + ADD (CONSTRAINT AVCON_1202213037_COST__000 CHECK (COST_TYPE IN ('LACO', 'BACO', 'MOCO', 'MECO', 'AICO', 'HOCO', 'COST'))) / PROMPT Creating Check Constraint on 'DOCUMENTS' ALTER TABLE DOCUMENTS - ADD (CONSTRAINT AVCON_1201606313_DOCU__000 CHECK (DOCU_TYPE IN ('DOCU', 'INDO', 'EXDO', 'FIDO'))) + ADD (CONSTRAINT AVCON_1202213037_DOCU__000 CHECK (DOCU_TYPE IN ('DOCU', 'INDO', 'EXDO', 'FIDO'))) / PROMPT Creating Check Constraint on 'QUOTES' ALTER TABLE QUOTES - ADD (CONSTRAINT AVCON_1201606313_QUTE__000 CHECK (QUTE_TYPE IN ('AQ', 'MQ', 'QUTE'))) + ADD (CONSTRAINT AVCON_1202213037_QUTE__000 CHECK (QUTE_TYPE IN ('AQ', 'MQ', 'QUTE'))) / PROMPT Creating Check Constraint on 'PARTY_RELATIONSHIPS' @@ -489,17 +486,17 @@ to_parl_rt_code = to_prtp_rt_code)) PROMPT Creating Check Constraint on 'PARTIES' ALTER TABLE PARTIES - ADD (CONSTRAINT AVCON_1201606313_TRIPA_000 CHECK (TRIPARTITE_MEMBER IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1202213037_TRIPA_000 CHECK (TRIPARTITE_MEMBER IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'PARTIES' ALTER TABLE PARTIES - ADD (CONSTRAINT AVCON_1201606313_STATU_000 CHECK (STATUS IN ('OPEN', 'EXPIRED', 'LOCKED'))) + ADD (CONSTRAINT AVCON_1202213037_STATU_000 CHECK (STATUS IN ('OPEN', 'EXPIRED', 'LOCKED'))) / PROMPT Creating Check Constraint on 'PARTIES' ALTER TABLE PARTIES - ADD (CONSTRAINT AVCON_1201606313_PRTY__000 CHECK (PRTY_TYPE + ADD (CONSTRAINT AVCON_1202213037_PRTY__000 CHECK (PRTY_TYPE IN ('PRTY', 'IO', 'EO', 'MKTP', 'PERS', 'MANU', 'NEMP', 'EMP', 'ORG' ))) / @@ -517,82 +514,82 @@ OR PROMPT Creating Check Constraint on 'DOCUMENT_ROLES' ALTER TABLE DOCUMENT_ROLES - ADD (CONSTRAINT AVCON_1201606313_DORO__000 CHECK (DORO_TYPE IN ('DRRO', 'DORO', 'ENDO', 'QUDO'))) + ADD (CONSTRAINT AVCON_1202213037_DORO__000 CHECK (DORO_TYPE IN ('DRRO', 'DORO', 'ENDO', 'QUDO'))) / PROMPT Creating Check Constraint on 'QUOTE_ITEMS' ALTER TABLE QUOTE_ITEMS - ADD (CONSTRAINT AVCON_1201606313_QUIT__000 CHECK (QUIT_TYPE IN ('LQI', 'AQI', 'BQI', 'MQI', 'QUIT', 'HQI'))) + ADD (CONSTRAINT AVCON_1202213037_QUIT__000 CHECK (QUIT_TYPE IN ('LQI', 'AQI', 'BQI', 'MQI', 'QUIT', 'HQI'))) / PROMPT Creating Check Constraint on 'ROLE_TYPES' ALTER TABLE ROLE_TYPES - ADD (CONSTRAINT AVCON_1201606313_RT_TY_000 CHECK (RT_TYPE IN ('DORT', 'PART', 'RT', 'PCMRT', 'QURT', 'ENRT', 'PRT'))) + ADD (CONSTRAINT AVCON_1202213037_RT_TY_000 CHECK (RT_TYPE IN ('DORT', 'PART', 'RT', 'PCMRT', 'QURT', 'ENRT', 'PRT'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1201606313_DOWNS_000 CHECK (DOWNSTREAM_BOOSTER_OR_COMPRESS IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1202213037_DOWNS_000 CHECK (DOWNSTREAM_BOOSTER_OR_COMPRESS IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1201606313_INDIC_000 CHECK (INDICATIVE_TIME IN ('DY', 'AM', 'PM'))) + ADD (CONSTRAINT AVCON_1202213037_INDIC_000 CHECK (INDICATIVE_TIME IN ('DY', 'AM', 'PM'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1201606313_HOUSI_000 CHECK (HOUSING_REQUIRED IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1202213037_HOUSI_000 CHECK (HOUSING_REQUIRED IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1201606313_BASE__000 CHECK (BASE_REQUIRED IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1202213037_BASE__000 CHECK (BASE_REQUIRED IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1201606313_CONVE_000 CHECK (CONVERTOR_REQUIRED IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1202213037_CONVE_000 CHECK (CONVERTOR_REQUIRED IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1201606313_AMR_R_000 CHECK (AMR_REQUIRED IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1202213037_AMR_R_000 CHECK (AMR_REQUIRED IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1201606313_EMS_R_000 CHECK (EMS_REQUIRED IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1202213037_EMS_R_000 CHECK (EMS_REQUIRED IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1201606313_TWIN__000 CHECK (TWIN_STREAM_REQUIRED IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1202213037_TWIN__000 CHECK (TWIN_STREAM_REQUIRED IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1201606313_EXIST_000 CHECK (EXISTING_LOGGER IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1202213037_EXIST_000 CHECK (EXISTING_LOGGER IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1201606313_LOAD__000 CHECK (LOAD_CONTROL_TYPE IN ('Constant', 'On/Off', 'Modulating'))) + ADD (CONSTRAINT AVCON_1202213037_LOAD__000 CHECK (LOAD_CONTROL_TYPE IN ('Constant', 'On/Off', 'Modulating'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1201606313_EXIST_001 CHECK (EXISTING_METER_OWNER IN ('S', 'T', 'C'))) + ADD (CONSTRAINT AVCON_1202213037_EXIST_001 CHECK (EXISTING_METER_OWNER IN ('S', 'T', 'C'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1201606313_EXIST_002 CHECK (EXISTING_CONVERTOR IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1202213037_EXIST_002 CHECK (EXISTING_CONVERTOR IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1201606313_MARKE_000 CHECK (MARKET_SECTOR_CODE IN ('I', 'D'))) + ADD (CONSTRAINT AVCON_1202213037_MARKE_000 CHECK (MARKET_SECTOR_CODE IN ('I', 'D'))) / diff --git a/Schema/mip.ind b/Schema/mip.ind index 1d882d6..6501c8e 100644 --- a/Schema/mip.ind +++ b/Schema/mip.ind @@ -1,6 +1,6 @@ -- C:\Andy\svn\WEBMIP\Schema\mip.ind -- --- Generated for Oracle 10g on Tue Jan 29 11:31:54 2008 by Server Generator 10.1.2.6.18 +-- Generated for Oracle 10g on Tue Feb 05 12:03:58 2008 by Server Generator 10.1.2.6.18 PROMPT Creating Index 'REGU_RETY_FK_I' diff --git a/Schema/mip.sql b/Schema/mip.sql index 28ca4cf..7349e6c 100644 --- a/Schema/mip.sql +++ b/Schema/mip.sql @@ -1,6 +1,6 @@ -- C:\Andy\svn\WEBMIP\Schema\mip.sql -- --- Generated for Oracle 10g on Tue Jan 29 11:31:54 2008 by Server Generator 10.1.2.6.18 +-- Generated for Oracle 10g on Tue Feb 05 12:03:59 2008 by Server Generator 10.1.2.6.18 SPOOL mip.lst diff --git a/Schema/mip.sqs b/Schema/mip.sqs index b8c1570..0eceb46 100644 --- a/Schema/mip.sqs +++ b/Schema/mip.sqs @@ -1,6 +1,6 @@ -- C:\Andy\svn\WEBMIP\Schema\mip.sqs -- --- Generated for Oracle 10g on Tue Jan 29 11:31:54 2008 by Server Generator 10.1.2.6.18 +-- Generated for Oracle 10g on Tue Feb 05 12:03:58 2008 by Server Generator 10.1.2.6.18 PROMPT Creating Sequence 'FLTR_SEQ' CREATE SEQUENCE FLTR_SEQ @@ -74,6 +74,13 @@ CREATE SEQUENCE DORO_SEQ NOCYCLE / +PROMPT Creating Sequence 'QUEV_SEQ' +CREATE SEQUENCE QUEV_SEQ + NOMAXVALUE + NOMINVALUE + NOCYCLE +/ + PROMPT Creating Sequence 'MOCO_SEQ' CREATE SEQUENCE MOCO_SEQ START WITH 20080000 @@ -129,6 +136,13 @@ CREATE SEQUENCE COME_SEQ NOCYCLE / +PROMPT Creating Sequence 'ENEV_SEQ' +CREATE SEQUENCE ENEV_SEQ + NOMAXVALUE + NOMINVALUE + NOCYCLE +/ + PROMPT Creating Sequence 'REGU_SEQ' CREATE SEQUENCE REGU_SEQ START WITH 20080000 diff --git a/Schema/mip.tab b/Schema/mip.tab index 3a9d32e..57eb46e 100644 --- a/Schema/mip.tab +++ b/Schema/mip.tab @@ -1,6 +1,6 @@ -- C:\Andy\svn\WEBMIP\Schema\mip.tab -- --- Generated for Oracle 10g on Tue Jan 29 11:31:53 2008 by Server Generator 10.1.2.6.18 +-- Generated for Oracle 10g on Tue Feb 05 12:03:58 2008 by Server Generator 10.1.2.6.18 @@ -244,6 +244,7 @@ CREATE TABLE QUOTE_EVENTS ,QUTE_ID NUMBER NOT NULL ,DESCRIPTION VARCHAR2(250) ,EVENT_DATE DATE NOT NULL + ,ID NUMBER(*,0) NOT NULL ) / @@ -268,9 +269,10 @@ CREATE TABLE SERVICE_PRESSURES PROMPT Creating Table 'ENQUIRY_EVENTS' CREATE TABLE ENQUIRY_EVENTS (ENQU_ID NUMBER NOT NULL - ,ENST_CODE VARCHAR2(80) NOT NULL + ,ENST_CODE VARCHAR2(80) ,DESCRIPTION VARCHAR2(250) ,EVENT_DATE DATE NOT NULL + ,ID NUMBER(*,0) NOT NULL ) / diff --git a/Schema/v_current_enquiry_status.vw b/Schema/v_current_enquiry_status.vw index 255e624..44a938f 100644 --- a/Schema/v_current_enquiry_status.vw +++ b/Schema/v_current_enquiry_status.vw @@ -5,19 +5,7 @@ SELECT enqu_id FROM (SELECT enqu_id ,event_date ,enst_code - ,decode(enst_code - ,'INP' - ,1 - ,'SUBMITTED' - ,2 - ,'QUOTED' - ,3) AS this_event - ,MAX(decode(enst_code - ,'INP' - ,1 - ,'SUBMITTED' - ,2 - ,'QUOTED' - ,3)) over(PARTITION BY enqu_id) AS max_event + ,id + ,MAX(id) over(PARTITION BY enqu_id) AS max_id FROM enquiry_events) - WHERE this_event = max_event; + WHERE id = max_id diff --git a/Schema/v_current_quote_status.vw b/Schema/v_current_quote_status.vw index a6abe73..d37b65d 100644 --- a/Schema/v_current_quote_status.vw +++ b/Schema/v_current_quote_status.vw @@ -6,36 +6,7 @@ SELECT qute_id FROM (SELECT qute_id ,event_date ,qust_code - ,decode(qust_code - ,'INP' - ,1 - ,'AV' - ,2 - ,'SELREJ' - ,3 - ,'SELECTED' - ,5 - ,'REJECTED' - ,6 - ,'ACCEPTED' - ,7 - ,'LAPSED' - ,8) AS this_event - ,MAX(decode(qust_code - ,'INP' - ,1 - ,'AV' - ,2 - ,'SELREJ' - ,3 - ,'SELECTED' - ,5 - ,'REJECTED' - ,6 - ,'ACCEPTED' - ,7 - ,'LAPSED' - ,8)) over(PARTITION BY qute_id) AS max_event + ,id + ,MAX(id) over(PARTITION BY qute_id) AS max_event FROM quote_events) - WHERE this_event = max_event -/ + WHERE id = max_event