FCLT#74284 DSMA0

svn path=/Customer/trunk/; revision=59061
This commit is contained in:
Maarten van der Heide
2023-02-08 16:28:07 +00:00
parent 3001d351f0
commit 4201be1f7b

View File

@@ -173,20 +173,22 @@ BEGIN
COMMIT;
-- Klantspecifieke aanpassingen.
-- Locatie/Gebouw/Verdieping/Ruimte bepalen via Kenmerk1-kolom -> Eigen tabel (key = 1) ->
-- Gebouw en daaronder Ruimte '_' op de verdieping met het laagste volgnummer!
-- Als persoon al een WP heeft op import-locatie, dan is dat de juiste en blijft deze
-- (handmatig gecorrigeerde WP) ongewijzigd. In alle andere gevallen verhuist persoon naar
-- '_' op de meegegeven locatie.
-- Eventuele WPs onder andere locaties dan import-locatie blijven ook ongewijzigd!
-- Ruimte bepalen via Kenmerk1-kolom -> Eigen tabel (key = 161) -> Gebouw
-- en daaronder Ruimte '_' op de Verdieping met het laagste volgnummer!
-- Als persoon al een WP heeft op import-locatie, dan is dat de juiste en
-- blijft deze (handmatig gecorrigeerde WP) ongewijzigd.
-- In alle andere gevallen verhuist persoon naar Ruimte '_' op meegegeven
-- locatie.
-- Eventuele WPs op andere locaties dan volgens import blijven ongewijzigd!
UPDATE fac_imp_perslid i
SET i.alg_locatie_code =
(SELECT il.alg_locatie_code
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
alg_v_aanweziggebouw ig,
alg_locatie il
WHERE ud.fac_usrtab_key = -1
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
WHERE ud.fac_usrtab_key = 161
--AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
AND INSTR (UPPER (i.prs_kenmerk1), UPPER (ud.fac_usrdata_code)) = 1
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
AND ig.alg_locatie_key = il.alg_locatie_key
AND NOT EXISTS
@@ -199,9 +201,10 @@ BEGIN
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
alg_v_aanweziggebouw ig,
alg_locatie il
WHERE ud.fac_usrtab_key = -1
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
WHERE ud.fac_usrtab_key = 161
--AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
AND INSTR (UPPER (i.prs_kenmerk1), UPPER (ud.fac_usrdata_code)) = 1
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
AND ig.alg_locatie_key = il.alg_locatie_key
AND NOT EXISTS
(SELECT 1
@@ -215,8 +218,9 @@ BEGIN
alg_locatie il,
alg_verdieping iv,
alg_ruimte ir
WHERE ud.fac_usrtab_key = -1
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
WHERE ud.fac_usrtab_key = 161
--AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
AND INSTR (UPPER (i.prs_kenmerk1), UPPER (ud.fac_usrdata_code)) = 1
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
AND ig.alg_locatie_key = il.alg_locatie_key
AND NOT EXISTS
@@ -226,20 +230,21 @@ BEGIN
AND alg_locatie_key < il.alg_locatie_key)
AND ig.alg_gebouw_key = iv.alg_gebouw_key
AND iv.alg_verdieping_key = ir.alg_verdieping_key
AND ir.alg_ruimte_nr = '_000'
AND ir.alg_ruimte_nr = '_'
AND NOT EXISTS
(SELECT 1
FROM alg_v_aanwezigruimte r, alg_verdieping v
WHERE r.alg_ruimte_nr = '_000'
WHERE r.alg_ruimte_nr = '_'
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_verdieping_volgnr < iv.alg_verdieping_volgnr)),
i.alg_ruimte_nr =
(SELECT '_000'
(SELECT '_'
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
alg_v_aanweziggebouw ig,
alg_locatie il
WHERE ud.fac_usrtab_key = -1
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
WHERE ud.fac_usrtab_key = 161
--AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
AND INSTR (UPPER (i.prs_kenmerk1), UPPER (ud.fac_usrdata_code)) = 1
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
AND ig.alg_locatie_key = il.alg_locatie_key
AND NOT EXISTS
@@ -258,8 +263,9 @@ BEGIN
alg_v_aanwezigruimte cr,
alg_verdieping cv,
alg_gebouw cg
WHERE ud.fac_usrtab_key = -1
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
WHERE ud.fac_usrtab_key = 161
--AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
AND INSTR (UPPER (i.prs_kenmerk1), UPPER (ud.fac_usrdata_code)) = 1
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
AND ig.alg_locatie_key = il.alg_locatie_key
AND NOT EXISTS
@@ -267,14 +273,13 @@ BEGIN
FROM alg_v_aanweziggebouw
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
AND alg_locatie_key < il.alg_locatie_key)
AND p.prs_perslid_nr = i.prs_perslid_nr
AND p.prs_perslid_email = i.prs_perslid_email
AND p.prs_perslid_key = pw.prs_perslid_key
AND pw.prs_werkplek_key = cw.prs_werkplek_key
AND cw.prs_alg_ruimte_key = cr.alg_ruimte_key
AND cr.alg_verdieping_key = cv.alg_verdieping_key
AND cv.alg_gebouw_key = cg.alg_gebouw_key
AND cg.alg_locatie_key = il.alg_locatie_key);
COMMIT;
-- Resulteert in nette foutmelding als ruimte niet kan worden bepaald.
@@ -282,7 +287,6 @@ BEGIN
SET alg_verdieping_volgnr = 0
WHERE alg_gebouw_code IS NOT NULL
AND alg_verdieping_volgnr IS NULL;
COMMIT;
EXCEPTION
WHEN OTHERS
@@ -389,6 +393,21 @@ BEGIN
FROM prs_perslid
WHERE prs_srtperslid_key = sp.prs_srtperslid_key);
COMMIT;
-- Toekennen _Default aan alle personen in import-scope!
v_errormsg := 'Fout toekennen _Default';
INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key)
SELECT prs_perslid_key, 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_key > 10 -- Voor de zekerheid!
AND p.prs_perslid_apikey IS NULL
AND p.prs_perslid_oslogin2 IS NULL -- Persoon in import-scope!
AND NOT EXISTS -- Nog niet toegekend aan _Default!
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 1 -- _Default
AND prs_perslid_key = p.prs_perslid_key);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
@@ -662,7 +681,8 @@ CREATE OR REPLACE VIEW DSMA_V_RAP_BEZITTINGEN
registratiedatum,
verwijderdatum, -- Geen toegevoegde waarde voor DSMA (gekopieerd van SVRZ)
tonen, -- Geen toegevoegde waarde voor DSMA (gekopieerd van SVRZ)
uitgiftedatum
uitgiftedatum,
redeninactief
)
AS
SELECT d.ins_deel_key,
@@ -675,7 +695,8 @@ AS
d.ins_deel_verwijder,
DECODE (d.ins_deel_verwijder, NULL, DECODE (SIGN (ADD_MONTHS (d.ins_deel_vervaldatum, 1) - SYSDATE), -1, 0, 1), 0)
tonen,
ud.uitgiftedatum
ud.uitgiftedatum,
ri.redeninactief
FROM ins_deel d, -- Inclusief recent verwijderde objecten!
prs_v_perslid_fullnames_all pf,
ins_srtdeel sd,
@@ -687,21 +708,31 @@ AS
FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND sk.ins_srtkenmerk_key IN (5, 6, 7, 8, 9))
AND (sk.ins_srtkenmerk_key IN (3, 5, 6, 7, 8, 9)
OR kd.ins_kenmerk_key IN (65, 67))) -- Model igv. Dock/Monitor
GROUP BY ins_deel_key) x,
(SELECT ins_deel_key, ins_kenmerkdeel_waarde uitgiftedatum
(SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde uitgiftedatum
FROM ins_v_aanwezigkenmerkdeel kd
WHERE EXISTS
(SELECT 1
FROM ins_v_aanwezigkenmerk
WHERE ins_srtkenmerk_key = 1
AND ins_kenmerk_key = kd.ins_kenmerk_key)) ud
WHERE ins_srtkenmerk_key = 1 -- Uitgiftedatum
AND ins_kenmerk_key = kd.ins_kenmerk_key)) ud,
(SELECT kd.ins_deel_key, ud.fac_usrdata_omschr redeninactief
FROM ins_v_aanwezigkenmerkdeel kd, fac_v_aanwezigusrdata ud
WHERE EXISTS
(SELECT 1
FROM ins_v_aanwezigkenmerk
WHERE ins_srtkenmerk_key = 41 -- Reden inactief
AND ins_kenmerk_key = kd.ins_kenmerk_key)
AND fac.safe_to_number (kd.ins_kenmerkdeel_waarde) = ud.fac_usrdata_key) ri
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_alg_ruimte_key = pf.prs_perslid_key
AND COALESCE (d.ins_deel_verwijder, SYSDATE) >= TRUNC (SYSDATE - 1)
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND d.ins_deel_key = x.ins_deel_key(+)
AND d.ins_deel_key = ud.ins_deel_key(+);
AND d.ins_deel_key = ud.ins_deel_key(+)
AND d.ins_deel_key = ri.ins_deel_key(+);
------ payload end ------