Files
Customer/WZUV/WZUV.SQL
Suzan Wiegerinck 4234a810c1 WZUV#57812 57812: De SSO werkt niet
svn path=/Customer/trunk/; revision=42529
2019-05-15 10:37:31 +00:00

2976 lines
111 KiB
SQL
Raw Blame History

-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
DEFINE thisfile = 'WZUV.SQL'
DEFINE dbuser = '^WZUV'
DEFINE custid = 'WZUV'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile ('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin -----
CREATE OR REPLACE PROCEDURE wzuv_import_perslid (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (400);
v_errorhint VARCHAR2 (400);
v_aantal_in_FCLT NUMBER;
BEGIN
v_errorhint := 'Generieke update';
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
prs.import_perslid (
p_import_key,
'0;0;0;0;0;0;6;12;11;8;'
|| '0;10;9;13;3;0;0;2;0;1;'
|| '7;0;0;0;0;0;0;0;0;0;'
|| '4;5;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0',
'"Mdw.";"Email werk";"Geslacht";"Werklocatie";"Org. eenheid";"Kostpl.";"Functie";"Roepnaam";"Voorvoegsel partner";"Geb.naam partner";"Voorv. geb.naam";"Geboortenaam";"Naamgebruik code"%');
COMMIT;
-- De os_login kan worden afgeleid vanuit het email adres
UPDATE FAC_IMP_PERSLID
SET prs_perslid_oslogin =
(TRIM(SUBSTR (prs_perslid_email,
1,
INSTR (prs_perslid_email, '@', 1) - 1)));
--- overbodige tekens uit het perslidnummer vewijderen
UPDATE FAC_IMP_PERSLID
SET prs_perslid_nr = TRIM (prs_perslid_nr);
--- de tab uit het perslidnummer verwijderen
UPDATE FAC_IMP_PERSLID
SET prs_perslid_nr = REPLACE (prs_perslid_nr, CHR (9));
--- De afdelingnaam kan worden herleid worden obv de afdelingomschrijving
UPDATE FAC_IMP_PERSLID I
SET PRS_AFDELING_NAAM =
(SELECT A.PRS_AFDELING_NAAM
FROM PRS_AFDELING A
WHERE A.PRS_AFDELING_OMSCHRIJVING = I.PRS_KENMERK6
AND A.PRS_AFDELING_VERWIJDER IS NULL
AND A.PRS_KOSTENPLAATS_KEY IS NOT NULL);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
END wzuv_import_perslid;
/
CREATE OR REPLACE PROCEDURE wzuv_update_perslid (p_import_key IN NUMBER)
IS
-- Alle medewerkers (bedrijf is WZU, key 41) verwijderen die niet meer in import bestand voorkomen.
-- Match bij WZUV is personeelnummer, hieronder de query om alle personen te verwijderen die:
-- a) niet meer in het importbestand staan, wel in Facilitor, en
-- b) waarvan de persoon in Facilitor een gevulde personeelsnummer heeft (leeg personeelsnummer van af blijven, dit handmatig ingevoerde persleden)
-- c) waarvan de persoon in Facilitor niet begint met een _ in de loginnaam (ook van af blijven)
CURSOR c_del
IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
FROM fac_imp_perslid i,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_v_afdeling a
WHERE UPPER (p.prs_perslid_nr) = UPPER (i.prs_perslid_nr(+))
AND p.prs_perslid_verwijder IS NULL
AND SUBSTR (p.prs_perslid_oslogin, 1, 1) <> '_'
AND p.prs_perslid_nr IS NOT NULL
AND pf.prs_perslid_key = p.prs_perslid_key
AND i.prs_perslid_nr IS NULL
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = 41
ORDER BY 2;
v_count NUMBER;
BEGIN
-- generic update
-- 'LOGIN' betekent dat op basis van Login wordt gematched.
-- 'NR' betekent dat op basis van Personeelsnummer wordt gematched.
-- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen
prs.update_perslid (p_import_key, 'NR', NULL);
-- Verwijder personen die niet meer in de import voorkomen.
FOR rec IN c_del
LOOP
BEGIN
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END;
END LOOP;
-- we zetten de werklocatie goed op basis van de locatie in de importtabel
END wzuv_update_perslid;
/
CREATE OR REPLACE PROCEDURE wzuv_import_client (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (400);
v_errorhint VARCHAR2 (400);
v_aantal_in_FCLT NUMBER;
BEGIN
v_errorhint := 'Generieke update';
UPDATE FAC_IMP_FILE
SET fac_imp_file_line = REPLACE (fac_imp_file_line, ',', ';')
WHERE fac_import_key = p_import_key;
UPDATE FAC_IMP_FILE
SET fac_imp_file_line = REPLACE (fac_imp_file_line, '"', '')
WHERE fac_import_key = p_import_key;
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
prs.import_perslid (
p_import_key,
'0;0;0;0;0;0;1;4;3;0;'
|| '2;6;5;8;7;0;0;0;0;1;'
|| '1;0;0;0;0;0;9;10;0;0;'
|| '0;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0',
-- 'identificatie;voornaam;initialen;tussenvoegsel;achternaam eigen;tussenvoegsel partner;achternaam partner;geslacht;naamsamenstelling;geboortedatum;straat;huisnummer;huisnummertoevoeging;postcode;plaats;BSN;locatie naam;locatie id%');
'identificatie;initialen;tussenvoegsel;achternaam eigen;tussenvoegsel partner;achternaam partner;geslacht;naamsamenstelling;locatie naam;locatie id%');
--- De afdeling is altijd 'CLIENT'
UPDATE FAC_IMP_PERSLID I
SET PRS_AFDELING_NAAM = 'CLIENT';
--- De functie is altijd 'Cli<6C>nt'
UPDATE FAC_IMP_PERSLID I
SET PRS_SRTPERSLID_OMSCHRIJVING = 'Cli<EFBFBD>nt';
--- Om te voorkomen dat cli<6C>ntnummers identiek zijn aan personeelsnummers vullen we deze aan
UPDATE FAC_IMP_PERSLID I
SET PRS_PERSLID_NR = 'Nedap-' || prs_perslid_nr;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
END wzuv_import_client;
/
CREATE OR REPLACE PROCEDURE wzuv_update_client (p_import_key IN NUMBER)
IS
-- Alle cli<6C>nten (bedrijf is Cli<6C>nt, key 8393) verwijderen die niet meer in import bestand voorkomen.
-- Match bij WZUV is personeelnummer, hieronder de query om alle personen te verwijderen die:
-- a) niet meer in het importbestand staan, wel in Facilitor, en
-- b) waarvan de persoon in Facilitor niet begint met een _ in de loginnaam (ook van af blijven)
CURSOR c_del
IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
FROM fac_imp_perslid i,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_v_afdeling a
WHERE UPPER (p.prs_perslid_nr) = UPPER (i.prs_perslid_nr(+))
AND p.prs_perslid_verwijder IS NULL
AND SUBSTR (p.prs_perslid_oslogin, 1, 1) <> '_'
AND pf.prs_perslid_key = p.prs_perslid_key
AND i.prs_perslid_nr IS NULL
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = 8393
ORDER BY 2;
v_count NUMBER;
BEGIN
-- generic update
-- 'LOGIN' betekent dat op basis van Login wordt gematched.
-- 'NR' betekent dat op basis van Personeelsnummer wordt gematched.
-- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen
prs.update_perslid (p_import_key, 'NR', NULL);
-- Verwijder personen die niet meer in de import voorkomen.
FOR rec IN c_del
LOOP
BEGIN
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END;
END LOOP;
END wzuv_update_client;
/
CREATE OR REPLACE FORCE VIEW WZUV_V_INS_QRC_RUIMTE
(
FCLT_3D_LOCATIE_KEY,
FCLT_F_LOCATIE,
FCLT_F_GEBOUW,
PLAATS,
SOORTRUIMTE,
INS_ALG_RUIMTE_TYPE,
ALG_RUIMTE_OMSCHRIJVING,
ALG_DISTRICT_KEY,
ALG_RUIMTE_NR,
ALG_RUIMTE_KEY,
HIDE_F_BOOKMARK_ID
)
AS
SELECT l.alg_locatie_key,
l.alg_locatie_omschrijving,
x.alg_gebouw_naam,
SUBSTR (x.alg_plaatsaanduiding, 7) plaats,
x.alg_ruimte_omschrijving soortruimte,
sr.alg_srtruimte_omschrijving,
r.alg_ruimte_omschrijving,
l.alg_district_key,
x.alg_plaatsaanduiding,
r.alg_ruimte_key,
b.fac_bookmark_id
FROM ALG_V_ALLONRGOED_GEGEVENS x,
alg_locatie l,
alg_district di,
fac_bookmark b,
alg_ruimte r,
alg_srtruimte sr
WHERE b.fac_bookmark_naam = 'QRC naar ruimte'
AND X.ALG_RUIMTE_KEY = R.ALG_RUIMTE_KEY
AND R.ALG_SRTRUIMTE_KEY = SR.ALG_SRTRUIMTE_KEY
AND x.alg_locatie_key = L.ALG_LOCATIE_KEY
AND l.alg_district_key = di.alg_district_key;
--8441 Huismeester
--1842 Huismeester/Technische dienst
--1786 Medewerker Facilitaire dienst
--1845 Assistent Technische dienst
CREATE OR REPLACE VIEW WZUV_V_HUISMEESTERS
(
prs_perslid_key,
naam,
verwijder
)
AS
SELECT prs_perslid_key,
prs_perslid_naam
|| ', '
|| prs_perslid_tussenvoegsel
|| ' ('
|| prs_perslid_voornaam
|| ')'
AS naam,
prs_perslid_verwijder
FROM prs_perslid
WHERE prs_srtperslid_key IN (8441, 1842, 1786, 1845);
CREATE OR REPLACE VIEW WZUV_V_GEBOUW_KPL
(
kpl_key,
omschrijving
)
AS
SELECT prs_kostenplaats_key,
prs_kostenplaats_nr || ' ' || prs_kostenplaats_omschrijving
FROM PRS_V_AANWEZIGKOSTENPLAATS
WHERE prs_kostenplaats_module = 'ALG';
COMMIT;
-- alle ruimtereserveringen en catering met status 5 kan gefactureerd worden
-- en cateraar heeft aangegeven dat het geleverd is
CREATE OR REPLACE VIEW WZUV_V_RAP_RES
(
PERSNR,
RESERVERING,
ARTIKELCODE,
AANTAL,
BEDRAG,
FACTUURPERIODE,
SOORT,
OMSCHRIJVING,
INT_EXT,
KOSTENPLAATS,
RES_RSV_RUIMTE_KEY,
MAAND
)
AS
SELECT CASE
WHEN UPPER (p.prs_perslid_nr) LIKE 'NEDAP%'
THEN
SUBSTR (p.prs_perslid_nr, 7)
ELSE
p.prs_perslid_nr
END
AS persnr,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
TO_CHAR (ar.alg_ruimte_key),
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
0)
duur_ruimte,
rrr.res_rsv_ruimte_prijs,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm-yyyy') factuurperiode,
'Ruimte',
TO_CHAR (rrr.res_rsv_ruimte_van, 'month yyyy')
|| ' - Reserveringsnummer: '
|| rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
|| ' - '
|| rr.res_ruimte_nr
aanduiding,
DECODE (prs_afdeling_key, 422, 'Cli<EFBFBD>nt', 'Intern') soort,
kpl_ruimte.prs_kostenplaats_nr,
rrr.res_rsv_ruimte_key,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm')
FROM res_rsv_ruimte rrr,
prs_perslid p,
prs_kostenplaats kp,
res_v_rsv_ruimte_2_alg_ruimte ar,
alg_v_allonroerendgoed aog,
res_ruimte rr,
(SELECT kpr.*, kpl.prs_kostenplaats_nr
FROM alg_onrgoedkenmerk kpr, prs_kostenplaats kpl
WHERE kpr.alg_kenmerk_key = 1061
AND kpr.alg_onrgoedkenmerk_waarde =
kpl.prs_kostenplaats_key) kpl_ruimte
WHERE rrr.res_status_bo_key = 5
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND res_rsv_ruimte_host_key = p.prs_perslid_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND ar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ar.res_ruimte_key = rr.res_ruimte_key
AND ar.alg_ruimte_key = aog.alg_ruimte_key
AND kpl_ruimte.alg_onrgoed_key(+) = aog.alg_gebouw_key
UNION ALL
SELECT CASE
WHEN UPPER (p.prs_perslid_nr) LIKE 'NEDAP%'
THEN
SUBSTR (p.prs_perslid_nr, 7)
ELSE
p.prs_perslid_nr
END
AS persnr,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
a.res_artikel_nr,
ra.res_rsv_artikel_aantal,
ra.res_rsv_artikel_prijs,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm-yyyy') factuurperiode,
'Catering',
TO_CHAR (rrr.res_rsv_ruimte_van, 'month yyyy')
|| ' - '
|| TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)
|| ' - '
|| TO_CHAR (a.res_artikel_omschrijving)
aanduiding,
DECODE (p.prs_afdeling_key, 422, 'Cli<EFBFBD>nt', 'Intern') soort,
kpl_cat.prs_kostenplaats_nr,
rrr.res_rsv_ruimte_key,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm')
FROM res_rsv_artikel ra,
res_rsv_ruimte rrr,
res_artikel a,
prs_perslid p,
prs_kostenplaats kp,
res_v_rsv_ruimte_2_alg_ruimte ar,
alg_v_allonroerendgoed aog,
(SELECT kpr.*, kpl.prs_kostenplaats_nr
FROM alg_onrgoedkenmerk kpr, prs_kostenplaats kpl
WHERE kpr.alg_kenmerk_key = 1060
AND kpr.alg_onrgoedkenmerk_waarde =
kpl.prs_kostenplaats_key) kpl_cat
WHERE ra.res_status_bo_key = 5
AND rrr.res_rsv_ruimte_flag = 2
AND ra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ra.res_artikel_key = a.res_artikel_key
AND ra.res_rsv_artikel_dirtlevel = 0
AND ra.res_rsv_artikel_verwijder IS NULL
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND ar.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND (aog.alg_ruimte_key = rrr.alg_ruimte_key
OR aog.alg_ruimte_key = ar.alg_ruimte_key)
AND kpl_cat.alg_onrgoed_key(+) = aog.alg_gebouw_key;
CREATE OR REPLACE VIEW WZUV_V_RUIMTES
AS
SELECT alg_onroerendgoed_keys,
alg_gebouw_code
|| ' - '
|| alg_verdieping_omschrijving
|| ' - '
|| alg_ruimte_nr
|| ' - '
|| alg_ruimte_omschrijving
AS RUIMTE
FROM alg_v_allonrgoed_gegevens
WHERE alg_ruimte_key IS NOT NULL;
CREATE OR REPLACE VIEW WZUV_V_APPARTEMENTEN
AS
SELECT r.alg_ruimte_key,
og.alg_gebouw_code
|| '-'
|| og.alg_verdieping_code
|| '-'
|| og.alg_ruimte_omschrijving
AS APPARTEMENT
FROM alg_v_allonrgoed_gegevens og, alg_ruimte r
WHERE og.alg_type = 'R'
AND r.alg_ruimte_key = og.alg_ruimte_key
AND r.alg_srtruimte_key = 17;
CREATE OR REPLACE PROCEDURE wzuv_select_reservering (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- status is geregistreerd (2)
-- de reservering ligt in het verleden
-- dan kan de ruimte prijs berekend worden
CURSOR cres
IS
SELECT res_rsv_ruimte_key,
res_reservering_key || '/' || res_rsv_ruimte_volgnr aanduiding
FROM res_rsv_ruimte rrr
WHERE rrr.res_status_bo_key = 2
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND fac.count_work_days (res_rsv_ruimte_tot, SYSDATE) > 0;
-- catering is geleverd (flag = 2)
-- dan mag de catering berekend worden
-- voor de zekerheid controleren we ook of de reservering in het verleden ligt
CURSOR cart
IS
SELECT TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)
|| ' - '
|| TO_CHAR (a.res_artikel_omschrijving)
aanduiding,
ra.res_rsv_ruimte_key,
ra.res_rsv_artikel_key,
ra.res_artikel_key,
a.res_artikel_omschrijving
FROM res_rsv_artikel ra, res_rsv_ruimte rrr, res_artikel a
WHERE ra.res_status_bo_key = 2
AND ra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ra.res_artikel_key = a.res_artikel_key
AND ra.res_rsv_artikel_dirtlevel = 0
AND ra.res_rsv_artikel_verwijder IS NULL
AND fac.count_work_days (res_rsv_artikel_levering, SYSDATE) > 0
AND rrr.res_rsv_ruimte_flag = 2;
v_prijs NUMBER (9, 2);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
FOR rc IN cres
LOOP
BEGIN
v_errorhint := 'Fout bij bepalen res_rsv_ruimte_prijs.';
SELECT res.getruimteprijs (rc.res_rsv_ruimte_key)
INTO v_prijs
FROM DUAL;
v_errorhint := 'Fout bij bijwerken res_rsv_ruimte_prijs.';
UPDATE res_rsv_ruimte
SET res_status_bo_key = 5, res_rsv_ruimte_prijs = v_prijs
WHERE res_rsv_ruimte_key = rc.res_rsv_ruimte_key;
fac.trackaction ('RESAFM',
rc.res_rsv_ruimte_key,
NULL,
NULL,
NULL);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (p_applname,
'W',
rc.aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
FOR rc IN cart
LOOP
BEGIN
v_errorhint := 'Fout bij bepalen res_rsv_artikel_prijs.';
SELECT res.getartikelprijs (rc.res_rsv_artikel_key)
INTO v_prijs
FROM DUAL;
v_errorhint := 'Fout bij bijwerken res_rsv_artikel_prijs.';
UPDATE res_rsv_artikel
SET res_status_bo_key = 5,
res_rsv_artikel_prijs = v_prijs,
res_rsv_artikel_inkoopprijs =
(SELECT res_artikel_inkoopprijs
FROM res_artikel
WHERE res_artikel_key = rc.res_artikel_key),
res_rsv_artikel_btw =
(SELECT res_artikel_btw
FROM res_artikel
WHERE res_artikel_key = rc.res_artikel_key)
WHERE res_rsv_artikel_key = rc.res_rsv_artikel_key;
fac.trackaction (
'RESAFM',
rc.res_rsv_ruimte_key,
NULL,
NULL,
'Catering ' || rc.res_artikel_omschrijving || ' afgemeld');
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (p_applname,
'W',
rc.aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE wzuv_export_reservering (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
-- status is afgemeld
-- de reservering ligt in het verleden
-- dan kan de ruimte prijs berekend worden
CURSOR cres
IS
SELECT res_rsv_ruimte_key,
res_reservering_key || '/' || res_rsv_ruimte_volgnr aanduiding
FROM res_rsv_ruimte rrr
WHERE rrr.res_status_bo_key = 5
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND fac.count_work_days (res_rsv_ruimte_tot, SYSDATE) > 0;
-- catering is geleverd (flag = 2)
-- dan mag de catering berekend worden
-- voor de zekerheid controleren we ook of de reservering in het verleden ligt
-- status is afgemeld
CURSOR cart
IS
SELECT TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)
|| ' - '
|| TO_CHAR (a.res_artikel_omschrijving)
aanduiding,
ra.res_rsv_ruimte_key,
ra.res_rsv_artikel_key,
ra.res_artikel_key,
a.res_artikel_omschrijving
FROM res_rsv_artikel ra, res_rsv_ruimte rrr, res_artikel a
WHERE ra.res_status_bo_key = 5
AND ra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ra.res_artikel_key = a.res_artikel_key
AND ra.res_rsv_artikel_dirtlevel = 0
AND ra.res_rsv_artikel_verwijder IS NULL
AND fac.count_work_days (res_rsv_artikel_levering, SYSDATE) > 0
AND rrr.res_rsv_ruimte_flag = 2;
--- wzuv_rap_res bevat alle reserveringen met status 5 - afgemeld
--- al deze regels moeten uiteindelijk ook bij de reservering zichtbaar zijn vanuit de verkoopfactuurtabellen en krijgen dan status 6 - verwerkt
--- tbv van de export worden deze ook in de fac_rapport tabel gezet
CURSOR c
IS
SELECT *
FROM WZUV_V_RAP_RES
ORDER BY res_rsv_ruimte_key;
v_ruimte_key_prev NUMBER;
v_verkoopfactuurkop_key NUMBER;
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
v_ruimte_key_prev := 1;
FOR rec IN c
LOOP
IF rec.res_rsv_ruimte_key <> v_ruimte_key_prev
THEN
v_ruimte_key_prev := rec.res_rsv_ruimte_key;
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
VALUES (rec.reservering)
RETURNING fin_verkoopfactuurkop_key
INTO v_verkoopfactuurkop_key;
END IF;
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
fin_verkoopfactuur_datum,
fin_verkoopfactuur_omschr,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey,
prs_kostenplaats_nr,
prs_debiteur_naam,
fin_verkoopfactuur_bedrag,
fin_verkoopfactuur_maand,
fin_verkoopfactuur_c1)
VALUES (v_verkoopfactuurkop_key, --key
TO_CHAR (rec.factuurperiode), ---id
SYSDATE, -- datum
rec.omschrijving, --omsch
'reservering', ---xml
rec.res_rsv_ruimte_key, --refkey
rec.kostenplaats, ---kostenplnr
rec.persnr, -- debnaam
rec.bedrag, --- bedrag
rec.maand, ---- maand
rec.soort --- c1
);
COMMIT;
END LOOP;
FOR rc IN cres
LOOP
BEGIN
UPDATE res_rsv_ruimte
SET res_status_bo_key = 6
WHERE res_rsv_ruimte_key = rc.res_rsv_ruimte_key;
fac.trackaction ('RESVER',
rc.res_rsv_ruimte_key,
NULL,
NULL,
NULL);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (p_applname,
'W',
rc.aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
FOR rc IN cart
LOOP
BEGIN
UPDATE res_rsv_artikel
SET res_status_bo_key = 6
WHERE res_rsv_artikel_key = rc.res_rsv_artikel_key;
fac.trackaction (
'RESVER',
rc.res_rsv_ruimte_key,
NULL,
NULL,
'Catering ' || rc.res_artikel_omschrijving || ' verwerkt');
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (p_applname,
'W',
rc.aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
END;
/
CREATE OR REPLACE VIEW WZUV_V_EXPORT_RESERVERING
(
RESULT,
RESULT_ORDER
)
AS
SELECT persnr
|| ';'
|| artikelcode
|| ';'
|| aantal
|| ';'
|| bedrag
|| ';'
|| omschrijving
|| ';'
|| kostenplaats,
reservering
FROM WZUV_V_RAP_RES r;
CREATE OR REPLACE VIEW WZUV_V_RAP_RES_DEF
(
PERSNR,
RESERVERING,
ARTIKELCODE,
AANTAL,
BEDRAG,
FACTUURPERIODE,
SOORT,
OMSCHRIJVING,
INT_EXT,
KOSTENPLAATS,
RES_RSV_RUIMTE_KEY,
MAAND
)
AS
SELECT CASE
WHEN UPPER (p.prs_perslid_nr) LIKE 'NEDAP%'
THEN
SUBSTR (p.prs_perslid_nr, 7)
ELSE
p.prs_perslid_nr
END
AS persnr,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
TO_CHAR (ar.alg_ruimte_key),
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
0)
duur_ruimte,
rrr.res_rsv_ruimte_prijs,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm-yyyy') factuurperiode,
'Ruimte',
TO_CHAR (rrr.res_rsv_ruimte_van, 'month yyyy')
|| ' - Reserveringsnummer: '
|| rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
|| ' - '
|| rr.res_ruimte_nr
aanduiding,
DECODE (prs_afdeling_key, 422, 'Cli<EFBFBD>nt', 'Intern') soort,
kpl_ruimte.prs_kostenplaats_nr,
rrr.res_rsv_ruimte_key,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm')
FROM res_rsv_ruimte rrr,
prs_perslid p,
prs_kostenplaats kp,
res_v_rsv_ruimte_2_alg_ruimte ar,
alg_v_allonroerendgoed aog,
res_ruimte rr,
(SELECT kpr.*, kpl.prs_kostenplaats_nr
FROM alg_onrgoedkenmerk kpr, prs_kostenplaats kpl
WHERE kpr.alg_kenmerk_key = 1061
AND kpr.alg_onrgoedkenmerk_waarde =
kpl.prs_kostenplaats_key) kpl_ruimte
WHERE rrr.res_status_bo_key = 6
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND res_rsv_ruimte_host_key = p.prs_perslid_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND ar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ar.res_ruimte_key = rr.res_ruimte_key
AND ar.alg_ruimte_key = aog.alg_ruimte_key
AND kpl_ruimte.alg_onrgoed_key(+) = aog.alg_gebouw_key
UNION ALL
SELECT CASE
WHEN UPPER (p.prs_perslid_nr) LIKE 'NEDAP%'
THEN
SUBSTR (p.prs_perslid_nr, 7)
ELSE
p.prs_perslid_nr
END
AS persnr,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
a.res_artikel_nr,
ra.res_rsv_artikel_aantal,
ra.res_rsv_artikel_prijs,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm-yyyy') factuurperiode,
'Catering',
TO_CHAR (rrr.res_rsv_ruimte_van, 'month yyyy')
|| ' - '
|| TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)
|| ' - '
|| TO_CHAR (a.res_artikel_omschrijving)
aanduiding,
DECODE (p.prs_afdeling_key, 422, 'Cli<EFBFBD>nt', 'Intern') soort,
kpl_cat.prs_kostenplaats_nr,
rrr.res_rsv_ruimte_key,
TO_CHAR (rrr.res_rsv_ruimte_van, 'mm')
FROM res_rsv_artikel ra,
res_rsv_ruimte rrr,
res_artikel a,
prs_perslid p,
prs_kostenplaats kp,
res_v_rsv_ruimte_2_alg_ruimte ar,
alg_v_allonroerendgoed aog,
(SELECT kpr.*, kpl.prs_kostenplaats_nr
FROM alg_onrgoedkenmerk kpr, prs_kostenplaats kpl
WHERE kpr.alg_kenmerk_key = 1060
AND kpr.alg_onrgoedkenmerk_waarde =
kpl.prs_kostenplaats_key) kpl_cat
WHERE ra.res_status_bo_key = 6
AND rrr.res_rsv_ruimte_flag = 2
AND ra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ra.res_artikel_key = a.res_artikel_key
AND ra.res_rsv_artikel_dirtlevel = 0
AND ra.res_rsv_artikel_verwijder IS NULL
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND ar.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND (aog.alg_ruimte_key = rrr.alg_ruimte_key
OR aog.alg_ruimte_key = ar.alg_ruimte_key)
AND kpl_cat.alg_onrgoed_key(+) = aog.alg_gebouw_key;
CREATE OR REPLACE PROCEDURE wzuv_import_fin_fact_liander (
p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR (50);
BEGIN
-- In de xsl factuurnr(1);factuurdatum(2);omschrijving(3);bedrag(4);btwperc(5);btwbedrag(6);periode_van(7);EAN nummer(8)
--hulp voor pos : '1;2;3;4;5;6;7;8;9;0;1;2;3;14;15;16;7;8;9;0'
v_seq_of_columns := '0;1;2;0;0;0;3;0;4;6;5;0;0;0;0;7;8;0;0;0';
-- Variabelelijst
-- v_leveranciernr: 1
-- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet")
-- v_factuurdatum: 3
-- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_locatie: 5
-- v_afleverdatum: 6
-- v_omschrijving: 7
-- v_aantal: 8
-- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet")
-- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet")
-- v_docid: 12
-- v_debiteur_nr: 13
-- v_opmerking: 14
-- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/<leeg> waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet")
-- v_kenmerk1: 16
-- v_kenmerk1: 17
-- v_kenmerk1: 18
-- v_kenmerk1: 19
-- v_kenmerk1: 20
-- v_boekmaand: 21
fac_import_factuur_body (p_import_key, v_seq_of_columns);
-- Voeg prefix C toe aan het contractnummer van het actieve contract van Liander
-- het juiste contract kan bepaald worden op basis van het EAN nummer dat in kenmerkveldje 2 staat
UPDATE fac_imp_factuur f
SET f.ordernr =
(SELECT DECODE (
cnt_contract_versie,
NULL,
'C' || c.cnt_contract_nummer_intern,
'C'
|| c.cnt_contract_nummer_intern
|| '.'
|| cnt_contract_versie)
AS orderid
FROM cnt_kenmerkcontract kc,
cnt_kenmerk k,
cnt_srtkenmerk sk,
cnt_contract c,
prs_bedrijf b
WHERE kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND kc.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_naam_upper LIKE '%LIANDER%'
AND UPPER (sk.cnt_srtkenmerk_omschrijving) LIKE '%EAN%'
AND cnt_kenmerkcontract_waarde = f.kenmerk2);
-- de boekmaand is de maand waarover de factuur betrekking heeft
-- het kenmerk veld bevat de begindatum van deze maand dus daar extraheren we het jaar en de maand uit
UPDATE fac_imp_factuur f
SET f.boekmaand = SUBSTR (kenmerk1, 1, 7)
WHERE kenmerk1 IS NOT NULL;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE wzuv_update_fin_fact_liander (
p_import_key IN NUMBER)
AS
BEGIN
-- Standaard FCLT verwerk import facturen
fac_update_factuur (p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE wzuv_import_fin_fact_tu (p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR (50);
BEGIN
-- In de xsl bestelnr(1);factuurnr(2);factuurdatum(3);omschrijving(4);bedrag(5);btwperc(6);aantal(7)
--hulp voor pos : '1;2;3;4;5;6;7;8;9;0;1;2;3;14;15;16;7;8;9;0'
v_seq_of_columns := '0;2;3;1;0;0;4;7;5;0;6;0;0;0;0;0;0;0;0;0';
-- Variabelelijst
-- v_leveranciernr: 1
-- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet")
-- v_factuurdatum: 3
-- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_locatie: 5
-- v_afleverdatum: 6
-- v_omschrijving: 7
-- v_aantal: 8
-- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet")
-- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet")
-- v_docid: 12
-- v_debiteur_nr: 13
-- v_opmerking: 14
-- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/<leeg> waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet")
-- v_kenmerk1: 16
-- v_kenmerk1: 17
-- v_kenmerk1: 18
-- v_kenmerk1: 19
-- v_kenmerk1: 20
-- v_boekmaand: 21
fac_import_factuur_body (p_import_key, v_seq_of_columns);
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE wzuv_update_fin_fact_tu (p_import_key IN NUMBER)
AS
BEGIN
-- Standaard FCLT verwerk import facturen
fac_update_factuur (p_import_key);
END;
/
-- ==========================================
-- VANAF HIER ALLE VIEWS EN PROCS VOOR DE EXACT KOPPELING
-- ==========================================
-- Kenmerk 21 is bijlage
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BESTAND
(
FIN_FACTUUR_KEY,
FIN_FACTUUR_BESTAND
)
AS
SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
FROM fin_kenmerkfactuur kf
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 21;
-- Kenmerk 2 is betaalreferentie
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BETAALREF
(
FIN_FACTUUR_KEY,
FIN_FACTUUR_BETAALREF
)
AS
SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
FROM fin_kenmerkfactuur kf
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 2;
-- Kenmerk 3 is omschrijving kopregel
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_OMSCHR_KOPREGEL
(
FIN_FACTUUR_KEY,
FIN_FACTUUR_OMSCHR_KOPREGEL
)
AS
SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
FROM fin_kenmerkfactuur kf
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 3;
-- Kenmerk 4 is omschrijving datum factuurregel
CREATE OR REPLACE VIEW WZUV_V_FACTUURREGEL_DATUM
(
FIN_FACTUURREGEL_KEY,
FIN_FACTUURREGEL_DATUM
)
AS
SELECT kfr.fin_factuurregel_key, kfr.fin_kenmerkfactregel_waarde
FROM fin_kenmerkfactregel kfr
WHERE kfr.fin_kenmerkfactregel_verwijder IS NULL AND fin_kenmerk_key = 4;
-- Kenmerk 22 is de afwijkende kostenplaats
CREATE OR REPLACE FORCE VIEW WZUV_V_FACTUUR_AFW_KPL
(
FIN_FACTUUR_KEY,
FIN_FACTUUR_AFW_KPL
)
AS
SELECT fin_factuur_key, prs_kostenplaats_nr
FROM fin_kenmerkfactuur kf, prs_kostenplaats kp
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL
AND kf.fin_kenmerkfactuur_waarde = kp.prs_kostenplaats_key
AND fin_kenmerk_key = 22;
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BES_GEGEVENS
(
FIN_FACTUUR_KEY,
OPDRACHT_ID,
FIN_FACTUUR_DATUM,
FIN_FACTUUR_BOEKMAAND,
FIN_FACTUUR_NR,
FIN_FACTUUR_BESTAND,
PRS_BEDRIJF_KEY,
FIN_FACTUURREGEL_TOTAAL,
FIN_FACTUURREGEL_BTW,
FIN_FACTUURREGEL_BTW_PERC,
FIN_BTWTABELWAARDE_BTWCODE,
FIN_FACTUURREGEL_NR,
FIN_FACTUURREGEL_OMSCHRIJVING,
FIN_FACTUURREGEL_DATUM,
FIN_FACTUUR_DEBITEUR_NR,
FIN_FACTUUR_BETAALREF,
FIN_FACTUUR_OMSCHR_KOPREGEL,
PROJECT_NUMMER,
PRS_KOSTENSOORT_OMS,
PRS_KOSTENSOORT_DOORBELASTEN,
PRS_KOSTENPLAATS_NR,
BES_OPDR_KEY,
MLD_OPDR_KEY,
CNT_CONTRACT_KEY,
FIN_FACTUUR_STATUSES_KEY
)
AS
SELECT DISTINCT
f.fin_factuur_key,
TO_CHAR (bo.bes_bestelopdr_id) opdracht_id,
f.fin_factuur_datum,
f.fin_factuur_boekmaand,
f.fin_factuur_nr,
fb.fin_factuur_bestand,
b.prs_bedrijf_key,
fr.fin_factuurregel_totaal,
fr.fin_factuurregel_btw,
btw.fin_btwtabelwaarde_perc,
btw.fin_btwtabelwaarde_code,
fr.fin_factuurregel_nr,
fr.fin_factuurregel_omschrijving,
frd.fin_factuurregel_datum,
f.fin_factuur_debiteur_nr,
fbr.fin_factuur_betaalref,
fok.fin_factuur_omschr_kopregel,
NULL projectnummer,
COALESCE (ks_regel.prs_kostensoort_oms, ks.prs_kostensoort_oms),
DECODE (ks_regel.prs_kostensoort_oms,
NULL, ks.prs_kostensoort_doorbelasten,
ks_regel.prs_kostensoort_doorbelasten),
kp.prs_kostenplaats_nr,
bo.bes_bestelopdr_key bes_opdr_key,
NULL mld_opdr_key,
NULL cnt_contract_key,
f.fin_factuur_statuses_key
FROM bes_bestelopdr bo,
prs_bedrijf b,
bes_bestelling bes,
bes_bestelopdr_item boi,
bes_bestelling_item bi,
fin_factuur f,
wzuv_v_factuur_bestand fb,
wzuv_v_factuur_betaalref fbr,
wzuv_v_factuur_omschr_kopregel fok,
fin_factuurregel fr,
wzuv_v_factuurregel_datum frd,
fin_btwtabelwaarde btw,
prs_kostensoort ks,
prs_kostensoort ks_regel,
prs_kostenplaats kp
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND bes.bes_bestelling_key = bi.bes_bestelling_key
AND kp.prs_kostenplaats_key = bes.prs_kostenplaats_key
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+)
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND f.fin_factuur_key = fr.fin_factuur_key
AND fr.fin_factuurregel_key = frd.fin_factuurregel_key(+)
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
AND f.fin_factuur_key = fb.fin_factuur_key(+)
AND f.fin_factuur_key = fbr.fin_factuur_key(+)
AND f.fin_factuur_key = fok.fin_factuur_key(+);
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_MLDCNT_GEGEVENS
(
FIN_FACTUUR_KEY,
OPDRACHT_ID,
FIN_FACTUUR_DATUM,
FIN_FACTUUR_BOEKMAAND,
FIN_FACTUUR_NR,
FIN_FACTUUR_BESTAND,
PRS_BEDRIJF_KEY,
FIN_FACTUURREGEL_TOTAAL,
FIN_FACTUURREGEL_BTW,
FIN_FACTUURREGEL_BTW_PERC,
FIN_BTWTABELWAARDE_BTWCODE,
FIN_FACTUURREGEL_NR,
FIN_FACTUURREGEL_OMSCHRIJVING,
FIN_FACTUURREGEL_DATUM,
FIN_FACTUUR_DEBITEUR_NR,
FIN_FACTUUR_BETAALREF,
FIN_FACTUUR_OMSCHR_KOPREGEL,
PROJECT_NUMMER,
PRS_KOSTENSOORT_OMS,
PRS_KOSTENSOORT_DOORBELASTEN,
PRS_KOSTENPLAATS_NR,
BES_OPDR_KEY,
MLD_OPDR_KEY,
CNT_CONTRACT_KEY,
FIN_FACTUUR_STATUSES_KEY
)
AS
SELECT DISTINCT
f.fin_factuur_key,
COALESCE (
TO_CHAR (cnt_contract_nummer),
(SELECT sd.ins_srtdiscipline_prefix
|| m.mld_melding_key
|| '/'
|| o.mld_opdr_bedrijfopdr_volgnr
FROM mld_melding m,
mld_stdmelding std,
ins_tab_discipline d,
ins_srtdiscipline sd
WHERE m.mld_melding_key = o.mld_melding_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key))
opdracht_id,
f.fin_factuur_datum,
f.fin_factuur_boekmaand,
f.fin_factuur_nr,
fb.fin_factuur_bestand,
COALESCE (b_c.prs_bedrijf_key, b_o.prs_bedrijf_key) prs_bedrijf_key,
fr.fin_factuurregel_totaal,
fr.fin_factuurregel_btw,
btw.fin_btwtabelwaarde_perc,
btw.fin_btwtabelwaarde_code,
fr.fin_factuurregel_nr,
fr.fin_factuurregel_omschrijving,
frd.fin_factuurregel_datum,
COALESCE (f.fin_factuur_debiteur_nr,
b_c.prs_leverancier_nr,
b_o.prs_leverancier_nr),
fbr.fin_factuur_betaalref,
fok.fin_factuur_omschr_kopregel,
NULL projectnummer,
COALESCE (ks_regel.prs_kostensoort_oms,
ks_contract.prs_kostensoort_oms,
ks.prs_kostensoort_oms),
DECODE (ks_regel.prs_kostensoort_oms,
NULL, ks.prs_kostensoort_doorbelasten,
ks_regel.prs_kostensoort_doorbelasten),
COALESCE (faklp.fin_factuur_afw_kpl, kp_c.prs_kostenplaats_nr, kp_o.prs_kostenplaats_nr)
prs_kostenplaats_nr,
NULL bes_opdr_key,
o.mld_opdr_key,
c.cnt_contract_key,
f.fin_factuur_statuses_key
FROM fin_factuur f,
wzuv_v_factuur_bestand fb,
wzuv_v_factuur_betaalref fbr,
wzuv_v_factuur_omschr_kopregel fok,
wzuv_v_factuur_afw_kpl faklp,
fin_factuurregel fr,
wzuv_v_factuurregel_datum frd,
fin_btwtabelwaarde btw,
mld_opdr o,
mld_typeopdr ot,
cnt_contract c,
prs_bedrijf b_o,
prs_bedrijf b_c,
prs_kostensoort ks,
prs_kostensoort ks_regel,
prs_kostensoort ks_contract,
prs_kostenplaats kp_c,
prs_kostenplaats kp_o
WHERE f.fin_factuur_key = fr.fin_factuur_key
AND fr.fin_factuurregel_key = frd.fin_factuurregel_key(+)
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
AND f.fin_factuur_key = fb.fin_factuur_key(+)
AND f.fin_factuur_key = fbr.fin_factuur_key(+)
AND f.fin_factuur_key = fok.fin_factuur_key(+)
AND f.fin_factuur_key = faklp.fin_factuur_key(+)
AND f.bes_bestelopdr_key IS NULL
AND f.mld_opdr_key = o.mld_opdr_key(+)
AND o.prs_kostenplaats_key = kp_o.prs_kostenplaats_key(+)
AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+)
AND f.cnt_contract_key = c.cnt_contract_key(+)
AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+)
AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
AND c.prs_kostenplaats_key = kp_c.prs_kostenplaats_key(+)
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+)
AND c.prs_kostensoort_key = ks_contract.prs_kostensoort_key(+);
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_GEG_AKKOORD
(
FIN_FACTUUR_KEY,
OPDRACHT_ID,
FIN_FACTUUR_DATUM,
FIN_FACTUUR_BOEKMAAND,
FIN_FACTUUR_NR,
FIN_FACTUUR_BESTAND,
PRS_BEDRIJF_KEY,
FIN_FACTUURREGEL_TOTAAL,
FIN_FACTUURREGEL_BTW,
FIN_FACTUURREGEL_BTW_PERC,
FIN_BTWTABELWAARDE_BTWCODE,
FIN_FACTUURREGEL_NR,
FIN_FACTUURREGEL_OMSCHRIJVING,
FIN_FACTUURREGEL_DATUM,
FIN_FACTUUR_DEBITEUR_NR,
FIN_FACTUUR_BETAALREF,
FIN_FACTUUR_OMSCHR_KOPREGEL,
PROJECT_NUMMER,
PRS_KOSTENSOORT_OMS,
PRS_KOSTENSOORT_DOORBELASTEN,
PRS_KOSTENPLAATS_NR,
BES_OPDR_KEY,
MLD_OPDR_KEY,
CNT_CONTRACT_KEY,
FIN_FACTUUR_STATUSES_KEY
)
AS
SELECT "FIN_FACTUUR_KEY",
"OPDRACHT_ID",
"FIN_FACTUUR_DATUM",
"FIN_FACTUUR_BOEKMAAND",
"FIN_FACTUUR_NR",
"FIN_FACTUUR_BESTAND",
"PRS_BEDRIJF_KEY",
"FIN_FACTUURREGEL_TOTAAL",
"FIN_FACTUURREGEL_BTW",
"FIN_FACTUURREGEL_BTW_PERC",
"FIN_BTWTABELWAARDE_BTWCODE",
"FIN_FACTUURREGEL_NR",
"FIN_FACTUURREGEL_OMSCHRIJVING",
"FIN_FACTUURREGEL_DATUM",
"FIN_FACTUUR_DEBITEUR_NR",
"FIN_FACTUUR_BETAALREF",
"FIN_FACTUUR_OMSCHR_KOPREGEL",
"PROJECT_NUMMER",
"PRS_KOSTENSOORT_OMS",
"PRS_KOSTENSOORT_DOORBELASTEN",
"PRS_KOSTENPLAATS_NR",
"BES_OPDR_KEY",
"MLD_OPDR_KEY",
"CNT_CONTRACT_KEY",
"FIN_FACTUUR_STATUSES_KEY"
FROM wzuv_v_factuur_mldcnt_gegevens
WHERE fin_factuur_statuses_key = 6
UNION
SELECT "FIN_FACTUUR_KEY",
"OPDRACHT_ID",
"FIN_FACTUUR_DATUM",
"FIN_FACTUUR_BOEKMAAND",
"FIN_FACTUUR_NR",
"FIN_FACTUUR_BESTAND",
"PRS_BEDRIJF_KEY",
"FIN_FACTUURREGEL_TOTAAL",
"FIN_FACTUURREGEL_BTW",
"FIN_FACTUURREGEL_BTW_PERC",
"FIN_BTWTABELWAARDE_BTWCODE",
"FIN_FACTUURREGEL_NR",
"FIN_FACTUURREGEL_OMSCHRIJVING",
"FIN_FACTUURREGEL_DATUM",
"FIN_FACTUUR_DEBITEUR_NR",
"FIN_FACTUUR_BETAALREF",
"FIN_FACTUUR_OMSCHR_KOPREGEL",
"PROJECT_NUMMER",
"PRS_KOSTENSOORT_OMS",
"PRS_KOSTENSOORT_DOORBELASTEN",
"PRS_KOSTENPLAATS_NR",
"BES_OPDR_KEY",
"MLD_OPDR_KEY",
"CNT_CONTRACT_KEY",
"FIN_FACTUUR_STATUSES_KEY"
FROM wzuv_v_factuur_bes_gegevens
WHERE fin_factuur_statuses_key = 6;
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_GEG
(
FIN_FACTUUR_KEY,
OPDRACHT_ID,
FIN_FACTUUR_DATUM,
FIN_FACTUUR_BOEKMAAND,
FIN_FACTUUR_NR,
FIN_FACTUUR_BESTAND,
PRS_BEDRIJF_KEY,
FIN_FACTUURREGEL_TOTAAL,
FIN_FACTUURREGEL_BTW,
FIN_FACTUURREGEL_BTW_PERC,
FIN_BTWTABELWAARDE_BTWCODE,
FIN_FACTUURREGEL_NR,
FIN_FACTUURREGEL_OMSCHRIJVING,
FIN_FACTUURREGEL_DATUM,
FIN_FACTUUR_DEBITEUR_NR,
FIN_FACTUUR_BETAALREF,
FIN_FACTUUR_OMSCHR_KOPREGEL,
PROJECT_NUMMER,
PRS_KOSTENSOORT_OMS,
PRS_KOSTENSOORT_DOORBELASTEN,
PRS_KOSTENPLAATS_NR,
BES_OPDR_KEY,
MLD_OPDR_KEY,
CNT_CONTRACT_KEY,
FIN_FACTUUR_STATUSES_KEY
)
AS
SELECT "FIN_FACTUUR_KEY",
"OPDRACHT_ID",
"FIN_FACTUUR_DATUM",
"FIN_FACTUUR_BOEKMAAND",
"FIN_FACTUUR_NR",
"FIN_FACTUUR_BESTAND",
"PRS_BEDRIJF_KEY",
"FIN_FACTUURREGEL_TOTAAL",
"FIN_FACTUURREGEL_BTW",
"FIN_FACTUURREGEL_BTW_PERC",
"FIN_BTWTABELWAARDE_BTWCODE",
"FIN_FACTUURREGEL_NR",
"FIN_FACTUURREGEL_OMSCHRIJVING",
"FIN_FACTUURREGEL_DATUM",
"FIN_FACTUUR_DEBITEUR_NR",
"FIN_FACTUUR_BETAALREF",
"FIN_FACTUUR_OMSCHR_KOPREGEL",
"PROJECT_NUMMER",
"PRS_KOSTENSOORT_OMS",
"PRS_KOSTENSOORT_DOORBELASTEN",
"PRS_KOSTENPLAATS_NR",
"BES_OPDR_KEY",
"MLD_OPDR_KEY",
"CNT_CONTRACT_KEY",
"FIN_FACTUUR_STATUSES_KEY"
FROM wzuv_v_factuur_mldcnt_gegevens
UNION
SELECT "FIN_FACTUUR_KEY",
"OPDRACHT_ID",
"FIN_FACTUUR_DATUM",
"FIN_FACTUUR_BOEKMAAND",
"FIN_FACTUUR_NR",
"FIN_FACTUUR_BESTAND",
"PRS_BEDRIJF_KEY",
"FIN_FACTUURREGEL_TOTAAL",
"FIN_FACTUURREGEL_BTW",
"FIN_FACTUURREGEL_BTW_PERC",
"FIN_BTWTABELWAARDE_BTWCODE",
"FIN_FACTUURREGEL_NR",
"FIN_FACTUURREGEL_OMSCHRIJVING",
"FIN_FACTUURREGEL_DATUM",
"FIN_FACTUUR_DEBITEUR_NR",
"FIN_FACTUUR_BETAALREF",
"FIN_FACTUUR_OMSCHR_KOPREGEL",
"PROJECT_NUMMER",
"PRS_KOSTENSOORT_OMS",
"PRS_KOSTENSOORT_DOORBELASTEN",
"PRS_KOSTENPLAATS_NR",
"BES_OPDR_KEY",
"MLD_OPDR_KEY",
"CNT_CONTRACT_KEY",
"FIN_FACTUUR_STATUSES_KEY"
FROM wzuv_v_factuur_bes_gegevens;
-- Alle waarden (zijn evt meer records) uit eigen tabel 'Exact' waarvan de waarde_code met een
-- zekere prefix begint (volgens de systeem-setting PREFIX_FCLT_FACTUUR_XML_HEADER), komen in de header vd xml terecht
-- 121 is de eigen tabel met dagboeknrs. (op dit moment alleen '40' moet nog gevuld worden)
CREATE OR REPLACE VIEW wzuv_v_fclt_factuur_header
(
result,
result_order
)
AS
SELECT '<'
|| fac_usrdata_code
|| '>'
|| fac_usrdata_omschr
|| '</'
|| fac_usrdata_code
|| '>',
1
FROM fac_usrdata
WHERE fac_usrtab_key = 121 AND fac_usrdata_verwijder IS NULL;
CREATE OR REPLACE VIEW wzuv_v_fclt_factuur_body
(
result,
result_order
)
AS
SELECT DECODE (regelnummer, 0, '<fin_factuur>', '<fin_factuurregel>')
|| '<fin_factuur_key>'
|| fin_factuur_key
|| '</fin_factuur_key>'
|| '<fin_factuur_nr>'
|| xml.char_to_html (fin_factuur_nr)
|| '</fin_factuur_nr>'
|| '<fin_factuur_bestand>'
|| xml.char_to_html (fin_factuur_bestand)
|| '</fin_factuur_bestand>'
|| '<fin_factuur_debiteur_nr>'
|| xml.char_to_html (fin_factuur_debiteur_nr)
|| '</fin_factuur_debiteur_nr>'
|| '<fin_factuur_omschr_kopregel>'
|| xml.char_to_html (fin_factuur_omschr_kopregel)
|| '</fin_factuur_omschr_kopregel>'
|| '<bes_mld_cnt_opdracht_id>'
|| xml.char_to_html (bes_mld_cnt_opdracht_id)
|| '</bes_mld_cnt_opdracht_id>'
|| '<fin_factuur_datum>'
|| datum
|| '</fin_factuur_datum>'
|| '<fin_factuur_boekmaand>'
|| fin_factuur_boekmaand
|| '</fin_factuur_boekmaand>'
|| '<prs_kostensoort_oms>'
|| xml.char_to_html (grootboekrekening)
|| '</prs_kostensoort_oms>'
|| '<prs_kostensoort_doorbelasten>'
|| xml.char_to_html (kostensoort_doorbelasten)
|| '</prs_kostensoort_doorbelasten>'
|| '<prs_betaal_referentie>'
|| xml.char_to_html (betaalreferentie)
|| '</prs_betaal_referentie>'
|| '<prs_leverancier_nr>'
|| xml.char_to_html (crediteur_nr)
|| '</prs_leverancier_nr>'
|| '<prs_bedrijf_naam>'
|| xml.char_to_html (crediteur_naam)
|| '</prs_bedrijf_naam>'
|| '<fin_factuur_totaal_exbtw>'
|| fin_factuur_totaal_exbtw
|| '</fin_factuur_totaal_exbtw>'
|| '<fin_factuur_totaal_incbtw>'
|| fin_factuur_totaal_incbtw
|| '</fin_factuur_totaal_incbtw>'
|| '<fin_factuurregel_omschrijving>'
|| xml.char_to_html (fin_factuurregel_omschrijving)
|| '</fin_factuurregel_omschrijving>'
|| '<fin_factuurregel_datum>'
|| xml.char_to_html (fin_factuurregel_datum)
|| '</fin_factuurregel_datum>'
|| '<fin_factuurregel_totaal>'
|| fin_factuurregel_totaal
|| '</fin_factuurregel_totaal>'
|| '<fin_factuurregel_btw_perc>'
|| btw_percentage
|| '</fin_factuurregel_btw_perc>'
|| '<fin_factuurregel_btw_perc_code>'
|| xml.char_to_html (btw_code)
|| '</fin_factuurregel_btw_perc_code>'
|| '<fin_factuurregel_btw_bedrag>'
|| btw_bedrag
|| '</fin_factuurregel_btw_bedrag>'
|| '<prs_kostenplaats_nr>'
|| xml.char_to_html (prs_kostenplaats_nr)
|| '</prs_kostenplaats_nr>'
|| DECODE (
regelnummer,
0,
'',
DECODE (max_factuur_regelnr - regelnummer,
0, '</fin_factuurregel></fin_factuur>',
'</fin_factuurregel>')),
(1000000 + fin_factuur_key) * 10000 + regelnummer
FROM (SELECT 0 regelnummer,
aant_factuur_regels,
max_factuur_regelnr,
fin_factuur_key,
fin_factuur_nr,
fin_factuur_bestand,
fin_factuur_debiteur_nr,
fin_factuur_omschr_kopregel,
opdracht_id bes_mld_cnt_opdracht_id,
TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
fin_factuur_boekmaand,
'' grootboekrekening,
'' kostensoort_doorbelasten,
betaalreferentie,
(SELECT prs_leverancier_nr
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
crediteur_nr,
(SELECT prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
crediteur_naam,
REPLACE (TO_CHAR (ROUND (bedrag_exbtw, 2)), ',', '.')
fin_factuur_totaal_exbtw,
REPLACE (TO_CHAR (ROUND (bedrag_incbtw, 2)), ',', '.')
fin_factuur_totaal_incbtw,
'' fin_factuurregel_omschrijving,
'' fin_factuurregel_datum,
'' fin_factuurregel_totaal,
'' btw_percentage,
'' btw_code,
'' btw_bedrag,
'' prs_kostenplaats_nr
FROM ( SELECT fin_factuur_key,
opdracht_id,
fin_factuur_datum,
fin_factuur_boekmaand,
fin_factuur_nr,
fin_factuur_bestand,
prs_bedrijf_key,
fin_factuur_debiteur_nr,
COALESCE (
fin_factuur_betaalref,
fin_factuur_nr || '/' || fin_factuur_debiteur_nr)
betaalreferentie,
fin_factuur_omschr_kopregel,
COUNT (fin_factuur_key) AS aant_factuur_regels,
MAX (fin_factuurregel_nr) AS max_factuur_regelnr,
SUM (fin_factuurregel_totaal) bedrag_exbtw,
SUM (
fin_factuurregel_totaal + fin_factuurregel_btw)
bedrag_incbtw
FROM wzuv_v_factuur_geg_akkoord ---DEZE DUS
GROUP BY fin_factuur_key,
opdracht_id,
fin_factuur_datum,
fin_factuur_boekmaand,
fin_factuur_nr,
fin_factuur_bestand,
prs_bedrijf_key,
fin_factuur_debiteur_nr,
fin_factuur_betaalref,
fin_factuur_omschr_kopregel) fg
UNION ALL
SELECT fin_factuurregel_nr regelnummer,
( SELECT COUNT (fin_factuur_key)
FROM wzuv_v_factuur_geg_akkoord fc
WHERE fc.fin_factuur_key = fg.fin_factuur_key
GROUP BY fin_factuur_key,
opdracht_id,
fin_factuur_datum,
fin_factuur_nr,
prs_bedrijf_key,
fin_factuur_debiteur_nr)
AS aant_factuur_regels,
( SELECT MAX (fin_factuurregel_nr)
FROM wzuv_v_factuur_geg_akkoord fc
WHERE fc.fin_factuur_key = fg.fin_factuur_key
GROUP BY fin_factuur_key,
opdracht_id,
fin_factuur_datum,
fin_factuur_nr,
prs_bedrijf_key,
fin_factuur_debiteur_nr)
AS max_factuur_regelnr,
fin_factuur_key,
fin_factuur_nr,
'' fin_factuur_bestand,
fin_factuur_debiteur_nr,
'' fin_factuur_omschr_kopregel,
'' bes_mld_cnt_opdracht_id,
TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
fin_factuur_boekmaand,
prs_kostensoort_oms grootboekrekening,
TO_CHAR (prs_kostensoort_doorbelasten)
kostensoort_doorbelasten,
COALESCE (fin_factuur_betaalref,
fin_factuur_nr || '/' || fin_factuur_debiteur_nr)
betaalreferentie,
(SELECT prs_leverancier_nr
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
crediteur_nr,
(SELECT prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
crediteur_naam,
'' fin_factuur_totaal_exbtw,
'' fin_factuur_totaal_incbtw,
fin_factuurregel_omschrijving,
fin_factuurregel_datum,
REPLACE (TO_CHAR (ROUND (fin_factuurregel_totaal, 2)),
',',
'.')
fin_factuurregel_totaal,
TO_CHAR (fin_factuurregel_btw_perc) btw_percentage,
fin_btwtabelwaarde_btwcode btw_code,
REPLACE (TO_CHAR (ROUND (fin_factuurregel_btw, 2)),
',',
'.')
btw_bedrag,
prs_kostenplaats_nr
FROM wzuv_v_factuur_geg_akkoord fg
ORDER BY fin_factuur_key, regelnummer);
CREATE OR REPLACE VIEW wzuv_v_export_fclt_factuur (result, result_order)
AS
SELECT '<xml>', 0 FROM DUAL
UNION
SELECT result, result_order FROM wzuv_v_fclt_factuur_header
UNION
SELECT result, result_order FROM wzuv_v_fclt_factuur_body
UNION
SELECT '</xml>', 99999999999999999999 FROM DUAL;
CREATE OR REPLACE PROCEDURE wzuv_export_fclt_factuur (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
-- In cursor cfactuur alle facturen die worden geexporteerd...
CURSOR cfactuur
IS
SELECT fin_factuur_key
FROM wzuv_v_factuur_geg_akkoord
GROUP BY fin_factuur_key;
BEGIN
-- DE EXPORT IS OP BASIS VAN EEN VIEW GEREALISEERD, WAARNA NU ALS LAATSTE STAP NOG WAT ADMINISTRATIE VOLGT...
FOR cfact IN cfactuur
LOOP
-- Zowel de factuur in tracking zetten als de status op verwerkt (=7) zetten
fin.setfactuurstatus (cfact.fin_factuur_key, 7, NULL);
END LOOP;
END;
/
CREATE OR REPLACE VIEW wzuv_v_export_undo_exact
(
result,
result_order
)
AS
SELECT REPLACE (
REPLACE (
f.fin_factuur_key
|| ';'
|| opdracht_id
|| ';'
|| fin_factuur_datum
|| ';'
|| fin_factuur_nr
|| ';'
|| prs_bedrijf_key
|| ';'
|| fin_factuurregel_totaal
|| ';'
|| fin_factuurregel_btw
|| ';'
|| fin_factuurregel_nr
|| ';'
|| fin_factuur_debiteur_nr
|| ';'
|| project_nummer
|| ';'
|| prs_kostensoort_oms
|| ';'
|| bes_opdr_key
|| ';'
|| mld_opdr_key
|| ';'
|| cnt_contract_key,
CHR (13),
''),
CHR (10),
'<ret>'),
f.fin_factuur_key
FROM wzuv_v_factuur_geg f, fac_tracking t, fac_srtnotificatie sn
WHERE sn.fac_srtnotificatie_code = 'FINVER'
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
AND t.fac_tracking_datum >=
(SELECT MAX (t1.fac_tracking_datum) - (1 / (24 * 60))
FROM fac_tracking t1
WHERE t1.fac_srtnotificatie_key = t.fac_srtnotificatie_key)
AND f.fin_factuur_key = t.fac_tracking_refkey
AND f.fin_factuur_statuses_key = 7;
CREATE OR REPLACE PROCEDURE wzuv_select_undo_exact (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
v_errormsg VARCHAR (200);
BEGIN
v_errormsg := 'Geen akties';
END;
/
-- Procedure om alle geexporteerde facturen naar status verwerkt te zetten.
CREATE OR REPLACE PROCEDURE wzuv_export_undo_exact (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
CURSOR cfactuur
IS
SELECT DISTINCT f.fin_factuur_key
FROM fac_tracking t, fac_srtnotificatie sn, fin_factuur f
WHERE sn.fac_srtnotificatie_code = 'FINVER'
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
AND t.fac_tracking_datum >=
(SELECT MAX (t1.fac_tracking_datum) - (1 / (24 * 60))
FROM fac_tracking t1
WHERE t1.fac_srtnotificatie_key =
t.fac_srtnotificatie_key)
AND f.fin_factuur_key = t.fac_tracking_refkey
AND fin_factuur_statuses_key = 7;
v_errormsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
v_errormsg := 'Geen akties';
FOR cfact IN cfactuur
LOOP
-- Eerst de factuur in tracking zetten...
-- Omdat van 7 naar 6 niet mag/geoorloofd is, lukt het niet via
-- de reguliere functie fin.setfactuurstatus (cfact.fin_factuur_key, 6, NULL);
-- Dan maar zelf en custom-made:
fac.trackaction ('FINFOK',
cfact.fin_factuur_key,
NULL,
NULL,
'Factuur uit archief teruggezet');
UPDATE fin_factuur
SET fin_factuur_statuses_key = 6
WHERE fin_factuur_key = cfact.fin_factuur_key;
END LOOP;
END;
/
-- ===================================
-- EINDE VIEWS EN PROCS VOOR DE EXACT KOPPELING
-- ===================================
CREATE OR REPLACE PROCEDURE wzuv_processemail (
pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
pbody IN VARCHAR2,
psessionid IN VARCHAR2,
puserkey IN NUMBER DEFAULT NULL)
AS
v_count NUMBER;
sender prs_perslid.prs_perslid_key%TYPE;
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
newkey mld_melding.mld_melding_key%TYPE;
defaultstdmelding fac_setting.fac_setting_default%TYPE;
-- kkey mld_kenmerk.mld_kenmerk_key%TYPE;
errormsg fac_result.fac_result_waarde%TYPE;
BEGIN
-- Valideer de sender in pfrom: kennen we deze?
SELECT COUNT ( * )
INTO v_count
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND UPPER (prs_perslid_email) = UPPER (pfrom);
-- Bekende afzender --> dat is de melder
IF (v_count = 1)
THEN
SELECT prs_perslid_key, d.prs_kostenplaats_key
INTO sender, kostenplaats
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND UPPER (prs_perslid_email) = UPPER (pfrom);
-- Geen bekende afzender --> _FACILITOR
ELSE
SELECT prs_perslid_key, d.prs_kostenplaats_key
INTO sender, kostenplaats
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key AND prs_perslid_key = 3;
END IF;
CASE
-- WZUV#51384: bij het overlijden van een pati<74>nt moet een mailtje naar Facilitor de melding aanroepen en de workflow starten
WHEN UPPER (pto) LIKE 'OVERLIJDEN@%'
THEN
defaultstdmelding := '461';
-- suggested extensions:
-- check for MLDUSE-write autorisations
-- parse the subject to find an appropriate stdmelding, if uniquely possible
BEGIN
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_melding_datum,
mld_melding_onderwerp,
mld_melding_omschrijving,
mld_melding_status,
mld_stdmelding_key,
mld_alg_locatie_key,
prs_perslid_key,
prs_perslid_key_voor,
prs_kostenplaats_key,
mld_melding_spoed)
VALUES ('MLD',
4, -- email
SYSDATE,
SUBSTR (psubject, 1, 60),
SUBSTR (
REPLACE (
SUBSTR (pbody, 1, 4000),
CHR (13) || CHR (10) || CHR (13) || CHR (10),
CHR (13) || CHR (10)),
1,
4000), -- verwijder onnodige witregels
NULL,
defaultstdmelding,
1, -- Hoe bepalen we de locatie? Nu maar even op 1 = Epe gezet
sender,
sender,
kostenplaats,
3)
RETURNING mld_melding_key
INTO newkey;
-- In geval van overlijden moet een workflow gestart worden
-- de startmelding krijgt status 5 en de volgende stap kan opgestart worden
mld.setmeldingstatus (newkey, 5, sender);
mld.mld_nextworkflowstep (newkey, 1); -- 1=Completed
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'maillog',
'Geregistreerd onder melding ' || newkey);
END;
ELSE
NULL;
END CASE;
IF errormsg IS NOT NULL
THEN
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid, 'errormsg', errormsg);
END IF;
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (
'PROCESSEMAIL',
'W',
'Mail kon niet verwerkt worden afzender: '
|| pfrom
|| '['
|| errormsg
|| ']',
'OTHERS (error '
|| SQLCODE
|| '/'
|| SUBSTR (SQLERRM, 1, 100)
|| ')');
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'errormsg',
'Database fout - Neem contact op met uw systeembeheerder');
END wzuv_processemail;
/
--- notificaties bij vrijkomen appartement
-- op diverse momenten moeten verschilllende medewerkers bericht ontvangen
-- direct bij melding overlijden krijgen huismeester, receptie en keuken bericht
CREATE OR REPLACE VIEW WZUV_V_NOTI_VRIJKOMEN_APP1
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
NULL sender,
NULL receiver,
'Melding vrijkomen '
|| og.alg_gebouw_naam
|| ' '
|| og.alg_plaatsomschrijving,
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
huismeester.prs_perslid_email xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
alg_v_allonrgoed_gegevens og,
(SELECT ok.alg_onrgoed_key,
ok.alg_onrgoedkenmerk_waarde,
p.prs_perslid_voornaam,
p.prs_perslid_email
FROM alg_onrgoedkenmerk ok, alg_kenmerk k, prs_perslid p
WHERE ok.alg_kenmerk_key = k.alg_kenmerk_key
AND ok.alg_onrgoedkenmerk_waarde =
TO_CHAR (p.prs_perslid_key)
AND UPPER (k.alg_kenmerk_omschrijving) LIKE '%HUISMEESTER%') -- de juiste huismeester wordt bepaald op basis van het gebouw waar de cli<6C>nt woonachtig was
huismeester
WHERE T.FAC_TRACKING_REFKEY = M.MLD_MELDING_KEY
AND N.FAC_SRTNOTIFICATIE_CODE = 'CUST01'
AND T.FAC_SRTNOTIFICATIE_KEY = 44 -- mldnew
AND M.MLD_STDMELDING_KEY = 521 -- startmelding opleveren appartement
AND M.MLD_ALG_ONROERENDGOED_KEYS = OG.ALG_ONROERENDGOED_KEYS
AND OG.ALG_GEBOUW_KEY = huismeester.ALG_ONRGOED_KEY
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'WZUV_V_NOTI_VRIJKOMEN_APP1')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'WZUV_V_NOTI_VRIJKOMEN_APP1')
UNION ALL
SELECT DISTINCT -- receptie: het mail adres van de receptie is per gebouw vastgelegd
NULL sender,
NULL receiver,
'Melding vrijkomen '
|| og.alg_gebouw_naam
|| ' '
|| og.alg_plaatsomschrijving,
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
g.alg_gebouw_email xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
alg_v_allonrgoed_gegevens og,
alg_gebouw g
WHERE T.FAC_TRACKING_REFKEY = M.MLD_MELDING_KEY
AND T.FAC_SRTNOTIFICATIE_KEY = 44
AND N.FAC_SRTNOTIFICATIE_CODE = 'CUST01'
AND M.MLD_STDMELDING_KEY = 521 -- startmelding opleveren appartement
AND M.MLD_ALG_ONROERENDGOED_KEYS = OG.ALG_ONROERENDGOED_KEYS
AND OG.ALG_GEBOUW_KEY = G.ALG_GEBOUW_KEY
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'WZUV_V_NOTI_VRIJKOMEN_APP1')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'WZUV_V_NOTI_VRIJKOMEN_APP1')
UNION ALL
SELECT DISTINCT -- de cateraar: er is per locatie 1 cateraar (gebruiker)
NULL sender,
NULL receiver,
'Melding vrijkomen '
|| og.alg_gebouw_naam
|| ' '
|| og.alg_plaatsomschrijving,
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
p.prs_perslid_email xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
alg_v_allonrgoed_gegevens og,
alg_gebouw g,
prs_perslid p
WHERE T.FAC_TRACKING_REFKEY = M.MLD_MELDING_KEY
AND T.FAC_SRTNOTIFICATIE_KEY = 44
AND N.FAC_SRTNOTIFICATIE_CODE = 'CUST01'
AND M.MLD_STDMELDING_KEY = 521 -- startmelding opleveren appartement
AND M.MLD_ALG_ONROERENDGOED_KEYS = OG.ALG_ONROERENDGOED_KEYS
AND OG.ALG_GEBOUW_KEY = G.ALG_GEBOUW_KEY
AND P.ALG_ONROERENDGOED_KEYS = G.ALG_GEBOUW_KEY
AND P.PRS_PERSLID_UPPER LIKE '%CATERAAR%'
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'WZUV_V_NOTI_VRIJKOMEN_APP1')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'WZUV_V_NOTI_VRIJKOMEN_APP1');
-- zodra het klusteam klaar is
-- krijgen huishouding en CSP bericht
CREATE OR REPLACE VIEW WZUV_V_NOTI_VRIJKOMEN_APP2
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
NULL sender,
NULL receiver,
'Melding vrijkomen '
|| og.alg_gebouw_naam
|| ' '
|| og.alg_plaatsomschrijving,
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
'm.witteveen@wzuveluwe.nl;clientservicepunt@wzuveluwe.nl' xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
alg_v_allonrgoed_gegevens og,
alg_gebouw g,
mld_kenmerkmelding km
WHERE T.FAC_TRACKING_REFKEY = M.MLD_MELDING_KEY
AND T.FAC_SRTNOTIFICATIE_KEY = 39
AND N.FAC_SRTNOTIFICATIE_CODE = 'CUST02'
AND M.MLD_STDMELDING_KEY = 521 -- startmelding opleveren appartement
AND M.MLD_ALG_ONROERENDGOED_KEYS = OG.ALG_ONROERENDGOED_KEYS
AND OG.ALG_GEBOUW_KEY = G.ALG_GEBOUW_KEY
AND M.MLD_MELDING_KEY = KM.MLD_MELDING_KEY
AND KM.MLD_KENMERK_KEY = 541
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'WZUV_V_NOTI_VRIJKOMEN_APP2')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'WZUV_V_NOTI_VRIJKOMEN_APP2');
--- Als de huishouding klaar is met de schoonmaak krijgt het CSP nogmaals bericcht
CREATE OR REPLACE VIEW WZUV_V_NOTI_VRIJKOMEN_APP3
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT DISTINCT
NULL sender,
NULL receiver,
'Werkzaamheden rondom vrijkomen '
|| og.alg_gebouw_naam
|| ' '
|| og.alg_plaatsomschrijving
|| ' afgerond',
fac_srtnotificatie_code,
n.fac_srtnotificatie_key,
m.mld_melding_key,
NULL xkey,
'clientservicepunt@wzuveluwe.nl' xemail,
NULL xmobile
FROM fac_tracking t,
mld_melding m,
fac_srtnotificatie n,
alg_v_allonrgoed_gegevens og,
alg_gebouw g
WHERE T.FAC_TRACKING_REFKEY = M.MLD_MELDING_KEY
AND T.FAC_SRTNOTIFICATIE_KEY = 39 -- mldafm
AND N.FAC_SRTNOTIFICATIE_CODE = 'CUST03'
AND M.MLD_STDMELDING_KEY = 544 -- melding opleveren appartement huishouding
AND M.MLD_ALG_ONROERENDGOED_KEYS = OG.ALG_ONROERENDGOED_KEYS
AND OG.ALG_GEBOUW_KEY = G.ALG_GEBOUW_KEY
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'WZUV_V_NOTI_VRIJKOMEN_APP3')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'WZUV_V_NOTI_VRIJKOMEN_APP3');
-- Factuur import Nuts facturen Kenter
CREATE OR REPLACE PROCEDURE wzuv_import_fin_fact_kenter (
p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR (50);
BEGIN
-- In de csv:
-- Verzamelspecificatie nr. (1) ;Geadresseerde (2) ;Adres (3) ;PC Plaats (4) ;EAN code (5) ;Product (6) ;Aansluitadres: straat (7) ;Aansluitadres: huisnummer(8) ;Aansluitadres: huisnummertoevoeging (9);Aansluitadres: postcode (10);
-- Aansluitadres: plaats (11) ;Locatiedetails (12) ;Kostenplaats (13) ;Kostendrager (14) ;Kostendrager2 (15) ;Factuurgroepering (16) ;Factuurdatum (17) ;Factuurnummer (18) ;Gestorneerde factuur (19) ;Factuurtype (20);
-- Bedrag excl. BTW (21) ;Bedrag excl. BTW 21% (22);Bedrag excl. BTW 19% (23) ;Bedrag excl. BTW 6% (24) ;Bedrag excl. BTW 0% (25) ;Afrekentijdvak: start (26) ;Afrekentijdvak: einde (27) ;Blok 1 (28) ;Blok aantal 1 (29) ;Blok prijs 1 (30) ;
-- Blok bedrag (excl. BTW) 1 (31) ;Blok BTW% 1 (32) ;Blok 2 (33) ;Blok aantal 2 (34) ;Blok prijs 2 (35) ;Blok bedrag (excl. BTW) 2 (36) ;Blok BTW% 2 (37);Blok 3 (38) ;Blok aantal 3 (39) ;Blok prijs 3 (40) ;
-- Blok bedrag (excl. BTW) 3 (41);Blok BTW% 3 (42) ;Blok 4 (43) ;Blok aantal 4 (44) ;Blok prijs 4 (45) ;Blok bedrag (excl. BTW) 4 (46) ;Blok BTW% 4 (47) ;Blok 5 (48) ;Blok aantal 5 (49) ;Blok prijs 5 (50);
-- Blok bedrag (excl. BTW) 5;Blok BTW% 5;Blok 6;Blok aantal 6;Blok prijs 6;Blok bedrag (excl. BTW) 6;Blok BTW% 6;Blok 7;Blok aantal 7;Blok prijs 7;Blok bedrag (excl. BTW) 7;Blok BTW% 7;Blok 8;Blok aantal 8;Blok prijs 8;Blok bedrag (excl. BTW) 8;Blok BTW% 8;Blok 9;Blok aantal 9;Blok prijs 9;Blok bedrag (excl. BTW) 9;Blok BTW% 9;Blok 10;Blok aantal 10;Blok prijs 10;Blok bedrag (excl. BTW) 10;Blok BTW% 10;Blok 11;Blok aantal 11;Blok prijs 11;Blok bedrag (excl. BTW) 11;Blok BTW% 11;Blok 12;Blok aantal 12;Blok prijs 12;Blok bedrag (excl. BTW) 12;Blok BTW% 12;Blok 13;Blok aantal 13;Blok prijs 13;Blok bedrag (excl. BTW) 13;Blok BTW% 13;Blok 14;Blok aantal 14;Blok prijs 14;Blok bedrag (excl. BTW) 14;Blok BTW% 14;Blok 15;Blok aantal 15;Blok prijs 15;Blok bedrag (excl. BTW) 15;Blok BTW% 15;Blok 16;Blok aantal 16;Blok prijs 16;Blok bedrag (excl. BTW) 16;Blok BTW% 16;Blok 17;Blok aantal 17;Blok prijs 17;Blok bedrag (excl. BTW) 17;Blok BTW% 17;Blok 18;Blok aantal 18;Blok prijs 18;Blok bedrag (excl. BTW) 18;Blok BTW% 18;Blok 19;Blok aantal 19;Blok prijs 19;Blok bedrag (excl. BTW) 19;Blok BTW% 19;Blok 20;Blok aantal 20;Blok prijs 20;Blok bedrag (excl. BTW) 20;Blok BTW% 20;Blok 21;Blok aantal 21;Blok prijs 21;Blok bedrag (excl. BTW) 21;Blok BTW% 21;Blok 22;Blok aantal 22;Blok prijs 22;Blok bedrag (excl. BTW) 22;Blok BTW% 22;Blok 23;Blok aantal 23;Blok prijs 23;Blok bedrag (excl. BTW) 23;Blok BTW% 23;Blok 24;Blok aantal 24;Blok prijs 24;Blok bedrag (excl. BTW) 24;Blok BTW% 24;Blok 25;Blok aantal 25;Blok prijs 25;Blok bedrag (excl. BTW) 25;Blok BTW% 25;Blok 26;Blok aantal 26;Blok prijs 26;Blok bedrag (excl. BTW) 26;Blok BTW% 26;Blok 27;Blok aantal 27;Blok prijs 27;Blok bedrag (excl. BTW) 27;Blok BTW% 27;Blok 28;Blok aantal 28;Blok prijs 28;Blok bedrag (excl. BTW) 28;Blok BTW% 28;Blok 29;Blok aantal 29;Blok prijs 29;Blok bedrag (excl. BTW) 29;Blok BTW% 29;Blok 30;Blok aantal 30;Blok prijs 30;Blok bedrag (excl. BTW) 30;Blok BTW% 30;Factuuraanbieder;BTW Bedrijfsnaam;BTW Nummer;KVK nummer
--hulp voor pos : '1;2;3;4;5;6;7;8;9;0;1;2;3;4;5;6;7;8;9;0'
v_seq_of_columns := '0;18;17;5;0;0;6;0;21;0;32;0;0;0;0;26;5;0;0;0';
-- Variabelelijst
-- v_leveranciernr: 1
-- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet")
-- v_factuurdatum: 3
-- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_locatie: 5
-- v_afleverdatum: 6
-- v_omschrijving: 7
-- v_aantal: 8
-- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet")
-- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet")
-- v_docid: 12
-- v_debiteur_nr: 13
-- v_opmerking: 14
-- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/<leeg> waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet")
-- v_kenmerk1: 16
-- v_kenmerk1: 17
-- v_kenmerk1: 18
-- v_kenmerk1: 19
-- v_kenmerk1: 20
-- v_boekmaand: 21
fac_import_factuur_body (p_import_key, v_seq_of_columns);
-- De header regel kan verwijderd worden
DELETE fac_imp_factuur f
WHERE f.factuurnr = 'Factuurnummer';
-- Het EAN nummer bevat nog een ' deze moet verwijderd worden
UPDATE fac_imp_factuur
SET kenmerk2 = SUBSTR (kenmerk2, 2, 18);
-- Voeg prefix C toe aan het contractnummer van het actieve contract van Liander
-- het juiste contract kan bepaald worden op basis van het EAN nummer dat in kenmerkveldje 2 staat
UPDATE fac_imp_factuur f
SET f.ordernr =
(SELECT DECODE (
cnt_contract_versie,
NULL,
'C' || c.cnt_contract_nummer_intern,
'C'
|| c.cnt_contract_nummer_intern
|| '.'
|| cnt_contract_versie)
AS orderid
FROM cnt_kenmerkcontract kc,
cnt_kenmerk k,
cnt_srtkenmerk sk,
cnt_contract c,
prs_bedrijf b
WHERE kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND kc.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_naam_upper LIKE '%KENTER%'
AND UPPER (sk.cnt_srtkenmerk_omschrijving) LIKE '%EAN%'
AND cnt_kenmerkcontract_waarde = f.kenmerk2);
-- de boekmaand is de maand waarover de factuur betrekking heeft
-- het kenmerk veld bevat de begindatum van deze maand dus daar extraheren we het jaar en de maand uit
UPDATE fac_imp_factuur f
SET f.boekmaand = SUBSTR (kenmerk1, 7, 4) || SUBSTR (kenmerk1, 3, 3)
WHERE kenmerk1 IS NOT NULL;
-- per boekmaand moet een factuur geboekt worden
-- dus die plakken we voor nu maar even achter het factuurnummer
UPDATE fac_imp_factuur f
SET F.FACTUURNR = F.FACTUURNR || '/' || F.BOEKMAAND
WHERE kenmerk1 IS NOT NULL;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE wzuv_update_fin_fact_kenter (
p_import_key IN NUMBER)
AS
BEGIN
-- Standaard FCLT verwerk import facturen
fac_update_factuur (p_import_key);
-- Bij de import hebben we de facturen gesplits naar periode
-- Deze splitsing maken we nu weer ongedaan
UPDATE fin_factuur f
SET f.fin_factuur_nr =
SUBSTR (f.fin_factuur_nr, 1, INSTR (f.fin_factuur_nr, '/') - 1)
WHERE f.fin_factuur_key IN (SELECT i.fin_factuur_key
FROM fac_imp_factuur i
WHERE i.fac_import_key = p_import_key);
END;
/
--View voor Notificatie bij Rapeldatum contract bereikt
CREATE OR REPLACE VIEW WZUV_V_NOTI_CNTREMINDER
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
PAR1,
PAR2,
XKEY
)
AS
SELECT '',
'',
c.prs_perslid_key_beh,
'Rappel: Contract '
|| c.cnt_contract_nummer_intern
|| DECODE (cnt_contract_versie,
NULL, '',
'.' || cnt_contract_versie)
|| ' ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' moet uiterlijk per '
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key),
'DD-MM-YYYY')
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cnt.cnt_getopzegdatum (c.cnt_contract_key),
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND cnt_contract_verwijder IS NULL
AND cnt_contract_status = 0
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
UNION ALL
SELECT '',
'',
c.prs_perslid_key_eig,
'Rappel: Contract '
|| c.cnt_contract_nummer_intern
|| DECODE (cnt_contract_versie,
NULL, '',
'.' || cnt_contract_versie)
|| ' ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' moet uiterlijk per '
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key),
'DD-MM-YYYY')
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cnt.cnt_getopzegdatum (c.cnt_contract_key),
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND cnt_contract_verwijder IS NULL
AND cnt_contract_status = 0
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
AND cnt.cnt_getopzegdatum (c.cnt_contract_key));
CREATE OR REPLACE VIEW WZUV_V_RAP_CONTROLE_RES
(
SOORT,
DATUM,
NEDAPNR,
KOSTENPLAATS,
KOSTENSOORT,
RES_NR,
NO_SHOW,
STATUS,
OMSCHRIJVING,
RUIMTE,
RUIMTE_PRIJS,
CATERING_PRIJS,
NAAM_GEFACTUREERDE,
FACTUURADRES,
PC_PLAATS
)
AS
SELECT DECODE (res.fclt_3d_afdeling_key,
422, 'Extern - Cli<6C>nt',
441, 'Extern - Overig',
'Intern')
activiteitensoort,
van,
CASE
WHEN UPPER (personeelsnr) LIKE 'NEDAP%'
THEN
SUBSTR (personeelsnr, 7)
ELSE
''
END
AS NEDAPnr,
kpl.prs_kostenplaats_nr
|| '- '
|| kpl.prs_kostenplaats_omschrijving,
res.kostensoort,
nummer,
no_show,
bostatus,
res_omschrijving,
ruimte,
res.getruimteprijs (rrr.res_rsv_ruimte_key) ruimte_prijs,
SUM (voorziening_totaalprijs) catering_prijs,
naam_gefactureerde,
factuuradres,
pc_plaats
FROM res_v_udr_reserveringincl res,
prs_afdeling afd,
res_rsv_ruimte rrr,
prs_kostenplaats kpl,
(SELECT res_rsv_ruimte_key,
res_kenmerkreservering_waarde naam_gefactureerde
FROM res_kenmerkwaarde kw, res_kenmerk km, res_srtkenmerk skm
WHERE kw.res_kenmerk_key = km.res_kenmerk_key
AND km.res_srtkenmerk_key = skm.res_srtkenmerk_key
AND res_srtkenmerk_upper LIKE '%NAAM GEFACTUREERDE%')
gefactureerde,
(SELECT res_rsv_ruimte_key,
res_kenmerkreservering_waarde factuuradres
FROM res_kenmerkwaarde kw, res_kenmerk km, res_srtkenmerk skm
WHERE kw.res_kenmerk_key = km.res_kenmerk_key
AND km.res_srtkenmerk_key = skm.res_srtkenmerk_key
AND res_srtkenmerk_upper LIKE 'ADRES%') adres,
(SELECT res_rsv_ruimte_key, res_kenmerkreservering_waarde pc_plaats
FROM res_kenmerkwaarde kw, res_kenmerk km, res_srtkenmerk skm
WHERE kw.res_kenmerk_key = km.res_kenmerk_key
AND km.res_srtkenmerk_key = skm.res_srtkenmerk_key
AND res_srtkenmerk_upper LIKE 'POSTCODE%') postcode
WHERE res.fclt_3d_afdeling_key = afd.prs_afdeling_key
AND rrr.res_rsv_ruimte_key = res.key
AND afd.prs_kostenplaats_key = kpl.prs_kostenplaats_key
AND res.key = gefactureerde.res_rsv_ruimte_key(+)
AND res.key = adres.res_rsv_ruimte_key(+)
AND res.key = postcode.res_rsv_ruimte_key(+)
GROUP BY res.fclt_3d_afdeling_key,
van,
personeelsnr,
kpl.prs_kostenplaats_nr,
kpl.prs_kostenplaats_omschrijving,
kostensoort,
nummer,
no_show,
bostatus,
res_omschrijving,
ruimte,
rrr.res_rsv_ruimte_key,
naam_gefactureerde,
factuuradres,
pc_plaats
ORDER BY van, nummer;
CREATE OR REPLACE PROCEDURE wzuv_fin_upsertkenmerk (
f_kenmerk_key IN NUMBER,
f_fact_key IN NUMBER,
f_kenmerk_waarde IN VARCHAR2)
AS
v_count NUMBER;
v_niveau VARCHAR2 (1);
BEGIN
-- Is er al een actuele waarde?
SELECT COUNT ( * )
INTO v_count
FROM fin_kenmerkfactuur
WHERE fin_factuur_key = f_fact_key
AND fin_kenmerk_key = f_kenmerk_key
AND fin_kenmerkfactuur_verwijder IS NULL;
IF v_count = 1
THEN
IF f_kenmerk_waarde IS NULL
THEN
-- Er was al een waarde maar nu is de waarde leeg: Wissen bestaande waarde
DELETE fin_kenmerkfactuur
WHERE fin_factuur_key = f_fact_key
AND fin_kenmerk_key = f_kenmerk_key
AND fin_kenmerkfactuur_verwijder IS NULL;
ELSE
-- Er was al een waarde maar er wordt ook een waarde meegegeven: Bijwerken bestaande waarde
UPDATE fin_kenmerkfactuur
SET fin_kenmerkfactuur_waarde = f_kenmerk_waarde
WHERE fin_factuur_key = f_fact_key
AND fin_kenmerk_key = f_kenmerk_key
AND fin_kenmerkfactuur_verwijder IS NULL;
END IF;
ELSE
IF f_kenmerk_key IS NOT NULL AND f_kenmerk_waarde IS NOT NULL
THEN
-- Er was nog geen waarde en er wordt een waarde meegegeven: Registreren waarde
INSERT INTO FIN_KENMERKFACTUUR (fin_factuur_key,
fin_kenmerk_key,
fin_kenmerkfactuur_waarde)
VALUES (f_fact_key, f_kenmerk_key, f_kenmerk_waarde);
END IF;
END IF;
END;
/
CREATE OR REPLACE PROCEDURE wzuv_export_ks_topbloemen (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
-- In cursor c_factuur alle facturen die gerelateerd zijn aan een bestelling bij Topbloemen en die nog geen kostensoort hebben
CURSOR c_factuur
IS
SELECT fac.fin_factuur_key
FROM fin_factuur fac, prs_bedrijf b, bes_bestelopdr bo
WHERE b.prs_bedrijf_naam_upper LIKE '%TOPBLOEMEN%'
AND b.prs_bedrijf_key = bo.prs_bedrijf_key
AND fac.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND fac.prs_kostensoort_key IS NULL;
BEGIN
FOR rec IN c_factuur
LOOP
-- voor alle facturen van Topbloemen waarbij nog geen kostensoort bekend is, moet de kostensoort herleid worden uit het kenmerk
UPDATE fin_factuur fac
SET fac.prs_kostensoort_key =
(SELECT ks.prs_kostensoort_key
FROM prs_bedrijf b,
bes_bestelopdr bo,
bes_bestelling bes,
bes_kenmerkbestell kb,
bes_kenmerk km,
bes_srtkenmerk sk,
fac_usrdata kw,
prs_kostensoort ks
WHERE b.prs_bedrijf_naam_upper LIKE '%TOPBLOEMEN%'
AND b.prs_bedrijf_key = bo.prs_bedrijf_key
AND SUBSTR (bes_bestelopdr_id,
1,
INSTR (bes_bestelopdr_id, '/') - 1) =
bes.bes_bestelling_key(+)
AND kb.bes_bestelling_key = bes.bes_bestelling_key
AND kb.bes_kenmerkbestell_waarde =
TO_CHAR (kw.fac_usrdata_key)
AND TO_CHAR (kw.fac_usrdata_prijs) =
ks.prs_kostensoort_upper
AND kb.bes_kenmerk_key = km.bes_kenmerk_key
AND sk.bes_srtkenmerk_key = km.bes_srtkenmerk_key
AND fac.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND sk.bes_srtkenmerk_upper = 'ATTENTIEPROTOCOL')
WHERE fac.fin_factuur_key = rec.fin_factuur_key;
END LOOP;
END;
/
CREATE OR REPLACE PROCEDURE wzuv_import_fin_fact_care4flex (
p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR (50);
BEGIN
-- eerst de kopregel maar even weggooien
DELETE FAC_IMP_FILE
WHERE fac_import_key = p_import_key
AND UPPER (fac_imp_file_line) LIKE
'INVOICE_ID;INVOICE_NUMBER;INVOICE_PLACE;INVOICE_DATE;%';
-- In de csv factuurnr;
-- 1 INVOICE_ID;2 INVOICE_NUMBER;3 INVOICE_PLACE;4 INVOICE_DATE;5 INVOICE_TYPE;6 INVOICE_DEBTOR_REFERENCE;7 INVOICE_PROJECT_NUMBER;8 INVOICE_JOB_DESCRIPTION;9 INVOICE_DEBTOR_NAME;10 INVOICE_DEBTOR_FINANCIAL_CONTACT;
-- 11 INVOICE_DEBTOR_ADDRESS;12 INVOICE_DEBTOR_POSTCODE;13 INVOICE_DEBTOR_PLACE;14 INVOICE_SUBTOTAL;15 INVOICE_VAT;16 INVOICE_DISCOUNT;17 INVOICE_TOTAL;18 INVOICE_G_ACCOUNT_YN;19 INVOICE_G_ACCOUNT_PCT;20 INVOICE_PAYMENT_TERM;
-- 21 INVOICE_NOTES;22 INVOICE_VAT_NUMBER;23 INVOICE_DETAIL_WORKSHEET_WEEK;24 INVOICE_DETAIL_QUANTITY;25 INVOICE_DETAIL_PERCENTAGE;26 INVOICE_DETAIL_DESCRIPTION;27 INVOICE_DETAIL_TARIFF;28 INVOICE_DETAIL_DISCOUNT;29 INVOICE_DETAIL_VAT_PERCENTAGE;30 INVOICE_DETAIL_SUB_TOTAL;
-- 31 WORKER_INITIALS;32 WORKER_FIRSTNAMES;33 WORKER_MIDDLENAME;34 WORKER_SURNAME;35 WORKER_MAIDEN_NAME;36 ADMINISTRATION_ID;37 ADMINISTRATION_NAME;38 ADMINISTRATION_ADDRESS;39 ADMINISTRATION_POSTCODE;40 ADMINISTRATION_PLACE;
-- 41 ADMINISTRATION_PHONE;42 ADMINISTRATION_FAX;43 ADMINISTRATION_WEBSITE;44 ADMINISTRATION_KVK_NUMBER;45 ADMINISTRATION_VAT_NUMBER;46 ADMINISTRATION_IBAN;47 ADMINISTRATION_IBAN_G_ACCOUNT
--hulp voor pos : '1;2;3;4;5;6;7;8;9;0;1;2;3;14;15;16;7;8;9;0'
v_seq_of_columns := '0;2;4;0;0;0;23;24;30;0;29;0;0;26;0;7;31;32;33;34';
-- Variabelelijst
-- v_leveranciernr: 1
-- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet")
-- v_factuurdatum: 3
-- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_locatie: 5
-- v_afleverdatum: 6
-- v_omschrijving: 7
-- v_aantal: 8
-- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet")
-- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet")
-- v_docid: 12
-- v_debiteur_nr: 13
-- v_opmerking: 14
-- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/<leeg> waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet")
-- v_kenmerk1: 16
-- v_kenmerk1: 17
-- v_kenmerk1: 18
-- v_kenmerk1: 19
-- v_kenmerk1: 20
-- v_boekmaand: 21
fac_import_factuur_body (p_import_key, v_seq_of_columns);
-- Dan de achternaam samenstellen
UPDATE fac_imp_factuur f
SET f.kenmerk6 =
CASE
WHEN f.kenmerk4 IS NOT NULL
THEN
f.kenmerk4 || ' ' || f.kenmerk5
ELSE
f.kenmerk5
END;
-- Dan de omschrijving van de factuurregel volledig samenstellen
UPDATE fac_imp_factuur f
SET f.omschrijving =
CASE
WHEN UPPER (opmerking) = 'UREN'
THEN
'Week '
|| f.omschrijving
|| ' - '
|| f.kenmerk2
|| ' '
|| f.kenmerk6
|| ' - '
|| f.aantal
|| ' '
|| f.opmerking
ELSE
'Week '
|| f.omschrijving
|| ' - '
|| f.kenmerk2
|| ' '
|| f.kenmerk6
|| ' - '
|| f.opmerking
END;
-- De factuur koppelen aan het juiste contract
UPDATE fac_imp_factuur f
SET f.ordernr =
(SELECT DECODE (
cnt_contract_versie,
NULL,
'C' || c.cnt_contract_nummer_intern,
'C'
|| c.cnt_contract_nummer_intern
|| '.'
|| cnt_contract_versie)
AS orderid
FROM cnt_kenmerkcontract kc,
cnt_kenmerk k,
cnt_srtkenmerk sk,
cnt_contract c,
prs_bedrijf b
WHERE kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND kc.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_verwijder IS NULL
AND b.prs_bedrijf_naam_upper LIKE '%CARE4FLEX%');
-- De kostenplaats wordt meegegeven met de factuur, vast de kpl key erbij zoeken
UPDATE fac_imp_factuur
SET kenmerk12 =
(SELECT kp.prs_kostenplaats_key
FROM prs_kostenplaats kp
WHERE SUBSTR (kenmerk1, -4) = kp.prs_kostenplaats_nr);
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE wzuv_update_fin_fact_care4flex (
p_import_key IN NUMBER)
AS
CURSOR c_factuur
IS
SELECT fin_factuur_key, 22, kenmerk12
FROM fac_imp_factuur
WHERE fin_factuur_key IS NOT NULL;
BEGIN
-- Standaard FCLT verwerk import facturen
fac_update_factuur (p_import_key);
-- het goedkeuren van deze facturen moet altijd door het flexbureau gedaan worde
UPDATE fin_factuur f
SET f.prs_perslid_key_goedkeur =
(SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE p.prs_perslid_upper = 'FLEXBUREAU')
WHERE f.fin_factuur_key IN (SELECT i.fin_factuur_key
FROM fac_imp_factuur i
WHERE i.fac_import_key = p_import_key);
-- de kostenplaats is niet de kostenplaats van het contract, maar de kostenplaats die op de factuur wordt meegegeven
-- de key was al in kenmerk12 gezet
-- daarnaast moet er een notificatie voor het goedkeuren van de factuur aangemaakt worden
FOR rec IN c_factuur
LOOP
BEGIN
wzuv_fin_upsertkenmerk (22, rec.fin_factuur_key, rec.kenmerk12);
END;
fac.trackaction ('FIN2GO',
rec.fin_factuur_key,
NULL,
NULL,
'Goedkeuring voor factuur Care4Flex vereist');
END LOOP;
END;
/
CREATE OR REPLACE PROCEDURE wzuv_import_fin_fact_randstad (
p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR (50);
BEGIN
-- In de xsl factuurnr(1);factuurdatum(2);omschrijving(3);bedrag(4);btwperc(5);btwbedrag(6);omschr(7);weeknummer(8);Kostenplaats(9);pdf(10);aantal(11);naam(12)
--hulp voor pos : '1;2;3;4;5;6;7;8;9;0;1;2;3;14;15;16;7;8;9;0'
v_seq_of_columns := '12;1;2;0;0;0;3;0;4;6;0;10;0;0;0;7;8;9;11;0';
-- Variabelelijst
-- v_leveranciernr: 1
-- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet")
-- v_factuurdatum: 3
-- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_locatie: 5
-- v_afleverdatum: 6
-- v_omschrijving: 7
-- v_aantal: 8
-- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet")
-- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet")
-- v_docid: 12
-- v_debiteur_nr: 13
-- v_opmerking: 14
-- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/<leeg> waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet")
-- v_kenmerk1: 16
-- v_kenmerk1: 17
-- v_kenmerk1: 18
-- v_kenmerk1: 19
-- v_kenmerk1: 20
-- v_boekmaand: 21
fac_import_factuur_body (p_import_key, v_seq_of_columns);
-- De factuur koppelen aan het juiste contract
UPDATE fac_imp_factuur f
SET f.ordernr =
(SELECT DECODE (
cnt_contract_versie,
NULL,
'C' || c.cnt_contract_nummer_intern,
'C' || c.cnt_contract_nummer_intern || '.' || cnt_contract_versie)
AS orderid
FROM cnt_contract c, prs_bedrijf b
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_verwijder IS NULL
AND b.prs_bedrijf_naam_upper LIKE '%RANDSTAD%');
-- De kostenplaats wordt meegegeven met de factuur, vast de kpl key erbij zoeken
UPDATE fac_imp_factuur
SET kenmerk12 =
(SELECT kp.prs_kostenplaats_key
FROM prs_kostenplaats kp
WHERE SUBSTR (kenmerk3, 1, INSTR (kenmerk3, ' ') - 1) =
kp.prs_kostenplaats_nr);
-- De omschrijving aanvullen met de informatie rondom het weeknummer
UPDATE fac_imp_factuur
SET omschrijving =
REPLACE (omschrijving, 'Regular', 'Gewerkte uren')
|| ', aantal: '
|| kenmerk4
|| ', '
|| kenmerk1
|| ' '
|| kenmerk2
|| ', naam medewerker: '
|| leveranciernr;
--- Daarna kan het veld leveranciernt opgeruimd worden
UPDATE fac_imp_factuur
SET leveranciernr = '';
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE wzuv_update_fin_fact_randstad (
p_import_key IN NUMBER)
AS
CURSOR c_factuur
IS
SELECT fin_factuur_key, 22, kenmerk12
FROM fac_imp_factuur
WHERE fin_factuur_key IS NOT NULL;
-- pdf extraheren uit xml
-- Volgens JGL kunnen we niet meerdere imports tegelijk aan bij fac_result, zie hieronder.
-- Vandaar de conditie met max(fin_factuur_key), die levert maximaal 1 record op.
CURSOR cfactuur_docid
IS
SELECT fin_factuur_key,
docid,
factuurnr,
fac_imp_file_index
FROM fac_imp_factuur
WHERE fin_factuur_key IS NOT NULL
AND fac_import_key = p_import_key
AND docid IS NOT NULL
AND fin_factuur_key =
(SELECT MAX (fin_factuur_key)
FROM fac_imp_factuur
WHERE fin_factuur_key IS NOT NULL
AND fac_import_key = p_import_key
AND docid IS NOT NULL);
-- Key van het kenmerk 'Factuurbijlage'
c_kenmerk_key_bijlage NUMBER (10) := 21;
BEGIN
-- Standaard FCLT verwerk import facturen
fac_update_factuur (p_import_key);
-- het goedkeuren van deze facturen moet altijd door het flexbureau gedaan worden
UPDATE fin_factuur f
SET f.prs_perslid_key_goedkeur =
(SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE p.prs_perslid_upper = 'FLEXBUREAU')
WHERE f.fin_factuur_key IN (SELECT i.fin_factuur_key
FROM fac_imp_factuur i
WHERE i.fac_import_key = p_import_key);
-- de kostenplaats is niet de kostenplaats van het contract, maar de kostenplaats die op de factuur wordt meegegeven
-- de key was al in kenmerk12 gezet
-- dan regelen we direct ook maar even de notificatie voor het goedkeuren
FOR rec IN c_factuur
LOOP
BEGIN
wzuv_fin_upsertkenmerk (22, rec.fin_factuur_key, rec.kenmerk12);
END;
fac.trackaction ('FIN2GO',
rec.fin_factuur_key,
NULL,
NULL,
'Goedkeuring voor factuur Randstad vereist');
END LOOP;
FOR rc IN cfactuur_docid
LOOP
BEGIN
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES ('IMPORT:' || TO_CHAR (p_import_key),
'flexcode',
'FIN:'
|| TO_CHAR (rc.fin_factuur_key) -- We kunnen niet meerdere imports tegelijk aan!
|| ':'
|| c_kenmerk_key_bijlage
|| ':' -- De kenmerk key
|| 'F');
-- FSN#33363: Zelf de insert in fin_kenmerkfactuur doen van het bestandskenmerk (FSN#33105 verzorgt dit niet namelijk)
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
fin_kenmerk_key,
fin_kenmerkfactuur_waarde)
VALUES (rc.fin_factuur_key, c_kenmerk_key_bijlage, rc.docid);
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (
p_import_key,
'W',
'Van factuur met key '
|| rc.fin_factuur_key
|| ' is de bestandsnaam niet bewaard (regel '
|| rc.fac_imp_file_index
|| ')',
'Factuurnr:'
|| rc.factuurnr
|| ' / Bestandsnaam: '
|| rc.docid);
END;
END LOOP;
END;
/
CREATE OR REPLACE VIEW WZUV_V_INS_QRC_OBJECT
(
HIDE_F_SORT,
FCLT_F_DISCIPLINE,
FCLT_F_OBJECTGROEP,
FCLT_F_OBJECTSOORT,
FCLT_F_IDENTIFICATIE,
FCLT_F_BOOKMARK,
INS_DEEL_KEY,
INS_SRTDEEL_KEY,
FCLT_3D_DISCIPLINE_KEY,
BOOKMARK_ID
)
AS
SELECT i.ins_deel_omschrijving hide_f_sort,
d.ins_discipline_omschrijving fclt_f_discipline,
g.ins_srtgroep_omschrijving fclt_f_objectgroep,
s.ins_srtdeel_omschrijving fclt_f_objectsoort,
i.ins_deel_omschrijving fclt_f_identificatie,
b.fac_bookmark_naam fclt_f_bookmark,
i.ins_deel_key,
s.ins_srtdeel_key,
i.ins_discipline_key fclt_3d_discipline_key,
b.fac_bookmark_id hide_f_bookmark_id
FROM ins_deel i,
ins_srtdeel s,
ins_srtgroep g,
ins_discipline d,
fac_bookmark b
WHERE UPPER (b.fac_bookmark_naam) = 'QRC NAAR OBJECT'
AND COALESCE (b.fac_bookmark_expire, SYSDATE + 1) > SYSDATE
AND ins_deel_verwijder IS NULL
AND COALESCE (i.ins_deel_vervaldatum, SYSDATE + 1) > SYSDATE
AND i.ins_deel_module = 'INS'
AND i.ins_deel_parent_key IS NULL
AND s.ins_srtdeel_key = i.ins_srtdeel_key
AND g.ins_srtgroep_key = s.ins_srtgroep_key
AND d.ins_discipline_key = g.ins_discipline_key;
BEGIN
DBMS_UTILITY.COMPILE_SCHEMA (USER, FALSE);
END;
/
------ payload end ------
SET DEFINE OFF
BEGIN
adm.systrackscriptId ('$Id$',
0);
END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile