part of the fix for ticket #439(sc1004) added new function to determine if an enquiry can be deleted.
git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@4726 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
@@ -16,6 +16,8 @@ CREATE OR REPLACE PACKAGE mip_enquiry IS
|
||||
|
||||
-- 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;
|
||||
|
||||
FUNCTION get_enquiry_role(p_enquiryid IN NUMBER
|
||||
@@ -67,6 +69,10 @@ CREATE OR REPLACE PACKAGE mip_enquiry IS
|
||||
,p_qmax meters.qmax%TYPE)
|
||||
RETURN t_rec_meter_reqs;
|
||||
|
||||
FUNCTION show_qmax(p_enty_code enquiry_types.code%TYPE
|
||||
,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;
|
||||
END mip_enquiry;
|
||||
/
|
||||
CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
|
||||
@@ -140,6 +146,38 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
|
||||
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
|
||||
%param p_enquiryid - the enquiry we want to find the role from.
|
||||
%return boolean - true if the enquiry can be deleted
|
||||
*/
|
||||
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;
|
||||
BEGIN
|
||||
IF NOT c_check_all_quotes%ISOPEN THEN
|
||||
OPEN c_check_all_quotes(p_enquiryid);
|
||||
END IF;
|
||||
|
||||
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;
|
||||
END can_enquiry_be_deleted;
|
||||
/*
|
||||
FUNCTION get_enquiry_status
|
||||
- This function returns the status of the enquiry provided
|
||||
@@ -204,7 +242,7 @@ 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);
|
||||
INSERT INTO enquiry_roles
|
||||
(enqu_id
|
||||
,prty_id
|
||||
@@ -216,12 +254,13 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
|
||||
,SYSDATE
|
||||
,p_rolecode);
|
||||
|
||||
pl('set_enquiry_role:exit',$$plsql_line);
|
||||
RETURN TRUE;
|
||||
--
|
||||
-- EXCEPTION
|
||||
-- WHEN OTHERS THEN
|
||||
-- RETURN FALSE;
|
||||
-- RAISE;
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
pl('set_enquiry_role:EXCEPTION:'||SQLERRM,$$plsql_line);
|
||||
RAISE;
|
||||
END set_enquiry_role;
|
||||
--
|
||||
|
||||
@@ -239,6 +278,7 @@ 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);
|
||||
|
||||
INSERT INTO enquiry_roles
|
||||
(enqu_id
|
||||
@@ -253,11 +293,14 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
|
||||
,p_rolecode
|
||||
,p_description);
|
||||
|
||||
pl('set_enquiry_role:exit',$$plsql_line);
|
||||
|
||||
RETURN TRUE;
|
||||
--
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
RETURN FALSE;
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
pl('set_enquiry_role:EXCEPTION:'||SQLERRM,$$plsql_line);
|
||||
RAISE;
|
||||
END set_enquiry_role;
|
||||
--
|
||||
/*
|
||||
@@ -531,5 +574,91 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
|
||||
|
||||
END calc_meter_reqs;
|
||||
|
||||
FUNCTION show_qmax(p_enty_code enquiry_types.code%TYPE
|
||||
,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 IS
|
||||
l_return BOOLEAN := TRUE;
|
||||
l_required_mesc_enquiry BOOLEAN;
|
||||
l_existing_mesc_enquiry BOOLEAN;
|
||||
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);
|
||||
|
||||
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
|
||||
BEGIN
|
||||
SELECT NULL
|
||||
INTO l_dummy
|
||||
FROM data_item_roles
|
||||
WHERE enty_code = p_enty_code
|
||||
AND field_name = 'REQUIRED_MESC_CODE'
|
||||
AND substr(condition
|
||||
,1
|
||||
,1) <> 'H';
|
||||
|
||||
l_required_mesc_enquiry := TRUE;
|
||||
EXCEPTION
|
||||
WHEN no_data_found THEN
|
||||
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);
|
||||
l_return := FALSE;
|
||||
ELSE
|
||||
BEGIN
|
||||
SELECT NULL
|
||||
INTO l_dummy
|
||||
FROM data_item_roles
|
||||
WHERE enty_code = p_enty_code
|
||||
AND field_name = 'EXISTING_MESC_CODE'
|
||||
AND substr(condition
|
||||
,1
|
||||
,1) <> 'H';
|
||||
l_existing_mesc_enquiry := TRUE;
|
||||
EXCEPTION
|
||||
WHEN no_data_found THEN
|
||||
pl('show_qmax:NOT EXISTING MESC ENQUIRY',$$PLSQL_LINE);
|
||||
l_existing_mesc_enquiry := FALSE;
|
||||
END;
|
||||
|
||||
IF l_existing_mesc_enquiry
|
||||
AND ((nvl(p_existing_metr_code
|
||||
,'OTHER') <> 'OTHER') OR
|
||||
(nvl(p_existing_metr_code
|
||||
,'OTHER') = 'OTHER' AND
|
||||
nvl(p_existing_mesc_code
|
||||
,'OTHER') <> 'OTHER')) THEN
|
||||
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);
|
||||
RETURN l_return;
|
||||
|
||||
END show_qmax;
|
||||
END mip_enquiry;
|
||||
/
|
||||
|
||||
Reference in New Issue
Block a user