diff --git a/Modules/MIP_ENQUIRY.pck b/Modules/MIP_ENQUIRY.pck index cec4da3..50a9bba 100644 --- a/Modules/MIP_ENQUIRY.pck +++ b/Modules/MIP_ENQUIRY.pck @@ -4,12 +4,12 @@ CREATE OR REPLACE PACKAGE mip_enquiry IS -- Created : 15/11/2007 14:18:24 -- Purpose : Provides useful admin functions/procedures for enquiries -- Updates : 21 November 2007 - MM - added copy_enquiry function - -- + -- -- Public function and procedure declarations - FUNCTION set_enquiry_role(p_enquiryid IN NUMBER, - p_partyid IN NUMBER, - p_rolecode IN VARCHAR2) RETURN BOOLEAN; + FUNCTION set_enquiry_role(p_enquiryid IN NUMBER + ,p_partyid IN NUMBER + ,p_rolecode IN VARCHAR2) RETURN BOOLEAN; /* FUNCTION set_enquiry_role @@ -20,30 +20,33 @@ CREATE OR REPLACE PACKAGE mip_enquiry IS %param p_rolecode - what kind of role this will be. %param p_description - a description for the enquiry role */ - FUNCTION set_enquiry_role(p_enquiryid IN NUMBER, - p_partyid IN NUMBER, - p_rolecode IN VARCHAR2, - p_description IN VARCHAR2) RETURN BOOLEAN; + FUNCTION set_enquiry_role(p_enquiryid IN NUMBER + ,p_partyid IN NUMBER + ,p_rolecode IN VARCHAR2 + ,p_description IN VARCHAR2) RETURN BOOLEAN; + FUNCTION set_file_association(p_enquiryid IN NUMBER + ,p_fileid IN VARCHAR2 + ,p_description IN VARCHAR2) RETURN BOOLEAN; -- - FUNCTION set_enquiry_event(p_enquiryid IN NUMBER, - p_eventcode IN VARCHAR2) RETURN BOOLEAN; + FUNCTION set_enquiry_event(p_enquiryid IN NUMBER + ,p_eventcode IN VARCHAR2) RETURN BOOLEAN; /* FUNCTION copy_enquiry copies the specified enquiry. - + %param p_enquiry_id - the id of the current enquiry to copy. %param p_enqu_owner - the ID of the enquiry owner %param p_enqu_supp - the ID of the enquiry supplier %return varchar2 - a success or error message. - + -- NOTE: there is no need to copy any quote information. All quotes will be -- regenerated for the new enquiry when submitted. */ - FUNCTION copy_enquiry(p_enquiry_id enquiries.id%TYPE, - p_enqu_owner parties.id%TYPE, - p_enqu_supp parties.id%TYPE) RETURN VARCHAR2; + FUNCTION copy_enquiry(p_enquiry_id enquiries.id%TYPE + ,p_enqu_owner parties.id%TYPE + ,p_enqu_supp parties.id%TYPE) RETURN VARCHAR2; -- END mip_enquiry; @@ -57,15 +60,21 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS %param p_partyid - the user or party to assign to this role. %param p_rolecode - what kind of role this will be. */ - FUNCTION set_enquiry_role(p_enquiryid IN NUMBER, - p_partyid IN NUMBER, - p_rolecode IN VARCHAR2) RETURN BOOLEAN AS + FUNCTION set_enquiry_role(p_enquiryid IN NUMBER + ,p_partyid IN NUMBER + ,p_rolecode IN VARCHAR2) RETURN BOOLEAN AS BEGIN INSERT INTO enquiry_roles - (enqu_id, prty_id, start_date, rt_code) + (enqu_id + ,prty_id + ,start_date + ,rt_code) VALUES - (p_enquiryid, p_partyid, SYSDATE, p_rolecode); + (p_enquiryid + ,p_partyid + ,SYSDATE + ,p_rolecode); RETURN TRUE; -- @@ -85,16 +94,24 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS %param p_rolecode - what kind of role this will be. %param p_description - a description for the enquiry role */ - FUNCTION set_enquiry_role(p_enquiryid IN NUMBER, - p_partyid IN NUMBER, - p_rolecode IN VARCHAR2, - p_description IN VARCHAR2) RETURN BOOLEAN AS + FUNCTION set_enquiry_role(p_enquiryid IN NUMBER + ,p_partyid IN NUMBER + ,p_rolecode IN VARCHAR2 + ,p_description IN VARCHAR2) RETURN BOOLEAN AS BEGIN INSERT INTO enquiry_roles - (enqu_id, prty_id, start_date, rt_code, description) + (enqu_id + ,prty_id + ,start_date + ,rt_code + ,description) VALUES - (p_enquiryid, p_partyid, SYSDATE, p_rolecode, p_description); + (p_enquiryid + ,p_partyid + ,SYSDATE + ,p_rolecode + ,p_description); RETURN TRUE; -- @@ -103,6 +120,45 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS RETURN FALSE; END set_enquiry_role; -- + FUNCTION set_file_association(p_enquiryid IN NUMBER + ,p_fileid IN VARCHAR2 + ,p_description IN VARCHAR2) RETURN BOOLEAN AS + l_docu_id documents.id%TYPE; + BEGIN + -- the document is stored by APEX in the standard 'files' table + -- record the 'additional' document details in our own table. + INSERT INTO documents + (id + ,docu_type + ,uri + ,description) + VALUES + (docu_seq.NEXTVAL + ,'INDO' + ,p_fileid + ,p_description) + RETURNING id INTO l_docu_id; + --record the role of this document for the enquiry + INSERT INTO document_roles + (id + ,rt_code + ,start_date + ,description + ,enqu_id + ,doro_type + ,docu_id) + VALUES + (doro_seq.NEXTVAL + ,'GENERATED QUOTATION' + ,SYSDATE + ,p_description + ,p_enquiryid + ,'ENDO' + ,l_docu_id); + + RETURN TRUE; + -- + END set_file_association; /* FUNCTION set_enquiry_event @@ -111,14 +167,18 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS %param p_enquiryid - the current enquiry to save the event role against. %param p_eventcode - what kind of event role this will be. */ - FUNCTION set_enquiry_event(p_enquiryid IN NUMBER, - p_eventcode IN VARCHAR2) RETURN BOOLEAN AS + FUNCTION set_enquiry_event(p_enquiryid IN NUMBER + ,p_eventcode IN VARCHAR2) RETURN BOOLEAN AS BEGIN INSERT INTO enquiry_events - (enqu_id, event_date, enst_code) + (enqu_id + ,event_date + ,enst_code) VALUES - (p_enquiryid, SYSDATE, p_eventcode); + (p_enquiryid + ,SYSDATE + ,p_eventcode); RETURN TRUE; -- @@ -132,31 +192,34 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS /* FUNCTION copy_enquiry copies the specified enquiry. - + %param p_enquiry_id - the id of the current enquiry to copy. %param p_enqu_owner - the ID of the enquiry owner %param p_enqu_supp - the ID of the enquiry supplier %return varchar2 - a success or error message. - + -- NOTE: there is no need to copy any quote information. All quotes will be -- regenerated for the new enquiry when submitted. */ - FUNCTION copy_enquiry(p_enquiry_id enquiries.id%TYPE, - p_enqu_owner parties.id%TYPE, - p_enqu_supp parties.id%TYPE) RETURN VARCHAR2 IS + FUNCTION copy_enquiry(p_enquiry_id enquiries.id%TYPE + ,p_enqu_owner parties.id%TYPE + ,p_enqu_supp parties.id%TYPE) RETURN VARCHAR2 IS -- -- cursor to get a new enquiry ID from the sequence CURSOR c_get_new_id IS - SELECT enqu_seq.NEXTVAL FROM dual; + SELECT enqu_seq.NEXTVAL + FROM dual; -- cursor to get the current enquiry CURSOR c_get_enquiry IS - SELECT * FROM enquiries WHERE id = p_enquiry_id; + SELECT * + FROM enquiries + WHERE id = p_enquiry_id; -- variable to hold the enquiry details returned l_enqu_row enquiries%ROWTYPE; - -- the new enquiry ID + -- the new enquiry ID l_enqu_id NUMBER; -- @@ -166,11 +229,13 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS -- first thing to do is check the user's role allows them to copy enquiries -- only agents and I&C users. - IF NOT mip_parties.get_user_role(p_username => v('APP_USER')) IN ('AGENT','ICU', 'MIPADMIN') THEN - raise_application_error(-20100,'User '||v('APP_USER') || ' is not permitted to copy enquiries.'); + IF NOT mip_parties.get_user_role(p_username => v('APP_USER')) IN + ('AGENT', 'ICU', 'MIPADMIN') THEN + raise_application_error(-20100 + ,'User ' || v('APP_USER') || + ' is not permitted to copy enquiries.'); END IF; - - + -- -- try to get the enquiry based on the ID we've been given. -- @@ -188,7 +253,8 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS WHEN no_data_found THEN CLOSE c_get_enquiry; -- couldn't find the enquiry, tell someone - raise_application_error(-20100,'Unable to find the specified enquiry. Please try again.'); + raise_application_error(-20100 + ,'Unable to find the specified enquiry. Please try again.'); END; -- @@ -201,44 +267,49 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS EXCEPTION WHEN no_data_found THEN CLOSE c_get_new_id; - raise_application_error(-20101,'Unable to retrieve a new ID for the enquiry.'); + raise_application_error(-20101 + ,'Unable to retrieve a new ID for the enquiry.'); END; l_enqu_row.id := l_enqu_id; -- now do the insert (copy) for the enquiry - INSERT INTO enquiries VALUES l_enqu_row; + INSERT INTO enquiries + VALUES l_enqu_row; -- -- create an enquiry supplier, add a description of where it was copied from - l_dummy := set_enquiry_role(p_enquiryid => l_enqu_id, - p_partyid => p_enqu_supp, - p_rolecode => 'ENQ SUPP', - p_description => 'Enquiry copied from enquiry ' || + l_dummy := set_enquiry_role(p_enquiryid => l_enqu_id + ,p_partyid => p_enqu_supp + ,p_rolecode => 'ENQ SUPP' + ,p_description => 'Enquiry copied from enquiry ' || p_enquiry_id || ' by user ' || v(':APP_USER')); IF NOT l_dummy THEN - raise_application_error(-20102,'Unable to set enquiry supplier.'); + raise_application_error(-20102 + ,'Unable to set enquiry supplier.'); END IF; - + -- create an enquiry owner - l_dummy := set_enquiry_role(p_enquiryid => l_enqu_id, - p_partyid => p_enqu_owner, - p_rolecode => 'ENQ OWN'); + l_dummy := set_enquiry_role(p_enquiryid => l_enqu_id + ,p_partyid => p_enqu_owner + ,p_rolecode => 'ENQ OWN'); IF NOT l_dummy THEN - raise_application_error(-20103,'Unable to set enquiry owner.'); + raise_application_error(-20103 + ,'Unable to set enquiry owner.'); END IF; -- - + -- set the enquiry event to "In Progress" - l_dummy := set_enquiry_event(p_enquiryid => l_enqu_id, - p_eventcode => 'INP'); - + l_dummy := set_enquiry_event(p_enquiryid => l_enqu_id + ,p_eventcode => 'INP'); + IF NOT l_dummy THEN - raise_application_error(-20104,'Unable to set enquiry owner.'); + raise_application_error(-20104 + ,'Unable to set enquiry owner.'); END IF; -- - + -- RETURN l_enqu_id; --