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;
|
||||
|
||||
@@ -639,61 +674,61 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
|
||||
p_existing_mesc_code || ':' || p_required_mesc_code
|
||||
,$$PLSQL_LINE);
|
||||
|
||||
IF p_enty_code IS NOT NULL THEN
|
||||
-- is Qmax set to be hidden?
|
||||
BEGIN
|
||||
SELECT NULL
|
||||
INTO l_dummy
|
||||
FROM data_item_roles
|
||||
WHERE enty_code = p_enty_code
|
||||
AND field_name = 'QMAX'
|
||||
AND substr(condition
|
||||
,1
|
||||
,1) <> 'H';
|
||||
IF p_enty_code IS NOT NULL THEN
|
||||
-- is Qmax set to be hidden?
|
||||
BEGIN
|
||||
SELECT NULL
|
||||
INTO l_dummy
|
||||
FROM data_item_roles
|
||||
WHERE enty_code = p_enty_code
|
||||
AND field_name = 'QMAX'
|
||||
AND substr(condition
|
||||
,1
|
||||
,1) <> 'H';
|
||||
|
||||
l_return := TRUE;
|
||||
EXCEPTION
|
||||
WHEN no_data_found THEN
|
||||
pl('show_qmax:QMAX IS HIDDEN'
|
||||
,$$PLSQL_LINE);
|
||||
l_return := FALSE;
|
||||
END;
|
||||
|
||||
IF l_return THEN
|
||||
IF p_enty_code IN
|
||||
('OFMAT', 'REMOVE', 'STD REMOVE', 'ADVERSARIAL', 'ADDON') THEN
|
||||
l_existing_qmax := TRUE;
|
||||
ELSE
|
||||
l_required_qmax := TRUE;
|
||||
END IF;
|
||||
|
||||
IF l_existing_qmax THEN
|
||||
IF (nvl(p_existing_metr_code
|
||||
,'OTHER') <> 'OTHER') THEN
|
||||
pl('show_qmax:EXISTING_METR_CODE SPECIFIED');
|
||||
l_return := FALSE;
|
||||
ELSIF
|
||||
|
||||
(nvl(p_existing_metr_code
|
||||
,'OTHER') = 'OTHER' AND
|
||||
nvl(p_existing_mesc_code
|
||||
,'OTHER') <> 'OTHER') THEN
|
||||
pl('show_qmax:EXISTING_MESC SPECIFIED'
|
||||
l_return := TRUE;
|
||||
EXCEPTION
|
||||
WHEN no_data_found THEN
|
||||
pl('show_qmax:QMAX IS HIDDEN'
|
||||
,$$PLSQL_LINE);
|
||||
l_return := FALSE;
|
||||
END;
|
||||
|
||||
IF l_return THEN
|
||||
IF p_enty_code IN
|
||||
('OFMAT', 'REMOVE', 'STD REMOVE', 'ADVERSARIAL', 'ADDON') THEN
|
||||
l_existing_qmax := TRUE;
|
||||
ELSE
|
||||
l_required_qmax := TRUE;
|
||||
END IF;
|
||||
|
||||
IF l_existing_qmax THEN
|
||||
IF (nvl(p_existing_metr_code
|
||||
,'OTHER') <> 'OTHER') THEN
|
||||
pl('show_qmax:EXISTING_METR_CODE SPECIFIED');
|
||||
l_return := FALSE;
|
||||
ELSIF
|
||||
|
||||
(nvl(p_existing_metr_code
|
||||
,'OTHER') = 'OTHER' AND
|
||||
nvl(p_existing_mesc_code
|
||||
,'OTHER') <> 'OTHER') THEN
|
||||
pl('show_qmax:EXISTING_MESC SPECIFIED'
|
||||
,$$PLSQL_LINE);
|
||||
l_return := FALSE;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
IF l_required_qmax
|
||||
AND (nvl(p_required_mesc_code
|
||||
,'OTHER') <> 'OTHER') THEN
|
||||
pl('show_qmax:REQUIRED_MESC SPECIFIED'
|
||||
,$$PLSQL_LINE);
|
||||
l_return := FALSE;
|
||||
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
IF l_required_qmax
|
||||
AND (nvl(p_required_mesc_code
|
||||
,'OTHER') <> 'OTHER') THEN
|
||||
pl('show_qmax:REQUIRED_MESC SPECIFIED'
|
||||
,$$PLSQL_LINE);
|
||||
l_return := FALSE;
|
||||
|
||||
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