VEBE#35939: Rapport met berekende bijtelling ((kolommen AL tm AX))
svn path=/Customer/trunk/; revision=29816
This commit is contained in:
161
VEBE/vebe.sql
161
VEBE/vebe.sql
@@ -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
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user