diff --git a/APPL/API2/model_reservableequipment.inc b/APPL/API2/model_reservableequipment.inc index 3b1a014a91..f355dc4de8 100644 --- a/APPL/API2/model_reservableequipment.inc +++ b/APPL/API2/model_reservableequipment.inc @@ -38,15 +38,16 @@ model_reservableequipment = primary: "res_deel_key", records_name: "reservableequipment", record_name: "reservableequipment", - fields: { "id" : { dbs: "res_deel_key", typ: "key", filter: "exact" }, - "name" : { dbs: "res_deel_omschrijving", typ: "varchar", filter: "like" }, - "remark" : { dbs: "res_deel_opmerking", typ: "varchar", filter: "like" }, - "unit" : { dbs: "res_deel_eenheid", typ: "varchar", filter: "like" }, - "price" : { dbs: "res_deel_prijs", typ: "float", filter: "like" }, - "fixed" : { dbs: "res_deel_prijs_vast", typ: "check0", filter: "exact" }, - "object" : { dbs: "res_ins_deel_key", typ: "key", foreign: "ins_deel" }, - "catalog" : { dbs: "res_discipline_key", typ: "key", foreign: "res_discipline", filter: "exact" }, - "scope" : { dbs: "res_deel_alg_level", typ: "key", foreign: alg_level } + fields: { "id" : { dbs: "res_deel_key", typ: "key", filter: "exact" }, + "name" : { dbs: "res_deel_omschrijving", typ: "varchar", filter: "like" }, + "remark" : { dbs: "res_deel_opmerking", typ: "varchar", filter: "like" }, + "unit" : { dbs: "res_deel_eenheid", typ: "varchar", filter: "like" }, + "price" : { dbs: "res_deel_prijs", typ: "float", filter: "like" }, + "fixed" : { dbs: "res_deel_prijs_vast", typ: "check0", filter: "exact" }, + "object" : { dbs: "res_ins_deel_key", typ: "key", foreign: "ins_deel" }, + "catalog" : { dbs: "res_discipline_key", typ: "key", foreign: "res_discipline", filter: "exact" }, + "scope" : { dbs: "res_deel_alg_level", typ: "key", foreign: alg_level }, + "expires" : { dbs: "res_deel_vervaldatum", typ: "date" } }, // advanced filter filter: { prefunc: function _prefilterfunc(params) diff --git a/APPL/FAC/prodsearch.inc b/APPL/FAC/prodsearch.inc index 7d3c72bc10..f1bcf7817f 100644 --- a/APPL/FAC/prodsearch.inc +++ b/APPL/FAC/prodsearch.inc @@ -255,7 +255,7 @@ function prodsearch_queries(write_discs, filter) + " FROM res_v_aanwezigartikel r," + " res_v_aanwezigdiscipline d" + " WHERE r.res_discipline_key = d.ins_discipline_key" - + " AND (res_artikel_ingangsdatum IS NULL OR res_artikel_ingangsdatum <= SYSDATE) AND (res_artikel_vervaldatum IS NULL OR res_artikel_vervaldatum > SYSDATE)" + + " AND (r.res_artikel_ingangsdatum IS NULL OR r.res_artikel_ingangsdatum <= SYSDATE) AND (r.res_artikel_vervaldatum IS NULL OR r.res_artikel_vervaldatum > SYSDATE)" + " AND " + fac.createOrClause("UPPER("+lcl.xsql('d.ins_discipline_omschrijving','d.ins_discipline_key') +"||', '||" +lcl.xsql('res_artikel_omschrijving','res_artikel_key') +"||', '||" +lcl.xsql('res_artikel_opmerking','res_artikel_key')+")", supper) @@ -291,6 +291,7 @@ function prodsearch_queries(write_discs, filter) + " alg_locatie l," + " alg_district di" + " WHERE rd.ins_discipline_key = r.res_discipline_key" + + " AND (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > SYSDATE)" + " AND res_ins_deel_key = d.ins_deel_key" + " AND isd.ins_srtdeel_key = d.ins_srtdeel_key" + " AND isg.ins_srtgroep_key = isd.ins_srtgroep_key" diff --git a/APPL/RES/objects_list_tiny.asp b/APPL/RES/objects_list_tiny.asp index 36b3fc8843..f1c770d2a0 100644 --- a/APPL/RES/objects_list_tiny.asp +++ b/APPL/RES/objects_list_tiny.asp @@ -36,11 +36,16 @@ FCLTHeader.Requires(); <% sql = "SELECT 'V' AS res_type" - + ", "+ lcl.xsql('rd.res_deel_omschrijving','rd.res_deel_key') + + ", " + lcl.xsql('rd.res_deel_omschrijving','rd.res_deel_key') + + " || CASE" + + " WHEN (rd.res_deel_vervaldatum IS NULL OR rd.res_deel_vervaldatum > SYSDATE) " + + " THEN ''" + + " ELSE " + safe.quoted_sql(L("lcl_inactive_data_suffix")) // Standaard suffix achter de omschrijving indien inactief artikel + + " END" + " || CASE " - + " WHEN "+ lcl.xsql('rd.res_deel_eenheid','rd.res_deel_key') +" IS NULL" + + " 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') +" || ')'" + + " ELSE ' (' || "+ lcl.xsql('rd.res_deel_eenheid','rd.res_deel_key') + " || ')'" + " END AS res_voorziening" + ", TO_NUMBER (NULL) AS aantal" + ", rrd.res_rsv_deel_van AS res_reservering_van" @@ -55,21 +60,22 @@ FCLTHeader.Requires(); + ", ins_deel id" + " 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") : "") + + (S("vis_parking_key") != -1? " AND rd.res_discipline_key != " + S("vis_parking_key") : "") + " AND rd.res_ins_deel_key = id.ins_deel_key" + " AND rrd.res_rsv_ruimte_key = " + rsv_ruimte_key + " UNION ALL" + " SELECT 'C' AS res_type" - + ", 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" - + " || CASE" - + " WHEN (res_artikel_ingangsdatum IS NULL OR res_artikel_ingangsdatum <= SYSDATE) AND (res_artikel_vervaldatum IS NULL OR res_artikel_vervaldatum > SYSDATE) " - + " THEN ''" - + " ELSE " + safe.quoted_sql(L("lcl_inactive_data_suffix")) // Standaard suffix achter de omschrijving indien inactief artikel - + " END AS res_voorziening" + + ", 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" + + " || CASE" + + " WHEN (res_artikel_ingangsdatum IS NULL OR res_artikel_ingangsdatum <= SYSDATE) AND (res_artikel_vervaldatum IS NULL OR res_artikel_vervaldatum > SYSDATE) " + + " THEN ''" + + " ELSE " + safe.quoted_sql(L("lcl_inactive_data_suffix")) // Standaard suffix achter de omschrijving indien inactief artikel + + " END AS res_voorziening" + ", rra.res_rsv_artikel_aantal AS aantal" + ", rra.res_rsv_artikel_levering AS res_reservering_van" + ", null AS res_reservering_tot" diff --git a/APPL/RES/res.inc b/APPL/RES/res.inc index 25fbc854bc..cfad79071a 100644 --- a/APPL/RES/res.inc +++ b/APPL/RES/res.inc @@ -1769,6 +1769,17 @@ function get_res_deel_sql (params) params.alg_ruimte_key = params.alg_ruimte_key || -1; params.res_ruimte_key = params.res_ruimte_key || -1; + var res_van = new Date(); + if (params.rsv_ruimte_key > 0) + { + sql = "SELECT res_rsv_ruimte_van" + + " FROM res_rsv_ruimte" + + " WHERE res_rsv_ruimte_key = " + params.rsv_ruimte_key; + oRs = Oracle.Execute(sql); + var res_van = new Date(oRs("res_rsv_ruimte_van").Value); + } + var ora_date1 = res_van.beginToSQL(); + var sql1 = "SELECT " + params.select_fields + " FROM ins_deel d" + " , res_v_aanwezigdeel r" @@ -1819,6 +1830,7 @@ function get_res_deel_sql (params) + " OR ds.alg_ruimte_key = scope.alg_ruimte_key" + " OR ds.res_deel_alg_level = -1)" + " AND r.res_deel_key = ds.res_deel_key" + + " AND (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > " + ora_date1 + ")" if (params.res_ruimte_key < 0 && (params.alg_ruimte_key < 0)) { // Locatie scope of nog groter. Rechten ook meenemen diff --git a/APPL/RES/res_cleanup.asp b/APPL/RES/res_cleanup.asp index 5bed18d973..b8f3a06204 100644 --- a/APPL/RES/res_cleanup.asp +++ b/APPL/RES/res_cleanup.asp @@ -39,6 +39,13 @@ protectRequest.validateToken(); + " AND BITAND(res_rsv_artikel_dirtlevel, " + (res.dirtlevel.artikel.notallowed) + ") <> 0"; Oracle.Execute(sql); + // Objecten die (ondertussen) zijn vervallen voor de leverdatum + var sql = "DELETE FROM res_rsv_deel rrd" + + " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key + + " AND (SELECT res_deel_vervaldatum FROM res_deel rd WHERE rd.res_deel_key = rrd.res_deel_key)" + + " < res_rsv_deel_van"; + Oracle.Execute(sql); + // Artikelen die (ondertussen) zijn vervallen voor de leverdatum var sql = "DELETE FROM res_rsv_artikel rra" + " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key diff --git a/APPL/RES/res_list.inc b/APPL/RES/res_list.inc index c91f543985..df84fabc09 100644 --- a/APPL/RES/res_list.inc +++ b/APPL/RES/res_list.inc @@ -1260,7 +1260,11 @@ function res_list (pautfunction, params) + ", '' AS artikel_groep" + ", rrd.res_rsv_deel_key keycolumn" + ", 1 ingang" - + ", 1 verval" + + ", CASE" + + " WHEN (rd.res_deel_vervaldatum IS NULL OR rd.res_deel_vervaldatum > rrr.res_rsv_ruimte_van)" + + " THEN 1" + + " ELSE 0" + + " END verval" + ", id.ins_discipline_key" + ", isd.ins_srtdeel_uitleenbaar" + ", id.ins_alg_ruimte_key_org" diff --git a/APPL/RES/res_plan_obj.inc b/APPL/RES/res_plan_obj.inc index eb7de97165..ebf219d550 100644 --- a/APPL/RES/res_plan_obj.inc +++ b/APPL/RES/res_plan_obj.inc @@ -193,7 +193,12 @@ function make_plan_obj(disc_key, res_van, res_tot, params) var select_fields = " r.res_deel_key" + ", " + lcl.xsqla('r.res_deel_opmerking', 'r.res_deel_key') - + ", " + lcl.xsqla('r.res_deel_omschrijving', 'r.res_deel_key') + + ", " + lcl.xsql('r.res_deel_omschrijving', 'r.res_deel_key') + + " || CASE" + + " WHEN (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > SYSDATE)" + + " THEN ''" + + " ELSE " + safe.quoted_sql(L("lcl_inactive_data_suffix")) + + " END res_deel_omschrijving" + ", d.ins_alg_ruimte_key_org" + ", d.ins_discipline_key" + ", r.res_deel_prijs" @@ -204,6 +209,7 @@ function make_plan_obj(disc_key, res_van, res_tot, params) + " r.res_deel_key" + ", " + lcl.xsql('r.res_deel_opmerking', 'r.res_deel_key') + ", " + lcl.xsql('r.res_deel_omschrijving', 'r.res_deel_key') + + ", r.res_deel_vervaldatum" + ", d.ins_alg_ruimte_key_org" + ", d.ins_discipline_key" + ", r.res_deel_prijs" @@ -214,7 +220,8 @@ function make_plan_obj(disc_key, res_van, res_tot, params) // Iterate through all reservable objects (vertically) and show schedule for them (horizontally) var sql1 = get_res_deel_sql( - { alg_ruimte_key: alg_ruimte_key, + { rsv_ruimte_key: params.rsv_ruimte_key, + alg_ruimte_key: alg_ruimte_key, res_ruimte_key: res_ruimte_key, select_fields : select_fields, reg_key : params.reg_key, diff --git a/APPL/RES/res_show_objcat.asp b/APPL/RES/res_show_objcat.asp index 974d7c401d..70a42d18f9 100644 --- a/APPL/RES/res_show_objcat.asp +++ b/APPL/RES/res_show_objcat.asp @@ -107,7 +107,8 @@ var resdeleted = this_res.rsv_ruimte_verwijder != null; function fnOmschrijving(oRs) { - return oRs("res_deel_omschrijving").value + " " + (oRs("inclBTW").value? L("lcl_shared_inclBTW") : L("lcl_shared_exclBTW")); + return oRs("res_deel_omschrijving").value + " " + (oRs("inclBTW").value? L("lcl_shared_inclBTW") : L("lcl_shared_exclBTW")) + + (oRs("verval").value == 0? L("lcl_inactive_data_suffix") : ""); } function fnVantijd(oRs) @@ -137,7 +138,7 @@ var resdeleted = this_res.rsv_ruimte_verwijder != null; var anyDirty = false; function fnRowClassObj(oRs) { - if (oRs("res_rsv_deel_dirtlevel").value & (res.dirtlevel.deel.notavailable | res.dirtlevel.deel.notallowed)) + if (oRs("verval").value == 0 || oRs("res_rsv_deel_dirtlevel").value & (res.dirtlevel.deel.notavailable | res.dirtlevel.deel.notallowed)) { anyDirty = true; return "res_fatal"; @@ -219,6 +220,11 @@ var resdeleted = this_res.rsv_ruimte_verwijder != null; + " WHERE id.ins_alg_ruimte_key = c.prs_contactpersoon_key)" + " END eigenaar" + " , COALESCE (ks.prs_kostensoort_btw, 0) inclbtw" + + ", CASE" + + " WHEN (rd.res_deel_vervaldatum IS NULL OR rd.res_deel_vervaldatum > rr.res_rsv_ruimte_van)" + + " THEN 1" + + " ELSE 0" + + " END verval" + " FROM res_rsv_deel rrd" + " , res_rsv_ruimte rr" + " , res_deel rd" diff --git a/APPL/Shared/Suggest/plaatsFilter.inc b/APPL/Shared/Suggest/plaatsFilter.inc index 4c482c8db4..08ca79c5af 100644 --- a/APPL/Shared/Suggest/plaatsFilter.inc +++ b/APPL/Shared/Suggest/plaatsFilter.inc @@ -585,6 +585,7 @@ function get_loc_scope_act_filter(params, level) + " OR ds.alg_verdieping_key = scope.alg_verdieping_key" + " OR ds.alg_ruimte_key = scope.alg_ruimte_key" + " OR ds.res_deel_alg_level = -1)" + + " AND (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > SYSDATE)" // Zijn er wel geldige voorzieningen onder deze catalogus? + (params.act_key > 0 ? " AND r.res_discipline_key IN (SELECT res_discipline_key" + " FROM res_activiteitdiscipline"