YFTH#68772 -- Werkplekken Fat Client A en B weer gewoon reserveerbaar maken
svn path=/Customer/trunk/; revision=53165
This commit is contained in:
150
YFTH/yfth.sql
150
YFTH/yfth.sql
@@ -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;
|
||||
/
|
||||
|
||||
Reference in New Issue
Block a user