NOVA#80968 NOVA0

svn path=/Customer/; revision=66968
This commit is contained in:
Maarten van der Heide
2024-11-09 15:08:12 +00:00
parent f235b2c00b
commit 6a21f2df50

View File

@@ -0,0 +1,215 @@
--
-- $Id$
--
-- Customer specific once-script NOVA#80968-RESVER.sql.
DEFINE thisfile = 'NOVA#80968-RESVER.sql'
DEFINE dbuser = '^NOVA'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
WHENEVER SQLERROR CONTINUE;
PROMPT &fcltcusterr
SET DEFINE OFF
------ payload begin ------
-- NOVA#80968: Verwerken (dichtzetten) alle reserveringen met App<70>l-catering
-- tot 1-11-2024.
-- Tenminste, waarvoor geldt: Niet verwijderd, Definitief en niet
-- dirty!
-- LET OP: Bewust worden alle prijs-velden ongewijzigd gelaten om
-- de geschiedenis(/opstartperikelen) niet te verbloemen!
-- Voorkennis dat in herfstvakantie (wk44) geen App<70>l-catering is
-- geboekt, dus per 2024-11 zouden de App<70>l-kosten in Facilitor
-- 1-op-1 moeten kloppen met de factuur die Nova College ontvangt?
DECLARE
v_errormsg VARCHAR2 (1000);
CURSOR cres
IS
SELECT '[' || TO_CHAR (rra.res_rsv_ruimte_key) || '|' || TO_CHAR (rra.res_rsv_artikel_key) || '] ' aanduiding,
rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_key,
NULL res_rsv_deel_key,
rra.res_status_bo_key,
rra.res_artikel_key,
TO_CHAR (rra.res_rsv_artikel_levering, 'yyyy-mm-dd') datum
FROM res_v_aanwezigrsv_artikel rra
WHERE rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'mm') -- Tot 1-11-2024
AND rra.res_status_bo_key != 6
AND rra.res_rsv_artikel_dirtlevel = 0
AND EXISTS -- Bovenliggende res_rsv_ruimte niet verwijderd, Definitief en niet dirty!
(SELECT 1
FROM res_v_aanwezigrsv_ruimte
WHERE res_status_fo_key = 2 -- Definitief/Of ook Optie?
AND res_rsv_ruimte_dirtlevel = 0
AND res_rsv_ruimte_key = rra.res_rsv_ruimte_key)
AND EXISTS -- Reservering met artikel uit Benque-catalogus
(SELECT 1
FROM res_artikel ra, res_disc_params dp
WHERE ra.res_discipline_key = dp.res_ins_discipline_key
AND dp.prs_bedrijf_key = 3661 -- Benque-relatie
AND ra.res_artikel_key = rra.res_artikel_key)
AND EXISTS -- Reservering doorgezet naar Benque
(SELECT 1
FROM res_kenmerkwaarde kr, res_kenmerk k
WHERE kr.res_kenmerk_key = k.res_kenmerk_key
AND k.res_kenmerk_code = 'BENQ_ID'
AND kr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key)
UNION ALL
SELECT '[' || TO_CHAR (rrd.res_rsv_ruimte_key) || '|' || TO_CHAR (rrd.res_rsv_deel_key) || '] ' aanduiding,
rrd.res_rsv_ruimte_key,
NULL res_rsv_artikel_key,
rrd.res_rsv_deel_key,
rrd.res_status_bo_key,
NULL res_artikel_key,
TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy-mm-dd') datum
FROM res_v_aanwezigrsv_deel rrd
WHERE rrd.res_rsv_deel_tot < TRUNC (SYSDATE, 'mm') -- Tot 1-11-2024
AND rrd.res_status_bo_key != 6
AND rrd.res_rsv_deel_dirtlevel = 0
AND rrd.res_rsv_ruimte_key IS NOT NULL -- Geen parkeerplaatsen bij niet reservering-gebonden afspraken?
AND EXISTS -- Bovenliggende res_rsv_ruimte niet verwijderd, Definitief en niet dirty!
(SELECT 1
FROM res_v_aanwezigrsv_ruimte
WHERE res_status_fo_key = 2 -- Definitief/Of ook Optie?
AND res_rsv_ruimte_dirtlevel = 0
AND res_rsv_ruimte_key = rrd.res_rsv_ruimte_key)
AND EXISTS -- Reservering met artikel uit Benque-catalogus
(SELECT 1
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, res_disc_params dp
WHERE rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = dp.res_ins_discipline_key
AND dp.prs_bedrijf_key = 3661 -- Benque-relatie
AND rra.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key)
AND EXISTS -- Reservering doorgezet naar Benque
(SELECT 1
FROM res_kenmerkwaarde kr, res_kenmerk k
WHERE kr.res_kenmerk_key = k.res_kenmerk_key
AND k.res_kenmerk_code = 'BENQ_ID'
AND kr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key)
UNION ALL
SELECT '[' || TO_CHAR (rrr.res_rsv_ruimte_key) || '] ' aanduiding,
rrr.res_rsv_ruimte_key,
NULL res_rsv_artikel_key,
NULL res_rsv_deel_key,
rrr.res_status_bo_key,
NULL res_artikel_key,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm-dd') datum
FROM res_v_aanwezigrsv_ruimte rrr
WHERE rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE, 'mm') -- Tot 1-11-2024
AND rrr.res_status_bo_key != 6
AND res_status_fo_key = 2 -- Definitief/Of ook Optie?
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND EXISTS -- Reservering met artikel uit Benque-catalogus
(SELECT 1
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, res_disc_params dp
WHERE rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = dp.res_ins_discipline_key
AND dp.prs_bedrijf_key = 3661 -- Benque-relatie
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
AND EXISTS -- Reservering doorgezet naar Benque
(SELECT 1
FROM res_kenmerkwaarde kr, res_kenmerk k
WHERE kr.res_kenmerk_key = k.res_kenmerk_key
AND k.res_kenmerk_code = 'BENQ_ID'
AND kr.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
ORDER BY 2, 3, 4;
BEGIN
FOR rec IN cres
LOOP
BEGIN
IF rec.res_rsv_artikel_key IS NOT NULL
THEN -- Catering-regel
IF rec.res_status_bo_key = 2
THEN
v_errormsg := 'Fout afmelden res_rsv_artikel';
UPDATE res_rsv_artikel
SET res_status_bo_key = 5
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering afgemeld');
END IF;
IF rec.res_status_bo_key != 6
THEN
v_errormsg := 'Fout verwerken res_rsv_artikel';
UPDATE res_rsv_artikel
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-datum)
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
v_errormsg := 'Fout tracken verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering verwerkt');
END IF;
ELSIF rec.res_rsv_deel_key IS NOT NULL
THEN -- Voorziening-regel
IF rec.res_status_bo_key = 2
THEN
v_errormsg := 'Fout afmelden res_rsv_deel';
UPDATE res_rsv_deel
SET res_status_bo_key = 5
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Voorziening(en) afgemeld');
END IF;
IF rec.res_status_bo_key != 6
THEN
v_errormsg := 'Fout verwerken res_rsv_deel';
UPDATE res_rsv_deel
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-datum)
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
v_errormsg := 'Fout tracken verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Voorziening(en) verwerkt');
END IF;
ELSE -- Ruimte-regel
IF rec.res_status_bo_key = 2
THEN
v_errormsg := 'Fout afmelden res_rsv_ruimte';
UPDATE res_rsv_ruimte
SET res_status_bo_key = 5
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
END IF;
IF rec.res_status_bo_key != 6
THEN
v_errormsg := 'Fout verwerken res_rsv_ruimte';
UPDATE res_rsv_ruimte
SET res_status_bo_key = 6 -- AV
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
v_errormsg := 'Fout tracken verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
END IF;
END IF;
END;
END LOOP;
END;
/
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 1); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile