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
|
||||
,p_message OUT VARCHAR2) RETURN BOOLEAN IS
|
||||
l_enquiry_deleted BOOLEAN := TRUE;
|
||||
TYPE t_rowid IS TABLE OF ROWID;
|
||||
l_rowid t_rowid := t_rowid();
|
||||
BEGIN
|
||||
pl('delete_enquiry:entry:' || p_enqu_id
|
||||
,$$PLSQL_LINE);
|
||||
@@ -192,6 +194,39 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
|
||||
-- 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
|
||||
WHERE enqu_id = p_enqu_id;
|
||||
|
||||
@@ -693,7 +728,7 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
|
||||
|
||||
END IF;
|
||||
END IF;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
pl('show_qmax:exit:' || CASE l_return WHEN TRUE THEN 'TRUE' ELSE
|
||||
'FALSE' END
|
||||
|
||||
Reference in New Issue
Block a user