From 6c919cdec3af6722bbb4a93da3366bf66a8063ee Mon Sep 17 00:00:00 2001 From: Erik Groener Date: Wed, 3 Jul 2024 14:20:10 +0000 Subject: [PATCH] FMHN#84318 instellen bedrijfskalender svn path=/Website/trunk/; revision=65417 --- APPL/ALG/alg_edit_gebouw.asp | 11 +++++ APPL/ALG/alg_edit_gebouw_multi.asp | 9 ++++ APPL/ALG/alg_edit_gebouw_multi_save.asp | 9 +++- APPL/ALG/alg_edit_gebouw_save.asp | 3 +- APPL/ALG/alg_show_gebouw.asp | 2 + APPL/API2/model_mld_vrije_dagen.inc | 63 ++++++++++++++++++++++++- APPL/MGT/mld_vrije_dagen.asp | 34 +++++++++++-- 7 files changed, 122 insertions(+), 9 deletions(-) diff --git a/APPL/ALG/alg_edit_gebouw.asp b/APPL/ALG/alg_edit_gebouw.asp index 1b9b7aa6eb..4c8dbda0a9 100644 --- a/APPL/ALG/alg_edit_gebouw.asp +++ b/APPL/ALG/alg_edit_gebouw.asp @@ -78,6 +78,7 @@ if (bld_key > 0) var vervaldatum = oRs("alg_gebouw_vervaldatum").Value != null ? new Date(oRs("alg_gebouw_vervaldatum").Value) : null; var geb_score1 = oRs("alg_gebouw_mjb_score1").Value; var actie_grp_key = oRs("bez_actie_groep_key").Value; + var kalender_id = oRs("mld_vrije_dagen_id").Value; oRs.Close(); } else @@ -232,6 +233,16 @@ else filtercode: "A", readonly: !this_alg.writeman }) ; + var sql = "SELECT DISTINCT mld_vrije_dagen_id, mld_vrije_dagen_id" + + " FROM mld_vrije_dagen"; + FCLTselector("cal_id" + , sql + , { label: L("lcl_calendar") + , initKey: kalender_id + , emptyOption: "" + , readonly: !this_alg.writeman + } + ); var times = []; for (i=0; i<24; i++) { diff --git a/APPL/ALG/alg_edit_gebouw_multi.asp b/APPL/ALG/alg_edit_gebouw_multi.asp index f58b1c979d..b2e300d747 100644 --- a/APPL/ALG/alg_edit_gebouw_multi.asp +++ b/APPL/ALG/alg_edit_gebouw_multi.asp @@ -147,6 +147,15 @@ user.auth_required_or_abort(ingesloten.length); // We klagen niet over enkele we initEmpty: true, readonly: !this_alg.writeuse }); + sql = "SELECT DISTINCT mld_vrije_dagen_id, mld_vrije_dagen_id" + + " FROM mld_vrije_dagen"; + FCLTselector("cal_id" + , sql + , { label: L("lcl_calendar") + , emptyOption: "" + , initEmpty: true + , readonly: !this_alg.writeman + }); var times = []; for (i=0; i<24; i++) { diff --git a/APPL/ALG/alg_edit_gebouw_multi_save.asp b/APPL/ALG/alg_edit_gebouw_multi_save.asp index b516268bd1..e033593595 100644 --- a/APPL/ALG/alg_edit_gebouw_multi_save.asp +++ b/APPL/ALG/alg_edit_gebouw_multi_save.asp @@ -49,6 +49,9 @@ if (Request.Form("toon_kenteken").Count == 1 && getFParam("check_toon_kenteken", } if (Request.Form("dienstniveau").Count == 1 && getFParam("check_dienstniveau", "off") == "on") fields.push({ dbs: "mld_dienstniveau_key", typ: "key", frm: "dienstniveau", track: L("lcl_mld_dienst_niveau"), foreign: "mld_dienstniveau" }); + +if (Request.Form("cal_id").Count == 1 && getFParam("check_cal_id", "off") == "on") + fields.push({ dbs: "mld_vrije_dagen_id", typ: "varchar", frm: "cal_id", track: L("lcl_calendar") }); if (Request.Form("bld_beginuur").Count == 1 && getFParam("check_bld_beginuur", "off") == "on") fields.push({ dbs: "alg_gebouw_beginuur", typ: "float", frm: "bld_beginuur", track: L("lcl_estate_gebouw_beginuur") }); if (Request.Form("bld_einduur").Count == 1 && getFParam("check_bld_einduur", "off") == "on") @@ -112,9 +115,11 @@ for (var i = 0; i < bld_key_arr.length; i++) isNew: false }); - if (flextrack && flextrack.length) + if ((algUpd.trackarray && algUpd.trackarray.length) || (flextrack && flextrack.length)) { - var update_string = L("lcl_alg_is_alglup") + "\n" + algUpd.trackarray.join("\n"); + var update_string = L("lcl_alg_is_alglup") + "\n"; + if (algUpd.trackarray && algUpd.trackarray.length) + update_string += algUpd.trackarray.join("\n"); if (flextrack && flextrack.length) update_string += flextrack.join("\n"); shared.trackaction("ALGGUP", alg_key, update_string); diff --git a/APPL/ALG/alg_edit_gebouw_save.asp b/APPL/ALG/alg_edit_gebouw_save.asp index f1a0caf86f..001dfcac2e 100644 --- a/APPL/ALG/alg_edit_gebouw_save.asp +++ b/APPL/ALG/alg_edit_gebouw_save.asp @@ -76,7 +76,8 @@ if (this_alg.writeman) { dbs: "alg_gebouw_mld", typ: "check", frm: "bld_mld", track: L("lcl_estate_gebouw_mld") }, { dbs: "alg_gebouw_werkdagen", typ: "check0", frm: "bld_werkdagen", track: L("lcl_estate_gebouw_werkdagen") }, { dbs: "alg_gebouw_vervaldatum", typ: "date", frm: "vervaldatum", track: L("lcl_alg_vervaldatum") }, - { dbs: "bez_actie_groep_key", typ: "key", frm: "group", track: L("bez_actie_groep"), foreign: "bez_actie_groep" }); + { dbs: "bez_actie_groep_key", typ: "key", frm: "group", track: L("bez_actie_groep"), foreign: "bez_actie_groep" }, + { dbs: "mld_vrije_dagen_id", typ: "varchar", frm: "cal_id", track: L("lcl_calendar")}); if (beginuur != -2) fields.push({ dbs: "alg_gebouw_beginuur", typ: "float", val: beginuur, track: L("lcl_estate_gebouw_beginuur") }); diff --git a/APPL/ALG/alg_show_gebouw.asp b/APPL/ALG/alg_show_gebouw.asp index 8a3124a111..bbe7bc741f 100644 --- a/APPL/ALG/alg_show_gebouw.asp +++ b/APPL/ALG/alg_show_gebouw.asp @@ -72,6 +72,7 @@ var verantw2 = oRs("prs_perslid_key_verantw2").Value; var vervaldatum = oRs("alg_gebouw_vervaldatum").Value; var geb_score1 = oRs("alg_gebouw_mjb_score1").Value; var actie_grp_key = oRs("bez_actie_groep_key").Value; +var kalender_id = oRs("mld_vrije_dagen_id").Value; oRs.Close(); %> @@ -239,6 +240,7 @@ oRs.Close(); } oRs.Close(); + ROFIELDTR("fld", L("lcl_calendar"), kalender_id, {suppressEmpty: true}); ROFIELDTR("fld", L("lcl_estate_gebouw_beginuur"), toTimeString(beginuur), {suppressEmpty:true} ); ROFIELDTR("fld", L("lcl_estate_gebouw_einduur"), toTimeString(einduur), {suppressEmpty:true} ); ROCHECKBOXTR("fldalgwerk", L("lcl_estate_gebouw_werkdagen"), werkdagen==1); diff --git a/APPL/API2/model_mld_vrije_dagen.inc b/APPL/API2/model_mld_vrije_dagen.inc index 42bddf1971..1e89143c76 100644 --- a/APPL/API2/model_mld_vrije_dagen.inc +++ b/APPL/API2/model_mld_vrije_dagen.inc @@ -41,6 +41,39 @@ function model_mld_vrije_dagen() "autosize": true, "filter": "range", "friendlyname": true + }, + "name": { + "dbs": "mld_vrije_dagen_id", + "label": L("lcl_calendar"), + "typ": "varchar", + "required": true, + "defaultvalue": "Default" + }, + "calendar": { + "dbs": "kalender.kalender_id", + "label": L("lcl_calendar"), + "typ": "varchar", + "foreign": { + "tbl": "(SELECT DISTINCT" + + " mld_vrije_dagen_id cl_key" + + " FROM mld_vrije_dagen" + + ")", + "key": "cl_key", + "desc": "cl_key" + } + }, + "year": { + "dbs": "jaren.jaar_key", + "label": L("lcl_mld_year"), + "typ": "varchar", + "foreign": { + "tbl": "(SELECT DISTINCT" + + " TO_CHAR(EXTRACT(YEAR FROM mld_vrije_dagen_datum)) yr_key" + + " FROM mld_vrije_dagen" + + ")", + "key": "yr_key", + "desc": "yr_key" + } } }; @@ -48,9 +81,35 @@ function model_mld_vrije_dagen() "modal": true }; - this.REST_GET = generic_REST_GET(this); + function get_tbl_yr() + { + var sql = "(SELECT DISTINCT" + + " EXTRACT(YEAR FROM mld_vrije_dagen_datum) jaar_key" + + " , mld_vrije_dagen_id cl_key" + + " FROM mld_vrije_dagen" + + ") jaren"; + return sql; + } + function get_tbl_cl() + { + var sql = "(SELECT DISTINCT mld_vrije_dagen_id kalender_id" + + " FROM mld_vrije_dagen" + + ") kalender"; + return sql; + } + var gparams = { GET: { tables: [ get_tbl_yr() + , get_tbl_cl() + ] + , wheres: [ "EXTRACT(YEAR FROM mld_vrije_dagen.mld_vrije_dagen_datum) = jaren.jaar_key" + , "mld_vrije_dagen.mld_vrije_dagen_id = kalender.kalender_id" + , "mld_vrije_dagen.mld_vrije_dagen_id = jaren.cl_key" + ] + } + }; + + this.REST_GET = generic_REST_GET(this, gparams); this.REST_POST = generic_REST_POST(this); - this.REST_PUT = generic_REST_PUT(this); + this.REST_PUT = generic_REST_PUT(this, gparams); this.REST_DELETE = generic_REST_DELETE(this); } %> \ No newline at end of file diff --git a/APPL/MGT/mld_vrije_dagen.asp b/APPL/MGT/mld_vrije_dagen.asp index 28fbc3d77a..142a45aa6f 100644 --- a/APPL/MGT/mld_vrije_dagen.asp +++ b/APPL/MGT/mld_vrije_dagen.asp @@ -22,20 +22,46 @@ scaffolding(this_model, "search": { "autosearch": true, "filters": [ - "day_off" + "calendar", + "year", + "_dayoff" ] }, "list": { + "requires": { + "js": ["../mgt/mld_vrije_dagen.js"] + }, "columns": [ "id", + "year", + "name", "dayoff" + ], + "buttons": [ + { icon: "fa-copy", title: L("lcl_mld_copy"), action: "copy_vrije_dagen()"} ] }, "layout": { - "miscellaneous": { - "icon" : "fa-umbrella-beach" - } + "block": [ + { "blockid": "mldVrij", + "label": L("mld_vrije_dagen"), + "icon": "fa-umbrella-beach", + "hidden": false, + "fields": [ + "dayoff", + "name" + ] + }, + { "blockid": "mldHidden", + "label": L("lcl_mld_hidden_fields"), + "hidden": true, + "fields": [ + "calendar", + "year" + ] + } + ] } }); %>