2023 lines
85 KiB
Plaintext
2023 lines
85 KiB
Plaintext
CREATE OR REPLACE PACKAGE BODY efnow210$intz IS
|
|
--
|
|
--
|
|
--
|
|
g_base_package_name CONSTANT VARCHAR2(30) := 'efnow210$';
|
|
g_package_name CONSTANT VARCHAR2(30) := g_base_package_name||'intz';
|
|
g_title CONSTANT VARCHAR2(100) := caco_utilities.get_module_text(3800);
|
|
g_boolean BOOLEAN;
|
|
--
|
|
PROCEDURE page_head IS
|
|
BEGIN
|
|
--
|
|
htp.p(' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">');
|
|
htp.p(' <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">');
|
|
--
|
|
wsgl.openpagehead(g_title);
|
|
wsgl.metatag;
|
|
htp.p(' <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">' ||
|
|
chr(10));
|
|
htp.p(' <link rel=stylesheet HREF="caco_system.css?p_type=content" >' ||
|
|
chr(10));
|
|
htp.p(' <link rel="stylesheet" media="all" type="text/css" href="' || g_package_name || '.css" />' || chr(10));
|
|
--
|
|
htp.p(' <script type="text/javascript" src="' || g_package_name ||
|
|
'.js"></script>');
|
|
--
|
|
htp.p(wsgjsl.openscript);
|
|
wsgjsl.output_invoke_cal_js(g_base_package_name||'intr'
|
|
,'scrollbars=no,resizable=no,width=320,height=350');
|
|
htp.p(wsgjsl.closescript);
|
|
--
|
|
wsgl.closepagehead;
|
|
wsgl.openpagebody(FALSE);
|
|
htp.p(caco_system.menu);
|
|
--
|
|
htp.p('<div style="margin:0px 15px 0px 0px;">');
|
|
htp.p('<div>');
|
|
htp.HEADER(nsize => 1
|
|
,cheader => g_title);
|
|
--
|
|
END page_head;
|
|
--
|
|
FUNCTION display_message (p_error_number IN VARCHAR2
|
|
,p_error_text IN VARCHAR2 DEFAULT NULL
|
|
,p_substitution_list IN caco_utilities.g_t_substitution_list DEFAULT caco_utilities.c_empty_substitution_list
|
|
,p_error_type IN VARCHAR2
|
|
) RETURN BOOLEAN IS
|
|
--
|
|
v_message exception_messages.message%TYPE;
|
|
v_exme_type exception_messages.exme_type%TYPE;
|
|
--
|
|
l_return BOOLEAN;
|
|
--
|
|
BEGIN
|
|
--
|
|
IF p_error_type = wsgl.MESS_ERROR THEN
|
|
--
|
|
l_return := FALSE;
|
|
--
|
|
IF p_error_text IS NOT NULL THEN
|
|
--
|
|
v_message := p_error_text;
|
|
--
|
|
ELSE
|
|
--
|
|
caco_utilities.get_exception_message(p_exception_number => p_error_number
|
|
,p_message => v_message
|
|
,p_exme_type => v_exme_type
|
|
,p_substitution_list => p_substitution_list);
|
|
--
|
|
END IF;
|
|
--
|
|
ELSE
|
|
--
|
|
l_return := TRUE;
|
|
--
|
|
IF p_error_text IS NOT NULL THEN
|
|
--
|
|
v_message := p_error_text;
|
|
--
|
|
ELSE
|
|
--
|
|
v_message := caco_utilities.get_module_text(p_text_number => p_error_number);
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
wsgl.displaymessage( p_error_type
|
|
, v_message
|
|
, g_title
|
|
, NULL
|
|
);
|
|
--
|
|
RETURN l_return;
|
|
--
|
|
END display_message;
|
|
--
|
|
FUNCTION display_error (p_error_number IN VARCHAR2
|
|
,p_substitution_list IN caco_utilities.g_t_substitution_list DEFAULT caco_utilities.c_empty_substitution_list
|
|
) RETURN BOOLEAN IS
|
|
--
|
|
BEGIN
|
|
--
|
|
RETURN display_message(p_error_number => p_error_number
|
|
,p_substitution_list => p_substitution_list
|
|
,p_error_type => WSGL.MESS_ERROR
|
|
);
|
|
--
|
|
END display_error;
|
|
--
|
|
FUNCTION display_success (p_error_number IN VARCHAR2
|
|
,p_error_text IN VARCHAR2 DEFAULT NULL
|
|
,p_substitution_list IN caco_utilities.g_t_substitution_list DEFAULT caco_utilities.c_empty_substitution_list
|
|
) RETURN BOOLEAN IS
|
|
--
|
|
BEGIN
|
|
--
|
|
RETURN display_message(p_error_number => p_error_number
|
|
,p_error_text => p_error_text
|
|
,p_substitution_list => p_substitution_list
|
|
,p_error_type => WSGL.MESS_SUCCESS
|
|
);
|
|
--
|
|
END display_success;
|
|
--
|
|
FUNCTION display_warning (p_error_number IN VARCHAR2
|
|
,p_error_text IN VARCHAR2 DEFAULT NULL
|
|
,p_substitution_list IN caco_utilities.g_t_substitution_list DEFAULT caco_utilities.c_empty_substitution_list
|
|
) RETURN BOOLEAN IS
|
|
--
|
|
BEGIN
|
|
--
|
|
RETURN display_message(p_error_number => p_error_number
|
|
,p_error_text => p_error_text
|
|
,p_substitution_list => p_substitution_list
|
|
,p_error_type => WSGL.MESS_WARNING
|
|
);
|
|
--
|
|
END display_warning;
|
|
--
|
|
FUNCTION delete_interruption ( p_int_id IN interruptions.int_id%TYPE ) RETURN BOOLEAN IS
|
|
--
|
|
l_return BOOLEAN := TRUE;
|
|
--
|
|
BEGIN
|
|
--
|
|
-- Inner block to catch any exeptions an rollback transaction
|
|
--
|
|
BEGIN
|
|
--
|
|
DELETE int_conp_coca_vals iccv
|
|
WHERE iccv.int_id = p_int_id;
|
|
--
|
|
DELETE interruptions int
|
|
WHERE int.int_id = p_int_id;
|
|
--
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
--
|
|
ROLLBACK;
|
|
l_return := FALSE;
|
|
END;
|
|
--
|
|
RETURN l_return;
|
|
--
|
|
END delete_interruption;
|
|
--
|
|
FUNCTION return_func( p_coca_id IN contract_categories.coca_id%TYPE
|
|
, p_conp_id IN cont_network_points.conp_id%TYPE ) RETURN VARCHAR2 IS
|
|
--
|
|
l_return VARCHAR2(1000);
|
|
--
|
|
BEGIN
|
|
--
|
|
FOR rec IN (SELECT SUM(DECODE(SUBSTR(pars.code, length(pars.code)-2), 'MIN', cnppv.value, 0)) as con_min
|
|
,SUM(DECODE(SUBSTR(pars.code, length(pars.code)-2), 'MAX', cnppv.value, 0)) as con_max
|
|
FROM cont_net_point_param_vals cnppv
|
|
,contract_parameters copa
|
|
,parameters pars
|
|
,contract_categories coca
|
|
,categories cate
|
|
WHERE cnppv.copa_id = copa.copa_id
|
|
AND copa.pars_id = pars.pars_id
|
|
AND coca.cate_id = pars.cate_id
|
|
AND cate.cate_id = coca.cate_id
|
|
AND cate.interuptible = 'Y'
|
|
AND ( pars.code like '%.MAX'
|
|
OR pars.code like '%.MIN')
|
|
AND coca.coca_id = p_coca_id
|
|
AND cnppv.conp_id = p_conp_id
|
|
) LOOP
|
|
--
|
|
l_return := 'id="'||p_coca_id||':'||p_conp_id||'" onchange="return checklimit(this, this.value, '||rec.con_min||', '||rec.con_max||')"';
|
|
--
|
|
EXIT;
|
|
--
|
|
END LOOP;
|
|
--
|
|
RETURN l_return;
|
|
--
|
|
END return_func;
|
|
--
|
|
-- Public routines
|
|
--
|
|
PROCEDURE css IS
|
|
--
|
|
--
|
|
BEGIN
|
|
--
|
|
owa_util.mime_header('text/css'
|
|
,TRUE);
|
|
--
|
|
htp.p('
|
|
|
|
#custlistdiv {
|
|
width : 146px;
|
|
float : left;
|
|
overflow-x : scroll;
|
|
}
|
|
|
|
#nepolistdiv {
|
|
width : 147px;
|
|
float : left;
|
|
overflow-x : scroll;
|
|
}
|
|
|
|
#iccvDiv {
|
|
overflow-x : scroll;
|
|
overflow-y : hidden;
|
|
}
|
|
|
|
* html #iccvDiv {
|
|
width : 100%;
|
|
}
|
|
|
|
* html body centrecontent{ /*IE6 hack*/
|
|
padding: 175px 0 45px 0; /*Set value to (HeightOfTopFrameDiv 0 HeightOfBottomFrameDiv 0)*/
|
|
}
|
|
|
|
.custlist {
|
|
border-left-width : 1px;
|
|
border-left-style : solid;
|
|
border-top-width : 1px;
|
|
border-top-style : solid;
|
|
border-bottom-width : 1px;
|
|
border-bottom-style : solid;
|
|
}
|
|
|
|
.custnepo {
|
|
border-top-width : 1px;
|
|
border-top-style : solid;
|
|
border-bottom-width : 1px;
|
|
border-bottom-style : solid;
|
|
}
|
|
|
|
.custnepoth {
|
|
background-color : #D9D9D9;
|
|
text-align : center;
|
|
width : 165px;
|
|
border-left-width : 1px;
|
|
border-left-style : solid;
|
|
border-left-color : #F21C0A;
|
|
border-right-width : 1px;
|
|
border-right-style : solid;
|
|
border-right-color : #F21C0A;
|
|
border-top-width : 1px;
|
|
border-top-style : solid;
|
|
border-top-color : #F21C0A;
|
|
border-bottom-width : 1px;
|
|
border-bottom-style : solid;
|
|
border-bottom-color : #F21C0A;
|
|
font-weight : normal;
|
|
height : 48px;
|
|
}
|
|
|
|
.custnepotr1 {
|
|
background-color : #FFFFFF;
|
|
color : #000000;
|
|
text-shadow : none;
|
|
text-decoration : none;
|
|
border-style : none;
|
|
width : 165px;
|
|
height : 16px;
|
|
padding : 0px;
|
|
margin : 0px;
|
|
}
|
|
|
|
.custnepotr2 {
|
|
background-color : #F5F5F5;
|
|
color : #000000;
|
|
text-shadow : none;
|
|
text-decoration : none;
|
|
border-style : none;
|
|
width : 165px;
|
|
height : 16px;
|
|
padding : 0px;
|
|
margin : 0px;
|
|
}
|
|
|
|
.iccvTable {
|
|
border : 1px solid;
|
|
}
|
|
|
|
.iccvTable tr {
|
|
height: 22px;
|
|
}
|
|
|
|
.iccvTH {
|
|
background-color : #D9D9D9;
|
|
text-align : center;
|
|
font-weight : normal;
|
|
border-left-width : 1px;
|
|
border-left-style : solid;
|
|
border-left-color : #F21C0A;
|
|
border-right-width : 1px;
|
|
border-right-style : solid;
|
|
border-right-color : #F21C0A;
|
|
border-top-width : 1px;
|
|
border-top-style : solid;
|
|
border-top-color : #F21C0A;
|
|
border-bottom-width : 1px;
|
|
border-bottom-style : solid;
|
|
border-bottom-color : #F21C0A;
|
|
height : 24px;
|
|
white-space : nowrap;
|
|
overflow : hidden;
|
|
}
|
|
|
|
.iccvtr1 {
|
|
background-color : #D9D9D9;
|
|
text-align : center;
|
|
font-weight : normal;
|
|
border-left-width : 1px;
|
|
border-left-style : solid;
|
|
border-left-color : #F21C0A;
|
|
border-right-width : 1px;
|
|
border-right-style : solid;
|
|
border-right-color : #F21C0A;
|
|
border-top-width : 0px;
|
|
border-top-style : solid;
|
|
border-top-color : #F21C0A;
|
|
border-bottom-width : 0px;
|
|
border-bottom-style : solid;
|
|
border-bottom-color : #F21C0A;
|
|
height : 24px;
|
|
white-space : nowrap;
|
|
overflow : hidden;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.iccvinput1 {
|
|
width : 161px;
|
|
text-align : right;
|
|
padding-right : 5px;
|
|
}
|
|
|
|
.iccvinputd {
|
|
width : 161px;
|
|
text-align : right;
|
|
padding-right : 5px;
|
|
background-color : #D9D9D9;
|
|
border-width: 0px;
|
|
}
|
|
|
|
.iccvinput2 {
|
|
width : 161px;
|
|
text-align : left;
|
|
padding-left : 5px;
|
|
}
|
|
|
|
');
|
|
--
|
|
END;
|
|
--
|
|
PROCEDURE js IS
|
|
--
|
|
--
|
|
BEGIN
|
|
--
|
|
owa_util.mime_header('application/x-javascript'
|
|
,TRUE);
|
|
--
|
|
htp.p('var formmodified = false;
|
|
function fieldFocus(obj) {
|
|
obj.focus();
|
|
}
|
|
function checkAll( field )
|
|
{
|
|
formmodified=true;
|
|
var i=0
|
|
var j=-1
|
|
var x=new Array()
|
|
while (document.getElementById(field+"_"+i)!=null){
|
|
x[i]= document.getElementById(field+"_"+i)
|
|
if (document.getElementById(field+"_"+i).type == "checkbox" && j==-1) {
|
|
j=i;
|
|
}
|
|
i++
|
|
}
|
|
if (j!=-1) {
|
|
if (document.getElementById("p_"+field+"_"+j).value == "N") {
|
|
for (i = 0; i < x.length; i++)
|
|
{
|
|
|
|
x[i].checked = true;
|
|
|
|
if (document.getElementById(field+"_"+i).type == "checkbox"){
|
|
|
|
if (document.getElementById("p_"+field+"_"+i)!=null){
|
|
document.getElementById("p_"+field+"_"+i).value = "Y";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
for (i = 0; i < x.length; i++)
|
|
{
|
|
x[i].checked = false;
|
|
|
|
if (document.getElementById(field+"_"+i).type == "checkbox"){
|
|
|
|
if (document.getElementById("p_"+field+"_"+i)!=null){
|
|
document.getElementById("p_"+field+"_"+i).value = "N";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function changeCheckBox( objName ) {
|
|
formmodified=true;
|
|
var obj = document.getElementById(objName);
|
|
if (obj.value == "N") {
|
|
obj.value = "Y";
|
|
}
|
|
else
|
|
{
|
|
obj.value = "N";
|
|
}
|
|
}
|
|
function checklimit(obj, objval, minval, maxval) {
|
|
formmodified=true;
|
|
var len = objval.length;
|
|
var strCheck = "0123456789";
|
|
var tmpstr = "";
|
|
for(i=0; i < len; i++)
|
|
if (strCheck.indexOf(objval.charAt(i))!=-1)
|
|
tmpstr += objval.charAt(i);
|
|
|
|
obj.value = tmpstr;
|
|
|
|
var error ="'||caco_utilities.get_module_text(3583)||': '||caco_utilities.get_module_text(915)||'";
|
|
if ( (obj.value.length < 1) || (obj.value < minval) || (obj.value > maxval)) { error = error.replace(/<p1> /,"'||caco_utilities.get_module_text(3803)||'"); error = error.replace(/<p2>/,minval); error = error.replace(/<p3>/,maxval); setTimeout(function(){fieldFocus(obj)}, 100); alert(error); return false; }
|
|
else {thousandSeparator(obj.id,obj.value); return true;};
|
|
}
|
|
|
|
function confirmmodified()
|
|
{
|
|
if (formmodified) {
|
|
alert("'||caco_utilities.get_module_text(924)||'");
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
function checkform()
|
|
{
|
|
// check all elements with name p_iccv_val that are not hidden
|
|
var x=document.getElementsByName("p_iccv_val")
|
|
var i=0
|
|
var retval=true;
|
|
for (i=0; i < x.length; i++)
|
|
{
|
|
if (x[i].type != "hidden")
|
|
{
|
|
x[i].focus();
|
|
if (! x[i].onchange()) {
|
|
retval=false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (retval)
|
|
{
|
|
formmodified=false;
|
|
}
|
|
return retval;
|
|
}
|
|
');
|
|
caco_utilities.thousand_separator_js;
|
|
--
|
|
END js;
|
|
--
|
|
FUNCTION check_contract_span ( p_start_date IN DATE
|
|
, p_end_date IN DATE
|
|
) RETURN BOOLEAN IS
|
|
--
|
|
l_return BOOLEAN := TRUE;
|
|
l_empty_substitution_list caco_utilities.g_t_substitution_list;
|
|
--
|
|
BEGIN
|
|
--
|
|
IF p_start_date IS NOT NULL
|
|
AND p_end_date IS NOT NULL THEN
|
|
--
|
|
FOR cont IN ( SELECT cust_id, COUNT(*) AS num
|
|
FROM contracts cont
|
|
WHERE EXISTS (
|
|
SELECT NULL -- only interruptible contracts
|
|
FROM contract_categories coca
|
|
,categories cate
|
|
WHERE coca.cate_id = cate.cate_id
|
|
AND cate.interuptible = 'Y'
|
|
AND coca.cont_id = cont.cont_id
|
|
)
|
|
AND (cont.valid_from BETWEEN p_start_date AND p_end_date
|
|
OR cont.valid_until BETWEEN p_start_date AND p_end_date)
|
|
AND cont.status = 'O'
|
|
HAVING COUNT(*) > 1
|
|
GROUP BY cust_id
|
|
) LOOP
|
|
--
|
|
l_return := display_error(-20541, l_empty_substitution_list);
|
|
--
|
|
EXIT;
|
|
--
|
|
END LOOP;
|
|
--
|
|
IF l_return THEN
|
|
--
|
|
FOR x IN ( SELECT TO_NUMBER(TO_CHAR(p_start_date,'YYYY')) + DECODE(SIGN(TO_NUMBER(TO_CHAR(p_start_date,'MM'))-6),-1,-1,0,-1,0) AS start_year
|
|
,TO_NUMBER(TO_CHAR(p_end_date,'YYYY'))+DECODE(SIGN(TO_NUMBER(TO_CHAR(p_end_date,'MM'))-6),-1,-1,0,-1,0) AS end_year
|
|
FROM DUAL
|
|
) LOOP
|
|
--
|
|
IF x.start_year <> x.end_year THEN
|
|
--
|
|
l_return := display_error(-20542, l_empty_substitution_list);
|
|
--
|
|
END IF;
|
|
--
|
|
END LOOP;
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
RETURN l_return;
|
|
--
|
|
END check_contract_span;
|
|
--
|
|
PROCEDURE check_interruption_limits ( p_int_id IN interruptions.int_id%TYPE
|
|
, p_action IN VARCHAR2
|
|
, p_start_date IN DATE
|
|
, p_end_date IN DATE
|
|
) IS
|
|
--
|
|
l_empty_substitution_list caco_utilities.g_t_substitution_list;
|
|
l_return BOOLEAN;
|
|
l_exit BOOLEAN := FALSE;
|
|
--
|
|
BEGIN
|
|
--
|
|
IF p_end_date IS NULL AND p_action = 'I' THEN
|
|
--
|
|
l_return := display_warning(p_error_number => 3845
|
|
,p_substitution_list => l_empty_substitution_list
|
|
);
|
|
--
|
|
END IF;
|
|
--
|
|
--
|
|
-- Check the values
|
|
--
|
|
FOR int_vals IN (SELECT TO_CHAR(inte.gas_day_start
|
|
,'YYYY') + DECODE(SIGN(TO_NUMBER(TO_CHAR(inte.gas_day_start
|
|
,'MM')) - 7)
|
|
,-1
|
|
,0
|
|
,0
|
|
,0
|
|
,1) gas_year
|
|
,cate.name category_name
|
|
,conp.conp_id
|
|
,itcp.max_interruptions
|
|
,itcp.max_interruption_days
|
|
,itcp.max_interruption_length
|
|
,COUNT(DISTINCT(inte.int_id)) no_of_interruptions
|
|
,SUM((inte.gas_day_end - inte.gas_day_start)+1) accumulated_time
|
|
FROM interruptions inte
|
|
,int_conp_coca_vals iccp
|
|
,inty_conp_params itcp
|
|
,interruption_types inty
|
|
,cont_network_points conp
|
|
,network_points nepo
|
|
,contract_categories coca
|
|
,categories cate
|
|
WHERE inte.int_id = iccp.int_id
|
|
AND iccp.coca_id = coca.coca_id
|
|
AND coca.cate_id = cate.cate_id
|
|
AND iccp.conp_id = conp.conp_id
|
|
AND nepo.nepo_id = conp.nepo_id
|
|
AND itcp.conp_id = conp.conp_id
|
|
AND itcp.inty_id = inty.inty_id
|
|
AND inty.cate_id = cate.cate_id
|
|
AND iccp.send_to_customer = 'Y'
|
|
AND itcp.limits_enabled = 'Y'
|
|
AND inty.status = 'A'
|
|
AND TO_CHAR(inte.gas_day_start
|
|
,'YYYY') + decode(sign(to_number(to_char(inte.gas_day_start
|
|
,'MM')) - 7)
|
|
,-1
|
|
,-1
|
|
,0
|
|
,1
|
|
,0) = TO_NUMBER(TO_CHAR(p_start_date,'YYYY')) + LEAST(SIGN(TO_NUMBER(TO_CHAR(p_start_date,'MM'))-7),0)
|
|
AND (iccp.coca_id, iccp.conp_id) IN ( SELECT iccp_sq1.coca_id
|
|
,iccp_sq1.conp_id
|
|
FROM int_conp_coca_vals iccp_sq1
|
|
WHERE iccp_sq1.int_id = p_int_id
|
|
AND iccp_sq1.send_to_customer = 'Y')
|
|
GROUP BY cate.NAME
|
|
,conp.conp_id
|
|
,itcp.max_interruptions
|
|
,itcp.max_interruption_days
|
|
,itcp.max_interruption_length
|
|
,TO_CHAR(inte.gas_day_start
|
|
,'YYYY') + DECODE(SIGN(TO_NUMBER(TO_CHAR(inte.gas_day_start
|
|
,'MM')) - 7)
|
|
,-1
|
|
,0
|
|
,0
|
|
,0
|
|
,1)) LOOP
|
|
--
|
|
IF int_vals.max_interruptions < int_vals.no_of_interruptions THEN
|
|
--
|
|
l_return := display_warning(p_error_number => 3846
|
|
,p_substitution_list => l_empty_substitution_list
|
|
);
|
|
--
|
|
l_exit := TRUE;
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_end_date IS NOT NULL
|
|
AND int_vals.max_interruption_days < int_vals.accumulated_time THEN
|
|
--
|
|
l_return := display_warning(p_error_number => 3847
|
|
,p_substitution_list => l_empty_substitution_list
|
|
);
|
|
--
|
|
l_exit := TRUE;
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_end_date IS NOT NULL
|
|
AND int_vals.max_interruption_length < ((p_end_date - p_start_date)+1) THEN
|
|
--
|
|
l_return := display_warning(p_error_number => 3856 -- The maximum interruption length exceeded for one or more categories
|
|
,p_substitution_list => l_empty_substitution_list
|
|
);
|
|
--
|
|
l_exit := TRUE;
|
|
--
|
|
END IF;
|
|
--
|
|
IF l_exit THEN
|
|
--
|
|
EXIT;
|
|
--
|
|
END IF;
|
|
--
|
|
END LOOP;
|
|
--
|
|
END check_interruption_limits;
|
|
--
|
|
FUNCTION insert_ints ( p_int_id IN OUT interruptions.int_id%TYPE
|
|
, p_int_code IN interruptions.name%TYPE
|
|
, p_int_start IN interruptions.gas_day_start%TYPE
|
|
, p_int_end IN interruptions.gas_day_end%TYPE
|
|
, p_int_notes IN interruptions.notes%TYPE
|
|
) RETURN BOOLEAN IS
|
|
--
|
|
l_success BOOLEAN := TRUE;
|
|
l_conf_id confirmations.conf_id%TYPE;
|
|
--
|
|
CURSOR cur_conf ( p_cont_id IN contracts.cont_id%TYPE
|
|
) IS
|
|
SELECT conf.conf_id
|
|
FROM confirmations conf
|
|
WHERE conf.cont_id = p_cont_id
|
|
AND conf.gas_day <= p_int_start
|
|
AND conf.confirmation_type = 'CO'
|
|
AND conf.approved = 'Y'
|
|
ORDER BY gas_day DESC
|
|
,created_on DESC;
|
|
--
|
|
BEGIN
|
|
--
|
|
INSERT INTO interruptions
|
|
( name
|
|
, gas_day_start
|
|
, gas_day_end
|
|
, notes
|
|
)
|
|
VALUES
|
|
( p_int_code
|
|
, p_int_start
|
|
, p_int_end
|
|
, p_int_notes
|
|
)
|
|
RETURNING int_id INTO p_int_id;
|
|
--
|
|
FOR cont IN ( SELECT cont.cont_id
|
|
FROM contracts cont
|
|
WHERE cont.status = 'O'
|
|
AND p_int_start BETWEEN cont.valid_from AND cont.valid_until
|
|
AND EXISTS ( SELECT NULL
|
|
FROM cont_net_point_param_vals cnppv
|
|
,contract_parameters copa
|
|
,parameters pars
|
|
,contract_categories coca
|
|
,categories cate
|
|
WHERE cnppv.copa_id = copa.copa_id
|
|
AND copa.cont_id = cont.cont_id
|
|
AND copa.pars_id = pars.pars_id
|
|
AND coca.cate_id = pars.cate_id
|
|
AND coca.cont_id = cont.cont_id
|
|
AND cate.cate_id = coca.cate_id
|
|
AND cate.interuptible = 'Y'
|
|
AND cnppv.value > 0
|
|
AND pars.code like '%.MAX'
|
|
)
|
|
) LOOP
|
|
--
|
|
-- lookup the last commercial confirmation prior to the interruption
|
|
--
|
|
OPEN cur_conf(p_cont_id => cont.cont_id);
|
|
FETCH cur_conf
|
|
INTO l_conf_id;
|
|
--
|
|
IF cur_conf%NOTFOUND THEN
|
|
--
|
|
l_conf_id := NULL;
|
|
--
|
|
END IF;
|
|
--
|
|
CLOSE cur_conf;
|
|
--
|
|
FOR cnpcv IN (SELECT sq1.coca_id, sq1.conp_id, sq1.value, sq2.conf_val
|
|
FROM
|
|
(SELECT coca.coca_id
|
|
,cnppv.conp_id
|
|
,cnppv.value
|
|
FROM cont_net_point_param_vals cnppv
|
|
,contract_parameters copa
|
|
,parameters pars
|
|
,contract_categories coca
|
|
,categories cate
|
|
WHERE cnppv.copa_id = copa.copa_id
|
|
AND copa.cont_id = cont.cont_id
|
|
AND copa.pars_id = pars.pars_id
|
|
AND coca.cate_id = pars.cate_id
|
|
AND coca.cont_id = cont.cont_id
|
|
AND cate.cate_id = coca.cate_id
|
|
AND cate.interuptible = 'Y'
|
|
AND pars.code like '%.MAX') sq1
|
|
, (SELECT cnpcv.value conf_val
|
|
, cnpcv.coca_id
|
|
, cnpcv.conp_id
|
|
FROM conf_net_point_cat_vals cnpcv
|
|
WHERE cnpcv.conf_id = l_conf_id
|
|
) sq2
|
|
WHERE sq1.coca_id = sq2.coca_id (+)
|
|
AND sq1.conp_id = sq2.conp_id (+)
|
|
AND EXISTS (SELECT NULL
|
|
FROM cont_net_point_param_vals cnppv
|
|
,contract_parameters copa
|
|
,parameters pars
|
|
,contract_categories coca
|
|
,categories cate
|
|
WHERE cnppv.copa_id = copa.copa_id
|
|
AND copa.cont_id = cont.cont_id
|
|
AND copa.pars_id = pars.pars_id
|
|
AND coca.cate_id = pars.cate_id
|
|
AND coca.cont_id = cont.cont_id
|
|
AND cate.cate_id = coca.cate_id
|
|
AND cate.interuptible = 'Y'
|
|
AND cnppv.value > 0
|
|
AND pars.code like '%.MAX'
|
|
AND cnppv.conp_id = sq1.conp_id
|
|
)
|
|
) LOOP
|
|
--
|
|
INSERT INTO int_conp_coca_vals ( int_id
|
|
,coca_id
|
|
,conp_id
|
|
,contracted_value
|
|
,interrupted_value
|
|
,confirmed_value
|
|
,send_to_customer
|
|
)
|
|
VALUES
|
|
(p_int_id
|
|
,cnpcv.coca_id
|
|
,cnpcv.conp_id
|
|
,cnpcv.value
|
|
,cnpcv.value
|
|
,cnpcv.conf_val
|
|
,'N'
|
|
);
|
|
--
|
|
END LOOP; --cnpcv
|
|
--
|
|
END LOOP; --cont
|
|
--
|
|
RETURN l_success;
|
|
--
|
|
END insert_ints;
|
|
--
|
|
PROCEDURE action ( p_action IN VARCHAR2
|
|
, p_int_id IN interruptions.int_id%TYPE DEFAULT NULL
|
|
, p_int_code IN VARCHAR2 DEFAULT NULL
|
|
, p_int_start IN VARCHAR2 DEFAULT NULL
|
|
, p_int_end IN VARCHAR2 DEFAULT NULL
|
|
, p_int_notes IN interruptions.notes%TYPE DEFAULT NULL
|
|
, p_iccv_id IN owa_util.vc_arr DEFAULT g_vc_arr
|
|
, p_iccv_val IN owa_util.vc_arr DEFAULT g_vc_arr
|
|
, p_checkbox IN owa_util.vc_arr DEFAULT g_vc_arr
|
|
, p_intm_id IN interruption_templates.intm_id%TYPE DEFAULT NULL
|
|
) IS
|
|
--
|
|
c_create CONSTANT VARCHAR2(30) := 'create';
|
|
c_populate CONSTANT VARCHAR2(30) := 'populate';
|
|
c_edit CONSTANT VARCHAR2(30) := 'edit';
|
|
c_query CONSTANT VARCHAR2(30) := 'query';
|
|
c_delete CONSTANT VARCHAR2(30) := 'delete';
|
|
c_template CONSTANT VARCHAR2(30) := 'template';
|
|
--
|
|
l_success BOOLEAN := TRUE;
|
|
--
|
|
l_disabled VARCHAR2(8);
|
|
l_int_id interruptions.int_id%TYPE;
|
|
--
|
|
lr_interruption interruptions%ROWTYPE;
|
|
l_empty_substitution_list caco_utilities.g_t_substitution_list;
|
|
l_dummy_date DATE;
|
|
--
|
|
CURSOR cur_grid ( p_int_id IN interruptions.int_id%TYPE ) IS
|
|
SELECT iccv.iccv_id
|
|
, cust.code cust
|
|
, iccv.conp_id
|
|
, iccv.coca_id
|
|
, coca.cate_id
|
|
, iccv.send_to_customer
|
|
, iccv.contracted_value
|
|
, iccv.interrupted_value
|
|
, iccv.confirmed_value
|
|
, nepo.name||':'||cust.name neponame
|
|
, cate.display_sequence
|
|
,ROW_NUMBER() OVER (PARTITION BY cate.name ORDER BY cont.contract_number,cust.code,nepo.code NULLS LAST) grid_row
|
|
FROM int_conp_coca_vals iccv
|
|
,contract_categories coca
|
|
,categories cate
|
|
,cont_network_points conp
|
|
,network_points nepo
|
|
,contracts cont
|
|
,customers cust
|
|
WHERE iccv.int_id = p_int_id
|
|
AND iccv.coca_id = coca.coca_id
|
|
AND coca.cate_id = cate.cate_id
|
|
AND iccv.conp_id = conp.conp_id
|
|
AND coca.cont_id = cont.cont_id
|
|
AND conp.nepo_id = nepo.nepo_id
|
|
AND cont.cust_id = cust.cust_id
|
|
ORDER BY cont.contract_number
|
|
,cust.code
|
|
,nepo.code
|
|
,cate.display_sequence;
|
|
--
|
|
lr_grid_row cur_grid%ROWTYPE;
|
|
--
|
|
TYPE r_tot IS RECORD ( int_qty NUMBER
|
|
, con_qty NUMBER
|
|
);
|
|
TYPE t_tot IS TABLE OF r_tot INDEX BY BINARY_INTEGER;
|
|
--
|
|
lt_tot t_tot;
|
|
lt_empty_tot t_tot;
|
|
--
|
|
l_grid_disabled BOOLEAN := FALSE;
|
|
l_end_date_disabled BOOLEAN := FALSE;
|
|
--
|
|
-- array to contain p_iccv_val array contents with no thousand separators
|
|
l_val_no_thou_sep owa_util.vc_arr;
|
|
--
|
|
BEGIN
|
|
--
|
|
-- security check
|
|
--
|
|
IF NOT caco_security.security_check(g_package_name) THEN
|
|
RETURN;
|
|
END IF;
|
|
--
|
|
-- remove thousand separators from p_iccv_val array
|
|
--
|
|
l_val_no_thou_sep := caco_utilities.thousand_separated_to_char(p_iccv_val);
|
|
--
|
|
-- Output standard page header
|
|
--
|
|
page_head;
|
|
--
|
|
-- Check Supplied Parameters
|
|
--
|
|
IF (p_action = c_create)
|
|
OR (p_action = c_populate)
|
|
OR (p_action = c_edit AND p_int_id IS NOT NULL)
|
|
OR (p_action = c_query AND p_int_id IS NOT NULL)
|
|
OR (p_action = c_template AND p_intm_id IS NOT NULL AND p_int_id IS NOT NULL)
|
|
OR (p_action = c_delete AND p_int_id IS NOT NULL) THEN
|
|
--
|
|
-- if we are editing an existing interruption, get the details
|
|
--
|
|
IF p_action IN (c_edit, c_query, c_populate, c_template, c_delete) THEN
|
|
--
|
|
l_int_id := p_int_id;
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_action = c_template THEN
|
|
--
|
|
htp.p('<script type="text/javascript">formmodified=true;</script>');
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_action = c_edit THEN
|
|
--
|
|
SELECT intr.*
|
|
INTO lr_interruption
|
|
FROM interruptions intr
|
|
WHERE intr.int_id = l_int_id;
|
|
--
|
|
IF p_int_start IS NULL THEN
|
|
--
|
|
l_empty_substitution_list(1) := caco_utilities.get_module_text(2489);
|
|
l_success := display_error(-20100, l_empty_substitution_list);
|
|
--
|
|
ELSIF p_int_start IS NOT NULL AND l_success THEN
|
|
--
|
|
BEGIN
|
|
--
|
|
l_dummy_date := TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'));
|
|
--
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
--
|
|
l_empty_substitution_list(1) := caco_utilities.get_module_text(2489);
|
|
l_success := display_error(-20102, l_empty_substitution_list);
|
|
--
|
|
END;
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_int_start IS NOT NULL AND l_success THEN
|
|
--
|
|
IF TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) < TRUNC(SYSDATE - (cout_system_configuration.get_configuration_item('GAS_DAY_OFFSET')/24))
|
|
AND TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) < lr_interruption.gas_day_start THEN
|
|
--
|
|
l_empty_substitution_list(1) := p_int_start;
|
|
l_success := display_error(-20545, l_empty_substitution_list);
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_int_end IS NOT NULL AND l_success THEN
|
|
--
|
|
BEGIN
|
|
--
|
|
l_dummy_date := TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'));
|
|
--
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
--
|
|
l_empty_substitution_list(1) := caco_utilities.get_module_text(2490);
|
|
l_success := display_error(-20102, l_empty_substitution_list);
|
|
--
|
|
END;
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_int_end IS NOT NULL AND l_success THEN
|
|
--
|
|
IF TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) < TRUNC(SYSDATE - (cout_system_configuration.get_configuration_item('GAS_DAY_OFFSET')/24)) THEN
|
|
--
|
|
l_empty_substitution_list(1) := p_int_end;
|
|
l_success := display_error(-20545, l_empty_substitution_list);
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_int_start IS NOT NULL
|
|
AND p_int_end IS NOT NULL
|
|
AND l_success THEN
|
|
--
|
|
IF TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) > TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) THEN
|
|
--
|
|
l_empty_substitution_list(1) := p_int_end;
|
|
l_empty_substitution_list(2) := p_int_start;
|
|
l_success := display_error(-20509, l_empty_substitution_list);
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
-- Check interruption doesn't span more than one contract period
|
|
--
|
|
IF l_success THEN
|
|
--
|
|
l_success := check_contract_span ( p_start_date => TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'))
|
|
, p_end_date => TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'))
|
|
);
|
|
--
|
|
END IF;
|
|
--
|
|
-- Check overlaps
|
|
--
|
|
IF l_success THEN
|
|
--
|
|
-- Now check for overlap
|
|
--
|
|
FOR existing_interruption IN ( SELECT int.name
|
|
FROM interruptions int
|
|
WHERE (int.gas_day_start BETWEEN TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) AND NVL(TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')),int.gas_day_start)
|
|
OR NVL(int.gas_day_end, GREATEST(NVL(int.gas_day_start, NVL(TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')),TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')))))) BETWEEN TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) AND NVL(TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')),int.gas_day_start)
|
|
OR TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) BETWEEN int.gas_day_start AND NVL(int.gas_day_end,TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'))))
|
|
AND int.int_id <> p_int_id
|
|
) LOOP
|
|
--
|
|
l_empty_substitution_list(1) := existing_interruption.name;
|
|
l_success := display_error(-20540, l_empty_substitution_list);
|
|
EXIT;
|
|
--
|
|
END LOOP;
|
|
--
|
|
END IF;
|
|
--
|
|
-- Check for changed header attributes
|
|
--
|
|
IF l_success AND TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) <> NVL(lr_interruption.gas_day_start, TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'))+1) THEN
|
|
--
|
|
UPDATE interruptions i
|
|
SET i.gas_day_start = DECODE(p_int_start, NULL, NULL, TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')))
|
|
WHERE i.int_id = p_int_id;
|
|
--
|
|
END IF;
|
|
--
|
|
IF l_success AND TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) <> NVL(lr_interruption.gas_day_end, TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'))+1) THEN
|
|
--
|
|
UPDATE interruptions i
|
|
SET i.gas_day_end = DECODE(p_int_end, NULL, NULL, TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')))
|
|
WHERE i.int_id = p_int_id;
|
|
--
|
|
END IF;
|
|
--
|
|
IF l_success AND p_int_notes <> lr_interruption.notes THEN
|
|
--
|
|
UPDATE interruptions i
|
|
SET i.notes = p_int_notes
|
|
WHERE i.int_id = p_int_id;
|
|
--
|
|
END IF;
|
|
--
|
|
-- Now update the details
|
|
--
|
|
IF l_success THEN
|
|
--
|
|
FOR i IN 1..p_iccv_id.COUNT LOOP
|
|
--
|
|
UPDATE int_conp_coca_vals iccv
|
|
SET iccv.interrupted_value = l_val_no_thou_sep(i)
|
|
,iccv.send_to_customer = p_checkbox(i)
|
|
WHERE iccv.iccv_id = p_iccv_id(i);
|
|
--
|
|
END LOOP;
|
|
--
|
|
l_success := display_success( p_error_number => 0
|
|
, p_error_text => caco_utilities.get_module_text(3843)
|
|
, p_substitution_list => l_empty_substitution_list
|
|
);
|
|
--
|
|
END IF;
|
|
--
|
|
-- Check interruption limits
|
|
--
|
|
IF l_success THEN
|
|
--
|
|
check_interruption_limits ( p_int_id => p_int_id
|
|
, p_action => 'U'
|
|
, p_start_date => TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'))
|
|
, p_end_date => TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'))
|
|
);
|
|
--
|
|
END IF;
|
|
--
|
|
ELSIF p_action = c_populate THEN
|
|
--
|
|
-- validate parameters
|
|
--
|
|
IF p_int_code IS NULL THEN
|
|
--
|
|
l_empty_substitution_list(1) := caco_utilities.get_module_text(3801);
|
|
l_success := display_error(-20100, l_empty_substitution_list);
|
|
--
|
|
ELSE
|
|
--
|
|
FOR z IN (SELECT NULL
|
|
FROM interruptions intr
|
|
WHERE UPPER(intr.name) = UPPER(p_int_code)) LOOP
|
|
--
|
|
l_empty_substitution_list(1) := caco_utilities.get_module_text(3801);
|
|
l_success := display_error(-20501, l_empty_substitution_list);
|
|
--
|
|
EXIT;
|
|
--
|
|
END LOOP;
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_int_start IS NULL AND l_success THEN
|
|
--
|
|
l_empty_substitution_list(1) := caco_utilities.get_module_text(2489);
|
|
l_success := display_error(-20100, l_empty_substitution_list);
|
|
--
|
|
ELSIF p_int_start IS NOT NULL AND l_success THEN
|
|
--
|
|
BEGIN
|
|
--
|
|
l_dummy_date := TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'));
|
|
--
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
--
|
|
l_empty_substitution_list(1) := caco_utilities.get_module_text(2489);
|
|
l_success := display_error(-20102, l_empty_substitution_list);
|
|
--
|
|
END;
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_int_start IS NOT NULL AND l_success THEN
|
|
--
|
|
IF TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) < TRUNC(SYSDATE - (cout_system_configuration.get_configuration_item('GAS_DAY_OFFSET')/24)) THEN
|
|
--
|
|
l_empty_substitution_list(1) := p_int_start;
|
|
l_success := display_error(-20545, l_empty_substitution_list);
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_int_end IS NOT NULL AND l_success THEN
|
|
--
|
|
BEGIN
|
|
--
|
|
l_dummy_date := TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'));
|
|
--
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
--
|
|
l_empty_substitution_list(1) := caco_utilities.get_module_text(2490);
|
|
l_success := display_error(-20102, l_empty_substitution_list);
|
|
--
|
|
END;
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_int_end IS NOT NULL AND l_success THEN
|
|
--
|
|
IF TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) < TRUNC(SYSDATE - (cout_system_configuration.get_configuration_item('GAS_DAY_OFFSET')/24)) THEN
|
|
--
|
|
l_empty_substitution_list(1) := p_int_end;
|
|
l_success := display_error(-20545, l_empty_substitution_list);
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_int_start IS NOT NULL
|
|
AND p_int_end IS NOT NULL
|
|
AND l_success THEN
|
|
--
|
|
IF TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) > TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) THEN
|
|
--
|
|
l_empty_substitution_list(1) := p_int_end;
|
|
l_empty_substitution_list(2) := p_int_start;
|
|
l_success := display_error(-20509, l_empty_substitution_list);
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
-- Check interruption doesn't span more than one contract period
|
|
--
|
|
IF l_success THEN
|
|
--
|
|
l_success := check_contract_span ( p_start_date => TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'))
|
|
, p_end_date => TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'))
|
|
);
|
|
--
|
|
END IF;
|
|
--
|
|
IF l_success THEN
|
|
--
|
|
-- Now check for overlap
|
|
--
|
|
FOR existing_interruption IN ( SELECT int.name
|
|
FROM interruptions int
|
|
WHERE int.gas_day_start BETWEEN TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) AND NVL(TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')),int.gas_day_start)
|
|
OR NVL(int.gas_day_end, GREATEST(NVL(int.gas_day_start, NVL(TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')),TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')))))) BETWEEN TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) AND NVL(TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')),int.gas_day_start)
|
|
OR TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')) BETWEEN int.gas_day_start AND NVL(int.gas_day_end,TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')))
|
|
) LOOP
|
|
--
|
|
l_empty_substitution_list(1) := existing_interruption.name;
|
|
l_success := display_error(-20540, l_empty_substitution_list);
|
|
EXIT;
|
|
--
|
|
END LOOP;
|
|
--
|
|
END IF;
|
|
--
|
|
-- Check interruption limits
|
|
--
|
|
IF l_success THEN
|
|
--
|
|
check_interruption_limits ( p_int_id => p_int_id
|
|
, p_action => 'I'
|
|
, p_start_date => TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'))
|
|
, p_end_date => TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'))
|
|
);
|
|
--
|
|
END IF;
|
|
--
|
|
IF l_success THEN
|
|
--
|
|
-- Looks OK, create the details
|
|
--
|
|
l_success := insert_ints ( p_int_id => l_int_id
|
|
, p_int_code => p_int_code
|
|
, p_int_start => TO_DATE(p_int_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'))
|
|
, p_int_end => TO_DATE(p_int_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT'))
|
|
, p_int_notes => p_int_notes
|
|
);
|
|
--
|
|
l_success := display_success( p_error_number => 0
|
|
, p_error_text => caco_utilities.get_module_text(3844)
|
|
, p_substitution_list => l_empty_substitution_list
|
|
);
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
IF (p_action = c_edit)
|
|
OR (p_action = c_query)
|
|
OR (p_action = c_populate AND l_success)
|
|
OR (p_action = c_delete)
|
|
OR (p_action = c_template) THEN
|
|
--
|
|
l_disabled := 'readonly';
|
|
--
|
|
SELECT intr.*
|
|
INTO lr_interruption
|
|
FROM interruptions intr
|
|
WHERE intr.int_id = l_int_id;
|
|
--
|
|
-- IF p_action = c_query AND lr_interruption.gas_day_end < TRUNC(SYSDATE) THEN -- disabled grid once interruption started - on request of INT015
|
|
IF p_action = c_query AND lr_interruption.gas_day_start < (TRUNC(SYSDATE)+(cout_system_configuration.get_configuration_item('GAS_DAY_OFFSET')/24)) THEN
|
|
--
|
|
l_grid_disabled := TRUE;
|
|
--
|
|
END IF;
|
|
--
|
|
IF p_action = c_query AND lr_interruption.gas_day_end < (TRUNC(SYSDATE+(cout_system_configuration.get_configuration_item('GAS_DAY_OFFSET')/24))) THEN -- added INT015
|
|
--
|
|
l_end_date_disabled := TRUE;
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
-- now build the screen
|
|
--
|
|
IF p_action IN (c_create, c_populate, c_edit, c_query, c_template) THEN
|
|
--
|
|
htp.p('<form action="'||g_package_name||'.action" method="post" id="interruption" name="interruption" enctype="multipart/form-data">');
|
|
htp.p('<table>');
|
|
htp.p('<tr>');
|
|
htp.p('<td><b>'||caco_utilities.get_module_text(3801)||'*:</b></td>');
|
|
htp.p('<td><input '||l_disabled||' name="p_int_code" id="p_int_code" value="'||NVL(lr_interruption.name, p_int_code)||'" style="width: 160px;"></td>');
|
|
htp.p('<td style="width: 50px;"><b>'||caco_utilities.get_module_text(1151)||':</b></td>');
|
|
--
|
|
IF NOT l_grid_disabled THEN
|
|
--
|
|
htp.p('<td rowspan="3"><textarea name="p_int_notes" id="p_int_notes" rows="3" cols="35" wrap="VIRTUAL" onchange="formmodified=true;">'||NVL(lr_interruption.notes, p_int_notes)||'</textarea></td>');
|
|
--
|
|
ELSE
|
|
--
|
|
htp.p('<td rowspan="3"><textarea name="p_int_notes" readonly id="p_int_notes" rows="3" cols="35" wrap="VIRTUAL">'||NVL(lr_interruption.notes, p_int_notes)||'</textarea></td>');
|
|
--
|
|
END IF;
|
|
--
|
|
IF (p_action = c_edit)
|
|
OR (p_action = c_query)
|
|
OR (p_action = c_template)
|
|
OR (p_action = c_populate AND l_success) THEN
|
|
--
|
|
IF NOT l_grid_disabled THEN
|
|
--
|
|
htp.p('<td style="padding-left: 10px;"><input type="button" value="'||caco_utilities.get_module_text(3807)||'" onclick="location.href='''||caco_system.dad_path||g_package_name||'.load_template?p_int_id='||l_int_id||'''" /></td>');
|
|
--
|
|
ELSE
|
|
--
|
|
htp.p('<td style="padding-left: 10px;"><input type="button" disabled value="'||caco_utilities.get_module_text(3807)||'" onclick="location.href='''||caco_system.dad_path||g_package_name||'.load_template?p_int_id='||l_int_id||'''" /></td>');
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('</tr>');
|
|
htp.p('<tr>');
|
|
htp.p('<td><b>'||caco_utilities.get_module_text(2489)||'*:</b></td>');
|
|
--
|
|
-- Allow date from to be updated if in the future
|
|
--
|
|
IF (lr_interruption.gas_day_start > TRUNC(SYSDATE-cout_system_configuration.get_configuration_item('GAS_DAY_OFFSET')/24)) OR p_action = c_create OR (p_action = c_populate AND l_success=FALSE) THEN
|
|
--
|
|
htp.p('<td><input name="p_int_start" id="p_int_start" value="'||NVL(TO_CHAR(lr_interruption.gas_day_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')), p_int_start)||'" style="width: 160px;" onchange="formmodified=true;">');
|
|
--
|
|
htp.p(wsgjsl.calbutton(field_name => 'p_int_start',
|
|
p_calbut => htf.img(curl => caco_system.images_path ||
|
|
'lov.gif',
|
|
calign => 'TOP',
|
|
cattributes => 'ALT="List Values" WIDTH=18 HEIGHT=22 BORDER'),
|
|
p_form => 'interruption',
|
|
field_format => cout_system_configuration.get_configuration_item('G_DATE_FORMAT'),
|
|
p_field_prompt => caco_utilities.get_module_text(1142)));
|
|
--
|
|
ELSE
|
|
--
|
|
htp.p('<td><input '||l_disabled||' name="p_int_start" id="p_int_start" value="'||NVL(TO_CHAR(lr_interruption.gas_day_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')), p_int_start)||'" style="width: 160px;">');
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('</td>');
|
|
--
|
|
IF (p_action = c_edit)
|
|
OR (p_action = c_query)
|
|
OR (p_action = c_template)
|
|
OR (p_action = c_populate AND l_success) THEN
|
|
--
|
|
htp.p('<td colspan="2"></td>');
|
|
htp.p('<td style="padding-left: 10px;"><input type="button" value="'||caco_utilities.get_module_text(3808)||'" onclick="if (confirmmodified()) {location.href='''||caco_system.dad_path||g_base_package_name||'stemp.queryview?k_int_id='||l_int_id||'''}" /></td>');
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('</tr>');
|
|
htp.p('<tr>');
|
|
htp.p('<td><b>'||caco_utilities.get_module_text(2490)||':</b></td>');
|
|
--
|
|
IF NOT l_end_date_disabled THEN
|
|
--
|
|
htp.p('<td><input name="p_int_end" id="p_int_end" value="'||NVL(TO_CHAR(lr_interruption.gas_day_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')), p_int_end)||'" style="width: 160px;" onchange="formmodified=true;">');
|
|
htp.p(wsgjsl.calbutton(field_name => 'p_int_end',
|
|
p_calbut => htf.img(curl => caco_system.images_path ||
|
|
'lov.gif',
|
|
calign => 'TOP',
|
|
cattributes => 'ALT="List Values" WIDTH=18 HEIGHT=22 BORDER'),
|
|
p_form => 'interruption',
|
|
field_format => cout_system_configuration.get_configuration_item('G_DATE_FORMAT'),
|
|
p_field_prompt => caco_utilities.get_module_text(1142)));
|
|
--
|
|
ELSE
|
|
--
|
|
htp.p('<td><input name="p_int_end" readonly id="p_int_end" value="'||NVL(TO_CHAR(lr_interruption.gas_day_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')), p_int_end)||'" style="width: 160px;">');
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('</td>');
|
|
--
|
|
IF (p_action = c_edit)
|
|
OR (p_action = c_query)
|
|
OR (p_action = c_template)
|
|
OR (p_action = c_populate AND l_success) THEN
|
|
--
|
|
-- IF NOT l_grid_disabled THEN
|
|
IF NOT l_end_date_disabled THEN
|
|
--
|
|
htp.p('<td colspan="2"></td>');
|
|
htp.p('<td style="padding-left: 10px;"><input type="button" value="'||caco_utilities.get_module_text(3805)||'" onclick="if (confirmmodified()) {location.href='''||caco_system.dad_path||g_base_package_name||'smess.queryview?k_int_id='||l_int_id||'&z_execute_query=Y''}" /></td>');
|
|
--
|
|
ELSE
|
|
--
|
|
htp.p('<td colspan="2"></td>');
|
|
htp.p('<td style="padding-left: 10px;"><input type="button" disabled value="'||caco_utilities.get_module_text(3805)||'" onclick="location.href='''||caco_system.dad_path||g_base_package_name||'smess.queryview?k_int_id='||l_int_id||'&z_execute_query=Y''" /></td>');
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('</tr>');
|
|
htp.p('</table>');
|
|
htp.br;
|
|
htp.p('</div>');
|
|
--
|
|
IF (p_action = c_create)
|
|
OR (p_action = c_populate AND NOT l_success) THEN
|
|
--
|
|
htp.p('<input type=hidden name="p_action" value="populate">');
|
|
htp.p('<input type="submit" value="'||caco_utilities.get_module_text(2010)||'" id="populate" />');
|
|
--
|
|
ELSIF (p_action = c_edit)
|
|
OR (p_action = c_query)
|
|
OR (p_action = c_template)
|
|
OR (p_action = c_populate AND l_success) THEN
|
|
--
|
|
htp.p('<input type=hidden name="p_action" value="'||c_edit||'">');
|
|
htp.p('<input type=hidden name="p_int_id" value="'||l_int_id||'">');
|
|
--
|
|
IF NOT l_end_date_disabled THEN
|
|
--
|
|
htp.p('<input type="submit" value="'||caco_utilities.get_module_text(837)||'" id="update" onclick="return checkform();" />');
|
|
--
|
|
ELSE
|
|
--
|
|
htp.p('<input type="submit" disabled value="'||caco_utilities.get_module_text(837)||'" id="update" />');
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('<input type="button" value="'||caco_utilities.get_module_text(993)||'" onclick="location.href='''||caco_system.dad_path||g_base_package_name||'.startup''" />');
|
|
htp.br;
|
|
htp.br;
|
|
--
|
|
-- Detail grid
|
|
--
|
|
htp.p('<div id="custlistdiv">');
|
|
htp.p('<table class="custlist" border="0" cellpadding="0" cellspacing="0">');
|
|
htp.p('<tr>');
|
|
htp.p('<th class="custnepoth">'||caco_utilities.get_module_text(3552)||'</th>'); -- Contract
|
|
htp.p('<th class="custnepoth">'||caco_utilities.get_module_text(1047)||'</th>'); -- Customer
|
|
htp.p('</tr>');
|
|
--
|
|
FOR custnepo IN ( SELECT rownum AS rowcount
|
|
,sq.* FROM (
|
|
SELECT cont.contract_number cont
|
|
, cust.code cust
|
|
, nepo.code nepo
|
|
, nepo.name neponame
|
|
FROM int_conp_coca_vals iccv
|
|
,cont_network_points conp
|
|
,network_points nepo
|
|
,contracts cont
|
|
,customers cust
|
|
WHERE iccv.int_id = l_int_id
|
|
AND iccv.conp_id = conp.conp_id
|
|
AND conp.cont_id = cont.cont_id
|
|
AND conp.nepo_id = nepo.nepo_id
|
|
AND cont.cust_id = cust.cust_id
|
|
GROUP BY cont.contract_number
|
|
, cust.code
|
|
, nepo.code
|
|
, nepo.name
|
|
ORDER BY cont.contract_number
|
|
,cust.code
|
|
,nepo.code ) sq ) LOOP
|
|
--
|
|
IF MOD(custnepo.rowcount,2) = 0 THEN
|
|
--
|
|
htp.p('<tr class="custnepotr2">');
|
|
--
|
|
ELSE
|
|
--
|
|
htp.p('<tr class="custnepotr1">');
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('<td><input disabled class="custnepoinput1" type="text" value="'||custnepo.cont||'" /></td>');
|
|
htp.p('<td><input disabled class="custnepoinput1" type="text" value="'||custnepo.cust||'" /></td>');
|
|
htp.p('</tr>');
|
|
--
|
|
END LOOP;
|
|
--
|
|
-- last line to balance total line on main grid
|
|
--
|
|
htp.p('<tr class="custnepotr1"><td><input disabled class="custnepoinput1" type="text" value="" /></td></tr>');
|
|
--
|
|
htp.p('</table>');
|
|
htp.p('</div>');
|
|
--
|
|
htp.p('<div id="nepoListDiv">');
|
|
htp.p('<table class="custnepo" border="0" cellpadding="0" cellspacing="0">');
|
|
htp.p('<tr>');
|
|
htp.p('<th class="custnepoth">'||caco_utilities.get_module_text(2023)||'</th>'); -- Network Point
|
|
htp.p('<th class="custnepoth">'||caco_utilities.get_module_text(1005)||'</th>'); -- Network Code
|
|
htp.p('</tr>');
|
|
--
|
|
FOR custnepo IN ( SELECT rownum AS rowcount
|
|
,sq.* FROM (
|
|
SELECT cust.code cust
|
|
, nepo.code nepo
|
|
, nepo.name neponame
|
|
FROM int_conp_coca_vals iccv
|
|
,cont_network_points conp
|
|
,network_points nepo
|
|
,contracts cont
|
|
,customers cust
|
|
WHERE iccv.int_id = l_int_id
|
|
AND iccv.conp_id = conp.conp_id
|
|
AND conp.cont_id = cont.cont_id
|
|
AND conp.nepo_id = nepo.nepo_id
|
|
AND cont.cust_id = cust.cust_id
|
|
GROUP BY cont.contract_number
|
|
, cust.code
|
|
, nepo.code
|
|
, nepo.name
|
|
ORDER BY cont.contract_number
|
|
,cust.code
|
|
,nepo.code ) sq ) LOOP
|
|
--
|
|
IF MOD(custnepo.rowcount,2) = 0 THEN
|
|
--
|
|
htp.p('<tr class="custnepotr2">');
|
|
--
|
|
ELSE
|
|
--
|
|
htp.p('<tr class="custnepotr1">');
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('<td><input disabled class="custnepoinput1" type="text" value="'||custnepo.nepo||'" /></td>');
|
|
htp.p('<td><input disabled class="custnepoinput1" type="text" value="'||custnepo.neponame||'" /></td>');
|
|
htp.p('</tr>');
|
|
--
|
|
END LOOP;
|
|
--
|
|
-- last line to balance total line on main grid
|
|
--
|
|
htp.p('<tr class="custnepotr1"><td><input disabled class="custnepoinput1" type="text" value="'||caco_utilities.get_module_text(3804)||'" /><td><input disabled class="custnepoinput1" type="text" value="" /></td></td>');
|
|
--
|
|
htp.p('</table>');
|
|
htp.p('</div>');
|
|
--
|
|
htp.p('<div id="iccvdiv">');
|
|
htp.p('<table class="iccvtable" border="0" cellpadding="0" cellspacing="0">');
|
|
--
|
|
htp.p('<tr>');
|
|
--
|
|
-- main grid headers
|
|
--
|
|
FOR iccvhead IN (SELECT rownum, cate_id, name FROM (
|
|
SELECT coca.cate_id
|
|
, cate.name
|
|
, cate.display_sequence
|
|
FROM int_conp_coca_vals iccv
|
|
,contract_categories coca
|
|
,categories cate
|
|
WHERE iccv.int_id = l_int_id
|
|
AND iccv.coca_id = coca.coca_id
|
|
AND coca.cate_id = cate.cate_id
|
|
GROUP BY coca.cate_id
|
|
, cate.name
|
|
, cate.display_sequence
|
|
ORDER BY cate.display_sequence
|
|
)) LOOP
|
|
--
|
|
htp.p('<th colspan="4" class="iccvth">'||iccvhead.name||'</th>');
|
|
--
|
|
END LOOP;
|
|
--
|
|
htp.p('</tr>');
|
|
--
|
|
-- secondary grid headers
|
|
--
|
|
FOR iccvhead IN (SELECT rownum, cate_id, name FROM (
|
|
SELECT coca.cate_id
|
|
, cate.name
|
|
, cate.display_sequence
|
|
FROM int_conp_coca_vals iccv
|
|
,contract_categories coca
|
|
,categories cate
|
|
WHERE iccv.int_id = l_int_id
|
|
AND iccv.coca_id = coca.coca_id
|
|
AND coca.cate_id = cate.cate_id
|
|
GROUP BY coca.cate_id
|
|
, cate.name
|
|
, cate.display_sequence
|
|
ORDER BY cate.display_sequence
|
|
)) LOOP
|
|
--
|
|
htp.p('<th class="iccvth">'||caco_utilities.get_module_text(3595)||'</th>'); -- interruption type
|
|
htp.p('<th class="iccvth">'||caco_utilities.get_module_text(2237)||'</th>'); -- contracted amount
|
|
htp.p('<th class="iccvth">'||caco_utilities.get_module_text(3802)||'</th>');
|
|
--
|
|
IF NOT l_grid_disabled THEN
|
|
--
|
|
htp.p('<th class="iccvth"><input type="button" value="'||caco_utilities.get_module_text(1148)||'" onClick="checkAll('''||'cb_'||iccvhead.cate_id||''');" /></th>');
|
|
--
|
|
ELSE
|
|
--
|
|
htp.p('<th class="iccvth"><input type="button" disabled value="'||caco_utilities.get_module_text(1148)||'" onClick="checkAll('''||'cb_'||iccvhead.cate_id||''');" /></th>');
|
|
--
|
|
END IF;
|
|
--
|
|
END LOOP;
|
|
--
|
|
htp.p('</tr>');
|
|
--
|
|
-- loop over each customer/nepo
|
|
--
|
|
OPEN cur_grid(p_int_id => l_int_id);
|
|
FETCH cur_grid
|
|
INTO lr_grid_row;
|
|
--
|
|
FOR custnepo IN ( SELECT rownum AS rowcount
|
|
,sq.* FROM (
|
|
SELECT cust.code cust
|
|
, nepo.code nepo
|
|
, nepo.name neponame
|
|
, iccv.conp_id conp
|
|
FROM int_conp_coca_vals iccv
|
|
,cont_network_points conp
|
|
,network_points nepo
|
|
,contracts cont
|
|
,customers cust
|
|
WHERE iccv.int_id = l_int_id
|
|
AND iccv.conp_id = conp.conp_id
|
|
AND conp.cont_id = cont.cont_id
|
|
AND conp.nepo_id = nepo.nepo_id
|
|
AND cont.cust_id = cust.cust_id
|
|
GROUP BY cont.contract_number
|
|
, cust.code
|
|
, nepo.code
|
|
, nepo.name
|
|
, iccv.conp_id
|
|
ORDER BY cont.contract_number
|
|
,cust.code
|
|
,nepo.code ) sq ) LOOP
|
|
--
|
|
htp.p('<tr class="iccvtr1">');
|
|
--
|
|
FOR griddetail IN (SELECT rownum, cate_id, name, inty_code FROM (
|
|
SELECT coca.cate_id
|
|
, cate.name
|
|
, inty.code AS inty_code
|
|
, cate.display_sequence
|
|
FROM int_conp_coca_vals iccv
|
|
,contract_categories coca
|
|
,categories cate
|
|
,interruption_types inty
|
|
WHERE iccv.int_id = l_int_id
|
|
AND iccv.coca_id = coca.coca_id
|
|
AND coca.cate_id = cate.cate_id
|
|
AND inty.cate_id (+) = cate.cate_id
|
|
AND inty.status (+) = 'A'
|
|
GROUP BY coca.cate_id
|
|
, cate.name
|
|
, inty.code
|
|
, cate.display_sequence
|
|
ORDER BY cate.display_sequence
|
|
)) LOOP
|
|
--
|
|
--fetch cursor
|
|
--
|
|
IF lr_grid_row.cate_id = griddetail.cate_id
|
|
AND lr_grid_row.conp_id = custnepo.conp THEN
|
|
--
|
|
--output details
|
|
--
|
|
IF NVL(p_action, 'X') = c_template THEN
|
|
--
|
|
FOR tmp IN ( SELECT itcv.interrupted_value
|
|
,itcv.send_to_customer
|
|
FROM intm_conp_coca_vals itcv
|
|
WHERE itcv.intm_id = p_intm_id
|
|
AND itcv.coca_id = lr_grid_row.coca_id
|
|
AND itcv.conp_id = lr_grid_row.conp_id
|
|
) LOOP
|
|
--
|
|
lr_grid_row.interrupted_value := tmp.interrupted_value;
|
|
lr_grid_row.send_to_customer := tmp.send_to_customer;
|
|
--
|
|
EXIT;
|
|
--
|
|
END LOOP;
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('<input type=hidden name="p_iccv_id" value="'||lr_grid_row.iccv_id||'">');
|
|
htp.p('<td><input disabled class="iccvinput2" type="text" value="'||griddetail.inty_code||'" /></td>');
|
|
--
|
|
IF NOT l_grid_disabled AND lr_grid_row.contracted_value > 0 THEN
|
|
--
|
|
htp.p('<td><input class="iccvinput1" name="p_iccv_val" type="text" '||return_func(lr_grid_row.coca_id, lr_grid_row.conp_id)||' value="'||caco_utilities.to_thousand_separated(lr_grid_row.interrupted_value)||'"/></td>');
|
|
--
|
|
ELSIF l_grid_disabled AND lr_grid_row.contracted_value > 0 THEN
|
|
--
|
|
htp.p('<td><input type=hidden name="p_iccv_val" value="'||lr_grid_row.interrupted_value||'"><input class="iccvinput1" disabled type="text" value="'||caco_utilities.to_thousand_separated(lr_grid_row.interrupted_value)||'" /></td>');
|
|
--
|
|
ELSE
|
|
--
|
|
htp.p('<td><input type=hidden name="p_iccv_val" value="'||lr_grid_row.interrupted_value||'"><input class="iccvinputd" disabled type="text" value="'||caco_utilities.to_thousand_separated(lr_grid_row.interrupted_value)||'" /></td>');
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('<td><input disabled class="iccvinput1" type="text" value="'||caco_utilities.to_thousand_separated(lr_grid_row.confirmed_value)||'" /></td>');
|
|
--
|
|
-- Store total for later
|
|
--
|
|
IF custnepo.rowcount = 1 THEN
|
|
--
|
|
lt_tot(griddetail.rownum).int_qty := lr_grid_row.interrupted_value;
|
|
--
|
|
lt_tot(griddetail.rownum).con_qty := lr_grid_row.confirmed_value;
|
|
--
|
|
ELSE
|
|
--
|
|
lt_tot(griddetail.rownum).int_qty := lr_grid_row.interrupted_value + lt_tot(griddetail.rownum).int_qty;
|
|
--
|
|
lt_tot(griddetail.rownum).con_qty := lr_grid_row.confirmed_value + lt_tot(griddetail.rownum).con_qty;
|
|
--
|
|
END IF;
|
|
--
|
|
IF lr_grid_row.send_to_customer = 'N' THEN
|
|
--
|
|
htp.p('<input type="hidden" id="'||'p_cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'" name="p_checkbox" value="N" />');
|
|
--
|
|
IF NOT l_grid_disabled AND lr_grid_row.contracted_value > 0 THEN
|
|
--
|
|
htp.p('<td><input type=checkbox id="'||'cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'" onclick=''changeCheckBox("'||'p_cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'");'' /></td>');
|
|
--
|
|
ELSIF l_grid_disabled AND lr_grid_row.contracted_value > 0 THEN
|
|
--
|
|
htp.p('<td><input type=checkbox disabled id="'||'cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'" onclick=''changeCheckBox("'||'p_cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'");'' /></td>');
|
|
--
|
|
ELSE
|
|
--
|
|
-- No contracted value, display nothing
|
|
--
|
|
htp.p('<td><input type="hidden" id="'||'cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'"></td>');--htp.p('<td><input type=checkbox disabled id="'||'cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'" onclick=''changeCheckBox("'||'p_cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'");'' /></td>');
|
|
--
|
|
END IF;
|
|
--
|
|
ELSE
|
|
--
|
|
htp.p('<input type="hidden" id="'||'p_cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'" name="p_checkbox" value="Y" />');
|
|
--
|
|
IF NOT l_grid_disabled AND lr_grid_row.contracted_value > 0 THEN
|
|
--
|
|
htp.p('<td><input type=checkbox checked id="'||'cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'" onclick=''changeCheckBox("'||'p_cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'");'' /></td>');
|
|
--
|
|
ELSIF l_grid_disabled AND lr_grid_row.contracted_value > 0 THEN
|
|
--
|
|
htp.p('<td><input type=checkbox disabled checked id="'||'cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'" onclick=''changeCheckBox("'||'p_cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'");'' /></td>');
|
|
--
|
|
ELSE
|
|
--
|
|
htp.p('<td><input type="hidden" id="'||'cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'"></td>');--htp.p('<td><input type=checkbox checked disabled style="display:none;" id="'||'cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'" onclick=''changeCheckBox("'||'p_cb_'||griddetail.cate_id||'_'||TO_CHAR(lr_grid_row.grid_row-1)||'");'' /></td>');
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
FETCH cur_grid
|
|
INTO lr_grid_row;
|
|
--
|
|
ELSE
|
|
--
|
|
-- display a blank
|
|
--
|
|
htp.p('<td colspan="4"></td>');
|
|
--
|
|
IF custnepo.rowcount = 1 THEN
|
|
--
|
|
lt_tot(griddetail.rownum).int_qty := 0;
|
|
lt_tot(griddetail.rownum).con_qty := 0;
|
|
--
|
|
END IF;
|
|
--
|
|
END IF;
|
|
--
|
|
END LOOP; --cate
|
|
--
|
|
htp.p('</tr>');
|
|
--
|
|
END LOOP;--custnepo
|
|
--
|
|
-- output total row
|
|
--
|
|
htp.p('<tr class="iccvtr1">');
|
|
--
|
|
FOR i IN 1..lt_tot.COUNT LOOP
|
|
--
|
|
htp.p('<td></td>');
|
|
--
|
|
htp.p('<td><input disabled class="iccvinput1" type="text" value="'||caco_utilities.to_thousand_separated(lt_tot(i).int_qty)||'" /></td>');
|
|
htp.p('<td><input disabled class="iccvinput1" type="text" value="'||caco_utilities.to_thousand_separated(lt_tot(i).con_qty)||'" /></td>');
|
|
htp.p('<td></td>');
|
|
--
|
|
END LOOP;
|
|
--
|
|
htp.p('</tr>');
|
|
--
|
|
CLOSE cur_grid;
|
|
--
|
|
htp.p('</table>');
|
|
htp.p('</div>');
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('</form>');
|
|
--
|
|
lt_tot := lt_empty_tot;
|
|
--
|
|
ELSIF p_action = c_delete THEN
|
|
--
|
|
IF lr_interruption.gas_day_start > SYSDATE THEN
|
|
--
|
|
l_success := delete_interruption ( p_int_id => p_int_id );
|
|
--
|
|
IF l_success THEN
|
|
--
|
|
-- Journal the delete
|
|
--
|
|
amfr_journal.log_transaction(p_operation_type => 'DELETE'
|
|
,p_operation_target => 'Interruption'
|
|
,p_old_values => name_value_tab(name_value_rec('Interruption Identifier',lr_interruption.int_id)
|
|
,name_value_rec('Name',lr_interruption.name)
|
|
,name_value_rec('Start Date',TO_CHAR(lr_interruption.gas_day_start, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')))
|
|
,name_value_rec('End Date',TO_CHAR(lr_interruption.gas_day_end, cout_system_configuration.get_configuration_item('G_DATE_FORMAT')))
|
|
)
|
|
,p_new_values => amfr_journal.g_name_value_tab
|
|
);
|
|
|
|
--
|
|
l_empty_substitution_list(1) := lr_interruption.name;
|
|
l_success := display_success(3851, caco_utilities.get_module_text(3851), l_empty_substitution_list); -- Interruption deleted
|
|
--
|
|
ELSE
|
|
--
|
|
l_success := display_error(-20543); -- a problem was encountered when deleting the interruption
|
|
--
|
|
END IF;
|
|
--
|
|
ELSE
|
|
--
|
|
l_success := display_error(-20544); -- Cannot delete interruption with a start date in the past
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('<form><input type="button" value="'||caco_utilities.get_module_text(946)||'" onClick="history.go(-1);location.reload;return true;"></form>');
|
|
--
|
|
END IF;
|
|
--
|
|
ELSE
|
|
--
|
|
g_boolean := caco_utilities.raise_error(-20100);
|
|
--
|
|
WSGL.DisplayMessage( WSGL.MESS_ERROR
|
|
, cg$errors.GetErrors
|
|
, ''||' : '||caco_utilities.get_module_text(3800)
|
|
, NULL
|
|
);
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('</div>');
|
|
--
|
|
caco_system.footer(TRUE);
|
|
--
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
htp.p(sqlerrm);
|
|
END action;
|
|
--
|
|
-- Load template
|
|
--
|
|
PROCEDURE load_template ( p_int_id IN interruptions.int_id%TYPE DEFAULT NULL
|
|
, p_intm_id IN interruption_templates.intm_id%TYPE DEFAULT NULL
|
|
, p_action IN VARCHAR2 DEFAULT NULL
|
|
) IS
|
|
--
|
|
lr_intm interruption_templates%ROWTYPE;
|
|
--
|
|
BEGIN
|
|
--
|
|
-- Security check
|
|
--
|
|
IF NOT caco_security.security_check(g_package_name) THEN
|
|
RETURN;
|
|
END IF;
|
|
--
|
|
-- Check Supplied Parameters
|
|
--
|
|
IF (p_int_id IS NOT NULL)
|
|
OR (p_int_id IS NOT NULL AND p_action IS NOT NULL AND p_intm_id IS NOT NULL) THEN
|
|
--
|
|
IF p_action = caco_utilities.get_module_text(3852) THEN -- Load
|
|
--
|
|
action ( p_action => 'template'
|
|
, p_int_id => p_int_id
|
|
, p_intm_id => p_intm_id
|
|
);
|
|
--
|
|
ELSE
|
|
--
|
|
-- Output standard page header
|
|
--
|
|
page_head;
|
|
--
|
|
htp.br;
|
|
--
|
|
-- Secondary Title
|
|
--
|
|
htp.header(nsize => 1
|
|
,cheader => caco_utilities.get_module_text(p_text_number => 3807)
|
|
);
|
|
--
|
|
IF p_action IS NOT NULL AND p_action = caco_utilities.get_module_text(838) THEN -- Delete
|
|
--
|
|
BEGIN
|
|
--
|
|
SELECT *
|
|
INTO lr_intm
|
|
FROM interruption_templates intm
|
|
WHERE intm.intm_id = p_intm_id;
|
|
--
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
NULL;
|
|
END;
|
|
--
|
|
DELETE intm_conp_coca_vals itcv WHERE itcv.intm_id = p_intm_id;
|
|
--
|
|
DELETE interruption_templates intm WHERE intm.intm_id = p_intm_id;
|
|
--
|
|
g_boolean := display_success( 1
|
|
, caco_utilities.get_module_text(894)||lr_intm.name
|
|
);
|
|
--
|
|
END IF;
|
|
--
|
|
htp.p('<form action="'||g_package_name||'.load_template" method="post" name="load_template">');
|
|
htp.para;
|
|
htp.p('<table><tr valign="top">');
|
|
htp.p('<td align="left"><b>'||caco_utilities.get_module_text(2444)||':</b></td>');
|
|
htp.p('<td align="left"><select name="p_intm_id" size="1" class=cglovlist id="p_intm_id">');
|
|
--
|
|
FOR intm IN ( SELECT rownum AS row_index
|
|
,intm.intm_id
|
|
,intm.name
|
|
FROM interruption_templates intm
|
|
WHERE intm.status = 'A'
|
|
ORDER BY intm.name
|
|
) LOOP
|
|
--
|
|
htp.p('<option value="'||intm.intm_id||'">'||intm.name);
|
|
--
|
|
END LOOP;
|
|
--
|
|
htp.p('</select></td></tr>');
|
|
htp.p('</table>');
|
|
htp.para;
|
|
--
|
|
htp.p('<input type=hidden name="p_int_id" value="'||p_int_id||'">');
|
|
htp.p('<input type="submit" name="p_action" value="'||caco_utilities.get_module_text(3852)||'" />');
|
|
htp.p('<input type="submit" name="p_action" value="'||caco_utilities.get_module_text(838)||q'#" onClick="if(!confirm('#'||caco_utilities.get_module_text('873')||q'#'))return false;"/>#');
|
|
htp.p('<input type="button" value="'||caco_utilities.get_module_text(993)||'" onclick="history.back()" />');
|
|
--
|
|
htp.p('</form>');
|
|
--
|
|
END IF;
|
|
--
|
|
ELSE
|
|
--
|
|
-- Output standard page header
|
|
--
|
|
page_head;
|
|
--
|
|
htp.br;
|
|
--
|
|
-- Secondary Title
|
|
--
|
|
htp.header(nsize => 1
|
|
,cheader => caco_utilities.get_module_text(p_text_number => 3807)
|
|
);
|
|
--
|
|
g_boolean := caco_utilities.raise_error(-20100);
|
|
--
|
|
WSGL.DisplayMessage( WSGL.MESS_ERROR
|
|
, cg$errors.GetErrors
|
|
, ''||' : '||caco_utilities.get_module_text(3800)
|
|
, NULL
|
|
);
|
|
--
|
|
END IF;
|
|
--
|
|
caco_system.footer(TRUE);
|
|
--
|
|
END load_template;
|
|
--
|
|
BEGIN
|
|
-- Initialization
|
|
NULL;
|
|
END efnow210$intz;
|
|
/
|