NYBU#35578 bulkactie add_mandates toegevoegd
svn path=/Website/trunk/; revision=32701
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
FCLTHeader.Requires({plugins:["jQuery"]})
|
||||
|
||||
var kpnman_keys = getQParamIntArray("keys", []);
|
||||
var prs_keys = getQParamIntArray("prs_keys", []);
|
||||
|
||||
var modal = (getQParamInt("modal", 0) == 1);
|
||||
|
||||
@@ -130,11 +131,12 @@ else if (kpnman_keys.length > 0 && kpnman_keys[0] > -1)
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
kpnman_keys = "<%=kpnman_keys.join(",")%>";
|
||||
prs_keys = "<%=prs_keys.join(",")%>";
|
||||
|
||||
function kpn_submit()
|
||||
{
|
||||
document.activeElement.blur(); // trigger laatste onChanges
|
||||
if (kpnman_keys.length == 0)
|
||||
if (kpnman_keys.length == 0 && prs_keys.length == 0)
|
||||
{
|
||||
if (!$("#kpn_kpnbk")[0].checked && !$("#kpn_kpninz")[0].checked)
|
||||
{ // Checkboxen boeken en inzage zijn niet geselecteerd
|
||||
@@ -191,17 +193,25 @@ else if (kpnman_keys.length > 0 && kpnman_keys[0] > -1)
|
||||
<% }
|
||||
else
|
||||
{
|
||||
FCLTpersoonselector("kpn_prskey", // gemandateerde
|
||||
"sgKpnPrskey",
|
||||
{ perslidKey: kpn_prskey,
|
||||
label: L("lcl_prs_name"),
|
||||
whenEmpty: L("lcl_select_persoon"),
|
||||
autlevel: authparams.PRSwritelevel,
|
||||
filtercode: (S("prs_mandaterequiresprofiel") == 1 ? "B" : null), // UWVA#14068
|
||||
required: true,
|
||||
readonly: kpnman_keys[0] > -1
|
||||
});
|
||||
|
||||
if (prs_keys.length == 0)
|
||||
{
|
||||
FCLTpersoonselector("kpn_prskey", // gemandateerde
|
||||
"sgKpnPrskey",
|
||||
{ perslidKey: kpn_prskey,
|
||||
label: L("lcl_prs_name"),
|
||||
whenEmpty: L("lcl_select_persoon"),
|
||||
autlevel: authparams.PRSwritelevel,
|
||||
filtercode: (S("prs_mandaterequiresprofiel") == 1 ? "B" : null), // UWVA#14068
|
||||
required: true,
|
||||
readonly: kpnman_keys[0] > -1
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
%>
|
||||
<input type="hidden" name="kpn_prskeys" value="<%=prs_keys%>">
|
||||
<%
|
||||
}
|
||||
if (kpnman_keys.length == 0 || kpnman_keys[0] == -1)
|
||||
{
|
||||
sql = "SELECT k.prs_kostenplaats_key kpkey"
|
||||
|
||||
@@ -23,6 +23,8 @@ protectRequest.validateToken();
|
||||
FCLTHeader.Requires({ plugins:["jQuery"] })
|
||||
|
||||
var kpnman_keys = getQParamIntArray("keys", []);
|
||||
var kpn_prskeys = getFParamIntArray("kpn_prskeys", []);
|
||||
var kpn_man_res = [];
|
||||
|
||||
var authparams = user.checkAutorisation("WEB_FINMSU", true);
|
||||
if (authparams && authparams.ALGwritelevel < 9)
|
||||
@@ -69,13 +71,55 @@ else
|
||||
}
|
||||
|
||||
var multi = kpnman_keys.length > 1;
|
||||
var prsAdd = kpn_prskeys.length != 0;
|
||||
|
||||
var fields = [ { dbs: "prs_perslidkostenplaats_boeken", typ: "check", frm: "kpn_kpnbk" },
|
||||
{ dbs: "prs_perslidkostenplaats_inzage", typ: "check", frm: "kpn_kpninz" }];
|
||||
|
||||
var closetab = false;
|
||||
var warning = "";
|
||||
if (multi)
|
||||
if (prsAdd)
|
||||
{
|
||||
var boeken = (Request.Form("has_kpn_kpnbk").count == 1 && Request.Form("kpn_kpnbk").count == 1)
|
||||
var inzage = (Request.Form("has_kpn_kpninz").count == 1 && Request.Form("kpn_kpninz").count == 1)
|
||||
|
||||
var kpn_kpnkeys = getFParamArray("kpn_kpnkey", [-1]);
|
||||
if (kpn_kpnkeys.join(",").indexOf("-1") != -1) // Als alle is geselecteerd, dan zijn andere geselecteerde kostenplaatsen niet meer interessant.
|
||||
kpn_kpnkeys = [-1];
|
||||
|
||||
if (boeken || inzage)
|
||||
{
|
||||
if (kpn_kpnkeys[0] == -1 && filtercode != 'A')
|
||||
{
|
||||
warning = "U moet kostenplaatsen selecteren.";
|
||||
}
|
||||
else
|
||||
{
|
||||
kpnman_keys = [];
|
||||
for(var a = 0; a < kpn_prskeys.length; a++)
|
||||
{
|
||||
for (var b = 0; b < kpn_kpnkeys.length; b++)
|
||||
{
|
||||
upsertPrsKpn(kpn_prskeys[a], kpn_kpnkeys[b]);
|
||||
}
|
||||
}
|
||||
kpnman_keys = kpn_man_res;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var sqlWHERE = "";
|
||||
if (kpn_kpnkeys[0] == -1)
|
||||
sqlWHERE += " AND prs_kostenplaats_key IS NULL"
|
||||
else
|
||||
sqlWHERE += " AND prs_kostenplaats_key IN (" + kpn_kpnkeys + ")";
|
||||
sql = "DELETE FROM prs_perslidkostenplaats"
|
||||
+ " WHERE prs_perslid_key IN (" + kpn_prskeys + ")"
|
||||
+ sqlWHERE;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
}
|
||||
else if (multi)
|
||||
{ // Multi update
|
||||
var boeken = (Request.Form("has_kpn_kpnbk").count == 1 && Request.Form("kpn_kpnbk").count == 1)
|
||||
var inzage = (Request.Form("has_kpn_kpninz").count == 1 && Request.Form("kpn_kpninz").count == 1)
|
||||
@@ -115,73 +159,77 @@ else if (kpnman_keys[0] > 0)
|
||||
}
|
||||
else // kpnman_keys == -1
|
||||
{ // Insert nieuwe perslidkostenplaatsen
|
||||
fields.push({ dbs: "prs_perslid_key", typ: "key", frm: "kpn_prskey" });
|
||||
fields.push({ dbs: "prs_perslidkostenplaats_key", typ: "key", seq: "prs_s_prs_perslidkp_key" });
|
||||
|
||||
var kpn_kpnkeys = getFParamIntArray("kpn_kpnkey", []);
|
||||
if (kpn_kpnkeys.length == 0 && filtercode != 'A')
|
||||
var kpn_kpnkeys = getFParamArray("kpn_kpnkey", [-1]);
|
||||
if (kpn_kpnkeys.join(",").indexOf("-1") != -1) // Als alle is geselecteerd, dan zijn andere geselecteerde kostenplaatsen niet meer interessant.
|
||||
kpn_kpnkeys = [-1];
|
||||
if (kpn_kpnkeys[0] == -1 && filtercode != 'A')
|
||||
{
|
||||
warning = "U moet kostenplaatsen selecteren.";
|
||||
}
|
||||
else
|
||||
{
|
||||
var kpn_prskey = getFParamInt("kpn_prskey"); // Gemandateerde persoon.
|
||||
var kpn_prskey = getFParamInt("kpn_prskey", "");
|
||||
|
||||
kpnman_keys = [];
|
||||
|
||||
// Als "Alle" (kostenplaatsen) is geselecteerd samen met andere kostenplaatsen, dan zijn andere geselecteerde kostenplaatsen niet meer interessant.
|
||||
if (kpn_kpnkeys.join(",").indexOf("-1") != -1)
|
||||
kpn_kpnkeys = [-1];
|
||||
// Als de array leeg is dan is "Alle" (kostenplaatsen) geselecteerd geweest.
|
||||
if (kpn_kpnkeys.length == 0)
|
||||
kpn_kpnkeys = [-1];
|
||||
|
||||
for (var i = 0; i < kpn_kpnkeys.length; i++)
|
||||
{
|
||||
// Controleer of de informatie al in de tabel aanwezig is
|
||||
// (Of de persoon al rechten heeft voor de kostenplaats)
|
||||
sql = "SELECT COALESCE(pk.prs_kostenplaats_key, -1)"
|
||||
+ " FROM prs_perslidkostenplaats pk"
|
||||
+ " WHERE COALESCE(pk.prs_kostenplaats_key, -1) = " + kpn_kpnkeys[i]
|
||||
+ " AND pk.prs_perslid_key = " + kpn_prskey
|
||||
+ " ORDER BY 1";
|
||||
var oRsKP = Oracle.Execute(sql);
|
||||
var present = (1 == 0);
|
||||
if (!oRsKP.eof)
|
||||
{
|
||||
present = (1 == 1); // Informatie is aanwezig
|
||||
}
|
||||
|
||||
if (!present)
|
||||
{ // Informatie is niet aanwezig, dus voeg nieuwe relatie toe
|
||||
if (kpn_kpnkeys[i] == -1)
|
||||
{ // Als de nieuwe rechten voor alle kostenplaatsen zijn, verwijder de aanwezige relaties
|
||||
sql = "DELETE prs_perslidkostenplaats"
|
||||
+ " WHERE prs_perslid_key = " + kpn_prskey;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
else
|
||||
{ // Verwijder rechten voor alle kostenplaatsen indien aanwezig
|
||||
sql = "DELETE prs_perslidkostenplaats"
|
||||
+ " WHERE prs_perslid_key = " + kpn_prskey
|
||||
+ " AND prs_kostenplaats_key IS NULL";
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
|
||||
fields.push({ dbs: "prs_kostenplaats_key", typ: "key", val: kpn_kpnkeys[i] });
|
||||
|
||||
var regIns = buildInsert("prs_perslidkostenplaats", fields);
|
||||
kpnman_keys[kpnman_keys.length] = regIns.sequences["prs_perslidkostenplaats_key"];
|
||||
sql = regIns.sql;
|
||||
var err = Oracle.Execute(sql, true);
|
||||
if (err.friendlyMsg)
|
||||
warning += err.friendlyMsg;
|
||||
|
||||
fields.pop(); // Haal de prs_kostenplaats_key (laatste fields item) er weer vanaf
|
||||
}
|
||||
oRsKP.Close();
|
||||
upsertPrsKpn(kpn_prskey, kpn_keys[i]);
|
||||
}
|
||||
kpnman_keys = kpn_man_res;
|
||||
}
|
||||
}
|
||||
|
||||
var useFields = [];
|
||||
function upsertPrsKpn(prs_key, kpn_key)
|
||||
{
|
||||
useFields = fields.slice(0); // simple copy
|
||||
|
||||
// Controleer of de informatie al in de tabel aanwezig is
|
||||
// (Of de persoon al rechten heeft voor de kostenplaats)
|
||||
sql = "SELECT COALESCE(pk.prs_kostenplaats_key, -1)"
|
||||
+ " FROM prs_perslidkostenplaats pk"
|
||||
+ " WHERE COALESCE(pk.prs_kostenplaats_key, -1) = " + kpn_key
|
||||
+ " AND pk.prs_perslid_key = " + prs_key
|
||||
+ " ORDER BY 1";
|
||||
var oRsKP = Oracle.Execute(sql);
|
||||
|
||||
if (!oRsKP.eof)
|
||||
{ // record present dus: update
|
||||
sql = buildUpdate("prs_perslidkostenplaats", useFields)
|
||||
+ " prs_perslid_key = " + prs_key
|
||||
+ " AND prs_kostenplaats_key = " + kpn_key;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
else
|
||||
{ // Informatie is niet aanwezig, dus voeg nieuwe relatie toe
|
||||
useFields.push({ dbs: "prs_perslid_key", typ: "key", val: prs_key });
|
||||
useFields.push({ dbs: "prs_perslidkostenplaats_key", typ: "key", seq: "prs_s_prs_perslidkp_key" });
|
||||
|
||||
// Als de nieuwe rechten voor alle kostenplaatsen zijn, verwijder de aanwezige relaties
|
||||
sql = "DELETE prs_perslidkostenplaats"
|
||||
+ " WHERE prs_perslid_key = " + prs_key;
|
||||
|
||||
if (kpn_key != -1)
|
||||
{
|
||||
// Verwijder rechten voor alle kostenplaatsen indien aanwezig
|
||||
sql += " AND prs_kostenplaats_key IS NULL";
|
||||
}
|
||||
Oracle.Execute(sql);
|
||||
|
||||
useFields.push({ dbs: "prs_kostenplaats_key", typ: "key", val: kpn_key });
|
||||
|
||||
var regIns = buildInsert("prs_perslidkostenplaats", useFields);
|
||||
kpn_man_res[kpn_man_res.length] = regIns.sequences["prs_perslidkostenplaats_key"];
|
||||
sql = regIns.sql;
|
||||
var err = Oracle.Execute(sql, true);
|
||||
if (err.friendlyMsg)
|
||||
warning += err.friendlyMsg;
|
||||
|
||||
useFields = [];
|
||||
}
|
||||
oRsKP.Close();
|
||||
}
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
|
||||
@@ -50,6 +50,17 @@ function fnrowData(oRs)
|
||||
"json");
|
||||
});
|
||||
}
|
||||
|
||||
function mandateAdd(rowArray, isMulti)
|
||||
{
|
||||
var prsKeyString = getKeyString(rowArray);
|
||||
var url = "kpn_edit_mandate.asp?modal=1&prs_keys="+prsKeyString;
|
||||
var aantalPrs = prsKeyString.split(',').length;
|
||||
var title = "[" + aantalPrs + "] " + (aantalPrs == 1 ? "<%=L("prs_perslid")%>" : "<%=L("prs_perslid_m")%>");
|
||||
|
||||
FcltMgr.openModalDetail(url, title, { callback: FcltCallbackRefresh});
|
||||
}
|
||||
|
||||
</script>
|
||||
<%
|
||||
|
||||
@@ -61,8 +72,11 @@ function perslid_list(pautfunction, params)
|
||||
var autfunction = "WEB_PRSUSE";
|
||||
var authparams = user.checkAutorisation(autfunction);
|
||||
|
||||
var authparamsMAN = user.checkAutorisation("WEB_PRSMAN", true);
|
||||
var canAdd = (authparamsMAN && authparamsMAN.ALGwritelevel < 9 && authparamsMAN.PRSwritelevel < 9);
|
||||
var authparamsPRSMAN = user.checkAutorisation("WEB_PRSMAN", true);
|
||||
var authparamsFINMSU = user.checkAutorisation("WEB_FINMSU", true);
|
||||
var authparamsFACMAN = user.checkAutorisation("WEB_FACMAN");
|
||||
var canAdd = (authparamsPRSMAN && authparamsPRSMAN.ALGwritelevel < 9 && authparamsPRSMAN.PRSwritelevel < 9);
|
||||
var canMultiAdd = (authparamsFINMSU && authparamsFINMSU.ALGwritelevel < 9) || authparamsFACMAN.PRSwritelevel < 9;
|
||||
|
||||
// Voor resulttable de globalen zetten; zou ng anders moeten.
|
||||
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
|
||||
@@ -87,6 +101,9 @@ function perslid_list(pautfunction, params)
|
||||
if (alg.canWriteRuimte(oRs("alg_ruimte_key").value, authparams.mALGwritelevel)) */
|
||||
eDelete = true;
|
||||
return ({eDelete: eDelete})
|
||||
|
||||
eMandate = false; // alleen multi
|
||||
return ({eMandate: eMandate})
|
||||
}
|
||||
%>
|
||||
|
||||
@@ -287,6 +304,8 @@ function perslid_list(pautfunction, params)
|
||||
rst.addAction({ action: "persoonEdit", caption: L("lcl_edit"), isDefault: true});
|
||||
if (canAdd)
|
||||
rst.addAction({ action: "doDelete", caption: L("lcl_delete"), enabler: "eDelete", single: false, multi: true, multiOnce: true});
|
||||
if (canMultiAdd)
|
||||
rst.addAction({ action: "mandateAdd", caption: L("lcl_add_mandates"), enabler: "eMandate", single: false, multi: true, multiOnce: true});
|
||||
|
||||
var cnt = rst.processResultset();
|
||||
%>
|
||||
|
||||
Reference in New Issue
Block a user