FSN#30748: Functionaliteit budgetmutaties.

svn path=/Website/trunk/; revision=23698
This commit is contained in:
Maykel Geerdink
2014-12-16 12:01:42 +00:00
parent c6e885dd14
commit 23e0a0dca1
5 changed files with 94 additions and 67 deletions

View File

@@ -68,7 +68,8 @@ else
// Wijzigen van de kostenplaats(groep)? Setting prs_restrict_kpedit {0=volgens autorisatie (default) | 1=alleen eigen kp/kpg wijzigen}.
// WEB_FINMSU rechten of budgethouder.
var authparams = user.checkAutorisation("WEB_FINMSU", true);
var canChange = ((authparams && authparams.ALGwritelevel < 9) ||
var canChangeAlg = (authparams && authparams.ALGwritelevel < 9);
var canChange = (canChangeAlg ||
(S("prs_restrict_kpedit") == 1 && (kpn_prs_key == user_key || kpngrp_prs_key == user_key))) // Alleen eigen kp/kpg wijzigen
user.auth_required_or_abort(canChange);
@@ -137,14 +138,14 @@ user.auth_required_or_abort(canChange);
onSubmit="kpn_submit();">
<input type="hidden" name="kpg_limperiode" value="<%=kpg_limperiode%>">
<% BLOCK_START("kpnMan", "");
RWFIELDTR("kpn_oms", "fld", L("lcl_prs_descr"), kpn_oms, {maxlength: 60});
RWFIELDTR("kpn_oms", "fld", L("lcl_prs_descr"), kpn_oms, {maxlength: 60, readonly: !canChangeAlg});
FCLTpersoonselector("prs_key", // requestor
"sgPerson",
{ perslidKey: kpn_prs_key,
label: L("lcl_prs_budgethouder"),
whenEmpty: L("lcl_search_generic"), // want filter
readonly: false });
RWFIELDTR("kpn_nr", "fld", L("lcl_prs_dept_name"), kpn_nr, {required: true, maxlength: 30});
readonly: !canChangeAlg });
RWFIELDTR("kpn_nr", "fld", L("lcl_prs_dept_name"), kpn_nr, {required: true, maxlength: 30, readonly: !canChangeAlg});
sql = "SELECT 'ALG' modulekey, "
+ " LCL.L('lcl_prs_kosttype_alg') omschrijving "
@@ -162,7 +163,7 @@ user.auth_required_or_abort(canChange);
{ label: L("lcl_prs_type"),
initKey: kpn_module,
emptyOption: "",
readonly: false,
readonly: !canChangeAlg,
required: true });
sql = "SELECT prs_kostenplaatsgrp_key"
@@ -174,15 +175,15 @@ user.auth_required_or_abort(canChange);
{ label: L("lcl_prs_kostenpl_group"),
initKey: kpn_grpkey,
emptyOption: "",
readonly: false,
readonly: !canChangeAlg,
onChange: "onChangeKpngrp()",
extraParamValue: "prs_kostenplaatsgrp_limperiode" });
RWCHECKBOXTR("kpn_extern", "fldcheck", L("lcl_prs_kpnextern"), kpn_extern);
RWCHECKBOXTR("kpn_extern", "fldcheck", L("lcl_prs_kpnextern"), kpn_extern, {readonly: !canChangeAlg});
// <!-- Datum -->
FCLTcalendar("enddate",
{ label: L("lcl_end_date"),
datum: kpn_eind,
readonly: false,
readonly: !canChangeAlg,
initEmpty: !kpn_eind || kpn_key <= 0
});

View File

