CWTD#18704: Gewijzigd importbestand
svn path=/Customer/trunk/; revision=14537
This commit is contained in:
484
CWTD/cwtd.sql
484
CWTD/cwtd.sql
@@ -1,7 +1,7 @@
|
||||
-- Script containing customer specific configuration sql statements for CWTD
|
||||
-- (c) 2008 Facilitor
|
||||
-- $Revision: 6 $
|
||||
-- $Modtime: 6-05-09 16:55 $
|
||||
-- $Revision: 7 $
|
||||
-- $Modtime: 9-12-10 11:45 $
|
||||
--
|
||||
-- Support: +31 53 4800700
|
||||
|
||||
@@ -22,7 +22,8 @@ AS
|
||||
FROM fac_imp_file
|
||||
WHERE fac_imp_file_applicatie = 'PERSOON'
|
||||
ORDER BY fac_imp_file_index;
|
||||
next_record c_cursor%ROWTYPE;
|
||||
|
||||
next_record c_cursor%ROWTYPE;
|
||||
|
||||
v_newline VARCHAR2 (1000); -- Import line
|
||||
v_field VARCHAR2 (100); -- Import field
|
||||
@@ -34,20 +35,21 @@ AS
|
||||
|
||||
-- De importvelden
|
||||
v_afdeling_naam VARCHAR2 (1000);
|
||||
v_afdeling_omschr VARCHAR2 (1000);
|
||||
v_perslid_naam VARCHAR2 (1000);
|
||||
v_perslid_tussenvoegsel VARCHAR2 (1000);
|
||||
v_perslid_partn_tussen VARCHAR2 (1000);
|
||||
v_perslid_partn_naam VARCHAR2 (1000);
|
||||
v_perslid_voorletters VARCHAR2 (1000);
|
||||
v_perslid_voornaam VARCHAR2 (1000);
|
||||
v_perslid_fullname VARCHAR2 (1000);
|
||||
v_perslid_telefoonnr VARCHAR2 (1000);
|
||||
v_perslid_mobiel VARCHAR2 (1000);
|
||||
v_perslid_oslogin VARCHAR2 (1000);
|
||||
v_perslid_email VARCHAR2 (1000);
|
||||
v_srtperslid_omschrijving VARCHAR2 (1000);
|
||||
v_perslid_nr VARCHAR2 (1000);
|
||||
v_perslid_geslacht VARCHAR2(1000);
|
||||
v_perslid_naamcompl VARCHAR2 (1000);
|
||||
v_perslid_geslacht VARCHAR2 (1000);
|
||||
v_perslid_ingangsdatum VARCHAR2 (1000);
|
||||
v_perslid_einddatum VARCHAR2 (1000);
|
||||
v_locatie_omschrijving VARCHAR2 (1000);
|
||||
@@ -59,16 +61,11 @@ AS
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- SUBFUNCTION
|
||||
FUNCTION get_imp_value (p_value IN VARCHAR2, p_length IN NUMBER) RETURN VARCHAR2 IS
|
||||
|
||||
c_del_in_str VARCHAR2(16) := 'NULL';
|
||||
c_del_in_str2 VARCHAR2(16) := '"';
|
||||
c_del_in_str2 VARCHAR2(16) := '"';
|
||||
|
||||
v_value VARCHAR2(1000);
|
||||
|
||||
@@ -113,43 +110,48 @@ BEGIN
|
||||
|
||||
v_newline := SUBSTR(next_record.FAC_IMP_FILE_LINE,1,c_max_import_str_len);
|
||||
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_nr);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_naam);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_geslacht);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_partn_tussen);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_partn_naam);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_voornaam);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_tussenvoegsel);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_voorletters);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_telefoonnr);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_mobiel);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_oslogin);
|
||||
v_perslid_oslogin := '';
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_email);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_srtperslid_omschrijving);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_naam);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_ingangsdatum);
|
||||
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_naam); -- Afdeling
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_afdeling_omschr); -- <afdelingomschrijving>
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_nr); -- UP nr
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_voorletters); -- Voorletters
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_tussenvoegsel); -- Voorvoegsels
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_naam); -- Achternaam
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_partn_tussen); -- Voorvoegsels Partner
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_partn_naam); -- Achternaam Partner
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_voornaam); -- Roepnaam
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_fullname); -- Volledige naam
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_dummy); -- Functie
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_srtperslid_omschrijving); -- <functienaam>
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_geslacht); -- Geslacht
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_email); -- E-mailadres
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_telefoonnr); -- Intern nummer
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_mobiel); -- Zakelijk mobiele nummer
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie_omschrijving); -- Vestiging
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_ingangsdatum); -- In Dienst
|
||||
v_perslid_ingangsdatum := '';
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_einddatum);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_einddatum); -- Uit Dienst
|
||||
v_perslid_einddatum := '';
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie_omschrijving);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_naamcompl);
|
||||
v_perslid_oslogin := '';
|
||||
|
||||
-- Skip until the header is found
|
||||
IF ( v_perslid_nr = 'Personeelsnummer' AND
|
||||
v_perslid_naam = 'Geboortenaam' AND
|
||||
v_perslid_geslacht = 'geslacht' AND
|
||||
v_perslid_partn_tussen = 'voorvoegsel echtg./partner' AND
|
||||
v_perslid_partn_naam = 'naam echtg./partner' AND
|
||||
v_perslid_voornaam = 'roepnaam' AND
|
||||
v_perslid_tussenvoegsel = 'voorvoegsel' AND
|
||||
v_perslid_voorletters = 'voorletters' AND
|
||||
v_perslid_telefoonnr = 'Telefoon intern' AND
|
||||
v_perslid_mobiel = 'GSM nummer zaak' AND
|
||||
v_perslid_email = 'E-mailadres werk' AND
|
||||
v_srtperslid_omschrijving = 'Functienaam volledig' AND
|
||||
v_afdeling_naam = 'Locatie' AND
|
||||
v_locatie_omschrijving = 'Standplaats'
|
||||
IF (v_afdeling_naam = 'Afdeling' AND
|
||||
v_afdeling_omschr IS NULL AND
|
||||
v_perslid_nr = 'UP nr' AND
|
||||
v_perslid_voorletters = 'Voorletters' AND
|
||||
v_perslid_tussenvoegsel = 'Voorvoegsels' AND
|
||||
v_perslid_naam = 'Achternaam' AND
|
||||
v_perslid_partn_tussen = 'Voorvgsl Partner' AND
|
||||
v_perslid_partn_naam = 'Achternaam Partner' AND
|
||||
v_perslid_voornaam = 'Roepnaam' AND
|
||||
v_perslid_fullname = 'Naam' AND
|
||||
v_dummy = 'Functie' AND
|
||||
v_srtperslid_omschrijving IS NULL AND
|
||||
v_perslid_geslacht = 'Geslacht' AND
|
||||
v_perslid_email = 'E-mailadres' AND
|
||||
v_perslid_telefoonnr = 'Intern nummer' AND
|
||||
v_perslid_mobiel = 'Zakelijk mobiele nummer' AND
|
||||
v_locatie_omschrijving = 'Vestiging'
|
||||
)
|
||||
THEN
|
||||
header_found := TRUE;
|
||||
@@ -166,9 +168,11 @@ BEGIN
|
||||
v_perslid_tussenvoegsel := get_imp_value(v_perslid_tussenvoegsel,15);
|
||||
v_perslid_partn_naam := get_imp_value(v_perslid_partn_naam,30);
|
||||
v_perslid_partn_tussen := get_imp_value(v_perslid_partn_tussen,15);
|
||||
v_perslid_fullname := get_imp_value(v_perslid_fullname,60);
|
||||
v_perslid_oslogin := get_imp_value(v_perslid_oslogin,30);
|
||||
v_perslid_email := get_imp_value(v_perslid_email,200);
|
||||
v_afdeling_naam := get_imp_value(v_afdeling_naam,10);
|
||||
v_afdeling_omschr := get_imp_value(v_afdeling_omschr,60);
|
||||
v_locatie_omschrijving := get_imp_value(v_locatie_omschrijving,30);
|
||||
v_srtperslid_omschrijving := get_imp_value(v_srtperslid_omschrijving,30);
|
||||
|
||||
@@ -182,16 +186,17 @@ BEGIN
|
||||
,prs_perslid_partn_naam
|
||||
,prs_perslid_tussenvoegsel
|
||||
,prs_perslid_voorletters
|
||||
,prs_perslid_fullname
|
||||
,prs_perslid_telefoonnr
|
||||
,prs_perslid_mobiel
|
||||
,prs_perslid_oslogin
|
||||
,prs_perslid_email
|
||||
,prs_srtperslid_omschrijving
|
||||
,prs_afdeling_naam
|
||||
,prs_afdeling_omschr
|
||||
,prs_perslid_ingangsdatum
|
||||
,prs_perslid_einddatum
|
||||
,prs_locatie_omschrijving
|
||||
,prs_perslid_naamcompl
|
||||
,cwtd_imp_persoon_aanmaak
|
||||
)
|
||||
VALUES(v_perslid_nr
|
||||
@@ -202,16 +207,17 @@ BEGIN
|
||||
,v_perslid_partn_naam
|
||||
,v_perslid_tussenvoegsel
|
||||
,v_perslid_voorletters
|
||||
,v_perslid_fullname
|
||||
,v_perslid_telefoonnr
|
||||
,v_perslid_mobiel
|
||||
,v_perslid_oslogin
|
||||
,v_perslid_email
|
||||
,v_srtperslid_omschrijving
|
||||
,v_afdeling_naam
|
||||
,v_afdeling_omschr
|
||||
,''
|
||||
,''
|
||||
,v_locatie_omschrijving
|
||||
,v_perslid_naamcompl
|
||||
,sysdate
|
||||
);
|
||||
|
||||
@@ -234,7 +240,7 @@ BEGIN
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
|
||||
IF header_found = FALSE THEN
|
||||
fac.imp_writelog (p_applname, p_applrun, 'E', 'Geen geldige header gevonden', '');
|
||||
END IF;
|
||||
@@ -252,7 +258,7 @@ EXCEPTION
|
||||
END;
|
||||
/
|
||||
|
||||
-- show errors;
|
||||
SHOW ERRORS;
|
||||
|
||||
CREATE OR REPLACE PROCEDURE cwtd_update_persoon (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||||
AS
|
||||
@@ -285,48 +291,51 @@ AS
|
||||
|
||||
CURSOR c_prs_del
|
||||
IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_nr
|
||||
FROM PRS_PERSLID p, (select prs_perslid_nr
|
||||
from cwtd_imp_persoon
|
||||
where prs_perslid_nr is not null) lp
|
||||
WHERE 1=1
|
||||
AND p.prs_perslid_nr IS NOT NULL
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_nr = lp.prs_perslid_nr(+)
|
||||
AND lp.prs_perslid_nr is null
|
||||
ORDER BY 2, 1;
|
||||
SELECT prs_perslid_key, prs_perslid_nr
|
||||
FROM prs_perslid
|
||||
WHERE prs_perslid_nr IS NOT NULL AND prs_perslid_verwijder IS NULL
|
||||
AND LTRIM (prs_perslid_nr, '0') NOT IN
|
||||
( SELECT LTRIM (prs_perslid_nr, '0') FROM cwtd_imp_persoon)
|
||||
ORDER BY 1;
|
||||
|
||||
CURSOR c_prs_upd
|
||||
IS
|
||||
SELECT p.prs_perslid_key
|
||||
, lp.prs_locatie_omschrijving
|
||||
, lp.prs_perslid_partn_tussen
|
||||
, lp.prs_perslid_partn_naam
|
||||
, lp.prs_perslid_naamcompl
|
||||
, lp.prs_afdeling_naam
|
||||
, lp.prs_perslid_naam
|
||||
, lp.prs_perslid_tussenvoegsel
|
||||
, lp.prs_perslid_voorletters
|
||||
, lp.prs_perslid_voornaam
|
||||
, DECODE (lp.prs_perslid_telefoonnr, '0', null, lp.prs_perslid_telefoonnr) prs_perslid_telefoonnr
|
||||
, lp.prs_perslid_mobiel
|
||||
, lp.prs_perslid_oslogin
|
||||
, lp.prs_perslid_email
|
||||
, coalesce(lp.prs_srtperslid_omschrijving, c_srtperslid_omschr_default) prs_srtperslid_omschrijving
|
||||
, lp.prs_perslid_nr
|
||||
, '' prs_perslid_titel
|
||||
, p.prs_perslid_verwijder
|
||||
, INSTR (lp.prs_perslid_naamcompl, lp.prs_perslid_naam) ind_eigen
|
||||
, INSTR (lp.prs_perslid_naamcompl, NVL (lp.prs_perslid_partn_naam, 'xxxxxx')) ind_partner
|
||||
FROM cwtd_imp_persoon lp, prs_perslid p
|
||||
WHERE 1=1
|
||||
AND lp.prs_perslid_nr = p.prs_perslid_nr(+)
|
||||
-- Dit moet analoog aan UWVA#13061: verwijderde personen moeten kunnen worden gereactiveerd.
|
||||
-- AND p.prs_perslid_verwijder IS NULL
|
||||
ORDER BY lp.prs_perslid_nr, p.prs_perslid_key DESC;
|
||||
SELECT p.prs_perslid_key,
|
||||
lp.prs_locatie_omschrijving,
|
||||
lp.prs_perslid_partn_tussen,
|
||||
lp.prs_perslid_partn_naam,
|
||||
lp.prs_perslid_fullname,
|
||||
lp.prs_afdeling_naam,
|
||||
lp.prs_perslid_naam,
|
||||
lp.prs_perslid_tussenvoegsel,
|
||||
lp.prs_perslid_voorletters,
|
||||
lp.prs_perslid_voornaam,
|
||||
DECODE (lp.prs_perslid_telefoonnr,
|
||||
'0', NULL,
|
||||
lp.prs_perslid_telefoonnr)
|
||||
prs_perslid_telefoonnr,
|
||||
lp.prs_perslid_mobiel,
|
||||
lp.prs_perslid_oslogin,
|
||||
lp.prs_perslid_email,
|
||||
COALESCE (lp.prs_srtperslid_omschrijving, 'Onbekend')
|
||||
prs_srtperslid_omschrijving,
|
||||
lp.prs_perslid_nr,
|
||||
'' prs_perslid_titel,
|
||||
p.prs_perslid_verwijder,
|
||||
INSTR (lp.prs_perslid_fullname, lp.prs_perslid_naam) ind_eigen,
|
||||
INSTR (lp.prs_perslid_fullname,
|
||||
NVL (lp.prs_perslid_partn_naam, 'xxxxxx'))
|
||||
ind_partner
|
||||
FROM ( SELECT * FROM cwtd_imp_persoon) lp
|
||||
LEFT OUTER JOIN
|
||||
( SELECT * FROM prs_perslid) p
|
||||
ON LTRIM (lp.prs_perslid_nr, '0') = LTRIM (p.prs_perslid_nr, '0')
|
||||
-- Dit moet analoog aan UWVA#13061: verwijderde personen moeten kunnen worden gereactiveerd.
|
||||
-- AND p.prs_perslid_verwijder IS NULL
|
||||
ORDER BY lp.prs_perslid_nr ASC;
|
||||
|
||||
v_perslid_tussenvoegsel VARCHAR2(15);
|
||||
v_perslid_naam VARCHAR2(30);
|
||||
v_perslid_tussenvoegsel VARCHAR2(15);
|
||||
v_perslid_naam VARCHAR2(30);
|
||||
v_per_indnaamsvoegen VARCHAR2(1);
|
||||
v_perslid_key NUMBER (10);
|
||||
v_prs_key_cnt NUMBER (10);
|
||||
@@ -334,6 +343,7 @@ AS
|
||||
v_afdeling_key NUMBER (10);
|
||||
v_gebouw_key NUMBER (10);
|
||||
v_verdieping_key NUMBER (10);
|
||||
v_ruimte_nr VARCHAR2 (10);
|
||||
v_ruimte_key NUMBER (10);
|
||||
v_werkplek_key NUMBER (10);
|
||||
v_gebouw_code VARCHAR2 (10);
|
||||
@@ -359,31 +369,36 @@ AS
|
||||
v_nr_werkplek NUMBER;
|
||||
v_current_gebouw_key NUMBER;
|
||||
v_new_gebouw_key NUMBER;
|
||||
v_werkplek_volgnr NUMBER(10);
|
||||
v_werkplek_oms VARCHAR2 (60);
|
||||
|
||||
BEGIN
|
||||
|
||||
--return;
|
||||
-- Constanten:
|
||||
select sysdate, sysdate, sysdate
|
||||
into c_perslid_aanmaak, c_perslid_verwijder, c_perslid_ingangsdatum
|
||||
from dual;
|
||||
--TODO
|
||||
DELETE FROM imp_log
|
||||
WHERE imp_log_applicatie = 'PERSOON';
|
||||
|
||||
-- Delete
|
||||
-- Constanten:
|
||||
SELECT SYSDATE, SYSDATE, SYSDATE
|
||||
INTO c_perslid_aanmaak, c_perslid_verwijder, c_perslid_ingangsdatum
|
||||
FROM DUAL;
|
||||
|
||||
-- *** Delete ***************************************************************
|
||||
v_errorhint := 'Eventueel te verwijderen personen worden verwijderd ';
|
||||
|
||||
|
||||
SELECT COUNT (*)
|
||||
INTO v_perslid_count_fclt
|
||||
INTO v_perslid_count_fclt
|
||||
FROM prs_perslid
|
||||
WHERE prs_perslid_nr IS NOT NULL AND prs_perslid_verwijder IS NULL;
|
||||
|
||||
|
||||
SELECT COUNT (*)
|
||||
INTO v_perslid_count_imp
|
||||
FROM cwtd_imp_persoon;
|
||||
|
||||
IF v_perslid_count_imp < 10 THEN
|
||||
fac.imp_writelog (p_applname, p_applrun, 'E', 'Geen records gevonden om te importeren.', '');
|
||||
commit;
|
||||
return;
|
||||
COMMIT;
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
FOR rec_prs_del IN c_prs_del
|
||||
@@ -400,7 +415,6 @@ BEGIN
|
||||
|
||||
IF v_count = 0
|
||||
THEN
|
||||
|
||||
-- Persoon heeft geen enkele (actuele of historische) verplichting
|
||||
v_errormsg := 'Kan persoon (kennelijk zonder historie!) niet met prs_perslid_key [' || TO_CHAR (v_perslid_key) || '] niet verwijder. ';
|
||||
|
||||
@@ -413,10 +427,7 @@ BEGIN
|
||||
'Persoon verwijderd met personeelsnummer ['||rec_prs_del.prs_perslid_nr||']',
|
||||
''
|
||||
);
|
||||
commit; -- tbv logging
|
||||
|
||||
ELSE
|
||||
|
||||
-- Controleer of er ACTUELE verplichtingen zijn
|
||||
SELECT COUNT (*)
|
||||
INTO v_count
|
||||
@@ -439,9 +450,7 @@ BEGIN
|
||||
''
|
||||
);
|
||||
ELSE
|
||||
|
||||
BEGIN
|
||||
|
||||
v_errormsg := 'Kan persoon (kennelijk met historie!) niet inactiveren (verwijderdatum zetten) met prs_perslid_key [' || TO_CHAR (v_perslid_key) || ']';
|
||||
UPDATE prs_perslid
|
||||
SET prs_perslid_verwijder = c_perslid_verwijder
|
||||
@@ -480,8 +489,9 @@ BEGIN
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
-- Update
|
||||
v_errormsg := 'Persoonsgegevens worden nu angepast (toevoegen/wijzigen) ';
|
||||
|
||||
-- *** Update ***************************************************************
|
||||
v_errormsg := 'Persoonsgegevens worden nu aangepast (toevoegen/wijzigen) ';
|
||||
|
||||
FOR rec_prs_upd IN c_prs_upd
|
||||
LOOP
|
||||
@@ -509,11 +519,10 @@ BEGIN
|
||||
THEN
|
||||
v_errormsg := 'Persoon met achternaam ['||rec_prs_upd.prs_perslid_naam||' heeft geen personeelsnummer ';
|
||||
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_errorhint);
|
||||
commit; -- logging
|
||||
v_update := FALSE;
|
||||
END IF;
|
||||
|
||||
-- overgenomen uit de CONN perman koppeling.
|
||||
-- (oorspronkelijk overgenomen uit de CONN perman koppeling.)
|
||||
IF rec_prs_upd.ind_eigen = 0 THEN
|
||||
v_per_indnaamsvoegen := 'A';
|
||||
ELSIF rec_prs_upd.ind_partner = 0 THEN
|
||||
@@ -534,7 +543,7 @@ BEGIN
|
||||
OR v_per_indnaamsvoegen = 'P'
|
||||
THEN
|
||||
v_perslid_tussenvoegsel := rec_prs_upd.prs_perslid_partn_tussen;
|
||||
|
||||
|
||||
IF rec_prs_upd.prs_perslid_tussenvoegsel IS NOT NULL
|
||||
THEN
|
||||
v_perslid_naam := SUBSTR (rec_prs_upd.prs_perslid_partn_naam || '-' || rec_prs_upd.prs_perslid_tussenvoegsel || ' ' || rec_prs_upd.prs_perslid_naam, 1, 30);
|
||||
@@ -558,10 +567,6 @@ BEGIN
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- Controle: PRS_PERSLID_NAAM
|
||||
IF v_update AND v_perslid_naam IS NULL
|
||||
THEN
|
||||
@@ -570,7 +575,7 @@ BEGIN
|
||||
v_update := FALSE;
|
||||
END IF;
|
||||
|
||||
-- Controle: Kan persoon gereactieveerd worden of is er al een persoon met dezelfde prs_perslid_nr actief
|
||||
-- Controle: Kan persoon gereactiveerd worden of is er al een persoon met dezelfde prs_perslid_nr actief
|
||||
IF v_update AND rec_prs_upd.prs_perslid_verwijder IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
@@ -579,7 +584,7 @@ BEGIN
|
||||
INTO v_prs_key_cnt
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_nr LIKE rec_prs_upd.prs_perslid_nr
|
||||
AND LTRIM(p.prs_perslid_nr, '0') LIKE LTRIM(rec_prs_upd.prs_perslid_nr, '0')
|
||||
AND p.prs_perslid_key != rec_prs_upd.prs_perslid_key;
|
||||
|
||||
IF v_prs_key_cnt > 0
|
||||
@@ -610,7 +615,6 @@ BEGIN
|
||||
IF v_update
|
||||
THEN
|
||||
BEGIN
|
||||
|
||||
v_errormsg := 'De afdeling ['||rec_prs_upd.prs_afdeling_naam||']'||' kan niet <20><>nduidig bepaald worden ';
|
||||
|
||||
-- Bepaal de afdelingskey; indien afdeling niet bestaat nieuwe toevoegen.
|
||||
@@ -628,9 +632,9 @@ BEGIN
|
||||
INSERT INTO prs_afdeling (prs_afdeling_naam, prs_afdeling_omschrijving, prs_kostenplaats_key, prs_bedrijf_key)
|
||||
VALUES
|
||||
( rec_prs_upd.prs_afdeling_naam
|
||||
, 'Onbekend-'||rec_prs_upd.prs_afdeling_naam
|
||||
, ( SELECT prs_kostenplaats_key
|
||||
FROM prs_kostenplaats
|
||||
, 'Onbekend-'||rec_prs_upd.prs_afdeling_naam
|
||||
, ( SELECT prs_kostenplaats_key
|
||||
FROM prs_kostenplaats
|
||||
WHERE prs_kostenplaats_verwijder is null
|
||||
AND prs_kostenplaats_nr = rec_prs_upd.prs_afdeling_naam)
|
||||
, 2);
|
||||
@@ -667,16 +671,10 @@ BEGIN
|
||||
|
||||
-- Functie bestaat kennelijk niet, maak 'm maar aan
|
||||
INSERT INTO prs_srtperslid
|
||||
(prs_srtperslid_omschrijving
|
||||
)
|
||||
VALUES (v_srtperslid_omschr
|
||||
);
|
||||
|
||||
-- Wat is de key van deze nieuwe geworden?
|
||||
SELECT prs_srtperslid_key
|
||||
INTO v_srtperslid_key
|
||||
FROM prs_srtperslid
|
||||
WHERE prs_srtperslid_omschrijving = v_srtperslid_omschr AND prs_srtperslid_verwijder IS NULL;
|
||||
(prs_srtperslid_omschrijving)
|
||||
VALUES (v_srtperslid_omschr)
|
||||
RETURNING prs_srtperslid_key
|
||||
INTO v_srtperslid_key;
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
v_errorhint :=
|
||||
@@ -717,8 +715,6 @@ BEGIN
|
||||
|| '/'
|
||||
|| rec_prs_upd.prs_perslid_nr
|
||||
);
|
||||
commit;
|
||||
|
||||
ELSE
|
||||
|
||||
v_errormsg := 'Persoon kan niet worden gewijzigd';
|
||||
@@ -734,21 +730,18 @@ BEGIN
|
||||
prs_afdeling_key = v_afdeling_key,
|
||||
prs_perslid_verwijder = NULL,
|
||||
prs_perslid_email = rec_prs_upd.prs_perslid_email
|
||||
WHERE prs_perslid_nr = rec_prs_upd.prs_perslid_nr
|
||||
AND prs_perslid_key = rec_prs_upd.prs_perslid_key
|
||||
AND ( prs_perslid_naam <> v_perslid_naam
|
||||
OR NVL (prs_perslid_tussenvoegsel, '-') <> NVL (v_perslid_tussenvoegsel, '-')
|
||||
OR prs_perslid_voorletters <> rec_prs_upd.prs_perslid_voorletters
|
||||
OR NVL (prs_perslid_voornaam, '-') <> NVL (rec_prs_upd.prs_perslid_voornaam, '-')
|
||||
OR NVL (prs_perslid_telefoonnr, '-') <> NVL (rec_prs_upd.prs_perslid_telefoonnr, '-')
|
||||
OR prs_perslid_titel <> rec_prs_upd.prs_perslid_titel
|
||||
OR prs_srtperslid_key <> v_srtperslid_key
|
||||
OR prs_afdeling_key <> v_afdeling_key
|
||||
OR prs_perslid_email <> rec_prs_upd.prs_perslid_email
|
||||
WHERE prs_perslid_key = rec_prs_upd.prs_perslid_key
|
||||
AND ( prs_perslid_naam != v_perslid_naam
|
||||
OR NVL (prs_perslid_tussenvoegsel, '-') != NVL (v_perslid_tussenvoegsel, '-')
|
||||
OR prs_perslid_voorletters != rec_prs_upd.prs_perslid_voorletters
|
||||
OR NVL (prs_perslid_voornaam, '-') != NVL (rec_prs_upd.prs_perslid_voornaam, '-')
|
||||
OR NVL (prs_perslid_telefoonnr, '-') != NVL (rec_prs_upd.prs_perslid_telefoonnr, '-')
|
||||
OR prs_perslid_titel != rec_prs_upd.prs_perslid_titel
|
||||
OR prs_srtperslid_key != v_srtperslid_key
|
||||
OR prs_afdeling_key != v_afdeling_key
|
||||
OR prs_perslid_email != rec_prs_upd.prs_perslid_email
|
||||
OR rec_prs_upd.prs_perslid_verwijder IS NOT NULL
|
||||
);
|
||||
commit;
|
||||
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
@@ -762,7 +755,7 @@ BEGIN
|
||||
END;
|
||||
END IF;
|
||||
|
||||
-- *** Werkplek ***
|
||||
-- *** Werkplek *******************************************************
|
||||
v_errorhint := 'Kan geen werkplek toevoegen';
|
||||
|
||||
IF v_update AND (v_aktie = 'UPDATE')
|
||||
@@ -777,8 +770,7 @@ BEGIN
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
fac.imp_writelog (p_applname,
|
||||
p_applrun,
|
||||
fac.imp_writelog (p_applname, p_applrun,
|
||||
'I',
|
||||
v_errormsg,
|
||||
'Het aantal werkplekken kan niet bepaald worden?! personeelsnummer: '
|
||||
@@ -786,6 +778,7 @@ BEGIN
|
||||
);
|
||||
v_update := FALSE;
|
||||
END;
|
||||
|
||||
IF v_update AND v_nr_werkplek = 1
|
||||
THEN
|
||||
BEGIN
|
||||
@@ -808,14 +801,14 @@ BEGIN
|
||||
AND ud.fac_usrdata_omschr = g.alg_gebouw_code
|
||||
AND ud.fac_usrdata_code = rec_prs_upd.prs_afdeling_naam
|
||||
AND g.alg_gebouw_verwijder IS NULL;
|
||||
|
||||
-- indien gelijk dan werkplek niet updaten.
|
||||
v_update := (v_current_gebouw_key <> v_new_gebouw_key);
|
||||
v_update := (v_current_gebouw_key != v_new_gebouw_key);
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
fac.imp_writelog (p_applname,
|
||||
p_applrun,
|
||||
fac.imp_writelog (p_applname, p_applrun,
|
||||
'I',
|
||||
v_errormsg,
|
||||
'huidige of nieuwe alg_gebouw_key kan niet bepaald worden?! personeelsnummer: '
|
||||
@@ -841,7 +834,8 @@ BEGIN
|
||||
SELECT prs_perslid_key
|
||||
INTO v_perslid_key
|
||||
FROM prs_perslid
|
||||
WHERE prs_perslid_nr = rec_prs_upd.prs_perslid_nr AND prs_perslid_verwijder IS NULL;
|
||||
WHERE LTRIM (prs_perslid_nr, '0') = LTRIM (rec_prs_upd.prs_perslid_nr, '0')
|
||||
AND prs_perslid_verwijder IS NULL;
|
||||
EXCEPTION
|
||||
WHEN TOO_MANY_ROWS
|
||||
THEN
|
||||
@@ -870,7 +864,7 @@ BEGIN
|
||||
|
||||
SELECT g.alg_gebouw_key
|
||||
INTO v_gebouw_key
|
||||
FROM FAC_USRDATA ud, ALG_gebouw g
|
||||
FROM fac_usrdata ud, alg_gebouw g
|
||||
WHERE ud.fac_usrtab_key = c_usrtab_key
|
||||
AND ud.fac_usrdata_omschr = g.alg_gebouw_code
|
||||
AND ud.fac_usrdata_code = rec_prs_upd.prs_afdeling_naam
|
||||
@@ -930,8 +924,8 @@ BEGIN
|
||||
|| rec_prs_upd.prs_perslid_nr
|
||||
|| ': bepalen ruimte (ruimte zou bekend moeten zijn)';
|
||||
|
||||
SELECT alg_ruimte_key
|
||||
INTO v_ruimte_key
|
||||
SELECT alg_ruimte_nr, alg_ruimte_key
|
||||
INTO v_ruimte_nr, v_ruimte_key
|
||||
FROM alg_ruimte
|
||||
WHERE alg_verdieping_key = v_verdieping_key
|
||||
AND alg_ruimte_verwijder IS NULL
|
||||
@@ -941,14 +935,12 @@ BEGIN
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO alg_ruimte
|
||||
(alg_verdieping_key, alg_srtruimte_key, alg_ruimte_nr, alg_ruimte_omschrijving
|
||||
)
|
||||
VALUES (v_verdieping_key, c_srtruimte_default, c_ruimte_code, c_ruimte_omschr_default
|
||||
);
|
||||
(alg_verdieping_key, alg_srtruimte_key, alg_ruimte_nr, alg_ruimte_omschrijving)
|
||||
VALUES (v_verdieping_key, c_srtruimte_default, c_ruimte_code, c_ruimte_omschr_default);
|
||||
|
||||
-- Alsnog bepalen v_ruimte_key
|
||||
SELECT alg_ruimte_key
|
||||
INTO v_ruimte_key
|
||||
SELECT alg_ruimte_nr, alg_ruimte_key
|
||||
INTO v_ruimte_nr, v_ruimte_key
|
||||
FROM alg_ruimte
|
||||
WHERE alg_verdieping_key = v_verdieping_key
|
||||
AND alg_ruimte_verwijder IS NULL
|
||||
@@ -956,54 +948,125 @@ BEGIN
|
||||
-- Altijd ruimte met deze notatie!
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
v_errorhint :=
|
||||
'Persoon met persoonnummer '
|
||||
|| rec_prs_upd.prs_perslid_nr
|
||||
|| ': bepalen werkplek (werkplek zou bekend moeten zijn)';
|
||||
-- *** IMPLICIETE WERKPLEK (NIEUW) *********************************************
|
||||
-- Persoon krijgt wp op fictieve of echte ruimte.
|
||||
v_errorhint := 'Fout bij bepalen vrije werkplek';
|
||||
|
||||
SELECT prs_werkplek_key
|
||||
INTO v_werkplek_key
|
||||
FROM prs_werkplek
|
||||
WHERE prs_alg_ruimte_key = v_ruimte_key
|
||||
AND prs_werkplek_verwijder IS NULL
|
||||
AND prs_werkplek_volgnr = c_werkplek_volgnr_default;
|
||||
-- Altijd werkplek met deze notatie!
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO prs_werkplek
|
||||
(prs_werkplek_volgnr, prs_werkplek_omschrijving, prs_alg_ruimte_key,
|
||||
prs_werkplek_virtueel
|
||||
)
|
||||
VALUES (c_werkplek_volgnr_default, c_prs_werkplek_omschrijving, v_ruimte_key,
|
||||
1
|
||||
);
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count
|
||||
FROM prs_v_aanwezigwerkplek w
|
||||
WHERE w.prs_alg_ruimte_key = v_ruimte_key
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM prs_v_aanwezigperslidwerkplek pw
|
||||
WHERE pw.prs_werkplek_key = w.prs_werkplek_key);
|
||||
|
||||
-- Alsnog bepalen v_werkplek_key
|
||||
SELECT prs_werkplek_key
|
||||
INTO v_werkplek_key
|
||||
FROM prs_werkplek
|
||||
WHERE prs_alg_ruimte_key = v_ruimte_key
|
||||
AND prs_werkplek_verwijder IS NULL
|
||||
AND prs_werkplek_volgnr = c_werkplek_volgnr_default;
|
||||
-- Altijd werkplek met deze notatie!
|
||||
END;
|
||||
|
||||
IF v_aktie = 'INSERT' OR (v_nr_werkplek = 0 AND v_aktie = 'UPDATE')
|
||||
IF (v_count > 0)
|
||||
THEN
|
||||
INSERT INTO prs_perslidwerkplek
|
||||
(prs_perslid_key, prs_werkplek_key, prs_perslidwerkplek_bezetting
|
||||
)
|
||||
VALUES (v_perslid_key, v_werkplek_key, 0
|
||||
);
|
||||
ELSE -- v_aktie = 'UPDATE' AND v_nr_werkplek = 1
|
||||
UPDATE prs_perslidwerkplek
|
||||
SET prs_werkplek_key = v_werkplek_key
|
||||
WHERE prs_perslid_key = v_perslid_key;
|
||||
SELECT MIN (w.prs_werkplek_key)
|
||||
INTO v_werkplek_key
|
||||
FROM prs_v_aanwezigwerkplek w
|
||||
WHERE w.prs_alg_ruimte_key = v_ruimte_key
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM prs_v_aanwezigperslidwerkplek pw
|
||||
WHERE pw.prs_werkplek_key = w.prs_werkplek_key);
|
||||
|
||||
-- Verwijder (hard) de mogelijk eerder logisch verwijderde
|
||||
-- koppeling tussen dezelfde persoon en werkplek!!!
|
||||
DELETE FROM prs_perslidwerkplek pw
|
||||
WHERE pw.prs_perslid_key = v_perslid_key
|
||||
AND pw.prs_werkplek_key = v_werkplek_key
|
||||
AND pw.prs_perslidwerkplek_verwijder IS NOT NULL;
|
||||
|
||||
v_errorhint := 'Fout bij koppelen persoon aan vrije werkplek';
|
||||
|
||||
INSERT INTO prs_perslidwerkplek (prs_perslid_key,
|
||||
prs_werkplek_key,
|
||||
prs_perslidwerkplek_bezetting
|
||||
)
|
||||
VALUES (v_perslid_key, v_werkplek_key, 100);
|
||||
ELSE
|
||||
v_errorhint := 'Fout bij bepalen nieuwe werkplek';
|
||||
|
||||
SELECT COALESCE (MAX (w.prs_werkplek_volgnr), 0) + 1
|
||||
INTO v_werkplek_volgnr
|
||||
FROM prs_werkplek w
|
||||
WHERE w.prs_alg_ruimte_key = v_ruimte_key;
|
||||
|
||||
v_werkplek_oms := v_ruimte_nr || '/' || TO_CHAR (v_werkplek_volgnr);
|
||||
v_errorhint := 'Fout bij toevoegen nieuwe werkplek';
|
||||
|
||||
INSERT INTO prs_werkplek (prs_werkplek_module,
|
||||
prs_werkplek_volgnr,
|
||||
prs_werkplek_omschrijving,
|
||||
prs_alg_ruimte_key)
|
||||
VALUES ('PRR',
|
||||
v_werkplek_volgnr,
|
||||
v_werkplek_oms,
|
||||
v_ruimte_key)
|
||||
RETURNING prs_werkplek_key
|
||||
INTO v_werkplek_key;
|
||||
|
||||
v_errorhint :=
|
||||
'Fout bij koppelen persoon aan nieuwe werkplek';
|
||||
|
||||
INSERT INTO prs_perslidwerkplek ( prs_perslid_key,
|
||||
prs_werkplek_key,
|
||||
prs_perslidwerkplek_bezetting
|
||||
)
|
||||
VALUES (v_perslid_key, v_werkplek_key, 100);
|
||||
END IF;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
---- *** EXPLICIETE WERKPLEK (OUD) ***********************************************
|
||||
-- BEGIN
|
||||
-- v_errorhint :=
|
||||
-- 'Persoon met persoonnummer '
|
||||
-- || rec_prs_upd.prs_perslid_nr
|
||||
-- || ': bepalen werkplek (werkplek zou bekend moeten zijn)';
|
||||
--
|
||||
-- SELECT prs_werkplek_key
|
||||
-- INTO v_werkplek_key
|
||||
-- FROM prs_werkplek
|
||||
-- WHERE prs_alg_ruimte_key = v_ruimte_key
|
||||
-- AND prs_werkplek_verwijder IS NULL
|
||||
-- AND prs_werkplek_volgnr = c_werkplek_volgnr_default;
|
||||
-- -- Altijd werkplek met deze notatie!
|
||||
-- EXCEPTION
|
||||
-- WHEN NO_DATA_FOUND
|
||||
-- THEN
|
||||
-- INSERT INTO prs_werkplek
|
||||
-- (prs_werkplek_volgnr, prs_werkplek_omschrijving, prs_alg_ruimte_key,
|
||||
-- prs_werkplek_virtueel
|
||||
-- )
|
||||
-- VALUES (c_werkplek_volgnr_default, c_prs_werkplek_omschrijving, v_ruimte_key,
|
||||
-- 1
|
||||
-- );
|
||||
--
|
||||
-- -- Alsnog bepalen v_werkplek_key
|
||||
-- SELECT prs_werkplek_key
|
||||
-- INTO v_werkplek_key
|
||||
-- FROM prs_werkplek
|
||||
-- WHERE prs_alg_ruimte_key = v_ruimte_key
|
||||
-- AND prs_werkplek_verwijder IS NULL
|
||||
-- AND prs_werkplek_volgnr = c_werkplek_volgnr_default;
|
||||
-- -- Altijd werkplek met deze notatie!
|
||||
-- END;
|
||||
--
|
||||
-- IF v_aktie = 'INSERT' OR (v_nr_werkplek = 0 AND v_aktie = 'UPDATE')
|
||||
-- THEN
|
||||
-- INSERT INTO prs_perslidwerkplek
|
||||
-- (prs_perslid_key, prs_werkplek_key, prs_perslidwerkplek_bezetting
|
||||
-- )
|
||||
-- VALUES (v_perslid_key, v_werkplek_key, 0
|
||||
-- );
|
||||
-- ELSE -- v_aktie = 'UPDATE' AND v_nr_werkplek = 1
|
||||
-- UPDATE prs_perslidwerkplek
|
||||
-- SET prs_werkplek_key = v_werkplek_key
|
||||
-- WHERE prs_perslid_key = v_perslid_key;
|
||||
-- END IF;
|
||||
END IF; -- gebouw
|
||||
END IF; -- afdeling
|
||||
|
||||
v_buffercount := v_buffercount + 1;
|
||||
|
||||
@@ -1012,6 +1075,7 @@ BEGIN
|
||||
COMMIT;
|
||||
v_buffercount := 0;
|
||||
END IF;
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
@@ -1075,13 +1139,10 @@ END;
|
||||
/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE OR REPLACE VIEW CWTD_V_NOTI_CNTREMINDER
|
||||
(CODE, SENDER, RECEIVER, TEXT, KEY,
|
||||
(CODE, SENDER, RECEIVER, TEXT, KEY,
|
||||
PAR1, PAR2, XKEY)
|
||||
AS
|
||||
AS
|
||||
SELECT '', '', 2521,
|
||||
'Rapp<EFBFBD>l: Contract '
|
||||
|| c.cnt_contract_nummer_intern
|
||||
@@ -1099,11 +1160,8 @@ SELECT '', '', 2521,
|
||||
AND trunc(SYSDATE) = trunc(cnt.cnt_getrappeldatum(c.cnt_contract_key));
|
||||
|
||||
|
||||
|
||||
|
||||
show errors
|
||||
|
||||
SHOW ERRORS
|
||||
|
||||
|
||||
COMMIT;
|
||||
spool off
|
||||
SPOOL OFF
|
||||
|
||||
Reference in New Issue
Block a user