Files
Customer/BSSC/bssc.sql
Maarten van der Heide 4380f5a42f BSSC#55692 Facturatieproces (alle contract- en meldingfacturatie live)
svn path=/Customer/trunk/; revision=58877
2023-01-30 12:12:23 +00:00

6139 lines
349 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;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
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)!
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')), '202301') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id, -- Huur!
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'0001' || 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,
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 (oh.cnt_kenmerkcontract_waarde, '921', '0', 'H')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (oh.cnt_kenmerkcontract_waarde, '921', 'Nul', 'Hoog')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 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
1 aantal,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Maandbedrag
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
jbw.cnt_kenmerk_key regel_key,
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 (jbw.cnt_kenmerkcontract_waarde), 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 (jbw.cnt_kenmerkcontract_waarde) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 0, 0.21)), 2)
mndbtw, -- BTW maandbedrag
DECODE (oh.cnt_kenmerkcontract_waarde, '921', '8417', '8400') grtboekrek,
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- Definitief
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 1001 -- Geen automatische facturatie
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
LEFT JOIN cnt_kenmerkcontract oh
ON x.cnt_contract_key = oh.cnt_contract_key
AND oh.cnt_kenmerkcontract_verwijder IS NULL
AND oh.cnt_kenmerk_key = 641 -- Onbelaste huurder
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key = 962 -- Huur (per maand)
LEFT JOIN cnt_kenmerk jbw_k
ON jbw.cnt_kenmerk_key = jbw_k.cnt_kenmerk_key
AND jbw_k.cnt_kenmerk_verwijder IS NULL
WHERE gaf.cnt_kenmerkcontract_waarde IS NULL -- COALESCE (gaf.cnt_kenmerkcontract_waarde, 0) = 0
AND fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') <= fac.safe_to_date (x.maand || '01', 'yyyymmdd')
AND COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) != 0
UNION ALL -- Vervangende toeslag op huur!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'0002' || 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,
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,
'0' fin_btwtabelwaarde_code,
'Nul' fin_btwtabelwaarde_oms,
0 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd, -- Of 1?
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
(verv_toeslag_ud.fac_usrdata_prijs - 1) aantal, -- Vervangend toeslagperc.
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Maandbedrag
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
verv_toeslag.cnt_kenmerk_key regel_key,
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)) *
(verv_toeslag_ud.fac_usrdata_prijs - 1) *
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 2)
mndnet, -- Netto maandbedrag
0 mndbtw, -- BTW maandbedrag
'8417' grtboekrek,
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- Definitief
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 1001 -- Geen automatische facturatie
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
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key = 962 -- Huur (per maand)
LEFT JOIN cnt_kenmerk jbw_k
ON jbw.cnt_kenmerk_key = jbw_k.cnt_kenmerk_key
AND jbw_k.cnt_kenmerk_verwijder IS NULL
LEFT JOIN cnt_kenmerkcontract verv_toeslag
ON x.cnt_contract_key = verv_toeslag.cnt_contract_key
AND verv_toeslag.cnt_kenmerkcontract_verwijder IS NULL
AND verv_toeslag.cnt_kenmerk_key = 642 -- Vervangende toeslag
LEFT JOIN fac_v_aanwezigusrdata verv_toeslag_ud
ON fac.safe_to_number (verv_toeslag.cnt_kenmerkcontract_waarde) = verv_toeslag_ud.fac_usrdata_key
WHERE gaf.cnt_kenmerkcontract_waarde IS NULL -- COALESCE (gaf.cnt_kenmerkcontract_waarde, 0) = 0
AND fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') <= fac.safe_to_date (x.maand || '01', 'yyyymmdd')
AND COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) != 0
AND verv_toeslag_ud.fac_usrdata_prijs > 1
UNION ALL -- VVO bij facturatie (zodat historisch bewaard)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'0001' || 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,
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 (oh.cnt_kenmerkcontract_waarde, '921', '0', 'H')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (oh.cnt_kenmerkcontract_waarde, '921', 'Nul', 'Hoog')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 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
fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde) bedrag, -- Huurprijs m2/p.j.
vvo_toeslag_ud.fac_usrdata_prijs vvo_toeslag, -- VVO toeslagpercentage
962 regel_key,
pa.alg_onroerendgoed_type, pa.alg_onroerendgoed_keys, pa.alg_plaatsaanduiding,
0 mndnet, -- Netto maandbedrag
0 mndbtw, -- BTW maandbedrag
DECODE (oh.cnt_kenmerkcontract_waarde, '921', '8417', '8400') grtboekrek,
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- Definitief
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 1001 -- Geen automatische facturatie
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
LEFT JOIN cnt_kenmerkcontract oh
ON x.cnt_contract_key = oh.cnt_contract_key
AND oh.cnt_kenmerkcontract_verwijder IS NULL
AND oh.cnt_kenmerk_key = 641 -- Onbelaste huurder
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
ON x.cnt_contract_key = vvo_toeslag.cnt_contract_key
AND vvo_toeslag.cnt_kenmerkcontract_verwijder IS NULL
AND vvo_toeslag.cnt_kenmerk_key = 402 -- VVO toeslagpercentage
LEFT JOIN fac_v_aanwezigusrdata vvo_toeslag_ud
ON fac.safe_to_number (vvo_toeslag.cnt_kenmerkcontract_waarde) = vvo_toeslag_ud.fac_usrdata_key
WHERE gaf.cnt_kenmerkcontract_waarde IS NULL -- COALESCE (gaf.cnt_kenmerkcontract_waarde, 0) = 0
AND fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') <= fac.safe_to_date (x.maand || '01', 'yyyymmdd')
AND ccp.cnt_alg_plaats_key IS NOT NULL
UNION ALL -- M2 correctie bij facturatie (zodat historisch bewaard)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'0001' || 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,
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 (oh.cnt_kenmerkcontract_waarde, '921', '0', 'H')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (oh.cnt_kenmerkcontract_waarde, '921', 'Nul', 'Hoog')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 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
fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde) bedrag, -- Huurprijs m2/p.j.
vvo_toeslag_ud.fac_usrdata_prijs vvo_toeslag, -- VVO toeslagpercentage
962 regel_key,
'C' alg_onroerendgoed_type, -1 alg_onroerendgoed_keys, 'Correctie' alg_plaatsaanduiding,
0 mndnet, -- Netto maandbedrag
0 mndbtw, -- BTW maandbedrag
DECODE (oh.cnt_kenmerkcontract_waarde, '921', '8417', '8400') grtboekrek,
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- Definitief
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 1001 -- Geen automatische facturatie
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
LEFT JOIN cnt_kenmerkcontract oh
ON x.cnt_contract_key = oh.cnt_contract_key
AND oh.cnt_kenmerkcontract_verwijder IS NULL
AND oh.cnt_kenmerk_key = 641 -- Onbelaste huurder
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
ON x.cnt_contract_key = vvo_toeslag.cnt_contract_key
AND vvo_toeslag.cnt_kenmerkcontract_verwijder IS NULL
AND vvo_toeslag.cnt_kenmerk_key = 402 -- VVO toeslagpercentage
LEFT JOIN fac_v_aanwezigusrdata vvo_toeslag_ud
ON fac.safe_to_number (vvo_toeslag.cnt_kenmerkcontract_waarde) = vvo_toeslag_ud.fac_usrdata_key
WHERE gaf.cnt_kenmerkcontract_waarde IS NULL -- COALESCE (gaf.cnt_kenmerkcontract_waarde, 0) = 0
AND fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') <= fac.safe_to_date (x.maand || '01', 'yyyymmdd')
AND correctie_m2.cnt_kenmerkcontract_waarde IS NOT NULL
UNION ALL -- Overige maandbedragen!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
SUBSTR ('000' || TO_CHAR (jbw_k.cnt_kenmerk_volgnummer), -4)|| TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - ' || jbw_k.cnt_kenmerk_omschrijving 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,
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 (oh.cnt_kenmerkcontract_waarde, '921', '0', 'H')) fin_btwtabelwaarde_code,
--DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (oh.cnt_kenmerkcontract_waarde, '921', 'Nul', 'Hoog')) fin_btwtabelwaarde_oms,
--DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 0, 21)) fin_btwtabelwaarde_perc,
--DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, TO_NUMBER (NULL)) fin_btwtabelwaarde_verlegd,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Maandbedrag
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
jbw.cnt_kenmerk_key regel_key,
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 (jbw.cnt_kenmerkcontract_waarde), 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 (jbw.cnt_kenmerkcontract_waarde) *
0.21, 2)
mndbtw, -- BTW maandbedrag
DECODE (jbw.cnt_kenmerk_key,
'963', '8403', -- ICT
'964', '8402', -- Facilitaire kosten
'965', '8401', -- Servicekosten
'966', '8406', -- Schoonmaak
'982', '8424', -- Koffieautomaten
'983', '8425', -- Duty manager
'9999')
grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- Definitief
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 1001 -- Geen automatische facturatie
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
LEFT JOIN cnt_kenmerkcontract oh
ON x.cnt_contract_key = oh.cnt_contract_key
AND oh.cnt_kenmerkcontract_verwijder IS NULL
AND oh.cnt_kenmerk_key = 641 -- Onbelaste huurder
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key IN (963, 964, 965, 966, 982, 983) -- Overige maandbedragen
LEFT JOIN cnt_kenmerk jbw_k
ON jbw.cnt_kenmerk_key = jbw_k.cnt_kenmerk_key
AND jbw_k.cnt_kenmerk_verwijder IS NULL
WHERE gaf.cnt_kenmerkcontract_waarde IS NULL -- COALESCE (gaf.cnt_kenmerkcontract_waarde, 0) = 0
AND fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') <= fac.safe_to_date (x.maand || '01', 'yyyymmdd')
AND COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) != 0
UNION ALL -- Parkeren CHV (vooruit)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'9901' || 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
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,
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 (oh.cnt_kenmerkcontract_waarde, '921', '0', 'H')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (oh.cnt_kenmerkcontract_waarde, '921', 'Nul', 'Hoog')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 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) bedrag, -- Jaarbedrag
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
bedrag.cnt_kenmerk_key regel_key,
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, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 0, 0.21)) *
1/12, 2)
mndbtw, -- BTW maandbedrag
--DECODE (oh.cnt_kenmerkcontract_waarde, '921', '9999', '8404') grtboekrek,
TRIM (ks.prs_kostensoort_oms) grtboekrek, -- 8404
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2003 -- Parkeren CHV
AND c.cnt_contract_status = 0 -- Definitief
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 864 -- Geen automatische facturatie
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 = 415 -- 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 = 416 -- Bedrag
LEFT JOIN cnt_kenmerkcontract oh
ON x.cnt_contract_key = oh.cnt_contract_key
AND oh.cnt_kenmerkcontract_verwijder IS NULL
AND oh.cnt_kenmerk_key = 1041 -- Onbelaste huurder
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
WHERE gaf.cnt_kenmerkcontract_waarde IS NULL -- COALESCE (gaf.cnt_kenmerkcontract_waarde, 0) = 0
AND COALESCE (fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde), 0) > 0
AND COALESCE (fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde), 0) > 0
UNION ALL -- Vervangende toeslag op Parkeren CHV (vooruit)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'9902' || 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,
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,
'0' fin_btwtabelwaarde_code,
'Nul' fin_btwtabelwaarde_oms,
0 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd, -- Of 1?
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) * (verv_toeslag_ud.fac_usrdata_prijs - 1) bedrag, -- Jaarbedrag * Vervangend toeslagperc.
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
verv_toeslag.cnt_kenmerk_key regel_key,
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) * (verv_toeslag_ud.fac_usrdata_prijs - 1) *
1/12, 2)
mndnet, -- Netto maandbedrag (incl. kortingspercentage)
0 mndbtw, -- BTW maandbedrag
--'9999' grtboekrek,
TRIM (ks.prs_kostensoort_oms) grtboekrek, -- 8404
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2003 -- Parkeren CHV
AND c.cnt_contract_status = 0 -- Definitief
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 864 -- Geen automatische facturatie
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 = 415 -- 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 = 416 -- Bedrag
LEFT JOIN cnt_kenmerkcontract verv_toeslag
ON x.cnt_contract_key = verv_toeslag.cnt_contract_key
AND verv_toeslag.cnt_kenmerkcontract_verwijder IS NULL
AND verv_toeslag.cnt_kenmerk_key = 1042 -- Vervangende toeslag
LEFT JOIN fac_v_aanwezigusrdata verv_toeslag_ud
ON fac.safe_to_number (verv_toeslag.cnt_kenmerkcontract_waarde) = verv_toeslag_ud.fac_usrdata_key
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
WHERE gaf.cnt_kenmerkcontract_waarde IS NULL -- COALESCE (gaf.cnt_kenmerkcontract_waarde, 0) = 0
AND COALESCE (fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde), 0) > 0
AND COALESCE (fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde), 0) > 0
AND verv_toeslag_ud.fac_usrdata_prijs > 1
UNION ALL -- Parkeren CMD (achteraf)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CMD' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'9901' || 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 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,
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) bedrag, -- Jaarbedrag
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
bedrag.cnt_kenmerk_key regel_key,
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, -- 8115
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_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) 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,
TO_CHAR (ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -2), 'yyyymm') maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2004 -- Parkeren CMD
AND c.cnt_contract_status = 0 -- Definitief
AND TRUNC (c.cnt_contract_looptijd_van) < ADD_MONTHS (LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')), -2) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -2) -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 865 -- Geen automatische facturatie
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 = 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 = 418 -- Bedrag
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
WHERE gaf.cnt_kenmerkcontract_waarde IS NULL -- COALESCE (gaf.cnt_kenmerkcontract_waarde, 0) = 0
AND COALESCE (fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde), 0) > 0
AND COALESCE (fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde), 0) > 0
UNION ALL -- Deelnemers CMD (achteraf)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CMD' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'9901' || 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,
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) bedrag, -- Jaarbedrag
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
bedrag.cnt_kenmerk_key regel_key,
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
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) 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,
TO_CHAR (ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -2), 'yyyymm') maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2005 -- Deelnemers CMD
AND c.cnt_contract_status = 0 -- Definitief
AND TRUNC (c.cnt_contract_looptijd_van) < ADD_MONTHS (LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')), -2) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -2) -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 863 -- Geen automatische facturatie
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
ON x.cnt_contract_key = sd.cnt_contract_key
AND sd.cnt_kenmerkcontract_verwijder IS NULL
AND sd.cnt_kenmerk_key = 421 -- Soort deelnemer
LEFT JOIN fac_v_aanwezigusrdata sd_ud
ON fac.safe_to_number (sd.cnt_kenmerkcontract_waarde) = sd_ud.fac_usrdata_key
WHERE gaf.cnt_kenmerkcontract_waarde IS NULL -- COALESCE (gaf.cnt_kenmerkcontract_waarde, 0) = 0
AND COALESCE (fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde), 0) > 0
AND COALESCE (fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde), 0) > 0
;
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) 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_n2) aantal,
fac.safe_to_number (vf.fin_verkoopfactuur_n3) bedrag,
fac.safe_to_number (vf.fin_verkoopfactuur_n4) vvo_toeslag,
vf.fin_verkoopfactuur_n2 regel_key,
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 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 TRUNC (vf.fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE)
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: FACT-export van verhuurfacturen (= boekingsgangen) draait
-- dagelijks na middernacht (begin van dag) en de verkoop wordt maandelijks
-- alleen in de nacht na 1e werkdag van de maand doorgezet.
-- IF nacht na 1e werkdag van de maand (<28>n<EFBFBD>geen weekend <20>n<EFBFBD>geen vrije dag)!
-- count_work_days (d1,d2) bepaalt het #werkdagen van d1 tot d2 (als d1=d2,
-- dan return 0); daarom bepalen tov. laatste dag van vorige maand!
--IF TO_CHAR (SYSDATE, 'dd') = '15' -- TODO:Weer terug naar nacht na 1e werkdag van de maand!
IF FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1 -- Nacht na 1e werkdag van de maand!
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; -- Factuur per contract!
-- Factureer/bevries (huur)contractkosten.
FOR rec IN c1
LOOP
BEGIN
IF rec.refkey != v_old_contract_key
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_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
rec.aantal, -- n2/aantal
rec.bedrag, -- n3/bedrag
rec.vvo_toeslag, -- n4/vvo_toeslag
TO_NUMBER (NULL), -- n5
NULL, -- c1
NULL, -- c2
NULL, -- c3
NULL, -- c4
NULL, -- c5
rec.alg_onroerendgoed_type || rec.alg_onroerendgoed_keys || '=' || rec.alg_plaatsaanduiding, -- 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 (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',
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',
'/../../Fplace5i/CUST/BSSC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', rec.aanduiding || v_errormsg, 'FACT-noti');
COMMIT;
END;
END LOOP;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', v_errormsg, 'FACT-export afgebroken!');
END;
/
-- 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?
--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!
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, -- Niet overnemen van te corrigeren factuur?
--TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
DECODE (m.mld_stdmelding_key, 1481, TRIM (chvnr.prs_kenmerklink_waarde), TRIM (cmdnr.prs_kenmerklink_waarde)) debiteur_nr, -- Niet 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,
TO_NUMBER (NULL) bedrag,
TO_NUMBER (NULL) vvo_toeslag,
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 * 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 = 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 IN (4, 5) -- In behandeling/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 = 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 = 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?
--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!
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, -- Niet overnemen van te corrigeren factuur?
--TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
DECODE (m.mld_stdmelding_key, 1481, TRIM (chvnr.prs_kenmerklink_waarde), TRIM (cmdnr.prs_kenmerklink_waarde)) debiteur_nr, -- Niet 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,
TO_NUMBER (NULL) bedrag,
TO_NUMBER (NULL) vvo_toeslag,
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 * 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 = 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 IN (4, 5) -- In behandeling/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 = 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 = 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?
--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!
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, -- Niet overnemen van te corrigeren factuur?
--TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
DECODE (m.mld_stdmelding_key, 1481, TRIM (chvnr.prs_kenmerklink_waarde), TRIM (cmdnr.prs_kenmerklink_waarde)) debiteur_nr, -- Niet 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,
TO_NUMBER (NULL) bedrag,
TO_NUMBER (NULL) vvo_toeslag,
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 * 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 = 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 IN (4, 5) -- In behandeling/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 = 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 = 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?
--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!
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, -- Niet overnemen van te corrigeren factuur?
--TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
DECODE (m.mld_stdmelding_key, 1481, TRIM (chvnr.prs_kenmerklink_waarde), TRIM (cmdnr.prs_kenmerklink_waarde)) debiteur_nr, -- Niet 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,
TO_NUMBER (NULL) bedrag,
TO_NUMBER (NULL) vvo_toeslag,
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 * 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 = 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 IN (4, 5) -- In behandeling/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 = 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 = 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?
--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!
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, -- Niet overnemen van te corrigeren factuur?
--TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
DECODE (m.mld_stdmelding_key, 1481, TRIM (chvnr.prs_kenmerklink_waarde), TRIM (cmdnr.prs_kenmerklink_waarde)) debiteur_nr, -- Niet 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,
TO_NUMBER (NULL) bedrag,
TO_NUMBER (NULL) vvo_toeslag,
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 * 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 = 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 IN (4, 5) -- In behandeling/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 = 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 = 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,
TO_NUMBER (NULL) bedrag,
TO_NUMBER (NULL) vvo_toeslag,
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 IN (4, 5) -- In behandeling/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,
TO_NUMBER (NULL) bedrag,
TO_NUMBER (NULL) vvo_toeslag,
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 IN (4, 5) -- In behandeling/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,
TO_NUMBER (NULL) bedrag,
TO_NUMBER (NULL) vvo_toeslag,
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 IN (4, 5) -- In behandeling/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,
TO_NUMBER (NULL) bedrag,
TO_NUMBER (NULL) vvo_toeslag,
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 IN (4, 5) -- In behandeling/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,
TO_NUMBER (NULL) bedrag,
TO_NUMBER (NULL) vvo_toeslag,
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 IN (4, 5) -- In behandeling/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,
TO_NUMBER (NULL) bedrag,
TO_NUMBER (NULL) vvo_toeslag,
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),
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, bedrag, vvo_toeslag,
alg_onroerendgoed_type, alg_onroerendgoed_keys, alg_plaatsaanduiding,
mndnet, mndbtw,
grtboekrek,
mld_melding_key
FROM bssc_v_addd_correctie
WHERE mld_melding_key > 18833 -- Per 01-12-2022 (18833 laatste melding op 30-11-2022)!
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, bedrag, vvo_toeslag,
alg_onroerendgoed_type, alg_onroerendgoed_keys, alg_plaatsaanduiding,
mndnet, mndbtw,
grtboekrek,
mld_melding_key
FROM bssc_v_addd_losverkoop
WHERE mld_melding_key > 18833 -- Per 01-12-2022 (18833 laatste melding op 30-11-2022)!
;
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,
TO_NUMBER (NULL) bedrag,
TO_NUMBER (NULL) vvo_toeslag,
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 '[' || TO_CHAR (v.mld_melding_key) || '|' || 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
WHERE v.mld_melding_key > 18833 -- Per 01-12-2022 (18833 laatste melding op 30-11-2022)!
AND m.mld_melding_status = 5 -- Afgemeld=VRIJGEGEVEN!!!
AND v.mld_melding_key = m.mld_melding_key -- Dagelijkse correctiefacturatie (na vrijgave)
ORDER BY v.prs_bedrijf_key,
v.mld_melding_key, -- Factuur per correctiemelding
v.sortering;
-- Factureer/bevries ADDD-losverkopen en verwerk=AV alle losverkoopmeldingen!
CURSOR c1d
IS
SELECT '[' || TO_CHAR (v.mld_melding_key) || '|' || 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
WHERE v.mld_melding_key > 18833 -- Per 01-12-2022 (18833 laatste melding op 30-11-2022)!
AND m.mld_melding_status = 5 -- Afgemeld=VRIJGEGEVEN!!!
AND v.mld_melding_key = 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_key NUMBER (10); -- Factuur per melding!
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 = 0 -- 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',
'/../../Fplace5i/CUST/BSSC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', rec.aanduiding || v_errormsg, 'ADDD[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_key := -1; -- Factuur per melding!
-- Factureer/bevries ADDD-correctiekosten en verwerk=AV correctiemeldingen.
FOR rec IN c1c
LOOP
BEGIN
IF rec.mndnet != 0 AND rec.mld_melding_key != v_old_melding_key
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_key := rec.mld_melding_key;
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;
-- Melding hier altijd Afgemeld!
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_key := -1; -- Factuur per melding!
-- Factureer/bevries ADDD-losverkoopkosten en verwerk=AV losverkoopmeldingen.
FOR rec IN c1d
LOOP
BEGIN
IF rec.mndnet != 0 AND rec.mld_melding_key != v_old_melding_key
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_key := rec.mld_melding_key;
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;
-- Melding hier altijd Afgemeld!
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',
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',
'/../../Fplace5i/CUST/BSSC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', rec.aanduiding || v_errormsg, 'ADDD[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,
TRIM (DECODE (mld_melding_key, NULL, DECODE (aant, 1, tfoms, ''), 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, regel_oms) 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, -- Op verzoek van RS per mail op 06-03-2002!
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 (REPLACE (REPLACE (v.regel, CHR (10), ''), CHR (13), ' '), 1, 40) omschrijving,
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', '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 (REPLACE (REPLACE (v.regel, CHR (10), ''), CHR (13), ' '), 1, 40),
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', '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, -- Op verzoek van RS per mail op 06-03-2002!
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,
NULL rel_kpl, -- Op verzoek van RS per mail op 06-03-2002!
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', 'VL', '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,
NULL,
NULL,
'credit',
SUBSTR ('C' || v.refid || ' ' || v.regel, 1, 40),
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', '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,
TRIM (DECODE (mld_melding_key, NULL, DECODE (aant, 1, tfoms, ''), 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, regel_oms) 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, -- Op verzoek van RS per mail op 06-03-2002!
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 (REPLACE (REPLACE (v.regel, CHR (10), ''), CHR (13), ' '), 1, 40) omschrijving,
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', '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 (REPLACE (REPLACE (v.regel, CHR (10), ''), CHR (13), ' '), 1, 40),
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', '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, -- Op verzoek van RS per mail op 06-03-2002!
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!
'debt' 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,
NULL rel_kpl, -- Op verzoek van RS per mail op 06-03-2002!
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', 'VL', '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,
NULL,
NULL,
'credit',
SUBSTR ('C' || v.refid || ' ' || v.regel, 1, 40),
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', '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;
--OUD: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
--code;naam;website;standaardadres;adrestype;bedrijfsnaam;tav;adresregel1;adresregel2;postcode;plaats;land;telefoon;fax;btwnr;kvknummer;emailadres;incasso;incassocode;machtigingskenmerk;eersteincasso;ondertekeningsdatum;standaardbank;tenaamstelling;rekeningnummer;iban;biccode;nationalebankid;banknaam;bankadres;bankadresnummer;bankpostcode;bankplaats;bankstaat;referentie;bankland;vervaldagen;ebilling;ebillingemailadres;grootboekrekening;kredietlimiet;kredietbeheerder;geblokkeerd;gebruiksrecht;segmentcode;aanmanen;aanmaningsemailadres;commentaar;kortingsartikel;verstuurmethode;emailadres
CREATE OR REPLACE VIEW bssc_v_rap_export_tf_rel_chv
(
code,
naam,
website,
standaardadres,
adrestype,
bedrijfsnaam,
tav,
adresregel1,
adresregel2,
postcode,
plaats,
land,
telefoon,
fax,
btwnr,
kvknummer,
emailadres,
incasso,
incassocode,
machtigingskenmerk,
eersteincasso,
ondertekeningsdatum,
standaardbank,
tenaamstelling,
rekeningnummer,
iban,
biccode,
nationalebankid,
banknaam,
bankadres,
bankadresnummer,
bankpostcode,
bankplaats,
bankstaat,
referentie,
bankland,
vervaldagen,
ebilling,
ebillingemailadres,
grootboekrekening,
kredietlimiet,
kredietbeheerder,
geblokkeerd,
gebruiksrecht,
segmentcode,
aanmanen,
aanmaningsemailadres,
commentaar,
kortingsartikel,
verstuurmethode,
emailadres2
)
AS
SELECT chvnr.prs_kenmerklink_waarde code,
b.prs_bedrijf_naam naam,
NULL website,
NULL standaardadres,
NULL adrestype,
b.prs_bedrijf_naam bedrijfsnaam,
NULL tav,
b.prs_bedrijf_bezoek_adres addressline1,
NULL addressline2,
b.prs_bedrijf_bezoek_postcode postcode,
b.prs_bedrijf_bezoek_plaats plaats,
NULL land, --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 incasso,
NULL incassocode,
NULL machtigingskenmerk,
NULL eersteincasso,
NULL ondertekeningsdatum,
NULL standaardbank,
NULL tenaamstelling,
NULL rekeningnummer,
NULL iban,
NULL biccode,
NULL nationalebankid,
NULL banknaam,
NULL bankadres,
NULL bankadresnummer,
NULL bankpostcode,
NULL bankplaats,
NULL bankstaat,
NULL referentie,
NULL bankland,
NULL vervaldagen,
NULL ebilling,
NULL ebillingemailadres,
NULL grootboekrekening,
NULL kredietlimiet,
NULL kredietbeheerder,
NULL geblokkeerd,
NULL gebruiksrecht,
NULL segmentcode,
NULL aanmanen,
NULL aanmaningsemailadres,
NULL commentaar,
NULL kortingsartikel,
NULL verstuurmethode,
NULL emailadres2
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 = 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 = 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,
website,
standaardadres,
adrestype,
bedrijfsnaam,
tav,
adresregel1,
adresregel2,
postcode,
plaats,
land,
telefoon,
fax,
btwnr,
kvknummer,
emailadres,
incasso,
incassocode,
machtigingskenmerk,
eersteincasso,
ondertekeningsdatum,
standaardbank,
tenaamstelling,
rekeningnummer,
iban,
biccode,
nationalebankid,
banknaam,
bankadres,
bankadresnummer,
bankpostcode,
bankplaats,
bankstaat,
referentie,
bankland,
vervaldagen,
ebilling,
ebillingemailadres,
grootboekrekening,
kredietlimiet,
kredietbeheerder,
geblokkeerd,
gebruiksrecht,
segmentcode,
aanmanen,
aanmaningsemailadres,
commentaar,
kortingsartikel,
verstuurmethode,
emailadres2
)
AS
SELECT cmdnr.prs_kenmerklink_waarde code,
b.prs_bedrijf_naam naam,
NULL website,
NULL standaardadres,
NULL adrestype,
b.prs_bedrijf_naam bedrijfsnaam,
NULL tav,
b.prs_bedrijf_bezoek_adres addressline1,
NULL addressline2,
b.prs_bedrijf_bezoek_postcode postcode,
b.prs_bedrijf_bezoek_plaats plaats,
NULL land, --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 incasso,
NULL incassocode,
NULL machtigingskenmerk,
NULL eersteincasso,
NULL ondertekeningsdatum,
NULL standaardbank,
NULL tenaamstelling,
NULL rekeningnummer,
NULL iban,
NULL biccode,
NULL nationalebankid,
NULL banknaam,
NULL bankadres,
NULL bankadresnummer,
NULL bankpostcode,
NULL bankplaats,
NULL bankstaat,
NULL referentie,
NULL bankland,
NULL vervaldagen,
NULL ebilling,
NULL ebillingemailadres,
NULL grootboekrekening,
NULL kredietlimiet,
NULL kredietbeheerder,
NULL geblokkeerd,
NULL gebruiksrecht,
NULL segmentcode,
NULL aanmanen,
NULL aanmaningsemailadres,
NULL commentaar,
NULL kortingsartikel,
NULL verstuurmethode,
NULL emailadres2
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
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 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 ('01122022', '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 1 = 0 -- TODO:Nog geen facturatie van reserveringen uit Facilitor!
AND 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 ('MLDACP', v.mld_melding_key) datum,
v.mndnet,
fac.gettrackinguserkey ('MLDAFM', v.mld_melding_key) vrijgever -- Vrijgever is de MLDAFM-user
--TO_NUMBER (NULL) vrijgave_door,
--fac.gettrackingdate ('MLDAFM', 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 ('MLDACP', v.mld_melding_key) datum,
v.mndnet,
fac.gettrackinguserkey ('MLDAFM', v.mld_melding_key) vrijgever -- Vrijgever is de MLDAFM-user
--TO_NUMBER (NULL) vrijgave_door,
--fac.gettrackingdate ('MLDAFM', 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 ('MLDACP', v.mld_melding_key) datum,
v.mndnet,
fac.gettrackinguserkey ('MLDAFM', v.mld_melding_key) vrijgever, -- Vrijgever is de MLDAFR-user
TO_NUMBER (NULL) vrijgave_door,
fac.gettrackingdate ('MLDAFM', 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 ('MLDACP', v.mld_melding_key) datum,
v.mndnet,
fac.gettrackinguserkey ('MLDAFM', v.mld_melding_key) vrijgever, -- Vrijgever is de MLDAFM-user
TO_NUMBER (NULL) vrijgave_door,
fac.gettrackingdate ('MLDAFM', 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 ter controle facturatie van contracten per maand (of niet).
CREATE OR REPLACE VIEW BSSC_V_RAP_CNT_FIN_MND
AS
WITH lopendeperiode
AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '202301') maand
FROM fin_verkoopfactuur)
SELECT x.maand,
x.debiteurnaam,
x.contractsoort_key,
x.contractsoort,
x.cnt_contract_key,
x.contractnummer,
x.cnt_contract_looptijd_van,
x.cnt_contract_looptijd_tot,
f.fin_verkoopfactuur_id,
f.mndnet totaal
FROM (SELECT TO_CHAR (p.maand, 'yyyymm') maand,
b.prs_bedrijf_naam debiteurnaam,
cd.ins_discipline_key contractsoort_key,
cd.ins_discipline_omschrijving contractsoort,
c.cnt_contract_key,
c.cnt_contract_nummer_intern || '/' || COALESCE (c.cnt_contract_versie, '0') contractnummer,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot
FROM ( SELECT ADD_MONTHS (fac.safe_to_date ('01-01-2023', 'dd-mm-yyyy'), LEVEL - 1) maand
FROM lopendeperiode lp
WHERE ADD_MONTHS (fac.safe_to_date ('01-01-2023', 'dd-mm-yyyy'), LEVEL - 1) BETWEEN fac.safe_to_date ('20230101', 'yyyymmdd')
AND fac.safe_to_date (lp.maand || '01', 'yyyymmdd')
CONNECT BY LEVEL <= 240) p,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
cnt_discipline cd
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (2001, 2003, 2004, 2005)
AND c.cnt_contract_status = 0 -- Definitief
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (p.maand) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > p.maand) x -- Tot-datum > begin te factureren maand
LEFT JOIN
( SELECT maand, refkey, refid, beschrijving, fin_verkoopfactuur_id, SUM (mndnet) mndnet
FROM bssc_v_fact_actual
GROUP BY maand, refkey, refid, beschrijving, fin_verkoopfactuur_id
UNION ALL
SELECT maand, refkey, refid, beschrijving, fin_verkoopfactuur_id, SUM (mndnet) mndnet
FROM bssc_v_fact_frozen
GROUP BY maand, refkey, refid, beschrijving, fin_verkoopfactuur_id) f
ON x.maand = f.maand AND x.cnt_contract_key = f.refkey
WHERE f.mndnet != 0
;
-- Rapportage tbv. interne facturatie van CMD aan CHV (betaald door CHV aan CMD)!
CREATE OR REPLACE VIEW BSSC_V_RAP_CMD2CHV
(
maand,
debiteurnaam,
factuurnummer,
vvo,
huur,
verv_toeslag,
maand_tarief,
cmd_fee,
ict,
facilitair,
service,
schoonmaak,
koffie,
duty,
forum
)
AS
SELECT maand,
prs_debiteur_naam,
'*CONCEPT / ' || refid factuurnummer,
vvo,
huur,
verv_toeslag,
CASE
WHEN vvo = 0
THEN
TO_NUMBER (NULL)
ELSE
ROUND ((huur + verv_toeslag) / vvo, 2)
END
maand_tarief,
CASE
WHEN prs_bedrijf_key IN (16781, 16843) -- Accenture B.V./Incompany Real Estate Services B.V.
THEN
ROUND ((huur + verv_toeslag) / 3, 2)
WHEN vvo = 0
THEN
TO_NUMBER (NULL)
ELSE
ROUND (DECODE (SIGN ((((huur + verv_toeslag) / vvo) - (73.33 / 12)) * vvo),
-1, 0,
(((huur + verv_toeslag) / vvo) - (73.33 / 12)) * vvo), 2)
END
cmd_fee,
ict,
facilitair,
service,
schoonmaak,
koffie,
duty,
forum
FROM ( SELECT maand, prs_bedrijf_key, prs_debiteur_naam, refid,
SUM (vvo) vvo,
SUM (huur) huur,
SUM (verv_toeslag) verv_toeslag,
SUM (ict) ict,
SUM (facilitair) facilitair,
SUM (service) service,
SUM (schoonmaak) schoonmaak,
SUM (koffie) koffie,
SUM (duty) duty,
SUM (forum) forum
FROM ( SELECT maand, prs_bedrijf_key, prs_debiteur_naam, refid,
SUM (DECODE (alg_plaatsaanduiding, NULL, 0, ROUND (COALESCE (aantal * vvo_toeslag, 0), 2))) vvo,
SUM (mndnet) huur,
0 verv_toeslag,
0 ict,
0 facilitair,
0 service,
0 schoonmaak,
0 koffie,
0 duty,
0 forum
FROM bssc_v_fact_actual
WHERE regel_key = 962 -- Huur
GROUP BY maand, prs_bedrijf_key, prs_debiteur_naam, refid
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, refid,
0 vvo, 0 huur, mndnet verv_toeslag, 0 ict, 0 facilitair, 0 service, 0 schoonmaak, 0 koffie, 0 duty, 0 forum
FROM bssc_v_fact_actual
WHERE regel_key = 642 -- Vervangende toeslag
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, refid,
0 vvo, 0 huur, 0 verv_toeslag, mndnet ict, 0 facilitair, 0 service, 0 schoonmaak, 0 koffie, 0 duty, 0 forum
FROM bssc_v_fact_actual
WHERE regel_key = 963 -- ICT
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, refid,
0 vvo, 0 huur, 0 verv_toeslag, 0 ict, mndnet facilitair, 0 service, 0 schoonmaak, 0 koffie, 0 duty, 0 forum
FROM bssc_v_fact_actual
WHERE regel_key = 964 -- Facilitaire kosten
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, refid,
0 vvo, 0 huur, 0 verv_toeslag, 0 ict, 0 facilitair, mndnet service, 0 schoonmaak, 0 koffie, 0 duty, 0 forum
FROM bssc_v_fact_actual
WHERE regel_key = 965 -- Servicekosten
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, refid,
0 vvo, 0 huur, 0 verv_toeslag, 0 ict, 0 facilitair, 0 service, mndnet schoonmaak, 0 koffie, 0 duty, 0 forum
FROM bssc_v_fact_actual
WHERE regel_key = 966 -- Schoonmaak
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, refid,
0 vvo, 0 huur, 0 verv_toeslag, 0 ict, 0 facilitair, 0 service, 0 schoonmaak, mndnet koffie, 0 duty, 0 forum
FROM bssc_v_fact_actual
WHERE regel_key = 982 -- Koffieautomaten
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, refid,
0 vvo, 0 huur, 0 verv_toeslag, 0 ict, 0 facilitair, 0 service, 0 schoonmaak, 0 koffie, mndnet duty, 0 forum
FROM bssc_v_fact_actual
WHERE regel_key = 983) -- Duty manager
GROUP BY maand, prs_bedrijf_key, prs_debiteur_naam, refid)
UNION ALL
SELECT maand,
prs_debiteur_naam,
fin_verkoopfactuur_id factuurnummer,
huur,
verv_toeslag,
vvo,
CASE
WHEN vvo = 0
THEN
TO_NUMBER (NULL)
ELSE
ROUND ((huur + verv_toeslag) / vvo, 2)
END
maand_tarief,
CASE
WHEN prs_bedrijf_key IN (16781, 16843) -- Accenture B.V./Incompany Real Estate Services B.V.
THEN
ROUND ((huur + verv_toeslag) / 3, 2)
WHEN vvo = 0
THEN
TO_NUMBER (NULL)
ELSE
ROUND (DECODE (SIGN ((((huur + verv_toeslag) / vvo) - (73.33 / 12)) * vvo),
-1, 0,
(((huur + verv_toeslag) / vvo) - (73.33 / 12)) * vvo), 2)
END
cmd_fee,
ict,
facilitair,
service,
schoonmaak,
koffie,
duty,
forum
FROM ( SELECT maand, prs_bedrijf_key, prs_debiteur_naam, fin_verkoopfactuur_id,
SUM (huur) huur,
SUM (verv_toeslag) verv_toeslag,
SUM (vvo) vvo,
SUM (ict) ict,
SUM (facilitair) facilitair,
SUM (service) service,
SUM (schoonmaak) schoonmaak,
SUM (koffie) koffie,
SUM (duty) duty,
SUM (forum) forum
FROM ( SELECT maand, prs_bedrijf_key, prs_debiteur_naam, fin_verkoopfactuur_id,
SUM (DECODE (alg_plaatsaanduiding, NULL, 0, ROUND (COALESCE (aantal * vvo_toeslag, 0), 2))) vvo,
SUM (mndnet) huur,
0 verv_toeslag,
0 ict,
0 facilitair,
0 service,
0 schoonmaak,
0 koffie,
0 duty,
0 forum
FROM bssc_v_fact_frozen
WHERE regel_key = 962 -- Huur
GROUP BY maand, prs_bedrijf_key, prs_debiteur_naam, fin_verkoopfactuur_id
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, fin_verkoopfactuur_id,
0 vvo, 0 huur, mndnet verv_toeslag, 0 ict, 0 facilitair, 0 service, 0 schoonmaak, 0 koffie, 0 duty, 0 forum
FROM bssc_v_fact_frozen
WHERE regel_key = 642 -- Vervangende toeslag
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, fin_verkoopfactuur_id,
0 vvo, 0 huur, 0 verv_toeslag, mndnet ict, 0 facilitair, 0 service, 0 schoonmaak, 0 koffie, 0 duty, 0 forum
FROM bssc_v_fact_frozen
WHERE regel_key = 963 -- ICT
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, fin_verkoopfactuur_id,
0 vvo, 0 huur, 0 verv_toeslag, 0 ict, mndnet facilitair, 0 service, 0 schoonmaak, 0 koffie, 0 duty, 0 forum
FROM bssc_v_fact_frozen
WHERE regel_key = 964 -- Facilitaire kosten
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, fin_verkoopfactuur_id,
0 vvo, 0 huur, 0 verv_toeslag, 0 ict, 0 facilitair, mndnet service, 0 schoonmaak, 0 koffie, 0 duty, 0 forum
FROM bssc_v_fact_frozen
WHERE regel_key = 965 -- Servicekosten
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, fin_verkoopfactuur_id,
0 vvo, 0 huur, 0 verv_toeslag, 0 ict, 0 facilitair, 0 service, mndnet schoonmaak, 0 koffie, 0 duty, 0 forum
FROM bssc_v_fact_frozen
WHERE regel_key = 966 -- Schoonmaak
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, fin_verkoopfactuur_id,
0 vvo, 0 huur, 0 verv_toeslag, 0 ict, 0 facilitair, 0 service, 0 schoonmaak, mndnet koffie, 0 duty, 0 forum
FROM bssc_v_fact_frozen
WHERE regel_key = 982 -- Koffieautomaten
UNION ALL
SELECT maand, prs_bedrijf_key, prs_debiteur_naam, fin_verkoopfactuur_id,
0 vvo, 0 huur, 0 verv_toeslag, 0 ict, 0 facilitair, 0 service, 0 schoonmaak, 0 koffie, mndnet duty, 0 forum
FROM bssc_v_fact_frozen
WHERE regel_key = 983) -- Duty manager
GROUP BY maand, prs_bedrijf_key, 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, 1001) -- 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