913 lines
48 KiB
C++
913 lines
48 KiB
C++
<% /*
|
|
$Revision$
|
|
$Id$
|
|
File: fin_list.inc
|
|
Description: Show an overview of invoices in list-form,
|
|
which meets with the given requirements
|
|
Parameters:
|
|
outputmode behave in an output mode, print to 0 = screen, 1 = printer, 2 = excel, etc.
|
|
showall show all orders which meets with the given requirements
|
|
findate_from search for invoices with the given from date
|
|
findate_to search for invoices with the given to date
|
|
finnum search for invoices with the given factuurnr
|
|
fin_bron_key search for invoices with the given invoice source (0,1,2)
|
|
fin_type search for invoices with the given fin type (O,B,C)
|
|
opdrnr search for invoices with the given order number (opdracht nummer)
|
|
finstatus search for invoices with the given fin status
|
|
debtor search for invoices with the given debtor
|
|
handler_key search for invoices with the given handler key
|
|
goedkeur_key search for invoices with the given goedkeurder key
|
|
embedded list is used embedded, do not give add opportunity
|
|
sumover search for invoices with a invoice sum over and above the sumover
|
|
sumbelow search for invoices with a invoice sum below the sumover
|
|
Context: Search action from fin_search.asp form
|
|
Note:
|
|
*/ %>
|
|
|
|
<!-- #include file="../Shared/json2.js" -->
|
|
<!-- #include file="../Shared/resultset_table_v2.inc" -->
|
|
<!-- #include file="../Shared/getkenmerksql.inc" -->
|
|
<!-- #include file="../Shared/iface.inc" -->
|
|
<!-- #include file="fin.inc" -->
|
|
|
|
<%
|
|
FCLTHeader.Requires({ plugins:["jQuery"],
|
|
js: ["../fin/fin_list.js"]
|
|
});
|
|
|
|
function fin_list (params)
|
|
{ // VALIDATE AND PREPARE
|
|
// Als een parameter niet gedefinieerd of null is, dan doet-ie niks
|
|
// anders wordt die verondersteld een zinvolle waarde te hebben
|
|
// NB: -1 is vaak geen zinvolle waarde; null had het dan moeten zijn!
|
|
|
|
// Valid and supported parameters are:
|
|
// params.outputmode : print to 0 = screen, 1 = printer, 2 = excel, etc.
|
|
// params.showall : boolean (true | false)
|
|
// params.datefrom : findate_from
|
|
// params.dateto : findate_to
|
|
// params.fin_bron_key : key (0,1,2)
|
|
// params.fin_type : string ("O", "C" of "B")
|
|
// params.opdrnr : wildcard string
|
|
// params.finstatus : key
|
|
// params.debtor : wildcard string
|
|
// params.handler_key : key
|
|
// params.goedkeur_key : key
|
|
// params.budh_key : key
|
|
// params.sumover : wildcard currency
|
|
// params.sumbelow : wildcard currency
|
|
// params.fin_actual : boolean (true | false)
|
|
// params.fin_deleted : boolean (true | false)
|
|
// params.dis_key : key
|
|
// params.loc_key : key
|
|
// params.bld_key : key
|
|
// params.verantw_key : key
|
|
|
|
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)
|
|
// Als ik vervanger ben van iemand met meer rechten dan krijg ik niet zijn rechten. Je blijft je eigen meldingen zien.
|
|
var authparamsFINUSE = user.checkAutorisation("WEB_FINUSE", true);
|
|
var authparamsFINFOF = user.checkAutorisation("WEB_FINFOF", true);
|
|
var authparamsFINBOF = user.checkAutorisation("WEB_FINBOF", true);
|
|
var authparamsFINGOE = user.checkAutorisation("WEB_FINGOE", true);
|
|
|
|
user.auth_required_or_abort(authparamsFINUSE || authparamsFINFOF || authparamsFINBOF || user.isBudgethouder());
|
|
|
|
// ik ken 2 varianten: allemaal of alleen de mijne
|
|
var alleenmijnkostenplaatsen = (!authparamsFINUSE && !authparamsFINFOF && !authparamsFINBOF); // geen FINUSE, FINFOF of FINBOF -> budgethouder
|
|
|
|
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.
|
|
var print = (outputmode == 1 || outputmode == 5);
|
|
var excel = (outputmode == 2 || outputmode == 6);
|
|
var showall = params.showall;
|
|
|
|
var findate_from = params.datefrom;
|
|
var findate_to = params.dateto;
|
|
var finnum = params.finnum;
|
|
var fin_bron_key = params.fin_bron_key;
|
|
var fin_type = params.fin_type;
|
|
var opdrnr = params.opdrnr;
|
|
var finstatus = params.finstatus;
|
|
var debtor = params.debtor;
|
|
var handler_key = params.handler_key;
|
|
var goedkeur_key = params.goedkeur_key;
|
|
var embedded = params.embedded == 1;
|
|
var sumover = params.sumover;
|
|
var sumbelow = params.sumbelow;
|
|
var fin_actual = params.fin_actual;
|
|
var fin_deleted = params.fin_deleted;
|
|
var budh_key = params.budh_key;
|
|
var dis_key = params.dis_key;
|
|
var loc_key = params.loc_key;
|
|
var bld_key = params.bld_key;
|
|
var verantw_key = params.verantw_key;
|
|
%>
|
|
<html>
|
|
<head>
|
|
<%
|
|
FCLTHeader.Generate({ outputmode: outputmode });
|
|
%>
|
|
</head>
|
|
|
|
<body id="listbody">
|
|
<% // Lijst van vervangers + user_key opvragen.
|
|
var prsKeys = user.collegakeylist(); // "user_key, vervangers"
|
|
|
|
// Query factuurlijst opbouwen.
|
|
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"
|
|
+ " WHERE bs.bes_srtdeel_key = bb.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_bron"
|
|
+ " , 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"
|
|
+ " , prs_perslid_key_goedkeur"
|
|
+ " , (SELECT max(fin_factuur_note_aanmaak)"
|
|
+ " FROM fin_factuur_note fn"
|
|
+ " WHERE fn.fin_factuur_key = f.fin_factuur_key) notitie"
|
|
+ " , (SELECT " + S("prs_pers_string")
|
|
+ " FROM prs_perslid p"
|
|
+ " WHERE p.prs_perslid_key = bb.prs_perslid_key) besteller"
|
|
+ " , bb.bestelopdr_totaal"
|
|
+ " , bb.bestelopdr_besteld"
|
|
+ " , bb.bestelopdr_geleverd";
|
|
|
|
// 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 IN (" + prsKeys + ")"
|
|
+ " 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 IN (" + prsKeys + ")"
|
|
+ " 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 IN (" + prsKeys + ")"
|
|
+ " 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 IN (" + prsKeys + ")"
|
|
+ " 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 IN (" + prsKeys + ")"
|
|
+ " 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 fin_factuur f"
|
|
+ " LEFT OUTER JOIN mld_opdr o "
|
|
+ " ON f.mld_opdr_key = o.mld_opdr_key "
|
|
+ " LEFT OUTER JOIN mld_melding m "
|
|
+ " ON o.mld_melding_key = m.mld_melding_key "
|
|
+ " LEFT OUTER JOIN mld_stdmelding sm "
|
|
+ " ON m.mld_stdmelding_key = sm.mld_stdmelding_key "
|
|
+ " LEFT OUTER JOIN mld_discipline d "
|
|
+ " ON sm.mld_ins_discipline_key = d.ins_discipline_key "
|
|
+ " LEFT OUTER JOIN ins_srtdiscipline sd "
|
|
+ " ON d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key "
|
|
+ " LEFT OUTER JOIN cnt_contract c "
|
|
+ " ON f.cnt_contract_key = c.cnt_contract_key "
|
|
+ " LEFT OUTER JOIN cnt_discipline cd"
|
|
+ " ON c.ins_discipline_key = cd.ins_discipline_key"
|
|
+ " LEFT OUTER JOIN bes_bestelopdr bo"
|
|
+ " ON f.bes_bestelopdr_key = bo.bes_bestelopdr_key "
|
|
+ " LEFT OUTER JOIN ( SELECT boi.bes_bestelopdr_key, "
|
|
+ " MIN (bes_srtdeel_key) bes_srtdeel_key, "
|
|
+ " MIN (bb.prs_kostenplaats_key) "
|
|
+ " prs_kostenplaats_key, "
|
|
+ " MIN (bb.prs_perslid_key) prs_perslid_key, "
|
|
+ " SUM(boi.bes_bestelopdr_item_prijs * boi.bes_bestelopdr_item_aantal) bestelopdr_totaal,"
|
|
+ " SUM(boi.bes_bestelopdr_item_aantal) bestelopdr_besteld,"
|
|
+ " SUM(boi.bes_bestelopdr_item_aantalontv) bestelopdr_geleverd"
|
|
+ " FROM bes_bestelling bb, "
|
|
+ " bes_bestelopdr_item boi, "
|
|
+ " bes_bestelling_item bbi "
|
|
+ " WHERE bbi.bes_bestelling_key = bb.bes_bestelling_key "
|
|
+ " AND boi.bes_bestelopdr_item_key = "
|
|
+ " bbi.bes_bestelopdr_item_key "
|
|
+ " GROUP BY boi.bes_bestelopdr_key) bb "
|
|
+ " ON f.bes_bestelopdr_key = bb.bes_bestelopdr_key "
|
|
+ " LEFT OUTER JOIN (SELECT prs.getkpverantwoordelijke ( "
|
|
+ " prs_kostenplaats_key, "
|
|
+ S("prs_approvemethod") + ", "
|
|
+ " -1) "
|
|
+ " budgethouder, "
|
|
+ " kp.* "
|
|
+ " FROM prs_kostenplaats kp) k "
|
|
+ " ON k.prs_kostenplaats_key = COALESCE (bb.prs_kostenplaats_key, "
|
|
+ " c.prs_kostenplaats_key, "
|
|
+ " o.prs_kostenplaats_key, "
|
|
+ " m.prs_kostenplaats_key) ";
|
|
|
|
sql += "WHERE 1=1"; // Nu de where clause bouwen
|
|
|
|
if (asContactpersoon)
|
|
sql +=" AND (o.mld_uitvoerende_keys IN (SELECT cp.prs_bedrijf_key"
|
|
+ " FROM prs_contactpersoon cp"
|
|
+ " WHERE cp.prs_perslid_key IN (" + prsKeys + ")"
|
|
+ " 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 IN (" + prsKeys + ")"
|
|
+ " 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 IN (" + prsKeys + ")"
|
|
+ " 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)
|
|
{
|
|
// Ik mag in het factuuroverzicht een factuur zien als:
|
|
// 1) Ik heb ALG write rechten (WEB_FINBOF) op
|
|
// a) het afleveradres van de locatie van de bestelling
|
|
// b) de plaats van de bijbehorende melding van de opdracht OF
|
|
// 2) Ik ben contracteigenaar van het contract OF
|
|
// 3) Ik ben budgethouder van de BrOC-kostenplaats OF
|
|
// Terzijde als type (mld-cnt-bes) niet bekend/gekozen is, dan moet ik volledig rechten hebben
|
|
|
|
// 1a) Heb ik ALG write rechten (WEB_FINBOF) op het afleveradres van de locatie van de bestelling?
|
|
sql1a = " (f.bes_bestelopdr_key IS NOT NULL "
|
|
+ " AND bo.mld_adres_key_lev IN ("
|
|
+ "SELECT m.mld_adres_key"
|
|
+ " FROM mld_v_afleveradres m"
|
|
+ " WHERE m.alg_locatie_key IN (SELECT alg_locatie_key"
|
|
+ " FROM fac_v_my_locations"
|
|
+ " WHERE prs_perslid_key IN (" + prsKeys + ")"
|
|
+ " AND niveau = " + authparamsFINBOF.ALGreadlevel + ")))";
|
|
|
|
// 1b) Heb ik ALG write rechten (WEB_FINBOF) op de plaats van de bijbehorende melding van de opdracht?
|
|
sql1b = " (f.mld_opdr_key IS NOT NULL "
|
|
+ " AND EXISTS (SELECT m.mld_melding_key"
|
|
+ " FROM alg_v_onroerendgoed onrg"
|
|
+ " WHERE m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)"
|
|
+ " AND ( (onrg.alg_type = 'R' "
|
|
+ " AND m.mld_alg_onroerendgoed_keys IN (SELECT alg_ruimte_key"
|
|
+ " FROM fac_v_my_rooms"
|
|
+ " WHERE prs_perslid_key IN (" + prsKeys + ")"
|
|
+ " AND niveau = " + authparamsFINBOF.ALGreadlevel + "))"
|
|
+ " OR (onrg.alg_type = 'V'"
|
|
+ " AND m.mld_alg_onroerendgoed_keys IN (SELECT alg_verdieping_key"
|
|
+ " FROM fac_v_my_floors"
|
|
+ " WHERE prs_perslid_key IN (" + prsKeys + ")"
|
|
+ " AND niveau = " + authparamsFINBOF.ALGreadlevel + "))"
|
|
+ " OR (onrg.alg_type = 'G'"
|
|
+ " AND m.mld_alg_onroerendgoed_keys IN (SELECT alg_gebouw_key"
|
|
+ " FROM fac_v_my_buildings"
|
|
+ " WHERE prs_perslid_key IN (" + prsKeys + ")"
|
|
+ " AND niveau = " + authparamsFINBOF.ALGreadlevel + "))"
|
|
+ " OR (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 IN (" + prsKeys + ")"
|
|
+ " AND niveau = " + authparamsFINBOF.ALGreadlevel + "))"
|
|
+ " ))"
|
|
+ ")";
|
|
|
|
// 2) Ben ik contracteigenaar van het contract?
|
|
sql2 = " (f.cnt_contract_key IS NOT NULL "
|
|
+ " AND c.prs_perslid_key_eig IN (" + prsKeys + "))";
|
|
|
|
// 3) Ben ik budgethouder van de BrOC-kostenplaats?
|
|
sql3 = " (budgethouder IN (" + prsKeys + "))";
|
|
|
|
// 4) Als type (mld-cnt-bes) niet bekend/gekozen is, dan moet ik volledig rechten hebben
|
|
// sql4 = " (f.mld_opdr_key IS NOT NULL OR f.cnt_contract_key IS NOT NULL OR f.bes_bestelopdr_key IS NOT NULL)";
|
|
|
|
sql += "AND (" + sql1a + " OR " + sql1b + " OR " + sql2 + " OR " + sql3 + ")";
|
|
}
|
|
|
|
// Als bld_key een geldige waarde heeft, hebben loc_key en dis_key ook een geldige waarde
|
|
if (dis_key)
|
|
{
|
|
var loc_key_arr = [];
|
|
if (loc_key)
|
|
{
|
|
loc_key_arr.push(loc_key);
|
|
}
|
|
else
|
|
{
|
|
// Zoek alle locaties die bij het gekozen district horen.
|
|
sqld = "SELECT alg_locatie_key"
|
|
+ " FROM alg_locatie"
|
|
+ " WHERE alg_district_key = " + dis_key;
|
|
var oRsd = Oracle.Execute(sqld);
|
|
while (!oRsd.eof)
|
|
{
|
|
loc_key_arr.push(oRsd("alg_locatie_key").Value);
|
|
oRsd.MoveNext();
|
|
}
|
|
oRsd.Close();
|
|
}
|
|
// Als alleen dis_key bekend is dan zoeken voor alle loc_key bij deze dis_key.
|
|
// 1) Het afleveradres van de locatie van de bestelling (bld_key is niet bekend/gedefinieerd)
|
|
sql1 = " (f.bes_bestelopdr_key IS NOT NULL "
|
|
+ " AND bo.mld_adres_key_lev IN ("
|
|
+ "SELECT m.mld_adres_key"
|
|
+ " FROM mld_v_afleveradres m"
|
|
+ " WHERE m.alg_locatie_key IN (" + loc_key_arr.join(",") + ")))";
|
|
|
|
// 2) De plaats van de bijbehorende melding van de opdracht
|
|
sql2 = " (f.mld_opdr_key IS NOT NULL "
|
|
+ " AND EXISTS (SELECT m.mld_melding_key"
|
|
+ " FROM alg_v_allonroerendgoed onrg"
|
|
+ " WHERE m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)"
|
|
+ " AND onrg.alg_locatie_key IN (" + loc_key_arr.join(",") + ")"
|
|
+ (bld_key
|
|
? " AND ( (onrg.alg_gebouw_key = " + bld_key + ")"
|
|
+ " OR (onrg.alg_terreinsector_key = " + bld_key + ")"
|
|
+ " )"
|
|
: "")
|
|
+ " ))";
|
|
|
|
// Locatie/gebouw scope van het contract
|
|
sql3 = " (c.cnt_contract_key IN"
|
|
+ " (SELECT cnt_contract_key"
|
|
+ " FROM cnt_v_aanwezigcontract_plaats"
|
|
+ " WHERE (cnt_alg_plaats_code = 'L' AND cnt_alg_plaats_key IN (" + loc_key_arr.join(",") + "))";
|
|
if (bld_key)
|
|
{
|
|
sql3 += " OR (cnt_alg_plaats_code = 'G' AND cnt_alg_plaats_key = " + bld_key + ")"
|
|
+ " OR (cnt_alg_plaats_code = 'T' AND cnt_alg_plaats_key = " + bld_key + ")";
|
|
}
|
|
else
|
|
{
|
|
sql3 += " OR (cnt_alg_plaats_code = 'G' AND cnt_alg_plaats_key IN "
|
|
+ " (SELECT alg_gebouw_key FROM alg_v_aanweziggebouw WHERE alg_locatie_key IN (" + loc_key_arr.join(",") + "))"
|
|
+ " OR cnt_alg_plaats_code = 'T' AND cnt_alg_plaats_key IN "
|
|
+ " (SELECT alg_terreinsector_key FROM alg_v_aanwezigterreinsector WHERE alg_locatie_key IN (" + loc_key_arr.join(",") + ")))";
|
|
}
|
|
sql3 += " UNION"
|
|
+ " SELECT cnt_contract_key"
|
|
+ " FROM cnt_v_aanwezigcontract_object co"
|
|
+ " , ins_v_aanwezigdeel ad"
|
|
+ " WHERE cnt_ins_deel_key = ad.ins_deel_key AND ad.ins_alg_locatie_key IN (" + loc_key_arr.join(",") + ")"
|
|
+ " UNION"
|
|
+ " SELECT cnt_contract_key"
|
|
+ " FROM cnt_v_contract_locatie_geg cl"
|
|
+ " WHERE alg_locatie_key IN (" + loc_key_arr.join(",") + ")))";
|
|
|
|
sql += "AND (" + sql1 + " OR " + sql2 + " OR " + sql3 + ")";
|
|
}
|
|
|
|
if (verantw_key)
|
|
{
|
|
// 1) Zijn gebouwen staan op de locatie van het afleveradres van de bestelling.
|
|
sql1 = " (f.bes_bestelopdr_key IS NOT NULL "
|
|
+ " AND bo.mld_adres_key_lev IN (SELECT m.mld_adres_key"
|
|
+ " FROM mld_v_afleveradres m"
|
|
+ " , alg_v_aanweziggebouw g"
|
|
+ " WHERE m.alg_locatie_key = g.alg_locatie_key"
|
|
+ " AND g.prs_perslid_key_verantw = " + verantw_key + "))";
|
|
|
|
// 2) Zijn gebouwen staan op de locatie van de bijbehorende melding van de opdracht.
|
|
sql2 = " (f.mld_opdr_key IS NOT NULL "
|
|
+ " AND EXISTS (SELECT m.mld_melding_key"
|
|
+ " FROM alg_v_onroerendgoed aog"
|
|
+ " , alg_v_aanweziggebouw g"
|
|
+ " WHERE m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)"
|
|
+ " AND aog.alg_gebouw_key = g.alg_gebouw_key"
|
|
+ " AND g.prs_perslid_key_verantw = " + verantw_key + "))";
|
|
|
|
// 3) Zijn gebouwen staan in de locatie/gebouw (object) scope van het contract.
|
|
sql3 = " (c.cnt_contract_key IN (SELECT cnt_contract_key"
|
|
+ " FROM cnt_v_aanwezigcontract_plaats ccp"
|
|
+ " , alg_v_aanweziggebouw g"
|
|
+ " WHERE ((ccp.cnt_alg_plaats_key = g.alg_locatie_key"
|
|
+ " AND ccp.cnt_alg_plaats_code = 'L')"
|
|
+ " OR (ccp.cnt_alg_plaats_key = g.alg_gebouw_key"
|
|
+ " AND cnt_alg_plaats_code = 'G'))"
|
|
+ " AND g.prs_perslid_key_verantw = " + verantw_key
|
|
+ " UNION"
|
|
+ " SELECT cnt_contract_key"
|
|
+ " FROM cnt_v_aanwezigcontract_object co"
|
|
+ " , ins_v_aanwezigdeel ad"
|
|
+ " , alg_v_allonroerendgoed aaor"
|
|
+ " , alg_v_aanweziggebouw g"
|
|
+ " WHERE cnt_ins_deel_key = ad.ins_deel_key"
|
|
+ " AND ad.ins_alg_ruimte_key = aaor.alg_onroerendgoed_keys"
|
|
+ " AND ad.ins_alg_ruimte_type IN ('T', 'R', 'W')"
|
|
+ " AND aaor.alg_gebouw_key = g.alg_gebouw_key"
|
|
+ " AND g.prs_perslid_key_verantw = " + verantw_key
|
|
+ " UNION"
|
|
+ " SELECT cnt_contract_key"
|
|
+ " FROM cnt_v_contract_locatie_geg cl"
|
|
+ " , alg_v_aanweziggebouw g"
|
|
+ " WHERE cl.alg_locatie_key = g.alg_locatie_key"
|
|
+ " AND g.prs_perslid_key_verantw = " + verantw_key + "))"
|
|
|
|
sql += "AND (" + sql1 + " OR " + sql2 + " OR " + sql3 + ")";
|
|
}
|
|
|
|
if (finnum) // mag fin_key of fin_factuur_nr zijn
|
|
sql += " AND (f.fin_factuur_key = fac.safe_to_number(" + safe.quoted_sql(finnum) + ") OR UPPER(f.fin_factuur_nr) LIKE " + safe.quoted_sql_wild(finnum) + ")";
|
|
|
|
if (budh_key)
|
|
sql += " AND budgethouder = " + budh_key;
|
|
|
|
if (fin_type == "O")
|
|
sql += " AND f.mld_opdr_key IS NOT NULL";
|
|
if (fin_type == "C")
|
|
sql += " AND f.cnt_contract_key IS NOT NULL";
|
|
if (fin_type == "B")
|
|
sql += " AND f.bes_bestelopdr_key IS NOT NULL";
|
|
|
|
sql += (fin_bron_key ? " AND f.fin_factuur_bron = " + fin_bron_key : "");
|
|
|
|
if (findate_from)
|
|
{
|
|
sql += " AND f.fin_factuur_datum >= " + findate_from.beginToSQL();
|
|
}
|
|
if (findate_to)
|
|
{
|
|
sql += " AND f.fin_factuur_datum < " + findate_to.endToSQL();
|
|
}
|
|
if (opdrnr)
|
|
{
|
|
var subsql=[];
|
|
var ii=0;
|
|
// Je kunt zoeken op dezelfde manier als je invoert of we in de kolom tonen
|
|
// Maar we negeren de sub-aanduidingen (volgnummers, versies)
|
|
var ref_s = opdrnr.split(/[\/\.]/); // array met het deel voor en na de /, voor mld en bes
|
|
var volgnr = null;
|
|
var ordbase = opdrnr;
|
|
if (ref_s.length > 1)
|
|
{
|
|
ordbase = ref_s[0];
|
|
volgnr = parseInt(ref_s[1]);
|
|
}
|
|
var firstIsDigit = (ordbase.charCodeAt(0) >= 48 && ordbase.charCodeAt(0) <= 57);
|
|
var secondIsDigit = (ordbase.charCodeAt(1) >= 48 && ordbase.charCodeAt(1) <= 57);
|
|
if (!fin_type || fin_type == "O")
|
|
{ // Melding opdrachten.
|
|
// Als er geen prefix aanwezig is, dan is het een bestelling of toch een meldingopdracht.
|
|
if (firstIsDigit)
|
|
{
|
|
subsql[ii++] = "(o.mld_melding_key = " + parseInt(ordbase,10)
|
|
+ (volgnr
|
|
? " AND o.mld_opdr_bedrijfopdr_volgnr = " + volgnr
|
|
: "")
|
|
+ ")";
|
|
}
|
|
else
|
|
{
|
|
var prefix = null;
|
|
var sqlvt = "SELECT UPPER(isd.ins_srtdiscipline_prefix) prefix"
|
|
+ " FROM ins_srtdiscipline isd"
|
|
+ " WHERE isd.ins_srtdiscipline_module = 'MLD'"
|
|
+ " ORDER BY isd.ins_srtdiscipline_prefix DESC";
|
|
var oRs = Oracle.Execute(sqlvt);
|
|
while (!oRs.eof)
|
|
{
|
|
if (oRs("prefix").Value && ordbase.toUpperCase().indexOf(oRs("prefix").Value) == 0) break;
|
|
oRs.MoveNext();
|
|
}
|
|
if (!oRs.eof)
|
|
{
|
|
prefix = oRs("prefix").Value; // prefix is uppercase.
|
|
ordbase = ordbase.substr(prefix.length); // ordbase is nu alleen een getal indien een meldingopdracht is ingevoerd.
|
|
}
|
|
|
|
// Als prefix geen waarde heeft (null) dan is er geen ins_srtdiscipline gevonden en is het geen melding.
|
|
if (prefix && parseInt(ordbase,10))
|
|
subsql[ii++] = "(o.mld_melding_key = " + parseInt(ordbase,10) + " AND UPPER(sd.ins_srtdiscipline_prefix) = " + safe.quoted_sql_wild(prefix)
|
|
+ (volgnr
|
|
? " AND o.mld_opdr_bedrijfopdr_volgnr = " + volgnr
|
|
: "")
|
|
+ ")";
|
|
}
|
|
}
|
|
if (!fin_type || fin_type == "C")
|
|
{ // Contracten.
|
|
// Het eerste teken moet een 'c' of 'C' zijn en het tweede teken een cijfer.
|
|
if (ordbase.toUpperCase().indexOf('C') == 0 && secondIsDigit)
|
|
subsql[ii++] = " ('C' || c.cnt_contract_nummer_intern LIKE " + safe.quoted_sql_wild(ordbase)
|
|
+ (volgnr
|
|
? " AND c.cnt_contract_versie = " + volgnr
|
|
: "")
|
|
+ ")";
|
|
else
|
|
subsql[ii++] = "1 = 2"; // Geen resultaten weergeven voor contracten.
|
|
}
|
|
if (!fin_type || fin_type == "B")
|
|
{ // Bestellingen
|
|
if (firstIsDigit)
|
|
subsql[ii++] = " (bo.bes_bestelopdr_id LIKE " + safe.quoted_sql_wild(opdrnr + "%") + ")";
|
|
else
|
|
subsql[ii++] = "1 = 2"; // Geen resultaten weergeven voor bestellingen.
|
|
}
|
|
if (subsql.length > 0)
|
|
sql += " AND (" + subsql.join(" OR ") + ")";
|
|
}
|
|
if (handler_key)
|
|
sql += " AND COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key) = " + handler_key;
|
|
|
|
if (goedkeur_key)
|
|
sql += " AND f.prs_perslid_key_goedkeur = " + goedkeur_key;
|
|
|
|
if (finstatus)
|
|
sql += " AND f.fin_factuur_statuses_key = " + finstatus;
|
|
|
|
if (debtor)
|
|
sql += " AND UPPER(f.fin_factuur_debiteur_nr) LIKE " + safe.quoted_sql_wild(debtor);
|
|
|
|
if (params.opdr_key)
|
|
sql += " AND f.mld_opdr_key = " + params.opdr_key;
|
|
if (params.bes_key)
|
|
sql += " AND f.bes_bestelopdr_key = " + params.bes_key;
|
|
if (params.cnt_key)
|
|
sql += " AND f.cnt_contract_key = " + params.cnt_key;
|
|
if (sumover)
|
|
sql += " AND f.fin_factuur_totaal >= " + sumover;
|
|
if (sumbelow)
|
|
sql += " AND f.fin_factuur_totaal <= " + sumbelow;
|
|
|
|
if (!fin_deleted)
|
|
sql += " AND f.fin_factuur_verwijder IS NULL";
|
|
else if (!fin_actual)
|
|
sql += " AND f.fin_factuur_verwijder IS NOT NULL";
|
|
|
|
// Vooralsnog hanteer ik dan maar deze methodiek:
|
|
// - als ik WEB_FINxOF READ heb, zie ik alles
|
|
// - als ik geen WEB_FINxOF heb, zie alleen de facturen van kostenplaatsen waarvan ik budgethouder ben
|
|
|
|
if (alleenmijnkostenplaatsen)
|
|
{
|
|
// beperkt tot mijn kostenplaatsen
|
|
sql += " AND budgethouder IN (" + prsKeys + ")";
|
|
}
|
|
|
|
// Nu filtercondities voor flexkenmerken toevoegen
|
|
sql += getKenmerkSql("FIN", "f.fin_factuur_key");
|
|
|
|
sql += " ORDER BY f.fin_factuur_key";
|
|
|
|
/**********************************
|
|
* Callback functies ResultsetTable
|
|
*********************************/
|
|
|
|
function fnrowClass(oRs)
|
|
{
|
|
if (oRs("fin_factuur_verwijder").Value != null)
|
|
return "deleted";
|
|
else if (oRs("roodgroen").Value < 0)
|
|
return "outsidemargin";
|
|
else if (oRs("roodgroen").Value > 0)
|
|
return "withinmargin";
|
|
else if (oRs("fin_factuur_statuses_key").Value == 1)
|
|
return "rejected"; // was deleted
|
|
return "";
|
|
}
|
|
|
|
var factuurTotalex = 0;
|
|
var factuurTotalinc = 0;
|
|
function fnsummaryCalc(oRs)
|
|
{
|
|
if (oRs("fin_factuur_statuses_key") != 1 // 1 niet; 3 is wel een geldige factuur in principe
|
|
&& oRs("fin_factuur_verwijder").Value == null)
|
|
{
|
|
factuurTotalex += oRs("bedrag_excl_BTW").Value;
|
|
factuurTotalinc += oRs("bedrag_incl_BTW").Value;
|
|
}
|
|
}
|
|
|
|
function fnsummaryShow()
|
|
{
|
|
return L("lcl_fin_totaal_bedrag") + " "
|
|
+ S("currency_pref") + " " + safe.curr(factuurTotalex) + " / "
|
|
+ L("lcl_fin_totaal_bedrag_btw") + " " + S("currency_pref") + " " + safe.curr(factuurTotalinc);
|
|
}
|
|
function fnrowData(oRs)
|
|
{
|
|
var data = {
|
|
mld_opdr_key: oRs("mld_opdr_key").Value,
|
|
cnt_contract_key: oRs("cnt_contract_key").Value,
|
|
bes_bestelopdr_key: oRs("bes_bestelopdr_key").Value };
|
|
return JSON.stringify(data);
|
|
}
|
|
|
|
function fnrowActionEnabler(oRs)
|
|
{
|
|
var deleted = (oRs("fin_factuur_verwijder").Value != null)
|
|
var eEdit = !deleted; // Always true
|
|
|
|
// Kan ik naar het item waar de factuur bij hoort?
|
|
// Niet als ik embedded ben, want dikke kans dat ik dan juist
|
|
// al een subframe van datzelfde item ben!
|
|
var eOrder = !embedded && (oRs("opdrachtnr").Value != " ") && !deleted;
|
|
|
|
// Fiateer en Verwijder
|
|
// Afhankelijk van status en of er een referentie is opgegeven, de button grijs weergeven
|
|
// Als status > 2 dan is er zeker een referentie bekend.
|
|
// Fiateren ook afhankelijk of budgethouder binnen de organisatiescope ligt
|
|
// Verwijderen: Write rechten voor WEB_FINFOF nodig
|
|
// Fiateren: Ik kan facturen goedkeuren als: 1) Ik ben budgethouder van de BrOC-kostenplaats (BrOC = Bestelling, /*reservering*/, Opdracht, Contract)
|
|
// 2) ik heb ALG write rechten (WEB_FINBOF) op
|
|
// a) het afleveradres van de locatie van de bestelling
|
|
// b) de plaats van de bijbehorende melding van de opdracht OF
|
|
// 3) ik ben contracteigenaar van het contract
|
|
var budgethouder = oRs("budgethouder").Value;
|
|
var contracteigenaar = oRs("prs_perslid_key_eig").Value;
|
|
var besmldfiat_write = false;
|
|
var cntfiat_write = false;
|
|
var fiat_write = false;
|
|
|
|
if (oRs("bes_bestelopdr_key").Value)
|
|
besmldfiat_write = (oRs("bes_fiat_write").Value == 1) // Ik heb write rechten op de locatie van het afleveradres
|
|
else if (oRs("mld_opdr_key").Value)
|
|
besmldfiat_write = (oRs("mld_fiat_write").Value == 1) // Ik heb write rechten op de plaats van de bijbehorende melding
|
|
else if (oRs("cnt_contract_key").Value) // Contract
|
|
cntfiat_write = user.isCollega(oRs("prs_perslid_key_eig").Value); // Contracteigenaar IN (user_key, vervangers).
|
|
else // opd_cnt_bes_type is nog niet bekend/gekozen, dan moet ik volledig rechten hebben
|
|
fiat_write = (authparamsFINBOF && authparamsFINBOF.ALGwritelevel == -1);
|
|
var canapprove = (user.isCollega(oRs("budgethouder").Value) || cntfiat_write || besmldfiat_write || fiat_write) && !deleted; // Budgethouder IN (user_key, vervangers).
|
|
|
|
var eDelete = !embedded &&
|
|
(authparamsFINFOF &&
|
|
authparamsFINFOF.PRSwritelevel < 9 &&
|
|
oRs("fin_factuur_statuses_key").Value == 2) &&
|
|
!deleted;
|
|
var eApprove = !embedded &&
|
|
(canapprove &&
|
|
oRs("fin_factuur_statuses_key").Value == 2 &&
|
|
oRs("opdrachtnr").Value != " " &&
|
|
budgethouder > 0) &&
|
|
!deleted;
|
|
var eUnapprove = !embedded &&
|
|
(canapprove &&
|
|
oRs("fin_factuur_statuses_key").Value == 6 &&
|
|
oRs("opdrachtnr").Value != " " &&
|
|
budgethouder > 0) &&
|
|
!deleted;
|
|
var eRejectApprove = eApprove;
|
|
var eUnreject = !embedded &&
|
|
(eApprove &&
|
|
oRs("fin_factuur_statuses_key").Value == 1 &&
|
|
oRs("opdrachtnr").Value != " " &&
|
|
budgethouder > 0) &&
|
|
!deleted;
|
|
|
|
var eGoedkeur =!embedded &&
|
|
S("fin_enable_goedkeuren") != 0 &&
|
|
authparamsFINGOE &&
|
|
authparamsFINGOE.PRSwritelevel < 9 &&
|
|
user.isCollega(oRs("prs_perslid_key_goedkeur").Value) && // Goedkeurder IN (user_key, vervangers).
|
|
oRs("fin_factuur_statuses_key").Value == 5;
|
|
var eRejectGoedkeur = eGoedkeur;
|
|
|
|
var data = {eEdit: eEdit,
|
|
eOrder: eOrder,
|
|
eApprove: eApprove,
|
|
eUnapprove: eUnapprove,
|
|
eRejectApprove: eRejectApprove,
|
|
eRejectGoedkeur: eRejectGoedkeur,
|
|
eUnreject: eUnreject,
|
|
eDelete: eDelete,
|
|
eGoedkeur: eGoedkeur};
|
|
return data;
|
|
}
|
|
|
|
function fnstatusOms(oRs)
|
|
{
|
|
var finStatusKey = oRs("fin_factuur_statuses_key").Value;
|
|
return fin.getfinstatustext(finStatusKey);
|
|
}
|
|
|
|
buttons = [];
|
|
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)
|
|
buttons.push({ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + L("lcl_add") + "')" });
|
|
|
|
var fac_import_app_key = S("fin_import_app_key");
|
|
if (S("fin_import_app_key") == -1) { // bepaal dan de key van de standaard factuurimportfunctie
|
|
var fisql = "SELECT MAX(fac_import_app_key) fac_import_app_key"
|
|
+ " FROM fac_import_app fia"
|
|
+ " WHERE fac_import_app_code = 'FACTUUR'"
|
|
+ " AND fia.fac_functie_key IN"
|
|
+ " (SELECT wg.fac_functie_key"
|
|
+ " FROM fac_v_webgebruiker wg"
|
|
+ " WHERE wg.prs_perslid_key = " + user_key
|
|
+ " AND wg.fac_gebruiker_alg_level_read < 9"
|
|
+ " AND wg.fac_gebruiker_prs_level_read < 9)";
|
|
var fioRs = Oracle.Execute(fisql);
|
|
if (!fioRs.eof)
|
|
{
|
|
fac_import_app_key = fioRs("fac_import_app_key").Value;
|
|
}
|
|
fioRs.close();
|
|
}
|
|
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") + "')" });
|
|
}
|
|
}
|
|
|
|
function fnOpdrtype(oRs)
|
|
{
|
|
if (oRs("mld_opdr_key").Value)
|
|
return L("lcl_fin_mld_opdr");
|
|
else if (oRs("cnt_contract_key").Value)
|
|
return L("lcl_fin_cnt_contract");
|
|
else if (oRs("bes_bestelopdr_key").Value)
|
|
return L("lcl_fin_bestelling");
|
|
else return "";
|
|
}
|
|
|
|
function fnBron(oRs)
|
|
{
|
|
return fin.getfinbrontext(oRs("fin_factuur_bron").Value);
|
|
}
|
|
|
|
function fnOpdrtypeOms(oRs)
|
|
{
|
|
if (oRs("mld_opdr_key").Value)
|
|
return safe.html(oRs("mld_stdmelding_omschrijving").Value);
|
|
else if (oRs("cnt_contract_key").Value)
|
|
return safe.html(oRs("ins_discipline_omschrijving").Value);
|
|
else if (oRs("bes_bestelopdr_key").Value)
|
|
return safe.html(oRs("bes_discipline_omschrijving").Value);
|
|
else return "";
|
|
}
|
|
|
|
function fnnote(oRs)
|
|
{
|
|
if (oRs("notitie").Value != null)
|
|
return "(" + L("lcl_fin_note") + ")";
|
|
else return "";
|
|
}
|
|
|
|
function fnnotedate(oRs)
|
|
{
|
|
if (oRs("notitie").Value != null)
|
|
return L("lcl_fin_note") + " " + toDateString(oRs("notitie").Value);
|
|
else return "";
|
|
|
|
}
|
|
|
|
function fntotaalgeleverd(oRs)
|
|
{
|
|
var result = "";
|
|
if (oRs("bes_bestelopdr_key").Value != null)
|
|
{
|
|
var totaal = oRs("bestelopdr_totaal").Value;
|
|
var besteld = oRs("bestelopdr_besteld").Value || 0;
|
|
var geleverd = oRs("bestelopdr_geleverd").Value || 0;
|
|
var volledig = (besteld == geleverd ? L("lcl_Yes") : L("lcl_No"));
|
|
result = L("lcl_fin_bestelopdr_totaal") + ": " + safe.curr(totaal) + "\n"
|
|
+ L("lcl_fin_bestelopdr_volledig") + ": " + volledig;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
function fnvolledig(oRs)
|
|
{
|
|
var result = "";
|
|
if (oRs("bes_bestelopdr_key").Value != null)
|
|
{
|
|
var besteld = oRs("bestelopdr_besteld").Value || 0;
|
|
var geleverd = oRs("bestelopdr_geleverd").Value || 0;
|
|
var result = (besteld == geleverd ? L("lcl_Yes") : L("lcl_No"));
|
|
}
|
|
return result;
|
|
}
|
|
|
|
|
|
var rst = new ResultsetTable({ keyColumn: "factuurnr_intern",
|
|
ID: "workTable",
|
|
rowClass: fnrowClass,
|
|
rowData: fnrowData,
|
|
rowActionEnabler: fnrowActionEnabler,
|
|
sql: sql,
|
|
flexModule: "FIN",
|
|
flexId: "factuurnr_intern",
|
|
filterParams: params,
|
|
summaryCalc: fnsummaryCalc,
|
|
summaryShow: fnsummaryShow,
|
|
outputmode: outputmode,
|
|
title: L("lcl_fin_invoices"),
|
|
showAll: showall,
|
|
multiple: true, /* wat doet-ie ook al weer, en willen we dat hier? */
|
|
buttons: buttons
|
|
});
|
|
|
|
rst.addColumn(new Column({caption: L("lcl_fin_nr"), content: "factuurnr_intern"}));
|
|
rst.addColumn(new Column({caption: L("lcl_fin_date"), content: "factuur_datum", datatype: "date"}));
|
|
rst.addColumn(new Column({caption: L("lcl_handler"), content: "uitvoerende"}));
|
|
if (outputmode != 0)
|
|
rst.addColumn(new Column({caption: L("lcl_prs_companies_leverancier_nr"), content: "leverancier_nr"}));
|
|
rst.addColumn(new Column({caption: L("lcl_fin_invoice_nr_extern"), content: "factuurnr_extern"}));
|
|
rst.addColumn(new Column({caption: L("lcl_fin_type"), content: fnOpdrtype}));
|
|
rst.addColumn(new Column({caption: "", content: fnOpdrtypeOms, combine: true}));
|
|
|
|
rst.addColumn(new Column({caption: L("lcl_fin_invoice_source"), content: fnBron}));
|
|
rst.addColumn(new Column({caption: L("lcl_fin_opdrachtnr"), content: "opdrachtnr", tooltip: fntotaalgeleverd}));
|
|
if (excel)
|
|
rst.addColumn(new Column({caption: L("lcl_fin_bestelopdr_totaal"), content: "bestelopdr_totaal", datatype: "currency"}));
|
|
|
|
rst.addColumn(new Column({caption: L("lcl_fin_total_sum_exBTW"), content: "bedrag_excl_BTW", datatype: "currency"}));
|
|
rst.addColumn(new Column({caption: L("lcl_fin_total_sum"), content: "bedrag_incl_BTW", datatype: "currency", combine:true}));
|
|
rst.addColumn(new Column({caption: L("lcl_fin_fin_status"), content: fnstatusOms, tooltip: fnnotedate}));
|
|
if (excel)
|
|
rst.addColumn(new Column({caption: L("lcl_fin_bestelopdr_volledig"), content: fnvolledig}));
|
|
rst.addColumn(new Column({caption: "("+L("lcl_fin_note")+")", content: outputmode==0?fnnote:fnnotedate, combine: outputmode==0}));
|
|
rst.addColumn(new Column({caption: L("lcl_fin_besteller"), content: "besteller"}));
|
|
if (!embedded)
|
|
{
|
|
rst.addColumn(new Column({caption: L("lcl_prs_budgethouder"), content: "budgethoudernaam"}));
|
|
rst.addColumn(new Column({caption: L("lcl_account"), content: "kostenplaats", combine: true}));
|
|
}
|
|
else
|
|
{
|
|
rst.addColumn(new Column({caption: L("lcl_fin_remark"), content: "fin_factuur_opmerking"}));
|
|
}
|
|
|
|
rst.addAction({action: "finEdit", caption: L("lcl_edit"), isDefault: true});
|
|
rst.addAction({action: "finOrder", caption: L("lcl_shared_order"), enabler: "eOrder"});
|
|
if (!embedded)
|
|
{
|
|
rst.addAction({action: "finApprove", caption: L("lcl_approve"), enabler: "eApprove", multi: true, multiOnce: true});
|
|
rst.addAction({action: "finGoedkeur", caption: L("lcl_goedkeur"), enabler: "eGoedkeur", multi: true, multiOnce: true});
|
|
rst.addAction({action: "finUnapprove", caption: L("lcl_unapprove"), enabler: "eUnapprove", multi: true, multiOnce: true});
|
|
if (S("fin_enable_afwijzen") == 1)
|
|
{
|
|
rst.addAction({action: "finRejectApprove", caption: L("lcl_reject") + " " + L("lcl_approve"), enabler: "eReject", multi: true, multiOnce: true});
|
|
rst.addAction({action: "finRejectGoedkeur", caption: L("lcl_reject") + " " + L("lcl_goedkeur"), enabler: "eRejectGoedkeur", multi: true, multiOnce: true});
|
|
}
|
|
rst.addAction({action: "finUnreject", caption: L("lcl_unreject"), enabler: "eUnreject", multi: true, multiOnce: true});
|
|
rst.addAction({action: "finDelete", caption: L("lcl_delete"), enabler: "eDelete", multi: true, multiOnce: true});
|
|
}
|
|
var cnt = rst.processResultset();
|
|
%>
|
|
</body>
|
|
</html>
|
|
<%
|
|
}
|
|
%>
|