PCHD#31238: Vervanger van budgethouder kan geen factuur goedkeuren.
svn path=/Website/trunk/; revision=24468
This commit is contained in:
@@ -35,15 +35,18 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
|
||||
{
|
||||
var fin_status = -1;
|
||||
var kpverantwoordelijke = -1;
|
||||
var goedkeurder = -1;
|
||||
if (pfin_key > 0)
|
||||
{
|
||||
var fsql = "SELECT f.fin_factuur_statuses_key,"
|
||||
+ " prs.getkpverantwoordelijke(fin.getfactuurkostenplaats(f.fin_factuur_key), "+S("prs_approvemethod")+", -1) kpverantwoordelijke"
|
||||
var fsql = "SELECT f.fin_factuur_statuses_key"
|
||||
+ " , prs.getkpverantwoordelijke(fin.getfactuurkostenplaats(f.fin_factuur_key), "+S("prs_approvemethod")+", -1) kpverantwoordelijke"
|
||||
+ " , prs_perslid_key_goedkeur"
|
||||
+ " FROM fin_factuur f"
|
||||
+ " WHERE fin_factuur_key = " + pfin_key
|
||||
var foRs = Oracle.Execute(fsql);
|
||||
fin_status = foRs("fin_factuur_statuses_key").Value;
|
||||
kpverantwoordelijke = foRs("kpverantwoordelijke").Value;
|
||||
goedkeurder = foRs("prs_perslid_key_goedkeur").Value;
|
||||
foRs.Close();
|
||||
}
|
||||
|
||||
@@ -60,7 +63,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
|
||||
}
|
||||
|
||||
var fresult = user.func_enabled2("FIN", { alg_key: alg_key, loc_key: loc_key, prs_key: user_key,
|
||||
isOptional: (kpverantwoordelijke == user_key || user.isCollega(kpverantwoordelijke)) }); // optional als ik hier budgethouder
|
||||
isOptional: user.isCollega(kpverantwoordelijke) }); // optional als ik hier budgethouder
|
||||
|
||||
fresult.fin_key = pfin_key;
|
||||
if (pfin_key > 0)
|
||||
@@ -80,7 +83,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
|
||||
fresult.canReadAny = (fresult.canRead("WEB_FINUSE") && isContactpersoon) ||
|
||||
fresult.canRead("WEB_FINFOF") ||
|
||||
fresult.canRead("WEB_FINBOF") ||
|
||||
(kpverantwoordelijke == user_key || user.isCollega(kpverantwoordelijke));
|
||||
user.isCollega(kpverantwoordelijke);
|
||||
fresult.canFEread = fresult.canRead("WEB_FINUSE") && isContactpersoon;
|
||||
fresult.canFOread = fresult.canRead("WEB_FINFOF");
|
||||
fresult.canBOread = fresult.canRead("WEB_FINBOF");
|
||||
@@ -117,30 +120,30 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
|
||||
fresult.canInvLinChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
break;
|
||||
case 1: // Afgewezen
|
||||
fresult.canUnReject = (fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF") || (kpverantwoordelijke == user_key || user.isCollega(kpverantwoordelijke))) && (kpverantwoordelijke > 0);
|
||||
fresult.canUnReject = (fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF") || user.isCollega(kpverantwoordelijke)) && (kpverantwoordelijke > 0);
|
||||
break;
|
||||
case -1: // Nieuwe factuur
|
||||
case 2: // Ingevoerd
|
||||
fresult.canChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) ||
|
||||
fresult.canWrite("WEB_FINFOF") ||
|
||||
(fresult.canWrite("WEB_FINBOF") && S("fin_bof_mag_editen") == 1);
|
||||
fresult.canAccept = (fresult.canWrite("WEB_FINBOF") || (kpverantwoordelijke == user_key || user.isCollega(kpverantwoordelijke))) && (kpverantwoordelijke > 0);
|
||||
fresult.canAccept = (fresult.canWrite("WEB_FINBOF") || user.isCollega(kpverantwoordelijke)) && (kpverantwoordelijke > 0);
|
||||
fresult.canDelete = fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canDateChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canRemarkChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canInvLinChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
break;
|
||||
case 5: // Financieel goedgekeurd
|
||||
fresult.canUnapprove = fresult.canWrite("WEB_FINGOE") || (fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF") || (kpverantwoordelijke == user_key || user.isCollega(kpverantwoordelijke))) && (kpverantwoordelijke > 0);
|
||||
fresult.canUnapprove = fresult.canWrite("WEB_FINGOE") || (fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF") || user.isCollega(kpverantwoordelijke)) && (kpverantwoordelijke > 0);
|
||||
// Maar na wijzigen moet er opnieuw gefiatteed worden door BO.
|
||||
fresult.canChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canDateChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canRemarkChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canInvLinChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canGoedkeur = fresult.canWrite("WEB_FINGOE") && S("fin_enable_goedkeuren") == 1;
|
||||
fresult.canGoedkeur = fresult.canWrite("WEB_FINGOE") && user.isCollega(goedkeurder) && S("fin_enable_goedkeuren") == 1;
|
||||
break;
|
||||
case 6: // Akkoord
|
||||
fresult.canUnapprove = (fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF") || (kpverantwoordelijke == user_key || user.isCollega(kpverantwoordelijke))) && (kpverantwoordelijke > 0);
|
||||
fresult.canUnapprove = (fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF") || user.isCollega(kpverantwoordelijke)) && (kpverantwoordelijke > 0);
|
||||
// Maar na wijzigen moet er opnieuw gefiatteed worden door BO.
|
||||
fresult.canChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
fresult.canDateChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) || fresult.canWrite("WEB_FINFOF");
|
||||
|
||||
@@ -50,17 +50,13 @@ var sql = "SELECT fin_factuur_key"
|
||||
+ " FROM fin_factuur f"
|
||||
+ " WHERE fin_factuur_key IN (" + fin_key_arr.join(",") + ")"
|
||||
+ " AND fin_factuur_verwijder IS NULL"
|
||||
+ " AND prs.getkpverantwoordelijke(fin.getfactuurkostenplaats(f.fin_factuur_key), " + S("prs_approvemethod") + ", -1) IN (" + prsKeys + ")" // Kpverantwoordelijke IN (user_key, vervangers).
|
||||
+ " AND fin_factuur_statuses_key IN (2, 5)"; // Status "Ingevoerd(2)" of "Ter goedkeuring(5)".
|
||||
oRs = Oracle.Execute(sql);
|
||||
|
||||
var this_fin;
|
||||
while (!oRs.eof)
|
||||
{
|
||||
this_fin = fin.func_enabled_factuur(oRs("fin_factuur_key").Value);
|
||||
var finbof = this_fin.canBOwrite;
|
||||
var kpverantwoordelijke = oRs("kpverantwoordelijke").Value;
|
||||
if (finbof || (kpverantwoordelijke == user_key || user.isCollega(kpverantwoordelijke)))
|
||||
var this_fin = fin.func_enabled_factuur(oRs("fin_factuur_key").Value);
|
||||
if (this_fin.canBOwrite || user.isCollega(oRs("kpverantwoordelijke").Value))
|
||||
{
|
||||
ingesloten.push ({ factuur_key: oRs("fin_factuur_key").Value,
|
||||
prs_key_goedkeur: oRs("prs_perslid_key_goedkeur").Value
|
||||
|
||||
@@ -48,17 +48,13 @@ var sql = "SELECT fin_factuur_key"
|
||||
+ " FROM fin_factuur f"
|
||||
+ " WHERE fin_factuur_key IN (" + fin_key_arr.join(",") + ")"
|
||||
+ " AND fin_factuur_verwijder IS NULL"
|
||||
+ " AND prs_perslid_key_goedkeur IN (" + prsKeys + ")" // Goedkeurder IN (user_key, vervangers).
|
||||
+ " AND fin_factuur_statuses_key = 5"; // Status Financieel goedgekeurd(5).
|
||||
oRs = Oracle.Execute(sql);
|
||||
|
||||
var this_fin;
|
||||
while (!oRs.eof)
|
||||
{
|
||||
this_fin = fin.func_enabled_factuur(oRs("fin_factuur_key").Value);
|
||||
var fingoe = this_fin.canGOEwrite;
|
||||
var goedkeurder = oRs("prs_perslid_key_goedkeur").Value;
|
||||
if (fingoe && (goedkeurder == user_key || user.isCollega(goedkeurder)))
|
||||
var this_fin = fin.func_enabled_factuur(oRs("fin_factuur_key").Value);
|
||||
if (this_fin.canGOEwrite && user.isCollega(oRs("prs_perslid_key_goedkeur").Value))
|
||||
{
|
||||
ingesloten.push (oRs("fin_factuur_key").Value);
|
||||
tobevalidated++;
|
||||
|
||||
@@ -144,21 +144,7 @@ function fin_list (params)
|
||||
+ " FROM prs_perslid p"
|
||||
+ " WHERE prs_perslid_key = budgethouder) budgethoudernaam"
|
||||
+ " , c.prs_perslid_key_eig"
|
||||
+ " , CASE" // Contracteigenaar IN (user_key, vervangers).
|
||||
+ " WHEN prs_perslid_key_eig IN (" + prsKeys + ")"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END inCList"
|
||||
+ " , CASE" // Budgethouder IN (user_key, vervangers).
|
||||
+ " WHEN budgethouder IN (" + prsKeys + ")"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END inBList"
|
||||
+ " , CASE" // Goedkeurder IN (user_key, vervangers).
|
||||
+ " WHEN prs_perslid_key_goedkeur IN (" + prsKeys + ")"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END inGList"
|
||||
+ " , prs_perslid_key_goedkeur"
|
||||
+ " , (SELECT max(fin_factuur_note_aanmaak)"
|
||||
+ " FROM fin_factuur_note fn"
|
||||
+ " WHERE fn.fin_factuur_key = f.fin_factuur_key) notitie";
|
||||
@@ -593,19 +579,16 @@ function fin_list (params)
|
||||
var besmldfiat_write = false;
|
||||
var cntfiat_write = false;
|
||||
var fiat_write = false;
|
||||
var inBList = (oRs("inBList").Value == 1); // In de lijst van budgethouder en vervangers. Budgethouder IN (user_key, vervangers).
|
||||
var inGList = (oRs("inGList").Value == 1); // In de lijst van goedkeurder en vervangers. Goedkeurder IN (user_key, vervangers).
|
||||
var inCList = (oRs("inCList").Value == 1); // In de lijst van contracteigenaar en vervangers. Contracteigenaar IN (user_key, vervangers).
|
||||
|
||||
if (oRs("bes_bestelopdr_key").Value)
|
||||
besmldfiat_write = (oRs("bes_fiat_write").Value == 1) // Ik heb write rechten op de locatie van het afleveradres
|
||||
else if (oRs("mld_opdr_key").Value)
|
||||
besmldfiat_write = (oRs("mld_fiat_write").Value == 1) // Ik heb write rechten op de plaats van de bijbehorende melding
|
||||
else if (oRs("cnt_contract_key").Value) // Contract
|
||||
cntfiat_write = inCList; // Contracteigenaar IN (user_key, vervangers).
|
||||
cntfiat_write = user.isCollega(oRs("prs_perslid_key_eig").Value); // Contracteigenaar IN (user_key, vervangers).
|
||||
else // opd_cnt_bes_type is nog niet bekend/gekozen, dan moet ik volledig rechten hebben
|
||||
fiat_write = (authparamsFINBOF && authparamsFINBOF.ALGwritelevel == -1);
|
||||
var canapprove = (inBList || cntfiat_write || besmldfiat_write || fiat_write) && !deleted;
|
||||
var canapprove = (user.isCollega(oRs("budgethouder").Value) || cntfiat_write || besmldfiat_write || fiat_write) && !deleted; // Budgethouder IN (user_key, vervangers).
|
||||
|
||||
var eDelete = !embedded &&
|
||||
(authparamsFINFOF &&
|
||||
@@ -636,7 +619,7 @@ function fin_list (params)
|
||||
S("fin_enable_goedkeuren") == 1 &&
|
||||
authparamsFINGOE &&
|
||||
authparamsFINGOE.PRSwritelevel < 9 &&
|
||||
inGList && // Goedkeurder IN (user_key, vervangers).
|
||||
user.isCollega(oRs("prs_perslid_key_goedkeur").Value) && // Goedkeurder IN (user_key, vervangers).
|
||||
oRs("fin_factuur_statuses_key").Value == 5;
|
||||
|
||||
var data = {eEdit: eEdit, eOrder: eOrder, eApprove: eApprove, eUnapprove: eUnapprove, eReject: eReject, eUnreject: eUnreject, eDelete: eDelete, eGoedkeur: eGoedkeur};
|
||||
|
||||
@@ -35,28 +35,21 @@ var prsKeys = user.collegakeylist(); // "user_key, vervangers"
|
||||
var ingesloten = [];
|
||||
// Bepaal de facturen in de selectie die
|
||||
// ook echt gefiatteerd kunnen of mogen worden.
|
||||
var sql = "SELECT fin_factuur_key,"
|
||||
+ " prs.getkpverantwoordelijke(fin.getfactuurkostenplaats(f.fin_factuur_key), " + S("prs_approvemethod") + ", -1) kpverantwoordelijke"
|
||||
var sql = "SELECT fin_factuur_key"
|
||||
+ " , prs.getkpverantwoordelijke(fin.getfactuurkostenplaats(f.fin_factuur_key), " + S("prs_approvemethod") + ", -1) kpverantwoordelijke"
|
||||
+ " , prs_perslid_key_goedkeur"
|
||||
+ " , fin_factuur_statuses_key"
|
||||
+ " FROM fin_factuur f"
|
||||
+ " WHERE fin_factuur_key IN (" + fin_key_arr.join(",") + ")"
|
||||
+ " AND fin_factuur_verwijder IS NULL"
|
||||
+ " AND prs.getkpverantwoordelijke(fin.getfactuurkostenplaats(f.fin_factuur_key), " + S("prs_approvemethod") + ", -1) IN (" + prsKeys + ")" // Kpverantwoordelijke IN (user_key, vervangers).
|
||||
+ " AND fin_factuur_statuses_key IN (5, 6)"; // Status Financieel goedgekeurd(5) of Akkoord(6).
|
||||
oRs = Oracle.Execute(sql);
|
||||
|
||||
var this_fin;
|
||||
while (!oRs.eof)
|
||||
{
|
||||
this_fin = fin.func_enabled_factuur(oRs("fin_factuur_key").Value);
|
||||
var finbof = this_fin.canBOwrite;
|
||||
var finfof = this_fin.canFOwrite;
|
||||
var fingoe = this_fin.canGOEwrite;
|
||||
var kpverantwoordelijke = oRs("kpverantwoordelijke").Value;
|
||||
var goedkeurder = oRs("prs_perslid_key_goedkeur").Value;
|
||||
if ((finfof || finbof || (kpverantwoordelijke == user_key || user.isCollega(kpverantwoordelijke))) ||
|
||||
(fingoe && (goedkeurder == user_key || user.isCollega(goedkeurder)) && S("fin_enable_goedkeuren") == 1))
|
||||
var this_fin = fin.func_enabled_factuur(oRs("fin_factuur_key").Value);
|
||||
if ((this_fin.canFOwrite || this_fin.canBOwrite || user.isCollega(oRs("kpverantwoordelijke").Value)) ||
|
||||
(this_fin.canGOEwrite && user.isCollega(oRs("prs_perslid_key_goedkeur").Value) && S("fin_enable_goedkeuren") == 1))
|
||||
{
|
||||
ingesloten.push ({ factuur_key: oRs("fin_factuur_key").Value,
|
||||
fin_status: oRs("fin_factuur_statuses_key").Value
|
||||
|
||||
@@ -35,12 +35,11 @@ var prsKeys = user.collegakeylist(); // "user_key, vervangers"
|
||||
var ingesloten = [];
|
||||
// Bepaal de facturen in de selectie die
|
||||
// ook echt gefiatteerd kunnen of mogen worden.
|
||||
var sql = "SELECT fin_factuur_key,"
|
||||
+ " prs.getkpverantwoordelijke(fin.getfactuurkostenplaats(f.fin_factuur_key), " + S("prs_approvemethod") + ", -1) kpverantwoordelijke"
|
||||
var sql = "SELECT fin_factuur_key"
|
||||
+ " , prs.getkpverantwoordelijke(fin.getfactuurkostenplaats(f.fin_factuur_key), " + S("prs_approvemethod") + ", -1) kpverantwoordelijke"
|
||||
+ " FROM fin_factuur f"
|
||||
+ " WHERE fin_factuur_key IN (" + fin_key_arr.join(",") + ")"
|
||||
+ " AND fin_factuur_verwijder IS NULL"
|
||||
+ " AND prs.getkpverantwoordelijke(fin.getfactuurkostenplaats(f.fin_factuur_key), " + S("prs_approvemethod") + ", -1) IN (" + prsKeys + ")" // Kpverantwoordelijke IN (user_key, vervangers).
|
||||
+ " AND fin_factuur_statuses_key = 1";
|
||||
oRs = Oracle.Execute(sql);
|
||||
|
||||
@@ -48,10 +47,7 @@ var this_fin;
|
||||
while (!oRs.eof)
|
||||
{
|
||||
this_fin = fin.func_enabled_factuur(oRs("fin_factuur_key").value);
|
||||
var finbof = this_fin.canBOwrite;
|
||||
var finfof = this_fin.canFOwrite;
|
||||
var kpverantwoordelijke = oRs("kpverantwoordelijke").value;
|
||||
if (finfof || finbof || (kpverantwoordelijke == user_key || user.isCollega(kpverantwoordelijke)))
|
||||
if (this_fin.canFOwrite || this_fin.canBOwrite || user.isCollega(oRs("kpverantwoordelijke").Value))
|
||||
{
|
||||
ingesloten.push (oRs("fin_factuur_key").value);
|
||||
tobeunrejected++;
|
||||
|
||||
Reference in New Issue
Block a user