498 lines
12 KiB
MySQL
498 lines
12 KiB
MySQL
ALTER TABLE prs_kenmerk DROP CONSTRAINT prs_c_prs_kenmerk_niveau2;
|
|
|
|
ALTER TABLE PRS_KENMERK ADD (
|
|
CONSTRAINT PRS_C_PRS_KENMERK_NIVEAU2 CHECK (prs_kenmerk_niveau IN ('P','A', 'B')));
|
|
|
|
|
|
CREATE OR REPLACE TRIGGER prs_t_prs_kenmerkLink_b_iu
|
|
BEFORE INSERT OR UPDATE ON prs_kenmerkLink
|
|
FOR EACH ROW
|
|
BEGIN
|
|
BEGIN IF :new.prs_kenmerkLink_aanmaak IS NULL THEN :new.prs_kenmerkLink_aanmaak := SYSDATE; END IF; END;
|
|
IF (:new.prs_kenmerkLink_waarde <> :old.prs_kenmerkLink_waarde
|
|
OR :old.prs_kenmerkLink_waarde IS NULL
|
|
OR :new.prs_kenmerkLink_waarde IS NULL)
|
|
AND :new.prs_link_key IS NOT NULL
|
|
THEN
|
|
DECLARE
|
|
KenmerkOmschr prs_kenmerk.prs_kenmerk_omschrijving%TYPE;
|
|
KenmerkType prs_kenmerk.prs_kenmerk_kenmerktype%TYPE;
|
|
KenmerkLengte prs_kenmerk.prs_kenmerk_lengte%TYPE;
|
|
KenmerkDec prs_kenmerk.prs_kenmerk_dec%TYPE;
|
|
KenmerkNMin prs_kenmerk.prs_kenmerk_nmin%TYPE;
|
|
KenmerkNMax prs_kenmerk.prs_kenmerk_nmax%TYPE;
|
|
RefKenmerkKey NUMBER(10);
|
|
NumberWaarde NUMBER(15,5);
|
|
FormatMask VARCHAR2(60);
|
|
KenmerkWaarde prs_kenmerklink.prs_kenmerklink_waarde%TYPE;
|
|
BEGIN
|
|
KenmerkWaarde := :new.prs_kenmerkLink_waarde;
|
|
BEGIN
|
|
DECLARE
|
|
dummy VARCHAR2(1);
|
|
BEGIN
|
|
IF :new.prs_kenmerkLink_niveau = 'P'
|
|
THEN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_key = :new.prs_link_key;
|
|
ELSIF :new.prs_kenmerkLink_niveau = 'A'
|
|
THEN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM prs_afdeling
|
|
WHERE prs_afdeling_key = :new.prs_link_key;
|
|
ELSIF :new.prs_kenmerkLink_niveau = 'B'
|
|
THEN
|
|
SELECT 'X'
|
|
INTO dummy
|
|
FROM prs_bedrijf
|
|
WHERE prs_bedrijf_key = :new.prs_link_key;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN raise_application_error(-20000, 'ALG_M015');
|
|
END;
|
|
SELECT prs_kenmerk_omschrijving
|
|
, prs_kenmerk_kenmerktype
|
|
, prs_kenmerk_lengte
|
|
, prs_kenmerk_dec
|
|
, prs_kenmerk_nmin
|
|
, prs_kenmerk_nmax
|
|
, prs_refkenmerk_key
|
|
INTO KenmerkOmschr
|
|
,KenmerkType
|
|
,KenmerkLengte
|
|
,KenmerkDec
|
|
,KenmerkNMin
|
|
,KenmerkNMax
|
|
,RefKenmerkKey
|
|
FROM prs_kenmerk
|
|
WHERE prs_kenmerk_key = :new.prs_kenmerk_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN raise_application_error(-20000, 'INS_R_INS_KENMERK_KEY1');
|
|
END;
|
|
IF KenmerkType = 'C'
|
|
THEN
|
|
IF LENGTH(KenmerkWaarde) > KenmerkLengte
|
|
THEN
|
|
raise_application_error(-20004, 'ALG_M232,' || KenmerkOmschr || ',' || TO_CHAR(KenmerkLengte));
|
|
END IF;
|
|
ELSIF KenmerkType = 'N'
|
|
THEN
|
|
IF KenmerkDec IS NULL OR KenmerkDec = 0
|
|
THEN
|
|
FormatMask := RPAD('9', KenmerkLengte, '9');
|
|
ELSE
|
|
FormatMask := RPAD('9', KenmerkLengte - KenmerkDec, '9')
|
|
|| 'D' || RPAD('9', KenmerkDec, '9');
|
|
END IF;
|
|
BEGIN
|
|
NumberWaarde := TO_NUMBER(KenmerkWaarde);
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN FormatMask := REPLACE(FormatMask, '9', '#');
|
|
FormatMask := REPLACE(FormatMask, '0', '#');
|
|
FormatMask := REPLACE(FormatMask, 'D', '.');
|
|
raise_application_error(-20004, 'ALG_M233,' || KenmerkOmschr || ',' || FormatMask);
|
|
END;
|
|
IF ( (KenmerkNMin IS NOT NULL AND NumberWaarde < KenmerkNMin)
|
|
OR (KenmerkNMax IS NOT NULL AND NumberWaarde > KenmerkNMax))
|
|
THEN
|
|
raise_application_error(-20004, 'ALG_M234,' || KenmerkOmschr || ',' || TO_CHAR(KenmerkNMin) || ',' || TO_CHAR(KenmerkNMax));
|
|
ELSE
|
|
KenmerkWaarde := LTRIM(TO_CHAR(NumberWaarde, FormatMask));
|
|
IF INSTR(KenmerkWaarde, '#') <> 0
|
|
THEN
|
|
FormatMask := REPLACE(FormatMask, '9', '#');
|
|
FormatMask := REPLACE(FormatMask, '0', '#');
|
|
FormatMask := REPLACE(FormatMask, 'D', '.');
|
|
raise_application_error(-20004, 'ALG_M233,' || KenmerkOmschr || ',' || FormatMask);
|
|
END IF;
|
|
END IF;
|
|
:new.prs_kenmerkLink_waarde := KenmerkWaarde;
|
|
ELSIF KenmerkType = 'D'
|
|
THEN
|
|
KenmerkWaarde := TO_CHAR(TO_DATE(KenmerkWaarde,'DD-MM-YY'),'DD-MM-YYYY');
|
|
:new.prs_kenmerkLink_waarde := KenmerkWaarde;
|
|
END IF;
|
|
END;
|
|
IF :new.prs_kenmerkLink_key IS NULL
|
|
THEN
|
|
SELECT prs_s_prs_kenmerkLink_key.nextval
|
|
INTO :new.prs_kenmerkLink_key
|
|
FROM DUAL;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
commit;
|
|
|
|
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 prs_kenmerk
|
|
(prs_kenmerk_key
|
|
,prs_kenmerk_niveau
|
|
,prs_kenmerk_volgnr
|
|
,prs_kenmerk_omschrijving
|
|
,prs_kenmerk_kenmerktype
|
|
,prs_kenmerk_lengte)
|
|
values
|
|
(1015
|
|
,'B'
|
|
,130
|
|
,'Debiteurnaam'
|
|
,'C'
|
|
,30);
|
|
|
|
insert into prs_kenmerk
|
|
(prs_kenmerk_key
|
|
,prs_kenmerk_niveau
|
|
,prs_kenmerk_volgnr
|
|
,prs_kenmerk_omschrijving
|
|
,prs_kenmerk_kenmerktype
|
|
,prs_kenmerk_lengte)
|
|
values
|
|
(1014
|
|
,'A'
|
|
,131
|
|
,'Factuur aan'
|
|
,'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_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, huurdernr
|
|
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, huurdernr
|
|
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.huurdernr
|
|
);
|
|
|
|
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, huurdernr
|
|
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, huurdernr
|
|
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.huurdernr
|
|
);
|
|
|
|
commit;
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
teller := teller - 1;
|
|
|
|
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');
|
|
/
|
|
|
|
|
|
|
|
|
|
|
|
*/ |