<%@ 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 */ %> <% 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()); %>
<% FCLTMHeader.Generate({}); %>
<% 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 prs.getkpverantwoordelijke(prs_kostenplaats_key, " + S("prs_approvemethod") + ", -1) budgethouder," + " f.* FROM (select fin.getfactuurkostenplaats(f.fin_factuur_key) prs_kostenplaats_key, f.* from fin_factuur f) 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(); %>