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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 -Comments +Comments -PRTY_ID +PRTY_ID NUMBER @@ -64,7 +64,7 @@ NUMBER -RT_CODE +RT_CODE VARCHAR2(80) @@ -81,7 +81,7 @@ VARCHAR2(80) -START_DATE +START_DATE DATE @@ -98,7 +98,7 @@ DATE -END_DATE +END_DATE DATE @@ -115,7 +115,7 @@ Y -ENQU_ID +ENQU_ID NUMBER @@ -137,15 +137,15 @@ NUMBER SQL
 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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 -Comments +Comments @@ -115,7 +115,7 @@ VARCHAR2(80) -DESCRIPTION +DESCRIPTION VARCHAR2(80) diff --git a/Documentation/pldoc/V_PROFILE_RT_CODE_FOR_ENRO.html b/Documentation/pldoc/V_PROFILE_RT_CODE_FOR_ENRO.html index 619720f..bd9930b 100644 --- a/Documentation/pldoc/V_PROFILE_RT_CODE_FOR_ENRO.html +++ b/Documentation/pldoc/V_PROFILE_RT_CODE_FOR_ENRO.html @@ -41,13 +41,13 @@ Default -Comments +Comments -PRTY_ID +PRTY_ID NUMBER @@ -64,7 +64,7 @@ NUMBER -RT_CODE +RT_CODE VARCHAR2(80) @@ -81,7 +81,7 @@ VARCHAR2(80) -START_DATE +START_DATE DATE @@ -98,7 +98,7 @@ DATE -END_DATE +END_DATE DATE @@ -132,7 +132,7 @@ Y -ENQU_ID +ENQU_ID NUMBER @@ -154,19 +154,19 @@ Y SQL
 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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 @@ + + + + + Package cout_system_configuration + + + + + + + + +

index

+
+

Package cout_system_configuration

+Package containing the common utility system configuration routines used by the Access Manager application
+ +
+ +
+Version +
+ + +
+ +$Revision: $ +
+
+ +
+Author +
+ + +
+ +Andy Hardy +
+
+
+
+ +
+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 + + + + + + + + +

index

+
+

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 +   matt_quote + + +   mip_bulk_load + +    mip_contact_details @@ -31,6 +37,9 @@    MIP_FILES +   mip_helper_special_cases + +    mip_mandatory @@ -51,6 +60,9 @@    mip_table_constraints + +   mip_tripartite + @@ -71,6 +83,46 @@ + +
 Functions
+ + + + + +
+   get_quote_items +
+ + +
 Procedures
+ + + + + + + + + + + +
+   gen_mandatory +
+   gen_plsqldoc +
+   get_dir_list +
+   getpdf +
+   getreportpdf +
+   test_ah +
+   test_ah2 +
+
 Tables
@@ -87,14 +139,65 @@ + + + + + + + + + + + + + + + + +
+   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 +
diff --git a/Documentation/pldoc/gen_mandatory.html b/Documentation/pldoc/gen_mandatory.html new file mode 100644 index 0000000..24eddc8 --- /dev/null +++ b/Documentation/pldoc/gen_mandatory.html @@ -0,0 +1,28 @@ + + + + + Procedure gen_mandatory + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 +matt_quote + + +mip_bulk_load + + mip_contact_details @@ -44,6 +50,9 @@ MIP_FILES +mip_helper_special_cases + + mip_mandatory @@ -64,6 +73,9 @@ mip_table_constraints + +mip_tripartite + @@ -86,6 +98,50 @@ +
+ + +
Functions
+ + + + + +
+get_quote_items +
+ +
+ + +
Procedures
+ + + + + + + + + + + +
+gen_mandatory +
+gen_plsqldoc +
+get_dir_list +
+getpdf +
+getreportpdf +
+test_ah +
+test_ah2 +
+
@@ -106,15 +162,66 @@
+ + + + + + + + + + + + + + + + +
+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 +
diff --git a/Documentation/pldoc/matt_quote.html b/Documentation/pldoc/matt_quote.html new file mode 100644 index 0000000..4a6a186 --- /dev/null +++ b/Documentation/pldoc/matt_quote.html @@ -0,0 +1,45 @@ + + + + + Package matt_quote + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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 + + + + + + + + +

index

+
+

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