diff --git a/Modules/MIP_ENQUIRY.pck b/Modules/MIP_ENQUIRY.pck index 50a9bba..97bd09e 100644 --- a/Modules/MIP_ENQUIRY.pck +++ b/Modules/MIP_ENQUIRY.pck @@ -7,6 +7,8 @@ CREATE OR REPLACE PACKAGE mip_enquiry IS -- -- Public function and procedure declarations + FUNCTION get_enquiry_role(p_enquiryid IN NUMBER + ,p_rolecode IN VARCHAR2) RETURN NUMBER; FUNCTION set_enquiry_role(p_enquiryid IN NUMBER ,p_partyid IN NUMBER ,p_rolecode IN VARCHAR2) RETURN BOOLEAN; @@ -52,6 +54,32 @@ CREATE OR REPLACE PACKAGE mip_enquiry IS END mip_enquiry; / CREATE OR REPLACE PACKAGE BODY mip_enquiry IS + /* + FUNCTION get_enquiry_role + - This function finds the enquiry and the role specified and returns the + - latest(current) user id for the specifed role + %param p_enquiryid - the enquiry we want to find the role from. + %param p_rolecode - the type of role we want to find + %return number - the party id of the party that currently assumes the specified role + */ + FUNCTION get_enquiry_role(p_enquiryid IN NUMBER + ,p_rolecode IN VARCHAR2) RETURN NUMBER AS + -- cursor to get the current enquiry + CURSOR c_get_enquiry_role(cp_enqu_id number, cp_rolecode VARCHAR2) IS + SELECT prty_id + FROM v_latest_rt_code_for_enro + WHERE rt_code=cp_rolecode and enqu_id=cp_enqu_id; + l_enqu_role_row number; + BEGIN + IF NOT c_get_enquiry_role%ISOPEN THEN + OPEN c_get_enquiry_role(p_enquiryid, p_rolecode); + END IF; + + FETCH c_get_enquiry_role + INTO l_enqu_role_row; + CLOSE c_get_enquiry_role; + return l_enqu_role_row; + END get_enquiry_role; /* FUNCTION set_enquiry_role - gets the enquiry id, party id and the role type and writes a record in the enquiry_roles table