SUTF#22335: Afdelingstelefoonnr bij persoon als kenmerk
svn path=/Customer/trunk/; revision=15146
This commit is contained in:
100
SUTF/sutf.sql
100
SUTF/sutf.sql
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user