1860 lines
63 KiB
SQL
1860 lines
63 KiB
SQL
-- Script containing customer specific configuration sql statements for aait: Arcadis Aqumen Facility Management
|
||
-- (c) 2010 SG|facilitor bv
|
||
-- $Revision$
|
||
-- $Id$
|
||
--
|
||
-- Support: +31 53 4800700
|
||
|
||
SPOOL xaait.lst
|
||
SET ECHO ON
|
||
SET DEFINE OFF
|
||
|
||
@aaxx.sql;
|
||
|
||
-- script om dagelijks terugkerende scripts aan te roepen.
|
||
CREATE OR REPLACE PROCEDURE aait_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
aaxx_daily_task (p_applname, p_applrun);
|
||
END;
|
||
/
|
||
|
||
-- budgettracker overrules
|
||
CREATE OR REPLACE VIEW aait_v_export_budget_tracker (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_budget_tracker;
|
||
|
||
|
||
-- export overrules
|
||
-- exact IT
|
||
CREATE OR REPLACE VIEW aait_v_export_exact_it (RESULT, result_order)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'EXACT_IT';
|
||
CREATE OR REPLACE PROCEDURE aait_select_exact_it (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
-- Bij AAIT wordt in de opdracht bepaald op welke grootboekrekening (lees: kostensoort) de kosten geboekt
|
||
-- moeten worden. Dit wordt vastgelegd in srtkenmerk met key 201. Dit is een lijst met kostensoorten. Voor het
|
||
-- exporteren van de kosten wordt de kostensoort_key in de factuur gelijk gemaakt aan de kostensoort bij de
|
||
-- opdracht.
|
||
UPDATE fin_factuur f
|
||
SET prs_kostensoort_key = COALESCE((SELECT fac.safe_to_number(mld_kenmerkopdr_waarde)
|
||
FROM mld_kenmerk k, mld_kenmerkopdr ko, mld_opdr o
|
||
WHERE f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_opdr_key = ko.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 201), prs_kostensoort_key) -- srtkenmerk Grootboekrekening/Kostensoort
|
||
WHERE EXISTS (SELECT fg.fin_factuur_key
|
||
FROM aaxx_v_factuur_gegevens fg
|
||
WHERE fg.fin_factuur_key = f.fin_factuur_key
|
||
AND mld_opdr_key IS NOT NULL
|
||
AND substr(opdracht_id, 1, 2) = 'IT'
|
||
AND fin_factuur_statuses_key = 6);
|
||
aaxx_select_exact_xml_adm (p_applname, p_applrun, 'IT');
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_export_exact_it (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_exact_adm (p_applname, p_applrun, p_filedir, p_filename, 'IT');
|
||
END;
|
||
/
|
||
|
||
-- exact facilitair
|
||
CREATE OR REPLACE VIEW aait_v_export_exact_fac (RESULT, result_order)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'EXACT_FAC';
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_select_exact_fac (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
-- Bij AAIT wordt in de opdracht bepaald op welke grootboekrekening (lees: kostensoort) de kosten geboekt
|
||
-- moeten worden. Dit wordt vastgelegd in srtkenmerk met key 201. Dit is een lijst met kostensoorten. Voor het
|
||
-- exporteren van de kosten wordt de kostensoort_key in de factuur gelijk gemaakt aan de kostensoort bij de
|
||
-- opdracht.
|
||
aaxx_select_exact_xml_adm(p_applname, p_applrun, 'FAC');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_export_exact_fac (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_exact_adm(p_applname, p_applrun, p_filedir, p_filename, 'FAC');
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE VIEW aait_v_export_verwerk_exact_it (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_verwerk_exact;
|
||
CREATE OR REPLACE PROCEDURE aait_export_verwerk_exact_it (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_verwerk_exact_adm(p_applname, p_applrun, p_filedir, p_filename, 'IT');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_export_verwerk_exact_fac (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_verwerk_exact_adm(p_applname, p_applrun, p_filedir, p_filename, 'FAC');
|
||
END;
|
||
/
|
||
|
||
-- bundel catering
|
||
CREATE OR REPLACE VIEW aait_v_export_bundel_catering (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_bundel_catering;
|
||
CREATE OR REPLACE PROCEDURE aait_export_bundel_catering (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_bundel_catering(p_applname, p_applrun, p_filedir, p_filename);
|
||
END;
|
||
/
|
||
|
||
-- exact verkoop
|
||
CREATE OR REPLACE VIEW aait_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
||
CREATE OR REPLACE PROCEDURE aait_select_exact_verkoop (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'));
|
||
END;
|
||
/
|
||
CREATE OR REPLACE PROCEDURE aait_export_exact_verkoop (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'));
|
||
END;
|
||
/
|
||
|
||
-- exact verkoop over het vorige jaar
|
||
CREATE OR REPLACE VIEW aait_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
||
CREATE OR REPLACE PROCEDURE aait_select_exact_verkoop_vj (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
|
||
END;
|
||
/
|
||
CREATE OR REPLACE PROCEDURE aait_export_exact_verkoop_vj (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
|
||
END;
|
||
/
|
||
|
||
-- exact projecturen (XML), opgesplitst naar boekhouding (eerste 3 digits kostenplaats)
|
||
CREATE OR REPLACE VIEW aait_v_export_exact_uren001 (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR ('EXACT_UREN001', 1, 12);
|
||
|
||
CREATE OR REPLACE VIEW aait_v_export_exact_uren007 (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR ('EXACT_UREN007', 1, 12);
|
||
|
||
CREATE OR REPLACE VIEW aait_v_export_exact_uren012 (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR ('EXACT_UREN012', 1, 12);
|
||
|
||
CREATE OR REPLACE VIEW aait_v_export_exact_uren020 (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR ('EXACT_UREN020', 1, 12);
|
||
|
||
CREATE OR REPLACE VIEW aait_v_export_exact_uren029 (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = SUBSTR ('EXACT_UREN029', 1, 12);
|
||
|
||
-- Exportregels (XML-structuur) in fac_rapport
|
||
CREATE OR REPLACE PROCEDURE aait_select_exact_uren001 (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_select_exact_uren_xml(p_applname, p_applrun, '001');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_select_exact_uren007 (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_select_exact_uren_xml(p_applname, p_applrun, '007');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_select_exact_uren012 (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_select_exact_uren_xml(p_applname, p_applrun, '012');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_select_exact_uren020 (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_select_exact_uren_xml(p_applname, p_applrun, '020');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_select_exact_uren029 (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_select_exact_uren_xml(p_applname, p_applrun, '029');
|
||
END;
|
||
/
|
||
|
||
-- verwerk exact projecturen (XML)
|
||
CREATE OR REPLACE PROCEDURE aait_export_vw_exact_uren001 (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '001');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_export_vw_exact_uren007 (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '007');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_export_vw_exact_uren012 (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '012');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_export_vw_exact_uren020 (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '020');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_export_vw_exact_uren029 (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '029');
|
||
END;
|
||
/
|
||
|
||
--------------------------------
|
||
-- import contractorders
|
||
--------------------------------
|
||
CREATE OR REPLACE PROCEDURE aait_import_contract (p_import_key IN NUMBER) IS
|
||
BEGIN
|
||
aaxx_import_contract (p_import_key);
|
||
END aait_import_contract;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_update_contract (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
aaxx_update_contract (p_import_key);
|
||
END aait_update_contract;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_import_ruimte (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
aaxx_import_ruimte(p_import_key);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_update_ruimte (p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
aaxx_update_ruimte(p_import_key);
|
||
END;
|
||
/
|
||
|
||
|
||
-- personen import koppeling
|
||
CREATE OR REPLACE PROCEDURE aait_import_perslid_mut (p_import_key IN NUMBER)
|
||
AS
|
||
v_afdelingscode VARCHAR2(100);
|
||
v_persoonachternaam VARCHAR2(100);
|
||
v_tussenvoegsel VARCHAR2(100);
|
||
v_voorletters VARCHAR2(100);
|
||
v_voornaam VARCHAR2(100);
|
||
v_titel VARCHAR2(100);
|
||
v_telefoonnummer VARCHAR2(100);
|
||
v_mobiel VARCHAR2(100);
|
||
v_email VARCHAR2(100);
|
||
v_functie VARCHAR2(100);
|
||
v_loginnaam VARCHAR2(100);
|
||
v_personeelsnummer VARCHAR2(100);
|
||
v_dienstverband VARCHAR2(100);
|
||
v_uurloon VARCHAR2(100);
|
||
v_kostenplaats VARCHAR2(100);
|
||
v_header VARCHAR2(1000);
|
||
v_newline VARCHAR2(1000);
|
||
header_is_valid NUMBER := 0;
|
||
|
||
v_old_login VARCHAR2 (30);
|
||
c_delim VARCHAR2 (1) := ';';
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
-- cursor om de tussenvoegsels goed in te kunnen vullen. Deze staan nu achter de achternaam.
|
||
CURSOR c
|
||
IS
|
||
SELECT fac_usrdata_omschr, loginnaam
|
||
FROM aait_imp_perslid p, fac_usrdata u
|
||
WHERE UPPER(p.persoonachternaam) LIKE UPPER(u.fac_usrdata_omschr) || ' ' || '%'
|
||
AND fac_usrtab_key = 201
|
||
ORDER BY p.loginnaam, LENGTH (fac_usrdata_omschr) DESC;
|
||
|
||
BEGIN
|
||
v_old_login := 'QueQeLeQue';
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM aait_imp_perslid
|
||
WHERE fac_import_key <> p_import_key;
|
||
|
||
COMMIT;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
|
||
-- Lees alle veldwaarden
|
||
v_header := v_newline;
|
||
fac.imp_getfield (v_newline, c_delim, v_afdelingscode);
|
||
fac.imp_getfield (v_newline, c_delim, v_persoonachternaam);
|
||
fac.imp_getfield (v_newline, c_delim, v_tussenvoegsel);
|
||
fac.imp_getfield (v_newline, c_delim, v_voorletters);
|
||
fac.imp_getfield (v_newline, c_delim, v_voornaam);
|
||
fac.imp_getfield (v_newline, c_delim, v_titel);
|
||
fac.imp_getfield (v_newline, c_delim, v_telefoonnummer);
|
||
fac.imp_getfield (v_newline, c_delim, v_mobiel);
|
||
fac.imp_getfield (v_newline, c_delim, v_email);
|
||
fac.imp_getfield (v_newline, c_delim, v_functie);
|
||
fac.imp_getfield (v_newline, c_delim, v_personeelsnummer);
|
||
fac.imp_getfield (v_newline, c_delim, v_loginnaam);
|
||
fac.imp_getfield (v_newline, c_delim, v_dienstverband);
|
||
fac.imp_getfield (v_newline, c_delim, v_uurloon);
|
||
fac.imp_getfield (v_newline, c_delim, v_kostenplaats);
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF LOWER (TRIM (v_header)) = 'afdelingscode;persoonachternaam;tussenvoegsel;voorletters;voornaam;titel aanhef;telefoonnummer;mobiel;email;functie;personeelsnummer;loginnaam;dienstverband;uurloon;kostenplaats'
|
||
OR LOWER (TRIM (v_header)) = '"afdelingscode";"persoonachternaam";"tussenvoegsel";"voorletters";"voornaam";"titel aanhef";"telefoonnummer";"mobiel";"email";"functie";"personeelsnummer";"loginnaam";"dienstverband";"uurloon";"kostenplaats"'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
INSERT INTO aait_imp_perslid (
|
||
afdelingscode,
|
||
persoonachternaam,
|
||
tussenvoegsel,
|
||
voorletters,
|
||
voornaam,
|
||
titel,
|
||
telefoonnummer,
|
||
mobiel,
|
||
email,
|
||
functie,
|
||
loginnaam,
|
||
personeelsnummer,
|
||
dienstverband,
|
||
uurloon,
|
||
kostenplaats,
|
||
fac_import_key)
|
||
VALUES (
|
||
v_afdelingscode,
|
||
v_persoonachternaam,
|
||
v_tussenvoegsel,
|
||
v_voorletters,
|
||
v_voornaam,
|
||
v_titel,
|
||
DECODE(v_telefoonnummer, 'N/A', NULL, v_telefoonnummer),
|
||
v_mobiel,
|
||
v_email,
|
||
v_functie,
|
||
v_loginnaam,
|
||
v_personeelsnummer,
|
||
v_dienstverband,
|
||
v_uurloon,
|
||
to_char(fac.safe_to_number(v_kostenplaats), '00000000'),
|
||
p_import_key);
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Ongeldige header',
|
||
'Controleer het importbestand.'
|
||
);
|
||
ELSE
|
||
-- splits de achternaam in tussenvoegsels en achternaam.
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
IF rec.loginnaam <> v_old_login
|
||
THEN
|
||
DBMS_OUTPUT.put_line (
|
||
rec.loginnaam || '-' || rec.fac_usrdata_omschr);
|
||
v_old_login := rec.loginnaam;
|
||
|
||
UPDATE aait_imp_perslid p
|
||
SET tussenvoegsel = rec.fac_usrdata_omschr,
|
||
persoonachternaam =
|
||
TRIM(SUBSTR (persoonachternaam,
|
||
LENGTH (rec.fac_usrdata_omschr) + 1))
|
||
WHERE p.loginnaam = rec.loginnaam;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
DELETE fac_imp_perslid;
|
||
|
||
INSERT INTO fac_imp_perslid (
|
||
prs_afdeling_naam,
|
||
prs_perslid_naam,
|
||
prs_perslid_tussenvoegsel,
|
||
prs_perslid_voorletters,
|
||
prs_perslid_voornaam,
|
||
prs_perslid_titel,
|
||
prs_perslid_telefoonnr,
|
||
prs_perslid_mobiel,
|
||
prs_perslid_email,
|
||
prs_srtperslid_omschrijving,
|
||
prs_perslid_oslogin,
|
||
prs_perslid_nr)
|
||
SELECT substr(afdelingscode, 1, 10),
|
||
substr(persoonachternaam, 1, 60),
|
||
substr(tussenvoegsel, 1, 15),
|
||
substr(voorletters, 1, 10),
|
||
substr(voornaam, 1, 30),
|
||
substr(titel, 1, 15),
|
||
substr(telefoonnummer, 1, 15),
|
||
substr(mobiel, 1, 15),
|
||
substr(email, 1, 50),
|
||
substr(functie, 1, 60),
|
||
substr(loginnaam, 1, 30),
|
||
substr(personeelsnummer, 1, 16)
|
||
FROM aait_imp_perslid
|
||
WHERE fac_import_key = p_import_key;
|
||
END IF;
|
||
|
||
|
||
END aait_import_perslid_mut;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_update_perslid_mut (
|
||
p_import_key IN NUMBER
|
||
) IS
|
||
|
||
CURSOR c_del
|
||
IS
|
||
SELECT prs_perslid_key,
|
||
prs_perslid_naam,
|
||
prs_perslid_oslogin,
|
||
prs_perslid_oslogin2,
|
||
prs_perslid_login,
|
||
(SELECT COUNT ( * )
|
||
FROM prs_v_verplichting v
|
||
WHERE v.prs_perslid_key = p.prs_perslid_key)
|
||
verplichtingen
|
||
FROM prs_perslid p
|
||
WHERE NOT EXISTS
|
||
(SELECT prs_perslid_key
|
||
FROM fac_imp_perslid i
|
||
WHERE p.prs_perslid_oslogin = UPPER (i.prs_perslid_oslogin)
|
||
OR p.prs_perslid_oslogin2 = UPPER (i.prs_perslid_oslogin))
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND (prs_perslid_oslogin NOT LIKE '/_%' ESCAPE ('/')
|
||
OR prs_perslid_oslogin IS NULL);
|
||
|
||
|
||
-- cursor om extra velden toe te voegen die niet in de generiek import staan
|
||
CURSOR c_extra
|
||
IS
|
||
SELECT p.prs_perslid_key, prs_perslid_naam_full, kostenplaats, dienstverband, uurloon
|
||
FROM aait_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames pf
|
||
WHERE UPPER(i.loginnaam) = p.prs_perslid_oslogin
|
||
AND p.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
v_perslid_key NUMBER;
|
||
v_perslid_nr VARCHAR2(100);
|
||
v_kostenplaats_nr VARCHAR2(100);
|
||
v_fac_groep_key NUMBER;
|
||
v_count NUMBER;
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
BEGIN
|
||
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM fac_imp_perslid;
|
||
|
||
IF v_count > 100 THEN
|
||
|
||
BEGIN
|
||
SELECT fac_groep_key
|
||
INTO v_fac_groep_key
|
||
FROM fac_groep
|
||
WHERE UPPER (fac_groep_omschrijving) = 'AAFM PROJECTUREN';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO fac_groep (fac_groep_omschrijving)
|
||
VALUES ('AAFM Projecturen')
|
||
RETURNING fac_groep_key
|
||
INTO v_fac_groep_key;
|
||
END;
|
||
|
||
-- generic update
|
||
aaxx.fac_gen_update_perslid (p_import_key, 'LOGIN', 0, '');
|
||
|
||
-- extra velden toevoegen aan de persoon
|
||
FOR rec IN c_extra
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec.prs_perslid_naam_full||' ('
|
||
|| rec.kostenplaats||', '||rec.dienstverband||', '||rec.uurloon||')';
|
||
UPDATE prs_perslid p
|
||
SET prs_perslid_uurloon = fac.safe_to_number(replace(rec.uurloon,',','.')),
|
||
prs_perslid_dienstverband = fac.safe_to_number(replace(rec.dienstverband, ',','.'))
|
||
WHERE p.prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
aaxx.set_prs_kenmerk (p_import_key, 'P', 2, rec.prs_perslid_key, rec.kostenplaats);
|
||
|
||
-- voeg de persoon toe aan de groep AAFM-projecturen als deze al niet tot de groep behoort.
|
||
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
||
SELECT g.fac_groep_key, p.prs_perslid_key
|
||
FROM prs_perslid p, fac_groep g
|
||
WHERE p.prs_perslid_key = rec.prs_perslid_key
|
||
AND g.fac_groep_key = v_fac_groep_key
|
||
AND NOT EXISTS (
|
||
SELECT fac_gebruikersgroep_key
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND gg.prs_perslid_key = p.prs_perslid_key);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Fout bij bijwerken persoon.'
|
||
);
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
|
||
FOR rec IN c_del
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec.prs_perslid_naam||' ('
|
||
|| rec.prs_perslid_oslogin||'/'||rec.prs_perslid_oslogin2||')';
|
||
|
||
UPDATE prs_perslid p
|
||
SET prs_perslid_oslogin = NULL,
|
||
prs_perslid_oslogin2 = NULL
|
||
WHERE p.prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
DELETE fac_gebruikersgroep
|
||
WHERE prs_perslid_key = rec.prs_perslid_key
|
||
AND fac_groep_key = v_fac_groep_key;
|
||
|
||
IF rec.verplichtingen = 0 THEN
|
||
UPDATE prs_perslid p
|
||
SET prs_perslid_verwijder = sysdate
|
||
WHERE p.prs_perslid_key = rec.prs_perslid_key;
|
||
ELSE
|
||
UPDATE prs_perslid p
|
||
SET prs_perslid_naam = substr('Inactief ' || prs_perslid_naam, 1,60)
|
||
WHERE p.prs_perslid_key = rec.prs_perslid_key
|
||
AND p.prs_perslid_naam not like 'Inactief%';
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Fout bij verwijderen persoon.'
|
||
);
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
END aait_update_perslid_mut;
|
||
/
|
||
|
||
-- Andere account mogen ook gebruik maken van deze data
|
||
-- WITH GRANT OPTION omdat AAFM de grant weer door mag geven.
|
||
GRANT SELECT ON aait_imp_perslid TO aafm WITH GRANT OPTION;
|
||
|
||
-- AAIT#24873: Rapportage bezoekers op scherm
|
||
-- kenmerk key 1000: afspraak is prive (dus niet op infobord)
|
||
CREATE OR REPLACE VIEW aait_v_rap_infobord
|
||
(
|
||
item_type,
|
||
item_key,
|
||
aktief,
|
||
bezoek_status,
|
||
offset,
|
||
dag,
|
||
tijd_van,
|
||
tijd_tot,
|
||
ruimte,
|
||
catalogus,
|
||
aanvrager,
|
||
gastheer,
|
||
omschrijving,
|
||
status,
|
||
bezoeker,
|
||
bedrijf,
|
||
locatie_code,
|
||
gebouw_code,
|
||
verdieping_code,
|
||
locatie_omschrijving,
|
||
gebouw_omschrijving,
|
||
verdieping_omschrijving,
|
||
alg_locatie_key,
|
||
alg_gebouw_key,
|
||
alg_verdieping_key
|
||
)
|
||
AS
|
||
SELECT 'RES',
|
||
rrr.res_rsv_ruimte_key,
|
||
(CASE
|
||
WHEN res_rsv_ruimte_van > SYSDATE THEN 'expected'
|
||
WHEN res_rsv_ruimte_tot < SYSDATE THEN 'passed'
|
||
ELSE 'active'
|
||
END)
|
||
aktief,
|
||
(CASE
|
||
WHEN b.bez_bezoekers_out IS NOT NULL THEN 'out'
|
||
WHEN b.bez_bezoekers_done IS NOT NULL THEN 'in'
|
||
ELSE 'expected'
|
||
END)
|
||
bezoek_status,
|
||
TRUNC ( (SYSDATE - res_rsv_ruimte_van) * 24 * 60) offset,
|
||
TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') dag,
|
||
TO_CHAR (res_rsv_ruimte_van, 'hh24:mi') tijd_van,
|
||
TO_CHAR (res_rsv_ruimte_tot, 'hh24:mi') tijd_tot,
|
||
res_ruimte_nr ruimte,
|
||
ins_discipline_omschrijving catalogus,
|
||
aanvrager.prs_perslid_naam_full aanvrager,
|
||
gastheer.prs_perslid_naam_full gastheer,
|
||
res_rsv_ruimte_omschrijving omschrijving,
|
||
sf.res_status_fo_omschrijving status,
|
||
b.bez_afspraak_naam,
|
||
b.bez_afspraak_bedrijf,
|
||
alg_locatie_code locatie_code,
|
||
alg_gebouw_code gebouw_code,
|
||
alg_verdieping_code verdieping_code,
|
||
alg_locatie_omschrijving locatie_omschrijving,
|
||
alg_gebouw_omschrijving gebouw_omschrijving,
|
||
alg_verdieping_omschrijving verdieping_omschrijving,
|
||
l.alg_locatie_key,
|
||
g.alg_gebouw_key,
|
||
v.alg_verdieping_key
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
prs_v_perslid_fullnames aanvrager,
|
||
prs_v_perslid_fullnames gastheer,
|
||
res_v_res_ruimte_gegevens rrg,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
res_status_fo sf,
|
||
res_discipline rd,
|
||
bez_afspraak a,
|
||
bez_bezoekers b,
|
||
(SELECT * FROM bez_kenmerkwaarde
|
||
WHERE bez_kenmerk_key = 1000
|
||
AND bez_kenmerkwaarde_verwijder IS NULL) prive
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rrg.res_ruimte_key
|
||
AND rrr.res_rsv_ruimte_host_key = gastheer.prs_perslid_key
|
||
AND rrr.res_rsv_ruimte_contact_key = aanvrager.prs_perslid_key
|
||
AND TRUNC (res_rsv_ruimte_van) = TRUNC (SYSDATE)
|
||
AND rrg.alg_locatie_key = l.alg_locatie_key
|
||
AND rrg.alg_gebouw_key = g.alg_gebouw_key
|
||
AND rrg.alg_verdieping_key = v.alg_verdieping_key
|
||
AND rrr.res_status_fo_key = sf.res_status_fo_key
|
||
AND rrg.res_discipline_key = rd.ins_discipline_key
|
||
AND rrr.res_rsv_ruimte_key = a.res_rsv_ruimte_key(+)
|
||
AND a.bez_afspraak_key = b.bez_afspraak_key(+)
|
||
AND prive.bez_bezoekers_key(+) = b.bez_bezoekers_key
|
||
AND COALESCE(prive.bez_kenmerkwaarde_waarde, '0') = '0'
|
||
UNION ALL
|
||
SELECT 'BEZ',
|
||
b.bez_afspraak_key,
|
||
(CASE
|
||
WHEN a.bez_afspraak_datum > SYSDATE THEN 'expected'
|
||
WHEN a.bez_afspraak_eind < SYSDATE THEN 'passed'
|
||
ELSE 'active'
|
||
END)
|
||
aktief,
|
||
(CASE
|
||
WHEN b.bez_bezoekers_out IS NOT NULL THEN 'out'
|
||
WHEN b.bez_bezoekers_done IS NOT NULL THEN 'in'
|
||
ELSE 'expected'
|
||
END)
|
||
bezoek_status,
|
||
TRUNC ( (SYSDATE - bez_afspraak_datum) * 24 * 60) offset,
|
||
TO_CHAR (bez_afspraak_datum, 'dd-mm-yyyy') dag,
|
||
TO_CHAR (bez_afspraak_datum, 'hh24:mi') tijd_van,
|
||
TO_CHAR (bez_afspraak_eind, 'hh24:mi') tijd_tot,
|
||
NULL ruimte,
|
||
NULL catalogus,
|
||
aanvrager.prs_perslid_naam_full aanvrager,
|
||
gastheer.prs_perslid_naam_full gastheer,
|
||
NULL omschrijving,
|
||
NULL status,
|
||
b.bez_afspraak_naam,
|
||
b.bez_afspraak_bedrijf,
|
||
alg_locatie_code locatie_code,
|
||
alg_gebouw_code gebouw_code,
|
||
NULL verdieping_code,
|
||
alg_locatie_omschrijving locatie_omschrijving,
|
||
alg_gebouw_naam gebouw_omschrijving,
|
||
alg_verdieping_omschrijving verdieping_omschrijving,
|
||
l.alg_locatie_key,
|
||
ogg.alg_gebouw_key,
|
||
ogg.alg_verdieping_key
|
||
FROM bez_afspraak a,
|
||
bez_bezoekers b,
|
||
prs_v_perslid_fullnames aanvrager,
|
||
alg_locatie l,
|
||
alg_v_allonrgoed_gegevens ogg,
|
||
prs_v_perslid_fullnames gastheer,
|
||
(SELECT * FROM bez_kenmerkwaarde
|
||
WHERE bez_kenmerk_key = 1000
|
||
AND bez_kenmerkwaarde_verwijder IS NULL) prive
|
||
WHERE a.bez_afspraak_key = b.bez_afspraak_key
|
||
AND TRUNC(a.bez_afspraak_datum) = TRUNC(SYSDATE)
|
||
AND a.bez_afspraak_host_key = gastheer.prs_perslid_key
|
||
AND a.bez_afspraak_contact_key = aanvrager.prs_perslid_key
|
||
AND a.alg_locatie_key = l.alg_locatie_key
|
||
AND a.alg_onrgoed_keys = ogg.alg_onroerendgoed_keys(+)
|
||
AND a.res_rsv_ruimte_key IS NULL
|
||
AND prive.bez_bezoekers_key(+) = b.bez_bezoekers_key
|
||
AND COALESCE(prive.bez_kenmerkwaarde_waarde, '0') = '0';
|
||
|
||
CREATE OR REPLACE VIEW aait_v_rap_bezoekers
|
||
AS
|
||
SELECT * FROM aait_v_rap_infobord;
|
||
|
||
|
||
CREATE OR REPLACE VIEW AAIT_V_RAP_FACTUUR_GOEDKEURING
|
||
(
|
||
FCLT_D_DATUM_GOEDKEURING,
|
||
APPROVER,
|
||
FIN_FACTUUR_KEY,
|
||
FIN_FACTUUR_NR,
|
||
PRS_BEDRIJF_NAAM,
|
||
PRS_BEDRIJF_BEZOEK_ADRES,
|
||
PRS_BEDRIJF_TELEFOON,
|
||
PRS_BEDRIJF_FAX,
|
||
FIN_FACTUUR_DATUM,
|
||
FIN_FACTUUR_AANMAAK,
|
||
FIN_FACTUUR_TOTAAL,
|
||
FIN_FACTUUR_BTW,
|
||
MODULE,
|
||
ORDERNUMMER,
|
||
ORDERDATUM,
|
||
OMSCHRIJVING,
|
||
ORDERSTATUS,
|
||
ORDERBEDRAG,
|
||
PRS_KOSTENSOORT_OPMERKING,
|
||
PRS_KOSTENSOORT_OMS,
|
||
PRS_KOSTENPLAATS_NR,
|
||
PRS_KOSTENPLAATS_OMSCHRIJVING,
|
||
CALLER
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (fac.gettrackingdate ('FINFOK', g.fin_factuur_key),
|
||
'dd-mm-yyyy')
|
||
fclt_d_datum_acc,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all
|
||
WHERE prs_perslid_key =
|
||
fac.gettrackinguserkey ('FINFOK', f.fin_factuur_key))
|
||
approver,
|
||
g.fin_factuur_key,
|
||
g.fin_factuur_nr,
|
||
prs_bedrijf_naam,
|
||
prs_bedrijf_bezoek_adres,
|
||
prs_bedrijf_telefoon,
|
||
prs_bedrijf_fax,
|
||
TO_CHAR (g.fin_factuur_datum, 'dd-mm-yyyy'),
|
||
TO_CHAR (fac.gettrackingdate ('FINNEW', g.fin_factuur_key),
|
||
'dd-mm-yyyy')
|
||
fin_factuur_aanmaak,
|
||
fin_factuur_totaal,
|
||
fin_factuur_totaal + fin_factuur_totaal_btw,
|
||
module,
|
||
ordernummer,
|
||
TO_CHAR (orderdatum, 'dd-mm-yyyy'),
|
||
omschrijving,
|
||
orderstatus,
|
||
orderbedrag,
|
||
prs_kostensoort_opmerking,
|
||
ks.prs_kostensoort_oms,
|
||
prs_kostenplaats_nr,
|
||
prs_kostenplaats_omschrijving,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all
|
||
WHERE prs_perslid_key = caller)
|
||
FROM aaxx_v_factuur_gegevens g,
|
||
prs_bedrijf b,
|
||
fin_factuur f,
|
||
( SELECT 'BES' module,
|
||
bo.bes_bestelopdr_key,
|
||
NULL mld_opdr_key,
|
||
NULL cnt_contract_key,
|
||
bo.bes_bestelopdr_id ordernummer,
|
||
bes_bestelopdr_datum orderdatum,
|
||
bes.bestelopdr_tooltip (bo.bes_bestelopdr_key) omschrijving,
|
||
bes_bestelopdrstatuses_omschr orderstatus,
|
||
SUM (bi.bes_bestelling_item_brutoprijs) orderbedrag,
|
||
b.prs_perslid_key caller
|
||
FROM bes_bestelopdr bo,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi,
|
||
bes_bestelling b,
|
||
bes_bestelopdrstatuses s
|
||
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND boi.bes_bestelopdr_item_key =
|
||
bi.bes_bestelopdr_item_key
|
||
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND bo.bes_bestelopdr_status = s.bes_bestelopdrstatuses_key
|
||
GROUP BY bo.bes_bestelopdr_key,
|
||
bo.bes_bestelopdr_id,
|
||
bes_bestelopdr_datum,
|
||
bes_bestelopdrstatuses_omschr,
|
||
b.prs_perslid_key
|
||
UNION ALL
|
||
SELECT 'MLD',
|
||
NULL,
|
||
mld_opdr_key,
|
||
NULL,
|
||
ins_srtdiscipline_prefix
|
||
|| o.mld_melding_key
|
||
|| '/'
|
||
|| mld_opdr_bedrijfopdr_volgnr,
|
||
mld_opdr_datumbegin,
|
||
mld_opdr_omschrijving,
|
||
mld_statusopdr_omschrijving,
|
||
mld_opdr_kosten,
|
||
m.prs_perslid_key
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_statusopdr s,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_statusopdr_key = s.mld_statusopdr_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
|
||
AND sd.ins_srtdiscipline_prefix = 'IT'
|
||
UNION ALL
|
||
SELECT 'CNT',
|
||
NULL,
|
||
NULL,
|
||
cnt_contract_key,
|
||
cnt_contract_nummer_intern
|
||
|| '.'
|
||
|| COALESCE (cnt_contract_versie, '0'),
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_document,
|
||
DECODE (
|
||
SIGN (cnt_contract_looptijd_van - SYSDATE),
|
||
1,
|
||
'Toekomst',
|
||
-1,
|
||
DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE),
|
||
1, 'Actueel',
|
||
-1, 'Verlopen')),
|
||
cnt_contract_termijnkosten,
|
||
prs_perslid_key_beh
|
||
FROM cnt_contract c,
|
||
prs_v_afdeling_boom a
|
||
WHERE c.prs_afdeling_key_eig = a.prs_afdeling_key
|
||
AND a.prs_afdeling_key1 = 173) order_geg, -- STAFF afdeling
|
||
prs_kostenplaats k,
|
||
prs_kostensoort ks
|
||
WHERE ( g.mld_opdr_key = order_geg.mld_opdr_key
|
||
OR g.cnt_contract_key = order_geg.cnt_contract_key
|
||
OR g.bes_bestelopdr_key = order_geg.bes_bestelopdr_key)
|
||
AND g.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND g.fin_factuur_key = f.fin_factuur_key
|
||
AND g.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND g.prs_kostensoort_key = ks.prs_kostensoort_key
|
||
AND f.fin_factuur_statuses_key IN (6, 7);
|
||
|
||
CREATE OR REPLACE VIEW aait_v_noti_ordreminder
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
PAR1,
|
||
PAR2,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT 'CUST01',
|
||
'',
|
||
prs.getkpverantwoordelijke (
|
||
o.prs_kostenplaats_key,
|
||
2,
|
||
-1)
|
||
budgethouder,
|
||
'REMINDER: '
|
||
|| COUNT (o.mld_opdr_key)
|
||
|| ' Service Request'
|
||
|| DECODE (COUNT (o.mld_opdr_key), 1, '', 's'),
|
||
MIN (o.mld_opdr_key), -- Dummy key, althans een willekeurige; nog testen of dit werkt???
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM mld_opdr o
|
||
WHERE o.mld_statusopdr_key = 3
|
||
GROUP BY prs.getkpverantwoordelijke (
|
||
prs_kostenplaats_key,
|
||
2,
|
||
-1);
|
||
|
||
CREATE OR REPLACE VIEW AAIT_V_NOTI_FINREMINDER
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
PAR1,
|
||
PAR2,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT 'FININF',
|
||
'',
|
||
546, -- Mr. Hartley
|
||
'Fiatteringsverzoek voor '
|
||
|| COUNT (f.fin_factuur_key)
|
||
|| DECODE (COUNT (f.fin_factuur_key), 1, ' factuur.', ' facturen.'),
|
||
MIN (f.fin_factuur_key), -- Dummy key, althans een willekeurige; FSN#19425
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM fin_factuur f
|
||
WHERE f.fin_factuur_statuses_key =
|
||
DECODE (TO_CHAR (SYSDATE, 'D'), 1, 99, 7, 99, 2) -- notificatie niet versturen in het weekend
|
||
AND f.fin_factuur_verwijder IS NULL
|
||
GROUP BY fin_factuur_statuses_key;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aait_v_kostensoort (
|
||
prs_kostensoort_key,
|
||
prs_kostensoort_omschrijving
|
||
)
|
||
AS
|
||
SELECT prs_kostensoort_key,
|
||
prs_kostensoort_oms || '-' || prs_kostensoort_opmerking
|
||
FROM prs_kostensoort;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aait_v_mobile_phones (
|
||
ins_srtdeel_key,
|
||
ins_srtdeel_omschrijving
|
||
)
|
||
AS
|
||
SELECT ins_srtdeel_key, ins_srtdeel_omschrijving
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_code_upper = 'MO' AND ins_srtdeel_verwijder IS NULL
|
||
ORDER BY ins_srtdeel_omschrijving;
|
||
|
||
CREATE OR REPLACE VIEW aait_v_laptops (
|
||
ins_srtdeel_key,
|
||
ins_srtdeel_omschrijving
|
||
)
|
||
AS
|
||
SELECT ins_srtdeel_key, ins_srtdeel_omschrijving
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_code_upper = 'LP' AND ins_srtdeel_verwijder IS NULL
|
||
ORDER BY ins_srtdeel_omschrijving;
|
||
|
||
|
||
CREATE OR REPLACE VIEW aait_v_rap_order_corrections
|
||
(
|
||
fclt_3d_user_key,
|
||
melding,
|
||
status,
|
||
datum,
|
||
omschrijving
|
||
)
|
||
AS
|
||
SELECT gg.prs_perslid_key,
|
||
m.mld_melding_key,
|
||
s.mld_statuses_omschrijving,
|
||
m.mld_melding_datum,
|
||
m.mld_melding_omschrijving
|
||
FROM mld_melding m,
|
||
mld_statuses s,
|
||
mld_stdmelding std,
|
||
fac_groep gr,
|
||
fac_functie f,
|
||
fac_groeprechten g,
|
||
fac_gebruikersgroep gg,
|
||
alg_v_allonroerendgoed aog,
|
||
prs_v_perslidwerkplek_gegevens pwg
|
||
WHERE std.mld_ins_discipline_key = 441 -- order corrections
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND m.mld_melding_status = s.mld_statuses_key
|
||
AND g.fac_functie_key = f.fac_functie_key
|
||
AND f.fac_functie_code = 'WEB_MLDBO3'
|
||
AND g.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
|
||
AND pwg.alg_gebouw_key = aog.alg_gebouw_key
|
||
AND pwg.prs_perslid_key = gg.prs_perslid_key
|
||
AND g.fac_groep_key = gg.fac_groep_key
|
||
AND gg.fac_groep_key = gr.fac_groep_key
|
||
AND gr.fac_groep_omschrijving <> '_Admin'
|
||
AND m.mld_melding_status IN (2, 3) -- ingevoerd en ingezien
|
||
UNION ALL
|
||
SELECT gg.prs_perslid_key,
|
||
m.mld_melding_key,
|
||
s.mld_statuses_omschrijving,
|
||
m.mld_melding_datum,
|
||
m.mld_melding_omschrijving
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_statuses s,
|
||
fac_groep gr,
|
||
fac_functie f,
|
||
fac_groeprechten g,
|
||
fac_gebruikersgroep gg,
|
||
alg_v_allonroerendgoed aog,
|
||
prs_v_perslidwerkplek_gegevens pwg
|
||
WHERE std.mld_ins_discipline_key = 441 -- order corrections
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND m.mld_melding_status = s.mld_statuses_key
|
||
AND g.fac_functie_key = f.fac_functie_key
|
||
AND f.fac_functie_code = 'WEB_MLDBO2'
|
||
AND g.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
|
||
AND pwg.alg_gebouw_key = aog.alg_gebouw_key
|
||
AND pwg.prs_perslid_key = gg.prs_perslid_key
|
||
AND g.fac_groep_key = gg.fac_groep_key
|
||
AND gg.fac_groep_key = gr.fac_groep_key
|
||
AND gr.fac_groep_omschrijving <> '_Admin'
|
||
AND m.mld_melding_status IN (4);
|
||
-- geaccepteerd
|
||
|
||
|
||
CREATE OR REPLACE VIEW aait_v_noti_ordercorr (
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
par1,
|
||
par2,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT 'FACUSR',
|
||
'',
|
||
fclt_3d_user_key,
|
||
'Facilitor: There are ' || count(*) || ' Order Correction Request(s) assigned to you.',
|
||
341, -- key van rapport aait_v_rap_order_corrections
|
||
'',
|
||
'',
|
||
NULL
|
||
FROM aait_v_rap_order_corrections
|
||
GROUP BY fclt_3d_user_key;
|
||
|
||
CREATE OR REPLACE VIEW aait_v_noti_bes_accept (
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
par1,
|
||
par2,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT DISTINCT 'BESAP1',
|
||
'',
|
||
546,
|
||
'',
|
||
b.bes_bestelling_key,
|
||
'',
|
||
'',
|
||
NULL
|
||
FROM fac_v_webgebruiker g,
|
||
bes_discipline bd,
|
||
bes_bestelling b,
|
||
bes_bestelling_item bi,
|
||
bes_srtdeel sd,
|
||
bes_srtgroep sg,
|
||
( SELECT fac_tracking_refkey,
|
||
MAX (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND fac_srtnotificatie_code <> 'BESMAI'
|
||
AND fac_srtnotificatie_xmlnode = 'bestelling'
|
||
GROUP BY fac_tracking_refkey) tr
|
||
WHERE g.prs_perslid_key = 546 -- Derek Hartley
|
||
AND bd.ins_discipline_key = g.ins_discipline_key
|
||
AND b.bes_bestelling_key = bi.bes_bestelling_key
|
||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key -- 5.1.0
|
||
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key -- 5.1.0
|
||
AND sg.ins_discipline_key = g.ins_discipline_key
|
||
AND b.bes_bestelling_status = 3 -- gefiatteerd
|
||
AND tr.fac_tracking_refkey = b.bes_bestelling_key
|
||
AND tr.fac_tracking_datum > sysdate -1;
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aait_import_opdrstatus (p_import_key IN NUMBER)
|
||
AS
|
||
c_delim VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (1000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
header_is_valid NUMBER := 0;
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_import NUMBER (10) := 0;
|
||
v_ongeldig NUMBER (1) := 0;
|
||
-- De importvelden
|
||
v_msg_type VARCHAR2 (255); -- C?
|
||
v_opdrachtnr VARCHAR2 (255); -- C?
|
||
v_externnr VARCHAR2 (255); -- C?
|
||
v_actie VARCHAR2 (1000); -- C?
|
||
v_actiedatum VARCHAR2 (1000); -- DATE
|
||
v_actiedatum_d DATE; -- DATE
|
||
v_status VARCHAR2 (1000);
|
||
|
||
-- Overige velden:
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
DELETE FROM aait_imp_opdrstatusmulti
|
||
WHERE fac_import_key <> p_import_key;
|
||
|
||
COMMIT;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen te importeren rij';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_delim, v_msg_type);
|
||
fac.imp_getfield (v_newline, c_delim, v_opdrachtnr);
|
||
fac.imp_getfield (v_newline, c_delim, v_externnr);
|
||
fac.imp_getfield (v_newline, c_delim, v_actie);
|
||
fac.imp_getfield (v_newline, c_delim, v_actiedatum);
|
||
fac.imp_getfield (v_newline, c_delim, v_status);
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_msg_type
|
||
|| '|'
|
||
|| v_opdrachtnr
|
||
|| '|'
|
||
|| v_externnr
|
||
|| '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (TRIM (v_msg_type)) = 'MSG_TYPE'
|
||
AND UPPER (TRIM (v_opdrachtnr)) = 'OPDRACHTNR'
|
||
AND UPPER (TRIM (v_externnr)) = 'EXTERNNR'
|
||
AND UPPER (TRIM (v_actie)) = 'ACTIE'
|
||
AND UPPER (TRIM (v_actiedatum)) = 'ACTIEDATUM'
|
||
AND UPPER (TRIM (v_status)) = 'STATUS'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
-- Controleer alle veldwaarden
|
||
v_errormsg := 'Fout inlezen msg_type';
|
||
v_msg_type := TRIM (v_msg_type);
|
||
|
||
IF (COALESCE (v_msg_type, 'XXX') != 'UPD'
|
||
AND COALESCE (v_msg_type, 'XXX') != 'AFM')
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Berichttype ongeldig; regel wordt overgeslagen!'
|
||
);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen opdrachtnummer';
|
||
v_opdrachtnr := TRIM (v_opdrachtnr);
|
||
|
||
IF (v_opdrachtnr IS NULL)
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Opdrachtnummer verplicht; regel wordt overgeslagen!'
|
||
);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen externnr';
|
||
v_externnr := TRIM (v_externnr);
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen actie';
|
||
v_actie := TRIM (REPLACE (v_actie, '%%0A', CHR (13) || CHR (10)));
|
||
|
||
--
|
||
v_errormsg := 'Fout inlezen actiedatum';
|
||
v_actiedatum := TRIM (v_actiedatum);
|
||
|
||
IF (v_actiedatum IS NOT NULL)
|
||
THEN
|
||
IF (fac.safe_to_date (v_actiedatum, 'dd-mm-yyyy hh24:mi') IS NULL)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Actiedatum ongeldig!');
|
||
v_actiedatum := NULL;
|
||
ELSE
|
||
v_actiedatum_d :=
|
||
fac.safe_to_date (v_actiedatum, 'dd-mm-yyyy hh24:mi');
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF (v_ongeldig = 0)
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout toevoegen didstatus';
|
||
|
||
INSERT INTO aait_imp_opdrstatusmulti (fac_import_key,
|
||
imp_log_timestamp,
|
||
msg_type,
|
||
opdrachtnr,
|
||
externnr,
|
||
actie,
|
||
actiedatum,
|
||
status)
|
||
VALUES (p_import_key,
|
||
SYSDATE,
|
||
SUBSTR (v_msg_type, 1, 30),
|
||
SUBSTR (v_opdrachtnr, 1, 15),
|
||
SUBSTR (v_externnr, 1, 15),
|
||
SUBSTR (v_actie, 1, 1000),
|
||
v_actiedatum_d,
|
||
SUBSTR (v_status, 1, 100));
|
||
|
||
v_count_import := v_count_import + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Fout bij toevoegen regel aan importtabel AAIT_IMP_OPDRSTATUSMULTI.'
|
||
);
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
-- verwijder de entries uit de imp_file omdat er meerdere bestanden in <20><>n run ingelezen kunnen worden.
|
||
DELETE fac_imp_file WHERE fac_import_key = p_import_key;
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Ongeldig importbestand',
|
||
'Geen header of header niet volgens specificatie!');
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Inleesproces opdrachtstatusberichten afgebroken!');
|
||
END;
|
||
/
|
||
|
||
/* Formatted on 4-2-2011 17:04:50 (QP5 v5.115.810.9015) */
|
||
CREATE OR REPLACE PROCEDURE aait_update_opdrstatus (p_import_key IN NUMBER)
|
||
AS
|
||
-- Cursor loopt - in volgorde! - over alle ingelezen opdrachtstatusberichten.
|
||
CURSOR c1
|
||
IS
|
||
SELECT imp_log_timestamp,
|
||
msg_type,
|
||
opdrachtnr,
|
||
externnr,
|
||
actie,
|
||
actiedatum,
|
||
coalesce(status,'Onbekend') status
|
||
FROM aait_imp_opdrstatusmulti
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY actiedatum, imp_log_timestamp, msg_type DESC, opdrachtnr;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_count_tot NUMBER (10);
|
||
v_count NUMBER (10);
|
||
v_mld_key NUMBER (10) := 0;
|
||
v_opdr_key NUMBER (10) := 0;
|
||
v_opdr_status NUMBER (10) := 0;
|
||
BEGIN
|
||
-- Loop door alle geimporteerde opdrachtstatusberichten en verwerk deze.
|
||
v_count_tot := 0;
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := '[' || rec.msg_type || '|' || rec.opdrachtnr || '] ';
|
||
v_count_tot := v_count_tot + 1;
|
||
v_count := 0;
|
||
|
||
-- Key van melding/opdracht bepalen en externnr bij opdracht opslaan.
|
||
IF (rec.opdrachtnr IS NOT NULL)
|
||
THEN
|
||
v_errormsg := 'Fout bij bepalen melding/opdracht.';
|
||
|
||
SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key
|
||
INTO v_mld_key, v_opdr_key, v_opdr_status
|
||
FROM mld_opdr
|
||
WHERE mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr =
|
||
rec.opdrachtnr;
|
||
END IF;
|
||
|
||
-- Bijwerken Opmerking met actie (bovenin melding en opdracht).
|
||
IF (rec.actie IS NOT NULL)
|
||
THEN
|
||
v_errormsg := 'Fout bij bijwerken opdracht-opmerking.';
|
||
|
||
v_count := LENGTH (rec.actie) + 5; -- Beetje speling qua lengte!
|
||
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_opmerking = rec.actie
|
||
WHERE mld_opdr_key = v_opdr_key;
|
||
|
||
v_errormsg := 'Fout bij bijwerken melding-opmerking.';
|
||
|
||
UPDATE mld_melding
|
||
SET mld_melding_opmerking = rec.actie
|
||
WHERE mld_melding_key = v_mld_key
|
||
AND mld_melding_status IN (4, 7);
|
||
|
||
COMMIT;
|
||
END IF;
|
||
|
||
-- Accepteer opdracht (als msg_type=UPD en nog niet al geaccepteerd)!
|
||
IF (rec.msg_type = 'UPD' AND v_opdr_status = 5)
|
||
THEN
|
||
v_errormsg := 'Fout bij accepteren opdracht.';
|
||
|
||
MLD.setopdrachtstatus (v_opdr_key, 8, 4); -- Facilitor
|
||
|
||
COMMIT;
|
||
END IF;
|
||
|
||
-- Sluit opdracht (als msg_type=AFM); de bovenliggende melding wordt
|
||
-- tevens gesloten als het de laatste opdracht is!
|
||
IF (rec.msg_type = 'AFM'
|
||
AND (v_opdr_status = 5 OR v_opdr_status = 8))
|
||
THEN
|
||
v_errormsg := 'Fout bij sluiten opdracht.';
|
||
|
||
MLD.setopdrachtstatus (v_opdr_key, 6, 4); -- Facilitor
|
||
|
||
COMMIT;
|
||
|
||
IF rec.status <> 'Niet opgelost' THEN
|
||
v_errormsg := 'Fout bij sluiten melding.';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM (SELECT m.mld_melding_key,
|
||
(SELECT COUNT ( * )
|
||
FROM mld_opdr o
|
||
WHERE mld_melding_key = m.mld_melding_key)
|
||
aanw_opdr,
|
||
(SELECT COUNT ( * )
|
||
FROM mld_opdr o
|
||
WHERE mld_melding_key = m.mld_melding_key
|
||
AND o.mld_statusopdr_key NOT IN
|
||
(1, 2, 6, 7, 9))
|
||
open_opdr
|
||
FROM mld_melding m
|
||
WHERE m.mld_melding_key = v_mld_key
|
||
AND m.mld_melding_status IN (4, 7))
|
||
niet_opgelost
|
||
WHERE aanw_opdr > 0 AND open_opdr = 0;
|
||
|
||
IF (v_count = 1)
|
||
THEN
|
||
MLD.setmeldingstatus (v_mld_key, 5, 4); -- Facilitor
|
||
MLD.mld_nextworkflowstep (v_mld_key, 1); -- Succes
|
||
COMMIT;
|
||
END IF;
|
||
ELSE
|
||
BEGIN MLD.updatemeldingstatus (v_mld_key, 0, 4); END;
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
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_aanduiding || v_errormsg,
|
||
'Fout bij verwerken opdrachtstatusbericht.');
|
||
END;
|
||
END LOOP;
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
-- export om opdrachten aan te maken bij meldingen met auto-order die onderdeel
|
||
-- uitmaken van een workflow. Bijkomend voordeel is dat deze functie ook de
|
||
-- opdrachten aanmaakt bij meldingen met auto-order waarbij abusievelijk geen
|
||
-- opdracht aangemaakt is.
|
||
CREATE OR REPLACE PROCEDURE aait_export_autoorder (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT m.mld_melding_key,
|
||
m.prs_kostenplaats_key,
|
||
m.mld_melding_omschrijving,
|
||
MAX (bdl.prs_bedrijf_key) prs_bedrijf_key,
|
||
std.mld_typeopdr_key,
|
||
m.mld_melding_einddatum,
|
||
m.mld_melding_status
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
prs_dienst d,
|
||
prs_bedrijfdienstlocatie bdl
|
||
WHERE m.mld_melding_status IN (2, 3, 4) -- Ingevoerd, Ingezien, Geaccepteerd
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_stdmelding_autoorder = 1
|
||
AND std.prs_dienst_key = bdl.prs_dienst_key
|
||
AND mld_melding_datum > SYSDATE - 1 -- voorkom dat oude meldingen ineens verstuurd gaan worden
|
||
AND mld_melding_datum < SYSDATE - (1/96) -- voorkom dat meldingen die nog bezig zijn met aanmaken al aangepast worden.
|
||
AND std.mld_typeopdr_key IS NOT NULL
|
||
AND NOT EXISTS (SELECT mld_melding_key
|
||
FROM mld_opdr o
|
||
WHERE mld_melding_key = m.mld_melding_key)
|
||
GROUP BY mld_melding_key,
|
||
prs_kostenplaats_key,
|
||
mld_melding_omschrijving,
|
||
mld_typeopdr_key,
|
||
mld_melding_einddatum,
|
||
mld_melding_status;
|
||
|
||
CURSOR c_flex (c_melding_key NUMBER)
|
||
IS
|
||
SELECT sk.mld_srtkenmerk_kenmerktype,
|
||
sk.mld_srtkenmerk_omschrijving,
|
||
DECODE (
|
||
sk.mld_srtkenmerk_kenmerktype,
|
||
'S',
|
||
fac.getdomeinwaarde (sk.fac_kenmerkdomein_key,
|
||
mld_kenmerkmelding_waarde),
|
||
'R',
|
||
fac.getdomeinwaarde (sk.fac_kenmerkdomein_key,
|
||
mld_kenmerkmelding_waarde),
|
||
mld_kenmerkmelding_waarde) waarde
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE mld_melding_key = c_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
ORDER BY k.mld_kenmerk_volgnummer;
|
||
|
||
v_opdr_key NUMBER;
|
||
v_notificatie_code VARCHAR2(20);
|
||
v_mld_opdr_bedrijfopdr_volgnr NUMBER;
|
||
v_melding_omschrijving VARCHAR2(4000);
|
||
BEGIN
|
||
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
-- eerst even de status naar geaccepteerd zetten.
|
||
IF rec.mld_melding_status <> 4 THEN
|
||
MLD.setmeldingstatus (rec.mld_melding_key, 4, 4); -- Geaccepteerd, Facilitor
|
||
END IF;
|
||
|
||
v_melding_omschrijving := NULL;
|
||
FOR rec_flex IN c_flex(rec.mld_melding_key)
|
||
LOOP
|
||
BEGIN
|
||
v_melding_omschrijving := v_melding_omschrijving || rec_flex.mld_srtkenmerk_omschrijving || ': ' || rec_flex.waarde || chr(10);
|
||
END;
|
||
END LOOP;
|
||
|
||
v_mld_opdr_bedrijfopdr_volgnr := mld.BepaalOpdrMeldingVolgnr (rec.mld_melding_key);
|
||
|
||
INSERT INTO mld_opdr (mld_melding_key
|
||
, prs_kostenplaats_key
|
||
, mld_typeopdr_key
|
||
, prs_perslid_key
|
||
, mld_uitvoerende_keys
|
||
, mld_opdr_datumbegin
|
||
, mld_opdr_einddatum
|
||
, mld_opdr_module
|
||
, mld_opdr_omschrijving
|
||
, mld_opdr_bedrijfopdr_volgnr
|
||
, mld_opdr_teverzenden)
|
||
VALUES ( rec.mld_melding_key
|
||
, rec.prs_kostenplaats_key
|
||
, rec.mld_typeopdr_key
|
||
, 4 -- facilitor
|
||
, rec.prs_bedrijf_key
|
||
, SYSDATE
|
||
, rec.mld_melding_einddatum
|
||
, 'MLD'
|
||
, v_melding_omschrijving || rec.mld_melding_omschrijving
|
||
, v_mld_opdr_bedrijfopdr_volgnr
|
||
, 1)
|
||
RETURNING mld_opdr_key INTO v_opdr_key;
|
||
|
||
MLD.setopdrachtstatus(v_opdr_key , 5, 4); -- uitgegeven, Facilitor
|
||
|
||
SELECT DECODE (u.type, 'P', 'ORDMLI', 'ORDMLE')
|
||
INTO v_notificatie_code
|
||
FROM mld_v_uitvoerende u
|
||
WHERE u.mld_uitvoerende_key = rec.prs_bedrijf_key;
|
||
|
||
FAC.trackaction(v_notificatie_code, v_opdr_key, 4, NULL, NULL);
|
||
|
||
-- update melding status
|
||
MLD.updatemeldingstatus (rec.mld_melding_key, 0, 4); -- facilitor
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (p_applname
|
||
, 'E'
|
||
, 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')'
|
||
, 'Fout bij aanmaken opdracht: ' || rec.mld_melding_key);
|
||
|
||
END;
|
||
END LOOP;
|
||
END aait_export_autoorder;
|
||
/
|
||
|
||
|
||
-- packages tbv rapportages
|
||
CREATE OR REPLACE PACKAGE AAIT_RAP
|
||
AS
|
||
-- PACKAGES voor de Connexxion specifieke rapportages
|
||
TYPE t_cursor IS REF CURSOR;
|
||
|
||
PROCEDURE afmeld_user (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2,
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY AAIT_RAP
|
||
AS
|
||
--
|
||
--Rapportages
|
||
--
|
||
PROCEDURE afmeld_user (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor)
|
||
AS
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
v_alg_level_read NUMBER;
|
||
BEGIN
|
||
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
|
||
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy');
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT prs_perslid_naam_full,
|
||
d.ins_discipline_omschrijving,
|
||
COUNT (mld_melding_key)
|
||
FROM fac_tracking t,
|
||
prs_v_perslid_fullnames_all pf,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d
|
||
WHERE fac_srtnotificatie_key = 22 --mldafm
|
||
AND t.prs_perslid_key = pf.prs_perslid_key
|
||
AND fac_tracking_refkey = m.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 = 22 -- IT helpdesk
|
||
AND fac_tracking_datum BETWEEN v_datum_van AND v_datum_tot
|
||
GROUP BY prs_perslid_naam_full, ins_discipline_omschrijving;
|
||
END;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW aait_v_graph_citrix_melding
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_,
|
||
FCLT_URL,
|
||
FCLT_3D_DISCIPLINE_KEY
|
||
)
|
||
AS
|
||
SELECT mld_stdmelding_omschrijving,
|
||
COUNT (mld_stdmelding_omschrijving) aantal,
|
||
'appl/mld/mld_search.asp?urole=fo&autosearch=1&stdm_str=',
|
||
std.mld_stdmelding_key
|
||
FROM mld_melding m, mld_stdmelding std
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = 421 -- Citrix (AAFM)
|
||
AND mld_melding_status IN (2, 3, 4, 7, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending
|
||
GROUP BY std.mld_stdmelding_key, mld_stdmelding_omschrijving;
|
||
|
||
CREATE OR REPLACE VIEW aait_v_afdelingniv12
|
||
(
|
||
prs_afdeling_key,
|
||
omschrijving
|
||
)
|
||
AS
|
||
SELECT a1.prs_afdeling_key,
|
||
a1.prs_afdeling_naam
|
||
|| ' ['
|
||
|| a1.prs_afdeling_omschrijving
|
||
|| ']'
|
||
FROM PRS_AFDELING a1
|
||
WHERE a1.prs_afdeling_parentkey IS NULL
|
||
AND a1.prs_afdeling_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT a2.prs_afdeling_key,
|
||
a2.prs_afdeling_naam
|
||
|| ' ['
|
||
|| a2.prs_afdeling_omschrijving
|
||
|| ']'
|
||
FROM PRS_AFDELING a1, PRS_AFDELING a2
|
||
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
|
||
AND a1.prs_afdeling_parentkey IS NULL
|
||
AND a2.prs_afdeling_verwijder IS NULL;
|
||
|
||
BEGIN adm.systrackscript('$Workfile: aait.sql $', '$Revision$', 0); END;
|
||
/
|
||
|
||
BEGIN fac.registercustversion('AAIT', 38); END;
|
||
/
|
||
|
||
COMMIT;
|
||
|
||
SPOOL OFF
|
||
|