Files
Customer/BSSC/bssc.sql
Maarten van der Heide f5feebca5c BSSC#55692 Facturatieproces
svn path=/Customer/trunk/; revision=54115
2021-12-10 17:15:52 +00:00

6842 lines
398 KiB
MySQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific db-configuration for BSSC.
DEFINE thisfile = 'BSSC.SQL'
DEFINE dbuser = '^BSSC'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE VIEW bssc_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);
CREATE OR REPLACE PROCEDURE bssc_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;0;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;SSC Bezoekersparkeerplaats;SSC Etage 4%');
-- 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 bssc_import_perslid;
/
CREATE OR REPLACE PROCEDURE bssc_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,
p_ssc_bezprk_key IN NUMBER,
p_ssc_etage4_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
SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk5), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_bezprk_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_kenmerk6), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_etage4_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
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;
-- Toekennen VLAN-autorisatiegroep (volgens eigen tabel met key=481)!
CURSOR c_vlan
IS
SELECT p.prs_perslid_key, fac.safe_to_number (ud.fac_usrdata_upper) fac_groep_key
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i, (SELECT * FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 481) ud
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
AND a.prs_afdeling_upper = UPPER (ud.fac_usrdata_omschr)
AND EXISTS (SELECT 1 FROM fac_groep WHERE fac_groep_key = fac.safe_to_number (ud.fac_usrdata_code))
ORDER BY 1;
c_ruimte_key NUMBER := 2204; -- Fictieve ruimte op SSCH-locatie
c_ssc_fobo_key NUMBER := 341; -- SSC FOBO
c_ssc_dmedew_key NUMBER := 361; -- SSC Digireceptiemedewerker
c_ssc_hadmin_key NUMBER := 362; -- SSC Huurderadministrator
c_ssc_bezprk_key NUMBER := 1721; -- SSC Bezoekersparkeerplaats
c_ssc_etage4_key NUMBER := 1481; -- SSC Etage 4
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 = 2442 -- Huurders SSC-bedrijf!
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, c_ssc_bezprk_key, c_ssc_etage4_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;
-- Toekennen VLAN-autorisatiegroep (volgens eigen tabel met key=481)!
-- NB. VLAN-autorisatiegroep wordt nooit automatisch afgenomen!
FOR rec IN c_vlan
LOOP
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);
END LOOP;
END bssc_update_perslid;
/
CREATE OR REPLACE VIEW bssc_v_autorisatiegroepen
(
fac_groep_key,
fac_groep_oms
)
AS
SELECT fac_groep_key, fac_groep_omschrijving
FROM fac_groep
WHERE fac_groep_omschrijving LIKE 'SSC%';
CREATE OR REPLACE VIEW bssc_v_externe_relaties
(
prs_bedrijf_key,
prs_bedrijf_naam,
prs_bedrijf_verwijder
)
AS
SELECT b.prs_bedrijf_key,
b.prs_bedrijf_naam || ' [' || TRIM (cmdnr.prs_kenmerklink_waarde) || '|' || TRIM (chvnr.prs_kenmerklink_waarde) || ']',
prs_bedrijf_verwijder
FROM prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr
WHERE b.prs_bedrijf_intern IS NULL
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND b.prs_bedrijf_key = chvnr.prs_link_key(+);
CREATE OR REPLACE VIEW bssc_v_rap_ssc_cat_looplijst
(
resnr,
activiteit,
--locatie,
ruimte,
datum,
van,
tot,
reslev,
organisatie,
gastheer,
kostenplaats,
--costcenter,
omschrijving,
aantal,
artikelnr,
artikeloms,
horeca_details,
deelnemers
)
AS
SELECT x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr || DECODE (res_rsv_ruimte_dirtlevel, 0, '', ' [ongeldig]') resnr,
x.res_activiteit_omschrijving activiteit,
--NULL locatie,
COALESCE (rr.res_ruimte_nr, rg.alg_ruimte_omschrijving) ruimte,
x.res_rsv_ruimte_van,
x.res_rsv_ruimte_van,
x.res_rsv_ruimte_tot,
x.reslev,
(SELECT prs_afdeling_omschrijving
FROM prs_afdeling
WHERE prs_afdeling_key = x.prs_afdeling_key)
organisatie,
x.prs_perslid_naam_full gastheer,
x.prs_kostenplaats_omschrijving kostenplaats,
--(SELECT MAX (kw.res_kenmerkreservering_waarde)
-- FROM res_kenmerkwaarde kw, res_kenmerk rk
-- WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key
-- AND kw.res_kenmerkwaarde_verwijder IS NULL
-- AND kw.res_kenmerk_key = rk.res_kenmerk_key
-- AND rk.res_srtkenmerk_key = 1)
-- costcenter,
x.res_rsv_ruimte_omschrijving omschrijving,
x.res_rsv_artikel_aantal,
x.res_artikel_nr,
x.res_artikel_omschrijving,
(select res_kenmerkreservering_waarde
from res_kenmerkwaarde rkw, res_kenmerk k
where rkw.res_kenmerk_key = k.res_kenmerk_key
and k.res_srtkenmerk_key = 142
and x.res_rsv_ruimte_key = rkw.res_rsv_ruimte_key) horeca_details,
x.res_rsv_ruimte_bezoekers
FROM (SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
act.res_activiteit_omschrijving,
COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) res_ruimte_key,
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) alg_ruimte_key,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
rra.res_rsv_artikel_levering reslev,
COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) prs_afdeling_key,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kl.prs_kenmerklink_waarde,
rrr.res_rsv_ruimte_omschrijving,
rra.res_rsv_artikel_aantal,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
rrr.res_rsv_ruimte_bezoekers,
rrr.res_rsv_ruimte_dirtlevel
FROM res_rsv_ruimte rrr,
res_activiteit act,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
prs_v_perslid_fullnames_all pf,
prs_kostenplaats kp,
prs_perslid p,
prs_v_afdeling_boom ab,
prs_kenmerklink kl,
res_v_aanwezigrsv_artikel rra,
res_artikel ra
WHERE rrr.res_activiteit_key = act.res_activiteit_key
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND aog.alg_locatie_key = 21 -- SSC
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+)
AND kl.prs_kenmerklink_niveau(+) = 'A'
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND rra.res_rsv_artikel_dirtlevel = 0
AND rrr.res_status_fo_key != 4 -- vervallen
AND rra.res_rsv_artikel_levering > TO_DATE ('20171101', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'IW') + 21) x
LEFT JOIN res_ruimte rr
ON x.res_ruimte_key = rr.res_ruimte_key
LEFT JOIN alg_v_ruimte_gegevens_all rg
ON x.alg_ruimte_key = rg.alg_ruimte_key;
CREATE OR REPLACE VIEW bssc_v_rap_ssc_cat_factlijst
(
hide_f_sortering,
resnr,
datum,
ruimte,
personen,
organisatie,
gastheer,
kostenplaats,
--costcenter,
omschrijving,
horeca_details,
product,
btw,
aantal,
prijs,
totaal
)
AS -- Catering gesorteerd per datum/res_id
SELECT TO_CHAR (x.res_rsv_artikel_levering, 'yyyymmdd') || TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) sortering,
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) res_id,
x.res_rsv_artikel_levering datum,
x.ruimte,
x.res_rsv_ruimte_bezoekers personen,
x.prs_afdeling_omschrijving organisatie,
x.prs_perslid_naam_full gastheer,
x.prs_kostenplaats_omschrijving kostenplaats,
--(SELECT MAX (kw.res_kenmerkreservering_waarde)
-- FROM res_kenmerkwaarde kw, res_kenmerk rk
-- WHERE kw.res_rsv_ruimte_key = res_rsv_ruimte_key
-- AND kw.res_kenmerkwaarde_verwijder IS NULL
-- AND kw.res_kenmerk_key = rk.res_kenmerk_key
-- AND rk.res_srtkenmerk_key = 1)
-- costcenter,
x.res_rsv_ruimte_omschrijving omschrijving,
kw.res_kenmerkreservering_waarde horeca_details,
x.artikel product,
COALESCE (x.verw_btw, x.btw) btw,
x.aantal,
DECODE (x.verw_prijs,
NULL, x.prijs,
x.verw_prijs / DECODE (COALESCE (x.aantal, 0), 0, 1, x.aantal))
prijs,
COALESCE (x.verw_prijs, x.aantal * x.prijs) totaal
FROM (SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
rra.res_rsv_artikel_levering,
COALESCE (rr.res_ruimte_nr, aog.alg_plaatsaanduiding) ruimte,
rrr.res_rsv_ruimte_bezoekers,
a.prs_afdeling_omschrijving,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
rrr.res_rsv_ruimte_omschrijving,
ra.res_artikel_omschrijving artikel,
rra.res_rsv_artikel_btw verw_btw,
ra.res_artikel_btw btw,
rra.res_rsv_artikel_aantal aantal,
rra.res_rsv_artikel_prijs verw_prijs,
ra.res_artikel_prijs prijs
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
res_v_aanwezigruimte rr,
alg_v_allonrgoed_gegevens aog,
prs_perslid p,
prs_afdeling a,
prs_v_perslid_fullnames_all pf,
prs_kostenplaats kp,
res_v_aanwezigrsv_artikel rra,
res_artikel ra,
res_discipline rd,
--prs_kostensoort ks,
res_disc_params dp,
prs_bedrijf b
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_status_fo_key = 2 -- BSSC#61120: Alleen FO-status=Definitief!
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 rro.res_ruimte_key = rr.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND aog.alg_locatie_key = 21 -- SSC
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = rd.ins_discipline_key
--AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND rd.ins_discipline_key = dp.res_ins_discipline_key
AND dp.prs_bedrijf_key = b.prs_bedrijf_key
--AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_levering > TO_DATE ('20171101', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < SYSDATE) x
LEFT JOIN
res_v_aanwezigkenmerkwaarde kw
ON x.res_rsv_ruimte_key = kw.res_rsv_ruimte_key
AND EXISTS
(SELECT 1
FROM res_kenmerk
WHERE res_kenmerk_verwijder IS NULL
AND res_srtkenmerk_key = 142 -- Horeca details
AND res_kenmerk_key = kw.res_kenmerk_key);
CREATE OR REPLACE VIEW bssc_v_rap_parkres_bez
(
afspraak_key, -- appointment_id
bezoekers_key, -- visitor_id
afspraak_datum,
afspraak_eind,
afspraak_oms,
bez_achternaam,
bez_mail,
bez_telnr,
bez_kenteken,
bez_bedrijf,
cp_naam,
cp_mail,
cp_telnr,
cp_bedrijf,
bez_voor,
bez_actie,
laatste_mut
)
AS
SELECT t.fac_tracking_refkey,
x.bez_bezoekers_key,
x.bez_afspraak_datum,
x.bez_afspraak_eind,
x.bez_afspraak_opmerking,
x.bez_afspraak_naam,
COALESCE (x.bez_bezoekers_email, email.bez_kenmerkwaarde_waarde) bez_mail,
COALESCE (x.bez_bezoekers_telefoon, telnr.bez_kenmerkwaarde_waarde) bez_telnr,
COALESCE (x.bez_bezoekers_kenteken, kntkn.bez_kenmerkwaarde_waarde) bez_kenteken,
x.bez_afspraak_bedrijf,
x.prs_perslid_naam_full,
x.prs_perslid_email,
COALESCE (x.prs_perslid_telefoonnr, x.prs_perslid_mobiel) cp_telnr,
x.prs_afdeling_omschrijving,
x.bez_afspraak_gastheer,
x.bez_actie_omschrijving,
t.tracking_datum
FROM (SELECT a.bez_afspraak_key,
b.bez_bezoekers_key,
a.bez_afspraak_datum,
a.bez_afspraak_eind,
a.bez_afspraak_opmerking,
b.bez_afspraak_naam,
b.bez_afspraak_bedrijf,
b.bez_bezoekers_email,
b.bez_bezoekers_telefoon,
b.bez_bezoekers_kenteken,
cpf.prs_perslid_naam_full,
cp.prs_perslid_email,
cp.prs_perslid_telefoonnr,
cp.prs_perslid_mobiel,
afd.prs_afdeling_omschrijving,
a.bez_afspraak_gastheer,
ba.bez_actie_omschrijving
FROM bez_afspraak a,
bez_bezoekers b,
prs_perslid cp,
prs_v_perslid_fullnames cpf,
prs_v_afdeling_boom ab,
prs_afdeling afd,
bez_actie ba
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 = afd.prs_afdeling_key
AND a.bez_actie_key = ba.bez_actie_key(+)
AND EXISTS (SELECT 1
FROM res_rsv_deel
WHERE bez_bezoekers_key = b.bez_bezoekers_key)) x
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 bez_kenmerkwaarde telnr
ON x.bez_bezoekers_key = telnr.bez_bezoekers_key
AND telnr.bez_kenmerkwaarde_verwijder IS NULL
AND telnr.bez_kenmerk_key = 1060 -- Telefoonnummer
LEFT JOIN bez_kenmerkwaarde kntkn
ON x.bez_bezoekers_key = kntkn.bez_bezoekers_key
AND kntkn.bez_kenmerkwaarde_verwijder IS NULL
AND kntkn.bez_kenmerk_key = 1100 -- Kenteken
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;
-- BSSC#63109: Inzage persoonsgegevens tbv. Office App!
CREATE OR REPLACE VIEW bssc_v_rap_prs_tbv_app
(
id, -- prs_perslid_key
email,
lastname,
firstname,
middlename,
company
)
AS
SELECT p.prs_perslid_key, p.prs_perslid_email, p.prs_perslid_naam, p.prs_perslid_voornaam, p.prs_perslid_tussenvoegsel, a.prs_afdeling_omschrijving
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab, prs_afdeling a
WHERE p.prs_perslid_key > 2000 -- Uitsluiten Gast, Facilitor, etc.
AND p.prs_perslid_apikey IS NULL -- Uitsluiten API-users
AND p.prs_perslid_email IS NOT NULL -- Alleen personen met e-mail
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = a.prs_afdeling_key;
-- BSSC#64707: Persoonsgegevens incl. aanmaakdatum tbv. plannen rondleidingen!
CREATE OR REPLACE VIEW bssc_v_rap_prs_aanmaak
(
id, -- prs_perslid_key
aanmaakdatum,
naam1,
naam2,
organisatie,
email
)
AS
SELECT p.prs_perslid_key, p.prs_perslid_aanmaak, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly, a.prs_afdeling_omschrijving, p.prs_perslid_email
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab, prs_afdeling a, prs_v_perslid_fullnames pf
WHERE p.prs_perslid_key > 2000 -- Uitsluiten Gast, Facilitor, etc.
AND p.prs_perslid_apikey IS NULL -- Uitsluiten API-users
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = a.prs_afdeling_key
AND p.prs_perslid_key = pf.prs_perslid_key;
-- BSSC#55692: Facturatie verhuur (M2 en meer)!
-- V Huur niet op basis van Tarieftabel, maar kenmerk 861=Huurprijs (per jaar)
-- V Geen automatische facturatie op basis van kenmerk 862=Checkbox
-- V Kenmerk 870=Start facturatie huur
-- V Kenmerk 901=Duty manager
-- V Kenmerk 902=Koffieautomaten
-- V Kenmerk 641=Onbelaste huurder???
CREATE OR REPLACE VIEW bssc_v_fact_actual
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '202201') maand -- TODO
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id, -- Huur!
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'0000' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - Huur' regel, -- Huur
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
--btwnr.prs_kenmerklink_waarde btw_nr,
x.cnt_contract_omschrijving beschrijving,
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 (verv_toeslag.fac_usrdata_key, 1001, 'H', '0')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (verv_toeslag.fac_usrdata_key, 1001, 'Hoog', 'Nul')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (verv_toeslag.fac_usrdata_key, 1001, 21, 0)) 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
rxo.alg_ruimte_opp_alt1 aantal, -- VVO
fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde) tarief, -- Jaartarief per m2
vvo_toeslag.fac_usrdata_prijs vvo_toeslag, -- VVO toeslagperc.
--verv_toeslag.fac_usrdata_prijs verv_toeslag, -- Vervangend toeslagperc.
1 verv_toeslag, -- Vervangend toeslagperc.
0 korting_pm2, -- VERVALLEN:Korting per m2 Huur
pa.alg_onroerendgoed_type,
pa.alg_onroerendgoed_keys,
pa.alg_plaatsaanduiding,
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)) *
COALESCE (rxo.alg_ruimte_opp_alt1, 0) *
--COALESCE (verv_toeslag.fac_usrdata_prijs, 0) *
COALESCE (vvo_toeslag.fac_usrdata_prijs, 0) *
DECODE (tarief.cnt_kenmerkcontract_waarde, NULL, 0, fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde)) *
1/12, 2)
mndnet, -- Netto maandbedrag
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)) *
COALESCE (rxo.alg_ruimte_opp_alt1, 0) *
--COALESCE (verv_toeslag.fac_usrdata_prijs, 0) *
COALESCE (vvo_toeslag.fac_usrdata_prijs, 0) *
DECODE (tarief.cnt_kenmerkcontract_waarde, NULL, 0, fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde)) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (verv_toeslag.fac_usrdata_key, 1001, 0.21, 0)) *
1/12, 2)
mndbtw, -- BTW maandbedrag
DECODE (verv_toeslag.fac_usrdata_key, 1001, '8600', '8110') grtboekrek,
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_omschrijving,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_nr,
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,
c.maand
FROM (SELECT lp.maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
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
UNION ALL -- Soms 2 maanden factureren (of 1 maand achteraf?)!
SELECT TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.cnt_contract_aanmaak > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) -- Na begin voorgaande maand aangemaakt!
AND TRUNC (c.cnt_contract_looptijd_van) BETWEEN ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) AND TO_DATE (lp.maand || '01', 'yyyymmdd') -- Van-datum in voorgaande maand!
AND NOT EXISTS -- Voorgaande maand nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_maand = TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') -- Voorgaande maand!
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_refkey = c.cnt_contract_key)) c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_kenmerk_link(+)
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 = -1 -- 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 = -1 -- 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 = -1 -- VSOV
LEFT JOIN cnt_v_aanwezigcontract_plaats ccp
ON x.cnt_contract_key = ccp.cnt_contract_key
AND ccp.cnt_alg_plaats_code = 'R' -- Alleen Scope-ruimten!
LEFT JOIN alg_v_plaatsaanduiding_all pa
ON ccp.cnt_alg_plaats_key = pa.alg_onroerendgoed_keys
LEFT JOIN alg_v_aanwezigruimte rxo
ON ccp.cnt_alg_plaats_key = rxo.alg_ruimte_key
LEFT JOIN cnt_kenmerkcontract tarief
ON x.cnt_contract_key = tarief.cnt_contract_key
AND tarief.cnt_kenmerkcontract_verwijder IS NULL
AND tarief.cnt_kenmerk_key = 861 -- Huurprijs m2/p.j.
LEFT JOIN cnt_kenmerkcontract vvo_toeslag_kc
ON x.cnt_contract_key = vvo_toeslag_kc.cnt_contract_key
AND vvo_toeslag_kc.cnt_kenmerkcontract_verwijder IS NULL
AND vvo_toeslag_kc.cnt_kenmerk_key = 402 -- VVO toeslagperc.
LEFT JOIN fac_v_aanwezigusrdata vvo_toeslag
ON fac.safe_to_number (vvo_toeslag_kc.cnt_kenmerkcontract_waarde) = vvo_toeslag.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract verv_toeslag_kc
ON x.cnt_contract_key = verv_toeslag_kc.cnt_contract_key
AND verv_toeslag_kc.cnt_kenmerkcontract_verwijder IS NULL
AND verv_toeslag_kc.cnt_kenmerk_key = 642 -- Vervangend toeslagperc.
LEFT JOIN fac_v_aanwezigusrdata verv_toeslag
ON fac.safe_to_number (verv_toeslag_kc.cnt_kenmerkcontract_waarde) = verv_toeslag.fac_usrdata_key
--LEFT JOIN cnt_kenmerkcontract korting_pm2
-- ON x.cnt_contract_key = korting_pm2.cnt_contract_key
-- AND korting_pm2.cnt_kenmerkcontract_verwijder IS NULL
-- AND korting_pm2.cnt_kenmerk_key = 404 -- Korting per m2
LEFT JOIN cnt_kenmerkcontract start_fact
ON x.cnt_contract_key = start_fact.cnt_contract_key
AND start_fact.cnt_kenmerkcontract_verwijder IS NULL
AND start_fact.cnt_kenmerk_key = 870 -- Start facturatie op
WHERE fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') < TRUNC (SYSDATE, 'mm')
UNION ALL -- Vervangende toeslag op huur!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'0000' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - Vervangende toeslag' regel, -- Vervangende toeslag
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
--btwnr.prs_kenmerklink_waarde btw_nr,
x.cnt_contract_omschrijving beschrijving,
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 (verv_toeslag.fac_usrdata_key, 1001, 'H', '0')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (verv_toeslag.fac_usrdata_key, 1001, 'Hoog', 'Nul')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (verv_toeslag.fac_usrdata_key, 1001, 21, 0)) 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
rxo.alg_ruimte_opp_alt1 aantal, -- VVO
fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde) tarief, -- Jaartarief per m2
vvo_toeslag.fac_usrdata_prijs vvo_toeslag, -- VVO toeslagperc.
--verv_toeslag.fac_usrdata_prijs verv_toeslag, -- Vervangend toeslagperc.
(verv_toeslag.fac_usrdata_prijs - 1) verv_toeslag, -- Vervangend toeslagperc.
0 korting_pm2, -- VERVALLEN:Korting per m2 Huur
pa.alg_onroerendgoed_type,
pa.alg_onroerendgoed_keys,
pa.alg_plaatsaanduiding,
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)) *
COALESCE (rxo.alg_ruimte_opp_alt1, 0) *
--COALESCE (verv_toeslag.fac_usrdata_prijs, 0) *
(verv_toeslag.fac_usrdata_prijs - 1) *
COALESCE (vvo_toeslag.fac_usrdata_prijs, 0) *
DECODE (tarief.cnt_kenmerkcontract_waarde, NULL, 0, fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde)) *
1/12, 2)
mndnet, -- Netto maandbedrag
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)) *
COALESCE (rxo.alg_ruimte_opp_alt1, 0) *
--COALESCE (verv_toeslag.fac_usrdata_prijs, 0) *
(verv_toeslag.fac_usrdata_prijs - 1) *
COALESCE (vvo_toeslag.fac_usrdata_prijs, 0) *
DECODE (tarief.cnt_kenmerkcontract_waarde, NULL, 0, fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde)) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (verv_toeslag.fac_usrdata_key, 1001, 0.21, 0)) *
1/12, 2)
mndbtw, -- BTW maandbedrag
DECODE (verv_toeslag.fac_usrdata_key, 1001, '8600', '8110') grtboekrek,
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_omschrijving,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_nr,
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,
c.maand
FROM (SELECT lp.maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
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
UNION ALL -- Soms 2 maanden factureren (of 1 maand achteraf?)!
SELECT TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.cnt_contract_aanmaak > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) -- Na begin voorgaande maand aangemaakt!
AND TRUNC (c.cnt_contract_looptijd_van) BETWEEN ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) AND TO_DATE (lp.maand || '01', 'yyyymmdd') -- Van-datum in voorgaande maand!
AND NOT EXISTS -- Voorgaande maand nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_maand = TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') -- Voorgaande maand!
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_refkey = c.cnt_contract_key)) c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_kenmerk_link(+)
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 = -1 -- 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 = -1 -- 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 = -1 -- VSOV
LEFT JOIN cnt_v_aanwezigcontract_plaats ccp
ON x.cnt_contract_key = ccp.cnt_contract_key
AND ccp.cnt_alg_plaats_code = 'R' -- Alleen Scope-ruimten!
LEFT JOIN alg_v_plaatsaanduiding_all pa
ON ccp.cnt_alg_plaats_key = pa.alg_onroerendgoed_keys
LEFT JOIN alg_v_aanwezigruimte rxo
ON ccp.cnt_alg_plaats_key = rxo.alg_ruimte_key
LEFT JOIN cnt_kenmerkcontract tarief
ON x.cnt_contract_key = tarief.cnt_contract_key
AND tarief.cnt_kenmerkcontract_verwijder IS NULL
AND tarief.cnt_kenmerk_key = 861 -- Huurprijs m2/p.j.
LEFT JOIN cnt_kenmerkcontract vvo_toeslag_kc
ON x.cnt_contract_key = vvo_toeslag_kc.cnt_contract_key
AND vvo_toeslag_kc.cnt_kenmerkcontract_verwijder IS NULL
AND vvo_toeslag_kc.cnt_kenmerk_key = 402 -- VVO toeslagperc.
LEFT JOIN fac_v_aanwezigusrdata vvo_toeslag
ON fac.safe_to_number (vvo_toeslag_kc.cnt_kenmerkcontract_waarde) = vvo_toeslag.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract verv_toeslag_kc
ON x.cnt_contract_key = verv_toeslag_kc.cnt_contract_key
AND verv_toeslag_kc.cnt_kenmerkcontract_verwijder IS NULL
AND verv_toeslag_kc.cnt_kenmerk_key = 642 -- Vervangend toeslagperc.
LEFT JOIN fac_v_aanwezigusrdata verv_toeslag
ON fac.safe_to_number (verv_toeslag_kc.cnt_kenmerkcontract_waarde) = verv_toeslag.fac_usrdata_key
--LEFT JOIN cnt_kenmerkcontract korting_pm2
-- ON x.cnt_contract_key = korting_pm2.cnt_contract_key
-- AND korting_pm2.cnt_kenmerkcontract_verwijder IS NULL
-- AND korting_pm2.cnt_kenmerk_key = 404 -- Korting per m2
LEFT JOIN cnt_kenmerkcontract start_fact
ON x.cnt_contract_key = start_fact.cnt_contract_key
AND start_fact.cnt_kenmerkcontract_verwijder IS NULL
AND start_fact.cnt_kenmerk_key = 870 -- Start facturatie op
WHERE fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') < TRUNC (SYSDATE, 'mm')
AND verv_toeslag.fac_usrdata_prijs > 1
UNION ALL -- M2 correctie!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'0000' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - Huur' regel, -- Huur
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
--btwnr.prs_kenmerklink_waarde btw_nr,
x.cnt_contract_omschrijving beschrijving,
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 (verv_toeslag.fac_usrdata_key, 1001, 'H', '0')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (verv_toeslag.fac_usrdata_key, 1001, 'Hoog', 'Nul')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (verv_toeslag.fac_usrdata_key, 1001, 21, 0)) 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
fac.safe_to_number (correctie_m2.cnt_kenmerkcontract_waarde) aantal, -- VVO-correctie
fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde) tarief, -- Jaartarief per m2
vvo_toeslag.fac_usrdata_prijs vvo_toeslag, -- VVO toeslagperc.
--verv_toeslag.fac_usrdata_prijs verv_toeslag, -- Vervangend toeslagperc.
1 verv_toeslag, -- Vervangend toeslagperc.
0 korting_pm2, -- VERVALLEN:Korting per m2 Huur
'C' alg_onroerendgoed_type,
-1 alg_onroerendgoed_keys,
'Correctie' alg_plaatsaanduiding,
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)) *
COALESCE (fac.safe_to_number (correctie_m2.cnt_kenmerkcontract_waarde), 0) *
--COALESCE (verv_toeslag.fac_usrdata_prijs, 0) *
COALESCE (vvo_toeslag.fac_usrdata_prijs, 0) *
DECODE (tarief.cnt_kenmerkcontract_waarde, NULL, 0, fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde)) *
1/12, 2)
mndnet, -- Netto maandbedrag
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)) *
COALESCE (fac.safe_to_number (correctie_m2.cnt_kenmerkcontract_waarde), 0) *
--COALESCE (verv_toeslag.fac_usrdata_prijs, 0) *
COALESCE (vvo_toeslag.fac_usrdata_prijs, 0) *
DECODE (tarief.cnt_kenmerkcontract_waarde, NULL, 0, fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde)) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (verv_toeslag.fac_usrdata_key, 1001, 0.21, 0)) *
1/12, 2)
mndbtw, -- BTW maandbedrag
DECODE (verv_toeslag.fac_usrdata_key, 1001, '8600', '8110') grtboekrek,
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_omschrijving,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_nr,
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,
c.maand
FROM (SELECT lp.maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
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
UNION ALL -- Soms 2 maanden factureren (of 1 maand achteraf?)!
SELECT TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.cnt_contract_aanmaak > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) -- Na begin voorgaande maand aangemaakt!
AND TRUNC (c.cnt_contract_looptijd_van) BETWEEN ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) AND TO_DATE (lp.maand || '01', 'yyyymmdd') -- Van-datum in voorgaande maand!
AND NOT EXISTS -- Voorgaande maand nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_maand = TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') -- Voorgaande maand!
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_refkey = c.cnt_contract_key)) c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_kenmerk_link(+)
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 = -1 -- 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 = -1 -- 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 = -1 -- VSOV
LEFT JOIN cnt_kenmerkcontract correctie_m2
ON x.cnt_contract_key = correctie_m2.cnt_contract_key
AND correctie_m2.cnt_kenmerkcontract_verwijder IS NULL
AND correctie_m2.cnt_kenmerk_key = 701 -- Correctie m2
LEFT JOIN cnt_kenmerkcontract tarief
ON x.cnt_contract_key = tarief.cnt_contract_key
AND tarief.cnt_kenmerkcontract_verwijder IS NULL
AND tarief.cnt_kenmerk_key = 861 -- Huurprijs m2/p.j.
LEFT JOIN cnt_kenmerkcontract vvo_toeslag_kc
ON x.cnt_contract_key = vvo_toeslag_kc.cnt_contract_key
AND vvo_toeslag_kc.cnt_kenmerkcontract_verwijder IS NULL
AND vvo_toeslag_kc.cnt_kenmerk_key = 402 -- VVO toeslagperc.
LEFT JOIN fac_v_aanwezigusrdata vvo_toeslag
ON fac.safe_to_number (vvo_toeslag_kc.cnt_kenmerkcontract_waarde) = vvo_toeslag.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract verv_toeslag_kc
ON x.cnt_contract_key = verv_toeslag_kc.cnt_contract_key
AND verv_toeslag_kc.cnt_kenmerkcontract_verwijder IS NULL
AND verv_toeslag_kc.cnt_kenmerk_key = 642 -- Vervangend toeslagperc.
LEFT JOIN fac_v_aanwezigusrdata verv_toeslag
ON fac.safe_to_number (verv_toeslag_kc.cnt_kenmerkcontract_waarde) = verv_toeslag.fac_usrdata_key
--LEFT JOIN cnt_kenmerkcontract korting_pm2
-- ON x.cnt_contract_key = korting_pm2.cnt_contract_key
-- AND korting_pm2.cnt_kenmerkcontract_verwijder IS NULL
-- AND korting_pm2.cnt_kenmerk_key = 404 -- Korting per m2
LEFT JOIN cnt_kenmerkcontract start_fact
ON x.cnt_contract_key = start_fact.cnt_contract_key
AND start_fact.cnt_kenmerkcontract_verwijder IS NULL
AND start_fact.cnt_kenmerk_key = 870 -- Start facturatie op
WHERE fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') < TRUNC (SYSDATE, 'mm')
AND correctie_m2.cnt_kenmerkcontract_waarde IS NOT NULL
UNION ALL -- Vervangende toeslag op M2 correctie!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'0000' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - Vervangende toeslag' regel, -- Vervangende toeslag
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
--btwnr.prs_kenmerklink_waarde btw_nr,
x.cnt_contract_omschrijving beschrijving,
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 (verv_toeslag.fac_usrdata_key, 1001, 'H', '0')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (verv_toeslag.fac_usrdata_key, 1001, 'Hoog', 'Nul')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (verv_toeslag.fac_usrdata_key, 1001, 21, 0)) 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
fac.safe_to_number (correctie_m2.cnt_kenmerkcontract_waarde) aantal, -- VVO-correctie
fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde) tarief, -- Jaartarief per m2
vvo_toeslag.fac_usrdata_prijs vvo_toeslag, -- VVO toeslagperc.
--verv_toeslag.fac_usrdata_prijs verv_toeslag, -- Vervangend toeslagperc.
(verv_toeslag.fac_usrdata_prijs - 1) verv_toeslag, -- Vervangend toeslagperc.
0 korting_pm2, -- VERVALLEN:Korting per m2 Huur
'C' alg_onroerendgoed_type,
-1 alg_onroerendgoed_keys,
'Correctie' alg_plaatsaanduiding,
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)) *
COALESCE (fac.safe_to_number (correctie_m2.cnt_kenmerkcontract_waarde), 0) *
--COALESCE (verv_toeslag.fac_usrdata_prijs, 0) *
(verv_toeslag.fac_usrdata_prijs - 1) *
COALESCE (vvo_toeslag.fac_usrdata_prijs, 0) *
DECODE (tarief.cnt_kenmerkcontract_waarde, NULL, 0, fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde)) *
1/12, 2)
mndnet, -- Netto maandbedrag
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)) *
COALESCE (fac.safe_to_number (correctie_m2.cnt_kenmerkcontract_waarde), 0) *
--COALESCE (verv_toeslag.fac_usrdata_prijs, 0) *
(verv_toeslag.fac_usrdata_prijs - 1) *
COALESCE (vvo_toeslag.fac_usrdata_prijs, 0) *
DECODE (tarief.cnt_kenmerkcontract_waarde, NULL, 0, fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde)) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (verv_toeslag.fac_usrdata_key, 1001, 0.21, 0)) *
1/12, 2)
mndbtw, -- BTW maandbedrag
DECODE (verv_toeslag.fac_usrdata_key, 1001, '8600', '8110') grtboekrek,
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_omschrijving,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_nr,
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,
c.maand
FROM (SELECT lp.maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
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
UNION ALL -- Soms 2 maanden factureren (of 1 maand achteraf?)!
SELECT TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.cnt_contract_aanmaak > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) -- Na begin voorgaande maand aangemaakt!
AND TRUNC (c.cnt_contract_looptijd_van) BETWEEN ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) AND TO_DATE (lp.maand || '01', 'yyyymmdd') -- Van-datum in voorgaande maand!
AND NOT EXISTS -- Voorgaande maand nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_maand = TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') -- Voorgaande maand!
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_refkey = c.cnt_contract_key)) c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_kenmerk_link(+)
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 = -1 -- 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 = -1 -- 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 = -1 -- VSOV
LEFT JOIN cnt_kenmerkcontract correctie_m2
ON x.cnt_contract_key = correctie_m2.cnt_contract_key
AND correctie_m2.cnt_kenmerkcontract_verwijder IS NULL
AND correctie_m2.cnt_kenmerk_key = 701 -- Correctie m2
LEFT JOIN cnt_kenmerkcontract tarief
ON x.cnt_contract_key = tarief.cnt_contract_key
AND tarief.cnt_kenmerkcontract_verwijder IS NULL
AND tarief.cnt_kenmerk_key = 861 -- Huurprijs m2/p.j.
LEFT JOIN cnt_kenmerkcontract vvo_toeslag_kc
ON x.cnt_contract_key = vvo_toeslag_kc.cnt_contract_key
AND vvo_toeslag_kc.cnt_kenmerkcontract_verwijder IS NULL
AND vvo_toeslag_kc.cnt_kenmerk_key = 402 -- VVO toeslagperc.
LEFT JOIN fac_v_aanwezigusrdata vvo_toeslag
ON fac.safe_to_number (vvo_toeslag_kc.cnt_kenmerkcontract_waarde) = vvo_toeslag.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract verv_toeslag_kc
ON x.cnt_contract_key = verv_toeslag_kc.cnt_contract_key
AND verv_toeslag_kc.cnt_kenmerkcontract_verwijder IS NULL
AND verv_toeslag_kc.cnt_kenmerk_key = 642 -- Vervangend toeslagperc.
LEFT JOIN fac_v_aanwezigusrdata verv_toeslag
ON fac.safe_to_number (verv_toeslag_kc.cnt_kenmerkcontract_waarde) = verv_toeslag.fac_usrdata_key
--LEFT JOIN cnt_kenmerkcontract korting_pm2
-- ON x.cnt_contract_key = korting_pm2.cnt_contract_key
-- AND korting_pm2.cnt_kenmerkcontract_verwijder IS NULL
-- AND korting_pm2.cnt_kenmerk_key = 404 -- Korting per m2
LEFT JOIN cnt_kenmerkcontract start_fact
ON x.cnt_contract_key = start_fact.cnt_contract_key
AND start_fact.cnt_kenmerkcontract_verwijder IS NULL
AND start_fact.cnt_kenmerk_key = 870 -- Start facturatie op
WHERE fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') < TRUNC (SYSDATE, 'mm')
AND correctie_m2.cnt_kenmerkcontract_waarde IS NOT NULL
AND verv_toeslag.fac_usrdata_prijs > 1
UNION ALL -- Bedrag per Kosten-listbox gezet!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
SUBSTR ('0' || TO_CHAR (x.cnt_kenmerk_key), -4) || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - ' || TRIM (SUBSTR (tar.fac_usrdata_omschr, 1, INSTR (tar.fac_usrdata_omschr, ' ') - 1)) regel, -- ICT/Facilitair/Service/Schoonmaak
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
--btwnr.prs_kenmerklink_waarde btw_nr,
x.cnt_contract_omschrijving beschrijving,
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
rxo.alg_ruimte_opp_alt1 aantal, -- VVO
tar.fac_usrdata_prijs tarief, -- Jaartarief per m2
DECODE (TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)), '8604', 1, COALESCE (vvo_toeslag.fac_usrdata_prijs, 0)) vvo_toeslag, -- VVO toeslagperc. (behalve igv. 8604=Schoonmaak)
1 verv_toeslag, -- Vervangend toeslagperc.
fac.safe_to_number (korting_pm2.cnt_kenmerkcontract_waarde) korting_pm2, -- Korting per m2 ICT/Facilitair/Service/Schoonmaak
pa.alg_onroerendgoed_type,
pa.alg_onroerendgoed_keys,
pa.alg_plaatsaanduiding,
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)) *
COALESCE (rxo.alg_ruimte_opp_alt1, 0) *
DECODE (TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)), '8604', 1, COALESCE (vvo_toeslag.fac_usrdata_prijs, 0)) * -- VVO toeslagperc. (behalve igv. 8604=Schoonmaak)
DECODE (tar.fac_usrdata_prijs, NULL, 0, tar.fac_usrdata_prijs - COALESCE (fac.safe_to_number (korting_pm2.cnt_kenmerkcontract_waarde), 0)) *
1/12, 2)
mndnet, -- Netto maandbedrag
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)) *
COALESCE (rxo.alg_ruimte_opp_alt1, 0) *
DECODE (TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)), '8604', 1, COALESCE (vvo_toeslag.fac_usrdata_prijs, 0)) * -- VVO toeslagperc. (behalve igv. 8604=Schoonmaak)
DECODE (tar.fac_usrdata_prijs, NULL, 0, tar.fac_usrdata_prijs - COALESCE (fac.safe_to_number (korting_pm2.cnt_kenmerkcontract_waarde), 0)) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) *
1/12, 2)
mndbtw, -- BTW maandbedrag
TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)) grtboekrek,
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_omschrijving,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_nr,
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,
c.maand,
k.cnt_kenmerk_key,
ud.fac_usrdata_code
FROM (SELECT lp.maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
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
UNION ALL -- Soms 2 maanden factureren (of 1 maand achteraf?)!
SELECT TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.cnt_contract_aanmaak > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) -- Na begin voorgaande maand aangemaakt!
AND TRUNC (c.cnt_contract_looptijd_van) BETWEEN ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) AND TO_DATE (lp.maand || '01', 'yyyymmdd') -- Van-datum in voorgaande maand!
AND NOT EXISTS -- Voorgaande maand nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_maand = TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') -- Voorgaande maand!
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_refkey = c.cnt_contract_key)) c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
cnt_kenmerkcontract kc,
cnt_kenmerk k,
fac_usrdata ud
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_kenmerk_link(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
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_kenmerk_verwijder IS NULL
AND k.cnt_kenmerk_key IN (643, 645, 647, 649) -- ICT/Facilitair/Service/Schoonmaak
AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) = ud.fac_usrdata_key
AND ud.fac_usrdata_key NOT IN (981, 984, 987, 990)) x -- Nvt.
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 = -1 -- 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 = -1 -- 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 = -1 -- VSOV
LEFT JOIN cnt_v_aanwezigcontract_plaats ccp
ON x.cnt_contract_key = ccp.cnt_contract_key
AND ccp.cnt_alg_plaats_code = 'R' -- Alleen Scope-ruimten!
LEFT JOIN alg_v_plaatsaanduiding_all pa
ON ccp.cnt_alg_plaats_key = pa.alg_onroerendgoed_keys
LEFT JOIN alg_v_aanwezigruimte rxo
ON ccp.cnt_alg_plaats_key = rxo.alg_ruimte_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 = 401 -- Tarieftabel
LEFT JOIN fac_v_aanwezigusrdata tt_ud
ON fac.safe_to_number (tt_kc.cnt_kenmerkcontract_waarde) = tt_ud.fac_usrdata_key
LEFT JOIN fac_v_aanwezigusrdata tar
ON fac.safe_to_number (tt_ud.fac_usrdata_code) = tar.fac_usrtab_key
AND UPPER (SUBSTR (tar.fac_usrdata_code, INSTR (tar.fac_usrdata_code, '/') + 1)) = UPPER (x.fac_usrdata_code)
LEFT JOIN cnt_kenmerkcontract vvo_toeslag_kc
ON x.cnt_contract_key = vvo_toeslag_kc.cnt_contract_key
AND vvo_toeslag_kc.cnt_kenmerkcontract_verwijder IS NULL
AND vvo_toeslag_kc.cnt_kenmerk_key = 402 -- VVO toeslagperc.
LEFT JOIN fac_v_aanwezigusrdata vvo_toeslag
ON fac.safe_to_number (vvo_toeslag_kc.cnt_kenmerkcontract_waarde) = vvo_toeslag.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract korting_pm2
ON x.cnt_contract_key = korting_pm2.cnt_contract_key
AND x.cnt_kenmerk_key + 1 = korting_pm2.cnt_kenmerk_key
AND korting_pm2.cnt_kenmerkcontract_verwijder IS NULL
AND korting_pm2.cnt_kenmerk_key IN (644, 646, 648, 650) -- Korting per m2 (ICT/Facilitair/Service/Schoonmaak)
UNION ALL -- M2 correctie per Kosten-listbox gezet!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
SUBSTR ('0' || TO_CHAR (x.cnt_kenmerk_key), -4) || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - ' || TRIM (SUBSTR (tar.fac_usrdata_omschr, 1, INSTR (tar.fac_usrdata_omschr, ' ') - 1)) regel, -- ICT/Facilitair/Service/Schoonmaak
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
--btwnr.prs_kenmerklink_waarde btw_nr,
x.cnt_contract_omschrijving beschrijving,
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
fac.safe_to_number (correctie_m2.cnt_kenmerkcontract_waarde) aantal, -- VVO-correctie
tar.fac_usrdata_prijs tarief, -- Jaartarief per m2
DECODE (TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)), '8604', 1, COALESCE (vvo_toeslag.fac_usrdata_prijs, 0)) vvo_toeslag, -- VVO toeslagperc. (behalve igv. 8604=Schoonmaak)
1 verv_toeslag, -- Vervangend toeslagperc.
fac.safe_to_number (korting_pm2.cnt_kenmerkcontract_waarde) korting_pm2, -- Korting per m2 ICT/Facilitair/Service/Schoonmaak
'C' alg_onroerendgoed_type,
-1 alg_onroerendgoed_keys,
'Correctie' alg_plaatsaanduiding,
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)) *
COALESCE (fac.safe_to_number (correctie_m2.cnt_kenmerkcontract_waarde), 0) *
DECODE (TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)), '8604', 1, COALESCE (vvo_toeslag.fac_usrdata_prijs, 0)) * -- VVO toeslagperc. (behalve igv. 8604=Schoonmaak)
DECODE (tar.fac_usrdata_prijs, NULL, 0, tar.fac_usrdata_prijs - COALESCE (fac.safe_to_number (korting_pm2.cnt_kenmerkcontract_waarde), 0)) *
1/12, 2)
mndnet, -- Netto maandbedrag
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)) *
COALESCE (fac.safe_to_number (correctie_m2.cnt_kenmerkcontract_waarde), 0) *
DECODE (TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)), '8604', 1, COALESCE (vvo_toeslag.fac_usrdata_prijs, 0)) * -- VVO toeslagperc. (behalve igv. 8604=Schoonmaak)
DECODE (tar.fac_usrdata_prijs, NULL, 0, tar.fac_usrdata_prijs - COALESCE (fac.safe_to_number (korting_pm2.cnt_kenmerkcontract_waarde), 0)) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) *
1/12, 2)
mndbtw, -- BTW maandbedrag
TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)) grtboekrek,
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_omschrijving,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_nr,
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,
c.maand,
k.cnt_kenmerk_key,
ud.fac_usrdata_code
FROM (SELECT lp.maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
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
UNION ALL -- Soms 2 maanden factureren (of 1 maand achteraf?)!
SELECT TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.cnt_contract_aanmaak > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) -- Na begin voorgaande maand aangemaakt!
AND TRUNC (c.cnt_contract_looptijd_van) BETWEEN ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) AND TO_DATE (lp.maand || '01', 'yyyymmdd') -- Van-datum in voorgaande maand!
AND NOT EXISTS -- Voorgaande maand nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_maand = TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') -- Voorgaande maand!
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_refkey = c.cnt_contract_key)) c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
cnt_kenmerkcontract kc,
cnt_kenmerk k,
fac_usrdata ud
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_kenmerk_link(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
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_kenmerk_verwijder IS NULL
AND k.cnt_kenmerk_key IN (643, 645, 647, 649) -- ICT/Facilitair/Service/Schoonmaak
AND fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) = ud.fac_usrdata_key
AND ud.fac_usrdata_key NOT IN (981, 984, 987, 990)) x -- Nvt.
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 = -1 -- 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 = -1 -- 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 = -1 -- VSOV
LEFT JOIN cnt_kenmerkcontract correctie_m2
ON x.cnt_contract_key = correctie_m2.cnt_contract_key
AND correctie_m2.cnt_kenmerkcontract_verwijder IS NULL
AND correctie_m2.cnt_kenmerk_key = 701 -- Correctie m2
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 = 401 -- Tarieftabel
LEFT JOIN fac_v_aanwezigusrdata tt_ud
ON fac.safe_to_number (tt_kc.cnt_kenmerkcontract_waarde) = tt_ud.fac_usrdata_key
LEFT JOIN fac_v_aanwezigusrdata tar
ON fac.safe_to_number (tt_ud.fac_usrdata_code) = tar.fac_usrtab_key
AND UPPER (SUBSTR (tar.fac_usrdata_code, INSTR (tar.fac_usrdata_code, '/') + 1)) = UPPER (x.fac_usrdata_code)
LEFT JOIN cnt_kenmerkcontract vvo_toeslag_kc
ON x.cnt_contract_key = vvo_toeslag_kc.cnt_contract_key
AND vvo_toeslag_kc.cnt_kenmerkcontract_verwijder IS NULL
AND vvo_toeslag_kc.cnt_kenmerk_key = 402 -- VVO toeslagperc.
LEFT JOIN fac_v_aanwezigusrdata vvo_toeslag
ON fac.safe_to_number (vvo_toeslag_kc.cnt_kenmerkcontract_waarde) = vvo_toeslag.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract korting_pm2
ON x.cnt_contract_key = korting_pm2.cnt_contract_key
AND x.cnt_kenmerk_key + 1 = korting_pm2.cnt_kenmerk_key
AND korting_pm2.cnt_kenmerkcontract_verwijder IS NULL
AND korting_pm2.cnt_kenmerk_key IN (644, 646, 648, 650) -- Korting per m2 (ICT/Facilitair/Service/Schoonmaak)
WHERE correctie_m2.cnt_kenmerkcontract_waarde IS NOT NULL
UNION ALL -- Bedragen voor Duty manager (uren) en Koffieautomaten (aantal)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
SUBSTR ('0' || TO_CHAR (x.cnt_kenmerk_key), -4) || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - ' || TRIM (SUBSTR (tar.fac_usrdata_omschr, 1, INSTR (tar.fac_usrdata_omschr, ' ') - 1)) regel, -- ICT/Facilitair/Service/Schoonmaak
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
--btwnr.prs_kenmerklink_waarde btw_nr,
x.cnt_contract_omschrijving beschrijving,
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
x.aantal, -- Uren Duty Manager/Aantal Koffieautomaten
tar.fac_usrdata_prijs tarief, -- Jaartarief per m2
1 vvo_toeslag, -- Nvt.
1 verv_toeslag, -- Vervangend toeslagperc.
0 korting_pm2, -- Korting op tarief (per eenheid)
NULL alg_onroerendgoed_type,
NULL alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
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)) *
COALESCE (x.aantal, 0) *
COALESCE (tar.fac_usrdata_prijs, 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
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)) *
COALESCE (x.aantal, 0) *
COALESCE (tar.fac_usrdata_prijs, 0) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) *
1/12, 2)
mndbtw, -- BTW maandbedrag
TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)) grtboekrek,
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_omschrijving,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_nr,
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,
c.maand,
k.cnt_kenmerk_key, -- 901=Uren Duty Manager/902=Aantal Koffieautomaten
fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) aantal
FROM (SELECT lp.maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
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
UNION ALL -- Soms 2 maanden factureren (of 1 maand achteraf?)!
SELECT TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.cnt_contract_aanmaak > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) -- Na begin voorgaande maand aangemaakt!
AND TRUNC (c.cnt_contract_looptijd_van) BETWEEN ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) AND TO_DATE (lp.maand || '01', 'yyyymmdd') -- Van-datum in voorgaande maand!
AND NOT EXISTS -- Voorgaande maand nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_maand = TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') -- Voorgaande maand!
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_refkey = c.cnt_contract_key)) c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
cnt_kenmerkcontract kc,
cnt_kenmerk k
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_kenmerk_link(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
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_kenmerk_verwijder IS NULL
AND k.cnt_kenmerk_key IN (901, 902)) x -- Duty manager/Koffieautomaten
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 = -1 -- 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 = -1 -- 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 = -1 -- 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 = 401 -- Tarieftabel
LEFT JOIN fac_v_aanwezigusrdata tt_ud
ON fac.safe_to_number (tt_kc.cnt_kenmerkcontract_waarde) = tt_ud.fac_usrdata_key
LEFT JOIN fac_v_aanwezigusrdata tar
ON fac.safe_to_number (tt_ud.fac_usrdata_code) = tar.fac_usrtab_key
AND DECODE (UPPER (SUBSTR (tar.fac_usrdata_code, INSTR (tar.fac_usrdata_code, '/') + 1)), 'DUTY MANAGER', 901, 'KOFFIEAUTOMATEN', 902, -1) = x.cnt_kenmerk_key
UNION ALL -- Absolute correctie!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'0000' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
--'CHV - ' || x.cnt_srtkenmerk_omschrijving regel,
'CHV - Huur' regel, -- Absolute correctie verrekenen in Huur
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
--btwnr.prs_kenmerklink_waarde btw_nr,
x.cnt_contract_omschrijving beschrijving,
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 (verv_toeslag.fac_usrdata_key, 1001, 'H', '0')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (verv_toeslag.fac_usrdata_key, 1001, 'Hoog', 'Nul')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (verv_toeslag.fac_usrdata_key, 1001, 21, 0)) 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
1 aantal, -- Don't care
-1 * fac.safe_to_number (x.cnt_kenmerkcontract_waarde) tarief, -- Jaartarief per m2
1 vvo_toeslag, -- VVO toeslagperc.
1 verv_toeslag, -- Vervangend toeslagperc.
0 korting_pm2, -- Korting per m2
NULL alg_onroerendgoed_type,
NULL alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
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)) *
fac.safe_to_number (x.cnt_kenmerkcontract_waarde) *
1/12, 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)) *
fac.safe_to_number (x.cnt_kenmerkcontract_waarde) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (verv_toeslag.fac_usrdata_key, 1001, 0.21, 0)) *
1/12, 2)
mndbtw, -- BTW maandbedrag
DECODE (verv_toeslag.fac_usrdata_key, 1001, SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1), '8110') grtboekrek,
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_omschrijving,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_nr,
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,
c.maand,
sk.cnt_srtkenmerk_omschrijving,
kc.cnt_kenmerkcontract_waarde
FROM (SELECT lp.maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
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
UNION ALL -- Soms 2 maanden factureren (of 1 maand achteraf?)!
SELECT TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.cnt_contract_aanmaak > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) -- Na begin voorgaande maand aangemaakt!
AND TRUNC (c.cnt_contract_looptijd_van) BETWEEN ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) AND TO_DATE (lp.maand || '01', 'yyyymmdd') -- Van-datum in voorgaande maand!
AND NOT EXISTS -- Voorgaande maand nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_maand = TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') -- Voorgaande maand!
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_refkey = c.cnt_contract_key)) c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
cnt_kenmerkcontract kc,
cnt_kenmerk k,
cnt_srtkenmerk sk
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_kenmerk_link(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
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_kenmerk_verwijder IS NULL
AND k.cnt_kenmerk_key = 405 -- Absolute correctie!
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_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 = -1 -- 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 = -1 -- 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 = -1 -- 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 = 401 -- Tarieftabel
LEFT JOIN fac_v_aanwezigusrdata tt_ud
ON fac.safe_to_number (tt_kc.cnt_kenmerkcontract_waarde) = tt_ud.fac_usrdata_key
LEFT JOIN fac_v_aanwezigusrdata tar
ON fac.safe_to_number (tt_ud.fac_usrdata_code) = tar.fac_usrtab_key
AND SUBSTR (tar.fac_usrdata_code, INSTR (tar.fac_usrdata_code, '/') + 1, 4) = 'Huur' -- Huur-tarief
LEFT JOIN cnt_kenmerkcontract verv_toeslag_kc
ON x.cnt_contract_key = verv_toeslag_kc.cnt_contract_key
AND verv_toeslag_kc.cnt_kenmerkcontract_verwijder IS NULL
AND verv_toeslag_kc.cnt_kenmerk_key = 642 -- Vervangend toeslagperc.
LEFT JOIN fac_v_aanwezigusrdata verv_toeslag
ON fac.safe_to_number (verv_toeslag_kc.cnt_kenmerkcontract_waarde) = verv_toeslag.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract start_fact
ON x.cnt_contract_key = start_fact.cnt_contract_key
AND start_fact.cnt_kenmerkcontract_verwijder IS NULL
AND start_fact.cnt_kenmerk_key = 870 -- Start facturatie op
WHERE fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') < TRUNC (SYSDATE, 'mm')
AND COALESCE (fac.safe_to_number (x.cnt_kenmerkcontract_waarde), 0) != 0
UNION ALL -- Parkeren CHV/Parkeren CMD!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
DECODE (x.ins_discipline_key, 2004, 'CMD', 'CHV') || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'9999' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
COALESCE (ks.prs_kostensoort_refcode, ks.prs_kostensoort_opmerking) regel, -- Parkeren CHV/Parkeren CMD
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, DECODE (x.ins_discipline_key, 2004, x.cmd_debiteur_nr, x.chv_debiteur_nr) debiteur_nr,
--btwnr.prs_kenmerklink_waarde btw_nr,
x.cnt_contract_omschrijving beschrijving,
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
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) aantal,
fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) tarief,
1 vvo_toeslag, -- VVO toeslagperc.
1 verv_toeslag, -- Vervangend toeslagperc.
0 korting_pm2, -- Korting per m2
NULL alg_onroerendgoed_type,
NULL alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
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)) *
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) *
fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) *
1/12, 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)) *
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) *
fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) *
1/12, 2)
mndbtw, -- BTW maandbedrag
TRIM (ks.prs_kostensoort_oms) grtboekrek,
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_omschrijving,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (cmdnr.prs_kenmerklink_waarde) cmd_debiteur_nr, TRIM (chvnr.prs_kenmerklink_waarde) chv_debiteur_nr,
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,
c.maand
FROM (SELECT lp.maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key IN (2003, 2004) -- Parkeren CHV/Parkeren CMD
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
UNION ALL -- Soms 2 maanden factureren (of 1 maand achteraf?)!
SELECT TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key IN (2003, 2004) -- Parkeren CHV/Parkeren CMD
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.cnt_contract_aanmaak > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) -- Na begin voorgaande maand aangemaakt!
AND TRUNC (c.cnt_contract_looptijd_van) BETWEEN ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) AND TO_DATE (lp.maand || '01', 'yyyymmdd') -- Van-datum in voorgaande maand!
AND NOT EXISTS -- Voorgaande maand nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_maand = TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') -- Voorgaande maand!
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_refkey = c.cnt_contract_key)) c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cmdnr.prs_kenmerk_link(+)
AND b.prs_bedrijf_key = chvnr.prs_kenmerk_link(+)
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 = -1 -- 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 = -1 -- 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 = -1 -- VSOV
LEFT JOIN cnt_discipline cd
ON x.ins_discipline_key = cd.ins_discipline_key
LEFT JOIN prs_kostensoort ks
ON cd.prs_kostensoort_key = ks.prs_kostensoort_key
LEFT JOIN cnt_kenmerkcontract aantal
ON x.cnt_contract_key = aantal.cnt_contract_key
AND aantal.cnt_kenmerkcontract_verwijder IS NULL
AND aantal.cnt_kenmerk_key IN (415, 417) -- Aantal
LEFT JOIN cnt_kenmerkcontract bedrag
ON x.cnt_contract_key = bedrag.cnt_contract_key
AND bedrag.cnt_kenmerkcontract_verwijder IS NULL
AND bedrag.cnt_kenmerk_key IN (416, 418) -- Bedrag
LEFT JOIN cnt_kenmerkcontract gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 862 -- Geen automatische facturatie
WHERE gaf.cnt_kenmerkcontract_waarde IS NULL -- COALESCE (gaf.cnt_kenmerkcontract_waarde, 0) = 0
UNION ALL -- Deelnemers CMD!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CMD' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'9999' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CMD - ' || sd_ud.fac_usrdata_omschr regel, -- Deelnemers CMD
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
--btwnr.prs_kenmerklink_waarde btw_nr,
x.cnt_contract_omschrijving beschrijving,
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
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) aantal,
fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) tarief,
1 vvo_toeslag, -- VVO toeslagperc.
1 verv_toeslag, -- Vervangend toeslagperc.
0 korting_pm2, -- Korting per m2
NULL alg_onroerendgoed_type,
NULL alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
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)) *
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) *
fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) *
1/12, 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)) *
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) *
fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) *
1/12, 2)
mndbtw, -- BTW maandbedrag
TRIM (SUBSTR (sd_ud.fac_usrdata_code, 1, INSTR (sd_ud.fac_usrdata_code, '/') - 1)) grtboekrek,
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_omschrijving,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, cmdnr.prs_kenmerklink_waarde debiteur_nr,
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,
c.maand
FROM (SELECT lp.maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2005 -- Deelnemers CMD
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
UNION ALL -- Soms 2 maanden factureren (of 1 maand achteraf?)!
SELECT TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') maand, c.*
FROM lopendeperiode lp, cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2005 -- Deelnemers CMD
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.cnt_contract_aanmaak > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) -- Na begin voorgaande maand aangemaakt!
AND TRUNC (c.cnt_contract_looptijd_van) BETWEEN ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) AND TO_DATE (lp.maand || '01', 'yyyymmdd') -- Van-datum in voorgaande maand!
AND NOT EXISTS -- Voorgaande maand nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_maand = TO_CHAR (TO_DATE (lp.maand || '01', 'yyyymmdd') - 1, 'yyyymm') -- Voorgaande maand!
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_refkey = c.cnt_contract_key)) c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE 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 = -1 -- 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 = -1 -- 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 = -1 -- VSOV
LEFT JOIN cnt_discipline cd
ON x.ins_discipline_key = cd.ins_discipline_key
LEFT JOIN prs_kostensoort ks
ON cd.prs_kostensoort_key = ks.prs_kostensoort_key
LEFT JOIN cnt_kenmerkcontract aantal
ON x.cnt_contract_key = aantal.cnt_contract_key
AND aantal.cnt_kenmerkcontract_verwijder IS NULL
AND aantal.cnt_kenmerk_key = 419 -- Aantal
LEFT JOIN cnt_kenmerkcontract bedrag
ON x.cnt_contract_key = bedrag.cnt_contract_key
AND bedrag.cnt_kenmerkcontract_verwijder IS NULL
AND bedrag.cnt_kenmerk_key = 420 -- Bedrag
LEFT JOIN cnt_kenmerkcontract sd_kc
ON x.cnt_contract_key = sd_kc.cnt_contract_key
AND sd_kc.cnt_kenmerkcontract_verwijder IS NULL
AND sd_kc.cnt_kenmerk_key = 421 -- Soort deelnemer
LEFT JOIN fac_v_aanwezigusrdata sd_ud
ON fac.safe_to_number (sd_kc.cnt_kenmerkcontract_waarde) = sd_ud.fac_usrdata_key
LEFT JOIN cnt_kenmerkcontract gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 862 -- Geen automatische facturatie
WHERE gaf.cnt_kenmerkcontract_waarde IS NULL -- COALESCE (gaf.cnt_kenmerkcontract_waarde, 0) = 0
;
/*
UNION ALL -- Borg CHV (eenmalig factureren, liefst op eerste factuur)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
--'CHV' || TRIM (x.cnt_contract_nummer) cnt_contract_nummer, -- PO
'9999' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - ' || COALESCE (ks.prs_kostensoort_refcode, ks.prs_kostensoort_opmerking) regel, -- Borg CHV
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.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
--btwnr.prs_kenmerklink_waarde btw_nr,
x.cnt_contract_omschrijving beschrijving,
--(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
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) aantal,
fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) tarief,
1 vvo_toeslag, -- VVO toeslagperc.
1 verv_toeslag, -- Vervangend toeslagperc.
0 korting_pm2, -- Korting per m2
NULL alg_onroerendgoed_type,
NULL alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
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)) *
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) *
fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) *
1/12, 2)
mndnet, -- Netto maandbedrag
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)) *
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) *
fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) *
1/12, 2)
mndbtw, -- BTW maandbedrag
TRIM (ks.prs_kostensoort_oms) grtboekrek,
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_omschrijving,
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,
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 = 2002 -- Borg CHV
AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.cnt_contract_aanmaak > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) -- Voorgaande maand aangemaakt!
AND TRUNC (c.cnt_contract_looptijd_van) >= ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -1) -- Van-datum in voorgaande maand!
AND NOT EXISTS -- Borg-contract niet eerder gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_refkey = 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(+)) 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 = -1 -- 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 = -1 -- 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 = -1 -- VSOV
LEFT JOIN cnt_discipline cd
ON x.ins_discipline_key = cd.ins_discipline_key
LEFT JOIN prs_kostensoort ks
ON cd.prs_kostensoort_key = ks.prs_kostensoort_key
LEFT JOIN cnt_kenmerkcontract aantal
ON x.cnt_contract_key = aantal.cnt_contract_key
AND aantal.cnt_kenmerkcontract_verwijder IS NULL
AND aantal.cnt_kenmerk_key = 413 -- Aantal
LEFT JOIN cnt_kenmerkcontract bedrag
ON x.cnt_contract_key = bedrag.cnt_contract_key
AND bedrag.cnt_kenmerkcontract_verwijder IS NULL
AND bedrag.cnt_kenmerk_key = 414 -- Bedrag
*/
CREATE OR REPLACE VIEW bssc_v_fact_frozen
AS
SELECT vf.fin_verkoopfactuur_id,
SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1) po_nr,
SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 2, 8) sortering,
SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 10) regel,
NULL aanvrager, -- !!!
NULL 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, -- !!!
c.cnt_contract_nummer_intern || '/' || COALESCE (c.cnt_contract_versie, '0') refid, -- Niet historisch bewaard!
c.cnt_contract_looptijd_tot lv, -- Niet historisch bewaard!
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,
SUBSTR (vf.fin_verkoopfactuur_c7, INSTR (vf.fin_verkoopfactuur_c7, '=') + 1) beschrijving,
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 (vf.fin_verkoopfactuur_c1) aantal,
fac.safe_to_number (vf.fin_verkoopfactuur_c2) tarief,
fac.safe_to_number (vf.fin_verkoopfactuur_c3) vvo_toeslag,
fac.safe_to_number (vf.fin_verkoopfactuur_c4) verv_toeslag,
fac.safe_to_number (vf.fin_verkoopfactuur_c5) korting_pm2,
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,
vf.fin_verkoopfactuur_bedrag mndnet, -- Netto maandbedrag
vf.fin_verkoopfactuur_btw mndbtw, -- BTW maandbedrag
vf.prs_kostensoort_oms grtboekrek,
vf.fin_verkoopfactuur_n1 mld_melding_key
FROM fin_verkoopfactuur vf, cnt_contract c, prs_bedrijf b
WHERE (vf.fin_verkoopfactuur_xmlnode = 'contract' AND vf.fin_verkoopfactuur_n1 IS NULL) -- C en geen M!
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_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 bssc_v_rap_export_fact_chv
(
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,
REPLACE (factuurdatum, '-', '/') factuurdatum,
periode,
factuurnummer,
--vervaldatum,
REPLACE (vervaldatum, '-', '/') 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, -- TODO: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 bssc_v_fact_frozen v
WHERE v.po_nr = 'CHV'
AND 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 bssc_v_fact_frozen v, cnt_contract c, prs_kostenplaats kp
WHERE v.po_nr = 'CHV'
AND v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
AND v.refkey = 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 bssc_v_export_fact_chv
(
result,
result_order
)
AS -- View bevat alleen inhoud op de dag na de 1e 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) = 14 -- TODO: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 bssc_v_rap_export_fact_chv
WHERE fclt_x_maand = TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyy-mm')
AND FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 14 -- TODO: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;
CREATE OR REPLACE VIEW bssc_v_rap_export_fact_cmd
(
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,
REPLACE (factuurdatum, '-', '/') factuurdatum,
periode,
factuurnummer,
--vervaldatum,
REPLACE (vervaldatum, '-', '/') 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, -- TODO: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 bssc_v_fact_frozen v
WHERE v.po_nr = 'CMD'
AND 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 bssc_v_fact_frozen v, cnt_contract c, prs_kostenplaats kp
WHERE v.po_nr = 'CMD'
AND v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
AND v.refkey = 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 bssc_v_export_fact_cmd
(
result,
result_order
)
AS -- View bevat alleen inhoud op de dag na de 1e 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) = 14 -- TODO: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 bssc_v_rap_export_fact_cmd
WHERE fclt_x_maand = TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyy-mm')
AND FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 14 -- TODO: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;
*/
CREATE OR REPLACE PROCEDURE bssc_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.refid || '|' || v.prs_debiteur_naam || '|' || v.regel || '] ' aanduiding,
v.*
FROM bssc_v_fact_actual v
ORDER BY v.prs_bedrijf_key, v.po_nr, v.sortering, v.regel, v.alg_plaatsaanduiding;
-- Verstuur verkoopfactuur naar huurder.
CURSOR c2
IS
SELECT DISTINCT '[' || vf.fin_verkoopfactuur_id || '|' || vf.fin_verkoopfactuur_maand || '|' || vf.prs_debiteur_naam || '] ' aanduiding,
vf.fin_verkoopfactuur_id, vf.fin_verkoopfactuur_maand, vf.prs_debiteur_naam,
vfk.fin_verkoopfactuurkop_key, vfk.fin_verkoopfactuurkop_id,
b.prs_bedrijf_email
FROM fin_verkoopfactuur vf, fin_verkoopfactuurkop vfk, prs_bedrijf b
WHERE vf.fin_verkoopfactuur_xmlnode = 'contract' AND fin_verkoopfactuur_n1 IS NULL -- Onderscheid ADDD vs. FACT!
AND vf.fin_verkoopfactuurkop_key = vfk.fin_verkoopfactuurkop_key
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND vf.fin_verkoopfactuur_maand = TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyymm')
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_contract_key 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_contract_key := -1;
-- Factureer/bevries verhuurcontractkosten en verwerk=AV alle eventuele
-- correctiemeldingen.
FOR rec IN c1
LOOP
BEGIN
IF rec.refkey != v_old_contract_key
THEN
/*
IF rec.po_nr LIKE 'CHV%'
THEN
-- TODO:Afhankelijk van boekstuknummer-methodiek!
-- 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') || '9' || SUBSTR ('0000' || TO_CHAR (v_count), -4);
ELSE -- rec.po_nr LIKE 'CMD%'
-- TODO:Afhankelijk van boekstuknummer-methodiek!
-- 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) = '2' -- Boekstuknummers in formaat <yyyy>2!
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 '02' en begin elk nieuw jaar weer bij 1 door te
-- corrigeren met de hierboven bepaalde offset.
SELECT fac_s_user02.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);
END IF;
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;
*/
IF rec.po_nr LIKE 'CHV%'
THEN
SELECT fac_s_user01.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '1' || SUBSTR ('000000' || TO_CHAR (v_count), -6);
ELSE
SELECT fac_s_user02.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '2' || SUBSTR ('000000' || TO_CHAR (v_count), -6);
END IF;
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_contract_key := rec.refkey;
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.po_nr || '/=' || rec.sortering || rec.regel,
'contract',
rec.refkey,
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,
ROUND ((rec.mndnet * rec.fin_btwtabelwaarde_perc) / 100, 2),
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), -- n1
TO_NUMBER (NULL), -- n2
TO_NUMBER (NULL), -- n3
TO_NUMBER (NULL), -- n4
TO_NUMBER (NULL), -- n5
TO_CHAR (rec.aantal), -- c1/aantal
TO_CHAR (rec.tarief), -- c2/tarief
TO_CHAR (rec.vvo_toeslag), -- c3/vvo_toeslag
TO_CHAR (rec.verv_toeslag), -- c4/verv_toeslag
TO_CHAR (rec.korting_pm2), -- c5/korting_pm2
rec.alg_onroerendgoed_type || rec.alg_onroerendgoed_keys || '=' || rec.alg_plaatsaanduiding, -- c6
--rec.debiteur_nr || '=' || rec.btw_nr, -- c7
rec.debiteur_nr || '=' || rec.beschrijving, -- c7
NULL, -- 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;
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, 'finance.smartservices@brightlands.com',
'finance.smartservices@brightlands.com'), -- TODO:rec.prs_bedrijf_email || ';finance.smartservices@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),
'finance.smartservices@brightlands.com',
'/../../Fplace_A/CUST/BSSC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf'); -- TODO
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;
/
-- 30 Vergadering/2,00 Ruimte
-- 50 Events/8,00 Ruimte
-- 90 Roomservice/0,50 Voorzieningen
-- 170 Huurders Events/4,00 Ruimte
-- 190 Projectruimtes Etage 4/8,00 Ruimte
CREATE OR REPLACE VIEW bssc_v_addd_correctie
AS
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
DECODE (m.mld_stdmelding_key, 1481, 'CHV', 'CMD') || TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Overnemen van te corrigeren factuur?
'01' sortering,
TRIM (ro.waarde) regel,
pf.prs_perslid_naam_full aanvrager,
'Correctie ' || vf.fin_verkoopfactuur_id regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
NULL refid, -- TODO: Nvt. op correctiefactuur?
NULL lv, -- TODO: Nvt. op correctiefactuur?
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
--NULL btw_nr,
NULL beschrijving,
--DECODE (vf.fin_verkoopfactuur_xmlnode, 'reservering', vf.fin_verkoopfactuur_c4, NULL) contactpersoon,
NULL contactpersoon, -- TODO: Nvt. op correctiefactuur/Alleen RES?
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 (btwvl.prs_kenmerklink_waarde, '1', 'V', btw.code) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', btw.oms) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, TO_NUMBER (NULL)) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
NULL dagbegin,
NULL dageinde,
TO_NUMBER (NULL) mndbes,
TO_NUMBER (NULL) mndbez,
TO_NUMBER (NULL) aantal, -- VVO
TO_NUMBER (NULL) tarief, -- Jaartarief per m2
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagperc.
TO_NUMBER (NULL) verv_toeslag, -- Vervangend toeslagperc.
TO_NUMBER (NULL) korting_pm2, -- Korting per m2 Huur
NULL alg_onroerendgoed_type,
TO_NUMBER (NULL) alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc)), 2) mndbtw, -- BTW correctiebedrag
ks.mld_kenmerkmelding_waarde grtboekrek,
m.mld_melding_key mld_melding_key -- Correctiemelding-key
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
--(SELECT prs_link_key, prs_kenmerklink_waarde
-- FROM prs_kenmerklink
-- WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwnr, -- BTW-nummer (NL)
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 742) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 743 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 744) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, prs_kostenplaats kp -- TODO (of weg?): Was blcc_v_kostenplaats
WHERE km.mld_kenmerk_key = -1 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 745) ks -- Kostensoort
WHERE m.mld_stdmelding_key IN (1481, 1482) -- Fin. correctie CHV/CMD
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (861, 861) -- Factuurreferentie CHV/CMD
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
--AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND b.prs_bedrijf_key = btwvl.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key(+)
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
DECODE (m.mld_stdmelding_key, 1481, 'CHV', 'CMD') || TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Overnemen van te corrigeren factuur?
'02' sortering,
TRIM (ro.waarde) regel,
pf.prs_perslid_naam_full aanvrager,
'Correctie ' || vf.fin_verkoopfactuur_id regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
NULL refid, -- TODO: Nvt. op correctiefactuur?
NULL lv, -- TODO: Nvt. op correctiefactuur?
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
--NULL btw_nr,
NULL beschrijving,
NULL contactpersoon, -- TODO: Nvt. op correctiefactuur/Alleen RES?
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 (btwvl.prs_kenmerklink_waarde, '1', 'V', btw.code) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', btw.oms) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, TO_NUMBER (NULL)) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
NULL dagbegin,
NULL dageinde,
TO_NUMBER (NULL) mndbes,
TO_NUMBER (NULL) mndbez,
TO_NUMBER (NULL) aantal, -- VVO
TO_NUMBER (NULL) tarief, -- Jaartarief per m2
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagperc.
TO_NUMBER (NULL) verv_toeslag, -- Vervangend toeslagperc.
TO_NUMBER (NULL) korting_pm2, -- Korting per m2 Huur
NULL alg_onroerendgoed_type,
TO_NUMBER (NULL) alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc)), 2) mndbtw, -- BTW correctiebedrag
ks.mld_kenmerkmelding_waarde grtboekrek,
m.mld_melding_key mld_melding_key -- Correctiemelding-key
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
--(SELECT prs_link_key, prs_kenmerklink_waarde
-- FROM prs_kenmerklink
-- WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwnr, -- BTW-nummer (NL)
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 747) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 748 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 749) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, prs_kostenplaats kp -- TODO (of weg?): Was blcc_v_kostenplaats
WHERE km.mld_kenmerk_key = -1 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 750) ks -- Kostensoort
WHERE m.mld_stdmelding_key IN (1481, 1482) -- Fin. correctie CHV/CMD
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (861, 861) -- Factuurreferentie CHV/CMD
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
--AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND b.prs_bedrijf_key = btwvl.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key(+)
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
DECODE (m.mld_stdmelding_key, 1481, 'CHV', 'CMD') || TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Overnemen van te corrigeren factuur?
'03' sortering,
TRIM (ro.waarde) regel,
pf.prs_perslid_naam_full aanvrager,
'Correctie ' || vf.fin_verkoopfactuur_id regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
NULL refid, -- TODO: Nvt. op correctiefactuur?
NULL lv, -- TODO: Nvt. op correctiefactuur?
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
--NULL btw_nr,
NULL beschrijving,
NULL contactpersoon, -- TODO: Nvt. op correctiefactuur/Alleen RES?
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 (btwvl.prs_kenmerklink_waarde, '1', 'V', btw.code) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', btw.oms) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, TO_NUMBER (NULL)) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
NULL dagbegin,
NULL dageinde,
TO_NUMBER (NULL) mndbes,
TO_NUMBER (NULL) mndbez,
TO_NUMBER (NULL) aantal, -- VVO
TO_NUMBER (NULL) tarief, -- Jaartarief per m2
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagperc.
TO_NUMBER (NULL) verv_toeslag, -- Vervangend toeslagperc.
TO_NUMBER (NULL) korting_pm2, -- Korting per m2 Huur
NULL alg_onroerendgoed_type,
TO_NUMBER (NULL) alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc)), 2) mndbtw, -- BTW correctiebedrag
ks.mld_kenmerkmelding_waarde grtboekrek,
m.mld_melding_key mld_melding_key -- Correctiemelding-key
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
--(SELECT prs_link_key, prs_kenmerklink_waarde
-- FROM prs_kenmerklink
-- WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwnr, -- BTW-nummer (NL)
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 762) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 763 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 764) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, prs_kostenplaats kp -- TODO (of weg?): Was blcc_v_kostenplaats
WHERE km.mld_kenmerk_key = -1 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 765) ks -- Kostensoort
WHERE m.mld_stdmelding_key IN (1481, 1482) -- Fin. correctie CHV/CMD
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (861, 861) -- Factuurreferentie CHV/CMD
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
--AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND b.prs_bedrijf_key = btwvl.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key(+)
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
DECODE (m.mld_stdmelding_key, 1481, 'CHV', 'CMD') || TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Overnemen van te corrigeren factuur?
'04' sortering,
TRIM (ro.waarde) regel,
pf.prs_perslid_naam_full aanvrager,
'Correctie ' || vf.fin_verkoopfactuur_id regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
NULL refid, -- TODO: Nvt. op correctiefactuur?
NULL lv, -- TODO: Nvt. op correctiefactuur?
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
--NULL btw_nr,
NULL beschrijving,
NULL contactpersoon, -- TODO: Nvt. op correctiefactuur/Alleen RES?
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 (btwvl.prs_kenmerklink_waarde, '1', 'V', btw.code) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', btw.oms) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, TO_NUMBER (NULL)) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
NULL dagbegin,
NULL dageinde,
TO_NUMBER (NULL) mndbes,
TO_NUMBER (NULL) mndbez,
TO_NUMBER (NULL) aantal, -- VVO
TO_NUMBER (NULL) tarief, -- Jaartarief per m2
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagperc.
TO_NUMBER (NULL) verv_toeslag, -- Vervangend toeslagperc.
TO_NUMBER (NULL) korting_pm2, -- Korting per m2 Huur
NULL alg_onroerendgoed_type,
TO_NUMBER (NULL) alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc)), 2) mndbtw, -- BTW correctiebedrag
ks.mld_kenmerkmelding_waarde grtboekrek,
m.mld_melding_key mld_melding_key -- Correctiemelding-key
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
--(SELECT prs_link_key, prs_kenmerklink_waarde
-- FROM prs_kenmerklink
-- WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwnr, -- BTW-nummer (NL)
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 767) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 768 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 769) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, prs_kostenplaats kp -- TODO (of weg?): Was blcc_v_kostenplaats
WHERE km.mld_kenmerk_key = -1 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 770) ks -- Kostensoort
WHERE m.mld_stdmelding_key IN (1481, 1482) -- Fin. correctie CHV/CMD
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (861, 861) -- Factuurreferentie CHV/CMD
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
--AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND b.prs_bedrijf_key = btwvl.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key(+)
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
DECODE (m.mld_stdmelding_key, 1481, 'CHV', 'CMD') || TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Overnemen van te corrigeren factuur?
'05' sortering,
TRIM (ro.waarde) regel,
pf.prs_perslid_naam_full aanvrager,
'Correctie ' || vf.fin_verkoopfactuur_id regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
NULL refid, -- TODO: Nvt. op correctiefactuur?
NULL lv, -- TODO: Nvt. op correctiefactuur?
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
--NULL btw_nr,
NULL beschrijving,
NULL contactpersoon, -- TODO: Nvt. op correctiefactuur/Alleen RES?
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 (btwvl.prs_kenmerklink_waarde, '1', 'V', btw.code) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', btw.oms) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, TO_NUMBER (NULL)) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
NULL dagbegin,
NULL dageinde,
TO_NUMBER (NULL) mndbes,
TO_NUMBER (NULL) mndbez,
TO_NUMBER (NULL) aantal, -- VVO
TO_NUMBER (NULL) tarief, -- Jaartarief per m2
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagperc.
TO_NUMBER (NULL) verv_toeslag, -- Vervangend toeslagperc.
TO_NUMBER (NULL) korting_pm2, -- Korting per m2 Huur
NULL alg_onroerendgoed_type,
TO_NUMBER (NULL) alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc)), 2) mndbtw, -- BTW correctiebedrag
ks.mld_kenmerkmelding_waarde grtboekrek,
m.mld_melding_key mld_melding_key -- Correctiemelding-key
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
--(SELECT prs_link_key, prs_kenmerklink_waarde
-- FROM prs_kenmerklink
-- WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwnr, -- BTW-nummer (NL)
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 772) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 773 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 774) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, prs_kostenplaats kp -- TODO (of weg?): Was blcc_v_kostenplaats
WHERE km.mld_kenmerk_key = -1 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 775) ks -- Kostensoort
WHERE m.mld_stdmelding_key IN (1481, 1482) -- Fin. correctie CHV/CMD
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (861, 861) -- Factuurreferentie CHV/CMD
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
--AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND b.prs_bedrijf_key = btwvl.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key(+)
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key;
CREATE OR REPLACE VIEW bssc_v_addd_losverkoop
AS
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
DECODE (m.mld_stdmelding_key, 1641, 'CHV', 'CMD') || TRIM (COALESCE (po.waarde, '-')) po_nr,
'01' sortering,
TRIM (ro.waarde) regel,
pf.prs_perslid_naam_full aanvrager,
'Inc.Verk. ' || TO_CHAR (m.mld_melding_key) regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'melding' xmlnode,
m.mld_melding_key refkey,
NULL refid, -- TODO: Nvt. op losverkoopfactuur?
NULL lv, -- TODO: Nvt. op losverkoopfactuur?
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam,
DECODE (m.mld_stdmelding_key, 1641, TRIM (chvnr.prs_kenmerklink_waarde), TRIM (cmdnr.prs_kenmerklink_waarde)) debiteur_nr,
--NULL btw_nr,
NULL beschrijving,
TRIM (cp.prs_contactpersoon_aanhef || ' ' || TRIM (cp.prs_contactpersoon_voorletters || ' ' || TRIM (cp.prs_contactpersoon_tussenv || ' ' || cp.prs_contactpersoon_naam))) 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 (btwvl.prs_kenmerklink_waarde, '1', 'V', btw.code) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', btw.oms) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, TO_NUMBER (NULL)) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
NULL dagbegin,
NULL dageinde,
TO_NUMBER (NULL) mndbes,
TO_NUMBER (NULL) mndbez,
TO_NUMBER (NULL) aantal, -- VVO
TO_NUMBER (NULL) tarief, -- Jaartarief per m2
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagperc.
TO_NUMBER (NULL) verv_toeslag, -- Vervangend toeslagperc.
TO_NUMBER (NULL) korting_pm2, -- Korting per m2 Huur
NULL alg_onroerendgoed_type,
TO_NUMBER (NULL) alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc)), 2) mndbtw, -- BTW correctiebedrag
ks.mld_kenmerkmelding_waarde grtboekrek,
m.mld_melding_key mld_melding_key -- Losverkoopmelding-key
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
(SELECT km.mld_melding_key, fac.safe_to_number (km.mld_kenmerkmelding_waarde) debiteur_id
FROM mld_v_aanwezigkenmerkmelding km
WHERE km.mld_kenmerk_key IN (881, 882)) deb, -- Debiteur CHV/CMD
prs_contactpersoon cp,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
--(SELECT prs_link_key, prs_kenmerklink_waarde
-- FROM prs_kenmerklink
-- WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwnr, -- BTW-nummer (NL)
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = -1) po, -- PO
--(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie
-- FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
-- WHERE mld_kenmerk_key = -1 -- Contractreferentie
-- AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 902) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 903 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 904) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, prs_kostenplaats kp -- TODO (of weg?): Was blcc_v_kostenplaats
WHERE km.mld_kenmerk_key = -1 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 905) ks -- Kostensoort
WHERE m.mld_stdmelding_key IN (1641, 1642) -- Losse verkoop CHV/CMD
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = deb.mld_melding_key
AND MOD (deb.debiteur_id, 100000000) = cp.prs_contactpersoon_key
AND COALESCE (cp.prs_bedrijf_key, MOD (deb.debiteur_id, 100000000)) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
--AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND b.prs_bedrijf_key = btwvl.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
--AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key(+)
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
DECODE (m.mld_stdmelding_key, 1641, 'CHV', 'CMD') || TRIM (COALESCE (po.waarde, '-')) po_nr,
'02' sortering,
TRIM (ro.waarde) regel,
pf.prs_perslid_naam_full aanvrager,
'Inc.Verk. ' || TO_CHAR (m.mld_melding_key) regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'melding' xmlnode,
m.mld_melding_key refkey,
NULL refid, -- TODO: Nvt. op losverkoopfactuur?
NULL lv, -- TODO: Nvt. op losverkoopfactuur?
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam,
DECODE (m.mld_stdmelding_key, 1641, TRIM (chvnr.prs_kenmerklink_waarde), TRIM (cmdnr.prs_kenmerklink_waarde)) debiteur_nr,
--NULL btw_nr,
NULL beschrijving,
TRIM (cp.prs_contactpersoon_aanhef || ' ' || TRIM (cp.prs_contactpersoon_voorletters || ' ' || TRIM (cp.prs_contactpersoon_tussenv || ' ' || cp.prs_contactpersoon_naam))) 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 (btwvl.prs_kenmerklink_waarde, '1', 'V', btw.code) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', btw.oms) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, TO_NUMBER (NULL)) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
NULL dagbegin,
NULL dageinde,
TO_NUMBER (NULL) mndbes,
TO_NUMBER (NULL) mndbez,
TO_NUMBER (NULL) aantal, -- VVO
TO_NUMBER (NULL) tarief, -- Jaartarief per m2
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagperc.
TO_NUMBER (NULL) verv_toeslag, -- Vervangend toeslagperc.
TO_NUMBER (NULL) korting_pm2, -- Korting per m2 Huur
NULL alg_onroerendgoed_type,
TO_NUMBER (NULL) alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc)), 2) mndbtw, -- BTW correctiebedrag
ks.mld_kenmerkmelding_waarde grtboekrek,
m.mld_melding_key mld_melding_key -- Losverkoopmelding-key
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
(SELECT km.mld_melding_key, fac.safe_to_number (km.mld_kenmerkmelding_waarde) debiteur_id
FROM mld_v_aanwezigkenmerkmelding km
WHERE km.mld_kenmerk_key IN (881, 882)) deb, -- Debiteur CHV/CMD
prs_contactpersoon cp,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
--(SELECT prs_link_key, prs_kenmerklink_waarde
-- FROM prs_kenmerklink
-- WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwnr, -- BTW-nummer (NL)
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = -1) po, -- PO
--(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie
-- FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
-- WHERE mld_kenmerk_key = -1 -- Contractreferentie
-- AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 907) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 908 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 909) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, prs_kostenplaats kp -- TODO (of weg?): Was blcc_v_kostenplaats
WHERE km.mld_kenmerk_key = -1 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 910) ks -- Kostensoort
WHERE m.mld_stdmelding_key IN (1641, 1642) -- Losse verkoop CHV/CMD
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = deb.mld_melding_key
AND MOD (deb.debiteur_id, 100000000) = cp.prs_contactpersoon_key
AND COALESCE (cp.prs_bedrijf_key, MOD (deb.debiteur_id, 100000000)) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
--AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND b.prs_bedrijf_key = btwvl.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
--AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key(+)
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
DECODE (m.mld_stdmelding_key, 1641, 'CHV', 'CMD') || TRIM (COALESCE (po.waarde, '-')) po_nr,
'03' sortering,
TRIM (ro.waarde) regel,
pf.prs_perslid_naam_full aanvrager,
'Inc.Verk. ' || TO_CHAR (m.mld_melding_key) regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'melding' xmlnode,
m.mld_melding_key refkey,
NULL refid, -- TODO: Nvt. op losverkoopfactuur?
NULL lv, -- TODO: Nvt. op losverkoopfactuur?
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam,
DECODE (m.mld_stdmelding_key, 1641, TRIM (chvnr.prs_kenmerklink_waarde), TRIM (cmdnr.prs_kenmerklink_waarde)) debiteur_nr,
--NULL btw_nr,
NULL beschrijving,
TRIM (cp.prs_contactpersoon_aanhef || ' ' || TRIM (cp.prs_contactpersoon_voorletters || ' ' || TRIM (cp.prs_contactpersoon_tussenv || ' ' || cp.prs_contactpersoon_naam))) 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 (btwvl.prs_kenmerklink_waarde, '1', 'V', btw.code) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', btw.oms) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, TO_NUMBER (NULL)) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
NULL dagbegin,
NULL dageinde,
TO_NUMBER (NULL) mndbes,
TO_NUMBER (NULL) mndbez,
TO_NUMBER (NULL) aantal, -- VVO
TO_NUMBER (NULL) tarief, -- Jaartarief per m2
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagperc.
TO_NUMBER (NULL) verv_toeslag, -- Vervangend toeslagperc.
TO_NUMBER (NULL) korting_pm2, -- Korting per m2 Huur
NULL alg_onroerendgoed_type,
TO_NUMBER (NULL) alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc)), 2) mndbtw, -- BTW correctiebedrag
ks.mld_kenmerkmelding_waarde grtboekrek,
m.mld_melding_key mld_melding_key -- Losverkoopmelding-key
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
(SELECT km.mld_melding_key, fac.safe_to_number (km.mld_kenmerkmelding_waarde) debiteur_id
FROM mld_v_aanwezigkenmerkmelding km
WHERE km.mld_kenmerk_key IN (881, 882)) deb, -- Debiteur CHV/CMD
prs_contactpersoon cp,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
--(SELECT prs_link_key, prs_kenmerklink_waarde
-- FROM prs_kenmerklink
-- WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwnr, -- BTW-nummer (NL)
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = -1) po, -- PO
--(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie
-- FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
-- WHERE mld_kenmerk_key = -1 -- Contractreferentie
-- AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 912) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 913 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 914) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, prs_kostenplaats kp -- TODO (of weg?): Was blcc_v_kostenplaats
WHERE km.mld_kenmerk_key = -1 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 915) ks -- Kostensoort
WHERE m.mld_stdmelding_key IN (1641, 1642) -- Losse verkoop CHV/CMD
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = deb.mld_melding_key
AND MOD (deb.debiteur_id, 100000000) = cp.prs_contactpersoon_key
AND COALESCE (cp.prs_bedrijf_key, MOD (deb.debiteur_id, 100000000)) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
--AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND b.prs_bedrijf_key = btwvl.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
--AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key(+)
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
DECODE (m.mld_stdmelding_key, 1641, 'CHV', 'CMD') || TRIM (COALESCE (po.waarde, '-')) po_nr,
'04' sortering,
TRIM (ro.waarde) regel,
pf.prs_perslid_naam_full aanvrager,
'Inc.Verk. ' || TO_CHAR (m.mld_melding_key) regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'melding' xmlnode,
m.mld_melding_key refkey,
NULL refid, -- TODO: Nvt. op losverkoopfactuur?
NULL lv, -- TODO: Nvt. op losverkoopfactuur?
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam,
DECODE (m.mld_stdmelding_key, 1641, TRIM (chvnr.prs_kenmerklink_waarde), TRIM (cmdnr.prs_kenmerklink_waarde)) debiteur_nr,
--NULL btw_nr,
NULL beschrijving,
TRIM (cp.prs_contactpersoon_aanhef || ' ' || TRIM (cp.prs_contactpersoon_voorletters || ' ' || TRIM (cp.prs_contactpersoon_tussenv || ' ' || cp.prs_contactpersoon_naam))) 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 (btwvl.prs_kenmerklink_waarde, '1', 'V', btw.code) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', btw.oms) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, TO_NUMBER (NULL)) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
NULL dagbegin,
NULL dageinde,
TO_NUMBER (NULL) mndbes,
TO_NUMBER (NULL) mndbez,
TO_NUMBER (NULL) aantal, -- VVO
TO_NUMBER (NULL) tarief, -- Jaartarief per m2
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagperc.
TO_NUMBER (NULL) verv_toeslag, -- Vervangend toeslagperc.
TO_NUMBER (NULL) korting_pm2, -- Korting per m2 Huur
NULL alg_onroerendgoed_type,
TO_NUMBER (NULL) alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc)), 2) mndbtw, -- BTW correctiebedrag
ks.mld_kenmerkmelding_waarde grtboekrek,
m.mld_melding_key mld_melding_key -- Losverkoopmelding-key
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
(SELECT km.mld_melding_key, fac.safe_to_number (km.mld_kenmerkmelding_waarde) debiteur_id
FROM mld_v_aanwezigkenmerkmelding km
WHERE km.mld_kenmerk_key IN (881, 882)) deb, -- Debiteur CHV/CMD
prs_contactpersoon cp,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
--(SELECT prs_link_key, prs_kenmerklink_waarde
-- FROM prs_kenmerklink
-- WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwnr, -- BTW-nummer (NL)
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = -1) po, -- PO
--(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie
-- FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
-- WHERE mld_kenmerk_key = -1 -- Contractreferentie
-- AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 917) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 918 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 919) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, prs_kostenplaats kp -- TODO (of weg?): Was blcc_v_kostenplaats
WHERE km.mld_kenmerk_key = -1 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 920) ks -- Kostensoort
WHERE m.mld_stdmelding_key IN (1641, 1642) -- Losse verkoop CHV/CMD
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = deb.mld_melding_key
AND MOD (deb.debiteur_id, 100000000) = cp.prs_contactpersoon_key
AND COALESCE (cp.prs_bedrijf_key, MOD (deb.debiteur_id, 100000000)) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
--AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND b.prs_bedrijf_key = btwvl.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
--AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key(+)
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
DECODE (m.mld_stdmelding_key, 1641, 'CHV', 'CMD') || TRIM (COALESCE (po.waarde, '-')) po_nr,
'05' sortering,
TRIM (ro.waarde) regel,
pf.prs_perslid_naam_full aanvrager,
'Inc.Verk. ' || TO_CHAR (m.mld_melding_key) regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'melding' xmlnode,
m.mld_melding_key refkey,
NULL refid, -- TODO: Nvt. op losverkoopfactuur?
NULL lv, -- TODO: Nvt. op losverkoopfactuur?
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam,
DECODE (m.mld_stdmelding_key, 1641, TRIM (chvnr.prs_kenmerklink_waarde), TRIM (cmdnr.prs_kenmerklink_waarde)) debiteur_nr,
--NULL btw_nr,
NULL beschrijving,
TRIM (cp.prs_contactpersoon_aanhef || ' ' || TRIM (cp.prs_contactpersoon_voorletters || ' ' || TRIM (cp.prs_contactpersoon_tussenv || ' ' || cp.prs_contactpersoon_naam))) 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 (btwvl.prs_kenmerklink_waarde, '1', 'V', btw.code) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', btw.oms) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc) fin_btwtabelwaarde_perc,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, TO_NUMBER (NULL)) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
NULL dagbegin,
NULL dageinde,
TO_NUMBER (NULL) mndbes,
TO_NUMBER (NULL) mndbez,
TO_NUMBER (NULL) aantal, -- VVO
TO_NUMBER (NULL) tarief, -- Jaartarief per m2
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagperc.
TO_NUMBER (NULL) verv_toeslag, -- Vervangend toeslagperc.
TO_NUMBER (NULL) korting_pm2, -- Korting per m2 Huur
NULL alg_onroerendgoed_type,
TO_NUMBER (NULL) alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, btw.perc)), 2) mndbtw, -- BTW correctiebedrag
ks.mld_kenmerkmelding_waarde grtboekrek,
m.mld_melding_key mld_melding_key -- Losverkoopmelding-key
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
(SELECT km.mld_melding_key, fac.safe_to_number (km.mld_kenmerkmelding_waarde) debiteur_id
FROM mld_v_aanwezigkenmerkmelding km
WHERE km.mld_kenmerk_key IN (881, 882)) deb, -- Debiteur CHV/CMD
prs_contactpersoon cp,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
--(SELECT prs_link_key, prs_kenmerklink_waarde
-- FROM prs_kenmerklink
-- WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwnr, -- BTW-nummer (NL)
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = -1) po, -- PO
--(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie
-- FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
-- WHERE mld_kenmerk_key = -1 -- Contractreferentie
-- AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 922) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 923 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 924) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, prs_kostenplaats kp -- TODO (of weg?): Was blcc_v_kostenplaats
WHERE km.mld_kenmerk_key = -1 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 925) ks -- Kostensoort
WHERE m.mld_stdmelding_key IN (1641, 1642) -- Losse verkoop CHV/CMD
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status = 5 -- Afgemeld
AND m.mld_melding_key = deb.mld_melding_key
AND MOD (deb.debiteur_id, 100000000) = cp.prs_contactpersoon_key
AND COALESCE (cp.prs_bedrijf_key, MOD (deb.debiteur_id, 100000000)) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
--AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND b.prs_bedrijf_key = btwvl.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
--AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key(+)
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key;
CREATE OR REPLACE VIEW bssc_v_addd_actual
AS
WITH lopendeperiode AS (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyymm') maand FROM dual)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CMD' || TRIM (COALESCE (x.en, '-')) po_nr,
TO_CHAR (x.reslev, 'yyyymmdd') || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_key), -7) || TO_CHAR (volgnr) sortering, -- TODO
DECODE (x.res_activiteit_key, 30, 'Vergadering ', 50, 'Event ', 'Roomservice ') || x.res_id regel,
x.prs_perslid_naam_full aanvrager,
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.res_id refid,
NULL lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (cmdnr.prs_kenmerklink_waarde) debiteur_nr,
NULL beschrijving,
x.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,
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', 9, 21)) fin_btwtabelwaarde_perc,
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,
NULL dagbegin,
NULL dageinde,
TO_NUMBER (NULL) mndbes,
TO_NUMBER (NULL) mndbez,
TO_NUMBER (NULL) aantal, -- VVO
TO_NUMBER (NULL) tarief, -- Jaartarief per m2
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagperc.
TO_NUMBER (NULL) verv_toeslag, -- Vervangend toeslagperc.
TO_NUMBER (NULL) korting_pm2, -- Korting per m2 Huur
NULL alg_onroerendgoed_type,
TO_NUMBER (NULL) alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
SUM (COALESCE (verw_prijs, prijs, 0)) mndnet, -- Netto bedrag
SUM (ROUND (DECODE (x.btw_vl, '1', 0, DECODE (x.btw, 'VL', 0.09, 0.21)) * COALESCE (verw_prijs, prijs, 0), 2)) mndbtw, -- BTW bedrag
x.prs_kostensoort_refcode grtboekrek,
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,
h.prs_bedrijf_key,
TRIM (h.prs_bedrijf_naam) prs_bedrijf_naam,
TRIM (cp.prs_contactpersoon_aanhef || ' ' || TRIM (cp.prs_contactpersoon_voorletters || ' ' || TRIM (cp.prs_contactpersoon_tussenv || ' ' || cp.prs_contactpersoon_naam))) contactpersoon,
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%
enk.res_kenmerkreservering_waarde en,
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,
btwvl.prs_kenmerklink_waarde btw_vl,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
lp.maand,
rrr.res_activiteit_key
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,
(SELECT kw.res_rsv_ruimte_key, fac.safe_to_number (kw.res_kenmerkreservering_waarde) debiteur_id
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 261) rh, -- Debiteur
prs_contactpersoon cp,
prs_v_aanwezigbedrijf h,
(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 = 148) enk, -- Extern nummer
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
res_ruimte rr,
res_discipline rd,
prs_kostensoort ks
WHERE rrr.res_activiteit_key IN (30, 50) -- Vergadering/Events!
AND rrr.res_rsv_ruimte_van > TO_DATE ('20210101', 'yyyymmdd')
AND rrr.res_rsv_ruimte_van < TRUNC (SYSDATE + 1)
AND rrr.res_status_bo_key = 5 -- Afgemeld
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 rrr.res_rsv_ruimte_key = rh.res_rsv_ruimte_key(+)
AND MOD (rh.debiteur_id, 100000000) = cp.prs_contactpersoon_key(+)
AND COALESCE (cp.prs_bedrijf_key, MOD (rh.debiteur_id, 100000000)) = h.prs_bedrijf_key(+)
AND rrr.res_rsv_ruimte_key = enk.res_rsv_ruimte_key(+)
AND h.prs_bedrijf_key = btwvl.prs_link_key(+)
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_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(+)
UNION ALL -- Korting-regel
SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
h.prs_bedrijf_key,
TRIM (h.prs_bedrijf_naam) prs_bedrijf_naam,
TRIM (cp.prs_contactpersoon_aanhef || ' ' || TRIM (cp.prs_contactpersoon_voorletters || ' ' || TRIM (cp.prs_contactpersoon_tussenv || ' ' || cp.prs_contactpersoon_naam))) contactpersoon,
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%
enk.res_kenmerkreservering_waarde en,
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,
btwvl.prs_kenmerklink_waarde btw_vl,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
lp.maand,
rrr.res_activiteit_key
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,
(SELECT kw.res_rsv_ruimte_key, fac.safe_to_number (kw.res_kenmerkreservering_waarde) debiteur_id
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 261) rh, -- Debiteur
prs_contactpersoon cp,
prs_v_aanwezigbedrijf h,
(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 = 148) enk, -- Extern nummer
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
res_ruimte rr,
res_discipline rd,
prs_kostensoort ks
WHERE rrr.res_activiteit_key IN (30, 50) -- Vergadering+Events!
AND rrr.res_rsv_ruimte_van > TO_DATE ('20210101', 'yyyymmdd')
AND rrr.res_rsv_ruimte_van < TRUNC (SYSDATE + 1)
AND rrr.res_status_bo_key = 5 -- Afgemeld
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 rrr.res_rsv_ruimte_key = rh.res_rsv_ruimte_key(+)
AND MOD (rh.debiteur_id, 100000000) = cp.prs_contactpersoon_key(+)
AND COALESCE (cp.prs_bedrijf_key, MOD (rh.debiteur_id, 100000000)) = h.prs_bedrijf_key(+)
AND rrr.res_rsv_ruimte_key = enk.res_rsv_ruimte_key(+)
AND h.prs_bedrijf_key = btwvl.prs_link_key(+)
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_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(+)
UNION ALL -- Catering-regels
SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
h.prs_bedrijf_key,
TRIM (h.prs_bedrijf_naam) prs_bedrijf_naam,
TRIM (cp.prs_contactpersoon_aanhef || ' ' || TRIM (cp.prs_contactpersoon_voorletters || ' ' || TRIM (cp.prs_contactpersoon_tussenv || ' ' || cp.prs_contactpersoon_naam))) contactpersoon,
ks.prs_kostensoort_refcode,
ks.prs_kostensoort_altcode,
2 volgnr,
rra.res_rsv_artikel_aantal aantal,
LTRIM (rra.res_artikel_omschrijving) || ' [' || TO_CHAR (rra.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,
enk.res_kenmerkreservering_waarde en,
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,
btwvl.prs_kenmerklink_waarde btw_vl,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
lp.maand,
rrr.res_activiteit_key
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,
(SELECT kw.res_rsv_ruimte_key, fac.safe_to_number (kw.res_kenmerkreservering_waarde) debiteur_id
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 261) rh, -- Debiteur
prs_contactpersoon cp,
prs_v_aanwezigbedrijf h,
(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 = 148) enk, -- Extern nummer
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(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 ('20210101', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE + 1)
AND rra.res_status_bo_key = 5 -- Afgemeld
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key) rra,
res_discipline rd,
prs_kostensoort ks
WHERE rrr.res_activiteit_key IN (30, 50, 90) -- Vergadering/Events/Roomservice!
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 rrr.res_rsv_ruimte_key = rh.res_rsv_ruimte_key(+)
AND MOD (rh.debiteur_id, 100000000) = cp.prs_contactpersoon_key(+)
AND COALESCE (cp.prs_bedrijf_key, rh.debiteur_id) = h.prs_bedrijf_key(+)
AND rrr.res_rsv_ruimte_key = enk.res_rsv_ruimte_key(+)
AND h.prs_bedrijf_key = btwvl.prs_link_key(+)
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_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.prs_kostensoort_key = ks.prs_kostensoort_key(+)
UNION ALL -- Middelen-regels
SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
h.prs_bedrijf_key,
TRIM (h.prs_bedrijf_naam) prs_bedrijf_naam,
TRIM (cp.prs_contactpersoon_aanhef || ' ' || TRIM (cp.prs_contactpersoon_voorletters || ' ' || TRIM (cp.prs_contactpersoon_tussenv || ' ' || cp.prs_contactpersoon_naam))) contactpersoon,
ks.prs_kostensoort_refcode,
ks.prs_kostensoort_altcode,
3 volgnr,
rrd.res_rsv_deel_aantal aantal,
LTRIM (rrd.res_deel_omschrijving) || ' [' || TO_CHAR (rrd.res_rsv_deel_van, 'dd-mm-yyyy') || ']' res_voorziening,
rrd.res_rsv_deel_van reslev,
rrd.res_rsv_deel_prijs verw_prijs,
rrd.res_rsv_deel_aantal * rrd.res_deel_prijs prijs,
rrd.btw,
enk.res_kenmerkreservering_waarde en,
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,
btwvl.prs_kenmerklink_waarde btw_vl,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
lp.maand,
rrr.res_activiteit_key
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,
(SELECT kw.res_rsv_ruimte_key, fac.safe_to_number (kw.res_kenmerkreservering_waarde) debiteur_id
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 261) rh, -- Debiteur
prs_contactpersoon cp,
prs_v_aanwezigbedrijf h,
(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 = 148) enk, -- Extern nummer
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = -1) btwvl, -- BTW verlegd
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT rrd.res_rsv_ruimte_key,
rrd.res_rsv_deel_van,
rrd.res_rsv_deel_prijs,
rrd.res_rsv_deel_aantal,
rd.res_deel_prijs,
'VH' btw, -- TODO:Alles VH?
rd.res_discipline_key,
rd.res_deel_omschrijving,
rd.res_deel_eenheid
FROM res_v_aanwezigrsv_deel rrd, res_deel rd
WHERE rrd.res_rsv_deel_van > TO_DATE ('20210101', 'yyyymmdd')
AND rrd.res_rsv_deel_van < TRUNC (SYSDATE + 1)
AND rrd.res_status_bo_key = 5 -- Afgemeld
AND rrd.res_rsv_deel_dirtlevel = 0
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_discipline_key <> 1921) rrd, -- SSC Parkeren
res_discipline rd,
prs_kostensoort ks
WHERE 1 = 0 --TODO:rrr.res_activiteit_key IN (30, 50, 90) -- Vergadering/Events/Roomservice!
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 rrr.res_rsv_ruimte_key = rh.res_rsv_ruimte_key(+)
AND MOD (rh.debiteur_id, 100000000) = cp.prs_contactpersoon_key(+)
AND COALESCE (cp.prs_bedrijf_key, rh.debiteur_id) = h.prs_bedrijf_key(+)
AND rrr.res_rsv_ruimte_key = enk.res_rsv_ruimte_key(+)
AND h.prs_bedrijf_key = btwvl.prs_link_key(+)
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_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 = rrd.res_rsv_ruimte_key
AND rrd.res_discipline_key = rd.ins_discipline_key
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)) x,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr
WHERE x.prs_bedrijf_key = cmdnr.prs_link_key(+)
GROUP BY '*CONCEPT*',
'CMD' || TRIM (COALESCE (x.en, '-')),
TO_CHAR (x.reslev, 'yyyymmdd') || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_key), -7) || TO_CHAR (volgnr),
DECODE (x.res_activiteit_key, 30, 'Vergadering ', 50, 'Event ', 'Roomservice ') || x.res_id,
x.prs_perslid_naam_full,
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.res_id,
NULL,
x.prs_bedrijf_key, x.prs_bedrijf_naam, TRIM (cmdnr.prs_kenmerklink_waarde),
NULL,
x.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,
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', 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'),
NULL,
NULL,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
NULL,
TO_NUMBER (NULL),
NULL,
x.prs_kostensoort_refcode,
TO_NUMBER (NULL)
UNION ALL -- Correctiemeldingen
SELECT fin_verkoopfactuur_id, po_nr,
sortering, regel, aanvrager, regel_oms,
factuurdatum, vervaldatum,
xmlnode, refkey, refid, lv,
prs_bedrijf_key, prs_debiteur_naam, debiteur_nr, beschrijving, contactpersoon,
adres, postcode, plaats, land,
prs_kostenplaats_key, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaatsgrp_oms,
fin_btwtabelwaarde_code, fin_btwtabelwaarde_oms, fin_btwtabelwaarde_perc, fin_btwtabelwaarde_verlegd,
maand, mndbegin, mndeinde, dagbegin, dageinde, mndbes, mndbez,
aantal, tarief, vvo_toeslag, verv_toeslag, korting_pm2,
alg_onroerendgoed_type, alg_onroerendgoed_keys, alg_plaatsaanduiding,
mndnet, mndbtw,
grtboekrek,
mld_melding_key
FROM bssc_v_addd_correctie
UNION ALL -- Losverkoopmeldingen
SELECT fin_verkoopfactuur_id, po_nr,
sortering, regel, aanvrager, regel_oms,
factuurdatum, vervaldatum,
xmlnode, refkey, refid, lv,
prs_bedrijf_key, prs_debiteur_naam, debiteur_nr, beschrijving, contactpersoon,
adres, postcode, plaats, land,
prs_kostenplaats_key, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaatsgrp_oms,
fin_btwtabelwaarde_code, fin_btwtabelwaarde_oms, fin_btwtabelwaarde_perc, fin_btwtabelwaarde_verlegd,
maand, mndbegin, mndeinde, dagbegin, dageinde, mndbes, mndbez,
aantal, tarief, vvo_toeslag, verv_toeslag, korting_pm2,
alg_onroerendgoed_type, alg_onroerendgoed_keys, alg_plaatsaanduiding,
mndnet, mndbtw,
grtboekrek,
mld_melding_key
FROM bssc_v_addd_losverkoop
;
CREATE OR REPLACE VIEW bssc_v_addd_frozen
AS
SELECT vf.fin_verkoopfactuur_id,
SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1) po_nr,
--SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 2, 16) sortering,
DECODE (vf.fin_verkoopfactuur_xmlnode,
'reservering', SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 2, 16),
SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 2, 2))
sortering,
--SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 18) regel,
DECODE (vf.fin_verkoopfactuur_xmlnode,
'reservering', SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 18),
SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 4))
regel,
vf.fin_verkoopfactuur_c5 aanvrager,
vf.fin_verkoopfactuur_c6 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, -- !!!
DECODE (vf.fin_verkoopfactuur_xmlnode, 'reservering', TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr), NULL) refid, -- Niet historisch bewaard!
TO_DATE (NULL) lv,
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) beschrijving,
vf.fin_verkoopfactuur_c4 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.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,
NULL dagbegin,
NULL dageinde,
TO_NUMBER (NULL) mndbes,
TO_NUMBER (NULL) mndbez,
TO_NUMBER (NULL) aantal, -- VVO
TO_NUMBER (NULL) tarief, -- Jaartarief per m2
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagperc.
TO_NUMBER (NULL) verv_toeslag, -- Vervangend toeslagperc.
TO_NUMBER (NULL) korting_pm2, -- Korting per m2 Huur
NULL alg_onroerendgoed_type,
TO_NUMBER (NULL) alg_onroerendgoed_keys,
NULL alg_plaatsaanduiding,
vf.fin_verkoopfactuur_bedrag mndnet, -- Netto bedrag
vf.fin_verkoopfactuur_btw mndbtw, -- BTW bedrag
vf.prs_kostensoort_refcode grtboekrek,
vf.fin_verkoopfactuur_n1 mld_melding_key
FROM fin_verkoopfactuur vf, res_rsv_ruimte rrr, prs_bedrijf b
WHERE (vf.fin_verkoopfactuur_xmlnode = 'reservering' OR vf.fin_verkoopfactuur_n1 IS NOT NULL) -- R of M!
AND vf.fin_verkoopfactuur_refkey = rrr.res_rsv_ruimte_key(+) -- Alleen indien xmlnode=reservering!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key;
CREATE OR REPLACE PROCEDURE bssc_select_addd (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR c1a -- RES-kosten
IS
SELECT '[' || v.regel || '|' || v.prs_debiteur_naam || '] ' aanduiding,
v.*
FROM bssc_v_addd_actual v
WHERE v.xmlnode = 'reservering' -- TODO:VRIJGEGEVEN!!!
ORDER BY v.prs_bedrijf_key,
v.po_nr, -- Factuur per vrijgegeven event/po
v.sortering;
-- Factureer/bevries ADDD-correcties en verwerk=AV alle correctiemeldingen!
CURSOR c1c
IS
SELECT '[' || v.regel_oms || '|' || v.prs_debiteur_naam || '|' || REPLACE (REPLACE (REPLACE (v.regel, CHR (10), ''), CHR (13), ' '), '=', '~') || '] ' aanduiding,
v.*,
m.mld_melding_status
FROM bssc_v_addd_correctie v, mld_melding m -- TODO:VRIJGEGEVEN!!!
WHERE v.refkey = m.mld_melding_key -- Dagelijkse correctiefacturatie (na vrijgave)
ORDER BY v.prs_bedrijf_key,
v.regel_oms, -- Factuur per te corrigeren verkoopfactuur
v.mld_melding_key,
v.sortering;
-- Factureer/bevries ADDD-losverkopen en verwerk=AV alle losverkoopmeldingen!
CURSOR c1d
IS
SELECT '[' || v.regel_oms || '|' || v.prs_debiteur_naam || '|' || REPLACE (REPLACE (REPLACE (v.regel, CHR (10), ''), CHR (13), ' '), '=', '~') || '] ' aanduiding,
v.*,
m.mld_melding_status
FROM bssc_v_addd_losverkoop v, mld_melding m -- TODO:VRIJGEGEVEN!!!
WHERE v.refkey = m.mld_melding_key -- Dagelijkse losverkoopfacturatie (na vrijgave)
ORDER BY v.prs_bedrijf_key,
v.mld_melding_key, -- Factuur per losverkoopmelding
v.sortering;
-- Verstuur verkoopfactuur naar huurder.
CURSOR c2
IS
SELECT '[' || vf.fin_verkoopfactuur_id || '|' || vf.fin_verkoopfactuur_maand || '|' || vf.prs_debiteur_naam || '] ' aanduiding,
vf.fin_verkoopfactuur_xmlnode,
vf.fin_verkoopfactuur_id, vf.fin_verkoopfactuur_maand, vf.prs_debiteur_naam,
vfk.fin_verkoopfactuurkop_key, vfk.fin_verkoopfactuurkop_id,
b.prs_bedrijf_email,
MAX (fin_verkoopfactuur_n1) mld_melding_key
FROM fin_verkoopfactuur vf, fin_verkoopfactuurkop vfk, prs_bedrijf b
WHERE (vf.fin_verkoopfactuur_xmlnode = 'reservering' OR vf.fin_verkoopfactuur_n1 IS NOT NULL) -- Onderscheid ADDD vs. FACT!
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(/genotificeerd)!
GROUP BY '[' || vf.fin_verkoopfactuur_id || '|' || vf.fin_verkoopfactuur_maand || '|' || vf.prs_debiteur_naam || '] ',
vf.fin_verkoopfactuur_xmlnode,
vf.fin_verkoopfactuur_id, vf.fin_verkoopfactuur_maand, vf.prs_debiteur_naam,
vfk.fin_verkoopfactuurkop_key, vfk.fin_verkoopfactuurkop_id,
b.prs_bedrijf_email
ORDER BY vf.fin_verkoopfactuur_id;
-- Verwerk reserveringen (in juiste volgorde)! TODO:Kunnen objecten ook worden gefactureerd?
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 vf.fin_verkoopfactuur_xmlnode = 'reservering'
AND vf.fin_verkoopfactuur_maand = TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyymm')
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 vf.fin_verkoopfactuur_xmlnode = 'reservering'
AND vf.fin_verkoopfactuur_maand = TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyymm')
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_old_melding_oms VARCHAR2 (200); -- Factuur per te corrigeren verkoopfactuur!
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);
IF 1 = 1 -- Vrijgegeven is die nacht factureren!
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 c1a
LOOP
BEGIN
IF rec.mndnet != 0 AND (rec.prs_bedrijf_key != v_old_bedrijf_key OR rec.po_nr != v_old_po_nr)
THEN
IF rec.po_nr LIKE 'CHV%'
THEN
SELECT fac_s_user01.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '1' || SUBSTR ('000000' || TO_CHAR (v_count), -6);
ELSE
SELECT fac_s_user02.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '2' || SUBSTR ('000000' || TO_CHAR (v_count), -6);
END IF;
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.refid,
rec.po_nr || '/=' || rec.sortering || rec.regel,
rec.xmlnode,
rec.refkey,
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.mld_melding_key, -- n1/correctiemelding
TO_NUMBER (NULL), -- n2
TO_NUMBER (NULL), -- n3
TO_NUMBER (NULL), -- n4
TO_NUMBER (NULL), -- n5
NULL, -- c1
NULL, -- c2
NULL, -- c3
rec.contactpersoon, -- c4
rec.aanvrager, -- c5
rec.regel_oms, -- c6
rec.debiteur_nr || '=' || rec.beschrijving, -- c7
NULL, -- 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;
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[a]-freeze');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'ADDD[a]-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, 'finance.smartservices@brightlands.com',
'finance.smartservices@brightlands.com'), -- TODO:rec.prs_bedrijf_email || ';finance.smartservices@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),
'finance.smartservices@brightlands.com',
'/../../Fplace_A/CUST/BSSC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf'); -- TODO
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[a]-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[a]-AV');
COMMIT;
END;
END LOOP;
END IF;
-- LET OP: ADDD-export correctie- <20>n losverkoopfacturen (= boekingsgangen)
-- draait dagelijks na middernacht (begin van dag) en de verkoop wordt ook
-- elke nacht doorgezet (mits vrijgegeven!).
IF 1 = 1
THEN
v_fact_count := 0;
v_amount_sum := 0;
v_old_melding_oms := 'Quqelequ'; -- Factuur per te corrigeren verkoopfactuur!
-- Factureer/bevries ADDD-correctiekosten en verwerk=AV correctiemeldingen.
FOR rec IN c1c
LOOP
BEGIN
IF rec.mndnet != 0 AND rec.regel_oms != v_old_melding_oms
THEN
IF rec.po_nr LIKE 'CHV%'
THEN
SELECT fac_s_user01.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '1' || SUBSTR ('000000' || TO_CHAR (v_count), -6);
ELSE
SELECT fac_s_user02.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '2' || SUBSTR ('000000' || TO_CHAR (v_count), -6);
END IF;
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_melding_oms := rec.regel_oms;
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.refid,
rec.po_nr || '/=' || rec.sortering || rec.regel,
rec.xmlnode,
rec.refkey,
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.mld_melding_key, -- n1/correctiemelding
TO_NUMBER (NULL), -- n2
TO_NUMBER (NULL), -- n3
TO_NUMBER (NULL), -- n4
TO_NUMBER (NULL), -- n5
NULL, -- c1
NULL, -- c2
NULL, -- c3
rec.contactpersoon, -- c4
rec.aanvrager, -- c5
rec.regel_oms, -- c6
rec.debiteur_nr || '=' || rec.beschrijving, -- c7
NULL, -- 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;
-- BLCC#64642: Registreren 'Gefactureerd met' bij correctiemelding!
--v_errormsg := 'Fout bepalen Gefactureerd-kenmerkmelding';
--SELECT COUNT (*)
-- INTO v_count
-- FROM mld_v_aanwezigkenmerkmelding
-- WHERE mld_melding_key = rec.mld_melding_key
-- AND mld_kenmerk_key = c_cm_factid_kkey;
--IF v_count = 0
--THEN
-- v_errormsg := 'Fout toevoegen Gefactureerd-kenmerkmelding';
-- INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
-- VALUES (rec.mld_melding_key, c_cm_factid_kkey, v_factuur_id);
--ELSE
-- v_errormsg := 'Fout bijwerken Gefactureerd-kenmerkmelding';
-- UPDATE mld_kenmerkmelding
-- SET mld_kenmerkmelding_waarde = v_factuur_id
-- WHERE mld_melding_key = rec.mld_melding_key
-- AND mld_kenmerk_key = c_cm_factid_kkey;
--END IF;
v_errormsg := 'Fout verwerken correctiemelding';
-- Overgang van Geaccepteerd naar Verwerkt niet mogelijk, dus dan
-- 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;
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[c]-verkoop/#correctieregels: ' || TO_CHAR (v_fact_count), TO_CHAR (v_amount_sum));
v_fact_count := 0;
v_amount_sum := 0;
v_old_melding_oms := 'Quqelequ'; -- Factuur per te corrigeren verkoopfactuur!
-- Factureer/bevries ADDD-losverkoopkosten en verwerk=AV losverkoopmeldingen.
FOR rec IN c1d
LOOP
BEGIN
IF rec.mndnet != 0 AND rec.regel_oms != v_old_melding_oms
THEN
IF rec.po_nr LIKE 'CHV%'
THEN
SELECT fac_s_user01.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '1' || SUBSTR ('000000' || TO_CHAR (v_count), -6);
ELSE
SELECT fac_s_user02.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '2' || SUBSTR ('000000' || TO_CHAR (v_count), -6);
END IF;
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_melding_oms := rec.regel_oms;
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.refid,
rec.po_nr || '/=' || rec.sortering || rec.regel,
rec.xmlnode,
rec.refkey,
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.mld_melding_key, -- n1/correctiemelding
TO_NUMBER (NULL), -- n2
TO_NUMBER (NULL), -- n3
TO_NUMBER (NULL), -- n4
TO_NUMBER (NULL), -- n5
NULL, -- c1
NULL, -- c2
NULL, -- c3
rec.contactpersoon, -- c4
rec.aanvrager, -- c5
rec.regel_oms, -- c6
rec.debiteur_nr || '=' || rec.beschrijving, -- c7
NULL, -- 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;
-- BLCC#64642: Registreren 'Gefactureerd met' bij losverkoopmelding!
--v_errormsg := 'Fout bepalen Gefactureerd-kenmerkmelding';
--SELECT COUNT (*)
-- INTO v_count
-- FROM mld_v_aanwezigkenmerkmelding
-- WHERE mld_melding_key = rec.mld_melding_key
-- AND mld_kenmerk_key = c_lvm_factid_kkey;
--IF v_count = 0
--THEN
-- v_errormsg := 'Fout toevoegen Gefactureerd-kenmerkmelding';
-- INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
-- VALUES (rec.mld_melding_key, c_lvm_factid_kkey, v_factuur_id);
--ELSE
-- v_errormsg := 'Fout bijwerken Gefactureerd-kenmerkmelding';
-- UPDATE mld_kenmerkmelding
-- SET mld_kenmerkmelding_waarde = v_factuur_id
-- WHERE mld_melding_key = rec.mld_melding_key
-- AND mld_kenmerk_key = c_lvm_factid_kkey;
--END IF;
v_errormsg := 'Fout verwerken losverkoopmelding';
-- Overgang van Geaccepteerd naar Verwerkt niet mogelijk, dus dan
-- 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;
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[d]-verkoop/#losverkooopregels: ' || TO_CHAR (v_fact_count), TO_CHAR (v_amount_sum));
-- Verstuur correctie- of losverkoopfactuur naar huurder/relatie.
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, 'finance.smartservices@brightlands.com',
'finance.smartservices@brightlands.com'), -- TODO:rec.prs_bedrijf_email || ';finance.smartservices@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),
'finance.smartservices@brightlands.com',
'/../../Fplace_A/CUST/BSSC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf'); -- TODO
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[a]-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;
/
CREATE OR REPLACE VIEW bssc_v_rap_export_tf_chv
(
hide_f_sortering,
fclt_x_maand,
code,
currency,
tfdate,
period,
invoicenumber,
duedate,
tfnumber,
gl_account,
ap,
project,
amount,
debitcredit,
description,
vatcode,
goods_services,
landcode,
vatnumber,
preformancedate,
mldver,
sync_id
)
AS
SELECT ROWNUM,
REPLACE (periode, '/', '-') periode,
code,
valuta,
REPLACE (factuurdatum, '-', '/') factuurdatum,
periode,
factuurnummer,
REPLACE (vervaldatum, '-', '/') vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode,
NULL,
NULL,
NULL,
NULL,
fac.gettrackingdate ('MLDVER', mld_melding_key) mldver,
SUBSTR (factuurdatum, 7, 4) || SUBSTR (factuurdatum, 4, 2) || SUBSTR (factuurdatum, 1, 2) -- Sync_id = factuurdatum!
sync_id -- BLCC#62974: Unieke identificatie!
FROM ( -- *** ADDD ***
SELECT fin_verkoopfactuur_id || '0000' || debiteur_nr sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
factuurdatum,
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 bedrag, -- Totaalbedrag incl. BTW per factuur!
'debit' debitcredit,
TRIM (DECODE (aant, 1, tfoms, SUBSTR (tfoms, 1, INSTR (tfoms, '/')) || '...') || ' Total') omschrijving,
NULL btwcode, -- Hard op NULL
mld_melding_key
FROM ( SELECT v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum,
SUM (ROUND (DECODE (v.fin_btwtabelwaarde_code, 'H', 1.21, 'L', 1.09, 1) * v.netsum, 2)) netsum, -- Totaalbedrag incl. BTW per factuur!
COUNT (DISTINCT v.tfoms) aant, --SUM (v.aant) aant,
MIN (v.tfoms) tfoms,
MIN (v.mld_melding_key) mld_melding_key
FROM ( SELECT v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum, v.fin_btwtabelwaarde_code,
SUM (v.mndnet) netsum, -- Totaalbedrag excl. BTW gegroepeerd per factuur/BTW-tarief tbv. juiste afronding!
COUNT (DISTINCT v.tfoms) aant,
MIN (v.tfoms) tfoms,
MIN (v.mld_melding_key) mld_melding_key
FROM (SELECT fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum,
fin_btwtabelwaarde_code,
mndnet,
DECODE (mld_melding_key, NULL, regel_oms, regel) tfoms, -- Voor MLD=regel_oms en voor RES=regel!
mld_melding_key
FROM bssc_v_addd_frozen
WHERE SUBSTR (po_nr, 1, 3) = 'CHV'
--AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
UNION ALL -- Handling fee (=5,0% over totaal tegen 21%) toevoegen als regel!
SELECT fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum,
'H' fin_btwtabelwaarde_code,
ROUND (0.05 * mndnet, 2) mndnet,
tfoms,
NULL mld_melding_key
FROM ( SELECT fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum, regel tfoms, -- Voor RES=regel!
SUM (mndnet) mndnet
FROM bssc_v_addd_frozen
WHERE mld_melding_key IS NULL -- Administratiekosten alleen bij RES-facturatie!
AND SUBSTR (po_nr, 1, 3) = 'CHV'
--AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum, regel)) v
GROUP BY v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum, v.fin_btwtabelwaarde_code) v
GROUP BY v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum)
UNION ALL
SELECT v.fin_verkoopfactuur_id || v.debiteur_nr || DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek) sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
SUBSTR (v.factuurdatum, 7, 4) || '/' || SUBSTR (v.factuurdatum, 4, 2) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek) grtboekrek,
NULL rel_kpl, -- TODO:Bij BLCC afgeleid van kostenplaats?
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)???
SUBSTR (v.regel, 1, 40) omschrijving,
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '-1', 'VBUIEU_VERL', 'VBINEU_VERL'), 'VN') btwcode,
MIN (v.mld_melding_key) mld_melding_key
FROM bssc_v_addd_frozen v,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = -1) kl -- BTW verlegd "smaak"
WHERE SUBSTR (v.po_nr, 1, 3) = 'CHV'
AND v.prs_bedrijf_key = kl.prs_link_key(+)
--AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY v.fin_verkoopfactuur_id || v.debiteur_nr || DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), grtboekrek),
'VRK',
'EUR',
v.factuurdatum,
SUBSTR (v.factuurdatum, 7, 4) || '/' || SUBSTR (v.factuurdatum, 4, 2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek),
NULL,
NULL,
'credit',
SUBSTR (v.regel, 1, 40),
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '-1', 'VBUIEU_VERL', 'VBINEU_VERL'), 'VN')
UNION ALL
SELECT fin_verkoopfactuur_id || debiteur_nr || '????' sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
factuurdatum,
SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2) periode,
fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
vervaldatum,
'1' nummer, -- Hard op '1'
'????', -- Handling fee
NULL rel_kpl,
NULL prj_activa, -- Hard op NULL
ROUND (0.05 * netsum, 2) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
'credit' debitcredit, -- TODO:Altijd 'credit' (ook negatieve bedragen)???
SUBSTR (DECODE (aant, 1, regel, SUBSTR (regel, 1, INSTR (regel, '/')) || '...') || ' Administratiekosten', 1, 40) omschrijving,
'VH' btwcode,
NULL mld_melding_key
FROM ( SELECT fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum,
SUM (mndnet) netsum,
COUNT (DISTINCT regel) aant,
MIN (regel) regel
FROM bssc_v_addd_frozen
WHERE mld_melding_key IS NULL -- Administratiekosten alleen bij RES-facturatie!
AND SUBSTR (po_nr, 1, 3) = 'CHV'
--AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum)
UNION ALL -- *** FACT ***
SELECT v.fin_verkoopfactuur_id || '0000' sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
--DECODE (TO_CHAR (SYSDATE, 'mm'), '12', TO_CHAR (SYSDATE, 'yyyy') || '/12', SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2))
-- periode, -- Op correctiefacturen maand volgens v.factuurdatum, anders volgens v.maand behalve in december!
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 (ROUND (v.mndnet * v.btw, 2)) bedrag, -- Totaalbedrag incl. BTW gegroepeerd over andere kolommen!
'debit' debitcredit,
'C' || v.refid || ' Total' omschrijving,
NULL btwcode, -- Hard op NULL
NULL mld_melding_key
FROM ( SELECT fin_verkoopfactuur_id,
refid, -- Altijd 1 contract per factuur!
factuurdatum,
maand,
vervaldatum,
debiteur_nr,
DECODE (fin_btwtabelwaarde_code, 'H', 1.21, 'L', 1.09, 1) btw,
SUM (mndnet) mndnet -- Totaalbedrag per grtboekrek/fin_btwtabelwaarde_code
FROM bssc_v_fact_frozen
WHERE SUBSTR (po_nr, 1, 3) = 'CHV'
AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id,
refid,
factuurdatum,
maand,
vervaldatum,
debiteur_nr,
DECODE (fin_btwtabelwaarde_code, 'H', 1.21, 'L', 1.09, 1)) v
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',
'C' || v.refid || ' Total',
NULL,
NULL
UNION ALL
SELECT v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???') sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
--DECODE (TO_CHAR (SYSDATE, 'mm'), '12', TO_CHAR (SYSDATE, 'yyyy') || '/12', SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2))
-- periode, -- Op correctiefacturen maand volgens v.factuurdatum, anders volgens v.maand behalve in december!
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,
v.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)???
SUBSTR ('C' || v.refid || ' ' || v.regel, 1, 40) omschrijving,
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '-1', 'VBUIEU_VERL', 'VBINEU_VERL'), 'VN'),
NULL mld_melding_key
FROM bssc_v_fact_frozen v,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = -1) kl -- BTW verlegd "smaak"
WHERE SUBSTR (po_nr, 1, 3) = 'CHV'
AND v.prs_bedrijf_key = kl.prs_link_key(+)
AND v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
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,
v.prs_kostenplaats_nr,
NULL,
'credit',
SUBSTR ('C' || v.refid || ' ' || v.regel, 1, 40),
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '-1', 'VBUIEU_VERL', 'VBINEU_VERL'), 'VN'),
NULL
ORDER BY 1);
-- Code;Currency;Date;Period;Invoicenumber;Duedate;Number;GL-account;AP;Project;Amount;Debitcredit;Description;Vatcode;Goods/services;Landcode;Vatnumber;Preformancedate
CREATE OR REPLACE VIEW bssc_v_export_tf_chv
(
result,
result_order
)
AS -- View bevat alleen inhoud op bepaalde dagen (1e werkdag) of als er vandaag correcties/losverkopen zijn vrijgegeven!
SELECT 'Code'
|| ';Currency'
|| ';Date'
|| ';Period'
|| ';Invoicenumber'
|| ';Duedate'
|| ';Number'
|| ';GL-account'
|| ';AP'
|| ';Project'
|| ';Amount'
|| ';Debitcredit'
|| ';Description'
|| ';Vatcode'
|| ';Goods/services' -- Niet bij BLCC
|| ';Landcode' -- Niet bij BLCC
|| ';Vatnumber' -- Niet bij BLCC
|| ';Preformancedate', -- Niet bij BLCC
0
FROM DUAL
WHERE EXISTS (SELECT 1
FROM bssc_v_rap_export_tf_chv
WHERE sync_id = TO_CHAR (SYSDATE, 'yyyymmdd'))
UNION ALL
SELECT code
|| ';'
|| currency
|| ';'
|| tfdate
|| ';'
|| period
|| ';'
|| invoicenumber
|| ';'
|| duedate
|| ';'
|| tfnumber
|| ';'
|| gl_account
|| ';'
|| ap
|| ';'
|| project
|| ';'
|| amount
|| ';'
|| debitcredit
|| ';'
|| description
|| ';'
|| vatcode
|| ';;;;',
ROWNUM
FROM bssc_v_rap_export_tf_chv
WHERE sync_id = TO_CHAR (SYSDATE, 'yyyymmdd')
ORDER BY 2;
-- Code;Currency;Date;Period;Invoicenumber;Duedate;Number;GL-account;AP;Project;Amount;Debitcredit;Description;Vatcode;Goods/services;Landcode;Vatnumber;Preformancedate
CREATE OR REPLACE VIEW bssc_v_rap_export_tf_cmd
(
hide_f_sortering,
fclt_x_maand,
code,
currency,
tfdate,
period,
invoicenumber,
duedate,
tfnumber,
gl_account,
ap,
project,
amount,
debitcredit,
description,
vatcode,
goods_services,
landcode,
vatnumber,
preformancedate,
mldver,
sync_id
)
AS
SELECT ROWNUM,
REPLACE (periode, '/', '-') periode,
code,
valuta,
REPLACE (factuurdatum, '-', '/') factuurdatum,
periode,
factuurnummer,
REPLACE (vervaldatum, '-', '/') vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode,
NULL,
NULL,
NULL,
NULL,
fac.gettrackingdate ('MLDVER', mld_melding_key) mldver,
SUBSTR (factuurdatum, 7, 4) || SUBSTR (factuurdatum, 4, 2) || SUBSTR (factuurdatum, 1, 2) -- Sync_id = factuurdatum!
sync_id -- BLCC#62974: Unieke identificatie!
FROM ( -- *** ADDD ***
SELECT fin_verkoopfactuur_id || '0000' || debiteur_nr sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
factuurdatum,
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 bedrag, -- Totaalbedrag incl. BTW per factuur!
'debit' debitcredit,
TRIM (DECODE (aant, 1, tfoms, SUBSTR (tfoms, 1, INSTR (tfoms, '/')) || '...') || ' Total') omschrijving,
NULL btwcode, -- Hard op NULL
mld_melding_key
FROM ( SELECT v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum,
SUM (ROUND (DECODE (v.fin_btwtabelwaarde_code, 'H', 1.21, 'L', 1.09, 1) * v.netsum, 2)) netsum, -- Totaalbedrag incl. BTW per factuur!
COUNT (DISTINCT v.tfoms) aant, --SUM (v.aant) aant,
MIN (v.tfoms) tfoms,
MIN (v.mld_melding_key) mld_melding_key
FROM ( SELECT v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum, v.fin_btwtabelwaarde_code,
SUM (v.mndnet) netsum, -- Totaalbedrag excl. BTW gegroepeerd per factuur/BTW-tarief tbv. juiste afronding!
COUNT (DISTINCT v.tfoms) aant,
MIN (v.tfoms) tfoms,
MIN (v.mld_melding_key) mld_melding_key
FROM (SELECT fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum,
fin_btwtabelwaarde_code,
mndnet,
DECODE (mld_melding_key, NULL, regel_oms, regel) tfoms, -- Voor MLD=regel_oms en voor RES=regel!
mld_melding_key
FROM bssc_v_addd_frozen
WHERE SUBSTR (po_nr, 1, 3) = 'CMD'
--AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
UNION ALL -- Handling fee (=5,0% over totaal tegen 21%) toevoegen als regel!
SELECT fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum,
'H' fin_btwtabelwaarde_code,
ROUND (0.05 * mndnet, 2) mndnet,
tfoms,
NULL mld_melding_key
FROM ( SELECT fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum, regel tfoms, -- Voor RES=regel!
SUM (mndnet) mndnet
FROM bssc_v_addd_frozen
WHERE mld_melding_key IS NULL -- Administratiekosten alleen bij RES-facturatie!
AND SUBSTR (po_nr, 1, 3) = 'CMD'
--AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum, regel)) v
GROUP BY v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum, v.fin_btwtabelwaarde_code) v
GROUP BY v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum)
UNION ALL
SELECT v.fin_verkoopfactuur_id || v.debiteur_nr || DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek) sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
SUBSTR (v.factuurdatum, 7, 4) || '/' || SUBSTR (v.factuurdatum, 4, 2) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek) grtboekrek,
NULL rel_kpl, -- TODO:Bij BLCC afgeleid van kostenplaats?
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)???
SUBSTR (v.regel, 1, 40) omschrijving,
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '-1', 'VBUIEU_VERL', 'VBINEU_VERL'), 'VN') btwcode,
MIN (v.mld_melding_key) mld_melding_key
FROM bssc_v_addd_frozen v,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = -1) kl -- BTW verlegd "smaak"
WHERE SUBSTR (v.po_nr, 1, 3) = 'CMD'
AND v.prs_bedrijf_key = kl.prs_link_key(+)
--AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY v.fin_verkoopfactuur_id || v.debiteur_nr || DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), grtboekrek),
'VRK',
'EUR',
v.factuurdatum,
SUBSTR (v.factuurdatum, 7, 4) || '/' || SUBSTR (v.factuurdatum, 4, 2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek),
NULL,
NULL,
'credit',
SUBSTR (v.regel, 1, 40),
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '-1', 'VBUIEU_VERL', 'VBINEU_VERL'), 'VN')
UNION ALL
SELECT fin_verkoopfactuur_id || debiteur_nr || '????' sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
factuurdatum,
SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2) periode,
fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
vervaldatum,
'1' nummer, -- Hard op '1'
'????', -- Handling fee
NULL rel_kpl,
NULL prj_activa, -- Hard op NULL
ROUND (0.05 * netsum, 2) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
'credit' debitcredit, -- TODO:Altijd 'credit' (ook negatieve bedragen)???
SUBSTR (DECODE (aant, 1, regel, SUBSTR (regel, 1, INSTR (regel, '/')) || '...') || ' Administratiekosten', 1, 40) omschrijving,
'VH' btwcode,
NULL mld_melding_key
FROM ( SELECT fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum,
SUM (mndnet) netsum,
COUNT (DISTINCT regel) aant,
MIN (regel) regel
FROM bssc_v_addd_frozen
WHERE mld_melding_key IS NULL -- Administratiekosten alleen bij RES-facturatie!
AND SUBSTR (po_nr, 1, 3) = 'CMD'
--AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum)
UNION ALL -- *** FACT ***
SELECT v.fin_verkoopfactuur_id || '0000' sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
--DECODE (TO_CHAR (SYSDATE, 'mm'), '12', TO_CHAR (SYSDATE, 'yyyy') || '/12', SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2))
-- periode, -- Op correctiefacturen maand volgens v.factuurdatum, anders volgens v.maand behalve in december!
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 (ROUND (v.mndnet * v.btw, 2)) bedrag, -- Totaalbedrag incl. BTW gegroepeerd over andere kolommen!
'debit' debitcredit,
'C' || v.refid || ' Total' omschrijving,
NULL btwcode, -- Hard op NULL
NULL mld_melding_key
FROM ( SELECT fin_verkoopfactuur_id,
refid, -- Altijd 1 contract per factuur!
factuurdatum,
maand,
vervaldatum,
debiteur_nr,
DECODE (fin_btwtabelwaarde_code, 'H', 1.21, 'L', 1.09, 1) btw,
SUM (mndnet) mndnet -- Totaalbedrag per grtboekrek/fin_btwtabelwaarde_code
FROM bssc_v_fact_frozen
WHERE SUBSTR (po_nr, 1, 3) = 'CMD'
AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id,
refid,
factuurdatum,
maand,
vervaldatum,
debiteur_nr,
DECODE (fin_btwtabelwaarde_code, 'H', 1.21, 'L', 1.09, 1)) v
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',
'C' || v.refid || ' Total',
NULL,
NULL
UNION ALL
SELECT v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???') sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
--DECODE (TO_CHAR (SYSDATE, 'mm'), '12', TO_CHAR (SYSDATE, 'yyyy') || '/12', SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2))
-- periode, -- Op correctiefacturen maand volgens v.factuurdatum, anders volgens v.maand behalve in december!
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,
v.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)???
SUBSTR ('C' || v.refid || ' ' || v.regel, 1, 40) omschrijving,
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '-1', 'VBUIEU_VERL', 'VBINEU_VERL'), 'VN'),
NULL mld_melding_key
FROM bssc_v_fact_frozen v,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = -1) kl -- BTW verlegd "smaak"
WHERE SUBSTR (po_nr, 1, 3) = 'CMD'
AND v.prs_bedrijf_key = kl.prs_link_key(+)
AND v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
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,
v.prs_kostenplaats_nr,
NULL,
'credit',
SUBSTR ('C' || v.refid || ' ' || v.regel, 1, 40),
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '-1', 'VBUIEU_VERL', 'VBINEU_VERL'), 'VN'),
NULL
ORDER BY 1);
-- Code;Currency;Date;Period;Invoicenumber;Duedate;Number;GL-account;AP;Project;Amount;Debitcredit;Description;Vatcode;Goods/services;Landcode;Vatnumber;Preformancedate
CREATE OR REPLACE VIEW bssc_v_export_tf_cmd
(
result,
result_order
)
AS -- View bevat alleen inhoud op bepaalde dagen (1e werkdag) of als er vandaag correcties/losverkopen zijn vrijgegeven!
SELECT 'Code'
|| ';Currency'
|| ';Date'
|| ';Period'
|| ';Invoicenumber'
|| ';Duedate'
|| ';Number'
|| ';GL-account'
|| ';AP'
|| ';Project'
|| ';Amount'
|| ';Debitcredit'
|| ';Description'
|| ';Vatcode'
|| ';Goods/services' -- Niet bij BLCC
|| ';Landcode' -- Niet bij BLCC
|| ';Vatnumber' -- Niet bij BLCC
|| ';Preformancedate', -- Niet bij BLCC
0
FROM DUAL
WHERE EXISTS (SELECT 1
FROM bssc_v_rap_export_tf_cmd
WHERE sync_id = TO_CHAR (SYSDATE, 'yyyymmdd'))
UNION ALL
SELECT code
|| ';'
|| currency
|| ';'
|| tfdate
|| ';'
|| period
|| ';'
|| invoicenumber
|| ';'
|| duedate
|| ';'
|| tfnumber
|| ';'
|| gl_account
|| ';'
|| ap
|| ';'
|| project
|| ';'
|| amount
|| ';'
|| debitcredit
|| ';'
|| description
|| ';'
|| vatcode
|| ';;;;',
ROWNUM
FROM bssc_v_rap_export_tf_cmd
WHERE sync_id = TO_CHAR (SYSDATE, 'yyyymmdd')
ORDER BY 2;
-- code;naam;standaardadres;adrestype;tav;addressline1;addressline2;postcode;plaats;land;telefoon;fax;btwnummer;KvKnummer;emailadres;standaardbank;bankID;begunstigde;rekeningnummer;IBAN;Banknaam;BICcode;NationalebankID;postcodebank;bankplaats;BankAdresStaat;bankland;betaalwijze;betaaladres;bankadres;bankadresnummer;vervaldagen;betalen;betaalcode;leveranciersnummer;betaalmiddelen
CREATE OR REPLACE VIEW bssc_v_rap_export_tf_rel_chv
(
code,
naam,
standaardadres,
adrestype,
tav,
addressline1,
addressline2,
postcode,
plaats,
land,
telefoon,
fax,
btwnummer,
kvknummer,
emailadres,
standaardbank,
bankid,
begunstigde,
rekeningnummer,
iban,
banknaam,
biccode,
nationalebankid,
postcodebank,
bankplaats,
bankadresstaat,
bankland,
betaalwijze,
betaaladres,
bankadres,
bankadresnummer,
vervaldagen,
betalen,
betaalcode,
leveranciersnummer,
betaalmiddelen
)
AS
SELECT chvnr.prs_kenmerklink_waarde code,
b.prs_bedrijf_naam naam,
NULL standaardadres,
NULL adrestype,
NULL tav,
b.prs_bedrijf_bezoek_adres addressline1,
NULL addressline2,
b.prs_bedrijf_bezoek_postcode postcode,
b.prs_bedrijf_bezoek_plaats plaats,
b.prs_bedrijf_bezoek_land land,
b.prs_bedrijf_telefoon telefoon,
b.prs_bedrijf_fax fax,
btwnr.prs_kenmerklink_waarde btwnummer,
kvknr.prs_kenmerklink_waarde kvknummer,
b.prs_bedrijf_email emailadres,
NULL standaardbank,
NULL bankid,
NULL begunstigde,
NULL rekeningnummer,
NULL iban,
NULL banknaam,
NULL biccode,
NULL nationalebankid,
NULL postcodebank,
NULL bankplaats,
NULL bankadresstaat,
NULL bankland,
NULL betaalwijze,
NULL betaaladres,
NULL bankadres,
NULL bankadresnummer,
NULL vervaldagen,
NULL betalen,
NULL betaalcode,
b.prs_leverancier_nr leveranciersnummer,
NULL betaalmiddelen
FROM prs_v_aanwezigbedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1120) btwnr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1121) kvknr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr
WHERE b.prs_bedrijf_intern IS NULL
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND b.prs_bedrijf_key = kvknr.prs_link_key(+)
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND COALESCE (chvnr.prs_link_key, -1) IS NOT NULL;
CREATE OR REPLACE VIEW bssc_v_rap_export_tf_rel_cmd
(
code,
naam,
standaardadres,
adrestype,
tav,
addressline1,
addressline2,
postcode,
plaats,
land,
telefoon,
fax,
btwnummer,
kvknummer,
emailadres,
standaardbank,
bankid,
begunstigde,
rekeningnummer,
iban,
banknaam,
biccode,
nationalebankid,
postcodebank,
bankplaats,
bankadresstaat,
bankland,
betaalwijze,
betaaladres,
bankadres,
bankadresnummer,
vervaldagen,
betalen,
betaalcode,
leveranciersnummer,
betaalmiddelen
)
AS
SELECT cmdnr.prs_kenmerklink_waarde code,
b.prs_bedrijf_naam naam,
NULL standaardadres,
NULL adrestype,
NULL tav,
b.prs_bedrijf_bezoek_adres addressline1,
NULL addressline2,
b.prs_bedrijf_bezoek_postcode postcode,
b.prs_bedrijf_bezoek_plaats plaats,
b.prs_bedrijf_bezoek_land land,
b.prs_bedrijf_telefoon telefoon,
b.prs_bedrijf_fax fax,
btwnr.prs_kenmerklink_waarde btwnummer,
kvknr.prs_kenmerklink_waarde kvknummer,
b.prs_bedrijf_email emailadres,
NULL standaardbank,
NULL bankid,
NULL begunstigde,
NULL rekeningnummer,
NULL iban,
NULL banknaam,
NULL biccode,
NULL nationalebankid,
NULL postcodebank,
NULL bankplaats,
NULL bankadresstaat,
NULL bankland,
NULL betaalwijze,
NULL betaaladres,
NULL bankadres,
NULL bankadresnummer,
NULL vervaldagen,
NULL betalen,
NULL betaalcode,
b.prs_leverancier_nr leveranciersnummer,
NULL betaalmiddelen
FROM prs_v_aanwezigbedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1120) btwnr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1121) kvknr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr
WHERE b.prs_bedrijf_intern IS NULL
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND b.prs_bedrijf_key = kvknr.prs_link_key(+)
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND COALESCE (cmdnr.prs_link_key, -1) IS NOT NULL;
-- 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.
-- TODO: Bundelen in <20><>n noti!
CREATE OR REPLACE VIEW bssc_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 bssc_v_noti_cntreminder
(
code,
sender,
receiver,
text,
key,
xkey,
xemail,
xmobile
)
AS
SELECT NULL,
NULL,
c.prs_perslid_key_beh,
'Rappel: Contract ' || c.cnt_contract_nummer_intern
|| DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
|| ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
|| ' moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key,
NULL,
NULL,
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND cnt_contract_status = 0
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
UNION ALL
SELECT NULL,
NULL,
c.prs_perslid_key_eig,
'Rappel: Contract ' || c.cnt_contract_nummer_intern
|| DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
|| ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
|| ' moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key,
NULL,
NULL,
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND cnt_contract_status = 0
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key));
-- BSSC#65191: Koppeling met SPS=Smart ParkingSystem!
CREATE OR REPLACE VIEW bssc_v_rap_sps_24hourinfo
(
employee_id,
lastname,
firstname,
middlename,
--telephone,
mobile,
email,
licenseplate1,
licenseplate2,
--geen_parkrecht,
--prio_parkrecht,
company_id,
company,
parking_spots,
prio_spots,
top_color,
bottom_color,
gradient_color,
logo
)
AS
SELECT p.prs_perslid_key,
p.prs_perslid_naam,
p.prs_perslid_voornaam,
p.prs_perslid_tussenvoegsel,
--p.prs_perslid_telefoon,
p.prs_perslid_mobiel,
p.prs_perslid_email,
k1.prs_kenmerklink_waarde,
k2.prs_kenmerklink_waarde,
--gpr.prs_kenmerklink_waarde,
--ppr.prs_kenmerklink_waarde,
a.prs_afdeling_key,
a.prs_afdeling_omschrijving,
ap.prs_kenmerklink_waarde,
pp.prs_kenmerklink_waarde,
tc.prs_kenmerklink_waarde,
bc.prs_kenmerklink_waarde,
gc.prs_kenmerklink_waarde,
'???' logo
FROM prs_v_aanwezigperslid p,
prs_v_afdeling_boom ab,
prs_afdeling a,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1140) k1, -- Kenteken 1
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1141) k2, -- Kenteken 2
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1203) gpr, -- Geen parkeerrecht
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1204) ppr, -- Priority parkeerrecht
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1180) ap, -- Aantal plekken
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1200) pp, -- Priority plekken
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1181) tc, -- Top colour
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1201) bc, -- Bottom colour
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1202) gc -- Gradient colour
WHERE p.prs_perslid_key > 2000 -- Uitsluiten Gast, Facilitor, etc.
AND p.prs_perslid_apikey IS NULL -- Uitsluiten API-users
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = a.prs_afdeling_key
AND p.prs_perslid_key = k1.prs_link_key(+)
AND p.prs_perslid_key = k2.prs_link_key(+)
AND p.prs_afdeling_key = gpr.prs_link_key(+)
AND p.prs_afdeling_key = ppr.prs_link_key(+)
AND p.prs_afdeling_key = ap.prs_link_key(+)
AND p.prs_afdeling_key = pp.prs_link_key(+)
AND p.prs_afdeling_key = tc.prs_link_key(+)
AND p.prs_afdeling_key = bc.prs_link_key(+)
AND p.prs_afdeling_key = gc.prs_link_key(+);
-- Domein met alle kostensoorten (grootboeken).
CREATE OR REPLACE VIEW bssc_v_kostensoorten
(
kostensoort_id,
kostensoort_naam,
kostensoort_verwijder
)
AS
SELECT DISTINCT
fac.safe_to_number (ks.prs_kostensoort_oms) kostensoort_id,
ks.prs_kostensoort_oms || ' [' || ks.prs_kostensoort_opmerking || ']' kostensoort_naam,
NULL kostensoort_verwijder
FROM prs_kostensoort ks
WHERE fac.safe_to_number (ks.prs_kostensoort_oms) IS NOT NULL
UNION
SELECT DISTINCT
fac.safe_to_number (vf.prs_kostensoort_oms) kostensoort_id,
vf.prs_kostensoort_oms || ' [' || ks.prs_kostensoort_opmerking || ']' kostensoort_naam,
NULL kostensoort_verwijder
FROM fin_verkoopfactuur vf, prs_kostensoort ks
WHERE fac.safe_to_number (vf.prs_kostensoort_oms) IS NOT NULL
AND vf.fin_verkoopfactuur_datum > TO_DATE ('01012021', 'ddmmyyyy')
AND vf.prs_kostensoort_oms = ks.prs_kostensoort_oms(+);
-- Domein met alle contractanten (debiteuren).
CREATE OR REPLACE VIEW bssc_v_debiteuren
(
debiteur_id,
debiteur_naam,
debiteur_verwijder
)
AS
SELECT b.prs_bedrijf_key,
b.prs_bedrijf_naam || ' [' || TRIM (cmdnr.prs_kenmerklink_waarde) || '|' || TRIM (chvnr.prs_kenmerklink_waarde) || ']/-;T:'
|| COALESCE (b.prs_bedrijf_telefoon, b.prs_bedrijf_telefoon2, '-') || ';E:'
|| COALESCE (b.prs_bedrijf_email, '-') || ';P:'
|| DECODE (b.prs_bedrijf_post_adres, NULL, '-', TRIM (b.prs_bedrijf_post_adres || ', ' || b.prs_bedrijf_post_postcode) || ' ' || b.prs_bedrijf_post_plaats),
prs_bedrijf_verwijder
FROM prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr
WHERE b.prs_bedrijf_contract = 1
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND TO_CHAR (COALESCE (b.prs_bedrijf_verwijder, SYSDATE), 'yyyy') >= '2021'
UNION ALL
SELECT 100000000 + cp.prs_contactpersoon_key,
b.prs_bedrijf_naam || ' [' || TRIM (cmdnr.prs_kenmerklink_waarde) || '|' || TRIM (chvnr.prs_kenmerklink_waarde) || ']/'
|| COALESCE (TRIM (cp.prs_contactpersoon_aanhef || ' ' || TRIM (cp.prs_contactpersoon_voorletters || ' ' || TRIM (cp.prs_contactpersoon_tussenv || ' ' || cp.prs_contactpersoon_naam))), '-') || ';T:'
|| COALESCE (cp.prs_contactpersoon_telefoon_1, cp.prs_contactpersoon_telefoon_2, b.prs_bedrijf_telefoon, b.prs_bedrijf_telefoon2, '-') || ';E:'
|| COALESCE (cp.prs_contactpersoon_email, b.prs_bedrijf_email, '-') || ';P:'
|| DECODE (b.prs_bedrijf_post_adres, NULL, '-', TRIM (b.prs_bedrijf_post_adres || ', ' || b.prs_bedrijf_post_postcode) || ' ' || b.prs_bedrijf_post_plaats),
cp.prs_contactpersoon_verwijder
FROM prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_contactpersoon cp
WHERE b.prs_bedrijf_contract = 1
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND b.prs_bedrijf_key = cp.prs_bedrijf_key
AND TO_CHAR (COALESCE (cp.prs_contactpersoon_verwijder, b.prs_bedrijf_verwijder, SYSDATE), 'yyyy') >= '2021';
-- Domein met alle facturen in de afgelopen 12 maanden.
CREATE OR REPLACE VIEW bssc_v_verkoopfactuurref
(
fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
fin_verkoopfactuur_tht
)
AS
SELECT DISTINCT
vf.fin_verkoopfactuurkop_key,
vf.fin_verkoopfactuur_id || '/' || vf.prs_debiteur_naam ||
' [' ||
SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4) || '-' || SUBSTR (vf.fin_verkoopfactuur_maand, 5, 2) ||
DECODE (c.cnt_contract_key,
NULL, '',
' (' || c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') || ')') ||
']'
fin_verkoopfactuur_id,
vf.tht
FROM (SELECT DISTINCT
fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
prs_debiteur_naam,
fin_verkoopfactuur_maand,
fin_verkoopfactuur_c2,
LAST_DAY (ADD_MONTHS (fin_verkoopfactuur_datum, 12)) tht,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_datum > TO_DATE ('01012021', 'ddmmyyyy')) vf
LEFT JOIN
cnt_contract c
ON vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key;
-- Domein met de financi<63>le mensen die reserveringen, correctiemeldingen en
-- incidentele verkoopmeldingen mogen vrijgen om te factureren.
CREATE OR REPLACE VIEW bssc_v_vrijgevers
(
prs_perslid_key,
prs_perslid_naam_full,
prs_perslid_naam_friendly,
prs_perslid_verwijder
)
AS
SELECT pf.prs_perslid_key,
pf.prs_perslid_naam_full,
pf.prs_perslid_naam_friendly,
p.prs_perslid_verwijder
FROM fac_gebruikersgroep gg, prs_perslid p, prs_v_perslid_fullnames_all pf
WHERE gg.fac_groep_key = 2661 -- SSC Vrijgave voor facturatie
AND gg.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND SUBSTR (p.prs_perslid_oslogin, 1, 1) != '_';
CREATE OR REPLACE VIEW BSSC_V_RAP_TEFACTUREREN
(
xmlnode,
refkey,
debiteur,
debiteurnr,
contactpersoon,
refid,
refoms,
status,
datum,
kosten,
vrijgever
--vrijgave_door,
--vrijgave_datum
)
AS
SELECT x.xmlnode,
x.refkey,
x.prs_debiteur_naam,
x.debiteur_nr,
x.contactpersoon,
x.refid,
x.refoms,
x.status,
x.datum,
SUM (x.mndnet) kosten,
pfi.prs_perslid_naam_full vrijgever
--pfd.prs_perslid_naam_full vrijgave_door,
--x.vrijgave_datum vrijgave_datum
FROM (SELECT v.xmlnode,
v.refkey,
v.prs_debiteur_naam,
v.debiteur_nr,
v.contactpersoon,
v.refid,
v.regel refoms,
rs.res_status_bo_omschrijving status,
fac.gettrackingdate ('RESAFM', kw.res_rsv_ruimte_key) datum,
v.mndnet,
fac.safe_to_number (kw.res_kenmerkreservering_waarde) vrijgever
--t.prs_perslid_key vrijgave_door,
--kw.res_kenmerkwaarde_aanmaak vrijgave_datum
FROM bssc_v_addd_actual v,
res_v_aanwezigrsv_ruimte rrr,
(SELECT *
FROM res_kenmerkwaarde kw
WHERE res_kenmerkwaarde_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM res_kenmerk
WHERE res_srtkenmerk_key = 281 -- Vrijgegeven ter facturatie door
AND res_kenmerk_key = kw.res_kenmerk_key)) kw,
--(SELECT * -- Boterzacht, maar hoe anders?
-- FROM fac_tracking
-- WHERE fac_srtnotificatie_key = 82 -- RESUPD
-- AND INSTR (UPPER (fac_tracking_oms), 'VRIJGEGEVEN TER FACTURATIE DOOR') > 0) t,
res_status_bo rs
WHERE v.xmlnode = 'reservering'
AND v.refkey = rrr.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)
--AND kw.res_rsv_ruimte_key = t.fac_tracking_refkey(+)
AND rrr.res_status_bo_key = rs.res_status_bo_key
UNION ALL -- Correctie- of losverkoopmelding tefactureren!
SELECT v.xmlnode,
v.mld_melding_key refkey,
v.prs_debiteur_naam,
v.debiteur_nr,
v.contactpersoon,
TO_CHAR (v.mld_melding_key) refid,
v.regel_oms refoms,
ms.mld_statuses_omschrijving status,
fac.gettrackingdate ('MLDAFM', v.mld_melding_key) datum,
v.mndnet,
fac.gettrackinguserkey ('MLDAFR', v.mld_melding_key) vrijgever -- Vrijgever is de MLDAFR-user
--TO_NUMBER (NULL) vrijgave_door,
--fac.gettrackingdate ('MLDAFR', v.mld_melding_key) vrijgave_datum
FROM bssc_v_addd_actual v,
mld_melding m,
mld_statuses ms
WHERE v.mld_melding_key IS NOT NULL
AND v.mld_melding_key = m.mld_melding_key
AND m.mld_melding_status = ms.mld_statuses_key) x,
prs_v_perslid_fullnames_all pfi
--prs_v_perslid_fullnames_all pfd
WHERE x.vrijgever = pfi.prs_perslid_key(+)
--AND x.vrijgave_door = pfd.prs_perslid_key(+)
GROUP BY x.xmlnode,
x.refkey,
x.prs_debiteur_naam,
x.debiteur_nr,
x.contactpersoon,
x.refid,
x.refoms,
x.status,
x.datum,
pfi.prs_perslid_naam_full
--pfd.prs_perslid_naam_full,
--x.vrijgave_datum
;
CREATE OR REPLACE VIEW BSSC_V_RAP_GEFACTUREERD
(
xmlnode,
refkey,
debiteur,
debiteurnr,
contactpersoon,
refid,
refoms,
datum,
kosten,
vrijgever
--vrijgave_door,
--vrijgave_datum
)
AS
SELECT x.xmlnode,
x.refkey,
x.prs_debiteur_naam,
x.debiteur_nr,
x.contactpersoon,
x.refid,
x.refoms,
x.datum,
SUM (x.mndnet) kosten,
pfi.prs_perslid_naam_full vrijgever
--pfd.prs_perslid_naam_full vrijgave_door,
--x.vrijgave_datum vrijgave_datum
FROM (SELECT v.xmlnode,
v.refkey,
v.prs_debiteur_naam,
v.debiteur_nr,
v.contactpersoon,
v.refid,
v.regel refoms,
fac.gettrackingdate ('RESAFM', kw.res_rsv_ruimte_key) datum,
v.mndnet,
fac.safe_to_number (kw.res_kenmerkreservering_waarde) vrijgever
--t.prs_perslid_key vrijgave_door,
--kw.res_kenmerkwaarde_aanmaak vrijgave_datum
FROM bssc_v_addd_frozen v,
(SELECT *
FROM res_kenmerkwaarde kw
WHERE res_kenmerkwaarde_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM res_kenmerk
WHERE res_srtkenmerk_key = 281 -- Vrijgegeven ter facturatie door
AND res_kenmerk_key = kw.res_kenmerk_key)) kw
--(SELECT * -- Boterzacht, maar hoe anders?
-- FROM fac_tracking
-- WHERE fac_srtnotificatie_key = 82 -- RESUPD
-- AND INSTR (UPPER (fac_tracking_oms), 'VRIJGEGEVEN TER FACTURATIE DOOR') > 0) t
WHERE v.xmlnode = 'reservering'
AND v.refkey = kw.res_rsv_ruimte_key(+)
--AND kw.res_rsv_ruimte_key = t.fac_tracking_refkey(+)
UNION ALL -- Correctie- of losverkoopmelding gefactureerd!
SELECT v.xmlnode,
v.mld_melding_key refkey,
v.prs_debiteur_naam,
v.debiteur_nr,
v.contactpersoon,
TO_CHAR (v.mld_melding_key) refid,
v.regel_oms refoms,
fac.gettrackingdate ('MLDAFM', v.mld_melding_key) datum,
v.mndnet,
fac.gettrackinguserkey ('MLDAFR', v.mld_melding_key) vrijgever -- Vrijgever is de MLDAFR-user
--TO_NUMBER (NULL) vrijgave_door,
--fac.gettrackingdate ('MLDAFR', v.mld_melding_key) vrijgave_datum
FROM bssc_v_addd_frozen v
WHERE v.mld_melding_key IS NOT NULL) x,
prs_v_perslid_fullnames_all pfi
--prs_v_perslid_fullnames_all pfd
WHERE x.vrijgever = pfi.prs_perslid_key(+)
--AND x.vrijgave_door = pfd.prs_perslid_key(+)
GROUP BY x.xmlnode,
x.refkey,
x.prs_debiteur_naam,
x.debiteur_nr,
x.contactpersoon,
x.refid,
x.refoms,
x.datum,
pfi.prs_perslid_naam_full
--pfd.prs_perslid_naam_full,
--x.vrijgave_datum
;
CREATE OR REPLACE VIEW BSSC_V_RAP_VRIJGAVEDOOR
(
xmlnode,
refkey,
debiteur,
debiteurnr,
contactpersoon,
refid,
refoms,
datum,
kosten,
vrijgever,
vrijgave_door,
vrijgave_datum
)
AS
SELECT x.xmlnode,
x.refkey,
x.prs_debiteur_naam,
x.debiteur_nr,
x.contactpersoon,
x.refid,
x.refoms,
x.datum,
SUM (x.mndnet) kosten,
pfi.prs_perslid_naam_full vrijgever,
pfd.prs_perslid_naam_full vrijgave_door,
x.vrijgave_datum vrijgave_datum
FROM (SELECT v.xmlnode,
v.refkey,
v.prs_debiteur_naam,
v.debiteur_nr,
v.contactpersoon,
v.refid,
v.regel refoms,
rs.res_status_bo_omschrijving status,
fac.gettrackingdate ('RESAFM', kw.res_rsv_ruimte_key) datum,
v.mndnet,
fac.safe_to_number (kw.res_kenmerkreservering_waarde) vrijgever,
t.prs_perslid_key vrijgave_door,
kw.res_kenmerkwaarde_aanmaak vrijgave_datum
FROM bssc_v_addd_actual v,
res_v_aanwezigrsv_ruimte rrr,
(SELECT *
FROM res_kenmerkwaarde kw
WHERE res_kenmerkwaarde_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM res_kenmerk
WHERE res_srtkenmerk_key = 281 -- Vrijgegeven ter facturatie door
AND res_kenmerk_key = kw.res_kenmerk_key)) kw,
(SELECT * -- Boterzacht, maar hoe anders?
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key = 82 -- RESUPD
AND INSTR (UPPER (t.fac_tracking_oms), 'VRIJGEGEVEN TER FACTURATIE DOOR') > 0
AND NOT EXISTS
(SELECT 1
FROM fac_tracking
WHERE fac_srtnotificatie_key = 82 -- RESUPD
AND INSTR (UPPER (fac_tracking_oms), 'VRIJGEGEVEN TER FACTURATIE DOOR') > 0
AND fac_tracking_refkey = t.fac_tracking_refkey
AND fac_tracking_key > t.fac_tracking_key)) t,
res_status_bo rs
WHERE v.xmlnode = 'reservering'
AND v.refkey = rrr.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)
AND kw.res_rsv_ruimte_key = t.fac_tracking_refkey(+)
AND rrr.res_status_bo_key = rs.res_status_bo_key
UNION ALL
SELECT v.xmlnode,
v.refkey,
v.prs_debiteur_naam,
v.debiteur_nr,
v.contactpersoon,
v.refid,
v.regel refoms,
'Verwerkt' status,
fac.gettrackingdate ('RESAFM', kw.res_rsv_ruimte_key) datum,
v.mndnet,
fac.safe_to_number (kw.res_kenmerkreservering_waarde) vrijgever,
t.prs_perslid_key vrijgave_door,
kw.res_kenmerkwaarde_aanmaak vrijgave_datum
FROM bssc_v_addd_frozen v,
(SELECT *
FROM res_kenmerkwaarde kw
WHERE res_kenmerkwaarde_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM res_kenmerk
WHERE res_srtkenmerk_key = 281 -- Vrijgegeven ter facturatie door
AND res_kenmerk_key = kw.res_kenmerk_key)) kw,
(SELECT * -- Boterzacht, maar hoe anders?
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key = 82 -- RESUPD
AND INSTR (UPPER (t.fac_tracking_oms), 'VRIJGEGEVEN TER FACTURATIE DOOR') > 0
AND NOT EXISTS
(SELECT 1
FROM fac_tracking
WHERE fac_srtnotificatie_key = 82 -- RESUPD
AND INSTR (UPPER (fac_tracking_oms), 'VRIJGEGEVEN TER FACTURATIE DOOR') > 0
AND fac_tracking_refkey = t.fac_tracking_refkey
AND fac_tracking_key > t.fac_tracking_key)) t
WHERE v.xmlnode = 'reservering'
AND v.refkey = kw.res_rsv_ruimte_key(+)
AND kw.res_rsv_ruimte_key = t.fac_tracking_refkey(+)
UNION ALL -- Correctie- of losverkoopmelding tefactureren!
SELECT v.xmlnode,
v.mld_melding_key refkey,
v.prs_debiteur_naam,
v.debiteur_nr,
v.contactpersoon,
TO_CHAR (v.mld_melding_key) refid,
v.regel_oms refoms,
ms.mld_statuses_omschrijving status,
fac.gettrackingdate ('MLDAFM', v.mld_melding_key) datum,
v.mndnet,
fac.gettrackinguserkey ('MLDAFR', v.mld_melding_key) vrijgever, -- Vrijgever is de MLDAFR-user
TO_NUMBER (NULL) vrijgave_door,
fac.gettrackingdate ('MLDAFR', v.mld_melding_key) vrijgave_datum
FROM bssc_v_addd_actual v,
mld_melding m,
mld_statuses ms
WHERE v.mld_melding_key IS NOT NULL
AND v.mld_melding_key = m.mld_melding_key
AND m.mld_melding_status = ms.mld_statuses_key
UNION ALL -- Correctie- of losverkoopmelding gefactureerd!
SELECT v.xmlnode,
v.mld_melding_key refkey,
v.prs_debiteur_naam,
v.debiteur_nr,
v.contactpersoon,
TO_CHAR (v.mld_melding_key) refid,
v.regel_oms refoms,
'Verwerkt' status,
fac.gettrackingdate ('MLDAFM', v.mld_melding_key) datum,
v.mndnet,
fac.gettrackinguserkey ('MLDAFR', v.mld_melding_key) vrijgever, -- Vrijgever is de MLDAFR-user
TO_NUMBER (NULL) vrijgave_door,
fac.gettrackingdate ('MLDAFR', v.mld_melding_key) vrijgave_datum
FROM bssc_v_addd_frozen v
WHERE v.mld_melding_key IS NOT NULL) x,
prs_v_perslid_fullnames_all pfi,
prs_v_perslid_fullnames_all pfd
WHERE x.vrijgever = pfi.prs_perslid_key(+)
AND x.vrijgave_door = pfd.prs_perslid_key(+)
GROUP BY x.xmlnode,
x.refkey,
x.prs_debiteur_naam,
x.debiteur_nr,
x.contactpersoon,
x.refid,
x.refoms,
x.datum,
pfi.prs_perslid_naam_full,
pfd.prs_perslid_naam_full,
x.vrijgave_datum;
CREATE OR REPLACE VIEW BSSC_V_RAP_VERKOOPFACTUUR
AS
SELECT 'C' factuurstroom, -- C!
fin_verkoopfactuur_id,
po_nr,
sortering,
regel,
aanvrager, -- Niet C-factuur
regel_oms, -- Niet C-factuur
TO_DATE (factuurdatum, 'dd-mm-yyyy') gefactureerd_op,
factuurdatum,
vervaldatum,
xmlnode,
refkey,
refid,
lv,
prs_bedrijf_key,
prs_debiteur_naam,
debiteur_nr,
contactpersoon,
--btw_nr, -- Weg?
beschrijving,
adres,
postcode,
plaats,
land,
fin_btwtabelwaarde_perc,
fin_btwtabelwaarde_verlegd,
maand,
mndbegin,
mndeinde,
mndnet,
mndbtw, -- Weg?
TO_CHAR (mld_melding_key) meldingnummer, -- Alleen M-factuur
mld_melding_key -- Alleen M-factuur
FROM bssc_v_fact_actual
WHERE maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
UNION ALL
SELECT UPPER (SUBSTR (xmlnode, 1, 1)) factuurstroom, -- R of M!
fin_verkoopfactuur_id,
po_nr,
sortering,
regel,
aanvrager,
regel_oms,
TO_DATE (factuurdatum, 'dd-mm-yyyy') gefactureerd_op,
factuurdatum,
vervaldatum,
xmlnode,
refkey,
refid, -- Niet M-factuur
lv, -- Alleen C-factuur
prs_bedrijf_key,
prs_debiteur_naam,
debiteur_nr,
contactpersoon,
--btw_nr, -- Weg?
beschrijving,
adres,
postcode,
plaats,
land,
fin_btwtabelwaarde_perc,
fin_btwtabelwaarde_verlegd,
maand,
mndbegin,
mndeinde,
mndnet,
mndbtw, -- Weg?
TO_CHAR (mld_melding_key) meldingnummer, -- Alleen M-factuur
mld_melding_key -- Alleen M-factuur
FROM bssc_v_addd_actual
WHERE maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01';
-- BSSC#65731
CREATE OR REPLACE VIEW bssc_v_rap_resprice
(
res_rsv_ruimte_key,
resnr, -- Reserveringsnummer
res_rsv_ruimte_van, -- Datum van
van_tijd, -- Tijd van
res_rsv_ruimte_tot, -- Datum tot
tot_tijd, -- Tijd tot
bedrijfsnaam,
res_rsv_ruimte_omschrijving, -- Reserveringsomschrijving
adm_stat, -- Administratieve status
res_stat,
res_type, -- Type
aantal,
res_extra,
res_omschrijving, -- Omschrijving
res_stuk_prijs2,
res_line_totaal, -- Bedrag
deelresprijs -- Totaal
)
AS
SELECT rrr.res_rsv_ruimte_key,
TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr) resnr,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_van van_tijd,
rrr.res_rsv_ruimte_tot,
rrr.res_rsv_ruimte_tot tot_tijd,
kw.res_kenmerkreservering_waarde,
rrr.res_rsv_ruimte_omschrijving,
(SELECT res_status_bo_omschrijving FROM res_status_bo WHERE res_status_bo_key = rrr.res_status_bo_key)
adm_stat,
(SELECT res_status_fo_omschrijving FROM res_status_fo WHERE res_status_fo_key = rrr.res_status_fo_key)
res_stat,
x.res_type,
x.aantal,
x.res_extra,
x.res_omschrijving,
x.stuksprijs,
x.aantal * x.stuksprijs,
res.getdeelresprijs (rrr.res_rsv_ruimte_key) deelresprijs
FROM (SELECT 'Artikel' res_type,
rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_nr res_extra,
ra.res_artikel_omschrijving res_omschrijving,
DECODE (rra.res_rsv_artikel_prijs, NULL, ra.res_artikel_prijs, rra.res_rsv_artikel_prijs / DECODE (COALESCE (rra.res_rsv_artikel_aantal, 0), 0, 1, rra.res_rsv_artikel_aantal))
stuksprijs
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
UNION ALL
SELECT 'Object' res_type,
rrd.res_rsv_ruimte_key,
rrd.res_rsv_deel_aantal aantal,
NULL res_extra,
rd.res_deel_omschrijving res_omschrijving,
--DECODE (rrd.res_rsv_deel_prijs, NULL, rd.res_deel_prijs, rrd.res_rsv_deel_prijs / DECODE (COALESCE (rrd.res_rsv_deel_aantal, 0), 0, 1, rrd.res_rsv_deel_aantal))
COALESCE (rrd.res_rsv_deel_prijs, 0) stuksprijs
FROM res_v_aanwezigrsv_deel rrd, res_deel rd
WHERE rrd.res_rsv_deel_dirtlevel = 0
AND rrd.res_deel_key = rd.res_deel_key
UNION ALL
SELECT 'Ruimte' res_type,
rrr.res_rsv_ruimte_key,
(rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24 aantal, -- Duur in uren
ro.res_opstelling_omschrijving res_extra,
rr.res_ruimte_nr res_omschrijving,
res.getruimteprijs (rrr.res_rsv_ruimte_key) / DECODE ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van), 0, 1, (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24)
stuksprijs
FROM res_v_aanwezigrsv_ruimte rrr, res_ruimte_opstelling rro, res_ruimte rr, res_opstelling ro
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
AND rro.res_ruimte_key = rr.res_ruimte_key
AND rro.res_opstelling_key = ro.res_opstelling_key
UNION ALL
SELECT 'Korting' res_type,
res_rsv_ruimte_key,
-1 aantal,
NULL res_extra,
'Korting' res_omschrijving,
res_rsv_ruimte_korting stuksprijs
FROM res_v_aanwezigrsv_ruimte
WHERE res_rsv_ruimte_dirtlevel = 0
AND res_rsv_ruimte_korting IS NOT NULL) x,
res_rsv_ruimte rrr,
(SELECT * FROM res_v_aanwezigkenmerkwaarde WHERE res_kenmerk_key IN (248, 254, 264, 325)) kw -- Relatie
WHERE x.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND x.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+);
-- Rapportage tbv. interne facturatie van CMD aan CHV!
CREATE OR REPLACE VIEW BSSC_V_RAP_CMD2CHV
(
maand,
debiteurnaam,
factuurnummer,
huurbedrag,
cmd_fee,
facilitaire_kosten,
it_kosten
)
AS
SELECT maand,
prs_debiteur_naam,
'*CONCEPT / ' || refid factuurnummer,
SUM (huurbedrag) huurbedrag,
SUM ((aantal * (tarief - 73)) / 12) cmd_fee,
SUM (facilitaire_kosten) facilitaire_kosten,
SUM (it_kosten) it_kosten
FROM ( SELECT maand, prs_debiteur_naam, refid,
SUM (DECODE (alg_plaatsaanduiding, NULL, 0, aantal)) aantal,
MAX (tarief) tarief,
SUM (mndnet) huurbedrag,
0 facilitaire_kosten,
0 it_kosten
FROM bssc_v_fact_actual
WHERE regel = 'CHV - Huur'
GROUP BY maand, prs_debiteur_naam, refid
UNION ALL
SELECT maand, prs_debiteur_naam, refid, 0 aantal, 0 tarief, 0 huurbedrag, mndnet facilitaire_kosten, 0 it_kosten
FROM bssc_v_fact_actual
WHERE INSTR (UPPER (regel), 'CHV - FACILITAIR') > 0
UNION ALL
SELECT maand, prs_debiteur_naam, refid, 0 aantal, 0 tarief, 0 huurbedrag, 0 facilitaire_kosten, mndnet it_kosten
FROM bssc_v_fact_actual
WHERE INSTR (UPPER (regel), 'CHV - ICT') > 0)
GROUP BY maand, prs_debiteur_naam, '*CONCEPT / ' || refid
UNION ALL
SELECT maand,
prs_debiteur_naam,
fin_verkoopfactuur_id factuurnummer,
SUM (huurbedrag) huurbedrag,
SUM ((aantal * (tarief - 73.33)) / 12) cmd_fee,
SUM (facilitaire_kosten) facilitaire_kosten,
SUM (it_kosten) it_kosten
FROM ( SELECT maand, prs_debiteur_naam, fin_verkoopfactuur_id,
SUM (DECODE (alg_plaatsaanduiding, NULL, 0, aantal)) aantal,
MAX (tarief) tarief,
SUM (mndnet) huurbedrag,
0 facilitaire_kosten,
0 it_kosten
FROM bssc_v_fact_frozen
WHERE regel = 'CHV - Huur'
GROUP BY maand, prs_debiteur_naam, fin_verkoopfactuur_id
UNION ALL
SELECT maand, prs_debiteur_naam, fin_verkoopfactuur_id, 0 aantal, 0 tarief, 0 huurbedrag, mndnet facilitaire_kosten, 0 it_kosten
FROM bssc_v_fact_frozen
WHERE INSTR (UPPER (regel), 'CHV - FACILITAIR') > 0
UNION ALL
SELECT maand, prs_debiteur_naam, fin_verkoopfactuur_id, 0 aantal, 0 tarief, 0 huurbedrag, 0 facilitaire_kosten, mndnet it_kosten
FROM bssc_v_fact_frozen
WHERE INSTR (UPPER (regel), 'CHV - ICT') > 0)
GROUP BY maand, prs_debiteur_naam, fin_verkoopfactuur_id;
-- Rapportage van contracten die niet automatisch worden gefactureerd!
CREATE OR REPLACE VIEW BSSC_V_RAP_AUTOM_FACT_UIT
(
--hide_f_sortering,
eerstvolgendefactuur,
debiteurnaam,
contractsoort,
contractnummer,
totaalbedrag
)
AS
SELECT --fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy'),
fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')
eerstvolgendefactuur,
x.prs_debiteur_naam debiteurnaam,
x.ins_discipline_omschrijving contractsoort,
x.refid contractnummer,
x.mndnet totaalbedrag
FROM ( SELECT x.refkey, x.prs_debiteur_naam, cd.ins_discipline_omschrijving, x.refid,
SUM (mndnet) mndnet
FROM bssc_v_fact_actual x, cnt_contract c, cnt_discipline cd
WHERE x.xmlnode = 'contract'
AND x.refkey = c.cnt_contract_key
AND c.ins_discipline_key = cd.ins_discipline_key
GROUP BY x.refkey, x.prs_debiteur_naam, cd.ins_discipline_omschrijving, x.refid) x
LEFT JOIN cnt_kenmerkcontract autom_fact
ON x.refkey = autom_fact.cnt_contract_key
AND autom_fact.cnt_kenmerkcontract_verwijder IS NULL
AND autom_fact.cnt_kenmerk_key IN (863, 864, 865) -- Geen automatisch facturatie
LEFT JOIN cnt_kenmerkcontract start_fact
ON x.refkey = start_fact.cnt_contract_key
AND start_fact.cnt_kenmerkcontract_verwijder IS NULL
AND start_fact.cnt_kenmerk_key IN (866, 868, 869, 870) -- Start facturatie op
WHERE autom_fact.cnt_kenmerkcontract_waarde = '1'
AND fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') >= TRUNC (SYSDATE);
------ 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