diff --git a/Data/Seed/enst.ctl b/Data/Seed/enst.ctl index 598968e..53a75fd 100644 --- a/Data/Seed/enst.ctl +++ b/Data/Seed/enst.ctl @@ -11,3 +11,4 @@ BEGINDATA INP|In Progress SUBMITTED|Submitted For Quotation QUOTED|Quoted For +INVALID|Invalid Processing of Enquiry diff --git a/Documentation/Design/DatabaseItemToFunctionalSpecificationReference.xls b/Documentation/Design/DatabaseItemToFunctionalSpecificationReference.xls index af6d447..b7e8ab7 100644 Binary files a/Documentation/Design/DatabaseItemToFunctionalSpecificationReference.xls and b/Documentation/Design/DatabaseItemToFunctionalSpecificationReference.xls differ diff --git a/Documentation/pldoc/MIP_ENQUIRIES_HELPER.html b/Documentation/pldoc/MIP_ENQUIRIES_HELPER.html new file mode 100644 index 0000000..654193a --- /dev/null +++ b/Documentation/pldoc/MIP_ENQUIRIES_HELPER.html @@ -0,0 +1,76 @@ + + +
+ +| + |
|
+ Package MIP_ENQUIRIES_HELPER + ++ |
| +Program units + |
| +check_mandatory + | + + |
| +get_field_list + | + + |
| +record_exists + | + + |
+check_mandatory +
++FUNCTION check_mandatory(p_id IN enquiries.id%TYPE + ,p_mandatory_checks OUT mip_mandatory.t_mandatory_checks) + RETURN BOOLEAN + ++
+get_field_list +
++FUNCTION get_field_list(p_enty_code IN enquiries.enty_code%TYPE) + RETURN mip_mandatory.t_fields + ++
+record_exists +
++FUNCTION record_exists(p_id IN enquiries.id%TYPE) RETURN BOOLEAN + ++
+
+ + diff --git a/Documentation/pldoc/MIP_FILES.html b/Documentation/pldoc/MIP_FILES.html new file mode 100644 index 0000000..a6f883f --- /dev/null +++ b/Documentation/pldoc/MIP_FILES.html @@ -0,0 +1,101 @@ + + + + +
| + |
|
+ Package MIP_FILES + ++ |
| +Program units + |
| +drawing_file_exists + | + + |
| +update_file_association + | + + |
| +set_file_association + | + + |
| +export_table_to_csv + | + + |
+drawing_file_exists +
++FUNCTION drawing_file_exists(p_drwg_code VARCHAR2) RETURN BOOLEAN + ++
+update_file_association +
++FUNCTION update_file_association(p_uri IN VARCHAR2 + ,p_description IN VARCHAR2 + ,p_docu_type IN VARCHAR2 + ,p_qute_id IN NUMBER + ,p_enqu_id IN NUMBER + ,p_drwg_code IN VARCHAR2) RETURN BOOLEAN + ++
+set_file_association +
++FUNCTION set_file_association(p_uri IN VARCHAR2 + ,p_description IN VARCHAR2 + ,p_docu_type IN VARCHAR2 + ,p_rt_code IN VARCHAR2 + ,p_qute_id IN NUMBER + ,p_enqu_id IN NUMBER + ,p_drwg_code IN VARCHAR2 + ,p_doro_type IN VARCHAR2) RETURN BOOLEAN + ++
+export_table_to_csv +
++PROCEDURE export_table_to_csv(p_table IN VARCHAR2 + ,p_column_headers IN VARCHAR2 + ,p_delimiter IN VARCHAR2 DEFAULT ',') + ++
+
+ + diff --git a/Documentation/pldoc/ROLE_TYPES.html b/Documentation/pldoc/ROLE_TYPES.html new file mode 100644 index 0000000..5509817 --- /dev/null +++ b/Documentation/pldoc/ROLE_TYPES.html @@ -0,0 +1,186 @@ + + + + +
| + |
|
+ Table ROLE_TYPES + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +CODE + | ++VARCHAR2(80) + | ++ + | ++ + | ++ + | +
| +DESCRIPTION + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +RT_TYPE + | ++VARCHAR2(10) + | ++ + | ++ + | ++ + | +
| +Primary Key + |
| +Name + + | ++Columns + + | +
| +RT_PK + | ++CODE + | +
| +Check Constraints + |
| +Name + + | ++Condition + + | +
| +AVCON_1197642260_RT_TY_000 + | ++RT_TYPE IN ('DORT', 'PART', 'RT', 'PCMRT', 'QURT', 'ENRT', 'PRT') + | +
| +Indexes + |
| +Name + + | ++Columns + + | ++Type + + | +
| +RT_PK + | ++CODE + | ++Unique + | +
+
+ + diff --git a/Documentation/pldoc/V_AICO.html b/Documentation/pldoc/V_AICO.html new file mode 100644 index 0000000..9412f6c --- /dev/null +++ b/Documentation/pldoc/V_AICO.html @@ -0,0 +1,219 @@ + + + + +
| + |
|
+ View V_AICO + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +ID + | ++NUMBER + | ++Y + | ++ + | ++ + | +
| +ADIT_CODE + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +SELLING_PRICE + | ++NUMBER(,2) + | ++Y + | ++ + | ++ + | +
| +COST_PRICE + | ++NUMBER(,2) + | ++Y + | ++ + | ++ + | +
| +DELIVERY_COST + | ++NUMBER(,2) + | ++Y + | ++ + | ++ + | +
| +REGI_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +EFFECTIVE_FROM + | ++DATE + | ++Y + | ++ + | ++ + | +
| +EFFECTIVE_TO + | ++DATE + | ++Y + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_AICO AS
+SELECT id
+ ,adit_code
+ ,selling_price
+ ,cost_price
+ ,delivery_cost
+ ,regi_code
+ ,valid_from AS effective_from
+ ,least(nvl(valid_to
+ ,to_date('2099'
+ ,'yyyy'))
+ ,nvl(next_valid_from
+ ,to_date('2099'
+ ,'yyyy'))) AS effective_to
+ FROM (SELECT id
+ ,adit_code
+ ,selling_price
+ ,cost_price
+ ,delivery_cost
+ ,regi_code
+ ,valid_from
+ ,valid_to
+ ,lead(valid_from) over(PARTITION BY cost.adit_code, regi_code ORDER BY valid_from) AS next_valid_from
+ FROM costs cost
+ WHERE cost_type = 'AICO');
+
++
+ + diff --git a/Documentation/pldoc/V_BACO.html b/Documentation/pldoc/V_BACO.html new file mode 100644 index 0000000..5a75e00 --- /dev/null +++ b/Documentation/pldoc/V_BACO.html @@ -0,0 +1,200 @@ + + + + +
| + |
|
+ View V_BACO + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +BAS_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +SELLING_PRICE + | ++NUMBER(,2) + | ++ + | ++ + | ++ + | +
| +COST_PRICE + | ++NUMBER(,2) + | ++Y + | ++ + | ++ + | +
| +DELIVERY_COST + | ++NUMBER(,2) + | ++Y + | ++ + | ++ + | +
| +REGI_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +EFFECTIVE_FROM + | ++DATE + | ++Y + | ++ + | ++ + | +
| +EFFECTIVE_TO + | ++DATE + | ++Y + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_BACO AS
+SELECT bas_code
+ ,selling_price
+ ,cost_price
+ ,delivery_cost
+ ,regi_code
+ ,valid_from AS effective_from
+ ,least(nvl(valid_to
+ ,to_date('2099'
+ ,'yyyy'))
+ ,nvl(next_valid_from
+ ,to_date('2099'
+ ,'yyyy'))) AS effective_to
+ FROM (SELECT bas_code
+ ,selling_price
+ ,cost_price
+ ,delivery_cost
+ ,regi_code
+ ,valid_from
+ ,valid_to
+ ,lead(valid_from) over(PARTITION BY cost.bas_code, regi_code ORDER BY valid_from) AS next_valid_from
+ FROM costs cost
+ WHERE cost_type = 'BACO');
+
++
+ + diff --git a/Documentation/pldoc/V_COMPLETE_EXT_MODULES.html b/Documentation/pldoc/V_COMPLETE_EXT_MODULES.html new file mode 100644 index 0000000..3cc972f --- /dev/null +++ b/Documentation/pldoc/V_COMPLETE_EXT_MODULES.html @@ -0,0 +1,766 @@ + + + + +
| + |
|
+ View V_COMPLETE_EXT_MODULES + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +FIELD_1 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_2 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_3 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_4 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_5 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_6 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_7 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_8 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_9 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_10 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_11 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_12 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_13 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_14 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_15 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_16 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_17 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_18 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_19 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_20 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_21 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_22 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_23 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_24 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_25 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_26 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_27 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_28 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_29 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_30 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_31 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_32 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_33 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_34 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_35 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_36 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_37 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_38 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_39 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +FIELD_40 + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_COMPLETE_EXT_MODULES AS +SELECT "FIELD_1","FIELD_2","FIELD_3","FIELD_4","FIELD_5","FIELD_6","FIELD_7","FIELD_8","FIELD_9","FIELD_10","FIELD_11","FIELD_12","FIELD_13","FIELD_14","FIELD_15","FIELD_16","FIELD_17","FIELD_18","FIELD_19","FIELD_20","FIELD_21","FIELD_22","FIELD_23","FIELD_24","FIELD_25","FIELD_26","FIELD_27","FIELD_28","FIELD_29","FIELD_30","FIELD_31","FIELD_32","FIELD_33","FIELD_34","FIELD_35","FIELD_36","FIELD_37","FIELD_38","FIELD_39","FIELD_40" + FROM ext_modules t + WHERE field_1 IS NOT NULL + AND field_2 IS NOT NULL + AND field_3 IS NOT NULL + AND field_4 IS NOT NULL + AND field_5 IS NOT NULL + AND field_6 IS NOT NULL + AND field_7 IS NOT NULL + AND field_8 IS NOT NULL + AND field_9 IS NOT NULL + AND field_10 IS NOT NULL + AND field_11 IS NOT NULL + AND field_12 IS NOT NULL + AND field_13 IS NOT NULL + AND field_14 IS NOT NULL + AND field_17 IS NOT NULL + AND field_18 IS NOT NULL + AND field_19 IS NOT NULL + AND field_20 IS NOT NULL + AND field_21 IS NOT NULL + AND field_22 IS NOT NULL + AND field_25 IS NOT NULL + AND field_26 IS NOT NULL + AND field_27 IS NOT NULL + AND field_28 IS NOT NULL + AND field_30 IS NOT NULL; ++
+
+ + diff --git a/Documentation/pldoc/V_CURRENT_CONTACT_MECHANISMS.html b/Documentation/pldoc/V_CURRENT_CONTACT_MECHANISMS.html new file mode 100644 index 0000000..46baebf --- /dev/null +++ b/Documentation/pldoc/V_CURRENT_CONTACT_MECHANISMS.html @@ -0,0 +1,199 @@ + + + + +
| + |
|
+ View V_CURRENT_CONTACT_MECHANISMS + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +PRTY_ID + | ++NUMBER + | ++Y + | ++ + | ++ + | +
| +COME_ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +CONTACT_VALUE + | ++VARCHAR2(240) + | ++Y + | ++ + | ++ + | +
| +START_DATE + | ++DATE + | ++Y + | ++ + | ++ + | +
| +END_DATE + | ++DATE + | ++Y + | ++ + | ++ + | +
| +COMMENTS + | ++VARCHAR2(255) + | ++Y + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_CURRENT_CONTACT_MECHANISMS AS +SELECT Prty_ID, + Come_ID, + Code, + Contact_value, + start_date, + end_date, + comments +FROM (SELECT prty.ID AS Prty_ID, + come_id AS Come_ID, + come.comt_code AS Code, + come.contact_value AS Contact_value, + prty_come.start_date AS start_date, + prty_come.end_date AS end_date, + prty_come.comments AS comments, + MAX(prty_come.start_date) over(PARTITION BY prty.ID, come.comt_code) AS max_start_date + FROM parties prty, + party_contact_mechanisms prty_come, + contact_mechanisms come + WHERE prty.id = prty_come.prty_id + AND come.id = prty_come.come_id) +WHERE start_date = max_start_date; ++
+
+ + diff --git a/Documentation/pldoc/V_CURRENT_ENQUIRY_STATUS.html b/Documentation/pldoc/V_CURRENT_ENQUIRY_STATUS.html new file mode 100644 index 0000000..38204c3 --- /dev/null +++ b/Documentation/pldoc/V_CURRENT_ENQUIRY_STATUS.html @@ -0,0 +1,132 @@ + + + + +
| + |
|
+ View V_CURRENT_ENQUIRY_STATUS + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +ENQU_ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +EVENT_DATE + | ++DATE + | ++ + | ++ + | ++ + | +
| +ENST_CODE + | ++VARCHAR2(80) + | ++ + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_CURRENT_ENQUIRY_STATUS AS +SELECT enqu_id + ,event_date + ,enst_code + 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 + FROM enquiry_events) + WHERE this_event = max_event; ++
+
+ + diff --git a/Documentation/pldoc/V_CURRENT_PARTY_ADDRESSES.html b/Documentation/pldoc/V_CURRENT_PARTY_ADDRESSES.html new file mode 100644 index 0000000..fe60c82 --- /dev/null +++ b/Documentation/pldoc/V_CURRENT_PARTY_ADDRESSES.html @@ -0,0 +1,287 @@ + + + + +
| + |
|
+ View V_CURRENT_PARTY_ADDRESSES + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +ID + | ++NUMBER + | ++Y + | ++ + | ++ + | +
| +ADDRESS_CODE + | ++VARCHAR2(80) + | ++ + | ++ + | ++ + | +
| +SUB_BUILDING + | ++VARCHAR2(40) + | ++Y + | ++ + | ++ + | +
| +BUILDING + | ++VARCHAR2(40) + | ++Y + | ++ + | ++ + | +
| +STREET + | ++VARCHAR2(60) + | ++Y + | ++ + | ++ + | +
| +CITY + | ++VARCHAR2(40) + | ++ + | ++ + | ++ + | +
| +POSTCODE + | ++VARCHAR2(8) + | ++Y + | ++ + | ++ + | +
| +START_DATE + | ++DATE + | ++Y + | ++ + | ++ + | +
| +END_DATE + | ++DATE + | ++Y + | ++ + | ++ + | +
| +COMMENTS + | ++VARCHAR2(255) + | ++Y + | ++ + | ++ + | +
| +RT_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +MAX_START_DATE + | ++DATE + | ++Y + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_CURRENT_PARTY_ADDRESSES AS +SELECT "ID","ADDRESS_CODE","SUB_BUILDING","BUILDING","STREET","CITY","POSTCODE","START_DATE","END_DATE","COMMENTS","RT_CODE","MAX_START_DATE" +FROM (SELECT parties.id, + addresses.code AS address_code, + addresses.sub_building, + addresses.building, + addresses.street, + addresses.city, + addresses.postcode, + party_addresses.start_date, + party_addresses.end_date, + party_addresses.comments, + party_address_roles.rt_code, + MAX(party_addresses.start_date) over(PARTITION BY parties.ID, rt_code) AS max_start_date + FROM addresses, + party_addresses, + party_address_roles, + parties + WHERE addresses.code = party_addresses.addr_code + AND party_addresses.start_date = party_address_roles.paddr_start_date + AND party_addresses.addr_code = party_address_roles.paddr_addr_code + AND party_addresses.prty_id = party_address_roles.paddr_prty_id + AND parties.id = party_addresses.prty_id) + WHERE start_date = max_start_date + ORDER BY ID; ++
+
+ + diff --git a/Documentation/pldoc/V_CURRENT_QUOTE_STATUS.html b/Documentation/pldoc/V_CURRENT_QUOTE_STATUS.html new file mode 100644 index 0000000..391273d --- /dev/null +++ b/Documentation/pldoc/V_CURRENT_QUOTE_STATUS.html @@ -0,0 +1,148 @@ + + + + +
| + |
|
+ View V_CURRENT_QUOTE_STATUS + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +QUTE_ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +EVENT_DATE + | ++DATE + | ++ + | ++ + | ++ + | +
| +QUST_CODE + | ++VARCHAR2(80) + | ++ + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_CURRENT_QUOTE_STATUS AS +SELECT qute_id + ,event_date + ,qust_code + 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 + FROM quote_events) + WHERE this_event = max_event; ++
+
+ + diff --git a/Documentation/pldoc/V_ENQUIRY_PRTY_SUPP.html b/Documentation/pldoc/V_ENQUIRY_PRTY_SUPP.html new file mode 100644 index 0000000..2d0b803 --- /dev/null +++ b/Documentation/pldoc/V_ENQUIRY_PRTY_SUPP.html @@ -0,0 +1,153 @@ + + + + +
| + |
|
+ View V_ENQUIRY_PRTY_SUPP + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +ENQU_ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +PRTY_ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +PRTY_ROLE + | ++VARCHAR2(80) + | ++ + | ++ + | ++ + | +
| +SUPP_PRTY_ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +SUPP_PRTY_ROLE + | ++VARCHAR2(80) + | ++ + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_ENQUIRY_PRTY_SUPP AS +SELECT enqu.ID AS enqu_id, enro1.prty_id AS prty_id, enro1.rt_code AS prty_role, enquiry_suppliers.prty_id AS supp_prty_id, + enquiry_suppliers.rt_code AS supp_prty_role + FROM enquiries enqu, + enquiry_roles enro1, + (SELECT enro.* + FROM enquiry_roles enro + WHERE enro.rt_code = 'ENQ SUPP') enquiry_suppliers + WHERE enro1.enqu_id = enquiry_suppliers.enqu_id + AND enro1.enqu_id = enqu.ID; ++
+
+ + diff --git a/Documentation/pldoc/V_HOCO.html b/Documentation/pldoc/V_HOCO.html new file mode 100644 index 0000000..8634525 --- /dev/null +++ b/Documentation/pldoc/V_HOCO.html @@ -0,0 +1,200 @@ + + + + +
| + |
|
+ View V_HOCO + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +HOU_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +SELLING_PRICE + | ++NUMBER(,2) + | ++ + | ++ + | ++ + | +
| +COST_PRICE + | ++NUMBER(,2) + | ++Y + | ++ + | ++ + | +
| +DELIVERY_COST + | ++NUMBER(,2) + | ++Y + | ++ + | ++ + | +
| +REGI_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +EFFECTIVE_FROM + | ++DATE + | ++Y + | ++ + | ++ + | +
| +EFFECTIVE_TO + | ++DATE + | ++Y + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_HOCO AS
+SELECT hou_code
+ ,selling_price
+ ,cost_price
+ ,delivery_cost
+ ,regi_code
+ ,valid_from AS effective_from
+ ,least(nvl(valid_to
+ ,to_date('2099'
+ ,'yyyy'))
+ ,nvl(next_valid_from
+ ,to_date('2099'
+ ,'yyyy'))) AS effective_to
+ FROM (SELECT hou_code
+ ,selling_price
+ ,cost_price
+ ,delivery_cost
+ ,regi_code
+ ,valid_from
+ ,valid_to
+ ,lead(valid_from) over(PARTITION BY cost.hou_code, regi_code ORDER BY valid_from) AS next_valid_from
+ FROM costs cost
+ WHERE cost_type = 'HOCO');
+
++
+ + diff --git a/Documentation/pldoc/V_LACO.html b/Documentation/pldoc/V_LACO.html new file mode 100644 index 0000000..a68d379 --- /dev/null +++ b/Documentation/pldoc/V_LACO.html @@ -0,0 +1,257 @@ + + + + +
| + |
|
+ View V_LACO + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +ENTY_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +METY_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +SVCPT_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +MESC_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +SELLING_PRICE + | ++NUMBER(,2) + | ++ + | ++ + | ++ + | +
| +COST_PRICE + | ++NUMBER(,2) + | ++Y + | ++ + | ++ + | +
| +DELIVERY_COST + | ++NUMBER(,2) + | ++Y + | ++ + | ++ + | +
| +REGI_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +EFFECTIVE_FROM + | ++DATE + | ++Y + | ++ + | ++ + | +
| +EFFECTIVE_TO + | ++DATE + | ++Y + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_LACO AS
+SELECT enty_code
+ ,mety_code
+ ,svcpt_code
+ ,mesc_code
+ ,selling_price
+ ,cost_price
+ ,delivery_cost
+ ,regi_code
+ ,valid_from AS effective_from
+ ,least(nvl(valid_to
+ ,to_date('2099'
+ ,'yyyy'))
+ ,nvl(next_valid_from
+ ,to_date('2099'
+ ,'yyyy'))) AS effective_to
+ FROM (SELECT enty_code
+ ,mety_code
+ ,svcpt_code
+ ,mesc_code
+ ,selling_price
+ ,cost_price
+ ,delivery_cost
+ ,regi_code
+ ,valid_from
+ ,valid_to
+ ,lead(valid_from) over(PARTITION BY enty_code, mety_code, svcpt_code, mesc_code, regi_code ORDER BY valid_from) AS next_valid_from
+ FROM costs cost
+ WHERE cost_type = 'LACO');
+
++
+ + diff --git a/Documentation/pldoc/V_LAST_ENQUIRY_UPDATE.html b/Documentation/pldoc/V_LAST_ENQUIRY_UPDATE.html new file mode 100644 index 0000000..83735a7 --- /dev/null +++ b/Documentation/pldoc/V_LAST_ENQUIRY_UPDATE.html @@ -0,0 +1,244 @@ + + + + +
| + |
|
+ View V_LAST_ENQUIRY_UPDATE + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +MPRN + | ++NUMBER(30) + | ++Y + | ++ + | ++ + | +
| +TRANSACTION_REFERENCE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +INSTALL_POSTCODE + | ++VARCHAR2(8) + | ++Y + | ++ + | ++ + | +
| +PRTY_ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +RT_CODE + | ++VARCHAR2(80) + | ++ + | ++ + | ++ + | +
| +START_DATE + | ++DATE + | ++ + | ++ + | ++ + | +
| +END_DATE + | ++DATE + | ++Y + | ++ + | ++ + | +
| +DESCRIPTION + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +ENQU_ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_LAST_ENQUIRY_UPDATE AS +SELECT enqu.id, + enqu.mprn, + enqu.transaction_reference, + enqu.install_postcode, + enro1."PRTY_ID",enro1."RT_CODE",enro1."START_DATE",enro1."END_DATE",enro1."DESCRIPTION",enro1."ENQU_ID" + FROM enquiries enqu, + enquiry_roles enro1, + (SELECT enro.enqu_id, MAX(enro.start_date) max_date + FROM enquiry_roles enro + WHERE enro.rt_code = 'AGENT' + GROUP BY enro.enqu_id) enq_roles + WHERE enq_roles.enqu_id = enqu.id + AND enro1.start_date = enq_roles.max_date + AND enro1.rt_code = 'AGENT' + ORDER BY enqu.ID; ++
+
+ + diff --git a/Documentation/pldoc/V_LATEST_RT_CODE_FOR_ENRO.html b/Documentation/pldoc/V_LATEST_RT_CODE_FOR_ENRO.html index 80779e0..6e0cbcb 100644 --- a/Documentation/pldoc/V_LATEST_RT_CODE_FOR_ENRO.html +++ b/Documentation/pldoc/V_LATEST_RT_CODE_FOR_ENRO.html @@ -41,13 +41,13 @@ Default
CREATE OR REPLACE VIEW V_LATEST_RT_CODE_FOR_ENRO AS
-SELECT prty_id
- ,rt_code
- ,start_date
- ,end_date
- ,enqu_id
+SELECT prty_id
+ ,rt_code
+ ,start_date
+ ,end_date
+ ,enqu_id
FROM (SELECT enro.*
- ,MAX(start_date) over(PARTITION BY rt_code, enqu_id) AS max_date_rt_code
+ ,MAX(start_date) over(PARTITION BY rt_code, enqu_id) AS max_date_rt_code
FROM enquiry_roles enro)
- WHERE start_date = max_date_rt_code;
+ WHERE start_date = max_date_rt_code;
diff --git a/Documentation/pldoc/V_MECO.html b/Documentation/pldoc/V_MECO.html new file mode 100644 index 0000000..a3ad1f0 --- /dev/null +++ b/Documentation/pldoc/V_MECO.html @@ -0,0 +1,200 @@ + + + + +
| + |
|
+ View V_MECO + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +METR_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +SELLING_PRICE + | ++NUMBER(,2) + | ++ + | ++ + | ++ + | +
| +COST_PRICE + | ++NUMBER(,2) + | ++Y + | ++ + | ++ + | +
| +DELIVERY_COST + | ++NUMBER(,2) + | ++Y + | ++ + | ++ + | +
| +REGI_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +EFFECTIVE_FROM + | ++DATE + | ++Y + | ++ + | ++ + | +
| +EFFECTIVE_TO + | ++DATE + | ++Y + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_MECO AS
+SELECT metr_code
+ ,selling_price
+ ,cost_price
+ ,delivery_cost
+ ,regi_code
+ ,valid_from AS effective_from
+ ,least(nvl(valid_to
+ ,to_date('2099'
+ ,'yyyy'))
+ ,nvl(next_valid_from
+ ,to_date('2099'
+ ,'yyyy'))) AS effective_to
+ FROM (SELECT metr_code
+ ,selling_price
+ ,cost_price
+ ,delivery_cost
+ ,regi_code
+ ,valid_from
+ ,valid_to
+ ,lead(valid_from) over(PARTITION BY cost.metr_code, regi_code ORDER BY valid_from) AS next_valid_from
+ FROM costs cost
+ WHERE cost_type = 'MECO');
+
++
+ + diff --git a/Documentation/pldoc/V_MOCO.html b/Documentation/pldoc/V_MOCO.html new file mode 100644 index 0000000..9cd3396 --- /dev/null +++ b/Documentation/pldoc/V_MOCO.html @@ -0,0 +1,200 @@ + + + + +
| + |
|
+ View V_MOCO + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +MODU_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +SELLING_PRICE + | ++NUMBER(,2) + | ++ + | ++ + | ++ + | +
| +COST_PRICE + | ++NUMBER(,2) + | ++Y + | ++ + | ++ + | +
| +DELIVERY_COST + | ++NUMBER(,2) + | ++Y + | ++ + | ++ + | +
| +REGI_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +EFFECTIVE_FROM + | ++DATE + | ++Y + | ++ + | ++ + | +
| +EFFECTIVE_TO + | ++DATE + | ++Y + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_MOCO AS
+SELECT modu_code
+ ,selling_price
+ ,cost_price
+ ,delivery_cost
+ ,regi_code
+ ,valid_from AS effective_from
+ ,least(nvl(valid_to
+ ,to_date('2099'
+ ,'yyyy'))
+ ,nvl(next_valid_from
+ ,to_date('2099'
+ ,'yyyy'))) AS effective_to
+ FROM (SELECT modu_code
+ ,selling_price
+ ,cost_price
+ ,delivery_cost
+ ,regi_code
+ ,valid_from
+ ,valid_to
+ ,lead(valid_from) over(PARTITION BY cost.modu_code, regi_code ORDER BY valid_from) AS next_valid_from
+ FROM costs cost
+ WHERE cost_type = 'MOCO') moco;
+
++
+ + diff --git a/Documentation/pldoc/V_PARTY_ADDRESSES.html b/Documentation/pldoc/V_PARTY_ADDRESSES.html new file mode 100644 index 0000000..1d9b539 --- /dev/null +++ b/Documentation/pldoc/V_PARTY_ADDRESSES.html @@ -0,0 +1,266 @@ + + + + +
| + |
|
+ View V_PARTY_ADDRESSES + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +ADDRESS_CODE + | ++VARCHAR2(80) + | ++ + | ++ + | ++ + | +
| +SUB_BUILDING + | ++VARCHAR2(40) + | ++Y + | ++ + | ++ + | +
| +BUILDING + | ++VARCHAR2(40) + | ++ + | ++ + | ++ + | +
| +STREET + | ++VARCHAR2(60) + | ++ + | ++ + | ++ + | +
| +CITY + | ++VARCHAR2(40) + | ++ + | ++ + | ++ + | +
| +POSTCODE + | ++VARCHAR2(8) + | ++ + | ++ + | ++ + | +
| +START_DATE + | ++DATE + | ++ + | ++ + | ++ + | +
| +END_DATE + | ++DATE + | ++Y + | ++ + | ++ + | +
| +COMMENTS + | ++VARCHAR2(255) + | ++Y + | ++ + | ++ + | +
| +RT_CODE + | ++VARCHAR2(80) + | ++ + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_PARTY_ADDRESSES AS +SELECT parties.id, + addresses.code AS address_code, + addresses.sub_building, + addresses.building, + addresses.street, + addresses.city, + addresses.postcode, + party_addresses.start_date, + party_addresses.end_date, + party_addresses.comments, + party_address_roles.rt_code + FROM addresses, + party_addresses, + party_address_roles, + parties + WHERE addresses.code = party_addresses.addr_code + AND party_addresses.start_date = party_address_roles.paddr_start_date + AND party_addresses.addr_code = party_address_roles.paddr_addr_code + AND party_addresses.prty_id = party_address_roles.paddr_prty_id + AND parties.id = party_addresses.prty_id; ++
+
+ + diff --git a/Documentation/pldoc/V_PARTY_RELATIONSHIPS.html b/Documentation/pldoc/V_PARTY_RELATIONSHIPS.html index fecd916..c2c874a 100644 --- a/Documentation/pldoc/V_PARTY_RELATIONSHIPS.html +++ b/Documentation/pldoc/V_PARTY_RELATIONSHIPS.html @@ -41,7 +41,7 @@ Default
CREATE OR REPLACE VIEW V_PROFILE_RT_CODE_FOR_ENRO AS
-SELECT prty_id
- ,rt_code
- ,start_date
- ,end_date
+SELECT prty_id
+ ,rt_code
+ ,start_date
+ ,end_date
,next_start_date
- ,enqu_id
+ ,enqu_id
FROM (SELECT enro.prty_id
,enro.rt_code
,enro.start_date
,enro.end_date
- ,enqu_id
- ,lead(start_date
- ,1) over(PARTITION BY rt_code, enqu_id ORDER BY start_date) AS next_start_date
+ ,enqu_id
+ ,lead(start_date
+ ,1) over(PARTITION BY rt_code, enqu_id ORDER BY start_date) AS next_start_date
FROM enquiry_roles enro);
diff --git a/Documentation/pldoc/V_PRTY_ID_FOR_ENQUIRIES.html b/Documentation/pldoc/V_PRTY_ID_FOR_ENQUIRIES.html new file mode 100644 index 0000000..6665e7f --- /dev/null +++ b/Documentation/pldoc/V_PRTY_ID_FOR_ENQUIRIES.html @@ -0,0 +1,172 @@ + + + + +
| + |
|
+ View V_PRTY_ID_FOR_ENQUIRIES + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +ENQU_ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +START_DATE + | ++DATE + | ++ + | ++ + | ++ + | +
| +END_DATE + | ++DATE + | ++Y + | ++ + | ++ + | +
| +DESCRIPTION + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +PRTY_ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +RT_CODE + | ++VARCHAR2(80) + | ++ + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_PRTY_ID_FOR_ENQUIRIES AS
+SELECT DISTINCT enro.enqu_id
+ ,enro.start_date
+ ,enro.end_date
+ ,enro.DESCRIPTION
+ ,prel.from_parl_prty_id AS prty_id
+ ,prel.from_rt_code AS rt_code
+ FROM v_party_relationships prel
+ ,enquiry_roles enro
+ WHERE prel.to_parl_prty_id = enro.prty_id
+ --AND enro.rt_code = 'ENQ SUPP'
+ --AND prel.from_rt_code IN ('SUPPADMIN', 'AGENT');
+
++
+ + diff --git a/Documentation/pldoc/V_QUOTE_DETAILS.html b/Documentation/pldoc/V_QUOTE_DETAILS.html new file mode 100644 index 0000000..33d3cbd --- /dev/null +++ b/Documentation/pldoc/V_QUOTE_DETAILS.html @@ -0,0 +1,322 @@ + + + + +
| + |
|
+ View V_QUOTE_DETAILS +This view shows details of each of the quotes for an enquiry. + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +ENQUIRY_ID + | ++NUMBER + | ++Y + | ++ + | ++The ID of the enquiry this quote relates to. + | +
| +QUOTE_ID + | ++NUMBER + | ++Y + | ++ + | ++The unique ID for this particular quote. + | +
| +ENTY_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++The type of enquiry quoted for. + | +
| +MODULE_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++The name of the module quoted for. + | +
| +LEAD_TIME + | ++NUMBER + | ++Y + | ++ + | ++The lead time for installation. This is the max of any additional item's lead times. + | +
| +ADDITIONAL_ITEMS + | ++VARCHAR2(4000) + | ++Y + | ++ + | ++Any additional items included in the quote. + | +
| +BAS_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++The module base code. + | +
| +HOU_CODE + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +QMAX + | ++NUMBER + | ++Y + | ++ + | ++The meter module's Q max. + | +
| +QMIN + | ++NUMBER + | ++Y + | ++ + | ++ + | +
| +INLET_ORIENTATION + | ++VARCHAR2(80) + | ++Y + | ++ + | ++The orientation of the meter inlet. + | +
| +OUTLET_ORIENTATION + | ++VARCHAR2(80) + | ++Y + | ++ + | ++The orientatino of the meter outlet. + | +
| +TOTAL_COST + | ++NUMBER + | ++Y + | ++ + | ++The total cost of the quote. This figure excludes any lifting gear or purging. + | +
| +ROW_NUMBER + | ++NUMBER + | ++Y + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_QUOTE_DETAILS AS
+SELECT "ENQUIRY_ID","QUOTE_ID","ENTY_CODE","MODULE_CODE","LEAD_TIME","ADDITIONAL_ITEMS","BAS_CODE","HOU_CODE","QMAX","QMIN","INLET_ORIENTATION","OUTLET_ORIENTATION","TOTAL_COST","ROW_NUMBER"
+ FROM (SELECT q.enqu_id AS enquiry_id
+ ,t.qute_id AS quote_id
+ ,MAX(t.enty_code) over(PARTITION BY qute_id) AS enty_code
+ ,MAX(t.modu_code) over(PARTITION BY qute_id) AS module_code
+ ,MAX(t.lead_time) over(PARTITION BY qute_id ORDER BY qute_id) AS lead_time
+ ,get_quote_items(qute_id) AS additional_items
+ ,MAX(t.bas_code) over(PARTITION BY qute_id) AS bas_code
+ ,MAX(t.hou_code) over(PARTITION BY qute_id) AS hou_code
+ ,MAX(t.qmax) over(PARTITION BY qute_id) AS qmax
+ ,MAX(t.qmin) over(PARTITION BY qute_id) AS qmin
+ ,MAX(t.inlet_orientation) over(PARTITION BY qute_id) AS inlet_orientation
+ ,MAX(t.outlet_orientation) over(PARTITION BY qute_id) AS outlet_orientation
+ ,SUM(nvl(t.selling_price
+ ,0) + nvl(t.delivery_price
+ ,0)) over(PARTITION BY qute_id ORDER BY qute_id) AS total_cost
+ ,row_number() over(PARTITION BY qute_id ORDER BY qute_id) AS row_number
+ FROM quote_items t
+ ,quotes q
+ WHERE t.qute_id = q.ID
+ and not (quit_type = 'AQI' and adit_code in ('LIFTING GEAR','PURGING'))
+ ORDER BY enqu_id
+ ,quote_id
+ ,t.id) all_quote_items
+ WHERE row_number = 1;
+
++
+ + diff --git a/Documentation/pldoc/V_SUPPLIER_ADMINISTRATORS.html b/Documentation/pldoc/V_SUPPLIER_ADMINISTRATORS.html new file mode 100644 index 0000000..e0f3e7a --- /dev/null +++ b/Documentation/pldoc/V_SUPPLIER_ADMINISTRATORS.html @@ -0,0 +1,199 @@ + + + + +
| + |
|
+ View V_SUPPLIER_ADMINISTRATORS + + |
| +Columns + |
| +Name + + | ++Type + + | ++Optional + + | ++Default + + | ++Comments + + | +
| +SUPPLIER_ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +SUPPLIER + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +SHORTCODE + | ++VARCHAR2(3) + | ++Y + | ++ + | ++ + | +
| +SUPP_ADMIN_ID + | ++NUMBER + | ++ + | ++ + | ++ + | +
| +USERNAME + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +FIRST_NAME + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +LAST_NAME + | ++VARCHAR2(80) + | ++Y + | ++ + | ++ + | +
| +SQL + |
+CREATE OR REPLACE VIEW V_SUPPLIER_ADMINISTRATORS AS +SELECT supplier.ID AS supplier_id, + supplier.NAME AS supplier, + supplier.shortcode AS shortcode, + supp_admin.id AS supp_admin_id, + supp_admin.username, + supp_admin.first_name, + supp_admin.last_name + FROM parties supplier, + parties supp_admin, + party_roles supplier_role, + party_roles supp_admin_role, + party_relationships parel + WHERE parel.from_parl_prty_id = supp_admin.id + AND parel.from_parl_id = supp_admin_role.ID + AND parel.to_parl_prty_id = supplier.ID + AND parel.to_parl_id = supplier_role.ID + AND supp_admin_role.prty_id = supp_admin.ID + AND supp_admin_role.rt_code = 'SUPPADMIN' + AND supplier_role.prty_id = supplier.ID + AND supplier_role.rt_code = 'SUPP' + ORDER BY 1; ++
+
+ + diff --git a/Documentation/pldoc/cout_assert.html b/Documentation/pldoc/cout_assert.html new file mode 100644 index 0000000..528772a --- /dev/null +++ b/Documentation/pldoc/cout_assert.html @@ -0,0 +1,429 @@ + + + + +
| + |
|
+ Package cout_assert +Package of assertion routines to make it easy to validate assumptions in a declarative fashion.+ + + |
| +Program units + |
| +istrue + | +Asserts whether the given p_condition is true + |
| +isnotnull + | +Asserts whether the given p_value IS NOT NULL + |
| +isnotnull + | +Asserts whether the given p_value IS NOT NULL + |
| +isnotnull + | +Asserts whether the given p_value IS NOT NULL + |
| +isnotnull + | +Asserts whether the given p_value IS NOT NULL + |
| +Types + |
| +g_t_substitution_list + | + + |
| +Variables + |
| +c_empty_substitution_list + | + + |
+g_t_substitution_list +
++SUBTYPE g_t_substitution_list IS cout_err.g_t_substitution_list; ++
+c_empty_substitution_list +
++c_empty_substitution_list g_t_substitution_list; ++
+istrue +
++PROCEDURE istrue(p_condition IN BOOLEAN + ,p_message IN VARCHAR2 + ,p_raise_exception IN BOOLEAN := TRUE + ,p_exception IN NUMBER := -6502 + ,p_substitution_list IN g_t_substitution_list := c_empty_substitution_list + ,p_helper_call_level IN NUMBER := 1) + ++
+Asserts whether the given p_condition is true
+
+
+
| +Usage + |
| + |
+cout_assert.istrue(p_inmo_type IN ('CR', 'CU', 'INMO', 'CA', 'CT'),p_message => 'Invalid inmo_type passed'); + + |
| +Parameters + |
| + | +p_condition + |
+The condition to be asserted as TRUE + + |
| + | +p_message + |
+The message to be displayed when the assertion is NOT TRUE + + |
| + | +p_raise_exception + |
+Requests that an exception be raised if the assertion is NOT TRUE + + |
| + | +p_exception + |
+The exception to be raised, if requested + + |
| + | +p_subsitution_list + |
+Table of values to be substituted into the generated exception message + + |
| + | +p_helper_call_level + |
+If being used by a 'helper' procedure, indicates the call above the curremt call to be reported + + |
+isnotnull +
++PROCEDURE isnotnull(p_value IN VARCHAR2 + ,p_message IN VARCHAR2 + ,p_raise_exception IN BOOLEAN := TRUE + ,p_exception IN NUMBER := -6502 + ,p_substitution_list IN g_t_substitution_list := c_empty_substitution_list) + ++
+Asserts whether the given p_value IS NOT NULL
+
+
+
| +Usage + |
| + |
+cout_assert.isnotnull(p_value => l_inst_id,p_message => 'Inventory statement not found'); + + |
| +Parameters + |
| + | +p_condition + |
+The condition to be asserted as TRUE + + |
| + | +p_message + |
+The message to be displayed when the assertion is NOT TRUE + + |
| + | +p_raise_exception + |
+Requests that an exception be raised if the assertion is NOT TRUE + + |
| + | +p_exception + |
+The exception to be raised, if requested + + |
| + | +p_subsitution_list + |
+Table of values to be substituted into the generated exception message + + |
+isnotnull +
++PROCEDURE isnotnull(p_value IN DATE + ,p_message IN VARCHAR2 + ,p_raise_exception IN BOOLEAN := TRUE + ,p_exception IN NUMBER := -6502 + ,p_substitution_list IN g_t_substitution_list := c_empty_substitution_list) + ++
+Asserts whether the given p_value IS NOT NULL
+
+
+
| +Parameters + |
| + | +p_condition + |
+The condition to be asserted as TRUE + + |
| + | +p_message + |
+The message to be displayed when the assertion is NOT TRUE + + |
| + | +p_raise_exception + |
+Requests that an exception be raised if the assertion is NOT TRUE + + |
| + | +p_exception + |
+The exception to be raised, if requested + + |
| + | +p_subsitution_list + |
+Table of values to be substituted into the generated exception message + + |
+isnotnull +
++PROCEDURE isnotnull(p_value IN NUMBER + ,p_message IN VARCHAR2 + ,p_raise_exception IN BOOLEAN := TRUE + ,p_exception IN NUMBER := -6502 + ,p_substitution_list IN g_t_substitution_list := c_empty_substitution_list) + ++
+Asserts whether the given p_value IS NOT NULL
+
+
+
| +Parameters + |
| + | +p_condition + |
+The condition to be asserted as TRUE + + |
| + | +p_message + |
+The message to be displayed when the assertion is NOT TRUE + + |
| + | +p_raise_exception + |
+Requests that an exception be raised if the assertion is NOT TRUE + + |
| + | +p_exception + |
+The exception to be raised, if requested + + |
| + | +p_subsitution_list + |
+Table of values to be substituted into the generated exception message + + |
+isnotnull +
++PROCEDURE isnotnull(p_value IN BOOLEAN + ,p_message IN VARCHAR2 + ,p_raise_exception IN BOOLEAN := TRUE + ,p_exception IN NUMBER := -6502 + ,p_substitution_list IN g_t_substitution_list := c_empty_substitution_list) + ++
+Asserts whether the given p_value IS NOT NULL
+
+
+
| +Parameters + |
| + | +p_condition + |
+The condition to be asserted as TRUE + + |
| + | +p_message + |
+The message to be displayed when the assertion is NOT TRUE + + |
| + | +p_raise_exception + |
+Requests that an exception be raised if the assertion is NOT TRUE + + |
| + | +p_exception + |
+The exception to be raised, if requested + + |
| + | +p_subsitution_list + |
+Table of values to be substituted into the generated exception message + + |
+
+ + diff --git a/Documentation/pldoc/cout_err.html b/Documentation/pldoc/cout_err.html new file mode 100644 index 0000000..5fad006 --- /dev/null +++ b/Documentation/pldoc/cout_err.html @@ -0,0 +1,382 @@ + + + + +
| + |
|
+ Package cout_err + ++ |
| +Program units + |
| +report_and_stop + | +Reports the error and RAISES an exception to halt program execution + |
| +report_and_go + | +Reports the error and continues program execution + |
| +logto + | +Allows the specification of the log destination + |
| +logging_to + | +Returns the current log destination. + |
| +about + | +Return an identification string to link to the source control system. + |
| +Types + |
| +g_t_substitution_list + | +Specifies the substitution values that could be passed into any generated error message + |
| +Variables + |
| +c_empty_substitution_list + | + + |
| +Constants + |
| +g_header + | + + |
| +g_revision + | + + |
| +c_table + | +Specifies logging to be table-based (ERROR_LOGS), this the default log method. + |
| +c_file + | +Specifies logging to be file-based. + |
| +c_screen + | +Specifies logging to be screen-based. + |
+g_header +
++g_header CONSTANT VARCHAR2(160) := '$Header: /Isle Of Grain/Database/PLSQL/cout_err.pck 3 1/04/05 16:13 Hardya $'; ++
+g_revision +
++g_revision CONSTANT VARCHAR2(160) := '$Revision: 3 $'; ++
+c_table +
++c_table CONSTANT PLS_INTEGER := 1; ++
+Specifies logging to be table-based (ERROR_LOGS), this the default log method.
+
+
+
+c_file +
++c_file CONSTANT PLS_INTEGER := 2; ++
+Specifies logging to be file-based.
+
+
+
+c_screen +
++c_screen CONSTANT PLS_INTEGER := 3; ++
+Specifies logging to be screen-based.
+
+
+
+g_t_substitution_list +
++TYPE g_t_substitution_list IS TABLE OF VARCHAR2(80) INDEX BY BINARY_INTEGER; ++
+Specifies the substitution values that could be passed into any generated error message
+
+
+
+c_empty_substitution_list +
++c_empty_substitution_list g_t_substitution_list; ++
+report_and_stop +
++PROCEDURE report_and_stop(p_exception_number IN INTEGER := SQLCODE + ,p_exception_message IN VARCHAR2 := NULL + ,p_substitution_list IN g_t_substitution_list := c_empty_substitution_list + ,p_helper_call_level IN NUMBER := 0 + ,p_error_group IN VARCHAR2 := 'APPLICATION' + ,p_severity IN VARCHAR2 := 'E' + ,p_source IN VARCHAR2 := NULL) + ++
+Reports the error and RAISES an exception to halt program execution
+
+
+
| +Parameters + |
| + | +p_exception_number + |
+The exception to be raised, defaults to SQLCODE + + |
| + | +p_exception_message + |
+The message to be logged, defaults to the matching message from EXCEPTION_MESSAGES + + |
| + | +p_helper_call + |
+If TRUE, indicates that this report is being produced through a helper function + + |
| + | +p_error_group + |
+The error group that this error should be reported as a part of + + |
+report_and_go +
++PROCEDURE report_and_go(p_exception_number IN INTEGER := SQLCODE + ,p_exception_message IN VARCHAR2 := NULL + ,p_substitution_list IN g_t_substitution_list := c_empty_substitution_list + ,p_helper_call_level IN NUMBER := 0 + ,p_error_group IN VARCHAR2 := 'APPLICATION' + ,p_severity IN VARCHAR2 := 'E' + ,p_source IN VARCHAR2 := NULL) + ++
+Reports the error and continues program execution
+
+
+
| +Parameters + |
| + | +p_exception_number + |
+The exception to be raised, defaults to SQLCODE + + |
| + | +p_exception_message + |
+The message to be logged, defaults to the matching message from EXCEPTION_MESSAGES + + |
| + | +p_helper_call + |
+If TRUE, indicates that this report is being produced through a helper function + + |
| + | +p_error_group + |
+The error group that this error should be reported as a part of + + |
+logto +
++PROCEDURE logto(p_target IN PLS_INTEGER + ,p_dir IN VARCHAR2 := NULL + ,p_file IN VARCHAR2 := NULL) + ++
+Allows the specification of the log destination
+
+
+
| +Parameters + |
| + | +p_target + | +The destination (as defined by the constants c_table, c_file and c_screen + + |
| + | +p_dir + |
+If file has been chosen, allows the log directory to be specified + + |
| + | +p_file + |
+If file has been chosen, allows the log filename to be specified + + |
+logging_to +
++FUNCTION logging_to RETURN PLS_INTEGER + ++
+Returns the current log destination.
+
+
+
| +Returns + |
| + | +Returns a value matching c_table, c_file or c_screen + + |
+about +
++FUNCTION about RETURN VARCHAR2 + ++
+Return an identification string to link to the source control system.
+
+
+
+
+ + diff --git a/Documentation/pldoc/cout_system_configuration.html b/Documentation/pldoc/cout_system_configuration.html new file mode 100644 index 0000000..b68760b --- /dev/null +++ b/Documentation/pldoc/cout_system_configuration.html @@ -0,0 +1,269 @@ + + + + +
| + |
| +Program units + |
| +add_configuration_item_date + | +Add a date configuration item + |
| +add_configuration_item + | +Add a non-date configuration item + |
| +get_configuration_item_date + | +Get a date configuration item + |
| +get_configuration_item + | +Get a configuration item + |
| +Constants + |
| +g_date_format + | +Default date format for stored configuration items + |
+g_date_format +
++g_date_format CONSTANT VARCHAR2(80) := 'DD/MM/YYYY HH24:MI:SS'; ++
+Default date format for stored configuration items
+
+
+
+add_configuration_item_date +
++PROCEDURE add_configuration_item_date(p_parameter IN system_configuration.parameter%TYPE + ,p_value IN DATE + ,p_description IN system_configuration.description%TYPE := NULL) + ++
+Add a date configuration item
+
+
+
| +Parameters + |
| + | +p_parameter + |
+The name of the configuration item + + |
| + | +p_value + |
+The value to be given to the configuration item + + |
| + | +p_description + |
+The description of the configuration item + + |
+add_configuration_item +
++PROCEDURE add_configuration_item(p_parameter IN system_configuration.parameter%TYPE + ,p_value IN system_configuration.VALUE%TYPE DEFAULT NULL + ,p_description IN system_configuration.description%TYPE := NULL) + ++
+Add a non-date configuration item
+
+
+
| +Parameters + |
| + | +p_parameter + |
+The name of the configuration item + + |
| + | +p_value + |
+The value to be given to the configuration item + + |
| + | +p_description + |
+The description of the configuration item + + |
+get_configuration_item_date +
++FUNCTION get_configuration_item_date(p_parameter IN system_configuration.parameter%TYPE) + RETURN DATE + ++
+Get a date configuration item
+
+
+
| +Parameters + |
| + | +p_parameter + |
+The name of the configuration item to be retrieved + + |
| +Returns + |
| + |
+Value of the configuration item as a date + + |
+get_configuration_item +
++FUNCTION get_configuration_item(p_parameter IN system_configuration.parameter%TYPE) + RETURN system_configuration.VALUE%TYPE + ++
+Get a configuration item
+
+
+
| +Parameters + |
| + | +p_parameter + |
+The name of the configuration item to be retrieved + + |
| +Returns + |
| + |
+Value of the configuration item + + |
+
+ + diff --git a/Documentation/pldoc/export_xml_pkg.html b/Documentation/pldoc/export_xml_pkg.html new file mode 100644 index 0000000..f3e53f1 --- /dev/null +++ b/Documentation/pldoc/export_xml_pkg.html @@ -0,0 +1,63 @@ + + + + +
| + |
|
+ Package export_xml_pkg + ++ |
| +Program units + |
| +get_usable_sql + | + + |
| +print_report + | + + |
+get_usable_sql +
++FUNCTION get_usable_sql(p_region_in IN VARCHAR2 + ,p_page_id IN VARCHAR2 + ,p_app_id IN VARCHAR2) RETURN CLOB + ++
+print_report +
+
+PROCEDURE print_report(p_region IN VARCHAR2
+ ,p_file_name IN VARCHAR2 DEFAULT 'xml_report'
+ ,p_page_id IN NUMBER DEFAULT v('APP_PAGE_ID'))
+
+
++
+ + diff --git a/Documentation/pldoc/frame_index.html b/Documentation/pldoc/frame_index.html index 0dbd250..8f1fbb2 100644 --- a/Documentation/pldoc/frame_index.html +++ b/Documentation/pldoc/frame_index.html @@ -16,6 +16,12 @@ export_xml_pkg
| Functions |
| + get_quote_items + |
| Procedures |
| + gen_mandatory + |
| + gen_plsqldoc + |
| + get_dir_list + |
| + getpdf + |
| + getreportpdf + |
| + test_ah + |
| + test_ah2 + |
| Tables |
| + V_AICO + |
| + V_BACO + |
| + V_COMPLETE_EXT_MODULES + |
| + V_CURRENT_CONTACT_MECHANISMS + |
| + V_CURRENT_ENQUIRY_STATUS + |
| + V_CURRENT_PARTY_ADDRESSES + |
| + V_CURRENT_QUOTE_STATUS + |
| + V_ENQUIRY_PRTY_SUPP + |
| + V_HOCO + |
| + V_LACO + |
| + V_LAST_ENQUIRY_UPDATE + |
| V_LATEST_RT_CODE_FOR_ENRO |
| + V_MECO + |
| + V_MOCO + |
| + V_PARTY_ADDRESSES + |
| V_PARTY_RELATIONSHIPS |
| V_PROFILE_RT_CODE_FOR_ENRO |
| + V_PRTY_ID_FOR_ENQUIRIES + |
| + V_QUOTE_DETAILS + |
| + V_SUPPLIER_ADMINISTRATORS + |
| + |
|
+ Procedure gen_mandatory ++PROCEDURE gen_mandatory + + + + + |
+
+ + diff --git a/Documentation/pldoc/gen_plsqldoc.html b/Documentation/pldoc/gen_plsqldoc.html new file mode 100644 index 0000000..edfb977 --- /dev/null +++ b/Documentation/pldoc/gen_plsqldoc.html @@ -0,0 +1,28 @@ + + + + +
| + |
|
+ Procedure gen_plsqldoc ++PROCEDURE gen_plsqldoc + + + + + |
+
+ + diff --git a/Documentation/pldoc/get_dir_list.html b/Documentation/pldoc/get_dir_list.html new file mode 100644 index 0000000..3af2346 --- /dev/null +++ b/Documentation/pldoc/get_dir_list.html @@ -0,0 +1,28 @@ + + + + +
| + |
|
+ Procedure get_dir_list ++PROCEDURE get_dir_list(p_directory IN VARCHAR2) + + + + + |
+
+ + diff --git a/Documentation/pldoc/get_quote_items.html b/Documentation/pldoc/get_quote_items.html new file mode 100644 index 0000000..d717ea5 --- /dev/null +++ b/Documentation/pldoc/get_quote_items.html @@ -0,0 +1,28 @@ + + + + +
| + |
|
+ Function get_quote_items ++FUNCTION get_quote_items(p_quote_id IN NUMBER) RETURN VARCHAR2 + + + + + |
+
+ + diff --git a/Documentation/pldoc/getpdf.html b/Documentation/pldoc/getpdf.html new file mode 100644 index 0000000..2a02e38 --- /dev/null +++ b/Documentation/pldoc/getpdf.html @@ -0,0 +1,28 @@ + + + + +
| + |
|
+ Procedure getpdf ++PROCEDURE getpdf(pstaticregionid IN VARCHAR2) + + + + + |
+
+ + diff --git a/Documentation/pldoc/getreportpdf.html b/Documentation/pldoc/getreportpdf.html new file mode 100644 index 0000000..dfee1a0 --- /dev/null +++ b/Documentation/pldoc/getreportpdf.html @@ -0,0 +1,28 @@ + + + + +
| + |
|
+ Procedure getreportpdf ++PROCEDURE getreportpdf(preportname IN VARCHAR2) + + + + + |
+
+ + diff --git a/Documentation/pldoc/index.html b/Documentation/pldoc/index.html index 4995994..f742feb 100644 --- a/Documentation/pldoc/index.html +++ b/Documentation/pldoc/index.html @@ -29,6 +29,12 @@ export_xml_pkg
| Functions |
| +get_quote_items + |
| Procedures |
| +gen_mandatory + | |
| +gen_plsqldoc + | |
| +get_dir_list + | |
| +getpdf + | |
| +getreportpdf + | |
| +test_ah + | |
| +test_ah2 + |
| +V_AICO + | |
| +V_BACO + | |
| +V_COMPLETE_EXT_MODULES + | |
| +V_CURRENT_CONTACT_MECHANISMS + | |
| +V_CURRENT_ENQUIRY_STATUS + | |
| +V_CURRENT_PARTY_ADDRESSES + | |
| +V_CURRENT_QUOTE_STATUS + | |
| +V_ENQUIRY_PRTY_SUPP + | |
| +V_HOCO + | |
| +V_LACO + | |
| +V_LAST_ENQUIRY_UPDATE + | |
| V_LATEST_RT_CODE_FOR_ENRO | |
| +V_MECO + | |
| +V_MOCO + | |
| +V_PARTY_ADDRESSES + | |
| V_PARTY_RELATIONSHIPS | |
| V_PROFILE_RT_CODE_FOR_ENRO | |
| +V_PRTY_ID_FOR_ENQUIRIES + | |
| +V_QUOTE_DETAILS + | This view shows details of each of the quotes for an enquiry. |
| +V_SUPPLIER_ADMINISTRATORS + |
| + |
|
+ Package matt_quote + ++ |
| +Program units + |
| +lapse_quotes_job + | + + |
+lapse_quotes_job +
++PROCEDURE lapse_quotes_job + ++
+
+ + diff --git a/Documentation/pldoc/mip_bulk_load.html b/Documentation/pldoc/mip_bulk_load.html new file mode 100644 index 0000000..c1ae0bc --- /dev/null +++ b/Documentation/pldoc/mip_bulk_load.html @@ -0,0 +1,164 @@ + + + + +
| + |
|
+ Package mip_bulk_load + ++ |
| +Program units + |
| +load_meters + | + + |
| +load_modules + | + + |
| +load_drawings + | + + |
| +load_bases + | + + |
| +load_costs + | + + |
| +load_postcodes + | + + |
| +report_err + | + + |
| +load_all + | + + |
| +Variables + |
| +g_flow_id + | + + |
+g_flow_id +
++g_flow_id NUMBER DEFAULT nvl(apex_application.g_flow_id + ,155); ++
+load_meters +
++PROCEDURE load_meters + ++
+load_modules +
++PROCEDURE load_modules + ++
+load_drawings +
++PROCEDURE load_drawings + ++
+load_bases +
++PROCEDURE load_bases + ++
+load_costs +
++PROCEDURE load_costs + ++
+load_postcodes +
++PROCEDURE load_postcodes + ++
+report_err +
++PROCEDURE report_err + ++
+load_all +
++PROCEDURE load_all + ++
+
+ + diff --git a/Documentation/pldoc/mip_contact_details.html b/Documentation/pldoc/mip_contact_details.html new file mode 100644 index 0000000..80a33a6 --- /dev/null +++ b/Documentation/pldoc/mip_contact_details.html @@ -0,0 +1,107 @@ + + + + +
| + |
|
+ Package mip_contact_details + ++ |
| +Program units + |
| +get_party_contact_detail + | +retrieve a specific contact mechanism for a given party. + |
| +get_party_contact_detail_by_id + | +retrieve a contact detail based on the ID + |
+get_party_contact_detail +
++FUNCTION get_party_contact_detail(p_prty_id IN parties.id%TYPE + ,p_come_type IN contact_mechanism_types.code%TYPE) + RETURN contact_mechanisms.contact_value%TYPE + ++
+retrieve a specific contact mechanism for a given party.
+
+
+
| +Parameters + |
| + | +p_prty_id + |
+the ID of the party + + |
| + | +p_come_type + |
+the contact mechanism type + + |
+get_party_contact_detail_by_id +
++FUNCTION get_party_contact_detail_by_id(p_come_id IN contact_mechanisms.id%TYPE) + RETURN contact_mechanisms.contact_value%TYPE + ++
+retrieve a contact detail based on the ID
+
+
+
| +Parameters + |
| + | +p_come_id + |
+the contact mechanism ID + + |
+
+ + diff --git a/Documentation/pldoc/mip_email.html b/Documentation/pldoc/mip_email.html new file mode 100644 index 0000000..ff86d9b --- /dev/null +++ b/Documentation/pldoc/mip_email.html @@ -0,0 +1,104 @@ + + + + +
| + |
|
+ Package mip_email + ++ |
| +Program units + |
| +send_email_plain_text + | + + |
| +send_email_vchar + | + + |
| +send_email_clob + | + + |
| +Constants + |
| +g_from_address + | + + |
+g_from_address +
+
+g_from_address CONSTANT VARCHAR2(50) := cout_system_configuration.get_configuration_item('EMAIL_FROM_ADDRESS');
+
++send_email_plain_text +
++PROCEDURE send_email_plain_text(p_recipient IN VARCHAR2 + ,p_from IN VARCHAR2 DEFAULT g_from_address + ,p_body IN VARCHAR2 + ,p_subject IN VARCHAR2) + ++
+send_email_vchar +
++PROCEDURE send_email_vchar(p_recipient IN VARCHAR2 + ,p_from IN VARCHAR2 DEFAULT g_from_address + ,p_body IN VARCHAR2 + ,p_body_html IN VARCHAR2 + ,p_subject IN VARCHAR2) + ++
+send_email_clob +
++PROCEDURE send_email_clob(p_recipient IN VARCHAR2 + ,p_from IN VARCHAR2 DEFAULT g_from_address + ,p_body IN CLOB + ,p_body_html IN CLOB + ,p_subject IN VARCHAR2) + ++
+
+ + diff --git a/Documentation/pldoc/mip_enquiry.html b/Documentation/pldoc/mip_enquiry.html new file mode 100644 index 0000000..4e948d6 --- /dev/null +++ b/Documentation/pldoc/mip_enquiry.html @@ -0,0 +1,124 @@ + + + + +
| + |
|
+ Package mip_enquiry + ++ |
| +Program units + |
| +get_enquiry_status + | + + |
| +get_enquiry_role + | + + |
| +set_enquiry_role + | + + |
| +set_enquiry_role + | + + |
| +set_enquiry_event + | + + |
| +copy_enquiry + | + + |
+get_enquiry_status +
++FUNCTION get_enquiry_status(p_enquiryid IN NUMBER) RETURN VARCHAR2 + ++
+get_enquiry_role +
++FUNCTION get_enquiry_role(p_enquiryid IN NUMBER + ,p_rolecode IN VARCHAR2) RETURN NUMBER + ++
+set_enquiry_role +
++FUNCTION set_enquiry_role(p_enquiryid IN NUMBER + ,p_partyid IN NUMBER + ,p_rolecode IN VARCHAR2) RETURN BOOLEAN + ++
+set_enquiry_role +
++FUNCTION set_enquiry_role(p_enquiryid IN NUMBER + ,p_partyid IN NUMBER + ,p_rolecode IN VARCHAR2 + ,p_description IN VARCHAR2) RETURN BOOLEAN + ++
+set_enquiry_event +
++FUNCTION set_enquiry_event(p_enquiryid IN NUMBER + ,p_eventcode IN VARCHAR2) RETURN BOOLEAN + ++
+copy_enquiry +
++FUNCTION copy_enquiry(p_enquiry_id enquiries.id%TYPE + ,p_enqu_owner parties.id%TYPE + ,p_enqu_supp parties.id%TYPE) RETURN VARCHAR2 + ++
+
+ + diff --git a/Documentation/pldoc/mip_helper_special_cases.html b/Documentation/pldoc/mip_helper_special_cases.html new file mode 100644 index 0000000..756ba91 --- /dev/null +++ b/Documentation/pldoc/mip_helper_special_cases.html @@ -0,0 +1,46 @@ + + + + +
| + |
|
+ Package mip_helper_special_cases + ++ |
| +Program units + |
| +table_enquiries + | + + |
+table_enquiries +
++PROCEDURE table_enquiries(p_rec IN enquiries%ROWTYPE + ,p_mandatory_checks IN OUT mip_mandatory.t_mandatory_checks) + ++
+
+ + diff --git a/Documentation/pldoc/mip_mandatory.html b/Documentation/pldoc/mip_mandatory.html new file mode 100644 index 0000000..4199925 --- /dev/null +++ b/Documentation/pldoc/mip_mandatory.html @@ -0,0 +1,110 @@ + + + + +
| + |
|
+ Package mip_mandatory + ++ |
| +Program units + |
| +add_error + | + + |
| +add_field + | + + |
| +Types + |
| +t_mandatory_check + | + + |
| +t_mandatory_checks + | + + |
| +t_fields + | + + |
+t_mandatory_check +
++TYPE t_mandatory_check IS RECORD( + field_name VARCHAR2(80) + ,error_message data_item_roles.error_message%TYPE); ++
+t_mandatory_checks +
++TYPE t_mandatory_checks IS TABLE OF t_mandatory_check INDEX BY BINARY_INTEGER; ++
+t_fields +
++TYPE t_fields IS TABLE OF VARCHAR2(80) INDEX BY BINARY_INTEGER; ++
+add_error +
++PROCEDURE add_error(p_mandatory_checks IN OUT t_mandatory_checks + ,p_field_name IN VARCHAR2 + ,p_error_message IN VARCHAR2) + ++
+add_field +
++PROCEDURE add_field(p_fields IN OUT t_fields + ,p_field_name IN VARCHAR2) + ++
+
+ + diff --git a/Documentation/pldoc/mip_parties.html b/Documentation/pldoc/mip_parties.html new file mode 100644 index 0000000..6b925bd --- /dev/null +++ b/Documentation/pldoc/mip_parties.html @@ -0,0 +1,704 @@ + + + + +
| + |
|
+ Package mip_parties + ++ |
| +Program units + |
| +is_tripartite + | + + |
| +get_user_id + | + + |
| +get_user_role + | + + |
| +check_user_role + | + + |
| +get_user_password_created + | +get the password created date for the given username and password + |
| +has_supplier + | + + |
| +add_partyaddress + | + + |
| +add_partyrole + | + + |
| +add_partycontactmech + | + + |
| +add_party + | + + |
| +create_party + | +allows new parties to be created in the system. + |
| +add_address + | +allows the creation of addresses in the system. + |
| +create_party_address + | +allows an address in the system to be associated with a party + |
| +create_party_contact_details + | +allows party contact details to be stored in the system + |
| +update_contact_details + | +PROCEDURE - update_contact_details allows the contact mechanisms to be updated, setting the old mechanism's end date + |
| +add_party_role + | +allows a role to be assigned to a party + |
| +create_relationship + | +allows a party relationship to be created e.g. + |
| +expire_old_addresses + | +expires any old addresses without an end date. + |
| +remove_party + | +REMOVE_PARTY removes the party and all related information from the system. + |
+is_tripartite +
++FUNCTION is_tripartite(p_user_id IN VARCHAR2) RETURN BOOLEAN + ++
+get_user_id +
++FUNCTION get_user_id(p_username IN VARCHAR2) RETURN NUMBER + ++
+get_user_role +
++FUNCTION get_user_role(p_username IN VARCHAR2) RETURN VARCHAR2 + ++
+check_user_role +
++FUNCTION check_user_role(p_username IN VARCHAR2 + ,p_role IN VARCHAR2) RETURN BOOLEAN + ++
+get_user_password_created +
++FUNCTION get_user_password_created(p_username IN VARCHAR2 + ,p_password IN VARCHAR2) RETURN DATE + ++
+get the password created date for the given username and password
+
+
+
| +Returns + |
| + |
+DATE the date the password was created for authenticated username and password combination + + |
+has_supplier +
++FUNCTION has_supplier(p_username IN VARCHAR2 + ,p_supplierid IN VARCHAR) RETURN BOOLEAN + ++
+add_partyaddress +
++PROCEDURE add_partyaddress(p_addr_code IN VARCHAR2 + ,p_prty_id IN INTEGER) + ++
+add_partyrole +
++PROCEDURE add_partyrole(p_role_code IN VARCHAR2 + ,p_prty_id IN NUMBER) + ++
+add_partycontactmech +
++PROCEDURE add_partycontactmech(p_contact_mech IN VARCHAR2 + ,p_prty_id IN NUMBER) + ++
+add_party +
++PROCEDURE add_party(p_role IN VARCHAR2 + ,p_username IN VARCHAR2 + ,p_created_by IN VARCHAR2 + ,p_name IN VARCHAR2 + ,p_mkpt_ref IN VARCHAR2 + ,p_shortcode IN VARCHAR2 + ,p_lt_7b_contract_ref IN VARCHAR2 + ,p_gt_7b_contract_ref IN VARCHAR2 + ,p_adversarial_contract_ref IN VARCHAR2 + ,p_manu_ref IN VARCHAR2 + ,p_description IN VARCHAR2 + ,p_status IN VARCHAR2 + ,p_first_name IN VARCHAR2 + ,p_last_name IN VARCHAR2 + ,p_personal_title IN VARCHAR2 + ,p_comments IN VARCHAR2 + ,p_addresscode IN VARCHAR2 + ,p_partyrole IN VARCHAR2 + ,p_partycontactmech IN VARCHAR2) + ++
+create_party +
++PROCEDURE create_party(p_manu_ref IN VARCHAR2 + ,p_created_by IN VARCHAR2 + ,p_shortcode IN VARCHAR2 + ,p_name IN VARCHAR2 + ,p_description IN VARCHAR2 + ,p_mktp_ref IN VARCHAR2 + ,p_lt_7b_contract_ref IN VARCHAR2 + ,p_gt_7b_contract_ref IN VARCHAR2 + ,p_adversarial_contract_ref IN VARCHAR2 + ,p_username IN VARCHAR2 + ,p_first_name IN VARCHAR2 + ,p_last_name IN VARCHAR2 + ,p_personal_title IN VARCHAR2 + ,p_comments IN VARCHAR2 + ,p_id IN INTEGER + ,p_prty_type IN VARCHAR2 + ,p_tripartite_member IN VARCHAR2 + ,p_password IN VARCHAR2 + ,p_expire_pword IN NUMBER) + ++
+allows new parties to be created in the system.
+
+
+
| +Parameters + |
| + | +p_manu_ref + |
+the manufacturer's unique reference + + |
| + | +p_created_by + |
+the user that created the party + + |
| + | +p_shortcode + |
+the mktp short code + + |
| + | +p_name + |
+the organization's name + + |
| + | +p_description + |
+description of the manufacturer + + |
| + | +p_created_on + |
+when the party was created + + |
| + | +p_mktp_ref + |
+the mktp's unique reference + + |
| + | +p_lt_7b_contract_ref + | + + |
| + | +p_gt_7b_contract_ref + | + + |
| + | +p_adversarial_contract_ref + | + + |
| + | +p_username + |
+the username + + |
| + | +p_status + |
+the status of the user + + |
| + | +p_first_name + |
+the user's first name + + |
| + | +p_last_name + |
+the user's last name + + |
| + | +p_personal_title + |
+the user's title + + |
| + | +p_comments + |
+any comments on the user + + |
| + | +p_id + |
+the unique party id + + |
| + | +p_prty_type + |
+the prty type + + |
+add_address +
++PROCEDURE add_address(p_address addresses%ROWTYPE) + ++
+allows the creation of addresses in the system.
+
+
+
| +Parameters + |
| + | +p_address + |
+address%ROWTYPE - a record of the address table. + + |
+create_party_address +
++PROCEDURE create_party_address(p_addr_code IN addresses.code%TYPE + ,p_prty_id IN parties.id%TYPE + ,p_addr_type IN VARCHAR2) + ++
+allows an address in the system to be associated with a party
+
+
+
| +Parameters + |
| + | +p_addr_code + |
+- the ID of the address + + |
| + | +p_prty_id + |
+- the ID of the party + + |
| + | +p_addr_type + |
+- the type of address (HOME/OFFICE) + + |
+create_party_contact_details +
++PROCEDURE create_party_contact_details(p_prty_id IN parties.id%TYPE + ,p_contact_mech_type IN VARCHAR2 + ,p_contact_value IN VARCHAR2) + ++
+allows party contact details to be stored in the system
+
+
+
| +Parameters + |
| + | +p_prty_id + |
+- the ID of the party + + |
| + | +p_contact_mech_type + |
+- the type of contact mechanism being created + + |
| + | +p_contact_value + |
+- the value of the contact mechanism + + |
+update_contact_details +
++PROCEDURE update_contact_details(p_prty_id IN parties.id%TYPE + ,p_contact_mech_type IN VARCHAR2 + ,p_contact_value IN VARCHAR2) + ++
+PROCEDURE - update_contact_details allows the contact mechanisms to be updated, setting the old mechanism's end date
+
+
+
| +Parameters + |
| + | +p_prty_id + |
+- the ID of the party + + |
| + | +p_contact_mech_type + |
+- the type of contact mechanism being created + + |
| + | +p_contact_value + |
+- the value of the contact mechanism + + |
+add_party_role +
++PROCEDURE add_party_role(p_role_code IN VARCHAR2 + ,p_prty_id IN NUMBER) + ++
+allows a role to be assigned to a party
+
+
+
| +Parameters + |
| + | +p_role_code + |
+the role to assign to the party + + |
| + | +p_prty_id + |
+the unique party ID + + |
+create_relationship +
++PROCEDURE create_relationship(p_from_prty_id IN VARCHAR2 + ,p_from_prty_role IN VARCHAR2 + ,p_to_prty_id IN VARCHAR2 + ,p_to_prty_role IN VARCHAR2) + ++
+allows a party relationship to be created e.g. associating a party with a supplier
+
+
+
+expire_old_addresses +
++PROCEDURE expire_old_addresses(p_prty_id IN parties.id%TYPE + ,p_addr_code IN addresses.code%TYPE + ,p_paddr_type IN party_address_roles.rt_code%TYPE) + ++
+expires any old addresses without an end date. To be used when a new address is assigned to a party The address's end date is set to today as that is when the new address is valid from. No setting addresses to be used in the future.
+
+
+
| +Parameters + |
| + | +p_prty_id + |
+the ID of the party + + |
| + | +p_addr_code + |
+the code of the new address. + + |
| + | +p_addr_type + |
+the type of address HOME/OFFICE + + |
+remove_party +
++PROCEDURE remove_party(p_prty_id IN NUMBER) + ++
+REMOVE_PARTY removes the party and all related information from the system.
+
+
+
| +Parameters + |
| + | +p_prty_id + |
+- the ID of the party to remove. + + |
+
+ + diff --git a/Documentation/pldoc/mip_quotation.html b/Documentation/pldoc/mip_quotation.html new file mode 100644 index 0000000..db3df30 --- /dev/null +++ b/Documentation/pldoc/mip_quotation.html @@ -0,0 +1,470 @@ + + + + +
| + |
|
+ Package mip_quotation + ++ |
| +Program units + |
| +ready_for_quote + | +Determines whether the given enquiry is ready to quote for i.e. + |
| +ready_for_quote + | +Determines whether the given enquiry is ready to quote for i.e. + |
| +produce_quotes + | +Generate quotes in response to a 'request for quote' against an enquiry + |
| +return_mandatory_messages + | + + |
| +make_quote_available + | +Make quote available + |
| +accept_quote + | +Accept a quote + |
| +reject_quote + | +Reject a quote + |
| +reject_all_quotes + | +Reject all quotes associated with enquiry + |
| +select_quote + | +Select a quote for detailed quotation + |
| +lapse_quote + | +Lapse a quote + |
| +lapse_quotes_job + | + + |
+ready_for_quote +
++FUNCTION ready_for_quote(p_enqu_id IN enquiries.id%TYPE) RETURN BOOLEAN + ++
+Determines whether the given enquiry is ready to quote for i.e. have all the mandatory fields been completed
+
+
+
| +Parameters + |
| + | +p_enqu_id + |
+the id of the enquiry to be checked + + |
| +Returns + |
| + |
+TRUE if the enquiry can be quoted for + + |
+ready_for_quote +
++PROCEDURE ready_for_quote(p_enqu_id IN enquiries.id%TYPE + ,p_mandatory_checks OUT mip_mandatory.t_mandatory_checks + ,p_enquiry_is_ready OUT BOOLEAN) + ++
+Determines whether the given enquiry is ready to quote for i.e. have all the mandatory fields been completed
+
+ %p_mandatory_checks contains reasons for the enquiry *not* being ready to quote for
+ %p_quote_is_ready TRUE if the enquiry can be quoted for
+
+
+
| +Parameters + |
| + | +p_enqu_id + |
+the id of the enquiry to be checked + + |
+produce_quotes +
++PROCEDURE produce_quotes(p_enqu_id IN enquiries.id%TYPE + ,p_rfq_prty_id IN parties.id%TYPE + ,p_owner_prty_id IN parties.id%TYPE DEFAULT NULL) + ++
+Generate quotes in response to a 'request for quote' against an enquiry
+
+
+
| +Parameters + |
| + | +p_enqu_id + |
+the id of the enquiry to be checked + + |
| + | +p_prty_id + |
+the id of the party that requested the quotes + + |
| + | +p_owner_prty_id + |
+the id of party that owns the quotes (defaults to the requestor) + + |
+return_mandatory_messages +
++FUNCTION return_mandatory_messages(p_enqu_id IN enquiries.id%TYPE) + RETURN VARCHAR2 + ++
+make_quote_available +
++PROCEDURE make_quote_available(p_qute_id IN quotes.id%TYPE) + ++
+Make quote available
+
+
+
| +Parameters + |
| + | +p_qute_id + |
+id of the quote to be marked as available + + |
+accept_quote +
++PROCEDURE accept_quote(p_qute_id IN quotes.id%TYPE + ,p_description quote_events.description%TYPE DEFAULT NULL + ,p_event_date IN DATE DEFAULT SYSDATE) + ++
+Accept a quote
+
+
+
| +Parameters + |
| + | +p_qute_id + |
+id of the quote to be accepted + + |
| + | +p_description + |
+optional description to be recorded with the event + + |
| + | +p_event_date + |
+optional date for this event (defaults to now) + + |
+reject_quote +
++PROCEDURE reject_quote(p_qute_id IN quotes.id%TYPE + ,p_description quote_events.description%TYPE DEFAULT NULL + ,p_event_date IN DATE DEFAULT SYSDATE) + ++
+Reject a quote
+
+
+
| +Parameters + |
| + | +p_qute_id + |
+id of the quote to be rejected + + |
| + | +p_description + |
+optional description to be recorded with the event + + |
| + | +p_event_date + |
+optional date for this event (defaults to now) + + |
+reject_all_quotes +
++PROCEDURE reject_all_quotes(p_enqu_id IN enquiries.id%TYPE + ,p_description quote_events.description%TYPE DEFAULT NULL + ,p_event_date IN DATE DEFAULT SYSDATE) + ++
+Reject all quotes associated with enquiry
+
+
+
| +Parameters + |
| + | +p_enqu_id + |
+id of the enquiry for qhich all quotes are to be rejected + + |
| + | +p_description + |
+optional description to be recorded with the event + + |
| + | +p_event_date + |
+optional date for this event (defaults to now) + + |
+select_quote +
++PROCEDURE select_quote(p_qute_id IN quotes.id%TYPE + ,p_description quote_events.description%TYPE DEFAULT NULL + ,p_event_date IN DATE DEFAULT SYSDATE) + ++
+Select a quote for detailed quotation
+
+
+
| +Parameters + |
| + | +p_qute_id + |
+id of the quote to be selected + + |
| + | +p_description + |
+optional description to be recorded with the event + + |
| + | +p_event_date + |
+optional date for this event (defaults to now) + + |
+lapse_quote +
++PROCEDURE lapse_quote(p_qute_id IN quotes.id%TYPE + ,p_description quote_events.description%TYPE DEFAULT NULL + ,p_event_date IN DATE DEFAULT SYSDATE) + ++
+Lapse a quote
+
+
+
| +Parameters + |
| + | +p_qute_id + |
+id of the quote to be selected + + |
| + | +p_description + |
+optional description to be recorded with the event + + |
| + | +p_event_date + |
+optional date for this event (defaults to now) + + |
+lapse_quotes_job +
++PROCEDURE lapse_quotes_job + ++
+
+ + diff --git a/Documentation/pldoc/mip_quotation_document.html b/Documentation/pldoc/mip_quotation_document.html new file mode 100644 index 0000000..b3437f4 --- /dev/null +++ b/Documentation/pldoc/mip_quotation_document.html @@ -0,0 +1,220 @@ + + + + +
| + |
|
+ Package mip_quotation_document + ++ |
| +Program units + |
| +generate_quote_pdf + | + + |
| +Types + |
| +caveat_text + | + + |
| +img_props + | + + |
| +cost_line + | + + |
| +address + | + + |
| +works + | + + |
| +costs + | + + |
| +caveats + | + + |
| +dimensions + | + + |
| +quote_data + | + + |
+caveat_text +
++type caveat_text is varray(20) of varchar2(4000); ++
+img_props +
++type img_props is record(width number, + height number); ++
+cost_line +
++type cost_line is record( + cost_description varchar2(80), + cost_price number); ++
+address +
++type address is varray(7) of varchar2(160); ++
+works +
++type works is varray(20) of varchar2(160); ++
+costs +
++type costs is varray(20) of cost_line; ++
+caveats +
++type caveats is varray(20) of varchar2(2000); ++
+dimensions +
++type dimensions is varray(10) of number; ++
+quote_data +
++type quote_data is record +(quote_ref NUMBER, + transaction_ref VARCHAR2(80), + mprn number(30), + supplier_address address := address(null,null,null,null,null,null,null), + current_date DATE, + agent_first_name varchar2(80), + site_address address := address(null,null,null,null,null,null,null), + mam varchar2(80), + quote_works works := works(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null), + caveat_desc_works caveat_text:= caveat_text(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null), + lead_time number, + total_cost number, + caveat_cont_sum caveat_text:= caveat_text(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null), + quote_costs costs := costs(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null), + house_length number, + house_depth number, + house_height number, + house_ventilation number, + base_length number, + base_depth number, + base_height number, + outlet_termninal_size number, + caveat_term_cond caveat_text:= caveat_text(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null), + liquid_damage_day number, + liquid_damage_cap number, + base_dimensions dimensions := dimensions(null,null,null,null,null,null,null,null,null,null), + base_diagram varchar2(80), + house_dimensions dimensions := dimensions(null,null,null,null,null,null,null,null,null,null), + house_diagram varchar2(80), + module_dimensions dimensions := dimensions(null,null,null,null,null,null,null,null,null,null), + module_reference varchar2(80), + module_diagram varchar2(80), + requested_qmax number, + module_qmax number, + module_qmin number, + module_inlet_height number, + module_outlet_height number, + module_inlet_size number, + module_outlet_size number, + module_inlet_type varchar2(80), + module_outlet_type varchar2(80), + module_inlet_orientation varchar2(80), + module_outlet_orientation varchar2(80), + meter_reference varchar(80), + caveat_cont_sum_qa caveat_text:= caveat_text(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null), + mety_code varchar(80), + svcpt_code varchar(10) +); ++
+generate_quote_pdf +
++FUNCTION generate_quote_pdf(p_quote_id IN NUMBER) RETURN VARCHAR2 + ++
+
+ + diff --git a/Documentation/pldoc/mip_table_constraints.html b/Documentation/pldoc/mip_table_constraints.html new file mode 100644 index 0000000..3098c85 --- /dev/null +++ b/Documentation/pldoc/mip_table_constraints.html @@ -0,0 +1,66 @@ + + + + +
| + |
|
+ Package mip_table_constraints + ++ |
| +Program units + |
| +enq_rt_code + | +Used for a function-based unique index on enquiries.rt_code + |
+enq_rt_code +
++FUNCTION enq_rt_code(p_rt_code IN enquiry_roles.rt_code%TYPE) RETURN NUMBER + ++
+Used for a function-based unique index on enquiries.rt_code
+
+%returns number or NULL
+
+
+
| +Parameters + |
| + | +p_rt_code + |
+the rt_code from the table row + + |
+
+ + diff --git a/Documentation/pldoc/mip_tripartite.html b/Documentation/pldoc/mip_tripartite.html new file mode 100644 index 0000000..72cffcb --- /dev/null +++ b/Documentation/pldoc/mip_tripartite.html @@ -0,0 +1,349 @@ + + + + +
| + |
|
+ Package mip_tripartite + ++ |
| +Program units + |
| +tripartite_region + | +Is the given postcode within a Tripartite region? + |
| +tripartite_member + | +Is the given supplier (party) a Tripartite member? + |
| +enquiry_allowed + | +Is the given supplier (party) allowed to submit a particular enquiry type for the given region? + |
| +enquiry_allowed + | +Is the given enquiry allowed under Tripartite arrangements? + |
| +addons_allowed + | +Is the given enquiry allowed to request the addons under Tripartite arrangements? + |
| +valid_enquiry + | +Is the given enquiry valid with respect to the Tripartite arrangements? + |
| +Types + |
| +t_tab_messages + | + + |
+t_tab_messages +
++TYPE t_tab_messages IS TABLE OF VARCHAR(240) INDEX BY BINARY_INTEGER; ++
+tripartite_region +
++FUNCTION tripartite_region(p_postcode IN VARCHAR2) RETURN BOOLEAN + ++
+Is the given postcode within a Tripartite region?
+
+
+
| +Parameters + |
| + | +p_postcode + |
+the postcode to be checked + + |
| +Returns + |
| + |
+TRUE if within a Tripartite region + + |
+tripartite_member +
++FUNCTION tripartite_member(p_supp_prty_id IN parties.id%TYPE) + RETURN BOOLEAN + ++
+Is the given supplier (party) a Tripartite member?
+
+
+
| +Parameters + |
| + | +p_prty_id + |
+the prty_id of the supplier to be checked + + |
| +Returns + |
| + |
+TRUE if a Tripartite member + + |
+enquiry_allowed +
++FUNCTION enquiry_allowed(p_supp_prty_id IN parties.id%TYPE + ,p_enty_code IN enquiry_types.code%TYPE + ,p_regi_code IN regions.code%TYPE) + RETURN BOOLEAN + ++
+Is the given supplier (party) allowed to submit a particular enquiry type for the given region?
+
+
+
| +Parameters + |
| + | +p_supp_prty_id + |
+the id of the supplier to be checked + + |
| + | +p_enty_code + |
+the enquiry type to be checked + + |
| + | +p_regi_code + |
+the region to be checked against + + |
| +Returns + |
| + |
+TRUE if the enquiry is allowed + + |
+enquiry_allowed +
++FUNCTION enquiry_allowed(p_enqu_id IN enquiries.id%TYPE) RETURN BOOLEAN + ++
+Is the given enquiry allowed under Tripartite arrangements?
+
+
+
| +Parameters + |
| + | +p_enqu_id + |
+the id of the enquiry to be checked + + |
| +Returns + |
| + |
+TRUE if the enquiry is allowed + + |
+addons_allowed +
++FUNCTION addons_allowed(p_enqu_id IN enquiries.id%TYPE + ,p_tab_messages IN OUT t_tab_messages) + RETURN BOOLEAN + ++
+Is the given enquiry allowed to request the addons under Tripartite arrangements?
+
+
+
| +Parameters + |
| + | +p_enqu_id + |
+the id of the enquiry to be checked + + |
| +Returns + |
| + |
+TRUE if the enquiry is allowed + + |
+valid_enquiry +
++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?
+
+
+
| +Parameters + |
| + | +p_enqu_id + |
+the id of the enquiry to be checked + + |
| + | +p_tab_messages + |
+reasons for the enquiry not being valid + + |
| +Returns + |
| + |
+TRUE if the enquiry is valid + + |
+
+ + diff --git a/Modules/Modules.sql b/Modules/Modules.sql index be7340b..bdb2f21 100644 --- a/Modules/Modules.sql +++ b/Modules/Modules.sql @@ -22,5 +22,6 @@ exec gen_mandatory @@mip_dirlist.jsp @@get_quote_items.fnc @@mip_bulk_Load.pck +@@mip_tripartite.pck @@compile.sql exit diff --git a/Modules/mip_helper_special_cases.pck b/Modules/mip_helper_special_cases.pck index b310c32..38ea9bd 100644 --- a/Modules/mip_helper_special_cases.pck +++ b/Modules/mip_helper_special_cases.pck @@ -64,6 +64,9 @@ CREATE OR REPLACE PACKAGE BODY mip_helper_special_cases IS ,p_error_message => 'Either MPRN or Additional Information must be completed.'); END IF; + -- OM-5 + -- Tripartite Agreement and AMR -- this is a specific example of the Tripartite and addons + -- This is handled through the mip_tripartite.addon functionality END table_enquiries; diff --git a/Modules/mip_quotation.pck b/Modules/mip_quotation.pck index c23696a..02177eb 100644 --- a/Modules/mip_quotation.pck +++ b/Modules/mip_quotation.pck @@ -87,7 +87,12 @@ END mip_quotation; / CREATE OR REPLACE PACKAGE BODY mip_quotation IS - SUBTYPE t_reason IS VARCHAR2(240); + PROCEDURE email_aq_generated(p_enqu_id IN enquiries.id%TYPE); + PROCEDURE email_quotes_available(p_enqu_id IN enquiries.id%TYPE); + PROCEDURE email_request_for_mq(p_enqu_id IN enquiries.id%TYPE); + PROCEDURE email_support(p_subject IN VARCHAR2 + ,p_enqu_id IN enquiries.id%TYPE); + SUBTYPE t_internal_or_external IS VARCHAR2(8); gc_internal_reason CONSTANT t_internal_or_external := 'INTERNAL'; @@ -280,6 +285,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS PROCEDURE make_quote_available(p_qute_id IN quotes.id%TYPE) IS BEGIN + INSERT INTO quote_events (event_date ,qust_code @@ -288,8 +294,60 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS (SYSDATE ,'AV' -- Available ,p_qute_id); + END make_quote_available; + PROCEDURE make_manual_quote_available(p_qute_id IN quotes.id%TYPE) IS + l_enqu_id enquiries.id%TYPE; + BEGIN + make_quote_available(p_qute_id); + + SELECT enqu_id + INTO l_enqu_id + FROM quotes + WHERE id = p_qute_id; + + email_quotes_available(l_enqu_id); + + END make_manual_quote_available; + + PROCEDURE mark_enquiry_submitted(p_enqu_id IN enquiries.id%TYPE) IS + BEGIN + INSERT INTO enquiry_events + (event_date + ,enst_code + ,enqu_id) + VALUES + (SYSDATE + ,'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); + + END mark_enquiry_quoted; + + 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); + END mark_enquiry_invalid; + FUNCTION get_system_configuration_value(p_parameter IN system_configuration.parameter%TYPE) RETURN system_configuration.VALUE%TYPE IS l_recipient system_configuration.VALUE%TYPE; @@ -315,6 +373,12 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS RETURN get_system_configuration_value('EMAIL_ADDRESS_AUTOMATIC_QUOTE'); END get_automatic_quote_recipient; + FUNCTION get_support_recipient RETURN system_configuration.VALUE%TYPE IS + BEGIN + + RETURN get_system_configuration_value('EMAIL_ADDRESS_SUPPORT'); + END get_support_recipient; + FUNCTION get_system_name RETURN system_configuration.VALUE%TYPE IS BEGIN @@ -349,11 +413,19 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS PROCEDURE open_body IS BEGIN + /* IF dbms_lob.ISOPEN(lob_loc => g_email_plain_body) <> 0 THEN + dbms_lob.freetemporary(lob_loc => g_email_plain_body); + END IF;*/ + dbms_lob.createtemporary(lob_loc => g_email_plain_body ,cache => TRUE); dbms_lob.OPEN(lob_loc => g_email_plain_body ,open_mode => dbms_lob.lob_readwrite); + /* IF dbms_lob.ISOPEN(lob_loc => g_email_html_body) <> 0 THEN + dbms_lob.freetemporary(lob_loc => g_email_html_body); + END IF;*/ + dbms_lob.createtemporary(lob_loc => g_email_html_body ,cache => TRUE); dbms_lob.OPEN(lob_loc => g_email_html_body @@ -485,6 +557,80 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS p_enqu_id); END email_aq_generated; + PROCEDURE email_quotes_available(p_enqu_id IN enquiries.id%TYPE) IS + l_agent_comt_code enquiries.agent_comt_code%TYPE; + l_agent_contact_value enquiries.agent_contact_value%TYPE; + l_enqu_id enquiries.id%TYPE; + l_email_recipient system_configuration.VALUE%TYPE; + l_email_subject VARCHAR2(80); + l_agent_first_name parties.first_name%TYPE; + l_agent_last_name parties.last_name%TYPE; + l_agent_prty_id parties.id%TYPE; + BEGIN + + open_body; + + SELECT agent_comt_code + ,agent_contact_value + INTO l_agent_comt_code + ,l_agent_contact_value + FROM enquiries + WHERE enquiries.id = p_enqu_id; + + l_agent_prty_id := mip_enquiry.get_enquiry_role(p_enquiryid => p_enqu_id + ,p_rolecode => 'ENQ OWN'); + + SELECT first_name + ,last_name + INTO l_agent_first_name + ,l_agent_last_name + FROM parties + WHERE id = l_agent_prty_id; + + IF l_agent_comt_code = 'EMAIL' THEN + l_email_recipient := l_agent_contact_value; + l_email_subject := get_system_name || + ': Notification of availability of automatic quotes for Enquiry reference: ' || + p_enqu_id; + al('Enquiry refererence: ' || p_enqu_id || ' (' || + get_enty_description(p_enqu_id) || ')'); + ELSE + l_email_recipient := get_automatic_quote_recipient; + l_email_subject := get_system_name || + ': Notification of availability of automatic quotes for Enquiry reference: ' || + p_enqu_id || ', Agent requires notification.'; + + al('Enquiry refererence: ' || p_enqu_id || ' (' || + get_enty_description(p_enqu_id) || ')'); + + al(' '); + al('The Agent, ' || l_agent_first_name || ' ' || l_agent_last_name || + ' has requested that they be contacted via ' || l_agent_comt_code || '(' || + l_agent_contact_value || ')'); + al(' '); + al('The following quotations are available:'); + + FOR l_qute IN (SELECT id + FROM quotes + ,v_quote_details v + WHERE enqu_id = p_enqu_id + AND v.quote_id = id + ORDER BY total_cost) LOOP + + produce_quote_summary(l_qute.id); + + al(' '); + END LOOP; + + close_body; + + mip_email.send_email_clob(p_recipient => l_email_recipient + ,p_body => g_email_plain_body + ,p_body_html => g_email_html_body + ,p_subject => l_email_subject); + END IF; + END email_quotes_available; + PROCEDURE email_request_for_mq(p_enqu_id IN enquiries.id%TYPE) IS l_system_name system_configuration.VALUE%TYPE := get_system_name; l_quote_row quotes%ROWTYPE; @@ -526,6 +672,33 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS END email_request_for_mq; + PROCEDURE email_support(p_subject IN VARCHAR2 + ,p_enqu_id IN enquiries.id%TYPE) IS + BEGIN + open_body; + + al('MIP_QUOTATION: Enquiry ' || p_enqu_id || ' (' || + get_enty_description(p_enqu_id) || ')' || + ' - processing error occurred'); + + FOR l_qure IN (SELECT reason + FROM quote_reasoning + WHERE enqu_id = p_enqu_id + ORDER BY id) LOOP + al(l_qure.reason); + END LOOP; + + close_body; + + mip_email.send_email_clob(p_recipient => get_support_recipient + ,p_body => g_email_plain_body + ,p_body_html => g_email_html_body + ,p_subject => get_system_name || ' : ' || + p_subject || + ' : Enquiry reference: ' || + p_enqu_id); + END email_support; + PROCEDURE request_manual_quote(p_enqu_id IN enquiries.id%TYPE ,p_rfq_prty_id IN parties.id%TYPE ,p_owner_prty_id IN parties.id%TYPE DEFAULT NULL) IS @@ -565,20 +738,24 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS l_mandatory_messages VARCHAR2(4000); l_mandatory_checks mip_mandatory.t_mandatory_checks; l_enquiry_is_ready BOOLEAN; + l_idx INTEGER; BEGIN ready_for_quote(p_enqu_id => p_enqu_id ,p_mandatory_checks => l_mandatory_checks ,p_enquiry_is_ready => l_enquiry_is_ready); - FOR l_idx IN l_mandatory_checks.LAST .. l_mandatory_checks.LAST LOOP + l_idx := l_mandatory_checks.FIRST; + LOOP + EXIT WHEN l_idx IS NULL; l_mandatory_messages := l_mandatory_checks(l_idx) .field_name || ':' || l_mandatory_checks(l_idx).error_message; + l_idx := l_mandatory_checks.NEXT(l_idx); END LOOP; - RETURN nvl(l_mandatory_messages - ,'All mandatory fields have been completed'); + RETURN l_mandatory_messages; + END return_mandatory_messages; PROCEDURE add_quote_reason(p_enqu_id IN enquiries.id%TYPE @@ -684,6 +861,37 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS END IF; -- svcpt_code = 'LP' END survey_required; + FUNCTION tripartite_agreement_satisfied(p_enqu_id IN enquiries.id%TYPE) + RETURN BOOLEAN IS + l_tab_messages mip_tripartite.t_tab_messages; + l_valid BOOLEAN; + l_idx INTEGER; + BEGIN + + l_valid := mip_tripartite.valid_enquiry(p_enqu_id => p_enqu_id + ,p_tab_messages => l_tab_messages); + + -- processing an enquiry that has not passed the tripartite agreement + -- infers a processing error + IF NOT l_valid THEN + l_idx := l_tab_messages.FIRST; + LOOP + EXIT WHEN l_idx IS NULL; + add_quote_reason(p_enqu_id => p_enqu_id + ,p_reason => l_tab_messages(l_idx)); + l_idx := l_tab_messages.NEXT(l_idx); + END LOOP; + + mark_enquiry_invalid(p_enqu_id); + email_support(p_subject => 'MIP_QUOTATION: Tripartite failure with Enquiry ' || + p_enqu_id + ,p_enqu_id => p_enqu_id); + END IF; + + RETURN l_valid; + + END tripartite_agreement_satisfied; + PROCEDURE manual_or_automatic_quote(p_enqu IN t_enqu ,p_manual_or_automatic_quote OUT t_manual_or_automatic_quote) IS BEGIN @@ -729,7 +937,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS ,'Booster or compressor is present downstream of the meter module.'); END IF; - IF p_enqu.annual_quantity > 732 THEN + IF p_enqu.annual_quantity > 732 * 1000 THEN p_manual_or_automatic_quote := gc_manual_quote; add_quote_reason(p_enqu.id ,'Required Annual Quantity is in excess of 732MWh.'); @@ -1508,7 +1716,7 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS add_quote_reason(p_enqu_id => p_enqu.id ,p_reason => '-- Produced an automatic quote.' ,p_internal_or_external => gc_internal_reason); - -- email_aq_generated(p_enqu.id); + --email_aq_generated(p_enqu.id); ELSE p_manual_or_automatic_quote := gc_manual_quote; add_quote_reason(p_enqu_id => p_enqu.id @@ -2569,31 +2777,42 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS ,'Not all mandatory fields for Enquiry ID=' || p_enqu_id || ' have been completed'); + mark_enquiry_submitted(p_enqu_id); + SELECT * INTO l_enqu FROM enquiries WHERE id = p_enqu_id; - manual_or_automatic_quote(p_enqu => l_enqu - ,p_manual_or_automatic_quote => l_manual_or_automatic_quote); - - IF l_manual_or_automatic_quote = gc_manual_quote THEN - request_manual_quote(p_enqu_id => l_enqu.id - ,p_rfq_prty_id => p_rfq_prty_id - ,p_owner_prty_id => p_owner_prty_id); - ELSE - produce_automatic_quotes(p_enqu => l_enqu - ,p_rfq_prty_id => p_rfq_prty_id - ,p_owner_prty_id => p_owner_prty_id - ,p_manual_or_automatic_quote => l_manual_or_automatic_quote); + IF tripartite_agreement_satisfied(p_enqu_id) THEN + + manual_or_automatic_quote(p_enqu => l_enqu + ,p_manual_or_automatic_quote => l_manual_or_automatic_quote); + IF l_manual_or_automatic_quote = gc_manual_quote THEN request_manual_quote(p_enqu_id => l_enqu.id ,p_rfq_prty_id => p_rfq_prty_id ,p_owner_prty_id => p_owner_prty_id); - END IF; + ELSE + produce_automatic_quotes(p_enqu => l_enqu + ,p_rfq_prty_id => p_rfq_prty_id + ,p_owner_prty_id => p_owner_prty_id + ,p_manual_or_automatic_quote => l_manual_or_automatic_quote); + IF l_manual_or_automatic_quote = gc_automatic_quote THEN + email_aq_generated(p_enqu_id); + email_quotes_available(p_enqu_id); + ELSE + request_manual_quote(p_enqu_id => l_enqu.id + ,p_rfq_prty_id => p_rfq_prty_id + ,p_owner_prty_id => p_owner_prty_id); + END IF; + + -- + END IF; -- manual or automatic quote - -- - END IF; -- manual or automatic quote + mark_enquiry_quoted(p_enqu_id); + + END IF; -- tripartite agreement /* EXCEPTION WHEN OTHERS THEN diff --git a/Modules/mip_tripartite.pck b/Modules/mip_tripartite.pck new file mode 100644 index 0000000..716e50c --- /dev/null +++ b/Modules/mip_tripartite.pck @@ -0,0 +1,245 @@ +CREATE OR REPLACE PACKAGE mip_tripartite IS + + -- Author : HARDYA + -- Created : 22/01/2008 11:02:06 + -- Purpose : Handle Tripartite queries + + TYPE t_tab_messages IS TABLE OF VARCHAR(240) INDEX BY BINARY_INTEGER; + + /** Is the given postcode within a Tripartite region? + %param p_postcode the postcode to be checked + %return TRUE if within a Tripartite region + */ + FUNCTION tripartite_region(p_postcode IN VARCHAR2) RETURN BOOLEAN; + + /** Is the given supplier (party) a Tripartite member? + %param p_prty_id the prty_id of the supplier to be checked + %return TRUE if a Tripartite member + */ + FUNCTION tripartite_member(p_supp_prty_id IN parties.id%TYPE) + RETURN BOOLEAN; + /** Is the given supplier (party) allowed to submit a particular enquiry type for the given region? + %param p_supp_prty_id the id of the supplier to be checked + %param p_enty_code the enquiry type to be checked + %param p_regi_code the region to be checked against + %return TRUE if the enquiry is allowed + */ + FUNCTION enquiry_allowed(p_supp_prty_id IN parties.id%TYPE + ,p_enty_code IN enquiry_types.code%TYPE + ,p_regi_code IN regions.code%TYPE) + RETURN BOOLEAN; + + /** Is the given enquiry allowed under Tripartite arrangements? + %param p_enqu_id the id of the enquiry to be checked + %return TRUE if the enquiry is allowed + */ + FUNCTION enquiry_allowed(p_enqu_id IN enquiries.id%TYPE) RETURN BOOLEAN; + + /** Is the given enquiry allowed to request the addons under Tripartite arrangements? + %param p_enqu_id the id of the enquiry to be checked + %return TRUE if the enquiry is allowed + */ + FUNCTION addons_allowed(p_enqu_id IN enquiries.id%TYPE + ,p_tab_messages IN OUT t_tab_messages) + 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 + %return TRUE if the enquiry is valid + */ + FUNCTION valid_enquiry(p_enqu_id IN enquiries.id%TYPE + ,p_tab_messages OUT t_tab_messages) RETURN BOOLEAN; +END mip_tripartite; +/ +CREATE OR REPLACE PACKAGE BODY mip_tripartite IS + + PROCEDURE al(p_in IN VARCHAR2 + ,p_tab_messages IN OUT t_tab_messages) IS + BEGIN + p_tab_messages(p_tab_messages.COUNT + 1) := p_in; + END al; + + FUNCTION tripartite_region(p_postcode IN VARCHAR2) RETURN BOOLEAN IS + l_regi_code regions.code%TYPE; + l_rec_found NUMBER DEFAULT 0; + BEGIN + + cout_assert.istrue(mip_regions.valid_postcode_format(p_postcode => p_postcode) + ,'Invalid Postcode format'); + + l_regi_code := mip_regions.get_region_for_postcode(p_postcode => p_postcode); + + BEGIN + SELECT 1 + INTO l_rec_found + FROM regi_enqu_exclusions reee + WHERE reee.regi_code = l_regi_code; + EXCEPTION + WHEN no_data_found THEN + NULL; + END; + + RETURN(CASE l_rec_found WHEN 0 THEN FALSE ELSE TRUE END); + + END tripartite_region; + + FUNCTION tripartite_member(p_supp_prty_id IN parties.id%TYPE) + RETURN BOOLEAN IS + l_rec_found NUMBER DEFAULT 0; + BEGIN + BEGIN + SELECT 1 + INTO l_rec_found + FROM parties + WHERE id = p_supp_prty_id + AND tripartite_member = 'YES'; + EXCEPTION + WHEN no_data_found THEN + NULL; + END; + + RETURN(CASE l_rec_found WHEN 0 THEN FALSE ELSE TRUE END); + + END tripartite_member; + + FUNCTION enquiry_allowed(p_supp_prty_id IN parties.id%TYPE + ,p_enty_code enquiry_types.code%TYPE + ,p_regi_code IN regions.code%TYPE) + RETURN BOOLEAN IS + l_rec_found NUMBER DEFAULT 0; + BEGIN + + IF NOT tripartite_member(p_supp_prty_id) THEN + BEGIN + SELECT 1 + INTO l_rec_found + FROM regi_enqu_exclusions + WHERE regi_code = p_regi_code + AND enty_code = p_enty_code; + EXCEPTION + WHEN no_data_found THEN + NULL; + END; + END IF; + + RETURN(CASE l_rec_found WHEN 0 THEN TRUE ELSE FALSE END); + + END enquiry_allowed; + + FUNCTION enquiry_allowed(p_enqu_id IN enquiries.id%TYPE) RETURN BOOLEAN IS + l_regi_code regions.code%TYPE; + l_postcode enquiries.install_postcode%TYPE; + l_supp_prty_id parties.id%TYPE; + l_enty_code enquiry_types.code%TYPE; + BEGIN + + SELECT install_postcode + ,enty_code + INTO l_postcode + ,l_enty_code + FROM enquiries + WHERE id = p_enqu_id; + l_regi_code := mip_regions.get_region_for_postcode(p_postcode => l_postcode); + l_supp_prty_id := mip_enquiry.get_enquiry_role(p_enquiryid => p_enqu_id + ,p_rolecode => 'SUPP'); + + RETURN enquiry_allowed(p_supp_prty_id => l_supp_prty_id + ,p_enty_code => l_enty_code + ,p_regi_code => l_regi_code); + + END enquiry_allowed; + + FUNCTION addon_allowed(p_adit_code IN additional_items.code%TYPE + ,p_regi_code IN regions.code%TYPE) RETURN BOOLEAN IS + l_rec_found NUMBER DEFAULT 0; + BEGIN + + BEGIN + SELECT 1 + INTO l_rec_found + FROM regi_enqu_exclusions + WHERE regi_code = p_regi_code + AND adit_code = p_adit_code; + EXCEPTION + WHEN no_data_found THEN + NULL; + END; + + RETURN(CASE l_rec_found WHEN 0 THEN TRUE ELSE FALSE END); + + END addon_allowed; + + FUNCTION addons_allowed(p_enqu_id IN enquiries.id%TYPE + ,p_tab_messages IN OUT t_tab_messages) + RETURN BOOLEAN IS + l_amr_required enquiries.amr_required%TYPE; + l_ems_required enquiries.ems_required%TYPE; + l_bypass_required enquiries.bypass_required%TYPE; + l_postcode enquiries.install_postcode%TYPE; + l_regi_code regions.code%TYPE; + l_valid BOOLEAN DEFAULT TRUE; + BEGIN + + SELECT enqu.amr_required + ,enqu.ems_required + ,enqu.bypass_required + ,enqu.install_postcode + INTO l_amr_required + ,l_ems_required + ,l_bypass_required + ,l_postcode + FROM enquiries enqu + 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; + + RETURN l_valid; + END addons_allowed; + + 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; + l_valid BOOLEAN DEFAULT TRUE; + BEGIN + IF NOT enquiry_allowed(p_enqu_id => p_enqu_id) THEN + al('Tripartite agreement prevents this enquiry being processed.' + ,l_tab_messages); + l_valid := FALSE; + ELSE + l_valid := addons_allowed(p_enqu_id => p_enqu_id + ,p_tab_messages => l_tab_messages); + END IF; + + p_tab_messages := l_tab_messages; + + RETURN l_valid; + + END valid_enquiry; + +BEGIN + -- Initialization + NULL; +END mip_tripartite; +/ diff --git a/Schema/mip.con b/Schema/mip.con index dd8e1b4..ab552ef 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 Mon Jan 21 10:44:38 2008 by Server Generator 10.1.2.6.18 +-- Generated for Oracle 10g on Tue Jan 22 17:48:45 2008 by Server Generator 10.1.2.6.18 PROMPT Creating Primary Key on 'SYSTEM_CONFIGURATION' ALTER TABLE SYSTEM_CONFIGURATION @@ -457,34 +457,34 @@ ALTER TABLE REGI_ENQU_EXCLUSIONS ADD (CONSTRAINT REEX_REEX_UK UNIQUE (REGI_CODE ,ENTY_CODE - ,COST_ID)) + ,ADIT_CODE)) / - + PROMPT Creating Check Constraint on 'METER_SIZE_CODES' ALTER TABLE METER_SIZE_CODES - ADD (CONSTRAINT AVCON_1200912278_VALID_000 CHECK (VALID_FOR_EXISTING_METER IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1201024124_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_1200912278_VALID_001 CHECK (VALID_FOR_NEW_METER IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1201024124_VALID_001 CHECK (VALID_FOR_NEW_METER IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'COSTS' ALTER TABLE COSTS - ADD (CONSTRAINT AVCON_1200912278_COST__000 CHECK (COST_TYPE + ADD (CONSTRAINT AVCON_1201024124_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_1200912278_DOCU__000 CHECK (DOCU_TYPE IN ('DOCU', 'INDO', 'EXDO', 'FIDO'))) + ADD (CONSTRAINT AVCON_1201024124_DOCU__000 CHECK (DOCU_TYPE IN ('DOCU', 'INDO', 'EXDO', 'FIDO'))) / PROMPT Creating Check Constraint on 'QUOTES' ALTER TABLE QUOTES - ADD (CONSTRAINT AVCON_1200912278_QUTE__000 CHECK (QUTE_TYPE IN ('AQ', 'MQ', 'QUTE'))) + ADD (CONSTRAINT AVCON_1201024124_QUTE__000 CHECK (QUTE_TYPE IN ('AQ', 'MQ', 'QUTE'))) / PROMPT Creating Check Constraint on 'PARTY_RELATIONSHIPS' @@ -496,17 +496,17 @@ to_parl_rt_code = to_prtp_rt_code)) PROMPT Creating Check Constraint on 'PARTIES' ALTER TABLE PARTIES - ADD (CONSTRAINT AVCON_1200912278_TRIPA_000 CHECK (TRIPARTITE_MEMBER IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1201024124_TRIPA_000 CHECK (TRIPARTITE_MEMBER IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'PARTIES' ALTER TABLE PARTIES - ADD (CONSTRAINT AVCON_1200912278_STATU_000 CHECK (STATUS IN ('OPEN', 'EXPIRED', 'LOCKED'))) + ADD (CONSTRAINT AVCON_1201024124_STATU_000 CHECK (STATUS IN ('OPEN', 'EXPIRED', 'LOCKED'))) / PROMPT Creating Check Constraint on 'PARTIES' ALTER TABLE PARTIES - ADD (CONSTRAINT AVCON_1200912278_PRTY__000 CHECK (PRTY_TYPE + ADD (CONSTRAINT AVCON_1201024124_PRTY__000 CHECK (PRTY_TYPE IN ('PRTY', 'IO', 'EO', 'MKTP', 'PERS', 'MANU', 'NEMP', 'EMP', 'ORG' ))) / @@ -524,82 +524,82 @@ OR PROMPT Creating Check Constraint on 'DOCUMENT_ROLES' ALTER TABLE DOCUMENT_ROLES - ADD (CONSTRAINT AVCON_1200912278_DORO__000 CHECK (DORO_TYPE IN ('DRRO', 'DORO', 'ENDO', 'QUDO'))) + ADD (CONSTRAINT AVCON_1201024124_DORO__000 CHECK (DORO_TYPE IN ('DRRO', 'DORO', 'ENDO', 'QUDO'))) / PROMPT Creating Check Constraint on 'QUOTE_ITEMS' ALTER TABLE QUOTE_ITEMS - ADD (CONSTRAINT AVCON_1200912278_QUIT__000 CHECK (QUIT_TYPE IN ('LQI', 'AQI', 'BQI', 'MQI', 'QUIT', 'HQI'))) + ADD (CONSTRAINT AVCON_1201024124_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_1200912278_RT_TY_000 CHECK (RT_TYPE IN ('DORT', 'PART', 'RT', 'PCMRT', 'QURT', 'ENRT', 'PRT'))) + ADD (CONSTRAINT AVCON_1201024124_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_1200912278_DOWNS_000 CHECK (DOWNSTREAM_BOOSTER_OR_COMPRESS IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1201024124_DOWNS_000 CHECK (DOWNSTREAM_BOOSTER_OR_COMPRESS IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1200912278_INDIC_000 CHECK (INDICATIVE_TIME IN ('DY', 'AM', 'PM'))) + ADD (CONSTRAINT AVCON_1201024124_INDIC_000 CHECK (INDICATIVE_TIME IN ('DY', 'AM', 'PM'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1200912278_HOUSI_000 CHECK (HOUSING_REQUIRED IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1201024124_HOUSI_000 CHECK (HOUSING_REQUIRED IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1200912278_BASE__000 CHECK (BASE_REQUIRED IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1201024124_BASE__000 CHECK (BASE_REQUIRED IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1200912278_CONVE_000 CHECK (CONVERTOR_REQUIRED IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1201024124_CONVE_000 CHECK (CONVERTOR_REQUIRED IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1200912278_AMR_R_000 CHECK (AMR_REQUIRED IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1201024124_AMR_R_000 CHECK (AMR_REQUIRED IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1200912278_EMS_R_000 CHECK (EMS_REQUIRED IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1201024124_EMS_R_000 CHECK (EMS_REQUIRED IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1200912278_TWIN__000 CHECK (TWIN_STREAM_REQUIRED IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1201024124_TWIN__000 CHECK (TWIN_STREAM_REQUIRED IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1200912278_EXIST_000 CHECK (EXISTING_LOGGER IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1201024124_EXIST_000 CHECK (EXISTING_LOGGER IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1200912278_LOAD__000 CHECK (LOAD_CONTROL_TYPE IN ('Constant', 'On/Off', 'Modulating'))) + ADD (CONSTRAINT AVCON_1201024124_LOAD__000 CHECK (LOAD_CONTROL_TYPE IN ('Constant', 'On/Off', 'Modulating'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1200912278_EXIST_001 CHECK (EXISTING_METER_OWNER IN ('S', 'T', 'C'))) + ADD (CONSTRAINT AVCON_1201024124_EXIST_001 CHECK (EXISTING_METER_OWNER IN ('S', 'T', 'C'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1200912278_EXIST_002 CHECK (EXISTING_CONVERTOR IN ('YES', 'NO'))) + ADD (CONSTRAINT AVCON_1201024124_EXIST_002 CHECK (EXISTING_CONVERTOR IN ('YES', 'NO'))) / PROMPT Creating Check Constraint on 'ENQUIRIES' ALTER TABLE ENQUIRIES - ADD (CONSTRAINT AVCON_1200912278_MARKE_000 CHECK (MARKET_SECTOR_CODE IN ('I', 'D'))) + ADD (CONSTRAINT AVCON_1201024124_MARKE_000 CHECK (MARKET_SECTOR_CODE IN ('I', 'D'))) / @@ -1280,9 +1280,9 @@ ALTER TABLE HOUSINGS ADD (CONSTRAINT PROMPT Creating Foreign Key on 'REGI_ENQU_EXCLUSIONS' ALTER TABLE REGI_ENQU_EXCLUSIONS ADD (CONSTRAINT - REEX_COST_FK FOREIGN KEY - (COST_ID) REFERENCES COSTS - (ID)) + REEX_ADIT_FK FOREIGN KEY + (ADIT_CODE) REFERENCES ADDITIONAL_ITEMS + (CODE)) / PROMPT Creating Foreign Key on 'REGI_ENQU_EXCLUSIONS' diff --git a/Schema/mip.ind b/Schema/mip.ind index bc10281..b17fe2c 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 Mon Jan 21 10:44:38 2008 by Server Generator 10.1.2.6.18 +-- Generated for Oracle 10g on Tue Jan 22 17:48:44 2008 by Server Generator 10.1.2.6.18 PROMPT Creating Index 'REGU_RETY_FK_I' @@ -495,9 +495,9 @@ CREATE INDEX REEX_ENTY_FK_I ON REGI_ENQU_EXCLUSIONS (ENTY_CODE) / -PROMPT Creating Index 'REEX_COST_FK_I' -CREATE INDEX REEX_COST_FK_I ON REGI_ENQU_EXCLUSIONS - (COST_ID) +PROMPT Creating Index 'REEX_ADIT_FK_I' +CREATE INDEX REEX_ADIT_FK_I ON REGI_ENQU_EXCLUSIONS + (ADIT_CODE) / PROMPT Creating Index 'REEX_REGI_FK_I' diff --git a/Schema/mip.sql b/Schema/mip.sql index 0279030..bfb0510 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 Mon Jan 21 10:44:38 2008 by Server Generator 10.1.2.6.18 +-- Generated for Oracle 10g on Tue Jan 22 17:48:45 2008 by Server Generator 10.1.2.6.18 SPOOL mip.lst diff --git a/Schema/mip.sqs b/Schema/mip.sqs index 61fc654..593079c 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 Mon Jan 21 10:44:38 2008 by Server Generator 10.1.2.6.18 +-- Generated for Oracle 10g on Tue Jan 22 17:48:45 2008 by Server Generator 10.1.2.6.18 PROMPT Creating Sequence 'FLTR_SEQ' CREATE SEQUENCE FLTR_SEQ diff --git a/Schema/mip.tab b/Schema/mip.tab index 801f680..be2cad6 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 Mon Jan 21 10:44:38 2008 by Server Generator 10.1.2.6.18 +-- Generated for Oracle 10g on Tue Jan 22 17:48:44 2008 by Server Generator 10.1.2.6.18 @@ -30,26 +30,6 @@ CREATE TABLE SERVICE_PRESSURE_TYPES ) / -PROMPT Creating Table 'DATA_ITEM_ROLES_IMPORT' -CREATE TABLE DATA_ITEM_ROLES_IMPORT - (FIELD_NAME VARCHAR2(240) - ,TABLE_NAME VARCHAR2(240) - ,INSTALL VARCHAR2(80) - ,STD_INSTALL VARCHAR2(80) - ,OFMAT VARCHAR2(80) - ,EXCHANGE VARCHAR2(80) - ,STD_EXCHANGE VARCHAR2(80) - ,REMOVE VARCHAR2(80) - ,STD_REMOVE VARCHAR2(80) - ,ADVERSARIAL VARCHAR2(80) - ,ALTERATION VARCHAR2(80) - ,CHANGE_CAPACITY VARCHAR2(80) - ,ADDON VARCHAR2(80) - ,OTHER VARCHAR2(80) - ,DESCRIPTION VARCHAR2(80) - ) -/ - PROMPT Creating Table 'PARTY_ADDRESS_ROLES' CREATE TABLE PARTY_ADDRESS_ROLES (PADDR_ADDR_CODE VARCHAR2(80) NOT NULL @@ -76,7 +56,7 @@ CREATE TABLE DATA_ITEM_ROLES ,DI_TABLE_NAME VARCHAR2(240) NOT NULL ,ENTY_CODE VARCHAR2(80) NOT NULL ,CONDITION VARCHAR2(30) NOT NULL - ,ERROR_MESSAGE VARCHAR2(80) + ,ERROR_MESSAGE VARCHAR2(250) ,DESCRIPTION VARCHAR2(80) ) / @@ -702,9 +682,9 @@ CREATE TABLE HOUSINGS PROMPT Creating Table 'REGI_ENQU_EXCLUSIONS' CREATE TABLE REGI_ENQU_EXCLUSIONS - (ENTY_CODE VARCHAR2(80) NOT NULL - ,REGI_CODE VARCHAR2(80) NOT NULL - ,COST_ID NUMBER + (REGI_CODE VARCHAR2(80) NOT NULL + ,ADIT_CODE VARCHAR2(240) + ,ENTY_CODE VARCHAR2(80) ,ID NUMBER(*,0) NOT NULL ) / diff --git a/Schema/mipViews.sql b/Schema/mipViews.sql index c2d5f00..088d4d9 100644 --- a/Schema/mipViews.sql +++ b/Schema/mipViews.sql @@ -16,3 +16,7 @@ @@v_current_contact_mechanisms.vw @@v_complete_ext_modules.vw @@V_QUOTE_DETAILS.vw +@@V_current_enquiry_status.vw +@@V_current_quote_status.vw + + diff --git a/Schema/v_current_enquiry_status.vw b/Schema/v_current_enquiry_status.vw new file mode 100644 index 0000000..255e624 --- /dev/null +++ b/Schema/v_current_enquiry_status.vw @@ -0,0 +1,23 @@ +CREATE OR REPLACE VIEW v_current_enquiry_status AS +SELECT enqu_id + ,event_date + ,enst_code + 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 + FROM enquiry_events) + WHERE this_event = max_event; diff --git a/Schema/v_current_quote_status.vw b/Schema/v_current_quote_status.vw new file mode 100644 index 0000000..d3cb7aa --- /dev/null +++ b/Schema/v_current_quote_status.vw @@ -0,0 +1,40 @@ +CREATE OR REPLACE VIEW v_current_quote_status +AS +SELECT qute_id + ,event_date + ,qust_code + 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 + FROM quote_events) + WHERE this_event = max_event