Files
Facilitor/APPL/PDA/fin_list.asp
Jos Groot Lipman a3a6e8cbe5 UWVA#36431 Passend mandaat opzoeken in organisatieboom savepoint
svn path=/Website/trunk/; revision=34959
2017-08-16 12:26:16 +00:00

203 lines
11 KiB
Plaintext

<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: fin-list.asp
Description: List of invoices 2 be approved (Mobile version)
Parameters:
Statsus: opzetje
Note: Since Mobile is limited to actual actions, only invoices that need approval by me are shown
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/discx3d.inc" -->
<!-- #include file="./resultset_table.inc" -->
<!-- #include file="./mobile.inc" -->
<!-- #include file="./iface.inc" -->
<%
var qrc = getQParamInt("qrc", 0) != 0;
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(authparamsFINUSE || authparamsFINFOF || authparamsFINBOF || user.isBudgethouder());
%>
<html>
<head>
<% FCLTMHeader.Generate({});
%></head><body><%
PAGE_START()
HEADER({title: L("lcl_mobile_goedtekeuren_facturen"), back:!qrc, home:!qrc});
CONTENT_START();
function fncolLink(oRs)
{
var url = "";
url = "../pda/factuur.asp?fin_key=" + safe.url(oRs("factuurnr_intern").Value);
return url;
};
function fncolHeader(oRs)
{
return safe.html(oRs("opdrachtnr").Value || "");
};
function fnAside(oRs)
{
return safe.html(S("currency_pref")+(oRs("bedrag_excl_BTW").value).toFixed(2));
}
// PF: als opzetje ff een kopietje van fin_list om mee te beginnen
sql = "SELECT f.fin_factuur_key factuurnr_intern"
+ " , fin_factuur_verwijder"
+ " , f.fin_factuur_datum factuur_datum"
+ " , COALESCE((SELECT b.prs_bedrijf_naam FROM prs_bedrijf b WHERE prs_bedrijf_key = COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key)),"
+ " (SELECT " + S("prs_dep_string") + " FROM prs_v_afdeling d WHERE d.prs_afdeling_key = c.cnt_prs_afdeling_key),"
+ " (SELECT " + S("prs_pers_string") + " FROM prs_perslid p WHERE p.prs_perslid_key = c.cnt_prs_perslid_key)) uitvoerende"
+ " , (SELECT b.prs_leverancier_nr from prs_bedrijf b where prs_bedrijf_key = coalesce (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key)) leverancier_nr"
+ " , fin_factuur_nr factuurnr_extern"
+ " , f.mld_opdr_key "
+ " , f.cnt_contract_key "
+ " , f.bes_bestelopdr_key"
+ " , " + S("prs_kpn_string") + " kostenplaats"
+ " , cd.ins_discipline_omschrijving" // als melding
+ " , (SELECT MIN(ins_discipline_omschrijving)"
+ " FROM bes_discipline bd, bes_srtgroep bg, bes_srtdeel bs, bes_bestelling_item bi, bes_bestelopdr_item boi"
+ " WHERE boi.bes_bestelopdr_key = bo.bes_bestelopdr_key"
+ " AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key"
+ " AND bs.bes_srtdeel_key = bi.bes_srtdeel_key"
+ " AND bg.bes_srtgroep_key = bs.bes_srtgroep_key"
+ " AND bd.ins_discipline_key = bg.ins_discipline_key) bes_discipline_omschrijving"
+ " , mld_stdmelding_omschrijving" // als opdracht
+ " , COALESCE(NVL2(f.mld_opdr_key, "
+ " ins_srtdiscipline_prefix "
+ " || TO_CHAR(o.mld_melding_key)"
+ " || '/' || o.mld_opdr_bedrijfopdr_volgnr"
+ " , NULL),"
+ " NVL2(f.cnt_contract_key, 'C' || cnt_contract_nummer_intern || NVL2(cnt_contract_versie, '.' || cnt_contract_versie, '')"
+ " , NULL), "
+ " NVL2(f.bes_bestelopdr_key, bo.bes_bestelopdr_id, NULL), "
+ " ' ') opdrachtnr"
+ " , f.fin_factuur_totaal + f.fin_factuur_totaal_btw bedrag_incl_BTW"
+ " , f.fin_factuur_totaal bedrag_excl_BTW"
+ " , f.fin_factuur_statuses_key"
+ " , f.fin_factuur_opmerking"
+ " , fin.matchfactuur(f.fin_factuur_key) roodgroen"
+ " , budgethouder"
+ " , (SELECT " + S("prs_pers_string")
+ " FROM prs_perslid p"
+ " WHERE prs_perslid_key = budgethouder) budgethoudernaam"
+ " , c.prs_perslid_key_eig"
+ " , (SELECT max(fin_factuur_note_aanmaak)"
+ " FROM fin_factuur_note fn"
+ " WHERE fn.fin_factuur_key = f.fin_factuur_key) notitie";
// merk op: als budgethouder==user_key dan wordt bes_fiat_write later genegeerd.
if (!authparamsFINBOF)
sql += ", 0 bes_fiat_write"
else if (authparamsFINBOF.ALGwritelevel == -1)
sql += ", 1 bes_fiat_write"
else sql +=
", COALESCE((SELECT 1"
+ " FROM mld_v_afleveradres m"
+ " WHERE bo.mld_adres_key_lev = m.mld_adres_key"
+ " AND m.alg_locatie_key IN (SELECT alg_locatie_key"
+ " FROM fac_v_my_locations"
+ " WHERE prs_perslid_key = " + user_key
+ " AND niveau = " + authparamsFINBOF.ALGwritelevel + ")),"
+ " 0) bes_fiat_write";
if (!authparamsFINBOF)
sql += ", 0 mld_fiat_write"
else if (authparamsFINBOF.ALGwritelevel == -1)
sql += ", 1 mld_fiat_write"
else sql +=
", (SELECT CASE WHEN onrg.alg_type = 'R'"
+ " AND m.mld_alg_onroerendgoed_keys IN (SELECT alg_ruimte_key"
+ " FROM fac_v_my_rooms"
+ " WHERE prs_perslid_key = " + user_key
+ " AND niveau = " + authparamsFINBOF.ALGwritelevel + ")"
+ " THEN 1"
+ " WHEN onrg.alg_type = 'V'"
+ " AND m.mld_alg_onroerendgoed_keys IN (SELECT alg_verdieping_key"
+ " FROM fac_v_my_floors"
+ " WHERE prs_perslid_key = " + user_key
+ " AND niveau = " + authparamsFINBOF.ALGwritelevel + ")"
+ " THEN 1"
+ " WHEN onrg.alg_type = 'G'"
+ " AND m.mld_alg_onroerendgoed_keys IN (SELECT alg_gebouw_key"
+ " FROM fac_v_my_buildings"
+ " WHERE prs_perslid_key = " + user_key
+ " AND niveau = " + authparamsFINBOF.ALGwritelevel + ")"
+ " THEN 1"
+ " WHEN m.mld_alg_onroerendgoed_keys IS NULL"
+ " AND m.mld_alg_locatie_key IN (SELECT alg_locatie_key"
+ " FROM fac_v_my_locations"
+ " WHERE prs_perslid_key = " + user_key
+ " AND niveau = " + authparamsFINBOF.ALGwritelevel + ")"
+ " THEN 1"
+ " ELSE 0"
+ " END"
+ " FROM alg_v_onroerendgoed onrg"
+ " WHERE m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)) mld_fiat_write";
sql += " FROM (SELECT fin.getfiatteur(f.fin_factuur_key) budgethouder, f.* from fin_factuur f) f"
+ " , prs_kostenplaats k"
+ " , mld_opdr o"
+ " , mld_melding m"
+ " , mld_discipline d"
+ " , mld_stdmelding sm"
+ " , ins_srtdiscipline sd"
+ " , cnt_contract c"
+ " , cnt_discipline cd"
+ " , bes_bestelopdr bo";
sql += " WHERE f.prs_kostenplaats_key = k.prs_kostenplaats_key(+)" // JGL: Erg veel outer joins omdat niet
+ " AND f.mld_opdr_key = o.mld_opdr_key(+)" // vast staat in welke tak we zitten
+ " AND o.mld_melding_key = m.mld_melding_key(+)"
+ " AND m.mld_stdmelding_key = sm.mld_stdmelding_key(+)"
+ " AND sm.mld_ins_discipline_key = d.ins_discipline_key(+)"
+ " 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.fin_factuur_verwijder IS NULL"
+ " AND (f.mld_opdr_key IS NOT NULL OR f.cnt_contract_key IS NOT NULL OR f.bes_bestelopdr_key IS NOT NULL)" // alleen gekoppelde
+ " AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)";
sql += " AND f.fin_factuur_datum > SYSDATE-100"; // geen ouwe meuk (vooral voor test)
sql += " AND f.fin_factuur_statuses_key= 2"; // goed te keuren
// sql += " AND budgethouder = " + user_key; // door mij, zoiets
sql += " ORDER BY f.fin_factuur_datum";
var rst = new ResultsetTable({sql: sql,
linkColumn: fncolLink,
headerColumn: fncolHeader,
detailColumn: "uitvoerende",
asideColumn: fnAside,
subheaderColumn: "factuur_datum",
ID: "factuurtable",
showAll: true
});
var cnt = rst.processResultset();
CONTENT_END();
FOOTER();
PAGE_END();
%>
</body>
</html>