When deleting enquiry, also delete uploaded files.
git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@4758 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
@@ -176,6 +176,8 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
|
|||||||
FUNCTION delete_enquiry(p_enqu_id IN enquiries.id%TYPE
|
FUNCTION delete_enquiry(p_enqu_id IN enquiries.id%TYPE
|
||||||
,p_message OUT VARCHAR2) RETURN BOOLEAN IS
|
,p_message OUT VARCHAR2) RETURN BOOLEAN IS
|
||||||
l_enquiry_deleted BOOLEAN := TRUE;
|
l_enquiry_deleted BOOLEAN := TRUE;
|
||||||
|
TYPE t_rowid IS TABLE OF ROWID;
|
||||||
|
l_rowid t_rowid := t_rowid();
|
||||||
BEGIN
|
BEGIN
|
||||||
pl('delete_enquiry:entry:' || p_enqu_id
|
pl('delete_enquiry:entry:' || p_enqu_id
|
||||||
,$$PLSQL_LINE);
|
,$$PLSQL_LINE);
|
||||||
@@ -192,6 +194,39 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
|
|||||||
-- delete all associations with this enquiry
|
-- delete all associations with this enquiry
|
||||||
--
|
--
|
||||||
|
|
||||||
|
DELETE FROM apex_application_files aaf
|
||||||
|
WHERE aaf.NAME IN (SELECT uri
|
||||||
|
FROM documents docu
|
||||||
|
,document_roles doro
|
||||||
|
WHERE doro.enqu_id = p_enqu_id
|
||||||
|
AND doro.docu_id = docu.id
|
||||||
|
AND docu.docu_type = 'INDO');
|
||||||
|
|
||||||
|
DELETE FROM document_events doev
|
||||||
|
WHERE doev.docu_id IN
|
||||||
|
(SELECT docu_id
|
||||||
|
FROM document_roles doro
|
||||||
|
WHERE doro.enqu_id = p_enqu_id);
|
||||||
|
|
||||||
|
-- document roles knows which files should be deleted
|
||||||
|
-- through a FK
|
||||||
|
-- 1. Gather the rowids of the documents first,
|
||||||
|
-- 2. Remove the document role
|
||||||
|
-- 3. Remove the associated document
|
||||||
|
SELECT ROWID BULK COLLECT
|
||||||
|
INTO l_rowid
|
||||||
|
FROM documents
|
||||||
|
WHERE id IN (SELECT docu_id
|
||||||
|
FROM document_roles
|
||||||
|
WHERE enqu_id = p_enqu_id);
|
||||||
|
|
||||||
|
DELETE FROM document_roles doro
|
||||||
|
WHERE doro.enqu_id = p_enqu_id;
|
||||||
|
|
||||||
|
FORALL l_idx IN INDICES OF l_rowid
|
||||||
|
DELETE FROM documents
|
||||||
|
WHERE ROWID = l_rowid(l_idx);
|
||||||
|
|
||||||
DELETE FROM quote_reasoning
|
DELETE FROM quote_reasoning
|
||||||
WHERE enqu_id = p_enqu_id;
|
WHERE enqu_id = p_enqu_id;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user