DLLG#90075 Rekening houden met reserveringen bij opdrachten, en efficienter de server_timezone ophalen (en gebruiken).

svn path=/Database/trunk/; revision=70489
This commit is contained in:
2025-10-01 12:57:23 +00:00
parent e536ba45c5
commit 89cf1645f2
2 changed files with 48 additions and 58 deletions

View File

@@ -339,24 +339,32 @@ AS
PROCEDURE mydatetochar (p_tag IN VARCHAR2, p_date IN DATE, p_timezone IN VARCHAR2)
AS
v_return VARCHAR2 (1000);
l_timezone VARCHAR2 (20);
v_utc TIMESTAMP;
user_ts TIMESTAMP;
v_localized TIMESTAMP;
v_utc TIMESTAMP;
user_ts TIMESTAMP;
v_server_timezone VARCHAR2 (4000);
BEGIN
IF p_date IS NOT NULL
THEN
createopentag (p_tag);
createxmltagvalue ('datum', TO_CHAR (p_date, 'dd-mm-yyyy'));
createxmltagvalue ('tijd', TO_CHAR (p_date, 'hh24:mi'));
v_server_timezone := fac.getsetting('fac_server_timezone');
-- p_timezone is de tijdszone van p_date, default is dat de servertijd
user_ts := FROM_TZ (CAST (p_date AS TIMESTAMP), COALESCE(p_timezone, fac.getsetting('fac_server_timezone'))) AT TIME ZONE SESSIONTIMEZONE;
createopentag (p_tag);
-- p_date wordt aangeleverd in de tijdszone van de server
-- p_timezone is de tijdszone van p_date (default is dat de servertijd)
-- v_localized is p_date in de tijdszone van p_timezone
v_localized := FROM_TZ (CAST (p_date AS TIMESTAMP), v_server_timezone) AT TIME ZONE COALESCE(p_timezone, v_server_timezone);
createxmltagvalue ('datum', TO_CHAR (v_localized, 'dd-mm-yyyy'));
createxmltagvalue ('tijd', TO_CHAR (v_localized, 'hh24:mi'));
-- user_ts is p_date in de tijdszone van de user-sessie (SESSIONTIMEZONE)
user_ts := FROM_TZ (CAST (p_date AS TIMESTAMP), v_server_timezone) AT TIME ZONE SESSIONTIMEZONE;
createxmltagvalue ('localdatum', TO_CHAR (user_ts, 'dd-mm-yyyy'));
createxmltagvalue ('localtijd', TO_CHAR (user_ts, 'hh24:mi'));
createxmltagvalue ('localdatetime', TO_CHAR (user_ts, 'YYYY-MM-DD') || 'T' || TO_CHAR (user_ts, 'HH24:MI:SS') || TO_CHAR(FROM_TZ(user_ts, SESSIONTIMEZONE), 'TZH:TZM'));
v_utc := SYS_EXTRACT_UTC (FROM_TZ (CAST (p_date AS TIMESTAMP), COALESCE(p_timezone, fac.getsetting('fac_server_timezone'))));
-- v_utc is p_date in UTC
v_utc := SYS_EXTRACT_UTC (FROM_TZ (CAST (p_date AS TIMESTAMP), v_server_timezone));
createxmltagvalue ('utcdatum', TO_CHAR (v_utc, 'YYYYMMDD'));
createxmltagvalue ('utctijd', TO_CHAR (v_utc, 'HH24MISS'));
@@ -8877,27 +8885,18 @@ AS
v_geleverd res_rsv_deel.res_rsv_deel_geleverd%TYPE;
v_externnr res_rsv_deel.res_rsv_deel_externnr%TYPE;
v_externsyncdate res_rsv_deel.res_rsv_deel_externsyncdate%TYPE;
v_server_timezone VARCHAR2(4000);
BEGIN
createopentag ('rsv_deel');
v_server_timezone := fac.getsetting ('fac_server_timezone');
SELECT rd.res_deel_key,
rd.res_rsv_deel_aantal,
rd.res_status_bo_key,
rd.res_rsv_ruimte_key,
(SELECT CAST (
FROM_TZ (CAST (rd.res_rsv_deel_van AS TIMESTAMP),
fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
fac.getsetting ('fac_server_timezone'))
AS DATE)
FROM DUAL) res_rsv_deel_van,
(SELECT CAST (
FROM_TZ (CAST (rd.res_rsv_deel_tot AS TIMESTAMP),
fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
fac.getsetting ('fac_server_timezone'))
AS DATE)
FROM DUAL) res_rsv_deel_tot,
rd.res_rsv_deel_van,
rd.res_rsv_deel_tot,
l.alg_locatie_timezone,
res.getdeelprijs (res_rsv_deel_key),
rd.res_rsv_deel_aanmaak,
@@ -8951,10 +8950,10 @@ AS
, res_status_bo sb
, res_deel rdd
WHERE rd.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND r2a.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND r2a.alg_ruimte_key = r.alg_ruimte_key(+)
AND r.alg_verdieping_key = v.alg_verdieping_key(+)
AND v.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.alg_locatie_key = l.alg_locatie_key(+)
AND rd.res_status_bo_key = sb.res_status_bo_key(+)
AND rd.res_deel_key = rdd.res_deel_key
AND rd.res_rsv_deel_key = p_key;
@@ -9262,6 +9261,7 @@ AS
v_mld_opdr_key res_rsv_ruimte.mld_opdr_key%TYPE;
v_teverzenden res_rsv_ruimte.res_rsv_ruimte_teverzenden%TYPE;
v_verzonden res_rsv_ruimte.res_rsv_ruimte_verzonden%TYPE;
v_server_timezone VARCHAR2(4000);
CURSOR c2d
IS
@@ -9307,23 +9307,13 @@ AS
createopentag ('rsv_ruimte');
END IF;
v_server_timezone := fac.getsetting ('fac_server_timezone');
SELECT rr.res_reservering_key,
rr.res_ruimte_opstel_key,
rr.res_activiteit_key,
(SELECT CAST (
FROM_TZ (CAST (rr.res_rsv_ruimte_van AS TIMESTAMP),
fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
fac.getsetting ('fac_server_timezone'))
AS DATE)
FROM DUAL) res_rsv_ruimte_van,
(SELECT CAST (
FROM_TZ (CAST (rr.res_rsv_ruimte_tot AS TIMESTAMP),
fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
fac.getsetting ('fac_server_timezone'))
AS DATE)
FROM DUAL) res_rsv_ruimte_tot,
rr.res_rsv_ruimte_van,
rr.res_rsv_ruimte_tot,
rr.res_rsv_ruimte_van_actual,
l.alg_locatie_timezone,
rr.res_rsv_ruimte_bezoekers,
@@ -9426,10 +9416,10 @@ AS
WHERE rr.res_status_bo_key = sb.res_status_bo_key(+)
AND rr.res_status_fo_key = sf.res_status_fo_key(+)
AND rr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND r2a.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND r2a.alg_ruimte_key = r.alg_ruimte_key(+)
AND r.alg_verdieping_key = v.alg_verdieping_key(+)
AND v.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.alg_locatie_key = l.alg_locatie_key(+)
AND rr.res_rsv_ruimte_key = p_key;
createxmltagvalue ('key', p_key);

View File

@@ -944,12 +944,12 @@ AS
alg_regio rg
WHERE rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND r2a.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND d.alg_regio_key = rg.alg_regio_key
AND r2a.alg_ruimte_key = r.alg_ruimte_key(+)
AND r.alg_verdieping_key = v.alg_verdieping_key(+)
AND v.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.alg_locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = d.alg_district_key(+)
AND d.alg_regio_key = rg.alg_regio_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
@@ -1262,12 +1262,12 @@ AS
alg_regio rg
WHERE rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND r2a.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND d.alg_regio_key = rg.alg_regio_key
AND r2a.alg_ruimte_key = r.alg_ruimte_key(+)
AND r.alg_verdieping_key = v.alg_verdieping_key(+)
AND v.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.alg_locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = d.alg_district_key(+)
AND d.alg_regio_key = rg.alg_regio_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
AND rrr.res_activiteit_key = ra.res_activiteit_key