953 lines
24 KiB
SQL
953 lines
24 KiB
SQL
drop trigger conn_prs_kenmerklink_b_u_i;
|
|
|
|
/* Bestaat al
|
|
CREATE TABLE CONN_EXP_TELEFOON
|
|
(
|
|
PERSONEELSNR VARCHAR2(16) NOT NULL,
|
|
LOGIN VARCHAR2(30),
|
|
TELEFOONNR VARCHAR2(15),
|
|
MOBIELNR VARCHAR2(15),
|
|
FAXNR VARCHAR2(15),
|
|
EMAIL VARCHAR2(50),
|
|
MUTATIEDATUMTIJD DATE DEFAULT sysdate
|
|
);
|
|
|
|
*/
|
|
|
|
CREATE TABLE CONN_EXP_DEBITEUR
|
|
(prs_key NUMBER(10)
|
|
,prs_type VARCHAR2(1)
|
|
,Huurdernummer VARCHAR2(20)
|
|
,Budgetcode VARCHAR2(20)
|
|
,Factureren_aan VARCHAR2(20)
|
|
,Debiteurnaam VARCHAR2(60)
|
|
,Adres VARCHAR2(35)
|
|
,Postcode VARCHAR2(12)
|
|
,Plaats VARCHAR2(30)
|
|
,Land VARCHAR2(30)
|
|
,Telefoon VARCHAR2(20)
|
|
,Fax VARCHAR2(20)
|
|
,Email VARCHAR2(80)
|
|
,Blokering VARCHAR2(3)
|
|
,Mutatiedatumtijd DATE
|
|
);
|
|
|
|
|
|
|
|
CREATE OR REPLACE TRIGGER conn_prs_afdeling_u_i
|
|
AFTER UPDATE OR INSERT
|
|
ON prs_afdeling
|
|
REFERENCING NEW AS NEW OLD AS OLD
|
|
FOR EACH ROW
|
|
DECLARE
|
|
v_count NUMBER (10);
|
|
v_fout VARCHAR2 (2048);
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into v_count
|
|
FROM CONN_EXP_DEBITEUR
|
|
WHERE prs_key = :NEW.prs_afdeling_key
|
|
AND prs_type = 'A'
|
|
AND Blokering <> 'JA';
|
|
|
|
IF (v_count = 0) THEN
|
|
|
|
IF :NEW.prs_afdeling_verwijder IS NULL THEN
|
|
|
|
insert into CONN_EXP_DEBITEUR
|
|
(prs_key
|
|
,prs_type
|
|
,Debiteurnaam
|
|
,Mutatiedatumtijd
|
|
,Blokering)
|
|
values
|
|
(:NEW.prs_afdeling_key
|
|
,'A'
|
|
,''
|
|
,sysdate
|
|
,'NEE');
|
|
|
|
END IF;
|
|
|
|
ELSE
|
|
|
|
IF :NEW.prs_afdeling_verwijder IS NULL THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Mutatiedatumtijd = sysdate
|
|
where prs_key = :NEW.PRS_AFDELING_KEY
|
|
and prs_type = 'A'
|
|
and Blokering <> 'JA';
|
|
|
|
ELSE
|
|
|
|
-- Eigenlijk is dit de delete aktie
|
|
update CONN_EXP_DEBITEUR
|
|
set Mutatiedatumtijd = sysdate
|
|
,Blokering = 'JA'
|
|
where prs_key in (:NEW.prs_afdeling_key, :OLD.prs_afdeling_key)
|
|
and prs_type = 'A'
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_fout := SQLERRM;
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE TRIGGER conn_prs_afdeling_d
|
|
AFTER DELETE
|
|
ON prs_afdeling
|
|
REFERENCING NEW AS NEW OLD AS OLD
|
|
FOR EACH ROW
|
|
DECLARE
|
|
v_fout VARCHAR2 (2048);
|
|
v_aantal NUMBER (1);
|
|
BEGIN
|
|
|
|
-- Eigenlijk is dit de delete aktie
|
|
update CONN_EXP_DEBITEUR
|
|
set Mutatiedatumtijd = sysdate
|
|
,Blokering = 'JA'
|
|
where prs_key in (:NEW.prs_afdeling_key, :OLD.prs_afdeling_key)
|
|
and prs_type = 'A'
|
|
and Blokering <> 'JA';
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_fout := SQLERRM;
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE TRIGGER conn_prs_bedrijf_u_i
|
|
AFTER UPDATE OR INSERT
|
|
ON prs_bedrijf
|
|
REFERENCING NEW AS NEW OLD AS OLD
|
|
FOR EACH ROW
|
|
DECLARE
|
|
v_count NUMBER (10);
|
|
v_fout VARCHAR2 (2048);
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into v_count
|
|
FROM CONN_EXP_DEBITEUR
|
|
WHERE prs_key = :NEW.prs_bedrijf_key
|
|
AND prs_type = 'B'
|
|
AND Blokering <> 'JA';
|
|
|
|
IF :new.prs_bedrijf_huurder = 1 THEN
|
|
|
|
|
|
IF (v_count = 0) THEN
|
|
|
|
IF :NEW.prs_bedrijf_verwijder IS NULL THEN
|
|
|
|
insert into CONN_EXP_DEBITEUR
|
|
(prs_key
|
|
,prs_type
|
|
,Adres
|
|
,Postcode
|
|
,Plaats
|
|
,Land
|
|
,Telefoon
|
|
,Fax
|
|
,Email
|
|
,Blokering
|
|
,Mutatiedatumtijd)
|
|
values
|
|
(:NEW.prs_bedrijf_key
|
|
,'B'
|
|
,SUBSTR(:NEW.PRS_BEDRIJF_POST_ADRES,1,35)
|
|
,SUBSTR(:NEW.PRS_BEDRIJF_POST_POSTCODE,1,12)
|
|
,SUBSTR(:NEW.PRS_BEDRIJF_POST_PLAATS,1,30)
|
|
,SUBSTR(:NEW.PRS_BEDRIJF_POST_LAND,1,30)
|
|
,SUBSTR(:NEW.PRS_BEDRIJF_TELEFOON,1,20)
|
|
,SUBSTR(:NEW.PRS_BEDRIJF_FAX,1,20)
|
|
,SUBSTR(:NEW.PRS_BEDRIJF_EMAIL,1,80)
|
|
,'NEE'
|
|
,sysdate);
|
|
|
|
END IF;
|
|
|
|
ELSE
|
|
|
|
IF :NEW.prs_bedrijf_verwijder IS NULL THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Adres = SUBSTR(:NEW.PRS_BEDRIJF_POST_ADRES,1,35)
|
|
,Postcode = SUBSTR(:NEW.PRS_BEDRIJF_POST_POSTCODE,1,12)
|
|
,Plaats = SUBSTR(:NEW.PRS_BEDRIJF_POST_PLAATS,1,30)
|
|
,Land = SUBSTR(:NEW.PRS_BEDRIJF_POST_LAND,1,30)
|
|
,Telefoon = SUBSTR(:NEW.PRS_BEDRIJF_TELEFOON,1,20)
|
|
,Fax = SUBSTR(:NEW.PRS_BEDRIJF_FAX,1,20)
|
|
,Email = SUBSTR(:NEW.PRS_BEDRIJF_EMAIL,1,80)
|
|
,Mutatiedatumtijd = sysdate
|
|
where prs_key = :NEW.PRS_BEDRIJF_KEY
|
|
and prs_type = 'B'
|
|
and Blokering <> 'JA';
|
|
|
|
ELSE
|
|
|
|
-- Eigenlijk is dit de delete aktie
|
|
update CONN_EXP_DEBITEUR
|
|
set Mutatiedatumtijd = sysdate
|
|
,Blokering = 'JA'
|
|
where prs_key in (:NEW.prs_bedrijf_key, :OLD.prs_bedrijf_key)
|
|
and prs_type = 'B'
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
|
|
END IF;
|
|
|
|
ELSE
|
|
|
|
IF (v_count > 0) THEN
|
|
|
|
-- Eigenlijk is dit de delete aktie
|
|
update CONN_EXP_DEBITEUR
|
|
set Mutatiedatumtijd = sysdate
|
|
,Blokering = 'JA'
|
|
where prs_key in (:NEW.prs_bedrijf_key, :OLD.prs_bedrijf_key)
|
|
and prs_type = 'B'
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
END IF; -- IF :new.huurder = 1
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_fout := SQLERRM;
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE TRIGGER conn_prs_perslid_u_i2
|
|
AFTER UPDATE OR INSERT
|
|
ON prs_perslid
|
|
REFERENCING NEW AS NEW OLD AS OLD
|
|
FOR EACH ROW
|
|
DECLARE
|
|
v_count NUMBER (10);
|
|
v_fout VARCHAR2 (2048);
|
|
BEGIN
|
|
|
|
IF :NEW.prs_perslid_nr IS NULL THEN
|
|
|
|
v_count := 0;
|
|
|
|
ELSE
|
|
|
|
select count(*)
|
|
into v_count
|
|
FROM CONN_EXP_TELEFOON
|
|
WHERE PERSONEELSNR = :OLD.prs_perslid_nr;
|
|
|
|
END IF;
|
|
|
|
|
|
|
|
IF (v_count = 0) THEN
|
|
|
|
IF (:NEW.prs_perslid_verwijder IS NULL) AND NOT (:NEW.prs_perslid_nr IS NULL) THEN
|
|
|
|
insert into CONN_EXP_TELEFOON
|
|
(PERSONEELSNR
|
|
,LOGIN
|
|
,TELEFOONNR)
|
|
values
|
|
(substr(:NEW.prs_perslid_nr,1,16)
|
|
,substr(:NEW.prs_perslid_oslogin,1,30)
|
|
,substr(:NEW.prs_perslid_telefoonnr,1,15));
|
|
|
|
END IF;
|
|
|
|
ELSE
|
|
|
|
IF :NEW.prs_perslid_verwijder IS NULL THEN
|
|
|
|
update CONN_EXP_TELEFOON
|
|
set LOGIN = :NEW.prs_perslid_oslogin
|
|
,TELEFOONNR = :NEW.prs_perslid_telefoonnr
|
|
,PERSONEELSNR = :NEW.prs_perslid_nr
|
|
,MUTATIEDATUMTIJD = sysdate
|
|
WHERE PERSONEELSNR = :OLD.prs_perslid_nr;
|
|
|
|
ELSE
|
|
|
|
delete
|
|
from CONN_EXP_TELEFOON
|
|
WHERE PERSONEELSNR = :NEW.prs_perslid_nr;
|
|
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_fout := SQLERRM;
|
|
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE TRIGGER conn_prs_bedrijf_d
|
|
AFTER DELETE
|
|
ON prs_bedrijf
|
|
REFERENCING NEW AS NEW OLD AS OLD
|
|
FOR EACH ROW
|
|
DECLARE
|
|
v_fout VARCHAR2 (2048);
|
|
v_aantal NUMBER (1);
|
|
BEGIN
|
|
|
|
IF :old.prs_bedrijf_huurder = 1 THEN
|
|
|
|
-- Eigenlijk is dit de delete aktie
|
|
update CONN_EXP_DEBITEUR
|
|
set Mutatiedatumtijd = sysdate
|
|
,Blokering = 'JA'
|
|
where prs_key in (:NEW.prs_bedrijf_key, :OLD.prs_bedrijf_key)
|
|
and prs_type = 'B'
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_fout := SQLERRM;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE TRIGGER conn_prs_perslid_d
|
|
AFTER DELETE
|
|
ON prs_perslid
|
|
REFERENCING NEW AS NEW OLD AS OLD
|
|
FOR EACH ROW
|
|
DECLARE
|
|
v_fout VARCHAR2 (2048);
|
|
v_aantal NUMBER (1);
|
|
BEGIN
|
|
|
|
delete
|
|
from CONN_EXP_TELEFOON
|
|
where PERSONEELSNR = :old.prs_perslid_nr;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_fout := SQLERRM;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE TRIGGER conn_prs_kenmerklink_u_i
|
|
AFTER UPDATE OR INSERT
|
|
ON prs_kenmerklink
|
|
REFERENCING NEW AS NEW OLD AS OLD
|
|
FOR EACH ROW
|
|
DECLARE
|
|
v_fout VARCHAR2 (2048);
|
|
v_message VARCHAR2(32);
|
|
v_aantal NUMBER (1);
|
|
v_kenmerklink_waarde prs_kenmerklink.prs_kenmerklink_waarde%type;
|
|
v_link_key prs_perslid.prs_perslid_key%type;
|
|
v_perslid_nr prs_perslid.prs_perslid_nr%type;
|
|
BEGIN
|
|
|
|
IF :new.prs_kenmerklink_verwijder IS NULL THEN
|
|
v_kenmerklink_waarde := :new.prs_kenmerklink_waarde;
|
|
ELSE
|
|
v_kenmerklink_waarde := '';
|
|
END IF;
|
|
|
|
IF (:new.prs_kenmerk_key = 5) -- Email (type = P)
|
|
or (:new.prs_kenmerk_key = 1080) -- Faxnr (type = P)
|
|
or (:new.prs_kenmerk_key = 1081) -- Mobielnr (type = P)
|
|
|
|
THEN
|
|
|
|
BEGIN
|
|
|
|
BEGIN
|
|
|
|
v_perslid_nr := '';
|
|
v_link_key := -1;
|
|
|
|
IF :new.prs_kenmerklink_niveau = 'P' THEN
|
|
|
|
select prs_perslid_nr
|
|
into v_perslid_nr
|
|
from prs_perslid
|
|
where prs_perslid_verwijder is null
|
|
and prs_perslid_key = :new.prs_link_key;
|
|
|
|
END IF;
|
|
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_perslid_nr := v_perslid_nr;
|
|
|
|
END;
|
|
|
|
-- Email (type = P)
|
|
IF (:new.prs_kenmerk_key = 5) THEN
|
|
|
|
update CONN_EXP_TELEFOON
|
|
set EMAIL = SUBSTR(v_kenmerklink_waarde,1,50)
|
|
where PERSONEELSNR = v_perslid_nr;
|
|
|
|
END IF;
|
|
|
|
-- Faxnr (type = P)
|
|
IF (:new.prs_kenmerk_key = 1080) THEN
|
|
|
|
update CONN_EXP_TELEFOON
|
|
set FAXNR = SUBSTR(v_kenmerklink_waarde,1,15)
|
|
where PERSONEELSNR = v_perslid_nr;
|
|
|
|
END IF;
|
|
|
|
-- Mobielnr (type = P)
|
|
IF (:new.prs_kenmerk_key = 1081) THEN
|
|
|
|
update CONN_EXP_TELEFOON
|
|
set MOBIELNR = SUBSTR(v_kenmerklink_waarde,1,15)
|
|
where PERSONEELSNR = v_perslid_nr;
|
|
|
|
END IF;
|
|
|
|
|
|
END;
|
|
|
|
END IF;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
|
|
v_fout := SQLERRM;
|
|
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
|
|
CREATE OR REPLACE TRIGGER conn_prs_kenmerklink_u_i2
|
|
AFTER UPDATE OR INSERT
|
|
ON prs_kenmerklink
|
|
REFERENCING NEW AS NEW OLD AS OLD
|
|
FOR EACH ROW
|
|
DECLARE
|
|
v_fout VARCHAR2 (2048);
|
|
v_message VARCHAR2(32);
|
|
v_aantal NUMBER (1);
|
|
v_kenmerklink_waarde prs_kenmerklink.prs_kenmerklink_waarde%type;
|
|
v_perslid_nr prs_perslid.prs_perslid_nr%type;
|
|
v_link_key prs_perslid.prs_perslid_key%type;
|
|
BEGIN
|
|
|
|
-- Init
|
|
IF :new.prs_kenmerklink_verwijder IS NULL THEN
|
|
v_kenmerklink_waarde := :new.prs_kenmerklink_waarde;
|
|
ELSE
|
|
v_kenmerklink_waarde := '';
|
|
END IF;
|
|
v_link_key := -1;
|
|
|
|
IF (:new.prs_kenmerk_key = 1102) -- Straat + nr (type = A)
|
|
or (:new.prs_kenmerk_key = 1103) -- Postcode (type = A)
|
|
or (:new.prs_kenmerk_key = 1104) -- Plaats (type = A)
|
|
or (:new.prs_kenmerk_key = 1061) -- Huurdernr (type = A)
|
|
or (:new.prs_kenmerk_key = 1010) -- Huurdernummer (type = B)
|
|
or (:new.prs_kenmerk_key = 1060) -- Budgetcode (type = A)
|
|
or (:new.prs_kenmerk_key = 1011) -- Budgetcode (type = B)
|
|
or (:new.prs_kenmerk_key = 1100) -- Factureren aan (type = A)
|
|
or (:new.prs_kenmerk_key = 1014) -- Factureren aan (type = B)
|
|
or (:new.prs_kenmerk_key = 1013) -- Debiteurnaam (type = A)
|
|
or (:new.prs_kenmerk_key = 1012) -- Officiele_bedrijfsnaam (type = B)
|
|
THEN
|
|
|
|
-- Bepalen v_link_key
|
|
|
|
IF :new.prs_kenmerklink_niveau = 'A' THEN
|
|
|
|
select prs_afdeling_key
|
|
into v_link_key
|
|
from prs_afdeling
|
|
where prs_afdeling_verwijder is null
|
|
and prs_afdeling_key = :new.prs_link_key;
|
|
|
|
END IF;
|
|
|
|
IF :new.prs_kenmerklink_niveau = 'B' THEN
|
|
|
|
select prs_bedrijf_key
|
|
into v_link_key
|
|
from prs_bedrijf
|
|
where prs_bedrijf_verwijder is null
|
|
and prs_bedrijf_key = :new.prs_link_key;
|
|
|
|
END IF;
|
|
|
|
-- Huurdernr (type = A)
|
|
IF (:new.prs_kenmerk_key = 1061) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Huurdernummer = SUBSTR(v_kenmerklink_waarde,1,20)
|
|
where prs_key = v_link_key
|
|
and prs_type = :new.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
update prs_afdeling
|
|
set prs_afdeling_kostenplaats = SUBSTR(prs_afdeling_kostenplaats||'/',1,20)
|
|
where prs_afdeling_key = v_link_key
|
|
and ( (instr(prs_afdeling_kostenplaats,'/') = 0) or (prs_afdeling_kostenplaats is null) );
|
|
|
|
update prs_afdeling
|
|
set prs_afdeling_kostenplaats =
|
|
replace(prs_afdeling_kostenplaats,
|
|
substr(prs_afdeling_kostenplaats,instr(prs_afdeling_kostenplaats,'/')),
|
|
'/'||substr(v_kenmerklink_waarde,1,20)
|
|
)
|
|
where prs_afdeling_key = v_link_key;
|
|
|
|
END IF;
|
|
|
|
-- Huurdernummer (type = B)
|
|
IF (:new.prs_kenmerk_key = 1010) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Huurdernummer = SUBSTR(v_kenmerklink_waarde,1,20)
|
|
where prs_key = v_link_key
|
|
and prs_type = :new.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
update prs_bedrijf
|
|
set prs_leverancier_nr = SUBSTR(prs_leverancier_nr||'/',1,20)
|
|
where prs_bedrijf_key = v_link_key
|
|
and ( (instr(prs_leverancier_nr,'/') = 0) or (prs_leverancier_nr is null) );
|
|
|
|
update prs_bedrijf
|
|
set prs_leverancier_nr =
|
|
substr(
|
|
replace(NVL(prs_leverancier_nr,''),
|
|
substr(NVL(prs_leverancier_nr,''),instr(NVL(prs_leverancier_nr,''),'/')),
|
|
'/'||SUBSTR(v_kenmerklink_waarde,1,20)
|
|
)
|
|
,1,20)
|
|
where prs_bedrijf_key = v_link_key;
|
|
|
|
END IF;
|
|
|
|
-- Budgetcode (type = A)
|
|
IF (:new.prs_kenmerk_key = 1060) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Budgetcode = SUBSTR(v_kenmerklink_waarde,1,20)
|
|
where prs_key = v_link_key
|
|
and prs_type = :new.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
update prs_afdeling
|
|
set prs_afdeling_kostenplaats = SUBSTR(prs_afdeling_kostenplaats||'/',1,20)
|
|
where prs_afdeling_key = v_link_key
|
|
and ( (instr(prs_afdeling_kostenplaats,'/') = 0) or (prs_afdeling_kostenplaats is null) );
|
|
|
|
update prs_afdeling
|
|
set prs_afdeling_kostenplaats =
|
|
replace(prs_afdeling_kostenplaats,
|
|
substr(prs_afdeling_kostenplaats,1,instr(prs_afdeling_kostenplaats,'/')),
|
|
substr(v_kenmerklink_waarde,1,20)||'/'
|
|
)
|
|
where prs_afdeling_key = v_link_key;
|
|
|
|
END IF;
|
|
|
|
-- Budgetcode (type = B)
|
|
IF (:new.prs_kenmerk_key = 1011) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Budgetcode = SUBSTR(v_kenmerklink_waarde,1,20)
|
|
where prs_key = v_link_key
|
|
and prs_type = :new.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
update prs_bedrijf
|
|
set prs_leverancier_nr = SUBSTR(prs_leverancier_nr||'/',1,20)
|
|
where prs_bedrijf_key = v_link_key
|
|
and ( (instr(prs_leverancier_nr,'/') = 0) or (prs_leverancier_nr is null) );
|
|
|
|
update prs_bedrijf
|
|
set prs_leverancier_nr =
|
|
substr(
|
|
replace(NVL(prs_leverancier_nr,''),
|
|
substr(NVL(prs_leverancier_nr,''),1,instr(NVL(prs_leverancier_nr,''),'/')),
|
|
SUBSTR(v_kenmerklink_waarde,1,20)||'/'
|
|
)
|
|
,1,20)
|
|
where prs_bedrijf_key = v_link_key;
|
|
|
|
END IF;
|
|
|
|
-- Factureren aan (type = A)
|
|
IF (:new.prs_kenmerk_key = 1100) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Factureren_aan = SUBSTR(v_kenmerklink_waarde,1,20)
|
|
where prs_key = v_link_key
|
|
and prs_type = :new.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
-- Factureren aan (type = B)
|
|
IF (:new.prs_kenmerk_key = 1014) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Factureren_aan = SUBSTR(v_kenmerklink_waarde,1,20)
|
|
where prs_key = v_link_key
|
|
and prs_type = :new.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
-- Debiteurnaam (type = A)
|
|
IF (:new.prs_kenmerk_key = 1013) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Debiteurnaam = SUBSTR(v_kenmerklink_waarde,1,60)
|
|
where prs_key = v_link_key
|
|
and prs_type = :new.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
-- Officiele_bedrijfsnaam (type = B)
|
|
IF (:new.prs_kenmerk_key = 1012) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Debiteurnaam = SUBSTR(v_kenmerklink_waarde,1,60)
|
|
where prs_key = v_link_key
|
|
and prs_type = :new.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
-- Straat + nr / Adres (type = A)
|
|
IF (:new.prs_kenmerk_key = 1102) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Adres = SUBSTR(v_kenmerklink_waarde,1,35)
|
|
where prs_key = :new.prs_link_key
|
|
and prs_type = :new.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
-- Postcode (type = A)
|
|
IF (:new.prs_kenmerk_key = 1103) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Postcode = SUBSTR(v_kenmerklink_waarde,1,12)
|
|
where prs_key = :new.prs_link_key
|
|
and prs_type = :new.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
-- Plaats (type = A)
|
|
IF (:new.prs_kenmerk_key = 1104) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Plaats = SUBSTR(v_kenmerklink_waarde,1,30)
|
|
where prs_key = :new.prs_link_key
|
|
and prs_type = :new.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
|
|
v_fout := SQLERRM;
|
|
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE TRIGGER conn_prs_kenmerklink_d
|
|
AFTER DELETE
|
|
ON prs_kenmerklink
|
|
REFERENCING NEW AS NEW OLD AS OLD
|
|
FOR EACH ROW
|
|
DECLARE
|
|
v_fout VARCHAR2 (2048);
|
|
v_aantal NUMBER (1);
|
|
v_perslid_nr prs_perslid.prs_perslid_nr%type;
|
|
BEGIN
|
|
|
|
-- Adres
|
|
IF (:old.prs_kenmerk_key = 1102) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Adres = ''
|
|
where prs_key = :old.prs_link_key
|
|
and prs_type = :old.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
-- Postcode
|
|
IF (:old.prs_kenmerk_key = 1103) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Postcode = ''
|
|
where prs_key = :old.prs_link_key
|
|
and prs_type = :old.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
-- Plaats
|
|
IF (:old.prs_kenmerk_key = 1104) THEN
|
|
|
|
update CONN_EXP_DEBITEUR
|
|
set Plaats = ''
|
|
where prs_key = :old.prs_link_key
|
|
and prs_type = :old.prs_kenmerklink_niveau
|
|
and Blokering <> 'JA';
|
|
|
|
END IF;
|
|
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_fout := SQLERRM;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE TRIGGER conn_prs_kenmerklink_d2
|
|
AFTER DELETE
|
|
ON prs_kenmerklink
|
|
REFERENCING NEW AS NEW OLD AS OLD
|
|
FOR EACH ROW
|
|
DECLARE
|
|
v_fout VARCHAR2 (2048);
|
|
v_aantal NUMBER (1);
|
|
v_perslid_nr prs_perslid.prs_perslid_nr%type;
|
|
BEGIN
|
|
|
|
IF (:old.prs_kenmerk_key = 5) or (:old.prs_kenmerk_key = 1080) or (:old.prs_kenmerk_key = 1081) THEN
|
|
|
|
BEGIN
|
|
|
|
BEGIN
|
|
|
|
select max(prs_perslid_nr)
|
|
into v_perslid_nr
|
|
from prs_perslid
|
|
where prs_perslid_verwijder is null
|
|
and prs_perslid_key = :old.prs_link_key;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_perslid_nr := '';
|
|
END;
|
|
|
|
-- Emailadres
|
|
IF (:old.prs_kenmerk_key = 5) THEN
|
|
|
|
update CONN_EXP_TELEFOON
|
|
set EMAIL = ''
|
|
where PERSONEELSNR = v_perslid_nr;
|
|
|
|
END IF;
|
|
|
|
-- Faxnr
|
|
IF (:old.prs_kenmerk_key = 1080) THEN
|
|
|
|
update CONN_EXP_TELEFOON
|
|
set FAXNR = ''
|
|
where PERSONEELSNR = v_perslid_nr;
|
|
|
|
END IF;
|
|
|
|
-- Mobielnr
|
|
IF (:old.prs_kenmerk_key = 1081) THEN
|
|
|
|
update CONN_EXP_TELEFOON
|
|
set MOBIELNR = ''
|
|
where PERSONEELSNR = v_perslid_nr;
|
|
|
|
END IF;
|
|
|
|
END;
|
|
|
|
END IF;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_fout := SQLERRM;
|
|
END;
|
|
/
|
|
|
|
|
|
commit;
|
|
|
|
|
|
-- ********************************************
|
|
-- *** Werk tabel CONN_EXP_DEBITEUR bij ... ***
|
|
-- ********************************************
|
|
|
|
|
|
|
|
update prs_afdeling
|
|
set prs_afdeling_naam = prs_afdeling_naam
|
|
where prs_afdeling_verwijder is null;
|
|
|
|
commit;
|
|
|
|
update prs_bedrijf
|
|
set prs_bedrijf_key = prs_bedrijf_key
|
|
where prs_bedrijf_verwijder is null;
|
|
|
|
commit;
|
|
|
|
delete from CONN_EXP_TELEFOON;
|
|
|
|
commit;
|
|
|
|
update prs_perslid
|
|
set prs_perslid_key = prs_perslid_key
|
|
where prs_perslid_verwijder is null;
|
|
|
|
commit;
|
|
|
|
update prs_kenmerklink
|
|
set PRS_KENMERK_KEY = PRS_KENMERK_KEY
|
|
where prs_kenmerklink_verwijder is null;
|
|
|
|
commit;
|
|
|
|
|
|
/* test CONN_EXP_DEBITEUR + CONN_EXP_TELEFOON
|
|
|
|
1. BEDRIJF
|
|
1.1 Worden alle bedrijfgegevens initieel (na verwerking sql-update Facilitor) gevuld?
|
|
|
|
Vul voor aanroep van sql-update-data het volgende bedrijf toe:
|
|
|
|
insert into prs_bedrijf
|
|
(prs_bedrijf_naam
|
|
,prs_bedrijf_post_adres
|
|
,prs_bedrijf_post_postcode
|
|
,prs_bedrijf_post_plaats
|
|
,prs_bedrijf_post_land
|
|
,prs_bedrijf_telefoon
|
|
,prs_bedrijf_fax
|
|
,prs_bedrijf_email
|
|
,prs_bedrijf_huurder)
|
|
values
|
|
('Dijkoraad'
|
|
,'post_adres'
|
|
,'post_pcode'
|
|
,'post_plaats'
|
|
,'post_land'
|
|
,'telefoon'
|
|
,'fax'
|
|
,'email'
|
|
,'1');
|
|
|
|
... en voeg tevens in Facilitor waarden toe voor de flexibele kenmerken:
|
|
1. Huurdernummer
|
|
2. Budgetcode
|
|
3. Factureren_aan
|
|
4. Officile bedrijfsnaam (Debiteurnaam)
|
|
|
|
Voer de sql-update-data routine uit.
|
|
|
|
Resultaat 2 onderstaande query = 412:
|
|
select count(*) from CONN_EXP_DEBITEUR where prs_type = 'B'
|
|
|
|
select count(*)
|
|
from prs_bedrijf
|
|
where prs_bedrijf_verwijder is null
|
|
and prs_bedrijf_huurder = '1'
|
|
|
|
1.2 Worden alle bedrijfgegevens correct gewijzigd (alle velden incl. flexibele kenmerken, zie 1.1)?
|
|
1.3 Toggele vinkje 'Huurder': krijgt het veld blokering de waarde 'JA' bij verwijderen vinkje?
|
|
En worden de velden met rust gelaten indien in Facilitor een bedrijf geen huurder meer is en de
|
|
gegevens van betreffende bedrijf in Facilitor veranderen, incl. flexibele kenmerken?
|
|
Zet het vinkje er weer op. Wordt er een nieuw records aangemaakt in de koppeltabel met alle waarden ingevuld?
|
|
1.4 Worden bedrijfgegevens 'verwijderd' (Blokering wordt 'JA'?) bij verwijderen v/e bedrijf uit Facilitor?
|
|
1.5 Worden van alle bedrijven, dus ook bedrijven die geen huurder zijn, het leveranciernummer bijgewerkt?
|
|
1.6 Voeg een bedrijf toe middels de web-interface. Wordt de koppeltabel correct bijgewerkt?
|
|
|
|
2. AFDELING
|
|
2.1 Worden alle afdelingsgegevens (dus alle velden incl waarden voor flexibele kenmerken) initieel
|
|
(na verwerking sql-update Facilitor) gevuld?
|
|
|
|
Onderstaande 2 queries geven beide hetzelfde resultaat, te weten 772:
|
|
select count(*) from CONN_EXP_DEBITEUR where prs_type = 'A'
|
|
select count(*) from prs_afdeling where prs_afdeling_verwijder is null
|
|
2.2 Worden alle afdelinggegevens correct gewijzigd bij wijzigingen middels de web-interface (alle velden incl.
|
|
flexibele kenmerken, zie 2.1)?
|
|
2.3 Worden afdelingsgegevens 'verwijderd' (Blokering wordt 'JA'?) bij verwijderen v/e bedrijf uit Facilitor?
|
|
2.4 Voeg een afdeling toe middels de web-interface. Wordt de koppeltabel correct bijgewerkt?
|
|
2.5 Wordt het veld Kostenplaats correct geupdate (dit veld is afhankelijk van de flexibele kenmerken Budgetcode
|
|
en huurdernummer).
|
|
|
|
3. PERSONEN
|
|
LET OP, getest met:
|
|
drop trigger CONN_ETN_ARI;
|
|
drop trigger CONN_ETN_ARU;
|
|
In CONN klaagen een insert-statement alsnog mbt de bovenstaande trigger. Kennelijk wordt vanuit CONN
|
|
verwezen naar CONN_448??? Drop de user ook in CONN_448.
|
|
3.1 Worden alle persoonsgegevens (dus alle velden incl waarden voor flexibele kenmerken) initieel
|
|
(na verwerking sql-update Facilitor) gevuld?
|
|
3.2 Wijzigen alle velden (dus ook de flexibele kenmerken Emailadres, Faxnr en Mobilenr) in de koppeltabel correct
|
|
bij wijzigen van de persoongegevens, dus ook het verwijderen van een kenmerkwaarde?
|
|
Wijzig ook het personeelsnummer: er mag geen nieuw record aangemaakt worden!
|
|
3.3 Delete een persoon (verwijderdatum krijgt een waarde) en voeg deze weer toe met HETZELFDE personeelsnummer.
|
|
|
|
|
|
|
|
|
|
OPMERKINGEN:
|
|
|
|
1.6 Bij invullen van alle waarden, dus inclusief alle flexibele kenmerken, worden de flexibele kenmerken
|
|
NIET opgeslagen, inclusief het record in de koppeltabel. In 2-de instantie (wijzigen) lukt dit wel.
|
|
==> FSN#1210 - PRS: flexprops worden niet bewaard bij insert
|
|
2.4 Zie 1.6
|
|
|
|
*/
|
|
|