FCLT#82594 Punten 6, 7 & 9

svn path=/Website/branches/v2024.2/; revision=65447
This commit is contained in:
2024-07-05 15:30:24 +00:00
parent 407e564d1e
commit c1a652d8dc
3 changed files with 63 additions and 56 deletions

View File

@@ -4906,58 +4906,62 @@ mld = {
oRs = Oracle.Execute(sql);
while (!oRs.eof && !foundUser)
{
if (oRs("prs_perslid_key").Value > 0) // Tertiar Behandelaar.
if (oRs("prs_perslid_key").Value > 0) { // Tertiar Behandelaar.
foundUser = (oRs("prs_perslid_key").Value == user_key);
else
{ // Zit de user in het behandelteam.
// Vergelijkbare code in de functie getFiltClausePersoon(filtcode, params) in bestand persoonFilter.inc. Maar dit bestand willen we hier niet includen.
var disc_key = oRs("ins_discipline_key").Value || -1; // Tertiar Behandelteam.
var afd_key = new Perslid(params.melder_key).prs_afdeling_key(); // Afdeling van de melder!
// Let op: *mijn* rechten (params.autlevel) doen niet ter zake. Het gaat om de rechten van de collega
var autfunction = params.mld_status == 0? "WEB_MLDFOF" : "WEB_MLDBOF";
var filtClause = " AND p.prs_perslid_key IN"
+ " (SELECT prs_perslid_key"
+ " FROM fac_v_webgebruiker g"
+ " WHERE g.fac_functie_key = " + F(autfunction)
+ " AND g.ins_discipline_key = " + disc_key
+ " AND (g.fac_gebruiker_prs_level_write = -1"
+ " OR (g.fac_gebruiker_prs_level_write = 0"
+ " AND d.prs_bedrijf_key = (SELECT aa.prs_bedrijf_key"
+ " FROM prs_v_afdeling aa"
+ " WHERE aa.prs_afdeling_key = " + afd_key + "))"
+ " OR (g.fac_gebruiker_prs_level_write > 0"
+ " AND p.prs_afdeling_key IN "
+ " (SELECT prs_afdeling_key FROM prs_v_afdeling_familie a"
+ " WHERE a.prs_afdeling_elder_key IN"
+ " (SELECT aa.prs_afdeling_elder_key"
+ " FROM prs_v_afdeling_familie aa"
+ " WHERE aa.prs_afdeling_key = " + afd_key
+ " AND aa.niveau = g.fac_gebruiker_prs_level_write))"
+ " )"
+ " )";
if (params.loc_key > 0)
filtClause += " AND (g.fac_gebruiker_alg_level_write = -1"
+ " OR (g.fac_gebruiker_alg_level_write < 9"
+ " AND " + params.loc_key + " IN "
+ " (SELECT alg_locatie_key FROM fac_v_my_locations "
+ " WHERE prs_perslid_key = p.prs_perslid_key"
+ " AND niveau = fac_gebruiker_alg_level_write)"
+ " ))";
filtClause +=") ";
sql = "SELECT p.prs_perslid_key"
+ " FROM prs_perslid p" // Geen prs_v_aanwezigperslid: afhankelijk van filtcode wordt " AND prs_perslid_verwijder IS NULL" toegevoegd
+ " , prs_v_afdeling d "
+ " WHERE p.prs_afdeling_key = d.prs_afdeling_key"
+ " " + filtClause
// faalt bij NULL values: " AND p.prs_perslid_oslogin NOT LIKE '\\_%' ESCAPE '\\' "
+ " AND (prs_perslid_oslogin IS NULL OR prs_perslid_oslogin NOT LIKE '\\_%' ESCAPE '\\')"
+ " AND BITAND(prs_perslid_flags, 2) = 0"
+ " AND p.prs_perslid_key = " + user_key;
oRs2 = Oracle.Execute(sql);
foundUser = foundUser || !oRs2.eof;
oRs2.close();
if (foundUser) {
break;
}
}
// Zit de user in het behandelteam.
// Vergelijkbare code in de functie getFiltClausePersoon(filtcode, params) in bestand persoonFilter.inc. Maar dit bestand willen we hier niet includen.
var disc_key = oRs("ins_discipline_key").Value || -1; // Tertiar Behandelteam.
var afd_key = new Perslid(params.melder_key).prs_afdeling_key(); // Afdeling van de melder!
// Let op: *mijn* rechten (params.autlevel) doen niet ter zake. Het gaat om de rechten van de collega
var autfunction = params.mld_status == 0? "WEB_MLDFOF" : "WEB_MLDBOF";
var filtClause = " AND p.prs_perslid_key IN"
+ " (SELECT prs_perslid_key"
+ " FROM fac_v_webgebruiker g"
+ " WHERE g.fac_functie_key = " + F(autfunction)
+ " AND g.ins_discipline_key = " + disc_key
+ " AND (g.fac_gebruiker_prs_level_write = -1"
+ " OR (g.fac_gebruiker_prs_level_write = 0"
+ " AND d.prs_bedrijf_key = (SELECT aa.prs_bedrijf_key"
+ " FROM prs_v_afdeling aa"
+ " WHERE aa.prs_afdeling_key = " + afd_key + "))"
+ " OR (g.fac_gebruiker_prs_level_write > 0"
+ " AND p.prs_afdeling_key IN "
+ " (SELECT prs_afdeling_key FROM prs_v_afdeling_familie a"
+ " WHERE a.prs_afdeling_elder_key IN"
+ " (SELECT aa.prs_afdeling_elder_key"
+ " FROM prs_v_afdeling_familie aa"
+ " WHERE aa.prs_afdeling_key = " + afd_key
+ " AND aa.niveau = g.fac_gebruiker_prs_level_write))"
+ " )"
+ " )";
if (params.loc_key > 0)
filtClause += " AND (g.fac_gebruiker_alg_level_write = -1"
+ " OR (g.fac_gebruiker_alg_level_write < 9"
+ " AND " + params.loc_key + " IN "
+ " (SELECT alg_locatie_key FROM fac_v_my_locations "
+ " WHERE prs_perslid_key = p.prs_perslid_key"
+ " AND niveau = fac_gebruiker_alg_level_write)"
+ " ))";
filtClause +=") ";
sql = "SELECT p.prs_perslid_key"
+ " FROM prs_perslid p" // Geen prs_v_aanwezigperslid: afhankelijk van filtcode wordt " AND prs_perslid_verwijder IS NULL" toegevoegd
+ " , prs_v_afdeling d "
+ " WHERE p.prs_afdeling_key = d.prs_afdeling_key"
+ " " + filtClause
// faalt bij NULL values: " AND p.prs_perslid_oslogin NOT LIKE '\\_%' ESCAPE '\\' "
+ " AND (prs_perslid_oslogin IS NULL OR prs_perslid_oslogin NOT LIKE '\\_%' ESCAPE '\\')"
+ " AND BITAND(prs_perslid_flags, 2) = 0"
+ " AND p.prs_perslid_key = " + user_key;
oRs2 = Oracle.Execute(sql);
foundUser = foundUser || !oRs2.eof;
oRs2.close();
oRs.MoveNext();
}
oRs.close();
@@ -5404,7 +5408,7 @@ mld = {
// FO kan alleen omschrijving aanpassen
mresult.canChange = ((mresult.canWrite("WEB_MLDBOF") && !activeMLDBO3) || mresult.canWrite("WEB_MLDFOF"));
mresult.canChangeKenmerkBlok = userIsBlokbehandelaar;
mresult.canChangeUrole = mresult.canWrite("WEB_MLDBOF") || userIsBlokbehandelaar ? 'bo' : 'fo';
mresult.canChangeUrole = mresult.canWrite("WEB_MLDBOF") ? 'bo' : 'fo';
mresult.canAccept = ((mresult.canWrite("WEB_MLDBOF") && !activeMLDBO3) || mresult.canWrite("WEB_MLDBO3")) && !is_planned_action;
mresult.canVakgAccept = ((mresult_vakg.canWrite("WEB_MLDBOF") && !activeMLDBO3) || mresult_vakg.canWrite("WEB_MLDBO3")) && !is_planned_action;
mresult.canReject = ((mresult.canWrite("WEB_MLDBOF") && !activeMLDBO3) || mresult.canWrite("WEB_MLDBO3")) &&
@@ -5456,7 +5460,7 @@ mld = {
mresult.canPersChange = mresult.canWrite("WEB_MLDFOF");
mresult.canChange = (mresult.canWrite("WEB_MLDBOF") || mresult.canWrite("WEB_MLDFOF"));
mresult.canChangeKenmerkBlok = userIsBlokbehandelaar;
mresult.canChangeUrole = mresult.canWrite("WEB_MLDBOF") || userIsBlokbehandelaar ? 'bo' : 'fo';
mresult.canChangeUrole = mresult.canWrite("WEB_MLDBOF") ? 'bo' : 'fo';
mresult.canForward = (!is_wf &&
(S("mld_forward_if_active") == 1 || (keten && !hasopdrachten)) && // Een melding met opdrachten mag niet meer doorgestuurd worden (MAYF#36363).
mresult_vakg.canWrite("WEB_MLDBOF") &&
@@ -5506,6 +5510,9 @@ mld = {
break;
}
}
if (!mresult.canChange && userIsBlokbehandelaar) { // Als ik alleen binnen mag komen omdat ik blokbehandelaar ben, dan doe ik dat als BO
mresult.canChangeUrole = 'bo';
}
// (dure) controle uitschakelbaar door { dontcarelink: true } mee te geven
// Je mag dus niet linken, tenzij (i) deze check wordt uitgevoerd en (ii) geen resultaat oplevert.

View File

@@ -397,7 +397,7 @@ if (mld_key == -1 || copy)
}
// 2. Het optionele workflowframe of andere vervolgmeldingen
if (mld_info.mld_conceptstatus == 0)
if (mfe.canReadAny && mld_info.mld_conceptstatus == 0)
{
page="workflow_info.asp?embedded=1&urole=" + urole + "&mld_key=" + mld_key;
IFRAMER("mldworkflowframe", page, { refreshOnActivate: true, refreshOnClose: true, icon: "fa-list" } ); // lcl_mld_continuation_mld heeft een spatie erachter -> nieuwe lcl

View File

@@ -299,7 +299,7 @@ SUBFRAME_START();
if (this_mld.canClose && mld_melding.is_fo_melding && verynew)
buttons.push({ title: L("lcl_close"), icon: "fa-flag-checkered", action: "mld_close(true)", autoshow: true, tooltip: L("lcl_close_hint") });
else
buttons.push({ title: L("lcl_change"), icon: "fa-fclt-edit", action: "mld_change('" + (this_mld.canChangeKenmerkBlok? urole : this_mld.canChangeUrole) + "')" });
buttons.push({ title: L("lcl_change"), icon: "fa-fclt-edit", action: "mld_change('" + this_mld.canChangeUrole + "')" });
if (this_mld.canInstem)
buttons.push({ title: L("lcl_instem"), icon: "fa-thumbs-up", action:"mld_instem()", autoshow: true, tooltip: L("lcl_instem_hint")});
@@ -327,10 +327,10 @@ SUBFRAME_START();
if ((fwdInfo.fwdType & 1) && (this_mld.canForward || this_mld.canFixMelding)) // bo2bo
buttons.push({ title: fwdInfo.fwdLabel, icon: (fwdInfo.fwdType == 1 ? "fa-retweet" : "fa-external-link"),
action: "mld_forward('" + (this_mld.canChangeKenmerkBlok? urole : this_mld.canChangeUrole) + "', 1, " + mld_melding.mld_ins_discipline_key + ")",
action: "mld_forward('" + this_mld.canChangeUrole + "', 1, " + mld_melding.mld_ins_discipline_key + ")",
tooltip: fwdInfo.fwdHint });
if ((fwdInfo.fwdType & 2) && this_mld.canForwardTeam)
buttons.push({ title: L("lcl_mld_forward_team"), icon: "fa-arrow-right", action:"mld_forward('" + (this_mld.canChangeKenmerkBlok? urole : this_mld.canChangeUrole) + "', 2, " + mld_melding.mld_ins_discipline_key + ")", tooltip: L("lcl_mld_forward_team_hint") });
buttons.push({ title: L("lcl_mld_forward_team"), icon: "fa-arrow-right", action:"mld_forward('" + this_mld.canChangeUrole + "', 2, " + mld_melding.mld_ins_discipline_key + ")", tooltip: L("lcl_mld_forward_team_hint") });
if (this_mld.canFixSLA)
buttons.push({ title: L("lcl_mld_fix_sla"), icon: "fa-clock", action:"mld_fix_sla()", autoshow: false, tooltip: L("lcl_mld_fix_sla_hint"), ximportance: 2 });