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;
|
||||||
|
|
||||||
@@ -639,61 +674,61 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
|
|||||||
p_existing_mesc_code || ':' || p_required_mesc_code
|
p_existing_mesc_code || ':' || p_required_mesc_code
|
||||||
,$$PLSQL_LINE);
|
,$$PLSQL_LINE);
|
||||||
|
|
||||||
IF p_enty_code IS NOT NULL THEN
|
IF p_enty_code IS NOT NULL THEN
|
||||||
-- is Qmax set to be hidden?
|
-- is Qmax set to be hidden?
|
||||||
BEGIN
|
BEGIN
|
||||||
SELECT NULL
|
SELECT NULL
|
||||||
INTO l_dummy
|
INTO l_dummy
|
||||||
FROM data_item_roles
|
FROM data_item_roles
|
||||||
WHERE enty_code = p_enty_code
|
WHERE enty_code = p_enty_code
|
||||||
AND field_name = 'QMAX'
|
AND field_name = 'QMAX'
|
||||||
AND substr(condition
|
AND substr(condition
|
||||||
,1
|
,1
|
||||||
,1) <> 'H';
|
,1) <> 'H';
|
||||||
|
|
||||||
l_return := TRUE;
|
l_return := TRUE;
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN no_data_found THEN
|
WHEN no_data_found THEN
|
||||||
pl('show_qmax:QMAX IS HIDDEN'
|
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);
|
,$$PLSQL_LINE);
|
||||||
l_return := FALSE;
|
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;
|
||||||
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;
|
||||||
END IF;
|
|
||||||
|
|
||||||
pl('show_qmax:exit:' || CASE l_return WHEN TRUE THEN 'TRUE' ELSE
|
pl('show_qmax:exit:' || CASE l_return WHEN TRUE THEN 'TRUE' ELSE
|
||||||
'FALSE' END
|
'FALSE' END
|
||||||
|
|||||||
Reference in New Issue
Block a user