1675 lines
72 KiB
SQL
1675 lines
72 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific sql statements for the FACILITOR database
|
|
--
|
|
--
|
|
--
|
|
--
|
|
--
|
|
|
|
DEFINE thisfile = 'PROR.SQL'
|
|
DEFINE dbuser = 'PROR'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
---------------------------------------
|
|
PROMPT &fcltcusttxt
|
|
---------------------------------------
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
CREATE OR REPLACE PACKAGE PROR
|
|
AS
|
|
|
|
PROCEDURE add_xml_row (p_bestand IN VARCHAR2,
|
|
p_regel IN VARCHAR2);
|
|
|
|
PROCEDURE add_xml_element (p_bestand IN VARCHAR2,
|
|
p_tag IN VARCHAR2,
|
|
p_value IN VARCHAR2);
|
|
|
|
PROCEDURE inactivate_prs;
|
|
|
|
|
|
|
|
|
|
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY PROR
|
|
AS
|
|
|
|
PROCEDURE add_xml_row (
|
|
p_bestand IN VARCHAR2,
|
|
p_regel IN VARCHAR2)
|
|
AS
|
|
v_index NUMBER;
|
|
BEGIN
|
|
SELECT COALESCE( MAX(fac_rapport_volgnr), 0) + 1
|
|
INTO v_index
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node = p_bestand;
|
|
|
|
INSERT INTO fac_rapport (
|
|
fac_rapport_node,
|
|
fac_rapport_volgnr,
|
|
fac_rapport_regel)
|
|
VALUES (p_bestand,
|
|
v_index,
|
|
p_regel);
|
|
END;
|
|
|
|
PROCEDURE add_xml_element (
|
|
p_bestand IN VARCHAR2,
|
|
p_tag IN VARCHAR2,
|
|
p_value IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
pror.add_xml_row(p_bestand,
|
|
'<' || p_tag || '>'
|
|
|| xml.char_to_html(p_value)
|
|
|| '</' || p_tag || '>');
|
|
END;
|
|
|
|
PROCEDURE inactivate_prs
|
|
AS
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count NUMBER (10);
|
|
v_perslid_naam VARCHAR (100);
|
|
v_perslid_nr VARCHAR (30);
|
|
|
|
--- Als een persoon 12 maanden niet meer heeft ingelogd verwijderen we deze
|
|
CURSOR prs_del IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_oslogin
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE p.prs_perslid_login <
|
|
TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm')
|
|
GROUP BY p.prs_perslid_key, p.prs_perslid_oslogin;
|
|
BEGIN
|
|
FOR rec IN prs_del
|
|
LOOP
|
|
BEGIN
|
|
v_errormsg := 'Verwijderen van de persoon is NIET gelukt';
|
|
v_errorhint :=
|
|
'Heeft de persoon met prs_perslid_key '
|
|
|| TO_CHAR (rec.prs_perslid_key)
|
|
|| ' historie?';
|
|
|
|
SELECT prs_perslid_naam_full, prs_perslid_nr
|
|
INTO v_perslid_naam, v_perslid_nr
|
|
FROM prs_perslid p, prs_v_perslid_fullnames pf
|
|
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
|
AND p.prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
-- *** Budgethouderschap ***
|
|
-- Voor hoeveel kostenplaatsen is deze persoon budgethouder?
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_kostenplaats
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
IF (v_count > 0)
|
|
THEN
|
|
UPDATE prs_kostenplaats
|
|
SET prs_perslid_key = NULL
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
fac.writelog (
|
|
'inact_prs',
|
|
'I',
|
|
'Budgethouderschap van te verwijderen persoon ('
|
|
|| v_count
|
|
|| ' stuks) vervallen.',
|
|
'Naam/persoonsnr: '
|
|
|| v_perslid_naam
|
|
|| '/'
|
|
|| v_perslid_nr);
|
|
END IF;
|
|
|
|
-- *** Vervangers ***
|
|
-- koppelingen met vervangers dienen ook verwijderd te worden
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_collega
|
|
WHERE prs_perslid_key = rec.prs_perslid_key
|
|
OR prs_perslid_key_alt = rec.prs_perslid_key;
|
|
|
|
IF (v_count > 0)
|
|
THEN
|
|
DELETE FROM prs_collega
|
|
WHERE prs_perslid_key = rec.prs_perslid_key
|
|
OR prs_perslid_key_alt = rec.prs_perslid_key;
|
|
|
|
fac.writelog (
|
|
'inact_prs',
|
|
'I',
|
|
'Te verwijderen persoon heeft vervanger(s). Koppeling(en) verwijderd.',
|
|
'Naam/persoonsnr: '
|
|
|| v_perslid_naam
|
|
|| '/'
|
|
|| v_perslid_nr);
|
|
END IF;
|
|
|
|
-- *** werkplekken ***
|
|
|
|
DELETE prs_perslidwerkplek
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
-- *** Verplichtingen ***
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_v_verplichting_refcheck vp
|
|
WHERE vp.prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
IF v_count = 0
|
|
THEN
|
|
-- Persoon heeft geen enkele (actuele of historische) verplichting
|
|
v_errorhint :=
|
|
'Verwijderen van persoon met key '
|
|
|| TO_CHAR (rec.prs_perslid_key);
|
|
|
|
-- Referenties in tabellen naar deze pers_perslid_key moeten eerst verwijderd worden.
|
|
-- Door cascade verwijderen van deze record onstaan audits op die tabellen die audit tracking hebben.
|
|
-- Daardoor onstaan "ORxA-04091:table VLKC.FAC_AUDIT is mutating, trigger/function may not see it" foutmeldingen
|
|
-- op de delete van de prs_perslid_key uit de prs_perslid tabel.
|
|
-- De tabellen prs_kostenplaats, prs_kostenplaatsgrp, prs_perslidkostenplaats en fac_gebruikersgroep hebben een prs_perslid_key referentie en audit tracking.
|
|
DELETE FROM prs_kostenplaats
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
DELETE FROM prs_kostenplaatsgrp
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
DELETE FROM prs_perslidkostenplaats
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
DELETE FROM fac_gebruikersgroep
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
DELETE FROM prs_perslid
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
fac.writelog (
|
|
'inact_prs',
|
|
'I',
|
|
'Persoon verwijderd.',
|
|
'Achternaam/persoonsnr: '
|
|
|| v_perslid_naam
|
|
|| '/'
|
|
|| v_perslid_nr);
|
|
ELSE
|
|
-- Controleer of er ACTUELE verplichtingen zijn
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM prs_v_verplichting_keys vp
|
|
WHERE vp.prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
IF v_count > 0
|
|
THEN
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_naam =
|
|
SUBSTR ('INACTIEF:' || prs_perslid_naam,
|
|
1,
|
|
60),
|
|
prs_perslid_oslogin = NULL,
|
|
prs_perslid_oslogin2 = NULL
|
|
WHERE prs_perslid_key = rec.prs_perslid_key
|
|
AND prs_perslid_naam NOT LIKE 'INACTIEF:%';
|
|
|
|
fac.writelog (
|
|
'inact_prs',
|
|
'I',
|
|
'Persoon als INACTIEF gemarkeerd of was al INACTIEF gemarkeerd.',
|
|
'Achternaam/persoonsnr: '
|
|
|| v_perslid_naam
|
|
|| '/'
|
|
|| v_perslid_nr);
|
|
ELSE
|
|
BEGIN
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_verwijder = SYSDATE
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
|
|
fac.writelog (
|
|
'inact_prs',
|
|
'I',
|
|
'Persoon ge?ctiveerd.',
|
|
'Achternaam/persoonsnr: '
|
|
|| v_perslid_naam
|
|
|| '/'
|
|
|| v_perslid_nr);
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
-- Kennelijk heeft de persoon toch ernstige verplichtingen
|
|
v_errorhint :=
|
|
'Persoon heeft nog (max. '
|
|
|| TO_CHAR (v_count)
|
|
|| ') verplichtingen. Naam/persoonsnr: '
|
|
|| v_perslid_naam
|
|
|| '/'
|
|
|| v_perslid_nr;
|
|
fac.writelog (
|
|
'inact_prs',
|
|
'I',
|
|
'Inactiveren persoon is niet gelukt',
|
|
v_errorhint);
|
|
END;
|
|
END IF;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
'(ORACLE error '
|
|
|| oracle_err_num
|
|
|| '/'
|
|
|| oracle_err_mes
|
|
|| ')';
|
|
fac.writelog ('inact_prs',
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
END;
|
|
/
|
|
|
|
-- IMPORT FUNCTIES
|
|
|
|
CREATE OR REPLACE PROCEDURE pror_import_persafdeling(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c1 is
|
|
SELECT fac_imp_csv_col03 prs_voornaam,
|
|
fac_imp_csv_col05 prs_tussenvoegsel,
|
|
fac_imp_csv_col06 prs_achternaam,
|
|
fac_imp_csv_col08 prs_email,
|
|
fac_imp_csv_col01 prs_perslid_nr,
|
|
fac_imp_csv_col07 prs_telefoon,
|
|
fac_imp_csv_col09 prs_afd1_code,
|
|
fac_imp_csv_col10 prs_afdeling1,
|
|
fac_imp_csv_col11 prs_afd2_code,
|
|
fac_imp_csv_col12 prs_afdeling2,
|
|
fac_imp_csv_col13 prs_afd3_code,
|
|
fac_imp_csv_col14 prs_afdeling3,
|
|
fac_imp_csv_col15 prs_afd4_code,
|
|
fac_imp_csv_col16 prs_afdeling4,
|
|
fac_imp_csv_col17 prs_afd5_code,
|
|
fac_imp_csv_col18 prs_afdeling5,
|
|
fac_imp_csv_col19 prs_afd6_code,
|
|
fac_imp_csv_col20 prs_afdeling6,
|
|
fac_imp_csv_col21 prs_afd7_code,
|
|
fac_imp_csv_col22 prs_afdeling7,
|
|
fac_imp_csv_col23 prs_afd8_code,
|
|
fac_imp_csv_col24 prs_afdeling8
|
|
FROM fac_imp_csv
|
|
WHERE fac_import_key=p_import_key
|
|
ORDER BY fac_imp_csv_key;
|
|
|
|
v_bedrijf_naam VARCHAR2(60);
|
|
v_afd_count NUMBER;
|
|
v_afdeling_naam_parent VARCHAR2(15);
|
|
v_afdeling_naam VARCHAR2(15);
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count NUMBER;
|
|
BEGIN
|
|
v_bedrijf_naam:='PRORAIL';
|
|
v_afd_count:=-1;
|
|
v_count:=0;
|
|
|
|
DELETE FROM fac_imp_perslid;
|
|
DELETE FROM fac_imp_organisatie;
|
|
|
|
-- Eerst de csv inlezen naar standaard csv imp tabel
|
|
fac_import_genericcsv(p_import_key);
|
|
FOR rec in C1
|
|
LOOP
|
|
-- Afdeling1 is het bedrijf prorail
|
|
IF v_count>0
|
|
THEN
|
|
|
|
IF rec.prs_afdeling2 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd2_code;
|
|
v_afdeling_naam_parent:=NULL;
|
|
v_afdeling_naam :=rec.prs_afd2_code;
|
|
INSERT INTO fac_imp_organisatie( prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling2);
|
|
END IF;
|
|
IF rec.prs_afdeling3 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd3_code;
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :=rec.prs_afd3_code;
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling3);
|
|
END IF;
|
|
IF rec.prs_afdeling4 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd4_code;
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :=rec.prs_afd4_code;
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling4);
|
|
END IF;
|
|
IF rec.prs_afdeling5 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd5_code;
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :=rec.prs_afd5_code;
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling5);
|
|
END IF;
|
|
IF rec.prs_afdeling6 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd6_code;
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :=rec.prs_afd6_code;
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling6);
|
|
END IF;
|
|
IF rec.prs_afdeling7 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd7_code;
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :=rec.prs_afd7_code;
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling7);
|
|
END IF;
|
|
IF rec.prs_afdeling8 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd8_code;
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :=rec.prs_afd8_code;
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling8);
|
|
END IF;
|
|
/* afdeling 9 is gelijk aan de laatste afdeling.
|
|
IF rec.prs_afdeling9 IS NOT NULL
|
|
THEN
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :='9_'||SUBSTR(rec.prs_afdeling9,13);
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling9);
|
|
END IF;
|
|
*/
|
|
|
|
INSERT INTO fac_imp_perslid(fac_import_key,
|
|
prs_afdeling_naam,
|
|
prs_perslid_voornaam,
|
|
prs_perslid_tussenvoegsel,
|
|
prs_perslid_naam,
|
|
prs_perslid_email,
|
|
prs_perslid_telefoonnr,
|
|
prs_srtperslid_omschrijving,
|
|
prs_perslid_oslogin,
|
|
prs_kenmerk1)
|
|
VALUES(p_import_key,
|
|
v_afdeling_naam,
|
|
rec.prs_achternaam,
|
|
rec.prs_tussenvoegsel,
|
|
rec.prs_voornaam,
|
|
rec.prs_email,
|
|
rec.prs_telefoon,
|
|
'Onbekend',
|
|
rec.prs_email,
|
|
'1000=1');
|
|
END IF;
|
|
v_count:=v_count+1;
|
|
END LOOP;
|
|
|
|
EXCEPTION
|
|
|
|
WHEN OTHERS
|
|
THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE pror_update_persafdeling(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR p_del
|
|
IS
|
|
select *
|
|
from prs_perslid p,
|
|
prs_kenmerklink pk
|
|
WHERE pk.prs_link_key = p.prs_perslid_key
|
|
AND prs_kenmerk_key=1000
|
|
AND p.prs_perslid_email NOT IN (select prs_perslid_email
|
|
from fac_imp_perslid);
|
|
v_now DATE;
|
|
BEGIN
|
|
--SELECT SYSDATE into v_now FROM dual;
|
|
fac_update_organisatie(p_import_key);
|
|
prs.update_perslid (p_import_key, 'EMAIL', 'A', 1);
|
|
|
|
FOR rec IN p_del
|
|
LOOP
|
|
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
|
END LOOP;
|
|
END;
|
|
/
|
|
-- END IMPORT persafdeling
|
|
|
|
|
|
-- IMPORT AFASONLINE
|
|
CREATE OR REPLACE PROCEDURE pror_import_afasonline(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR c1 is
|
|
SELECT fac_imp_csv_col03 prs_voornaam,
|
|
fac_imp_csv_col05 prs_tussenvoegsel,
|
|
fac_imp_csv_col06 prs_achternaam,
|
|
fac_imp_csv_col08 prs_email,
|
|
fac_imp_csv_col01 prs_perslid_nr,
|
|
fac_imp_csv_col07 prs_telefoon,
|
|
fac_imp_csv_col09 prs_afd1_code,
|
|
fac_imp_csv_col10 prs_afdeling1,
|
|
fac_imp_csv_col11 prs_afd2_code,
|
|
fac_imp_csv_col12 prs_afdeling2,
|
|
fac_imp_csv_col13 prs_afd3_code,
|
|
fac_imp_csv_col14 prs_afdeling3,
|
|
fac_imp_csv_col15 prs_afd4_code,
|
|
fac_imp_csv_col16 prs_afdeling4,
|
|
fac_imp_csv_col17 prs_afd5_code,
|
|
fac_imp_csv_col18 prs_afdeling5,
|
|
fac_imp_csv_col19 prs_afd6_code,
|
|
fac_imp_csv_col20 prs_afdeling6,
|
|
fac_imp_csv_col21 prs_afd7_code,
|
|
fac_imp_csv_col22 prs_afdeling7,
|
|
fac_imp_csv_col23 prs_afd8_code,
|
|
fac_imp_csv_col24 prs_afdeling8
|
|
FROM fac_imp_csv
|
|
WHERE fac_import_key=p_import_key
|
|
ORDER BY fac_imp_csv_key;
|
|
|
|
v_bedrijf_naam VARCHAR2(60);
|
|
v_afd_count NUMBER;
|
|
v_afdeling_naam_parent VARCHAR2(15);
|
|
v_afdeling_naam VARCHAR2(15);
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count NUMBER;
|
|
BEGIN
|
|
v_bedrijf_naam:='PRORAIL';
|
|
v_afd_count:=-1;
|
|
v_count:=0;
|
|
|
|
DELETE FROM fac_imp_perslid;
|
|
DELETE FROM fac_imp_organisatie;
|
|
|
|
-- Eerst de csv inlezen naar standaard csv imp tabel
|
|
fac_import_genericcsv(p_import_key);
|
|
FOR rec in C1
|
|
LOOP
|
|
-- Afdeling1 is het bedrijf prorail
|
|
IF v_count>0
|
|
THEN
|
|
|
|
IF rec.prs_afdeling2 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd2_code;
|
|
v_afdeling_naam_parent:=NULL;
|
|
v_afdeling_naam :=rec.prs_afd2_code;
|
|
INSERT INTO fac_imp_organisatie( prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling2);
|
|
END IF;
|
|
IF rec.prs_afdeling3 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd3_code;
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :=rec.prs_afd3_code;
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling3);
|
|
END IF;
|
|
IF rec.prs_afdeling4 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd4_code;
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :=rec.prs_afd4_code;
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling4);
|
|
END IF;
|
|
IF rec.prs_afdeling5 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd5_code;
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :=rec.prs_afd5_code;
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling5);
|
|
END IF;
|
|
IF rec.prs_afdeling6 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd6_code;
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :=rec.prs_afd6_code;
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling6);
|
|
END IF;
|
|
IF rec.prs_afdeling7 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd7_code;
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :=rec.prs_afd7_code;
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling7);
|
|
END IF;
|
|
IF rec.prs_afdeling8 IS NOT NULL
|
|
THEN
|
|
v_aanduiding:='Voegen afdeling '||rec.prs_afd8_code;
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :=rec.prs_afd8_code;
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling8);
|
|
END IF;
|
|
/* afdeling 9 is gelijk aan de laatste afdeling.
|
|
IF rec.prs_afdeling9 IS NOT NULL
|
|
THEN
|
|
v_afdeling_naam_parent:=v_afdeling_naam;
|
|
v_afdeling_naam :='9_'||SUBSTR(rec.prs_afdeling9,13);
|
|
INSERT INTO fac_imp_organisatie (
|
|
prs_bedrijf_naam,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_naam_parent,
|
|
prs_afdeling_omschrijving)
|
|
VALUES (
|
|
v_bedrijf_naam,
|
|
v_afdeling_naam,
|
|
v_afdeling_naam_parent,
|
|
rec.prs_afdeling9);
|
|
END IF;
|
|
*/
|
|
|
|
INSERT INTO fac_imp_perslid(fac_import_key,
|
|
prs_afdeling_naam,
|
|
prs_perslid_voornaam,
|
|
prs_perslid_tussenvoegsel,
|
|
prs_perslid_naam,
|
|
prs_perslid_email,
|
|
prs_perslid_telefoonnr,
|
|
prs_srtperslid_omschrijving,
|
|
prs_perslid_oslogin,
|
|
prs_kenmerk1)
|
|
VALUES(p_import_key,
|
|
v_afdeling_naam,
|
|
rec.prs_achternaam,
|
|
rec.prs_tussenvoegsel,
|
|
rec.prs_voornaam,
|
|
rec.prs_email,
|
|
rec.prs_telefoon,
|
|
'Onbekend',
|
|
rec.prs_email,
|
|
'1000=1');
|
|
END IF;
|
|
v_count:=v_count+1;
|
|
END LOOP;
|
|
|
|
EXCEPTION
|
|
|
|
WHEN OTHERS
|
|
THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE pror_update_afasonline(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR p_del
|
|
IS
|
|
select *
|
|
from prs_perslid p,
|
|
prs_kenmerklink pk
|
|
WHERE pk.prs_link_key = p.prs_perslid_key
|
|
AND prs_kenmerk_key=1000
|
|
AND p.prs_perslid_email NOT IN (select prs_perslid_email
|
|
from fac_imp_perslid);
|
|
v_now DATE;
|
|
BEGIN
|
|
--SELECT SYSDATE into v_now FROM dual;
|
|
fac_update_organisatie(p_import_key);
|
|
prs.update_perslid (p_import_key, 'EMAIL', 'A', 1);
|
|
|
|
FOR rec IN p_del
|
|
LOOP
|
|
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
|
END LOOP;
|
|
END;
|
|
/
|
|
-- END IMPORT persafdeling
|
|
|
|
|
|
-- Import objecten lijst waarbij omschrijving gevult dowrt met de locatie gegevens
|
|
|
|
CREATE OR REPLACE PROCEDURE pror_import_objecten(p_import_key IN NUMBER)
|
|
AS
|
|
|
|
BEGIN
|
|
DELETE FROM fac_imp_ins;
|
|
fac_import_ins(p_import_key);
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE pror_update_objecten(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR ins
|
|
IS
|
|
SELECT * FROM fac_imp_ins;
|
|
|
|
BEGIN
|
|
fac_update_ins(p_import_key);
|
|
FOR rec IN ins
|
|
LOOP
|
|
UPDATE ins_deel i
|
|
SET i.ins_deel_opmerking=(SELECT al.alg_locatie_code||'-'||a.alg_plaatsaanduiding||' ('||a.alg_ruimte_omschrijving||')'
|
|
FROM alg_v_allonrgoed_gegevens a, alg_locatie al
|
|
WHERE a.alg_locatie_key = al.alg_locatie_key
|
|
AND a.alg_ruimte_key=i.ins_alg_ruimte_key)
|
|
WHERE i.ins_deel_omschrijving=rec.ins_deel_omschrijving;
|
|
END LOOP;
|
|
|
|
END;
|
|
/
|
|
|
|
-- END IMPORT ins_deel
|
|
|
|
---
|
|
-- VIEW van alle reserveringen die catering hebben,
|
|
--
|
|
|
|
CREATE OR REPLACE VIEW pror_v_res_cat
|
|
AS
|
|
SELECT * FROM (
|
|
SELECT DISTINCT(rrr.res_rsv_ruimte_key) rrr_key,
|
|
rrr.res_reservering_key reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr,
|
|
rrr.res_rsv_ruimte_aanmaak aanmk_datum,
|
|
(SELECT MAX (fac_tracking_datum)
|
|
FROM fac_tracking
|
|
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
|
|
AND fac_srtnotificatie_key = 117) last_upd,
|
|
rrr.res_rsv_ruimte_externsyncdate last_export,
|
|
rrr.res_rsv_ruimte_verwijder verw_datum,
|
|
COALESCE(rer.res_ruimte_friendlyname,alg.alg_ruimte_nr) ruimte_nr,
|
|
(SELECT prs_perslid_externid
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
|
|
(SELECT DISTINCT lev.PRS_BEDRIJF_EMAIL
|
|
FROM res_rsv_artikel rar,
|
|
res_artikel art,
|
|
res_disc_params dsp,
|
|
prs_bedrijf lev
|
|
WHERE rar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND art.res_artikel_key = rar.res_artikel_key
|
|
AND dsp.res_ins_discipline_key =
|
|
art.res_discipline_key
|
|
AND lev.prs_bedrijf_key = dsp.prs_bedrijf_key) cateraar,
|
|
rrr.RES_RSV_RUIMTE_VAN datum_van,
|
|
rrr.RES_RSV_RUIMTE_TOT datum_tot,
|
|
rrr.res_rsv_ruimte_omschrijving oms,
|
|
rrr.res_rsv_ruimte_bezoekers aantal,
|
|
alg.alg_locatie_code locatie_code,
|
|
'ruimte' soort,
|
|
ros.res_opstelling_omschrijving opstelling,
|
|
rrr.res_status_fo_key fo_status,
|
|
rrr.res_rsv_ruimte_dirtlevel dirtlevel
|
|
FROM res_rsv_ruimte rrr,
|
|
res_rsv_artikel rra,
|
|
res_ruimte_opstelling rop,
|
|
res_opstelling ros,
|
|
res_ruimte rer,
|
|
res_alg_ruimte rarm,
|
|
alg_v_ruimte_gegevens_all alg
|
|
WHERE rrr.res_status_bo_key = 2
|
|
AND rra.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY
|
|
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
|
|
AND ros.res_opstelling_key = rop.res_opstelling_key
|
|
AND rer.res_ruimte_key = rop.res_ruimte_key
|
|
AND rarm.res_ruimte_key = rer.res_ruimte_key
|
|
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
|
|
UNION ALL
|
|
SELECT DISTINCT(rrr.res_rsv_ruimte_key) rrr_key,
|
|
rrr.res_reservering_key reservering_key,
|
|
rrr.res_rsv_ruimte_volgnr,
|
|
rrr.res_rsv_ruimte_aanmaak aanmk_datum,
|
|
(SELECT MAX (fac_tracking_datum)
|
|
FROM fac_tracking
|
|
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
|
|
AND fac_srtnotificatie_key = 117) last_upd,
|
|
rrr.res_rsv_ruimte_externsyncdate last_export,
|
|
rrr.res_rsv_ruimte_verwijder verw_datum,
|
|
alg.alg_ruimte_nr ruimte_nr,
|
|
(SELECT pa.PRS_PERSLID_EMAIL
|
|
FROM PRS_V_PERSLID_GEGEVENS pa
|
|
WHERE pa.prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
|
|
(SELECT DISTINCT lev.prs_bedrijf_email
|
|
FROM res_rsv_artikel rar,
|
|
res_artikel art,
|
|
res_disc_params dsp,
|
|
prs_bedrijf lev
|
|
WHERE rar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND art.res_artikel_key = rar.res_artikel_key
|
|
AND dsp.res_ins_discipline_key =
|
|
art.res_discipline_key
|
|
AND lev.prs_bedrijf_key = dsp.prs_bedrijf_key) cateraar,
|
|
rrr.RES_RSV_RUIMTE_VAN datum_van,
|
|
rrr.RES_RSV_RUIMTE_TOT datum_tot,
|
|
rrr.res_rsv_ruimte_omschrijving oms,
|
|
rrr.res_rsv_ruimte_bezoekers aantal,
|
|
alg.alg_locatie_code locatie_code,
|
|
'losse-catering' soort,
|
|
'N.V.T.' opstelling,
|
|
rrr.res_status_fo_key fo_status,
|
|
0 dirtlevel
|
|
FROM res_rsv_ruimte rrr,
|
|
res_rsv_artikel rra,
|
|
alg_v_ruimte_gegevens_all alg
|
|
WHERE rrr.res_status_fo_key = 2
|
|
AND rra.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY
|
|
AND alg.alg_ruimte_key = rrr.alg_ruimte_key
|
|
ORDER BY reservering_key)
|
|
WHERE aanmk_datum > SYSDATE-2/24
|
|
OR last_upd>aanmk_datum AND last_upd > SYSDATE-2/24;
|
|
|
|
|
|
---
|
|
-- View tbv alle veiligheidsmeldingen
|
|
-- Dez worden naar Provat geexporteerd/rapport wordt door provat aangeroepen
|
|
---
|
|
CREATE OR REPLACE VIEW pror_v_mld_provat
|
|
AS
|
|
SELECT m.mld_melding_key melding_key,
|
|
m.mld_melding_datum begin_datum,
|
|
(SELECT p.prs_perslid_naam||','|| p.prs_perslid_voornaam||' '||p.prs_perslid_tussenvoegsel FROM prs_perslid p WHERE p.prs_perslid_key=m.prs_perslid_key) contact,
|
|
md.ins_discipline_omschrijving Service,
|
|
ms.mld_stdmelding_omschrijving omschrijving,
|
|
(SELECT al.alg_locatie_omschrijving
|
|
FROM alg_locatie al
|
|
WHERE al.alg_locatie_key=m.mld_alg_locatie_key) ||'-'|| a.alg_gebouw_naam locatie,
|
|
(SELECT ins_discipline_omschrijving FROM mld_discipline md WHERE md.ins_discipline_key = m.mld_ins_discipline_key) assignee, --- DEZE MOET NOG WORDERN GEVULD.
|
|
'' type_request,
|
|
(SELECT ms.mld_statuses_omschrijving
|
|
FROM mld_statuses ms
|
|
WHERE ms.mld_statuses_key=m.mld_melding_status) mld_status,
|
|
'' kostenplaats,
|
|
m.mld_melding_onderwerp onderwerp,
|
|
(SELECT MAX (f.fac_tracking_datum)
|
|
FROM fac_tracking f
|
|
WHERE f.FAC_TRACKING_REFKEY=m.mld_melding_key
|
|
AND f.FAC_SRTNOTIFICATIE_KEY=55
|
|
AND f.FAC_TRACKING_DATUM>m.mld_melding_datum) mld_update,
|
|
(SELECT mk.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k
|
|
WHERE mk.MLD_melding_KEY=m.mld_melding_key
|
|
AND mk.mld_kenmerk_key=k.mld_kenmerk_key
|
|
AND UPPER(k.mld_kenmerk_omschrijving)='PROVATEXPORTFLAG') provat_flag,
|
|
(SELECT mk.mld_kenmerkmelding_waarde
|
|
FROM mld_kenmerkmelding mk,
|
|
mld_kenmerk k
|
|
WHERE mk.mld_melding_key=m.mld_melding_key
|
|
AND mk.mld_kenmerk_key=k.mld_kenmerk_key
|
|
AND UPPER(k.mld_kenmerk_omschrijving)='PROVATEXPORT') export_provat
|
|
FROM mld_melding m,
|
|
mld_stdmelding ms,
|
|
mld_discipline md,
|
|
alg_v_allonrgoed_gegevens a
|
|
WHERE m.mld_stdmelding_key=ms.mld_stdmelding_key
|
|
AND md.ins_discipline_key= ms.mld_ins_discipline_key
|
|
AND (UPPER(ms.mld_stdmelding_omschrijving)='INZET BHV OF ONGEVAL MELDEN'
|
|
OR UPPER(ms.mld_stdmelding_omschrijving)='ONVEILIGE SITUATIE MELDEN')
|
|
AND a.alg_locatie_key=m.mld_alg_locatie_key
|
|
AND a.alg_onroerendgoed_keys=m.mld_alg_onroerendgoed_keys
|
|
AND m.mld_melding_status IN (2,3,4,5,7);
|
|
|
|
|
|
---
|
|
-- View tbv alle bookmarks
|
|
-- Deze worden door BIOMNI via API uitgelezen
|
|
---
|
|
CREATE OR REPLACE VIEW pror_v_bkms_biomni
|
|
AS
|
|
SELECT 'https://pror.facilitor-test.nl/?u='||fac_bookmark_id||CHR(38)||'mld_defaultstdmelding='||ms.MLD_STDMELDING_KEY url,
|
|
ms.MLD_STDMELDING_OMSCHRIJVING
|
|
FROM fac_bookmark fb, mld_stdmelding ms
|
|
WHERE fb.FAC_BOOKMARK_NAAM='SSP/Biomni melding'
|
|
ORDER BY ms.MLD_STDMELDING_KEY;
|
|
|
|
---
|
|
-- View tbv alle melding status
|
|
-- Deze worden door BIOMNI via API uitgelezen
|
|
---
|
|
CREATE OR REPLACE VIEW pror_v_mld_biomni
|
|
AS
|
|
SELECT m.mld_melding_key mld_key,
|
|
id.ins_srtdiscipline_prefix||m.mld_melding_key mld_key_inclprefix,
|
|
COALESCE(m.mld_melding_onderwerp, ms.mld_stdmelding_omschrijving) omschrijving,
|
|
mst.mld_statuses_omschrijving,
|
|
m.mld_melding_datum aanvraag_datum,
|
|
p.prs_perslid_email email_aanvrager,
|
|
(SELECT a.mld_melding_note_omschrijving
|
|
FROM (SELECT mld_melding_note_omschrijving
|
|
FROM mld_melding_note
|
|
WHERE mld_melding_key=m.mld_melding_key
|
|
ORDER BY mld_melding_note_aanmaak desc) a
|
|
WHERE ROWNUM=1) notitie,
|
|
'https://pror.facilitor-test.nl/appl/mld/mld_melding.asp?urole=fe'||chr(38)||'mld_key='||m.mld_melding_key response_url
|
|
FROM mld_melding m,
|
|
mld_stdmelding ms,
|
|
mld_discipline md,
|
|
ins_srtdiscipline id,
|
|
mld_statuses mst,
|
|
prs_perslid p
|
|
WHERE p.prs_perslid_key=m.prs_perslid_key
|
|
AND ms.mld_stdmelding_key = m.mld_stdmelding_key
|
|
AND md.ins_discipline_key=ms.mld_ins_discipline_key
|
|
AND id.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
|
AND mst.mld_statuses_key=m.mld_melding_status
|
|
AND p.prs_perslid_email IS NOT NULL;
|
|
|
|
--
|
|
-- Looplijst Cateraar
|
|
--
|
|
CREATE OR REPLACE VIEW pror_v_cat_reserveringincl
|
|
(
|
|
key,
|
|
nummer,
|
|
res_omschrijving,
|
|
invoerdatum,
|
|
datum,
|
|
gastheer,
|
|
contact,
|
|
gastheer_email,
|
|
gastheer_telefoon,
|
|
contact_email,
|
|
contact_telefoon,
|
|
invoerder,
|
|
kostensoortgroep,
|
|
kostensoort,
|
|
kpn,
|
|
kpn_omschrijving,
|
|
kpn_extern,
|
|
fclt_3d_divisie_key,
|
|
divisie_naam,
|
|
divisie_omschrijving,
|
|
fclt_3d_afdeling_key,
|
|
afdeling_code,
|
|
afdeling_omschrijving,
|
|
regio_omschrijving,
|
|
district_omschijving,
|
|
fclt_3d_locatie_key,
|
|
locatie,
|
|
locatie_omschrijving,
|
|
locatie_plaats,
|
|
gebouw,
|
|
verdieping,
|
|
ruimte,
|
|
opstelling,
|
|
capaciteit,
|
|
no_show,
|
|
mandaat,
|
|
personeelsnr,
|
|
fclt_3d_discipline_key,
|
|
catalogus_key,
|
|
catalogus,
|
|
reserveerbare_ruimte,
|
|
bezoekers,
|
|
van,
|
|
tot,
|
|
duur,
|
|
status,
|
|
bostatus,
|
|
activiteit,
|
|
srtactiviteit_key,
|
|
activiteitsoort,
|
|
opmerking,
|
|
voorziening_discipline_key,
|
|
voorziening_type,
|
|
voorziening_catalogus,
|
|
leverancier,
|
|
voorziening_product_key,
|
|
voorziening_product,
|
|
voorziening_totaalprijs,
|
|
voorziening_totaalprijsex,
|
|
voorziening_van,
|
|
voorziening_tot,
|
|
voorziening_aantal,
|
|
voorziening_prijs
|
|
)
|
|
AS
|
|
SELECT rrr.res_rsv_ruimte_key,
|
|
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
|
rrr.res_rsv_ruimte_omschrijving,
|
|
COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van),
|
|
rrr.res_rsv_ruimte_van,
|
|
(SELECT prs_perslid_naam_full
|
|
FROM prs_v_perslid_fullnames_all pf
|
|
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
|
|
(SELECT prs_perslid_naam_full
|
|
FROM prs_v_perslid_fullnames_all pf
|
|
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
|
|
(SELECT ph.prs_perslid_email
|
|
FROM prs_perslid ph
|
|
WHERE ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
|
|
(SELECT ph.prs_perslid_telefoonnr
|
|
FROM prs_perslid ph
|
|
WHERE ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
|
|
(SELECT pc.prs_perslid_email
|
|
FROM prs_perslid pc
|
|
WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
|
|
(SELECT pc.prs_perslid_telefoonnr
|
|
FROM prs_perslid pc
|
|
WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
|
|
(SELECT pf.prs_perslid_naam_full
|
|
FROM fac_tracking tr, fac_srtnotificatie str, prs_v_perslid_fullnames_all pf
|
|
WHERE tr.prs_perslid_key = pf.prs_perslid_key
|
|
AND str.fac_srtnotificatie_code = 'RESNEW'
|
|
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
|
AND tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key),
|
|
(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 disc.prs_kostensoort_key
|
|
FROM res_discipline disc
|
|
WHERE disc.ins_discipline_key =
|
|
COALESCE (
|
|
voorz.ins_discipline_key,
|
|
(SELECT ins_discipline_key
|
|
FROM ins_tab_discipline d,
|
|
res_ruimte_opstelling ro,
|
|
res_ruimte rr
|
|
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rr.res_discipline_key = d.ins_discipline_key))))
|
|
kostensoortgroep,
|
|
(SELECT ks.prs_kostensoort_oms
|
|
FROM prs_kostensoort ks
|
|
WHERE ks.prs_kostensoort_key =
|
|
(SELECT disc.prs_kostensoort_key
|
|
FROM res_discipline disc
|
|
WHERE disc.ins_discipline_key =
|
|
COALESCE (
|
|
voorz.ins_discipline_key,
|
|
(SELECT ins_discipline_key
|
|
FROM ins_tab_discipline d,
|
|
res_ruimte_opstelling ro,
|
|
res_ruimte rr
|
|
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rr.res_discipline_key = d.ins_discipline_key))))
|
|
kostensoort,
|
|
k.prs_kostenplaats_nr,
|
|
k.prs_kostenplaats_omschrijving,
|
|
k.prs_kostenplaats_extern,
|
|
an.prs_afdeling_key,
|
|
an.prs_afdeling_naam,
|
|
an.prs_afdeling_omschrijving,
|
|
a.prs_afdeling_key,
|
|
a.prs_afdeling_naam,
|
|
a.prs_afdeling_omschrijving,
|
|
(SELECT rg.alg_regio_omschrijving
|
|
FROM alg_regio rg,
|
|
alg_district d,
|
|
alg_locatie l,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r
|
|
WHERE rg.alg_regio_key = d.alg_regio_key
|
|
AND d.alg_district_key = l.alg_district_key
|
|
AND l.alg_locatie_key = g.alg_locatie_key
|
|
AND g.alg_gebouw_key = v.alg_gebouw_key
|
|
AND v.alg_verdieping_key = r.alg_verdieping_key
|
|
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
|
(SELECT d.alg_district_omschrijving
|
|
FROM alg_district d,
|
|
alg_locatie l,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r
|
|
WHERE d.alg_district_key = l.alg_district_key
|
|
AND l.alg_locatie_key = g.alg_locatie_key
|
|
AND g.alg_gebouw_key = v.alg_gebouw_key
|
|
AND v.alg_verdieping_key = r.alg_verdieping_key
|
|
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
|
(SELECT l.alg_locatie_key
|
|
FROM alg_locatie l,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r
|
|
WHERE l.alg_locatie_key = g.alg_locatie_key
|
|
AND g.alg_gebouw_key = v.alg_gebouw_key
|
|
AND v.alg_verdieping_key = r.alg_verdieping_key
|
|
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
|
(SELECT alg_locatie_code
|
|
FROM alg_locatie l,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r
|
|
WHERE l.alg_locatie_key = g.alg_locatie_key
|
|
AND g.alg_gebouw_key = v.alg_gebouw_key
|
|
AND v.alg_verdieping_key = r.alg_verdieping_key
|
|
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
|
(SELECT alg_locatie_omschrijving
|
|
FROM alg_locatie l,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r
|
|
WHERE l.alg_locatie_key = g.alg_locatie_key
|
|
AND g.alg_gebouw_key = v.alg_gebouw_key
|
|
AND v.alg_verdieping_key = r.alg_verdieping_key
|
|
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
|
(SELECT alg_locatie_plaats
|
|
FROM alg_locatie l,
|
|
alg_gebouw g,
|
|
alg_verdieping v,
|
|
alg_ruimte r
|
|
WHERE l.alg_locatie_key = g.alg_locatie_key
|
|
AND g.alg_gebouw_key = v.alg_gebouw_key
|
|
AND v.alg_verdieping_key = r.alg_verdieping_key
|
|
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
|
(SELECT alg_gebouw_omschrijving||'('||alg_gebouw_code||')'
|
|
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
|
|
WHERE g.alg_gebouw_key = v.alg_gebouw_key
|
|
AND v.alg_verdieping_key = r.alg_verdieping_key
|
|
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
|
(SELECT alg_verdieping_code
|
|
FROM alg_verdieping v, alg_ruimte r
|
|
WHERE v.alg_verdieping_key = r.alg_verdieping_key
|
|
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
|
|
r2a.ruimte_nr,
|
|
r2a.opstelling,
|
|
r2a.capaciteit,
|
|
rrr.res_rsv_ruimte_noshow,
|
|
NVL ( (SELECT pr.fac_profiel_limiet
|
|
FROM fac_profiel pr
|
|
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0),
|
|
prs_perslid_nr,
|
|
COALESCE (
|
|
voorz.ins_discipline_key,
|
|
(SELECT ins_discipline_key
|
|
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
|
|
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rr.res_discipline_key = d.ins_discipline_key)),
|
|
(SELECT ins_discipline_key
|
|
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
|
|
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rr.res_discipline_key = d.ins_discipline_key),
|
|
(SELECT ins_discipline_omschrijving
|
|
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
|
|
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rr.res_discipline_key = d.ins_discipline_key),
|
|
DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
|
|
rrr.res_rsv_ruimte_bezoekers,
|
|
rrr.res_rsv_ruimte_van,
|
|
rrr.res_rsv_ruimte_tot,
|
|
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
|
|
(SELECT res_status_fo_omschrijving
|
|
FROM res_status_fo rs
|
|
WHERE rs.res_status_fo_key = rrr.res_status_fo_key),
|
|
(SELECT res_status_bo_omschrijving
|
|
FROM res_status_bo rs
|
|
WHERE rs.res_status_bo_key = rrr.res_status_bo_key),
|
|
ra.res_activiteit_omschrijving,
|
|
rsa.res_srtactiviteit_key,
|
|
rsa.res_srtactiviteit_omschrijving,
|
|
rrr.res_rsv_ruimte_opmerking,
|
|
voorz.ins_discipline_key,
|
|
voorz.vtype,
|
|
voorz.catalogus,
|
|
(SELECT prs_bedrijf_naam
|
|
FROM res_disc_params rdp, prs_bedrijf b
|
|
WHERE rdp.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND rdp.res_ins_discipline_key = voorz.ins_discipline_key),
|
|
voorz.product_key,
|
|
voorz.product,
|
|
voorz.totaalprijs,
|
|
voorz.totaalprijs_ex,
|
|
TO_CHAR (voorz.van, 'hh24:mi'),
|
|
TO_CHAR (voorz.tot, 'hh24:mi'),
|
|
voorz.aantal,
|
|
ROUND(voorz.prijs,2)
|
|
FROM res_v_aanwezigrsv_ruimte rrr,
|
|
res_activiteit ra,
|
|
res_srtactiviteit rsa,
|
|
res_reservering res,
|
|
prs_kostenplaats k,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
prs_afdeling an,
|
|
prs_v_afdeling_boom ab,
|
|
( SELECT res_rsv_ruimte_key,
|
|
MAX (o.res_opstelling_omschrijving) opstelling,
|
|
MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
|
|
MAX (ra.alg_ruimte_key) alg_ruimte_key,
|
|
MAX (rr.res_ruimte_nr) ruimte_nr
|
|
FROM res_rsv_ruimte r,
|
|
res_ruimte_opstelling ro,
|
|
res_opstelling o,
|
|
res_ruimte rr,
|
|
res_alg_ruimte ra
|
|
WHERE r.res_rsv_ruimte_verwijder IS NULL
|
|
AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = rr.res_ruimte_key
|
|
AND ro.res_opstelling_key = o.res_opstelling_key
|
|
AND rr.res_ruimte_key = ra.res_ruimte_key
|
|
GROUP BY res_rsv_ruimte_key
|
|
UNION ALL
|
|
SELECT res_rsv_ruimte_key,
|
|
'' opstelling,
|
|
NULL capaciteit,
|
|
rrr.alg_ruimte_key,
|
|
r.alg_ruimte_nr
|
|
FROM res_rsv_ruimte rrr, alg_ruimte r
|
|
WHERE rrr.alg_ruimte_key IS NOT NULL AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a,
|
|
(SELECT rrd.res_rsv_ruimte_key res_rsv_ruimte_key,
|
|
-rd.res_deel_key product_key,
|
|
rd.res_deel_omschrijving product,
|
|
DECODE (
|
|
rd.res_deel_prijs_vast,
|
|
1,
|
|
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs),
|
|
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
|
|
* 24
|
|
* NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs))
|
|
totaalprijs,
|
|
NULL totaalprijs_ex,
|
|
rrd.res_rsv_deel_van van,
|
|
rrd.res_rsv_deel_tot tot,
|
|
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 aantal,
|
|
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs) prijs,
|
|
c.ins_discipline_key ins_discipline_key,
|
|
c.ins_discipline_omschrijving catalogus,
|
|
'object' vtype
|
|
FROM res_v_aanwezigrsv_deel rrd,
|
|
res_deel rd,
|
|
ins_deel d,
|
|
ins_tab_discipline c
|
|
WHERE rrd.res_deel_key = rd.res_deel_key
|
|
AND d.ins_deel_key = rd.res_ins_deel_key
|
|
AND rrd.res_rsv_ruimte_key IS NOT NULL
|
|
AND c.ins_discipline_key = rd.res_discipline_key
|
|
UNION ALL
|
|
SELECT rra.res_rsv_ruimte_key res_rsv_ruimte_key,
|
|
ra.res_artikel_key product_key,
|
|
ra.res_artikel_omschrijving product,
|
|
NVL (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * res_artikel_prijs)
|
|
totaalprijs,
|
|
NVL (rra.res_rsv_artikel_prijs/(1+NVL(res_artikel_btw/100,0)), rra.res_rsv_artikel_aantal * res_artikel_prijs/(1+NVL(res_artikel_btw/100,0)))
|
|
totaalprijs_ex,
|
|
rra.res_rsv_artikel_levering van,
|
|
NULL tot,
|
|
rra.res_rsv_artikel_aantal aantal,
|
|
NVL (rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal, res_artikel_prijs)
|
|
prijs,
|
|
c.ins_discipline_key ins_discipline_key,
|
|
c.ins_discipline_omschrijving catalogus,
|
|
'consumable' vtype
|
|
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, ins_tab_discipline c
|
|
WHERE rra.res_artikel_key = ra.res_artikel_key
|
|
AND ra.res_discipline_key = c.ins_discipline_key) voorz
|
|
WHERE rrr.res_reservering_key = res.res_reservering_key
|
|
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
|
|
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
|
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
|
|
AND rrr.res_activiteit_key = ra.res_activiteit_key
|
|
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
|
|
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
|
AND ab.prs_afdeling_key1 = an.prs_afdeling_key
|
|
AND (rrr.res_ruimte_opstel_key IS NOT NULL OR voorz.res_rsv_ruimte_key IS NOT NULL)
|
|
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
|
|
|
|
|
|
|
|
|
|
--- EXPORTS
|
|
|
|
-- PROVAT EXPORT
|
|
-- De geexporteerde meldingen een export datum meegeven.
|
|
CREATE OR REPLACE PROCEDURE PROR_SELECT_PROVAT(p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
v_kenmerk_key NUMBER;
|
|
CURSOR c
|
|
IS
|
|
SELECT *
|
|
FROM pror_v_mld_provat
|
|
WHERE provat_flag IS NULL
|
|
OR (provat_flag='0' AND mld_update>TO_DATE(export_provat,'DD-MM-YYYY'));
|
|
BEGIN
|
|
|
|
FOR rec in c
|
|
LOOP
|
|
flx.setflex('MLD',1041,rec.melding_key,'1'); -- Deze mogen geexporteerd worden A=1041
|
|
|
|
END LOOP;
|
|
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
--
|
|
-- Export view voor alle meldingen die naar ProVat geexporteerd moeten die syncstatus=1 hebben
|
|
--
|
|
CREATE OR REPLACE VIEW PROR_V_EXPORT_PROVAT
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT 'Requestnr;Begindatum;Contact;Service;Omschrijving;Gebouw;Assignee;Type request;Status;Kostenplaats;Omschrijving' heaeder,0 FROM DUAL
|
|
UNION ALL
|
|
SELECT melding_key||';'||TO_CHAR(begin_datum,'DD-MM-YYYY HH24:MI:SS')||';'||contact||';'||service||';'||omschrijving||';'||locatie||';'||assignee||';'||type_request||';'||mld_status||';;'||onderwerp, 1
|
|
FROM pror_v_mld_provat
|
|
WHERE provat_flag='1'
|
|
ORDER BY 1 DESC;
|
|
|
|
|
|
|
|
-- alle geexporteerde meldingen de sync date en syncstatus goedzetten
|
|
CREATE OR REPLACE PROCEDURE PROR_EXPORT_PROVAT(p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_index IN VARCHAR2,
|
|
p_file IN VARCHAR2
|
|
)
|
|
AS
|
|
CURSOR c
|
|
IS
|
|
SELECT *
|
|
FROM pror_v_mld_provat
|
|
WHERE provat_flag='1';
|
|
BEGIN
|
|
FOR rec IN C
|
|
LOOP
|
|
|
|
flx.setflex('MLD',1021,rec.melding_key,TO_CHAR(SYSDATE,'DD-MM-YYYY')); -- A = 1021
|
|
flx.setflex('MLD',1041,rec.melding_key,'0'); -- A = 1041
|
|
END LOOP;
|
|
END;
|
|
/
|
|
-- EINDE PROVAT EXPORT
|
|
|
|
-- EXPORT VAN CATERING BESTELLINGE TBV COMPASSGROUP
|
|
--
|
|
CREATE OR REPLACE PROCEDURE PROR_SELECT_COMPASS_CAT(
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2
|
|
)
|
|
AS
|
|
|
|
CURSOR sel
|
|
IS
|
|
SELECT distinct rra.res_rsv_ruimte_key rrr_key,
|
|
rrr.res_reservering_key||'/'||rrr.res_rsv_ruimte_volgnr reservering,
|
|
rrr.res_rsv_ruimte_opmerking opmerking,
|
|
rrr.res_rsv_ruimte_van van,
|
|
rrr.res_rsv_ruimte_tot tot,
|
|
(SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames WHERE prs_perslid_key=rrr.res_rsv_ruimte_contact_key) aanvrager,
|
|
p.prs_perslid_telefoonnr telefoon,
|
|
p.prs_perslid_email email,
|
|
k.prs_kostenplaats_key,
|
|
k.prs_kostenplaats_nr kostenplaats,
|
|
k.prs_kostenplaats_omschrijving,
|
|
-- b.prs_bedrijf_key,
|
|
-- b.prs_overeenkomst_nr,
|
|
COALESCE (
|
|
(SELECT alg_ruimte_nr
|
|
FROM alg_v_allonrgoed_gegevens alg
|
|
WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key),
|
|
(SELECT MIN(alg.alg_ruimte_nr)
|
|
FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg
|
|
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
|
AND rr.res_ruimte_key = rro.res_ruimte_key
|
|
AND rarm.res_ruimte_key = rr.res_ruimte_key
|
|
AND rarm.res_alg_ruimte_verwijder IS NULL
|
|
AND alg.alg_ruimte_key = rarm.alg_ruimte_key)) ruimtenr
|
|
FROM res_rsv_artikel rra,
|
|
res_artikel ra,
|
|
-- res_discipline rd,
|
|
-- res_disc_params rdp,
|
|
-- prs_bedrijf b,
|
|
res_rsv_ruimte rrr,
|
|
prs_kostenplaats k,
|
|
prs_v_perslid_gegevens p
|
|
WHERE rrr.res_rsv_ruimte_van > TO_DATE('01-05-2022','DD-MM-YYYY')
|
|
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
|
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
|
AND rra.res_artikel_key = ra.res_artikel_key
|
|
-- AND ra.res_discipline_key = rd.ins_discipline_key
|
|
-- AND rd.ins_discipline_key = rdp.res_ins_discipline_key
|
|
AND rra.res_status_bo_key = 5 -- afgemeld
|
|
--AND rdp.prs_bedrijf_key = b.prs_bedrijf_key
|
|
--AND rdp.prs_bedrijf_key = 90501 -- Cirfood algemeen
|
|
AND p.prs_perslid_key=rrr.res_rsv_ruimte_contact_key
|
|
AND rra.res_rsv_artikel_verwijder IS NULL
|
|
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
|
AND rrr.res_rsv_ruimte_externsyncdate IS NULL;
|
|
|
|
|
|
CURSOR sel_art(p_rrr_key NUMBER)
|
|
IS
|
|
SELECT rra.res_rsv_artikel_key,
|
|
rra.res_rsv_artikel_aantal aantal,
|
|
ra.res_artikel_omschrijving artikel_omschrijving,
|
|
COALESCE(ra.RES_ARTIKEL_NR,ra.res_artikel_externnr) artikelnr,
|
|
rra.res_rsv_artikel_levering van,
|
|
ra.res_artikel_btw btw,
|
|
rra.res_rsv_artikel_prijs totprijs,
|
|
ra.res_artikel_prijs prijs,
|
|
rd.ins_discipline_omschrijving catalogus
|
|
FROM res_rsv_artikel rra,
|
|
res_artikel ra,
|
|
res_discipline rd
|
|
WHERE rra.res_rsv_ruimte_key=p_rrr_key
|
|
AND rra.res_artikel_key = ra.res_artikel_key
|
|
AND rra.res_status_bo_key = 5 -- afgemeld
|
|
AND rra.res_rsv_artikel_verwijder IS NULL
|
|
AND ra.res_artikel_btw IN (0, 9, 21)
|
|
AND rd.ins_discipline_key=ra.res_discipline_key;
|
|
|
|
v_bestand VARCHAR2(20);
|
|
v_shop_token VARCHAR2(50);
|
|
v_contact_email VARCHAR2(50);
|
|
v_debitor_value VARCHAR2(20);
|
|
v_counter NUMBER;
|
|
v_artikelprijs NUMBER;
|
|
|
|
BEGIN
|
|
v_bestand :='CMPS-EX';
|
|
v_counter:=0;
|
|
|
|
-- CIRFOOD settings
|
|
v_shop_token:='CMPS_1234';
|
|
v_contact_email :='compass@prorail.nl';
|
|
v_debitor_value := 'PROR_DEB_CODE';
|
|
|
|
|
|
-- eerst opschonen
|
|
DELETE FROM fac_rapport
|
|
WHERE fac_rapport_node = v_bestand;
|
|
|
|
pror.add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
|
|
pror.add_xml_row (v_bestand, '<Message version="1.1">');
|
|
pror.add_xml_row (v_bestand, '<Header>');
|
|
pror.add_xml_row (v_bestand, '<ShopToken>'||v_shop_token||'</ShopToken>');
|
|
pror.add_xml_row (v_bestand, '<Sender>');
|
|
pror.add_xml_row (v_bestand, '<ID>1</ID>');
|
|
pror.add_xml_row (v_bestand, '<Name>Prorail</Name>');
|
|
pror.add_xml_row (v_bestand, '<Email>'||v_contact_email||'</Email>');
|
|
pror.add_xml_row (v_bestand, '</Sender>');
|
|
pror.add_xml_row (v_bestand, '<Subject>Purchaseorder Facilitor</Subject>');
|
|
pror.add_xml_row (v_bestand, '</Header>');
|
|
pror.add_xml_row (v_bestand, '<Content>');
|
|
pror.add_xml_row (v_bestand, '<Orders>');
|
|
FOR rec IN sel
|
|
LOOP
|
|
v_counter:=v_counter+1;
|
|
pror.add_xml_row(v_bestand, '<Order>');
|
|
pror.add_xml_row(v_bestand, '<Customer>');
|
|
pror.add_xml_element (v_bestand, 'Name', 'PROR');
|
|
pror.add_xml_element (v_bestand, 'ID', '0000');
|
|
pror.add_xml_element (v_bestand, 'ExternalID', rec.reservering);
|
|
pror.add_xml_row(v_bestand, '<ContentContact>');
|
|
pror.add_xml_element (v_bestand, 'Name', rec.aanvrager);
|
|
pror.add_xml_element (v_bestand, 'Tel', rec.telefoon);
|
|
pror.add_xml_element (v_bestand, 'Email', rec.email);
|
|
pror.add_xml_row(v_bestand, '</ContentContact>');
|
|
pror.add_xml_row(v_bestand, '</Customer>');
|
|
pror.add_xml_element (v_bestand, 'Comments', REGEXP_REPLACE(rec.opmerking, '[^ -~|[:space:]]', ''));
|
|
pror.add_xml_row(v_bestand, '<Delivery>');
|
|
pror.add_xml_row(v_bestand, '<Location>');
|
|
pror.add_xml_element (v_bestand, 'Reference', 'LOCATIECODE');
|
|
pror.add_xml_row(v_bestand, '<Room>');
|
|
pror.add_xml_element (v_bestand, 'Description',rec.ruimteNr);
|
|
pror.add_xml_row(v_bestand, '</Room>');
|
|
pror.add_xml_row(v_bestand, '</Location>');
|
|
pror.add_xml_element (v_bestand, 'RequestedDeliveryDateTime',to_char(rec.van,'YYYYMMDD')||'T'||to_char(rec.van,'HH24:MI:SS'));
|
|
pror.add_xml_element (v_bestand, 'RequestedCollectDateTime',to_char(rec.tot,'YYYYMMDD')||'T'||to_char(rec.tot,'HH24:MI:SS'));
|
|
pror.add_xml_row(v_bestand, '</Delivery>');
|
|
pror.add_xml_row(v_bestand, '<CostCentre>');
|
|
pror.add_xml_element (v_bestand, 'Code',rec.kostenplaats);
|
|
pror.add_xml_row(v_bestand, '</CostCentre>');
|
|
pror.add_xml_row(v_bestand, '<OrderLines>');
|
|
FOR rec_art in sel_art(rec.rrr_key)
|
|
LOOP
|
|
pror.add_xml_row(v_bestand, '<OrderLine>');
|
|
pror.add_xml_element (v_bestand, 'Start',TO_CHAR(rec_art.van,'HH24:MI'));
|
|
pror.add_xml_row(v_bestand, '<Item>');
|
|
pror.add_xml_element (v_bestand, 'Description',rec_art.artikel_omschrijving);
|
|
pror.add_xml_element (v_bestand, 'Reference',rec_art.artikelnr);
|
|
pror.add_xml_row(v_bestand, '</Item>');
|
|
|
|
v_artikelprijs:=0;
|
|
|
|
IF UPPER(rec_art.catalogus) = 'MAATWERK'
|
|
THEN
|
|
v_artikelprijs := rec_art.totprijs/rec_art.aantal;
|
|
|
|
ELSE
|
|
v_artikelprijs := rec_art.prijs;
|
|
|
|
END IF;
|
|
pror.add_xml_element (v_bestand, 'QuantityOrdered',rec_art.aantal);
|
|
pror.add_xml_row(v_bestand, '<Price>');
|
|
pror.add_xml_element (v_bestand, 'NetPrice',v_artikelprijs);
|
|
pror.add_xml_element (v_bestand, 'BrtPrice',ROUND(v_artikelPrijs*(1+rec_art.btw/100),2));
|
|
|
|
pror.add_xml_element (v_bestand, 'Currency','EUR');
|
|
pror.add_xml_element (v_bestand, 'VatPercentage',rec_art.btw);
|
|
pror.add_xml_row(v_bestand, '</Price>');
|
|
pror.add_xml_row(v_bestand, '</OrderLine>');
|
|
-- UPDATE res_rsv_artikel SET res_rsv_artikel_externsyncdate=SYSDATE WHERE res_rsv_artikel_key=rec_art.res_rsv_artikel_key;
|
|
END LOOP;
|
|
pror.add_xml_row(v_bestand, '</OrderLines>');
|
|
pror.add_xml_row(v_bestand, '</Order>');
|
|
-- UPDATE res_rsv_ruimte SET res_rsv_ruimte_externsyncdate=SYSDATE WHERE res_rsv_ruimte_key=rec.rrr_key;
|
|
END LOOP;
|
|
pror.add_xml_row (v_bestand, '</Orders>');
|
|
pror.add_xml_row (v_bestand, '</Content>');
|
|
pror.add_xml_row (v_bestand, '</Message>');
|
|
|
|
IF v_counter=0 -- we hebben niets te exporteren dan kunnen we de xml headers ook opruimen.
|
|
THEN
|
|
DELETE FROM fac_rapport
|
|
WHERE fac_rapport_node = v_bestand;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW PROR_V_EXPORT_COMPASS_CAT
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node LIKE 'CMPS-EX%';
|
|
-- EINDE EXPORT COMPASSGROUP
|
|
|
|
------ 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
|