svn path=/Customer/trunk/; revision=13032
This commit is contained in:
Arthur Egberink
2006-09-14 07:55:04 +00:00
parent f3e63edc7a
commit 76aecae78d
2 changed files with 238 additions and 379 deletions

View File

@@ -58,6 +58,33 @@ CREATE TABLE CONN_EXP_FINORDERS_NAV
,FIN_FACTUUR_KEY NUMBER(10)
);
--CONN#746
INSERT INTO prs_kenmerk
(prs_kenmerk_key, prs_kenmerk_niveau, prs_kenmerk_omschrijving,
prs_kenmerk_kenmerktype, prs_kenmerk_lengte, prs_kenmerk_default
)
VALUES (1200, 'B', 'Export Navision',
'N', '1', '1'
);
INSERT INTO prs_kenmerklink (prs_kenmerk_key, prs_link_key, prs_kenmerklink_waarde)
select 1200, prs_bedrijf_key, 1
from prs_bedrijf
where prs_bedrijf_verwijder is null
and prs_bedrijf_huurder = 1;
CREATE TABLE CONN_EXP_DEBITEUR_TMP
(
prs_bedrijf_key NUMBER(10)
,huurdernummer VARCHAR2(30)
,budgetcode VARCHAR2(30)
,factureren_aan VARCHAR2(30)
);
drop trigger conn_prs_bedrijf_d;
drop trigger conn_prs_bedrijf_u_i;
COMMIT;
PROMPT Nu volgt de (her)definitie van de klantspecifieke zaken.

View File

