2798 lines
114 KiB
SQL
2798 lines
114 KiB
SQL
-- Script containing customer specific db-configuration for KFNS.
|
|
-- (c) 2015 Facilitor B.V.
|
|
--
|
|
-- Support: +31 53 4800700
|
|
set echo on
|
|
spool xkfns.lst
|
|
|
|
CREATE OR REPLACE VIEW kfns_v_rap_import_log
|
|
(
|
|
fclt_f_applicatie,
|
|
datum,
|
|
fclt_f_status,
|
|
omschrijving,
|
|
hint
|
|
)
|
|
AS
|
|
SELECT COALESCE (fac_import_app_code, imp_log_applicatie),
|
|
TO_CHAR (imp_log_datum, 'dd-mm-yyyy hh24:mi'),
|
|
imp_log_status,
|
|
imp_log_omschrijving,
|
|
imp_log_hint
|
|
FROM imp_log il1, fac_import fi1, fac_import_app fia1
|
|
WHERE il1.fac_import_key = fi1.fac_import_key(+)
|
|
AND fi1.fac_import_app_key = fia1.fac_import_app_key(+)
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM imp_log il2, fac_import fi2
|
|
WHERE il2.fac_import_key = fi2.fac_import_key
|
|
AND fi2.fac_import_app_key = fi1.fac_import_app_key
|
|
AND il2.fac_import_key > il1.fac_import_key);
|
|
|
|
-- Import vanuit Strukton
|
|
/* Formatted on 22-5-2015 11:52:44 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE PROCEDURE kfns_import_opdrstat_strukton (p_import_key IN NUMBER)
|
|
AS
|
|
c_delim VARCHAR2 (1) := ';';
|
|
v_newline VARCHAR2 (4000); -- Input line
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_aanduiding VARCHAR2 (1000) := '';
|
|
header_is_valid NUMBER := 0;
|
|
v_count_tot NUMBER (10) := 0;
|
|
v_count_import NUMBER (10) := 0;
|
|
v_ongeldig NUMBER (1) := 0;
|
|
-- De importvelden
|
|
v_mld_opdr_key_tekst VARCHAR2 (100);
|
|
v_mld_opdr_key NUMBER (10);
|
|
v_mld_opdr_opmerking VARCHAR2 (4000);
|
|
v_extern_nummer VARCHAR2 (100);
|
|
v_status_code VARCHAR2 (100);
|
|
v_status NUMBER (10);
|
|
v_datumtijd_tekst VARCHAR2 (100);
|
|
v_datumtijd DATE;
|
|
v_status_tekst VARCHAR2 (100);
|
|
v_opmerking VARCHAR2 (4000);
|
|
|
|
-- Overige velden:
|
|
CURSOR c1
|
|
IS
|
|
SELECT *
|
|
FROM fac_imp_file
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY fac_imp_file_index;
|
|
BEGIN
|
|
-- Eerst opruiming
|
|
DELETE FROM kfns_imp_opdrstat_strukton;
|
|
|
|
COMMIT;
|
|
|
|
FOR rec1 IN c1
|
|
LOOP
|
|
BEGIN
|
|
v_newline := rec1.fac_imp_file_line;
|
|
v_errormsg := 'Fout bij opvragen importregel';
|
|
v_aanduiding := '';
|
|
v_ongeldig := 0;
|
|
|
|
-- Lees alle veldwaarden
|
|
fac.imp_getfield (v_newline, c_delim, v_mld_opdr_key_tekst);
|
|
fac.imp_getfield (v_newline, c_delim, v_extern_nummer);
|
|
fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID
|
|
fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst);
|
|
fac.imp_getfield (v_newline, c_delim, v_status_tekst);
|
|
fac.imp_getfield (v_newline, c_delim, v_opmerking);
|
|
v_opmerking := SUBSTR (v_opmerking, 1, 1000);
|
|
-- Verwijder de markering voor cr/lf die in stylesheet is toegevoegd.
|
|
v_opmerking := REPLACE (v_opmerking, '@@', CHR (13));
|
|
v_aanduiding :=
|
|
'['
|
|
|| v_mld_opdr_key_tekst
|
|
|| '|'
|
|
|| v_extern_nummer
|
|
|| '|'
|
|
|| v_status_code
|
|
|| '|'
|
|
|| v_datumtijd_tekst
|
|
|| '|'
|
|
|| v_status_tekst
|
|
|| '] ';
|
|
|
|
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
|
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
|
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
|
IF header_is_valid = 0
|
|
THEN
|
|
IF UPPER (TRIM (v_mld_opdr_key_tekst)) = 'REFERENCEID'
|
|
AND UPPER (TRIM (v_extern_nummer)) = 'SERVICEREQUESTID'
|
|
AND UPPER (TRIM (v_status_code)) = 'TYPEID'
|
|
AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME'
|
|
AND UPPER (TRIM (v_opmerking)) = 'REMARKS'
|
|
THEN
|
|
header_is_valid := 1;
|
|
END IF;
|
|
ELSE
|
|
v_count_tot := v_count_tot + 1;
|
|
-- Controleer alle veldwaarden
|
|
v_errormsg := 'Fout bepalen opdracht';
|
|
v_mld_opdr_key := TRIM (v_mld_opdr_key);
|
|
|
|
BEGIN
|
|
SELECT o.mld_opdr_key, o.mld_opdr_opmerking
|
|
INTO v_mld_opdr_key, v_mld_opdr_opmerking
|
|
FROM mld_opdr o,
|
|
mld_melding m,
|
|
mld_stdmelding sm,
|
|
ins_tab_discipline td,
|
|
ins_srtdiscipline sd
|
|
WHERE o.mld_melding_key = m.mld_melding_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
|
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND sd.ins_srtdiscipline_prefix
|
|
|| m.mld_melding_key
|
|
|| '/'
|
|
|| o.mld_opdr_bedrijfopdr_volgnr =
|
|
v_mld_opdr_key_tekst;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_ongeldig := 1;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| ' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding || v_errormsg,
|
|
'');
|
|
END;
|
|
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
v_errormsg := 'Fout bepalen status';
|
|
|
|
CASE
|
|
WHEN v_status_code = '5'
|
|
THEN
|
|
v_status := 5; -- uitgegeven
|
|
WHEN v_status_code = '10'
|
|
THEN
|
|
v_status := 8; -- geaccepteerd
|
|
WHEN v_status_code = '20' -- monteur gereed
|
|
THEN
|
|
v_status := 6; -- afgemeld
|
|
WHEN v_status_code = '25' -- specialist gereed
|
|
THEN
|
|
v_status := 6; -- afgemeld
|
|
WHEN v_status_code = '30' -- technisch gereed
|
|
THEN
|
|
v_status := 6; -- afgemeld
|
|
-- For future use
|
|
--WHEN v_status_code = '40' -- uitgeprijst
|
|
--THEN
|
|
-- v_status := 6; -- afgemeld
|
|
WHEN v_status_code = '70'
|
|
THEN
|
|
v_status := 1; -- geannuleerd
|
|
WHEN v_status_code = '80'
|
|
THEN
|
|
v_status := 1; -- afgewezen
|
|
ELSE
|
|
v_status := NULL;
|
|
v_ongeldig := 1; -- nog te bezien
|
|
END CASE;
|
|
END IF;
|
|
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
v_errormsg := 'Fout converteren datumtijd';
|
|
|
|
IF INSTR (v_datumtijd_tekst, '.') > 0
|
|
THEN
|
|
v_datumtijd :=
|
|
fac.safe_to_date (
|
|
REPLACE (
|
|
SUBSTR (v_datumtijd_tekst,
|
|
1,
|
|
INSTR (v_datumtijd_tekst, '.') - 1),
|
|
'T',
|
|
' '),
|
|
'yyyy-mm-dd hh24:mi:ss');
|
|
ELSE
|
|
v_datumtijd :=
|
|
fac.safe_to_date (v_datumtijd_tekst,
|
|
'yyyy-mm-dd hh24:mi:ss');
|
|
END IF;
|
|
END IF;
|
|
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
v_errormsg := 'Fout aanvullen opmerking';
|
|
|
|
-- controleer of de opmerking niet leeg is en of dezelfde opmerking al bij een eerdere statusovergang
|
|
-- gemeld is.
|
|
IF v_opmerking IS NOT NULL
|
|
AND INSTR (v_mld_opdr_opmerking, v_opmerking) = 0
|
|
THEN
|
|
v_opmerking :=
|
|
'['
|
|
|| v_datumtijd_tekst
|
|
|| '] - '
|
|
|| v_status_tekst
|
|
|| CHR (13)
|
|
|| CHR (10)
|
|
|| v_opmerking;
|
|
ELSE
|
|
v_opmerking :=
|
|
'[' || v_datumtijd_tekst || '] - ' || v_status_tekst;
|
|
END IF;
|
|
END IF;
|
|
|
|
-- Insert geformatteerde import record
|
|
IF v_ongeldig = 0
|
|
THEN
|
|
BEGIN
|
|
v_errormsg := 'Fout wegschrijven statusbericht';
|
|
|
|
INSERT INTO kfns_imp_opdrstat_strukton (mld_opdr_key,
|
|
extern_nummer,
|
|
status,
|
|
datumtijd,
|
|
opmerking)
|
|
VALUES (v_mld_opdr_key,
|
|
v_extern_nummer,
|
|
v_status,
|
|
v_datumtijd,
|
|
v_opmerking);
|
|
|
|
v_count_import := v_count_import + 1;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| ' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'');
|
|
END;
|
|
ELSE
|
|
IF v_status_code <> '40' AND v_status_code <> '45'
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'');
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
END LOOP;
|
|
|
|
IF header_is_valid = 0
|
|
THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Ongeldig importbestand',
|
|
'Geen header of header niet volgens specificatie!');
|
|
ELSE
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Inleesproces/#ingelezen statusberichten: ' || TO_CHAR (v_count_tot),
|
|
'');
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Inleesproces/#ongeldige niet ingelezen statusberichten: '
|
|
|| TO_CHAR (v_count_tot - v_count_import),
|
|
'');
|
|
END IF;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| ' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'Inleesproces statusberichten afgebroken!');
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE kfns_update_opdrstat_strukton (p_import_key IN NUMBER)
|
|
AS
|
|
-- Cursor loopt - in volgorde! - over alle ingelezen statusberichten.
|
|
CURSOR c1
|
|
IS
|
|
SELECT mld_opdr_key, extern_nummer, datumtijd, status, opmerking
|
|
FROM kfns_imp_opdrstat_strukton
|
|
ORDER BY 1, 3;
|
|
|
|
c_user_key NUMBER (10) := 5; -- _STRUKTON-user
|
|
c_refnr_srtkkey NUMBER (10) := 41; -- Refnr. Leverancier
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_aanduiding VARCHAR2 (200);
|
|
v_count_tot NUMBER (10) := 0;
|
|
v_count NUMBER (10) := 0;
|
|
v_mld_key NUMBER (10) := 0;
|
|
v_opdr_key NUMBER (10) := 0;
|
|
v_opdr_status NUMBER (10) := 0;
|
|
v_mld_typeopdr_key NUMBER (10);
|
|
v_mld_kenmerk_key NUMBER (10);
|
|
v_mld_kenmerkopdr_key NUMBER (10);
|
|
BEGIN
|
|
-- Loop over alle ingelezen Strukton-statusberichten.
|
|
FOR rec IN c1
|
|
LOOP
|
|
BEGIN
|
|
v_aanduiding :=
|
|
'['
|
|
|| rec.mld_opdr_key
|
|
|| '|'
|
|
|| SUBSTR (rec.opmerking, 1, 100)
|
|
|| '] ';
|
|
v_count_tot := v_count_tot + 1;
|
|
|
|
-- Key van melding/opdracht bepalen en Refnr. bij opdracht opslaan.
|
|
IF rec.mld_opdr_key IS NOT NULL
|
|
THEN
|
|
v_errormsg := 'Fout bepalen opdracht.';
|
|
|
|
SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key, mld_typeopdr_key
|
|
INTO v_mld_key, v_opdr_key, v_opdr_status, v_mld_typeopdr_key
|
|
FROM mld_opdr
|
|
WHERE mld_opdr_key = rec.mld_opdr_key;
|
|
|
|
v_errormsg := 'Fout bepalen Refnr-kenmerk.';
|
|
|
|
SELECT k.mld_kenmerk_key
|
|
INTO v_mld_kenmerk_key
|
|
FROM mld_kenmerk k
|
|
WHERE k.mld_srtkenmerk_key = c_refnr_srtkkey
|
|
AND k.mld_typeopdr_key = v_mld_typeopdr_key;
|
|
|
|
v_errormsg := 'Fout bepalen Refnr-kenmerkopdracht.';
|
|
|
|
SELECT MAX (ko.mld_kenmerkopdr_key)
|
|
INTO v_mld_kenmerkopdr_key
|
|
FROM mld_kenmerkopdr ko
|
|
WHERE ko.mld_opdr_key = v_opdr_key
|
|
AND v_mld_kenmerk_key = ko.mld_kenmerk_key;
|
|
|
|
IF v_mld_kenmerkopdr_key IS NULL
|
|
THEN
|
|
-- Kenmerk toevoegen
|
|
v_errormsg := 'Fout toevoegen Refnr-kenmerkopdracht.';
|
|
|
|
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key,
|
|
mld_opdr_key,
|
|
mld_kenmerkopdr_waarde)
|
|
VALUES (v_mld_kenmerk_key, v_opdr_key, rec.extern_nummer);
|
|
ELSE
|
|
-- Kenmerk bijwerken
|
|
v_errormsg := 'Fout bijwerken Refnr-kenmerkopdracht.';
|
|
|
|
UPDATE mld_kenmerkopdr
|
|
SET mld_kenmerkopdr_waarde = rec.extern_nummer
|
|
WHERE mld_kenmerkopdr_key = v_mld_kenmerkopdr_key;
|
|
END IF;
|
|
|
|
v_errormsg := 'Fout bijwerken Opmerking (opdracht).';
|
|
|
|
v_count := LENGTH (rec.opmerking) + 5; -- Beetje speling qua lengte!
|
|
|
|
UPDATE mld_opdr
|
|
SET mld_opdr_opmerking =
|
|
DECODE (
|
|
mld_opdr_opmerking,
|
|
NULL,
|
|
rec.opmerking,
|
|
rec.opmerking
|
|
|| CHR (13)
|
|
|| CHR (10)
|
|
|| SUBSTR (mld_opdr_opmerking, 1, (4000 - v_count)))
|
|
WHERE mld_opdr_key = v_opdr_key;
|
|
|
|
v_errormsg := 'Fout bijwerken Status.';
|
|
|
|
IF v_opdr_status <> rec.status
|
|
THEN
|
|
IF rec.status = 8 AND v_opdr_status = 5
|
|
THEN
|
|
-- Accepteer opdracht als de opdracht uitgegeven was
|
|
MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton
|
|
ELSIF rec.status = 6 AND v_opdr_status = 5
|
|
THEN
|
|
-- Meld de opdracht af als deze uitgegeven was
|
|
MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton, eerst accepteren
|
|
MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton
|
|
ELSIF rec.status = 6 AND v_opdr_status = 8
|
|
THEN
|
|
-- Meld de opdracht af als deze geaccepteerd was
|
|
MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton
|
|
ELSIF rec.status = 1 AND v_opdr_status IN (5, 8)
|
|
THEN
|
|
-- Wijs de opdracht af als deze niet/wel geaccepteerd was
|
|
MLD.setopdrachtstatus (v_opdr_key, 1, c_user_key); -- Strukton
|
|
MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0);
|
|
END IF;
|
|
|
|
IF rec.status = 6 AND v_opdr_status <> 6
|
|
THEN
|
|
v_errormsg := 'Fout bijwerken Opmerking (melding).';
|
|
|
|
UPDATE mld_melding m
|
|
SET mld_melding_opmerking =
|
|
DECODE (
|
|
mld_melding_opmerking,
|
|
NULL,
|
|
rec.opmerking,
|
|
rec.opmerking || CHR (13) || CHR (10)
|
|
|| SUBSTR (mld_melding_opmerking,
|
|
1,
|
|
(4000 - v_count)))
|
|
WHERE mld_melding_key = v_mld_key
|
|
AND mld_melding_status IN (4, 7)
|
|
AND NOT EXISTS
|
|
( -- Afhandeling in melding niet aanpassen voor projecten
|
|
SELECT sm.mld_stdmelding_key
|
|
FROM mld_stdmelding sm,
|
|
ins_tab_discipline td,
|
|
ins_srtdiscipline sd
|
|
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
|
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND sd.ins_srtdiscipline_prefix = 'QQQ');
|
|
|
|
v_errormsg := 'Fout sluiten melding.';
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM (SELECT m.mld_melding_key,
|
|
(SELECT COUNT ( * )
|
|
FROM mld_opdr o
|
|
WHERE mld_melding_key = m.mld_melding_key)
|
|
aanw_opdr,
|
|
(SELECT COUNT ( * )
|
|
FROM mld_opdr o
|
|
WHERE mld_melding_key = m.mld_melding_key
|
|
AND o.mld_statusopdr_key NOT IN (1, 2, 6, 7, 9))
|
|
open_opdr
|
|
FROM mld_melding m
|
|
WHERE m.mld_melding_key = v_mld_key
|
|
AND m.mld_melding_status IN (4, 7))
|
|
niet_opgelost
|
|
WHERE aanw_opdr > 0 AND open_opdr = 0;
|
|
|
|
-- Sinds AADO#30922 wordt de melding niet meer automatisch afgemeld.
|
|
MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0);
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
v_errormsg
|
|
|| ' ORACLE (error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_aanduiding || v_errormsg,
|
|
'Statusbericht-loop');
|
|
END;
|
|
END LOOP;
|
|
|
|
COMMIT;
|
|
END;
|
|
/
|
|
|
|
|
|
/* Formatted on 10-6-2015 15:16:44 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW kfns_v_export_res_ruimte_xml (result, result_order)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node = SUBSTR ('RES_RUIMTE_XML', 1, 12);
|
|
|
|
/* Formatted on 10-6-2015 15:18:42 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE PROCEDURE kfns_select_res_ruimte_xml (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
CURSOR c_res
|
|
IS
|
|
SELECT TRIM(SUBSTR (
|
|
rr.res_ruimte_nr,
|
|
DECODE (INSTR (rr.res_ruimte_nr, 'etage -'),
|
|
0, 0,
|
|
INSTR (rr.res_ruimte_nr, 'etage -') + 7)))
|
|
res_ruimte_nr,
|
|
rg.alg_locatie_code,
|
|
rg.alg_locatie_omschrijving,
|
|
rg.alg_gebouw_upper,
|
|
rg.alg_gebouw_omschrijving,
|
|
rg.alg_verdieping_code,
|
|
rg.alg_verdieping_omschrijving,
|
|
rr.res_ruimte_key,
|
|
TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi') van,
|
|
TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi') tot,
|
|
rrr.res_reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr,
|
|
rrr.res_rsv_ruimte_omschrijving,
|
|
ph.prs_perslid_naam_full host,
|
|
pc.prs_perslid_naam_full contact,
|
|
rrr.res_rsv_ruimte_host_key,
|
|
rrr.res_rsv_ruimte_bezoekers,
|
|
DECODE (
|
|
(SELECT COUNT ( * )
|
|
FROM bez_bezoekers b, bez_afspraak a
|
|
WHERE a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND a.bez_afspraak_key = b.bez_afspraak_key),
|
|
0,
|
|
'nee',
|
|
'ja')
|
|
bez_aangemeld,
|
|
rd.res_disc_params_preposttime schoonmaak
|
|
FROM res_rsv_ruimte rrr,
|
|
( SELECT res_rsv_ruimte_key,
|
|
res_ruimte_key,
|
|
MAX (alg_ruimte_key) alg_ruimte_key
|
|
FROM res_v_rsv_ruimte_2_alg_ruimte
|
|
GROUP BY res_rsv_ruimte_key, res_ruimte_key) rarg,
|
|
res_ruimte rr,
|
|
alg_v_ruimte_gegevens rg,
|
|
prs_v_perslid_fullnames pc,
|
|
prs_v_perslid_fullnames ph,
|
|
res_disc_params rd
|
|
WHERE rarg.res_ruimte_key IS NOT NULL
|
|
AND rarg.res_ruimte_key = rr.res_ruimte_key
|
|
AND rarg.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND TRUNC (rrr.res_rsv_ruimte_van) = TRUNC (SYSDATE)
|
|
AND rarg.alg_ruimte_key = rg.alg_ruimte_key
|
|
AND rg.alg_gebouw_key IN (50, 110) -- ZL0000-901/Meander + UT0000-901/KTT
|
|
AND rrr.res_rsv_ruimte_host_key = ph.prs_perslid_key
|
|
AND rrr.res_rsv_ruimte_contact_key = pc.prs_perslid_key
|
|
AND rr.res_discipline_key = rd.res_ins_discipline_key;
|
|
|
|
v_first NUMBER;
|
|
v_count NUMBER;
|
|
|
|
PROCEDURE add_row (p_regel IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
INSERT INTO fac_rapport (fac_rapport_node,
|
|
fac_rapport_volgnr,
|
|
fac_rapport_regel)
|
|
VALUES (SUBSTR (p_applname, 1, 12), v_count, p_regel);
|
|
|
|
v_count := v_count + 1;
|
|
END;
|
|
|
|
PROCEDURE add_element (p_tag IN VARCHAR2, p_value IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
add_row( '<'
|
|
|| p_tag
|
|
|| '>'
|
|
|| xml.char_to_html (p_value)
|
|
|| '</'
|
|
|| p_tag
|
|
|| '>');
|
|
END;
|
|
BEGIN
|
|
v_count := 0;
|
|
|
|
DELETE fac_rapport
|
|
WHERE fac_rapport_node = SUBSTR (p_applname, 1, 12);
|
|
|
|
-- header
|
|
add_row ('<?xml version="1.0" encoding="windows-1252" standalone="yes" ?>');
|
|
add_row ('<FACILITOR>');
|
|
add_row ('<RESERVERING>');
|
|
|
|
FOR rec IN c_res
|
|
LOOP
|
|
BEGIN
|
|
add_row ('<ROW>');
|
|
add_element ('RUIMTE_NAAM', rec.res_ruimte_nr);
|
|
add_element ('LOCATIE_CODE', rec.alg_locatie_code);
|
|
add_element ('LOCATIE_NAAM', rec.alg_locatie_omschrijving);
|
|
add_element ('GEBOUW_CODE', rec.alg_gebouw_upper);
|
|
add_element ('GEBOUW_NAAM', rec.alg_gebouw_omschrijving);
|
|
add_element ('VERDIEPING_CODE', rec.alg_verdieping_code);
|
|
add_element ('VERDIEPING_NAAM', rec.alg_verdieping_omschrijving);
|
|
add_element ('RUIMTE_KEY', rec.res_ruimte_key);
|
|
add_element ('VAN', rec.van);
|
|
add_element ('TOT', rec.tot);
|
|
add_element ('GASTHEER_NAAM', rec.HOST);
|
|
add_element ('CONTACT_NAAM', rec.contact);
|
|
add_element ('OMSCHRIJVING', rec.res_rsv_ruimte_omschrijving);
|
|
add_element ('BEZOEKERS_AANGEMELD', rec.bez_aangemeld);
|
|
add_element ('SCHOONMAAKTIJD', rec.schoonmaak);
|
|
add_row ('</ROW>');
|
|
END;
|
|
END LOOP;
|
|
|
|
add_row ('</RESERVERING>');
|
|
add_row ('</FACILITOR>');
|
|
END;
|
|
/
|
|
|
|
|
|
/* Formatted on 7-10-2015 15:42:24 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW kfns_v_rap_actual_cost_tot
|
|
(
|
|
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
|
maand,
|
|
--prs_bedrijf_key,
|
|
fclt_f_leverancier,
|
|
--cp_perslid_key,
|
|
--cp_aanhef,
|
|
--cp_naam,
|
|
--cp_email,
|
|
--cnt_contract_key,
|
|
contractnr,
|
|
beschrijving,
|
|
inkoopordernr,
|
|
aantal,
|
|
kosten
|
|
)
|
|
AS -- Vaste contractkosten over de ACTUAL termijn
|
|
SELECT c.cp_afdeling_key,
|
|
TO_CHAR (SYSDATE, 'yyyy-mm'), -- Deze maand volgende maand factureren (achteraf)
|
|
--c.prs_bedrijf_key,
|
|
c.prs_bedrijf_naam bedrijf,
|
|
--c.cp_perslid_key,
|
|
--c.cp_aanhef,
|
|
--c.cp_naam,
|
|
--c.cp_email,
|
|
--c.cnt_contract_key,
|
|
c.cnt_contract_nummer_intern,
|
|
c.cnt_contract_omschrijving,
|
|
--kc.cnt_kenmerkcontract_waarde,
|
|
c.cnt_contract_nummer, -- Uit deze maand lopend contract, anders geen vaste kosten
|
|
--NULL mld_opdr_key,
|
|
--NULL opdr_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 cp_afdeling_key,
|
|
pcp.prs_perslid_key cp_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,
|
|
prs_perslid pcm
|
|
WHERE c.ins_discipline_key = 141 -- 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(+)
|
|
AND c.prs_perslid_key_beh = pcm.prs_perslid_key) c
|
|
LEFT JOIN cnt_kenmerkcontract kc
|
|
ON kc.cnt_kenmerk_key = 4 -- Inkoopordernummer NS
|
|
AND c.cnt_contract_key = kc.cnt_contract_key
|
|
LEFT JOIN cnt_kenmerkcontract ce
|
|
ON ce.cnt_kenmerk_key = 102 -- Credit/extra kosten
|
|
AND c.cnt_contract_key = ce.cnt_contract_key
|
|
LEFT JOIN cnt_kenmerkcontract bm
|
|
ON bm.cnt_kenmerk_key = 122 -- Bonus/malus
|
|
AND c.cnt_contract_key = bm.cnt_contract_key
|
|
UNION ALL -- Variabele kosten uit ACTUAL opdrachten op variabele contracten
|
|
SELECT pcp.prs_afdeling_key,
|
|
TO_CHAR (SYSDATE, 'yyyy-mm'), -- Deze maand ORDAFR, volgende maand factureren (achteraf)
|
|
--b.prs_bedrijf_key,
|
|
b.prs_bedrijf_naam,
|
|
--pcp.prs_perslid_key cp_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,
|
|
--kc.cnt_kenmerkcontract_waarde,
|
|
c.cnt_contract_nummer,
|
|
--o.mld_opdr_key,
|
|
-- TO_CHAR (o.mld_melding_key)
|
|
--|| '/'
|
|
--|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
|
-- opdr_id,
|
|
COUNT ( * ) aantal,
|
|
SUM (o.mld_opdr_kosten) kosten
|
|
FROM mld_opdr o,
|
|
fac_tracking t,
|
|
cnt_contract c,
|
|
--cnt_contract c2,
|
|
--mld_melding m,
|
|
--prs_v_perslid_fullnames_all pf,
|
|
--alg_v_allonrgoed_gegevens og,
|
|
--mld_stdmelding sm,
|
|
--ins_tab_discipline td,
|
|
--ins_srtdiscipline sd,
|
|
--prs_kostensoort ksm,
|
|
--prs_kostensoort ksv,
|
|
--prs_kostenplaats kp
|
|
cnt_contract mc,
|
|
prs_bedrijf b,
|
|
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 = 70 -- ORDAFR
|
|
AND t.fac_tracking_datum > TRUNC (SYSDATE, 'mm')
|
|
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 = 101 -- Dispuut
|
|
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
|
AND o.cnt_contract_key = c.cnt_contract_key
|
|
AND c.ins_discipline_key = 143 -- Variabele contracten
|
|
--AND c1.cnt_contract_nummer_intern = c2.cnt_contract_nummer_intern
|
|
--AND (t.fac_tracking_datum BETWEEN c2.cnt_contract_looptijd_van
|
|
-- AND c2.cnt_contract_looptijd_tot
|
|
-- OR NOT EXISTS
|
|
-- (SELECT 1
|
|
-- FROM cnt_contract
|
|
-- WHERE t.fac_tracking_datum BETWEEN cnt_contract_looptijd_van
|
|
-- AND cnt_contract_looptijd_tot
|
|
-- AND cnt_contract_nummer_intern = c2.cnt_contract_nummer_intern))
|
|
--AND o.mld_melding_key = m.mld_melding_key
|
|
--AND m.prs_perslid_key = pf.prs_perslid_key
|
|
--AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
|
--AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
--AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
|
--AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
--AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
|
--AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
|
--AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
|
--AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
|
AND 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
|
|
GROUP BY pcp.prs_afdeling_key,
|
|
TO_CHAR (SYSDATE, 'yyyy-mm'),
|
|
--b.prs_bedrijf_key,
|
|
b.prs_bedrijf_naam,
|
|
--c.cnt_contract_key,
|
|
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 opdrachten toont (voor 1e ORDAFR).
|
|
-- Dat deze tot de 10e van de huidige maand alleen nog door Kien wijzigbaar is.
|
|
/* Formatted on 7-10-2015 15:44:16 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW kfns_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,
|
|
mld_opdr_key,
|
|
opdr_id,
|
|
aantal,
|
|
kosten
|
|
)
|
|
AS
|
|
SELECT c.cp_afdeling_key, -- Vaste contractkosten over de ACTUAL termijn
|
|
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'), -- Afgelopen maand deze maand factureren (achteraf)
|
|
c.prs_bedrijf_key,
|
|
c.prs_bedrijf_naam,
|
|
c.cp_perslid_key,
|
|
c.cp_aanhef,
|
|
c.cp_naam,
|
|
c.cp_email,
|
|
c.cnt_contract_key,
|
|
c.cnt_contract_nummer_intern,
|
|
c.cnt_contract_omschrijving,
|
|
--kc.cnt_kenmerkcontract_waarde,
|
|
c.cnt_contract_nummer, -- Uit afgelopen maand lopend contract, anders geen vaste kosten
|
|
c.cm_aanhef,
|
|
c.cm_naam,
|
|
NULL mld_opdr_key,
|
|
NULL opdr_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 cp_afdeling_key,
|
|
pcp.prs_perslid_key cp_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 = 141 -- 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 TO_CHAR (SYSDATE, 'dd') < '10' -- Geen goede conditie
|
|
AND NOT EXISTS -- Nog geen entry in eigen tabel
|
|
(SELECT 1
|
|
FROM fac_usrdata
|
|
WHERE fac_usrtab_key = 21 -- 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 kc
|
|
ON kc.cnt_kenmerk_key = 4 -- Inkoopordernummer NS
|
|
AND c.cnt_contract_key = kc.cnt_contract_key
|
|
LEFT JOIN cnt_kenmerkcontract ce
|
|
ON ce.cnt_kenmerk_key = 102 -- Credit/extra kosten
|
|
AND c.cnt_contract_key = ce.cnt_contract_key
|
|
LEFT JOIN cnt_kenmerkcontract bm
|
|
ON bm.cnt_kenmerk_key = 122 -- Bonus/malus
|
|
AND c.cnt_contract_key = bm.cnt_contract_key
|
|
UNION ALL -- Variabele kosten uit ACTUAL opdrachten op variabele contracten
|
|
SELECT pcp.prs_afdeling_key,
|
|
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'), -- Voor 1e ORDAFR, deze maand factureren (achteraf)
|
|
b.prs_bedrijf_key,
|
|
b.prs_bedrijf_naam,
|
|
pcp.prs_perslid_key cp_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,
|
|
--kc.cnt_kenmerkcontract_waarde,
|
|
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,
|
|
o.mld_opdr_key,
|
|
TO_CHAR (o.mld_melding_key)
|
|
|| '/'
|
|
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
|
opdr_id,
|
|
1 aantal,
|
|
o.mld_opdr_kosten kosten
|
|
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 = 70 -- ORDAFR
|
|
AND t.fac_tracking_datum < TRUNC (SYSDATE, 'mm')
|
|
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 = 101 -- Dispuut
|
|
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
|
AND o.cnt_contract_key = c.cnt_contract_key
|
|
AND c.ins_discipline_key = 143 -- 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 kfns_v_rap_actual_fact_tot
|
|
(
|
|
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
|
maand,
|
|
--hide_f_bedrijf_key,
|
|
fclt_f_leverancier,
|
|
--hide_f_contract_key,
|
|
contractnr,
|
|
beschrijving,
|
|
inkoopordernr,
|
|
aantal,
|
|
kosten
|
|
)
|
|
AS
|
|
SELECT prs_afdeling_key,
|
|
maand,
|
|
--prs_bedrijf_key,
|
|
prs_bedrijf_naam,
|
|
--cnt_contract_key,
|
|
contractnr,
|
|
beschrijving,
|
|
inkoopordernr,
|
|
SUM (aantal),
|
|
SUM (kosten)
|
|
FROM kfns_v_actual_fact
|
|
GROUP BY prs_afdeling_key,
|
|
maand,
|
|
--prs_bedrijf_key,
|
|
prs_bedrijf_naam,
|
|
--cnt_contract_key,
|
|
contractnr,
|
|
beschrijving,
|
|
inkoopordernr;
|
|
|
|
-- Te exporteren/bevriezen variabele kosten over voorgaande maand (details).
|
|
CREATE OR REPLACE VIEW kfns_v_rap_actual_fact_var
|
|
(
|
|
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
|
maand,
|
|
prio,
|
|
prefix,
|
|
mld_melding_key,
|
|
volgnr,
|
|
mld_opdr_key,
|
|
opdrachttype,
|
|
plaats,
|
|
alg_ruimte_omschrijving,
|
|
mld_stdmelding_oms,
|
|
omschrijving,
|
|
begindatum,
|
|
--begintijd,
|
|
meldingstatus,
|
|
opdrachtstatus,
|
|
einddatum,
|
|
--eindtijd,
|
|
fclt_f_leverancier,
|
|
afhandeling,
|
|
kosten,
|
|
fclt_f_inkoopordernr,
|
|
fclt_x_district
|
|
)
|
|
AS
|
|
SELECT v.prs_afdeling_key,
|
|
v.maand,
|
|
TO_CHAR (m.mld_melding_spoed),
|
|
sd.ins_srtdiscipline_prefix,
|
|
TO_CHAR (m.mld_melding_key),
|
|
TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
|
|
TO_CHAR (o.mld_opdr_key),
|
|
ot.mld_typeopdr_omschrijving,
|
|
DECODE (
|
|
og.alg_type,
|
|
'R',
|
|
l.alg_locatie_code
|
|
|| '-'
|
|
|| og.alg_gebouw_code
|
|
|| '-'
|
|
|| og.alg_verdieping_code
|
|
|| '-'
|
|
|| og.alg_ruimte_nr,
|
|
'V',
|
|
l.alg_locatie_code
|
|
|| '-'
|
|
|| og.alg_gebouw_code
|
|
|| '-'
|
|
|| og.alg_verdieping_code,
|
|
'G',
|
|
l.alg_locatie_code || '-' || og.alg_gebouw_code,
|
|
'T',
|
|
l.alg_locatie_code || '-' || og.alg_terreinsector_code,
|
|
l.alg_locatie_code)
|
|
plaatsaanduiding,
|
|
DECODE (og.alg_type, 'R', og.alg_ruimte_omschrijving, NULL)
|
|
alg_ruimte_omschrijving,
|
|
sm.mld_stdmelding_omschrijving,
|
|
o.mld_opdr_omschrijving,
|
|
TO_CHAR (o.mld_opdr_datumbegin, 'dd-mm-yyyy') datum,
|
|
--TO_CHAR (o.mld_opdr_datumbegin, 'hh24:mi') tijd,
|
|
ms.mld_statuses_omschrijving,
|
|
os.mld_statusopdr_omschrijving,
|
|
--TO_CHAR (o.mld_opdr_einddatum, 'dd-mm-yyyy') einddatum,
|
|
TO_CHAR (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key), 'dd-mm-yyyy') einddatum,
|
|
--TO_CHAR (o.mld_opdr_einddatum, 'hh24:mi') eindtijd,
|
|
--COALESCE (b.prs_bedrijf_naam, puv.prs_perslid_naam_full)
|
|
-- uitvoerende,
|
|
v.prs_bedrijf_naam,
|
|
o.mld_opdr_opmerking,
|
|
o.mld_opdr_kosten,
|
|
v.inkoopordernr,
|
|
d.alg_district_omschrijving
|
|
FROM kfns_v_actual_fact v,
|
|
mld_opdr o,
|
|
mld_statusopdr os,
|
|
mld_typeopdr ot,
|
|
--prs_bedrijf b, -- Externe leverancier
|
|
--prs_v_perslid_fullnames_all puv, -- Interne uitvoerende
|
|
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_uitvoerende_keys = b.prs_bedrijf_key(+)
|
|
--AND o.mld_uitvoerende_keys = puv.prs_perslid_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 opdrachten toont.
|
|
-- Dat de laatst bevroren maand per bedrijf op de 11e wordt genotificeerd (via
|
|
-- extra_key-principe) met daarin de bedragen gegroepeerd per inkoopordernr.
|
|
/* Formatted on 6-8-2015 10:25:35 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW kfns_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,
|
|
mld_opdr_key,
|
|
opdr_id,
|
|
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 mld_opdr_key,
|
|
NULL opdr_id,
|
|
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
|
|
WHERE ud.fac_usrtab_key = 21 -- 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
|
|
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,
|
|
o.mld_opdr_key,
|
|
TO_CHAR (o.mld_melding_key)
|
|
|| '/'
|
|
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
|
opdr_id,
|
|
1 aantal,
|
|
o.mld_opdr_kosten kosten
|
|
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 = 7
|
|
AND o.mld_opdr_ordernr IS NOT NULL
|
|
AND o.cnt_contract_key = c.cnt_contract_key
|
|
AND c.ins_discipline_key = 143 -- 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;
|
|
|
|
-- Was 'kfns_v_rap_cost_frozen', die dus droppen!
|
|
-- Geexporteerde/bevroren totalen over voorgaande maanden (vast en variabel).
|
|
CREATE OR REPLACE VIEW kfns_v_rap_frozen_fact_tot
|
|
(
|
|
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
|
fclt_f_maand,
|
|
--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,
|
|
--prs_bedrijf_key,
|
|
prs_bedrijf_naam,
|
|
--cnt_contract_key,
|
|
contractnr,
|
|
beschrijving,
|
|
inkoopordernr,
|
|
SUM (aantal),
|
|
SUM (kosten)
|
|
FROM kfns_v_frozen_fact
|
|
GROUP BY prs_afdeling_key,
|
|
maand,
|
|
--prs_bedrijf_key,
|
|
prs_bedrijf_naam,
|
|
--cnt_contract_key,
|
|
contractnr,
|
|
beschrijving,
|
|
inkoopordernr;
|
|
|
|
-- Geexporteerde/bevroren variabele kosten over voorgaande maanden (details).
|
|
CREATE OR REPLACE VIEW kfns_v_rap_frozen_fact_var
|
|
(
|
|
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
|
fclt_f_maand,
|
|
prio,
|
|
prefix,
|
|
mld_melding_key,
|
|
volgnr,
|
|
mld_opdr_key,
|
|
opdrachttype,
|
|
plaats,
|
|
alg_ruimte_omschrijving,
|
|
mld_stdmelding_oms,
|
|
omschrijving,
|
|
begindatum,
|
|
--begintijd,
|
|
meldingstatus,
|
|
opdrachtstatus,
|
|
einddatum,
|
|
--eindtijd,
|
|
fclt_f_leverancier,
|
|
afhandeling,
|
|
kosten,
|
|
fclt_f_inkoopordernr,
|
|
fclt_x_district
|
|
)
|
|
AS
|
|
SELECT v.prs_afdeling_key,
|
|
v.maand,
|
|
TO_CHAR (m.mld_melding_spoed),
|
|
sd.ins_srtdiscipline_prefix,
|
|
TO_CHAR (m.mld_melding_key),
|
|
TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
|
|
TO_CHAR (o.mld_opdr_key),
|
|
ot.mld_typeopdr_omschrijving,
|
|
DECODE (
|
|
og.alg_type,
|
|
'R',
|
|
l.alg_locatie_code
|
|
|| '-'
|
|
|| og.alg_gebouw_code
|
|
|| '-'
|
|
|| og.alg_verdieping_code
|
|
|| '-'
|
|
|| og.alg_ruimte_nr,
|
|
'V',
|
|
l.alg_locatie_code
|
|
|| '-'
|
|
|| og.alg_gebouw_code
|
|
|| '-'
|
|
|| og.alg_verdieping_code,
|
|
'G',
|
|
l.alg_locatie_code || '-' || og.alg_gebouw_code,
|
|
'T',
|
|
l.alg_locatie_code || '-' || og.alg_terreinsector_code,
|
|
l.alg_locatie_code)
|
|
plaatsaanduiding,
|
|
DECODE (og.alg_type, 'R', og.alg_ruimte_omschrijving, NULL)
|
|
alg_ruimte_omschrijving,
|
|
sm.mld_stdmelding_omschrijving,
|
|
o.mld_opdr_omschrijving,
|
|
TO_CHAR (o.mld_opdr_datumbegin, 'dd-mm-yyyy') datum,
|
|
--TO_CHAR (o.mld_opdr_datumbegin, 'hh24:mi') tijd,
|
|
ms.mld_statuses_omschrijving,
|
|
os.mld_statusopdr_omschrijving,
|
|
--TO_CHAR (o.mld_opdr_einddatum, 'dd-mm-yyyy') einddatum,
|
|
TO_CHAR (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key), 'dd-mm-yyyy') einddatum,
|
|
--TO_CHAR (o.mld_opdr_einddatum, 'hh24:mi') eindtijd,
|
|
--COALESCE (b.prs_bedrijf_naam, puv.prs_perslid_naam_full)
|
|
-- uitvoerende,
|
|
v.prs_bedrijf_naam,
|
|
o.mld_opdr_opmerking,
|
|
o.mld_opdr_kosten,
|
|
v.inkoopordernr,
|
|
d.alg_district_omschrijving
|
|
FROM kfns_v_frozen_fact v,
|
|
mld_opdr o,
|
|
mld_statusopdr os,
|
|
mld_typeopdr ot,
|
|
--prs_bedrijf b, -- Externe leverancier
|
|
--prs_v_perslid_fullnames_all puv, -- Interne uitvoerende
|
|
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_uitvoerende_keys = b.prs_bedrijf_key(+)
|
|
--AND o.mld_uitvoerende_keys = puv.prs_perslid_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(+);
|
|
|
|
/* Formatted on 30-7-2015 13:34:26 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE PROCEDURE kfns_select_fact (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
-- Bevries vaste contractkosten in eigen tabel (TODO/incl. malus?).
|
|
CURSOR c1
|
|
IS
|
|
SELECT maand,
|
|
prs_bedrijf_key,
|
|
cnt_contract_key,
|
|
inkoopordernr,
|
|
kosten
|
|
FROM kfns_v_actual_fact
|
|
WHERE mld_opdr_key IS NULL;
|
|
|
|
-- Zet "variabele" opdrachten die voor de 1e zijn afgerond op AV.
|
|
-- Alleen op variabele contracten.
|
|
CURSOR c2
|
|
IS
|
|
SELECT mld_opdr_key
|
|
FROM kfns_v_actual_fact
|
|
WHERE mld_opdr_key IS NOT NULL;
|
|
|
|
-- Zet "inclusief" opdrachten die voor de 1e zijn gesloten op AV?
|
|
-- Op afgeronde vaste contracten,
|
|
-- Op afgeronde Offerteaanvragen en Beheerdersopdrachten
|
|
-- Op afgemelde Klachten en Interne opdrachten
|
|
--CURSOR c3
|
|
--IS
|
|
-- SELECT mld_opdr_key
|
|
-- FROM mld_opdr o, cnt_contract c
|
|
-- WHERE o.mld_statusopdr_key = 9 -- KV
|
|
-- AND o.cnt_contract_key = c.cnt_contract_key
|
|
-- AND c.ins_discipline_key = 144 -- Vast contracten
|
|
-- AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
|
|
-- UNION ALL -- Offerteaanvragen en Beheerdersopdrachten
|
|
-- SELECT mld_opdr_key
|
|
-- FROM mld_opdr o
|
|
-- WHERE o.mld_typeopdr_key IN (283, 301)
|
|
-- AND o.mld_statusopdr_key = 9 -- KV
|
|
-- AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
|
|
-- UNION ALL -- Klachten en Interne opdrachten
|
|
-- SELECT mld_opdr_key
|
|
-- FROM mld_opdr o
|
|
-- WHERE o.mld_typeopdr_key IN (285, 302)
|
|
-- AND o.mld_statusopdr_key = 6 -- TV
|
|
-- AND fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm');
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count NUMBER (10);
|
|
BEGIN
|
|
-- Op 10e dag van de maand (via scheduled task):
|
|
-- 1. Bevries vaste contractkosten in eigen tabel (incl. malus?).
|
|
-- 2. Zet "variabele" opdrachten die voor de 1e zijn afgerond op AV.
|
|
-- 3. 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
|
|
v_errormsg := 'Fout bij 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 (21, -- 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;
|
|
|
|
COMMIT;
|
|
END LOOP;
|
|
|
|
fac.writelog (p_applname,
|
|
'S',
|
|
'#Vaste contractkosten bevroren: ' || TO_CHAR (v_count),
|
|
'');
|
|
COMMIT;
|
|
|
|
v_count := 0;
|
|
|
|
FOR rec IN c2
|
|
LOOP
|
|
v_errormsg := 'Fout bijwerken ordernummer (variabele opdrachten).';
|
|
|
|
UPDATE mld_opdr
|
|
SET mld_opdr_ordernr = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
|
WHERE mld_opdr_key = rec.mld_opdr_key;
|
|
|
|
v_errormsg := 'Fout bijwerken status (variabele opdrachten).';
|
|
|
|
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 4);
|
|
|
|
v_count := v_count + 1;
|
|
|
|
COMMIT;
|
|
END LOOP;
|
|
|
|
fac.writelog (p_applname,
|
|
'S',
|
|
'#Variabele opdrachten bevroren: ' || TO_CHAR (v_count),
|
|
'');
|
|
COMMIT;
|
|
|
|
v_count := 0;
|
|
|
|
--FOR rec IN c3
|
|
--LOOP
|
|
-- v_errormsg := 'Fout bijwerken status (inclusief opdrachten).';
|
|
|
|
--MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 4);
|
|
|
|
--v_count := v_count + 1;
|
|
|
|
--COMMIT;
|
|
--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',
|
|
'Proces FACT_EXPORT afgebroken!',
|
|
v_errormsg);
|
|
COMMIT;
|
|
END;
|
|
/
|
|
|
|
|
|
-- Dummy export AUTOCLOSE (elk kwartier zoals voor OPDRSTAT_STRUKTON-import en
|
|
-- RES_RUIMTE_XML-export)!
|
|
-- KFNS#34395: En toekennen/afpakken fac_groep_key=122 (aan @nedtrain-ers).
|
|
-- KFNS#34522: En toekennen/afpakken fac_groep_key=681 (aan niet-@nsstation-ers).
|
|
/* Formatted on 30-11-2015 22:22:22 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE PROCEDURE kfns_select_autoclose (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
-- Cursor loopt over alle bestelopdracht-items met status 'In bestelling';
|
|
-- deze worden verondersteld te zijn geleverd!
|
|
CURSOR cboi
|
|
IS
|
|
SELECT DISTINCT boi.bes_bestelopdr_key, bo.bes_bestelopdr_status
|
|
FROM bes_bestelopdr bo,
|
|
bes_bestelopdr_item boi,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg
|
|
WHERE bo.bes_bestelopdr_status IN (3, 4) -- In behandeling/bestelling
|
|
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
|
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key IN (401, 402); -- Ontvangst/Uitgifte
|
|
|
|
-- Cursor loopt over alle bestelling-items met status 'Besteld' waarvan
|
|
-- de bijbehorende bestelopdracht-items zijn geleverd; deze worden dan ook
|
|
-- gesloten!
|
|
CURSOR cbi
|
|
IS
|
|
SELECT DISTINCT bi.bes_bestelling_key
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg,
|
|
bes_bestelopdr_item boi
|
|
WHERE b.bes_bestelling_status = 5 -- Besteld
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
--AND bi.bes_bestelling_item_aantal != COALESCE (bi.bes_bestelling_item_aantalontv, 0)
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key IN (401, 402) -- Ontvangst/Uitgifte
|
|
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
|
AND boi.bes_bestelopdr_item_aantal = boi.bes_bestelopdr_item_aantalontv;
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count NUMBER;
|
|
BEGIN
|
|
FOR rec IN cboi
|
|
LOOP
|
|
IF rec.bes_bestelopdr_status = 3 -- In behandeling
|
|
THEN
|
|
UPDATE bes_bestelopdr
|
|
SET bes_bestelopdr_status = 4 -- In bestelling
|
|
WHERE bes_bestelopdr_key = rec.bes_bestelopdr_key;
|
|
END IF;
|
|
|
|
-- Zeg dat alles geleverd is wat besteld is.
|
|
UPDATE bes_bestelopdr_item
|
|
SET bes_bestelopdr_item_aantalontv = bes_bestelopdr_item_aantal
|
|
WHERE bes_bestelopdr_key = rec.bes_bestelopdr_key;
|
|
|
|
bes.updatebestelopdrstatus (rec.bes_bestelopdr_key, NULL);
|
|
END LOOP;
|
|
|
|
FOR rec IN cbi
|
|
LOOP
|
|
-- Sluit alle aanvraagregels af die nu geheel geleverd zijn.
|
|
UPDATE bes_bestelling_item
|
|
SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal
|
|
WHERE bes_bestelling_key = rec.bes_bestelling_key;
|
|
|
|
bes.updatebestellingstatus (rec.bes_bestelling_key, NULL);
|
|
END LOOP;
|
|
|
|
COMMIT;
|
|
|
|
v_errormsg := 'Fout toekennen @nedtrain.nl-rol';
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM prs_perslid p
|
|
WHERE UPPER (p.prs_perslid_email) LIKE '%@NEDTRAIN.NL%'
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_gebruikersgroep gg
|
|
WHERE gg.fac_groep_key = 122
|
|
AND gg.prs_perslid_key = p.prs_perslid_key);
|
|
|
|
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
|
SELECT 122, prs_perslid_key
|
|
FROM prs_perslid p
|
|
WHERE UPPER (p.prs_perslid_email) LIKE '%@NEDTRAIN.NL%'
|
|
AND NOT EXISTS -- Nog niet in autorisatiegroep 122!
|
|
(SELECT 1
|
|
FROM fac_gebruikersgroep gg
|
|
WHERE gg.fac_groep_key = 122
|
|
AND gg.prs_perslid_key = p.prs_perslid_key);
|
|
|
|
COMMIT;
|
|
/*
|
|
v_errormsg := 'Fout afpakken @nedtrain.nl-rol';
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM fac_gebruikersgroep gg
|
|
WHERE gg.fac_groep_key = 122
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslid p
|
|
WHERE UPPER (p.prs_perslid_email) LIKE '%@NEDTRAIN.NL%'
|
|
AND p.prs_perslid_key = gg.prs_perslid_key);
|
|
|
|
DELETE FROM fac_gebruikersgroep gg
|
|
WHERE gg.fac_groep_key = 122
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslid p
|
|
WHERE UPPER (p.prs_perslid_email) LIKE '%@NEDTRAIN.NL%'
|
|
AND p.prs_perslid_key = gg.prs_perslid_key);
|
|
|
|
COMMIT;
|
|
*/
|
|
v_errormsg := 'Fout toekennen niet-@nsstations.nl-rol';
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM prs_perslid p
|
|
WHERE UPPER (p.prs_perslid_email) NOT LIKE '%@NSSTATIONS.NL%'
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_gebruikersgroep gg
|
|
WHERE gg.fac_groep_key = 681
|
|
AND gg.prs_perslid_key = p.prs_perslid_key);
|
|
|
|
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
|
SELECT 681, prs_perslid_key
|
|
FROM prs_perslid p
|
|
WHERE UPPER (p.prs_perslid_email) NOT LIKE '%@NSSTATIONS.NL%'
|
|
AND NOT EXISTS -- Nog niet in autorisatiegroep 681!
|
|
(SELECT 1
|
|
FROM fac_gebruikersgroep gg
|
|
WHERE gg.fac_groep_key = 681
|
|
AND gg.prs_perslid_key = p.prs_perslid_key);
|
|
|
|
COMMIT;
|
|
/*
|
|
v_errormsg := 'Fout afpakken niet-@nsstations.nl-rol';
|
|
|
|
SELECT COUNT ( * )
|
|
INTO v_count
|
|
FROM fac_gebruikersgroep gg
|
|
WHERE gg.fac_groep_key = 681
|
|
AND EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslid p
|
|
WHERE UPPER (p.prs_perslid_email) LIKE '%@NSSTATIONS.NL%'
|
|
AND p.prs_perslid_key = gg.prs_perslid_key);
|
|
|
|
DELETE FROM fac_gebruikersgroep gg
|
|
WHERE gg.fac_groep_key = 681
|
|
AND EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslid p
|
|
WHERE UPPER (p.prs_perslid_email) LIKE '%@NSSTATIONS.NL%'
|
|
AND p.prs_perslid_key = gg.prs_perslid_key);
|
|
*/
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.writelog (p_applname, 'E', 'Proces AUTOCLOSE afgebroken!', v_errormsg);
|
|
END kfns_select_autoclose;
|
|
/
|
|
|
|
|
|
/* Formatted on 12-9-2014 17:42:24 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW kfns_v_imp_bes_artikel_sync
|
|
(
|
|
fclt_f_catalogusnaam,
|
|
leverancier,
|
|
catdatum,
|
|
artikelnr,
|
|
groep,
|
|
omschrijving,
|
|
prijs,
|
|
eenheid,
|
|
picture,
|
|
orderaantal,
|
|
tax,
|
|
duedate,
|
|
inkoopprijs,
|
|
minimum,
|
|
staffeltabel,
|
|
wijzigdagen,
|
|
annuleerdagen,
|
|
opmerking
|
|
)
|
|
AS
|
|
SELECT td.ins_discipline_omschrijving,
|
|
b.prs_bedrijf_naam,
|
|
TO_CHAR (td.ins_discipline_aanmaak, 'yyyymmdd'),
|
|
sd.bes_srtdeel_nr,
|
|
sg.bes_srtgroep_omschrijving,
|
|
sd.bes_srtdeel_omschrijving,
|
|
TO_CHAR (bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)),
|
|
sd.bes_srtdeel_eenheid,
|
|
sd.bes_srtdeel_image,
|
|
TO_CHAR (sd.bes_srtdeel_veelvoud),
|
|
TO_CHAR (sd.bes_srtdeel_btw),
|
|
TO_CHAR (sd.bes_srtdeel_vervaldatum, 'yyyymmdd'),
|
|
TO_CHAR (bes.getsrtdeelinkprijs (sd.bes_srtdeel_key, NULL)),
|
|
NULL,
|
|
bs.bes_staffeltabel_naam,
|
|
TO_CHAR (sd.bes_srtdeel_wijzigdagen),
|
|
TO_CHAR (sd.bes_srtdeel_annuleerdagen),
|
|
sd.bes_srtdeel_opmerking
|
|
FROM ins_tab_discipline td, bes_srtgroep sg,
|
|
bes_srtdeel sd,
|
|
prs_bedrijf b,
|
|
bes_staffeltabel bs
|
|
WHERE td.ins_discipline_module = 'BES'
|
|
AND td.ins_discipline_verwijder IS NULL
|
|
AND td.ins_discipline_key = sg.ins_discipline_key
|
|
AND sg.bes_srtgroep_verwijder IS NULL
|
|
AND sg.bes_srtgroep_key = sd.bes_srtgroep_key
|
|
AND sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND bs.bes_staffeltabel_key(+) = sd.bes_staffeltabel_key;
|
|
|
|
/* Formatted on 30-1-2014 9:56:26 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW kfns_v_rap_mldinsres_qrc
|
|
(
|
|
fclt_f_soortmelding,
|
|
fclt_f_locatie,
|
|
fclt_f_gebouw,
|
|
fclt_f_verdieping,
|
|
plaats,
|
|
ruimte_key,
|
|
ruimtefunctie,
|
|
fclt_f_objectdiscipline,
|
|
fclt_f_objectgroep,
|
|
objectsoort_key,
|
|
fclt_f_objectsoort,
|
|
objectsoort_code,
|
|
deel_key,
|
|
deel_omschrijving,
|
|
deel_upper,
|
|
hide_f_bookmark_id,
|
|
variabele
|
|
)
|
|
AS
|
|
SELECT 'Melding op object',
|
|
l.alg_locatie_omschrijving,
|
|
o.alg_gebouw_omschrijving,
|
|
o.alg_verdieping_omschrijving,
|
|
o.alg_plaatsaanduiding plaats,
|
|
NULL ruimte_key,
|
|
sr.alg_srtruimte_omschrijving,
|
|
disc.ins_discipline_omschrijving,
|
|
sg.ins_srtgroep_omschrijving,
|
|
sd.ins_srtdeel_key,
|
|
sd.ins_srtdeel_omschrijving,
|
|
sd.ins_srtdeel_code,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
d.ins_deel_upper,
|
|
b.fac_bookmark_id,
|
|
'INS_KEY'
|
|
FROM fac_bookmark b,
|
|
ins_v_aanwezigdeel d,
|
|
ins_srtdeel sd,
|
|
ins_srtgroep sg,
|
|
ins_discipline disc,
|
|
ins_v_alg_overzicht o,
|
|
alg_locatie l,
|
|
alg_ruimte r,
|
|
alg_srtruimte sr
|
|
WHERE UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
|
|
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/INS_DEEL.ASP'
|
|
--AND TRUNC (b.fac_bookmark_aanmaak) = TO_DATE ('xx062015', 'ddmmyyyy')
|
|
AND d.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
|
AND d.ins_deel_parent_key IS NULL
|
|
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key = disc.ins_discipline_key
|
|
AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys
|
|
AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type
|
|
AND d.ins_alg_locatie_key = o.alg_locatie_key -- redundant?
|
|
AND o.alg_locatie_key = l.alg_locatie_key
|
|
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
|
UNION ALL
|
|
SELECT 'Melding op ruimte',
|
|
l.alg_locatie_omschrijving,
|
|
o.alg_gebouw_omschrijving,
|
|
o.alg_verdieping_omschrijving,
|
|
o.alg_plaatsaanduiding plaats,
|
|
r.alg_ruimte_key ruimte_key,
|
|
sr.alg_srtruimte_omschrijving,
|
|
NULL ins_discipline_omschrijving,
|
|
NULL ins_srtgroep_omschrijving,
|
|
NULL ins_srtdeel_key,
|
|
NULL ins_srtdeel_omschrijving,
|
|
NULL ins_srtdeel_code,
|
|
NULL ins_deel_key,
|
|
NULL ins_deel_omschrijving,
|
|
NULL ins_deel_upper,
|
|
b.fac_bookmark_id,
|
|
'RUIMTE_KEY'
|
|
FROM fac_bookmark b,
|
|
alg_v_aanwezigruimte r,
|
|
alg_srtruimte sr,
|
|
ins_v_alg_overzicht o,
|
|
alg_locatie l
|
|
WHERE UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
|
|
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
|
|
AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') = 0
|
|
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
|
AND r.alg_ruimte_key = o.alg_onroerendgoed_keys
|
|
AND o.alg_onroerendgoed_type = 'R'
|
|
AND o.alg_locatie_key = l.alg_locatie_key
|
|
UNION ALL
|
|
SELECT 'Melding op gebouw',
|
|
l.alg_locatie_omschrijving,
|
|
g.alg_gebouw_omschrijving,
|
|
NULL alg_verdieping_omschrijving,
|
|
l.alg_locatie_code || '-' || g.alg_gebouw_code plaats,
|
|
g.alg_gebouw_key ruimte_key,
|
|
sg.alg_srtgebouw_omschrijving,
|
|
NULL ins_discipline_omschrijving,
|
|
NULL ins_srtgroep_omschrijving,
|
|
NULL ins_srtdeel_key,
|
|
NULL ins_srtdeel_omschrijving,
|
|
NULL ins_srtdeel_code,
|
|
NULL ins_deel_key,
|
|
NULL ins_deel_omschrijving,
|
|
NULL ins_deel_upper,
|
|
b.fac_bookmark_id,
|
|
'GEBOUW_KEY'
|
|
FROM fac_bookmark b,
|
|
alg_v_aanweziggebouw g,
|
|
alg_v_aanwezigsrtgebouw sg,
|
|
alg_locatie l
|
|
WHERE UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
|
|
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
|
|
AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') = 0
|
|
AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key(+)
|
|
AND g.alg_locatie_key = l.alg_locatie_key
|
|
UNION ALL
|
|
SELECT 'Reserveer ruimte',
|
|
l.alg_locatie_omschrijving,
|
|
o.alg_gebouw_omschrijving,
|
|
o.alg_verdieping_omschrijving,
|
|
rr.res_ruimte_nr plaats,
|
|
rar.res_ruimte_key ruimte_key,
|
|
sr.alg_srtruimte_omschrijving,
|
|
NULL ins_discipline_omschrijving,
|
|
NULL ins_srtgroep_omschrijving,
|
|
NULL ins_srtdeel_key,
|
|
NULL ins_srtdeel_omschrijving,
|
|
NULL ins_srtdeel_code,
|
|
NULL ins_deel_key,
|
|
NULL ins_deel_omschrijving,
|
|
NULL ins_deel_upper,
|
|
b.fac_bookmark_id,
|
|
'RES_RUIMTE_KEY'
|
|
FROM fac_bookmark b,
|
|
res_ruimte rr,
|
|
( 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) rar,
|
|
alg_ruimte r,
|
|
alg_srtruimte sr,
|
|
ins_v_alg_overzicht o,
|
|
alg_locatie l
|
|
WHERE UPPER (b.fac_bookmark_naam) LIKE '%GENERIEK%'
|
|
AND UPPER (b.fac_bookmark_path) = 'APPL/PDA/RESERVERINGEN.ASP'
|
|
--AND rr.res_discipline_key = -1
|
|
AND rr.res_ruimte_key = rar.res_ruimte_key
|
|
AND rar.alg_ruimte_key = r.alg_ruimte_key
|
|
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
|
AND r.alg_ruimte_key = o.alg_onroerendgoed_keys
|
|
AND o.alg_onroerendgoed_type = 'R'
|
|
AND o.alg_locatie_key = l.alg_locatie_key;
|
|
|
|
-- Vastgoed views themas en labels
|
|
/*
|
|
CREATE OR REPLACE VIEW kfns_v_thema_basispakket
|
|
(
|
|
alg_ruimte_key,
|
|
waarde,
|
|
waarde_key
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
dn.mld_dienstniveau_omschr
|
|
|| ' ('
|
|
|| mld_dienstniveau_opmerking
|
|
|| ')',
|
|
r.mld_dienstniveau_key
|
|
FROM alg_v_aanwezigruimte r, mld_dienstniveau dn
|
|
WHERE r.mld_dienstniveau_key = dn.mld_dienstniveau_key;
|
|
*/
|
|
|
|
CREATE OR REPLACE VIEW kfns_v_thema_vloerafwerking
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT rr.alg_ruimte_key, ud.fac_usrdata_omschr
|
|
FROM alg_kenmerk k,
|
|
fac_kenmerkdomein rk,
|
|
fac_usrdata ud,
|
|
alg_onrgoedkenmerk ok,
|
|
alg_v_aanwezigruimte rr
|
|
WHERE k.alg_kenmerk_key = 1011
|
|
AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
|
|
AND rk.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND TO_CHAR (ud.fac_usrdata_key) = ok.alg_onrgoedkenmerk_waarde
|
|
AND rr.alg_ruimte_key = ok.alg_onrgoed_key;
|
|
|
|
CREATE OR REPLACE VIEW kfns_v_thema_leegstand
|
|
(
|
|
alg_ruimte_key,
|
|
waarde,
|
|
waarde_key
|
|
)
|
|
AS
|
|
SELECT ogk.alg_onrgoed_key, ud.fac_usrdata_omschr, ud.fac_usrdata_key
|
|
FROM alg_onrgoedkenmerk ogk, fac_usrdata ud
|
|
WHERE ogk.alg_kenmerk_key = 1010 -- Leegstand
|
|
AND ogk.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key);
|
|
|
|
CREATE OR REPLACE VIEW kfns_v_thema_wpopp
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
ROUND (
|
|
(r.alg_ruimte_bruto_vloeropp
|
|
+ r.alg_ruimte_bruto_vloeropp
|
|
* COALESCE (
|
|
fac.safe_to_number (ogkg.alg_onrgoedkenmerk_waarde),
|
|
0)
|
|
+ r.alg_ruimte_bruto_vloeropp
|
|
* COALESCE (
|
|
fac.safe_to_number (ogkv.alg_onrgoedkenmerk_waarde),
|
|
0))
|
|
/ SUM (fac.safe_to_number (ogkr.alg_onrgoedkenmerk_waarde)),
|
|
2)
|
|
FROM alg_v_aanwezigruimte r,
|
|
alg_onrgoedkenmerk ogkr,
|
|
alg_verdieping v,
|
|
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ogk
|
|
WHERE alg_kenmerk_key = 1020) ogkv, -- Factor niet verhuurbaar op verdieping
|
|
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
|
|
FROM alg_onrgoedkenmerk ogk
|
|
WHERE alg_kenmerk_key = 1006) ogkg -- Factor niet verhuurbaar op gebouw
|
|
WHERE r.alg_ruimte_key = ogkr.alg_onrgoed_key
|
|
AND ogkr.alg_kenmerk_key IN (1012, 1013, 1014, 1015) -- WPs van verschillende types
|
|
AND r.alg_verdieping_key = v.alg_verdieping_key
|
|
AND v.alg_verdieping_key = ogkv.alg_onrgoed_key(+)
|
|
AND v.alg_gebouw_key = ogkg.alg_onrgoed_key(+)
|
|
GROUP BY r.alg_ruimte_key,
|
|
r.alg_ruimte_bruto_vloeropp,
|
|
ogkg.alg_onrgoedkenmerk_waarde,
|
|
ogkv.alg_onrgoedkenmerk_waarde;
|
|
|
|
-- UNUSED???
|
|
CREATE OR REPLACE VIEW kfns_v_thema_wptype
|
|
(
|
|
alg_ruimte_key,
|
|
waarde,
|
|
waarde_key
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
DECODE (ogk.aantal, 1, ogk.omschrijving, 'meerdere...'),
|
|
DECODE (ogk.aantal, 1, ogk.alg_kenmerk_key, '1')
|
|
FROM alg_v_aanwezigruimte r,
|
|
( SELECT MIN (k.alg_kenmerk_key) alg_kenmerk_key,
|
|
COUNT (k.alg_kenmerk_key) aantal,
|
|
REPLACE (MIN (k.alg_kenmerk_omschrijving), 'Aantal ', '') omschrijving,
|
|
alg_onrgoed_key
|
|
FROM alg_onrgoedkenmerk ogk, alg_kenmerk k
|
|
WHERE ogk.alg_kenmerk_key = k.alg_kenmerk_key
|
|
AND k.alg_kenmerk_key IN (1012, 1013, 1014, 1015) -- WPs van verschillende types
|
|
GROUP BY alg_onrgoed_key) ogk
|
|
WHERE r.alg_ruimte_key = ogk.alg_onrgoed_key;
|
|
|
|
/* Formatted on 4-8-2015 13:25:05 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW kfns_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 = 1040
|
|
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)
|
|
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##LEV##', v.prs_bedrijf_naam), '##MND##', v.maand),
|
|
r.fac_usrrap_key,
|
|
v.extra_key
|
|
FROM kfns_v_frozen_fact v,
|
|
cp cp,
|
|
fac_usrrap r,
|
|
fac_srtnotificatie sn
|
|
WHERE TO_CHAR (SYSDATE, 'dd') = '11' -- Alleen de 11e 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) = 'KFNS_V_FROZEN_FACT'
|
|
AND sn.fac_srtnotificatie_code = 'CUST01'
|
|
UNION ALL
|
|
SELECT DISTINCT sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
gg.prs_perslid_key, -- NS-contactpersonen
|
|
REPLACE (sn.fac_srtnotificatie_oms, '##MND##', v.maand),
|
|
r.fac_usrrap_key,
|
|
NULL -- Geen extra_key, dus de hele rapportage!
|
|
FROM kfns_v_frozen_fact v,
|
|
fac_gebruikersgroep gg,
|
|
fac_usrrap r,
|
|
fac_srtnotificatie sn
|
|
WHERE TO_CHAR (SYSDATE, 'dd') = '11' -- Alleen de 11e van de maand
|
|
AND v.maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
|
AND gg.fac_groep_key = 381 -- NS Finance/Control
|
|
AND UPPER (r.fac_usrrap_view_name) = 'KFNS_V_FROZEN_FACT'
|
|
AND sn.fac_srtnotificatie_code = 'CUST02';
|
|
|
|
|
|
-- Basis voor notificaties naar artikeleigenaren elke maandag (voorraad) en 1e
|
|
-- dag van elk kwartaal (verbruik); voor de output geldt:
|
|
-- Dat deze resp. actuele voorraad in magazijn en verbruik/uitgifte in periode
|
|
-- toont.
|
|
-- Dat de data per artikelgroep(/eigenaar) wordt genotificeerd (via extra_key-
|
|
-- principe).
|
|
/* Formatted on 2-10-2015 17:42:24 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW kfns_v_mag_voorraad
|
|
(
|
|
extra_key, -- fac_usrdata_key in ET-Artikeleigenaren (per Artikelgroep)
|
|
artikelgroep,
|
|
artikeleigenaar,
|
|
--afleveradres,
|
|
artikelnummer,
|
|
artikelomschrijving,
|
|
voorraad,
|
|
eenheid,
|
|
min_voorraad,
|
|
artikelprijs,
|
|
voorraadexcl,
|
|
voorraadincl
|
|
)
|
|
AS
|
|
SELECT ud.fac_usrdata_key,
|
|
--TRIM (ud.fac_usrdata_code),
|
|
sg.bes_srtgroep_omschrijving,
|
|
--TRIM (ud.fac_usrdata_omschr),
|
|
sd.bes_srtdeel_opmerking,
|
|
--'DD-Daalsedijk 14',
|
|
sd.bes_srtdeel_nr,
|
|
sd.bes_srtdeel_omschrijving,
|
|
x.extern_geleverd
|
|
- COALESCE (
|
|
CEIL (x.intern_besteld / sd.bes_srtdeel_voorraadfactor),
|
|
0),
|
|
sd.bes_srtdeel_eenheid,
|
|
sd.bes_srtdeel_voorraadmin,
|
|
bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL),
|
|
(x.extern_geleverd
|
|
- COALESCE (
|
|
CEIL (x.intern_besteld / sd.bes_srtdeel_voorraadfactor),
|
|
0))
|
|
* bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL),
|
|
(x.extern_geleverd
|
|
- COALESCE (
|
|
CEIL (x.intern_besteld / sd.bes_srtdeel_voorraadfactor),
|
|
0))
|
|
* bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)
|
|
* ( (100 + sd.bes_srtdeel_btw) / 100) -- Afronding?
|
|
FROM ( SELECT inkoop_disc_key,
|
|
bes_srtdeel_nr,
|
|
SUM (intern_besteld) intern_besteld,
|
|
SUM (extern_besteld) extern_besteld,
|
|
SUM (extern_geleverd) extern_geleverd
|
|
FROM ( -- Intern besteld
|
|
SELECT dp.bes_ins_discipline_key_inkoop inkoop_disc_key,
|
|
sd.bes_srtdeel_nr,
|
|
SUM (bi.bes_bestelling_item_aantal) intern_besteld,
|
|
TO_NUMBER (NULL) extern_besteld,
|
|
TO_NUMBER (NULL) extern_geleverd
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg,
|
|
bes_discipline bd,
|
|
bes_disc_params dp
|
|
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = bd.ins_discipline_key
|
|
AND bd.ins_discipline_key =
|
|
dp.bes_ins_discipline_key
|
|
AND dp.bes_ins_discipline_key_inkoop IS NOT NULL
|
|
GROUP BY sd.bes_srtdeel_nr,
|
|
dp.bes_ins_discipline_key_inkoop
|
|
UNION ALL -- Extern besteld
|
|
SELECT bd.ins_discipline_key inkoop_disc_key,
|
|
sd.bes_srtdeel_nr,
|
|
TO_NUMBER (NULL) intern_besteld,
|
|
SUM (bi.bes_bestelling_item_aantal) extern_besteld,
|
|
TO_NUMBER (NULL) extern_geleverd
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg,
|
|
bes_discipline bd,
|
|
bes_disc_params dp
|
|
WHERE b.bes_bestelling_status IN (2, 3, 4, 5)
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = bd.ins_discipline_key
|
|
AND bd.ins_discipline_key =
|
|
dp.bes_ins_discipline_key
|
|
AND dp.bes_ins_discipline_key_inkoop IS NULL
|
|
AND dp.bes_ins_discipline_key IN
|
|
(SELECT bes_ins_discipline_key_inkoop
|
|
FROM bes_disc_params
|
|
WHERE bes_ins_discipline_key_inkoop IS NOT NULL)
|
|
GROUP BY bes_srtdeel_nr, bd.ins_discipline_key
|
|
UNION ALL -- Extern geleverd
|
|
SELECT bd.ins_discipline_key inkoop_disc_key,
|
|
sd.bes_srtdeel_nr,
|
|
TO_NUMBER (NULL) intern_besteld,
|
|
TO_NUMBER (NULL) extern_besteld,
|
|
SUM (bi.bes_bestelling_item_aantal) extern_geleverd
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg,
|
|
bes_discipline bd,
|
|
bes_disc_params dp
|
|
WHERE b.bes_bestelling_status IN (6, 7)
|
|
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = bd.ins_discipline_key
|
|
AND bd.ins_discipline_key =
|
|
dp.bes_ins_discipline_key
|
|
AND dp.bes_ins_discipline_key_inkoop IS NULL
|
|
AND dp.bes_ins_discipline_key IN
|
|
(SELECT bes_ins_discipline_key_inkoop
|
|
FROM bes_disc_params
|
|
WHERE bes_ins_discipline_key_inkoop IS NOT NULL)
|
|
GROUP BY bes_srtdeel_nr, bd.ins_discipline_key)
|
|
GROUP BY inkoop_disc_key, bes_srtdeel_nr) x,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg,
|
|
( SELECT TRIM (fac_usrdata_upper) fac_usrdata_upper,
|
|
MIN (fac_usrdata_key) fac_usrdata_key
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 42
|
|
GROUP BY TRIM (fac_usrdata_upper)) ud -- Artikeleigenaren
|
|
WHERE 1=1
|
|
AND sg.ins_discipline_key = 402 -- Beperken tot Magazijn-Ontvangst?
|
|
AND sg.bes_srtgroep_key = sd.bes_srtgroep_key
|
|
AND sd.bes_srtdeel_nr = x.bes_srtdeel_nr(+)
|
|
--AND sg.ins_discipline_key = x.inkoop_disc_key
|
|
AND UPPER (TRIM (sg.bes_srtgroep_omschrijving)) = ud.fac_usrdata_upper(+);
|
|
|
|
CREATE OR REPLACE VIEW kfns_v_rap_mag_voorraad
|
|
(
|
|
fclt_f_artikelgroep,
|
|
fclt_f_eigenaar,
|
|
--afleveradres,
|
|
artikelnummer,
|
|
artikelomschrijving,
|
|
voorraad,
|
|
eenheid,
|
|
min_voorraad,
|
|
artikelprijs,
|
|
voorraadexcl,
|
|
voorraadincl
|
|
)
|
|
AS
|
|
SELECT artikelgroep,
|
|
artikeleigenaar,
|
|
--afleveradres,
|
|
artikelnummer,
|
|
artikelomschrijving,
|
|
voorraad,
|
|
eenheid,
|
|
min_voorraad,
|
|
artikelprijs,
|
|
voorraadexcl,
|
|
voorraadincl
|
|
FROM kfns_v_mag_voorraad;
|
|
|
|
-- Alle verbruik door opdrachtgevers behalve 173=Distributiecentrum NS (alleen tbv. voorraadmutatie!)
|
|
/* Formatted on 8-10-2015 16:30:30 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW kfns_v_mag_verbruik -- Intern besteld
|
|
(
|
|
kwartaal,
|
|
extra_key, -- fac_usrdata_key in ET-Artikeleigenaren (per Artikelgroep)
|
|
artikelgroep,
|
|
artikeleigenaar,
|
|
bestelnr,
|
|
besteldatum,
|
|
besteller,
|
|
artikelnummer,
|
|
artikelomschrijving,
|
|
eenheid,
|
|
aantal
|
|
)
|
|
AS
|
|
SELECT TO_CHAR (x.bes_bestelling_datum, 'yyyy') || '-Q' || TO_CHAR (x.bes_bestelling_datum, 'q'),
|
|
x.fac_usrdata_key,
|
|
--TRIM (ud.fac_usrdata_code),
|
|
x.bes_srtgroep_omschrijving,
|
|
--TRIM (ud.fac_usrdata_omschr),
|
|
x.bes_srtdeel_opmerking,
|
|
TO_CHAR (x.bes_bestelling_key),
|
|
x.bes_bestelling_datum,
|
|
og.opdrachtgever,
|
|
x.bes_srtdeel_nr,
|
|
x.bes_srtdeel_omschrijving,
|
|
x.bes_srtdeel_eenheid,
|
|
x.bes_bestelling_item_aantal
|
|
FROM (SELECT b.bes_bestelling_key,
|
|
b.bes_bestelling_datum,
|
|
ud.fac_usrdata_key,
|
|
sg.bes_srtgroep_omschrijving,
|
|
sd.bes_srtdeel_opmerking,
|
|
sd.bes_srtdeel_nr,
|
|
sd.bes_srtdeel_omschrijving,
|
|
sd.bes_srtdeel_eenheid,
|
|
bi.bes_bestelling_item_aantal
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg,
|
|
bes_discipline bd,
|
|
bes_disc_params dp,
|
|
( SELECT TRIM (fac_usrdata_upper) fac_usrdata_upper,
|
|
MIN (fac_usrdata_key) fac_usrdata_key
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 42
|
|
GROUP BY TRIM (fac_usrdata_upper)) ud -- Artikeleigenaren
|
|
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = bd.ins_discipline_key
|
|
AND bd.ins_discipline_key = dp.bes_ins_discipline_key
|
|
--AND dp.bes_ins_discipline_key_inkoop IS NOT NULL
|
|
AND dp.bes_ins_discipline_key_inkoop = 402 -- Magazijn-Ontvangst?
|
|
AND UPPER (TRIM (sg.bes_srtgroep_omschrijving)) = ud.fac_usrdata_upper(+)) x
|
|
LEFT JOIN
|
|
(SELECT kb.bes_bestelling_key,
|
|
ud.fac_usrdata_key opdrachtgever_key,
|
|
ud.fac_usrdata_omschr opdrachtgever
|
|
FROM bes_kenmerkbestell kb, fac_usrdata ud
|
|
WHERE kb.bes_kenmerk_key = 2 -- Opdrachtgever
|
|
AND fac.safe_to_number (kb.bes_kenmerkbestell_waarde) = ud.fac_usrdata_key
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM bes_kenmerkbestell
|
|
WHERE bes_kenmerk_key = 2
|
|
AND bes_kenmerkbestell_verwijder IS NULL
|
|
AND bes_bestelling_key = kb.bes_bestelling_key
|
|
AND bes_kenmerkbestell_key != kb.bes_kenmerkbestell_key)) og
|
|
ON x.bes_bestelling_key = og.bes_bestelling_key
|
|
WHERE COALESCE (og.opdrachtgever_key, -1) != 173;
|
|
|
|
CREATE OR REPLACE VIEW kfns_v_rap_mag_verbruik -- Intern besteld
|
|
(
|
|
fclt_f_kwartaal,
|
|
fclt_f_artikelgroep,
|
|
fclt_f_bestelnr,
|
|
besteldatum,
|
|
fclt_f_besteller,
|
|
artikelnummer,
|
|
artikelomschrijving,
|
|
eenheid,
|
|
aantal
|
|
)
|
|
AS
|
|
SELECT kwartaal,
|
|
artikelgroep,
|
|
bestelnr,
|
|
besteldatum,
|
|
besteller,
|
|
artikelnummer,
|
|
artikelomschrijving,
|
|
eenheid,
|
|
aantal
|
|
FROM kfns_v_mag_verbruik;
|
|
|
|
CREATE OR REPLACE VIEW kfns_v_rap_mag_doorbelasting
|
|
(
|
|
hide_f_sortering,
|
|
fclt_x_kwartaal,
|
|
fclt_f_artikelgroep,
|
|
fclt_f_eigenaar,
|
|
fclt_f_bestelnr,
|
|
besteldatum,
|
|
aantalregels,
|
|
artikelnummer,
|
|
artikelomschrijving,
|
|
--eenheid,
|
|
aantal,
|
|
fclt_f_besteller,
|
|
verdeling,
|
|
orderbedrag,
|
|
orderregel,
|
|
sbe,
|
|
verpakking,
|
|
totaal
|
|
)
|
|
AS
|
|
SELECT x.bes_srtgroep_omschrijving || TO_CHAR (x.bes_bestelling_datum, 'yymmddhh24miss') || x.bes_srtdeel_nr,
|
|
TO_CHAR (x.bes_bestelling_datum, 'yyyy') || '-Q' || TO_CHAR (x.bes_bestelling_datum, 'q'),
|
|
x.bes_srtgroep_omschrijving,
|
|
x.bes_srtdeel_opmerking,
|
|
TO_CHAR (x.bes_bestelling_key),
|
|
x.bes_bestelling_datum,
|
|
'1',
|
|
x.bes_srtdeel_nr,
|
|
x.bes_srtdeel_omschrijving,
|
|
--x.bes_srtdeel_eenheid,
|
|
TO_CHAR (x.bes_bestelling_item_aantal),
|
|
og.opdrachtgever,
|
|
--REPLACE (TO_CHAR (ROUND (1 / br.verdeling, 5)), '.', ',') verdeling,
|
|
REPLACE (TO_CHAR (1 / br.verdeling, '0D99999'), '.', ',') verdeling,
|
|
--ROUND (9.69 / br.verdeling, 2) orderbedrag,
|
|
ROUND (x.orderbedrag / br.verdeling, 2) orderbedrag,
|
|
--1.61 orderregel,
|
|
x.orderregel,
|
|
--x.bes_bestelling_item_aantal * 0.69 sbe,
|
|
x.bes_bestelling_item_aantal * x.sbe,
|
|
--ROUND (0.97 / br.verdeling, 2) verpakking,
|
|
ROUND (x.verpakking / br.verdeling, 2) verpakking,
|
|
ROUND (x.orderbedrag / br.verdeling, 2)
|
|
+ x.orderregel
|
|
+ (x.bes_bestelling_item_aantal * x.sbe)
|
|
+ ROUND (x.verpakking / br.verdeling, 2)
|
|
totaal
|
|
FROM (SELECT sg.bes_srtgroep_omschrijving,
|
|
sd.bes_srtdeel_opmerking,
|
|
b.bes_bestelling_key,
|
|
b.bes_bestelling_datum,
|
|
sd.bes_srtdeel_nr,
|
|
sd.bes_srtdeel_omschrijving,
|
|
--sd.bes_srtdeel_eenheid,
|
|
bi.bes_bestelling_item_aantal,
|
|
(SELECT MAX (ud1.fac_usrdata_prijs)
|
|
FROM fac_usrdata ud1
|
|
WHERE COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
|
AND ud1.fac_usrdata_upper = 'ORDERBEDRAG'
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_usrdata ud2
|
|
WHERE COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
|
AND ud2.fac_usrdata_upper = 'ORDERBEDRAG'
|
|
AND COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) <
|
|
COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999)))
|
|
orderbedrag,
|
|
(SELECT MAX (ud1.fac_usrdata_prijs)
|
|
FROM fac_usrdata ud1
|
|
WHERE COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
|
AND ud1.fac_usrdata_upper = 'ORDERREGEL'
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_usrdata ud2
|
|
WHERE COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
|
AND ud2.fac_usrdata_upper = 'ORDERREGEL'
|
|
AND COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) <
|
|
COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999)))
|
|
orderregel,
|
|
(SELECT MAX (ud1.fac_usrdata_prijs)
|
|
FROM fac_usrdata ud1
|
|
WHERE COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
|
AND ud1.fac_usrdata_upper = 'SBE'
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_usrdata ud2
|
|
WHERE COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
|
AND ud2.fac_usrdata_upper = 'SBE'
|
|
AND COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) <
|
|
COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999)))
|
|
sbe,
|
|
(SELECT MAX (ud1.fac_usrdata_prijs)
|
|
FROM fac_usrdata ud1
|
|
WHERE COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
|
AND ud1.fac_usrdata_upper = 'VERPAKKING'
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_usrdata ud2
|
|
WHERE COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) > b.bes_bestelling_datum
|
|
AND ud2.fac_usrdata_upper = 'VERPAKKING'
|
|
AND COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE + 999) <
|
|
COALESCE (ud1.fac_usrdata_vervaldatum, SYSDATE + 999)))
|
|
verpakking
|
|
FROM bes_bestelling b, bes_bestelling_item bi, bes_srtdeel sd, bes_srtgroep sg
|
|
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
--AND sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = 401) x -- Magazijn-Uitgifte
|
|
LEFT JOIN ( SELECT bi.bes_bestelling_key, COUNT ( * ) verdeling
|
|
FROM bes_bestelling_item bi, bes_srtdeel sd, bes_srtgroep sg
|
|
WHERE bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
--AND sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = 401 -- Magazijn-Uitgifte
|
|
GROUP BY bi.bes_bestelling_key) br
|
|
ON x.bes_bestelling_key = br.bes_bestelling_key
|
|
LEFT JOIN (SELECT kb.bes_bestelling_key, ud.fac_usrdata_omschr opdrachtgever
|
|
FROM bes_kenmerkbestell kb, fac_usrdata ud
|
|
WHERE kb.bes_kenmerk_key = 2 -- Opdrachtgever
|
|
AND fac.safe_to_number (kb.bes_kenmerkbestell_waarde) = ud.fac_usrdata_key
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM bes_kenmerkbestell
|
|
WHERE bes_kenmerk_key = 2
|
|
AND bes_kenmerkbestell_verwijder IS NULL
|
|
AND bes_bestelling_key = kb.bes_bestelling_key
|
|
AND bes_kenmerkbestell_key != kb.bes_kenmerkbestell_key)) og
|
|
ON x.bes_bestelling_key = og.bes_bestelling_key;
|
|
/*
|
|
UNION ALL
|
|
SELECT x.bes_srtgroep_omschrijving || '1',
|
|
TO_CHAR (x.bes_bestelling_datum, 'yyyy')
|
|
|| '-Q'
|
|
|| TO_CHAR (x.bes_bestelling_datum, 'q'),
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
--NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL verdeling,
|
|
NULL orderbedrag,
|
|
NULL orderregel,
|
|
NULL sbe,
|
|
NULL verpakking,
|
|
--SUM( ROUND (9.69 / br.verdeling, 2)
|
|
-- + 1.61
|
|
-- + (x.bes_bestelling_item_aantal * 0.69)
|
|
-- + ROUND (0.97 / br.verdeling, 2))
|
|
-- totaal
|
|
SUM( ROUND (x.orderbedrag / br.verdeling, 2)
|
|
+ x.orderregel
|
|
+ (x.bes_bestelling_item_aantal * x.sbe)
|
|
+ ROUND (x.verpakking / br.verdeling, 2))
|
|
totaal
|
|
FROM (SELECT sg.bes_srtgroep_omschrijving,
|
|
bi.bes_bestelling_key,
|
|
b.bes_bestelling_datum,
|
|
bi.bes_bestelling_item_aantal,
|
|
(SELECT MAX (ud1.fac_usrdata_prijs)
|
|
FROM fac_usrdata ud1
|
|
WHERE COALESCE (ud1.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999) >
|
|
b.bes_bestelling_datum
|
|
AND ud1.fac_usrdata_upper = 'ORDERBEDRAG'
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_usrdata ud2
|
|
WHERE COALESCE (
|
|
ud2.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999) >
|
|
b.bes_bestelling_datum
|
|
AND ud2.fac_usrdata_upper =
|
|
'ORDERBEDRAG'
|
|
AND COALESCE (
|
|
ud2.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999) <
|
|
COALESCE (
|
|
ud1.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999)))
|
|
orderbedrag,
|
|
(SELECT MAX (ud1.fac_usrdata_prijs)
|
|
FROM fac_usrdata ud1
|
|
WHERE COALESCE (ud1.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999) >
|
|
b.bes_bestelling_datum
|
|
AND ud1.fac_usrdata_upper = 'ORDERREGEL'
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_usrdata ud2
|
|
WHERE COALESCE (
|
|
ud2.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999) >
|
|
b.bes_bestelling_datum
|
|
AND ud2.fac_usrdata_upper =
|
|
'ORDERREGEL'
|
|
AND COALESCE (
|
|
ud2.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999) <
|
|
COALESCE (
|
|
ud1.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999)))
|
|
orderregel,
|
|
(SELECT MAX (ud1.fac_usrdata_prijs)
|
|
FROM fac_usrdata ud1
|
|
WHERE COALESCE (ud1.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999) >
|
|
b.bes_bestelling_datum
|
|
AND ud1.fac_usrdata_upper = 'SBE'
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_usrdata ud2
|
|
WHERE COALESCE (
|
|
ud2.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999) >
|
|
b.bes_bestelling_datum
|
|
AND ud2.fac_usrdata_upper = 'SBE'
|
|
AND COALESCE (
|
|
ud2.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999) <
|
|
COALESCE (
|
|
ud1.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999)))
|
|
sbe,
|
|
(SELECT MAX (ud1.fac_usrdata_prijs)
|
|
FROM fac_usrdata ud1
|
|
WHERE COALESCE (ud1.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999) >
|
|
b.bes_bestelling_datum
|
|
AND ud1.fac_usrdata_upper = 'VERPAKKING'
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_usrdata ud2
|
|
WHERE COALESCE (
|
|
ud2.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999) >
|
|
b.bes_bestelling_datum
|
|
AND ud2.fac_usrdata_upper =
|
|
'VERPAKKING'
|
|
AND COALESCE (
|
|
ud2.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999) <
|
|
COALESCE (
|
|
ud1.fac_usrdata_vervaldatum,
|
|
SYSDATE + 999)))
|
|
verpakking
|
|
FROM bes_bestelling b,
|
|
bes_bestelling_item bi,
|
|
bes_srtdeel sd,
|
|
bes_srtgroep sg
|
|
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
|
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = 401) x -- Magazijn-Uitgifte
|
|
LEFT JOIN
|
|
( SELECT bi.bes_bestelling_key, COUNT ( * ) verdeling
|
|
FROM bes_bestelling_item bi, bes_srtdeel sd, bes_srtgroep sg
|
|
WHERE bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
|
AND sd.bes_srtdeel_verwijder IS NULL
|
|
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
|
AND sg.ins_discipline_key = 401 -- Magazijn-Uitgifte
|
|
GROUP BY bi.bes_bestelling_key) br
|
|
ON x.bes_bestelling_key = br.bes_bestelling_key
|
|
GROUP BY x.bes_srtgroep_omschrijving || '1',
|
|
TO_CHAR (x.bes_bestelling_datum, 'yyyy')
|
|
|| '-Q'
|
|
|| TO_CHAR (x.bes_bestelling_datum, 'q');
|
|
*/
|
|
|
|
/* Formatted on 7-10-2015 17:05:25 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW kfns_v_noti_voorraadbeheer
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
key,
|
|
xkey,
|
|
xemail,
|
|
xmobile
|
|
)
|
|
AS
|
|
SELECT DISTINCT
|
|
sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
NULL,
|
|
REPLACE (sn.fac_srtnotificatie_oms, '##WK##', TO_CHAR (SYSDATE, 'yyyy-iw')),
|
|
r.fac_usrrap_key,
|
|
v.extra_key,
|
|
ud.fac_usrdata_omschr,
|
|
NULL
|
|
FROM kfns_v_mag_voorraad v, fac_v_aanwezigusrdata ud, fac_usrrap r, fac_srtnotificatie sn
|
|
WHERE TO_CHAR (SYSDATE, 'd') = '2' -- Elke maandag!
|
|
AND v.extra_key = ud.fac_usrdata_key
|
|
AND UPPER (r.fac_usrrap_view_name) = 'KFNS_V_MAG_VOORRAAD'
|
|
AND sn.fac_srtnotificatie_code = 'CUST03'
|
|
UNION ALL
|
|
SELECT DISTINCT
|
|
sn.fac_srtnotificatie_code,
|
|
NULL,
|
|
NULL,
|
|
REPLACE (sn.fac_srtnotificatie_oms, '##KW##', TO_CHAR (SYSDATE, 'yyyy') || '-Q' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'q')),
|
|
r.fac_usrrap_key,
|
|
v.extra_key,
|
|
ud.fac_usrdata_omschr,
|
|
NULL
|
|
FROM kfns_v_mag_verbruik v, fac_v_aanwezigusrdata ud, fac_usrrap r, fac_srtnotificatie sn
|
|
WHERE TO_CHAR (SYSDATE, 'dd') = '01' -- Elke 1e dag van het..
|
|
AND TO_CHAR (SYSDATE, 'mm') IN ('01','04','07','10') -- ..kwartaal!
|
|
AND v.extra_key = ud.fac_usrdata_key
|
|
AND UPPER (r.fac_usrrap_view_name) = 'KFNS_V_MAG_VERBRUIK'
|
|
AND sn.fac_srtnotificatie_code = 'CUST04';
|
|
|
|
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
|
/
|
|
BEGIN fac.registercustversion('KFNS', 10); END;
|
|
/
|
|
commit;
|
|
spool off
|