Files
Customer/SGGR/sggr.sql
Suzan Wiegerinck 9e195e94c6 SGGR#37756 Aanpassing notificatie dir (opleidingsformulieren naar 'eigen' directie)
svn path=/Customer/trunk/; revision=31749
2016-11-30 09:45:27 +00:00

1729 lines
69 KiB
SQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
DEFINE thisfile = 'SGGR.SQL'
DEFINE dbuser = '^SGGR'
DEFINE custid = 'SGGR'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
/* de te factureren contracten */
CREATE OR REPLACE VIEW sggr_v_rap_cnt_periode_saas
AS
SELECT b.prs_leverancier_nr ax_nr,
b.prs_bedrijf_naam bedrijf,
'C'
|| c.cnt_contract_nummer_intern
|| '.'
|| COALESCE (c.cnt_contract_versie, '0')
nr,
c.cnt_contract_omschrijving omschrijving,
COALESCE (c.cnt_contract_nummer, c.cnt_contract_omschrijving)
referentie,
c.cnt_contract_looptijd_van ingangsdatum,
SUM (kc1.cnt_kenmerkcontract_waarde) maandbedrag,
TO_CHAR (c.cnt_contract_korting) kortingpct,
3
* SUM (kc1.cnt_kenmerkcontract_waarde)
* (1 - COALESCE (c.cnt_contract_korting, 0) / 100)
kwartaalbedrag,
c.cnt_contract_document opmerking,
kc2.cnt_kenmerkcontract_waarde indexdatum,
c.cnt_contract_looptijd_tot einddatum,
c.cnt_contract_termijnkosten
- SUM (kc1.cnt_kenmerkcontract_waarde)
* (1 - COALESCE (c.cnt_contract_korting, 0) / 100)
controle
FROM cnt_v_aanwezigcontract c,
prs_bedrijf b,
cnt_kenmerkcontract kc1,
cnt_kenmerk ck1,
cnt_srtkenmerk cks1,
(SELECT kc2.cnt_contract_key, kc2.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc2, cnt_kenmerk k2
WHERE kc2.cnt_kenmerk_key = k2.cnt_kenmerk_key
AND k2.cnt_srtkenmerk_key = 301 -- indexdatum
AND kc2.cnt_kenmerkcontract_verwijder IS NULL) kc2
WHERE c.ins_discipline_key IN (481, 501) -- 481 saas; 482 lic; 501 care
AND c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_key = kc1.cnt_contract_key
AND kc1.cnt_kenmerk_key = ck1.cnt_kenmerk_key
AND ck1.cnt_kenmerk_verwijder IS NULL
AND ck1.cnt_srtkenmerk_key = cks1.cnt_srtkenmerk_key
AND ( cks1.cnt_srtkenmerk_omschrijving LIKE '%rijs%'
OR cks1.cnt_srtkenmerk_omschrijving LIKE '%Hosting%'
OR cks1.cnt_srtkenmerk_omschrijving LIKE '%Korting%')
AND c.cnt_contract_key = kc2.cnt_contract_key(+)
AND c.cnt_contract_looptijd_van < SYSDATE + 50
AND c.cnt_contract_looptijd_tot > SYSDATE + 50
GROUP BY b.prs_leverancier_nr,
b.prs_bedrijf_naam,
c.cnt_contract_looptijd_van,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_document,
c.cnt_contract_korting,
kc2.cnt_kenmerkcontract_waarde,
c.cnt_contract_termijnkosten,
c.cnt_contract_looptijd_tot
ORDER BY 1, 4;
CREATE OR REPLACE VIEW sggr_v_rap_cnt_periode_lic
AS
SELECT b.prs_leverancier_nr ax_nr,
b.prs_bedrijf_naam bedrijf,
'C'
|| c.cnt_contract_nummer_intern
|| '.'
|| COALESCE (c.cnt_contract_versie, '0')
nr,
c.cnt_contract_omschrijving omschrijving,
COALESCE (c.cnt_contract_nummer, c.cnt_contract_omschrijving)
referentie,
c.cnt_contract_looptijd_van ingangsdatum,
DECODE (SUM (kc1.cnt_kenmerkcontract_waarde),
0, c.cnt_contract_termijnkosten,
SUM (kc1.cnt_kenmerkcontract_waarde))
jaarbedrag,
c.cnt_contract_termijnkosten termijnbedrag,
(SELECT ct.cnt_termijn_omschrijving
FROM cnt_termijn ct
WHERE ct.cnt_termijn_key = c.cnt_contract_termijntermijn)
termijn,
c.cnt_contract_document opmerking,
kc2.cnt_kenmerkcontract_waarde indexdatum,
c.cnt_contract_looptijd_tot einddatum,
c.cnt_contract_termijnkosten
- DECODE (SUM (kc1.cnt_kenmerkcontract_waarde),
0, c.cnt_contract_termijnkosten,
SUM (kc1.cnt_kenmerkcontract_waarde))
controle
FROM cnt_v_aanwezigcontract c,
prs_bedrijf b,
cnt_kenmerkcontract kc1,
cnt_kenmerk ck1,
cnt_srtkenmerk cks1,
(SELECT kc2.cnt_contract_key, kc2.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc2, cnt_kenmerk k2
WHERE kc2.cnt_kenmerk_key = k2.cnt_kenmerk_key
AND k2.cnt_srtkenmerk_key = 301 -- indexdatum
AND kc2.cnt_kenmerkcontract_verwijder IS NULL) kc2
WHERE c.ins_discipline_key IN (482) -- 482 lic
AND c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_key = kc1.cnt_contract_key
AND kc1.cnt_kenmerk_key = ck1.cnt_kenmerk_key
AND ck1.cnt_kenmerk_verwijder IS NULL
AND ck1.cnt_srtkenmerk_key = cks1.cnt_srtkenmerk_key
AND ( cks1.cnt_srtkenmerk_omschrijving LIKE '%rijs%'
OR cks1.cnt_srtkenmerk_omschrijving LIKE '%Hosting%'
OR cks1.cnt_srtkenmerk_omschrijving LIKE '%Korting%')
AND c.cnt_contract_key = kc2.cnt_contract_key(+)
AND c.cnt_contract_looptijd_van < SYSDATE + 50
AND c.cnt_contract_looptijd_tot > SYSDATE + 50
GROUP BY b.prs_leverancier_nr,
b.prs_bedrijf_naam,
c.cnt_contract_looptijd_van,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_document,
c.cnt_contract_looptijd_tot,
kc2.cnt_kenmerkcontract_waarde,
c.cnt_contract_termijnkosten,
cnt_contract_termijntermijn
UNION
SELECT b.prs_leverancier_nr ax_nr,
b.prs_bedrijf_naam bedrijf,
'C'
|| c.cnt_contract_nummer_intern
|| '.'
|| COALESCE (c.cnt_contract_versie, '0')
nr,
c.cnt_contract_omschrijving omschrijving,
COALESCE (c.cnt_contract_nummer, c.cnt_contract_omschrijving)
referentie,
c.cnt_contract_looptijd_van ingangsdatum,
c.cnt_contract_kosten jaarbedrag,
c.cnt_contract_termijnkosten termijnbedrag,
(SELECT ct.cnt_termijn_omschrijving
FROM cnt_termijn ct
WHERE ct.cnt_termijn_key = c.cnt_contract_termijntermijn)
termijn,
c.cnt_contract_document opmerking,
kc2.cnt_kenmerkcontract_waarde indexdatum,
c.cnt_contract_looptijd_tot einddatum,
c.cnt_contract_termijnkosten
FROM cnt_v_aanwezigcontract c,
prs_bedrijf b,
cnt_kenmerk ck1,
cnt_srtkenmerk cks1,
(SELECT kc2.cnt_contract_key, kc2.cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc2, cnt_kenmerk k2
WHERE kc2.cnt_kenmerk_key = k2.cnt_kenmerk_key
AND k2.cnt_srtkenmerk_key = 301 -- indexdatum
AND kc2.cnt_kenmerkcontract_verwijder IS NULL) kc2
WHERE c.ins_discipline_key IN (661) -- 661 specials
AND c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_key = kc2.cnt_contract_key(+)
AND c.cnt_contract_looptijd_van < SYSDATE + 50
AND c.cnt_contract_looptijd_tot > SYSDATE + 50
GROUP BY b.prs_leverancier_nr,
b.prs_bedrijf_naam,
c.cnt_contract_looptijd_van,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_document,
c.cnt_contract_looptijd_tot,
c.cnt_contract_termijnkosten,
cnt_contract_kosten,
cnt_kenmerkcontract_waarde,
cnt_contract_termijntermijn
ORDER BY 1, 4;
CREATE OR REPLACE VIEW SGGR_V_RAP_MLD_VERLOF
(
MLD_MELDING_KEY,
MELDING_DATUM,
MELDING_OMSCHRIJVING,
DATUM_VERLOF,
DATUM_TM,
STATUS,
AANVRAGER_KEY,
AANVRAGER,
GOEDKEURDER_KEY,
GOEDKEURDER,
UREN,
FASE,
INCLUDE
)
AS
SELECT *
FROM (SELECT meld.mld_melding_key,
meld.mld_melding_datum,
meld.mld_melding_omschrijving,
meld.datum_verlof,
meld.datum_tm,
meld.mld_statuses_omschrijving,
meld.prs_perslid_key_voor,
meld.prs_perslid_naam_full_voor,
meld.prs_perslid_key,
meld.prs_perslid_naam_full,
meld.uren,
DECODE (mld_melding_status,
0,
reden.fac_usrdata_code || ' verlof: Ingediend',
2,
reden.fac_usrdata_code || ' verlof: Ingediend',
3,
reden.fac_usrdata_code || ' verlof: Ingediend',
4,
reden.fac_usrdata_code || ' verlof: Geacepteerd',
7,
reden.fac_usrdata_code || ' verlof: Geacepteerd',
reden.fac_usrdata_code || ' verlof: Verwerkt')
fase,
DECODE (mld_melding_status, 0, 2, 2, 2, 3, 2, 3) include
FROM (SELECT m.mld_melding_key,
mld_melding_datum,
mld_melding_omschrijving,
mld_melding_status,
datver.kenmerkwaarde datum_verlof,
datver.mld_kenmerk_groep,
dattm.kenmerkwaarde datum_tm,
mld_statuses_omschrijving,
m.prs_perslid_key_voor,
pf1.prs_perslid_naam_full
prs_perslid_naam_full_voor,
tra.prs_perslid_key,
pf2.prs_perslid_naam_full,
uren.kenmerkwaarde uren,
DECODE (mld_melding_status, 0, 2, 2, 2, 3, 2, 3)
include
FROM mld_melding m,
prs_v_perslid_fullnames_all pf1,
prs_v_perslid_fullnames_all pf2,
mld_statuses st,
(SELECT fac_tracking_refkey, prs_perslid_key
FROM fac_srtnotificatie srt, fac_tracking tr
WHERE tr.fac_srtnotificatie_key =
srt.fac_srtnotificatie_key
AND srt.fac_srtnotificatie_code =
'MLDACP') tra,
(SELECT mld_melding_key,
mld_kenmerk_groep,
fac.safe_to_date (
mld_kenmerkmelding_waarde,
'DD-MM-YYYY')
kenmerkwaarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 347
AND km.mld_kenmerkmelding_waarde IS NOT NULL)
datver,
(SELECT mld_melding_key,
mld_kenmerk_groep,
fac.safe_to_date (
mld_kenmerkmelding_waarde,
'DD-MM-YYYY')
kenmerkwaarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 346
AND km.mld_kenmerkmelding_waarde IS NOT NULL)
dattm,
(SELECT mld_melding_key,
mld_kenmerk_groep,
fac.safe_to_number (
mld_kenmerkmelding_waarde)
* -1
kenmerkwaarde
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 341
AND km.mld_kenmerkmelding_waarde IS NOT NULL)
uren
WHERE m.mld_stdmelding_key = 241
AND m.mld_melding_status IN
(0, 2, 3, 4, 5, 7, 9)
AND m.prs_perslid_key_voor = pf1.prs_perslid_key
AND datver.mld_melding_key = m.mld_melding_key
AND dattm.mld_melding_key = m.mld_melding_key
AND uren.mld_melding_key = m.mld_melding_key
AND datver.mld_kenmerk_groep =
dattm.mld_kenmerk_groep
AND datver.mld_kenmerk_groep =
uren.mld_kenmerk_groep
AND m.mld_melding_status = st.mld_statuses_key
AND m.mld_melding_key =
tra.fac_tracking_refkey(+)
AND tra.prs_perslid_key = pf2.prs_perslid_key(+))
meld
LEFT OUTER JOIN
(SELECT mld_melding_key,
mld_kenmerk_groep,
mld_kenmerkmelding_waarde,
w.fac_usrdata_code
FROM mld_kenmerkmelding km,
mld_kenmerk k,
fac_usrdata w
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND W.FAC_USRDATA_KEY =
mld_kenmerkmelding_waarde
AND k.mld_srtkenmerk_key = 441
AND km.mld_kenmerkmelding_waarde IS NOT NULL)
reden
ON meld.mld_melding_key = reden.mld_melding_key
AND meld.mld_kenmerk_groep = reden.mld_kenmerk_groep
WHERE COALESCE (reden.fac_usrdata_code, 'Apekool') NOT IN
('Compensatie', 'Bijzonder'))
UNION ALL
SELECT NULL,
ADD_MONTHS (TRUNC (SYSDATE, 'YYYY'), 0),
NULL,
ADD_MONTHS (TRUNC (SYSDATE, 'YYYY'), 0),
ADD_MONTHS (TRUNC (SYSDATE, 'YYYY'), 12) - 1,
'Beginstand',
prs_perslid_key,
prs_perslid_naam_full,
NULL,
NULL,
fac.safe_to_number (pk.prs_kenmerklink_waarde),
'Beginstand',
1 include
FROM prs_kenmerklink pk, prs_v_perslid_fullnames_all pf
WHERE prs_kenmerk_key = 1060 AND pk.prs_link_key = pf.prs_perslid_key;
CREATE OR REPLACE VIEW PRS_V_SGF_AFDELING
(
prs_afdeling_key,
prs_afdeling_naam
)
AS
SELECT prs_afdeling_key, prs_afdeling_naam
FROM prs_v_aanwezigafdeling
WHERE prs_afdeling_parentkey = 27;
CREATE OR REPLACE VIEW PRS_V_BUDGETHOUDER
(
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM
)
AS
SELECT prs_kostenplaats_key, prs_perslid_naam_full
FROM prs_kostenplaats k, prs_v_perslid_fullnames p
WHERE prs_kostenplaats_begin < SYSDATE
AND (prs_kostenplaats_eind < SYSDATE
OR prs_kostenplaats_eind IS NULL)
AND prs_kostenplaats_verwijder IS NULL
AND p.prs_perslid_key = k.prs_perslid_key;
-- SGGR#23236 - Inzetten FACILITOR voor administratieve processen SGF!
CREATE OR REPLACE PROCEDURE sggr_select_INDEXWERK (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
BEGIN
NULL;
END;
/
CREATE OR REPLACE VIEW sggr_v_export_INDEXWERK (RESULT, result_order)
AS
SELECT '', 0
FROM DUAL
WHERE 1 = 0;
CREATE OR REPLACE PROCEDURE sggr_export_indexwerk (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
CURSOR ccnt (
p_splitsindexdatum DATE)
IS
SELECT '['
|| TO_CHAR (x.cnt_contract_nummer_intern)
|| '|'
|| x.cnt_contract_omschrijving
|| '] '
aanduiding,
x.cnt_contract_key,
x.cnt_contract_nummer_intern,
x.cnt_contract_versie,
x.cnt_contract_looptijd_tot einddatum,
li.index_datum laatste_indexdatum,
x.cnt_contract_kosten,
x.cnt_contract_termijnkosten,
DECODE (x.cnt_prs_bedrijf_key, 1062, 0.2, 1901, 2.0, 2901, 2.0, 2.3) indexpct -- Voor 2017: 2,3%, voor AAFM (1062) 0,2%, voor KIEN (1901) en VEBE (2901) 2.0%
FROM (SELECT c.*
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key IN (481, 482, 501) -- SaaS/Onderhoud/Care
AND c.cnt_contract_status = 0 -- NIET Gesloten!
AND NOT EXISTS -- Beschouw alleen laatste versie van contracten
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern =
c.cnt_contract_nummer_intern
AND cnt_contract_versie >
COALESCE (c.cnt_contract_versie,
'0'))) x
LEFT JOIN
(SELECT cnt_contract_key,
fac.safe_to_date (cnt_kenmerkcontract_waarde,
'dd-mm-yyyy')
index_datum
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_srtkenmerk_key = 301) li -- Laatste index-datum
ON x.cnt_contract_key = li.cnt_contract_key
WHERE x.cnt_contract_looptijd_tot >
ADD_MONTHS (p_splitsindexdatum, -1)
AND COALESCE (li.index_datum, SYSDATE) < p_splitsindexdatum
ORDER BY TO_NUMBER (x.cnt_contract_nummer_intern);
c_splitsindexdatum DATE := TO_DATE ('01012017', 'ddmmyyyy');
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_new_contract_key NUMBER;
termijnkorting cnt_kenmerkcontract.cnt_kenmerkcontract_waarde%TYPE;
oldtermijnkosten cnt_contract.cnt_contract_termijnkosten%TYPE;
newtermijnkosten cnt_contract.cnt_contract_termijnkosten%TYPE;
PROCEDURE upsert_cntkenmerk (p_contract_key IN NUMBER,
p_srtkenmerk_key IN NUMBER,
p_waarde IN VARCHAR2)
AS
v_kenmerk_key NUMBER;
v_srtkenmerk_kenmerktype VARCHAR2 (10);
v_srtkenmerk_lengte NUMBER;
v_waarde VARCHAR2 (255);
v_kenmerkcontract_key NUMBER;
BEGIN
-- Bepaal kenmerk van meegegeven contract en soort; deze moet bestaan!
SELECT cnt_kenmerk_key,
cnt_srtkenmerk_kenmerktype,
COALESCE (cnt_srtkenmerk_lengte, 255)
INTO v_kenmerk_key, v_srtkenmerk_kenmerktype, v_srtkenmerk_lengte
FROM cnt_contract c, cnt_kenmerk k, cnt_srtkenmerk sk
WHERE c.cnt_contract_key = p_contract_key
AND c.ins_discipline_key = k.cnt_srtcontract_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND sk.cnt_srtkenmerk_verwijder IS NULL
AND sk.cnt_srtkenmerk_key = p_srtkenmerk_key;
v_waarde := SUBSTR (p_waarde, 1, v_srtkenmerk_lengte);
BEGIN
-- Bepaal bestaan/aanwezigheid huidige kenmerkwaarde?
SELECT cnt_kenmerkcontract_key
INTO v_kenmerkcontract_key
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_contract_key = p_contract_key
AND kc.cnt_kenmerk_key = v_kenmerk_key
AND kc.cnt_kenmerkcontract_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
IF p_waarde IS NULL
THEN
RETURN;
END IF;
INSERT INTO cnt_kenmerkcontract (cnt_contract_key,
cnt_kenmerk_key,
cnt_kenmerkcontract_waarde)
VALUES (p_contract_key, v_kenmerk_key, v_waarde);
RETURN;
END;
IF p_waarde IS NULL
THEN
--DELETE FROM cnt_kenmerkcontract
-- WHERE cnt_kenmerkcontract_key = v_kenmerkcontract_key;
UPDATE cnt_kenmerkcontract
SET cnt_kenmerkcontract_verwijder = SYSDATE
WHERE cnt_kenmerkcontract_key = v_kenmerkcontract_key;
ELSE
UPDATE cnt_kenmerkcontract
SET cnt_kenmerkcontract_waarde = v_waarde,
cnt_kenmerkcontract_wijzig = SYSDATE
WHERE cnt_kenmerkcontract_key = v_kenmerkcontract_key;
END IF;
END;
BEGIN
-- Splitsen en indexeren FACILITOR-contracten.
FOR rc IN ccnt (c_splitsindexdatum)
LOOP
BEGIN
v_errorhint := 'Fout bij splitsen contract.';
-- Splitsen kun je wel achterwege laten als het contract pas na de splitsdatum begint
-- of voor de splitsdatum eindigt. Dat komt voor en geeft dan nu de warning
-- "Fout bij bepalen nieuwe versie" in de volgende stap. dat is niet erg dus.
cnt.splitscontract (rc.cnt_contract_key,
c_splitsindexdatum,
NULL,
NULL);
COMMIT;
-- Na splitsen wordt de nieuwe versie ge<67>ndexeerd.
v_errorhint := 'Fout bij bepalen nieuwe versie.';
BEGIN
SELECT cnt_contract_key
INTO v_new_contract_key
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern = rc.cnt_contract_nummer_intern
AND cnt_contract_versie >
COALESCE (rc.cnt_contract_versie, '0');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
-- Er is blijkbaar niet gesplitst (mogelijk contract begint pas na splitsdatum)
-- omdat prijspeil volgens laatste index toch oud is, moet die toch geindexdeerd worden
IF rc.einddatum > c_splitsindexdatum
THEN
v_new_contract_key := rc.cnt_contract_key;
END IF;
END;
v_errorhint := 'Fout bij toevoegen laatste indexdatum.';
upsert_cntkenmerk (v_new_contract_key,
301, -- Laatste index-datum
TO_CHAR (c_splitsindexdatum, 'ddmmyyyy'));
COMMIT;
v_errorhint := 'Fout bij toevoegen laatste indexpercentage.';
upsert_cntkenmerk (v_new_contract_key, 302, -- Laatste index-percentage
rc.indexpct);
COMMIT;
FOR rkc
IN ( SELECT kc.cnt_kenmerkcontract_key,
kc.cnt_kenmerkcontract_waarde cur_waarde,
ROUND (
fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)
* ( (100 + rc.indexpct) / 100),
2)
new_waarde
FROM cnt_kenmerkcontract kc,
cnt_kenmerk k,
cnt_srtkenmerk sk
WHERE 1 = 1
AND kc.cnt_contract_key = v_new_contract_key
AND kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND sk.cnt_srtkenmerk_verwijder IS NULL
AND sk.cnt_srtkenmerk_kenmerktype = 'N'
AND (sk.cnt_srtkenmerk_key = 241 -- Hosting
OR (sk.cnt_srtkenmerk_key = 221 -- Tarief Consultant
AND rc.cnt_contract_nummer_intern != 42) -- ...behalve voor AAFM/AAIT, KIEN, VEBE=> handmatig
OR (sk.cnt_srtkenmerk_key = 222 -- Tarief Specialist
AND rc.cnt_contract_nummer_intern != 42) -- ...behalve voor AAFM/AAIT, KIEN, VEBE=> handmatig
OR sk.cnt_srtkenmerk_upper LIKE '%PRIJS%')
ORDER BY k.cnt_kenmerk_volgnummer)
LOOP
v_errorhint := 'Fout bij bijwerken prijsveld.';
UPDATE cnt_kenmerkcontract
SET cnt_kenmerkcontract_waarde =
TO_CHAR (rkc.new_waarde, '999999D99')
WHERE cnt_kenmerkcontract_key = rkc.cnt_kenmerkcontract_key;
END LOOP;
COMMIT;
-- Aanpassen van de totalen. Let op dat een evt kortingsbedrag (cnt_srtkenmerk_key=85)
-- niet meegeindexeerd wordt, dus kun je niet zomaar het totaal indexeren
v_errorhint := 'Fout bij bijwerken termijnbedrag.';
SELECT cnt_contract_termijnkosten
INTO oldtermijnkosten
FROM cnt_contract
WHERE cnt_contract_key = v_new_contract_key;
BEGIN
SELECT COALESCE (
fac.safe_to_number (kc.cnt_kenmerkcontract_waarde),
0)
INTO termijnkorting
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_srtkenmerk_key = 85 -- het kortingsbedrag (is negatief bij korting) per termijn
AND kc.cnt_contract_key = v_new_contract_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
termijnkorting := 0;
END;
UPDATE cnt_contract
SET cnt_contract_termijnkosten =
ROUND (
(rc.cnt_contract_termijnkosten
- fac.safe_to_number (termijnkorting))
* ( (100 + rc.indexpct) / 100)
+ fac.safe_to_number (termijnkorting),
2)
WHERE cnt_contract_key = v_new_contract_key;
SELECT cnt_contract_termijnkosten
INTO newtermijnkosten
FROM cnt_contract
WHERE cnt_contract_key = v_new_contract_key;
--c.ins_discipline_key IN (481, 482, 501) -- SaaS/Onderhoud/Care = termijn per maand/jaar/maand
v_errorhint := 'Fout bij bijwerken jaarbedrag.';
UPDATE cnt_contract
SET cnt_contract_kosten =
DECODE (ins_discipline_key, 481, 12, 482, 1, 501, 12)
* cnt_contract_termijnkosten
WHERE cnt_contract_key = v_new_contract_key;
v_errorhint := 'Fout bij bijwerken index-tracking (CNTUPD).';
fac.trackaction (
'CNTUPD',
v_new_contract_key,
NULL,
NULL,
'Contract ge<67>ndexeerd met '
|| TO_CHAR (rc.indexpct)
|| '%; termijnbedrag gewijzigd van <20>'
|| TO_CHAR (oldtermijnkosten)
|| ' naar <20>'
|| TO_CHAR (newtermijnkosten));
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (p_applname,
'W',
rc.aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'Proces INDEXWERK afgebroken!',
v_errormsg);
COMMIT;
END;
/
-- Standaard volgorde van de kolommen in het CSV-formaat)
-- Variabelelijst
-- v_alg_locatie_code 1
-- v_alg_gebouw_code 2
-- v_alg_verdieping_volgnr 3
-- v_alg_ruimte_nr 4
-- v_prs_werkplek_volgnr 5
-- v_prs_werkplek_omschrijving 6
-- v_prs_afdeling_naam 7
-- v_prs_perslid_naam 8
-- v_prs_perslid_tussenvoegsel 9
-- v_prs_perslid_voornaam 10
-- v_prs_perslid_voorletters 11
-- v_prs_perslid_partner_naam 12
-- v_prs_perslid_partner_tussenv 13
-- v_prs_naamgebruik_code 14 0 (default) perslid_naam en perslid_tussenvoegsel worden gebruikt
-- 1 personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
-- 2 personen die de geboortenaam van de partner willen gebruiken
-- 3 personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
-- v_prs_perslid_geslacht 15 Gebruik 'man', 'm' of 1 voor man en 'vrouw', 'v' of 0 voor vrouw case insensitive geen default
-- v_prs_perslid_telefoonnr 16
-- v_prs_perslid_mobiel 17
-- v_prs_perslid_email 18
-- v_prs_perslid_dienstverband 19
-- v_prs_perslid_nr 20
-- v_prs_srtperslid_omschrijving 21
-- v_prs_perslid_oslogin 22
-- v_prs_perslid_wachtwoord 23
-- v_prs_perslid_titel 24
-- v_prs_perslid_apikey 25
-- v_dummy 26
-- v_prs_kenmerk1 27
-- v_prs_kenmerk2 28
-- v_prs_kenmerk3 29
-- v_prs_kenmerk4 30
-- v_prs_kenmerk5 31
-- v_prs_kenmerk6 32
-- v_prs_kenmerk7 33
-- v_prs_kenmerk8 34
-- v_prs_kenmerk9 35
-- v_prs_kenmerk10 36
-- v_prs_kenmerk11 37
-- v_prs_kenmerk12 38
-- v_prs_kenmerk13 39
-- v_prs_kenmerk14 40
-- v_prs_kenmerk15 41
-- v_prs_kenmerk16 42
-- v_prs_kenmerk17 43
-- v_prs_kenmerk18 44
-- v_prs_kenmerk19 45
-- v_prs_kenmerk20 46
CREATE OR REPLACE PROCEDURE sggr_import_prs (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000) := '-';
v_errorhint VARCHAR2 (1000) := '-';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
v_errorhint := 'Generieke import';
-- De sequence array staat beschreven in PRS_PAC.SRC bij de import_perslid-PROCEDURE.
--"Personeelsnummer;Geslacht;Login;Achternaam;Tussenvoegsel;Voorletters;Voornaam;Telefoonnummer;Mobiel;Email;Afdeling;Datumindienst;Datumuitdienst;Functie"
prs.import_perslid (
p_import_key,
'0;0;0;0;0;0;11;4;5;6;'
|| '7;0;0;0;2;8;9;10;0;1;'
|| '14;3;0;0;0;0;12;13;0;0;'
|| '0;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0',
'%Personeelsnummer;Geslacht;Login;Achternaam;Tussenvoegsel;Voorletters;Voornaam;Telefoonnummer;Mobiel;Email;Afdeling;Datumindienst;Datumuitdienst;Functie%');
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ') ';
fac.imp_writelog (p_import_key,
'E',
v_errormsg || v_errorhint,
'Inleesproces personen afgebroken!');
END sggr_import_prs;
/
CREATE OR REPLACE PROCEDURE sggr_update_prs (p_import_key IN NUMBER)
IS
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een e-mail
c_max_delta_percentage NUMBER (10) := 20; -- 20%!
v_count_prs_import NUMBER (10); -- #actieve personen na import!
v_count_prs_actual NUMBER (10); -- #actieve personen voor import!
-- Let op! Personen die niet meer in dienst zijn -> niet in fac_imp_perslid!
-- Dubbele oslogins? Dan wordt iemand mogelijk niet verwijderd/INACTIEF!
CURSOR c_del
IS
SELECT p.prs_perslid_key, p.prs_perslid_oslogin
FROM prs_v_aanwezigperslid p
WHERE (p.prs_perslid_oslogin IS NULL
OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak
AND p.prs_perslid_oslogin2 IS NULL
AND NOT EXISTS
(SELECT 1
FROM fac_imp_perslid i
WHERE UPPER (i.prs_perslid_oslogin) =
UPPER (p.prs_perslid_oslogin))
ORDER BY 2, 1;
BEGIN
-- Bepaal oslogin-match tussen Facilitor en RECENT importbestand ofwel het aantal
-- actieve personen na import.
-- RECENT betekent niet meer dan een kwartiertje oud (14,4 minuten); dit voorkomt
-- dat - als er geen nieuw importbestand is aangeleverd - telkens dezelfde fouten
-- worden gerapporteerd (nl. op basis van een oud bestand in FAC_IMP_PERSLID).
SELECT COUNT ( * )
INTO v_count_prs_import
FROM prs_v_aanwezigperslid p, fac_imp_perslid i
WHERE p.prs_perslid_oslogin IS NOT NULL
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin);
-- Bepaal huidig aantal actieve personen in Facilitor.
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
INTO v_count_prs_actual
FROM prs_v_aanwezigperslid
WHERE prs_perslid_oslogin IS NOT NULL;
IF (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) <
(100 - c_max_delta_percentage))
THEN
fac.imp_writelog (
p_import_key,
'E',
'Verschil tussen huidig aantal en te importeren aantal personen te groot; zie specificatie!',
'- max. verschilpercentage = ['
|| TO_CHAR (c_max_delta_percentage)
|| '%]'
|| CHR (13)
|| CHR (10)
|| '- #personen/import = ['
|| TO_CHAR (v_count_prs_import)
|| ']'
|| CHR (13)
|| CHR (10)
|| '- #personen/huidig = ['
|| TO_CHAR (v_count_prs_actual)
|| ']');
RETURN;
END IF;
-- Generieke update.
prs.update_perslid (p_import_key, 'LOGIN', 'D');
-- Verwijder personen die niet meer in de import voorkomen.
FOR rec IN c_del
LOOP
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END LOOP;
-- Zolang SSO nog niet is ingeregeld, krijgt elke medewerker -met primaire
-- login en zonder wachtwoord!- een dummy-wachtwoord!
BEGIN
EXECUTE IMMEDIATE 'ALTER TRIGGER prs_t_prs_perslid_b_iu DISABLE';
BEGIN
FOR c
IN (SELECT prs_perslid_key
FROM prs_v_aanwezigperslid
WHERE prs_perslid_key > 100
AND prs_perslid_oslogin IS NOT NULL
AND prs_perslid_salt IS NULL)
LOOP
prs.setpassword (c.prs_perslid_key, 'Ququlequ');
END LOOP;
END;
EXECUTE IMMEDIATE 'ALTER TRIGGER prs_t_prs_perslid_b_iu ENABLE';
END;
END sggr_update_prs;
/
-- View tbv rapportage voor het planbureau in Emmen, nodig voor het verwerken van verlofaanvragen van consultants
CREATE OR REPLACE VIEW sggr_v_rap_verlofplanbureau
(
melding,
meldingdatum,
meldingomschrijving,
status,
perslid
)
AS
SELECT DISTINCT m.mld_melding_key,
mld_melding_datum,
mld_melding_omschrijving,
mld_statuses_omschrijving,
pf1.prs_perslid_naam_full
FROM mld_melding m,
prs_perslid p,
prs_v_perslid_fullnames_all pf1,
mld_statuses st,
(SELECT k.*
FROM prs_kenmerklink k
WHERE K.prs_KENMERK_KEY = 1100 AND k.PRS_KENMERKLINK_WAARDE = '1')
planbureau
WHERE m.mld_stdmelding_key = 241
AND mld_melding_status IN (0, 2, 3, 4)
AND m.prs_perslid_key_voor = pf1.prs_perslid_key
AND m.mld_melding_status = st.mld_statuses_key
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_perslid_key = planbureau.prs_link_key
--AND p.prs_srtperslid_key IN (31, 2047, 3815, 3816, 4081)
AND (m.mld_melding_flag <> 3 OR m.mld_melding_flag IS NULL);
--- Notificatie verlofaanvragen consultants voor het planbureau
CREATE OR REPLACE VIEW SGGR_V_NOTI_PLANBUREAU
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
NULL sender,
NULL receiver,
REPLACE (n.fac_srtnotificatie_oms,
'##NAAM##',
pn.prs_perslid_naam_friendly),
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
'planbureau@aareon.nl' xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
prs_v_perslid_fullnames_all pn,
prs_perslid p,
(SELECT k.*
FROM prs_kenmerklink k
WHERE K.prs_KENMERK_KEY = 1100 AND k.PRS_KENMERKLINK_WAARDE = '1')
planbureau
WHERE T.FAC_TRACKING_REFKEY = M.MLD_MELDING_KEY
AND P.PRS_PERSLID_KEY = PN.PRS_PERSLID_KEY
AND T.FAC_SRTNOTIFICATIE_KEY = 26 --- nieuwe verlofaanvraag
AND N.FAC_SRTNOTIFICATIE_CODE = 'CUST01'
AND M.MLD_STDMELDING_KEY = 241 -- verlofaanvragen
AND M.PRS_PERSLID_KEY_VOOR = P.PRS_PERSLID_KEY
-- AND P.PRS_SRTPERSLID_KEY IN (31, 2047, 3815, 3816, 4081) -- alleen notificeren indien de aanvaag door een (IT) consultant gedaan is
AND P.PRS_PERSLID_KEY = PLANBUREAU.PRS_LINK_KEY
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'SGGR_V_NOTI_PLANBUREAU')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'SGGR_V_NOTI_PLANBUREAU');
-- overzicht met te accepteren meldingen voor teamleiders/managers
CREATE OR REPLACE VIEW SGGR_V_RAP_ACC
(
MLD_MELDING_KEY,
MLD_MELDING_NR,
MELDING,
DATUM,
STATUS,
AANVRAGER,
LEIDINGGEVENDE,
FCLT_3D_USER_KEY
)
AS
SELECT m.mld_melding_key,
m.mld_melding_key meldingnr,
sm.mld_stdmelding_omschrijving melding,
TO_DATE (m.mld_melding_datum) datum,
CASE m.mld_melding_status
WHEN 1 THEN 'Afgewezen'
WHEN 2 THEN 'Nieuw'
WHEN 3 THEN 'Te accepteren'
WHEN 4 THEN 'In behandeling'
WHEN 5 THEN 'Afgemeld'
WHEN 6 THEN 'Historie'
WHEN 7 THEN 'Uitgegeven'
END
status,
p.prs_perslid_naam_friendly aanvrager,
mg.prs_perslid_naam_friendly leidinggevende,
mg.prs_perslid_key AS fclt_3d_user_key
FROM mld_melding m,
prs_v_perslid_fullnames_all p,
prs_kenmerklink kl,
prs_v_perslid_fullnames_all mg,
mld_stdmelding sm
WHERE (m.mld_stdmelding_key IN (43, 281, 261, 421, 346)
OR sm.mld_ins_discipline_key = 721) --- 43=inkoopverplichtingen, 281=aftrekbare kosten leaseauto's, 261=declaraties, 731=vakgroep relatiegeschenken, 421=overurensheet, 346=Aanvraag hotelkamer
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND m.prs_perslid_key_voor = kl.prs_link_key
AND kl.prs_kenmerk_key = 1081
AND kl.prs_kenmerklink_waarde = mg.prs_perslid_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND m.mld_melding_status IN (2, 3);
CREATE OR REPLACE VIEW sggr_v_ICT_leverancier
(
BEDRIJF_KEY,
BEDRIJF_NAAM
)
AS
SELECT L.PRS_BEDRIJF_KEY, L.PRS_BEDRIJF_NAAM
FROM prs_bedrijf l
WHERE L.PRS_RELATIETYPE_KEY = 10 -- ICT leverancier
AND L.PRS_BEDRIJF_LEVERANCIER IS NOT NULL
AND L.PRS_BEDRIJF_VERWIJDER IS NULL;
CREATE OR REPLACE VIEW SGGR_V_NOTI_ICT
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
NULL sender,
NULL receiver,
REPLACE (n.fac_srtnotificatie_oms,
'##NAAM##',
pn.prs_perslid_naam_friendly),
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
'Ict@aareon.nl' xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
prs_perslid p,
prs_v_perslid_fullnames_all pn
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND t.fac_srtnotificatie_key = 26
AND n.fac_srtnotificatie_code = 'CUST04'
AND m.mld_stdmelding_key = 321 -- Aanvraag hardware/software
AND p.prs_perslid_key = pn.prs_perslid_key
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) = 'SGGR_V_NOTI_ICT')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) = 'SGGR_V_NOTI_ICT');
CREATE OR REPLACE VIEW SGGR_V_NOTI_DIR
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
NULL sender,
NULL receiver,
REPLACE (n.fac_srtnotificatie_oms,
'##NAAM##',
pn.prs_perslid_naam_friendly),
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
'martin.holwerda@aareon.com; jeroen.kuiper@aareon.com;johan.deboer@aareon.nl'
xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
prs_perslid p,
prs_v_perslid_fullnames_all pn,
prs_kenmerklink kl,
prs_perslid mgr
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND t.fac_srtnotificatie_key = 26
AND n.fac_srtnotificatie_code = 'CUST05'
AND m.mld_stdmelding_key = 301 -- Inkoop hardware/software
AND p.prs_perslid_key = pn.prs_perslid_key
AND p.prs_perslid_key = kl.prs_link_key
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND prs_kenmerk_key = 1081 -- kenmerk waarin de manager staat vermeld
AND prs_kenmerklink_waarde = mgr.prs_perslid_key
AND mgr.prs_perslid_key <> 281 --- Peter Feij
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) = 'SGGR_V_NOTI_DIR')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) = 'SGGR_V_NOTI_DIR')
UNION ALL
SELECT DISTINCT
NULL sender,
NULL receiver,
REPLACE (n.fac_srtnotificatie_oms,
'##NAAM##',
pn.prs_perslid_naam_friendly),
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
'p.feij@facilitor.nl' xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
prs_perslid p,
prs_v_perslid_fullnames_all pn,
prs_kenmerklink kl,
prs_perslid mgr
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND t.fac_srtnotificatie_key = 26
AND n.fac_srtnotificatie_code = 'CUST05'
AND m.mld_stdmelding_key = 301 -- Inkoop hardware/software
AND p.prs_perslid_key = pn.prs_perslid_key
AND p.prs_perslid_key = kl.prs_link_key
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND prs_kenmerk_key = 1081 -- kenmerk waarin de manager staat vermeld
AND prs_kenmerklink_waarde = mgr.prs_perslid_key
AND mgr.prs_perslid_key = 281 --- Peter Feij
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) = 'SGGR_V_NOTI_DIR')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) = 'SGGR_V_NOTI_DIR')
UNION ALL
SELECT DISTINCT
NULL sender,
NULL receiver,
REPLACE (
n.fac_srtnotificatie_oms,
'##STDMLD## ##KEY##',
sm.mld_stdmelding_omschrijving || '/' || m.mld_melding_key),
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
'p.feij@facilitor.nl' xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie n,
prs_perslid p,
prs_v_perslid_fullnames_all pn,
prs_v_afdeling a
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND t.fac_srtnotificatie_key = 26
AND n.fac_srtnotificatie_code = 'MLD2B3'
AND m.mld_stdmelding_key in ( 361, 161, 101, 122, 162, 201) --- 361=Aanvraag opleiding, 161=Nieuw abo, 101=Nieuwe opdr, 122=Uitbreiding opdr, 162=wijzigingen abo, 201=creditering
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_perslid_key = pn.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = 1001 --- Facilitor
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) = 'SGGR_V_NOTI_DIR')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) = 'SGGR_V_NOTI_DIR')
UNION ALL
SELECT DISTINCT
NULL sender,
NULL receiver,
REPLACE (
n.fac_srtnotificatie_oms,
'##STDMLD## ##KEY##',
sm.mld_stdmelding_omschrijving || '/' || m.mld_melding_key),
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
'martin.holwerda@aareon.com; jeroen.kuiper@aareon.com;johan.deboer@aareon.nl'
xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie n,
prs_perslid p,
prs_v_perslid_fullnames_all pn,
prs_v_afdeling a
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND t.fac_srtnotificatie_key = 26
AND n.fac_srtnotificatie_code = 'MLD2B3'
AND m.mld_stdmelding_key IN (361, 386) --- 361=Aanvraag opleiding, 386=Productmanagement Aareon
AND AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_perslid_key = pn.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND A.PRS_BEDRIJF_KEY = 21 --- Aareon Nederland
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) = 'SGGR_V_NOTI_DIR')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) = 'SGGR_V_NOTI_DIR');
CREATE OR REPLACE VIEW SGGR_V_RAP_DIR
(
MLD_MELDING_KEY,
MLD_MELDING_NR,
MELDING,
DATUM,
STATUS,
AANVRAGER,
BEDRIJF,
LEIDINGGEVENDE
)
AS
SELECT m.mld_melding_key,
m.mld_melding_key meldingnr,
sm.mld_stdmelding_omschrijving melding,
TO_DATE (m.mld_melding_datum) datum,
CASE m.mld_melding_status
WHEN 1 THEN 'Afgewezen'
WHEN 2 THEN 'Nieuw'
WHEN 3 THEN 'Te accepteren'
WHEN 4 THEN 'In behandeling'
WHEN 5 THEN 'Afgemeld'
WHEN 6 THEN 'Historie'
WHEN 7 THEN 'Uitgegeven'
END
status,
p.prs_perslid_naam_friendly aanvrager,
b.prs_bedrijf_naam,
mg.prs_perslid_naam_friendly leidinggevende
FROM mld_melding m,
prs_v_perslid_fullnames_all p,
prs_perslid pl,
prs_v_afdeling a,
prs_bedrijf b,
prs_kenmerklink kl,
prs_v_perslid_fullnames_all mg,
mld_stdmelding sm
WHERE (m.mld_stdmelding_key IN (261, 281, 43, 421, 346)
OR sm.mld_ins_discipline_key = 721) --inkoopverplichting, declaratie, aftrekbare kosten lease auto, overurensheet, aanvraag hotelkamer, vakgroep relatiegeschenken
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND m.prs_perslid_key_voor = kl.prs_link_key
AND kl.prs_kenmerk_key = 1081
AND kl.prs_kenmerklink_waarde = mg.prs_perslid_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND m.mld_melding_status IN (2, 3)
AND p.prs_perslid_key = pl.prs_perslid_key
AND pl.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = b.prs_bedrijf_key
AND mg.prs_perslid_key IN (120, 121, 281) -- directie
UNION ALL
SELECT DISTINCT m.mld_melding_key,
m.mld_melding_key meldingnr,
sm.mld_stdmelding_omschrijving,
TO_DATE (m.mld_melding_datum) datum,
CASE m.mld_melding_status
WHEN 1 THEN 'Afgewezen'
WHEN 2 THEN 'Nieuw'
WHEN 3 THEN 'Te accepteren'
WHEN 4 THEN 'In behandeling'
WHEN 5 THEN 'Afgemeld'
WHEN 6 THEN 'Historie'
WHEN 7 THEN 'Uitgegeven'
END
status,
p.prs_perslid_naam_friendly aanvrager,
b.prs_bedrijf_naam,
manager.prs_perslid_naam_friendly leidinggevende
FROM mld_melding m,
prs_v_perslid_fullnames_all p,
prs_perslid pl,
prs_v_afdeling a,
prs_bedrijf b,
prs_v_perslid_fullnames_all mg,
mld_stdmelding sm,
(SELECT kl.*, mg.*
FROM prs_kenmerklink kl, prs_v_perslid_fullnames_all mg
WHERE kl.prs_kenmerklink_waarde = mg.prs_perslid_key
AND kl.prs_kenmerk_key = 1081) manager
WHERE m.mld_stdmelding_key IN (301, 361, 386, 161, 101, 122, 162, 201) -- aanvraag hw/sw, opleidingsformulier, aanvraag productmanagement, nieuw abo, nieuwe opdr, uitbreiding opdr, wijziging abo, crediteringen
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND m.mld_melding_status IN (2, 3)
AND p.prs_perslid_key = pl.prs_perslid_key
AND pl.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = b.prs_bedrijf_key
AND m.prs_perslid_key_voor = manager.prs_link_key(+);
CREATE OR REPLACE VIEW SGGR_V_NOTI_CRM
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
NULL sender,
NULL receiver,
REPLACE (n.fac_srtnotificatie_oms,
'##NAAM##',
pn.prs_perslid_naam_friendly),
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
'2elijnKlantenMarkt@aareon.nl' xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
prs_perslid p,
prs_v_perslid_fullnames_all pn
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND t.fac_srtnotificatie_key = 22
AND n.fac_srtnotificatie_code = 'CUST01'
AND m.mld_stdmelding_key = 241 -- verlofaanvragen
AND p.prs_perslid_key = pn.prs_perslid_key
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND P.PRS_AFDELING_KEY = 274 ---CRM en Markt
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) = 'SGGR_V_NOTI_CRM')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) = 'SGGR_V_NOTI_CRM');
-- Notificatie aan managers:
-- Acceptatie van declaratie vereist
-- Acceptatie van inkoopverplichting vereist
CREATE OR REPLACE VIEW SGGR_V_NOTI_MANAGER
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
NULL sender,
NULL receiver,
REPLACE (n.fac_srtnotificatie_oms, '##KEY##', m.mld_melding_key),
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
mgr.prs_perslid_email xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
prs_perslid p,
prs_kenmerklink kl,
prs_perslid mgr,
mld_stdmelding sm
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND t.fac_srtnotificatie_key = 26
AND n.fac_srtnotificatie_code = 'CUST02'
AND m.mld_stdmelding_key IN (281, 261) -- declaratie, aftrekbare priv<69>kosten leaseauto,
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_perslid_key = kl.prs_link_key
AND prs_kenmerk_key = 1081 -- kenmerk waarin de manager staat vermeld
AND prs_kenmerklink_waarde = mgr.prs_perslid_key
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'SGGR_V_NOTI_MANAGER')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'SGGR_V_NOTI_MANAGER')
UNION ALL
SELECT DISTINCT
NULL sender,
NULL receiver,
REPLACE (n.fac_srtnotificatie_oms, '##KEY##', m.mld_melding_key),
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
mgr.prs_perslid_email xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
prs_perslid p,
prs_kenmerklink kl,
prs_perslid mgr,
mld_stdmelding sm
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND t.fac_srtnotificatie_key = 26
AND n.fac_srtnotificatie_code = 'CUST03'
AND (m.mld_stdmelding_key = 43 OR sm.mld_ins_discipline_key = 721) -- inkoopverplichting of vakgroep relatiegeschenken
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_perslid_key = kl.prs_link_key
AND prs_kenmerk_key = 1081 -- kenmerk waarin de manager staat vermeld
AND prs_kenmerklink_waarde = mgr.prs_perslid_key
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'SGGR_V_NOTI_MANAGER')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'SGGR_V_NOTI_MANAGER')
UNION ALL
SELECT DISTINCT
NULL sender,
NULL receiver,
REPLACE (n.fac_srtnotificatie_oms, '##KEY##', m.mld_melding_key),
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
mgr.prs_perslid_email xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
prs_perslid p,
prs_kenmerklink kl,
prs_perslid mgr,
mld_stdmelding sm
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND t.fac_srtnotificatie_key = 26
AND n.fac_srtnotificatie_code = 'CUST07'
AND m.mld_stdmelding_key = 421 -- overurensheet
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_perslid_key = kl.prs_link_key
AND prs_kenmerk_key = 1081 -- kenmerk waarin de manager staat vermeld
AND prs_kenmerklink_waarde = mgr.prs_perslid_key
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'SGGR_V_NOTI_MANAGER')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'SGGR_V_NOTI_MANAGER')
UNION ALL
SELECT DISTINCT
NULL sender,
NULL receiver,
(REPLACE (n.fac_srtnotificatie_oms,
'##STDMELDINGOMSCHR##',
sm.mld_stdmelding_omschrijving))
|| '/'
|| m.mld_melding_key,
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
mgr.prs_perslid_email xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
prs_perslid p,
prs_kenmerklink kl,
prs_perslid mgr,
mld_stdmelding sm
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND t.fac_srtnotificatie_key = 26
AND n.fac_srtnotificatie_code = 'CUST08'
AND m.mld_stdmelding_key = 346 -- hotelkamer
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_perslid_key = kl.prs_link_key
AND prs_kenmerk_key = 1081 -- kenmerk waarin de manager staat vermeld
AND prs_kenmerklink_waarde = mgr.prs_perslid_key
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'SGGR_V_NOTI_MANAGER')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'SGGR_V_NOTI_MANAGER');
-- Informeren over verlofaanvragen na afmelden door administratie
CREATE OR REPLACE VIEW SGGR_V_NOTI_VERLOF_MGR
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
NULL sender,
NULL receiver,
REPLACE (n.fac_srtnotificatie_oms,
'##NAAM##',
pn.prs_perslid_naam_friendly),
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
mgr.prs_perslid_email xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
prs_perslid p,
prs_v_perslid_fullnames_all pn,
prs_kenmerklink kl,
prs_perslid mgr
WHERE t.fac_tracking_refkey = m.mld_melding_key
AND t.fac_srtnotificatie_key = 22 ---mldafm
AND n.fac_srtnotificatie_code = 'CUST01'
AND m.mld_stdmelding_key = 241 -- verlofaanvragen
AND p.prs_perslid_key = pn.prs_perslid_key
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_perslid_key = kl.prs_link_key
AND prs_kenmerk_key = 1081 -- kenmerk waarin de manager staat vermeld
AND prs_kenmerklink_waarde = mgr.prs_perslid_key
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'SGGR_V_NOTI_VERLOF_MGR')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'SGGR_V_NOTI_VERLOF_MGR');
CREATE OR REPLACE FORCE VIEW SGGR_V_RAPP_VERLOF
(
MLD_MELDING_KEY,
MLD_MELDING_NR,
MELDING,
DATUM,
STATUS,
AANVRAGER,
LEIDINGGEVENDE,
FCLT_3D_USER_KEY
)
AS
SELECT m.mld_melding_key,
m.mld_melding_key meldingnr,
sm.mld_stdmelding_omschrijving melding,
TO_DATE (m.mld_melding_datum) datum,
CASE m.mld_melding_status
WHEN 1 THEN 'Afgewezen'
WHEN 2 THEN 'Nieuw'
WHEN 3 THEN 'Te accepteren'
WHEN 4 THEN 'In behandeling'
WHEN 5 THEN 'Afgemeld'
WHEN 6 THEN 'Historie'
WHEN 7 THEN 'Uitgegeven'
END
status,
p.prs_perslid_naam_friendly aanvrager,
mg.prs_perslid_naam_friendly leidinggevende,
mg.prs_perslid_key AS fclt_3d_user_key
FROM mld_melding m,
prs_v_perslid_fullnames_all p,
prs_kenmerklink kl,
prs_v_perslid_fullnames_all mg,
mld_stdmelding sm
WHERE m.mld_stdmelding_key = 241
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND m.prs_perslid_key_voor = kl.prs_link_key
AND kl.prs_kenmerk_key = 1081
AND kl.prs_kenmerklink_waarde = mg.prs_perslid_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key;
CREATE OR REPLACE FORCE VIEW SGGR_V_RAPP_AANVR_HWSW
(
MLD_MELDING_KEY,
MLD_MELDING_NR,
MELDING,
DATUM,
STATUS,
AANVRAGER,
KOSTENPLAATS
)
AS
SELECT m.mld_melding_key,
m.mld_melding_key meldingnr,
sm.mld_stdmelding_omschrijving melding,
TO_DATE (m.mld_melding_datum) datum,
CASE m.mld_melding_status
WHEN 1 THEN 'Afgewezen'
WHEN 2 THEN 'Nieuw'
WHEN 3 THEN 'Te accepteren'
WHEN 4 THEN 'In behandeling'
WHEN 5 THEN 'Afgemeld'
WHEN 6 THEN 'Historie'
WHEN 7 THEN 'Uitgegeven'
END
status,
p.prs_perslid_naam_friendly aanvrager,
K.PRS_KOSTENPLAATS_NR
FROM mld_melding m,
prs_v_perslid_fullnames_all p,
prs_perslid l,
mld_stdmelding sm,
prs_afdeling a,
prs_kostenplaats k
WHERE m.mld_stdmelding_key = 321
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND P.PRS_PERSLID_KEY = L.PRS_PERSLID_KEY
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND L.PRS_AFDELING_KEY = A.PRS_AFDELING_KEY
AND A.PRS_KOSTENPLAATS_KEY = K.PRS_KOSTENPLAATS_KEY;
--- overzicht van alle business units en teams:
---266 treasury/267 Handel en Logistiek/268 ICT services/270 Wonen/271 Consultancy/272 Vastgoed/273 Financi<63>n/274 CRM en Markt/275 Appl. beheer
CREATE OR REPLACE VIEW SGGR_V_BUSINESS_UNITS
(
AFDELING_KEY,
AFDELING_OMSCHRIJVING
)
AS
SELECT A.PRS_AFDELING_KEY, A.PRS_AFDELING_OMSCHRIJVING
FROM PRS_AFDELING A
WHERE A.PRS_AFDELING_KEY IN (266, 267, 268, 270, 271, 272, 273, 274, 275)
AND A.PRS_AFDELING_VERWIJDER IS NULL;
-- overzicht van alle BU managers. Functies:
-- teamleider support en ontwikkeling 3803/Teamleider Consultance 2052/Teamleider Treasury 3806/Unitmanagers 2050/Directeur Wonen 3807
CREATE OR REPLACE VIEW SGGR_V_MANAGERS_BU
(
PERSLID_KEY,
PERSLID_VOLNAAM
)
AS
SELECT P.PRS_PERSLID_KEY, N.PRS_PERSLID_NAAM_FULL
FROM PRS_V_PERSLID_FULLNAMES N, PRS_PERSLID P
WHERE N.PRS_PERSLID_KEY = P.PRS_PERSLID_KEY
AND P.PRS_SRTPERSLID_KEY IN (3803, 2052, 3806, 2050, 3807)
ORDER BY N.PRS_PERSLID_NAAM_FULL;
COMMIT;
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile