VEBE#35939: Rapport met berekende bijtelling ((kolommen AL tm AX))

svn path=/Customer/trunk/; revision=29816
This commit is contained in:
Marcel Bourseau
2016-06-22 13:09:04 +00:00
parent a2d5833b96
commit 99dd2a6457

View File

@@ -722,6 +722,139 @@ AS
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
(
@@ -793,7 +926,10 @@ CREATE OR REPLACE VIEW vebe_rap_wagenpark
mut_datum_gebr_ovk,
mut_datum_verklaring,
mut_datum_in_direct,
mut_datum_totaal
mut_datum_totaal,
jaar_periode,
bedrag
)
AS SELECT
extra_key,
@@ -876,8 +1012,27 @@ AS SELECT
COALESCE(mut_datum_in_direct, to_date('01-01-2000','dd-mm-yyyy'))
), 'yyyy-mm'
)
) mut_datum_totaal
FROM vebe_rap_wagenpark_tmp;
) mut_datum_totaal,
x.jaar || '-' || LPAD (x.periode, 2, '0'),
ROUND(
(ins_deel_fiscale_waarde / 100) * fac.safe_to_number(ins_deel_perc_bijtelling) *
CASE
WHEN cnt_gebruik_verklaring = 'Ja' THEN 0
WHEN tmp.prs_berijder_indirect = 'Indirect' AND x.periode = 13 THEN 0
WHEN cnt_gebruik_looptijd_van > x.dag_eind THEN 0
WHEN cnt_gebruik_looptijd_tot < x.dag_start THEN 0
WHEN cnt_gebruik_looptijd_van BETWEEN x.dag_start AND x.dag_eind THEN (x.dag_eind + 1 - cnt_gebruik_looptijd_van) / aant_dagen_jaar
WHEN cnt_gebruik_looptijd_tot BETWEEN x.dag_start AND x.dag_eind THEN (cnt_gebruik_looptijd_tot + 1 - x.dag_start) / aant_dagen_jaar
ELSE (x.dag_eind + 1 - x.dag_start) / aant_dagen_jaar
END
, 2
)
FROM vebe_rap_wagenpark_tmp tmp, vebe_v_total_periodtable_2jaar x
WHERE COALESCE(tmp.prs_berijder_indirect, 'Direct') = x.berijder_indirect;
---------- Gebruiksovereenkomst TIJDELIJKE Tankpassen
CREATE OR REPLACE VIEW vebe_cnt_tankpas_gebruiks_ovk
(