UWVA#29778 Bezoekersstromen 1e versie

svn path=/Database/trunk/; revision=22368
This commit is contained in:
Jos Groot Lipman
2014-08-19 13:41:50 +00:00
parent 43c66e9084
commit 37819830dd
7 changed files with 75 additions and 6 deletions

View File

@@ -6,7 +6,12 @@
*/
CREATE OR REPLACE PACKAGE res AS
FUNCTION res_copy_deelres (prsv_ruimte_key IN NUMBER, newdate IN DATE, puserkey NUMBER) RETURN NUMBER;
FUNCTION res_copy_res (pres_key IN NUMBER, newdate IN DATE, puserkey NUMBER, pmetbez NUMBER DEFAULT 0) RETURN NUMBER;
FUNCTION res_copy_deelres (prsv_ruimte_key IN NUMBER,
newdate IN DATE,
puserkey NUMBER,
pmetbez NUMBER DEFAULT 1,
newreskey NUMBER DEFAULT NULL) RETURN NUMBER;
PROCEDURE res_sync_deelres (prsv_ruimte_key_from IN NUMBER, prsv_ruimte_key_to IN NUMBER, flags IN NUMBER, pres_copy_to_bez IN NUMBER);
PROCEDURE set_ruimte_dirty (prsv_ruimte_key IN NUMBER);
PROCEDURE set_ruimtes_clean (checkdate IN DATE);
@@ -32,7 +37,32 @@ END res;
CREATE OR REPLACE PACKAGE BODY res
AS
FUNCTION res_copy_deelres (prsv_ruimte_key IN NUMBER, newdate IN DATE, puserkey NUMBER) RETURN NUMBER
FUNCTION res_copy_res (pres_key IN NUMBER, newdate IN DATE, puserkey NUMBER, pmetbez NUMBER DEFAULT 0) RETURN NUMBER
AS
nextkey res_reservering.res_reservering_key%TYPE;
rsv_key res_rsv_ruimte.res_rsv_ruimte_key%TYPE;
BEGIN
SELECT res_s_res_reservering_key.NEXTVAL INTO nextkey FROM DUAL;
INSERT INTO res_reservering (res_reservering_key, res_reservering_ispool)
SELECT nextkey, res_reservering_ispool
FROM res_reservering
WHERE res_reservering_key = pres_key;
FOR prsv_ruimte
IN (SELECT res_rsv_ruimte_key
FROM res_v_aanwezigrsv_ruimte
WHERE res_reservering_key = pres_key)
LOOP
rsv_key := res.res_copy_deelres (prsv_ruimte.res_rsv_ruimte_key, newdate, puserkey, pmetbez, nextkey);
END LOOP;
RETURN nextkey;
END;
FUNCTION res_copy_deelres (prsv_ruimte_key IN NUMBER,
newdate IN DATE,
puserkey NUMBER,
pmetbez NUMBER DEFAULT 1,
newreskey NUMBER DEFAULT NULL) RETURN NUMBER
AS
nextvolg res_rsv_ruimte.res_rsv_ruimte_volgnr%TYPE;
nextkey res_rsv_ruimte.res_rsv_ruimte_key%TYPE;
@@ -54,7 +84,7 @@ AS
res_rsv_ruimte_bezoekers, res_rsv_ruimte_cvab_mode, res_rsv_ruimte_telefoon
)
SELECT nextkey,
res_reservering_key,
COALESCE(newreskey, res_reservering_key),
nextvolg,
res_rsv_ruimte_omschrijving,
res_rsv_ruimte_opmerking,
@@ -76,7 +106,7 @@ AS
WHERE res_rsv_ruimte_key = prsv_ruimte_key;
-- Now make the copy have the same childeren as the original
-- (all main data is already uptodate)
res.res_sync_deelres (prsv_ruimte_key, nextkey, 128 + 256 + 512 + 1024, 0);
res.res_sync_deelres (prsv_ruimte_key, nextkey, 128 + 256 + pmetbez*512 + 1024, 0);
-- Het hekje voorkomt individuele notificaties
fac.trackaction ('#RESNEW', nextkey, puserkey, NULL, NULL);
RETURN nextkey;