Files
Customer/YFTH/yfth.sql
Arthur Egberink cf1ff224bf YFTH#66306: Ondersteuning her-implementatie Thales
svn path=/Customer/trunk/; revision=51309
2021-05-06 18:01:16 +00:00

2643 lines
117 KiB
MySQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific db-configuration for KFNS.
DEFINE thisfile = 'YFTH.SQL'
DEFINE dbuser = '^YFTH'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
-- Personen import
CREATE OR REPLACE PROCEDURE yfth_import_perslid (p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR (255);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (200);
v_errorhint VARCHAR2 (200);
BEGIN
-- Verwijder lege records
DELETE fac_imp_file WHERE SUBSTR(fac_imp_file_line, 1,7) = ';;;;;;;' AND fac_import_key = p_import_key;
v_seq_of_columns := '1;2;3;4;0;0;5;7;8;10;'
-- v_alg_locatie_code 1
-- v_alg_gebouw_code 2
-- v_alg_verdieping_volgnr 3
-- v_alg_ruimte_nr 4
-- v_prs_werkplek_volgnr 5
-- v_prs_werkplek_omschrijving 6
-- v_prs_afdeling_naam 7
-- v_prs_perslid_naam 8
-- v_prs_perslid_tussenvoegsel 9
-- v_prs_perslid_voornaam 10
|| '9;0;0;0;0;12;13;14;0;15;'
-- v_prs_perslid_voorletters 11
-- v_prs_perslid_partner_naam 12
-- v_prs_perslid_partner_tussenv 13
-- v_prs_naamgebruik_code 14 0 (default) perslid_naam en perslid_tussenvoegsel worden gebruikt
-- 1 personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
-- 2 personen die de geboortenaam van de partner willen gebruiken
-- 3 personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
-- v_prs_perslid_geslacht 15 Gebruik 'man', 'm' of 1 voor man en 'vrouw', 'v' of 0 voor vrouw case insensitive geen default
-- v_prs_perslid_telefoonnr 16
-- v_prs_perslid_mobiel 17
-- v_prs_perslid_email 18
-- v_prs_perslid_dienstverband 19
-- v_prs_perslid_nr 20
|| '5;16;0;0;0;0;6;0;0;0;'
-- v_prs_srtperslid_omschrijving 21
-- v_prs_perslid_oslogin 22
-- v_prs_perslid_wachtwoord 23
-- v_prs_perslid_titel 24
-- v_prs_perslid_apikey 25
-- v_dummy 26
-- v_prs_kenmerk1 27
-- v_prs_kenmerk2 28
-- v_prs_kenmerk3 29
-- v_prs_kenmerk4 30
|| '0;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0';
-- Test bestand is aangeleverd met tabs ipv ;
UPDATE fac_imp_file SET fac_imp_file_line = REPLACE(fac_imp_file_line, CHR(9), ';') WHERE fac_import_key = p_import_key;
prs.import_perslid(p_import_key, v_seq_of_columns, 'VESTIGING;GEBOUWCODE;BOUWLAAGVOLGNNR;RUIMTENUMMERWERKPLEKVOLGNR;AFDELINGSCODE;AFDELINGSNAAM;PERSOONACHTERNAAM;TUSSENVOEGSEL;VOORLETTERS;VOORNAAM;TITELAANHEF;TELEFOONNUMMER;MOBIEL;EMAIL;PERSONEELSNUMMER;LOGINNAAM%');
-- We maken een platte organistiestructuur aan.
DELETE fac_imp_organisatie;
INSERT into fac_imp_organisatie (prs_bedrijf_naam, prs_afdeling_naam, prs_afdeling_omschrijving)
SELECT DISTINCT 'Thales', prs_afdeling_naam, prs_kenmerk1 FROM fac_imp_perslid;
DELETE fac_imp_perslid WHERE prs_perslid_oslogin = '-----';
-- We krijgen geen functie mee. Daarom wordt iedereen een Thales medewerker
-- De locatiecode in de import wijkt af van de locatiecode in Facilitor
-- De Login maken we alvast een upper van. Dan kunnen we straks makkelijker vergelijken bij de delete
-- Niet alle afdelingen hebben een afdeling omschrijving. Daarom vullen we daar een eigen omschrijving in.
UPDATE fac_imp_perslid
SET prs_srtperslid_omschrijving = 'Thales medewerker',
alg_locatie_code = DECODE(alg_locatie_code, 'Hengelo', 'HGL', NULL),
prs_perslid_oslogin = UPPER(prs_perslid_oslogin),
prs_kenmerk1 = COALESCE(prs_kenmerk1, 'Afdeling ' || prs_afdeling_naam);
-- Sommige mensen hebben een dubbele of nog erger 3-dubbele logincode in het veld OSLOGIN staan.
-- deze gaan we beperken tot de eerste logincode.
UPDATE fac_imp_perslid
SET prs_perslid_oslogin =
SUBSTR (prs_perslid_oslogin,
1,
INSTR (prs_perslid_oslogin, ',') - 1)
WHERE prs_perslid_oslogin LIKE '%,%';
END yfth_import_perslid;
/
CREATE OR REPLACE PROCEDURE yfth_update_perslid (p_import_key IN NUMBER)
IS
CURSOR c_del IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full, p.prs_perslid_oslogin
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf, prs_afdeling a
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = 521 -- Thales
AND p.prs_perslid_oslogin = i.prs_perslid_oslogin(+)
AND pf.prs_perslid_key = p.prs_perslid_key
AND (SUBSTR(p.prs_perslid_oslogin,1,1) <> '_' OR p.prs_perslid_oslogin IS NULL)
AND i.prs_perslid_oslogin IS NULL
AND p.prs_perslid_verwijder IS NULL;
v_bedrijf_key NUMBER (10);
v_afdeling_key1 NUMBER (10);
v_afdeling_key2 NUMBER (10);
v_kostenplaats_key NUMBER (10);
v_kpn_nr_prev VARCHAR2 (20);
v_count_mandaat NUMBER (10);
v_count_man_prs NUMBER (10) := 0;
v_aanduiding VARCHAR2 (100);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
v_count NUMBER;
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
SELECT COUNT(*)
INTO v_count
FROM fac_imp_perslid
WHERE fac_import_key = p_import_key;
IF v_count > 2000
THEN
FOR rec IN c_del LOOP
BEGIN
v_errorhint := 'Persoon verwijderen: ' || rec.prs_perslid_naam_full || '-' || rec.prs_perslid_nr || '-' || rec.prs_perslid_oslogin;
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END;
END LOOP;
END IF;
fac_update_organisatie (p_import_key);
prs.update_perslid (p_import_key, 'LOGIN', NULL);
-- Zorg ervoor dat er geen persoonsgegevens achterblijven in de import tabel.
DELETE fac_imp_perslid;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
END yfth_update_perslid;
/
CREATE OR REPLACE VIEW yfth_v_rap_mijn_wp_reservering
AS
SELECT rrr.res_rsv_ruimte_host_key,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
rg.alg_locatie_omschrijving,
rg.alg_gebouw_omschrijving,
rg.alg_verdieping_omschrijving,
rg.alg_ruimte_nr,
rd.res_deel_omschrijving,
rg.alg_ruimte_aanduiding,
rrr.res_rsv_ruimte_key
FROM res_rsv_ruimte rrr,
res_rsv_deel rrd,
res_deel rd,
alg_v_ruimte_gegevens rg
WHERE rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
AND rrd.res_deel_key = rd.res_deel_key
AND rrr.alg_ruimte_key = rg.alg_ruimte_key
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND rrd.res_rsv_deel_verwijder IS NULL
AND rrr.res_rsv_ruimte_van > SYSDATE;
-- Eigen view om fat_client werkplekken een eigen status mee te geven.
-- Normale werkplekken catalogus 261 hebben groene kleur,
-- Zit/Sta bureaus komen uit catalogus 302 en hebben een blauwe kleur
-- Fat clients hebben een kenmerk bij het object en hebben een oranje kleur
-- overige bureaus hebben aangepaste kleur (5)
CREATE OR REPLACE VIEW yfth_v_thema_deel_res_datum
(
fclt_f_datum,
ins_deel_key,
min_van,
max_tot,
waarde1,
waarde,
waarde3
)
AS
WITH
datums
AS
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 42)
SELECT datum
fclt_f_datum,
ins_deel_key,
MIN (res_rsv_deel_van)
min_van,
MAX (res_rsv_deel_tot)
max_tot,
CASE WHEN MAX (res_rsv_deel_tot) IS NULL THEN DECODE(ins_kenmerkdeel_waarde, 1, 4, DECODE (res_discipline_key, 261, 0, 302, 6, 5)) ELSE 3 -- hele dag
END
waarde1,
CASE
WHEN MAX (res_rsv_deel_tot) IS NULL THEN DECODE(ins_kenmerkdeel_waarde, 1, 4, DECODE (res_discipline_key, 261, 0, 302, 6, 5))
WHEN TO_CHAR (MAX (res_rsv_deel_tot), 'HH24') <= 13 THEN 1 -- ochtend
WHEN TO_CHAR (MIN (res_rsv_deel_van), 'HH24') >= 12 THEN 2 -- middag
ELSE 3 -- hele dag
END
waarde,
COUNT (res_rsv_deel_tot) -- aantal reservering deze dag
waarde3
FROM (SELECT datums.datum,
res_ins_deel_key ins_deel_key,
res_rsv_deel_van,
res_rsv_deel_tot,
ins_kenmerkdeel_waarde,
res_discipline_key
FROM res_v_aanwezigdeel r,
ins_deel d,
(SELECT ins_deel_key, ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel
WHERE ins_kenmerkdeel_verwijder IS NULL
AND ins_kenmerk_key = 1) kd,
datums,
(SELECT datum,
res_deel_key,
res_rsv_deel_van,
res_rsv_deel_tot
FROM datums, res_v_aanwezigrsv_deel rrd
WHERE res_rsv_deel_van > TRUNC (SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
AND datum >= TRUNC (res_rsv_deel_van)
AND datum < TRUNC (res_rsv_deel_tot) + 1)
blokkerend -- vandaag en nog niet afgelopen
WHERE r.res_deel_key = blokkerend.res_deel_key(+)
AND datums.datum = blokkerend.datum(+)
AND d.ins_deel_key = kd.ins_deel_key (+)
AND ( r.res_deel_vervaldatum IS NULL
OR r.res_deel_vervaldatum > datums.datum)
AND d.ins_deel_key = r.res_ins_deel_key)
GROUP BY datum, ins_deel_key, ins_kenmerkdeel_waarde, res_discipline_key
ORDER BY datum, ins_deel_key;
-- View tbv koppeling met Oberon voor de Connect app
CREATE OR REPLACE VIEW yfth_v_rap_perslidwerkplek
AS
SELECT LOWER (p.prs_perslid_email) email,
alg_locatie_omschrijving locatie,
alg_gebouw_upper gebouw,
alg_verdieping_code verdieping,
DECODE (SUBSTR (res_deel_omschrijving, 1, 3),
'HGL', SUBSTR (res_deel_omschrijving,
INSTR (res_deel_omschrijving,
'.',
1,
2)
+ 1,
INSTR (res_deel_omschrijving,
'.',
1,
3)
- ( INSTR (res_deel_omschrijving,
'.',
1,
2)
+ 1)),
alg_ruimte_nr) ruimte,
DECODE (SUBSTR (res_deel_omschrijving, 1, 3),
'HGL', SUBSTR (res_deel_omschrijving,
INSTR (res_deel_omschrijving,
'.',
1,
3)
+ 1),
res_deel_omschrijving) werkplek,
res_rsv_ruimte_van van,
res_rsv_ruimte_tot tot
FROM res_rsv_deel rrd,
res_deel rd,
res_rsv_ruimte rrr,
alg_v_ruimte_gegevens rg,
prs_perslid p
WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrd.res_deel_key = rd.res_deel_key
AND rrr.alg_ruimte_key = rg.alg_ruimte_key
AND TRUNC (rrr.res_rsv_ruimte_van) = TRUNC (SYSDATE)
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND rrr.res_activiteit_key = 30;
-- aangepaste sync view voor Hengelo. Voor Huizen nemen we gewoon het ruimtenummer over.
CREATE OR REPLACE VIEW yfth_v_sync_alg_ruimte
(
alg_ruimte_key,
alg_verdieping_key,
cadlabel
)
AS
SELECT rg.alg_ruimte_key,
rg.alg_verdieping_key,
DECODE (
alg_locatie_code,
'HZN', 'HU.' || rg.alg_ruimte_nr,
rg.alg_gebouw_upper || '.' || rg.alg_verdieping_volgnr || '-' || rg.alg_ruimte_nr) cadlabel
FROM alg_v_ruimte_gegevens rg;
-- View voor sleepbare thema om afdeling aan ruimte te koppelen
CREATE OR REPLACE VIEW yfth_v_thema_ruimteafd
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT x.alg_ruimte_key,
DECODE (
COALESCE (x.prs_verhuurbaar, 0),
0, 'Niet verhuurbaar',
DECODE (y.aantal,
NULL, '[Leegstand]',
1, SUBSTR (y.sp, 1, 60),
'[Meerdere afdelingen]')),
DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL)
FROM (SELECT r.alg_ruimte_key, prs_verhuurbaar
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key) x
LEFT JOIN
( SELECT ra.alg_ruimte_key,
MIN (a.prs_afdeling_naam1) sp,
MIN (a.prs_afdeling_key) sp_key,
COUNT (ra.prs_afdeling_key) aantal
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
GROUP BY ra.alg_ruimte_key) y
ON x.alg_ruimte_key = y.alg_ruimte_key
UNION ALL
SELECT NULL, SUBSTR (a.prs_afdeling_naam1, 1, 60), a.prs_afdeling_key
FROM prs_v_aanwezigafdeling a
WHERE NOT EXISTS
(SELECT ra.prs_afdeling_key
FROM prs_v_aanwezigruimteafdeling ra
WHERE ra.prs_afdeling_key = a.prs_afdeling_key);
CREATE OR REPLACE TRIGGER yfth_t_thema_ruimteafd_i_iu
INSTEAD OF INSERT OR UPDATE
ON yfth_v_thema_ruimteafd
BEGIN
DECLARE
verhuurbaar NUMBER;
BEGIN
SELECT COALESCE (prs_verhuurbaar, 0)
INTO verhuurbaar
FROM alg_srtruimte sr, alg_ruimte r
WHERE sr.alg_srtruimte_key = r.alg_srtruimte_key
AND r.alg_ruimte_key = :new.alg_ruimte_key;
IF verhuurbaar = 1
THEN
IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)!
THEN
DELETE FROM prs_ruimteafdeling
WHERE alg_ruimte_key = :new.alg_ruimte_key
AND prs_afdeling_key <> :new.waarde_key;
END IF;
BEGIN
IF :new.waarde_key <> -1
THEN
INSERT INTO prs_ruimteafdeling (alg_ruimte_key,
prs_afdeling_key)
VALUES (:new.alg_ruimte_key, :new.waarde_key);
END IF;
EXCEPTION
WHEN DUP_VAL_ON_INDEX -- was al aanwezig
THEN
NULL;
END;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
END;
/
-- View om overzicht van afdeling per verdieping te geven
CREATE OR REPLACE VIEW yfth_v_rap_afdeling_wp_opp
AS
SELECT r.alg_verdieping_key vkey,
r.alg_ruimte_key highlight,
r.alg_ruimte_nr,
v.alg_verdieping_code,
g.alg_gebouw_code,
l.alg_locatie_code,
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
r.alg_ruimte_bruto_vloeropp,
wp.aantal,
r.alg_ruimte_bruto_vloeropp * ra.prs_ruimteafdeling_bezetting / 100 opp_gew,
wp.aantal * ra.prs_ruimteafdeling_bezetting / 100 aantal_gew,
ra.prs_ruimteafdeling_bezetting
FROM prs_afdeling a,
prs_ruimteafdeling ra,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
( SELECT alg_ruimte_key, COUNT (*) aantal
FROM ins_v_deel_gegevens
WHERE ins_discipline_omschrijving = 'Werkplek'
GROUP BY alg_ruimte_key) wp
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 521 -- Thales
AND ra.alg_ruimte_key = wp.alg_ruimte_key(+)
AND ra.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND ra.prs_afdeling_key = a.prs_afdeling_key;
--
-- Reverse billing zoals bij Schiphol
--
CREATE OR REPLACE VIEW yfth_v_rap_actual_cost_tot
(
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
maand,
broc_flag,
fclt_f_leverancier,
contractnr,
beschrijving,
inkoopordernr,
aantal,
kosten
)
AS -- Vaste contractkosten over de ACTUAL termijn
SELECT c.prs_afdeling_key,
TO_CHAR (SYSDATE, 'yyyy-mm') maand, -- Deze maand volgende maand factureren (achteraf)
'C' broc_flag,
c.prs_bedrijf_naam bedrijf,
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen vaste kosten
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
0 aantal,
ROUND (
DECODE (COALESCE (c.cnt_contract_termijnkosten, 0),
0, c.cnt_contract_kosten / 12,
c.cnt_contract_termijnkosten),
2)
+ fac.safe_to_number (COALESCE (ce.cnt_kenmerkcontract_waarde, '0'))
+ fac.safe_to_number (COALESCE (bm.cnt_kenmerkcontract_waarde, '0'))
kosten -- Wat als looptijd < jaar?
FROM (SELECT b.prs_bedrijf_key,
b.prs_bedrijf_naam,
pcp.prs_afdeling_key,
pcp.prs_perslid_key,
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
cp_aanhef,
DECODE (
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcp.prs_perslid_tussenvoegsel,
NULL, NULL,
pcp.prs_perslid_tussenvoegsel || ' ')
|| pcp.prs_perslid_naam
cp_naam,
pcp.prs_perslid_email cp_email,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
c.cnt_contract_kosten,
c.cnt_contract_termijnkosten
FROM cnt_v_aanwezigcontract c,
prs_bedrijf b,
cnt_contract mc,
prs_contactpersoon cp,
prs_perslid pcp
WHERE c.ins_discipline_key = 41 -- Vaste contracten
--AND c.cnt_contract_status = 0 -- NIET Gesloten
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (LAST_DAY (SYSDATE))
AND c.cnt_contract_looptijd_tot >= TRUNC (LAST_DAY (SYSDATE))
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)) c
LEFT JOIN cnt_kenmerkcontract ce
ON ce.cnt_kenmerk_key = -1 -- Credit/extra kosten
AND c.cnt_contract_key = ce.cnt_contract_key
LEFT JOIN cnt_kenmerkcontract bm
ON bm.cnt_kenmerk_key = -1 -- Bonus/malus
AND c.cnt_contract_key = bm.cnt_contract_key
UNION ALL -- Bestelopdrachtkosten
SELECT pcp.prs_afdeling_key,
TO_CHAR (SYSDATE, 'yyyy-mm') maand, -- Deze maand volgende maand factureren (achteraf)
'B' broc_flag,
b.prs_bedrijf_naam bedrijf,
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
COUNT (DISTINCT bo.bes_bestelopdr_key) aantal,
SUM ((boi.bes_bestelopdr_item_aantal * COALESCE (boi.bes_bestelopdr_item_inkprijs, boi.bes_bestelopdr_item_prijs)) +
COALESCE (bo.bes_bestelopdr_korting, 0) +
COALESCE (bo.bes_bestelopdr_levkosten, 0))
kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
prs_bedrijf b,
cnt_v_aanwezigcontract c,
cnt_contract mc,
prs_contactpersoon cp,
prs_perslid pcp
WHERE bo.bes_bestelopdr_status = 6 -- Bestelopdracht Geleverd (en nog niet Verwerkt)
AND fac.gettrackingdate ('BES2AF', bo.bes_bestelopdr_key) > TRUNC (SYSDATE, 'mm') -- Actual = Deze maand Geleverd (en nog niet Verwerkt)
--fac.gettrackingdate ('BESOTV', bbi.bes_bestelling_key) > TRUNC (SYSDATE, 'mm') -- Actual = Deze maand Ontvangen (en nog niet Verwerkt?)
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND c.ins_discipline_key = 61 -- Variabele contracten
--AND c.cnt_contract_status = 0 -- NIET Gesloten
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (LAST_DAY (SYSDATE))
AND c.cnt_contract_looptijd_tot >= TRUNC (LAST_DAY (SYSDATE))
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE ins_discipline_key = 61 -- Variabele contracten
--AND cnt_contract_status = 0 -- NIET Gesloten
AND TRUNC (cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
AND cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
AND cnt_prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND cnt_contract_nummer_intern > c.cnt_contract_nummer_intern)
GROUP BY pcp.prs_afdeling_key,
TO_CHAR (SYSDATE, 'yyyy-mm'),
'B',
b.prs_bedrijf_naam,
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
c.cnt_contract_omschrijving,
c.cnt_contract_nummer
UNION ALL -- Reserveringskosten
SELECT x.prs_afdeling_key,
TO_CHAR (SYSDATE, 'yyyy-mm') maand, -- Deze maand volgende maand factureren (achteraf)
'R' broc_flag,
x.prs_bedrijf_naam bedrijf,
x.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
x.cnt_contract_omschrijving,
x.cnt_contract_nummer,
COUNT (DISTINCT x.res_rsv_ruimte_key) aantal,
SUM (COALESCE (verw_prijs, prijs, 0)) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM (SELECT rrr.res_rsv_ruimte_key,
b.prs_bedrijf_naam,
pcp.prs_afdeling_key,
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
rra.btw
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
(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_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_rsv_artikel_levering BETWEEN TRUNC (SYSDATE, 'mm') AND TRUNC (SYSDATE + 1) -- Actual = Deze maand Geleverd (en nog niet Verwerkt)
AND rra.res_artikel_key = ra.res_artikel_key) rra,
res_v_aanwezigdiscipline rd,
res_disc_params dp,
prs_bedrijf b,
cnt_v_aanwezigcontract c,
cnt_contract mc,
prs_contactpersoon cp,
prs_perslid pcp
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_discipline_key = rd.ins_discipline_key
AND rd.ins_discipline_key = dp.res_ins_discipline_key
AND dp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND c.ins_discipline_key = 61 -- Variabele contracten
--AND c.cnt_contract_status = 0 -- NIET Gesloten
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (LAST_DAY (SYSDATE))
AND c.cnt_contract_looptijd_tot >= TRUNC (LAST_DAY (SYSDATE))
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE ins_discipline_key = 61 -- Variabele contracten
--AND cnt_contract_status = 0 -- NIET Gesloten
AND TRUNC (cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
AND cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
AND cnt_prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND cnt_contract_nummer_intern > c.cnt_contract_nummer_intern)) x
GROUP BY x.prs_afdeling_key,
TO_CHAR (SYSDATE, 'yyyy-mm'),
'R',
x.prs_bedrijf_naam,
x.cnt_contract_nummer_intern,
x.cnt_contract_omschrijving,
x.cnt_contract_nummer
UNION ALL -- Variabele kosten uit ACTUAL opdrachten op variabele contracten
SELECT pcp.prs_afdeling_key,
TO_CHAR (SYSDATE, 'yyyy-mm') maand, -- Deze maand ORDAFR, volgende maand factureren (achteraf)
'O' broc_flag,
b.prs_bedrijf_naam,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
COUNT ( * ) aantal,
SUM (o.mld_opdr_kosten) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM mld_opdr o,
--fac_tracking t,
cnt_contract c,
cnt_contract mc,
prs_bedrijf b,
prs_contactpersoon cp,
prs_perslid pcp
WHERE o.mld_statusopdr_key = 9
--AND o.mld_opdr_key = t.fac_tracking_refkey
--AND t.fac_srtnotificatie_key = 76 -- ORDAFR
--AND t.fac_tracking_datum > TRUNC (SYSDATE, 'mm') -- Actual = deze maand Afgerond (en nog niet Verwerkt)
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) > TRUNC (SYSDATE, 'mm') -- Actual = Deze maand Afgerond (en nog niet Verwerkt)
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
(SELECT 1
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 41 -- Dispuut
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
AND o.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 61 -- Variabele contracten
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
GROUP BY pcp.prs_afdeling_key,
TO_CHAR (SYSDATE, 'yyyy-mm'),
'O',
b.prs_bedrijf_naam,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer;
-- Actual regels en basis voor oa. te exporteren/bevriezen regels op de 10e van
-- de maand; voor de output geldt:
-- Dat deze de actual vaste contractkosten toont (over afgelopen maand).
-- Dat deze de actual variabele bestelopdrachtkosten toont (voor 1e ORDAFR).
-- Dat deze de actual variabele reserveringskosten toont (over afgelopen maand).
-- Dat deze de actual variabele opdrachtkosten toont (voor 1e ORDAFR).
-- Dat deze tot de 10e van de huidige maand alleen nog door Yask wijzigbaar is.
CREATE OR REPLACE VIEW yfth_v_actual_fact -- Tbv. FACT_EXPORT!
(
prs_afdeling_key,
maand,
prs_bedrijf_key,
prs_bedrijf_naam,
cp_perslid_key,
cp_aanhef,
cp_naam,
cp_email,
cnt_contract_key,
contractnr,
beschrijving,
inkoopordernr,
cm_aanhef,
cm_naam,
bes_bestelopdr_key,
res_rsv_ruimte_key,
mld_opdr_key,
bro_id,
aantal,
kosten
)
AS
SELECT c.prs_afdeling_key, -- Vaste contractkosten over de ACTUAL termijn
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') maand, -- Afgelopen maand deze maand factureren (achteraf)
c.prs_bedrijf_key,
c.prs_bedrijf_naam,
c.prs_perslid_key,
c.cp_aanhef,
c.cp_naam,
c.cp_email,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer, -- Uit afgelopen maand lopend contract, anders geen vaste kosten
c.cm_aanhef,
c.cm_naam,
NULL bes_bestelopdr_key,
NULL res_rsv_ruimte_key,
NULL mld_opdr_key,
NULL bro_id,
0 aantal,
ROUND (
DECODE (COALESCE (c.cnt_contract_termijnkosten, 0),
0, c.cnt_contract_kosten / 12,
c.cnt_contract_termijnkosten),
2)
+ fac.safe_to_number (COALESCE (ce.cnt_kenmerkcontract_waarde, '0'))
+ fac.safe_to_number (COALESCE (bm.cnt_kenmerkcontract_waarde, '0'))
kosten -- Wat als looptijd < jaar?
FROM (SELECT b.prs_bedrijf_key,
b.prs_bedrijf_naam,
pcp.prs_afdeling_key,
pcp.prs_perslid_key,
DECODE (pcp.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
'')
cp_aanhef,
DECODE (
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcp.prs_perslid_tussenvoegsel,
NULL, NULL,
pcp.prs_perslid_tussenvoegsel || ' ')
|| pcp.prs_perslid_naam
cp_naam,
pcp.prs_perslid_email cp_email,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
c.cnt_contract_kosten,
c.cnt_contract_termijnkosten,
DECODE (pcm.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
'')
cm_aanhef,
DECODE (
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcm.prs_perslid_tussenvoegsel,
NULL, NULL,
pcm.prs_perslid_tussenvoegsel || ' ')
|| pcm.prs_perslid_naam
cm_naam
FROM cnt_v_aanwezigcontract c,
prs_bedrijf b,
cnt_contract mc,
prs_contactpersoon cp,
prs_perslid pcp,
prs_perslid pcm
WHERE c.ins_discipline_key = 41 -- Vaste contracten
--AND c.cnt_contract_status = 0 -- NIET Gesloten
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
AND c.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
AND NOT EXISTS -- Nog geen entry in eigen tabel
(SELECT 1
FROM fac_usrdata
WHERE fac_usrtab_key = 99999 -- VasteKostenMnd
AND fac_usrdata_code = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') || '/' || c.cnt_contract_key)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
AND c.prs_perslid_key_beh = pcm.prs_perslid_key) c
LEFT JOIN cnt_kenmerkcontract ce
ON ce.cnt_kenmerk_key = -1 -- Credit/extra kosten
AND c.cnt_contract_key = ce.cnt_contract_key
LEFT JOIN cnt_kenmerkcontract bm
ON bm.cnt_kenmerk_key = -1 -- Bonus/malus
AND c.cnt_contract_key = bm.cnt_contract_key
UNION ALL -- Bestelopdrachtkosten
SELECT pcp.prs_afdeling_key,
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') maand, -- Afgelopen maand deze maand factureren (achteraf)
b.prs_bedrijf_key,
b.prs_bedrijf_naam bedrijf,
pcp.prs_perslid_key,
DECODE (pcp.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
'')
cp_aanhef,
DECODE (
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcp.prs_perslid_tussenvoegsel,
NULL, NULL,
pcp.prs_perslid_tussenvoegsel || ' ')
|| pcp.prs_perslid_naam
cp_naam,
pcp.prs_perslid_email cp_email,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
DECODE (pcm.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
'')
cm_aanhef,
DECODE (
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcm.prs_perslid_tussenvoegsel,
NULL, NULL,
pcm.prs_perslid_tussenvoegsel || ' ')
|| pcm.prs_perslid_naam
cm_naam,
bo.bes_bestelopdr_key,
NULL res_rsv_ruimte_key,
NULL mld_opdr_key,
bo.bes_bestelopdr_id bro_id,
1 aantal,
SUM ((boi.bes_bestelopdr_item_aantal * COALESCE (boi.bes_bestelopdr_item_inkprijs, boi.bes_bestelopdr_item_prijs)) +
COALESCE (bo.bes_bestelopdr_korting, 0) +
COALESCE (bo.bes_bestelopdr_levkosten, 0))
kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bbi,
prs_bedrijf b,
cnt_v_aanwezigcontract c,
cnt_contract mc,
prs_contactpersoon cp,
prs_perslid pcp,
prs_perslid pcm
WHERE bo.bes_bestelopdr_status = 6 -- Bestelopdracht Geleverd (en nog niet Verwerkt)
AND fac.gettrackingdate ('BES2AF', bo.bes_bestelopdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm') -- Actual = Afgelopen maand Geleverd (en nog niet Verwerkt)
--fac.gettrackingdate ('BESOTV', bbi.bes_bestelling_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm') -- Actual = Afgelopen maand Ontvangen (en nog niet Verwerkt?)
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND c.ins_discipline_key = 61 -- Variabele contracten
--AND c.cnt_contract_status = 0 -- NIET Gesloten
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (LAST_DAY (SYSDATE))
AND c.cnt_contract_looptijd_tot >= TRUNC (LAST_DAY (SYSDATE))
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE ins_discipline_key = 61 -- Variabele contracten
--AND cnt_contract_status = 0 -- NIET Gesloten
AND TRUNC (cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
AND cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
AND cnt_prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND cnt_contract_nummer_intern > c.cnt_contract_nummer_intern)
GROUP BY pcp.prs_afdeling_key,
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'),
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
pcp.prs_perslid_key,
DECODE (pcp.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
''),
DECODE (
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcp.prs_perslid_tussenvoegsel,
NULL, NULL,
pcp.prs_perslid_tussenvoegsel || ' ')
|| pcp.prs_perslid_naam,
pcp.prs_perslid_email,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
DECODE (pcm.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
''),
DECODE (
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcm.prs_perslid_tussenvoegsel,
NULL, NULL,
pcm.prs_perslid_tussenvoegsel || ' ')
|| pcm.prs_perslid_naam,
bo.bes_bestelopdr_key,
NULL,
NULL,
bo.bes_bestelopdr_id,
1
UNION ALL -- Reserveringskosten
SELECT x.prs_afdeling_key,
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') maand, -- Afgelopen maand deze maand factureren (achteraf)
x.prs_bedrijf_key,
x.prs_bedrijf_naam bedrijf,
x.prs_perslid_key,
x.cp_aanhef,
x.cp_naam,
x.cp_email,
x.cnt_contract_key,
x.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
x.cnt_contract_omschrijving,
x.cnt_contract_nummer,
x.cm_aanhef,
x.cm_naam,
NULL bes_bestelopdr_key,
x.res_rsv_ruimte_key,
NULL mld_opdr_key,
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) bro_id,
1 aantal,
SUM (COALESCE (verw_prijs, prijs, 0)) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM (SELECT b.prs_bedrijf_key,
b.prs_bedrijf_naam,
pcp.prs_afdeling_key,
pcp.prs_perslid_key,
DECODE (pcp.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
'')
cp_aanhef,
DECODE (
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcp.prs_perslid_tussenvoegsel,
NULL, NULL,
pcp.prs_perslid_tussenvoegsel || ' ')
|| pcp.prs_perslid_naam
cp_naam,
pcp.prs_perslid_email cp_email,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
DECODE (pcm.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
'')
cm_aanhef,
DECODE (
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcm.prs_perslid_tussenvoegsel,
NULL, NULL,
pcm.prs_perslid_tussenvoegsel || ' ')
|| pcm.prs_perslid_naam
cm_naam,
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
--rra.res_rsv_artikel_aantal res_aantal,
--LTRIM (rra.res_artikel_omschrijving) || ' [' || TO_CHAR (res_rsv_artikel_levering, 'dd-mm-yyyy') || ']' res_voorziening,
--rra.res_rsv_artikel_levering reslev,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
rra.btw
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
(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_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_rsv_artikel_levering BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm') -- Actual = Afgelopen maand Geleverd (en nog niet Verwerkt)
AND rra.res_artikel_key = ra.res_artikel_key) rra,
res_v_aanwezigdiscipline rd,
res_disc_params dp,
prs_bedrijf b,
cnt_v_aanwezigcontract c,
cnt_contract mc,
prs_contactpersoon cp,
prs_perslid pcp,
prs_perslid pcm
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_discipline_key = rd.ins_discipline_key
AND rd.ins_discipline_key = dp.res_ins_discipline_key
AND dp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND c.ins_discipline_key = 61 -- Variabele contracten
--AND c.cnt_contract_status = 0 -- NIET Gesloten
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
AND c.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE ins_discipline_key = 61 -- Variabele contracten
--AND cnt_contract_status = 0 -- NIET Gesloten
AND TRUNC (cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
AND cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
AND cnt_prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND cnt_contract_nummer_intern > c.cnt_contract_nummer_intern)) x
GROUP BY x.prs_afdeling_key,
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'),
x.prs_bedrijf_key,
x.prs_bedrijf_naam,
x.prs_perslid_key,
x.cp_aanhef,
x.cp_naam,
x.cp_email,
x.cnt_contract_key,
x.cnt_contract_nummer_intern,
x.cnt_contract_omschrijving,
x.cnt_contract_nummer,
x.cm_aanhef,
x.cm_naam,
x.res_rsv_ruimte_key,
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr),
1
UNION ALL -- Variabele kosten uit ACTUAL opdrachten op variabele contracten
SELECT pcp.prs_afdeling_key,
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') maand, -- Voor 1e ORDAFR, deze maand factureren (achteraf)
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
pcp.prs_perslid_key,
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
cp_aanhef,
DECODE (
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcp.prs_perslid_tussenvoegsel,
NULL, NULL,
pcp.prs_perslid_tussenvoegsel || ' ')
|| pcp.prs_perslid_naam
cp_naam,
pcp.prs_perslid_email cp_email,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
cm_aanhef,
DECODE (
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcm.prs_perslid_tussenvoegsel,
NULL, NULL,
pcm.prs_perslid_tussenvoegsel || ' ')
|| pcm.prs_perslid_naam
cm_naam,
NULL bes_bestelopdr_key,
NULL res_rsv_ruimte_key,
o.mld_opdr_key,
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) bro_id,
1 aantal,
o.mld_opdr_kosten kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM mld_opdr o,
--fac_tracking t,
cnt_contract c,
prs_bedrijf b,
cnt_contract mc,
prs_contactpersoon cp,
prs_perslid pcp,
prs_perslid pcm
WHERE o.mld_statusopdr_key = 9
--AND o.mld_opdr_key = t.fac_tracking_refkey
--AND t.fac_srtnotificatie_key = 76 -- ORDAFR
--AND t.fac_tracking_datum > TO_DATE ('20190101', 'yyyymmdd')
--AND t.fac_tracking_datum < TRUNC (SYSDATE, 'mm')
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm') -- Actual = Deze maand Afgerond (en nog niet Verwerkt)
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
(SELECT 1
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 41 -- Dispuut
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
AND o.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 61 -- Variabele contracten
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
UNION ALL -- Variabele kosten uit ACTUAL opdrachten op variabele contracten-DISPUUT
SELECT pcp.prs_afdeling_key,
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') maand, -- Voor 1e ORDAFR, deze maand factureren (achteraf)
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
pcp.prs_perslid_key,
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
cp_aanhef,
DECODE (
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcp.prs_perslid_tussenvoegsel,
NULL, NULL,
pcp.prs_perslid_tussenvoegsel || ' ')
|| pcp.prs_perslid_naam
cp_naam,
pcp.prs_perslid_email cp_email,
c.cnt_contract_key,
COALESCE (c.cnt_contract_nummer_intern, '') || '/DISPUUT' cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
cm_aanhef,
DECODE (
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcm.prs_perslid_tussenvoegsel,
NULL, NULL,
pcm.prs_perslid_tussenvoegsel || ' ')
|| pcm.prs_perslid_naam
cm_naam,
NULL bes_bestelopdr_key,
NULL res_rsv_ruimte_key,
o.mld_opdr_key,
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) bro_id,
1 aantal,
o.mld_opdr_kosten kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM mld_opdr o,
cnt_contract c,
prs_bedrijf b,
cnt_contract mc,
prs_contactpersoon cp,
prs_perslid pcp,
prs_perslid pcm
WHERE o.mld_statusopdr_key = 9
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm') -- Actual = Deze maand Afgerond (en nog niet Verwerkt)
AND EXISTS -- Gemarkeerd als dispuut!
(SELECT 1
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 141 -- Dispuut
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
AND o.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 61 -- Variabele contracten
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
AND c.prs_perslid_key_beh = pcm.prs_perslid_key;
-- Te exporteren/bevriezen totalen over voorgaande maand (vast en variabel).
CREATE OR REPLACE VIEW yfth_v_rap_actual_fact_tot
(
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
maand,
broc_flag,
--hide_f_bedrijf_key,
fclt_f_leverancier,
--hide_f_contract_key,
contractnr,
beschrijving,
inkoopordernr,
aantal,
kosten
)
AS
SELECT prs_afdeling_key,
maand,
DECODE (bes_bestelopdr_key, NULL, DECODE (res_rsv_ruimte_key, NULL, DECODE (mld_opdr_key, NULL, 'C', 'O'), 'R'), 'B') broc_flag,
--prs_bedrijf_key,
prs_bedrijf_naam,
--cnt_contract_key,
contractnr,
beschrijving,
inkoopordernr,
SUM (aantal),
SUM (kosten)
FROM yfth_v_actual_fact
GROUP BY prs_afdeling_key,
maand,
DECODE (bes_bestelopdr_key, NULL, DECODE (res_rsv_ruimte_key, NULL, DECODE (mld_opdr_key, NULL, 'C', 'O'), 'R'), 'B'),
--prs_bedrijf_key,
prs_bedrijf_naam,
--cnt_contract_key,
contractnr,
beschrijving,
inkoopordernr;
-- Te exporteren/bevriezen variabele bestelopdrachtkosten over voorgaande maand (details).
CREATE OR REPLACE VIEW yfth_v_rap_actual_fact_bes
(
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
maand,
bes_bestelling_key,
bes_bestelopdr_key,
bes_id,
plaats,
ruimte,
catalogus,
besteldatum,
leverdatum,
bestellingstatus, -- Not used
bestelopdrachtstatus,
afhandeling, -- Not used
fclt_f_leverancier,
kosten,
fclt_f_contractnr,
fclt_f_inkoopordernr,
fclt_x_district
)
AS
SELECT v.prs_afdeling_key,
v.maand,
x.bes_bestelling_key,
v.bes_bestelopdr_key,
v.bro_id bes_id,
COALESCE (l.alg_locatie_code, ma.mld_adres_naam) plaatsaanduiding,
x.bes_bestelling_plaats ruimte,
x.ins_discipline_omschrijving,
bo.bes_bestelopdr_datum,
bo.bes_bestelopdr_leverdatum, -- Of uit FAC_TRACKING-tabel?
bs.bes_bestellingstatuses_omschr, -- Status van onderliggende artikelen/delen betrekken?
bos.bes_bestelopdrstatuses_omschr, -- Status van onderliggende artikelen/delen betrekken?
COALESCE (bo.bes_bestelopdr_opmerking, bo.bes_bestelopdr_delivery_opmerk) afhandeling,
v.prs_bedrijf_naam,
v.kosten,
v.contractnr,
v.inkoopordernr,
d.alg_district_omschrijving
FROM yfth_v_actual_fact v,
bes_bestelopdr bo,
(SELECT DISTINCT boi.bes_bestelopdr_key, b.bes_bestelling_key, b.mld_adres_key_lev, b.bes_bestelling_plaats, b.bes_bestelling_datum, b.bes_bestelling_status, td.ins_discipline_omschrijving
FROM bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelling b, bes_srtdeel sd, bes_srtgroep sg, ins_tab_discipline td
WHERE boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bbi.bes_bestelling_key = b.bes_bestelling_key
AND bbi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key) x,
bes_bestellingstatuses bs,
bes_bestelopdrstatuses bos,
mld_adres ma,
alg_locatie l,
alg_district d
WHERE v.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.bes_bestelopdr_key = x.bes_bestelopdr_key
AND x.bes_bestelling_status = bs.bes_bestellingstatuses_key(+)
AND bo.bes_bestelopdr_status = bos.bes_bestelopdrstatuses_key(+)
AND x.mld_adres_key_lev = ma.mld_adres_key(+)
AND ma.alg_locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = d.alg_district_key(+);
-- Te exporteren/bevriezen variabele reserveringskosten over voorgaande maand (details).
CREATE OR REPLACE VIEW yfth_v_rap_actual_fact_res
(
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
maand,
res_reservering_key,
res_rsv_ruimte_key,
res_id,
plaats, -- Gebouw
ruimte,
activiteit,
omschrijving,
van_datum, -- Not used
van_tijd,
tot_tijd,
status,
fclt_f_leverancier,
kosten,
fclt_f_contractnr,
fclt_f_inkoopordernr,
fclt_x_district
)
AS
SELECT v.prs_afdeling_key,
v.maand,
rrr.res_reservering_key,
v.res_rsv_ruimte_key,
v.bro_id res_id,
DECODE (
og.alg_type,
'R', og.alg_gebouw_code,
'V', og.alg_gebouw_code,
'G', og.alg_gebouw_code,
'T', og.alg_terreinsector_code,
l.alg_locatie_code)
plaatsaanduiding,
COALESCE ((SELECT res_ruimte_nr FROM res_ruimte WHERE res_ruimte_key = rro.res_ruimte_key), og.alg_plaatsaanduiding) ruimte,
ra.res_activiteit_omschrijving,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
rs.res_status_bo_omschrijving,
v.prs_bedrijf_naam,
v.kosten,
v.contractnr,
v.inkoopordernr,
d.alg_district_omschrijving
FROM yfth_v_actual_fact v,
res_rsv_ruimte rrr,
res_activiteit ra,
res_status_bo rs,
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_onroerendgoed_gegevens og,
alg_locatie l,
alg_district d
WHERE v.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND rrr.res_status_bo_key = rs.res_status_bo_key(+) -- Status van onderliggende artikelen/delen betrekken?
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) = og.alg_ruimte_key
AND og.alg_locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = d.alg_district_key(+);
-- Te exporteren/bevriezen variabele opdrachtkosten over voorgaande maand (details).
CREATE OR REPLACE VIEW yfth_v_rap_actual_fact_mld
(
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
maand,
prio,
mld_melding_key,
mld_opdr_key,
opdr_id,
plaats, -- Gebouw
ruimte,
mld_stdmelding_oms,
opdrachttype,
omschrijving,
begindatum,
einddatum,
meldingstatus,
opdrachtstatus,
afhandeling,
fclt_f_leverancier,
kosten,
fclt_f_contractnr,
fclt_f_inkoopordernr,
fclt_x_district
)
AS
SELECT v.prs_afdeling_key,
v.maand,
TO_CHAR (m.mld_melding_spoed),
m.mld_melding_key,
o.mld_opdr_key,
COALESCE (sd.ins_srtdiscipline_prefix, '') || v.bro_id opdr_id,
DECODE (
og.alg_type,
'R', og.alg_gebouw_code,
'V', og.alg_gebouw_code,
'G', og.alg_gebouw_code,
'T', og.alg_terreinsector_code,
l.alg_locatie_code)
plaatsaanduiding,
DECODE (og.alg_type, 'R', og.alg_plaatsaanduiding, NULL) ruimte,
sm.mld_stdmelding_omschrijving,
ot.mld_typeopdr_omschrijving,
o.mld_opdr_omschrijving,
o.mld_opdr_datumbegin begindatum,
--TO_CHAR (o.mld_opdr_einddatum, 'dd-mm-yyyy') einddatum,
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) einddatum,
ms.mld_statuses_omschrijving,
os.mld_statusopdr_omschrijving,
o.mld_opdr_opmerking,
v.prs_bedrijf_naam,
v.kosten,
v.contractnr,
v.inkoopordernr,
d.alg_district_omschrijving
FROM yfth_v_actual_fact v,
mld_opdr o,
mld_statusopdr os,
mld_typeopdr ot,
mld_melding m,
mld_statuses ms,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
alg_locatie l,
alg_district d,
alg_v_onroerendgoed_gegevens og
WHERE v.mld_opdr_key = o.mld_opdr_key
AND o.mld_statusopdr_key = os.mld_statusopdr_key
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_melding_status = ms.mld_statuses_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = d.alg_district_key(+)
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+);
-- Frozen regels en basis voor oa. de notificatie op de 11e van de maand; voor
-- de output geldt:
-- Dat deze de frozen vaste contractkosten toont.
-- Dat deze de frozen variabele opdrachtkosten toont.
-- Dat deze de frozen variabele reserveringskosten toont.
-- Dat de laatst bevroren maand per bedrijf op de 11e wordt genotificeerd (via
-- extra_key-principe) met daarin de bedragen gegroepeerd per inkoopordernr.
CREATE OR REPLACE VIEW yfth_v_frozen_fact
(
prs_afdeling_key,
maand,
--prs_bedrijf_key,
extra_key, -- Moet zo heten!
prs_bedrijf_naam,
cp_perslid_key,
cp_aanhef,
cp_naam,
cp_email,
cnt_contract_key,
contractnr,
beschrijving,
inkoopordernr,
cm_aanhef,
cm_naam,
bes_bestelopdr_key,
res_rsv_ruimte_key,
mld_opdr_key,
bro_id,
factuur_naar_sg,
aantal,
kosten
)
AS
SELECT pcp.prs_afdeling_key, -- Vaste contractkosten over de FROZEN termijnen
SUBSTR (ud.fac_usrdata_code, 1, 7) maand, -- yyyy-mm
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
pcp.prs_perslid_key,
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
cp_aanhef,
DECODE (
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcp.prs_perslid_tussenvoegsel,
NULL, NULL,
pcp.prs_perslid_tussenvoegsel || ' ')
|| pcp.prs_perslid_naam
cp_naam,
pcp.prs_perslid_email,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
cm_aanhef,
DECODE (
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcm.prs_perslid_tussenvoegsel,
NULL, NULL,
pcm.prs_perslid_tussenvoegsel || ' ')
|| pcm.prs_perslid_naam
cm_naam,
NULL bes_bestelopdr_key,
NULL res_rsv_ruimte_key,
NULL mld_opdr_key,
NULL bro_id,
DECODE (kl.prs_kenmerklink_waarde, 1, 'Ja', 'Nee') fact2sg,
0 aantal,
ud.fac_usrdata_prijs kosten
FROM fac_usrdata ud,
cnt_contract c,
prs_bedrijf b,
cnt_contract mc,
prs_contactpersoon cp,
prs_perslid pcp,
prs_perslid pcm,
(SELECT *
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 99999) kl -- Factuur rechtstreeks naar SG!
WHERE ud.fac_usrtab_key = 99999 -- VasteKostenMnd
AND SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1) = TO_CHAR (c.cnt_contract_key)
--AND SUBSTR (ud.fac_usrdata_omschr, 1, INSTR (ud.fac_usrdata_omschr, '/') - 1) = TO_CHAR (b.prs_bedrijf_key)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
AND b.prs_bedrijf_key = kl.prs_link_key(+)
UNION ALL -- Variabele kosten uit FROZEN bestelopdrachten op variabele contracten (via bes_bestelling_ordernr!)
SELECT pcp.prs_afdeling_key,
TO_CHAR (TRUNC (fac.gettrackingdate ('BES2VE', bo.bes_bestelopdr_key), 'mm') - 1, 'yyyy-mm') maand,
b.prs_bedrijf_key,
b.prs_bedrijf_naam bedrijf,
pcp.prs_perslid_key,
DECODE (pcp.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
'')
cp_aanhef,
DECODE (
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcp.prs_perslid_tussenvoegsel,
NULL, NULL,
pcp.prs_perslid_tussenvoegsel || ' ')
|| pcp.prs_perslid_naam
cp_naam,
pcp.prs_perslid_email cp_email,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen variabele kosten
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
DECODE (pcm.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
'')
cm_aanhef,
DECODE (
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcm.prs_perslid_tussenvoegsel,
NULL, NULL,
pcm.prs_perslid_tussenvoegsel || ' ')
|| pcm.prs_perslid_naam
cm_naam,
bo.bes_bestelopdr_key,
NULL res_rsv_ruimte_key,
NULL mld_opdr_key,
bo.bes_bestelopdr_id bro_id,
DECODE (kl.prs_kenmerklink_waarde, 1, 'Ja', 'Nee') fact2sg,
1 aantal,
SUM ((boi.bes_bestelopdr_item_aantal * COALESCE (boi.bes_bestelopdr_item_inkprijs, boi.bes_bestelopdr_item_prijs)) +
COALESCE (bo.bes_bestelopdr_korting, 0) +
COALESCE (bo.bes_bestelopdr_levkosten, 0))
kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM bes_bestelling b,
bes_bestelling_item bbi,
bes_bestelopdr_item boi,
bes_bestelopdr bo,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
cnt_contract mc,
prs_contactpersoon cp,
prs_perslid pcp,
prs_perslid pcm,
(SELECT *
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 99999) kl -- Factuur rechtstreeks naar SG!
WHERE b.bes_bestelling_ordernr IS NOT NULL -- Gefactureerd!
AND b.bes_bestelling_key = bbi.bes_bestelling_key
AND bbi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.bes_bestelopdr_status = 7 -- Verwerkt (TODO: Soms >1 bestelopdrachten en niet allemaal Verwerkt???)
--AND bo.prs_bedrijf_key = b.prs_bedrijf_key
AND SUBSTR (b.bes_bestelling_ordernr, INSTR (b.bes_bestelling_ordernr, '/') + 1) = TO_CHAR (c.cnt_contract_key)
--AND c.ins_discipline_key = 523 -- Variabele contracten (kan niet anders)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
AND b.prs_bedrijf_key = kl.prs_link_key(+)
GROUP BY pcp.prs_afdeling_key,
TO_CHAR (TRUNC (fac.gettrackingdate ('BES2VE', bo.bes_bestelopdr_key), 'mm') - 1, 'yyyy-mm'),
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
pcp.prs_perslid_key,
DECODE (pcp.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
''),
DECODE (
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcp.prs_perslid_tussenvoegsel,
NULL, NULL,
pcp.prs_perslid_tussenvoegsel || ' ')
|| pcp.prs_perslid_naam,
pcp.prs_perslid_email,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
DECODE (pcm.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
''),
DECODE (
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcm.prs_perslid_tussenvoegsel,
NULL, NULL,
pcm.prs_perslid_tussenvoegsel || ' ')
|| pcm.prs_perslid_naam,
bo.bes_bestelopdr_key,
NULL,
NULL,
bo.bes_bestelopdr_id,
DECODE (kl.prs_kenmerklink_waarde, 1, 'Ja', 'Nee'),
1
UNION ALL -- Variabele kosten uit FROZEN reserveringen op variabele contracten (via fin_verkoopfactuur_id!)
SELECT x.prs_afdeling_key,
SUBSTR (x.fin_verkoopfactuur_maand, 1, 4) || '-' || SUBSTR (x.fin_verkoopfactuur_maand, 5, 2) maand,
x.prs_bedrijf_key,
x.prs_bedrijf_naam bedrijf,
x.prs_perslid_key,
x.cp_aanhef,
x.cp_naam,
x.cp_email,
x.cnt_contract_key,
x.cnt_contract_nummer_intern,
x.cnt_contract_omschrijving,
x.cnt_contract_nummer,
x.cm_aanhef,
x.cm_naam,
NULL bes_bestelopdr_key,
x.res_rsv_ruimte_key,
NULL mld_opdr_key,
x.fin_verkoopfactuur_omschr bro_id,
DECODE (x.prs_kenmerklink_waarde, 1, 'Ja', 'Nee') fact2sg,
1 aantal,
SUM (COALESCE (x.verw_prijs, x.prijs, 0)) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM (SELECT pcp.prs_afdeling_key,
vf.fin_verkoopfactuur_maand,
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
pcp.prs_perslid_key,
DECODE (pcp.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
'')
cp_aanhef,
DECODE (
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcp.prs_perslid_tussenvoegsel,
NULL, NULL,
pcp.prs_perslid_tussenvoegsel || ' ')
|| pcp.prs_perslid_naam
cp_naam,
pcp.prs_perslid_email cp_email,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
DECODE (pcm.prs_perslid_geslacht,
0, 'Mevr. ',
1, 'Dhr. ',
'')
cm_aanhef,
DECODE (
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (
pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcm.prs_perslid_tussenvoegsel,
NULL, NULL,
pcm.prs_perslid_tussenvoegsel || ' ')
|| pcm.prs_perslid_naam
cm_naam,
rra.res_rsv_ruimte_key,
vf.fin_verkoopfactuur_omschr,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs,
--DECODE (COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw), NULL, 'VH', 21, 'VH', 'VL')
-- btw,
kl.prs_kenmerklink_waarde
FROM fin_verkoopfactuur vf,
res_v_aanwezigrsv_artikel rra,
res_artikel ra,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
cnt_contract mc,
prs_contactpersoon cp,
prs_perslid pcp,
prs_perslid pcm,
(SELECT *
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 99999) kl -- Factuur rechtstreeks naar SG!
WHERE vf.fin_verkoopfactuur_refkey = rra.res_rsv_artikel_key
--AND rra.res_status_bo_key = 6 -- Verwerkt (kan niet anders)
--AND rra.res_rsv_artikel_verwerkt IS NOT NULL -- Verwerkt (kan niet anders)
--AND rra.res_rsv_artikel_levering > TO_DATE ('20190101', 'yyyymmdd') -- Kan niet anders
AND rra.res_artikel_key = ra.res_artikel_key
AND fac.safe_to_number (vf.fin_verkoopfactuur_id) = c.cnt_contract_key
--AND c.ins_discipline_key = 523 -- Variabele contracten (kan niet anders)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
AND b.prs_bedrijf_key = kl.prs_link_key(+)) x
GROUP BY x.prs_afdeling_key,
SUBSTR (x.fin_verkoopfactuur_maand, 1, 4) || '-' || SUBSTR (x.fin_verkoopfactuur_maand, 5, 2),
x.prs_bedrijf_key,
x.prs_bedrijf_naam,
x.prs_perslid_key,
x.cp_aanhef,
x.cp_naam,
x.cp_email,
x.cnt_contract_key,
x.cnt_contract_nummer_intern,
x.cnt_contract_omschrijving,
x.cnt_contract_nummer,
x.cm_aanhef,
x.cm_naam,
NULL,
x.res_rsv_ruimte_key,
NULL,
x.fin_verkoopfactuur_omschr,
DECODE (x.prs_kenmerklink_waarde, 1, 'Ja', 'Nee'),
1
UNION ALL -- Variabele kosten uit FROZEN opdrachten op variabele contracten
SELECT pcp.prs_afdeling_key,
o.mld_opdr_ordernr maand,
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
pcp.prs_perslid_key,
DECODE (pcp.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
cp_aanhef,
DECODE (
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1)),
NULL,
NULL,
COALESCE (pcp.prs_perslid_voorletters,
SUBSTR (pcp.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcp.prs_perslid_tussenvoegsel,
NULL, NULL,
pcp.prs_perslid_tussenvoegsel || ' ')
|| pcp.prs_perslid_naam
cp_naam,
pcp.prs_perslid_email,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
c.cnt_contract_nummer,
DECODE (pcm.prs_perslid_geslacht, 0, 'Mevr. ', 1, 'Dhr. ', '')
cm_aanhef,
DECODE (
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1)),
NULL, NULL,
COALESCE (pcm.prs_perslid_voorletters,
SUBSTR (pcm.prs_perslid_voornaam, 1, 1) || '.')
|| ' ')
|| DECODE (pcm.prs_perslid_tussenvoegsel,
NULL, NULL,
pcm.prs_perslid_tussenvoegsel || ' ')
|| pcm.prs_perslid_naam
cm_naam,
NULL bes_bestelopdr_key,
NULL res_rsv_ruimte_key,
o.mld_opdr_key,
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) bro_id,
DECODE (kl.prs_kenmerklink_waarde, 1, 'Ja', 'Nee'),
1 aantal,
o.mld_opdr_kosten kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM mld_opdr o,
cnt_contract c,
prs_bedrijf b,
cnt_contract mc,
prs_contactpersoon cp,
prs_perslid pcp,
prs_perslid pcm,
(SELECT *
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 99999) kl -- Factuur rechtstreeks naar SG!
WHERE o.mld_opdr_ordernr IS NOT NULL -- Gefactureerd!
--AND o.mld_statusopdr_key = 7 -- Verwerkt (kan niet anders)
AND o.cnt_contract_key = c.cnt_contract_key
--AND c.ins_discipline_key = 523 -- Variabele contracten (kan niet anders)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND mc.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
AND b.prs_bedrijf_key = kl.prs_link_key(+);
-- Geexporteerde/bevroren totalen over voorgaande maanden (vast en variabel).
CREATE OR REPLACE VIEW yfth_v_rap_frozen_fact_tot
(
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
maand,
broc_flag,
--hide_f_bedrijf_key,
fclt_f_leverancier,
--hide_f_contract_key,
contractnr,
beschrijving,
inkoopordernr,
aantal,
kosten
)
AS -- Vaste contractkosten over de FROZEN termijnen
SELECT prs_afdeling_key,
maand,
DECODE (bes_bestelopdr_key, NULL, DECODE (res_rsv_ruimte_key, NULL, DECODE (mld_opdr_key, NULL, 'C', 'O'), 'R'), 'B') broc_flag,
--prs_bedrijf_key,
prs_bedrijf_naam,
--cnt_contract_key,
contractnr,
beschrijving,
inkoopordernr,
SUM (aantal),
SUM (kosten)
FROM yfth_v_frozen_fact
GROUP BY prs_afdeling_key,
maand,
DECODE (bes_bestelopdr_key, NULL, DECODE (res_rsv_ruimte_key, NULL, DECODE (mld_opdr_key, NULL, 'C', 'O'), 'R'), 'B'),
--prs_bedrijf_key,
prs_bedrijf_naam,
--cnt_contract_key,
contractnr,
beschrijving,
inkoopordernr;
-- Geexporteerde/bevroren variabele bestelopdrachtkosten over voorgaande maanden (details).
CREATE OR REPLACE VIEW yfth_v_rap_frozen_fact_bes
(
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
maand,
bes_bestelling_key,
bes_bestelopdr_key,
bes_id,
plaats,
ruimte,
catalogus,
besteldatum,
leverdatum,
bestellingstatus, -- Not used
bestelopdrachtstatus,
afhandeling, -- Not used
fclt_f_leverancier,
kosten,
fclt_f_contractnr,
fclt_f_inkoopordernr,
fclt_x_district
)
AS
SELECT v.prs_afdeling_key,
v.maand,
x.bes_bestelling_key,
v.bes_bestelopdr_key,
v.bro_id bes_id,
COALESCE (l.alg_locatie_code, ma.mld_adres_naam) plaatsaanduiding,
x.bes_bestelling_plaats ruimte,
x.ins_discipline_omschrijving,
bo.bes_bestelopdr_datum,
bo.bes_bestelopdr_leverdatum, -- Of uit FAC_TRACKING-tabel?
bs.bes_bestellingstatuses_omschr, -- Status van onderliggende artikelen/delen betrekken?
bos.bes_bestelopdrstatuses_omschr, -- Status van onderliggende artikelen/delen betrekken?
COALESCE (bo.bes_bestelopdr_opmerking, bo.bes_bestelopdr_delivery_opmerk) afhandeling,
v.prs_bedrijf_naam,
v.kosten,
v.contractnr,
v.inkoopordernr,
d.alg_district_omschrijving
FROM yfth_v_frozen_fact v,
bes_bestelopdr bo,
(SELECT DISTINCT boi.bes_bestelopdr_key, b.bes_bestelling_key, b.mld_adres_key_lev, b.bes_bestelling_plaats, b.bes_bestelling_datum, b.bes_bestelling_status, td.ins_discipline_omschrijving
FROM bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelling b, bes_srtdeel sd, bes_srtgroep sg, ins_tab_discipline td
WHERE boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bbi.bes_bestelling_key = b.bes_bestelling_key
AND bbi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key) x,
bes_bestellingstatuses bs,
bes_bestelopdrstatuses bos,
mld_adres ma,
alg_locatie l,
alg_district d
WHERE v.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.bes_bestelopdr_key = x.bes_bestelopdr_key
AND x.bes_bestelling_status = bs.bes_bestellingstatuses_key(+)
AND bo.bes_bestelopdr_status = bos.bes_bestelopdrstatuses_key(+)
AND x.mld_adres_key_lev = ma.mld_adres_key(+)
AND ma.alg_locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = d.alg_district_key(+);
-- Geexporteerde/bevroren variabele reserveringskosten over voorgaande maanden (details).
CREATE OR REPLACE VIEW yfth_v_rap_frozen_fact_res
(
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
maand,
res_reservering_key,
res_rsv_ruimte_key,
res_id,
plaats, -- Gebouw
ruimte,
activiteit,
omschrijving,
van_datum, -- Not used
van_tijd,
tot_tijd,
status,
fclt_f_leverancier,
kosten,
fclt_f_contractnr,
fclt_f_inkoopordernr,
fclt_x_district
)
AS
SELECT v.prs_afdeling_key,
v.maand,
rrr.res_reservering_key,
v.res_rsv_ruimte_key,
v.bro_id res_id,
DECODE (
og.alg_type,
'R', og.alg_gebouw_code,
'V', og.alg_gebouw_code,
'G', og.alg_gebouw_code,
'T', og.alg_terreinsector_code,
l.alg_locatie_code)
plaatsaanduiding,
COALESCE ((SELECT res_ruimte_nr FROM res_ruimte WHERE res_ruimte_key = rro.res_ruimte_key), og.alg_plaatsaanduiding) ruimte,
ra.res_activiteit_omschrijving,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
rs.res_status_bo_omschrijving,
v.prs_bedrijf_naam,
v.kosten,
v.contractnr,
v.inkoopordernr,
d.alg_district_omschrijving
FROM yfth_v_frozen_fact v,
res_rsv_ruimte rrr,
res_activiteit ra,
res_status_bo rs,
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_onroerendgoed_gegevens og,
alg_locatie l,
alg_district d
WHERE v.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND rrr.res_status_bo_key = rs.res_status_bo_key(+) -- Status van onderliggende artikelen/delen betrekken?
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) = og.alg_ruimte_key
AND og.alg_locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = d.alg_district_key(+);
-- Geexporteerde/bevroren variabele opdrachtkosten over voorgaande maanden (details).
CREATE OR REPLACE VIEW yfth_v_rap_frozen_fact_mld
(
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
maand,
prio,
mld_melding_key,
mld_opdr_key,
opdr_id,
plaats, -- Gebouw
ruimte,
mld_stdmelding_oms,
opdrachttype,
omschrijving,
begindatum,
einddatum,
meldingstatus,
opdrachtstatus,
afhandeling,
fclt_f_leverancier,
kosten,
fclt_f_contractnr,
fclt_f_inkoopordernr,
fclt_x_district
)
AS
SELECT v.prs_afdeling_key,
v.maand,
TO_CHAR (m.mld_melding_spoed),
m.mld_melding_key,
o.mld_opdr_key,
COALESCE (sd.ins_srtdiscipline_prefix, '') || v.bro_id opdr_id,
DECODE (
og.alg_type,
'R', og.alg_gebouw_code,
'V', og.alg_gebouw_code,
'G', og.alg_gebouw_code,
'T', og.alg_terreinsector_code,
l.alg_locatie_code)
plaatsaanduiding,
DECODE (og.alg_type, 'R', og.alg_plaatsaanduiding, NULL) ruimte,
sm.mld_stdmelding_omschrijving,
ot.mld_typeopdr_omschrijving,
o.mld_opdr_omschrijving,
o.mld_opdr_datumbegin begindatum,
--TO_CHAR (o.mld_opdr_einddatum, 'dd-mm-yyyy') einddatum,
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) einddatum,
ms.mld_statuses_omschrijving,
os.mld_statusopdr_omschrijving,
o.mld_opdr_opmerking,
v.prs_bedrijf_naam,
o.mld_opdr_kosten,
v.contractnr,
v.inkoopordernr,
d.alg_district_omschrijving
FROM yfth_v_frozen_fact v,
mld_opdr o,
mld_statusopdr os,
mld_typeopdr ot,
mld_melding m,
mld_statuses ms,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
alg_locatie l,
alg_district d,
alg_v_onroerendgoed_gegevens og
WHERE v.mld_opdr_key = o.mld_opdr_key
AND o.mld_statusopdr_key = os.mld_statusopdr_key
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_melding_status = ms.mld_statuses_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = d.alg_district_key(+)
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+);
CREATE OR REPLACE PROCEDURE yfth_select_fact (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Bevries vaste contractkosten in eigen tabel.
CURSOR c1
IS
SELECT DISTINCT '[' || TO_CHAR (v.cnt_contract_key) || '] ' aanduiding,
v.maand, v.cnt_contract_key, v.prs_bedrijf_key, v.inkoopordernr, v.kosten
FROM yfth_v_actual_fact v
WHERE v.bes_bestelopdr_key IS NULL AND v.res_rsv_ruimte_key IS NULL AND v.mld_opdr_key IS NULL
ORDER BY 3;
-- Zet "variabele" BES-bestelopdrachten die voor de 1e zijn geleverd op AV.
-- Alleen op variabele contracten.
CURSOR c2
IS
SELECT DISTINCT '[' || TO_CHAR (v.bes_bestelopdr_key) || '|' || v.bro_id || '] ' aanduiding,
v.maand, v.bes_bestelopdr_key, bbi.bes_bestelling_key, v.cnt_contract_key
FROM yfth_v_actual_fact v, bes_bestelopdr_item boi, bes_bestelling_item bbi
WHERE v.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
ORDER BY 3;
-- Zet "variabele" RES-cateringregels die voor de 1e hebben plaatsgevonden op AV
-- en meld - zover niet al gebeurd - de deelreservering af (in juiste volgorde).
-- Alleen op variabele contracten.
CURSOR c3
IS
SELECT DISTINCT '[' || TO_CHAR (v.res_rsv_ruimte_key) || '|' || v.bro_id || '] ' aanduiding,
v.maand, v.res_rsv_ruimte_key,
rra.res_status_bo_key,
rra.res_rsv_artikel_key, rra.res_artikel_key,
v.cnt_contract_key, v.bro_id, v.prs_bedrijf_key, v.prs_bedrijf_naam
FROM yfth_v_actual_fact v, res_v_aanwezigrsv_artikel rra
WHERE v.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
UNION ALL
SELECT DISTINCT '[' || TO_CHAR (v.res_rsv_ruimte_key) || '|' || v.bro_id || '] ' aanduiding,
v.maand, v.res_rsv_ruimte_key,
rrr.res_status_bo_key,
NULL res_rsv_artikel_key, NULL res_artikel_key,
v.cnt_contract_key, v.bro_id, v.prs_bedrijf_key, v.prs_bedrijf_naam
FROM yfth_v_actual_fact v, res_v_aanwezigrsv_ruimte rrr
WHERE v.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
ORDER BY 1, 5, 3;
-- Zet "variabele" MLD-opdrachten die voor de 1e zijn afgerond op AV.
-- Alleen op variabele contracten.
CURSOR c4
IS
SELECT DISTINCT '[' || TO_CHAR (v.mld_opdr_key) || '|' || v.bro_id || '] ' aanduiding,
v.maand, v.mld_opdr_key
FROM yfth_v_actual_fact v
WHERE v.mld_opdr_key IS NOT NULL
ORDER BY 3;
-- Zet "inclusief" opdrachten die voor de 1e zijn gesloten op AV.
-- Afgerond/kosten meerekenen op vaste contracten en geen dispuut
-- Afgemeld/kosten niet meerekenen, geen offerteaanvraag en geen dispuut
-- Afgerond/kosten niet meerekenen en geen dispuut (= geaccepteerde offerteaanvragen)
CURSOR c5
IS
SELECT DISTINCT '[' || TO_CHAR (o.mld_opdr_key) || '] ' aanduiding,
o.mld_opdr_key
FROM mld_opdr o, mld_typeopdr ot, cnt_contract c
WHERE o.mld_statusopdr_key = 9 -- KV
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND ot.mld_typeopdr_kosten = 1 -- Kosten meerekenen=Ja
AND o.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 41 -- Vaste contracten
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
(SELECT 1
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 41 -- Dispuut
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm')
UNION ALL
SELECT DISTINCT '[' || TO_CHAR (o.mld_opdr_key) || '] ' aanduiding,
o.mld_opdr_key
FROM mld_opdr o, mld_typeopdr ot
WHERE o.mld_statusopdr_key = 6 -- TV
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND ot.mld_typeopdr_kosten = 0 -- Kosten meerekenen=Nee
AND ot.mld_typeopdr_key != 81 -- Offerteaanvraag
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
(SELECT 1
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 41 -- Dispuut
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
AND fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm')
UNION ALL
SELECT DISTINCT '[' || TO_CHAR (o.mld_opdr_key) || '] ' aanduiding,
o.mld_opdr_key
FROM mld_opdr o, mld_typeopdr ot
WHERE o.mld_statusopdr_key = 9 -- KV (ooit met kosten en Offerteaanvragen)
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND ot.mld_typeopdr_kosten = 0 -- Kosten meerekenen=Nee
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
(SELECT 1
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 41 -- Dispuut
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
AND (fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm')
OR fac.gettrackingdate ('ORDOOK', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm'))
ORDER BY 2;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER (10);
v_verkoopfactuurkop_key NUMBER (10);
v_prijs NUMBER (9, 2);
BEGIN
-- Op 10e dag van de maand (via scheduled task):
-- 1. Bevries vaste contractkosten in eigen tabel (incl. malus?).
-- 2. Zet "variabele" bestelopdrachten die voor de 1e zijn geleverd op AV.
-- 3. Zet "variabele" catering-reserveringen die voor de 1e hebben plaatsgevonden op AV.
-- 4. Zet "variabele" opdrachten die voor de 1e zijn afgerond op AV.
-- 5. Zet "inclusief" opdrachten die voor de 1e zijn gesloten op AV.
-- x. Doe niets met afgewezen/geannuleerde opdrachten?
v_count := 0;
FOR rec IN c1
LOOP
BEGIN
v_errormsg := 'Fout toevoegen vaste contractkosten';
INSERT INTO fac_usrdata (fac_usrtab_key,
fac_usrdata_code,
fac_usrdata_omschr,
fac_usrdata_aanmaak,
fac_usrdata_vervaldatum,
fac_usrdata_prijs)
VALUES (161, -- VasteKostenMnd
rec.maand || '/' || TO_CHAR (rec.cnt_contract_key),
TO_CHAR (rec.prs_bedrijf_key) || '/' || rec.inkoopordernr, -- TODO: Of weg?
SYSDATE,
NULL,
rec.kosten);
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-CAV');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', '#Vaste contractkosten bevroren: ' || TO_CHAR (v_count), '');
COMMIT;
v_count := 0;
FOR rec IN c2
LOOP
BEGIN
v_errormsg := 'Fout bijwerken ordernummer (BES).';
UPDATE bes_bestelling
SET bes_bestelling_ordernr = rec.maand || '/' || TO_CHAR (rec.cnt_contract_key)
WHERE bes_bestelling_key = rec.bes_bestelling_key;
v_errormsg := 'Fout bijwerken status (BES).';
BES.setbestelopdrstatus (rec.bes_bestelopdr_key, 7, 3);
BES.setbestellingstatus (rec.bes_bestelling_key, 7, 3); -- TODO: Soms >1 bestelopdrachten???
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-BAV');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', '#Variabele bestelopdrachten bevroren: ' || TO_CHAR (v_count), '');
COMMIT;
-- Maak elke factuurrun voor elke reverse te billen res_rsv_xxx-regel een
-- fin_verkoopfactuur-regel aan onder dezelfde fin_verkoopfactuurkop (<28><>n
-- kop per maand)!
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
VALUES ('RES-billing' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'))
RETURNING fin_verkoopfactuurkop_key
INTO v_verkoopfactuurkop_key;
COMMIT;
v_count := 0;
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 catering';
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 catering';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering verwerkt');
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_bedrijf_key,
prs_debiteur_naam,
fin_verkoopfactuur_bedrag,
fin_verkoopfactuur_maand)
VALUES (v_verkoopfactuurkop_key,
TO_CHAR (rec.cnt_contract_key), -- Contract
SYSDATE,
rec.bro_id,
'', -- Er bestaat geen xml-node voor res_rsv_artikel!
rec.res_rsv_artikel_key,
rec.prs_bedrijf_key, -- Leverancier-key (crediteur)
rec.prs_bedrijf_naam, -- Leverancier-naam (crediteur)
v_prijs, -- Netto bedrag, want alle bedragen excl. BTW, toch?
SUBSTR (rec.maand, 1, 4) || SUBSTR (rec.maand, 6, 2));
v_count := v_count + 1;
COMMIT;
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 ruimte';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
END IF;
-- Contract kan niet via RES-ordernr historisch worden opgeslagen,
-- want onder <20><>n res_rsv_ruimte kunnen de artikelen per catalogus
-- worden gefactureerd aan een verschillende leverancier!
--v_errormsg := 'Fout bijwerken ordernummer (RES).';
--UPDATE res_rsv_ruimte
-- SET res_rsv_ruimte_ordernr = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') || '/' || TO_CHAR (rec.cnt_contract_key)
-- WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-RAV');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', '#Variabele cateringregels bevroren: ' || TO_CHAR (v_count), '');
COMMIT;
v_count := 0;
FOR rec IN c4
LOOP
BEGIN
v_errormsg := 'Fout bijwerken ordernummer (MLD).';
UPDATE mld_opdr
SET mld_opdr_ordernr = rec.maand
WHERE mld_opdr_key = rec.mld_opdr_key;
v_errormsg := 'Fout bijwerken status (MLD).';
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 3);
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-OAV1');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', '#Variabele opdrachten bevroren: ' || TO_CHAR (v_count), '');
COMMIT;
v_count := 0;
FOR rec IN c5
LOOP
BEGIN
v_errormsg := 'Fout bijwerken status (inclusief opdrachten).';
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 3);
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-OAV2');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', '#Inclusief opdrachten bevroren: ' || TO_CHAR (v_count), '');
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', v_errormsg, 'Proces FACT_EXPORT afgebroken!');
COMMIT;
END;
/
CREATE OR REPLACE VIEW yfth_v_noti_te_factureren
(
code,
sender,
receiver,
text,
key,
xkey
)
AS
WITH cp
AS (SELECT cp1.prs_bedrijf_key, p1.prs_perslid_key
FROM prs_v_aanwezigkenmerklink kl1, prs_contactpersoon cp1, prs_v_aanwezigperslid p1
WHERE kl1.prs_kenmerk_key = 99999 -- Contactpersoon factuurnotificatie!
AND kl1.prs_link_key = cp1.prs_contactpersoon_key
AND cp1.prs_contactpersoon_verwijder IS NULL
AND cp1.prs_perslid_key = p1.prs_perslid_key)
SELECT DISTINCT sn.fac_srtnotificatie_code,
NULL,
--cp.prs_perslid_key, -- Leverancier-contactpersonen (met noti-vinkje)
99999, -- Maartje Vreijling
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##LEV##', v.prs_bedrijf_naam), '##MND##', v.maand),
r.fac_usrrap_key,
v.extra_key
FROM yfth_v_frozen_fact v,
cp cp,
fac_usrrap r,
fac_srtnotificatie sn
WHERE TO_CHAR (SYSDATE, 'dd') = '11' -- Op de ochtend na 10e van de maand!
AND v.maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
AND v.extra_key = cp.prs_bedrijf_key
AND UPPER (r.fac_usrrap_view_name) = 'YFTH_V_FROZEN_FACT'
AND sn.fac_srtnotificatie_code = 'CUST01'
UNION ALL
SELECT DISTINCT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key, -- Schiphol-contactpersonen
REPLACE (sn.fac_srtnotificatie_oms, '##MND##', v.maand),
r.fac_usrrap_key,
NULL -- Geen extra_key, dus de hele rapportage!
FROM yfth_v_frozen_fact v,
fac_gebruikersgroep gg,
fac_usrrap r,
fac_srtnotificatie sn
WHERE TO_CHAR (SYSDATE, 'dd') = '11' -- Op de ochtend na 10e van de maand!
AND v.maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
AND gg.fac_groep_key = 99999 -- Schiphol Finance/Control
AND UPPER (r.fac_usrrap_view_name) = 'YFTH_V_FROZEN_FACT'
AND sn.fac_srtnotificatie_code = 'CUST02';
------ 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