MIP_ENQUIRY.pck - address back-end of #439.

mip_quotation.pck - address back-end of #442.

mip_security.pck - track CGI environment variables as part of #454.

mip_quotation.pck - store files with the correct flow_id;

git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@4733 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
hardya
2008-04-07 15:25:13 +00:00
parent e9a95704c2
commit 759f63c635
4 changed files with 504 additions and 211 deletions

View File

@@ -15,7 +15,6 @@ CREATE OR REPLACE PACKAGE mip_enquiry IS
,required_mesc_code meters.mesc_code%TYPE);
-- Public function and procedure declarations
FUNCTION delete_enquiry(p_enquiryid IN NUMBER) RETURN BOOLEAN;
FUNCTION can_enquiry_be_deleted(p_enquiryid IN NUMBER) RETURN BOOLEAN;
FUNCTION get_enquiry_status(p_enquiryid IN NUMBER) RETURN VARCHAR2;
@@ -73,6 +72,26 @@ CREATE OR REPLACE PACKAGE mip_enquiry IS
,p_existing_mesc_code meters.mesc_code%TYPE
,p_required_mesc_code meters.mesc_code%TYPE
,p_existing_metr_code meters.code%TYPE) RETURN BOOLEAN;
/*
FUNCTION delete_enquiry
- This function returns the deletion status of the enquiry provided
%param p_enqu_id id of the enquiry to be deleted
%param p_message reason for not deleting enquiry
%return boolean
{*} TRUE - all quotes have been deleted
{*} FALSE or UNKNOWN - quotes have not been deleted
*/
FUNCTION delete_enquiry(p_enqu_id IN enquiries.id%TYPE
,p_message OUT VARCHAR2) RETURN BOOLEAN;
/*
FUNCTION delete_enquiry
- This function returns the deletion status of the enquiry provided
%param p_enqu_id id of the enquiry to be deleted
%return reason for not deleting enquiry or NULL
*/
FUNCTION delete_enquiry(p_enqu_id IN enquiries.id%TYPE) RETURN VARCHAR2;
END mip_enquiry;
/
CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
@@ -87,66 +106,8 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
,p_in => p_in);
/* $END*/
END pl;
/*
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 can_enquiry_be_deleted
- This function returns the status of the enquiry provided
- and associated quotes to see if it can be deleted
@@ -156,14 +117,13 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
FUNCTION can_enquiry_be_deleted(p_enquiryid IN NUMBER) RETURN BOOLEAN AS
-- cursor to get the current enquiry
CURSOR c_check_all_quotes(cp_enqu_id NUMBER) IS
select count(qute_id)
from v_current_quote_status
where QUTE_ID in
(SELECT ID
FROM quotes
WHERE enqu_id = cp_enqu_id)
and QUST_CODE in ('SELECTED','ACCEPTED');
l_quotes_cannot_del number := 0;
SELECT COUNT(qute_id)
FROM v_current_quote_status
WHERE qute_id IN (SELECT id
FROM quotes
WHERE enqu_id = cp_enqu_id)
AND qust_code IN ('SELECTED', 'ACCEPTED');
l_quotes_cannot_del NUMBER := 0;
BEGIN
IF NOT c_check_all_quotes%ISOPEN THEN
OPEN c_check_all_quotes(p_enquiryid);
@@ -172,12 +132,67 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
FETCH c_check_all_quotes
INTO l_quotes_cannot_del;
CLOSE c_check_all_quotes;
if l_quotes_cannot_del > 0 then
return false;
else
return true;
end if;
IF l_quotes_cannot_del > 0 THEN
RETURN FALSE;
ELSE
RETURN TRUE;
END IF;
END can_enquiry_be_deleted;
/*
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_enqu_id IN enquiries.id%TYPE
,p_message OUT VARCHAR2) RETURN BOOLEAN IS
l_enquiry_deleted BOOLEAN := TRUE;
BEGIN
pl('delete_enquiry:entry:' || p_enqu_id
,$$PLSQL_LINE);
--
-- attempt to delete all associated quotes
--
IF NOT
mip_quotation.delete_quotes_for_enquiry(p_enqu_id => p_enqu_id
,p_message => p_message) THEN
-- unable to delete quotations
l_enquiry_deleted := FALSE;
ELSE
--
-- delete all associations with this enquiry
--
DELETE FROM quote_reasoning
WHERE enqu_id = p_enqu_id;
DELETE FROM enquiry_events
WHERE enqu_id = p_enqu_id;
DELETE FROM enquiry_roles
WHERE enqu_id = p_enqu_id;
DELETE FROM enquiries
WHERE id = p_enqu_id;
END IF;
RETURN(l_enquiry_deleted = TRUE);
END delete_enquiry;
FUNCTION delete_enquiry(p_enqu_id IN enquiries.id%TYPE) RETURN VARCHAR2 IS
l_message VARCHAR2(240);
l_dummy BOOLEAN;
BEGIN
pl('delete_enquiry(msg):entry:' || p_enqu_id);
l_dummy := delete_enquiry(p_enqu_id => p_enqu_id
,p_message => l_message);
pl('delete_enquiry(msg):exit:' || l_message);
RETURN(l_message);
END delete_enquiry;
/*
FUNCTION get_enquiry_status
- This function returns the status of the enquiry provided
@@ -242,7 +257,9 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
,p_partyid IN NUMBER
,p_rolecode IN VARCHAR2) RETURN BOOLEAN AS
BEGIN
pl('set_enquiry_role:entry:'||p_enquiryid||':'||p_partyid||':'||p_rolecode,$$plsql_line);
pl('set_enquiry_role:entry:' || p_enquiryid || ':' || p_partyid || ':' ||
p_rolecode
,$$PLSQL_LINE);
INSERT INTO enquiry_roles
(enqu_id
,prty_id
@@ -254,12 +271,14 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
,SYSDATE
,p_rolecode);
pl('set_enquiry_role:exit',$$plsql_line);
pl('set_enquiry_role:exit'
,$$PLSQL_LINE);
RETURN TRUE;
--
EXCEPTION
WHEN OTHERS THEN
pl('set_enquiry_role:EXCEPTION:'||SQLERRM,$$plsql_line);
EXCEPTION
WHEN OTHERS THEN
pl('set_enquiry_role:EXCEPTION:' || SQLERRM
,$$PLSQL_LINE);
RAISE;
END set_enquiry_role;
--
@@ -278,8 +297,10 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
,p_rolecode IN VARCHAR2
,p_description IN VARCHAR2) RETURN BOOLEAN AS
BEGIN
pl('set_enquiry_role:entry:'||p_enquiryid||':'||p_partyid||':'||p_rolecode||':'||p_description,$$plsql_line);
pl('set_enquiry_role:entry:' || p_enquiryid || ':' || p_partyid || ':' ||
p_rolecode || ':' || p_description
,$$PLSQL_LINE);
INSERT INTO enquiry_roles
(enqu_id
,prty_id
@@ -293,13 +314,15 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
,p_rolecode
,p_description);
pl('set_enquiry_role:exit',$$plsql_line);
pl('set_enquiry_role:exit'
,$$PLSQL_LINE);
RETURN TRUE;
--
EXCEPTION
WHEN OTHERS THEN
pl('set_enquiry_role:EXCEPTION:'||SQLERRM,$$plsql_line);
EXCEPTION
WHEN OTHERS THEN
pl('set_enquiry_role:EXCEPTION:' || SQLERRM
,$$PLSQL_LINE);
RAISE;
END set_enquiry_role;
--
@@ -584,8 +607,10 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
l_dummy NUMBER;
BEGIN
pl('show_qmax:entry:'||p_enty_code||':'||p_existing_metr_code||':'||p_existing_mesc_code||':'||p_required_mesc_code,$$PLSQL_LINE);
pl('show_qmax:entry:' || p_enty_code || ':' || p_existing_metr_code || ':' ||
p_existing_mesc_code || ':' || p_required_mesc_code
,$$PLSQL_LINE);
BEGIN
SELECT NULL
INTO l_dummy
@@ -599,7 +624,8 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
l_return := TRUE;
EXCEPTION
WHEN no_data_found THEN
pl('show_qmax:QMAX IS HIDDEN',$$PLSQL_LINE);
pl('show_qmax:QMAX IS HIDDEN'
,$$PLSQL_LINE);
l_return := FALSE;
END;
@@ -617,14 +643,16 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
l_required_mesc_enquiry := TRUE;
EXCEPTION
WHEN no_data_found THEN
pl('show_qmax:NOT A REQUIRED MESC ENQUIRY',$$PLSQL_LINE);
pl('show_qmax:NOT A REQUIRED MESC ENQUIRY'
,$$PLSQL_LINE);
l_required_mesc_enquiry := FALSE;
END;
IF l_required_mesc_enquiry
AND (nvl(p_required_mesc_code
,'OTHER') <> 'OTHER') THEN
pl('show_qmax:REQUIRED MESC NOT OTHER',$$PLSQL_LINE);
pl('show_qmax:REQUIRED MESC NOT OTHER'
,$$PLSQL_LINE);
l_return := FALSE;
ELSE
BEGIN
@@ -639,7 +667,8 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
l_existing_mesc_enquiry := TRUE;
EXCEPTION
WHEN no_data_found THEN
pl('show_qmax:NOT EXISTING MESC ENQUIRY',$$PLSQL_LINE);
pl('show_qmax:NOT EXISTING MESC ENQUIRY'
,$$PLSQL_LINE);
l_existing_mesc_enquiry := FALSE;
END;
@@ -650,13 +679,16 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
,'OTHER') = 'OTHER' AND
nvl(p_existing_mesc_code
,'OTHER') <> 'OTHER')) THEN
pl('show_qmax:EXISTING METR OR MESC NOT OTHER',$$PLSQL_LINE);
pl('show_qmax:EXISTING METR OR MESC NOT OTHER'
,$$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,$$PLSQL_LINE);
pl('show_qmax:exit:' || CASE l_return WHEN TRUE THEN 'TRUE' ELSE
'FALSE' END
,$$PLSQL_LINE);
RETURN l_return;
END show_qmax;