diff --git a/AA/AADS/aads.sql b/AA/AADS/aads.sql
index 08f704c25..54c46bb6f 100644
--- a/AA/AADS/aads.sql
+++ b/AA/AADS/aads.sql
@@ -1286,6 +1286,47 @@ AS
FROM aads_hv_freeze;
+-- Freeze rapportage over voorgaande freezes naar DWH
+CREATE OR REPLACE VIEW aads_v_dwh_hv_freeze (
+ kwartaal,
+ eigenaar,
+ loc_code,
+ geb_code,
+ ver_code,
+ ruimte_nr,
+ ruimtesoort,
+ code,
+ opp,
+ teken_opp,
+ huurder_nummer,
+ huurder_naam,
+ fdc,
+ bezetting,
+ tarief_huur,
+ tarief_service
+ )
+AS
+ SELECT kwartaal,
+ eigenaar,
+ loc_code,
+ geb_code,
+ ver_code,
+ ruimte_nr,
+ ruimtesoort,
+ code,
+ opp,
+ teken_opp,
+ huurder_nummer,
+ huurder_naam,
+ fdc,
+ bezetting,
+ tarief_huur,
+ tarief_service
+ FROM aads_hv_freeze;
+
+-- en maak deze view beschikbaar voor het DWH
+GRANT SELECT ON aads_v_dwh_hv_freeze TO aafm;
+
--
-- GRAFISCH
--
diff --git a/AA/aaxx.sql b/AA/aaxx.sql
index e9ecdaed9..e1cf3dd91 100644
--- a/AA/aaxx.sql
+++ b/AA/aaxx.sql
@@ -5951,8 +5951,8 @@ AS
AND dc.ins_srtcontrole_key = sc.ins_srtcontrole_key
AND dc.ins_controlemode_key = cm.ins_controlemode_key
AND dc.prs_perslid_key = pf.prs_perslid_key(+);
-
-
+
+
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_UREN
-------------------------------------------------------------------------------
diff --git a/AKZA/AKZA.SQL b/AKZA/AKZA.SQL
index ee2cd103e..a5c5e38a0 100644
--- a/AKZA/AKZA.SQL
+++ b/AKZA/AKZA.SQL
@@ -2335,16 +2335,16 @@ AS
prs_perslid p,
prs_afdeling a,
akza_v_kostenplaats akza_k,
+ -- FSN#26359: res_deel_omschrijving is per DB19 een kolom in res_deel, dus we hoeven
+ -- ins_deel_omschrijving er niet meer bij te halen
(SELECT rsv_d.res_rsv_deel_key,
- d.res_deel_omschrijving,
+ rd.res_deel_omschrijving,
rsv_d.res_rsv_ruimte_key,
ins_discipline_key,
ins_discipline_omschrijving,
rsv_d.res_rsv_deel_aantal aantal
- FROM res_rsv_deel rsv_d, (SELECT rd.*, d.ins_deel_omschrijving res_deel_omschrijving
- FROM res_deel rd, ins_deel d
- WHERE rd.res_ins_deel_key = d.ins_deel_key) d, res_discipline dis
- WHERE 1 = 1 AND rsv_d.res_deel_key = d.res_deel_key AND d.res_discipline_key = dis.ins_discipline_key)
+ FROM res_rsv_deel rsv_d, res_deel rd, res_discipline dis
+ WHERE rsv_d.res_deel_key = rd.res_deel_key AND rd.res_discipline_key = dis.ins_discipline_key)
akza_ea,
(SELECT l.alg_locatie_key,
rg.res_reservering_key,
@@ -5109,11 +5109,14 @@ AS
END IF;
-- ReferentieKostenplaats wordt dan de persoonskostenplaats
- SELECT k.prs_kostenplaats_nr
+ -- AKZA#28092: Als geen persoonskostenplaats, dan de referentiekostenplaats
+ -- (opdrachtkostenplaats) behouden -- zodat de export er niet uitklapt
+ -- met een "no data found".
+ SELECT COALESCE(k.prs_kostenplaats_nr, referentiekostenplaats)
INTO referentiekostenplaats
FROM prs_perslid p, prs_afdeling d, akza_v_kostenplaats k
WHERE p.prs_afdeling_key = d.prs_afdeling_key
- AND d.prs_kostenplaats_key = k.prs_kostenplaats_key
+ AND d.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND p.prs_perslid_key = meldingenrec.prs_perslid_key;
END IF;
@@ -8734,7 +8737,7 @@ AS
BEGIN adm.systrackscript('$Workfile: AKZA.SQL $', '$Revision$', 0); END;
/
-BEGIN fac.registercustversion('AKZA', 28); END;
+BEGIN fac.registercustversion('AKZA', 29); END;
/
COMMIT;
SPOOL OFF;
diff --git a/CSUN/CSUN.sql b/CSUN/CSUN.sql
index 5075d4cfe..3d10549ab 100644
--- a/CSUN/CSUN.sql
+++ b/CSUN/CSUN.sql
@@ -401,7 +401,21 @@ BEGIN
AND mm.prs_perslid_key_voor = sender;
-- DBMS_OUTPUT.PUT_LINE('mld_stdmelding_key: ' || TO_CHAR(stdmelding));
- IF (stdmelding IS NOT NULL) THEN -- Bestaande melding
+ BEGIN
+ SELECT mld_melding_behandelaar_key
+ INTO behandelaar_key
+ FROM mld_melding m, prs_perslid p
+ WHERE mld_melding_key = mldkey
+ AND mld_melding_behandelaar_key = p.prs_perslid_key
+ AND p.prs_perslid_email IS NOT NULL
+ AND p.prs_perslid_verwijder IS NULL;
+
+ EXCEPTION WHEN OTHERS
+ THEN
+ behandelaar_key := NULL;
+ END;
+
+ IF (stdmelding IS NOT NULL) AND behandelaar_key IS NOT NULL THEN -- Bestaande melding en behandelaar is bekend.
INSERT INTO mld_melding_note (mld_melding_key,
mld_melding_note_omschrijving,
prs_perslid_key,
@@ -422,18 +436,7 @@ BEGIN
-- DBMS_OUTPUT.PUT_LINE('Notitie toegevoegd.');
-- Notificatie naar behandelaar
- BEGIN
- SELECT mld_melding_behandelaar_key
- INTO behandelaar_key
- FROM mld_melding m
- WHERE mld_melding_key = mldkey;
-
- fac.putnotificationsrtprio(null, behandelaar_key, 'MLDMAI', mldkey, 'Melding ' || mldkey || ' is door de klant aangepast.', 2, null, null, null, 2, null);
-
- EXCEPTION WHEN OTHERS
- THEN
- DBMS_OUTPUT.PUT_LINE('Geen behandelaar gevonden.');
- END;
+ fac.putnotificationsrtprio(null, behandelaar_key, 'MLDMAI', mldkey, 'Melding ' || mldkey || ' is door de klant aangepast.', 2, null, null, null, 2, null);
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet
BEGIN
@@ -586,8 +589,8 @@ EXCEPTION
fac.writelog ('PROCESSEMAIL',
'E',
- 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')',
- errormsg || ' afzender:' || pfrom);
+ 'Mail kon niet ingelezen worden afzender:' || pfrom || '[' || errormsg || ']',
+ 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')');
END;
/
@@ -1280,7 +1283,7 @@ IS
RETURN v_waarde;
- EXCEPTION WHEN OTHERS
+ EXCEPTION WHEN NO_DATA_FOUND
THEN
RETURN NULL;
END;
@@ -1312,77 +1315,109 @@ BEGIN
LOOP
BEGIN
v_error_hint := 'Ophalen data voor dm: ' || rec_d.dm || ' Naam:' || rec_d.achternaam;
- SELECT alg_onrgoed_key
- INTO v_district_key
- FROM prs_perslid p,
- alg_onrgoedkenmerk aog,
- alg_district d
- WHERE p.prs_perslid_naam = rec_d.achternaam
- AND p.prs_perslid_voorletters = rec_d.voorletters
- AND COALESCE(p.prs_perslid_tussenvoegsel, '.') = COALESCE(rec_d.tussenvoegsels, '.')
- AND alg_kenmerk_key = 1021 -- key van districtmanager
- AND prs_perslid_key = fac.safe_to_number(alg_onrgoedkenmerk_waarde)
- AND aog.alg_onrgoed_key = d.alg_district_key
- AND d.alg_district_verwijder IS NULL
- AND aog.alg_onrgoedkenmerk_verwijder IS NULL;
+
+ BEGIN
+ SELECT alg_onrgoed_key
+ INTO v_district_key
+ FROM prs_perslid p,
+ alg_onrgoedkenmerk aog,
+ alg_district d
+ WHERE p.prs_perslid_naam = rec_d.achternaam
+ AND p.prs_perslid_voorletters = rec_d.voorletters
+ AND COALESCE(p.prs_perslid_tussenvoegsel, '.') = COALESCE(rec_d.tussenvoegsels, '.')
+ AND alg_kenmerk_key = 1021 -- key van districtmanager
+ AND prs_perslid_key = fac.safe_to_number(alg_onrgoedkenmerk_waarde)
+ AND aog.alg_onrgoed_key = d.alg_district_key
+ AND d.alg_district_verwijder IS NULL
+ AND aog.alg_onrgoedkenmerk_verwijder IS NULL;
- FOR rec IN c(rec_a.accountcode, rec_d.dm)
- LOOP
- BEGIN
- v_locatie_key := NULL;
- -- Get BUD reference
- v_error_hint := 'Bepalen bb referentie: ' || rec.dm;
- v_bud_key := get_alg_kenmerk (1060, v_district_key);
+ EXCEPTION WHEN NO_DATA_FOUND THEN
+ fac.imp_writelog (
+ p_import_key,
+ 'E',
+ 'Import locaties afgebroken, distrinctmanager niet gevonden ( district mngr:' || rec_d.dm || '(' || rec_d.voorletters || ' ' || rec_d.tussenvoegsels || ' ' || rec_d.achternaam || ')' || '- account:' || rec_a.accountcode || '-' || rec_a.accountnaam || ')',
+ v_error_hint);
+ END;
- -- Get BB reference
- v_error_hint := 'Bepalen bb referentie: ' || rec.dm;
- v_bb_key := get_alg_kenmerk (1020, v_district_key);
-
+ IF v_district_key IS NOT NULL THEN
+ FOR rec IN c(rec_a.accountcode, rec_d.dm)
+ LOOP
BEGIN
- v_error_hint := 'Kijk of de locatie al bestaat: ' || rec.project;
- SELECT alg_onrgoed_key
- INTO v_locatie_key
- FROM alg_onrgoedkenmerk
- WHERE alg_kenmerk_key = 1040 -- projectnummer
- AND alg_onrgoedkenmerk_waarde = rec.project;
-
- EXCEPTION WHEN NO_DATA_FOUND
- THEN
- IF rec.code IS NULL THEN
- v_locatie_code := rec.project;
- ELSE
- v_locatie_code := rec.code;
- END IF;
- INSERT INTO alg_locatie (alg_district_key, alg_locatie_code, alg_locatie_omschrijving)
- VALUES (v_district_key, 'P' || v_locatie_code, SUBSTR(rec.omschrijving,1,50))
- RETURNING alg_locatie_key
- INTO v_locatie_key;
- END;
-
- UPDATE alg_locatie
- SET alg_locatie_omschrijving = SUBSTR(rec.omschrijving,1,50),
- alg_district_key = v_district_key,
- alg_locatie_adres = rec.adres,
- alg_locatie_postcode = rec.postcode,
- alg_locatie_plaats = rec.woonplaats
- WHERE alg_locatie_key = v_locatie_key;
-
- csun_set_kenmerk ('ALG', 1006, v_locatie_key, v_bud_key, 0);
- csun_set_kenmerk ('ALG', 1007, v_locatie_key, v_bb_key, 0);
- csun_set_kenmerk ('ALG', 1000, v_locatie_key, v_account_key, 0);
- csun_set_kenmerk ('ALG', 1040, v_locatie_key, rec.project, 0);
+ v_locatie_key := NULL;
+ -- Get BUD reference
+ v_error_hint := 'Bepalen bb referentie: ' || rec.dm;
+ v_bud_key := get_alg_kenmerk (1060, v_district_key);
+
+ -- Get BB reference
+ v_error_hint := 'Bepalen bb referentie: ' || rec.dm;
+ v_bb_key := get_alg_kenmerk (1020, v_district_key);
- EXCEPTION WHEN OTHERS THEN
- oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
- v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
- fac.imp_writelog (
- p_import_key,
- 'E',
- 'Import locaties afgebroken (' || rec.dm || '-' || rec.accountcode || '-' || rec.project || '):' || v_errormsg,
- v_error_hint);
-
- END;
- END LOOP;
+ BEGIN
+ v_error_hint := 'Kijk of de locatie al bestaat: ' || rec.project;
+ SELECT alg_onrgoed_key
+ INTO v_locatie_key
+ FROM alg_onrgoedkenmerk, alg_locatie
+ WHERE alg_kenmerk_key = 1040 -- projectnummer
+ AND alg_onrgoedkenmerk_waarde = rec.project
+ AND alg_onrgoed_key = alg_locatie_key
+ AND alg_locatie_verwijder IS NULL;
+
+ EXCEPTION WHEN NO_DATA_FOUND
+ THEN
+ -- Kijk of de locatieomschrijving al voorkomt. Als dat het geval is mogen we de
+ -- nieuwe locatie niet aanmaken.
+ SELECT count(*)
+ INTO v_count
+ FROM alg_locatie
+ WHERE alg_locatie_upper = UPPER(SUBSTR(rec.omschrijving,1,50))
+ AND alg_locatie_verwijder IS NULL;
+
+ IF v_count = 0 THEN
+ IF rec.code IS NULL THEN
+ v_locatie_code := rec.project;
+ ELSE
+ v_locatie_code := rec.code;
+ END IF;
+ INSERT INTO alg_locatie (alg_district_key, alg_locatie_code, alg_locatie_omschrijving)
+ VALUES (v_district_key, 'P' || v_locatie_code, SUBSTR(rec.omschrijving,1,50))
+ RETURNING alg_locatie_key
+ INTO v_locatie_key;
+ ELSE
+ fac.imp_writelog (
+ p_import_key,
+ 'E',
+ 'Import locaties afgebroken, locatie omschrijving bestaat al ( district mngr:' || rec_d.dm || '(' || rec_d.voorletters || ' ' || rec_d.tussenvoegsels || ' ' || rec_d.achternaam || ')' || '- account:' || rec_a.accountcode || '-' || rec_a.accountnaam || ' Projectnr: ' || rec.project || ')',
+ v_error_hint);
+ END IF;
+ END;
+
+ IF v_locatie_key IS NOT NULL THEN
+ UPDATE alg_locatie
+ SET alg_locatie_omschrijving = SUBSTR(rec.omschrijving,1,50),
+ alg_district_key = v_district_key,
+ alg_locatie_adres = rec.adres,
+ alg_locatie_postcode = rec.postcode,
+ alg_locatie_plaats = rec.woonplaats
+ WHERE alg_locatie_key = v_locatie_key;
+
+ csun_set_kenmerk ('ALG', 1006, v_locatie_key, v_bud_key, 0);
+ csun_set_kenmerk ('ALG', 1007, v_locatie_key, v_bb_key, 0);
+ csun_set_kenmerk ('ALG', 1000, v_locatie_key, v_account_key, 0);
+ csun_set_kenmerk ('ALG', 1040, v_locatie_key, rec.project, 0);
+ END IF;
+
+ EXCEPTION WHEN OTHERS THEN
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
+ v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
+ fac.imp_writelog (
+ p_import_key,
+ 'E',
+ 'Import locaties afgebroken ( district mngr:' || rec_d.dm || '(' || rec_d.voorletters || ' ' || rec_d.tussenvoegsels || ' ' || rec_d.achternaam || ')' || '- account:' || rec_a.accountcode || '-' || rec_a.accountnaam || ' Projectnr: ' || rec.project || '):' || v_errormsg,
+ v_error_hint);
+
+ END;
+ END LOOP;
+ END IF;
EXCEPTION WHEN OTHERS THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
@@ -1390,7 +1425,7 @@ BEGIN
fac.imp_writelog (
p_import_key,
'E',
- 'Import locaties afgebroken (' || rec_d.dm || '-' || rec_a.accountcode || '):' || v_errormsg,
+ 'Import locaties afgebroken ( district mngr:' || rec_d.dm || '(' || rec_d.voorletters || ' ' || rec_d.tussenvoegsels || ' ' || rec_d.achternaam || ')' || '- account:' || rec_a.accountcode || '-' || rec_a.accountnaam || '):' || v_errormsg,
v_error_hint);
END;
END LOOP;
@@ -1573,7 +1608,7 @@ BEGIN
|| v_correction);
RETURN 9 * ( (5 * v_week) + v_mod - v_holidays) + v_correction;
EXCEPTION
- WHEN OTHERS
+ WHEN NO_DATA_FOUND
THEN
RETURN NULL;
END;
diff --git a/NMMS/nmms.sql b/NMMS/nmms.sql
new file mode 100644
index 000000000..67daf5e25
--- /dev/null
+++ b/NMMS/nmms.sql
@@ -0,0 +1,332 @@
+-- Script containing customer specific configuration sql statements for NMMS: Nationaal Militair Museum
+-- (c) 2011 SG|facilitor
+-- $Revision$
+-- $Id$
+--
+-- Support: +31 53 4800710
+SPOOL xNMMS.LST
+SET ECHO ON
+--------------
+
+CREATE OR REPLACE PACKAGE nmms
+AS
+ FUNCTION get_first_melding (p_melding_key IN NUMBER, p_index IN NUMBER)
+ RETURN NUMBER;
+END;
+
+
+CREATE OR REPLACE PACKAGE BODY nmms
+AS
+ FUNCTION get_first_melding (p_melding_key IN NUMBER,
+ p_index IN NUMBER)
+ RETURN NUMBER
+ AS
+ CURSOR c
+ IS
+ SELECT m2.mld_melding_datum van,
+ fac.gettrackingdate ('MLDAFM', m2.mld_melding_key) tot,
+ m2.mld_melding_key
+ FROM mld_melding m1,
+ mld_melding m2,
+ mld_stdmelding std1,
+ mld_stdmelding std2
+ WHERE m1.mld_melding_key = p_melding_key
+ AND m1.mld_stdmelding_key = std1.mld_stdmelding_key
+ AND m2.mld_stdmelding_key = std2.mld_stdmelding_key
+ AND std1.prs_dienst_key = std2.prs_dienst_key
+ AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys
+ AND m1.mld_melding_datum BETWEEN m2.mld_melding_datum
+ AND fac.gettrackingdate (
+ 'MLDAFM',
+ m2.mld_melding_key);
+
+ v_melding_key NUMBER;
+ l_melding_key NUMBER;
+ v_datum_begin DATE;
+ l_datum_begin DATE;
+ BEGIN
+ v_melding_key := p_melding_key;
+
+ SELECT mld_melding_datum
+ INTO v_datum_begin
+ FROM mld_melding
+ WHERE mld_melding_key = p_melding_key;
+
+ FOR rec IN c
+ LOOP
+ IF p_index < 10
+ THEN
+ BEGIN
+ l_melding_key :=
+ nmms_get_first_melding (rec.mld_melding_key, p_index + 1);
+ END;
+
+ SELECT mld_melding_datum
+ INTO l_datum_begin
+ FROM mld_melding
+ WHERE mld_melding_key = l_melding_key;
+
+ IF l_datum_begin < v_datum_begin
+ THEN
+ v_datum_begin := l_datum_begin;
+ v_melding_key := l_melding_key;
+ END IF;
+ END IF;
+ END LOOP;
+
+ RETURN v_melding_key;
+ END;
+END;
+/
+
+CREATE OR REPLACE VIEW nmms_v_rap_monitoring
+(
+ html_melding,
+ fclt_f_afw,
+ q_vervolg,
+ indult,
+ respijt,
+ ruimte,
+ omschrijving,
+ begin,
+ gereed,
+ thtijdstip,
+ tht,
+ wht,
+ regime,
+ groep,
+ typekorting,
+ basiskorting,
+ variabelekorting,
+ uren,
+ kb,
+ prestatiekorting,
+ factor,
+ kp,
+ wegingsfactor
+)
+AS
+ SELECT ''
+ || mld_melding_key
+ || ''
+ melding,
+ DECODE (antedateren, 0, '', 'T') -- de begintijd of eindtijd van de melding is aangepast
+ || DECODE (mld_melding_respijt, 0, '', 'R') -- er is een respijt ingevuld
+ || DECODE (aantal, 1, '', 'S') -- betreft een samengestelde/overlappende melding
+ || DECODE (mld_melding_indult, 1, 'I', '') -- indult is aangevinkt dus melding doet niet mee
+ || DECODE (aantal_beschikb, 0, '', 'B'), -- binnen de looptijd van de melding is er ook een beschikbaarheidsmelding in dezelfde ruimte
+ q_vervolg,
+ DECODE (COALESCE (mld_melding_indult, 0), 0, 'Nee', 'Ja'),
+ DECODE (
+ mld_melding_respijt,
+ 0,
+ NULL,
+ DECODE (uitvoertijdtype,
+ 'UREN', ROUND (mld_melding_respijt * 24, 2) || ' Uren',
+ TO_CHAR (mld_melding_respijt) || ' Dagen'))
+ respijt,
+ ruimte,
+ mld_stdmelding_omschrijving omschrijving,
+ TO_CHAR (t_van, 'dd-mm-yyyy hh24:mi:ss') begin,
+ TO_CHAR (einddatum, 'dd-mm-yyyy hh24:mi:ss') eind,
+ TO_CHAR (thtijdstip, 'dd-mm-yyyy hh24:mi:ss') thtijdstip,
+ DECODE (
+ kortingtype,
+ 'Q',
+ NULL,
+ DECODE (uitvoertijdtype,
+ 'UREN', ROUND (tht * 24, 2) || ' Uren',
+ TO_CHAR (tht) || ' Dagen'))
+ tht_txt,
+ DECODE (kortingtype,
+ 'Q', TO_NUMBER (NULL),
+ DECODE (uitvoertijdtype, 'UREN', 24, 1) * actual)
+ wht,
+ DECODE (kortingtype, 'Q', TO_NUMBER (NULL), regime) regime,
+ mld_stdmeldinggroep_naam groep,
+ 'K' || LOWER (kortingtype) || DECODE (q_vervolg, 1, '/q')
+ typekorting,
+ DECODE (kortingtype,
+ 'B', mld_stdmelding_malus,
+ 'S', mld_stdmelding_malus,
+ 'Q', mld_stdmelding_malus)
+ basiskorting,
+ DECODE (kortingtype, 'B', 50, 'S', 1000) variabelekorting,
+ DECODE (
+ telaat,
+ 1,
+ DECODE (kortingtype,
+ 'B', (actual - tht) * 24,
+ 'S', (actual - tht) * 24))
+ uren,
+ DECODE (
+ telaat,
+ 1,
+ DECODE (
+ kortingtype,
+ 'Q',
+ mld_stdmelding_malus,
+ 'B',
+ mld_stdmelding_malus
+ + ( (TRUNC ( (actual - tht) * 24) + 1) * 50),
+ 'S',
+ mld_stdmelding_malus
+ + ( (TRUNC ( (actual - tht) / thtsla) + 1) * 1000),
+ NULL))
+ kb,
+ DECODE (kortingtype, 'P', mld_stdmelding_malus) prestatiekorting,
+ DECODE (telaat,
+ 1,
+ DECODE (kortingtype, 'P', ( (actual - tht) / thtsla) + 1))
+ factor,
+ DECODE (
+ telaat,
+ 1,
+ DECODE (
+ kortingtype,
+ 'P',
+ TRUNC (
+ DECODE (telaat, 1, ( (actual - tht) / thtsla) + 1, NULL))
+ * mld_stdmelding_malus))
+ kp,
+ DECODE (kortingtype,
+ 'B',
+ nmms_get_ins_weegfactor (mld_melding_key, wegingsfactor))
+ wegingsfactor
+ FROM (SELECT m.aantal,
+ m.mld_melding_key,
+ m.mld_melding_indult,
+ q.vervolg q_vervolg,
+ COALESCE (m.mld_melding_respijt, 0) mld_melding_respijt,
+ mld_stdmelding_omschrijving,
+ t_van,
+ DECODE (SIGN (mld_melding_uitvoertijd - 1),
+ -1, 'UREN',
+ 'DAGEN')
+ uitvoertijdtype,
+ t_tot einddatum,
+ mld_melding_einddatum_std thtijdstip,
+ decode(q.vervolg, null, mld_melding_uitvoertijd, 0) + mld_melding_respijt tht,
+ mld_melding_uitvoertijd thtsla,
+ mld_stdmeldinggroep_naam,
+ nmms_get_regime (std.mld_stdmelding_key,
+ m.mld_alg_onroerendgoed_keys,
+ NULL)
+ regime,
+ UPPER (SUBSTR (mld_stdmeldinggroep_naam, 1, 1)) kortingtype, -- de meldingsgroep bevat het type storing
+ mld_stdmelding_malus,
+ alg_ruimte_nr || '-' || alg_ruimte_omschrijving ruimte,
+ mld.getactualuitvoer ( -- bepaal de actuele doorlooptijd a.d.h.v. de samengestelde melding
+ t_van,
+ COALESCE(t_tot, SYSDATE),
+ m.mld_stdmelding_key,
+ m.mld_melding_spoed,
+ m.mld_alg_onroerendgoed_keys,
+ -- selecteer het object van de melding met de kortste doorlooptijd
+ (select max(d1.ins_deel_key) from ins_deel d1, mld_melding_object mo1, ins_deel d2, mld_melding_object mo2
+ where m.mld_melding_key = mo1.mld_melding_key
+ and mo1.ins_deel_key = d1.ins_deel_key
+ and m.mld_melding_key = mo2.mld_melding_key
+ and mo2.ins_deel_key = d2.ins_deel_key
+ and d1.ins_deel_uitvoertijd <= d2.ins_deel_uitvoertijd )) actual,
+ ( SELECT count(mb.mld_melding_key) aantal -- kijk of er op het moment van de melding er een beschikbaarheidsstoring was.
+ FROM mld_melding mb,
+ mld_stdmelding std_b
+ WHERE (mb.mld_melding_datum BETWEEN m.t_van
+ AND coalesce(m.t_tot, sysdate)
+ OR fac.gettrackingdate ('MLDAFM', mb.mld_melding_key) BETWEEN m.t_van
+ AND coalesce(m.t_tot, sysdate))
+ AND mb.mld_alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
+ AND mb.mld_stdmelding_key = std_b.mld_stdmelding_key
+ AND std_b.mld_stdmeldinggroep_key = 63 -- beschikbaarheid
+ AND std.mld_stdmeldinggroep_key <> 63) aantal_beschikb, -- beschikbaarheid
+ -- vervolgmelding op een inspectie zijn per definitie te laat
+ -- inspecties zelf zijn te laat als de geplande einddatum verstreken is.
+ -- anders geldt de normale formule
+ CASE COALESCE(q.vervolg, 0)
+ WHEN 1 THEN 1
+ ELSE
+ DECODE (
+ UPPER (SUBSTR (mld_stdmeldinggroep_naam, 1, 1)),
+ 'Q',
+ SIGN(t_tot
+ - mld_melding_einddatum),
+ SIGN(mld.getactualuitvoer (m.mld_melding_key)
+ - (mld_melding_uitvoertijd + mld_melding_respijt)))
+ END telaat,
+ alg_srtruimte_prijs4 wegingsfactor,
+ -- is de tijd van de melding aangepast?
+ (SELECT COUNT ( * )
+ FROM fac_tracking t, fac_srtnotificatie sn
+ WHERE fac_tracking_refkey = m.mld_melding_key
+ AND t.fac_srtnotificatie_key =
+ sn.fac_srtnotificatie_key
+ AND sn.fac_srtnotificatie_code = 'MLDUPD'
+ AND (fac_tracking_oms LIKE '%Start :%'
+ OR fac_tracking_oms LIKE '%Afgemeld:%'))
+ antedateren
+ FROM ( -- selecteer de begin en eindtijd van overlappende meldingen van dezelfde dienst op dezelfde ruimte
+ --
+ SELECT m_start,
+ count(mld_melding_key) aantal,
+ MIN (mld_melding_datum) t_van,
+ MAX (t_tot) t_tot,
+ MIN (mld_melding_key) mld_melding_key,
+ MIN (mld_stdmelding_key) mld_stdmelding_key,
+ mld_alg_onroerendgoed_keys mld_alg_onroerendgoed_keys,
+ SUM (mld_melding_respijt) mld_melding_respijt,
+ MAX (mld_melding_indult) mld_melding_indult,
+ MIN (mld_melding_uitvoertijd) mld_melding_uitvoertijd,
+ MIN (mld_melding_einddatum_std) mld_melding_einddatum_std,
+ MAX (mld_melding_einddatum) mld_melding_einddatum,
+ MIN (mld_melding_spoed) mld_melding_spoed
+ FROM (SELECT nmms.get_first_melding (mld_melding_key, 1) m_start,
+ fac.gettrackingdate ('MLDAFM', m.mld_melding_key) t_tot,
+ m.*
+ FROM mld_melding m
+ WHERE m.mld_melding_parentkey IS NULL) -- we nemen geen dubbele meldingen mee
+ GROUP BY m_start, mld_alg_onroerendgoed_keys) m,
+ mld_stdmeldinggroep stdg,
+ alg_v_ruimte_gegevens rg,
+ alg_srtruimte sr,
+ mld_stdmelding std,
+ (SELECT m1.mld_melding_key,
+ DECODE (m2.mld_melding_key, NULL, 0, 1) vervolg
+ FROM mld_melding m1,
+ mld_stdmelding std1,
+ mld_stdmeldinggroep stdg1,
+ mld_melding m2,
+ mld_stdmelding std2,
+ mld_stdmeldinggroep stdg2
+ WHERE m1.mld_melding_start_key = m2.mld_melding_key
+ AND m2.mld_stdmelding_key = std2.mld_stdmelding_key
+ AND std2.mld_stdmeldinggroep_key =
+ stdg2.mld_stdmeldinggroep_key
+ AND m1.mld_stdmelding_key = std1.mld_stdmelding_key
+ AND std1.mld_stdmeldinggroep_key =
+ stdg1.mld_stdmeldinggroep_key
+ AND UPPER (
+ SUBSTR (stdg2.mld_stdmeldinggroep_naam, 1, 1)) =
+ 'Q'
+ AND UPPER (
+ SUBSTR (stdg1.mld_stdmeldinggroep_naam, 1, 1)) <>
+ 'Q') q
+ WHERE mld_stdmelding_malus IS NOT NULL
+ AND m.mld_melding_key > 100007 -- tijdelijk om oude meldingen niet te tonen
+ AND m.mld_alg_onroerendgoed_keys = rg.alg_ruimte_key(+)
+ AND rg.alg_srtruimte_key = sr.alg_srtruimte_key(+)
+ AND m.mld_stdmelding_key = std.mld_stdmelding_key
+ AND m.mld_melding_key = q.mld_melding_key(+)
+ AND std.mld_stdmeldinggroep_key =
+ stdg.mld_stdmeldinggroep_key(+)) g;
+
+
+BEGIN adm.systrackscript('$Workfile: nmms.sql $', '$Revision$', 0); END;
+/
+BEGIN fac.registercustversion('NMMS', 1); END;
+/
+COMMIT;
+spool off
diff --git a/NYBU/nybu.sql b/NYBU/nybu.sql
index 71d9e430f..dde4df37d 100644
--- a/NYBU/nybu.sql
+++ b/NYBU/nybu.sql
@@ -12,32 +12,47 @@ SPOOL xnybu.lst
CREATE OR REPLACE PACKAGE nybu
AS
- FUNCTION getPeriodeNaam(p_periode IN VARCHAR2)
+ FUNCTION getPeriodeNaam(p_periode IN VARCHAR2,
+ p_lang IN VARCHAR2)
RETURN VARCHAR2;
END nybu;
/
CREATE OR REPLACE PACKAGE BODY nybu
AS
- FUNCTION getPeriodeNaam(p_periode IN VARCHAR2)
+ FUNCTION getPeriodeNaam(p_periode IN VARCHAR2,
+ p_lang IN VARCHAR2)
RETURN VARCHAR2
IS
v_naam VARCHAR2(20);
BEGIN
- SELECT DECODE(
- SUBSTR(p_periode, 5, 2),
- '01', 'January',
- '02', 'February',
- '03', 'March',
- '04', 'April',
- '05', 'May',
- '06', 'June',
- '07', 'July',
- '08', 'August',
- '09', 'September',
- '10', 'October',
- '11', 'November',
- '12', 'December'
+ SELECT DECODE(p_lang,
+ 'NL', DECODE( SUBSTR(p_periode, 5, 2),
+ '01', 'januari',
+ '02', 'februari',
+ '03', 'maart',
+ '04', 'april',
+ '05', 'mei',
+ '06', 'juni',
+ '07', 'juli',
+ '08', 'augustus',
+ '09', 'september',
+ '10', 'oktober',
+ '11', 'november',
+ '12', 'december'),
+ DECODE( SUBSTR(p_periode, 5, 2),
+ '01', 'January',
+ '02', 'February',
+ '03', 'March',
+ '04', 'April',
+ '05', 'May',
+ '06', 'June',
+ '07', 'July',
+ '08', 'August',
+ '09', 'September',
+ '10', 'October',
+ '11', 'November',
+ '12', 'December')
) || ' ' || SUBSTR(p_periode, 1, 4)
INTO v_naam
FROM DUAL;
@@ -2052,6 +2067,8 @@ AS
c.cnt_contract_looptijd_tot, -- eind,
c.cnt_prs_bedrijf_key,
c.cnt_contract_versie,
+ kp.prs_kostenplaats_nr kpn,
+ SUBSTR(kg.prs_kostenplaatsgrp_oms, 1, 7) kpngrp,
r.alg_ruimte_key,
g.alg_gebouw_naam||' '||r.alg_ruimte_nr kamer,
p.prs_perslid_key,
@@ -2085,7 +2102,10 @@ AS
'1', 0,
fac.safe_to_number(borgbedr.cnt_kenmerkcontract_waarde))
borg_tebetalen,
- fac.safe_to_number(borgbedr.cnt_kenmerkcontract_waarde) borg_betaald,
+ DECODE(borgbet.cnt_kenmerkcontract_waarde,
+ '1', fac.safe_to_number(borgbedr.cnt_kenmerkcontract_waarde),
+ 0)
+ borg_betaald,
fac.safe_to_number(schade.cnt_kenmerkcontract_waarde) schadebedrag,
DECODE(fac.safe_to_number(vooruit.cnt_kenmerkcontract_waarde),
NULL, 1,
@@ -2148,7 +2168,9 @@ AS
alg_verdieping v,
alg_gebouw g,
alg_srtruimte sr,
- prs_afdeling a
+ prs_afdeling a,
+ prs_kostenplaats kp,
+ prs_kostenplaatsgrp kg
WHERE c.ins_discipline_key = 55
AND c.cnt_contract_verwijder IS NULL
AND huurder.cnt_contract_key = c.cnt_contract_key
@@ -2174,6 +2196,8 @@ AS
AND refund.cnt_contract_key(+) = c.cnt_contract_key
AND sr.alg_srtruimte_key = r.alg_srtruimte_key
AND a.prs_afdeling_key = p.prs_afdeling_key
+ AND kp.prs_kostenplaats_key = c.prs_kostenplaats_key
+ AND kg.prs_kostenplaatsgrp_key(+) = kp.prs_kostenplaatsgrp_key
AND c.cnt_contract_looptijd_tot >= SYSDATE ) a
LEFT OUTER JOIN
(SELECT kamer.cnt_contract_key,
@@ -2251,6 +2275,8 @@ AS
c_srtcnt_office, 'Office') betreft,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
+ kp.prs_kostenplaats_nr kpn,
+ SUBSTR(kg.prs_kostenplaatsgrp_oms, 1, 7) kpngrp,
p.prs_perslid_key,
p.prs_perslid_naam,
pf.prs_perslid_naam_full,
@@ -2277,10 +2303,14 @@ AS
WHERE prs_kenmerk_key = c_km_coda_nr
AND prs_kenmerklink_verwijder IS NULL) codanr,
prs_kostenplaats k,
+ prs_kostenplaats kp,
+ prs_kostenplaatsgrp kg,
alg_v_ruimte_gegevens rg
WHERE huurder.cnt_contract_key(+) = c.cnt_contract_key
AND pnummer.cnt_contract_key(+) = c.cnt_contract_key
AND ruimte.cnt_contract_key(+) = c.cnt_contract_key
+ AND kp.prs_kostenplaats_key = c.prs_kostenplaats_key
+ AND kg.prs_kostenplaatsgrp_key(+) = kp.prs_kostenplaatsgrp_key
AND p.prs_perslid_key(+) = fac.safe_to_number(huurder.cnt_kenmerkcontract_waarde)
AND pf.prs_perslid_key(+) = p.prs_perslid_key
AND codanr.prs_link_key(+) = p.prs_perslid_key
@@ -2320,7 +2350,7 @@ BEGIN
FOR cntr IN 1..rec.aantal_periodes
LOOP
v_curPeriode := TO_CHAR(ADD_MONTHS(TO_DATE(p_periode, 'YYYYMM'), cntr-1), 'YYYYMM');
- v_periodeNaam := nybu.getPeriodeNaam(v_curPeriode);
+ v_periodeNaam := nybu.getPeriodeNaam(v_curPeriode, 'EN');
--- HUURPRIJS ---
v_errormsg := 'Archiefregel huurprijs aanmaken';
@@ -2343,8 +2373,8 @@ BEGIN
rec.cnt_contract_nummer_intern, rec.cnt_contract_key,
rec.kamer, rec.alg_ruimte_key,
oms.fac_usrdata_omschr||' '||v_periodeNaam,
- 'K91210',
- 'P991210',
+ rec.kpngrp,
+ rec.kpn,
'19010',
btw.fac_usrdata_omschr,
fac.safe_to_number(btw.fac_usrdata_code),
@@ -2376,8 +2406,8 @@ BEGIN
rec.cnt_contract_nummer_intern, rec.cnt_contract_key,
rec.kamer, rec.alg_ruimte_key,
oms.fac_usrdata_omschr||' '||v_periodeNaam,
- 'K91210',
- 'P991210',
+ rec.kpngrp,
+ rec.kpn,
'19010',
btw.fac_usrdata_omschr,
fac.safe_to_number(btw.fac_usrdata_code),
@@ -2411,8 +2441,8 @@ BEGIN
rec.cnt_contract_nummer_intern, rec.cnt_contract_key,
rec.kamer, rec.alg_ruimte_key,
oms.fac_usrdata_omschr||' '||v_periodeNaam,
- 'K91210',
- 'P991210',
+ rec.kpngrp,
+ rec.kpn,
'19010',
btw.fac_usrdata_omschr,
fac.safe_to_number(btw.fac_usrdata_code),
@@ -2447,8 +2477,8 @@ BEGIN
rec.cnt_contract_nummer_intern, rec.cnt_contract_key,
rec.kamer, rec.alg_ruimte_key,
oms.fac_usrdata_omschr||' '||v_periodeNaam,
- 'K91210',
- 'P991210',
+ rec.kpngrp,
+ rec.kpn,
'19010',
btw.fac_usrdata_omschr,
fac.safe_to_number(btw.fac_usrdata_code),
@@ -2519,8 +2549,8 @@ BEGIN
rec.cnt_contract_nummer_intern, rec.cnt_contract_key,
rec.kamer, rec.alg_ruimte_key,
oms.fac_usrdata_omschr,
- 'K91210',
- 'P991210',
+ rec.kpngrp,
+ rec.kpn,
'19140',
btw.fac_usrdata_omschr,
fac.safe_to_number(btw.fac_usrdata_code),
@@ -2579,8 +2609,8 @@ BEGIN
rec.cnt_contract_nummer_intern, rec.cnt_contract_key,
rec.kamer, rec.alg_ruimte_key,
oms.fac_usrdata_omschr,
- 'K91210',
- 'P991210',
+ rec.kpngrp,
+ rec.kpn,
'19140',
btw.fac_usrdata_omschr,
fac.safe_to_number(btw.fac_usrdata_code),
@@ -2615,8 +2645,8 @@ BEGIN
rec.cnt_contract_nummer_intern, rec.cnt_contract_key,
rec.kamer, rec.alg_ruimte_key,
oms.fac_usrdata_omschr,
- 'K91210',
- 'P991210',
+ rec.kpngrp,
+ rec.kpn,
'19010',
btw.fac_usrdata_omschr,
fac.safe_to_number(btw.fac_usrdata_code),
@@ -2652,8 +2682,8 @@ BEGIN
rec.cnt_contract_nummer_intern, rec.cnt_contract_key,
rec.kamer, rec.alg_ruimte_key,
oms.fac_usrdata_omschr,
- 'K91210',
- 'P991210',
+ rec.kpngrp,
+ rec.kpn,
'19010',
btw.fac_usrdata_omschr,
fac.safe_to_number(btw.fac_usrdata_code),
@@ -2716,8 +2746,8 @@ BEGIN
rec.cnt_contract_nummer_intern, rec.cnt_contract_key,
rec.alg_ruimte_aanduiding, rec.alg_ruimte_key,
sk.cnt_srtkenmerk_omschrijving||' '||v_periodeNaam,
- 'K91210',
- 'P991210',
+ rec.kpngrp,
+ rec.kpn,
'19010',
sk.cnt_srtkenmerk_dimensie,
fac.safe_to_number(ud.fac_usrdata_code),
@@ -2810,7 +2840,7 @@ AS
CURSOR c_kpn
IS
SELECT deb_nr, achternaam,
- SUBSTR(kg.prs_kostenplaatsgrp_oms, 1, 6) kpn_grp,
+ SUBSTR(kg.prs_kostenplaatsgrp_oms, 1, 7) kpn_grp,
kpn_code_afd,
kpn_code_proj,
SUM(bedrag/(1+btw_perc/100)) bedrag
@@ -2840,7 +2870,7 @@ BEGIN
-- Deze export gaat over de huur voor volgende maand (periode = huidige maand + 1)
v_run := TO_DATE(p_applrun, 'DD-MM-YYYY HH24:MI:SS');
v_periode := TO_CHAR(ADD_MONTHS(v_run, 1), 'YYYYMM');
- v_periodeNaam := nybu.getPeriodeNaam(v_periode);
+ v_periodeNaam := nybu.getPeriodeNaam(v_periode, 'EN');
-- Is deze periode al geëxporteerd?
-- TODO: Niks doen, of wissen en nog een keer draaien?
@@ -3097,7 +3127,7 @@ AS
CURSOR c_kpn
IS
SELECT deb_nr, achternaam,
- SUBSTR(kg.prs_kostenplaatsgrp_oms, 1, 6) kpn_grp,
+ SUBSTR(kg.prs_kostenplaatsgrp_oms, 1, 7) kpn_grp,
kpn_code_afd,
kpn_code_proj,
SUM(bedrag/(1+btw_perc/100)) bedrag
@@ -3127,7 +3157,7 @@ BEGIN
-- Deze export gaat over de huur voor volgende maand (periode = huidige maand + 1)
v_run := TO_DATE(p_applrun, 'DD-MM-YYYY HH24:MI:SS');
v_periode := TO_CHAR(ADD_MONTHS(v_run, 1), 'YYYYMM');
- v_periodeNaam := nybu.getPeriodeNaam(v_periode);
+ v_periodeNaam := nybu.getPeriodeNaam(v_periode, 'EN');
-- Is deze periode al geëxporteerd?
-- TODO: Niks doen, of wissen en nog een keer draaien?
@@ -3474,7 +3504,7 @@ BEGIN
SELECT MAX(periode)
INTO v_periode
FROM nybu_huur_archief;
- v_periodeNaam := nybu.getPeriodeNaam(v_periode);
+ v_periodeNaam := nybu.getPeriodeNaam(v_periode, 'EN');
-- Mutaties over periode n komen op factuur voor periode n+1
v_next_period := TO_CHAR(ADD_MONTHS(TO_DATE(v_periode, 'YYYYMM'), 1), 'YYYYMM');
@@ -4154,9 +4184,538 @@ AS
);
+------- KOPPELING CODA (Reserveringen) -----------------------------------------
+
+-- Externe reserveringen die moeten worden doorbelast
+-- discipline 581 Verbruiksartikel Inhuur Voorzieningen
+-- discipline 462 Verbruiksartikel Hotelkamers
+-- res_kenmerk 201 Company
+-- fac_usrtab 42 CODA BTW-tarieven
+CREATE OR REPLACE VIEW nybu_v_res_factuur_extern
+AS
+ SELECT COALESCE(b.prs_bedrijf_naam, k.prs_kostenplaats_omschrijving) klant,
+ xyz.res_rsv_ruimte_van,
+ xyz.prs_kostensoort_oms grootboek,
+ SUBSTR(kg.prs_kostenplaatsgrp_oms, 1, 7) kostenplaats,
+ b.prs_leverancier_nr deb_nr,
+ k.prs_kostenplaats_nr proj,
+ NULL adm,
+ xyz.btw,
+ btwc.fac_usrdata_omschr btw_code,
+ xyz.res_reservering_key res_key,
+ xyz.res_rsv_ruimte_volgnr res_volgnr,
+ kref.res_kenmerkreservering_waarde referentie,
+ xyz.reservering,
+ xyz.res_rsv_ruimte_key,
+ DECODE(kref.res_kenmerkreservering_waarde,
+ NULL,'',
+ kref.res_kenmerkreservering_waarde||' ')
+ || xyz.res_rsv_ruimte_omschrijving descr,
+ xyz.aantal,
+ xyz.omschrijving,
+ xyz.soort,
+ xyz.prijs prijs_ex,
+ ROUND(xyz.prijs * (1 + xyz.btw/100), 2) prijs_inc
+ FROM ( SELECT 'ruimte' soort,
+ rr.*,
+ ks.prs_kostensoort_oms,
+ 21 btw,
+ rr.res_reservering_key||'/'
+ || rr.res_rsv_ruimte_volgnr reservering,
+ 1 aantal,
+ r.res_ruimte_nr omschrijving,
+ res.getruimteprijs(rr.res_rsv_ruimte_key) prijs
+ FROM res_rsv_ruimte rr,
+ res_ruimte_opstelling ro,
+ res_ruimte r,
+ res_discipline di,
+ prs_kostensoort ks
+ WHERE res.getruimteprijs(rr.res_rsv_ruimte_key) <> 0
+ AND ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key
+ AND r.res_ruimte_key = ro.res_ruimte_key
+ AND di.ins_discipline_key = r.res_discipline_key
+ AND ks.prs_kostensoort_key(+) = di.prs_kostensoort_key
+ UNION ALL
+ SELECT 'artikel' soort,
+ rr.*,
+ ks.prs_kostensoort_oms,
+ COALESCE(a.res_artikel_btw, 0) btw,
+ rr.res_reservering_key||'/'
+ || rr.res_rsv_ruimte_volgnr reservering,
+ ra.res_rsv_artikel_aantal aantal,
+ a.res_artikel_omschrijving omschrijving,
+ res.getartikelprijs(ra.res_rsv_artikel_key) prijs
+ FROM res_rsv_ruimte rr,
+ res_rsv_artikel ra,
+ res_artikel a,
+ res_discipline di,
+ prs_kostensoort ks
+ WHERE ra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
+ AND res.getartikelprijs(ra.res_rsv_artikel_key) <> 0
+ AND a.res_artikel_key = ra.res_artikel_key
+ AND di.ins_discipline_key = a.res_discipline_key
+ AND di.ins_discipline_key IN (581, 462)
+ AND ks.prs_kostensoort_key(+) = di.prs_kostensoort_key
+ UNION ALL
+ SELECT 'deel' soort,
+ rr.*,
+ ks.prs_kostensoort_oms,
+ 21 btw,
+ rr.res_reservering_key||'/'
+ || rr.res_rsv_ruimte_volgnr reservering,
+ rd.res_rsv_deel_aantal aantal,
+ d.res_deel_omschrijving,
+ res.getdeelprijs(rd.res_rsv_deel_key) prijs
+ FROM res_rsv_ruimte rr,
+ res_rsv_deel rd,
+ res_deel d,
+ res_discipline di,
+ prs_kostensoort ks
+ WHERE rd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
+ AND d.res_deel_key = rd.res_deel_key
+ AND res.getdeelprijs(rd.res_rsv_deel_key) <> 0
+ AND di.ins_discipline_key = d.res_discipline_key
+ AND ks.prs_kostensoort_key(+) = di.prs_kostensoort_key) xyz,
+ prs_kostenplaats k,
+ prs_kostenplaatsgrp kg,
+ (SELECT kw.* FROM res_kenmerkwaarde kw, res_kenmerk k
+ WHERE k.res_srtkenmerk_key = 121 AND kw.res_kenmerk_key = k.res_kenmerk_key
+ AND kw.res_kenmerkwaarde_verwijder IS NULL
+ AND k.res_kenmerk_verwijder IS NULL) kref,
+ (SELECT * FROM res_kenmerkwaarde WHERE res_kenmerk_key = 201
+ AND res_kenmerkwaarde_verwijder IS NULL) comp,
+ prs_bedrijf b,
+ (SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 42) btwc
+ WHERE k.prs_kostenplaats_extern = 1
+ AND kg.prs_kostenplaatsgrp_key = k.prs_kostenplaatsgrp_key
+ AND xyz.prs_kostenplaats_key = k.prs_kostenplaats_key
+ AND xyz.res_rsv_ruimte_dirtlevel = 0
+ AND kref.res_rsv_ruimte_key(+) = xyz.res_rsv_ruimte_key
+ AND comp.res_rsv_ruimte_key(+) = xyz.res_rsv_ruimte_key
+ AND b.prs_bedrijf_key(+) = fac.safe_to_number(comp.res_kenmerkreservering_waarde)
+ AND fac.safe_to_number(btwc.fac_usrdata_code) = xyz.btw
+ AND ( ( xyz.res_rsv_ruimte_verwijder IS NULL
+ AND xyz.res_status_bo_key = 5)
+ OR ( xyz.res_rsv_ruimte_verwijder IS NOT NULL
+ AND xyz.res_status_fo_key = 4) );
+
+-- Genereert exportbestand voor CODA over externe en interne reserveringen
+-- Voor externe reserveringen worden factuurregels gegenereerd, voor interne doorbelastingsregels.
+-- Beide soorten komen in één bestand, met een scheidingsregel ertussen.
+CREATE OR REPLACE PROCEDURE nybu_select_res_coda (
+ p_applname IN VARCHAR2,
+ p_applrun IN VARCHAR2)
+AS
+ v_aanduiding VARCHAR2 (200);
+ v_errorhint VARCHAR2 (1000);
+ v_errormsg VARCHAR2 (1000);
+ oracle_err_num NUMBER;
+ oracle_err_mes VARCHAR2 (200);
+
+ -- Individuele facturen voor debiteuren; ook voor sommatieregel met totaalbedrag
+ -- Bedragen zijn incl BTW
+ CURSOR c_deb
+ IS
+ SELECT COALESCE(deb_nr, klant) deb_nr,
+ TO_CHAR(res_rsv_ruimte_van, 'YYYYMM') periode,
+ kostenplaats, proj,
+ SUM(prijs_inc) bedrag
+ FROM nybu_v_res_factuur_extern
+ GROUP BY deb_nr, klant, TO_CHAR(res_rsv_ruimte_van, 'YYYYMM'), kostenplaats, proj
+ ORDER BY deb_nr, klant;
+
+ -- Factuurregels voor deze factuur
+ CURSOR regels (in_deb_nr VARCHAR2, in_periode VARCHAR2)
+ IS
+ SELECT *
+ FROM nybu_v_res_factuur_extern
+ WHERE COALESCE(deb_nr, klant) = in_deb_nr
+ AND TO_CHAR(res_rsv_ruimte_van, 'YYYYMM') = in_periode;
+
+ -- Individuele facturen voor interne kostenplaatsen; ook voor sommatieregel met totaalbedrag
+ -- Bedragen zijn excl BTW
+ CURSOR c_intern
+ IS
+ WITH xyz
+ AS
+ (SELECT rr.res_rsv_ruimte_key,
+ rr.res_reservering_key,
+ rr.res_rsv_ruimte_volgnr,
+ rr.res_rsv_ruimte_omschrijving,
+ rr.res_rsv_ruimte_noshow,
+ rr.res_rsv_ruimte_van,
+ rr.res_rsv_ruimte_tot,
+ k.prs_kostenplaats_key,
+ k.prs_kostenplaats_nr,
+ k.prs_kostenplaats_omschrijving,
+ kg.prs_kostenplaatsgrp_key,
+ kg.prs_kostenplaatsgrp_oms,
+ di.ins_discipline_omschrijving oms,
+ res.getruimteprijs(rr.res_rsv_ruimte_key) prijs
+ FROM res_rsv_ruimte rr,
+ prs_kostenplaats k,
+ prs_kostenplaatsgrp kg,
+ res_ruimte_opstelling ro,
+ res_ruimte r,
+ res_discipline di
+ WHERE COALESCE(k.prs_kostenplaats_extern, 0) = 0
+ AND rr.prs_kostenplaats_key = k.prs_kostenplaats_key
+ AND ( ( rr.res_rsv_ruimte_verwijder IS NULL
+ AND rr.res_status_bo_key = 5)
+ OR ( res_rsv_ruimte_verwijder IS NOT NULL
+ AND res_status_fo_key = 4) )
+ AND kg.prs_kostenplaatsgrp_key = k.prs_kostenplaatsgrp_key
+ AND res.getruimteprijs(rr.res_rsv_ruimte_key) > 0
+ AND ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key
+ AND r.res_ruimte_key = ro.res_ruimte_key
+ AND di.ins_discipline_key = r.res_discipline_key
+ )
+ SELECT '1' nummer,
+ '' adm,
+ ks.prs_kostensoort_oms grootboek,
+ SUBSTR(kg.prs_kostenplaatsgrp_oms, 1, 7) kostenplaats,
+ k.prs_kostenplaats_nr project,
+ NULL medewerker,
+ b.totaalprijs bedrag,
+ CASE
+ WHEN b.totaalprijs < 0 THEN 'D'
+ WHEN b.totaalprijs >= 0 THEN 'C'
+ END dc,
+ 'Zaalhuur '||nybu.getPeriodeNaam(TO_CHAR(SYSDATE, 'YYYYMM'), 'NL' ) regelomschrijving
+ FROM prs_kostensoort ks,
+ prs_kostenplaats k,
+ prs_kostenplaatsgrp kg,
+ (SELECT SUM(prijs) totaalprijs FROM xyz) b
+ WHERE ks.prs_kostensoort_oms = '76015'
+ AND k.prs_kostenplaats_key = ks.prs_kostenplaats_key
+ AND kg.prs_kostenplaatsgrp_key = k.prs_kostenplaatsgrp_key
+ UNION ALL
+ SELECT '1' nummer,
+ '' adm,
+ '56015' grootboek,
+ SUBSTR(prs_kostenplaatsgrp_oms, 1, 7) kostenplaats,
+ prs_kostenplaats_nr project,
+ NULL medewerker,
+ SUM(prijs) bedrag,
+ CASE
+ WHEN SUM(prijs) < 0 THEN 'C'
+ WHEN SUM(prijs) >= 0 THEN 'D'
+ END dc,
+ 'Zaalhuur '||nybu.getPeriodeNaam(TO_CHAR(res_rsv_ruimte_van, 'YYYYMM'), 'NL' )
+ FROM xyz
+ GROUP BY prs_kostenplaatsgrp_oms, prs_kostenplaats_nr, TO_CHAR(res_rsv_ruimte_van, 'YYYYMM')
+ ORDER BY grootboek DESC;
+
+ v_teller NUMBER;
+ v_rap_count NUMBER;
+ v_periode VARCHAR(6);
+ v_periodeNaam VARCHAR2(20);
+BEGIN
+ v_teller := 0;
+ v_rap_count := 0;
+
+ v_aanduiding := 'Init';
+ v_errormsg := 'Periode bepalen';
+
+ -- Deze export gaat over de maand-van-de-meest-recente-reserveringsdatum.
+ SELECT TO_CHAR( MAX(res_rsv_ruimte_van), 'YYYYMM')
+ INTO v_periode
+ FROM nybu_v_res_factuur_extern;
+ v_periodeNaam := nybu.getPeriodeNaam(v_periode, 'NL' );
+
+ DELETE imp_log
+ WHERE imp_log_applicatie = p_applname;
+ DELETE fac_rapport
+ WHERE fac_rapport_node = p_applname;
+
+ -- Genereer headerregel
+ INSERT INTO fac_rapport
+ (fac_rapport_node,
+ fac_rapport_volgnr,
+ fac_rapport_regel,
+ fac_rapport_soort)
+ VALUES
+ (p_applname,
+ v_rap_count,
+ '"NUMMER";"ADM";"GROOTBK";"DEB / KPL";"PROJ";"BEDRAG (INCL BTW)";"D/C";"BTW";"DATUM (DD-MM) + OMSCHRIJVING";"(EXT REF 2)";"(EXT REF 3)";"KLANTREFERENTIE (EXT REF 1)";"COMMENTAAR (EXT REF 4)";"EXTRA VELD (EXT REF 5)";"REGELTYPE";"DOCNR"',
+ 0);
+
+ -- Genereer sommatie- en specificatieregels voor debiteuren
+ FOR rec IN c_deb
+ LOOP
+ v_aanduiding := v_teller||': '||rec.deb_nr||' ('||rec.periode||')';
+ v_errormsg := 'Sommatieregel aanmaken';
+ v_teller := v_teller + 1;
+ v_rap_count := v_rap_count + 1;
+
+ -- Sommatieregel
+ INSERT INTO fac_rapport
+ (fac_rapport_node,
+ fac_rapport_volgnr,
+ fac_rapport_regel,
+ fac_rapport_soort)
+ VALUES
+ (p_applname,
+ v_rap_count,
+ v_teller ||';'|| -- nummer
+ '10;' || -- adm
+ '13000;' || -- grootbk
+ rec.deb_nr ||';'|| -- deb/kpl
+ ';' || -- proj
+ TRIM( TO_CHAR( ABS(rec.bedrag),
+ '99999999D99',
+ 'NLS_NUMERIC_CHARACTERS=,.') ) ||';'|| -- bedrag
+ CASE
+ WHEN rec.bedrag < 0 THEN 'C;'
+ WHEN rec.bedrag >= 0 THEN 'D;'
+ END || -- d/c
+ ';' || -- btw
+ SUBSTR('Zaalhuur '||nybu.getPeriodeNaam(rec.periode, 'NL' ),
+ 1, 36) ||';'|| -- datum + omschrijving
+ rec.proj ||';'|| -- ext ref 2
+ ';' || -- ext ref 3
+ rec.kostenplaats ||';'|| -- klantreferentie (ext ref 1)
+ ';' || -- commentaar (ext ref 4)
+ ';' || -- extra veld (ext ref 5)
+ 'Summary;' || -- regeltype
+ '', -- docnr
+ 0);
+
+ -- Specificatieregels
+ FOR reg IN regels ( rec.deb_nr, rec.periode )
+ LOOP
+ v_errormsg := 'Specificatieregel aanmaken';
+ v_rap_count := v_rap_count + 1;
+ INSERT INTO fac_rapport
+ (fac_rapport_node,
+ fac_rapport_volgnr,
+ fac_rapport_regel,
+ fac_rapport_soort)
+ VALUES
+ (p_applname,
+ v_rap_count,
+ v_teller ||';'|| -- nummer
+ '12;' || -- adm
+ reg.grootboek ||';'|| -- grootbk
+ reg.kostenplaats ||';'|| -- deb/kpl
+ reg.proj ||';'|| -- proj
+ TRIM( TO_CHAR( ABS(reg.prijs_inc),
+ '99999999D99',
+ 'NLS_NUMERIC_CHARACTERS=,.') ) ||';'|| -- bedrag
+ CASE
+ WHEN reg.prijs_inc < 0 THEN 'D;'
+ WHEN reg.prijs_inc >= 0 THEN 'C;'
+ END || -- d/c
+ reg.btw_code ||';'|| -- btw
+ '"' || SUBSTR( TO_CHAR(reg.res_rsv_ruimte_van, 'DD-MM ') ||
+ DECODE(reg.soort,
+ 'ruimte', reg.omschrijving,
+ reg.aantal||'x '||reg.omschrijving),
+ 1, 36) ||'";'|| -- datum + omschrijving
+ ';' || -- ext ref 2
+ ';' || -- ext ref 3
+ DECODE(reg.referentie,
+ NULL, ';',
+ '"'||reg.referentie||'";') || -- klantreferente (ext ref 1)
+ '"Info: Sales &'||' Events 0346-291544";'|| -- commentaar (ext ref 4)
+ '"Periode: '||
+ nybu.getPeriodeNaam(TO_CHAR(reg.res_rsv_ruimte_van, 'YYYYMM'),
+ 'NL' ) ||'";'|| -- extra veld (ext ref 5)
+ 'Analysis;' || -- regeltype
+ '', -- docnr
+ 0);
+ END LOOP;
+
+ END LOOP;
+
+ -- Scheidingsregel
+ v_errormsg := 'Scheidingsregel aanmaken';
+ v_rap_count := v_rap_count + 1;
+ INSERT INTO fac_rapport
+ (fac_rapport_node,
+ fac_rapport_volgnr,
+ fac_rapport_regel,
+ fac_rapport_soort)
+ VALUES
+ (p_applname,
+ v_rap_count,
+ '"Nummer";"Adm.";"Grootboek";"Kostenplaats";"Project";"Medewerker";"Bedrag";"D/C";"Regelomschrijving"',
+ 0);
+
+ v_teller := 0;
+
+ -- Genereer regels voor interne kostenplaatsen
+ -- Cursor bevat één tegenboekingsregel en per kostenplaats+periode één sommatieregel
+ FOR rec IN c_intern
+ LOOP
+ v_aanduiding := v_teller||': '||rec.project||'/'||rec.regelomschrijving;
+ v_errormsg := 'Interne boekingsregel aanmaken';
+ v_rap_count := v_rap_count + 1;
+
+ INSERT INTO fac_rapport
+ (fac_rapport_node,
+ fac_rapport_volgnr,
+ fac_rapport_regel,
+ fac_rapport_soort)
+ VALUES
+ (p_applname,
+ v_rap_count,
+ rec.nummer ||';'||
+ rec.adm ||';'||
+ rec.grootboek ||';'||
+ rec.kostenplaats ||';'||
+ rec.project ||';'||
+ rec.medewerker ||';'||
+ TRIM( TO_CHAR( ABS(rec.bedrag),
+ '99999999D99',
+ 'NLS_NUMERIC_CHARACTERS=,.') ) ||';'||
+ rec.dc ||';'||
+ '"' || SUBSTR(rec.regelomschrijving, 1, 36) || '"',
+ 0);
+
+ END LOOP;
+
+ fac.writelog (
+ p_applname,
+ 'S',
+ 'Factuurregels gegenereerd',
+ 'Periode '||v_periodeNaam);
+
+ COMMIT;
+
+EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
+ v_errormsg :=
+ v_errorhint
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.writelog (
+ p_applname,
+ 'E',
+ v_aanduiding || v_errormsg,
+ 'Onbekende fout!');
+ COMMIT;
+END nybu_select_res_coda;
+/
+
+CREATE OR REPLACE VIEW nybu_v_export_res_coda
+AS
+ SELECT fac_rapport_regel result,
+ fac_rapport_volgnr result_order
+ FROM fac_rapport
+ WHERE fac_rapport_node = 'RES_CODA'
+ ORDER BY fac_rapport_volgnr;
+
+-- Zet status van de met RES_CODA geëxporteerde reserveringen op Verwerkt.
+CREATE OR REPLACE PROCEDURE nybu_export_res_verwerk (
+ p_applname IN VARCHAR2,
+ p_applrun IN VARCHAR2)
+AS
+ v_aanduiding VARCHAR2 (200);
+ v_errorhint VARCHAR2 (1000);
+ v_errormsg VARCHAR2 (1000);
+ oracle_err_num NUMBER;
+ oracle_err_mes VARCHAR2 (200);
+
+ -- Alle doorbelaste rsv_ruimtes
+ CURSOR c_rsv
+ IS
+ SELECT DISTINCT res_rsv_ruimte_key, reservering
+ FROM nybu_v_res_factuur_extern
+ UNION ALL
+ SELECT DISTINCT rr.res_rsv_ruimte_key,
+ rr.res_reservering_key||'/'||rr.res_rsv_ruimte_volgnr volgnr
+ FROM res_rsv_ruimte rr,
+ prs_kostenplaats k
+ WHERE COALESCE(k.prs_kostenplaats_extern, 0) = 0
+ AND rr.prs_kostenplaats_key = k.prs_kostenplaats_key
+ AND ( ( rr.res_rsv_ruimte_verwijder IS NULL
+ AND rr.res_status_bo_key = 5)
+ OR ( res_rsv_ruimte_verwijder IS NOT NULL
+ AND res_status_fo_key = 4) );
+
+ v_periode VARCHAR(6);
+ v_periodeNaam VARCHAR2(20);
+BEGIN
+ v_aanduiding := 'Init';
+ v_errormsg := 'Periode bepalen';
+
+ -- Deze export gaat over de maand-van-de-meest-recente-reserveringsdatum.
+ SELECT TO_CHAR( MAX(res_rsv_ruimte_van), 'YYYYMM')
+ INTO v_periode
+ FROM nybu_v_res_factuur_extern;
+ v_periodeNaam := nybu.getPeriodeNaam(v_periode, 'NL' );
+
+ DELETE imp_log
+ WHERE imp_log_applicatie = p_applname;
+
+ FOR rec IN c_rsv
+ LOOP
+ v_aanduiding := 'Reservering '||rec.reservering||' ('||rec.res_rsv_ruimte_key||')';
+
+ v_errormsg := 'Verbruiksartikelen verwerken';
+ UPDATE res_rsv_artikel
+ SET res_status_bo_key = 6
+ WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
+
+ v_errormsg := 'Voorzieningen verwerken';
+ UPDATE res_rsv_deel
+ SET res_status_bo_key = 6
+ WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
+
+ v_errormsg := 'Ruimte verwerken';
+ UPDATE res_rsv_ruimte
+ SET res_status_bo_key = 6
+ WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
+
+ fac.writelog (p_applname, 'I',
+ 'Reservering verwerkt',
+ rec.reservering);
+
+ fac.trackaction ('RESVER',
+ rec.res_rsv_ruimte_key,
+ NULL,
+ NULL,
+ 'Reservering doorbelast');
+ END LOOP;
+ fac.writelog (p_applname, 'S',
+ 'Reserveringen verwerkt',
+ 'Periode '||v_periodeNaam);
+ COMMIT;
+
+EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
+ v_errormsg :=
+ v_errorhint
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.writelog (
+ p_applname,
+ 'E',
+ v_aanduiding || v_errormsg,
+ 'Onbekende fout!');
+ COMMIT;
+
+END nybu_export_res_verwerk;
+/
+
+
------- Rapportages Reserveringen ----------------------------------------------
-- Backoffice-looplijst voor General Services / schoonmaak
+-- NYBU#27920: Catalogus "Catering room" (key 242) wegfilteren
CREATE OR REPLACE VIEW nybu_v_rap_res_looplijst
AS
SELECT DISTINCT TO_CHAR(rr.res_rsv_ruimte_van, 'yyyy-mm-dd')||rg.alg_gebouw_upper || TO_CHAR(rr.res_rsv_ruimte_van, 'hh24:mi') hide_f_srt,
@@ -4180,7 +4739,9 @@ AS
AND ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key
AND o.res_opstelling_key = ro.res_opstelling_key
AND r.res_ruimte_key = ro.res_ruimte_key
+ AND r.res_discipline_key != 242
AND ar.res_ruimte_key = r.res_ruimte_key
+ AND ar.res_alg_ruimte_verwijder IS NULL
AND rg.alg_ruimte_key = ar.alg_ruimte_key;
-- Overzicht van reserveringen voor de komende 7 dagen die vandaag toegevoegd/gewijzigd zijn (tbv backoffice).
@@ -4213,6 +4774,309 @@ AS
AND TRUNC(rr.res_rsv_ruimte_van) BETWEEN TRUNC(SYSDATE)
AND TRUNC(SYSDATE)+7;
+CREATE OR REPLACE VIEW nybu_v_rap_res_mut_events
+AS
+ -- Verwijderde reserveringen
+ SELECT ROUND(fac.safe_to_number(SYSDATE-t.fac_tracking_datum),5) || rr.res_reservering_key||'/'||res_rsv_ruimte_volgnr hide_f_srt,
+ TO_CHAR(t.fac_tracking_datum, 'DD-MM-YYYY') fclt_d_datum,
+ DECODE( fac.safe_to_number(TRUNC(SYSDATE)-TRUNC(t.fac_tracking_datum) ),
+ 0, TO_CHAR(t.fac_tracking_datum, 'HH24:MI'),
+ TO_CHAR(t.fac_tracking_datum, 'DD-MM-YYYY HH24:MI') )
+ tijd,
+ pf.prs_perslid_naam_full door,
+ 'Verwijderd' fclt_f_actie,
+ ''
+ || rr.res_reservering_key||'/'||res_rsv_ruimte_volgnr || ''
+ html_reservering,
+ sf.res_status_fo_omschrijving fclt_f_status,
+ rr.res_rsv_ruimte_omschrijving omschrijving,
+ COALESCE(t.fac_tracking_oms, lx.oms) logtekst,
+ NULL fclt_f_voorziening
+ FROM fac_tracking t,
+ fac_srtnotificatie sn,
+ res_rsv_ruimte rr,
+ prs_v_perslid_fullnames pf,
+ res_status_fo sf,
+ (SELECT fac_locale_xsl_label, COALESCE (fac_locale_xsl_cust, fac_locale_xsl_tekst) oms
+ FROM fac_locale_xsl
+ WHERE fac_locale_xsl_label LIKE 'lcl_res_is_%'
+ AND fac_locale_xsl_lang = lcl.getuserlanguage() ) lx
+ WHERE sn.fac_srtnotificatie_code = 'RESDEL'
+ AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
+ AND lx.fac_locale_xsl_label(+) = 'lcl_res_is_'||LOWER(sn.fac_srtnotificatie_code)
+ AND rr.res_rsv_ruimte_key = t.fac_tracking_refkey
+ AND pf.prs_perslid_key = t.prs_perslid_key
+ AND sf.res_status_fo_key = rr.res_status_fo_key
+ AND TRUNC(fac_tracking_datum) >= TRUNC(SYSDATE-61)
+ UNION ALL
+ -- Mutaties/verwijdering hotelkamers + inhuur voorzieningen
+ SELECT ROUND(fac.safe_to_number(SYSDATE-t.fac_tracking_datum),5) || rr.res_reservering_key||'/'||res_rsv_ruimte_volgnr hide_f_srt,
+ TO_CHAR(t.fac_tracking_datum, 'DD-MM-YYYY') fclt_d_datum,
+ DECODE( fac.safe_to_number(TRUNC(SYSDATE)-TRUNC(t.fac_tracking_datum) ),
+ 0, TO_CHAR(t.fac_tracking_datum, 'HH24:MI'),
+ TO_CHAR(t.fac_tracking_datum, 'DD-MM-YYYY HH24:MI') )
+ tijd,
+ pf.prs_perslid_naam_full door,
+ DECODE (sn.fac_srtnotificatie_code,
+ 'RESUPD', 'Wijziging/Nieuw',
+ 'RESNEW', 'Nieuw',
+ 'RESDEL', 'Verwijderd')
+ actie,
+ ''
+ || rr.res_reservering_key||'/'||res_rsv_ruimte_volgnr || ''
+ html_reservering,
+ sf.res_status_fo_omschrijving fclt_f_status,
+ rr.res_rsv_ruimte_omschrijving,
+ COALESCE(t.fac_tracking_oms, lx.oms),
+ ra.ins_discipline_omschrijving || ' / ' || ra.res_artikel_omschrijving
+ FROM fac_tracking t,
+ fac_srtnotificatie sn,
+ res_rsv_ruimte rr,
+ prs_v_perslid_fullnames pf,
+ res_status_fo sf,
+ (SELECT fac_locale_xsl_label, COALESCE (fac_locale_xsl_cust, fac_locale_xsl_tekst) oms
+ FROM fac_locale_xsl
+ WHERE fac_locale_xsl_label LIKE 'lcl_res_is_%'
+ AND fac_locale_xsl_lang = lcl.getuserlanguage() ) lx,
+ (SELECT ins_discipline_omschrijving, res_artikel_omschrijving
+ FROM res_artikel a,
+ res_discipline d
+ WHERE a.res_discipline_key IN (462, 581)
+ AND d.ins_discipline_key = a.res_discipline_key ) ra
+ WHERE sn.fac_srtnotificatie_code LIKE 'RES%'
+ AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
+ AND lx.fac_locale_xsl_label(+) = 'lcl_res_is_'||LOWER(sn.fac_srtnotificatie_code)
+ AND rr.res_rsv_ruimte_key = t.fac_tracking_refkey
+ AND pf.prs_perslid_key = t.prs_perslid_key
+ AND sf.res_status_fo_key = rr.res_status_fo_key
+ AND TRUNC(fac_tracking_datum) >= TRUNC(SYSDATE-61)
+ AND fac_tracking_oms LIKE '%Arti___ %'||ra.res_artikel_omschrijving||'%';
+
+-- Lijst externe reserveringen, met link om offerte uit te draaien
+-- srtactiviteit 10 = Extern
+CREATE OR REPLACE VIEW nybu_v_rap_res_offertes
+AS
+ SELECT rr.res_reservering_key hide_f_srt,
+ TO_CHAR(rr.res_reservering_key) fclt_f_reservering,
+ TO_CHAR(rr.res_rsv_ruimte_van, 'YYYY-MM-DD') datum,
+ rr.res_rsv_ruimte_omschrijving omschrijving,
+ k.prs_kostenplaats_nr fclt_f_budgetnr,
+ 'Print offerte'
+ html_offerte
+ FROM res_rsv_ruimte rr,
+ prs_kostenplaats k,
+ ( SELECT res_reservering_key, MIN(res_rsv_ruimte_volgnr) volgnr
+ FROM res_rsv_ruimte
+ WHERE res_activiteit_key IN (
+ SELECT res_activiteit_key FROM res_activiteit
+ WHERE res_srtactiviteit_key = 10)
+ AND res_rsv_ruimte_van >= SYSDATE
+ AND res_status_bo_key IN (2)
+ AND res_status_fo_key IN (1,2,3)
+ AND res_rsv_ruimte_verwijder IS NULL
+ GROUP BY res_reservering_key) eerste
+ WHERE rr.res_reservering_key = eerste.res_reservering_key
+ AND rr.res_rsv_ruimte_volgnr = eerste.volgnr
+ AND k.prs_kostenplaats_key = rr.prs_kostenplaats_key;
+
+-- Alle gegevens van een externe reservering die nodig zijn om een offerte-bon te kunnen maken.
+-- kenmerk 201 = Bedrijf klant
+-- kenmerk 141 = Contactpersoon bedrijf klant
+-- kenmerk 55 = Alternative description
+-- kenmerk 281 = referentie/kenmerk klant (bedrijf)
+CREATE OR REPLACE VIEW nybu_v_rap_res_offerte
+AS
+ SELECT * FROM (
+ SELECT * FROM (
+ -- reservering
+ SELECT rr.res_reservering_key fclt_key,
+ TO_CHAR(rr.res_reservering_key) fclt_f_reservering,
+ COALESCE(altdesc.res_kenmerkreservering_waarde,
+ rr.res_rsv_ruimte_omschrijving) omschrijving,
+ TO_CHAR(rr.res_rsv_ruimte_van, 'DD') dag,
+ TO_CHAR(rr.res_rsv_ruimte_van, 'MM') maand,
+ TO_CHAR(rr.res_rsv_ruimte_van, 'YYYY') jaar,
+ rr.res_rsv_ruimte_bezoekers totaal_aantal,
+ rr.res_rsv_ruimte_opmerking opmerking,
+ cp.prs_contactpersoon_naam_full bedrijf_contactpersoon,
+ b.prs_bedrijf_naam bedrijf_naam,
+ b.prs_bedrijf_post_adres bedrijf_adres,
+ b.prs_bedrijf_post_postcode bedrijf_pc,
+ b.prs_bedrijf_post_plaats bedrijf_plaats,
+ b.prs_bedrijf_post_land bedrijf_land,
+ km.res_kenmerkreservering_waarde bedrijf_kenmerk,
+ p.prs_perslid_voornaam user_voornaam,
+ p.prs_perslid_tussenvoegsel user_tv,
+ p.prs_perslid_naam user_naam
+ FROM res_rsv_ruimte rr,
+ prs_bedrijf b,
+ nybu_v_contactpersoon cp,
+ (SELECT * FROM res_kenmerkwaarde
+ WHERE res_kenmerkwaarde_verwijder IS NULL
+ AND res_kenmerk_key = 201) bedr,
+ (SELECT * FROM res_kenmerkwaarde
+ WHERE res_kenmerkwaarde_verwijder IS NULL
+ AND res_kenmerk_key = 141) cont,
+ (SELECT * FROM res_kenmerkwaarde
+ WHERE res_kenmerkwaarde_verwijder IS NULL
+ AND res_kenmerk_key = 55) altdesc,
+ (SELECT * FROM res_kenmerkwaarde
+ WHERE res_kenmerkwaarde_verwijder IS NULL
+ AND res_kenmerk_key = 281) km,
+ prs_perslid p
+ WHERE rr.res_rsv_ruimte_verwijder IS NULL
+ AND bedr.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
+ AND b.prs_bedrijf_key = fac.safe_to_number(bedr.res_kenmerkreservering_waarde)
+ AND cont.res_rsv_ruimte_key(+) = rr.res_rsv_ruimte_key
+ AND cp.prs_contactpersoon_key(+) = fac.safe_to_number(cont.res_kenmerkreservering_waarde)
+ AND altdesc.res_rsv_ruimte_key(+) = rr.res_rsv_ruimte_key
+ AND km.res_rsv_ruimte_key(+) = rr.res_rsv_ruimte_key
+ AND rr.res_rsv_ruimte_key = (SELECT MIN(res_rsv_ruimte_key) FROM res_rsv_ruimte WHERE res_reservering_key = rr.res_reservering_key)
+ AND p.prs_perslid_key = rr.res_rsv_ruimte_contact_key
+ ) r1
+ LEFT OUTER JOIN (
+ -- ruimtes
+ SELECT 'ruimte' soort,
+ reservering,
+ ruimte,
+ max_bez,
+ aantal,
+ datum,
+ van,
+ tot,
+ disc,
+ opstel,
+ ROUND(DECODE(btw_incl,
+ 0, prijs,
+ 1, prijs / (1+(btw_perc/100) )
+ )
+ , 2) prijs_ex,
+ ROUND(DECODE(btw_incl,
+ 0, prijs * (1+(btw_perc/100) ),
+ 1, prijs
+ )
+ , 2) prijs_in
+ FROM (
+ SELECT rr.res_reservering_key reservering,
+ rog.res_ruimte_nr ruimte,
+ rog.res_ruimte_opstel_bezoekers max_bez,
+ rr.res_rsv_ruimte_bezoekers aantal,
+ TO_CHAR(rr.res_rsv_ruimte_van, 'DD-MM-YYYY') datum,
+ TO_CHAR(rr.res_rsv_ruimte_van, 'HH24:MI') van,
+ TO_CHAR(rr.res_rsv_ruimte_tot, 'HH24:MI') tot,
+ d.ins_discipline_key disc,
+ rog.res_opstelling_omschrijving opstel,
+ res.getruimteprijs(rr.res_rsv_ruimte_key) prijs,
+ 21 btw_perc,
+ COALESCE(ks.prs_kostensoort_btw, 1) btw_incl
+ FROM res_rsv_ruimte rr,
+ res_v_ruimte_opstel_gegevens rog,
+ res_ruimte r,
+ res_discipline d,
+ prs_kostensoort ks
+ WHERE rr.res_rsv_ruimte_verwijder IS NULL
+ AND rog.res_ruimte_opstel_key = rr.res_ruimte_opstel_key
+ AND r.res_ruimte_key = rog.res_ruimte_key
+ AND d.ins_discipline_key = r.res_discipline_key
+ AND ks.prs_kostensoort_key(+) = d.prs_kostensoort_key
+ )
+ UNION ALL
+ -- objecten
+ SELECT 'deel' soort,
+ reservering,
+ deel,
+ NULL bez_max,
+ aantal,
+ datum,
+ van,
+ tot,
+ disc,
+ NULL opstel,
+ ROUND(DECODE(btw_incl,
+ 0, prijs,
+ 1, prijs / (1+(btw_perc/100) )
+ )
+ , 2) prijs_ex,
+ ROUND(DECODE(btw_incl,
+ 0, prijs * (1+(btw_perc/100) ),
+ 1, prijs
+ )
+ , 2) prijs_in
+ FROM (
+ SELECT rr.res_reservering_key reservering,
+ d.res_deel_omschrijving deel,
+ rd.res_rsv_deel_aantal aantal,
+ TO_CHAR(rr.res_rsv_ruimte_van, 'DD-MM-YYYY') datum,
+ TO_CHAR(rd.res_rsv_deel_van, 'HH24:MI') van,
+ TO_CHAR(rd.res_rsv_deel_tot, 'HH24:MI') tot,
+ d.ins_discipline_key disc,
+ res.getdeelprijs(rd.res_rsv_deel_key) prijs,
+ 21 btw_perc,
+ COALESCE(ks.prs_kostensoort_btw, 1) btw_incl
+ FROM res_rsv_ruimte rr,
+ res_rsv_deel rd,
+ res_deel d,
+ res_discipline d,
+ prs_kostensoort ks
+ WHERE rr.res_rsv_ruimte_verwijder IS NULL
+ AND rd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
+ AND rd.res_rsv_deel_verwijder IS NULL
+ AND d.res_deel_key = rd.res_deel_key
+ AND d.ins_discipline_key = d.res_discipline_key
+ AND ks.prs_kostensoort_key(+) = d.prs_kostensoort_key
+ )
+ UNION ALL
+ -- artikelen
+ SELECT 'artikel' soort,
+ reservering,
+ artikel,
+ volgnr bez_max,
+ aantal,
+ datum,
+ van,
+ NULL tot,
+ disc,
+ NULL opstel,
+ ROUND(DECODE(btw_incl,
+ 0, prijs,
+ 1, prijs / (1+(btw_perc/100) )
+ )
+ , 2) prijs_ex,
+ ROUND(DECODE(btw_incl,
+ 0, prijs * (1+(btw_perc/100) ),
+ 1, prijs
+ )
+ , 2) prijs_in
+ FROM (
+ SELECT rr.res_reservering_key reservering,
+ a.res_artikel_omschrijving artikel,
+ ra.res_rsv_artikel_aantal aantal,
+ TO_CHAR(ra.res_rsv_artikel_levering, 'DD-MM-YYYY') datum,
+ TO_CHAR(ra.res_rsv_artikel_levering, 'HH24:MI') van,
+ d.ins_discipline_key disc,
+ a.res_artikel_volgnummer volgnr,
+ res.getartikelprijs(ra.res_rsv_artikel_key) prijs,
+ COALESCE(a.res_artikel_btw, 0) btw_perc,
+ COALESCE(ks.prs_kostensoort_btw, 1) btw_incl
+ FROM res_rsv_ruimte rr,
+ res_rsv_artikel ra,
+ res_artikel a,
+ res_discipline d,
+ prs_kostensoort ks
+ WHERE rr.res_rsv_ruimte_verwijder IS NULL
+ AND ra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
+ AND ra.res_rsv_artikel_verwijder IS NULL
+ AND a.res_artikel_key = ra.res_artikel_key
+ AND d.ins_discipline_key = a.res_discipline_key
+ AND ks.prs_kostensoort_key(+) = d.prs_kostensoort_key
+ )
+ ) r2
+ ON r1.fclt_key = r2.reservering
+ );
+
------- Overig Reserveringen ---------------------------------------------------
-- Voor kenmerkdomein contactpersoon (RES)
@@ -4357,7 +5221,7 @@ AS
BEGIN adm.systrackscript('$Workfile: nybu.sql $', '$Revision$', 0); END;
/
-BEGIN fac.registercustversion ('nybu', 3); END;
+BEGIN fac.registercustversion ('nybu', 4); END;
/
COMMIT;
diff --git a/PNBR/Once/PNBR#28215.sql b/PNBR/Once/PNBR#28215.sql
new file mode 100644
index 000000000..6275f84fa
--- /dev/null
+++ b/PNBR/Once/PNBR#28215.sql
@@ -0,0 +1,40 @@
+-- Customer specific once-script
+-- POST 532 settings
+-- Support: +31 53 4800700
+
+SET ECHO ON
+SPOOL xPNBR#28215.lst
+SET DEFINE OFF
+
+-- Geen SLA bij meldingen
+UPDATE mld_stdmelding
+ SET mld_stdmelding_slabewaken = 0;
+
+-- Like mogelijkheid uit
+-- key 4 = Facilitor
+UPDATE fac_setting
+ SET fac_setting_pvalue = 0,
+ fac_setting_datum = SYSDATE,
+ prs_perslid_key = 4
+ WHERE fac_setting_name = 'facilities_flike_past';
+
+-- Menu item mijn meldingen tovoegen aan Service menu (key=1)
+-- Voor personen met WE_MLDBOF rechten (key=24)
+INSERT INTO fac_menu (
+ fac_menu_altlabel,
+ fac_menu_altgroep,
+ fac_menu_volgnr,
+ fac_menu_alturl,
+ fac_functie_key
+ )
+ VALUES (
+ 'In behandeling door mij...',
+ 1,
+ 4025,
+ 'appl/mld/mld_search.asp?urole=bo&behandel_key=SELF&autosearch=1',
+ 24
+ );
+
+COMMIT;
+
+SPOOL OFF
\ No newline at end of file
diff --git a/PNBR/pnbr.sql b/PNBR/pnbr.sql
index ce38fef91..7fc396e6b 100644
--- a/PNBR/pnbr.sql
+++ b/PNBR/pnbr.sql
@@ -1459,6 +1459,19 @@ AS
alg_ruimte_nr)
FROM alg_v_aanwezigruimte r, alg_verdieping v
WHERE r.alg_verdieping_key = v.alg_verdieping_key;
+-- tijdelijk vervangen door:
+CREATE OR REPLACE VIEW pnbr_v_sync_alg_ruimte
+(
+ alg_ruimte_key,
+ alg_verdieping_key,
+ cadlabel
+)
+AS
+ SELECT r.alg_ruimte_key,
+ r.alg_verdieping_key,
+ DECODE (fac.safe_to_number(alg_ruimte_nr), null, alg_ruimte_nr, to_char(to_number(alg_ruimte_nr)))
+ FROM alg_v_aanwezigruimte r, alg_verdieping v
+ WHERE r.alg_verdieping_key = v.alg_verdieping_key;
CREATE OR REPLACE VIEW pnbr_v_rap_dagstaat
@@ -1859,7 +1872,9 @@ AS
'Herinnering - ' || REPLACE (text, ' ', ' '),
key,
xkey
- FROM fac_v_noti_resreminder;
+ FROM fac_v_noti_resreminder n, prs_perslid p
+ WHERE n.receiver = p.prs_perslid_key
+ AND prs_perslid_naam NOT LIKE 'INACTIEF:%';
-- notificatie naar klant die niet binnen 7 dagen op een vraag heeft geantwoord.
CREATE OR REPLACE VIEW pnbr_v_noti_mld_fenote_rem
@@ -2013,6 +2028,224 @@ AS
WHERE ins_srtdeel_key = 41 AND ins_deel_verwijder IS NULL
order by 3, 1;
+-- PNBR#28111 Rapportage met kunstobjecten (srtdeel_key=41) inclusief foto
+-- Overige keys zijn kenmerken voor deze objecten die dezelfde naam hebben als het veld.
+CREATE OR REPLACE VIEW PNBR_V_RAP_KUNST
+(
+ FCLT_F_Object,
+ FCLT_F_Kunstenaar,
+ FCLT_F_Titel,
+ Materiaal,
+ Gesigneerd,
+ Hoogte,
+ Breedte,
+ HTML_Foto,
+ Verkrijgingsinformatie,
+ Taxatiewaarde
+)
+AS
+ SELECT ins_deel_omschrijving id,
+ (SELECT ins_kenmerkdeel_waarde
+ FROM ins_kenmerkdeel ikd
+ WHERE ins_kenmerk_key = 102
+ AND d.ins_deel_key = ikd.ins_deel_key)
+ Naam_kunstenaar,
+ (SELECT ins_kenmerkdeel_waarde
+ FROM ins_kenmerkdeel ikd
+ WHERE ins_kenmerk_key = 104
+ AND d.ins_deel_key = ikd.ins_deel_key)
+ Titel,
+ (SELECT ins_kenmerkdeel_waarde
+ FROM ins_kenmerkdeel ikd
+ WHERE ins_kenmerk_key = 110
+ AND d.ins_deel_key = ikd.ins_deel_key)
+ Materiaal,
+ (SELECT fac_usrdata_omschr
+ FROM ins_kenmerkdeel ikd,
+ ins_kenmerk ik,
+ ins_srtkenmerk isk,
+ fac_kenmerkdomein kd,
+ fac_usrdata ud
+ WHERE ikd.ins_kenmerk_key = 112
+ AND ik.ins_kenmerk_key = ikd.ins_kenmerk_key
+ AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
+ AND kd.fac_kenmerkdomein_key = isk.fac_kenmerkdomein_key
+ AND ud.fac_usrtab_key = kd.fac_usrtab_key
+ AND ikd.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
+ AND d.ins_deel_key = ikd.ins_deel_key)
+ Gesigneerd,
+ (SELECT ins_kenmerkdeel_waarde
+ FROM ins_kenmerkdeel ikd
+ WHERE ins_kenmerk_key = 119
+ AND d.ins_deel_key = ikd.ins_deel_key)
+ Hoogte,
+ (SELECT ins_kenmerkdeel_waarde
+ FROM ins_kenmerkdeel ikd
+ WHERE ins_kenmerk_key = 120
+ AND d.ins_deel_key = ikd.ins_deel_key)
+ Breedte,
+ decode((SELECT ins_kenmerkdeel_waarde
+ FROM ins_kenmerkdeel ikd
+ WHERE ins_kenmerk_key = 109
+ AND d.ins_deel_key = ikd.ins_deel_key), null, 'Geen foto',
+ '
')
+ Foto,
+ (SELECT ins_kenmerkdeel_waarde
+ FROM ins_kenmerkdeel ikd
+ WHERE ins_kenmerk_key = 125
+ AND d.ins_deel_key = ikd.ins_deel_key)
+ Verkrijgingsinformatie,
+ (SELECT ins_kenmerkdeel_waarde
+ FROM ins_kenmerkdeel ikd
+ WHERE ins_kenmerk_key = 132
+ AND d.ins_deel_key = ikd.ins_deel_key)
+ Taxatiewaarde
+ FROM ins_deel d
+ WHERE ins_srtdeel_key = 41 AND ins_deel_verwijder IS NULL
+order by 3, 1;
+
+
+CREATE OR REPLACE VIEW pnbr_v_rap_melding_top25
+(
+ ins_discipline_omschrijving,
+ mld_stdmelding_omschrijving,
+ aantal
+)
+AS
+ SELECT ins_discipline_omschrijving,
+ mld_stdmelding_omschrijving,
+ COUNT (mld_melding_key)
+ FROM mld_melding m, mld_stdmelding std, ins_tab_discipline d
+ WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
+ AND std.mld_ins_discipline_key = d.ins_discipline_key
+ AND m.mld_melding_datum BETWEEN TO_DATE (
+ TO_CHAR (ADD_MONTHS (SYSDATE, -1),
+ 'yyyymm')
+ || '01',
+ 'yyyymmdd')
+ AND TO_DATE (
+ TO_CHAR (SYSDATE, 'yyyymm') || '01',
+ 'yyyymmdd')
+ GROUP BY mld_stdmelding_omschrijving, d.ins_discipline_omschrijving;
+
+CREATE OR REPLACE VIEW pnbr_v_rap_melding_oro
+(
+ mld_melding_key,
+ mld_discipline_stdmelding,
+ mld_melding_datum,
+ prs_perslid_naam,
+ mld_melding_omschrijving
+)
+AS
+ SELECT mld_melding_key,
+ d.ins_discipline_omschrijving
+ || '-'
+ || std.mld_stdmelding_omschrijving,
+ mld_melding_datum,
+ pf.prs_perslid_naam_full,
+ mld_melding_omschrijving
+ FROM mld_melding m,
+ prs_perslid p,
+ prs_v_perslid_fullnames pf,
+ mld_stdmelding std,
+ ins_tab_discipline d
+ WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
+ AND std.mld_ins_discipline_key = d.ins_discipline_key
+ AND m.prs_perslid_key = p.prs_perslid_key
+ AND p.prs_perslid_key = pf.prs_perslid_key
+ AND p.prs_afdeling_key = 381
+ AND m.mld_melding_datum BETWEEN TO_DATE (
+ TO_CHAR (ADD_MONTHS (SYSDATE, -1),
+ 'yyyymm')
+ || '01',
+ 'yyyymmdd')
+ AND TO_DATE (
+ TO_CHAR (SYSDATE, 'yyyymm') || '01',
+ 'yyyymmdd');
+
+CREATE OR REPLACE VIEW pnbr_v_rap_mnd_bestelling
+(
+ catalogus,
+ groep,
+ aantal,
+ prijs
+)
+AS
+ SELECT d.ins_discipline_omschrijving,
+ sg.bes_srtgroep_omschrijving,
+ COUNT (DISTINCT b.bes_bestelling_key),
+ SUM (bes_bestelopdr_item_aantal * bes_bestelopdr_item_brutoprijs)
+ prijs
+ FROM bes_bestelling b,
+ bes_bestelling_item bi,
+ bes_bestelopdr_item boi,
+ bes_srtdeel bd,
+ bes_srtgroep sg,
+ bes_discipline d
+ WHERE b.bes_bestelling_key = bi.bes_bestelling_key
+ AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
+ AND bi.bes_srtdeel_key = bd.bes_srtdeel_key
+ AND bd.bes_srtgroep_key = sg.bes_srtgroep_key
+ AND sg.ins_discipline_key = d.ins_discipline_key
+ AND d.ins_discipline_omschrijving NOT LIKE '%-ink'
+ AND b.bes_bestelling_datum BETWEEN TO_DATE (
+ TO_CHAR (
+ ADD_MONTHS (SYSDATE, -1),
+ 'yyyymm')
+ || '01',
+ 'yyyymmdd')
+ AND TO_DATE (
+ TO_CHAR (SYSDATE, 'yyyymm')
+ || '01',
+ 'yyyymmdd')
+ GROUP BY d.ins_discipline_omschrijving, sg.bes_srtgroep_omschrijving;
+
+CREATE OR REPLACE VIEW pnbr_v_rap_mnd_kosten_afd
+(
+ afdeling,
+ prijs
+)
+AS
+ SELECT prs_afdeling_naam,
+ SUM (bes_bestelopdr_item_aantal * bes_bestelopdr_item_brutoprijs)
+ prijs
+ FROM bes_bestelling b,
+ bes_bestelling_item bi,
+ bes_bestelopdr_item boi,
+ bes_srtdeel bd,
+ bes_srtgroep sg,
+ bes_discipline d,
+ prs_afdeling a,
+ prs_perslid p
+ WHERE b.bes_bestelling_key = bi.bes_bestelling_key
+ AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
+ AND bi.bes_srtdeel_key = bd.bes_srtdeel_key
+ AND bd.bes_srtgroep_key = sg.bes_srtgroep_key
+ AND sg.ins_discipline_key = d.ins_discipline_key
+ AND d.ins_discipline_omschrijving NOT LIKE '%-ink'
+ AND b.prs_perslid_key = p.prs_perslid_key
+ AND p.prs_afdeling_key = a.prs_afdeling_key
+ AND b.bes_bestelling_datum BETWEEN TO_DATE (
+ TO_CHAR (
+ ADD_MONTHS (SYSDATE, -1),
+ 'yyyymm')
+ || '01',
+ 'yyyymmdd')
+ AND TO_DATE (
+ TO_CHAR (SYSDATE, 'yyyymm')
+ || '01',
+ 'yyyymmdd')
+ GROUP BY a.prs_afdeling_naam;
+
BEGIN adm.systrackscript('$Workfile: pnbr.sql $', '$Revision$', 0); END;
/
diff --git a/PZHO/Once/PZHO44.sql b/PZHO/Once/PZHO44.sql
index a6f1488ab..3ebf055f4 100644
--- a/PZHO/Once/PZHO44.sql
+++ b/PZHO/Once/PZHO44.sql
@@ -9,11 +9,77 @@ SET ECHO ON
SPOOL xpzho44.lst
SET DEFINE OFF
--- Opschonen (zoals geconstateerd door JGL)!
+-- PZHO#27516 Opschonen (zoals geconstateerd door JGL)!
DROP VIEW PZHO_V_EXPORT_RUIMTE_GEG;
DROP VIEW PZHO_V_EXPORT_TELEFOON;
COMMIT;
+
+-- PZHO#27709 Invise-import tbv. Traka-koppeling!
+CREATE TABLE pzho_imp_invise (badgenr VARCHAR2 (20), serialnr VARCHAR2 (6));
+
+INSERT INTO fac_import_app (fac_import_app_code,
+ fac_import_app_oms,
+ fac_functie_key,
+ fac_import_app_folder,
+ fac_import_app_files,
+ fac_import_app_prefix)
+ SELECT 'INVISE',
+ 'PZH: Aanmaken/bijwerken badgenummers',
+ fac_functie_key,
+ 'D:\APPS\Webapplicaties\Facilitor\Facilitor_produktie\cust\PZHO\import',
+ 'invise*.csv',
+ 'PZHO'
+ FROM fac_functie
+ WHERE fac_functie_code = 'WEB_PRSSYS';
+
+COMMIT;
+
+-- PZHO#27709 Webservice-user tbv. Traka-koppeling; dezelfde module, afdeling
+-- en functie als _FACILITOR (= 14424)!
+INSERT INTO prs_perslid (prs_perslid_module,
+ prs_srtperslid_key,
+ prs_afdeling_key,
+ prs_perslid_naam,
+ prs_perslid_oslogin,
+ prs_perslid_flags,
+ prs_perslid_apikey)
+ SELECT p.prs_perslid_module,
+ p.prs_srtperslid_key,
+ p.prs_afdeling_key,
+ 'Pseudo-user tbv. TRAKA-API',
+ '_TRAKA',
+ 0,
+ 'OFFlefZFRKpIRVnHmYOOEwgDdOGJoAVL'
+ FROM prs_perslid p
+ WHERE p.prs_perslid_key = 14424;
+
+COMMIT;
+
+-- 51=vrije key en 1=Reserveerbaar object(-ins_discipline_min_level)
+INSERT INTO ins_tab_discipline (ins_discipline_key,
+ ins_discipline_module,
+ ins_discipline_omschrijving,
+ ins_discipline_min_level)
+ VALUES (51,
+ 'RES',
+ 'Leenfietsen',
+ 1);
+INSERT INTO res_disc_params (res_ins_discipline_key)
+ VALUES (51);
+-- 11=vrije key en 2=Voorzieningen(-res_srtactiviteit_key)
+INSERT INTO res_activiteit (
+ res_activiteit_key,
+ res_activiteit_omschrijving,
+ res_srtactiviteit_key
+ )
+ VALUES (11, 'Leenfiets', 2);
+-- Activiteit x categorie = 51x11
+INSERT INTO res_activiteitdiscipline (res_discipline_key, res_activiteit_key)
+ VALUES (51, 11);
+
+COMMIT;
+
BEGIN adm.systrackscript('$Workfile: pzho44.sql $', '$Revision$', 1); END;
/
SPOOL OFF
diff --git a/PZHO/pzho.sql b/PZHO/pzho.sql
index fe8942ef5..2845aa103 100644
--- a/PZHO/pzho.sql
+++ b/PZHO/pzho.sql
@@ -6051,6 +6051,348 @@ SELECT extern.dkey,
AND extern.bes_srtdeel_nr = intern.bes_srtdeel_nr;
+/* Formatted on 1-11-2013 16:24:42 (QP5 v5.115.810.9015) */
+CREATE OR REPLACE PROCEDURE pzho_import_invise (p_import_key IN NUMBER)
+IS
+ c_delim VARCHAR2 (1) := ';';
+ v_newline VARCHAR2 (1000); -- Input line
+ v_errormsg VARCHAR2 (1000);
+ oracle_err_num NUMBER;
+ oracle_err_mes VARCHAR2 (200);
+ v_aanduiding VARCHAR2 (1000) := '';
+ header_is_valid NUMBER := 0;
+ v_count_tot NUMBER (10) := 0;
+ v_count_import NUMBER (10) := 0;
+ v_ongeldig NUMBER (1) := 0;
+ -- De importvelden:
+ v_dummy VARCHAR2 (255);
+ v_badgenr VARCHAR2 (255); -- C10
+ v_serialnr VARCHAR2 (255); -- C10
+ v_name VARCHAR2 (255); -- C?
+ v_firstname VARCHAR2 (255); -- C?
+
+ CURSOR c1
+ IS
+ SELECT *
+ FROM fac_imp_file
+ WHERE fac_import_key = p_import_key
+ ORDER BY fac_imp_file_index;
+BEGIN
+ DELETE FROM pzho_imp_invise;
+
+ COMMIT;
+
+ FOR rec1 IN c1
+ LOOP
+ v_newline := rec1.fac_imp_file_line;
+ v_errormsg := 'Fout bij opvragen importregel';
+ v_aanduiding := '';
+ v_ongeldig := 0;
+ -- Lees een aantal veldwaarden
+ --badgenr;begintst;endtst;badgeprofilenr;servicenr;subsystemid;antipassback;antireturn;securityid;language;pincode;serialnr;contactid;name;firstname;address;postcode;city;phonenr;gender;birthdate;optionalfields01;optionalfields02;optionalfields03;optionalfields04;optionalfields05;optionalfields06;optionalfields07;optionalfields08;optionalfields09;optionalfields10;optionalfields11;optionalfields12;optionalfields13;optionalfields14;optionalfields15;optionalfields16;optionalfields17;optionalfields18;optionalfields19;optionalfields20;optionalfields21;optionalfields22;optionalfields23;optionalfields24;optionalfields25;optionalfields26;optionalfields27;optionalfields28;optionalfields29;optionalfields30;optionalfields31;optionalfields32;optionalfields33;optionalfields34;optionalfields35;optionalfields36;optionalfields37;optionalfields38;optionalfields39;optionalfields40;comment;createtst;createuserid;modtst;moduserid
+ fac.imp_getfield (v_newline, c_delim, v_badgenr); --badgenr (toegangspasnummer)
+ fac.imp_getfield (v_newline, c_delim, v_dummy); -- begintst
+ fac.imp_getfield (v_newline, c_delim, v_dummy); -- endtst
+ fac.imp_getfield (v_newline, c_delim, v_dummy); -- badgeprofilenr
+ fac.imp_getfield (v_newline, c_delim, v_dummy); -- servicenr
+ fac.imp_getfield (v_newline, c_delim, v_dummy); -- subsystemid
+ fac.imp_getfield (v_newline, c_delim, v_dummy); -- antipassback
+ fac.imp_getfield (v_newline, c_delim, v_dummy); -- antireturn
+ fac.imp_getfield (v_newline, c_delim, v_dummy); -- securityid
+ fac.imp_getfield (v_newline, c_delim, v_dummy); -- language
+ fac.imp_getfield (v_newline, c_delim, v_dummy); -- pincode
+ fac.imp_getfield (v_newline, c_delim, v_serialnr); --serialnr (personeelsnummer)
+ fac.imp_getfield (v_newline, c_delim, v_dummy); -- contactid
+ fac.imp_getfield (v_newline, c_delim, v_name); -- name
+ fac.imp_getfield (v_newline, c_delim, v_firstname); -- firstname
+
+ v_aanduiding :=
+ '['
+ || v_badgenr
+ || '|'
+ || v_serialnr
+ || '|'
+ || v_name
+ || '|'
+ || v_firstname
+ || '] ';
+
+ -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
+ -- de juiste kolomkop. Ik controleer daarbij alleen de 2 relevante kolommen!
+ -- Ik negeer alles totdat ik een geldige header ben gepasseerd.
+ IF (header_is_valid = 0)
+ THEN
+ IF UPPER (v_badgenr) = 'BADGENR' AND UPPER (v_serialnr) = 'SERIALNR'
+ THEN
+ header_is_valid := 1;
+ END IF;
+ ELSE
+ v_count_tot := v_count_tot + 1;
+ -- Controleer alle veldwaarden
+ v_errormsg := 'Badgenr ongeldig; ongedefinieerd of te lang';
+ v_badgenr := TRIM (v_badgenr);
+
+ IF v_badgenr IS NULL OR LENGTH (v_badgenr) > 15
+ THEN
+ v_ongeldig := 1;
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ 'Regel wordt overgeslagen!');
+ END IF;
+
+ --
+ v_errormsg := 'Personeelsnr ongeldig; ongedefinieerd of te lang';
+ v_serialnr := TRIM (v_serialnr);
+
+ IF v_serialnr IS NULL OR LENGTH (v_serialnr) > 6
+ THEN
+ v_ongeldig := 1;
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ 'Regel wordt overgeslagen!');
+ END IF;
+
+ -- Insert geformatteerde import record
+ IF v_ongeldig = 0
+ THEN
+ BEGIN
+ v_errormsg := 'Fout bij wegschrijven importregel';
+
+ INSERT INTO pzho_imp_invise (badgenr, serialnr)
+ VALUES (v_badgenr, v_serialnr);
+
+ COMMIT;
+ v_count_import := v_count_import + 1;
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ v_errormsg
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ '');
+
+ COMMIT;
+ END;
+ END IF;
+ END IF;
+ END LOOP;
+
+ IF (header_is_valid = 0)
+ THEN
+ fac.imp_writelog (p_import_key,
+ 'E',
+ 'Ongeldig importbestand',
+ 'Geen header of header niet volgens specificatie!');
+ ELSE
+ fac.imp_writelog (
+ p_import_key,
+ 'S',
+ 'Passen/#ingelezen importregels: ' || TO_CHAR (v_count_tot),
+ ''
+ );
+ fac.imp_writelog (
+ p_import_key,
+ 'S',
+ 'Passen/#ongeldige niet ingelezen importregels: '
+ || TO_CHAR (v_count_tot - v_count_import),
+ ''
+ );
+ END IF;
+
+ COMMIT;
+EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ v_errormsg
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.imp_writelog (p_import_key,
+ 'E',
+ v_aanduiding || v_errormsg,
+ 'Inleesproces passen afgebroken!');
+END pzho_import_invise;
+/
+
+/* Formatted on 12-11-2013 11:16:32 (QP5 v5.115.810.9015) */
+CREATE OR REPLACE PROCEDURE pzho_update_invise (p_import_key IN NUMBER)
+AS
+ c_badgenr_kkey NUMBER := 13;
+ v_errormsg VARCHAR2 (1000);
+ oracle_err_num NUMBER;
+ oracle_err_mes VARCHAR2 (200);
+ v_aanduiding VARCHAR2 (1000) := '';
+ v_count_tot NUMBER (10) := 0;
+ v_count_new NUMBER (10) := 0;
+ v_count_upd NUMBER (10) := 0;
+
+ CURSOR c1
+ IS
+ SELECT p.prs_perslid_key,
+ kl.prs_kenmerklink_key,
+ COUNT ( * ) pas_cnt, -- #pas bij gelijk persnr!
+ MAX (i.badgenr) badgenr,
+ MAX (i.serialnr) serialnr
+ FROM pzho_imp_invise i,
+ ( SELECT SUBSTR (prs_perslid_nr,
+ 1,
+ INSTR (prs_perslid_nr, '/') - 1)
+ prs_perslid_nr,
+ COUNT ( * ) prs_cnt, -- #prs met gelijk persnr!
+ MAX (prs_perslid_key) prs_perslid_key
+ FROM prs_v_aanwezigperslid
+ WHERE prs_perslid_oslogin IS NOT NULL -- Met loginnaam!
+ GROUP BY SUBSTR (prs_perslid_nr,
+ 1,
+ INSTR (prs_perslid_nr, '/') - 1)) p,
+ (SELECT *
+ FROM prs_v_aanwezigkenmerklink
+ WHERE prs_kenmerk_key = c_badgenr_kkey) kl
+ WHERE i.serialnr = p.prs_perslid_nr
+ AND p.prs_perslid_key = kl.prs_link_key(+)
+ GROUP BY p.prs_perslid_key, kl.prs_kenmerklink_key;
+BEGIN
+ SELECT COUNT ( * ) INTO v_count_tot FROM pzho_imp_invise;
+
+ FOR rec IN c1
+ LOOP
+ v_aanduiding := '[' || rec.badgenr || '|' || rec.serialnr || '] ';
+
+ IF (rec.prs_kenmerklink_key IS NULL)
+ THEN
+ v_errormsg := 'Fout bij toevoegen pasnummer';
+
+ INSERT INTO prs_kenmerklink (prs_link_key,
+ prs_kenmerklink_niveau,
+ prs_kenmerk_key,
+ prs_kenmerklink_waarde)
+ VALUES (rec.prs_perslid_key,
+ 'P',
+ c_badgenr_kkey,
+ rec.badgenr);
+
+ v_count_new := v_count_new + 1;
+ ELSE
+ v_errormsg := 'Fout bij bijwerken pasnummer';
+
+ UPDATE prs_kenmerklink
+ SET prs_kenmerklink_waarde = rec.badgenr
+ WHERE prs_kenmerklink_key = rec.prs_kenmerklink_key;
+
+ v_count_upd := v_count_upd + 1;
+ END IF;
+
+ COMMIT;
+ END LOOP;
+
+ fac.imp_writelog (p_import_key,
+ 'S',
+ 'Passen/#ingelezen: ' || TO_CHAR (v_count_tot),
+ '');
+ fac.imp_writelog (p_import_key,
+ 'S',
+ 'Passen/#toegevoegd: ' || TO_CHAR (v_count_new),
+ '');
+ fac.imp_writelog (p_import_key,
+ 'S',
+ 'Passen/#bijgewerkt: ' || TO_CHAR (v_count_upd),
+ '');
+EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ v_errormsg
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.imp_writelog (p_import_key,
+ 'E',
+ v_aanduiding || v_errormsg,
+ 'Importproces passen afgebroken!');
+END pzho_update_invise;
+/
+
+/* Formatted on 13-11-2013 17:35:25 (QP5 v5.115.810.9015) */
+CREATE OR REPLACE VIEW pzho_v_api_dienstfietsen
+(
+ res_key,
+ res_id,
+ fiets_oms,
+ sleutel_id,
+ van,
+ tot,
+ user_key,
+ vnaam,
+ anaam,
+ pasnr,
+ fo_status_key, -- 1=OPT/2=BEV/3=DEL/4=BLK
+ last_change -- Laatste NEW/UPD/DEL/BLK
+)
+AS
+ SELECT rr.res_rsv_ruimte_key,
+ TO_CHAR (rr.res_reservering_key)
+ || '/'
+ || TO_CHAR (rr.res_rsv_ruimte_volgnr),
+ TRIM (rd.res_deel_omschrijving),
+ fac.safe_to_number(SUBSTR (
+ rd.res_deel_omschrijving,
+ INSTR (rd.res_deel_omschrijving, ' ', -1)
+ + 1
+ )),
+ rr.res_rsv_ruimte_van,
+ rr.res_rsv_ruimte_tot,
+ p.prs_perslid_key,
+ p.prs_perslid_voornaam vnaam,
+ DECODE (COALESCE (p.prs_perslid_tussenvoegsel, ''),
+ '', '',
+ p.prs_perslid_tussenvoegsel || ' ')
+ || p.prs_perslid_naam
+ anaam,
+ kl.prs_kenmerklink_waarde pasnr,
+ rr.res_status_fo_key,
+ t.last_change
+ FROM res_rsv_ruimte rr, -- Ook verwijderde res_rsv_ruimte!
+ res_rsv_deel rrd, -- Ook verwijderde res_rsv_deel!
+ res_deel rd,
+ prs_perslid p,
+ prs_v_aanwezigkenmerklink kl,
+ ( SELECT fac_tracking_refkey,
+ MAX (fac_tracking_datum) last_change
+ FROM fac_tracking -- 30=NEW/31=UPD/34=DEL/242=BLK
+ WHERE fac_srtnotificatie_key IN (30, 31, 34, 242)
+ GROUP BY fac_tracking_refkey) t
+ WHERE rr.res_rsv_ruimte_van < TRUNC (SYSDATE + 1) -- Vandaag..
+ AND rr.res_rsv_ruimte_tot > TRUNC (SYSDATE) -- lopende..
+ AND rr.res_ruimte_opstel_key IS NULL -- losse boekingen
+ AND rr.res_activiteit_key = 11 -- Activiteit tbv. Traka-koppeling
+ AND rr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
+ AND rrd.res_deel_key = rd.res_deel_key
+ AND rr.res_rsv_ruimte_dirtlevel = 0
+ AND rr.res_rsv_ruimte_contact_key = p.prs_perslid_key
+ AND rr.res_rsv_ruimte_contact_key = kl.prs_link_key
+ AND kl.prs_kenmerk_key = 13 -- Alleen aanvragers met een pasnr
+ AND rr.res_rsv_ruimte_key = t.fac_tracking_refkey(+);
+
BEGIN adm.systrackscript('$Workfile: pzho.sql $', '$Revision$', 0); END;
/
BEGIN fac.registercustversion('PZHO', 44); END;
diff --git a/RENK/Once/renk8.sql b/RENK/Once/renk8.sql
new file mode 100644
index 000000000..566c2028e
--- /dev/null
+++ b/RENK/Once/renk8.sql
@@ -0,0 +1,42 @@
+-- Customer specific once-script RENK8.
+--
+-- (c) 2013 SG|facilitor bv
+-- $Revision$
+-- $Id$
+--
+-- Support: +31 53 4800700
+SET ECHO ON
+SPOOL xrenk8.lst
+SET DEFINE OFF
+
+-- 73 = WEB_USER01
+CREATE OR REPLACE VIEW RENK_V_RAP_RES_FROZEN AS SELECT NULL x FROM DUAL;
+INSERT INTO FAC_USRRAP (fac_usrrap_omschrijving,
+ fac_usrrap_view_name,
+ fac_usrrap_in_huidige_locatie,
+ fac_usrrap_template,
+ fac_usrrap_macro,
+ fac_usrrap_vraagbegindatum,
+ fac_usrrap_vraageinddatum,
+ fac_usrrap_functie,
+ fac_usrrap_info,
+ fac_functie_key,
+ fac_usrrap_autorefresh)
+ VALUES ('Definitieve facturen',
+ 'RENK_V_RAP_RES_FROZEN',
+ NULL,
+ NULL,
+ NULL,
+ 0,
+ 0,
+ 1,
+ 'Overzicht definitieve facturen per huurder.',
+ 73,
+ 0);
+
+COMMIT;
+
+BEGIN adm.systrackscript('$Workfile: renk8.sql $', '$Revision$', 1); END;
+/
+SPOOL OFF
+@renk.sql
diff --git a/RENK/renk.sql b/RENK/renk.sql
index 1ff06211c..78a608a04 100644
--- a/RENK/renk.sql
+++ b/RENK/renk.sql
@@ -721,7 +721,7 @@ CREATE OR REPLACE PROCEDURE renk_update_prs (p_import_key IN NUMBER)
IS
c_persoon_inactief VARCHAR2 (30) := 'INACTIEF: ';
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een e-mail
- c_max_delta_percentage NUMBER (10) := 20;
+ c_max_delta_percentage NUMBER (10) := 40; -- Per RENK#27766 op 40%!
-- Ruimte waar personen in geplaatst worden (indien nog geen ruimte in opgegeven gebouw)
c_ruimte_nr VARCHAR2 (10) := '0.00';
-- Groep waar personen in geplaatst worden (indien nog geen groep)
@@ -2317,19 +2317,20 @@ AS
'1',
DECODE (
rvc.res_discipline_key,
- 41,
+ 41, -- Sporthal
DECODE (
TO_CHAR (x.tot, 'd'),
+ '1', -- Zondag
+ 1,
'4', -- Woensdag
- DECODE (SIGN ( ( (x.van - TRUNC (x.van)) * 24) - 12), -1, 1, 0.5),
- DECODE (SIGN ( ( (x.van - TRUNC (x.van)) * 24) - 18), -1, 1, 0.5)
- ),
- 42,
- DECODE (
- TO_CHAR (x.tot, 'd'),
- '4', -- Woensdag
- DECODE (SIGN ( ( (x.van - TRUNC (x.van)) * 24) - 12), -1, 1, 0.5),
- DECODE (SIGN ( ( (x.van - TRUNC (x.van)) * 24) - 18), -1, 1, 0.5)
+ DECODE (SIGN ( ( (x.van - TRUNC (x.van)) * 24) - 12),
+ -1, 0.5,
+ 1),
+ '7', -- Zaterdag
+ 1,
+ DECODE (SIGN ( ( (x.van - TRUNC (x.van)) * 24) - 18),
+ -1, 0.5,
+ 1)
),
1
),
@@ -2358,6 +2359,7 @@ AS
FROM (SELECT rr.res_rsv_ruimte_key,
rr.res_reservering_key res_key,
rr.res_rsv_ruimte_volgnr res_vnr,
+ rr.res_rsv_ruimte_ordernr,
rr.res_rsv_ruimte_van van,
rr.res_rsv_ruimte_tot tot,
rr.res_rsv_ruimte_omschrijving,
@@ -2423,14 +2425,12 @@ AS
),
'1',
'2'
- ) sys_helft,
- rr.res_rsv_ruimte_ordernr
+ ) sys_helft
FROM res_v_aanwezigrsv_ruimte rr,
prs_perslid p
WHERE rr.res_activiteit_key IN (30, 230) -- Verhuur/Schoollokaal
AND rr.res_status_fo_key IN (1, 2)
AND rr.res_rsv_ruimte_dirtlevel = 0
- --rr.res_rsv_ruimte_ordernr IS NULL
--AND COALESCE (
-- rr.res_status_bo_key, 2
-- ) != 6 -- Nog niet AV
@@ -2543,27 +2543,19 @@ AS
'1R' res_type,
rr.res_ruimte_nr,
TO_NUMBER (NULL) vnr,
- -- rdi.ins_discipline_omschrijving
- --|| ' '
- --|| l.alg_locatie_omschrijving
- --|| ' '
- --|| l.alg_locatie_plaats
- 'Huur'
- || ' '
- || rdi.ins_discipline_omschrijving
- || ' '
+ 'Huur '
|| DECODE (
rrr.res_activiteit_key,
30,
- TRIM(SUBSTR (
- rr.res_ruimte_nr,
- 1,
- INSTR (rr.res_ruimte_nr || '(', '(')
- - 1
- )),
- l.alg_locatie_omschrijving
- || ' '
- || l.alg_locatie_plaats
+ rdi.ins_discipline_omschrijving || ' '
+ || TRIM(SUBSTR (
+ rr.res_ruimte_nr,
+ 1,
+ INSTR (rr.res_ruimte_nr || '(',
+ '(')
+ - 1
+ )),
+ 'locatie ' || l.alg_locatie_omschrijving
)
onderwerp,
rr.res_ruimte_nr res_voorziening,
@@ -2670,7 +2662,7 @@ AS
OR (x.res_rsv_ruimte_ordernr IS NOT NULL -- .. of correctie
AND x.res_helft = x.sys_helft)) -- ..nog toegestaan!
AND tarief.res_kenmerkreservering_waarde != '261' -- Niet nul
- AND 1 = 1;
+/
/* Formatted on 31-7-2013 11:42:24 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW renk_v_lokaalverhuur_vast
@@ -2693,12 +2685,15 @@ AS
DECODE (x.k3 + x.k4,
2, DECODE (x.k1 + x.k2, 2, 'J', 'H'),
'K') -- Deze helft geen boekingen in beide kwartalen!
- ) khj
+ )
+ khj
FROM ( SELECT TO_CHAR (x.alg_locatie_key) || '-'
- || COALESCE (bedr_key.res_kenmerkreservering_waarde,
- --inaam.res_kenmerkreservering_waarde,
- UPPER (TRIM (x.res_rsv_ruimte_omschrijving)),
- '[naam]')
+ || COALESCE (
+ bedr_key.res_kenmerkreservering_waarde,
+ --inaam.res_kenmerkreservering_waarde,
+ UPPER (TRIM (x.res_rsv_ruimte_omschrijving)),
+ '[naam]'
+ )
groepering,
x.sys_helft,
x.res_ruimte_key,
@@ -2706,90 +2701,89 @@ AS
DECODE (SIGN (SUM (x.k2) - 8), -1, 0, 1) k2,
DECODE (SIGN (SUM (x.k3) - 8), -1, 0, 1) k3,
DECODE (SIGN (SUM (x.k4) - 8), -1, 0, 1) k4
- FROM (SELECT rrr.res_rsv_ruimte_key,
- rrr.res_rsv_ruimte_omschrijving,
- DECODE (
- TRUNC (ADD_MONTHS (SYSDATE, 7),
- 'yyyy'),
- TRUNC (ADD_MONTHS (SYSDATE, 1),
- 'yyyy'),
- '1',
- '2'
- ) sys_helft,
- rr.res_ruimte_key,
- rga.alg_locatie_key,
- DECODE (
- TO_CHAR (rrr.res_rsv_ruimte_tot,
- 'Q'),
- 1, 1,
- 0
- ) k1,
- DECODE (
- TO_CHAR (rrr.res_rsv_ruimte_tot,
- 'Q'),
- 2, 1,
- 0
- ) k2,
- DECODE (
- TO_CHAR (rrr.res_rsv_ruimte_tot,
- 'Q'),
- 3, 1,
- 0
- ) k3,
- DECODE (
- TO_CHAR (rrr.res_rsv_ruimte_tot,
- 'Q'),
- 4, 1,
- 0
- ) k4
- FROM res_v_aanwezigrsv_ruimte rrr,
- res_ruimte_opstelling rro,
- res_ruimte rr,
- res_v_res_ruimte_gegevens_all rga
- WHERE rrr.res_activiteit_key = 230 -- Schoollokaal
- AND rrr.res_status_fo_key IN (1, 2)
- AND rrr.res_rsv_ruimte_dirtlevel = 0
- AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
- AND rro.res_ruimte_key = rr.res_ruimte_key
- AND rr.res_discipline_key = 43
- AND rr.res_ruimte_key = rga.res_ruimte_key
- AND rrr.res_rsv_ruimte_tot BETWEEN ADD_MONTHS (
- TRUNC (
- ADD_MONTHS (
- SYSDATE, -5
- ),
- 'yyyy'
+ FROM (SELECT rrr.res_rsv_ruimte_key,
+ rrr.res_rsv_ruimte_omschrijving,
+ DECODE (
+ TRUNC (ADD_MONTHS (SYSDATE, 7),
+ 'yyyy'),
+ TRUNC (ADD_MONTHS (SYSDATE, 1),
+ 'yyyy'),
+ '1',
+ '2'
+ )
+ sys_helft,
+ rr.res_ruimte_key,
+ rga.alg_locatie_key,
+ DECODE (
+ TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
+ 1, 1,
+ 0
+ )
+ k1,
+ DECODE (
+ TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
+ 2, 1,
+ 0
+ )
+ k2,
+ DECODE (
+ TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
+ 3, 1,
+ 0
+ )
+ k3,
+ DECODE (
+ TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
+ 4, 1,
+ 0
+ )
+ k4
+ FROM res_v_aanwezigrsv_ruimte rrr,
+ res_ruimte_opstelling rro,
+ res_ruimte rr,
+ res_v_res_ruimte_gegevens_all rga
+ WHERE rrr.res_activiteit_key = 230 -- Schoollokaal
+ AND rrr.res_status_fo_key IN (1, 2)
+ AND rrr.res_rsv_ruimte_dirtlevel = 0
+ AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
+ AND rro.res_ruimte_key = rr.res_ruimte_key
+ AND rr.res_discipline_key = 43
+ AND rr.res_ruimte_key = rga.res_ruimte_key
+ AND rrr.res_rsv_ruimte_tot BETWEEN ADD_MONTHS (
+ TRUNC (
+ ADD_MONTHS (
+ SYSDATE, -5
),
- 6
- )
- AND ADD_MONTHS (
- TRUNC (
- ADD_MONTHS (
- SYSDATE, -5
- ),
- 'yyyy'
+ 'yyyy'
+ ),
+ 6
+ )
+ AND ADD_MONTHS (
+ TRUNC (
+ ADD_MONTHS (
+ SYSDATE, -5
),
- 18
- ))
- x
- LEFT JOIN -- 303 = Verhuur tarief
- res_v_aanwezigkenmerkwaarde tarief
- ON x.res_rsv_ruimte_key = tarief.res_rsv_ruimte_key
- AND tarief.res_kenmerk_key = 303
- LEFT JOIN -- 9 = Regelmatige relatiegegevens
- res_v_aanwezigkenmerkwaarde bedr_key
- ON x.res_rsv_ruimte_key = bedr_key.res_rsv_ruimte_key
- AND bedr_key.res_kenmerk_key = 9
- --LEFT JOIN -- 2 = Incidentele relatie/Naam
- -- res_v_aanwezigkenmerkwaarde inaam
- --ON x.res_rsv_ruimte_key = inaam.res_rsv_ruimte_key
- -- AND inaam.res_kenmerk_key = 2
+ 'yyyy'
+ ),
+ 18
+ ))
+ x
+ LEFT JOIN -- 303 = Verhuur tarief
+ res_v_aanwezigkenmerkwaarde tarief
+ ON x.res_rsv_ruimte_key = tarief.res_rsv_ruimte_key
+ AND tarief.res_kenmerk_key = 303
+ LEFT JOIN -- 9 = Regelmatige relatiegegevens
+ res_v_aanwezigkenmerkwaarde bedr_key
+ ON x.res_rsv_ruimte_key = bedr_key.res_rsv_ruimte_key
+ AND bedr_key.res_kenmerk_key = 9
WHERE tarief.res_kenmerkreservering_waarde = '84'
GROUP BY TO_CHAR (x.alg_locatie_key) || '-'
- || COALESCE (bedr_key.res_kenmerkreservering_waarde,
- --inaam.res_kenmerkreservering_waarde,
- UPPER (TRIM (x.res_rsv_ruimte_omschrijving)),
- '[naam]'),
+ || COALESCE (
+ bedr_key.res_kenmerkreservering_waarde,
+ --inaam.res_kenmerkreservering_waarde,
+ UPPER (TRIM (x.res_rsv_ruimte_omschrijving)),
+ '[naam]'
+ ),
x.sys_helft,
x.res_ruimte_key) x;
@@ -2974,6 +2968,768 @@ AS
x.res_ruimte_key,
x.khj_tarief;
+/* Formatted on 25-11-2013 11:10:05 (QP5 v5.115.810.9015) */
+CREATE OR REPLACE VIEW renk_v_verhuurregels_frozen
+(
+ groepering,
+ sortering1,
+ sortering2,
+ fclt_f_naam,
+ naam,
+ afd,
+ tav,
+ aanhef,
+ adres,
+ postcode,
+ plaats,
+ factuurdatum,
+ res_rsv_ruimte_key,
+ resid,
+ ordernr,
+ sys_helft,
+ dagnaam,
+ dagnr,
+ van,
+ tot,
+ omschrijving,
+ opmerking,
+ datumverzoek,
+ soortverzoek,
+ tarief_code,
+ termijnen,
+ korting,
+ behandelaar_naam,
+ behandelaar_tel,
+ behandelaar_mail,
+ res_discipline_key,
+ res_ruimte_key,
+ alg_locatie_key,
+ res_type,
+ res_ruimte_nr,
+ vnr,
+ onderwerp,
+ res_voorziening,
+ res_rsv_prijs,
+ aantal,
+ ps,
+ po,
+ pm,
+ pa,
+ pd,
+ btw
+)
+AS
+ SELECT x.res_rsv_ruimte_ordernr groepering,
+ TO_CHAR (x.van, 'yyyy-mm-dd hh24:mi')
+ || rvc.res_ruimte_nr
+ || x.res_key
+ sortering1, -- Factuurregels op datum-tijd en dan ruimtenr
+ rvc.res_type || SUBSTR ('000000' || TO_CHAR (rvc.vnr), -6)
+ sortering2, -- ..daarbinnen op type (1R2V3C) en dan volgnr
+ DECODE (
+ r.bedr_key,
+ NULL,
+ COALESCE (UPPER (TRIM (x.res_rsv_ruimte_omschrijving)),
+ '[naam]'),
+ TRIM (r.prs_bedrijf_naam)
+ )
+ fclt_f_naam,
+ DECODE (r.bedr_key,
+ NULL,
+ COALESCE (inaam.res_kenmerkreservering_waarde, '[naam]'),
+ COALESCE (rnaam.prs_kenmerklink_waarde, '[naam]'))
+ naam,
+ DECODE (r.bedr_key,
+ NULL, iafd.res_kenmerkreservering_waarde,
+ rafd.prs_kenmerklink_waarde)
+ afd,
+ DECODE (r.bedr_key,
+ NULL, itav.res_kenmerkreservering_waarde,
+ rtav.prs_kenmerklink_waarde)
+ tav,
+ DECODE (
+ r.bedr_key,
+ NULL,
+ COALESCE (iaanhef.res_kenmerkreservering_waarde, '[aanhef]'),
+ COALESCE (raanhef.prs_kenmerklink_waarde, '[aanhef]')
+ )
+ aanhef,
+ DECODE (
+ r.bedr_key,
+ NULL,
+ COALESCE (iadres.res_kenmerkreservering_waarde, '[adres]'),
+ COALESCE (r.adres, '[adres]')
+ )
+ adres,
+ DECODE (
+ r.bedr_key,
+ NULL,
+ COALESCE (ipostcode.res_kenmerkreservering_waarde, '[pc]'),
+ COALESCE (r.postcode, '[pc]')
+ )
+ postcode,
+ DECODE (
+ r.bedr_key,
+ NULL,
+ COALESCE (iplaats.res_kenmerkreservering_waarde, '[plaats]'),
+ COALESCE (r.plaats, '[plaats]')
+ )
+ plaats,
+ TO_CHAR (SYSDATE, 'dd')
+ || DECODE (TO_CHAR (SYSDATE, 'mm'),
+ '01', ' januari ',
+ '02', ' februari ',
+ '03', ' maart ',
+ '04', ' april ',
+ '05', ' mei ',
+ '06', ' juni ',
+ '07', ' juli ',
+ '08', ' augustus ',
+ '09', ' september ',
+ '10', ' okotober ',
+ '11', ' november ',
+ ' december ')
+ || TO_CHAR (SYSDATE, 'yyyy')
+ factuurdatum,
+ x.res_rsv_ruimte_key,
+ x.res_key || '/' || x.res_vnr resid,
+ x.res_rsv_ruimte_ordernr ordernr,
+ x.res_helft, -- 1e of 2e jaarhelft in formaat yyyyh(elft)!
+ DECODE (TO_CHAR (x.van, 'd'),
+ '2', 'maandag',
+ '3', 'dinsdag',
+ '4', 'woensdag',
+ '5', 'donderdag',
+ '6', 'vrijdag',
+ '7', 'zaterdag',
+ 'zondag')
+ dagnaam,
+ DECODE (TO_CHAR (x.van, 'd'),
+ '1', 7,
+ TO_NUMBER (TO_CHAR (x.van, 'd')) - 1)
+ dagnr,
+ x.van, --TO_CHAR (x.van, 'hh24:mi') van,
+ x.tot, --TO_CHAR (x.tot, 'hh24:mi') tot,
+ x.res_rsv_ruimte_omschrijving oms,
+ x.res_rsv_ruimte_opmerking opm,
+ COALESCE (datumverzoek.res_kenmerkreservering_waarde,
+ 'dd-mm-jjjj')
+ datumverzoek,
+ DECODE (soortverzoek.res_kenmerkreservering_waarde,
+ '81', 'telefonische',
+ '82', 'schriftelijke',
+ '[soortverzoek]')
+ soortverzoek,
+ DECODE (tarief.res_kenmerkreservering_waarde,
+ '84', 'V', -- Vast!
+ '85', 'C', -- Commercieel!
+ 'I') -- Incidenteel!
+ tarief_code,
+ rtermijnen.prs_kenmerklink_waarde termijnen,
+ DECODE (
+ rkorting.prs_kenmerklink_waarde,
+ '1',
+ DECODE (
+ rvc.res_discipline_key,
+ 41, -- Sporthal
+ DECODE (
+ TO_CHAR (x.tot, 'd'),
+ '1', -- Zondag
+ 1,
+ '4', -- Woensdag
+ DECODE (SIGN ( ( (x.van - TRUNC (x.van)) * 24) - 12),
+ -1, 0.5,
+ 1),
+ '7', -- Zaterdag
+ 1,
+ DECODE (SIGN ( ( (x.van - TRUNC (x.van)) * 24) - 18),
+ -1, 0.5,
+ 1)
+ ),
+ 1
+ ),
+ 1
+ )
+ korting, -- Eventueel te hanteren korting (factor)!
+ x.behandelaar_naam,
+ x.behandelaar_tel,
+ x.behandelaar_mail,
+ rvc.res_discipline_key,
+ rvc.res_ruimte_key,
+ rvc.alg_locatie_key,
+ rvc.res_type,
+ rvc.res_ruimte_nr,
+ rvc.vnr,
+ rvc.onderwerp,
+ rvc.res_voorziening,
+ rvc.res_rsv_prijs,
+ rvc.aantal,
+ rvc.ps, -- Uur-tarief
+ rvc.po, -- Incidenteel tarief
+ rvc.pm, -- Vast tarief/K
+ rvc.pa, -- Commercieel tarief/H
+ rvc.pd, -- Jaartarief/J
+ rvc.btw
+ FROM (SELECT rr.res_rsv_ruimte_key,
+ rr.res_reservering_key res_key,
+ rr.res_rsv_ruimte_volgnr res_vnr,
+ rr.res_rsv_ruimte_ordernr,
+ rr.res_rsv_ruimte_van van,
+ rr.res_rsv_ruimte_tot tot,
+ rr.res_rsv_ruimte_omschrijving,
+ rr.res_rsv_ruimte_opmerking,
+ p.prs_perslid_key,
+ DECODE (
+ p.prs_perslid_voornaam,
+ '', '',
+ p.prs_perslid_voornaam
+ || ' '
+ )
+ || DECODE (
+ p.prs_perslid_tussenvoegsel,
+ '', '',
+ p.prs_perslid_tussenvoegsel
+ || ' '
+ )
+ || p.prs_perslid_naam
+ behandelaar_naam,
+ COALESCE (
+ p.prs_perslid_telefoonnr,
+ p.prs_perslid_mobiel
+ )
+ behandelaar_tel,
+ p.prs_perslid_email
+ behandelaar_mail,
+ TO_CHAR (
+ rr.res_rsv_ruimte_tot,
+ 'yyyy'
+ )
+ || DECODE (
+ TRUNC (
+ ADD_MONTHS (
+ rr.res_rsv_ruimte_tot, 6
+ ),
+ 'yyyy'
+ ),
+ TRUNC (
+ rr.res_rsv_ruimte_tot,
+ 'yyyy'
+ ),
+ '1',
+ '2'
+ )
+ res_helft
+ FROM res_v_aanwezigrsv_ruimte rr,
+ prs_perslid p
+ WHERE rr.res_rsv_ruimte_ordernr IS NOT NULL
+ AND rr.res_activiteit_key IN (30, 230) -- Verhuur/Schoollokaal
+ AND rr.res_status_fo_key IN (1, 2)
+ AND rr.res_rsv_ruimte_dirtlevel = 0
+ --AND COALESCE (
+ -- rr.res_status_bo_key, 2
+ -- ) != 6 -- Nog niet AV
+ AND rr.res_rsv_ruimte_tot >
+ TO_DATE (
+ '01072013', 'ddmmyyyy'
+ )
+ AND rr.res_rsv_ruimte_tot >
+ TRUNC (
+ ADD_MONTHS (
+ SYSDATE, -12
+ ),
+ 'yyyy'
+ )
+ AND rr.res_rsv_ruimte_contact_key =
+ p.prs_perslid_key)
+ x
+ LEFT JOIN -- 301/422 = Datum verzoek
+ res_v_aanwezigkenmerkwaarde datumverzoek
+ ON x.res_rsv_ruimte_key = datumverzoek.res_rsv_ruimte_key
+ AND datumverzoek.res_kenmerk_key IN (301, 422)
+ LEFT JOIN -- 302/423 = Soort verzoek
+ res_v_aanwezigkenmerkwaarde soortverzoek
+ ON x.res_rsv_ruimte_key = soortverzoek.res_rsv_ruimte_key
+ AND soortverzoek.res_kenmerk_key IN (302, 423)
+ LEFT JOIN -- 303/424 = Verhuur tarief
+ res_v_aanwezigkenmerkwaarde tarief
+ ON x.res_rsv_ruimte_key = tarief.res_rsv_ruimte_key
+ AND tarief.res_kenmerk_key IN (303, 424)
+ LEFT JOIN -- Regelmatige relatiegegevens
+ (SELECT kw.res_rsv_ruimte_key,
+ b.prs_bedrijf_key bedr_key,
+ b.prs_bedrijf_naam,
+ COALESCE (
+ b.prs_bedrijf_post_adres,
+ b.prs_bedrijf_bezoek_adres
+ ) adres,
+ COALESCE (
+ b.prs_bedrijf_post_postcode,
+ b.prs_bedrijf_bezoek_postcode
+ ) postcode,
+ COALESCE (
+ b.prs_bedrijf_post_plaats,
+ b.prs_bedrijf_bezoek_plaats
+ ) plaats
+ FROM res_v_aanwezigkenmerkwaarde kw,
+ prs_bedrijf b
+ WHERE kw.res_kenmerk_key IN (9, 426) -- Relatie
+ AND fac.safe_to_number(kw.res_kenmerkreservering_waarde) =
+ b.prs_bedrijf_key)
+ r
+ ON x.res_rsv_ruimte_key = r.res_rsv_ruimte_key
+ LEFT JOIN -- 2/428 = Incidentele relatie/Naam
+ res_v_aanwezigkenmerkwaarde inaam
+ ON x.res_rsv_ruimte_key = inaam.res_rsv_ruimte_key
+ AND inaam.res_kenmerk_key IN (2, 428)
+ LEFT JOIN -- 341/429 = Incidentele relatie/Afd
+ res_v_aanwezigkenmerkwaarde iafd
+ ON x.res_rsv_ruimte_key = iafd.res_rsv_ruimte_key
+ AND iafd.res_kenmerk_key IN (341, 429)
+ LEFT JOIN -- 342/430 = Incidentele relatie/Tav
+ res_v_aanwezigkenmerkwaarde itav
+ ON x.res_rsv_ruimte_key = itav.res_rsv_ruimte_key
+ AND itav.res_kenmerk_key IN (342, 430)
+ LEFT JOIN -- 304/436 = Incidentele relatie/Aanhef
+ res_v_aanwezigkenmerkwaarde iaanhef
+ ON x.res_rsv_ruimte_key = iaanhef.res_rsv_ruimte_key
+ AND iaanhef.res_kenmerk_key IN (304, 436)
+ LEFT JOIN -- 3/431 = Incidentele relatie/Adres
+ res_v_aanwezigkenmerkwaarde iadres
+ ON x.res_rsv_ruimte_key = iadres.res_rsv_ruimte_key
+ AND iadres.res_kenmerk_key IN (3, 431)
+ LEFT JOIN -- 4/432 = Incidentele relatie/Postcode
+ res_v_aanwezigkenmerkwaarde ipostcode
+ ON x.res_rsv_ruimte_key = ipostcode.res_rsv_ruimte_key
+ AND ipostcode.res_kenmerk_key IN (4, 432)
+ LEFT JOIN -- 5/433 = Incidentele relatie/Plaats
+ res_v_aanwezigkenmerkwaarde iplaats
+ ON x.res_rsv_ruimte_key = iplaats.res_rsv_ruimte_key
+ AND iplaats.res_kenmerk_key IN (5, 433)
+ LEFT JOIN -- 1021 = Regelmatige relatie/Naam
+ prs_v_aanwezigkenmerklink rnaam
+ ON r.bedr_key = rnaam.prs_link_key
+ AND rnaam.prs_kenmerk_key = 1021
+ LEFT JOIN -- 1040 = Regelmatige relatie/Afd
+ prs_v_aanwezigkenmerklink rafd
+ ON r.bedr_key = rafd.prs_link_key
+ AND rafd.prs_kenmerk_key = 1040
+ LEFT JOIN -- 1041 = Regelmatige relatie/Tav
+ prs_v_aanwezigkenmerklink rtav
+ ON r.bedr_key = rtav.prs_link_key
+ AND rtav.prs_kenmerk_key = 1041
+ LEFT JOIN -- 1022 = Regelmatige relatie/Aanhef
+ prs_v_aanwezigkenmerklink raanhef
+ ON r.bedr_key = raanhef.prs_link_key
+ AND raanhef.prs_kenmerk_key = 1022
+ LEFT JOIN -- 1023 = Regelmatige relatie/Termijnen
+ prs_v_aanwezigkenmerklink rtermijnen
+ ON r.bedr_key = rtermijnen.prs_link_key
+ AND rtermijnen.prs_kenmerk_key = 1023
+ LEFT JOIN -- 1060 = Regelmatige relatie/Korting
+ prs_v_aanwezigkenmerklink rkorting
+ ON r.bedr_key = rkorting.prs_link_key
+ AND rkorting.prs_kenmerk_key = 1060
+ LEFT JOIN
+ (SELECT rrr.res_rsv_ruimte_key,
+ rr.res_discipline_key,
+ rr.res_ruimte_key,
+ l.alg_locatie_key,
+ '1R' res_type,
+ rr.res_ruimte_nr,
+ TO_NUMBER (NULL) vnr,
+ 'Huur '
+ || DECODE (
+ rrr.res_activiteit_key,
+ 30,
+ rdi.ins_discipline_omschrijving || ' '
+ || TRIM(SUBSTR (
+ rr.res_ruimte_nr,
+ 1,
+ INSTR (rr.res_ruimte_nr || '(',
+ '(')
+ - 1
+ )),
+ 'locatie ' || l.alg_locatie_omschrijving
+ )
+ onderwerp,
+ rr.res_ruimte_nr res_voorziening,
+ rrr.res_rsv_ruimte_prijs res_rsv_prijs,
+ (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van)
+ * 24
+ aantal, -- Duur in uren
+ rr.res_ruimte_prijs ps, -- Uur-tarief
+ rr.res_ruimte_prijs_ochtend po, -- Incidenteel tarief
+ rr.res_ruimte_prijs_middag pm, -- Vast tarief/K
+ rr.res_ruimte_prijs_avond pa, -- Commercieel tarief/H
+ rr.res_ruimte_prijs_dag pd, -- Jaartarief/J
+ 6 btw
+ FROM res_v_aanwezigrsv_ruimte rrr,
+ res_ruimte_opstelling rro,
+ res_ruimte rr,
+ res_discipline rdi,
+ res_v_res_ruimte_gegevens_all rga,
+ alg_locatie l
+ WHERE rrr.res_ruimte_opstel_key =
+ rro.res_ruimte_opstel_key
+ AND rro.res_ruimte_key = rr.res_ruimte_key
+ AND rr.res_discipline_key = rdi.ins_discipline_key
+ AND rr.res_ruimte_key = rga.res_ruimte_key
+ AND rga.alg_locatie_key = l.alg_locatie_key
+ UNION ALL
+ SELECT rrd.res_rsv_ruimte_key,
+ rr.res_discipline_key,
+ rr.res_ruimte_key,
+ l.alg_locatie_key,
+ '2V' res_type,
+ rr.res_ruimte_nr,
+ rd.res_ins_deel_key vnr,
+ NULL onderwerp,
+ LTRIM (ID.ins_deel_omschrijving)
+ || DECODE (rd.res_deel_eenheid,
+ NULL, '',
+ ' (' || rd.res_deel_eenheid || ')')
+ res_voorziening,
+ rrd.res_rsv_deel_prijs res_rsv_prijs,
+ (rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24
+ aantal, -- Duur in uren
+ rd.res_deel_prijs ps, -- Uur-tarief
+ TO_NUMBER (NULL) po, -- Incidenteel tarief
+ TO_NUMBER (NULL) pm, -- Vast tarief/K
+ TO_NUMBER (NULL) pa, -- Commercieel tarief/H
+ TO_NUMBER (NULL) pd, -- Jaartarief/J
+ 6 btw
+ FROM res_v_aanwezigrsv_ruimte rrr,
+ res_ruimte_opstelling rro,
+ res_ruimte rr,
+ res_v_res_ruimte_gegevens_all rga,
+ alg_locatie l,
+ res_v_aanwezigrsv_deel rrd,
+ res_deel rd,
+ ins_deel ID
+ WHERE rrr.res_ruimte_opstel_key =
+ rro.res_ruimte_opstel_key
+ AND rro.res_ruimte_key = rr.res_ruimte_key
+ AND rr.res_ruimte_key = rga.res_ruimte_key
+ AND rga.alg_locatie_key = l.alg_locatie_key
+ AND rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
+ AND rrd.res_deel_key = rd.res_deel_key
+ AND rd.res_ins_deel_key = ID.ins_deel_key
+ UNION ALL
+ SELECT rra.res_rsv_ruimte_key,
+ rr.res_discipline_key,
+ rr.res_ruimte_key,
+ l.alg_locatie_key,
+ '3C' res_type,
+ rr.res_ruimte_nr,
+ ra.res_artikel_volgnummer vnr,
+ NULL onderwerp,
+ LTRIM (ra.res_artikel_omschrijving)
+ || DECODE (ra.res_artikel_eenheid,
+ NULL, '',
+ ' (' || ra.res_artikel_eenheid || ')')
+ res_voorziening,
+ rra.res_rsv_artikel_prijs res_rsv_prijs,
+ rra.res_rsv_artikel_aantal aantal,
+ ra.res_artikel_prijs ps, -- Stuksprijs
+ TO_NUMBER (NULL) po, -- Incidenteel tarief
+ TO_NUMBER (NULL) pm, -- Vast tarief/K
+ TO_NUMBER (NULL) pa, -- Commercieel tarief/H
+ TO_NUMBER (NULL) pd, -- Jaartarief/J
+ COALESCE (rra.res_rsv_artikel_btw,
+ ra.res_artikel_btw,
+ 21)
+ btw
+ FROM res_v_aanwezigrsv_ruimte rrr,
+ res_ruimte_opstelling rro,
+ res_ruimte rr,
+ res_v_res_ruimte_gegevens_all rga,
+ alg_locatie l,
+ res_v_aanwezigrsv_artikel rra,
+ res_artikel ra
+ WHERE rrr.res_ruimte_opstel_key =
+ rro.res_ruimte_opstel_key
+ AND rro.res_ruimte_key = rr.res_ruimte_key
+ AND rr.res_ruimte_key = rga.res_ruimte_key
+ AND rga.alg_locatie_key = l.alg_locatie_key
+ AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
+ AND rra.res_artikel_key = ra.res_artikel_key) rvc
+ ON x.res_rsv_ruimte_key = rvc.res_rsv_ruimte_key
+ WHERE tarief.res_kenmerkreservering_waarde != '261' -- Niet nul
+/
+
+/* Formatted on 25-11-2013 11:10:05 (QP5 v5.115.810.9015) */
+CREATE OR REPLACE VIEW renk_v_lokaalverhuur_frozen
+(
+ groepering, -- Huurder/locatie -> factuur
+ sys_helft,
+ res_ruimte_key, -- Ruimte
+ khj_tarief -- K(wartaal), H(alfjaar) of J(aar)
+)
+AS
+ SELECT x.res_rsv_ruimte_ordernr,
+ x.res_helft,
+ x.res_ruimte_key,
+ DECODE (
+ x.res_helft,
+ '1',
+ DECODE (x.k1 + x.k2,
+ 2, DECODE (x.k3 + x.k4, 2, 'J', 'H'),
+ 'K'), -- Deze helft geen boekingen in beide kwartalen!
+ DECODE (x.k3 + x.k4,
+ 2, DECODE (x.k1 + x.k2, 2, 'J', 'H'),
+ 'K') -- Deze helft geen boekingen in beide kwartalen!
+ )
+ khj
+ FROM ( SELECT x.res_rsv_ruimte_ordernr,
+ x.res_helft,
+ x.res_ruimte_key,
+ DECODE (SIGN (SUM (x.k1) - 8), -1, 0, 1) k1,
+ DECODE (SIGN (SUM (x.k2) - 8), -1, 0, 1) k2,
+ DECODE (SIGN (SUM (x.k3) - 8), -1, 0, 1) k3,
+ DECODE (SIGN (SUM (x.k4) - 8), -1, 0, 1) k4
+ FROM (SELECT rrr.res_rsv_ruimte_key,
+ rrr.res_rsv_ruimte_ordernr,
+ DECODE (
+ TRUNC (ADD_MONTHS (rrr.res_rsv_ruimte_tot, 6),
+ 'yyyy'),
+ TRUNC (rrr.res_rsv_ruimte_tot,
+ 'yyyy'),
+ '1',
+ '2'
+ )
+ res_helft,
+ rr.res_ruimte_key,
+ rga.alg_locatie_key,
+ DECODE (
+ TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
+ 1, 1,
+ 0
+ )
+ k1,
+ DECODE (
+ TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
+ 2, 1,
+ 0
+ )
+ k2,
+ DECODE (
+ TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
+ 3, 1,
+ 0
+ )
+ k3,
+ DECODE (
+ TO_CHAR (rrr.res_rsv_ruimte_tot, 'Q'),
+ 4, 1,
+ 0
+ )
+ k4
+ FROM res_v_aanwezigrsv_ruimte rrr,
+ res_ruimte_opstelling rro,
+ res_ruimte rr,
+ res_v_res_ruimte_gegevens_all rga
+ WHERE rrr.res_rsv_ruimte_ordernr IS NOT NULL
+ AND rrr.res_activiteit_key = 230 -- Schoollokaal
+ AND rrr.res_status_fo_key IN (1, 2)
+ AND rrr.res_rsv_ruimte_dirtlevel = 0
+ AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
+ AND rro.res_ruimte_key = rr.res_ruimte_key
+ AND rr.res_discipline_key = 43
+ AND rr.res_ruimte_key = rga.res_ruimte_key) x
+ LEFT JOIN -- 303 = Verhuur tarief
+ res_v_aanwezigkenmerkwaarde tarief
+ ON x.res_rsv_ruimte_key = tarief.res_rsv_ruimte_key
+ AND tarief.res_kenmerk_key = 303
+ LEFT JOIN -- 9 = Regelmatige relatiegegevens
+ res_v_aanwezigkenmerkwaarde bedr_key
+ ON x.res_rsv_ruimte_key = bedr_key.res_rsv_ruimte_key
+ AND bedr_key.res_kenmerk_key = 9
+ WHERE tarief.res_kenmerkreservering_waarde = '84'
+ GROUP BY x.res_rsv_ruimte_ordernr,
+ x.res_helft,
+ x.res_ruimte_key) x;
+
+/* Formatted on 25-11-2013 11:12:24 (QP5 v5.115.810.9015) */
+CREATE OR REPLACE VIEW renk_v_rap_res_frozen
+(
+ hide_f_groepering,
+ hide_f_mindatum,
+ hide_f_maxdatum,
+ hide_f_restype,
+ fclt_f_naam,
+ naam,
+ afd,
+ tav,
+ aanhef,
+ adres,
+ postcode,
+ plaats,
+ factuurdatum,
+ ordernr,
+ periode, -- res_helft
+ dagnaam,
+ dagnr,
+ van,
+ tot,
+ rvc_oms,
+ aantal,
+ stuksprijs,
+ bruto,
+ onderwerp,
+ datumverzoek,
+ soortverzoek,
+ tarief_code,
+ termijnen,
+ korting,
+ fclt_f_kenmerk,
+ behandelaar_naam,
+ behandelaar_tel,
+ behandelaar_mail,
+ res_discipline_key,
+ res_ruimte_key,
+ aant_weken
+)
+AS
+ SELECT x.groepering,
+ MIN (x.sortering1),
+ MAX (x.sortering1),
+ x.sortering2,
+ MIN (x.fclt_f_naam),
+ MIN (x.naam),
+ MIN (x.afd),
+ MIN (x.tav),
+ MIN (x.aanhef),
+ MIN (x.adres),
+ MIN (x.postcode),
+ MIN (x.plaats),
+ MIN (x.factuurdatum),
+ MIN (x.ordernr),
+ MIN (x.sys_helft),
+ MIN (x.dagnaam),
+ x.dagnr,
+ x.van,
+ x.tot,
+ MIN (x.res_voorziening),
+ MIN (x.aantal),
+ MIN (x.stuksprijs),
+ DECODE (x.khj_tarief,
+ NULL, SUM (x.bruto),
+ SUM (x.bruto) / COUNT ( * )),
+ MIN (x.onderwerp),
+ MIN (x.datumverzoek), -- Langst geleden verzoekdatum!
+ MIN (x.soortverzoek), -- Schriftelijk wint!
+ MIN (x.tarief_code),
+ MIN (x.termijnen),
+ MIN (x.korting),
+ x.ordernr kenmerk,
+ MIN (x.behandelaar_naam),
+ MIN (x.behandelaar_tel),
+ MIN (x.behandelaar_mail),
+ MIN (x.res_discipline_key),
+ x.res_ruimte_key,
+ COUNT ( * ) aant_weken
+ FROM (SELECT x.groepering,
+ x.sortering1,
+ x.sortering2,
+ x.fclt_f_naam,
+ x.naam,
+ x.afd,
+ x.tav,
+ x.aanhef,
+ x.adres,
+ x.postcode,
+ x.plaats,
+ x.factuurdatum,
+ x.ordernr,
+ x.sys_helft,
+ x.dagnaam,
+ x.dagnr,
+ TO_CHAR (x.van, 'hh24:mi') van,
+ TO_CHAR (x.tot, 'hh24:mi') tot,
+ x.res_voorziening,
+ x.aantal,
+ ROUND (
+ DECODE (
+ x.res_rsv_prijs,
+ NULL,
+ DECODE (
+ x.res_type,
+ '1R',
+ DECODE (
+ x.tarief_code,
+ 'V', -- Speciale tarieven igv. lokalen!
+ DECODE (y.khj_tarief,
+ 'H', x.pa, -- Halfjaar
+ 'J', x.pd, -- Jaar
+ x.pm), -- Vast/Kwartaal
+ 'C',
+ x.pa, -- Commercieel!
+ x.po -- Incidenteel!
+ ),
+ x.ps -- 2V/3C!
+ ),
+ x.res_rsv_prijs
+ / DECODE (x.aantal, NULL, 1, 0, 1, x.aantal)
+ ),
+ 2
+ )
+ stuksprijs,
+ ROUND (
+ DECODE (
+ x.res_type,
+ '1R', -- ZIE OOK ONDERSTAANDE - GEVAARLIJKE - AANNAME!
+ COALESCE (
+ x.res_rsv_prijs, -- NULL totdat door MVH "bevroren"
+ --DECODE (x.res_ruimte_key,
+ -- 121, CEIL (x.aantal / 4),
+ -- x.aantal) -- Instructieruimte per dagdeel
+ x.aantal
+ * DECODE (
+ x.tarief_code,
+ 'V', -- Speciale tarieven igv. lokalen!
+ DECODE (y.khj_tarief,
+ 'H', x.pa, -- Halfjaar
+ 'J', x.pd, -- Jaar
+ x.pm), -- Vast/Kwartaal
+ 'C',
+ x.pa, -- Commercieel!
+ x.po -- Incidenteel!
+ )
+ * x.korting
+ ),
+ COALESCE (x.res_rsv_prijs, x.aantal * x.ps) -- 2V/3C!
+ ),
+ 2
+ )
+ bruto,
+ x.onderwerp,
+ SUBSTR (x.datumverzoek, 7, 4)
+ || SUBSTR (x.datumverzoek, 4, 2)
+ || SUBSTR (x.datumverzoek, 1, 2)
+ datumverzoek,
+ x.soortverzoek,
+ x.tarief_code,
+ x.termijnen,
+ x.korting,
+ x.behandelaar_naam,
+ x.behandelaar_tel,
+ x.behandelaar_mail,
+ x.res_discipline_key,
+ x.res_ruimte_key,
+ y.khj_tarief
+ FROM renk_v_verhuurregels_frozen x,
+ renk_v_lokaalverhuur_vast y
+ WHERE x.groepering = y.groepering(+)
+ AND x.sys_helft = y.sys_helft(+)
+ AND x.res_ruimte_key = y.res_ruimte_key(+)) x
+ GROUP BY x.groepering,
+ x.sortering2,
+ x.dagnr,
+ x.van,
+ x.tot,
+ x.res_ruimte_key,
+ x.khj_tarief;
+
/* Formatted on 2-8-2013 10:05:45 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW renk_v_rap_freezereserveringen
(
@@ -3077,7 +3833,7 @@ AS
OR (TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24MISS') BETWEEN '180000'
AND '235959'));
-BEGIN fac.registercustversion('RENK', 6); END;
+BEGIN fac.registercustversion('RENK', 8); END;
/
BEGIN adm.systrackscript('$Workfile: renk.sql $', '$Revision$', 0); END;
/
diff --git a/RWSN/Once/rwsn51.sql b/RWSN/Once/rwsn51.sql
index 9a6dfb5d3..8c6929a44 100644
--- a/RWSN/Once/rwsn51.sql
+++ b/RWSN/Once/rwsn51.sql
@@ -9,11 +9,15 @@ SET ECHO ON
SPOOL xrwsn51.lst
SET DEFINE OFF
--- 41=rwsn_v_noti_aut_ictaanvragen
-DELETE FROM fac_notificatie_job WHERE fac_notificatie_job_key = 41;
-DROP VIEW rwsn_v_noti_aut_ictaanvragen;
+-- RWSN#14925
+UPDATE fac_notificatie_job
+ SET fac_notificatie_job_flags = 1
+ WHERE fac_notificatie_job_view = 'RWSN_V_NOTI_EXTERN';
-DROP VIEW rwsn_v_rap_aut_ictaanvragen;
+COMMIT;
+
+-- RWSN#27455: Aanpassing IDM_PERS-import (van BSN naar RIN)!
+ALTER TABLE rwsn_imp_idm_pers ADD (RIN VARCHAR2(30));
-- 102=BUDGETHOUDER-import
DELETE FROM fac_import WHERE fac_import_app_key = 102;
@@ -28,23 +32,195 @@ DELETE FROM fac_import_app WHERE fac_import_app_key = 142;
DROP PROCEDURE RWSN_IMPORT_ICTCP;
DROP PROCEDURE RWSN_UPDATE_ICTCP;
DROP TABLE RWSN_IMP_ICTCP;
+DROP VIEW rwsn_v_rap_ictcp_expimp;
--- CUST02=101(?) en CUST06=309 vervallen!
-DELETE FROM fac_srtnotificatie WHERE fac_srtnotificatie_key IN (101, 309);
+DROP VIEW rwsn_v_rap_aut_ictaanvragen;
+
+-- CUST02=101 omkatten naar 'opdracht'-node!
+UPDATE fac_srtnotificatie
+ SET fac_srtnotificatie_xmlnode = 'opdracht'
+ WHERE fac_srtnotificatie_key = 101;
+
+-- CUST06=309 omkatten naar (pseudo) MLDREJ-notificatie!
+UPDATE fac_srtnotificatie
+ SET fac_srtnotificatie_oms = 'Uw melding ##KEY## is afgewezen'
+ WHERE fac_srtnotificatie_key = 309;
+
+-- Troux-import!
+CREATE TABLE rwsn_imp_appl
+(
+ spiv_domein VARCHAR2 (60),
+ applicatiecode VARCHAR2 (10),
+ applicatienaam VARCHAR2 (100),
+ aut_proces VARCHAR2 (10),
+ beh_type VARCHAR2 (10),
+ beh_mail VARCHAR2 (60),
+ beh_org VARCHAR2 (10),
+ webbased VARCHAR2 (10),
+ vervaldatum DATE
+);
+
+INSERT INTO fac_import_app (fac_import_app_code,
+ fac_import_app_oms,
+ fac_functie_key,
+ fac_import_app_prefix)
+ SELECT 'APPL',
+ 'Inlezen/bijwerken applicaties (uit Troux)',
+ fac_functie_key,
+ 'RWSN'
+ FROM fac_functie
+ WHERE fac_functie_code = 'WEB_PRSSYS';
+
+COMMIT;
+
+-- Aanmaken kenmerksoorten + kenmerken voor discipline CIV-applicaties (= 2361)!
+-- Delete voorbereide keyuser-kenmerksoorten (NIET op volgorde).
+DELETE FROM ins_srtkenmerk
+ WHERE ins_srtkenmerk_key BETWEEN 106 AND 204
+ AND TO_CHAR (ins_srtkenmerk_aanmaak, 'yyyymmdd') = '20130906';
+
+COMMIT;
+
+-- Insert definitieve keyuser-kenmerksoorten (WEL op volgorde).
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (121,'Keyuser1 NN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (122,'Keyuser2 NN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (123,'Keyuser3 NN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (124,'Keyuser4 NN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (125,'Keyuser5 NN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (126,'Keyuser1 ON', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (127,'Keyuser2 ON', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (128,'Keyuser3 ON', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (129,'Keyuser4 ON', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (130,'Keyuser5 ON', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (131,'Keyuser1 ZN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (132,'Keyuser2 ZN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (133,'Keyuser3 ZN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (134,'Keyuser4 ZN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (135,'Keyuser5 ZN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (136,'Keyuser1 MN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (137,'Keyuser2 MN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (138,'Keyuser3 MN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (139,'Keyuser4 MN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (140,'Keyuser5 MN', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (141,'Keyuser1 WNZ','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (142,'Keyuser2 WNZ','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (143,'Keyuser3 WNZ','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (144,'Keyuser4 WNZ','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (145,'Keyuser5 WNZ','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (146,'Keyuser1 WNM','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (147,'Keyuser2 WNM','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (148,'Keyuser3 WNM','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (149,'Keyuser4 WNM','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (150,'Keyuser5 WNM','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (151,'Keyuser1 ZD', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (152,'Keyuser2 ZD', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (153,'Keyuser3 ZD', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (154,'Keyuser4 ZD', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (155,'Keyuser5 ZD', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (156,'Keyuser1 VWM','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (157,'Keyuser2 VWM','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (158,'Keyuser3 VWM','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (159,'Keyuser4 VWM','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (160,'Keyuser5 VWM','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (161,'Keyuser1 CIV','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (162,'Keyuser2 CIV','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (163,'Keyuser3 CIV','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (164,'Keyuser4 CIV','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (165,'Keyuser5 CIV','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (166,'Keyuser1 GPO','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (167,'Keyuser2 GPO','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (168,'Keyuser3 GPO','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (169,'Keyuser4 GPO','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (170,'Keyuser5 GPO','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (171,'Keyuser1 PPO','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (172,'Keyuser2 PPO','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (173,'Keyuser3 PPO','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (174,'Keyuser4 PPO','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (175,'Keyuser5 PPO','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (176,'Keyuser1 WVL','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (177,'Keyuser2 WVL','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (178,'Keyuser3 WVL','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (179,'Keyuser4 WVL','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (180,'Keyuser5 WVL','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (181,'Keyuser1 CD', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (182,'Keyuser2 CD', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (183,'Keyuser3 CD', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (184,'Keyuser4 CD', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (185,'Keyuser5 CD', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (186,'Keyuser1 BS', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (187,'Keyuser2 BS', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (188,'Keyuser3 BS', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (189,'Keyuser4 BS', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (190,'Keyuser5 BS', 'S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (191,'Keyuser1 RvR','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (192,'Keyuser2 RvR','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (193,'Keyuser3 RvR','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (194,'Keyuser4 RvR','S',461);
+INSERT INTO ins_srtkenmerk (ins_srtkenmerk_key,ins_srtkenmerk_omschrijving,ins_srtkenmerk_kenmerktype,fac_kenmerkdomein_key) VALUES (195,'Keyuser5 RvR','S',461);
+
+COMMIT;
+
+-- Insert definitieve objectsoort-kenmerken (op volgorde).
+INSERT INTO ins_kenmerk (ins_srtkenmerk_key,
+ ins_srtinstallatie_key,
+ ins_kenmerk_niveau,
+ ins_kenmerk_volgnummer,
+ ins_kenmerk_bewerkniveau)
+ SELECT ins_srtkenmerk_key,
+ 2361,
+ 'D',
+ (ins_srtkenmerk_key - 100) * 5,
+ 'S'
+ FROM ins_srtkenmerk
+ WHERE ins_srtkenmerk_key BETWEEN 100 AND 200;
+
+COMMIT;
+
+INSERT INTO fac_usrtab (
+ fac_usrtab_key,
+ fac_usrtab_naam,
+ fac_usrtab_omschrijving
+ )
+ VALUES (2, 'Org2Afkorting', 'Org2Afkorting CIV Aut.proces');
+
+COMMIT;
+
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 2691, 'NN', 1);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 2689, 'ON', 2);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 2690, 'ZN', 3);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 2688, 'MN', 4);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 2686, 'WNZ', 5);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 2685, 'WNN', 6);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 2687, 'ZD', 7);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 2201, 'VWM', 8);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 2682, 'CIV', 9);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 2681, 'GPO', 10);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 3141, 'PPO', 11);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 2692, 'WVL', 12);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 2683, 'CD', 13);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 2684, 'BS', 14);
+INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr) VALUES (2, 32, 'RvR', 15);
+
+COMMIT;
-- Verhuis DBV-ers naar kostenplaatsgroep (als budgethouder)!
-- Aanmaken kostenplaatsgroep per divisie met als budgethouder de budgethouder
--- (DBV) van de kostenplaats van de divisie!
+-- (DBV) van de huidige divisie-kostenplaats!
-- Ook verwijderde DBV-ers???
INSERT INTO prs_kostenplaatsgrp (prs_kostenplaatsgrp_oms, prs_perslid_key)
- SELECT afd.prs_afdeling_naam, kpn.prs_perslid_key
- FROM prs_afdeling afd, prs_kostenplaats kpn
- WHERE afd.prs_afdeling_verwijder IS NULL
+ SELECT afd.prs_afdeling_naam, kp.prs_perslid_key
+ FROM prs_afdeling afd, prs_kostenplaats kp
+ WHERE afd.prs_afdeling_verwijder IS NULL
AND afd.prs_afdeling_parentkey IS NULL
- AND afd.prs_afdeling_omschrijving LIKE 'RWS%' -- Nieuwe diensten!
- AND afd.prs_afdeling_key > 2000 -- Voor de zekerheid!
- AND afd.prs_kostenplaats_key = kpn.prs_kostenplaats_key
- --AND kpn.prs_perslid_key IS NOT NULL
+ --AND afd.prs_afdeling_omschrijving LIKE 'RWS%' -- Nieuwe diensten!
+ --AND afd.prs_afdeling_key > 2000 -- Voor de zekerheid!
+ AND afd.prs_afdeling_key IN
+ (SELECT fac.safe_to_number (fac_usrdata_code)
+ FROM fac_usrdata
+ WHERE fac_usrtab_key = 2)
+ AND afd.prs_kostenplaats_key = kp.prs_kostenplaats_key
+ AND kp.prs_kostenplaats_module = 'PRS' -- Altijd zo!
+ --AND kp.prs_perslid_key IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_kostenplaatsgrp
@@ -53,6 +229,9 @@ INSERT INTO prs_kostenplaatsgrp (prs_kostenplaatsgrp_oms, prs_perslid_key)
COMMIT;
-- Hang kostenplaatsen onder de juiste kostenplaatsgroep!
+-- Aanname: Afdeling-kostenplaats-relatie bij RWS 1-op-1! Theoretisch kan een
+-- kostenplaats aan >1 afdeling hangen; deze update zal dan een fout
+-- geven (bewust zo)!
UPDATE prs_kostenplaats kp
SET kp.prs_kostenplaatsgrp_key =
(SELECT kpg.prs_kostenplaatsgrp_key
@@ -65,7 +244,25 @@ UPDATE prs_kostenplaats kp
AND ab.prs_afdeling_key1 = afd1.prs_afdeling_key
AND afd1.prs_afdeling_naam =
kpg.prs_kostenplaatsgrp_oms)
- WHERE kp.prs_kostenplaatsgrp_key IS NULL;
+ WHERE kp.prs_kostenplaatsgrp_key IS NULL
+ AND kp.prs_kostenplaats_module = 'PRS'
+ AND EXISTS
+ (SELECT 1
+ FROM prs_afdeling afdx,
+ prs_v_afdeling_boom ab,
+ prs_afdeling afd1,
+ prs_kostenplaatsgrp kpg
+ WHERE afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
+ AND afdx.prs_afdeling_key = ab.prs_afdeling_key
+ AND ab.prs_afdeling_key1 = afd1.prs_afdeling_key
+ AND afd1.prs_afdeling_key IN
+ (SELECT fac.safe_to_number (
+ fac_usrdata_code
+ )
+ FROM fac_usrdata
+ WHERE fac_usrtab_key = 2)
+ AND afd1.prs_afdeling_naam =
+ kpg.prs_kostenplaatsgrp_oms);
COMMIT;
@@ -80,20 +277,42 @@ COMMIT;
-- Niet verwijderde leidinggevenden! Of wel???
UPDATE prs_kostenplaats kp
SET kp.prs_perslid_key =
- (SELECT v.prs_key
+ (SELECT vl.prs_key
FROM prs_afdeling afdx,
(SELECT kl.prs_link_key afd_key,
fac.safe_to_number (
kl.prs_kenmerklink_waarde
)
prs_key
- FROM prs_kenmerklink kl
+ FROM prs_v_aanwezigkenmerklink kl -- Actief kenmerkveld!
WHERE kl.prs_kenmerk_key = 1020) vl,
prs_v_aanwezigperslid pl
WHERE afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND afdx.prs_afdeling_key = vl.afd_key
AND vl.prs_key = pl.prs_perslid_key)
- WHERE kp.prs_perslid_key IS NULL;
+ WHERE kp.prs_perslid_key IS NULL AND kp.prs_kostenplaats_module = 'PRS'
+ AND EXISTS
+ (SELECT 1
+ FROM prs_afdeling afdx,
+ prs_v_afdeling_boom ab,
+ (SELECT kl.prs_link_key afd_key,
+ fac.safe_to_number (
+ kl.prs_kenmerklink_waarde
+ )
+ prs_key
+ FROM prs_v_aanwezigkenmerklink kl -- Actief kenmerkveld!
+ WHERE kl.prs_kenmerk_key = 1020) vl,
+ prs_v_aanwezigperslid pl
+ WHERE afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
+ AND afdx.prs_afdeling_key = ab.prs_afdeling_key
+ AND ab.prs_afdeling_key1 IN
+ (SELECT fac.safe_to_number (
+ fac_usrdata_code
+ )
+ FROM fac_usrdata
+ WHERE fac_usrtab_key = 2)
+ AND afdx.prs_afdeling_key = vl.afd_key
+ AND vl.prs_key = pl.prs_perslid_key);
COMMIT;
@@ -105,16 +324,26 @@ INSERT INTO prs_collega (prs_perslid_key, prs_perslid_key_alt)
SELECT DISTINCT vl.prs_key, vc.prs_key
FROM (SELECT kl.prs_link_key afd_key,
fac.safe_to_number (kl.prs_kenmerklink_waarde) prs_key
- FROM prs_kenmerklink kl -- TODO: En afdeling onder nieuwe structuur?
- WHERE kl.prs_kenmerk_key = 1020) vl,
+ FROM prs_v_aanwezigkenmerklink kl, -- Actief kenmerkveld!
+ prs_v_afdeling_boom ab,
+ prs_afdeling afd1
+ WHERE kl.prs_kenmerk_key = 1020
+ AND kl.prs_link_key = ab.prs_afdeling_key
+ AND ab.prs_afdeling_key1 = afd1.prs_afdeling_key
+ AND afd1.prs_afdeling_key IN
+ (SELECT fac.safe_to_number (
+ fac_usrdata_code
+ )
+ FROM fac_usrdata
+ WHERE fac_usrtab_key = 2)) vl, -- Voor de zekerheid!
(SELECT kl.prs_link_key afd_key,
fac.safe_to_number (kl.prs_kenmerklink_waarde) prs_key
- FROM prs_kenmerklink kl
+ FROM prs_v_aanwezigkenmerklink kl -- Actief kenmerkveld!
WHERE kl.prs_kenmerk_key = 1021
UNION ALL
SELECT kl.prs_link_key afd_key,
fac.safe_to_number (kl.prs_kenmerklink_waarde) prs_key
- FROM prs_kenmerklink kl
+ FROM prs_v_aanwezigkenmerklink kl -- Actief kenmerkveld!
WHERE kl.prs_kenmerk_key = 1022) vc,
prs_v_aanwezigperslid pl,
prs_v_aanwezigperslid pc
@@ -134,13 +363,25 @@ COMMIT;
-- Alleen actieve vervangers van actieve leidinggevenden!
-- DB. Een verwijderde persoon kan actieve vervangers hebben (en andersom een
-- actieve persoon verwijderde vervangers)???
--- DB. Een verwijderde persoon kan in een groep zitten (of worden geplaatst)??? -> Via trigger normaal word je bij zetten verwijderdatum verwijderd uit groep(en)!
+-- DB. Een verwijderde persoon kan in een groep zitten (of worden geplaatst)??? -> Trigger verwijdert je normaliter uit groep(en) bij zetten verwijderdatum!
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
- SELECT DISTINCT vl.prs_key, vc.prs_key
+ SELECT DISTINCT 1219, vc.prs_key
FROM (SELECT kl.prs_link_key afd_key,
fac.safe_to_number (kl.prs_kenmerklink_waarde) prs_key
- FROM prs_v_aanwezigkenmerklink kl -- Actief kenmerkveld! -> TODO: Alleen voor afdelingen onder nieuwe structuur?
- WHERE kl.prs_kenmerk_key = 1020) vl,
+ FROM prs_v_aanwezigkenmerklink kl, -- Actief kenmerkveld!
+ prs_v_afdeling_boom ab,
+ prs_afdeling afd1
+ WHERE kl.prs_kenmerk_key = 1020
+ AND kl.prs_link_key = ab.prs_afdeling_key
+ AND ab.prs_afdeling_key1 = afd1.prs_afdeling_key
+ --AND afd1.prs_afdeling_omschrijving LIKE 'RWS%' -- Nieuwe diensten!
+ --AND afd1.prs_afdeling_key > 2000) vl,
+ AND afd1.prs_afdeling_key IN
+ (SELECT fac.safe_to_number (
+ fac_usrdata_code
+ )
+ FROM fac_usrdata
+ WHERE fac_usrtab_key = 2)) vl, -- Voor de zekerheid!
(SELECT kl.prs_link_key afd_key,
fac.safe_to_number (kl.prs_kenmerklink_waarde) prs_key
FROM prs_v_aanwezigkenmerklink kl -- Actief kenmerkveld!
@@ -154,106 +395,121 @@ INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
prs_v_aanwezigperslid pc
WHERE vl.afd_key = vc.afd_key
AND vl.prs_key = pl.prs_perslid_key
- AND vc.prs_key = pc.prs_perslid_key;
+ AND vc.prs_key = pc.prs_perslid_key
+ AND NOT EXISTS
+ (SELECT 1
+ FROM fac_gebruikersgroep
+ WHERE fac_groep_key = 1219
+ AND prs_perslid_key = vc.prs_key);
COMMIT;
--- Verwijder *alle* huidige (mede-)leidinggevenden! Of toch voorlopig niet en handhaven als bron voor bijwerken?
---UPDATE prs_kenmerklink
--- SET prs_kenmerklink_verwijder = SYSDATE
--- WHERE prs_kenmerk_key IN (1020, 1021, 1022)
--- AND prs_kenmerklink_niveau = 'A';
-
---COMMIT;
-
--- HANDIG!!!
--- Verwijderde Leidinggevenden!
- SELECT afd.prs_afdeling_key,
- afd.prs_afdeling_naam,
- afd.prs_afdeling_omschrijving,
- pl.prs_perslid_key,
- pl.prs_perslid_naam_full naam
- FROM (SELECT kl.prs_link_key afd_key,
- fac.safe_to_number (kl.prs_kenmerklink_waarde) prs_key
- FROM prs_v_aanwezigkenmerklink kl -- Actief kenmerkveld!
- WHERE kl.prs_kenmerk_key = 1020) vl,
- prs_afdeling afd,
- prs_v_perslid_fullnames_all pl
- WHERE vl.afd_key = afd.prs_afdeling_key
- AND afd.prs_afdeling_verwijder IS NULL -- Actieve afdeling!
- AND vl.prs_key = pl.prs_perslid_key
- AND NOT EXISTS (SELECT 1
- FROM prs_v_aanwezigperslid
- WHERE prs_perslid_key = vl.prs_key)
-ORDER BY 5,
- 1,
- 2,
- 3;
-
--- Verwijderde mede-leidinggevenden!
- SELECT afd.prs_afdeling_key,
- afd.prs_afdeling_naam,
- afd.prs_afdeling_omschrijving,
- pc.prs_perslid_key,
- pc.prs_perslid_naam_full naam
- FROM (SELECT kl.prs_link_key afd_key,
- fac.safe_to_number (kl.prs_kenmerklink_waarde) prs_key
- FROM prs_v_aanwezigkenmerklink kl -- Actief kenmerkveld!
- WHERE kl.prs_kenmerk_key = 1021
- UNION ALL
- SELECT kl.prs_link_key afd_key,
- fac.safe_to_number (kl.prs_kenmerklink_waarde) prs_key
- FROM prs_v_aanwezigkenmerklink kl -- Actief kenmerkveld!
- WHERE kl.prs_kenmerk_key = 1022) vc,
- prs_afdeling afd,
- prs_v_perslid_fullnames_all pc
- WHERE vc.afd_key = afd.prs_afdeling_key
- AND afd.prs_afdeling_verwijder IS NULL -- Actieve afdeling!
- AND vc.prs_key = pc.prs_perslid_key
- AND NOT EXISTS (SELECT 1
- FROM prs_v_aanwezigperslid
- WHERE prs_perslid_key = vc.prs_key)
-ORDER BY 5,
- 1,
- 2,
- 3;
-
--- GEEN leidinggevende en WEL mede-leidinggevenden!
- SELECT afd.prs_afdeling_key,
- afd.prs_afdeling_naam,
- afd.prs_afdeling_omschrijving,
- pc.prs_perslid_key,
- pc.prs_perslid_naam_full naam
- FROM (SELECT kl.prs_link_key afd_key,
- fac.safe_to_number (kl.prs_kenmerklink_waarde) prs_key
- FROM prs_v_aanwezigkenmerklink kl -- Actief kenmerkveld!
- WHERE kl.prs_kenmerk_key = 1021
- UNION ALL
- SELECT kl.prs_link_key afd_key,
- fac.safe_to_number (kl.prs_kenmerklink_waarde) prs_key
- FROM prs_v_aanwezigkenmerklink kl -- Actief kenmerkveld!
- WHERE kl.prs_kenmerk_key = 1022) vc,
- prs_afdeling afd,
- prs_v_aanwezigperslid p,
- prs_v_perslid_fullnames_all pc
- WHERE vc.afd_key = afd.prs_afdeling_key
- AND afd.prs_afdeling_verwijder IS NULL -- Actieve afdeling!
- AND vc.prs_key = p.prs_perslid_key
- AND p.prs_perslid_key = pc.prs_perslid_key
- AND NOT EXISTS
- (SELECT 1
- FROM prs_v_aanwezigkenmerklink kl
- WHERE kl.prs_kenmerk_key = 1020
- AND kl.prs_link_key = vc.afd_key)
-ORDER BY 3;
-
--- RWSN#14925
-UPDATE fac_notificatie_job
- SET fac_notificatie_job_flags = 1
- WHERE fac_notificatie_job_view = 'RWSN_V_NOTI_EXTERN';
+INSERT INTO fac_profiel (fac_profiel_key, fac_profiel_omschrijving, fac_profiel_limiet) VALUES (1, 'Default', 0);
+INSERT INTO fac_profiel (fac_profiel_key, fac_profiel_omschrijving, fac_profiel_limiet) VALUES (2, 'Beheerder', 1);
+INSERT INTO fac_profiel (fac_profiel_key, fac_profiel_omschrijving, fac_profiel_limiet) VALUES (3, 'Leidinggevende', 2);
+INSERT INTO fac_profiel (fac_profiel_key, fac_profiel_omschrijving, fac_profiel_limiet) VALUES (4, 'DBV', 3);
COMMIT;
+UPDATE prs_perslid p
+ SET p.fac_profiel_key = 4
+ WHERE p.prs_perslid_verwijder IS NULL
+ AND EXISTS (SELECT 1
+ FROM prs_kostenplaatsgrp
+ WHERE prs_perslid_key = p.prs_perslid_key);
+UPDATE prs_perslid p
+ SET p.fac_profiel_key = 4
+ WHERE p.prs_perslid_verwijder IS NULL
+ AND EXISTS
+ (SELECT 1
+ FROM prs_collega c,
+ fac_gebruikersgroep gg,
+ prs_kostenplaatsgrp kpg
+ WHERE c.prs_perslid_key_alt = p.prs_perslid_key
+ AND c.prs_perslid_key_alt = gg.prs_perslid_key
+ AND gg.fac_groep_key = 1219
+ AND c.prs_perslid_key = kpg.prs_perslid_key);
+UPDATE prs_perslid p
+ SET p.fac_profiel_key = 3
+ WHERE p.prs_perslid_verwijder IS NULL
+ AND COALESCE (p.fac_profiel_key, 0) < 3
+ AND EXISTS
+ (SELECT 1
+ FROM prs_kostenplaats
+ WHERE prs_perslid_key = p.prs_perslid_key
+ AND prs_kostenplaats_verwijder IS NULL);
+UPDATE prs_perslid p
+ SET p.fac_profiel_key = 3
+ WHERE p.prs_perslid_verwijder IS NULL
+ AND COALESCE (p.fac_profiel_key, 0) < 3
+ AND EXISTS
+ (SELECT 1
+ FROM prs_collega c,
+ fac_gebruikersgroep gg,
+ prs_kostenplaats kp
+ WHERE c.prs_perslid_key_alt = p.prs_perslid_key
+ AND c.prs_perslid_key_alt = gg.prs_perslid_key
+ AND gg.fac_groep_key = 1219
+ AND c.prs_perslid_key = kp.prs_perslid_key);
+UPDATE prs_perslid p
+ SET p.fac_profiel_key = 2
+ WHERE p.prs_perslid_verwijder IS NULL
+ AND COALESCE (p.fac_profiel_key, 0) < 2
+ AND prs_perslid_key IN
+ (SELECT fac.safe_to_number (kd.ins_kenmerkdeel_waarde)
+ FROM ins_kenmerkdeel kd, ins_kenmerk k
+ WHERE kd.ins_kenmerkdeel_verwijder IS NULL
+ AND kd.ins_kenmerk_key = k.ins_kenmerk_key
+ AND k.ins_srtkenmerk_key BETWEEN 103 AND 200);
+UPDATE prs_perslid p
+ SET p.fac_profiel_key = 1
+ WHERE p.prs_perslid_verwijder IS NULL
+ AND COALESCE (p.fac_profiel_key, 0) < 1;
+
+COMMIT;
+
+-- Rapportage tbv. FBs/KEYs (64=WEB_USER01)
+CREATE OR REPLACE VIEW rwsn_v_rap_aut_ictbeheer AS SELECT NULL x FROM DUAL;
+INSERT INTO FAC_USRRAP
+ (fac_usrrap_omschrijving, fac_usrrap_view_name,
+ fac_usrrap_in_huidige_locatie,
+ fac_usrrap_template, fac_usrrap_macro,
+ fac_usrrap_vraagbegindatum, fac_usrrap_vraageinddatum,
+ fac_usrrap_functie,
+ fac_usrrap_info,
+ fac_functie_key, fac_usrrap_autorefresh
+ )
+ VALUES ('CIV: Te autoriseren applicatie aanvragen', 'RWSN_V_RAP_AUT_ICTBEHEER',
+ NULL,
+ NULL, NULL,
+ 0, 0,
+ 1,
+ 'Overzicht van te behandelen aanvragen door FB-er of Key-user.',
+ 64,
+ 0
+ );
+
+-- RWSN#27941: Rapportage CIV-specials (61=WEB_PRSSYS)
+CREATE OR REPLACE VIEW rwsn_v_rap_civ_specials AS SELECT NULL x FROM DUAL;
+INSERT INTO FAC_USRRAP
+ (fac_usrrap_omschrijving, fac_usrrap_view_name,
+ fac_usrrap_in_huidige_locatie,
+ fac_usrrap_template, fac_usrrap_macro,
+ fac_usrrap_vraagbegindatum, fac_usrrap_vraageinddatum,
+ fac_usrrap_functie,
+ fac_usrrap_info,
+ fac_functie_key, fac_usrrap_autorefresh
+ )
+ VALUES ('CIV: Contactgegevens per product/dienst', 'RWSN_V_RAP_CIV_SPECIALS',
+ NULL,
+ NULL, NULL,
+ 0, 0,
+ 0,
+ 'RWSN#27941',
+ 61,
+ 0
+ );
+
BEGIN adm.systrackscript('$Workfile: rwsn51.sql $', '$Revision$', 0); END;
/
SPOOL OFF
diff --git a/RWSN/Once/rwsn52.sql b/RWSN/Once/rwsn52.sql
new file mode 100644
index 000000000..684f80bd1
--- /dev/null
+++ b/RWSN/Once/rwsn52.sql
@@ -0,0 +1,1040 @@
+-- Customer specific once-script RWSN52.
+--
+-- (c) 2013 SG|facilitor bv
+-- $Revision$
+-- $Id$
+--
+-- Support: +31 53 4800700
+SET ECHO ON
+SPOOL xrwsn52.lst
+SET DEFINE OFF
+
+-- RWSN#27455: Aanpassing IDM-koppeling (van BSN naar RIN); tbv. levering naar
+-- Test nu nog in rwsn52, maar later (TODO) opnemen in rwsn.sql!!!
+CREATE OR REPLACE PROCEDURE rwsn_update_idm_pers (p_import_key IN NUMBER)
+AS
+ /* Globale werking:
+ Op basis van het IDM importbestand
+ -- worden personen toegevoegd aan (vereist) bestaande afdelingen
+ -- worden onderwijl functie aangemaakt, zonodig
+ -- worden werkplekken gedefinieerd zomogelijk (vertaaltabel)
+ -- worden vervallen personen verwijderd
+ (c) SG|facilitor bv
+ */
+ -- Constanten
+ c_verdieping_omschr_default VARCHAR2 (16) := 'Begane grond';
+ c_srtruimte_default INTEGER := 1;
+ c_ruimte_code VARCHAR2 (3) := '001';
+ c_ruimte_omschr_default VARCHAR2 (16) := 'Onbekend';
+ c_werkplek_volgnr_default INTEGER := 1;
+ c_prs_werkplek_omschrijving VARCHAR2 (16) := '1';
+ c_default_profiel_key NUMBER (10) := 1;
+ c_rin_kkey NUMBER (10) := 1160;
+ c_commitbuffer NUMBER := 1000;
+ -- om de zoveel committen
+ v_buffercount NUMBER := 0;
+
+ -- Personen die moeten vervallen zijn personen die:
+ --- volgens de importregels zijn ingevoerd (ignore handmatige)
+ --- in de import voorkomen en een einddatum hebben die voorbij is
+ --- of niet in de import voorkomen
+ -- en die nog niet vervallen waren
+ -- personeelsnummer=BSN uit de importtabel mapt op prs_perslid_authenticatie => per RWSN52 vervallen!
+ -- RIN uit de importtabel mapt op kenmerk met key=1160
+ -- dienstverbandid uit de importtabel (SAPHRnummer) mapt op prs_perslid_nr
+ CURSOR c_prs_del
+ IS
+ SELECT p.prs_perslid_key,
+ pf.prs_perslid_naam_full,
+ kl.prs_kenmerklink_waarde rin
+ FROM prs_perslid p,
+ prs_v_perslid_fullnames_all pf,
+ prs_v_aanwezigkenmerklink kl
+ WHERE p.prs_perslid_verwijder IS NULL -- is niet al verwijderd
+ AND p.prs_perslid_key = pf.prs_perslid_key
+ AND p.prs_perslid_key = kl.prs_link_key
+ AND kl.prs_kenmerk_key = c_rin_kkey -- is ooit geimporteerd
+ AND NOT EXISTS -- komt niet voor in import
+ (SELECT 1
+ FROM rwsn_imp_idm_pers
+ WHERE UPPER (rin) = UPPER (kl.prs_kenmerklink_waarde))
+ UNION ALL
+ SELECT p.prs_perslid_key,
+ pf.prs_perslid_naam_full,
+ kl.prs_kenmerklink_waarde rin
+ FROM prs_perslid p,
+ prs_v_perslid_fullnames_all pf,
+ prs_v_aanwezigkenmerklink kl
+ WHERE p.prs_perslid_verwijder IS NULL -- is niet al verwijderd
+ AND p.prs_perslid_key = pf.prs_perslid_key
+ AND p.prs_perslid_key = kl.prs_link_key
+ AND kl.prs_kenmerk_key = c_rin_kkey -- is ooit geimporteerd
+ AND NOT EXISTS -- is beeindigd volgens import (geen persoon-regels met einddatum in toekomst)
+ (SELECT 1
+ FROM rwsn_imp_idm_pers
+ WHERE UPPER (rin) = UPPER (kl.prs_kenmerklink_waarde)
+ AND COALESCE (einddatum,SYSDATE + 1) > SYSDATE)
+ ORDER BY 3, 1;
+
+ -- Personen die nieuw of gewijzigd zijn
+ --- Reeds eerder verwijderde personen kunnen worden gereactiveerd (.. check)
+ -- Dubbele dienstverbanden wordt achter elkaar ingelezen en overschrijven elkaar dus.
+ -- In de volgorde is de laatste einddatum het laatst aan de beurt. Dit is vaak het
+ -- permanente contract tot jaar 9999.
+ CURSOR c_prs_upd
+ IS
+ SELECT p.prs_perslid_key, idm.locatiecode alg_locatie_code, idm.afdelingscode prs_afdeling_naam,
+ idm.persoonachternaam prs_perslid_naam, idm.tussenvoegsel prs_perslid_tussenvoegsel,
+ idm.voorletters prs_perslid_voorletters, idm.voornaam prs_perslid_voornaam,
+ idm.telefoonnummer prs_perslid_telefoonnr, idm.functie prs_srtperslid_omschrijving, idm.rin,
+ idm.personeelsnummer personeelsnummer, idm.titel prs_perslid_titel, p.prs_perslid_verwijder,
+ idm.begindatum, idm.einddatum, idm.mobielnummer, idm.email, idm.loginnaam, idm.dienstverbandguid,
+ idm.dienstverbandid, idm.bezoekadresnaam, idm.bezoekadresnummer, idm.bezoekadrespostcode,
+ idm.bezoekadresplaats, idm.aanduidingnaamgebruik, idm.partnertussenvoegsel, idm.partnernaam
+ FROM (SELECT *
+ FROM rwsn_imp_idm_pers
+ WHERE einddatum > SYSDATE) idm
+ LEFT JOIN
+ (SELECT kl.prs_kenmerklink_waarde rin,
+ p.prs_perslid_key,
+ p.prs_perslid_verwijder
+ FROM prs_perslid p, prs_v_aanwezigkenmerklink kl
+ WHERE p.prs_perslid_key = kl.prs_link_key
+ AND kl.prs_kenmerk_key = c_rin_kkey) p
+ ON idm.rin = p.rin
+ ORDER BY idm.rin, idm.einddatum, prs_perslid_key DESC;
+
+ v_perslid_key NUMBER (10);
+ v_prs_key_cnt NUMBER (10);
+ v_srtperslid_key NUMBER (10);
+ v_afdeling_key NUMBER (10);
+ v_srtperslid_omschr VARCHAR2 (30);
+ oracle_err_num NUMBER;
+ oracle_err_mes VARCHAR2 (200);
+ v_errormsg VARCHAR2 (1000);
+ v_errorhint VARCHAR2 (1000);
+ v_count NUMBER (10);
+ v_update BOOLEAN;
+ v_perslid_count_imp NUMBER;
+ v_perslid_count_fclt NUMBER;
+ v_perslid_newcount_fclt NUMBER;
+ currentversion fac_module.fac_module_version%TYPE;
+ v_newgebouwkey NUMBER;
+ lnaampresentatie VARCHAR2 (100);
+ ltussenvoegselpres VARCHAR2 (100);
+ lemail VARCHAR2 (100);
+ llogin1 VARCHAR2 (100);
+ llogin2 VARCHAR2 (100);
+
+
+ -- Bepaal het gebouw behorende bij postcode en nummer (best guess!)
+ -- Return -1 als het niet bepaald kan worden
+ FUNCTION getgebouwkey (postcode IN VARCHAR2, nummer IN VARCHAR2)
+ RETURN NUMBER
+ IS
+ llocatiekey alg_locatie.alg_locatie_key%TYPE;
+ lgebouwkey alg_gebouw.alg_gebouw_key%TYPE;
+ BEGIN
+ IF postcode IS NULL
+ THEN
+ RETURN -1;
+ END IF;
+
+ SELECT NVL (MIN (alg_locatie_key), -1)
+ INTO llocatiekey
+ FROM mld_adres m
+ WHERE m.mld_adres_bezoek_postcode = postcode
+ AND UPPER(SUBSTR(RTRIM(m.mld_adres_bezoek_adres), INSTR(RTRIM(m.mld_adres_bezoek_adres), ' ', -1)+1))
+ = UPPER(nummer) ;
+
+ IF llocatiekey <> -1
+ THEN
+ SELECT NVL (MIN (alg_gebouw_key), -1)
+ INTO lgebouwkey
+ FROM alg_gebouw
+ WHERE alg_gebouw_verwijder IS NULL AND alg_locatie_key = llocatiekey;
+ ELSE
+ lgebouwkey := -1;
+ END IF;
+
+ RETURN lgebouwkey;
+ END;
+
+ -- Het login veld in het importbestand heeft de onzalige eigenschap
+ -- dat er soms meerdere in staan, gescheiden door een , (komma)
+ -- Deze functie vertaalt dit veld tot een goede login
+ -- Op dit moment is dat het eerste adres. Tenzij de bestaande login voorkomt
+ -- in de lijst.
+ PROCEDURE handle_login (plogin IN VARCHAR2, p_perslid_key IN NUMBER, login1 OUT VARCHAR2, login2 OUT VARCHAR2)
+ IS
+ l_login_str rwsn_imp_idm_pers.loginnaam%TYPE;
+ BEGIN
+ l_login_str := UPPER(plogin);
+ IF p_perslid_key IS NOT NULL THEN
+ -- bestaand persoon
+ SELECT prs_perslid_oslogin, prs_perslid_oslogin2
+ INTO login1, login2
+ FROM prs_perslid
+ WHERE prs_perslid_key = p_perslid_key;
+ IF login1 = login2 THEN
+ login2 := NULL;
+ END IF;
+ IF login1 IS NOT NULL AND INSTR(','||l_login_str||',', ','||login1||',') > 0 THEN
+ -- 1e login is niet leeg en is gevonden in login lijst
+ -- we hoeven niets te doen
+ NULL;
+ ELSE
+ -- 1e login is niet gevonden of is leeg
+ -- controleer of er meerdere logins op de regel staan
+ IF INSTR (l_login_str, ',') > 0 THEN
+ login1 := SUBSTR (l_login_str, 1, INSTR (l_login_str, ',') - 1);
+ ELSE
+ login1 := l_login_str;
+ END IF;
+ IF login1 = login2 THEN
+ login2 := NULL;
+ END IF;
+ END IF;
+
+ IF login2 IS NOT NULL AND INSTR(','||l_login_str||',', ','||login2||',') > 0 THEN
+ -- 2e login is niet leeg en is gevonden in login lijst
+ -- we hoeven niets te doen
+ NULL;
+ ELSE
+ -- 2e login is niet gevonden of is leeg
+ login2 := SUBSTR (l_login_str, 1, INSTR (l_login_str, ',') - 1);
+ IF login1 = login2 THEN
+ -- ga op zoek naar de volgende
+ l_login_str := SUBSTR(l_login_str, INSTR (l_login_str, ',')+1);
+ IF INSTR (l_login_str, ',') > 0 THEN
+ login2 := SUBSTR (l_login_str, 1, INSTR (l_login_str, ',') - 1);
+ ELSE
+ login2 := l_login_str;
+ END IF;
+ END IF;
+ END IF;
+
+ ELSE
+
+ IF INSTR (l_login_str, ',') > 0
+ THEN
+ login1 := SUBSTR (l_login_str, 1, INSTR (l_login_str, ',') - 1);
+ l_login_str := SUBSTR(l_login_str, INSTR (l_login_str, ',')+1);
+ IF INSTR (l_login_str, ',') > 0 THEN
+ login2 := SUBSTR (l_login_str, 1, INSTR (l_login_str, ',') - 1);
+ ELSE
+ login2 := l_login_str;
+ END IF;
+ ELSE
+ login1 := l_login_str;
+ login2 := null;
+ END IF;
+ END IF;
+ END;
+
+ -- Het emailveld in het importbestand heeft de onzalige eigenschap
+ -- dat er soms meerdere in staan, gescheiden door een , (komma)
+ -- Deze functie vertaalt dit veld tot een goed emailadressen
+ -- Op dit moment nemen we alle email adressen over zodat de
+ -- gebruiker meerdere mailtjes krijgt.
+ FUNCTION handle_email (pemail IN VARCHAR2)
+ RETURN VARCHAR2
+ IS
+ rstr rwsn_imp_idm_pers.email%TYPE;
+ BEGIN
+ rstr := pemail;
+ RETURN rstr;
+ END;
+
+ -- Procedure die alles regelt voor de locatie van een persoon, varierend van
+ -- NIKS: als plaats ongeldig is of de huidige situatie al goed is
+ -- ZETTEN OP EEN BESTAANDE WERKPLEK
+ -- VERDIEPING/RUIMTE/WERKPLEK AANMAKEN EN TOEKENNEN
+ PROCEDURE handle_location (pkey IN NUMBER, pgebouwkey IN VARCHAR2, prin IN VARCHAR2)
+ IS
+ lv_errormsg VARCHAR2 (1000);
+ lv_errorhint VARCHAR2 (1000);
+ lv_nr_werkplek NUMBER;
+ lv_current_gebouw_key NUMBER;
+ lv_verdieping_key NUMBER (10);
+ lv_ruimte_key NUMBER (10);
+ lv_werkplek_key NUMBER (10);
+ BEGIN
+ lv_errormsg := 'Toekennen van een plaats';
+
+ IF pgebouwkey = -1
+ THEN
+ lv_errorhint := 'Onbekend gebouw voor persoon/RIN: ' || prin;
+ fac.imp_writelog (p_import_key, 'W', lv_errormsg, lv_errorhint);
+ RETURN;
+ END IF;
+
+ -- komt de nieuwe werkplek al voor bij een van de bestaande werkplekken?
+ SELECT COUNT (*)
+ INTO lv_nr_werkplek
+ FROM prs_perslidwerkplek pw, prs_werkplek w, alg_ruimte r, alg_verdieping v
+ WHERE pw.prs_werkplek_key = w.prs_werkplek_key
+ AND nvl(w.prs_werkplek_virtueel, 0) <> 1
+ AND w.prs_alg_ruimte_key = r.alg_ruimte_key
+ AND r.alg_verdieping_key = v.alg_verdieping_key
+ AND prs_perslid_key = pkey
+ AND v.alg_gebouw_key = pgebouwkey;
+
+ IF lv_nr_werkplek > 0
+ THEN
+ -- nieuwe werkplek bestaat al als een van de werkplekken.
+ lv_errorhint := 'Ongewijzigd gebouw voor persoon/RIN: ' || prin;
+ fac.imp_writelog (p_import_key, 'I', lv_errormsg, lv_errorhint);
+ RETURN;
+ END IF;
+
+ -- verwijder de bestaande werkplekken.
+ -- HdZ (6-8-2009: werkplekken mogen nog niet verwijderd worden via de koppeling.
+ -- werkplekken worden nog vaak handmatig aangemaakt.
+ --DELETE prs_perslidwerkplek WHERE prs_perslid_key = pkey;
+
+ -- Er moet wat gebeuren, plaatsen of verplaatsen
+ -- Vooralsnog even (bij)plaatsen
+ -- De gebouwkey is bekend, dus het gebouw ook.
+ -- Dan zoeken we naar de laagste verdieping en laagste ruimtenr
+ -- en dan maken we daarvoor een werkplek aan
+ IF lv_nr_werkplek = 0
+ THEN
+ -- persoon heeft geen werkplek(ken)
+ BEGIN
+ lv_errormsg := 'Bepalen verdieping';
+
+ SELECT alg_verdieping_key
+ INTO lv_verdieping_key
+ FROM alg_verdieping
+ WHERE alg_gebouw_key = pgebouwkey AND alg_verdieping_verwijder IS NULL AND alg_verdieping_upper like '%BEGANE GROND%';
+ EXCEPTION
+ WHEN NO_DATA_FOUND
+ THEN
+ v_errorhint := 'Begane grond toevoegen voor persoon/RIN: ' || prin;
+
+ INSERT INTO alg_verdieping
+ (alg_gebouw_key, alg_verdieping_omschrijving, alg_verdieping_volgnr, alg_verdieping_code)
+ VALUES (pgebouwkey, c_verdieping_omschr_default, 0, '0')
+ RETURNING alg_verdieping_key
+ INTO lv_verdieping_key;
+ END;
+
+ -- lv_verdieping_key bekend
+ BEGIN
+ -- zoek de laagste ruimte op deze verdieping
+ SELECT alg_ruimte_key
+ INTO lv_ruimte_key
+ FROM alg_ruimte
+ WHERE alg_verdieping_key = lv_verdieping_key
+ AND alg_ruimte_verwijder IS NULL
+ AND alg_ruimte_nr = (SELECT MIN (alg_ruimte_nr)
+ FROM alg_ruimte
+ WHERE alg_verdieping_key = lv_verdieping_key AND alg_ruimte_verwijder IS NULL);
+ EXCEPTION
+ WHEN NO_DATA_FOUND
+ THEN
+ v_errorhint := 'Ruimte toevoegen voor persoon/RIN: ' || prin;
+
+ -- Noot: de srtruimte 1 moet bestaan
+ INSERT INTO alg_ruimte
+ (alg_verdieping_key, alg_srtruimte_key, alg_ruimte_nr, alg_ruimte_omschrijving)
+ VALUES (lv_verdieping_key, c_srtruimte_default, c_ruimte_code, c_ruimte_omschr_default)
+ RETURNING alg_ruimte_key
+ INTO lv_ruimte_key;
+ END;
+
+ -- lv_ruimte_key bekend
+ BEGIN
+ SELECT prs_werkplek_key
+ INTO lv_werkplek_key
+ FROM prs_werkplek
+ WHERE prs_alg_ruimte_key = lv_ruimte_key
+ AND prs_werkplek_volgnr = c_werkplek_volgnr_default;
+ -- Altijd werkplek met deze notatie!
+ EXCEPTION
+ WHEN NO_DATA_FOUND
+ THEN
+ v_errorhint := 'Werkplek toevoegen voor persoon/RIN: ' || prin;
+
+ -- WEL/NIET VIRTUEEL?
+ INSERT INTO prs_werkplek
+ (prs_werkplek_volgnr, prs_werkplek_omschrijving, prs_alg_ruimte_key, prs_werkplek_virtueel)
+ VALUES (c_werkplek_volgnr_default, c_prs_werkplek_omschrijving, lv_ruimte_key, 0)
+ RETURNING prs_werkplek_key
+ INTO lv_werkplek_key;
+ -- Altijd werkplek met deze notatie!
+ END;
+
+ -- lv_werkplek_key bekend
+ -- 11-12-2009/MvdH - Unique constraint exception igv. virtuele werkplek? Volgens mij wel, maar niet opgelost!
+ INSERT INTO prs_perslidwerkplek
+ (prs_perslid_key, prs_werkplek_key, prs_perslidwerkplek_bezetting)
+ VALUES (pkey, lv_werkplek_key, 0);
+ END IF;
+ END;
+
+ PROCEDURE update_adres
+ AS
+ CURSOR cadressen
+ IS
+ SELECT DISTINCT
+ substr(bezoekadresplaats || '-' || bezoekadresnaam,1,30) adres_naam
+ , substr(bezoekadresnaam || ' ' || bezoekadresnummer,1,35) adres_bezoek_adres
+ , substr(bezoekadrespostcode,1,12) adres_bezoek_postcode
+ , substr(bezoekadresplaats, 1, 30) adres_bezoek_plaats
+ FROM rwsn_imp_idm_pers
+ WHERE bezoekadrespostcode IS NOT NULL;
+
+ ladreskey NUMBER (10);
+ l_newcount NUMBER;
+ l_impcount NUMBER;
+ v_errormsg VARCHAR (200);
+ oracle_err_mes VARCHAR2 (150);
+ currentversion fac_module.fac_module_version%TYPE;
+ BEGIN
+
+ FOR rc IN cadressen
+ LOOP
+ -- Bestaat deze al?
+ -- Er is geen key, dus checken we op alle velden
+ -- Een update is dus nvt
+ BEGIN
+ SELECT mld_adres_key
+ INTO ladreskey
+ FROM mld_adres
+ WHERE mld_adres_naam = rc.adres_naam
+ AND mld_adres_bezoek_postcode = rc.adres_bezoek_postcode
+ AND mld_adres_bezoek_adres = rc.adres_bezoek_adres
+ AND mld_adres_bezoek_plaats = rc.adres_bezoek_plaats;
+ EXCEPTION
+ WHEN NO_DATA_FOUND
+ THEN
+ ladreskey := -1;
+ END;
+
+-- DBMS_OUTPUT.put_line (rc.adres_naam);
+
+ IF ladreskey = -1
+ THEN
+ INSERT INTO mld_adres
+ (mld_adres_naam,
+ mld_adres_bezoek_adres,
+ mld_adres_bezoek_postcode,
+ mld_adres_bezoek_plaats,
+ mld_adres_afleveradres
+ )
+ VALUES (rc.adres_naam, rc.adres_bezoek_adres, rc.adres_bezoek_postcode, rc.adres_bezoek_plaats, 1);
+
+ fac.imp_writelog (p_import_key, 'I', 'Adres is toegevoegd', rc.adres_naam);
+ END IF;
+ END LOOP;
+
+ -- Zoek de locatiekey bij het adres op basis van postcode
+ -- Als er meerdere locaties matchen pak ik de oudste (=grootste?)
+ UPDATE mld_adres
+ SET alg_locatie_key =
+ (SELECT MIN (l.alg_locatie_key)
+ FROM alg_locatie l
+ WHERE l.alg_locatie_postcode = mld_adres_bezoek_postcode
+ AND UPPER(SUBSTR(RTRIM(l.alg_locatie_adres), INSTR(RTRIM(l.alg_locatie_adres), ' ', -1))) = UPPER(SUBSTR(mld_adres_bezoek_adres, INSTR(mld_adres_bezoek_adres, ' ', -1)))
+ AND l.alg_locatie_verwijder IS NULL)
+ WHERE mld_adres_verwijder IS NULL AND alg_locatie_key IS NULL;
+ END;
+
+
+ PROCEDURE update_dienstverbandguid(p_prs_perslid_key IN NUMBER, p_dienstverbandguid IN VARCHAR2)
+ AS
+ v_prs_kenmerk_key NUMBER;
+ v_prs_kenmerklink_key NUMBER;
+ BEGIN
+ BEGIN
+ -- check for dienstverbandguid kenmerk
+ SELECT prs_kenmerk_key
+ INTO v_prs_kenmerk_key
+ FROM prs_v_aanwezigkenmerk
+ WHERE prs_kenmerk_omschrijving = 'DienstverbandGUID';
+ EXCEPTION WHEN NO_DATA_FOUND THEN
+ INSERT INTO prs_kenmerk
+ ( PRS_KENMERK_NIVEAU
+ , PRS_KENMERK_VOLGNR
+ , PRS_KENMERK_OMSCHRIJVING
+ , PRS_KENMERK_KENMERKTYPE
+ , PRS_KENMERK_LENGTE)
+ VALUES ( 'P'
+ , 10
+ , 'DienstverbandGUID'
+ , 'C'
+ , 49
+ )
+ RETURNING prs_kenmerk_key
+ INTO v_prs_kenmerk_key;
+ END;
+ BEGIN
+ SELECT prs_kenmerklink_key
+ INTO v_prs_kenmerklink_key
+ FROM prs_kenmerklink
+ WHERE prs_kenmerk_key = v_prs_kenmerk_key
+ AND prs_link_key = p_prs_perslid_key
+ AND prs_kenmerklink_niveau = 'P';
+ EXCEPTION WHEN NO_DATA_FOUND THEN
+ INSERT INTO PRS_KENMERKLINK
+ ( PRS_LINK_KEY
+ , PRS_KENMERKLINK_NIVEAU
+ , PRS_KENMERK_KEY
+ , PRS_KENMERKLINK_WAARDE)
+ VALUES ( p_prs_perslid_key
+ , 'P'
+ , v_prs_kenmerk_key
+ , p_dienstverbandguid);
+ END;
+ UPDATE prs_kenmerklink
+ SET prs_kenmerklink_waarde = p_dienstverbandguid
+ WHERE prs_kenmerklink_key = v_prs_kenmerklink_key;
+ END;
+
+
+
+----------------------
+----------------------
+----------------------
+----------------------
+----------------------
+-- MAIN PROCEDURE
+----------------------
+----------------------
+----------------------
+----------------------
+----------------------
+BEGIN
+ SELECT MAX (fac_module_version)
+ INTO currentversion
+ FROM fac_module;
+
+ fac.imp_writelog (p_import_key,
+ 'I',
+ 'Facilitor IDM_PERS import version ' || currentversion,
+ '$Revision$'
+ );
+
+-- -- #Import
+ SELECT COUNT (*)
+ INTO v_perslid_count_imp
+ FROM rwsn_imp_idm_pers;
+
+ -- Informatieve logging, zien we gelijk hoe laat het was
+ fac.imp_writelog (p_import_key, 'S', 'Aantal ingelezen personen: ' || TO_CHAR (v_perslid_count_imp), '');
+
+ -- #Actieve personen mèt RIN
+ SELECT COUNT (*)
+ INTO v_perslid_count_fclt
+ FROM prs_v_aanwezigperslid p, prs_v_aanwezigkenmerklink kl
+ WHERE p.prs_perslid_key = kl.prs_link_key AND kl.prs_kenmerk_key = c_rin_kkey;
+
+ -- Check het aantal regels, stop als onvoldoende (=bestaand maar ongeldig bestand)
+ IF v_perslid_count_imp = 0
+ THEN
+ fac.imp_writelog (p_import_key, 'E', 'Het importbestand is ongeldig. Import afgebroken', '');
+ RETURN;
+ END IF;
+
+ update_adres ();
+
+ -- Begin met het ontmantelen van vervallen personen
+ FOR rec_prs_del IN c_prs_del
+ LOOP
+ BEGIN
+ v_perslid_key := rec_prs_del.prs_perslid_key;
+ v_errormsg := 'Verwijderen van persoon NIET gelukt';
+ v_errorhint := 'Heeft persoon met key ' || TO_CHAR (v_perslid_key) || ' historie?';
+
+ SELECT SUM (x.aant)
+ INTO v_count
+ FROM (SELECT COUNT ( * ) aant
+ FROM prs_v_verplichting_refcheck pv
+ WHERE pv.prs_perslid_key = v_perslid_key
+ UNION
+ SELECT COUNT ( * ) aant
+ FROM fac_tracking t
+ WHERE t.prs_perslid_key = v_perslid_key) x;
+
+ IF v_count = 0
+ THEN
+ -- Persoon heeft geen enkele (actuele of historische) verplichting
+ v_errorhint := 'Verwijderen van persoon met key ' || TO_CHAR (v_perslid_key);
+
+ DELETE FROM prs_perslid
+ WHERE prs_perslid_key = v_perslid_key;
+
+ --Via trigger!
+ --DELETE FROM prs_kenmerklink
+ -- WHERE prs_link_key = v_perslid_key AND prs_kenmerklink_niveau = 'P';
+
+ fac.imp_writelog (p_import_key,
+ 'I',
+ 'Persoon verwijderd; RIN: ' || rec_prs_del.rin,
+ '');
+ ELSE
+ -- Controleer of er ACTUELE verplichtingen zijn
+ SELECT COUNT (*)
+ INTO v_count
+ FROM prs_v_verplichting_keys pv
+ WHERE pv.prs_perslid_key = v_perslid_key;
+
+ IF v_count > 0
+ THEN
+ UPDATE prs_perslid
+ SET prs_perslid_naam = SUBSTR ('INACTIEF:' || prs_perslid_naam, 1, 30),
+ prs_perslid_oslogin = NULL
+ WHERE prs_perslid_key = v_perslid_key AND prs_perslid_naam NOT LIKE 'INACTIEF:%';
+
+ fac.imp_writelog (p_import_key,
+ 'I',
+ 'Persoon INACTIEF; RIN: ' || rec_prs_del.rin,
+ '');
+ ELSE
+ -- Er zijn geen actieve verplichtingen, wel historische
+ BEGIN
+ UPDATE prs_perslid
+ SET prs_perslid_verwijder = SYSDATE
+ WHERE prs_perslid_key = v_perslid_key;
+
+ fac.imp_writelog (p_import_key,
+ 'I',
+ 'Persoon verwijderd; RIN: ' || rec_prs_del.rin,
+ '');
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ -- Kennelijk heeft persoon toch ernstige verplichtingen
+ v_errorhint :=
+ 'Persoon heeft nog (max. '
+ || TO_CHAR (v_count)
+ || ') verplichtingen; RIN: '
+ || rec_prs_del.rin;
+ fac.imp_writelog (p_import_key, 'I', v_errormsg, v_errorhint);
+ END;
+ END IF;
+ END IF;
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg := 'Delete exception ' || oracle_err_mes;
+ fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
+ END;
+ END LOOP;
+
+ COMMIT;
+
+ -- Ga verder met het toevoegen of bijwerken
+ FOR rec_prs_upd IN c_prs_upd
+ LOOP
+ BEGIN
+ -- Init
+ v_update := TRUE; -- wordt PER RECORD false bij funest gebrek aan vervulde randvoorwaarden
+ v_afdeling_key := 0;
+ v_srtperslid_key := 0;
+ v_perslid_key := 0;
+ v_errormsg := 'Fout bij bepalen randvoorwaarden';
+
+ -- *** Controle verplichte gegevens + ophalen extra informatie ***
+ -- Controle: RIN
+ IF rec_prs_upd.rin IS NULL
+ THEN
+ v_errorhint := 'Persoon heeft geen RIN; achternaam: ' || rec_prs_upd.prs_perslid_naam;
+ fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
+ v_update := FALSE;
+ END IF;
+
+ -- Controle: PRS_PERSLID_NAAM
+ IF v_update AND rec_prs_upd.prs_perslid_naam IS NULL
+ THEN
+ v_errorhint := 'Persoon heeft geen achternaam; RIN: ' || rec_prs_upd.rin;
+ fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
+ v_update := FALSE;
+ END IF;
+
+ -- Controle: Persoon reactiveren of is er al een actieve persoon met dezelfde RIN?
+ IF v_update AND rec_prs_upd.prs_perslid_verwijder IS NOT NULL
+ THEN
+ v_errorhint :=
+ 'Bepalen reactivatie persoon/RIN: ' || rec_prs_upd.rin;
+
+ -- Is er al een actieve persoon met dezelfde RIN?
+ SELECT COUNT (p.prs_perslid_key)
+ INTO v_prs_key_cnt
+ FROM prs_v_aanwezigperslid p, prs_v_aanwezigkenmerklink kl
+ WHERE p.prs_perslid_key = kl.prs_link_key
+ AND kl.prs_kenmerk_key = c_rin_kkey
+ AND kl.prs_kenmerklink_waarde LIKE rec_prs_upd.rin
+ AND p.prs_perslid_key != rec_prs_upd.prs_perslid_key;
+
+ IF v_prs_key_cnt > 0
+ THEN
+ -- Waarde(n) gevonden, dus is er al een actieve persoon met dezelfde RIN!
+ -- => Geen update
+ v_update := FALSE;
+ ELSE
+ -- Kennelijk is er geen actieve persoon met dezelfde RIN!
+ -- => Wel update (prs_perslid_verwijder op NULL zetten)
+ fac.imp_writelog (
+ p_import_key,
+ 'I',
+ 'Persoon reactiveren; RIN: ' || rec_prs_upd.rin,
+ ''
+ );
+ END IF;
+ END IF;
+
+ -- Controle: PRS_AFDELING_NAAM
+ v_errorhint := 'De afdeling kan niet bepaald worden ' || rec_prs_upd.prs_afdeling_naam;
+
+ IF v_update
+ THEN
+ BEGIN
+ -- Bepaal de afdelingskey; afdelingen worden met een andere import beheerd
+ SELECT prs_afdeling_key
+ INTO v_afdeling_key
+ FROM prs_afdeling
+ WHERE prs_afdeling_naam = rec_prs_upd.prs_afdeling_naam AND prs_afdeling_verwijder IS NULL;
+ EXCEPTION
+ WHEN NO_DATA_FOUND
+ THEN
+ v_update := FALSE;
+ v_errorhint :=
+ 'Afdeling '
+ || rec_prs_upd.prs_afdeling_naam
+ || ' bestaat niet; persoon/RIN: '
+ || rec_prs_upd.rin;
+ -- Kennelijk is de afdeling niet gevonden
+ fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
+ WHEN OTHERS
+ THEN
+ v_update := FALSE;
+ v_errorhint := 'Kan Afdeling ' || rec_prs_upd.prs_afdeling_naam || ' niet eenduidig bepalen?!';
+ fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
+ END;
+ END IF;
+
+ v_errorhint := 'Bepaling functie';
+
+ -- Controle: PRS_SRTPERSLID_OMSCHRIJVING
+ IF v_update
+ THEN
+ BEGIN
+ v_srtperslid_omschr := rec_prs_upd.prs_srtperslid_omschrijving;
+
+ -- Bepaal de key van de functie
+ SELECT prs_srtperslid_key
+ INTO v_srtperslid_key
+ FROM prs_srtperslid
+ WHERE prs_srtperslid_upper = UPPER (v_srtperslid_omschr) AND prs_srtperslid_verwijder IS NULL;
+ EXCEPTION
+ WHEN NO_DATA_FOUND
+ THEN
+ fac.imp_writelog (p_import_key,
+ 'I',
+ 'Functie ' || v_srtperslid_omschr || ' toegevoegd',
+ v_errorhint
+ );
+
+ -- Functie bestaat kennelijk niet, maak 'm maar aan
+ INSERT INTO prs_srtperslid
+ (prs_srtperslid_omschrijving)
+ VALUES (v_srtperslid_omschr);
+
+ -- Wat is de key van deze nieuwe geworden?
+ SELECT prs_srtperslid_key
+ INTO v_srtperslid_key
+ FROM prs_srtperslid
+ WHERE prs_srtperslid_omschrijving = v_srtperslid_omschr AND prs_srtperslid_verwijder IS NULL;
+ WHEN OTHERS
+ THEN
+ v_errorhint :=
+ 'Functie '
+ || v_srtperslid_omschr
+ || ' kan niet bepaald worden; persoon/RIN: '
+ || rec_prs_upd.rin;
+ v_update := FALSE;
+ END;
+ END IF;
+
+ IF rec_prs_upd.partnernaam IS NULL THEN
+ -- als de partnernaam niet gevuld is dan kunnen we deze ook niet gebruiken.
+ lnaampresentatie := rec_prs_upd.prs_perslid_naam;
+ ltussenvoegselpres := rec_prs_upd.prs_perslid_tussenvoegsel;
+ ELSE
+ -- Bepaal de te gebruiken achternaamformattering
+ CASE LPAD (rec_prs_upd.aanduidingnaamgebruik, 1, '0')
+ WHEN '0'
+ THEN
+ BEGIN
+ -- code 0 = [aanhef, titel, voorletters,] voorvoegsels, achternaam
+ -- Opgem. naam Mevr. T. de Haan
+ lnaampresentatie := rec_prs_upd.prs_perslid_naam;
+ ltussenvoegselpres := rec_prs_upd.prs_perslid_tussenvoegsel;
+ END;
+ WHEN '1'
+ THEN
+ BEGIN
+ --Code 1 = [aanhef, titel, voorletters,] 2e voorvoegsels, 2e naam(partnernaam) voorvoegsels, achternaam
+ --Opgem. naam Mevr. T. Bronsgeest-de Haan
+ lnaampresentatie :=
+ rec_prs_upd.partnernaam
+ || '-'
+ || rec_prs_upd.prs_perslid_tussenvoegsel
+ || ' '
+ || rec_prs_upd.prs_perslid_naam;
+ ltussenvoegselpres := rec_prs_upd.partnertussenvoegsel;
+ END;
+ WHEN '2'
+ THEN
+ BEGIN
+ --Code 2 = [aanhef, titel, voorletters,] voorvoegsels, achternaam, 2e voorvoegsels, 2e naam(partnernaam)
+ --Opgem. naam Mevr. T. de Haan-Bronsgeest
+ lnaampresentatie :=
+ rec_prs_upd.prs_perslid_naam
+ || '-'
+ || rec_prs_upd.partnertussenvoegsel
+ || ' '
+ || rec_prs_upd.partnernaam;
+ ltussenvoegselpres := rec_prs_upd.prs_perslid_tussenvoegsel;
+ END;
+ WHEN '3'
+ THEN
+ BEGIN
+ --code 3 = [aanhef, titel, voorletters,] 2e voorvoegsels, 2e naam(partnernaam)
+ --Opgem. naam Mevr. T. Bronsgeest
+ lnaampresentatie := rec_prs_upd.partnernaam;
+ ltussenvoegselpres := rec_prs_upd.partnertussenvoegsel;
+ END;
+ ELSE
+ BEGIN
+ -- code 0 = [aanhef, titel, voorletters,] voorvoegsels, achternaam
+ -- Opgem. naam Mevr. T. de Haan
+ lnaampresentatie := rec_prs_upd.prs_perslid_naam;
+ ltussenvoegselpres := rec_prs_upd.prs_perslid_tussenvoegsel;
+ fac.imp_writelog (p_import_key,
+ 'W',
+ 'Ongedefinieerd naamformattering (AanduidingNaamGebruik) '
+ || rec_prs_upd.aanduidingnaamgebruik,
+ 'Default (0) wordt gehanteerd.'
+ );
+ END;
+ END CASE;
+ END IF;
+ lnaampresentatie := substrb (lnaampresentatie,1,30);
+
+ v_errorhint := 'E-mail';
+ lemail := handle_email (rec_prs_upd.email);
+ v_errorhint := 'Aanmeldnaam';
+ handle_login (rec_prs_upd.loginnaam, rec_prs_upd.prs_perslid_key, llogin1, llogin2);
+
+ -- *** Daadwerkelijk insert/update prs_perslid ***
+ IF v_update
+ THEN
+ BEGIN
+ IF rec_prs_upd.prs_perslid_key IS NULL
+ THEN
+ v_errormsg := 'Persoon kan niet worden toegevoegd';
+
+ INSERT INTO prs_perslid
+ (prs_perslid_naam,
+ prs_perslid_tussenvoegsel,
+ prs_perslid_voorletters,
+ prs_perslid_voornaam,
+ prs_perslid_telefoonnr,
+ prs_perslid_authenticatie,
+ prs_perslid_nr,
+ prs_perslid_titel,
+ prs_srtperslid_key,
+ prs_afdeling_key,
+ prs_perslid_oslogin,
+ prs_perslid_oslogin2,
+ prs_perslid_mobiel,
+ prs_perslid_email,
+ prs_perslid_ingangsdatum,
+ prs_perslid_einddatum,
+ fac_profiel_key
+ )
+ VALUES (lnaampresentatie,
+ ltussenvoegselpres,
+ rec_prs_upd.prs_perslid_voorletters,
+ rec_prs_upd.prs_perslid_voornaam,
+ rec_prs_upd.prs_perslid_telefoonnr,
+ rec_prs_upd.personeelsnummer,
+ rec_prs_upd.dienstverbandid,
+ rec_prs_upd.prs_perslid_titel,
+ v_srtperslid_key,
+ v_afdeling_key,
+ llogin1,
+ llogin2,
+ rec_prs_upd.mobielnummer,
+ lemail,
+ rec_prs_upd.begindatum,
+ rec_prs_upd.einddatum,
+ c_default_profiel_key
+ )
+ RETURNING prs_perslid_key
+ INTO v_perslid_key;
+
+ v_errormsg := 'Fout bij toevoegen RIN';
+
+ INSERT INTO prs_kenmerklink (prs_link_key,
+ prs_kenmerklink_niveau,
+ prs_kenmerk_key,
+ prs_kenmerklink_waarde)
+ VALUES (v_perslid_key,
+ 'P',
+ c_rin_kkey,
+ rec_prs_upd.rin);
+
+ fac.imp_writelog (p_import_key,
+ 'I',
+ 'Nieuw persoon toegevoegd',
+ 'Naam/RIN: '
+ || ltussenvoegselpres || ' ' || lnaampresentatie
+ || '/'
+ || rec_prs_upd.rin
+ );
+ ELSE
+ v_errormsg := 'Persoon kan niet worden gewijzigd';
+
+ UPDATE prs_perslid
+ SET prs_perslid_naam = lnaampresentatie,
+ prs_perslid_tussenvoegsel = ltussenvoegselpres,
+ prs_perslid_voorletters = rec_prs_upd.prs_perslid_voorletters,
+ prs_perslid_voornaam = NVL (rec_prs_upd.prs_perslid_voornaam, prs_perslid_voornaam),
+ prs_perslid_telefoonnr = rec_prs_upd.prs_perslid_telefoonnr,
+ prs_perslid_titel = rec_prs_upd.prs_perslid_titel,
+ prs_srtperslid_key = v_srtperslid_key,
+ prs_afdeling_key = v_afdeling_key,
+ prs_perslid_verwijder = NULL,
+ prs_perslid_oslogin = llogin1,
+ prs_perslid_oslogin2 = COALESCE (prs_perslid_oslogin2, llogin2), -- RWSN#21033!
+ prs_perslid_mobiel = rec_prs_upd.mobielnummer,
+ prs_perslid_email = lemail,
+ prs_perslid_ingangsdatum = rec_prs_upd.begindatum,
+ prs_perslid_einddatum = rec_prs_upd.einddatum,
+ prs_perslid_nr = rec_prs_upd.dienstverbandid
+ WHERE prs_perslid_key = rec_prs_upd.prs_perslid_key
+ AND ( prs_perslid_naam <> lnaampresentatie
+ OR NVL (prs_perslid_tussenvoegsel, '-') <> NVL (ltussenvoegselpres, '-')
+ OR NVL (prs_perslid_voorletters, '-') <> NVL (rec_prs_upd.prs_perslid_voorletters, '-')
+ OR NVL (prs_perslid_voornaam, '-') <> NVL (rec_prs_upd.prs_perslid_voornaam, '-')
+ OR NVL (prs_perslid_telefoonnr, '-') <> NVL (rec_prs_upd.prs_perslid_telefoonnr, '-')
+ OR NVL (prs_perslid_titel, '-') <> NVL (rec_prs_upd.prs_perslid_titel, '-')
+ OR prs_srtperslid_key <> v_srtperslid_key
+ OR prs_afdeling_key <> v_afdeling_key
+ OR NVL (prs_perslid_oslogin, '-') <> NVL (llogin1, '-')
+ OR (prs_perslid_oslogin2 IS NULL AND llogin2 IS NOT NULL) -- RWSN#21033!
+ OR NVL (prs_perslid_oslogin2, '-') <> NVL (llogin2, '-')
+ OR NVL (prs_perslid_mobiel, '-') <> NVL (rec_prs_upd.mobielnummer, '-')
+ OR NVL (prs_perslid_email, '-') <> NVL (lemail, '-')
+ OR NVL (prs_perslid_ingangsdatum, to_date('01012000', 'ddmmyyyy')) <> NVL (rec_prs_upd.begindatum, to_date('01012000', 'ddmmyyyy'))
+ OR NVL (prs_perslid_einddatum, to_date('01012000', 'ddmmyyyy')) <> NVL (rec_prs_upd.einddatum, to_date('01012000', 'ddmmyyyy'))
+ OR NVL (prs_perslid_nr, '-') <> NVL (rec_prs_upd.dienstverbandid, '-')
+ OR rec_prs_upd.prs_perslid_verwijder IS NOT NULL
+ );
+
+ v_perslid_key := rec_prs_upd.prs_perslid_key;
+ END IF;
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
+ v_errormsg := v_errormsg || ' - ' || oracle_err_mes;
+ v_errorhint := 'Persoon/RIN: ' || rec_prs_upd.rin;
+ v_update := FALSE;
+ fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
+ END;
+ END IF;
+
+ -- v_perslid_key is nu zeker bekend; zoniet, dan is v_update dus FALSE
+ -- en gaan we niet verder aanpassen/aanmaken
+ IF v_perslid_key <> 0
+ THEN
+ -- RWSN#24870: Per RWSN49 vervallen.
+ -- ----------------------------------------------------------
+ -- DID-stuff: autorisatie van personen op basis van dienst!!!
+ -- En, ALLEEN als persoon een login heeft (niet altijd zo)!!!
+ -- ----------------------------------------------------------
+ -- RWSN#24870-einde!
+
+ v_errorhint := 'Update dienstverbandguid persoon/RIN: ' || rec_prs_upd.rin;
+ update_dienstverbandguid(v_perslid_key, rec_prs_upd.dienstverbandguid);
+
+ v_errorhint := 'Locatiebepaling persoon/RIN: ' || rec_prs_upd.rin;
+
+ IF rec_prs_upd.bezoekadrespostcode IS NOT NULL
+ THEN
+ v_newgebouwkey := getgebouwkey (rec_prs_upd.bezoekadrespostcode, rec_prs_upd.bezoekadresnummer);
+ handle_location (v_perslid_key, v_newgebouwkey, rec_prs_upd.rin);
+ END IF;
+
+ v_buffercount := v_buffercount + 1;
+ IF v_buffercount >= c_commitbuffer
+ THEN
+ COMMIT;
+ v_buffercount := 0;
+ END IF;
+ END IF;
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
+ v_errormsg := 'Local exception ' || oracle_err_mes;
+ fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
+ END;
+ END LOOP;
+
+ SELECT COUNT ( * )
+ INTO v_perslid_newcount_fclt
+ FROM prs_v_aanwezigperslid p, prs_v_aanwezigkenmerklink kl
+ WHERE p.prs_perslid_key = kl.prs_link_key
+ AND kl.prs_kenmerk_key = c_rin_kkey;
+
+ fac.imp_writelog (
+ p_import_key,
+ 'S',
+ 'Aantal actieve personen met RIN vooraf: '
+ || TO_CHAR (v_perslid_count_fclt)
+ || ' nu: '
+ || TO_CHAR (v_perslid_newcount_fclt),
+ '');
+
+ SELECT COUNT ( * )
+ INTO v_perslid_newcount_fclt -- misbruik
+ FROM prs_v_aanwezigperslid p
+ WHERE NOT EXISTS
+ (SELECT 1
+ FROM prs_v_aanwezigkenmerklink
+ WHERE prs_link_key = p.prs_perslid_key
+ AND prs_kenmerk_key = c_rin_kkey);
+
+ fac.imp_writelog (
+ p_import_key,
+ 'S',
+ 'Aantal actieve personen zonder RIN (nu): '
+ || TO_CHAR (v_perslid_newcount_fclt),
+ '');
+EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
+ v_errormsg := 'Global exception ' || oracle_err_mes;
+ fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
+END;
+/
+
+BEGIN adm.systrackscript('$Workfile: rwsn52.sql $', '$Revision$', 0); END;
+/
+BEGIN fac.registercustversion('RWSN', 52); END;
+/
+COMMIT;
+spool off
diff --git a/RWSN/rwsn.sql b/RWSN/rwsn.sql
index 735af5a21..8e98201ba 100644
--- a/RWSN/rwsn.sql
+++ b/RWSN/rwsn.sql
@@ -862,6 +862,7 @@ END;
--AcademischeTitelsVoor ing.
--AcademischeTitelsNa
--BurgerServiceNummer 14021067
+--RijksIdentificatieNummer 999..9
--FunctieOmschrijving
--FormatieplaatsOmschrijving Adviseur / Specialistisch Medewerker
--DatumIngangGeldigheid 20060101
@@ -912,6 +913,7 @@ AS
v_perslid_titel VARCHAR2 (100);
--
v_perslid_nr VARCHAR2 (100);
+ v_rin VARCHAR2 (100);
--
v_srtperslid_omschrijving VARCHAR2 (100);
--
@@ -980,6 +982,7 @@ BEGIN
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_titel);
fac.imp_getfield (v_newline, v_fielddelimitor, v_skipfield); -- TitelsNa
fac.imp_getfield (v_newline, v_fielddelimitor, v_perslid_nr); -- BurgerServiceNummer
+ fac.imp_getfield (v_newline, v_fielddelimitor, v_rin); -- RijksIdentificatieNummer
fac.imp_getfield (v_newline, v_fielddelimitor, v_skipfield); -- FunctieOmschrijving
fac.imp_getfield (v_newline,
v_fielddelimitor,
@@ -999,6 +1002,7 @@ BEGIN
-- Skip until a valid header is found
IF (v_perslid_oslogin = 'AanmeldNaam'
+ AND v_rin = 'RijksIdentificatieNummer'
AND v_bezoekadresplaats = 'BezoekAdresPlaats')
THEN
header_found := TRUE;
@@ -1021,6 +1025,7 @@ BEGIN
telefoonnummer,
functie,
personeelsnummer,
+ rin,
titel,
loginnaam,
email,
@@ -1046,6 +1051,7 @@ BEGIN
SUBSTRB (v_perslid_telefoonnr, 1, 15),
SUBSTRB (v_srtperslid_omschrijving, 1, 29),
SUBSTRB (v_perslid_nr, 1, 16),
+ SUBSTRB (v_rin, 1, 30),
SUBSTRB (v_perslid_titel, 1, 6),
SUBSTRB (v_perslid_oslogin, 1, 200),
SUBSTRB (v_perslid_email, 1, 255),
@@ -1141,13 +1147,14 @@ AS
(c) SG|facilitor bv
*/
-- Constanten
+ c_verdieping_omschr_default VARCHAR2 (16) := 'Begane grond';
c_srtruimte_default INTEGER := 1;
c_ruimte_code VARCHAR2 (3) := '001';
c_ruimte_omschr_default VARCHAR2 (16) := 'Onbekend';
- c_verdieping_omschr_default VARCHAR2 (16) := 'Begane grond';
c_werkplek_volgnr_default INTEGER := 1;
c_prs_werkplek_omschrijving VARCHAR2 (16) := '1';
- c_dienstgroep_postfix VARCHAR2 (20) := 'FE/Dienstspecifiek';
+ c_default_profiel_key NUMBER (10) := 1;
+ c_rin_kkey NUMBER (10) := 1160;
c_commitbuffer NUMBER := 1000;
-- om de zoveel committen
v_buffercount NUMBER := 0;
@@ -1157,7 +1164,8 @@ AS
--- in de import voorkomen en een einddatum hebben die voorbij is
--- of niet in de import voorkomen
-- en die nog niet vervallen waren
- -- personeelsnummer uit de importtabel mapt op prs_perslid_authenticatie en
+ -- personeelsnummer=BSN uit de importtabel mapt op prs_perslid_authenticatie
+ -- RIN uit de importtabel mapt op kenmerk met key=1160
-- dienstverbandid uit de importtabel (SAPHRnummer) mapt op prs_perslid_nr
CURSOR c_prs_del
IS
@@ -1193,7 +1201,7 @@ AS
SELECT p.prs_perslid_key, idm.locatiecode alg_locatie_code, idm.afdelingscode prs_afdeling_naam,
idm.persoonachternaam prs_perslid_naam, idm.tussenvoegsel prs_perslid_tussenvoegsel,
idm.voorletters prs_perslid_voorletters, idm.voornaam prs_perslid_voornaam,
- idm.telefoonnummer prs_perslid_telefoonnr, idm.functie prs_srtperslid_omschrijving,
+ idm.telefoonnummer prs_perslid_telefoonnr, idm.functie prs_srtperslid_omschrijving, idm.rin,
idm.personeelsnummer personeelsnummer, idm.titel prs_perslid_titel, p.prs_perslid_verwijder,
idm.begindatum, idm.einddatum, idm.mobielnummer, idm.email, idm.loginnaam, idm.dienstverbandguid,
idm.dienstverbandid, idm.bezoekadresnaam, idm.bezoekadresnummer, idm.bezoekadrespostcode,
@@ -1379,9 +1387,7 @@ AS
SELECT COUNT (*)
INTO lv_nr_werkplek
FROM prs_perslidwerkplek pw, prs_werkplek w, alg_ruimte r, alg_verdieping v
- WHERE pw.prs_perslidwerkplek_verwijder IS NULL
- AND pw.prs_werkplek_key = w.prs_werkplek_key
- AND w.prs_werkplek_verwijder IS NULL
+ WHERE pw.prs_werkplek_key = w.prs_werkplek_key
AND nvl(w.prs_werkplek_virtueel, 0) <> 1
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
@@ -1458,7 +1464,6 @@ AS
INTO lv_werkplek_key
FROM prs_werkplek
WHERE prs_alg_ruimte_key = lv_ruimte_key
- AND prs_werkplek_verwijder IS NULL
AND prs_werkplek_volgnr = c_werkplek_volgnr_default;
-- Altijd werkplek met deze notatie!
EXCEPTION
@@ -1973,7 +1978,8 @@ BEGIN
prs_perslid_mobiel,
prs_perslid_email,
prs_perslid_ingangsdatum,
- prs_perslid_einddatum
+ prs_perslid_einddatum,
+ fac_profiel_key
)
VALUES (lnaampresentatie,
ltussenvoegselpres,
@@ -1990,11 +1996,23 @@ BEGIN
rec_prs_upd.mobielnummer,
lemail,
rec_prs_upd.begindatum,
- rec_prs_upd.einddatum
+ rec_prs_upd.einddatum,
+ c_default_profiel_key
)
RETURNING prs_perslid_key
INTO v_perslid_key;
+ --v_errormsg := 'Fout bij toevoegen RIN';
+
+ --INSERT INTO prs_kenmerklink (prs_link_key,
+ -- prs_kenmerklink_niveau,
+ -- prs_kenmerk_key,
+ -- prs_kenmerklink_waarde)
+ -- VALUES (v_perslid_key,
+ -- 'P',
+ -- c_rin_kkey,
+ -- rec_prs_upd.rin);
+
fac.imp_writelog (p_import_key,
'I',
'Nieuw persoon toegevoegd',
@@ -2042,11 +2060,44 @@ BEGIN
OR NVL (prs_perslid_einddatum, to_date('01012000', 'ddmmyyyy')) <> NVL (rec_prs_upd.einddatum, to_date('01012000', 'ddmmyyyy'))
OR NVL (prs_perslid_nr, '-') <> NVL (rec_prs_upd.dienstverbandid, '-')
OR rec_prs_upd.prs_perslid_verwijder IS NOT NULL
-
);
v_perslid_key := rec_prs_upd.prs_perslid_key;
END IF;
+
+ IF LENGTH (rec_prs_upd.rin) > 0
+ THEN
+ v_errormsg := 'Fout bij bepalen RIN';
+
+ SELECT COUNT ( * )
+ INTO v_count
+ FROM prs_v_aanwezigkenmerklink
+ WHERE prs_link_key = v_perslid_key
+ AND prs_kenmerklink_niveau = 'P'
+ AND prs_kenmerk_key = c_rin_kkey;
+
+ IF v_count = 0
+ THEN
+ v_errormsg := 'Fout bij toevoegen RIN';
+
+ INSERT INTO prs_kenmerklink (prs_link_key,
+ prs_kenmerklink_niveau,
+ prs_kenmerk_key,
+ prs_kenmerklink_waarde)
+ VALUES (v_perslid_key,
+ 'P',
+ c_rin_kkey,
+ rec_prs_upd.rin);
+ --ELSE -- v_count = 1
+ -- v_errormsg := 'Fout bij wijzigen WIN-ID';
+
+ -- UPDATE prs_kenmerklink
+ -- SET prs_kenmerklink_waarde = rec_prs_upd.rin
+ -- WHERE prs_kenmerklink_key = v_kenmerklink_key;
+ END IF;
+
+ COMMIT;
+ END IF;
EXCEPTION
WHEN OTHERS
THEN
@@ -8164,7 +8215,7 @@ AS
AND f.mldafm_userkey = p_afm.prs_perslid_key;
-/* Formatted on 1-12-2010 16:05:20 (QP5 v5.115.810.9015) */
+/* Formatted on 7-11-2013 11:54:48 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW rwsn_v_rap_melding_overzicht
(
melding,
@@ -8192,14 +8243,9 @@ AS
m.stdmld_groep kwisg,
TO_CHAR (m.mld_begin_date, 'dd-mm-yyyy'),
TO_CHAR (m.mld_begin_date, 'ww') week,
- DECODE (
- sm.mld_stdmelding_streeftijd,
- NULL,
- DECODE (sm.mld_stdmelding_planbaar,
- NULL, 'Planbaar',
- TO_CHAR (sm.mld_stdmelding_uitvoertijd) || ' DAGEN'),
- TO_CHAR (sm.mld_stdmelding_streeftijd) || ' UREN'
- )
+ DECODE (sm.mld_stdmelding_planbaar,
+ 1, 'Planbaar',
+ TO_CHAR (sm.mld_stdmelding_uitvoertijd) || ' DAGEN')
uitvoertijd,
m.mldafm_date einddatum,
pf1.prs_perslid_naam_full melder,
@@ -8484,7 +8530,6 @@ CREATE OR REPLACE VIEW rwsn_v_rap_fip5_servicedesk (
uitvoertijd_kritiek,
uitvoertijd_hoog,
uitvoertijd_laag,
- streeftijd,
directklaar
)
AS
@@ -8505,7 +8550,6 @@ AS
std.mld_stdmelding_uitvoertijd_pr1,
std.mld_stdmelding_uitvoertijd_pr2,
std.mld_stdmelding_uitvoertijd_pr4,
- std.mld_stdmelding_streeftijd,
dp.mld_disc_params_directklaar
FROM mld_discipline d,
ins_srtdiscipline sd,
@@ -8970,7 +9014,7 @@ AS
WHERE 1 = 0
/
-/* Formatted on 19-6-2013 16:52:25 (QP5 v5.115.810.9015) */
+/* Formatted on 29-11-2013 10:30:50 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE rwsn_export_did_opdr (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
@@ -9040,15 +9084,20 @@ AS
AND std.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen
AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag
- AND m.mld_melding_status = 4 -- Geaccepteerd
+ AND m.mld_melding_status IN (2, 3, 4)
AND NOT EXISTS
(SELECT 1
FROM mld_opdr o
WHERE o.mld_melding_key = m.mld_melding_key)
ORDER BY m.mld_melding_key;
- -- Cursor loopt over de gefiatteerde ICT opdrachten; deze worden uitgegeven
- -- en bijgewerkt.
+ -- Cursor loopt over de gefiatteerde ICT opdrachten; deze worden bijgewerkt.
+ -- RWSN#27015: Was na DBV-goedkeuring, nu na BEH-, LDG- én DBV-goedkeuring!
+ -- Hoe onderscheid maken? -> prs_kostenplaatsgrp/collega (DBV),
+ -- prs_kostenplaats (LDG), ins_kenmerkdeel (BEH)
+ -- Hoe eerdere goedkeuring herkennen? -> mld_melding_opmerking
+ -- RWSN#27015: Per RWSN51 loopt het uitgeven via (Fiatteringsverzoeken-)GUI
+ -- automatisch; alleen dus nog de melding bijwerken.
CURSOR c4
IS
SELECT m.mld_melding_key,
@@ -9072,9 +9121,13 @@ AS
AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag
AND m.mld_melding_status IN (4, 7) -- Geaccepteerd/Uitgegeven
AND m.mld_melding_key = o.mld_melding_key
- AND fac.gettrackingdate ('ORDFOK', o.mld_opdr_key) IS NOT NULL
- AND o.mld_opdr_teverzenden IS NULL
- ORDER BY m.mld_melding_key, o.mld_opdr_key;
+ AND o.mld_opdr_key = t.fac_tracking_refkey
+ AND t.fac_srtnotificatie_key = 167 -- ORDFOK + ORDNEW?
+ AND t.fac_tracking_datum > TRUNC (SYSDATE - (1 / 24), 'HH24')
+ AND t.prs_perslid_key = pf.prs_perslid_key
+ AND t.prs_perslid_key = ldg.prs_perslid_key(+)
+ AND t.prs_perslid_key = dbv.prs_perslid_key(+)
+ ORDER BY m.mld_melding_key, o.mld_opdr_key, t.fac_tracking_datum;
-- Cursor loopt over de afgewezen ICT opdrachten; deze worden bijgewerkt.
CURSOR c5
@@ -9108,7 +9161,45 @@ AS
FROM mld_kenmerkopdr ko
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = 1577)
- ORDER BY m.mld_melding_key, o.mld_opdr_key;
+ AND o.mld_opdr_key = t.fac_tracking_refkey
+ AND t.fac_srtnotificatie_key = 168 -- ORDFNO + ORDGNO?
+ AND t.fac_tracking_datum > TRUNC (SYSDATE - (1 / 24), 'HH24')
+ AND t.prs_perslid_key = pf.prs_perslid_key
+ AND t.prs_perslid_key = dbv.prs_perslid_key(+)
+ ORDER BY m.mld_melding_key, o.mld_opdr_key, t.fac_tracking_datum;
+
+ -- Cursor loopt over de verzonden ICT opdrachten; deze worden bijgewerkt.
+ -- RWSN#27015: Nieuw!
+ -- Hoe eerdere verzending herkennen? -> mld_melding_opmerking
+ CURSOR c6
+ IS
+ SELECT m.mld_melding_key,
+ m.mld_melding_opmerking,
+ o.mld_opdr_key,
+ o.mld_opdr_bedrijfopdr_volgnr,
+ SUBSTR (o.mld_opdr_omschrijving,
+ 1,
+ INSTR (o.mld_opdr_omschrijving,
+ CHR (13),
+ 1,
+ 1)
+ - 1)
+ opdracht
+ FROM mld_melding m,
+ mld_stdmelding sm,
+ ins_tab_discipline td,
+ mld_opdr o,
+ fac_tracking t
+ WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
+ AND sm.mld_ins_discipline_key = td.ins_discipline_key
+ AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen
+ AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag
+ AND m.mld_melding_status = 7 -- Uitgegeven
+ AND m.mld_melding_key = o.mld_melding_key
+ AND o.mld_opdr_key = t.fac_tracking_refkey
+ AND t.fac_srtnotificatie_key = 171 -- ORDSNT
+ AND t.fac_tracking_datum > TRUNC (SYSDATE - (1 / 24), 'HH24')
+ ORDER BY m.mld_melding_key, o.mld_opdr_key, t.fac_tracking_datum;
-- Cursor loopt over alle 'Laatste actie'-kenmerkwaarden en voert deze door
-- in de Afhandeling en Opmerking van resp. de opdracht en de melding.
@@ -9216,18 +9307,22 @@ AS
v_deel1_start NUMBER (3);
v_deeln_start NUMBER (3);
v_count NUMBER (10);
- v_persoon_key NUMBER;
- v_kostenplaats_key NUMBER;
- v_budgethouder_key NUMBER;
+ v_afdeling_key NUMBER (10);
+ v_kostenplaats_key NUMBER (10);
+ v_budgethouder_key NUMBER (10);
+ v_fiatteur_type VARCHAR2 (100);
+ v_kosten_appl NUMBER (12, 2) := NULL;
+ v_aut_proces VARCHAR2 (10) := '';
+ v_webbased NUMBER (10) := -1;
v_opdr_dagen NUMBER (3);
v_stdmelding VARCHAR2 (200);
v_uitvoerende_key NUMBER;
v_hoofdlocatie VARCHAR2 (200);
v_typeopdr_key NUMBER;
- v_mld_flexcontent VARCHAR (4000);
+ v_mld_flexcontent VARCHAR2 (4000);
v_terfiat NUMBER (1);
v_opdr_key NUMBER;
- v_mld_opmerking VARCHAR (4000);
+ v_mld_opmerking VARCHAR2 (4000);
BEGIN
v_aanduiding := '[ICT aanvraag ' || p_mldkey || '] ';
v_deel1_start := -1;
@@ -9262,6 +9357,192 @@ AS
COMMIT;
END IF;
+ -- Geen autorisatieproces, dan ook geen applicatieaanvraag!
+ v_errormsg := 'Fout bij bepalen autorisatieproces.';
+
+ SELECT COUNT ( * ), MIN (ud.fac_usrdata_upper)
+ INTO v_count, v_aut_proces
+ FROM mld_melding m,
+ mld_stdmelding sm,
+ mld_kenmerk mk,
+ mld_srtkenmerk msk,
+ fac_kenmerkdomein kd,
+ mld_v_aanwezigkenmerkmelding mkm,
+ ins_v_aanwezigkenmerkdeel ikd,
+ ins_kenmerk ik,
+ fac_usrdata ud
+ WHERE m.mld_melding_key = p_mldkey
+ AND m.mld_stdmelding_key = sm.mld_stdmelding_key
+ AND ( (sm.mld_stdmelding_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'S')
+ OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'D'))
+ AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
+ AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
+ AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%'
+ AND kd.fac_kenmerkdomein_module = 'MLD'
+ AND m.mld_melding_key = mkm.mld_melding_key
+ AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
+ AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) =
+ ikd.ins_deel_key
+ AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key
+ AND ik.ins_srtkenmerk_key = 101 -- Autorisatieproces
+ AND fac.safe_to_number (ikd.ins_kenmerkdeel_waarde) =
+ ud.fac_usrdata_key;
+
+ -- Logica specifiek voor Applicatieaanvragen; de kosten (v_kosten_appl)
+ -- bepalen uiteindelijk of opdracht via status 'Ter goedkeuring' loopt!
+ IF (v_count = 1)
+ THEN
+ v_errormsg := 'Fout bij bepalen webbased.';
+
+ SELECT fac_usrdata_key -- 1 = Ja; anders Nee of EXCEPTION!
+ INTO v_webbased
+ FROM mld_melding m,
+ mld_stdmelding sm,
+ mld_kenmerk mk,
+ mld_srtkenmerk msk,
+ fac_kenmerkdomein kd,
+ mld_v_aanwezigkenmerkmelding mkm,
+ ins_v_aanwezigkenmerkdeel ikd,
+ ins_kenmerk ik,
+ fac_usrdata ud
+ WHERE m.mld_melding_key = p_mldkey
+ AND m.mld_stdmelding_key = sm.mld_stdmelding_key
+ AND ( (sm.mld_stdmelding_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'S')
+ OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'D'))
+ AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
+ AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
+ AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%'
+ AND kd.fac_kenmerkdomein_module = 'MLD'
+ AND m.mld_melding_key = mkm.mld_melding_key
+ AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
+ AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) =
+ ikd.ins_deel_key
+ AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key
+ AND ik.ins_srtkenmerk_key = 102 -- Webbased
+ AND fac.safe_to_number (ikd.ins_kenmerkdeel_waarde) =
+ ud.fac_usrdata_key
+ AND ud.fac_usrtab_key = 1;
+
+ -- Applicatie-flow wordt bepaald op basis van 'v_kosten_appl'!
+ -- -1 => Geen goedkeuring/fiattering en opdracht niet verzenden (als
+ -- [a] aut.proces is '2' en webbased is 'J' of [b] aut.proces is '4')!
+ -- 0 => Geen goedkeuring/fiattering en opdracht direct verzenden!
+ -- 1 => Goedkeuring door FB/KEY, later opdracht pas verzenden!
+ -- 2 => Fiattering door budgethouder, later opdracht pas verzenden!
+ v_kosten_appl := -1;
+
+ IF (v_aut_proces = '0')
+ THEN
+ v_kosten_appl := 0;
+ ELSIF (v_aut_proces = '1')
+ THEN
+ v_kosten_appl := 2;
+ ELSIF (v_aut_proces = '2')
+ THEN
+ -- Bepaal aantal FBs via srtkenmerk_key=103/104/105!
+ v_errormsg := 'Fout bij bepalen aantal FBs.';
+
+ SELECT COUNT (*)
+ INTO v_count
+ FROM mld_melding m,
+ mld_stdmelding sm,
+ mld_kenmerk mk,
+ mld_srtkenmerk msk,
+ fac_kenmerkdomein kd,
+ mld_v_aanwezigkenmerkmelding mkm,
+ ins_v_aanwezigkenmerkdeel ikd,
+ ins_kenmerk ik
+ WHERE m.mld_melding_key = p_mldkey
+ AND m.mld_stdmelding_key = sm.mld_stdmelding_key
+ AND ( (sm.mld_stdmelding_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'S')
+ OR (sm.mld_ins_discipline_key =
+ mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'D'))
+ AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
+ AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
+ AND kd.fac_kenmerkdomein_objectnaam LIKE
+ 'RWSN_V_DID_SPIV%'
+ AND kd.fac_kenmerkdomein_module = 'MLD'
+ AND m.mld_melding_key = mkm.mld_melding_key
+ AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
+ AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) =
+ ikd.ins_deel_key
+ AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key
+ AND ik.ins_srtkenmerk_key BETWEEN 103 AND 105; -- FB123
+
+ IF (v_count > 0)
+ THEN
+ v_kosten_appl := 1; -- ORDGOE; FB bekend, dan langs FB!
+ ELSE
+ IF (v_webbased = 1)
+ THEN
+ v_kosten_appl := 0; -- Webbased; geen FB, dan direct door!
+ ELSE
+ v_kosten_appl := 2; -- ORDFIA; geen FB, dan langs budgethouder!
+ END IF;
+ END IF;
+ ELSIF (v_aut_proces = '3')
+ THEN
+ -- Bepaal aantal KEYs via eigen tabel Org2Afkorting!
+ v_errormsg := 'Fout bij bepalen aantal KEYs.';
+
+ SELECT COUNT (*)
+ INTO v_count
+ FROM prs_v_afdeling_boom ab,
+ fac_usrdata ud,
+ mld_melding m,
+ mld_stdmelding sm,
+ mld_kenmerk mk,
+ mld_srtkenmerk msk,
+ fac_kenmerkdomein kd,
+ mld_v_aanwezigkenmerkmelding mkm,
+ ins_v_aanwezigkenmerkdeel ikd,
+ ins_kenmerk ik,
+ ins_srtkenmerk isk
+ WHERE ab.prs_afdeling_key = v_afdeling_key
+ AND ab.prs_afdeling_key1 =
+ fac.safe_to_number (ud.fac_usrdata_code)
+ AND ud.fac_usrtab_key = 2 -- Org2Afkorting
+ AND m.mld_melding_key = p_mldkey
+ AND m.mld_stdmelding_key = sm.mld_stdmelding_key
+ AND ( (sm.mld_stdmelding_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'S')
+ OR (sm.mld_ins_discipline_key =
+ mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'D'))
+ AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
+ AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
+ AND kd.fac_kenmerkdomein_objectnaam LIKE
+ 'RWSN_V_DID_SPIV%'
+ AND kd.fac_kenmerkdomein_module = 'MLD'
+ AND m.mld_melding_key = mkm.mld_melding_key
+ AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
+ AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) =
+ ikd.ins_deel_key
+ AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key
+ AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
+ AND isk.ins_srtkenmerk_upper LIKE
+ '%' || UPPER (ud.fac_usrdata_omschr);
+
+ IF (v_count > 0)
+ THEN
+ v_kosten_appl := 1; -- ORDGOE; KEY bekend, dan langs KEY!
+ ELSE
+ IF (v_webbased = 1)
+ THEN
+ v_kosten_appl := 0; -- Webbased; geen KEY, dan direct door!
+ ELSE
+ v_kosten_appl := 2; -- ORDFIA; geen KEY, dan langs budgethouder!
+ END IF;
+ END IF;
+ END IF;
+ END IF;
+
v_errormsg := 'Fout bij bepalen uitvoertijd + stdmelding.';
SELECT DECODE (
@@ -9391,15 +9672,28 @@ AS
v_typeopdr_key, -- DID
4, -- Facilitor
v_mld_flexcontent,
+ DECODE (
+ v_kosten_appl,
+ -1,
+ 0,
+ COALESCE (v_kosten_appl, v_kosten_rest, 0)
+ ),
0,
0,
- 0,
- 0,
+ DECODE (
+ v_kosten_appl,
+ -1,
+ 0,
+ COALESCE (v_kosten_appl, v_kosten_rest, 0)
+ ),
v_kostenplaats_key,
p_mldkey,
'MLD',
MLD.bepaalopdrmeldingvolgnr (p_mldkey),
- DECODE (v_terfiat, 0, 1, NULL),
+ DECODE (v_kosten_appl,
+ -1, NULL,
+ 1, DECODE (v_webbased, 1, NULL, 1),
+ 1),
SUBSTR ('Facilitor', 1, 30)
)
RETURNING mld_opdr_key INTO v_opdr_key;
@@ -9410,18 +9704,7 @@ AS
IF (v_terfiat = 1 AND v_budgethouder_key <> -1)
THEN
BEGIN
- MLD.setopdrachtstatus (v_opdr_key, 3, 4); -- Facilitor
- fac.putnotificationsrtprio (NULL,
- v_budgethouder_key,
- 'MLDAP1',
- v_opdr_key,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- 2,
- NULL);
+ MLD.setopdrachtstatus (v_opdr_key, 5, 4); -- Facilitor
v_errormsg :=
'Fout bij bijwerken ter fiattering door DBV.';
@@ -9430,16 +9713,74 @@ AS
TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
|| ' Opdracht "'
|| v_stdmelding
- || '" ter autorisatie aangeboden aan DBV.';
- v_count := LENGTH (v_mld_opmerking) + 5; -- Beetje speling qua lengte!
+ || '" geregistreerd tbv. verdere afhandeling.';
+ END;
+ -- v_kosten_appl=1, dan ALTIJD 'Ter goedkeuring'!
+ -- Of bestellimiet wel of niet voldoet doet er niet toe.
+ -- NB. Tenminste 1 Beheerder hier altijd bekend/gedefinieerd.
+ ELSIF (v_kosten_appl = 1)
+ THEN
+ BEGIN
+ -- Via MLD.setopdrachtstatus() naar 10 doet ORDGOE-trackaction en triggert een ORD2GO-notificatie naar iedereen met ORDGOE-rechten!
+ --MLD.setopdrachtstatus (v_opdr_key, 10, 4); -- Facilitor
+ -- Bovenstaande willen wij niet, daarom hier via UPDATE, eigen ORDGOE#-trackaction (#-prefix onderdrukt standaard notificaties) en
+ -- ORD2GO-notificatie naar beheerders volgt via notificatiejob!
+ UPDATE mld_opdr
+ SET mld_statusopdr_key = 10
+ WHERE mld_opdr_key = v_opdr_key;
- UPDATE mld_melding
- SET mld_melding_opmerking =
- v_mld_opmerking || CHR (13) || CHR (10)
- || SUBSTR (mld_melding_opmerking,
- 1,
- (4000 - v_count))
- WHERE mld_melding_key = p_mldkey;
+ fac.trackaction ('#ORDGOE',
+ v_opdr_key,
+ 4,
+ NULL,
+ NULL);
+
+ v_errormsg :=
+ 'Fout bij bijwerken ter ORD2GO-fiattering ('
+ || TO_CHAR (v_count)
+ || ').';
+
+ v_mld_opmerking :=
+ TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
+ || ' Opdracht "'
+ || v_stdmelding
+ || '" ter autorisatie aangeboden aan Beheerder.';
+ END;
+ -- v_kosten_xxxx>1, dan ALTIJD 'Ter fiattering'!
+ -- Of budgethouder wel of niet bestaat doet er niet toe.
+ ELSIF (COALESCE (v_kosten_appl, v_kosten_rest, 0) > 1)
+ THEN
+ BEGIN
+ MLD.setopdrachtstatus (v_opdr_key, 3, 4); -- Facilitor
+
+ -- Notificeren als budgethouder bekend!
+ IF (v_budgethouder_key <> -1)
+ THEN
+ fac.putnotificationsrtprio (NULL,
+ v_budgethouder_key,
+ 'MLDAP1',
+ v_opdr_key,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ 2,
+ NULL);
+ END IF;
+
+ v_errormsg :=
+ 'Fout bij bijwerken ter MLDAP1-fiattering ('
+ || TO_CHAR (v_count)
+ || ').';
+
+ v_mld_opmerking :=
+ TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
+ || ' Opdracht "'
+ || v_stdmelding
+ || '" ter autorisatie aangeboden aan '
+ || v_fiatteur_type
+ || '.';
END;
ELSE
BEGIN
@@ -9890,7 +10231,74 @@ BEGIN
);
COMMIT;
- -- Loop door de ter fiattering aangeboden ICT opdrachten die zojuist zijn
+ -- Loop door de ter goedkeuring of ter fiattering aangeboden ICT opdrachten
+ -- die zojuist zijn goedgekeurd/gefiatteerd en werk melding bij.
+ -- Per RWSN#27015 loopt de flow (na autorisatie via de GUI) voortaan verder
+ -- vanzelf (gebruikmakend van standaard functionaliteit).
+ FOR rec IN c4
+ LOOP
+ BEGIN
+ v_aanduiding :=
+ '[ICT aanvraag '
+ || rec.mld_melding_key
+ || '/'
+ || rec.mld_opdr_bedrijfopdr_volgnr
+ || '] ';
+ v_errormsg :=
+ 'Fout bij bijwerken goedkeuring door '
+ || rec.fiatteur_type
+ || '.';
+
+ IF (rec.mld_melding_opmerking NOT LIKE
+ '%goedgekeurd door ' || rec.fiatteur_naam || '%')
+ THEN
+ v_mld_opmerking :=
+ TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
+ || ' Opdracht "'
+ || SUBSTR (rec.opdracht, 1, 60)
+ || '" goedgekeurd door '
+ || rec.fiatteur_naam
+ || '.';
+
+ IF (rec.fiatteur_type = 'Beheerder' AND rec.mld_opdr_kosten > 1)
+ THEN
+ v_mld_opmerking :=
+ TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
+ || ' Opdracht "'
+ || SUBSTR (rec.opdracht, 1, 60)
+ || '" ter autorisatie aangeboden aan Leidinggevende.'
+ || CHR (13)
+ || CHR (10)
+ || v_mld_opmerking;
+ ELSIF (rec.fiatteur_type = 'Leidinggevende' AND rec.mld_opdr_kosten > 2)
+ THEN
+ v_mld_opmerking :=
+ TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
+ || ' Opdracht "'
+ || SUBSTR (rec.opdracht, 1, 60)
+ || '" ter autorisatie aangeboden aan DBV.'
+ || CHR (13)
+ || CHR (10)
+ || v_mld_opmerking;
+ END IF;
+
+ v_count := LENGTH (v_mld_opmerking) + 5;
+
+ -- Beetje speling qua lengte!
+ UPDATE mld_melding
+ SET mld_melding_opmerking =
+ v_mld_opmerking || CHR (13) || CHR (10)
+ || SUBSTR (rec.mld_melding_opmerking,
+ 1,
+ (4000 - v_count))
+ WHERE mld_melding_key = rec.mld_melding_key;
+
+ COMMIT;
+ END IF;
+ END;
+ END LOOP;
+
+ -- Loop door de ter autorisatie aangeboden ICT opdrachten die zojuist zijn
-- afgewezen en werk melding bij.
FOR rec IN c5
LOOP
@@ -9912,14 +10320,18 @@ BEGIN
v_errormsg := 'Fout bij bijwerken afwijzing door DBV.';
- -- Sowieso lengte < 4000!
- v_mld_opmerking :=
- TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
- || ' Opdracht "'
- || SUBSTR (rec.opdracht, 1, 60)
- || '" afgewezen door DBV, met als reden: '
- || SUBSTR (rec.mld_opdr_opmerking_fiat, 1, 1024);
- v_count := LENGTH (v_mld_opmerking) + 5; -- Beetje speling qua lengte!
+ IF (rec.mld_melding_opmerking NOT LIKE
+ '%afgewezen door ' || rec.fiatteur_naam || '%')
+ THEN
+ v_mld_opmerking :=
+ TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss')
+ || ' Opdracht "'
+ || SUBSTR (rec.opdracht, 1, 60)
+ || '" afgewezen door '
+ || rec.fiatteur_naam
+ || ', met als reden: '
+ || SUBSTR (rec.mld_opdr_opmerking_fiat, 1, 1024);
+ v_count := LENGTH (v_mld_opmerking) + 5;
UPDATE mld_melding
SET mld_melding_opmerking =
@@ -10570,7 +10982,193 @@ AS
WHERE kl.prs_kenmerk_key IN (1020, 1021, 1022)
AND kl.prs_link_key = afd4.prs_afdeling_key);
-/* Formatted on 23-7-2010 12:51:25 (QP5 v5.136.908.31019) */
+/* Formatted on 3-7-2013 13:14:15 (QP5 v5.115.810.9015) */
+CREATE OR REPLACE VIEW RWSN_V_ICTCP_PER_AFD
+(
+ afd_key,
+ prs_key,
+ direct,
+ bv
+)
+AS
+ SELECT afdx.prs_afdeling_key afd_key,
+ pb.prs_perslid_key prs_key,
+ 'Ja' direct,
+ 'B' bv -- Budgethouder/Vervanger
+ FROM prs_afdeling afdx,
+ prs_v_aanwezigkostenplaats kp,
+ prs_v_aanwezigperslid pb
+ WHERE afdx.prs_afdeling_verwijder IS NULL
+ AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
+ AND kp.prs_perslid_key = pb.prs_perslid_key
+ UNION ALL
+ SELECT afdx.prs_afdeling_key afd_key,
+ c.prs_perslid_key_alt prs_key,
+ 'Ja' direct,
+ 'V' bv -- Budgethouder/Vervanger
+ FROM prs_afdeling afdx, prs_v_aanwezigkostenplaats kp, prs_collega c
+ WHERE afdx.prs_afdeling_verwijder IS NULL
+ AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
+ AND kp.prs_perslid_key = c.prs_perslid_key
+ UNION ALL -- Afdelingen zonder budgethouder 1 niveau lager
+ SELECT afd1.prs_afdeling_key afd_key,
+ ap.prs_key,
+ 'Nee',
+ ap.bv
+ FROM (SELECT afdx.prs_afdeling_key afd_key,
+ kp.prs_perslid_key prs_key,
+ 'B' bv -- Budgethouder/Vervanger
+ FROM prs_afdeling afdx,
+ prs_v_aanwezigkostenplaats kp,
+ prs_v_aanwezigperslid pb
+ WHERE afdx.prs_afdeling_verwijder IS NULL
+ AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
+ AND kp.prs_perslid_key = pb.prs_perslid_key
+ UNION ALL
+ SELECT afdx.prs_afdeling_key afd_key,
+ c.prs_perslid_key_alt prs_key,
+ 'V' bv -- Budgethouder/Vervanger
+ FROM prs_afdeling afdx,
+ prs_v_aanwezigkostenplaats kp,
+ prs_collega c
+ WHERE afdx.prs_afdeling_verwijder IS NULL
+ AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
+ AND kp.prs_perslid_key = c.prs_perslid_key) ap,
+ prs_afdeling afd1,
+ prs_v_aanwezigkostenplaats kp1
+ WHERE ap.afd_key = afd1.prs_afdeling_parentkey
+ AND afd1.prs_afdeling_verwijder IS NULL
+ AND afd1.prs_kostenplaats_key = kp1.prs_kostenplaats_key
+ AND kp1.prs_perslid_key IS NULL
+ UNION ALL -- Afdelingen zonder budgethouder 2 niveaux lager
+ SELECT afd2.prs_afdeling_key afd_key,
+ ap.prs_key,
+ 'Nee',
+ ap.bv
+ FROM (SELECT afdx.prs_afdeling_key afd_key,
+ kp.prs_perslid_key prs_key,
+ 'B' bv -- Budgethouder/Vervanger
+ FROM prs_afdeling afdx,
+ prs_v_aanwezigkostenplaats kp,
+ prs_v_aanwezigperslid pb
+ WHERE afdx.prs_afdeling_verwijder IS NULL
+ AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
+ AND kp.prs_perslid_key = pb.prs_perslid_key
+ UNION ALL
+ SELECT afdx.prs_afdeling_key afd_key,
+ c.prs_perslid_key_alt prs_key,
+ 'V' bv -- Budgethouder/Vervanger
+ FROM prs_afdeling afdx,
+ prs_v_aanwezigkostenplaats kp,
+ prs_collega c
+ WHERE afdx.prs_afdeling_verwijder IS NULL
+ AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
+ AND kp.prs_perslid_key = c.prs_perslid_key) ap,
+ prs_afdeling afd1,
+ prs_v_aanwezigkostenplaats kp1,
+ prs_afdeling afd2,
+ prs_v_aanwezigkostenplaats kp2
+ WHERE ap.afd_key = afd1.prs_afdeling_parentkey
+ AND afd1.prs_afdeling_verwijder IS NULL
+ AND afd1.prs_kostenplaats_key = kp1.prs_kostenplaats_key
+ AND kp1.prs_perslid_key IS NULL
+ AND afd1.prs_afdeling_key = afd2.prs_afdeling_parentkey
+ AND afd2.prs_afdeling_verwijder IS NULL
+ AND afd2.prs_kostenplaats_key = kp2.prs_kostenplaats_key
+ AND kp2.prs_perslid_key IS NULL
+ UNION ALL -- Afdelingen zonder budgethouder 3 niveaux lager
+ SELECT afd3.prs_afdeling_key afd_key,
+ ap.prs_key,
+ 'Nee',
+ ap.bv
+ FROM (SELECT afdx.prs_afdeling_key afd_key,
+ kp.prs_perslid_key prs_key,
+ 'B' bv -- Budgethouder/Vervanger
+ FROM prs_afdeling afdx,
+ prs_v_aanwezigkostenplaats kp,
+ prs_v_aanwezigperslid pb
+ WHERE afdx.prs_afdeling_verwijder IS NULL
+ AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
+ AND kp.prs_perslid_key = pb.prs_perslid_key
+ UNION ALL
+ SELECT afdx.prs_afdeling_key afd_key,
+ c.prs_perslid_key_alt prs_key,
+ 'V' bv -- Budgethouder/Vervanger
+ FROM prs_afdeling afdx,
+ prs_v_aanwezigkostenplaats kp,
+ prs_collega c
+ WHERE afdx.prs_afdeling_verwijder IS NULL
+ AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
+ AND kp.prs_perslid_key = c.prs_perslid_key) ap,
+ prs_afdeling afd1,
+ prs_v_aanwezigkostenplaats kp1,
+ prs_afdeling afd2,
+ prs_v_aanwezigkostenplaats kp2,
+ prs_afdeling afd3,
+ prs_v_aanwezigkostenplaats kp3
+ WHERE ap.afd_key = afd1.prs_afdeling_parentkey
+ AND afd1.prs_afdeling_verwijder IS NULL
+ AND afd1.prs_kostenplaats_key = kp1.prs_kostenplaats_key
+ AND kp1.prs_perslid_key IS NULL
+ AND afd1.prs_afdeling_key = afd2.prs_afdeling_parentkey
+ AND afd2.prs_afdeling_verwijder IS NULL
+ AND afd2.prs_kostenplaats_key = kp2.prs_kostenplaats_key
+ AND kp2.prs_perslid_key IS NULL
+ AND afd2.prs_afdeling_key = afd3.prs_afdeling_parentkey
+ AND afd3.prs_afdeling_verwijder IS NULL
+ AND afd3.prs_kostenplaats_key = kp3.prs_kostenplaats_key
+ AND kp3.prs_perslid_key IS NULL
+ UNION ALL -- Afdelingen zonder budgethouder 4 niveaux lager
+ SELECT afd4.prs_afdeling_key afd_key,
+ ap.prs_key,
+ 'Nee',
+ ap.bv
+ FROM (SELECT afdx.prs_afdeling_key afd_key,
+ kp.prs_perslid_key prs_key,
+ 'B' bv -- Budgethouder/Vervanger
+ FROM prs_afdeling afdx,
+ prs_v_aanwezigkostenplaats kp,
+ prs_v_aanwezigperslid pb
+ WHERE afdx.prs_afdeling_verwijder IS NULL
+ AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
+ AND kp.prs_perslid_key = pb.prs_perslid_key
+ UNION ALL
+ SELECT afdx.prs_afdeling_key afd_key,
+ c.prs_perslid_key_alt prs_key,
+ 'V' bv -- Budgethouder/Vervanger
+ FROM prs_afdeling afdx,
+ prs_v_aanwezigkostenplaats kp,
+ prs_collega c
+ WHERE afdx.prs_afdeling_verwijder IS NULL
+ AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key
+ AND kp.prs_perslid_key = c.prs_perslid_key) ap,
+ prs_afdeling afd1,
+ prs_v_aanwezigkostenplaats kp1,
+ prs_afdeling afd2,
+ prs_v_aanwezigkostenplaats kp2,
+ prs_afdeling afd3,
+ prs_v_aanwezigkostenplaats kp3,
+ prs_afdeling afd4,
+ prs_v_aanwezigkostenplaats kp4
+ WHERE ap.afd_key = afd1.prs_afdeling_parentkey
+ AND afd1.prs_afdeling_verwijder IS NULL
+ AND afd1.prs_kostenplaats_key = kp1.prs_kostenplaats_key
+ AND kp1.prs_perslid_key IS NULL
+ AND afd1.prs_afdeling_key = afd2.prs_afdeling_parentkey
+ AND afd2.prs_afdeling_verwijder IS NULL
+ AND afd2.prs_kostenplaats_key = kp2.prs_kostenplaats_key
+ AND kp2.prs_perslid_key IS NULL
+ AND afd2.prs_afdeling_key = afd3.prs_afdeling_parentkey
+ AND afd3.prs_afdeling_verwijder IS NULL
+ AND afd3.prs_kostenplaats_key = kp3.prs_kostenplaats_key
+ AND kp3.prs_perslid_key IS NULL
+ AND afd3.prs_afdeling_key = afd4.prs_afdeling_parentkey
+ AND afd4.prs_afdeling_verwijder IS NULL
+ AND afd4.prs_kostenplaats_key = kp4.prs_kostenplaats_key
+ AND kp4.prs_perslid_key IS NULL;
+
+-- RWSN#27015: Omgebutst!
+/* Formatted on 29-11-2013 13:24:42 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW rwsn_v_noti_aut_ictaanvragen
(
code,
@@ -10582,11 +11180,200 @@ CREATE OR REPLACE VIEW rwsn_v_noti_aut_ictaanvragen
par2,
xkey
)
-AS
+AS -- ORD2GO naar FBs via srtkenmerk_key=103/104/105!
SELECT sn.fac_srtnotificatie_code,
NULL,
- cp.prs_key,
- REPLACE (sn.fac_srtnotificatie_oms, '##MAILTO##', p.prs_perslid_email),
+ fac.safe_to_number (ikd2.ins_kenmerkdeel_waarde),
+ REPLACE (
+ REPLACE (
+ sn.fac_srtnotificatie_oms,
+ '##OPDRKEY##',
+ TO_CHAR (o.mld_melding_key)
+ || '/'
+ || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
+ ),
+ '##MAILTO##',
+ p.prs_perslid_email
+ ),
+ o.mld_opdr_key,
+ sm.mld_stdmelding_omschrijving,
+ NULL,
+ NULL
+ FROM mld_opdr o,
+ mld_melding m,
+ mld_stdmelding sm,
+ ins_tab_discipline td,
+ mld_kenmerk mk,
+ mld_srtkenmerk msk,
+ fac_kenmerkdomein kd,
+ prs_perslid p,
+ mld_v_aanwezigkenmerkmelding mkm,
+ ins_v_aanwezigkenmerkdeel ikd1,
+ ins_kenmerk ik1,
+ fac_usrdata ap,
+ ins_v_aanwezigkenmerkdeel ikd2,
+ ins_kenmerk ik2,
+ fac_srtnotificatie sn
+ WHERE o.mld_statusopdr_key = 10 -- Ter goedkeuring!
+ AND EXISTS
+ (SELECT 1
+ FROM fac_tracking
+ WHERE fac_srtnotificatie_key = 276 -- ORDGOE
+ AND fac_tracking_refkey = o.mld_opdr_key
+ AND TRUNC (fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440)
+ AND TO_NUMBER (TO_CHAR (fac_tracking_datum, 'HH24')) + 1 =
+ TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24')))
+ AND o.mld_melding_key = m.mld_melding_key
+ AND m.mld_stdmelding_key = sm.mld_stdmelding_key
+ AND sm.mld_ins_discipline_key = td.ins_discipline_key
+ AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen
+ AND ( (sm.mld_stdmelding_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'S')
+ OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'D'))
+ AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
+ AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
+ AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%'
+ AND kd.fac_kenmerkdomein_module = 'MLD'
+ AND m.prs_perslid_key = p.prs_perslid_key
+ AND m.mld_melding_key = mkm.mld_melding_key
+ AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
+ AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) =
+ ikd1.ins_deel_key
+ AND ikd1.ins_kenmerk_key = ik1.ins_kenmerk_key
+ AND ik1.ins_srtkenmerk_key = 101 -- Autorisatieproces
+ AND fac.safe_to_number (ikd1.ins_kenmerkdeel_waarde) =
+ ap.fac_usrdata_key
+ AND ap.fac_usrdata_code = '2' -- Langs FB
+ AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) =
+ ikd2.ins_deel_key
+ AND ikd2.ins_kenmerk_key = ik2.ins_kenmerk_key
+ AND ik2.ins_srtkenmerk_key BETWEEN 103 AND 105 -- FB123
+ AND sn.fac_srtnotificatie_code = 'ORD2GO'
+ UNION ALL -- ORD2GO naar KEYs via eigen tabel Org2Afkorting!
+ SELECT sn.fac_srtnotificatie_code,
+ NULL,
+ fac.safe_to_number (ikd2.ins_kenmerkdeel_waarde),
+ REPLACE (
+ REPLACE (
+ sn.fac_srtnotificatie_oms,
+ '##OPDRKEY##',
+ TO_CHAR (o.mld_melding_key)
+ || '/'
+ || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
+ ),
+ '##MAILTO##',
+ p.prs_perslid_email
+ ),
+ o.mld_opdr_key,
+ sm.mld_stdmelding_omschrijving,
+ NULL,
+ NULL
+ FROM mld_opdr o,
+ mld_melding m,
+ mld_stdmelding sm,
+ ins_tab_discipline td,
+ mld_kenmerk mk,
+ mld_srtkenmerk msk,
+ fac_kenmerkdomein kd,
+ prs_perslid p,
+ prs_v_afdeling_boom ab,
+ fac_usrdata oa,
+ mld_v_aanwezigkenmerkmelding mkm,
+ ins_v_aanwezigkenmerkdeel ikd1,
+ ins_kenmerk ik1,
+ fac_usrdata ap,
+ ins_v_aanwezigkenmerkdeel ikd2,
+ ins_kenmerk ik2,
+ ins_srtkenmerk isk,
+ fac_srtnotificatie sn
+ WHERE o.mld_statusopdr_key = 10 -- Ter goedkeuring!
+ AND EXISTS
+ (SELECT 1
+ FROM fac_tracking
+ WHERE fac_srtnotificatie_key = 276 -- ORDGOE
+ AND fac_tracking_refkey = o.mld_opdr_key
+ AND TRUNC (fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440)
+ AND TO_NUMBER (TO_CHAR (fac_tracking_datum, 'HH24')) + 1 =
+ TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24')))
+ AND o.mld_melding_key = m.mld_melding_key
+ AND m.mld_stdmelding_key = sm.mld_stdmelding_key
+ AND sm.mld_ins_discipline_key = td.ins_discipline_key
+ AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen
+ AND ( (sm.mld_stdmelding_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'S')
+ OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'D'))
+ AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
+ AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
+ AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%'
+ AND kd.fac_kenmerkdomein_module = 'MLD'
+ AND m.prs_perslid_key = p.prs_perslid_key
+ AND p.prs_afdeling_key = ab.prs_afdeling_key
+ AND ab.prs_afdeling_key1 =
+ fac.safe_to_number (oa.fac_usrdata_code)
+ AND oa.fac_usrtab_key = 2 -- Org2Afkorting
+ AND m.mld_melding_key = mkm.mld_melding_key
+ AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key
+ AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) =
+ ikd1.ins_deel_key
+ AND ikd1.ins_kenmerk_key = ik1.ins_kenmerk_key
+ AND ik1.ins_srtkenmerk_key = 101 -- Autorisatieproces
+ AND fac.safe_to_number (ikd1.ins_kenmerkdeel_waarde) =
+ ap.fac_usrdata_key
+ AND ap.fac_usrdata_code = '3' -- Langs KEY
+ AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) =
+ ikd2.ins_deel_key
+ AND ikd2.ins_kenmerk_key = ik2.ins_kenmerk_key
+ AND ik2.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
+ AND isk.ins_srtkenmerk_upper LIKE
+ '%' || UPPER (oa.fac_usrdata_omschr)
+ AND sn.fac_srtnotificatie_code = 'ORD2GO'
+ UNION ALL -- Initiele notificatie ook naar (huidige) vervangers van BH!
+ SELECT sn.fac_srtnotificatie_code,
+ NULL,
+ pv.prs_perslid_key,
+ REPLACE (sn.fac_srtnotificatie_oms,
+ '##MAILTO##',
+ pv.prs_perslid_email),
+ o.mld_opdr_key,
+ sm.mld_stdmelding_omschrijving,
+ NULL,
+ NULL
+ FROM mld_melding m,
+ mld_stdmelding sm,
+ ins_tab_discipline td,
+ mld_opdr o,
+ fac_tracking t,
+ prs_collega c, -- Vervangers!
+ prs_perslid pv, -- Vervangers!
+ fac_srtnotificatie sn
+ WHERE m.mld_melding_status IN (4, 7) -- Geaccepteerd/Uitgegeven
+ AND m.mld_stdmelding_key = sm.mld_stdmelding_key
+ AND sm.mld_ins_discipline_key = td.ins_discipline_key
+ AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen
+ AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag
+ AND m.mld_melding_key = o.mld_melding_key
+ AND o.mld_statusopdr_key = 3 -- Ter fiattering!
+ AND o.mld_opdr_key = t.fac_tracking_refkey
+ AND t.fac_srtnotificatie_key = 166 -- ORDFIA
+ AND t.fac_tracking_key IN
+ (SELECT MAX (fac_tracking_key)
+ FROM fac_tracking
+ WHERE fac_srtnotificatie_key = 166 -- ORDFIA
+ AND fac_tracking_refkey =
+ t.fac_tracking_refkey)
+ AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440)
+ AND TO_NUMBER (TO_CHAR (t.fac_tracking_datum, 'HH24')) + 1 =
+ TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24'))
+ AND t.prs_perslid_key = c.prs_perslid_key
+ AND c.prs_perslid_key_alt = pv.prs_perslid_key
+ AND sn.fac_srtnotificatie_code = 'CUST02'
+ UNION ALL -- Afwijzing naar klant!
+ SELECT sn.fac_srtnotificatie_code,
+ NULL,
+ m.prs_perslid_key,
+ REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', m.mld_melding_key),
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
NULL,
@@ -10594,27 +11381,30 @@ AS
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline td,
- prs_v_aanwezigperslid p,
- rwsn_v_ictcp_per_afd cp,
+ mld_opdr o,
+ fac_tracking t,
fac_srtnotificatie sn
- WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
- AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE + 5/1440)
- AND TO_NUMBER(TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 = TO_NUMBER (TO_CHAR (SYSDATE + 5/1440, 'HH24'))
+ WHERE m.mld_melding_status IN (4, 7) -- Geaccepteerd/Uitgegeven
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
- AND sm.mld_stdmelding_urgentie IS NOT NULL
AND sm.mld_ins_discipline_key = td.ins_discipline_key
- AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen
- AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag
- AND m.prs_perslid_key = p.prs_perslid_key
- AND p.prs_afdeling_key = cp.afd_key
- AND sn.fac_srtnotificatie_code = 'CUST02'
- AND NOT EXISTS
- (SELECT 1
- FROM fac_gebruikersgroep gg
- WHERE gg.fac_groep_key IN (421, 422) -- ICT cp.
- AND gg.prs_perslid_key = fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key));
+ AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen
+ AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag
+ AND m.mld_melding_key = o.mld_melding_key
+ AND o.mld_statusopdr_key = 2 -- Niet akkoord!
+ AND o.mld_opdr_key = t.fac_tracking_refkey
+ AND t.fac_srtnotificatie_key IN (168, 277) -- ORDFNO/GNO
+ AND t.fac_tracking_key IN
+ (SELECT MAX (fac_tracking_key)
+ FROM fac_tracking
+ WHERE fac_srtnotificatie_key IN (168, 277)
+ AND fac_tracking_refkey =
+ t.fac_tracking_refkey)
+ AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440)
+ AND TO_NUMBER (TO_CHAR (t.fac_tracking_datum, 'HH24')) + 1 =
+ TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24'))
+ AND sn.fac_srtnotificatie_code = 'CUST06';
-/* Formatted on 15-6-2012 11:55:55 (QP5 v5.115.810.9015) */
+/* Formatted on 8-11-2013 11:06:25 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW rwsn_v_noti_did_reminder
(
code,
@@ -10655,18 +11445,11 @@ AS
AND MOD (fac.count_work_days (m.mld_melding_datum, SYSDATE), 2) =
1 -- Om de (werk)dag!
AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6' -- Ma t/m Vr
- AND sn.fac_srtnotificatie_code = 'CUST06'
- AND NOT EXISTS
- (SELECT 1
- FROM fac_gebruikersgroep gg
- WHERE gg.fac_groep_key IN (421, 422) -- ICT cp.
- AND gg.prs_perslid_key =
- fac.gettrackinguserkey ('MLDNEW',
- m.mld_melding_key))
- UNION ALL
+ AND sn.fac_srtnotificatie_code = 'CUST07'
+ UNION ALL -- En opnieuw naar (huidige) vervangers van die persoon igv. BH?
SELECT sn.fac_srtnotificatie_code,
NULL,
- prs.getkpverantwoordelijke (a.prs_kostenplaats_key, 2, -1), -- Wat als ongedefinieerd?
+ c.prs_perslid_key_alt, -- En vervangers van die persoon igv. BH?
REPLACE (sn.fac_srtnotificatie_oms,
'##MAILTO##',
p.prs_perslid_email),
@@ -10681,6 +11464,9 @@ AS
prs_afdeling a,
mld_opdr o,
fac_tracking t,
+ prs_collega c, -- Vervangers!
+ prs_perslid pv, -- Vervangers!
+ fac_gebruikersgroep gg,
fac_srtnotificatie sn
WHERE m.mld_melding_status IN (4, 7) -- Geaccepteerd/Uitgegeven
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
@@ -10693,14 +11479,25 @@ AS
AND o.mld_statusopdr_key = 3 -- Ter fiattering!
AND o.mld_opdr_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 166 -- ORDFIA
+ AND t.fac_tracking_key IN
+ (SELECT MAX (fac_tracking_key)
+ FROM fac_tracking
+ WHERE fac_srtnotificatie_key = 166 -- ORDFIA
+ AND fac_tracking_refkey =
+ t.fac_tracking_refkey)
+ AND t.prs_perslid_key = c.prs_perslid_key
+ AND c.prs_perslid_key_alt = pv.prs_perslid_key
+ AND pv.prs_perslid_key = gg.prs_perslid_key
+ AND gg.fac_groep_key = 1219 -- ICT: Fiattering namens
AND fac.count_work_days (t.fac_tracking_datum, SYSDATE) > 2
AND MOD (fac.count_work_days (t.fac_tracking_datum, SYSDATE), 2) =
1 -- Om de (werk)dag!
AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6' -- Ma t/m Vr
AND sn.fac_srtnotificatie_code = 'CUST07';
-/* Formatted on 23-7-2010 12:54:12 (QP5 v5.136.908.31019) */
-CREATE OR REPLACE VIEW rwsn_v_rap_aut_ictaanvragen
+-- RWSN#27015: Voorheen rwsn_v_rap_aut_ictaanvragen!
+/* Formatted on 9-11-2013 21:15:20 (QP5 v5.115.810.9015) */
+CREATE OR REPLACE VIEW rwsn_v_rap_aut_ictbeheer
(
nummer,
datum,
@@ -10711,11 +11508,15 @@ CREATE OR REPLACE VIEW rwsn_v_rap_aut_ictaanvragen
status,
geplande_einddatum,
hide_f_mld_melding_key,
+ hide_f_mld_opdr_key,
fclt_3d_user_key
)
AS
- SELECT DECODE (COALESCE (sd.ins_srtdiscipline_prefix, ''), '', '', sd.ins_srtdiscipline_prefix)
- || TO_CHAR (m.mld_melding_key)
+ -- 1 regel per FB voor applicatie in onderdeel van melder!
+ SELECT COALESCE (sd.ins_srtdiscipline_prefix, '')
+ || TO_CHAR (o.mld_melding_key)
+ || '/'
+ || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
nummer,
TO_CHAR (m.mld_melding_datum, 'dd-mm-yyyy') datum,
DECODE (COALESCE (sd.ins_srtdiscipline_prefix, ''), '', '', sd.ins_srtdiscipline_prefix || '-')
@@ -10731,30 +11532,148 @@ AS
melder,
s.mld_statuses_omschrijving status,
m.mld_melding_einddatum geplande_einddatum,
- m.mld_melding_key mld_key,
- cp.prs_key ict_contact_key
- FROM mld_melding m,
+ o.mld_melding_key melding_key,
+ o.mld_opdr_key opdracht_key,
+ fac.safe_to_number (ikd.ins_kenmerkdeel_waarde) beheerder_key
+ FROM mld_opdr o,
+ mld_statusopdr s,
+ mld_melding m,
mld_statuses s,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
+ --mld_disc_params dp,
+ mld_kenmerk mk,
+ mld_srtkenmerk msk,
+ fac_kenmerkdomein kd,
prs_v_aanwezigperslid p,
- rwsn_v_ictcp_per_afd cp
- WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
- AND m.mld_melding_status = s.mld_statuses_key
+ mld_v_aanwezigkenmerkmelding mkm,
+ ins_v_aanwezigkenmerkdeel ikd,
+ ins_kenmerk ik,
+ ins_v_aanwezigkenmerkdeel ikd2,
+ ins_kenmerk ik2,
+ fac_usrdata ud2
+ WHERE o.mld_statusopdr_key = 10 -- Ter goedkeuring!
+ AND o.mld_statusopdr_key = s.mld_statusopdr_key
+ AND o.mld_melding_key = m.mld_melding_key
+ AND m.mld_stdmelding_key = sm.mld_stdmelding_key
+ AND sm.mld_ins_discipline_key = td.ins_discipline_key
+ AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
+ AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen
+ AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag
+ --AND td.ins_discipline_key = dp.mld_ins_discipline_key
+ AND ( (sm.mld_stdmelding_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'S')
+ OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'D'))
+ AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
+ AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
+ AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%'
+ AND kd.fac_kenmerkdomein_module = 'MLD'
+ AND m.prs_perslid_key = p.prs_perslid_key
+ AND m.mld_melding_key = mkm.mld_melding_key
+ AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) =
+ ikd.ins_deel_key
+ AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key
+ AND ik.ins_srtkenmerk_key BETWEEN 103 AND 105 -- FB123
+ AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) =
+ ikd2.ins_deel_key
+ AND ikd2.ins_kenmerk_key = ik2.ins_kenmerk_key
+ AND ik2.ins_srtkenmerk_key = 101 -- Autorisatieproces
+ AND fac.safe_to_number (ikd2.ins_kenmerkdeel_waarde) =
+ ud2.fac_usrdata_key
+ AND ud2.fac_usrdata_code = '2'
+ UNION ALL -- 1 regel per KEY voor applicatie in onderdeel van melder!
+ SELECT COALESCE (sd.ins_srtdiscipline_prefix, '')
+ || TO_CHAR (o.mld_melding_key)
+ || '/'
+ || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
+ nummer,
+ TO_CHAR (m.mld_melding_datum, 'dd-mm-yyyy') datum,
+ DECODE (COALESCE (sd.ins_srtdiscipline_prefix, ''),
+ '', '',
+ sd.ins_srtdiscipline_prefix || '-')
+ || td.ins_discipline_omschrijving
+ vakgroep,
+ sm.mld_stdmelding_omschrijving melding,
+ o.mld_opdr_omschrijving opdracht_tekst,
+ p.prs_perslid_naam
+ || DECODE (NVL (p.prs_perslid_voorletters, ''),
+ '', '',
+ ', ' || p.prs_perslid_voorletters)
+ || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''),
+ '', '',
+ ' ' || p.prs_perslid_tussenvoegsel)
+ || DECODE (NVL (p.prs_perslid_voornaam, ''),
+ '', '',
+ ' (' || p.prs_perslid_voornaam || ')')
+ || DECODE (NVL (p.prs_perslid_nr, ''),
+ '', '',
+ ' [' || p.prs_perslid_nr || ']')
+ melder,
+ s.mld_statusopdr_omschrijving status,
+ m.mld_melding_einddatum geplande_einddatum,
+ o.mld_melding_key melding_key,
+ o.mld_opdr_key opdracht_key,
+ fac.safe_to_number (ikd.ins_kenmerkdeel_waarde) beheerder_key
+ FROM mld_opdr o,
+ mld_statusopdr s,
+ mld_melding m,
+ mld_stdmelding sm,
+ ins_tab_discipline td,
+ ins_srtdiscipline sd,
+ --mld_disc_params dp,
+ mld_kenmerk mk,
+ mld_srtkenmerk msk,
+ fac_kenmerkdomein kd,
+ prs_v_aanwezigperslid p,
+ prs_v_afdeling_boom ab,
+ fac_usrdata ud,
+ mld_v_aanwezigkenmerkmelding mkm,
+ ins_v_aanwezigkenmerkdeel ikd,
+ ins_kenmerk ik,
+ ins_srtkenmerk isk,
+ ins_v_aanwezigkenmerkdeel ikd2,
+ ins_kenmerk ik2,
+ fac_usrdata ud2
+ WHERE o.mld_statusopdr_key = 10 -- Ter goedkeuring!
+ AND o.mld_statusopdr_key = s.mld_statusopdr_key
+ AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
- AND sm.mld_stdmelding_urgentie IS NOT NULL
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen
AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
+ AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen
+ AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag
+ --AND td.ins_discipline_key = dp.mld_ins_discipline_key
+ AND ( (sm.mld_stdmelding_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'S')
+ OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key
+ AND mk.mld_kenmerk_niveau = 'D'))
+ AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
+ AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
+ AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%'
+ AND kd.fac_kenmerkdomein_module = 'MLD'
AND m.prs_perslid_key = p.prs_perslid_key
- AND p.prs_afdeling_key = cp.afd_key
- AND NOT EXISTS
- (SELECT 1
- FROM fac_gebruikersgroep gg
- WHERE gg.fac_groep_key IN (421, 422) -- ICT cp.
- AND gg.prs_perslid_key = fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key));
+ AND p.prs_afdeling_key = ab.prs_afdeling_key
+ AND ab.prs_afdeling_key1 =
+ fac.safe_to_number (ud.fac_usrdata_code)
+ AND ud.fac_usrtab_key = 2 -- Org2Afkorting
+ AND m.mld_melding_key = mkm.mld_melding_key
+ AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) =
+ ikd.ins_deel_key
+ AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key
+ AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
+ AND isk.ins_srtkenmerk_upper LIKE
+ '%' || UPPER (ud.fac_usrdata_omschr)
+ AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) =
+ ikd2.ins_deel_key
+ AND ikd2.ins_kenmerk_key = ik2.ins_kenmerk_key
+ AND ik2.ins_srtkenmerk_key = 101 -- Autorisatieproces
+ AND fac.safe_to_number (ikd2.ins_kenmerkdeel_waarde) =
+ ud2.fac_usrdata_key
+ AND ud2.fac_usrdata_code = '3';
/* Formatted on 23-7-2010 14:32:13 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW rwsn_v_rap_orphan_ictaanvragen
@@ -11587,6 +12506,29 @@ AS
OR hardware.oms IS NOT NULL -- ICT Aanvraag voor hardware
/
+-- RWSN#27941 - Via product/dienst in eigen tabel naar alle contactpersonen in
+-- autorisatiegroep en daarvan de contactgegevens!
+/* Formatted on 31-10-2013 17:16:08 (QP5 v5.115.810.9015) */
+CREATE OR REPLACE VIEW rwsn_v_rap_civ_specials
+(
+ fclt_f_product,
+ contactpersoon,
+ telefoon,
+ email
+)
+AS
+ SELECT ud.fac_usrdata_code,
+ pf.prs_perslid_naam_full,
+ COALESCE (p.prs_perslid_telefoonnr, p.prs_perslid_mobiel),
+ p.prs_perslid_email
+ FROM fac_usrdata ud,
+ fac_gebruikersgroep gg,
+ prs_perslid p,
+ prs_v_perslid_fullnames_all pf
+ WHERE ud.fac_usrtab_key = 2302 -- CIV-specials
+ AND fac.safe_to_number (ud.fac_usrdata_omschr) = gg.fac_groep_key
+ AND gg.prs_perslid_key = p.prs_perslid_key
+ AND p.prs_perslid_key = pf.prs_perslid_key;
/* ISDM-koppeling */
/* RWSN#16022 - Automatisch aanmaken van opdrachten tbv. ISDM-koppeling! */
@@ -12463,770 +13405,6 @@ END;
/
-/* Formatted on 28-6-2010 11:12:28 (QP5 v5.115.810.9015) */
-CREATE OR REPLACE PROCEDURE rwsn_import_budgethouders (
- p_import_key IN NUMBER
-)
-IS
- c_delim VARCHAR2 (1) := ';';
- v_newline VARCHAR2 (1000); -- Input line
- v_errormsg VARCHAR2 (1000);
- oracle_err_num NUMBER;
- oracle_err_mes VARCHAR2 (200);
- v_aanduiding VARCHAR (200);
- header_is_valid NUMBER := 0;
- v_count_tot NUMBER (10) := 0;
- v_count_import NUMBER (10) := 0;
- v_ongeldig NUMBER (1) := 0;
- -- De importvelden:
- v_prs_afdeling_naam VARCHAR2 (256); -- C10
- v_prs_perslid_key VARCHAR2 (256); -- N10
-
- CURSOR c1
- IS
- SELECT *
- FROM fac_imp_file
- WHERE fac_import_key = p_import_key
- ORDER BY fac_imp_file_index;
-BEGIN
- DELETE FROM rwsn_imp_budgethouders;
-
- COMMIT;
-
- FOR rec1 IN c1
- LOOP
- v_newline := rec1.fac_imp_file_line;
- v_errormsg := 'Fout bij opvragen importregel';
- v_aanduiding := '';
- v_ongeldig := 0;
-
- -- Lees alle veldwaarden
- fac.imp_getfield (v_newline, c_delim, v_prs_afdeling_naam);
- fac.imp_getfield (v_newline, c_delim, v_prs_perslid_key);
- v_aanduiding :=
- '[' || v_prs_afdeling_naam || '|' || v_prs_perslid_key || '] ';
-
- -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
- -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
- -- Ik negeer alles totdat ik een geldige header ben gepasseerd.
- IF (header_is_valid = 0)
- THEN
- IF UPPER (v_prs_afdeling_naam) = 'DIENST'
- AND UPPER (v_prs_perslid_key) = 'BUDGETHOUDER'
- THEN
- header_is_valid := 1;
- END IF;
- ELSE
- v_count_tot := v_count_tot + 1;
- -- Controleer alle veldwaarden
- v_errormsg := 'Dienst ongeldig; ongedefinieerd of te lang';
- v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam);
-
- IF v_prs_afdeling_naam IS NULL OR LENGTH (v_prs_afdeling_naam) > 10
- THEN
- v_ongeldig := 1;
- fac.imp_writelog (p_import_key,
- 'W',
- v_aanduiding || v_errormsg,
- 'Regel wordt overgeslagen!');
- END IF;
-
- --
- v_errormsg := 'Budgethouder ongeldig; ongedefinieerd of te lang';
- v_prs_perslid_key := TRIM (v_prs_perslid_key);
-
- IF v_prs_perslid_key IS NULL OR LENGTH (v_prs_perslid_key) > 10
- THEN
- v_ongeldig := 1;
- fac.imp_writelog (p_import_key,
- 'W',
- v_aanduiding || v_errormsg,
- 'Regel wordt overgeslagen!');
- END IF;
-
- -- Insert geformatteerde import record
- IF v_ongeldig = 0
- THEN
- BEGIN
- v_errormsg := 'Fout bij wegschrijven importregel';
-
- INSERT INTO rwsn_imp_budgethouders (
- prs_afdeling_naam,
- prs_perslid_key
- )
- VALUES (v_prs_afdeling_naam, v_prs_perslid_key);
-
- v_count_import := v_count_import + 1;
- EXCEPTION
- WHEN OTHERS
- THEN
- oracle_err_num := SQLCODE;
- oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
- v_errormsg :=
- v_errormsg
- || ' ORACLE (error '
- || oracle_err_num
- || '/'
- || oracle_err_mes
- || ')';
- fac.imp_writelog (
- p_import_key,
- 'E',
- v_aanduiding || v_errormsg,
- ''
- );
- END;
- END IF;
- END IF;
-
- COMMIT;
- END LOOP;
-
- IF (header_is_valid = 0)
- THEN
- fac.imp_writelog (p_import_key,
- 'E',
- 'Ongeldig importbestand',
- 'Geen header of header niet volgens specificatie!');
- ELSE
- fac.imp_writelog (
- p_import_key,
- 'S',
- 'Budgethouders/aantal ingelezen importregels: '
- || TO_CHAR (v_count_tot),
- ''
- );
- fac.imp_writelog (
- p_import_key,
- 'S',
- 'Budgethouders/aantal ongeldige niet ingelezen importregels: '
- || TO_CHAR (v_count_tot - v_count_import),
- ''
- );
- END IF;
-
- COMMIT;
-EXCEPTION
- WHEN OTHERS
- THEN
- oracle_err_num := SQLCODE;
- oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
- v_errormsg :=
- v_errormsg
- || 'ORACLE (error '
- || oracle_err_num
- || '/'
- || oracle_err_mes
- || ')';
- fac.imp_writelog (p_import_key,
- 'E',
- v_aanduiding || v_errormsg,
- 'Inleesproces budgethouders afgebroken!');
-END rwsn_import_budgethouders;
-/
-
-/* Formatted on 12-1-2011 11:44:55 (QP5 v5.115.810.9015) */
-CREATE OR REPLACE PROCEDURE rwsn_update_budgethouders (
- p_import_key IN NUMBER
-)
-AS
- -- Cursor loopt over de voorkomende diensten.
- CURSOR c1
- IS
- SELECT prs_afdeling_naam dienst_naam,
- prs_perslid_key budgethouder_key
- FROM rwsn_imp_budgethouders;
-
- v_errormsg VARCHAR2 (1000) := '';
- oracle_err_num NUMBER;
- oracle_err_mes VARCHAR2 (200);
- v_test_key NUMBER;
-BEGIN
- -- Loop door de voorkomende diensten en werk daarvoor de budgethouders bij.
- FOR rec IN c1
- LOOP
- v_errormsg := 'Fout bij bepalen dienst [' || rec.dienst_naam || '] ';
-
- SELECT prs_afdeling_key
- INTO v_test_key
- FROM prs_v_aanwezigafdeling dienst
- WHERE dienst.prs_afdeling_naam = rec.dienst_naam
- AND dienst.prs_afdeling_parentkey IS NULL;
-
- v_errormsg :=
- 'Fout bij bepalen budgethouder [' || rec.budgethouder_key || '] ';
-
- SELECT prs_perslid_key
- INTO v_test_key
- FROM prs_v_aanwezigperslid p
- WHERE p.prs_perslid_key = rec.budgethouder_key;
-
- v_errormsg :=
- 'Fout bij bijwerken budgethouder ['
- || rec.budgethouder_key
- || '] voor dienst ['
- || rec.dienst_naam
- || '] ';
-
- UPDATE prs_kostenplaats k
- SET k.prs_perslid_key = rec.budgethouder_key
- WHERE k.prs_kostenplaats_key IN
- (SELECT k.prs_kostenplaats_key
- FROM prs_v_aanwezigafdeling dienst,
- prs_v_afdeling_boom ab,
- prs_afdeling a,
- prs_kostenplaats k
- WHERE dienst.prs_afdeling_naam = rec.dienst_naam
- AND dienst.prs_afdeling_parentkey IS NULL
- AND dienst.prs_afdeling_key =
- ab.prs_afdeling_key1
- AND ab.prs_afdeling_key = a.prs_afdeling_key
- AND a.prs_kostenplaats_key =
- k.prs_kostenplaats_key);
-
- COMMIT;
- END LOOP;
-EXCEPTION
- WHEN OTHERS
- THEN
- oracle_err_num := SQLCODE;
- oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
- v_errormsg :=
- v_errormsg
- || 'ORACLE (error '
- || oracle_err_num
- || '/'
- || oracle_err_mes
- || ')';
- fac.imp_writelog (p_import_key,
- 'E',
- v_errormsg,
- 'Importproces budgethouders afgebroken!');
-END rwsn_update_budgethouders;
-/
-
-/* Formatted on 10-1-2011 12:22:35 (QP5 v5.115.810.9015) */
-CREATE OR REPLACE VIEW rwsn_v_rap_ictcp_expimp
-(
- hide_f_volgorde,
- fclt_f_dienst,
- fclt_f_afdelingsnivo,
- fclt_f_afdelingscode,
- afdelingspad,
- ictcp1,
- ictcp2,
- ictcp3
-)
-AS
- SELECT x.volgorde,
- COALESCE (y.dienst, '-'),
- COALESCE (x.nivo, '-'),
- COALESCE (x.afd_code, '-'),
- COALESCE (x.afd_pad, '-'),
- z1.ictcp1_email,
- z2.ictcp2_email,
- z3.ictcp3_email
- FROM ( SELECT ROWNUM volgorde,
- prs_afdeling_key,
- LPAD ('[' || TO_CHAR (LEVEL) || ']',
- DECODE (LEVEL, 1, 3, 3 * LEVEL),
- '.')
- nivo,
- prs_afdeling_naam1 afd_pad,
- prs_afdeling_upper afd_code
- FROM prs_v_aanwezigafdeling
- CONNECT BY PRIOR prs_afdeling_key =
- prs_afdeling_parentkey
- START WITH prs_afdeling_parentkey IS NULL) x
- LEFT JOIN
- (SELECT ab.prs_afdeling_key,
- a.prs_afdeling_omschrijving dienst
- FROM prs_v_afdeling_boom ab, prs_afdeling a
- WHERE ab.prs_afdeling_key1 = a.prs_afdeling_key)
- y
- ON x.prs_afdeling_key = y.prs_afdeling_key
- LEFT JOIN
- (SELECT kl.prs_link_key afd_key,
- p.prs_perslid_key ictcp1_key,
- COALESCE (p.prs_perslid_email, 'Onbekend')
- ictcp1_email
- FROM prs_kenmerklink kl, prs_perslid p
- WHERE kl.prs_kenmerk_key IN (1020) -- ICP1
- AND kl.prs_kenmerklink_verwijder IS NULL
- AND fac.safe_to_number (
- kl.prs_kenmerklink_waarde
- ) = p.prs_perslid_key
- AND p.prs_perslid_verwijder IS NULL) z1
- ON x.prs_afdeling_key = z1.afd_key
- LEFT JOIN
- (SELECT kl.prs_link_key afd_key,
- p.prs_perslid_key ictcp2_key,
- COALESCE (p.prs_perslid_email, 'Onbekend')
- ictcp2_email
- FROM prs_kenmerklink kl, prs_perslid p
- WHERE kl.prs_kenmerk_key IN (1021) -- ICP2
- AND kl.prs_kenmerklink_verwijder IS NULL
- AND fac.safe_to_number (
- kl.prs_kenmerklink_waarde
- ) = p.prs_perslid_key
- AND p.prs_perslid_verwijder IS NULL) z2
- ON x.prs_afdeling_key = z2.afd_key
- LEFT JOIN
- (SELECT kl.prs_link_key afd_key,
- p.prs_perslid_key ictcp3_key,
- COALESCE (p.prs_perslid_email, 'Onbekend')
- ictcp3_email
- FROM prs_kenmerklink kl, prs_perslid p
- WHERE kl.prs_kenmerk_key IN (1022) -- ICP3
- AND kl.prs_kenmerklink_verwijder IS NULL
- AND fac.safe_to_number (kl.prs_kenmerklink_waarde) =
- p.prs_perslid_key
- AND p.prs_perslid_verwijder IS NULL) z3
- ON x.prs_afdeling_key = z3.afd_key;
-
-/* Formatted on 10-1-2011 12:54:26 (QP5 v5.115.810.9015) */
-CREATE OR REPLACE PROCEDURE rwsn_import_ictcp (p_import_key IN NUMBER)
-IS
- c_delim VARCHAR2 (1) := ';';
- v_newline VARCHAR2 (1000); -- Input line
- v_errormsg VARCHAR2 (1000);
- oracle_err_num NUMBER;
- oracle_err_mes VARCHAR2 (200);
- v_aanduiding VARCHAR (200);
- header_is_valid NUMBER := 0;
- v_count_tot NUMBER (10) := 0;
- v_count_import NUMBER (10) := 0;
- v_ongeldig NUMBER (1) := 0;
- -- De importvelden:
- v_dienst VARCHAR2 (256); -- C60
- v_nivo VARCHAR2 (256); -- C10
- v_prs_afdeling_naam VARCHAR2 (256); -- C10
- v_prs_afdeling_pad VARCHAR2 (256); -- C256
- v_ictcp1_email VARCHAR2 (256); -- C200
- v_ictcp2_email VARCHAR2 (256); -- C200
- v_ictcp3_email VARCHAR2 (256); -- C200
-
- CURSOR c1
- IS
- SELECT *
- FROM fac_imp_file
- WHERE fac_import_key = p_import_key
- ORDER BY fac_imp_file_index;
-BEGIN
- DELETE FROM rwsn_imp_ictcp;
-
- COMMIT;
-
- FOR rec1 IN c1
- LOOP
- v_newline := rec1.fac_imp_file_line;
- v_errormsg := 'Fout opvragen te importeren rij';
- v_aanduiding := '';
- v_ongeldig := 0;
-
- -- Lees alle veldwaarden
- fac.imp_getfield (v_newline, c_delim, v_dienst);
- fac.imp_getfield (v_newline, c_delim, v_nivo);
- fac.imp_getfield (v_newline, c_delim, v_prs_afdeling_naam);
- fac.imp_getfield (v_newline, c_delim, v_prs_afdeling_pad);
- fac.imp_getfield (v_newline, c_delim, v_ictcp1_email);
- fac.imp_getfield (v_newline, c_delim, v_ictcp2_email);
- fac.imp_getfield (v_newline, c_delim, v_ictcp3_email);
- v_aanduiding :=
- '['
- || v_dienst
- || '|'
- || v_nivo
- || '|'
- || v_prs_afdeling_naam
- || '] ';
-
- -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
- -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
- -- Ik negeer alles totdat ik een geldige header ben gepasseerd.
- IF (header_is_valid = 0)
- THEN
- IF UPPER (v_dienst) = 'DIENST'
- AND UPPER (v_nivo) = 'AFDELINGSNIVO'
- AND UPPER (v_prs_afdeling_naam) = 'AFDELINGSCODE'
- AND UPPER (v_prs_afdeling_pad) = 'AFDELINGSPAD'
- AND UPPER (v_ictcp1_email) = 'ICTCP1'
- AND UPPER (v_ictcp2_email) = 'ICTCP2'
- AND UPPER (v_ictcp3_email) = 'ICTCP3'
- THEN
- header_is_valid := 1;
- END IF;
- ELSE
- v_count_tot := v_count_tot + 1;
- -- Controleer alle veldwaarden
- v_errormsg := 'Afdelingscode ongeldig; ongedefinieerd of te lang';
- v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam);
-
- IF v_prs_afdeling_naam IS NULL OR LENGTH (v_prs_afdeling_naam) > 10
- THEN
- v_ongeldig := 1;
- fac.imp_writelog (p_import_key,
- 'W',
- v_aanduiding || v_errormsg,
- 'Regel wordt overgeslagen!');
- END IF;
-
- --
- v_errormsg := 'ICTCP1-email te lang';
- v_ictcp1_email := TRIM (v_ictcp1_email);
-
- IF LENGTH (v_ictcp1_email) > 200
- THEN
- v_ictcp1_email := SUBSTR (v_ictcp1_email, 1, 200);
- fac.imp_writelog (
- p_import_key,
- 'W',
- v_aanduiding || v_errormsg,
- 'ICTCP1-email wordt afgebroken tot [' || v_ictcp1_email || ']'
- );
- END IF;
-
- --
- v_errormsg := 'ICTCP2-email te lang';
- v_ictcp2_email := TRIM (v_ictcp2_email);
-
- IF LENGTH (v_ictcp2_email) > 200
- THEN
- v_ictcp2_email := SUBSTR (v_ictcp2_email, 1, 200);
- fac.imp_writelog (
- p_import_key,
- 'W',
- v_aanduiding || v_errormsg,
- 'ICTCP2-email wordt afgebroken tot [' || v_ictcp2_email || ']'
- );
- END IF;
-
- --
- v_errormsg := 'ICTCP3-email te lang';
- v_ictcp3_email := TRIM (v_ictcp3_email);
-
- IF LENGTH (v_ictcp3_email) > 200
- THEN
- v_ictcp3_email := SUBSTR (v_ictcp3_email, 1, 200);
- fac.imp_writelog (
- p_import_key,
- 'W',
- v_aanduiding || v_errormsg,
- 'ICTCP3-email wordt afgebroken tot [' || v_ictcp3_email || ']'
- );
- END IF;
-
- -- Insert geformatteerde import record
- IF v_ongeldig = 0
- THEN
- BEGIN
- INSERT INTO rwsn_imp_ictcp (prs_afdeling_naam,
- ictcp1_email,
- ictcp2_email,
- ictcp3_email)
- VALUES (v_prs_afdeling_naam,
- v_ictcp1_email,
- v_ictcp2_email,
- v_ictcp3_email);
-
- v_count_import := v_count_import + 1;
- 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_aanduiding || v_errormsg,
- 'Fout bij toevoegen regel aan importtabel RWSN_IMP_ICTCP.'
- );
- END;
- END IF;
- END IF;
-
- COMMIT;
- END LOOP;
-
- IF (header_is_valid = 0)
- THEN
- fac.imp_writelog (p_import_key,
- 'E',
- 'Ongeldig importbestand',
- 'Geen header of header niet volgens specificatie!');
- ELSE
- fac.imp_writelog (
- p_import_key,
- 'S',
- 'ICT-CP: Aantal ingelezen importregels: ' || TO_CHAR (v_count_tot),
- ''
- );
- fac.imp_writelog (
- p_import_key,
- 'S',
- 'ICT-CP: Aantal ongeldige niet ingelezen importregels: '
- || TO_CHAR (v_count_tot - v_count_import),
- ''
- );
- END IF;
-EXCEPTION
- WHEN OTHERS
- THEN
- oracle_err_num := SQLCODE;
- oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
- v_errormsg :=
- v_errormsg
- || 'ORACLE (error '
- || oracle_err_num
- || '/'
- || oracle_err_mes
- || ')';
- fac.imp_writelog (p_import_key,
- 'E',
- v_errormsg,
- 'Inleesproces ICT-CP afgebroken!');
-END rwsn_import_ictcp;
-/
-
-/* Formatted on 12-1-2011 12:22:22 (QP5 v5.115.810.9015) */
-CREATE OR REPLACE PROCEDURE rwsn_update_ictcp (p_import_key IN NUMBER)
-AS
- -- Cursor loopt over de voorkomende afdelingen.
- CURSOR c1
- IS
- SELECT prs_afdeling_naam,
- ictcp1_email,
- ictcp2_email,
- ictcp3_email
- FROM rwsn_imp_ictcp;
-
- v_errormsg VARCHAR2 (1000) := ''; -- Global procedure variable!
- oracle_err_num NUMBER; -- Global procedure variable!
- oracle_err_mes VARCHAR2 (200); -- Global procedure variable!
- v_aanduiding VARCHAR (200); -- Global procedure variable!
- v_afd_key NUMBER;
- v_count_upd NUMBER;
- v_count NUMBER;
-
- -- SUBPROC
- PROCEDURE update_ictcp (p_afd_key IN NUMBER,
- p_ictcp_kkey IN NUMBER, -- 1020,1021 of 1022
- p_ictcp_email IN VARCHAR2)
- IS
- v_ictcp_key NUMBER;
- v_update NUMBER;
- v_count NUMBER;
- BEGIN
- v_errormsg :=
- 'Fout bij bepalen/bestaan nieuwe ICT-CP [' || p_ictcp_email || '] ';
-
- SELECT COUNT ( * )
- INTO v_update
- FROM prs_v_aanwezigperslid
- WHERE prs_perslid_email = p_ictcp_email;
-
- IF (v_update != 1 AND p_ictcp_email IS NOT NULL)
- THEN
- -- Niets doen; eventuele ICT-CPx van deze afdeling ongewijzigd!
- fac.imp_writelog (p_import_key,
- 'W',
- v_aanduiding || v_errormsg,
- 'Kan ICT-CP niet 1-duidig bepalen!');
-
- COMMIT;
- ELSE -- v_update=1 (wijzigen) OR ictcpx_email IS NULL (verwijderen)!
- -- Voor hoeveel ANDERE afdelingen is huidige ICT-CPx nog ICT-CP?
- v_errormsg :=
- 'Fout bij bepalen rol huidige ICT-CP ['
- || TO_CHAR (p_ictcp_kkey)
- || '] ';
-
- SELECT COUNT ( * )
- INTO v_count
- FROM prs_v_aanwezigkenmerklink kl1
- WHERE kl1.prs_kenmerk_key IN (1020, 1021, 1022) -- ICT-CP1+2+3
- AND kl1.prs_link_key != p_afd_key
- AND EXISTS
- (SELECT 1
- FROM prs_kenmerklink kl2
- WHERE kl2.prs_link_key = p_afd_key
- AND kl2.prs_kenmerk_key = p_ictcp_kkey
- AND fac.safe_to_number (
- kl2.prs_kenmerklink_waarde
- ) =
- fac.safe_to_number (
- kl1.prs_kenmerklink_waarde
- ));
-
- IF (v_count = 0)
- THEN
- v_errormsg :=
- 'Fout bij verwijderen rol van ICT-CP ['
- || TO_CHAR (p_ictcp_kkey)
- || '] ';
-
- DELETE FROM fac_gebruikersgroep gg
- WHERE gg.fac_groep_key = 422 -- ICT-CP rol
- AND EXISTS
- (SELECT 1
- FROM prs_kenmerklink kl
- WHERE kl.prs_link_key = p_afd_key
- AND kl.prs_kenmerk_key =
- p_ictcp_kkey
- AND fac.safe_to_number (
- kl.prs_kenmerklink_waarde
- ) = gg.prs_perslid_key);
- END IF;
-
- v_errormsg :=
- 'Fout bij verwijderen ICT-CP [' || TO_CHAR (p_ictcp_kkey) || '] ';
-
- DELETE FROM prs_kenmerklink
- WHERE prs_link_key = p_afd_key
- AND prs_kenmerk_key = p_ictcp_kkey;
-
- COMMIT;
-
- IF (v_update = 1)
- THEN
- v_errormsg :=
- 'Fout bij bepalen/key nieuwe ICT-CP ['
- || p_ictcp_email
- || '] ';
-
- SELECT prs_perslid_key
- INTO v_ictcp_key
- FROM prs_v_aanwezigperslid
- WHERE prs_perslid_email = p_ictcp_email;
-
- v_errormsg :=
- 'Fout bij toevoegen ICT-CP [' || p_ictcp_email || '] ';
-
- INSERT INTO prs_kenmerklink (prs_link_key,
- prs_kenmerklink_niveau,
- prs_kenmerk_key,
- prs_kenmerklink_waarde)
- VALUES (p_afd_key,
- 'A',
- p_ictcp_kkey,
- v_ictcp_key);
-
- -- Heeft nieuwe ICT-CPx al rol ICT-CP=422?
- v_errormsg :=
- 'Fout bij bepalen rol nieuwe ICT-CP ['
- || p_ictcp_email
- || '] ';
-
- SELECT COUNT ( * )
- INTO v_count
- FROM fac_gebruikersgroep
- WHERE fac_groep_key = 422 AND prs_perslid_key = v_ictcp_key;
-
- IF (v_count = 0)
- THEN
- v_errormsg :=
- 'Fout bij toevoegen rol van ICT-CP ['
- || p_ictcp_email
- || '] ';
-
- INSERT INTO fac_gebruikersgroep (
- fac_groep_key,
- prs_perslid_key
- )
- VALUES (422, v_ictcp_key);
- END IF;
-
- COMMIT;
- END IF;
- END IF;
- EXCEPTION
- WHEN OTHERS
- THEN
- oracle_err_num := SQLCODE;
- oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
- v_errormsg :=
- v_errormsg
- || 'ORACLE (error '
- || oracle_err_num
- || '/'
- || oracle_err_mes
- || ')';
- fac.imp_writelog (p_import_key,
- 'E',
- v_aanduiding || v_errormsg,
- 'Importregel niet volledig verwerkt!');
- END;
-BEGIN
- v_count_upd := 0;
-
- -- Loop door de voorkomende afdelingen en werk daarvoor de ICT-CP(s) bij.
- FOR rec IN c1
- LOOP
- v_aanduiding := '[' || rec.prs_afdeling_naam || '] ';
- v_errormsg := 'Fout bij bepalen afdeling ';
-
- SELECT COUNT ( * )
- INTO v_count
- FROM prs_v_aanwezigafdeling
- WHERE prs_afdeling_upper = UPPER (rec.prs_afdeling_naam);
-
- IF (v_count != 1)
- THEN
- -- Niets doen!
- fac.imp_writelog (p_import_key,
- 'W',
- v_aanduiding || v_errormsg,
- 'Kan afdeling niet 1-duidig bepalen!');
-
- COMMIT;
- ELSE
- SELECT prs_afdeling_key
- INTO v_afd_key
- FROM prs_v_aanwezigafdeling
- WHERE prs_afdeling_upper = UPPER (rec.prs_afdeling_naam);
-
- update_ictcp (v_afd_key, 1020, -- ICT-CP1
- rec.ictcp1_email);
- update_ictcp (v_afd_key, 1021, -- ICT-CP2
- rec.ictcp2_email);
- update_ictcp (v_afd_key, 1022, -- ICT-CP3
- rec.ictcp3_email);
- v_count_upd := v_count_upd + 1;
- END IF;
- END LOOP;
-
- fac.imp_writelog (
- p_import_key,
- 'S',
- 'ICT-CP: Aantal verwerkte importregels: ' || TO_CHAR (v_count_upd),
- ''
- );
-EXCEPTION
- WHEN OTHERS
- THEN
- oracle_err_num := SQLCODE;
- oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
- v_errormsg :=
- v_errormsg
- || 'ORACLE (error '
- || oracle_err_num
- || '/'
- || oracle_err_mes
- || ')';
- fac.imp_writelog (p_import_key,
- 'E',
- v_aanduiding || v_errormsg,
- 'Importproces ICT-CP afgebroken!');
-END rwsn_update_ictcp;
-/
-
-
-- import van relaties uit het IKD
CREATE OR REPLACE PROCEDURE rwsn_import_partners (
p_import_key IN NUMBER
@@ -15252,7 +15430,6 @@ CREATE OR REPLACE VIEW rwsn_v_mld_actual
stdmld_key,
stdmld_oms,
stdmld_groep,
- stdmld_streeftijd,
melder_userkey,
dienst,
mld_oms,
@@ -15286,7 +15463,6 @@ AS
meld.stdmld_key,
SUBSTR (meld.stdmld_oms, 1, 60),
SUBSTR (COALESCE (meld.stdmld_groep, 'Onbekend'), 1, 30) groep,
- meld.stdmld_streeftijd,
meld.prs_perslid_key,
SUBSTR (rwsn.bepaal_dienst (meld.prs_perslid_key), 1, 60) dienst,
SUBSTR (meld.mld_oms, 1, 1000) mld_oms,
@@ -15382,8 +15558,6 @@ AS
sm.mld_stdmelding_uitvoertijd_pr4
)
stdmld_sla,
- sm.mld_stdmelding_streeftijd
- stdmld_streeftijd,
sm.mld_stdmelding_planbaar stdmld_pb,
m.prs_perslid_key,
m.mld_melding_omschrijving mld_oms,
@@ -15555,7 +15729,7 @@ AS
OR mldafm.fac_tracking_datum >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'YYYY');
-/* Formatted on 14-12-2012 10:25:50 (QP5 v5.115.810.9015) */
+/* Formatted on 8-11-2013 14:36:24 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE rwsn_select_nacht_werk (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
@@ -15602,11 +15776,14 @@ AS
WHERE o.mld_melding_key = m.mld_melding_key
AND o.mld_statusopdr_key IN (3, 4, 5, 8));
- v_errormsg VARCHAR2 (1000);
- oracle_err_num NUMBER;
- oracle_err_mes VARCHAR2 (200);
- v_count NUMBER;
- v_date DATE;
+ v_errormsg VARCHAR2 (1000);
+ oracle_err_num NUMBER;
+ oracle_err_mes VARCHAR2 (200);
+ v_count NUMBER;
+ v_date DATE;
+ v_kenmerklink_key NUMBER (10);
+ v_kenmerk_key NUMBER (10);
+ v_cur_perslid_key NUMBER (10);
BEGIN
v_count := 0;
@@ -15723,7 +15900,6 @@ BEGIN
stdmld_key,
stdmld_oms,
stdmld_groep,
- stdmld_streeftijd,
melder_userkey,
dienst,
mld_oms,
@@ -15755,7 +15931,6 @@ BEGIN
stdmld_key,
stdmld_oms,
stdmld_groep,
- stdmld_streeftijd,
melder_userkey,
dienst,
mld_oms,
@@ -15836,6 +16011,8 @@ BEGIN
'Aantal bevroren OPDR-regels: ' || TO_CHAR (v_count),
'');
+ COMMIT;
+
-- controle taak om te kijken of de AAFM-communicatie loopt.
BEGIN
-- bedrijf aafm heeft key 5;
@@ -15879,9 +16056,10 @@ BEGIN
'E',
'Controle AAFM-communicatie afgebroken!',
v_errormsg);
- COMMIT;
END;
+ COMMIT;
+
-- controle taak om te kijken of PutOrders loopt.
BEGIN
SELECT MAX (imp_log_datum)
@@ -15911,10 +16089,271 @@ BEGIN
'E',
'Controle PutOrders afgebroken!',
v_errormsg);
- COMMIT;
END;
COMMIT;
+
+ -- RWSN#27015: Bijwerken vervangers van budgethouders=leidinggevenden in
+ -- afdelingskenmerken 1020/1021/1022 (max. 3 op alfabetische
+ -- volgorde)!
+ FOR rc1
+ IN (SELECT x.prs_afdeling_key,
+ x.prs_perslid_key budgethouder_key,
+ v1.prs_kenmerklink_key v1_kenmerklink_key,
+ v1.prs_kenmerk_key v1_kenmerk_key,
+ fac.safe_to_number (v1.prs_kenmerklink_waarde) v1_perslid_key,
+ v2.prs_kenmerklink_key v2_kenmerklink_key,
+ v2.prs_kenmerk_key v2_kenmerk_key,
+ fac.safe_to_number (v2.prs_kenmerklink_waarde) v2_perslid_key,
+ v3.prs_kenmerklink_key v3_kenmerklink_key,
+ v3.prs_kenmerk_key v3_kenmerk_key,
+ fac.safe_to_number (v3.prs_kenmerklink_waarde) v3_perslid_key
+ FROM (SELECT a.prs_afdeling_key, kp.prs_perslid_key
+ FROM prs_kostenplaats kp, prs_afdeling a
+ WHERE a.prs_kostenplaats_key =
+ kp.prs_kostenplaats_key
+ AND kp.prs_perslid_key IS NOT NULL
+ AND a.prs_afdeling_verwijder IS NULL
+ AND kp.prs_kostenplaats_verwijder IS NULL)
+ x
+ LEFT JOIN -- 1020 = 1e vervanger!
+ prs_v_aanwezigkenmerklink v1
+ ON x.prs_afdeling_key = v1.prs_link_key
+ AND v1.prs_kenmerk_key = 1020
+ LEFT JOIN -- 1021 = 2e vervanger!
+ prs_v_aanwezigkenmerklink v2
+ ON x.prs_afdeling_key = v2.prs_link_key
+ AND v2.prs_kenmerk_key = 1021
+ LEFT JOIN -- 1022 = 3e vervanger!
+ prs_v_aanwezigkenmerklink v3
+ ON x.prs_afdeling_key = v3.prs_link_key
+ AND v3.prs_kenmerk_key = 1022)
+ LOOP -- Alleen over afdelingen met een budgethouder!
+ BEGIN
+ FOR rc2
+ IN ( SELECT x.vnr, v.prs_perslid_key_alt, v.prs_perslid_naam_full
+ FROM ( SELECT LEVEL vnr
+ FROM DUAL
+ CONNECT BY LEVEL <= 3) x
+ LEFT JOIN
+ (SELECT ROWNUM vnr,
+ prs_perslid_key_alt,
+ prs_perslid_naam_full
+ FROM ( SELECT c.prs_perslid_key_alt,
+ pc.prs_perslid_naam_full
+ FROM prs_collega c,
+ fac_gebruikersgroep gg,
+ prs_v_perslid_fullnames pc
+ WHERE c.prs_perslid_key =
+ rc1.budgethouder_key
+ AND c.prs_perslid_key_alt =
+ gg.prs_perslid_key
+ AND gg.fac_groep_key = 1219
+ AND c.prs_perslid_key_alt =
+ pc.prs_perslid_key
+ ORDER BY 2)) v
+ ON x.vnr = v.vnr
+ ORDER BY 1)
+ LOOP -- Altijd alfabetisch over 3 echte of lege vervangers!
+ IF rc2.vnr = 1
+ THEN
+ v_kenmerklink_key := rc1.v1_kenmerklink_key;
+ v_kenmerk_key := 1020; -- 1e vervanger
+ v_cur_perslid_key := rc1.v1_perslid_key;
+ ELSIF rc2.vnr = 2
+ THEN
+ v_kenmerklink_key := rc1.v2_kenmerklink_key;
+ v_kenmerk_key := 1021; -- 2e vervanger
+ v_cur_perslid_key := rc1.v2_perslid_key;
+ ELSE -- rc2.vnr = 3
+ v_kenmerklink_key := rc1.v3_kenmerklink_key;
+ v_kenmerk_key := 1022; -- 3e vervanger
+ v_cur_perslid_key := rc1.v3_perslid_key;
+ END IF;
+
+ IF (rc2.prs_perslid_key_alt IS NOT NULL)
+ THEN -- Er is een vervanger
+ IF (v_kenmerklink_key IS NULL) -- Was geen vervanger->insert
+ THEN
+ v_errormsg :=
+ 'Fout bij toevoegen vervanger-' || TO_CHAR (rc2.vnr);
+
+ INSERT INTO prs_kenmerklink (prs_link_key,
+ prs_kenmerklink_niveau,
+ prs_kenmerk_key,
+ prs_kenmerklink_waarde)
+ VALUES (rc1.prs_afdeling_key,
+ 'A',
+ v_kenmerk_key,
+ TO_CHAR (rc2.prs_perslid_key_alt));
+ ELSIF (v_cur_perslid_key != rc2.prs_perslid_key_alt)
+ THEN -- Was andere vervanger->update
+ v_errormsg :=
+ 'Fout bij bijwerken vervanger-' || TO_CHAR (rc2.vnr);
+
+ UPDATE prs_kenmerklink
+ SET prs_kenmerklink_waarde =
+ TO_CHAR (rc2.prs_perslid_key_alt)
+ WHERE prs_kenmerklink_key = v_kenmerklink_key;
+ END IF;
+ ELSE -- Er is geen vervanger
+ IF (v_kenmerklink_key IS NOT NULL) -- Was wel vervanger->delete
+ THEN
+ v_errormsg :=
+ 'Fout bij verwijderen vervanger-' || TO_CHAR (rc2.vnr);
+
+ DELETE FROM prs_kenmerklink
+ WHERE prs_kenmerklink_key = v_kenmerklink_key;
+ END IF;
+ END IF;
+ END LOOP;
+
+ COMMIT;
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ v_errormsg
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.writelog (p_applname,
+ 'W',
+ v_errormsg,
+ '');
+ COMMIT;
+ END;
+ END LOOP;
+
+ COMMIT;
+
+ -- RWSN#27015: Toevoegen nieuwe BH-vervangers aan 1219=ICT:Fiattering namens.
+ INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
+ SELECT DISTINCT 1219, c.prs_perslid_key_alt
+ FROM prs_kostenplaats kp,
+ prs_afdeling a,
+ prs_v_afdeling_boom ab,
+ prs_collega c,
+ prs_v_aanwezigperslid pl,
+ prs_v_aanwezigperslid pv
+ WHERE kp.prs_kostenplaats_verwijder IS NULL
+ AND kp.prs_kostenplaats_key = a.prs_kostenplaats_key -- PRS-KPN
+ AND a.prs_afdeling_verwijder IS NULL
+ AND a.prs_afdeling_key = ab.prs_afdeling_key
+ AND ab.prs_afdeling_key1 IN -- Afdeling onder Troux-regime
+ (SELECT fac.safe_to_number (fac_usrdata_code)
+ FROM fac_usrdata
+ WHERE fac_usrtab_key = 2)
+ AND kp.prs_perslid_key = c.prs_perslid_key -- BH met collega's
+ AND c.prs_perslid_key = pl.prs_perslid_key -- Actief
+ AND c.prs_perslid_key_alt = pv.prs_perslid_key -- Actief
+ AND NOT EXISTS -- Nog niet in autorisatiegroep
+ (SELECT 1
+ FROM fac_gebruikersgroep
+ WHERE fac_groep_key = 1219 -- ICT:Fiattering namens
+ AND prs_perslid_key = c.prs_perslid_key_alt)
+ UNION
+ SELECT DISTINCT 1219, c.prs_perslid_key_alt
+ FROM prs_kostenplaatsgrp kpg,
+ prs_collega c,
+ prs_v_aanwezigperslid pl,
+ prs_v_aanwezigperslid pv
+ WHERE kpg.prs_perslid_key = c.prs_perslid_key -- BH met collega's
+ AND c.prs_perslid_key = pl.prs_perslid_key -- Actief
+ AND c.prs_perslid_key_alt = pv.prs_perslid_key -- Actief
+ AND NOT EXISTS -- Nog niet in autorisatiegroep
+ (SELECT 1
+ FROM fac_gebruikersgroep
+ WHERE fac_groep_key = 1219 -- ICT:Fiattering namens
+ AND prs_perslid_key = c.prs_perslid_key_alt);
+
+ COMMIT;
+
+ -- RWSN#27015: Verwijderen oude BH-vervangers uit 1219=ICT:Fiattering namens.
+ DELETE FROM fac_gebruikersgroep gg
+ WHERE gg.fac_groep_key = 1219 -- ICT:Fiattering namens
+ AND NOT EXISTS
+ (SELECT 1
+ FROM prs_collega c, prs_kostenplaats kp
+ WHERE c.prs_perslid_key_alt = gg.prs_perslid_key
+ AND c.prs_perslid_key = kp.prs_perslid_key)
+ AND NOT EXISTS
+ (SELECT 1
+ FROM prs_collega c, prs_kostenplaatsgrp kpg
+ WHERE c.prs_perslid_key_alt = gg.prs_perslid_key
+ AND c.prs_perslid_key = kpg.prs_perslid_key);
+
+ COMMIT;
+
+ -- RWSN#27015: Bijwerken profielen van alle (aanwezige) medewerkers zonder
+ -- een profiel of met een profiel_key < 4!
+ UPDATE prs_perslid p
+ SET p.fac_profiel_key = 4
+ WHERE p.prs_perslid_verwijder IS NULL
+ AND COALESCE (p.fac_profiel_key, 0) < 4
+ AND EXISTS (SELECT 1
+ FROM prs_kostenplaatsgrp
+ WHERE prs_perslid_key = p.prs_perslid_key);
+
+ UPDATE prs_perslid p
+ SET p.fac_profiel_key = 4
+ WHERE p.prs_perslid_verwijder IS NULL
+ AND COALESCE (p.fac_profiel_key, 0) < 4
+ AND EXISTS
+ (SELECT 1
+ FROM prs_collega c,
+ fac_gebruikersgroep gg,
+ prs_kostenplaatsgrp kpg
+ WHERE c.prs_perslid_key_alt = p.prs_perslid_key
+ AND c.prs_perslid_key_alt = gg.prs_perslid_key
+ AND gg.fac_groep_key = 1219
+ AND c.prs_perslid_key = kpg.prs_perslid_key);
+
+ UPDATE prs_perslid p
+ SET p.fac_profiel_key = 3
+ WHERE p.prs_perslid_verwijder IS NULL
+ AND COALESCE (p.fac_profiel_key, 0) < 3
+ AND EXISTS
+ (SELECT 1
+ FROM prs_kostenplaats
+ WHERE prs_perslid_key = p.prs_perslid_key
+ AND prs_kostenplaats_verwijder IS NULL);
+
+ UPDATE prs_perslid p
+ SET p.fac_profiel_key = 3
+ WHERE p.prs_perslid_verwijder IS NULL
+ AND COALESCE (p.fac_profiel_key, 0) < 3
+ AND EXISTS
+ (SELECT 1
+ FROM prs_collega c,
+ fac_gebruikersgroep gg,
+ prs_kostenplaats kp
+ WHERE c.prs_perslid_key_alt = p.prs_perslid_key
+ AND c.prs_perslid_key_alt = gg.prs_perslid_key
+ AND gg.fac_groep_key = 1219
+ AND c.prs_perslid_key = kp.prs_perslid_key);
+
+ UPDATE prs_perslid p
+ SET p.fac_profiel_key = 2
+ WHERE p.prs_perslid_verwijder IS NULL
+ AND COALESCE (p.fac_profiel_key, 0) < 2
+ AND prs_perslid_key IN
+ (SELECT fac.safe_to_number (kd.ins_kenmerkdeel_waarde)
+ FROM ins_kenmerkdeel kd, ins_kenmerk k
+ WHERE kd.ins_kenmerkdeel_verwijder IS NULL
+ AND kd.ins_kenmerk_key = k.ins_kenmerk_key
+ AND k.ins_srtkenmerk_key BETWEEN 103 AND 200);
+
+ UPDATE prs_perslid p
+ SET p.fac_profiel_key = 1
+ WHERE p.prs_perslid_verwijder IS NULL
+ AND COALESCE (p.fac_profiel_key, 0) < 1;
+
+ COMMIT;
EXCEPTION
WHEN OTHERS
THEN
@@ -20021,7 +20460,1165 @@ AS
)) d
ON x.alg_gebouw_key = d.alg_onrgoed_key;
--- RWSN#27838
+/* Formatted on 21-11-2013 10:42:16 (QP5 v5.115.810.9015) */
+CREATE OR REPLACE PROCEDURE rwsn_import_appl (p_import_key IN NUMBER)
+IS
+ c_delim VARCHAR2 (1) := ';';
+ v_newline VARCHAR2 (1000); -- Input line
+ v_errormsg VARCHAR2 (1000);
+ oracle_err_num NUMBER;
+ oracle_err_mes VARCHAR2 (200);
+ header_is_valid NUMBER;
+ v_count_tot NUMBER (10);
+ v_count_import NUMBER (10);
+ v_ongeldig NUMBER (1);
+ v_aanduiding VARCHAR (200);
+ -- De importvelden:
+ v_spiv_domein VARCHAR2 (255); -- C60
+ v_applicatiecode VARCHAR2 (255); -- C10
+ v_applicatienaam VARCHAR2 (255); -- C100
+ v_aut_proces VARCHAR2 (255); -- C10; feitelijk 1!
+ v_beh_type VARCHAR2 (255); -- C10
+ v_beh_mail VARCHAR2 (255); -- C60
+ v_beh_org VARCHAR2 (255); -- C10
+ v_webbased VARCHAR2 (255); -- C10; feitelijk 1!
+ v_vervaldatum VARCHAR2 (255); -- C10
+ v_vervaldatum_d DATE;
+
+ CURSOR c1
+ IS
+ SELECT *
+ FROM fac_imp_file
+ WHERE fac_import_key = p_import_key
+ ORDER BY fac_imp_file_index;
+BEGIN
+ DELETE FROM rwsn_imp_appl;
+
+ COMMIT;
+
+ v_count_tot := 0;
+ v_count_import := 0;
+ header_is_valid := 0;
+
+ FOR rec1 IN c1
+ LOOP
+ BEGIN
+ v_newline := rec1.fac_imp_file_line;
+ v_errormsg := 'Fout bij opvragen importregel';
+ v_aanduiding := '';
+ v_ongeldig := 0;
+ -- Lees alle veldwaarden
+ fac.imp_getfield (v_newline, c_delim, v_spiv_domein);
+ fac.imp_getfield (v_newline, c_delim, v_applicatiecode);
+ fac.imp_getfield (v_newline, c_delim, v_applicatienaam);
+ fac.imp_getfield (v_newline, c_delim, v_aut_proces);
+ fac.imp_getfield (v_newline, c_delim, v_beh_type);
+ fac.imp_getfield (v_newline, c_delim, v_beh_mail);
+ fac.imp_getfield (v_newline, c_delim, v_beh_org);
+ fac.imp_getfield (v_newline, c_delim, v_webbased);
+ fac.imp_getfield (v_newline, c_delim, v_vervaldatum);
+
+ v_aanduiding :=
+ '['
+ || v_spiv_domein
+ || '|'
+ || v_applicatiecode
+ || '|'
+ || v_applicatienaam
+ || '|'
+ || v_aut_proces
+ || '] ';
+
+ -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
+ -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
+ -- Ik negeer alles totdat ik een geldige header ben gepasseerd.
+ IF (header_is_valid = 0)
+ THEN
+ IF UPPER (v_spiv_domein) = 'SPIV_DOMEIN'
+ AND UPPER (v_applicatiecode) = 'APPLICATIECODE'
+ AND UPPER (v_applicatienaam) = 'APPLICATIENAAM'
+ AND UPPER (v_aut_proces) = 'AUTORISATIEPROCES'
+ AND UPPER (v_beh_type) = 'BEHEERDER_TYPE'
+ AND UPPER (v_beh_mail) = 'BEHEERDER_MAIL'
+ AND UPPER (v_beh_org) = 'BEHEERDER_ORG'
+ AND UPPER (v_webbased) = 'WEBBASED'
+ AND UPPER (v_vervaldatum) = 'VERVALDATUM'
+ THEN
+ header_is_valid := 1;
+ END IF;
+ ELSE
+ v_count_tot := v_count_tot + 1;
+ -- Controleer alle veldwaarden
+ v_errormsg := 'SPIV-domein ongeldig; ongedefinieerd of te lang';
+ v_spiv_domein := TRIM (v_spiv_domein);
+
+ IF v_spiv_domein IS NULL OR LENGTH (v_spiv_domein) > 60
+ THEN
+ v_ongeldig := 1;
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ 'Regel wordt overgeslagen!');
+ END IF;
+
+ --
+ v_errormsg := 'Applicatiecode ongeldig; ongedefinieerd of te lang';
+ v_applicatiecode := TRIM (v_applicatiecode);
+
+ IF v_applicatiecode IS NULL OR LENGTH (v_applicatiecode) > 10
+ THEN
+ v_ongeldig := 1;
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ 'Regel wordt overgeslagen!');
+ END IF;
+
+ --
+ v_errormsg := 'Applicatienaam ongeldig; ongedefinieerd of te lang';
+ v_applicatienaam := TRIM (v_applicatienaam);
+
+ IF v_applicatienaam IS NULL OR LENGTH (v_applicatienaam) > 100
+ THEN
+ v_ongeldig := 1;
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ 'Regel wordt overgeslagen!');
+ END IF;
+
+ --
+ v_errormsg :=
+ 'Autorisatieproces ongeldig; ongedefinieerd of te lang';
+ v_aut_proces := TRIM (v_aut_proces);
+
+ IF v_aut_proces IS NULL OR LENGTH (v_aut_proces) > 1
+ THEN
+ v_ongeldig := 1;
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ 'Regel wordt overgeslagen!');
+ END IF;
+
+ --
+ v_errormsg := 'Beheerder-type ongeldig; ongedefinieerd';
+ v_beh_type := TRIM (v_beh_type);
+
+ IF UPPER (v_beh_type) != 'FB' AND UPPER (v_beh_type) != 'KEY'
+ THEN
+ v_ongeldig := 1;
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ 'Regel wordt overgeslagen!');
+ END IF;
+
+ --
+ v_errormsg := 'Beheerder-mail ongeldig';
+ v_beh_mail := TRIM (v_beh_mail);
+
+ IF UPPER (v_beh_type) = 'FB' OR UPPER (v_beh_type) = 'KEY'
+ THEN
+ IF v_beh_mail IS NULL OR LENGTH (v_beh_org) > 60
+ THEN
+ v_ongeldig := 1;
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ 'Regel wordt overgeslagen!');
+ END IF;
+ ELSE
+ IF v_ongeldig = 0 AND LENGTH (v_beh_mail) > 0
+ THEN
+ v_beh_mail := NULL;
+ fac.imp_writelog (p_import_key,
+ 'I',
+ v_aanduiding || v_errormsg,
+ 'Beheerder-mail wordt genegeerd');
+ END IF;
+ END IF;
+
+ --
+ v_errormsg := 'Beheerder-organisatie ongeldig';
+ v_beh_org := TRIM (v_beh_org);
+
+ IF UPPER (v_beh_type) = 'KEY'
+ THEN
+ IF v_beh_org IS NULL OR LENGTH (v_beh_org) > 10
+ THEN
+ v_ongeldig := 1;
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ 'Regel wordt overgeslagen!');
+ END IF;
+ ELSE
+ IF v_ongeldig = 0 AND LENGTH (v_beh_org) > 0
+ THEN
+ v_beh_org := NULL;
+ fac.imp_writelog (p_import_key,
+ 'I',
+ v_aanduiding || v_errormsg,
+ 'Beheerder-organisatie wordt genegeerd');
+ END IF;
+ END IF;
+
+ --
+ v_errormsg :=
+ 'Webbased-eigenschap ongeldig; ongedefinieerd of te lang';
+ v_webbased := TRIM (v_webbased);
+
+ IF v_webbased IS NULL OR LENGTH (v_webbased) > 1
+ THEN
+ v_ongeldig := 1;
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ 'Regel wordt overgeslagen!');
+ END IF;
+
+ --
+ v_errormsg := 'Vervaldatum ongeldig';
+ v_vervaldatum := TRIM (v_vervaldatum);
+ v_vervaldatum_d := fac.safe_to_date (v_vervaldatum, 'dd-mm-yyyy');
+
+ IF v_vervaldatum IS NOT NULL AND v_vervaldatum_d IS NULL
+ THEN
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ 'Vervaldatum wordt genegeerd');
+ END IF;
+
+ -- Insert geformatteerde import record
+ IF v_ongeldig = 0
+ THEN
+ BEGIN
+ v_errormsg := 'Fout bij wegschrijven importregel';
+
+ INSERT INTO rwsn_imp_appl (spiv_domein,
+ applicatiecode,
+ applicatienaam,
+ aut_proces,
+ beh_type,
+ beh_mail,
+ beh_org,
+ webbased,
+ vervaldatum)
+ VALUES (v_spiv_domein,
+ v_applicatiecode,
+ v_applicatienaam,
+ v_aut_proces,
+ v_beh_type,
+ v_beh_mail,
+ v_beh_org,
+ v_webbased,
+ v_vervaldatum_d);
+
+ COMMIT;
+ v_count_import := v_count_import + 1;
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ v_errormsg
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ '');
+
+ COMMIT;
+ END;
+ END IF;
+ END IF;
+ END;
+ END LOOP;
+
+ IF (header_is_valid = 0)
+ THEN
+ fac.imp_writelog (p_import_key,
+ 'E',
+ 'Ongeldig importbestand',
+ 'Geen header of header niet volgens specificatie!');
+ ELSE
+ fac.imp_writelog (
+ p_import_key,
+ 'S',
+ 'DID-applicaties/aantal ingelezen importregels: '
+ || TO_CHAR (v_count_tot),
+ ''
+ );
+ fac.imp_writelog (
+ p_import_key,
+ 'S',
+ 'DID-applicaties/aantal ongeldige niet ingelezen importregels: '
+ || TO_CHAR (v_count_tot - v_count_import),
+ ''
+ );
+ END IF;
+
+ COMMIT;
+EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ v_errormsg
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.imp_writelog (p_import_key,
+ 'E',
+ v_aanduiding || v_errormsg,
+ 'Inleesproces DID-applicaties afgebroken!');
+END rwsn_import_appl;
+/
+
+/* Formatted on 21-11-2013 10:42:24 (QP5 v5.115.810.9015) */
+CREATE OR REPLACE PROCEDURE rwsn_update_appl (p_import_key IN NUMBER)
+AS
+ c_appl_discipline NUMBER (10) := 2361;
+ c_aut_proces_srtkey NUMBER (10) := 101;
+ c_webbased_srtkey NUMBER (10) := 102;
+ c_fb1_srtkey NUMBER (10) := 103;
+ c_fb2_srtkey NUMBER (10) := 104;
+ c_fb3_srtkey NUMBER (10) := 105;
+ c_min_key_srtkey NUMBER (10) := 121; -- Keyuser1 NN
+ c_max_key_srtkey NUMBER (10) := 195; -- Keyuser5 RvR
+ v_errormsg VARCHAR2 (1000) := '-';
+ oracle_err_num NUMBER;
+ oracle_err_mes VARCHAR2 (200);
+ v_aanduiding VARCHAR2 (200);
+
+ -- SUBPROC
+ PROCEDURE add_srtgroep (p_import_key IN NUMBER)
+ AS
+ CURSOR c1
+ IS
+ SELECT UPPER (spiv_domein) spiv_domein_upper,
+ MAX (spiv_domein) spiv_domein
+ FROM rwsn_imp_appl
+ GROUP BY UPPER (spiv_domein)
+ ORDER BY 1;
+
+ v_count_tot NUMBER (10);
+ v_count_new NUMBER (10);
+ v_discipline_key NUMBER (10);
+ ccount NUMBER (10);
+ BEGIN
+ v_count_tot := 0;
+ v_count_new := 0;
+
+ FOR rec IN c1
+ LOOP
+ BEGIN
+ v_count_tot := v_count_tot + 1;
+ v_errormsg :=
+ 'Fout bij bepalen INS-discipline ['
+ || TO_CHAR (c_appl_discipline)
+ || ']';
+
+ SELECT ins_discipline_key
+ INTO v_discipline_key
+ FROM ins_tab_discipline
+ WHERE ins_discipline_verwijder IS NULL
+ AND ins_discipline_module = 'INS'
+ AND ins_discipline_key = c_appl_discipline;
+
+ v_errormsg :=
+ 'Fout bij toevoegen SPIV-domein [' || rec.spiv_domein || ']';
+
+ SELECT COUNT ( * )
+ INTO ccount
+ FROM ins_srtgroep
+ WHERE ins_srtgroep_verwijder IS NULL
+ AND ins_discipline_key = v_discipline_key
+ AND UPPER (TRIM (ins_srtgroep_omschrijving)) =
+ rec.spiv_domein_upper;
+
+ IF (ccount = 0)
+ THEN
+ INSERT INTO ins_srtgroep (
+ ins_discipline_key,
+ ins_srtgroep_module,
+ ins_srtgroep_omschrijving
+ )
+ VALUES (v_discipline_key, 'INS', rec.spiv_domein);
+
+ COMMIT;
+ v_count_new := v_count_new + 1;
+ END IF;
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ v_errormsg
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_errormsg,
+ '');
+ COMMIT;
+ END;
+ END LOOP;
+
+ fac.imp_writelog (
+ p_import_key,
+ 'S',
+ 'SPIV-domeinen/#ingelezen: ' || TO_CHAR (v_count_tot),
+ ''
+ );
+ fac.imp_writelog (
+ p_import_key,
+ 'S',
+ 'SPIV-domeinen/#toegevoegd: ' || TO_CHAR (v_count_new),
+ ''
+ );
+ COMMIT;
+ END;
+
+ -- SUBPROC
+ PROCEDURE upsert_inskenmerk (p_srtdeel_key IN NUMBER,
+ p_srtkenmerk_key IN NUMBER,
+ p_waarde IN VARCHAR2)
+ AS
+ v_kenmerk_key NUMBER;
+ v_srtkenmerk_type VARCHAR2 (1);
+ ccount NUMBER;
+ v_objectnaam VARCHAR2 (30);
+ v_kolomnaam VARCHAR2 (30);
+ v_kolomtxt VARCHAR2 (30);
+ sql_stmt VARCHAR2 (1000);
+ v_new_waarde VARCHAR2 (1000);
+ v_kenmerkdeel_key NUMBER;
+ v_cur_waarde VARCHAR2 (4000);
+ BEGIN
+ v_errormsg :=
+ 'Fout bij bepalen D-kenmerksoort [' || p_srtkenmerk_key || ']';
+
+ SELECT k.ins_kenmerk_key, sk.ins_srtkenmerk_kenmerktype
+ INTO v_kenmerk_key, v_srtkenmerk_type
+ FROM ins_srtdeel sd,
+ ins_srtgroep sg,
+ ins_v_aanwezigkenmerk k,
+ ins_v_aanwezigsrtkenmerk sk
+ WHERE sd.ins_srtdeel_key = p_srtdeel_key
+ AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
+ AND k.ins_srtkenmerk_key = p_srtkenmerk_key
+ AND k.ins_srtinstallatie_key = sg.ins_discipline_key
+ AND k.ins_kenmerk_niveau = 'D'
+ AND k.ins_kenmerk_bewerkniveau = 'S'
+ AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
+
+ IF (v_srtkenmerk_type IN ('R', 'S') AND p_waarde IS NOT NULL)
+ THEN
+ v_errormsg := 'Fout bij bepalen eigen tabel';
+
+ SELECT COUNT ( * )
+ INTO ccount
+ FROM ins_srtkenmerk sk, fac_kenmerkdomein d
+ WHERE sk.ins_srtkenmerk_key = p_srtkenmerk_key
+ AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
+ AND d.fac_usrtab_key IS NOT NULL;
+
+ v_errormsg := 'Fout bij bepalen nieuwe waarde [' || p_waarde || ']';
+
+ IF (ccount = 1)
+ THEN -- Eigen tabel; p_waarde is code!
+ SELECT TO_CHAR (ud.fac_usrdata_key)
+ INTO v_new_waarde
+ FROM ins_srtkenmerk sk,
+ fac_kenmerkdomein d,
+ fac_v_aanwezigusrdata ud
+ WHERE sk.ins_srtkenmerk_key = p_srtkenmerk_key
+ AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
+ AND d.fac_usrtab_key = ud.fac_usrtab_key
+ AND UPPER (TRIM (ud.fac_usrdata_code)) =
+ UPPER (p_waarde);
+ ELSE -- FACILITOR view/tabel; p_waarde is omschrijving!
+ SELECT d.fac_kenmerkdomein_objectnaam,
+ d.fac_kenmerkdomein_kolomnaam,
+ d.fac_kenmerkdomein_kolomtxt
+ INTO v_objectnaam, v_kolomnaam, v_kolomtxt
+ FROM ins_srtkenmerk sk, fac_kenmerkdomein d
+ WHERE sk.ins_srtkenmerk_key = p_srtkenmerk_key
+ AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
+ AND d.fac_usrtab_key IS NULL;
+
+ sql_stmt :=
+ 'SELECT MAX ('
+ || v_kolomnaam
+ || ') FROM '
+ || v_objectnaam
+ || ' WHERE UPPER (TRIM ('
+ || v_kolomtxt
+ || ')) = UPPER ('''
+ || p_waarde
+ || ''')';
+
+ EXECUTE IMMEDIATE sql_stmt INTO v_new_waarde;
+ END IF;
+ ELSE -- C(haracter)/D(ate)/N(umeric)
+ v_new_waarde := p_waarde;
+ END IF;
+
+ v_errormsg := 'Fout bij bepalen huidige waarde';
+
+ SELECT COUNT ( * ),
+ MAX (ins_kenmerkdeel_key),
+ MAX (ins_kenmerkdeel_waarde)
+ INTO ccount, v_kenmerkdeel_key, v_cur_waarde
+ FROM ins_v_aanwezigkenmerkdeel
+ WHERE ins_deel_key = p_srtdeel_key
+ AND ins_kenmerk_key = v_kenmerk_key;
+
+ IF (ccount = 0)
+ THEN
+ IF (v_new_waarde IS NOT NULL)
+ THEN
+ v_errormsg := 'Fout bij toevoegen waarde [' || v_new_waarde || ']';
+
+ INSERT INTO ins_kenmerkdeel (
+ ins_deel_key,
+ ins_kenmerk_key,
+ ins_kenmerkdeel_waarde
+ )
+ VALUES (p_srtdeel_key, v_kenmerk_key, v_new_waarde);
+
+ COMMIT;
+ END IF;
+ ELSIF (COALESCE (v_cur_waarde, -1) <> COALESCE (v_new_waarde, -1))
+ THEN
+ IF (v_new_waarde IS NOT NULL)
+ THEN
+ v_errormsg := 'Fout bij bijwerken waarde [' || v_new_waarde || ']';
+
+ UPDATE ins_kenmerkdeel
+ SET ins_kenmerkdeel_waarde = v_new_waarde
+ WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
+ ELSE -- v_new_waarde IS NULL
+ v_errormsg :=
+ 'Fout bij verwijderen waarde [' || v_cur_waarde || ']';
+
+ UPDATE ins_kenmerkdeel
+ SET ins_kenmerkdeel_verwijder = SYSDATE
+ WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
+ END IF;
+
+ COMMIT;
+ END IF;
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ v_errormsg
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ 'upsert_inskenmerk');
+ END;
+
+ -- SUBPROC
+ -- Aanmaken/bijwerken applicaties (incl. aut.proces + webbased)!
+ PROCEDURE upd_srtdeel (p_import_key IN NUMBER)
+ AS
+ CURSOR c1
+ IS
+ SELECT DISTINCT
+ spiv_domein,
+ applicatiecode,
+ applicatienaam,
+ aut_proces aut_proc_code, -- '0' t/m '4'
+ DECODE (UPPER (webbased), 'J', 1, 'N', 0, NULL)
+ webbased_code,
+ vervaldatum
+ FROM rwsn_imp_appl
+ ORDER BY 1, 2, 3;
+
+ v_discipline_key NUMBER (10);
+ v_srtgroep_key NUMBER (10);
+ v_srtdeel_key NUMBER (10);
+ ccount NUMBER (10);
+ v_count_tot NUMBER (10);
+ v_count_new NUMBER (10);
+ v_count_upd NUMBER (10);
+ BEGIN
+ v_count_tot := 0;
+ v_count_new := 0;
+ v_count_upd := 0;
+ v_aanduiding := '';
+
+ FOR rec IN c1
+ LOOP
+ BEGIN
+ v_count_tot := v_count_tot + 1;
+ v_aanduiding :=
+ '['
+ || rec.spiv_domein
+ || '|'
+ || rec.applicatiecode
+ || '|'
+ || rec.applicatienaam
+ || '] ';
+ v_errormsg :=
+ 'Fout bij bepalen INS-discipline ['
+ || TO_CHAR (c_appl_discipline)
+ || ']';
+
+ SELECT ins_discipline_key
+ INTO v_discipline_key
+ FROM ins_tab_discipline
+ WHERE ins_discipline_verwijder IS NULL
+ AND ins_discipline_module = 'INS'
+ AND ins_discipline_key = c_appl_discipline;
+
+ v_errormsg := 'Fout bij bepalen SPIV-domein';
+
+ SELECT ins_srtgroep_key
+ INTO v_srtgroep_key
+ FROM ins_srtgroep
+ WHERE ins_srtgroep_verwijder IS NULL
+ AND ins_srtgroep_module = 'INS'
+ AND ins_discipline_key = v_discipline_key
+ AND UPPER (TRIM (ins_srtgroep_omschrijving)) =
+ UPPER (rec.spiv_domein);
+
+ -- Applicatie objectsoorten hebben een unieke code/naam per SPIV-domein???
+ v_errormsg := 'Fout bij (uniek) bepalen applicatie';
+
+ SELECT COUNT ( * )
+ INTO ccount
+ FROM ins_srtdeel
+ WHERE ins_srtdeel_verwijder IS NULL
+ AND ins_srtdeel_module = 'INS'
+ AND ins_srtgroep_key = v_srtgroep_key
+ AND UPPER (TRIM (ins_srtdeel_omschrijving)) =
+ UPPER (rec.applicatienaam);
+
+ IF (ccount = 0)
+ THEN
+ v_errormsg :=
+ 'Fout bij toevoegen applicatie ['
+ || rec.applicatienaam
+ || ']';
+
+ -- Binding 16 betekent persoonsgebonden (Persoon-vinkje)!
+ INSERT INTO ins_srtdeel (ins_srtgroep_key,
+ ins_srtdeel_module,
+ ins_srtdeel_code,
+ ins_srtdeel_omschrijving,
+ ins_srtdeel_binding,
+ ins_srtdeel_vervaldatum)
+ VALUES (v_srtgroep_key,
+ 'INS',
+ UPPER (rec.applicatiecode),
+ rec.applicatienaam,
+ 16,
+ rec.vervaldatum)
+ RETURNING ins_srtdeel_key INTO v_srtdeel_key;
+
+ COMMIT;
+
+ --v_srtnoti_code := 'INSNEW';
+ v_count_new := v_count_new + 1;
+ ELSE -- Objectsoort bestaat reeds!
+ SELECT ins_srtdeel_key
+ INTO v_srtdeel_key
+ FROM ins_srtdeel
+ WHERE ins_srtdeel_verwijder IS NULL
+ AND ins_srtdeel_module = 'INS'
+ AND ins_srtgroep_key = v_srtgroep_key
+ AND UPPER (TRIM (ins_srtdeel_omschrijving)) =
+ UPPER (rec.applicatienaam);
+
+ v_errormsg := 'Fout bij bijwerken applicatiecode';
+
+ UPDATE ins_srtdeel
+ SET ins_srtdeel_code = rec.applicatiecode,
+ ins_srtdeel_omschrijving = rec.applicatienaam,
+ ins_srtdeel_vervaldatum = rec.vervaldatum
+ WHERE ins_srtdeel_key = v_srtdeel_key;
+
+ COMMIT;
+
+ --v_srtnoti_code := 'INSUPD';
+ v_count_upd := v_count_upd + 1;
+ END IF;
+
+ upsert_inskenmerk (v_srtdeel_key,
+ c_aut_proces_srtkey,
+ rec.aut_proc_code);
+ upsert_inskenmerk (v_srtdeel_key,
+ c_webbased_srtkey,
+ rec.webbased_code);
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ v_errormsg
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ '');
+ COMMIT;
+ END;
+ END LOOP;
+
+ fac.imp_writelog (p_import_key,
+ 'S',
+ 'Applicaties/#ingelezen: ' || TO_CHAR (v_count_tot),
+ '');
+ fac.imp_writelog (p_import_key,
+ 'S',
+ 'Applicaties/#toegevoegd: ' || TO_CHAR (v_count_new),
+ '');
+ fac.imp_writelog (p_import_key,
+ 'S',
+ 'Applicaties/#bijgewerkt: ' || TO_CHAR (v_count_upd),
+ '');
+ COMMIT;
+ END;
+
+ -- SUBPROC
+ PROCEDURE insert_FB (p_srtdeel_key IN NUMBER, p_beh_mail IN VARCHAR2)
+ AS
+ v_perslid_key NUMBER;
+ v_kenmerk_key NUMBER;
+ BEGIN
+ -- Bepalen fb-user op basis van e-mail.
+ v_errormsg := 'Fout bij bepalen fb-user [' || p_beh_mail || ']';
+
+ SELECT prs_perslid_key
+ INTO v_perslid_key
+ FROM prs_v_aanwezigperslid
+ WHERE INSTR (UPPER (prs_perslid_email), UPPER (p_beh_mail)) > 0
+ AND prs_perslid_oslogin IS NOT NULL;
+
+ -- Bepalen eerstvrije=niet gevulde fb-veld (max. 3).
+ v_errormsg := 'Fout bij bepalen fb-veld';
+
+ SELECT MIN (ins_kenmerk_key) eerstvrije
+ INTO v_kenmerk_key
+ FROM (SELECT k.ins_kenmerk_key
+ FROM ins_v_aanwezigkenmerk k, ins_srtkenmerk sk
+ WHERE k.ins_kenmerk_bewerkniveau = 'S'
+ AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
+ AND sk.ins_srtkenmerk_key IN
+ (c_fb1_srtkey, c_fb2_srtkey, c_fb3_srtkey)
+ MINUS
+ SELECT k.ins_kenmerk_key
+ FROM ins_v_aanwezigkenmerkdeel kd,
+ ins_v_aanwezigkenmerk k,
+ ins_srtkenmerk sk
+ WHERE kd.ins_deel_key = p_srtdeel_key
+ AND kd.ins_kenmerk_key = k.ins_kenmerk_key
+ AND k.ins_kenmerk_bewerkniveau = 'S'
+ AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
+ AND sk.ins_srtkenmerk_key IN
+ (c_fb1_srtkey, c_fb2_srtkey, c_fb3_srtkey));
+
+ -- Toevoegen (vullen) key-veldwaarde met fb-user.
+ v_errormsg := 'Fout bij toevoegen fb-veldwaarde';
+
+ INSERT INTO ins_kenmerkdeel (
+ ins_deel_key,
+ ins_kenmerk_key,
+ ins_kenmerkdeel_waarde
+ )
+ VALUES (p_srtdeel_key, v_kenmerk_key, v_perslid_key);
+
+ COMMIT;
+ --EXCEPTION
+ -- WHEN OTHERS
+ -- THEN
+ -- oracle_err_num := SQLCODE;
+ -- oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ -- v_errormsg :=
+ -- v_errormsg
+ -- || ' ORACLE (error '
+ -- || oracle_err_num
+ -- || '/'
+ -- || oracle_err_mes
+ -- || ')';
+ -- fac.imp_writelog (p_import_key,
+ -- 'W',
+ -- v_aanduiding || v_errormsg,
+ -- 'insert_FB');
+ END;
+
+ -- SUBPROC
+ PROCEDURE insert_KEY (p_srtdeel_key IN NUMBER,
+ p_beh_mail IN VARCHAR2,
+ p_beh_org IN VARCHAR2)
+ AS
+ v_perslid_key NUMBER;
+ v_kenmerk_key NUMBER;
+ BEGIN
+ -- Bepalen key-user op basis van e-mail.
+ v_errormsg := 'Fout bij bepalen key-user [' || p_beh_mail || ']';
+
+ SELECT prs_perslid_key
+ INTO v_perslid_key
+ FROM prs_v_aanwezigperslid
+ WHERE INSTR (UPPER (prs_perslid_email), UPPER (p_beh_mail)) > 0
+ AND prs_perslid_oslogin IS NOT NULL;
+
+ -- Bepalen eerstvrije=niet gevulde key-veld voor onderdeel (max. 5).
+ v_errormsg := 'Fout bij bepalen key-veld [' || p_beh_org || ']';
+
+ SELECT MIN (ins_kenmerk_key) eerstvrije
+ INTO v_kenmerk_key
+ FROM (SELECT k.ins_kenmerk_key
+ FROM ins_v_aanwezigkenmerk k, ins_srtkenmerk sk
+ WHERE k.ins_kenmerk_bewerkniveau = 'S'
+ AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
+ AND sk.ins_srtkenmerk_key BETWEEN c_min_key_srtkey
+ AND c_max_key_srtkey
+ AND UPPER (TRIM (sk.ins_srtkenmerk_omschrijving)) LIKE
+ '%' || p_beh_org
+ MINUS
+ SELECT k.ins_kenmerk_key
+ FROM ins_v_aanwezigkenmerkdeel kd,
+ ins_v_aanwezigkenmerk k,
+ ins_srtkenmerk sk
+ WHERE kd.ins_deel_key = p_srtdeel_key
+ AND kd.ins_kenmerk_key = k.ins_kenmerk_key
+ AND k.ins_kenmerk_bewerkniveau = 'S'
+ AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
+ AND sk.ins_srtkenmerk_key BETWEEN c_min_key_srtkey
+ AND c_max_key_srtkey
+ AND UPPER (TRIM (sk.ins_srtkenmerk_omschrijving)) LIKE
+ '%' || p_beh_org);
+
+ -- Toevoegen (vullen) key-veldwaarde met key-user voor onderdeel.
+ v_errormsg := 'Fout bij toevoegen key-veldwaarde';
+
+ INSERT INTO ins_kenmerkdeel (
+ ins_deel_key,
+ ins_kenmerk_key,
+ ins_kenmerkdeel_waarde
+ )
+ VALUES (p_srtdeel_key, v_kenmerk_key, v_perslid_key);
+
+ COMMIT;
+ --EXCEPTION
+ -- WHEN OTHERS
+ -- THEN
+ -- oracle_err_num := SQLCODE;
+ -- oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ -- v_errormsg :=
+ -- v_errormsg
+ -- || ' ORACLE (error '
+ -- || oracle_err_num
+ -- || '/'
+ -- || oracle_err_mes
+ -- || ')';
+ -- fac.imp_writelog (p_import_key,
+ -- 'W',
+ -- v_aanduiding || v_errormsg,
+ -- 'insert_KEY');
+ END;
+
+ -- SUBPROC
+ -- Bijwerken beheerders!
+ PROCEDURE upd_beheerder (p_import_key IN NUMBER)
+ AS
+ CURSOR c1
+ IS
+ SELECT DISTINCT spiv_domein,
+ applicatiecode,
+ applicatienaam,
+ beh_type,
+ beh_mail,
+ beh_org
+ FROM rwsn_imp_appl
+ WHERE beh_type = 'FB' OR beh_type = 'KEY'
+ ORDER BY 1, 2, 3;
+
+ v_errorhint VARCHAR2 (1000) := '-';
+ v_discipline_key NUMBER (10);
+ v_srtgroep_key NUMBER (10);
+ v_srtdeel_key NUMBER (10);
+ ccount NUMBER (10);
+ v_count_tot NUMBER (10);
+ v_count_upd NUMBER (10);
+ BEGIN
+ v_count_tot := 0;
+ v_count_upd := 0;
+ v_aanduiding := '';
+
+ -- Verwijder -elke import opnieuw- alle beheerders (FB + KEY) en maak de
+ -- mogelijk gewijzigde set beheerders vervolgens weer aan!
+ -- Aanname: Import buiten werktijd ('s nachts) om samenloop te voorkomen
+ -- met notificaties en goedkeuring/afwijzing van opdrachten.
+ v_errormsg := 'Fout bij verwijderen beheerders (huidige)';
+
+ SELECT COUNT ( * )
+ INTO ccount
+ FROM ins_kenmerkdeel
+ WHERE ins_kenmerk_key IN
+ (SELECT ins_kenmerk_key
+ FROM ins_kenmerk
+ WHERE ins_kenmerk_bewerkniveau = 'S'
+ AND ins_srtkenmerk_key BETWEEN c_fb1_srtkey
+ AND c_max_key_srtkey);
+
+ --DELETE FROM ins_kenmerkdeel
+ -- WHERE ins_kenmerkdeel_verwijder IS NULL
+ -- AND ins_kenmerk_key IN
+ -- (SELECT ins_kenmerk_key
+ -- FROM ins_kenmerk
+ -- WHERE ins_kenmerk_bewerkniveau = 'S'
+ -- AND ins_srtkenmerk_key BETWEEN c_fb1_srtkey
+ -- AND c_max_key_srtkey);
+ UPDATE ins_kenmerkdeel
+ SET ins_kenmerkdeel_verwijder = SYSDATE
+ WHERE ins_kenmerkdeel_verwijder IS NULL
+ AND ins_kenmerk_key IN
+ (SELECT ins_kenmerk_key
+ FROM ins_kenmerk
+ WHERE ins_kenmerk_bewerkniveau = 'S'
+ AND ins_srtkenmerk_key BETWEEN c_fb1_srtkey
+ AND c_max_key_srtkey);
+
+ fac.imp_writelog (p_import_key,
+ 'S',
+ 'Beheerders/#verwijderd: ' || TO_CHAR (ccount),
+ '');
+ COMMIT;
+
+ FOR rec IN c1
+ LOOP
+ BEGIN
+ v_count_tot := v_count_tot + 1;
+ v_aanduiding :=
+ '['
+ || rec.spiv_domein
+ || '|'
+ || rec.applicatiecode
+ || '|'
+ || rec.applicatienaam
+ || '] ';
+ v_errormsg :=
+ 'Fout bij bepalen INS-discipline ['
+ || TO_CHAR (c_appl_discipline)
+ || ']';
+
+ SELECT ins_discipline_key
+ INTO v_discipline_key
+ FROM ins_tab_discipline
+ WHERE ins_discipline_verwijder IS NULL
+ AND ins_discipline_module = 'INS'
+ AND ins_discipline_key = c_appl_discipline;
+
+ v_errormsg := 'Fout bij bepalen SPIV-domein';
+
+ SELECT ins_srtgroep_key
+ INTO v_srtgroep_key
+ FROM ins_srtgroep
+ WHERE ins_srtgroep_verwijder IS NULL
+ AND ins_srtgroep_module = 'INS'
+ AND ins_discipline_key = v_discipline_key
+ AND UPPER (TRIM (ins_srtgroep_omschrijving)) =
+ UPPER (rec.spiv_domein);
+
+ v_errormsg := 'Fout bij (uniek) bepalen applicatie';
+
+ SELECT ins_srtdeel_key
+ INTO v_srtdeel_key
+ FROM ins_srtdeel
+ WHERE ins_srtdeel_verwijder IS NULL
+ AND ins_srtdeel_module = 'INS'
+ AND ins_srtgroep_key = v_srtgroep_key
+ AND UPPER (TRIM (ins_srtdeel_omschrijving)) =
+ UPPER (rec.applicatienaam);
+
+ IF (rec.beh_type = 'FB')
+ THEN
+ v_errorhint := 'insert_FB';
+ insert_FB (v_srtdeel_key, rec.beh_mail);
+ ELSE
+ v_errorhint := 'insert_KEY';
+ insert_KEY (v_srtdeel_key, rec.beh_mail, rec.beh_org);
+ END IF;
+
+ v_count_upd := v_count_upd + 1;
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ v_errormsg
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ '');
+ COMMIT;
+ END;
+ END LOOP;
+
+ fac.imp_writelog (p_import_key,
+ 'S',
+ 'Beheerders/#ingelezen: ' || TO_CHAR (v_count_tot),
+ '');
+ fac.imp_writelog (p_import_key,
+ 'S',
+ 'Beheerders/#toegevoegd: ' || TO_CHAR (v_count_upd),
+ '');
+ COMMIT;
+ END;
+
+ -- SUBPROC
+ -- Verwijderen applicaties (incl. alle gegevens???)!
+ -- Wat met lopende ICT aanvragen? Voorstel om in view op applicaties, de
+ -- verwijderde applicaties te prefixen met 'VERVALLEN:' en tot een maand
+ -- na verwijderen nog te tonen?
+ PROCEDURE del_srtdeel (p_import_key IN NUMBER)
+ AS
+ CURSOR c1
+ IS
+ SELECT sg.ins_srtgroep_omschrijving,
+ sd.ins_srtdeel_code,
+ sd.ins_srtdeel_omschrijving,
+ sd.ins_srtdeel_key
+ FROM ins_v_aanwezigsrtgroep sg, ins_v_aanwezigsrtdeel sd
+ WHERE sg.ins_discipline_key = c_appl_discipline
+ AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
+ AND NOT EXISTS
+ (SELECT 1
+ FROM rwsn_imp_appl
+ WHERE UPPER (spiv_domein) =
+ TRIM (sg.ins_srtgroep_upper)
+ AND UPPER (applicatienaam) =
+ TRIM (sd.ins_srtdeel_upper))
+ ORDER BY 1, 2, 3;
+
+ v_count_del NUMBER (10);
+ BEGIN
+ v_count_del := 0;
+ v_aanduiding := '';
+
+ FOR rec IN c1
+ LOOP
+ BEGIN
+ v_aanduiding :=
+ '['
+ || rec.ins_srtgroep_omschrijving
+ || '|'
+ || rec.ins_srtdeel_omschrijving
+ || '] ';
+ v_errormsg := 'Fout bij verwijderen applicatie';
+
+ --DELETE FROM ins_srtdeel
+ -- WHERE ins_srtdeel_key = rec.ins_srtdeel_key;
+ UPDATE ins_srtdeel
+ SET ins_srtdeel_verwijder = SYSDATE
+ WHERE ins_srtdeel_key = rec.ins_srtdeel_key;
+
+ --UPDATE ins_kenmerkdeel kd
+ -- SET kd.ins_kenmerkdeel_verwijder = SYSDATE
+ -- WHERE kd.ins_kenmerkdeel_verwijder IS NULL
+ -- AND kd.ins_deel_key = rec.ins_srtdeel_key
+ -- AND EXISTS
+ -- (SELECT 1
+ -- FROM ins_kenmerk
+ -- WHERE ins_kenmerk_key = kd.ins_kenmerk_key
+ -- AND ins_kenmerk_bewerkniveau = 'S');
+
+ COMMIT;
+
+ v_count_del := v_count_del + 1;
+ EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ v_errormsg
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.imp_writelog (p_import_key,
+ 'W',
+ v_aanduiding || v_errormsg,
+ '');
+ COMMIT;
+ END;
+ END LOOP;
+
+ fac.imp_writelog (
+ p_import_key,
+ 'S',
+ 'Applicaties/aantal verwijderd: ' || TO_CHAR (v_count_del),
+ ''
+ );
+ COMMIT;
+ END;
+-- MAIN
+BEGIN
+ add_srtgroep (p_import_key);
+ upd_srtdeel (p_import_key);
+ upd_beheerder (p_import_key);
+ del_srtdeel (p_import_key);
+EXCEPTION
+ WHEN OTHERS
+ THEN
+ oracle_err_num := SQLCODE;
+ oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
+ v_errormsg :=
+ v_errormsg
+ || ' ORACLE (error '
+ || oracle_err_num
+ || '/'
+ || oracle_err_mes
+ || ')';
+ fac.imp_writelog (p_import_key,
+ 'E',
+ v_errormsg,
+ 'Importproces DID-applicaties afgebroken!');
+END rwsn_update_appl;
+/
+
+-- RWSN#27838
CREATE OR REPLACE VIEW RWSN_V_NOTI_RESREMINDER
(
CODE,
diff --git a/UWVA/Once/uwva84.sql b/UWVA/Once/uwva84.sql
new file mode 100644
index 000000000..a1b818041
--- /dev/null
+++ b/UWVA/Once/uwva84.sql
@@ -0,0 +1,58 @@
+-- Customer specific once-script UWVA84.
+--
+-- (c) 2013 SG|facilitor bv
+-- $Revision$
+-- $Id$
+--
+-- Support: +31 53 4800700
+SET ECHO ON
+SPOOL xuwva84.lst
+SET DEFINE OFF
+
+--UWVA#23764 MLD: Vinkje bij Openstaande opdrachten ook afmelden default aan (setting)
+UPDATE fac_setting
+ SET fac_setting_pvalue = 1, fac_setting_datum = SYSDATE
+ WHERE fac_setting_name = 'mld_close_opdr_default';
+
+-- UWVA#27876+UWVA#27882 Webservice-user tbv. VOB-koppeling; dezelfde module, afdeling
+-- en functie als _FACILITOR (= 33759)!
+INSERT INTO prs_perslid (prs_perslid_module,
+ prs_srtperslid_key,
+ prs_afdeling_key,
+ prs_perslid_naam,
+ prs_perslid_oslogin,
+ prs_perslid_flags,
+ prs_perslid_apikey)
+ SELECT p.prs_perslid_module,
+ p.prs_srtperslid_key,
+ p.prs_afdeling_key,
+ 'Pseudo-user tbv. VOB',
+ '_VOB',
+ 0,
+ 'KHXbqwlUKbzOMUgfcmPzmgHzyJxQiurN'
+ FROM prs_perslid p
+ WHERE p.prs_perslid_key = 33759;
+
+-- UWVA#28137 Alle klachten (vakgroeptype 3) mogen verwijzen naar bestellingen, meldingen en reserveringen (waarde 13)
+UPDATE mld_stdmelding
+ SET mld_stdmelding_kanverwijzen = 13
+ WHERE mld_stdmelding_key IN
+ (SELECT mld_stdmelding_key
+ FROM mld_stdmelding std, mld_discipline md
+ WHERE mld_ins_discipline_key = md.ins_discipline_key
+ AND md.ins_srtdiscipline_key = 3);
+
+COMMIT;
+
+BEGIN adm.systrackscript('$Workfile: uwva84.sql $', '$Revision$', 2); END;
+/
+SPOOL OFF
+
+@@uwva_prs.sql
+@@uwva_fin.sql
+@@uwva_hv.sql
+@@uwva_misc.sql
+
+BEGIN fac.registercustversion('UWVA', 84); END;
+/
+COMMIT;
diff --git a/UWVA/post-imp/post-imp_uwva.sql b/UWVA/post-imp/post-imp_uwva.sql
index c35e46ec7..0c38793b9 100644
--- a/UWVA/post-imp/post-imp_uwva.sql
+++ b/UWVA/post-imp/post-imp_uwva.sql
@@ -100,7 +100,7 @@ UPDATE fac_srtnotificatie SET fac_srtnotificatie_oms=SUBSTR('SGF-'||fac_srtnotif
-- 1) Notificatiejobs uitzetten
UPDATE fac_notificatie_job
- SET fac_notificatie_job_nextrun = NULL
+SET fac_notificatie_job_nextrun = ADD_MONTHS(TRUNC(SYSDATE), 15*12)
WHERE fac_notificatie_job_key IN (3, 21, 122, 161, 181, 183);
-- 2) Een aantal mail-notificatie uitzetten
diff --git a/UWVA/uwva_fin.sql b/UWVA/uwva_fin.sql
index 78909685f..9ced6d3fa 100644
--- a/UWVA/uwva_fin.sql
+++ b/UWVA/uwva_fin.sql
@@ -6475,11 +6475,12 @@ END;
/
-/* Formatted on 19-11-2010 14:18:42 (QP5 v5.136.908.31019) */
-- UWVA#19018: Notificeer niet gefiatteerde facturen naar de budgethouders (1 mail per persoon)
-- Maakt hierbij niet veel uit of ze net zijn geimporteerd of vroeger (of handmatig ingevoerd)
-- Medium wordt bepaalt door mode bij FININF
-- Wordt aangeroepen na factuurimport
+-- UWVA#27940: Alleen actieve kostenplaatsen
+/* Formatted on 25-11-2013 21:30:58 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_noti_finreminder
(
code,
@@ -6494,19 +6495,26 @@ CREATE OR REPLACE VIEW uwva_v_noti_finreminder
AS
SELECT 'FININF',
'',
- prs.getkpverantwoordelijke (fin.getfactuurkostenplaats (f.fin_factuur_key), 2, -1) budgethouder,
- 'Fiatteringsverzoek voor '
- || COUNT (f.fin_factuur_key)
- || DECODE (COUNT (f.fin_factuur_key), 1, ' factuur.', ' facturen.'),
- MIN (f.fin_factuur_key), -- Dummy key, althans een willekeurige; nog testen of dit werkt???
+ prs.getkpverantwoordelijke (kp.prs_kostenplaats_key, 2, -1)
+ budgethouder,
+ 'Fiatteringsverzoek voor ' || COUNT (f.fin_factuur_key)
+ || DECODE (COUNT (f.fin_factuur_key),
+ 1, ' factuur.',
+ ' facturen.'),
+ MIN (f.fin_factuur_key), -- Dummy key, althans een willekeurige!
NULL,
NULL,
NULL
- FROM fin_factuur f
- WHERE f.fin_factuur_statuses_key = 2
- --AND f.mld_opdr_key IS NOT NULL
- AND f.fin_factuur_datum > SYSDATE - 0.1 / 24 -- minder dan 6 minuten geleden
- GROUP BY prs.getkpverantwoordelijke (fin.getfactuurkostenplaats (f.fin_factuur_key), 2, -1);
+ FROM fin_factuur f, prs_v_aanwezigkostenplaats kp
+ WHERE f.fin_factuur_verwijder IS NULL
+ AND f.fin_factuur_statuses_key = 2
+ AND f.fin_factuur_datum > SYSDATE - 0.1 / 24 -- Minder dan 6 minuten geleden
+ AND fin.getfactuurkostenplaats (f.fin_factuur_key) =
+ kp.prs_kostenplaats_key
+ AND kp.prs_kostenplaats_omschrijving NOT LIKE 'INACTIEF%'
+ AND (kp.prs_kostenplaats_eind > TRUNC (SYSDATE)
+ OR kp.prs_kostenplaats_eind IS NULL)
+ GROUP BY prs.getkpverantwoordelijke (kp.prs_kostenplaats_key, 2, -1);
--UWVA#20283 rapportage tbv combinatieconrolle mismatch bij opdrachten
@@ -6712,71 +6720,69 @@ AS
-- UWVA#21019: Reminders naar budgethouders dat ze facturen moeten accorderen
-- (na 1 week en na 3 weken)
+-- UWVA#27940: Alleen actieve kostenplaatsen
+/* Formatted on 25-11-2013 21:30:58 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_noti_factuurreminder
(
- CODE,
- SENDER,
- RECEIVER,
- TEXT,
- KEY,
- PAR1,
- PAR2,
- XKEY
+ code,
+ sender,
+ receiver,
+ text,
+ key,
+ par1,
+ par2,
+ xkey
)
AS
- SELECT 'CUST11',
- '',
- prs.getkpverantwoordelijke (
- fin.getfactuurkostenplaats (f.fin_factuur_key),
- 2,
- -1)
- budgethouder,
- 'RAPPEL: '
- || COUNT (f.fin_factuur_key)
- || ' niet automatisch goedgekeurde factuurregel'
- || DECODE (COUNT (f.fin_factuur_key), 1, '. (', 's. (')
- || TO_CHAR( TRUNC( SYSDATE - 7 ), 'DD-MM-YYYY')
- || ')',
- MIN (f.fin_factuur_key), -- Dummy key, althans een willekeurige; nog testen of dit werkt???
- NULL,
- NULL,
- NULL
- FROM fin_factuur f
- WHERE f.fin_factuur_statuses_key = 2
- AND f.fin_factuur_verwijder IS NULL
- --AND f.mld_opdr_key IS NOT NULL
- AND TRUNC(f.fin_factuur_datum) = TRUNC( SYSDATE - 7 ) -- 1 week (7 dagen) geleden
- GROUP BY prs.getkpverantwoordelijke (
- fin.getfactuurkostenplaats (f.fin_factuur_key),
- 2,
- -1)
-UNION
- SELECT 'CUST12',
- '',
- prs.getkpverantwoordelijke (
- fin.getfactuurkostenplaats (f.fin_factuur_key),
- 2,
- -1)
- budgethouder,
- 'TWEEDE RAPPEL: '
- || COUNT (f.fin_factuur_key)
- || ' niet automatisch goedgekeurde factuurregel'
- || DECODE (COUNT (f.fin_factuur_key), 1, '. (', 's. (')
- || TO_CHAR( TRUNC( SYSDATE - 21 ), 'DD-MM-YYYY')
- || ')',
- MIN (f.fin_factuur_key), -- Dummy key, althans een willekeurige; nog testen of dit werkt???
- NULL,
- NULL,
- NULL
- FROM fin_factuur f
- WHERE f.fin_factuur_statuses_key = 2
- AND f.fin_factuur_verwijder IS NULL
- --AND f.mld_opdr_key IS NOT NULL
- AND TRUNC(f.fin_factuur_datum) = TRUNC( SYSDATE - 21 ) -- 3 weken (21 dagen) geleden
- GROUP BY prs.getkpverantwoordelijke (
- fin.getfactuurkostenplaats (f.fin_factuur_key),
- 2,
- -1);
+ SELECT 'CUST11',
+ '',
+ prs.getkpverantwoordelijke (kp.prs_kostenplaats_key, 2, -1)
+ budgethouder,
+ 'RAPPEL: '
+ || COUNT (f.fin_factuur_key)
+ || ' niet automatisch goedgekeurde factuurregel'
+ || DECODE (COUNT (f.fin_factuur_key), 1, '. (', 's. (')
+ || TO_CHAR (TRUNC (SYSDATE - 7), 'DD-MM-YYYY')
+ || ')',
+ MIN (f.fin_factuur_key), -- Dummy key, althans een willekeurige!
+ NULL,
+ NULL,
+ NULL
+ FROM fin_factuur f, prs_v_aanwezigkostenplaats kp
+ WHERE f.fin_factuur_verwijder IS NULL
+ AND f.fin_factuur_statuses_key = 2
+ AND TRUNC (f.fin_factuur_datum) = TRUNC (SYSDATE - 7) -- 1 week (7 dagen) geleden
+ AND fin.getfactuurkostenplaats (f.fin_factuur_key) =
+ kp.prs_kostenplaats_key
+ AND kp.prs_kostenplaats_omschrijving NOT LIKE 'INACTIEF%'
+ AND (kp.prs_kostenplaats_eind > TRUNC (SYSDATE)
+ OR kp.prs_kostenplaats_eind IS NULL)
+ GROUP BY prs.getkpverantwoordelijke (kp.prs_kostenplaats_key, 2, -1)
+ UNION
+ SELECT 'CUST12',
+ '',
+ prs.getkpverantwoordelijke (kp.prs_kostenplaats_key, 2, -1)
+ budgethouder,
+ 'TWEEDE RAPPEL: '
+ || COUNT (f.fin_factuur_key)
+ || ' niet automatisch goedgekeurde factuurregel'
+ || DECODE (COUNT (f.fin_factuur_key), 1, '. (', 's. (')
+ || TO_CHAR (TRUNC (SYSDATE - 21), 'DD-MM-YYYY')
+ || ')',
+ MIN (f.fin_factuur_key), -- Dummy key, althans een willekeurige!
+ NULL,
+ NULL,
+ NULL
+ FROM fin_factuur f, prs_v_aanwezigkostenplaats kp
+ WHERE f.fin_factuur_verwijder IS NULL
+ AND f.fin_factuur_statuses_key = 2
+ AND TRUNC (f.fin_factuur_datum) = TRUNC (SYSDATE - 21) -- 3 weken (21 dagen) geleden
+ AND fin.getfactuurkostenplaats (f.fin_factuur_key) =
+ kp.prs_kostenplaats_key
+ AND kp.prs_kostenplaats_omschrijving NOT LIKE 'INACTIEF%'
+ AND (kp.prs_kostenplaats_eind > TRUNC (SYSDATE)
+ OR kp.prs_kostenplaats_eind IS NULL)
+ GROUP BY prs.getkpverantwoordelijke (kp.prs_kostenplaats_key, 2, -1);
-- UWVA#20124: Rapportage voor doorbelasten geannuleerde bestellingen
diff --git a/UWVA/uwva_misc.sql b/UWVA/uwva_misc.sql
index 9ecce78eb..89170e2a0 100644
--- a/UWVA/uwva_misc.sql
+++ b/UWVA/uwva_misc.sql
@@ -145,15 +145,11 @@ AS
BEGIN
v_dl := 0;
- SELECT COALESCE (fac_setting_pvalue, fac_setting_default)
- INTO v_kt_van
- FROM fac_setting
- WHERE fac_setting_key = 21;
+ -- Bepaal 'Start time of working day' (21=fac_t_startofworkday)!
+ v_kt_van := fac.safe_to_number (fac.getsetting ('fac_t_startofworkday'));
- SELECT COALESCE (fac_setting_pvalue, fac_setting_default)
- INTO v_kt_tot
- FROM fac_setting
- WHERE fac_setting_key = 22;
+ -- Bepaal 'End time of working day' (22=fac_t_endofworkday)!
+ v_kt_van := fac.safe_to_number (fac.getsetting ('fac_t_endofworkday'));
IF (van_date > tot_date)
THEN
@@ -5680,8 +5676,8 @@ BEGIN
-- Delete BSN voor reserveringen ouder dan 31 dagen en een activiteitkey
-- hebben tussen 21 en 181 (UWVA#19128)
-- Nu ook tussen 281 en 283 (UWVA#23258)
- -- (UWVA#25930)
- -- Kenmerken tussen 321 en 324 hoeven niet meer deze worden verwijderd. (UWVA#27583, nog niet per UWVA83!!!)
+ -- Nu ook tussen 321 en 323 (UWVA#25930)
+ -- Nu niet meer tussen 321 en 323 (UWVA#27583)
DELETE FROM res_kenmerkwaarde
WHERE res_kenmerkwaarde_key IN
(SELECT kw.res_kenmerkwaarde_key
@@ -5689,12 +5685,10 @@ BEGIN
res_kenmerkwaarde kw,
res_kenmerk k,
res_srtkenmerk srtk
- WHERE ((r.res_activiteit_key > 20
+ WHERE ( (r.res_activiteit_key > 20
AND r.res_activiteit_key < 182)
OR (r.res_activiteit_key > 280
- AND r.res_activiteit_key < 284) --)
- OR (r.res_activiteit_key > 320 -- UWVA#27583: Nog niet per UWVA83!
- AND r.res_activiteit_key < 324)) -- UWVA#27583: Nog niet per UWVA83!
+ AND r.res_activiteit_key < 284))
AND kw.res_rsv_ruimte_key =
r.res_rsv_ruimte_key
AND k.res_kenmerk_key = kw.res_kenmerk_key
@@ -5706,7 +5700,7 @@ BEGIN
-- Anonimiseer bezoekersnaam voor reserveringen ouder dan 31 dagen en een
-- activiteitkey hebben tussen 21 en 181 (UWVA#19128)
-- Nu ook tussen 281 en 283 (UWVA#23258)
- -- Nu ook tussen 321 en 324 (UWVA#25930)
+ -- Nu ook tussen 321 en 323 (UWVA#25930)
UPDATE bez_bezoekers
SET bez_afspraak_naam = 'Anoniem', bez_afspraak_bedrijf = 'Anoniem'
WHERE bez_afspraak_key IN
@@ -5723,32 +5717,32 @@ BEGIN
AND v.bez_afspraak_key = b.bez_afspraak_key
AND v.bez_afspraak_naam != 'Anoniem');
- -- Verwijder opmerking voor afspraken van reserveringen ouder dan 31 dagen en een
- -- activiteitkey hebben tussen 21 en 181, tussen 281 en 283 en tussen 321 en 324 (UWVA#27583, nog niet per UWVA83!!!)
---UPDATE bez_afspraak
--- SET bez_afspraak_opmerking = NULL
--- WHERE bez_afspraak_key IN
--- (SELECT b.bez_afspraak_key
--- FROM res_rsv_ruimte r, bez_afspraak b
--- WHERE ( (r.res_activiteit_key > 20
--- AND r.res_activiteit_key < 182)
--- OR (r.res_activiteit_key > 280
--- AND r.res_activiteit_key < 284)
--- OR (r.res_activiteit_key > 320
--- AND r.res_activiteit_key < 324))
--- AND r.res_rsv_ruimte_tot < SYSDATE - 31
--- AND b.res_rsv_ruimte_key = r.res_rsv_ruimte_key
--- AND b.bez_afspraak_opmerking IS NOT NULL);
+ -- Verwijder opmerking voor afspraken van reserveringen ouder dan 31 dagen en een
+ -- activiteitkey hebben tussen 21 en 181, tussen 281 en 283 en tussen 321 en 323 (UWVA#27583)
+ UPDATE bez_afspraak
+ SET bez_afspraak_opmerking = NULL
+ WHERE bez_afspraak_key IN
+ (SELECT b.bez_afspraak_key
+ FROM res_rsv_ruimte r, bez_afspraak b
+ WHERE ( (r.res_activiteit_key > 20
+ AND r.res_activiteit_key < 182)
+ OR (r.res_activiteit_key > 280
+ AND r.res_activiteit_key < 284)
+ OR (r.res_activiteit_key > 320
+ AND r.res_activiteit_key < 324))
+ AND r.res_rsv_ruimte_tot < SYSDATE - 31
+ AND b.res_rsv_ruimte_key = r.res_rsv_ruimte_key
+ AND b.bez_afspraak_opmerking IS NOT NULL);
- -- Verwijder opmerking van reserveringen ouder dan 31 dagen en een
- -- activiteitkey hebben tussen 21 en 181, tussen 281 en 283 en tussen 321 en 324 (UWVA#27583, nog niet per UWVA83!!!)
---UPDATE res_rsv_ruimte r
--- SET r.res_rsv_ruimte_opmerking = NULL
--- WHERE ( (r.res_activiteit_key > 20 AND r.res_activiteit_key < 182)
--- OR (r.res_activiteit_key > 280 AND r.res_activiteit_key < 284)
--- OR (r.res_activiteit_key > 320 AND r.res_activiteit_key < 324))
--- AND r.res_rsv_ruimte_tot < SYSDATE - 31
--- AND r.res_rsv_ruimte_opmerking IS NOT NULL;
+ -- Verwijder opmerking van reserveringen ouder dan 31 dagen en een
+ -- activiteitkey hebben tussen 21 en 181, tussen 281 en 283 en tussen 321 en 323 (UWVA#27583)
+ UPDATE res_rsv_ruimte r
+ SET r.res_rsv_ruimte_opmerking = NULL
+ WHERE ( (r.res_activiteit_key > 20 AND r.res_activiteit_key < 182)
+ OR (r.res_activiteit_key > 280 AND r.res_activiteit_key < 284)
+ OR (r.res_activiteit_key > 320 AND r.res_activiteit_key < 324))
+ AND r.res_rsv_ruimte_tot < SYSDATE - 31
+ AND r.res_rsv_ruimte_opmerking IS NOT NULL;
COMMIT;
EXCEPTION
@@ -8971,7 +8965,7 @@ AS
-- UWVA#27681 - Vervolg op bovenstaande rapportage (maar dan anders ;-)!
-- NB. Erg zware rapportage, dus via tabelizer?
-/* Formatted on 1-11-2013 12:54:36 (QP5 v5.115.810.9015) */
+/* Formatted on 11-11-2013 12:28:32 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_opdr_doorloop
(
hide_f_srt,
@@ -9068,22 +9062,31 @@ AS
WHEN alldag_uren = 0
THEN
'0d-0u-0m'
- WHEN afmdag_uren = 0
+ WHEN newdag_uren = 0 OR afmdag_uren = 0
THEN
- TO_CHAR (workdays)
- || 'd-'
- || TO_CHAR (FLOOR (newdag_uren))
- || 'u-'
- || TO_CHAR (MOD (ROUND (newdag_uren * 60, 0), 60))
- || 'm'
- WHEN newdag_uren = 0
- THEN
- TO_CHAR (workdays - 1)
- || 'd-'
- || TO_CHAR (FLOOR (afmdag_uren))
- || 'u-'
- || TO_CHAR (MOD (ROUND (afmdag_uren * 60, 0), 60))
- || 'm'
+ CASE
+ WHEN TO_CHAR (ordafm_date, 'D') IN (1, 7)
+ OR mld_vrije_dagen_datum IS NOT NULL
+ THEN
+ TO_CHAR (workdays)
+ || 'd-'
+ || TO_CHAR (FLOOR (newdag_uren))
+ || 'u-'
+ || TO_CHAR (MOD (ROUND (newdag_uren * 60, 0), 60))
+ || 'm'
+ ELSE
+ TO_CHAR (workdays - 1)
+ || 'd-'
+ || TO_CHAR (FLOOR (newdag_uren + afmdag_uren))
+ || 'u-'
+ || TO_CHAR(MOD (
+ CEIL (
+ (newdag_uren + afmdag_uren) * 60
+ ),
+ 60
+ ))
+ || 'm'
+ END
ELSE
CASE
WHEN TO_CHAR (ordafm_date, 'HH24MI') >=
@@ -9101,19 +9104,16 @@ AS
* 24))
|| 'u-'
|| TO_CHAR(MOD (
- ROUND (
- (ordafm_date
- - TO_DATE (
- TO_CHAR (ordafm_date,
- 'DDMMYYYY')
- || TO_CHAR (ordnew_date,
- 'HH24MISS'),
- 'DDMMYYYYHH24MISS'
- ))
- * 24
- * 60,
- 0
- ),
+ CEIL( (ordafm_date
+ - TO_DATE (
+ TO_CHAR (ordafm_date,
+ 'DDMMYYYY')
+ || TO_CHAR (ordnew_date,
+ 'HH24MISS'),
+ 'DDMMYYYYHH24MISS'
+ ))
+ * 24
+ * 60),
60
))
|| 'm'
@@ -9123,9 +9123,8 @@ AS
|| TO_CHAR (FLOOR (newdag_uren + afmdag_uren))
|| 'u-'
|| TO_CHAR(MOD (
- ROUND (
- (newdag_uren + afmdag_uren) * 60,
- 0
+ CEIL (
+ (newdag_uren + afmdag_uren) * 60
),
60
))
@@ -9171,21 +9170,26 @@ AS
ordafm.fac_tracking_datum
)
afmdag_uren,
+ vd.mld_vrije_dagen_datum,
opdr.gebouw_key,
opdr.gebouw,
opdr.verdieping,
opdr.ruimte,
opdr.ins_srtdeel_omschrijving,
opdr.ins_deel_omschrijving
- FROM opdr
+ FROM opdr
+ LEFT JOIN
+ fac_tracking ordnew
+ ON opdr.opdr_key = ordnew.fac_tracking_refkey
+ AND ordnew.fac_srtnotificatie_key = 125
LEFT JOIN
- fac_tracking ordnew
- ON opdr.opdr_key = ordnew.fac_tracking_refkey
- AND ordnew.fac_srtnotificatie_key = 125
+ fac_tracking ordafm
+ ON opdr.opdr_key = ordafm.fac_tracking_refkey
+ AND ordafm.fac_srtnotificatie_key = 26
LEFT JOIN
- fac_tracking ordafm
- ON opdr.opdr_key = ordafm.fac_tracking_refkey
- AND ordafm.fac_srtnotificatie_key = 26);
+ mld_vrije_dagen vd
+ ON TRUNC (ordafm.fac_tracking_datum) =
+ TRUNC (vd.mld_vrije_dagen_datum));
BEGIN DBMS_UTILITY.COMPILE_SCHEMA(USER, FALSE); END;
/