YFTH#68772 -- Werkplekken Fat Client A en B weer gewoon reserveerbaar maken

svn path=/Customer/trunk/; revision=53165
This commit is contained in:
Arthur Egberink
2021-09-27 17:54:00 +00:00
parent 5539d9e166
commit 184485f700

View File

@@ -19,157 +19,12 @@ SET DEFINE OFF
CREATE OR REPLACE PACKAGE YFTH
AS
PROCEDURE mark_fat_client_workplace;
PROCEDURE zet_opdracht_op_verwerkt;
END;
/
CREATE OR REPLACE PACKAGE BODY YFTH
AS
PROCEDURE mark_fat_client_workplace
AS
CURSOR c_ins (v_date IN DATE, v_zone IN VARCHAR2)
IS
SELECT rd.res_deel_key, d.ins_alg_ruimte_key
FROM res_deel rd,
ins_deel d,
ins_kenmerkdeel kd,
fac_usrdata ud
WHERE rd.res_ins_deel_key = d.ins_deel_key
AND d.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = 41
AND fac.safe_to_number (kd.ins_kenmerkdeel_waarde) =
ud.fac_usrdata_key
AND ud.fac_usrdata_code = v_zone
AND NOT EXISTS
(SELECT 1
FROM res_rsv_ruimte rrr, res_rsv_deel rrd
WHERE rrr.res_rsv_ruimte_key =
rrd.res_rsv_ruimte_key
AND rrr.res_activiteit_key = 30 -- reservering werkplekken
AND TRUNC(rrr.res_rsv_ruimte_van) = v_date
AND rrr.res_rsv_ruimte_contact_key = 3 -- Facilitor
AND rrd.res_deel_key = rd.res_deel_key);
CURSOR c_del (v_date IN DATE, v_zone IN VARCHAR2)
IS
SELECT rrr.res_rsv_ruimte_key,
rrd.res_rsv_deel_key,
rrr.res_reservering_key
FROM res_deel rd,
ins_deel d,
(SELECT ins_deel_key, ud.fac_usrdata_code zone
FROM ins_kenmerkdeel kd, fac_usrdata ud
WHERE kd.ins_kenmerk_key = 41
AND fac.safe_to_number (kd.ins_kenmerkdeel_waarde) =
ud.fac_usrdata_key
AND ud.fac_usrdata_code = v_zone) z,
res_rsv_ruimte rrr,
res_rsv_deel rrd
WHERE rd.res_ins_deel_key = d.ins_deel_key
AND d.ins_deel_key = z.ins_deel_key(+)
AND (z.zone IS NULL)
AND rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
AND rrr.res_activiteit_key = 30 -- reservering werkplekken
AND TRUNC (rrr.res_rsv_ruimte_van) = v_date
AND rrr.res_rsv_ruimte_contact_key = 3 -- Facilitor
AND rrd.res_deel_key = rd.res_deel_key;
v_reservering_key NUMBER;
v_rsv_ruimte_key NUMBER;
v_date DATE;
v_day NUMBER;
v_week NUMBER;
v_zone VARCHAR2 (1);
v_van DATE;
v_tot DATE;
BEGIN
FOR i IN 0 .. 30
LOOP
v_date := TRUNC (SYSDATE + i);
v_day := TO_CHAR (v_date, 'D');
v_week := TO_CHAR (v_date, 'IW');
v_zone := 'A';
v_van :=
TO_DATE (TO_CHAR (v_date, 'yyyy-mm-dd') || ' 08:30',
'yyyy-mm-dd hh24:mi');
v_tot :=
TO_DATE (TO_CHAR (v_date, 'yyyy-mm-dd') || ' 17:30',
'yyyy-mm-dd hh24:mi');
IF MOD (v_week, 2) = 0
THEN
v_zone := 'B';
END IF; -- Op de even week zijn de B zones niet beschikbaar
IF v_day <> 1 AND v_day <> 7 -- zondag en zaterdag
THEN
DBMS_OUTPUT.put_line (i || '-' || v_zone);
-- We gaan eerst de werkplekreserveringen die niet meer voldoen aan de voorwaarde verwijderen
FOR recd IN c_del (v_date, v_zone)
LOOP
UPDATE res_rsv_deel SET res_rsv_deel_verwijder = SYSDATE WHERE res_rsv_deel_key = recd.res_rsv_deel_key;
UPDATE res_rsv_ruimte SET res_rsv_ruimte_verwijder = SYSDATE WHERE res_rsv_ruimte_key = recd.res_rsv_ruimte_key;
UPDATE res_reservering SET res_reservering_verwijder = SYSDATE WHERE res_reservering_key = recd.res_reservering_key;
--DBMS_OUTPUT.put_line (i || '-' || rec.res_deel_key);
END LOOP;
FOR rec IN c_ins (v_date, v_zone)
LOOP
INSERT INTO res_reservering (res_reservering_aanmaak)
VALUES (SYSDATE)
RETURNING res_reservering_key
INTO v_reservering_key;
INSERT INTO res_rsv_ruimte (res_reservering_key,
res_rsv_ruimte_volgnr,
res_rsv_ruimte_omschrijving,
res_rsv_ruimte_contact_key,
res_rsv_ruimte_host_key,
alg_ruimte_key,
res_rsv_ruimte_cvab_mode,
res_activiteit_key,
res_rsv_ruimte_van,
res_rsv_ruimte_tot,
res_status_fo_key)
VALUES (v_reservering_key,
1,
'Niet beschikbaar',
3,
3,
rec.ins_alg_ruimte_key,
2,
30,
v_van,
v_tot,
1)
RETURNING res_rsv_ruimte_key
INTO v_rsv_ruimte_key;
INSERT INTO res_rsv_deel (res_deel_key,
res_rsv_deel_aantal,
res_status_bo_key,
res_rsv_ruimte_key,
res_rsv_deel_van,
res_rsv_deel_tot)
VALUES (rec.res_deel_key,
1,
2,
v_rsv_ruimte_key,
v_van,
v_tot);
--DBMS_OUTPUT.put_line (i || '-' || rec.res_deel_key);
END LOOP;
END IF;
END LOOP;
fac.writelog ('mark_fat_client_workplace', 'I', 'Procedure uitgevoerd: ' || TO_CHAR(SYSDATE, 'dd-mm-yyyy hh24:mi:ss'), '');
COMMIT;
END;
-- zet alle afgeronde opdrachten op verwerkt.
PROCEDURE zet_opdracht_op_verwerkt
@@ -2895,11 +2750,6 @@ AS
CREATE OR REPLACE PROCEDURE yfth_daily
AS
BEGIN
-- Markeer de A en B FAT clients als bezet
-- A FAT clients zijn in de even weken beschikbaar
-- B FAT clients zijn in de onveven weken beschikbaar
YFTH.mark_fat_client_workplace;
YFTH.zet_opdracht_op_verwerkt;
END;
/