145 lines
4.5 KiB
SQL
145 lines
4.5 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Beaufort-koppeling loopt niet meer en men kiest er voor dat men personenbeheer handmatig gaat doen.
|
|
-- Alle pedagogische medewerkers die in de beaufort-koppeling meekwamen, wil men uit personenbeheer hebben (inactieve gebruikers),
|
|
-- echter men wil deze PM-ers wel via een eigen tabel bijhouden zodat deze bij meldingen en bestellingen van teamaccounts nog gekozen kunnen worden
|
|
-- Met dit script zet ik de aanvrager uit de domein-view op prs_perslid over naar de juiste waarde in de eigen tabel
|
|
|
|
--
|
|
DEFINE thisfile = 'GOKO#80714.SQL'
|
|
DEFINE dbuser = '^GOKO'
|
|
|
|
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 ------
|
|
|
|
DECLARE
|
|
v_errormsg VARCHAR (200);
|
|
v_errorhint VARCHAR (200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (150);
|
|
currentversion fac_module.fac_module_version%TYPE;
|
|
v_aanduiding VARCHAR (100);
|
|
v_count NUMBER;
|
|
|
|
CURSOR m -- meldingen
|
|
IS
|
|
SELECT m.mld_melding_key, km.mld_kenmerkmelding_key, km.mld_kenmerkmelding_waarde waarde_oud,
|
|
(SELECT ud.fac_usrdata_key FROM fac_usrdata ud WHERE ud.fac_usrtab_key = 181
|
|
AND ud.fac_usrdata_code = km.mld_kenmerkmelding_waarde
|
|
) waarde_nieuw
|
|
FROM mld_kenmerkmelding km, mld_melding m
|
|
WHERE m.mld_melding_key = km.mld_melding_key
|
|
AND km.mld_kenmerk_key IN (2, 44, 101) ;
|
|
|
|
CURSOR b -- bestellingen
|
|
IS
|
|
SELECT b.bes_bestelling_key, km.bes_kenmerkbestell_key, km.bes_kenmerkbestell_waarde waarde_oud,
|
|
(SELECT ud.fac_usrdata_key FROM fac_usrdata ud WHERE ud.fac_usrtab_key = 181
|
|
AND ud.fac_usrdata_code = km.bes_kenmerkbestell_waarde
|
|
) waarde_nieuw
|
|
FROM bes_kenmerkbestell km, bes_bestelling b, bes_kenmerk k
|
|
WHERE b.bes_bestelling_key = km.bes_bestelling_key
|
|
AND km.bes_kenmerk_key = k.bes_kenmerk_key
|
|
AND k.bes_srtkenmerk_key = 3 ;
|
|
|
|
|
|
BEGIN
|
|
|
|
FOR rec IN m
|
|
LOOP
|
|
BEGIN
|
|
|
|
|
|
v_errorhint := 'Nieuwe waarde zetten in kenmerkwaarde: ' || to_char(rec.mld_kenmerkmelding_key);
|
|
|
|
IF rec.waarde_nieuw IS NOT NULL AND rec.waarde_oud <> rec.waarde_nieuw
|
|
THEN
|
|
|
|
UPDATE mld_kenmerkmelding km
|
|
SET km.mld_kenmerkmelding_waarde = rec.waarde_nieuw
|
|
WHERE km.mld_kenmerkmelding_key = rec.mld_kenmerkmelding_key ;
|
|
|
|
END IF;
|
|
|
|
v_errorhint := 'Nieuwe waarde onbekend - niet gevonden - dan maar verwijderen: ' || to_char(rec.mld_kenmerkmelding_key);
|
|
|
|
IF rec.waarde_nieuw IS NULL
|
|
THEN
|
|
|
|
DELETE
|
|
FROM mld_kenmerkmelding km
|
|
WHERE km.mld_kenmerkmelding_key = rec.mld_kenmerkmelding_key ;
|
|
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN b
|
|
LOOP
|
|
BEGIN
|
|
|
|
v_errorhint := 'Nieuwe waarde zetten in kenmerkwaarde: ' || to_char(rec.bes_kenmerkbestell_key);
|
|
|
|
IF rec.waarde_nieuw IS NOT NULL AND rec.waarde_oud <> rec.waarde_nieuw
|
|
THEN
|
|
|
|
UPDATE bes_kenmerkbestell km
|
|
SET km.bes_kenmerkbestell_waarde = rec.waarde_nieuw
|
|
WHERE km.bes_kenmerkbestell_key = rec.bes_kenmerkbestell_key ;
|
|
|
|
END IF;
|
|
|
|
IF rec.waarde_nieuw IS NULL
|
|
THEN
|
|
|
|
DELETE
|
|
FROM bes_kenmerkbestell km
|
|
WHERE km.bes_kenmerkbestell_key = rec.bes_kenmerkbestell_key ;
|
|
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
|
|
-- Tot slot kunnen in de fac_usrdate-tabel alle CODES overschreven worden door VOLGNUMMER en kan het volgnummer-kolom leeggemaakt worden
|
|
|
|
UPDATE fac_usrdata ud
|
|
SET ud.fac_usrdata_code = ud.fac_usrdata_volgnr
|
|
WHERE ud.fac_usrtab_key = 181 ;
|
|
|
|
-- En kan volgnummer leeggemaakt worden..
|
|
UPDATE fac_usrdata ud
|
|
SET ud.fac_usrdata_volgnr = ''
|
|
WHERE ud.fac_usrtab_key = 181 ;
|
|
|
|
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
|