FSN#30011: FIN: autorisatie(s) voor leverancier (WEB_FINUSE).

svn path=/Website/trunk/; revision=22326
This commit is contained in:
Maykel Geerdink
2014-08-14 08:42:29 +00:00
parent 3b3739d80e
commit 8e851ea7c5
8 changed files with 237 additions and 197 deletions

View File

@@ -42,8 +42,8 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " 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;
fin_status = foRs("fin_factuur_statuses_key").Value;
kpverantwoordelijke = foRs("kpverantwoordelijke").Value;
foRs.Close();
}
@@ -70,11 +70,17 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
}
// WEB_RELMAN is onderdeel van de PRS module
var presult = user.func_enabled2("PRS", { prs_key: user_key, isOptional: true });
var isContactpersoon = user.isContactpersoon();
fresult.canFEwrite = fresult.canWrite("WEB_FINUSE") && isContactpersoon;
fresult.canFOwrite = fresult.canWrite("WEB_FINFOF");
fresult.canBOwrite = fresult.canWrite("WEB_FINBOF");
fresult.canWriteAny = fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF");
fresult.canReadAny = fresult.canRead("WEB_FINFOF") || fresult.canRead("WEB_FINBOF") || kpverantwoordelijke == user_key;
fresult.canWriteAny = fresult.canWrite("WEB_FINUSE") && isContactpersoon || fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF");
fresult.canReadAny = (fresult.canRead("WEB_FINUSE") && isContactpersoon) ||
fresult.canRead("WEB_FINFOF") ||
fresult.canRead("WEB_FINBOF") ||
kpverantwoordelijke == user_key;
fresult.canFEread = fresult.canRead("WEB_FINUSE") && isContactpersoon;
fresult.canFOread = fresult.canRead("WEB_FINFOF");
fresult.canBOread = fresult.canRead("WEB_FINBOF");
@@ -99,31 +105,35 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
switch (fin_status)
{
case 3: // Incompleet
fresult.canChange = fresult.canWrite("WEB_FINFOF") || (fresult.canWrite("WEB_FINBOF") && S("fin_bof_mag_editen") == 1);
fresult.canChange = (fresult.canWrite("WEB_FINUSE") && isContactpersoon) ||
fresult.canWrite("WEB_FINFOF") ||
(fresult.canWrite("WEB_FINBOF") && S("fin_bof_mag_editen") == 1);
fresult.canDelete = fresult.canWrite("WEB_FINFOF");
fresult.canDateChange = fresult.canWrite("WEB_FINFOF");
fresult.canRemarkChange = fresult.canWrite("WEB_FINFOF");
fresult.canInvLinChange = 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 1: // Afgewezen
fresult.canUnReject = (fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF") || kpverantwoordelijke == user_key) && (kpverantwoordelijke > 0);
break;
case -1: // Nieuwe factuur
case 2: // Ingevoerd
fresult.canChange = fresult.canWrite("WEB_FINFOF") || (fresult.canWrite("WEB_FINBOF") && S("fin_bof_mag_editen") == 1);
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) && (kpverantwoordelijke > 0);
fresult.canDelete = fresult.canWrite("WEB_FINFOF");
fresult.canDateChange = fresult.canWrite("WEB_FINFOF");
fresult.canRemarkChange = fresult.canWrite("WEB_FINFOF");
fresult.canInvLinChange = 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 6: // Akkoord
fresult.canUnapprove = (fresult.canWrite("WEB_FINFOF") || fresult.canWrite("WEB_FINBOF") || kpverantwoordelijke == user_key) && (kpverantwoordelijke > 0);
// Maar na wijzigen moet er opnieuw gefiatteed worden door BO.
fresult.canChange = fresult.canWrite("WEB_FINFOF");
fresult.canDateChange = fresult.canWrite("WEB_FINFOF");
fresult.canRemarkChange = fresult.canWrite("WEB_FINFOF");
fresult.canInvLinChange = fresult.canWrite("WEB_FINFOF");
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");
break;
case 7: // Verwerkt
break;
@@ -133,7 +143,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
},
analysereferentie:
function _analysereferentie(ref)
function _analysereferentie(ref, iscontactpers)
{ // Levert info op van de meegegeven referentie
// {
// ref_type: "O", "B" of "C",
@@ -165,7 +175,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
return str;
}
var result = {};
var result = {mldopdr_key: -1, besopdr_key: -1, cnt_key: -1};
ref = trim_all(ref);
var ref_type = "";
@@ -217,7 +227,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
var srtdisc = oRs("ins_srtdiscipline_prefix").value;
var srtdisc = oRs("ins_srtdiscipline_prefix").Value;
if (srtdisc.toUpperCase() == opdr.substr(0, srtdisc.length).toUpperCase() &&
opdr.substr(srtdisc.length, 1).charCodeAt(0) >= 48 && opdr.substr(srtdisc.length, 1).charCodeAt(0) <= 57)
{
@@ -248,7 +258,6 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
result.mld_prefix = refnr_prefix;
}
}
else if (ref_type == "C")
{
var cnt_nr;
@@ -256,8 +265,8 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
var cnt_key;
cnt_nr = ref.substr(1); // haal prefix 'C' of 'c' eraf
if (cnt_nr.indexOf(".") > 0) {
// er wordt een expliciete versie aangegeven, separeer
if (cnt_nr.indexOf(".") > 0)
{ // er wordt een expliciete versie aangegeven, separeer
cnt_versie = cnt_nr.substr(cnt_nr.indexOf(".")+1); // alleen het versienr
cnt_nr = cnt_nr.substr(0,cnt_nr.indexOf(".")); // resteert het contractnummer
}
@@ -271,13 +280,17 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " FROM cnt_v_aanwezigcontract c"
+ " WHERE c.cnt_contract_nummer_intern = " + safe.quoted_sql(cnt_nr)
+ " AND c.cnt_contract_status IN (0, 1)"
+ (cnt_versie ? " AND c.cnt_contract_versie = "+ safe.quoted_sql(cnt_versie) : "");
+ (cnt_versie ? " AND c.cnt_contract_versie = "+ safe.quoted_sql(cnt_versie) : "")
+ (iscontactpers
? " AND c.cnt_prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
: "");
oRs = Oracle.Execute(sql);
if (!oRs.eof) {
result.cnt_key = oRs("cnt_contract_key").value;
result.cnt_key = oRs("cnt_contract_key").Value;
}
}
else if (ref_type == "B")
{
var besopdr = ref;
@@ -306,13 +319,18 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " AND bo.bes_bestelopdr_status NOT IN (1,3,8)" // Dat zijn echte bestellingen
+ " AND bbi.bes_bestelling_key = " + parseInt(besopdr_s[0],10)
+ " AND UPPER(bo.bes_bestelopdr_id) LIKE " + safe.quoted_sql_wild(ref + likechar) // Volgnummer kan bij bestellingen ook leeg zijn ('1234' of '1234/1')
+ (iscontactpers
? " AND bo.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
: "");
+ " ORDER BY bo.bes_bestelopdr_id";
oRs = Oracle.Execute(sql);
if (!oRs.eof)
{ // Het is een bestelopdracht
result.bes_key = besopdr_s[0]; // bestelling / volgnr //oRs("bes_bestelling_key").value;
result.besopdr_key = oRs("bes_bestelopdr_key").value; //besopdr_s[0];
result.bes_key = besopdr_s[0]; // bestelling / volgnr //oRs("bes_bestelling_key").Value;
result.besopdr_key = oRs("bes_bestelopdr_key").Value; //besopdr_s[0];
result.bes_volgnr = besopdr_s[1];
}
else
@@ -325,10 +343,11 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
}
}
if (result.ref_type == "O") {
// dan wil ik nog graag de opdrkey
if (result.ref_type == "O")
{ // dan wil ik nog graag de opdrkey
if (!result.opdr_volgnr) {
if (!result.opdr_volgnr)
{
// geen expliciet volgnummer gegeven, dan de nieuwste hanteren
sql = "SELECT COALESCE(MAX(o.mld_opdr_bedrijfopdr_volgnr), 0) opdr_volgnr"
+ " FROM mld_opdr o"
@@ -336,8 +355,8 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
oRs = Oracle.Execute(sql);
// altijd 1 resultaat
if (oRs("opdr_volgnr").value > 0)
result.opdr_volgnr = oRs("opdr_volgnr").value;
if (oRs("opdr_volgnr").Value > 0)
result.opdr_volgnr = oRs("opdr_volgnr").Value;
else
result.opdr_volgnr = 1;
}
@@ -348,13 +367,18 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " AND mto.mld_typeopdr_kosten = 1" // AADS#17542
+ " AND o.mld_statusopdr_key NOT IN (1, 2, 3, 10)" // Dat zijn echte opdrachten
+ " AND o.mld_melding_key = " + result.mld_key
+ " AND o.mld_opdr_bedrijfopdr_volgnr = " + result.opdr_volgnr;
+ " AND o.mld_opdr_bedrijfopdr_volgnr = " + result.opdr_volgnr
+ (iscontactpers
? " AND o.mld_uitvoerende_keys IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
: "");
oRs = Oracle.Execute(sql);
if (!oRs.eof)
result.mldopdr_key = oRs("mld_opdr_key").value;
else
result.mldopdr_key = -1; // Geen opdracht gevonden
result.mldopdr_key = oRs("mld_opdr_key").Value;
//else geen opdracht gevonden.
};
result.valid = result.mldopdr_key > 0 || result.besopdr_key > 0 || result.cnt_key > 0;
return result;
},
@@ -389,35 +413,35 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
var ref_type;
if (oRs("bes_bestelopdr_key").value)
if (oRs("bes_bestelopdr_key").Value)
ref_type="B";
if (oRs("cnt_key").value)
if (oRs("cnt_key").Value)
ref_type="C";
if (oRs("mld_opdr_key").value)
if (oRs("mld_opdr_key").Value)
ref_type="O";
var fin_boekm = oRs("fin_factuur_boekmaand").value;
var fin_boekm = oRs("fin_factuur_boekmaand").Value;
var fin_factuur = { fin_key: fin_key,
ref_type: ref_type,
mldopdr_key: oRs("mld_opdr_key").value,
cnt_key: oRs("cnt_key").value,
mldopdr_key: oRs("mld_opdr_key").Value,
cnt_key: oRs("cnt_key").Value,
besopdr_key: oRs("bes_bestelopdr_key").Value,
fin_totaal: oRs("fin_factuur_totaal").value,
fin_totaal_btw: oRs("fin_factuur_totaal_btw").value,
perslid_key_user: oRs("prs_perslid_key_user").value,
fin_opm: oRs("fin_factuur_opmerking").value,
fin_status_key: oRs("fin_factuur_statuses_key").value,
fin_status_oms: fin.getfinstatustext(oRs("fin_factuur_statuses_key").value),
fin_perslid_user: oRs("name").value,
fin_date: new Date(oRs("fin_factuur_datum").value),
fin_nr: oRs("fin_factuur_nr").value,
fin_totaal: oRs("fin_factuur_totaal").Value,
fin_totaal_btw: oRs("fin_factuur_totaal_btw").Value,
perslid_key_user: oRs("prs_perslid_key_user").Value,
fin_opm: oRs("fin_factuur_opmerking").Value,
fin_status_key: oRs("fin_factuur_statuses_key").Value,
fin_status_oms: fin.getfinstatustext(oRs("fin_factuur_statuses_key").Value),
fin_perslid_user: oRs("name").Value,
fin_date: new Date(oRs("fin_factuur_datum").Value),
fin_nr: oRs("fin_factuur_nr").Value,
fin_boekm: fin_boekm,
fin_boekm_jaar: fin_boekm.substr(0, 4),
fin_debiteur: oRs("fin_factuur_debiteur_nr").value,
fin_costsrt_key: oRs("prs_kostensoort_key").value,
fin_costsrt: oRs("kostensoort").value,
fin_verwijder: oRs("fin_factuur_verwijder").value
fin_debiteur: oRs("fin_factuur_debiteur_nr").Value,
fin_costsrt_key: oRs("prs_kostensoort_key").Value,
fin_costsrt: oRs("kostensoort").Value,
fin_verwijder: oRs("fin_factuur_verwijder").Value
}
oRs.Close();
@@ -441,11 +465,11 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " AND o.mld_opdr_key = " + fin_factuur.mldopdr_key;
oRs = Oracle.Execute(sql);
fin_factuur.mld_key = oRs("mld_melding_key").value;
fin_factuur.opdr_volgnr = oRs("mld_opdr_bedrijfopdr_volgnr").value;
fin_factuur.mld_prefix = oRs("prefix").value;
fin_factuur.fin_costsrt_default = oRs("prs_kostensoort_key").value;
fin_factuur.kostenplaats_key = oRs("prs_kostenplaats_key").value;
fin_factuur.mld_key = oRs("mld_melding_key").Value;
fin_factuur.opdr_volgnr = oRs("mld_opdr_bedrijfopdr_volgnr").Value;
fin_factuur.mld_prefix = oRs("prefix").Value;
fin_factuur.fin_costsrt_default = oRs("prs_kostensoort_key").Value;
fin_factuur.kostenplaats_key = oRs("prs_kostenplaats_key").Value;
oRs.Close();
break;
@@ -470,17 +494,17 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " AND isg.ins_discipline_key = bd.ins_discipline_key"
+ " AND bo.bes_bestelopdr_key = " + fin_factuur.besopdr_key
oRs = Oracle.Execute(sql);
fin_factuur.fin_costsrt_default = oRs("prs_kostensoort_key").value;
fin_factuur.kostenplaats_key = oRs("prs_kostenplaats_key").value;
fin_factuur.fin_costsrt_default = oRs("prs_kostensoort_key").Value;
fin_factuur.kostenplaats_key = oRs("prs_kostenplaats_key").Value;
var bes_bestelopdr_id = oRs("bes_bestelopdr_id").value;
var bes_bestelopdr_id = oRs("bes_bestelopdr_id").Value;
var bes_bestelopdr_id_s = bes_bestelopdr_id.split("/");
fin_factuur.bes_key = bes_bestelopdr_id_s[0];
if (bes_bestelopdr_id_s.length == 2)
fin_factuur.bes_volgnr = bes_bestelopdr_id_s[1];
fin_factuur.bes_id = oRs("bes_bestelopdr_id").value;
fin_factuur.bes_id = oRs("bes_bestelopdr_id").Value;
oRs.Close();
break;
@@ -494,10 +518,10 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " WHERE c.ins_discipline_key = cd.ins_discipline_key"
+ " AND cnt_contract_key = " + fin_factuur.cnt_key
oRs = Oracle.Execute(sql);
fin_factuur.cnt_nr = oRs("cnt_contract_nummer_intern").value;
fin_factuur.cnt_versie = oRs("cnt_contract_versie").value;
fin_factuur.fin_costsrt_default = oRs("prs_kostensoort_key").value;
fin_factuur.kostenplaats_key = oRs("prs_kostenplaats_key").value;
fin_factuur.cnt_nr = oRs("cnt_contract_nummer_intern").Value;
fin_factuur.cnt_versie = oRs("cnt_contract_versie").Value;
fin_factuur.fin_costsrt_default = oRs("prs_kostensoort_key").Value;
fin_factuur.kostenplaats_key = oRs("prs_kostenplaats_key").Value;
oRs.Close();
sql = "SELECT SUM(fin_factuur_totaal) totaal"
@@ -506,7 +530,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " AND fin_factuur_statuses_key <> 1"
+ " AND fin_factuur_datum <= " + fin_factuur.fin_date.toSQL();
oRs = Oracle.Execute(sql);
fin_factuur.totaalgefactureerd = oRs("totaal").value;
fin_factuur.totaalgefactureerd = oRs("totaal").Value;
oRs.Close();
break;
@@ -519,7 +543,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " FROM prs_kostenplaats k"
+ " WHERE k.prs_kostenplaats_key = " + fin_factuur.kostenplaats_key;
oRs = Oracle.Execute(sql);
fin_factuur.fin_budgethouder = oRs("prs_perslid_key").value;
fin_factuur.fin_budgethouder = oRs("prs_perslid_key").Value;
oRs.Close();
}
@@ -528,7 +552,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " FROM fin_factuurregel fr"
+ " WHERE fr.fin_factuur_key = " + fin_key;
oRs = Oracle.Execute(sql);
fin_factuur.totaal = oRs("sumBTW").value;
fin_factuur.totaal = oRs("sumBTW").Value;
oRs.close();
@@ -552,7 +576,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
// 10 (2): Totaal kosten matchen
// 11 (3): Termijn kosten en totaal kosten matchen
var result = 0;
result = (oRs("totaal").value? 2 : 0) + (oRs("termijn").value? 1 : 0);
result = (oRs("totaal").Value? 2 : 0) + (oRs("termijn").Value? 1 : 0);
return result;
},
@@ -648,29 +672,29 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
if (!oRs.eof)
{
var result = { ref_key: oRs("mld_opdr_key").value, // mldopdr_key
var result = { ref_key: oRs("mld_opdr_key").Value, // mldopdr_key
ref_type: "O",
ref_volgnr: opdr_volgnr,
referentie: (oRs("ins_srtdiscipline_prefix").Value||"") + fin_factuur.mld_key + "/" + opdr_volgnr,
lev_uit: oRs("uitvoerende").value,
lev_uit_key: oRs("uitvoerende_key").value,
lev_uit_type: oRs("pbtype").value,
status: status.getopdrstatustext(oRs("mld_statusopdr_key").value),
startdatum: toDateString(oRs("startdatum").value),
einddatum: toDateString(oRs("einddatum").value),
periode: oRs("periode").value,
totbedrag: oRs("totaalbedrag").value,
gefactureerd: oRs("gefactureerd").value,
gefactureerd_jaar: oRs("gefactureerd_jaar").value,
kostensoort_key: oRs("kostensoort_key").value,
kostenplaats_key: oRs("prs_kostenplaats_key").value,
loc_code: oRs("loc_code").value,
loc_key: oRs("loc_key").value,
alg_key: oRs("alg_key").value,
opdr_omschr: oRs("mld_opdr_omschrijving").value,
show_omschr: (oRs("show_omschr").value == 1),
typeopdr_omschr: oRs("mld_typeopdr_omschrijving").value,
btwtabel_key: oRs("btwtabel_key").value
lev_uit: oRs("uitvoerende").Value,
lev_uit_key: oRs("uitvoerende_key").Value,
lev_uit_type: oRs("pbtype").Value,
status: status.getopdrstatustext(oRs("mld_statusopdr_key").Value),
startdatum: toDateString(oRs("startdatum").Value),
einddatum: toDateString(oRs("einddatum").Value),
periode: oRs("periode").Value,
totbedrag: oRs("totaalbedrag").Value,
gefactureerd: oRs("gefactureerd").Value,
gefactureerd_jaar: oRs("gefactureerd_jaar").Value,
kostensoort_key: oRs("kostensoort_key").Value,
kostenplaats_key: oRs("prs_kostenplaats_key").Value,
loc_code: oRs("loc_code").Value,
loc_key: oRs("loc_key").Value,
alg_key: oRs("alg_key").Value,
opdr_omschr: oRs("mld_opdr_omschrijving").Value,
show_omschr: (oRs("show_omschr").Value == 1),
typeopdr_omschr: oRs("mld_typeopdr_omschrijving").Value,
btwtabel_key: oRs("btwtabel_key").Value
};
}
else
@@ -748,30 +772,30 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
if (!oRs.eof)
{
var bes_bestelopdr_id = oRs("bes_bestelopdr_id").value;
var bes_bestelopdr_id = oRs("bes_bestelopdr_id").Value;
bo_id = bes_bestelopdr_id.split("/")
var result = { ref_key: oRs("bes_bestelopdr_key").value, // besopdr_key
var result = { ref_key: oRs("bes_bestelopdr_key").Value, // besopdr_key
ref_type: "B",
ref_volgnr: bo_id[1],
referentie: oRs("bes_bestelopdr_id").value,
lev_uit: oRs("uitvoerende").value,
lev_uit_key: oRs("uitvoerende_key").value,
lev_uit_type: oRs("pbtype").value,
status: bes.getbesopdrstatustext(oRs("bes_bestelopdr_status").value),
startdatum: toDateString(oRs("startdatum").value),
einddatum: toDateString(oRs("einddatum").value),
periode: oRs("periode").value,
levkosten: oRs("bes_bestelling_levkosten").value,
korting: oRs("bes_bestelling_korting").value,
totbedrag: oRs("totaalbedrag").value,
gefactureerd: oRs("gefactureerd").value,
gefactureerd_jaar: oRs("gefactureerd_jaar").value,
kostensoort_key: oRs("prs_kostensoort_key").value,
kostenplaats_key: oRs("prs_kostenplaats_key").value,
loc_code: oRs("loc_code").value,
alg_key: oRs("alg_key").value,
bes_bestelopdr_id: oRs("bes_bestelopdr_id").value,
btwtabel_key: oRs("btwtabel_key").value
referentie: oRs("bes_bestelopdr_id").Value,
lev_uit: oRs("uitvoerende").Value,
lev_uit_key: oRs("uitvoerende_key").Value,
lev_uit_type: oRs("pbtype").Value,
status: bes.getbesopdrstatustext(oRs("bes_bestelopdr_status").Value),
startdatum: toDateString(oRs("startdatum").Value),
einddatum: toDateString(oRs("einddatum").Value),
periode: oRs("periode").Value,
levkosten: oRs("bes_bestelling_levkosten").Value,
korting: oRs("bes_bestelling_korting").Value,
totbedrag: oRs("totaalbedrag").Value,
gefactureerd: oRs("gefactureerd").Value,
gefactureerd_jaar: oRs("gefactureerd_jaar").Value,
kostensoort_key: oRs("prs_kostensoort_key").Value,
kostenplaats_key: oRs("prs_kostenplaats_key").Value,
loc_code: oRs("loc_code").Value,
alg_key: oRs("alg_key").Value,
bes_bestelopdr_id: oRs("bes_bestelopdr_id").Value,
btwtabel_key: oRs("btwtabel_key").Value
};
}
else
@@ -833,23 +857,23 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
{
var result = { ref_key: fin_factuur.cnt_key,
ref_type: "C",
ref_volgnr: oRs("cnt_versie").value,
referentie: 'C' + fin_factuur.cnt_nr+(oRs("cnt_versie").value ? '.'+oRs("cnt_versie").value:''),
lev_uit: oRs("uitvoerende").value,
lev_uit_key: oRs("uitvoerende_key").value,
lev_uit_type: oRs("pbtype").value,
status: oRs("cnt_contract_status").value,
startdatum: toDateString(oRs("startdatum").value),
einddatum: toDateString(oRs("einddatum").value),
periode: oRs("periode").value,
totbedrag: oRs("totaalbedrag").value,
termbedrag: oRs("termijnbedrag").value,
gefactureerd: oRs("gefactureerd").value,
gefactureerd_jaar: oRs("gefactureerd_jaar").value,
kostensoort_key: oRs("kostensoort_key").value,
kostenplaats_key: oRs("prs_kostenplaats_key").value,
btwtabel_key: oRs("btwtabel_key").value,
disc_key: oRs("ins_discipline_key").value
ref_volgnr: oRs("cnt_versie").Value,
referentie: 'C' + fin_factuur.cnt_nr+(oRs("cnt_versie").Value ? '.'+oRs("cnt_versie").Value:''),
lev_uit: oRs("uitvoerende").Value,
lev_uit_key: oRs("uitvoerende_key").Value,
lev_uit_type: oRs("pbtype").Value,
status: oRs("cnt_contract_status").Value,
startdatum: toDateString(oRs("startdatum").Value),
einddatum: toDateString(oRs("einddatum").Value),
periode: oRs("periode").Value,
totbedrag: oRs("totaalbedrag").Value,
termbedrag: oRs("termijnbedrag").Value,
gefactureerd: oRs("gefactureerd").Value,
gefactureerd_jaar: oRs("gefactureerd_jaar").Value,
kostensoort_key: oRs("kostensoort_key").Value,
kostenplaats_key: oRs("prs_kostenplaats_key").Value,
btwtabel_key: oRs("btwtabel_key").Value,
disc_key: oRs("ins_discipline_key").Value
};
}
else
@@ -907,8 +931,8 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
while (!oRs.eof)
{
result.loc_geg.push({ loc_key: oRs("cnt_alg_plaats_key").value,
loc_desc: oRs("alg_locatie_omschrijving").value
result.loc_geg.push({ loc_key: oRs("cnt_alg_plaats_key").Value,
loc_desc: oRs("alg_locatie_omschrijving").Value
});
oRs.MoveNext();
}
@@ -937,7 +961,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " FROM prs_kostenplaats k"
+ " WHERE k.prs_kostenplaats_key = " + result.kostenplaats_key;
oRs = Oracle.Execute(sql);
result.fin_budgethouder = oRs("prs_perslid_key").value;
result.fin_budgethouder = oRs("prs_perslid_key").Value;
result.kostenplaats_naam = oRs("kostenplaats_naam").Value;
oRs.Close();
}
@@ -984,9 +1008,9 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " FROM (" + sql + ")";
var oRs = Oracle.Execute(sql);
result.aantalfacturen = oRs("aantal_facturen").value;
result.totaalbedrag = oRs("totaal_bedrag").value;
result.totaalbtwbedrag = oRs("totaal_btw_bedrag").value;
result.aantalfacturen = oRs("aantal_facturen").Value;
result.totaalbedrag = oRs("totaal_bedrag").Value;
result.totaalbtwbedrag = oRs("totaal_btw_bedrag").Value;
oRs.close();
}
@@ -1008,10 +1032,10 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
btwtabel.push({ key: oRs("fin_btwtabelwaarde_key").value,
perc: oRs("fin_btwtabelwaarde_perc").value,
oms: oRs("fin_btwtabelwaarde_oms").value,
verlegd: oRs("fin_btwtabelwaarde_verlegd").value == 1
btwtabel.push({ key: oRs("fin_btwtabelwaarde_key").Value,
perc: oRs("fin_btwtabelwaarde_perc").Value,
oms: oRs("fin_btwtabelwaarde_oms").Value,
verlegd: oRs("fin_btwtabelwaarde_verlegd").Value == 1
});
oRs.moveNext();
}
@@ -1035,8 +1059,8 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " AND f.fin_factuur_verwijder IS NULL";
oRs = Oracle.Execute(sql);
var result = { fac_nr: fac_nr,
aantal: oRs("aantal").value? oRs("aantal").value : 0,
totaal: oRs("totaal").value? safe.curr(oRs("totaal").value) : 0
aantal: oRs("aantal").Value? oRs("aantal").Value : 0,
totaal: oRs("totaal").Value? safe.curr(oRs("totaal").Value) : 0
};
oRs.close();
return result;
@@ -1205,18 +1229,18 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
rowIndex ++;
fin.CreateEditRow(rowIndex,
{ hasAnyFlex: fin.hasAnyRegelFlex(),
regel_key: oRs("fin_factuurregel_key").value,
regel_nr: oRs("fin_factuurregel_nr").value,
sum: oRs("fin_factuurregel_totaal").value,
BTW: oRs("BTW").value,
btwkey: oRs("fin_btwtabelwaarde_key").value,
regel_key: oRs("fin_factuurregel_key").Value,
regel_nr: oRs("fin_factuurregel_nr").Value,
sum: oRs("fin_factuurregel_totaal").Value,
BTW: oRs("BTW").Value,
btwkey: oRs("fin_btwtabelwaarde_key").Value,
btwtabel: btwtabel,
sumBTW: oRs("sumBTW").value,
descr: oRs("fin_factuurregel_omschrijving").value,
ref: oRs("fin_factuurregel_referentie").value,
ksrt_key: oRs("prs_kostensoort_key").value,
ksrt_oms: oRs("kostensoort").value,
verlegd: oRs("verlegd").value,
sumBTW: oRs("sumBTW").Value,
descr: oRs("fin_factuurregel_omschrijving").Value,
ref: oRs("fin_factuurregel_referentie").Value,
ksrt_key: oRs("prs_kostensoort_key").Value,
ksrt_oms: oRs("kostensoort").Value,
verlegd: oRs("verlegd").Value,
copy: this_fin.fin_key != this_fin.factuur_info.fin_key // Bij kopi<70>ren factuur zijn de waarden niet identiek.
});
oRs.moveNext();

View File

@@ -45,7 +45,7 @@ if (fin_key > 0)
}
else // nieuwe factuur. Defaults bepalen
{
user.auth_required_or_abort(this_fin.canFOwrite); // Alleen FO kan aanmaken
user.auth_required_or_abort(this_fin.canFEwrite || this_fin.canFOwrite); // Alleen FE (als contactpersoon) of FO kan aanmaken.
if (copy)
{ // Haal de opdrachtgegevens op van de opdracht
@@ -95,6 +95,7 @@ else // nieuwe factuur. Defaults bepalen
this_fin.factuur_info = fin_factuur;
}
}
var isContactpersoon = this_fin.canFEwrite;
var refoms = L("lcl_fin_referentie");
var refurl = "";
@@ -136,6 +137,7 @@ var fin_btwtabel_key = oRs("fin_btwtabel_key").value; // Standaard btw tabel key
var fin_defaultboekmaand = <%=S("fin_defaultboekmaand")%>;
var fin_enable_kostensoort = <%=S("fin_enable_kostensoort")%>;
var fin_kostensoort_verplicht = <%=S("fin_kostensoort_verplicht")%>;
var isContactpersoon = <%=isContactpersoon? 1 : 0%> == 1;
jQuery(document).ready(function()
{

View File

@@ -325,7 +325,8 @@ function referenceChanged(refchanged)
{ ref_nr: $("#referentienr").val(),
fin_boekm_jaar: $("#finboekm").val().substr(0, 4),
refchanged: (refchanged && ($("#referentienr_old").val() == "" || default_costsrt_selected || fin_key == -1)? 1: 0),
fin_factuur_nr: $("#finnr").val()
fin_factuur_nr: $("#finnr").val(),
iscontactpers: isContactpersoon? 1 : 0
});
FcltGetRefInfoCallback(returndata)
}

View File

@@ -35,14 +35,17 @@ var this_fin = fin.func_enabled_factuur(fin_key); // Wat heb ik zoal aan rechten
user.auth_required_or_abort(this_fin.canChange); // TODO: testen AAIT#22473
// Status van 3 (foute import) moet bij saven 2 worden gezet
var isContactpersoon = this_fin.canFEwrite;
var referentiegegevens = fin.analysereferentie(referentienr, isContactpersoon);
// Het moet een geldige referentie zijn.
user.auth_required_or_abort(referentiegegevens.valid);
// Status van 3 (foute import) moet bij saven op 2 worden gezet.
if (fin_status_key == 3) fin_status_key = 2;
// Statis 6 (Akkoord) moet bij saven op 2 (Ingevoerd) worden gezet. Factuur dient indien nodig weer gefiatteerd te worden.
if (fin_status_key == 6) fin_status_key = 2;
var referentiegegevens = fin.analysereferentie(referentienr);
// Deze velden altijd opslaan
// Merk op: fin_factuur_totaal en fin_factuur_totaal_btw krijgen later definitieve waarde
var fields = [ { dbs: "prs_perslid_key_user", typ: "key", val: user_key },

View File

@@ -21,9 +21,10 @@ function generateFlexKenmerkCode(params)
{
// Geen autfunction bepaald. Je komt bij FIN niet binnen met een bepaalde rol (urole).
// Alleen PRSreadlevel en PRSwritelevel van belang want fac_functie_min_level = 7 (lezen en schrijven organisatie)
var authparamsFINUSE = user.checkAutorisation("WEB_FINUSE", true);
var authparamsFINFOF = user.checkAutorisation("WEB_FINFOF", true);
var authparamsFINBOF = user.checkAutorisation("WEB_FINBOF", true);
user.auth_required_or_abort(authparamsFINFOF || authparamsFINBOF || user.isBudgethouder());
user.auth_required_or_abort(authparamsFINUSE || authparamsFINFOF || authparamsFINBOF || user.isBudgethouder());
var fin_key = params.fin_key; // Factuurnummer
var regel_key = params.regel_key; // Factuurregelnummer

View File

@@ -62,15 +62,18 @@ function fin_list (params)
var urole = "bo"; // urole nodig om opdracht/contract/bestelling in te zien. Dummie waarde.
// Geen autfunction bepaald. Je komt bij FIN niet binnen met een bepaalde rol (urole).
// Nieuw/versimpeld: fac_functie_min_level = 3 (lezen en schrijven)
var authparamsFINUSE = user.checkAutorisation("WEB_FINUSE", true);
var authparamsFINFOF = user.checkAutorisation("WEB_FINFOF", true);
var authparamsFINBOF = user.checkAutorisation("WEB_FINBOF", true);
user.auth_required_or_abort(authparamsFINFOF || authparamsFINBOF || user.isBudgethouder());
user.auth_required_or_abort(authparamsFINUSE || authparamsFINFOF || authparamsFINBOF || user.isBudgethouder());
// ik ken 2 varianten: allemaal of alleen de mijne
var alleenmijnkostenplaatsen = (!authparamsFINFOF && !authparamsFINBOF); // geen FINFOF of FINBOF->budgethouder
var alleenmijnkostenplaatsen = (!authparamsFINUSE && !authparamsFINFOF && !authparamsFINBOF); // geen FINUSE, FINFOF of FINBOF -> budgethouder
// Voor resulttable de globalen zetten; zou ng anders moeten.
var isContactpersoon = user.isContactpersoon();
// Voor resulttable de globalen zetten; zou nog anders moeten.
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
var print = (outputmode == 1);
var excel = (outputmode == 2);
@@ -606,7 +609,7 @@ function fin_list (params)
}
buttons = [];
if (!embedded && authparamsFINFOF && authparamsFINFOF.PRSwritelevel < 9)
if (!embedded && ((authparamsFINFOF && authparamsFINFOF.PRSwritelevel < 9) || (authparamsFINUSE && authparamsFINUSE.PRSwritelevel < 9)))
{
var addurl = "appl/fin/fin_factuur.asp?fin_key=-1";
addurl += buildTransitParam(["cnt_key", "opdr_key", "bes_key"], params)
@@ -630,7 +633,7 @@ function fin_list (params)
}
fioRs.close();
}
if (fac_import_app_key > -1) {
if (fac_import_app_key > -1 && (authparamsFINFOF && authparamsFINFOF.PRSwritelevel < 9)) {
var impurl = "appl/imp/imp_search.asp?import_app_key=" + fac_import_app_key;
buttons.push({ icon: "folder.png", title: L("lcl_import"), action: "FcltMgr.openDetail('" + impurl + "', '" + L("lcl_import") + "')" });
}

View File

@@ -76,14 +76,16 @@ if (finstatus == -1 && finnum == "" && opdrnr == -1)
/***** End get webform parameters *****/
// Alleen PRSreadlevel en PRSwritelevel van belang want fac_functie_min_level = 7 (lezen en schrijven organisatie)
var authparamsFINUSE = user.checkAutorisation("WEB_FINUSE", true);
var authparamsFINFOF = user.checkAutorisation("WEB_FINFOF", true);
var authparamsFINBOF = user.checkAutorisation("WEB_FINBOF", true);
user.auth_required_or_abort(authparamsFINFOF || authparamsFINBOF || user.isBudgethouder());
user.auth_required_or_abort(authparamsFINUSE || authparamsFINFOF || authparamsFINBOF || user.isBudgethouder());
// ik ken 2 varianten: allemaal of alleen de mijne
var alleenmijnkostenplaatsen = (!authparamsFINFOF && !authparamsFINBOF); // geen FINFOF of FINBOF->budgethouder
var alleenmijnkostenplaatsen = (!authparamsFINUSE && !authparamsFINFOF && !authparamsFINBOF); // geen FINUSE, FINFOF of FINBOF -> budgethouder
var isContactpersoon = user.isContactpersoon();
%>
<html>
@@ -181,7 +183,7 @@ var alleenmijnkostenplaatsen = (!authparamsFINFOF && !authparamsFINBOF); // gee
FCLTbedrijfselector("handler","handler",
{ companyKey: handler_key,
label: L("lcl_handler"),
filtercode: "X",
filtercode: (isContactpersoon && authparamsFINUSE && !authparamsFINFOF && !authparamsFINBOF? "CP" : "X"),
trclass:"primsearc",
emptyOption: "",
whenEmpty: L("lcl_search_generic")
@@ -224,9 +226,11 @@ var alleenmijnkostenplaatsen = (!authparamsFINFOF && !authparamsFINBOF); // gee
trclass: "primsearch",
emptyOption: ""
})
%>
<!-- Locatie/gebouw -->
<% FCLTplaatsselector(authparamsFINBOF? authparamsFINBOF.ALGreadlevel : 9,
if (authparamsFINFOF || authparamsFINBOF)
{
// Locatie/gebouw
FCLTplaatsselector(authparamsFINBOF? authparamsFINBOF.ALGreadlevel : 9,
{ districtkey: dis_key,
locatiekey: loc_key,
gebouwkey: bld_key,
@@ -235,6 +239,7 @@ var alleenmijnkostenplaatsen = (!authparamsFINFOF && !authparamsFINBOF); // gee
terrein: true,
whenEmpty: L("lcl_search_generic") // want filter
});
}
%>
<!-- Gebouw verantwoordelijke -->
<% // Dit veld is alleen zichtbaar indien er minimaal <20><>n gebouwverantwoordelijke geconfigureerd is (suppressNoValues).

View File

@@ -26,8 +26,9 @@ var ref_nr = getQParam("ref_nr");
var fin_boekm_jaar = getQParam("fin_boekm_jaar");
var refchanged = (getQParamInt("refchanged") == 1);
var fin_factuur_nr = getQParam("fin_factuur_nr");
var iscontactpers = (getQParamInt("iscontactpers", 0) == 1);
var fin_factuur_geg = fin.analysereferentie(ref_nr);
var fin_factuur_geg = fin.analysereferentie(ref_nr, iscontactpers);
fin_factuur_geg.fin_boekm_jaar = fin_boekm_jaar;
fin_factuur_geg.fin_key = -1;