2976 lines
111 KiB
SQL
2976 lines
111 KiB
SQL
-- $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 |