KEMP#34678: RES; Filteren op Ruimte catalogus bij Afhandelen reserveringen onlogisch.
svn path=/Website/trunk/; revision=31319
This commit is contained in:
@@ -145,10 +145,10 @@ function res_list (pautfunction, params)
|
||||
var kp = params.kp;
|
||||
var requestor_key = params.requestor_key;
|
||||
var host_key = params.host_key;
|
||||
var room_key_arr = params.room_key_arr||[];
|
||||
var obj_key_arr = params.obj_key_arr||[];
|
||||
var art_key_arr = params.art_key_arr||[];
|
||||
var article_arr = params.article_arr||[];
|
||||
var room_key_arr = params.room_key_arr || [];
|
||||
var obj_key_arr = params.obj_key_arr || [];
|
||||
var art_key_arr = params.art_key_arr || [];
|
||||
var article_arr = params.article_arr || [];
|
||||
var artgroup = params.artgroup;
|
||||
var resstatus = params.resstatus;
|
||||
var roomcat = params.roomcat || res_key > 0;
|
||||
@@ -165,13 +165,10 @@ function res_list (pautfunction, params)
|
||||
var groupres = params.groupres;
|
||||
var flags = params.flags||[];
|
||||
|
||||
var roa_arr = new Array(); // array met *alle* disciplines
|
||||
roa_arr = roa_arr.concat(room_key_arr);
|
||||
roa_arr = roa_arr.concat(obj_key_arr);
|
||||
roa_arr = roa_arr.concat(art_key_arr);
|
||||
|
||||
// Als er wel artikelen zijn geselecteerd maar geen verbruiksartikel catalogus, dan de catalogussen erbij zoeken zodat we daar ook op kunnen filteren.
|
||||
// Anders komen ook nog alle ruimte en object reserveringen in de lijst.
|
||||
var article_disc_arr = new Array();
|
||||
article_disc_arr = article_disc_arr.concat(art_key_arr);
|
||||
if (art_key_arr.length == 0 && article_arr.length > 0)
|
||||
{
|
||||
var sql = "SELECT ra.res_discipline_key"
|
||||
@@ -180,7 +177,7 @@ function res_list (pautfunction, params)
|
||||
oRs = Oracle.Execute(sql);
|
||||
while (!oRs.eof)
|
||||
{
|
||||
roa_arr.push(oRs("res_discipline_key").Value);
|
||||
article_disc_arr.push(oRs("res_discipline_key").Value);
|
||||
oRs.MoveNext();
|
||||
}
|
||||
}
|
||||
@@ -337,8 +334,6 @@ function res_list (pautfunction, params)
|
||||
|
||||
if (frontend || fronto)
|
||||
{ // Make ResultsetTable for FE or FO
|
||||
|
||||
|
||||
// RES_RSV_ROOM
|
||||
sqlR = "SELECT rm.res_reservering_key"
|
||||
+ ", r.res_reservering_ispool"
|
||||
@@ -1161,172 +1156,223 @@ function res_list (pautfunction, params)
|
||||
var sql = "";
|
||||
// New res structure
|
||||
// Volgens mij willen we 1 regel per reservering hier; wat doen we dan met de mogelijk varierende kolommen?
|
||||
var sql_select = "rrr.res_reservering_key"
|
||||
+ ", ruimte_geg.alg_locatie_key"
|
||||
+ ", l.alg_locatie_code locatie"
|
||||
+ ", ruimte_geg.alg_gebouw_key"
|
||||
+ ", ruimte_geg.alg_verdieping_key"
|
||||
+ ", ruimte_geg.alg_ruimte_key"
|
||||
+ ", COALESCE(opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_aanduiding) res_ruimte_nr" //res_ruimte_nr is al vertaald
|
||||
+ ", " + ( minfo
|
||||
? "COALESCE(opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_omschrijving)"
|
||||
: "ruimte_geg.alg_ruimte_aanduiding"
|
||||
) + " alg_ruimte_aanduiding"
|
||||
+ ", res_geg.res_voorziening"
|
||||
+ ", opstelalg.res_ruimte_opstel_default"
|
||||
+ ", NULL"
|
||||
+ ", res_geg.res_reservering_van datumvan"
|
||||
+ ", res_geg.res_reservering_tot datumtot"
|
||||
+ ", pcontact.naam aanvrager"
|
||||
+ ", res_geg.res_ins_discipline_key"
|
||||
+ ", res_rsv_ruimte_omschrijving omschrijving"
|
||||
+ ", res_rsv_ruimte_opmerking opmerking"
|
||||
+ ", res_geg.res_rsv_ruimte_key rsv_ruimte_key"
|
||||
+ ", res_geg.res_item_key"
|
||||
var sql_select = "SELECT rrr.res_reservering_key"
|
||||
+ " , ruimte_geg.alg_locatie_key"
|
||||
+ " , l.alg_locatie_code locatie"
|
||||
+ " , ruimte_geg.alg_gebouw_key"
|
||||
+ " , ruimte_geg.alg_verdieping_key"
|
||||
+ " , ruimte_geg.alg_ruimte_key"
|
||||
+ " , COALESCE(opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_aanduiding) res_ruimte_nr" //res_ruimte_nr is al vertaald
|
||||
+ " , " + ( minfo
|
||||
? "COALESCE(opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_omschrijving)"
|
||||
: "ruimte_geg.alg_ruimte_aanduiding"
|
||||
) + " alg_ruimte_aanduiding"
|
||||
+ " , res_geg.res_voorziening"
|
||||
+ " , opstelalg.res_ruimte_opstel_default"
|
||||
+ " , NULL"
|
||||
+ " , res_geg.res_reservering_van datumvan"
|
||||
+ " , res_geg.res_reservering_tot datumtot"
|
||||
+ " , pcontact.naam aanvrager"
|
||||
+ " , res_geg.res_ins_discipline_key"
|
||||
+ " , res_rsv_ruimte_omschrijving omschrijving"
|
||||
+ " , res_rsv_ruimte_opmerking opmerking"
|
||||
+ " , res_geg.res_rsv_ruimte_key rsv_ruimte_key"
|
||||
+ " , res_geg.res_item_key"
|
||||
+ ((groupres == 1) // Bij groupering op deelreservering is het afmelden afhankelijk van de laagste bo status
|
||||
? ", (SELECT MIN(res_status_bo_key)"
|
||||
+ " FROM (SELECT rrr.res_rsv_ruimte_key"
|
||||
+ ", rrr.res_status_bo_key"
|
||||
+ " FROM res_v_aanwezigrsv_ruimte rrr"
|
||||
+ " UNION ALL"
|
||||
+ " SELECT rrd.res_rsv_ruimte_key"
|
||||
+ ", rrd.res_status_bo_key"
|
||||
+ " FROM res_v_aanwezigrsv_deel rrd"
|
||||
+ " UNION ALL"
|
||||
+ " SELECT rra.res_rsv_ruimte_key"
|
||||
+ ", rra.res_status_bo_key"
|
||||
+ " FROM res_v_aanwezigrsv_artikel rra) bostatus"
|
||||
+ " WHERE bostatus.res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key)"
|
||||
: ", res_geg.res_status_bo_key")
|
||||
+ " res_status_bo_key"
|
||||
+ ", res_rsv_ruimte_flag"
|
||||
+ ", res_geg.res_type categorie"
|
||||
+ ", rrr.res_rsv_ruimte_bezoekers bezoekers"
|
||||
+ ", phost.naam gastheer"
|
||||
+ ", pcontact.prs_perslid_telefoonnr"
|
||||
+ ", COALESCE((SELECT k.prs_kostenplaats_nr "
|
||||
+ " FROM prs_kostenplaats k"
|
||||
+ " WHERE rrr.prs_kostenplaats_key = k.prs_kostenplaats_key), '') kostenplaats"
|
||||
+ ", res_geg.aantal aantal"
|
||||
+ ", res_geg.rsv_ruimte_aantal" // 29 Hogere nummers worden alleen op naam gebruikt, zoals het hoort :-)
|
||||
+ ", res_geg.prijs verwerkt_prijs"
|
||||
+ ", l.alg_district_key"
|
||||
+ ", rrr.res_activiteit_key"
|
||||
+ ","+lcl.xsqla('ract.res_activiteit_omschrijving', 'ract.res_activiteit_key')
|
||||
+ ", ract.res_activiteit_upper" // for sorting
|
||||
+ ", res_geg.stuks_prijs stuks_prijs"
|
||||
+ ", res_geg.btwtarief btwtarief"
|
||||
+ ", phost.prs_afdeling_key"
|
||||
+ ", (SELECT " + S("prs_dep_string")
|
||||
+ " FROM prs_v_afdeling d"
|
||||
+ " WHERE phost.prs_afdeling_key = d.prs_afdeling_key ) organisatie"
|
||||
+ ", artikelnummer"
|
||||
+ ", CASE WHEN COALESCE (res_rsv_ruimte_bezoekers_shown, res_rsv_ruimte_bezoekers) < res_rsv_ruimte_bezoekers"
|
||||
+ " THEN 1"
|
||||
+ " ELSE rrr.res_rsv_ruimte_noshow "
|
||||
+ " END noshow"
|
||||
+ ", artikel_groep"
|
||||
+ ", res_geg.rcv_type rcv_type"
|
||||
+ ", res_geg.res_type res_type"
|
||||
+ ", res_geg.keycolumn keycolumn"
|
||||
+ ", (SELECT COUNT('1')"
|
||||
+ " FROM res_rsv_deel rrd, res_deel resd"
|
||||
+ " WHERE rrd.res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key"
|
||||
+ " AND rrd.res_deel_key = resd.res_deel_key"
|
||||
+ (S("vis_parking_key") != -1 ? " AND resd.res_discipline_key != " + S("vis_parking_key") : "")
|
||||
+ ") + "
|
||||
+ " (SELECT COUNT('2')"
|
||||
+ " FROM res_rsv_artikel"
|
||||
+ " WHERE res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key) nrObjects"
|
||||
? " , (SELECT MIN(res_status_bo_key)"
|
||||
+ " FROM (SELECT rrr.res_rsv_ruimte_key"
|
||||
+ " , rrr.res_status_bo_key"
|
||||
+ " FROM res_v_aanwezigrsv_ruimte rrr"
|
||||
+ " UNION ALL"
|
||||
+ " SELECT rrd.res_rsv_ruimte_key"
|
||||
+ " , rrd.res_status_bo_key"
|
||||
+ " FROM res_v_aanwezigrsv_deel rrd"
|
||||
+ " UNION ALL"
|
||||
+ " SELECT rra.res_rsv_ruimte_key"
|
||||
+ " , rra.res_status_bo_key"
|
||||
+ " FROM res_v_aanwezigrsv_artikel rra) bostatus"
|
||||
+ " WHERE bostatus.res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key)"
|
||||
: " , res_geg.res_status_bo_key")
|
||||
+ " res_status_bo_key"
|
||||
+ " , res_rsv_ruimte_flag"
|
||||
+ " , res_geg.res_type categorie"
|
||||
+ " , rrr.res_rsv_ruimte_bezoekers bezoekers"
|
||||
+ " , phost.naam gastheer"
|
||||
+ " , pcontact.prs_perslid_telefoonnr"
|
||||
+ " , COALESCE((SELECT k.prs_kostenplaats_nr "
|
||||
+ " FROM prs_kostenplaats k"
|
||||
+ " WHERE rrr.prs_kostenplaats_key = k.prs_kostenplaats_key), '') kostenplaats"
|
||||
+ " , res_geg.aantal aantal"
|
||||
+ " , res_geg.rsv_ruimte_aantal" // 29 Hogere nummers worden alleen op naam gebruikt, zoals het hoort :-)
|
||||
+ " , res_geg.prijs verwerkt_prijs"
|
||||
+ " , l.alg_district_key"
|
||||
+ " , rrr.res_activiteit_key"
|
||||
+ " , " + lcl.xsqla('ract.res_activiteit_omschrijving', 'ract.res_activiteit_key')
|
||||
+ " , ract.res_activiteit_upper" // for sorting
|
||||
+ " , res_geg.stuks_prijs stuks_prijs"
|
||||
+ " , res_geg.btwtarief btwtarief"
|
||||
+ " , phost.prs_afdeling_key"
|
||||
+ " , (SELECT " + S("prs_dep_string")
|
||||
+ " FROM prs_v_afdeling d"
|
||||
+ " WHERE phost.prs_afdeling_key = d.prs_afdeling_key ) organisatie"
|
||||
+ " , artikelnummer"
|
||||
+ " , CASE WHEN COALESCE (res_rsv_ruimte_bezoekers_shown, res_rsv_ruimte_bezoekers) < res_rsv_ruimte_bezoekers"
|
||||
+ " THEN 1"
|
||||
+ " ELSE rrr.res_rsv_ruimte_noshow "
|
||||
+ " END noshow"
|
||||
+ " , artikel_groep"
|
||||
+ " , res_geg.rcv_type rcv_type"
|
||||
+ " , res_geg.res_type res_type"
|
||||
+ " , res_geg.keycolumn keycolumn"
|
||||
+ " , (SELECT COUNT('1')"
|
||||
+ " FROM res_rsv_deel rrd, res_deel resd"
|
||||
+ " WHERE rrd.res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key"
|
||||
+ " AND rrd.res_deel_key = resd.res_deel_key"
|
||||
+ (S("vis_parking_key") != -1
|
||||
? " AND resd.res_discipline_key != " + S("vis_parking_key")
|
||||
: "")
|
||||
+ " ) + "
|
||||
+ " (SELECT COUNT('2')"
|
||||
+ " FROM res_rsv_artikel"
|
||||
+ " WHERE res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key) nrObjects"
|
||||
+ ((groupres == 7) || (groupres == 8)
|
||||
? ", res_artikel_key artikel_key"
|
||||
? " , res_artikel_key artikel_key"
|
||||
: "")
|
||||
+ ((groupres == 9 || groupres == 14)
|
||||
? ", rrr.prs_kostenplaats_key kostenplaats_key"
|
||||
? " , rrr.prs_kostenplaats_key kostenplaats_key"
|
||||
: "")
|
||||
+ ((groupres == 12)
|
||||
? ", (SELECT ks.prs_kostensoort_oms"
|
||||
+ " FROM prs_kostensoort ks, ins_tab_discipline d"
|
||||
+ " WHERE d.ins_discipline_key = res_ins_discipline_key"
|
||||
+ " AND d.prs_kostensoort_key = ks.prs_kostensoort_key) prs_kostensoort_oms "
|
||||
+ ", (SELECT d.prs_kostensoort_key"
|
||||
+ " FROM ins_tab_discipline d"
|
||||
+ " WHERE d.ins_discipline_key = res_ins_discipline_key) prs_kostensoort_key"
|
||||
? " , (SELECT ks.prs_kostensoort_oms"
|
||||
+ " FROM prs_kostensoort ks, ins_tab_discipline d"
|
||||
+ " WHERE d.ins_discipline_key = res_ins_discipline_key"
|
||||
+ " AND d.prs_kostensoort_key = ks.prs_kostensoort_key) prs_kostensoort_oms "
|
||||
+ " , (SELECT d.prs_kostensoort_key"
|
||||
+ " FROM ins_tab_discipline d"
|
||||
+ " WHERE d.ins_discipline_key = res_ins_discipline_key) prs_kostensoort_key"
|
||||
: "")
|
||||
+ ((groupres == 13)
|
||||
? ", (SELECT " + lcl.xsql('ksg.prs_kostensoortgrp_oms','ksg.prs_kostensoortgrp_key')
|
||||
+ " FROM prs_kostensoortgrp ksg"
|
||||
+ ", prs_kostensoort ks"
|
||||
+ ", ins_tab_discipline d"
|
||||
+ " WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key"
|
||||
+ " AND d.ins_discipline_key = res_ins_discipline_key"
|
||||
+ " AND d.prs_kostensoort_key = ks.prs_kostensoort_key) prs_kostensoortgrp_oms"
|
||||
+ ", (SELECT ks.prs_kostensoortgrp_key"
|
||||
+ " FROM prs_kostensoort ks"
|
||||
+ ", ins_tab_discipline d"
|
||||
+ " WHERE d.ins_discipline_key = res_ins_discipline_key"
|
||||
+ " AND d.prs_kostensoort_key = ks.prs_kostensoort_key) prs_kostensoortgrp_key"
|
||||
? " , (SELECT " + lcl.xsql('ksg.prs_kostensoortgrp_oms','ksg.prs_kostensoortgrp_key')
|
||||
+ " FROM prs_kostensoortgrp ksg"
|
||||
+ " , prs_kostensoort ks"
|
||||
+ " , ins_tab_discipline d"
|
||||
+ " WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key"
|
||||
+ " AND d.ins_discipline_key = res_ins_discipline_key"
|
||||
+ " AND d.prs_kostensoort_key = ks.prs_kostensoort_key) prs_kostensoortgrp_oms"
|
||||
+ " , (SELECT ks.prs_kostensoortgrp_key"
|
||||
+ " FROM prs_kostensoort ks"
|
||||
+ " , ins_tab_discipline d"
|
||||
+ " WHERE d.ins_discipline_key = res_ins_discipline_key"
|
||||
+ " AND d.prs_kostensoort_key = ks.prs_kostensoort_key) prs_kostensoortgrp_key"
|
||||
: "")
|
||||
+ ", rrr.res_rsv_ruimte_volgnr"
|
||||
+ ", rrr.res_rsv_ruimte_key"
|
||||
+ ", rrr.res_rsv_ruimte_ordernr"
|
||||
+ ", res_geg.res_ruimte_key"
|
||||
+ ", sa.res_srtactiviteit_prefix"
|
||||
+ ", COALESCE(rrr.res_rsv_ruimte_bezoekers_shown, -1) bezoekers_shown"
|
||||
+ ", res_geg.ingang"
|
||||
+ ", res_geg.verval"
|
||||
+ ", res_geg.ins_discipline_key"
|
||||
+ ", res_geg.ins_srtdeel_uitleenbaar"
|
||||
+ ", res_geg.ins_alg_ruimte_key_org"
|
||||
+ ", res_geg.res_rsv_ruimte_satisfaction"
|
||||
+ ", res_geg.res_rsv_ruimte_satisfaction_op"
|
||||
+ ", rrr.res_rsv_ruimte_afgerond";
|
||||
+ " , rrr.res_rsv_ruimte_volgnr"
|
||||
+ " , rrr.res_rsv_ruimte_key"
|
||||
+ " , rrr.res_rsv_ruimte_ordernr"
|
||||
+ " , res_geg.res_ruimte_key"
|
||||
+ " , sa.res_srtactiviteit_prefix"
|
||||
+ " , COALESCE(rrr.res_rsv_ruimte_bezoekers_shown, -1) bezoekers_shown"
|
||||
+ " , res_geg.ingang"
|
||||
+ " , res_geg.verval"
|
||||
+ " , res_geg.ins_discipline_key"
|
||||
+ " , res_geg.ins_srtdeel_uitleenbaar"
|
||||
+ " , res_geg.ins_alg_ruimte_key_org"
|
||||
+ " , res_geg.res_rsv_ruimte_satisfaction"
|
||||
+ " , res_geg.res_rsv_ruimte_satisfaction_op"
|
||||
+ " , rrr.res_rsv_ruimte_afgerond";
|
||||
|
||||
var sql_from = " FROM res_rsv_ruimte rrr"
|
||||
+ " , res_activiteit ract"
|
||||
+ " , res_srtactiviteit sa"
|
||||
+ " , thePerslid phost"
|
||||
+ " , thePerslid pcontact"
|
||||
+ " , alg_v_ruimte_gegevens_all ruimte_geg" // DB12
|
||||
+ " , (SELECT res_ruimte_opstel_key"
|
||||
+ " , " +lcl.xsqla('rr.res_ruimte_nr','rr.res_ruimte_key')
|
||||
+ " , MIN (alg_ruimte_key) alg_ruimte_key"
|
||||
+ " , res_ruimte_opstel_default"
|
||||
+ " FROM res_ruimte_opstelling rro, res_alg_ruimte rar, res_ruimte rr "
|
||||
+ " WHERE rro.res_ruimte_key = rar.res_ruimte_key"
|
||||
+ " AND rr.res_ruimte_key = rar.res_ruimte_key "
|
||||
+ " AND rar.res_alg_ruimte_verwijder is null "
|
||||
+ " GROUP BY res_ruimte_opstel_key"
|
||||
+ " , " + lcl.xsql('rr.res_ruimte_nr','rr.res_ruimte_key')
|
||||
+ " , res_ruimte_opstel_default ) opstelalg"
|
||||
+ " , alg_locatie l"
|
||||
+ " , alg_district di"
|
||||
+ " , prs_kostenplaats k"
|
||||
+ " , prs_v_afdeling_boom boom"
|
||||
|
||||
var sql_where = " WHERE res_geg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key"
|
||||
+ " AND rrr.res_rsv_ruimte_verwijder IS NULL"
|
||||
+ " AND rrr.res_activiteit_key = ract.res_activiteit_key"
|
||||
+ " AND ract.res_srtactiviteit_key = sa.res_srtactiviteit_key"
|
||||
+ " AND res_rsv_ruimte_host_key = phost.prs_perslid_key"
|
||||
+ " AND res_rsv_ruimte_contact_key = pcontact.prs_perslid_key"
|
||||
+ " AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+)"
|
||||
+ " AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)"
|
||||
+ " AND ruimte_geg.alg_ruimte_key = coalesce(rrr.alg_ruimte_key, opstelalg.alg_ruimte_key)"
|
||||
+ " AND l.alg_locatie_key = ruimte_geg.alg_locatie_key"
|
||||
+ " AND l.alg_district_key = di.alg_district_key"
|
||||
+ " AND pcontact.prs_afdeling_key = boom.prs_afdeling_key"
|
||||
+ (!res_key
|
||||
? sql_act
|
||||
+ sql_name
|
||||
+ status_sql
|
||||
+ (approve_sql.length > 0 ? " AND (" + approve_sql.join(" OR ") + ")" : "")
|
||||
+ sql_reg + sql_dist + sql_loc + sql_bld + sql_floor + sql_room + sql_dept + sql_account
|
||||
: "");
|
||||
if (params.res_noshowonly)
|
||||
{
|
||||
sql_where += " AND (rrr.res_rsv_ruimte_noshow = 1";
|
||||
sql_where += " OR COALESCE(res_rsv_ruimte_bezoekers_shown, res_rsv_ruimte_bezoekers) < res_rsv_ruimte_bezoekers)";
|
||||
}
|
||||
if (!groupres || groupres == 1)
|
||||
sql_where += getKenmerkSql("RES", "rrr.res_rsv_ruimte_key", true);
|
||||
|
||||
var sql_from_art_part = "SELECT 'C' AS res_type"
|
||||
+ ", 'CV' AS rcv_type"
|
||||
+ ", rra.res_rsv_ruimte_key"
|
||||
+ ", (SELECT rro.res_ruimte_key"
|
||||
+ " FROM res_ruimte_opstelling rro"
|
||||
+ " WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key) AS res_ruimte_key"
|
||||
+ ", res_rsv_artikel_key AS res_item_key"
|
||||
+ " , 'CV' AS rcv_type"
|
||||
+ " , rra.res_rsv_ruimte_key"
|
||||
+ " , (SELECT rro.res_ruimte_key"
|
||||
+ " FROM res_ruimte_opstelling rro"
|
||||
+ " WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key) AS res_ruimte_key"
|
||||
+ " , res_rsv_artikel_key AS res_item_key"
|
||||
+ (groupres == 1 && (sortout == 1 || sortout == 5)
|
||||
? ", rrr.res_rsv_ruimte_van AS res_reservering_van"
|
||||
: ", rra.res_rsv_artikel_levering AS res_reservering_van")
|
||||
+ ", res_rsv_ruimte_tot AS res_reservering_tot"
|
||||
+ ", rra.res_rsv_artikel_aantal AS aantal"
|
||||
+ ", LTRIM(" + lcl.xsql('ra.res_artikel_omschrijving','ra.res_artikel_key') +") || CASE WHEN " + lcl.xsql('ra.res_artikel_eenheid','ra.res_artikel_key') +" IS NULL THEN '' ELSE ' ('|| " + lcl.xsql('ra.res_artikel_eenheid','ra.res_artikel_key') + " || ')' END AS res_voorziening"
|
||||
+ ", NULL"
|
||||
+ ", ra.res_discipline_key AS res_ins_discipline_key"
|
||||
+ ", rra.res_status_bo_key"
|
||||
+ ", ra.res_artikel_key AS res_artikel_key"
|
||||
+ ", "+ (withprices ? "res.getartikelprijs(rra.res_rsv_artikel_key)" : "NULL") + " AS prijs"
|
||||
+ ", ra.res_artikel_prijs AS stuks_prijs"
|
||||
+ ", ra.res_artikel_btw AS btwtarief"
|
||||
+ ", to_number(null) AS rsv_ruimte_aantal"
|
||||
+ ", ra.res_artikel_nr AS artikelnummer"
|
||||
+ ", ra.res_artikel_groep AS artikel_groep"
|
||||
+ ", rra.res_rsv_artikel_key keycolumn"
|
||||
+ ", CASE"
|
||||
+ " WHEN (ra.res_artikel_ingangsdatum IS NULL OR ra.res_artikel_ingangsdatum <= rrr.res_rsv_ruimte_van)"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END ingang"
|
||||
+ ", CASE"
|
||||
+ " WHEN (ra.res_artikel_vervaldatum IS NULL OR ra.res_artikel_vervaldatum > rrr.res_rsv_ruimte_tot)"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END verval"
|
||||
+ ", NULL ins_discipline_key"
|
||||
+ ", 0 ins_srtdeel_uitleenbaar"
|
||||
+ ", NULL ins_alg_ruimte_key_org"
|
||||
+ ", rrr.res_rsv_ruimte_satisfaction"
|
||||
+ ", rrr.res_rsv_ruimte_satisfaction_op"
|
||||
+ " FROM res_v_aanwezigrsv_artikel rra"
|
||||
+ ", theResrsv rrr"
|
||||
+ ", res_artikel ra"
|
||||
? " , rrr.res_rsv_ruimte_van AS res_reservering_van"
|
||||
: " , rra.res_rsv_artikel_levering AS res_reservering_van")
|
||||
+ " , res_rsv_ruimte_tot AS res_reservering_tot"
|
||||
+ " , rra.res_rsv_artikel_aantal AS aantal"
|
||||
+ " , LTRIM(" + lcl.xsql('ra.res_artikel_omschrijving','ra.res_artikel_key') +") || CASE WHEN " + lcl.xsql('ra.res_artikel_eenheid','ra.res_artikel_key') +" IS NULL THEN '' ELSE ' ('|| " + lcl.xsql('ra.res_artikel_eenheid','ra.res_artikel_key') + " || ')' END AS res_voorziening"
|
||||
+ " , NULL"
|
||||
+ " , ra.res_discipline_key AS res_ins_discipline_key"
|
||||
+ " , rra.res_status_bo_key"
|
||||
+ " , ra.res_artikel_key AS res_artikel_key"
|
||||
+ " , "+ (withprices ? "res.getartikelprijs(rra.res_rsv_artikel_key)" : "NULL") + " AS prijs"
|
||||
+ " , ra.res_artikel_prijs AS stuks_prijs"
|
||||
+ " , ra.res_artikel_btw AS btwtarief"
|
||||
+ " , to_number(null) AS rsv_ruimte_aantal"
|
||||
+ " , ra.res_artikel_nr AS artikelnummer"
|
||||
+ " , ra.res_artikel_groep AS artikel_groep"
|
||||
+ " , rra.res_rsv_artikel_key keycolumn"
|
||||
+ " , CASE"
|
||||
+ " WHEN (ra.res_artikel_ingangsdatum IS NULL OR ra.res_artikel_ingangsdatum <= rrr.res_rsv_ruimte_van)"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END ingang"
|
||||
+ " , CASE"
|
||||
+ " WHEN (ra.res_artikel_vervaldatum IS NULL OR ra.res_artikel_vervaldatum > rrr.res_rsv_ruimte_tot)"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END verval"
|
||||
+ " , NULL ins_discipline_key"
|
||||
+ " , 0 ins_srtdeel_uitleenbaar"
|
||||
+ " , NULL ins_alg_ruimte_key_org"
|
||||
+ " , rrr.res_rsv_ruimte_satisfaction"
|
||||
+ " , rrr.res_rsv_ruimte_satisfaction_op"
|
||||
+ " FROM res_v_aanwezigrsv_artikel rra"
|
||||
+ " , theResrsv rrr"
|
||||
+ " , res_artikel ra"
|
||||
+ " WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key"
|
||||
+ " AND rra.res_rsv_artikel_dirtlevel = 0" // Geen dirty ruimtes voor de BO! TODO: voor mi wel? En hoe dan?
|
||||
+ " AND rra.res_artikel_key = ra.res_artikel_key"
|
||||
+ " AND rra.res_rsv_artikel_dirtlevel = 0" // Geen dirty ruimtes voor de BO! TODO: voor mi wel? En hoe dan?
|
||||
+ " AND rra.res_artikel_key = ra.res_artikel_key"
|
||||
+ (groupres == 1 && roomcat
|
||||
? " AND rrr.alg_ruimte_key IS NOT NULL"
|
||||
: "")
|
||||
@@ -1335,102 +1381,182 @@ function res_list (pautfunction, params)
|
||||
+ sql_art_group;
|
||||
|
||||
var sql_from_obj_part = "SELECT 'V' as res_type"
|
||||
+ ", 'CV' AS rcv_type"
|
||||
+ ", rrd.res_rsv_ruimte_key"
|
||||
+ ", (SELECT rro.res_ruimte_key"
|
||||
+ " FROM res_ruimte_opstelling rro"
|
||||
+ " WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key) AS res_ruimte_key"
|
||||
+ ", rrd.res_rsv_deel_key AS res_item_key"
|
||||
+ (groupres == 1 && (sortout == 1 || sortout == 5)
|
||||
? ", rrr.res_rsv_ruimte_van AS res_reservering_van"
|
||||
: ", rrd.res_rsv_deel_van AS res_reservering_van")
|
||||
+ (groupres == 1 && (sortout == 1 || sortout == 5)
|
||||
? ", rrr.res_rsv_ruimte_tot AS res_reservering_tot"
|
||||
: ", rrd.res_rsv_deel_tot AS res_reservering_tot")
|
||||
+ ", to_number(null) AS aantal"
|
||||
+ ", "+ lcl.xsql('rd.res_deel_omschrijving','rd.res_deel_key')
|
||||
+ " || CASE WHEN " + lcl.xsql('rd.res_deel_eenheid','rd.res_deel_key') +" IS NULL THEN '' ELSE ' ('|| " + lcl.xsql('rd.res_deel_eenheid','rd.res_deel_key') +" || ')' END AS res_voorziening"
|
||||
+ ", NULL"
|
||||
+ ", rd.res_discipline_key AS res_ins_discipline_key"
|
||||
+ ", rrd.res_status_bo_key"
|
||||
+ ", TO_NUMBER(null) AS res_artikel_key"
|
||||
+ ", "+ (withprices ? "res.getdeelprijs(rrd.res_rsv_deel_key)" : "NULL") + " AS prijs"
|
||||
+ ", rd.res_deel_prijs AS stuks_prijs"
|
||||
+ ", to_number(null) AS btwtarief"
|
||||
+ ", to_number(null) AS rsv_ruimte_aantal"
|
||||
+ ", null AS artikelnummer"
|
||||
+ ", '' AS artikel_groep"
|
||||
+ ", rrd.res_rsv_deel_key keycolumn"
|
||||
+ ", 1 ingang"
|
||||
+ ", CASE"
|
||||
+ " WHEN (rd.res_deel_vervaldatum IS NULL OR rd.res_deel_vervaldatum > rrr.res_rsv_ruimte_tot)"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END verval"
|
||||
+ ", id.ins_discipline_key"
|
||||
+ ", isd.ins_srtdeel_uitleenbaar"
|
||||
+ ", id.ins_alg_ruimte_key_org"
|
||||
+ ", rrr.res_rsv_ruimte_satisfaction"
|
||||
+ ", rrr.res_rsv_ruimte_satisfaction_op"
|
||||
+ " FROM res_v_aanwezigrsv_deel rrd"
|
||||
+ ", theResrsv rrr"
|
||||
+ ", res_deel rd"
|
||||
+ ", ins_deel id"
|
||||
+ ", ins_srtdeel isd"
|
||||
+ " WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key "
|
||||
+ " AND rrd.res_deel_key = rd.res_deel_key "
|
||||
+ (S("vis_parking_key") != -1 ? " AND rd.res_discipline_key != " + S("vis_parking_key") : "")
|
||||
+ " AND rrd.res_rsv_deel_dirtlevel = 0" // Geen dirty ruimtes voor de BO! TODO: voor mi wel? En hoe dan?
|
||||
+ " AND rd.res_ins_deel_key = id.ins_deel_key"
|
||||
+ " AND id.ins_srtdeel_key = isd.ins_srtdeel_key"
|
||||
+ (groupres == 1 && roomcat
|
||||
? " AND rrr.alg_ruimte_key IS NOT NULL"
|
||||
: "")
|
||||
+ sql_obj_key;
|
||||
+ " , 'CV' AS rcv_type"
|
||||
+ " , rrd.res_rsv_ruimte_key"
|
||||
+ " , (SELECT rro.res_ruimte_key"
|
||||
+ " FROM res_ruimte_opstelling rro"
|
||||
+ " WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key) AS res_ruimte_key"
|
||||
+ " , rrd.res_rsv_deel_key AS res_item_key"
|
||||
+ (groupres == 1 && (sortout == 1 || sortout == 5)
|
||||
? " , rrr.res_rsv_ruimte_van AS res_reservering_van"
|
||||
: " , rrd.res_rsv_deel_van AS res_reservering_van")
|
||||
+ (groupres == 1 && (sortout == 1 || sortout == 5)
|
||||
? " , rrr.res_rsv_ruimte_tot AS res_reservering_tot"
|
||||
: " , rrd.res_rsv_deel_tot AS res_reservering_tot")
|
||||
+ " , to_number(null) AS aantal"
|
||||
+ " , " + lcl.xsql('rd.res_deel_omschrijving','rd.res_deel_key')
|
||||
+ " || CASE WHEN " + lcl.xsql('rd.res_deel_eenheid','rd.res_deel_key') +" IS NULL THEN '' ELSE ' ('|| " + lcl.xsql('rd.res_deel_eenheid','rd.res_deel_key') +" || ')' END AS res_voorziening"
|
||||
+ " , NULL"
|
||||
+ " , rd.res_discipline_key AS res_ins_discipline_key"
|
||||
+ " , rrd.res_status_bo_key"
|
||||
+ " , TO_NUMBER(null) AS res_artikel_key"
|
||||
+ " , " + (withprices ? "res.getdeelprijs(rrd.res_rsv_deel_key)" : "NULL") + " AS prijs"
|
||||
+ " , rd.res_deel_prijs AS stuks_prijs"
|
||||
+ " , to_number(null) AS btwtarief"
|
||||
+ " , to_number(null) AS rsv_ruimte_aantal"
|
||||
+ " , null AS artikelnummer"
|
||||
+ " , '' AS artikel_groep"
|
||||
+ " , rrd.res_rsv_deel_key keycolumn"
|
||||
+ " , 1 ingang"
|
||||
+ " , CASE"
|
||||
+ " WHEN (rd.res_deel_vervaldatum IS NULL OR rd.res_deel_vervaldatum > rrr.res_rsv_ruimte_tot)"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END verval"
|
||||
+ " , id.ins_discipline_key"
|
||||
+ " , isd.ins_srtdeel_uitleenbaar"
|
||||
+ " , id.ins_alg_ruimte_key_org"
|
||||
+ " , rrr.res_rsv_ruimte_satisfaction"
|
||||
+ " , rrr.res_rsv_ruimte_satisfaction_op"
|
||||
+ " FROM res_v_aanwezigrsv_deel rrd"
|
||||
+ " , theResrsv rrr"
|
||||
+ " , res_deel rd"
|
||||
+ " , ins_deel id"
|
||||
+ " , ins_srtdeel isd"
|
||||
+ " WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key "
|
||||
+ " AND rrd.res_deel_key = rd.res_deel_key "
|
||||
+ (S("vis_parking_key") != -1
|
||||
? " AND rd.res_discipline_key != " + S("vis_parking_key")
|
||||
: "")
|
||||
+ " AND rrd.res_rsv_deel_dirtlevel = 0" // Geen dirty ruimtes voor de BO! TODO: voor mi wel? En hoe dan?
|
||||
+ " AND rd.res_ins_deel_key = id.ins_deel_key"
|
||||
+ " AND id.ins_srtdeel_key = isd.ins_srtdeel_key"
|
||||
+ (groupres == 1 && roomcat
|
||||
? " AND rrr.alg_ruimte_key IS NOT NULL"
|
||||
: "")
|
||||
+ sql_obj_key;
|
||||
|
||||
var sql_from_room_part = "SELECT 'R' AS res_type"
|
||||
+ ", 'R' AS rcv_type"
|
||||
+ ", rrr.res_rsv_ruimte_key"
|
||||
+ ", rro.res_ruimte_key"
|
||||
+ ", rrr.res_rsv_ruimte_key AS res_item_key"
|
||||
+ ", rrr.res_rsv_ruimte_van AS res_reservering_van"
|
||||
+ ", rrr.res_rsv_ruimte_tot AS res_reservering_tot"
|
||||
+ ", TO_NUMBER(null) AS aantal"
|
||||
+ ", " + lcl.xsql('ro.res_opstelling_omschrijving','ro.res_opstelling_key') + " AS res_voorziening"
|
||||
+ ", rro.res_ruimte_opstel_default AS res_ruimte_opstel_default"
|
||||
+ ", rr.res_discipline_key AS res_ins_discipline_key"
|
||||
+ ", rrr.res_status_bo_key"
|
||||
+ ", to_number(null) AS res_artikel_key"
|
||||
+ ", "+ (withprices ? "res.getruimteprijs(rrr.res_rsv_ruimte_key) - COALESCE(rrr.res_rsv_ruimte_korting, 0)" : "NULL") + " AS prijs"
|
||||
+ ", to_number(null) AS stuks_prijs"
|
||||
+ ", to_number(null) AS btwtarief"
|
||||
+ ", 1 AS rsv_ruimte_aantal"
|
||||
+ ", null AS artikelnummer"
|
||||
+ ", '' AS artikel_groep"
|
||||
+ ", rrr.res_rsv_ruimte_key keycolumn"
|
||||
+ ", 1 ingang"
|
||||
+ ", CASE"
|
||||
+ " WHEN (rr.res_ruimte_vervaldatum IS NULL OR rr.res_ruimte_vervaldatum > rrr.res_rsv_ruimte_tot)"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END verval"
|
||||
+ ", NULL ins_discipline_key"
|
||||
+ ", 0 ins_srtdeel_uitleenbaar"
|
||||
+ ", NULL ins_alg_ruimte_key_org"
|
||||
+ ", rrr.res_rsv_ruimte_satisfaction"
|
||||
+ ", rrr.res_rsv_ruimte_satisfaction_op"
|
||||
+ " FROM theResrsv rrr"
|
||||
+ ", res_ruimte_opstelling rro"
|
||||
+ ", res_ruimte rr"
|
||||
+ ", res_opstelling ro"
|
||||
+ " , 'R' AS rcv_type"
|
||||
+ " , rrr.res_rsv_ruimte_key"
|
||||
+ " , rro.res_ruimte_key"
|
||||
+ " , rrr.res_rsv_ruimte_key AS res_item_key"
|
||||
+ " , rrr.res_rsv_ruimte_van AS res_reservering_van"
|
||||
+ " , rrr.res_rsv_ruimte_tot AS res_reservering_tot"
|
||||
+ " , TO_NUMBER(null) AS aantal"
|
||||
+ " , " + lcl.xsql('ro.res_opstelling_omschrijving','ro.res_opstelling_key') + " AS res_voorziening"
|
||||
+ " , rro.res_ruimte_opstel_default AS res_ruimte_opstel_default"
|
||||
+ " , rr.res_discipline_key AS res_ins_discipline_key"
|
||||
+ " , rrr.res_status_bo_key"
|
||||
+ " , to_number(null) AS res_artikel_key"
|
||||
+ " , "+ (withprices ? "res.getruimteprijs(rrr.res_rsv_ruimte_key) - COALESCE(rrr.res_rsv_ruimte_korting, 0)" : "NULL") + " AS prijs"
|
||||
+ " , to_number(null) AS stuks_prijs"
|
||||
+ " , to_number(null) AS btwtarief"
|
||||
+ " , 1 AS rsv_ruimte_aantal"
|
||||
+ " , null AS artikelnummer"
|
||||
+ " , '' AS artikel_groep"
|
||||
+ " , rrr.res_rsv_ruimte_key keycolumn"
|
||||
+ " , 1 ingang"
|
||||
+ " , CASE"
|
||||
+ " WHEN (rr.res_ruimte_vervaldatum IS NULL OR rr.res_ruimte_vervaldatum > rrr.res_rsv_ruimte_tot)"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END verval"
|
||||
+ " , NULL ins_discipline_key"
|
||||
+ " , 0 ins_srtdeel_uitleenbaar"
|
||||
+ " , NULL ins_alg_ruimte_key_org"
|
||||
+ " , rrr.res_rsv_ruimte_satisfaction"
|
||||
+ " , rrr.res_rsv_ruimte_satisfaction_op"
|
||||
+ " FROM theResrsv rrr"
|
||||
+ " , res_ruimte_opstelling rro"
|
||||
+ " , res_ruimte rr"
|
||||
+ " , res_opstelling ro"
|
||||
+ " WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key"
|
||||
+ " AND rro.res_ruimte_key = rr.res_ruimte_key"
|
||||
+ " AND rrr.res_rsv_ruimte_dirtlevel = 0" // Geen dirty ruimtes voor de BO! TODO: voor mi wel? En hoe dan?
|
||||
+ " AND rro.res_opstelling_key = ro.res_opstelling_key "
|
||||
+ " AND rro.res_ruimte_key = rr.res_ruimte_key"
|
||||
+ " AND rrr.res_rsv_ruimte_dirtlevel = 0" // Geen dirty ruimtes voor de BO! TODO: voor mi wel? En hoe dan?
|
||||
+ " AND rro.res_opstelling_key = ro.res_opstelling_key "
|
||||
+ sql_room_key;
|
||||
|
||||
//===================================================
|
||||
|
||||
sql_from_art_part = sql_select
|
||||
+ sql_from
|
||||
+ " , (" + sql_from_art_part + ") res_geg"
|
||||
+ sql_where;
|
||||
|
||||
// apply 3D authorization to the locations and to the organisations (both ALG and PRS)
|
||||
sql_from_art_part = discx3d (sql_from_art_part,
|
||||
"res_geg.res_ins_discipline_key",
|
||||
"di.alg_regio_key",
|
||||
"l.alg_district_key",
|
||||
"ruimte_geg.alg_locatie_key",
|
||||
"ruimte_geg.alg_gebouw_key",
|
||||
"ruimte_geg.alg_verdieping_key",
|
||||
"ruimte_geg.alg_ruimte_key",
|
||||
"boom.prs_bedrijf_key",
|
||||
"boom.prs_afdeling_key",
|
||||
pautfunction,
|
||||
(!res_key && article_disc_arr && (article_disc_arr.length > 0) ? article_disc_arr.join(",") : ""),
|
||||
2);
|
||||
|
||||
sql_from_obj_part = sql_select
|
||||
+ sql_from
|
||||
+ " , (" + sql_from_obj_part + ") res_geg"
|
||||
+ sql_where;
|
||||
|
||||
sql_from_obj_part = discx3d (sql_from_obj_part,
|
||||
"res_geg.res_ins_discipline_key",
|
||||
"di.alg_regio_key",
|
||||
"l.alg_district_key",
|
||||
"ruimte_geg.alg_locatie_key",
|
||||
"ruimte_geg.alg_gebouw_key",
|
||||
"ruimte_geg.alg_verdieping_key",
|
||||
"ruimte_geg.alg_ruimte_key",
|
||||
"boom.prs_bedrijf_key",
|
||||
"boom.prs_afdeling_key",
|
||||
pautfunction,
|
||||
(!res_key && obj_key_arr && (obj_key_arr.length > 0) ? obj_key_arr.join(",") : ""),
|
||||
2);
|
||||
|
||||
sql_from_room_part = sql_select
|
||||
+ sql_from
|
||||
+ " , (" + sql_from_room_part + ") res_geg"
|
||||
+ sql_where;
|
||||
|
||||
sql_from_room_part = discx3d (sql_from_room_part,
|
||||
"res_geg.res_ins_discipline_key",
|
||||
"di.alg_regio_key",
|
||||
"l.alg_district_key",
|
||||
"ruimte_geg.alg_locatie_key",
|
||||
"ruimte_geg.alg_gebouw_key",
|
||||
"ruimte_geg.alg_verdieping_key",
|
||||
"ruimte_geg.alg_ruimte_key",
|
||||
"boom.prs_bedrijf_key",
|
||||
"boom.prs_afdeling_key",
|
||||
pautfunction,
|
||||
(!res_key && room_key_arr && (room_key_arr.length > 0) ? room_key_arr.join(",") : ""),
|
||||
2);
|
||||
|
||||
var sql_from_total = "";
|
||||
if (res_key || roomcat)
|
||||
{
|
||||
sql_from_total += sql_from_room_part;
|
||||
if (res_key || objcat || artcat)
|
||||
sql_from_total += " UNION ALL "
|
||||
}
|
||||
|
||||
if (res_key || objcat)
|
||||
{
|
||||
sql_from_total += sql_from_obj_part;
|
||||
if (res_key || artcat)
|
||||
sql_from_total += " UNION ALL "
|
||||
}
|
||||
|
||||
if (res_key || artcat)
|
||||
sql_from_total += sql_from_art_part;
|
||||
|
||||
sql = "WITH " + thePerslid + "," + theResrsv + sql_from_total;
|
||||
|
||||
var sql_order = "";
|
||||
if (groupres == 1)
|
||||
{ // Alleen backoffice reserveringen, group by deelreservering (rsv_ruimte_key and rcv_type DESC)
|
||||
@@ -1472,90 +1598,6 @@ function res_list (pautfunction, params)
|
||||
+ (datefrom && dateto && datefrom.midnight().getTime() != dateto.midnight().getTime()? " datumvan" : " TO_CHAR(datumvan, 'HH24:MI:SS')") + ", locatie, res_ruimte_nr, res_reservering_key, categorie DESC";
|
||||
}
|
||||
|
||||
var sql_from_total = "";
|
||||
if (res_key || roomcat)
|
||||
{
|
||||
sql_from_total += sql_from_room_part;
|
||||
if (res_key || objcat || artcat)
|
||||
sql_from_total += " UNION ALL "
|
||||
}
|
||||
|
||||
if (res_key || objcat)
|
||||
{
|
||||
sql_from_total += sql_from_obj_part;
|
||||
if (res_key || artcat)
|
||||
sql_from_total += " UNION ALL "
|
||||
}
|
||||
|
||||
if (res_key || artcat)
|
||||
sql_from_total += sql_from_art_part;
|
||||
|
||||
sql = "SELECT " + sql_select
|
||||
+ " FROM (" + sql_from_total + ") res_geg"
|
||||
+ ", res_rsv_ruimte rrr"
|
||||
+ ", res_activiteit ract"
|
||||
+ ", res_srtactiviteit sa"
|
||||
+ ", thePerslid phost"
|
||||
+ ", thePerslid pcontact"
|
||||
+ ", alg_v_ruimte_gegevens_all ruimte_geg" // DB12
|
||||
+ ", (SELECT res_ruimte_opstel_key"
|
||||
+ ", "+lcl.xsqla('rr.res_ruimte_nr','rr.res_ruimte_key')
|
||||
+ ", MIN (alg_ruimte_key) alg_ruimte_key"
|
||||
+ ", res_ruimte_opstel_default"
|
||||
+ " FROM res_ruimte_opstelling rro, res_alg_ruimte rar, res_ruimte rr "
|
||||
+ " WHERE rro.res_ruimte_key = rar.res_ruimte_key"
|
||||
+ " AND rr.res_ruimte_key = rar.res_ruimte_key "
|
||||
+ " AND rar.res_alg_ruimte_verwijder is null "
|
||||
+ " GROUP BY res_ruimte_opstel_key"
|
||||
+ " , " + lcl.xsql('rr.res_ruimte_nr','rr.res_ruimte_key')
|
||||
+ " ,res_ruimte_opstel_default ) opstelalg"
|
||||
+ ", alg_locatie l"
|
||||
+ ", alg_district di"
|
||||
+ ", prs_kostenplaats k"
|
||||
+ ", prs_v_afdeling_boom boom"
|
||||
+ " WHERE res_geg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key"
|
||||
+ " AND rrr.res_rsv_ruimte_verwijder IS NULL"
|
||||
+ " AND rrr.res_activiteit_key = ract.res_activiteit_key"
|
||||
+ " AND ract.res_srtactiviteit_key = sa.res_srtactiviteit_key"
|
||||
+ " AND res_rsv_ruimte_host_key = phost.prs_perslid_key"
|
||||
+ " AND res_rsv_ruimte_contact_key = pcontact.prs_perslid_key"
|
||||
+ " AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+)"
|
||||
+ " AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)"
|
||||
+ " AND ruimte_geg.alg_ruimte_key = coalesce(rrr.alg_ruimte_key, opstelalg.alg_ruimte_key)"
|
||||
+ " AND l.alg_locatie_key = ruimte_geg.alg_locatie_key"
|
||||
+ " AND l.alg_district_key = di.alg_district_key"
|
||||
+ " AND pcontact.prs_afdeling_key = boom.prs_afdeling_key"
|
||||
+ (!res_key
|
||||
? sql_act
|
||||
+ sql_name
|
||||
+ status_sql
|
||||
+ (approve_sql.length > 0 ? " AND (" + approve_sql.join(" OR ") + ")" : "")
|
||||
+ sql_reg + sql_dist + sql_loc + sql_bld + sql_floor + sql_room + sql_dept + sql_account
|
||||
: "");
|
||||
if (params.res_noshowonly) {
|
||||
sql += " AND (rrr.res_rsv_ruimte_noshow = 1";
|
||||
sql += " OR COALESCE(res_rsv_ruimte_bezoekers_shown, res_rsv_ruimte_bezoekers) < res_rsv_ruimte_bezoekers)";
|
||||
}
|
||||
if (!groupres || groupres == 1)
|
||||
sql += getKenmerkSql("RES", "rrr.res_rsv_ruimte_key", true);
|
||||
|
||||
// apply 3D authorization to the locations and to the organisations (both ALG and PRS)
|
||||
sql = discx3d (sql,
|
||||
"res_geg.res_ins_discipline_key",
|
||||
"di.alg_regio_key",
|
||||
"l.alg_district_key",
|
||||
"ruimte_geg.alg_locatie_key",
|
||||
"ruimte_geg.alg_gebouw_key",
|
||||
"ruimte_geg.alg_verdieping_key",
|
||||
"ruimte_geg.alg_ruimte_key",
|
||||
"boom.prs_bedrijf_key",
|
||||
"boom.prs_afdeling_key",
|
||||
pautfunction,
|
||||
(!res_key && roa_arr && (roa_arr.length > 0) ? roa_arr.join(",") : ""),
|
||||
2);
|
||||
|
||||
sql = "WITH " + thePerslid + "," + theResrsv + sql
|
||||
|
||||
// Voor groeperingen het resultaat nu eerst filteren zodat je maar 1 regel per deelreservering overhoud.
|
||||
if (groupres == 1)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user