Merge 2025.4 RC1 patches
svn path=/Website/trunk/; revision=70970
This commit is contained in:
@@ -216,7 +216,7 @@ function model_generic(table, autfunction)
|
||||
|
||||
var fld = oRs.Fields("column_name").Value;
|
||||
|
||||
if (fld == table.toLowerCase() + "_verwijder" || fld == 'ins_discipline_verwijder')
|
||||
if (fld == table.toLowerCase() + "_verwijder" || fld == 'ins_discipline_verwijder' || fld == 'res_srtartikel_og_verwijder' || fld == 'res_ruimte_opstel_verwijder')
|
||||
model.soft_delete = fld;
|
||||
|
||||
// Dan zien we hem ook nergens meer?
|
||||
|
||||
@@ -53,6 +53,7 @@ function updateDisc(pautfunction, pdisc, psrtgroup, psrtdeel)
|
||||
disctype: ldisctype,
|
||||
module: "bes",
|
||||
emptyOption: "",
|
||||
selectjustone: 1,
|
||||
disc_key_arr: (pdisc? pdisc : []) }),
|
||||
function ()
|
||||
{ // Selecteer eventueel de initi<74>le items die meegegeven kunnen worden
|
||||
@@ -68,6 +69,7 @@ function updateSrtGroup(pautfunction, psrtgroup, psrtdeel)
|
||||
disc_key_arr: ldis_key,
|
||||
module: "bes",
|
||||
emptyOption: "",
|
||||
selectjustone: 1,
|
||||
srtgroup: (psrtgroup? psrtgroup : []) }),
|
||||
function ()
|
||||
{ // Selecteer eventueel de initi<74>le items die meegegeven kunnen worden
|
||||
@@ -84,6 +86,7 @@ function updateSrtDeel(pautfunction, psrtdeel)
|
||||
srtgroup_key_arr: lsrtgroup,
|
||||
module: "bes",
|
||||
emptyOption: "",
|
||||
selectjustone: 1,
|
||||
srtdeel: (psrtdeel? psrtdeel : []),
|
||||
verwijderd: (maninfo ? 1 : ""),
|
||||
datefrom: (maninfo ? $('#date_from').val() : "")
|
||||
|
||||
@@ -99,7 +99,17 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
+ " END) aantal_actueel"
|
||||
+ " FROM bes_discipline bd"
|
||||
+ " , bes_disc_params dp"
|
||||
+ " WHERE bd.ins_discipline_key = dp.bes_ins_discipline_key";
|
||||
+ " WHERE bd.ins_discipline_key = dp.bes_ins_discipline_key"
|
||||
+ " AND bd.ins_discipline_verwijder IS NULL"
|
||||
+ " AND bd.ins_discipline_key IN (SELECT dp.bes_ins_discipline_key_inkoop"
|
||||
+ " FROM bes_disc_params dp"
|
||||
+ " WHERE dp.bes_ins_discipline_key_inkoop IS NOT NULL)"
|
||||
+ " AND ins_discipline_key IN (SELECT ins_discipline_key"
|
||||
+ " FROM fac_v_webgebruiker g"
|
||||
+ " , fac_functie f"
|
||||
+ " WHERE g.prs_perslid_key = " + user_key
|
||||
+ " AND f.fac_functie_key = g.fac_functie_key "
|
||||
+ " AND f.fac_functie_code = " + safe.quoted_sql(autfunction) + ")";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var aantal_uitcat = oRs("aantal_uitcat").Value; // Uit catalogus(0).
|
||||
var aantal_vrij = oRs("aantal_vrij").Value; // Vrij aanmaken(1).
|
||||
@@ -123,6 +133,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
onChange: 'updateDisc("' + autfunction + '");', // discChanged
|
||||
trclass: "primsearch",
|
||||
emptyOption: "",
|
||||
selectjustone: true, // required zorgt er eigenlijk ook al voor dat als er maar 1 waarde is, dat deze wordt geselecteerd.
|
||||
required: true
|
||||
});
|
||||
|
||||
@@ -147,7 +158,8 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
label: L("lcl_bes_Catalogus"),
|
||||
onChange: 'updateSrtGroup("' + autfunction + '");', // discChanged
|
||||
trclass:"primsearch",
|
||||
emptyOption: ""
|
||||
emptyOption: "",
|
||||
selectjustone: true
|
||||
});
|
||||
%>
|
||||
|
||||
@@ -158,7 +170,8 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
label: L("lcl_bes_srtgroup"),
|
||||
onChange: 'updateSrtDeel("' + autfunction + '");', // srtgroupChanged
|
||||
trclass: "secsearch",
|
||||
emptyOption: ""
|
||||
emptyOption: "",
|
||||
selectjustone: true
|
||||
}); %>
|
||||
|
||||
<!-- Item select box -->
|
||||
@@ -167,14 +180,15 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
{ initKey: srtdeel,
|
||||
label: L("lcl_bes_srtdeel"),
|
||||
trclass: "secsearch",
|
||||
emptyOption: ""
|
||||
emptyOption: "",
|
||||
selectjustone: true
|
||||
}); %>
|
||||
<script type="text/javascript">
|
||||
// Laad de groupen en de items
|
||||
// Selecteer eventueel de initi<74>le groepen en items die meegegeven kunnen worden
|
||||
$(function()
|
||||
{
|
||||
updateDisc("<%=autfunction%>", "<%=disc%>", "<%=srtgroup%>", "<%=srtdeel%>");
|
||||
updateDisc("<%=autfunction%>", "<%=disc%>", "<%=srtgroup%>", "<%=srtdeel%>");
|
||||
});
|
||||
</script>
|
||||
<% SEARCH_BLOCK_END();
|
||||
|
||||
@@ -224,7 +224,6 @@ function fac_list_query (params)
|
||||
+ "FROM_TZ (CAST ( " + expr + " AS TIMESTAMP), " + safe.quoted_sql(S_fac_server_timezone) + ")"
|
||||
+ " AT TIME ZONE COALESCE (l.alg_locatie_timezone, " + safe.quoted_sql(S_fac_server_timezone) + ") AS DATE)";
|
||||
}
|
||||
// Todo; Today Session("time_zone") <> SYSDATE?
|
||||
|
||||
clausesArr.push(
|
||||
"SELECT rr.res_rsv_ruimte_host_key prs_perslid_key" // 1 Host ruimtereservering
|
||||
|
||||
@@ -86,6 +86,11 @@ footer {
|
||||
transform: translate(-50%, 75%);
|
||||
white-space: nowrap;
|
||||
}
|
||||
header .otap-title {
|
||||
bottom: unset;
|
||||
top: 0;
|
||||
transform: translate(-50%, 120%);
|
||||
}
|
||||
|
||||
footer {
|
||||
height: var(--fclt-footer-height);
|
||||
|
||||
@@ -177,6 +177,11 @@ function FOOTER(params)
|
||||
return;
|
||||
}
|
||||
|
||||
if (user.isGroupedUser() || Session("login_by_fallback"))
|
||||
{
|
||||
return; // Die hebben ook niets met die knoppen te maken
|
||||
}
|
||||
|
||||
var sql = "SELECT COUNT(*) berichten"
|
||||
+ " FROM web_user_messages"
|
||||
+ " WHERE prs_perslid_key_receiver = " + user_key
|
||||
|
||||
@@ -32,7 +32,14 @@ var own = getQParamInt("own", 0) == 1;
|
||||
var klus = getQParamInt("klus", 0) == 1;
|
||||
var disc_type = getQParamInt("grpby", 1); // 1 = Vakgroep (default), 2 = Behandelteam
|
||||
var deelsrtcont_key = getQParamInt("deelsrtcont_key", -1); // nieuwe melding vanuit een controletaak
|
||||
var self = getQParamInt("self", -1);
|
||||
|
||||
/* Self;
|
||||
-2: Opdrachten zonder actieve behandelaar
|
||||
0/null: Alle opdrachten, ongeacht actieve behandelaar
|
||||
1: Opdrachten waarbij ik de actieve behandelaar ben
|
||||
2: -2 & 1 (Dus; Geen actieve behandelaar, of ik ben de actieve behandelaar)
|
||||
*/
|
||||
var self = getQParamInt("self", null);
|
||||
|
||||
function getDistrictKey()
|
||||
{
|
||||
@@ -150,8 +157,14 @@ if (!hasParamFlag)
|
||||
|
||||
// Op mobile een dag(en)overzicht tonen van opdrachten op basis van een from en een to datum, voor mij als contactpersoon van de uitvoerende.
|
||||
// Die datums zijn dan gebaseerd op de plandatum.
|
||||
var plandatefrom = getQParamDate("plandate_from", null);
|
||||
var plandateto = getQParamDate("plandate_to", null);
|
||||
var plandatefrom = getQParamDate("plandate_from", getQParamDate("plandate", null));
|
||||
var plandateto = getQParamDate("plandate_to", plandatefrom);
|
||||
plandatefrom = plandatefrom || plandateto;
|
||||
// Nu zijn ze altijd allebei wel of allebei niet gedefinieerd
|
||||
|
||||
if (self === null) { // Default van self bij listmode = 1
|
||||
self = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // b. heb ik dan opdrachtrechten binnen een scope, dat is ORDBOF of ORDBO2? Dan mag ik opdrachten binnen de scope zien.
|
||||
@@ -184,10 +197,10 @@ if (!hasParamFlag)
|
||||
|
||||
// Wel, afhankelijk van mijn bepaalde rol kan ik mijn overzicht anders willen,
|
||||
// toegespitster op mijn behoefte (listmode):
|
||||
// 1. alle opdrachten, met de naam van de contactpersoon erbij (ik of mijn collega, leeg als ik)
|
||||
// 2. alle opdrachten per uitvoerder, kan ik makkelijk afmelden
|
||||
// 3. al mijn opdrachten, mijn todolijst
|
||||
// 4. alle opdracht van de meegegeven melding
|
||||
// 1. Alle opdrachten, met de naam van de contactpersoon erbij (ik of mijn collega, leeg als ik)
|
||||
// 2. Alle opdrachten per uitvoerder, kan ik makkelijk afmelden
|
||||
// 3. Al mijn opdrachten, mijn todolijst
|
||||
// 4. Alle opdracht van de meegegeven melding
|
||||
|
||||
function grp_sel_listmode2(grp)
|
||||
{
|
||||
@@ -215,7 +228,7 @@ if (!hasParamFlag)
|
||||
+ " , o.mld_opdr_bedrijfopdr_volgnr"
|
||||
+ " , o.mld_statusopdr_key"
|
||||
+ " , (SELECT p.prs_perslid_naam_full FROM prs_v_perslid_fullnames_all p WHERE p.prs_perslid_key = o.prs_perslid_key) behandelaar"
|
||||
+ " , (SELECT " + S("prs_contactpers_string") + " FROM prs_contactpersoon cp WHERE cp.prs_contactpersoon_key = o.prs_contactpersoon_key) contactpersoon"
|
||||
+ " , " + S("prs_contactpers_string") + " contactpersoon"
|
||||
+ " , mu.naam"
|
||||
+ " , mu.type"
|
||||
+ " , mu.intern"
|
||||
@@ -276,11 +289,13 @@ if (!hasParamFlag)
|
||||
+ " , alg_locatie l"
|
||||
+ " , alg_district di"
|
||||
+ " , mld_v_uitvoerende mu"
|
||||
+ " , prs_contactpersoon cp"
|
||||
+ " WHERE o.mld_melding_key = m.mld_melding_key (+)"
|
||||
+ " AND m.mld_stdmelding_key = std.mld_stdmelding_key (+)"
|
||||
+ " AND std.mld_ins_discipline_key = d.ins_discipline_key (+)"
|
||||
+ " AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key (+)"
|
||||
+ " AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key" // type b of p toch nog ergens doen@?
|
||||
+ " AND cp.prs_contactpersoon_key(+) = o.prs_contactpersoon_key"
|
||||
+ (grp_sel==""
|
||||
? ""
|
||||
: (listmode == 2
|
||||
@@ -325,56 +340,19 @@ if (!hasParamFlag)
|
||||
|
||||
if (listmode == 1)
|
||||
{
|
||||
var sql_plandate = "";
|
||||
var ora_date1;
|
||||
var ora_date2;
|
||||
var day_is_the_same = false;
|
||||
if (plandatefrom && plandateto)
|
||||
{
|
||||
ora_date1 = plandatefrom.beginToSQL();
|
||||
ora_date2 = plandateto.endToSQL();
|
||||
day_is_the_same = (plandatefrom.midnight().getTime() == plandateto.midnight().getTime())
|
||||
var plandate_where = "";
|
||||
var oneday = false;
|
||||
if (plandatefrom || plandateto) {
|
||||
var oneday = plandatefrom.midnight().getTime() == plandateto.midnight().getTime();
|
||||
plandate_where = " AND o.mld_opdr_plandatum BETWEEN " + plandatefrom.beginToSQL() + " AND " + plandateto.endToSQL();
|
||||
}
|
||||
else if (plandatefrom)
|
||||
{
|
||||
ora_date1 = plandatefrom.beginToSQL();
|
||||
ora_date2 = plandatefrom.endToSQL();
|
||||
day_is_the_same = true;
|
||||
}
|
||||
else if (plandateto)
|
||||
{
|
||||
ora_date1 = plandateto.beginToSQL();
|
||||
ora_date2 = plandateto.endToSQL();
|
||||
day_is_the_same = true;
|
||||
}
|
||||
|
||||
if (day_is_the_same)
|
||||
{ // ora_date1 en ora_date2 zijn op dezelfde dag.
|
||||
var sqld = "SELECT fac.datumtijdplusuitvoertijd (" + ora_date1 + ", 0, 'DAGEN') date1 FROM DUAL";
|
||||
var oRsd = Oracle.Execute(sqld);
|
||||
var ora_date1 = new Date(oRsd("date1").Value).beginToSQL();
|
||||
var ora_date2 = new Date(oRsd("date1").Value).endToSQL();
|
||||
oRsd.close();
|
||||
}
|
||||
|
||||
// Op mobile een dag(en)overzicht tonen van opdrachten op basis van een from en een to datum, voor mij als contactpersoon van de uitvoerende.
|
||||
// Die datums zijn dan gebaseerd op de plandatum en binnen die datums gesorteerd op tijd (van diezelfde plandatum).
|
||||
// Ook evt. opdrachten die aan geen contactpersoon zijn toegekend (dus leeg zijn), wil ik in dat dagoverzicht kunnen bekijken.
|
||||
if (ora_date1 && ora_date2)
|
||||
sql_plandate = " AND o.mld_opdr_plandatum BETWEEN " + ora_date1 + " AND " + ora_date2;
|
||||
+ " AND ((SELECT prs_contactpersoon_key"
|
||||
+ " FROM prs_contactpersoon"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND prs_contactpersoon_verwijder IS NULL"
|
||||
+ " AND prs_bedrijf_key = o.mld_uitvoerende_keys) = o.prs_contactpersoon_key"
|
||||
+ " OR o.prs_contactpersoon_key IS NULL)"
|
||||
|
||||
sql += " AND EXISTS (SELECT 'X' " // Ben ik contactpersoon van het uitvoerende externe bedrijf.
|
||||
+ " FROM prs_contactpersoon"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND prs_contactpersoon_verwijder is null "
|
||||
+ " AND prs_bedrijf_key = o.mld_uitvoerende_keys)"
|
||||
+ sql_plandate;
|
||||
+ plandate_where;
|
||||
}
|
||||
|
||||
if (listmode == 3)
|
||||
@@ -394,6 +372,27 @@ if (!hasParamFlag)
|
||||
+ " , prs_v_aanwezigafdeling a"
|
||||
+ " WHERE p.prs_afdeling_key = a.prs_afdeling_key"
|
||||
+ " AND p.prs_perslid_key = " + user_key + ")";
|
||||
if (self) {
|
||||
// Self heeft betrekking op de actieve behandelaar, dat kan zowel de contactpersoon als de behandelaar zijn
|
||||
// -2: Opdrachten zonder actieve behandelaar
|
||||
// 0/null: Alle opdrachten, ongeacht actieve behandelaar
|
||||
// 1: Opdrachten waarbij ik de actieve behandelaar ben
|
||||
// 2: -2 & 1 (Dus; Geen actieve behandelaar, of ik ben de actieve behandelaar)
|
||||
switch (self) {
|
||||
case -2:
|
||||
sql += " AND COALESCE(o.prs_contactpersoon_key, o.prs_perslid_key) IS NULL";
|
||||
break;
|
||||
case 1:
|
||||
sql += " AND ( cp.prs_perslid_key = " + user_key
|
||||
+ " OR o.prs_perslid_key = " + user_key + ")";
|
||||
break;
|
||||
case 2:
|
||||
sql += " AND ( COALESCE(o.prs_contactpersoon_key, o.prs_perslid_key) IS NULL"
|
||||
+ " OR cp.prs_perslid_key = " + user_key
|
||||
+ " OR o.prs_perslid_key = " + user_key + ")";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Een afmelder (ORDBO2 of EXTORD) mag externe opdrachten zien/afmelden onder bepaalde voorwaarden:
|
||||
// EXTORD: Hij mag opdrachten zien/afmelden van externe bedrijven waar hij contactpersoon van is,
|
||||
@@ -455,8 +454,7 @@ if (!hasParamFlag)
|
||||
sql = "SELECT * FROM (" + sqlA + ") ORDER BY "
|
||||
+ ((grp_sel == "" && listmode == 2)
|
||||
? " naam, mld_opdr_datumbegin"
|
||||
: (listmode == 1 && ora_date1 && ora_date2? " mld_opdr_plandatum," : "") + " actief DESC, halted, einddatum, opdracht")
|
||||
|
||||
: (listmode == 1 && plandatefrom ? " mld_opdr_plandatum," : "") + " actief DESC, halted, einddatum, opdracht");
|
||||
|
||||
function fncolLink(oRs)
|
||||
{
|
||||
@@ -516,7 +514,7 @@ if (!hasParamFlag)
|
||||
+ (actiecode & 4 ? "<span class='ac'>" + I("fa-comment-smile fa-flip-horizontal", { fastyle: "far" }) + " " + L("lcl_mld_actiecodeUITV") + "</span><br>" : "")
|
||||
+ (oRs("plaatsmelding").Value? "" + I("fa-map-marker", { fastyle: "far" }) + " "+safe.html(oRs("plaatsmelding").Value) + "<br>" : "")
|
||||
+ (safeuitv != "" ? safeuitv + "<br>" : "")
|
||||
+ "" + I("fa-clock", { fastyle: "far" }) + " " + toDateTimeString(oRs("mld_opdr_einddatum").Value, false, false, true)
|
||||
+ "" + I("fa-clock", { fastyle: "far" }) + " " + toDateTimeString(oRs("einddatum").Value, false, false, true, true)
|
||||
+ (flagkey ? "<br> <span class='opdrflag"+flagkey+"'>" + I("fa-fclt-flag", { fastyle: "far" }) + "</span> " + L("lcl_opdr_flag" + flagkey) : "")
|
||||
+ "</div>"
|
||||
+ "<div class='listbodytext'>" + safe.html(shorttxt(oRs("mld_opdr_omschrijving").Value, S("rs_mobile_maxchar"))) + "</div>";
|
||||
@@ -527,11 +525,23 @@ if (!hasParamFlag)
|
||||
// Om wat explicieter te zijn in wat we zien specifieke titels per mode
|
||||
var listtitle = L("lcl_mobile_opdrachten");
|
||||
switch (listmode) {
|
||||
case 1: listtitle = L("lcl_mobile_opdrachten1"); break;
|
||||
case 1:
|
||||
if (plandatefrom) {
|
||||
var datefrom_str = toDateString(plandatefrom, true, true).toLowerCase();
|
||||
if (oneday) {
|
||||
listtitle = "Planning van {0}".format(datefrom_str);
|
||||
} else {
|
||||
listtitle = "Planning van {0} t/m {1}".format(datefrom_str, toDateString(plandateto, true, true).toLowerCase());
|
||||
}
|
||||
} else {
|
||||
listtitle = L("lcl_mobile_opdrachten1");
|
||||
}
|
||||
break;
|
||||
case 2: listtitle = L("lcl_mobile_opdrachten2") + " " + CurrentPositionMinus1; break; /* is niveau hoger */
|
||||
case 3: listtitle = L("lcl_mobile_opdrachten3") + " " + CurrentPositionMinus1; break; /* is niveau hoger */
|
||||
case 4: listtitle = L("lcl_mobile_opdrachten") + " " + L("lcl_mobile_objbijmelding") + " " + meldingNr; break;
|
||||
}
|
||||
|
||||
var addaction = (addAllowed? "../pda/order.asp?mld_key=" + mld_key : "");
|
||||
|
||||
PAGE_START({datacache:false});
|
||||
|
||||
@@ -89,6 +89,12 @@ var zoom = getQParamFloat("zoom", 2);
|
||||
var geb_key = getQParamInt("geb_key", -1);
|
||||
var floor_key = getQParamInt("floor_key", -1);
|
||||
var werkpl_key = getQParamInt("wsp_key", -1);
|
||||
var local_tz = S("fac_server_timezone");
|
||||
if (geb_key > -1) {
|
||||
local_tz = res.getTimezoneBy(geb_key, "G");
|
||||
} else if (floor_key > -1) {
|
||||
local_tz = res.getTimezoneBy(floor_key, "V");
|
||||
}
|
||||
|
||||
var res_deel_key = getQParamInt("res_deel_key", -1); // unused. Zou ooit direct naar dag+intervalselectie kunnen
|
||||
var thema_key = getQParamInt("thema_key", 12);
|
||||
@@ -96,8 +102,10 @@ var themaI_key = getQParamInt("themaI_key", 13);
|
||||
var bordlabel_key= getQParamInt("bordlabel_key", 13);
|
||||
|
||||
var daylimit = getQParamInt("daylimit", 12); // na daylimit kun je voor de eerste dag niet meer reserveren, default 12:00, werkt niet icm offset
|
||||
var afternoon = new Date().getHours() >= daylimit;
|
||||
var dateoffset = getQParamInt("offset", afternoon?1:0); // 12:00 default morgen ipv vandaag
|
||||
var local_now = convertToLocalTime(new Date(), local_tz);
|
||||
var afternoon = local_now.getHours() >= daylimit;
|
||||
var dateoffset = getQParamInt("offset", afternoon ? 1 : 0);
|
||||
|
||||
var datelimit = getQParamInt("limit", 7); // aantal te kiezen dagen tov offset
|
||||
var floorselect = getQParamInt("floorselect", 0); // na gebouw ook de verdiepingen laten kiezen
|
||||
var mapselect = getQParamInt("mapselect", 1) == 1; // werkplek via plattegrond kiezen
|
||||
|
||||
@@ -1877,6 +1877,7 @@ res = {
|
||||
+ " AND rdp.res_ins_discipline_key = rg.res_discipline_key "
|
||||
+ " AND (fr.res_ruimte_startdatum IS NULL OR fr.res_ruimte_startdatum <= " + ora_date2 + ")"
|
||||
+ " AND (fr.res_ruimte_vervaldatum IS NULL OR fr.res_ruimte_vervaldatum > " + ora_date1 + ")"
|
||||
+ " AND COALESCE(l.alg_locatie_timezone, " + safe.quoted_sql(S("fac_server_timezone")) + ") = " + safe.quoted_sql(S("fac_server_timezone"))
|
||||
+ sql_loc_where
|
||||
+ (params.max_rooms ? " AND ROWNUM <= " + params.max_rooms : "");
|
||||
|
||||
|
||||
@@ -522,8 +522,8 @@ if (master_act_key > 0) // we zouden kunnen controleren of master_key wijst naar
|
||||
|
||||
if (!rsv_ruimte_externnr || (S("msgraph_sync_level") & 6)) // Begin- en enddatum van reserveringen die extern (via Exchange) zijn gemaakt niet aanpassen, tenzij ReadWrite koppeling
|
||||
{
|
||||
fields.push({ dbs: "res_rsv_ruimte_van", typ: "datetime", val: server_date_from, track: (restype=="CV"? L("lcl_res_starttime_CV") : L("lcl_res_starttime")) });
|
||||
fields.push({ dbs: "res_rsv_ruimte_tot", typ: "datetime", val: server_date_to, track: (restype=="CV"? L("lcl_res_endtime_CV") : L("lcl_res_endtime")) });
|
||||
fields.push({ dbs: "res_rsv_ruimte_van", typ: "datetime", val: server_date_from, track: (restype=="CV"? L("lcl_res_starttime_CV") : L("lcl_res_starttime")), track_in_tz: local_tz });
|
||||
fields.push({ dbs: "res_rsv_ruimte_tot", typ: "datetime", val: server_date_to, track: (restype=="CV"? L("lcl_res_endtime_CV") : L("lcl_res_endtime")), track_in_tz: local_tz });
|
||||
fields.push({ dbs: "res_rsv_ruimte_omschrijving", typ: "varchar", frm: "descript", track: L("lcl_descr") });
|
||||
fields.push({ dbs: "res_rsv_ruimte_opmerking", typ: "varchar", frm: "opmerk", track: L("lcl_remark"), len: 2000 });
|
||||
}
|
||||
|
||||
@@ -952,8 +952,9 @@ function make_plan_obj(disc_key, res_van, res_tot, params)
|
||||
{
|
||||
return $("div.grid > div.body div.labelgrid[data-disc=<%=disc_key%>].res_nofit").filter(":" + (visible ? "visible":"hidden")).each(function() {
|
||||
var $this = $(this);
|
||||
var show = $this.is(":visible") == false;
|
||||
$("div[data-row=" + $this.attr("data-row") + "]").toggle(show);
|
||||
var show = $this.is(":visible") == false;
|
||||
var rowNr = $this.data("row");
|
||||
$this.closest(".grid").find("div[data-row=" + rowNr + "]").toggle(show);
|
||||
});
|
||||
}
|
||||
toggleNoFit<%=disc_key%>(true);
|
||||
|
||||
@@ -117,8 +117,15 @@ for (var func in xfunc._funcodes) {
|
||||
}
|
||||
}
|
||||
|
||||
var geb_key = getQParamInt("geb_key", -1);
|
||||
var floor_key = getQParamInt("floor_key", -1);
|
||||
var geb_key = getQParamInt("geb_key", -1);
|
||||
var floor_key = getQParamInt("floor_key", -1);
|
||||
var local_tz = S("fac_server_timezone");
|
||||
if (geb_key > -1) {
|
||||
local_tz = res.getTimezoneBy(geb_key, "G");
|
||||
} else if (floor_key > -1) {
|
||||
local_tz = res.getTimezoneBy(floor_key, "V");
|
||||
}
|
||||
|
||||
var avail_flrs = getQParamIntArray("avail_flrs", []);
|
||||
var res_deel_key = getQParamInt("wsp_key", -1);
|
||||
var showAll = getQParamInt("showall", 0) == 1;
|
||||
@@ -126,8 +133,10 @@ var showAll = getQParamInt("showall", 0) == 1;
|
||||
var fac_usrrap_key = getQParamInt("usrrap_key", -1); // wordt doorgegeven naar het infobord
|
||||
|
||||
var daylimit = getQParamInt("daylimit", 12); // na daylimit kun je voor de eerste dag niet meer reserveren, default 12:00, werkt niet icm offset
|
||||
var afternoon = new Date().getHours() >= daylimit;
|
||||
var dateoffset = getQParamInt("offset", afternoon?1:0); // TODO localized afternoon gebruiken om offset te berekenen ..
|
||||
var local_now = convertToLocalTime(new Date(), local_tz);
|
||||
var afternoon = local_now.getHours() >= daylimit;
|
||||
var dateoffset = getQParamInt("offset", afternoon ? 1 : 0);
|
||||
|
||||
var datelimit = getQParamInt("limit", 7); // aantal te kiezen dagen tov offset
|
||||
var selectmode = getQParamInt("selectmode", 0); // kiezen van het item: 0=automatisch bepalen (tekening anders lijst), 1=lijst, 2=2dtekening indien aanwezig, 3=3dtekening indien aanwezig
|
||||
var fotos = getQParamInt("fotos", 1); // for selectmode 1: show photo or not
|
||||
@@ -517,21 +526,14 @@ transitParam2 += "&startpage=" + startpage;
|
||||
<div id='accordion'>
|
||||
<%
|
||||
sql = "SELECT g.alg_gebouw_werkdagen, "
|
||||
+ " g.alg_gebouw_naam, "
|
||||
+ " l.alg_locatie_timezone "
|
||||
+ " g.alg_gebouw_naam"
|
||||
+ " FROM alg_gebouw g "
|
||||
+ " JOIN alg_locatie l ON l.alg_locatie_key = g.alg_locatie_key "
|
||||
+ " WHERE g.alg_gebouw_key = " + geb_key;
|
||||
oRs = Oracle.Execute(sql)
|
||||
var werkdagen = oRs("alg_gebouw_werkdagen").Value;
|
||||
var gebouw_naam = oRs("alg_gebouw_naam").Value; // theoretisch kunnen dit er meerdere zijn, dan nog aanpassen
|
||||
var local_tz = oRs("alg_locatie_timezone").Value || S("fac_server_timezone");
|
||||
oRs.close();
|
||||
|
||||
var local_now = convertToLocalTime(new Date(), local_tz);
|
||||
afternoon = local_now.getHours() >= daylimit;
|
||||
dateoffset = getQParamInt("offset", afternoon ? 1 : 0);
|
||||
|
||||
sql = rdpt.dagbezetting_resdelen_in_aanweziggebouw_sql(res_disc_key_arr, res_deel_key, geb_key, dateoffset, datelimit, act_key);
|
||||
|
||||
var oRs = Oracle.Execute(sql)
|
||||
@@ -621,17 +623,6 @@ transitParam2 += "&startpage=" + startpage;
|
||||
// 3. KIES VERDIEPING INDIEN GEWENST EN NOG NIET BEKEND
|
||||
if (resdate && floorselect == 1 && geb_key > -1 && floor_key == -1)
|
||||
{
|
||||
sql = "SELECT l.alg_locatie_timezone "
|
||||
+ " FROM alg_gebouw g "
|
||||
+ " JOIN alg_locatie l ON l.alg_locatie_key = g.alg_locatie_key "
|
||||
+ " WHERE g.alg_gebouw_key = " + geb_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
var local_tz = oRs("alg_locatie_timezone").Value || S("fac_server_timezone");
|
||||
oRs.close();
|
||||
|
||||
var local_now = convertToLocalTime(new Date(), local_tz);
|
||||
afternoon = local_now.getHours() >= daylimit;
|
||||
dateoffset = getQParamInt("offset", afternoon ? 1 : 0);
|
||||
%>
|
||||
<div id='accordion'>
|
||||
<%
|
||||
|
||||
@@ -661,12 +661,10 @@ rdpt = {
|
||||
// Als act_key een subreservering is wordt zelfs gekeken of er op date een master-reservering is
|
||||
dagcapaciteitCalc: function _dagcapaciteitCalc(date, dagcapaciteit, act_key, res_disc_key_arr, geb_key)
|
||||
{
|
||||
var begintijd = new Date(0, 0, 0, 23, 59, 0);
|
||||
var eindtijd = new Date(0, 0, 0, 0, 0, 0);
|
||||
// var begintijd = new Date();
|
||||
// begintijd.setHours(23, 59);
|
||||
// var eindtijd = new Date();
|
||||
// eindtijd.setHours(0, 0);
|
||||
var begintijd = new Date();
|
||||
begintijd.setHours(23, 59, 0);
|
||||
var eindtijd = new Date();
|
||||
eindtijd.setHours(0, 0, 0);
|
||||
var btBegintijd;
|
||||
var btEindtijd;
|
||||
var btArr;
|
||||
|
||||
@@ -106,16 +106,23 @@ for (var func in xfunc._funcodes) {
|
||||
}
|
||||
}
|
||||
|
||||
var disc_keys = getQParamIntArray("discs", []);
|
||||
var geb_key = getQParamInt("geb_key", -1);
|
||||
var floor_key = getQParamInt("floor_key", -1);
|
||||
var disc_keys = getQParamIntArray("discs", []);
|
||||
var geb_key = getQParamInt("geb_key", -1);
|
||||
var floor_key = getQParamInt("floor_key", -1);
|
||||
var local_tz = S("fac_server_timezone");
|
||||
if (geb_key > -1) {
|
||||
local_tz = res.getTimezoneBy(geb_key, "G");
|
||||
} else if (floor_key > -1) {
|
||||
local_tz = res.getTimezoneBy(floor_key, "V");
|
||||
}
|
||||
|
||||
var fac_usrrap_key = getQParamInt("usrrap_key", -1); // wordt doorgegeven naar het infobord
|
||||
|
||||
var startpage = getQParam("startpage", "");
|
||||
var daylimit = getQParamInt("daylimit", 17); // na daylimit kun je voor de eerste dag niet meer reserveren, default 12:00, werkt niet icm offset
|
||||
var afternoon = new Date().getHours() >= daylimit;
|
||||
var dateoffset = getQParamInt("offset", afternoon?1:0); //
|
||||
var local_now = convertToLocalTime(new Date(), local_tz);
|
||||
var afternoon = local_now.getHours() >= daylimit;
|
||||
var dateoffset = getQParamInt("offset", afternoon ? 1 : 0);
|
||||
var datelimit = getQParamInt("limit", 7); // aantal te kiezen dagen tov offset
|
||||
var selectmode = getQParamInt("selectmode", 0); // kiezen van het item: 0=automatisch bepalen (tekening anders lijst), 1=lijst, 2=2dtekening indien aanwezig, 3=3dtekening indien aanwezig
|
||||
var fotos = getQParamInt("fotos", 1); // for selectmode 1: show photo or not
|
||||
|
||||
@@ -1568,6 +1568,14 @@ function toDateString(jsDate, arg2 /* noDay */, arg3 /* pretty */, arg4 /* isLoc
|
||||
if (!params.isLocal)
|
||||
jsDate = convertToLocalTime(jsDate);
|
||||
|
||||
if (
|
||||
params.pretty &&
|
||||
!params.isLocal && // Bij params.isLocal bepalen we op de plek zelf of we data 'pretty' willen tonen
|
||||
Session("time_zone") != S("fac_server_timezone") // Geen pretty-dagnamen als we data uit een andere tijdszone weergeven
|
||||
) {
|
||||
params.pretty = false;
|
||||
}
|
||||
|
||||
// Ik wil graag, alleen als parameter friendly?, voor de datums gisteren, vandaag en morgen de tekst Gisteren, Vandaag en Morgen opleveren
|
||||
// Voor lijsten/sortering is dat vaak niet handig, maar soms is het veel begrijpelijker. Als de mogelijkheid er is, kunnen we
|
||||
// geleidelijk de toepassing uitbreiden. In Lopende zaken op de portal om mee te beginnen.
|
||||
|
||||
@@ -2462,8 +2462,8 @@ div.wbackground {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 5;
|
||||
line-clamp: 5;
|
||||
-webkit-line-clamp: 6;
|
||||
line-clamp: 6;
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
}
|
||||
@@ -2492,6 +2492,9 @@ div.wbackground {
|
||||
right: -4rem;
|
||||
}
|
||||
}
|
||||
.fclt-news-content {
|
||||
line-height: calc(1rem + 1px);
|
||||
}
|
||||
#mynewscontainer {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
Context: Vanuit ELK asp bestand
|
||||
*/
|
||||
|
||||
var FCLTVersion="2025.3RC3";
|
||||
var FCLTVersion="2025.3";
|
||||
var FCLTMinDatabaseSchema="52"; // Alleen de cijfers
|
||||
|
||||
var custpath = rooturl + "/cust/" + customerId; // path to customer files
|
||||
|
||||
@@ -19,6 +19,7 @@ var autfunction_arr = getQParamArray("autfunction", []); // Check of user recht
|
||||
var disctype = getQParamInt("disctype", -1); // Vakgroeptype.
|
||||
var disc_key_arr = getQParamIntArray("disc_key_str", []); // Vakgroep Array.
|
||||
var offerte = getQParamInt("offerte", -1);
|
||||
var selectjustone = getQParamInt("selectjustone", 0) == 1;
|
||||
|
||||
var discsql_aut = "SELECT ins_discipline_key"
|
||||
+ " FROM fac_v_webgebruiker g"
|
||||
@@ -51,7 +52,8 @@ var discsql = "SELECT bd.ins_discipline_key"
|
||||
FCLTselectorOptions(discsql,
|
||||
{ initKey: disc_key_arr.join(","),
|
||||
onChange: 'updateSrtGroup("' + autfunction_arr.join(",") + '");',
|
||||
emptyOption: (disc_key_arr.length == 0 ? L("lcl_search_generic") : null) // Als een disc_key_arr is meegegeven dan geen lege optie
|
||||
emptyOption: (disc_key_arr.length == 0 ? L("lcl_search_generic") : null), // Als een disc_key_arr is meegegeven dan geen lege optie
|
||||
selectjustone: selectjustone? true : false
|
||||
});
|
||||
%>
|
||||
mo
|
||||
|
||||
@@ -20,6 +20,7 @@ var module = getQParam("module", ""); // Module die de ins_srtgroep-en opvraagt
|
||||
var multi = (getQParamInt("multi", 0) == 1);
|
||||
var size = getQParamInt("size", 4);
|
||||
var emptyOption = getQParam("emptyOption", null);
|
||||
var selectjustone = getQParamInt("selectjustone", 0) == 1;
|
||||
var selectfirstone = (getQParamInt("selectfirstone", 0) == 1);
|
||||
var onChange = getQParam("onChange", "");
|
||||
var required = (getQParamInt("required", 0) == 1);
|
||||
@@ -56,10 +57,12 @@ var params = { initKey: srtgroup_arr.join(","),
|
||||
|
||||
if (emptyOption != null)
|
||||
params.emptyOption = emptyOption;
|
||||
if (selectjustone)
|
||||
params.selectjustone = selectjustone;
|
||||
if (selectfirstone)
|
||||
params.selectfirstone = selectfirstone;
|
||||
|
||||
FCLTselectorOptions(sql,
|
||||
params);
|
||||
%>
|
||||
<% ASPPAGE_END(); %>
|
||||
<% ASPPAGE_END(); %>
|
||||
|
||||
@@ -23,6 +23,7 @@ var module = getQParam("module", ""); // Module die de ins_srtgroep-en opvraagt
|
||||
var multi = (getQParamInt("multi", 0) == 1);
|
||||
var size = getQParamInt("size", 4);
|
||||
var emptyOption = getQParam("emptyOption", null);
|
||||
var selectjustone = getQParamInt("selectjustone", 0) == 1;
|
||||
var selectfirstone = (getQParamInt("selectfirstone", 0) == 1);
|
||||
var extraParamValue = getQParam("extraParamValue", "");
|
||||
var required = (getQParamInt("required", 0) == 1);
|
||||
@@ -92,6 +93,8 @@ if (extraParamValue != "")
|
||||
params.extraParamValue = extraParamValue;
|
||||
if (emptyOption != null)
|
||||
params.emptyOption = emptyOption;
|
||||
if (selectjustone)
|
||||
params.selectjustone = selectjustone;
|
||||
if (selectfirstone)
|
||||
params.selectfirstone = selectfirstone;
|
||||
|
||||
|
||||
@@ -205,24 +205,33 @@ function buildTrackText(typ, oldjsval, newjsval, params)
|
||||
}
|
||||
else
|
||||
{
|
||||
var stringifyParams = {};
|
||||
if (typ == "datetime" || typ == "date" || typ == "time") {
|
||||
if (params.track_in_tz) {
|
||||
oldjsval = convertToLocalTime(oldjsval, params.track_in_tz);
|
||||
newjsval = convertToLocalTime(newjsval, params.track_in_tz);
|
||||
stringifyParams.isLocal = true;
|
||||
}
|
||||
}
|
||||
|
||||
switch (typ)
|
||||
{
|
||||
case "datetime":
|
||||
{
|
||||
var oldtxt = toDateTimeString(oldjsval);
|
||||
var newtxt = toDateTimeString(newjsval);
|
||||
var oldtxt = toDateTimeString(oldjsval, stringifyParams);
|
||||
var newtxt = toDateTimeString(newjsval, stringifyParams);
|
||||
break;
|
||||
}
|
||||
case "date":
|
||||
{
|
||||
var oldtxt = toDateString(oldjsval);
|
||||
var newtxt = toDateString(newjsval);
|
||||
var oldtxt = toDateString(oldjsval, stringifyParams);
|
||||
var newtxt = toDateString(newjsval, stringifyParams);
|
||||
break;
|
||||
}
|
||||
case "time":
|
||||
{
|
||||
var oldtxt = toTimeString(oldjsval);
|
||||
var newtxt = toTimeString(newjsval);
|
||||
var oldtxt = toTimeString(oldjsval, stringifyParams);
|
||||
var newtxt = toTimeString(newjsval, stringifyParams);
|
||||
break;
|
||||
}
|
||||
case "key": // hash foreign moet ook gedefinieerd zijn
|
||||
@@ -525,10 +534,14 @@ function buildTrackingUpdate(tabel, where, xfields, params)
|
||||
var lbl = tupel.field.track;
|
||||
// if (params.dialect_key)
|
||||
// lbl = lcl.x(tupel.field.track, params.dialect_key);
|
||||
var trackParams = { foreign: tupel.field.foreign, oldjsvals: oldjsvals };
|
||||
if ("track_in_tz" in tupel.field) {
|
||||
trackParams.track_in_tz = tupel.field.track_in_tz;
|
||||
}
|
||||
if (tupel.field.buildTrackText)
|
||||
var tracktxt = tupel.field.buildTrackText(tupel.field.typ, oldjsval, tupel.jsval, { foreign: tupel.field.foreign, oldjsvals: oldjsvals } );
|
||||
var tracktxt = tupel.field.buildTrackText(tupel.field.typ, oldjsval, tupel.jsval, trackParams);
|
||||
else
|
||||
var tracktxt = lbl + ": " + buildTrackText(tupel.field.typ, oldjsval, tupel.jsval, { foreign: tupel.field.foreign, oldjsvals: oldjsvals } );
|
||||
var tracktxt = lbl + ": " + buildTrackText(tupel.field.typ, oldjsval, tupel.jsval, trackParams);
|
||||
trackarray.push( (params.includeName ? params.includeName + "; " : "") + tracktxt);
|
||||
}
|
||||
oldjsvals[tupel.field.dbs] = oldjsval;
|
||||
|
||||
Reference in New Issue
Block a user