FSN#35446 knop contracten vaker tonen ook op basis van contractsoort + scope

svn path=/Website/trunk/; revision=28142
This commit is contained in:
Ruud Lipper
2016-02-12 12:00:15 +00:00
parent ea683f033f
commit 34184a4534
2 changed files with 79 additions and 11 deletions

View File

@@ -377,9 +377,40 @@ function cnt_list (pautfunction, params)
if (ins_key)
{
sql += " AND c.cnt_contract_key IN "
+ " (SELECT cnt_contract_key FROM cnt_contract_object"
+ " WHERE cnt_ins_deel_key = " + ins_key + ")";
}
+ " (SELECT DISTINCT cnt_contract_key"
+ " FROM (SELECT cnt_contract_key"
+ " FROM cnt_contract_object"
+ " WHERE cnt_ins_deel_key =" + ins_key + ""
+ " UNION"
+ " SELECT co.cnt_contract_key"
+ " FROM CNT_V_AANWEZIGCONTRACT_OBJECT co,"
+ " ins_deel d,"
+ " cnt_v_aanwezigcontract_plaats ccp,"
+ " alg_v_allonroerendgoed aao"
+ " WHERE cnt_ins_deel_key IS NULL"
+ " AND co.cnt_ins_srtdeel_key = d.ins_srtdeel_key"
+ " AND d.ins_deel_key =" + ins_key + ""
+ " AND ccp.cnt_contract_key = co.cnt_contract_key"
+ " AND COALESCE (d.ins_alg_ruimte_type_org,"
+ " ins_alg_ruimte_type) = 'R'"
+ " AND COALESCE (d.ins_alg_ruimte_key_org,"
+ " ins_alg_ruimte_key) = aao.alg_ruimte_key"
+ " AND ( (ccp.cnt_alg_plaats_code = 'L'"
+ " AND ccp.cnt_alg_plaats_key = aao.alg_locatie_key)"
+ " OR (ccp.cnt_alg_plaats_code = 'G'"
+ " AND ccp.cnt_alg_plaats_key = aao.alg_gebouw_key))"
+ " UNION"
+ " SELECT co.cnt_contract_key"
+ " FROM CNT_V_AANWEZIGCONTRACT_OBJECT co, ins_deel d"
+ " WHERE cnt_ins_deel_key IS NULL"
+ " AND co.cnt_ins_srtdeel_key = d.ins_srtdeel_key"
+ " AND d.ins_deel_key =" + ins_key + ""
+ " AND (co.cnt_contract_key NOT IN"
+ " (SELECT cnt_contract_key"
+ " FROM cnt_v_aanwezigcontract_plaats)"
+ " OR COALESCE (d.ins_alg_ruimte_type_org,"
+ " ins_alg_ruimte_type) != 'R')))";
}
if (kp_key)
{

View File

@@ -30,6 +30,13 @@ if (this_ins.isSleCil)
var autfunction = "WEB_SLEBOF";
else
var autfunction = getQParam("pautfunction", (urole == "fo"? "WEB_INSFOF" : "WEB_INSMAN"));
var authparamsCNTUSE = user.checkAutorisation("WEB_CNTUSE", true);
var authparamsCNTMAN = user.checkAutorisation("WEB_CNTMAN", true);
var curole = "bo";
if (!authparamsCNTMAN && authparamsCNTUSE)
curole = "fe";
var authparams = user.checkAutorisation(autfunction);
var sql, oRs;
@@ -214,7 +221,7 @@ oRs.Close();
}
function showHistory()
{
FcltMgr.openDetail("appl/ins/ins_history_search.asp?ins_key=<%=ins_key%>&urole=<%=urole%>", "<%=L("lcl_history")%>");
FcltMgr.openDetail("appl/ins/ins_history_search.asp?ins_key=<%=ins_key%>&urole=<%=curole%>", "<%=L("lcl_history")%>");
}
function ins_reserveerbaar()
{
@@ -233,7 +240,7 @@ oRs.Close();
function ins_contract()
{
FcltMgr.openDetail("appl/cnt/cnt_search_list.asp?ins_key=<%=ins_key%>&urole=<%=urole%>", "<%=L("lcl_contract")%>");
FcltMgr.openDetail("appl/cnt/cnt_search_list.asp?ins_key=<%=ins_key%>&urole=<%=curole%>", "<%=L("lcl_contract")%>");
}
function ins_delete()
@@ -276,16 +283,45 @@ oRs.Close();
oRs = Oracle.Execute(sql);
this_ins.verbruiksmeter = oRs("meetwaarde").Value == 1;
sql = "SELECT COUNT(*) "
+ " FROM cnt_contract_object o "
+ " WHERE o.cnt_ins_deel_key = " + ins_key
+ " AND o.cnt_contract_object_verwijder IS NULL ";
sql = "SELECT COUNT ( * )"
+ " FROM (SELECT cnt_contract_key"
+ " FROM cnt_v_aanwezigcontract_object"
+ " WHERE cnt_ins_deel_key =" + ins_key + ""
+ " UNION"
+ " SELECT co.cnt_contract_key"
+ " FROM CNT_V_AANWEZIGCONTRACT_OBJECT co,"
+ " ins_deel d,"
+ " cnt_v_aanwezigcontract_plaats ccp,"
+ " alg_v_allonroerendgoed aao"
+ " WHERE cnt_ins_deel_key IS NULL"
+ " AND co.cnt_ins_srtdeel_key = d.ins_srtdeel_key"
+ " AND d.ins_deel_key =" + ins_key + ""
+ " AND ccp.cnt_contract_key = co.cnt_contract_key"
+ " AND COALESCE (d.ins_alg_ruimte_type_org,"
+ " ins_alg_ruimte_type) = 'R'"
+ " AND COALESCE (d.ins_alg_ruimte_key_org,"
+ " ins_alg_ruimte_key) = aao.alg_ruimte_key"
+ " AND ( (ccp.cnt_alg_plaats_code = 'L'"
+ " AND ccp.cnt_alg_plaats_key = aao.alg_locatie_key)"
+ " OR (ccp.cnt_alg_plaats_code = 'G'"
+ " AND ccp.cnt_alg_plaats_key = aao.alg_gebouw_key))"
+ " UNION"
+ " SELECT co.cnt_contract_key"
+ " FROM CNT_V_AANWEZIGCONTRACT_OBJECT co, ins_deel d"
+ " WHERE cnt_ins_deel_key IS NULL"
+ " AND co.cnt_ins_srtdeel_key = d.ins_srtdeel_key"
+ " AND d.ins_deel_key ="+ ins_key + ""
+ " AND (co.cnt_contract_key NOT IN"
+ " (SELECT cnt_contract_key"
+ " FROM cnt_v_aanwezigcontract_plaats)"
+ " OR COALESCE (d.ins_alg_ruimte_type_org,"
+ " ins_alg_ruimte_type) != 'R'))";
oRs = Oracle.Execute(sql);
this_ins.contracts = oRs(0).Value;
oRs.Close();
}
var buttons = [ ];
if (this_ins.hasRESMSU)
buttons.push({title: L("lcl_reserveerbaar"), action: "ins_reserveerbaar()", icon: "attach.png"});
@@ -306,8 +342,9 @@ oRs.Close();
if (this_ins.canDelete)
buttons.push({title: L("lcl_delete"), action: "ins_delete()", icon: "delete.png"});
if (this_ins.contracts > 0)
if (this_ins.contracts > 0 && (authparamsCNTMAN || authparamsCNTUSE))
buttons.push ({title: L("lcl_contract"), action: "ins_contract()", icon: "contract.png"});
buttons.push ({title: L("lcl_print"), action: "ins_print()", icon: "print.png" });
var headertitle = L("lcl_ins_frame_algemeen");