From ce787059a22d0c34728a66b6dc503d94e844e70b Mon Sep 17 00:00:00 2001 From: Koen Reefman Date: Mon, 21 Aug 2017 13:21:34 +0000 Subject: [PATCH] FSN#41607 Bij bulk actie direct behandelaar kunnen kiezen svn path=/Website/trunk/; revision=35025 --- APPL/MLD/mld_forward.asp | 51 ++++++++++++++++++++++++++++++++- APPL/MLD/mld_forward_save.asp | 14 ++++++--- APPL/Shared/persoonselector.inc | 6 +++- 3 files changed, 65 insertions(+), 6 deletions(-) diff --git a/APPL/MLD/mld_forward.asp b/APPL/MLD/mld_forward.asp index ac1ad61df8..7d8d23b2cb 100644 --- a/APPL/MLD/mld_forward.asp +++ b/APPL/MLD/mld_forward.asp @@ -17,6 +17,7 @@ + <% FCLTHeader.Requires({ plugins: ["jQuery"], @@ -31,6 +32,23 @@ FCLTHeader.Requires({ plugins: ["jQuery"], var this_mld = mld.func_enabled_melding(mld_key); user.auth_required_or_abort(this_mld.canForward || this_mld.canFixMelding); + // AUTORISATIEPARAMETERS + var urole = getQParamSafe("urole"); + var fronto = urole == "fo"; + var backo = urole == "bo"; + var minfo = urole == "mi"; + var frontend = (!fronto & !backo & !minfo); + + var autfunction = ''; + if (fronto) + autfunction = 'WEB_MLDFOF'; + else if (backo) + autfunction = 'WEB_MLDBOF'; + else + autfunction = 'WEB_MLDUSE'; + + var authparams = user.checkAutorisation(autfunction); // Dit is nog ongeacht de melding + var mld_melding = mld.mld_melding_info(mld_key); lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY"); @@ -111,6 +129,7 @@ FCLTHeader.Requires({ plugins: ["jQuery"], // Melding leegmaken sgStdm.setValue(-1, "", true, false, null, true); sgStdm.CheckJustOne(); + sgBehandelaar.setValue(-1, "", false /*doonChange*/, true /*checkExist*/); } function process_stdm_info(data, textStatus) @@ -132,6 +151,7 @@ FCLTHeader.Requires({ plugins: ["jQuery"], process_stdm_info); } } + @@ -145,7 +165,7 @@ FCLTHeader.Requires({ plugins: ["jQuery"], FCLTdisciplineselector("disc", "sgDisc", { label: L("lcl_vakgroup"), - disc_key: null, + disc_key: S("mld_forward_auto_fill") ? mld_melding.disc : null, module: "MLD", perslidKey: user_key, autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey, @@ -159,6 +179,7 @@ FCLTHeader.Requires({ plugins: ["jQuery"], "sgStdm", { label: L("lcl_complain"), perslidKey: user_key, + stdmelding_key: S("mld_forward_auto_fill") ? mld_melding.stdm : null, autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey, srtdisc_key: S("mld_forward_all") == 1? null : srt_disc, urlAdd: [{urlParam: "disc_key", field: "disc"}], @@ -167,6 +188,34 @@ FCLTHeader.Requires({ plugins: ["jQuery"], stdmelding_key: null, //mld_stdm, required: true }); + // Behandelaar + if (S("mld_forward_can_assign")) + { +%> + +<% + var urlAdd = [{urlParam: "prs_key", field: "person", init: mld_melding.melder_key}, + {urlParam: "disc_key", field: "disc", init: S("mld_forward_auto_fill") ? mld_melding.disc : null}]; + + if (mld_melding.show_alg) + { + urlAdd.push({urlParam: "loc_key", field: "loc_key", init: mld_melding.loc_key}); +%> + +<% + } + + FCLTpersoonselector("sBehandel", + "sgBehandelaar", + { perslidKey: S("mld_forward_auto_fill") ? mld_melding.behandel_key : null, + label: L("lcl_mld_behandelaar"), + fieldNameKey : "sBehandel_key", + autlevel: this_mld.authparams(autfunction) && this_mld.authparams(autfunction).PRSwritelevel, + urlAdd: urlAdd, + filtercode: (mld_melding.mld_status == 0 ? "BEHF" : "BEHB") + }); + } + %> <%=safe.html(mld_opmr)%> diff --git a/APPL/MLD/mld_forward_save.asp b/APPL/MLD/mld_forward_save.asp index a62c17cfe7..3a18ea592a 100644 --- a/APPL/MLD/mld_forward_save.asp +++ b/APPL/MLD/mld_forward_save.asp @@ -28,6 +28,7 @@ protectRequest.validateToken(); var mld_key = getQParamInt('mld_key'); var stdm_key = getFParamInt("stdm"); +var sBehandel = getFParamInt("sBehandel", -1); var opmerk = getFParam("opmerk", ""); var this_mld = mld.func_enabled_melding(mld_key); user.auth_required_or_abort(this_mld.canForward || this_mld.canFixMelding); @@ -54,12 +55,14 @@ var sql = "SELECT mm.mld_stdmelding_key" + " , msm.mld_ins_discipline_key" + " , mm.mld_melding_einddatum" + " , mm.mld_melding_einddatum_std" + + " , mm.mld_melding_behandelaar_key" + " FROM mld_melding mm, mld_stdmelding msm" + " WHERE mm.mld_stdmelding_key = msm.mld_stdmelding_key" + " AND mld_melding_key = " + mld_key; var oRs = Oracle.Execute(sql); var old_stdm = oRs("mld_stdmelding_key").Value; var old_disc = oRs("mld_ins_discipline_key").Value; +var old_beh = oRs("mld_melding_behandelaar_key").Value || -1; var mld_opm = oRs("mld_melding_opmerking").Value || ""; var spoed = oRs("mld_melding_spoed").Value; var einddatum = new Date(oRs("mld_melding_einddatum").Value); @@ -73,17 +76,20 @@ var save_notitie = false; var result = {success: true, message: "", key: mld_key, autoorder: autoorder}; -if (stdm_key == old_stdm) +if (stdm_key == old_stdm && old_beh == sBehandel) { result.message = L("lcl_not_forwarded"); } else { result.toaster = L("lcl_forwarded"); - var fields = [ { dbs: "mld_stdmelding_key", typ: "key", frm: "stdm", track: L("lcl_complain"), foreign: "mld_stdmelding" } + var fields = [ { dbs: "mld_stdmelding_key", typ: "key", frm: "stdm", track: L("lcl_complain"), foreign: "mld_stdmelding" } ]; - if (mld_melding.mld_status != 5) - fields.push({ dbs: "mld_melding_behandelaar_key", typ: "key", val: -1, track: L("lcl_mld_behandelaar"), foreign: "prs_perslid" }); + + if (S("mld_forward_can_assign")) + fields.push({ dbs: "mld_melding_behandelaar_key", typ: "key", frm: "sBehandel", track: L("lcl_mld_behandelaar"), foreign: "prs_perslid" }); + else if (mld_melding.mld_status != 5) + fields.push({ dbs: "mld_melding_behandelaar_key", typ: "key", val: -1, track: L("lcl_mld_behandelaar"), foreign: "prs_perslid" }); if ((S("mld_forward_opm_flags") & 2) == 2 || S("mld_note_mode") == 2) { // Achteraan notitieveld. diff --git a/APPL/Shared/persoonselector.inc b/APPL/Shared/persoonselector.inc index 33dc758129..739d102451 100644 --- a/APPL/Shared/persoonselector.inc +++ b/APPL/Shared/persoonselector.inc @@ -63,6 +63,10 @@ function FCLTpersoonselector(fieldName, objectName, params) var lextraInit = ""; var isBad = false; + + // FSN#41607: prevents urlAdd["disc_key"] from ending up in the queryUrl + var urldiscKey = (params.disc_key && !isNaN(params.disc_key)) ? params.disc_key : false; + if (params.perslidKey && params.perslidKey > 0) { //var filt_params = {}; @@ -119,7 +123,7 @@ function FCLTpersoonselector(fieldName, objectName, params) + (params.perslidKey>0? "&perslidKey=" + params.perslidKey : "") // Kan ook met urlAdd meegegeven worden + (params.extracode? "&extracode=" + params.extracode : "") + (params.filtercode? "&filtcode=" + params.filtercode : "") - + (params.disc_key? "&disc_key=" + params.disc_key : ""); + + (urldiscKey? "&disc_key=" + urldiscKey : ""); if (params.label) { %>>