SKAF#79641: Taak koppelen aan lopende uitvoeringsmelding.
svn path=/Website/branches/v2023.3/; revision=62312
This commit is contained in:
@@ -427,6 +427,7 @@ FCLTHeader.Requires({ plugins: ["jQuery"],
|
||||
omitRefType: true, // Het veld "kto_type" weglaten.
|
||||
referenceType: "M", // Referentie meldingen
|
||||
filtercode: "MJBU",
|
||||
urlAdd: [{ urlParam: "ins_key_arr", field: "ins_keys" }],
|
||||
required: true
|
||||
});
|
||||
MODAL_BLOCK_END();
|
||||
|
||||
@@ -31,6 +31,7 @@ var perslidKey = getQParamInt("prs_key", user_key); // Voor wie is de melding
|
||||
var stdm_key = getQParamInt("stdm_key", -1); // Voor wie is de melding
|
||||
var filtercode = getQParam("filtercode", "");
|
||||
var excl_mld_key_arr = getQParamIntArray("excludemldkey", []);
|
||||
var ins_keys = getQParamIntArray("ins_key_arr", []);
|
||||
|
||||
if (filtercode == "MG" || filtercode == "MGO" || filtercode == "MJBU")
|
||||
{
|
||||
@@ -57,10 +58,10 @@ var mld_read = authparams && (authparams.PRSreadlevel < 9 && authparams.ALGrea
|
||||
var func_keys = authparams && authparams.autfunctionkeys;
|
||||
|
||||
var filt_params = { perslidKey: perslidKey,
|
||||
funcKeys: func_keys };
|
||||
funcKeys: func_keys,
|
||||
chars: chars };
|
||||
var filtClause = getFiltClauseReferentie(filtercode, filt_params);
|
||||
|
||||
|
||||
if (ikBenVerantwoordelijke || mld_read)
|
||||
{ // Ik heb rechten om referenties op te halen.
|
||||
var sql = "";
|
||||
@@ -84,7 +85,9 @@ if (ikBenVerantwoordelijke || mld_read)
|
||||
+ " , TO_CHAR(m.mld_melding_einddatum, 'DD-MM-YYYY') refdesc"
|
||||
+ " , SUBSTR(m.mld_melding_onderwerp, 1, 200) reftitle"
|
||||
+ " , m.mld_melding_einddatum datum"
|
||||
+ ((filtercode == "MG" || filtercode == "MGO" || filtercode == "MJBU")?" , mld_statuses_omschrijving || ', ' || TO_CHAR(m.mld_melding_einddatum, 'DD-MM-YYYY') MGdesc":"")
|
||||
+ ((filtercode == "MG" || filtercode == "MGO" || filtercode == "MJBU")
|
||||
? " , mld_statuses_omschrijving || ', ' || TO_CHAR(m.mld_melding_einddatum, 'DD-MM-YYYY') MGdesc"
|
||||
: "")
|
||||
+ " , 'M' extra"
|
||||
+ " , '' AS restype"
|
||||
+ " FROM mld_melding m"
|
||||
@@ -95,11 +98,7 @@ if (ikBenVerantwoordelijke || mld_read)
|
||||
? " , mld_disc_params dp"
|
||||
: "")
|
||||
+ " , mld_statuses st"
|
||||
+ (filtercode == "MJBU"
|
||||
? " , mld_stdmelding_srtinst msi"
|
||||
+ " , ins_srtgroep isg"
|
||||
+ " , ins_srtdeel isd"
|
||||
: "")
|
||||
+ filtClause.M.from
|
||||
// Zoektekst op melding, vakgroep, meldingnummer.
|
||||
+ " WHERE (TO_CHAR(m.mld_melding_key) LIKE " + safe.quoted_sql_wild2(chars)
|
||||
+ ((filtercode == "MG" || filtercode == "MGO" || filtercode == "MJBU")
|
||||
@@ -114,17 +113,12 @@ if (ikBenVerantwoordelijke || mld_read)
|
||||
? " AND md.ins_discipline_key = dp.mld_ins_discipline_key"
|
||||
: "")
|
||||
+ " AND m.mld_melding_status = st.mld_statuses_key"
|
||||
+ (filtercode == "MJBU"
|
||||
? " AND sm.mld_stdmelding_key = msi.mld_stdmelding_key"
|
||||
+ " AND ((msi.ins_srtinstallatie_key = isg.ins_discipline_key AND msi.ins_srtinstallatie_niveau = 'D')"
|
||||
+ " OR (msi.ins_srtinstallatie_key = isg.ins_srtgroep_key AND msi.ins_srtinstallatie_niveau = 'G')"
|
||||
+ " OR (msi.ins_srtinstallatie_key = isd.ins_srtdeel_key AND msi.ins_srtinstallatie_niveau = 'S'))"
|
||||
: "")
|
||||
+ filtClause.M
|
||||
+ filtClause.M.where
|
||||
+ (excl_mld_key_arr && excl_mld_key_arr.length
|
||||
? " AND mld_melding_key NOT IN (" + excl_mld_key_arr.join(",") + ")"
|
||||
: "")
|
||||
+ " AND TRUNC(m.mld_melding_einddatum, 'DD') >= SYSDATE - " + S("mld_reference_days");
|
||||
+ " AND TRUNC(m.mld_melding_einddatum, 'DD') >= SYSDATE - " + S("mld_reference_days")
|
||||
+ filtClause.M.union;
|
||||
}
|
||||
|
||||
if ((kanverwijzen & 2) == 2)
|
||||
@@ -356,7 +350,7 @@ if (ikBenVerantwoordelijke || mld_read)
|
||||
+ " AND sm.mld_ins_discipline_key = md.ins_discipline_key"
|
||||
+ " AND m.mld_stdmelding_key = sm.mld_stdmelding_key"
|
||||
+ " AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key"
|
||||
+ filtClause.M
|
||||
+ filtClause.M.where
|
||||
+ (excl_mld_key_arr && excl_mld_key_arr.length
|
||||
? " AND mld_melding_key NOT IN (" + excl_mld_key_arr.join(",") + ")"
|
||||
: "")
|
||||
|
||||
@@ -137,7 +137,7 @@ function getReferenceNameReferentie(prefkey, preftype)
|
||||
function getFiltClauseReferentie(pfiltcode, params)
|
||||
{
|
||||
//var lfiltClause = {from: "", where: ""};
|
||||
var lfiltClause = {M: "",
|
||||
var lfiltClause = {M: {from: "", where: "", union: ""},
|
||||
O: "",
|
||||
R: "",
|
||||
B: "",
|
||||
@@ -152,28 +152,83 @@ function getFiltClauseReferentie(pfiltcode, params)
|
||||
case 'MGO': // Alle open meldingen mogelijke als referentie
|
||||
case 'MG': // Alle meldingen mogelijk als referentie
|
||||
case 'M': // Alle meldingen mogelijk als referentie
|
||||
lfiltClause.M = " AND EXISTS (SELECT 1"
|
||||
+ " FROM fac_v_webgebruiker g"
|
||||
+ " WHERE g.prs_perslid_key = " + user_key
|
||||
+ " AND g.ins_discipline_key = sm.mld_ins_discipline_key"
|
||||
+ " AND g.fac_functie_key IN (" + (params.funcKeys ? params.funcKeys : "''") + ")" // ('WEB_MLDFOF', 'WEB_MLDBOF')
|
||||
+ " AND g.fac_gebruiker_alg_level_read < 9)";
|
||||
lfiltClause.M.where = " AND EXISTS (SELECT 1"
|
||||
+ " FROM fac_v_webgebruiker g"
|
||||
+ " WHERE g.prs_perslid_key = " + user_key
|
||||
+ " AND g.ins_discipline_key = sm.mld_ins_discipline_key"
|
||||
+ " AND g.fac_functie_key IN (" + (params.funcKeys? params.funcKeys : "''") + ")" // ("WEB_MLDFOF", "WEB_MLDBOF", "WEB_MLDBAC")
|
||||
+ " AND g.fac_gebruiker_alg_level_read < 9)";
|
||||
var sql_filt = " AND CASE WHEN dp.mld_disc_params_mldgroup = 0"
|
||||
+ " THEN BITAND(sd.ins_srtdiscipline_mldgroup, 1)"
|
||||
+ " ELSE BITAND(dp.mld_disc_params_mldgroup, 1)"
|
||||
+ " END = 1";
|
||||
if (pfiltcode == "MG")
|
||||
lfiltClause.M += sql_filt; // Naar deze mag je verwijzen
|
||||
lfiltClause.M.where += sql_filt; // Naar deze mag je verwijzen
|
||||
if (pfiltcode == "MGO")
|
||||
lfiltClause.M += sql_filt // Naar deze mag je verwijzen
|
||||
+ " AND m.mld_melding_status IN (0,2,3,4,7)"; // en status is niet gesloten
|
||||
lfiltClause.M.where += sql_filt // Naar deze mag je verwijzen
|
||||
+ " AND m.mld_melding_status IN (0,2,3,4,7)"; // en status is niet gesloten
|
||||
if (pfiltcode == "MJBU")
|
||||
lfiltClause.M += " AND m.mld_melding_status IN (2,4,7)" // open meldingen.
|
||||
+ " AND sd.ins_srtdiscipline_key != " + S("cnd_gebreken_srtdisc_key"); // Geen conditie metingen.
|
||||
{ // Standaard meldingen die wel records in de mld_stdmelding_srtinst tabel hebben.
|
||||
lfiltClause.M.from += ", mld_stdmelding_srtinst msi"
|
||||
+ ", ins_srtgroep isg"
|
||||
+ ", ins_srtdeel isd"
|
||||
+ ", mld_v_mld_stdmelding_srtinst si"
|
||||
+ ", ins_deel d";
|
||||
|
||||
lfiltClause.M.where += " AND sm.mld_stdmelding_key = msi.mld_stdmelding_key"
|
||||
+ " AND ((msi.ins_srtinstallatie_key = isg.ins_discipline_key AND msi.ins_srtinstallatie_niveau = 'D')"
|
||||
+ " OR (msi.ins_srtinstallatie_key = isg.ins_srtgroep_key AND msi.ins_srtinstallatie_niveau = 'G')"
|
||||
+ " OR (msi.ins_srtinstallatie_key = isd.ins_srtdeel_key AND msi.ins_srtinstallatie_niveau = 'S'))"
|
||||
+ " AND msi.mld_stdmelding_srtinst_key = si.mld_stdmelding_srtinst_key"
|
||||
+ " AND si.ins_deel_key = d.ins_deel_key"
|
||||
+ " AND d.ins_deel_verwijder IS NULL"
|
||||
+ " AND si.ins_deel_key IN (" + ins_keys.join(",") + ")"
|
||||
+ " AND m.mld_melding_status IN (2,4,7)" // open meldingen.
|
||||
+ " AND sd.ins_srtdiscipline_key != " + S("cnd_gebreken_srtdisc_key"); // Geen conditie metingen.
|
||||
|
||||
// Standaard meldingen die geen records in de mld_stdmelding_srtinst tabel hebben.
|
||||
lfiltClause.M.union += " UNION "
|
||||
+ "SELECT DISTINCT m.mld_melding_key refkey"
|
||||
+ " , sd.ins_srtdiscipline_prefix || TO_CHAR(m.mld_melding_key) || ' - ' || "
|
||||
+ lcl.xsql("md.ins_discipline_omschrijving", "md.ins_discipline_key") + " || '/' || "
|
||||
+ lcl.xsql("sm.mld_stdmelding_omschrijving", "sm.mld_stdmelding_key") + " refname"
|
||||
+ " , TO_CHAR(m.mld_melding_einddatum, 'DD-MM-YYYY') refdesc"
|
||||
+ " , SUBSTR(m.mld_melding_onderwerp, 1, 200) reftitle"
|
||||
+ " , m.mld_melding_einddatum datum"
|
||||
+ " , mld_statuses_omschrijving || ', ' || TO_CHAR(m.mld_melding_einddatum, 'DD-MM-YYYY') MGdesc"
|
||||
+ " , 'M' extra"
|
||||
+ " , '' AS restype"
|
||||
+ " FROM mld_melding m"
|
||||
+ " , mld_stdmelding sm"
|
||||
+ " , mld_discipline md"
|
||||
+ " , ins_srtdiscipline sd"
|
||||
+ " , mld_statuses st"
|
||||
+ " WHERE (TO_CHAR(m.mld_melding_key) LIKE " + safe.quoted_sql_wild2(params.chars)
|
||||
+ " OR UPPER(mld_melding_omschrijving) LIKE " + safe.quoted_sql_wild2(params.chars)
|
||||
+ " OR UPPER(mld_melding_onderwerp) LIKE " + safe.quoted_sql_wild2(params.chars) + ")"
|
||||
+ " AND sm.mld_ins_discipline_key = md.ins_discipline_key"
|
||||
+ " AND m.mld_stdmelding_key = sm.mld_stdmelding_key"
|
||||
+ " AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key"
|
||||
+ " AND m.mld_melding_status = st.mld_statuses_key"
|
||||
+ " AND NOT EXISTS (SELECT *"
|
||||
+ " FROM mld_stdmelding_srtinst si"
|
||||
+ " WHERE si.mld_stdmelding_key = sm.mld_stdmelding_key)"
|
||||
+ " AND EXISTS (SELECT 1"
|
||||
+ " FROM fac_v_webgebruiker g"
|
||||
+ " WHERE g.prs_perslid_key = " + user_key
|
||||
+ " AND g.ins_discipline_key = sm.mld_ins_discipline_key"
|
||||
+ " AND g.fac_functie_key IN (" + (params.funcKeys? params.funcKeys : "''") + ")" // ("WEB_MLDFOF", "WEB_MLDBOF", "WEB_MLDBAC")
|
||||
+ " AND g.fac_gebruiker_alg_level_read < 9)"
|
||||
+ " AND m.mld_melding_status IN (2, 4, 7)"
|
||||
+ " AND sd.ins_srtdiscipline_key != " + S("cnd_gebreken_srtdisc_key") // Geen conditie metingen.
|
||||
+ " AND TRUNC(m.mld_melding_einddatum, 'DD') >= SYSDATE - " + S("mld_reference_days");
|
||||
}
|
||||
break;
|
||||
case 'O': // Weergeven van alle mogelijke eigen referenties
|
||||
var lfiltClause = { M: " AND (m.prs_perslid_key = " + params.perslidKey
|
||||
+ " OR m.prs_perslid_key_voor = " + params.perslidKey + ")",
|
||||
var lfiltClause = { M: {from: "",
|
||||
where: " AND (m.prs_perslid_key = " + params.perslidKey
|
||||
+ " OR m.prs_perslid_key_voor = " + params.perslidKey + ")",
|
||||
union: ""},
|
||||
O: " AND (m.prs_perslid_key = " + params.perslidKey
|
||||
+ " OR m.prs_perslid_key_voor = " + params.perslidKey + ")",
|
||||
R: " AND (rm.res_rsv_ruimte_contact_key = " + params.perslidKey
|
||||
@@ -192,10 +247,12 @@ function getFiltClauseReferentie(pfiltcode, params)
|
||||
};
|
||||
break;
|
||||
case 'F': // Filteren op bestaande ingevoerde referenties
|
||||
var lfiltClause = { M: " AND m.mld_melding_key IN (SELECT m1.mld_melding_kto_key"
|
||||
+ " FROM mld_melding m1"
|
||||
+ " WHERE m1.mld_melding_kto_type LIKE 'M'"
|
||||
+ " AND m1.mld_melding_kto_key > 0)",
|
||||
var lfiltClause = { M: {from: "",
|
||||
where: " AND m.mld_melding_key IN (SELECT m1.mld_melding_kto_key"
|
||||
+ " FROM mld_melding m1"
|
||||
+ " WHERE m1.mld_melding_kto_type LIKE 'M'"
|
||||
+ " AND m1.mld_melding_kto_key > 0)",
|
||||
union: ""},
|
||||
O: " AND o.mld_opdr_key IN (SELECT m1.mld_melding_kto_key"
|
||||
+ " FROM mld_melding m1"
|
||||
+ " WHERE m1.mld_melding_kto_type LIKE 'O'"
|
||||
|
||||
Reference in New Issue
Block a user