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

svn path=/Website/trunk/; revision=22342
This commit is contained in:
Maykel Geerdink
2014-08-14 14:53:30 +00:00
parent 6313abcd76
commit 19962d17c9
6 changed files with 34 additions and 16 deletions

View File

@@ -143,7 +143,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
},
analysereferentie:
function _analysereferentie(ref, iscontactpers)
function _analysereferentie(ref, ascontactpers)
{ // Levert info op van de meegegeven referentie
// {
// ref_type: "O", "B" of "C",
@@ -281,10 +281,11 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " 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) : "")
+ (iscontactpers
+ (ascontactpers
? " AND c.cnt_prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ " WHERE cp.prs_perslid_key = " + user_key
+ " AND cp.prs_contactpersoon_verwijder IS NULL)"
: "");
oRs = Oracle.Execute(sql);
if (!oRs.eof) {
@@ -319,10 +320,11 @@ 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
+ (ascontactpers
? " AND bo.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ " WHERE cp.prs_perslid_key = " + user_key
+ " AND cp.prs_contactpersoon_verwijder IS NULL)"
: "");
+ " ORDER BY bo.bes_bestelopdr_id";
oRs = Oracle.Execute(sql);
@@ -368,10 +370,11 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " 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
+ (iscontactpers
+ (ascontactpers
? " AND o.mld_uitvoerende_keys IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ " WHERE cp.prs_perslid_key = " + user_key
+ " AND cp.prs_contactpersoon_verwijder IS NULL)"
: "");
oRs = Oracle.Execute(sql);
if (!oRs.eof)

View File

@@ -95,7 +95,7 @@ else // nieuwe factuur. Defaults bepalen
this_fin.factuur_info = fin_factuur;
}
}
var isContactpersoon = this_fin.canFEwrite;
var asContactpersoon = this_fin.canFEwrite && !this_fin.canFOwrite;
var refoms = L("lcl_fin_referentie");
var refurl = "";
@@ -137,7 +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;
var asContactpersoon = <%=asContactpersoon? 1 : 0%> == 1;
jQuery(document).ready(function()
{

View File

@@ -326,7 +326,7 @@ function referenceChanged(refchanged)
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(),
iscontactpers: isContactpersoon? 1 : 0
ascontactpers: asContactpersoon? 1 : 0
});
FcltGetRefInfoCallback(returndata)
}

View File

@@ -35,8 +35,8 @@ 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
var isContactpersoon = this_fin.canFEwrite;
var referentiegegevens = fin.analysereferentie(referentienr, isContactpersoon);
var asContactpersoon = this_fin.canFEwrite && !this_fin.canFOwrite;
var referentiegegevens = fin.analysereferentie(referentienr, asContactpersoon);
// Het moet een geldige referentie zijn.
user.auth_required_or_abort(referentiegegevens.valid);

View File

@@ -71,7 +71,7 @@ function fin_list (params)
// ik ken 2 varianten: allemaal of alleen de mijne
var alleenmijnkostenplaatsen = (!authparamsFINUSE && !authparamsFINFOF && !authparamsFINBOF); // geen FINUSE, FINFOF of FINBOF -> budgethouder
var isContactpersoon = user.isContactpersoon();
var asContactpersoon = user.isContactpersoon() && !authparamsFINFOF && !authparamsFINBOF;
// Voor resulttable de globalen zetten; zou nog anders moeten.
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
@@ -219,7 +219,22 @@ function fin_list (params)
+ " AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)"
+ " AND f.cnt_contract_key = c.cnt_contract_key(+)"
+ " AND c.ins_discipline_key = cd.ins_discipline_key(+)"
+ " AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)";
+ " AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)"
+ (asContactpersoon
? " AND (o.mld_uitvoerende_keys IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key
+ " AND cp.prs_contactpersoon_verwijder IS NULL)"
+ " OR bo.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key
+ " AND cp.prs_contactpersoon_verwijder IS NULL)"
+ " OR c.cnt_prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key
+ " AND cp.prs_contactpersoon_verwijder IS NULL)"
+ " )"
: "");
// Als geen FINFOF maar wel FINBOF moet ik ook de alg-scope controleren
if (!authparamsFINFOF && authparamsFINBOF && authparamsFINBOF.ALGreadlevel > -1)

View File

@@ -26,9 +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 ascontactpers = (getQParamInt("ascontactpers", 0) == 1);
var fin_factuur_geg = fin.analysereferentie(ref_nr, iscontactpers);
var fin_factuur_geg = fin.analysereferentie(ref_nr, ascontactpers);
fin_factuur_geg.fin_boekm_jaar = fin_boekm_jaar;
fin_factuur_geg.fin_key = -1;