ARAI#51810 Vervolg op #42507 behandelaar -> uitvoerder in MGTINFO

svn path=/Website/trunk/; revision=37131
This commit is contained in:
Erik Groener
2018-02-22 08:54:59 +00:00
parent 168db52178
commit bdbfe273d5
5 changed files with 41 additions and 8 deletions

View File

@@ -1214,6 +1214,7 @@ mld = {setmeldingstatus:
var stdm_key_arr = params.stdm_key_arr;
var kp = params.kp;
var handler_key = params.handler_key;
var uitvopdr_key = params.uitvopdr_key;
var contact_key = params.contact_key;
var opdrtype_key = params.opdrtype_key;
var searchtekst = params.searchtekst;
@@ -1362,9 +1363,13 @@ mld = {setmeldingstatus:
? " AND m.mld_melding_key = invoerder.mld_melding_key"
: "");
if (handler_key || opdrtype_key || contact_key || opdr_key || opdrstatus_arr || intopdr_key)
if (handler_key || opdrtype_key || contact_key || uitvopdr_key || opdr_key || opdrstatus_arr || intopdr_key)
{ // meldingen filter je op 'die een opdracht hebben met xxxxxx'
// opdrachten filter je rechtstreeks
var opdr_prs_key = [];
if (contact_key) opdr_prs_key.push(contact_key);
if (uitvopdr_key) opdr_prs_key.push(uitvopdr_key);
if (!toon_opdr_overz)
sqln += " AND EXISTS"
+ " (SELECT o.mld_opdr_key"
@@ -1376,8 +1381,8 @@ mld = {setmeldingstatus:
+ (opdrtype_key
? " AND o.mld_typeopdr_key = " + opdrtype_key
: "")
+ (contact_key
? " AND o.prs_perslid_key = " + contact_key
+ (contact_key || uitvopdr_key
? " AND o.prs_perslid_key IN (" + opdr_prs_key.join(",") + ")"
: "")
+ (opdr_key // Selectie op nummer negeert alle andere filters (Andere waarde zijn niet doorgegeven
? " AND o.mld_melding_key = " + opdr_key // seems odd, but is right -PF
@@ -4851,6 +4856,7 @@ mld = {setmeldingstatus:
var opdr_key = params.opdr_key; // opdracht nummer is voor de gebruiker hetzelfde als mld_key
var intopdr_key = params.intopdr_key; // de technische echte mld_opdr_key
var behandel_key = params.behandel_key;
var uitvopdr_key = params.uitvopdr_key;
var beh_key_arr = params.beh_key_arr; // Array met keys (e.g. [3, 4, 5])
var srtdisc_key = params.srtdisc_key;
var searchtekst = params.searchtekst;
@@ -5334,8 +5340,13 @@ mld = {setmeldingstatus:
if (caller_key)
sql += " AND m.prs_perslid_key = " + caller_key;
if (behandel_key)
sql += " AND o.prs_perslid_key = " + behandel_key;
if (behandel_key || uitvopdr_key)
{
var opdr_prs_key = [];
if (behandel_key) opdr_prs_key.push(behandel_key);
if (uitvopdr_key) opdr_prs_key.push(uitvopdr_key);
sql += " AND o.prs_perslid_key IN (" + opdr_prs_key.join(",") + ")";
}
if (beh_key_arr)
//sql += " AND (o.prs_perslid_key IN (" + beh_key_arr.join(",") + ") OR o.prs_perslid_key IS NULL)";
// Niet toegewezen (prs_perslid_key IS NULL) opdrachten van het opdrachttype Bedrijf Intern (BI) moeten ook getoond worden.

View File

@@ -56,6 +56,7 @@ function mld_list (pautfunction, params)
// params.stdm_key_arr : Array met keys (e.g. [3, 4, 5])
// params.kp : wildcard string
// params.handler_key : key
// params.uitvopdr_key : key
// params.contact_key : key
// params.opdrtype_key : key
// params.searchtekst : wildcard string

View File

@@ -24,6 +24,7 @@
perslid_key Melder (key) van de melding
behandel_key Behandelaar (key) van de melding
handler_key Uitvoerende (key) van de opdracht
handleropdr_key Behandelaar (key) van de opdracht
contact_key Contactpersoon van de opdracht
hfddep_key Hoofdafdeling/Cluster (Bussiness Unit) (key) van de melding
comp_key Bedrijf van de melding
@@ -106,6 +107,7 @@ var opdrtype_key = getQParamInt("opdrtype_key", -1); // Opdrachttype
var perslid_key = getQParamInt("perslid_key", -1); // Melder
var behandel_key = getQParamInt("behandel_key", -1); // Behandelaar
var handler_key = getQParamInt("handler_key", -1); // Uitvoerende
var handleropdr_key = getQParamInt("handleropdr_key", -1); // Behandelaar opdracht
var contact_key = getQParamInt("contact_key", -1); // Contactpersoon
var hfddep_key = getQParamInt("hfddep_key", -1); // Bussiness Unit (Cluster/Hoofdafdeling)
var comp_key = getQParamInt("comp_key", -1); // Bedrijf
@@ -1102,6 +1104,21 @@ if (!frontend && srtdisc > -1)
lutype: lutype // Leveranciers en/of Uitvoerenden.
});
// <!-- Uitvoerende van opdracht-->
FCLTpersoonselector("uitvopdr_key",
"sgPersonOpdr",
{ perslidKey: handleropdr_key,
label: L("lcl_mld_behandelaar")+" "+L("lcl_opdr_info"),
trclass: "secsearch noxd",
autlevel: authparams.PRSwritelevel,
filtercode: "OCP",
urlAdd: [{urlParam: "pbtype", field: "pbtype", init: "BI"},
{urlParam: "uitv_key", field: "uitvoerende", init: -1}],
disc_key: -1,
initEmpty: true, // Altijd lege waarde tonen, ook als er maar 1 waarde is.
whenEmpty: L("lcl_search_generic") // want filter
});
if (minfo)
{
// <!-- Contactpersoon -->

View File

@@ -122,6 +122,7 @@ else
var stdm_key_arr = getQParamIntArray("sm", [-1]); // Melding (Stdmelding)
var kp = getQParamInt("kp", -1); // Kostenplaats
var handler = getQParamInt("handler", -1); // Uitvoerende
var uitvopdr_key = getQParamInt("uitvopdr_key", -1); // Uitvoerende opdracht
var contact_key = getQParamInt("sContact_key", -1); // Contactpersoon
var opdrtype_key = getQParamInt("opdrtype", -1); // Opdrachttype
var searchtekst = getQParam("searchtekst", ""); // Zoektekst
@@ -169,6 +170,7 @@ else
params.stdm_key_arr = (stdm_key_arr.length > 0 && stdm_key_arr.join(",").indexOf("-1") == -1? stdm_key_arr : null);
params.kp = (kp != -1 ? kp : null);
params.handler_key = (handler != -1 ? handler : null);
params.uitvopdr_key = (uitvopdr_key != -1 ? uitvopdr_key : null);
params.contact_key = (contact_key != -1 ? contact_key : null);
params.opdrtype_key = (opdrtype_key != -1 ? opdrtype_key : null);
params.searchtekst = (searchtekst != "" ? searchtekst : null);

View File

@@ -176,7 +176,9 @@ function getFiltClausePersoon(pfiltcode, params)
+ " FROM fac_v_webgebruiker f"
+ ", fac_functie ff"
+ " WHERE f.fac_functie_key = ff.fac_functie_key"
+ " AND ins_discipline_key = " + params.disc_key
+ ( params.disc_key > -1
? " AND ins_discipline_key = " + params.disc_key
: "")
+ " AND (fac_functie_code = 'WEB_MLDBOF'"
+ " OR fac_functie_code = 'WEB_MLDBO3'"
+ (params.pbtype == "BI"
@@ -335,9 +337,9 @@ function getFiltClausePersoon(pfiltcode, params)
{
var bdr_key = new Perslid(pkey).afdeling().prs_bedrijf_key();
var afd_key = new Perslid(pkey).prs_afdeling_key();
lfiltClause += " AND p.prs_perslid_key != " + params.prs_key
if (S("prs_collegas_used") == 0) // Bedrijf niveau zit niet in prs_v_afdeling_familie
{
lfiltClause += " AND p.prs_afdeling_key IN"