4842 lines
190 KiB
SQL
4842 lines
190 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific db-configuration for Medux (MDUX)
|
||
|
||
DEFINE thisfile = 'MDUX.SQL'
|
||
DEFINE dbuser = '^MDUX'
|
||
DEFINE custid = 'MDUX'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SPOOL &fcltlogfile
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
--
|
||
-- Personen import
|
||
--
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_post_import_perslid (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_perslid
|
||
SET prs_afdeling_naam = prs_afdeling_naam || prs_kenmerk1
|
||
WHERE fac_import_key = p_import_key
|
||
AND LENGTH(prs_afdeling_naam || prs_kenmerk1) <= 10;
|
||
-- lengte-conditie omdat afdelingsnaam max. 10 lang mag zijn. Ongeldige perslid-records worden zo op voorhand uitgesloten, en niet geupdate.
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_import_perslid (p_import_key IN NUMBER)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
BEGIN
|
||
|
||
|
||
v_errorhint := 'Generieke update';
|
||
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
|
||
|
||
-- Let op: afdelingcode (kolomnaam Afdnr.) is nog NIET het afdelingscode, maar het 1e gedeelte ervan.
|
||
-- De kolom erna (Kostendrager) moet erachter worden geplakt, in AFAS zijn dat bij MDUX 2 velden, die tezamen het afdelingscode vormen.
|
||
-- Dat gebeurt in de post_import functie, die de afdelingscode (afdnr + kostendrager) alsnog korrekt vult.
|
||
-- Daarom gaat kostendrager (kolom 7) in kenmerkenveld 1 (positie 27).
|
||
-- Dus hier wordt afdelingscode (plaats nummer 7 in de string '0;0;0;0;0;0;6;4;3;1;' voor een deel gevuld (het moet gevuld zijn, records zonde afd.nr komen anders niet in de import tabel terecht.
|
||
|
||
prs.import_perslid (p_import_key,
|
||
'0;0;0;0;0;0;6;4;3;1;' ||
|
||
'2;0;0;0;0;11;10;9;0;5;' ||
|
||
'8;12;0;0;0;0;7;0;0;0;'||
|
||
'0;0;0;0;0;0;0;0;0;0;'||
|
||
'0;0;0;0;0;0',
|
||
'Roepnaam;Voorletters;Voorvoegsel;Achternaam;Persnr.;Afdnr.;Kostendrager;Functie;Email;Mobile;Telefoon;Loginnaam%'
|
||
);
|
||
COMMIT;
|
||
|
||
-- Korrektie van de afdelingscode gebeurt nu...
|
||
mdux_post_import_perslid(p_import_key);
|
||
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
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 mdux_import_perslid;
|
||
/
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_update_perslid (
|
||
p_import_key IN NUMBER
|
||
) IS
|
||
-- Alle personen verwijderen die niet meer in import bestand voorkomen.
|
||
CURSOR c_del
|
||
IS
|
||
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
|
||
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
|
||
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
|
||
AND pf.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_nr IS NOT NULL
|
||
AND i.prs_perslid_nr IS NULL
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
ORDER BY 2;
|
||
|
||
v_count NUMBER;
|
||
|
||
BEGIN
|
||
-- generic update
|
||
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM fac_imp_perslid;
|
||
|
||
IF v_count < 300
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Het aantal te importeren personen is te klein ('
|
||
|| TO_CHAR (v_count) || ')',
|
||
'Zie Specificatie'
|
||
);
|
||
RETURN;
|
||
END IF;
|
||
|
||
-- 'NR' betekent dat op basis van personeelsNummeR wordt gematched.
|
||
-- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen
|
||
prs.update_perslid (p_import_key, 'NR', NULL);
|
||
|
||
-- Verwijder personen die niet meer in de import voorkomen.
|
||
FOR rec IN c_del
|
||
LOOP
|
||
BEGIN
|
||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
END mdux_update_perslid;
|
||
/
|
||
|
||
|
||
------
|
||
------ BUDGET UPDATE / IMPORT prs_kostenplaasten.
|
||
------
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_import_budget (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
v_newline VARCHAR2 (1000); -- Input line
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER := 0;
|
||
v_ongeldig NUMBER (1);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_count NUMBER;
|
||
|
||
|
||
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
-- De importvelden:
|
||
v_prs_kostenplaats_nr VARCHAR2 (256);
|
||
v_prs_kostenplaats_limiet VARCHAR2 (256);
|
||
|
||
v_prs_kostenplaats_bh VARCHAR2 (256);
|
||
v_prs_kostenplaatsgrp_oms VARCHAR2 (256);
|
||
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
DELETE FROM mdux_imp_kostenplaatsen;
|
||
|
||
COMMIT;
|
||
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_aanduiding := '';
|
||
v_errorhint := 'Fout bij opvragen te importeren rij';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden
|
||
|
||
-- 01, 02, 03, 04
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_kostenplaats_nr);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_kostenplaats_limiet);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_kostenplaats_bh);
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_kostenplaatsgrp_oms);
|
||
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_prs_kostenplaats_nr
|
||
|| '|'
|
||
|| v_prs_kostenplaats_limiet
|
||
|| '|'
|
||
|| v_prs_kostenplaats_bh
|
||
|| '|'
|
||
|| v_prs_kostenplaatsgrp_oms
|
||
|| '] ';
|
||
|
||
-- 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 (v_prs_kostenplaats_nr) = 'KOSTENPLAATS'
|
||
AND UPPER (v_prs_kostenplaats_limiet) = 'BUDGET'
|
||
AND UPPER (v_prs_kostenplaats_bh) = 'BUDGETHOUDER'
|
||
AND UPPER (v_prs_kostenplaatsgrp_oms) = 'KOSTENPLAATSGROEP'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
-- Controleer alle veldwaarden
|
||
|
||
--
|
||
v_errorhint := 'Ongeldige kostenplaats';
|
||
v_prs_kostenplaats_nr := TRIM (v_prs_kostenplaats_nr);
|
||
|
||
IF LENGTH (v_prs_kostenplaats_nr) > 30
|
||
THEN
|
||
v_prs_kostenplaats_nr := SUBSTR (v_prs_kostenplaats_nr, 1, 30);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Kostenplaats te lang',
|
||
'Kostenplaats wordt afgebroken tot ['
|
||
|| v_prs_kostenplaats_nr
|
||
|| ']'
|
||
);
|
||
ELSE
|
||
IF (v_prs_kostenplaats_nr IS NULL)
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog
|
||
(p_import_key,
|
||
'E',
|
||
v_aanduiding || 'Kostenplaats onbekend',
|
||
'Kostenplaats is verplicht; regel wordt overgeslagen!'
|
||
);
|
||
END IF;
|
||
END IF;
|
||
|
||
IF LENGTH (v_prs_kostenplaats_limiet) > 8
|
||
THEN
|
||
v_prs_kostenplaats_limiet := SUBSTR (v_prs_kostenplaats_limiet, 1, 8);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Budget te lang',
|
||
'Budget wordt afgebroken tot ['
|
||
|| v_prs_kostenplaats_limiet
|
||
|| ']'
|
||
);
|
||
ELSE
|
||
IF (v_prs_kostenplaats_limiet IS NULL)
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog
|
||
(p_import_key,
|
||
'E',
|
||
v_aanduiding || 'Budget onbekend',
|
||
'Budget is verplicht; regel wordt overgeslagen!'
|
||
);
|
||
END IF;
|
||
END IF;
|
||
COMMIT;
|
||
|
||
--
|
||
v_errorhint := 'Ongeldige loginnaam budgethouder';
|
||
v_prs_kostenplaats_bh := TRIM (v_prs_kostenplaats_bh);
|
||
|
||
IF LENGTH (v_prs_kostenplaats_bh) > 30
|
||
THEN
|
||
v_prs_kostenplaats_bh := SUBSTR (v_prs_kostenplaats_bh, 1, 30);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Loginnaam van budgethouder te lang',
|
||
'Loginnaam wordt afgebroken tot ['
|
||
|| v_prs_kostenplaats_bh
|
||
|| ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errorhint := 'Ongeldige kostenplaatsgroep';
|
||
v_prs_kostenplaatsgrp_oms := TRIM (v_prs_kostenplaatsgrp_oms);
|
||
|
||
IF LENGTH (v_prs_kostenplaatsgrp_oms) > 60
|
||
THEN
|
||
v_prs_kostenplaatsgrp_oms := SUBSTR (v_prs_kostenplaatsgrp_oms, 1, 60);
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Kostenplaatsgroep te lang',
|
||
'Kostenplaatsgroep wordt afgebroken tot ['
|
||
|| v_prs_kostenplaatsgrp_oms
|
||
|| ']'
|
||
);
|
||
END IF;
|
||
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errorhint :=
|
||
'Fout bij toevoegen regel aan importtabel mdux_imp_kostenplaatsen';
|
||
|
||
INSERT INTO mdux_imp_kostenplaatsen
|
||
(prs_kostenplaats_nr, prs_kostenplaats_limiet, prs_kostenplaats_bh, prs_kostenplaatsgrp_oms)
|
||
VALUES (v_prs_kostenplaats_nr, v_prs_kostenplaats_limiet, v_prs_kostenplaats_bh,v_prs_kostenplaatsgrp_oms);
|
||
COMMIT;
|
||
v_count_import := v_count_import + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errorhint
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog
|
||
(p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Ingelezen regel kan niet worden weggeschreven!'
|
||
);
|
||
COMMIT;
|
||
END;
|
||
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',
|
||
'Budgetten: aantal ingelezen regels: '
|
||
|| TO_CHAR (v_count_tot),
|
||
''
|
||
);
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Budgetten: aantal ongeldige importregels: '
|
||
|| 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, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint
|
||
);
|
||
COMMIT;
|
||
END mdux_import_budget;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_update_budget (
|
||
p_import_key IN NUMBER
|
||
)
|
||
IS
|
||
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_tot NUMBER (10);
|
||
v_count_error NUMBER (10);
|
||
v_count NUMBER (10);
|
||
|
||
|
||
v_prs_kostenplaats_key NUMBER (10);
|
||
v_prs_perslid_key NUMBER(10);
|
||
v_prs_kostenplaatsgrp_key NUMBER(10);
|
||
|
||
-- Alle budgetten: dit zijn de regels waarvan de objectnaam voldoet aan de volgende codering: XX-XXTTXX, met op de X precies 1 karakter.
|
||
CURSOR c_kpn
|
||
IS
|
||
SELECT *
|
||
FROM mdux_imp_kostenplaatsen;
|
||
|
||
BEGIN
|
||
v_count_tot := 0;
|
||
v_count_error := 0;
|
||
|
||
|
||
v_aanduiding := '';
|
||
|
||
|
||
-- Alle bugetten verwerken...
|
||
FOR rc IN c_kpn
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
v_errorhint := 'Fout bij bepalen kostenplaats [' || rc.prs_kostenplaats_nr || ']';
|
||
|
||
SELECT prs_kostenplaats_key
|
||
INTO v_prs_kostenplaats_key
|
||
FROM prs_kostenplaats
|
||
WHERE prs_kostenplaats_upper = UPPER(rc.prs_kostenplaats_nr)
|
||
AND prs_kostenplaats_verwijder IS NULL;
|
||
|
||
|
||
v_errorhint := 'Fout bij bepalen budgethouder [' || rc.prs_kostenplaats_bh || ']';
|
||
v_prs_perslid_key := NULL;
|
||
IF rc.prs_kostenplaats_bh IS NOT NULL
|
||
THEN
|
||
SELECT prs_perslid_key
|
||
INTO v_prs_perslid_key
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_oslogin = UPPER(rc.prs_kostenplaats_bh)
|
||
AND prs_perslid_verwijder IS NULL;
|
||
END IF;
|
||
|
||
v_errorhint := 'Fout bij bepalen kostenplaatsgroep [' || rc.prs_kostenplaatsgrp_oms || ']';
|
||
v_prs_kostenplaatsgrp_key := NULL;
|
||
IF rc.prs_kostenplaatsgrp_oms IS NOT NULL
|
||
THEN
|
||
SELECT prs_kostenplaatsgrp_key
|
||
INTO v_prs_kostenplaatsgrp_key
|
||
FROM prs_kostenplaatsgrp
|
||
WHERE UPPER(prs_kostenplaatsgrp_oms) = UPPER(rc.prs_kostenplaatsgrp_oms);
|
||
END IF;
|
||
|
||
|
||
v_errorhint := 'Fout bij update budget bij kostenplaats [' || rc.prs_kostenplaats_nr || ']';
|
||
|
||
UPDATE prs_kostenplaats
|
||
SET prs_kostenplaats_limiet = rc.prs_kostenplaats_limiet,
|
||
prs_perslid_key = v_prs_perslid_key,
|
||
prs_kostenplaatsgrp_key = v_prs_kostenplaatsgrp_key
|
||
WHERE prs_kostenplaats_key = v_prs_kostenplaats_key;
|
||
|
||
COMMIT;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_count_error := v_count_error + 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint
|
||
);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Budget: verwerkte regels zonder foutmelding: '
|
||
|| TO_CHAR (v_count_tot - v_count_error),
|
||
''
|
||
);
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Budget: verwerkte regels met foutmelding: '
|
||
|| TO_CHAR (v_count_error),
|
||
''
|
||
);
|
||
COMMIT;
|
||
|
||
|
||
END mdux_update_budget;
|
||
/
|
||
|
||
|
||
|
||
------
|
||
------ FACTUURIMPORT / KOPPELING NAVISION (roundtrip, dit is deel I: de import van facturen uit Navision)
|
||
------
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_post_fin_factuur_navision (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
UPDATE fac_imp_factuur
|
||
SET ordernr = SUBSTR(ordernr,4)
|
||
WHERE UPPER(ordernr) LIKE 'FCC%'
|
||
AND fac_import_key = p_import_key;
|
||
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_import_fin_factuur_nav (p_import_key IN NUMBER)
|
||
AS
|
||
v_seq_of_columns VARCHAR(50);
|
||
BEGIN
|
||
|
||
--In de XSL: leveranciernr(1);factuurnr(2);factuurdatum(3);opdrachtnr(4);omschrijving(5);bedrag(6);btwperc(7);document(8);navision_nr(9)
|
||
-- Leveranciernummer doen we nog ff niet.
|
||
|
||
--hulp voor pos : '1;2;3;4;5;6;7;8;9;0;1;2;3;4;5;6;7;8;9;0;1;2'
|
||
v_seq_of_columns := '1;2;3;4;0;0;5;0;6;0;7;8;0;0;0;9;0;0;0;0;0;0';
|
||
|
||
-- Variabelelijst
|
||
-- v_leveranciernr: 1
|
||
-- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet")
|
||
-- v_factuurdatum: 3
|
||
-- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet")
|
||
-- v_locatie: 5
|
||
-- v_afleverdatum: 6
|
||
-- v_omschrijving: 7
|
||
-- v_aantal: 8
|
||
-- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet")
|
||
-- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet")
|
||
-- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet")
|
||
-- v_docid: 12
|
||
-- v_debiteur_nr: 13
|
||
-- v_opmerking: 14
|
||
-- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/<leeg> waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet")
|
||
-- v_kenmerk1: 16 (AX opdrachtnummer: IONRxxxx)
|
||
-- v_kenmerk2: 17 (GLN Leverancier(snummer)
|
||
-- v_kenmerk3: 18 (IBAN)
|
||
-- v_kenmerk4: 19 (G-IBAN - geblokkeerde rekening)
|
||
-- v_kenmerk5: 20 (G-Amount - bedrag geblokeerde rekening)
|
||
-- v_boekmaand: 21
|
||
-- v_kenmerk6: 22 (Factuuronderwerp)
|
||
-- v_kenmerk7: 23
|
||
-- v_kenmerk8: 24
|
||
-- v_kenmerk9: 25
|
||
-- v_kenmerk10: 26
|
||
-- v_kenmerk11: 27
|
||
-- v_kenmerk12: 28
|
||
|
||
fac_import_factuur_body(p_import_key, v_seq_of_columns);
|
||
mdux_post_fin_factuur_navision (p_import_key);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_post_update_factuur_nav (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
CURSOR cfactuur_kenmerk_navision_nr
|
||
IS
|
||
SELECT DISTINCT fin_factuur_key, kenmerk1, factuurnr, fac_imp_file_index
|
||
FROM fac_imp_factuur
|
||
WHERE fin_factuur_key IS NOT NULL
|
||
AND fac_import_key = p_import_key
|
||
AND kenmerk1 IS NOT NULL;
|
||
|
||
-- Key van het kenmerk 'navision nummer ' bij de factuur
|
||
c_kenmerk_key_navision_nr NUMBER(10) := 2;
|
||
|
||
|
||
|
||
BEGIN
|
||
|
||
-- Het externe opdrachtnr (AX) wordt in kenmerk 1 van fac_imp_factuur gezet, dus alle fac_imp_factuur langsgaan en verwerken
|
||
|
||
FOR rc IN cfactuur_kenmerk_navision_nr
|
||
LOOP
|
||
BEGIN
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||
VALUES (rc.fin_factuur_key, c_kenmerk_key_navision_nr, rc.kenmerk1);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Van factuur met key ' || rc.fin_factuur_key || ' is de externe factuurnr (Navision)niet bewaard (regel ' || rc.fac_imp_file_index || ')',
|
||
'Factuurnr:' || rc.factuurnr || ' / Navision: ' || rc.kenmerk1
|
||
);
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_update_fin_factuur_nav (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
-- Standaard FCLT verwerk import facturen
|
||
fac_update_factuur (p_import_key);
|
||
mdux_post_update_factuur_nav(p_import_key);
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
|
||
------
|
||
------ FACTUUREXPORT / KOPPELING NAVISION
|
||
------
|
||
|
||
--------------------------------------------------
|
||
-- NAVISION: Factuurexport
|
||
|
||
|
||
-- View waarin bij de factuur met fin_factuur_key het bijbehorende externe factuurnr uit Navision.
|
||
CREATE OR REPLACE VIEW mdux_v_factuur_navision_nr (fin_factuur_key, fin_factuur_navision_nr)
|
||
AS
|
||
SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur kf
|
||
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 2;
|
||
|
||
-- View waarin bij de factuur met fin_factuur_key het bijbehorende kenmerk 'afgewezen' wordt bepaald.
|
||
CREATE OR REPLACE VIEW mdux_v_factuur_afgewezen (fin_factuur_key, fin_factuur_afgewezen)
|
||
AS
|
||
SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur kf
|
||
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 3;
|
||
|
||
-- View waarin bij de factuur met fin_factuur_key het bijbehorende kenmerk 'incompleet wordt bepaald.
|
||
CREATE OR REPLACE VIEW mdux_v_factuur_incompleet (fin_factuur_key, fin_factuur_incompleet)
|
||
AS
|
||
SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur kf
|
||
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 100;
|
||
|
||
-- view tbv export naar financieel systeem Navision
|
||
CREATE OR REPLACE VIEW mdux_v_factuur_mldcnt_gegevens (
|
||
fin_factuur_key,
|
||
opdracht_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_nr,
|
||
fin_factuur_navision_nr,
|
||
fin_factuur_totaal,
|
||
fin_factuur_totaal_btw,
|
||
fin_factuur_totaal_inclbtw,
|
||
prs_bedrijf_key,
|
||
prs_leverancier_nr,
|
||
fin_factuurregel_totaal,
|
||
fin_factuurregel_btw,
|
||
fin_factuurregel_totaal_incbtw,
|
||
fin_factuurregel_btw_perc,
|
||
fin_btwtabelwaarde_btwcode,
|
||
fin_factuurregel_nr,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuur_debiteur_nr,
|
||
project_nummer,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoort_doorbelasten,
|
||
prs_kostenplaats_nr,
|
||
bes_opdr_key,
|
||
mld_opdr_key,
|
||
cnt_contract_key,
|
||
fin_factuur_statuses_key
|
||
)
|
||
AS
|
||
SELECT DISTINCT f.fin_factuur_key,
|
||
COALESCE (TO_CHAR (cnt_contract_nummer),
|
||
(SELECT sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key =
|
||
sd.ins_srtdiscipline_key)
|
||
)
|
||
opdracht_id,
|
||
f.fin_factuur_datum,
|
||
f.fin_factuur_boekmaand,
|
||
f.fin_factuur_nr,
|
||
nav.fin_factuur_navision_nr,
|
||
f.fin_factuur_totaal,
|
||
f.fin_factuur_totaal_btw,
|
||
CASE
|
||
WHEN ROUND(f.fin_factuur_totaal + f.fin_factuur_totaal_btw,2) > 0
|
||
THEN LPAD(TO_CHAR(100 * ROUND(f.fin_factuur_totaal + f.fin_factuur_totaal_btw,2)), 10, '0') || '-'
|
||
ELSE LPAD(TO_CHAR(100 * ROUND(ABS(f.fin_factuur_totaal + f.fin_factuur_totaal_btw),2)), 10, '0') || '+'
|
||
END fin_factuur_totaal_inclbtw,
|
||
COALESCE (b_c.prs_bedrijf_key, b_o.prs_bedrijf_key) prs_bedrijf_key,
|
||
COALESCE (b_c.prs_leverancier_nr, b_o.prs_leverancier_nr) prs_leverancier_nr,
|
||
fr.fin_factuurregel_totaal,
|
||
fr.fin_factuurregel_btw,
|
||
CASE
|
||
WHEN ROUND(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw,2) > 0
|
||
THEN LPAD(TO_CHAR(100 * ROUND(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw,2)), 10, '0') || LPAD('0',10,'0')
|
||
ELSE LPAD('0',10,'0') || LPAD(TO_CHAR(100 * ROUND(ABS(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw),2)), 10, '0')
|
||
END fin_factuurregel_totaal_incbtw,
|
||
btw.fin_btwtabelwaarde_perc,
|
||
btw.fin_btwtabelwaarde_code,
|
||
fr.fin_factuurregel_nr,
|
||
fr.fin_factuurregel_omschrijving,
|
||
f.fin_factuur_debiteur_nr,
|
||
NULL projectnummer,
|
||
COALESCE(ks_regel.prs_kostensoort_oms,ks.prs_kostensoort_oms),
|
||
DECODE(ks_regel.prs_kostensoort_oms, NULL, ks.prs_kostensoort_doorbelasten, ks_regel.prs_kostensoort_doorbelasten),
|
||
COALESCE (kp_c.prs_kostenplaats_nr, kp_o.prs_kostenplaats_nr) prs_kostenplaats_nr,
|
||
NULL bes_opdr_key,
|
||
o.mld_opdr_key,
|
||
c.cnt_contract_key,
|
||
f.fin_factuur_statuses_key
|
||
FROM fin_factuur f,
|
||
mdux_v_factuur_navision_nr nav,
|
||
fin_factuurregel fr,
|
||
fin_btwtabelwaarde btw,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
cnt_contract c,
|
||
prs_bedrijf b_o,
|
||
prs_bedrijf b_c,
|
||
prs_kostensoort ks,
|
||
prs_kostensoort ks_regel,
|
||
prs_kostenplaats kp_c,
|
||
prs_kostenplaats kp_o
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.fin_factuur_verwijder is null
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
|
||
AND f.bes_bestelopdr_key is null
|
||
AND f.mld_opdr_key = o.mld_opdr_key(+)
|
||
AND o.prs_kostenplaats_key = kp_o.prs_kostenplaats_key (+)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND f.cnt_contract_key = c.cnt_contract_key(+)
|
||
AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
|
||
AND c.prs_kostenplaats_key = kp_c.prs_kostenplaats_key (+)
|
||
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+)
|
||
AND f.fin_factuur_key = nav.fin_factuur_key(+);
|
||
|
||
|
||
CREATE OR REPLACE VIEW MDUX_V_FACTUUR_BES_GEGEVENS (
|
||
fin_factuur_key,
|
||
opdracht_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_boekmaand,
|
||
fin_factuur_nr,
|
||
fin_factuur_navision_nr,
|
||
fin_factuur_totaal,
|
||
fin_factuur_totaal_btw,
|
||
fin_factuur_totaal_inclbtw,
|
||
prs_bedrijf_key,
|
||
prs_leverancier_nr,
|
||
fin_factuurregel_totaal,
|
||
fin_factuurregel_btw,
|
||
fin_factuurregel_totaal_incbtw,
|
||
fin_factuurregel_btw_perc,
|
||
fin_btwtabelwaarde_btwcode,
|
||
fin_factuurregel_nr,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuur_debiteur_nr,
|
||
project_nummer,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoort_doorbelasten,
|
||
prs_kostenplaats_nr,
|
||
bes_opdr_key,
|
||
mld_opdr_key,
|
||
cnt_contract_key,
|
||
fin_factuur_statuses_key
|
||
)
|
||
AS
|
||
SELECT DISTINCT f.fin_factuur_key,
|
||
TO_CHAR (bo.bes_bestelopdr_id) opdracht_id,
|
||
f.fin_factuur_datum,
|
||
f.fin_factuur_boekmaand,
|
||
f.fin_factuur_nr,
|
||
nav.fin_factuur_navision_nr,
|
||
f.fin_factuur_totaal,
|
||
f.fin_factuur_totaal_btw,
|
||
CASE
|
||
WHEN ROUND(f.fin_factuur_totaal + f.fin_factuur_totaal_btw,2) > 0
|
||
THEN LPAD(TO_CHAR(100 * ROUND(f.fin_factuur_totaal + f.fin_factuur_totaal_btw,2)), 10, '0') || '-'
|
||
ELSE LPAD(TO_CHAR(100 * ROUND(ABS(f.fin_factuur_totaal + f.fin_factuur_totaal_btw),2)), 10, '0') || '+'
|
||
END fin_factuur_totaal_inclbtw,
|
||
b.prs_bedrijf_key,
|
||
b.prs_leverancier_nr,
|
||
fr.fin_factuurregel_totaal,
|
||
fr.fin_factuurregel_btw,
|
||
CASE
|
||
WHEN ROUND(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw,2) > 0
|
||
THEN LPAD(TO_CHAR(100 * ROUND(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw,2)), 10, '0') || LPAD('0',10,'0')
|
||
ELSE LPAD('0',10,'0') || LPAD(TO_CHAR(100 * ROUND(ABS(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw),2)), 10, '0')
|
||
END fin_factuurregel_totaal_incbtw,
|
||
btw.fin_btwtabelwaarde_perc,
|
||
btw.fin_btwtabelwaarde_code,
|
||
fr.fin_factuurregel_nr,
|
||
fr.fin_factuurregel_omschrijving,
|
||
f.fin_factuur_debiteur_nr,
|
||
NULL projectnummer,
|
||
COALESCE(ks_regel.prs_kostensoort_oms,ks.prs_kostensoort_oms),
|
||
DECODE(ks_regel.prs_kostensoort_oms, NULL, ks.prs_kostensoort_doorbelasten, ks_regel.prs_kostensoort_doorbelasten),
|
||
kp.prs_kostenplaats_nr,
|
||
bo.bes_bestelopdr_key bes_opdr_key,
|
||
NULL mld_opdr_key,
|
||
NULL cnt_contract_key,
|
||
f.fin_factuur_statuses_key
|
||
FROM bes_bestelopdr bo,
|
||
prs_bedrijf b,
|
||
bes_bestelling bes,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi,
|
||
fin_factuur f,
|
||
mdux_v_factuur_navision_nr nav,
|
||
fin_factuurregel fr,
|
||
fin_btwtabelwaarde btw,
|
||
prs_kostensoort ks,
|
||
prs_kostensoort ks_regel,
|
||
prs_kostenplaats kp
|
||
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key
|
||
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND bes.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND kp.prs_kostenplaats_key = bes.prs_kostenplaats_key
|
||
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+)
|
||
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND f.fin_factuur_verwijder is null
|
||
AND f.fin_factuur_key = fr.fin_factuur_key
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
|
||
AND f.fin_factuur_key = nav.fin_factuur_key(+);
|
||
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_factuur_geg
|
||
AS
|
||
SELECT * from mdux_v_factuur_mldcnt_gegevens
|
||
UNION
|
||
SELECT * from mdux_v_factuur_bes_gegevens;
|
||
|
||
|
||
-- Alle facturen die of akkoord of afgewezen zijn, gaan terug naar Navision.
|
||
-- MDUX#55136: ook facturen met de status incompleet gaan terug naar Navision
|
||
CREATE OR REPLACE VIEW mdux_v_factuur_geg_2_navision
|
||
AS
|
||
SELECT * from mdux_v_factuur_mldcnt_gegevens
|
||
WHERE fin_factuur_statuses_key IN (1,6,3)
|
||
UNION
|
||
SELECT * from mdux_v_factuur_bes_gegevens
|
||
WHERE fin_factuur_statuses_key IN (1,6,3);
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_exp_navision_body
|
||
(result, result_order)
|
||
AS
|
||
SELECT '<factuur><navision_nr>' || fin_factuur_navision_nr || '</navision_nr><akkoord>' ||
|
||
DECODE(fin_factuur_statuses_key, 1, '0','1') || '</akkoord></factuur>'
|
||
, fin_factuur_key
|
||
FROM mdux_v_factuur_geg_2_navision;
|
||
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_export_navision (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT '<xml>',0 FROM DUAL
|
||
UNION
|
||
SELECT result, result_order FROM mdux_v_exp_navision_body
|
||
UNION
|
||
SELECT '</xml>',99999999999999999999 FROM DUAL;
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_export_navision (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
-- In cursor cfactuur alle facturen die worden geexporteerd...
|
||
CURSOR cfactuur
|
||
IS
|
||
SELECT fin_factuur_key, fin_factuur_statuses_key
|
||
FROM mdux_v_factuur_geg_2_navision
|
||
GROUP BY fin_factuur_key, fin_factuur_statuses_key;
|
||
|
||
c_kenmerk_key_afgewezen NUMBER (10) := 3;
|
||
c_kenmerk_key_incompleet NUMBER (10) := 100;
|
||
v_count NUMBER (10);
|
||
BEGIN
|
||
-- DE EXPORT IS OP BASIS VAN EEN VIEW GEREALISEERD, WAARNA NU ALS LAATSTE STAP NOG WAT ADMINISTRATIE VOLGT...
|
||
FOR cfact IN cfactuur
|
||
LOOP
|
||
-- Zowel de factuur in tracking zetten als de status op verwerkt (=7) zetten
|
||
IF cfact.fin_factuur_statuses_key = 6
|
||
THEN
|
||
-- Status akkoord kan op reguliere wijze naar verwerkt...
|
||
fin.setfactuurstatus (cfact.fin_factuur_key, 7, NULL);
|
||
ELSE
|
||
IF cfact.fin_factuur_statuses_key = 1
|
||
THEN
|
||
-- Status afgewezen kan NIET op reguliere wijze naar verwerkt... (zie call MDUX#31142)
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM mdux_v_factuur_afgewezen
|
||
WHERE fin_factuur_key = cfact.fin_factuur_key;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
UPDATE fin_kenmerkfactuur
|
||
SET fin_kenmerkfactuur_waarde = '1'
|
||
WHERE fin_factuur_key = cfact.fin_factuur_key
|
||
AND fin_kenmerk_key = c_kenmerk_key_afgewezen;
|
||
ELSE
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (cfact.fin_factuur_key,
|
||
c_kenmerk_key_afgewezen,
|
||
'1');
|
||
END IF;
|
||
|
||
fac.trackaction ('FINVER',
|
||
cfact.fin_factuur_key,
|
||
NULL,
|
||
NULL,
|
||
'Factuur van afgewezen naar verwerkt');
|
||
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 7
|
||
WHERE fin_factuur_key = cfact.fin_factuur_key;
|
||
|
||
ELSE
|
||
IF cfact.fin_factuur_statuses_key = 3
|
||
THEN
|
||
-- Status incompleet kan NIET op reguliere wijze naar verwerkt... (zie call MDUX#55136)
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM mdux_v_factuur_incompleet
|
||
WHERE fin_factuur_key = cfact.fin_factuur_key;
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
UPDATE fin_kenmerkfactuur
|
||
SET fin_kenmerkfactuur_waarde = '1'
|
||
WHERE fin_factuur_key = cfact.fin_factuur_key
|
||
AND fin_kenmerk_key = c_kenmerk_key_incompleet;
|
||
ELSE
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (cfact.fin_factuur_key,
|
||
c_kenmerk_key_incompleet,
|
||
'1');
|
||
END IF;
|
||
|
||
fac.trackaction ('FINVER',
|
||
cfact.fin_factuur_key,
|
||
NULL,
|
||
NULL,
|
||
'Factuur van incompleet naar verwerkt');
|
||
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 7
|
||
WHERE fin_factuur_key = cfact.fin_factuur_key;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_export_undo_navision (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT REPLACE(REPLACE(f.fin_factuur_key
|
||
|| ';'
|
||
|| opdracht_id
|
||
|| ';'
|
||
|| fin_factuur_datum
|
||
|| ';'
|
||
|| fin_factuur_nr
|
||
|| ';'
|
||
|| prs_bedrijf_key
|
||
|| ';'
|
||
|| fin_factuurregel_totaal
|
||
|| ';'
|
||
|| fin_factuurregel_btw
|
||
|| ';'
|
||
|| fin_factuurregel_nr
|
||
|| ';'
|
||
|| fin_factuur_debiteur_nr
|
||
|| ';'
|
||
|| project_nummer
|
||
|| ';'
|
||
|| prs_kostensoort_oms
|
||
|| ';'
|
||
|| bes_opdr_key
|
||
|| ';'
|
||
|| mld_opdr_key
|
||
|| ';'
|
||
|| cnt_contract_key
|
||
,CHR (13), ''), CHR (10), '<ret>'), f.fin_factuur_key
|
||
FROM mdux_v_factuur_geg f, fac_tracking t, fac_srtnotificatie sn
|
||
WHERE sn.fac_srtnotificatie_code ='FINVER'
|
||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND t.fac_tracking_datum >= (SELECT MAX(t1.fac_tracking_datum) - (1 / (24*60))
|
||
FROM fac_tracking t1
|
||
WHERE t1.fac_srtnotificatie_key = t.fac_srtnotificatie_key)
|
||
AND f.fin_factuur_key = t.fac_tracking_refkey
|
||
AND f.fin_factuur_statuses_key = 7;
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_select_undo_navision (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
v_errormsg VARCHAR (200);
|
||
BEGIN
|
||
v_errormsg := 'Geen akties';
|
||
|
||
END;
|
||
/
|
||
|
||
-- Procedure om alle geexporteerde facturen naar status akkoord terug te zetten.
|
||
CREATE OR REPLACE PROCEDURE mdux_export_undo_navision (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR cfactuur
|
||
IS
|
||
SELECT DISTINCT f.fin_factuur_key, t.fac_tracking_datum
|
||
FROM fac_tracking t, fac_srtnotificatie sn, fin_factuur f
|
||
WHERE sn.fac_srtnotificatie_code ='FINVER'
|
||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND t.fac_tracking_datum >= (SELECT MAX(t1.fac_tracking_datum) - (1 / (24*60))
|
||
FROM fac_tracking t1
|
||
WHERE t1.fac_srtnotificatie_key = t.fac_srtnotificatie_key)
|
||
AND f.fin_factuur_key = t.fac_tracking_refkey
|
||
AND fin_factuur_statuses_key = 7;
|
||
|
||
v_fac_tracking_datum_akkoord DATE;
|
||
v_fac_tracking_datum_afgewezen DATE;
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
c_kenmerk_key_afgewezen NUMBER(10) := 3;
|
||
|
||
BEGIN
|
||
v_errormsg := 'Geen akties';
|
||
|
||
FOR cfact IN cfactuur
|
||
LOOP
|
||
|
||
SELECT MAX(t.fac_tracking_datum)
|
||
INTO v_fac_tracking_datum_akkoord
|
||
FROM fac_tracking t, fin_factuur f, fac_srtnotificatie sn
|
||
WHERE f.fin_factuur_key = t.fac_tracking_refkey
|
||
AND f.fin_factuur_key = cfact.fin_factuur_key
|
||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'FINFOK';
|
||
|
||
SELECT MAX(t.fac_tracking_datum)
|
||
INTO v_fac_tracking_datum_afgewezen
|
||
FROM fac_tracking t, fin_factuur f, fac_srtnotificatie sn
|
||
WHERE f.fin_factuur_key = t.fac_tracking_refkey
|
||
AND f.fin_factuur_key = cfact.fin_factuur_key
|
||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'FINFNO';
|
||
|
||
IF v_fac_tracking_datum_afgewezen IS NULL
|
||
THEN IF v_fac_tracking_datum_akkoord IS NOT NULL
|
||
THEN
|
||
-- Factuur was oorspronkelijk akkoord, DUS weer terug op akkoord zetten.
|
||
|
||
-- Eerst de factuur in tracking zetten...
|
||
-- Omdat van 7 naar 6 niet mag/geoorloofd is, lukt het niet via
|
||
-- de reguliere functie fin.setfactuurstatus (cfact.fin_factuur_key, 6, NULL);
|
||
|
||
-- Dan maar zelf en custom-made:
|
||
fac.trackaction ('FINFOK', cfact.fin_factuur_key, NULL, NULL, 'Factuur uit archief teruggezet');
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 6
|
||
WHERE fin_factuur_key = cfact.fin_factuur_key;
|
||
END IF;
|
||
-- Als beiden null zijn, dan GEEN actie (deze situatie zou niet voor mogen komen)
|
||
ELSE
|
||
IF v_fac_tracking_datum_akkoord IS NOT NULL
|
||
THEN
|
||
-- Factuur had kennelijk beide statussen, dus akkoord en afgewezen.
|
||
-- Het gaat er nu om wat de laatste status van die 2 was, dus ff vergelijken...
|
||
IF v_fac_tracking_datum_akkoord > v_fac_tracking_datum_afgewezen
|
||
THEN
|
||
-- Factuur was oorspronkelijk akkoord, DUS weer terug op akkoord zetten.
|
||
fac.trackaction ('FINFOK', cfact.fin_factuur_key, NULL, NULL, 'Factuur uit archief teruggezet');
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 6
|
||
WHERE fin_factuur_key = cfact.fin_factuur_key;
|
||
ELSE
|
||
-- Factuur was oorspronkelijk afgewezen, DUS weer terug op afgewezen zetten.
|
||
fac.trackaction ('FINFNO', cfact.fin_factuur_key, NULL, NULL, 'Factuur uit archief teruggezet');
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 1
|
||
WHERE fin_factuur_key = cfact.fin_factuur_key;
|
||
|
||
DELETE FROM fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = cfact.fin_factuur_key
|
||
AND fin_kenmerk_key = c_kenmerk_key_afgewezen;
|
||
|
||
END IF;
|
||
ELSE
|
||
-- Factuur was oorspronkelijk afgewezen, DUS weer terug op afgewezen zetten.
|
||
fac.trackaction ('FINFNO', cfact.fin_factuur_key, NULL, NULL, 'Factuur uit archief teruggezet');
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 1
|
||
WHERE fin_factuur_key = cfact.fin_factuur_key;
|
||
|
||
DELETE FROM fin_kenmerkfactuur
|
||
WHERE fin_factuur_key = cfact.fin_factuur_key
|
||
AND fin_kenmerk_key = c_kenmerk_key_afgewezen;
|
||
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
|
||
-- Mdux stuurt geen LUC mee, afgesproken dat wanneer een externe bedrijf een url (p_bedrijfadres_url) heeft,
|
||
-- dan het bedrijf een L (Leverancier) is waar in Facilitor (bij vrije bestelaanvragen) uit gekozen kan worden....
|
||
-- Daarom in deze post-import alle bedrijven in de import met p_import_key een L markeren die een technisch adres hebben...
|
||
CREATE OR REPLACE PROCEDURE mdux_post_import_bedrijf (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
|
||
UPDATE fac_imp_ext_bedrijf
|
||
SET prs_bedrijf_leverancier = 1
|
||
WHERE prs_bedrijf_order_adres IS NOT NULL
|
||
AND prs_leverancier_nr NOT IN (10846,58977) --MDUX#52455: Uitzondering voor Staples en Zalsman BV
|
||
;
|
||
|
||
-- MDUX#32101: Alle leveranciers als "uitvoerende" markeren, deze gelijkgetrokken aan "Leverancier" (had ook in 1 query gekund).
|
||
UPDATE fac_imp_ext_bedrijf
|
||
SET prs_bedrijf_uitvoerende = 1
|
||
WHERE prs_bedrijf_order_adres IS NOT NULL;
|
||
|
||
-- MDUX#37363: Alle leveranciers als potentieel "contractant" markeren
|
||
UPDATE fac_imp_ext_bedrijf
|
||
SET prs_bedrijf_contract = 1;
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_import_bedrijf (p_import_key IN NUMBER)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_seq_of_columns VARCHAR(255);
|
||
BEGIN
|
||
-- hulpje 1;2;3;4;5;6;7;8;9;0;1;2;3;4;5;6;7;18;9;0;1;2;3;4;5;6;27;8;9;0;1;2;3;4
|
||
v_seq_of_columns := '2;1;3;4;5;6;0;0;0;0;7;8;11;0;0;0;0;9;0;0;0;0;0;0;0;0;10;0;0;0;0;0;0;0';
|
||
fac_import_bedrijf_body (p_import_key, v_seq_of_columns, 1);
|
||
-- Mdux stuurt geen LUC mee, afgesproken dat wanneer een externe bedrijf een url (p_bedrijfadres_url) heeft,
|
||
-- dan het bedrijf een L (Leverancier) is waar in Facilitor (bij vrije bestelaanvragen) uit gekozen kan worden....
|
||
mdux_post_import_bedrijf (p_import_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.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
'Inleesproces relaties afgebroken!');
|
||
END mdux_import_bedrijf;
|
||
/
|
||
|
||
|
||
|
||
-- Werkt de technische adres(sen) van bedrijf 'p_bedrijf_key' bij.
|
||
-- Parameters:
|
||
-- p_bedrijf_key (id van prs_bedrijf)
|
||
-- p_bedrijfadres_url (technisch adres, b.v. mailadres. URL, FTP, ..)
|
||
-- p_bedrijf_broc (1 of NULL, indien 1 dan is bedrijf als zodanig geregistreerd als p_kanaal (volgende param).
|
||
-- -- Dus b.v. 1 en p_kanaal = 'B', dan is bedrijf een leverancier in Facilitor
|
||
-- -- En b.v. NULL en p_kanaal = 'O', dan is bedrijf geen uitvoerende in Facilitor.
|
||
-- p_kanaal is "B" (bestelopdracht), "O" (meldingpdracht) of "C" (contract)
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_delupsert_bedrijfadres (p_bedrijf_key IN NUMBER, p_bedrijfadres_url IN VARCHAR2, p_bedrijfadres_xsl IN VARCHAR2, p_bedrijf_broc IN NUMBER, p_kanaal IN VARCHAR)
|
||
AS
|
||
v_count NUMBER (10);
|
||
v_bedrijfadres_url prs_bedrijfadres.prs_bedrijfadres_url%TYPE;
|
||
BEGIN
|
||
-- In beide gevallen (insert of update) moet het Technisch adres worden bijgewerkt.
|
||
-- Als kolom p_bedrijfadres_url gevuld is (met een technisch adres), dan zal deze ook geinsert of bijgewerkt moeten worden als kanaal "p_kanaal",
|
||
-- en wordt deze relatie een "L" (Leverancier).
|
||
-- Indien de kolom p_bedrijfadres_url niet (meer) gevuld is, en het technisich adres met "broc"-kanaal bestaat, dan wordt deze verwijderd.
|
||
-- en wordt deze relatie niet langer een "L" (Leverancier).
|
||
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM prs_bedrijfadres
|
||
WHERE prs_bedrijf_key = p_bedrijf_key
|
||
AND prs_bedrijfadres_type = p_kanaal;
|
||
|
||
v_bedrijfadres_url := TRIM(p_bedrijfadres_url);
|
||
IF v_bedrijfadres_url IS NOT NULL
|
||
THEN
|
||
-- We doen een soort can correctieslagje, door ff de prefix mailto: ervoor zetten als die dat nog niet heeft er er een @ in dit veld aanwezig is
|
||
-- NB: @ betekent hier maar eens dat het een mailadres betreft en geen URL. O ja? Ja, laten we daar maar 'ns van uitgaan....
|
||
|
||
IF SUBSTR(v_bedrijfadres_url, 1, 7) <> 'mailto:' AND INSTR(v_bedrijfadres_url,'@') > 0
|
||
THEN
|
||
v_bedrijfadres_url := 'mailto:' || v_bedrijfadres_url;
|
||
END IF;
|
||
|
||
-- Dit externe bedrijf heeft een technisch adres in het BRONsysteem!
|
||
IF v_count = 0
|
||
THEN
|
||
-- Bedrijf heeft nog geen technisch adres in Facilitor, alleen aanmaken indien 'p_bedrijf_broc' = 1 (zodat bij juiste kanaal wordt aangemaakt).
|
||
IF p_bedrijf_broc = 1
|
||
THEN
|
||
INSERT INTO prs_bedrijfadres( prs_bedrijf_key, prs_bedrijfadres_type, prs_bedrijfadres_url , prs_bedrijfadres_xsl)
|
||
VALUES (p_bedrijf_key, p_kanaal, v_bedrijfadres_url, p_bedrijfadres_xsl);
|
||
END IF;
|
||
ELSE
|
||
-- Bedrijf heeft al een technisch adres voor dit kanaal p_kanaal, dus updaten als 'p_bedrijf_broc' = 1 (zodat bij juiste kanaal wordt ge-update), en anders verwijderen.
|
||
IF p_bedrijf_broc = 1
|
||
THEN
|
||
-- Bijwerken van technische adres van dit bedrijf, NIET! de stylesheet, die wordt namelijk in Facilitor beheerd!!!
|
||
UPDATE prs_bedrijfadres
|
||
SET prs_bedrijfadres_url = v_bedrijfadres_url
|
||
WHERE prs_bedrijf_key = p_bedrijf_key
|
||
AND prs_bedrijfadres_type = p_kanaal;
|
||
ELSE
|
||
-- Verwijderen van technische adres van dit bedrijf bij het kanaal p_kanaal, omdat het geen leverancier/uitvoerende/contractant meer is!
|
||
DELETE prs_bedrijfadres
|
||
WHERE prs_bedrijf_key = p_bedrijf_key
|
||
AND prs_bedrijfadres_type = p_kanaal;
|
||
END IF;
|
||
END IF;
|
||
ELSE
|
||
-- Dit externe bedrijf heeft geen technisch adres (bij kanaal bestelopdrachten) in RBT geregistreerd
|
||
-- Als die in Facilitor er 1 heeft, dan wordt deze geleegd (ongeacht p_kanaal), dus gewoon altijd verwijderen (want die heeft dus GEEN technisch adres).
|
||
IF v_count > 0
|
||
THEN
|
||
DELETE prs_bedrijfadres
|
||
WHERE prs_bedrijf_key = p_bedrijf_key
|
||
AND prs_bedrijfadres_type = p_kanaal;
|
||
END IF;
|
||
END IF; -- v_bedrijfadres_url IS NOT NULL
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_update_bedrijf_body (p_import_key IN NUMBER, p_sync IN NUMBER)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
v_errorhint VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
v_count_tot NUMBER (10);
|
||
v_count_new NUMBER (10);
|
||
v_count_upd NUMBER (10);
|
||
v_count_del NUMBER (10);
|
||
v_aanduiding VARCHAR2 (200) := '-';
|
||
|
||
|
||
-- SUBPROC
|
||
PROCEDURE add_bedrijf (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT * FROM fac_imp_ext_bedrijf ib;
|
||
|
||
|
||
v_bedrijf_key NUMBER (10);
|
||
BEGIN
|
||
v_count_tot := 0;
|
||
v_count_new := 0;
|
||
v_count_upd := 0;
|
||
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding :=
|
||
'['
|
||
|| rec.prs_bedrijf_naam
|
||
|| '|'
|
||
|| rec.prs_leverancier_nr
|
||
|| '] ';
|
||
|
||
v_errorhint := 'Fout bepalen bedrijf';
|
||
|
||
IF rec.prs_leverancier_nr IS NULL AND p_sync = 1
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || 'Leveranciernummer ongedefinieerd!',
|
||
v_errorhint);
|
||
COMMIT;
|
||
ELSE
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE UPPER (prs_leverancier_nr) =
|
||
UPPER (rec.prs_leverancier_nr);
|
||
|
||
IF v_count = 0 OR p_sync = 0
|
||
THEN
|
||
v_errorhint := 'Fout toevoegen bedrijf';
|
||
|
||
INSERT INTO prs_bedrijf (prs_bedrijf_naam,
|
||
prs_leverancier_nr,
|
||
prs_bedrijf_bezoek_adres,
|
||
prs_bedrijf_bezoek_postcode,
|
||
prs_bedrijf_bezoek_plaats,
|
||
prs_bedrijf_bezoek_land,
|
||
prs_bedrijf_post_adres,
|
||
prs_bedrijf_post_postcode,
|
||
prs_bedrijf_post_plaats,
|
||
prs_bedrijf_post_land,
|
||
prs_bedrijf_telefoon,
|
||
prs_bedrijf_fax,
|
||
prs_bedrijf_email,
|
||
prs_bedrijf_contact_persoon,
|
||
prs_bedrijf_contact_telefoon,
|
||
prs_bedrijf_contact_fax,
|
||
prs_bedrijf_leverancier,
|
||
prs_bedrijf_uitvoerende,
|
||
prs_bedrijf_contract,
|
||
prs_bedrijf_huurder,
|
||
prs_bedrijf_ingids,
|
||
prs_bedrijf_uurloon,
|
||
prs_overeenkomst_nr,
|
||
prs_overeenkomst_datum,
|
||
prs_bedrijf_opmerking)
|
||
VALUES (rec.prs_bedrijf_naam,
|
||
rec.prs_leverancier_nr,
|
||
rec.prs_bedrijf_bezoek_adres,
|
||
rec.prs_bedrijf_bezoek_postcode,
|
||
rec.prs_bedrijf_bezoek_plaats,
|
||
rec.prs_bedrijf_bezoek_land,
|
||
rec.prs_bedrijf_post_adres,
|
||
rec.prs_bedrijf_post_postcode,
|
||
rec.prs_bedrijf_post_plaats,
|
||
rec.prs_bedrijf_post_land,
|
||
rec.prs_bedrijf_telefoon,
|
||
rec.prs_bedrijf_fax,
|
||
rec.prs_bedrijf_email,
|
||
rec.prs_bedrijf_contact_persoon,
|
||
rec.prs_bedrijf_contact_telefoon,
|
||
rec.prs_bedrijf_contact_fax,
|
||
DECODE (rec.prs_bedrijf_leverancier,
|
||
1, 1,
|
||
NULL),
|
||
DECODE (rec.prs_bedrijf_uitvoerende,
|
||
1, 1,
|
||
NULL),
|
||
DECODE (rec.prs_bedrijf_contract, 1, 1, NULL),
|
||
DECODE (rec.prs_bedrijf_huurder, 1, 1, NULL),
|
||
DECODE (rec.prs_bedrijf_ingids, 1, 1, NULL),
|
||
rec.prs_bedrijf_uurloon,
|
||
rec.prs_overeenkomst_nr,
|
||
rec.prs_overeenkomst_datum,
|
||
rec.prs_bedrijf_opmerking) RETURNING prs_bedrijf_key INTO v_bedrijf_key;
|
||
|
||
v_count_new := v_count_new + 1;
|
||
ELSE -- v_count > 0
|
||
SELECT prs_bedrijf_key
|
||
INTO v_bedrijf_key
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE UPPER (prs_leverancier_nr) =
|
||
UPPER (rec.prs_leverancier_nr);
|
||
|
||
v_errorhint := 'Fout bijwerken bedrijf';
|
||
|
||
UPDATE prs_bedrijf
|
||
SET prs_bedrijf_naam =
|
||
COALESCE (rec.prs_bedrijf_naam, prs_bedrijf_naam),
|
||
prs_bedrijf_bezoek_adres =
|
||
COALESCE (rec.prs_bedrijf_bezoek_adres,
|
||
prs_bedrijf_bezoek_adres),
|
||
prs_bedrijf_bezoek_postcode =
|
||
COALESCE (rec.prs_bedrijf_bezoek_postcode,
|
||
prs_bedrijf_bezoek_postcode),
|
||
prs_bedrijf_bezoek_plaats =
|
||
COALESCE (rec.prs_bedrijf_bezoek_plaats,
|
||
prs_bedrijf_bezoek_plaats),
|
||
prs_bedrijf_bezoek_land =
|
||
COALESCE (rec.prs_bedrijf_bezoek_land,
|
||
prs_bedrijf_bezoek_land),
|
||
prs_bedrijf_post_adres =
|
||
COALESCE (rec.prs_bedrijf_post_adres,
|
||
prs_bedrijf_post_adres),
|
||
prs_bedrijf_post_postcode =
|
||
COALESCE (rec.prs_bedrijf_post_postcode,
|
||
prs_bedrijf_post_postcode),
|
||
prs_bedrijf_post_plaats =
|
||
COALESCE (rec.prs_bedrijf_post_plaats,
|
||
prs_bedrijf_post_plaats),
|
||
prs_bedrijf_post_land =
|
||
COALESCE (rec.prs_bedrijf_post_land,
|
||
prs_bedrijf_post_land),
|
||
prs_bedrijf_telefoon =
|
||
COALESCE (rec.prs_bedrijf_telefoon,
|
||
prs_bedrijf_telefoon),
|
||
prs_bedrijf_fax =
|
||
COALESCE (rec.prs_bedrijf_fax, prs_bedrijf_fax),
|
||
prs_bedrijf_email =
|
||
COALESCE (rec.prs_bedrijf_email,
|
||
prs_bedrijf_email),
|
||
prs_bedrijf_contact_persoon =
|
||
COALESCE (rec.prs_bedrijf_contact_persoon,
|
||
prs_bedrijf_contact_persoon),
|
||
prs_bedrijf_contact_telefoon =
|
||
COALESCE (rec.prs_bedrijf_contact_telefoon,
|
||
prs_bedrijf_contact_telefoon),
|
||
prs_bedrijf_contact_fax =
|
||
COALESCE (rec.prs_bedrijf_contact_fax,
|
||
prs_bedrijf_contact_fax),
|
||
prs_bedrijf_leverancier =
|
||
DECODE (rec.prs_bedrijf_leverancier, 1, 1, NULL),
|
||
prs_bedrijf_uitvoerende =
|
||
DECODE (rec.prs_bedrijf_uitvoerende, 1, 1, NULL),
|
||
prs_bedrijf_contract =
|
||
DECODE (rec.prs_bedrijf_contract, 1, 1, NULL),
|
||
prs_bedrijf_huurder =
|
||
DECODE (rec.prs_bedrijf_huurder, 1, 1, NULL),
|
||
prs_bedrijf_ingids =
|
||
DECODE (rec.prs_bedrijf_ingids, 1, 1, NULL),
|
||
prs_bedrijf_uurloon =
|
||
COALESCE (rec.prs_bedrijf_uurloon,
|
||
prs_bedrijf_uurloon),
|
||
prs_overeenkomst_nr =
|
||
COALESCE (rec.prs_overeenkomst_nr,
|
||
prs_overeenkomst_nr),
|
||
prs_overeenkomst_datum =
|
||
COALESCE (rec.prs_overeenkomst_datum,
|
||
prs_overeenkomst_datum),
|
||
prs_bedrijf_opmerking =
|
||
COALESCE (rec.prs_bedrijf_opmerking,
|
||
prs_bedrijf_opmerking)
|
||
WHERE prs_bedrijf_key = v_bedrijf_key;
|
||
|
||
v_count_upd := v_count_upd + 1;
|
||
END IF; -- v_count = 0
|
||
|
||
|
||
END IF; -- rec.prs_leverancier_nr IS NULL
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Bedrijf: #ingelezen: ' || TO_CHAR (v_count_tot),
|
||
'');
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Bedrijf: #toegevoegd: ' || TO_CHAR (v_count_new),
|
||
'');
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Bedrijf: #bijgewerkt: ' || TO_CHAR (v_count_upd),
|
||
'');
|
||
COMMIT;
|
||
END;
|
||
|
||
-- SUBPROC
|
||
PROCEDURE del_bedrijf (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM prs_v_aanwezigbedrijf b
|
||
WHERE b.prs_bedrijf_intern IS NULL
|
||
AND b.prs_leverancier_nr IS NOT NULL
|
||
AND prs_leverancier_nr NOT IN (10846,58977) --MDUX#52455: Uitzondering voor Staples en Zalsman BV
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_ext_bedrijf
|
||
WHERE prs_leverancier_nr = b.prs_leverancier_nr);
|
||
|
||
v_bedrijf_key NUMBER (10);
|
||
BEGIN
|
||
v_count_del := 0;
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := '[' || rec.prs_bedrijf_naam || '] ';
|
||
|
||
v_errorhint := 'Fout verwijderen bedrijf';
|
||
|
||
UPDATE prs_bedrijf
|
||
SET prs_bedrijf_verwijder = SYSDATE
|
||
WHERE prs_bedrijf_key = rec.prs_bedrijf_key;
|
||
|
||
v_count_del := v_count_del + 1;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Bedrijf: #verwijderd: ' || TO_CHAR (v_count_del),
|
||
'');
|
||
COMMIT;
|
||
END;
|
||
|
||
|
||
|
||
PROCEDURE diensten_bedrijf (p_import_key IN NUMBER)
|
||
AS
|
||
|
||
CURSOR c_dienst
|
||
IS
|
||
SELECT DISTINCT prs_dienst_omschrijving
|
||
FROM fac_imp_ext_bedrijf
|
||
WHERE prs_dienst_omschrijving IS NOT NULL;
|
||
|
||
CURSOR c_dienstlocgebouw
|
||
IS
|
||
SELECT prs_dienst_omschrijving, alg_locatie_code, alg_gebouw_code, prs_bedrijf_naam
|
||
FROM fac_imp_ext_bedrijf
|
||
WHERE prs_dienst_omschrijving IS NOT NULL;
|
||
|
||
v_alg_locatie_key NUMBER (10);
|
||
v_alg_gebouw_key NUMBER (10);
|
||
v_prs_dienst_key NUMBER (10);
|
||
v_prs_bedrijf_key NUMBER (10);
|
||
|
||
BEGIN
|
||
v_count_tot := 0;
|
||
v_count_upd := 0;
|
||
|
||
FOR rec2 IN c_dienst
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
v_errormsg :=
|
||
'Kan dienst niet bepalen ['
|
||
|| rec2.prs_dienst_omschrijving
|
||
|| '] ';
|
||
|
||
BEGIN
|
||
SELECT prs_dienst_key
|
||
INTO v_prs_dienst_key
|
||
FROM prs_dienst
|
||
WHERE UPPER(prs_dienst_omschrijving) = UPPER(rec2.prs_dienst_omschrijving);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errormsg :=
|
||
'Kan dienst niet wegschrijven ['
|
||
|| rec2.prs_dienst_omschrijving
|
||
|| '] ';
|
||
|
||
INSERT INTO prs_dienst (prs_dienst_omschrijving)
|
||
VALUES (rec2.prs_dienst_omschrijving);
|
||
END;
|
||
|
||
v_count_upd := v_count_upd + 1;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint
|
||
);
|
||
COMMIT; -- tbv logging
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Diensten: aantal ingelezen: ' || TO_CHAR (v_count_tot),
|
||
''
|
||
);
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Diensten: aantal toegevoegd: '
|
||
|| TO_CHAR (v_count_upd),
|
||
''
|
||
);
|
||
|
||
v_count_tot := 0;
|
||
v_count_upd := 0;
|
||
|
||
FOR rec3 IN c_dienstlocgebouw
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
v_errormsg :=
|
||
'Kan dienst niet bepalen ['
|
||
|| rec3.prs_dienst_omschrijving
|
||
|| '] ';
|
||
SELECT prs_dienst_key
|
||
INTO v_prs_dienst_key
|
||
FROM prs_dienst
|
||
WHERE prs_dienst_omschrijving = rec3.prs_dienst_omschrijving;
|
||
|
||
v_errormsg :=
|
||
'Kan locatie niet bepalen [' || rec3.alg_locatie_code || '] ';
|
||
IF rec3.alg_locatie_code IS NOT NULL
|
||
THEN
|
||
SELECT alg_locatie_key
|
||
INTO v_alg_locatie_key
|
||
FROM alg_v_aanweziglocatie
|
||
WHERE alg_locatie_code = rec3.alg_locatie_code;
|
||
ELSE
|
||
v_alg_locatie_key := NULL;
|
||
END IF;
|
||
|
||
v_errormsg :=
|
||
'Kan gebouw niet bepalen [' || rec3.alg_gebouw_code || '] ';
|
||
IF rec3.alg_gebouw_code IS NOT NULL
|
||
THEN
|
||
SELECT alg_gebouw_key
|
||
INTO v_alg_gebouw_key
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE alg_gebouw_code = rec3.alg_gebouw_code
|
||
AND alg_locatie_key = v_alg_locatie_key;
|
||
ELSE
|
||
v_alg_gebouw_key := NULL;
|
||
END IF;
|
||
|
||
v_errormsg :=
|
||
'Kan bedrijf niet bepalen [' || rec3.prs_bedrijf_naam || '] ';
|
||
SELECT prs_bedrijf_key
|
||
INTO v_prs_bedrijf_key
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE prs_bedrijf_naam = rec3.prs_bedrijf_naam;
|
||
|
||
v_errormsg :=
|
||
'Kan bedrijf/dienst/loc/gebouw niet wegschrijven ['
|
||
|| rec3.prs_bedrijf_naam
|
||
|| '/'
|
||
|| rec3.prs_dienst_omschrijving
|
||
|| '/'
|
||
|| rec3.alg_locatie_code
|
||
|| '/'
|
||
|| rec3.alg_gebouw_code
|
||
|| '] ';
|
||
|
||
|
||
INSERT INTO prs_bedrijfdienstlocatie
|
||
(
|
||
prs_dienst_key, prs_bedrijf_key, alg_locatie_key, alg_gebouw_key
|
||
)
|
||
VALUES (v_prs_dienst_key, v_prs_bedrijf_key, decode (v_alg_gebouw_key, null, v_alg_locatie_key, null), v_alg_gebouw_key);
|
||
|
||
v_count_upd := v_count_upd + 1;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint
|
||
);
|
||
COMMIT; -- tbv logging
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Bedrijf/dienst/locatie: aantal ingelezen: '
|
||
|| TO_CHAR (v_count_tot),
|
||
''
|
||
);
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Bedrijf/dienst/locatie: aantal toegevoegd: '
|
||
|| TO_CHAR (v_count_upd),
|
||
''
|
||
);
|
||
END;
|
||
|
||
|
||
|
||
|
||
-- MAIN
|
||
BEGIN
|
||
|
||
IF p_sync = 1
|
||
THEN
|
||
-- Bij aanvullen nooit verwijderen, alleen bij sync-en
|
||
del_bedrijf (p_import_key);
|
||
END IF;
|
||
|
||
add_bedrijf (p_import_key);
|
||
|
||
IF p_sync = 0
|
||
THEN
|
||
-- Bij aanvullen bedrijven de diensten-locatie-gebouw uitvoeren, bij sync-en (nog) niet
|
||
diensten_bedrijf(p_import_key);
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Importproces relaties afgebroken!');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_post_update_bedrijf (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT * FROM fac_imp_ext_bedrijf ib;
|
||
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
v_errorhint VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
v_aanduiding VARCHAR2 (200) := '-';
|
||
|
||
v_bedrijf_key NUMBER (10);
|
||
v_aantal_bedrijfadres_url NUMBER (10);
|
||
BEGIN
|
||
|
||
|
||
SELECT count(*)
|
||
INTO v_aantal_bedrijfadres_url
|
||
FROM fac_imp_ext_bedrijf
|
||
WHERE prs_bedrijf_order_adres IS NOT NULL;
|
||
|
||
-- Worden de technische adressen elders beheerd, dan bijwerken, en anders met rust laten (dan beheer in Facilitor, zal de defeault zijn)
|
||
|
||
-- Wij gaan conclusie beheer in Facilitor of bron hier als volgt bepalen:
|
||
-- indien er GEEN bedrijfsadres_url's in de bron staan, dan beheer in Facilitor.
|
||
-- indien er minimaal 1 bedrijfsadres_url's in de bron staat, dan beheer in bronsysteem
|
||
|
||
IF v_aantal_bedrijfadres_url > 0
|
||
THEN
|
||
-- Beheer van technische adressen in bronsysteem, dus we gaan hier de technische adressen bijweken op basis van leveranciernummer (add/upd/del).
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
|
||
v_aanduiding :=
|
||
'['
|
||
|| rec.prs_bedrijf_naam
|
||
|| '|'
|
||
|| rec.prs_leverancier_nr
|
||
|| '] ';
|
||
|
||
v_errorhint := 'Fout bepalen bedrijf';
|
||
|
||
IF rec.prs_leverancier_nr IS NOT NULL
|
||
THEN
|
||
|
||
SELECT prs_bedrijf_key
|
||
INTO v_bedrijf_key
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE UPPER (prs_leverancier_nr) = UPPER (rec.prs_leverancier_nr);
|
||
|
||
mdux_delupsert_bedrijfadres(v_bedrijf_key, rec.prs_bedrijf_order_adres, rec.prs_bedrijf_xsl, rec.prs_bedrijf_leverancier, 'B');
|
||
-- MDUX#32101: Voor mldopdrachten (en contracten ook maar) geen technisch adres instellen, MDUX wil dat vooralsnog handmatig versturen.
|
||
-- mdux_delupsert_bedrijfadres(v_bedrijf_key, rec.prs_bedrijf_order_adres, rec.prs_bedrijf_xsl, rec.prs_bedrijf_uitvoerende, 'O');
|
||
-- mdux_delupsert_bedrijfadres(v_bedrijf_key, rec.prs_bedrijf_order_adres, rec.prs_bedrijf_xsl, rec.prs_bedrijf_contract, 'C');
|
||
|
||
|
||
END IF; -- rec.prs_leverancier_nr IS NULL
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE mdux_update_bedrijf (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
mdux_update_bedrijf_body(p_import_key, 1);
|
||
mdux_post_update_bedrijf (p_import_key);
|
||
END ;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE VIEW MDUX_V_PERSLID_WARM
|
||
(PRS_PERSLID_KEY, PRS_PERSLID_INFO, PRS_PERSLID_VERWIJDER)
|
||
AS
|
||
SELECT prs_perslid_key,
|
||
prs_perslid_naam
|
||
|| DECODE (p.prs_perslid_voorletters,
|
||
NULL, '',
|
||
', ' || p.prs_perslid_voorletters)
|
||
|| DECODE (p.prs_perslid_tussenvoegsel,
|
||
NULL, '',
|
||
' ' || p.prs_perslid_tussenvoegsel)
|
||
|| DECODE (p.prs_perslid_voornaam,
|
||
NULL, '',
|
||
' (' || p.prs_perslid_voornaam || ')')
|
||
|| '(pers.nr: '
|
||
|| prs_perslid_nr
|
||
|| ')',
|
||
prs_perslid_verwijder
|
||
FROM prs_perslid p
|
||
WHERE prs_perslid_nr IS NOT NULL;
|
||
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_budget_basic
|
||
AS
|
||
SELECT prs_kostenplaats_key,
|
||
kostenplaats,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoort_opmerking,
|
||
SUM (bedrag) bedrag,
|
||
SUM (geraamd) geraamd,
|
||
prs_kostenplaats_limiet,
|
||
prs_kostenplaatsgrp_key,
|
||
kpgroep,
|
||
kp_prs_perslid_key,
|
||
kpg_prs_perslid_key,
|
||
limietperiode,
|
||
to_char(besteldatum,'YYYY') jaar,
|
||
to_char(besteldatum,'MM') maand
|
||
FROM (SELECT k.prs_kostenplaats_key,
|
||
NVL2 (
|
||
k.prs_kostenplaats_nr,
|
||
prs_kostenplaats_nr || ' '
|
||
|| lcl.x ('prs_kostenplaats_omschrijving',
|
||
k.prs_kostenplaats_key,
|
||
k.prs_kostenplaats_omschrijving),
|
||
'')
|
||
kostenplaats,
|
||
ks.prs_kostensoort_oms,
|
||
ks.prs_kostensoort_opmerking,
|
||
CASE
|
||
WHEN (module = 'BES' AND (status = 6 OR status = 7))
|
||
OR (module = 'MLD' AND (status = 7 OR status = 9))
|
||
OR (module = 'RES' AND (status = 5 OR status = 6))
|
||
THEN
|
||
COALESCE (bedrag, 0)
|
||
ELSE
|
||
0
|
||
END
|
||
bedrag,
|
||
CASE
|
||
WHEN (module = 'BES' AND (status = 6 OR status = 7))
|
||
OR (module = 'MLD' AND (status = 7 OR status = 9))
|
||
OR (module = 'RES' AND (status = 5 OR status = 6))
|
||
THEN
|
||
0
|
||
ELSE
|
||
COALESCE (bedrag, 0)
|
||
END
|
||
geraamd,
|
||
k.prs_kostenplaats_limiet,
|
||
k.prs_kostenplaatsgrp_key,
|
||
kpg.prs_kostenplaatsgrp_oms kpgroep,
|
||
k.prs_perslid_key kp_prs_perslid_key,
|
||
kpg.prs_perslid_key kpg_prs_perslid_key,
|
||
status,
|
||
module,
|
||
COALESCE (kpg.prs_kostenplaatsgrp_limperiode,
|
||
k.prs_kostenplaats_limietperiode)
|
||
limietperiode,
|
||
besteldatum
|
||
FROM (SELECT o.prs_kostenplaats_key,
|
||
o.mld_opdr_datumbegin datum,
|
||
m.prs_perslid_key prs_perslid_key,
|
||
mdis.ins_discipline_omschrijving categorie,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
categorienummer,
|
||
COALESCE (o.mld_opdr_kosten, 0) bedrag,
|
||
o.mld_statusopdr_key status,
|
||
'MLD' module,
|
||
COALESCE (s.prs_kostensoort_key,
|
||
mdis.prs_kostensoort_key)
|
||
prs_kostensoort_key,
|
||
o.mld_opdr_ordernr ordernr,
|
||
o.mld_opdr_key kostenplaats_item_key,
|
||
-1 kostenplaats_item_child_key,
|
||
m.mld_alg_locatie_key locatie_key,
|
||
o.mld_opdr_datumbegin besteldatum
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
mld_stdmelding s,
|
||
mld_discipline mdis,
|
||
ins_srtdiscipline sd
|
||
WHERE o.mld_opdr_kosten <> 0
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 1
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = s.mld_stdmelding_key
|
||
AND mdis.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND mdis.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND o.mld_statusopdr_key NOT IN (1, 2, 3, 4, 10)
|
||
-- AND o.mld_opdr_datumbegin BETWEEN TO_DATE (
|
||
-- '20-12-2014 00:00',
|
||
-- 'DD-MM-YYYY HH24:MI')
|
||
-- AND TO_DATE (
|
||
-- '20-12-2014 23:59',
|
||
-- 'DD-MM-YYYY HH24:MI')
|
||
UNION ALL
|
||
SELECT b.prs_kostenplaats_key,
|
||
bo.bes_bestelopdr_datum datum,
|
||
b.prs_perslid_key prs_perslid_key,
|
||
'Bestelling' categorie,
|
||
TO_CHAR (b.bes_bestelling_key) categorienummer,
|
||
(boi.bes_bestelopdr_item_aantal
|
||
* boi.bes_bestelopdr_item_prijs)
|
||
bedrag,
|
||
COALESCE (bo.bes_bestelopdr_status, 0) status,
|
||
'BES' module,
|
||
bdis.prs_kostensoort_key,
|
||
b.bes_bestelling_ordernr ordernr,
|
||
b.bes_bestelling_key kostenplaats_item_key,
|
||
-1 kostenplaats_item_child_key,
|
||
(SELECT alg_locatie_key
|
||
FROM mld_adres ma
|
||
WHERE ma.mld_adres_key = b.mld_adres_key_lev)
|
||
locatie_key,
|
||
bo.bes_bestelopdr_datum besteldatum
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_bestelopdr bo,
|
||
bes_bestelopdr_item boi,
|
||
bes_srtdeel isd,
|
||
bes_srtgroep isg,
|
||
bes_discipline bdis
|
||
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND bi.bes_bestelopdr_item_key =
|
||
boi.bes_bestelopdr_item_key
|
||
AND bi.bes_srtdeel_key = isd.bes_srtdeel_key
|
||
AND isd.bes_srtgroep_key = isg.bes_srtgroep_key
|
||
AND isg.ins_discipline_key = bdis.ins_discipline_key
|
||
AND bo.bes_bestelopdr_status IN (4, 6, 7)
|
||
-- AND bo.bes_bestelopdr_datum BETWEEN TO_DATE (
|
||
-- '20-12-2014 00:00',
|
||
-- 'DD-MM-YYYY HH24:MI')
|
||
-- AND TO_DATE (
|
||
-- '20-12-2014 23:59',
|
||
-- 'DD-MM-YYYY HH24:MI')
|
||
) tab,
|
||
prs_kostenplaats k,
|
||
prs_kostenplaatsgrp kpg,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
prs_perslid p,
|
||
prs_v_afdeling d,
|
||
alg_locatie l
|
||
WHERE tab.prs_kostenplaats_key(+) = k.prs_kostenplaats_key
|
||
AND tab.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND k.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
|
||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
||
AND tab.prs_perslid_key = p.prs_perslid_key(+)
|
||
AND p.prs_afdeling_key = d.prs_afdeling_key(+)
|
||
AND tab.locatie_key = l.alg_locatie_key(+)
|
||
-- AND k.prs_kostenplaats_key IN (2, 3, 67, 110, 111, 135)
|
||
-- AND (k.prs_perslid_key = 329 OR kpg.prs_perslid_key = 329)
|
||
)
|
||
GROUP BY prs_kostenplaats_key,
|
||
kostenplaats,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoort_opmerking,
|
||
prs_kostenplaats_limiet,
|
||
prs_kostenplaatsgrp_key,
|
||
kpgroep,
|
||
kp_prs_perslid_key,
|
||
kpg_prs_perslid_key,
|
||
limietperiode,
|
||
to_char(besteldatum,'YYYY'),
|
||
to_char(besteldatum,'MM');
|
||
|
||
-- MDUX#35025 herinnering tbv binnenboeken(leveren) van bestellingen
|
||
CREATE OR REPLACE VIEW MDUX_V_RAP_BES_OPEN_LEV
|
||
(
|
||
BES_BESTELOPDR_KEY,
|
||
EXTRA_KEY,
|
||
ORDERNUMMER,
|
||
BESTELLER,
|
||
BESTELDATUM,
|
||
LEVERDATUM,
|
||
LEVERANCIER,
|
||
TOTAAL
|
||
)
|
||
AS
|
||
SELECT bo.bes_bestelopdr_key,
|
||
p1.prs_perslid_key,
|
||
'FCC' || bo.bes_bestelopdr_id Ordernummer,
|
||
p3.prs_perslid_naam_friendly Besteller,
|
||
TO_CHAR (bes.bes_bestelling_datum, 'DD-MM-YYYY') Besteldatum,
|
||
TO_CHAR (bes_bestelling_leverdatum, 'DD-MM-YYYY') Leverdatum,
|
||
bdr.prs_bedrijf_naam Leverancier,
|
||
SUM (boi.totaal) Totaal
|
||
FROM bes_bestelopdr bo,
|
||
bes_bestelling bes,
|
||
(SELECT bes_bestelopdr_key,
|
||
bes_bestelopdr_item_key,
|
||
bes_bestelopdr_item_aantal,
|
||
bes_bestelopdr_item_prijs,
|
||
bes_bestelopdr_item_aantal * bes_bestelopdr_item_prijs
|
||
totaal
|
||
FROM bes_bestelopdr_item) boi,
|
||
bes_bestelling_item bi,
|
||
prs_perslid p1,
|
||
prs_perslid p2,
|
||
prs_v_perslid_fullnames p3,
|
||
mld_adres ma,
|
||
fac_gebruikersgroep fg,
|
||
prs_bedrijf bdr,
|
||
(SELECT p.prs_perslid_key, g.alg_locatie_key
|
||
FROM prs_perslidwerkplek ppw,
|
||
prs_werkplek w,
|
||
prs_perslid p,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g
|
||
WHERE w.prs_werkplek_key = ppw.prs_werkplek_key
|
||
AND p.prs_perslid_key = ppw.prs_perslid_key
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND w.prs_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) pw
|
||
WHERE bes_bestelopdr_status IN (4, 5)
|
||
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND bes.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND p1.prs_perslid_key = pw.prs_perslid_key
|
||
AND pw.alg_locatie_key = ma.alg_locatie_key
|
||
AND bes.mld_adres_key_lev = ma.mld_adres_key
|
||
AND fg.prs_perslid_key = p1.prs_perslid_key
|
||
AND fg.fac_groep_key = 22
|
||
AND p1.prs_perslid_verwijder IS NULL
|
||
AND SUBSTR (p1.prs_perslid_oslogin, 0, 1) != '_'
|
||
AND ( (bes_bestelling_leverdatum < SYSDATE - 5
|
||
AND bes_bestelling_leverdatum > bes_bestelopdr_datum)
|
||
OR (bes_bestelopdr_datum < SYSDATE - 5
|
||
AND bes_bestelling_leverdatum <= bes_bestelopdr_datum))
|
||
AND bes.prs_perslid_key_voor = p2.prs_perslid_key
|
||
AND p2.prs_afdeling_key = p1.prs_afdeling_key
|
||
AND p3.prs_perslid_key = bes.prs_perslid_key_voor
|
||
AND bo.prs_bedrijf_key = bdr.prs_bedrijf_key
|
||
GROUP BY bo.bes_bestelopdr_key,
|
||
bo.bes_bestelopdr_id,
|
||
p3.prs_perslid_naam_friendly,
|
||
bes.bes_bestelling_datum,
|
||
bes_bestelling_leverdatum,
|
||
bdr.prs_bedrijf_naam,
|
||
p1.prs_perslid_key
|
||
ORDER BY 2;
|
||
|
||
CREATE OR REPLACE VIEW MDUX_V_NOTI_BES_LEV_REMINDER
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT 'CUST01',
|
||
NULL,
|
||
extra_key,
|
||
'Herinnering: er zijn '
|
||
|| COUNT (bes_bestelopdr_key)
|
||
|| ' openstaande bestelopdrachten die op uw levering wachten',
|
||
(SELECT fac_usrrap_key
|
||
FROM fac_usrrap
|
||
WHERE fac_usrrap_view_name = 'MDUX_V_RAP_BES_OPEN_LEV'),
|
||
extra_key
|
||
FROM MDUX_V_RAP_BES_OPEN_LEV
|
||
GROUP BY extra_key;
|
||
|
||
-- MDUX#35089 rapport tbv bestellers inzage in bestelde artikelen
|
||
CREATE OR REPLACE VIEW MDUX_V_RAP_BES_ARTIKEL_VOOR
|
||
(
|
||
Aanvraagnr,
|
||
Bestel_datum,
|
||
Status,
|
||
Besteller,
|
||
Besteld_voor,
|
||
Catalogus,
|
||
Groep,
|
||
Artikel_nummer,
|
||
Artikel,
|
||
Aantal,
|
||
Artikel_prijs,
|
||
Totaalbedrag,
|
||
besteller_key,
|
||
FCLT_3D_AFDELING_KEY,
|
||
FCLT_3D_LOCATIE_KEY
|
||
)
|
||
AS
|
||
SELECT b.bes_bestelling_key,
|
||
b.bes_bestelling_datum,
|
||
stat.bes_bestellingstatuses_omschr,
|
||
pf.prs_perslid_naam_full,
|
||
kd.prs_perslid_info,
|
||
dis.ins_discipline_omschrijving ins_discipline_omschrijving,
|
||
grp.bes_srtgroep_omschrijving bes_srtgroep_omschrijving,
|
||
srt.bes_srtdeel_nr bes_srtdeel_nr,
|
||
srt.bes_srtdeel_omschrijving bes_srtdeel_omschrijving,
|
||
bi.bes_bestelling_item_aantal aantalart,
|
||
COALESCE (bi.bes_bestelling_item_prijs, 0) artikelprijs,
|
||
bi.bes_bestelling_item_aantal
|
||
* COALESCE (bi.bes_bestelling_item_prijs, 0)
|
||
totaalbedrag,
|
||
p.prs_perslid_key,
|
||
boom.prs_afdeling_key1,
|
||
l.alg_locatie_key
|
||
FROM bes_bestelling_item bi,
|
||
bes_srtdeel srt,
|
||
bes_bestelling b,
|
||
bes_bestellingstatuses stat,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_v_afdeling d,
|
||
prs_v_afdeling_boom boom,
|
||
bes_srtgroep grp,
|
||
ins_tab_discipline dis,
|
||
mld_adres adr,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
(SELECT bes_bestelling_key, prs_perslid_info
|
||
FROM bes_kenmerkbestell bkb,
|
||
bes_kenmerk bk,
|
||
MDUX_V_PERSLID_WARM p
|
||
WHERE bes_kenmerkbestell_verwijder IS NULL
|
||
AND bk.bes_kenmerk_key = bkb.bes_kenmerk_key
|
||
AND bk.bes_srtkenmerk_key = 21
|
||
AND TO_CHAR (p.prs_perslid_key(+)) =
|
||
bes_kenmerkbestell_waarde) kd
|
||
WHERE bi.bes_srtdeel_key = srt.bes_srtdeel_key
|
||
AND srt.bes_srtgroep_key = grp.bes_srtgroep_key
|
||
AND grp.ins_discipline_key = dis.ins_discipline_key
|
||
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND b.bes_bestelling_status = stat.bes_bestellingstatuses_key
|
||
AND p.prs_perslid_key = b.prs_perslid_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_afdeling_key = d.prs_afdeling_key
|
||
AND d.prs_afdeling_key = boom.prs_afdeling_key
|
||
AND b.mld_adres_key_lev = adr.mld_adres_key
|
||
AND adr.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND l.alg_district_key = dI.alg_district_key(+)
|
||
AND kd.bes_bestelling_key = b.bes_bestelling_key
|
||
AND NOT EXISTS
|
||
(SELECT b1.bes_bestelling_key
|
||
FROM bes_bestelling b1
|
||
WHERE bes_bestelling_parentkey = b.bes_bestelling_key)
|
||
AND b.bes_bestelling_status NOT IN (8)
|
||
ORDER BY bes_bestelling_key;
|
||
|
||
|
||
-- MDUX#37895: Factuurmatching in financieel pakket laten plaatsvinden -> hiervoor stellen we via API onderstaande view beschikbaar...
|
||
CREATE OR REPLACE VIEW mdux_bes_4_ax
|
||
AS
|
||
SELECT
|
||
'FCC' || TO_CHAR (bo.bes_bestelopdr_id) opdracht_id,
|
||
b.prs_bedrijf_key,
|
||
b.prs_leverancier_nr,
|
||
kp.prs_kostenplaats_nr,
|
||
bo.bes_bestelopdr_key bes_opdr_key,
|
||
NULL mld_opdr_key,
|
||
NULL cnt_contract_key,
|
||
BO.BES_BESTELOPDR_LEVKOSTEN,
|
||
BO.BES_BESTELOPDR_KORTING,
|
||
BO.BES_BESTELOPDR_STATUS,
|
||
fac.gettrackingdate('BESOTV', bo.BES_BESTELOPDR_KEY) bes_besotv_datum,
|
||
BOI.BES_BESTELOPDR_ITEM_POSNR,
|
||
BOI.BES_BESTELOPDR_ITEM_OMSCHRIJV,
|
||
BOI.BES_BESTELOPDR_ITEM_AANTAL,
|
||
BOI.BES_BESTELOPDR_ITEM_AANTALONTV,
|
||
BOI.BES_BESTELOPDR_ITEM_PRIJS,
|
||
BOI.BES_BESTELOPDR_ITEM_BRUTOPRIJS,
|
||
BOI.BES_BESTELOPDR_ITEM_STATUS
|
||
FROM bes_bestelopdr bo,
|
||
prs_bedrijf b,
|
||
bes_bestelling bes,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi,
|
||
prs_kostenplaats kp
|
||
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key
|
||
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND bes.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND kp.prs_kostenplaats_key = bes.prs_kostenplaats_key;
|
||
|
||
-- De noti-job gaat niet op prs_perslid, maar op een vast mailadres van MDUX.
|
||
-- Hiervoor 'xemail' kolom gebruiken, die gaat voor (=ipv) de receiver indien we als flags in de noti-job de waarde 1 meegeven. Zie mdux08.sql
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_noti_cntreminder
|
||
(code, sender, receiver, text, key, par1, par2, xkey, xemail, xmobile)
|
||
AS
|
||
SELECT '', '', c.prs_perslid_key_beh,
|
||
'Rapp<EFBFBD>l: Contract '
|
||
|| c.cnt_contract_nummer_intern||DECODE(cnt_contract_versie, NULL, '', '.'||cnt_contract_versie)
|
||
|| ' ('
|
||
|| c.cnt_contract_omschrijving
|
||
|| ' '
|
||
|| b.prs_bedrijf_naam
|
||
|| ')'
|
||
|| ' moet uiterlijk per '
|
||
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'DD-MM-YYYY')
|
||
|| ' worden verlengd of opgezegd.',
|
||
c.cnt_contract_key, c.cnt_contract_nummer_intern, cnt.cnt_getopzegdatum (c.cnt_contract_key), NULL, 'facilitair@medux.nl', NULL
|
||
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND cnt_contract_verwijder IS NULL
|
||
AND cnt_contract_status = 0 /* actief */
|
||
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key) AND cnt.cnt_getopzegdatum (c.cnt_contract_key));
|
||
|
||
|
||
CREATE OR REPLACE VIEW mdux_huurcontracten_tmp
|
||
(cnt_contract_key,
|
||
prs_bedrijf_key,
|
||
prs_perslid_key_eig,
|
||
cnt_contract_nummer_intern,
|
||
cnt_contract_versie,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
cnt_looptijd_mnd,
|
||
perc_looptijd,
|
||
aantal_weken_tegaan,
|
||
cnt_contract_rappeldatum,
|
||
cnt_contract_opzegdatum,
|
||
cnt_contract_opzegtermijn,
|
||
cnt_contract_rappeltermijn,
|
||
cnt_contract_status,
|
||
contract_fase_actief,
|
||
cnt_contract_status_txt,
|
||
cnt_contract_kosten,
|
||
cnt_contract_termijnkosten,
|
||
cnt_contract_termijnkosten_mnd,
|
||
cnt_contract_termijn_type,
|
||
cnt_contract_termijn_aantal,
|
||
cnt_contract_termijn_omschr,
|
||
contract_disc_key,
|
||
prs_afdeling_key_eig,
|
||
cnt_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code,
|
||
cnt_contract_plaats_gewicht)
|
||
AS
|
||
SELECT c1.cnt_contract_key,
|
||
b.prs_bedrijf_key,
|
||
c1.prs_perslid_key_eig,
|
||
c1.cnt_contract_nummer_intern,
|
||
c1.cnt_contract_versie,
|
||
c1.cnt_contract_omschrijving,
|
||
c1.cnt_contract_looptijd_van,
|
||
c1.cnt_contract_looptijd_tot,
|
||
12
|
||
* ( TO_CHAR (c1.cnt_contract_looptijd_tot, 'YYYY')
|
||
- TO_CHAR (c1.cnt_contract_looptijd_van, 'YYYY')
|
||
- 1)
|
||
+ (12 - TO_CHAR (c1.cnt_contract_looptijd_van, 'MM'))
|
||
+ (TO_CHAR (c1.cnt_contract_looptijd_tot, 'MM')) cnt_looptijd_mnd,
|
||
ROUND(100
|
||
* LEAST (
|
||
1,
|
||
(SYSDATE - LEAST (c1.cnt_contract_looptijd_van, SYSDATE))
|
||
/ (GREATEST (
|
||
c1.cnt_contract_looptijd_tot
|
||
- c1.cnt_contract_looptijd_van,
|
||
1
|
||
))
|
||
)) perc_looptijd,
|
||
ROUND( (c1.cnt_contract_looptijd_tot
|
||
- GREATEST (c1.cnt_contract_looptijd_van,
|
||
LEAST (SYSDATE, c1.cnt_contract_looptijd_tot)))
|
||
/ 7) aantal_weken_tegaan,
|
||
cnt.cnt_getrappeldatum (c1.cnt_contract_key) cnt_contract_rappeldatum,
|
||
cnt.cnt_getopzegdatum (c1.cnt_contract_key) cnt_contract_opzegdatum,
|
||
(SELECT lcl.x ('cnt_termijn_omschrijving',
|
||
cnt_termijn_key,
|
||
cnt_termijn_omschrijving)
|
||
FROM cnt_termijn
|
||
WHERE cnt_termijn_key = c1.cnt_contract_opzegtermijn) cnt_contract_opzegtermijn,
|
||
(SELECT lcl.x ('cnt_termijn_omschrijving',
|
||
cnt_termijn_key,
|
||
cnt_termijn_omschrijving)
|
||
FROM cnt_termijn
|
||
WHERE cnt_termijn_key = c1.cnt_contract_rappeltermijn) cnt_contract_rappeltermijn,
|
||
c1.cnt_contract_status,
|
||
DECODE (
|
||
cnt.cnt_contract_status (
|
||
c1.cnt_contract_looptijd_van,
|
||
cnt.cnt_getrappeldatum (c1.cnt_contract_key),
|
||
cnt.cnt_getopzegdatum (c1.cnt_contract_key),
|
||
c1.cnt_contract_looptijd_tot
|
||
),
|
||
0,
|
||
lcl.l ('lcl_cnt_future'),
|
||
1,
|
||
lcl.l ('lcl_cnt_topical'),
|
||
2,
|
||
lcl.l ('lcl_cnt_warn'),
|
||
3,
|
||
lcl.l ('lcl_cnt_cancel'),
|
||
4,
|
||
lcl.l ('lcl_cnt_past')) contract_fase_actief,
|
||
DECODE (
|
||
c1.cnt_contract_status,
|
||
0,
|
||
DECODE (fac.getsetting ('cnt_contract_approval'),
|
||
1, lcl.l ('lcl_cnt_active_approval'),
|
||
lcl.l ('lcl_cnt_active')),
|
||
1,
|
||
lcl.l ('lcl_cnt_inactive'),
|
||
2,
|
||
lcl.l ('lcl_cnt_new'),
|
||
3,
|
||
lcl.l ('lcl_cnt_forapproval') ) cnt_contract_status_txt,
|
||
c1.cnt_contract_kosten,
|
||
c1.cnt_contract_termijnkosten,
|
||
c1.cnt_contract_termijnkosten * DECODE(ct.cnt_termijn_type, 'M', 1 / ct.cnt_termijn_aantal, 'Y', 1 / (ct.cnt_termijn_aantal * 12), 'D', 365 / (ct.cnt_termijn_aantal * 12), 1) cnt_contract_termijnkosten_mnd,
|
||
ct.cnt_termijn_type,
|
||
ct.cnt_termijn_aantal,
|
||
ct.cnt_termijn_omschrijving,
|
||
COALESCE (c1.ins_discipline_key, -1) contract_disc_key,
|
||
c1.prs_afdeling_key_eig,
|
||
(SELECT prs_afdeling_naam
|
||
FROM prs_v_afdeling
|
||
WHERE prs_afdeling_key = c1.prs_afdeling_key_eig) cnt_eigenaar_afdeling_naam,
|
||
b.prs_bedrijf_naam,
|
||
p1.prs_perslid_naam_full,
|
||
p1.prs_perslid_naam_friendly,
|
||
cp1.cnt_alg_plaats_key,
|
||
cp1.cnt_alg_plaats_code,
|
||
cp1.cnt_contract_plaats_gewicht
|
||
FROM cnt_v_aanwezigcontract c1,
|
||
cnt_termijn ct,
|
||
prs_v_perslid_fullnames_all p1,
|
||
prs_bedrijf b,
|
||
cnt_contract_plaats cp1
|
||
WHERE b.prs_bedrijf_key = c1.cnt_prs_bedrijf_key
|
||
AND c1.ins_discipline_key = 301
|
||
AND c1.cnt_contract_termijntermijn = ct.cnt_termijn_key(+)
|
||
AND c1.cnt_contract_key = cp1.cnt_contract_key (+)
|
||
AND c1.prs_perslid_key_eig = p1.prs_perslid_key(+)
|
||
AND COALESCE (c1.cnt_contract_versie, '0') =
|
||
(SELECT COALESCE (MAX (cnt_contract_versie), '0')
|
||
FROM cnt_v_aanwezigcontract c2
|
||
WHERE c2.cnt_contract_nummer_intern =
|
||
c1.cnt_contract_nummer_intern);
|
||
|
||
CREATE OR REPLACE VIEW mdux_huurcontracten_gebouw
|
||
(cnt_contract_key,
|
||
prs_bedrijf_key,
|
||
alg_gebouw_key,
|
||
prs_perslid_key_eig,
|
||
cnt_contract_nummer_intern,
|
||
cnt_contract_versie,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
cnt_looptijd_mnd,
|
||
perc_looptijd,
|
||
aantal_weken_tegaan,
|
||
cnt_contract_rappeldatum,
|
||
cnt_contract_opzegdatum,
|
||
cnt_contract_opzegtermijn,
|
||
cnt_contract_rappeltermijn,
|
||
cnt_contract_status,
|
||
contract_fase_actief,
|
||
cnt_contract_status_txt,
|
||
cnt_contract_kosten,
|
||
cnt_contract_termijnkosten,
|
||
cnt_contract_termijnkosten_mnd,
|
||
cnt_contract_termijn_type,
|
||
cnt_contract_termijn_aantal,
|
||
cnt_contract_termijn_omschr,
|
||
contract_disc_key,
|
||
prs_afdeling_key_eig,
|
||
cnt_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code,
|
||
alg_gebouw_code,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_omschrijving)
|
||
AS
|
||
SELECT cnt_contract_key,
|
||
prs_bedrijf_key,
|
||
alg_gebouw_key,
|
||
prs_perslid_key_eig,
|
||
cnt_contract_nummer_intern,
|
||
cnt_contract_versie,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
cnt_looptijd_mnd,
|
||
perc_looptijd,
|
||
aantal_weken_tegaan,
|
||
cnt_contract_rappeldatum,
|
||
cnt_contract_opzegdatum,
|
||
cnt_contract_opzegtermijn,
|
||
cnt_contract_rappeltermijn,
|
||
cnt_contract_status,
|
||
contract_fase_actief,
|
||
cnt_contract_status_txt,
|
||
cnt_contract_kosten,
|
||
cnt_contract_termijnkosten,
|
||
cnt_contract_termijnkosten_mnd,
|
||
cnt_contract_termijn_type,
|
||
cnt_contract_termijn_aantal,
|
||
cnt_contract_termijn_omschr,
|
||
contract_disc_key,
|
||
prs_afdeling_key_eig,
|
||
cnt_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code,
|
||
alg_gebouw_code,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_omschrijving
|
||
FROM mdux_huurcontracten_tmp, alg_gebouw g
|
||
WHERE g.alg_gebouw_key(+) = cnt_alg_plaats_key
|
||
AND COALESCE(cnt_alg_plaats_code,'G') = 'G';
|
||
|
||
CREATE OR REPLACE VIEW mdux_huurcontracten_locatie
|
||
(cnt_contract_key,
|
||
prs_bedrijf_key,
|
||
alg_gebouw_key,
|
||
prs_perslid_key_eig,
|
||
cnt_contract_nummer_intern,
|
||
cnt_contract_versie,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
cnt_looptijd_mnd,
|
||
perc_looptijd,
|
||
aantal_weken_tegaan,
|
||
cnt_contract_rappeldatum,
|
||
cnt_contract_opzegdatum,
|
||
cnt_contract_opzegtermijn,
|
||
cnt_contract_rappeltermijn,
|
||
cnt_contract_status,
|
||
contract_fase_actief,
|
||
cnt_contract_status_txt,
|
||
cnt_contract_kosten,
|
||
cnt_contract_termijnkosten,
|
||
cnt_contract_termijnkosten_mnd,
|
||
cnt_contract_termijn_type,
|
||
cnt_contract_termijn_aantal,
|
||
cnt_contract_termijn_omschr,
|
||
contract_disc_key,
|
||
prs_afdeling_key_eig,
|
||
cnt_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code,
|
||
alg_gebouw_code,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_omschrijving)
|
||
AS
|
||
SELECT cnt_contract_key,
|
||
prs_bedrijf_key,
|
||
alg_gebouw_key,
|
||
prs_perslid_key_eig,
|
||
cnt_contract_nummer_intern,
|
||
cnt_contract_versie,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
cnt_looptijd_mnd,
|
||
perc_looptijd,
|
||
aantal_weken_tegaan,
|
||
cnt_contract_rappeldatum,
|
||
cnt_contract_opzegdatum,
|
||
cnt_contract_opzegtermijn,
|
||
cnt_contract_rappeltermijn,
|
||
cnt_contract_status,
|
||
contract_fase_actief,
|
||
cnt_contract_status_txt,
|
||
cnt_contract_kosten,
|
||
cnt_contract_termijnkosten,
|
||
cnt_contract_termijnkosten_mnd,
|
||
cnt_contract_termijn_type,
|
||
cnt_contract_termijn_aantal,
|
||
cnt_contract_termijn_omschr,
|
||
contract_disc_key,
|
||
prs_afdeling_key_eig,
|
||
cnt_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code,
|
||
alg_gebouw_code,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_omschrijving
|
||
FROM mdux_huurcontracten_tmp, alg_gebouw g, alg_locatie l
|
||
WHERE l.alg_locatie_key (+) = cnt_alg_plaats_key
|
||
AND COALESCE(cnt_alg_plaats_code,'L') = 'L'
|
||
AND g.alg_gebouw_key(+) = l.alg_locatie_key;
|
||
|
||
--MDUX#52712 Rapportage huurcontracten, uitbreiding ruimten
|
||
CREATE OR REPLACE FORCE VIEW MDUX_HUURCONTRACTEN_RUIMTEN
|
||
(
|
||
CNT_CONTRACT_KEY,
|
||
PRS_BEDRIJF_KEY,
|
||
ALG_GEBOUW_KEY,
|
||
PRS_PERSLID_KEY_EIG,
|
||
CNT_CONTRACT_NUMMER_INTERN,
|
||
CNT_CONTRACT_VERSIE,
|
||
CNT_CONTRACT_OMSCHRIJVING,
|
||
CNT_CONTRACT_LOOPTIJD_VAN,
|
||
CNT_CONTRACT_LOOPTIJD_TOT,
|
||
CNT_LOOPTIJD_MND,
|
||
PERC_LOOPTIJD,
|
||
AANTAL_WEKEN_TEGAAN,
|
||
CNT_CONTRACT_RAPPELDATUM,
|
||
CNT_CONTRACT_OPZEGDATUM,
|
||
CNT_CONTRACT_OPZEGTERMIJN,
|
||
CNT_CONTRACT_RAPPELTERMIJN,
|
||
CNT_CONTRACT_STATUS,
|
||
CONTRACT_FASE_ACTIEF,
|
||
CNT_CONTRACT_STATUS_TXT,
|
||
CNT_CONTRACT_KOSTEN,
|
||
CNT_CONTRACT_TERMIJNKOSTEN,
|
||
CNT_CONTRACT_TERMIJNKOSTEN_MND,
|
||
CNT_CONTRACT_TERMIJN_TYPE,
|
||
CNT_CONTRACT_TERMIJN_AANTAL,
|
||
CNT_CONTRACT_TERMIJN_OMSCHR,
|
||
CONTRACT_DISC_KEY,
|
||
PRS_AFDELING_KEY_EIG,
|
||
CNT_EIGENAAR_AFDELING_NAAM,
|
||
PRS_BEDRIJF_NAAM,
|
||
PRS_PERSLID_NAAM_FULL,
|
||
PRS_PERSLID_NAAM_FRIENDLY,
|
||
CNT_ALG_PLAATS_KEY,
|
||
CNT_ALG_PLAATS_CODE,
|
||
ALG_GEBOUW_CODE,
|
||
ALG_GEBOUW_NAAM,
|
||
ALG_GEBOUW_OMSCHRIJVING
|
||
)
|
||
AS
|
||
SELECT cnt_contract_key,
|
||
prs_bedrijf_key,
|
||
g.alg_gebouw_key,
|
||
prs_perslid_key_eig,
|
||
cnt_contract_nummer_intern,
|
||
cnt_contract_versie,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
cnt_looptijd_mnd,
|
||
perc_looptijd,
|
||
aantal_weken_tegaan,
|
||
cnt_contract_rappeldatum,
|
||
cnt_contract_opzegdatum,
|
||
cnt_contract_opzegtermijn,
|
||
cnt_contract_rappeltermijn,
|
||
cnt_contract_status,
|
||
contract_fase_actief,
|
||
cnt_contract_status_txt,
|
||
cnt_contract_kosten,
|
||
cnt_contract_termijnkosten,
|
||
cnt_contract_termijnkosten_mnd,
|
||
cnt_contract_termijn_type,
|
||
cnt_contract_termijn_aantal,
|
||
cnt_contract_termijn_omschr,
|
||
contract_disc_key,
|
||
prs_afdeling_key_eig,
|
||
cnt_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code,
|
||
alg_gebouw_code,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_omschrijving
|
||
FROM mdux_huurcontracten_tmp,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r
|
||
WHERE r.alg_ruimte_key(+) = cnt_alg_plaats_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND COALESCE (cnt_alg_plaats_code, 'R') = 'R';
|
||
|
||
|
||
CREATE OR REPLACE VIEW mdux_huurcontracten_gebouwen
|
||
AS
|
||
SELECT * FROM mdux_huurcontracten_gebouw
|
||
UNION
|
||
SELECT * FROM mdux_huurcontracten_locatie
|
||
UNION
|
||
SELECT * FROM mdux_huurcontracten_ruimten;
|
||
|
||
CREATE OR REPLACE VIEW mdux_rap_huurcontracten
|
||
(
|
||
cnt_contract_key,
|
||
prs_bedrijf_key,
|
||
alg_gebouw_key,
|
||
prs_perslid_key_eig,
|
||
cnt_contract_nummer_intern,
|
||
cnt_contract_versie,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
cnt_looptijd_mnd,
|
||
perc_looptijd,
|
||
aantal_weken_tegaan,
|
||
cnt_contract_rappeldatum,
|
||
cnt_contract_opzegdatum,
|
||
cnt_contract_opzegtermijn,
|
||
cnt_contract_rappeltermijn,
|
||
cnt_contract_status,
|
||
contract_fase_actief,
|
||
cnt_contract_status_txt,
|
||
cnt_contract_kosten,
|
||
cnt_contract_termijnkosten,
|
||
cnt_contract_termijnkosten_mnd,
|
||
cnt_contract_termijn_type,
|
||
cnt_contract_termijn_aantal,
|
||
cnt_contract_termijn_omschr,
|
||
contract_disc_key,
|
||
prs_afdeling_key_eig,
|
||
cnt_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code,
|
||
alg_gebouw_code,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_omschrijving,
|
||
alg_verdieping_key,
|
||
alg_verdieping_omschrijving,
|
||
alg_verdieping_volgnr,
|
||
alg_verdieping_code,
|
||
alg_ruimte_key,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
alg_ruimte_bruto_vloeropp,
|
||
alg_ruimte_opp_alt1,
|
||
alg_ruimte_opp_alt2,
|
||
alg_ruimte_omtrek,
|
||
alg_ruimte_inhoud,
|
||
alg_ruimte_opmerking,
|
||
prs_ruimteafdeling_bezetting,
|
||
prs_afdeling_key,
|
||
prs_afdeling_naam,
|
||
prs_afdeling_omschrijving,
|
||
prs_kostenplaats_key,
|
||
prs_kostenplaats_nr,
|
||
prs_kostenplaats_omschrijving,
|
||
mdux_kostenplaats,
|
||
mdux_kostendrager,
|
||
cnt_interne_doorbelasting,
|
||
cnt_interne_doorbelasting_mnd,
|
||
cnt_contractsoort,
|
||
indexatie_volgens,
|
||
waarborgsom,
|
||
bankgarantie,
|
||
servicekosten_permaand,
|
||
status_huurcontract,
|
||
huurkosten_permaand,
|
||
maand_van_index,
|
||
crediteur,
|
||
crediteurnummer,
|
||
doorgev_indexatie
|
||
)
|
||
AS
|
||
SELECT cnt_contract_key,
|
||
hc.prs_bedrijf_key,
|
||
hc.alg_gebouw_key,
|
||
prs_perslid_key_eig,
|
||
cnt_contract_nummer_intern,
|
||
cnt_contract_versie,
|
||
cnt_contract_omschrijving,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
cnt_looptijd_mnd,
|
||
perc_looptijd,
|
||
aantal_weken_tegaan,
|
||
cnt_contract_rappeldatum,
|
||
cnt_contract_opzegdatum,
|
||
cnt_contract_opzegtermijn,
|
||
cnt_contract_rappeltermijn,
|
||
cnt_contract_status,
|
||
contract_fase_actief,
|
||
cnt_contract_status_txt,
|
||
cnt_contract_kosten,
|
||
cnt_contract_termijnkosten,
|
||
cnt_contract_termijnkosten_mnd,
|
||
cnt_contract_termijn_type,
|
||
cnt_contract_termijn_aantal,
|
||
cnt_contract_termijn_omschr,
|
||
contract_disc_key,
|
||
prs_afdeling_key_eig,
|
||
cnt_eigenaar_afdeling_naam,
|
||
prs_bedrijf_naam,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
cnt_alg_plaats_key,
|
||
cnt_alg_plaats_code,
|
||
alg_gebouw_code,
|
||
alg_gebouw_naam,
|
||
alg_gebouw_omschrijving,
|
||
v.alg_verdieping_key,
|
||
v.alg_verdieping_omschrijving,
|
||
v.alg_verdieping_volgnr,
|
||
v.alg_verdieping_code,
|
||
r.alg_ruimte_key,
|
||
r.alg_ruimte_nr,
|
||
r.alg_ruimte_omschrijving,
|
||
r.alg_ruimte_bruto_vloeropp,
|
||
r.alg_ruimte_opp_alt1,
|
||
r.alg_ruimte_opp_alt2,
|
||
r.alg_ruimte_omtrek,
|
||
r.alg_ruimte_inhoud,
|
||
r.alg_ruimte_opmerking,
|
||
ra.prs_ruimteafdeling_bezetting,
|
||
a.prs_afdeling_key,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
k.prs_kostenplaats_key,
|
||
k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving,
|
||
SUBSTR (k.prs_kostenplaats_nr,
|
||
1,
|
||
INSTR (k.prs_kostenplaats_nr, '.') - 1)
|
||
mdux_kostenplaats,
|
||
SUBSTR (k.prs_kostenplaats_nr,
|
||
1 + INSTR (k.prs_kostenplaats_nr, '.'))
|
||
mdux_kostendrager,
|
||
ROUND (
|
||
cnt_contract_termijnkosten
|
||
* ( (SELECT SUM (prs_ruimteafdeling_bezetting)
|
||
FROM prs_ruimteafdeling ra2,
|
||
alg_verdieping v2,
|
||
alg_ruimte r2,
|
||
mdux_huurcontracten_gebouwen hc2
|
||
WHERE hc2.cnt_contract_key = hc.cnt_contract_key
|
||
AND v2.alg_gebouw_key = hc2.alg_gebouw_key
|
||
AND v2.alg_verdieping_verwijder IS NULL
|
||
AND r2.alg_verdieping_key = v2.alg_verdieping_key
|
||
AND r2.alg_ruimte_verwijder IS NULL
|
||
AND ra2.alg_ruimte_key = r2.alg_ruimte_key
|
||
AND ra2.prs_afdeling_key = a.prs_afdeling_key
|
||
AND ra2.prs_ruimteafdeling_verwijder IS NULL)
|
||
/ (SELECT COALESCE (SUM (prs_ruimteafdeling_bezetting), 100)
|
||
FROM prs_ruimteafdeling ra2,
|
||
alg_verdieping v2,
|
||
alg_ruimte r2,
|
||
mdux_huurcontracten_gebouwen hc2
|
||
WHERE hc2.cnt_contract_key = hc.cnt_contract_key
|
||
AND v2.alg_gebouw_key = hc2.alg_gebouw_key
|
||
AND v2.alg_verdieping_verwijder IS NULL
|
||
AND r2.alg_verdieping_key = v2.alg_verdieping_key
|
||
AND r2.alg_ruimte_verwijder IS NULL
|
||
AND ra2.alg_ruimte_key = r2.alg_ruimte_key
|
||
AND ra2.prs_ruimteafdeling_verwijder IS NULL)),
|
||
2)
|
||
mdux_interne_doorbelasting,
|
||
ROUND (
|
||
cnt_contract_termijnkosten_mnd
|
||
* ( (SELECT SUM (prs_ruimteafdeling_bezetting)
|
||
FROM prs_ruimteafdeling ra2,
|
||
alg_verdieping v2,
|
||
alg_ruimte r2,
|
||
mdux_huurcontracten_gebouwen hc2
|
||
WHERE hc2.cnt_contract_key = hc.cnt_contract_key
|
||
AND v2.alg_gebouw_key = hc2.alg_gebouw_key
|
||
AND v2.alg_verdieping_verwijder IS NULL
|
||
AND r2.alg_verdieping_key = v2.alg_verdieping_key
|
||
AND r2.alg_ruimte_verwijder IS NULL
|
||
AND ra2.alg_ruimte_key = r2.alg_ruimte_key
|
||
AND ra2.prs_afdeling_key = a.prs_afdeling_key
|
||
AND ra2.prs_ruimteafdeling_verwijder IS NULL)
|
||
/ (SELECT COALESCE (SUM (prs_ruimteafdeling_bezetting), 100)
|
||
FROM prs_ruimteafdeling ra2,
|
||
alg_verdieping v2,
|
||
alg_ruimte r2,
|
||
mdux_huurcontracten_gebouwen hc2
|
||
WHERE hc2.cnt_contract_key = hc.cnt_contract_key
|
||
AND v2.alg_gebouw_key = hc2.alg_gebouw_key
|
||
AND v2.alg_verdieping_verwijder IS NULL
|
||
AND r2.alg_verdieping_key = v2.alg_verdieping_key
|
||
AND r2.alg_ruimte_verwijder IS NULL
|
||
AND ra2.alg_ruimte_key = r2.alg_ruimte_key
|
||
AND ra2.prs_ruimteafdeling_verwijder IS NULL)),
|
||
2)
|
||
mdux_interne_doorbelasting_mnd,
|
||
(SELECT ins_discipline_omschrijving
|
||
FROM cnt_discipline cd, cnt_contract c
|
||
WHERE c.ins_discipline_key = cd.ins_discipline_key
|
||
AND c.cnt_contract_key = hc.cnt_contract_key)
|
||
contractsoort,
|
||
(SELECT cnt_kenmerkcontract_waarde
|
||
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck
|
||
WHERE ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
||
AND ck.cnt_srtkenmerk_key = 8
|
||
AND ck.cnt_kenmerk_verwijder IS NULL
|
||
AND ckc.cnt_contract_key = hc.cnt_contract_key)
|
||
indexatie_volgens,
|
||
(SELECT cnt_kenmerkcontract_waarde
|
||
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck
|
||
WHERE ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
||
AND ck.cnt_srtkenmerk_key = 13
|
||
AND ck.cnt_kenmerk_verwijder IS NULL
|
||
AND ckc.cnt_contract_key = hc.cnt_contract_key)
|
||
waarborgsom,
|
||
(SELECT cnt_kenmerkcontract_waarde
|
||
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck
|
||
WHERE ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
||
AND ck.cnt_srtkenmerk_key = 1
|
||
AND ck.cnt_kenmerk_verwijder IS NULL
|
||
AND ckc.cnt_contract_key = hc.cnt_contract_key)
|
||
bankgarantie,
|
||
(SELECT fac.safe_to_number(cnt_kenmerkcontract_waarde)
|
||
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck
|
||
WHERE ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
||
AND ck.cnt_srtkenmerk_key = 11
|
||
AND ck.cnt_kenmerk_verwijder IS NULL
|
||
AND ckc.cnt_contract_key = hc.cnt_contract_key)
|
||
servicekosten_permaand,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck, fac_usrdata fu
|
||
WHERE ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
||
AND ck.cnt_srtkenmerk_key = 61
|
||
AND ck.cnt_kenmerk_verwijder IS NULL
|
||
AND ckc.cnt_contract_key = hc.cnt_contract_key
|
||
AND fu.fac_usrtab_key = 181
|
||
AND TO_CHAR (fac_usrdata_key) = cnt_kenmerkcontract_waarde)
|
||
status_huurcontract,
|
||
(SELECT fac.safe_to_number(cnt_kenmerkcontract_waarde)
|
||
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck
|
||
WHERE ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
||
AND ck.cnt_srtkenmerk_key = 6
|
||
AND ck.cnt_kenmerk_verwijder IS NULL
|
||
AND ckc.cnt_contract_key = hc.cnt_contract_key)
|
||
huurkosten_permaand,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck, fac_usrdata fu
|
||
WHERE ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
||
AND ck.cnt_srtkenmerk_key = 9
|
||
AND ck.cnt_kenmerk_verwijder IS NULL
|
||
AND ckc.cnt_contract_key = hc.cnt_contract_key
|
||
AND fu.fac_usrtab_key = 43
|
||
AND TO_CHAR (fac_usrdata_key) = cnt_kenmerkcontract_waarde)
|
||
maand_van_index,
|
||
(SELECT prs_bedrijf_naam
|
||
FROM prs_bedrijf b, cnt_kenmerkcontract ckc, cnt_kenmerk ck
|
||
WHERE TO_CHAR (prs_bedrijf_key) = cnt_kenmerkcontract_waarde
|
||
AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
||
AND ck.cnt_kenmerk_verwijder IS NULL
|
||
AND ck.cnt_srtkenmerk_key = 5
|
||
AND ckc.cnt_contract_key = hc.cnt_contract_key)
|
||
crediteur,
|
||
(SELECT prs_leverancier_nr
|
||
FROM prs_bedrijf b, cnt_kenmerkcontract ckc, cnt_kenmerk ck
|
||
WHERE TO_CHAR (prs_bedrijf_key) = cnt_kenmerkcontract_waarde
|
||
AND ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
||
AND ck.cnt_kenmerk_verwijder IS NULL
|
||
AND ck.cnt_srtkenmerk_key = 5
|
||
AND ckc.cnt_contract_key = hc.cnt_contract_key)
|
||
crediteurnummer,
|
||
(SELECT cnt_kenmerkcontract_waarde
|
||
FROM cnt_kenmerkcontract ckc, cnt_kenmerk ck
|
||
WHERE ckc.cnt_kenmerk_key = ck.cnt_kenmerk_key
|
||
AND ck.cnt_srtkenmerk_key = 161
|
||
AND ck.cnt_kenmerk_verwijder IS NULL
|
||
AND ckc.cnt_contract_key = hc.cnt_contract_key)
|
||
doorgev_indexatie
|
||
FROM mdux_huurcontracten_gebouwen hc,
|
||
alg_verdieping v,
|
||
alg_ruimte r,
|
||
prs_ruimteafdeling ra,
|
||
prs_afdeling a,
|
||
prs_kostenplaats k
|
||
WHERE hc.alg_gebouw_key = v.alg_gebouw_key(+)
|
||
AND v.alg_verdieping_verwijder IS NULL
|
||
AND v.alg_verdieping_key = r.alg_verdieping_key(+)
|
||
AND r.alg_ruimte_verwijder IS NULL
|
||
AND r.alg_ruimte_key = ra.alg_ruimte_key(+)
|
||
AND ra.prs_ruimteafdeling_verwijder IS NULL
|
||
AND ra.prs_afdeling_key = a.prs_afdeling_key(+)
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key(+);
|
||
|
||
CREATE OR REPLACE VIEW MDUX_V_INS_QRC
|
||
(
|
||
FCLT_3D_DISCIPLINE_KEY,
|
||
FCLT_3D_LOCATIE_KEY,
|
||
FCLT_F_LOCATIE,
|
||
FCLT_F_GEBOUW,
|
||
PLAATS,
|
||
SOORTRUIMTE,
|
||
AFDELING_KEY,
|
||
AFDELING,
|
||
AFDELING_OMSCHRIJVING,
|
||
INS_SRTDEEL_CODE,
|
||
INS_SRTDEEL_OMSCHRIJVING,
|
||
INS_DEEL_OMSCHRIJVING,
|
||
INS_DEEL_KEY,
|
||
INS_SRTDEEL_KEY,
|
||
FCLT_F_OBJECTSOORT,
|
||
INS_ALG_RUIMTE_TYPE,
|
||
ALG_DISTRICT_KEY,
|
||
INS_DEEL_UPPER,
|
||
ALG_RUIMTE_KEY,
|
||
FCLT_F_FAC_BOOKMARK_NAAM,
|
||
HIDE_F_BOOKMARK_ID
|
||
)
|
||
AS
|
||
SELECT i.ins_discipline_key,
|
||
l.alg_locatie_key,
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_plaatsaanduiding plaats,
|
||
(SELECT r.alg_ruimte_omschrijving
|
||
FROM alg_ruimte r
|
||
WHERE r.alg_ruimte_key = i.ins_alg_ruimte_key)
|
||
soortruimte,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
s.ins_srtdeel_code,
|
||
s.ins_srtdeel_omschrijving,
|
||
i.ins_deel_omschrijving,
|
||
i.ins_deel_key,
|
||
s.ins_srtdeel_key,
|
||
s.ins_srtdeel_upper,
|
||
i.ins_alg_ruimte_type,
|
||
l.alg_district_key,
|
||
ins_deel_upper,
|
||
i.ins_alg_ruimte_key,
|
||
b.fac_bookmark_naam,
|
||
b.fac_bookmark_id
|
||
FROM ins_deel i,
|
||
ins_v_alg_overzicht o,
|
||
ins_srtdeel s,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
fac_bookmark b
|
||
WHERE b.fac_bookmark_naam LIKE '%QRC%'
|
||
AND ins_deel_verwijder IS NULL
|
||
AND i.ins_deel_module = 'INS'
|
||
AND i.ins_deel_parent_key IS NULL
|
||
AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key
|
||
AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type
|
||
AND i.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||
AND o.alg_locatie_key = i.ins_alg_locatie_key
|
||
AND i.ins_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND s.ins_srtdeel_key = i.ins_srtdeel_key
|
||
UNION ALL
|
||
SELECT i.ins_discipline_key,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
a.prs_afdeling_key,
|
||
a.prs_afdeling_upper,
|
||
a.prs_afdeling_omschrijving,
|
||
s.ins_srtdeel_code,
|
||
s.ins_srtdeel_omschrijving,
|
||
i.ins_deel_omschrijving,
|
||
i.ins_deel_key,
|
||
s.ins_srtdeel_key,
|
||
s.ins_srtdeel_upper,
|
||
i.ins_alg_ruimte_type,
|
||
NULL,
|
||
ins_deel_upper,
|
||
i.ins_alg_ruimte_key,
|
||
b.fac_bookmark_naam,
|
||
b.fac_bookmark_id
|
||
FROM ins_deel i,
|
||
prs_afdeling a,
|
||
ins_srtdeel s,
|
||
fac_bookmark b
|
||
WHERE b.fac_bookmark_naam LIKE '%QRC%'
|
||
AND ins_deel_verwijder IS NULL
|
||
AND i.ins_deel_module = 'INS'
|
||
AND i.ins_deel_parent_key IS NULL
|
||
AND i.ins_alg_ruimte_key = a.prs_afdeling_key
|
||
AND s.ins_srtdeel_key = i.ins_srtdeel_key
|
||
AND ins_alg_ruimte_type = 'A';
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_rap_keyvsfe
|
||
(
|
||
soort_gebruiker,
|
||
Naam,
|
||
Loginnaam,
|
||
laatste_login
|
||
)
|
||
AS
|
||
SELECT DECODE (key_user, 1, 'KEY', 'FE'),
|
||
pf.prs_perslid_naam_full,
|
||
oslogin,
|
||
prs_perslid_login
|
||
FROM (SELECT *
|
||
FROM (SELECT p.prs_perslid_key prs_key,
|
||
COALESCE (p.prs_perslid_oslogin,
|
||
p.prs_perslid_oslogin2)
|
||
oslogin,
|
||
1 login,
|
||
-- 1=user heeft login + groep + rechten
|
||
DECODE (
|
||
SIGN(TRUNC(COALESCE (
|
||
p.prs_perslid_login
|
||
+ 92,
|
||
SYSDATE - 1
|
||
))
|
||
- TRUNC (SYSDATE)),
|
||
-1,
|
||
0,
|
||
1
|
||
) -- 1=user heeft laatste 92 dagen ingelogd
|
||
recent_login
|
||
FROM prs_v_aanwezigperslid p
|
||
WHERE EXISTS
|
||
-- op basis van login + groep + rechten
|
||
(SELECT 1
|
||
FROM fac_v_rap_groeprechten
|
||
WHERE fclt_f_login =
|
||
COALESCE (
|
||
p.prs_perslid_oslogin,
|
||
p.prs_perslid_oslogin2
|
||
))
|
||
UNION ALL
|
||
-- FSN#24029: Soms ook personen zonder login meetellen!
|
||
SELECT p.prs_perslid_key,
|
||
NULL oslogin,
|
||
1 login,
|
||
-- 1=user telt mee, want allow_for_others!
|
||
0 recent_login
|
||
-- geen login, dus nooit recent ingelogd
|
||
FROM prs_v_aanwezigperslid p
|
||
WHERE COALESCE (p.prs_perslid_oslogin,
|
||
p.prs_perslid_oslogin2) IS NULL
|
||
AND (fac.getSetting (
|
||
'mld_allow_for_others'
|
||
) = 1
|
||
OR EXISTS
|
||
(SELECT 1
|
||
FROM bes_disc_params dp
|
||
WHERE dp.bes_disc_params_for_others =
|
||
1))
|
||
UNION ALL
|
||
-- FSN#27315: En ook eventuele "sensorusers" meetellen!
|
||
SELECT NULL prs_perslid_key,
|
||
NULL oslogin,
|
||
COUNT ( * ) login,
|
||
-- elke sensoruser telt mee als FE!
|
||
1 recent_login
|
||
-- recent actief dus tellen als recent
|
||
FROM ins_v_aanwezigdeel d
|
||
WHERE ins_deel_statedate >
|
||
TRUNC (SYSDATE - 30)) x
|
||
LEFT JOIN
|
||
-- 1=user heeft rechten op key-codes=notFE-codes
|
||
(SELECT DISTINCT fclt_f_login, 1 key_user
|
||
FROM fac_v_rap_groeprechten gr,
|
||
fac_functie f
|
||
WHERE gr.fclt_f_funcode = f.fac_functie_code
|
||
AND f.fac_functie_groep IN (1, 2)) a
|
||
ON x.oslogin = a.fclt_f_login
|
||
LEFT JOIN -- FSN#30404: 1=user is cross-domain (xd) user
|
||
(SELECT p.prs_perslid_key, 1 xd_user
|
||
FROM prs_v_aanwezigperslid p,
|
||
prs_v_afdeling_boom ab
|
||
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND p.prs_perslid_apikey IS NOT NULL
|
||
AND ab.prs_bedrijf_key =
|
||
fac.safe_to_number(fac.getSetting('xd_primary_bedrijfkey')))
|
||
b
|
||
ON x.prs_key = b.prs_perslid_key) st,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE login = 1
|
||
AND UPPER (oslogin) != '_FACILITOR'
|
||
AND p.prs_perslid_key = st.prs_key
|
||
AND pf.prs_perslid_key = p.prs_perslid_key;
|
||
|
||
--MDUX#52557 - Rapportage Mutaties objectenbeheer (22-03-2018)
|
||
CREATE OR REPLACE FORCE VIEW MDUX_V_INS_MUTATIES
|
||
(
|
||
DISCIPLINE,
|
||
GROEP,
|
||
DEEL_KEY,
|
||
DEEL_OMSCHRIJVING,
|
||
DEEL_OPMERKING,
|
||
SRTDEEL,
|
||
SRTDEEL_OMSCHRIJVING,
|
||
TRACKING_KEY,
|
||
TRACKING_DATUM,
|
||
TRACKING_MAAND,
|
||
TRACKING_OMSCHRIJVING,
|
||
NIEUW,
|
||
WIJZIGING,
|
||
INACTIEF,
|
||
VERVALLEN,
|
||
VERVALDATUM
|
||
)
|
||
AS
|
||
SELECT disc.ins_discipline_omschrijving AS Discipline,
|
||
sg.ins_srtgroep_omschrijving AS Groep,
|
||
d.ins_deel_key AS Deel_key,
|
||
d.ins_deel_omschrijving AS Deel_omschrijving,
|
||
d.ins_deel_opmerking AS Deel_opmerking,
|
||
sd.ins_srtdeel_code AS Srtdeel,
|
||
sd.ins_srtdeel_omschrijving Srtdeel_omschrijving,
|
||
t.fac_tracking_key AS Tracking_key,
|
||
t.fac_tracking_datum AS Tracking_datum,
|
||
TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') AS Tracking_maand,
|
||
CASE
|
||
WHEN t.fac_tracking_oms IS NULL
|
||
THEN
|
||
CASE
|
||
WHEN n.fac_srtnotificatie_oms = 'lcl_noti_INSNEW'
|
||
THEN
|
||
'Object geregistreerd'
|
||
ELSE
|
||
'Object gewijzigd'
|
||
END
|
||
ELSE
|
||
t.fac_tracking_oms
|
||
END
|
||
AS Tracking_omschrijving,
|
||
CASE
|
||
WHEN CASE
|
||
WHEN t.fac_tracking_oms IS NULL
|
||
THEN
|
||
CASE
|
||
WHEN n.fac_srtnotificatie_oms = 'lcl_noti_INSNEW'
|
||
THEN
|
||
'Object geregistreerd'
|
||
ELSE
|
||
'Object gewijzigd'
|
||
END
|
||
ELSE
|
||
t.fac_tracking_oms
|
||
END = 'Object geregistreerd'
|
||
THEN
|
||
1
|
||
ELSE
|
||
0
|
||
END
|
||
AS Nieuw,
|
||
CASE --Hiermee wordt geteld het aantal wijzigingen
|
||
WHEN n.fac_srtnotificatie_oms = 'lcl_noti_INSNEW'
|
||
OR t.fac_tracking_oms LIKE '%%Actief: 1 --> 0%'
|
||
OR t.fac_tracking_oms LIKE '%Vervaldatum: (leeg) -->%'
|
||
THEN
|
||
0
|
||
ELSE
|
||
CASE
|
||
WHEN t.fac_tracking_oms LIKE '%Object gewijzigd%'
|
||
AND (T.FAC_TRACKING_OMS LIKE '%Status: %'
|
||
OR T.FAC_TRACKING_OMS LIKE '%Notitieveld: %'
|
||
OR T.FAC_TRACKING_OMS LIKE
|
||
'%Nadere gegevens van plaats/eigenaar: %')
|
||
THEN
|
||
1
|
||
ELSE
|
||
0
|
||
END
|
||
END
|
||
AS Wijziging,
|
||
CASE
|
||
WHEN t.fac_tracking_oms LIKE '%Actief: 1 --> 0%' --Hiermee wordt geteld het aantal wijzigingen dat objecten inactief zijn gemaakt
|
||
THEN 1
|
||
ELSE 0
|
||
END
|
||
AS Inactief,
|
||
CASE
|
||
WHEN t.fac_tracking_oms LIKE '%Vervaldatum: (leeg) -->%' --Hiermee wordt geteld het aantal wijzigingen dat objecten vervallen zijn gemaakt
|
||
THEN 1
|
||
ELSE 0
|
||
END
|
||
AS Vervallen,
|
||
d.ins_deel_vervaldatum AS Vervaldatum
|
||
FROM ins_tab_discipline disc,
|
||
ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
fac_tracking t,
|
||
fac_srtnotificatie n
|
||
WHERE t.fac_tracking_refkey = d.ins_deel_key
|
||
AND n.fac_srtnotificatie_xmlnode = 'deel'
|
||
--AND t.fac_tracking_oms IS NOT NULL
|
||
AND t.fac_srtnotificatie_key = n.fac_srtnotificatie_key
|
||
AND disc.ins_discipline_key = d.ins_discipline_key
|
||
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND disc.ins_discipline_key = sg.ins_discipline_key
|
||
AND sd.ins_srtdeel_verwijder IS NULL -- MDUX#53847 Objectsoorten die verwijderd zijn, niet meer tonen in de rapportage
|
||
ORDER BY t.fac_tracking_datum DESC;
|
||
|
||
|
||
--MDUX#52700 - Rapportage Aantallen meldingen Metrics, aangepast (22-03-2018)
|
||
CREATE OR REPLACE FORCE VIEW MDUX_V_MELDINGEN
|
||
(
|
||
MELDING_KEY,
|
||
MELDINGNUMMER,
|
||
MELDING_REGIO,
|
||
MELDING_DISTRICT,
|
||
MELDING_LOCATIECODE,
|
||
MELDING_LOCATIE,
|
||
MELDING_LOCATIEPLAATS,
|
||
FCLT_3D_LOCATIE_KEY,
|
||
MELDING_GEBOUWCODE,
|
||
MELDING_GEBOUW,
|
||
MELDING_VERDIEPING,
|
||
MELDING_RUIMTENR,
|
||
MELDING_RUIMTE,
|
||
MELDING_ORDERNR,
|
||
KOSTENSOORTGROEP,
|
||
KOSTENSOORT,
|
||
KOSTENPLAATS,
|
||
KOSTENPLAATS_OMS,
|
||
MELDER,
|
||
MELDER_KEY,
|
||
AFDELING,
|
||
AFDELING_OMSCHRIJVING,
|
||
FCLT_3D_AFDELING_KEY,
|
||
BEDRIJF_KEY,
|
||
INVOERDER,
|
||
MELDBRON,
|
||
SOORTMELDING,
|
||
FCLT_3D_DISCIPLINE_KEY,
|
||
PRODUCTGROEP,
|
||
SUBPRODUCTGROEP,
|
||
BEHANDELGROEP,
|
||
BEHANDELAAR,
|
||
BEHANDELAAR_KEY,
|
||
SUBPRODUCTGROEPGROEP,
|
||
MELDING_STATUS,
|
||
SLA_NVT,
|
||
SLA_WERKDGN,
|
||
SLA_WERKUREN,
|
||
SLA_RESPIJTDGN,
|
||
SLA_RESPIJTUREN,
|
||
SLA_ACCPTDGN,
|
||
SLA_ACCPTUREN,
|
||
PLAN_UITVOERTIJD_SLA,
|
||
MELDING_DATUM,
|
||
MELDING_EINDDATUM,
|
||
MELDING_ACCEPTDATUM,
|
||
MELDING_AFGEMELD,
|
||
MELDING_ACCEPTED,
|
||
DOORLOOPTIJD_WERKDGN,
|
||
DOORLOOPTIJD_WERKUREN,
|
||
ONDERWERP,
|
||
VOMSCHRIJVING,
|
||
MELDING_OPMERKING,
|
||
PRIORITEIT,
|
||
PRIORITEITTXT,
|
||
RATING,
|
||
RATING_OPMERKING,
|
||
BOLLETJE,
|
||
ACCEPT_SLA_DAGEN,
|
||
ACCEPT_SLA_UREN,
|
||
UITVOERING_SLA_DAGEN,
|
||
UITVOERING_SLA_UREN,
|
||
AFSPRAAK_SLA_DAGEN,
|
||
AFSPRAAK_SLA_UREN,
|
||
ACCEPT_SLA_OPTIJD,
|
||
UITVOERING_SLA_OPTIJD,
|
||
AFSPRAAK_SLA_OPTIJD,
|
||
SELFSERVICE
|
||
)
|
||
AS
|
||
SELECT mld_melding_key,
|
||
meldingnummer,
|
||
alg_regio_omschrijving,
|
||
alg_district_omschrijving,
|
||
locatie,
|
||
locatie_omschrijving,
|
||
locatie_plaats,
|
||
alg_locatie_key,
|
||
gebouw,
|
||
gebouw_naam,
|
||
verdieping,
|
||
ruimte,
|
||
ruimte_omschrijving,
|
||
melding_ordernr,
|
||
kostensoortgroep,
|
||
kostensoort,
|
||
kostenplaats,
|
||
kostenplaats_oms,
|
||
melder,
|
||
prs_perslid_key,
|
||
afdeling,
|
||
afdeling_omschrijving,
|
||
afdeling_key,
|
||
prs_bedrijf_key,
|
||
invoerder,
|
||
meldbron,
|
||
soortmelding,
|
||
ins_discipline_key,
|
||
productgroep,
|
||
subproductgroep,
|
||
behandelgroep,
|
||
behandelaar,
|
||
behandelaar_key,
|
||
subproductgroepgroep,
|
||
status,
|
||
sla_nvt,
|
||
sla_werkdgn,
|
||
sla_werkuren,
|
||
sla_respijtdgn,
|
||
sla_respijturen,
|
||
sla_accptdgn,
|
||
sla_accpturen,
|
||
plan_uitvoertijd_sla,
|
||
datum,
|
||
einddatum,
|
||
acceptdatum,
|
||
afgemeld,
|
||
accepted,
|
||
DECODE (x.t_doorlooptijd.eenheid,
|
||
'D', x.t_doorlooptijd.tijdsduur,
|
||
NULL)
|
||
doorlooptijd_werkdgn,
|
||
DECODE (x.t_doorlooptijd.eenheid,
|
||
'U', x.t_doorlooptijd.tijdsduur,
|
||
NULL)
|
||
doorlooptijd_werkuren,
|
||
onderwerp,
|
||
omschrijving,
|
||
opmerking,
|
||
mld_melding_spoed prioriteit,
|
||
DECODE (mld_melding_spoed,
|
||
3, lcl.l ('lcl_mld_urg_normaal'),
|
||
1, lcl.l ('lcl_mld_urg_kritiek'),
|
||
2, lcl.l ('lcl_mld_urg_hoog'),
|
||
4, lcl.l ('lcl_mld_urg_laag')),
|
||
mld_melding_satisfaction,
|
||
mld_melding_satisfaction_op,
|
||
mld_melding_flag,
|
||
DECODE (x.t_doorlooptijd.eenheid,
|
||
'D', acceptdatum - COALESCE (accepted, afgemeld),
|
||
NULL)
|
||
accept_sla_dagen,
|
||
DECODE (x.t_doorlooptijd.eenheid,
|
||
'U', (acceptdatum - COALESCE (accepted, afgemeld)) * 24,
|
||
NULL)
|
||
accept_sla_uren,
|
||
DECODE (
|
||
x.t_doorlooptijd.eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (afgemeld, SYSDATE)
|
||
+ COALESCE (sla_respijtdgn, 0),
|
||
NULL)
|
||
uitvoering_sla_dagen,
|
||
DECODE (
|
||
x.t_doorlooptijd.eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (afgemeld, SYSDATE))
|
||
* 24)
|
||
+ COALESCE (sla_respijturen, 0),
|
||
NULL)
|
||
uitvoering_sla_uren,
|
||
DECODE (
|
||
x.t_doorlooptijd.eenheid,
|
||
'D',
|
||
einddatum
|
||
- COALESCE (afgemeld, SYSDATE)
|
||
+ COALESCE (sla_respijtdgn, 0),
|
||
NULL)
|
||
afspraak_sla_dagen,
|
||
DECODE (
|
||
x.t_doorlooptijd.eenheid,
|
||
'U',
|
||
( (einddatum - COALESCE (afgemeld, SYSDATE)) * 24)
|
||
+ COALESCE (sla_respijtdgn, 0),
|
||
NULL)
|
||
afspraak_sla_uren,
|
||
CASE
|
||
WHEN acceptdatum IS NULL
|
||
OR -- Dan is er geen acceptatietijd gedefinieerd en dus altijd op tijd.
|
||
DECODE (x.t_doorlooptijd.eenheid,
|
||
'D',
|
||
acceptdatum - COALESCE (accepted, afgemeld),
|
||
0)
|
||
+ DECODE (
|
||
x.t_doorlooptijd.eenheid,
|
||
'U',
|
||
(acceptdatum - COALESCE (accepted, afgemeld)) * 24,
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END
|
||
accept_sla_optijd,
|
||
CASE
|
||
WHEN DECODE (
|
||
x.t_doorlooptijd.eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (afgemeld, SYSDATE)
|
||
+ COALESCE (sla_respijtdgn, 0),
|
||
0)
|
||
+ DECODE (
|
||
x.t_doorlooptijd.eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (afgemeld, SYSDATE))
|
||
* 24)
|
||
+ COALESCE (sla_respijturen, 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END
|
||
uitvoering_sla_optijd,
|
||
CASE
|
||
WHEN DECODE (
|
||
x.t_doorlooptijd.eenheid,
|
||
'D',
|
||
einddatum
|
||
- COALESCE (afgemeld, SYSDATE)
|
||
+ COALESCE (sla_respijtdgn, 0),
|
||
0)
|
||
+ DECODE (
|
||
x.t_doorlooptijd.eenheid,
|
||
'U',
|
||
( (einddatum - COALESCE (afgemeld, SYSDATE)) * 24)
|
||
+ COALESCE (sla_respijtdgn, 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END
|
||
afspraak_sla_optijd,
|
||
DECODE (invoerder, melder, lcl.l ('lcl_yes'), lcl.l ('lcl_no'))
|
||
selfservice
|
||
FROM (SELECT m.mld_melding_key,
|
||
m.prs_perslid_key,
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key
|
||
meldingnummer,
|
||
alg_regio_omschrijving,
|
||
alg_district_omschrijving,
|
||
alg_locatie_code locatie,
|
||
alg_locatie_omschrijving locatie_omschrijving,
|
||
alg_locatie_plaats locatie_plaats,
|
||
l.alg_locatie_key,
|
||
og.alg_gebouw_code gebouw,
|
||
og.alg_gebouw_naam gebouw_naam,
|
||
og.alg_verdieping_code verdieping,
|
||
og.alg_ruimte_nr ruimte,
|
||
og.alg_ruimte_omschrijving ruimte_omschrijving,
|
||
m.mld_melding_ordernr melding_ordernr,
|
||
(SELECT ksg.prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
|
||
WHERE ksg.prs_kostensoortgrp_key =
|
||
ks.prs_kostensoortgrp_key
|
||
AND ks.prs_kostensoort_key =
|
||
(SELECT COALESCE (sm.prs_kostensoort_key,
|
||
disc.prs_kostensoort_key)
|
||
FROM mld_stdmelding sm,
|
||
mld_discipline disc
|
||
WHERE sm.mld_ins_discipline_key =
|
||
disc.ins_discipline_key
|
||
AND sm.mld_stdmelding_key =
|
||
s.mld_stdmelding_key))
|
||
kostensoortgroep,
|
||
(SELECT ks.prs_kostensoort_oms
|
||
FROM prs_kostensoort ks
|
||
WHERE ks.prs_kostensoort_key =
|
||
(SELECT COALESCE (sm.prs_kostensoort_key,
|
||
disc.prs_kostensoort_key)
|
||
FROM mld_stdmelding sm, mld_discipline disc
|
||
WHERE sm.mld_ins_discipline_key =
|
||
disc.ins_discipline_key
|
||
AND sm.mld_stdmelding_key =
|
||
s.mld_stdmelding_key))
|
||
kostensoort,
|
||
(SELECT k.prs_kostenplaats_nr
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key)
|
||
kostenplaats,
|
||
(SELECT k.prs_kostenplaats_omschrijving
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key)
|
||
kostenplaats_oms,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = m.prs_perslid_key)
|
||
melder,
|
||
(SELECT prs_afdeling_naam
|
||
FROM prs_afdeling afd, prs_perslid pp
|
||
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
|
||
AND pp.prs_perslid_key = m.prs_perslid_key)
|
||
afdeling,
|
||
(SELECT prs_afdeling_omschrijving
|
||
FROM prs_afdeling afd, prs_perslid pp
|
||
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
|
||
AND pp.prs_perslid_key = m.prs_perslid_key)
|
||
afdeling_omschrijving,
|
||
(SELECT prs_afdeling_key
|
||
FROM prs_perslid pp
|
||
WHERE pp.prs_perslid_key = m.prs_perslid_key)
|
||
afdeling_key,
|
||
(SELECT prs_bedrijf_key
|
||
FROM prs_v_afdeling pva, prs_perslid pp
|
||
WHERE pva.prs_afdeling_key = pp.prs_afdeling_key
|
||
AND pp.prs_perslid_key = m.prs_perslid_key)
|
||
prs_bedrijf_key,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key =
|
||
mld.getmeldinguser (m.mld_melding_key))
|
||
invoerder,
|
||
(SELECT mb.mld_meldbron_omschrijving
|
||
FROM mld_meldbron mb
|
||
WHERE mb.mld_meldbron_key = m.mld_meldbron_key)
|
||
meldbron,
|
||
m.mld_meldbron_key,
|
||
sd.ins_srtdiscipline_key ins_srtdiscipline_key,
|
||
sd.ins_srtdiscipline_omschrijving soortmelding,
|
||
md.ins_discipline_key ins_discipline_key,
|
||
CASE md.ins_discipline_key --MDUX#52700: Vakgroep "Aanvraag" en "Aanvraag Retail" samengevoegd, zelfde voor "Storing" en "Storing Retail"
|
||
WHEN 424 THEN 'Aanvraag'
|
||
WHEN 422 THEN 'Storing'
|
||
ELSE md.ins_discipline_omschrijving
|
||
END
|
||
productgroep,
|
||
s.mld_stdmelding_omschrijving subproductgroep,
|
||
smg.mld_stdmeldinggroep_naam subproductgroepgroep,
|
||
mbg.mld_behandelgroep_naam behandelgroep,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = m.mld_melding_behandelaar_key)
|
||
behandelaar,
|
||
m.mld_melding_behandelaar_key behandelaar_key,
|
||
(SELECT mld_statuses_omschrijving
|
||
FROM mld_statuses sta
|
||
WHERE sta.mld_statuses_key = m.mld_melding_status)
|
||
status,
|
||
CASE
|
||
WHEN m.mld_melding_einddatum >
|
||
COALESCE (
|
||
fac.gettrackingdate ('MLDAFM',
|
||
m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDREJ',
|
||
m.mld_melding_key),
|
||
SYSDATE)
|
||
THEN
|
||
1
|
||
ELSE
|
||
0
|
||
END
|
||
plan_uitvoertijd_sla,
|
||
CASE
|
||
WHEN m.mld_melding_indult = 1
|
||
OR s.mld_stdmelding_slabewaken = 0
|
||
THEN
|
||
1
|
||
ELSE
|
||
0
|
||
END
|
||
sla_nvt,
|
||
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
||
'D', m.mld_melding_t_uitvoertijd.tijdsduur,
|
||
NULL)
|
||
sla_werkdgn,
|
||
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
||
'U', m.mld_melding_t_uitvoertijd.tijdsduur,
|
||
NULL)
|
||
sla_werkuren,
|
||
DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL)
|
||
sla_respijtdgn,
|
||
DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL)
|
||
sla_respijturen,
|
||
DECODE (m.mld_melding_t_accepttijd.eenheid,
|
||
'D', m.mld_melding_t_accepttijd.tijdsduur,
|
||
NULL)
|
||
sla_accptdgn,
|
||
DECODE (m.mld_melding_t_accepttijd.eenheid,
|
||
'U', m.mld_melding_t_accepttijd.tijdsduur,
|
||
NULL)
|
||
sla_accpturen,
|
||
m.mld_melding_datum datum,
|
||
CASE
|
||
WHEN s.mld_stdmelding_planbaar = 2 THEN TO_DATE (NULL)
|
||
ELSE m.mld_melding_einddatum
|
||
END
|
||
einddatum,
|
||
mld.getacceptdatum (m.mld_melding_datum,
|
||
m.mld_stdmelding_key,
|
||
og.alg_onroerendgoed_keys)
|
||
acceptdatum,
|
||
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1))
|
||
afgemeld,
|
||
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 4),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1))
|
||
accepted,
|
||
mld.getactualuitvoer (m.mld_melding_key) t_doorlooptijd,
|
||
m.mld_melding_onderwerp onderwerp,
|
||
m.mld_melding_omschrijving omschrijving,
|
||
m.mld_melding_opmerking opmerking,
|
||
m.mld_melding_spoed,
|
||
m.mld_melding_satisfaction,
|
||
m.mld_melding_satisfaction_op,
|
||
m.mld_melding_flag
|
||
FROM mld_melding m,
|
||
mld_stdmelding s,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_regio r,
|
||
alg_v_allonrgoed_gegevens og,
|
||
mld_discipline md,
|
||
mld_disc_params mdp,
|
||
mld_behandelgroep mbg,
|
||
ins_srtdiscipline sd,
|
||
mld_stdmeldinggroep smg
|
||
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND md.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND md.ins_discipline_key = mdp.mld_ins_discipline_key
|
||
AND s.mld_stdmeldinggroep_key =
|
||
smg.mld_stdmeldinggroep_key(+)
|
||
AND mdp.mld_behandelgroep_key =
|
||
mbg.mld_behandelgroep_key(+)
|
||
AND l.alg_district_key = d.alg_district_key(+)
|
||
AND d.alg_regio_key = r.alg_regio_key(+)
|
||
AND m.mld_alg_onroerendgoed_keys =
|
||
og.alg_onroerendgoed_keys(+)
|
||
AND m.fac_activiteit_key IS NULL
|
||
AND m.mld_melding_datum >=
|
||
TO_DATE ('01-01-2010', 'DD-MM-YYYY')) x;
|
||
|
||
|
||
--MDUX#52640 - Notificatie Keuring elektrisch handgereedschap, leverancier
|
||
CREATE OR REPLACE FORCE VIEW MDUX_V_NOTI_KEURING_EXTERN
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT n.fac_srtnotificatie_code,
|
||
NULL,
|
||
b.prs_perslid_key,
|
||
('(Her)keuring' || ' - ' || a.prs_afdeling_omschrijving),
|
||
d.ins_deel_key,
|
||
NULL,
|
||
l.prs_bedrijf_email,
|
||
NULL
|
||
FROM ins_deel d,
|
||
ins_srtcontrole sc,
|
||
prs_afdeling a,
|
||
prs_perslid b,
|
||
prs_bedrijf l,
|
||
ins_kenmerkdeel kmd,
|
||
ins_kenmerk km,
|
||
ins_deelsrtcontrole dsc,
|
||
fac_srtnotificatie n
|
||
WHERE sc.ins_srtcontrole_key = 270 --Jaarlijkse keuring Objectsoort Elektrisch handgereedschap
|
||
AND d.ins_srtdeel_key = 401
|
||
AND d.ins_deel_key = kmd.ins_deel_key
|
||
AND n.fac_srtnotificatie_code = 'CUST02'
|
||
AND a.prs_afdeling_key = d.ins_alg_ruimte_key
|
||
AND l.prs_bedrijf_key = fac.safe_to_number(kmd.ins_kenmerkdeel_waarde)
|
||
AND km.ins_kenmerk_key = kmd.ins_kenmerk_key
|
||
AND km.ins_srtkenmerk_key = 202 --Kenmerk Leverancier
|
||
AND d.ins_deel_key = dsc.ins_deel_key(+)
|
||
AND d.prs_perslid_key_beh = b.prs_perslid_key(+)
|
||
AND d.ins_deel_verwijder IS NULL
|
||
AND COALESCE (
|
||
TRUNC (dsc.ins_deelsrtcontrole_plandatum),
|
||
TRUNC(COALESCE (
|
||
(SELECT MAX(dsc.ins_deelsrtcontrole_plandatum)
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = d.ins_deel_key
|
||
AND sc.ins_srtcontrole_key = dsc.ins_srtcontrole_key
|
||
AND dsc.ins_deelsrtcontrole_status IN (5, 6)),
|
||
TRUNC(fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key,
|
||
1))))) = TRUNC (SYSDATE + 14);
|
||
|
||
|
||
--MDUX#52640 - Notificatie Keuring elektrisch handgereedschap, interne organisatie
|
||
CREATE OR REPLACE FORCE VIEW MDUX_V_NOTI_KEURING_INTERN
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT n.fac_srtnotificatie_code,
|
||
NULL,
|
||
b.prs_perslid_key,
|
||
('(Her)keuring' || ' - ' || a.prs_afdeling_omschrijving),
|
||
d.ins_deel_key,
|
||
NULL
|
||
FROM ins_deel d,
|
||
ins_srtcontrole sc,
|
||
prs_afdeling a,
|
||
prs_perslid b,
|
||
ins_deelsrtcontrole dsc,
|
||
fac_srtnotificatie n
|
||
WHERE sc.ins_srtcontrole_key = 270 --Jaarlijkse keuring Objectsoort Elektrisch handgereedschap
|
||
AND d.ins_srtdeel_key = 401
|
||
AND n.fac_srtnotificatie_code = 'CUST03'
|
||
AND a.prs_afdeling_key = d.ins_alg_ruimte_key
|
||
AND d.prs_perslid_key_beh = b.prs_perslid_key
|
||
AND d.ins_deel_key = dsc.ins_deel_key(+)
|
||
AND d.ins_deel_verwijder IS NULL
|
||
AND COALESCE (
|
||
TRUNC (dsc.ins_deelsrtcontrole_plandatum),
|
||
TRUNC(COALESCE (
|
||
(SELECT MAX(dsc.ins_deelsrtcontrole_plandatum)
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = d.ins_deel_key
|
||
AND sc.ins_srtcontrole_key = dsc.ins_srtcontrole_key
|
||
AND dsc.ins_deelsrtcontrole_status IN (5, 6)),
|
||
TRUNC(fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key,
|
||
1))))) = TRUNC (SYSDATE + 14);
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_rap_taken
|
||
(
|
||
objbehkey,
|
||
objbehoms,
|
||
lockey,
|
||
locoms,
|
||
levkey,
|
||
levoms,
|
||
sdkey,
|
||
sdoms,
|
||
sckey,
|
||
scoms,
|
||
dkey,
|
||
doms,
|
||
cpland,
|
||
extra_key,
|
||
xemail
|
||
)
|
||
AS
|
||
SELECT (SELECT (kmd.ins_kenmerkdeel_waarde)
|
||
FROM ins_kenmerk km, ins_kenmerkdeel kmd
|
||
WHERE km.ins_srtkenmerk_key = 305 -- Kenmerksoort "Vestigingsmanager"
|
||
AND km.ins_kenmerk_key = kmd.ins_kenmerk_key
|
||
AND d.ins_deel_key = kmd.ins_deel_key)
|
||
AS objbehkey,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all p
|
||
WHERE p.prs_perslid_key =
|
||
(SELECT MAX(fac.safe_to_number (
|
||
kmd.ins_kenmerkdeel_waarde))
|
||
FROM ins_kenmerk km, ins_kenmerkdeel kmd
|
||
WHERE km.ins_srtkenmerk_key = 305 -- Kenmerksoort "Vestigingsmanager"
|
||
AND km.ins_kenmerk_key = kmd.ins_kenmerk_key
|
||
AND d.ins_deel_key = kmd.ins_deel_key))
|
||
AS objbehoms,
|
||
(CASE
|
||
WHEN d.ins_alg_ruimte_type = 'R' THEN l.alg_locatie_key
|
||
WHEN d.ins_alg_ruimte_type = 'A' THEN a.prs_afdeling_key
|
||
ELSE NULL
|
||
END)
|
||
locatie,
|
||
(CASE
|
||
WHEN d.ins_alg_ruimte_type = 'R'
|
||
THEN
|
||
l.alg_locatie_omschrijving
|
||
WHEN d.ins_alg_ruimte_type = 'A'
|
||
THEN
|
||
a.prs_afdeling_omschrijving
|
||
ELSE
|
||
NULL
|
||
END)
|
||
locatie_omschrijving,
|
||
(SELECT prs_bedrijf_key
|
||
FROM prs_bedrijf lev
|
||
WHERE lev.prs_bedrijf_key =
|
||
(SELECT MAX(fac.safe_to_number (
|
||
levk.ins_kenmerk_default))
|
||
FROM ins_kenmerk levk
|
||
WHERE levk.ins_kenmerk_verwijder IS NULL
|
||
AND levk.ins_srtkenmerk_key = 202 -- Kenmerksoort "Leverancier object"
|
||
AND levk.ins_srtinstallatie_key =
|
||
sc.ins_srtcontrole_key))
|
||
AS levkey,
|
||
(SELECT prs_bedrijf_naam
|
||
FROM prs_bedrijf lev
|
||
WHERE lev.prs_bedrijf_key =
|
||
(SELECT MAX(fac.safe_to_number (
|
||
levk.ins_kenmerk_default))
|
||
FROM ins_kenmerk levk
|
||
WHERE levk.ins_kenmerk_verwijder IS NULL
|
||
AND levk.ins_srtkenmerk_key = 202 -- Kenmerksoort "Leverancier object"
|
||
AND levk.ins_srtinstallatie_key =
|
||
sc.ins_srtcontrole_key))
|
||
AS levoms,
|
||
sd.ins_srtdeel_key,
|
||
sd.ins_srtdeel_omschrijving,
|
||
sc.ins_srtcontrole_key,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
COALESCE (
|
||
TRUNC (dsc.ins_deelsrtcontrole_plandatum),
|
||
TRUNC(COALESCE (
|
||
(SELECT MAX (dsc.ins_deelsrtcontrole_plandatum)
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = d.ins_deel_key
|
||
AND sc.ins_srtcontrole_key =
|
||
dsc.ins_srtcontrole_key
|
||
AND dsc.ins_deelsrtcontrole_status IN (5, 6)),
|
||
TRUNC(fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
sc.ins_srtcontrole_key,
|
||
1)))))
|
||
AS cpland,
|
||
(CASE
|
||
WHEN d.ins_alg_ruimte_type = 'R' THEN l.alg_locatie_key
|
||
WHEN d.ins_alg_ruimte_type = 'A' THEN a.prs_afdeling_key
|
||
ELSE NULL
|
||
END)
|
||
AS extra_key,
|
||
(SELECT prs_bedrijf_email
|
||
|| ';'
|
||
|| (SELECT prs_perslid_email
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_key = 114914) -- Persoon '_Controle notificaties taken', hier gaan de notificatie emails (extern) dan ook naar toe.
|
||
FROM (SELECT prs_bedrijf_email
|
||
FROM prs_bedrijf lev
|
||
WHERE lev.prs_bedrijf_key =
|
||
(SELECT MAX(fac.safe_to_number (
|
||
levk.ins_kenmerk_default))
|
||
FROM ins_kenmerk levk
|
||
WHERE levk.ins_kenmerk_verwijder IS NULL
|
||
AND levk.ins_srtkenmerk_key = 202 -- Kenmerksoort "Leverancier object"
|
||
AND levk.ins_srtinstallatie_key =
|
||
sc.ins_srtcontrole_key))
|
||
WHERE (SELECT prs_bedrijf_email
|
||
FROM prs_bedrijf lev
|
||
WHERE lev.prs_bedrijf_key =
|
||
(SELECT MAX(fac.safe_to_number (
|
||
levk.ins_kenmerk_default))
|
||
FROM ins_kenmerk levk
|
||
WHERE levk.ins_kenmerk_verwijder IS NULL
|
||
AND levk.ins_srtkenmerk_key = 202 -- Kenmerksoort "Leverancier object"
|
||
AND levk.ins_srtinstallatie_key =
|
||
sc.ins_srtcontrole_key)) IS NOT NULL)
|
||
AS xemail
|
||
FROM ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_srtcontrole sc,
|
||
alg_locatie l,
|
||
ins_deelsrtcontrole dsc,
|
||
ins_kenmerk km,
|
||
ins_kenmerkdeel kmd,
|
||
ins_srtkenmerk sk,
|
||
prs_afdeling a
|
||
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND dsc.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND d.ins_deel_key = dsc.ins_deel_key(+)
|
||
AND d.ins_deel_verwijder IS NULL
|
||
AND dsc.ins_deel_key = d.ins_deel_key
|
||
AND l.alg_locatie_key(+) = d.ins_alg_locatie_key
|
||
AND a.prs_afdeling_key(+) = d.ins_alg_ruimte_key
|
||
AND dsc.ins_deelsrtcontrole_datum IS NULL
|
||
AND kmd.ins_kenmerk_key = km.ins_kenmerk_key
|
||
AND km.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND kmd.ins_kenmerkdeel_waarde = '67' -- Waarde "ja" bij kenmerk 'Automatische notificatie'
|
||
AND sk.ins_srtkenmerk_key = 281 -- Automatische notificatie
|
||
AND km.ins_kenmerk_verwijder IS NULL
|
||
AND km.ins_srtinstallatie_key = sd.ins_srtdeel_key;
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_noti_taken_intern
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT 'CUST04',
|
||
NULL,
|
||
rap.objbehkey,
|
||
('Geplande taak - ' || rap.sdoms || ' - ' || rap.locoms),
|
||
(SELECT MAX (fac_usrrap_key)
|
||
FROM fac_usrrap
|
||
WHERE fac_usrrap_view_name = 'MDUX_V_RAP_TAKEN')
|
||
rapportnr,
|
||
rap.extra_key
|
||
FROM mdux_v_rap_taken rap
|
||
WHERE COALESCE (
|
||
TRUNC (rap.cpland),
|
||
TRUNC(COALESCE (
|
||
(SELECT MAX (dsc.ins_deelsrtcontrole_plandatum)
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = rap.dkey
|
||
AND rap.sckey = dsc.ins_srtcontrole_key
|
||
AND dsc.ins_deelsrtcontrole_status IN (5, 6)),
|
||
TRUNC (fac.nextcyclusdatedeel (rap.dkey, rap.sckey, 1))))) =
|
||
TRUNC (SYSDATE + 28)
|
||
AND rap.objbehkey IS NOT NULL
|
||
GROUP BY ('Geplande taak - ' || rap.sdoms || ' - ' || rap.locoms),
|
||
rap.objbehkey,
|
||
rap.extra_key
|
||
UNION ALL -- Om ook de persoon '_Controle notificaties taken' een notificatie email te sturen
|
||
SELECT 'CUST04',
|
||
NULL,
|
||
(SELECT prs_perslid_email
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_key = 114914), -- Persoon '_Controle notificaties taken', hier gaan de notificatie emails (intern) dan ook naar toe.
|
||
('Geplande taak - ' || rap.sdoms || ' - ' || rap.locoms),
|
||
(SELECT MAX (fac_usrrap_key)
|
||
FROM fac_usrrap
|
||
WHERE fac_usrrap_view_name = 'MDUX_V_RAP_TAKEN')
|
||
rapportnr,
|
||
rap.extra_key
|
||
FROM mdux_v_rap_taken rap
|
||
WHERE COALESCE (
|
||
TRUNC (rap.cpland),
|
||
TRUNC(COALESCE (
|
||
(SELECT MAX (dsc.ins_deelsrtcontrole_plandatum)
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = rap.dkey
|
||
AND rap.sckey = dsc.ins_srtcontrole_key
|
||
AND dsc.ins_deelsrtcontrole_status IN (5, 6)),
|
||
TRUNC (fac.nextcyclusdatedeel (rap.dkey, rap.sckey, 1))))) =
|
||
TRUNC (SYSDATE + 28)
|
||
AND rap.objbehkey IS NOT NULL
|
||
GROUP BY ('Geplande taak - ' || rap.sdoms || ' - ' || rap.locoms),
|
||
rap.objbehkey,
|
||
rap.extra_key;
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_noti_taken_extern
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT 'CUST05',
|
||
NULL,
|
||
rap.objbehkey,
|
||
('Geplande taak - ' || rap.sdoms || ' - ' || rap.locoms),
|
||
(SELECT MAX (fac_usrrap_key)
|
||
FROM fac_usrrap
|
||
WHERE fac_usrrap_view_name = 'MDUX_V_RAP_TAKEN')
|
||
rapportnr,
|
||
rap.extra_key,
|
||
rap.xemail,
|
||
NULL
|
||
FROM mdux_v_rap_taken rap
|
||
WHERE COALESCE (
|
||
TRUNC (rap.cpland),
|
||
TRUNC(COALESCE (
|
||
(SELECT MAX (dsc.ins_deelsrtcontrole_plandatum)
|
||
FROM ins_deelsrtcontrole dsc
|
||
WHERE dsc.ins_deel_key = rap.dkey
|
||
AND rap.sckey = dsc.ins_srtcontrole_key
|
||
AND dsc.ins_deelsrtcontrole_status IN (5, 6)),
|
||
TRUNC (fac.nextcyclusdatedeel (rap.dkey, rap.sckey, 1))))) =
|
||
TRUNC (SYSDATE + 28)
|
||
AND rap.objbehkey IS NOT NULL
|
||
GROUP BY ('Geplande taak - ' || rap.sdoms || ' - ' || rap.locoms),
|
||
rap.objbehkey,
|
||
rap.extra_key,
|
||
rap.xemail;
|
||
|
||
--MDUX#56138 - Rapportage van simkaarten en elektronica met kenmerken
|
||
CREATE OR REPLACE VIEW mdux_v_rap_objecten
|
||
(
|
||
deel_key,
|
||
identificatie,
|
||
beschrijving,
|
||
organisatie,
|
||
persoon,
|
||
objectgroep,
|
||
objectsoort,
|
||
merk,
|
||
type,
|
||
serienummer,
|
||
datum_in_gebruik,
|
||
status,
|
||
mobiel_nummer,
|
||
abonnementstype,
|
||
accountcode,
|
||
eigen_risico,
|
||
eigen_bijdrage,
|
||
activatiedatum,
|
||
geactiveerd,
|
||
ten_behoeve_van,
|
||
notities
|
||
)
|
||
AS
|
||
SELECT ins.ins_deel_key,
|
||
ins.ins_deel_omschrijving AS identificatie,
|
||
ins.ins_deel_opmerking AS beschrijving,
|
||
ins.prs_afdeling_omschrijving,
|
||
ins.prs_perslid_volnaam,
|
||
ins.ins_srtgroep_omschrijving AS objectgroep,
|
||
ins.ins_srtdeel_omschrijving AS objectsoort,
|
||
(SELECT DISTINCT kd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel kd, ins_v_srtdeel_kenmerk sk
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND sk.ins_srtkenmerk_key = 23), --Merk
|
||
(SELECT DISTINCT kd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel kd, ins_v_srtdeel_kenmerk sk
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND sk.ins_srtkenmerk_key = 28), --Type
|
||
(SELECT DISTINCT kd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel kd, ins_v_srtdeel_kenmerk sk
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND sk.ins_srtkenmerk_key = 26), --Serienummer
|
||
(SELECT DISTINCT kd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel kd, ins_v_srtdeel_kenmerk sk
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND sk.ins_srtkenmerk_key = 22), --Datum in gebruik
|
||
(SELECT DISTINCT kmd.fac_usrdata_omschr
|
||
FROM ins_kenmerkdeel kd,
|
||
ins_v_srtdeel_kenmerk sk,
|
||
fac_v_aanwezigusrdata kmd
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND kd.ins_kenmerkdeel_waarde = kmd.fac_usrdata_key
|
||
AND sk.ins_srtkenmerk_key = 27), --Status (lijstje)
|
||
(SELECT DISTINCT kd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel kd, ins_v_srtdeel_kenmerk sk
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND sk.ins_srtkenmerk_key = 54), --Mobiel nummer
|
||
(SELECT DISTINCT kmd.fac_usrdata_omschr
|
||
FROM ins_kenmerkdeel kd,
|
||
ins_v_srtdeel_kenmerk sk,
|
||
fac_v_aanwezigusrdata kmd
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND kd.ins_kenmerkdeel_waarde = kmd.fac_usrdata_key
|
||
AND sk.ins_srtkenmerk_key = 82), --Abonnementstype (lijstje)
|
||
(SELECT DISTINCT kd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel kd, ins_v_srtdeel_kenmerk sk
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND sk.ins_srtkenmerk_key = 21), --Accountcode
|
||
(SELECT DISTINCT kmd.fac_usrdata_omschr
|
||
FROM ins_kenmerkdeel kd,
|
||
ins_v_srtdeel_kenmerk sk,
|
||
fac_v_aanwezigusrdata kmd
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND kd.ins_kenmerkdeel_waarde = kmd.fac_usrdata_key
|
||
AND sk.ins_srtkenmerk_key = 241), --Eigen risico (lijstje)
|
||
(SELECT DISTINCT kd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel kd, ins_v_srtdeel_kenmerk sk
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND sk.ins_srtkenmerk_key = 261), --Eigen bijdrage
|
||
(SELECT DISTINCT kd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel kd, ins_v_srtdeel_kenmerk sk
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND sk.ins_srtkenmerk_key = 52), --Activatiedatum
|
||
(SELECT DISTINCT kmd.fac_usrdata_omschr
|
||
FROM ins_kenmerkdeel kd,
|
||
ins_v_srtdeel_kenmerk sk,
|
||
fac_v_aanwezigusrdata kmd
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND kd.ins_kenmerkdeel_waarde = kmd.fac_usrdata_key
|
||
AND sk.ins_srtkenmerk_key = 53), --Geactiveerd (lijstje)
|
||
(SELECT DISTINCT kd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel kd, ins_v_srtdeel_kenmerk sk
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND sk.ins_srtkenmerk_key = 55), --Ten behoeve van
|
||
(SELECT DISTINCT kd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel kd, ins_v_srtdeel_kenmerk sk
|
||
WHERE kd.ins_deel_key = ins.ins_deel_key
|
||
AND sk.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND sk.ins_srtkenmerk_key = 24) --Notities
|
||
FROM ins_v_deel_gegevens ins
|
||
WHERE ins_srtgroep_key IN (1, 2);
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_rap_noti_opdr
|
||
(
|
||
opdracht_nummer,
|
||
opdracht_type,
|
||
opdracht_district,
|
||
opdracht_locatie,
|
||
vakgroeptype,
|
||
vakgroep,
|
||
melding,
|
||
omschrijving,
|
||
opdracht_datum,
|
||
melding_status,
|
||
opdracht_status,
|
||
opdracht_opmerking,
|
||
extra_key,
|
||
aanvrager,
|
||
opdracht_behandelaar,
|
||
type_uitvoerende,
|
||
opdracht_uitvoerende_key,
|
||
opdracht_uitvoerende,
|
||
uitvoerende_email,
|
||
notificeren
|
||
)
|
||
AS
|
||
SELECT o.opdracht_nummer,
|
||
o.opdracht_type,
|
||
o.opdracht_district,
|
||
o.opdracht_locatie,
|
||
soortmelding AS vakgroeptype,
|
||
productgroep AS vakgroep,
|
||
subproductgroep AS melding,
|
||
vomschrijving AS omschrijving,
|
||
TRUNC (opdracht_datum) AS opdracht_datum,
|
||
o.melding_status,
|
||
o.opdracht_status,
|
||
o.opdracht_opmerking,
|
||
(SELECT mo.mld_uitvoerende_keys
|
||
FROM mld_opdr mo, mld_v_uitvoerende u
|
||
WHERE o.opdracht_key = mo.mld_opdr_key
|
||
AND mo.mld_uitvoerende_keys = u.mld_uitvoerende_key)
|
||
AS extra_key,
|
||
o.melder AS aanvrager,
|
||
o.opdracht_behandelaar,
|
||
(SELECT u.TYPE
|
||
FROM mld_opdr mo, mld_v_uitvoerende u
|
||
WHERE o.opdracht_key = mo.mld_opdr_key
|
||
AND mo.mld_uitvoerende_keys = u.mld_uitvoerende_key)
|
||
AS type_uitvoerende,
|
||
(SELECT u.mld_uitvoerende_key
|
||
FROM mld_opdr mo, mld_v_uitvoerende u
|
||
WHERE o.opdracht_key = mo.mld_opdr_key
|
||
AND mo.mld_uitvoerende_keys = u.mld_uitvoerende_key),
|
||
o.opdracht_uitvoerende,
|
||
CASE -- Emailadres opzoeken, bij leveranciers eerst uit relatie-tabel, vervolgens uit de technische adressen (eerst opdracht, dan bestelling, dan contract)
|
||
WHEN (SELECT u.TYPE
|
||
FROM mld_opdr mo, mld_v_uitvoerende u
|
||
WHERE o.opdracht_key = mo.mld_opdr_key
|
||
AND mo.mld_uitvoerende_keys = u.mld_uitvoerende_key) =
|
||
'B'
|
||
THEN
|
||
COALESCE (
|
||
(SELECT b.prs_bedrijf_email
|
||
FROM mld_opdr mo, mld_v_uitvoerende u, prs_bedrijf b
|
||
WHERE o.opdracht_key = mo.mld_opdr_key
|
||
AND b.prs_bedrijf_key = mo.mld_uitvoerende_keys
|
||
AND mo.mld_uitvoerende_keys =
|
||
u.mld_uitvoerende_key),
|
||
(SELECT ba.prs_bedrijfadres_url
|
||
FROM mld_opdr mo,
|
||
mld_v_uitvoerende u,
|
||
prs_bedrijf b,
|
||
prs_bedrijfadres ba
|
||
WHERE o.opdracht_key = mo.mld_opdr_key
|
||
AND b.prs_bedrijf_key = mo.mld_uitvoerende_keys
|
||
AND ba.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND ba.prs_bedrijfadres_type = 'O'
|
||
AND mo.mld_uitvoerende_keys =
|
||
u.mld_uitvoerende_key),
|
||
(SELECT ba.prs_bedrijfadres_url
|
||
FROM mld_opdr mo,
|
||
mld_v_uitvoerende u,
|
||
prs_bedrijf b,
|
||
prs_bedrijfadres ba
|
||
WHERE o.opdracht_key = mo.mld_opdr_key
|
||
AND b.prs_bedrijf_key = mo.mld_uitvoerende_keys
|
||
AND ba.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND ba.prs_bedrijfadres_type = 'B'
|
||
AND mo.mld_uitvoerende_keys =
|
||
u.mld_uitvoerende_key),
|
||
(SELECT ba.prs_bedrijfadres_url
|
||
FROM mld_opdr mo,
|
||
mld_v_uitvoerende u,
|
||
prs_bedrijf b,
|
||
prs_bedrijfadres ba
|
||
WHERE o.opdracht_key = mo.mld_opdr_key
|
||
AND b.prs_bedrijf_key = mo.mld_uitvoerende_keys
|
||
AND ba.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND ba.prs_bedrijfadres_type = 'C'
|
||
AND mo.mld_uitvoerende_keys =
|
||
u.mld_uitvoerende_key))
|
||
ELSE
|
||
(SELECT p.prs_perslid_email
|
||
FROM mld_opdr mo, mld_v_uitvoerende u, prs_perslid p
|
||
WHERE o.opdracht_key = mo.mld_opdr_key
|
||
AND p.prs_perslid_key = mo.mld_uitvoerende_keys
|
||
AND mo.mld_uitvoerende_keys = u.mld_uitvoerende_key)
|
||
END
|
||
AS email,
|
||
CASE
|
||
WHEN (SELECT fac.safe_to_number (pkm.prs_kenmerklink_waarde)
|
||
FROM prs_kenmerklink pkm, prs_bedrijf lev, mld_opdr opdr
|
||
WHERE pkm.prs_kenmerk_key = 1120 -- Kenmerk 'Notificeren' bij bedrijven (in Accept is dit nu 1121)
|
||
AND lev.prs_bedrijf_key = pkm.prs_link_key
|
||
AND opdr.mld_opdr_key = o.opdracht_key
|
||
AND opdr.mld_uitvoerende_keys = pkm.prs_link_key) =
|
||
67
|
||
THEN
|
||
'Ja'
|
||
END
|
||
AS notificeren
|
||
FROM mld_v_udr_meldingopdracht o
|
||
WHERE o.opdracht_afgemeld IS NULL
|
||
AND o.melding_afgemeld IS NULL
|
||
AND o.opdracht_nummer IS NOT NULL;
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_noti_opdr
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile,
|
||
xsender
|
||
)
|
||
AS
|
||
SELECT 'CUST06',
|
||
NULL,
|
||
NULL,
|
||
'Verzoek statusinformatie opdrachten',
|
||
(SELECT MAX (fac_usrrap_key)
|
||
FROM fac_usrrap
|
||
WHERE UPPER (fac_usrrap_view_name) = 'MDUX_V_RAP_NOTI_OPDR')
|
||
rapportnr,
|
||
rap.extra_key,
|
||
rap.uitvoerende_email,
|
||
NULL,
|
||
'facilitair@medux.nl'
|
||
FROM mdux_v_rap_noti_opdr rap
|
||
WHERE rap.notificeren = 'Ja'
|
||
GROUP BY rap.extra_key, rap.uitvoerende_email;
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_rap_beh_leeg
|
||
(
|
||
melding_key,
|
||
melding_datum,
|
||
aanvrager,
|
||
locatie,
|
||
vakgroep,
|
||
melding,
|
||
onderwerp,
|
||
omschrijving
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
m.mld_melding_datum,
|
||
p.prs_perslid_naam_full,
|
||
l.alg_locatie_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_omschrijving,
|
||
m.mld_melding_onderwerp,
|
||
m.mld_melding_omschrijving
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
prs_v_perslid_fullnames p,
|
||
alg_locatie l
|
||
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND p.prs_perslid_key = m.prs_perslid_key
|
||
AND l.alg_locatie_key = m.mld_alg_locatie_key
|
||
AND mld_melding_status IN (0, 2, 3, 4, 7, 99)
|
||
AND mld_melding_behandelaar_key IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_rap_accbgt
|
||
(
|
||
f_hide_sort,
|
||
catalogus,
|
||
deel,
|
||
kostenplaats,
|
||
prs_perslid_key
|
||
)
|
||
AS
|
||
SELECT 999,
|
||
'Vrij beschikbaar budget',
|
||
100 - SUM (bes_perc),
|
||
prs_kostenplaats_omschrijving,
|
||
prs_perslid_key_voor
|
||
FROM ( SELECT d.ins_discipline_omschrijving,
|
||
SUM( bi.bes_bestelling_item_brutoprijs
|
||
/ kp.prs_kostenplaats_limiet
|
||
* 100)
|
||
AS bes_perc,
|
||
kp.prs_kostenplaats_omschrijving,
|
||
b.prs_perslid_key_voor
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
prs_v_aanwezigkostenplaats kp,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
ins_tab_discipline d
|
||
WHERE bi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND kp.prs_kostenplaats_key = b.prs_kostenplaats_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = d.ins_discipline_key
|
||
AND kp.prs_kostenplaats_limiet <> 0
|
||
AND TO_CHAR (b.bes_bestelling_datum, 'yyyymm') = TO_CHAR (SYSDATE, 'yyyymm')
|
||
GROUP BY d.ins_discipline_omschrijving,
|
||
kp.prs_kostenplaats_omschrijving,
|
||
b.prs_perslid_key_voor)
|
||
GROUP BY prs_kostenplaats_omschrijving, prs_perslid_key_voor
|
||
UNION ALL
|
||
SELECT d.ins_discipline_key,
|
||
d.ins_discipline_omschrijving,
|
||
SUM( bi.bes_bestelling_item_brutoprijs
|
||
/ kp.prs_kostenplaats_limiet
|
||
* 100)
|
||
AS bes_perc,
|
||
kp.prs_kostenplaats_omschrijving,
|
||
b.prs_perslid_key_voor
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
prs_v_aanwezigkostenplaats kp,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
ins_tab_discipline d
|
||
WHERE bi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND kp.prs_kostenplaats_key = b.prs_kostenplaats_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = d.ins_discipline_key
|
||
AND kp.prs_kostenplaats_limiet <> 0
|
||
AND TO_CHAR (b.bes_bestelling_datum, 'yyyymm') = TO_CHAR (SYSDATE, 'yyyymm')
|
||
GROUP BY d.ins_discipline_key,
|
||
d.ins_discipline_omschrijving,
|
||
kp.prs_kostenplaats_omschrijving,
|
||
b.prs_perslid_key_voor;
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_rap_accbgt_all
|
||
(
|
||
f_hide_sort,
|
||
catalogus,
|
||
deel
|
||
)
|
||
AS
|
||
SELECT ins_discipline_key,
|
||
ins_discipline_omschrijving,
|
||
(x.brutoprijs / x.limiet * 100) AS bes_perc
|
||
FROM ( SELECT ins_discipline_key,
|
||
ins_discipline_omschrijving,
|
||
SUM (brutoprijs) AS brutoprijs,
|
||
(SELECT SUM (prs_kostenplaats_limiet)
|
||
FROM prs_kostenplaats
|
||
WHERE prs_kostenplaats_verwijder IS NULL)
|
||
AS limiet
|
||
FROM ( SELECT d.ins_discipline_key,
|
||
d.ins_discipline_omschrijving,
|
||
SUM(bi.bes_bestelling_item_brutoprijs)
|
||
AS brutoprijs,
|
||
kp.prs_kostenplaats_omschrijving
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
prs_v_aanwezigkostenplaats kp,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
ins_tab_discipline d
|
||
WHERE bi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND kp.prs_kostenplaats_key =
|
||
b.prs_kostenplaats_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key = d.ins_discipline_key
|
||
AND kp.prs_kostenplaats_limiet <> 0
|
||
AND TO_CHAR (b.bes_bestelling_datum, 'yyyymm') = TO_CHAR (SYSDATE, 'yyyymm')
|
||
GROUP BY d.ins_discipline_omschrijving,
|
||
d.ins_discipline_key,
|
||
kp.prs_kostenplaats_limiet,
|
||
kp.prs_kostenplaats_omschrijving)
|
||
GROUP BY ins_discipline_omschrijving, ins_discipline_key) x
|
||
UNION ALL
|
||
SELECT 999, 'Vrij beschikbaar budget', 100 - SUM (bes_perc)
|
||
FROM (SELECT ins_discipline_key,
|
||
ins_discipline_omschrijving,
|
||
(x.brutoprijs / x.limiet * 100) AS bes_perc
|
||
FROM (SELECT ins_discipline_key,
|
||
ins_discipline_omschrijving,
|
||
SUM (brutoprijs) AS brutoprijs,
|
||
(SELECT SUM (prs_kostenplaats_limiet)
|
||
FROM prs_kostenplaats
|
||
WHERE prs_kostenplaats_verwijder IS NULL)
|
||
AS limiet
|
||
FROM ( SELECT d.ins_discipline_key,
|
||
d.ins_discipline_omschrijving,
|
||
SUM(bi.bes_bestelling_item_brutoprijs) AS brutoprijs,
|
||
kp.prs_kostenplaats_omschrijving
|
||
FROM bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
prs_v_aanwezigkostenplaats kp,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
ins_tab_discipline d
|
||
WHERE bi.bes_bestelling_key =
|
||
b.bes_bestelling_key
|
||
AND kp.prs_kostenplaats_key =
|
||
b.prs_kostenplaats_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
|
||
AND sd.bes_srtgroep_key =
|
||
sg.bes_srtgroep_key
|
||
AND sg.ins_discipline_key =
|
||
d.ins_discipline_key
|
||
AND kp.prs_kostenplaats_limiet <> 0
|
||
AND TO_CHAR (b.bes_bestelling_datum, 'yyyymm') = TO_CHAR (SYSDATE, 'yyyymm')
|
||
GROUP BY d.ins_discipline_omschrijving,
|
||
d.ins_discipline_key,
|
||
kp.prs_kostenplaats_limiet,
|
||
kp.prs_kostenplaats_omschrijving)
|
||
GROUP BY ins_discipline_omschrijving, ins_discipline_key)
|
||
x);
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_rap_bedrijfshulp
|
||
(
|
||
deel_key,
|
||
srtdeel,
|
||
identificatie,
|
||
status,
|
||
perslid_key,
|
||
perslid,
|
||
afdeling_key,
|
||
afdeling,
|
||
datum_uit_dienst,
|
||
extra_key,
|
||
vm_email,
|
||
merk,
|
||
TYPE,
|
||
serienummer,
|
||
mobielnummer
|
||
)
|
||
AS
|
||
SELECT ins_deel_key,
|
||
ins_srtdeel_omschrijving,
|
||
object,
|
||
status_object,
|
||
NULL AS prs_perslid_key,
|
||
NULL AS prs_perslid_naam_full,
|
||
ins_alg_ruimte_key AS prs_afdeling_key,
|
||
(SELECT prs_afdeling_omschrijving
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_key = ins_alg_ruimte_key)
|
||
AS prs_afdeling_naam,
|
||
(SELECT prs_perslid_einddatum
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_key = ins_alg_ruimte_key)
|
||
AS prs_perslid_einddatum,
|
||
DECODE (
|
||
(SELECT DISTINCT MAX (prs_perslid_email)
|
||
FROM prs_perslid vm
|
||
WHERE vm.prs_srtperslid_key IN (10205, 24866) --Srtperslid_key van 'Vestigingsmanager' en 'Sr vestigingsmanager'
|
||
AND vm.prs_afdeling_key = ins_alg_ruimte_key
|
||
AND vm.prs_perslid_verwijder IS NULL),
|
||
NULL,
|
||
9541, -- prs_perslid_key van persoon SSC Facilitaire Zaken, met emailadres facilitair@medux.nl.
|
||
(SELECT DISTINCT MAX (prs_perslid_key)
|
||
FROM prs_perslid vm
|
||
WHERE vm.prs_srtperslid_key IN (10205, 24866) --Srtperslid_key van 'Vestigingsmanager' en 'Sr vestigingsmanager'
|
||
AND vm.prs_afdeling_key = x.ins_alg_ruimte_key
|
||
AND vm.prs_perslid_verwijder IS NULL))
|
||
AS vm,
|
||
DECODE (
|
||
(SELECT DISTINCT MAX (prs_perslid_email)
|
||
FROM prs_perslid vm
|
||
WHERE vm.prs_srtperslid_key IN (10205, 24866) --Srtperslid_key van 'Vestigingsmanager' en 'Sr vestigingsmanager'
|
||
AND vm.prs_afdeling_key = x.ins_alg_ruimte_key
|
||
AND vm.prs_perslid_verwijder IS NULL),
|
||
NULL,
|
||
'facilitair@medux.nl', -- prs_perslid_key van persoon SSC Facilitaire Zaken, met emailadres facilitair@medux.nl.
|
||
(SELECT DISTINCT MAX (prs_perslid_email)
|
||
FROM prs_perslid vm
|
||
WHERE vm.prs_srtperslid_key IN (10205, 24866) --Srtperslid_key van 'Vestigingsmanager' en 'Sr vestigingsmanager'
|
||
AND vm.prs_afdeling_key = ins_alg_ruimte_key
|
||
AND vm.prs_perslid_verwijder IS NULL))
|
||
AS vm_email,
|
||
(SELECT ins_kenmerkdeel_waarde
|
||
FROM ins_v_srtdeel_kenmerkdeel kmd, ins_kenmerk km2
|
||
WHERE km2.ins_kenmerk_key = kmd.ins_kenmerk_key
|
||
AND kmd.ins_deel_key = x.ins_deel_key
|
||
AND km2.ins_srtkenmerk_key = 23)
|
||
AS merk,
|
||
(SELECT ins_kenmerkdeel_waarde
|
||
FROM ins_v_srtdeel_kenmerkdeel kmd, ins_kenmerk km2
|
||
WHERE km2.ins_kenmerk_key = kmd.ins_kenmerk_key
|
||
AND kmd.ins_deel_key = x.ins_deel_key
|
||
AND km2.ins_srtkenmerk_key = 28)
|
||
AS TYPE,
|
||
(SELECT ins_kenmerkdeel_waarde
|
||
FROM ins_v_srtdeel_kenmerkdeel kmd, ins_kenmerk km2
|
||
WHERE km2.ins_kenmerk_key = kmd.ins_kenmerk_key
|
||
AND kmd.ins_deel_key = x.ins_deel_key
|
||
AND km2.ins_srtkenmerk_key = 26)
|
||
AS serienummer,
|
||
(SELECT ins_kenmerkdeel_waarde
|
||
FROM ins_v_srtdeel_kenmerkdeel kmd, ins_kenmerk km2
|
||
WHERE km2.ins_kenmerk_key = kmd.ins_kenmerk_key
|
||
AND kmd.ins_deel_key = x.ins_deel_key
|
||
AND km2.ins_srtkenmerk_key = 54)
|
||
AS mobielnummer
|
||
FROM (SELECT d.ins_deel_key,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving AS object,
|
||
ud.fac_usrdata_omschr AS status_object,
|
||
d.ins_alg_ruimte_type,
|
||
d.ins_alg_ruimte_key
|
||
FROM ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_v_srtdeel_kenmerk_keys dkm,
|
||
ins_kenmerk km,
|
||
ins_v_aanwezigkenmerkdeel akmd,
|
||
fac_usrdata ud
|
||
WHERE dkm.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND dkm.ins_kenmerk_key = km.ins_kenmerk_key
|
||
AND akmd.ins_deel_key = d.ins_deel_key
|
||
AND akmd.ins_kenmerk_key = km.ins_kenmerk_key
|
||
AND ud.fac_usrdata_key =
|
||
fac.safe_to_number (akmd.ins_kenmerkdeel_waarde)
|
||
AND km.ins_srtkenmerk_key = 27 -- Kenmerksoort 'Status'
|
||
AND fac.safe_to_number (akmd.ins_kenmerkdeel_waarde) IN
|
||
(721, 722, 723) -- Statussen 'Komt retour', 'Vraag staat uit bij vestiging' en 'Vacature' Kenmerksoort 'Status'
|
||
AND d.ins_alg_ruimte_type = 'A'
|
||
AND d.ins_deel_verwijder IS NULL) x
|
||
UNION ALL
|
||
SELECT ins_deel_key,
|
||
ins_srtdeel_omschrijving,
|
||
object,
|
||
status_object,
|
||
ins_alg_ruimte_key AS prs_perslid_key,
|
||
(SELECT prs_perslid_naam
|
||
|| DECODE (prs_perslid_voorletters,
|
||
NULL, '',
|
||
', ' || prs_perslid_voorletters)
|
||
|| DECODE (prs_perslid_tussenvoegsel,
|
||
NULL, '',
|
||
' ' || prs_perslid_tussenvoegsel)
|
||
|| DECODE (prs_perslid_voornaam,
|
||
NULL, '',
|
||
' (' || prs_perslid_voornaam || ')')
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_key = ins_alg_ruimte_key)
|
||
AS prs_perslid_naam_full,
|
||
NULL AS prs_afdeling_key,
|
||
NULL AS prs_afdeling_naam,
|
||
(SELECT prs_perslid_einddatum
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_key = ins_alg_ruimte_key)
|
||
AS prs_perslid_einddatum,
|
||
DECODE (
|
||
(SELECT DISTINCT MAX (vm.prs_perslid_email)
|
||
FROM prs_perslid vm, prs_perslid prs_obj
|
||
WHERE vm.prs_srtperslid_key IN (10205, 24866) --Srtperslid_key van 'Vestigingsmanager' en 'Sr vestigingsmanager'
|
||
AND vm.prs_afdeling_key = prs_obj.prs_afdeling_key
|
||
AND prs_obj.prs_perslid_key = x.ins_alg_ruimte_key
|
||
AND vm.prs_perslid_verwijder IS NULL),
|
||
NULL,
|
||
9541, -- prs_perslid_key van persoon SSC Facilitaire Zaken, met emailadres facilitair@medux.nl.
|
||
(SELECT DISTINCT MAX (vm.prs_perslid_key)
|
||
FROM prs_perslid vm, prs_perslid prs_obj
|
||
WHERE vm.prs_srtperslid_key IN (10205, 24866) --Srtperslid_key van 'Vestigingsmanager' en 'Sr vestigingsmanager'
|
||
AND vm.prs_afdeling_key = prs_obj.prs_afdeling_key
|
||
AND prs_obj.prs_perslid_key = x.ins_alg_ruimte_key
|
||
AND vm.prs_perslid_verwijder IS NULL))
|
||
AS vm,
|
||
DECODE (
|
||
(SELECT DISTINCT MAX (vm.prs_perslid_email)
|
||
FROM prs_perslid vm, prs_perslid prs_obj
|
||
WHERE vm.prs_srtperslid_key IN (10205, 24866) --Srtperslid_key van 'Vestigingsmanager' en 'Sr vestigingsmanager'
|
||
AND vm.prs_afdeling_key = prs_obj.prs_afdeling_key
|
||
AND prs_obj.prs_perslid_key = x.ins_alg_ruimte_key
|
||
AND vm.prs_perslid_verwijder IS NULL),
|
||
NULL,
|
||
'facilitair@medux.nl', -- prs_perslid_key van persoon SSC Facilitaire Zaken, met emailadres facilitair@medux.nl.
|
||
(SELECT DISTINCT MAX (vm.prs_perslid_key)
|
||
FROM prs_perslid vm, prs_perslid prs_obj
|
||
WHERE vm.prs_srtperslid_key IN (10205, 24866) --Srtperslid_key van 'Vestigingsmanager' en 'Sr vestigingsmanager'
|
||
AND vm.prs_afdeling_key = prs_obj.prs_afdeling_key
|
||
AND prs_obj.prs_perslid_key = x.ins_alg_ruimte_key
|
||
AND vm.prs_perslid_verwijder IS NULL))
|
||
AS vm_email,
|
||
(SELECT ins_kenmerkdeel_waarde
|
||
FROM ins_v_srtdeel_kenmerkdeel kmd, ins_kenmerk km2
|
||
WHERE km2.ins_kenmerk_key = kmd.ins_kenmerk_key
|
||
AND kmd.ins_deel_key = x.ins_deel_key
|
||
AND km2.ins_srtkenmerk_key = 23)
|
||
AS merk,
|
||
(SELECT ins_kenmerkdeel_waarde
|
||
FROM ins_v_srtdeel_kenmerkdeel kmd, ins_kenmerk km2
|
||
WHERE km2.ins_kenmerk_key = kmd.ins_kenmerk_key
|
||
AND kmd.ins_deel_key = x.ins_deel_key
|
||
AND km2.ins_srtkenmerk_key = 28)
|
||
AS TYPE,
|
||
(SELECT ins_kenmerkdeel_waarde
|
||
FROM ins_v_srtdeel_kenmerkdeel kmd, ins_kenmerk km2
|
||
WHERE km2.ins_kenmerk_key = kmd.ins_kenmerk_key
|
||
AND kmd.ins_deel_key = x.ins_deel_key
|
||
AND km2.ins_srtkenmerk_key = 26)
|
||
AS serienummer,
|
||
(SELECT ins_kenmerkdeel_waarde
|
||
FROM ins_v_srtdeel_kenmerkdeel kmd, ins_kenmerk km2
|
||
WHERE km2.ins_kenmerk_key = kmd.ins_kenmerk_key
|
||
AND kmd.ins_deel_key = x.ins_deel_key
|
||
AND km2.ins_srtkenmerk_key = 54)
|
||
AS mobielnummer
|
||
FROM (SELECT d.ins_deel_key,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving AS object,
|
||
ud.fac_usrdata_omschr AS status_object,
|
||
d.ins_alg_ruimte_type,
|
||
d.ins_alg_ruimte_key
|
||
FROM ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_v_srtdeel_kenmerk_keys dkm,
|
||
ins_kenmerk km,
|
||
ins_v_aanwezigkenmerkdeel akmd,
|
||
fac_usrdata ud
|
||
WHERE dkm.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND dkm.ins_kenmerk_key = km.ins_kenmerk_key
|
||
AND akmd.ins_deel_key = d.ins_deel_key
|
||
AND akmd.ins_kenmerk_key = km.ins_kenmerk_key
|
||
AND ud.fac_usrdata_key =
|
||
fac.safe_to_number (akmd.ins_kenmerkdeel_waarde)
|
||
AND km.ins_srtkenmerk_key = 27 -- Kenmerksoort 'Status'
|
||
AND (fac.safe_to_number (akmd.ins_kenmerkdeel_waarde) IN
|
||
(721, 722, 723) -- Statussen 'Komt retour', 'Vraag staat uit bij vestiging' en 'Vacature' Kenmerksoort 'Status'
|
||
OR (fac.safe_to_number (akmd.ins_kenmerkdeel_waarde) IN --Door deze OR worden ook de objeten getoond die status Gekoppeld hebben, terwijl de persoon inmiddels niet meer in dienst is (prs_perslid_verwijder not null)
|
||
(221) -- Status 'Gekoppeld'
|
||
AND (SELECT prs_perslid_verwijder
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_key = d.ins_alg_ruimte_key) IS NOT NULL))
|
||
AND d.ins_alg_ruimte_type = 'P'
|
||
AND d.ins_deel_verwijder IS NULL) x;
|
||
|
||
CREATE OR REPLACE VIEW mdux_v_noti_bedrijfshulp
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile,
|
||
xsender
|
||
)
|
||
AS
|
||
SELECT 'CUST07',
|
||
NULL,
|
||
extra_key,
|
||
'Verzoek informatie bedrijfshulpmiddelen',
|
||
(SELECT MAX (fac_usrrap_key)
|
||
FROM fac_usrrap
|
||
WHERE UPPER (fac_usrrap_view_name) = 'MDUX_V_RAP_BEDRIJFSHULP')
|
||
rapportnr,
|
||
extra_key,
|
||
vm_email,
|
||
NULL,
|
||
'facilitair@medux.nl'
|
||
FROM ( SELECT rap.extra_key, rap.vm_email
|
||
FROM mdux_v_rap_bedrijfshulp rap
|
||
GROUP BY rap.extra_key, rap.vm_email);
|
||
|
||
------ 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
|