AKZA#38289: CTR: Gereedmelden geeft Oracle time-out voor bepaalde objecten.

svn path=/Website/trunk/; revision=31342
This commit is contained in:
Maykel Geerdink
2016-11-03 10:36:45 +00:00
parent 0e6ce01f57
commit ed4d9b9809
2 changed files with 27 additions and 7 deletions

View File

@@ -93,7 +93,6 @@ for (var i = 0; i < ins_key_arr.length; i++)
+ " AND idsc.ins_deel_key(+) = " + ins_key_arr[i]
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_periode, di.ins_srtcontrole_periode) > 0"
+ " AND di.ins_srtcontrole_key = " + srtcont_key_arr[i]
+ " AND (xcp.ins_srtcontroledl_xcp_eind(+) IS NULL OR xcp.ins_srtcontroledl_xcp_eind(+) > TRUNC(SYSDATE, 'DD'))"
+ (deelsrtcont_key > 0
? " AND idsc.ins_deelsrtcontrole_key = " + deelsrtcont_key
: "")
@@ -392,7 +391,7 @@ else if (savemode == "C")
+ " FROM ins_srtcontroledl_xcp xcp"
+ " WHERE ins_deel_key = " + ingesloten[i].ins_key
+ " AND ins_srtcontrole_key = " + ingesloten[i].srtcont_key
+ " AND (xcp.ins_srtcontroledl_xcp_eind IS NULL OR xcp.ins_srtcontroledl_xcp_eind > TRUNC(SYSDATE, 'DD'))" + ")"
+ " )"
+ " , (SELECT isc.ins_srtcontrole_eenheid"
+ " FROM ins_srtcontrole isc"
+ " WHERE ins_srtcontrole_key = " + ingesloten[i].srtcont_key + ")) eenheid"

View File

@@ -163,10 +163,13 @@ if (srtcontrole_key < 0 || defaultmode_key > 0)
// Eerst een soort controle bepalen.
var sql = "SELECT i.ins_srtcontrole_key"
+ " , " + lcl.xsqla('i.ins_srtcontrole_omschrijving', 'i.ins_srtcontrole_key')
+ " , i.ctr_discipline_key"
+ " FROM ( SELECT isc.ins_srtcontrole_key"
+ " , isc.ins_srtcontrole_eenheid"
+ " , isc.ins_srtcontrole_omschrijving"
+ " , id.ins_deel_key"
+ " , isc.ctr_discipline_key"
+ " , isc.ins_srtcontrole_eind"
+ " FROM ins_deel id"
+ " , ins_srtdeel s"
+ " , ins_srtcontrole isc"
@@ -179,15 +182,33 @@ if (srtcontrole_key < 0 || defaultmode_key > 0)
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
+ " AND id.ins_deel_key = " + ins_key + ") i"
+ " LEFT JOIN"
+ " ( SELECT ins_srtcontroledl_xcp_eenheid"
+ " , ins_srtcontrole_key"
+ " , ins_deel_key"
+ " (SELECT xcp.ins_srtcontroledl_xcp_eenheid"
+ " , xcp.ins_srtcontrole_key"
+ " , xcp.ins_deel_key"
+ " , xcp.ins_srtcontroledl_xcp_eind"
+ " FROM ins_srtcontroledl_xcp xcp"
+ " WHERE xcp.ins_srtcontroledl_xcp_eind IS NULL"
+ " OR xcp.ins_srtcontroledl_xcp_eind > TRUNC(SYSDATE, 'DD'))xcp"
+ " WHERE xcp.ins_deel_key = " + ins_key
+ " )xcp"
+ " ON i.ins_deel_key = xcp.ins_deel_key"
+ " AND i.ins_srtcontrole_key = xcp.ins_srtcontrole_key"
+ " WHERE COALESCE (ins_srtcontroledl_xcp_eenheid, ins_srtcontrole_eenheid) <> 0"
+ " AND (COALESCE(xcp.ins_srtcontroledl_xcp_eind, i.ins_srtcontrole_eind) IS NULL"
+ " OR COALESCE(xcp.ins_srtcontroledl_xcp_eind, i.ins_srtcontrole_eind) > TRUNC(SYSDATE, 'DD')" // Vervallen taken niet tonen.
+ " OR (SELECT idsc1.ins_deelsrtcontrole_status" // Vervallen taken die nog een inspecite hebben lopen, wel tonen.
+ " FROM ins_deelsrtcontrole idsc1"
+ " WHERE idsc1.ins_deelsrtcontrole_key = (SELECT MAX (idsc2.ins_deelsrtcontrole_key)"
+ " FROM ins_deelsrtcontrole idsc2"
+ " WHERE idsc2.ins_deel_key = xcp.ins_deel_key"
+ " AND idsc2.ins_srtcontrole_key = xcp.ins_srtcontrole_key)) != 6)"
// Alleen de disciplines tonen waar de user rechten op heb.
+ " AND i.ctr_discipline_key IN (SELECT g.ins_discipline_key"
+ " FROM fac_v_webgebruiker g"
+ " , fac_functie f"
+ " WHERE g.fac_functie_key = f.fac_functie_key"
+ " AND f.fac_functie_code = 'WEB_CTRUSE'"
+ " AND g.fac_gebruiker_prs_level_write < 9"
+ " AND g.fac_gebruiker_alg_level_write < 9"
+ " AND g.prs_perslid_key = " + user_key + ")"
+ (today != -1 ? " AND TRUNC(FAC.nextcyclusdatedeel (i.ins_deel_key, i.ins_srtcontrole_key, 1)) <= TRUNC(sysdate) " : "");
function fnPrefix(oRs, params)