2253 lines
85 KiB
MySQL
2253 lines
85 KiB
MySQL
-- Script containing customer specific configuration sql statements for vebe: Vebego
|
||
-- $Revision$
|
||
-- $Id$
|
||
|
||
DEFINE thisfile = 'VEBE.SQL'
|
||
DEFINE dbuser = '^VEBE'
|
||
DEFINE custid = 'VEBE'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SPOOL &fcltlogfile
|
||
SET DEFINE OFF
|
||
|
||
--
|
||
-- Personen import
|
||
--
|
||
|
||
CREATE OR REPLACE PROCEDURE vebe_post_import_perslid (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
-- Kenmerk 1: Indirect of direct
|
||
-- Kenmerk 2: Adres van medewerker (straatnaam + huisnr)
|
||
-- Kenmerk 3: Woonplaats van medewerker (postcode + woonplaats)
|
||
-- Kenmerk 4: Contact via contactpersoon (maw de contactgegevens als mail, mobile etc zijn van contactpersoon van medewerkers en niet van hem/haar zelf)
|
||
CURSOR c_perslid_kenmerken
|
||
IS
|
||
SELECT prs_perslid_key, prs_perslid_naam, prs_perslid_email, prs_kenmerk1, prs_kenmerk2, prs_kenmerk3, prs_kenmerk4
|
||
FROM fac_imp_perslid
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
BEGIN
|
||
|
||
-- Kenmerk 1: Indirect of direct heeft de waarde I of D. Een I wordt vertaald naar 1, een D naar 0. Een andere letter of NULL value wordt naar 0 vertaald.
|
||
UPDATE fac_imp_perslid
|
||
SET prs_kenmerk1 = DECODE(UPPER(prs_kenmerk1),'I','1','D','0','0')
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
-- Kenmerk 4: Contactvia heeft waarde ja of nee of leeg (NULL). Een ja wordt vertaald naar 1, een nee naar 0. Iets anders of NULL value wordt naar 0 vertaald.
|
||
UPDATE fac_imp_perslid
|
||
SET prs_kenmerk4 = DECODE(UPPER(prs_kenmerk4),'JA','1','NEE','0','0')
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||
END vebe_post_import_perslid;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE vebe_import_perslid (p_import_key IN NUMBER)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
|
||
BEGIN
|
||
|
||
v_errorhint := 'Generieke update';
|
||
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
|
||
|
||
-- 1.Roepnaam 2.Voorletters 3.Tussenvoegsel 4.Achternaam 5.Persnr. 6.Afdnr. 7.Functie 8.Email 9.Mobile 10.Telefoon 11.Loginnaam 12.Direct-Indirect 13.Straat-huisnr 14.Postcode-Woonplaats 15.Contactvia
|
||
|
||
prs.import_perslid (p_import_key,
|
||
'0;0;0;0;0;0;6;4;3;1;' ||
|
||
'2;0;0;0;0;10;9;8;0;5;' ||
|
||
'7;11;0;0;0;0;12;13;14;15;'||
|
||
'0;0;0;0;0;0;0;0;0;0;'||
|
||
'0;0;0;0;0;0',
|
||
'Roepnaam;Voorletters;Tussenvoegsel;Achternaam;Persnr.;Afdnr.;Functie;Email;Mobile;Telefoon;Loginnaam%'
|
||
);
|
||
|
||
vebe_post_import_perslid(p_import_key);
|
||
|
||
COMMIT;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||
END vebe_import_perslid;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE vebe_post_update_perslid (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
-- Kenmerk 1: Indirect of direct
|
||
-- Kenmerk 2: Adres van medewerker (straatnaam + huisnr)
|
||
-- Kenmerk 3: Woonplaats van medewerker (postcode + woonplaats)
|
||
-- Kenmerk 4: Contact via contactpersoon (maw de contactgegevens als mail, mobile etc zijn van contactpersoon van medewerkers en niet van hem/haar zelf)
|
||
CURSOR c_perslid_kenmerken
|
||
IS
|
||
SELECT prs_perslid_key, prs_perslid_naam, prs_perslid_email, prs_kenmerk1, prs_kenmerk2, prs_kenmerk3, prs_kenmerk4
|
||
FROM fac_imp_perslid
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
|
||
|
||
BEGIN
|
||
FOR rc IN c_perslid_kenmerken
|
||
LOOP
|
||
BEGIN
|
||
-- Indirect of direct heeft vaste kenmerk-key 1000
|
||
prs.upsertkenmerk(1000, rc.prs_perslid_key, rc.prs_kenmerk1);
|
||
-- Adres heeft vaste kenmerk-key 1001
|
||
prs.upsertkenmerk(1001, rc.prs_perslid_key, rc.prs_kenmerk2);
|
||
-- Postcode + Woonplaats heeft vaste kenmerk-key 1002
|
||
prs.upsertkenmerk(1002, rc.prs_perslid_key, rc.prs_kenmerk3);
|
||
-- Contactvia heeft vaste kenmerk-key 1004
|
||
prs.upsertkenmerk(1004, rc.prs_perslid_key, rc.prs_kenmerk4);
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Post update bij persoon' || rc.prs_perslid_key || ' is NIET volledig uitgevoerd )',
|
||
'Naam:' || rc.prs_perslid_naam || ' Email:' || rc.prs_perslid_email
|
||
);
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE vebe_update_perslid (
|
||
p_import_key IN NUMBER
|
||
) IS
|
||
-- Alle personen verwijderen die niet meer in import bestand voorkomen.
|
||
-- Anker bij vebe is personeelnummer, hieronder de query om alle personen te verwijderen die:
|
||
-- a) niet meer in het importbestand staan, wel in Facilitor, en
|
||
-- b) waarvan de persoon in Facilitor een gevulde personeelsnummer heeft (leeg personeelsnummer van af blijven, dit zijn stagiairs etc die handmatig zijn toegevoegd)
|
||
-- c) waarvan de persoon in Facilitor niet begint met een _ in de loginnaam (ook van af blijven)
|
||
-- d)
|
||
|
||
CURSOR c_del
|
||
IS
|
||
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
|
||
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
|
||
WHERE UPPER(p.prs_perslid_nr) = UPPER(i.prs_perslid_nr(+))
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND SUBSTR(p.prs_perslid_oslogin,1,1) <> '_'
|
||
AND p.prs_perslid_nr IS NOT NULL
|
||
AND pf.prs_perslid_key = p.prs_perslid_key
|
||
AND i.prs_perslid_nr IS NULL
|
||
ORDER BY 2;
|
||
|
||
v_count NUMBER;
|
||
|
||
BEGIN
|
||
-- generic update
|
||
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM fac_imp_perslid;
|
||
|
||
IF v_count < 100
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Het aantal te importeren personen is te klein ('
|
||
|| TO_CHAR (v_count) || ')',
|
||
'Zie Specificatie (minimaal 100 personen)'
|
||
);
|
||
RETURN;
|
||
END IF;
|
||
|
||
-- 'LOGIN' betekent dat op basis van Login wordt gematched.
|
||
-- 'NR' betekent dat op basis van Personeelsnummer wordt gematched.
|
||
-- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen
|
||
prs.update_perslid (p_import_key, 'NR', NULL);
|
||
|
||
-- Verwijder personen die niet meer in de import voorkomen.
|
||
FOR rec IN c_del
|
||
LOOP
|
||
BEGIN
|
||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
END;
|
||
END LOOP;
|
||
|
||
vebe_post_update_perslid(p_import_key);
|
||
|
||
END vebe_update_perslid;
|
||
/
|
||
|
||
-- View met 1 record voor de combinatie de leasecontractgegevens (ins_discipline_key = 21), de gebruiksovereenkomstgegevens (ins_discipline_key = 22) en de auto-gegevens.
|
||
|
||
CREATE OR REPLACE VIEW vebe_cnt_lease_en_gebruiks_ovk
|
||
(
|
||
extra_key,
|
||
cnt_lease_key,
|
||
prs_bedrijf_key,
|
||
cnt_gebruik_key,
|
||
prs_berijder_key,
|
||
ins_deel_key,
|
||
prs_lease_perslid_key_eig,
|
||
cnt_lease_nummer_intern,
|
||
cnt_lease_versie,
|
||
cnt_lease_omschr,
|
||
cnt_lease_looptijd_van,
|
||
cnt_lease_looptijd_tot,
|
||
cnt_lease_looptijd_mnd,
|
||
perc_lease_duur,
|
||
lease_weken_tegaan,
|
||
cnt_lease_rappeldatum,
|
||
cnt_lease_opzegdatum,
|
||
cnt_lease_opzegtermijn,
|
||
cnt_lease_rappeltermijn,
|
||
cnt_lease_status,
|
||
lease_fase_actief,
|
||
cnt_lease_status_txt,
|
||
cnt_lease_kosten,
|
||
cnt_lease_termijnkosten,
|
||
lease_disc_key,
|
||
lease_eigenaar_key,
|
||
lease_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_gebr_perslid_key_eig,
|
||
cnt_gebruik_nummer_intern,
|
||
cnt_gebruik_versie,
|
||
cnt_gebruik_omschr,
|
||
cnt_gebruik_looptijd_van,
|
||
cnt_gebruik_looptijd_tot,
|
||
perc_gebruik_duur,
|
||
gebruik_weken_tegaan,
|
||
cnt_gebruik_rappeldatum,
|
||
cnt_gebruik_opzegdatum,
|
||
cnt_gebruik_opzegtermijn,
|
||
cnt_gebruik_rappeltermijn,
|
||
cnt_gebruik_status,
|
||
gebruik_fase_actief,
|
||
cnt_gebruik_status_txt,
|
||
gebruik_disc_key,
|
||
gebruik_eigenaar_key,
|
||
gebruik_eigenaar_afdeling_naam,
|
||
prs_eigenaar_naam_full,
|
||
prs_eigenaar_naam_friendly,
|
||
prs_berijder_prsnr,
|
||
prs_berijder_naam_full,
|
||
prs_berijder_naam_friendly,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_srtdeel_omschrijving,
|
||
gov_huidig_jaar,
|
||
gov_vorig_jaar
|
||
)
|
||
AS
|
||
SELECT c1.cnt_contract_key extra_key,
|
||
c1.cnt_contract_key cnt_lease_key,
|
||
b.prs_bedrijf_key,
|
||
c2.cnt_contract_key cnt_gebruik_key,
|
||
p2.prs_perslid_key prs_berijder_key,
|
||
d.ins_deel_key,
|
||
c1.prs_perslid_key_eig prs_lease_perslid_key_eig,
|
||
c1.cnt_contract_nummer_intern cnt_lease_nummer_intern,
|
||
c1.cnt_contract_versie cnt_lease_versie,
|
||
c1.cnt_contract_omschrijving cnt_lease_omschr,
|
||
c1.cnt_contract_looptijd_van cnt_lease_looptijd_van,
|
||
c1.cnt_contract_looptijd_tot cnt_lease_looptijd_tot,
|
||
12
|
||
* ( TO_CHAR (c1.cnt_contract_looptijd_tot, 'YYYY')
|
||
- TO_CHAR (c1.cnt_contract_looptijd_van, 'YYYY')
|
||
- 1)
|
||
+ (12 - TO_CHAR (c1.cnt_contract_looptijd_van, 'MM'))
|
||
+ (TO_CHAR (c1.cnt_contract_looptijd_tot, 'MM'))
|
||
cnt_lease_looptijd_mnd,
|
||
ROUND(100
|
||
* LEAST (
|
||
1,
|
||
(SYSDATE - LEAST (c1.cnt_contract_looptijd_van, SYSDATE))
|
||
/ (GREATEST (
|
||
c1.cnt_contract_looptijd_tot
|
||
- c1.cnt_contract_looptijd_van,
|
||
1
|
||
))
|
||
))
|
||
perc_lease_duur,
|
||
ROUND( (c1.cnt_contract_looptijd_tot
|
||
- GREATEST (c1.cnt_contract_looptijd_van,
|
||
LEAST (SYSDATE, c1.cnt_contract_looptijd_tot)))
|
||
/ 7)
|
||
lease_weken_tegaan,
|
||
cnt.cnt_getrappeldatum (c1.cnt_contract_key) cnt_lease_rappeldatum,
|
||
cnt.cnt_getopzegdatum (c1.cnt_contract_key) cnt_lease_opzegdatum,
|
||
(SELECT lcl.x ('cnt_termijn_omschrijving',
|
||
cnt_termijn_key,
|
||
cnt_termijn_omschrijving)
|
||
FROM cnt_termijn
|
||
WHERE cnt_termijn_key = c1.cnt_contract_opzegtermijn)
|
||
cnt_lease_opzegtermijn,
|
||
(SELECT lcl.x ('cnt_termijn_omschrijving',
|
||
cnt_termijn_key,
|
||
cnt_termijn_omschrijving)
|
||
FROM cnt_termijn
|
||
WHERE cnt_termijn_key = c1.cnt_contract_rappeltermijn)
|
||
cnt_lease_rappeltermijn,
|
||
c1.cnt_contract_status cnt_lease_status,
|
||
DECODE (
|
||
cnt.cnt_contract_status (
|
||
c1.cnt_contract_looptijd_van,
|
||
cnt.cnt_getrappeldatum (c1.cnt_contract_key),
|
||
cnt.cnt_getopzegdatum (c1.cnt_contract_key),
|
||
c1.cnt_contract_looptijd_tot
|
||
),
|
||
0,
|
||
lcl.l ('lcl_cnt_future'),
|
||
1,
|
||
lcl.l ('lcl_cnt_topical'),
|
||
2,
|
||
lcl.l ('lcl_cnt_warn'),
|
||
3,
|
||
lcl.l ('lcl_cnt_cancel'),
|
||
4,
|
||
lcl.l ('lcl_cnt_past')
|
||
)
|
||
lease_fase_actief,
|
||
DECODE (
|
||
c1.cnt_contract_status,
|
||
0,
|
||
DECODE (fac.getsetting ('cnt_contract_approval'),
|
||
1, lcl.l ('lcl_cnt_active_approval'),
|
||
lcl.l ('lcl_cnt_active')),
|
||
1,
|
||
lcl.l ('lcl_cnt_inactive'),
|
||
2,
|
||
lcl.l ('lcl_cnt_new'),
|
||
3,
|
||
lcl.l ('lcl_cnt_forapproval')
|
||
)
|
||
cnt_lease_status_txt,
|
||
c1.cnt_contract_kosten cnt_lease_kosten,
|
||
c1.cnt_contract_termijnkosten cnt_lease_termijnkosten,
|
||
COALESCE (c1.ins_discipline_key, -1) lease_disc_key,
|
||
c1.prs_afdeling_key_eig lease_eigenaar_key,
|
||
(SELECT prs_afdeling_naam
|
||
FROM prs_v_afdeling
|
||
WHERE prs_afdeling_key = c1.prs_afdeling_key_eig)
|
||
lease_eigenaar_afdeling_naam,
|
||
b.prs_bedrijf_naam,
|
||
c2.prs_perslid_key_eig prs_gebr_perslid_key_eig,
|
||
c2.cnt_contract_nummer_intern cnt_gebruik_nummer_intern,
|
||
c2.cnt_contract_versie cnt_gebruik_versie,
|
||
c2.cnt_contract_omschrijving cnt_gebruik_omschr,
|
||
c2.cnt_contract_looptijd_van cnt_gebruik_looptijd_van,
|
||
c2.cnt_contract_looptijd_tot cnt_gebruik_looptijd_tot,
|
||
ROUND(100
|
||
* LEAST (
|
||
1,
|
||
(SYSDATE - LEAST (c2.cnt_contract_looptijd_van, SYSDATE))
|
||
/ (GREATEST (
|
||
c2.cnt_contract_looptijd_tot
|
||
- c2.cnt_contract_looptijd_van,
|
||
1
|
||
))
|
||
))
|
||
perc_gebruik_duur,
|
||
ROUND( (c2.cnt_contract_looptijd_tot
|
||
- GREATEST (c2.cnt_contract_looptijd_van,
|
||
LEAST (SYSDATE, c2.cnt_contract_looptijd_tot)))
|
||
/ 7)
|
||
gebruik_weken_tegaan,
|
||
cnt.cnt_getrappeldatum (c2.cnt_contract_key)
|
||
cnt_gebruik_rappeldatum,
|
||
cnt.cnt_getopzegdatum (c2.cnt_contract_key) cnt_gebruik_opzegdatum,
|
||
(SELECT lcl.x ('cnt_termijn_omschrijving',
|
||
cnt_termijn_key,
|
||
cnt_termijn_omschrijving)
|
||
FROM cnt_termijn
|
||
WHERE cnt_termijn_key = c2.cnt_contract_opzegtermijn)
|
||
cnt_gebruik_opzegtermijn,
|
||
(SELECT lcl.x ('cnt_termijn_omschrijving',
|
||
cnt_termijn_key,
|
||
cnt_termijn_omschrijving)
|
||
FROM cnt_termijn
|
||
WHERE cnt_termijn_key = c2.cnt_contract_rappeltermijn)
|
||
cnt_gebruik_rappeltermijn,
|
||
c2.cnt_contract_status cnt_gebruik_status,
|
||
DECODE (
|
||
cnt.cnt_contract_status (
|
||
c2.cnt_contract_looptijd_van,
|
||
cnt.cnt_getrappeldatum (c2.cnt_contract_key),
|
||
cnt.cnt_getopzegdatum (c2.cnt_contract_key),
|
||
c2.cnt_contract_looptijd_tot
|
||
),
|
||
0,
|
||
lcl.l ('lcl_cnt_future'),
|
||
1,
|
||
lcl.l ('lcl_cnt_topical'),
|
||
2,
|
||
lcl.l ('lcl_cnt_warn'),
|
||
3,
|
||
lcl.l ('lcl_cnt_cancel'),
|
||
4,
|
||
lcl.l ('lcl_cnt_past')
|
||
)
|
||
gebruik_fase_actief,
|
||
DECODE (
|
||
c2.cnt_contract_status,
|
||
0,
|
||
DECODE (fac.getsetting ('cnt_contract_approval'),
|
||
1, lcl.l ('lcl_cnt_active_approval'),
|
||
lcl.l ('lcl_cnt_active')),
|
||
1,
|
||
lcl.l ('lcl_cnt_inactive'),
|
||
2,
|
||
lcl.l ('lcl_cnt_new'),
|
||
3,
|
||
lcl.l ('lcl_cnt_forapproval')
|
||
)
|
||
cnt_gebruik_status_txt,
|
||
COALESCE (c2.ins_discipline_key, -1) gebruik_disc_key,
|
||
c2.prs_afdeling_key_eig gebruik_eigenaar_key,
|
||
(SELECT prs_afdeling_naam
|
||
FROM prs_v_afdeling
|
||
WHERE prs_afdeling_key = c2.prs_afdeling_key_eig)
|
||
gebruik_eigenaar_afdeling_naam,
|
||
p1.prs_perslid_naam_full prs_eigenaar_naam_full,
|
||
p1.prs_perslid_naam_friendly prs_eigenaar_naam_friendly,
|
||
p2.prs_perslid_nr prs_berijder_prsnr,
|
||
p2.prs_perslid_naam_full prs_berijder_naam_full,
|
||
p2.prs_perslid_naam_friendly prs_berijder_naam_friendly,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
sd.ins_srtdeel_omschrijving,
|
||
(SELECT 'Ja'
|
||
FROM cnt_contract
|
||
WHERE TO_CHAR (SYSDATE, 'YYYY') BETWEEN TO_CHAR (
|
||
cnt_contract_looptijd_van,
|
||
'YYYY')
|
||
AND TO_CHAR (
|
||
cnt_contract_looptijd_tot,
|
||
'YYYY')
|
||
AND cnt_contract_key = c2.cnt_contract_key)
|
||
gov_huidig_jaar,
|
||
(SELECT 'Ja'
|
||
FROM cnt_contract
|
||
WHERE TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'YYYY') BETWEEN TO_CHAR (
|
||
cnt_contract_looptijd_van,
|
||
'YYYY')
|
||
AND TO_CHAR (
|
||
cnt_contract_looptijd_tot,
|
||
'YYYY')
|
||
AND cnt_contract_key = c2.cnt_contract_key)
|
||
gov_vorig_jaar
|
||
FROM cnt_v_aanwezigcontract c1,
|
||
prs_v_perslid_fullnames_all p1,
|
||
prs_bedrijf b,
|
||
cnt_contract_object co1,
|
||
cnt_v_aanwezigcontract c2,
|
||
(SELECT pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_friendly,
|
||
pf.prs_perslid_naam_full,
|
||
p.prs_perslid_nr
|
||
FROM prs_v_perslid_fullnames_all pf, prs_perslid p
|
||
WHERE pf.prs_perslid_key = p.prs_perslid_key) p2,
|
||
cnt_contract_object co2,
|
||
ins_deel d,
|
||
ins_srtdeel sd
|
||
WHERE b.prs_bedrijf_key = c1.cnt_prs_bedrijf_key
|
||
AND c1.ins_discipline_key = 21
|
||
AND co1.cnt_contract_key = c1.cnt_contract_key
|
||
AND co1.cnt_ins_deel_key = co2.cnt_ins_deel_key
|
||
AND co2.cnt_contract_key = c2.cnt_contract_key
|
||
AND c2.ins_discipline_key = 22
|
||
AND COALESCE (c2.cnt_contract_versie, '0') =
|
||
(SELECT COALESCE (MAX (cnt_contract_versie), '0')
|
||
FROM cnt_contract c3
|
||
WHERE c3.cnt_contract_nummer_intern =
|
||
c2.cnt_contract_nummer_intern)
|
||
AND c1.prs_perslid_key_eig = p1.prs_perslid_key(+)
|
||
AND c2.cnt_prs_perslid_key = p2.prs_perslid_key(+)
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND d.ins_deel_key = co1.cnt_ins_deel_key
|
||
AND COALESCE (c1.cnt_contract_versie, '0') =
|
||
(SELECT COALESCE (MAX (cnt_contract_versie), '0')
|
||
FROM cnt_v_aanwezigcontract c4
|
||
WHERE c4.cnt_contract_nummer_intern =
|
||
c1.cnt_contract_nummer_intern)
|
||
and c2.cnt_contract_looptijd_tot > c1.cnt_contract_looptijd_van
|
||
and c2.cnt_contract_looptijd_van < c1.cnt_contract_looptijd_tot;
|
||
|
||
|
||
-- TEMP view t.b.v. Basis UDR rapport...
|
||
CREATE OR REPLACE VIEW vebe_rap_wagenpark_tmp
|
||
(
|
||
extra_key,
|
||
cnt_lease_key,
|
||
prs_bedrijf_key,
|
||
cnt_gebruik_key,
|
||
prs_berijder_key,
|
||
ins_deel_key,
|
||
prs_lease_perslid_key_eig,
|
||
cnt_lease_nummer_intern,
|
||
cnt_lease_versie,
|
||
cnt_lease_omschr,
|
||
cnt_lease_looptijd_van,
|
||
cnt_lease_looptijd_tot,
|
||
cnt_lease_looptijd_mnd,
|
||
perc_lease_duur,
|
||
lease_weken_tegaan,
|
||
cnt_lease_rappeldatum,
|
||
cnt_lease_opzegdatum,
|
||
cnt_lease_opzegtermijn,
|
||
cnt_lease_rappeltermijn,
|
||
cnt_lease_status,
|
||
lease_fase_actief,
|
||
cnt_lease_status_txt,
|
||
cnt_lease_kosten,
|
||
cnt_lease_termijnkosten,
|
||
lease_disc_key,
|
||
lease_eigenaar_key,
|
||
lease_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_gebr_perslid_key_eig,
|
||
cnt_gebruik_nummer_intern,
|
||
cnt_gebruik_versie,
|
||
cnt_gebruik_omschr,
|
||
cnt_gebruik_looptijd_van,
|
||
cnt_gebruik_looptijd_tot,
|
||
perc_gebruik_duur,
|
||
gebruik_weken_tegaan,
|
||
cnt_gebruik_rappeldatum,
|
||
cnt_gebruik_opzegdatum,
|
||
cnt_gebruik_opzegtermijn,
|
||
cnt_gebruik_rappeltermijn,
|
||
cnt_gebruik_status,
|
||
gebruik_fase_actief,
|
||
cnt_gebruik_status_txt,
|
||
gebruik_disc_key,
|
||
gebruik_eigenaar_key,
|
||
gebruik_eigenaar_afdeling_naam,
|
||
prs_eigenaar_naam_full,
|
||
prs_eigenaar_naam_friendly,
|
||
prs_berijder_prsnr,
|
||
prs_berijder_naam_full,
|
||
prs_berijder_naam_friendly,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
gov_huidig_jaar,
|
||
gov_vorig_jaar,
|
||
ins_deel_belettering,
|
||
ins_deel_brandstof,
|
||
ins_deel_leasecategorie,
|
||
ins_deel_perc_bijtelling,
|
||
ins_deel_merk,
|
||
ins_deel_type,
|
||
ins_deel_fiscale_waarde,
|
||
ins_deel_kleur,
|
||
cnt_lease_jaarkilometrage,
|
||
cnt_lease_rayon,
|
||
cnt_gebruik_verklaring,
|
||
prs_berijder_indirect,
|
||
mut_datum_fiscale_waardehuidig,
|
||
mut_datum_gebr_ovkhuidig,
|
||
mut_datum_verklaringhuidig,
|
||
mut_datum_in_directhuidig,
|
||
mut_datum_fiscale_waardevorig,
|
||
mut_datum_gebr_ovkvorig,
|
||
mut_datum_verklaringvorig,
|
||
mut_datum_in_directvorig
|
||
)
|
||
AS
|
||
SELECT extra_key,
|
||
cnt_lease_key,
|
||
prs_bedrijf_key,
|
||
cnt_gebruik_key,
|
||
prs_berijder_key,
|
||
ins_deel_key,
|
||
prs_lease_perslid_key_eig,
|
||
cnt_lease_nummer_intern,
|
||
cnt_lease_versie,
|
||
cnt_lease_omschr,
|
||
cnt_lease_looptijd_van,
|
||
cnt_lease_looptijd_tot,
|
||
cnt_lease_looptijd_mnd,
|
||
perc_lease_duur,
|
||
lease_weken_tegaan,
|
||
cnt_lease_rappeldatum,
|
||
cnt_lease_opzegdatum,
|
||
cnt_lease_opzegtermijn,
|
||
cnt_lease_rappeltermijn,
|
||
cnt_lease_status,
|
||
lease_fase_actief,
|
||
cnt_lease_status_txt,
|
||
cnt_lease_kosten,
|
||
cnt_lease_termijnkosten,
|
||
lease_disc_key,
|
||
lease_eigenaar_key,
|
||
lease_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_gebr_perslid_key_eig,
|
||
cnt_gebruik_nummer_intern,
|
||
cnt_gebruik_versie,
|
||
cnt_gebruik_omschr,
|
||
cnt_gebruik_looptijd_van,
|
||
cnt_gebruik_looptijd_tot,
|
||
perc_gebruik_duur,
|
||
gebruik_weken_tegaan,
|
||
cnt_gebruik_rappeldatum,
|
||
cnt_gebruik_opzegdatum,
|
||
cnt_gebruik_opzegtermijn,
|
||
cnt_gebruik_rappeltermijn,
|
||
cnt_gebruik_status,
|
||
gebruik_fase_actief,
|
||
cnt_gebruik_status_txt,
|
||
gebruik_disc_key,
|
||
gebruik_eigenaar_key,
|
||
gebruik_eigenaar_afdeling_naam,
|
||
prs_eigenaar_naam_full,
|
||
prs_eigenaar_naam_friendly,
|
||
prs_berijder_prsnr,
|
||
prs_berijder_naam_full,
|
||
prs_berijder_naam_friendly,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
COALESCE (gov_huidig_jaar, 'Nee') gov_huidig_jaar,
|
||
COALESCE (gov_vorig_jaar, 'Nee') gov_vorig_jaar,
|
||
(SELECT ud.fac_usrdata_code
|
||
FROM fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (ins_kenmerkdeel_waarde)
|
||
FROM ins_kenmerkdeel kd
|
||
WHERE kd.ins_deel_key = lg.ins_deel_key
|
||
AND kd.ins_kenmerk_key = 1
|
||
AND kd.ins_kenmerkdeel_verwijder IS NULL)
|
||
AND ud.fac_usrtab_key = 1)
|
||
belettering,
|
||
(SELECT ud.fac_usrdata_code
|
||
FROM fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (ins_kenmerkdeel_waarde)
|
||
FROM ins_kenmerkdeel kd
|
||
WHERE kd.ins_deel_key = lg.ins_deel_key
|
||
AND kd.ins_kenmerk_key = 3
|
||
AND kd.ins_kenmerkdeel_verwijder IS NULL)
|
||
AND ud.fac_usrtab_key = 24)
|
||
brandstof,
|
||
(SELECT ud.fac_usrdata_code
|
||
FROM fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (ins_kenmerkdeel_waarde)
|
||
FROM ins_kenmerkdeel kd
|
||
WHERE kd.ins_deel_key = lg.ins_deel_key
|
||
AND kd.ins_kenmerk_key = 6
|
||
AND kd.ins_kenmerkdeel_verwijder IS NULL)
|
||
AND ud.fac_usrtab_key = 21)
|
||
leasecategorie,
|
||
(SELECT ud.fac_usrdata_code
|
||
FROM fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (ins_kenmerkdeel_waarde)
|
||
FROM ins_kenmerkdeel kd
|
||
WHERE kd.ins_deel_key = lg.ins_deel_key
|
||
AND kd.ins_kenmerk_key = 2
|
||
AND kd.ins_kenmerkdeel_verwijder IS NULL)
|
||
AND ud.fac_usrtab_key = 22)
|
||
perc_bijtelling,
|
||
(SELECT ud.fac_usrdata_code
|
||
FROM fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (ins_kenmerkdeel_waarde)
|
||
FROM ins_kenmerkdeel kd
|
||
WHERE kd.ins_deel_key = lg.ins_deel_key
|
||
AND kd.ins_kenmerk_key = 7
|
||
AND kd.ins_kenmerkdeel_verwijder IS NULL)
|
||
AND ud.fac_usrtab_key = 23)
|
||
merk,
|
||
(SELECT ud.fac_usrdata_code
|
||
FROM fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (ins_kenmerkdeel_waarde)
|
||
FROM ins_kenmerkdeel kd
|
||
WHERE kd.ins_deel_key = lg.ins_deel_key
|
||
AND kd.ins_kenmerk_key = 8
|
||
AND kd.ins_kenmerkdeel_verwijder IS NULL)
|
||
AND ud.fac_usrtab_key = 26)
|
||
ins_deel_type,
|
||
(SELECT fac.safe_to_number (ins_kenmerkdeel_waarde)
|
||
FROM ins_kenmerkdeel kd
|
||
WHERE kd.ins_deel_key = lg.ins_deel_key
|
||
AND kd.ins_kenmerk_key = 4
|
||
AND kd.ins_kenmerkdeel_verwijder IS NULL)
|
||
fiscale_waarde,
|
||
(SELECT ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel kd
|
||
WHERE kd.ins_deel_key = lg.ins_deel_key
|
||
AND kd.ins_kenmerk_key = 5
|
||
AND kd.ins_kenmerkdeel_verwijder IS NULL)
|
||
kleur,
|
||
(SELECT ud.fac_usrdata_code
|
||
FROM fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE kc.cnt_contract_key = lg.cnt_lease_key
|
||
AND kc.cnt_kenmerk_key = 21
|
||
AND kc.cnt_kenmerkcontract_verwijder IS NULL)
|
||
AND ud.fac_usrtab_key = 25)
|
||
jaarkilometrage,
|
||
(SELECT ud.fac_usrdata_code
|
||
FROM fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE kc.cnt_contract_key = lg.cnt_lease_key
|
||
AND kc.cnt_kenmerk_key = 141
|
||
AND kc.cnt_kenmerkcontract_verwijder IS NULL)
|
||
AND ud.fac_usrtab_key = 141)
|
||
Rayon,
|
||
(SELECT ud.fac_usrdata_code
|
||
FROM fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE kc.cnt_contract_key = lg.cnt_gebruik_key
|
||
AND kc.cnt_kenmerk_key = 41
|
||
AND kc.cnt_kenmerkcontract_verwijder IS NULL)
|
||
AND ud.fac_usrtab_key = 1)
|
||
verklaring,
|
||
(SELECT DECODE (fac.safe_to_number (COALESCE(MAX(prs_kenmerklink_waarde), '0')), 0, 'Direct', 'Indirect')
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = lg.prs_berijder_key
|
||
AND kl.prs_kenmerk_key = 1000
|
||
AND kl.prs_kenmerklink_verwijder IS NULL
|
||
AND kl.prs_kenmerklink_niveau = 'P')
|
||
in_direct,
|
||
(SELECT fac.safe_to_date (ins_kenmerkdeel_waarde, 'dd-mm-yyyy')
|
||
FROM ins_kenmerkdeel kd
|
||
WHERE kd.ins_deel_key = lg.ins_deel_key
|
||
AND kd.ins_kenmerk_key = 101
|
||
AND kd.ins_kenmerkdeel_verwijder IS NULL
|
||
and to_char(fac.safe_to_date (ins_kenmerkdeel_waarde, 'dd-mm-yyyy'), 'YYYY') = to_char(sysdate, 'YYYY'))
|
||
mut_datum_fiscale_waardehuidig,
|
||
(SELECT fac.safe_to_date (cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE kc.cnt_contract_key = lg.cnt_gebruik_key
|
||
AND kc.cnt_kenmerk_key = 81
|
||
AND kc.cnt_kenmerkcontract_verwijder IS NULL
|
||
and to_char(fac.safe_to_date (cnt_kenmerkcontract_waarde, 'dd-mm-yyyy'), 'YYYY') = to_char(sysdate, 'YYYY'))
|
||
mut_datum_gebr_ovkhuidig,
|
||
(SELECT fac.safe_to_date (cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE kc.cnt_contract_key = lg.cnt_gebruik_key
|
||
AND kc.cnt_kenmerk_key = 82
|
||
AND kc.cnt_kenmerkcontract_verwijder IS NULL
|
||
and to_char(fac.safe_to_date (cnt_kenmerkcontract_waarde, 'dd-mm-yyyy'), 'YYYY') = to_char(sysdate, 'YYYY'))
|
||
mut_datum_verklaringhuidig,
|
||
(SELECT fac.safe_to_date (prs_kenmerklink_waarde, 'dd-mm-yyyy')
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = lg.prs_berijder_key
|
||
AND kl.prs_kenmerk_key = 1020
|
||
AND kl.prs_kenmerklink_verwijder IS NULL
|
||
AND kl.prs_kenmerklink_niveau = 'P'
|
||
and to_char(fac.safe_to_date (prs_kenmerklink_waarde, 'dd-mm-yyyy'), 'YYYY') = to_char(sysdate, 'YYYY'))
|
||
mut_datum_in_directhuidig,
|
||
(SELECT fac.safe_to_date (ins_kenmerkdeel_waarde, 'dd-mm-yyyy')
|
||
FROM ins_kenmerkdeel kd
|
||
WHERE kd.ins_deel_key = lg.ins_deel_key
|
||
AND kd.ins_kenmerk_key = 101
|
||
AND kd.ins_kenmerkdeel_verwijder IS NULL
|
||
and to_char(fac.safe_to_date (ins_kenmerkdeel_waarde, 'dd-mm-yyyy'), 'YYYY') = to_char(ADD_MONTHS (SYSDATE, -12), 'YYYY'))
|
||
mut_datum_fiscale_waardevorig,
|
||
(SELECT fac.safe_to_date (cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE kc.cnt_contract_key = lg.cnt_gebruik_key
|
||
AND kc.cnt_kenmerk_key = 81
|
||
AND kc.cnt_kenmerkcontract_verwijder IS NULL
|
||
and to_char(fac.safe_to_date (cnt_kenmerkcontract_waarde, 'dd-mm-yyyy'), 'YYYY') = to_char(ADD_MONTHS (SYSDATE, -12), 'YYYY'))
|
||
mut_datum_gebr_ovkvorig,
|
||
(SELECT fac.safe_to_date (cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE kc.cnt_contract_key = lg.cnt_gebruik_key
|
||
AND kc.cnt_kenmerk_key = 82
|
||
AND kc.cnt_kenmerkcontract_verwijder IS NULL
|
||
and to_char(fac.safe_to_date (cnt_kenmerkcontract_waarde, 'dd-mm-yyyy'), 'YYYY') = to_char(ADD_MONTHS (SYSDATE, -12), 'YYYY'))
|
||
mut_datum_verklaringvorig,
|
||
(SELECT fac.safe_to_date (prs_kenmerklink_waarde, 'dd-mm-yyyy')
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = lg.prs_berijder_key
|
||
AND kl.prs_kenmerk_key = 1020
|
||
AND kl.prs_kenmerklink_verwijder IS NULL
|
||
AND kl.prs_kenmerklink_niveau = 'P'
|
||
and to_char(fac.safe_to_date (prs_kenmerklink_waarde, 'dd-mm-yyyy'), 'YYYY') = to_char(ADD_MONTHS (SYSDATE, -12), 'YYYY'))
|
||
mut_datum_in_directvorig
|
||
FROM vebe_cnt_lease_en_gebruiks_ovk lg;
|
||
|
||
|
||
|
||
|
||
----- Hulptabellen tbv de salarisverwerking.
|
||
|
||
|
||
----------------------------------- Periodetabellen ----------------------------------------
|
||
CREATE OR REPLACE VIEW vebe_v_startperiode_per_jaar
|
||
(jaar, periode, week, maandag, aantal_weken)
|
||
AS
|
||
SELECT ud.fac_usrdata_code, 1, 1, fac.safe_to_date(fac_usrdata_omschr, 'dd-mm-yyyy'), fac_usrdata_volgnr
|
||
FROM fac_usrdata ud
|
||
WHERE ud.fac_usrtab_key = 121
|
||
AND ud.fac_usrdata_verwijder IS NULL
|
||
AND ud.fac_usrdata_vervaldatum IS NULL OR ud.fac_usrdata_vervaldatum > SYSDATE;
|
||
|
||
|
||
--CREATE OR REPLACE VIEW vebe_v_periodeweektabel_2jaar
|
||
--(jaar, periode, week, maandag)
|
||
--AS
|
||
--SELECT
|
||
-- TO_CHAR (SYSDATE - 7*(LEVEL-1), 'IYYY') jaar,
|
||
-- LEAST(FLOOR((TO_CHAR (SYSDATE - 7*(LEVEL-1),'IW') - 1) /4) + 1, 13) periode,
|
||
-- TO_CHAR (SYSDATE - 7*(LEVEL-1), 'IW') week,
|
||
-- TRUNC (SYSDATE - 7*(LEVEL-1), 'IW') startdatum
|
||
--FROM DUAL
|
||
--CONNECT BY LEVEL <= 1*52+1
|
||
--UNION ALL
|
||
--SELECT
|
||
-- TO_CHAR (SYSDATE + 7*(LEVEL), 'IYYY') jaar,
|
||
-- LEAST(FLOOR((TO_CHAR (SYSDATE + 7*(LEVEL),'IW') - 1) /4) + 1, 13) periode,
|
||
-- TO_CHAR (SYSDATE + 7*(LEVEL), 'IW') week,
|
||
-- TRUNC (SYSDATE + 7*(LEVEL), 'IW') startdatum
|
||
--FROM DUAL
|
||
--CONNECT BY LEVEL <= 1*52+1;
|
||
|
||
CREATE OR REPLACE VIEW vebe_v_vebe_weektabel_2jaar
|
||
(jaar, periode, week, maandag)
|
||
AS
|
||
WITH
|
||
thisyear AS
|
||
(SELECT * FROM vebe_v_startperiode_per_jaar
|
||
WHERE jaar = to_char(SYSDATE, 'yyyy')),
|
||
nextyear AS
|
||
(SELECT * FROM vebe_v_startperiode_per_jaar
|
||
WHERE jaar = to_char(SYSDATE, 'yyyy') + 1)
|
||
SELECT
|
||
jaar,
|
||
LEAST(13, ROUND((LEVEL + 1) / 4)) periode,
|
||
LEVEL week,
|
||
TRUNC (maandag + 7*(LEVEL-1), 'IW') startdatum
|
||
FROM thisyear
|
||
CONNECT BY LEVEL <= 1* (COALESCE(aantal_weken, 52))
|
||
UNION ALL
|
||
SELECT
|
||
jaar,
|
||
LEAST(13, ROUND((LEVEL + 1) / 4)) periode,
|
||
LEVEL week,
|
||
TRUNC (maandag + 7*(LEVEL-1), 'IW') startdatum
|
||
FROM nextyear
|
||
CONNECT BY LEVEL <= 1* (COALESCE(aantal_weken, 52));
|
||
|
||
|
||
CREATE OR REPLACE VIEW vebe_v_vebe_periodetabel_2jaar
|
||
(jaar, periode, dag_start, dag_eind, aant_dagen_jaar)
|
||
AS
|
||
SELECT
|
||
jaar,
|
||
periode,
|
||
MIN(maandag),
|
||
MAX(maandag) + 6,
|
||
to_date('31-12-' || jaar, 'dd-mm-yyyy') - to_date('1-1-' || jaar, 'dd-mm-yyyy') + 1
|
||
FROM vebe_v_vebe_weektabel_2jaar
|
||
GROUP BY jaar, periode;
|
||
|
||
----------------------------------- Maandtabellen ----------------------------------------
|
||
|
||
|
||
CREATE OR REPLACE VIEW vebe_v_maandtabel_2jaar
|
||
(jaar, periode, dag_start, dag_eind, aant_dagen_jaar)
|
||
AS
|
||
WITH
|
||
thisyear AS
|
||
(SELECT * FROM vebe_v_startperiode_per_jaar
|
||
WHERE jaar = to_char(SYSDATE, 'yyyy')),
|
||
nextyear AS
|
||
(SELECT * FROM vebe_v_startperiode_per_jaar
|
||
WHERE jaar = to_char(SYSDATE, 'yyyy') + 1)
|
||
SELECT
|
||
jaar,
|
||
LEVEL periode,
|
||
to_date('01-' || LEVEL || '-' || jaar, 'dd-mm-yyyy') startdatum,
|
||
TRUNC(to_date('01-' || LEVEL || '-' || jaar, 'dd-mm-yyyy') + 32, 'MM') - 1 einddatum,
|
||
to_date('31-12-' || jaar, 'dd-mm-yyyy') - to_date('1-1-' || jaar, 'dd-mm-yyyy') + 1
|
||
FROM thisyear
|
||
CONNECT BY LEVEL <= 1* 12
|
||
UNION ALL
|
||
SELECT
|
||
jaar,
|
||
13 periode,
|
||
NULL startdatum,
|
||
NULL einddatum,
|
||
to_date('31-12-' || jaar, 'dd-mm-yyyy') - to_date('1-1-' || jaar, 'dd-mm-yyyy') + 1
|
||
FROM thisyear
|
||
UNION ALL
|
||
SELECT
|
||
jaar,
|
||
LEVEL periode,
|
||
to_date('01-' || LEVEL || '-' || jaar, 'dd-mm-yyyy') startdatum,
|
||
TRUNC(to_date('01-' || LEVEL || '-' || jaar, 'dd-mm-yyyy') + 32, 'MM') - 1 einddatum,
|
||
to_date('31-12-' || jaar, 'dd-mm-yyyy') - to_date('1-1-' || jaar, 'dd-mm-yyyy') + 1
|
||
FROM nextyear
|
||
CONNECT BY LEVEL <= 1* 12
|
||
UNION ALL
|
||
SELECT
|
||
jaar,
|
||
13 periode,
|
||
NULL startdatum,
|
||
NULL einddatum,
|
||
to_date('31-12-' || jaar, 'dd-mm-yyyy') - to_date('1-1-' || jaar, 'dd-mm-yyyy') + 1
|
||
FROM nextyear;
|
||
|
||
|
||
CREATE OR REPLACE VIEW vebe_v_total_periodtable_2jaar
|
||
(jaar, periode, dag_start, dag_eind, aant_dagen_jaar, berijder_indirect)
|
||
AS
|
||
SELECT jaar, periode, dag_start, dag_eind, aant_dagen_jaar, 'Direct'
|
||
FROM vebe_v_vebe_periodetabel_2jaar
|
||
UNION ALL
|
||
SELECT jaar, periode, dag_start, dag_eind, aant_dagen_jaar, 'Indirect'
|
||
FROM vebe_v_maandtabel_2jaar;
|
||
|
||
|
||
|
||
-- Basis UDR rapport...
|
||
CREATE OR REPLACE VIEW vebe_rap_wagenpark
|
||
(
|
||
extra_key,
|
||
cnt_lease_key,
|
||
prs_bedrijf_key,
|
||
cnt_gebruik_key,
|
||
prs_berijder_key,
|
||
ins_deel_key,
|
||
prs_lease_perslid_eig_key,
|
||
cnt_lease_nummer_intern,
|
||
cnt_lease_versie,
|
||
cnt_lease_omschr,
|
||
cnt_lease_looptijd_van,
|
||
cnt_lease_looptijd_tot,
|
||
cnt_lease_looptijd_mnd,
|
||
perc_lease_duur,
|
||
lease_weken_tegaan,
|
||
cnt_lease_rappeldatum,
|
||
cnt_lease_opzegdatum,
|
||
cnt_lease_opzegtermijn,
|
||
cnt_lease_rappeltermijn,
|
||
cnt_lease_status,
|
||
lease_fase_actief,
|
||
cnt_lease_status_txt,
|
||
cnt_lease_kosten,
|
||
cnt_lease_termijnkosten,
|
||
lease_disc_key,
|
||
lease_eigenaar_key,
|
||
fclt_3d_afdeling_key,
|
||
lease_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_gebr_perslid_key_eig,
|
||
cnt_gebruik_nummer_intern,
|
||
cnt_gebruik_versie,
|
||
cnt_gebruik_omschr,
|
||
cnt_gebruik_looptijd_van,
|
||
cnt_gebruik_looptijd_tot,
|
||
cnt_gebruik_huidig_jaar,
|
||
cnt_gebruik_vorig_jaar,
|
||
perc_gebruik_duur,
|
||
gebruik_weken_tegaan,
|
||
cnt_gebruik_rappeldatum,
|
||
cnt_gebruik_opzegdatum,
|
||
cnt_gebruik_opzegtermijn,
|
||
cnt_gebruik_rappeltermijn,
|
||
cnt_gebruik_status,
|
||
gebruik_fase_actief,
|
||
cnt_gebruik_status_txt,
|
||
gebruik_disc_key,
|
||
gebruik_eigenaar_key,
|
||
gebruik_eigenaar_afdeling_naam,
|
||
prs_eigenaar_naam_full,
|
||
prs_eigenaar_naam_friendly,
|
||
prs_berijder_prsnr,
|
||
prs_berijder_naam_full,
|
||
prs_berijder_naam_friendly,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_deel_belettering,
|
||
ins_deel_brandstof,
|
||
ins_deel_leasecategorie,
|
||
ins_deel_perc_bijtelling,
|
||
ins_deel_merk,
|
||
ins_deel_type,
|
||
ins_deel_fiscale_waarde,
|
||
ins_deel_kleur,
|
||
cnt_lease_jaarkilometrage,
|
||
cnt_lease_rayon,
|
||
cnt_gebruik_verklaring,
|
||
prs_berijder_indirect,
|
||
mut_datum_fiscale_waardehuidig,
|
||
mut_datum_gebr_ovkhuidig,
|
||
mut_datum_verklaringhuidig,
|
||
mut_datum_in_directhuidig,
|
||
mut_datum_totaalhuidig,
|
||
mut_datum_fiscale_waardevorig,
|
||
mut_datum_gebr_ovkvorig,
|
||
mut_datum_verklaringvorig,
|
||
mut_datum_in_directvorig,
|
||
mut_datum_totaalvorig
|
||
)
|
||
AS SELECT
|
||
extra_key,
|
||
cnt_lease_key,
|
||
prs_bedrijf_key,
|
||
cnt_gebruik_key,
|
||
prs_berijder_key,
|
||
ins_deel_key,
|
||
prs_lease_perslid_key_eig,
|
||
cnt_lease_nummer_intern,
|
||
cnt_lease_versie,
|
||
cnt_lease_omschr,
|
||
cnt_lease_looptijd_van,
|
||
cnt_lease_looptijd_tot,
|
||
cnt_lease_looptijd_mnd,
|
||
perc_lease_duur,
|
||
lease_weken_tegaan,
|
||
cnt_lease_rappeldatum,
|
||
cnt_lease_opzegdatum,
|
||
cnt_lease_opzegtermijn,
|
||
cnt_lease_rappeltermijn,
|
||
cnt_lease_status,
|
||
lease_fase_actief,
|
||
cnt_lease_status_txt,
|
||
cnt_lease_kosten,
|
||
cnt_lease_termijnkosten,
|
||
lease_disc_key,
|
||
lease_eigenaar_key,
|
||
lease_eigenaar_key fclt_3d_afdeling_key,
|
||
lease_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_gebr_perslid_key_eig,
|
||
cnt_gebruik_nummer_intern,
|
||
cnt_gebruik_versie,
|
||
cnt_gebruik_omschr,
|
||
cnt_gebruik_looptijd_van,
|
||
cnt_gebruik_looptijd_tot,
|
||
gov_huidig_jaar,
|
||
gov_vorig_jaar,
|
||
perc_gebruik_duur,
|
||
gebruik_weken_tegaan,
|
||
cnt_gebruik_rappeldatum,
|
||
cnt_gebruik_opzegdatum,
|
||
cnt_gebruik_opzegtermijn,
|
||
cnt_gebruik_rappeltermijn,
|
||
cnt_gebruik_status,
|
||
gebruik_fase_actief,
|
||
cnt_gebruik_status_txt,
|
||
gebruik_disc_key,
|
||
gebruik_eigenaar_key,
|
||
gebruik_eigenaar_afdeling_naam,
|
||
prs_eigenaar_naam_full,
|
||
prs_eigenaar_naam_friendly,
|
||
prs_berijder_prsnr,
|
||
prs_berijder_naam_full,
|
||
prs_berijder_naam_friendly,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_deel_belettering,
|
||
ins_deel_brandstof,
|
||
ins_deel_leasecategorie,
|
||
ins_deel_perc_bijtelling,
|
||
ins_deel_merk,
|
||
ins_deel_type,
|
||
ins_deel_fiscale_waarde,
|
||
ins_deel_kleur,
|
||
cnt_lease_jaarkilometrage,
|
||
cnt_lease_rayon,
|
||
cnt_gebruik_verklaring,
|
||
prs_berijder_indirect,
|
||
mut_datum_fiscale_waardehuidig,
|
||
mut_datum_gebr_ovkhuidig,
|
||
mut_datum_verklaringhuidig,
|
||
mut_datum_in_directhuidig,
|
||
decode (
|
||
greatest (
|
||
coalesce (mut_datum_fiscale_waardehuidig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy')),
|
||
coalesce (mut_datum_gebr_ovkhuidig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy')),
|
||
coalesce (mut_datum_verklaringhuidig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy')),
|
||
coalesce (mut_datum_in_directhuidig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy'))),
|
||
to_date ('01-01-2000', 'dd-mm-yyyy'),
|
||
null,
|
||
to_char (
|
||
greatest (
|
||
coalesce (mut_datum_fiscale_waardehuidig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy')),
|
||
coalesce (mut_datum_gebr_ovkhuidig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy')),
|
||
coalesce (mut_datum_verklaringhuidig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy')),
|
||
coalesce (mut_datum_in_directhuidig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy'))),
|
||
'yyyy-mm'))
|
||
mut_datum_totaalhuidig,
|
||
mut_datum_fiscale_waardevorig,
|
||
mut_datum_gebr_ovkvorig,
|
||
mut_datum_verklaringvorig,
|
||
mut_datum_in_directvorig,
|
||
decode (
|
||
greatest (
|
||
coalesce (mut_datum_fiscale_waardevorig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy')),
|
||
coalesce (mut_datum_gebr_ovkvorig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy')),
|
||
coalesce (mut_datum_verklaringvorig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy')),
|
||
coalesce (mut_datum_in_directvorig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy'))),
|
||
to_date ('01-01-2000', 'dd-mm-yyyy'),
|
||
null,
|
||
to_char (
|
||
greatest (
|
||
coalesce (mut_datum_fiscale_waardevorig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy')),
|
||
coalesce (mut_datum_gebr_ovkvorig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy')),
|
||
coalesce (mut_datum_verklaringvorig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy')),
|
||
coalesce (mut_datum_in_directvorig,
|
||
to_date ('01-01-2000', 'dd-mm-yyyy'))),
|
||
'yyyy-mm'))
|
||
mut_datum_totaalvorig
|
||
FROM vebe_rap_wagenpark_tmp tmp;
|
||
|
||
-- Basis UDR rapport (zonder financiele gegevens)
|
||
CREATE OR REPLACE VIEW vebe_rap_wagenpark_basis
|
||
(
|
||
extra_key,
|
||
cnt_lease_key,
|
||
prs_bedrijf_key,
|
||
cnt_gebruik_key,
|
||
prs_berijder_key,
|
||
ins_deel_key,
|
||
prs_lease_perslid_eig_key,
|
||
cnt_lease_nummer_intern,
|
||
cnt_lease_versie,
|
||
cnt_lease_omschr,
|
||
cnt_lease_looptijd_van,
|
||
cnt_lease_looptijd_tot,
|
||
cnt_lease_looptijd_mnd,
|
||
perc_lease_duur,
|
||
lease_weken_tegaan,
|
||
cnt_lease_rappeldatum,
|
||
cnt_lease_opzegdatum,
|
||
cnt_lease_opzegtermijn,
|
||
cnt_lease_rappeltermijn,
|
||
cnt_lease_status,
|
||
lease_fase_actief,
|
||
cnt_lease_status_txt,
|
||
cnt_lease_kosten,
|
||
cnt_lease_termijnkosten,
|
||
lease_disc_key,
|
||
lease_eigenaar_key,
|
||
lease_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_gebr_perslid_key_eig,
|
||
cnt_gebruik_nummer_intern,
|
||
cnt_gebruik_versie,
|
||
cnt_gebruik_omschr,
|
||
cnt_gebruik_looptijd_van,
|
||
cnt_gebruik_looptijd_tot,
|
||
perc_gebruik_duur,
|
||
gebruik_weken_tegaan,
|
||
cnt_gebruik_rappeldatum,
|
||
cnt_gebruik_opzegdatum,
|
||
cnt_gebruik_opzegtermijn,
|
||
cnt_gebruik_rappeltermijn,
|
||
cnt_gebruik_status,
|
||
gebruik_fase_actief,
|
||
cnt_gebruik_status_txt,
|
||
gebruik_disc_key,
|
||
gebruik_eigenaar_key,
|
||
gebruik_eigenaar_afdeling_naam,
|
||
prs_eigenaar_naam_full,
|
||
prs_eigenaar_naam_friendly,
|
||
prs_berijder_prsnr,
|
||
prs_berijder_naam_full,
|
||
prs_berijder_naam_friendly,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_deel_belettering,
|
||
ins_deel_brandstof,
|
||
ins_deel_leasecategorie,
|
||
ins_deel_perc_bijtelling,
|
||
ins_deel_merk,
|
||
ins_deel_type,
|
||
ins_deel_fiscale_waarde,
|
||
ins_deel_kleur,
|
||
cnt_lease_jaarkilometrage,
|
||
cnt_gebruik_verklaring,
|
||
prs_berijder_indirect
|
||
)
|
||
AS
|
||
SELECT extra_key,
|
||
cnt_lease_key,
|
||
prs_bedrijf_key,
|
||
cnt_gebruik_key,
|
||
prs_berijder_key,
|
||
ins_deel_key,
|
||
prs_lease_perslid_key_eig,
|
||
cnt_lease_nummer_intern,
|
||
cnt_lease_versie,
|
||
cnt_lease_omschr,
|
||
cnt_lease_looptijd_van,
|
||
cnt_lease_looptijd_tot,
|
||
cnt_lease_looptijd_mnd,
|
||
perc_lease_duur,
|
||
lease_weken_tegaan,
|
||
cnt_lease_rappeldatum,
|
||
cnt_lease_opzegdatum,
|
||
cnt_lease_opzegtermijn,
|
||
cnt_lease_rappeltermijn,
|
||
cnt_lease_status,
|
||
lease_fase_actief,
|
||
cnt_lease_status_txt,
|
||
cnt_lease_kosten,
|
||
cnt_lease_termijnkosten,
|
||
lease_disc_key,
|
||
lease_eigenaar_key,
|
||
lease_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_gebr_perslid_key_eig,
|
||
cnt_gebruik_nummer_intern,
|
||
cnt_gebruik_versie,
|
||
cnt_gebruik_omschr,
|
||
cnt_gebruik_looptijd_van,
|
||
cnt_gebruik_looptijd_tot,
|
||
perc_gebruik_duur,
|
||
gebruik_weken_tegaan,
|
||
cnt_gebruik_rappeldatum,
|
||
cnt_gebruik_opzegdatum,
|
||
cnt_gebruik_opzegtermijn,
|
||
cnt_gebruik_rappeltermijn,
|
||
cnt_gebruik_status,
|
||
gebruik_fase_actief,
|
||
cnt_gebruik_status_txt,
|
||
gebruik_disc_key,
|
||
gebruik_eigenaar_key,
|
||
gebruik_eigenaar_afdeling_naam,
|
||
prs_eigenaar_naam_full,
|
||
prs_eigenaar_naam_friendly,
|
||
prs_berijder_prsnr,
|
||
prs_berijder_naam_full,
|
||
prs_berijder_naam_friendly,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_deel_belettering,
|
||
ins_deel_brandstof,
|
||
ins_deel_leasecategorie,
|
||
ins_deel_perc_bijtelling,
|
||
ins_deel_merk,
|
||
ins_deel_type,
|
||
ins_deel_fiscale_waarde,
|
||
ins_deel_kleur,
|
||
cnt_lease_jaarkilometrage,
|
||
cnt_gebruik_verklaring,
|
||
prs_berijder_indirect
|
||
FROM vebe_rap_wagenpark_tmp;
|
||
|
||
---------- Gebruiksovereenkomst TIJDELIJKE Tankpassen
|
||
|
||
CREATE OR REPLACE VIEW vebe_cnt_tankpas_gebruiks_ovk
|
||
(
|
||
cnt_gebruik_key,
|
||
prs_berijder_key,
|
||
ins_deel_key,
|
||
prs_gebr_perslid_key_beh,
|
||
prs_gebr_perslid_key_eig,
|
||
cnt_gebruik_nummer_intern,
|
||
cnt_gebruik_versie,
|
||
cnt_gebruik_omschr,
|
||
cnt_gebruik_looptijd_van,
|
||
cnt_gebruik_looptijd_tot,
|
||
perc_gebruik_duur,
|
||
gebruik_weken_tegaan,
|
||
cnt_gebruik_rappeldatum,
|
||
cnt_gebruik_opzegdatum,
|
||
cnt_gebruik_opzegtermijn,
|
||
cnt_gebruik_rappeltermijn,
|
||
cnt_gebruik_status,
|
||
gebruik_fase_actief,
|
||
cnt_gebruik_status_txt,
|
||
gebruik_disc_key,
|
||
gebruik_eigenaar_key,
|
||
gebruik_eigenaar_afdeling_naam,
|
||
prs_berijder_prsnr,
|
||
prs_berijder_naam_full,
|
||
prs_berijder_naam_friendly,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking
|
||
)
|
||
AS
|
||
SELECT
|
||
c2.cnt_contract_key cnt_gebruik_key,
|
||
p2.prs_perslid_key prs_berijder_key,
|
||
d.ins_deel_key,
|
||
c2.prs_perslid_key_beh prs_gebr_perslid_key_beh,
|
||
c2.prs_perslid_key_eig prs_gebr_perslid_key_eig,
|
||
c2.cnt_contract_nummer_intern cnt_gebruik_nummer_intern,
|
||
c2.cnt_contract_versie cnt_gebruik_versie,
|
||
c2.cnt_contract_omschrijving cnt_gebruik_omschr,
|
||
c2.cnt_contract_looptijd_van cnt_gebruik_looptijd_van,
|
||
c2.cnt_contract_looptijd_tot cnt_gebruik_looptijd_tot,
|
||
ROUND(100
|
||
* LEAST (
|
||
1,
|
||
(SYSDATE - LEAST (c2.cnt_contract_looptijd_van, SYSDATE))
|
||
/ (GREATEST (
|
||
c2.cnt_contract_looptijd_tot
|
||
- c2.cnt_contract_looptijd_van,
|
||
1
|
||
))
|
||
))
|
||
perc_gebruik_duur,
|
||
ROUND( (c2.cnt_contract_looptijd_tot
|
||
- GREATEST (c2.cnt_contract_looptijd_van,
|
||
LEAST (SYSDATE, c2.cnt_contract_looptijd_tot)))
|
||
/ 7)
|
||
gebruik_weken_tegaan,
|
||
cnt.cnt_getrappeldatum (c2.cnt_contract_key)
|
||
cnt_gebruik_rappeldatum,
|
||
cnt.cnt_getopzegdatum (c2.cnt_contract_key) cnt_gebruik_opzegdatum,
|
||
(SELECT lcl.x ('cnt_termijn_omschrijving',
|
||
cnt_termijn_key,
|
||
cnt_termijn_omschrijving)
|
||
FROM cnt_termijn
|
||
WHERE cnt_termijn_key = c2.cnt_contract_opzegtermijn)
|
||
cnt_gebruik_opzegtermijn,
|
||
(SELECT lcl.x ('cnt_termijn_omschrijving',
|
||
cnt_termijn_key,
|
||
cnt_termijn_omschrijving)
|
||
FROM cnt_termijn
|
||
WHERE cnt_termijn_key = c2.cnt_contract_rappeltermijn)
|
||
cnt_gebruik_rappeltermijn,
|
||
c2.cnt_contract_status cnt_gebruik_status,
|
||
DECODE (
|
||
cnt.cnt_contract_status (
|
||
c2.cnt_contract_looptijd_van,
|
||
cnt.cnt_getrappeldatum (c2.cnt_contract_key),
|
||
cnt.cnt_getopzegdatum (c2.cnt_contract_key),
|
||
c2.cnt_contract_looptijd_tot
|
||
),
|
||
0,
|
||
lcl.l ('lcl_cnt_future'),
|
||
1,
|
||
lcl.l ('lcl_cnt_topical'),
|
||
2,
|
||
lcl.l ('lcl_cnt_warn'),
|
||
3,
|
||
lcl.l ('lcl_cnt_cancel'),
|
||
4,
|
||
lcl.l ('lcl_cnt_past')
|
||
)
|
||
gebruik_fase_actief,
|
||
DECODE (
|
||
c2.cnt_contract_status,
|
||
0,
|
||
DECODE (fac.getsetting ('cnt_contract_approval'),
|
||
1, lcl.l ('lcl_cnt_active_approval'),
|
||
lcl.l ('lcl_cnt_active')),
|
||
1,
|
||
lcl.l ('lcl_cnt_inactive'),
|
||
2,
|
||
lcl.l ('lcl_cnt_new'),
|
||
3,
|
||
lcl.l ('lcl_cnt_forapproval')
|
||
)
|
||
cnt_gebruik_status_txt,
|
||
COALESCE (c2.ins_discipline_key, -1) gebruik_disc_key,
|
||
c2.prs_afdeling_key_eig gebruik_eigenaar_key,
|
||
(SELECT prs_afdeling_naam
|
||
FROM prs_v_afdeling
|
||
WHERE prs_afdeling_key = c2.prs_afdeling_key_eig)
|
||
gebruik_eigenaar_afdeling_naam,
|
||
p2.prs_perslid_nr prs_berijder_prsnr,
|
||
p2.prs_perslid_naam_full prs_berijder_naam_full,
|
||
p2.prs_perslid_naam_friendly prs_berijder_naam_friendly,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking
|
||
FROM cnt_v_aanwezigcontract c2,
|
||
(SELECT pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_friendly,
|
||
pf.prs_perslid_naam_full,
|
||
p.prs_perslid_nr
|
||
FROM prs_v_perslid_fullnames_all pf, prs_perslid p
|
||
WHERE pf.prs_perslid_key = p.prs_perslid_key) p2,
|
||
cnt_contract_object co2,
|
||
ins_deel d
|
||
WHERE c2.ins_discipline_key = 22
|
||
AND d.ins_srtdeel_key = 4
|
||
AND co2.cnt_contract_key = c2.cnt_contract_key
|
||
AND COALESCE (c2.cnt_contract_versie, '0') =
|
||
(SELECT COALESCE (MAX (cnt_contract_versie), '0')
|
||
FROM cnt_contract c3
|
||
WHERE c3.cnt_contract_nummer_intern =
|
||
c2.cnt_contract_nummer_intern)
|
||
AND c2.cnt_prs_perslid_key = p2.prs_perslid_key(+)
|
||
AND d.ins_deel_key = co2.cnt_ins_deel_key;
|
||
|
||
-- rapportage tankpassen
|
||
CREATE OR REPLACE VIEW vebe_v_rap_tankpassen
|
||
(
|
||
ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
object_eignaar,
|
||
afdeling_object_eig,
|
||
pincode,
|
||
pasnummer,
|
||
ins_deel_vervaldatum,
|
||
cnt_contract_key,
|
||
cnt_contract_nummer,
|
||
cnt_contract_versie,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_opmerking,
|
||
cnt_contract_nummer_intern,
|
||
cnt_prs_perslid_key,
|
||
cnt_contractant,
|
||
cnt_eigenaar,
|
||
prs_afdeling_omschrijving,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
fase,
|
||
cnt_status_txt,
|
||
ovk_aanwezig
|
||
)
|
||
AS
|
||
SELECT ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
pf3.prs_perslid_naam_full object_eigenaar,
|
||
a.prs_afdeling_omschrijving afdeling_object_eig,
|
||
(SELECT ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel
|
||
WHERE ins_kenmerk_key = 122 AND ins_deel_key = d.ins_deel_key)
|
||
pincode,
|
||
(SELECT ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel
|
||
WHERE ins_kenmerk_key = 121 AND ins_deel_key = d.ins_deel_key)
|
||
pasnummer,
|
||
ins_deel_vervaldatum,
|
||
cnt_contract_key,
|
||
cnt_contract_nummer,
|
||
cnt_contract_versie,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_opmerking,
|
||
cnt_contract_nummer_intern,
|
||
cnt_prs_perslid_key,
|
||
cnt_contractant,
|
||
cnt_eigenaar,
|
||
cco.prs_afdeling_omschrijving,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
fase,
|
||
cnt_status_txt,
|
||
DECODE (COALESCE (cnt_contract_key, 0), 0, 'Nee', 'Ja')
|
||
ovk_aanwezig
|
||
FROM ins_deel d,
|
||
ins_srtdeel sd,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames pf3,
|
||
prs_afdeling a,
|
||
(SELECT c.cnt_contract_key,
|
||
cnt_contract_nummer,
|
||
cnt_contract_versie,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_opmerking,
|
||
cnt_contract_nummer_intern,
|
||
cnt_prs_perslid_key,
|
||
pf2.prs_perslid_naam_full cnt_contractant,
|
||
prs_perslid_key_eig,
|
||
pf.prs_perslid_naam_full cnt_eigenaar,
|
||
prs_afdeling_omschrijving,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
cnt_ins_deel_key,
|
||
DECODE (
|
||
cnt.cnt_contract_status (
|
||
c.cnt_contract_looptijd_van,
|
||
cnt.cnt_getrappeldatum (c.cnt_contract_key),
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
c.cnt_contract_looptijd_tot),
|
||
0,
|
||
lcl.l ('lcl_cnt_future'),
|
||
1,
|
||
lcl.l ('lcl_cnt_topical'),
|
||
2,
|
||
lcl.l ('lcl_cnt_warn'),
|
||
3,
|
||
lcl.l ('lcl_cnt_cancel'),
|
||
4,
|
||
lcl.l ('lcl_cnt_past'))
|
||
fase,
|
||
DECODE (
|
||
c.cnt_contract_status,
|
||
0,
|
||
DECODE (fac.getsetting ('cnt_contract_approval'),
|
||
1, lcl.l ('lcl_cnt_active_approval'),
|
||
lcl.l ('lcl_cnt_active')),
|
||
1,
|
||
lcl.l ('lcl_cnt_inactive'),
|
||
2,
|
||
lcl.l ('lcl_cnt_new'),
|
||
3,
|
||
lcl.l ('lcl_cnt_forapproval'))
|
||
cnt_status_txt
|
||
FROM cnt_contract c,
|
||
cnt_contract_object co,
|
||
prs_v_perslid_fullnames pf,
|
||
prs_v_perslid_fullnames pf2,
|
||
prs_afdeling a
|
||
WHERE cnt_contract_verwijder IS NULL
|
||
AND c.ins_discipline_key = 22
|
||
AND cnt_contract_verwijder IS NULL
|
||
AND c.cnt_contract_key = co.cnt_contract_key
|
||
AND prs_perslid_key_eig = pf.prs_perslid_key
|
||
AND a.prs_afdeling_key = prs_afdeling_key_eig
|
||
AND c.cnt_prs_perslid_key = pf2.prs_perslid_key(+)
|
||
AND COALESCE (c.cnt_contract_versie, '0') =
|
||
(SELECT COALESCE (MAX (cnt_contract_versie), '0')
|
||
FROM cnt_v_aanwezigcontract c2
|
||
WHERE c2.cnt_contract_nummer_intern =
|
||
c.cnt_contract_nummer_intern)) cco
|
||
WHERE ins_deel_verwijder IS NULL
|
||
AND sd.ins_srtdeel_verwijder IS NULL
|
||
AND ins_alg_ruimte_type = 'P'
|
||
AND ins_alg_ruimte_key = p.prs_perslid_key
|
||
AND pf3.prs_perslid_key = p.prs_perslid_key
|
||
AND a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = 3
|
||
AND cco.cnt_ins_deel_key(+) = d.ins_deel_key;
|
||
|
||
-- LEASECONTRACT NOTIFICATIES naar contractbeheerder, contracteigenaren, (nog) niet naar berijders.
|
||
-- Elke dag de bij aflopende leaseonctracten notificaties de deur 'uitgooien', die NIET met de standaard noti-jobs gaan (omdat de export nog iets extra's doet, insert of zo).
|
||
|
||
-- 1. LEASEcontracten (soortcontract met disckey 21) die in rappel staat, en waarvan nog niet eerder een noti naar contracteigenaar is uitgegaan
|
||
-- 2. Afgemelde GUNNINGSOpdracht (type opdracht met mld_typeopdr_key = 5) een noti met 2 links naar de melder (= AP/aanspreekpunt) van de bijbehorende melding zodat deze 2 acties kan uitvoeren:
|
||
-- a) LINK 1: naar opdracht zodat de bijlage bij de opdracht kan downloaden/openen, printen en laten ondertekenen
|
||
-- b) LINK 2: Nieuwe melding 'Stuur getekende leaseovk' zodat de getekende leaseovk kan worden geupload.
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE vebe_export_noti_wagenpark (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
IS
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errorhint2 VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_tot NUMBER (10);
|
||
v_count_error NUMBER (10);
|
||
v_count NUMBER (10);
|
||
v_tracking VARCHAR2 (1000);
|
||
|
||
v_fac_usrrap_key NUMBER(10);
|
||
|
||
-- Leasecontracten (met disckey 21) die in rappel staat, en waarvan nog niet eerder een noti naar contracteigenaar is uitgegaan
|
||
-- Als het kenmerk Vaker notificeren (key 121) aan staat dan wordt er vaker dan 1x genotificeerd.
|
||
CURSOR c_noti_leasecontract_1st_time
|
||
IS
|
||
SELECT c.prs_lease_perslid_key_eig,
|
||
c.prs_eigenaar_naam_friendly,
|
||
'Rapp<EFBFBD>l: Leaseovereenkomst ' || c.cnt_lease_nummer_intern
|
||
|| DECODE (c.cnt_lease_versie,
|
||
NULL, '',
|
||
'.' || c.cnt_lease_versie)
|
||
|| ' ('
|
||
|| c.cnt_lease_omschr
|
||
|| ' '
|
||
|| c.prs_bedrijf_naam
|
||
|| ')'
|
||
|| ' loopt af op '
|
||
|| TO_CHAR (c.cnt_lease_looptijd_tot, 'DD-MM-YYYY')
|
||
|| '.' mail_subject,
|
||
c.cnt_lease_key,
|
||
c.cnt_lease_nummer_intern,
|
||
c.cnt_lease_versie
|
||
FROM vebe_cnt_lease_en_gebruiks_ovk c
|
||
WHERE cnt_lease_status = 0
|
||
AND (SYSDATE BETWEEN c.cnt_lease_rappeldatum
|
||
AND c.cnt_lease_opzegdatum)
|
||
AND c.cnt_lease_looptijd_tot >= to_date('01-10-2016','dd-mm-yyyy')
|
||
AND NOT EXISTS
|
||
(SELECT 'x'
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE c.cnt_lease_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST02'
|
||
AND t.fac_tracking_refkey NOT IN
|
||
(SELECT kc.cnt_contract_key
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE kc.cnt_kenmerk_key = 121
|
||
AND kc.cnt_kenmerkcontract_waarde = 1
|
||
AND TRUNC (t.fac_tracking_datum) <
|
||
TRUNC (SYSDATE)));
|
||
|
||
|
||
CURSOR c_noti_krabbel_leaseovk
|
||
IS
|
||
SELECT m.prs_perslid_key prs_perslid_key_aanspreekpunt, p1.prs_perslid_naam_friendly prs_perslid_naam_aanspreekpunt, 'Verzoek ondertekenen van leaseovereenkomst voor ' || p2.prs_perslid_naam_friendly mail_subject, o.mld_opdr_key
|
||
FROM mld_opdr o, fac_tracking t, fac_srtnotificatie sn, mld_melding m, prs_v_perslid_fullnames_all p1, prs_v_perslid_fullnames_all p2
|
||
WHERE o.mld_typeopdr_key = 5
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND p1.prs_perslid_key = m.prs_perslid_key
|
||
AND p2.prs_perslid_key = m.prs_perslid_key_voor
|
||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND o.mld_statusopdr_key = 6
|
||
AND sn.fac_srtnotificatie_key = (select fac_srtnotificatie_key from fac_srtnotificatie where fac_srtnotificatie_code = 'ORDAFM')
|
||
AND NOT EXISTS
|
||
(SELECT 'x'
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST03');
|
||
|
||
|
||
CURSOR c_noti_cnt_tankpas
|
||
IS
|
||
SELECT c.prs_gebr_perslid_key_beh,
|
||
NULL,
|
||
'Rapp<EFBFBD>l: Tijdelijke tankpas van gebruiksovereenkomst ' || c.cnt_gebruik_nummer_intern
|
||
|| DECODE (c.cnt_gebruik_versie,
|
||
NULL, '',
|
||
'.' || c.cnt_gebruik_versie)
|
||
|| ' ('
|
||
|| c.cnt_gebruik_omschr
|
||
|| ')'
|
||
|| ' loopt af op '
|
||
|| TO_CHAR (c.cnt_gebruik_looptijd_tot, 'DD-MM-YYYY')
|
||
|| '.' mail_subject,
|
||
c.cnt_gebruik_key,
|
||
c.cnt_gebruik_nummer_intern,
|
||
c.cnt_gebruik_versie
|
||
FROM vebe_cnt_tankpas_gebruiks_ovk c
|
||
WHERE cnt_gebruik_status = 0
|
||
AND (SYSDATE BETWEEN c.cnt_gebruik_rappeldatum
|
||
AND c.cnt_gebruik_opzegdatum)
|
||
AND c.cnt_gebruik_looptijd_tot >= to_date('01-10-2016','dd-mm-yyyy');
|
||
|
||
|
||
|
||
BEGIN
|
||
|
||
-- Userrapportage key 81 waar de view vebe_cnt_lease_en_gebruiks_ovk met alle leasecontract info staat.
|
||
v_fac_usrrap_key := 81;
|
||
|
||
|
||
-- Alle leasecontracten in rappel die niet al eerder naar eigenaar zijn genotificeerd, dus alleen 1x, notificeren.
|
||
FOR rc IN c_noti_leasecontract_1st_time
|
||
LOOP
|
||
BEGIN
|
||
|
||
v_errorhint := rc.mail_subject;
|
||
v_errormsg := '';
|
||
-- Mailen van eenmalige notificatie naar de eigenaar/aanspreekpunt via CUST01 (rapport-node).
|
||
-- fac.putnotificationsrtprio ( NULL, rc.prs_lease_perslid_key_eig, 'CUST01', v_fac_usrrap_key, rc.mail_subject, NULL, NULL, NULL, rc.cnt_lease_key, 2, NULL);
|
||
fac.putnotificationsrtprio ( NULL, rc.prs_lease_perslid_key_eig, 'CUST01', v_fac_usrrap_key, rc.mail_subject, NULL, NULL, NULL, rc.cnt_lease_key, 2, NULL);
|
||
v_tracking := 'Rappel mail naar aanspreekpunt ' || rc.prs_eigenaar_naam_friendly || ': Leaseovereenkomst ' || rc.cnt_lease_nummer_intern || ' loopt af';
|
||
-- En we tracken via CUST02 (contract-node)
|
||
fac.trackaction ('CUST02', rc.cnt_lease_key, NULL, NULL, v_tracking);
|
||
COMMIT;
|
||
|
||
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_count_error := v_count_error + 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
FOR rc IN c_noti_krabbel_leaseovk
|
||
LOOP
|
||
BEGIN
|
||
|
||
v_errorhint := rc.mail_subject;
|
||
v_errormsg := '';
|
||
-- Mailen van eenmalige notificatie naar de aanspreekpunt via CUST03 (opdracht-node).
|
||
fac.putnotificationsrtprio ( NULL, rc.prs_perslid_key_aanspreekpunt, 'CUST03', rc.mld_opdr_key, rc.mail_subject, NULL, NULL, NULL, NULL, 2, NULL);
|
||
-- En we tracken via CUST03 (opdracht-node)
|
||
v_tracking := 'Mail naar aanspreekpunt ' || rc.prs_perslid_naam_aanspreekpunt || ': ' || rc.mail_subject;
|
||
fac.trackaction ('#CUST03', rc.mld_opdr_key, NULL, NULL, v_tracking);
|
||
|
||
COMMIT;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_count_error := v_count_error + 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rc IN c_noti_cnt_tankpas
|
||
LOOP
|
||
BEGIN
|
||
|
||
v_errorhint := rc.mail_subject;
|
||
v_errormsg := '';
|
||
-- Mailen van een notificatie naar de beheerder van de gebruiksovereenkomst van de tijdelijke tankpas.
|
||
-- fac.putnotificationsrtprio (NULL, rc.prs_gebr_perslid_key_beh, '', rc.cnt_gebruik_key, rc.mail_subject, NULL, NULL, NULL, NULL, 2, NULL);
|
||
|
||
-- fac.putnotificationprio (pfrom, pto, pmessage, pmode, poptemail, poptmobile, 2);
|
||
fac.putnotificationprio (NULL, rc.prs_gebr_perslid_key_beh, rc.mail_subject, 2, NULL, NULL, 2);
|
||
COMMIT;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_count_error := v_count_error + 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (vebe_noti_wagenpark error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
COMMIT;
|
||
|
||
END vebe_export_noti_wagenpark;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE VIEW vebe_v_export_noti_wagenpark (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT 'notificatie;key contract;contractnr;key aanspreekpunt;aanspreekpunt;mailsubject;contractomschrijving;leasemaatschappij;einddatum', 0
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT REPLACE(REPLACE('CUST01'
|
||
|| ';'
|
||
|| c.cnt_lease_key
|
||
|| ';'
|
||
|| cnt_lease_nummer_intern
|
||
|| ';'
|
||
|| c.prs_lease_perslid_key_eig
|
||
|| ';'
|
||
|| c.prs_eigenaar_naam_friendly
|
||
|| ';'
|
||
|| 'Rapp<EFBFBD>l: Leaseovereenkomst ' || c.cnt_lease_nummer_intern || ' loopt af'
|
||
|| DECODE (c.cnt_lease_versie, NULL, '', '.' || c.cnt_lease_versie)
|
||
|| ';'
|
||
|| c.cnt_lease_omschr
|
||
|| ';'
|
||
|| c.prs_bedrijf_naam
|
||
|| ';'
|
||
|| TO_CHAR (c.cnt_lease_looptijd_tot, 'DD-MM-YYYY')
|
||
,CHR (13), ''), CHR (10), '<ret>'), cnt_lease_key
|
||
FROM ( SELECT MAX (cnt_gebruik_looptijd_tot),
|
||
cnt_lease_key,
|
||
cnt_lease_nummer_intern,
|
||
prs_lease_perslid_key_eig,
|
||
cnt_lease_omschr,
|
||
prs_eigenaar_naam_friendly,
|
||
cnt_lease_versie,
|
||
prs_bedrijf_naam,
|
||
cnt_lease_looptijd_tot,
|
||
cnt_lease_opzegdatum,
|
||
cnt_lease_rappeldatum,
|
||
cnt_lease_status
|
||
FROM vebe_cnt_lease_en_gebruiks_ovk
|
||
GROUP BY cnt_lease_key,
|
||
cnt_lease_nummer_intern,
|
||
prs_lease_perslid_key_eig,
|
||
cnt_lease_omschr,
|
||
prs_eigenaar_naam_friendly,
|
||
cnt_lease_versie,
|
||
prs_bedrijf_naam,
|
||
cnt_lease_looptijd_tot,
|
||
cnt_lease_opzegdatum,
|
||
cnt_lease_rappeldatum,
|
||
cnt_lease_status) c
|
||
WHERE cnt_lease_status = 0
|
||
AND (SYSDATE BETWEEN c.cnt_lease_rappeldatum
|
||
AND c.cnt_lease_opzegdatum)
|
||
AND c.cnt_lease_looptijd_tot >= to_date('01-10-2016','dd-mm-yyyy')
|
||
AND NOT EXISTS
|
||
(SELECT 'x'
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE c.cnt_lease_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST02'
|
||
AND t.fac_tracking_refkey NOT IN
|
||
(SELECT kc.cnt_contract_key
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE kc.cnt_kenmerk_key = 121
|
||
AND kc.cnt_kenmerkcontract_waarde = 1
|
||
AND TRUNC (t.fac_tracking_datum) <
|
||
TRUNC (SYSDATE)))
|
||
UNION ALL
|
||
SELECT 'notificatie; key opdracht;opdrachtnr;key aanspreekpunt;aanspreekpunt;mailsubject;opdrachtomschrijving;;', 10000
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT REPLACE(REPLACE( 'CUST03'
|
||
|| ';'
|
||
|| o.mld_opdr_key
|
||
|| ';'
|
||
|| m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
|
||
|| ';'
|
||
|| m.prs_perslid_key
|
||
|| ';'
|
||
|| p1.prs_perslid_naam_friendly
|
||
|| ';'
|
||
|| 'Verzoek ondertekenen van leaseovereenkomst voor ' || p2.prs_perslid_naam_friendly
|
||
|| ';'
|
||
|| ''
|
||
|| ';'
|
||
|| ''
|
||
,CHR (13), ''), CHR (10), '<ret>'), 10000 + m.mld_melding_key
|
||
FROM mld_opdr o, fac_tracking t, fac_srtnotificatie sn, mld_melding m, prs_v_perslid_fullnames_all p1, prs_v_perslid_fullnames_all p2
|
||
WHERE o.mld_typeopdr_key = 5
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND p1.prs_perslid_key = m.prs_perslid_key
|
||
AND p2.prs_perslid_key = m.prs_perslid_key_voor
|
||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND o.mld_statusopdr_key = 6
|
||
AND sn.fac_srtnotificatie_key = (select fac_srtnotificatie_key from fac_srtnotificatie where fac_srtnotificatie_code = 'ORDAFM')
|
||
AND NOT EXISTS
|
||
(SELECT 'x'
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST03')
|
||
UNION ALL
|
||
SELECT 'notificatie;key contract;contractnr;key wagenparkbeh;berijder;mailsubject;contractomschrijving;afdeling;einddatum', (select max(mld_melding_key) + 20000 from mld_melding)
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT REPLACE(REPLACE(''
|
||
|| ';'
|
||
|| c.cnt_gebruik_key
|
||
|| ';'
|
||
|| c.cnt_gebruik_nummer_intern
|
||
|| ';'
|
||
|| c.prs_gebr_perslid_key_beh
|
||
|| ';'
|
||
|| c.prs_berijder_naam_friendly
|
||
|| ';'
|
||
|| 'Rapp<EFBFBD>l: Tijdelijke tankpas ' || c.cnt_gebruik_nummer_intern || ' loopt af'
|
||
|| DECODE (c.cnt_gebruik_versie, NULL, '', '.' || c.cnt_gebruik_versie)
|
||
|| ';'
|
||
|| c.cnt_gebruik_omschr
|
||
|| ';'
|
||
|| c.gebruik_eigenaar_afdeling_naam
|
||
|| ';'
|
||
|| TO_CHAR (c.cnt_gebruik_looptijd_tot, 'DD-MM-YYYY')
|
||
,CHR (13), ''), CHR (10), '<ret>'), (select max(mld_melding_key) + 20000 from mld_melding) + cnt_gebruik_key
|
||
FROM vebe_cnt_tankpas_gebruiks_ovk c
|
||
WHERE cnt_gebruik_status = 0
|
||
AND (SYSDATE BETWEEN c.cnt_gebruik_rappeldatum
|
||
AND c.cnt_gebruik_opzegdatum)
|
||
AND c.cnt_gebruik_looptijd_tot >= to_date('01-10-2016','dd-mm-yyyy');
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE vebe_processemail
|
||
(pfrom IN VARCHAR2,
|
||
pto IN VARCHAR2,
|
||
psubject IN VARCHAR2,
|
||
pbody IN VARCHAR2,
|
||
psessionid IN VARCHAR2,
|
||
puserkey IN NUMBER DEFAULT NULL)
|
||
AS
|
||
sender prs_perslid.prs_perslid_key%TYPE;
|
||
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
|
||
v_mldkey mld_melding.mld_melding_key%TYPE;
|
||
defaultstdmelding fac_setting.fac_setting_default%TYPE;
|
||
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
|
||
errormsg fac_result.fac_result_waarde%TYPE;
|
||
v_mailadres_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
|
||
v_flexprop_mail VARCHAR2(1000);
|
||
v_from VARCHAR2 (1000);
|
||
|
||
subject_regexp fac_setting.fac_setting_default%TYPE;
|
||
v_behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
|
||
v_mldnum VARCHAR2 (4000);
|
||
v_srtdisc VARCHAR2 (4000);
|
||
v_flag_on_fenote NUMBER (10);
|
||
v_flag_on_bonote NUMBER (10);
|
||
v_mld_meldbron_key NUMBER (10);
|
||
|
||
v_prs_perslid_sysuser_key NUMBER (10);
|
||
v_mailadres_to_wagenpark VARCHAR2(100);
|
||
|
||
BEGIN
|
||
v_prs_perslid_sysuser_key := 81;
|
||
v_mailadres_to_wagenpark := 'XrTeMOZ@vebe.facilitor.nl';
|
||
|
||
-- We beschouwen dit als een nieuwe melding
|
||
IF (UPPER(pto) = UPPER(v_mailadres_to_wagenpark))
|
||
THEN
|
||
-- Mailmelding (onder vakgroep 'Mailmelding') met mld_stdmelding_key 161, deze staat in de setting defaultmelding.
|
||
defaultstdmelding := fac.getsetting ('defaultstdmelding');
|
||
v_mld_meldbron_key := 4;
|
||
END IF;
|
||
|
||
-- Selecteer de kostenplaats van prs_perslid_key = v_prs_perslid_sysuser_key (Dit is de system-user 'SYSTEM API Mail2Melding')
|
||
SELECT prs_perslid_key, d.prs_kostenplaats_key
|
||
INTO sender, kostenplaats
|
||
FROM prs_perslid p, prs_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
||
AND prs_perslid_key = v_prs_perslid_sysuser_key;
|
||
|
||
|
||
-- Bepaal kenmerk-key van kenmerksoort 'mailadres' (key 61) op vakgroeptype niveau van vakgroeptype-key 1 die niet verwijderd is
|
||
SELECT MAX(mld_kenmerk_key)
|
||
INTO v_mailadres_kenmerk_key
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 27
|
||
AND mld_kenmerk_verwijder IS NULL
|
||
AND mld_kenmerk_niveau = 'T'
|
||
AND mld_stdmelding_key = 1;
|
||
|
||
|
||
-- Check of de afzender pfrom een reply op een bestaande melding doet, in dat geval wordt dat in notities genoteerd.
|
||
|
||
-- Eerst uit het onderwerp het meldingnummer proberen te onderscheppen, uitgangspunt dat in het onderwerp 'MLD123' kan worden opgevist, waarbij het deel achter MLD minimaal uit 1 cijfer bestaat.
|
||
subject_regexp := '[[:alpha:]]*MLD[[:digit:]]{1,}';
|
||
v_mldnum :=
|
||
REGEXP_SUBSTR (psubject,
|
||
subject_regexp,
|
||
1,
|
||
1,
|
||
'i'); -- M123, of M12345, of M12, of M1
|
||
|
||
v_srtdisc :=
|
||
REGEXP_SUBSTR (v_mldnum,
|
||
'[[:alpha:]]*',
|
||
1,
|
||
1,
|
||
'i'); -- M
|
||
v_mldkey := fac.safe_to_number (SUBSTR (v_mldnum, LENGTH (v_srtdisc) + 1)); -- 123, of 12345, of 12, of 1
|
||
|
||
|
||
-- Uit onderwerp is de vermoedelijke juiste v_mldkey geparsed.
|
||
-- Final check: is de afzender van de mail dezelfde als die van v_mldkey, deze afzender (mailadres) staat in flexprop (zie verderop hieronder in gedeelte bij insert melding).
|
||
|
||
SELECT MAX(SUBSTR(TRIM(km.mld_kenmerkmelding_waarde),1,50))
|
||
INTO v_flexprop_mail
|
||
FROM mld_kenmerkmelding km
|
||
WHERE mld_melding_key = v_mldkey
|
||
AND mld_kenmerk_key = v_mailadres_kenmerk_key
|
||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||
|
||
|
||
v_from := SUBSTR(TRIM(pfrom),1,50);
|
||
|
||
IF v_flexprop_mail = v_from
|
||
THEN
|
||
-- Gotcha: van deze afzender is een eerdere melding geregistreerd, die we plakken de subject en body nu als notitie toe (als perslid system-user 'SYSTEM API Mail2Melding').
|
||
|
||
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
mld_melding_note_omschrijving,
|
||
prs_perslid_key,
|
||
mld_melding_note_flag)
|
||
VALUES (v_mldkey,
|
||
SUBSTR (
|
||
psubject || CHR (13) || CHR (10)
|
||
|| REPLACE (
|
||
SUBSTR (pbody,
|
||
1,
|
||
4000 - (LENGTH (psubject) + 2)),
|
||
CHR (13) || CHR (10) || CHR (13) || CHR (10),
|
||
CHR (13) || CHR (10)),
|
||
1,
|
||
4000), -- verwijder onnodige witregels
|
||
sender,
|
||
0); -- 0 is NIET zichtbaar FE (want is system-user, zinloos).
|
||
|
||
-- Default tracking is even goed genoeg
|
||
fac.trackaction ('MLDNOT',
|
||
v_mldkey,
|
||
sender,
|
||
NULL,
|
||
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Als notitie toegevoegd aan melding ' || v_mldkey);
|
||
|
||
-- We gaan GEEN Vlaggetjes zetten zoals mld_edit_note.asp dat doet, VEBE werkt hier niet mee.
|
||
--BEGIN
|
||
-- v_flag_on_fenote := fac.getsetting('mld_flag_on_fenote');
|
||
-- v_flag_on_bonote := fac.getsetting('mld_flag_on_bonote');
|
||
--
|
||
-- IF v_flag_on_bonote <> 0 AND v_flag_on_bonote IS NOT NULL
|
||
-- THEN
|
||
-- UPDATE mld_melding
|
||
-- SET mld_melding_flag = v_flag_on_bonote
|
||
-- WHERE mld_melding_key = v_mldkey
|
||
-- AND ( (mld_melding_flag = v_flag_on_fenote)
|
||
-- OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL));
|
||
--
|
||
-- END IF;
|
||
--EXCEPTION
|
||
-- WHEN OTHERS
|
||
-- THEN
|
||
-- DBMS_OUTPUT.put_line( 'Niet gelukt om flag '
|
||
-- || v_flag_on_bonote
|
||
-- || ' te zetten.');
|
||
--END;
|
||
|
||
-- Bepalen van de behandelaar van deze melding
|
||
--BEGIN
|
||
-- SELECT mld_melding_behandelaar_key
|
||
-- INTO v_behandelaar_key
|
||
-- FROM mld_melding m, prs_perslid p
|
||
-- WHERE mld_melding_key = v_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
|
||
-- v_behandelaar_key := NULL;
|
||
--END;
|
||
--
|
||
--IF v_behandelaar_key IS NOT NULL
|
||
--THEN
|
||
-- -- Bestaande melding en behandelaar is bekend.
|
||
--
|
||
-- -- Notificatie naar behandelaar
|
||
-- fac.putnotificationsrtprio (
|
||
-- NULL,
|
||
-- v_behandelaar_key,
|
||
-- 'MLDNOB',
|
||
-- v_mldkey,
|
||
-- 'Melding ' || v_mldkey || ' is door de klant aangepast.',
|
||
-- 2,
|
||
-- NULL,
|
||
-- NULL,
|
||
-- NULL,
|
||
-- 2,
|
||
-- NULL);
|
||
--END IF;
|
||
ELSE
|
||
|
||
-- suggested extensions:
|
||
-- check for MLDUSE-write autorisations
|
||
-- parse the subject to find an appropriate stdmelding, if uniquely possible
|
||
-- append (as a note?) to an existing melding if #key is found in the subject
|
||
BEGIN
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_melding_datum,
|
||
mld_alg_locatie_key,
|
||
mld_melding_omschrijving,
|
||
mld_melding_status,
|
||
mld_stdmelding_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
prs_kostenplaats_key,
|
||
mld_melding_spoed)
|
||
VALUES ('MLD',
|
||
v_mld_meldbron_key, -- email (4)
|
||
SYSDATE,
|
||
NULL, -- Geen locatie bekend
|
||
SUBSTR (
|
||
psubject || CHR (13)
|
||
|| REPLACE (
|
||
SUBSTR (pbody,
|
||
1,
|
||
4000 - (LENGTH (psubject) + 2)),
|
||
CHR (13) || CHR (10) || CHR (13) || CHR (10),
|
||
CHR (13) || CHR (10)),
|
||
1,
|
||
4000), -- verwijder onnodige witregels
|
||
NULL,
|
||
defaultstdmelding,
|
||
sender,
|
||
sender,
|
||
kostenplaats,
|
||
3)
|
||
RETURNING mld_melding_key
|
||
INTO v_mldkey;
|
||
|
||
-- Vullen van kenmerkwaarde "e-mail adres"
|
||
IF v_from IS NOT NULL AND v_mailadres_kenmerk_key IS NOT NULL
|
||
THEN
|
||
-- v_from is gevuld, en kenmerk mailadres bestaat, zet v_from met maximaal 50 tekens als kenmerk bij de zojuist aangemaakte melding.
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_mldkey, v_mailadres_kenmerk_key, v_from);
|
||
END IF;
|
||
|
||
mld.setmeldingstatus (v_mldkey, 2, sender);
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_mldkey);
|
||
|
||
END;
|
||
END IF;
|
||
|
||
|
||
-- find the lowest volgnummer of the flexfield of type folder.
|
||
SELECT MIN (mld_kenmerk_key)
|
||
INTO kkey
|
||
FROM mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND std.mld_stdmelding_key = defaultstdmelding
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND ( (k.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND k.mld_kenmerk_niveau = 'S')
|
||
OR (k.mld_stdmelding_key = d.ins_discipline_key
|
||
AND k.mld_kenmerk_niveau = 'D')
|
||
OR (k.mld_stdmelding_key = d.ins_srtdiscipline_key
|
||
AND k.mld_kenmerk_niveau = 'T'))
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT mld_kenmerk_volgnummer
|
||
FROM mld_kenmerk k1,
|
||
mld_srtkenmerk sk1,
|
||
mld_stdmelding std1,
|
||
ins_tab_discipline d1
|
||
WHERE sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk1.mld_srtkenmerk_key =
|
||
k1.mld_srtkenmerk_key
|
||
AND std1.mld_stdmelding_key =
|
||
defaultstdmelding
|
||
AND std1.mld_ins_discipline_key =
|
||
d1.ins_discipline_key
|
||
AND ( (k1.mld_stdmelding_key =
|
||
std1.mld_stdmelding_key
|
||
AND k1.mld_kenmerk_niveau = 'S')
|
||
OR (k1.mld_stdmelding_key =
|
||
d1.ins_discipline_key
|
||
AND k1.mld_kenmerk_niveau = 'D')
|
||
OR (k1.mld_stdmelding_key =
|
||
d1.ins_srtdiscipline_key
|
||
AND k1.mld_kenmerk_niveau = 'T'))
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_kenmerk_volgnummer <
|
||
k.mld_kenmerk_volgnummer);
|
||
|
||
IF kkey IS NOT NULL
|
||
THEN
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'kenmerkpath',
|
||
'MLD\M' || to_char( TRUNC(v_mldkey/1000), 'FM0000') || '___\M' || v_mldkey || '\' || kkey || '\');
|
||
END IF;
|
||
|
||
|
||
IF errormsg IS NOT NULL
|
||
THEN
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid, 'errormsg', errormsg);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (
|
||
'PROCESSEMAIL',
|
||
'W',
|
||
'Mail kon niet verwerkt worden afzender: '
|
||
|| pfrom
|
||
|| '['
|
||
|| errormsg
|
||
|| ']',
|
||
'OTHERS (error '
|
||
|| SQLCODE
|
||
|| '/'
|
||
|| SUBSTR (SQLERRM, 1, 100)
|
||
|| ')');
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'errormsg',
|
||
'Database fout - Neem contact op met uw systeembeheerder');
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
|
||
|
||
SET DEFINE OFF
|
||
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
||
/
|
||
|
||
COMMIT;
|
||
SET ECHO OFF
|
||
SPOOL OFF
|
||
SET DEFINE ON
|
||
PROMPT Logfile of this upgrade is: &fcltlogfile |