svn path=/Customer/trunk/; revision=12738
This commit is contained in:
498
CONN/Once/conn#459.sql
Normal file
498
CONN/Once/conn#459.sql
Normal file
@@ -0,0 +1,498 @@
|
||||
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');
|
||||
/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
Reference in New Issue
Block a user