SUTF#22335: Afdelingstelefoonnr bij persoon als kenmerk

svn path=/Customer/trunk/; revision=15146
This commit is contained in:
Marcel Bourseau
2012-03-02 15:46:14 +00:00
parent b0bbd29a44
commit 8fd9b81ff5

View File

@@ -1,7 +1,7 @@
-- Script containing customer specific configuration sql statements for SUTF
-- (c) 2010 SG|facilitor bv
-- $Revision: 6 $
-- $Modtime: 20-02-12 13:27 $
-- $Revision: 7 $
-- $Modtime: 2-03-12 17:45 $
--
-- Support: +31 53 4800700
@@ -1288,7 +1288,101 @@ SELECT obj.ins_deel_key, ins_kenmerkdeel_waarde
and k.ins_deel_key = obj.ins_deel_key
and ins_kenmerk_key = 81;
BEGIN adm.systrackscript('$Workfile: sutf.sql $', '$Revision: 6 $', 0); END;
-- Procedure om alle geexporteerde facturen naar status verwerkt te zetten.
CREATE OR REPLACE PROCEDURE sutf_export_afdelingstelefoon (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
v_prs_kenmerklink_key NUMBER (10);
-- In cursor c_afdtel_bij_persoon alle telefoon-objecten (telefoonnummers) van de afdelingen
-- aan de medewerkers van de afdeling gekoppeld...
-- Dus kenmerk van object van afdeling aan persoon van afdeling koppelen
CURSOR c_afdtel_bij_persoon
IS
SELECT prs_perslid_key, ins_deel_key
FROM prs_perslid p,
prs_kenmerklink kl,
(SELECT obj.ins_deel_key, ins_alg_ruimte_key
FROM ins_deel obj, ins_srtdeel srt, ins_kenmerkdeel k
WHERE ins_deel_verwijder IS NULL
AND obj.ins_srtdeel_key = srt.ins_srtdeel_key
AND k.ins_deel_key = obj.ins_deel_key
AND srt.ins_srtgroep_key = 21
AND ins_alg_ruimte_type = 'A'
AND ins_kenmerk_key = 81) kenmerk
WHERE prs_perslid_verwijder IS NULL
AND kenmerk.ins_alg_ruimte_key = p.prs_afdeling_key
AND prs_link_key(+) = prs_perslid_key
ORDER BY prs_perslid_key,ins_deel_key;
BEGIN
FOR rec IN c_afdtel_bij_persoon
LOOP
BEGIN
-- prs_kenmerk-key = 1000: afdelingstelefoonnummer bij persoon (refkenmerk naar view sutf_v_afdelingtelefoon)
SELECT prs_kenmerklink_key
INTO v_prs_kenmerklink_key
FROM prs_kenmerklink kl
WHERE kl.prs_link_key = rec.prs_perslid_key
AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerk_key = 1000
AND kl.prs_kenmerklink_verwijder IS NULL;
-- Bij de persoon is al een afdelingstelefoonnummer geregisteerd, nu nog updaten (doen we onvoorwaardelijk), want persoon kan:
-- van afdeling zijn verhuisd, of afdeling kan ander telefoonobject hebben gekregen, ...
UPDATE prs_kenmerklink
SET prs_kenmerklink_waarde = rec.ins_deel_key
WHERE prs_kenmerklink_key = v_prs_kenmerklink_key;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
-- Record afdelingstelefoon-kenmerk bij persoon bestaat nog niet, dus toevoegen (insert)
-- prs_kenmerk-key = 1000: afdelingstelefoonnummer bij persoon
INSERT INTO prs_kenmerklink (prs_link_key, prs_kenmerk_key, prs_kenmerklink_waarde, prs_kenmerklink_niveau)
VALUES(rec.prs_perslid_key, 1000, rec.ins_deel_key, 'P');
COMMIT;
END;
END LOOP;
-- Hieronder alle personen die een telefoon-objecten (telefoonnummers) van de afdelingen
-- heeft gekoppeld, maar waarvan de afdeling geen telefoonobject (meer) heeft
-- Dus de andere kant op, want die moeten verwijderd worden.
DELETE FROM prs_kenmerklink
WHERE prs_kenmerklink_key IN
(SELECT KL.PRS_KENMERKLINK_KEY
FROM prs_kenmerklink kl, prs_perslid p
WHERE kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerk_key = 1000
AND kl.prs_kenmerklink_verwijder IS NULL
AND KL.PRS_LINK_KEY = p.prs_perslid_key
AND NOT EXISTS (SELECT obj.ins_deel_key, ins_alg_ruimte_key
FROM ins_deel obj, ins_srtdeel srt, ins_kenmerkdeel k
WHERE ins_deel_verwijder IS NULL
AND obj.ins_srtdeel_key = srt.ins_srtdeel_key
AND k.ins_deel_key = obj.ins_deel_key
AND srt.ins_srtgroep_key = 21
AND ins_alg_ruimte_type = 'A'
AND ins_kenmerk_key = 81
AND ins_alg_ruimte_key = p.prs_afdeling_key )) ;
END;
/
BEGIN adm.systrackscript('$Workfile: sutf.sql $', '$Revision: 7 $', 0); END;
/
BEGIN fac.registercustversion('SUTF', 3); END;