@@ -48,7 +48,8 @@ else
// Wijzigen van de kostenplaats(groep)? Setting prs_restrict_kpedit {0=volgens autorisatie (default) | 1=alleen eigen kp/kpg wijzigen}.
// WEB_FINMSU rechten of budgethouder.
var authparams = user.checkAutorisation("WEB_FINMSU", true);
var canChange = ((authparams && authparams.ALGwritelevel < 9) ||
var canChangeAlg = (authparams && authparams.ALGwritelevel < 9);
var canChange = (canChangeAlg ||
(S("prs_restrict_kpedit") == 1 && (prs_key == user_key))) // Alleen eigen kp/kpg wijzigen
user.auth_required_or_abort(canChange);
%>
@@ -85,14 +86,14 @@ user.auth_required_or_abort(canChange);
target="hidFrameSubmit"
onSubmit="kpn_submit();">
<% BLOCK_START("kpnMan", "");
RWFIELDTR("kpngrp_oms", "fld", L("lcl_prs_descr"), kpngrp_oms, {maxlength: 60});
RWFIELDTR("kpngrp_nr", "fld", L("lcl_prs_number"), kpngrp_nr, {maxlength: 10});
RWFIELDTR("kpngrp_oms", "fld", L("lcl_prs_descr"), kpngrp_oms, {maxlength: 60, readonly: !canChangeAlg});
RWFIELDTR("kpngrp_nr", "fld", L("lcl_prs_number"), kpngrp_nr, {maxlength: 10, readonly: !canChangeAlg});
FCLTpersoonselector("prs_key", // requestor
"sgPerson",
{ perslidKey: prs_key,
label: L("lcl_prs_budgethouder"),
whenEmpty: L("lcl_search_generic"), // want filter
readonly: false });
readonly: !canChangeAlg });
RWFIELDTR("kpngrp_limiet", "fld", L("lcl_prs_limiet"), kpngrp_limiet, {maxlength: 8});
sql = "SELECT 0, " + safe.quoted_sql(L("lcl_prs_none")) + ", 0 FROM DUAL"
+ " UNION SELECT 1, " + safe.quoted_sql(L("lcl_prs_month")) + ", 1 FROM DUAL"

View File

