3977 lines
169 KiB
MySQL
3977 lines
169 KiB
MySQL
--
|
||
-- $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 ------
|
||
|
||
CREATE OR REPLACE PACKAGE YFTH
|
||
AS
|
||
PROCEDURE zet_opdracht_op_verwerkt;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY YFTH
|
||
AS
|
||
|
||
-- zet alle afgeronde opdrachten op verwerkt.
|
||
PROCEDURE zet_opdracht_op_verwerkt
|
||
AS
|
||
CURSOR c IS
|
||
SELECT *
|
||
FROM mld_opdr
|
||
WHERE mld_statusopdr_key = 9;
|
||
|
||
v_count NUMBER;
|
||
|
||
BEGIN
|
||
v_count := 0;
|
||
FOR rec IN c
|
||
LOOP
|
||
v_count := v_count + 1;
|
||
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, NULL);
|
||
END LOOP;
|
||
fac.writelog ('zet_opdracht_op_verwerkt', 'I', 'Procedure uitgevoerd: ' || TO_CHAR(SYSDATE, 'dd-mm-yyyy hh24:mi:ss') || ' ' || v_count || ' opdrachten op verwerkt gezet.', '');
|
||
END;
|
||
END;
|
||
/
|
||
|
||
-- 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 TRUNC(rrr.res_rsv_ruimte_van) >= TRUNC(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 <= 10)
|
||
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(fat, 1, 4,
|
||
DECODE (zitsta, 1, 6,
|
||
DECODE (spec, 1, 5, 0)
|
||
)
|
||
)
|
||
ELSE DECODE (res_rsv_ruimte_contact_key, 3, 7, 3) -- hele dag
|
||
END
|
||
waarde1,
|
||
CASE
|
||
WHEN MAX (res_rsv_deel_tot) IS NULL
|
||
THEN
|
||
DECODE(fat, 1, 4,
|
||
DECODE (zitsta, 1, 6,
|
||
DECODE (spec, 1, 5, 0)
|
||
)
|
||
)
|
||
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 DECODE (res_rsv_ruimte_contact_key, 3, 7, 3) -- Was facilitor de boeker dan is de plek niet beschikbaar anders 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,
|
||
res_discipline_key,
|
||
FLX.getflex ('INS', 22, d.ins_deel_key) zitsta,
|
||
FLX.getflex ('INS', 1, d.ins_deel_key) fat,
|
||
FLX.getflex ('INS', 21, d.ins_deel_key) spec,
|
||
res_rsv_ruimte_contact_key
|
||
FROM res_v_aanwezigdeel r,
|
||
ins_deel d,
|
||
datums,
|
||
(SELECT datum,
|
||
res_deel_key,
|
||
res_rsv_deel_van,
|
||
res_rsv_deel_tot,
|
||
res_rsv_ruimte_contact_key
|
||
FROM datums, res_v_aanwezigrsv_deel rrd, res_rsv_ruimte rrr
|
||
WHERE rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
|
||
AND res_rsv_deel_van > TRUNC (SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
|
||
AND datum + 1 >= res_rsv_deel_van
|
||
AND datum < res_rsv_deel_tot)
|
||
blokkerend -- vandaag en nog niet afgelopen
|
||
WHERE r.res_deel_key = blokkerend.res_deel_key(+)
|
||
AND datums.datum = blokkerend.datum(+)
|
||
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, res_discipline_key, zitsta, spec, fat, res_rsv_ruimte_contact_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', DECODE( alg_verdieping_volgnr, 3, 'HAL.' || rg.alg_ruimte_nr, -- 3 is het volgnummer van de productiehal
|
||
'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'
|
||
AND COALESCE(ins_deel_vervaldatum, SYSDATE+1) > SYSDATE
|
||
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;
|
||
|
||
-- Onderstaande vier views zijn bedoeld om via Graphics werkplekken reserveerbaar en
|
||
-- niet reserveerbaar te maken.
|
||
-- Kenmerk 1 is een fatclient
|
||
-- Kenmerk 21 is een speciale werkplek
|
||
-- Kenmerk 22 is een zit/sta bureau
|
||
CREATE OR REPLACE VIEW yfth_v_thema_set_res_wp_fatcl
|
||
AS
|
||
SELECT ins_deel_key, DECODE (rd.res_deel_key, NULL, 0, 1) waarde
|
||
FROM ins_deel d,
|
||
(SELECT *
|
||
FROM res_deel
|
||
WHERE res_deel_verwijder IS NULL) rd
|
||
WHERE d.ins_deel_key = rd.res_ins_deel_key(+)
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM ins_kenmerkdeel kd
|
||
WHERE kd.ins_deel_key = d.ins_deel_key
|
||
AND ins_kenmerk_key = 1);
|
||
|
||
|
||
CREATE OR REPLACE VIEW yfth_v_thema_set_res_wp_zitsta
|
||
AS
|
||
SELECT ins_deel_key, DECODE (rd.res_deel_key, NULL, 0, 1) waarde
|
||
FROM ins_deel d,
|
||
(SELECT *
|
||
FROM res_deel
|
||
WHERE res_deel_verwijder IS NULL) rd
|
||
WHERE d.ins_deel_key = rd.res_ins_deel_key(+)
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM ins_kenmerkdeel kd
|
||
WHERE kd.ins_deel_key = d.ins_deel_key
|
||
AND ins_kenmerk_key = 22);
|
||
|
||
CREATE OR REPLACE VIEW yfth_v_thema_set_res_wp_spec
|
||
AS
|
||
SELECT ins_deel_key, DECODE (rd.res_deel_key, NULL, 0, 1) waarde
|
||
FROM ins_deel d,
|
||
(SELECT *
|
||
FROM res_deel
|
||
WHERE res_deel_verwijder IS NULL) rd
|
||
WHERE d.ins_deel_key = rd.res_ins_deel_key(+)
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM ins_kenmerkdeel kd
|
||
WHERE kd.ins_deel_key = d.ins_deel_key
|
||
AND ins_kenmerk_key = 21);
|
||
|
||
CREATE OR REPLACE VIEW yfth_v_thema_set_res_wp_norm
|
||
AS
|
||
SELECT ins_deel_key, DECODE ( d.ins_deel_vervaldatum,
|
||
NULL, DECODE (rd.res_deel_vervaldatum,
|
||
NULL, DECODE (rd.res_deel_key, NULL, 0, 1),
|
||
98),
|
||
99) waarde
|
||
FROM ins_deel d,
|
||
(SELECT *
|
||
FROM res_deel
|
||
WHERE res_deel_verwijder IS NULL) rd
|
||
WHERE d.ins_deel_key = rd.res_ins_deel_key(+);
|
||
|
||
-- Thema dat het type werkplek aangeeft.
|
||
CREATE OR REPLACE VIEW yfth_v_rap_type_werkplek
|
||
AS
|
||
SELECT d.ins_deel_key,
|
||
DECODE (
|
||
FLX.getflex ('INS', 22, d.ins_deel_key),
|
||
1, 'ZitSta',
|
||
DECODE (
|
||
FLX.getflex ('INS', 1, d.ins_deel_key),
|
||
1, DECODE (FLX.getflex ('INS', 41, d.ins_deel_key),
|
||
'141', 'FatClient A',
|
||
'FatClient B'),
|
||
'Normaal')) waarde
|
||
FROM ins_deel d;
|
||
|
||
CREATE OR REPLACE VIEW yfth_v_thema_wpafd
|
||
(
|
||
ins_deel_key,
|
||
waarde,
|
||
waarde_key
|
||
)
|
||
AS
|
||
SELECT x.ins_deel_key,
|
||
DECODE (y.aantal,
|
||
NULL, '[Leegstand]',
|
||
1, SUBSTR (y.fac_usrdata_omschr, 1, 60)),
|
||
DECODE (y.aantal, NULL, -1, 1, y.fac_usrdata_key, NULL)
|
||
FROM (SELECT d.ins_deel_key
|
||
FROM ins_deel d
|
||
WHERE d.ins_srtdeel_key = 61 -- Werkplekken
|
||
) x
|
||
LEFT JOIN
|
||
( SELECT kd.ins_deel_key,
|
||
MIN (ud.fac_usrdata_omschr) fac_usrdata_omschr,
|
||
MIN (ud.fac_usrdata_key) fac_usrdata_key,
|
||
COUNT (ud.fac_usrdata_key) aantal
|
||
FROM ins_kenmerkdeel kd,
|
||
ins_kenmerk k,
|
||
ins_srtkenmerk sk,
|
||
fac_usrdata ud
|
||
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.ins_srtkenmerk_omschrijving = 'Werkplekafdeling'
|
||
AND ud.fac_usrdata_key =
|
||
FAC.safe_to_number (kd.ins_kenmerkdeel_waarde)
|
||
GROUP BY kd.ins_deel_key) y
|
||
ON x.ins_deel_key = y.ins_deel_key
|
||
UNION ALL
|
||
SELECT NULL, SUBSTR (ud.fac_usrdata_omschr, 1, 60), ud.fac_usrdata_key
|
||
FROM fac_usrdata ud, fac_usrtab ut
|
||
WHERE ud.fac_usrtab_key = ut.fac_usrtab_key
|
||
AND ut.fac_usrtab_omschrijving = 'Werkplekafdeling'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM ins_kenmerkdeel kd,
|
||
ins_kenmerk k,
|
||
ins_srtkenmerk sk
|
||
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.ins_srtkenmerk_omschrijving =
|
||
'Werkplekafdeling'
|
||
AND ud.fac_usrdata_key =
|
||
FAC.safe_to_number (kd.ins_kenmerkdeel_waarde));
|
||
|
||
-- Rapportage met werkplek informatie
|
||
CREATE OR REPLACE VIEW yfth_v_werkplekafdeling
|
||
AS
|
||
SELECT alg_gebouw_omschrijving,
|
||
alg_verdieping_omschrijving,
|
||
alg_ruimte_nr,
|
||
ins_deel_omschrijving,
|
||
waarde,
|
||
DECODE (flx.getflex('INS' , 1, dg.ins_deel_key), 1, 'Fat client' ,
|
||
DECODE (flx.getflex('INS' , 121, dg.ins_deel_key), 1, 'Thin client',
|
||
DECODE (flx.getflex('INS' , 122, dg.ins_deel_key), 1, 'Docking', NULL))) ict_wp,
|
||
DECODE (flx.getflex('INS' , 22, dg.ins_deel_key), 1, 'Zit/Sta', 'Normaal') fac_wp
|
||
FROM yfth_v_thema_wpafd t, ins_v_deel_gegevens dg
|
||
WHERE t.ins_deel_key = dg.ins_deel_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';
|
||
|
||
|
||
-- Asset beheer en in de toekomst MJOB
|
||
CREATE OR REPLACE PROCEDURE yfth_import_assets (p_import_key IN NUMBER, p_type IN VARCHAR2)
|
||
AS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_index NUMBER;
|
||
v_count NUMBER;
|
||
v_counter NUMBER;
|
||
v_odd NUMBER;
|
||
|
||
|
||
v_ongeldig NUMBER (1);
|
||
v_mode NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_all_null BOOLEAN;
|
||
v_count_error NUMBER (10);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
|
||
-- De importvelden:
|
||
v_alg_ruimte_txt VARCHAR2(100);
|
||
v_alg_ruimte_nr VARCHAR2(100);
|
||
v_alg_ruimte_key NUMBER;
|
||
v_alg_gebouw_txt VARCHAR2(100);
|
||
v_ins_deel_aanmaak_txt VARCHAR2(100);
|
||
v_ins_deel_aantal_txt VARCHAR2(100);
|
||
v_ins_deel_eenheid VARCHAR2(100);
|
||
v_ins_deel_omschrijving VARCHAR2(100);
|
||
v_ins_deel_opmerking VARCHAR2(1000);
|
||
v_ins_srtcontrole_periode_txt VARCHAR2(100);
|
||
v_ins_srtcontrole_prijs_txt VARCHAR2(100);
|
||
v_ins_srtdeel_code VARCHAR2(100);
|
||
v_ins_srtdeel_omschrijving VARCHAR2(100);
|
||
v_ins_deel_percentage NUMBER;
|
||
v_ins_srtcontrole_periode NUMBER;
|
||
v_kenmerk1 VARCHAR2(1000);
|
||
v_kenmerk2 VARCHAR2(1000);
|
||
v_kenmerk3 VARCHAR2(1000);
|
||
v_kenmerk4 VARCHAR2(1000);
|
||
v_kenmerk5 VARCHAR2(1000);
|
||
v_kenmerk6 VARCHAR2(1000);
|
||
v_kenmerk7 VARCHAR2(1000);
|
||
v_kenmerk8 VARCHAR2(1000);
|
||
v_kenmerk9 VARCHAR2(1000);
|
||
v_kenmerk10 VARCHAR2(1000);
|
||
v_kenmerk11 VARCHAR2(1000);
|
||
v_dumm NUMBER (10,2);
|
||
v_ins_deel_aanmaak DATE;
|
||
v_ins_deel_startjaar DATE;
|
||
v_ins_deel_aantal NUMBER;
|
||
v_ins_srtcontrole_prijs NUMBER(10,2);
|
||
v_alg_locatie_code VARCHAR2(20);
|
||
v_alg_gebouw_code VARCHAR2(20);
|
||
v_alg_verdieping_volgnr NUMBER;
|
||
|
||
v_srtk_component_key NUMBER;
|
||
v_srtk_fabrikant_key NUMBER;
|
||
v_srtk_type_key NUMBER;
|
||
v_srtk_kenmerken_key NUMBER;
|
||
v_srtk_levensduur_key NUMBER;
|
||
v_srtk_opmerkingen_key NUMBER;
|
||
v_srtk_conditie_key NUMBER;
|
||
v_srtk_huidige_c_key NUMBER;
|
||
v_srtk_gewenste_c_key NUMBER;
|
||
v_srtk_a_opm_key NUMBER;
|
||
v_srtk_ramingsbedrag_key NUMBER;
|
||
v_srtk_toelichting_key NUMBER;
|
||
|
||
v_srtk_code_rvb_key NUMBER;
|
||
v_srtk_opm_key NUMBER;
|
||
v_srtk_merk_key NUMBER;
|
||
v_discipline_key NUMBER;
|
||
v_srtgroep_key NUMBER;
|
||
v_ins_discipline_omschrijving VARCHAR2(100);
|
||
v_ins_srtgroep_omschrijving VARCHAR2(100);
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
CURSOR c_dis IS
|
||
SELECT '1 - onderbouw' disc FROM DUAL
|
||
UNION
|
||
SELECT '5 - installaties werktuigbouwkunde' disc FROM DUAL
|
||
UNION
|
||
SELECT '2 - ruwbouw' FROM DUAL
|
||
UNION
|
||
SELECT '7 - vaste voorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '6 - installaties elektrotechniek' FROM DUAL
|
||
UNION
|
||
SELECT '4 - afwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '3 - afbouw' FROM DUAL
|
||
UNION
|
||
SELECT '9 - terrein' FROM DUAL
|
||
UNION
|
||
SELECT '8 - losse inventaris' FROM DUAL;
|
||
|
||
CURSOR c_grp IS
|
||
SELECT '11 - bodemvoorzieningen' groep FROM DUAL
|
||
UNION
|
||
SELECT '13 - vloeren op grondslag' groep FROM DUAL
|
||
UNION
|
||
SELECT '16 - funderingsconstructie' groep FROM DUAL
|
||
UNION
|
||
SELECT '17 - paalfundering' groep FROM DUAL
|
||
UNION
|
||
SELECT '19 - onderhoud algemeen' groep FROM DUAL
|
||
UNION
|
||
SELECT '21 - buitenwanden' groep FROM DUAL
|
||
UNION
|
||
SELECT '22 - binnenwanden' FROM DUAL
|
||
UNION
|
||
SELECT '23 - vloeren, galerijen' FROM DUAL
|
||
UNION
|
||
SELECT '24 - trappen en hellingen' FROM DUAL
|
||
UNION
|
||
SELECT '25 - binnenzijde gevelconstructie' FROM DUAL
|
||
UNION
|
||
SELECT '26 - vloerconstructie' FROM DUAL
|
||
UNION
|
||
SELECT '27 - daken' FROM DUAL
|
||
UNION
|
||
SELECT '28 - hoofddraagkonstrukties' FROM DUAL
|
||
UNION
|
||
SELECT '29 - draagconstructie' FROM DUAL
|
||
UNION
|
||
SELECT '31 - buitenwandopeningen' FROM DUAL
|
||
UNION
|
||
SELECT '32 - binnenwandopeningen' FROM DUAL
|
||
UNION
|
||
SELECT '33 - vloeropeningen' FROM DUAL
|
||
UNION
|
||
SELECT '34 - balustrades en leuningen' FROM DUAL
|
||
UNION
|
||
SELECT '35 - plafonds' FROM DUAL
|
||
UNION
|
||
SELECT '37 - dakopeningen' FROM DUAL
|
||
UNION
|
||
SELECT '38 - inbouwpakketten' FROM DUAL
|
||
UNION
|
||
SELECT '39 - afbouw' FROM DUAL
|
||
UNION
|
||
SELECT '41 - buitenwandafwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '42 - binnenwandafwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '43 - vloerafwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '44 - trap- en hellingafwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '45 - plafondafwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '46 - beschermlagen' FROM DUAL
|
||
UNION
|
||
SELECT '47 - dakafwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '48 - afwerkingspakketten' FROM DUAL
|
||
UNION
|
||
SELECT '49 - afwerking algemeen' FROM DUAL
|
||
UNION
|
||
SELECT '51 - warmte-opwekking' FROM DUAL
|
||
UNION
|
||
SELECT '52 - afvoeren' FROM DUAL
|
||
UNION
|
||
SELECT '53 - water' FROM DUAL
|
||
UNION
|
||
SELECT '54 - gas' FROM DUAL
|
||
UNION
|
||
SELECT '55 - koude-opwekking' FROM DUAL
|
||
UNION
|
||
SELECT '56 - warmtedistributie' FROM DUAL
|
||
UNION
|
||
SELECT '57 - luchtbehandeling' FROM DUAL
|
||
UNION
|
||
SELECT '58 - regeling klimaat en sanitair' FROM DUAL
|
||
UNION
|
||
SELECT '59 - mechanische installaties' FROM DUAL
|
||
UNION
|
||
SELECT '61 - centrale elektrotechnische voorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '62 - kracht' FROM DUAL
|
||
UNION
|
||
SELECT '63 - verlichting' FROM DUAL
|
||
UNION
|
||
SELECT '64 - communicatie' FROM DUAL
|
||
UNION
|
||
SELECT '65 - beveiliging' FROM DUAL
|
||
UNION
|
||
SELECT '66 - transport' FROM DUAL
|
||
UNION
|
||
SELECT '67 - gebouwbeheersysteem' FROM DUAL
|
||
UNION
|
||
SELECT '69 - electrische installaties algemeen' FROM DUAL
|
||
UNION
|
||
SELECT '71 - vaste verkeersvoorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '72 - vaste gebruikersvoorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '73 - vaste keukenvoorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '74 - vaste sanitaire voorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '75 - vaste onderhoudsvoorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '76 - vaste opslagvoorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '79 - vaste inrichtingen' FROM DUAL
|
||
UNION
|
||
SELECT '80 - losse inrichting' FROM DUAL
|
||
UNION
|
||
SELECT '81 - losse inventaris voor verkeersruimten' FROM DUAL
|
||
UNION
|
||
SELECT '82 - losse inventaris voor gebruiksruimten' FROM DUAL
|
||
UNION
|
||
SELECT '83 - losse keukeninventaris' FROM DUAL
|
||
UNION
|
||
SELECT '84 - losse sanitaire inventaris' FROM DUAL
|
||
UNION
|
||
SELECT '85 - losse schoonmaakinventaris' FROM DUAL
|
||
UNION
|
||
SELECT '86 - losse opberginventaris' FROM DUAL
|
||
UNION
|
||
SELECT '89 - losse inventaris' FROM DUAL
|
||
UNION
|
||
SELECT '90 - terrein' FROM DUAL
|
||
UNION
|
||
SELECT '91 - grondvoorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '92 - opstallen' FROM DUAL
|
||
UNION
|
||
SELECT '93 - omeheiningen' FROM DUAL
|
||
UNION
|
||
SELECT '94 - terreinafwerking' FROM DUAL
|
||
UNION
|
||
SELECT '95 - terreininstallaties, werktuigkundig' FROM DUAL
|
||
UNION
|
||
SELECT '96 - terreininstallaties, elektrotechnisch' FROM DUAL
|
||
UNION
|
||
SELECT '97 - terreininrichting standaard' FROM DUAL
|
||
UNION
|
||
SELECT '98 - terreininrichting bijzonder' FROM DUAL
|
||
UNION
|
||
SELECT '99 - terrein algemeen' FROM DUAL;
|
||
|
||
rec c%ROWTYPE;
|
||
|
||
BEGIN
|
||
v_count_error := 0;
|
||
header_is_valid := 0;
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
|
||
DELETE fac_imp_ins;
|
||
|
||
-- Zijn de kenmerksoorten er al?
|
||
BEGIN
|
||
v_errormsg := 'Fout bij aanmaken kenmerksoort: ' || 'Component';
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_component_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'COMPONENT';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving)
|
||
VALUES ('l', 'Component') RETURNING ins_srtkenmerk_key INTO v_srtk_component_key;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Fout bij aanmaken kenmerksoort: ' || 'Fabrikant';
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_fabrikant_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'FABRIKANT';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving,
|
||
ins_srtkenmerk_lengte)
|
||
VALUES ('C', 'Fabrikant', 49) RETURNING ins_srtkenmerk_key INTO v_srtk_fabrikant_key;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Fout bij aanmaken kenmerksoort: ' || 'Type';
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_type_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'TYPE';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving,
|
||
ins_srtkenmerk_lengte)
|
||
VALUES ('C', 'Type', 49) RETURNING ins_srtkenmerk_key INTO v_srtk_type_key;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Fout bij aanmaken kenmerksoort: ' || 'Kenmerken';
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_merk_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'KENMERKEN';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving,
|
||
ins_srtkenmerk_lengte)
|
||
VALUES ('C', 'Kenmerken', 2000) RETURNING ins_srtkenmerk_key INTO v_srtk_kenmerken_key;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Fout bij aanmaken kenmerksoort: ' || 'Theoretische levensduur';
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_merk_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'THEORETISCHE LEVENSDUUR';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving,
|
||
ins_srtkenmerk_lengte)
|
||
VALUES ('N', 'Theoretische levensduur', 2) RETURNING ins_srtkenmerk_key INTO v_srtk_levensduur_key;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Fout bij aanmaken kenmerksoort: ' || 'Opmerkingen';
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_merk_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'OPMERKINGEN';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving,
|
||
ins_srtkenmerk_lengte)
|
||
VALUES ('C', 'Opmerkingen', 2000) RETURNING ins_srtkenmerk_key INTO v_srtk_opmerkingen_key;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Fout bij aanmaken kenmerksoort: ' || 'Conditie';
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_component_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'CONDITIE';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving)
|
||
VALUES ('l', 'Conditie') RETURNING ins_srtkenmerk_key INTO v_srtk_conditie_key;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Fout bij aanmaken kenmerksoort: ' || 'Huidige conditie';
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_merk_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'HUIDIGE CONDITIE';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving,
|
||
ins_srtkenmerk_lengte)
|
||
VALUES ('N', 'Huidige conditie', 2) RETURNING ins_srtkenmerk_key INTO v_srtk_huidige_c_key;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Fout bij aanmaken kenmerksoort: ' || 'Gewenste conditie';
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_merk_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'GEWENSTE CONDITIE';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving,
|
||
ins_srtkenmerk_lengte)
|
||
VALUES ('N', 'Gewenste conditie', 2) RETURNING ins_srtkenmerk_key INTO v_srtk_gewenste_c_key;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Fout bij aanmaken kenmerksoort: ' || 'Algemene opmerkingen';
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_merk_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'ALGEMENE OPMERKINGEN';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving,
|
||
ins_srtkenmerk_lengte)
|
||
VALUES ('C', 'Algemene opmerkingen', 2000) RETURNING ins_srtkenmerk_key INTO v_srtk_a_opm_key;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Fout bij aanmaken kenmerksoort: ' || 'Ramingsbedrag';
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_merk_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'RAMINGSBEDRAG';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving,
|
||
ins_srtkenmerk_lengte)
|
||
VALUES ('C', 'Ramingsbedrag', 20) RETURNING ins_srtkenmerk_key INTO v_srtk_ramingsbedrag_key;
|
||
END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Fout bij aanmaken kenmerksoort: ' || 'Toelichting';
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_merk_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'TOELICHTING';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving,
|
||
ins_srtkenmerk_lengte)
|
||
VALUES ('C', 'Toelichting', 2000) RETURNING ins_srtkenmerk_key INTO v_srtk_toelichting_key;
|
||
END;
|
||
|
||
-- Controleer of de MJOB disciplines al bestaan
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM ins_discipline
|
||
WHERE ins_discipline_omschrijving = '5 - installaties werktuigbouwkunde';
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
|
||
FOR rec IN c_dis
|
||
LOOP
|
||
BEGIN
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM ins_tab_discipline
|
||
WHERE UPPER (ins_discipline_omschrijving) = UPPER (rec.disc);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errormsg := 'Fout bij aanmaken discipline: ' || rec.disc;
|
||
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving,
|
||
ins_discipline_min_level)
|
||
VALUES (rec.disc, 1)
|
||
RETURNING ins_discipline_key
|
||
INTO v_discipline_key;
|
||
|
||
INSERT INTO ins_disc_params (ins_discipline_key,
|
||
ins_disc_params_autonum)
|
||
VALUES (v_discipline_key, 2);
|
||
|
||
v_errormsg := 'Fout bij aanmaken kenmerk: ' || 'Component';
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer, ins_kenmerk_default)
|
||
VALUES (v_srtk_component_key, v_discipline_key, 'D', 'D', 110, 'fa-cogs');
|
||
|
||
v_errormsg := 'Fout bij aanmaken kenmerk: ' || 'Fabrikant';
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer)
|
||
VALUES (v_srtk_fabrikant_key, v_discipline_key, 'D', 'D', 120);
|
||
|
||
v_errormsg := 'Fout bij aanmaken kenmerk: ' || 'Type';
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer)
|
||
VALUES (v_srtk_type_key, v_discipline_key, 'D', 'D', 130);
|
||
|
||
v_errormsg := 'Fout bij aanmaken kenmerk: ' || 'Kenmerken';
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer)
|
||
VALUES (v_srtk_kenmerken_key, v_discipline_key, 'D', 'D', 140);
|
||
|
||
v_errormsg := 'Fout bij aanmaken kenmerk: ' || 'Theoretische levensduur';
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer)
|
||
VALUES (v_srtk_levensduur_key, v_discipline_key, 'D', 'D', 150);
|
||
|
||
v_errormsg := 'Fout bij aanmaken kenmerk: ' || 'Opmerkingen';
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer)
|
||
VALUES (v_srtk_opmerkingen_key, v_discipline_key, 'D', 'D', 160);
|
||
|
||
v_errormsg := 'Fout bij aanmaken kenmerk: ' || 'Conditie';
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer, ins_kenmerk_default)
|
||
VALUES (v_srtk_conditie_key, v_discipline_key, 'D', 'D', 170, 'fa-thermometer-half');
|
||
|
||
v_errormsg := 'Fout bij aanmaken kenmerk: ' || 'Huidige conditie';
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer)
|
||
VALUES (v_srtk_huidige_c_key, v_discipline_key, 'D', 'D', 180);
|
||
|
||
v_errormsg := 'Fout bij aanmaken kenmerk: ' || 'Gewenste conditie';
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer)
|
||
VALUES (v_srtk_gewenste_c_key, v_discipline_key, 'D', 'D', 190);
|
||
|
||
v_errormsg := 'Fout bij aanmaken kenmerk: ' || 'Algemene opmerking';
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer)
|
||
VALUES (v_srtk_a_opm_key, v_discipline_key, 'D', 'D', 200);
|
||
|
||
v_errormsg := 'Fout bij aanmaken kenmerk: ' || 'Ramingsbedrag';
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer)
|
||
VALUES (v_srtk_ramingsbedrag_key, v_discipline_key, 'D', 'D', 210);
|
||
|
||
v_errormsg := 'Fout bij aanmaken kenmerk: ' || 'Toelichting';
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer)
|
||
VALUES (v_srtk_toelichting_key, v_discipline_key, 'D', 'D', 220);
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
FOR rec_grp IN c_grp
|
||
LOOP
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM ins_tab_discipline
|
||
WHERE SUBSTR (ins_discipline_omschrijving, 1, 3) =
|
||
SUBSTR (rec_grp.groep, 1, 1) || ' -';
|
||
|
||
BEGIN
|
||
SELECT ins_srtgroep_key
|
||
INTO v_srtgroep_key
|
||
FROM ins_srtgroep
|
||
WHERE UPPER (ins_srtgroep_omschrijving) = UPPER (rec_grp.groep)
|
||
AND ins_discipline_key = v_discipline_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtgroep (ins_discipline_key,
|
||
ins_srtgroep_omschrijving)
|
||
VALUES (v_discipline_key, rec_grp.groep)
|
||
RETURNING ins_discipline_key
|
||
INTO v_discipline_key;
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Het importbestand bevat 0D, 0A combinaties. Hier kan de importfunctie niet tegen.
|
||
-- Daarom worden ze hier samengevoegd. We controleren of het aantal dubbele quotes even is.
|
||
OPEN c;
|
||
IF c%ISOPEN
|
||
THEN
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
v_newline := NULL;
|
||
v_counter := 0;
|
||
v_odd := 1;
|
||
|
||
WHILE v_odd = 1 AND v_counter < 10
|
||
LOOP
|
||
FETCH c INTO rec;
|
||
EXIT WHEN c%NOTFOUND;
|
||
|
||
IF v_newline IS NULL
|
||
THEN
|
||
v_newline := rec.fac_imp_file_line;
|
||
ELSE
|
||
v_newline := v_newline || CHR (10) || rec.fac_imp_file_line;
|
||
END IF;
|
||
|
||
v_odd := MOD (LENGTH (v_newline) - LENGTH (REPLACE (v_newline, '"')), 2);
|
||
v_counter := v_counter + 1;
|
||
END LOOP;
|
||
|
||
IF c%NOTFOUND THEN
|
||
EXIT;
|
||
END IF;
|
||
v_errormsg := 'Fout opvragen te importeren rij';
|
||
v_aanduiding := '';
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_alg_ruimte_nr);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_alg_gebouw_txt);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 15, v_ins_deel_aanmaak_txt);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 10, v_ins_deel_aantal_txt);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 11, v_ins_deel_eenheid);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_ins_deel_omschrijving);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 8, v_ins_deel_opmerking);
|
||
-- fac.imp_getfield_nr (v_newline, c_fielddelimitor, 29, v_ins_srtcontrole_periode_txt);
|
||
-- fac.imp_getfield_nr (v_newline, c_fielddelimitor, 24, v_ins_srtcontrole_prijs_txt);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_ins_srtdeel_code);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 7, v_ins_srtdeel_omschrijving);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 12, v_kenmerk1); -- Fabrikant
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 13, v_kenmerk2); -- Type
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 14, v_kenmerk3); -- Kenmerken
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 16, v_kenmerk4); -- Theoretische levensduur
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 17, v_kenmerk6); -- Opmerkingen
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 18, v_kenmerk7); -- Huidige conditie
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 19, v_kenmerk8); -- Gewenste conditie
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 20, v_kenmerk9); -- Opmerking
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 21, v_kenmerk10); -- Ramingsbedrag
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 22, v_kenmerk11); -- Toelichting
|
||
|
||
IF rec.fac_imp_file_index = 1
|
||
THEN
|
||
IF v_kenmerk8 <> 'Component Gewenste Conditie'
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'');
|
||
RETURN;
|
||
END IF;
|
||
ELSIF FAC.safe_to_number(v_ins_deel_omschrijving) IS NULL
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Geen geldige regel, id is geen nummer',
|
||
SUBSTR(v_newline, 1, 200));
|
||
|
||
ELSE
|
||
|
||
v_aanduiding := v_ins_deel_omschrijving || '|' || v_kenmerk4;
|
||
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_discipline_omschrijving: ' || v_ins_srtdeel_code;
|
||
SELECT d.ins_discipline_omschrijving
|
||
INTO v_ins_discipline_omschrijving
|
||
FROM ins_discipline d
|
||
WHERE SUBSTR (d.ins_discipline_omschrijving, 1, 1) = SUBSTR (v_ins_srtdeel_code, 1, 1);
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtgroep_omschrijving: ' || v_ins_srtdeel_code;
|
||
SELECT sg.ins_srtgroep_omschrijving
|
||
INTO v_ins_srtgroep_omschrijving
|
||
FROM ins_srtgroep sg
|
||
WHERE SUBSTR (sg.ins_srtgroep_omschrijving, 1, 2) = SUBSTR (v_ins_srtdeel_code, 1, 2);
|
||
|
||
IF UPPER(v_ins_srtdeel_omschrijving) = 'ALGEMEEN'
|
||
THEN
|
||
v_ins_srtdeel_omschrijving := v_ins_srtdeel_omschrijving || ' (' || v_ins_srtdeel_code || ')';
|
||
END IF;
|
||
|
||
-- BEGIN
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_alg_gebouw_code: ' || v_alg_gebouw_txt;
|
||
v_index := instr(v_alg_gebouw_txt, '-');
|
||
IF v_index <> 0
|
||
THEN
|
||
v_alg_gebouw_txt := SUBSTR(v_alg_gebouw_txt, 1, instr(v_alg_gebouw_txt, '-')-1);
|
||
END IF;
|
||
SELECT alg_locatie_code, alg_gebouw_upper
|
||
INTO v_alg_locatie_code, v_alg_gebouw_code
|
||
FROM alg_v_gebouw_gegevens gg
|
||
WHERE 'GEBOUW ' || gg.alg_gebouw_upper = UPPER(v_alg_gebouw_txt);
|
||
-- EXCEPTION WHEN NO_DATA_FOUND THEN
|
||
|
||
|
||
|
||
-- END;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_alg_ruimte_nr: ' || v_alg_ruimte_nr;
|
||
SELECT alg_verdieping_volgnr, alg_ruimte_nr
|
||
INTO v_alg_verdieping_volgnr, v_alg_ruimte_nr
|
||
FROM alg_v_ruimte_gegevens rg
|
||
WHERE rg.alg_ruimte_nr = v_alg_ruimte_txt
|
||
AND rg.alg_gebouw_upper = v_alg_gebouw_code;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
|
||
SELECT MIN(alg_ruimte_key)
|
||
INTO v_alg_ruimte_key
|
||
FROM alg_v_ruimte_gegevens rg
|
||
WHERE alg_gebouw_upper = v_alg_gebouw_code;
|
||
|
||
SELECT alg_verdieping_volgnr, alg_ruimte_nr
|
||
INTO v_alg_verdieping_volgnr, v_alg_ruimte_nr
|
||
FROM alg_v_ruimte_gegevens rg
|
||
WHERE rg.alg_ruimte_key = v_alg_ruimte_key;
|
||
|
||
END;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_deel_aanmaak_txt: ' || v_ins_deel_aanmaak_txt;
|
||
v_ins_deel_aanmaak := NULL;
|
||
IF v_ins_deel_aanmaak_txt IS NOT NULL
|
||
THEN
|
||
v_ins_deel_aanmaak := to_date('0101' || v_ins_deel_aanmaak_txt, 'ddmmyyyy');
|
||
ELSE
|
||
v_ins_deel_aanmaak := SYSDATE;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_deel_aantal_txt: ' || v_ins_deel_aantal_txt;
|
||
IF v_ins_deel_aantal_txt IS NOT NULL
|
||
THEN
|
||
v_ins_deel_aantal := to_number(v_ins_deel_aantal_txt);
|
||
ELSE
|
||
v_ins_deel-aantal := NULL;
|
||
END IF;
|
||
|
||
INSERT INTO fac_imp_ins (ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_ruimte_nr,
|
||
ins_kenmerkwaarde1,
|
||
ins_kenmerkwaarde2,
|
||
ins_kenmerkwaarde3,
|
||
ins_kenmerkwaarde4,
|
||
ins_kenmerkwaarde6,
|
||
ins_kenmerkwaarde7,
|
||
ins_kenmerkwaarde8,
|
||
ins_kenmerkwaarde9,
|
||
ins_kenmerkwaarde10,
|
||
ins_kenmerkwaarde11,
|
||
ins_deel_aanmaak,
|
||
ins_deel_aantal)
|
||
VALUES (SUBSTR(v_ins_discipline_omschrijving, 1,60),
|
||
SUBSTR(v_ins_srtgroep_omschrijving, 1, 60),
|
||
SUBSTR(v_ins_srtdeel_code,1,10),
|
||
SUBSTR(v_ins_srtdeel_omschrijving, 1, 100),
|
||
SUBSTR(p_type || v_ins_deel_omschrijving, 1, 60),
|
||
SUBSTR(v_ins_deel_opmerking, 1, 320),
|
||
SUBSTR(v_alg_locatie_code, 1, 10),
|
||
SUBSTR(v_alg_gebouw_code, 1, 12),
|
||
v_alg_verdieping_volgnr,
|
||
SUBSTR(v_alg_ruimte_nr,1,20),
|
||
DECODE(v_kenmerk1, NULL, NULL, 'Fabrikant|0=' || v_kenmerk1),
|
||
DECODE(v_kenmerk2, NULL, NULL, 'Type|0=' || v_kenmerk2),
|
||
DECODE(v_kenmerk3, NULL, NULL, 'Kenmerken|0=' || v_kenmerk3),
|
||
DECODE(v_kenmerk4, NULL, NULL, 'Theoretische levensduur|0=' || v_kenmerk4),
|
||
DECODE(v_kenmerk6, NULL, NULL, 'Opmerkingen|0=' || v_kenmerk6),
|
||
DECODE(v_kenmerk7, NULL, NULL, 'Huidige conditie|0=' || v_kenmerk7),
|
||
DECODE(v_kenmerk8, NULL, NULL, 'Gewenste conditie|0=' || v_kenmerk8),
|
||
DECODE(v_kenmerk9, NULL, NULL, 'Algemene opmerkingen|0=' || v_kenmerk9),
|
||
DECODE(v_kenmerk10, NULL, NULL, 'Ramingsbedrag|0=' || v_kenmerk10),
|
||
DECODE(v_kenmerk11, NULL, NULL, 'Toelichting|0=' || v_kenmerk11),
|
||
v_ins_deel_aanmaak,
|
||
to_number(v_ins_deel_aantal));
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END yfth_import_assets;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yfth_import_w_assets (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
yfth_import_assets(p_import_key, 'W');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yfth_import_e_assets (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
yfth_import_assets(p_import_key, 'E');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yfth_import_b_assets (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
yfth_import_assets(p_import_key, 'B');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yfth_update_w_assets (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
fac_update_ins(p_import_key);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yfth_update_e_assets (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
fac_update_ins(p_import_key);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yfth_update_b_assets (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
fac_update_ins(p_import_key);
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE yfth_import_taken (p_import_key IN NUMBER)
|
||
AS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count NUMBER;
|
||
v_ongeldig NUMBER (1);
|
||
v_mode NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_all_null BOOLEAN;
|
||
v_count_error NUMBER (10);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
|
||
-- De importvelden:
|
||
v_ins_deel_omschrijving VARCHAR2(100);
|
||
v_ins_srtcontrole_omschrijving VARCHAR2(100);
|
||
v_vantoepassing VARCHAR2(100);
|
||
v_rapportaanwezig VARCHAR2(100);
|
||
v_laatstekeuring VARCHAR2(100);
|
||
v_volgendekeuring VARCHAR2(100);
|
||
v_goedgekeurd VARCHAR2(100);
|
||
v_actie VARCHAR2(100);
|
||
v_type VARCHAR2(100);
|
||
v_type_txt VARCHAR2(100);
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
BEGIN
|
||
|
||
DELETE fac_imp_ins;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen te importeren rij';
|
||
v_aanduiding := '';
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 7, v_ins_deel_omschrijving);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_type_txt);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 9, v_ins_srtcontrole_omschrijving);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 10, v_vantoepassing);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 11, v_rapportaanwezig);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 12, v_laatstekeuring);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 13, v_volgendekeuring);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 14, v_goedgekeurd);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 15, v_actie);
|
||
|
||
|
||
IF rec.fac_imp_file_index = 2 AND v_goedgekeurd <> 'Goedgekeurd'
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'');
|
||
RETURN;
|
||
END IF;
|
||
|
||
v_type := '';
|
||
IF v_type_txt = 'SLA 4' THEN v_type := 'B';
|
||
ELSIF v_type_txt = 'SLA 5 E' THEN v_type := 'E';
|
||
ELSIF v_type_txt = 'SLA 5 W' THEN v_type := 'W';
|
||
END IF;
|
||
|
||
v_aanduiding := v_ins_deel_omschrijving || '|' || v_type;
|
||
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
IF v_ins_deel_omschrijving IS NOT NULL
|
||
THEN
|
||
INSERT INTO fac_imp_ins (ins_deel_omschrijving,
|
||
ins_kenmerkwaarde1,
|
||
ins_kenmerkwaarde2,
|
||
ins_kenmerkwaarde3,
|
||
ins_kenmerkwaarde4,
|
||
ins_kenmerkwaarde5,
|
||
ins_kenmerkwaarde6,
|
||
ins_kenmerkwaarde7)
|
||
VALUES (SUBSTR(v_type || v_ins_deel_omschrijving, 1, 60),
|
||
v_ins_srtcontrole_omschrijving,
|
||
v_vantoepassing,
|
||
v_rapportaanwezig,
|
||
v_laatstekeuring,
|
||
v_volgendekeuring,
|
||
v_goedgekeurd,
|
||
v_actie);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Een deel van de objecten wordt uitgesplitst in een .1 .2 ed. Deze worden samengenomen tot <20><>n object
|
||
-- Hetzelfde geldt voor samengenomen objecten 213-214. Hier worden de taken op het eerst object geplaatst.
|
||
UPDATE fac_imp_ins
|
||
SET ins_deel_omschrijving =
|
||
SUBSTR (ins_deel_omschrijving,
|
||
1,
|
||
INSTR (ins_deel_omschrijving, '-') - 1)
|
||
WHERE ins_deel_omschrijving LIKE '%-%';
|
||
|
||
UPDATE fac_imp_ins
|
||
SET ins_deel_omschrijving =
|
||
SUBSTR (ins_deel_omschrijving,
|
||
1,
|
||
INSTR (ins_deel_omschrijving, '.') - 1)
|
||
WHERE ins_deel_omschrijving LIKE '%.%';
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END yfth_import_taken;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE yfth_update_taken (p_import_key IN NUMBER)
|
||
AS
|
||
v_aanduiding VARCHAR2 (100);
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
v_deel_key NUMBER;
|
||
v_discipline_key NUMBER;
|
||
v_discipline_prefix VARCHAR2 (3);
|
||
v_srtcontrole_key NUMBER;
|
||
v_controlemode_key NUMBER;
|
||
v_srtcontroledl_xcp_key NUMBER;
|
||
|
||
CURSOR c IS
|
||
SELECT ins_deel_omschrijving,
|
||
ins_kenmerkwaarde1 taak,
|
||
MAX (ins_kenmerkwaarde2) vantoepassing,
|
||
MAX (ins_kenmerkwaarde3) rapportaanwezig,
|
||
MAX (ins_kenmerkwaarde4) laatstekeuring,
|
||
MAX (ins_kenmerkwaarde5) volgendekeuring,
|
||
MAX (ins_kenmerkwaarde6) goedgekeurd,
|
||
COUNT (*) aantal
|
||
FROM fac_imp_ins
|
||
-- WHERE ins_deel_omschrijving LIKE 'W%'
|
||
GROUP BY ins_deel_omschrijving, ins_kenmerkwaarde1;
|
||
BEGIN
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
-- we gaan op zoek naar het object
|
||
v_errormsg :=
|
||
'Fout bij bepalen deel: ' || rec.ins_deel_omschrijving;
|
||
|
||
SELECT ins_deel_key,
|
||
ins_discipline_key,
|
||
SUBSTR (ins_discipline_omschrijving, 1, 3)
|
||
INTO v_deel_key, v_discipline_key, v_discipline_prefix
|
||
FROM ins_v_deel_gegevens
|
||
WHERE ins_deel_omschrijving = rec.ins_deel_omschrijving;
|
||
|
||
BEGIN
|
||
-- controleer of de taak al bestaat
|
||
|
||
|
||
SELECT ins_srtcontrole_key
|
||
INTO v_srtcontrole_key
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtinstallatie_key = v_discipline_key
|
||
AND ctr_discipline_key = 5
|
||
AND UPPER (ins_srtcontrole_omschrijving) =
|
||
v_discipline_prefix || UPPER (rec.taak);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtcontrole (
|
||
ins_srtinstallatie_key,
|
||
ins_srtcontrole_omschrijving,
|
||
ins_srtcontrole_niveau,
|
||
ctr_discipline_key,
|
||
ins_srtcontrole_periode,
|
||
ins_srtcontrole_eenheid,
|
||
ins_srtcontrole_mode,
|
||
ins_srtcontrole_level,
|
||
ins_srtcontrole_options)
|
||
VALUES (v_discipline_key,
|
||
v_discipline_prefix || rec.taak,
|
||
'D',
|
||
5,
|
||
0,
|
||
3,
|
||
1,
|
||
10,
|
||
15)
|
||
RETURNING ins_srtcontrole_key INTO v_srtcontrole_key;
|
||
END;
|
||
|
||
BEGIN
|
||
SELECT ins_srtcontroledl_xcp_key
|
||
INTO v_srtcontroledl_xcp_key
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_deel_key = v_deel_key
|
||
AND ins_srtcontrole_key = v_srtcontrole_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtcontroledl_xcp (
|
||
ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_eenheid)
|
||
VALUES (v_deel_key,
|
||
v_srtcontrole_key,
|
||
12,
|
||
3);
|
||
|
||
END;
|
||
|
||
|
||
IF rec.laatstekeuring IS NOT NULL
|
||
THEN
|
||
v_controlemode_key := 11;
|
||
IF UPPER(rec.goedgekeurd) = 'JA' THEN v_controlemode_key := 10; END IF;
|
||
|
||
-- TODO: Controleer of de controle al bestaat met dezelfde datum.
|
||
INSERT INTO ins_deelsrtcontrole (ins_deel_key, ins_srtcontrole_key, ins_deelsrtcontrole_datum, ins_deelsrtcontrole_datum_org, ins_controlemode_key, ins_deelsrtcontrole_status, ins_scenario_key, prs_perslid_key)
|
||
VALUES (v_deel_key, v_srtcontrole_key, to_date(rec.laatstekeuring, 'dd-mm-yyyy'), to_date(rec.laatstekeuring, 'dd-mm-yyyy'), v_controlemode_key, 6, 1, 3);
|
||
END IF;
|
||
|
||
IF rec.volgendekeuring IS NOT NULL
|
||
THEN
|
||
INSERT INTO ins_deelsrtcontrole (ins_deel_key, ins_srtcontrole_key, ins_deelsrtcontrole_plandatum, ins_deelsrtcontrole_status, ins_scenario_key, prs_perslid_key)
|
||
VALUES (v_deel_key, v_srtcontrole_key, to_date(rec.volgendekeuring, 'dd-mm-yyyy'), 0, 1, 3);
|
||
END IF;
|
||
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW yfth_v_wet_oh_dashboard
|
||
AS
|
||
SELECT COALESCE (ins_deelsrtcontrole_plandatum, ins_deelsrtcontrole_datum)
|
||
datum,
|
||
SUBSTR (ins_deel_omschrijving, 1, 1)
|
||
prefix,
|
||
ins_deel_omschrijving,
|
||
ins_srtdeel_omschrijving,
|
||
ins_discipline_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
g.alg_gebouw_omschrijving,
|
||
DECODE (
|
||
ins_deelsrtcontrole_plandatum,
|
||
NULL, DECODE (ins_controlemode_key,
|
||
10, 'Goedgekeurd',
|
||
'Afgekeurd'),
|
||
'Gepland')
|
||
Status
|
||
FROM ins_v_deel_gegevens dg,
|
||
ins_deelsrtcontrole dsc,
|
||
alg_gebouw g,
|
||
alg_locatie l
|
||
WHERE dg.ins_deel_key = dsc.ins_deel_key
|
||
AND dg.alg_gebouw_key = g.alg_gebouw_key
|
||
AND dg.alg_locatie_key = l.alg_locatie_key;
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE yfth_daily
|
||
AS
|
||
BEGIN
|
||
YFTH.zet_opdracht_op_verwerkt;
|
||
END;
|
||
/
|
||
|
||
------ 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
|