Files
Customer/BLCC/blcc.sql
Maarten van der Heide 65f3687531 BLCC#55646 Opdrachten workflows+BLCC#56408 ADDD-export/Wekelijks regime Klantwensen
svn path=/Customer/trunk/; revision=42763
2019-05-28 15:01:58 +00:00

9180 lines
506 KiB
MySQL
Raw Blame History

--
-- $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 PACKAGE BLCC
IS
PROCEDURE mld_after_insert (p_melding_key IN NUMBER);
PROCEDURE freezeopdrachten (p_kpn IN VARCHAR2);
END;
/
CREATE OR REPLACE PACKAGE BODY BLCC
IS
-- Procedure om bij aanmaken van de melding te kijken of er al een oudere
-- melding is met dezelfde externe referentie (zonder volgnummer).
PROCEDURE mld_after_insert (p_melding_key IN NUMBER)
AS
v_melding_key NUMBER;
BEGIN
SELECT (SELECT MIN (m2.mld_melding_key)
FROM mld_melding m2
WHERE SUBSTR (m2.mld_melding_externnr, 1, INSTR (m2.mld_melding_externnr, '/')) =
SUBSTR (m1.mld_melding_externnr, 1, INSTR (m1.mld_melding_externnr, '/'))
AND m1.mld_melding_key > m2.mld_melding_key)
refe
INTO v_melding_key
FROM mld_melding m1
WHERE m1.mld_melding_externnr IS NOT NULL
AND m1.mld_melding_status = 2
AND m1.mld_melding_key = p_melding_key;
IF v_melding_key IS NOT NULL
THEN
DBMS_OUTPUT.put_line ('Melding update ' || p_melding_key || '-' || v_melding_key);
UPDATE mld_melding
SET mld_melding_omschrijving =
'Startmelding met zelfde extern nummer: melding '
|| v_melding_key
|| CHR (13)
|| CHR (10)
|| SUBSTR (mld_melding_omschrijving, 1, 3920)
WHERE mld_melding_key = p_melding_key
AND COALESCE (mld_melding_opmerking, 'QueQeLeQue') NOT LIKE
'Startmelding met zelfde extern nummer: melding %'
AND COALESCE (mld_melding_omschrijving, 'QueQeLeQue') NOT LIKE
'Startmelding met zelfde extern nummer: melding %';
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN;
END;
PROCEDURE freezeopdrachten (p_kpn IN VARCHAR2)
AS
-- Cursor loopt over alle opdrachten op Kostenplaats 'p_kpn' die zijn
-- afgerond; deze worden verwerkt en vannacht doorgezet naar ProQuro!
CURSOR c1
IS
SELECT mld_opdr_key
FROM mld_opdr o, prs_kostenplaats kp, prs_kostenplaatsgrp kpg
WHERE o.mld_typeopdr_key = 101 -- WO
AND o.mld_statusopdr_key = 9 -- KV
--AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
AND COALESCE (kpg.prs_kostenplaatsgrp_nr, SUBSTR (kp.prs_kostenplaats_nr, 1, 5)) = p_kpn
ORDER BY 1;
c_applname VARCHAR2 (50) := 'FREEZE_OPDR';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER (10);
v_count_upd NUMBER (10);
v_bedrijf_naam VARCHAR2 (30);
BEGIN
v_count_upd := 0;
v_errormsg := 'Fout bijwerken opdrachtstatus.';
-- Opdrachten op Kostenplaats 'p_kpn' verwerken en zodoende markeren om
-- vannacht door te zetten via PROQURO-export!
FOR rec IN c1
LOOP
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 4);
v_count_upd := v_count_upd + 1;
COMMIT;
END LOOP;
fac.writelog (c_applname, 'S', 'Proces: ' || TO_CHAR (v_count_upd) || ' opdrachten bevroren', '');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', v_errormsg, '');
COMMIT;
END freezeopdrachten;
END;
/
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);
-- BLCC#55646: De Afgemelde Kostenraming-opdrachten <= Mandaat van Leverancier
-- automatisch Afronden=Goedkeuren <20>n aanmaken Workorder.
CREATE OR REPLACE PROCEDURE blcc_select_raming2wo (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR c1
IS
SELECT '[' || TO_CHAR (o.mld_melding_key) || '|' || TO_CHAR (o.mld_opdr_key) || '] '
aanduiding,
o.mld_melding_key,
o.mld_opdr_key,
o.mld_uitvoerende_keys,
o.prs_contactpersoon_key,
o.mld_opdr_omschrijving,
o.prs_kostenplaats_key,
o.mld_opdr_kosten
FROM mld_opdr o, prs_bedrijf b, prs_v_aanwezigkenmerklink kl
WHERE o.mld_typeopdr_key = 1261 -- Kostenraming
AND o.mld_statusopdr_key = 6 -- Afgemeld
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND b.prs_bedrijf_key = kl.prs_link_key
AND kl.prs_kenmerklink_niveau = 'B'
AND kl.prs_kenmerk_key = 1140 -- Mandaat
AND o.mld_opdr_kosten <= fac.safe_to_number (kl.prs_kenmerklink_waarde)
AND NOT EXISTS -- Geen andere lopende Kostenraming!
(SELECT 1
FROM mld_opdr
WHERE mld_melding_key = o.mld_melding_key
AND mld_opdr_key != o.mld_opdr_key
AND mld_typeopdr_key = 1261 -- Kostenraming
AND mld_statusopdr_key IN (3, 4, 5, 6, 8, 10))
ORDER BY 1;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_opdr_dagen NUMBER (3);
v_kostenplaats_nr VARCHAR2 (30);
v_budgethouder_key NUMBER (10);
v_opdr_key NUMBER (10);
v_srtnoti_oms VARCHAR2 (4000);
v_count_tot NUMBER (10) := 0;
v_count_upd NUMBER (10) := 0;
BEGIN
-- Eerst opruiming
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname
AND imp_log_datum < TRUNC (SYSDATE - 7, 'iw');
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_errormsg := 'Fout afronden Kostenraming.';
MLD.setopdrachtstatus (rec.mld_opdr_key, 9, 4); -- Afronden
MLD.updatemeldingstatus (rec.mld_melding_key, 0, 4);
v_errormsg := 'Fout bepalen uitvoertijd.';
SELECT sm.mld_stdmelding_t_uitvoertijd.tijdsduur
INTO v_opdr_dagen
FROM mld_melding m, mld_stdmelding sm, ins_tab_discipline td, mld_disc_params dp
WHERE m.mld_melding_key = rec.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_discipline_key = dp.mld_ins_discipline_key;
v_errormsg := 'Fout bepalen kostenplaats.';
SELECT prs_kostenplaats_nr
INTO v_kostenplaats_nr
FROM prs_kostenplaats
WHERE prs_kostenplaats_key = rec.prs_kostenplaats_key;
v_errormsg := 'Fout bepalen budgethouder.';
v_budgethouder_key := prs.getkpverantwoordelijke (rec.prs_kostenplaats_key, 2, -1);
IF (v_budgethouder_key = -1)
THEN
fac.writelog (p_applname, 'E', rec.aanduiding || 'Budgethouder ongedefinieerd.', '');
COMMIT;
END IF;
--SELECT COUNT(*) cnt FROM prs_bedrijfdienstlocatie bdl WHERE bdl.prs_bdl_t_uitvoertijd.tijdsduur IS NOT NULL
--SELECT b.prs_bedrijf_t_uitvoertijd.tijdsduur tijdsduur , b.prs_bedrijf_t_uitvoertijd.eenheid eenheid FROM prs_bedrijf b WHERE b.prs_bedrijf_key=192
--SELECT m.mld_melding_t_uitvoertijd.tijdsduur tijdsduur , m.mld_melding_t_uitvoertijd.eenheid eenheid FROM mld_melding m WHERE m.mld_melding_key=21055
v_errormsg := 'Fout toevoegen Workorder.';
INSERT INTO mld_opdr (mld_opdr_datumbegin,
mld_opdr_einddatum,
mld_uitvoerende_keys,
prs_contactpersoon_key,
mld_typeopdr_key,
prs_perslid_key,
mld_opdr_omschrijving,
mld_opdr_materiaal,
mld_opdr_uren,
mld_opdr_uurloon,
mld_opdr_kosten,
prs_kostenplaats_key,
mld_melding_key,
mld_opdr_module,
mld_opdr_bedrijfopdr_volgnr,
mld_opdr_teverzenden,
mld_opdr_contactpersoon)
VALUES (SYSDATE,
FAC.datumtijdplusuitvoertijd (SYSDATE, COALESCE (v_opdr_dagen, 0), 'DAGEN'),
rec.mld_uitvoerende_keys,
rec.prs_contactpersoon_key,
101, -- Workorder
4, -- Facilitor
rec.mld_opdr_omschrijving,
rec.mld_opdr_kosten,
0,
0,
rec.mld_opdr_kosten,
rec.prs_kostenplaats_key,
rec.mld_melding_key,
'MLD',
MLD.bepaalopdrmeldingvolgnr (rec.mld_melding_key),
1,
NULL)
RETURNING mld_opdr_key
INTO v_opdr_key;
v_errormsg := 'Fout kopieren kenmerkvelden.';
--TODO
-- Automatisch aangemaakte Workorders (uit Kostenramingen) nooit Ter
-- goedkeuring (want onder Mandaat van Leverancier), maar direct Ter
-- fiattering of Toegekend (afhankelijk van 50900-kostenplaats).
-- TODO: Of toch inbouwen goedkeuring indien noodzakelijk?
IF v_kostenplaats_nr LIKE '50900%'
THEN
-- Ongeacht kosten ALTIJD 'Ter fiattering' (of budgethouder wel of
-- niet bestaat doet er niet toe)!
v_errormsg := 'Fout ter fiat Workorder.';
MLD.setopdrachtstatus (v_opdr_key, 3, 4); -- Ter fiattering
-- Notificeren als budgethouder bekend!
IF (v_budgethouder_key != -1)
THEN
v_errormsg := 'Fout bepalen MLDAP1-omschrijving.';
SELECT lcl.x ('fac_srtnotificatie_oms', fac_srtnotificatie_key, fac_srtnotificatie_oms)
INTO v_srtnoti_oms
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'MLDAP1';
fac.putnotificationsrtprio (
NULL,
v_budgethouder_key,
'MLDAP1',
v_opdr_key,
mld.opdrsprintf (v_srtnoti_oms, v_opdr_key),
NULL,
NULL,
NULL,
NULL,
2,
NULL);
END IF;
ELSE
v_errormsg := 'Fout toekennen Workorder.';
MLD.setopdrachtstatus (v_opdr_key, 5, 4); -- Toegekend
END IF;
v_errormsg := 'Fout bijwerken meldingstatus.';
MLD.updatemeldingstatus (rec.mld_melding_key, 0, 4); -- Facilitor
v_count_upd := v_count_upd + 1;
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, 'E', rec.aanduiding || v_errormsg, 'Kostenraming2Workorder');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'Proces: ' || TO_CHAR (v_count_upd) || ' van ' || TO_CHAR (v_count_tot) || ' Workorders uitgegeven', '');
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, 'RAMING2WO-export afgebroken!');
END;
/
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)
|| '</'
|| p_tag
|| '>');
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';
CREATE OR REPLACE PROCEDURE blcc_select_proquro (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Markeren te exporteren opdracht-verplichtingen (via ordernr)!
-- BLCC#55646: Per 2019-05 deprecated, want markeren gebeurt door Verwerken
-- opdrachten via BLCC.freezeopdrachten()!
--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_typeopdr_key != 103 -- Geen RFQs
-- AND o.mld_statusopdr_key = 9 -- Afgerond
-- AND o.mld_opdr_ordernr IS NULL -- Geen ordernr, dus bijwerken
-- ORDER BY 1;
-- 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).
-- BLCC#52390: Per februari catering-verplichtingen niet meer exporteren!
-- BLCC#55646: Per 2019-06 Verwerkte ipv. Afgeronde opdrachten exporteren
-- en markeren als doorgezet naar ProQuro!
CURSOR c3
IS -- Regel per Afgeronde mld_opdr zojuist gemarkeerd!
SELECT o.mld_opdr_key,
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
SUBSTR (kp.prs_kostenplaats_nr, 1, 5) 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,
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')
o.mld_typeopdr_key = 101 -- WO
AND o.mld_statusopdr_key = 7 -- Verwerkt
AND TO_CHAR (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'yyyy-mm-dd') >= '2019-02-01' -- TODO:2019-06-01/Per 2019-06 nieuwe werkwijze!
AND o.mld_opdr_ordernr IS NULL -- Nog niet doorgezet Proquro!
AND NOT EXISTS -- Nog niet doorgezet Proquro!
(SELECT 1
FROM mld_v_aanwezigkenmerkopdr
WHERE mld_kenmerk_key = 621 AND mld_opdr_key = o.mld_opdr_key)
AND o.mld_opdr_kosten > 0
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
ORDER BY 1;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
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 FROM fac_rapport
WHERE fac_rapport_node = v_bestand;
-- BLCC#55646: Per 2019-05 deprecated, want markeren gebeurt door Verwerken
-- opdrachten via BLCC.freezeopdrachten()!
--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;
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
-- Begin-tag splitsen ter voorkoming auto-detectie utf-8 door UltraEdit!
blcc_add_xml_row (v_bestand, '<?xml version="1.0" encoding="utf-' || '8"?>');
blcc_add_xml_row (v_bestand, '<Orders>');
FOR rec IN c3
LOOP
BEGIN
--blcc_add_xml_row (v_bestand, '<AddOrder>');
blcc_add_xml_row (v_bestand, '<Order>');
--blcc_add_xml_element (v_bestand, 'securityKey', 'xxx');
--blcc_add_xml_row (v_bestand, '<parms>');
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, '<OrderLines>');
blcc_add_xml_row (v_bestand, '<OrderLine>');
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, '</OrderLine>');
blcc_add_xml_row (v_bestand, '</OrderLines>');
--blcc_add_xml_row (v_bestand, '</parms>');
--blcc_add_xml_row (v_bestand, '</AddOrder>');
blcc_add_xml_row (v_bestand, '</Order>');
-- Markeren als 'Doorgezet naar ProQuro'!
v_errormsg := 'Fout markeren doorzetten ProQuro';
UPDATE mld_opdr
SET mld_opdr_ordernr = TO_CHAR (SYSDATE, 'yyyy-mm-dd hh24:mi:ss')
WHERE mld_opdr_key = rec.mld_opdr_key;
INSERT INTO mld_kenmerkopdr (mld_opdr_key,
mld_kenmerk_key,
mld_kenmerkopdr_waarde)
VALUES (rec.mld_opdr_key,
621, -- TODO/Doorgezet naar Proquro
TO_CHAR (SYSDATE, 'dd-mm-yyyy'));
END;
END LOOP;
blcc_add_xml_row (v_bestand, '</Orders>');
END IF;
fac.writelog (p_applname, 'S', 'ProQuro export/#regels: ' || TO_CHAR (v_order_count), TO_CHAR (v_amount_sum));
END;
/
-- BLCC#53426: Kosten voortaan splitsen naar BTW (VH/VL)!
/* 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,
btw,
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.btw,
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,
rra.res_artikel_nr,
rra.res_artikel_omschrijving,
rra.res_rsv_artikel_aantal,
rra.res_rsv_artikel_prijs,
rra.res_artikel_prijs,
rra.btw,
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,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
ra.res_artikel_prijs,
DECODE (
COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6
AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < SYSDATE
AND rra.res_rsv_artikel_verwerkt IS NOT NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6
AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < SYSDATE
AND rra.res_rsv_artikel_verwerkt IS NOT NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6
AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < SYSDATE
AND rra.res_rsv_artikel_verwerkt IS NOT NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
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,
ROUND (COALESCE (x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal, x.res_artikel_prijs), 5)
stuksprijs,
ROUND (COALESCE (x.res_rsv_artikel_prijs, x.res_rsv_artikel_aantal * x.res_artikel_prijs), 5)
regeltotaal,
x.btw,
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,
rra.res_artikel_nr,
rra.res_artikel_omschrijving,
rra.res_rsv_artikel_aantal,
rra.res_rsv_artikel_prijs,
rra.res_artikel_prijs,
rra.btw,
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,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
ra.res_artikel_prijs,
DECODE (
COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE 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_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE 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_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE 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_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
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,
btw_laag_oud,
btw_hoog_oud,
btw_laag,
btw_hoog,
fclt_f_besteller,
costcenter,
afdeling,
fclt_3d_afdeling_key
)
AS
SELECT TO_CHAR (x.res_rsv_artikel_verwerkt, 'yyyy-mm-dd') 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.btw_laag_oud,
x.btw_hoog_oud,
x.btw_laag,
x.btw_hoog,
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,
rra.res_artikel_nr,
rra.res_artikel_omschrijving,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
rra.btw_laag_oud,
rra.btw_hoog_oud,
rra.btw_laag,
rra.btw_hoog,
pf.prs_perslid_naam_full,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_omschrijving
FROM res_rsv_ruimte rrr,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
DECODE (
rra.res_rsv_artikel_btw,
NULL, TO_NUMBER (NULL),
21, TO_NUMBER (NULL),
ROUND ((rra.res_rsv_artikel_prijs / 100) * 6, 5)) btw_laag_oud,
DECODE (
rra.res_rsv_artikel_btw,
NULL, TO_NUMBER (NULL),
6, TO_NUMBER (NULL),
ROUND ((rra.res_rsv_artikel_prijs / 100) * 21, 5)) btw_hoog_oud,
DECODE (
rra.res_rsv_artikel_btw,
NULL, TO_NUMBER (NULL),
21, TO_NUMBER (NULL),
ROUND ((rra.res_rsv_artikel_prijs / 100) * rra.res_rsv_artikel_btw, 5)) btw_laag,
DECODE (
rra.res_rsv_artikel_btw,
NULL, TO_NUMBER (NULL),
21, ROUND ((rra.res_rsv_artikel_prijs / 100) * rra.res_rsv_artikel_btw, 5),
TO_NUMBER (NULL)) btw_hoog,
ra.res_discipline_key
FROM res_rsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6
--AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd')
AND rra.res_rsv_artikel_verwerkt > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
DECODE (
rra.res_rsv_artikel_btw,
21, TO_NUMBER (NULL),
ROUND ((0.75 * rra.res_rsv_artikel_prijs / 100) * 6, 5)) btw_laag_oud,
DECODE (
rra.res_rsv_artikel_btw,
6, TO_NUMBER (NULL),
ROUND ((0.25 * rra.res_rsv_artikel_prijs / 100) * 21, 5)) btw_hoog_oud,
CASE
WHEN rra.res_rsv_artikel_levering < TO_DATE ('20190101', 'yyyymmdd')
THEN
ROUND ((0.75 * rra.res_rsv_artikel_prijs / 100) * 6, 5)
ELSE
ROUND ((0.75 * rra.res_rsv_artikel_prijs / 100) * 9, 5)
END
btw_laag,
ROUND ((0.25 * rra.res_rsv_artikel_prijs / 100) * 21, 5)
btw_hoog,
ra.res_discipline_key
FROM res_rsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6
--AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd')
AND rra.res_rsv_artikel_verwerkt > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
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_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;
-- BLCC#52390: Per februari catering-doorbelasting splitsen naar BTW (VH/VL)!
-- BLCC#53262: Per ADDD-facturatie deprecated en tzt. verwijderen, toch!?
/* 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 (TRUNC (t.fac_tracking_datum, 'mm') - 1, '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 = 66 -- ORDVER
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') || '/' || btw,
SUM (verw_prijs),
NULL,
--'VH',
btw,
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,
--LTRIM (rra.res_artikel_omschrijving) || ' (' || COALESCE (rra.res_artikel_eenheid, '') || ')'
-- res_voorziening,
rra.res_rsv_artikel_verwerkt resver,
rra.res_rsv_artikel_prijs verw_prijs,
--rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
rra.btw
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,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
rra.res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--ra.res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt < TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
rra.res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--ra.res_artikel_prijs,
DECODE (
COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt >= TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt >= TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt >= TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
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_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_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'),
'Cateringkosten ' || TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm') || '/' || btw,
btw,
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 || '/' || btw,
SUM (verw_prijs),
NULL,
--'VH',
btw,
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,
'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,
'VH' btw, -- Hard 21%
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,
rd.ins_discipline_omschrijving res_voorziening,
rra.res_rsv_artikel_verwerkt resver,
rra.res_rsv_artikel_prijs verw_prijs,
rra.btw,
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,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
rra.res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--ra.res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt < TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
rra.res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--ra.res_artikel_prijs,
DECODE (
COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt >= TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt >= TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt >= TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
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_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_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 || '/' || btw,
btw,
prs_kostensoort_refcode;
-- BLCC#53262: Facturatie additionele diensten!
CREATE OR REPLACE VIEW blcc_v_addd_actual
AS
WITH lopendeperiode AS (SELECT TO_CHAR (add_months (SYSDATE, -1), 'yyyymm') maand
FROM dual) -- Alleen tbv. RES-kosten!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
--TRIM (COALESCE (x.cnt_contract_nummer, '-')) po_nr,
TRIM (COALESCE (x.res_kenmerkreservering_waarde, x.cnt_contract_nummer, '-')) po_nr,
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') contract_id,
'1' || TO_CHAR (x.reslev, 'yyyymmdd') || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_key), -7) || TO_CHAR (volgnr) || x.prs_kostensoort_refcode || x.res_voorziening sortering,
'Crossing campus (banqueting)' regel,
'V' || x.res_id regel_id,
TO_CHAR (x.aantal) || 'x ' || x.res_voorziening regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'reservering' xmlnode,
x.res_rsv_ruimte_key refkey,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.debiteur_nr) debiteur_nr,
x.btw_nr,
NULL contactpersoon, --x.contactpersoon,
x.adres, x.postcode, x.plaats, x.land,
x.prs_perslid_naam_full aanvrager,
x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms,
DECODE (x.btw_vl, '1', 'V', DECODE (x.btw, 'VL', 'L', 'H')) fin_btwtabelwaarde_code,
DECODE (x.btw_vl, '1', 'Verlegd', DECODE (x.btw, 'VL', 'Laag', 'Hoog')) fin_btwtabelwaarde_oms,
--DECODE (x.btw_vl, '1', 0, DECODE (x.btw, 'VL', 6, 21)) fin_btwtabelwaarde_perc,
DECODE (x.btw_vl, '1', 0, DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', 6, 9), 21)) fin_btwtabelwaarde_perc, -- Bah!
DECODE (x.btw_vl, '1', 1, 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,
SUM (COALESCE (verw_prijs, prijs, 0)) mndnet, -- Netto bedrag
--SUM (ROUND (DECODE (x.btw_vl, '1', 0, DECODE (x.btw, 'VL', 0.06, 0.21)) * COALESCE (verw_prijs, prijs, 0), 2)) mndbtw, -- BTW bedrag
SUM (ROUND (DECODE (x.btw_vl, '1', 0, DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', 0.06, 0.09), 0.21)) * COALESCE (verw_prijs, prijs, 0), 2)) mndbtw, -- BTW bedrag
x.prs_kostensoort_refcode grtboekrek,
x.prs_kostensoort_altcode grtboekrek_oms,
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
FROM (SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
kl.prs_kenmerklink_waarde debiteur_nr,
ks.prs_kostensoort_refcode,
ks.prs_kostensoort_altcode,
0 volgnr,
rra.res_rsv_artikel_aantal aantal,
LTRIM (rra.res_artikel_omschrijving) || ' [' || TO_CHAR (res_rsv_artikel_levering, 'dd-mm-yyyy') || ']' res_voorziening,
rra.res_rsv_artikel_levering reslev,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
rra.btw,
c.cnt_contract_nummer,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.ins_discipline_key,
h.prs_bedrijf_key,
h.prs_bedrijf_naam,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_adres, h.prs_bedrijf_post_adres) adres,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_postcode, h.prs_bedrijf_post_postcode) postcode,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_plaats, h.prs_bedrijf_post_plaats) plaats,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_land, h.prs_bedrijf_post_land) land,
btwnr.prs_kenmerklink_waarde btw_nr,
btwvl.prs_kenmerklink_waarde btw_vl,
cp.contactpersoon,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
kw.res_kenmerkreservering_waarde,
lp.maand
FROM lopendeperiode lp,
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,
cnt_v_aanwezigcontract c,
prs_v_aanwezigbedrijf h,
(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 prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1120) btwvl, -- BTW verlegd
( SELECT prs_bedrijf_key, MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) contactpersoon
FROM prs_contactpersoon
WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen
GROUP BY prs_bedrijf_key) cp,
prs_v_perslid_fullnames_all pf,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
ra.res_artikel_prijs,
DECODE (COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20180501', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'mm')
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20180501', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'mm')
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20180501', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'mm')
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
res_discipline rd,
--res_disc_params dp,
--prs_bedrijf b,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
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 -- 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 ab.prs_bedrijf_key = 22 -- Huurder Chemelot Campus
AND ab.prs_afdeling_key1 = kl.prs_link_key(+)
AND kl.prs_kenmerklink_niveau(+) = 'A'
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
AND ab.prs_afdeling_key1 = c.prs_afdeling_key_eig
AND c.ins_discipline_key = 1841
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 = h.prs_bedrijf_key
AND h.prs_bedrijf_key = btwnr.prs_link_key(+)
AND h.prs_bedrijf_key = btwvl.prs_link_key(+)
AND h.prs_bedrijf_key = cp.prs_bedrijf_key(+)
AND p.prs_perslid_key = pf.prs_perslid_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.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 rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)) x
GROUP BY '*CONCEPT*',
--TRIM (COALESCE (x.cnt_contract_nummer, '-')),
TRIM (COALESCE (x.res_kenmerkreservering_waarde, x.cnt_contract_nummer, '-')),
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0'),
'1' || TO_CHAR (x.reslev, 'yyyymmdd') || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_key), -7) || TO_CHAR (volgnr) || x.prs_kostensoort_refcode || x.res_voorziening,
'Crossing campus (banqueting)',
'V' || x.res_id,
TO_CHAR (x.aantal) || 'x ' || x.res_voorziening,
TO_CHAR (SYSDATE, 'dd-mm-yyyy'), TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy'),
'reservering',
x.res_rsv_ruimte_key,
x.prs_bedrijf_key, x.prs_bedrijf_naam, TRIM (x.debiteur_nr),
x.btw_nr,
NULL, --x.contactpersoon,
x.adres, x.postcode, x.plaats, x.land,
x.prs_perslid_naam_full,
x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms,
DECODE (x.btw_vl, '1', 'V', DECODE (x.btw, 'VL', 'L', 'H')),
DECODE (x.btw_vl, '1', 'Verlegd', DECODE (x.btw, 'VL', 'Laag', 'Hoog')),
DECODE (x.btw_vl, '1', 0, DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', 6, 9), 21)),
DECODE (x.btw_vl, '1', 1, TO_NUMBER (NULL)) ,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy'),
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy'),
x.prs_kostensoort_refcode,
x.prs_kostensoort_altcode,
TO_NUMBER (NULL)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (x.res_kenmerkreservering_waarde, '-')) po_nr,
NULL contract_id,
'2' || TO_CHAR (x.reslev, 'yyyymmdd') || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_key), -7) || TO_CHAR (volgnr) || x.prs_kostensoort_refcode || x.res_voorziening sortering,
'Event ' || x.res_id regel,
'E' || x.res_id regel_id,
DECODE (x.volgnr, 0, x.res_voorziening || ' [' || TO_CHAR (ROUND (x.aantal, 2)) || ' uur]', 2, TO_CHAR (x.aantal) || 'x ' || x.res_voorziening, x.res_voorziening) regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'reservering' xmlnode,
x.res_rsv_ruimte_key refkey,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.debiteur_nr) debiteur_nr,
x.btw_nr,
NULL contactpersoon, --x.contactpersoon,
x.adres, x.postcode, x.plaats, x.land,
x.prs_perslid_naam_full aanvrager,
x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms,
DECODE (x.btw_vl, '1', 'V', DECODE (x.btw, 'VL', 'L', 'H')) fin_btwtabelwaarde_code,
DECODE (x.btw_vl, '1', 'Verlegd', DECODE (x.btw, 'VL', 'Laag', 'Hoog')) fin_btwtabelwaarde_oms,
--DECODE (x.btw_vl, '1', 0, DECODE (x.btw, 'VL', 6, 21)) fin_btwtabelwaarde_perc,
DECODE (x.btw_vl, '1', 0, DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', 6, 9), 21)) fin_btwtabelwaarde_perc, -- Bah!
DECODE (x.btw_vl, '1', 1, 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,
SUM (COALESCE (verw_prijs, prijs, 0)) mndnet, -- Netto bedrag
--SUM (ROUND (DECODE (x.btw_vl, '1', 0, DECODE (x.btw, 'VL', 0.06, 0.21)) * COALESCE (verw_prijs, prijs, 0), 2)) mndbtw, -- BTW bedrag
SUM (ROUND (DECODE (x.btw_vl, '1', 0, DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', 0.06, 0.09), 0.21)) * COALESCE (verw_prijs, prijs, 0), 2)) mndbtw, -- BTW bedrag
x.prs_kostensoort_refcode grtboekrek,
x.prs_kostensoort_altcode grtboekrek_oms,
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
FROM (SELECT rrr.res_rsv_ruimte_key, -- Ruimte-regel
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
kl.prs_kenmerklink_waarde debiteur_nr,
ks.prs_kostensoort_refcode,
ks.prs_kostensoort_altcode,
0 volgnr,
(rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24 aantal, -- Duur in uren
rr.res_ruimte_nr || ' [' || TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') || ']' res_voorziening,
rrr.res_rsv_ruimte_van reslev,
rrr.res_rsv_ruimte_prijs verw_prijs,
res.getruimteprijs (rrr.res_rsv_ruimte_key) prijs,
'VH' btw, -- Hard 21%
NULL, --c.cnt_contract_key,
NULL, --c.cnt_contract_nummer,
NULL, --c.ins_discipline_key,
h.prs_bedrijf_key,
h.prs_bedrijf_naam,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_adres, h.prs_bedrijf_post_adres) adres,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_postcode, h.prs_bedrijf_post_postcode) postcode,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_plaats, h.prs_bedrijf_post_plaats) plaats,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_land, h.prs_bedrijf_post_land) land,
btwnr.prs_kenmerklink_waarde btw_nr,
btwvl.prs_kenmerklink_waarde btw_vl,
cp.contactpersoon,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
kw.res_kenmerkreservering_waarde,
lp.maand
FROM lopendeperiode lp,
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,
--cnt_v_aanwezigcontract c,
prs_v_aanwezigbedrijf h,
(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 prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1120) btwvl, -- BTW verlegd
( SELECT prs_bedrijf_key, MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) contactpersoon
FROM prs_contactpersoon
WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen
GROUP BY prs_bedrijf_key) cp,
prs_v_perslid_fullnames_all pf,
res_ruimte rr,
res_discipline rd,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
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_van > TO_DATE ('20180501', 'yyyymmdd')
AND rrr.res_rsv_ruimte_van < TRUNC (SYSDATE, 'mm')
AND rrr.res_status_bo_key != 6 -- AV
AND rrr.res_rsv_ruimte_dirtlevel = 0
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 ab.prs_bedrijf_key = 22 -- Huurder Chemelot Campus
AND ab.prs_afdeling_key1 = kl.prs_link_key(+)
AND kl.prs_kenmerklink_niveau(+) = 'A'
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
--AND ab.prs_afdeling_key1 = c.prs_afdeling_key_eig
--AND c.ins_discipline_key = 1841
--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 = h.prs_bedrijf_key
AND kl.prs_kenmerklink_waarde = h.prs_overeenkomst_nr
AND h.prs_bedrijf_key = btwnr.prs_link_key(+)
AND h.prs_bedrijf_key = btwvl.prs_link_key(+)
AND h.prs_bedrijf_key = cp.prs_bedrijf_key(+)
AND p.prs_perslid_key = pf.prs_perslid_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
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(+)
UNION ALL -- Korting-regel
SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
kl.prs_kenmerklink_waarde debiteur_nr,
ks.prs_kostensoort_refcode,
ks.prs_kostensoort_altcode,
1 volgnr,
1 aantal,
'Korting' || ' [' || TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') || ']' res_voorziening,
rrr.res_rsv_ruimte_van reslev,
-1 * COALESCE (rrr.res_rsv_ruimte_korting, 0) verw_prijs,
-1 * COALESCE (rrr.res_rsv_ruimte_korting, 0) prijs,
'VH' btw, -- Hard 21%
NULL, --c.cnt_contract_key,
NULL, --c.cnt_contract_nummer,
NULL, --c.ins_discipline_key,
h.prs_bedrijf_key,
h.prs_bedrijf_naam,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_adres, h.prs_bedrijf_post_adres) adres,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_postcode, h.prs_bedrijf_post_postcode) postcode,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_plaats, h.prs_bedrijf_post_plaats) plaats,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_land, h.prs_bedrijf_post_land) land,
btwnr.prs_kenmerklink_waarde btw_nr,
btwvl.prs_kenmerklink_waarde btw_vl,
cp.contactpersoon,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
kw.res_kenmerkreservering_waarde,
lp.maand
FROM lopendeperiode lp,
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,
--cnt_v_aanwezigcontract c,
prs_v_aanwezigbedrijf h,
(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 prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1120) btwvl, -- BTW verlegd
( SELECT prs_bedrijf_key, MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) contactpersoon
FROM prs_contactpersoon
WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen
GROUP BY prs_bedrijf_key) cp,
prs_v_perslid_fullnames_all pf,
res_ruimte rr,
res_discipline rd,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
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_van > TO_DATE ('20180501', 'yyyymmdd')
AND rrr.res_rsv_ruimte_van < TRUNC (SYSDATE, 'mm')
AND rrr.res_status_bo_key != 6 -- AV
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND COALESCE (rrr.res_rsv_ruimte_korting, 0) != 0
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 ab.prs_bedrijf_key = 22 -- Huurder Chemelot Campus
AND ab.prs_afdeling_key1 = kl.prs_link_key(+)
AND kl.prs_kenmerklink_niveau(+) = 'A'
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
--AND ab.prs_afdeling_key1 = c.prs_afdeling_key_eig
--AND c.ins_discipline_key = 1841
--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 = h.prs_bedrijf_key
AND kl.prs_kenmerklink_waarde = h.prs_overeenkomst_nr
AND h.prs_bedrijf_key = btwnr.prs_link_key(+)
AND h.prs_bedrijf_key = btwvl.prs_link_key(+)
AND h.prs_bedrijf_key = cp.prs_bedrijf_key(+)
AND p.prs_perslid_key = pf.prs_perslid_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
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(+)
UNION ALL -- Catering-regels
SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
kl.prs_kenmerklink_waarde debiteur_nr,
ks.prs_kostensoort_refcode,
ks.prs_kostensoort_altcode,
2 volgnr,
rra.res_rsv_artikel_aantal aantal,
LTRIM (rra.res_artikel_omschrijving) || ' [' || TO_CHAR (res_rsv_artikel_levering, 'dd-mm-yyyy') || ']' res_voorziening,
rra.res_rsv_artikel_levering reslev,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
rra.btw,
NULL, --c.cnt_contract_key,
NULL, --c.cnt_contract_nummer,
NULL, --c.ins_discipline_key,
h.prs_bedrijf_key,
h.prs_bedrijf_naam,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_adres, h.prs_bedrijf_post_adres) adres,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_postcode, h.prs_bedrijf_post_postcode) postcode,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_plaats, h.prs_bedrijf_post_plaats) plaats,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_land, h.prs_bedrijf_post_land) land,
btwnr.prs_kenmerklink_waarde btw_nr,
btwvl.prs_kenmerklink_waarde btw_vl,
cp.contactpersoon,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
kw.res_kenmerkreservering_waarde,
lp.maand
FROM lopendeperiode lp,
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,
--cnt_v_aanwezigcontract c,
prs_v_aanwezigbedrijf h,
(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 prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1120) btwvl, -- BTW verlegd
( SELECT prs_bedrijf_key, MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) contactpersoon
FROM prs_contactpersoon
WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen
GROUP BY prs_bedrijf_key) cp,
prs_v_perslid_fullnames_all pf,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
ra.res_artikel_prijs,
DECODE (COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20180501', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'mm')
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20180501', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'mm')
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20180501', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'mm')
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
res_discipline rd,
--res_disc_params dp,
--prs_bedrijf b,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
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 ab.prs_bedrijf_key = 22 -- Huurder Chemelot Campus
AND ab.prs_afdeling_key1 = kl.prs_link_key(+)
AND kl.prs_kenmerklink_niveau(+) = 'A'
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
--AND ab.prs_afdeling_key1 = c.prs_afdeling_key_eig
--AND c.ins_discipline_key = 1841
--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 = h.prs_bedrijf_key
AND kl.prs_kenmerklink_waarde = h.prs_overeenkomst_nr
AND h.prs_bedrijf_key = btwnr.prs_link_key(+)
AND h.prs_bedrijf_key = btwvl.prs_link_key(+)
AND h.prs_bedrijf_key = cp.prs_bedrijf_key(+)
AND p.prs_perslid_key = pf.prs_perslid_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.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 rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)) x
GROUP BY '*CONCEPT*',
TRIM (COALESCE (x.res_kenmerkreservering_waarde, '-')),
NULL,
'2' || TO_CHAR (x.reslev, 'yyyymmdd') || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_key), -7) || TO_CHAR (volgnr) || x.prs_kostensoort_refcode || x.res_voorziening,
'Event ' || x.res_id,
'E' || x.res_id,
DECODE (x.volgnr, 0, x.res_voorziening || ' [' || TO_CHAR (ROUND (x.aantal, 2)) || ' uur]', 2, TO_CHAR (x.aantal) || 'x ' || x.res_voorziening, x.res_voorziening),
TO_CHAR (SYSDATE, 'dd-mm-yyyy'), TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy'),
'reservering',
x.res_rsv_ruimte_key,
x.prs_bedrijf_key, x.prs_bedrijf_naam, TRIM (x.debiteur_nr),
x.btw_nr,
NULL, --x.contactpersoon,
x.adres, x.postcode, x.plaats, x.land,
x.prs_perslid_naam_full,
x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms,
DECODE (x.btw_vl, '1', 'V', DECODE (x.btw, 'VL', 'L', 'H')),
DECODE (x.btw_vl, '1', 'Verlegd', DECODE (x.btw, 'VL', 'Laag', 'Hoog')),
DECODE (x.btw_vl, '1', 0, DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', 6, 9), 21)),
DECODE (x.btw_vl, '1', 1, TO_NUMBER (NULL)) ,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy'),
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy'),
x.prs_kostensoort_refcode,
x.prs_kostensoort_altcode,
TO_NUMBER (NULL)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (km.mld_kenmerkmelding_waarde, c.cnt_contract_nummer, '-')) po_nr,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contract_id,
'3' || SUBSTR ('0000' || TO_CHAR (o.mld_melding_key), -7) || '/' || SUBSTR ('00' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr), -3) sortering,
'Klantwens ' || sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) regel,
sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) regel_id,
--td.ins_discipline_omschrijving || '/' || sm.mld_stdmelding_omschrijving regel_oms,
DECODE (m.mld_melding_onderwerp, NULL, '', 'Subject: ' || TRIM (m.mld_melding_onderwerp) || CHR (13) || CHR (10)) || 'Description: ' || COALESCE (SUBSTR (TRIM (m.mld_melding_omschrijving), 1, 2000), '-')
regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'opdracht' xmlnode,
o.mld_opdr_key refkey,
h.prs_bedrijf_key, h.prs_bedrijf_naam prs_debiteur_naam, TRIM (kl.prs_kenmerklink_waarde) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
NULL contactpersoon, --cp.contactpersoon,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_adres, h.prs_bedrijf_post_adres) adres,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_postcode, h.prs_bedrijf_post_postcode) postcode,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_plaats, h.prs_bedrijf_post_plaats) plaats,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_land, h.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'V', 'H') fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', 'Hoog') fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, 21) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, 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 (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
ROUND (COALESCE (o.mld_opdr_kosten, 0), 2) mndnet, -- Netto bedrag
ROUND (DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, 0.21) * COALESCE (o.mld_opdr_kosten, 0), 2) mndbtw, -- BTW bedrag
COALESCE (ksm.prs_kostensoort_refcode, ksv.prs_kostensoort_refcode) grtboekrek,
COALESCE (ksm.prs_kostensoort_altcode, ksv.prs_kostensoort_altcode) grtboekrek_oms,
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
FROM --lopendeperiode lp,
mld_opdr o,
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,
cnt_v_aanwezigcontract c,
prs_v_aanwezigbedrijf h,
(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 prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1120) btwvl, -- BTW verlegd
( SELECT prs_bedrijf_key, MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) contactpersoon
FROM prs_contactpersoon
WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen
GROUP BY prs_bedrijf_key) cp,
prs_v_perslid_fullnames_all pf,
alg_v_allonrgoed_gegevens og,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
prs_kostensoort ksm,
prs_kostensoort ksv
WHERE o.mld_typeopdr_key = 101 -- WO
--AND o.mld_statusopdr_key = 9 -- Afgerond
AND o.mld_statusopdr_key = 7 -- Verwerkt
--AND o.mld_opdr_ordernr <= TO_CHAR (SYSDATE, 'yyyy-mm') || '-01' -- Oude werkwijze (maandelijks)
AND TO_CHAR (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'yyyy-mm-dd') >= '2019-02-01' -- TODO:2019-06-01/Per 2019-06 nieuwe werkwijze!
--AND TO_CHAR (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'yyyy-mm-dd') <= TO_CHAR (SYSDATE, 'yyyy-mm-dd') -- Doorgezet ProQuro/dagelijks
AND TO_CHAR (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'yyyy-mm-dd') <= TO_CHAR (TRUNC (SYSDATE, 'iw') + 0, 'yyyy-mm-dd') -- TODO:3/Doorgezet ProQuro/wekelijks van woensdag op donderdag
AND NOT EXISTS -- Nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_xmlnode = 'opdracht' AND fin_verkoopfactuur_refkey = o.mld_opdr_key)
AND COALESCE (o.mld_opdr_kosten, 0) != 0
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 ab.prs_bedrijf_key = 22 -- Huurder Chemelot Campus
AND ab.prs_afdeling_key1 = kl.prs_link_key(+)
AND kl.prs_kenmerklink_niveau(+) = 'A'
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
AND ab.prs_afdeling_key1 = c.prs_afdeling_key_eig
AND c.ins_discipline_key = 1842
--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 TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TRUNC (SYSDATE, 'mm')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.cnt_prs_bedrijf_key = h.prs_bedrijf_key
AND h.prs_bedrijf_key = btwnr.prs_link_key(+)
AND h.prs_bedrijf_key = btwvl.prs_link_key(+)
AND h.prs_bedrijf_key = cp.prs_bedrijf_key(+)
AND p.prs_perslid_key = pf.prs_perslid_key
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 o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND SUBSTR (kp.prs_kostenplaats_upper, 1, 5) = '50900'
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+);
CREATE OR REPLACE VIEW blcc_v_addd_frozen
AS
SELECT vf.fin_verkoopfactuur_id,
vf.fin_verkoopfactuur_c1 po_nr,
vf.fin_verkoopfactuur_c2 contract_id,
vf.fin_verkoopfactuur_c3 sortering,
SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '=') - 1) regel,
SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '=') + 1) regel_id,
vf.fin_verkoopfactuur_c8 regel_oms,
TO_CHAR (vf.fin_verkoopfactuur_datum, 'dd-mm-yyyy') factuurdatum, TO_CHAR (vf.fin_verkoopfactuur_d1, 'dd-mm-yyyy') vervaldatum,
vf.fin_verkoopfactuur_xmlnode xmlnode,
vf.fin_verkoopfactuur_refkey refkey,
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_c4 contactpersoon,
NULL 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.fin_verkoopfactuur_c5 aanvrager,
vf.prs_kostenplaats_key, vf.prs_kostenplaats_nr, vf.prs_kostenplaats_omschrijving, vf.prs_kostenplaatsgrp_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,
vf.fin_verkoopfactuur_bedrag mndnet, -- Netto bedrag
vf.fin_verkoopfactuur_btw mndbtw, -- BTW bedrag
vf.prs_kostensoort_refcode grtboekrek,
vf.prs_kostensoort_oms grtboekrek_oms,
vf.fin_verkoopfactuur_n1 mld_melding_key
FROM fin_verkoopfactuur vf, prs_bedrijf b
WHERE (SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '2' OR SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3') -- Of andere conditie?
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
ORDER BY vf.prs_bedrijf_key, 1, 2, 3, 4;
CREATE OR REPLACE VIEW blcc_v_rap_export_addd
(
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 fin_verkoopfactuur_id || '0000' || debiteur_nr sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
factuurdatum,
--SUBSTR (maand, 1, 4) || '/' || SUBSTR (maand, -2) periode,
SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2) periode,
fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
vervaldatum,
'1' nummer, -- Hard op '1'
'1300' grtboekrek, -- Hard op '1300'
debiteur_nr rel_kpl,
NULL prj_activa, -- Hard op NULL
netsum + btwsum + (0.065 * netsum) + (0.21 * 0.065 * netsum) bedrag, -- Totaalbedrag incl. BTW gegroepeerd over andere kolommen!
'debit' debitcredit,
'Total' omschrijving, -- Hard op 'Total'
NULL btwcode -- Hard op NULL
FROM ( SELECT fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum,
SUM (mndnet) netsum, SUM (mndbtw) btwsum
FROM blcc_v_addd_frozen
--WHERE maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum)
UNION ALL
SELECT fin_verkoopfactuur_id || debiteur_nr || DECODE (grtboekrek, '812x', DECODE (fin_btwtabelwaarde_code, 'H', '8120', '8121'), grtboekrek) sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
factuurdatum,
--SUBSTR (maand, 1, 4) || '/' || SUBSTR (maand, -2) periode,
SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2) periode,
fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
vervaldatum,
'1' nummer, -- Hard op '1'
DECODE (grtboekrek, '812x', DECODE (fin_btwtabelwaarde_code, 'H', '8120', '8121'), grtboekrek) grtboekrek,
--prs_kostenplaats_nr rel_kpl,
--DECODE (SUBSTR (prs_kostenplaats_nr, 1, 5), '50900', '50900', prs_kostenplaats_nr) rel_kpl,
'50900',
NULL prj_activa, -- Hard op NULL
SUM (mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
'credit' debitcredit, -- TODO: Altijd 'credit' (ook negatieve bedragen)???
DECODE (grtboekrek, '812x', grtboekrek_oms || DECODE (fin_btwtabelwaarde_code, 'H', ' high', ' low'), '8130', regel, grtboekrek_oms) omschrijving,
DECODE (fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', 'V', 'VBINEU_VERL', 'VN') btwcode
FROM blcc_v_addd_frozen
--WHERE maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id || debiteur_nr || DECODE (grtboekrek, '812x', DECODE (fin_btwtabelwaarde_code, 'H', '8120', '8121'), grtboekrek),
'VRK',
'EUR',
factuurdatum,
SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2),
fin_verkoopfactuur_id,
vervaldatum,
'1',
DECODE (grtboekrek, '812x', DECODE (fin_btwtabelwaarde_code, 'H', '8120', '8121'), grtboekrek),
--prs_kostenplaats_nr rel_kpl,
--DECODE (SUBSTR (prs_kostenplaats_nr, 1, 5), '50900', '50900', prs_kostenplaats_nr),
'50900',
NULL,
'credit',
DECODE (grtboekrek, '812x', grtboekrek_oms || DECODE (fin_btwtabelwaarde_code, 'H', ' high', ' low'), '8130', regel, grtboekrek_oms),
DECODE (fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', 'V', 'VBINEU_VERL', 'VN')
UNION ALL
SELECT fin_verkoopfactuur_id || debiteur_nr || '8136' sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
factuurdatum,
--SUBSTR (maand, 1, 4) || '/' || SUBSTR (maand, -2) periode,
SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2) periode,
fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
vervaldatum,
'1' nummer, -- Hard op '1'
'8136', -- Handling fee
--prs_kostenplaats_nr rel_kpl,
--DECODE (SUBSTR (prs_kostenplaats_nr, 1, 5), '50900', '50900', prs_kostenplaats_nr) rel_kpl,
'50900',
NULL prj_activa, -- Hard op NULL
SUM (0.065 * mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
'credit' debitcredit, -- TODO: Altijd 'credit' (ook negatieve bedragen)???
'Handling fee' omschrijving,
'VH' btwcode
FROM blcc_v_addd_frozen
--WHERE maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id || debiteur_nr || '8136',
'VRK',
'EUR',
factuurdatum,
SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2),
fin_verkoopfactuur_id,
vervaldatum,
'1',
'8136',
--prs_kostenplaats_nr,
--DECODE (SUBSTR (prs_kostenplaats_nr, 1, 5), '50900', '50900', prs_kostenplaats_nr),
'50900',
NULL,
'credit',
'Handling fee',
'VH'
ORDER BY 1);
CREATE OR REPLACE VIEW blcc_v_export_addd
(
result,
result_order
)
AS -- View bevat alleen inhoud op dag na woensdag (Klantwensen) of op dag na 10e werkdag van maand (RES)!
SELECT 'code'
|| ';valuta'
|| ';factuurdatum'
|| ';periode'
|| ';factuurnummer'
|| ';vervaldatum'
|| ';nummer'
|| ';grtboekrek'
|| ';rel/kpl'
|| ';prj/activa'
|| ';bedrag'
|| ';debitcredit'
|| ';omschrijving'
|| ';btwcode',
0
FROM DUAL
WHERE (TO_CHAR (SYSDATE, 'd') = '2' -- TODO:5/Nacht na woensdag!
OR (FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 10 -- Nacht na 10e werkdag!
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_addd
WHERE --fclt_x_maand = TO_CHAR (SYSDATE, 'yyyy-mm')
(TO_CHAR (SYSDATE, 'd') = '2' -- TODO:5/Nacht na woensdag!
OR (FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 10 -- Nacht na 10e werkdag!
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))))
AND factuurdatum = TO_CHAR (SYSDATE, 'dd-mm-yyyy')
ORDER BY 2;
CREATE OR REPLACE PROCEDURE blcc_select_addd (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- BLCC#55646: Per 2019-06 factureer/bevries wekelijks de klantwens-kosten
-- en maandelijks alle RES-kosten!
-- NB. Voorheen gebeurde alles maandelijks en voor ADDD-export
-- zijn correctie-meldingen nooit geintroduceerd.
CURSOR c1
IS
SELECT '[' || v.regel_id || '|' || v.prs_debiteur_naam || '] ' aanduiding,
v.*, o.mld_statusopdr_key, m.mld_melding_status
FROM (SELECT * FROM blcc_v_addd_actual) v
LEFT JOIN mld_opdr o
ON v.xmlnode = 'opdracht' AND v.refkey = o.mld_opdr_key
LEFT JOIN mld_melding m -- Nooit geintroduceerd!
ON v.mld_melding_key = m.mld_melding_key
ORDER BY v.prs_bedrijf_key, v.po_nr, v.sortering;
-- 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 SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3' -- vf.fin_verkoopfactuur_xmlnode != 'contract'
AND 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
AND vf.fin_verkoopfactuur_aanmaak > TRUNC (SYSDATE) -- Zojuist/vannacht aangemaakt en dus nog niet gefactureerd!
ORDER BY vf.fin_verkoopfactuur_id;
-- Verwerk reserveringen (in juiste volgorde)!
CURSOR c3
IS
SELECT DISTINCT '[' || 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 fin_verkoopfactuur vf, res_v_aanwezigrsv_artikel rra
WHERE SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3' -- vf.fin_verkoopfactuur_xmlnode != 'contract'
AND vf.fin_verkoopfactuur_maand = TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyymm')
AND vf.fin_verkoopfactuur_xmlnode = 'reservering'
AND vf.fin_verkoopfactuur_refkey = rra.res_rsv_ruimte_key
UNION ALL
SELECT DISTINCT '[' || 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 fin_verkoopfactuur vf, res_v_aanwezigrsv_ruimte rrr
WHERE SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3' -- vf.fin_verkoopfactuur_xmlnode != 'contract'
AND vf.fin_verkoopfactuur_maand = TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyymm')
AND vf.fin_verkoopfactuur_xmlnode = 'reservering'
AND vf.fin_verkoopfactuur_refkey = rrr.res_rsv_ruimte_key
ORDER BY 3, 2;
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_bedrijf_key NUMBER (10);
v_old_po_nr VARCHAR2 (50);
v_factuur_id VARCHAR2 (30);
v_factkop_id VARCHAR2 (30);
v_verkoopfactuurkop_key NUMBER (10);
v_count NUMBER;
v_prijs NUMBER (9, 2);
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: ADDD-export draait dagelijks na middernacht (begin van dag).
-- De MLD-verkoop (Klantwens-WOs) wordt per 2019-06 (BLCC#56408) wekelijks
-- gefactureerd icm. het doorzetten naar Twinfield.
-- De RES-verkoop wordt maandelijks alleen in nacht na 10e werkdag van de
-- maand gefactureerd icm. het doorzetten naar Twinfield.
-- IF nacht na woensdag of 10e werkdag van maand (<28>n<EFBFBD>geen weekend <20>n<EFBFBD>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 TO_CHAR (SYSDATE, 'd') = '2' -- TODO:5/Nacht na woensdag!
OR (FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 10 -- Nacht na 10e werkdag!
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_bedrijf_key := -1;
v_old_po_nr := '';
-- Factureer/bevries kosten van additionele diensten en verwerk=AV alle
-- eventuele correctiemeldingen.
FOR rec IN c1
LOOP
BEGIN
IF rec.mndnet != 0 AND (rec.xmlnode = 'opdracht' OR rec.prs_bedrijf_key != v_old_bedrijf_key OR rec.po_nr != v_old_po_nr)
THEN
-- BLCC#56148: Per feb. 2019 nieuwe sequence/BCC-verkoopboek en
-- altijd doorlopende boekstuknummers beginnend met
-- een '3'!
--SELECT fac_s_user02.NEXTVAL - v_year_offset INTO v_count FROM DUAL;
SELECT fac_s_user03.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '3' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
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_bedrijf_key := rec.prs_bedrijf_key;
v_old_po_nr := rec.po_nr;
END IF;
IF rec.mndnet != 0
THEN
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.regel || '=' || rec.regel_id,
rec.xmlnode,
rec.refkey,
rec.prs_kostenplaats_key,
rec.prs_kostenplaats_nr,
rec.prs_kostenplaats_omschrijving,
rec.prs_kostenplaatsgrp_oms,
rec.grtboekrek_oms,
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.mld_melding_key, -- n1/correctiemelding
TO_NUMBER (NULL), -- n2
TO_NUMBER (NULL), -- n3
TO_NUMBER (NULL), -- n4
TO_NUMBER (NULL), -- n5
rec.po_nr, -- c1
rec.contract_id, -- c2
rec.sortering, -- c3
--rec.contactpersoon, -- c4
NULL, -- c4
rec.aanvrager, -- c5
NULL, -- c6
rec.debiteur_nr || '=' || rec.btw_nr, -- c7
rec.regel_oms, -- 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 (NULL), -- d4
TO_DATE (NULL)); -- d5
COMMIT;
v_fact_count := v_fact_count + 1;
v_amount_sum := v_amount_sum + rec.mndnet;
END IF;
IF rec.xmlnode = 'opdracht'
THEN
--v_errormsg := 'Fout verwerken opdrachtkosten';
--MLD.setopdrachtstatus (rec.refkey, 7, NULL);
-- Markeren als 'Doorgezet naar Twinfield'!
v_errormsg := 'Fout markeren doorzetten Twinfield';
INSERT INTO mld_kenmerkopdr (mld_opdr_key,
mld_kenmerk_key,
mld_kenmerkopdr_waarde)
VALUES (rec.refkey,
622, -- TODO/Doorgezet naar Twinfield
TO_CHAR (SYSDATE, 'yyyy-mm-dd hh24:mi:ss'));
END IF;
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
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, 'E', rec.aanduiding || v_errormsg, 'ADDD-freeze');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'ADDD-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 CUST02-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 (341, -- CUST02-noti
2, -- Mail
DECODE ( -- To-adres
rec.prs_bedrijf_email,
NULL, 'm.vanderheide@facilitor.nl', --TODO:NULL, 'accountsreceivable@brightlands.com',
'm.vanderheide@facilitor.nl'), --TODO:rec.prs_bedrijf_email || ';accountsreceivable@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),
'accountsreceivable@brightlands.com', -- From-adres
'/../../Fplace5i/CUST/BLCC/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, 'ADDD-noti');
COMMIT;
END;
END LOOP;
FOR rec IN c3
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;
IF rec.res_status_bo_key != 6
THEN
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');
END IF;
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;
IF rec.res_status_bo_key != 6
THEN
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;
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, 'ADDD-AV');
COMMIT;
END;
END LOOP;
/*
ELSE -- Dagelijks bevriezen/factureren MLD-verkoop!
v_fact_count := 0;
v_amount_sum := 0;
v_old_bedrijf_key := -1;
v_old_po_nr := '';
-- Factureer/bevries kosten van additionele diensten en verwerk=AV alle
-- eventuele correctiemeldingen.
FOR rec IN c1
LOOP
BEGIN
IF rec.xmlnode = 'opdracht' AND rec.mndnet != 0 AND (rec.prs_bedrijf_key != v_old_bedrijf_key OR rec.po_nr != v_old_po_nr)
THEN
SELECT fac_s_user03.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '3' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
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_bedrijf_key := rec.prs_bedrijf_key;
v_old_po_nr := rec.po_nr;
END IF;
IF rec.mndnet != 0
THEN
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.regel || '=' || rec.regel_id,
rec.xmlnode,
rec.refkey,
rec.prs_kostenplaats_key,
rec.prs_kostenplaats_nr,
rec.prs_kostenplaats_omschrijving,
rec.prs_kostenplaatsgrp_oms,
rec.grtboekrek_oms,
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.mld_melding_key, -- n1/correctiemelding
TO_NUMBER (NULL), -- n2
TO_NUMBER (NULL), -- n3
TO_NUMBER (NULL), -- n4
TO_NUMBER (NULL), -- n5
rec.po_nr, -- c1
rec.contract_id, -- c2
rec.sortering, -- c3
--rec.contactpersoon, -- c4
NULL, -- c4
rec.aanvrager, -- c5
NULL, -- c6
rec.debiteur_nr || '=' || rec.btw_nr, -- c7
rec.regel_oms, -- 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 (NULL), -- d4
TO_DATE (NULL)); -- d5
COMMIT;
v_fact_count := v_fact_count + 1;
v_amount_sum := v_amount_sum + rec.mndnet;
END IF;
IF rec.xmlnode = 'opdracht'
THEN
--v_errormsg := 'Fout verwerken opdrachtkosten';
--MLD.setopdrachtstatus (rec.refkey, 7, NULL);
-- Markeren als 'Doorgezet naar Twinfield'!
v_errormsg := 'Fout markeren doorzetten Twinfield';
INSERT INTO mld_kenmerkopdr (mld_opdr_key,
mld_kenmerk_key,
mld_kenmerkopdr_waarde)
VALUES (rec.refkey,
622, -- TODO/Doorgezet naar Twinfield
TO_CHAR (SYSDATE, 'yyyy-mm-dd hh24:mi:ss'));
END IF;
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
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, 'E', rec.aanduiding || v_errormsg, 'ADDD-freeze');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'ADDD-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 CUST02-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 (341, -- CUST02-noti
2, -- Mail
DECODE ( -- To-adres
rec.prs_bedrijf_email,
NULL, 'accountsreceivable@brightlands.com',
rec.prs_bedrijf_email || ';accountsreceivable@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),
'accountsreceivable@brightlands.com', -- From-adres
'/../../Fplace5i/CUST/BLCC/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, 'ADDD-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, 'ADDD-export afgebroken!');
END;
/
-- TODO: Tbv. BSSC, dus ontmantelen voor BLCC!
/* 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;
/
-- TODO: Tbv. BSSC, dus ontmantelen voor BLCC!
/* 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;
/
-- 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,
melding_nummer,
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,
kostenplaats_code,
kostenplaats_groep,
kostensoort_code,
kostensoort_groep,
vakgroeptype,
melding_nummer_parent
)
AS
SELECT DECODE (m.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 || TO_CHAR (m.mld_melding_key) meldingnummer,
md.ins_discipline_omschrijving productgroep,
sm.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,
aog.alg_gebouw_code gebouw,
aog.alg_verdieping_code verdieping,
aog.alg_ruimte_nr ruimte,
TRIM (m.mld_melding_onderwerp) onderwerp,
REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (SUBSTR (TRIM (m.mld_melding_omschrijving), 1, 20), CHR (10), ' '), CHR (13), ' '), CHR (128), 'EUR'), '"', ''''), ';', '') omschrijving,
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = m.prs_perslid_key)
melder,
(SELECT mld_statuses_omschrijving FROM mld_statuses WHERE mld_statuses_key = m.mld_melding_status)
status,
REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (SUBSTR (TRIM (m.mld_melding_opmerking), 1, 20), CHR (10), ' '), CHR (13), ' '), CHR (128), 'EUR'), '"', ''''), ';', '') opmerking,
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE 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 (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,
kp.prs_kostenplaats_upper,
DECODE (kpg.prs_kostenplaatsgrp_nr, NULL, '', kpg.prs_kostenplaatsgrp_nr || '-') || kpg.prs_kostenplaatsgrp_oms,
ks.prs_kostensoort_upper,
ksg.prs_kostensoortgrp_oms,
sd.ins_srtdiscipline_omschrijving,
sd2.ins_srtdiscipline_prefix || TO_CHAR (m2.mld_melding_key) meldingnummer_parent
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
alg_locatie l,
alg_v_allonrgoed_gegevens aog,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
prs_kostensoort ks,
prs_kostensoortgrp ksg,
mld_melding m2,
mld_stdmelding sm2,
mld_discipline md2,
ins_srtdiscipline sd2
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
AND m.fac_activiteit_key IS NULL
AND m.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND sm.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
AND m.mld_melding_parentkey = m2.mld_melding_key(+)
AND m2.mld_stdmelding_key = sm2.mld_stdmelding_key(+)
AND sm2.mld_ins_discipline_key = md2.ins_discipline_key(+)
AND md2.ins_srtdiscipline_key = sd2.ins_srtdiscipline_key(+);
CREATE OR REPLACE VIEW blcc_v_rap_opdrachten
(
prioriteittxt,
opdracht_nummer,
melding_nummer,
opdracht_type,
omschrijving,
opdracht_datumtijd,
opdracht_datum,
opdracht_tijd,
opdracht_status,
opdracht_einddatumtijd,
opdracht_einddatum,
opdracht_eindtijd,
opdracht_uitvoerende,
opdracht_uitvoerende_crednr,
behandelaar,
kostenplaats_code,
kostenplaats_groep,
opdracht_kosten,
opdracht_uren,
opdracht_correctie,
opdracht_materiaal,
opdracht_uurtarief,
opdracht_offerte
)
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')),
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnummer,
ot.mld_typeopdr_omschrijving,
REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (SUBSTR (o.mld_opdr_omschrijving, 1, 20), 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,
(SELECT mld_statusopdr_omschrijving FROM mld_statusopdr WHERE 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 WHERE mld_uitvoerende_key = o.mld_uitvoerende_keys)
opdracht_uitvoerende,
(SELECT prs_leverancier_nr FROM prs_bedrijf WHERE prs_bedrijf_key = o.mld_uitvoerende_keys)
opdracht_uitvoerende_crednr,
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = o.prs_perslid_key)
behandelaar,
kp.prs_kostenplaats_upper kostenplaats_code,
DECODE (kpg.prs_kostenplaatsgrp_nr, NULL, '', kpg.prs_kostenplaatsgrp_nr || '-') || kpg.prs_kostenplaatsgrp_oms kostenplaats_groep,
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'),
TO_CHAR (o.mld_opdr_materiaal, 'fm999999999999999990.00'),
TO_CHAR (o.mld_opdr_uurloon, 'fm999999999999999990.00'),
sub.opdrachtnummer
FROM mld_opdr o,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
mld_typeopdr ot,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) opdrachtnummer,
mld_opdr_key
FROM mld_melding m,
mld_opdr o,
mld_stdmelding sm,
mld_discipline md,
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 = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key) sub
WHERE o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND o.mld_opdr_parent_key = sub.mld_opdr_key(+);
-- BLCC#38512
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 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 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, 60) -- ORDNEW, ORDACP, ORDREJ, ORDCAN, ORDAFM, ORDAFR, ORDVER, ORDUPD
--AND sn.fac_srtnotificatie_key NOT IN (56, 57, 68, 135) -- ORDMLI, ORDMLE, ORDSNX, ORDMAI
AND t.prs_perslid_key = pf.prs_perslid_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,
pf1.prs_perslid_naam_full gebouwverantw1,
pf2.prs_perslid_naam_full gebouwverantw2,
(SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = fac.safe_to_number (dvl.alg_onrgoedkenmerk_waarde)) dienstverlener,
(SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = fac.safe_to_number (eig.alg_onrgoedkenmerk_waarde)) eigenaar,
sg.alg_srtgebouw_omschrijving gebouwfunctie,
SUBSTR (bouwjaar.alg_onrgoedkenmerk_waarde, 7, 10) bouwjaar,
(SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = fac.safe_to_number (strategie.alg_onrgoedkenmerk_waarde)) strategie
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 fac.safe_to_number (rlhkot.alg_onrgoedkenmerk_waarde) = 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
LEFT JOIN alg_gebouw g
ON fp.alg_onrgoed_key = g.alg_gebouw_key
LEFT JOIN alg_srtgebouw sg
ON g.alg_srtgebouw_key = sg.alg_srtgebouw_key
LEFT JOIN prs_v_perslid_fullnames_all pf1
ON g.prs_perslid_key_verantw = pf1.prs_perslid_key
LEFT JOIN prs_v_perslid_fullnames_all pf2
ON g.prs_perslid_key_verantw2 = pf2.prs_perslid_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk dvl
ON fp.alg_onrgoed_key = dvl.alg_onrgoed_key
AND dvl.alg_kenmerk_key = 1060 -- Dienstverlener
AND dvl.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk eig
ON fp.alg_onrgoed_key = eig.alg_onrgoed_key
AND eig.alg_kenmerk_key = 1140 -- Eigenaar
AND eig.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk bouwjaar
ON fp.alg_onrgoed_key = bouwjaar.alg_onrgoed_key
AND bouwjaar.alg_kenmerk_key = 1160 -- Bouwjaar
AND bouwjaar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk strategie
ON fp.alg_onrgoed_key = strategie.alg_onrgoed_key
AND strategie.alg_kenmerk_key = 1161 -- Strategie
AND strategie.alg_onrgoed_niveau = 'G';
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', 'V')
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,
k41.waarde kenmerk41,
k42.waarde kenmerk42,
k43.waarde kenmerk43,
k44.waarde kenmerk44,
k45.waarde kenmerk45,
k46.waarde kenmerk46,
k47.waarde kenmerk47,
k48.waarde kenmerk48,
k49.waarde kenmerk49,
k50.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;
-- Onderstaande views zijn voor export tbv PowerBI
-- Export voor PowerBI catering
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"'
|| ';"melding_nummer"'
|| ';"vakgroep"'
|| ';"meldingsoort"'
|| ';"melding_datum"'
|| ';"melding_tijd"'
|| ';"melding_locatiecode"'
|| ';"melding_gebouwcode"'
|| ';"melding_verdieping"'
|| ';"melding_ruimtenr"'
|| ';"melding_onderwerp"'
|| ';"melding_omschrijving"'
|| ';"melder"'
|| ';"melding_status"'
|| ';"melding_afhandeling"'
|| ';"melding_behandelaar"'
|| ';"melding_einddatum"'
|| ';"afspraak_sla_uren"'
|| ';"melder_key"'
|| ';"melding_kostenplaats_code"'
|| ';"melding_kostenplaats_groep"'
|| ';"kostensoort_code"'
|| ';"kostensoort_groep"'
|| ';"vakgroeptype"'
|| ';"melding_nummer_parent"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| prioriteittxt
|| '";"'
|| melding_nummer
|| '";"'
|| 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
|| '";"'
|| kostenplaats_code
|| '";"'
|| kostenplaats_groep
|| '";"'
|| kostensoort_code
|| '";"'
|| kostensoort_groep
|| '";"'
|| vakgroeptype
|| '";"'
|| melding_nummer_parent
|| '"',
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"'
|| ';"opdracht_nummer"'
|| ';"melding_nummer"'
|| ';"opdracht_type"'
|| ';"opdracht_omschrijving"'
|| ';"opdracht_datum"'
|| ';"opdracht_tijd"'
|| ';"opdracht_status"'
|| ';"opdracht_einddatum_gepland"'
|| ';"opdracht_eindtijd_gepland"'
|| ';"opdracht_uitvoerende"'
|| ';"opdracht_uitvoerende_crednr"'
|| ';"opdracht_behandelaar"'
|| ';"opdracht_kostenplaats_code"'
|| ';"opdracht_kostenplaats_groep"'
|| ';"opdracht_kosten"'
|| ';"opdracht_uren"'
|| ';"opdracht_correctie"'
|| ';"opdracht_materiaal"'
|| ';"opdracht_uurtarief"'
|| ';"opdracht_offerte"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| prioriteittxt
|| '";"'
|| opdracht_nummer
|| '";"'
|| melding_nummer
|| '";"'
|| opdracht_type
|| '";"'
|| omschrijving
|| '";"'
|| opdracht_datum
|| '";"'
|| opdracht_tijd
|| '";"'
|| opdracht_status
|| '";"'
|| opdracht_einddatum
|| '";"'
|| opdracht_eindtijd
|| '";"'
|| opdracht_uitvoerende
|| '";"'
|| opdracht_uitvoerende_crednr
|| '";"'
|| behandelaar
|| '";"'
|| kostenplaats_code
|| '";"'
|| kostenplaats_groep
|| '";"'
|| opdracht_kosten
|| '";"'
|| opdracht_uren
|| '";"'
|| opdracht_correctie
|| '";"'
|| opdracht_materiaal
|| '";"'
|| opdracht_uurtarief
|| '";"'
|| opdracht_offerte
|| '"',
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_nummer"'
|| ';"wijzigingsdatum"'
|| ';"wijzigingstijdstip"'
|| ';"wijzigingdoor"'
|| ';"wijzigingcode"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| melding
|| '";"'
|| 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_nummer"'
|| ';"wijzigingsdatum"'
|| ';"wijzigingstijdstip"'
|| ';"wijzigingdoor"'
|| ';"wijzigingcode"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| opdracht
|| '";"'
|| wijzigingsdatum
|| '";"'
|| wijzigingstijdstip
|| '";"'
|| wijzigingdoor
|| '";"'
|| wijzigingcode
|| '"',
1
FROM blcc_v_rap_ordtrk;
-- Export voor PowerBI kosten
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;
-- Export voor PowerBI vastgoed
CREATE OR REPLACE VIEW blcc_v_export_pwrbi_vastgoed
(
result,
result_order
)
AS
SELECT '"alg_onrgoed_key"'
|| ';"alg_onrgoed_type"'
|| ';"gebouwcode"'
|| ';"verdiepingvolgnr"'
|| ';"verdiepingcode"'
|| ';"ruimtefunctie"'
|| ';"ruimtenummer"'
|| ';"ruimteomschrijving"'
|| ';"vvo"'
|| ';"bvo"'
|| ';"lhkot_class"'
|| ';"contract"'
|| ';"verantw1"'
|| ';"verantw2"'
|| ';"dienstverlener"'
|| ';"eigenaar"'
|| ';"gebouwfunctie"'
|| ';"bouwjaar"'
|| ';"strategie"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| ALG_ONRGOED_KEY
|| '";"'
|| ALG_ONRGOED_TYPE
|| '";"'
|| GEBOUWCODE
|| '";"'
|| VERDIEPINGVOLGNR
|| '";"'
|| VERDIEPINGCODE
|| '";"'
|| RUIMTEFUNCTIE
|| '";"'
|| RUIMTENUMMER
|| '";"'
|| RUIMTEOMSCHRIJVING
|| '";"'
|| VVO
|| '";"'
|| BVO
|| '";"'
|| LHKOT_CLASS
|| '";"'
|| CONTRACT
|| '";"'
|| GEBOUWVERANTW1
|| '";"'
|| GEBOUWVERANTW2
|| '";"'
|| DIENSTVERLENER
|| '";"'
|| EIGENAAR
|| '";"'
|| GEBOUWFUNCTIE
|| '";"'
|| BOUWJAAR
|| '";"'
|| STRATEGIE
|| '"',
1
FROM blcc_v_rap_fact_vastgoedgeg;
-- Export voor PowerBI contracten
CREATE OR REPLACE VIEW blcc_v_export_pwrbi_contract
(
result,
result_order
)
AS
SELECT '"sortering"'
|| ';"contractnr"'
|| ';"contractstatus"'
|| ';"externnr"'
|| ';"contractsoort"'
|| ';"debiteurnr"'
|| ';"contractant"'
|| ';"ingangsdatum"'
|| ';"rappeldatum"'
|| ';"opzegdatum"'
|| ';"einddatum"'
|| ';"korting"'
|| ';"kenmerk1"'
|| ';"kenmerk2"'
|| ';"kenmerk3"'
|| ';"kenmerk4"'
|| ';"kenmerk5"'
|| ';"kenmerk6"'
|| ';"kenmerk7"'
|| ';"kenmerk8"'
|| ';"kenmerk9"'
|| ';"kenmerk10"'
|| ';"kenmerk11"'
|| ';"kenmerk12"'
|| ';"kenmerk13"'
|| ';"kenmerk14"'
|| ';"kenmerk15"'
|| ';"kenmerk16"'
|| ';"kenmerk17"'
|| ';"kenmerk18"'
|| ';"kenmerk19"'
|| ';"kenmerk20"'
|| ';"kenmerk21"'
|| ';"kenmerk22"'
|| ';"kenmerk23"'
|| ';"kenmerk24"'
|| ';"kenmerk25"'
|| ';"kenmerk26"'
|| ';"kenmerk27"'
|| ';"kenmerk28"'
|| ';"kenmerk29"'
|| ';"kenmerk30"'
|| ';"kenmerk31"'
|| ';"kenmerk32"'
|| ';"kenmerk33"'
|| ';"kenmerk34"'
|| ';"kenmerk35"'
|| ';"kenmerk36"'
|| ';"kenmerk37"'
|| ';"kenmerk38"'
|| ';"kenmerk39"'
|| ';"kenmerk40"'
|| ';"kenmerk41"'
|| ';"kenmerk42"'
|| ';"kenmerk43"'
|| ';"kenmerk44"'
|| ';"kenmerk45"'
|| ';"kenmerk46"'
|| ';"kenmerk47"'
|| ';"kenmerk48"'
|| ';"kenmerk49"'
|| ';"kenmerk50"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| SORTERING
|| '";"'
|| CONTRACTNR
|| '";"'
|| CONTRACTSTATUS
|| '";"'
|| EXTERNNR
|| '";"'
|| CONTRACTSOORT
|| '";"'
|| DEBITEURNR
|| '";"'
|| CONTRACTANT
|| '";"'
|| INGANGSDATUM
|| '";"'
|| RAPPELDATUM
|| '";"'
|| OPZEGDATUM
|| '";"'
|| EINDDATUM
|| '";"'
|| KORTING
|| '";"'
|| KENMERK1
|| '";"'
|| KENMERK2
|| '";"'
|| KENMERK3
|| '";"'
|| KENMERK4
|| '";"'
|| KENMERK5
|| '";"'
|| KENMERK6
|| '";"'
|| KENMERK7
|| '";"'
|| KENMERK8
|| '";"'
|| KENMERK9
|| '";"'
|| KENMERK10
|| '";"'
|| KENMERK11
|| '";"'
|| KENMERK12
|| '";"'
|| KENMERK13
|| '";"'
|| KENMERK14
|| '";"'
|| KENMERK15
|| '";"'
|| KENMERK16
|| '";"'
|| KENMERK17
|| '";"'
|| KENMERK18
|| '";"'
|| KENMERK19
|| '";"'
|| KENMERK20
|| '";"'
|| KENMERK21
|| '";"'
|| KENMERK22
|| '";"'
|| KENMERK23
|| '";"'
|| KENMERK24
|| '";"'
|| KENMERK25
|| '";"'
|| KENMERK26
|| '";"'
|| KENMERK27
|| '";"'
|| KENMERK28
|| '";"'
|| KENMERK29
|| '";"'
|| KENMERK30
|| '";"'
|| KENMERK31
|| '";"'
|| KENMERK32
|| '";"'
|| KENMERK33
|| '";"'
|| KENMERK34
|| '";"'
|| KENMERK35
|| '";"'
|| KENMERK36
|| '";"'
|| KENMERK37
|| '";"'
|| KENMERK38
|| '";"'
|| KENMERK39
|| '";"'
|| KENMERK40
|| '";"'
|| KENMERK41
|| '";"'
|| KENMERK42
|| '";"'
|| KENMERK43
|| '";"'
|| KENMERK44
|| '";"'
|| KENMERK45
|| '";"'
|| KENMERK46
|| '";"'
|| KENMERK47
|| '";"'
|| KENMERK48
|| '";"'
|| KENMERK49
|| '";"'
|| KENMERK50
|| '"',
1
FROM blcc_v_rap_fact_contractgeg;
-- BLCC#53262: Export voor PowerBI additionele diensten
CREATE OR REPLACE VIEW blcc_v_export_pwrbi_addd
(
result,
result_order
)
AS
SELECT '"code"'
|| ';"valuta"'
|| ';"factuurdatum"'
|| ';"periode"'
|| ';"factuurnummer"'
|| ';"vervaldatum"'
|| ';"nummer"'
|| ';"grtboekrek"'
|| ';"rel/kpl"'
|| ';"prj/activa"'
|| ';"bedrag"'
|| ';"debitcredit"'
|| ';"omschrijving"'
|| ';"btwcode"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| code
|| '";"'
|| valuta
|| '";"'
|| factuurdatum
|| '";"'
|| periode
|| '";"'
|| factuurnummer
|| '";"'
|| vervaldatum
|| '";"'
|| nummer
|| '";"'
|| grtboekrek
|| '";"'
|| rel_kpl
|| '";"'
|| prj_activa
|| '";"'
|| bedrag
|| '";"'
|| debitcredit
|| '";"'
|| omschrijving
|| '";"'
|| btwcode
|| '"',
1
FROM blcc_v_rap_export_addd;
-- BLCC#37691: Facturatie verhuur (M2 en meer)!
/* 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, -- M2 feitelijk!
'R' || TRIM (SUBSTR (x.cnt_contract_nummer, 1, INSTR (x.cnt_contract_nummer || '/', '/') - 1)) po_nr, -- Regulier
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)
NULL 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 (btwvl.prs_kenmerklink_waarde, '1', 'V', DECODE (x.btw, 0, '0', 'H')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (x.btw, 0, 'Nul', 'Hoog')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (x.btw, 0, 0, 21)) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, 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) *
((DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, 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)) +
(DECODE (btwvl.prs_kenmerklink_waarde, '1', 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)) +
(DECODE (btwvl.prs_kenmerklink_waarde, '1', 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)) +
(DECODE (btwvl.prs_kenmerklink_waarde, '1', 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)) +
(DECODE (btwvl.prs_kenmerklink_waarde, '1', 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
NULL mld_melding_omschrijving
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 prs_kenmerklink btwvl
ON x.prs_bedrijf_key = btwvl.prs_link_key
AND btwvl.prs_kenmerklink_verwijder IS NULL
AND btwvl.prs_kenmerk_key = 1120 -- BTW verlegd
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 -- M2 correctie!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'R' || TRIM (SUBSTR (x.cnt_contract_nummer, 1, INSTR (x.cnt_contract_nummer || '/', '/') - 1)) po_nr, -- Regulier
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)
NULL 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 (btwvl.prs_kenmerklink_waarde, '1', 'V', DECODE (x.btw, 0, '0', 'H')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (x.btw, 0, 'Nul', 'Hoog')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (x.btw, 0, 0, 21)) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, 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)!
'C' alg_onroerendgoed_type,
-1 alg_onroerendgoed_keys,
'Correctie' alg_plaatsaanduiding,
fac.safe_to_number (clo.cnt_kenmerkcontract_waarde) l_opp,
fac.safe_to_number (cho.cnt_kenmerkcontract_waarde) h_opp,
fac.safe_to_number (cko.cnt_kenmerkcontract_waarde) k_opp,
fac.safe_to_number (coo.cnt_kenmerkcontract_waarde) o_opp,
fac.safe_to_number (cto.cnt_kenmerkcontract_waarde) 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 (clo.cnt_kenmerkcontract_waarde), 0) * COALESCE (ltar.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (cho.cnt_kenmerkcontract_waarde), 0) * COALESCE (htar.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (cko.cnt_kenmerkcontract_waarde), 0) * COALESCE (ktar.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (coo.cnt_kenmerkcontract_waarde), 0) * COALESCE (otar.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (cto.cnt_kenmerkcontract_waarde), 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) *
((DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) * COALESCE (fac.safe_to_number (clo.cnt_kenmerkcontract_waarde), 0) * COALESCE (ltar.fac_usrdata_prijs / 12, 0)) +
(DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) * COALESCE (fac.safe_to_number (cho.cnt_kenmerkcontract_waarde), 0) * COALESCE (htar.fac_usrdata_prijs / 12, 0)) +
(DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) * COALESCE (fac.safe_to_number (cko.cnt_kenmerkcontract_waarde), 0) * COALESCE (ktar.fac_usrdata_prijs / 12, 0)) +
(DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) * COALESCE (fac.safe_to_number (coo.cnt_kenmerkcontract_waarde), 0) * COALESCE (otar.fac_usrdata_prijs / 12, 0)) +
(DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) * COALESCE (fac.safe_to_number (cto.cnt_kenmerkcontract_waarde), 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
NULL mld_melding_omschrijving
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 prs_kenmerklink btwvl
ON x.prs_bedrijf_key = btwvl.prs_link_key
AND btwvl.prs_kenmerklink_verwijder IS NULL
AND btwvl.prs_kenmerk_key = 1120 -- BTW verlegd
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 clo
ON x.cnt_contract_key = clo.cnt_contract_key
AND clo.cnt_kenmerkcontract_verwijder IS NULL
AND clo.cnt_kenmerk_key = 381 -- CL-Oppervlakte
LEFT JOIN cnt_kenmerkcontract cho
ON x.cnt_contract_key = cho.cnt_contract_key
AND cho.cnt_kenmerkcontract_verwijder IS NULL
AND cho.cnt_kenmerk_key = 382 -- CH-Oppervlakte
LEFT JOIN cnt_kenmerkcontract cko
ON x.cnt_contract_key = cko.cnt_contract_key
AND cko.cnt_kenmerkcontract_verwijder IS NULL
AND cko.cnt_kenmerk_key = 383 -- CK-Oppervlakte
LEFT JOIN cnt_kenmerkcontract coo
ON x.cnt_contract_key = coo.cnt_contract_key
AND coo.cnt_kenmerkcontract_verwijder IS NULL
AND coo.cnt_kenmerk_key = 384 -- CO-Oppervlakte
LEFT JOIN cnt_kenmerkcontract cto
ON x.cnt_contract_key = cto.cnt_contract_key
AND cto.cnt_kenmerkcontract_verwijder IS NULL
AND cto.cnt_kenmerk_key = 385 -- CT-Oppervlakte
WHERE vsov_kc.cnt_kenmerkcontract_waarde = '454' -- ALLEEN Verhuurd factureren!
AND ( clo.cnt_kenmerkcontract_waarde IS NOT NULL
OR cho.cnt_kenmerkcontract_waarde IS NOT NULL
OR cko.cnt_kenmerkcontract_waarde IS NOT NULL
OR coo.cnt_kenmerkcontract_waarde IS NOT NULL
OR cto.cnt_kenmerkcontract_waarde IS NOT NULL)
UNION ALL -- FES
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'R' || TRIM (SUBSTR (x.cnt_contract_nummer, 1, INSTR (x.cnt_contract_nummer || '/', '/') - 1)) po_nr, -- Regulier
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)
NULL 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 (btwvl.prs_kenmerklink_waarde, '1', 'V', DECODE (x.btw, 0, '0', 'H')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (x.btw, 0, 'Nul', 'Hoog')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (x.btw, 0, 0, 21)) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, 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)) *
((DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, 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)) +
(DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, 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
NULL mld_melding_omschrijving
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 prs_kenmerklink btwvl
ON x.prs_bedrijf_key = btwvl.prs_link_key
AND btwvl.prs_kenmerklink_verwijder IS NULL
AND btwvl.prs_kenmerk_key = 1120 -- BTW verlegd
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,
'R' || TRIM (SUBSTR (x.cnt_contract_nummer, 1, INSTR (x.cnt_contract_nummer || '/', '/') - 1)) po_nr, -- Regulier
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.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)
NULL 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,
DECODE (btw_vl, '1', 'V', '0') fin_btwtabelwaarde_code,
DECODE (btw_vl, '1', 'Verlegd', 'Nul') fin_btwtabelwaarde_oms,
DECODE (btw_vl, '1', 0, 0) fin_btwtabelwaarde_perc,
DECODE (btw_vl, '1', 1, 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.mndopp - x.mndfes -
(((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 - x.mndfes -
-- (((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
NULL mld_melding_omschrijving
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 btw_nr,
btwvl.prs_kenmerklink_waarde btw_vl,
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)) +
(COALESCE (fac.safe_to_number (clo.cnt_kenmerkcontract_waarde), 0) * COALESCE (ltar.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (cho.cnt_kenmerkcontract_waarde), 0) * COALESCE (htar.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (cko.cnt_kenmerkcontract_waarde), 0) * COALESCE (ktar.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (coo.cnt_kenmerkcontract_waarde), 0) * COALESCE (otar.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (cto.cnt_kenmerkcontract_waarde), 0) * COALESCE (ttar.fac_usrdata_prijs / 12, 0))), 2))
mndopp, -- Netto maandbedrag alle meters (incl. kortingspercentage)
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)) *
((DECODE (fes.cnt_kenmerkcontract_waarde, NULL, 0, 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 / 12, 0)) +
(DECODE (fes.cnt_kenmerkcontract_waarde, NULL, 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 (kfes.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (clo.cnt_kenmerkcontract_waarde), 0) * COALESCE (lfes.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (cko.cnt_kenmerkcontract_waarde), 0) * COALESCE (kfes.fac_usrdata_prijs / 12, 0))), 2))
mndfes -- Netto maandbedrag FES-korting (excl. 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 prs_kenmerklink btwvl
ON x.prs_bedrijf_key = btwvl.prs_link_key
AND btwvl.prs_kenmerklink_verwijder IS NULL
AND btwvl.prs_kenmerk_key = 1120 -- BTW verlegd
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 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_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 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 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
LEFT JOIN cnt_kenmerkcontract clo
ON x.cnt_contract_key = clo.cnt_contract_key
AND clo.cnt_kenmerkcontract_verwijder IS NULL
AND clo.cnt_kenmerk_key = 381 -- CL-Oppervlakte
LEFT JOIN cnt_kenmerkcontract cho
ON x.cnt_contract_key = cho.cnt_contract_key
AND cho.cnt_kenmerkcontract_verwijder IS NULL
AND cho.cnt_kenmerk_key = 382 -- CH-Oppervlakte
LEFT JOIN cnt_kenmerkcontract cko
ON x.cnt_contract_key = cko.cnt_contract_key
AND cko.cnt_kenmerkcontract_verwijder IS NULL
AND cko.cnt_kenmerk_key = 383 -- CK-Oppervlakte
LEFT JOIN cnt_kenmerkcontract coo
ON x.cnt_contract_key = coo.cnt_contract_key
AND coo.cnt_kenmerkcontract_verwijder IS NULL
AND coo.cnt_kenmerk_key = 384 -- CO-Oppervlakte
LEFT JOIN cnt_kenmerkcontract cto
ON x.cnt_contract_key = cto.cnt_contract_key
AND cto.cnt_kenmerkcontract_verwijder IS NULL
AND cto.cnt_kenmerk_key = 385 -- CT-Oppervlakte
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,
btwvl.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,
'R' || TRIM (SUBSTR (c.cnt_contract_nummer, 1, INSTR (c.cnt_contract_nummer || '/', '/') - 1)) po_nr, -- Regulier
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)
NULL 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 (btwvl.prs_kenmerklink_waarde, '1', 'V', DECODE (c.ins_discipline_key, 761, '0', 'H')) fin_btwtabelwaarde_code, -- OZB altijd 0%
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (c.ins_discipline_key, 761, 'Nul', 'Hoog')) fin_btwtabelwaarde_oms, -- OZB altijd 0%
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (c.ins_discipline_key, 761, 0, 21)) fin_btwtabelwaarde_perc, -- OZB altijd 0%
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, 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 (btwvl.prs_kenmerklink_waarde, '1', 0, 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<47>NISCH ONDERHOUD', '8105',
'BIJDRAGE AFVAL', '8106',
'BIJDRAGE GASSEN', '8107',
'PARKING', '8112',
'PUBLIC AMENITIES', '8113',
'8100'))
grtboekrek,
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving
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)
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1120) btwvl -- BTW verlegd
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(+)
AND c.cnt_prs_bedrijf_key = btwvl.prs_link_key(+)
UNION ALL -- Alle individuele kortingsbedragen (per maand)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'R' || TRIM (SUBSTR (c.cnt_contract_nummer, 1, INSTR (c.cnt_contract_nummer || '/', '/') - 1)) po_nr, -- Regulier
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)
NULL 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 (btwvl.prs_kenmerklink_waarde, '1', 'V', DECODE (c.ins_discipline_key, 761, '0', 'H')) fin_btwtabelwaarde_code, -- OZB altijd 0%
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (c.ins_discipline_key, 761, 'Nul', 'Hoog')) fin_btwtabelwaarde_oms, -- OZB altijd 0%
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (c.ins_discipline_key, 761, 0, 21)) fin_btwtabelwaarde_perc, -- OZB altijd 0%
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, 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 (btwvl.prs_kenmerklink_waarde, '1', 0, 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<47>NISCH ONDERHOUD', '8105',
'BIJDRAGE AFVAL', '8106',
'BIJDRAGE GASSEN', '8107',
'PARKING', '8112',
'PUBLIC AMENITIES', '8113',
'8100'))
grtboekrek,
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving
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<><67>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)
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1120) btwvl -- BTW verlegd
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(+)
AND c.cnt_prs_bedrijf_key = btwvl.prs_link_key(+)
UNION ALL -- Alle correctiemeldingen (ook als contract inmiddels verlopen)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'X' || TRIM (SUBSTR (c.cnt_contract_nummer, 1, INSTR (c.cnt_contract_nummer || '/', '/') - 1)) po_nr, -- Correctie
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)
NULL 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 (btwvl.prs_kenmerklink_waarde,
'1', 'V',
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 (btwvl.prs_kenmerklink_waarde,
'1', 'Verlegd',
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 (btwvl.prs_kenmerklink_waarde,
'1', 0,
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,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, 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 (btwvl.prs_kenmerklink_waarde,
'1', 0,
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<47>NISCH ONDERHOUD', '8105',
'BIJDRAGE AFVAL', '8106',
'BIJDRAGE GASSEN', '8107',
'PARKING', '8112',
'PUBLIC AMENITIES', '8113',
'CFF RENT', '8130',
'8100'))
grtboekrek,
m.mld_melding_key, -- Correctiemelding-key
TRIM (m.mld_melding_omschrijving) mld_melding_omschrijving
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 prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1120) btwvl, -- BTW verlegd
(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<63>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 c.cnt_prs_bedrijf_key = btwvl.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,
NULL 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,
vf.fin_verkoopfactuur_c8 mld_melding_omschrijving
FROM fin_verkoopfactuur vf,
cnt_contract c,
--cnt_discipline cd,
--prs_kostensoort ks,
prs_bedrijf b
WHERE SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- Of andere conditie?
AND 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
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 (fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', 'V', 'VBINEU_VERL', '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 (fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', 'V', 'VBINEU_VERL', '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) = 1 -- Nacht na 1e werkdag!
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) = 1 -- Nacht na 1e werkdag!
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 verhuurcontractkosten 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 SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- vf.fin_verkoopfactuur_xmlnode = 'contract'
AND 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_bedrijf_key NUMBER (10);
v_old_po_nr VARCHAR2 (50);
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 verhuurcontracten (= 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 10e werkdag van de maand (<28>n<EFBFBD>geen weekend <20>n<EFBFBD>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 -- Nacht na 1e werkdag!
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_bedrijf_key := -1;
v_old_po_nr := '';
-- Factureer/bevries verhuurcontractkosten en verwerk=AV alle eventuele
-- correctiemeldingen.
FOR rec IN c1
LOOP
BEGIN
IF rec.prs_bedrijf_key != v_old_bedrijf_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, 5, 1) = '1' -- Boekstuknummers in formaat <yyyy>1!
AND 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_bedrijf_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 <20>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
rec.mld_melding_omschrijving, -- 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, 'FACT-freeze');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'FACT-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
'/../../Fplace5i/CUST/BLCC/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, 'FACT-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.
-- BLCC#53262: Facturatie additionele diensten.
CREATE OR REPLACE VIEW blcc_v_export_pdf_att
(
result,
result_order
)
AS -- Facturatie huur
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
UNION ALL -- Facturatie additionele diensten
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 = 341 -- CUST02-noti
AND n.fac_notificatie_refkey = vfk.fin_verkoopfactuurkop_key;
CREATE OR REPLACE VIEW blcc_v_rap_fact_controle
(
fclt_x_stroom,
fclt_f_controle,
controle_ref
)
AS
WITH periodegeg AS (SELECT * FROM blcc_v_fact_actual)
SELECT DISTINCT 'Verhuur', '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 'Verhuur', '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 'Verhuur', '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 'Verhuur', '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 'Verhuur', '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 'Verhuur', '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 'Verhuur', '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 'Verhuur', '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 'Verhuur', '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 'Verhuur', '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 'Verhuur', 'Correctiemelding nog niet in conceptfactuur',
TO_CHAR (m.mld_melding_key)
FROM mld_melding m
WHERE m.mld_stdmelding_key = 482 -- Financi<63>le correctie
AND m.mld_melding_status IN (0, 2, 3) -- Pending/Ingevoerd/Ingezien
UNION ALL
SELECT DISTINCT 'Verhuur', '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'
UNION ALL
SELECT DISTINCT 'Verhuur', 'Debiteurnummer onbekend',
v.prs_debiteur_naam
FROM periodegeg v, prs_bedrijf b
WHERE v.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_overeenkomst_nr IS NULL
UNION ALL
SELECT 'Verhuur', 'Aantal factuurregels > max. #regels (zoals geconfigureerd)',
x.prs_debiteur_naam || ' / ' || x.po_nr
FROM ( SELECT prs_debiteur_naam, po_nr, COUNT (*) factuurregels
FROM blcc_v_fact_actual
GROUP BY prs_debiteur_naam, po_nr) x
WHERE x.factuurregels > fac.getsetting ('res_xml_max_rsv_ruimte')
UNION ALL
SELECT 'Add. Diensten', 'H-afdeling leeg', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key)
UNION ALL
SELECT 'Add. Diensten', 'H-afdeling zonder logins', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key)
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
AND p.prs_afdeling_key = a.prs_afdeling_key)
UNION ALL
SELECT DISTINCT 'Add. Diensten', 'H-afdeling op ander dan niveau-1', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom ab
WHERE ab.prs_bedrijf_key = 22 -- Huurders
AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key3, ab.prs_afdeling_key4, ab.prs_afdeling_key5) IS NOT NULL
AND ab.prs_afdeling_key = a.prs_afdeling_key)
UNION ALL
SELECT DISTINCT 'Add. Diensten', 'H-afdeling niet gelinkt aan H-relatie', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a--, prs_v_aanwezigperslid ap
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
--AND a.prs_afdeling_key = ap.prs_afdeling_key
--AND COALESCE (ap.prs_perslid_oslogin, ap.prs_perslid_oslogin2) IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigkenmerklink kl, prs_v_aanwezigbedrijf b
WHERE kl.prs_kenmerklink_niveau = 'A'
AND kl.prs_kenmerk_key = 1001 -- Debiteurnummer
AND kl.prs_kenmerklink_waarde = b.prs_overeenkomst_nr
AND kl.prs_link_key = a.prs_afdeling_key)
UNION ALL
SELECT DISTINCT 'Add. Diensten', 'H-afdeling niet gelinkt aan actief AD-contract', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a--, prs_v_aanwezigperslid ap
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
--AND a.prs_afdeling_key = ap.prs_afdeling_key
--AND COALESCE (ap.prs_perslid_oslogin, ap.prs_perslid_oslogin2) IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key IN (1841, 1842)
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.prs_afdeling_key_eig = a.prs_afdeling_key)
UNION ALL
SELECT DISTINCT 'Add. Diensten', 'H-afdeling gelinkt aan >1 actief AD-contract', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a, cnt_v_aanwezigcontract c1
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = c1.prs_afdeling_key_eig
AND c1.ins_discipline_key IN (1841, 1842)
AND TRUNC (c1.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c1.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c1.cnt_contract_status = 0 -- NIET Gesloten
AND EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract c2
WHERE c2.ins_discipline_key IN (1841, 1842)
AND TRUNC (c2.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c2.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c2.cnt_contract_status = 0 -- NIET Gesloten
AND c2.ins_discipline_key = c1.ins_discipline_key
AND c2.prs_afdeling_key_eig = c1.prs_afdeling_key_eig
AND c2.cnt_contract_key != c1.cnt_contract_key)
UNION ALL
SELECT DISTINCT 'Add. Diensten', 'H-relatie niet gelinkt aan H-afdeling', b.prs_bedrijf_naam
FROM prs_v_aanwezigbedrijf b
WHERE b.prs_overeenkomst_nr IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_afdeling a, prs_v_aanwezigkenmerklink kl
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = kl.prs_link_key
AND kl.prs_kenmerklink_niveau = 'A'
AND kl.prs_kenmerk_key = 1001 -- Debiteurnummer
AND kl.prs_kenmerklink_waarde = b.prs_overeenkomst_nr)
UNION ALL
SELECT DISTINCT 'Add. Diensten', 'H-relatie niet gelinkt aan actief AD-contract', b.prs_bedrijf_naam
FROM prs_v_aanwezigbedrijf b
WHERE EXISTS
(SELECT 1
FROM prs_afdeling a, prs_v_aanwezigkenmerklink kl
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = kl.prs_link_key
AND kl.prs_kenmerklink_niveau = 'A'
AND kl.prs_kenmerk_key = 1001 -- Debiteurnummer
AND kl.prs_kenmerklink_waarde = b.prs_overeenkomst_nr)
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key IN (1841, 1842)
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key)
UNION ALL
SELECT DISTINCT 'Add. Diensten', 'H-relatie gelinkt aan >1 actief AD-contract', b.prs_bedrijf_naam
FROM prs_v_aanwezigbedrijf b, cnt_v_aanwezigcontract c1
WHERE b.prs_bedrijf_key = c1.cnt_prs_bedrijf_key
AND c1.ins_discipline_key IN (1841, 1842)
AND TRUNC (c1.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c1.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c1.cnt_contract_status = 0 -- NIET Gesloten
AND EXISTS
(SELECT 1
FROM prs_afdeling a, prs_v_aanwezigkenmerklink kl
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = kl.prs_link_key
AND kl.prs_kenmerklink_niveau = 'A'
AND kl.prs_kenmerk_key = 1001 -- Debiteurnummer
AND kl.prs_kenmerklink_waarde = b.prs_overeenkomst_nr)
AND EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract c2
WHERE c2.ins_discipline_key IN (1841, 1842)
AND TRUNC (c2.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c2.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c2.cnt_contract_status = 0 -- NIET Gesloten
AND c2.ins_discipline_key = c1.ins_discipline_key
AND c2.prs_afdeling_key_eig = c1.prs_afdeling_key_eig
AND c2.cnt_contract_key != c1.cnt_contract_key)
UNION ALL
SELECT DISTINCT 'Add. Diensten', 'Actief AD-contract incorrect gelinkt aan huurder', c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
FROM cnt_v_aanwezigcontract c, prs_v_afdeling_boom ab, prs_v_aanwezigkenmerklink kl, prs_bedrijf b
WHERE c.ins_discipline_key IN (1841, 1842)
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key(+)
AND ab.prs_bedrijf_key(+) = 22 -- Huurders
AND c.prs_afdeling_key_eig = kl.prs_link_key(+)
AND kl.prs_kenmerklink_niveau(+) = 'A'
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
AND kl.prs_kenmerklink_waarde != b.prs_overeenkomst_nr
UNION ALL
SELECT DISTINCT 'Add. Diensten', 'H-afdeling niet dezelfde naam als gelinkte H-relatie', a.prs_afdeling_omschrijving || ' <> ' || b.prs_bedrijf_naam
FROM prs_afdeling a, prs_v_aanwezigkenmerklink kl, prs_v_aanwezigbedrijf b
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = kl.prs_link_key(+)
AND kl.prs_kenmerklink_niveau = 'A'
AND kl.prs_kenmerk_key = 1001 -- Debiteurnummer
AND kl.prs_kenmerklink_waarde = b.prs_overeenkomst_nr
AND UPPER (a.prs_afdeling_omschrijving) != TRIM (b.prs_bedrijf_naam_upper)
UNION ALL
SELECT 'Uitvoerenden', 'UV-afdeling leeg', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key)
UNION ALL
SELECT 'Uitvoerenden', 'UV-afdeling zonder logins', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key)
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
AND p.prs_afdeling_key = a.prs_afdeling_key)
UNION ALL
SELECT DISTINCT 'Uitvoerenden', 'UV-afdeling met logins niet gelinkt aan UV-relatie', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a, prs_v_aanwezigperslid ap
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND a.prs_afdeling_key = ap.prs_afdeling_key
AND COALESCE (ap.prs_perslid_oslogin, ap.prs_perslid_oslogin2) IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_contactpersoon cp, prs_bedrijf b, prs_perslid p
WHERE cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND cp.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = ap.prs_afdeling_key)
UNION ALL
SELECT DISTINCT 'Uitvoerenden', 'UV-afdeling gelinkt aan UV-relatie via persoon zonder login', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || p.prs_perslid_naam
FROM prs_afdeling a, prs_v_aanwezigperslid p
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NULL
AND EXISTS
(SELECT 1
FROM prs_contactpersoon cp, prs_bedrijf b
WHERE cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND cp.prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT DISTINCT 'Uitvoerenden', 'UV-relatie gelinkt aan UV-afdeling via verwijderde persoon', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || cp.prs_contactpersoon_naam
FROM prs_afdeling a, prs_perslid p, prs_contactpersoon cp, prs_bedrijf b
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_verwijder IS NOT NULL
AND p.prs_perslid_key = cp.prs_perslid_key
AND cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
UNION ALL
SELECT DISTINCT 'Uitvoerenden', 'UV-afdeling niet dezelfde naam als gelinkte UV-relatie', a.prs_afdeling_omschrijving || ' <> ' || b.prs_bedrijf_naam
FROM prs_afdeling a, prs_perslid p, prs_contactpersoon cp, prs_bedrijf b
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = cp.prs_perslid_key
AND cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND UPPER (a.prs_afdeling_omschrijving) != TRIM (b.prs_bedrijf_naam_upper)
;
/*
UNION ALL
SELECT '***UV-account niet gelinkt aan UV-relatie met RELUSE-rechten', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || p.prs_perslid_naam
FROM prs_afdeling a, prs_v_aanwezigperslid p
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_contactpersoon cp, prs_bedrijf b
WHERE cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND cp.prs_perslid_key = p.prs_perslid_key)
AND EXISTS
(SELECT 1
FROM fac_gebruikersgroep gg, fac_groeprechten gr
WHERE gg.fac_groep_key = gr.fac_groep_key
AND gr.fac_functie_key IN (43, 462) -- RELMAN/RELUSE
AND gg.prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT '***UV-account niet gelinkt aan UV-relatie met ORDxxx-rechten', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || p.prs_perslid_naam
FROM prs_afdeling a, prs_v_aanwezigperslid p
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_contactpersoon cp, prs_bedrijf b
WHERE cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND cp.prs_perslid_key = p.prs_perslid_key)
AND EXISTS
(SELECT 1
FROM fac_gebruikersgroep gg, fac_groeprechten gr
WHERE gg.fac_groep_key = gr.fac_groep_key
AND gr.fac_functie_key IN (31, 32, 34, 35, 242) -- ORDBOF/ORDBO2/ORDSUP/ORDFIN/ORDAFR
AND gg.prs_perslid_key = p.prs_perslid_key);
*/
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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, '<LEEG>'))) 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, -- M2 feitelijk!
'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 -- M2 correctie!
SELECT x.cnt_contract_key,
'Campus Rent' regel,
((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) *
((COALESCE (fac.safe_to_number (clo.cnt_kenmerkcontract_waarde), 0) * COALESCE (ltar.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (cho.cnt_kenmerkcontract_waarde), 0) * COALESCE (htar.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (cko.cnt_kenmerkcontract_waarde), 0) * COALESCE (ktar.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (coo.cnt_kenmerkcontract_waarde), 0) * COALESCE (otar.fac_usrdata_prijs / 12, 0)) +
(COALESCE (fac.safe_to_number (cto.cnt_kenmerkcontract_waarde), 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_kenmerkcontract clo
ON x.cnt_contract_key = clo.cnt_contract_key
AND clo.cnt_kenmerkcontract_verwijder IS NULL
AND clo.cnt_kenmerk_key = 381 -- CL-Oppervlakte
LEFT JOIN cnt_kenmerkcontract cho
ON x.cnt_contract_key = cho.cnt_contract_key
AND cho.cnt_kenmerkcontract_verwijder IS NULL
AND cho.cnt_kenmerk_key = 382 -- CH-Oppervlakte
LEFT JOIN cnt_kenmerkcontract cko
ON x.cnt_contract_key = cko.cnt_contract_key
AND cko.cnt_kenmerkcontract_verwijder IS NULL
AND cko.cnt_kenmerk_key = 383 -- CK-Oppervlakte
LEFT JOIN cnt_kenmerkcontract coo
ON x.cnt_contract_key = coo.cnt_contract_key
AND coo.cnt_kenmerkcontract_verwijder IS NULL
AND coo.cnt_kenmerk_key = 384 -- CO-Oppervlakte
LEFT JOIN cnt_kenmerkcontract cto
ON x.cnt_contract_key = cto.cnt_contract_key
AND cto.cnt_kenmerkcontract_verwijder IS NULL
AND cto.cnt_kenmerk_key = 385 -- CT-Oppervlakte
WHERE ( clo.cnt_kenmerkcontract_waarde IS NOT NULL
OR cho.cnt_kenmerkcontract_waarde IS NOT NULL
OR cko.cnt_kenmerkcontract_waarde IS NOT NULL
OR coo.cnt_kenmerkcontract_waarde IS NOT NULL
OR cto.cnt_kenmerkcontract_waarde IS NOT NULL)
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 * (mndopp - mndfes - fac.safe_to_number (cnt_kenmerkcontract_waarde))
mndnet -- CFF-subsidie * Netto maandbedrag alle meters minus Netto maandbedrag FES-korting minus 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))))
mndopp, -- Netto maandbedrag alle meters (incl. kortingspercentage)
SUM ((DECODE (fes.cnt_kenmerkcontract_waarde, NULL, 0, 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 / 12, 0)) +
(DECODE (fes.cnt_kenmerkcontract_waarde, NULL, 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 (kfes.fac_usrdata_prijs / 12, 0)))
mndfes -- Netto maandbedrag FES-korting (excl. 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_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
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
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);
-- BLCC#51200: Indexatie 2019!
CREATE OR REPLACE PROCEDURE blcc_export_indexwerk (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
-- Huurcontracten+PP/CV+Shared facilities+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,
721, 2.00, -- PP/CV in 2019: 2,00%!
725, 2.00, -- Shared facilities in 2019: 2,00%!
761, 2.00, -- OZB in 2019: 2,00%!
1.0) -- 621+741 in 2019: 1,00%!
index_percentage
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key IN (621, 721, 725, 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.0; -- Default/standaard in 2019: 1,0%!
c_splitsindexdatum DATE := TO_DATE ('01012019', '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 (rc.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;
/
CREATE OR REPLACE VIEW blcc_v_rap_prs_accounts
(
soort_gebruiker,
naam,
email,
loginnaam,
afdeling,
laatste_login,
key_autorisaties
)
AS
SELECT DECODE (key_user, 1, 'KEY', 'FE'),
pf.prs_perslid_naam_full,
p.prs_perslid_email,
oslogin,
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving,
prs_perslid_login,
funcodes
FROM (SELECT *
FROM (SELECT p.prs_perslid_key prs_key,
COALESCE (p.prs_perslid_oslogin,
p.prs_perslid_oslogin2)
oslogin,
1 login, -- 1=user heeft login + groep + rechten
DECODE (
SIGN(TRUNC(COALESCE (p.prs_perslid_login + 92,
SYSDATE - 1))
- TRUNC (SYSDATE)),
-1,
0,
1) -- 1=user heeft laatste 92 dagen ingelogd
recent_login
FROM prs_v_aanwezigperslid p
WHERE EXISTS -- op basis van login + groep + rechten
(SELECT 1
FROM fac_v_webgebruiker gg
WHERE gg.prs_perslid_key = p.prs_perslid_key)
AND NOT EXISTS -- FSN#36597: WEB_FACFAC-users niet meetellen!
(SELECT 1
FROM fac_v_webgebruiker gg, fac_functie f
WHERE gg.prs_perslid_key =
p.prs_perslid_key
AND gg.fac_functie_key =
f.fac_functie_key
AND fac_functie_code = 'WEB_FACFAC')
UNION ALL -- FSN#24029: Soms ook personen zonder login meetellen!
SELECT p.prs_perslid_key,
NULL oslogin,
1 login, -- 1=user telt mee, want allow_for_others!
0 recent_login -- geen login, dus nooit recent ingelogd
FROM prs_v_aanwezigperslid p
WHERE COALESCE (p.prs_perslid_oslogin,
p.prs_perslid_oslogin2) IS NULL
AND (fac.getsetting ('mld_allow_for_others') = 1
OR EXISTS
(SELECT 1
FROM bes_disc_params dp
WHERE dp.bes_disc_params_for_others = 1))
UNION ALL -- FSN#27315: En ook eventuele "sensorusers" meetellen!
SELECT NULL prs_perslid_key,
NULL oslogin,
COUNT ( * ) login, -- elke sensoruser telt mee als FE!
1 recent_login -- recent actief dus tellen als recent
FROM ins_v_aanwezigdeel d
WHERE ins_deel_statedate > TRUNC (SYSDATE - 30)) x
LEFT JOIN -- 1=user heeft rechten op key-codes=notFE-codes
(SELECT DISTINCT fclt_f_login, 1 key_user
FROM fac_v_rap_groeprechten gr, fac_functie f
WHERE gr.fclt_f_funcode = f.fac_functie_code
AND f.fac_functie_groep IN (1, 2)) a
ON x.oslogin = a.fclt_f_login
LEFT JOIN -- FSN#30404: 1=user is cross-domain (xd) user
(SELECT p.prs_perslid_key, 1 xd_user
FROM prs_v_aanwezigperslid p,
prs_v_afdeling_boom ab
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
AND p.prs_perslid_apikey IS NOT NULL
AND ab.prs_bedrijf_key =
fac.safe_to_number(fac.getsetting('xd_primary_bedrijfkey')))
b
ON x.prs_key = b.prs_perslid_key
LEFT JOIN ( SELECT pfc.prs_perslid_key,
listagg (
pfc.fac_functie_code,
', ')
WITHIN GROUP (ORDER BY
pfc.fac_functie_code)
AS funcodes
FROM (SELECT DISTINCT
gg.prs_perslid_key,
SUBSTR (f.fac_functie_code, 5)
fac_functie_code
FROM fac_gebruikersgroep gg,
fac_groeprechten gr,
fac_functie f
WHERE gg.fac_groep_key =
gr.fac_groep_key
AND gr.fac_functie_key =
f.fac_functie_key
AND fac_functie_groep IN (1, 2))
pfc
GROUP BY pfc.prs_perslid_key) pfcs
ON x.prs_key = pfcs.prs_perslid_key) st,
prs_perslid p,
prs_v_perslid_fullnames pf,
prs_afdeling a
WHERE login = 1
AND p.prs_perslid_key = st.prs_key
AND pf.prs_perslid_key = p.prs_perslid_key
AND a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL;
-- BLCC#51370: View via API2 ontsloten tbv. Nsecure/Dataclient!
-- BLCC#56618: De default bezoekersactie igv. RES-bezoekers is: 41="Informeer mij niet vooraf en verwijs bezoek direct door."
CREATE OR REPLACE VIEW blcc_v_rap_dataclient_bez
(
afspraak_key, -- appointment_id
bezoekers_key, -- visitor_id
afspraak_datum,
afspraak_oms,
bez_achternaam,
bez_voornaam,
bez_mail,
bez_bedrijf,
cp_naam,
cp_mail,
cp_tel,
cp_bedrijf,
bez_voor,
bez_actie,
gebouwcode,
laatste_mut
)
AS
SELECT t.fac_tracking_refkey,
x.bez_bezoekers_key,
x.bez_afspraak_datum,
x.bez_afspraak_opmerking,
x.bez_afspraak_naam,
voornaam.bez_kenmerkwaarde_waarde,
email.bez_kenmerkwaarde_waarde,
x.bez_afspraak_bedrijf,
x.prs_perslid_naam_full,
x.prs_perslid_email,
COALESCE (x.prs_perslid_telefoonnr, x.prs_perslid_mobiel) tel,
x.prs_afdeling_omschrijving,
x.bez_afspraak_gastheer,
a2o.bez_kenmerk_default,
(SELECT alg_gebouw_code FROM alg_gebouw WHERE alg_gebouw_key = x.alg_gebouw_key)
gebouwcode,
t.tracking_datum
FROM (SELECT a.bez_afspraak_key,
b.bez_bezoekers_key,
a.bez_afspraak_datum,
a.bez_afspraak_opmerking,
b.bez_afspraak_naam,
b.bez_afspraak_bedrijf,
cpf.prs_perslid_naam_full,
cp.prs_perslid_email,
cp.prs_perslid_telefoonnr,
cp.prs_perslid_mobiel,
a.prs_afdeling_omschrijving,
a.bez_afspraak_gastheer,
COALESCE (a.bez_actie_key, 41) bez_actie_key, -- "Informeer mij niet vooraf en verwijs bezoek direct door."
aog.alg_gebouw_key
FROM bez_afspraak a,
bez_bezoekers b,
prs_perslid cp,
prs_v_perslid_fullnames cpf,
prs_v_afdeling_boom ab,
prs_afdeling a,
alg_v_onroerendgoed aog
WHERE a.bez_afspraak_datum > TRUNC (SYSDATE)
AND a.bez_afspraak_key = b.bez_afspraak_key
AND a.bez_afspraak_contact_key = cp.prs_perslid_key
AND cp.prs_perslid_key = cpf.prs_perslid_key
AND cp.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = a.prs_afdeling_key
AND a.alg_onrgoed_keys = aog.alg_onroerendgoed_keys(+)) x
LEFT JOIN bez_kenmerkwaarde voornaam
ON x.bez_bezoekers_key = voornaam.bez_bezoekers_key
AND voornaam.bez_kenmerkwaarde_verwijder IS NULL
AND voornaam.bez_kenmerk_key = 1080 -- Voornaam
LEFT JOIN bez_kenmerkwaarde email
ON x.bez_bezoekers_key = email.bez_bezoekers_key
AND email.bez_kenmerkwaarde_verwijder IS NULL
AND email.bez_kenmerk_key = 1000 -- E-mail adres
LEFT JOIN ( SELECT fac_tracking_refkey, MAX (fac_tracking_datum) tracking_datum
FROM fac_tracking
WHERE fac_srtnotificatie_key IN (26, 27) -- BEZMUT/BEZUPD
GROUP BY fac_tracking_refkey) t
ON x.bez_afspraak_key = t.fac_tracking_refkey
LEFT JOIN (SELECT ud.fac_usrdata_code, k.bez_kenmerk_default
FROM fac_v_aanwezigusrdata ud, bez_kenmerk k
WHERE ud.fac_usrtab_key = 501 -- Bezoekersactie
AND ud.fac_usrdata_omschr = TO_CHAR (k.bez_kenmerk_key)
AND k.bez_kenmerk_verwijder IS NULL) a2o -- Actie2Omschrijving
ON TO_CHAR (x.bez_actie_key) = TO_CHAR (a2o.fac_usrdata_code);
-- BLCC#55646: WTCA-ish rapportages tbv. afstemmingsoverleg en freeze per leverancier!
CREATE OR REPLACE VIEW blcc_v_rap_maand_ordafm
(
maand,
prefix,
opdr_key,
opdr,
kpn,
kplaats_nr,
kplaats_oms,
--corr_kplaats,
ksoort_code,
ksoort_oms,
--org_ksoort,
propertymanager,
gebouw_terrein,
verdieping,
ruimte,
vakgroep,
melding,
melder,
omschrijving,
opmerking,
aanmaak,
gepland,
gereed,
uitv_key,
uitvoerende,
contactpersoon,
kosten,
fclt_3d_afdeling_key
)
AS
SELECT TO_CHAR (SYSDATE, 'yyyy-mm'),
COALESCE (c2.prefix, a.prefix),
a.mld_opdr_key,
a.opdracht,
COALESCE (a.prs_kostenplaatsgrp_nr, SUBSTR (a.kdrager, 1, 5)) kpn,
a.kdrager,
a.kdrager_oms,
--c1.corr_kplaats,
COALESCE (c2.corr_ksoort, a.ksoort),
COALESCE (c2.corr_ksoort_oms, a.ksoort_oms),
--DECODE (c2.corr_ksoort, NULL, NULL, a.ksoort || '-' || a.ksoort_oms),
a.propertymanager,
a.gebouw_terrein,
a.verdieping,
a.ruimte,
COALESCE (c2.vakgroep, a.vakgroep),
COALESCE (c2.melding, a.melding),
a.melder,
a.oms,
a.opm,
a.datum_aanmaak,
a.datum_gepland,
a.datum_gereed,
a.prs_bedrijf_key,
a.bedrijf,
a.cp,
COALESCE (a.kosten, 0),
b.afdeling
FROM (SELECT o.mld_opdr_key,
COALESCE (og.alg_gebouw_key, og.alg_terreinsector_key) gebter_key,
sd.ins_srtdiscipline_prefix prefix,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht,
kpg.prs_kostenplaatsgrp_nr,
kp.prs_kostenplaats_nr kdrager,
kp.prs_kostenplaats_omschrijving kdrager_oms,
COALESCE (ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms) ksoort,
DECODE (ksm.prs_kostensoort_oms,
NULL, ksv.prs_kostensoort_opmerking,
ksm.prs_kostensoort_opmerking)
ksoort_oms,
pm.prs_perslid_naam_full propertymanager,
COALESCE (og.alg_terreinsector_code, og.alg_gebouw_code) gebouw_terrein,
og.alg_verdieping_code verdieping,
og.alg_ruimte_nr ruimte,
td.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving melding,
pf.prs_perslid_naam_full melder,
o.mld_opdr_omschrijving oms,
o.mld_opdr_opmerking opm,
o.mld_opdr_datumbegin datum_aanmaak, -- Of verzonden?
--fac.datumtijdplusuitvoertijd (o.mld_opdr_datumbegin, m.mld_melding_t_uitvoertijd.tijdsduur, m.mld_melding_t_uitvoertijd.eenheid)
o.mld_opdr_einddatum datum_gepland,
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) datum_gereed,
b.prs_bedrijf_key,
b.prs_bedrijf_naam bedrijf,
o.mld_opdr_contactpersoon cp,
o.mld_opdr_kosten kosten
FROM mld_opdr o,
prs_bedrijf b,
mld_melding m,
prs_v_perslid_fullnames_all pf,
alg_v_allonrgoed_gegevens og,
alg_gebouw g,
prs_v_perslid_fullnames pm,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostensoort ksm,
prs_kostensoort ksv,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE o.mld_typeopdr_key = 101 -- Alleen Werkopdrachten???
AND o.mld_statusopdr_key = 6 -- Afgemeld???
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_melding_key = m.mld_melding_key
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.prs_perslid_key_verantw = pm.prs_perslid_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 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_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) a
LEFT JOIN ( SELECT o.mld_opdr_key, MAX (p.prs_afdeling_key) afdeling
FROM mld_opdr o, prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cp.prs_bedrijf_key
AND cp.prs_perslid_key = p.prs_perslid_key
GROUP BY o.mld_opdr_key) b
ON a.mld_opdr_key = b.mld_opdr_key
LEFT JOIN (SELECT ko.mld_opdr_key, ud.fac_usrdata_omschr corr_kplaats
FROM mld_kenmerkopdr ko, fac_usrdata ud
WHERE ko.mld_kenmerk_key = -1 -- Corr. kplaats
AND TO_CHAR (ud.fac_usrdata_key) = ko.mld_kenmerkopdr_waarde) c1
ON a.mld_opdr_key = c1.mld_opdr_key
LEFT JOIN (SELECT ko.mld_opdr_key,
COALESCE (ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms)
corr_ksoort,
DECODE (ksm.prs_kostensoort_oms,
NULL, ksv.prs_kostensoort_opmerking,
ksm.prs_kostensoort_opmerking)
corr_ksoort_oms,
sd.ins_srtdiscipline_prefix prefix,
td.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving melding
FROM mld_v_aanwezigkenmerkopdr ko,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostensoort ksm,
prs_kostensoort ksv
WHERE ko.mld_kenmerk_key = -1 -- Corr. melding
AND TO_CHAR (sm.mld_stdmelding_key) = ko.mld_kenmerkopdr_waarde
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key) c2
ON a.mld_opdr_key = c2.mld_opdr_key;
CREATE OR REPLACE VIEW blcc_v_rap_maand_ordafr
(
maand,
prefix,
opdr_key,
opdr,
kpn,
kplaats_nr,
kplaats_oms,
--corr_kplaats,
ksoort_code,
ksoort_oms,
--org_ksoort,
propertymanager,
gebouw_terrein,
verdieping,
ruimte,
vakgroep,
melding,
melder,
omschrijving,
opmerking,
aanmaak,
gepland,
gereed,
uitv_key,
uitvoerende,
contactpersoon,
kosten,
fclt_3d_afdeling_key
)
AS
SELECT TO_CHAR (SYSDATE, 'yyyy-mm'),
COALESCE (c2.prefix, a.prefix),
a.mld_opdr_key,
a.opdracht,
COALESCE (a.prs_kostenplaatsgrp_nr, SUBSTR (a.kdrager, 1, 5)) kpn,
a.kdrager,
a.kdrager_oms,
--c1.corr_kplaats,
COALESCE (c2.corr_ksoort, a.ksoort),
COALESCE (c2.corr_ksoort_oms, a.ksoort_oms),
--DECODE (c2.corr_ksoort, NULL, NULL, a.ksoort || '-' || a.ksoort_oms),
a.propertymanager,
a.gebouw_terrein,
a.verdieping,
a.ruimte,
COALESCE (c2.vakgroep, a.vakgroep),
COALESCE (c2.melding, a.melding),
a.melder,
a.oms,
a.opm,
a.datum_aanmaak,
a.datum_gepland,
a.datum_gereed,
a.prs_bedrijf_key,
a.bedrijf,
a.cp,
COALESCE (a.kosten, 0),
b.afdeling
FROM (SELECT o.mld_opdr_key,
COALESCE (og.alg_gebouw_key, og.alg_terreinsector_key) gebter_key,
sd.ins_srtdiscipline_prefix prefix,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht,
kpg.prs_kostenplaatsgrp_nr,
kp.prs_kostenplaats_nr kdrager,
kp.prs_kostenplaats_omschrijving kdrager_oms,
COALESCE (ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms) ksoort,
DECODE (ksm.prs_kostensoort_oms,
NULL, ksv.prs_kostensoort_opmerking,
ksm.prs_kostensoort_opmerking)
ksoort_oms,
pm.prs_perslid_naam_full propertymanager,
COALESCE (og.alg_terreinsector_code, og.alg_gebouw_code) gebouw_terrein,
og.alg_verdieping_code verdieping,
og.alg_ruimte_nr ruimte,
td.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving melding,
pf.prs_perslid_naam_full melder,
o.mld_opdr_omschrijving oms,
o.mld_opdr_opmerking opm,
o.mld_opdr_datumbegin datum_aanmaak, -- Of verzonden?
--fac.datumtijdplusuitvoertijd (o.mld_opdr_datumbegin, m.mld_melding_t_uitvoertijd.tijdsduur, m.mld_melding_t_uitvoertijd.eenheid)
o.mld_opdr_einddatum datum_gepland,
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) datum_gereed,
b.prs_bedrijf_key,
b.prs_bedrijf_naam bedrijf,
o.mld_opdr_contactpersoon cp,
o.mld_opdr_kosten kosten
FROM mld_opdr o,
prs_bedrijf b,
mld_melding m,
prs_v_perslid_fullnames_all pf,
alg_v_allonrgoed_gegevens og,
alg_gebouw g,
prs_v_perslid_fullnames pm,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostensoort ksm,
prs_kostensoort ksv,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE o.mld_typeopdr_key = 101 -- Alleen Werkopdrachten???
AND o.mld_statusopdr_key = 9 -- Afgerond???
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_melding_key = m.mld_melding_key
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.prs_perslid_key_verantw = pm.prs_perslid_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 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_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) a
LEFT JOIN ( SELECT o.mld_opdr_key, MAX (p.prs_afdeling_key) afdeling
FROM mld_opdr o, prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cp.prs_bedrijf_key
AND cp.prs_perslid_key = p.prs_perslid_key
GROUP BY o.mld_opdr_key) b
ON a.mld_opdr_key = b.mld_opdr_key
LEFT JOIN (SELECT ko.mld_opdr_key, ud.fac_usrdata_omschr corr_kplaats
FROM mld_kenmerkopdr ko, fac_usrdata ud
WHERE ko.mld_kenmerk_key = -1 -- Corr. kplaats
AND TO_CHAR (ud.fac_usrdata_key) = ko.mld_kenmerkopdr_waarde) c1
ON a.mld_opdr_key = c1.mld_opdr_key
LEFT JOIN (SELECT ko.mld_opdr_key,
COALESCE (ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms)
corr_ksoort,
DECODE (ksm.prs_kostensoort_oms,
NULL, ksv.prs_kostensoort_opmerking,
ksm.prs_kostensoort_opmerking)
corr_ksoort_oms,
sd.ins_srtdiscipline_prefix prefix,
td.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving melding
FROM mld_v_aanwezigkenmerkopdr ko,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostensoort ksm,
prs_kostensoort ksv
WHERE ko.mld_kenmerk_key = -1 -- Corr. melding
AND TO_CHAR (sm.mld_stdmelding_key) = ko.mld_kenmerkopdr_waarde
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key) c2
ON a.mld_opdr_key = c2.mld_opdr_key;
/*
CREATE OR REPLACE VIEW wtca_v_rap_maand_actual_fact
(
maand,
tot_datum,
opdr,
maatschap,
ksoort,
ksoort_oms,
gebouw_terrein,
verdieping,
ruimte,
vakgroep,
melding,
melder,
omschrijving,
opmerking,
aanmaak,
gereed,
fclt_f_uitvoerende,
kosten,
fclt_3d_afdeling_key
)
AS
SELECT maand,
TO_CHAR (TO_DATE (maand || '-01', 'yyyy-mm-dd') - 1, 'dd-mm-yyyy'),
opdr,
fclt_f_maatschap,
fclt_f_ksoort,
fclt_f_ksoort_oms,
fclt_f_gebouw_terrein,
verdieping,
ruimte,
fclt_f_vakgroep,
fclt_f_melding,
melder,
omschrijving,
opmerking,
aanmaak,
gereed,
fclt_f_uitvoerende,
kosten,
fclt_3d_afdeling_key
FROM wtca_v_rap_maand_actual;
*/
CREATE OR REPLACE VIEW blcc_v_rap_maand_ordver
(
maand,
prefix,
opdr_key,
opdr,
kpn,
kplaats_nr,
kplaats_oms,
--corr_kplaats,
ksoort_code,
ksoort_oms,
--org_ksoort,
propertymanager,
gebouw_terrein,
verdieping,
ruimte,
vakgroep,
melding,
melder,
omschrijving,
opmerking,
aanmaak,
gepland,
gereed,
uitv_key,
uitvoerende,
contactpersoon,
kosten,
fclt_3d_afdeling_key
)
AS
SELECT TO_CHAR (fac.gettrackingdate ('ORDVER', a.mld_opdr_key), 'yyyy-mm-dd'),
COALESCE (c2.prefix, a.prefix),
a.mld_opdr_key,
a.opdracht,
COALESCE (a.prs_kostenplaatsgrp_nr, SUBSTR (a.kdrager, 1, 5)) kpn,
a.kdrager,
a.kdrager_oms,
--c1.corr_kdrager,
COALESCE (c2.corr_ksoort, a.ksoort),
COALESCE (c2.corr_ksoort_oms, a.ksoort_oms),
--DECODE (c2.corr_ksoort, NULL, NULL, a.ksoort || '-' || a.ksoort_oms),
a.propertymanager,
a.gebouw_terrein,
a.verdieping,
a.ruimte,
COALESCE (c2.vakgroep, a.vakgroep),
COALESCE (c2.melding, a.melding),
a.melder,
a.oms,
a.opm,
a.datum_aanmaak,
a.datum_gepland,
a.datum_gereed,
a.prs_bedrijf_key,
a.bedrijf,
a.cp,
COALESCE (a.kosten, 0),
b.afdeling
FROM (SELECT o.mld_opdr_key,
COALESCE (og.alg_gebouw_key, og.alg_terreinsector_key) gebter_key,
sd.ins_srtdiscipline_prefix prefix,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht,
kpg.prs_kostenplaatsgrp_nr,
kp.prs_kostenplaats_nr kdrager,
kp.prs_kostenplaats_omschrijving kdrager_oms,
COALESCE (ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms) ksoort,
DECODE (ksm.prs_kostensoort_oms,
NULL, ksv.prs_kostensoort_opmerking,
ksm.prs_kostensoort_opmerking)
ksoort_oms,
pm.prs_perslid_naam_full propertymanager,
COALESCE (og.alg_terreinsector_code, og.alg_gebouw_code) gebouw_terrein,
og.alg_verdieping_code verdieping,
og.alg_ruimte_nr ruimte,
td.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving melding,
pf.prs_perslid_naam_full melder,
o.mld_opdr_omschrijving oms,
o.mld_opdr_opmerking opm,
o.mld_opdr_datumbegin datum_aanmaak, -- Of verzonden?
--fac.datumtijdplusuitvoertijd (o.mld_opdr_datumbegin, m.mld_melding_t_uitvoertijd.tijdsduur, m.mld_melding_t_uitvoertijd.eenheid)
o.mld_opdr_einddatum datum_gepland,
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) datum_gereed,
b.prs_bedrijf_key,
b.prs_bedrijf_naam bedrijf,
o.mld_opdr_contactpersoon cp,
o.mld_opdr_kosten kosten
FROM mld_opdr o,
prs_bedrijf b,
mld_melding m,
prs_v_perslid_fullnames_all pf,
alg_v_allonrgoed_gegevens og,
alg_gebouw g,
prs_v_perslid_fullnames pm,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostensoort ksm,
prs_kostensoort ksv,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE o.mld_typeopdr_key = 101 -- Alleen Werkopdrachten???
AND o.mld_statusopdr_key = 7 -- Verwerkt???
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_melding_key = m.mld_melding_key
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.prs_perslid_key_verantw = pm.prs_perslid_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 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_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) a
LEFT JOIN ( SELECT o.mld_opdr_key, MAX (p.prs_afdeling_key) afdeling
FROM mld_opdr o, prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cp.prs_bedrijf_key
AND cp.prs_perslid_key = p.prs_perslid_key
GROUP BY o.mld_opdr_key) b
ON a.mld_opdr_key = b.mld_opdr_key
LEFT JOIN (SELECT ko.mld_opdr_key, ud.fac_usrdata_omschr corr_kplaats
FROM mld_kenmerkopdr ko, fac_usrdata ud
WHERE ko.mld_kenmerk_key = -1 -- Corr. kplaats
AND TO_CHAR (ud.fac_usrdata_key) = ko.mld_kenmerkopdr_waarde) c1
ON a.mld_opdr_key = c1.mld_opdr_key
LEFT JOIN (SELECT ko.mld_opdr_key,
COALESCE (ksm.prs_kostensoort_oms,
ksv.prs_kostensoort_oms)
corr_ksoort,
DECODE (ksm.prs_kostensoort_oms,
NULL, ksv.prs_kostensoort_opmerking,
ksm.prs_kostensoort_opmerking)
corr_ksoort_oms,
sd.ins_srtdiscipline_prefix prefix,
td.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving melding
FROM mld_v_aanwezigkenmerkopdr ko,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostensoort ksm,
prs_kostensoort ksv
WHERE ko.mld_kenmerk_key = -1 -- Corr. melding
AND TO_CHAR (sm.mld_stdmelding_key) = ko.mld_kenmerkopdr_waarde
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key) c2
ON a.mld_opdr_key = c2.mld_opdr_key
WHERE fac.gettrackingdate ('ORDVER', a.mld_opdr_key) > TO_DATE ('01012019', 'ddmmyyyy');
/*
CREATE OR REPLACE VIEW wtca_v_rap_maand_frozen_fact
(
fclt_f_maand,
tot_datum,
opdr,
maatschap,
ksoort,
ksoort_oms,
gebouw_terrein,
verdieping,
ruimte,
vakgroep,
melding,
melder,
omschrijving,
opmerking,
aanmaak,
gereed,
fclt_f_uitvoerende,
kosten,
fclt_3d_afdeling_key
)
AS
SELECT SUBSTR (fclt_f_maand, 1, 7),
TO_CHAR (TO_DATE (SUBSTR (fclt_f_maand, 1, 7) || '-01', 'yyyy-mm-dd') - 1, 'dd-mm-yyyy'),
opdr,
fclt_f_maatschap,
fclt_f_ksoort,
fclt_f_ksoort_oms,
fclt_f_gebouw_terrein,
verdieping,
ruimte,
fclt_f_vakgroep,
fclt_f_melding,
melder,
omschrijving,
opmerking,
aanmaak,
gereed,
fclt_f_uitvoerende,
kosten,
fclt_3d_afdeling_key
FROM wtca_v_rap_maand_frozen
WHERE SUBSTR (fclt_f_archief, 1, 4) >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy');
*/
CREATE OR REPLACE VIEW blcc_v_rap_freezeopdrachten
(
kpn,
aantal,
kosten
)
AS
SELECT COALESCE (kpg.prs_kostenplaatsgrp_nr, SUBSTR (kp.prs_kostenplaats_nr, 1, 5)),
COUNT ( * ) aantal, SUM (mld_opdr_kosten) kosten
FROM mld_opdr o, prs_kostenplaats kp, prs_kostenplaatsgrp kpg
WHERE o.mld_typeopdr_key = 101 -- WO
AND o.mld_statusopdr_key = 9 -- Afgerond
--AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
GROUP BY COALESCE (kpg.prs_kostenplaatsgrp_nr, SUBSTR (kp.prs_kostenplaats_nr, 1, 5));
------ 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