@@ -20,7 +20,7 @@ FCLTHeader.Requires({ plugins:["jQuery"],
function fnrowData(oRs)
{
var key = oRs("prs_kostenplaats_key").value;
var key = oRs("prs_kostenplaats_key").Value;
var data = {key:key};
@@ -96,63 +96,70 @@ function kpn_list(pautfunction, params)
+ " prs_perslid p, "
+ " prs_kostenplaatsgrp kpg "
+ " WHERE p.prs_perslid_key(+) = k.prs_perslid_key "
+ " AND kpg.prs_kostenplaatsgrp_key(+) = k.prs_kostenplaatsgrp_key "
+ " AND k.prs_kostenplaats_verwijder IS NULL "
if (!(authparams && authparams.ALGreadlevel < 9 && authparams.ALGwritelevel < 9)) // Geen WEB_FINMSU. Dan ben ik budgedhouder en mag ik alleen mijn kostenplaatsen zien.
sqln += "AND k.prs_perslid_key = " + user_key;
if ( authparams && authparams.PRSwritelevel== 0 )
{ sqln += " AND p.prs_afdeling_key IN "
+ "(SELECT a.prs_afdeling_key FROM prs_v_afdeling a "
+ "WHERE a.prs_bedrijf_key = " + user.afdeling().prs_bedrijf_key() + ")"
if (authparams && authparams.PRSwritelevel == 0)
{
sqln += " AND p.prs_afdeling_key IN"
+ " (SELECT a.prs_afdeling_key FROM prs_v_afdeling a "
+ " WHERE a.prs_bedrijf_key = " + user.afdeling().prs_bedrijf_key() + ")"
}
if (descr)
{
{
sqln += " AND UPPER(k.prs_kostenplaats_omschrijving) LIKE " + safe.quoted_sql_wild("%" + descr + "%");
}
}
if (name)
{
{
sqln += " AND UPPER(k.prs_kostenplaats_nr) LIKE " + safe.quoted_sql_wild("%" + name + "%");
}
}
if (budgeth_key)
{
{
sqln += " AND k.prs_perslid_key = " + budgeth_key;
}
}
if (kstplgr_key)
{
{
sqln += " AND k.prs_kostenplaatsgrp_key = " + kstplgr_key;
}
}
sqln += "ORDER BY 2, "
+ " 3, "
+ " 4, "
+ " 5 "
if (!(authparams && authparams.ALGreadlevel < 9 && authparams.ALGwritelevel < 9)) // Geen WEB_FINMSU. Dan ben ik budgedhouder en mag ik alleen mijn kostenplaatsen zien.
// Budgethouder van kostenplaats UNION Budgethouder van kostenplaatsgroep.
sqln = sqln
+ " AND kpg.prs_kostenplaatsgrp_key(+) = k.prs_kostenplaatsgrp_key"
+ " AND k.prs_perslid_key = " + user_key
+ " UNION "
+ sqln
+ " AND kpg.prs_kostenplaatsgrp_key = k.prs_kostenplaatsgrp_key"
+ " AND kpg.prs_perslid_key = " + user_key;
else
sqln += " AND kpg.prs_kostenplaatsgrp_key(+) = k.prs_kostenplaatsgrp_key"
sqln += " ORDER BY 2"
+ " , 3"
+ " , 4"
+ " , 5"
var addurl = "appl/prs/kpn_kpn.asp";
if (canAdd)
{
addButton = [{ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + L("lcl_add") + "')" }]
}
{
addButton = [{ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + L("lcl_add") + "')" }]
}
function formatBudgethouder (oRs)
{
var prefix = ''+oRs("prs_perslid_verwijder").value != 'null' ? '<span class="deleted">' : '';
var suffix = ''+oRs("prs_perslid_verwijder").value != 'null' ? '</span>' : '';
if (''+oRs("naam").value != 'null')
return prefix + safe.html(oRs("naam").value) + suffix;
function formatBudgethouder (oRs)
{
var prefix = '' + oRs("prs_perslid_verwijder").Value != 'null' ? '<span class="deleted">' : '';
var suffix = '' + oRs("prs_perslid_verwijder").Value != 'null' ? '</span>' : '';
if ('' + oRs("naam").Value != 'null')
return prefix + safe.html(oRs("naam").Value) + suffix;
}
function formatType (oRs)
{
switch(oRs("prs_kostenplaats_module").value)
switch(oRs("prs_kostenplaats_module").Value)
{
case 'PRS':
return L("lcl_prs_kosttype_prs");

View File

@@ -109,14 +109,20 @@ var authparamsFINMSU = user.checkAutorisation("WEB_FINMSU", true);
{
if (!auth_all)
{
sql_kpn = " SELECT pk.prs_kostenplaats_key "
+ " FROM prs_perslidkostenplaats pk "
sql_kpn = " SELECT pk.prs_kostenplaats_key"
+ " FROM prs_perslidkostenplaats pk"
+ " WHERE pk.prs_perslid_key = " + user_key
+ " AND pk.prs_perslidkostenplaats_inzage = 1 "
+ " AND pk.prs_perslidkostenplaats_inzage = 1"
+ " UNION ALL "
+ " SELECT prs_kostenplaats_key "
+ " FROM prs_v_aanwezigkostenplaats "
+ " WHERE prs_perslid_key = " + user_key;
+ " SELECT kp.prs_kostenplaats_key"
+ " FROM prs_v_aanwezigkostenplaats kp"
+ " WHERE kp.prs_perslid_key = " + user_key
+ " UNION ALL "
+ " SELECT kp.prs_kostenplaats_key"
+ " FROM prs_v_aanwezigkostenplaats kp"
+ " , prs_kostenplaatsgrp kpg"
+ " WHERE kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key"
+ " AND kpg.prs_perslid_key = " + user_key;
oRs = Oracle.Execute (sql_kpn);
kpn_keys = "" // List of my kpn keys
while (!oRs.eof)
@@ -327,8 +333,9 @@ var authparamsFINMSU = user.checkAutorisation("WEB_FINMSU", true);
+ " AND bi.bes_srtdeel_key = isd.bes_srtdeel_key"
+ " AND isd.bes_srtgroep_key = isg.bes_srtgroep_key"
+ " AND isg.ins_discipline_key = bdis.ins_discipline_key"
// Alleen bestellingopdrachten in de behandelings fase (In bestelling (Bevestigd)(4)) en in de gereed fase (Geleverd(6) en Verwerkt(7)).
// Afgewezen(1), In behandeling(3), Ter bevestiging(5) en Geannuleerd(8) doen niet mee in de bepaling van geraamde en definitieve kosten.
+ " AND bo.bes_bestelopdr_status NOT IN (1, 3, 5, 8)"
+ " AND bo.bes_bestelopdr_status IN (4, 6, 7)"
+ (uitv_date && !exp_date
? " AND bo.bes_bestelopdr_datum BETWEEN " + ora_date1 + " AND " + ora_date2
: " AND boi.bes_bestelopdr_item_verwerkt BETWEEN " + ora_date1 + " AND " + ora_date2);
@@ -346,7 +353,7 @@ var authparamsFINMSU = user.checkAutorisation("WEB_FINMSU", true);
+ " , prs_kostenplaatsgrp_key"
+ " , kpgroep"
+ " , limietperiode"
+ " FROM (SELECT tab.prs_kostenplaats_key"
+ " FROM (SELECT k.prs_kostenplaats_key"
+ " , " + S("prs_kpn_string") + " kostenplaats"
// Alleen de kostenplaatsen met geraamde en definitieve kosten zijn opgeleverd.
// BES: Geraamd: Ter bevestiging(2) (verzonden)
@@ -359,7 +366,7 @@ var authparamsFINMSU = user.checkAutorisation("WEB_FINMSU", true);
+ " WHEN (module = 'BES' AND (status = 6 OR status = 7)) OR"
+ " (module = 'MLD' AND (status = 7 OR status = 9)) OR"
+ " (module = 'RES' AND (status = 5 OR status = 6))"
+ " THEN bedrag"
+ " THEN COALESCE(bedrag, 0)"
+ " ELSE 0"
+ " END bedrag"
+ " , CASE"
@@ -367,7 +374,7 @@ var authparamsFINMSU = user.checkAutorisation("WEB_FINMSU", true);
+ " (module = 'MLD' AND (status = 7 OR status = 9)) OR"
+ " (module = 'RES' AND (status = 5 OR status = 6))"
+ " THEN 0"
+ " ELSE bedrag"
+ " ELSE COALESCE(bedrag, 0)"
+ " END geraamd"
+ " , k.prs_kostenplaats_limiet"
+ " , k.prs_kostenplaatsgrp_key"
@@ -427,6 +434,7 @@ var authparamsFINMSU = user.checkAutorisation("WEB_FINMSU", true);
+ ", k.prs_kostenplaats_limietperiode"
+ " ORDER BY 2, 3, 5, 6, 7, 8, 11";
}
// Kostenplaatsen waar nog geen kosten op zijn geboekt dienen ook meegenomen te worden in het overzicht. Er mag dus gelden dat bedrag 0 is.
sql += " FROM ("
+ sql_res_rsv_ruimte
+ " UNION ALL "
@@ -448,14 +456,13 @@ var authparamsFINMSU = user.checkAutorisation("WEB_FINMSU", true);
+ ", prs_perslid p"
+ ", prs_v_afdeling d"
+ ", alg_locatie l"
+ " WHERE tab.prs_kostenplaats_key = k.prs_kostenplaats_key(+)"
+ " WHERE tab.prs_kostenplaats_key(+) = k.prs_kostenplaats_key"
+ " AND tab.prs_kostensoort_key = ks.prs_kostensoort_key(+)"
+ " AND k.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key"
+ " AND k.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)"
+ " AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)"
+ " AND tab.prs_perslid_key = p.prs_perslid_key"
+ " AND p.prs_afdeling_key = d.prs_afdeling_key"
+ " AND tab.prs_perslid_key = p.prs_perslid_key(+)"
+ " AND p.prs_afdeling_key = d.prs_afdeling_key(+)"
+ " AND tab.locatie_key = l.alg_locatie_key(+)"
+ " AND bedrag <> 0"
+ sql_kpn
+ sql_kostgrp
+ sql_kostsrt

View File

@@ -40,15 +40,26 @@ FCLTHeader.Requires({ plugins:["jQuery"],
<td class="label"><label for="descr"><%=L("lcl_prs_dept_name")%>:</label></td>
<td><input type="text" class="fldsrch" name="name"></td>
</tr>
<% sql = "SELECT DISTINCT p.prs_perslid_key, "
+ S("prs_pers_string")
+ " FROM prs_kostenplaats pk, "
+ " prs_perslid p "
+ " WHERE pk.prs_perslid_key = p.prs_perslid_key "
<% sql = "SELECT DISTINCT p.prs_perslid_key"
+ " , " + S("prs_pers_string")
+ " FROM prs_kostenplaats pk"
+ " , prs_perslid p"
+ " WHERE pk.prs_perslid_key = p.prs_perslid_key"
+ (!(authparams && authparams.ALGreadlevel)
? " AND pk.prs_perslid_key = " + user_key
? " AND pk.prs_perslid_key = " + user_key
: "")
+ " ORDER BY " + S("prs_pers_string")
+ " UNION "
+ "SELECT DISTINCT p.prs_perslid_key"
+ " , " + S("prs_pers_string")
+ " FROM prs_kostenplaats pk"
+ " , prs_kostenplaatsgrp pkg"
+ " , prs_perslid p"
+ " WHERE pk.prs_perslid_key = p.prs_perslid_key"
+ " AND pk.prs_kostenplaatsgrp_key = pkg.prs_kostenplaatsgrp_key"
+ (!(authparams && authparams.ALGreadlevel)
? " AND pkg.prs_perslid_key = " + user_key
: "")
+ " ORDER BY 2"
FCLTselector("budgeth", sql,