Files
Customer/VEBE/vebe.sql
Sander Schepers 03e48fe471 VEBE#71032 Kolom belettering is niet zichtbaar in rapportage
svn path=/Customer/trunk/; revision=55012
2022-02-16 15:35:32 +00:00

2782 lines
108 KiB
MySQL
Raw Blame History

-- 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 = 81)
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 TO_CHAR (SYSDATE, 'd') = '4'
AND (SYSDATE BETWEEN c.cnt_gebruik_rappeldatum
AND c.cnt_gebruik_opzegdatum)
AND c.cnt_gebruik_looptijd_tot >= to_date('01-05-2017','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);
DELETE cnt_kenmerkcontract WHERE cnt_kenmerk_key = 121 AND cnt_contract_key = rc.cnt_lease_key;
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,
pemailkey IN NUMBER)
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.
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;
/
-- Selectie doorlooptijden leaseovereenkomst
CREATE OR REPLACE VIEW vebe_v_doorlooptijden
AS
SELECT mld_melding_key,
mld_melding_status,
naam_berijder,
naam_ap,
key_bedrijf1,
bedrijf1,
off_mld_opdr_key,
datum_einde_off_athlon,
key_bedrijf2,
bedrijf2,
off1_mld_opdr_key,
datum_start_off_pon,
datum_einde_off_pon,
gun_mld_opdr_key,
datum_start_gunning,
datum_einde_gunning,
mld_vervolgmelding_key,
datum_start_vervolgmelding,
uitv_mld_opdr_key,
datum_start_uitvoering,
datum_einde_uitvoering
FROM (SELECT m.mld_melding_key,
m.mld_melding_status,
berijder.prs_perslid_naam naam_berijder,
ap.prs_perslid_naam naam_ap,
lm.prs_bedrijf_key key_bedrijf1,
lm.prs_bedrijf_naam bedrijf1,
off.mld_opdr_key off_mld_opdr_key,
fac.gettrackingdate ('ORDAFM', off.mld_opdr_key)
datum_einde_off_athlon,
lm1.prs_bedrijf_key key_bedrijf2,
lm1.prs_bedrijf_naam bedrijf2,
off1.mld_opdr_key off1_mld_opdr_key,
fac.gettrackingdate ('ORDNEW', off1.mld_opdr_key)
datum_start_off_pon,
fac.gettrackingdate ('ORDAFM', off1.mld_opdr_key)
datum_einde_off_pon,
gun.mld_opdr_key gun_mld_opdr_key,
fac.gettrackingdate ('ORDNEW', gun.mld_opdr_key)
datum_start_gunning,
fac.gettrackingdate ('ORDAFM', gun.mld_opdr_key)
datum_einde_gunning,
m1.mld_melding_key mld_vervolgmelding_key,
fac.gettrackingdate ('MLDNEW', m1.mld_melding_key)
datum_start_vervolgmelding,
uitv.mld_opdr_key uitv_mld_opdr_key,
fac.gettrackingdate ('ORDNEW', uitv.mld_opdr_key)
datum_start_uitvoering,
fac.gettrackingdate ('ORDAFM', uitv.mld_opdr_key)
datum_einde_uitvoering,
(SELECT MAX (mld_melding_key)
FROM mld_melding m1a
WHERE m.mld_melding_key = m1a.mld_melding_start_key
AND m1a.mld_stdmelding_key = 82)
incl_start_key,
m1.mld_melding_key mld_vervolg_melding
FROM mld_melding m,
prs_perslid berijder,
prs_perslid ap,
mld_opdr off,
mld_opdr off1,
mld_opdr gun,
prs_bedrijf lm,
prs_bedrijf lm1,
mld_melding m1,
mld_opdr uitv
WHERE m.mld_stdmelding_key IN (1, 21)
AND m.prs_perslid_key_voor = berijder.prs_perslid_key
AND m.prs_perslid_key = ap.prs_perslid_key
AND off.mld_melding_key = m.mld_melding_key
AND off.mld_typeopdr_key = 41
AND lm.prs_bedrijf_key = off.mld_uitvoerende_keys
AND lm.prs_bedrijf_key = 23
AND off1.mld_melding_key = m.mld_melding_key
AND off1.mld_typeopdr_key = 41
AND lm1.prs_bedrijf_key = off1.mld_uitvoerende_keys
AND lm1.prs_bedrijf_key = 22
AND gun.mld_melding_key = m.mld_melding_key
AND gun.mld_typeopdr_key = 5
AND m.mld_melding_key = m1.mld_melding_start_key(+)
AND uitv.mld_melding_key = m.mld_melding_key
AND uitv.mld_typeopdr_key = 81
AND off1.mld_opdr_key =
(SELECT MAX (mld_opdr_key)
FROM mld_opdr off1a, prs_bedrijf lm1a
WHERE off1a.mld_melding_key = m.mld_melding_key
AND off1a.mld_typeopdr_key = 41
AND lm1a.prs_bedrijf_key =
off1a.mld_uitvoerende_keys
AND lm1a.prs_bedrijf_key = 22)
AND off.mld_opdr_key =
(SELECT MAX (mld_opdr_key)
FROM mld_opdr offat, prs_bedrijf lma
WHERE offat.mld_melding_key = m.mld_melding_key
AND offat.mld_typeopdr_key = 41
AND lma.prs_bedrijf_key =
offat.mld_uitvoerende_keys
AND lma.prs_bedrijf_key = 23)
AND gun.mld_opdr_key =
(SELECT MAX (mld_opdr_key)
FROM mld_opdr gun_a
WHERE gun_a.mld_melding_key = m.mld_melding_key
AND gun_a.mld_typeopdr_key = 5)
AND uitv.mld_opdr_key =
(SELECT MAX (mld_opdr_key)
FROM mld_opdr uitv_a
WHERE (uitv_a.mld_melding_key = m.mld_melding_key
OR uitv_a.mld_melding_key =
m1.mld_melding_key)
AND uitv_a.mld_typeopdr_key = 81))
WHERE mld_vervolg_melding = incl_start_key OR incl_start_key IS NULL;
-- Rapport doorlooptijden
CREATE OR REPLACE VIEW VEBE_V_RAP_DOORLOOPTIJDEN
AS
SELECT mld_melding_key,
naam_berijder,
naam_ap,
key_bedrijf1,
bedrijf1,
off_mld_opdr_key,
datum_einde_off_athlon,
key_bedrijf2,
bedrijf2,
off1_mld_opdr_key,
datum_start_off_pon,
datum_einde_off_pon,
gun_mld_opdr_key,
datum_start_gunning,
datum_einde_gunning,
mld_vervolgmelding_key,
datum_start_vervolgmelding,
uitv_mld_opdr_key,
datum_start_uitvoering,
ROUND (
datum_start_gunning
- GREATEST (datum_einde_off_athlon, datum_einde_off_pon),
0)
dagen_off_gun,
ROUND (datum_einde_gunning - datum_start_gunning, 0)
dagen_srtgun_endgun,
ROUND (datum_start_vervolgmelding - datum_einde_gunning)
dagen_endgun_verv,
ROUND (datum_start_uitvoering - datum_start_vervolgmelding, 0)
dagen_verv_uitv,
ROUND (datum_einde_off_pon - datum_start_off_pon, 0)
dagen_off_pon,
ROUND (
datum_start_uitvoering
- LEAST (datum_einde_off_athlon, datum_einde_off_pon),
0)
totaal_doorlooptijd
FROM vebe_v_doorlooptijden
WHERE mld_melding_status IN (1, 5, 6);
CREATE OR REPLACE VIEW vebe_v_rap_cnt
(
contract_key,
nummer,
omschrijving,
opmerking,
contractafdeling,
contractpartij,
contracteigenaar,
contractbeheerder,
begindatum,
einddatum,
opzegdatum,
rappeldatum,
opzegtermijn,
rappeltermijn,
beschrijving,
ins_deel_key
)
AS
SELECT contract_key,
nummer,
omschrijving,
opmerking,
contractafdeling,
contractpartij,
contracteigenaar,
contractbeheerder,
begindatum,
einddatum,
opzegdatum,
rappeldatum,
opzegtermijn,
rappeltermijn,
omschrijving || ' - '
|| COALESCE (
(SELECT pkm.prs_kenmerklink_waarde
FROM prs_kenmerklink pkm, cnt_contract cnt
WHERE pkm.prs_kenmerk_key = 1040 --Kenmerk-key voor afkorting van relatie
AND cnt.cnt_contract_key = contract_key
AND pkm.prs_link_key = cnt.cnt_prs_bedrijf_key),
contractpartij)
|| ' ('
|| contractafdeling
|| ' - '
|| TO_CHAR (einddatum, 'DD-MM-YYYY')
|| ')'
AS aflopend_contract,
ins_cnt.cnt_ins_deel_key
FROM cnt_v_udr_contract, cnt_v_aanwezigcontract_object ins_cnt
WHERE UPPER (contractsoort) = 'LEASECONTRACT'
AND contract_key = ins_cnt.cnt_contract_key
AND contract_key =
(SELECT MAX (co.cnt_contract_key)
FROM cnt_v_aanwezigcontract_object co, cnt_contract c
WHERE c.cnt_contract_key = co.cnt_contract_key
AND c.ins_discipline_key = 21 -- Leaseovereenkomst
AND co.cnt_ins_deel_key = ins_cnt.cnt_ins_deel_key);
CREATE OR REPLACE VIEW vebe_v_noti_cntrappel_wm
(
code,
sender,
receiver,
text,
key,
xkey
)
AS
SELECT 'CUST04',
'',
p.prs_perslid_key,
'Contract ' || c.cnt_contract_nummer_intern
|| DECODE (cnt_contract_versie,
NULL, '',
'.' || cnt_contract_versie)
|| ' ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' moet uiterlijk per '
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key),
'DD-MM-YYYY')
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key,
NULL
FROM cnt_v_aanwezigcontract c,
prs_bedrijf b,
prs_perslid p,
prs_afdeling a,
fac_groeprechten gr,
fac_gebruikersgroep gg,
fac_functie f
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND cnt_contract_verwijder IS NULL
AND cnt_contract_status = 0
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
AND gr.ins_discipline_key = 121 -- Werkmaatschappij (administratief)
AND p.prs_perslid_key = gg.prs_perslid_key
AND gr.fac_groep_key = gg.fac_groep_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND c.prs_afdeling_key_eig = p.prs_afdeling_key
AND gr.fac_functie_key = f.fac_functie_key
AND p.prs_perslid_email IS NOT NULL
AND f.fac_functie_code = 'WEB_MLDBOF'
AND c.cnt_contract_key NOT IN
(SELECT km.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km, mld_melding m
WHERE m.mld_melding_key = km.mld_melding_key
AND m.mld_stdmelding_key = 301 --Start workflow
AND km.mld_kenmerk_key = 421 -- Kenmerk aflopend contract
AND m.mld_melding_status IN (2, 4)) -- Nieuw / In behandeling
AND c.cnt_contract_key NOT IN (SELECT fac_tracking_refkey --CUST04
FROM fac_tracking
WHERE fac_srtnotificatie_key = 449);
CREATE OR REPLACE PROCEDURE vebe_export_clean_att (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
IS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (400);
v_errorhint VARCHAR2 (400);
-- De bijlagen uit de workflow 'Aanvraag leaseauto' kunnen worden opgeschoond.
-- Enkel bijlagen die zijn bijgevoegd in de stappen 'Overeenkomst&Matrix' en 'Bestellen auto' (KVI) moeten bewaard blijven.
CURSOR c_attachments
IS
SELECT b.fac_bijlagen_key,
(SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_tracking_refkey = start_m.mld_melding_key
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_code = 'MLDAFM')
FROM fac_bijlagen b,
mld_melding m,
mld_melding start_m,
mld_kenmerk km
WHERE b.fac_bijlagen_verwijder IS NULL
AND m.mld_melding_start_key = start_m.mld_melding_key
AND m.mld_melding_key = b.fac_bijlagen_refkey
AND km.mld_kenmerk_key = b.fac_bijlagen_kenmerk_key
AND km.mld_kenmerk_niveau NOT LIKE '%O%' --Geen opdrachtkenmerk
AND b.fac_bijlagen_module = 'MLD'
AND start_m.mld_melding_status IN (1, 5, 6, 99) --Workflow mag niet meer actief zijn.
AND start_m.mld_stdmelding_key = 301 --Start nieuwe leaseaanvraag (start workflow)
AND (SELECT MAX (t.fac_tracking_datum)
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_tracking_refkey = start_m.mld_melding_key
AND sn.fac_srtnotificatie_key =
t.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_code = 'MLDAFM') <
SYSDATE - 183 -- Workflow langer dan half jaar gestopt
ORDER BY b.fac_bijlagen_key DESC;
BEGIN
-- Verwijder de bijlagen die uit de workflows die langer dan een half jaar geleden zijn afgerond (behalve ovk/matrix/kvi).
FOR rec IN c_attachments
LOOP
BEGIN
flx.deleteflexbijlage(rec.fac_bijlagen_key);
END;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (vebe_export_clean_att error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
COMMIT;
END vebe_export_clean_att;
/
CREATE OR REPLACE VIEW vebe_v_rap_lease_aanvr
AS
SELECT m.melding_key AS melding_nr,
m.melding_start_key AS melding_startnr,
m.melder AS berijder,
m.afdeling_omschrijving,
m.invoerder,
m.soortmelding AS vakgroeptype,
m.productgroep AS vakgroep,
sm.mld_stdmelding_key,
m.subproductgroep AS std_melding,
m.behandelaar,
m.melding_status,
m.melding_datum,
m.melding_afgemeld,
m.doorlooptijd_werkdgn,
m.onderwerp,
(SELECT DISTINCT (c.nummer)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
cnt_v_udr_contract c
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerk_key = 421
AND c.nummer = kmm.mld_kenmerkmelding_waarde
AND mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m2.mld_melding_start_key)
AS contractnummer,
(SELECT DISTINCT (c.contractsoort)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
cnt_v_udr_contract c
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerk_key = 421
AND c.nummer = kmm.mld_kenmerkmelding_waarde
AND mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m2.mld_melding_start_key)
AS contractsoort,
(SELECT DISTINCT (c.omschrijving)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
cnt_v_udr_contract c
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerk_key = 421
AND c.nummer = kmm.mld_kenmerkmelding_waarde
AND mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m2.mld_melding_start_key)
AS contractomschrijving,
(SELECT DISTINCT (c.contractpartij)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
cnt_v_udr_contract c
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerk_key = 421
AND c.nummer = kmm.mld_kenmerkmelding_waarde
AND mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m2.mld_melding_start_key)
AS contractpartij,
(SELECT DISTINCT (c.contractafdeling)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
cnt_v_udr_contract c
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerk_key = 421
AND c.nummer = kmm.mld_kenmerkmelding_waarde
AND mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m2.mld_melding_start_key)
AS contractafdeling,
(SELECT DISTINCT (c.contractbeheerder)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
cnt_v_udr_contract c
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerk_key = 421
AND c.nummer = kmm.mld_kenmerkmelding_waarde
AND mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m2.mld_melding_start_key)
AS contractbeheerder,
(SELECT DISTINCT (c.begindatum)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
cnt_v_udr_contract c
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerk_key = 421
AND c.nummer = kmm.mld_kenmerkmelding_waarde
AND mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m2.mld_melding_start_key)
AS contract_begindatum,
(SELECT DISTINCT (c.einddatum)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
cnt_v_udr_contract c
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerk_key = 421
AND c.nummer = kmm.mld_kenmerkmelding_waarde
AND mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m2.mld_melding_start_key)
AS contract_einddatum,
(SELECT DISTINCT (c.opzegdatum)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
cnt_v_udr_contract c
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerk_key = 421
AND c.nummer = kmm.mld_kenmerkmelding_waarde
AND mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m2.mld_melding_start_key)
AS contract_opzegdatum,
(SELECT DISTINCT (c.rappeldatum)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
cnt_v_udr_contract c
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerk_key = 421
AND c.nummer = kmm.mld_kenmerkmelding_waarde
AND mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m2.mld_melding_start_key)
AS contract_rappeldatum,
(SELECT DISTINCT (c.fase_actief)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
cnt_v_udr_contract c
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerk_key = 421
AND c.nummer = kmm.mld_kenmerkmelding_waarde
AND mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m2.mld_melding_start_key)
AS contract_fase,
(SELECT DISTINCT (c.status)
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
cnt_v_udr_contract c
WHERE kmm.mld_kenmerk_key = km.mld_kenmerk_key
AND km.mld_kenmerk_key = 421
AND c.nummer = kmm.mld_kenmerkmelding_waarde
AND mld_kenmerkmelding_verwijder IS NULL
AND kmm.mld_melding_key = m2.mld_melding_start_key)
AS contract_status
FROM mld_v_udr_melding m,
mld_melding m2,
mld_stdmelding sm,
ins_tab_discipline disc
WHERE m2.mld_melding_key = m.melding_key
AND disc.ins_srtdiscipline_key = 21 -- Workflow leaseaanvraag
AND m2.mld_melding_start_key IS NOT NULL -- Het moet wel onderdeel zijn van een workflow en geen losse melding
AND m2.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = disc.ins_discipline_key;
CREATE OR REPLACE VIEW vebe_v_rap_wfleaseaanv
(
melding_key,
meldingnummer,
melding_start_key,
melder_key,
melder,
afdeling_omschrijving,
invoerder,
vakgroeptype,
vakgroep,
melding,
volgnr,
behandelaar,
startmelding_status,
melding_status,
melding_datum,
melding_einddatum_std,
melding_afgemeld,
sla_werkdgn,
doorlooptijd_werkdgn,
onderwerp,
omschrijving,
offerte_athlon_correct,
offerte_vwpfs_correct,
aflopend_contract_key,
aflopend_contract_oms
)
AS
SELECT m.melding_key,
m.meldingnummer,
m.melding_start_key,
m.melder_key,
m.melder,
m.afdeling_omschrijving,
m.invoerder,
m.soortmelding,
m.productgroep,
m.subproductgroep,
sm.mld_stdmelding_volgnr,
m.behandelaar,
(SELECT startm.melding_status
FROM mld_v_udr_melding startm
WHERE startm.melding_key = m.melding_start_key)
AS startmelding_status,
m.melding_status,
m.melding_datum,
m.melding_einddatum_std,
m.melding_afgemeld,
m.sla_werkdgn,
m.doorlooptijd_werkdgn,
m.onderwerp,
m.vomschrijving,
(SELECT ud.fac_usrdata_omschr
FROM mld_kenmerkmelding kmm, mld_kenmerk km, fac_usrdata ud
WHERE km.mld_kenmerk_key = kmm.mld_kenmerk_key
AND kmm.mld_kenmerkmelding_waarde = ud.fac_usrdata_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND km.mld_srtkenmerk_key = 462 --Kenmerksoort Offerte Athlon correct
AND kmm.mld_melding_key = m.melding_key)
AS offerte_athlon_correct,
(SELECT ud.fac_usrdata_omschr
FROM mld_kenmerkmelding kmm, mld_kenmerk km, fac_usrdata ud
WHERE km.mld_kenmerk_key = kmm.mld_kenmerk_key
AND kmm.mld_kenmerkmelding_waarde = ud.fac_usrdata_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND km.mld_srtkenmerk_key = 463 --Kenmerksoort Offerte VWPFS correct
AND kmm.mld_melding_key = m.melding_key)
AS offerte_vwpfs_correct,
(SELECT kmm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding kmm, mld_kenmerk km
WHERE km.mld_kenmerk_key = kmm.mld_kenmerk_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND km.mld_srtkenmerk_key = 281 --Kenmerksoort aflopend contract
AND kmm.mld_melding_key = m.melding_start_key)
AS aflopend_contract_key,
(SELECT c.omschrijving
FROM mld_kenmerkmelding kmm, mld_kenmerk km, vebe_v_rap_cnt c
WHERE km.mld_kenmerk_key = kmm.mld_kenmerk_key
AND fac.safe_to_number (kmm.mld_kenmerkmelding_waarde) =
c.contract_key
AND kmm.mld_kenmerkmelding_verwijder IS NULL
AND km.mld_srtkenmerk_key = 281 --Kenmerksoort aflopend contract
AND kmm.mld_melding_key = m.melding_start_key)
AS aflopend_contract_oms
FROM mld_v_udr_melding m,
ins_tab_discipline disc,
mld_melding mm,
mld_stdmelding sm
WHERE m.fclt_3d_discipline_key = disc.ins_discipline_key
AND mm.mld_melding_key = m.melding_key
AND sm.mld_stdmelding_key = mm.mld_stdmelding_key
AND disc.ins_srtdiscipline_key = 21 -- Vakgroeptype lease aanvraag
AND disc.ins_discipline_module = 'MLD'
ORDER BY m.melding_start_key, m.melding_key;
-- payload end ---
SET DEFINE OFF
BEGIN adm.systrackscriptId('$Id$', 0); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile