-- -- $Id$ -- -- Script containing customer specific db-configuration for BLCC. DEFINE thisfile = 'BLCC.SQL' DEFINE dbuser = '^BLCC' SET ECHO ON SET DEFINE ON COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT; WHENEVER SQLERROR EXIT; SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL; WHENEVER SQLERROR CONTINUE; SPOOL &fcltlogfile SET DEFINE OFF ------ payload begin ------ CREATE OR REPLACE VIEW blcc_v_rap_import_log ( fclt_f_applicatie, datum, fclt_f_status, omschrijving, hint ) AS SELECT COALESCE (fac_import_app_code, imp_log_applicatie), TO_CHAR (imp_log_datum, 'dd-mm-yyyy hh24:mi'), imp_log_status, imp_log_omschrijving, imp_log_hint FROM imp_log il1, fac_import fi1, fac_import_app fia1 WHERE il1.fac_import_key = fi1.fac_import_key(+) AND fi1.fac_import_app_key = fia1.fac_import_app_key(+) AND NOT EXISTS (SELECT 1 FROM imp_log il2, fac_import fi2 WHERE il2.fac_import_key = fi2.fac_import_key AND fi2.fac_import_app_key = fi1.fac_import_app_key AND il2.fac_import_key > il1.fac_import_key); /* Formatted on 5-1-2016 18:32:28 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW blcc_v_rap_cat_frozenplus ( fclt_x_verwerkt, fclt_f_debiteur, fclt_f_organisatie, locatie, ruimte, datum, tijd, resnr, activiteit, omschrijving, artikelnr, artikelomschrijving, aantal, stuksprijs, kosten, fclt_f_besteller, costcenter, hide_f_kostenplaats ) AS SELECT TO_CHAR (x.res_rsv_artikel_verwerkt, 'dd-mm-yyyy'), -- Verwerkt COALESCE (x.prs_kenmerklink_waarde, '???') deb_nr, (SELECT prs_afdeling_omschrijving FROM prs_afdeling WHERE prs_afdeling_key = x.prs_afdeling_key) deb_oms, DECODE (x.alg_ruimte_key, NULL, 'Onbekend', rg.alg_gebouw_upper || '-' || rg.alg_verdieping_code || '-' || rg.alg_ruimte_nr) afleveradres, COALESCE (rr.res_ruimte_omschrijving, rg.alg_ruimte_omschrijving) ruimte, TO_CHAR (x.res_rsv_artikel_levering, 'dd-mm-yyyy') datum, TO_CHAR (x.res_rsv_artikel_levering, 'hh24:mi') tijd, x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr resnr, x.res_activiteit_omschrijving activiteit, x.res_rsv_ruimte_omschrijving omschrijving, x.res_artikel_nr, x.res_artikel_omschrijving, x.res_rsv_artikel_aantal, ROUND ((x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5) stuksprijs, x.res_rsv_artikel_aantal * ROUND ((x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5) regeltotaal, x.prs_perslid_naam_full, (SELECT MAX (kw.res_kenmerkreservering_waarde) FROM res_kenmerkwaarde kw, res_kenmerk rk WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key AND kw.res_kenmerkwaarde_verwijder IS NULL AND kw.res_kenmerk_key = rk.res_kenmerk_key AND rk.res_srtkenmerk_key = 1) costcenter, x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving FROM (SELECT rra.res_rsv_artikel_verwerkt, COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) res_ruimte_key, COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) alg_ruimte_key, rra.res_rsv_artikel_levering, rrr.res_rsv_ruimte_key, rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr, act.res_activiteit_omschrijving, rrr.res_rsv_ruimte_omschrijving, ra.res_artikel_nr, ra.res_artikel_omschrijving, rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal, COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) prs_afdeling_key, kl.prs_kenmerklink_waarde, pf.prs_perslid_naam_full, k.prs_kostenplaats_nr, k.prs_kostenplaats_omschrijving FROM res_rsv_ruimte rrr, res_activiteit act, res_rsv_artikel rra, res_artikel ra, 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, alg_v_allonroerendgoed aog, prs_perslid p, prs_v_afdeling_boom ab, prs_kenmerklink kl, prs_v_perslid_fullnames_all pf, prs_kostenplaats k WHERE rrr.res_activiteit_key = act.res_activiteit_key AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key AND rra.res_rsv_artikel_verwijder IS NULL AND rra.res_status_bo_key = 6 AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd') AND rra.res_artikel_key = ra.res_artikel_key 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer AND p.prs_perslid_key = pf.prs_perslid_key AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x LEFT JOIN res_ruimte rr ON x.res_ruimte_key = rr.res_ruimte_key LEFT JOIN alg_v_ruimte_gegevens_all rg ON x.alg_ruimte_key = rg.alg_ruimte_key UNION ALL SELECT TO_CHAR (x.res_rsv_artikel_levering, 'yyyy-mm') || '*', -- Lopend COALESCE (x.prs_kenmerklink_waarde, '???') deb_nr, (SELECT prs_afdeling_omschrijving FROM prs_afdeling WHERE prs_afdeling_key = x.prs_afdeling_key) deb_oms, DECODE (x.alg_ruimte_key, NULL, 'Onbekend', rg.alg_gebouw_upper || '-' || rg.alg_verdieping_code || '-' || rg.alg_ruimte_nr) afleveradres, COALESCE (rr.res_ruimte_nr, rg.alg_ruimte_omschrijving) ruimte, TO_CHAR (x.res_rsv_artikel_levering, 'dd-mm-yyyy') datum, TO_CHAR (x.res_rsv_artikel_levering, 'hh24:mi') tijd, x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr resnr, x.res_activiteit_omschrijving activiteit, x.res_rsv_ruimte_omschrijving omschrijving, x.res_artikel_nr, x.res_artikel_omschrijving, x.res_rsv_artikel_aantal, ROUND ((x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5) stuksprijs, x.res_rsv_artikel_aantal * ROUND ((x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5) regeltotaal, x.prs_perslid_naam_full, (SELECT MAX (kw.res_kenmerkreservering_waarde) FROM res_kenmerkwaarde kw, res_kenmerk rk WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key AND kw.res_kenmerkwaarde_verwijder IS NULL AND kw.res_kenmerk_key = rk.res_kenmerk_key AND rk.res_srtkenmerk_key = 1) costcenter, x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving FROM (SELECT rra.res_rsv_artikel_verwerkt, COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) res_ruimte_key, COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) alg_ruimte_key, rra.res_rsv_artikel_levering, rrr.res_rsv_ruimte_key, rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr, act.res_activiteit_omschrijving, rrr.res_rsv_ruimte_omschrijving, ra.res_artikel_nr, ra.res_artikel_omschrijving, rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal, COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) prs_afdeling_key, kl.prs_kenmerklink_waarde, pf.prs_perslid_naam_full, k.prs_kostenplaats_nr, k.prs_kostenplaats_omschrijving FROM res_rsv_ruimte rrr, res_activiteit act, res_rsv_artikel rra, res_artikel ra, 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, alg_v_allonroerendgoed aog, prs_perslid p, prs_v_afdeling_boom ab, prs_kenmerklink kl, prs_v_perslid_fullnames_all pf, prs_kostenplaats k WHERE rrr.res_activiteit_key = act.res_activiteit_key AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key AND rra.res_rsv_artikel_verwijder IS NULL AND rra.res_status_bo_key != 6 AND rra.res_rsv_artikel_levering > TO_DATE ('20170901', 'yyyymmdd') AND rra.res_rsv_artikel_levering < SYSDATE AND rra.res_artikel_key = ra.res_artikel_key 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer AND p.prs_perslid_key = pf.prs_perslid_key AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x LEFT JOIN res_ruimte rr ON x.res_ruimte_key = rr.res_ruimte_key LEFT JOIN alg_v_ruimte_gegevens_all rg ON x.alg_ruimte_key = rg.alg_ruimte_key; CREATE OR REPLACE VIEW blcc_v_rap_cat_frozen ( fclt_f_exportjob, fclt_f_bedrijf, afleveradres, fclt_f_afleverdatum, tijdstip, bestelnummer, fclt_f_artikelnummer, artikelomschrijving, interne_artikelprijs, aantal, kosten, fclt_f_besteller, costcenter, afdeling, fclt_3d_afdeling_key ) AS SELECT TO_CHAR (x.res_rsv_artikel_verwerkt, 'dd-mm-yyyy') verwerkt, COALESCE (x.prs_bedrijf_naam, DECODE (FLOOR (x.ins_discipline_volgnr / 1000), 1, 'Sodexo BV', -- BCC t/m 27-08-2016 3, 'Verde', -- SSC (in 2016 per abuis RESVER) '???')) bedrijf, DECODE ( x.alg_ruimte_key, NULL, 'Onbekend', rg.alg_locatie_code || '-' || rg.alg_gebouw_upper || '-' || rg.alg_verdieping_code || '-' || rg.alg_ruimte_nr || ' (' || rg.alg_ruimte_omschrijving || ')') afleveradres, TO_CHAR (x.res_rsv_artikel_levering, 'dd-mm-yyyy') datum, TO_CHAR (x.res_rsv_artikel_levering, 'hh24:mi') tijd, x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr bestelnr, x.res_artikel_nr, x.res_artikel_omschrijving, ROUND ((x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5) interneprijs, x.res_rsv_artikel_aantal, ROUND (x.res_rsv_artikel_prijs, 5) regeltotaal, x.prs_perslid_naam_full, (SELECT MAX (kw.res_kenmerkreservering_waarde) FROM res_kenmerkwaarde kw, res_kenmerk rk WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key AND kw.res_kenmerkwaarde_verwijder IS NULL AND kw.res_kenmerk_key = rk.res_kenmerk_key AND rk.res_srtkenmerk_key = 1) costcenter, x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving afd, COALESCE (x.prs_afdeling_key, DECODE (FLOOR (x.ins_discipline_volgnr / 1000), 1, 225, -- BCC t/m 27-08-2016/Sodexo 3, 621, -- SSC/Verde (in 2016 per abuis RESVER) -1)) afdeling_key FROM (SELECT rra.res_rsv_artikel_verwerkt, COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) alg_ruimte_key, rra.res_rsv_artikel_levering, rrr.res_rsv_ruimte_key, rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr, td.ins_discipline_volgnr, -- Ter bepaling leverancier/DEPRECATED! b.prs_bedrijf_naam, a.prs_afdeling_key, ra.res_artikel_nr, ra.res_artikel_omschrijving, rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal, pf.prs_perslid_naam_full, k.prs_kostenplaats_nr, k.prs_kostenplaats_omschrijving FROM res_rsv_ruimte rrr, res_rsv_artikel rra, res_artikel ra, res_discipline td, res_disc_params dp, prs_bedrijf b, prs_afdeling a, 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, alg_v_allonroerendgoed aog, prs_v_perslid_fullnames_all pf, prs_kostenplaats k WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key --AND rra.res_rsv_artikel_verwijder IS NULL AND rra.res_status_bo_key = 6 AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd') AND rra.res_artikel_key = ra.res_artikel_key AND ra.res_discipline_key = td.ins_discipline_key AND td.ins_discipline_key = dp.res_ins_discipline_key AND dp.prs_bedrijf_key = b.prs_bedrijf_key(+) AND a.prs_afdeling_parentkey IS NULL AND b.prs_leverancier_nr = a.prs_afdeling_naam(+) 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x LEFT JOIN alg_v_ruimte_gegevens_all rg ON x.alg_ruimte_key = rg.alg_ruimte_key; CREATE OR REPLACE PROCEDURE blcc_add_xml_row (p_bestand IN VARCHAR2, p_regel IN VARCHAR2) AS v_index NUMBER; BEGIN SELECT COALESCE (MAX (fac_rapport_volgnr), 0) + 1 INTO v_index FROM fac_rapport WHERE fac_rapport_node = p_bestand; INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel) VALUES (p_bestand, v_index, p_regel); END; / CREATE OR REPLACE PROCEDURE blcc_add_xml_element (p_bestand IN VARCHAR2, p_tag IN VARCHAR2, p_value IN VARCHAR2) AS BEGIN blcc_add_xml_row ( p_bestand, '<' || p_tag || '>' || xml.char_to_html (p_value) || ''); END; / CREATE OR REPLACE VIEW blcc_v_export_proquro (result, result_order) AS SELECT fac_rapport_regel, fac_rapport_volgnr FROM fac_rapport WHERE fac_rapport_node = 'PROQURO'; /* Formatted on 11-9-2015 11:12:48 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PROCEDURE blcc_select_proquro (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS -- Markeren te exporteren opdracht-verplichtingen (via ordernr)! CURSOR c1 IS SELECT '[' || TO_CHAR (o.mld_melding_key) || '|' || TO_CHAR (o.mld_opdr_key) || '] ' aanduiding, o.mld_opdr_key FROM mld_opdr o WHERE o.mld_opdr_ordernr IS NULL -- Geen ordernr, dus bijwerken! AND o.mld_statusopdr_key = 9 -- Afgerond --AND o.mld_opdr_kosten > 0 -- Allemaal, ook als kosten=0 AND o.mld_typeopdr_key != 103 -- Geen RFQs ORDER BY 1; -- Markeren te exporteren catering-verplichtingen (via RESAFM/RESVER)! -- LET OP: Maandelijks in de nacht na de 1e werkdag van de maand. -- BLCC#38809: SCC uitsluiten (alleen regels als volgnr 1000 t/m 2999)! -- Per oktober-doorbelasting alleen nog maar catalogi meenemen die zijn -- gekoppeld aan een bedrijf (voor de locatie CAMPUS). -- Sortering van belang, want eerst catering-regels afmelden/verwerken -- en daarna pas de ruimte-regels. CURSOR c2 IS SELECT '[' || TO_CHAR (rrr.res_rsv_ruimte_key) || '] ' aanduiding, rrr.res_rsv_ruimte_key, NULL res_rsv_artikel_key, rrr.res_status_bo_key, NULL res_artikel_key FROM res_v_aanwezigrsv_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, alg_v_allonroerendgoed aog --res_ruimte rr, --res_discipline rd, --res_disc_params dp WHERE rrr.res_activiteit_key = 130 -- Evenement AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen! AND rro.res_ruimte_key = rar1.res_ruimte_key(+) AND rro.res_ruimte_key = rar2.res_ruimte_key(+) AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS --AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key --AND rr.res_discipline_key = rd.ins_discipline_key --AND rd.ins_discipline_key = dp.res_ins_discipline_key --AND dp.prs_bedrijf_key IS NOT NULL AND rrr.res_status_bo_key != 6 -- Niet Verwerkt, dus verwerken! AND rrr.res_rsv_ruimte_dirtlevel = 0 AND rrr.res_rsv_ruimte_van > TO_DATE ('20170901', 'yyyymmdd') AND rrr.res_rsv_ruimte_van < TRUNC (SYSDATE, 'mm') -- Voor 1e UNION ALL SELECT '[' || TO_CHAR (rra.res_rsv_ruimte_key) || '|' || TO_CHAR (rra.res_rsv_artikel_key) || '] ' aanduiding, rra.res_rsv_ruimte_key, rra.res_rsv_artikel_key, rra.res_status_bo_key, rra.res_artikel_key FROM res_v_aanwezigrsv_artikel rra, 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, alg_v_allonroerendgoed aog, res_artikel ra, res_discipline rd, res_disc_params dp WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rrr.res_rsv_ruimte_dirtlevel = 0 -- ??? 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rra.res_artikel_key = ra.res_artikel_key AND ra.res_discipline_key = rd.ins_discipline_key AND rd.ins_discipline_key = dp.res_ins_discipline_key AND dp.prs_bedrijf_key IS NOT NULL AND rra.res_status_bo_key != 6 -- Niet Verwerkt, dus verwerken! AND rra.res_rsv_artikel_dirtlevel = 0 AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd') AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'mm') -- Voor 1e ORDER BY 3, 2; -- Wegschrijven te exporteren verplichting-regels (= factuur naar ProQuro). -- BLCC#38809: SCC uitsluiten (alleen regels als volgnr 1000 t/m 2999)! -- Per oktober-doorbelasting alleen nog maar catalogi meenemen die zijn -- gekoppeld aan een bedrijf (voor de locatie CAMPUS). CURSOR c3 IS -- Regel per Afgeronde mld_opdr zojuist gemarkeerd! SELECT sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) externalid, p.prs_perslid_nr, -- AdministrationExternalId kp.prs_kostenplaats_nr costcentre, -- CostcentreExternalId b.prs_leverancier_nr, 'FACILITOR Ref.nr. ' || sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) || ' (' || td.ins_discipline_omschrijving || '-' || sm.mld_stdmelding_omschrijving || ')' omschrijving, o.mld_opdr_kosten price, TO_CHAR (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key), 'yyyy-mm-dd') deliverydate, COALESCE (ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms) costtype, -- CostTypeExternalId DECODE (aog.alg_gebouw_code, NULL, 'C-0000-000-00', '122-001N', 'C-0122-001-01', '122-00TW', 'C-0122-000-00', '122-03B', 'C-0122-003-01', '122-32A', 'C-0122-032-01', '122-93A', 'C-0122-093-01', '122-93B', 'C-0122-093-02', -- ??? '122-93C', 'C-0122-093-03', '122-93D', 'C-0122-093-04', '122-93E', 'C-0122-093-05', -- ??? '122-94A', 'C-0122-094-01', '122-94B', 'C-0122-094-02', '124-037Itter', 'C-0122-037-00', 'C-0' || aog.alg_gebouw_code || '-00') costproject -- CostProjectExternalId FROM mld_opdr o, --fac_tracking t, mld_melding m, alg_v_allonrgoed_gegevens aog, mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd, prs_kostensoort ksm, prs_kostensoort ksv, prs_kostenplaats kp, prs_bedrijf b, prs_perslid p WHERE SUBSTR (o.mld_opdr_ordernr, 1, 10) = TO_CHAR (SYSDATE, 'yyyy-mm-dd') --AND o.mld_statusopdr_key = 9 -- Afgerond --AND o.mld_opdr_key = t.fac_tracking_refkey --AND t.fac_srtnotificatie_key = 70 -- ORDAFR --AND t.fac_tracking_datum < TRUNC (SYSDATE, 'mm') -- Voor 1e AND o.mld_opdr_kosten > 0 AND o.mld_typeopdr_key != 103 -- Geen RFQs AND o.mld_melding_key = m.mld_melding_key AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+) AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = td.ins_discipline_key AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND sm.prs_kostensoort_key = ksm.prs_kostensoort_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 AND p.prs_perslid_key(+) = 101 UNION ALL -- Somregel alle Verwerkte res_rsv_artikel zojuist gemarkeerd (excl. kosten tbv. Chemelot Campus B.V.) SELECT 'BPV' || TO_CHAR (b.prs_bedrijf_key) || '/' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyymm'), p.prs_perslid_nr, -- AdministrationExternalId '50800' costcentre, -- CostcentreExternalId b.prs_leverancier_nr, 'Cateringkosten ' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') omschrijving, --SUM (rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal) SUM (rra.res_rsv_artikel_prijs - (rra.res_rsv_artikel_aantal * COALESCE (ra.res_artikel_inkoopprijs, 0))) price, TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm-dd') deliverydate, -- Laatste dag voorgaande maand '4181' costtype, -- CostTypeExternalId NULL costproject FROM res_v_aanwezigrsv_artikel rra, 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, alg_v_allonroerendgoed aog, res_artikel ra, res_discipline rd, res_disc_params dp, prs_bedrijf b, prs_perslid p WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rra.res_artikel_key = ra.res_artikel_key AND ra.res_discipline_key != 701 -- Korting catering NIET naar PQ! AND ra.res_discipline_key = rd.ins_discipline_key AND rd.ins_discipline_key = dp.res_ins_discipline_key AND dp.prs_bedrijf_key = b.prs_bedrijf_key --AND rra.res_status_bo_key = 6 AND TRUNC (rra.res_rsv_artikel_verwerkt) = TRUNC (SYSDATE) AND p.prs_perslid_key(+) = 101 -- Pseudo-user GROUP BY 'BPV' || TO_CHAR (b.prs_bedrijf_key) || '/' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyymm'), p.prs_perslid_nr, '50800', b.prs_leverancier_nr, 'Cateringkosten ' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'), TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm-dd'), '4181' UNION ALL -- Somregel alle Verwerkte res_rsv_artikel zojuist gemarkeerd te factureren door Chemelot Campus B.V.! SELECT 'BPV' || '11231/' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyymm'), p.prs_perslid_nr, -- AdministrationExternalId '50800' costcentre, -- CostcentreExternalId '1052', 'Cateringkosten ' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') omschrijving, SUM (rra.res_rsv_artikel_aantal * ra.res_artikel_inkoopprijs) price, TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm-dd') deliverydate, -- Laatste dag voorgaande maand '4181' costtype, -- CostTypeExternalId NULL costproject FROM res_v_aanwezigrsv_artikel rra, 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, alg_v_allonroerendgoed aog, res_artikel ra, prs_perslid p WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rra.res_artikel_key = ra.res_artikel_key AND ra.res_discipline_key != 701 -- Korting catering NIET naar PQ! AND ra.res_artikel_inkoopprijs IS NOT NULL --AND rra.res_status_bo_key = 6 AND TRUNC (rra.res_rsv_artikel_verwerkt) = TRUNC (SYSDATE) AND p.prs_perslid_key(+) = 101 -- Pseudo-user GROUP BY 'BPV' || '11231/' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyymm'), p.prs_perslid_nr, '50800', '1052', 'Cateringkosten ' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'), TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm-dd'), '4181' ORDER BY 1; v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_holiday NUMBER; v_prijs NUMBER (9, 2); v_bestand VARCHAR2 (12); v_order_count NUMBER; v_amount_sum NUMBER (10, 2); BEGIN v_bestand := SUBSTR (p_applname, 1, 12); -- Eerst opruiming DELETE FROM imp_log WHERE imp_log_applicatie = p_applname; DELETE fac_rapport WHERE fac_rapport_node = v_bestand; FOR rec IN c1 LOOP BEGIN v_errormsg := 'Fout bijwerken mld_opdr'; UPDATE mld_opdr SET mld_opdr_ordernr = TO_CHAR (SYSDATE, 'yyyy-mm-dd hh24:mi:ss') WHERE mld_opdr_key = rec.mld_opdr_key; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'Opdracht-verplichtingen'); COMMIT; END; END LOOP; COMMIT; SELECT COUNT ( * ) INTO v_holiday FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1); -- LET OP: ProQuro-export draait dagelijks na middernacht (begin van dag) en -- voor de catering-verplichtingen is afgesproken dat deze maandelijks in de -- nacht na 1e werkdag van de maand worden verwerkt. -- IF nacht na 1e werkdag van de maand (én geen weekend én geen vrije dag)! -- count_work_days (d1,d2) bepaalt het #werkdagen van d1 tot d2 (als d1=d2, -- dan return 0); daarom bepalen tov. laatste dag van vorige maand! IF FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1 AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6' AND v_holiday = 0 THEN FOR rec IN c2 LOOP BEGIN IF rec.res_rsv_artikel_key IS NOT NULL THEN -- Catering-regel IF rec.res_status_bo_key = 2 THEN v_errormsg := 'Fout bepalen res_rsv_artikel_prijs'; SELECT res.getartikelprijs (rec.res_rsv_artikel_key) INTO v_prijs FROM DUAL; v_errormsg := 'Fout afmelden res_rsv_artikel'; UPDATE res_rsv_artikel SET res_status_bo_key = 5, res_rsv_artikel_prijs = v_prijs, res_rsv_artikel_inkoopprijs = (SELECT res_artikel_inkoopprijs FROM res_artikel WHERE res_artikel_key = rec.res_artikel_key), res_rsv_artikel_btw = (SELECT res_artikel_btw FROM res_artikel WHERE res_artikel_key = rec.res_artikel_key) WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key; v_errormsg := 'Fout tracken afmelding'; fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering afgemeld'); END IF; v_errormsg := 'Fout verwerken res_rsv_artikel'; UPDATE res_rsv_artikel SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date) WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key; v_errormsg := 'Fout tracken verwerking'; fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering verwerkt'); ELSE -- Ruimte-regel IF rec.res_status_bo_key = 2 THEN v_errormsg := 'Fout bepalen res_rsv_ruimte_prijs'; SELECT res.getruimteprijs (rec.res_rsv_ruimte_key) INTO v_prijs FROM DUAL; v_errormsg := 'Fout afmelden res_rsv_ruimte'; UPDATE res_rsv_ruimte SET res_status_bo_key = 5, res_rsv_ruimte_prijs = v_prijs WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key; v_errormsg := 'Fout tracken afmelding'; fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, NULL); END IF; v_errormsg := 'Fout verwerken res_rsv_ruimte'; UPDATE res_rsv_ruimte SET res_status_bo_key = 6 -- AV WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key; v_errormsg := 'Fout tracken verwerking'; fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, NULL); END IF; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'Catering-verplichtingen'); COMMIT; END; END LOOP; END IF; v_order_count := 0; v_amount_sum := 0; FOR rec IN c3 LOOP BEGIN v_order_count := v_order_count + 1; v_amount_sum := v_amount_sum + rec.price; END; END LOOP; IF v_order_count > 0 THEN --blcc_add_xml_row (v_bestand, ''); -- ??? blcc_add_xml_row (v_bestand, ''); FOR rec IN c3 LOOP BEGIN --blcc_add_xml_row (v_bestand, ''); blcc_add_xml_row (v_bestand, ''); --blcc_add_xml_element (v_bestand, 'securityKey', 'xxx'); --blcc_add_xml_row (v_bestand, ''); blcc_add_xml_element (v_bestand, 'ExternalId', rec.externalid); blcc_add_xml_element (v_bestand, 'AdministrationExternalId', rec.prs_perslid_nr); -- Personeelsnummer van API-user blcc_add_xml_element (v_bestand, 'OrderTypeId', '9'); -- Hard op '9' blcc_add_xml_element (v_bestand, 'ProcessExternalId', '7'); -- Hard op '7' blcc_add_xml_element (v_bestand, 'CostcentreExternalId', rec.costcentre); -- Kostenplaats van opdracht blcc_add_xml_element (v_bestand, 'ProductgroupExternalId', '1'); -- Hard op '1' blcc_add_xml_element (v_bestand, 'SupplierExternalId', rec.prs_leverancier_nr); blcc_add_xml_element (v_bestand, 'ProForma', 'False'); -- Hard op 'False' blcc_add_xml_row (v_bestand, ''); blcc_add_xml_row (v_bestand, ''); blcc_add_xml_element (v_bestand, 'LineId', '1'); -- Hard op '1' --blcc_add_xml_element (v_bestand, 'ArticleSupplierExternalId', ''); blcc_add_xml_element (v_bestand, 'ProductName', rec.omschrijving); blcc_add_xml_element (v_bestand, 'Quantity', '1'); -- Hard op '1' blcc_add_xml_element (v_bestand, 'Price', TO_CHAR (rec.price)); blcc_add_xml_element (v_bestand, 'CurrencyExternalId', 'EUR'); -- Hard op 'EUR' blcc_add_xml_element (v_bestand, 'OrderUnitExternalId', 'Stuks'); -- Hard op 'Stuks' blcc_add_xml_element (v_bestand, 'VatExternalId', 'IH'); -- Hard op 'IH' blcc_add_xml_element (v_bestand, 'DeliveryDate', rec.deliverydate); -- ORDAFM of laatste dag van maand voor RES blcc_add_xml_element (v_bestand, 'CostTypeExternalId', rec.costtype); -- Kostensoort uit soortmelding blcc_add_xml_element (v_bestand, 'CostProjectExternalId', rec.costproject); -- Transformatie van MLD-Gebouwcode blcc_add_xml_row (v_bestand, ''); blcc_add_xml_row (v_bestand, ''); --blcc_add_xml_row (v_bestand, ''); --blcc_add_xml_row (v_bestand, ''); blcc_add_xml_row (v_bestand, ''); END; END LOOP; blcc_add_xml_row (v_bestand, ''); END IF; fac.writelog (p_applname, 'S', 'ProQuro export/#regels: ' || TO_CHAR (v_order_count), TO_CHAR (v_amount_sum)); END; / --BLCC#38809: SSC uitsluiten: -- - Voor opdrachten gaat dat goed, want Doorbelasten-vinkje alleen -- gebruikt binnen BCC (niet helemaal toekomstvast)! -- - Voor reserveringen alleen regels als volgnr 1000 t/m 2999! /* Formatted on 11-9-2015 9:16:18 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW blcc_v_rap_tf_actual ( fclt_x_maand, fclt_x_debiteur, factuurtype, debiteur, nummer, factuurdatum, vervaldatum, kop, voet, valuta, aantal, artikel, subartikel, omschrijving, lev_kosten_excl, mngmnt_fee_excl, artikelprijs_excl, artikelprijs_incl, btw, grootboek, vrij_tekstveld_1, vrij_tekstveld_2, vrij_tekstveld_3 ) AS SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy-mm'), (SELECT prs_afdeling_omschrijving || ' [' || kl.prs_kenmerklink_waarde || ']' FROM prs_afdeling WHERE prs_afdeling_key = kl.prs_link_key) debiteur_oms, 'FACTUUR', kl.prs_kenmerklink_waarde, -- Debiteur NULL, 'Lopend', NULL, NULL, NULL, 'EUR', 1, 0, -- Eenmalig artikel NULL, sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) || ' [' || td.ins_discipline_omschrijving || '/' || sm.mld_stdmelding_omschrijving || ']' || DECODE (km.mld_kenmerkmelding_waarde, NULL, '', ' (=' || km.mld_kenmerkmelding_waarde || ')'), ROUND (o.mld_opdr_kosten, 2), -- Opdracht bedrag ROUND (o.mld_opdr_kosten * 0.065, 2), -- Management fee 6,5% ROUND (o.mld_opdr_kosten * 1.065, 2), -- Totaal bedrag NULL, 'VH', COALESCE (ksm.prs_kostensoort_refcode, ksv.prs_kostensoort_refcode), km.mld_kenmerkmelding_waarde, NULL, NULL FROM mld_opdr o, fac_tracking t, mld_melding m, (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 281) km, -- Refnr. aanvrager prs_perslid p, prs_v_afdeling_boom ab, prs_kenmerklink kl, alg_v_allonrgoed_gegevens og, mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd, prs_kostensoort ksm, prs_kostensoort ksv, prs_kostenplaats kp, prs_bedrijf b WHERE o.mld_statusopdr_key = 9 -- Afgerond --AND o.mld_opdr_ordernr IS NULL -- Sommige wel, sommige niet! AND o.mld_opdr_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 70 -- ORDAFR AND o.mld_melding_key = m.mld_melding_key AND m.mld_melding_key = km.mld_melding_key(+) AND m.prs_perslid_key_voor = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = td.ins_discipline_key AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+) AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+) AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key --AND kp.prs_kostenplaats_upper LIKE '50900%' AND SUBSTR (kp.prs_kostenplaats_upper, 1, 5) = '50900' AND o.mld_uitvoerende_keys = b.prs_bedrijf_key UNION ALL -- "Normale" catering gegroepeerd per debiteur/kostensoort SELECT TO_CHAR (reslev, 'yyyy-mm'), debiteur_oms, 'FACTUUR', debiteur, NULL, 'Lopend', NULL, NULL, NULL, 'EUR', 1, 0, -- Eenmalig artikel NULL, 'Cateringkosten ' || TO_CHAR (reslev, 'yyyy-mm'), SUM (verw_prijs), NULL, SUM (verw_prijs), NULL, 'VH', prs_kostensoort_refcode, NULL, NULL, NULL FROM (SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id, kl.prs_kenmerklink_waarde debiteur, (SELECT prs_afdeling_omschrijving || ' [' || kl.prs_kenmerklink_waarde || ']' FROM prs_afdeling WHERE prs_afdeling_key = kl.prs_link_key) debiteur_oms, ks.prs_kostensoort_refcode, res_rsv_artikel_key res_item_key, rra.res_rsv_artikel_levering reslev, 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, alg_v_allonroerendgoed aog, prs_perslid p, prs_v_afdeling_boom ab, prs_kenmerklink kl, res_v_aanwezigrsv_artikel rra, res_artikel ra, res_discipline rd, res_disc_params dp, prs_bedrijf b, prs_kostensoort ks WHERE rrr.res_activiteit_key != 130 -- Anders dan Evenement AND rrr.res_rsv_ruimte_dirtlevel = 0 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key --AND rra.res_status_bo_key = 5 Sommige wel, sommige niet! --AND (rra.res_rsv_artikel_verwerkt IS NULL -- OR rra.res_rsv_artikel_verwerkt > SYSDATE - 5) -- Op 5e Verwerkt en pas op 10e naar Twinfield! AND rra.res_rsv_artikel_verwerkt IS NULL AND rra.res_artikel_key = ra.res_artikel_key AND ra.res_discipline_key = rd.ins_discipline_key --AND rd.ins_discipline_volgnr >= 1000 -- Gedefinieerde catalogi --AND rd.ins_discipline_volgnr <= 2999 -- 1Sodexo/2Hutten/3VerdeNIET AND rd.ins_discipline_key = dp.res_ins_discipline_key AND dp.prs_bedrijf_key = b.prs_bedrijf_key AND (b.prs_bedrijf_key = 4581 -- Hutten Business Catering OR (b.prs_bedrijf_key != 4581 AND rra.res_rsv_artikel_levering > TO_DATE ('20170901', 'yyyymmdd'))) --AND ks.prs_kostensoort_doorbelasten(+) = 1 AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+) AND rra.res_rsv_artikel_dirtlevel = 0 AND rra.res_rsv_artikel_levering < SYSDATE) GROUP BY TO_CHAR (reslev, 'yyyy-mm'), debiteur_oms, debiteur, prs_kostensoort_refcode UNION ALL -- Ruimte+Catering gegroepeerd per evenement/debiteur/kostensoort SELECT TO_CHAR (reslev, 'yyyy-mm'), debiteur_oms, 'FACTUUR', debiteur, NULL, 'Lopend', NULL, NULL, NULL, 'EUR', 1, 0, -- Eenmalig artikel NULL, 'Evenementkosten ' || res_id || ' - ' || res_voorziening, SUM (COALESCE (verw_prijs, prijs)), NULL, SUM (COALESCE (verw_prijs, prijs)), NULL, 'VH', prs_kostensoort_refcode, MIN (res_kenmerkreservering_waarde), NULL, NULL FROM (SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id, kl.prs_kenmerklink_waarde debiteur, (SELECT prs_afdeling_omschrijving || ' [' || kl.prs_kenmerklink_waarde || ']' FROM prs_afdeling WHERE prs_afdeling_key = kl.prs_link_key) debiteur_oms, ks.prs_kostensoort_refcode, rrr.res_rsv_ruimte_key res_item_key, 'Ruimte ' || rr.res_ruimte_nr res_voorziening, rrr.res_rsv_ruimte_van reslev, rrr.res_rsv_ruimte_prijs - COALESCE (rrr.res_rsv_ruimte_korting, 0) verw_prijs, res.getruimteprijs (rrr.res_rsv_ruimte_key) - COALESCE (rrr.res_rsv_ruimte_korting, 0) prijs, kw.res_kenmerkreservering_waarde FROM res_v_aanwezigrsv_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, alg_v_allonroerendgoed aog, prs_perslid p, prs_v_afdeling_boom ab, prs_kenmerklink kl, res_ruimte rr, res_discipline rd, prs_kostensoort ks, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager WHERE rrr.res_activiteit_key = 130 -- Evenement AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen! AND rro.res_ruimte_key = rar1.res_ruimte_key(+) AND rro.res_ruimte_key = rar2.res_ruimte_key(+) AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key AND rr.res_discipline_key = rd.ins_discipline_key AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+) AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+) AND rrr.res_status_bo_key != 6 -- AV AND rrr.res_rsv_ruimte_dirtlevel = 0 AND rrr.res_rsv_ruimte_van > TO_DATE ('20170901', 'yyyymmdd') AND rrr.res_rsv_ruimte_van < SYSDATE UNION ALL -- Catering-regels SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id, kl.prs_kenmerklink_waarde debiteur, (SELECT prs_afdeling_omschrijving || ' [' || kl.prs_kenmerklink_waarde || ']' FROM prs_afdeling WHERE prs_afdeling_key = kl.prs_link_key) debiteur_oms, ks.prs_kostensoort_refcode, rra.res_rsv_artikel_key res_item_key, rd.ins_discipline_omschrijving res_voorziening, rra.res_rsv_artikel_levering reslev, rra.res_rsv_artikel_prijs verw_prijs, rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs, kw.res_kenmerkreservering_waarde 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, alg_v_allonroerendgoed aog, prs_perslid p, prs_v_afdeling_boom ab, prs_kenmerklink kl, res_v_aanwezigrsv_artikel rra, res_artikel ra, res_discipline rd, res_disc_params dp, prs_bedrijf b, prs_kostensoort ks, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager WHERE rrr.res_activiteit_key = 130 -- Evenement AND rrr.res_rsv_ruimte_dirtlevel = 0 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key --AND rra.res_status_bo_key = 5 Sommige wel, sommige niet! --AND (rra.res_rsv_artikel_verwerkt IS NULL -- OR rra.res_rsv_artikel_verwerkt > SYSDATE - 5) -- Op 5e Verwerkt en pas op 10e naar Twinfield! AND rra.res_rsv_artikel_verwerkt IS NULL AND rra.res_artikel_key = ra.res_artikel_key AND ra.res_discipline_key = rd.ins_discipline_key --AND rd.ins_discipline_volgnr >= 1000 -- Gedefinieerde catalogi --AND rd.ins_discipline_volgnr <= 2999 -- 1Sodexo/2Hutten/3VerdeNIET AND rd.ins_discipline_key = dp.res_ins_discipline_key AND dp.prs_bedrijf_key = b.prs_bedrijf_key --AND ks.prs_kostensoort_doorbelasten(+) = 1 AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+) AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+) AND rra.res_rsv_artikel_dirtlevel = 0 AND rra.res_rsv_artikel_levering > TO_DATE ('20170901', 'yyyymmdd') AND rra.res_rsv_artikel_levering < SYSDATE) GROUP BY TO_CHAR (reslev, 'yyyy-mm'), debiteur_oms, debiteur, 'Evenementkosten ' || res_id || ' - ' || res_voorziening, prs_kostensoort_refcode; /* Formatted on 17-9-2015 10:40:20 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW blcc_v_rap_tf_frozen ( fclt_x_maand, fclt_x_debiteur, factuurtype, debiteur, nummer, factuurdatum, vervaldatum, kop, voet, valuta, aantal, artikel, subartikel, omschrijving, artikelprijs_excl, artikelprijs_incl, btw, grootboek, vrij_tekstveld_1, vrij_tekstveld_2, vrij_tekstveld_3 ) AS SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy-mm'), (SELECT prs_afdeling_omschrijving || ' [' || kl.prs_kenmerklink_waarde || ']' FROM prs_afdeling WHERE prs_afdeling_key = kl.prs_link_key) debiteur_oms, 'FACTUUR', kl.prs_kenmerklink_waarde, NULL, TO_CHAR (t.fac_tracking_datum, 'dd-mm-yyyy'), NULL, NULL, NULL, 'EUR', 1, 0, -- Eenmalig artikel NULL, sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) || ' [' || td.ins_discipline_omschrijving || '/' || sm.mld_stdmelding_omschrijving || ']' || DECODE (km.mld_kenmerkmelding_waarde, NULL, '', ' (=' || km.mld_kenmerkmelding_waarde || ')'), ROUND (o.mld_opdr_kosten * 1.065, 2), -- Management fee 6,5% NULL, 'VH', COALESCE (ksm.prs_kostensoort_refcode, ksv.prs_kostensoort_refcode), km.mld_kenmerkmelding_waarde, NULL, NULL FROM mld_opdr o, fac_tracking t, mld_melding m, (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 281) km, -- Refnr. aanvrager prs_perslid p, prs_v_afdeling_boom ab, prs_kenmerklink kl, alg_v_allonrgoed_gegevens og, mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd, prs_kostensoort ksm, prs_kostensoort ksv, prs_kostenplaats kp, prs_bedrijf b WHERE o.mld_opdr_ordernr IS NOT NULL -- Zou zo moeten zijn! AND o.mld_statusopdr_key = 7 -- Zou zo moeten zijn! AND o.mld_opdr_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 70 -- ORDAFR AND o.mld_melding_key = m.mld_melding_key AND m.mld_melding_key = km.mld_melding_key(+) AND m.prs_perslid_key_voor = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = td.ins_discipline_key AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+) AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+) AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key --AND kp.prs_kostenplaats_upper LIKE '50900%' AND SUBSTR (kp.prs_kostenplaats_upper, 1, 5) = '50900' AND o.mld_uitvoerende_keys = b.prs_bedrijf_key UNION ALL -- "Normale" catering gegroepeerd per debiteur/kostensoort! SELECT TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm'), debiteur_oms, 'FACTUUR', debiteur, NULL, TO_CHAR (TRUNC (resver, 'mm') - 1, 'dd-mm-yyyy'), NULL, NULL, NULL, 'EUR', 1, 0, -- Eenmalig artikel NULL, 'Cateringkosten ' || TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm'), SUM (verw_prijs), NULL, 'VH', prs_kostensoort_refcode, NULL, NULL, NULL FROM (SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr resid, kl.prs_kenmerklink_waarde debiteur, (SELECT prs_afdeling_omschrijving || ' [' || kl.prs_kenmerklink_waarde || ']' FROM prs_afdeling WHERE prs_afdeling_key = kl.prs_link_key) debiteur_oms, ks.prs_kostensoort_refcode, res_rsv_artikel_key res_item_key, LTRIM (ra.res_artikel_omschrijving) || ' (' || COALESCE (ra.res_artikel_eenheid, '') || ')' res_voorziening, rra.res_rsv_artikel_verwerkt resver, rra.res_rsv_artikel_prijs verw_prijs, rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs FROM res_rsv_ruimte rrr, prs_perslid p, prs_v_afdeling_boom ab, prs_kenmerklink kl, 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, alg_v_allonroerendgoed aog, res_v_aanwezigrsv_artikel rra, res_artikel ra, res_discipline rd, prs_kostensoort ks WHERE rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key AND rra.res_status_bo_key = 6 -- AV AND rra.res_artikel_key = ra.res_artikel_key AND ra.res_discipline_key = rd.ins_discipline_key --AND ks.prs_kostensoort_doorbelasten(+) = 1 AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+) AND (rra.res_rsv_artikel_verwerkt < TO_DATE ('20171001', 'yyyymmdd') OR (rrr.res_activiteit_key != 130 --AND rra.res_rsv_artikel_levering > TO_DATE ('20170901', 'yyyymmdd') AND rra.res_rsv_artikel_verwerkt > TO_DATE ('20171001', 'yyyymmdd')))) GROUP BY TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm'), debiteur_oms, debiteur, TO_CHAR (TRUNC (resver, 'mm') - 1, 'dd-mm-yyyy'), prs_kostensoort_refcode UNION ALL -- Ruimte+Catering gegroepeerd per evenement/debiteur/kostensoort SELECT TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm'), debiteur_oms, 'FACTUUR', debiteur, NULL, TO_CHAR (TRUNC (resver, 'mm') - 1, 'dd-mm-yyyy'), NULL, NULL, NULL, 'EUR', 1, 0, -- Eenmalig artikel NULL, 'Evenementkosten ' || res_id || ' - ' || res_voorziening, SUM (verw_prijs), NULL, 'VH', prs_kostensoort_refcode, MIN (res_kenmerkreservering_waarde), NULL, NULL FROM (SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id, kl.prs_kenmerklink_waarde debiteur, (SELECT prs_afdeling_omschrijving || ' [' || kl.prs_kenmerklink_waarde || ']' FROM prs_afdeling WHERE prs_afdeling_key = kl.prs_link_key) debiteur_oms, ks.prs_kostensoort_refcode, rrr.res_rsv_ruimte_key res_item_key, 'Ruimte ' || rr.res_ruimte_nr res_voorziening, fac.gettrackingdate ('RESVER', rrr.res_rsv_ruimte_key) resver, COALESCE (rrr.res_rsv_ruimte_prijs, 0) - COALESCE (rrr.res_rsv_ruimte_korting, 0) verw_prijs, kw.res_kenmerkreservering_waarde FROM res_rsv_ruimte rrr, prs_perslid p, prs_v_afdeling_boom ab, prs_kenmerklink kl, 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, alg_v_allonroerendgoed aog, res_ruimte rr, res_discipline rd, prs_kostensoort ks, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager WHERE rrr.res_activiteit_key = 130 -- Evenement AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen! AND rro.res_ruimte_key = rar1.res_ruimte_key(+) AND rro.res_ruimte_key = rar2.res_ruimte_key(+) AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rrr.res_status_bo_key = 6 -- AV AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key AND rr.res_discipline_key = rd.ins_discipline_key --AND ks.prs_kostensoort_doorbelasten(+) = 1 AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+) AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+) UNION ALL SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr resid, kl.prs_kenmerklink_waarde debiteur, (SELECT prs_afdeling_omschrijving || ' [' || kl.prs_kenmerklink_waarde || ']' FROM prs_afdeling WHERE prs_afdeling_key = kl.prs_link_key) debiteur_oms, ks.prs_kostensoort_refcode, res_rsv_artikel_key res_item_key, rd.ins_discipline_omschrijving res_voorziening, rra.res_rsv_artikel_verwerkt resver, rra.res_rsv_artikel_prijs verw_prijs, kw.res_kenmerkreservering_waarde FROM res_rsv_ruimte rrr, prs_perslid p, prs_v_afdeling_boom ab, prs_kenmerklink kl, 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, alg_v_allonroerendgoed aog, res_v_aanwezigrsv_artikel rra, res_artikel ra, res_discipline rd, prs_kostensoort ks, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager WHERE rrr.res_activiteit_key = 130 -- Evenement AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key AND rra.res_status_bo_key = 6 -- AV AND rra.res_artikel_key = ra.res_artikel_key AND ra.res_discipline_key = rd.ins_discipline_key --AND ks.prs_kostensoort_doorbelasten(+) = 1 AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+) AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+) --AND rra.res_rsv_artikel_levering > TO_DATE ('20170901', 'yyyymmdd') AND rra.res_rsv_artikel_verwerkt > TO_DATE ('20171001', 'yyyymmdd')) GROUP BY TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm'), debiteur_oms, debiteur, TO_CHAR (TRUNC (resver, 'mm') - 1, 'dd-mm-yyyy'), 'Evenementkosten ' || res_id || ' - ' || res_voorziening, prs_kostensoort_refcode; /* Formatted on 30-9-2015 10:15:45 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW blcc_v_export_twinfield ( result, result_order ) AS -- View bevat alleen inhoud op de dag na de 1e werkdag van de maand! SELECT 'factuurtype' || ';debiteur' || ';nummer' || ';factuurdatum' || ';vervaldatum' || ';kop' || ';voet' || ';valuta' || ';aantal' || ';artikel' || ';subartikel' || ';omschrijving' || ';artikelprijs_excl' || ';artikelprijs_incl' || ';btw' || ';grootboek' || ';vrij_tekstveld_1' || ';vrij_tekstveld_2' || ';vrij_tekstveld_3', 0 FROM DUAL WHERE FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1 AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6' AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1)) UNION ALL SELECT factuurtype || ';' || debiteur || ';' || nummer || ';' || factuurdatum || ';' || vervaldatum || ';' || kop || ';' || voet || ';' || valuta || ';' || aantal || ';' || artikel || ';' || subartikel || ';' || omschrijving || ';' || artikelprijs_excl || ';' || artikelprijs_incl || ';' || btw || ';' || grootboek || ';' || vrij_tekstveld_1 || ';' || vrij_tekstveld_2 || ';' || vrij_tekstveld_3, ROWNUM FROM ( SELECT factuurtype, debiteur, nummer, factuurdatum, vervaldatum, kop, voet, valuta, aantal, artikel, subartikel, omschrijving, REPLACE (TO_CHAR (artikelprijs_excl), '.', ',') artikelprijs_excl, REPLACE (TO_CHAR (artikelprijs_incl), '.', ',') artikelprijs_incl, btw, grootboek, vrij_tekstveld_1, vrij_tekstveld_2, vrij_tekstveld_3 FROM blcc_v_rap_tf_frozen WHERE fclt_x_maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') ORDER BY debiteur, fclt_x_maand || '-' || SUBSTR (factuurdatum, 1, 2), grootboek) WHERE FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1 AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6' AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1)); /* Formatted on 30-9-2015 10:20:30 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PROCEDURE blcc_select_twinfield (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS -- Verwerken te exporteren opdrachtkosten (én de rest)! CURSOR c1 IS SELECT '[' || TO_CHAR (o.mld_melding_key) || '|' || TO_CHAR (o.mld_opdr_key) || '] ' aanduiding, o.mld_opdr_key, o.mld_opdr_kosten, DECODE (SUBSTR (kp.prs_kostenplaats_upper, 1, 5), '50900', 1, 0) doorbelasten FROM mld_opdr o, fac_tracking t, prs_kostenplaats kp WHERE o.mld_opdr_ordernr IS NOT NULL -- Reeds doorgezet naar ProQuro (of 0) AND o.mld_statusopdr_key = 9 -- Afgerond AND o.mld_opdr_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = 70 -- ORDAFR AND t.fac_tracking_datum < TRUNC (SYSDATE, 'mm') --AND o.mld_opdr_kosten > 0 -- Allemaal, ook als kosten=0 AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key; CURSOR c2 IS SELECT '[' || debiteur || '] ' aanduiding, artikelprijs_excl FROM blcc_v_rap_tf_frozen WHERE fclt_x_maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') AND omschrijving LIKE 'Cateringkosten%'; CURSOR c3 IS SELECT '[' || omschrijving || '] ' aanduiding, artikelprijs_excl FROM blcc_v_rap_tf_frozen WHERE fclt_x_maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') AND omschrijving LIKE 'Evenementkosten%'; v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_holiday NUMBER; v_order_count NUMBER; v_amount_sum NUMBER (10, 2); BEGIN v_order_count := 0; v_amount_sum := 0; -- Eerst opruiming DELETE FROM imp_log WHERE imp_log_applicatie = p_applname; SELECT COUNT ( * ) INTO v_holiday FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1); -- LET OP: Twinfield-export draait dagelijks na middernacht (begin van dag) -- en de verkoop wordt maandelijks alleen in de nacht na 1e werkdag van de -- maand doorgezet. -- IF nacht na 1e werkdag van de maand (én geen weekend én geen vrije dag)! -- count_work_days (d1,d2) bepaalt het #werkdagen van d1 tot d2 (als d1=d2, -- dan return 0); daarom bepalen tov. laatste dag van vorige maand! IF FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1 AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6' AND v_holiday = 0 THEN FOR rec IN c1 LOOP BEGIN v_errormsg := 'Fout verwerken opdrachtkosten'; MLD.setopdrachtstatus (rec.mld_opdr_key, 7, NULL); v_errormsg := 'Fout meetellen opdrachtkosten'; --IF rec.mld_kenmerk_key IS NOT NULL IF rec.doorbelasten = 1 THEN v_order_count := v_order_count + 1; v_amount_sum := v_amount_sum + rec.mld_opdr_kosten; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'Opdrachtkosten'); COMMIT; END; END LOOP; COMMIT; FOR rec IN c2 LOOP BEGIN v_errormsg := 'Fout meetellen cateringkosten'; v_order_count := v_order_count + 1; v_amount_sum := v_amount_sum + rec.artikelprijs_excl; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'Cateringkosten'); COMMIT; END; END LOOP; COMMIT; FOR rec IN c3 LOOP BEGIN v_errormsg := 'Fout meetellen evenementkosten'; v_order_count := v_order_count + 1; v_amount_sum := v_amount_sum + rec.artikelprijs_excl; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'Evenementkosten'); COMMIT; END; END LOOP; fac.writelog (p_applname, 'S', 'Twinfield export/#regels: ' || TO_CHAR (v_order_count), TO_CHAR (v_amount_sum)); END IF; END; / /* Formatted on 29-6-2016 18:42:24 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PROCEDURE blcc_import_perslid (p_import_key IN NUMBER) AS v_errormsg VARCHAR2 (1000) := '-'; v_errorhint VARCHAR2 (1000) := '-'; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); BEGIN v_errorhint := 'Generieke import ' || TO_CHAR (p_import_key); -- Afdelingscode-kolom hard op 'XxX' indien leeg (want verplicht)! UPDATE fac_imp_file SET fac_imp_file_line = SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 2)) || 'XxX' || SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 3)) WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1 AND SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 2) + 1, INSTR (fac_imp_file_line, ';', 1, 3) - INSTR (fac_imp_file_line, ';', 1, 2) - 1) IS NULL; COMMIT; -- Functie-kolom negeren en hard op 'Medewerker' (want verplicht)! UPDATE fac_imp_file i SET fac_imp_file_line = SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 10)) || 'Medewerker' || SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 11)) WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1; COMMIT; -- De sequence array staat beschreven in PRS_PAC.SRC bij de import_perslid-PROCEDURE. prs.import_perslid ( p_import_key, '0;0;0;0;0;0;3;4;5;6;' || '0;0;0;0;10;7;8;9;0;0;' || '11;1;2;0;0;0;12;13;14;15;' || '16;17;18;0;0;0;0;0;0;0;' || '0;0;0;0;0;0', 'Loginnaam;Wachtwoord;Afdelingscode;Achternaam;Tussenvoegsel;Voornaam;Telefoon;Mobiel;Email;Geslacht;Functie;Taal;SSC FOBO;SSC Digireceptiemedewerker;SSC Huurderadministrator%'); -- Klantspecifieke aanpassingen. 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.imp_writelog (p_import_key, 'E', v_errormsg || v_errorhint, 'Inleesproces personen afgebroken!'); END blcc_import_perslid; / /* Formatted on 30-6-2016 12:30:30 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PROCEDURE blcc_update_perslid (p_import_key IN NUMBER) AS -- Verwijderen personen niet in import voor afdelingen wel in import! CURSOR c_del IS SELECT p.prs_perslid_key FROM prs_v_aanwezigperslid p, prs_afdeling a WHERE (p.prs_perslid_oslogin IS NULL OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak AND p.prs_perslid_oslogin2 IS NULL AND p.prs_afdeling_key = a.prs_afdeling_key AND EXISTS (SELECT 1 FROM fac_imp_perslid i WHERE UPPER (i.prs_afdeling_naam) = a.prs_afdeling_upper) AND NOT EXISTS (SELECT 1 FROM fac_imp_perslid i WHERE UPPER (i.prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin)) ORDER BY 1; -- Bijwerken werkplek van personen naar '_' (als nog geen werkplek)! CURSOR c_wp IS SELECT p.prs_perslid_key FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i WHERE p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam) AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin) AND NOT EXISTS (SELECT 1 FROM prs_perslidwerkplek pw WHERE pw.prs_perslid_key = p.prs_perslid_key) ORDER BY 1; -- Bijwerken language van personen naar 'EN' (volgens importbestand)! CURSOR c_lang IS SELECT p.prs_perslid_key, DECODE (i.prs_kenmerk1, 'EN', 'EN', 'NL') lang FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i WHERE p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam) AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin) ORDER BY 1; -- Bijwerken autorisatiegroepen van personen (volgens importbestand)! CURSOR c_rol ( p_ssc_fobo_key IN NUMBER, p_ssc_dmedew_key IN NUMBER, p_ssc_hadmin_key IN NUMBER) IS SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk2), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_fobo_key fac_groep_key FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i WHERE p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam) AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin) UNION ALL SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk3), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_dmedew_key fac_groep_key FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i WHERE p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam) AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin) UNION ALL SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk4), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_hadmin_key fac_groep_key FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i WHERE p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam) AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin) UNION ALL -- Afnemen _Default SELECT p.prs_perslid_key, 0 aanuit, 1 fac_groep_key -- _Default FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i WHERE p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam) AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin) UNION ALL -- Toewijzen SSC FE (LABS-key=241 en PROD-key=321) SELECT p.prs_perslid_key, 1 aanuit, 321 fac_groep_key -- SSC FE FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i WHERE p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam) AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin) ORDER BY 1, 3; c_ruimte_key NUMBER := 2204; -- Fictieve ruimte op SSCH-locatie (LABS-key=2243 en PROD-key=2204) c_ssc_fobo_key NUMBER := 341; -- SSC FOBO (LABS-key=241 en PROD-key=341) c_ssc_dmedew_key NUMBER := 361; -- SSC Digireceptiemedewerker c_ssc_hadmin_key NUMBER := 362; -- SSC Huurderadministrator v_bedrijf_key NUMBER (10) := -1; v_afdeling_naam VARCHAR2 (15) := ''; BEGIN -- Als import door Huurderadministrator, dan Afdelingscode-kolom negeren en hard op Afdeling-1 van Huurderadministrator! SELECT ab.prs_bedrijf_key, a.prs_afdeling_naam INTO v_bedrijf_key, v_afdeling_naam FROM fac_import i, prs_v_aanwezigperslid p, prs_afdeling a, prs_v_afdeling_boom ab WHERE i.fac_import_key = p_import_key AND i.prs_perslid_key = p.prs_perslid_key AND p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_afdeling_key = ab.prs_afdeling_key; IF v_bedrijf_key IN (1981, 2442) -- LABS-key+PROD-key van Huurders SSC-bedrijf; TODO: LABS-key nog een keer verwijderen! THEN -- Import door Huurderadministrator! UPDATE fac_imp_perslid SET prs_afdeling_naam = v_afdeling_naam; ELSE -- Import door andere administrator! UPDATE fac_imp_perslid SET prs_afdeling_naam = NULL WHERE prs_afdeling_naam = 'XxX'; END IF; COMMIT; -- Generieke update. prs.update_perslid (p_import_key, 'LOGIN', NULL); -- Verwijderen personen niet in import voor afdelingen wel in import! FOR rec IN c_del LOOP prs.delete_perslid (p_import_key, rec.prs_perslid_key); END LOOP; COMMIT; -- Toekennen fictieve werkplek op SSCH-locatie (voor wie daar nog niet een -- werkplek heeft)! -- Bijwerken werkplek van personen naar '_' (als nog geen werkplek)! FOR rec IN c_wp LOOP prs.movetoruimte (rec.prs_perslid_key, c_ruimte_key, NULL); END LOOP; COMMIT; -- Bijwerken language van personen naar 'EN' (volgens importbestand)! FOR rec IN c_lang LOOP UPDATE prs_perslid SET prs_perslid_lang = rec.lang WHERE prs_perslid_key = rec.prs_perslid_key; END LOOP; COMMIT; -- Bijwerken autorisatiegroepen van personen (volgens importbestand)! FOR rec IN c_rol (c_ssc_fobo_key, c_ssc_dmedew_key, c_ssc_hadmin_key) LOOP IF rec.aanuit = 1 THEN INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT rec.fac_groep_key, rec.prs_perslid_key FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM fac_gebruikersgroep WHERE fac_groep_key = rec.fac_groep_key AND prs_perslid_key = rec.prs_perslid_key); ELSE DELETE FROM fac_gebruikersgroep WHERE fac_groep_key = rec.fac_groep_key AND prs_perslid_key = rec.prs_perslid_key; END IF; END LOOP; END blcc_update_perslid; / -- BLCC#38235: Import vanuit Strukton /* Formatted on 22-5-2015 11:52:44 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PROCEDURE blcc_import_opdrstat_strukton (p_import_key IN NUMBER) AS c_delim VARCHAR2 (1) := ';'; v_newline VARCHAR2 (4000); -- Input line v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (1000) := ''; header_is_valid NUMBER := 0; v_count_tot NUMBER (10) := 0; v_count_imp NUMBER (10) := 0; v_ongeldig NUMBER (1) := 0; -- De importvelden v_mld_opdr_key_tekst VARCHAR2 (100); v_mld_opdr_key NUMBER (10); v_mld_opdr_opmerking VARCHAR2 (4000); v_extern_nummer VARCHAR2 (100); v_status_code VARCHAR2 (100); v_status NUMBER (10); v_datumtijd_tekst VARCHAR2 (100); v_datumtijd DATE; v_status_tekst VARCHAR2 (100); v_opmerking VARCHAR2 (4000); -- Overige velden: CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; BEGIN -- Eerst opruiming DELETE FROM blcc_imp_opdrstat_strukton; COMMIT; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_errormsg := 'Fout opvragen importregel'; v_aanduiding := ''; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_delim, v_mld_opdr_key_tekst); fac.imp_getfield (v_newline, c_delim, v_extern_nummer); fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst); fac.imp_getfield (v_newline, c_delim, v_status_tekst); fac.imp_getfield (v_newline, c_delim, v_opmerking); v_opmerking := SUBSTR (v_opmerking, 1, 1000); -- Verwijder de markering voor cr/lf die in stylesheet is toegevoegd. v_opmerking := REPLACE (v_opmerking, '@@', CHR (13)); v_aanduiding := '[' || v_mld_opdr_key_tekst || '|' || v_extern_nummer || '|' || v_status_code || '|' || v_datumtijd_tekst || '|' || v_status_tekst || '] '; -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen! -- Ik negeer alles totdat ik een geldige header ben gepasseerd. IF header_is_valid = 0 THEN IF UPPER (TRIM (v_mld_opdr_key_tekst)) = 'REFERENCEID' AND UPPER (TRIM (v_extern_nummer)) = 'SERVICEREQUESTID' AND UPPER (TRIM (v_status_code)) = 'TYPEID' AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME' AND UPPER (TRIM (v_opmerking)) = 'REMARKS' THEN header_is_valid := 1; END IF; ELSE v_count_tot := v_count_tot + 1; -- Controleer alle veldwaarden v_errormsg := 'Fout bepalen opdracht'; v_mld_opdr_key := TRIM (v_mld_opdr_key); BEGIN SELECT o.mld_opdr_key, o.mld_opdr_opmerking INTO v_mld_opdr_key, v_mld_opdr_opmerking FROM mld_opdr o, mld_melding m, mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd WHERE 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 td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr = v_mld_opdr_key_tekst; EXCEPTION WHEN OTHERS THEN v_ongeldig := 1; oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_import_key, 'W', v_aanduiding || v_errormsg, ''); END; IF v_ongeldig = 0 THEN v_errormsg := 'Fout bepalen status'; CASE WHEN v_status_code = '5' THEN v_status := 5; -- uitgegeven WHEN v_status_code = '10' THEN v_status := 8; -- geaccepteerd WHEN v_status_code = '20' -- monteur gereed THEN v_status := 6; -- afgemeld WHEN v_status_code = '25' -- specialist gereed THEN v_status := 6; -- afgemeld WHEN v_status_code = '30' -- technisch gereed THEN v_status := 6; -- afgemeld -- For future use --WHEN v_status_code = '40' -- uitgeprijst --THEN -- v_status := 6; -- afgemeld WHEN v_status_code = '70' THEN v_status := 1; -- geannuleerd WHEN v_status_code = '80' THEN v_status := 1; -- afgewezen ELSE v_status := NULL; v_ongeldig := 1; -- nog te bezien END CASE; END IF; IF v_ongeldig = 0 THEN v_errormsg := 'Fout converteren datumtijd'; IF INSTR (v_datumtijd_tekst, '.') > 0 THEN v_datumtijd := fac.safe_to_date ( REPLACE ( SUBSTR (v_datumtijd_tekst, 1, INSTR (v_datumtijd_tekst, '.') - 1), 'T', ' '), 'yyyy-mm-dd hh24:mi:ss'); ELSE v_datumtijd := fac.safe_to_date (v_datumtijd_tekst, 'yyyy-mm-dd hh24:mi:ss'); END IF; END IF; IF v_ongeldig = 0 THEN v_errormsg := 'Fout aanvullen opmerking'; -- controleer of de opmerking niet leeg is en of dezelfde opmerking al bij een eerdere statusovergang -- gemeld is. IF v_opmerking IS NOT NULL AND INSTR (v_mld_opdr_opmerking, v_opmerking) = 0 THEN v_opmerking := '[' || v_datumtijd_tekst || '] - ' || v_status_tekst || CHR (13) || CHR (10) || v_opmerking; ELSE v_opmerking := '[' || v_datumtijd_tekst || '] - ' || v_status_tekst; END IF; END IF; -- Insert geformatteerde import record IF v_ongeldig = 0 THEN BEGIN v_errormsg := 'Fout wegschrijven statusbericht'; INSERT INTO blcc_imp_opdrstat_strukton (mld_opdr_key, extern_nummer, status, datumtijd, opmerking) VALUES (v_mld_opdr_key, v_extern_nummer, v_status, v_datumtijd, v_opmerking); v_count_imp := v_count_imp + 1; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, ''); END; ELSE IF v_status_code <> '40' AND v_status_code <> '45' THEN fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, ''); END IF; END IF; END IF; END; END LOOP; IF header_is_valid = 0 THEN fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!'); ELSE fac.imp_writelog ( p_import_key, 'S', 'Inleesproces/#ingelezen statusberichten: ' || TO_CHAR (v_count_tot), ''); fac.imp_writelog ( p_import_key, 'S', 'Inleesproces/#ongeldige niet ingelezen statusberichten: ' || TO_CHAR (v_count_tot - v_count_imp), ''); END IF; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces statusberichten afgebroken!'); END; / CREATE OR REPLACE PROCEDURE blcc_update_opdrstat_strukton (p_import_key IN NUMBER) AS -- Cursor loopt - in volgorde! - over alle ingelezen statusberichten. CURSOR c1 IS SELECT mld_opdr_key, extern_nummer, datumtijd, status, opmerking FROM blcc_imp_opdrstat_strukton ORDER BY 1, 3; c_user_key NUMBER (10) := 5; -- _STRUKTON-user c_refnr_srtkkey NUMBER (10) := 261; -- Refnr. Leverancier v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200); v_count_tot NUMBER (10) := 0; v_count NUMBER (10) := 0; v_mld_key NUMBER (10) := 0; v_opdr_key NUMBER (10) := 0; v_opdr_status NUMBER (10) := 0; v_mld_typeopdr_key NUMBER (10); v_mld_kenmerk_key NUMBER (10); v_mld_kenmerkopdr_key NUMBER (10); BEGIN -- Loop over alle ingelezen Strukton-statusberichten. FOR rec IN c1 LOOP BEGIN v_aanduiding := '[' || rec.mld_opdr_key || '|' || SUBSTR (rec.opmerking, 1, 100) || '] '; v_count_tot := v_count_tot + 1; -- Key van melding/opdracht bepalen en Refnr. bij opdracht opslaan. IF rec.mld_opdr_key IS NOT NULL THEN v_errormsg := 'Fout bepalen opdracht.'; SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key, mld_typeopdr_key INTO v_mld_key, v_opdr_key, v_opdr_status, v_mld_typeopdr_key FROM mld_opdr WHERE mld_opdr_key = rec.mld_opdr_key; v_errormsg := 'Fout bepalen Refnr-kenmerk.'; SELECT k.mld_kenmerk_key INTO v_mld_kenmerk_key FROM mld_kenmerk k WHERE k.mld_srtkenmerk_key = c_refnr_srtkkey AND k.mld_typeopdr_key = v_mld_typeopdr_key; v_errormsg := 'Fout bepalen Refnr-kenmerkopdracht.'; SELECT MAX (ko.mld_kenmerkopdr_key) INTO v_mld_kenmerkopdr_key FROM mld_kenmerkopdr ko WHERE ko.mld_opdr_key = v_opdr_key AND v_mld_kenmerk_key = ko.mld_kenmerk_key; IF v_mld_kenmerkopdr_key IS NULL THEN -- Kenmerk toevoegen v_errormsg := 'Fout toevoegen Refnr-kenmerkopdracht.'; INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, mld_opdr_key, mld_kenmerkopdr_waarde) VALUES (v_mld_kenmerk_key, v_opdr_key, rec.extern_nummer); ELSE -- Kenmerk bijwerken v_errormsg := 'Fout bijwerken Refnr-kenmerkopdracht.'; UPDATE mld_kenmerkopdr SET mld_kenmerkopdr_waarde = rec.extern_nummer WHERE mld_kenmerkopdr_key = v_mld_kenmerkopdr_key; END IF; v_errormsg := 'Fout bijwerken Opmerking (opdracht).'; v_count := LENGTH (rec.opmerking) + 5; -- Beetje speling qua lengte! UPDATE mld_opdr SET mld_opdr_opmerking = DECODE ( mld_opdr_opmerking, NULL, rec.opmerking, rec.opmerking || CHR (13) || CHR (10) || SUBSTR (mld_opdr_opmerking, 1, (4000 - v_count))) WHERE mld_opdr_key = v_opdr_key; v_errormsg := 'Fout bijwerken Status.'; IF v_opdr_status <> rec.status THEN IF rec.status = 8 AND v_opdr_status = 5 THEN -- Accepteer opdracht als de opdracht uitgegeven was MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton ELSIF rec.status = 6 AND v_opdr_status = 5 THEN -- Meld de opdracht af als deze uitgegeven was MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton, eerst accepteren MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton ELSIF rec.status = 6 AND v_opdr_status = 8 THEN -- Meld de opdracht af als deze geaccepteerd was MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton ELSIF rec.status = 1 AND v_opdr_status IN (5, 8) THEN -- Wijs de opdracht af als deze niet/wel geaccepteerd was MLD.setopdrachtstatus (v_opdr_key, 1, c_user_key); -- Strukton MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0); END IF; IF rec.status = 6 AND v_opdr_status <> 6 THEN v_errormsg := 'Fout bijwerken Opmerking (melding).'; UPDATE mld_melding m SET mld_melding_opmerking = DECODE ( mld_melding_opmerking, NULL, rec.opmerking, rec.opmerking || CHR (13) || CHR (10) || SUBSTR (mld_melding_opmerking, 1, (4000 - v_count))) WHERE mld_melding_key = v_mld_key AND mld_melding_status IN (4, 7) AND NOT EXISTS ( -- Afhandeling in melding niet aanpassen voor projecten SELECT sm.mld_stdmelding_key FROM mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key AND sm.mld_ins_discipline_key = td.ins_discipline_key AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND sd.ins_srtdiscipline_prefix = 'QQQ'); v_errormsg := 'Fout sluiten melding.'; SELECT COUNT ( * ) INTO v_count FROM (SELECT m.mld_melding_key, (SELECT COUNT ( * ) FROM mld_opdr o WHERE mld_melding_key = m.mld_melding_key) aanw_opdr, (SELECT COUNT ( * ) FROM mld_opdr o WHERE mld_melding_key = m.mld_melding_key AND o.mld_statusopdr_key NOT IN (1, 2, 6, 7, 9)) open_opdr FROM mld_melding m WHERE m.mld_melding_key = v_mld_key AND m.mld_melding_status IN (4, 7)) niet_opgelost WHERE aanw_opdr > 0 AND open_opdr = 0; -- Sinds AADO#30922 wordt de melding niet meer automatisch afgemeld. MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0); END IF; END IF; END IF; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Statusbericht-loop'); END; END LOOP; COMMIT; END; / /* Formatted on 7-6-2016 13:24:42 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW blcc_v_autorisatiegroepen ( fac_groep_key, fac_groep_oms ) AS SELECT fac_groep_key, fac_groep_omschrijving FROM fac_groep WHERE fac_groep_omschrijving LIKE 'SSC%'; -- BLCC#38512 /* Formatted on 3-1-2017 12:06:24 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW blcc_v_rap_mldtrk ( melding, aanmaakdatumtijd, aanmaakdatum, aanmaaktijdstip, meldingstatus, plan_einddatum, sla_einddatum, wijzigingsdatumtijd, wijzigingsdatum, wijzigingstijdstip, wijzigingdoor, wijzigingcode ) AS SELECT sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) melding, m.mld_melding_datum aanmaakdatumtijd, TO_CHAR (m.mld_melding_datum, 'dd-mm-yyyy') aanmaakdatum, TO_CHAR (m.mld_melding_datum, 'hh24:mi') aanmaaktijdstip, ms.mld_statuses_omschrijving meldingstatus, TO_CHAR (m.mld_melding_einddatum, 'dd-mm-yyyy') plan_einddatum, TO_CHAR (m.mld_melding_einddatum_std, 'dd-mm-yyyy') sla_einddatum, t.fac_tracking_datum wijzigingsdatumtijd, TO_CHAR (t.fac_tracking_datum, 'dd-mm-yyyy') wijzigingsdatum, TO_CHAR (t.fac_tracking_datum, 'hh24:mi') wijzigingstijdstip, pf.prs_perslid_naam_full tracking_door, sn.fac_srtnotificatie_code tracking_code FROM mld_melding m, mld_statuses ms, mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd, fac_tracking t, fac_srtnotificatie sn, prs_v_perslid_fullnames_all pf WHERE m.mld_melding_status = ms.mld_statuses_key AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = td.ins_discipline_key AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND sd.ins_srtdiscipline_key = 1 -- BCC AND m.mld_melding_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND sn.fac_srtnotificatie_xmlnode = 'melding' AND sn.fac_srtnotificatie_key IN (43, 37, 44, 38, 39, 46, 47, 48, 49) -- MLDNEW, MLDACP, MLDREJ, MLDAFM, MLDAFR, MLDVER, MLDDOO, MLDFWD, MLDBWD AND t.prs_perslid_key = pf.prs_perslid_key; CREATE OR REPLACE VIEW blcc_v_rap_ordtrk ( opdracht, aanmaakdatumtijd, aanmaakdatum, aanmaaktijdstip, opdrachtstatus, plan_einddatum, wijzigingsdatumtijd, wijzigingsdatum, wijzigingstijdstip, wijzigingdoor, wijzigingcode ) AS SELECT sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) opdracht, o.mld_opdr_datumbegin aanmaakdatumtijd, TO_CHAR (o.mld_opdr_datumbegin, 'dd-mm-yyyy') aanmaakdatum, TO_CHAR (o.mld_opdr_datumbegin, 'hh24:mi') aanmaaktijdstip, os.mld_statusopdr_omschrijving opdrachtstatus, TO_CHAR (o.mld_opdr_einddatum, 'dd-mm-yyyy') plan_einddatum, -- Of mld_opdr_plandatum? t.fac_tracking_datum wijzigingsdatumtijd, TO_CHAR (t.fac_tracking_datum, 'dd-mm-yyyy') wijzigingsdatum, TO_CHAR (t.fac_tracking_datum, 'hh24:mi') wijzigingstijdstip, pf.prs_perslid_naam_full tracking_door, sn.fac_srtnotificatie_code tracking_code FROM mld_opdr o, mld_statusopdr os, mld_melding m, mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd, fac_tracking t, fac_srtnotificatie sn, prs_v_perslid_fullnames_all pf WHERE o.mld_statusopdr_key = os.mld_statusopdr_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 td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND sd.ins_srtdiscipline_key = 1 -- BCC AND o.mld_opdr_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND sn.fac_srtnotificatie_xmlnode = 'opdracht' --AND sn.fac_srtnotificatie_key IN (59 ,65, 64, 69, 58, 70, 66) -- ORDNEW, ORDACP, ORDREJ, ORDCAN, ORDAFM, ORDAFR, ORDVER AND sn.fac_srtnotificatie_key NOT IN (60, 73, 40, 56, 57, 68, 135) -- ORDUPD, ORD2GO, MLDAP1, ORDMLI, ORDMLE, ORDSNX, ORDMAI AND t.prs_perslid_key = pf.prs_perslid_key; -- BLCC#39810 View voor cateringrapportage CREATE OR REPLACE VIEW blcc_v_rap_cateringoverzicht ( fclt_f_debiteur, fclt_f_organisatie, locatie, ruimte, datumtijd, datum, tijd_van, tijd_tot, resnr, omschrijving, artikelkey, artikelnr, artikelomschrijving, aantal, stuksprijs, kosten, fclt_f_besteller, costcenter, activiteit ) AS SELECT COALESCE (x.prs_kenmerklink_waarde, '???') deb_nr, (SELECT prs_afdeling_omschrijving FROM prs_afdeling WHERE prs_afdeling_key = x.prs_afdeling_key) deb_oms, DECODE ( x.alg_ruimte_key, NULL, 'Onbekend', rg.alg_gebouw_upper || '-' || rg.alg_verdieping_code || '-' || rg.alg_ruimte_nr) afleveradres, COALESCE (rr.res_ruimte_nr, rg.alg_ruimte_omschrijving) ruimte, x.res_rsv_artikel_levering, TO_CHAR (x.res_rsv_artikel_levering, 'DD-MM-YYYY') datum, TO_CHAR (x.res_rsv_ruimte_van, 'hh24:mi') tijdvan, TO_CHAR (x.res_rsv_ruimte_tot, 'hh24:mi') tijdtot, x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr resnr, x.res_rsv_ruimte_omschrijving omschrijving, x.res_artikel_key, x.res_artikel_nr, x.res_artikel_omschrijving, x.res_rsv_artikel_aantal, ROUND ((x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5) stuksprijs, x.res_rsv_artikel_aantal * ROUND ((x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5) regeltotaal, x.prs_perslid_naam_full, (SELECT MAX (kw.res_kenmerkreservering_waarde) FROM res_kenmerkwaarde kw, res_kenmerk rk WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key AND kw.res_kenmerkwaarde_verwijder IS NULL AND kw.res_kenmerk_key = rk.res_kenmerk_key AND rk.res_srtkenmerk_key = 1) costcenter, x.res_activiteit_omschrijving FROM (SELECT rra.res_rsv_artikel_verwerkt, COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) res_ruimte_key, COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) alg_ruimte_key, rra.res_rsv_artikel_levering, rrr.res_rsv_ruimte_key, rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr, rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot, rrr.res_rsv_ruimte_omschrijving, act.res_activiteit_omschrijving, ra.res_artikel_nr, ra.res_artikel_key, ra.res_artikel_omschrijving, rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal, COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) prs_afdeling_key, kl.prs_kenmerklink_waarde, pf.prs_perslid_naam_full, k.prs_kostenplaats_nr, k.prs_kostenplaats_omschrijving FROM res_rsv_ruimte rrr, res_activiteit act, res_rsv_artikel rra, res_artikel ra, 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, alg_v_allonroerendgoed aog, prs_perslid p, prs_v_afdeling_boom ab, prs_kenmerklink kl, prs_v_perslid_fullnames_all pf, prs_kostenplaats k WHERE rrr.res_activiteit_key = act.res_activiteit_key --AND act.res_activiteit_verwijder IS NULL -- Wat ooit is Verwerkt, altijd opnemen! AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key --AND rra.res_rsv_artikel_verwijder IS NULL -- Wat ooit is Verwerkt, altijd opnemen! AND rra.res_status_bo_key = 6 -- Verwerkt AND rra.res_artikel_key = ra.res_artikel_key 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer AND p.prs_perslid_key = pf.prs_perslid_key AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x LEFT JOIN res_ruimte rr ON x.res_ruimte_key = rr.res_ruimte_key LEFT JOIN alg_v_ruimte_gegevens_all rg ON x.alg_ruimte_key = rg.alg_ruimte_key UNION ALL SELECT COALESCE (x.prs_kenmerklink_waarde, '???') deb_nr, (SELECT prs_afdeling_omschrijving FROM prs_afdeling WHERE prs_afdeling_key = x.prs_afdeling_key) deb_oms, DECODE ( x.alg_ruimte_key, NULL, 'Onbekend', rg.alg_gebouw_upper || '-' || rg.alg_verdieping_code || '-' || rg.alg_ruimte_nr) afleveradres, COALESCE (rr.res_ruimte_nr, rg.alg_ruimte_omschrijving) ruimte, x.res_rsv_artikel_levering, TO_CHAR (x.res_rsv_artikel_levering, 'DD-MM-YYYY') datum, TO_CHAR (x.res_rsv_ruimte_van, 'hh24:mi') tijdvan, TO_CHAR (x.res_rsv_ruimte_tot, 'hh24:mi') tijdtot, x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr resnr, x.res_rsv_ruimte_omschrijving omschrijving, x.res_artikel_key, x.res_artikel_nr, x.res_artikel_omschrijving, x.res_rsv_artikel_aantal, ROUND ((x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5) stuksprijs, x.res_rsv_artikel_aantal * ROUND ((x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5) regeltotaal, x.prs_perslid_naam_full, (SELECT MAX (kw.res_kenmerkreservering_waarde) FROM res_kenmerkwaarde kw, res_kenmerk rk WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key AND kw.res_kenmerkwaarde_verwijder IS NULL AND kw.res_kenmerk_key = rk.res_kenmerk_key AND rk.res_srtkenmerk_key = 1) costcenter, x.res_activiteit_omschrijving FROM (SELECT rra.res_rsv_artikel_verwerkt, COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) res_ruimte_key, COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) alg_ruimte_key, rra.res_rsv_artikel_levering, rrr.res_rsv_ruimte_key, rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr, rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot, rrr.res_rsv_ruimte_omschrijving, act.res_activiteit_omschrijving, ra.res_artikel_nr, ra.res_artikel_key, ra.res_artikel_omschrijving, rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal, COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) prs_afdeling_key, kl.prs_kenmerklink_waarde, pf.prs_perslid_naam_full, k.prs_kostenplaats_nr, k.prs_kostenplaats_omschrijving FROM res_rsv_ruimte rrr, res_activiteit act, res_rsv_artikel rra, res_artikel ra, 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, alg_v_allonroerendgoed aog, prs_perslid p, prs_v_afdeling_boom ab, prs_kenmerklink kl, prs_v_perslid_fullnames_all pf, prs_kostenplaats k WHERE rrr.res_activiteit_key = act.res_activiteit_key AND act.res_activiteit_verwijder IS NULL AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key AND rra.res_rsv_artikel_verwijder IS NULL AND rra.res_status_bo_key != 6 -- Verwerkt AND rra.res_artikel_key = ra.res_artikel_key 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 1 -- CAMPUS AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer AND p.prs_perslid_key = pf.prs_perslid_key AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x LEFT JOIN res_ruimte rr ON x.res_ruimte_key = rr.res_ruimte_key LEFT JOIN alg_v_ruimte_gegevens_all rg ON x.alg_ruimte_key = rg.alg_ruimte_key; --BLCC#41477: Onderstaande twee views zijn opnieuw opgebouwd zodat er geen udr views gebruikt worden als bron. CREATE OR REPLACE VIEW blcc_v_rap_meldingen ( prioriteittxt, meldingnummer, productgroep, subproductgroep, melding_datumtijd, melding_datum, melding_tijd, melding_locatiecode, melding_gebouwcode, melding_verdieping, melding_ruimtenr, onderwerp, omschrijving, melder, melding_status, melding_opmerking, behandelaar, melding_einddatumtijd, melding_einddatum, afspraak_sla_uren, melder_key ) AS SELECT DECODE (mld_melding_spoed, 3, lcl.l ('lcl_mld_urg_normaal'), 1, lcl.l ('lcl_mld_urg_kritiek'), 2, lcl.l ('lcl_mld_urg_hoog'), 4, lcl.l ('lcl_mld_urg_laag')), sd.ins_srtdiscipline_prefix || m.mld_melding_key meldingnummer, md.ins_discipline_omschrijving productgroep, s.mld_stdmelding_omschrijving subproductgroep, m.mld_melding_datum, TO_CHAR (m.mld_melding_datum, 'DD-MM-YYYY') datum, TO_CHAR (m.mld_melding_datum, 'hh24:mi') tijd, l.alg_locatie_code locatie, og.alg_gebouw_code gebouw, og.alg_verdieping_code verdieping, og.alg_ruimte_nr ruimte, m.mld_melding_onderwerp onderwerp, REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (SUBSTR (m.mld_melding_omschrijving, 1, 1000), CHR (10), ' '), CHR (13), ' '), CHR (128), 'EUR'), '"', ''''), ';', '') omschrijving, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = m.prs_perslid_key) melder, (SELECT mld_statuses_omschrijving FROM mld_statuses sta WHERE sta.mld_statuses_key = m.mld_melding_status) status, REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (SUBSTR (m.mld_melding_opmerking, 1, 1000), CHR (10), ' '), CHR (13), ' '), CHR (128), 'EUR'), '"', ''''), ';', '') opmerking, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = m.mld_melding_behandelaar_key) behandelaar, m.mld_melding_einddatum, TO_CHAR (m.mld_melding_einddatum, 'DD-MM-YYYY') einddatum, DECODE ( mld.getactualuitvoer (m.mld_melding_key).eenheid, 'U', ( (m.mld_melding_einddatum - COALESCE ( COALESCE ( mld.getmeldingstatusdate (m.mld_melding_key, 5), mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)) * 24) + COALESCE ( DECODE (m.mld_melding_t_respijt.eenheid, 'D', m.mld_melding_t_respijt.tijdsduur, NULL), 0), NULL) afspraak_sla_uren, m.prs_perslid_key FROM mld_melding m, ins_srtdiscipline sd, mld_discipline md, mld_stdmelding s, alg_v_allonrgoed_gegevens og, alg_locatie l WHERE s.mld_stdmelding_key = m.mld_stdmelding_key AND m.mld_alg_locatie_key = l.alg_locatie_key(+) AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key AND md.ins_discipline_key = s.mld_ins_discipline_key AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) AND m.fac_activiteit_key IS NULL AND m.mld_melding_datum >= TO_DATE ('01-01-2010', 'DD-MM-YYYY'); CREATE OR REPLACE VIEW blcc_v_rap_opdrachten ( prioriteittxt, klantwens, opdracht_nummer, melding_key, opdracht_type, opdracht_district, opdracht_locatie_code, opdracht_gebouwcode, soortmelding, vakgroep, subgroep, omschrijving, opdracht_datumtijd, opdracht_datum, opdracht_tijd, melding_status, opdracht_status, opdracht_einddatumtijd, opdracht_einddatum, opdracht_eindtijd, opdracht_uitvoerende, behandelaar, melder, kostenplaats_oms, opdracht_kosten, opdracht_uren, opdracht_correctie, opdracht_materiaal, opdracht_uurtarief ) AS SELECT DISTINCT DECODE (mld_melding_spoed, 3, lcl.l ('lcl_mld_urg_normaal'), 1, lcl.l ('lcl_mld_urg_kritiek'), 2, lcl.l ('lcl_mld_urg_hoog'), 4, lcl.l ('lcl_mld_urg_laag')), mko.fac_usrdata_omschr klantwens, ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) || '/' || o.mld_opdr_bedrijfopdr_volgnr, m.mld_melding_key, top.mld_typeopdr_omschrijving, alg_district_omschrijving, alg_locatie_code, og.alg_gebouw_code, sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving productgroep, s.mld_stdmelding_omschrijving subproductgroep, REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (SUBSTR (m.mld_melding_omschrijving, 1, 1000), CHR (10), ' '), CHR (13), ' '), CHR (128), 'EUR'), '"', ''''), ';', ''), o.mld_opdr_datumbegin, TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') datum, TO_CHAR (o.mld_opdr_datumbegin, 'hh24:mi') tijd, mso.mld_statuses_omschrijving, (SELECT mld_statusopdr_omschrijving FROM mld_statusopdr sta WHERE sta.mld_statusopdr_key = o.mld_statusopdr_key) opdracht_status, o.mld_opdr_einddatum, TO_CHAR (o.mld_opdr_einddatum, 'DD-MM-YYYY') einddatum, TO_CHAR (o.mld_opdr_einddatum, 'hh24:mi') eindtijd, (SELECT naam FROM mld_v_uitvoerende u WHERE u.mld_uitvoerende_key = o.mld_uitvoerende_keys) opdracht_uitvoerende, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = m.mld_melding_behandelaar_key) behandelaar, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = m.prs_perslid_key) melder, (SELECT k.prs_kostenplaats_omschrijving FROM prs_kostenplaats k WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key) kostenplaats_oms, TO_CHAR (o.mld_opdr_kosten, 'fm999999999999999990.00'), TO_CHAR (o.mld_opdr_uren, 'fm999999999999999990.00'), TO_CHAR (o.mld_opdr_kosten - o.mld_opdr_materiaal - (o.mld_opdr_uren * o.mld_opdr_uurloon), 'fm999999999999999990.00') opdracht_correctie, TO_CHAR (o.mld_opdr_materiaal, 'fm999999999999999990.00'), TO_CHAR (o.mld_opdr_uurloon, 'fm999999999999999990.00') FROM mld_melding m, mld_opdr o, mld_stdmelding s, mld_discipline md, ins_srtdiscipline sd, alg_v_allonrgoed_gegevens og, alg_locatie l, alg_district d, mld_typeopdr top, (SELECT mld_opdr_key, mld_kenmerkopdr_waarde, fac_usrdata_omschr FROM mld_kenmerkopdr, fac_usrdata WHERE mld_kenmerk_key = '201' AND fac_usrdata_key = fac.safe_to_number (mld_kenmerkopdr_waarde) AND mld_kenmerkopdr_verwijder IS NULL) mko, mld_statuses mso WHERE m.mld_melding_key = o.mld_melding_key(+) AND s.mld_stdmelding_key = m.mld_stdmelding_key AND md.ins_discipline_key = s.mld_ins_discipline_key AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key AND l.alg_district_key = d.alg_district_key(+) AND m.mld_alg_locatie_key = l.alg_locatie_key(+) AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) AND o.mld_typeopdr_key = top.mld_typeopdr_key(+) AND o.mld_opdr_key = mko.mld_opdr_key(+) AND mso.mld_statuses_key = m.mld_melding_status AND o.mld_opdr_bedrijfopdr_volgnr IS NOT NULL; -- Onderstaande views zijn voor export tbv PowerBI -- Export voor PowerBI cateringoverzicht: CREATE OR REPLACE VIEW blcc_v_export_pwrbi_cat ( result, result_order ) AS SELECT '"debiteur"' || ';"organisatie"' || ';"locatie"' || ';"ruimte"' || ';"datum"' || ';"tijd_van"' || ';"tijd_tot"' || ';"resnr"' || ';"omschrijving"' || ';"artikelkey"' || ';"artikelnr"' || ';"artikelomschrijving"' || ';"aantal"' || ';"stuksprijs"' || ';"kosten"' || ';"besteller"' || ';"costcenter"' || ';"activiteit"', 0 FROM DUAL UNION ALL SELECT '"' || fclt_f_debiteur || '";"' || fclt_f_organisatie || '";"' || locatie || '";"' || ruimte || '";"' || datum || '";"' || tijd_van || '";"' || tijd_tot || '";"' || resnr || '";"' || omschrijving || '";"' || artikelkey || '";"' || artikelnr || '";"' || artikelomschrijving || '";"' || aantal || '";"' || stuksprijs || '";"' || kosten || '";"' || fclt_f_besteller || '";"' || costcenter || '";"' || activiteit || '"', 1 FROM blcc_v_rap_cateringoverzicht; -- Export voor PowerBI meldingen: CREATE OR REPLACE VIEW blcc_v_export_pwrbi_mld ( result, result_order ) AS SELECT '"prioriteittxt"' || ';"meldingnummer"' || ';"productgroep"' || ';"subproductgroep"' || ';"melding_datum"' || ';"melding_tijd"' || ';"melding_locatiecode"' || ';"melding_gebouwcode"' || ';"melding_verdieping"' || ';"melding_ruimtenr"' || ';"onderwerp"' || ';"omschrijving"' || ';"melder"' || ';"melding_status"' || ';"melding_opmerking"' || ';"behandelaar"' || ';"melding_einddatum"' || ';"afspraak_sla_uren"' || ';"melder_key"', 0 FROM DUAL UNION ALL SELECT '"' || prioriteittxt || '";"' || meldingnummer || '";"' || productgroep || '";"' || subproductgroep || '";"' || melding_datum || '";"' || melding_tijd || '";"' || melding_locatiecode || '";"' || melding_gebouwcode || '";"' || melding_verdieping || '";"' || melding_ruimtenr || '";"' || onderwerp || '";"' || omschrijving || '";"' || melder || '";"' || melding_status || '";"' || melding_opmerking || '";"' || behandelaar || '";"' || melding_einddatum || '";"' || afspraak_sla_uren || '";"' || melder_key || '"', 1 FROM blcc_v_rap_meldingen; -- Export voor PowerBI opdrachten: CREATE OR REPLACE VIEW blcc_v_export_pwrbi_opdr ( result, result_order ) AS SELECT '"prioriteittxt"' || ';"klantwens"' || ';"opdracht_nummer"' || ';"melding_key"' || ';"opdracht_type"' || ';"opdracht_district"' || ';"opdracht_locatie_code"' || ';"opdracht_gebouwcode"' || ';"soortmelding"' || ';"vakgroep"' || ';"subgroep"' || ';"omschrijving"' || ';"opdracht_datum"' || ';"opdracht_tijd"' || ';"melding_status"' || ';"opdracht_status"' || ';"opdracht_einddatum"' || ';"opdracht_eindtijd"' || ';"opdracht_uitvoerende"' || ';"behandelaar"' || ';"melder"' || ';"kostenplaats_oms"' || ';"opdracht_kosten"' || ';"opdracht_uren"' || ';"opdracht_correctie"' || ';"opdracht_materiaal"' || ';"opdracht_uurtarief"', 0 FROM DUAL UNION ALL SELECT '"' || prioriteittxt || '";"' || klantwens || '";"' || opdracht_nummer || '";"' || melding_key || '";"' || opdracht_type || '";"' || opdracht_district || '";"' || opdracht_locatie_code || '";"' || opdracht_gebouwcode || '";"' || soortmelding || '";"' || vakgroep || '";"' || subgroep || '";"' || omschrijving || '";"' || opdracht_datum || '";"' || opdracht_tijd || '";"' || melding_status || '";"' || opdracht_status || '";"' || opdracht_einddatum || '";"' || opdracht_eindtijd || '";"' || opdracht_uitvoerende || '";"' || behandelaar || '";"' || melder || '";"' || kostenplaats_oms || '";"' || opdracht_kosten || '";"' || opdracht_uren || '";"' || opdracht_correctie || '";"' || opdracht_materiaal || '";"' || opdracht_uurtarief || '"', 1 FROM blcc_v_rap_opdrachten; -- Export voor PowerBI mld tracking: CREATE OR REPLACE VIEW blcc_v_export_pwrbi_mldtrk ( result, result_order ) AS SELECT '"melding"' || ';"aanmaakdatum"' || ';"aanmaaktijdstip"' || ';"meldingstatus"' || ';"plan_einddatum"' || ';"sla_einddatum"' || ';"wijzigingsdatum"' || ';"wijzigingstijdstip"' || ';"wijzigingdoor"' || ';"wijzigingcode"', 0 FROM DUAL UNION ALL SELECT '"' || melding || '";"' || aanmaakdatum || '";"' || aanmaaktijdstip || '";"' || meldingstatus || '";"' || plan_einddatum || '";"' || sla_einddatum || '";"' || wijzigingsdatum || '";"' || wijzigingstijdstip || '";"' || wijzigingdoor || '";"' || wijzigingcode || '"', 1 FROM blcc_v_rap_mldtrk; -- Export voor PowerBI ord tracking: CREATE OR REPLACE VIEW blcc_v_export_pwrbi_ordtrk ( result, result_order ) AS SELECT '"opdracht"' || ';"aanmaakdatum"' || ';"aanmaaktijdstip"' || ';"opdrachtstatus"' || ';"plan_einddatum"' || ';"wijzigingsdatum"' || ';"wijzigingstijdstip"' || ';"wijzigingdoor"' || ';"wijzigingcode"', 0 FROM DUAL UNION ALL SELECT '"' || opdracht || '";"' || aanmaakdatum || '";"' || aanmaaktijdstip || '";"' || opdrachtstatus || '";"' || plan_einddatum || '";"' || wijzigingsdatum || '";"' || wijzigingstijdstip || '";"' || wijzigingdoor || '";"' || wijzigingcode || '"', 1 FROM blcc_v_rap_ordtrk; -- Export voor PowerBI kostenoverzicht CREATE OR REPLACE VIEW blcc_v_export_pwrbi_kosten ( result, result_order ) AS SELECT '"kostenplaatsnr"' || ';"kostenplaatsgroep"' || ';"datum"' || ';"aanvrager"' || ';"organisatie"' || ';"categorie"' || ';"referentie"' || ';"kostensoortnr"' || ';"kostensoort"' || ';"bedrag"', 0 FROM DUAL UNION ALL SELECT '"' || KOSTENPLAATSNR || '";"' || KOSTENPLAATSGROEP || '";"' || TO_CHAR (DATUM, 'DD-MM-YYYY') || '";"' || AANVRAGER || '";"' || ORGANISATIE || '";"' || CATEGORIE || '";"' || REFERENTIE || '";"' || KOSTENSOORTNR || '";"' || KOSTENSOORT || '";"' || TO_CHAR (BEDRAG, 'fm999999999999999990.00') || '"', 1 FROM fin_v_udr_kostenoverzicht; -- BLCC#37691: Facturatie M2 em de rest! /* Formatted on 21-4-2017 16:28:58 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW blcc_v_fact_actual AS WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201708') maand FROM fin_verkoopfactuur WHERE fin_verkoopfactuur_key > 1) SELECT '*CONCEPT*' fin_verkoopfactuur_id, TRIM (SUBSTR (x.cnt_contract_nummer, 1, INSTR (x.cnt_contract_nummer || '/', '/') - 1)) po_nr, TRIM (x.cnt_contract_nummer) cnt_contract_nummer, -- PO TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 3 posities! 'Campus Rent' regel, -- M2 TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum, x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv, x.cnt_contract_korting, -- Korting % x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr, btwnr.prs_kenmerklink_waarde btw_nr, (SELECT MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) FROM prs_contactpersoon WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen AND prs_bedrijf_key = x.prs_bedrijf_key) contactpersoon, x.adres, x.postcode, x.plaats, x.land, x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms, --x.prs_kostensoort_oms, x.prs_kostensoort_opmerking, x.prs_kostensoort_refcode, x.prs_kostensoortgrp_oms, DECODE (x.btw, 0, '0', 'H') fin_btwtabelwaarde_code, -- H=Hoog=21 DECODE (x.btw, 0, 'Nul', 'Hoog') fin_btwtabelwaarde_oms, DECODE (x.btw, 0, 0, 21) fin_btwtabelwaarde_perc, TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd, x.maand, TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin, TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde, TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin, TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde, LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet ltar.fac_usrdata_prijs l_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)! htar.fac_usrdata_prijs h_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)! ktar.fac_usrdata_prijs k_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)! otar.fac_usrdata_prijs o_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)! ttar.fac_usrdata_prijs t_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)! pa.alg_onroerendgoed_type, pa.alg_onroerendgoed_keys, pa.alg_plaatsaanduiding, COALESCE (fac.safe_to_number (COALESCE (glo.alg_onrgoedkenmerk_waarde, vlo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '481', rxo.alg_ruimte_opp_alt1, TO_NUMBER (NULL))) l_opp, COALESCE (fac.safe_to_number (COALESCE (gho.alg_onrgoedkenmerk_waarde, vho.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '482', rxo.alg_ruimte_opp_alt1, TO_NUMBER (NULL))) h_opp, COALESCE (fac.safe_to_number (COALESCE (gko.alg_onrgoedkenmerk_waarde, vko.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '483', rxo.alg_ruimte_opp_alt1, TO_NUMBER (NULL))) k_opp, COALESCE (fac.safe_to_number (COALESCE (goo.alg_onrgoedkenmerk_waarde, voo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '484', rxo.alg_ruimte_opp_alt1, TO_NUMBER (NULL))) o_opp, COALESCE (fac.safe_to_number (COALESCE (gto.alg_onrgoedkenmerk_waarde, vto.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '561', rxo.alg_ruimte_opp_alt1, TO_NUMBER (NULL))) t_opp, ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) * ((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * ((COALESCE (fac.safe_to_number (COALESCE (glo.alg_onrgoedkenmerk_waarde, vlo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '481', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ltar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number (COALESCE (gho.alg_onrgoedkenmerk_waarde, vho.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '482', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (htar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number (COALESCE (gko.alg_onrgoedkenmerk_waarde, vko.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '483', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ktar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number (COALESCE (goo.alg_onrgoedkenmerk_waarde, voo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '484', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (otar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number (COALESCE (gto.alg_onrgoedkenmerk_waarde, vto.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '561', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ttar.fac_usrdata_prijs / 12, 0))), 2) mndnet, -- Netto maandbedrag (incl. kortingspercentage) ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) * ((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * ((x.btw * COALESCE (fac.safe_to_number (COALESCE (glo.alg_onrgoedkenmerk_waarde, vlo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '481', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ltar.fac_usrdata_prijs / 12, 0)) + (x.btw * COALESCE (fac.safe_to_number (COALESCE (gho.alg_onrgoedkenmerk_waarde, vho.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '482', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (htar.fac_usrdata_prijs / 12, 0)) + (x.btw * COALESCE (fac.safe_to_number (COALESCE (gko.alg_onrgoedkenmerk_waarde, vko.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '483', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ktar.fac_usrdata_prijs / 12, 0)) + (x.btw * COALESCE (fac.safe_to_number (COALESCE (goo.alg_onrgoedkenmerk_waarde, voo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '484', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (otar.fac_usrdata_prijs / 12, 0)) + (x.btw * COALESCE (fac.safe_to_number (COALESCE (gto.alg_onrgoedkenmerk_waarde, vto.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '561', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ttar.fac_usrdata_prijs / 12, 0))), 2) mndbtw, -- BTW maandbedrag '8100' grtboekrek, -- Hard op Campus Rent=8100 TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key FROM (SELECT c.ins_discipline_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer, c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt, c.cnt_contract_korting, b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr, DECODE (b.prs_bedrijf_key, 11205, 0, -- UM=Universiteit Maastricht [1025] 11297, 0, -- Chemelot Ventures BV [1091] 11306, 0, -- AMIBM(/UM) [1100] 0.21) btw, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land, kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms, lp.maand FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b, prs_kostenplaats kp, prs_kostenplaatsgrp kpg WHERE c.ins_discipline_key = 621 -- Huurcontracten AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand AND c.cnt_contract_status = 0 -- NIET Gesloten AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x LEFT JOIN prs_kenmerklink btwnr ON x.prs_bedrijf_key = btwnr.prs_link_key AND btwnr.prs_kenmerklink_verwijder IS NULL AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL) LEFT JOIN cnt_kenmerkcontract vsov_kc ON x.cnt_contract_key = vsov_kc.cnt_contract_key AND vsov_kc.cnt_kenmerkcontract_verwijder IS NULL AND vsov_kc.cnt_kenmerk_key = 21 -- VSOV LEFT JOIN cnt_kenmerkcontract tt_kc ON x.cnt_contract_key = tt_kc.cnt_contract_key AND tt_kc.cnt_kenmerkcontract_verwijder IS NULL AND tt_kc.cnt_kenmerk_key = 23 -- Tarieftabel LEFT JOIN fac_v_aanwezigusrdata tt_ud ON tt_kc.cnt_kenmerkcontract_waarde = TO_CHAR (tt_ud.fac_usrdata_key) LEFT JOIN fac_v_aanwezigusrdata ltar ON tt_ud.fac_usrdata_code = TO_CHAR (ltar.fac_usrtab_key) AND ltar.fac_usrdata_code = 'L' -- L-Tarief LEFT JOIN fac_v_aanwezigusrdata htar ON tt_ud.fac_usrdata_code = TO_CHAR (htar.fac_usrtab_key) AND htar.fac_usrdata_code = 'H' -- H-Tarief LEFT JOIN fac_v_aanwezigusrdata ktar ON tt_ud.fac_usrdata_code = TO_CHAR (ktar.fac_usrtab_key) AND ktar.fac_usrdata_code = 'K' -- K-Tarief LEFT JOIN fac_v_aanwezigusrdata otar ON tt_ud.fac_usrdata_code = TO_CHAR (otar.fac_usrtab_key) AND otar.fac_usrdata_code = 'O' -- O-Tarief LEFT JOIN fac_v_aanwezigusrdata ttar ON tt_ud.fac_usrdata_code = TO_CHAR (ttar.fac_usrtab_key) AND ttar.fac_usrdata_code = 'T' -- T-Tarief LEFT JOIN cnt_v_aanwezigcontract_plaats ccp ON x.cnt_contract_key = ccp.cnt_contract_key AND ccp.cnt_alg_plaats_code IN ('G', 'V', 'R') LEFT JOIN alg_v_plaatsaanduiding_all pa ON ccp.cnt_alg_plaats_key = pa.alg_onroerendgoed_keys LEFT JOIN alg_v_aanwezigonrgoedkenmerk glo ON ccp.cnt_alg_plaats_key = glo.alg_onrgoed_key AND glo.alg_kenmerk_key = 1082 -- GL-Oppervlakte AND glo.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gho ON ccp.cnt_alg_plaats_key = gho.alg_onrgoed_key AND gho.alg_kenmerk_key = 1083 -- GH-Oppervlakte AND gho.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gko ON ccp.cnt_alg_plaats_key = gko.alg_onrgoed_key AND gko.alg_kenmerk_key = 1084 -- GK-Oppervlakte AND gko.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk goo ON ccp.cnt_alg_plaats_key = goo.alg_onrgoed_key AND goo.alg_kenmerk_key = 1085 -- GO-Oppervlakte AND goo.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gto ON ccp.cnt_alg_plaats_key = gto.alg_onrgoed_key AND gto.alg_kenmerk_key = 1120 -- GT-Oppervlakte AND gto.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vlo ON ccp.cnt_alg_plaats_key = vlo.alg_onrgoed_key AND vlo.alg_kenmerk_key = 1092 -- VL-Oppervlakte AND vlo.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vho ON ccp.cnt_alg_plaats_key = vho.alg_onrgoed_key AND vho.alg_kenmerk_key = 1093 -- VH-Oppervlakte AND vho.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vko ON ccp.cnt_alg_plaats_key = vko.alg_onrgoed_key AND vko.alg_kenmerk_key = 1094 -- VK-Oppervlakte AND vko.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk voo ON ccp.cnt_alg_plaats_key = voo.alg_onrgoed_key AND voo.alg_kenmerk_key = 1095 -- VO-Oppervlakte AND voo.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vto ON ccp.cnt_alg_plaats_key = vto.alg_onrgoed_key AND vto.alg_kenmerk_key = 1121 -- VT-Oppervlakte AND vto.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk rlhkot ON ccp.cnt_alg_plaats_key = rlhkot.alg_onrgoed_key AND rlhkot.alg_kenmerk_key = 1100 -- LHKOT Classificatie AND rlhkot.alg_onrgoed_niveau = 'R' LEFT JOIN alg_v_aanwezigruimte rxo ON ccp.cnt_alg_plaats_key = rxo.alg_ruimte_key WHERE vsov_kc.cnt_kenmerkcontract_waarde = '454' -- ALLEEN Verhuurd factureren! UNION ALL -- FES SELECT '*CONCEPT*' fin_verkoopfactuur_id, TRIM (SUBSTR (x.cnt_contract_nummer, 1, INSTR (x.cnt_contract_nummer || '/', '/') - 1)) po_nr, TRIM (x.cnt_contract_nummer) cnt_contract_nummer, -- PO TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 3 posities! DECODE (x.ins_discipline_key, 621, 'Campus Rent', 'Werkplek') regel, -- Hardcoded 'Werkplek'! TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum, x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv, TO_NUMBER (NULL) cnt_contract_korting, -- Korting % x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr, btwnr.prs_kenmerklink_waarde btw_nr, (SELECT MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) FROM prs_contactpersoon WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen AND prs_bedrijf_key = x.prs_bedrijf_key) contactpersoon, x.adres, x.postcode, x.plaats, x.land, x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms, --x.prs_kostensoort_oms, x.prs_kostensoort_opmerking, x.prs_kostensoort_refcode, x.prs_kostensoortgrp_oms, DECODE (x.btw, 0, '0', 'H') fin_btwtabelwaarde_code, -- H=Hoog=21 DECODE (x.btw, 0, 'Nul', 'Hoog') fin_btwtabelwaarde_oms, DECODE (x.btw, 0, 0, 21) fin_btwtabelwaarde_perc, TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd, x.maand, TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin, TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde, TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin, TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde, LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet COALESCE (lfes.fac_usrdata_prijs, 0) / 12 l_tarief, TO_NUMBER (NULL) h_tarief, COALESCE (kfes.fac_usrdata_prijs, 0) / 12 k_tarief, TO_NUMBER (NULL) o_tarief, TO_NUMBER (NULL) t_tarief, pa.alg_onroerendgoed_type, pa.alg_onroerendgoed_keys, pa.alg_plaatsaanduiding, DECODE (x.ins_discipline_key, 621, COALESCE (fac.safe_to_number (COALESCE (glo.alg_onrgoedkenmerk_waarde, vlo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '481', rxo.alg_ruimte_opp_alt1, TO_NUMBER (NULL))), 1) l_opp, TO_NUMBER (NULL) h_opp, DECODE (x.ins_discipline_key, 621, COALESCE (fac.safe_to_number (COALESCE (gko.alg_onrgoedkenmerk_waarde, vko.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '483', rxo.alg_ruimte_opp_alt1, TO_NUMBER (NULL))), 1) k_opp, TO_NUMBER (NULL) o_opp, TO_NUMBER (NULL) t_opp, -1 * ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) * ((DECODE (x.ins_discipline_key, 621, COALESCE (fac.safe_to_number (COALESCE (glo.alg_onrgoedkenmerk_waarde, vlo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '481', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)), 1) * (COALESCE (lfes.fac_usrdata_prijs, 0) / 12)) + (DECODE (x.ins_discipline_key, 621, COALESCE (fac.safe_to_number (COALESCE (gko.alg_onrgoedkenmerk_waarde, vko.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '483', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)), 1) * (COALESCE (kfes.fac_usrdata_prijs, 0) / 12))), 2) mndnet, -- Netto maandbedrag (excl. kortingspercentage) -1 * ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) * ((x.btw * DECODE (x.ins_discipline_key, 621, COALESCE (fac.safe_to_number (COALESCE (glo.alg_onrgoedkenmerk_waarde, vlo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '481', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)), 1) * (COALESCE (lfes.fac_usrdata_prijs, 0) / 12)) + (x.btw * DECODE (x.ins_discipline_key, 621, COALESCE (fac.safe_to_number (COALESCE (gko.alg_onrgoedkenmerk_waarde, vko.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '483', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)), 1) * (COALESCE (kfes.fac_usrdata_prijs, 0) / 12))), 2) mndbtw, -- BTW maandbedrag '8100' grtboekrek, -- Hard op Campus Rent=8100 TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key FROM (SELECT c.ins_discipline_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer, c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt, b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr, DECODE (b.prs_bedrijf_key, 11205, 0, -- UM=Universiteit Maastricht [1025] 11297, 0, -- Chemelot Ventures BV [1091] 11306, 0, -- AMIBM(/UM) [1100] 0.21) btw, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land, kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms, lp.maand FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b, prs_kostenplaats kp, prs_kostenplaatsgrp kpg WHERE c.ins_discipline_key IN (621, 730) -- Huurcontracten/Werkplek AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand AND c.cnt_contract_status = 0 -- NIET Gesloten AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x LEFT JOIN prs_kenmerklink btwnr ON x.prs_bedrijf_key = btwnr.prs_link_key AND btwnr.prs_kenmerklink_verwijder IS NULL AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL) LEFT JOIN cnt_kenmerkcontract vsov_kc ON x.cnt_contract_key = vsov_kc.cnt_contract_key AND vsov_kc.cnt_kenmerkcontract_verwijder IS NULL AND vsov_kc.cnt_kenmerk_key = 21 -- VSOV LEFT JOIN cnt_kenmerkcontract tt_kc ON x.cnt_contract_key = tt_kc.cnt_contract_key AND tt_kc.cnt_kenmerkcontract_verwijder IS NULL AND tt_kc.cnt_kenmerk_key = 23 -- Tarieftabel LEFT JOIN fac_v_aanwezigusrdata tt_ud ON tt_kc.cnt_kenmerkcontract_waarde = TO_CHAR (tt_ud.fac_usrdata_key) LEFT JOIN fac_v_aanwezigusrdata lfes ON tt_ud.fac_usrdata_code = TO_CHAR (lfes.fac_usrtab_key) AND lfes.fac_usrdata_code = 'LFES' -- FES-Tarief op L-Oppervlakte LEFT JOIN fac_v_aanwezigusrdata kfes ON tt_ud.fac_usrdata_code = TO_CHAR (kfes.fac_usrtab_key) AND kfes.fac_usrdata_code = 'KFES' -- FES-Tarief op K-Oppervlakte LEFT JOIN cnt_kenmerkcontract fes ON x.cnt_contract_key = fes.cnt_contract_key AND fes.cnt_kenmerkcontract_verwijder IS NULL AND fes.cnt_kenmerk_key = 42 -- FES-vinkje LEFT JOIN cnt_v_aanwezigcontract_plaats ccp ON x.cnt_contract_key = ccp.cnt_contract_key AND ccp.cnt_alg_plaats_code IN ('G', 'V', 'R') LEFT JOIN alg_v_plaatsaanduiding_all pa ON ccp.cnt_alg_plaats_key = pa.alg_onroerendgoed_keys LEFT JOIN alg_v_aanwezigonrgoedkenmerk glo ON ccp.cnt_alg_plaats_key = glo.alg_onrgoed_key AND glo.alg_kenmerk_key = 1082 -- GL-Oppervlakte AND glo.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gko ON ccp.cnt_alg_plaats_key = gko.alg_onrgoed_key AND gko.alg_kenmerk_key = 1084 -- GK-Oppervlakte AND gko.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vlo ON ccp.cnt_alg_plaats_key = vlo.alg_onrgoed_key AND vlo.alg_kenmerk_key = 1092 -- VL-Oppervlakte AND vlo.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vko ON ccp.cnt_alg_plaats_key = vko.alg_onrgoed_key AND vko.alg_kenmerk_key = 1094 -- VK-Oppervlakte AND vko.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk rlhkot ON ccp.cnt_alg_plaats_key = rlhkot.alg_onrgoed_key AND rlhkot.alg_kenmerk_key = 1100 -- LHKOT Classificatie AND rlhkot.alg_onrgoed_niveau = 'R' LEFT JOIN alg_v_aanwezigruimte rxo ON ccp.cnt_alg_plaats_key = rxo.alg_ruimte_key WHERE vsov_kc.cnt_kenmerkcontract_waarde = '454' -- ALLEEN Verhuurd factureren! AND fes.cnt_kenmerkcontract_waarde IS NOT NULL UNION ALL -- CFF Rent SELECT '*CONCEPT*' fin_verkoopfactuur_id, TRIM (SUBSTR (x.cnt_contract_nummer, 1, INSTR (x.cnt_contract_nummer || '/', '/') - 1)) po_nr, TRIM (x.cnt_contract_nummer) cnt_contract_nummer, -- PO TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 3 posities! 'CFF Rent' regel, TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum, x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv, x.fac_usrdata_prijs, -- CFF-subsidiepercentatie % b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, x.prs_kenmerklink_waarde btw_nr, (SELECT MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) FROM prs_contactpersoon WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen AND prs_bedrijf_key = b.prs_bedrijf_key) contactpersoon, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land, kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms, '0' fin_btwtabelwaarde_code, 'Nul' fin_btwtabelwaarde_oms, 0 fin_btwtabelwaarde_perc, TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd, x.maand, TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin, TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde, TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin, TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde, LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet TO_NUMBER (NULL) l_tarief, TO_NUMBER (NULL) h_tarief, TO_NUMBER (NULL) k_tarief, TO_NUMBER (NULL) o_tarief, TO_NUMBER (NULL) t_tarief, NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding, TO_NUMBER (NULL) l_opp, TO_NUMBER (NULL) h_opp, TO_NUMBER (NULL) k_opp, TO_NUMBER (NULL) o_opp, TO_NUMBER (NULL) t_opp, -1 * ROUND (x.fac_usrdata_prijs * (x.mndnet - (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) * fac.safe_to_number (x.cnt_kenmerkcontract_waarde))), 2) mndnet, -- Netto maandbedrag (incl. kortingspercentage) ---1 * --ROUND (x.fac_usrdata_prijs * x.btw * -- (x.mndnet - -- (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) * -- fac.safe_to_number (x.cnt_kenmerkcontract_waarde))), 2) -- mndbtw -- BTW maandbedrag 0 mndbtw, -- BTW maandbedrag; TODO: Dit is fout, maar ging in oude werkwijze altijd al zo, dus fout voorlopig niet verbeteren! '8310' grtboekrek, -- Hard op CFF Rent=8310 TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key FROM ( SELECT x.ins_discipline_key, -- Sorteren op (eigen) discipline_key; 3 posities! x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.cnt_contract_nummer, -- PO x.lv, x.lt, x.prs_bedrijf_key, x.btw, x.prs_kostenplaats_key, x.maand, btwnr.prs_kenmerklink_waarde, kb_kc.cnt_kenmerkcontract_waarde, -- Netto kortingsbedrag (excl. kortingspercentage)! ccf_ud.fac_usrdata_prijs, -- CFF-subsidiepercentatie % SUM (ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) * ((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * ((COALESCE (fac.safe_to_number(COALESCE (glo.alg_onrgoedkenmerk_waarde, vlo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '481', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ltar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number(COALESCE (gho.alg_onrgoedkenmerk_waarde, vho.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '482', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (htar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number(COALESCE (gko.alg_onrgoedkenmerk_waarde, vko.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '483', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ktar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number(COALESCE (goo.alg_onrgoedkenmerk_waarde, voo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '484', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (otar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number(COALESCE (gto.alg_onrgoedkenmerk_waarde, vto.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '561', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ttar.fac_usrdata_prijs / 12, 0))), 2)) mndnet -- Netto maandbedrag (incl. kortingspercentage) FROM (SELECT c.ins_discipline_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer, c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt, c.cnt_prs_bedrijf_key prs_bedrijf_key, DECODE (c.cnt_prs_bedrijf_key, 11205, 0, -- UM=Universiteit Maastricht [1025] 11297, 0, -- Chemelot Ventures BV [1091] 11306, 0, -- AMIBM(/UM) [1100] 0.21) btw, c.prs_kostenplaats_key, c.cnt_contract_korting, lp.maand FROM lopendeperiode lp, cnt_v_aanwezigcontract c WHERE c.ins_discipline_key = 621 -- Huurcontracten AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand AND c.cnt_contract_status = 0) x -- NIET Gesloten LEFT JOIN prs_kenmerklink btwnr ON x.prs_bedrijf_key = btwnr.prs_link_key AND btwnr.prs_kenmerklink_verwijder IS NULL AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL) LEFT JOIN cnt_kenmerkcontract vsov_kc ON x.cnt_contract_key = vsov_kc.cnt_contract_key AND vsov_kc.cnt_kenmerkcontract_verwijder IS NULL AND vsov_kc.cnt_kenmerk_key = 21 -- VSOV LEFT JOIN cnt_kenmerkcontract tt_kc ON x.cnt_contract_key = tt_kc.cnt_contract_key AND tt_kc.cnt_kenmerkcontract_verwijder IS NULL AND tt_kc.cnt_kenmerk_key = 23 -- Tarieftabel LEFT JOIN fac_v_aanwezigusrdata tt_ud ON tt_kc.cnt_kenmerkcontract_waarde = TO_CHAR (tt_ud.fac_usrdata_key) LEFT JOIN fac_v_aanwezigusrdata ltar ON tt_ud.fac_usrdata_code = TO_CHAR (ltar.fac_usrtab_key) AND ltar.fac_usrdata_code = 'L' -- L-Tarief LEFT JOIN fac_v_aanwezigusrdata htar ON tt_ud.fac_usrdata_code = TO_CHAR (htar.fac_usrtab_key) AND htar.fac_usrdata_code = 'H' -- H-Tarief LEFT JOIN fac_v_aanwezigusrdata ktar ON tt_ud.fac_usrdata_code = TO_CHAR (ktar.fac_usrtab_key) AND ktar.fac_usrdata_code = 'K' -- K-Tarief LEFT JOIN fac_v_aanwezigusrdata otar ON tt_ud.fac_usrdata_code = TO_CHAR (otar.fac_usrtab_key) AND otar.fac_usrdata_code = 'O' -- O-Tarief LEFT JOIN fac_v_aanwezigusrdata ttar ON tt_ud.fac_usrdata_code = TO_CHAR (ttar.fac_usrtab_key) AND ttar.fac_usrdata_code = 'T' -- T-Tarief LEFT JOIN cnt_kenmerkcontract kb_kc ON x.cnt_contract_key = kb_kc.cnt_contract_key AND kb_kc.cnt_kenmerkcontract_verwijder IS NULL AND kb_kc.cnt_kenmerk_key = 24 -- Kortingsbedrag LEFT JOIN cnt_kenmerkcontract cff_kc ON x.cnt_contract_key = cff_kc.cnt_contract_key AND cff_kc.cnt_kenmerkcontract_verwijder IS NULL AND cff_kc.cnt_kenmerk_key = 44 -- CFF-subsidie LEFT JOIN fac_v_aanwezigusrdata ccf_ud ON cff_kc.cnt_kenmerkcontract_waarde = TO_CHAR (ccf_ud.fac_usrdata_key) LEFT JOIN cnt_v_aanwezigcontract_plaats ccp ON x.cnt_contract_key = ccp.cnt_contract_key AND ccp.cnt_alg_plaats_code IN ('G', 'V', 'R') LEFT JOIN alg_v_plaatsaanduiding_all pa ON ccp.cnt_alg_plaats_key = pa.alg_onroerendgoed_keys LEFT JOIN alg_v_aanwezigonrgoedkenmerk glo ON ccp.cnt_alg_plaats_key = glo.alg_onrgoed_key AND glo.alg_kenmerk_key = 1082 -- GL-Oppervlakte AND glo.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gho ON ccp.cnt_alg_plaats_key = gho.alg_onrgoed_key AND gho.alg_kenmerk_key = 1083 -- GH-Oppervlakte AND gho.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gko ON ccp.cnt_alg_plaats_key = gko.alg_onrgoed_key AND gko.alg_kenmerk_key = 1084 -- GK-Oppervlakte AND gko.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk goo ON ccp.cnt_alg_plaats_key = goo.alg_onrgoed_key AND goo.alg_kenmerk_key = 1085 -- GO-Oppervlakte AND goo.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gto ON ccp.cnt_alg_plaats_key = gto.alg_onrgoed_key AND gto.alg_kenmerk_key = 1120 -- GT-Oppervlakte AND gto.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vlo ON ccp.cnt_alg_plaats_key = vlo.alg_onrgoed_key AND vlo.alg_kenmerk_key = 1092 -- VL-Oppervlakte AND vlo.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vho ON ccp.cnt_alg_plaats_key = vho.alg_onrgoed_key AND vho.alg_kenmerk_key = 1093 -- VH-Oppervlakte AND vho.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vko ON ccp.cnt_alg_plaats_key = vko.alg_onrgoed_key AND vko.alg_kenmerk_key = 1094 -- VK-Oppervlakte AND vko.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk voo ON ccp.cnt_alg_plaats_key = voo.alg_onrgoed_key AND voo.alg_kenmerk_key = 1095 -- VO-Oppervlakte AND voo.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vto ON ccp.cnt_alg_plaats_key = vto.alg_onrgoed_key AND vto.alg_kenmerk_key = 1121 -- VT-Oppervlakte AND vto.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk rlhkot ON ccp.cnt_alg_plaats_key = rlhkot.alg_onrgoed_key AND rlhkot.alg_kenmerk_key = 1100 -- LHKOT Classificatie AND rlhkot.alg_onrgoed_niveau = 'R' LEFT JOIN alg_v_aanwezigruimte rxo ON ccp.cnt_alg_plaats_key = rxo.alg_ruimte_key WHERE vsov_kc.cnt_kenmerkcontract_waarde = '454' -- ALLEEN Verhuurd factureren! AND COALESCE (cff_kc.cnt_kenmerkcontract_waarde, '534') != '534' -- NIET Nvt! GROUP BY x.ins_discipline_key, x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.cnt_contract_nummer, x.lv, x.lt, x.prs_bedrijf_key, x.btw, x.prs_kostenplaats_key, x.maand, btwnr.prs_kenmerklink_waarde, kb_kc.cnt_kenmerkcontract_waarde, ccf_ud.fac_usrdata_prijs) x, prs_bedrijf b, prs_kostenplaats kp, prs_kostenplaatsgrp kpg WHERE x.prs_bedrijf_key = b.prs_bedrijf_key AND x.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+) UNION ALL -- Alle individuele maandbedragen! SELECT '*CONCEPT*' fin_verkoopfactuur_id, TRIM (SUBSTR (c.cnt_contract_nummer, 1, INSTR (c.cnt_contract_nummer || '/', '/') - 1)) po_nr, TRIM (c.cnt_contract_nummer) cnt_contract_nummer, -- PO DECODE (x.regelgroepering, '541', '621', TO_CHAR (c.ins_discipline_key)) sortering, -- Sorteren op Campus Rent of eigen discipline_key; 3 posities! x.regel, TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv, c.cnt_contract_korting, -- Korting % b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, btwnr.prs_kenmerklink_waarde btw_nr, (SELECT MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) FROM prs_contactpersoon WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen AND prs_bedrijf_key = b.prs_bedrijf_key) contactpersoon, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land, kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms, --ks.prs_kostensoort_oms, ks.prs_kostensoort_opmerking, ks.prs_kostensoort_refcode, ksg.prs_kostensoortgrp_oms, DECODE (c.ins_discipline_key, 761, '0', 'H') fin_btwtabelwaarde_code, -- OZB altijd 0% DECODE (c.ins_discipline_key, 761, 'Nul', 'Hoog') fin_btwtabelwaarde_oms, -- OZB altijd 0% DECODE (c.ins_discipline_key, 761, 0, 21) fin_btwtabelwaarde_perc, -- OZB altijd 0% TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd, x.maand, TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin, TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde, TO_CHAR (GREATEST (TRUNC (c.cnt_contract_looptijd_van), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin, TO_CHAR (LEAST (TRUNC (c.cnt_contract_looptijd_tot), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde, LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar LEAST (TRUNC (c.cnt_contract_looptijd_tot), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (c.cnt_contract_looptijd_van), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet TO_NUMBER (NULL) l_tarief, TO_NUMBER (NULL) h_tarief, TO_NUMBER (NULL) k_tarief, TO_NUMBER (NULL) o_tarief, TO_NUMBER (NULL) t_tarief, NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding, TO_NUMBER (NULL) l_opp, TO_NUMBER (NULL) h_opp, TO_NUMBER (NULL) k_opp, TO_NUMBER (NULL) o_opp, TO_NUMBER (NULL) t_opp, ROUND (((LEAST (TRUNC (c.cnt_contract_looptijd_tot), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (c.cnt_contract_looptijd_van), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) * ((100 - COALESCE (c.cnt_contract_korting, 0)) / 100) * x.maandkosten, 2) mndnet, -- Netto maandbedrag (incl. kortingspercentage) ROUND (((LEAST (TRUNC (c.cnt_contract_looptijd_tot), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (c.cnt_contract_looptijd_van), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) * ((100 - COALESCE (c.cnt_contract_korting, 0)) / 100) * DECODE (c.ins_discipline_key, 761, 0, 0.21) * x.maandkosten, 2) mndbtw, -- BTW maandbedrag COALESCE ( ks.prs_kostensoort_refcode, DECODE ( UPPER (x.regel), 'BIJDRAGE CHEF VAN DIENST', '8104', 'BIJDRAGE HYGIËNISCH ONDERHOUD', '8105', 'BIJDRAGE AFVAL', '8106', 'BIJDRAGE GASSEN', '8107', '8100')) grtboekrek, TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key FROM ( SELECT c.cnt_contract_key, lp.maand, rg.cnt_kenmerkcontract_waarde regelgroepering, DECODE (rg.cnt_kenmerkcontract_waarde, '542', TRIM (dp.cnt_disc_params_opmerking), '543', TRIM (mk.cnt_srtkenmerk_omschrijving), 'Campus Rent') regel, SUM (fac.safe_to_number (mk.cnt_kenmerkcontract_waarde)) maandkosten FROM lopendeperiode lp, cnt_v_aanwezigcontract c, cnt_discipline cd, cnt_disc_params dp, (SELECT kcrg.cnt_contract_key, kcrg.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract kcrg, cnt_kenmerk krg WHERE kcrg.cnt_kenmerkcontract_verwijder IS NULL AND kcrg.cnt_kenmerk_key = krg.cnt_kenmerk_key AND krg.cnt_srtkenmerk_key = 121) rg, -- Regelgroepering (SELECT kcmk.cnt_contract_key, kcmk.cnt_kenmerkcontract_waarde, skmk.cnt_srtkenmerk_omschrijving FROM cnt_kenmerkcontract kcmk, cnt_kenmerk kmk, cnt_srtkenmerk skmk WHERE kcmk.cnt_kenmerkcontract_verwijder IS NULL AND kcmk.cnt_kenmerk_key = kmk.cnt_kenmerk_key AND kmk.cnt_srtkenmerk_key = skmk.cnt_srtkenmerk_key AND skmk.cnt_srtkenmerk_key > 60 AND skmk.cnt_srtkenmerk_kenmerktype = 'N' -- Numeriek AND UPPER (skmk.cnt_srtkenmerk_dimensie) LIKE '%P.MND.%') mk -- Maandkosten WHERE c.ins_discipline_key = cd.ins_discipline_key AND cd.ins_discipline_key BETWEEN 721 AND 761 AND cd.ins_discipline_key = dp.cnt_ins_discipline_key AND c.cnt_contract_status = 0 -- NIET Gesloten AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand AND c.cnt_contract_key = rg.cnt_contract_key AND c.cnt_contract_key = mk.cnt_contract_key GROUP BY c.cnt_contract_key, lp.maand, rg.cnt_kenmerkcontract_waarde, -- Regelgroepering DECODE (rg.cnt_kenmerkcontract_waarde, '542', TRIM (dp.cnt_disc_params_opmerking), '543', TRIM (mk.cnt_srtkenmerk_omschrijving), 'Campus Rent')) x, cnt_contract c, prs_bedrijf b, prs_kostenplaats kp, prs_kostenplaatsgrp kpg, cnt_discipline cd, prs_kostensoort ks, (SELECT prs_link_key, prs_kenmerklink_waarde FROM prs_kenmerklink WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr -- BTW-nummer (NL) WHERE x.maandkosten != 0 AND x.cnt_contract_key = c.cnt_contract_key AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+) AND c.ins_discipline_key = cd.ins_discipline_key AND cd.prs_kostensoort_key = ks.prs_kostensoort_key(+) AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+) UNION ALL -- Alle individuele kortingsbedragen (per maand)! SELECT '*CONCEPT*' fin_verkoopfactuur_id, TRIM (SUBSTR (c.cnt_contract_nummer, 1, INSTR (c.cnt_contract_nummer || '/', '/') - 1)) po_nr, TRIM (c.cnt_contract_nummer) cnt_contract_nummer, -- PO DECODE (x.regelgroepering, '541', '621', TO_CHAR (c.ins_discipline_key)) sortering, -- Sorteren op Campus Rent of eigen discipline_key; 3 posities! x.regel, TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv, TO_NUMBER (NULL) cnt_contract_korting, -- Korting % b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, btwnr.prs_kenmerklink_waarde btw_nr, (SELECT MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) FROM prs_contactpersoon WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen AND prs_bedrijf_key = b.prs_bedrijf_key) contactpersoon, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land, kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms, --ks.prs_kostensoort_oms, ks.prs_kostensoort_opmerking, ks.prs_kostensoort_refcode, ksg.prs_kostensoortgrp_oms, DECODE (c.ins_discipline_key, 761, '0', 'H') fin_btwtabelwaarde_code, -- OZB altijd 0% DECODE (c.ins_discipline_key, 761, 'Nul', 'Hoog') fin_btwtabelwaarde_oms, -- OZB altijd 0% DECODE (c.ins_discipline_key, 761, 0, 21) fin_btwtabelwaarde_perc, -- OZB altijd 0% TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd, x.maand, TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin, TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde, TO_CHAR (GREATEST (TRUNC (c.cnt_contract_looptijd_van), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin, TO_CHAR (LEAST (TRUNC (c.cnt_contract_looptijd_tot), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde, LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar LEAST (TRUNC (c.cnt_contract_looptijd_tot), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (c.cnt_contract_looptijd_van), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet TO_NUMBER (NULL) l_tarief, TO_NUMBER (NULL) h_tarief, TO_NUMBER (NULL) k_tarief, TO_NUMBER (NULL) o_tarief, TO_NUMBER (NULL) t_tarief, NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding, TO_NUMBER (NULL) l_opp, TO_NUMBER (NULL) h_opp, TO_NUMBER (NULL) k_opp, TO_NUMBER (NULL) o_opp, TO_NUMBER (NULL) t_opp, -1 * ROUND (((LEAST (TRUNC (c.cnt_contract_looptijd_tot), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (c.cnt_contract_looptijd_van), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) * x.kortingsbedrag, 2) mndnet, -- Netto kortingsbedrag (excl. kortingspercentage)! -1 * ROUND (((LEAST (TRUNC (c.cnt_contract_looptijd_tot), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (c.cnt_contract_looptijd_van), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) * DECODE (c.ins_discipline_key, 761, 0, 0.21) * x.kortingsbedrag, 2) mndbtw, -- BTW kortingsbedrag COALESCE ( ks.prs_kostensoort_refcode, DECODE ( UPPER (x.regel), 'BIJDRAGE CHEF VAN DIENST', '8104', 'BIJDRAGE HYGIËNISCH ONDERHOUD', '8105', 'BIJDRAGE AFVAL', '8106', 'BIJDRAGE GASSEN', '8107', '8100')) grtboekrek, TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key FROM (SELECT c.cnt_contract_key, lp.maand, rg.cnt_kenmerkcontract_waarde regelgroepering, DECODE (rg.cnt_kenmerkcontract_waarde, '542', TRIM (dp.cnt_disc_params_opmerking), '543', '???', -- TODO: Kortingsbedrag verwijderen? 'Campus Rent') regel, fac.safe_to_number (kb.cnt_kenmerkcontract_waarde) kortingsbedrag FROM lopendeperiode lp, cnt_v_aanwezigcontract c, cnt_discipline cd, cnt_disc_params dp, (SELECT kcrg.cnt_contract_key, kcrg.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract kcrg, cnt_kenmerk krg WHERE kcrg.cnt_kenmerkcontract_verwijder IS NULL AND kcrg.cnt_kenmerk_key = krg.cnt_kenmerk_key AND krg.cnt_srtkenmerk_key = 121) rg, -- Regelgroepering (SELECT kckb.cnt_contract_key, kckb.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract kckb, cnt_kenmerk kkb, cnt_srtkenmerk skkb WHERE kckb.cnt_kenmerkcontract_verwijder IS NULL AND kckb.cnt_kenmerk_key = kkb.cnt_kenmerk_key AND kkb.cnt_srtkenmerk_key = skkb.cnt_srtkenmerk_key AND skkb.cnt_srtkenmerk_key = 44) kb -- Kortingsbedrag WHERE c.ins_discipline_key = cd.ins_discipline_key AND cd.ins_discipline_key BETWEEN 621 AND 761 AND cd.ins_discipline_key = dp.cnt_ins_discipline_key AND c.cnt_contract_status = 0 -- NIET Gesloten AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand AND c.cnt_contract_key = rg.cnt_contract_key(+) -- Huurcontracten géén Regelgroepering! AND c.cnt_contract_key = kb.cnt_contract_key) x, cnt_contract c, prs_bedrijf b, prs_kostenplaats kp, prs_kostenplaatsgrp kpg, cnt_discipline cd, prs_kostensoort ks, (SELECT prs_link_key, prs_kenmerklink_waarde FROM prs_kenmerklink WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr -- BTW-nummer (NL) WHERE x.kortingsbedrag != 0 AND x.cnt_contract_key = c.cnt_contract_key AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+) AND c.ins_discipline_key = cd.ins_discipline_key AND cd.prs_kostensoort_key = ks.prs_kostensoort_key(+) AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+) UNION ALL -- Alle correctiemeldingen (ook als contract inmiddels verlopen)! SELECT '*CONCEPT*' fin_verkoopfactuur_id, TRIM (SUBSTR (c.cnt_contract_nummer, 1, INSTR (c.cnt_contract_nummer || '/', '/') - 1)) po_nr, TRIM (c.cnt_contract_nummer) cnt_contract_nummer, -- PO SUBSTR ('99' || fr.sortering, -3) sortering, -- Correctieregels onderaan (in dezelfde volgorde als de "echte" regels); 3 posities! ' Correctie ' || fr.factuurregel || ' ' || pv.periode_van || ' - ' || pt.periode_tot regel, -- Zou consistent moeten zijn met contract! TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv, c.cnt_contract_korting, -- Korting % b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, btwnr.prs_kenmerklink_waarde btw_nr, (SELECT MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) FROM prs_contactpersoon WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen AND prs_bedrijf_key = b.prs_bedrijf_key) contactpersoon, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land, kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms, --ks.prs_kostensoort_oms, ks.prs_kostensoort_opmerking, ks.prs_kostensoort_refcode, ksg.prs_kostensoortgrp_oms, DECODE (c.ins_discipline_key, 621, DECODE (b.prs_bedrijf_key, -- Huurcontracten 11205, '0', -- UM [1025] 11297, '0', -- Chemelot Ventures [1091] 11306, '0', -- AMIBM(/UM) [1100] DECODE (fr.factuurregel, 'CFF Rent', '0', 'H')), 730, DECODE (b.prs_bedrijf_key, -- Werkplek 11205, '0', -- UM [1025] 11297, '0', -- Chemelot Ventures [1091] 11306, '0', -- AMIBM(/UM) [1100] 'H'), 761, '0', -- OZB 'H') fin_btwtabelwaarde_code, DECODE (c.ins_discipline_key, 621, DECODE (b.prs_bedrijf_key, -- Huurcontracten 11205, 'Nul', -- UM [1025] 11297, 'Nul', -- Chemelot Ventures [1091] 11306, 'Nul', -- AMIBM(/UM) [1100] DECODE (fr.factuurregel, 'CFF Rent', 'Nul', 'Hoog')), 730, DECODE (b.prs_bedrijf_key, -- Werkplek 11205, 'Nul', -- UM [1025] 11297, 'Nul', -- Chemelot Ventures [1091] 11306, 'Nul', -- AMIBM(/UM) [1100] 'Hoog'), 761, 'Nul', -- OZB 'Hoog') fin_btwtabelwaarde_oms, DECODE (c.ins_discipline_key, 621, DECODE (b.prs_bedrijf_key, -- Huurcontracten 11205, 0, -- UM [1025] 11297, 0, -- Chemelot Ventures [1091] 11306, 0, -- AMIBM(/UM) [1100] DECODE (fr.factuurregel, 'CFF Rent', 0, 21)), 730, DECODE (b.prs_bedrijf_key, -- Werkplek 11205, 0, -- UM [1025] 11297, 0, -- Chemelot Ventures [1091] 11306, 0, -- AMIBM(/UM) [1100] 21), 761, 0, -- OZB 21) fin_btwtabelwaarde_perc, TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd, lp.maand, TO_CHAR (TO_DATE (lp.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin, TO_CHAR (LAST_DAY (TO_DATE (lp.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde, TO_CHAR (GREATEST (TRUNC (c.cnt_contract_looptijd_van), TO_DATE (lp.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin, TO_CHAR (LEAST (TRUNC (c.cnt_contract_looptijd_tot), LAST_DAY (TO_DATE (lp.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde, LAST_DAY (TO_DATE (lp.maand, 'yyyymm')) - TO_DATE (lp.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar LEAST (TRUNC (c.cnt_contract_looptijd_tot), LAST_DAY (TO_DATE (lp.maand, 'yyyymm'))) - GREATEST (TRUNC (c.cnt_contract_looptijd_van), TO_DATE (lp.maand, 'yyyymm')) + 1 mndbez, -- Bezet TO_NUMBER (NULL) l_tarief, TO_NUMBER (NULL) h_tarief, TO_NUMBER (NULL) k_tarief, TO_NUMBER (NULL) o_tarief, TO_NUMBER (NULL) t_tarief, NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding, TO_NUMBER (NULL) l_opp, TO_NUMBER (NULL) h_opp, TO_NUMBER (NULL) k_opp, TO_NUMBER (NULL) o_opp, TO_NUMBER (NULL) t_opp, ROUND (cb.correctiebedrag, 2) mndnet, -- Netto correctiebedrag ROUND (DECODE (c.ins_discipline_key, 621, DECODE (b.prs_bedrijf_key, -- Huurcontracten 11205, 0, -- UM [1025] 11297, 0, -- Chemelot Ventures [1091] 11306, 0, -- AMIBM(/UM) [1100] DECODE (fr.factuurregel, 'CFF Rent', 0, 0.21)), 730, DECODE (b.prs_bedrijf_key, -- Werkplek 11205, 0, -- UM [1025] 11297, 0, -- Chemelot Ventures [1091] 11306, 0, -- AMIBM(/UM) [1100] 0.21), 761, 0, -- OZB 0.21) * cb.correctiebedrag, 2) mndbtw, -- BTW correctiebedrag COALESCE ( ks.prs_kostensoort_refcode, DECODE ( UPPER (fr.factuurregel), -- Zou consistent moeten zijn met contract! 'BIJDRAGE CHEF VAN DIENST', '8104', 'BIJDRAGE HYGIËNISCH ONDERHOUD', '8105', 'BIJDRAGE AFVAL', '8106', 'BIJDRAGE GASSEN', '8107', 'CFF RENT', '8130', '8100')) grtboekrek, m.mld_melding_key -- Correctiemelding-key FROM lopendeperiode lp, mld_melding m, mld_v_aanwezigkenmerkmelding km, cnt_contract c, prs_bedrijf b, prs_kostenplaats kp, prs_kostenplaatsgrp kpg, cnt_discipline cd, prs_kostensoort ks, (SELECT prs_link_key, prs_kenmerklink_waarde FROM prs_kenmerklink WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL) (SELECT km.mld_melding_key, ud.fac_usrdata_code sortering, ud.fac_usrdata_omschr factuurregel FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud WHERE km.mld_kenmerk_key = 342 -- Factuurregel(groepering) AND km.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)) fr, (SELECT mld_melding_key, mld_kenmerkmelding_waarde periode_van FROM mld_v_aanwezigkenmerkmelding WHERE mld_kenmerk_key = 343) pv, -- Periode van (SELECT mld_melding_key, mld_kenmerkmelding_waarde periode_tot FROM mld_v_aanwezigkenmerkmelding WHERE mld_kenmerk_key = 344) pt, -- Periode tot (SELECT mld_melding_key, fac.safe_to_number (mld_kenmerkmelding_waarde) correctiebedrag FROM mld_v_aanwezigkenmerkmelding WHERE mld_kenmerk_key = 345) cb -- Correctiebedrag WHERE m.mld_stdmelding_key = 482 -- Financiële correctie AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld AND m.mld_melding_key = km.mld_melding_key AND km.mld_kenmerk_key = 341 -- Contractreferentie AND km.mld_kenmerkmelding_waarde = TO_CHAR (c.cnt_contract_key) AND c.cnt_contract_status = 0 -- NIET Gesloten --AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand --AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+) AND c.ins_discipline_key = cd.ins_discipline_key AND cd.prs_kostensoort_key = ks.prs_kostensoort_key(+) AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+) AND m.mld_melding_key = fr.mld_melding_key AND m.mld_melding_key = pv.mld_melding_key AND m.mld_melding_key = pt.mld_melding_key AND m.mld_melding_key = cb.mld_melding_key ORDER BY prs_bedrijf_key, 1, 2, 3, 4, alg_onroerendgoed_type, alg_plaatsaanduiding -- TODO: Waarom fout op tabel-prefix??? ; /* Formatted on 29-4-2017 15:48:29 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW blcc_v_fact_frozen AS SELECT vf.fin_verkoopfactuur_id, TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/') - 1)) po_nr, SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1) cnt_contract_nummer, SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 2, 3) sortering, SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 5) regel, TO_CHAR (vf.fin_verkoopfactuur_datum, 'dd-mm-yyyy') factuurdatum, TO_CHAR (vf.fin_verkoopfactuur_d1, 'dd-mm-yyyy') vervaldatum, vf.fin_verkoopfactuur_refkey cnt_contract_key, c.cnt_contract_nummer_intern, -- Niet historisch bewaard! c.cnt_contract_versie, -- Niet historisch bewaard! c.cnt_contract_looptijd_tot lv, -- Niet historisch bewaard! vf.fin_verkoopfactuur_n1 cnt_contract_korting, -- Korting % vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, SUBSTR (vf.fin_verkoopfactuur_c7, INSTR (vf.fin_verkoopfactuur_c7, '=') + 1) btw_nr, vf.fin_verkoopfactuur_c8 contactpersoon, DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres, -- Niet historisch bewaard! DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode, -- Niet historisch bewaard! DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats, -- Niet historisch bewaard! DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land, -- Niet historisch bewaard! vf.prs_kostenplaats_key, vf.prs_kostenplaats_nr, vf.prs_kostenplaats_omschrijving, vf.prs_kostenplaatsgrp_oms, --vf.prs_kostensoort_oms, vf.prs_kostensoort_opmerking, vf.prs_kostensoort_refcode, vf.prs_kostensoortgrp_oms, vf.fin_btwtabelwaarde_code, vf.fin_btwtabelwaarde_oms, vf.fin_btwtabelwaarde_perc, vf.fin_btwtabelwaarde_verlegd, vf.fin_verkoopfactuur_maand maand, TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin, TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde, LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c1, 1, INSTR (vf.fin_verkoopfactuur_c1, 'x') - 1)) l_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)! fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c2, 1, INSTR (vf.fin_verkoopfactuur_c2, 'x') - 1)) h_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)! fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c3, 1, INSTR (vf.fin_verkoopfactuur_c3, 'x') - 1)) k_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)! fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c4, 1, INSTR (vf.fin_verkoopfactuur_c4, 'x') - 1)) o_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)! fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c5, 1, INSTR (vf.fin_verkoopfactuur_c5, 'x') - 1)) t_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)! SUBSTR (vf.fin_verkoopfactuur_c6, 1, 1) alg_onroerendgoed_type, fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c6, 2, INSTR (vf.fin_verkoopfactuur_c6, '=') - 1)) alg_onroerendgoed_keys, SUBSTR (vf.fin_verkoopfactuur_c6, INSTR (vf.fin_verkoopfactuur_c6, '=') + 1) alg_plaatsaanduiding, fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c1, INSTR (vf.fin_verkoopfactuur_c1, 'x') + 1)) l_opp, fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c2, INSTR (vf.fin_verkoopfactuur_c2, 'x') + 1)) h_opp, fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c3, INSTR (vf.fin_verkoopfactuur_c3, 'x') + 1)) k_opp, fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c4, INSTR (vf.fin_verkoopfactuur_c4, 'x') + 1)) o_opp, fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c5, INSTR (vf.fin_verkoopfactuur_c5, 'x') + 1)) t_opp, vf.fin_verkoopfactuur_bedrag mndnet, -- Netto maandbedrag vf.fin_verkoopfactuur_btw mndbtw, -- BTW maandbedrag vf.prs_kostensoort_oms grtboekrek, vf.fin_verkoopfactuur_n2 mld_melding_key FROM fin_verkoopfactuur vf, cnt_contract c, cnt_discipline cd, prs_kostensoort ks, prs_bedrijf b, (SELECT prs_link_key, prs_kenmerklink_waarde FROM prs_kenmerklink WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr -- BTW-nummer (NL) WHERE vf.fin_verkoopfactuur_refkey = c.cnt_contract_key AND c.ins_discipline_key = cd.ins_discipline_key AND cd.prs_kostensoort_key = ks.prs_kostensoort_key(+) AND vf.prs_bedrijf_key = b.prs_bedrijf_key AND b.prs_bedrijf_key = btwnr.prs_link_key(+) ORDER BY vf.prs_bedrijf_key, 1, 2, 3, 4, SUBSTR (vf.fin_verkoopfactuur_c6, 1, 1), SUBSTR (vf.fin_verkoopfactuur_c6, INSTR (vf.fin_verkoopfactuur_c6, '=') + 1); CREATE OR REPLACE VIEW blcc_v_rap_export_fact ( hide_f_sortering, fclt_x_maand, code, valuta, factuurdatum, periode, factuurnummer, vervaldatum, nummer, grtboekrek, rel_kpl, prj_activa, bedrag, debitcredit, omschrijving, btwcode ) AS SELECT ROWNUM, REPLACE (periode, '/', '-') periode, code, valuta, factuurdatum, periode, factuurnummer, vervaldatum, nummer, grtboekrek, rel_kpl, prj_activa, bedrag, debitcredit, omschrijving, btwcode FROM ( SELECT v.fin_verkoopfactuur_id || '0000' sortering, 'VRK' code, -- Hard op 'VRK' 'EUR' valuta, -- Hard op 'EUR' v.factuurdatum, SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2) periode, v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer v.vervaldatum, '1' nummer, -- Hard op '1' '1300' grtboekrek, -- Hard op '1300' v.debiteur_nr rel_kpl, NULL prj_activa, -- Hard op NULL SUM (v.mndnet + v.mndbtw) bedrag, -- Totaalbedrag incl. BTW gegroepeerd over andere kolommen! 'debit' debitcredit, 'Total' omschrijving, -- Hard op 'Total' NULL btwcode -- Hard op NULL FROM blcc_v_fact_frozen v WHERE v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01' GROUP BY v.fin_verkoopfactuur_id || '0000', 'VRK', 'EUR', v.factuurdatum, SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2), v.fin_verkoopfactuur_id, v.vervaldatum, '1', '1300', v.debiteur_nr, NULL, 'debit', 'Total', NULL UNION ALL SELECT v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???') sortering, 'VRK' code, -- Hard op 'VRK' 'EUR' valuta, -- Hard op 'EUR' v.factuurdatum, SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2) periode, v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer v.vervaldatum, '1' nummer, -- Hard op '1' v.grtboekrek, kp.prs_kostenplaats_nr rel_kpl, NULL prj_activa, -- Hard op NULL SUM (v.mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen! 'credit' debitcredit, -- TODO: Altijd 'credit' (ook negatieve bedragen)??? v.regel omschrijving, DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', 'VN') btwcode FROM blcc_v_fact_frozen v, cnt_contract c, prs_kostenplaats kp WHERE v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01' AND v.cnt_contract_key = c.cnt_contract_key AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) GROUP BY v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???'), 'VRK', 'EUR', v.factuurdatum, SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2), v.fin_verkoopfactuur_id, v.vervaldatum, '1', v.grtboekrek, kp.prs_kostenplaats_nr, NULL, 'credit', v.regel, DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', 'VN') ORDER BY 1); CREATE OR REPLACE VIEW blcc_v_export_fact ( result, result_order ) AS -- View bevat alleen inhoud op de dag na de 10e werkdag van de maand! SELECT 'code' || ';valuta' || ';factuurdatum' || ';periode' || ';factuurnummer' || ';vervaldatum' || ';nummer' || ';grtboekrek' || ';rel/kpl' || ';prj/activa' || ';bedrag' || ';debitcredit' || ';omschrijving' || ';btwcode', 0 FROM DUAL WHERE FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 10 AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6' AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1)) UNION ALL SELECT code || ';' || valuta || ';' || factuurdatum || ';' || periode || ';' || factuurnummer || ';' || vervaldatum || ';' || nummer || ';' || grtboekrek || ';' || rel_kpl || ';' || prj_activa || ';' || bedrag || ';' || debitcredit || ';' || omschrijving || ';' || btwcode, ROWNUM FROM blcc_v_rap_export_fact WHERE fclt_x_maand = TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyy-mm') AND FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 10 AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6' AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1)) ORDER BY 2; /* Formatted on 29-4-2017 15:15:18 (QP5 v5.136.908.31019) */ CREATE OR REPLACE PROCEDURE blcc_select_fact (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS -- Factureer/bevries huurcontractkosten en verwerk=AV alle eventuele correctiemeldingen! CURSOR c1 IS SELECT '[' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || '|' || v.prs_debiteur_naam || '|' || v.regel || '] ' aanduiding, v.*, m.mld_melding_status FROM blcc_v_fact_actual v, mld_melding m WHERE v.mld_melding_key = m.mld_melding_key(+) ORDER BY v.prs_bedrijf_key, v.po_nr, v.sortering, v.regel, v.alg_plaatsaanduiding; -- Verstuur verkoopfactuur naar huurder. CURSOR c2 IS SELECT DISTINCT '[' || vf.fin_verkoopfactuur_id || '|' || vf.fin_verkoopfactuur_maand || '|' || vf.prs_debiteur_naam || '] ' aanduiding, vf.fin_verkoopfactuur_id, vf.fin_verkoopfactuur_maand, vf.prs_debiteur_naam, vfk.fin_verkoopfactuurkop_key, vfk.fin_verkoopfactuurkop_id, b.prs_bedrijf_email FROM fin_verkoopfactuur vf, fin_verkoopfactuurkop vfk, prs_bedrijf b WHERE vf.fin_verkoopfactuur_maand = TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyymm') AND vf.fin_verkoopfactuurkop_key = vfk.fin_verkoopfactuurkop_key AND vf.prs_bedrijf_key = b.prs_bedrijf_key ORDER BY vf.fin_verkoopfactuur_id; v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_holiday NUMBER; v_fact_count NUMBER; v_amount_sum NUMBER (10, 2); v_old_bedr_key NUMBER (10); v_old_po_nr VARCHAR2 (30); v_year_offset NUMBER (10); v_factuur_id VARCHAR2 (30); v_factkop_id VARCHAR2 (30); v_verkoopfactuurkop_key NUMBER (10); v_count NUMBER; BEGIN -- Eerst opruiming DELETE FROM imp_log WHERE imp_log_applicatie = p_applname; SELECT COUNT ( * ) INTO v_holiday FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1); -- LET OP: Twinfield-export van contracten (= boekingsgangen) draait -- dagelijks na middernacht (begin van dag) en de verkoop wordt maandelijks -- alleen in de nacht na 10e werkdag van de maand doorgezet. -- IF nacht na 1e werkdag van de maand (én geen weekend én geen vrije dag)! -- count_work_days (d1,d2) bepaalt het #werkdagen van d1 tot d2 (als d1=d2, -- dan return 0); daarom bepalen tov. laatste dag van vorige maand! IF FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 10 AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6' AND v_holiday = 0 THEN v_fact_count := 0; v_amount_sum := 0; v_old_bedr_key := -1; v_old_po_nr := ''; -- Factureer/bevries huurcontractkosten en verwerk=AV alle eventuele -- correctiemeldingen. FOR rec IN c1 LOOP BEGIN IF rec.prs_bedrijf_key != v_old_bedr_key OR rec.po_nr != v_old_po_nr THEN -- Bepaal max. sequence t/m voorgaande jaar (= aantal entries in -- fin_verkoopfactuurkop-tabel). SELECT COUNT ( * ) INTO v_year_offset FROM fin_verkoopfactuurkop vfk WHERE SUBSTR (vfk.fin_verkoopfactuurkop_id, 1, 4) < TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyy'); -- Bepaal fin_verkoopfactuur_id=boekstuknr. tbv. BCC-verkoopboek -- obv. sequence '01' en begin elk nieuw jaar weer bij 1 door te -- corrigeren met de hierboven bepaalde offset. SELECT fac_s_user01.NEXTVAL - v_year_offset INTO v_count FROM DUAL; v_factuur_id := TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'YYYY') || '1' || SUBSTR ('0000' || TO_CHAR (v_count), -4); v_factkop_id := v_factuur_id || '_' || SUBSTR (rec.maand, 1, 4) || '-' || SUBSTR (rec.maand, -2) || '_' || rec.debiteur_nr; INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id) VALUES (v_factkop_id) RETURNING fin_verkoopfactuurkop_key INTO v_verkoopfactuurkop_key; COMMIT; v_old_bedr_key := rec.prs_bedrijf_key; v_old_po_nr := rec.po_nr; END IF; v_errormsg := 'Fout toevoegen verkoopfactuur'; INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key, fin_verkoopfactuur_id, fin_verkoopfactuur_datum, fin_verkoopfactuur_omschr, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, prs_kostenplaats_key, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaatsgrp_oms, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_bedrijf_key, prs_debiteur_naam, prs_kostensoortgrp_oms, fin_verkoopfactuur_bedrag, fin_verkoopfactuur_btw, fin_btwtabelwaarde_code, fin_btwtabelwaarde_oms, fin_btwtabelwaarde_perc, fin_btwtabelwaarde_verlegd, fin_verkoopfactuur_maand, fin_verkoopfactuur_n1, fin_verkoopfactuur_n2, fin_verkoopfactuur_n3, fin_verkoopfactuur_n4, fin_verkoopfactuur_n5, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3, fin_verkoopfactuur_c4, fin_verkoopfactuur_c5, fin_verkoopfactuur_c6, fin_verkoopfactuur_c7, fin_verkoopfactuur_c8, fin_verkoopfactuur_d1, fin_verkoopfactuur_d2, fin_verkoopfactuur_d3, fin_verkoopfactuur_d4, fin_verkoopfactuur_d5) VALUES (v_verkoopfactuurkop_key, v_factuur_id, TO_DATE (rec.factuurdatum, 'dd-mm-yyyy'), rec.cnt_contract_nummer || '/=' || rec.sortering || rec.regel, 'contract', rec.cnt_contract_key, rec.prs_kostenplaats_key, rec.prs_kostenplaats_nr, rec.prs_kostenplaats_omschrijving, rec.prs_kostenplaatsgrp_oms, rec.grtboekrek, rec.grtboekrek, rec.grtboekrek, rec.prs_bedrijf_key, rec.prs_debiteur_naam, NULL, rec.mndnet, rec.mndbtw, rec.fin_btwtabelwaarde_code, rec.fin_btwtabelwaarde_oms, rec.fin_btwtabelwaarde_perc, rec.fin_btwtabelwaarde_verlegd, rec.maand, rec.cnt_contract_korting, -- n1/kortingspercentage óf subsidiepercentage rec.mld_melding_key, -- n2/correctiemelding TO_NUMBER (NULL), -- n3 TO_NUMBER (NULL), -- n4 TO_NUMBER (NULL), -- n5 TO_CHAR (rec.l_tarief) || 'x' || TO_CHAR (rec.l_opp), -- c1/jaartarief x oppervlakte TO_CHAR (rec.h_tarief) || 'x' || TO_CHAR (rec.h_opp), -- c2/jaartarief x oppervlakte TO_CHAR (rec.k_tarief) || 'x' || TO_CHAR (rec.k_opp), -- c3/jaartarief x oppervlakte TO_CHAR (rec.o_tarief) || 'x' || TO_CHAR (rec.o_opp), -- c4/jaartarief x oppervlakte TO_CHAR (rec.t_tarief) || 'x' || TO_CHAR (rec.t_opp), -- c5/jaartarief x oppervlakte rec.alg_onroerendgoed_type || rec.alg_onroerendgoed_keys || '=' || rec.alg_plaatsaanduiding, -- c6 rec.debiteur_nr || '=' || rec.btw_nr, -- c7 rec.contactpersoon, -- c8 TO_DATE (rec.vervaldatum, 'dd-mm-yyyy'), -- d1 TO_DATE (rec.mndbegin, 'dd-mm-yyyy'), -- d2 TO_DATE (rec.mndeinde, 'dd-mm-yyyy'), -- d3 TO_DATE (rec.dagbegin, 'dd-mm-yyyy'), -- d4 TO_DATE (rec.dageinde, 'dd-mm-yyyy')); -- d5 COMMIT; v_fact_count := v_fact_count + 1; v_amount_sum := v_amount_sum + rec.mndnet; IF (rec.mld_melding_key IS NOT NULL) -- Correctiemelding? THEN v_errormsg := 'Fout verwerken correctiemelding'; -- Overgang van Geaccepteerd naar Verwerkt niet mogelijk, dus -- eerst afmelden (als nog niet Afgemeld)! IF (rec.mld_melding_status = 4) -- ACP THEN MLD.setmeldingstatus (rec.mld_melding_key, 5, NULL); -- AFM END IF; MLD.setmeldingstatus (rec.mld_melding_key, 6, NULL); -- VER COMMIT; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'E', rec.aanduiding || v_errormsg, 'M2-freeze'); COMMIT; END; END LOOP; fac.writelog (p_applname, 'S', 'M2-verkoop/#regels: ' || TO_CHAR (v_fact_count), TO_CHAR (v_amount_sum)); -- Verstuur verkoopfactuur naar huurder. FOR rec IN c2 LOOP BEGIN v_errormsg := 'Fout toevoegen CUST01-noti'; INSERT INTO fac_notificatie (fac_srtnotificatie_key, fac_notificatie_status, fac_notificatie_receiver_email, fac_notificatie_oms, fac_notificatie_refkey, fac_notificatie_prioriteit, fac_notificatie_datum, fac_notificatie_sender_email, fac_notificatie_attachments) VALUES (281, -- CUST01-noti 2, -- Mail DECODE ( -- To-adres rec.prs_bedrijf_email, NULL, 'accounting1@brightlands.com', rec.prs_bedrijf_email || ';accounting1@brightlands.com'), 'Factuur ' || rec.fin_verkoopfactuur_id || ' ' || rec.fin_verkoopfactuur_maand || ' ' || rec.prs_debiteur_naam, rec.fin_verkoopfactuurkop_key, 2, -- Prioriteit TRUNC (SYSDATE) + (7 / 24), 'accounting1@brightlands.com', -- From-adres '../export/PDF/' || rec.fin_verkoopfactuurkop_id || '.pdf'); EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'E', rec.aanduiding || v_errormsg, 'M2-noti'); COMMIT; END; END LOOP; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'E', v_errormsg, 'FACT-export afgebroken!'); END; / -- Export om een BAT-bestand aan te maken dat de PDF-bestanden genereert. Deze -- export moet voor 5:00 worden gedraaid, daarna (7:00) worden de notificaties -- vanuit putOrders verstuurd. CREATE OR REPLACE VIEW blcc_v_export_pdf_att ( result, result_order ) AS SELECT 'CALL GENEREER1FIN_VK_PDF.BAT ' || TO_CHAR (vfk.fin_verkoopfactuurkop_key) || ' ' || vfk.fin_verkoopfactuurkop_id, vfk.fin_verkoopfactuurkop_key FROM fac_notificatie n, fin_verkoopfactuurkop vfk WHERE n.fac_srtnotificatie_key = 281 -- CUST01-noti AND n.fac_notificatie_refkey = vfk.fin_verkoopfactuurkop_key; CREATE OR REPLACE VIEW blcc_v_rap_fact_controle ( fclt_f_controle, controle_ref ) AS WITH periodegeg AS (SELECT * FROM blcc_v_fact_actual) SELECT DISTINCT 'BCC Huurcontract niet gekoppeld aan FIN-plaats', v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) FROM periodegeg v, cnt_contract c WHERE v.mld_melding_key IS NULL AND v.cnt_contract_key = c.cnt_contract_key AND c.ins_discipline_key = 621 -- Huurcontracten AND v.alg_plaatsaanduiding NOT LIKE '%FIN%' UNION ALL SELECT DISTINCT 'BCC Huurcontract oppervlakte = 0', xref FROM ( SELECT v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) || ' [' || v.regel || ']' xref, SUM (COALESCE (l_opp, 0) + COALESCE (h_opp, 0) + COALESCE (k_opp, 0) + COALESCE (o_opp, 0) + COALESCE (t_opp, 0) ) oppervlakte FROM periodegeg v, cnt_contract c WHERE v.mld_melding_key IS NULL AND v.cnt_contract_key = c.cnt_contract_key AND c.ins_discipline_key = 621 -- Huurcontracten GROUP BY v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) || ' [' || v.regel || ']') WHERE oppervlakte = 0 UNION ALL SELECT DISTINCT 'Contract(regel) bedrag = 0', xref FROM ( SELECT v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) || ' [' || v.regel || ']' xref, SUM (v.mndnet) bedrag FROM periodegeg v WHERE v.mld_melding_key IS NULL GROUP BY v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) || ' [' || v.regel || ']') WHERE bedrag = 0 UNION ALL SELECT DISTINCT 'Contract(regel) bedrag < 0', xref FROM ( SELECT v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) || ' [' || v.regel || ']' xref, SUM (v.mndnet) bedrag FROM periodegeg v WHERE v.mld_melding_key IS NULL AND v.regel NOT LIKE 'CFF%' GROUP BY v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) || ' [' || v.regel || ']') WHERE bedrag < 0 UNION ALL SELECT DISTINCT 'Contractkorting >= 100%', v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) FROM periodegeg v WHERE v.mld_melding_key IS NULL AND v.cnt_contract_korting >= 100 UNION ALL SELECT DISTINCT 'Contract met GVR-overlap?', v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) FROM periodegeg v, alg_v_allonroerendgoed aog WHERE v.mld_melding_key IS NULL AND v.alg_onroerendgoed_type IN ('G', 'V', 'R') AND v.alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys AND EXISTS (SELECT 1 FROM periodegeg v1, alg_v_allonroerendgoed aog1 WHERE v1.alg_onroerendgoed_type IN ('G', 'V', 'R') AND v1.alg_onroerendgoed_keys = aog1.alg_onroerendgoed_keys AND v1.cnt_contract_key = v.cnt_contract_key -- Hetzelfde contract AND aog1.alg_gebouw_key = aog.alg_gebouw_key -- Hetzelfde gebouw AND v1.alg_onroerendgoed_type != v.alg_onroerendgoed_type -- Ander type AND v1.alg_onroerendgoed_keys != v.alg_onroerendgoed_keys) -- Andere regel UNION ALL SELECT DISTINCT 'Dezelfde plaats gekoppeld aan meer contracten', v.alg_plaatsaanduiding FROM periodegeg v WHERE v.mld_melding_key IS NULL AND v.alg_onroerendgoed_type IN ('G', 'V', 'R') AND EXISTS (SELECT 1 FROM periodegeg v1 WHERE v1.alg_onroerendgoed_type IN ('G', 'V', 'R') AND v1.alg_onroerendgoed_keys = v.alg_onroerendgoed_keys -- Dezelfde plaats AND v1.cnt_contract_key != v.cnt_contract_key) -- Ander contract UNION ALL SELECT DISTINCT 'E-mail adres van debiteur onbekend', v.prs_debiteur_naam FROM periodegeg v, prs_bedrijf b WHERE v.prs_bedrijf_key = b.prs_bedrijf_key AND b.prs_bedrijf_email IS NULL UNION ALL SELECT DISTINCT 'Factuuradres van debiteur onbekend/onvolledig', v.prs_debiteur_naam FROM periodegeg v WHERE v.mld_melding_key IS NULL AND (v.adres IS NULL OR v.postcode IS NULL OR v.plaats IS NULL OR v.land IS NULL) UNION ALL SELECT DISTINCT 'Correctiebedrag = 0', TO_CHAR (v.mld_melding_key) FROM periodegeg v WHERE v.mld_melding_key IS NOT NULL AND v.mndnet = 0 UNION ALL SELECT DISTINCT 'Correctiemelding nog niet in conceptfactuur', TO_CHAR (m.mld_melding_key) FROM mld_melding m WHERE m.mld_stdmelding_key = 482 -- Financiële correctie AND m.mld_melding_status IN (0, 2, 3) -- Pending/Ingevoerd/Ingezien UNION ALL SELECT DISTINCT 'Contract gekoppeld aan locatie', v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) FROM periodegeg v WHERE v.mld_melding_key IS NULL AND v.alg_onroerendgoed_type = 'L'; CREATE OR REPLACE VIEW blcc_v_rap_fact_delta_actual AS SELECT DISTINCT debiteur_nr || cnt_contract_nummer || regel sortering, cnt_contract_nummer_intern, cnt_contract_versie, prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek, opp_old, opp_new, opp_delta, bruto_old, bruto_new, bruto_delta, DECODE (opp_delta + bruto_delta, 0, NULL, 'X') mutatievlag FROM (SELECT COALESCE (y.cnt_contract_nummer_intern, '*' || x.cnt_contract_nummer_intern) cnt_contract_nummer_intern, DECODE (x.cnt_contract_versie, -- Is altijd een versie! y.cnt_contract_versie, x.cnt_contract_versie, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.cnt_contract_versie, '***GEWIJZIGD: ' || COALESCE (x.cnt_contract_versie, ''))) cnt_contract_versie, DECODE (x.prs_debiteur_naam, -- Is altijd een debiteur_naam! y.prs_debiteur_naam, x.prs_debiteur_naam, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.prs_debiteur_naam, '***GEWIJZIGD: ' || COALESCE (x.prs_debiteur_naam, ''))) prs_debiteur_naam, DECODE (x.debiteur_nr, -- Niet altijd een debiteur_nr! y.debiteur_nr, x.debiteur_nr, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.debiteur_nr, '***GEWIJZIGD: ' || COALESCE (x.debiteur_nr, ''))) debiteur_nr, DECODE (x.cnt_contract_nummer, -- Niet altijd een PO-nr! y.cnt_contract_nummer, x.cnt_contract_nummer, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.cnt_contract_nummer, '***GEWIJZIGD: ' || COALESCE (x.cnt_contract_nummer, ''))) cnt_contract_nummer, DECODE (x.regel, -- Is altijd een regel! y.regel, x.regel, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.regel, '***GEWIJZIGD: ' || COALESCE (x.regel, ''))) regel, DECODE (x.prs_kostenplaats_nr, -- Is altijd een KP-nr! y.prs_kostenplaats_nr, x.prs_kostenplaats_nr, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.prs_kostenplaats_nr, '***GEWIJZIGD: ' || COALESCE (x.prs_kostenplaats_nr, ''))) prs_kostenplaats_nr, DECODE (x.grtboekrek, -- Niet altijd een grootboekrekening! y.grtboekrek, x.grtboekrek, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.grtboekrek, '***GEWIJZIGD: ' || COALESCE (x.grtboekrek, ''))) grtboekrek, y.opp opp_old, x.opp opp_new, (COALESCE (x.opp, 0) - COALESCE (y.opp, 0)) opp_delta, y.bruto bruto_old, x.bruto bruto_new, (COALESCE (x.bruto, 0) - COALESCE (y.bruto, 0)) bruto_delta FROM ( SELECT cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0') cnt_contract_versie, prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek, SUM (COALESCE (l_opp, 0) + COALESCE (h_opp, 0) + COALESCE (k_opp, 0) + COALESCE (o_opp, 0) + COALESCE (t_opp, 0)) opp, SUM (mndnet + mndbtw) bruto FROM blcc_v_fact_actual GROUP BY cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0'), prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek) x LEFT JOIN ( SELECT cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0') cnt_contract_versie, prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek, SUM (COALESCE (l_opp, 0) + COALESCE (h_opp, 0) + COALESCE (k_opp, 0) + COALESCE (o_opp, 0) + COALESCE (t_opp, 0)) opp, SUM (mndnet + mndbtw) bruto FROM blcc_v_fact_frozen WHERE maand = (SELECT MAX (maand) FROM blcc_v_fact_frozen) GROUP BY cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0'), prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek) y ON x.cnt_contract_nummer_intern = y.cnt_contract_nummer_intern --AND x.cnt_contract_versie = y.cnt_contract_versie --AND x.prs_debiteur_naam = y.prs_debiteur_naam --AND x.debiteur_nr = y.debiteur_nr --AND x.cnt_contract_nummer = y.cnt_contract_nummer AND x.regel = y.regel UNION SELECT COALESCE (x.cnt_contract_nummer_intern, 'x' || y.cnt_contract_nummer_intern) cnt_contract_nummer_intern, DECODE (y.cnt_contract_versie, -- Is altijd een versie! x.cnt_contract_versie, y.cnt_contract_versie, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.cnt_contract_versie, '***GEWIJZIGD: ' || COALESCE (x.cnt_contract_versie, ''))) cnt_contract_versie, DECODE (y.prs_debiteur_naam, -- Is altijd een debiteur_naam! x.prs_debiteur_naam, y.prs_debiteur_naam, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.prs_debiteur_naam, '***GEWIJZIGD: ' || COALESCE (x.prs_debiteur_naam, ''))) prs_debiteur_naam, DECODE (y.debiteur_nr, -- Niet altijd een debiteur_nr! x.debiteur_nr, y.debiteur_nr, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.debiteur_nr, '***GEWIJZIGD: ' || COALESCE (x.debiteur_nr, ''))) debiteur_nr, DECODE (y.cnt_contract_nummer, -- Niet altijd een PO-nr! x.cnt_contract_nummer, y.cnt_contract_nummer, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.cnt_contract_nummer, '***GEWIJZIGD: ' || COALESCE (x.cnt_contract_nummer, ''))) cnt_contract_nummer, DECODE (y.regel, -- Is altijd een regel! x.regel, y.regel, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.regel, '***GEWIJZIGD: ' || COALESCE (x.regel, ''))) regel, DECODE (y.prs_kostenplaats_nr, -- Is altijd een KP-nr! x.prs_kostenplaats_nr, y.prs_kostenplaats_nr, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.prs_kostenplaats_nr, '***GEWIJZIGD: ' || COALESCE (x.prs_kostenplaats_nr, ''))) prs_kostenplaats_nr, DECODE (y.grtboekrek, -- Niet altijd een grootboekrekening! x.grtboekrek, y.grtboekrek, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.grtboekrek, '***GEWIJZIGD: ' || COALESCE (x.grtboekrek, ''))) grtboekrek, y.opp opp_old, x.opp opp_new, (COALESCE (x.opp, 0) - COALESCE (y.opp, 0)) opp_delta, y.bruto bruto_old, x.bruto bruto_new, (COALESCE (x.bruto, 0) - COALESCE (y.bruto, 0)) bruto_delta FROM ( SELECT cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0') cnt_contract_versie, prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek, SUM (COALESCE (l_opp, 0) + COALESCE (h_opp, 0) + COALESCE (k_opp, 0) + COALESCE (o_opp, 0) + COALESCE (t_opp, 0)) opp, SUM (mndnet + mndbtw) bruto FROM blcc_v_fact_actual GROUP BY cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0'), prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek) x RIGHT JOIN ( SELECT cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0') cnt_contract_versie, prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek, SUM (COALESCE (l_opp, 0) + COALESCE (h_opp, 0) + COALESCE (k_opp, 0) + COALESCE (o_opp, 0) + COALESCE (t_opp, 0)) opp, SUM (mndnet + mndbtw) bruto FROM blcc_v_fact_frozen WHERE maand = (SELECT MAX (maand) FROM blcc_v_fact_frozen) GROUP BY cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0'), prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek) y ON x.cnt_contract_nummer_intern = y.cnt_contract_nummer_intern --AND x.cnt_contract_versie = y.cnt_contract_versie --AND x.prs_debiteur_naam = y.prs_debiteur_naam --AND x.debiteur_nr = y.debiteur_nr --AND x.cnt_contract_nummer = y.cnt_contract_nummer AND x.regel = y.regel); CREATE OR REPLACE VIEW blcc_v_rap_fact_delta_frozen AS SELECT DISTINCT debiteur_nr || cnt_contract_nummer || regel sortering, cnt_contract_nummer_intern, cnt_contract_versie, prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek, opp_old, opp_new, opp_delta, bruto_old, bruto_new, bruto_delta, DECODE (opp_delta + bruto_delta, 0, NULL, 'X') mutatievlag FROM (SELECT COALESCE (y.cnt_contract_nummer_intern, '*' || x.cnt_contract_nummer_intern) cnt_contract_nummer_intern, DECODE (x.cnt_contract_versie, -- Is altijd een versie! y.cnt_contract_versie, x.cnt_contract_versie, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.cnt_contract_versie, '***GEWIJZIGD: ' || COALESCE (x.cnt_contract_versie, ''))) cnt_contract_versie, DECODE (x.prs_debiteur_naam, -- Is altijd een debiteur_naam! y.prs_debiteur_naam, x.prs_debiteur_naam, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.prs_debiteur_naam, '***GEWIJZIGD: ' || COALESCE (x.prs_debiteur_naam, ''))) prs_debiteur_naam, DECODE (x.debiteur_nr, -- Niet altijd een debiteur_nr! y.debiteur_nr, x.debiteur_nr, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.debiteur_nr, '***GEWIJZIGD: ' || COALESCE (x.debiteur_nr, ''))) debiteur_nr, DECODE (x.cnt_contract_nummer, -- Niet altijd een PO-nr! y.cnt_contract_nummer, x.cnt_contract_nummer, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.cnt_contract_nummer, '***GEWIJZIGD: ' || COALESCE (x.cnt_contract_nummer, ''))) cnt_contract_nummer, DECODE (x.regel, -- Is altijd een regel! y.regel, x.regel, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.regel, '***GEWIJZIGD: ' || COALESCE (x.regel, ''))) regel, DECODE (x.prs_kostenplaats_nr, -- Is altijd een KP-nr! y.prs_kostenplaats_nr, x.prs_kostenplaats_nr, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.prs_kostenplaats_nr, '***GEWIJZIGD: ' || COALESCE (x.prs_kostenplaats_nr, ''))) prs_kostenplaats_nr, DECODE (x.grtboekrek, -- Niet altijd een grootboekrekening! y.grtboekrek, x.grtboekrek, DECODE (y.cnt_contract_nummer_intern, NULL, '*' || x.grtboekrek, '***GEWIJZIGD: ' || COALESCE (x.grtboekrek, ''))) grtboekrek, y.opp opp_old, x.opp opp_new, (COALESCE (x.opp, 0) - COALESCE (y.opp, 0)) opp_delta, y.bruto bruto_old, x.bruto bruto_new, (COALESCE (x.bruto, 0) - COALESCE (y.bruto, 0)) bruto_delta FROM ( SELECT cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0') cnt_contract_versie, prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek, SUM (COALESCE (l_opp, 0) + COALESCE (h_opp, 0) + COALESCE (k_opp, 0) + COALESCE (o_opp, 0) + COALESCE (t_opp, 0)) opp, SUM (mndnet + mndbtw) bruto FROM blcc_v_fact_frozen WHERE maand = (SELECT MAX (maand) FROM blcc_v_fact_frozen) GROUP BY cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0'), prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek) x LEFT JOIN ( SELECT cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0') cnt_contract_versie, prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek, SUM (COALESCE (l_opp, 0) + COALESCE (h_opp, 0) + COALESCE (k_opp, 0) + COALESCE (o_opp, 0) + COALESCE (t_opp, 0)) opp, SUM (mndnet + mndbtw) bruto FROM blcc_v_fact_frozen WHERE maand = (SELECT MAX (maand) FROM blcc_v_fact_frozen WHERE maand <> (SELECT MAX (maand) FROM blcc_v_fact_frozen)) GROUP BY cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0'), prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek) y ON x.cnt_contract_nummer_intern = y.cnt_contract_nummer_intern --AND x.cnt_contract_versie = y.cnt_contract_versie --AND x.prs_debiteur_naam = y.prs_debiteur_naam --AND x.debiteur_nr = y.debiteur_nr --AND x.cnt_contract_nummer = y.cnt_contract_nummer AND x.regel = y.regel UNION SELECT COALESCE (x.cnt_contract_nummer_intern, 'x' || y.cnt_contract_nummer_intern) cnt_contract_nummer_intern, DECODE (y.cnt_contract_versie, -- Is altijd een versie! x.cnt_contract_versie, y.cnt_contract_versie, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.cnt_contract_versie, '***GEWIJZIGD: ' || COALESCE (x.cnt_contract_versie, ''))) cnt_contract_versie, DECODE (y.prs_debiteur_naam, -- Is altijd een debiteur_naam! x.prs_debiteur_naam, y.prs_debiteur_naam, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.prs_debiteur_naam, '***GEWIJZIGD: ' || COALESCE (x.prs_debiteur_naam, ''))) prs_debiteur_naam, DECODE (y.debiteur_nr, -- Niet altijd een debiteur_nr! x.debiteur_nr, y.debiteur_nr, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.debiteur_nr, '***GEWIJZIGD: ' || COALESCE (x.debiteur_nr, ''))) debiteur_nr, DECODE (y.cnt_contract_nummer, -- Niet altijd een PO-nr! x.cnt_contract_nummer, y.cnt_contract_nummer, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.cnt_contract_nummer, '***GEWIJZIGD: ' || COALESCE (x.cnt_contract_nummer, ''))) cnt_contract_nummer, DECODE (y.regel, -- Is altijd een regel! x.regel, y.regel, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.regel, '***GEWIJZIGD: ' || COALESCE (x.regel, ''))) regel, DECODE (y.prs_kostenplaats_nr, -- Is altijd een KP-nr! x.prs_kostenplaats_nr, y.prs_kostenplaats_nr, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.prs_kostenplaats_nr, '***GEWIJZIGD: ' || COALESCE (x.prs_kostenplaats_nr, ''))) prs_kostenplaats_nr, DECODE (y.grtboekrek, -- Niet altijd een grootboekrekening! x.grtboekrek, y.grtboekrek, DECODE (x.cnt_contract_nummer_intern, NULL, 'x' || y.grtboekrek, '***GEWIJZIGD: ' || COALESCE (x.grtboekrek, ''))) grtboekrek, y.opp opp_old, x.opp opp_new, (COALESCE (x.opp, 0) - COALESCE (y.opp, 0)) opp_delta, y.bruto bruto_old, x.bruto bruto_new, (COALESCE (x.bruto, 0) - COALESCE (y.bruto, 0)) bruto_delta FROM ( SELECT cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0') cnt_contract_versie, prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek, SUM (COALESCE (l_opp, 0) + COALESCE (h_opp, 0) + COALESCE (k_opp, 0) + COALESCE (o_opp, 0) + COALESCE (t_opp, 0)) opp, SUM (mndnet + mndbtw) bruto FROM blcc_v_fact_frozen WHERE maand = (SELECT MAX (maand) FROM blcc_v_fact_frozen) GROUP BY cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0'), prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek) x RIGHT JOIN ( SELECT cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0') cnt_contract_versie, prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek, SUM (COALESCE (l_opp, 0) + COALESCE (h_opp, 0) + COALESCE (k_opp, 0) + COALESCE (o_opp, 0) + COALESCE (t_opp, 0)) opp, SUM (mndnet + mndbtw) bruto FROM blcc_v_fact_frozen WHERE maand = (SELECT MAX (maand) FROM blcc_v_fact_frozen WHERE maand <> (SELECT MAX (maand) FROM blcc_v_fact_frozen)) GROUP BY cnt_contract_nummer_intern, COALESCE (cnt_contract_versie, '0'), prs_debiteur_naam, debiteur_nr, cnt_contract_nummer, regel, prs_kostenplaats_nr, grtboekrek) y ON x.cnt_contract_nummer_intern = y.cnt_contract_nummer_intern --AND x.cnt_contract_versie = y.cnt_contract_versie --AND x.prs_debiteur_naam = y.prs_debiteur_naam --AND x.debiteur_nr = y.debiteur_nr --AND x.cnt_contract_nummer = y.cnt_contract_nummer AND x.regel = y.regel); -- BLCC#41826: Leegstand CREATE OR REPLACE VIEW blcc_v_rap_leegstand AS SELECT TO_CHAR (x.mnd, 'yyyy-mm') maand, fp.alg_onrgoed_key, fp.alg_onrgoed_type, fp.fin_plaats, c.prs_bedrijf_naam debiteur, c.prs_overeenkomst_nr debiteur_nr, fp.fin_opp, fp.fin_lhkot, DECODE (c.cnt_contract_key, NULL, 'Ja', 'Nee') leegstand FROM ( SELECT ADD_MONTHS (TRUNC (SYSDATE, 'mm'), LEVEL - 13) mnd FROM DUAL CONNECT BY LEVEL <= 37) x LEFT JOIN (SELECT g.alg_gebouw_key alg_onrgoed_key, 'G' alg_onrgoed_type, g.alg_gebouw_code || DECODE (glhkot.alg_kenmerk_key, 1082, ' / L', 1083, ' / H', 1084, ' / K', 1085, ' / O', ' / T') fin_plaats, fac.safe_to_number (alg_onrgoedkenmerk_waarde) fin_opp, DECODE (glhkot.alg_kenmerk_key, 1082, 'L', 1083, 'H', 1084, 'K', 1085, 'O', 'T') fin_lhkot FROM alg_v_aanweziggebouw g, alg_v_aanwezigonrgoedkenmerk glhkot WHERE g.alg_gebouw_code LIKE '%FIN%' AND g.alg_gebouw_key = glhkot.alg_onrgoed_key AND glhkot.alg_kenmerk_key IN (1082, 1083, 1084, 1085, 1120) -- LHKOT Oppervlakten AND glhkot.alg_onrgoed_niveau = 'G' UNION ALL SELECT v.alg_verdieping_key alg_onrgoed_key, 'V' alg_onrgoed_type, g.alg_gebouw_code || '-' || TRIM (v.alg_verdieping_code) || DECODE (vlhkot.alg_kenmerk_key, 1092, ' / L', 1093, ' / H', 1094, ' / K', 1095, ' / O', ' / T') fin_plaats, fac.safe_to_number (alg_onrgoedkenmerk_waarde) fin_opp, DECODE (vlhkot.alg_kenmerk_key, 1092, 'L', 1093, 'H', 1094, 'K', 1095, 'O', 'T') fin_lhkot FROM alg_v_aanwezigverdieping v, alg_gebouw g, alg_v_aanwezigonrgoedkenmerk vlhkot WHERE v.alg_verdieping_code LIKE '%FIN%' AND v.alg_gebouw_key = g.alg_gebouw_key AND v.alg_verdieping_key = vlhkot.alg_onrgoed_key AND vlhkot.alg_kenmerk_key IN (1092, 1093, 1094, 1095, 1121) -- LHKOT Oppervlakten AND vlhkot.alg_onrgoed_niveau = 'V' UNION ALL SELECT r.alg_ruimte_key alg_onrgoed_key, 'R' alg_onrgoed_type, g.alg_gebouw_code || '-' || v.alg_verdieping_code || '-' || r.alg_ruimte_nr || ' / ' || ud.fac_usrdata_code fin_plaats, r.alg_ruimte_opp_alt1 fin_opp, ud.fac_usrdata_code fin_lhkot FROM alg_v_aanwezigruimte r, alg_verdieping v, alg_gebouw g, alg_v_aanwezigonrgoedkenmerk rlhkot, fac_usrdata ud WHERE r.alg_ruimte_nr LIKE 'FIN%' AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND r.alg_ruimte_key = rlhkot.alg_onrgoed_key AND rlhkot.alg_kenmerk_key = 1100 -- LHKOT Classificatie AND rlhkot.alg_onrgoed_niveau = 'R' AND rlhkot.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key)) fp -- FIN-plaatsen ON 1 = 1 LEFT JOIN (SELECT c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_van, c.cnt_contract_looptijd_tot, cp.cnt_alg_plaats_key, cp.cnt_alg_plaats_code, b.prs_bedrijf_naam, b.prs_overeenkomst_nr FROM cnt_v_aanwezigcontract c, cnt_kenmerkcontract vsov, cnt_contract_plaats cp, prs_bedrijf b WHERE c.ins_discipline_key = 621 -- Huurcontracten AND c.cnt_contract_key = vsov.cnt_contract_key AND vsov.cnt_kenmerkcontract_verwijder IS NULL AND vsov.cnt_kenmerk_key = 21 -- VSOV AND vsov.cnt_kenmerkcontract_waarde = '454' -- ALLEEN Verhuurd telt als geen leegstand! AND cp.cnt_contract_plaats_verwijder IS NULL AND c.cnt_contract_key = cp.cnt_contract_key AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) c ON x.mnd BETWEEN TRUNC (c.cnt_contract_looptijd_van) AND TRUNC (c.cnt_contract_looptijd_tot + 1) AND fp.alg_onrgoed_key = c.cnt_alg_plaats_key; -- BLCC#41827: Rent roll met een per bedrijf/regel/jaar-rij een contractbedrag- -- kolom (ter pivot in FACILITOR naar een per bedrijf/regel-rij een -- contractbedrag per jaar-kolom). CREATE OR REPLACE VIEW blcc_v_rap_rent_roll AS SELECT prs_bedrijf_naam huurder, regel, lv ingangsdatum_huurovk, lt einddatum_huurovk, 12 * mndnet_heel rent, TO_CHAR (maand, 'yyyy') jaar, SUM (mndnet_deel) totaal -- Regeltotaal per jaar FROM ( SELECT p.maand, c.lv, c.lt, c.prs_bedrijf_naam, x.regel, SUM (ROUND (x.mndnet, 2)) mndnet_heel, SUM (ROUND ((LEAST (TRUNC (c.lt), LAST_DAY (p.maand)) - GREATEST (TRUNC (c.lv), p.maand) + 1) / (LAST_DAY (p.maand) - p.maand + 1) * x.mndnet, 2)) mndnet_deel -- Regeltotaal per maand FROM ( SELECT ADD_MONTHS (TRUNC (SYSDATE, 'yyyy'), LEVEL - 1) maand FROM DUAL CONNECT BY ADD_MONTHS (TRUNC (SYSDATE, 'yyyy'), LEVEL - 1) <= (SELECT MAX (TRUNC (cnt_contract_looptijd_tot, 'mm')) FROM cnt_v_aanwezigcontract c, cnt_kenmerkcontract vsov WHERE c.cnt_contract_status = 0 -- NIET Gesloten AND c.ins_discipline_key IN (621, 721, 722, 724) -- Huurcontracten+PP & CV+Utility infra/voorz+General infra/voorz AND c.cnt_contract_key = vsov.cnt_contract_key AND vsov.cnt_kenmerkcontract_verwijder IS NULL AND vsov.cnt_kenmerk_key = 21 -- VSOV AND vsov.cnt_kenmerkcontract_waarde = '454')) p -- ALLEEN Verhuurd! LEFT JOIN (SELECT c.cnt_contract_key, c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt, b.prs_bedrijf_naam FROM cnt_v_aanwezigcontract c, cnt_kenmerkcontract vsov, prs_bedrijf b WHERE c.cnt_contract_status = 0 -- NIET Gesloten AND c.ins_discipline_key = 621 -- Huurcontracten AND c.cnt_contract_key = vsov.cnt_contract_key AND vsov.cnt_kenmerkcontract_verwijder IS NULL AND vsov.cnt_kenmerk_key = 21 -- VSOV AND vsov.cnt_kenmerkcontract_waarde = '454' -- ALLEEN Verhuurd! --AND c.cnt_prs_bedrijf_key = 11207 -- Arlanxeo (om te testen) AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key UNION ALL SELECT c.cnt_contract_key, c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt, b.prs_bedrijf_naam FROM cnt_v_aanwezigcontract c, prs_bedrijf b WHERE c.cnt_contract_status = 0 -- NIET Gesloten AND c.ins_discipline_key IN (721, 722, 724) -- PP & CV+Utility infra/voorz+General infra/voorz --AND c.cnt_prs_bedrijf_key = 11207 -- Arlanxeo (om te testen) AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) c ON p.maand BETWEEN TRUNC (c.lv, 'mm') AND TRUNC (c.lt, 'mm') LEFT JOIN (SELECT x.cnt_contract_key, 'Campus Rent' regel, ((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * ((COALESCE (fac.safe_to_number(COALESCE (glo.alg_onrgoedkenmerk_waarde, vlo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '481', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ltar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number(COALESCE (gho.alg_onrgoedkenmerk_waarde, vho.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '482', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (htar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number(COALESCE (gko.alg_onrgoedkenmerk_waarde, vko.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '483', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ktar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number(COALESCE (goo.alg_onrgoedkenmerk_waarde, voo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '484', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (otar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number(COALESCE (gto.alg_onrgoedkenmerk_waarde, vto.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '561', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ttar.fac_usrdata_prijs / 12, 0))) mndnet -- Netto maandbedrag (incl. kortingspercentage) FROM (SELECT c.cnt_contract_key, c.cnt_contract_korting FROM cnt_v_aanwezigcontract c WHERE c.ins_discipline_key = 621) x -- Huurcontracten LEFT JOIN cnt_kenmerkcontract tt_kc ON x.cnt_contract_key = tt_kc.cnt_contract_key AND tt_kc.cnt_kenmerkcontract_verwijder IS NULL AND tt_kc.cnt_kenmerk_key = 23 -- Tarieftabel LEFT JOIN fac_v_aanwezigusrdata tt_ud ON tt_kc.cnt_kenmerkcontract_waarde = TO_CHAR (tt_ud.fac_usrdata_key) LEFT JOIN fac_v_aanwezigusrdata ltar ON tt_ud.fac_usrdata_code = TO_CHAR (ltar.fac_usrtab_key) AND ltar.fac_usrdata_code = 'L' -- L-Tarief LEFT JOIN fac_v_aanwezigusrdata htar ON tt_ud.fac_usrdata_code = TO_CHAR (htar.fac_usrtab_key) AND htar.fac_usrdata_code = 'H' -- H-Tarief LEFT JOIN fac_v_aanwezigusrdata ktar ON tt_ud.fac_usrdata_code = TO_CHAR (ktar.fac_usrtab_key) AND ktar.fac_usrdata_code = 'K' -- K-Tarief LEFT JOIN fac_v_aanwezigusrdata otar ON tt_ud.fac_usrdata_code = TO_CHAR (otar.fac_usrtab_key) AND otar.fac_usrdata_code = 'O' -- O-Tarief LEFT JOIN fac_v_aanwezigusrdata ttar ON tt_ud.fac_usrdata_code = TO_CHAR (ttar.fac_usrtab_key) AND ttar.fac_usrdata_code = 'T' -- T-Tarief LEFT JOIN cnt_v_aanwezigcontract_plaats ccp ON x.cnt_contract_key = ccp.cnt_contract_key AND ccp.cnt_alg_plaats_code IN ('G', 'V', 'R') LEFT JOIN alg_v_aanwezigonrgoedkenmerk glo ON ccp.cnt_alg_plaats_key = glo.alg_onrgoed_key AND glo.alg_kenmerk_key = 1082 -- GL-Oppervlakte AND glo.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gho ON ccp.cnt_alg_plaats_key = gho.alg_onrgoed_key AND gho.alg_kenmerk_key = 1083 -- GH-Oppervlakte AND gho.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gko ON ccp.cnt_alg_plaats_key = gko.alg_onrgoed_key AND gko.alg_kenmerk_key = 1084 -- GK-Oppervlakte AND gko.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk goo ON ccp.cnt_alg_plaats_key = goo.alg_onrgoed_key AND goo.alg_kenmerk_key = 1085 -- GO-Oppervlakte AND goo.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gto ON ccp.cnt_alg_plaats_key = gto.alg_onrgoed_key AND gto.alg_kenmerk_key = 1120 -- GT-Oppervlakte AND gto.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vlo ON ccp.cnt_alg_plaats_key = vlo.alg_onrgoed_key AND vlo.alg_kenmerk_key = 1092 -- VL-Oppervlakte AND vlo.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vho ON ccp.cnt_alg_plaats_key = vho.alg_onrgoed_key AND vho.alg_kenmerk_key = 1093 -- VH-Oppervlakte AND vho.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vko ON ccp.cnt_alg_plaats_key = vko.alg_onrgoed_key AND vko.alg_kenmerk_key = 1094 -- VK-Oppervlakte AND vko.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk voo ON ccp.cnt_alg_plaats_key = voo.alg_onrgoed_key AND voo.alg_kenmerk_key = 1095 -- VO-Oppervlakte AND voo.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vto ON ccp.cnt_alg_plaats_key = vto.alg_onrgoed_key AND vto.alg_kenmerk_key = 1121 -- VT-Oppervlakte AND vto.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk rlhkot ON ccp.cnt_alg_plaats_key = rlhkot.alg_onrgoed_key AND rlhkot.alg_kenmerk_key = 1100 -- LHKOT Classificatie AND rlhkot.alg_onrgoed_niveau = 'R' LEFT JOIN alg_v_aanwezigruimte rxo ON ccp.cnt_alg_plaats_key = rxo.alg_ruimte_key UNION ALL -- FES SELECT x.cnt_contract_key, 'FES' regel, -1 * ((COALESCE (fac.safe_to_number(COALESCE (glo.alg_onrgoedkenmerk_waarde, vlo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '481', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * (COALESCE (lfes.fac_usrdata_prijs, 0) / 12)) + (COALESCE (fac.safe_to_number(COALESCE (gko.alg_onrgoedkenmerk_waarde, vko.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '483', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * (COALESCE (kfes.fac_usrdata_prijs, 0) / 12))) mndnet -- Netto maandbedrag (excl. kortingspercentage) FROM (SELECT c.cnt_contract_key FROM cnt_v_aanwezigcontract c WHERE c.ins_discipline_key = 621) x -- Huurcontracten LEFT JOIN cnt_kenmerkcontract tt_kc ON x.cnt_contract_key = tt_kc.cnt_contract_key AND tt_kc.cnt_kenmerkcontract_verwijder IS NULL AND tt_kc.cnt_kenmerk_key = 23 -- Tarieftabel LEFT JOIN fac_v_aanwezigusrdata tt_ud ON tt_kc.cnt_kenmerkcontract_waarde = TO_CHAR (tt_ud.fac_usrdata_key) LEFT JOIN fac_v_aanwezigusrdata lfes ON tt_ud.fac_usrdata_code = TO_CHAR (lfes.fac_usrtab_key) AND lfes.fac_usrdata_code = 'LFES' -- FES-Tarief op L-Oppervlakte LEFT JOIN fac_v_aanwezigusrdata kfes ON tt_ud.fac_usrdata_code = TO_CHAR (kfes.fac_usrtab_key) AND kfes.fac_usrdata_code = 'KFES' -- FES-Tarief op K-Oppervlakte LEFT JOIN cnt_kenmerkcontract fes ON x.cnt_contract_key = fes.cnt_contract_key AND fes.cnt_kenmerkcontract_verwijder IS NULL AND fes.cnt_kenmerk_key = 42 -- FES-vinkje LEFT JOIN cnt_v_aanwezigcontract_plaats ccp ON x.cnt_contract_key = ccp.cnt_contract_key AND ccp.cnt_alg_plaats_code IN ('G', 'V', 'R') LEFT JOIN alg_v_aanwezigonrgoedkenmerk glo ON ccp.cnt_alg_plaats_key = glo.alg_onrgoed_key AND glo.alg_kenmerk_key = 1082 -- GL-Oppervlakte AND glo.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gko ON ccp.cnt_alg_plaats_key = gko.alg_onrgoed_key AND gko.alg_kenmerk_key = 1084 -- GK-Oppervlakte AND gko.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vlo ON ccp.cnt_alg_plaats_key = vlo.alg_onrgoed_key AND vlo.alg_kenmerk_key = 1092 -- VL-Oppervlakte AND vlo.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vko ON ccp.cnt_alg_plaats_key = vko.alg_onrgoed_key AND vko.alg_kenmerk_key = 1094 -- VK-Oppervlakte AND vko.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk rlhkot ON ccp.cnt_alg_plaats_key = rlhkot.alg_onrgoed_key AND rlhkot.alg_kenmerk_key = 1100 -- LHKOT Classificatie AND rlhkot.alg_onrgoed_niveau = 'R' LEFT JOIN alg_v_aanwezigruimte rxo ON ccp.cnt_alg_plaats_key = rxo.alg_ruimte_key WHERE fes.cnt_kenmerkcontract_waarde IS NOT NULL UNION ALL -- CFF Rent SELECT cnt_contract_key, 'CFF Rent' regel, -1 * fac_usrdata_prijs * (mndnet - fac.safe_to_number (cnt_kenmerkcontract_waarde)) mndnet -- CFF-subsidie * Netto maandbedrag (incl. kortingspercentage én kortingsbedrag)=CFF Rent FROM ( SELECT x.cnt_contract_key, kb_kc.cnt_kenmerkcontract_waarde, -- Netto kortingsbedrag (excl. kortingspercentage)! ccf_ud.fac_usrdata_prijs, -- CFF-subsidiepercentatie % SUM (((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * ((COALESCE (fac.safe_to_number(COALESCE (glo.alg_onrgoedkenmerk_waarde, vlo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '481', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ltar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number(COALESCE (gho.alg_onrgoedkenmerk_waarde, vho.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '482', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (htar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number(COALESCE (gko.alg_onrgoedkenmerk_waarde, vko.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '483', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ktar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number(COALESCE (goo.alg_onrgoedkenmerk_waarde, voo.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '484', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (otar.fac_usrdata_prijs / 12, 0)) + (COALESCE (fac.safe_to_number(COALESCE (gto.alg_onrgoedkenmerk_waarde, vto.alg_onrgoedkenmerk_waarde)), DECODE (rlhkot.alg_onrgoedkenmerk_waarde, '561', COALESCE (rxo.alg_ruimte_opp_alt1, 0), 0)) * COALESCE (ttar.fac_usrdata_prijs / 12, 0)))) mndnet -- Netto maandbedrag (incl. kortingspercentage)=Campus Rent FROM (SELECT c.cnt_contract_key, c.cnt_contract_korting FROM cnt_v_aanwezigcontract c WHERE c.ins_discipline_key = 621) x -- Huurcontracten LEFT JOIN cnt_kenmerkcontract tt_kc ON x.cnt_contract_key = tt_kc.cnt_contract_key AND tt_kc.cnt_kenmerkcontract_verwijder IS NULL AND tt_kc.cnt_kenmerk_key = 23 -- Tarieftabel LEFT JOIN fac_v_aanwezigusrdata tt_ud ON tt_kc.cnt_kenmerkcontract_waarde = TO_CHAR (tt_ud.fac_usrdata_key) LEFT JOIN fac_v_aanwezigusrdata ltar ON tt_ud.fac_usrdata_code = TO_CHAR (ltar.fac_usrtab_key) AND ltar.fac_usrdata_code = 'L' -- L-Tarief LEFT JOIN fac_v_aanwezigusrdata htar ON tt_ud.fac_usrdata_code = TO_CHAR (htar.fac_usrtab_key) AND htar.fac_usrdata_code = 'H' -- H-Tarief LEFT JOIN fac_v_aanwezigusrdata ktar ON tt_ud.fac_usrdata_code = TO_CHAR (ktar.fac_usrtab_key) AND ktar.fac_usrdata_code = 'K' -- K-Tarief LEFT JOIN fac_v_aanwezigusrdata otar ON tt_ud.fac_usrdata_code = TO_CHAR (otar.fac_usrtab_key) AND otar.fac_usrdata_code = 'O' -- O-Tarief LEFT JOIN fac_v_aanwezigusrdata ttar ON tt_ud.fac_usrdata_code = TO_CHAR (ttar.fac_usrtab_key) AND ttar.fac_usrdata_code = 'T' -- T-Tarief LEFT JOIN cnt_kenmerkcontract kb_kc ON x.cnt_contract_key = kb_kc.cnt_contract_key AND kb_kc.cnt_kenmerkcontract_verwijder IS NULL AND kb_kc.cnt_kenmerk_key = 24 -- Kortingsbedrag LEFT JOIN cnt_kenmerkcontract cff_kc ON x.cnt_contract_key = cff_kc.cnt_contract_key AND cff_kc.cnt_kenmerkcontract_verwijder IS NULL AND cff_kc.cnt_kenmerk_key = 44 -- CFF-subsidie LEFT JOIN fac_v_aanwezigusrdata ccf_ud ON cff_kc.cnt_kenmerkcontract_waarde = TO_CHAR (ccf_ud.fac_usrdata_key) LEFT JOIN cnt_v_aanwezigcontract_plaats ccp ON x.cnt_contract_key = ccp.cnt_contract_key AND ccp.cnt_alg_plaats_code IN ('G', 'V', 'R') LEFT JOIN alg_v_aanwezigonrgoedkenmerk glo ON ccp.cnt_alg_plaats_key = glo.alg_onrgoed_key AND glo.alg_kenmerk_key = 1082 -- GL-Oppervlakte AND glo.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gho ON ccp.cnt_alg_plaats_key = gho.alg_onrgoed_key AND gho.alg_kenmerk_key = 1083 -- GH-Oppervlakte AND gho.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gko ON ccp.cnt_alg_plaats_key = gko.alg_onrgoed_key AND gko.alg_kenmerk_key = 1084 -- GK-Oppervlakte AND gko.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk goo ON ccp.cnt_alg_plaats_key = goo.alg_onrgoed_key AND goo.alg_kenmerk_key = 1085 -- GO-Oppervlakte AND goo.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk gto ON ccp.cnt_alg_plaats_key = gto.alg_onrgoed_key AND gto.alg_kenmerk_key = 1120 -- GT-Oppervlakte AND gto.alg_onrgoed_niveau = 'G' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vlo ON ccp.cnt_alg_plaats_key = vlo.alg_onrgoed_key AND vlo.alg_kenmerk_key = 1092 -- VL-Oppervlakte AND vlo.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vho ON ccp.cnt_alg_plaats_key = vho.alg_onrgoed_key AND vho.alg_kenmerk_key = 1093 -- VH-Oppervlakte AND vho.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vko ON ccp.cnt_alg_plaats_key = vko.alg_onrgoed_key AND vko.alg_kenmerk_key = 1094 -- VK-Oppervlakte AND vko.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk voo ON ccp.cnt_alg_plaats_key = voo.alg_onrgoed_key AND voo.alg_kenmerk_key = 1095 -- VO-Oppervlakte AND voo.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk vto ON ccp.cnt_alg_plaats_key = vto.alg_onrgoed_key AND vto.alg_kenmerk_key = 1121 -- VT-Oppervlakte AND vto.alg_onrgoed_niveau = 'V' LEFT JOIN alg_v_aanwezigonrgoedkenmerk rlhkot ON ccp.cnt_alg_plaats_key = rlhkot.alg_onrgoed_key AND rlhkot.alg_kenmerk_key = 1100 -- LHKOT Classificatie AND rlhkot.alg_onrgoed_niveau = 'R' LEFT JOIN alg_v_aanwezigruimte rxo ON ccp.cnt_alg_plaats_key = rxo.alg_ruimte_key WHERE COALESCE (cff_kc.cnt_kenmerkcontract_waarde, '534') != '534' -- NIET Nvt! GROUP BY x.cnt_contract_key, kb_kc.cnt_kenmerkcontract_waarde, ccf_ud.fac_usrdata_prijs) UNION ALL -- Alle individuele maandbedragen voor 721, 722 en 724! SELECT c.cnt_contract_key, 'Campus Rent' regel, SUM (((100 - COALESCE (c.cnt_contract_korting, 0)) / 100) * fac.safe_to_number (kc.cnt_kenmerkcontract_waarde)) mndnet -- Netto kortingsbedrag (excl. kortingspercentage)! FROM cnt_v_aanwezigcontract c, cnt_kenmerkcontract kc, cnt_kenmerk k, cnt_srtkenmerk sk WHERE c.ins_discipline_key IN (721, 722, 724) -- PP & CV+Utility infra/voorz+General infra/voorz AND c.cnt_contract_key = kc.cnt_contract_key AND kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key AND sk.cnt_srtkenmerk_key > 60 AND sk.cnt_srtkenmerk_kenmerktype = 'N' -- Numeriek AND UPPER (sk.cnt_srtkenmerk_dimensie) LIKE '%P.MND.%' GROUP BY c.cnt_contract_key UNION ALL -- Alle individuele kortingsbedragen (per maand) voor 621, 721, 722 en 724! SELECT c.cnt_contract_key, 'Campus Rent' regel, -1 * fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) mndnet -- Netto kortingsbedrag (excl. kortingspercentage)! FROM cnt_v_aanwezigcontract c, cnt_kenmerkcontract kc, cnt_kenmerk k WHERE c.ins_discipline_key IN (621, 721, 722, 724) -- Huurcontracten/PP & CV+Utility infra/voorz+General infra/voorz AND c.cnt_contract_key = kc.cnt_contract_key AND kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 44 -- Kortingsbedrag AND kc.cnt_kenmerkcontract_waarde != '0') x ON c.cnt_contract_key = x.cnt_contract_key GROUP BY p.maand, c.lv, c.lt, c.prs_bedrijf_naam, x.regel) GROUP BY prs_bedrijf_naam, regel, lv, lt, 12 * mndnet_heel, TO_CHAR (maand, 'yyyy'); CREATE OR REPLACE VIEW blcc_v_huurcontracten ( cnt_contract_key, cnt_contract_id, cnt_contract_tht ) AS SELECT DISTINCT v.cnt_contract_key, v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) || '/' || cd.ins_discipline_omschrijving || ' [' || v.prs_debiteur_naam || ']', NULL FROM blcc_v_fact_actual v, cnt_discipline cd WHERE v.sortering = TO_CHAR (cd.ins_discipline_key) UNION SELECT DISTINCT cnt_contract_key, v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) || '/' || cd.ins_discipline_omschrijving || ' [' || v.prs_debiteur_naam || ']', ADD_MONTHS (v.lv, 1) FROM blcc_v_fact_frozen v, cnt_discipline cd WHERE v.sortering = TO_CHAR (cd.ins_discipline_key); CREATE OR REPLACE VIEW blcc_v_rap_fact_vastgoedgeg AS SELECT fp.alg_onrgoed_key, fp.alg_onrgoed_type, fp.alg_gebouw_code gebouwcode, fp.alg_verdieping_volgnr verdiepingvolgnr, fp.alg_verdieping_code verdiepingcode, fp.alg_srtruimte_omschrijving ruimtefunctie, fp.alg_ruimte_nr ruimtenummer, fp.alg_ruimte_omschrijving ruimteomschrijving, fp.vvo, fp.bvo, fp.lhkot_class, c.contract FROM (SELECT g.alg_gebouw_key alg_onrgoed_key, 'G' alg_onrgoed_type, g.alg_gebouw_code, NULL alg_verdieping_volgnr, NULL alg_verdieping_code, NULL alg_srtruimte_omschrijving, NULL alg_ruimte_nr, NULL alg_ruimte_omschrijving, fac.safe_to_number (glhkot.alg_onrgoedkenmerk_waarde) vvo, NULL bvo, DECODE (glhkot.alg_kenmerk_key, 1082, 'L', 1083, 'H', 1084, 'K', 1085, 'O', 'T') lhkot_class FROM alg_v_aanweziggebouw g, alg_v_aanwezigonrgoedkenmerk glhkot WHERE g.alg_locatie_key = 1 -- CAMPUS AND g.alg_gebouw_key = glhkot.alg_onrgoed_key(+) AND glhkot.alg_kenmerk_key(+) IN (1082, 1083, 1084, 1085, 1120) -- LHKOT Oppervlakten AND glhkot.alg_onrgoed_niveau(+) = 'G' UNION ALL SELECT t.alg_terreinsector_key alg_onrgoed_key, 'T' alg_onrgoed_type, t.alg_terreinsector_code alg_gebouw_code, NULL alg_verdieping_volgnr, NULL alg_verdieping_code, NULL alg_srtruimte_omschrijving, NULL alg_ruimte_nr, NULL alg_ruimte_omschrijving, t.alg_terreinsector_oppervlak vvo, t.alg_terreinsector_oppervlak bvo, NULL lhkot_class FROM alg_v_aanwezigterreinsector t WHERE t.alg_locatie_key = 1 -- CAMPUS UNION ALL SELECT v.alg_verdieping_key alg_onrgoed_key, 'V' alg_onrgoed_type, g.alg_gebouw_code, v.alg_verdieping_volgnr, v.alg_verdieping_code, NULL alg_srtruimte_omschrijving, NULL alg_ruimte_nr, NULL alg_ruimte_omschrijving, fac.safe_to_number (vlhkot.alg_onrgoedkenmerk_waarde) vvo, NULL bvo, DECODE (vlhkot.alg_kenmerk_key, 1092, 'L', 1093, 'H', 1094, 'K', 1095, 'O', 'T') lhkot_class FROM alg_v_aanwezigverdieping v, alg_gebouw g, alg_v_aanwezigonrgoedkenmerk vlhkot WHERE v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = 1 -- CAMPUS AND v.alg_verdieping_key = vlhkot.alg_onrgoed_key(+) AND vlhkot.alg_kenmerk_key(+) IN (1092, 1093, 1094, 1095, 1121) -- LHKOT Oppervlakten AND vlhkot.alg_onrgoed_niveau(+) = 'V' UNION ALL SELECT r.alg_ruimte_key alg_onrgoed_key, 'R' alg_onrgoed_type, g.alg_gebouw_code, v.alg_verdieping_volgnr, v.alg_verdieping_code, sr.alg_srtruimte_omschrijving, r.alg_ruimte_nr, r.alg_ruimte_omschrijving, r.alg_ruimte_opp_alt1 vvo, r.alg_ruimte_bruto_vloeropp bvo, ud.fac_usrdata_code lhkot_class FROM alg_v_aanwezigruimte r, alg_srtruimte sr, alg_verdieping v, alg_gebouw g, alg_v_aanwezigonrgoedkenmerk rlhkot, fac_usrdata ud WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = 1 -- CAMPUS AND r.alg_ruimte_key = rlhkot.alg_onrgoed_key(+) AND rlhkot.alg_kenmerk_key(+) = 1100 -- LHKOT Classificatie AND rlhkot.alg_onrgoed_niveau(+) = 'R' AND rlhkot.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+))) fp -- FIN-plaatsen LEFT JOIN ( SELECT cp.cnt_alg_plaats_key, LISTAGG (c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0'), ',') WITHIN GROUP (ORDER BY c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0')) contract FROM cnt_v_aanwezigcontract c, cnt_contract_plaats cp WHERE c.ins_discipline_key = 621 -- Huurcontracten AND SYSDATE BETWEEN TRUNC (c.cnt_contract_looptijd_van) AND TRUNC (c.cnt_contract_looptijd_tot + 1) AND c.cnt_contract_status = 0 -- NIET Gesloten AND cp.cnt_contract_plaats_verwijder IS NULL AND c.cnt_contract_key = cp.cnt_contract_key GROUP BY cp.cnt_alg_plaats_key) c ON fp.alg_onrgoed_key = c.cnt_alg_plaats_key; CREATE OR REPLACE VIEW blcc_v_rap_fact_contractgeg AS WITH ck AS (SELECT sk.vnr, sk.cnt_srtkenmerk_key, sk.cnt_srtkenmerk_omschrijving, kw.cnt_contract_key, kw.waarde FROM (SELECT ROWNUM vnr, cnt_srtkenmerk_key, cnt_srtkenmerk_omschrijving FROM ( SELECT sk.cnt_srtkenmerk_key, sk.cnt_srtkenmerk_omschrijving, sk.cnt_srtkenmerk_aanmaak FROM cnt_srtkenmerk sk WHERE sk.cnt_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B') AND COALESCE (sk.cnt_srtkenmerk_verwijder, SYSDATE) > TO_DATE ('010717', 'ddmmyy') AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_srtcontract_key BETWEEN 621 AND 761 AND COALESCE (cnt_kenmerk_verwijder, SYSDATE) > TO_DATE ('010717', 'ddmmyy') AND cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key) ORDER BY 3)) sk LEFT JOIN (SELECT sk.cnt_srtkenmerk_key, ck.cnt_contract_key, DECODE (sk.cnt_srtkenmerk_kenmerktype, 'R', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, ck.cnt_kenmerkcontract_waarde), 'S', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, ck.cnt_kenmerkcontract_waarde), ck.cnt_kenmerkcontract_waarde) waarde FROM cnt_kenmerkcontract ck, cnt_kenmerk k, cnt_srtkenmerk sk WHERE ck.cnt_kenmerkcontract_verwijder IS NULL AND ck.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_verwijder IS NULL AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key) kw ON sk.cnt_srtkenmerk_key = kw.cnt_srtkenmerk_key) SELECT 0 sortering, 'Contract' contractnr, -- Inclusief versie 'Contractstatus' contractstatus, -- Nieuw 'Externnr' externnr, -- PO-nr 'Contractsoort' contractsoort, --'Beschrijving' beschrijving, --'Mantelnr' mantelnr, --'Omschrijving' omschrijving, --'Versie' versie, --'Dienst' dienst, --'Contractafdelingcode' eigenaar_afd, --'Contactpersoonlogin' eigenaar_login, --'Contractbeheerderlogin' beheerder_login, --'Opmerking' opmerking, 'Debiteurnr' debiteurnr, -- Nieuw 'Contractant' contractant, 'Ingangsdatum' ingangsdatum, 'Rappeldatum' rappeldatum, 'Opzegdatum' opzegdatum, 'Einddatum' einddatum, --'Bedrijfnaam' bedrijfnaam, -- Omhoog als contractant --'Contactnaam' contactnaam, --'Kostenplaatscode' kostenplaatscode, --'Contractbedrag' contractbedrag, --'Termijnbedrag' termijnbedrag, --'Uurtarief' uurtarief, 'Korting' korting, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 1)) kenmerk1, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 2)) kenmerk2, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 3)) kenmerk3, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 4)) kenmerk4, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 5)) kenmerk5, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 6)) kenmerk6, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 7)) kenmerk7, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 8)) kenmerk8, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 9)) kenmerk9, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 10)) kenmerk10, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 11)) kenmerk11, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 12)) kenmerk12, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 13)) kenmerk13, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 14)) kenmerk14, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 15)) kenmerk15, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 16)) kenmerk16, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 17)) kenmerk17, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 18)) kenmerk18, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 19)) kenmerk19, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 20)) kenmerk20, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 21)) kenmerk21, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 22)) kenmerk22, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 23)) kenmerk23, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 24)) kenmerk24, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 25)) kenmerk25, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 26)) kenmerk26, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 27)) kenmerk27, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 28)) kenmerk28, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 29)) kenmerk29, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 30)) kenmerk30, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 31)) kenmerk31, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 32)) kenmerk32, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 33)) kenmerk33, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 34)) kenmerk34, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 35)) kenmerk35, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 36)) kenmerk36, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 37)) kenmerk37, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 38)) kenmerk38, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 39)) kenmerk39, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 40)) kenmerk40, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 41)) kenmerk41, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 42)) kenmerk42, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 43)) kenmerk43, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 44)) kenmerk44, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 45)) kenmerk45, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 46)) kenmerk46, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 47)) kenmerk47, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 48)) kenmerk48, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 49)) kenmerk49, TO_CHAR ((SELECT MAX (cnt_srtkenmerk_omschrijving) FROM ck WHERE vnr = 50)) kenmerk50 FROM DUAL UNION ALL SELECT 1 sortering, x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') contractnr, DECODE (x.cnt_contract_status, 1, 'Gesloten', 'Actief') contractstatus, -- Nieuw x.cnt_contract_nummer externnr, x.ins_discipline_omschrijving contractsoort, --x.cnt_contract_omschrijving beschrijving, --x.mantelnr, --x.cnt_contract_document omschrijving, --x.cnt_contract_versie versie, --x.prs_dienst_omschrijving dienst, --x.prs_afdeling_naam eigenaar_afd, --x.login_eig eigenaar_login, --x.login_beh beheerder_login, --x.cnt_contract_opmerking opmerking, x.prs_overeenkomst_nr debiteurnr, x.prs_bedrijf_naam contractant, TO_CHAR (x.cnt_contract_looptijd_van, 'dd-mm-yyyy') ingangsdatum, TO_CHAR (cnt.cnt_getRappeldatum (x.cnt_contract_key), 'dd-mm-yyyy') rappeldatum, TO_CHAR (cnt.cnt_getOpzegdatum (x.cnt_contract_key), 'dd-mm-yyyy') opzegdatum, TO_CHAR (x.cnt_contract_looptijd_tot, 'dd-mm-yyyy') einddatum, --x.prs_bedrijf_naam bedrijfnaam, --x.prs_contactpersoon_naam contactnaam, --x.prs_kostenplaats_nr kostenplaatscode, --TO_CHAR (x.cnt_contract_kosten) contractbedrag, --TO_CHAR (x.cnt_contract_termijnkosten) termijnbedrag, --TO_CHAR (x.cnt_contract_uurloon) uurtarief, TO_CHAR (x.cnt_contract_korting) korting, k1.waarde kenmerk1, k2.waarde kenmerk2, k3.waarde kenmerk3, k4.waarde kenmerk4, k5.waarde kenmerk5, k6.waarde kenmerk6, k7.waarde kenmerk7, k8.waarde kenmerk8, k9.waarde kenmerk9, k10.waarde kenmerk10, k11.waarde kenmerk11, k12.waarde kenmerk12, k13.waarde kenmerk13, k14.waarde kenmerk14, k15.waarde kenmerk15, k16.waarde kenmerk16, k17.waarde kenmerk17, k18.waarde kenmerk18, k19.waarde kenmerk19, k20.waarde kenmerk20, k21.waarde kenmerk21, k22.waarde kenmerk22, k23.waarde kenmerk23, k24.waarde kenmerk24, k25.waarde kenmerk25, k26.waarde kenmerk26, k27.waarde kenmerk27, k28.waarde kenmerk28, k29.waarde kenmerk29, k30.waarde kenmerk30, k31.waarde kenmerk31, k32.waarde kenmerk32, k33.waarde kenmerk33, k34.waarde kenmerk34, k35.waarde kenmerk35, k36.waarde kenmerk36, k37.waarde kenmerk37, k38.waarde kenmerk38, k39.waarde kenmerk39, k40.waarde kenmerk40, k31.waarde kenmerk41, k32.waarde kenmerk42, k33.waarde kenmerk43, k34.waarde kenmerk44, k35.waarde kenmerk45, k36.waarde kenmerk46, k37.waarde kenmerk47, k38.waarde kenmerk48, k39.waarde kenmerk49, k40.waarde kenmerk50 FROM (SELECT c.*, cd.ins_discipline_omschrijving, cm.cnt_contract_nummer_intern mantelnr, d.prs_dienst_omschrijving, a.prs_afdeling_naam, eig.prs_perslid_oslogin login_eig, beh.prs_perslid_oslogin login_beh, b.prs_overeenkomst_nr, b.prs_bedrijf_naam, cp.prs_contactpersoon_naam, kp.prs_kostenplaats_nr FROM cnt_v_aanwezigcontract c, cnt_discipline cd, cnt_v_aanwezigcontract cm, prs_dienst d, prs_afdeling a, prs_v_aanwezigperslid eig, prs_v_aanwezigperslid beh, prs_v_aanwezigbedrijf b, prs_contactpersoon cp, prs_kostenplaats kp WHERE c.ins_discipline_key BETWEEN 621 AND 761 AND c.ins_discipline_key = cd.ins_discipline_key AND c.cnt_contract_mantel_key = cm.cnt_contract_key(+) AND c.prs_dienst_key = d.prs_dienst_key(+) AND c.prs_afdeling_key_eig = a.prs_afdeling_key AND c.prs_perslid_key_eig = eig.prs_perslid_key(+) AND c.prs_perslid_key_beh = beh.prs_perslid_key(+) AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND c.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)) x LEFT JOIN ck k1 ON x.cnt_contract_key = k1.cnt_contract_key AND k1.vnr = 1 LEFT JOIN ck k2 ON x.cnt_contract_key = k2.cnt_contract_key AND k2.vnr = 2 LEFT JOIN ck k3 ON x.cnt_contract_key = k3.cnt_contract_key AND k3.vnr = 3 LEFT JOIN ck k4 ON x.cnt_contract_key = k4.cnt_contract_key AND k4.vnr = 4 LEFT JOIN ck k5 ON x.cnt_contract_key = k5.cnt_contract_key AND k5.vnr = 5 LEFT JOIN ck k6 ON x.cnt_contract_key = k6.cnt_contract_key AND k6.vnr = 6 LEFT JOIN ck k7 ON x.cnt_contract_key = k7.cnt_contract_key AND k7.vnr = 7 LEFT JOIN ck k8 ON x.cnt_contract_key = k8.cnt_contract_key AND k8.vnr = 8 LEFT JOIN ck k9 ON x.cnt_contract_key = k9.cnt_contract_key AND k9.vnr = 9 LEFT JOIN ck k10 ON x.cnt_contract_key = k10.cnt_contract_key AND k10.vnr = 10 LEFT JOIN ck k11 ON x.cnt_contract_key = k11.cnt_contract_key AND k11.vnr = 11 LEFT JOIN ck k12 ON x.cnt_contract_key = k12.cnt_contract_key AND k12.vnr = 12 LEFT JOIN ck k13 ON x.cnt_contract_key = k13.cnt_contract_key AND k13.vnr = 13 LEFT JOIN ck k14 ON x.cnt_contract_key = k14.cnt_contract_key AND k14.vnr = 14 LEFT JOIN ck k15 ON x.cnt_contract_key = k15.cnt_contract_key AND k15.vnr = 15 LEFT JOIN ck k16 ON x.cnt_contract_key = k16.cnt_contract_key AND k16.vnr = 16 LEFT JOIN ck k17 ON x.cnt_contract_key = k17.cnt_contract_key AND k17.vnr = 17 LEFT JOIN ck k18 ON x.cnt_contract_key = k18.cnt_contract_key AND k18.vnr = 18 LEFT JOIN ck k19 ON x.cnt_contract_key = k19.cnt_contract_key AND k19.vnr = 19 LEFT JOIN ck k20 ON x.cnt_contract_key = k20.cnt_contract_key AND k20.vnr = 20 LEFT JOIN ck k21 ON x.cnt_contract_key = k21.cnt_contract_key AND k21.vnr = 21 LEFT JOIN ck k22 ON x.cnt_contract_key = k22.cnt_contract_key AND k22.vnr = 22 LEFT JOIN ck k23 ON x.cnt_contract_key = k23.cnt_contract_key AND k23.vnr = 23 LEFT JOIN ck k24 ON x.cnt_contract_key = k24.cnt_contract_key AND k24.vnr = 24 LEFT JOIN ck k25 ON x.cnt_contract_key = k25.cnt_contract_key AND k25.vnr = 25 LEFT JOIN ck k26 ON x.cnt_contract_key = k26.cnt_contract_key AND k26.vnr = 26 LEFT JOIN ck k27 ON x.cnt_contract_key = k27.cnt_contract_key AND k27.vnr = 27 LEFT JOIN ck k28 ON x.cnt_contract_key = k28.cnt_contract_key AND k28.vnr = 28 LEFT JOIN ck k29 ON x.cnt_contract_key = k29.cnt_contract_key AND k29.vnr = 29 LEFT JOIN ck k30 ON x.cnt_contract_key = k30.cnt_contract_key AND k30.vnr = 30 LEFT JOIN ck k31 ON x.cnt_contract_key = k31.cnt_contract_key AND k31.vnr = 31 LEFT JOIN ck k32 ON x.cnt_contract_key = k32.cnt_contract_key AND k32.vnr = 32 LEFT JOIN ck k33 ON x.cnt_contract_key = k33.cnt_contract_key AND k33.vnr = 33 LEFT JOIN ck k34 ON x.cnt_contract_key = k34.cnt_contract_key AND k34.vnr = 34 LEFT JOIN ck k35 ON x.cnt_contract_key = k35.cnt_contract_key AND k35.vnr = 35 LEFT JOIN ck k36 ON x.cnt_contract_key = k36.cnt_contract_key AND k36.vnr = 36 LEFT JOIN ck k37 ON x.cnt_contract_key = k37.cnt_contract_key AND k37.vnr = 37 LEFT JOIN ck k38 ON x.cnt_contract_key = k38.cnt_contract_key AND k38.vnr = 38 LEFT JOIN ck k39 ON x.cnt_contract_key = k39.cnt_contract_key AND k39.vnr = 39 LEFT JOIN ck k40 ON x.cnt_contract_key = k40.cnt_contract_key AND k40.vnr = 40 LEFT JOIN ck k41 ON x.cnt_contract_key = k41.cnt_contract_key AND k41.vnr = 41 LEFT JOIN ck k42 ON x.cnt_contract_key = k42.cnt_contract_key AND k42.vnr = 42 LEFT JOIN ck k43 ON x.cnt_contract_key = k43.cnt_contract_key AND k43.vnr = 43 LEFT JOIN ck k44 ON x.cnt_contract_key = k44.cnt_contract_key AND k44.vnr = 44 LEFT JOIN ck k45 ON x.cnt_contract_key = k45.cnt_contract_key AND k45.vnr = 45 LEFT JOIN ck k46 ON x.cnt_contract_key = k46.cnt_contract_key AND k46.vnr = 46 LEFT JOIN ck k47 ON x.cnt_contract_key = k47.cnt_contract_key AND k47.vnr = 47 LEFT JOIN ck k48 ON x.cnt_contract_key = k48.cnt_contract_key AND k48.vnr = 48 LEFT JOIN ck k49 ON x.cnt_contract_key = k49.cnt_contract_key AND k49.vnr = 49 LEFT JOIN ck k50 ON x.cnt_contract_key = k50.cnt_contract_key AND k50.vnr = 50; -- BLCC#51200: Indexatie 2018! CREATE OR REPLACE PROCEDURE blcc_export_indexwerk (p_applname IN VARCHAR2, p_applrun IN VARCHAR2, p_filedir IN VARCHAR2, p_filename IN VARCHAR2) AS -- Huurconracten+PP & CV+Utility infra/voorz+General infra/voorz+Shared facilities+Standaard FM Diensten+Utilities+IT Diensten+OZB CURSOR ccnt (p_splitsindexdatum DATE) IS SELECT '[' || c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') || '] ' aanduiding, c.ins_discipline_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot einddatum, c.cnt_contract_kosten, c.cnt_contract_termijnkosten, c.cnt_prs_bedrijf_key, DECODE (c.ins_discipline_key, 725, 2.85, -- Shared facilities in 2018: 2,85%! 729, 2.85, -- Standaard FM Diensten in 2018: 2,85%! 761, 2.85, -- OZB in 2018: 2,85%! 731, 6.0, -- Utilities in 2018: 6,0%! 1.1) -- 621+721+722+724+741 in 2018: 1,1%! index_percentage FROM cnt_v_aanwezigcontract c WHERE c.ins_discipline_key IN (621, 721, 722, 724, 725, 729, 731, 741, 761) AND c.cnt_contract_status = 0 -- NIET Gesloten! AND NOT EXISTS -- Beschouw alleen laatste versie van contracten (SELECT 1 FROM cnt_v_aanwezigcontract WHERE cnt_contract_nummer_intern = c.cnt_contract_nummer_intern AND cnt_contract_versie > COALESCE (c.cnt_contract_versie, '0')) AND c.cnt_contract_looptijd_tot > p_splitsindexdatum ORDER BY TO_NUMBER (c.cnt_contract_nummer_intern); c_index_percentage NUMBER := 1.1; -- Default/standaard in 2018: 1,1%! c_splitsindexdatum DATE := TO_DATE ('01012018', 'ddmmyyyy'); v_errorhint VARCHAR2 (1000) := ''; v_errormsg VARCHAR2 (1000) := ''; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count NUMBER; v_new_tarieftab_key NUMBER; v_old_tarieftab_key NUMBER; v_new_tarieftab_val NUMBER; v_new_contract_key NUMBER; BEGIN -- Aanmaken en indexeren tarieftabel 20xx. v_errorhint := 'Fout bepalen nieuwe tarieftabel'; SELECT COUNT ( * ) INTO v_count FROM fac_usrtab WHERE fac_usrtab_naam = 'Tarieven ' || TO_CHAR (ADD_MONTHS (SYSDATE, 12), 'yyyy'); IF v_count > 0 THEN SELECT fac_usrtab_key INTO v_new_tarieftab_key FROM fac_usrtab WHERE fac_usrtab_naam = 'Tarieven ' || TO_CHAR (ADD_MONTHS (SYSDATE, 12), 'yyyy'); ELSE v_errorhint := 'Fout toevoegen tarieftabel'; INSERT INTO fac_usrtab (fac_usrtab_naam, fac_usrtab_omschrijving) VALUES ('Tarieven ' || TO_CHAR (ADD_MONTHS (SYSDATE, 12), 'yyyy'), 'Tarieven ' || TO_CHAR (ADD_MONTHS (SYSDATE, 12), 'yyyy') || ' per jaar') RETURNING fac_usrtab_key INTO v_new_tarieftab_key; COMMIT; END IF; v_errorhint := 'Fout bepalen oude tarieftabel'; SELECT COUNT ( * ) INTO v_count FROM fac_usrtab WHERE fac_usrtab_naam = 'Tarieven ' || TO_CHAR (SYSDATE, 'yyyy'); IF v_count > 0 THEN SELECT fac_usrtab_key INTO v_old_tarieftab_key FROM fac_usrtab WHERE fac_usrtab_naam = 'Tarieven ' || TO_CHAR (SYSDATE, 'yyyy'); v_errorhint := 'Fout vullen nieuwe tarieftabel'; INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr, fac_usrdata_vervaldatum, fac_usrdata_prijs) SELECT v_new_tarieftab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr, fac_usrdata_vervaldatum, ROUND (fac_usrdata_prijs * ((100 + c_index_percentage) / 100), 2) FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = v_old_tarieftab_key ORDER BY fac_usrdata_volgnr; v_errorhint := 'Fout toevoegen nieuwe tarieftabel-entry'; INSERT INTO fac_usrdata (fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr, fac_usrdata_volgnr, fac_usrdata_vervaldatum, fac_usrdata_prijs) VALUES (223, -- Tarieftabel-tabel v_new_tarieftab_key, 'Tarieven ' || TO_CHAR (ADD_MONTHS (SYSDATE, 12), 'yyyy'), TO_CHAR (ADD_MONTHS (SYSDATE, 12), 'yy'), NULL, NULL) RETURNING fac_usrdata_key INTO v_new_tarieftab_val; END IF; -- Splitsen en indexeren (huur)contracten. FOR rc IN ccnt (c_splitsindexdatum) LOOP BEGIN v_errorhint := 'Fout splitsen contract.'; cnt.splitscontract (rc.cnt_contract_key, c_splitsindexdatum, NULL, NULL); COMMIT; -- Na splitsen de nieuwe versie indexeren. v_errorhint := 'Fout bepalen nieuwe versie.'; SELECT cnt_contract_key INTO v_new_contract_key FROM cnt_v_aanwezigcontract WHERE cnt_contract_nummer_intern = rc.cnt_contract_nummer_intern AND cnt_contract_versie > COALESCE (rc.cnt_contract_versie, '0'); v_errorhint := 'Fout bijwerken maandbedragen.'; FOR rkc IN ( SELECT kc.cnt_kenmerkcontract_key, kc.cnt_kenmerkcontract_waarde cur_waarde, ROUND (fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) * ((100 + rc.index_percentage) / 100), 2) new_waarde FROM cnt_kenmerkcontract kc, cnt_kenmerk k, cnt_srtkenmerk sk WHERE kc.cnt_contract_key = v_new_contract_key AND kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_verwijder IS NULL AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key AND sk.cnt_srtkenmerk_verwijder IS NULL AND sk.cnt_srtkenmerk_kenmerktype = 'N' AND UPPER (sk.cnt_srtkenmerk_dimensie) LIKE '%P.MND.%' AND k.cnt_kenmerk_key != 24 -- Kortingsbedrag op Huurcontracten NIET indexeren! ORDER BY k.cnt_kenmerk_volgnummer) LOOP UPDATE cnt_kenmerkcontract SET cnt_kenmerkcontract_waarde = TO_CHAR (rkc.new_waarde, '999999D99') WHERE cnt_kenmerkcontract_key = rkc.cnt_kenmerkcontract_key; END LOOP; v_errorhint := 'Fout bijwerken tarieftabel.'; IF rc.ins_discipline_key = 621 THEN UPDATE cnt_kenmerkcontract SET cnt_kenmerkcontract_waarde = v_new_tarieftab_val WHERE cnt_kenmerk_key = 23 -- Tarieftabel AND cnt_contract_key = v_new_contract_key; END IF; v_errorhint := 'Fout bijwerken index-tracking (CNTUPD).'; fac.trackaction ('CNTUPD', v_new_contract_key, NULL, NULL, 'Contract geindexeerd met ' || TO_CHAR (c_index_percentage, '0.00') || '%'); COMMIT; 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, 'W', rc.aanduiding || v_errormsg, v_errorhint); COMMIT; END; END LOOP; 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 INDEXWERK afgebroken! ' || v_errormsg, v_errorhint); END; / -- SSC-stuff!!! /* SELECT us.*, TO_DATE ('01-01-1970', 'DD-MM-YYYY') recentdatum FROM ( SELECT res_srtactiviteit_prefix || res.res_reservering_key || '/' || res.res_rsv_ruimte_volgnr res_reservering_key, res.res_reservering_key rkey, res.res_rsv_ruimte_volgnr volgnr, res.locatie locatie, res.alg_ruimte_aanduiding ruimte_aanduiding, MIN (res.datumvan) datumvan, MAX (res.datumtot) datumtot, res.organisatie organisatie, res.gastheer gastheer, res.kostenplaats kostenplaats, res.omschrijving omschrijving, res.opmerking opmerking, res.res_rsv_ruimte_satisfaction oordeel, res.res_rsv_ruimte_satisfaction_op oordeel_opm, res.res_rsv_ruimte_flag, bezoekers, res.verval, res.res_ruimte_opstel_default, res.aantal, res.res_voorziening, MAX (res.noshow) noshow, SUM (res.verwerkt_prijs) totaalprijs, MAX (res.rsv_ruimte_key) rsv_ruimte_key, MAX (res.alg_ruimte_key) alg_ruimte_key, MAX (res.categorie) categorie, MAX (res.res_item_key) res_item_key, MAX (res.res_ruimte_key) res_ruimte_key, res.res_activiteit_meteindtijd FROM (WITH thePerslid AS (SELECT prs_perslid_key, prs_perslid_telefoonnr, prs_afdeling_key, p.prs_perslid_naam || NVL2 ( p.prs_perslid_voorletters, ', ' || p.prs_perslid_voorletters, '') || NVL2 ( p.prs_perslid_tussenvoegsel, ' ' || p.prs_perslid_tussenvoegsel, '') || NVL2 ( p.prs_perslid_voornaam, ' (' || p.prs_perslid_voornaam || ')', '') naam FROM prs_perslid p), theResrsv AS (SELECT * FROM res_rsv_ruimte WHERE 1 = 1 AND res_rsv_ruimte_van < TO_DATE ('30-11-2017 23:59', 'DD-MM-YYYY HH24:MI') AND res_rsv_ruimte_tot > TO_DATE ('01-11-2017 00:00', 'DD-MM-YYYY HH24:MI') AND TRUNC (res_rsv_ruimte_van, 'DD') <= TO_DATE ('30-11-2017', 'DD-MM-YYYY') AND TRUNC (res_rsv_ruimte_tot, 'DD') >= TO_DATE ('01-11-2017', 'DD-MM-YYYY')) SELECT rrr.res_reservering_key, ruimte_geg.alg_locatie_key, l.alg_locatie_code locatie, ruimte_geg.alg_gebouw_key, ruimte_geg.alg_verdieping_key, ruimte_geg.alg_ruimte_key, COALESCE (opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_aanduiding) res_ruimte_nr, COALESCE (opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_omschrijving) alg_ruimte_aanduiding, res_geg.res_voorziening, opstelalg.res_ruimte_opstel_default, NULL, res_geg.res_reservering_van datumvan, res_geg.res_reservering_tot datumtot, pcontact.naam aanvrager, res_geg.res_ins_discipline_key, res_rsv_ruimte_omschrijving omschrijving, res_rsv_ruimte_opmerking opmerking, res_geg.res_rsv_ruimte_key rsv_ruimte_key, res_geg.res_item_key, res_geg.res_status_bo_key res_status_bo_key, res_rsv_ruimte_flag, res_geg.res_type categorie, rrr.res_rsv_ruimte_bezoekers bezoekers, phost.naam gastheer, pcontact.prs_perslid_telefoonnr, COALESCE ( (SELECT k.prs_kostenplaats_nr FROM prs_kostenplaats k WHERE rrr.prs_kostenplaats_key = k.prs_kostenplaats_key), '') kostenplaats, res_geg.aantal aantal, res_geg.rsv_ruimte_aantal, res_geg.prijs verwerkt_prijs, l.alg_district_key, rrr.res_activiteit_key, ract.res_activiteit_omschrijving res_activiteit_omschrijving, ract.res_activiteit_meteindtijd, ract.res_activiteit_upper, res_geg.stuks_prijs stuks_prijs, res_geg.btwtarief btwtarief, phost.prs_afdeling_key, (SELECT d.prs_afdeling_naam6 FROM prs_v_afdeling d WHERE phost.prs_afdeling_key = d.prs_afdeling_key) organisatie, artikelnummer, CASE WHEN COALESCE (res_rsv_ruimte_bezoekers_shown, res_rsv_ruimte_bezoekers) < res_rsv_ruimte_bezoekers THEN 1 ELSE rrr.res_rsv_ruimte_noshow END noshow, artikel_groep, res_geg.rcv_type rcv_type, res_geg.res_type res_type, res_geg.keycolumn keycolumn, (SELECT COUNT ('1') FROM res_rsv_deel rrd, res_deel resd WHERE rrd.res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key AND rrd.res_deel_key = resd.res_deel_key) + (SELECT COUNT ('2') FROM res_rsv_artikel WHERE res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key) nrObjects, rrr.res_rsv_ruimte_volgnr, rrr.res_rsv_ruimte_key, rrr.res_rsv_ruimte_ordernr, res_geg.res_ruimte_key, sa.res_srtactiviteit_prefix, COALESCE (rrr.res_rsv_ruimte_bezoekers_shown, -1) bezoekers_shown, res_geg.ingang, res_geg.verval, res_geg.ins_discipline_key, res_geg.ins_srtdeel_uitleenbaar, res_geg.ins_alg_ruimte_key_org, res_geg.res_rsv_ruimte_satisfaction, res_geg.res_rsv_ruimte_satisfaction_op, rrr.res_rsv_ruimte_afgerond FROM res_rsv_ruimte rrr, res_activiteit ract, res_srtactiviteit sa, thePerslid phost, thePerslid pcontact, alg_v_ruimte_gegevens_all ruimte_geg, ( SELECT res_ruimte_opstel_key, rr.res_ruimte_nr res_ruimte_nr, MIN (alg_ruimte_key) alg_ruimte_key, res_ruimte_opstel_default FROM res_ruimte_opstelling rro, res_alg_ruimte rar, res_ruimte rr WHERE rro.res_ruimte_key = rar.res_ruimte_key AND rr.res_ruimte_key = rar.res_ruimte_key AND rar.res_alg_ruimte_verwijder IS NULL GROUP BY res_ruimte_opstel_key, rr.res_ruimte_nr, res_ruimte_opstel_default) opstelalg, alg_locatie l, alg_district di, prs_kostenplaats k, prs_v_afdeling_boom boom, (SELECT 'R' AS res_type, 'R' AS rcv_type, rrr.res_rsv_ruimte_key, rro.res_ruimte_key, rrr.res_rsv_ruimte_key AS res_item_key, rrr.res_rsv_ruimte_van AS res_reservering_van, rrr.res_rsv_ruimte_tot AS res_reservering_tot, TO_NUMBER (NULL) AS aantal, ro.res_opstelling_omschrijving AS res_voorziening, rro.res_ruimte_opstel_default AS res_ruimte_opstel_default, rr.res_discipline_key AS res_ins_discipline_key, rrr.res_status_bo_key, TO_NUMBER (NULL) AS res_artikel_key, res.getruimteprijs (rrr.res_rsv_ruimte_key) - COALESCE (rrr.res_rsv_ruimte_korting, 0) AS prijs, TO_NUMBER (NULL) AS stuks_prijs, TO_NUMBER (NULL) AS btwtarief, 1 AS rsv_ruimte_aantal, NULL AS artikelnummer, '' AS artikel_groep, rrr.res_rsv_ruimte_key keycolumn, 1 ingang, CASE WHEN (rr.res_ruimte_vervaldatum IS NULL OR rr.res_ruimte_vervaldatum > rrr.res_rsv_ruimte_tot) THEN 1 ELSE 0 END verval, NULL ins_discipline_key, 0 ins_srtdeel_uitleenbaar, NULL ins_alg_ruimte_key_org, rrr.res_rsv_ruimte_satisfaction, rrr.res_rsv_ruimte_satisfaction_op FROM theResrsv rrr, res_ruimte_opstelling rro, res_ruimte rr, res_opstelling ro WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rro.res_ruimte_key = rr.res_ruimte_key AND rrr.res_rsv_ruimte_dirtlevel = 0 AND rro.res_opstelling_key = ro.res_opstelling_key) res_geg WHERE res_geg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_activiteit_key = ract.res_activiteit_key AND ract.res_srtactiviteit_key = sa.res_srtactiviteit_key AND res_rsv_ruimte_host_key = phost.prs_perslid_key AND res_rsv_ruimte_contact_key = pcontact.prs_perslid_key AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+) AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND ruimte_geg.alg_ruimte_key = COALESCE (rrr.alg_ruimte_key, opstelalg.alg_ruimte_key) AND l.alg_locatie_key = ruimte_geg.alg_locatie_key AND l.alg_district_key = di.alg_district_key AND pcontact.prs_afdeling_key = boom.prs_afdeling_key AND res_geg.res_ins_discipline_key IN (541) AND res_geg.res_ins_discipline_key IN (21, 59, 142, 301, 302, 303, 305, 306, 307, 308, 321, 341, 382, 383, 384, 385, 386, 541, 681, 961) UNION ALL SELECT rrr.res_reservering_key, ruimte_geg.alg_locatie_key, l.alg_locatie_code locatie, ruimte_geg.alg_gebouw_key, ruimte_geg.alg_verdieping_key, ruimte_geg.alg_ruimte_key, COALESCE (opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_aanduiding) res_ruimte_nr, COALESCE (opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_omschrijving) alg_ruimte_aanduiding, res_geg.res_voorziening, opstelalg.res_ruimte_opstel_default, NULL, res_geg.res_reservering_van datumvan, res_geg.res_reservering_tot datumtot, pcontact.naam aanvrager, res_geg.res_ins_discipline_key, res_rsv_ruimte_omschrijving omschrijving, res_rsv_ruimte_opmerking opmerking, res_geg.res_rsv_ruimte_key rsv_ruimte_key, res_geg.res_item_key, res_geg.res_status_bo_key res_status_bo_key, res_rsv_ruimte_flag, res_geg.res_type categorie, rrr.res_rsv_ruimte_bezoekers bezoekers, phost.naam gastheer, pcontact.prs_perslid_telefoonnr, COALESCE ( (SELECT k.prs_kostenplaats_nr FROM prs_kostenplaats k WHERE rrr.prs_kostenplaats_key = k.prs_kostenplaats_key), '') kostenplaats, res_geg.aantal aantal, res_geg.rsv_ruimte_aantal, res_geg.prijs verwerkt_prijs, l.alg_district_key, rrr.res_activiteit_key, ract.res_activiteit_omschrijving res_activiteit_omschrijving, ract.res_activiteit_meteindtijd, ract.res_activiteit_upper, res_geg.stuks_prijs stuks_prijs, res_geg.btwtarief btwtarief, phost.prs_afdeling_key, (SELECT d.prs_afdeling_naam6 FROM prs_v_afdeling d WHERE phost.prs_afdeling_key = d.prs_afdeling_key) organisatie, artikelnummer, CASE WHEN COALESCE (res_rsv_ruimte_bezoekers_shown, res_rsv_ruimte_bezoekers) < res_rsv_ruimte_bezoekers THEN 1 ELSE rrr.res_rsv_ruimte_noshow END noshow, artikel_groep, res_geg.rcv_type rcv_type, res_geg.res_type res_type, res_geg.keycolumn keycolumn, (SELECT COUNT ('1') FROM res_rsv_deel rrd, res_deel resd WHERE rrd.res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key AND rrd.res_deel_key = resd.res_deel_key) + (SELECT COUNT ('2') FROM res_rsv_artikel WHERE res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key) nrObjects, rrr.res_rsv_ruimte_volgnr, rrr.res_rsv_ruimte_key, rrr.res_rsv_ruimte_ordernr, res_geg.res_ruimte_key, sa.res_srtactiviteit_prefix, COALESCE (rrr.res_rsv_ruimte_bezoekers_shown, -1) bezoekers_shown, res_geg.ingang, res_geg.verval, res_geg.ins_discipline_key, res_geg.ins_srtdeel_uitleenbaar, res_geg.ins_alg_ruimte_key_org, res_geg.res_rsv_ruimte_satisfaction, res_geg.res_rsv_ruimte_satisfaction_op, rrr.res_rsv_ruimte_afgerond FROM res_rsv_ruimte rrr, res_activiteit ract, res_srtactiviteit sa, thePerslid phost, thePerslid pcontact, alg_v_ruimte_gegevens_all ruimte_geg, ( SELECT res_ruimte_opstel_key, rr.res_ruimte_nr res_ruimte_nr, MIN (alg_ruimte_key) alg_ruimte_key, res_ruimte_opstel_default FROM res_ruimte_opstelling rro, res_alg_ruimte rar, res_ruimte rr WHERE rro.res_ruimte_key = rar.res_ruimte_key AND rr.res_ruimte_key = rar.res_ruimte_key AND rar.res_alg_ruimte_verwijder IS NULL GROUP BY res_ruimte_opstel_key, rr.res_ruimte_nr, res_ruimte_opstel_default) opstelalg, alg_locatie l, alg_district di, prs_kostenplaats k, prs_v_afdeling_boom boom, (SELECT 'R' AS res_type, 'R' AS rcv_type, rrr.res_rsv_ruimte_key, rro.res_ruimte_key, rrr.res_rsv_ruimte_key AS res_item_key, rrr.res_rsv_ruimte_van AS res_reservering_van, rrr.res_rsv_ruimte_tot AS res_reservering_tot, TO_NUMBER (NULL) AS aantal, ro.res_opstelling_omschrijving AS res_voorziening, rro.res_ruimte_opstel_default AS res_ruimte_opstel_default, rr.res_discipline_key AS res_ins_discipline_key, rrr.res_status_bo_key, TO_NUMBER (NULL) AS res_artikel_key, res.getruimteprijs (rrr.res_rsv_ruimte_key) - COALESCE (rrr.res_rsv_ruimte_korting, 0) AS prijs, TO_NUMBER (NULL) AS stuks_prijs, TO_NUMBER (NULL) AS btwtarief, 1 AS rsv_ruimte_aantal, NULL AS artikelnummer, '' AS artikel_groep, rrr.res_rsv_ruimte_key keycolumn, 1 ingang, CASE WHEN (rr.res_ruimte_vervaldatum IS NULL OR rr.res_ruimte_vervaldatum > rrr.res_rsv_ruimte_tot) THEN 1 ELSE 0 END verval, NULL ins_discipline_key, 0 ins_srtdeel_uitleenbaar, NULL ins_alg_ruimte_key_org, rrr.res_rsv_ruimte_satisfaction, rrr.res_rsv_ruimte_satisfaction_op FROM theResrsv rrr, res_ruimte_opstelling rro, res_ruimte rr, res_opstelling ro WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rro.res_ruimte_key = rr.res_ruimte_key AND rrr.res_rsv_ruimte_dirtlevel = 0 AND rro.res_opstelling_key = ro.res_opstelling_key) res_geg WHERE res_geg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_activiteit_key = ract.res_activiteit_key AND ract.res_srtactiviteit_key = sa.res_srtactiviteit_key AND res_rsv_ruimte_host_key = phost.prs_perslid_key AND res_rsv_ruimte_contact_key = pcontact.prs_perslid_key AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+) AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND ruimte_geg.alg_ruimte_key = COALESCE (rrr.alg_ruimte_key, opstelalg.alg_ruimte_key) AND l.alg_locatie_key = ruimte_geg.alg_locatie_key AND l.alg_district_key = di.alg_district_key AND pcontact.prs_afdeling_key = boom.prs_afdeling_key AND res_geg.res_ins_discipline_key IN (21, 59, 142, 301, 302, 303, 305, 306, 307, 308, 321, 341, 382, 383, 384, 385, 386, 681, 961) AND l.alg_district_key IN (1, 21) AND res_geg.res_ins_discipline_key IN (21, 59, 142, 301, 302, 303, 305, 306, 307, 308, 321, 341, 382, 383, 384, 385, 386, 541, 681, 961) UNION ALL SELECT rrr.res_reservering_key, ruimte_geg.alg_locatie_key, l.alg_locatie_code locatie, ruimte_geg.alg_gebouw_key, ruimte_geg.alg_verdieping_key, ruimte_geg.alg_ruimte_key, COALESCE (opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_aanduiding) res_ruimte_nr, COALESCE (opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_omschrijving) alg_ruimte_aanduiding, res_geg.res_voorziening, opstelalg.res_ruimte_opstel_default, NULL, res_geg.res_reservering_van datumvan, res_geg.res_reservering_tot datumtot, pcontact.naam aanvrager, res_geg.res_ins_discipline_key, res_rsv_ruimte_omschrijving omschrijving, res_rsv_ruimte_opmerking opmerking, res_geg.res_rsv_ruimte_key rsv_ruimte_key, res_geg.res_item_key, res_geg.res_status_bo_key res_status_bo_key, res_rsv_ruimte_flag, res_geg.res_type categorie, rrr.res_rsv_ruimte_bezoekers bezoekers, phost.naam gastheer, pcontact.prs_perslid_telefoonnr, COALESCE ( (SELECT k.prs_kostenplaats_nr FROM prs_kostenplaats k WHERE rrr.prs_kostenplaats_key = k.prs_kostenplaats_key), '') kostenplaats, res_geg.aantal aantal, res_geg.rsv_ruimte_aantal, res_geg.prijs verwerkt_prijs, l.alg_district_key, rrr.res_activiteit_key, ract.res_activiteit_omschrijving res_activiteit_omschrijving, ract.res_activiteit_meteindtijd, ract.res_activiteit_upper, res_geg.stuks_prijs stuks_prijs, res_geg.btwtarief btwtarief, phost.prs_afdeling_key, (SELECT d.prs_afdeling_naam6 FROM prs_v_afdeling d WHERE phost.prs_afdeling_key = d.prs_afdeling_key) organisatie, artikelnummer, CASE WHEN COALESCE (res_rsv_ruimte_bezoekers_shown, res_rsv_ruimte_bezoekers) < res_rsv_ruimte_bezoekers THEN 1 ELSE rrr.res_rsv_ruimte_noshow END noshow, artikel_groep, res_geg.rcv_type rcv_type, res_geg.res_type res_type, res_geg.keycolumn keycolumn, (SELECT COUNT ('1') FROM res_rsv_deel rrd, res_deel resd WHERE rrd.res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key AND rrd.res_deel_key = resd.res_deel_key) + (SELECT COUNT ('2') FROM res_rsv_artikel WHERE res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key) nrObjects, rrr.res_rsv_ruimte_volgnr, rrr.res_rsv_ruimte_key, rrr.res_rsv_ruimte_ordernr, res_geg.res_ruimte_key, sa.res_srtactiviteit_prefix, COALESCE (rrr.res_rsv_ruimte_bezoekers_shown, -1) bezoekers_shown, res_geg.ingang, res_geg.verval, res_geg.ins_discipline_key, res_geg.ins_srtdeel_uitleenbaar, res_geg.ins_alg_ruimte_key_org, res_geg.res_rsv_ruimte_satisfaction, res_geg.res_rsv_ruimte_satisfaction_op, rrr.res_rsv_ruimte_afgerond FROM res_rsv_ruimte rrr, res_activiteit ract, res_srtactiviteit sa, thePerslid phost, thePerslid pcontact, alg_v_ruimte_gegevens_all ruimte_geg, ( SELECT res_ruimte_opstel_key, rr.res_ruimte_nr res_ruimte_nr, MIN (alg_ruimte_key) alg_ruimte_key, res_ruimte_opstel_default FROM res_ruimte_opstelling rro, res_alg_ruimte rar, res_ruimte rr WHERE rro.res_ruimte_key = rar.res_ruimte_key AND rr.res_ruimte_key = rar.res_ruimte_key AND rar.res_alg_ruimte_verwijder IS NULL GROUP BY res_ruimte_opstel_key, rr.res_ruimte_nr, res_ruimte_opstel_default) opstelalg, alg_locatie l, alg_district di, prs_kostenplaats k, prs_v_afdeling_boom boom, (SELECT 'V' AS res_type, 'CV' AS rcv_type, rrd.res_rsv_ruimte_key, (SELECT rro.res_ruimte_key FROM res_ruimte_opstelling rro WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key) AS res_ruimte_key, rrd.res_rsv_deel_key AS res_item_key, rrd.res_rsv_deel_van AS res_reservering_van, rrd.res_rsv_deel_tot AS res_reservering_tot, TO_NUMBER (NULL) AS aantal, rd.res_deel_omschrijving || CASE WHEN rd.res_deel_eenheid IS NULL THEN '' ELSE ' (' || rd.res_deel_eenheid || ')' END AS res_voorziening, NULL, rd.res_discipline_key AS res_ins_discipline_key, rrd.res_status_bo_key, TO_NUMBER (NULL) AS res_artikel_key, res.getdeelprijs (rrd.res_rsv_deel_key) AS prijs, rd.res_deel_prijs AS stuks_prijs, TO_NUMBER (NULL) AS btwtarief, TO_NUMBER (NULL) AS rsv_ruimte_aantal, NULL AS artikelnummer, '' AS artikel_groep, rrd.res_rsv_deel_key keycolumn, 1 ingang, CASE WHEN (rd.res_deel_vervaldatum IS NULL OR rd.res_deel_vervaldatum > rrr.res_rsv_ruimte_tot) THEN 1 ELSE 0 END verval, id.ins_discipline_key, isd.ins_srtdeel_uitleenbaar, id.ins_alg_ruimte_key_org, rrr.res_rsv_ruimte_satisfaction, rrr.res_rsv_ruimte_satisfaction_op FROM res_v_aanwezigrsv_deel rrd, theResrsv rrr, res_deel rd, ins_deel id, ins_srtdeel isd WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rrd.res_deel_key = rd.res_deel_key AND rrd.res_rsv_deel_dirtlevel = 0 AND rd.res_ins_deel_key = id.ins_deel_key AND id.ins_srtdeel_key = isd.ins_srtdeel_key) res_geg WHERE res_geg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_activiteit_key = ract.res_activiteit_key AND ract.res_srtactiviteit_key = sa.res_srtactiviteit_key AND res_rsv_ruimte_host_key = phost.prs_perslid_key AND res_rsv_ruimte_contact_key = pcontact.prs_perslid_key AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+) AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND ruimte_geg.alg_ruimte_key = COALESCE (rrr.alg_ruimte_key, opstelalg.alg_ruimte_key) AND l.alg_locatie_key = ruimte_geg.alg_locatie_key AND l.alg_district_key = di.alg_district_key AND pcontact.prs_afdeling_key = boom.prs_afdeling_key AND res_geg.res_ins_discipline_key IN (541) AND res_geg.res_ins_discipline_key IN (21, 59, 142, 301, 302, 303, 305, 306, 307, 308, 321, 341, 382, 383, 384, 385, 386, 541, 681, 961) UNION ALL SELECT rrr.res_reservering_key, ruimte_geg.alg_locatie_key, l.alg_locatie_code locatie, ruimte_geg.alg_gebouw_key, ruimte_geg.alg_verdieping_key, ruimte_geg.alg_ruimte_key, COALESCE (opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_aanduiding) res_ruimte_nr, COALESCE (opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_omschrijving) alg_ruimte_aanduiding, res_geg.res_voorziening, opstelalg.res_ruimte_opstel_default, NULL, res_geg.res_reservering_van datumvan, res_geg.res_reservering_tot datumtot, pcontact.naam aanvrager, res_geg.res_ins_discipline_key, res_rsv_ruimte_omschrijving omschrijving, res_rsv_ruimte_opmerking opmerking, res_geg.res_rsv_ruimte_key rsv_ruimte_key, res_geg.res_item_key, res_geg.res_status_bo_key res_status_bo_key, res_rsv_ruimte_flag, res_geg.res_type categorie, rrr.res_rsv_ruimte_bezoekers bezoekers, phost.naam gastheer, pcontact.prs_perslid_telefoonnr, COALESCE ( (SELECT k.prs_kostenplaats_nr FROM prs_kostenplaats k WHERE rrr.prs_kostenplaats_key = k.prs_kostenplaats_key), '') kostenplaats, res_geg.aantal aantal, res_geg.rsv_ruimte_aantal, res_geg.prijs verwerkt_prijs, l.alg_district_key, rrr.res_activiteit_key, ract.res_activiteit_omschrijving res_activiteit_omschrijving, ract.res_activiteit_meteindtijd, ract.res_activiteit_upper, res_geg.stuks_prijs stuks_prijs, res_geg.btwtarief btwtarief, phost.prs_afdeling_key, (SELECT d.prs_afdeling_naam6 FROM prs_v_afdeling d WHERE phost.prs_afdeling_key = d.prs_afdeling_key) organisatie, artikelnummer, CASE WHEN COALESCE (res_rsv_ruimte_bezoekers_shown, res_rsv_ruimte_bezoekers) < res_rsv_ruimte_bezoekers THEN 1 ELSE rrr.res_rsv_ruimte_noshow END noshow, artikel_groep, res_geg.rcv_type rcv_type, res_geg.res_type res_type, res_geg.keycolumn keycolumn, (SELECT COUNT ('1') FROM res_rsv_deel rrd, res_deel resd WHERE rrd.res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key AND rrd.res_deel_key = resd.res_deel_key) + (SELECT COUNT ('2') FROM res_rsv_artikel WHERE res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key) nrObjects, rrr.res_rsv_ruimte_volgnr, rrr.res_rsv_ruimte_key, rrr.res_rsv_ruimte_ordernr, res_geg.res_ruimte_key, sa.res_srtactiviteit_prefix, COALESCE (rrr.res_rsv_ruimte_bezoekers_shown, -1) bezoekers_shown, res_geg.ingang, res_geg.verval, res_geg.ins_discipline_key, res_geg.ins_srtdeel_uitleenbaar, res_geg.ins_alg_ruimte_key_org, res_geg.res_rsv_ruimte_satisfaction, res_geg.res_rsv_ruimte_satisfaction_op, rrr.res_rsv_ruimte_afgerond FROM res_rsv_ruimte rrr, res_activiteit ract, res_srtactiviteit sa, thePerslid phost, thePerslid pcontact, alg_v_ruimte_gegevens_all ruimte_geg, ( SELECT res_ruimte_opstel_key, rr.res_ruimte_nr res_ruimte_nr, MIN (alg_ruimte_key) alg_ruimte_key, res_ruimte_opstel_default FROM res_ruimte_opstelling rro, res_alg_ruimte rar, res_ruimte rr WHERE rro.res_ruimte_key = rar.res_ruimte_key AND rr.res_ruimte_key = rar.res_ruimte_key AND rar.res_alg_ruimte_verwijder IS NULL GROUP BY res_ruimte_opstel_key, rr.res_ruimte_nr, res_ruimte_opstel_default) opstelalg, alg_locatie l, alg_district di, prs_kostenplaats k, prs_v_afdeling_boom boom, (SELECT 'V' AS res_type, 'CV' AS rcv_type, rrd.res_rsv_ruimte_key, (SELECT rro.res_ruimte_key FROM res_ruimte_opstelling rro WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key) AS res_ruimte_key, rrd.res_rsv_deel_key AS res_item_key, rrd.res_rsv_deel_van AS res_reservering_van, rrd.res_rsv_deel_tot AS res_reservering_tot, TO_NUMBER (NULL) AS aantal, rd.res_deel_omschrijving || CASE WHEN rd.res_deel_eenheid IS NULL THEN '' ELSE ' (' || rd.res_deel_eenheid || ')' END AS res_voorziening, NULL, rd.res_discipline_key AS res_ins_discipline_key, rrd.res_status_bo_key, TO_NUMBER (NULL) AS res_artikel_key, res.getdeelprijs (rrd.res_rsv_deel_key) AS prijs, rd.res_deel_prijs AS stuks_prijs, TO_NUMBER (NULL) AS btwtarief, TO_NUMBER (NULL) AS rsv_ruimte_aantal, NULL AS artikelnummer, '' AS artikel_groep, rrd.res_rsv_deel_key keycolumn, 1 ingang, CASE WHEN (rd.res_deel_vervaldatum IS NULL OR rd.res_deel_vervaldatum > rrr.res_rsv_ruimte_tot) THEN 1 ELSE 0 END verval, id.ins_discipline_key, isd.ins_srtdeel_uitleenbaar, id.ins_alg_ruimte_key_org, rrr.res_rsv_ruimte_satisfaction, rrr.res_rsv_ruimte_satisfaction_op FROM res_v_aanwezigrsv_deel rrd, theResrsv rrr, res_deel rd, ins_deel id, ins_srtdeel isd WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rrd.res_deel_key = rd.res_deel_key AND rrd.res_rsv_deel_dirtlevel = 0 AND rd.res_ins_deel_key = id.ins_deel_key AND id.ins_srtdeel_key = isd.ins_srtdeel_key) res_geg WHERE res_geg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_activiteit_key = ract.res_activiteit_key AND ract.res_srtactiviteit_key = sa.res_srtactiviteit_key AND res_rsv_ruimte_host_key = phost.prs_perslid_key AND res_rsv_ruimte_contact_key = pcontact.prs_perslid_key AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+) AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND ruimte_geg.alg_ruimte_key = COALESCE (rrr.alg_ruimte_key, opstelalg.alg_ruimte_key) AND l.alg_locatie_key = ruimte_geg.alg_locatie_key AND l.alg_district_key = di.alg_district_key AND pcontact.prs_afdeling_key = boom.prs_afdeling_key AND res_geg.res_ins_discipline_key IN (21, 59, 142, 301, 302, 303, 305, 306, 307, 308, 321, 341, 382, 383, 384, 385, 386, 681, 961) AND l.alg_district_key IN (1, 21) AND res_geg.res_ins_discipline_key IN (21, 59, 142, 301, 302, 303, 305, 306, 307, 308, 321, 341, 382, 383, 384, 385, 386, 541, 681, 961) UNION ALL SELECT rrr.res_reservering_key, ruimte_geg.alg_locatie_key, l.alg_locatie_code locatie, ruimte_geg.alg_gebouw_key, ruimte_geg.alg_verdieping_key, ruimte_geg.alg_ruimte_key, COALESCE (opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_aanduiding) res_ruimte_nr, COALESCE (opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_omschrijving) alg_ruimte_aanduiding, res_geg.res_voorziening, opstelalg.res_ruimte_opstel_default, NULL, res_geg.res_reservering_van datumvan, res_geg.res_reservering_tot datumtot, pcontact.naam aanvrager, res_geg.res_ins_discipline_key, res_rsv_ruimte_omschrijving omschrijving, res_rsv_ruimte_opmerking opmerking, res_geg.res_rsv_ruimte_key rsv_ruimte_key, res_geg.res_item_key, res_geg.res_status_bo_key res_status_bo_key, res_rsv_ruimte_flag, res_geg.res_type categorie, rrr.res_rsv_ruimte_bezoekers bezoekers, phost.naam gastheer, pcontact.prs_perslid_telefoonnr, COALESCE ( (SELECT k.prs_kostenplaats_nr FROM prs_kostenplaats k WHERE rrr.prs_kostenplaats_key = k.prs_kostenplaats_key), '') kostenplaats, res_geg.aantal aantal, res_geg.rsv_ruimte_aantal, res_geg.prijs verwerkt_prijs, l.alg_district_key, rrr.res_activiteit_key, ract.res_activiteit_omschrijving res_activiteit_omschrijving, ract.res_activiteit_meteindtijd, ract.res_activiteit_upper, res_geg.stuks_prijs stuks_prijs, res_geg.btwtarief btwtarief, phost.prs_afdeling_key, (SELECT d.prs_afdeling_naam6 FROM prs_v_afdeling d WHERE phost.prs_afdeling_key = d.prs_afdeling_key) organisatie, artikelnummer, CASE WHEN COALESCE (res_rsv_ruimte_bezoekers_shown, res_rsv_ruimte_bezoekers) < res_rsv_ruimte_bezoekers THEN 1 ELSE rrr.res_rsv_ruimte_noshow END noshow, artikel_groep, res_geg.rcv_type rcv_type, res_geg.res_type res_type, res_geg.keycolumn keycolumn, (SELECT COUNT ('1') FROM res_rsv_deel rrd, res_deel resd WHERE rrd.res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key AND rrd.res_deel_key = resd.res_deel_key) + (SELECT COUNT ('2') FROM res_rsv_artikel WHERE res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key) nrObjects, rrr.res_rsv_ruimte_volgnr, rrr.res_rsv_ruimte_key, rrr.res_rsv_ruimte_ordernr, res_geg.res_ruimte_key, sa.res_srtactiviteit_prefix, COALESCE (rrr.res_rsv_ruimte_bezoekers_shown, -1) bezoekers_shown, res_geg.ingang, res_geg.verval, res_geg.ins_discipline_key, res_geg.ins_srtdeel_uitleenbaar, res_geg.ins_alg_ruimte_key_org, res_geg.res_rsv_ruimte_satisfaction, res_geg.res_rsv_ruimte_satisfaction_op, rrr.res_rsv_ruimte_afgerond FROM res_rsv_ruimte rrr, res_activiteit ract, res_srtactiviteit sa, thePerslid phost, thePerslid pcontact, alg_v_ruimte_gegevens_all ruimte_geg, ( SELECT res_ruimte_opstel_key, rr.res_ruimte_nr res_ruimte_nr, MIN (alg_ruimte_key) alg_ruimte_key, res_ruimte_opstel_default FROM res_ruimte_opstelling rro, res_alg_ruimte rar, res_ruimte rr WHERE rro.res_ruimte_key = rar.res_ruimte_key AND rr.res_ruimte_key = rar.res_ruimte_key AND rar.res_alg_ruimte_verwijder IS NULL GROUP BY res_ruimte_opstel_key, rr.res_ruimte_nr, res_ruimte_opstel_default) opstelalg, alg_locatie l, alg_district di, prs_kostenplaats k, prs_v_afdeling_boom boom, (SELECT 'C' AS res_type, 'CV' AS rcv_type, rra.res_rsv_ruimte_key, (SELECT rro.res_ruimte_key FROM res_ruimte_opstelling rro WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key) AS res_ruimte_key, res_rsv_artikel_key AS res_item_key, rra.res_rsv_artikel_levering AS res_reservering_van, res_rsv_ruimte_tot AS res_reservering_tot, rra.res_rsv_artikel_aantal AS aantal, LTRIM (ra.res_artikel_omschrijving) || CASE WHEN ra.res_artikel_eenheid IS NULL THEN '' ELSE ' (' || ra.res_artikel_eenheid || ')' END AS res_voorziening, NULL, ra.res_discipline_key AS res_ins_discipline_key, rra.res_status_bo_key, ra.res_artikel_key AS res_artikel_key, res.getartikelprijs (rra.res_rsv_artikel_key) AS prijs, ra.res_artikel_prijs AS stuks_prijs, ra.res_artikel_btw AS btwtarief, TO_NUMBER (NULL) AS rsv_ruimte_aantal, ra.res_artikel_nr AS artikelnummer, ra.res_artikel_groep AS artikel_groep, rra.res_rsv_artikel_key keycolumn, CASE WHEN (ra.res_artikel_ingangsdatum IS NULL OR ra.res_artikel_ingangsdatum <= rrr.res_rsv_ruimte_van) THEN 1 ELSE 0 END ingang, CASE WHEN (ra.res_artikel_vervaldatum IS NULL OR ra.res_artikel_vervaldatum > rrr.res_rsv_ruimte_tot) THEN 1 ELSE 0 END verval, NULL ins_discipline_key, 0 ins_srtdeel_uitleenbaar, NULL ins_alg_ruimte_key_org, rrr.res_rsv_ruimte_satisfaction, rrr.res_rsv_ruimte_satisfaction_op FROM res_v_aanwezigrsv_artikel rra, theResrsv rrr, res_artikel ra WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rra.res_rsv_artikel_dirtlevel = 0 AND rra.res_artikel_key = ra.res_artikel_key) res_geg WHERE res_geg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_activiteit_key = ract.res_activiteit_key AND ract.res_srtactiviteit_key = sa.res_srtactiviteit_key AND res_rsv_ruimte_host_key = phost.prs_perslid_key AND res_rsv_ruimte_contact_key = pcontact.prs_perslid_key AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+) AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND ruimte_geg.alg_ruimte_key = COALESCE (rrr.alg_ruimte_key, opstelalg.alg_ruimte_key) AND l.alg_locatie_key = ruimte_geg.alg_locatie_key AND l.alg_district_key = di.alg_district_key AND pcontact.prs_afdeling_key = boom.prs_afdeling_key AND res_geg.res_ins_discipline_key IN (541) AND res_geg.res_ins_discipline_key IN (21, 59, 142, 301, 302, 303, 305, 306, 307, 308, 321, 341, 382, 383, 384, 385, 386, 541, 681, 961) UNION ALL SELECT rrr.res_reservering_key, ruimte_geg.alg_locatie_key, l.alg_locatie_code locatie, ruimte_geg.alg_gebouw_key, ruimte_geg.alg_verdieping_key, ruimte_geg.alg_ruimte_key, COALESCE (opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_aanduiding) res_ruimte_nr, COALESCE (opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_omschrijving) alg_ruimte_aanduiding, res_geg.res_voorziening, opstelalg.res_ruimte_opstel_default, NULL, res_geg.res_reservering_van datumvan, res_geg.res_reservering_tot datumtot, pcontact.naam aanvrager, res_geg.res_ins_discipline_key, res_rsv_ruimte_omschrijving omschrijving, res_rsv_ruimte_opmerking opmerking, res_geg.res_rsv_ruimte_key rsv_ruimte_key, res_geg.res_item_key, res_geg.res_status_bo_key res_status_bo_key, res_rsv_ruimte_flag, res_geg.res_type categorie, rrr.res_rsv_ruimte_bezoekers bezoekers, phost.naam gastheer, pcontact.prs_perslid_telefoonnr, COALESCE ( (SELECT k.prs_kostenplaats_nr FROM prs_kostenplaats k WHERE rrr.prs_kostenplaats_key = k.prs_kostenplaats_key), '') kostenplaats, res_geg.aantal aantal, res_geg.rsv_ruimte_aantal, res_geg.prijs verwerkt_prijs, l.alg_district_key, rrr.res_activiteit_key, ract.res_activiteit_omschrijving res_activiteit_omschrijving, ract.res_activiteit_meteindtijd, ract.res_activiteit_upper, res_geg.stuks_prijs stuks_prijs, res_geg.btwtarief btwtarief, phost.prs_afdeling_key, (SELECT d.prs_afdeling_naam6 FROM prs_v_afdeling d WHERE phost.prs_afdeling_key = d.prs_afdeling_key) organisatie, artikelnummer, CASE WHEN COALESCE (res_rsv_ruimte_bezoekers_shown, res_rsv_ruimte_bezoekers) < res_rsv_ruimte_bezoekers THEN 1 ELSE rrr.res_rsv_ruimte_noshow END noshow, artikel_groep, res_geg.rcv_type rcv_type, res_geg.res_type res_type, res_geg.keycolumn keycolumn, (SELECT COUNT ('1') FROM res_rsv_deel rrd, res_deel resd WHERE rrd.res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key AND rrd.res_deel_key = resd.res_deel_key) + (SELECT COUNT ('2') FROM res_rsv_artikel WHERE res_rsv_ruimte_key = res_geg.res_rsv_ruimte_key) nrObjects, rrr.res_rsv_ruimte_volgnr, rrr.res_rsv_ruimte_key, rrr.res_rsv_ruimte_ordernr, res_geg.res_ruimte_key, sa.res_srtactiviteit_prefix, COALESCE (rrr.res_rsv_ruimte_bezoekers_shown, -1) bezoekers_shown, res_geg.ingang, res_geg.verval, res_geg.ins_discipline_key, res_geg.ins_srtdeel_uitleenbaar, res_geg.ins_alg_ruimte_key_org, res_geg.res_rsv_ruimte_satisfaction, res_geg.res_rsv_ruimte_satisfaction_op, rrr.res_rsv_ruimte_afgerond FROM res_rsv_ruimte rrr, res_activiteit ract, res_srtactiviteit sa, thePerslid phost, thePerslid pcontact, alg_v_ruimte_gegevens_all ruimte_geg, ( SELECT res_ruimte_opstel_key, rr.res_ruimte_nr res_ruimte_nr, MIN (alg_ruimte_key) alg_ruimte_key, res_ruimte_opstel_default FROM res_ruimte_opstelling rro, res_alg_ruimte rar, res_ruimte rr WHERE rro.res_ruimte_key = rar.res_ruimte_key AND rr.res_ruimte_key = rar.res_ruimte_key AND rar.res_alg_ruimte_verwijder IS NULL GROUP BY res_ruimte_opstel_key, rr.res_ruimte_nr, res_ruimte_opstel_default) opstelalg, alg_locatie l, alg_district di, prs_kostenplaats k, prs_v_afdeling_boom boom, (SELECT 'C' AS res_type, 'CV' AS rcv_type, rra.res_rsv_ruimte_key, (SELECT rro.res_ruimte_key FROM res_ruimte_opstelling rro WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key) AS res_ruimte_key, res_rsv_artikel_key AS res_item_key, rra.res_rsv_artikel_levering AS res_reservering_van, res_rsv_ruimte_tot AS res_reservering_tot, rra.res_rsv_artikel_aantal AS aantal, LTRIM (ra.res_artikel_omschrijving) || CASE WHEN ra.res_artikel_eenheid IS NULL THEN '' ELSE ' (' || ra.res_artikel_eenheid || ')' END AS res_voorziening, NULL, ra.res_discipline_key AS res_ins_discipline_key, rra.res_status_bo_key, ra.res_artikel_key AS res_artikel_key, res.getartikelprijs (rra.res_rsv_artikel_key) AS prijs, ra.res_artikel_prijs AS stuks_prijs, ra.res_artikel_btw AS btwtarief, TO_NUMBER (NULL) AS rsv_ruimte_aantal, ra.res_artikel_nr AS artikelnummer, ra.res_artikel_groep AS artikel_groep, rra.res_rsv_artikel_key keycolumn, CASE WHEN (ra.res_artikel_ingangsdatum IS NULL OR ra.res_artikel_ingangsdatum <= rrr.res_rsv_ruimte_van) THEN 1 ELSE 0 END ingang, CASE WHEN (ra.res_artikel_vervaldatum IS NULL OR ra.res_artikel_vervaldatum > rrr.res_rsv_ruimte_tot) THEN 1 ELSE 0 END verval, NULL ins_discipline_key, 0 ins_srtdeel_uitleenbaar, NULL ins_alg_ruimte_key_org, rrr.res_rsv_ruimte_satisfaction, rrr.res_rsv_ruimte_satisfaction_op FROM res_v_aanwezigrsv_artikel rra, theResrsv rrr, res_artikel ra WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rra.res_rsv_artikel_dirtlevel = 0 AND rra.res_artikel_key = ra.res_artikel_key) res_geg WHERE res_geg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_activiteit_key = ract.res_activiteit_key AND ract.res_srtactiviteit_key = sa.res_srtactiviteit_key AND res_rsv_ruimte_host_key = phost.prs_perslid_key AND res_rsv_ruimte_contact_key = pcontact.prs_perslid_key AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+) AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND ruimte_geg.alg_ruimte_key = COALESCE (rrr.alg_ruimte_key, opstelalg.alg_ruimte_key) AND l.alg_locatie_key = ruimte_geg.alg_locatie_key AND l.alg_district_key = di.alg_district_key AND pcontact.prs_afdeling_key = boom.prs_afdeling_key AND res_geg.res_ins_discipline_key IN (21, 59, 142, 301, 302, 303, 305, 306, 307, 308, 321, 341, 382, 383, 384, 385, 386, 681, 961) AND l.alg_district_key IN (1, 21) AND res_geg.res_ins_discipline_key IN (21, 59, 142, 301, 302, 303, 305, 306, 307, 308, 321, 341, 382, 383, 384, 385, 386, 541, 681, 961)) res GROUP BY res_srtactiviteit_prefix || res_reservering_key || '/' || res.res_rsv_ruimte_volgnr, res.res_reservering_key, res.res_reservering_key || '/' || res.res_rsv_ruimte_volgnr, res_rsv_ruimte_volgnr, locatie, alg_ruimte_aanduiding, datumvan, organisatie, gastheer, kostenplaats, omschrijving, opmerking, res.res_rsv_ruimte_satisfaction, res.res_rsv_ruimte_satisfaction_op, noshow, res_ruimte_key, res_rsv_ruimte_flag, bezoekers, verval, res_ruimte_opstel_default, aantal, res_voorziening, res_activiteit_meteindtijd) us ORDER BY rkey || '/' || volgnr; */ CREATE OR REPLACE VIEW blcc_v_rap_ssc_cat_looplijst ( resnr, activiteit, --locatie, ruimte, datum, van, tot, reslev, organisatie, gastheer, kostenplaats, --costcenter, omschrijving, aantal, artikelnr, artikeloms, deelnemers ) AS SELECT x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr resnr, x.res_activiteit_omschrijving activiteit, --NULL locatie, COALESCE (rr.res_ruimte_omschrijving, rg.alg_ruimte_omschrijving) ruimte, x.res_rsv_ruimte_van, x.res_rsv_ruimte_van, x.res_rsv_ruimte_tot, x.reslev, (SELECT prs_afdeling_omschrijving FROM prs_afdeling WHERE prs_afdeling_key = x.prs_afdeling_key) organisatie, x.prs_perslid_naam_full gastheer, x.prs_kostenplaats_omschrijving kostenplaats, --(SELECT MAX (kw.res_kenmerkreservering_waarde) -- FROM res_kenmerkwaarde kw, res_kenmerk rk -- WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key -- AND kw.res_kenmerkwaarde_verwijder IS NULL -- AND kw.res_kenmerk_key = rk.res_kenmerk_key -- AND rk.res_srtkenmerk_key = 1) -- costcenter, x.res_rsv_ruimte_omschrijving omschrijving, x.res_rsv_artikel_aantal, x.res_artikel_nr, x.res_artikel_omschrijving, x.res_rsv_ruimte_bezoekers FROM (SELECT rrr.res_rsv_ruimte_key, rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr, act.res_activiteit_omschrijving, COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) res_ruimte_key, COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) alg_ruimte_key, rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot, rra.res_rsv_artikel_levering reslev, COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) prs_afdeling_key, pf.prs_perslid_naam_full, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kl.prs_kenmerklink_waarde, rrr.res_rsv_ruimte_omschrijving, rra.res_rsv_artikel_aantal, ra.res_artikel_nr, ra.res_artikel_omschrijving, rrr.res_rsv_ruimte_bezoekers FROM res_rsv_ruimte rrr, res_activiteit act, 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, alg_v_allonroerendgoed aog, prs_v_perslid_fullnames_all pf, prs_kostenplaats kp, prs_perslid p, prs_v_afdeling_boom ab, prs_kenmerklink kl, res_v_aanwezigrsv_artikel rra, res_artikel ra WHERE rrr.res_rsv_ruimte_dirtlevel = 0 AND rrr.res_activiteit_key = act.res_activiteit_key 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 21 -- SSC AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer 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_dirtlevel = 0 AND rra.res_rsv_artikel_levering > TO_DATE ('20171101', 'yyyymmdd') AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'IW') + 21) x LEFT JOIN res_ruimte rr ON x.res_ruimte_key = rr.res_ruimte_key LEFT JOIN alg_v_ruimte_gegevens_all rg ON x.alg_ruimte_key = rg.alg_ruimte_key; CREATE OR REPLACE VIEW blcc_v_rap_ssc_cat_factlijst ( resnr, datum, organisatie, gastheer, kostenplaats, --costcenter, omschrijving, totaal ) AS -- Catering gegroepeerd per reservering SELECT res_id, TRUNC (reslev), prs_afdeling_omschrijving organisatie, prs_perslid_naam_full gastheer, prs_kostenplaats_omschrijving kostenplaats, --(SELECT MAX (kw.res_kenmerkreservering_waarde) -- FROM res_kenmerkwaarde kw, res_kenmerk rk -- WHERE kw.res_rsv_ruimte_key = res_rsv_ruimte_key -- AND kw.res_kenmerkwaarde_verwijder IS NULL -- AND kw.res_kenmerk_key = rk.res_kenmerk_key -- AND rk.res_srtkenmerk_key = 1) -- costcenter, res_rsv_ruimte_omschrijving omschrijving, SUM (COALESCE (verw_prijs, prijs)) FROM (SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id, rra.res_rsv_artikel_levering reslev, prs_afdeling_omschrijving, pf.prs_perslid_naam_full, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, rrr.res_rsv_ruimte_omschrijving, 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, alg_v_allonroerendgoed aog, prs_v_perslid_fullnames_all pf, prs_kostenplaats kp, prs_perslid p, prs_afdeling a, prs_v_afdeling_boom ab, prs_kenmerklink kl, res_v_aanwezigrsv_artikel rra, res_artikel ra, res_discipline rd, res_disc_params dp, prs_bedrijf b, prs_kostensoort ks WHERE rrr.res_rsv_ruimte_dirtlevel = 0 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 COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key AND aog.alg_locatie_key = 21 -- SSC AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key AND p.prs_afdeling_key = a.prs_afdeling_key AND p.prs_afdeling_key = ab.prs_afdeling_key AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+) AND kl.prs_kenmerklink_niveau(+) = 'A' AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key --AND rra.res_rsv_artikel_verwerkt IS NULL AND rra.res_artikel_key = ra.res_artikel_key AND ra.res_discipline_key = rd.ins_discipline_key AND rd.ins_discipline_key = dp.res_ins_discipline_key AND dp.prs_bedrijf_key = b.prs_bedrijf_key AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+) AND rra.res_rsv_artikel_dirtlevel = 0 AND rra.res_rsv_artikel_levering > TO_DATE ('20171101', 'yyyymmdd') AND rra.res_rsv_artikel_levering < SYSDATE) GROUP BY res_id, TRUNC (reslev), prs_afdeling_omschrijving, prs_perslid_naam_full, prs_kostenplaats_omschrijving, res_rsv_ruimte_omschrijving; ------ payload end ------ SET DEFINE OFF BEGIN adm.systrackscriptId ('$Id$', 0); END; / COMMIT; SET ECHO OFF SPOOL OFF SET DEFINE ON PROMPT Logfile of this upgrade is: &fcltlogfile