Files
Customer/UWVA/uwva_fin.sql
Suzan Wiegerinck bcb3265250 UWVA#36097 procedure update lease factuur uitgebreid met controle op fac_imp_key
svn path=/Customer/trunk/; revision=28948
2016-04-14 13:54:27 +00:00

7233 lines
341 KiB
MySQL
Raw Blame History

-- Script containing customer specific sql for UWVA (UWV Amsterdam)
-- related to BROC/SCH/FACTUUR.
--
-- (c) 2005-2012 SG|Facilitor bv
-- $Revision$
-- $Id$
--
-- Support: +31 53 4800700
SET DEFINE OFF
SET ECHO ON
spool xuwva_fin.lst
/* Formatted on 3-6-2013 20:42:53 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE uwva_imp_writelog (p_import_key IN NUMBER,
p_severity IN VARCHAR2,
p_errormsg IN VARCHAR2,
p_errorhint IN VARCHAR2)
AS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
fac.imp_writelog (p_import_key,
p_severity,
p_errormsg,
p_errorhint);
COMMIT;
END;
/
/* Formatted on 8-3-2012 14:30:15 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_cat_factuur
AS
SELECT exportdatum fclt_f_exportdatum,
leverancier,
gebouw,
SUM (bedrag) bedrag
FROM (SELECT exportdatum,
SUBSTR (
detail.ins_discipline_omschrijving,
INSTR (detail.ins_discipline_omschrijving, ' (') + 1
)
leverancier,
DECODE (
detail.alg_ruimte_key,
NULL,
'Onbekend',
(SELECT alg_gebouw_code
FROM alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE detail.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key =
v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key)
)
gebouw,
bedrag
FROM ( SELECT exportdatum,
ins_discipline_omschrijving,
alg_ruimte_key,
SUM (bedrag) bedrag
FROM (SELECT COALESCE(rar1.alg_ruimte_key,rar2.alg_ruimte_key) alg_ruimte_key,
rd.ins_discipline_omschrijving,
rra.res_rsv_artikel_prijs bedrag,
TO_CHAR (res_rsv_artikel_verwerkt,
'YYYY-MM-DD')
exportdatum
FROM res_v_aanwezigrsv_artikel rra,
res_artikel ra,
res_discipline rd,
res_rsv_ruimte rrr,
res_ruimte_opstelling ro,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key)
alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key)
alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2
WHERE rra.res_artikel_key =
ra.res_artikel_key
AND ra.res_discipline_key =
rd.ins_discipline_key
AND rra.res_rsv_ruimte_key =
rrr.res_rsv_ruimte_key
AND rrr.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
AND ro.res_ruimte_key =
rar1.res_ruimte_key(+)
AND ro.res_ruimte_key =
rar2.res_ruimte_key(+)
AND rra.res_rsv_artikel_verwerkt >
SYSDATE - 365
UNION ALL
SELECT rrr.alg_ruimte_key,
rd.ins_discipline_omschrijving,
rra.res_rsv_artikel_prijs bedrag,
TO_CHAR (res_rsv_artikel_verwerkt,
'YYYY-MM-DD')
exportdatum
FROM res_rsv_ruimte rrr,
res_v_aanwezigrsv_artikel rra,
res_artikel ra,
res_discipline rd
WHERE rrr.res_ruimte_opstel_key IS NULL
AND rrr.res_rsv_ruimte_key =
rra.res_rsv_ruimte_key
AND rra.res_artikel_key =
ra.res_artikel_key
AND ra.res_discipline_key =
rd.ins_discipline_key
AND rra.res_rsv_artikel_verwerkt >
SYSDATE - 365)
GROUP BY exportdatum,
ins_discipline_omschrijving,
alg_ruimte_key) detail)
GROUP BY leverancier, gebouw, exportdatum;
-- UWVA#24721/Schoonmaak per aanbesteding 2013 (2 kavels).
-- Oa. VVO_KORTING + GLASWAS_FREQ vervallen!
CREATE OR REPLACE VIEW UWVA_V_SCH_ACTUAL
(
KAVEL,
DISTRICT,
GEBOUW,
GEBOUW_KEY,
VERDIEPING,
RUIMTE_NR,
RUIMTESOORT,
RUIMTEGEBRUIK,
LEEG,
RC_TYPE,
SCH_NIVEAU,
SCH_TARIEF, -- Jaartarief!
VVO
)
AS
SELECT y.kavel,
d.alg_district_omschrijving,
g.alg_gebouw_code,
g.alg_gebouw_key,
x.alg_verdieping_code,
x.alg_ruimte_nr,
x.ruimtesoort,
x.ruimtegebruik,
x.leeg,
x.rc_type,
x.sch_niveau, -- NULL voor contract-m2 of ruimtegebruik onbekend
DECODE (
y.kavel_key,
7245, -- Noord
DECODE (
x.sch_niveau_key,
NULL, -- onbekend, dan telt als Kantoor- en overige ruimten
(SELECT fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key = 943 AND fac_usrdata_key = 7386),
7265, -- ruimtegebruik Opslag/stallingsruimte
(SELECT fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key = 943 AND fac_usrdata_key = 7385),
7266, -- ruimtegebruik Kantoor- en overige ruimten
(SELECT fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key = 943 AND fac_usrdata_key = 7386),
0 -- ruimtegebruik Niet schoonmaken
),
7246, -- Zuid
DECODE (
x.sch_niveau_key,
NULL, -- onbekend, dan telt als Kantoor- en overige ruimten
(SELECT fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key = 943 AND fac_usrdata_key = 7388),
7265, -- ruimtegebruik Opslag/stallingsruimte
(SELECT fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key = 943 AND fac_usrdata_key = 7387),
7266, -- ruimtegebruik Kantoor- en overige ruimten
(SELECT fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key = 943 AND fac_usrdata_key = 7388),
0 -- ruimtegebruik Niet schoonmaken
),
0 -- kan niet voorkomen; zie WHERE-clause!
)
sch_tarief,
ROUND (x.vvo, 2)
FROM ( SELECT a.alg_gebouw_key,
a.alg_verdieping_code,
a.alg_ruimte_nr,
b.ruimtesoort,
c.ruimtegebruik,
d.sch_niveau_key,
d.sch_niveau,
DECODE (SUBSTR (e.div_kpn, 1, 4), 'LEEG', 1, 0) leeg,
'R' rc_type,
SUM( a.vvo
* COALESCE (e.div_bez, 1)
/ COALESCE (f.tot_bez, 1))
vvo
FROM (SELECT r.alg_ruimte_key,
r.alg_ruimte_nr,
v.alg_verdieping_code,
v.alg_gebouw_key,
(SELECT ok.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_kenmerk_key =
1300 -- R/C/N
AND ok.alg_onrgoed_niveau =
'G'
AND ok.alg_onrgoed_key =
v.alg_gebouw_key)
m2_bepaling,
COALESCE (
r.alg_ruimte_opp_alt1,
r.alg_ruimte_bruto_vloeropp,
0
)
vvo
FROM alg_v_aanwezigruimte r,
alg_verdieping v
WHERE r.alg_verdieping_key =
v.alg_verdieping_key) a
LEFT JOIN
(SELECT r.alg_ruimte_key,
sr.alg_srtruimte_omschrijving
ruimtesoort
FROM alg_v_aanwezigruimte r,
alg_srtruimte sr
WHERE r.alg_srtruimte_key =
sr.alg_srtruimte_key) b
ON a.alg_ruimte_key = b.alg_ruimte_key
LEFT JOIN
(SELECT ok.alg_onrgoed_key,
ud.fac_usrdata_key
ruimtegebruik_key,
ud.fac_usrdata_omschr
ruimtegebruik,
ud.fac_usrdata_parentkey
sch_niveau_key
FROM alg_onrgoedkenmerk ok,
fac_usrdata ud
WHERE ok.alg_kenmerk_key = 1240 -- ruimtegebr.
AND ok.alg_onrgoed_niveau =
'R'
AND ud.fac_usrdata_key =
fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde))
c
ON a.alg_ruimte_key = c.alg_onrgoed_key
LEFT JOIN
(SELECT ud.fac_usrdata_key sch_niveau_key,
ud.fac_usrdata_omschr sch_niveau
FROM fac_v_aanwezigusrdata ud
WHERE ud.fac_usrtab_key = 942) -- SCH-niveau
d
ON c.sch_niveau_key = d.sch_niveau_key
LEFT JOIN -- divisie op ruimte
(SELECT ra.alg_ruimte_key,
afd.prs_afdeling_naam div_kpn,
ra.prs_ruimteafdeling_bezetting
div_bez
FROM prs_v_aanwezigruimteafdeling ra,
prs_v_afdeling_boom ab,
prs_afdeling afd
WHERE ra.prs_afdeling_key =
ab.prs_afdeling_key
AND ab.prs_afdeling_key1 =
afd.prs_afdeling_key) e
ON a.alg_ruimte_key = e.alg_ruimte_key
LEFT JOIN -- bezettingstotaal
( SELECT ra.alg_ruimte_key,
SUM (ra.prs_ruimteafdeling_bezetting)
tot_bez
FROM prs_v_aanwezigruimteafdeling ra
WHERE ra.prs_ruimteafdeling_bezetting > 0
GROUP BY ra.alg_ruimte_key) f
ON a.alg_ruimte_key = f.alg_ruimte_key
WHERE m2_bepaling = '3581' -- R(uimte)
--AND COALESCE (m2_bepaling, '3581') = '3581' -- R(uimte)
AND COALESCE (c.ruimtegebruik_key, -1) != 3250 -- NIET: lift
AND COALESCE (c.sch_niveau_key, -1) != 7267 -- niet schoonmaken
GROUP BY a.alg_gebouw_key,
a.alg_verdieping_code,
a.alg_ruimte_nr,
b.ruimtesoort,
c.ruimtegebruik,
d.sch_niveau_key,
d.sch_niveau,
DECODE (SUBSTR (e.div_kpn, 1, 4), 'LEEG', 1, 0),
'R'
UNION ALL -- alleen de lift op BG moet worden schoongemaakt!
SELECT a.alg_gebouw_key,
a.alg_verdieping_code,
a.alg_ruimte_nr,
b.ruimtesoort,
c.ruimtegebruik,
d.sch_niveau_key,
d.sch_niveau,
0 leeg,
'R' rc_type,
a.vvo
FROM (SELECT r.alg_ruimte_key,
r.alg_ruimte_nr,
v.alg_verdieping_code,
v.alg_gebouw_key,
(SELECT ok.alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_kenmerk_key =
1300 -- R/C/N
AND ok.alg_onrgoed_niveau =
'G'
AND ok.alg_onrgoed_key =
v.alg_gebouw_key)
m2_bepaling,
COALESCE (
r.alg_ruimte_opp_alt1,
r.alg_ruimte_bruto_vloeropp,
0
)
vvo
FROM alg_v_aanwezigruimte r,
alg_verdieping v
WHERE r.alg_srtruimte_key = 307 -- v. verk.
AND r.alg_verdieping_key =
v.alg_verdieping_key
AND v.alg_verdieping_code IN
('0', '00', 'BG')) a
LEFT JOIN
(SELECT r.alg_ruimte_key,
sr.alg_srtruimte_omschrijving
ruimtesoort
FROM alg_v_aanwezigruimte r,
alg_srtruimte sr
WHERE r.alg_srtruimte_key =
sr.alg_srtruimte_key) b
ON a.alg_ruimte_key = b.alg_ruimte_key
LEFT JOIN
(SELECT ok.alg_onrgoed_key,
ud.fac_usrdata_key ruimtegebruik_key,
ud.fac_usrdata_omschr ruimtegebruik,
ud.fac_usrdata_parentkey
sch_niveau_key
FROM alg_onrgoedkenmerk ok,
fac_usrdata ud
WHERE ok.alg_kenmerk_key = 1240 -- ruimtegebr.
AND ok.alg_onrgoed_niveau = 'R'
AND ud.fac_usrdata_key =
fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde))
c
ON a.alg_ruimte_key = c.alg_onrgoed_key
LEFT JOIN
(SELECT ud.fac_usrdata_key sch_niveau_key,
ud.fac_usrdata_omschr sch_niveau
FROM fac_v_aanwezigusrdata ud
WHERE ud.fac_usrtab_key = 942) -- SCH-niveau
d
ON c.sch_niveau_key = d.sch_niveau_key
WHERE m2_bepaling = '3581' -- R(uimte)
--AND COALESCE (m2_bepaling, '3581') = '3581' -- R(uimte)
AND c.ruimtegebruik_key = 3250 -- WEL: lift
AND COALESCE (c.sch_niveau_key, -1) != 7267 -- niet schoonmaken
UNION ALL -- huurcontract info bij gebouw; soms >1 per gebouw?
SELECT a.alg_gebouw_key,
'-' alg_verdieping_code,
'-' alg_ruimte_nr,
NULL ruimtesoort,
NULL ruimtegebruik,
NULL sch_niveau_key,
NULL sch_niveau,
0 leeg,
'C' rc_type,
SUM (b.aantal) opp
FROM (SELECT cc.cnt_contract_key,
ccp.cnt_alg_plaats_key alg_gebouw_key
FROM cnt_v_aanwezigcontract cc,
cnt_kenmerkcontract kc,
cnt_contract_plaats ccp,
alg_v_aanwezigonrgoedkenmerk ok
WHERE cc.ins_discipline_key = 198 -- hr.cnt.
AND cc.cnt_contract_key =
kc.cnt_contract_key
AND kc.cnt_kenmerk_key = 184 -- actief
AND kc.cnt_kenmerkcontract_waarde =
'1221'
AND cc.cnt_contract_key =
ccp.cnt_contract_key
AND ccp.cnt_alg_plaats_code = 'G'
AND ccp.cnt_contract_plaats_verwijder IS NULL
AND ccp.cnt_alg_plaats_key =
ok.alg_onrgoed_key
AND ok.alg_kenmerk_key = 1300 -- R/C/N
AND ok.alg_onrgoedkenmerk_waarde =
'3582') -- C(ontract)
a
LEFT JOIN
( SELECT regels.cntkey,
SUM (regels.aantal) aantal
FROM (SELECT cr1.cnt_contract_key cntkey,
(SELECT fac.safe_to_number(kc.cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_contract_key =
cr1.cnt_contract_key
AND kc.cnt_kenmerk_key =
202)
aantal,
(SELECT fac.safe_to_number(kc.cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_contract_key =
cr1.cnt_contract_key
AND kc.cnt_kenmerk_key =
201)
rubriek
FROM cnt_contract cr1
WHERE cr1.ins_discipline_key = 198
UNION ALL
SELECT cr2.cnt_contract_key cntkey,
(SELECT fac.safe_to_number(kc.cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_contract_key =
cr2.cnt_contract_key
AND kc.cnt_kenmerk_key =
261)
aantal,
(SELECT fac.safe_to_number(kc.cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_contract_key =
cr2.cnt_contract_key
AND kc.cnt_kenmerk_key =
241)
rubriek
FROM cnt_contract cr2
WHERE cr2.ins_discipline_key = 198
UNION ALL
SELECT cr3.cnt_contract_key cntkey,
(SELECT fac.safe_to_number(kc.cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_contract_key =
cr3.cnt_contract_key
AND kc.cnt_kenmerk_key =
321)
aantal,
(SELECT fac.safe_to_number(kc.cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_contract_key =
cr3.cnt_contract_key
AND kc.cnt_kenmerk_key =
302)
rubriek
FROM cnt_contract cr3
WHERE cr3.ins_discipline_key = 198
UNION ALL
SELECT cr4.cnt_contract_key cntkey,
(SELECT fac.safe_to_number(kc.cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_contract_key =
cr4.cnt_contract_key
AND kc.cnt_kenmerk_key =
395)
aantal,
(SELECT fac.safe_to_number(kc.cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_contract_key =
cr4.cnt_contract_key
AND kc.cnt_kenmerk_key =
394)
rubriek
FROM cnt_contract cr4
WHERE cr4.ins_discipline_key = 198
UNION ALL
SELECT cr5.cnt_contract_key cntkey,
(SELECT fac.safe_to_number(kc.cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_contract_key =
cr5.cnt_contract_key
AND kc.cnt_kenmerk_key =
399)
aantal,
(SELECT fac.safe_to_number(kc.cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_contract_key =
cr5.cnt_contract_key
AND kc.cnt_kenmerk_key =
398)
rubriek
FROM cnt_contract cr5
WHERE cr5.ins_discipline_key = 198)
regels
WHERE regels.rubriek = 2407
GROUP BY regels.cntkey) b
ON a.cnt_contract_key = b.cntkey
GROUP BY a.alg_gebouw_key,
NULL,
'Contractmeters',
NULL,
NULL,
NULL,
NULL,
0,
'C') x
LEFT JOIN
(SELECT ok.alg_onrgoed_key,
ud.fac_usrdata_key kavel_key,
ud.fac_usrdata_omschr kavel
FROM alg_v_aanwezigonrgoedkenmerk ok,
fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1420 -- kavel
AND ok.alg_onrgoed_niveau = 'G'
--AND ud.fac_usrtab_key = 922
AND fac.safe_to_number (
ok.alg_onrgoedkenmerk_waarde
) = ud.fac_usrdata_key) y
ON x.alg_gebouw_key = y.alg_onrgoed_key,
alg_v_aanweziggebouw g,
alg_locatie l,
alg_district d
WHERE x.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND y.kavel_key IS NOT NULL;
-- UWVA#24721/Schoonmaak per aanbesteding 2013 (2 kavels).
/* Formatted on 20-12-2012 16:32:32 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_sch_gebouw
(
fclt_f_kavel,
fclt_f_regio,
fclt_f_gebouw,
hide_f_volgorde,
adres,
fclt_f_plaats,
fclt_f_rcgp_code,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2,
halfmaand_bedrag
)
AS
SELECT a.kavel,
b.regio,
b.code,
'1',
COALESCE (c.adres, b.adres) adres,
COALESCE (c.plaats, b.plaats) plaats,
a.rc_type,
a.sch_niveau,
DECODE (COALESCE (a.tot_opp, 0),
0, TO_NUMBER (NULL),
ROUND (a.tot_opp, 2)),
DECODE (COALESCE (a.leeg_opp, 0),
0, TO_NUMBER (NULL),
ROUND (a.leeg_opp, 2)),
DECODE (
COALESCE (a.tot_opp, 0) - COALESCE (a.leeg_opp, 0),
0,
TO_NUMBER (NULL),
ROUND (COALESCE (a.tot_opp, 0) - COALESCE (a.leeg_opp, 0), 2)
),
DECODE (
COALESCE (a.tot_opp, 0) - COALESCE (a.leeg_opp, 0),
0,
TO_NUMBER (NULL),
ROUND (
(a.tot_opp - COALESCE (a.leeg_opp, 0)) * a.sch_tarief / 24,
2
)
)
FROM ( SELECT v.kavel,
v.gebouw_key,
v.rc_type,
v.sch_niveau,
v.sch_tarief,
SUM (v.vvo) tot_opp,
SUM (DECODE (v.leeg, 1, v.vvo, 0)) leeg_opp
FROM uwva_v_sch_actual v
WHERE v.leeg IN (0, 1) AND v.ruimte_nr <> '000'
GROUP BY v.kavel,
v.gebouw_key,
v.rc_type,
v.sch_niveau,
v.sch_tarief) a
LEFT JOIN -- regio info bij gebouw
(SELECT g.alg_gebouw_key,
d.alg_district_omschrijving regio,
g.alg_gebouw_code code,
l.alg_locatie_adres adres,
l.alg_locatie_plaats plaats
FROM alg_gebouw g, alg_locatie l, alg_district d
WHERE g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key) b
ON a.gebouw_key = b.alg_gebouw_key
LEFT JOIN -- adres info bij gebouw
(SELECT g.alg_gebouw_key,
a.mld_adres_bezoek_adres adres,
a.mld_adres_bezoek_plaats plaats
FROM alg_gebouw g, mld_adres a
WHERE g.mld_adres_key = a.mld_adres_key
AND a.mld_adres_verwijder IS NULL) c
ON a.gebouw_key = c.alg_gebouw_key;
CREATE OR REPLACE VIEW uwva_v_rap_schn_gebouw
(
fclt_f_regio,
fclt_f_gebouw,
adres,
fclt_f_plaats,
fclt_f_rc_code,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2,
halfmaand_bedrag
)
AS
SELECT fclt_f_regio,
fclt_f_gebouw,
adres,
fclt_f_plaats,
fclt_f_rcgp_code,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2,
halfmaand_bedrag
FROM uwva_v_rap_sch_gebouw
WHERE fclt_f_kavel = 'Noord';
CREATE OR REPLACE VIEW uwva_v_rap_schz_gebouw
(
fclt_f_regio,
fclt_f_gebouw,
adres,
fclt_f_plaats,
fclt_f_rc_code,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2,
halfmaand_bedrag
)
AS
SELECT fclt_f_regio,
fclt_f_gebouw,
adres,
fclt_f_plaats,
fclt_f_rcgp_code,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2,
halfmaand_bedrag
FROM uwva_v_rap_sch_gebouw
WHERE fclt_f_kavel = 'Zuid';
-- UWVA#24721/Schoonmaak per aanbesteding 2013 (2 kavels):
/* Formatted on 20-12-2012 16:32:32 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_sch_gebouwfrozen
(
fclt_f_kavel,
fclt_f_datum,
fclt_f_regio,
fclt_f_gebouw,
hide_f_volgorde,
adres,
fclt_f_plaats,
fclt_f_rcgp_code,
fclt_f_categorie,
vvo_korting,
schvvo,
leegstd_m2,
schoonmaak_m2,
huur_uren,
glaswas_freq,
halfmaand_bedrag
)
AS
SELECT a.kavel,
TO_CHAR (a.freeze_datum, 'YYYY-MM-DD') datum,
COALESCE (b.regio, 'Onbekend'),
a.gebouw,
'1',
COALESCE (c.adres, b.adres, 'Onbekend') adres,
COALESCE (c.plaats, b.plaats, 'Onbekend') plaats,
a.rc_type,
a.sch_niveau,
TO_CHAR (a.vvo_korting) || '%',
DECODE (COALESCE (a.tot_opp, 0),
0, TO_NUMBER (NULL),
ROUND (a.tot_opp, 2)),
DECODE (COALESCE (a.leeg_opp, 0),
0, TO_NUMBER (NULL),
ROUND (a.leeg_opp, 2)),
DECODE (
COALESCE (a.tot_opp, 0) - COALESCE (a.leeg_opp, 0),
0,
TO_NUMBER (NULL),
ROUND (COALESCE (a.tot_opp, 0) - COALESCE (a.leeg_opp, 0), 2)
),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
DECODE (
COALESCE (a.tot_opp, 0) - COALESCE (a.leeg_opp, 0),
0,
TO_NUMBER (NULL),
ROUND (
(a.tot_opp - COALESCE (a.leeg_opp, 0))
* a.sch_tarief
* (100 - COALESCE (a.vvo_korting, 0))
/ 2400,
2
)
)
FROM ( SELECT v.kavel,
v.gebouw,
v.freeze_datum,
v.rc_type,
v.sch_niveau,
v.vvo_korting,
v.sch_tarief,
SUM (v.vvo) tot_opp,
SUM (DECODE (v.leeg, 1, v.vvo, 0)) leeg_opp
FROM uwva_sch_freeze v
WHERE v.leeg IN (0, 1) AND v.ruimte_nr <> '000'
GROUP BY v.kavel,
v.gebouw,
v.freeze_datum,
v.rc_type,
v.sch_niveau,
v.vvo_korting,
v.sch_tarief) a
LEFT JOIN -- regio info bij gebouw
(SELECT g.alg_gebouw_code,
d.alg_district_omschrijving regio,
l.alg_locatie_adres adres,
l.alg_locatie_plaats plaats
FROM alg_v_aanweziggebouw g,
alg_locatie l,
alg_district d
WHERE g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key) b
ON a.gebouw = b.alg_gebouw_code
LEFT JOIN -- adres info bij gebouw
(SELECT g.alg_gebouw_code,
a.mld_adres_bezoek_adres adres,
a.mld_adres_bezoek_plaats plaats
FROM alg_v_aanweziggebouw g, mld_adres a
WHERE g.mld_adres_key = a.mld_adres_key
AND a.mld_adres_verwijder IS NULL) c
ON a.gebouw = c.alg_gebouw_code
UNION ALL
SELECT NULL,
TO_CHAR (a.freeze_datum, 'YYYY-MM-DD') datum,
COALESCE (c.regio, 'Onbekend'),
a.gebouw,
'2',
COALESCE (d.adres, c.adres, 'Onbekend') adres,
COALESCE (d.plaats, c.plaats, 'Onbekend') plaats,
a.rc_type,
a.sch_niveau,
NULL,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
DECODE (SUBSTR (a.ruimtesoort, 1, 10),
'HOOGWERKER', TO_NUMBER (NULL),
ROUND (COALESCE (a.tot_opp, 0), 2)),
DECODE (SUBSTR (a.ruimtesoort, 1, 10),
'HOOGWERKER', ROUND (COALESCE (a.tot_opp, 0), 2),
TO_NUMBER (NULL)),
a.glaswas_freq,
DECODE (COALESCE (a.tot_opp, 0),
0, TO_NUMBER (NULL),
ROUND (a.tot_opp * a.sch_tarief / 24, 2))
FROM ( SELECT v.gebouw,
v.freeze_datum,
v.ruimtesoort,
v.rc_type,
v.sch_niveau,
v.sch_tarief,
v.glaswas_freq,
SUM (v.vvo) tot_opp
FROM uwva_sch_freeze v
WHERE v.rc_type = 'G'
GROUP BY v.gebouw,
v.freeze_datum,
v.ruimtesoort,
v.rc_type,
v.sch_niveau,
v.sch_tarief,
v.glaswas_freq) a
LEFT JOIN -- regio info bij gebouw
(SELECT g.alg_gebouw_code,
d.alg_district_omschrijving regio,
l.alg_locatie_adres adres,
l.alg_locatie_plaats plaats
FROM alg_v_aanweziggebouw g,
alg_locatie l,
alg_district d
WHERE g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key) c
ON a.gebouw = c.alg_gebouw_code
LEFT JOIN -- adres info bij gebouw
(SELECT g.alg_gebouw_code,
a.mld_adres_bezoek_adres adres,
a.mld_adres_bezoek_plaats plaats
FROM alg_v_aanweziggebouw g, mld_adres a
WHERE g.mld_adres_key = a.mld_adres_key
AND a.mld_adres_verwijder IS NULL) d
ON a.gebouw = d.alg_gebouw_code
UNION ALL
SELECT NULL,
TO_CHAR (a.freeze_datum, 'YYYY-MM-DD') datum,
COALESCE (c.regio, 'Onbekend'),
a.gebouw,
'3',
COALESCE (d.adres, c.adres, 'Onbekend') adres,
COALESCE (d.plaats, c.plaats, 'Onbekend') plaats,
a.rc_type,
a.sch_niveau,
NULL,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
ROUND (COALESCE (a.sch_tarief, 0) / 24, 2)
FROM (SELECT v.gebouw,
v.freeze_datum,
v.rc_type,
v.sch_niveau,
v.sch_tarief
FROM uwva_sch_freeze v
WHERE v.rc_type = 'P') a
LEFT JOIN -- regio info bij gebouw
(SELECT g.alg_gebouw_code,
d.alg_district_omschrijving regio,
l.alg_locatie_adres adres,
l.alg_locatie_plaats plaats
FROM alg_v_aanweziggebouw g,
alg_locatie l,
alg_district d
WHERE g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key) c
ON a.gebouw = c.alg_gebouw_code
LEFT JOIN -- adres info bij gebouw
(SELECT g.alg_gebouw_code,
a.mld_adres_bezoek_adres adres,
a.mld_adres_bezoek_plaats plaats
FROM alg_v_aanweziggebouw g, mld_adres a
WHERE g.mld_adres_key = a.mld_adres_key
AND a.mld_adres_verwijder IS NULL) d
ON a.gebouw = d.alg_gebouw_code;
CREATE OR REPLACE VIEW uwva_v_rap_schn_gebouwfrozen
(
fclt_f_datum,
fclt_f_regio,
fclt_f_gebouw,
adres,
fclt_f_plaats,
fclt_f_rc_code,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2,
halfmaand_bedrag
)
AS
SELECT fclt_f_datum,
fclt_f_regio,
fclt_f_gebouw,
adres,
fclt_f_plaats,
fclt_f_rcgp_code,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2,
halfmaand_bedrag
FROM uwva_v_rap_sch_gebouwfrozen
WHERE fclt_f_kavel = 'Noord';
CREATE OR REPLACE VIEW uwva_v_rap_schz_gebouwfrozen
(
fclt_f_datum,
fclt_f_regio,
fclt_f_gebouw,
adres,
fclt_f_plaats,
fclt_f_rc_code,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2,
halfmaand_bedrag
)
AS
SELECT fclt_f_datum,
fclt_f_regio,
fclt_f_gebouw,
adres,
fclt_f_plaats,
fclt_f_rcgp_code,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2,
halfmaand_bedrag
FROM uwva_v_rap_sch_gebouwfrozen
WHERE fclt_f_kavel = 'Zuid';
-- UWVA#24721/Schoonmaak per aanbesteding 2013 (2 kavels):
/* Formatted on 11-12-2012 9:50:05 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_sch_gebgebrfrozen
(
fclt_f_datum,
fclt_f_kavel,
fclt_f_gebouw,
fclt_f_ruimtesoort,
fclt_f_ruimtegebruik,
fclt_f_categorie,
vvo_korting,
m2_jaartarief,
m2_halfmaandtarief,
schvvo,
leegstd_m2,
schoonmaak_m2
)
AS
( SELECT TO_CHAR (x.freeze_datum, 'YYYY-MM-DD') datum,
x.kavel,
x.gebouw,
x.ruimtesoort,
x.ruimtegebruik,
x.sch_niveau,
TO_CHAR (x.vvo_korting) || '%',
REPLACE (TO_CHAR (x.sch_tarief, '999990D99'), '.', ','),
REPLACE (TO_CHAR (x.sch_tarief / 24, '999990D99'), '.', ','),
DECODE (SUM (x.tot_opp),
0, TO_NUMBER (NULL),
ROUND (SUM (x.tot_opp), 2)),
DECODE (SUM (x.leeg_opp),
0, TO_NUMBER (NULL),
ROUND (SUM (x.leeg_opp), 2)),
DECODE (SUM (x.tot_opp - x.leeg_opp),
0, TO_NUMBER (NULL),
ROUND (SUM (x.tot_opp - x.leeg_opp), 2))
FROM ( SELECT v.kavel,
v.gebouw,
v.freeze_datum,
v.ruimtesoort,
v.ruimtegebruik,
v.sch_niveau,
v.vvo_korting,
v.sch_tarief,
SUM (v.vvo) tot_opp,
SUM (DECODE (v.leeg, 1, v.vvo, 0)) leeg_opp
FROM uwva_sch_freeze v
WHERE v.leeg IN (0, 1) AND v.ruimte_nr <> '000'
GROUP BY v.kavel,
v.gebouw,
v.freeze_datum,
v.ruimtesoort,
v.ruimtegebruik,
v.sch_niveau,
v.vvo_korting,
v.sch_tarief) x
GROUP BY x.freeze_datum,
x.kavel,
x.gebouw,
x.ruimtesoort,
x.ruimtegebruik,
x.sch_niveau,
TO_CHAR (x.vvo_korting) || '%',
x.sch_tarief);
CREATE OR REPLACE VIEW uwva_v_rap_schn_gebgebrfrozen
(
fclt_f_datum,
fclt_f_gebouw,
fclt_f_ruimtesoort,
fclt_f_ruimtegebruik,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2
)
AS
SELECT fclt_f_datum,
fclt_f_gebouw,
fclt_f_ruimtesoort,
fclt_f_ruimtegebruik,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2
FROM uwva_v_rap_sch_gebgebrfrozen
WHERE fclt_f_kavel = 'Noord';
CREATE OR REPLACE VIEW uwva_v_rap_schz_gebgebrfrozen
(
fclt_f_datum,
fclt_f_gebouw,
fclt_f_ruimtesoort,
fclt_f_ruimtegebruik,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2
)
AS
SELECT fclt_f_datum,
fclt_f_gebouw,
fclt_f_ruimtesoort,
fclt_f_ruimtegebruik,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2
FROM uwva_v_rap_sch_gebgebrfrozen
WHERE fclt_f_kavel = 'Zuid';
-- UWVA#24721/Schoonmaak per aanbesteding 2013 (2 kavels):
/* Formatted on 18-12-2012 12:45:54 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_sch_foto
(
fclt_f_kavel,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2,
halfmaand_bedrag
)
AS
SELECT v.kavel,
v.sch_niveau,
ROUND (SUM (v.vvo), 2) tot_opp,
ROUND (SUM (DECODE (v.leeg, 1, v.vvo, 0)), 2) leeg_opp,
ROUND (SUM (DECODE (v.leeg, 0, v.vvo, 0)), 2) sch_opp,
ROUND (SUM (DECODE (v.leeg, 0, v.vvo, 0)) * v.sch_tarief / 24, 2)
bedrag
FROM uwva_v_sch_actual v
WHERE v.leeg IN (0, 1) AND v.ruimte_nr <> '000'
GROUP BY v.kavel, v.sch_niveau, v.sch_tarief;
CREATE OR REPLACE VIEW uwva_v_rap_schn_foto
(kavel, fclt_f_categorie, schvvo, leegstd_m2, schoonmaak_m2, halfmaand_bedrag)
AS
SELECT * FROM uwva_v_rap_sch_foto WHERE fclt_f_kavel = 'Noord';
CREATE OR REPLACE VIEW uwva_v_rap_schz_foto
(kavel, fclt_f_categorie, schvvo, leegstd_m2, schoonmaak_m2, halfmaand_bedrag)
AS
SELECT * FROM uwva_v_rap_sch_foto WHERE fclt_f_kavel = 'Zuid';
-- UWVA#24721/Schoonmaak per aanbesteding 2013 (2 kavels):
-- 35319 -> Facilicom
-- 64141 -> Eurest
/* Formatted on 18-12-2012 12:45:54 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_sch_fotofrozen
(
fclt_f_datum,
hide_f_volgorde,
hide_f_bedrijf_key,
fclt_f_kavel,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2,
halfmaand_bedrag
)
AS
SELECT TO_CHAR (x.freeze_datum, 'YYYY-MM-DD') datum,
'1',
DECODE (x.kavel, 'Noord', 35319, 64141) bedrijf_key,
x.kavel,
x.sch_niveau,
ROUND (SUM (x.tot_opp), 2),
ROUND (SUM (x.leeg_opp), 2),
ROUND (SUM (x.tot_opp) - SUM (x.leeg_opp), 2),
ROUND (SUM (x.bedrag) / 2400, 2)
FROM ( SELECT v.freeze_datum,
v.kavel,
v.sch_niveau,
v.sch_tarief,
SUM (v.vvo) tot_opp,
SUM (DECODE (v.leeg, 1, v.vvo, 0)) leeg_opp,
SUM( DECODE (v.leeg, 0, COALESCE (v.vvo, 0), 0)
* v.sch_tarief
* (100 - COALESCE (v.vvo_korting, 0)))
bedrag
FROM uwva_sch_freeze v
WHERE v.leeg IN (0, 1) AND v.ruimte_nr <> '000'
GROUP BY v.freeze_datum,
v.kavel,
v.sch_niveau,
v.sch_tarief) x
GROUP BY x.freeze_datum,
DECODE (x.kavel, 'Noord', 35319, 64141),
x.kavel,
x.sch_niveau,
x.sch_tarief
UNION ALL
SELECT TO_CHAR (v.freeze_datum, 'YYYY-MM-DD') datum,
'2',
NULL,
v.kavel,
'Glasbewassing',
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
ROUND (SUM (v.vvo * v.sch_tarief) / 24, 2)
FROM uwva_sch_freeze v
WHERE v.rc_type = 'G'
GROUP BY v.freeze_datum, v.kavel
UNION ALL
SELECT TO_CHAR (v.freeze_datum, 'YYYY-MM-DD') datum,
'3',
NULL,
v.kavel,
v.sch_niveau,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
ROUND (SUM (v.sch_tarief) / 24, 2)
FROM uwva_sch_freeze v
WHERE v.rc_type = 'P'
GROUP BY v.freeze_datum,
v.kavel,
v.sch_niveau,
v.sch_tarief
UNION ALL
SELECT DISTINCT TO_CHAR (v.freeze_datum, 'YYYY-MM-DD') datum,
'9',
NULL,
NULL,
NULL,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM uwva_sch_freeze v;
CREATE OR REPLACE VIEW uwva_v_rap_schn_fotofrozen
(
fclt_f_datum,
hide_f_volgorde,
hide_f_bedrijf_key,
kavel,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2,
halfmaand_bedrag
)
AS
SELECT * FROM uwva_v_rap_sch_fotofrozen
WHERE fclt_f_kavel = 'Noord';
CREATE OR REPLACE VIEW uwva_v_rap_schz_fotofrozen
(
fclt_f_datum,
hide_f_volgorde,
hide_f_bedrijf_key,
kavel,
fclt_f_categorie,
schvvo,
leegstd_m2,
schoonmaak_m2,
halfmaand_bedrag
)
AS
SELECT * FROM uwva_v_rap_sch_fotofrozen
WHERE fclt_f_kavel = 'Zuid';
/* Formatted on 5-12-2012 17:10:02 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_sch_leegst_delta
(
fclt_f_kavel,
fclt_f_gebouw,
fclt_f_plaats,
adres,
fclt_f_verdieping,
ruimte_nr,
fclt_f_ruimtesoort,
fclt_f_ruimtegebruik,
fclt_f_mutatievlag,
m2_vorig,
m2_nieuw,
m2_delta
)
AS
SELECT k.kavel,
delta.geb,
adres.plaats,
adres.adres,
delta.ver,
delta.rui,
delta.soort,
delta.gebruik,
delta.mutatievlag,
delta.m2_vorig,
delta.m2_nieuw,
DECODE (delta.m2_delta, 0, TO_NUMBER (NULL), delta.m2_delta)
FROM (SELECT DISTINCT
z.geb,
z.ver,
z.rui,
z.soort,
z.gebruik,
DECODE (z.leeg_delta, 0, NULL, 'X') mutatievlag,
DECODE (z.leeg_old,
1, TO_NUMBER (NULL),
COALESCE (z.m2_old, 0))
m2_vorig,
DECODE (z.leeg_new,
1, TO_NUMBER (NULL),
COALESCE (z.m2_new, 0))
m2_nieuw,
DECODE (z.leeg_new, 1, 0, COALESCE (z.m2_new, 0))
- DECODE (z.leeg_old,
1, 0,
COALESCE (z.m2_old, 0))
m2_delta
FROM (SELECT COALESCE (x.gebouw, y.gebouw) geb,
COALESCE (x.verdieping, y.verdieping)
ver,
COALESCE (x.ruimte_nr, y.ruimte_nr) rui,
DECODE (
x.ruimtesoort,
COALESCE (y.ruimtesoort,
x.ruimtesoort),
x.ruimtesoort,
'***GEWIJZIGD: '
|| COALESCE (x.ruimtesoort, '')
)
soort,
DECODE (
x.ruimtegebruik,
COALESCE (y.ruimtegebruik,
x.ruimtegebruik),
x.ruimtegebruik,
'***GEWIJZIGD: '
|| COALESCE (x.ruimtegebruik, '')
)
gebruik,
x.leeg leeg_new,
y.leeg leeg_old,
DECODE (y.leeg,
NULL, 1 - x.leeg,
y.leeg - x.leeg)
leeg_delta,
x.vvo m2_new,
y.vvo m2_old,
(COALESCE (x.vvo, 0)
- COALESCE (y.vvo, 0))
m2_delta,
x.freeze_datum fr_new,
y.freeze_datum fr_old
FROM (SELECT v.gebouw,
v.verdieping,
v.ruimte_nr,
v.leeg,
v.ruimtesoort,
v.ruimtegebruik,
v.vvo,
v.freeze_datum
FROM uwva_sch_freeze v
WHERE v.leeg IN (0, 1)
AND v.ruimte_nr <> '000'
AND v.rc_type = 'R'
AND TRUNC (v.freeze_datum) =
(SELECT TRUNC(MAX(w.freeze_datum))
FROM uwva_sch_freeze w))
x
LEFT JOIN
(SELECT v.gebouw,
v.verdieping,
v.ruimte_nr,
v.leeg,
v.ruimtesoort,
v.ruimtegebruik,
v.vvo,
v.freeze_datum
FROM uwva_sch_freeze v
WHERE v.leeg IN (0, 1)
AND v.ruimte_nr <> '000'
AND v.rc_type = 'R'
AND TRUNC (v.freeze_datum) =
(SELECT TRUNC(MAX(w.freeze_datum))
FROM uwva_sch_freeze w
WHERE w.freeze_datum <>
(SELECT MAX(freeze_datum)
FROM uwva_sch_freeze)))
y
ON x.gebouw = y.gebouw
AND x.verdieping = y.verdieping
AND x.ruimte_nr = y.ruimte_nr
AND x.leeg = y.leeg
UNION
SELECT COALESCE (x.gebouw, y.gebouw) geb,
COALESCE (x.verdieping, y.verdieping)
ver,
COALESCE (x.ruimte_nr, y.ruimte_nr) rui,
DECODE (
y.ruimtesoort,
COALESCE (x.ruimtesoort,
y.ruimtesoort),
y.ruimtesoort,
'***GEWIJZIGD: '
|| COALESCE (x.ruimtesoort, '')
)
soort,
DECODE (
y.ruimtegebruik,
COALESCE (x.ruimtegebruik,
y.ruimtegebruik),
y.ruimtegebruik,
'***GEWIJZIGD: '
|| COALESCE (x.ruimtegebruik, '')
)
gebruik,
x.leeg leeg_new,
y.leeg leeg_old,
DECODE (x.leeg,
NULL, y.leeg - 1,
y.leeg - x.leeg)
leeg_delta,
x.vvo m2_new,
y.vvo m2_old,
(COALESCE (x.vvo, 0)
- COALESCE (y.vvo, 0))
m2_delta,
x.freeze_datum fr_new,
y.freeze_datum fr_old
FROM (SELECT v.gebouw,
v.verdieping,
v.ruimte_nr,
v.leeg,
v.ruimtesoort,
v.ruimtegebruik,
v.vvo,
v.freeze_datum
FROM uwva_sch_freeze v
WHERE v.leeg IN (0, 1)
AND v.ruimte_nr <> '000'
AND v.rc_type = 'R'
AND TRUNC (v.freeze_datum) =
(SELECT TRUNC(MAX(w.freeze_datum))
FROM uwva_sch_freeze w))
x
RIGHT JOIN
(SELECT v.gebouw,
v.verdieping,
v.ruimte_nr,
v.leeg,
v.ruimtesoort,
v.ruimtegebruik,
v.vvo,
v.freeze_datum
FROM uwva_sch_freeze v
WHERE v.leeg IN (0, 1)
AND v.ruimte_nr <> '000'
AND v.rc_type = 'R'
AND TRUNC (v.freeze_datum) =
(SELECT TRUNC(MAX(w.freeze_datum))
FROM uwva_sch_freeze w
WHERE w.freeze_datum <>
(SELECT MAX(freeze_datum)
FROM uwva_sch_freeze)))
y
ON x.gebouw = y.gebouw
AND x.verdieping = y.verdieping
AND x.ruimte_nr = y.ruimte_nr
AND x.leeg = y.leeg) z
WHERE z.leeg_new = 1 OR z.leeg_old = 1) delta
LEFT JOIN -- adres info bij gebouw
(SELECT g.alg_gebouw_key,
g.alg_gebouw_upper,
a.mld_adres_bezoek_plaats plaats,
a.mld_adres_bezoek_adres adres
FROM alg_v_aanweziggebouw g, mld_v_aanwezigadres a
WHERE g.mld_adres_key = a.mld_adres_key) adres
ON UPPER (delta.geb) = adres.alg_gebouw_upper
LEFT JOIN
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr kavel
FROM alg_v_aanwezigonrgoedkenmerk ok,
fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1420 -- kavel
AND ok.alg_onrgoed_niveau = 'G'
--AND ud.fac_usrtab_key = 922
AND fac.safe_to_number (
ok.alg_onrgoedkenmerk_waarde
) = ud.fac_usrdata_key) k
ON adres.alg_gebouw_key = k.alg_onrgoed_key;
---- EXPORT
-- UWVA#22192/UWVA67
-- Alle afdelingskostenplaatsen (ooit) met daarbij of die nog ACTIEF is en, indien
-- INACTIEF, dan de eerste bovenliggende afdelingskostenplaats die wel ACTIEF is (als
-- die bestaat)!
/* Formatted on 20-4-2012 15:44:44 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_actkpn_per_afdkpn
(
allkpn_key,
allkpn_upp,
allkpn_oms,
actkpn_key,
actkpn_upp,
actkpn_oms,
actief
)
AS
SELECT kp.prs_kostenplaats_key curkpn_key,
kp.prs_kostenplaats_upper curkpn_upp,
kp.prs_kostenplaats_omschrijving curkpn_oms,
kp.prs_kostenplaats_key actkpn_key,
kp.prs_kostenplaats_upper actkpn_upp,
kp.prs_kostenplaats_omschrijving actkpn_oms,
'Ja'
FROM prs_v_aanwezigkostenplaats kp
WHERE kp.prs_kostenplaats_module = 'PRS'
AND kp.prs_kostenplaats_omschrijving NOT LIKE 'INACTIEF%'
AND (kp.prs_kostenplaats_eind > TRUNC (SYSDATE)
OR kp.prs_kostenplaats_eind IS NULL)
UNION ALL
SELECT x.oldkpn_key,
x.oldkpn_upp,
x.oldkpn_oms,
COALESCE (y1.kpn_key,
y2.kpn_key,
y3.kpn_key,
y4.kpn_key)
actkpn_key,
COALESCE (y1.prs_kostenplaats_upper,
y2.prs_kostenplaats_upper,
y3.prs_kostenplaats_upper,
y4.prs_kostenplaats_upper)
actkpn_upp,
COALESCE (y1.prs_kostenplaats_omschrijving,
y2.prs_kostenplaats_omschrijving,
y3.prs_kostenplaats_omschrijving,
y4.prs_kostenplaats_omschrijving)
actkpn_oms,
'Nee'
FROM ( SELECT kp.prs_kostenplaats_key oldkpn_key,
kp.prs_kostenplaats_upper oldkpn_upp,
kp.prs_kostenplaats_omschrijving oldkpn_oms,
MAX (a.prs_afdeling_key) afd_key, -- laatst aangemaakt
COUNT ( * ) afd_aant
FROM prs_kostenplaats kp,
(SELECT prs_afdeling_key,
prs_kostenplaats_key
FROM prs_afdeling a1
WHERE a1.prs_afdeling_verwijder IS NULL -- alle aanwezige afdelingen
OR (a1.prs_afdeling_verwijder IS NOT NULL -- alle verwijderde afdelingen
AND NOT EXISTS -- en geen aanwezige afdeling met zelfde kostenplaats
(SELECT 1
FROM prs_afdeling a2
WHERE a2.prs_afdeling_key <>
a1.prs_afdeling_key
AND a2.prs_kostenplaats_key =
a1.prs_kostenplaats_key)))
a
WHERE kp.prs_kostenplaats_module = 'PRS'
AND (kp.prs_kostenplaats_omschrijving LIKE
'INACTIEF%'
OR kp.prs_kostenplaats_eind <=
TRUNC (SYSDATE)
OR kp.prs_kostenplaats_verwijder IS NOT NULL)
AND kp.prs_kostenplaats_key =
a.prs_kostenplaats_key(+)
GROUP BY kp.prs_kostenplaats_key,
kp.prs_kostenplaats_upper,
kp.prs_kostenplaats_omschrijving) x
LEFT JOIN
(SELECT a.prs_afdeling_key afd_key,
kp.prs_kostenplaats_key kpn_key,
kp.prs_kostenplaats_upper,
kp.prs_kostenplaats_omschrijving
FROM prs_afdeling a,
prs_afdeling ap,
prs_v_aanwezigkostenplaats kp
WHERE a.prs_afdeling_parentkey =
ap.prs_afdeling_key
AND ap.prs_kostenplaats_key =
kp.prs_kostenplaats_key
AND kp.prs_kostenplaats_module = 'PRS'
AND kp.prs_kostenplaats_omschrijving NOT LIKE
'INACTIEF%'
AND (kp.prs_kostenplaats_eind >
TRUNC (SYSDATE)
OR kp.prs_kostenplaats_eind IS NULL))
y1
ON x.afd_key = y1.afd_key
LEFT JOIN
(SELECT a.prs_afdeling_key afd_key,
kp.prs_kostenplaats_key kpn_key,
kp.prs_kostenplaats_upper,
kp.prs_kostenplaats_omschrijving
FROM prs_afdeling a,
prs_afdeling ap,
prs_afdeling app,
prs_v_aanwezigkostenplaats kp
WHERE a.prs_afdeling_parentkey = ap.prs_afdeling_key
AND ap.prs_afdeling_parentkey =
app.prs_afdeling_key
AND app.prs_kostenplaats_key =
kp.prs_kostenplaats_key
AND kp.prs_kostenplaats_module = 'PRS'
AND kp.prs_kostenplaats_omschrijving NOT LIKE
'INACTIEF%'
AND (kp.prs_kostenplaats_eind >
TRUNC (SYSDATE)
OR kp.prs_kostenplaats_eind IS NULL)) y2
ON x.afd_key = y2.afd_key
LEFT JOIN
(SELECT a.prs_afdeling_key afd_key,
kp.prs_kostenplaats_key kpn_key,
kp.prs_kostenplaats_upper,
kp.prs_kostenplaats_omschrijving
FROM prs_afdeling a,
prs_afdeling ap,
prs_afdeling app,
prs_afdeling appp,
prs_v_aanwezigkostenplaats kp
WHERE a.prs_afdeling_parentkey = ap.prs_afdeling_key
AND ap.prs_afdeling_parentkey =
app.prs_afdeling_key
AND app.prs_afdeling_parentkey =
appp.prs_afdeling_key
AND appp.prs_kostenplaats_key =
kp.prs_kostenplaats_key
AND kp.prs_kostenplaats_module = 'PRS'
AND kp.prs_kostenplaats_omschrijving NOT LIKE
'INACTIEF%'
AND (kp.prs_kostenplaats_eind > TRUNC (SYSDATE)
OR kp.prs_kostenplaats_eind IS NULL)) y3
ON x.afd_key = y3.afd_key
LEFT JOIN
(SELECT a.prs_afdeling_key afd_key,
kp.prs_kostenplaats_key kpn_key,
kp.prs_kostenplaats_upper,
kp.prs_kostenplaats_omschrijving
FROM prs_afdeling a,
prs_afdeling ap,
prs_afdeling app,
prs_afdeling appp,
prs_afdeling apppp,
prs_v_aanwezigkostenplaats kp
WHERE a.prs_afdeling_parentkey = ap.prs_afdeling_key
AND ap.prs_afdeling_parentkey = app.prs_afdeling_key
AND app.prs_afdeling_parentkey =
appp.prs_afdeling_key
AND appp.prs_afdeling_parentkey =
apppp.prs_afdeling_key
AND apppp.prs_kostenplaats_key =
kp.prs_kostenplaats_key
AND kp.prs_kostenplaats_module = 'PRS'
AND kp.prs_kostenplaats_omschrijving NOT LIKE
'INACTIEF%'
AND (kp.prs_kostenplaats_eind > TRUNC (SYSDATE)
OR kp.prs_kostenplaats_eind IS NULL)) y4
ON x.afd_key = y4.afd_key;
-- View gebruikt in BROC-export en HV-export om voor alle kostenplaatsen de journaalgegevens te
-- bepalen.
-- LET OP: Dit gebeurt -helaas- op basis van de KPN_PRJ-importtabel, omdat elke PRJ-kostenplaats
-- in deze tabel (de meeste PRJ-kostenplaatsen lopen binnen via de KPN-importtabel) bij
-- het genereren van een journaalbestand op speciale wijze moeten worden gelinkt aan een
-- andere PRJ-kostenplaats en deze relatie bestaat alleen in het KPN_PRJ-importbestand.
-- Verder komen PRJ-kostenplaatsen soms voor in zowel het KPN- als KPN_PRJ-bestand. Bij
-- import geldt dat KPN_PRJ dominant is over KPN (UWVA#18127)!
-- Per closing-the-loop (UWVA53) geen verschil meer tussen actieve en inactieve kostenplaatsen;
-- "tooling/ondersteuning rond journaallader weet dat preciezer dan Facilitor" (quote MvE).
-- Toch alleen aanwezige actieve kostenplaatsen, want bovenstaande pas in journaallader oplossen
-- "zou stap terug zijn" (quote PF/EdV).
-- Per UWVA#22192 (UWVA67) wordt igv. INACTIEVE kostenplaatsen omhoog gezocht in de organisatie-
-- boom naar de eerste ACTIEVE kostenplaats en wordt deze -dan maar- gebruikt! Dat op deze wijze
-- geen enkele ACTIEVE kostenplaats wordt gevonden is beoordeeld als "hypothetisch geval"!
/* Formatted on 25-4-2012 11:55:05 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_afd_plus_prj_kpn
(
kostenplaats_key,
kostenplaats,
afd_kostenplaats,
afd_omschrijving,
prj_kostenplaats,
prj_omschrijving
)
AS
WITH afdkpn AS (SELECT * FROM uwva_v_actkpn_per_afdkpn)
SELECT kp.allkpn_key kostenplaats_key,
kp.allkpn_upp kostenplaats,
kp.actkpn_upp afd_kostenplaats,
kp.actkpn_oms afd_omschrijving,
NULL prj_kostenplaats,
NULL prj_omschrijving
FROM afdkpn kp -- Alleen PRS-kpn
WHERE kp.actkpn_key IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM uwva_imp_kpn_prj prj
WHERE prj.status = 'A' AND prj.project = kp.actkpn_upp)
UNION ALL
SELECT kp.prs_kostenplaats_key kostenplaats_key,
kp.prs_kostenplaats_upper kostenplaats,
kp.prs_kostenplaats_upper afd_kostenplaats,
kp.prs_kostenplaats_omschrijving afd_omschrijving,
NULL prj_kostenplaats,
NULL prj_omschrijving
FROM prs_v_aanwezigkostenplaats kp
WHERE kp.prs_kostenplaats_module = 'ALG' -- Alleen ALG-kpn
AND kp.prs_kostenplaats_omschrijving NOT LIKE 'INACTIEF%'
AND (kp.prs_kostenplaats_eind > TRUNC (SYSDATE)
OR kp.prs_kostenplaats_eind IS NULL)
UNION ALL
SELECT DISTINCT kp1.prs_kostenplaats_key kostenplaats_key,
kp1.prs_kostenplaats_upper kostenplaats,
kp2.actkpn_upp afd_kostenplaats,
kp2.actkpn_oms afd_omschrijving,
NULL prj_kostenplaats,
NULL prj_omschrijving
FROM prs_kostenplaats kp1,
uwva_imp_kpn kpn,
afdkpn kp2
WHERE kp1.prs_kostenplaats_module = 'ALG' -- Alleen ALG-kpn
AND ( kp1.prs_kostenplaats_omschrijving LIKE 'INACTIEF%'
OR kp1.prs_kostenplaats_eind <= TRUNC (SYSDATE)
OR kp1.prs_kostenplaats_verwijder IS NOT NULL)
AND kp1.prs_kostenplaats_upper = UPPER (kpn.afdeling)
AND UPPER (kpn.niv2_code) = kp2.allkpn_upp
AND kp2.actkpn_key IS NOT NULL
UNION ALL
SELECT kp.prs_kostenplaats_key kostenplaats_key,
kp.prs_kostenplaats_upper kostenplaats,
kp.prs_kostenplaats_upper afd_kostenplaats,
kp.prs_kostenplaats_omschrijving afd_omschrijving,
NULL prj_kostenplaats,
NULL prj_omschrijving
FROM prs_v_aanwezigkostenplaats kp
WHERE kp.prs_kostenplaats_module = 'PRJ' -- Alleen PRJ-kpn
AND kp.prs_kostenplaats_omschrijving NOT LIKE 'INACTIEF%'
AND (kp.prs_kostenplaats_eind > TRUNC (SYSDATE)
OR kp.prs_kostenplaats_eind IS NULL)
AND NOT EXISTS
(SELECT 1
FROM uwva_imp_kpn_prj prj
WHERE prj.status = 'A'
AND prj.project = kp.prs_kostenplaats_upper)
UNION ALL
SELECT DISTINCT kp1.prs_kostenplaats_key kostenplaats_key,
kp1.prs_kostenplaats_upper kostenplaats,
kp2.actkpn_upp afd_kostenplaats,
kp2.actkpn_oms afd_omschrijving,
NULL prj_kostenplaats,
NULL prj_omschrijving
FROM prs_kostenplaats kp1,
uwva_imp_kpn kpn,
afdkpn kp2
WHERE kp1.prs_kostenplaats_module = 'PRJ' -- Alleen PRJ-kpn
AND ( kp1.prs_kostenplaats_omschrijving LIKE 'INACTIEF%'
OR kp1.prs_kostenplaats_eind <= TRUNC (SYSDATE)
OR kp1.prs_kostenplaats_verwijder IS NOT NULL)
AND kp1.prs_kostenplaats_upper = UPPER (kpn.afdeling)
AND UPPER (kpn.niv2_code) = kp2.allkpn_upp
AND kp2.actkpn_key IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM uwva_imp_kpn_prj prj
WHERE prj.status = 'A'
AND prj.project = kp1.prs_kostenplaats_upper)
UNION ALL
SELECT DISTINCT kp1.prs_kostenplaats_key,
kp1.prs_kostenplaats_upper kostenplaats,
kp2.prs_kostenplaats_upper afd_kostenplaats,
NULL afd_omschrijving, -- Niet van belang bij linking
prj.project prj_kostenplaats,
prj.omschrijving prj_omschrijving
FROM uwva_imp_kpn_prj prj,
prs_kostenplaats kp1,
prs_v_aanwezigkostenplaats kp2
WHERE prj.status = 'A'
AND prj.project = kp1.prs_kostenplaats_upper
--AND kp1.prs_kostenplaats_omschrijving NOT LIKE 'INACTIEF%'
--AND (kp1.prs_kostenplaats_eind > TRUNC (SYSDATE)
-- OR kp1.prs_kostenplaats_eind IS NULL)
AND prj.afdeling = kp2.prs_kostenplaats_upper
AND kp2.prs_kostenplaats_omschrijving NOT LIKE 'INACTIEF%'
AND (kp2.prs_kostenplaats_eind > TRUNC (SYSDATE)
OR kp2.prs_kostenplaats_eind IS NULL)
UNION ALL
SELECT DISTINCT kp1.prs_kostenplaats_key,
kp1.prs_kostenplaats_upper kostenplaats,
kp3.actkpn_upp afd_kostenplaats,
kp3.actkpn_oms afd_omschrijving,
NULL prj_kostenplaats,
NULL prj_omschrijving
FROM uwva_imp_kpn_prj prj,
prs_kostenplaats kp1,
prs_kostenplaats kp2,
uwva_imp_kpn kpn,
afdkpn kp3
WHERE prj.status = 'A'
AND prj.project = kp1.prs_kostenplaats_upper
AND prj.afdeling = kp2.prs_kostenplaats_upper
AND ( kp2.prs_kostenplaats_omschrijving LIKE 'INACTIEF%'
OR kp2.prs_kostenplaats_eind <= TRUNC (SYSDATE)
OR kp2.prs_kostenplaats_verwijder IS NOT NULL)
AND kp2.prs_kostenplaats_upper = UPPER (kpn.afdeling)
AND UPPER (kpn.niv2_code) = kp3.allkpn_upp
AND kp3.actkpn_key IS NOT NULL;
-- SCH-export; doel is de actuele SCH-gegevens (de 8e en 23e)
-- te bevriezen in UWVA_SCH_FREEZE en een journaalbestand te
-- exporteren!
/* Formatted on 16-8-2012 12:15:45 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_sch_journaalregels
(
export_appl,
export_datum,
export_index,
export_regel
)
AS
SELECT rjr.export_appl,
rjr.export_datum,
rjr.export_index,
'"'
|| rjr.export_index -- A: regelnummer
|| '";""' -- B: empty
|| ';""' -- C: empty
|| ';""' -- D: empty
|| ';""' -- E: empty
|| ';""' -- F: empty
|| ';""' -- G: empty
|| ';""' -- H: empty
|| ';"00UWV"' -- I: business unit
|| ';"'
|| ud1.fac_usrdata_omschr -- J: ledger
|| '";"'
|| rjr.kostensoort_oms -- K: rekening
|| '";"";"";"' -- L+M: empty 1+2
|| ud2.fac_usrdata_omschr -- N: valuta
|| '";"'
|| REPLACE (rjr.bedrag, '.', ',') -- O: bedrag
|| '";"";"";"";"";"";"";"' -- Pt/mU: empty 3 t/m 8
|| SUBSTR (
ud3.fac_usrdata_omschr
|| ' '
|| TO_CHAR (rjr.export_datum, 'dd-mm-yyyy'),
1,
20
) -- V: omschrijving (UWVA#23919: W bij BROC)
|| '";"'
|| rjr.kostensoort_refcode -- W: ref. (UWVA#23919: V bij BROC)
|| '";"";"";"' -- X+Y: empty 9+10
|| rjr.afd_kpn -- Z: department
|| '";""' -- AA: empty
|| ';""' -- AB: empty
|| ';""' -- AC: empty
|| ';"";"' -- AD: empty
|| rjr.prj_kpn -- AE: project code
|| '";""' -- AF: empty
|| ';""' -- AG: empty
|| ';""' -- AH: empty
|| ';""' -- AI: empty
|| ';""' -- AJ: empty
|| ';""' -- AK: empty
|| ';"";"' -- AL: empty
|| DECODE (rjr.prj_kpn, NULL, NULL, '00UWV') -- AM: project business unit
|| '";"'
|| rjr.prj_activiteit -- AN: project activiteit
|| '";""' -- AO: empty
|| ';""' -- AP: empty
|| ';"";"' -- AQ: empty
|| rjr.prj_analyse -- AR: analyse
|| '"'
export_regel
FROM uwva_raw_journaalregels rjr,
fac_usrdata ud1,
fac_usrdata ud2,
fac_usrdata ud3
WHERE ud1.fac_usrdata_key = 426 -- Ledger-setting
AND ud2.fac_usrdata_key = 427 -- Valuta-setting
AND ud3.fac_usrdata_key = 429 -- Omschrijving-setting
/
/* Formatted on 11-10-2010 17:20:34 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_export_sch (RESULT, result_order)
AS
-- SELECT e.export_regel, e.regelnummer
-- FROM uwva_exp_sch e
SELECT jr.export_regel, jr.export_index
FROM uwva_v_sch_journaalregels jr
WHERE jr.export_appl = 'SCH' AND jr.export_datum > SYSDATE - 0.5
/
/* Formatted on 11-12-2012 10:08:48 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE uwva_select_sch (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Cursor loopt over een tijdelijke tabel met daarin opgebouwd alle regels
-- van de doorbelasting gebaseerd op sch-freeze (tabel).
-- UWVA#20668: Alleen export regels incl. BTW, daarom alle bedragen * 1.19!
-- UWVA#24833: Na BTW-verhoging voortaan * 1.21!
CURSOR c1
IS
SELECT groepering,
kpn,
rekening,
refcode,
NULL prj_code,
NULL prj_activiteit,
NULL analyse,
TO_CHAR (bedrag, '999999999D99') bedrag
FROM ( -- Doorbelasting SCH-kosten per gebouw (R)
SELECT '#1' groepering,
kpn.prs_kostenplaats_upper kpn,
k.prs_kostensoort_upper rekening,
DECODE (
TO_CHAR (SYSDATE, 'dd'),
'08',
'schoonmaak 2e helft '
|| TO_CHAR (SYSDATE, 'mon yyyy'),
'schoonmaak 1e helft '
|| TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'mon yyyy')
)
|| ' R'
refcode,
SUM (ROUND (v.halfmaand_bedrag * 1.21, 2)) bedrag
FROM uwva_v_rap_sch_gebouwfrozen v,
prs_kostensoort k,
alg_v_aanweziggebouw g,
prs_kostenplaats kpn
WHERE v.fclt_f_datum = TO_CHAR (SYSDATE, 'YYYY-MM-DD')
AND v.fclt_f_rcgp_code = 'R'
AND k.prs_kostensoort_key = 181 -- RCP-kostensoort
AND k.prs_kostensoort_doorbelasten = 1
AND v.fclt_f_gebouw = g.alg_gebouw_code
AND g.prs_kostenplaats_key =
kpn.prs_kostenplaats_key(+)
GROUP BY '#1',
kpn.prs_kostenplaats_upper,
k.prs_kostensoort_upper,
k.prs_kostensoort_refcode
UNION ALL -- Doorbelasting SCH-kosten per gebouw (C)
SELECT '#2' groepering,
kpn.prs_kostenplaats_upper kpn,
k.prs_kostensoort_upper rekening,
DECODE (
TO_CHAR (SYSDATE, 'dd'),
'08',
'schoonmaak 2e helft '
|| TO_CHAR (SYSDATE, 'mon yyyy'),
'schoonmaak 1e helft '
|| TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'mon yyyy')
)
|| ' C'
refcode,
SUM (ROUND (v.halfmaand_bedrag * 1.21, 2)) bedrag
FROM uwva_v_rap_sch_gebouwfrozen v,
prs_kostensoort k,
alg_v_aanweziggebouw g,
prs_kostenplaats kpn
WHERE v.fclt_f_datum = TO_CHAR (SYSDATE, 'YYYY-MM-DD')
AND v.fclt_f_rcgp_code = 'C'
AND k.prs_kostensoort_key = 181 -- RCP-kostensoort
AND k.prs_kostensoort_doorbelasten = 1
AND v.fclt_f_gebouw = g.alg_gebouw_code
AND g.prs_kostenplaats_key =
kpn.prs_kostenplaats_key(+)
GROUP BY '#2',
kpn.prs_kostenplaats_upper,
k.prs_kostensoort_upper,
k.prs_kostensoort_refcode
UNION ALL -- Doorbelasting SCH-kosten per gebouw (P)
SELECT '#3' groepering,
kpn.prs_kostenplaats_upper kpn,
k.prs_kostensoort_upper rekening,
DECODE (
TO_CHAR (SYSDATE, 'dd'),
'08',
'pestcontrol 2e helft '
|| TO_CHAR (SYSDATE, 'mon yyyy'),
'pestcontrol 1e helft '
|| TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'mon yyyy')
)
refcode,
SUM (ROUND (v.halfmaand_bedrag * 1.21, 2)) bedrag
FROM uwva_v_rap_sch_gebouwfrozen v,
prs_kostensoort k,
alg_v_aanweziggebouw g,
prs_kostenplaats kpn
WHERE v.fclt_f_datum = TO_CHAR (SYSDATE, 'YYYY-MM-DD')
AND v.fclt_f_rcgp_code = 'P'
AND k.prs_kostensoort_key = 181 -- RCP-kostensoort
AND k.prs_kostensoort_doorbelasten = 1
AND v.fclt_f_gebouw = g.alg_gebouw_code
AND g.prs_kostenplaats_key =
kpn.prs_kostenplaats_key(+)
GROUP BY '#3',
kpn.prs_kostenplaats_upper,
k.prs_kostensoort_upper,
k.prs_kostensoort_refcode
UNION ALL -- Tegenwaarde SCH-kosten (R, C en P)
SELECT '#4' groepering,
kpn.prs_kostenplaats_upper kpn, -- 'GZZZZZ' ks_key=181
k.prs_kostensoort_upper rekening,
k.prs_kostensoort_refcode refcode,
SUM (ROUND (v.halfmaand_bedrag * 1.21, 2)) * -1
bedrag
FROM uwva_v_rap_sch_gebouwfrozen v,
prs_kostensoort k,
prs_kostenplaats kpn
WHERE v.fclt_f_datum = TO_CHAR (SYSDATE, 'YYYY-MM-DD')
AND v.fclt_f_rcgp_code <> 'G'
AND k.prs_kostensoort_key = 181 -- RCP-kostensoort
AND k.prs_kostensoort_doorbelasten = 1
AND k.prs_kostenplaats_key =
kpn.prs_kostenplaats_key(+) -- ook zonder lev. kpn!
GROUP BY '#4',
kpn.prs_kostenplaats_upper, -- 'GZZZZZ' ks_key=181
k.prs_kostensoort_upper,
k.prs_kostensoort_refcode
UNION ALL -- Doorbelasting SCH-kosten per gebouw (G)
SELECT '#5' groepering,
kpn.prs_kostenplaats_upper kpn,
k.prs_kostensoort_upper rekening,
DECODE (
TO_CHAR (SYSDATE, 'dd'),
'08',
'glasbewas 2e helft '
|| TO_CHAR (SYSDATE, 'mon yyyy'),
'glasbewas 1e helft '
|| TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'mon yyyy')
)
refcode,
SUM (ROUND (v.halfmaand_bedrag * 1.21, 2)) bedrag
FROM uwva_v_rap_sch_gebouwfrozen v,
prs_kostensoort k,
alg_v_aanweziggebouw g,
prs_kostenplaats kpn
WHERE v.fclt_f_datum = TO_CHAR (SYSDATE, 'YYYY-MM-DD')
AND v.fclt_f_rcgp_code = 'G'
AND k.prs_kostensoort_key = 261 -- G-kostensoort
AND k.prs_kostensoort_doorbelasten = 1
AND v.fclt_f_gebouw = g.alg_gebouw_code
AND g.prs_kostenplaats_key =
kpn.prs_kostenplaats_key(+)
GROUP BY '#5',
kpn.prs_kostenplaats_upper,
k.prs_kostensoort_upper,
k.prs_kostensoort_refcode
UNION ALL -- Tegenwaarde SCH-kosten (G)
SELECT '#6' groepering,
kpn.prs_kostenplaats_upper kpn, -- lev. kpn
k.prs_kostensoort_upper rekening,
k.prs_kostensoort_refcode refcode,
SUM (ROUND (v.halfmaand_bedrag * 1.21, 2)) * -1
bedrag
FROM uwva_v_rap_sch_gebouwfrozen v,
prs_kostensoort k,
prs_kostenplaats kpn
WHERE v.fclt_f_datum = TO_CHAR (SYSDATE, 'YYYY-MM-DD')
AND v.fclt_f_rcgp_code = 'G'
AND k.prs_kostensoort_key = 261 -- G-kostensoort
AND k.prs_kostensoort_doorbelasten = 1
AND k.prs_kostenplaats_key =
kpn.prs_kostenplaats_key(+) -- ook zonder lev. kpn!
GROUP BY '#6',
kpn.prs_kostenplaats_upper, -- lev. kpn
k.prs_kostensoort_upper,
k.prs_kostensoort_refcode)
ORDER BY groepering, kpn, bedrag;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
freeze_date DATE;
regelnr NUMBER;
BEGIN
-- IF 8e of 23e van de maand THEN
-- 1. Clear log
-- 2. Clear export-tabel
-- 3. T-freeze; insert T-regels in sch-freeze
-- 4. E-export; insert E-regels in export-tabel (uit sch-freeze)
-- 5. F-freeze; zet T-regels in sch-freeze op F
-- END IF;
freeze_date := SYSDATE;
IF TO_CHAR (freeze_date, 'dd') IN ('08', '23')
THEN
-- 2. Clear export-tabel
DELETE FROM uwva_raw_journaalregels
WHERE export_appl = p_applname;
COMMIT;
-- 3. T-freeze; insert T-regels in sch-freeze
-- Bewaar SCH-gegevens en parkeer deze in freeze tabel om aansluitend de
-- export (= doorbelasting) op te baseren.
-- In deze tabel zijn ook gegevens van voorgaande doorbelastingen met de
-- status F(rozen) aanwezig; deze krijgen eerst de status T(emporary). =>
-- Per "Closing the loop" worden SCH-gegevens hier eerst bevroren op T en
-- na vullen export-tabel direct op F gezet.
INSERT INTO uwva_sch_freeze (kavel,
district,
gebouw,
verdieping,
ruimte_nr,
ruimtesoort,
ruimtegebruik,
leeg,
rc_type,
sch_niveau,
sch_tarief,
vvo,
freeze_datum,
freeze_state)
SELECT kavel,
district,
gebouw,
verdieping,
ruimte_nr,
ruimtesoort,
SUBSTR (ruimtegebruik, 1, 60),
leeg,
rc_type,
sch_niveau,
sch_tarief,
vvo,
freeze_date,
'T'
FROM uwva_v_sch_actual;
COMMIT;
regelnr := 0;
-- 4. E-export; insert E-regels in export-tabel (uit sch-freeze)
FOR rec1 IN c1
LOOP
INSERT INTO uwva_raw_journaalregels (export_appl,
export_datum,
export_index,
kostensoort_oms,
bedrag,
kostensoort_refcode,
afd_kpn,
prj_kpn,
prj_activiteit,
prj_analyse,
functie)
VALUES (p_applname,
freeze_date,
regelnr,
rec1.rekening,
rec1.bedrag,
rec1.refcode,
rec1.kpn,
rec1.prj_code,
rec1.prj_activiteit,
rec1.analyse,
'E');
regelnr := regelnr + 1;
COMMIT;
END LOOP;
-- 5. F-freeze; zet T-regels in sch-freeze op F
UPDATE uwva_sch_freeze
SET freeze_state = 'F'
WHERE freeze_state = 'T';
COMMIT;
fac.writelog (p_applname,
'S',
'Aantal SCH-regels/DEFINITIEF: ' || TO_CHAR (regelnr),
'');
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'Proces SCH_FREEZE afgebroken!',
v_errormsg);
COMMIT;
END;
/
-- UWVA#21947
/* Formatted on 6-2-2012 11:20:45 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_fin_accordeergedrag
(
fclt_f_nr,
fclt_d_factuurdatum,
fclt_f_uitvoerende,
fclt_f_factuurnr,
soort,
opdrachtnr,
excl_btw,
incl_btw,
fclt_f_status,
budgethouder,
kostenplaats,
akkoorddatum,
fclt_f_doorloop
)
AS
SELECT TO_CHAR (x.factuurnr_intern),
TO_CHAR (x.factuur_datum, 'DD-MM-YYYY'),
x.uitvoerende,
x.factuurnr_extern,
x.ftype,
x.opdrachtnr,
x.bedrag_excl_BTW,
x.bedrag_incl_BTW,
x.fin_factuur_statuses_omschr,
x.budgethouder,
x.kostenplaats,
TO_CHAR (finfok.min_datum, 'DD-MM-YYYY HH24:MI'),
DECODE (
finfok.aant,
NULL,
'-',
1,
DECODE (
FLOOR( (finfok.min_datum
- COALESCE (finnew.fac_tracking_datum,
x.factuur_datum))
* 24
* 60),
0,
DECODE (finfok.prs_perslid_key,
NULL, 'Automatisch-0',
'Handmatig-0'),
DECODE (finfok.prs_perslid_key,
NULL, 'Automatisch-1',
'Handmatig-1')
),
'Handmatig-' || TO_CHAR (finfok.aant)
)
FROM (SELECT f.fin_factuur_key factuurnr_intern,
f.fin_factuur_statuses_key,
f.fin_factuur_datum factuur_datum,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE prs_bedrijf_key =
COALESCE (o.mld_uitvoerende_keys,
c.cnt_prs_bedrijf_key,
bo.prs_bedrijf_key))
uitvoerende,
f.fin_factuur_nr factuurnr_extern,
COALESCE (
NVL2 (
f.mld_opdr_key,
'Opdracht'
|| CHR (13)
|| CHR (10)
|| sm.mld_stdmelding_omschrijving,
NULL
),
NVL2 (
f.cnt_contract_key,
'Contract'
|| CHR (13)
|| CHR (10)
|| cd.ins_discipline_omschrijving,
NULL
),
NVL2 (
f.bes_bestelopdr_key,
'Bestelling' || CHR (13) || CHR (10)
|| (SELECT MIN(bd.ins_discipline_omschrijving)
FROM bes_bestelopdr_item boi,
bes_bestelling_item bi,
bes_srtdeel bs,
bes_srtgroep bg,
bes_discipline bd
WHERE boi.bes_bestelopdr_key =
bo.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key =
bi.bes_bestelopdr_item_key
AND bi.bes_srtdeel_key =
bs.bes_srtdeel_key
AND bs.bes_srtgroep_key =
bg.bes_srtgroep_key
AND bg.ins_discipline_key =
bd.ins_discipline_key),
NULL
),
NULL
)
ftype,
COALESCE (
NVL2 (
f.mld_opdr_key,
sd.ins_srtdiscipline_prefix
|| TO_CHAR (o.mld_melding_key)
|| '/'
|| o.mld_opdr_bedrijfopdr_volgnr,
NULL
),
NVL2 (
f.cnt_contract_key,
'C' || c.cnt_contract_nummer_intern
|| NVL2 (c.cnt_contract_versie,
'.' || c.cnt_contract_versie,
''),
NULL
),
NVL2 (f.bes_bestelopdr_key,
bo.bes_bestelopdr_id,
NULL),
NULL
)
opdrachtnr,
f.fin_factuur_totaal bedrag_excl_BTW,
f.fin_factuur_totaal + f.fin_factuur_totaal_btw
bedrag_incl_BTW,
fs.fin_factuur_statuses_omschr,
(SELECT pf.prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = f.budgethouder)
budgethouder,
k.prs_kostenplaats_nr
|| ' '
|| k.prs_kostenplaats_omschrijving
kostenplaats
FROM (SELECT prs.getkpverantwoordelijke (
prs_kostenplaats_key,
2,
-1
)
budgethouder,
f.*
FROM (SELECT fin.getfactuurkostenplaats (
f.fin_factuur_key
)
prs_kostenplaats_key,
f.*
FROM fin_factuur f) f) f,
prs_kostenplaats k,
fin_factuur_statuses fs,
mld_opdr o,
mld_melding m,
mld_discipline d,
mld_stdmelding sm,
ins_srtdiscipline sd,
cnt_contract c,
cnt_discipline cd,
bes_bestelopdr bo
WHERE f.prs_kostenplaats_key =
k.prs_kostenplaats_key(+)
AND f.fin_factuur_statuses_key =
fs.fin_factuur_statuses_key
AND f.mld_opdr_key = o.mld_opdr_key(+)
AND o.mld_melding_key = m.mld_melding_key(+)
AND m.mld_stdmelding_key =
sm.mld_stdmelding_key(+)
AND sm.mld_ins_discipline_key =
d.ins_discipline_key(+)
AND d.ins_srtdiscipline_key =
sd.ins_srtdiscipline_key(+)
AND f.cnt_contract_key = c.cnt_contract_key(+)
AND c.ins_discipline_key =
cd.ins_discipline_key(+)
AND f.bes_bestelopdr_key =
bo.bes_bestelopdr_key(+)) x
LEFT JOIN -- Tracking toevoegen
fac_tracking finnew
ON x.factuurnr_intern = finnew.fac_tracking_refkey
AND finnew.fac_srtnotificatie_key = 141
LEFT JOIN
( SELECT fac_tracking_refkey,
MIN (fac_tracking_datum) min_datum,
MIN (prs_perslid_key) prs_perslid_key,
COUNT ( * ) aant -- >1, dan niet standaard!
FROM fac_tracking
WHERE fac_srtnotificatie_key = 143
GROUP BY fac_tracking_refkey) finfok
ON x.factuurnr_intern = finfok.fac_tracking_refkey;
-- UWVA#21949
/* Formatted on 9-1-2013 13:38:26 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_fin_factureergedrag
(
fclt_f_nr,
fclt_d_factuurdatum,
fclt_f_uitvoerende,
fclt_f_factuurnr,
soort,
opdrachtnr,
opdrachtkosten,
excl_btw,
incl_btw,
fclt_f_status,
budgethouder,
kostenplaats,
fclt_f_doorloop
)
AS
SELECT TO_CHAR (x.factuurnr_intern) nr,
TO_CHAR (x.factuur_datum, 'DD-MM-YYYY'),
x.uitvoerende,
x.factuurnr_extern,
x.ftype,
x.opdrachtnr,
x.opdrachtkosten,
x.bedrag_excl_BTW,
x.bedrag_incl_BTW,
x.fin_factuur_statuses_omschr,
x.budgethouder,
x.kostenplaats,
DECODE (
finupd.aant,
NULL, -- Factuur nooit gemuteerd
DECODE (
finfun.aant,
NULL, -- Akkoord nooit geannuleerd
DECODE (
finfok.aant,
NULL, -- Nog niet akkoord
DECODE (
x.disckey,
NULL,
'Wit/Speciaal',
DECODE (fin.tolerantiematch (x.disckey,
SUBSTR (x.ftype, 1, 1),
x.bedrag_incl_BTW,
x.opdrachtkosten),
1, 'Groen/Nog niet akkoord',
'Rood/Nog niet akkoord')
),
1, -- In 1x akkoord
DECODE (
FLOOR( (finfok.min_datum
- COALESCE (finnew.fac_tracking_datum,
x.factuur_datum))
* 24
* 60),
DECODE (finfok.prs_perslid_key, NULL, 0, NULL),
'Glad/Direct akkoord', -- Binnen minuut door Facilitor
DECODE (fin.tolerantiematch (x.disckey,
SUBSTR (x.ftype, 1, 1),
x.bedrag_incl_BTW,
x.opdrachtkosten),
1, 'Groen/Later akkoord',
'Rood/Later akkoord')
),
'Wit/Speciaal' -- >1 akkoord/nooit geannuleerd; kan niet?
),
'Wit/Speciaal' -- Akkoord geannuleerd!
),
'Wit/Speciaal' -- Factuur gemuteerd!
)
FROM (SELECT f.fin_factuur_key factuurnr_intern,
f.fin_factuur_statuses_key,
f.fin_factuur_datum factuur_datum,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE prs_bedrijf_key =
COALESCE (
o.mld_uitvoerende_keys,
c.cnt_prs_bedrijf_key,
bo.prs_bedrijf_key
))
uitvoerende,
f.fin_factuur_nr factuurnr_extern,
COALESCE (
NVL2 (f.mld_opdr_key,
md.ins_discipline_key,
NULL),
NVL2 (f.cnt_contract_key,
cd.ins_discipline_key,
NULL),
NVL2 (f.bes_bestelopdr_key,
bg.ins_discipline_key,
NULL),
TO_NUMBER (NULL)
)
disckey,
COALESCE (
NVL2 (
f.mld_opdr_key,
'Opdracht'
|| CHR (13)
|| CHR (10)
|| sm.mld_stdmelding_omschrijving,
NULL
),
NVL2 (
f.cnt_contract_key,
'Contract'
|| CHR (13)
|| CHR (10)
|| cd.ins_discipline_omschrijving,
NULL
),
NVL2 (
f.bes_bestelopdr_key,
'Bestelling'
|| CHR (13)
|| CHR (10)
|| bd.ins_discipline_omschrijving,
NULL
),
NULL
)
ftype,
COALESCE (
NVL2 (
f.mld_opdr_key,
sd.ins_srtdiscipline_prefix
|| TO_CHAR (o.mld_melding_key)
|| '/'
|| o.mld_opdr_bedrijfopdr_volgnr,
NULL
),
NVL2 (
f.cnt_contract_key,
'C' || c.cnt_contract_nummer_intern
|| NVL2 (
c.cnt_contract_versie,
'.' || c.cnt_contract_versie,
''
),
NULL
),
NVL2 (f.bes_bestelopdr_key,
bo.bes_bestelopdr_id,
NULL),
NULL
)
opdrachtnr,
COALESCE (
NVL2 (f.mld_opdr_key,
o.mld_opdr_kosten,
NULL),
NVL2 (f.cnt_contract_key,
TO_NUMBER (NULL),
NULL),
NVL2 (
f.bes_bestelopdr_key,
( SELECT SUM(bes_bestelopdr_item_aantal
* bes_bestelopdr_item_prijs)
FROM bes_bestelopdr_item
WHERE bes_bestelopdr_key =
f.bes_bestelopdr_key
GROUP BY bes_bestelopdr_key),
NULL
),
TO_NUMBER (NULL)
)
opdrachtkosten,
f.fin_factuur_totaal bedrag_excl_BTW,
f.fin_factuur_totaal
+ f.fin_factuur_totaal_btw
bedrag_incl_BTW,
fs.fin_factuur_statuses_omschr,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all
WHERE prs_perslid_key =
(prs.getkpverantwoordelijke (
COALESCE (
o.prs_kostenplaats_key,
c.prs_kostenplaats_key,
bb.prs_kostenplaats_key
),
2,
-1
)))
budgethouder,
(SELECT prs_kostenplaats_nr
|| ' '
|| prs_kostenplaats_omschrijving
FROM prs_kostenplaats
WHERE prs_kostenplaats_key =
COALESCE (
o.prs_kostenplaats_key,
c.prs_kostenplaats_key,
bb.prs_kostenplaats_key
))
kostenplaats
FROM fin_factuur f,
fin_factuur_statuses fs,
mld_opdr o,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
cnt_contract c,
cnt_discipline cd,
bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bi,
bes_bestelling bb,
bes_srtdeel bs,
bes_srtgroep bg,
bes_discipline bd
WHERE f.fin_factuur_statuses_key =
fs.fin_factuur_statuses_key
AND f.mld_opdr_key = o.mld_opdr_key(+)
AND o.mld_melding_key =
m.mld_melding_key(+)
AND m.mld_stdmelding_key =
sm.mld_stdmelding_key(+)
AND sm.mld_ins_discipline_key =
md.ins_discipline_key(+)
AND md.ins_srtdiscipline_key =
sd.ins_srtdiscipline_key(+)
AND f.cnt_contract_key =
c.cnt_contract_key(+)
AND c.ins_discipline_key =
cd.ins_discipline_key(+)
AND f.bes_bestelopdr_key =
bo.bes_bestelopdr_key(+)
AND bo.bes_bestelopdr_key =
boi.bes_bestelopdr_key(+)
AND boi.bes_bestelopdr_item_posnr(+) = 1
AND boi.bes_bestelopdr_item_key =
bi.bes_bestelopdr_item_key(+)
AND bi.bes_bestelling_key =
bb.bes_bestelling_key(+)
AND bi.bes_srtdeel_key =
bs.bes_srtdeel_key(+)
AND bs.bes_srtgroep_key =
bg.bes_srtgroep_key(+)
AND bg.ins_discipline_key =
bd.ins_discipline_key(+)) x
LEFT JOIN -- Tracking toevoegen
fac_tracking finnew
ON x.factuurnr_intern = finnew.fac_tracking_refkey
AND finnew.fac_srtnotificatie_key = 141
LEFT JOIN
( SELECT fac_tracking_refkey, COUNT ( * ) aant
FROM fac_tracking
WHERE fac_srtnotificatie_key = 142
GROUP BY fac_tracking_refkey) finupd
ON x.factuurnr_intern = finupd.fac_tracking_refkey
LEFT JOIN
( SELECT fac_tracking_refkey,
MIN (fac_tracking_datum) min_datum,
MIN (prs_perslid_key) prs_perslid_key,
COUNT ( * ) aant -- >1, dan niet standaard!
FROM fac_tracking
WHERE fac_srtnotificatie_key = 143
GROUP BY fac_tracking_refkey) finfok
ON x.factuurnr_intern = finfok.fac_tracking_refkey
LEFT JOIN
( SELECT fac_tracking_refkey, COUNT ( * ) aant
FROM fac_tracking
WHERE fac_srtnotificatie_key = 153
GROUP BY fac_tracking_refkey) finfun
ON x.factuurnr_intern = finfun.fac_tracking_refkey;
/* OUDE VERSIE
CREATE OR REPLACE VIEW uwva_v_rap_fin_factureergedrax
(
fclt_f_nr,
fclt_d_factuurdatum,
fclt_f_uitvoerende,
fclt_f_factuurnr,
soort,
opdrachtnr,
opdrachtkosten,
excl_btw,
incl_btw,
fclt_f_status,
budgethouder,
kostenplaats,
fclt_f_doorloop
)
AS
SELECT TO_CHAR (x.factuurnr_intern),
TO_CHAR (x.factuur_datum, 'DD-MM-YYYY'),
x.uitvoerende,
x.factuurnr_extern,
x.ftype,
x.opdrachtnr,
x.opdrachtkosten,
x.bedrag_excl_BTW,
x.bedrag_incl_BTW,
x.fin_factuur_statuses_omschr,
x.budgethouder,
x.kostenplaats,
DECODE (
finupd.aant,
NULL, -- Factuur nooit gemuteerd
DECODE (
finfun.aant,
NULL, -- Akkoord nooit geannuleerd
DECODE (
finfok.aant,
NULL, -- Nog niet akkoord
DECODE (
x.disckey,
NULL,
'Wit/Speciaal',
DECODE (fin.tolerantiematch (x.disckey,
SUBSTR (x.ftype, 1, 1),
x.bedrag_incl_BTW,
x.opdrachtkosten),
1, 'Groen/Nog niet akkoord',
'Rood/Nog niet akkoord')
),
1, -- In 1x akkoord
DECODE (
FLOOR( (finfok.min_datum
- COALESCE (finnew.fac_tracking_datum,
x.factuur_datum))
* 24
* 60),
DECODE (finfok.prs_perslid_key, NULL, 0, NULL),
'Glad/Direct akkoord', -- Binnen minuut door Facilitor
DECODE (fin.tolerantiematch (x.disckey,
SUBSTR (x.ftype, 1, 1),
x.bedrag_incl_BTW,
x.opdrachtkosten),
1, 'Groen/Later akkoord',
'Rood/Later akkoord')
),
'Wit/Speciaal' -- >1 akkoord/nooit geannuleerd; kan niet?
),
'Wit/Speciaal' -- Akkoord geannuleerd!
),
'Wit/Speciaal' -- Factuur gemuteerd!
)
FROM (SELECT f.fin_factuur_key factuurnr_intern,
f.fin_factuur_statuses_key,
f.fin_factuur_datum factuur_datum,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE prs_bedrijf_key =
COALESCE (
o.mld_uitvoerende_keys,
c.cnt_prs_bedrijf_key,
bo.prs_bedrijf_key
))
uitvoerende,
f.fin_factuur_nr factuurnr_extern,
COALESCE (
NVL2 (f.mld_opdr_key,
md.ins_discipline_key,
NULL),
NVL2 (f.cnt_contract_key,
cd.ins_discipline_key,
NULL),
NVL2 (
f.bes_bestelopdr_key,
(SELECT MIN (bg.ins_discipline_key)
FROM bes_bestelopdr_item boi,
bes_bestelling_item bi,
bes_srtdeel bs,
bes_srtgroep bg
WHERE boi.bes_bestelopdr_key =
bo.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key =
bi.bes_bestelopdr_item_key
AND bi.bes_srtdeel_key =
bs.bes_srtdeel_key
AND bs.bes_srtgroep_key =
bg.bes_srtgroep_key),
NULL
),
TO_NUMBER (NULL)
)
disckey,
COALESCE (
NVL2 (
f.mld_opdr_key,
'Opdracht'
|| CHR (13)
|| CHR (10)
|| sm.mld_stdmelding_omschrijving,
NULL
),
NVL2 (
f.cnt_contract_key,
'Contract'
|| CHR (13)
|| CHR (10)
|| cd.ins_discipline_omschrijving,
NULL
),
NVL2 (
f.bes_bestelopdr_key,
'Bestelling' || CHR (13) || CHR (10)
|| (SELECT MIN(ins_discipline_omschrijving)
FROM bes_bestelopdr_item boi,
bes_bestelling_item bi,
bes_srtdeel bs,
bes_srtgroep bg,
bes_discipline bd
WHERE boi.bes_bestelopdr_key =
bo.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key =
bi.bes_bestelopdr_item_key
AND bi.bes_srtdeel_key =
bs.bes_srtdeel_key
AND bs.bes_srtgroep_key =
bg.bes_srtgroep_key
AND bg.ins_discipline_key =
bd.ins_discipline_key),
NULL
),
NULL
)
ftype,
COALESCE (
NVL2 (
f.mld_opdr_key,
sd.ins_srtdiscipline_prefix
|| TO_CHAR (o.mld_melding_key)
|| '/'
|| o.mld_opdr_bedrijfopdr_volgnr,
NULL
),
NVL2 (
f.cnt_contract_key,
'C' || c.cnt_contract_nummer_intern
|| NVL2 (
c.cnt_contract_versie,
'.' || c.cnt_contract_versie,
''
),
NULL
),
NVL2 (f.bes_bestelopdr_key,
bo.bes_bestelopdr_id,
NULL),
NULL
)
opdrachtnr,
COALESCE (
NVL2 (f.mld_opdr_key,
o.mld_opdr_kosten,
NULL),
NVL2 (f.cnt_contract_key,
TO_NUMBER (NULL),
NULL),
NVL2 (
f.bes_bestelopdr_key,
( SELECT SUM(bes_bestelopdr_item_aantal
* bes_bestelopdr_item_prijs)
FROM bes_bestelopdr_item
WHERE bes_bestelopdr_key =
f.bes_bestelopdr_key
GROUP BY bes_bestelopdr_key),
NULL
),
TO_NUMBER (NULL)
)
opdrachtkosten,
f.fin_factuur_totaal bedrag_excl_BTW,
f.fin_factuur_totaal
+ f.fin_factuur_totaal_btw
bedrag_incl_BTW,
fs.fin_factuur_statuses_omschr,
(SELECT pf.prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key =
f.budgethouder)
budgethouder,
k.prs_kostenplaats_nr
|| ' '
|| k.prs_kostenplaats_omschrijving
kostenplaats
FROM (SELECT prs.getkpverantwoordelijke (
prs_kostenplaats_key,
2,
-1
)
budgethouder,
f.*
FROM (SELECT fin.getfactuurkostenplaats(f.fin_factuur_key)
prs_kostenplaats_key,
f.*
FROM fin_factuur f) f) f,
prs_kostenplaats k,
fin_factuur_statuses fs,
mld_opdr o,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
cnt_contract c,
cnt_discipline cd,
bes_bestelopdr bo
WHERE f.prs_kostenplaats_key =
k.prs_kostenplaats_key(+)
AND f.fin_factuur_statuses_key =
fs.fin_factuur_statuses_key
AND f.mld_opdr_key = o.mld_opdr_key(+)
AND o.mld_melding_key =
m.mld_melding_key(+)
AND m.mld_stdmelding_key =
sm.mld_stdmelding_key(+)
AND sm.mld_ins_discipline_key =
md.ins_discipline_key(+)
AND md.ins_srtdiscipline_key =
sd.ins_srtdiscipline_key(+)
AND f.cnt_contract_key =
c.cnt_contract_key(+)
AND c.ins_discipline_key =
cd.ins_discipline_key(+)
AND f.bes_bestelopdr_key =
bo.bes_bestelopdr_key(+)) x
LEFT JOIN -- Tracking toevoegen
fac_tracking finnew
ON x.factuurnr_intern = finnew.fac_tracking_refkey
AND finnew.fac_srtnotificatie_key = 141
LEFT JOIN
( SELECT fac_tracking_refkey, COUNT ( * ) aant
FROM fac_tracking
WHERE fac_srtnotificatie_key = 142
GROUP BY fac_tracking_refkey) finupd
ON x.factuurnr_intern = finupd.fac_tracking_refkey
LEFT JOIN
( SELECT fac_tracking_refkey,
MIN (fac_tracking_datum) min_datum,
MIN (prs_perslid_key) prs_perslid_key,
COUNT ( * ) aant -- >1, dan niet standaard!
FROM fac_tracking
WHERE fac_srtnotificatie_key = 143
GROUP BY fac_tracking_refkey) finfok
ON x.factuurnr_intern = finfok.fac_tracking_refkey
LEFT JOIN
( SELECT fac_tracking_refkey, COUNT ( * ) aant
FROM fac_tracking
WHERE fac_srtnotificatie_key = 153
GROUP BY fac_tracking_refkey) finfun
ON x.factuurnr_intern = finfun.fac_tracking_refkey;
*/
CREATE OR REPLACE VIEW UWVA_V_RAP_FIN_DUBBEL_FACTUREN
(
FCLT_F_BOC_TYPE,
FCLT_F_OPDRACHTNR,
SERVICEPUNT,
PANDCODE,
KOSTENPLAATS,
PRODUCTGROEP,
MELDING,
OMSCHRIJVING,
FACTUUR_DATUM,
FACTUUR_NR,
FACTUUR_STATUS
)
AS
SELECT boc.boc,
DECODE (boc.boc, 'Bestelling', TO_CHAR (boc.opdr_id), TO_CHAR (boc.opdr_nr)),
(SELECT alg_district_omschrijving
FROM alg_locatie l, alg_district d
WHERE l.alg_locatie_key = loc_key
AND l.alg_district_key = d.alg_district_key),
(SELECT alg_locatie_code
FROM alg_locatie
WHERE alg_locatie_key = loc_key),
boc.kpn,
boc.productgroep,
boc.melding,
boc.oms,
boc.factuur_datum,
boc.factuur_nr,
boc.factuur_status
FROM ( -- B-facturen
SELECT 'Bestelling' boc,
f.bes_bestelopdr_key opdr_nr,
bo.bes_bestelopdr_id opdr_id,
x.loc_key,
x.kpn,
x.productgroep,
NULL melding,
NULL oms,
f.fin_factuur_datum factuur_datum,
f.fin_factuur_nr factuur_nr,
fs.fin_factuur_statuses_omschr factuur_status
FROM fin_factuur f,
( SELECT boi.bes_bestelopdr_key,
kp.prs_kostenplaats_nr kpn,
td.ins_discipline_omschrijving
productgroep,
DECODE (COUNT ( * ),
1, MIN (pw.alg_locatie_key),
NULL)
loc_key
FROM bes_bestelopdr_item boi,
bes_bestelling_item bbi,
bes_srtdeel sd,
bes_srtgroep sg,
ins_tab_discipline td,
prs_kostensoort ks,
bes_bestelling b,
prs_v_aanwezigkostenplaats kp,
prs_v_werkplekperslid_gegevens pw,
alg_locatie l
WHERE boi.bes_bestelopdr_item_key =
bbi.bes_bestelopdr_item_key
AND bbi.bes_srtdeel_key =
sd.bes_srtdeel_key
AND sd.bes_srtgroep_key =
sg.bes_srtgroep_key
AND sg.ins_discipline_key =
td.ins_discipline_key
AND td.prs_kostensoort_key =
ks.prs_kostensoort_key(+)
AND bbi.bes_bestelling_key =
b.bes_bestelling_key
AND b.prs_kostenplaats_key =
kp.prs_kostenplaats_key
AND b.prs_perslid_key =
pw.prs_perslid_key(+)
GROUP BY boi.bes_bestelopdr_key,
kp.prs_kostenplaats_nr,
td.ins_discipline_omschrijving) x,
bes_bestelopdr bo,
fin_factuur_statuses fs
WHERE f.bes_bestelopdr_key = x.bes_bestelopdr_key
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND f.fin_factuur_statuses_key =
fs.fin_factuur_statuses_key
UNION ALL -- O-facturen
SELECT 'Opdracht',
f.mld_opdr_key opdr_nr,
NULL opdr_id,
m.mld_alg_locatie_key,
kp.prs_kostenplaats_nr kpn,
td.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving melding,
o.mld_opdr_omschrijving oms,
f.fin_factuur_datum factuur_datum,
f.fin_factuur_nr factuur_nr,
fs.fin_factuur_statuses_omschr factuur_status
FROM fin_factuur f,
mld_opdr o,
mld_melding m,
mld_stdmelding sm,
ins_tab_discipline td,
prs_v_aanwezigkostenplaats kp,
fin_factuur_statuses fs
WHERE f.mld_opdr_key = o.mld_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key =
td.ins_discipline_key
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND f.fin_factuur_statuses_key =
fs.fin_factuur_statuses_key
UNION ALL -- C-facturen
SELECT 'Contract',
f.cnt_contract_key opdr_nr,
NULL opdr_id,
NULL loc_key,
kp.prs_kostenplaats_nr kpn,
td.ins_discipline_omschrijving,
NULL,
NULL,
f.fin_factuur_datum factuur_datum,
f.fin_factuur_nr factuur_nr,
fs.fin_factuur_statuses_omschr factuur_status
FROM fin_factuur f,
cnt_contract c,
ins_tab_discipline td,
prs_v_aanwezigkostenplaats kp,
fin_factuur_statuses fs
WHERE f.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = td.ins_discipline_key
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND f.fin_factuur_statuses_key =
fs.fin_factuur_statuses_key) boc
LEFT JOIN
( SELECT COALESCE (f.bes_bestelopdr_key,
f.mld_opdr_key,
f.cnt_contract_key)
opdr_nr,
COUNT ( * ) aantal
FROM fin_factuur f
GROUP BY COALESCE (f.bes_bestelopdr_key,
f.mld_opdr_key,
f.cnt_contract_key)) fact
ON boc.opdr_nr = fact.opdr_nr
WHERE fact.aantal > 1;
-- UWVA#21510/ALBRON-artikelen
/* Formatted on 24-4-2012 14:14:44 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_cat1_actual
(
fclt_f_lev_datum,
fclt_f_gebouwcode,
--fclt_3d_gebouw_key,
fclt_f_voorziening,
aantal,
prijs_per_stuk,
totaal,
totaal_afgemeld,
res_id,
fclt_f_kostenplaats_nr,
kostenplaats_oms
)
AS
SELECT lev_datum,
gebouw_code,
--gebouw_key,
res_voorziening,
SUM (aantal),
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ','),
REPLACE (TO_CHAR (SUM (prijs), '9999990.99'), '.', ','),
SUM (verw_prijs),
res_id,
kostenplaats_nr,
kostenplaats_oms
FROM (SELECT TO_CHAR (res_geg.lev_datum, 'YYYY-MM-DD') lev_datum,
DECODE (
res_geg.alg_ruimte_key,
NULL,
'Onbekend',
(SELECT alg_gebouw_code
FROM alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE res_geg.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key =
v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key)
)
gebouw_code,
--g.alg_gebouw_key gebouw_key,
res_geg.res_id,
COALESCE (
actkpn.afd_kostenplaats,
'*VERVALLEN['
|| allkpn.prs_kostenplaats_upper
|| ']'
)
kostenplaats_nr,
COALESCE (
actkpn.afd_omschrijving,
'*VERVALLEN['
|| allkpn.prs_kostenplaats_omschrijving
|| ']'
)
kostenplaats_oms,
--DECODE (
-- actkpn.afd_kostenplaats,
-- NULL,
-- res_geg.res_id,
-- '[geen bijzonderheden]'
--)
-- res_id,
--DECODE (
-- actkpn.afd_kostenplaats,
-- NULL,
-- '*VERVALLEN['
-- || allkpn.prs_kostenplaats_upper
-- || ']',
-- '[geen bijzonderheden]'
--)
-- kostenplaats_nr,
--DECODE (
-- actkpn.afd_kostenplaats,
-- NULL,
-- '*VERVALLEN['
-- || allkpn.prs_kostenplaats_omschrijving
-- || ']',
-- '[geen bijzonderheden]'
--)
-- kostenplaats_oms,
res_geg.res_item_key,
res_geg.res_voorziening,
res_geg.aantal,
res_geg.stuksprijs,
res_geg.verw_prijs,
prijs
FROM (SELECT COALESCE (rar1.alg_ruimte_key,
rar2.alg_ruimte_key)
alg_ruimte_key,
rrr.prs_kostenplaats_key,
rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
res_id,
TRUNC (rra.res_rsv_artikel_levering)
lev_datum,
ra.res_discipline_key res_ins_discipline_key,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| NVL (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal
* ra.res_artikel_prijs
prijs
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
res_v_aanwezigrsv_artikel rra,
(SELECT art.*, dis.prs_kostensoort_key
FROM res_artikel art, res_discipline dis
WHERE art.res_discipline_key =
dis.ins_discipline_key
AND dis.ins_discipline_omschrijving LIKE
'%(a)') ra,
prs_kostensoort ks
WHERE rrr.alg_ruimte_key IS NULL
AND rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key
AND rro.res_ruimte_key =
rar1.res_ruimte_key(+)
AND rro.res_ruimte_key =
rar2.res_ruimte_key(+)
AND rrr.res_rsv_ruimte_key =
rra.res_rsv_ruimte_key
AND rra.res_status_bo_key = 5
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.prs_kostensoort_key =
ks.prs_kostensoort_key
AND ks.prs_kostensoort_doorbelasten = 1
AND rra.res_rsv_artikel_levering >=
TO_DATE ('20120101', 'yyyymmdd')
UNION ALL
SELECT rrr.alg_ruimte_key alg_ruimte_key,
rrr.prs_kostenplaats_key,
rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
resid,
TRUNC (rra.res_rsv_artikel_levering)
lev_datum,
ra.res_discipline_key res_ins_discipline_key,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| NVL (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal
* ra.res_artikel_prijs
prijs
FROM res_rsv_ruimte rrr,
res_v_aanwezigrsv_artikel rra,
(SELECT art.*, dis.prs_kostensoort_key
FROM res_artikel art, res_discipline dis
WHERE art.res_discipline_key =
dis.ins_discipline_key
AND dis.ins_discipline_omschrijving LIKE
'%(a)') ra,
prs_kostensoort ks
WHERE rrr.res_ruimte_opstel_key IS NULL
AND rrr.res_rsv_ruimte_key =
rra.res_rsv_ruimte_key
AND rra.res_status_bo_key = 5
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.prs_kostensoort_key =
ks.prs_kostensoort_key
AND ks.prs_kostensoort_doorbelasten = 1
AND rra.res_rsv_artikel_levering >=
TO_DATE ('20120101', 'yyyymmdd'))
res_geg,
prs_kostenplaats allkpn,
uwva_v_afd_plus_prj_kpn actkpn
WHERE res_geg.prs_kostenplaats_key =
allkpn.prs_kostenplaats_key
AND res_geg.prs_kostenplaats_key =
actkpn.kostenplaats_key(+))
GROUP BY lev_datum,
gebouw_code,
--gebouw_key,
res_voorziening,
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ','),
res_id,
kostenplaats_nr,
kostenplaats_oms;
/* Formatted on 12-3-2012 12:32:16 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_cat1_frozen
(
fclt_f_exp_datum,
fclt_f_gebouwcode,
--fclt_3d_gebouw_key,
fclt_f_voorziening,
aantal,
prijs_per_stuk,
totaal,
totaal_verwerkt
)
AS
SELECT exp_datum,
gebouw_code,
--gebouw_key,
res_voorziening,
SUM (aantal),
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ','),
REPLACE (TO_CHAR (SUM (prijs), '9999990.99'), '.', ','),
SUM (verw_prijs)
FROM (SELECT TO_CHAR (res_geg.exp_datum, 'YYYY-MM-DD') exp_datum,
DECODE (
res_geg.alg_ruimte_key,
NULL,
'Onbekend',
(SELECT alg_gebouw_code
FROM alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE res_geg.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key =
v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key)
)
gebouw_code,
--g.alg_gebouw_key gebouw_key,
res_geg.res_item_key,
res_geg.res_voorziening,
res_geg.aantal,
res_geg.stuksprijs,
res_geg.verw_prijs,
prijs
FROM (SELECT COALESCE (rar1.alg_ruimte_key,
rar2.alg_ruimte_key)
alg_ruimte_key,
TRUNC (rra.res_rsv_artikel_verwerkt)
exp_datum,
ra.res_discipline_key res_ins_discipline_key,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| NVL (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal
* ra.res_artikel_prijs
prijs
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
res_v_aanwezigrsv_artikel rra,
(SELECT art.*
FROM res_artikel art, res_discipline dis
WHERE art.res_discipline_key =
dis.ins_discipline_key
AND dis.ins_discipline_omschrijving LIKE
'%(a)') ra
WHERE rrr.alg_ruimte_key IS NULL
AND rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key
AND rro.res_ruimte_key =
rar1.res_ruimte_key(+)
AND rro.res_ruimte_key =
rar2.res_ruimte_key(+)
AND rrr.res_rsv_ruimte_key =
rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND rra.res_rsv_artikel_verwerkt >
TRUNC (ADD_MONTHS (SYSDATE, -12),
'YYYY')
UNION ALL
SELECT rrr.alg_ruimte_key alg_ruimte_key,
TRUNC (rra.res_rsv_artikel_verwerkt)
exp_datum,
ra.res_discipline_key res_ins_discipline_key,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| NVL (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal
* ra.res_artikel_prijs
prijs
FROM res_rsv_ruimte rrr,
res_v_aanwezigrsv_artikel rra,
(SELECT art.*
FROM res_artikel art, res_discipline dis
WHERE art.res_discipline_key =
dis.ins_discipline_key
AND dis.ins_discipline_omschrijving LIKE
'%(a)') ra
WHERE rrr.res_ruimte_opstel_key IS NULL
AND rrr.res_rsv_ruimte_key =
rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND rra.res_rsv_artikel_verwerkt >
TRUNC (ADD_MONTHS (SYSDATE, -12),
'YYYY')) res_geg)
GROUP BY exp_datum,
gebouw_code,
--gebouw_key,
res_voorziening,
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ',');
-- UWVA#21510/ISS-artikelen
/* Formatted on 24-4-2012 14:14:44 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_cat2_actual
(
fclt_f_lev_datum,
fclt_f_gebouwcode,
--fclt_3d_gebouw_key,
fclt_f_voorziening,
aantal,
prijs_per_stuk,
totaal,
totaal_afgemeld,
res_id,
fclt_f_kostenplaats_nr,
kostenplaats_oms
)
AS
SELECT lev_datum,
gebouw_code,
--gebouw_key,
res_voorziening,
SUM (aantal),
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ','),
REPLACE (TO_CHAR (SUM (prijs), '9999990.99'), '.', ','),
SUM (verw_prijs),
res_id,
kostenplaats_nr,
kostenplaats_oms
FROM (SELECT TO_CHAR (res_geg.lev_datum, 'YYYY-MM-DD') lev_datum,
DECODE (
res_geg.alg_ruimte_key,
NULL,
'Onbekend',
(SELECT alg_gebouw_code
FROM alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE res_geg.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key =
v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key)
)
gebouw_code,
--g.alg_gebouw_key gebouw_key,
res_geg.res_id,
COALESCE (
actkpn.afd_kostenplaats,
'*VERVALLEN['
|| allkpn.prs_kostenplaats_upper
|| ']'
)
kostenplaats_nr,
COALESCE (
actkpn.afd_omschrijving,
'*VERVALLEN['
|| allkpn.prs_kostenplaats_omschrijving
|| ']'
)
kostenplaats_oms,
--DECODE (
-- actkpn.afd_kostenplaats,
-- NULL,
-- res_geg.res_id,
-- '[geen bijzonderheden]'
--)
-- res_id,
--DECODE (
-- actkpn.afd_kostenplaats,
-- NULL,
-- '*VERVALLEN['
-- || allkpn.prs_kostenplaats_upper
-- || ']',
-- '[geen bijzonderheden]'
--)
-- kostenplaats_nr,
--DECODE (
-- actkpn.afd_kostenplaats,
-- NULL,
-- '*VERVALLEN['
-- || allkpn.prs_kostenplaats_omschrijving
-- || ']',
-- '[geen bijzonderheden]'
--)
-- kostenplaats_oms,
res_geg.res_item_key,
res_geg.res_voorziening,
res_geg.aantal,
res_geg.stuksprijs,
res_geg.verw_prijs,
prijs
FROM (SELECT COALESCE (rar1.alg_ruimte_key,
rar2.alg_ruimte_key)
alg_ruimte_key,
rrr.prs_kostenplaats_key,
rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
res_id,
TRUNC (rra.res_rsv_artikel_levering)
lev_datum,
ra.res_discipline_key res_ins_discipline_key,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| NVL (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal
* ra.res_artikel_prijs
prijs
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
res_v_aanwezigrsv_artikel rra,
(SELECT art.*, dis.prs_kostensoort_key
FROM res_artikel art, res_discipline dis
WHERE art.res_discipline_key =
dis.ins_discipline_key
AND dis.ins_discipline_omschrijving LIKE
'%(i)') ra,
prs_kostensoort ks
WHERE rrr.alg_ruimte_key IS NULL
AND rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key
AND rro.res_ruimte_key =
rar1.res_ruimte_key(+)
AND rro.res_ruimte_key =
rar2.res_ruimte_key(+)
AND rrr.res_rsv_ruimte_key =
rra.res_rsv_ruimte_key
AND rra.res_status_bo_key = 5
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.prs_kostensoort_key =
ks.prs_kostensoort_key
AND ks.prs_kostensoort_doorbelasten = 1
AND rra.res_rsv_artikel_levering >=
TO_DATE ('20120101', 'yyyymmdd')
UNION ALL
SELECT rrr.alg_ruimte_key alg_ruimte_key,
rrr.prs_kostenplaats_key,
rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
resid,
TRUNC (rra.res_rsv_artikel_levering)
lev_datum,
ra.res_discipline_key res_ins_discipline_key,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| NVL (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal
* ra.res_artikel_prijs
prijs
FROM res_rsv_ruimte rrr,
res_v_aanwezigrsv_artikel rra,
(SELECT art.*, dis.prs_kostensoort_key
FROM res_artikel art, res_discipline dis
WHERE art.res_discipline_key =
dis.ins_discipline_key
AND dis.ins_discipline_omschrijving LIKE
'%(i)') ra,
prs_kostensoort ks
WHERE rrr.res_ruimte_opstel_key IS NULL
AND rrr.res_rsv_ruimte_key =
rra.res_rsv_ruimte_key
AND rra.res_status_bo_key = 5
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.prs_kostensoort_key =
ks.prs_kostensoort_key
AND ks.prs_kostensoort_doorbelasten = 1
AND rra.res_rsv_artikel_levering >=
TO_DATE ('20120101', 'yyyymmdd'))
res_geg,
prs_kostenplaats allkpn,
uwva_v_afd_plus_prj_kpn actkpn
WHERE res_geg.prs_kostenplaats_key =
allkpn.prs_kostenplaats_key
AND res_geg.prs_kostenplaats_key =
actkpn.kostenplaats_key(+))
GROUP BY lev_datum,
gebouw_code,
--gebouw_key,
res_voorziening,
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ','),
res_id,
kostenplaats_nr,
kostenplaats_oms;
/* Formatted on 12-3-2012 12:32:16 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_cat2_frozen
(
fclt_f_exp_datum,
fclt_f_gebouwcode,
--fclt_3d_gebouw_key,
fclt_f_voorziening,
aantal,
prijs_per_stuk,
totaal,
totaal_verwerkt
)
AS
SELECT exp_datum,
gebouw_code,
--gebouw_key,
res_voorziening,
SUM (aantal),
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ','),
REPLACE (TO_CHAR (SUM (prijs), '9999990.99'), '.', ','),
SUM (verw_prijs)
FROM (SELECT TO_CHAR (res_geg.exp_datum, 'YYYY-MM-DD') exp_datum,
DECODE (
res_geg.alg_ruimte_key,
NULL,
'Onbekend',
(SELECT alg_gebouw_code
FROM alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE res_geg.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key =
v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key)
)
gebouw_code,
--g.alg_gebouw_key gebouw_key,
res_geg.res_item_key,
res_geg.res_voorziening,
res_geg.aantal,
res_geg.stuksprijs,
res_geg.verw_prijs,
prijs
FROM (SELECT COALESCE (rar1.alg_ruimte_key,
rar2.alg_ruimte_key)
alg_ruimte_key,
TRUNC (rra.res_rsv_artikel_verwerkt)
exp_datum,
ra.res_discipline_key res_ins_discipline_key,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| NVL (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal
* ra.res_artikel_prijs
prijs
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
res_v_aanwezigrsv_artikel rra,
(SELECT art.*
FROM res_artikel art, res_discipline dis
WHERE art.res_discipline_key =
dis.ins_discipline_key
AND dis.ins_discipline_omschrijving LIKE
'%(i)') ra
WHERE rrr.alg_ruimte_key IS NULL
AND rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key
AND rro.res_ruimte_key =
rar1.res_ruimte_key(+)
AND rro.res_ruimte_key =
rar2.res_ruimte_key(+)
AND rrr.res_rsv_ruimte_key =
rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND rra.res_rsv_artikel_verwerkt >
TRUNC (ADD_MONTHS (SYSDATE, -12),
'YYYY')
UNION ALL
SELECT rrr.alg_ruimte_key alg_ruimte_key,
TRUNC (rra.res_rsv_artikel_verwerkt)
exp_datum,
ra.res_discipline_key res_ins_discipline_key,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| NVL (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal
* ra.res_artikel_prijs
prijs
FROM res_rsv_ruimte rrr,
res_v_aanwezigrsv_artikel rra,
(SELECT art.*
FROM res_artikel art, res_discipline dis
WHERE art.res_discipline_key =
dis.ins_discipline_key
AND dis.ins_discipline_omschrijving LIKE
'%(i)') ra
WHERE rrr.res_ruimte_opstel_key IS NULL
AND rrr.res_rsv_ruimte_key =
rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND rra.res_rsv_artikel_verwerkt >
TRUNC (ADD_MONTHS (SYSDATE, -12),
'YYYY')) res_geg)
GROUP BY exp_datum,
gebouw_code,
--gebouw_key,
res_voorziening,
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ',');
-- UWVA#24721/Catering-kavels per 2013!
/* Formatted on 10-2-2014 11:36:12 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW uwva_v_rap_cat_actual
(
fclt_f_kavel,
fclt_f_lev_datum,
fclt_f_gebouwcode,
fclt_3d_discipline_key,
fclt_f_catalogus,
fclt_f_voorziening,
aantal,
prijs_per_stuk,
btw_perc,
tot_excl,
tot_afgemeld_excl,
tot_afgemeld_btw,
tot_afgemeld_incl,
res_id,
fclt_f_kostenplaats_nr,
kostenplaats_oms
)
AS
SELECT kavel,
lev_datum,
gebouw_code,
ins_discipline_key,
ins_discipline_omschrijving,
res_voorziening,
SUM (aantal),
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ','),
REPLACE (TO_CHAR (btw_perc, '9999990.99'), '.', ','),
REPLACE (TO_CHAR (SUM (prijs), '9999990.99'), '.', ','),
SUM (verw_prijs),
SUM (btw),
SUM (verw_prijs + btw),
res_id,
kostenplaats_nr,
kostenplaats_oms
FROM (SELECT z.kavel,
TO_CHAR (x.res_rsv_artikel_levering, 'YYYY-MM-DD')
lev_datum,
DECODE (x.alg_ruimte_key,
NULL, 'Onbekend',
y.alg_gebouw_upper)
gebouw_code,
x.ins_discipline_key,
x.ins_discipline_omschrijving,
x.res_item_key,
x.res_voorziening,
x.aantal,
x.stuksprijs,
x.btw_perc,
x.prijs,
x.verw_prijs,
ROUND ( (x.verw_prijs * x.btw_perc) / 100, 2) btw,
x.res_id,
COALESCE (actkpn.afd_kostenplaats,
'*VERVALLEN[' || x.prs_kostenplaats_upper || ']')
kostenplaats_nr,
COALESCE (
actkpn.afd_omschrijving,
'*VERVALLEN[' || x.prs_kostenplaats_omschrijving || ']')
kostenplaats_oms
FROM (SELECT COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key)
alg_ruimte_key,
rra.res_rsv_artikel_levering,
rd.ins_discipline_key,
rd.ins_discipline_omschrijving,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| COALESCE (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
ra.res_artikel_btw btw_perc,
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs
prijs,
rra.res_rsv_artikel_prijs verw_prijs,
rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
res_id,
rrr.prs_kostenplaats_key,
kp.prs_kostenplaats_upper,
kp.prs_kostenplaats_omschrijving
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
res_v_aanwezigrsv_artikel rra,
res_artikel ra,
res_discipline rd,
prs_kostensoort ks,
prs_kostenplaats kp
WHERE rrr.alg_ruimte_key IS NULL
AND rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_status_bo_key = 5
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = rd.ins_discipline_key
AND (rd.ins_discipline_omschrijving LIKE '%(N)'
OR rd.ins_discipline_omschrijving LIKE '%(Z)')
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key
AND ks.prs_kostensoort_doorbelasten = 1
AND rrr.prs_kostenplaats_key =
kp.prs_kostenplaats_key
UNION ALL
SELECT rrr.alg_ruimte_key,
rra.res_rsv_artikel_levering,
rd.ins_discipline_key,
rd.ins_discipline_omschrijving,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| COALESCE (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
ra.res_artikel_btw btw_perc,
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs
prijs,
rra.res_rsv_artikel_prijs verw_prijs,
rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
resid,
rrr.prs_kostenplaats_key,
kp.prs_kostenplaats_upper,
kp.prs_kostenplaats_omschrijving
FROM res_rsv_ruimte rrr,
res_v_aanwezigrsv_artikel rra,
res_artikel ra,
res_discipline rd,
prs_kostensoort ks,
prs_kostenplaats kp
WHERE rrr.res_ruimte_opstel_key IS NULL
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_status_bo_key = 5
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = rd.ins_discipline_key
AND (rd.ins_discipline_omschrijving LIKE '%(N)'
OR rd.ins_discipline_omschrijving LIKE '%(Z)')
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key
AND ks.prs_kostensoort_doorbelasten = 1
AND rrr.prs_kostenplaats_key =
kp.prs_kostenplaats_key) x
LEFT JOIN alg_v_ruimte_gegevens_all y
ON x.alg_ruimte_key = y.alg_ruimte_key
LEFT JOIN (SELECT ok.alg_onrgoed_key,
ud.fac_usrdata_omschr kavel
FROM alg_v_aanwezigonrgoedkenmerk ok,
fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1420 -- kavel
AND ok.alg_onrgoed_niveau = 'G'
--AND ud.fac_usrtab_key = 922
AND fac.safe_to_number (
ok.alg_onrgoedkenmerk_waarde) =
ud.fac_usrdata_key) z
ON y.alg_gebouw_key = z.alg_onrgoed_key
LEFT JOIN uwva_v_afd_plus_prj_kpn actkpn
ON x.prs_kostenplaats_key = actkpn.kostenplaats_key)
GROUP BY kavel,
lev_datum,
gebouw_code,
ins_discipline_key,
ins_discipline_omschrijving,
res_voorziening,
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ','),
REPLACE (TO_CHAR (btw_perc, '9999990.99'), '.', ','),
res_id,
kostenplaats_nr,
kostenplaats_oms;
CREATE OR REPLACE VIEW uwva_v_rap_catn_actual
AS
SELECT * FROM uwva_v_rap_cat_actual WHERE fclt_f_kavel = 'Noord';
CREATE OR REPLACE VIEW uwva_v_rap_catz_actual
AS
SELECT * FROM uwva_v_rap_cat_actual WHERE fclt_f_kavel = 'Zuid';
/* Formatted on 10-2-2014 11:36:42 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW uwva_v_rap_cat_frozen
(
fclt_f_exp_datum,
fclt_f_kavel,
fclt_f_gebouwcode,
fclt_3d_discipline_key,
fclt_f_catalogus,
fclt_f_voorziening,
aantal,
prijs_per_stuk,
btw_perc,
tot_excl,
tot_verwerkt_excl,
tot_verwerkt_btw,
tot_verwerkt_incl
)
AS
SELECT exp_datum,
kavel,
gebouw_code,
ins_discipline_key,
ins_discipline_omschrijving,
res_voorziening,
SUM (aantal),
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ','),
REPLACE (TO_CHAR (btw_perc, '9999990.99'), '.', ','),
REPLACE (TO_CHAR (SUM (prijs), '9999990.99'), '.', ','),
SUM (verw_prijs),
SUM (btw),
SUM (verw_prijs + btw)
FROM (SELECT TO_CHAR (x.exp_datum, 'YYYY-MM-DD') exp_datum,
z.kavel,
DECODE (x.alg_ruimte_key,
NULL, 'Onbekend',
y.alg_gebouw_upper)
gebouw_code,
x.ins_discipline_key,
x.ins_discipline_omschrijving,
x.res_item_key,
x.res_voorziening,
x.aantal,
x.stuksprijs,
x.btw_perc,
x.prijs,
x.verw_prijs,
ROUND ( (x.verw_prijs * x.btw_perc) / 100, 2) btw
FROM (SELECT COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key)
alg_ruimte_key,
TRUNC (rra.res_rsv_artikel_verwerkt) exp_datum,
rd.ins_discipline_key,
rd.ins_discipline_omschrijving,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| COALESCE (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
ra.res_artikel_btw btw_perc,
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs
prijs,
rra.res_rsv_artikel_prijs verw_prijs
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
res_v_aanwezigrsv_artikel rra,
res_artikel ra,
res_discipline rd
WHERE rrr.alg_ruimte_key IS NULL
AND rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = rd.ins_discipline_key
AND (rd.ins_discipline_omschrijving LIKE '%(N)'
OR rd.ins_discipline_omschrijving LIKE '%(Z)')
AND rra.res_rsv_artikel_verwerkt >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'YYYY')
UNION ALL
SELECT rrr.alg_ruimte_key alg_ruimte_key,
TRUNC (rra.res_rsv_artikel_verwerkt) exp_datum,
rd.ins_discipline_key,
rd.ins_discipline_omschrijving,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| COALESCE (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
ra.res_artikel_btw btw_perc,
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs
prijs,
rra.res_rsv_artikel_prijs verw_prijs
FROM res_rsv_ruimte rrr,
res_v_aanwezigrsv_artikel rra,
res_artikel ra,
res_discipline rd
WHERE rrr.res_ruimte_opstel_key IS NULL
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = rd.ins_discipline_key
AND (rd.ins_discipline_omschrijving LIKE '%(N)'
OR rd.ins_discipline_omschrijving LIKE '%(Z)')
AND rra.res_rsv_artikel_verwerkt >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'YYYY')) x
LEFT JOIN alg_v_ruimte_gegevens_all y
ON x.alg_ruimte_key = y.alg_ruimte_key
LEFT JOIN (SELECT ok.alg_onrgoed_key,
ud.fac_usrdata_omschr kavel
FROM alg_v_aanwezigonrgoedkenmerk ok,
fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1420 -- kavel
AND ok.alg_onrgoed_niveau = 'G'
--AND ud.fac_usrtab_key = 922
AND fac.safe_to_number (
ok.alg_onrgoedkenmerk_waarde) =
ud.fac_usrdata_key) z
ON y.alg_gebouw_key = z.alg_onrgoed_key)
GROUP BY exp_datum,
kavel,
gebouw_code,
ins_discipline_key,
ins_discipline_omschrijving,
res_voorziening,
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ','),
REPLACE (TO_CHAR (btw_perc, '9999990.99'), '.', ',');
CREATE OR REPLACE VIEW uwva_v_rap_catn_frozen
AS
SELECT * FROM uwva_v_rap_cat_frozen WHERE fclt_f_kavel = 'Noord';
CREATE OR REPLACE VIEW uwva_v_rapz_cat_frozen
AS
SELECT * FROM uwva_v_rap_cat_frozen WHERE fclt_f_kavel = 'Zuid';
--UWVA#30468
/* Formatted on 23-9-2014 16:54:06 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW uwva_v_rap_cat_frozen_details
(
fclt_f_exp_datum,
fclt_f_kavel,
res_id,
fclt_f_lev_datum,
fclt_f_gebouwcode,
fclt_3d_discipline_key,
fclt_f_catalogus,
fclt_f_voorziening,
aantal,
prijs_per_stuk,
btw_perc,
tot_excl,
tot_verwerkt_excl,
tot_verwerkt_btw,
tot_verwerkt_incl
)
AS
SELECT exp_datum,
kavel,
res_id,
lev_datum,
gebouw_code,
ins_discipline_key,
ins_discipline_omschrijving,
res_voorziening,
SUM (aantal),
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ','),
REPLACE (TO_CHAR (btw_perc, '9999990.99'), '.', ','),
REPLACE (TO_CHAR (SUM (prijs), '9999990.99'), '.', ','),
SUM (verw_prijs),
SUM (btw),
SUM (verw_prijs + btw)
FROM (SELECT TO_CHAR (x.exp_datum, 'YYYY-MM-DD') exp_datum,
z.kavel,
x.res_id,
TO_CHAR (x.res_rsv_artikel_levering, 'YYYY-MM-DD')
lev_datum,
DECODE (x.alg_ruimte_key,
NULL, 'Onbekend',
y.alg_gebouw_upper)
gebouw_code,
x.ins_discipline_key,
x.ins_discipline_omschrijving,
x.res_item_key,
x.res_voorziening,
x.aantal,
x.stuksprijs,
x.btw_perc,
x.prijs,
x.verw_prijs,
ROUND ( (x.verw_prijs * x.btw_perc) / 100, 2) btw
FROM (SELECT COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key)
alg_ruimte_key,
TRUNC (rra.res_rsv_artikel_verwerkt) exp_datum,
rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
res_id,
rra.res_rsv_artikel_levering,
rd.ins_discipline_key,
rd.ins_discipline_omschrijving,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| COALESCE (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
ra.res_artikel_btw btw_perc,
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs
prijs,
rra.res_rsv_artikel_prijs verw_prijs
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
res_v_aanwezigrsv_artikel rra,
res_artikel ra,
res_discipline rd
WHERE rrr.alg_ruimte_key IS NULL
AND rrr.res_ruimte_opstel_key =
rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = rd.ins_discipline_key
AND (rd.ins_discipline_omschrijving LIKE '%(N)'
OR rd.ins_discipline_omschrijving LIKE '%(Z)')
AND rra.res_rsv_artikel_verwerkt >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'YYYY')
UNION ALL
SELECT rrr.alg_ruimte_key alg_ruimte_key,
TRUNC (rra.res_rsv_artikel_verwerkt) exp_datum,
rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
res_id,
rra.res_rsv_artikel_levering,
rd.ins_discipline_key,
rd.ins_discipline_omschrijving,
res_rsv_artikel_key res_item_key,
LTRIM (ra.res_artikel_omschrijving)
|| ' ('
|| COALESCE (ra.res_artikel_eenheid, '')
|| ')'
res_voorziening,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_prijs stuksprijs,
ra.res_artikel_btw btw_perc,
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs
prijs,
rra.res_rsv_artikel_prijs verw_prijs
FROM res_rsv_ruimte rrr,
res_v_aanwezigrsv_artikel rra,
res_artikel ra,
res_discipline rd
WHERE rrr.res_ruimte_opstel_key IS NULL
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = rd.ins_discipline_key
AND (rd.ins_discipline_omschrijving LIKE '%(N)'
OR rd.ins_discipline_omschrijving LIKE '%(Z)')
AND rra.res_rsv_artikel_verwerkt >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'YYYY')) x
LEFT JOIN alg_v_ruimte_gegevens_all y
ON x.alg_ruimte_key = y.alg_ruimte_key
LEFT JOIN (SELECT ok.alg_onrgoed_key,
ud.fac_usrdata_omschr kavel
FROM alg_v_aanwezigonrgoedkenmerk ok,
fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1420 -- kavel
AND ok.alg_onrgoed_niveau = 'G'
--AND ud.fac_usrtab_key = 922
AND fac.safe_to_number (
ok.alg_onrgoedkenmerk_waarde) =
ud.fac_usrdata_key) z
ON y.alg_gebouw_key = z.alg_onrgoed_key)
GROUP BY exp_datum,
kavel,
res_id,
lev_datum,
gebouw_code,
ins_discipline_key,
ins_discipline_omschrijving,
res_voorziening,
REPLACE (TO_CHAR (stuksprijs, '9999990.99'), '.', ','),
REPLACE (TO_CHAR (btw_perc, '9999990.99'), '.', ',');
/*
CREATE OR REPLACE VIEW uwva_v_rap_catn_frozen_details
AS
SELECT * FROM uwva_v_rap_cat_frozen_details WHERE fclt_f_kavel = 'Noord';
CREATE OR REPLACE VIEW uwva_v_rapz_cat_frozen_details
AS
SELECT * FROM uwva_v_rap_cat_frozen_details WHERE fclt_f_kavel = 'Zuid';
*/
-- BROC-export; doel is een BROC-journaalbestand (1e en 3e
-- werkdag resp. CONCEPT en DEFINITIEF) te exporteren en de
-- BOC-facturen + R-reserveringen die hieraan ten grondslag
-- liggen op AV te zetten!
/* Formatted on 13-9-2010 16:30:08 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_broc_journaalregels
(
export_appl,
export_datum,
export_index,
export_regel
)
AS
SELECT rjr.export_appl,
rjr.export_datum,
rjr.export_index,
'"'
|| rjr.export_index -- A: regelnummer
|| '";""' -- B: empty
|| ';""' -- C: empty
|| ';""' -- D: empty
|| ';""' -- E: empty
|| ';""' -- F: empty
|| ';""' -- G: empty
|| ';""' -- H: empty
|| ';"00UWV"' -- I: business unit
|| ';"'
|| ud1.fac_usrdata_omschr -- J: ledger
|| '";"'
|| rjr.kostensoort_oms -- K: rekening
|| '";"";"";"' -- L+M: empty 1+2
|| ud2.fac_usrdata_omschr -- N: valuta
|| '";"'
|| REPLACE (rjr.bedrag, '.', ',') -- O: bedrag
|| '";"";"";"";"";"";"";"' -- Pt/mU: empty 3 t/m 8
|| rjr.kostensoort_refcode -- V: reference
|| '";"'
|| SUBSTR (
ud3.fac_usrdata_omschr
|| ' '
|| TO_CHAR (rjr.export_datum, 'dd-mm-yyyy'),
1,
20
) -- W: omschrijving
|| '";"";"";"' -- X+Y: empty 9+10
|| rjr.afd_kpn -- Z: department
|| '";""' -- AA: empty
|| ';""' -- AB: empty
|| ';""' -- AC: empty
|| ';"";"' -- AD: empty
|| rjr.prj_kpn -- AE: project code
|| '";""' -- AF: empty
|| ';""' -- AG: empty
|| ';""' -- AH: empty
|| ';""' -- AI: empty
|| ';""' -- AJ: empty
|| ';""' -- AK: empty
|| ';"";"' -- AL: empty
|| DECODE (rjr.prj_kpn, NULL, NULL, '00UWV') -- AM: project business unit
|| '";"'
|| rjr.prj_activiteit -- AN: project activiteit
|| '";""' -- AO: empty
|| ';""' -- AP: empty
|| ';"";"' -- AQ: empty
|| rjr.prj_analyse -- AR: analyse
|| '"'
export_regel
FROM uwva_raw_journaalregels rjr,
fac_usrdata ud1,
fac_usrdata ud2,
fac_usrdata ud3
WHERE ud1.fac_usrdata_key = 426 -- Ledger-setting
AND ud2.fac_usrdata_key = 427 -- Valuta-setting
AND ud3.fac_usrdata_key = 429 -- Omschrijving-setting
/
/* Formatted on 11-10-2010 17:20:34 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_export_broc (RESULT, result_order)
AS
-- SELECT e.export_regel, e.regelnummer
-- FROM uwva_exp_broc e
SELECT jr.export_regel, jr.export_index
FROM uwva_v_broc_journaalregels jr
WHERE jr.export_appl = 'BROC' AND jr.export_datum > SYSDATE - 0.5
/
/* Formatted on 20-4-2012 14:30:12 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_broc_actual
(
factuur_key,
bes_opdr_key,
mld_opdr_key,
cnt_key,
res_art_key,
res_deel_key,
rekening,
refcode,
doorbelasten,
lev_kpn_key,
afn_kpn,
bedrag
)
AS -- B-facturen (nieuw sinds UWVA53/Closing the loop)
WITH afdkpn AS (SELECT * FROM uwva_v_afd_plus_prj_kpn)
SELECT f.fin_factuur_key factuur_key,
f.bes_bestelopdr_key bes_opdr_key,
NULL mld_opdr_key,
NULL cnt_key,
NULL res_art_key,
NULL res_deel_key,
x.prs_kostensoort_upper rekening,
x.prs_kostensoort_refcode refcode,
COALESCE (x.prs_kostensoort_doorbelasten, 0) doorbelasten,
x.prs_kostenplaats_key lev_kpn_key,
x.kostenplaats afn_kpn,
SUM(DECODE (x.prs_kostensoort_btw,
1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
f.fin_factuur_totaal))
bedrag
FROM fin_factuur f,
(SELECT DISTINCT boi.bes_bestelopdr_key,
ks.prs_kostensoort_upper,
ks.prs_kostensoort_refcode,
ks.prs_kostensoort_doorbelasten,
ks.prs_kostensoort_btw,
ks.prs_kostenplaats_key,
actief.kostenplaats
FROM bes_bestelopdr_item boi,
bes_bestelling_item bbi,
bes_srtdeel sd,
bes_srtgroep sg,
ins_tab_discipline td,
prs_kostensoort ks,
bes_bestelling b,
afdkpn actief
WHERE boi.bes_bestelopdr_item_key =
bbi.bes_bestelopdr_item_key
AND bbi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key
AND td.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND bbi.bes_bestelling_key = b.bes_bestelling_key
AND b.prs_kostenplaats_key = actief.kostenplaats_key) x
WHERE f.fin_factuur_statuses_key = 6 -- Akkoord
AND f.fin_factuur_verwijder IS NULL
AND f.bes_bestelopdr_key = x.bes_bestelopdr_key
GROUP BY f.fin_factuur_key,
f.bes_bestelopdr_key,
NULL,
NULL,
NULL,
NULL,
x.prs_kostensoort_upper,
x.prs_kostensoort_refcode,
COALESCE (x.prs_kostensoort_doorbelasten, 0),
x.prs_kostenplaats_key,
x.kostenplaats
UNION ALL -- O-facturen (nieuw sinds UWVA53/Closing the loop)
SELECT f.fin_factuur_key factuur_key,
NULL bes_opdr_key,
f.mld_opdr_key mld_opdr_key,
NULL cnt_key,
NULL res_art_key,
NULL res_deel_key,
DECODE (ksm.prs_kostensoort_doorbelasten,
1, ksm.prs_kostensoort_upper,
ksv.prs_kostensoort_upper)
rekening,
DECODE (ksm.prs_kostensoort_doorbelasten,
1, ksm.prs_kostensoort_refcode,
ksv.prs_kostensoort_refcode)
refcode,
COALESCE (ksm.prs_kostensoort_doorbelasten,
ksv.prs_kostensoort_doorbelasten,
0)
doorbelasten,
DECODE (ksm.prs_kostensoort_doorbelasten,
1, ksm.prs_kostenplaats_key,
ksv.prs_kostenplaats_key)
lev_kpn_key,
actief.kostenplaats afn_kpn,
SUM(DECODE (
ksm.prs_kostensoort_doorbelasten,
1,
DECODE (ksm.prs_kostensoort_btw,
1,
f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
f.fin_factuur_totaal),
DECODE (ksv.prs_kostensoort_btw,
1,
f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
f.fin_factuur_totaal)
))
bedrag
FROM fin_factuur f,
mld_opdr o,
mld_melding m,
mld_stdmelding sm,
ins_tab_discipline td,
prs_kostensoort ksm,
prs_kostensoort ksv,
afdkpn actief
WHERE f.fin_factuur_statuses_key = 6 -- Akkoord
AND f.fin_factuur_verwijder IS NULL
AND f.mld_opdr_key = o.mld_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
AND o.prs_kostenplaats_key = actief.kostenplaats_key
GROUP BY f.fin_factuur_key,
NULL,
f.mld_opdr_key,
NULL,
NULL,
NULL,
DECODE (ksm.prs_kostensoort_doorbelasten,
1, ksm.prs_kostensoort_upper,
ksv.prs_kostensoort_upper),
DECODE (ksm.prs_kostensoort_doorbelasten,
1, ksm.prs_kostensoort_refcode,
ksv.prs_kostensoort_refcode),
COALESCE (ksm.prs_kostensoort_doorbelasten,
ksv.prs_kostensoort_doorbelasten,
0),
DECODE (ksm.prs_kostensoort_doorbelasten,
1, ksm.prs_kostenplaats_key,
ksv.prs_kostenplaats_key),
actief.kostenplaats
UNION ALL -- C-facturen (nieuw sinds UWVA53/Closing the loop)
SELECT f.fin_factuur_key factuur_key,
NULL bes_opdr_key,
NULL mld_opdr_key,
f.cnt_contract_key cnt_key,
NULL res_art_key,
NULL res_deel_key,
ks.prs_kostensoort_upper rekening,
ks.prs_kostensoort_refcode refcode,
COALESCE (ks.prs_kostensoort_doorbelasten, 0) doorbelasten,
ks.prs_kostenplaats_key lev_kpn_key,
actief.kostenplaats afn_kpn,
SUM(DECODE (ks.prs_kostensoort_btw,
1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
f.fin_factuur_totaal))
bedrag
FROM fin_factuur f,
cnt_contract c,
ins_tab_discipline td,
prs_kostensoort ks,
afdkpn actief
WHERE f.fin_factuur_statuses_key = 6 -- Akkoord
AND f.fin_factuur_verwijder IS NULL
AND f.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = td.ins_discipline_key
AND td.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND c.prs_kostenplaats_key = actief.kostenplaats_key
GROUP BY f.fin_factuur_key,
NULL,
NULL,
f.cnt_contract_key,
NULL,
NULL,
ks.prs_kostensoort_upper,
ks.prs_kostensoort_refcode,
COALESCE (ks.prs_kostensoort_doorbelasten, 0),
ks.prs_kostenplaats_key,
actief.kostenplaats
UNION ALL -- Separate R-artikelen (zoals voor Closing the loop)
SELECT NULL factuur_key,
NULL bes_opdr_key,
NULL mld_opdr_key,
NULL cnt_key,
ra.res_rsv_artikel_key res_art_key,
NULL res_deel_key,
ks.prs_kostensoort_upper rekening,
ks.prs_kostensoort_refcode refcode,
COALESCE (ks.prs_kostensoort_doorbelasten, 0) doorbelasten,
ks.prs_kostenplaats_key lev_kpn_key,
actief.kostenplaats afn_kpn,
ra.res_rsv_artikel_prijs bedrag -- BTW afh. van kostensoort???
FROM res_v_aanwezigrsv_ruimte rr,
res_v_aanwezigrsv_artikel ra,
res_artikel a,
res_discipline rdi,
prs_kostensoort ks,
afdkpn actief
WHERE rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
AND ra.res_status_bo_key = 5
--AND TRUNC (ra.res_rsv_artikel_levering) <= TRUNC(SYSDATE)???
--AND ra.res_rsv_artikel_prijs <> 0
--AND ra.res_rsv_artikel_prijs IS NOT NULL
AND ra.res_artikel_key = a.res_artikel_key
AND a.res_discipline_key = rdi.ins_discipline_key
AND rdi.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND rr.prs_kostenplaats_key = actief.kostenplaats_key
UNION ALL -- Separate R-delen (zoals voor Closing the loop)
SELECT NULL factuur_key,
NULL bes_opdr_key,
NULL mld_opdr_key,
NULL cnt_key,
NULL res_art_key,
rd.res_rsv_deel_key res_deel_key,
ks.prs_kostensoort_upper rekening,
ks.prs_kostensoort_refcode refcode,
COALESCE (ks.prs_kostensoort_doorbelasten, 0) doorbelasten,
ks.prs_kostenplaats_key lev_kpn_key,
actief.kostenplaats afn_kpn,
rd.res_rsv_deel_prijs bedrag -- BTW afh. van kostensoort???
FROM res_v_aanwezigrsv_ruimte rr,
res_v_aanwezigrsv_deel rd,
res_deel d,
res_discipline rdi,
prs_kostensoort ks,
afdkpn actief
WHERE rr.res_rsv_ruimte_key = rd.res_rsv_ruimte_key
AND rd.res_status_bo_key = 5
--AND TRUNC (rd.res_rsv_deel_tot) <= TRUNC(SYSDATE)???
--AND rd.res_rsv_deel_prijs <> 0
--AND rd.res_rsv_deel_prijs IS NOT NULL
AND rd.res_deel_key = d.res_deel_key
AND d.res_discipline_key = rdi.ins_discipline_key
AND rdi.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND rr.prs_kostenplaats_key = actief.kostenplaats_key;
-- Zonder de R van BROC, want daarin geven de 'uwva_v_rap_cat...'-raps inzicht!
/* Formatted on 22-6-2011 12:56:32 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_broc_frozen
(
fclt_f_exportdatum,
fclt_f_leverancier,
fclt_f_factuurnr,
fclt_f_status,
fclt_f_kostensoort,
fclt_f_kostenplaats,
broc_type,
facilitornr,
bedrag_incl,
bedrag_excl
)
AS -- B-facturen (nieuw sinds UWVA53/Closing the loop)
SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy-mm-dd') exportdatum,
b.prs_bedrijf_naam,
f.fin_factuur_nr,
fs.fin_factuur_statuses_omschr,
x.prs_kostensoort_upper, -- Incl. prs_kostensoort_refcode?
x.prs_kostenplaats_nr afn_kpn,
'Bestelling' broc_type,
TO_CHAR (x.bes_bestelling_key), -- Of liever bes_bestelopdr_id?
SUM (f.fin_factuur_totaal + f.fin_factuur_totaal_btw) bedrag_incl,
SUM (f.fin_factuur_totaal) bedrag_excl
FROM fin_factuur f,
fin_factuur_statuses fs,
fac_tracking t,
(SELECT DISTINCT boi.bes_bestelopdr_key,
ks.prs_kostensoort_upper,
ks.prs_kostensoort_refcode,
ks.prs_kostensoort_doorbelasten,
ks.prs_kostensoort_btw,
ks.prs_kostenplaats_key,
b.bes_bestelling_key,
kp.prs_kostenplaats_nr
FROM bes_bestelopdr_item boi,
bes_bestelling_item bbi,
bes_srtdeel sd,
bes_srtgroep sg,
ins_tab_discipline td,
prs_kostensoort ks,
bes_bestelling b,
prs_kostenplaats kp
WHERE boi.bes_bestelopdr_item_key =
bbi.bes_bestelopdr_item_key
AND bbi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key
AND td.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND bbi.bes_bestelling_key = b.bes_bestelling_key
AND b.prs_kostenplaats_key = kp.prs_kostenplaats_key) x,
bes_bestelopdr bo,
prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 7 -- Verwerkt
AND f.fin_factuur_statuses_key = fs.fin_factuur_statuses_key
AND f.fin_factuur_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 145 -- FINVER
AND t.fac_tracking_datum >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'YYYY')
AND f.bes_bestelopdr_key = x.bes_bestelopdr_key
AND x.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy-mm-dd'),
b.prs_bedrijf_naam,
f.fin_factuur_nr,
fs.fin_factuur_statuses_omschr,
x.prs_kostensoort_upper,
x.prs_kostenplaats_nr,
'Bestelling',
x.bes_bestelling_key
UNION ALL -- O-facturen (nieuw sinds UWVA53/Closing the loop)
SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy-mm-dd') exportdatum,
b.prs_bedrijf_naam,
f.fin_factuur_nr,
fs.fin_factuur_statuses_omschr,
COALESCE (ksm.prs_kostensoort_upper, ksv.prs_kostensoort_upper), -- Incl. prs_kostensoort_refcode?
kp.prs_kostenplaats_nr afn_kpn,
'Opdracht' broc_type,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr,
SUM (f.fin_factuur_totaal + f.fin_factuur_totaal_btw) bedrag_incl,
SUM (f.fin_factuur_totaal) bedrag_excl
FROM fin_factuur f,
fin_factuur_statuses fs,
fac_tracking t,
mld_opdr o,
mld_melding m,
mld_stdmelding sm,
ins_tab_discipline td,
prs_kostensoort ksm,
prs_kostensoort ksv,
prs_kostenplaats kp,
prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 7 -- Verwerkt
AND f.fin_factuur_statuses_key = fs.fin_factuur_statuses_key
AND f.fin_factuur_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 145 -- FINVER
AND t.fac_tracking_datum >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'YYYY')
AND f.mld_opdr_key = o.mld_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy-mm-dd'),
b.prs_bedrijf_naam,
f.fin_factuur_nr,
fs.fin_factuur_statuses_omschr,
COALESCE (ksm.prs_kostensoort_upper, ksv.prs_kostensoort_upper),
kp.prs_kostenplaats_nr,
'Opdracht',
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
UNION ALL -- C-facturen (nieuw sinds UWVA53/Closing the loop)
SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy-mm-dd') exportdatum,
b.prs_bedrijf_naam,
f.fin_factuur_nr,
fs.fin_factuur_statuses_omschr,
ks.prs_kostensoort_upper, -- Incl. prs_kostensoort_refcode?
kp.prs_kostenplaats_nr afn_kpn,
'Contract' broc_type,
c.cnt_contract_nummer_intern,
SUM (f.fin_factuur_totaal + f.fin_factuur_totaal_btw) bedrag_incl,
SUM (f.fin_factuur_totaal) bedrag_excl
FROM fin_factuur f,
fin_factuur_statuses fs,
fac_tracking t,
cnt_contract c,
ins_tab_discipline td,
prs_kostensoort ks,
prs_kostenplaats kp,
prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 7 -- Verwerkt
AND f.fin_factuur_statuses_key = fs.fin_factuur_statuses_key
AND f.fin_factuur_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 145 -- FINVER
AND t.fac_tracking_datum >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'YYYY')
AND f.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = td.ins_discipline_key
AND td.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy-mm-dd'),
b.prs_bedrijf_naam,
f.fin_factuur_nr,
fs.fin_factuur_statuses_omschr,
ks.prs_kostensoort_upper,
kp.prs_kostenplaats_nr,
'Contract',
c.cnt_contract_nummer_intern;
/* Formatted on 7-5-2012 18:02:02 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE uwva_select_broc (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Cursor loopt over een tijdelijke tabel met daarin opgebouwd alle regels
-- van de doorbelasting gebaseerd op BOC-facturen en R-reserveringen.
CURSOR c1
IS
WITH uba AS (SELECT * FROM uwva_v_broc_actual),
afdkpn AS (SELECT * FROM uwva_v_afd_plus_prj_kpn)
SELECT groepering,
kpn,
rekening,
refcode,
prj_code,
prj_activiteit,
analyse,
TO_CHAR (bedrag, '999999999D99') bedrag
FROM ( -- Doorbelasting B-facturen per kpn
SELECT '#1' groepering,
COALESCE (aprj.afd_kostenplaats, v.afn_kpn) kpn,
v.rekening rekening,
v.refcode refcode,
aprj.prj_kostenplaats prj_code,
DECODE (aprj.prj_kostenplaats,
NULL, NULL,
'DIENST')
prj_activiteit,
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'GLE')
analyse,
SUM (v.bedrag) bedrag
FROM uba v, afdkpn aprj
WHERE v.factuur_key IS NOT NULL
AND v.bes_opdr_key IS NOT NULL
AND v.doorbelasten = 1
AND v.afn_kpn = aprj.kostenplaats -- alleen actieve kpn!
GROUP BY '#1',
COALESCE (aprj.afd_kostenplaats, v.afn_kpn),
v.rekening,
v.refcode,
aprj.prj_kostenplaats,
DECODE (aprj.prj_kostenplaats,
NULL, NULL,
'DIENST'),
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'GLE')
UNION ALL -- Doorbelasting O-facturen per kpn
SELECT '#2' groepering,
COALESCE (aprj.afd_kostenplaats, v.afn_kpn) kpn,
v.rekening rekening,
v.refcode refcode,
aprj.prj_kostenplaats prj_code,
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'DIENST')
prj_activiteit,
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'GLE')
analyse,
SUM (v.bedrag) bedrag
FROM uba v, afdkpn aprj
WHERE v.factuur_key IS NOT NULL
AND v.mld_opdr_key IS NOT NULL
AND v.doorbelasten = 1
AND v.afn_kpn = aprj.kostenplaats -- alleen actieve kpn!
GROUP BY '#2',
COALESCE (aprj.afd_kostenplaats, v.afn_kpn),
v.rekening,
v.refcode,
aprj.prj_kostenplaats,
DECODE (aprj.prj_kostenplaats,
NULL, NULL,
'DIENST'),
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'GLE')
UNION ALL -- Doorbelasting C-facturen per kpn
SELECT '#3' groepering,
COALESCE (aprj.afd_kostenplaats, v.afn_kpn) kpn,
v.rekening rekening,
v.refcode refcode,
aprj.prj_kostenplaats prj_code,
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'DIENST')
prj_activiteit,
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'GLE')
analyse,
SUM (v.bedrag) bedrag
FROM uba v, afdkpn aprj
WHERE v.factuur_key IS NOT NULL
AND v.cnt_key IS NOT NULL
AND v.doorbelasten = 1
AND v.afn_kpn = aprj.kostenplaats -- alleen actieve kpn!
GROUP BY '#3',
COALESCE (aprj.afd_kostenplaats, v.afn_kpn),
v.rekening,
v.refcode,
aprj.prj_kostenplaats,
DECODE (aprj.prj_kostenplaats,
NULL, NULL,
'DIENST'),
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'GLE')
UNION ALL -- Doorbelasting R-artikelen per kpn
SELECT '#4' groepering,
COALESCE (aprj.afd_kostenplaats, v.afn_kpn) kpn,
v.rekening rekening,
v.refcode refcode,
aprj.prj_kostenplaats prj_code,
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'DIENST')
prj_activiteit,
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'GLE')
analyse,
SUM (v.bedrag) bedrag
FROM uba v, afdkpn aprj
WHERE v.factuur_key IS NULL
AND v.res_art_key IS NOT NULL
AND v.doorbelasten = 1
AND v.afn_kpn = aprj.kostenplaats -- alleen actieve kpn!
GROUP BY '#4',
COALESCE (aprj.afd_kostenplaats, v.afn_kpn),
v.rekening,
v.refcode,
aprj.prj_kostenplaats,
DECODE (aprj.prj_kostenplaats,
NULL, NULL,
'DIENST'),
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'GLE')
UNION ALL -- Doorbelasting R-delen per kpn
SELECT '#5' groepering,
COALESCE (aprj.afd_kostenplaats, v.afn_kpn) kpn,
v.rekening rekening,
v.refcode refcode,
aprj.prj_kostenplaats prj_code,
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'DIENST')
prj_activiteit,
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'GLE')
analyse,
SUM (v.bedrag) bedrag
FROM uba v, afdkpn aprj
WHERE v.factuur_key IS NULL
AND v.res_deel_key IS NOT NULL
AND v.doorbelasten = 1
AND v.afn_kpn = aprj.kostenplaats -- alleen actieve kpn!
GROUP BY '#5',
COALESCE (aprj.afd_kostenplaats, v.afn_kpn),
v.rekening,
v.refcode,
aprj.prj_kostenplaats,
DECODE (aprj.prj_kostenplaats,
NULL, NULL,
'DIENST'),
DECODE (aprj.prj_kostenplaats, NULL, NULL, 'GLE')
UNION ALL -- Tegenwaarde BROC-kosten
SELECT '#9' groepering,
kp.prs_kostenplaats_upper kpn,
v.rekening rekening,
v.refcode refcode,
NULL prj_code,
NULL prj_activiteit,
'GLE' analyse,
SUM (v.bedrag) * -1 bedrag
FROM uba v, afdkpn aprj, prs_kostenplaats kp
WHERE v.doorbelasten = 1
AND v.afn_kpn = aprj.kostenplaats -- alleen actieve kpn!
AND v.lev_kpn_key = kp.prs_kostenplaats_key(+)
GROUP BY '#9',
kp.prs_kostenplaats_upper,
v.rekening,
v.refcode,
NULL,
NULL,
'GLE') x
WHERE x.rekening IS NOT NULL AND x.refcode IS NOT NULL
ORDER BY groepering, kpn, bedrag;
-- Cursor loopt over een tijdelijke tabel met daarin alle BOC-facturen
-- die op AV moeten worden gezet.
CURSOR c2a
IS
SELECT v.factuur_key
FROM uwva_v_broc_actual v
WHERE v.factuur_key IS NOT NULL -- Akkoord
ORDER BY v.factuur_key;
-- Cursor loopt over een tijdelijke tabel met daarin alle R-artikelen
-- die op AV moeten worden gezet.
CURSOR c2b
IS
SELECT ra.res_rsv_ruimte_key, v.res_art_key
FROM uwva_v_broc_actual v, res_rsv_artikel ra
WHERE v.factuur_key IS NULL
AND v.res_art_key IS NOT NULL
AND v.res_art_key = ra.res_rsv_artikel_key
ORDER BY ra.res_rsv_ruimte_key, v.res_art_key;
-- Cursor loopt over een tijdelijke tabel met daarin alle R-delen
-- die op AV moeten worden gezet.
CURSOR c2c
IS
SELECT rd.res_rsv_ruimte_key, v.res_deel_key
FROM uwva_v_broc_actual v, res_rsv_deel rd
WHERE v.factuur_key IS NULL
AND v.res_deel_key IS NOT NULL
AND v.res_deel_key = rd.res_rsv_deel_key
ORDER BY rd.res_rsv_ruimte_key, v.res_deel_key;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
export_date DATE;
v_holiday NUMBER;
regelnr NUMBER;
BEGIN
-- IF 3e werkdag van de maand THEN
-- 1. Clear log
-- 2. Clear export-tabel
-- 3. E-export; insert E-regels in export-tabel (uit broc-actual)
-- 4. F-freeze; zet BOC-facturen op AV
-- 5. F-freeze; zet R-artikelen op AV
-- 6. F-freeze; zet R-delen op AV
-- END IF;
-- NB. Status/levering van onderliggende BROCs speelt bij journalisering
-- g<><67>n rol (binnen UWV); bij matching en in rapportage-sfeer wel!
export_date := SYSDATE;
SELECT COUNT ( * )
INTO v_holiday
FROM MLD_VRIJE_DAGEN
WHERE TRUNC (MLD_VRIJE_DAGEN_DATUM) = TRUNC (export_date);
-- IF 3e werkdag van de maand (<28>n geen weekend <20>n ook geen vrije dag)!
-- count_work_days(d1,d2) bepaalt #werkdagen van d1 tot d2 (als d1=d2,
-- dan return 0); daarom bepalen tov. laatste dag van vorige maand!
IF FAC.count_work_days (
TO_DATE (TO_CHAR (export_date, 'yyyymm') || '01', 'yyyymmdd')
- 1,
export_date
) = 3
AND TO_CHAR (export_date, 'd') BETWEEN '2' AND '6'
AND v_holiday = 0
THEN
-- 2. Clear export-tabel
DELETE FROM uwva_raw_journaalregels
WHERE export_appl = p_applname;
COMMIT;
regelnr := 0;
-- 3. E-export; insert E-regels in export-tabel (uit broc-actual)
FOR rec1 IN c1
LOOP
INSERT INTO uwva_raw_journaalregels (export_appl,
export_datum,
export_index,
kostensoort_oms,
bedrag,
kostensoort_refcode,
afd_kpn,
prj_kpn,
prj_activiteit,
prj_analyse,
functie)
VALUES (p_applname,
export_date,
regelnr,
rec1.rekening,
rec1.bedrag,
rec1.refcode,
rec1.kpn,
rec1.prj_code,
rec1.prj_activiteit,
rec1.analyse,
'E');
regelnr := regelnr + 1;
COMMIT;
END LOOP;
fac.writelog (p_applname,
'S',
'Aantal BROC-regels/DEFINITIEF: ' || TO_CHAR (regelnr),
'');
COMMIT;
-- 4. F-freeze; zet BOC-facturen op AV
FOR rec1 IN c2a
LOOP
UPDATE fin_factuur f
SET fin_factuur_statuses_key = 7 -- AV
WHERE f.fin_factuur_key = rec1.factuur_key;
fac.trackaction ('FINVER',
rec1.factuur_key,
33759, -- Facilitor???
NULL,
NULL);
COMMIT;
END LOOP;
-- 5. F-freeze; zet R-artikelen op AV
FOR rec1 IN c2b
LOOP
UPDATE res_rsv_artikel ra
SET ra.res_status_bo_key = 6 -- AV
WHERE ra.res_rsv_artikel_key = rec1.res_art_key;
fac.trackaction ('RESVER',
rec1.res_rsv_ruimte_key,
33759, -- Facilitor???
NULL,
NULL);
COMMIT;
END LOOP;
-- 6. F-freeze; zet R-delen op AV
FOR rec1 IN c2c
LOOP
UPDATE res_rsv_deel rd
SET rd.res_status_bo_key = 6 -- AV
WHERE rd.res_rsv_deel_key = rec1.res_deel_key;
fac.trackaction ('RESVER',
rec1.res_rsv_ruimte_key,
33759, -- Facilitor???
NULL,
NULL);
COMMIT;
END LOOP;
-- Let op: 3e param is 'E' omdat deze regel bedoeld is als feedback voor
-- Infobeheer!
v_errormsg :=
'BROC export AV verklaren is be<62>indigd zonder foutmeldingen';
fac.writelog (p_applname,
'E',
v_errormsg,
'');
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'Proces BROC_EXPORT afgebroken!',
v_errormsg);
COMMIT;
END;
/
/* Formatted on 25-5-2012 10:00:15 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_rap_fin_afloop_factuur
(
fclt_f_uitvoerende,
fclt_f_boc_type,
fclt_f_factuurnr,
fclt_f_exportdatum,
openstaand,
doorbelast,
totaal
)
AS
WITH finver
AS ( SELECT fac_tracking_refkey,
MAX (fac_tracking_datum) fac_tracking_datum
FROM fac_tracking
WHERE fac_srtnotificatie_key = 145 -- FINVER
AND fac_tracking_datum >
TRUNC (ADD_MONTHS (SYSDATE, -24), 'YYYY')
GROUP BY fac_tracking_refkey)
SELECT x.prs_bedrijf_naam uitvoerende,
x.broc_type boc_type,
x.fin_factuur_nr factuurnr,
MAX (TO_CHAR (x.last_av, 'dd-mm-yyyy')) laatste_db,
SUM (x.ingevoerd) + SUM (x.goedgekeurd) openstaand,
SUM (x.doorbelast) doorbelast,
SUM (x.ingevoerd) + SUM (x.goedgekeurd) + SUM (x.doorbelast)
totaal
FROM ( SELECT b.prs_bedrijf_naam,
f.fin_factuur_nr,
'Bestelling' broc_type,
MAX (t.fac_tracking_datum) last_av,
SUM (f.fin_factuur_totaal) doorbelast,
0 goedgekeurd,
0 ingevoerd,
0 afgekeurd
FROM fin_factuur f,
finver t,
bes_bestelopdr bo,
prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 7
AND f.fin_factuur_key = t.fac_tracking_refkey
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, f.fin_factuur_nr, 'Bestelling'
UNION ALL
SELECT b.prs_bedrijf_naam,
f.fin_factuur_nr,
'Bestelling' broc_type,
NULL last_av,
0 doorbelast,
SUM (f.fin_factuur_totaal) goedgekeurd,
0 ingevoerd,
0 afgekeurd
FROM fin_factuur f, bes_bestelopdr bo, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 6
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, f.fin_factuur_nr, 'Bestelling'
UNION ALL
SELECT b.prs_bedrijf_naam,
f.fin_factuur_nr,
'Bestelling' broc_type,
NULL last_av,
0 doorbelast,
0 goedgekeurd,
SUM (f.fin_factuur_totaal) ingevoerd,
0 afgekeurd
FROM fin_factuur f, bes_bestelopdr bo, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 2
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, f.fin_factuur_nr, 'Bestelling'
UNION ALL
SELECT b.prs_bedrijf_naam,
f.fin_factuur_nr,
'Bestelling' broc_type,
NULL last_av,
0 doorbelast,
0 goedgekeurd,
0 ingevoerd,
SUM (f.fin_factuur_totaal) afgekeurd
FROM fin_factuur f, bes_bestelopdr bo, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 1
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, f.fin_factuur_nr, 'Bestelling'
UNION ALL
SELECT b.prs_bedrijf_naam,
f.fin_factuur_nr,
'Opdracht' broc_type,
MAX (t.fac_tracking_datum) last_av,
SUM (f.fin_factuur_totaal) doorbelast,
0 goedgekeurd,
0 ingevoerd,
0 afgekeurd
FROM fin_factuur f,
finver t,
mld_opdr o,
prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 7
AND f.fin_factuur_key = t.fac_tracking_refkey
AND f.mld_opdr_key = o.mld_opdr_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, f.fin_factuur_nr, 'Opdracht'
UNION ALL
SELECT b.prs_bedrijf_naam,
f.fin_factuur_nr,
'Opdracht' broc_type,
NULL last_av,
0 doorbelast,
SUM (f.fin_factuur_totaal) goedgekeurd,
0 ingevoerd,
0 afgekeurd
FROM fin_factuur f, mld_opdr o, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 6
AND f.mld_opdr_key = o.mld_opdr_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, f.fin_factuur_nr, 'Opdracht'
UNION ALL
SELECT b.prs_bedrijf_naam,
f.fin_factuur_nr,
'Opdracht' broc_type,
NULL last_av,
0 doorbelast,
0 goedgekeurd,
SUM (f.fin_factuur_totaal) ingevoerd,
0 afgekeurd
FROM fin_factuur f, mld_opdr o, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 2
AND f.mld_opdr_key = o.mld_opdr_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, f.fin_factuur_nr, 'Opdracht'
UNION ALL
SELECT b.prs_bedrijf_naam,
f.fin_factuur_nr,
'Opdracht' broc_type,
NULL last_av,
0 doorbelast,
0 goedgekeurd,
0 ingevoerd,
SUM (f.fin_factuur_totaal) afgekeurd
FROM fin_factuur f, mld_opdr o, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 1
AND f.mld_opdr_key = o.mld_opdr_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, f.fin_factuur_nr, 'Opdracht'
UNION ALL
SELECT b.prs_bedrijf_naam,
f.fin_factuur_nr,
'Contract' broc_type,
MAX (t.fac_tracking_datum) last_av,
SUM (f.fin_factuur_totaal) doorbelast,
0 goedgekeurd,
0 ingevoerd,
0 afgekeurd
FROM fin_factuur f,
finver t,
cnt_contract c,
prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 7
AND f.fin_factuur_key = t.fac_tracking_refkey
AND f.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, f.fin_factuur_nr, 'Contract'
UNION ALL
SELECT b.prs_bedrijf_naam,
f.fin_factuur_nr,
'Contract' broc_type,
NULL last_av,
0 doorbelast,
SUM (f.fin_factuur_totaal) goedgekeurd,
0 ingevoerd,
0 afgekeurd
FROM fin_factuur f, cnt_contract c, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 6
AND f.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, f.fin_factuur_nr, 'Contract'
UNION ALL
SELECT b.prs_bedrijf_naam,
f.fin_factuur_nr,
'Contract' broc_type,
NULL last_av,
0 doorbelast,
0 goedgekeurd,
SUM (f.fin_factuur_totaal) ingevoerd,
0 afgekeurd
FROM fin_factuur f, cnt_contract c, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 2
AND f.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, f.fin_factuur_nr, 'Contract'
UNION ALL
SELECT b.prs_bedrijf_naam,
f.fin_factuur_nr,
'Contract' broc_type,
NULL last_av,
0 doorbelast,
0 goedgekeurd,
0 ingevoerd,
SUM (f.fin_factuur_totaal) afgekeurd
FROM fin_factuur f, cnt_contract c, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 1
AND f.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, f.fin_factuur_nr, 'Contract') x
GROUP BY x.prs_bedrijf_naam, x.fin_factuur_nr, x.broc_type;
CREATE OR REPLACE VIEW uwva_v_rap_fin_afloop_bedrijf
(
fclt_f_uitvoerende,
fclt_f_boc_type,
fclt_f_exportdatum,
openstaand,
doorbelast,
totaal
)
AS
WITH finver
AS ( SELECT fac_tracking_refkey,
MAX (fac_tracking_datum) fac_tracking_datum
FROM fac_tracking
WHERE fac_srtnotificatie_key = 145 -- FINVER
AND fac_tracking_datum >
TRUNC (ADD_MONTHS (SYSDATE, -24), 'YYYY')
GROUP BY fac_tracking_refkey)
SELECT x.prs_bedrijf_naam uitvoerende,
x.broc_type boc_type,
TO_CHAR (x.last_av, 'dd-mm-yyyy') exportdatum,
SUM (x.ingevoerd) + SUM (x.goedgekeurd) openstaand,
SUM (x.doorbelast) doorbelast,
SUM (x.ingevoerd) + SUM (x.goedgekeurd) + SUM (x.doorbelast)
totaal
FROM ( SELECT b.prs_bedrijf_naam,
'Bestelling' broc_type,
t.fac_tracking_datum last_av,
SUM (f.fin_factuur_totaal) doorbelast,
0 goedgekeurd,
0 ingevoerd,
0 afgekeurd
FROM fin_factuur f,
finver t,
bes_bestelopdr bo,
prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 7
AND f.fin_factuur_key = t.fac_tracking_refkey
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam,
'Bestelling',
t.fac_tracking_datum
UNION ALL
SELECT b.prs_bedrijf_naam,
'Bestelling' broc_type,
NULL last_av,
0 doorbelast,
SUM (f.fin_factuur_totaal) goedgekeurd,
0 ingevoerd,
0 afgekeurd
FROM fin_factuur f, bes_bestelopdr bo, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 6
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, 'Bestelling', NULL
UNION ALL
SELECT b.prs_bedrijf_naam,
'Bestelling' broc_type,
NULL last_av,
0 doorbelast,
0 goedgekeurd,
SUM (f.fin_factuur_totaal) ingevoerd,
0 afgekeurd
FROM fin_factuur f, bes_bestelopdr bo, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 2
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, 'Bestelling', NULL
UNION ALL
SELECT b.prs_bedrijf_naam,
'Bestelling' broc_type,
NULL last_av,
0 doorbelast,
0 goedgekeurd,
0 ingevoerd,
SUM (f.fin_factuur_totaal) afgekeurd
FROM fin_factuur f, bes_bestelopdr bo, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 1
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, 'Bestelling', NULL
UNION ALL
SELECT b.prs_bedrijf_naam,
'Opdracht' broc_type,
t.fac_tracking_datum last_av,
SUM (f.fin_factuur_totaal) doorbelast,
0 goedgekeurd,
0 ingevoerd,
0 afgekeurd
FROM fin_factuur f,
finver t,
mld_opdr o,
prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 7
AND f.fin_factuur_key = t.fac_tracking_refkey
AND f.mld_opdr_key = o.mld_opdr_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, 'Opdracht', t.fac_tracking_datum
UNION ALL
SELECT b.prs_bedrijf_naam,
'Opdracht' broc_type,
NULL last_av,
0 doorbelast,
SUM (f.fin_factuur_totaal) goedgekeurd,
0 ingevoerd,
0 afgekeurd
FROM fin_factuur f, mld_opdr o, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 6
AND f.mld_opdr_key = o.mld_opdr_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, 'Opdracht', NULL
UNION ALL
SELECT b.prs_bedrijf_naam,
'Opdracht' broc_type,
NULL last_av,
0 doorbelast,
0 goedgekeurd,
SUM (f.fin_factuur_totaal) ingevoerd,
0 afgekeurd
FROM fin_factuur f, mld_opdr o, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 2
AND f.mld_opdr_key = o.mld_opdr_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, 'Opdracht', NULL
UNION ALL
SELECT b.prs_bedrijf_naam,
'Opdracht' broc_type,
NULL last_av,
0 doorbelast,
0 goedgekeurd,
0 ingevoerd,
SUM (f.fin_factuur_totaal) afgekeurd
FROM fin_factuur f, mld_opdr o, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 1
AND f.mld_opdr_key = o.mld_opdr_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, 'Opdracht', NULL
UNION ALL
SELECT b.prs_bedrijf_naam,
'Contract' broc_type,
t.fac_tracking_datum last_av,
SUM (f.fin_factuur_totaal) doorbelast,
0 goedgekeurd,
0 ingevoerd,
0 afgekeurd
FROM fin_factuur f,
finver t,
cnt_contract c,
prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 7
AND f.fin_factuur_key = t.fac_tracking_refkey
AND f.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, 'Contract', t.fac_tracking_datum
UNION ALL
SELECT b.prs_bedrijf_naam,
'Contract' broc_type,
NULL last_av,
0 doorbelast,
SUM (f.fin_factuur_totaal) goedgekeurd,
0 ingevoerd,
0 afgekeurd
FROM fin_factuur f, cnt_contract c, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 6
AND f.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, 'Contract', NULL
UNION ALL
SELECT b.prs_bedrijf_naam,
'Contract' broc_type,
NULL last_av,
0 doorbelast,
0 goedgekeurd,
SUM (f.fin_factuur_totaal) ingevoerd,
0 afgekeurd
FROM fin_factuur f, cnt_contract c, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 2
AND f.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, 'Contract', NULL
UNION ALL
SELECT b.prs_bedrijf_naam,
'Contract' broc_type,
NULL last_av,
0 doorbelast,
0 goedgekeurd,
0 ingevoerd,
SUM (f.fin_factuur_totaal) afgekeurd
FROM fin_factuur f, cnt_contract c, prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 1
AND f.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_naam, 'Contract', NULL) x
GROUP BY x.prs_bedrijf_naam,
x.broc_type,
TO_CHAR (x.last_av, 'dd-mm-yyyy');
-- UWVA#16763
-- Procedure voor de import van facturen (van leverancier)
/* Formatted on 10-6-2013 13:24:42 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE uwva_import_factuur (p_import_key IN NUMBER)
AS
c_delim VARCHAR2 (1) := ';';
v_newline fac_imp_file.fac_imp_file_line%TYPE;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
-- De importvelden
v_bestelnummer VARCHAR2 (100);
v_regelnummer VARCHAR2 (100);
v_besteldatum VARCHAR2 (100);
v_omschrijving VARCHAR2 (1000);
v_nrbesteld VARCHAR2 (100);
v_stukexcl VARCHAR2 (100);
v_stukincl VARCHAR2 (100);
v_eenheid VARCHAR2 (100);
v_afleverdatum VARCHAR2 (100);
v_nrgeleverd VARCHAR2 (100);
v_kostenplaats VARCHAR2 (100);
v_totaalexcl VARCHAR2 (100);
v_btwcode VARCHAR2 (100);
v_totaalbtw VARCHAR2 (100);
v_totaalincl VARCHAR2 (100);
v_factuurnr VARCHAR2 (100);
v_check_dec_sign NUMBER (5, 2);
CURSOR cfactuur
IS
SELECT fac_imp_file_line,
LENGTH (TRIM (REPLACE (fac_imp_file_line, c_delim, '')))
regellengte
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
v_rec cfactuur%ROWTYPE;
BEGIN
header_is_valid := 0;
DELETE FROM uwva_imp_factuur;
DELETE imp_log
WHERE imp_log_applicatie = 'FACTUUR';
-- Check the client decimal settings.
-- Do not convert the ',' to a '.' if the client decimal separator is a ','!
SELECT fac.safe_to_number ('2,5') INTO v_check_dec_sign FROM DUAL;
FOR v_rec IN cfactuur
LOOP
v_newline := v_rec.fac_imp_file_line;
fac.imp_getfield (v_newline, c_delim, v_bestelnummer);
fac.imp_getfield (v_newline, c_delim, v_regelnummer);
fac.imp_getfield (v_newline, c_delim, v_besteldatum);
fac.imp_getfield (v_newline, c_delim, v_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_nrbesteld);
fac.imp_getfield (v_newline, c_delim, v_stukexcl);
fac.imp_getfield (v_newline, c_delim, v_stukincl);
fac.imp_getfield (v_newline, c_delim, v_eenheid);
fac.imp_getfield (v_newline, c_delim, v_afleverdatum);
fac.imp_getfield (v_newline, c_delim, v_nrgeleverd);
fac.imp_getfield (v_newline, c_delim, v_kostenplaats);
fac.imp_getfield (v_newline, c_delim, v_totaalexcl);
fac.imp_getfield (v_newline, c_delim, v_btwcode);
fac.imp_getfield (v_newline, c_delim, v_totaalbtw);
fac.imp_getfield (v_newline, c_delim, v_totaalincl);
fac.imp_getfield (v_newline, c_delim, v_factuurnr);
-- We skippen alles todat we een geldige header tegenkomen (zie specs
-- UWVA#16763).
IF (header_is_valid = 0)
THEN
IF UPPER (v_bestelnummer) = 'BESTELNUMMER'
AND UPPER (v_regelnummer) = 'OPDRACHTREGELNUMMER'
AND UPPER (v_besteldatum) = 'BESTELDATUM'
AND UPPER (v_omschrijving) = 'ARTIKEL OMSCHRIJVING'
AND UPPER (v_btwcode) = 'BTW CODE'
AND UPPER (v_factuurnr) = 'FACTUURNR'
THEN
header_is_valid := 1;
END IF;
ELSIF (v_rec.regellengte > 1) -- Lege regels overslaan!
THEN
IF v_check_dec_sign IS NULL
THEN
v_nrbesteld := REPLACE (SUBSTR (v_nrbesteld, 1, 11), ',', '.');
v_stukexcl := REPLACE (SUBSTR (v_stukexcl, 1, 11), ',', '.');
v_stukincl := REPLACE (SUBSTR (v_stukincl, 1, 11), ',', '.');
v_nrgeleverd := REPLACE (SUBSTR (v_nrgeleverd, 1, 11), ',', '.');
v_totaalexcl := REPLACE (SUBSTR (v_totaalexcl, 1, 11), ',', '.');
v_totaalbtw := REPLACE (SUBSTR (v_totaalbtw, 1, 11), ',', '.');
v_totaalincl := REPLACE (SUBSTR (v_totaalincl, 1, 11), ',', '.');
ELSE
v_nrbesteld := SUBSTR (v_nrbesteld, 1, 11);
v_stukexcl := SUBSTR (v_stukexcl, 1, 11);
v_stukincl := SUBSTR (v_stukincl, 1, 11);
v_nrgeleverd := SUBSTR (v_nrgeleverd, 1, 11);
v_totaalexcl := SUBSTR (v_totaalexcl, 1, 11);
v_totaalbtw := SUBSTR (v_totaalbtw, 1, 11);
v_totaalincl := SUBSTR (v_totaalincl, 1, 11);
END IF;
INSERT INTO uwva_imp_factuur (bestelnummer,
regelnummer,
besteldatum,
omschrijving,
nrbesteld,
stukexcl,
stukincl,
eenheid,
afleverdatum,
nrgeleverd,
kostenplaats,
totaalexcl,
btwcode,
totaalbtw,
totaalincl,
factuurnr)
VALUES (RTRIM (SUBSTR (v_bestelnummer, 1, 15)),
RTRIM (SUBSTR (v_regelnummer, 1, 5)),
RTRIM (SUBSTR (v_besteldatum, 1, 8)),
RTRIM (SUBSTR (v_omschrijving, 1, 60)),
RTRIM (SUBSTR (v_nrbesteld, 1, 10)),
RTRIM (SUBSTR (v_stukexcl, 1, 10)),
RTRIM (SUBSTR (v_stukincl, 1, 10)),
RTRIM (SUBSTR (v_eenheid, 1, 30)),
RTRIM (SUBSTR (v_afleverdatum, 1, 8)),
RTRIM (SUBSTR (v_nrgeleverd, 1, 10)),
RTRIM (SUBSTR (v_kostenplaats, 1, 8)),
RTRIM (SUBSTR (v_totaalexcl, 1, 10)),
RTRIM (SUBSTR (v_btwcode, 1, 1)),
RTRIM (SUBSTR (v_totaalbtw, 1, 10)),
RTRIM (SUBSTR (v_totaalincl, 1, 10)),
RTRIM (SUBSTR (v_factuurnr, 1, 30)));
COMMIT;
END IF;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error: ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
'Inleesproces facturen afgebroken!');
END;
/
/* Formatted on 8-8-2013 14:08:40 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE uwva_update_factuur (p_import_key IN NUMBER)
AS
-- Een factuur(record) wordt aangemaakt voor iedere factuurnr/bestelnummer-
-- combinatie en dan wordt voor iedere regel een regel(record) aangemaakt.
CURSOR cfactuurregel
IS
SELECT imp.*, btw.*
FROM (SELECT factuurnr,
bestelnummer,
regelnummer,
fac.safe_to_date (besteldatum, 'yyyymmdd')
besteldatum,
fac.safe_to_number (totaalexcl) totaalexcl,
--fac.safe_to_number (totaalbtw) totaalbtw,
fac.safe_to_number (COALESCE (totaalbtw, '0'))
totaalbtw,
fac.safe_to_number (nrbesteld) nrbesteld,
fac.safe_to_number (nrgeleverd) nrgeleverd,
afleverdatum,
omschrijving
|| ' ('
|| nrbesteld
|| '/'
|| nrgeleverd
|| ')'
omschrijving,
eenheid,
kostenplaats,
btwcode
FROM uwva_imp_factuur) imp
LEFT JOIN
fin_btwtabelwaarde btw
ON imp.btwcode = btw.fin_btwtabelwaarde_code
AND btw.fin_btwtabel_key = 1 -- NL standaard
ORDER BY imp.factuurnr, imp.bestelnummer, imp.regelnummer;
v_errormsg VARCHAR2 (1000);
oracle_err_mes VARCHAR2 (200);
c_i NUMBER;
c_teller NUMBER;
c_newfactuurkey NUMBER;
c_factuurregel NUMBER;
c_fac_type VARCHAR2 (1);
c_prefix1 VARCHAR2 (1);
c_bestelnummer_index NUMBER;
c_bestelnummer_s1 VARCHAR2 (20);
c_bestelnummer_s2 VARCHAR2 (20);
c_bestelnummer_t VARCHAR2 (40);
c_old_bestelnummer uwva_imp_factuur.bestelnummer%TYPE;
c_old_factuurnr uwva_imp_factuur.factuurnr%TYPE;
--c_write_bestelnummer VARCHAR2 (20);
c_bestelopdr_id VARCHAR2 (20);
c_fact_tot NUMBER;
c_fact_totbtw NUMBER;
c_find BOOLEAN;
--c_find_bestelnummer BOOLEAN;
c_mld_opdr_key NUMBER (10);
c_cnt_contract_key NUMBER (10);
c_bes_bestelopdr_key NUMBER (10);
c_prs_bedrijf_naam VARCHAR2 (100);
--c_opmerking VARCHAR2 (200);
c_fact_datum DATE;
c_rollback BOOLEAN;
FUNCTION getfactype (pbestelnr IN VARCHAR2)
RETURN VARCHAR2
IS
c_prefix1 VARCHAR2 (1);
lfactype VARCHAR2 (1);
BEGIN
IF LENGTH (pbestelnr) = 0
THEN
RETURN '';
END IF;
c_prefix1 := SUBSTR (pbestelnr, 1, 1);
IF SUBSTR (pbestelnr, 1, 2) = 'O-'
THEN
lfactype := 'B'; -- Bestelling
ELSIF ( ( (ASCII (c_prefix1) >= 65 AND ASCII (c_prefix1) <= 90) OR (ASCII(c_prefix1) >= 97 AND ASCII(c_prefix1) <= 122)) AND ASCII(c_prefix1) != 67 AND ASCII(c_prefix1) != 99)
THEN
lfactype := 'O'; -- Opdracht (Melding)
ELSIF (ASCII (c_prefix1) = 67 OR ASCII (c_prefix1) = 99)
THEN
lfactype := 'C'; -- Contract
ELSE
uwva_imp_writelog (p_import_key,
'I',
'Kan besteltype niet bepalen voor ' || pbestelnr,
pbestelnr);
END IF;
RETURN lfactype;
END;
BEGIN
c_old_bestelnummer := '';
c_old_factuurnr := '';
c_teller := 0;
c_fact_datum := SYSDATE;
c_rollback := FALSE;
-- Facturen
FOR rc IN cfactuurregel
LOOP
IF rc.bestelnummer = c_old_bestelnummer
AND rc.factuurnr = c_old_factuurnr
THEN
-- Toevoegen nieuwe factuurregel; c_newfactuurkey nog steeds actueel!
c_factuurregel := c_factuurregel + 1;
BEGIN
INSERT INTO fin_factuurregel (
fin_factuur_key,
fin_factuurregel_nr,
fin_factuurregel_totaal,
fin_factuurregel_btw,
fin_factuurregel_omschrijving,
fin_factuurregel_referentie,
fin_btwtabelwaarde_key
)
VALUES (
c_newfactuurkey,
rc.regelnummer,
rc.totaalexcl,
rc.totaalbtw,
SUBSTR (rc.omschrijving, 1, 60),
rc.kostenplaats,
DECODE (rc.totaalbtw,
0, 1, -- NL standaard 0/Nul
rc.fin_btwtabelwaarde_key)
);
uwva_imp_writelog (
p_import_key,
'I',
'Factuurregel '
|| c_factuurregel
|| ' toegevoegd aan factuur '
|| c_newfactuurkey,
rc.bestelnummer || ' / ' || rc.factuurnr
);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'W',
'Kan factuur(regel) niet toevoegen! ' || v_errormsg,
rc.bestelnummer || ' / ' || rc.factuurnr
);
c_rollback := TRUE;
END;
c_teller := c_teller + 1;
ELSE
-- Toevoegen nieuwe factuur + factuurregel!
c_old_bestelnummer := rc.bestelnummer;
c_old_factuurnr := rc.factuurnr;
c_factuurregel := 1;
c_bestelnummer_index := INSTR (rc.bestelnummer, '/');
c_mld_opdr_key := NULL;
c_cnt_contract_key := NULL;
c_bes_bestelopdr_key := NULL;
IF c_bestelnummer_index = 0
THEN
c_bestelnummer_s1 := rc.bestelnummer;
c_bestelnummer_s2 := '';
ELSE
c_bestelnummer_s1 :=
SUBSTR (rc.bestelnummer, 1, c_bestelnummer_index - 1);
c_bestelnummer_s2 :=
SUBSTR (rc.bestelnummer, c_bestelnummer_index + 1);
END IF;
c_find := FALSE;
--c_find_bestelnummer := FALSE;
c_fac_type := '';
c_fac_type := getfactype (rc.bestelnummer);
IF c_fac_type = 'O'
THEN
IF c_bestelnummer_index != 0
AND ASCII (c_prefix1) >= 48
AND ASCII (c_prefix1) <= 57
-- Geen prefix maar het is wel een opdracht (afgedwongen door /).
THEN
-- c_bestelnummer_s1 bevat geen prefix
-- c_bestelnummer_s2 bevat het gedeelte na de /
c_find := TRUE;
ELSE
c_i := 1;
LOOP
IF (ASCII (SUBSTR (c_bestelnummer_s1, c_i, 1)) >= 48
AND ASCII (SUBSTR (c_bestelnummer_s1, c_i, 1)) <= 57)
THEN
c_find := TRUE;
ELSE
c_i := c_i + 1;
END IF;
EXIT WHEN (c_find OR c_i > LENGTH (c_bestelnummer_s1));
END LOOP;
IF c_find
THEN
c_bestelnummer_s1 := SUBSTR (c_bestelnummer_s1, c_i);
ELSE
uwva_imp_writelog (
p_import_key,
'W',
'Kan bestelnummer niet bepalen!',
rc.bestelnummer || ' / ' || rc.factuurnr
);
c_rollback := TRUE;
END IF;
END IF;
ELSIF c_fac_type = 'C'
THEN
-- Haal prefix 'C' of 'c' eraf.
c_bestelnummer_s1 := SUBSTR (c_bestelnummer_s1, 2);
c_find := TRUE;
ELSIF c_fac_type = 'B'
THEN
-- Haal prefix O- eraf; c_bestelnummer_s2 is goed.
c_bestelnummer_s1 := SUBSTR (c_bestelnummer_s1, 3);
c_find := TRUE;
END IF;
-- c_bestelnummer_s1 bevat ordernummer
-- c_bestelnummer_s2 bevat volgnummer van de (bestel)opdracht; bij
-- contracten is deze waarde leeg
-- Vind nu de onderliggende 'O', 'C' of 'B'.
IF c_fac_type = 'O'
THEN
-- Bestaat de opdracht wel <20>n is deze geldig!?
BEGIN
SELECT mld_opdr_key
INTO c_mld_opdr_key
FROM mld_opdr
WHERE mld_melding_key =
fac.safe_to_number (c_bestelnummer_s1)
AND mld_opdr_bedrijfopdr_volgnr =
fac.safe_to_number (c_bestelnummer_s2)
AND mld_statusopdr_key NOT IN (1, 2, 3); -- Ongeldige opdrachten (nog)
EXCEPTION
WHEN NO_DATA_FOUND
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'I',
'Kan opdrachtreferentie '
|| rc.bestelnummer
|| ' niet vinden! '
|| v_errormsg,
c_bestelnummer_s1 || '/' || c_bestelnummer_s2
);
c_find := FALSE;
END;
ELSIF c_fac_type = 'C'
THEN
-- Bestaat het contract wel (zie ook UWVA#23124 + UWVA#24359 + UWVA#25579)!?
BEGIN
SELECT cnt_contract_key
INTO c_cnt_contract_key
FROM (SELECT cnt_contract_key
FROM cnt_v_aanwezigcontract c
WHERE c.cnt_contract_nummer_intern =
c_bestelnummer_s1
AND c.ins_discipline_key != 360 -- Abonnementen
AND c.cnt_contract_status = 0 -- NIET Gesloten!
AND (NOT EXISTS -- Bij >1 versie relevantste irt. besteldatum!
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern =
c.cnt_contract_nummer_intern
AND cnt_contract_versie !=
c.cnt_contract_versie)
OR rc.besteldatum BETWEEN TRUNC(c.cnt_contract_looptijd_van)
AND TRUNC(c.cnt_contract_looptijd_tot))
UNION ALL -- UWVA#25579: Voor abonnementen altijd laatste versie!
SELECT c.cnt_contract_key
FROM cnt_v_aanwezigcontract c
WHERE c.cnt_contract_nummer_intern =
c_bestelnummer_s1
AND c.ins_discipline_key = 360 -- Abonnementen
AND c.cnt_contract_status = 0 -- NIET Gesloten!
AND NOT EXISTS -- Alleen laatste versies van contracten!
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern =
c.cnt_contract_nummer_intern
AND cnt_contract_versie >
c.cnt_contract_versie));
EXCEPTION
WHEN NO_DATA_FOUND
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'I',
'Kan contractreferentie '
|| rc.bestelnummer
|| ' niet vinden! '
|| v_errormsg,
c_bestelnummer_s1
);
c_find := FALSE;
END;
ELSIF c_fac_type = 'B'
THEN
-- Bestaat de bestelopdracht wel <20>n is deze geldig!?
BEGIN
IF c_bestelnummer_s2 IS NULL -- Kan dat (nog) wel???
THEN
c_bestelnummer_t := c_bestelnummer_s1;
ELSE
c_bestelnummer_t :=
c_bestelnummer_s1 || '/' || c_bestelnummer_s2;
END IF;
-- UWVA#22649: Om igv. voorkomens met dezelfde bestelopdr_id de
-- juiste te pakken, hier filteren op een status waarin een
-- factuur mag worden ontvangen (In Bestelling/4, Geleverd/6 of
-- Verwerkt/7).
-- UWVA#24723: Je vind <20><>n bestelopdracht of anders handmatig
-- maar oppakken! -> Later nog maar eens dieper analyseren of
-- het mogelijk is in 1x de enige juiste te vinden...
SELECT bes_bestelopdr_key
INTO c_bes_bestelopdr_key
FROM bes_bestelopdr
WHERE bes_bestelopdr_id = c_bestelnummer_t
AND bes_bestelopdr_status IN (4, 6, 7); -- Geldige bestelopdrachten
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'I',
'Kan bestelopdrachtreferentie '
|| rc.bestelnummer
|| ' niet vinden! '
|| v_errormsg,
c_bestelnummer_s1 || '/' || c_bestelnummer_s2
);
c_find := FALSE;
END;
END IF;
--c_opmerking := '';
BEGIN
SELECT fin_s_fin_factuur_key.NEXTVAL
INTO c_newfactuurkey
FROM DUAL;
SELECT SUM (fac.safe_to_number (totaalexcl)) totaal,
SUM (fac.safe_to_number (COALESCE (totaalbtw, '0')))
totaalbtw
INTO c_fact_tot, c_fact_totbtw
FROM uwva_imp_factuur
WHERE bestelnummer = rc.bestelnummer
AND factuurnr = rc.factuurnr;
INSERT INTO fin_factuur (
fin_factuur_key,
fin_factuur_totaal,
fin_factuur_totaal_btw,
mld_opdr_key,
cnt_contract_key,
bes_bestelopdr_key,
prs_perslid_key_user,
fin_factuur_datum,
fin_factuur_opmerking,
fin_factuur_statuses_key,
fin_factuur_nr,
fin_factuur_boekmaand
)
VALUES (
c_newfactuurkey,
c_fact_tot,
c_fact_totbtw,
c_mld_opdr_key,
c_cnt_contract_key,
c_bes_bestelopdr_key,
NULL,
c_fact_datum,
'Ge<EFBFBD>mporteerde factuur', -- ' || c_opmerking,
2,
rc.factuurnr,
SUBSTR (rc.afleverdatum, 1, 4)
|| '-'
|| SUBSTR (rc.afleverdatum, 5, 2)
);
fac.trackaction ('FINNEW',
c_newfactuurkey,
NULL,
NULL,
NULL);
INSERT INTO fin_factuurregel (
fin_factuur_key,
fin_factuurregel_nr,
fin_factuurregel_totaal,
fin_factuurregel_btw,
fin_factuurregel_omschrijving,
fin_factuurregel_referentie,
fin_btwtabelwaarde_key
)
VALUES (
c_newfactuurkey,
rc.regelnummer,
rc.totaalexcl,
rc.totaalbtw,
SUBSTR (rc.omschrijving, 1, 60),
rc.kostenplaats,
DECODE (rc.totaalbtw,
0, 1, -- NL standaard 0/Nul
rc.fin_btwtabelwaarde_key)
);
--IF c_find_bestelnummer
--THEN
-- c_write_bestelnummer := c_bestelopdr_id;
--ELSE
-- c_write_bestelnummer := rc.bestelnummer;
--END IF;
uwva_imp_writelog (
p_import_key,
'I',
'Factuur '
|| c_newfactuurkey
|| ' toegevoegd met factuurregel '
|| c_factuurregel,
--c_write_bestelnummer || ' / ' || rc.factuurnr
rc.bestelnummer || ' / ' || rc.factuurnr
);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'W',
'Kan factuur(regel) niet toevoegen! ' || v_errormsg,
rc.bestelnummer || '/' || rc.factuurnr
);
c_rollback := TRUE;
END;
c_teller := c_teller + 1;
END IF;
END LOOP;
-- Zet facturen automatisch op Akkoord als deze aan match-criteria voldoen.
FOR rc IN ( SELECT f.fin_factuur_key factuur_key
FROM fin_factuur f
WHERE f.fin_factuur_datum = c_fact_datum
ORDER BY f.fin_factuur_key)
LOOP
FIN.matchandsetfactuur (rc.factuur_key, FALSE);
--COMMIT;
END LOOP;
-- UWVA#19018: Notificeer niet goedgekeurde facturen naar de budgethouders
-- (1 mail per persoon). Hierbij maakt het niet veel uit of ze net zijn
-- geimporteerd of al eerder (of handmatig ingevoerd). Medium wordt bepaald
-- door mode bij FININF.
fac.putjobnotifications ('uwva_v_noti_finreminder', NULL, 0);
--SELECT COUNT ( * )
-- INTO c_i
-- FROM imp_log
-- WHERE fac_import_key = p_import_key AND imp_log_status IN ('E', 'W');
IF c_rollback = TRUE
THEN
uwva_imp_writelog (p_import_key,
'E',
v_errormsg,
'Importproces facturen afgebroken!');
ROLLBACK;
ELSE
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (p_import_key,
'E',
v_errormsg,
'Importproces facturen afgebroken!');
ROLLBACK;
END;
/
-- UWVA#19018: Notificeer niet gefiatteerde facturen naar de budgethouders (1 mail per persoon)
-- Maakt hierbij niet veel uit of ze net zijn geimporteerd of vroeger (of handmatig ingevoerd)
-- Medium wordt bepaalt door mode bij FININF
-- Wordt aangeroepen na factuurimport
-- UWVA#27940: Alleen actieve kostenplaatsen
/* Formatted on 25-11-2013 21:30:58 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_noti_finreminder
(
code,
sender,
receiver,
text,
key,
par1,
par2,
xkey
)
AS
SELECT 'FININF',
'',
prs.getkpverantwoordelijke (kp.prs_kostenplaats_key, 2, -1)
budgethouder,
'Fiatteringsverzoek voor ' || COUNT (f.fin_factuur_key)
|| DECODE (COUNT (f.fin_factuur_key),
1, ' factuur.',
' facturen.'),
MIN (f.fin_factuur_key), -- Dummy key, althans een willekeurige!
NULL,
NULL,
NULL
FROM fin_factuur f, prs_v_aanwezigkostenplaats kp
WHERE f.fin_factuur_verwijder IS NULL
AND f.fin_factuur_statuses_key = 2
AND f.fin_factuur_datum > SYSDATE - 0.1 / 24 -- Minder dan 6 minuten geleden
AND fin.getfactuurkostenplaats (f.fin_factuur_key) =
kp.prs_kostenplaats_key
AND kp.prs_kostenplaats_omschrijving NOT LIKE 'INACTIEF%'
AND (kp.prs_kostenplaats_eind > TRUNC (SYSDATE)
OR kp.prs_kostenplaats_eind IS NULL)
GROUP BY prs.getkpverantwoordelijke (kp.prs_kostenplaats_key, 2, -1);
--UWVA#20283 rapportage tbv combinatieconrolle mismatch bij opdrachten
CREATE OR REPLACE VIEW uwva_v_rap_combinatievalidatie
(
fclt_f_factuurnr,
opdrachtnummer,
factuurdatum,
kostenplaats,
factuurbedrag,
fclt_f_uitvoerende,
fclt_f_status
)
AS
SELECT TO_CHAR (fff.fin_factuur_key),
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
opdrachtnr,
TO_CHAR (fff.fin_factuur_datum, 'DD-MM-YYYY') factuurdatum,
k.prs_kostenplaats_nr
|| ' ('
|| k.prs_kostenplaats_omschrijving
|| ')'
kostenplaats,
fff.fin_factuur_totaal,
u.naam uitvoerende,
fs.fin_factuur_statuses_omschr
FROM fin_factuur fff,
mld_opdr o,
mld_melding m,
fin_factuur_statuses fs,
mld_v_uitvoerende u,
prs_kostenplaats k,
prs_kostensoort ks,
mld_stdmelding std
WHERE fff.prs_kostensoort_key IS NOT NULL
AND fff.bes_bestelopdr_key IS NULL
AND fff.cnt_contract_key IS NULL
AND fff.fin_factuur_statuses_key = fs.fin_factuur_statuses_key
AND o.mld_opdr_key = fff.mld_opdr_key
AND m.mld_melding_key = o.mld_melding_key
AND o.prs_kostenplaats_key = k.prs_kostenplaats_key
AND u.mld_uitvoerende_key(+) = o.mld_uitvoerende_keys
AND fff.prs_kostensoort_key = ks.prs_kostensoort_key
AND std.mld_stdmelding_key = m.mld_stdmelding_key
AND NOT EXISTS
(SELECT 1
FROM mld_opdr o2,
prs_kostenplaats k2,
prs_kostencombinatie kc2,
fin_factuur f2
WHERE o.mld_opdr_key = f2.mld_opdr_key
AND o2.prs_kostenplaats_key =
k2.prs_kostenplaats_key
AND k2.prs_kostenplaatsgrp_key =
kc2.prs_kostenplaatsgrp_key
AND kc2.prs_kostensoort_key =
fff.prs_kostensoort_key);
--UWVA#20417 rapport dat controleerd of de kostensoort ingevuld bij de opdracht overeenkomst met de gewenste kostensoort van de uitvoerende
CREATE OR REPLACE VIEW uwva_v_rap_kostsrtuitvoerende
(
fclt_f_factuurnr,
opdrachtnummer,
factuurdatum,
kostenplaats,
factuurbedrag,
fclt_f_uitvoerende,
fclt_f_status,
kostensoort_opdracht,
kostensoort_uitvoerende
)
AS
SELECT TO_CHAR (f.fin_factuur_nr),
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
opdrachtnr,
TO_CHAR (f.fin_factuur_datum, 'DD-MM-YYYY') factuurdatum,
k.prs_kostenplaats_nr
|| ' ('
|| k.prs_kostenplaats_omschrijving
|| ')'
kostenplaats,
f.fin_factuur_totaal,
u.prs_bedrijf_naam,
fs.fin_factuur_statuses_omschr,
COALESCE (pk1.prs_kostensoort_oms, pk2.prs_kostensoort_oms)
kostensoort_opdracht,
pk3.prs_kostensoort_oms kostensoort_uitvoerende
FROM fin_factuur f,
mld_opdr o,
prs_bedrijf u,
fin_factuur_statuses fs,
mld_melding m,
mld_stdmelding std,
mld_discipline dsc,
prs_kenmerklink,
prs_kostenplaats k,
prs_kostensoort pk1,
prs_kostensoort pk2,
prs_kostensoort pk3
WHERE f.mld_opdr_key IS NOT NULL
AND o.mld_opdr_key = f.mld_opdr_key
AND u.prs_bedrijf_key = o.mld_uitvoerende_keys
AND f.fin_factuur_statuses_key = fs.fin_factuur_statuses_key
AND m.mld_melding_key = o.mld_melding_key
AND std.mld_stdmelding_key = m.mld_stdmelding_key
AND dsc.ins_discipline_key = std.mld_ins_discipline_key
AND prs_link_key(+) = prs_bedrijf_key
AND o.prs_kostenplaats_key = k.prs_kostenplaats_key
AND pk1.prs_kostensoort_key(+) = std.prs_kostensoort_key
AND pk2.prs_kostensoort_key(+) = dsc.prs_kostensoort_key
AND pk3.prs_kostensoort_key(+) = prs_kenmerklink_waarde
AND prs_kenmerk_key = 1272 -- kostensoort bij een relatie
AND (pk1.prs_kostensoort_key != prs_kenmerklink_waarde
OR pk2.prs_kostensoort_key != prs_kenmerklink_waarde);
-- UWVA#21021: Rapportage met factuurregels van Koninklijke van der Most (BES & MLD)
-- prs_bedrijf_keys: 32678 - "Koninklijke van der Most (BESTELLINGEN)"
-- 55025 - "Koninklijke van der Most" (MLD)
CREATE OR REPLACE VIEW uwva_v_rap_facturen_vdmost
AS
SELECT opdrachtnr hide_f_sort,
TO_CHAR(nr) fclt_f_nr,
TO_CHAR(datum, 'DD-MM-YYYY') fclt_d_datum,
factuurregel,
type,
opdrachtnr,
regelnr,
omschrijving,
kostenplaats,
excl_BTW,
btw_tarief,
incl_BTW,
DECODE (status, 'Ingevoerd', 'In behandeling',
status)
fclt_f_status,
budgethouder fclt_f_budgethouder
FROM (
SELECT ff.fin_factuur_key nr,
ff.fin_factuur_datum datum,
-- pb.prs_bedrijf_naam bedrijf,
ff.fin_factuur_nr factuurregel,
'Opdracht' type,
'A'||mo.mld_melding_key||'/'||mo.mld_opdr_bedrijfopdr_volgnr opdrachtnr,
ffr.fin_factuurregel_nr regelnr,
ffr.fin_factuurregel_omschrijving omschrijving,
ffr.fin_factuurregel_referentie kostenplaats,
ffr.fin_factuurregel_totaal excl_BTW,
COALESCE (fbtw.fin_btwtabelwaarde_perc, 0)||'%' btw_tarief,
ffr.fin_factuurregel_totaal + ffr.fin_factuurregel_btw incl_BTW,
ffs.fin_factuur_statuses_omschr status,
pp.prs_perslid_naam_full budgethouder
FROM fin_factuurregel ffr, fin_factuur ff, fin_factuur_statuses ffs,
mld_opdr mo,
prs_bedrijf pb,
fin_btwtabelwaarde fbtw,
prs_v_perslid_fullnames pp
WHERE pb.prs_bedrijf_key = 55025
AND mo.mld_uitvoerende_keys = pb.prs_bedrijf_key
AND ff.mld_opdr_key = mo.mld_opdr_key
AND ff.fin_factuur_statuses_key < 7
AND ffs.fin_factuur_statuses_key = ff.fin_factuur_statuses_key
AND ffr.fin_factuur_key = ff.fin_factuur_key
AND fbtw.fin_btwtabelwaarde_key(+) = ffr.fin_btwtabelwaarde_key
AND prs.getkpverantwoordelijke (
fin.getfactuurkostenplaats (ff.fin_factuur_key),
2,
-1) = pp.prs_perslid_key
UNION ALL
SELECT ff.fin_factuur_key nr,
ff.fin_factuur_datum datum,
-- pb.prs_bedrijf_naam bedrijf,
ff.fin_factuur_nr factuurregel,
'Bestelling' type,
bbo.bes_bestelopdr_id opdrachtnr,
ffr.fin_factuurregel_nr regelnr,
ffr.fin_factuurregel_omschrijving omschrijving,
ffr.fin_factuurregel_referentie kostenplaats,
ffr.fin_factuurregel_totaal excl_BTW,
COALESCE (fbtw.fin_btwtabelwaarde_perc, 0)||'%' btw_tarief,
ffr.fin_factuurregel_totaal + ffr.fin_factuurregel_btw incl_BTW,
ffs.fin_factuur_statuses_omschr status,
pp.prs_perslid_naam_full budgethouder
FROM fin_factuurregel ffr, fin_factuur ff, fin_factuur_statuses ffs,
bes_bestelopdr bbo,
prs_bedrijf pb,
fin_btwtabelwaarde fbtw,
prs_v_perslid_fullnames pp
WHERE pb.prs_bedrijf_key = 32678
AND bbo.prs_bedrijf_key = pb.prs_bedrijf_key
AND ff.bes_bestelopdr_key = bbo.bes_bestelopdr_key
AND ff.fin_factuur_statuses_key < 7
AND ffs.fin_factuur_statuses_key = ff.fin_factuur_statuses_key
AND ffr.fin_factuur_key = ff.fin_factuur_key
AND fbtw.fin_btwtabelwaarde_key(+) = ffr.fin_btwtabelwaarde_key
AND prs.getkpverantwoordelijke (
fin.getfactuurkostenplaats (ff.fin_factuur_key),
2,
-1) = pp.prs_perslid_key
)
ORDER BY 1;
-- UWVA#21019: Reminders naar budgethouders dat ze facturen moeten accorderen
-- (na 1 week en na 3 weken)
-- UWVA#27940: Alleen actieve kostenplaatsen
/* Formatted on 25-11-2013 21:30:58 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW uwva_v_noti_factuurreminder
(
code,
sender,
receiver,
text,
key,
par1,
par2,
xkey
)
AS
SELECT 'CUST11',
'',
prs.getkpverantwoordelijke (kp.prs_kostenplaats_key, 2, -1)
budgethouder,
'RAPPEL: '
|| COUNT (f.fin_factuur_key)
|| ' niet automatisch goedgekeurde factuurregel'
|| DECODE (COUNT (f.fin_factuur_key), 1, '. (', 's. (')
|| TO_CHAR (TRUNC (SYSDATE - 7), 'DD-MM-YYYY')
|| ')',
MIN (f.fin_factuur_key), -- Dummy key, althans een willekeurige!
NULL,
NULL,
NULL
FROM fin_factuur f, prs_v_aanwezigkostenplaats kp
WHERE f.fin_factuur_verwijder IS NULL
AND f.fin_factuur_statuses_key = 2
AND TRUNC (f.fin_factuur_datum) = TRUNC (SYSDATE - 7) -- 1 week (7 dagen) geleden
AND fin.getfactuurkostenplaats (f.fin_factuur_key) =
kp.prs_kostenplaats_key
AND kp.prs_kostenplaats_omschrijving NOT LIKE 'INACTIEF%'
AND (kp.prs_kostenplaats_eind > TRUNC (SYSDATE)
OR kp.prs_kostenplaats_eind IS NULL)
GROUP BY prs.getkpverantwoordelijke (kp.prs_kostenplaats_key, 2, -1)
UNION
SELECT 'CUST12',
'',
prs.getkpverantwoordelijke (kp.prs_kostenplaats_key, 2, -1)
budgethouder,
'TWEEDE RAPPEL: '
|| COUNT (f.fin_factuur_key)
|| ' niet automatisch goedgekeurde factuurregel'
|| DECODE (COUNT (f.fin_factuur_key), 1, '. (', 's. (')
|| TO_CHAR (TRUNC (SYSDATE - 21), 'DD-MM-YYYY')
|| ')',
MIN (f.fin_factuur_key), -- Dummy key, althans een willekeurige!
NULL,
NULL,
NULL
FROM fin_factuur f, prs_v_aanwezigkostenplaats kp
WHERE f.fin_factuur_verwijder IS NULL
AND f.fin_factuur_statuses_key = 2
AND TRUNC (f.fin_factuur_datum) = TRUNC (SYSDATE - 21) -- 3 weken (21 dagen) geleden
AND fin.getfactuurkostenplaats (f.fin_factuur_key) =
kp.prs_kostenplaats_key
AND kp.prs_kostenplaats_omschrijving NOT LIKE 'INACTIEF%'
AND (kp.prs_kostenplaats_eind > TRUNC (SYSDATE)
OR kp.prs_kostenplaats_eind IS NULL)
GROUP BY prs.getkpverantwoordelijke (kp.prs_kostenplaats_key, 2, -1);
-- UWVA#20124: Rapportage voor doorbelasten geannuleerde bestellingen
CREATE OR REPLACE VIEW uwva_v_rap_bes_annul_doorbel
AS
SELECT ba.bes_bestelling_key hide_f_sort
,ba.nummer
,ba.ins_discipline_key fclt_3d_discipline_key
,ba.ins_discipline_omschrijving fclt_f_catalogus
,fac.safe_to_number(ba.bestelbedrag) bestelbedrag
-- ,ba.te_laat * fac.safe_to_number(COALESCE(MAX(km.bes_kenmerkbestell_waarde), '100') ) pct
-- ,ROUND(ba.te_laat * fac.safe_to_number(COALESCE(MAX(km.bes_kenmerkbestell_waarde), '100') )/100 * ba.bestelbedrag, 2) verwacht
,ROUND(ba.bes_bestelling_leverdatum - ba.fac_tracking_datum) dagen_voor_horizon
,COALESCE( SUM(ff.fin_factuur_totaal), 0) gefactureerd_exc
,COALESCE( SUM(ff.fin_factuur_totaal+ff.fin_factuur_totaal_btw), 0) gefactureerd_inc
-- ,SUM(fin_factuur_totaal_btw) gefactureerd_btw
-- ,CASE fin.tolerantiematch (ba.ins_discipline_key,
-- 'B',
-- COALESCE( SUM(ff.fin_factuur_totaal), 0),
-- ba.te_laat * fac.safe_to_number(COALESCE(MAX(km.bes_kenmerkbestell_waarde), '100') )/100 * ba.bestelbedrag)
-- WHEN 1 THEN 'OK'
-- WHEN 0 THEN 'NOK'
-- ELSE 'nnb'
-- END ok_nok
FROM (
SELECT DISTINCT bb.bes_bestelling_key
,'A-'||bb.bes_bestelling_key nummer
,cat.ins_discipline_omschrijving
,cat.ins_discipline_key
,SUM(bboi.bes_bestelopdr_item_aantal*bboi.bes_bestelopdr_item_prijs) bestelbedrag
,bboi.bes_bestelopdr_key
,bb.bes_bestelling_leverdatum
,ft.fac_tracking_datum
,MAX(art.bes_srtdeel_annuleerdagen) hor
,CASE
WHEN ( bb.bes_bestelling_leverdatum
< ft.fac_tracking_datum + MAX(art.bes_srtdeel_annuleerdagen))
THEN 1
ELSE 0
END te_laat
FROM bes_bestelling bb,
bes_bestelling_item bbi,
bes_bestelopdr_item bboi,
bes_discipline cat,
bes_srtgroep grp,
bes_srtdeel art,
fac_tracking ft,
fac_srtnotificatie fsn
WHERE bb.bes_bestelling_parentkey IS NULL
AND bb.bes_bestelling_status = 8
AND bbi.bes_bestelling_key = bb.bes_bestelling_key
AND bboi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND art.bes_srtdeel_key = bbi.bes_srtdeel_key
AND grp.bes_srtgroep_key = art.bes_srtgroep_key
AND cat.ins_discipline_key = grp.ins_discipline_key
AND fsn.fac_srtnotificatie_code = 'BES2CA'
AND ft.fac_srtnotificatie_key = fsn.fac_srtnotificatie_key
AND ft.fac_tracking_refkey = bboi.bes_bestelopdr_key
AND ins_discipline_verwijder IS NULL
AND bes_srtgroep_verwijder IS NULL
AND bes_srtdeel_verwijder IS NULL
GROUP BY bb.bes_bestelling_key
,bboi.bes_bestelopdr_key
,cat.ins_discipline_omschrijving
,cat.ins_discipline_key
,bb.bes_bestelling_leverdatum
,ft.fac_tracking_datum) ba
LEFT OUTER JOIN
( SELECT *
FROM fin_factuur
WHERE bes_bestelopdr_key IS NOT NULL
AND fin_factuur_statuses_key != 1) ff
ON ff.bes_bestelopdr_key = ba.bes_bestelopdr_key
LEFT OUTER JOIN
( SELECT bes_bestelling_key, bes_kenmerkbestell_waarde
FROM bes_kenmerk bk
,bes_kenmerkbestell bkb
WHERE bk.bes_srtkenmerk_key = 641
AND bkb.bes_kenmerk_key = bk.bes_kenmerk_key) km
ON km.bes_bestelling_key = ba.bes_bestelling_key
GROUP BY ba.bes_bestelling_key
,ba.nummer
,ba.ins_discipline_omschrijving
,ba.ins_discipline_key
,ba.bestelbedrag
,ba.bes_bestelling_leverdatum
,ba.fac_tracking_datum
,ba.te_laat;
CREATE OR REPLACE PROCEDURE uwva_import_factuur_lease (
p_import_key IN NUMBER)
AS
-- Standaard volgorde van de kolommen in het CSV-formaat, waarbij 3 velden VERPLICHT (minimaal door Facilitor vereist)
-- Variabelelijst
-- v_leveranciernr: 1
-- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet")
-- v_factuurdatum: 3
-- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_locatie: 5
-- v_afleverdatum: 6
-- v_omschrijving: 7
-- v_aantal: 8
-- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet")
-- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet")
-- v_docid: 12
-- v_debiteur_nr: 13
-- v_opmerking: 14
-- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/<leeg> waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet")
-- v_kenmerk1: 16
-- v_kenmerk2: 17
-- v_kenmerk3: 18
-- v_kenmerk4: 19
-- v_kenmerk5: 20
-- v_boekmaand: 21 (GELDIG, Indien gevuld dan moet er een geldige jaar-maand combinatie staan. Andere waarden leidt tot "Incompleet")
-- Eerst geprobeerd via nette array, geeft problemen met type buiten package, en in package lukt niet omdat
-- de import in Facilitor package-loos is (en niet 1-2-3 zo kan worden gemaakt vanwege alle bestaande klanten)
-- v_seq_of_columns ListOfInteger := (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21);
-- Dus dan maar via een string, en ook op slimme wijze, nl alsof het een ingelezen factuur-record is met p_fielddelimitor
v_seq_of_columns VARCHAR (100);
-- Afwijkingen op deze volgorde zijn in eigen cust_import_factuur te regelen.
-- Als leveranciersnr en factuurnr b.v. zijn omgedraaid in het CSV-formaat,
-- dan factuurimport ListOfInteger := (2,1,3,4,5,6,7,8,9,10,11,12);
-- v_seq_of_columns := '2;1;3;4;5;6;7;8;9;10;11;12';
-- Als leveranciersnr NIET in CSV staat, dan factuurimport ListOfInteger := (0,2,3,4,5,6,7,8,9,10,11,12);
-- v_seq_of_columns := '0;2;3;4;5;6;7;8;9;10;11;12';
-- M.a.w. waar een 0 staat, wordt de variabele niet ingelezen en blift LEEG.
BEGIN
v_seq_of_columns := '0;1;0;8;0;0;4;0;11;13;12;0;0;0;0;3;10;5;0;0;0';
fac_import_factuur_body (p_import_key, v_seq_of_columns);
-- Stap 1: haal de header van de factuur uit de import tabel
DELETE fac_imp_factuur
WHERE UPPER (ordernr) = 'KENTEKEN' AND fac_import_key = p_import_key;
-- Stap 2: zet de juiste kostenplaats in kenmerkveld 12 voor berijderskosten
UPDATE fac_imp_factuur f
SET f.kenmerk12 = '122203'
WHERE fac_import_key = p_import_key
AND f.kenmerk1 IN
(SELECT c.fac_usrdata_code
FROM fac_usrdata c, fac_usrtab t
where c.fac_usrtab_key = t.fac_usrtab_key
and c.fac_usrdata_verwijder IS NULL
and t.fac_usrtab_naam = '122203');
-- Stap 3: zet de juiste kostenplaats in kenmerkveld 12 voor leasekosten
UPDATE fac_imp_factuur f
SET f.kenmerk12 = '451105'
WHERE fac_import_key = p_import_key
AND f.kenmerk1 IN
(SELECT c.fac_usrdata_code
FROM fac_usrdata c, fac_usrtab t
where c.fac_usrtab_key = t.fac_usrtab_key
and c.fac_usrdata_verwijder IS NULL
and t.fac_usrtab_naam = '451105');
-- Stap 4:
-- * zet het kenteken in kenmerkveld 11
-- * de factuurdatum is gelijk aan de inleesdatum
UPDATE fac_imp_factuur f
SET f.kenmerk11 = f.ordernr,
f.factuurdatum = (SELECT TO_CHAR (SYSDATE, 'dd-mm-yyyy') FROM DUAL)
WHERE fac_import_key = p_import_key
AND f.kenmerk12 IN ('122203', '451105');
-- Stap 5: Haal voor de berijderskosten kostenplaats 122203 het juiste contractnummer erbij obv kenteken, personeelsnummer en contracttype (disc. key = 426)
-- Indien er geen berijdersovereenkomst gevonden kan worden blijft het veld ordernr leeg
UPDATE fac_imp_factuur f
SET f.ordernr = f.kenmerk11 || '/' || f.kenmerk2
WHERE fac_import_key = p_import_key AND f.kenmerk12 = '122203';
-- Stap 6: Voeg prefix C toe aan het ordernummer
UPDATE fac_imp_factuur f
SET f.ordernr = CONCAT ('C', f.ordernr)
WHERE fac_import_key = p_import_key
AND f.kenmerk12 IN ('122203', '451105')
AND f.ordernr IS NOT NULL;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE uwva_update_factuur_lease (
p_import_key IN NUMBER)
AS
-- Een factuur(record) wordt aangemaakt voor iedere factuurnr/bestelnummer-
-- combinatie en dan wordt voor iedere regel een regel(record) aangemaakt.
CURSOR cfactuurregel
IS
SELECT imp.*, btw.*
FROM (SELECT factuurnr,
ordernr bestelnummer,
kenmerk3 regelnummer,
NULL besteldatum,
kostprijs totaalexcl,
btw_bedrag totaalbtw,
NULL nrbesteld,
NULL nrgeleverd,
afleverdatum,
omschrijving,
NULL eenheid,
kenmerk12 kostenplaats,
btw btwcode,
fac_import_key,
fac_imp_file_index
FROM fac_imp_factuur
WHERE fac_import_key = p_import_key) imp -- UWVA#36062: historische regels zonder fac_import_key moeten niet meegenomen worden in deze update
LEFT JOIN
fin_btwtabelwaarde btw
ON imp.btwcode = TO_CHAR (btw.fin_btwtabelwaarde_perc)
AND btw.fin_btwtabel_key = 1 -- NL standaard
ORDER BY imp.factuurnr, imp.bestelnummer, imp.regelnummer;
v_errormsg VARCHAR2 (1000);
oracle_err_mes VARCHAR2 (200);
c_i NUMBER;
c_teller NUMBER;
c_newfactuurkey NUMBER;
c_factuurregel NUMBER;
c_fin_factuurregel_key NUMBER;
c_fac_type VARCHAR2 (1);
c_prefix1 VARCHAR2 (1);
c_bestelnummer_index NUMBER;
c_bestelnummer_s1 VARCHAR2 (20);
c_bestelnummer_s2 VARCHAR2 (20);
c_bestelnummer_t VARCHAR2 (40);
c_old_bestelnummer uwva_imp_factuur.bestelnummer%TYPE;
c_old_factuurnr uwva_imp_factuur.factuurnr%TYPE;
--c_write_bestelnummer VARCHAR2 (20);
c_bestelopdr_id VARCHAR2 (20);
c_fact_tot NUMBER;
c_fact_totbtw NUMBER;
c_find BOOLEAN;
--c_find_bestelnummer BOOLEAN;
c_mld_opdr_key NUMBER (10);
c_cnt_contract_key NUMBER (10);
c_bes_bestelopdr_key NUMBER (10);
c_prs_bedrijf_naam VARCHAR2 (100);
--c_opmerking VARCHAR2 (200);
c_fact_datum DATE;
c_rollback BOOLEAN;
FUNCTION getfactype (pbestelnr IN VARCHAR2)
RETURN VARCHAR2
IS
c_prefix1 VARCHAR2 (1);
lfactype VARCHAR2 (1);
BEGIN
IF LENGTH (pbestelnr) = 0
THEN
RETURN '';
END IF;
c_prefix1 := SUBSTR (pbestelnr, 1, 1);
IF SUBSTR (pbestelnr, 1, 2) = 'O-'
THEN
lfactype := 'B'; -- Bestelling
ELSIF ( ( (ASCII (c_prefix1) >= 65 AND ASCII (c_prefix1) <= 90)
OR (ASCII(c_prefix1) >= 97 AND ASCII (c_prefix1) <= 122))
AND ASCII (c_prefix1) != 67
AND ASCII (c_prefix1) != 99)
THEN
lfactype := 'O'; -- Opdracht (Melding)
ELSIF (ASCII (c_prefix1) = 67 OR ASCII (c_prefix1) = 99)
THEN
lfactype := 'C'; -- Contract
ELSE
uwva_imp_writelog (p_import_key,
'I',
'Kan besteltype niet bepalen voor ' || pbestelnr,
pbestelnr);
END IF;
RETURN lfactype;
END;
BEGIN
c_old_bestelnummer := '';
c_old_factuurnr := '';
c_teller := 0;
c_fact_datum := SYSDATE;
c_rollback := FALSE;
-- Facturen
FOR rc IN cfactuurregel
LOOP
IF rc.bestelnummer = c_old_bestelnummer
AND rc.factuurnr = c_old_factuurnr
THEN
-- Toevoegen nieuwe factuurregel; c_newfactuurkey nog steeds actueel!
c_factuurregel := c_factuurregel + 1;
BEGIN
INSERT INTO fin_factuurregel (fin_factuur_key,
fin_factuurregel_nr,
fin_factuurregel_totaal,
fin_factuurregel_btw,
fin_factuurregel_omschrijving,
fin_factuurregel_referentie,
fin_btwtabelwaarde_key)
VALUES (c_newfactuurkey,
rc.regelnummer,
rc.totaalexcl,
rc.totaalbtw,
SUBSTR (rc.omschrijving, 1, 60),
rc.kostenplaats,
DECODE (rc.totaalbtw,
0, 1, -- NL standaard 0/Nul
rc.fin_btwtabelwaarde_key))
RETURNING fin_factuurregel_key
INTO c_fin_factuurregel_key;
-- Voor CUST-postprocessing (van de kenmerken) is het handig te onthouden:
UPDATE fac_imp_factuur
SET fin_factuurregel_key = c_fin_factuurregel_key
WHERE fac_import_key = rc.fac_import_key
AND fac_imp_file_index = rc.fac_imp_file_index;
uwva_imp_writelog (
p_import_key,
'I',
'Factuurregel '
|| c_factuurregel
|| ' toegevoegd aan factuur '
|| c_newfactuurkey,
rc.bestelnummer || ' / ' || rc.factuurnr);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'W',
'Kan factuur(regel) niet toevoegen! ' || v_errormsg,
rc.bestelnummer || ' / ' || rc.factuurnr);
c_rollback := TRUE;
END;
c_teller := c_teller + 1;
ELSE
-- Toevoegen nieuwe factuur + factuurregel!
c_old_bestelnummer := rc.bestelnummer;
c_old_factuurnr := rc.factuurnr;
c_factuurregel := 1;
c_bestelnummer_index := INSTR (rc.bestelnummer, '/');
c_mld_opdr_key := NULL;
c_cnt_contract_key := NULL;
c_bes_bestelopdr_key := NULL;
IF c_bestelnummer_index = 0 OR 1=1
THEN
c_bestelnummer_s1 := rc.bestelnummer;
c_bestelnummer_s2 := '';
ELSE
c_bestelnummer_s1 :=
SUBSTR (rc.bestelnummer, 1, c_bestelnummer_index - 1);
c_bestelnummer_s2 :=
SUBSTR (rc.bestelnummer, c_bestelnummer_index + 1);
END IF;
c_find := FALSE;
--c_find_bestelnummer := FALSE;
c_fac_type := '';
c_fac_type := getfactype (rc.bestelnummer);
IF c_fac_type = 'O'
THEN
IF c_bestelnummer_index != 0
AND ASCII (c_prefix1) >= 48
AND ASCII (c_prefix1) <= 57
-- Geen prefix maar het is wel een opdracht (afgedwongen door /).
THEN
-- c_bestelnummer_s1 bevat geen prefix
-- c_bestelnummer_s2 bevat het gedeelte na de /
c_find := TRUE;
ELSE
c_i := 1;
LOOP
IF (ASCII (SUBSTR (c_bestelnummer_s1, c_i, 1)) >= 48
AND ASCII (SUBSTR (c_bestelnummer_s1, c_i, 1)) <= 57)
THEN
c_find := TRUE;
ELSE
c_i := c_i + 1;
END IF;
EXIT WHEN (c_find OR c_i > LENGTH (c_bestelnummer_s1));
END LOOP;
IF c_find
THEN
c_bestelnummer_s1 := SUBSTR (c_bestelnummer_s1, c_i);
ELSE
uwva_imp_writelog (
p_import_key,
'W',
'Kan bestelnummer niet bepalen!',
rc.bestelnummer || ' / ' || rc.factuurnr);
c_rollback := TRUE;
END IF;
END IF;
ELSIF c_fac_type = 'C'
THEN
-- Haal prefix 'C' of 'c' eraf.
c_bestelnummer_s1 := SUBSTR (c_bestelnummer_s1, 2);
c_find := TRUE;
ELSIF c_fac_type = 'B'
THEN
-- Haal prefix O- eraf; c_bestelnummer_s2 is goed.
c_bestelnummer_s1 := SUBSTR (c_bestelnummer_s1, 3);
c_find := TRUE;
END IF;
-- c_bestelnummer_s1 bevat ordernummer
-- c_bestelnummer_s2 bevat volgnummer van de (bestel)opdracht; bij
-- contracten is deze waarde leeg
-- Vind nu de onderliggende 'O', 'C' of 'B'.
IF c_fac_type = 'O'
THEN
-- Bestaat de opdracht wel <20>n is deze geldig!?
BEGIN
SELECT mld_opdr_key
INTO c_mld_opdr_key
FROM mld_opdr
WHERE mld_melding_key =
fac.safe_to_number (c_bestelnummer_s1)
AND mld_opdr_bedrijfopdr_volgnr =
fac.safe_to_number (c_bestelnummer_s2)
AND mld_statusopdr_key NOT IN (1, 2, 3); -- Ongeldige opdrachten (nog)
EXCEPTION
WHEN NO_DATA_FOUND
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'I',
'Kan opdrachtreferentie '
|| rc.bestelnummer
|| ' niet vinden! '
|| v_errormsg,
c_bestelnummer_s1 || '/' || c_bestelnummer_s2);
c_find := FALSE;
END;
ELSIF c_fac_type = 'C'
THEN
-- Bestaat het contract wel (zie ook UWVA#23124 + UWVA#24359 + UWVA#25579)!?
BEGIN
SELECT cnt_contract_key
INTO c_cnt_contract_key
FROM (SELECT cnt_contract_key
FROM cnt_v_aanwezigcontract c
WHERE c.cnt_contract_nummer_intern =
c_bestelnummer_s1
AND c.ins_discipline_key != 360 -- Abonnementen
AND c.cnt_contract_status = 0 -- NIET Gesloten!
AND (NOT EXISTS -- Bij >1 versie relevantste irt. besteldatum!
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern =
c.cnt_contract_nummer_intern
AND cnt_contract_versie !=
c.cnt_contract_versie)
OR rc.besteldatum BETWEEN TRUNC(c.cnt_contract_looptijd_van)
AND TRUNC(c.cnt_contract_looptijd_tot))
UNION ALL -- UWVA#25579: Voor abonnementen altijd laatste versie!
SELECT c.cnt_contract_key
FROM cnt_v_aanwezigcontract c
WHERE c.cnt_contract_nummer_intern =
c_bestelnummer_s1
AND c.ins_discipline_key = 360 -- Abonnementen
AND c.cnt_contract_status = 0 -- NIET Gesloten!
AND NOT EXISTS -- Alleen laatste versies van contracten!
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern =
c.cnt_contract_nummer_intern
AND cnt_contract_versie >
c.cnt_contract_versie));
EXCEPTION
WHEN NO_DATA_FOUND
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'I',
'Kan contractreferentie '
|| rc.bestelnummer
|| ' niet vinden! '
|| v_errormsg,
c_bestelnummer_s1);
c_find := FALSE;
END;
ELSIF c_fac_type = 'B'
THEN
-- Bestaat de bestelopdracht wel <20>n is deze geldig!?
BEGIN
IF c_bestelnummer_s2 IS NULL -- Kan dat (nog) wel???
THEN
c_bestelnummer_t := c_bestelnummer_s1;
ELSE
c_bestelnummer_t :=
c_bestelnummer_s1 || '/' || c_bestelnummer_s2;
END IF;
-- UWVA#22649: Om igv. voorkomens met dezelfde bestelopdr_id de
-- juiste te pakken, hier filteren op een status waarin een
-- factuur mag worden ontvangen (In Bestelling/4, Geleverd/6 of
-- Verwerkt/7).
-- UWVA#24723: Je vind <20><>n bestelopdracht of anders handmatig
-- maar oppakken! -> Later nog maar eens dieper analyseren of
-- het mogelijk is in 1x de enige juiste te vinden...
SELECT bes_bestelopdr_key
INTO c_bes_bestelopdr_key
FROM bes_bestelopdr
WHERE bes_bestelopdr_id = c_bestelnummer_t
AND bes_bestelopdr_status IN (4, 6, 7); -- Geldige bestelopdrachten
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'I',
'Kan bestelopdrachtreferentie '
|| rc.bestelnummer
|| ' niet vinden! '
|| v_errormsg,
c_bestelnummer_s1 || '/' || c_bestelnummer_s2);
c_find := FALSE;
END;
END IF;
--c_opmerking := '';
BEGIN
SELECT fin_s_fin_factuur_key.NEXTVAL
INTO c_newfactuurkey
FROM DUAL;
--SELECT SUM (fac.safe_to_number (kostprijs)) totaal,
-- SUM (fac.safe_to_number (COALESCE (btw_bedrag, '0')))
-- totaalbtw
SELECT COALESCE (SUM (kostprijs), 0) totaal,
COALESCE (SUM (btw_bedrag), 0) totaal_btw
INTO c_fact_tot, c_fact_totbtw
FROM fac_imp_factuur
WHERE ordernr = rc.bestelnummer AND factuurnr = rc.factuurnr;
INSERT INTO fin_factuur (fin_factuur_key,
fin_factuur_totaal,
fin_factuur_totaal_btw,
mld_opdr_key,
cnt_contract_key,
bes_bestelopdr_key,
prs_perslid_key_user,
fin_factuur_datum,
fin_factuur_opmerking,
fin_factuur_statuses_key,
fin_factuur_nr,
fin_factuur_boekmaand)
VALUES (c_newfactuurkey,
c_fact_tot,
c_fact_totbtw,
c_mld_opdr_key,
c_cnt_contract_key,
c_bes_bestelopdr_key,
NULL,
c_fact_datum,
'Ge<EFBFBD>mporteerde factuur', -- ' || c_opmerking,
2,
rc.factuurnr,
SUBSTR (rc.afleverdatum, 1, 4)
|| '-'
|| SUBSTR (rc.afleverdatum, 5, 2));
-- Voor CUST-postprocessing (van de kenmerken) is het handig te onthouden:
UPDATE fac_imp_factuur
SET fin_factuur_key = c_newfactuurkey
WHERE fac_import_key = rc.fac_import_key
AND fac_imp_file_index = rc.fac_imp_file_index;
fac.trackaction ('FINNEW',
c_newfactuurkey,
NULL,
NULL,
NULL);
INSERT INTO fin_factuurregel (fin_factuur_key,
fin_factuurregel_nr,
fin_factuurregel_totaal,
fin_factuurregel_btw,
fin_factuurregel_omschrijving,
fin_factuurregel_referentie,
fin_btwtabelwaarde_key)
VALUES (c_newfactuurkey,
rc.regelnummer,
rc.totaalexcl,
rc.totaalbtw,
SUBSTR (rc.omschrijving, 1, 60),
rc.kostenplaats,
DECODE (rc.totaalbtw,
0, 1, -- NL standaard 0/Nul
rc.fin_btwtabelwaarde_key))
RETURNING fin_factuurregel_key
INTO c_fin_factuurregel_key;
-- Voor CUST-postprocessing (van de kenmerken) is het handig te onthouden:
UPDATE fac_imp_factuur
SET fin_factuurregel_key = c_fin_factuurregel_key
WHERE fac_import_key = rc.fac_import_key
AND fac_imp_file_index = rc.fac_imp_file_index;
--IF c_find_bestelnummer
--THEN
-- c_write_bestelnummer := c_bestelopdr_id;
--ELSE
-- c_write_bestelnummer := rc.bestelnummer;
--END IF;
uwva_imp_writelog (
p_import_key,
'I',
'Factuur '
|| c_newfactuurkey
|| ' toegevoegd met factuurregel '
|| c_factuurregel,
--c_write_bestelnummer || ' / ' || rc.factuurnr
rc.bestelnummer || ' / ' || rc.factuurnr);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'Error ' || oracle_err_mes;
uwva_imp_writelog (
p_import_key,
'W',
'Kan factuur(regel) niet toevoegen! ' || v_errormsg,
rc.bestelnummer || '/' || rc.factuurnr);
c_rollback := TRUE;
END;
c_teller := c_teller + 1;
END IF;
END LOOP;
-- Zet facturen automatisch op Akkoord als deze aan match-criteria voldoen.
FOR rc IN ( SELECT f.fin_factuur_key factuur_key
FROM fin_factuur f
WHERE f.fin_factuur_datum = c_fact_datum
ORDER BY f.fin_factuur_key)
LOOP
FIN.matchandsetfactuur (rc.factuur_key, FALSE);
--COMMIT;
END LOOP;
-- UWVA#19018: Notificeer niet goedgekeurde facturen naar de budgethouders
-- (1 mail per persoon). Hierbij maakt het niet veel uit of ze net zijn
-- geimporteerd of al eerder (of handmatig ingevoerd). Medium wordt bepaald
-- door mode bij FININF.
fac.putjobnotifications ('uwva_v_noti_finreminder', NULL, 0);
--SELECT COUNT ( * )
-- INTO c_i
-- FROM imp_log
-- WHERE fac_import_key = p_import_key AND imp_log_status IN ('E', 'W');
IF c_rollback = TRUE
THEN
uwva_imp_writelog (p_import_key,
'E',
v_errormsg,
'Importproces facturen afgebroken!');
ROLLBACK;
ELSE
COMMIT;
END IF;
-- Stap 8: Voeg de soort factuurregel toe aan de factuurregel
INSERT INTO fin_kenmerkfactregel r (r.fin_kenmerk_key, r.fin_factuurregel_key, r.fin_kenmerkfactregel_waarde)
SELECT DISTINCT 1, i.fin_factuurregel_key, s.factuurreg_soort_code
FROM fac_usrdata u, uwva_v_factuurreg_soort s, fac_imp_factuur i
WHERE u.fac_usrtab_key IN (1225, 1227)
AND u.fac_usrdata_key = s.factuurreg_soort_code
AND i.kenmerk1 = to_number (u.fac_usrdata_code)
AND u.fac_usrdata_verwijder IS NULL
AND fac_import_key = p_import_key;
-- Stap 9: voeg het regelnummer uit de leasefactuur toe aan de factuur in Facilitor
INSERT INTO fin_kenmerkfactregel r (r.fin_kenmerk_key, r.fin_factuurregel_key, r.fin_kenmerkfactregel_waarde)
SELECT DISTINCT 2, i.fin_factuurregel_key, i.kenmerk3
FROM fac_imp_factuur i
WHERE fac_import_key = p_import_key;
END;
/
CREATE OR REPLACE FORCE VIEW UWVA_V_RAP_CONTR_KPL
(
LEASECONTRACT,
KP_LEASECONTRACT,
KP_OMSCHRIJVING_LC,
GEBRUIKERSOVEREENKOMST,
KP_GEBRUIKERSOVEREENKOMST,
KP_OMSCHRIJVING_GO,
MEDEWERKER_ID,
NAAM,
KP_MEDEWERKER,
KP_OMSCHRIJVING_MDW,
CONTROLE_KPL
)
AS
SELECT L.CNT_CONTRACT_NUMMER_INTERN,
KL.PRS_KOSTENPLAATS_UPPER,
KL.PRS_KOSTENPLAATS_OMSCHRIJVING,
G.CNT_CONTRACT_NUMMER_INTERN,
KG.PRS_KOSTENPLAATS_UPPER,
KG.PRS_KOSTENPLAATS_OMSCHRIJVING,
P.PRS_PERSLID_NR,
N.PRS_PERSLID_NAAM_FRIENDLY,
KP.PRS_KOSTENPLAATS_UPPER,
KP.PRS_KOSTENPLAATS_OMSCHRIJVING,
CASE
WHEN ( KL.PRS_KOSTENPLAATS_UPPER <> KG.PRS_KOSTENPLAATS_UPPER
OR KG.PRS_KOSTENPLAATS_UPPER <> KP.PRS_KOSTENPLAATS_UPPER
OR KL.PRS_KOSTENPLAATS_UPPER <> KP.PRS_KOSTENPLAATS_UPPER)
THEN
'Onjuist'
ELSE
'Juist'
END
FROM CNT_CONTRACT L,
PRS_KOSTENPLAATS KL,
CNT_CONTRACT G,
PRS_KOSTENPLAATS KG,
PRS_PERSLID P,
PRS_V_PERSLID_FULLNAMES_ALL N,
PRS_AFDELING A,
PRS_KOSTENPLAATS KP
WHERE L.INS_DISCIPLINE_KEY = 425
AND G.INS_DISCIPLINE_KEY = 426
AND L.PRS_KOSTENPLAATS_KEY = KL.PRS_KOSTENPLAATS_KEY
AND G.PRS_KOSTENPLAATS_KEY = KG.PRS_KOSTENPLAATS_KEY
AND L.CNT_CONTRACT_NUMMER_INTERN = LPAD (G.CNT_CONTRACT_NUMMER_INTERN, 6)
AND G.CNT_PRS_PERSLID_KEY = P.PRS_PERSLID_KEY
AND P.PRS_PERSLID_KEY = N.PRS_PERSLID_KEY
AND P.PRS_AFDELING_KEY = A.PRS_AFDELING_KEY
AND A.PRS_KOSTENPLAATS_KEY = KP.PRS_KOSTENPLAATS_KEY
AND L.CNT_CONTRACT_LOOPTIJD_TOT > SYSDATE
AND G.CNT_CONTRACT_LOOPTIJD_VAN <= SYSDATE
AND G.CNT_CONTRACT_LOOPTIJD_TOT > SYSDATE;
CREATE OR REPLACE VIEW UWVA_V_RAP_SALARIS_INH
(
JAAR,
PERIODE,
PNR,
NAAM,
OMSCHRIJVING,
BEDRAGINCLBTW,
REKENINGNR,
KENTEKEN
)
AS
SELECT (TO_CHAR (F.FIN_FACTUUR_DATUM, 'YYYY')),
(TO_CHAR (F.FIN_FACTUUR_DATUM, 'MM')),
P.PRS_PERSLID_NR,
N.PRS_PERSLID_NAAM_FULL,
K.PRS_KOSTENSOORT_REFCODE,
F.FIN_FACTUUR_TOTAAL + F.FIN_FACTUUR_TOTAAL_BTW,
K.PRS_KOSTENSOORT_OMS,
O.INS_DEEL_OMSCHRIJVING
FROM FIN_FACTUUR F,
CNT_CONTRACT C,
PRS_PERSLID P,
PRS_V_PERSLID_FULLNAMES_ALL N,
PRS_KOSTENSOORT K,
CNT_CONTRACT_OBJECT A,
INS_DEEL O,
INS_TAB_DISCIPLINE D
WHERE F.CNT_CONTRACT_KEY = C.CNT_CONTRACT_KEY
AND C.CNT_PRS_PERSLID_KEY = P.PRS_PERSLID_KEY
AND P.PRS_PERSLID_KEY = N.PRS_PERSLID_KEY
AND D.PRS_KOSTENSOORT_KEY = K.PRS_KOSTENSOORT_KEY
AND C.CNT_CONTRACT_KEY = A.CNT_CONTRACT_KEY
AND A.CNT_INS_DEEL_KEY = O.INS_DEEL_KEY
AND C.INS_DISCIPLINE_KEY = D.INS_DISCIPLINE_KEY
AND D.PRS_KOSTENSOORT_KEY = 382;
CREATE OR REPLACE FORCE VIEW UWVA_V_FACTUURREG_SOORT
(
FACTUURREG_SOORT_CODE,
FACTUURREG_SOORT_OMSCHR
)
AS
SELECT U.FAC_USRDATA_KEY,
CONCAT (U.FAC_USRDATA_CODE, (CONCAT (' ', U.FAC_USRDATA_OMSCHR)))
FROM FAC_USRDATA U
WHERE U.FAC_USRTAB_KEY IN (1225, 1227)
AND U.FAC_USRDATA_VERWIJDER IS NULL;
BEGIN DBMS_UTILITY.COMPILE_SCHEMA(USER, FALSE); END;
/
BEGIN adm.systrackscriptId('$Id$', 0); END;
/
COMMIT;
spool off