From 6833abac252254ac97a0fbd8b169b818a897ee81 Mon Sep 17 00:00:00 2001 From: PriestJ Date: Thu, 31 Jan 2008 16:00:40 +0000 Subject: [PATCH] added delete_enquiry function so that web mip admin and i&c can delete enquiries git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@3436 248e525c-4dfb-0310-94bc-949c084e9493 --- Modules/MIP_ENQUIRY.pck | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/Modules/MIP_ENQUIRY.pck b/Modules/MIP_ENQUIRY.pck index a8d03d7..02c8c2a 100644 --- a/Modules/MIP_ENQUIRY.pck +++ b/Modules/MIP_ENQUIRY.pck @@ -7,6 +7,7 @@ CREATE OR REPLACE PACKAGE mip_enquiry IS -- -- Public function and procedure declarations + FUNCTION delete_enquiry(p_enquiryid IN NUMBER) RETURN BOOLEAN; FUNCTION get_enquiry_status(p_enquiryid IN NUMBER) RETURN VARCHAR2; FUNCTION get_enquiry_role(p_enquiryid IN NUMBER @@ -52,6 +53,58 @@ CREATE OR REPLACE PACKAGE mip_enquiry IS END mip_enquiry; / CREATE OR REPLACE PACKAGE BODY mip_enquiry IS + /* + FUNCTION delete_enquiry + - This function returns the status of the enquiry provided + %param p_enquiryid - the enquiry we want to delete. + %return boolean - whether the enquiry was deleted or not + */ + FUNCTION delete_enquiry(p_enquiryid IN NUMBER) RETURN BOOLEAN AS + l_uri documents.uri%type; + l_doc_id documents.id%type; + l_count number := 0; + CURSOR c_get_doc_id(cp_enq_id number) is + select id + from document_roles + where enqu_id=cp_enq_id; + CURSOR c_get_uri(cp_id number) is + select uri + from documents + where id=cp_id; + CURSOR c_get_document_files(cp_enq_id number) is + select documents.uri + from documents,document_roles + where document_roles.enqu_id = cp_enq_id + and documents.id = document_roles.docu_id; + begin + --select count(*) into l_count from quotes where quotes.enqu_id=p_enquiryid; + --if l_count > 0 then + -- return false; + --end if; + IF NOT c_get_doc_id%ISOPEN THEN + OPEN c_get_doc_id(p_enquiryid); + END IF; + FETCH c_get_doc_id + INTO l_doc_id; + CLOSE c_get_doc_id; + + IF NOT c_get_uri%ISOPEN THEN + OPEN c_get_uri(l_doc_id); + END IF; + FETCH c_get_uri + INTO l_uri; + CLOSE c_get_uri; + + delete enquiry_roles where enquiry_roles.enqu_id = p_enquiryid; + delete enquiry_events where enquiry_events.enqu_id = p_enquiryid; + FOR doc_rec IN c_get_document_files(p_enquiryid) LOOP + delete wwv_flow_files where wwv_flow_files.name = doc_rec.uri; + end loop; + delete document_roles where document_roles.enqu_id = p_enquiryid; + delete documents where documents.id = l_doc_id; + delete enquiries where enquiries.id = p_enquiryid; + return true; + END delete_enquiry; /* FUNCTION get_enquiry_status - This function returns the status of the enquiry provided