MDUX#37363: Contractbeheer / huurcontracten - doorbelastingsrapport

svn path=/Customer/trunk/; revision=31369
This commit is contained in:
Marcel Bourseau
2016-11-04 14:12:55 +00:00
parent 6b31ac3c6f
commit c27a3edca9

View File

@@ -1759,6 +1759,485 @@ AS
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key));
CREATE OR REPLACE VIEW mdux_huurcontracten_tmp
(cnt_contract_key,
prs_bedrijf_key,
prs_perslid_key_eig,
cnt_contract_nummer_intern,
cnt_contract_versie,
cnt_contract_omschrijving,
cnt_contract_looptijd_van,
cnt_contract_looptijd_tot,
cnt_looptijd_mnd,
perc_looptijd,
aantal_weken_tegaan,
cnt_contract_rappeldatum,
cnt_contract_opzegdatum,
cnt_contract_opzegtermijn,
cnt_contract_rappeltermijn,
cnt_contract_status,
contract_fase_actief,
cnt_contract_status_txt,
cnt_contract_kosten,
cnt_contract_termijnkosten,
cnt_contract_termijnkosten_mnd,
cnt_contract_termijn_type,
cnt_contract_termijn_aantal,
cnt_contract_termijn_omschr,
contract_disc_key,
prs_afdeling_key_eig,
cnt_eigenaar_afdeling_naam,
prs_bedrijf_naam,
prs_perslid_naam_full,
prs_perslid_naam_friendly,
cnt_alg_plaats_key,
cnt_alg_plaats_code,
cnt_contract_plaats_gewicht)
AS
SELECT c1.cnt_contract_key,
b.prs_bedrijf_key,
c1.prs_perslid_key_eig,
c1.cnt_contract_nummer_intern,
c1.cnt_contract_versie,
c1.cnt_contract_omschrijving,
c1.cnt_contract_looptijd_van,
c1.cnt_contract_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_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_looptijd,
ROUND( (c1.cnt_contract_looptijd_tot
- GREATEST (c1.cnt_contract_looptijd_van,
LEAST (SYSDATE, c1.cnt_contract_looptijd_tot)))
/ 7) aantal_weken_tegaan,
cnt.cnt_getrappeldatum (c1.cnt_contract_key) cnt_contract_rappeldatum,
cnt.cnt_getopzegdatum (c1.cnt_contract_key) cnt_contract_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_contract_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_contract_rappeltermijn,
c1.cnt_contract_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')) contract_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_contract_status_txt,
c1.cnt_contract_kosten,
c1.cnt_contract_termijnkosten,
c1.cnt_contract_termijnkosten * DECODE(ct.cnt_termijn_type, 'M', 1 / ct.cnt_termijn_aantal, 'Y', 1 / (ct.cnt_termijn_aantal * 12), 'D', 365 / (ct.cnt_termijn_aantal * 12), 1) cnt_contract_termijnkosten_mnd,
ct.cnt_termijn_type,
ct.cnt_termijn_aantal,
ct.cnt_termijn_omschrijving,
COALESCE (c1.ins_discipline_key, -1) contract_disc_key,
c1.prs_afdeling_key_eig,
(SELECT prs_afdeling_naam
FROM prs_v_afdeling
WHERE prs_afdeling_key = c1.prs_afdeling_key_eig) cnt_eigenaar_afdeling_naam,
b.prs_bedrijf_naam,
p1.prs_perslid_naam_full,
p1.prs_perslid_naam_friendly,
cp1.cnt_alg_plaats_key,
cp1.cnt_alg_plaats_code,
cp1.cnt_contract_plaats_gewicht
FROM cnt_v_aanwezigcontract c1,
cnt_termijn ct,
prs_v_perslid_fullnames_all p1,
prs_bedrijf b,
cnt_contract_plaats cp1
WHERE b.prs_bedrijf_key = c1.cnt_prs_bedrijf_key
AND c1.ins_discipline_key = 301
AND c1.cnt_contract_termijntermijn = ct.cnt_termijn_key(+)
AND c1.cnt_contract_key = cp1.cnt_contract_key (+)
AND c1.prs_perslid_key_eig = p1.prs_perslid_key(+)
AND COALESCE (c1.cnt_contract_versie, '0') =
(SELECT COALESCE (MAX (cnt_contract_versie), '0')
FROM cnt_v_aanwezigcontract c2
WHERE c2.cnt_contract_nummer_intern =
c1.cnt_contract_nummer_intern);
CREATE OR REPLACE VIEW mdux_huurcontracten_gebouw
(cnt_contract_key,
prs_bedrijf_key,
alg_gebouw_key,
prs_perslid_key_eig,
cnt_contract_nummer_intern,
cnt_contract_versie,
cnt_contract_omschrijving,
cnt_contract_looptijd_van,
cnt_contract_looptijd_tot,
cnt_looptijd_mnd,
perc_looptijd,
aantal_weken_tegaan,
cnt_contract_rappeldatum,
cnt_contract_opzegdatum,
cnt_contract_opzegtermijn,
cnt_contract_rappeltermijn,
cnt_contract_status,
contract_fase_actief,
cnt_contract_status_txt,
cnt_contract_kosten,
cnt_contract_termijnkosten,
cnt_contract_termijnkosten_mnd,
cnt_contract_termijn_type,
cnt_contract_termijn_aantal,
cnt_contract_termijn_omschr,
contract_disc_key,
prs_afdeling_key_eig,
cnt_eigenaar_afdeling_naam,
prs_bedrijf_naam,
prs_perslid_naam_full,
prs_perslid_naam_friendly,
cnt_alg_plaats_key,
cnt_alg_plaats_code,
alg_gebouw_code,
alg_gebouw_naam,
alg_gebouw_omschrijving)
AS
SELECT cnt_contract_key,
prs_bedrijf_key,
alg_gebouw_key,
prs_perslid_key_eig,
cnt_contract_nummer_intern,
cnt_contract_versie,
cnt_contract_omschrijving,
cnt_contract_looptijd_van,
cnt_contract_looptijd_tot,
cnt_looptijd_mnd,
perc_looptijd,
aantal_weken_tegaan,
cnt_contract_rappeldatum,
cnt_contract_opzegdatum,
cnt_contract_opzegtermijn,
cnt_contract_rappeltermijn,
cnt_contract_status,
contract_fase_actief,
cnt_contract_status_txt,
cnt_contract_kosten,
cnt_contract_termijnkosten,
cnt_contract_termijnkosten_mnd,
cnt_contract_termijn_type,
cnt_contract_termijn_aantal,
cnt_contract_termijn_omschr,
contract_disc_key,
prs_afdeling_key_eig,
cnt_eigenaar_afdeling_naam,
prs_bedrijf_naam,
prs_perslid_naam_full,
prs_perslid_naam_friendly,
cnt_alg_plaats_key,
cnt_alg_plaats_code,
alg_gebouw_code,
alg_gebouw_naam,
alg_gebouw_omschrijving
FROM mdux_huurcontracten_tmp, alg_gebouw g
WHERE g.alg_gebouw_key(+) = cnt_alg_plaats_key
AND COALESCE(cnt_alg_plaats_code,'G') = 'G';
CREATE OR REPLACE VIEW mdux_huurcontracten_locatie
(cnt_contract_key,
prs_bedrijf_key,
alg_gebouw_key,
prs_perslid_key_eig,
cnt_contract_nummer_intern,
cnt_contract_versie,
cnt_contract_omschrijving,
cnt_contract_looptijd_van,
cnt_contract_looptijd_tot,
cnt_looptijd_mnd,
perc_looptijd,
aantal_weken_tegaan,
cnt_contract_rappeldatum,
cnt_contract_opzegdatum,
cnt_contract_opzegtermijn,
cnt_contract_rappeltermijn,
cnt_contract_status,
contract_fase_actief,
cnt_contract_status_txt,
cnt_contract_kosten,
cnt_contract_termijnkosten,
cnt_contract_termijnkosten_mnd,
cnt_contract_termijn_type,
cnt_contract_termijn_aantal,
cnt_contract_termijn_omschr,
contract_disc_key,
prs_afdeling_key_eig,
cnt_eigenaar_afdeling_naam,
prs_bedrijf_naam,
prs_perslid_naam_full,
prs_perslid_naam_friendly,
cnt_alg_plaats_key,
cnt_alg_plaats_code,
alg_gebouw_code,
alg_gebouw_naam,
alg_gebouw_omschrijving)
AS
SELECT cnt_contract_key,
prs_bedrijf_key,
alg_gebouw_key,
prs_perslid_key_eig,
cnt_contract_nummer_intern,
cnt_contract_versie,
cnt_contract_omschrijving,
cnt_contract_looptijd_van,
cnt_contract_looptijd_tot,
cnt_looptijd_mnd,
perc_looptijd,
aantal_weken_tegaan,
cnt_contract_rappeldatum,
cnt_contract_opzegdatum,
cnt_contract_opzegtermijn,
cnt_contract_rappeltermijn,
cnt_contract_status,
contract_fase_actief,
cnt_contract_status_txt,
cnt_contract_kosten,
cnt_contract_termijnkosten,
cnt_contract_termijnkosten_mnd,
cnt_contract_termijn_type,
cnt_contract_termijn_aantal,
cnt_contract_termijn_omschr,
contract_disc_key,
prs_afdeling_key_eig,
cnt_eigenaar_afdeling_naam,
prs_bedrijf_naam,
prs_perslid_naam_full,
prs_perslid_naam_friendly,
cnt_alg_plaats_key,
cnt_alg_plaats_code,
alg_gebouw_code,
alg_gebouw_naam,
alg_gebouw_omschrijving
FROM mdux_huurcontracten_tmp, alg_gebouw g, alg_locatie l
WHERE l.alg_locatie_key (+) = cnt_alg_plaats_key
AND COALESCE(cnt_alg_plaats_code,'L') = 'L'
AND g.alg_gebouw_key(+) = l.alg_locatie_key;
CREATE OR REPLACE VIEW mdux_huurcontracten_gebouwen
AS
SELECT * FROM mdux_huurcontracten_gebouw
UNION
SELECT * FROM mdux_huurcontracten_locatie;
CREATE OR REPLACE VIEW mdux_rap_huurcontracten
(cnt_contract_key,
prs_bedrijf_key,
alg_gebouw_key,
prs_perslid_key_eig,
cnt_contract_nummer_intern,
cnt_contract_versie,
cnt_contract_omschrijving,
cnt_contract_looptijd_van,
cnt_contract_looptijd_tot,
cnt_looptijd_mnd,
perc_looptijd,
aantal_weken_tegaan,
cnt_contract_rappeldatum,
cnt_contract_opzegdatum,
cnt_contract_opzegtermijn,
cnt_contract_rappeltermijn,
cnt_contract_status,
contract_fase_actief,
cnt_contract_status_txt,
cnt_contract_kosten,
cnt_contract_termijnkosten,
cnt_contract_termijnkosten_mnd,
cnt_contract_termijn_type,
cnt_contract_termijn_aantal,
cnt_contract_termijn_omschr,
contract_disc_key,
prs_afdeling_key_eig,
cnt_eigenaar_afdeling_naam,
prs_bedrijf_naam,
prs_perslid_naam_full,
prs_perslid_naam_friendly,
cnt_alg_plaats_key,
cnt_alg_plaats_code,
alg_gebouw_code,
alg_gebouw_naam,
alg_gebouw_omschrijving,
alg_verdieping_key,
alg_verdieping_omschrijving,
alg_verdieping_volgnr,
alg_verdieping_code,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_omschrijving,
alg_ruimte_bruto_vloeropp,
alg_ruimte_opp_alt1,
alg_ruimte_opp_alt2,
alg_ruimte_omtrek,
alg_ruimte_inhoud,
alg_ruimte_opmerking,
prs_ruimteafdeling_bezetting,
prs_afdeling_key,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
mdux_kostenplaats,
mdux_kostendrager,
cnt_interne_doorbelasting,
cnt_interne_doorbelasting_mnd
)
AS
SELECT
cnt_contract_key,
hc.prs_bedrijf_key,
hc.alg_gebouw_key,
prs_perslid_key_eig,
cnt_contract_nummer_intern,
cnt_contract_versie,
cnt_contract_omschrijving,
cnt_contract_looptijd_van,
cnt_contract_looptijd_tot,
cnt_looptijd_mnd,
perc_looptijd,
aantal_weken_tegaan,
cnt_contract_rappeldatum,
cnt_contract_opzegdatum,
cnt_contract_opzegtermijn,
cnt_contract_rappeltermijn,
cnt_contract_status,
contract_fase_actief,
cnt_contract_status_txt,
cnt_contract_kosten,
cnt_contract_termijnkosten,
cnt_contract_termijnkosten_mnd,
cnt_contract_termijn_type,
cnt_contract_termijn_aantal,
cnt_contract_termijn_omschr,
contract_disc_key,
prs_afdeling_key_eig,
cnt_eigenaar_afdeling_naam,
prs_bedrijf_naam,
prs_perslid_naam_full,
prs_perslid_naam_friendly,
cnt_alg_plaats_key,
cnt_alg_plaats_code,
alg_gebouw_code,
alg_gebouw_naam,
alg_gebouw_omschrijving,
v.alg_verdieping_key,
v.alg_verdieping_omschrijving,
v.alg_verdieping_volgnr,
v.alg_verdieping_code,
r.alg_ruimte_key,
r.alg_ruimte_nr,
r.alg_ruimte_omschrijving,
r.alg_ruimte_bruto_vloeropp,
r.alg_ruimte_opp_alt1,
r.alg_ruimte_opp_alt2,
r.alg_ruimte_omtrek,
r.alg_ruimte_inhoud,
r.alg_ruimte_opmerking,
ra.prs_ruimteafdeling_bezetting,
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
k.prs_kostenplaats_key,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_omschrijving,
SUBSTR(k.prs_kostenplaats_nr, 1, INSTR(k.prs_kostenplaats_nr, '.') - 1) mdux_kostenplaats,
SUBSTR(k.prs_kostenplaats_nr, 1 + INSTR(k.prs_kostenplaats_nr, '.')) mdux_kostendrager,
ROUND(cnt_contract_termijnkosten *
(
(SELECT SUM(prs_ruimteafdeling_bezetting)
FROM prs_ruimteafdeling ra2, alg_verdieping v2, alg_ruimte r2, mdux_huurcontracten_gebouwen hc2
WHERE hc2.cnt_contract_key = hc.cnt_contract_key
AND v2.alg_gebouw_key = hc2.alg_gebouw_key
AND v2.alg_verdieping_verwijder IS NULL
AND r2.alg_verdieping_key = v2.alg_verdieping_key
AND r2.alg_ruimte_verwijder IS NULL
AND ra2.alg_ruimte_key = r2.alg_ruimte_key
AND ra2.prs_afdeling_key = a.prs_afdeling_key
AND ra2.prs_ruimteafdeling_verwijder IS NULL) /
(SELECT COALESCE(SUM(prs_ruimteafdeling_bezetting),100)
FROM prs_ruimteafdeling ra2, alg_verdieping v2, alg_ruimte r2, mdux_huurcontracten_gebouwen hc2
WHERE hc2.cnt_contract_key = hc.cnt_contract_key
AND v2.alg_gebouw_key = hc2.alg_gebouw_key
AND v2.alg_verdieping_verwijder IS NULL
AND r2.alg_verdieping_key = v2.alg_verdieping_key
AND r2.alg_ruimte_verwijder IS NULL
AND ra2.alg_ruimte_key = r2.alg_ruimte_key
AND ra2.prs_ruimteafdeling_verwijder IS NULL)
),2) mdux_interne_doorbelasting,
ROUND(cnt_contract_termijnkosten_mnd *
(
(SELECT SUM(prs_ruimteafdeling_bezetting)
FROM prs_ruimteafdeling ra2, alg_verdieping v2, alg_ruimte r2, mdux_huurcontracten_gebouwen hc2
WHERE hc2.cnt_contract_key = hc.cnt_contract_key
AND v2.alg_gebouw_key = hc2.alg_gebouw_key
AND v2.alg_verdieping_verwijder IS NULL
AND r2.alg_verdieping_key = v2.alg_verdieping_key
AND r2.alg_ruimte_verwijder IS NULL
AND ra2.alg_ruimte_key = r2.alg_ruimte_key
AND ra2.prs_afdeling_key = a.prs_afdeling_key
AND ra2.prs_ruimteafdeling_verwijder IS NULL) /
(SELECT COALESCE(SUM(prs_ruimteafdeling_bezetting),100)
FROM prs_ruimteafdeling ra2, alg_verdieping v2, alg_ruimte r2, mdux_huurcontracten_gebouwen hc2
WHERE hc2.cnt_contract_key = hc.cnt_contract_key
AND v2.alg_gebouw_key = hc2.alg_gebouw_key
AND v2.alg_verdieping_verwijder IS NULL
AND r2.alg_verdieping_key = v2.alg_verdieping_key
AND r2.alg_ruimte_verwijder IS NULL
AND ra2.alg_ruimte_key = r2.alg_ruimte_key
AND ra2.prs_ruimteafdeling_verwijder IS NULL)
),2) mdux_interne_doorbelasting_mnd
FROM mdux_huurcontracten_gebouwen hc, alg_verdieping v, alg_ruimte r, prs_ruimteafdeling ra, prs_afdeling a, prs_kostenplaats k
WHERE hc.alg_gebouw_key = v.alg_gebouw_key (+)
AND v.alg_verdieping_verwijder IS NULL
AND v.alg_verdieping_key = r.alg_verdieping_key (+)
AND r.alg_ruimte_verwijder IS NULL
AND r.alg_ruimte_key = ra.alg_ruimte_key (+)
AND ra.prs_ruimteafdeling_verwijder IS NULL
AND ra.prs_afdeling_key = a.prs_afdeling_key (+)
AND a.prs_afdeling_verwijder IS NULL
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key (+);
BEGIN fac.registercustversion('MDUX', 8); END;
/