Files
Facilitor/APPL/Shared/resultset_flex.inc
Maykel Geerdink 14bf227910 PCHD#27790: Uitbreiding factuurscherm (flexkenmerken).
svn path=/Website/trunk/; revision=19737
2013-11-06 12:34:00 +00:00

655 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)
{
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"
+ ", 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 ka." + flexId + " = <$VALUE$>" // // alg_district_key, alg_locatie_key, alg_gebouw_key, alg_terrein_key, alg_ruimte_key
+ " AND k.alg_kenmerk_niveau = " + safe.quoted_sql_upper(flexId.substr(4,1)) // D (District), L (Locatie), G (Gebouw), T (Terreinsector) en R (Ruimte).
+ " ORDER BY k.alg_kenmerk_volgnr"
+ ", UPPER(" + lcl.xsql('k.alg_kenmerk_omschrijving', 'k.alg_kenmerk_key') + ")";
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"
+ ", 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"
+ " AND kb.bes_bestelling_key = <$VALUE$>"
+ " ORDER BY k.bes_kenmerk_volgnummer"
+ ", UPPER(" + lcl.xsql('sk.bes_srtkenmerk_omschrijving', 'sk.bes_srtkenmerk_key') + ")";
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"
+ ", 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"
+ " AND kb.bez_bezoekers_key = <$VALUE$>"
+ " ORDER BY k.bez_kenmerk_volgnr"
+ ", UPPER(" + lcl.xsql('k.bez_kenmerk_omschrijving', 'k.bez_kenmerk_key') + ")";
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"
+ ", 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"
+ " AND kc.cnt_contract_key = <$VALUE$>"
+ " ORDER BY k.cnt_kenmerk_volgnummer"
+ ", UPPER(" + lcl.xsql('sk.cnt_srtkenmerk_omschrijving', 'sk.cnt_srtkenmerk_key') + ")";
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"
+ ", 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"
+ " AND kf.fac_faq_key = <$VALUE$>"
+ " ORDER BY k.faq_kenmerk_volgnr"
+ ", UPPER(" + lcl.xsql('k.faq_kenmerk_omschrijving', 'k.faq_kenmerk_key') + ")";
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"
+ ", 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"
+ " AND kf.fin_factuur_key = <$VALUE$>"
+ " ORDER BY k.fin_kenmerk_volgnr"
+ ", UPPER(" + lcl.xsql('k.fin_kenmerk_omschrijving', 'k.fin_kenmerk_key') + ")";
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"
+ ", 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 = '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'"
+ " AND kf.fin_factuurregel_key = <$VALUE$>"
+ " ORDER BY k.fin_kenmerk_volgnr"
+ ", UPPER(" + lcl.xsql('k.fin_kenmerk_omschrijving', 'k.fin_kenmerk_key') + ")";
break;
}
case "INS": { sqlFlex = "SELECT "+lcl.xsql('sk.ins_srtkenmerk_omschrijving', 'sk.ins_srtkenmerk_key') +" omschrijving"
+ ", 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"
+ " AND kd.ins_deel_key = <$VALUE$>"
+ " ORDER BY k.ins_kenmerk_volgnummer"
+ ", UPPER(" + lcl.xsql('sk.ins_srtkenmerk_omschrijving', 'sk.ins_srtkenmerk_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"
+ ", 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"
+ " AND km.mld_melding_key = <$VALUE$>"
+ " ORDER BY k.mld_kenmerk_volgnummer"
+ ", UPPER(" + lcl.xsql('sk.mld_srtkenmerk_omschrijving', 'sk.mld_srtkenmerk_key') + ")";
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"
+ ", 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"
+ " AND ko.mld_opdr_key = <$VALUE$>"
+ " ORDER BY k.mld_kenmerk_volgnummer"
+ ", UPPER(" + lcl.xsql('sk.mld_srtkenmerk_omschrijving', 'sk.mld_srtkenmerk_key') + ")";
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"
+ ", 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 kp." + flexId + " = <$VALUE$>" // prs_perslid_key, prs_afdeling_key
+ " AND k.prs_kenmerk_niveau = " + safe.quoted_sql_upper(flexId.substr(4,1)) // A (Afdeling) en P (Persoon/Perslid)
+ " ORDER BY k.prs_kenmerk_volgnr"
+ ", UPPER(" + lcl.xsql('k.prs_kenmerk_omschrijving', 'k.prs_kenmerk_key') + ")";
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"
+ ", 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"
+ " AND kr.res_rsv_ruimte_key = <$VALUE$>"
+ " ORDER BY k.res_kenmerk_volgnummer"
+ ", UPPER(" + lcl.xsql('sk.res_srtkenmerk_omschrijving', 'sk.res_srtkenmerk_key') + ")";
break;
}
default: { sqlFlex = "";
break;
}
}
return sqlFlex;
}
function flexType(oRsFlex)
{
return oRsFlex("kenmerktype").value;
}
function flexVolgnr(oRsFlex)
{
return oRsFlex("volgnummer").value;
}
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), "float", oRsFlex("decimalen").value);
}
if ((isPrinting || showProperties) && flexValue != "")
flexValue = (oRsFlex("omschrijving").value? oRsFlex("omschrijving").value : "")
+ ('' + oRsFlex("dimensie").value != 'null'
? ' (' + oRsFlex("dimensie").value + ')'
: '')
+ ': ' + flexValue; // Bij printen de omschrijving ook weergeven
return flexValue;
}
function addFlexKenmerkHeader(oRsFlex, lthis)
{
with(lthis)
{ // Flexkenmerken tonen bij isPrinting of isExcel.
var lhtml = "";
if ((isPrinting || showProperties) && flexModule != null && flexId != null && printFlex)
{
lhtml += "<th";
if (thClassName != null)
lhtml += " CLASS='" + thClassName;
lhtml += "'>" + L("lcl_properties") + "</th>";
}
if (isExcel && flexModule != null && flexId != null && printFlex) // && (flexGroupId || flexHeader)
{
while (!oRsFlex.eof)
{
// Geen extra kolom weergeven voor kenmerktype Blanco (Q), Label (L), Folder met bestanden (M), Bestand (F) en Encrypted bestand (E) en als het kenmerk volgnummer negatief is
if (!((flexType(oRsFlex) == 'Q' || flexType(oRsFlex) == 'L' || flexType(oRsFlex) == 'M' || flexType(oRsFlex) == 'F' || flexType(oRsFlex) == 'E') || flexVolgnr(oRsFlex) < 0))
{
lhtml += "<th";
if (thClassName != null)
lhtml += " CLASS='" + thClassName;
lhtml += "'>"
+ flexHeader(oRsFlex)
+ "</th>";
}
oRsFlex.MoveNext();
}
}
}
return lhtml;
}
function addFlexKenmerkKolommen(oRsFlex, 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) && flexModule != null && flexId != null && printFlex)
{
lhtml += (!this.mobile? "<td>" : "<br>");
firstLoop = true;
while (!suppressFlex && !oRsFlex.eof)
{
// Geen kenmerkwaarden weergeven voor kenmerktype Blanco (Q), Label (L), Folder met bestanden (M), Bestand (F) en Encrypted bestand (E) en als het kenmerk volgnummer negatief is
if (!((flexType(oRsFlex) == 'Q' || flexType(oRsFlex) == 'L' || flexType(oRsFlex) == 'M' || flexType(oRsFlex) == 'F' || flexType(oRsFlex) == 'E') || flexVolgnr(oRsFlex) < 0))
{
var fValue = flexValue(oRsFlex, showProperties);
if (fValue != "")
{
lhtml += (!firstLoop? "<br>" : "") + safe.html(fValue);
if (firstLoop) firstLoop = false;
}
}
oRsFlex.MoveNext();
}
lhtml += (!this.mobile? "</td>" : "");
}
if (isExcel && flexModule != null && flexId != null && printFlex)
{
if (!noFlexResult) oRsFlex.MoveFirst(); // we cannot do this if BOF or EOF is True
while (!oRsFlex.eof)
{
// Geen extra kolom weergeven voor kenmerktype Blanco (Q), Label (L), Folder met bestanden (M), Bestand (F) en Encrypted bestand (E) en als het kenmerk volgnummer negatief is
if (!((flexType(oRsFlex) == 'Q' || flexType(oRsFlex) == 'L' || flexType(oRsFlex) == 'M' || flexType(oRsFlex) == 'F' || flexType(oRsFlex) == 'E') || flexVolgnr(oRsFlex) < 0))
{
var fValue = flexValue(oRsFlex);
lhtml += (!this.mobile? "<td>" : "<br>")
+ (fValue != null? safe.textarea(fValue) : "")
+ (!this.mobile? "</td>" : "");
}
oRsFlex.MoveNext();
}
}
}
return lhtml;
}
%>