659 lines
42 KiB
SQL
659 lines
42 KiB
SQL
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: resultset_flex.inc
|
|
Description: Functies die zorgen voor het printen van de flexkenmerken
|
|
in de printafdukken naar de printer, excel enz.
|
|
Note: Vooralsnog doen we alleen bij PRS (rudimentaire) autorisatiecontrole
|
|
*/ %>
|
|
|
|
<%
|
|
|
|
function getSqlFlex(flexModule, flexId, flexParams)
|
|
{
|
|
switch(flexModule)
|
|
{
|
|
case "ALG": { sql_alg_kenmerkalg = "SELECT ak.alg_kenmerk_key"
|
|
+ ", a." + flexId // alg_district_key, alg_locatie_key, alg_gebouw_key, alg_terrein_key, alg_ruimte_key
|
|
+ ", (SELECT alg_onrgoedkenmerk_waarde"
|
|
+ " FROM alg_onrgoedkenmerk aok"
|
|
+ " WHERE aok.alg_onrgoed_key = a." + flexId // alg_district_key, alg_locatie_key, alg_gebouw_key, alg_terrein_key, alg_ruimte_key
|
|
+ " AND aok.alg_kenmerk_key = ak.alg_kenmerk_key"
|
|
+ " AND aok.alg_onrgoedkenmerk_verwijder IS NULL) alg_onrgoedkenmerk_waarde"
|
|
+ " FROM " + flexId.replace(/_key/g, "") + " a" // alg_district, alg_locatie, alg_gebouw, alg_terrein, alg_ruimte
|
|
+ ", alg_kenmerk ak"
|
|
+ " WHERE ak.alg_kenmerk_verwijder IS NULL";
|
|
|
|
sqlFlex = "SELECT "+lcl.xsql('k.alg_kenmerk_omschrijving', 'k.alg_kenmerk_key') +" omschrijving"
|
|
+ ", ka." + flexId + " flexparentkey" // alg_district_key, alg_locatie_key, alg_gebouw_key, alg_terrein_key, alg_ruimte_key
|
|
+ ", k.alg_kenmerk_key kenmerk_key"
|
|
+ ", CASE"
|
|
+ " WHEN k.alg_kenmerk_kenmerktype = 'R' OR k.alg_kenmerk_kenmerktype = 'S'"
|
|
+ " THEN FAC.getdomeinwaarde(k.fac_kenmerkdomein_key, ka.alg_onrgoedkenmerk_waarde)"
|
|
+ " WHEN k.alg_kenmerk_kenmerktype = 'D'"
|
|
+ " THEN TO_CHAR(fac.safe_To_Date(ka.alg_onrgoedkenmerk_waarde, 'DD-MM-YYYY'), 'DD-MM-YYYY')"
|
|
+ " ELSE ka.alg_onrgoedkenmerk_waarde"
|
|
+ " END waarde"
|
|
+ ", k.alg_kenmerk_kenmerktype kenmerktype"
|
|
+ ", k.alg_kenmerk_nmin nmin"
|
|
+ ", k.alg_kenmerk_nmax nmax"
|
|
+ ", k.alg_kenmerk_volgnr volgnummer"
|
|
+ ", " + lcl.xsql('k.alg_kenmerk_dimensie', 'k.alg_kenmerk_key') +" dimensie"
|
|
+ ", k.alg_kenmerk_dec decimalen"
|
|
+ ", k.alg_kenmerk_niveau niveau"
|
|
+ " FROM (" + sql_alg_kenmerkalg + ") ka" // alg_kenmerk_key / alg_gebouw_key / alg_onrgoedkenmerk_waarde inclusief lege waarden
|
|
+ ", alg_kenmerk k"
|
|
+ " WHERE ka.alg_kenmerk_key = k.alg_kenmerk_key"
|
|
+ " AND k.alg_kenmerk_verwijder IS NULL"
|
|
+ " AND k.alg_kenmerk_niveau = " + safe.quoted_sql_upper(flexId.substr(4,1)) // D (District), L (Locatie), G (Gebouw), T (Terreinsector) en R (Ruimte).
|
|
+ (!flexParams.readman? " AND alg_kenmerk_volgnr >= 100":"")
|
|
+ (!flexParams.readuse? " AND alg_kenmerk_volgnr <= 100":"");
|
|
|
|
break;
|
|
}
|
|
case "BES": { sql_srtbes_kenmerkbes = "SELECT DISTINCT bk.bes_kenmerk_key" // Distinct i.v.m. meerdere item per bestelling
|
|
+ ", b.bes_bestelling_key"
|
|
+ ", (SELECT bes_kenmerkbestell_waarde"
|
|
+ " FROM bes_kenmerkbestell bkb"
|
|
+ " WHERE bkb.bes_bestelling_key = b.bes_bestelling_key"
|
|
+ " AND bkb.bes_kenmerk_key = bk.bes_kenmerk_key"
|
|
+ " AND bkb.bes_kenmerkbestell_verwijder IS NULL) bes_kenmerkbestell_waarde"
|
|
+ ", isg.ins_discipline_key"
|
|
+ " FROM bes_bestelling b"
|
|
+ ", bes_bestelling_item bi"
|
|
+ ", bes_srtdeel isd"
|
|
+ ", bes_srtgroep isg"
|
|
+ ", bes_kenmerk bk"
|
|
+ ", bes_srtkenmerk bsk"
|
|
+ " WHERE b.bes_bestelling_key = bi.bes_bestelling_key"
|
|
+ " AND bi.bes_srtdeel_key = isd.bes_srtdeel_key"
|
|
+ " AND isd.bes_srtgroep_key = isg.bes_srtgroep_key"
|
|
+ " AND isg.ins_discipline_key = bk.bes_srtinstallatie_key"
|
|
+ " AND bk.bes_srtkenmerk_key = bsk.bes_srtkenmerk_key"
|
|
+ " AND bk.bes_kenmerk_verwijder IS NULL"
|
|
+ " AND bk.bes_kenmerk_type = 'B'"
|
|
+ " AND bk.bes_kenmerk_niveau = 'D'"
|
|
+ " AND bsk.bes_srtkenmerk_verwijder IS NULL";
|
|
|
|
sqlFlex = "SELECT "+lcl.xsql('sk.bes_srtkenmerk_omschrijving', 'sk.bes_srtkenmerk_key') +" omschrijving"
|
|
+ ", kb.bes_bestelling_key flexparentkey"
|
|
+ ", k.bes_kenmerk_key kenmerk_key"
|
|
+ ", CASE"
|
|
+ " WHEN sk.bes_srtkenmerk_kenmerktype = 'R' OR sk.bes_srtkenmerk_kenmerktype = 'S'"
|
|
+ " THEN FAC.getdomeinwaarde(sk.fac_kenmerkdomein_key, kb.bes_kenmerkbestell_waarde)"
|
|
+ " WHEN sk.bes_srtkenmerk_kenmerktype = 'D'"
|
|
+ " THEN TO_CHAR(fac.safe_To_Date(kb.bes_kenmerkbestell_waarde, 'DD-MM-YYYY'), 'DD-MM-YYYY')"
|
|
+ " ELSE kb.bes_kenmerkbestell_waarde"
|
|
+ " END waarde"
|
|
+ ", sk.bes_srtkenmerk_kenmerktype kenmerktype"
|
|
+ ", sk.bes_srtkenmerk_nmin nmin"
|
|
+ ", sk.bes_srtkenmerk_nmax nmax"
|
|
+ ", k.bes_kenmerk_volgnummer volgnummer"
|
|
+ ", " + lcl.xsql('sk.bes_srtkenmerk_dimensie', 'sk.bes_srtkenmerk_key') +" dimensie"
|
|
+ ", sk.bes_srtkenmerk_dec decimalen"
|
|
+ ", k.bes_kenmerk_niveau niveau"
|
|
+ " FROM bes_srtkenmerk sk"
|
|
+ ", (" + sql_srtbes_kenmerkbes + ") kb" // bes_kenmerk_key / bes_bestelling_key / bes_kenmerkbestell_waarde inclusief lege waarden
|
|
+ ", bes_kenmerk k"
|
|
+ " WHERE sk.bes_srtkenmerk_key = k.bes_srtkenmerk_key"
|
|
+ " AND kb.bes_kenmerk_key = k.bes_kenmerk_key"
|
|
+ " AND sk.bes_srtkenmerk_verwijder IS NULL";
|
|
|
|
break;
|
|
}
|
|
case "BEZ": { sql_bez_kenmerkbez = "SELECT bk.bez_kenmerk_key"
|
|
+ ", b.bez_bezoekers_key"
|
|
+ ", (SELECT bez_kenmerkwaarde_waarde"
|
|
+ " FROM bez_kenmerkwaarde bkw"
|
|
+ " WHERE bkw.bez_bezoekers_key = b.bez_bezoekers_key"
|
|
+ " AND bkw.bez_kenmerk_key = bk.bez_kenmerk_key"
|
|
+ " AND bkw.bez_kenmerkwaarde_verwijder IS NULL) bez_kenmerkwaarde_waarde"
|
|
+ " FROM bez_bezoekers b"
|
|
+ ", bez_kenmerk bk"
|
|
+ " WHERE bk.bez_kenmerk_verwijder IS NULL";
|
|
|
|
sqlFlex = "SELECT "+lcl.xsql('k.bez_kenmerk_omschrijving', 'k.bez_kenmerk_key') +" omschrijving"
|
|
+ ", kb.bez_bezoekers_key flexparentkey"
|
|
+ ", k.bez_kenmerk_key kenmerk_key"
|
|
+ ", CASE"
|
|
+ " WHEN k.bez_kenmerk_kenmerktype = 'R' OR k.bez_kenmerk_kenmerktype = 'S'"
|
|
+ " THEN FAC.getdomeinwaarde(k.fac_kenmerkdomein_key, kb.bez_kenmerkwaarde_waarde)"
|
|
+ " WHEN k.bez_kenmerk_kenmerktype = 'D'"
|
|
+ " THEN TO_CHAR(fac.safe_To_Date(kb.bez_kenmerkwaarde_waarde, 'DD-MM-YYYY'), 'DD-MM-YYYY')"
|
|
+ " ELSE kb.bez_kenmerkwaarde_waarde"
|
|
+ " END waarde"
|
|
+ ", k.bez_kenmerk_kenmerktype kenmerktype"
|
|
+ ", k.bez_kenmerk_nmin nmin"
|
|
+ ", k.bez_kenmerk_nmax nmax"
|
|
+ ", k.bez_kenmerk_volgnr volgnummer"
|
|
+ ", " + lcl.xsql('k.bez_kenmerk_dimensie', 'k.bez_kenmerk_key') +" dimensie"
|
|
+ ", k.bez_kenmerk_dec decimalen"
|
|
+ ", NULL niveau"
|
|
+ " FROM (" + sql_bez_kenmerkbez + ") kb" // bez_kenmerk_key / bez_bezoekers_key / bez_kenmerkwaarde_waarde inclusief lege waarden
|
|
+ ", bez_kenmerk k"
|
|
+ " WHERE kb.bez_kenmerk_key = k.bez_kenmerk_key"
|
|
+ " AND k.bez_kenmerk_verwijder IS NULL";
|
|
|
|
break;
|
|
}
|
|
case "CNT": { sql_srtcnt_kenmerkcnt = "SELECT ck.cnt_kenmerk_key"
|
|
+ ", c.cnt_contract_key"
|
|
+ ", (SELECT cnt_kenmerkcontract_waarde"
|
|
+ " FROM cnt_kenmerkcontract ckc"
|
|
+ " WHERE ckc.cnt_contract_key = c.cnt_contract_key"
|
|
+ " AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key"
|
|
+ " AND ckc.cnt_kenmerkcontract_verwijder IS NULL) cnt_kenmerkcontract_waarde"
|
|
+ " FROM cnt_contract c"
|
|
+ ", cnt_discipline cd"
|
|
+ ", cnt_kenmerk ck"
|
|
+ ", cnt_srtkenmerk csk"
|
|
+ " WHERE c.ins_discipline_key = cd.ins_discipline_key"
|
|
+ " AND ck.cnt_srtcontract_key = cd.ins_discipline_key"
|
|
+ " AND ck.cnt_srtkenmerk_key = csk.cnt_srtkenmerk_key"
|
|
+ " AND ck.cnt_kenmerk_verwijder IS NULL"
|
|
+ " AND csk.cnt_srtkenmerk_verwijder IS NULL";
|
|
|
|
sqlFlex = "SELECT "+lcl.xsql('sk.cnt_srtkenmerk_omschrijving', 'sk.cnt_srtkenmerk_key') +" omschrijving"
|
|
+ ", kc.cnt_contract_key flexparentkey"
|
|
+ ", k.cnt_kenmerk_key kenmerk_key"
|
|
+ ", CASE"
|
|
+ " WHEN sk.cnt_srtkenmerk_kenmerktype = 'R' OR sk.cnt_srtkenmerk_kenmerktype = 'S'"
|
|
+ " THEN FAC.getdomeinwaarde(sk.fac_kenmerkdomein_key, kc.cnt_kenmerkcontract_waarde)"
|
|
+ " WHEN sk.cnt_srtkenmerk_kenmerktype = 'D'"
|
|
+ " THEN TO_CHAR(fac.safe_To_Date(kc.cnt_kenmerkcontract_waarde, 'DD-MM-YYYY'), 'DD-MM-YYYY')"
|
|
+ " ELSE kc.cnt_kenmerkcontract_waarde"
|
|
+ " END waarde"
|
|
+ ", sk.cnt_srtkenmerk_kenmerktype kenmerktype"
|
|
+ ", sk.cnt_srtkenmerk_nmin nmin"
|
|
+ ", sk.cnt_srtkenmerk_nmax nmax"
|
|
+ ", k.cnt_kenmerk_volgnummer volgnummer"
|
|
+ ", " + lcl.xsql('sk.cnt_srtkenmerk_dimensie', 'sk.cnt_srtkenmerk_key') +" dimensie"
|
|
+ ", sk.cnt_srtkenmerk_dec decimalen"
|
|
+ ", k.cnt_kenmerk_niveau niveau"
|
|
+ " FROM cnt_srtkenmerk sk" // TODO: cnt_v_aanwezigsrtkenmerk bestaat niet
|
|
+ ", (" + sql_srtcnt_kenmerkcnt + ") kc" // cnt_kenmerk_key / cnt_contract_key / cnt_kenmerkcontract_waarde inclusief lege waarden
|
|
+ ", cnt_kenmerk k"
|
|
+ " WHERE sk.cnt_srtkenmerk_key = k.cnt_srtkenmerk_key"
|
|
+ " AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key"
|
|
+ " AND sk.cnt_srtkenmerk_verwijder IS NULL";
|
|
|
|
break;
|
|
}
|
|
case "FAQ": { sql_faq_kenmerkfaq = "SELECT fk.faq_kenmerk_key"
|
|
+ ", f.fac_faq_key"
|
|
+ ", (SELECT faq_kenmerkwaarde_waarde"
|
|
+ " FROM faq_kenmerkwaarde fkw"
|
|
+ " WHERE fkw.fac_faq_key = f.fac_faq_key"
|
|
+ " AND fkw.faq_kenmerk_key = fk.faq_kenmerk_key"
|
|
+ " AND fkw.faq_kenmerkwaarde_verwijder IS NULL) faq_kenmerkwaarde_waarde"
|
|
+ " FROM fac_faq f"
|
|
+ ", faq_kenmerk fk"
|
|
+ " WHERE fk.faq_kenmerk_verwijder IS NULL";
|
|
|
|
sqlFlex = "SELECT "+lcl.xsql('k.faq_kenmerk_omschrijving', 'k.faq_kenmerk_key') +" omschrijving"
|
|
+ ", kf.fac_faq_key flexparentkey"
|
|
+ ", k.faq_kenmerk_key kenmerk_key"
|
|
+ ", CASE"
|
|
+ " WHEN k.faq_kenmerk_kenmerktype = 'R' OR k.faq_kenmerk_kenmerktype = 'S'"
|
|
+ " THEN FAC.getdomeinwaarde(k.fac_kenmerkdomein_key, kf.faq_kenmerkwaarde_waarde)"
|
|
+ " WHEN k.faq_kenmerk_kenmerktype = 'D'"
|
|
+ " THEN TO_CHAR(fac.safe_To_Date(kf.faq_kenmerkwaarde_waarde, 'DD-MM-YYYY'), 'DD-MM-YYYY')"
|
|
+ " ELSE kf.faq_kenmerkwaarde_waarde"
|
|
+ " END waarde"
|
|
+ ", k.faq_kenmerk_kenmerktype kenmerktype"
|
|
+ ", k.faq_kenmerk_nmin nmin"
|
|
+ ", k.faq_kenmerk_nmax nmax"
|
|
+ ", k.faq_kenmerk_volgnr volgnummer"
|
|
+ ", " + lcl.xsql('k.faq_kenmerk_dimensie', 'k.faq_kenmerk_key') +" dimensie"
|
|
+ ", k.faq_kenmerk_dec decimalen"
|
|
+ ", NULL niveau"
|
|
+ " FROM (" + sql_faq_kenmerkfaq + ") kf" // faq_kenmerk_key / fac_faq_key / faq_kenmerkwaarde_waarde inclusief lege waarden
|
|
+ ", faq_kenmerk k"
|
|
+ " WHERE kf.faq_kenmerk_key = k.faq_kenmerk_key"
|
|
+ " AND k.faq_kenmerk_verwijder IS NULL";
|
|
|
|
break;
|
|
}
|
|
case "FIN": { sql_fin_kenmerkfin = "SELECT fk.fin_kenmerk_key"
|
|
+ ", f.fin_factuur_key"
|
|
+ ", (SELECT fin_kenmerkfactuur_waarde"
|
|
+ " FROM fin_kenmerkfactuur fkf"
|
|
+ " WHERE fkf.fin_factuur_key = f.fin_factuur_key"
|
|
+ " AND fkf.fin_kenmerk_key = fk.fin_kenmerk_key"
|
|
+ " AND fkf.fin_kenmerkfactuur_verwijder IS NULL) fin_kenmerkfactuur_waarde"
|
|
+ " FROM fin_factuur f"
|
|
+ ", fin_kenmerk fk"
|
|
+ " WHERE fk.fin_kenmerk_verwijder IS NULL";
|
|
|
|
sqlFlex = "SELECT "+lcl.xsql('k.fin_kenmerk_omschrijving', 'k.fin_kenmerk_key') +" omschrijving"
|
|
+ ", kf.fin_factuur_key flexparentkey"
|
|
+ ", k.fin_kenmerk_key kenmerk_key"
|
|
+ ", CASE"
|
|
+ " WHEN k.fin_kenmerk_kenmerktype = 'R' OR k.fin_kenmerk_kenmerktype = 'S'"
|
|
+ " THEN FAC.getdomeinwaarde(k.fac_kenmerkdomein_key, kf.fin_kenmerkfactuur_waarde)"
|
|
+ " WHEN k.fin_kenmerk_kenmerktype = 'D'"
|
|
+ " THEN TO_CHAR(fac.safe_To_Date(kf.fin_kenmerkfactuur_waarde, 'DD-MM-YYYY'), 'DD-MM-YYYY')"
|
|
+ " ELSE kf.fin_kenmerkfactuur_waarde"
|
|
+ " END waarde"
|
|
+ ", k.fin_kenmerk_kenmerktype kenmerktype"
|
|
+ ", k.fin_kenmerk_nmin nmin"
|
|
+ ", k.fin_kenmerk_nmax nmax"
|
|
+ ", k.fin_kenmerk_volgnr volgnummer"
|
|
+ ", " + lcl.xsql('k.fin_kenmerk_dimensie', 'k.fin_kenmerk_key') +" dimensie"
|
|
+ ", k.fin_kenmerk_dec decimalen"
|
|
+ ", NULL niveau"
|
|
+ " FROM (" + sql_fin_kenmerkfin + ") kf" // fin_kenmerk_key / fin_factuur_key / fin_kenmerkfactuur_waarde inclusief lege waarden
|
|
+ ", fin_kenmerk k"
|
|
+ " WHERE kf.fin_kenmerk_key = k.fin_kenmerk_key"
|
|
+ " AND k.fin_kenmerk_verwijder IS NULL";
|
|
|
|
break;
|
|
}
|
|
case "FINR": { sql_fin_kenmerkfin = "SELECT fk.fin_kenmerk_key"
|
|
+ ", fr.fin_factuurregel_key"
|
|
+ ", (SELECT kfr.fin_kenmerkfactregel_waarde"
|
|
+ " FROM fin_kenmerkfactregel kfr"
|
|
+ " WHERE kfr.fin_factuurregel_key = fr.fin_factuurregel_key"
|
|
+ " AND kfr.fin_kenmerk_key = fk.fin_kenmerk_key"
|
|
+ " AND kfr.fin_kenmerkfactregel_verwijder IS NULL) fin_kenmerkfactregel_waarde"
|
|
+ " FROM fin_factuurregel fr"
|
|
+ ", fin_kenmerk fk"
|
|
+ " WHERE fk.fin_kenmerk_verwijder IS NULL";
|
|
|
|
sqlFlex = "SELECT "+lcl.xsql('k.fin_kenmerk_omschrijving', 'k.fin_kenmerk_key') +" omschrijving"
|
|
+ ", kf.fin_factuurregel_key flexparentkey"
|
|
+ ", k.fin_kenmerk_key kenmerk_key"
|
|
+ ", CASE"
|
|
+ " WHEN k.fin_kenmerk_kenmerktype = 'R' OR k.fin_kenmerk_kenmerktype = 'S'"
|
|
+ " THEN FAC.getdomeinwaarde(k.fac_kenmerkdomein_key, kf.fin_kenmerkfactregel_waarde)"
|
|
+ " WHEN k.fin_kenmerk_kenmerktype = 'L'"
|
|
+ " THEN k.fin_kenmerk_default"
|
|
+ " WHEN k.fin_kenmerk_kenmerktype = 'D'"
|
|
+ " THEN TO_CHAR(fac.safe_To_Date(kf.fin_kenmerkfactregel_waarde, 'DD-MM-YYYY'), 'DD-MM-YYYY')"
|
|
+ " ELSE kf.fin_kenmerkfactregel_waarde"
|
|
+ " END waarde"
|
|
+ ", k.fin_kenmerk_kenmerktype kenmerktype"
|
|
+ ", k.fin_kenmerk_nmin nmin"
|
|
+ ", k.fin_kenmerk_nmax nmax"
|
|
+ ", k.fin_kenmerk_volgnr volgnummer"
|
|
+ ", " + lcl.xsql('k.fin_kenmerk_dimensie', 'k.fin_kenmerk_key') +" dimensie"
|
|
+ ", k.fin_kenmerk_dec decimalen"
|
|
+ ", NULL niveau"
|
|
+ " FROM (" + sql_fin_kenmerkfin + ") kf" // fin_kenmerk_key / fin_factuurregel_key / fin_kenmerkfactregel_waarde inclusief lege waarden
|
|
+ ", fin_kenmerk k"
|
|
+ " WHERE kf.fin_kenmerk_key = k.fin_kenmerk_key"
|
|
+ " AND k.fin_kenmerk_verwijder IS NULL"
|
|
+ " AND k.fin_kenmerk_type = 'R'";
|
|
|
|
break;
|
|
}
|
|
case "INS": { sqlFlex = "SELECT "+lcl.xsql('sk.ins_srtkenmerk_omschrijving', 'sk.ins_srtkenmerk_key') +" omschrijving"
|
|
+ ", kd.ins_deel_key flexparentkey"
|
|
+ ", k.ins_kenmerk_key kenmerk_key"
|
|
+ ", CASE"
|
|
+ " WHEN sk.ins_srtkenmerk_kenmerktype = 'R' OR sk.ins_srtkenmerk_kenmerktype = 'S'"
|
|
+ " THEN FAC.getdomeinwaarde(sk.fac_kenmerkdomein_key, kd.ins_kenmerkdeel_waarde)"
|
|
+ " WHEN sk.ins_srtkenmerk_kenmerktype = 'D'"
|
|
+ " THEN TO_CHAR(fac.safe_To_Date(kd.ins_kenmerkdeel_waarde, 'DD-MM-YYYY'), 'DD-MM-YYYY')"
|
|
+ " ELSE kd.ins_kenmerkdeel_waarde"
|
|
+ " END waarde"
|
|
+ ", sk.ins_srtkenmerk_kenmerktype kenmerktype"
|
|
+ ", sk.ins_srtkenmerk_nmin nmin"
|
|
+ ", sk.ins_srtkenmerk_nmax nmax"
|
|
+ ", k.ins_kenmerk_volgnummer volgnummer"
|
|
+ ", " + lcl.xsql('sk.ins_srtkenmerk_dimensie', 'sk.ins_srtkenmerk_key') +" dimensie"
|
|
+ ", sk.ins_srtkenmerk_dec decimalen"
|
|
+ ", k.ins_kenmerk_niveau niveau"
|
|
+ " FROM ins_v_aanwezigsrtkenmerk sk"
|
|
+ ", ins_v_srtdeel_kenmerkdeel kd" // For excel we cannot omit empty columns but we can filter away the empty values for print
|
|
+ ", ins_kenmerk k"
|
|
+ " WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key"
|
|
+ " AND kd.ins_kenmerk_key = k.ins_kenmerk_key";
|
|
|
|
break;
|
|
}
|
|
case "MLD": { sql_srtmld_kenmerkmld = "SELECT mk.mld_kenmerk_key"
|
|
+ ", m.mld_melding_key"
|
|
+ ", (SELECT mld_kenmerkmelding_waarde"
|
|
+ " FROM mld_kenmerkmelding mkm"
|
|
+ " WHERE mkm.mld_melding_key = m.mld_melding_key"
|
|
+ " AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key"
|
|
+ " AND mkm.mld_kenmerkmelding_verwijder IS NULL) mld_kenmerkmelding_waarde"
|
|
+ " FROM mld_melding m"
|
|
+ ", mld_stdmelding msm"
|
|
+ ", mld_discipline d"
|
|
+ ", mld_kenmerk mk"
|
|
+ " WHERE m.mld_stdmelding_key = msm.mld_stdmelding_key"
|
|
+ " AND msm.mld_ins_discipline_key = d.ins_discipline_key"
|
|
+ " AND ((mk.mld_stdmelding_key = msm.mld_stdmelding_key"
|
|
+ " AND mk.mld_kenmerk_niveau = 'S')"
|
|
+ " OR (mk.mld_stdmelding_key = msm.mld_ins_discipline_key"
|
|
+ " AND mk.mld_kenmerk_niveau = 'D')"
|
|
+ " OR (mk.mld_stdmelding_key = d.ins_srtdiscipline_key"
|
|
+ " AND mk.mld_kenmerk_niveau = 'T'))"
|
|
+ " AND mk.mld_kenmerk_verwijder IS NULL";
|
|
|
|
sqlFlex = "SELECT "+lcl.xsql('sk.mld_srtkenmerk_omschrijving', 'sk.mld_srtkenmerk_key') +" omschrijving"
|
|
+ ", km.mld_melding_key flexparentkey"
|
|
+ ", k.mld_kenmerk_key kenmerk_key"
|
|
+ ", CASE"
|
|
+ " WHEN sk.mld_srtkenmerk_kenmerktype = 'R' OR sk.mld_srtkenmerk_kenmerktype = 'S'"
|
|
+ " THEN FAC.getdomeinwaarde(sk.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde)"
|
|
+ " WHEN sk.mld_srtkenmerk_kenmerktype = 'D'"
|
|
+ " THEN TO_CHAR(fac.safe_To_Date(km.mld_kenmerkmelding_waarde, 'DD-MM-YYYY'), 'DD-MM-YYYY')"
|
|
+ " ELSE km.mld_kenmerkmelding_waarde"
|
|
+ " END waarde"
|
|
+ ", sk.mld_srtkenmerk_kenmerktype kenmerktype"
|
|
+ ", sk.mld_srtkenmerk_nmin nmin"
|
|
+ ", sk.mld_srtkenmerk_nmax nmax"
|
|
+ ", k.mld_kenmerk_volgnummer volgnummer"
|
|
+ ", "+ lcl.xsql('sk.mld_srtkenmerk_dimensie', 'sk.mld_srtkenmerk_key') + " dimensie"
|
|
+ ", sk.mld_srtkenmerk_dec decimalen"
|
|
+ ", k.mld_kenmerk_niveau niveau"
|
|
+ " FROM mld_srtkenmerk sk"
|
|
+ ", (" + sql_srtmld_kenmerkmld + ") km" // mld_kenmerk_key / mld_melding_key / mld_kenmerkmelding_waarde inclusief lege waarden
|
|
+ ", mld_kenmerk k"
|
|
+ " WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key"
|
|
+ " AND km.mld_kenmerk_key = k.mld_kenmerk_key"
|
|
+ " AND sk.mld_srtkenmerk_verwijder IS NULL";
|
|
|
|
break;
|
|
}
|
|
case "OPDR": { sql_srtopdr_kenmerkopdr = "SELECT mk.mld_kenmerk_key"
|
|
+ ", o.mld_opdr_key"
|
|
+ ", (SELECT mld_kenmerkopdr_waarde"
|
|
+ " FROM mld_kenmerkopdr mko"
|
|
+ " WHERE mko.mld_opdr_key = o.mld_opdr_key"
|
|
+ " AND mko.mld_kenmerk_key = mk.mld_kenmerk_key"
|
|
+ " AND mko.mld_kenmerkopdr_verwijder IS NULL) mld_kenmerkopdr_waarde"
|
|
+ " FROM mld_opdr o"
|
|
+ ", mld_typeopdr mt"
|
|
+ ", mld_kenmerk mk"
|
|
+ ", mld_srtkenmerk msk"
|
|
+ " WHERE o.mld_typeopdr_key = mt.mld_typeopdr_key"
|
|
+ " AND (mk.mld_typeopdr_key = mt.mld_typeopdr_key"
|
|
+ " AND mk.mld_kenmerk_niveau = 'O')"
|
|
+ " AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key"
|
|
+ " AND mk.mld_kenmerk_verwijder IS NULL"
|
|
+ " AND msk.mld_srtkenmerk_verwijder IS NULL";
|
|
|
|
sqlFlex = "SELECT "+lcl.xsql('sk.mld_srtkenmerk_omschrijving', 'sk.mld_srtkenmerk_key') +" omschrijving"
|
|
+ ", ko.mld_opdr_key flexparentkey"
|
|
+ ", k.mld_kenmerk_key kenmerk_key"
|
|
+ ", CASE"
|
|
+ " WHEN sk.mld_srtkenmerk_kenmerktype = 'R' OR sk.mld_srtkenmerk_kenmerktype = 'S'"
|
|
+ " THEN FAC.getdomeinwaarde(sk.fac_kenmerkdomein_key, ko.mld_kenmerkopdr_waarde)"
|
|
+ " WHEN sk.mld_srtkenmerk_kenmerktype = 'D'"
|
|
+ " THEN TO_CHAR(fac.safe_To_Date(ko.mld_kenmerkopdr_waarde, 'DD-MM-YYYY'), 'DD-MM-YYYY')"
|
|
+ " ELSE ko.mld_kenmerkopdr_waarde"
|
|
+ " END waarde"
|
|
+ ", sk.mld_srtkenmerk_kenmerktype kenmerktype"
|
|
+ ", sk.mld_srtkenmerk_nmin nmin"
|
|
+ ", sk.mld_srtkenmerk_nmax nmax"
|
|
+ ", k.mld_kenmerk_volgnummer volgnummer"
|
|
+ ", "+ lcl.xsql('sk.mld_srtkenmerk_dimensie', 'sk.mld_srtkenmerk_key') + " dimensie"
|
|
+ ", sk.mld_srtkenmerk_dec decimalen"
|
|
+ ", k.mld_kenmerk_niveau niveau"
|
|
+ " FROM mld_srtkenmerk sk" // TODO: mld_v_aanwezigsrtkenmerk bestaat niet
|
|
+ ", (" + sql_srtopdr_kenmerkopdr + ") ko" // mld_kenmerk_key / mld_opdr_key / mld_kenmerkopdr_waarde inclusief lege waarden
|
|
+ ", mld_kenmerk k"
|
|
+ " WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key"
|
|
+ " AND ko.mld_kenmerk_key = k.mld_kenmerk_key"
|
|
+ " AND sk.mld_srtkenmerk_verwijder IS NULL";
|
|
|
|
break;
|
|
}
|
|
case "PRS": {
|
|
var where = [];
|
|
if (flexId.toLowerCase()=="prs_perslid_key")
|
|
{
|
|
var authparamsUSE = user.checkAutorisation("WEB_PRSUSE", true)||{PRSreadlevel: 9};
|
|
var authparamsMAN = user.checkAutorisation("WEB_PRSMAN", true)||{PRSreadlevel: 10};
|
|
// Als authparamsMAN en authparamsUSE verschillen zou het heel ingewikkeld worden.
|
|
// Daarom tonen we dan voor de veiligheid geen MAN meer.
|
|
if (authparamsMAN.PRSreadlevel > -1 && authparamsMAN.PRSreadlevel != authparamsUSE.PRSreadlevel)
|
|
where.push("prs_kenmerk_volgnr >= 100");
|
|
if (authparamsUSE.PRSreadlevel > -1)
|
|
where.push("prs_kenmerk_volgnr <= 100");
|
|
}
|
|
|
|
sql_prs_kenmerkprs = "SELECT pk.prs_kenmerk_key"
|
|
+ ", p." + flexId // prs_afdeling_key, prs_perslid_key
|
|
+ ", (SELECT prs_kenmerklink_waarde"
|
|
+ " FROM prs_kenmerklink pkl"
|
|
+ " WHERE pkl.prs_link_key = p." + flexId // prs_afdeling_key, prs_perslid_key
|
|
+ " AND pkl.prs_kenmerk_key = pk.prs_kenmerk_key"
|
|
+ " AND pkl.prs_kenmerklink_verwijder IS NULL) prs_kenmerklink_waarde"
|
|
+ " FROM " + flexId.replace(/_key/g, "") + " p" // prs_afdeling, prs_perslid
|
|
+ ", prs_kenmerk pk"
|
|
+ " WHERE pk.prs_kenmerk_verwijder IS NULL";
|
|
|
|
sqlFlex = "SELECT "+lcl.xsql('k.prs_kenmerk_omschrijving', 'k.prs_kenmerk_key') +" omschrijving"
|
|
+ ", kp." + flexId + " flexparentkey" // prs_perslid_key, prs_afdeling_key
|
|
+ ", k.prs_kenmerk_key kenmerk_key"
|
|
+ ", CASE"
|
|
+ " WHEN k.prs_kenmerk_kenmerktype = 'R' OR k.prs_kenmerk_kenmerktype = 'S'"
|
|
+ " THEN FAC.getdomeinwaarde(k.fac_kenmerkdomein_key, kp.prs_kenmerklink_waarde)"
|
|
+ " WHEN k.prs_kenmerk_kenmerktype = 'D'"
|
|
+ " THEN TO_CHAR(fac.safe_To_Date(kp.prs_kenmerklink_waarde, 'DD-MM-YYYY'), 'DD-MM-YYYY')"
|
|
+ " ELSE kp.prs_kenmerklink_waarde"
|
|
+ " END waarde"
|
|
+ ", k.prs_kenmerk_kenmerktype kenmerktype"
|
|
+ ", k.prs_kenmerk_nmin nmin"
|
|
+ ", k.prs_kenmerk_nmax nmax"
|
|
+ ", k.prs_kenmerk_volgnr volgnummer"
|
|
+ ", " + lcl.xsql('k.prs_kenmerk_dimensie', 'k.prs_kenmerk_key') +" dimensie"
|
|
+ ", k.prs_kenmerk_dec decimalen"
|
|
+ ", k.prs_kenmerk_niveau niveau"
|
|
+ " FROM (" + sql_prs_kenmerkprs + ") kp" // prs_kenmerk_key / prs_gebouw_key / prs_kenmerklink_waarde inclusief lege waarden
|
|
+ ", prs_kenmerk k"
|
|
+ " WHERE kp.prs_kenmerk_key = k.prs_kenmerk_key"
|
|
+ " AND k.prs_kenmerk_verwijder IS NULL"
|
|
+ (where.length?" AND " + where.join(" AND ") + " ":"")
|
|
+ " AND k.prs_kenmerk_niveau = " + safe.quoted_sql_upper(flexId.substr(4,1)); // A (Afdeling) en P (Persoon/Perslid)
|
|
|
|
break;
|
|
}
|
|
case "RES": { sql_srtres_kenmerkres = "SELECT rk.res_kenmerk_key"
|
|
+ ", rr.res_rsv_ruimte_key"
|
|
+ ", (SELECT res_kenmerkreservering_waarde"
|
|
+ " FROM res_kenmerkwaarde rkw"
|
|
+ " WHERE rkw.res_rsv_ruimte_key = rr.res_rsv_ruimte_key"
|
|
+ " AND rkw.res_kenmerk_key = rk.res_kenmerk_key"
|
|
+ " AND rkw.res_kenmerkwaarde_verwijder IS NULL) res_kenmerkreservering_waarde"
|
|
+ ", ra.res_activiteit_key"
|
|
+ " FROM res_rsv_ruimte rr"
|
|
+ ", res_activiteit ra"
|
|
+ ", res_kenmerk rk"
|
|
+ ", res_srtkenmerk rsk"
|
|
+ " WHERE rr.res_activiteit_key = ra.res_activiteit_key"
|
|
+ " AND ra.res_activiteit_key = rk.res_activiteit_key"
|
|
+ " AND rk.res_srtkenmerk_key = rsk.res_srtkenmerk_key"
|
|
+ " AND rk.res_kenmerk_verwijder IS NULL"
|
|
+ " AND rk.res_kenmerk_niveau = 'A'"
|
|
+ " AND rsk.res_srtkenmerk_verwijder IS NULL";
|
|
|
|
sqlFlex = "SELECT "+lcl.xsql('sk.res_srtkenmerk_omschrijving', 'sk.res_srtkenmerk_key') +" omschrijving"
|
|
+ ", kr.res_rsv_ruimte_key flexparentkey"
|
|
+ ", k.res_kenmerk_key kenmerk_key"
|
|
+ ", CASE"
|
|
+ " WHEN sk.res_srtkenmerk_kenmerktype = 'R' OR sk.res_srtkenmerk_kenmerktype = 'S'"
|
|
+ " THEN FAC.getdomeinwaarde(sk.fac_kenmerkdomein_key, kr.res_kenmerkreservering_waarde)"
|
|
+ " WHEN sk.res_srtkenmerk_kenmerktype = 'D'"
|
|
+ " THEN TO_CHAR(fac.safe_To_Date(kr.res_kenmerkreservering_waarde, 'DD-MM-YYYY'), 'DD-MM-YYYY')"
|
|
+ " ELSE kr.res_kenmerkreservering_waarde"
|
|
+ " END waarde"
|
|
+ ", sk.res_srtkenmerk_kenmerktype kenmerktype"
|
|
+ ", sk.res_srtkenmerk_nmin nmin"
|
|
+ ", sk.res_srtkenmerk_nmax nmax"
|
|
+ ", k.res_kenmerk_volgnummer volgnummer"
|
|
+ ", " + lcl.xsql('sk.res_srtkenmerk_dimensie', 'sk.res_srtkenmerk_key') +" dimensie"
|
|
+ ", sk.res_srtkenmerk_dec decimalen"
|
|
+ ", k.res_kenmerk_niveau niveau"
|
|
+ " FROM res_srtkenmerk sk"
|
|
+ ", (" + sql_srtres_kenmerkres + ") kr" // res_kenmerk_key / res_rsv_ruimte_key / res_kenmerkreservering_waarde inclusief lege waarden
|
|
+ ", res_kenmerk k"
|
|
+ " WHERE sk.res_srtkenmerk_key = k.res_srtkenmerk_key"
|
|
+ " AND kr.res_kenmerk_key = k.res_kenmerk_key"
|
|
+ " AND sk.res_srtkenmerk_verwijder IS NULL";
|
|
|
|
break;
|
|
}
|
|
default: { sqlFlex = "";
|
|
break;
|
|
}
|
|
}
|
|
|
|
return sqlFlex;
|
|
}
|
|
|
|
function flexHeader(oRsFlex)
|
|
{
|
|
var flexHeader = (oRsFlex("omschrijving").value? oRsFlex("omschrijving").value : "")
|
|
+ ('' + oRsFlex("dimensie").value != 'null'
|
|
? ' [' + oRsFlex("dimensie").value + ']'
|
|
: '');
|
|
|
|
return flexHeader;
|
|
}
|
|
|
|
function flexValue(oRsFlex, showProperties)
|
|
{
|
|
// We do never want dimension suffixed to the value. use it in the labels instead
|
|
// Voor afdruk naar excel is de dimensies achter de kolom header geplakt.
|
|
// Voor afdruk naar printer is de dimensie achter het label geplakt.
|
|
var flexValue = "";
|
|
if ('' + oRsFlex("waarde").value != 'null')
|
|
{
|
|
flexValue = oRsFlex("waarde").value;
|
|
// Indien de waarde van het kenmerk numeriek is en alleen de waarden 0 of 1 kan bevatten, dan de text "Ja" of "Nee" tonen
|
|
if (oRsFlex("kenmerktype").value == "N" && oRsFlex("nmin").value == 0 && oRsFlex("nmax").value == 1)
|
|
{
|
|
if (flexValue == 0)
|
|
flexValue = L("lcl_check_0");
|
|
else if (flexValue == 1)
|
|
flexValue = L("lcl_check_1");
|
|
}
|
|
// Indien de waarde van het kenmerk numeriek is, dan juiste format tonen (punt of komma)
|
|
else if (oRsFlex("kenmerktype").value == "N" && oRsFlex("decimalen").value > 0)
|
|
flexValue = ResultsetTable.formatValue(parseFloat(flexValue), { datatype: "float", decimals: oRsFlex("decimalen").value});
|
|
}
|
|
|
|
return flexValue;
|
|
}
|
|
|
|
function addFlexKenmerkHeader(oRsFlexData, lthis)
|
|
{
|
|
with(lthis)
|
|
{ // Flexkenmerken tonen bij isPrinting of isExcel.
|
|
var lhtml = "";
|
|
if ((isPrinting || showProperties) && lthis.printFlex)
|
|
{
|
|
lhtml += "<th>" + L("lcl_properties") + "</th>";
|
|
}
|
|
else if (isExcel && lthis.printFlex)
|
|
{
|
|
for (var i=0; i < oRsFlexData.length; i++)
|
|
{
|
|
lhtml += "<th>" + oRsFlexData[i].header + "</th>";
|
|
}
|
|
}
|
|
}
|
|
return lhtml;
|
|
}
|
|
|
|
function OpenFlexFile(Module, Niveau, Key, Kenmerk_key, fname)
|
|
{
|
|
// Lever code op voor tonen van een bepaalde flexfile streaming
|
|
var s = "../shared/BijlagenStream.asp"
|
|
s += "?module=" + Module
|
|
+ "&key=" + Key
|
|
+ (Niveau? "&niveau=" + Niveau : "")
|
|
+ "&kenmerk_key=" + Kenmerk_key
|
|
+ "&filename=" + Server.URLencode(fname);
|
|
return s;
|
|
}
|
|
|
|
function addFlexKenmerkKolommen(oRsFlexData, lthis, params)
|
|
{
|
|
var lastRowKey = params.lastRowKey;
|
|
var thisKey = params.thisKey;
|
|
with(lthis)
|
|
{ // Flexkenmerken tonen bij isPrinting of isExcel
|
|
var lhtml = [];
|
|
var suppressFlex = suppressKeyRepeat && lastRowKey == thisKey;
|
|
|
|
if ((isPrinting || showProperties) && printFlex)
|
|
{
|
|
if (!suppressFlex)
|
|
{
|
|
for (var i=0; i < oRsFlexData.length; i++)
|
|
{
|
|
var rec = oRsFlexData[i];
|
|
|
|
var fValue = rec.value;
|
|
if ((isPrinting || showProperties) && fValue != "")
|
|
{
|
|
if (rec.type == 'F') // Die maken we klikbaar
|
|
{
|
|
var url = protectQS.create(OpenFlexFile(flexModule, rec.kenmerk_niveau, rec.key, rec.kenmerk_key, fValue));
|
|
lhtml.push(safe.html(rec.header) + ": <a href='" + safe.htmlattr(url) + "' target='_new'>" + safe.html(fValue) + "</a>")
|
|
}
|
|
else
|
|
lhtml.push(safe.html(rec.header + ': ' + fValue));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (isExcel && printFlex)
|
|
{
|
|
for (var i=0; i < oRsFlexData.length; i++)
|
|
{
|
|
var rec = oRsFlexData[i];
|
|
var fValue = rec.value;
|
|
lhtml.push(fValue != null? safe.textarea(fValue) : "");
|
|
}
|
|
}
|
|
}
|
|
if (lhtml.length)
|
|
return "<td>" + lhtml.join(isExcel?"</td><td>":"<br>") + "</td>";
|
|
else
|
|
if ((isPrinting || lthis.showProperties) && lthis.printFlex) // Altijd minstens lege td voor de kleuring
|
|
return "<td></td>";
|
|
return "";
|
|
}
|
|
|
|
function getFlexData(theSqlFlex, flexKey, showProperties)
|
|
{
|
|
var completeSqlFlex = "SELECT * FROM (" + theSqlFlex + ")"
|
|
+ " WHERE flexparentkey = " + flexKey // De flexKey invullen in de sqlFlex query
|
|
+ " ORDER BY volgnummer, omschrijving";
|
|
var oRs = Oracle.Execute(completeSqlFlex);
|
|
var result = [];
|
|
while (!oRs.EOF)
|
|
{
|
|
var kenmerktype = oRs("kenmerktype").Value
|
|
// We kunnen niet met Blanco (Q), Label (L), Folder met bestanden (M), Bestand (F) en Encrypted bestand (E) en als het kenmerk volgnummer negatief is
|
|
if (kenmerktype == 'Q' || kenmerktype == 'L' || kenmerktype == 'M' || (kenmerktype == 'F' && !showProperties) || kenmerktype == 'E' || oRs("volgnummer").value < 0)
|
|
{
|
|
oRs.MoveNext();
|
|
continue; // daar kunnen we niet mee
|
|
}
|
|
var data = { value: flexValue(oRs),
|
|
type: kenmerktype,
|
|
key: flexKey,
|
|
kenmerk_key: oRs("kenmerk_key").value,
|
|
volgnummer: oRs("volgnummer").value,
|
|
niveau: oRs("niveau").value,
|
|
header: flexHeader(oRs),
|
|
kenmerk_niveau: oRs("niveau").value
|
|
}
|
|
result.push(data);
|
|
oRs.MoveNext();
|
|
}
|
|
oRs.Close();
|
|
return result;
|
|
}
|
|
|
|
%> |