Files
Customer/CONN/Once/conn449to450.sql
Arthur Egberink 44849830b7 CONN#435
svn path=/Customer/trunk/; revision=12779
2005-07-04 13:42:34 +00:00

1535 lines
36 KiB
MySQL

-- CONN449TO450.SQL
spool xconn449to450.lst
-- set alg_srtgebouw key op de default
update alg_gebouw set alg_srtgebouw_key = 1 where alg_srtgebouw_key is null;
INSERT INTO INS_TAB_DISCIPLINE ( INS_DISCIPLINE_KEY, INS_DISCIPLINE_MODULE,
INS_DISCIPLINE_OMSCHRIJVING, INS_DISCIPLINE_MIN_LEVEL, INS_DISCIPLINE_KOSTENSOORT,
INS_SRTDISCIPLINE_KEY ) VALUES (
799, 'RES', 'Parkeerplaatsen', 1, NULL, NULL);
-- CONN#318
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.
*/
-- CONN#459
insert into prs_kenmerk
(prs_kenmerk_key
,prs_kenmerk_niveau
,prs_kenmerk_volgnr
,prs_kenmerk_omschrijving
,prs_kenmerk_kenmerktype
,prs_kenmerk_lengte)
values
(1010
,'B'
,122
,'Huurdernummer'
,'C'
,20);
insert into prs_kenmerk
(prs_kenmerk_key
,prs_kenmerk_niveau
,prs_kenmerk_volgnr
,prs_kenmerk_omschrijving
,prs_kenmerk_kenmerktype
,prs_kenmerk_lengte)
values
(1011
,'B'
,120
,'Budgetcode'
,'C'
,20);
insert into prs_kenmerk
(prs_kenmerk_key
,prs_kenmerk_niveau
,prs_kenmerk_volgnr
,prs_kenmerk_omschrijving
,prs_kenmerk_kenmerktype
,prs_kenmerk_lengte)
values
(1012
,'B'
,121
,'Officiele bedrijfsnaam'
,'C'
,60);
insert into prs_kenmerk
(prs_kenmerk_key
,prs_kenmerk_niveau
,prs_kenmerk_volgnr
,prs_kenmerk_omschrijving
,prs_kenmerk_kenmerktype
,prs_kenmerk_lengte)
values
(1013
,'A'
,130
,'Debiteurnaam'
,'C'
,30);
insert into fac_usrtab
(fac_usrtab_key
,fac_usrtab_naam
,fac_usrtab_object
,fac_usrtab_omschrijving
,fac_usrtab_view)
values
(210
,'Divisie'
,'USR_DIVISIE'
,'Divisie'
,'T');
insert into fac_usrdata
(fac_usrtab_key
,fac_usrdata_code
,fac_usrdata_omschr
,fac_usrdata_volgnr)
values
(210
,'Derden'
,'Derden'
,990);
insert into fac_usrdata
(fac_usrtab_key
,fac_usrdata_code
,fac_usrdata_omschr
,fac_usrdata_volgnr)
values
(210
,'Leegstand'
,'Leegstand'
,990);
insert into fac_usrdata
(fac_usrtab_key
,fac_usrdata_code
,fac_usrdata_omschr
,fac_usrdata_volgnr)
values
(210
,'Vastgoed'
,'Vastgoed'
,990);
INSERT INTO PRS_REFKENMERK
(PRS_REFKENMERK_KEY
,PRS_REFKENMERK_OMSCHRIJVING
,PRS_REFKENMERK_OBJECTNAAM
,PRS_REFKENMERK_KOLOMNAAM
,PRS_REFKENMERK_KOLOMTXT
,FAC_USRTAB_KEY )
VALUES
(1039
,'Divisie'
,'FAC_USRDATA'
,'FAC_USRDATA_KEY'
,'FAC_USRDATA_OMSCHR'
, 210);
insert into prs_kenmerk
(prs_kenmerk_key
,prs_kenmerk_niveau
,prs_kenmerk_volgnr
,prs_kenmerk_omschrijving
,prs_kenmerk_kenmerktype
,prs_refkenmerk_key)
values
(1015
,'B'
,130
,'Divisie indien huurder'
,'R'
,1039);
insert into prs_kenmerk
(prs_kenmerk_key
,prs_kenmerk_niveau
,prs_kenmerk_volgnr
,prs_kenmerk_omschrijving
,prs_kenmerk_kenmerktype
,prs_kenmerk_lengte)
values
(1014
,'B'
,123
,'Factureren aan'
,'C'
,20);
commit;
create or replace view conn_v_tmp_huurder as
select huurdernr, huurder
from CONN_IMPORT_ETABEL
where huurdernr is not null
and huurder is not null
group by huurdernr, huurder;
/
/*
Controle (330, met dubbele prs_bedrijf_key, niet zo handig dus):
select count(*)
from CONN_IMPORT_ETABEL e, prs_bedrijf b
where e.budgetcode || '/' || e.huurdernr = b.prs_leverancier_nr
group by prs_bedrijf_key;
View conn_v_tmp_huurder_b resulteerd in 362 records
Tevens (geen dubellen):
select prs_bedrijf_key from conn_v_tmp_huurder_b group by prs_bedrijf_key
having count(prs_bedrijf_key) > 1
*/
create or replace view conn_v_tmp_huurder_b as
select prs_bedrijf_key, huurder
from conn_v_tmp_huurder h, prs_bedrijf b
where h.huurdernr = substr(substr(NVL(b.PRS_LEVERANCIER_NR,''),instr(NVL(b.PRS_LEVERANCIER_NR,''),'/')),2)
and instr(b.PRS_LEVERANCIER_NR,'/') <> 0
and b.prs_bedrijf_verwijder is null
and b.prs_bedrijf_huurder = '1'
UNION
select prs_bedrijf_key, huurder
from conn_v_tmp_huurder h, prs_bedrijf b
where h.huurdernr = b.prs_leverancier_nr
and b.prs_bedrijf_verwijder is null
and b.prs_bedrijf_huurder = '1';
-- insert 'Officiele bedrijfsnaam'
DECLARE
CURSOR c1 IS
select *
from conn_v_tmp_huurder_b
where 1=1;
rec c1%rowtype;
teller number;
cCount number(10);
BEGIN
OPEN c1;
IF c1%ISOPEN THEN
teller := 0;
LOOP
BEGIN
FETCH c1 INTO rec;
EXIT WHEN c1%NOTFOUND;
teller := teller + 1;
insert into prs_kenmerklink
(PRS_LINK_KEY
,PRS_KENMERKLINK_NIVEAU
,PRS_KENMERK_KEY
,PRS_KENMERKLINK_WAARDE)
values
(rec.prs_bedrijf_key
,'B'
,1012
,rec.huurder
);
commit;
EXCEPTION WHEN OTHERS THEN
teller := teller - 1;
END;
END LOOP;
END IF;
CLOSE c1;
commit;
END;
/
/*
Controle (267):
select count(*)
from CONN_IMPORT_ETABEL e, prs_afdeling a
where e.budgetcode || '/' || e.huurdernr = a.prs_afdeling_kostenplaats
group by prs_afdeling_key;
View conn_v_tmp_huurder_a resulteerd in 285 records
Tevens (geen dubellen):
select prs_afdeling_key from conn_v_tmp_huurder_a group by prs_afdeling_key
having count(prs_afdeling_key) > 1
*/
create or replace view conn_v_tmp_huurder_a as
select prs_afdeling_key, huurder
from conn_v_tmp_huurder h, prs_afdeling a
where h.huurdernr = substr(substr(NVL(a.prs_afdeling_kostenplaats,''),instr(NVL(a.prs_afdeling_kostenplaats,''),'/')),2)
and a.prs_afdeling_verwijder is null
and instr(prs_afdeling_kostenplaats,'/') <> 0
UNION ALL
select prs_afdeling_key, huurder
from conn_v_tmp_huurder h, prs_afdeling a
where h.huurdernr = a.prs_afdeling_kostenplaats
and a.prs_afdeling_verwijder is null;
/
-- insert 'Debiteurnaam'
DECLARE
CURSOR c1 IS
select *
from conn_v_tmp_huurder_a
where 1=1;
rec c1%rowtype;
teller number;
cCount number(10);
BEGIN
OPEN c1;
IF c1%ISOPEN THEN
teller := 0;
LOOP
BEGIN
FETCH c1 INTO rec;
EXIT WHEN c1%NOTFOUND;
teller := teller + 1;
insert into prs_kenmerklink
(PRS_LINK_KEY
,PRS_KENMERKLINK_NIVEAU
,PRS_KENMERK_KEY
,PRS_KENMERKLINK_WAARDE)
values
(rec.prs_afdeling_key
,'A'
,1013
,rec.huurder
);
commit;
EXCEPTION WHEN OTHERS THEN
teller := teller - 1;
END;
END LOOP;
END IF;
CLOSE c1;
commit;
END;
/
create or replace view conn_v_tmp_huurder as
select huurdernr, huurder, businessunit
from CONN_IMPORT_ETABEL
where huurdernr is not null
and huurder is not null
group by huurdernr, huurder, businessunit;
create or replace view conn_v_tmp_huurder_b as
select prs_bedrijf_key, businessunit
from conn_v_tmp_huurder h, prs_bedrijf b
where h.huurdernr = substr(substr(NVL(b.PRS_LEVERANCIER_NR,''),instr(NVL(b.PRS_LEVERANCIER_NR,''),'/')),2)
and instr(b.PRS_LEVERANCIER_NR,'/') <> 0
and b.prs_bedrijf_verwijder is null
and b.prs_bedrijf_huurder = '1'
UNION
select prs_bedrijf_key, businessunit
from conn_v_tmp_huurder h, prs_bedrijf b
where h.huurdernr = b.prs_leverancier_nr
and b.prs_bedrijf_verwijder is null
and b.prs_bedrijf_huurder = '1';
-- insert 'divisie'
DECLARE
CURSOR c1 IS
select *
from conn_v_tmp_huurder_b
where 1=1;
rec c1%rowtype;
teller number;
v_divisie_count number;
v_divisie_key number;
cCount number(10);
error varchar2(100);
BEGIN
OPEN c1;
IF c1%ISOPEN THEN
teller := 0;
LOOP
BEGIN
FETCH c1 INTO rec;
EXIT WHEN c1%NOTFOUND;
teller := teller + 1;
error := 'before v_divisie_count';
select count(fac_usrdata_key)
into v_divisie_count
from fac_usrdata where fac_usrdata_upper = UPPER(rec.businessunit)
and fac_usrtab_key = 210;
if v_divisie_count <> 1 THEN
error := 'before insert fac_usrdata ('|| v_divisie_count || ') ';
insert into fac_usrdata
(fac_usrtab_key
,fac_usrdata_code
,fac_usrdata_omschr
,fac_usrdata_volgnr)
values
(210
,rec.businessunit
,rec.businessunit
,990);
error := 'after insert fac_usrdata';
END IF;
error := 'before v_divisie_key';
select fac_usrdata_key
into v_divisie_key
from fac_usrdata where fac_usrdata_upper = UPPER(rec.businessunit) and fac_usrtab_key = 210;
error := 'before insert prs_kenmerklink';
insert into prs_kenmerklink
(PRS_LINK_KEY
,PRS_KENMERKLINK_NIVEAU
,PRS_KENMERK_KEY
,PRS_KENMERKLINK_WAARDE)
values
(rec.prs_bedrijf_key
,'B'
,1015
,v_divisie_key
);
commit;
EXCEPTION WHEN OTHERS THEN
teller := teller - 1;
-- insert into aeg (descre) values ('error ' || error || ' : ' || rec.prs_bedrijf_key || ' div: ' || v_divisie_key );
-- commit;
END;
END LOOP;
END IF;
CLOSE c1;
commit;
END;
/
drop view conn_v_tmp_huurder;
drop view conn_v_tmp_huurder_a;
drop view conn_v_tmp_huurder_b;
commit;
/*
create or replace view aaa as
select *
from prs_afdeling
where prs_afdeling_kostenplaats is not null
and prs_afdeling_key not in (select prs_link_key from prs_kenmerklink where PRS_KENMERK_KEY in (1013,1012)
AND PRS_KENMERKLINK_NIVEAU = 'A')
and prs_afdeling_verwijder is null
/
create or replace view bbb as
select *
from prs_bedrijf
where prs_bedrijf_huurder = '1'
and prs_bedrijf_verwijder is null
and prs_bedrijf_key not in (select prs_link_key from prs_kenmerklink where PRS_KENMERK_KEY in (1013,1012)
AND PRS_KENMERKLINK_NIVEAU = 'B');
/
*/
-- Dubbele alg_onroerendgoed_keys
-- Bug gevonden tijdens testen 4.50
-- FSN#1200
SET define off
-- change the keys of the double alg_onroerendgoed_keys
-- and adjust also the related mld_melding and ins_deel
DECLARE
--
v_new_terrein_key NUMBER(10);
v_err_mes VARCHAR2(60);
CURSOR c1 IS
select alg_terreinsector_key, alg_locatie_key
from alg_terreinsector
where alg_terreinsector_key in(
select alg_onroerendgoed_keys
from alg_v_onroerendgoed_gegevens
group by alg_onroerendgoed_keys
having count(alg_onroerendgoed_keys)>1);
rec c1%ROWTYPE;
BEGIN
delete from ins_deel where ins_deel_key = 21455;
OPEN c1;
IF c1%ISOPEN
THEN
LOOP
BEGIN
FETCH c1
INTO rec;
EXIT WHEN c1%NOTFOUND;
BEGIN
v_err_mes := 'Bepalen nieuwe key';
select alg_s_alg_onroerendgoed_keys.nextval
into v_new_terrein_key
from dual;
v_err_mes := 'Update terreinsector';
update alg_terreinsector
set alg_terreinsector_key = v_new_terrein_key
where alg_terreinsector_key = rec.alg_terreinsector_key;
v_err_mes := 'Update meldingen';
update mld_melding
set MLD_ALG_ONROERENDGOED_KEYS = v_new_terrein_key
where MLD_ALG_ONROERENDGOED_KEYS = rec.alg_terreinsector_key
and mld_alg_locatie_key = rec.alg_locatie_key;
v_err_mes := 'Update delen';
update ins_deel
set ins_alg_ruimte_key = v_new_terrein_key
where ins_alg_ruimte_key = rec.alg_terreinsector_key;
EXCEPTION
WHEN OTHERS THEN
INSERT INTO AEG (DESCRE, VOLGNR) VALUES (v_err_mes, rec.alg_terreinsector_key);
COMMIT;
END;
COMMIT;
END;
END LOOP;
END IF;
CLOSE c1;
COMMIT;
END;
/
-- CONN#435
update alg_refkenmerk set alg_refkenmerk_objectnaam = 'CONN_V_LEV_SCHOONMAAK'
where alg_refkenmerk_key = 1000;
@conn#465.sql;
@conn#467.sql;
@conn#470.sql;
@perman.sql;
@NavHuurder.sql;
@conn.sql;
spool off
commit;