@@ -3085,255 +3085,25 @@ AS
-- PRS KENMERK TRIGGERS
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_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';
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
,Debiteurnaam
,Adres
,Postcode
,Plaats
,Land
,Telefoon
,Fax
,Email
,Blokering
,Mutatiedatumtijd)
values
(:NEW.prs_bedrijf_key
,'B'
,SUBSTR(:NEW.PRS_BEDRIJF_NAAM,1,60)
,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 Debiteurnaam = SUBSTR(:NEW.PRS_BEDRIJF_NAAM,1,60)
,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)
,Blokering = 'NEE'
,Mutatiedatumtijd = sysdate
where prs_key = :NEW.PRS_BEDRIJF_KEY
and prs_type = 'B';
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_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_link_key prs_perslid.prs_perslid_key%type;
v_fout VARCHAR2 (2048);
BEGIN
IF (:old.prs_kenmerk_key = 1010) -- Huurdernummer (type = B)
or (:old.prs_kenmerk_key = 1011) -- Budgetcode (type = B)
or (:old.prs_kenmerk_key = 1014) -- Factureren aan (type = B)
THEN
-- Bepalen v_link_key
IF :old.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 = :old.prs_link_key;
END IF;
-- Huurdernummer (type = B)
IF (:old.prs_kenmerk_key = 1010) THEN
update CONN_EXP_DEBITEUR
set Huurdernummer = null
where prs_key = v_link_key
and prs_type = :old.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,''),'/')),
'/'),1,20)
-- )
--,1,20)
where prs_bedrijf_key = v_link_key;
END IF;
-- Budgetcode (type = B)
IF (:old.prs_kenmerk_key = 1011) THEN
update CONN_EXP_DEBITEUR
set Budgetcode = null
where prs_key = v_link_key
and prs_type = :old.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,''),'/')),
'/'
)
,1,20)
where prs_bedrijf_key = v_link_key;
END IF;
-- Factureren aan (type = B)
IF (:old.prs_kenmerk_key = 1014) THEN
update CONN_EXP_DEBITEUR
set Factureren_aan = null
where prs_key = v_link_key
and prs_type = :old.prs_kenmerklink_niveau
and Blokering <> 'JA';
END IF;
IF :old.prs_kenmerklink_niveau = 'B' THEN
update prs_bedrijf set prs_leverancier_nr = decode (prs_leverancier_nr, '/', null, prs_leverancier_nr)
where prs_bedrijf_key = v_link_key;
END IF;
END IF;
IF (:old.prs_kenmerk_key = 1200) THEN
update CONN_EXP_DEBITEUR
set Blokering = 'JA'
, Mutatiedatumtijd = sysdate
where prs_key = :old.prs_link_key;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_fout := SQLERRM;
WHEN OTHERS THEN
v_fout := SQLERRM;
END;
/
@@ -3509,166 +3279,229 @@ DECLARE
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;
v_Huurdernummer VARCHAR2(30);
v_Budgetcode VARCHAR2(30);
v_Factureren_aan VARCHAR2(30);
v_Debiteur VARCHAR2(60);
v_Adres VARCHAR2(35);
v_Postcode VARCHAR2(12);
v_Plaats VARCHAR2(30);
v_Land VARCHAR2(30);
v_Telefoon VARCHAR2(20);
v_Fax VARCHAR2(20);
v_Email VARCHAR2(80);
v_Huurder NUMBER(1);
v_count NUMBER(1);
v_bedrijf_key NUMBER(10);
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;
-- Init
IF :NEW.prs_kenmerklink_verwijder IS NULL THEN
v_kenmerklink_waarde := :NEW.prs_kenmerklink_waarde;
ELSE
v_kenmerklink_waarde := '';
IF (:old.prs_kenmerk_key = 1200) THEN
update CONN_EXP_DEBITEUR
set Blokering = 'JA'
, Mutatiedatumtijd = sysdate
where prs_key = :old.prs_link_key;
END IF;
END IF;
/* UWVA#280
IF (: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 = 1014) -- Factureren aan (type = B)
THEN
*/
IF (:NEW.prs_kenmerk_key = 1010) -- Huurdernummer (type = B)
OR (:NEW.prs_kenmerk_key = 1011) -- Budgetcode (type = B)
OR (:NEW.prs_kenmerk_key = 1014) -- Factureren aan (type = B)
THEN
v_link_key := :NEW.prs_link_key;
IF (:NEW.prs_kenmerk_key = 1200) THEN
-- Bepalen v_link_key
BEGIN
SELECT huurdernummer, budgetcode, factureren_aan
INTO v_Huurdernummer, v_Budgetcode, v_Factureren_aan
FROM conn_exp_debiteur_tmp
WHERE prs_bedrijf_key = v_link_key;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_Huurdernummer := null;
v_Budgetcode := null;
v_Factureren_aan := null;
END;
DELETE FROM conn_exp_debiteur_tmp WHERE prs_bedrijf_key = v_link_key;
/* UWVA#280
IF :NEW.prs_kenmerklink_niveau = 'A' THEN
SELECT SUBSTR(NVL(PRS_BEDRIJF_NAAM,''),1,60)
, SUBSTR(NVL(PRS_BEDRIJF_POST_ADRES,''),1,35)
, SUBSTR(NVL(PRS_BEDRIJF_POST_POSTCODE,''),1,12)
, SUBSTR(NVL(PRS_BEDRIJF_POST_PLAATS,''),1,30)
, SUBSTR(NVL(PRS_BEDRIJF_POST_LAND,''),1,30)
, SUBSTR(NVL(PRS_BEDRIJF_TELEFOON,''),1,20)
, SUBSTR(NVL(PRS_BEDRIJF_FAX,''),1,20)
, SUBSTR(NVL(PRS_BEDRIJF_EMAIL,''),1,80)
, NVL(PRS_BEDRIJF_HUURDER,0)
INTO v_Debiteur
, v_Adres
, v_Postcode
, v_Plaats
, v_Land
, v_Telefoon
, v_Fax
, v_Email
, v_Huurder
FROM PRS_BEDRIJF
WHERE PRS_BEDRIJF_KEY = v_link_key;
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;
SELECT count(*)
INTO v_count
FROM CONN_EXP_DEBITEUR
WHERE prs_key = v_link_key;
END IF;
*/
IF v_Huurder = 1 THEN
IF :NEW.prs_kenmerklink_niveau = 'B' THEN
IF (v_count = 0) THEN
insert into CONN_EXP_DEBITEUR
(prs_key
,prs_type
,Debiteurnaam
,Adres
,Postcode
,Plaats
,Land
,Telefoon
,Fax
,Email
,Blokering
,Mutatiedatumtijd
,Huurdernummer
,Budgetcode
,Factureren_aan)
values
(v_link_key
,'B'
,v_Debiteur
,v_Adres
,v_Postcode
,v_Plaats
,v_Land
,v_Telefoon
,v_Fax
,v_Email
,'NEE'
,sysdate
,v_Huurdernummer
,v_Budgetcode
,v_Factureren_aan);
ELSE
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;
update CONN_EXP_DEBITEUR
set Debiteurnaam = v_Debiteur
,Adres = v_Adres
,Postcode = v_Postcode
,Plaats = v_Plaats
,Land = v_Land
,Telefoon = v_Telefoon
,Fax = v_Fax
,Email = v_Email
,Blokering = 'NEE'
,Huurdernummer = v_Huurdernummer
,Budgetcode = v_Budgetcode
,Factureren_aan = v_Factureren_aan
,Mutatiedatumtijd = sysdate
where prs_key = v_link_key;
END IF;
END IF;
ELSE
-- geen huurder (meer)
update CONN_EXP_DEBITEUR
set Blokering = 'JA'
, Mutatiedatumtijd = sysdate
where prs_key = :old.prs_link_key;
END IF;
ELSE
BEGIN
SELECT prs_bedrijf_key
INTO v_bedrijf_key
FROM conn_exp_debiteur_tmp
WHERE prs_bedrijf_key = v_link_key;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_bedrijf_key := null;
END;
/* UWVA#280
-- Huurdernr (type = A)
IF (:NEW.prs_kenmerk_key = 1061) THEN
END IF;
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) );
IF (:NEW.prs_kenmerk_key = 1010) THEN
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;
IF v_bedrijf_key <> -1 THEN
UPDATE CONN_EXP_DEBITEUR_TMP
SET huurdernummer = SUBSTR(v_kenmerklink_waarde,1,20)
WHERE prs_bedrijf_key = v_link_key;
ELSE
INSERT INTO CONN_EXP_DEBITEUR_TMP
(prs_bedrijf_key, huurdernummer)
values
(v_link_key, SUBSTR(v_kenmerklink_waarde,1,20));
END IF;
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) );
END IF;
*/
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;
-- Huurdernummer (type = B)
IF (:NEW.prs_kenmerk_key = 1010) THEN
END IF;
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';
IF (:NEW.prs_kenmerk_key = 1011) THEN
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) );
IF v_bedrijf_key <> -1 THEN
UPDATE CONN_EXP_DEBITEUR_TMP
SET budgetcode = SUBSTR(v_kenmerklink_waarde,1,20)
WHERE prs_bedrijf_key = v_link_key;
ELSE
INSERT INTO CONN_EXP_DEBITEUR_TMP
(prs_bedrijf_key, budgetcode)
values
(v_link_key, SUBSTR(v_kenmerklink_waarde,1,20));
END IF;
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;
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;
END IF;
/* UWVA#280
-- 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 = 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;
END IF;
-- Factureren aan (type = B)
IF (:NEW.prs_kenmerk_key = 1014) THEN
IF v_bedrijf_key <> -1 THEN
UPDATE CONN_EXP_DEBITEUR_TMP
SET factureren_aan = SUBSTR(v_kenmerklink_waarde,1,20)
WHERE prs_bedrijf_key = v_link_key;
ELSE
INSERT INTO CONN_EXP_DEBITEUR_TMP
(prs_bedrijf_key, factureren_aan)
values
(v_link_key, SUBSTR(v_kenmerklink_waarde,1,20));
END IF;
END IF;
EXCEPTION
WHEN OTHERS
@@ -3676,7 +3509,6 @@ EXCEPTION
v_fout := SQLERRM;
END;
/