203 lines
11 KiB
Plaintext
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> |