CONN#761
svn path=/Customer/trunk/; revision=13038
This commit is contained in:
602
CONN/conn.sql
602
CONN/conn.sql
@@ -1,7 +1,7 @@
|
||||
-- Script containing customer specific configuration sql statements for CONN: Connexxion
|
||||
-- (c) 2005-2006 Dijkoraad IT bv
|
||||
-- $Revision: 70 $
|
||||
-- $Modtime: 15-09-06 10:54 $
|
||||
-- $Revision: 71 $
|
||||
-- $Modtime: 15-09-06 11:35 $
|
||||
--
|
||||
-- Support: +31 53 4800700
|
||||
|
||||
@@ -5198,4 +5198,602 @@ SELECT 'FB-01'
|
||||
|
||||
commit;
|
||||
|
||||
-- Zaken tbv Perman/Interconnect koppeling (voorheen in aparte bestanden)
|
||||
-- Start perman.sql
|
||||
/* Formatted on 2006/09/15 11:37 (Formatter Plus v4.8.5) */
|
||||
CREATE OR REPLACE PACKAGE perman
|
||||
AS
|
||||
PROCEDURE verwerk (
|
||||
p_ind_toekomstmutatie IN VARCHAR2,
|
||||
p_dvb_personeelsnummer IN VARCHAR2,
|
||||
p_per_naam IN VARCHAR2,
|
||||
p_per_partnernaam IN VARCHAR2,
|
||||
p_per_indnaamsvoegen IN VARCHAR2,
|
||||
p_per_tussenvoegsels IN VARCHAR2,
|
||||
p_per_partussenvoegs IN VARCHAR2,
|
||||
p_per_voorletters IN VARCHAR2,
|
||||
p_per_roepnaam IN VARCHAR2,
|
||||
p_per_username IN VARCHAR2,
|
||||
p_per_titel IN VARCHAR2,
|
||||
p_per_achtervoegsel IN VARCHAR2,
|
||||
p_dvb_datum_in_dienst IN DATE,
|
||||
p_dvb_datum_uit_dienst IN DATE,
|
||||
p_fnc_omschrijving IN VARCHAR2,
|
||||
p_dvb_k_emailzake IN VARCHAR2,
|
||||
p_dvb_divisie IN VARCHAR2,
|
||||
p_dvb_divisie_label IN VARCHAR2,
|
||||
p_dvb_k_regio IN VARCHAR2,
|
||||
p_dvb_k_regio_label IN VARCHAR2,
|
||||
p_dvb_k_regiozoeknaam IN VARCHAR2,
|
||||
p_afd_code IN VARCHAR2,
|
||||
p_afd_omschrijving IN VARCHAR2,
|
||||
p_dvb_k_standplts_label IN VARCHAR2
|
||||
);
|
||||
|
||||
FUNCTION prs_perslid_key (p_dvb_personeelsnummer IN VARCHAR2)
|
||||
RETURN NUMBER;
|
||||
|
||||
FUNCTION prs_srtperslid_key (p_fnc_omschrijving IN VARCHAR2)
|
||||
RETURN NUMBER;
|
||||
|
||||
FUNCTION prs_perslid_verwijder
|
||||
RETURN NUMBER;
|
||||
|
||||
FUNCTION prs_afdeling_key (
|
||||
p_dvb_divisie IN VARCHAR2,
|
||||
p_dvb_divisie_label IN VARCHAR2,
|
||||
p_dvb_k_regiozoeknaam IN VARCHAR2,
|
||||
p_dvb_k_regio_label IN VARCHAR2,
|
||||
p_afd_code IN VARCHAR2,
|
||||
p_afd_omschrijving IN VARCHAR2
|
||||
)
|
||||
RETURN NUMBER;
|
||||
|
||||
FUNCTION prs_afdeling_key_old (p_dvb_personeelsnummer IN VARCHAR2)
|
||||
RETURN NUMBER;
|
||||
END perman;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PACKAGE BODY perman
|
||||
AS
|
||||
PROCEDURE verwerk (
|
||||
p_ind_toekomstmutatie IN VARCHAR2,
|
||||
p_dvb_personeelsnummer IN VARCHAR2,
|
||||
p_per_naam IN VARCHAR2,
|
||||
p_per_partnernaam IN VARCHAR2,
|
||||
p_per_indnaamsvoegen IN VARCHAR2,
|
||||
p_per_tussenvoegsels IN VARCHAR2,
|
||||
p_per_partussenvoegs IN VARCHAR2,
|
||||
p_per_voorletters IN VARCHAR2,
|
||||
p_per_roepnaam IN VARCHAR2,
|
||||
p_per_username IN VARCHAR2,
|
||||
p_per_titel IN VARCHAR2,
|
||||
p_per_achtervoegsel IN VARCHAR2,
|
||||
p_dvb_datum_in_dienst IN DATE,
|
||||
p_dvb_datum_uit_dienst IN DATE,
|
||||
p_fnc_omschrijving IN VARCHAR2,
|
||||
p_dvb_k_emailzake IN VARCHAR2,
|
||||
p_dvb_divisie IN VARCHAR2,
|
||||
p_dvb_divisie_label IN VARCHAR2,
|
||||
p_dvb_k_regio IN VARCHAR2,
|
||||
p_dvb_k_regio_label IN VARCHAR2,
|
||||
p_dvb_k_regiozoeknaam IN VARCHAR2,
|
||||
p_afd_code IN VARCHAR2,
|
||||
p_afd_omschrijving IN VARCHAR2,
|
||||
p_dvb_k_standplts_label IN VARCHAR2
|
||||
)
|
||||
IS
|
||||
v_prs_srtperslid_key prs_srtperslid.prs_srtperslid_key%TYPE;
|
||||
v_prs_afdeling_key prs_afdeling.prs_afdeling_key%TYPE;
|
||||
v_prs_afdeling_key_old prs_afdeling.prs_afdeling_key%TYPE;
|
||||
v_prs_perslid_key prs_perslid.prs_perslid_key%TYPE;
|
||||
v_fac_groep_key fac_groep.fac_groep_key%TYPE;
|
||||
v_prs_perslid_naam prs_perslid.prs_perslid_naam%TYPE;
|
||||
v_prs_perslid_tussenvoegsels prs_perslid.prs_perslid_tussenvoegsel%TYPE;
|
||||
v_prs_perslid_titel prs_perslid.prs_perslid_titel%TYPE := NULL;
|
||||
v_prs_perslid_einddatum prs_perslid.prs_perslid_einddatum%TYPE;
|
||||
v_email_kenmerk_key prs_kenmerk.prs_kenmerk_key%TYPE;
|
||||
v_email_kenmerklink_key prs_kenmerklink.prs_kenmerklink_key%TYPE;
|
||||
v_standplaats_kenmerk_key prs_kenmerk.prs_kenmerk_key%TYPE;
|
||||
v_standplaats_kenmerklink_key prs_kenmerklink.prs_kenmerklink_key%TYPE;
|
||||
v_count NUMBER (10);
|
||||
BEGIN
|
||||
v_prs_srtperslid_key := prs_srtperslid_key (p_fnc_omschrijving);
|
||||
v_prs_afdeling_key :=
|
||||
prs_afdeling_key (p_dvb_divisie,
|
||||
p_dvb_divisie_label,
|
||||
p_dvb_k_regiozoeknaam,
|
||||
p_dvb_k_regio_label,
|
||||
p_afd_code,
|
||||
p_afd_omschrijving
|
||||
);
|
||||
v_prs_perslid_key := prs_perslid_key (p_dvb_personeelsnummer);
|
||||
v_prs_afdeling_key_old := prs_afdeling_key_old (p_dvb_personeelsnummer);
|
||||
v_prs_perslid_naam := SUBSTR (p_per_naam, 1, 30);
|
||||
v_prs_perslid_tussenvoegsels := p_per_tussenvoegsels;
|
||||
|
||||
IF p_per_indnaamsvoegen = 'J'
|
||||
OR p_per_indnaamsvoegen = 'W'
|
||||
OR p_per_indnaamsvoegen = 'E'
|
||||
OR p_per_indnaamsvoegen = 'P'
|
||||
THEN
|
||||
v_prs_perslid_tussenvoegsels := p_per_partussenvoegs;
|
||||
|
||||
IF p_per_tussenvoegsels IS NOT NULL
|
||||
THEN
|
||||
v_prs_perslid_naam := SUBSTR (p_per_partnernaam || '-' || p_per_tussenvoegsels || ' ' || p_per_naam, 1, 30);
|
||||
ELSE
|
||||
v_prs_perslid_naam := SUBSTR (p_per_partnernaam || '-' || p_per_naam, 1, 30);
|
||||
END IF;
|
||||
ELSIF p_per_indnaamsvoegen = 'A'
|
||||
THEN
|
||||
v_prs_perslid_tussenvoegsels := p_per_partussenvoegs;
|
||||
v_prs_perslid_naam := SUBSTR (p_per_partnernaam, 1, 30);
|
||||
ELSIF p_per_indnaamsvoegen = 'G'
|
||||
THEN
|
||||
IF p_per_partussenvoegs IS NOT NULL
|
||||
THEN
|
||||
v_prs_perslid_naam :=
|
||||
SUBSTR (v_prs_perslid_naam || '-' || p_per_partussenvoegs || ' ' || p_per_partnernaam, 1, 30);
|
||||
ELSE
|
||||
v_prs_perslid_naam := SUBSTR (v_prs_perslid_naam || '-' || p_per_partnernaam, 1, 30);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
IF p_ind_toekomstmutatie = 'N'
|
||||
THEN -- Toekomstmutaties niet meenemen
|
||||
IF p_per_titel IS NOT NULL OR p_per_achtervoegsel IS NOT NULL
|
||||
THEN
|
||||
v_prs_perslid_titel := SUBSTR (p_per_titel || '()' || p_per_achtervoegsel, 1, 15);
|
||||
END IF;
|
||||
|
||||
-- controleren op onbepaald (dwz dvb_datum_uit_dienst=31 dec 2999)
|
||||
v_prs_perslid_einddatum := p_dvb_datum_uit_dienst;
|
||||
|
||||
IF p_dvb_datum_uit_dienst IS NULL
|
||||
THEN
|
||||
v_prs_perslid_einddatum := TO_DATE ('31-12-2999', 'DD-MM-YYYY');
|
||||
END IF;
|
||||
|
||||
IF v_prs_perslid_key = 0
|
||||
THEN --nieuwe medewerker
|
||||
INSERT INTO prs_perslid
|
||||
(prs_perslid_nr, prs_perslid_module, prs_perslid_naam,
|
||||
prs_perslid_tussenvoegsel, prs_perslid_voorletters,
|
||||
prs_perslid_voornaam
|
||||
-- , prs_perslid_oslogin
|
||||
, prs_perslid_titel, prs_perslid_ingangsdatum,
|
||||
prs_perslid_einddatum, prs_afdeling_key, prs_srtperslid_key
|
||||
)
|
||||
VALUES (p_dvb_personeelsnummer, 'PRS', v_prs_perslid_naam,
|
||||
SUBSTR (v_prs_perslid_tussenvoegsels, 1, 15), SUBSTR (p_per_voorletters, 1, 10),
|
||||
SUBSTR (p_per_roepnaam, 1, 30)
|
||||
-- , substr(p_per_username,1,30)
|
||||
, v_prs_perslid_titel, p_dvb_datum_in_dienst,
|
||||
v_prs_perslid_einddatum, v_prs_afdeling_key, v_prs_srtperslid_key
|
||||
);
|
||||
|
||||
SELECT prs_perslid_key
|
||||
INTO v_prs_perslid_key
|
||||
FROM prs_perslid
|
||||
WHERE prs_perslid_nr = p_dvb_personeelsnummer;
|
||||
|
||||
-- Default autorisatie toekennen aan deze nieuwe persoon
|
||||
BEGIN
|
||||
SELECT fac_groep_key
|
||||
INTO v_fac_groep_key
|
||||
FROM fac_groep
|
||||
WHERE fac_groep_upper = 'ALGEMEEN2808' AND fac_groep_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO fac_groep
|
||||
(fac_groep_omschrijving
|
||||
)
|
||||
VALUES ('Algemeen2808'
|
||||
);
|
||||
|
||||
SELECT fac_groep_key
|
||||
INTO v_fac_groep_key
|
||||
FROM fac_groep
|
||||
WHERE fac_groep_upper = 'ALGEMEEN2808' AND fac_groep_verwijder IS NULL;
|
||||
END;
|
||||
|
||||
INSERT INTO fac_gebruikersgroep
|
||||
(fac_groep_key, prs_perslid_key
|
||||
)
|
||||
VALUES (v_fac_groep_key, v_prs_perslid_key
|
||||
);
|
||||
ELSE
|
||||
UPDATE prs_perslid
|
||||
SET prs_perslid_naam = v_prs_perslid_naam,
|
||||
prs_perslid_tussenvoegsel = SUBSTR (v_prs_perslid_tussenvoegsels, 1, 15),
|
||||
prs_perslid_voorletters = SUBSTR (p_per_voorletters, 1, 10),
|
||||
prs_perslid_voornaam = SUBSTR (p_per_roepnaam, 1, 30)
|
||||
-- , prs_perslid_oslogin=substr(p_per_username,1,30)
|
||||
,
|
||||
prs_perslid_titel = v_prs_perslid_titel,
|
||||
prs_perslid_ingangsdatum = p_dvb_datum_in_dienst,
|
||||
prs_perslid_einddatum = v_prs_perslid_einddatum,
|
||||
prs_afdeling_key = v_prs_afdeling_key,
|
||||
prs_srtperslid_key = v_prs_srtperslid_key
|
||||
WHERE prs_perslid_key = v_prs_perslid_key;
|
||||
END IF;
|
||||
|
||||
--standplaats-kenmerk!!!
|
||||
SELECT prs_kenmerk.prs_kenmerk_key
|
||||
INTO v_standplaats_kenmerk_key
|
||||
FROM prs_kenmerk
|
||||
WHERE prs_kenmerk_upper = 'STANDPLAATS';
|
||||
|
||||
BEGIN
|
||||
SELECT prs_kenmerklink_key
|
||||
INTO v_standplaats_kenmerklink_key
|
||||
FROM prs_kenmerklink
|
||||
WHERE prs_link_key = v_prs_perslid_key AND prs_kenmerk_key = v_standplaats_kenmerk_key;
|
||||
|
||||
IF p_dvb_k_standplts_label IS NULL
|
||||
THEN
|
||||
DELETE FROM prs_kenmerklink
|
||||
WHERE prs_kenmerklink_key = v_standplaats_kenmerklink_key;
|
||||
ELSE
|
||||
UPDATE prs_kenmerklink
|
||||
SET prs_kenmerklink_waarde = p_dvb_k_standplts_label
|
||||
WHERE prs_kenmerklink_key = v_standplaats_kenmerklink_key;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN -- nieuwe toevoegen indien niet leeg
|
||||
IF p_dvb_k_standplts_label IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO prs_kenmerklink
|
||||
(prs_link_key, prs_kenmerklink_niveau, prs_kenmerk_key, prs_kenmerklink_waarde
|
||||
)
|
||||
VALUES (v_prs_perslid_key, 'P', v_standplaats_kenmerk_key, p_dvb_k_standplts_label
|
||||
);
|
||||
END IF;
|
||||
END;
|
||||
--nu nog het email-kenmerk voor beide situaties!!!
|
||||
/* select prs_kenmerk.prs_kenmerk_key
|
||||
into v_email_kenmerk_key
|
||||
from prs_kenmerk
|
||||
where prs_kenmerk_upper='EMAILADRES';
|
||||
begin
|
||||
select prs_kenmerklink_key
|
||||
into v_email_kenmerklink_key
|
||||
from prs_kenmerklink
|
||||
where prs_link_key=v_prs_perslid_key
|
||||
and prs_kenmerk_key=v_email_kenmerk_key;
|
||||
if p_dvb_k_emailzake is null then
|
||||
delete from prs_kenmerklink
|
||||
where prs_kenmerklink_key=v_email_kenmerklink_key;
|
||||
else
|
||||
update prs_kenmerklink
|
||||
set prs_kenmerklink_waarde=p_dvb_k_emailzake
|
||||
where prs_kenmerklink_key=v_email_kenmerklink_key;
|
||||
end if;
|
||||
exception when no_data_found then -- nieuwe toevoegen indien niet leeg
|
||||
if p_dvb_k_emailzake is not null then
|
||||
insert into prs_kenmerklink
|
||||
( prs_link_key
|
||||
, prs_kenmerklink_niveau
|
||||
, prs_kenmerk_key
|
||||
, prs_kenmerklink_waarde)
|
||||
values
|
||||
( v_prs_perslid_key
|
||||
, 'P'
|
||||
, v_email_kenmerk_key
|
||||
, p_dvb_k_emailzake);
|
||||
end if;
|
||||
end; */
|
||||
END IF;
|
||||
|
||||
v_count := prs_perslid_verwijder; -- CONN#410
|
||||
END;
|
||||
|
||||
FUNCTION prs_perslid_key (p_dvb_personeelsnummer IN VARCHAR2)
|
||||
RETURN NUMBER
|
||||
IS
|
||||
v_prs_perslid_key prs_perslid.prs_perslid_key%TYPE;
|
||||
-- CONN#613 only search for active persons
|
||||
BEGIN
|
||||
SELECT prs_perslid_key
|
||||
INTO v_prs_perslid_key
|
||||
FROM prs_v_aanwezigperslid
|
||||
WHERE prs_perslid_nr = p_dvb_personeelsnummer;
|
||||
|
||||
RETURN v_prs_perslid_key;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
RETURN 0;
|
||||
END;
|
||||
|
||||
FUNCTION prs_srtperslid_key (p_fnc_omschrijving IN VARCHAR2)
|
||||
RETURN NUMBER
|
||||
IS
|
||||
v_prs_srtperslid_key prs_perslid.prs_srtperslid_key%TYPE;
|
||||
BEGIN
|
||||
SELECT prs_srtperslid_key
|
||||
INTO v_prs_srtperslid_key
|
||||
FROM prs_srtperslid
|
||||
WHERE prs_srtperslid_upper = UPPER (p_fnc_omschrijving);
|
||||
|
||||
RETURN v_prs_srtperslid_key;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO prs_srtperslid
|
||||
(prs_srtperslid_omschrijving
|
||||
)
|
||||
VALUES (p_fnc_omschrijving
|
||||
);
|
||||
|
||||
SELECT prs_srtperslid_key
|
||||
INTO v_prs_srtperslid_key
|
||||
FROM prs_srtperslid
|
||||
WHERE prs_srtperslid_upper = UPPER (p_fnc_omschrijving);
|
||||
|
||||
RETURN v_prs_srtperslid_key;
|
||||
END;
|
||||
|
||||
-- CONN#410
|
||||
FUNCTION prs_perslid_verwijder
|
||||
RETURN NUMBER
|
||||
IS
|
||||
CURSOR c_prs_del
|
||||
IS
|
||||
SELECT DISTINCT p.prs_perslid_key
|
||||
FROM prs_perslid p, prs_v_verplichting pv
|
||||
WHERE p.prs_perslid_verwijder IS NULL
|
||||
AND NOT (p.prs_perslid_einddatum IS NULL)
|
||||
AND p.prs_perslid_einddatum <= SYSDATE
|
||||
AND p.prs_perslid_key = pv.prs_perslid_key(+)
|
||||
AND pv.prs_perslid_key IS NULL;
|
||||
|
||||
rec_prs_del c_prs_del%ROWTYPE;
|
||||
v_count_verwijderd NUMBER (10);
|
||||
v_errmes VARCHAR2 (512);
|
||||
BEGIN
|
||||
v_count_verwijderd := 0;
|
||||
|
||||
FOR rec_prs_del IN c_prs_del
|
||||
LOOP
|
||||
BEGIN
|
||||
UPDATE prs_perslidwerkplek
|
||||
SET prs_perslidwerkplek_verwijder = SYSDATE
|
||||
WHERE prs_perslid_key = rec_prs_del.prs_perslid_key AND prs_perslidwerkplek_verwijder IS NULL;
|
||||
|
||||
UPDATE prs_perslid
|
||||
SET prs_perslid_verwijder = SYSDATE
|
||||
WHERE prs_perslid_key = rec_prs_del.prs_perslid_key;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
v_errmes := 'Error bij verwijderen persoon. Negeer fouten, verwerk de volgende persoon.';
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
RETURN v_count_verwijderd;
|
||||
END;
|
||||
|
||||
FUNCTION prs_afdeling_key (
|
||||
p_dvb_divisie IN VARCHAR2,
|
||||
p_dvb_divisie_label IN VARCHAR2,
|
||||
p_dvb_k_regiozoeknaam IN VARCHAR2,
|
||||
p_dvb_k_regio_label IN VARCHAR2,
|
||||
p_afd_code IN VARCHAR2,
|
||||
p_afd_omschrijving IN VARCHAR2
|
||||
)
|
||||
RETURN NUMBER
|
||||
IS
|
||||
v_mh_bedrijf_key prs_afdeling.prs_afdeling_key%TYPE;
|
||||
v_mh_afdeling_parentkey prs_afdeling.prs_afdeling_key%TYPE;
|
||||
v_afdeling_key prs_afdeling.prs_afdeling_key%TYPE;
|
||||
BEGIN
|
||||
BEGIN
|
||||
SELECT a.prs_afdeling_key
|
||||
INTO v_afdeling_key
|
||||
FROM prs_afdeling a
|
||||
WHERE a.prs_afdeling_upper = UPPER (p_afd_code) AND a.prs_afdeling_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_afdeling_key := NULL;
|
||||
END;
|
||||
|
||||
IF v_afdeling_key IS NULL
|
||||
THEN -- afdeling bestaat niet
|
||||
BEGIN
|
||||
-- bestaat afdeling "perman nieuw"
|
||||
SELECT a.prs_afdeling_key
|
||||
INTO v_afdeling_key
|
||||
FROM prs_afdeling a
|
||||
WHERE a.prs_afdeling_upper = UPPER ('Perman')
|
||||
AND UPPER (a.prs_afdeling_omschrijving) = UPPER ('Perman nieuw')
|
||||
AND a.prs_afdeling_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_afdeling_key := NULL;
|
||||
END;
|
||||
|
||||
IF v_afdeling_key IS NULL
|
||||
THEN -- afdeling "Perman nieuw" bestaat niet
|
||||
-- maak de afdeling " Perman nieuw" aan (dezelfde regio als Maarten Hanemaaijer)
|
||||
-- vind afdeling van Maarten Hanemaaijer, perslid_key = 1042
|
||||
-- benodigd zijn prs_afdeling_parent_key en prs_bedrijf_key
|
||||
BEGIN
|
||||
SELECT a.prs_bedrijf_key, a.prs_afdeling_parentkey
|
||||
INTO v_mh_bedrijf_key, v_mh_afdeling_parentkey
|
||||
FROM prs_perslid p, prs_afdeling a
|
||||
WHERE p.prs_afdeling_key = a.prs_afdeling_key AND p.prs_perslid_key = 1042;
|
||||
-- and p.prs_perslid_upper = upper ('Hanemaaijer')
|
||||
-- and upper (p.prs_perslid_voornaam) = upper ('Maarten');
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
RETURN 0;
|
||||
END;
|
||||
|
||||
-- maak de afdeling "Perman nieuw" aan
|
||||
INSERT INTO prs_afdeling
|
||||
(prs_afdeling_parentkey, prs_afdeling_naam, prs_afdeling_omschrijving, prs_bedrijf_key
|
||||
)
|
||||
VALUES (v_mh_afdeling_parentkey, 'Perman', 'Perman nieuw', v_mh_bedrijf_key
|
||||
);
|
||||
|
||||
-- vindt de afdeling_key van de afdeling "Perman nieuw"
|
||||
SELECT prs_afdeling_key
|
||||
INTO v_afdeling_key
|
||||
FROM prs_afdeling a
|
||||
WHERE a.prs_afdeling_upper = UPPER ('Perman')
|
||||
AND UPPER (a.prs_afdeling_omschrijving) = UPPER ('Perman nieuw');
|
||||
END IF;
|
||||
-- else -- afdeling bestaat: return v-afdeling_key.
|
||||
END IF;
|
||||
|
||||
RETURN v_afdeling_key;
|
||||
END;
|
||||
|
||||
FUNCTION prs_afdeling_key_old (p_dvb_personeelsnummer IN VARCHAR2)
|
||||
RETURN NUMBER
|
||||
IS
|
||||
v_prs_afdeling_key prs_perslid.prs_afdeling_key%TYPE;
|
||||
BEGIN
|
||||
SELECT prs_afdeling_key
|
||||
INTO v_prs_afdeling_key
|
||||
FROM prs_perslid
|
||||
WHERE prs_perslid_nr = p_dvb_personeelsnummer;
|
||||
|
||||
RETURN v_prs_afdeling_key;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
RETURN 0;
|
||||
END;
|
||||
END perman;
|
||||
/
|
||||
|
||||
GRANT EXECUTE ON perman TO oac;
|
||||
|
||||
-- End perman.sql
|
||||
|
||||
-- Start
|
||||
/* Formatted on 2006/09/15 11:39 (Formatter Plus v4.8.5) */
|
||||
CREATE OR REPLACE TRIGGER oac_sdr_bru
|
||||
BEFORE UPDATE
|
||||
ON oac_stg_distribute_medewerker
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
--
|
||||
-- declaration section
|
||||
--
|
||||
cn_module VARCHAR2 (2000) := 'oac_sdr_bru';
|
||||
l_sysdate DATE;
|
||||
l_user VARCHAR2 (2000);
|
||||
--
|
||||
BEGIN
|
||||
--
|
||||
/* data auditing */
|
||||
BEGIN
|
||||
l_sysdate := SYSDATE;
|
||||
l_user := USER;
|
||||
--
|
||||
:NEW.mutatiedatum := l_sysdate;
|
||||
:NEW.mutator := l_user;
|
||||
END;
|
||||
|
||||
--
|
||||
conn.perman.verwerk (:NEW.ind_toekomstmutatie,
|
||||
:NEW.dvb_personeelsnummer,
|
||||
:NEW.per_naam,
|
||||
:NEW.per_partnernaam,
|
||||
:NEW.per_indnaamsvoegen,
|
||||
:NEW.per_tussenvoegsels,
|
||||
:NEW.per_partussenvoegs,
|
||||
:NEW.per_voorletters,
|
||||
:NEW.per_roepnaam,
|
||||
:NEW.per_username,
|
||||
:NEW.per_titel,
|
||||
:NEW.per_achtervoegsel,
|
||||
:NEW.per_begindatum,
|
||||
:NEW.per_einddatumtot,
|
||||
:NEW.fnc_omschrijving,
|
||||
:NEW.dvb_k_emailzake,
|
||||
:NEW.dvb_divisie,
|
||||
:NEW.dvb_divisie_label,
|
||||
:NEW.dvb_k_regio,
|
||||
:NEW.dvb_k_regio_label,
|
||||
:NEW.dvb_k_regiozoeknaam,
|
||||
:NEW.afd_code,
|
||||
:NEW.afd_omschrijving
|
||||
);
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
raise_application_error (-20000, SQLERRM || ' ' || cn_module);
|
||||
END;
|
||||
/
|
||||
-- End
|
||||
|
||||
-- Start
|
||||
/* Formatted on 2006/09/15 11:39 (Formatter Plus v4.8.5) */
|
||||
CREATE OR REPLACE TRIGGER oac_sdr_bri
|
||||
BEFORE INSERT
|
||||
ON oac_stg_distribute_medewerker
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
--
|
||||
-- declaration section
|
||||
--
|
||||
cn_module VARCHAR2 (2000) := 'oac_sdr_bri';
|
||||
l_sysdate DATE;
|
||||
l_user VARCHAR2 (2000);
|
||||
--
|
||||
BEGIN
|
||||
--
|
||||
/* data auditing */
|
||||
BEGIN
|
||||
l_sysdate := SYSDATE;
|
||||
l_user := USER;
|
||||
--
|
||||
:NEW.creatiedatum := l_sysdate;
|
||||
:NEW.creator := l_user;
|
||||
:NEW.mutatiedatum := l_sysdate;
|
||||
:NEW.mutator := l_user;
|
||||
END;
|
||||
|
||||
--
|
||||
conn.perman.verwerk (:NEW.ind_toekomstmutatie,
|
||||
:NEW.dvb_personeelsnummer,
|
||||
:NEW.per_naam,
|
||||
:NEW.per_partnernaam,
|
||||
:NEW.per_indnaamsvoegen,
|
||||
:NEW.per_tussenvoegsels,
|
||||
:NEW.per_partussenvoegs,
|
||||
:NEW.per_voorletters,
|
||||
:NEW.per_roepnaam,
|
||||
:NEW.per_username,
|
||||
:NEW.per_titel,
|
||||
:NEW.per_achtervoegsel,
|
||||
:NEW.per_begindatum,
|
||||
:NEW.per_einddatumtot,
|
||||
:NEW.fnc_omschrijving,
|
||||
:NEW.dvb_k_emailzake,
|
||||
:NEW.dvb_divisie,
|
||||
:NEW.dvb_divisie_label,
|
||||
:NEW.dvb_k_regio,
|
||||
:NEW.dvb_k_regio_label,
|
||||
:NEW.dvb_k_regiozoeknaam,
|
||||
:NEW.afd_code,
|
||||
:NEW.afd_omschrijving
|
||||
);
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
raise_application_error (-20000, SQLERRM || ' ' || cn_module);
|
||||
END;
|
||||
/
|
||||
-- End
|
||||
SPOOL OFF
|
||||
|
||||
Reference in New Issue
Block a user