5734 lines
231 KiB
MySQL
5734 lines
231 KiB
MySQL
-- Script containing customer generic configuration sql statements for all PCH accounts
|
||
-- $Revision$
|
||
-- $Id$
|
||
--
|
||
|
||
DEFINE thisfile = 'PCHX.SQL'
|
||
DEFINE dbuser = 'PCHX'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||
SPOOL &fcltlogfile
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
---------------------------------------
|
||
PROMPT &fcltcusttxt
|
||
---------------------------------------
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
CREATE OR REPLACE PACKAGE PCHX
|
||
AS
|
||
PROCEDURE add_xml_row (
|
||
p_bestand IN VARCHAR2,
|
||
p_regel IN VARCHAR2);
|
||
|
||
PROCEDURE add_xml_element (
|
||
p_bestand IN VARCHAR2,
|
||
p_tag IN VARCHAR2,
|
||
p_value IN VARCHAR2);
|
||
|
||
FUNCTION get_user
|
||
RETURN VARCHAR2;
|
||
|
||
FUNCTION get_administratienr
|
||
RETURN VARCHAR2;
|
||
|
||
FUNCTION get_kenmerk (p_module IN VARCHAR2,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_link_key IN NUMBER)
|
||
RETURN VARCHAR2;
|
||
|
||
FUNCTION fin_get_locatie_code (p_factuur_key IN NUMBER, p_factuurregel_key IN NUMBER)
|
||
RETURN VARCHAR2;
|
||
|
||
PROCEDURE fin_set_locatie_code (p_factuur_key IN NUMBER, p_factuurregel_key IN NUMBER);
|
||
|
||
PROCEDURE fin_set_projectloc_code (p_factuur_key IN NUMBER);
|
||
|
||
PROCEDURE fin_set_kostensoort (p_factuur_key IN NUMBER, p_factuurregel_key IN NUMBER, p_kostensoort_oms IN VARCHAR2);
|
||
|
||
PROCEDURE fin_update_factuur (p_factuur_key IN NUMBER);
|
||
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY pchx
|
||
AS
|
||
PROCEDURE add_xml_row (p_bestand IN VARCHAR2, p_regel IN VARCHAR2)
|
||
AS
|
||
v_index NUMBER;
|
||
replace_bestand VARCHAR2 (30);
|
||
replace_regel VARCHAR2 (2000);
|
||
BEGIN
|
||
-- Indien export 'SCANSYS', dan staat in p_bestand zowel administratie+boekstknr als 'SCANSYS', gescheiden door ##
|
||
-- administratie+boekstknr zijn hierbij nodig om per factuur aparte xml-bestanden te exporteren.
|
||
IF INSTR (p_bestand, '##') > 0
|
||
THEN
|
||
replace_bestand := SUBSTR (p_bestand, INSTR (p_bestand, '##') + 2);
|
||
ELSE
|
||
replace_bestand := p_bestand;
|
||
END IF;
|
||
|
||
IF INSTR (p_bestand, '##') > 0
|
||
THEN
|
||
replace_regel :=
|
||
SUBSTR (p_bestand, 1, INSTR (p_bestand, '##') - 1)
|
||
|| '##'
|
||
|| p_regel;
|
||
ELSE
|
||
replace_regel := p_regel;
|
||
END IF;
|
||
|
||
SELECT COALESCE (MAX (fac_rapport_volgnr), 0) + 1
|
||
INTO v_index
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = replace_bestand;
|
||
|
||
INSERT INTO fac_rapport (fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel)
|
||
VALUES (replace_bestand, v_index, replace_regel);
|
||
END;
|
||
|
||
PROCEDURE add_xml_element (p_bestand IN VARCHAR2,
|
||
p_tag IN VARCHAR2,
|
||
p_value IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
pchx.add_xml_row (
|
||
p_bestand,
|
||
'<'
|
||
|| p_tag
|
||
|| '>'
|
||
|| xml.char_to_html (p_value)
|
||
|| '</'
|
||
|| p_tag
|
||
|| '>');
|
||
END;
|
||
|
||
FUNCTION get_user
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_user VARCHAR2 (20);
|
||
BEGIN
|
||
v_user := UPPER (SUBSTR (USER, 1, 4));
|
||
RETURN v_user;
|
||
END;
|
||
|
||
FUNCTION get_administratienr
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_user VARCHAR2 (20);
|
||
v_adm VARCHAR2 (20);
|
||
BEGIN
|
||
v_user := get_user;
|
||
|
||
IF v_user = 'PCHA'
|
||
THEN
|
||
v_adm := '650';
|
||
END IF;
|
||
|
||
IF v_user = 'PCHD'
|
||
THEN
|
||
v_adm := '650';
|
||
END IF;
|
||
|
||
IF v_user = 'PCHH' -- PCHH is gemigreerd in de PCHD omgeving
|
||
THEN
|
||
v_adm := '100';
|
||
END IF;
|
||
|
||
IF v_user = 'PCHP' -- PCHP is gemigreerd in de PCHD omgeving
|
||
THEN
|
||
v_adm := '250';
|
||
END IF;
|
||
|
||
IF v_user = 'PCHS'
|
||
THEN
|
||
v_adm := '300';
|
||
END IF;
|
||
|
||
IF v_user = 'PCHW'
|
||
THEN
|
||
v_adm := '650';
|
||
END IF;
|
||
|
||
IF v_user = 'PGHE'
|
||
THEN
|
||
v_adm := '650';
|
||
END IF;
|
||
|
||
RETURN v_adm;
|
||
END;
|
||
|
||
-- interne functie om de waarde van het kenmerk te bepalen.
|
||
FUNCTION get_kenmerkwaarde (p_kenmerk_type VARCHAR2,
|
||
p_kenmerkdomein_key NUMBER,
|
||
p_kenmerk_waarde VARCHAR2)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_result VARCHAR2 (4000);
|
||
BEGIN
|
||
IF p_kenmerk_type = 'R' OR p_kenmerk_type = 'S'
|
||
THEN
|
||
v_result :=
|
||
fac.getdomeinwaarde (p_kenmerkdomein_key, p_kenmerk_waarde);
|
||
ELSIF p_kenmerk_type = 'D'
|
||
THEN
|
||
v_result :=
|
||
TO_CHAR (fac.safe_to_date (p_kenmerk_waarde, 'dd-mm-yyyy'),
|
||
'yyyy-mm-dd');
|
||
ELSE
|
||
v_result := p_kenmerk_waarde;
|
||
END IF;
|
||
|
||
RETURN v_result;
|
||
END;
|
||
|
||
FUNCTION get_kenmerk (p_module IN VARCHAR2,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_link_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_kenmerk_type mld_srtkenmerk.mld_srtkenmerk_kenmerktype%TYPE;
|
||
v_kenmerk_waarde mld_kenmerkmelding.mld_kenmerkmelding_waarde%TYPE;
|
||
v_kenmerkdomein_key fac_kenmerkdomein.fac_kenmerkdomein_key%TYPE;
|
||
v_kenmerk_niveau ins_kenmerk.ins_kenmerk_niveau%TYPE;
|
||
BEGIN
|
||
CASE p_module
|
||
WHEN 'MLD'
|
||
THEN
|
||
SELECT mld_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
km.mld_kenmerkmelding_waarde
|
||
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
|
||
FROM mld_v_aanwezigkenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE km.mld_melding_key = p_link_key
|
||
AND km.mld_kenmerk_key = p_kenmerk_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
|
||
WHEN 'CNT'
|
||
THEN
|
||
SELECT cnt_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
kc.cnt_kenmerkcontract_waarde
|
||
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
|
||
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, cnt_srtkenmerk sk
|
||
WHERE kc.cnt_contract_key = p_link_key
|
||
AND kc.cnt_kenmerk_key = p_kenmerk_key
|
||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
||
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key;
|
||
WHEN 'ALG'
|
||
THEN
|
||
SELECT alg_kenmerk_kenmerktype,
|
||
k.fac_kenmerkdomein_key,
|
||
aogk.alg_onrgoedkenmerk_waarde
|
||
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
|
||
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
||
WHERE aogk.alg_onrgoed_key = p_link_key
|
||
AND aogk.alg_kenmerk_key = p_kenmerk_key
|
||
AND aogk.alg_kenmerk_key = k.alg_kenmerk_key;
|
||
WHEN 'INS'
|
||
THEN
|
||
SELECT k.ins_kenmerk_niveau
|
||
INTO v_kenmerk_niveau
|
||
FROM ins_kenmerk k
|
||
WHERE ins_kenmerk_key = p_kenmerk_key;
|
||
|
||
IF v_kenmerk_niveau = 'C'
|
||
THEN
|
||
SELECT sk.ins_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ikds.ins_kmdeelsrtcontr_waarde
|
||
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
|
||
FROM ins_kmdeelsrtcontr ikds,
|
||
ins_kenmerk k,
|
||
ins_srtkenmerk sk
|
||
WHERE ikds.ins_kmdeelsrtcontr_key = p_link_key
|
||
AND ikds.ins_kmdeelsrtcontr_verwijder IS NULL
|
||
AND ikds.ins_kenmerk_key = p_kenmerk_key
|
||
AND ikds.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
|
||
ELSE
|
||
SELECT sk.ins_srtkenmerk_kenmerktype,
|
||
sk.fac_kenmerkdomein_key,
|
||
ikd.ins_kenmerkdeel_waarde
|
||
INTO v_kenmerk_type, v_kenmerkdomein_key, v_kenmerk_waarde
|
||
FROM ins_kenmerkdeel ikd, ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE ikd.ins_deel_key = p_link_key
|
||
AND ikd.ins_kenmerkdeel_verwijder IS NULL
|
||
AND ikd.ins_kenmerk_key = p_kenmerk_key
|
||
AND ikd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
|
||
END IF;
|
||
END CASE;
|
||
|
||
RETURN get_kenmerkwaarde (v_kenmerk_type,
|
||
v_kenmerkdomein_key,
|
||
v_kenmerk_waarde);
|
||
END;
|
||
|
||
FUNCTION fin_get_locatie_code (p_factuur_key IN NUMBER, p_factuurregel_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
AS
|
||
v_bestelopdr_key NUMBER;
|
||
v_contract_key NUMBER;
|
||
v_opdr_key NUMBER;
|
||
v_locatie_code VARCHAR2 (100);
|
||
BEGIN
|
||
BEGIN
|
||
SELECT bes_bestelopdr_key, cnt_contract_key, mld_opdr_key
|
||
INTO v_bestelopdr_key, v_contract_key, v_opdr_key
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_key = p_factuur_key;
|
||
|
||
IF v_bestelopdr_key IS NOT NULL
|
||
THEN
|
||
SELECT DISTINCT alg_locatie_code
|
||
INTO v_locatie_code
|
||
FROM bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi,
|
||
bes_bestelling b,
|
||
mld_adres a,
|
||
alg_locatie l
|
||
WHERE bes_bestelopdr_key = v_bestelopdr_key
|
||
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
||
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
||
AND b.mld_adres_key_lev = a.mld_adres_key
|
||
AND a.alg_locatie_key = l.alg_locatie_key;
|
||
END IF;
|
||
|
||
IF v_contract_key IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT DISTINCT alg_locatie_code
|
||
INTO v_locatie_code
|
||
FROM cnt_contract_plaats cp, alg_locatie l
|
||
WHERE cp.cnt_contract_key = v_contract_key
|
||
AND cp.cnt_alg_plaats_code = 'L'
|
||
AND cp.cnt_alg_plaats_key = l.alg_locatie_key
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
BEGIN
|
||
SELECT DISTINCT alg_locatie_code
|
||
INTO v_locatie_code
|
||
FROM cnt_contract_plaats cp, alg_locatie l, alg_gebouw g
|
||
WHERE cp.cnt_contract_key = v_contract_key
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
AND l.alg_locatie_key = g.alg_locatie_key
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
BEGIN
|
||
SELECT DISTINCT alg_locatie_code
|
||
INTO v_locatie_code
|
||
FROM cnt_contract_plaats cp, alg_locatie l, alg_gebouw g, alg_verdieping v
|
||
WHERE cp.cnt_contract_key = v_contract_key
|
||
AND cp.cnt_alg_plaats_code = 'V'
|
||
AND cp.cnt_alg_plaats_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND l.alg_locatie_key = g.alg_locatie_key
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
SELECT DISTINCT alg_locatie_code
|
||
INTO v_locatie_code
|
||
FROM cnt_contract_plaats cp, alg_v_ruimte_gegevens ar
|
||
WHERE cp.cnt_contract_key = v_contract_key
|
||
AND cp.cnt_alg_plaats_code = 'R'
|
||
AND cp.cnt_alg_plaats_key = ar.alg_ruimte_key
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL;
|
||
END;
|
||
END;
|
||
END;
|
||
END IF;
|
||
|
||
IF v_opdr_key IS NOT NULL
|
||
THEN
|
||
SELECT alg_locatie_code
|
||
INTO v_locatie_code
|
||
FROM alg_locatie l, mld_melding m, mld_opdr o
|
||
WHERE o.mld_opdr_key = v_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key;
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_locatie_code := 'Geen referentie';
|
||
WHEN TOO_MANY_ROWS
|
||
THEN
|
||
v_locatie_code := 'Meerdere';
|
||
WHEN OTHERS
|
||
THEN
|
||
v_locatie_code := 'Onbekend';
|
||
END;
|
||
|
||
RETURN v_locatie_code;
|
||
END;
|
||
|
||
PROCEDURE fin_set_locatie_code (p_factuur_key IN NUMBER, p_factuurregel_key IN NUMBER)
|
||
AS
|
||
v_locatie_code VARCHAR2 (100);
|
||
v_locatie_count NUMBER;
|
||
BEGIN
|
||
SELECT count(*)
|
||
INTO v_locatie_count
|
||
FROM fin_factuurregel fr, alg_locatie l
|
||
WHERE fr.fin_factuurregel_referentie = l.alg_locatie_code
|
||
AND l.alg_locatie_verwijder IS NULL
|
||
AND fr.fin_factuurregel_key = p_factuurregel_key;
|
||
|
||
v_locatie_code := fin_get_locatie_code (p_factuur_key, p_factuurregel_key);
|
||
|
||
-- We gaan het referentie veld aanpassen als het veld nog niet met een geldige locatiecode gevuld was.
|
||
IF v_locatie_count = 0
|
||
THEN
|
||
UPDATE fin_factuurregel SET fin_factuurregel_referentie = v_locatie_code
|
||
WHERE fin_factuurregel_key = p_factuurregel_key;
|
||
END IF;
|
||
END;
|
||
|
||
PROCEDURE fin_set_projectloc_code (p_factuur_key IN NUMBER)
|
||
AS
|
||
v_contract_key NUMBER;
|
||
v_opdr_key NUMBER;
|
||
v_ruimte_nr VARCHAR2 (100);
|
||
BEGIN
|
||
v_ruimte_nr := FLX.getflex('FIN', 121, p_factuur_key);
|
||
SELECT cnt_contract_key, mld_opdr_key
|
||
INTO v_contract_key, v_opdr_key
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_key = p_factuur_key;
|
||
|
||
IF v_contract_key IS NOT NULL
|
||
THEN
|
||
SELECT MAX(FLX.getflex ('ALG', 2340, r.alg_ruimte_key, 'R')) -- sublocatiecode
|
||
INTO v_ruimte_nr
|
||
FROM cnt_contract_plaats cp, alg_ruimte r
|
||
WHERE cp.cnt_contract_key = v_contract_key
|
||
AND cp.cnt_alg_plaats_code = 'R'
|
||
AND cp.cnt_alg_plaats_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = 241 -- projectlocatie
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL;
|
||
END IF;
|
||
|
||
IF v_opdr_key IS NOT NULL
|
||
THEN
|
||
SELECT MAX(FLX.getflex ('ALG', 2340, r.alg_ruimte_key, 'R')) -- sublocatiecode
|
||
INTO v_ruimte_nr
|
||
FROM mld_opdr o, mld_melding m, alg_ruimte r
|
||
WHERE o.mld_opdr_key = v_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND r.alg_srtruimte_key = 241 -- projectlocatie
|
||
AND m.mld_alg_onroerendgoed_keys = r.alg_ruimte_key;
|
||
END IF;
|
||
|
||
IF v_ruimte_nr IS NOT NULL
|
||
THEN
|
||
FLX.setflex('FIN', 121, p_factuur_key, v_ruimte_nr);
|
||
END IF;
|
||
END;
|
||
|
||
|
||
PROCEDURE fin_set_kostensoort (p_factuur_key IN NUMBER, p_factuurregel_key IN NUMBER, p_kostensoort_oms IN VARCHAR2)
|
||
AS
|
||
v_kostensoort_key FIN_FACTUURREGEL.PRS_KOSTENSOORT_KEY%TYPE;
|
||
BEGIN
|
||
--Kostensoort (factuurregel)
|
||
SELECT prs_kostensoort_key
|
||
INTO v_kostensoort_key
|
||
FROM fin_factuurregel fr
|
||
WHERE fin_factuurregel_key = p_factuurregel_key;
|
||
|
||
-- alleen als we de kosten gaan doorbelasten gaan we op zoek naar de juiste kostensoort als deze nog niet gevuld was.
|
||
IF SUBSTR(FLX.getflex('FIN', 3, p_factuur_key),2,2) <> '71' -- boekstuknummer / dagboek
|
||
AND v_kostensoort_key IS NULL
|
||
THEN
|
||
IF p_kostensoort_oms IS NULL
|
||
THEN
|
||
-- Kostensoort opzoeken in de verplichting
|
||
SELECT prs_kostensoort_key
|
||
INTO v_kostensoort_key
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_key = p_factuur_key;
|
||
|
||
IF v_kostensoort_key IS NOT NULL
|
||
THEN
|
||
UPDATE fin_factuurregel
|
||
SET prs_kostensoort_key = v_kostensoort_key
|
||
WHERE fin_factuurregel_key = p_factuurregel_key;
|
||
ELSE
|
||
-- zet de factuur op incompeet als de kostensoort niet gevonden kan worden.
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_statuses_key = 3,
|
||
fin_factuur_opmerking = 'Kostensoort niet gevonden' || CHR(10) || fin_factuur_opmerking
|
||
WHERE fin_factuur_key = p_factuur_key;
|
||
END IF;
|
||
ELSE
|
||
UPDATE fin_factuurregel
|
||
SET prs_kostensoort_key =
|
||
(SELECT MAX (ks.prs_kostensoort_key)
|
||
FROM prs_kostensoort ks
|
||
WHERE ks.prs_kostensoort_upper =
|
||
UPPER (p_kostensoort_oms))
|
||
WHERE fin_factuurregel_key = p_factuurregel_key;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
|
||
PROCEDURE fin_update_factuur (p_factuur_key IN NUMBER)
|
||
AS
|
||
v_factuur_statuses_key FIN_FACTUUR.FIN_FACTUUR_STATUSES_KEY%TYPE;
|
||
BEGIN
|
||
SELECT fin_factuur_statuses_key
|
||
INTO v_factuur_statuses_key
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_key = p_factuur_key;
|
||
|
||
IF v_factuur_statuses_key IN (2,3) -- Ingevoerd en incompleet.
|
||
THEN
|
||
PCHX.fin_set_projectloc_code (p_factuur_key);
|
||
|
||
FOR rec IN (SELECT fin_factuurregel_key FROM fin_factuurregel WHERE fin_factuur_key = p_factuur_key)
|
||
LOOP
|
||
PCHX.fin_set_locatie_code (p_factuur_key, rec.fin_factuurregel_key);
|
||
PCHX.fin_set_kostensoort (p_factuur_key, rec.fin_factuurregel_key, '');
|
||
END LOOP;
|
||
END IF;
|
||
END;
|
||
|
||
END;
|
||
/
|
||
|
||
--=============================================================================
|
||
-- IMPORTFUNCTIES
|
||
-------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_import_perslid (p_import_key IN NUMBER)
|
||
AS
|
||
v_seq_of_columns VARCHAR(255);
|
||
BEGIN
|
||
v_seq_of_columns := '0;0;0;0;0;0;1;2;3;5;4;0;0;0;14;7;8;9;15;12;11;13;0;6;10;0;16;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0';
|
||
prs.import_perslid(p_import_key, v_seq_of_columns, 'AFDELINGSCODE;PERSOONACHTERNAAM;TUSSENVOEGSEL;VOORLETTERS;VOORNAAM;TITEL_AANHEF;TELEFOONNUMMER;MOBIEL;EMAIL;APIKEY;FUNCTIE;PERSONEELSNUMMER;LOGINNAAM;GESLACHT;DIENSTVERBAND%');
|
||
END pchx_import_perslid;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_update_perslid (
|
||
p_import_key IN NUMBER
|
||
) IS
|
||
|
||
BEGIN
|
||
-- generic update
|
||
prs.update_perslid (p_import_key, 'APIKEY', NULL);
|
||
|
||
UPDATE prs_perslid p
|
||
SET prs_perslid_oslogin2 = (SELECT prs_kenmerk1
|
||
FROM fac_imp_perslid i
|
||
WHERE i.prs_perslid_key = p.prs_perslid_key)
|
||
WHERE EXISTS (SELECT i.prs_perslid_key
|
||
FROM fac_imp_perslid i
|
||
WHERE i.prs_perslid_key = p.prs_perslid_key);
|
||
|
||
END pchx_update_perslid;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_noti_cntreminder
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
par1,
|
||
par2,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT 'CNTMAI',
|
||
'',
|
||
c.prs_perslid_key_eig,
|
||
'Rapp<EFBFBD>l: '
|
||
|| fac_version_cust
|
||
|| ' Contract '
|
||
|| c.cnt_contract_nummer_intern
|
||
|| ' ('
|
||
|| 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, fac_version
|
||
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);
|
||
|
||
--PCHD#33769 default reminder ook voor goedkeuringsverzoeken
|
||
CREATE OR REPLACE VIEW PCHX_V_NOTI_FINREMINDER
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
PAR1,
|
||
PAR2,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT 'FININF',
|
||
'',
|
||
prs.getkpverantwoordelijke (
|
||
fin.getfactuurkostenplaats (f.fin_factuur_key),
|
||
fac.getSetting ('prs_approvemethod'),
|
||
-1
|
||
)
|
||
budgethouder,
|
||
'Fiatteringsverzoek voor ' || COUNT (f.fin_factuur_key)
|
||
|| DECODE (COUNT (f.fin_factuur_key),
|
||
1, ' factuur.',
|
||
' facturen.'),
|
||
MIN (f.fin_factuur_key), -- Dummy key, althans een willekeurige; FSN#19425
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM fin_factuur f
|
||
WHERE prs.getkpverantwoordelijke (
|
||
fin.getfactuurkostenplaats (f.fin_factuur_key),
|
||
fac.getSetting ('prs_approvemethod'),
|
||
-1
|
||
) <> -1 -- die kan ik geen bericht sturen
|
||
AND f.fin_factuur_statuses_key = 2
|
||
AND f.fin_factuur_verwijder IS NULL
|
||
GROUP BY prs.getkpverantwoordelijke (
|
||
fin.getfactuurkostenplaats (f.fin_factuur_key),
|
||
fac.getSetting ('prs_approvemethod'),
|
||
-1
|
||
)
|
||
UNION ALL
|
||
SELECT 'FININF',
|
||
'',
|
||
p.prs_perslid_key,
|
||
'Goedkeuringsverzoek voor ' || COUNT (f.fin_factuur_key)
|
||
|| DECODE (COUNT (f.fin_factuur_key),
|
||
1, ' factuur.',
|
||
' facturen.'),
|
||
MIN (f.fin_factuur_key),
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM fin_factuur f, prs_perslid p
|
||
WHERE prs_perslid_key_goedkeur IS NOT NULL
|
||
AND fin_factuur_statuses_key = 5
|
||
AND fin_factuur_verwijder IS NULL
|
||
AND p.prs_perslid_key = f.prs_perslid_key_goedkeur
|
||
GROUP BY prs_perslid_key;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_factuur_gegevens
|
||
AS
|
||
SELECT f.fin_factuur_key,
|
||
DECODE (
|
||
c.cnt_contract_key,
|
||
NULL,
|
||
DECODE (
|
||
bo.bes_bestelopdr_key,
|
||
NULL,
|
||
(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),
|
||
bo.bes_bestelopdr_id),
|
||
'C' || TO_CHAR (cnt_contract_nummer_intern))
|
||
opdracht_id,
|
||
DECODE (TO_CHAR (f.fin_factuur_datum, 'yyyy'),
|
||
'2010', TO_DATE ('20110102', 'YYYYMMDD'),
|
||
'2011', TO_DATE ('20120102', 'YYYYMMDD'),
|
||
f.fin_factuur_datum) fin_factuur_datum,
|
||
f.fin_factuur_nr,
|
||
COALESCE (b_c.prs_bedrijf_key,
|
||
COALESCE (b_o.prs_bedrijf_key, b_b.prs_bedrijf_key))
|
||
prs_bedrijf_key_org,
|
||
b_f.prs_bedrijf_key prs_bedrijf_key_afw,
|
||
COALESCE (
|
||
b_f.prs_bedrijf_key,
|
||
COALESCE (b_c.prs_bedrijf_key,
|
||
COALESCE (b_o.prs_bedrijf_key, b_b.prs_bedrijf_key)))
|
||
prs_bedrijf_key,
|
||
fin_factuurregel_omschrijving,
|
||
fr.fin_factuurregel_totaal,
|
||
ROUND (
|
||
fr.fin_factuurregel_totaal
|
||
* DECODE (btw.fin_btwtabelwaarde_verlegd,
|
||
1, 0,
|
||
btw.fin_btwtabelwaarde_perc / 100),
|
||
2)
|
||
fin_factuurregel_btw,
|
||
btw.fin_btwtabelwaarde_code,
|
||
btw.fin_btwtabelwaarde_key,
|
||
fr.fin_factuurregel_nr,
|
||
fr.fin_factuurregel_key,
|
||
f.fin_factuur_debiteur_nr,
|
||
f.fin_factuur_opmerking,
|
||
f.fin_factuur_boekmaand,
|
||
COALESCE (
|
||
o.mld_opdr_datumbegin,
|
||
COALESCE (c.cnt_contract_looptijd_tot, bo.bes_bestelopdr_datum)) opdr_datum,
|
||
(SELECT fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur fk
|
||
WHERE fk.fin_factuur_key = f.fin_factuur_key
|
||
AND fk.fin_kenmerk_key = 3)
|
||
boekstuknummer,
|
||
(SELECT fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur fk
|
||
WHERE fk.fin_factuur_key = f.fin_factuur_key
|
||
AND fk.fin_kenmerk_key = 121)
|
||
projectlocatie,
|
||
(SELECT fin_kenmerkfactregel_waarde
|
||
FROM fin_kenmerkfactregel kfr
|
||
WHERE fin_kenmerk_key = 141 -- projectlocatie zoals ingevuld vanuit het fin systeem
|
||
AND kfr.fin_factuurregel_key = fr.fin_factuurregel_key)
|
||
projectcode,
|
||
kr.prs_kostensoort_oms,
|
||
kr.prs_kostensoort_refcode,
|
||
'Onbekend' vk_prs_kostensoort_refcode,
|
||
kr.prs_kostensoort_key,
|
||
COALESCE (
|
||
fr_afwk.afw_kostenplaats_key,
|
||
o.prs_kostenplaats_key,
|
||
c.prs_kostenplaats_key,
|
||
(SELECT DISTINCT b.prs_kostenplaats_key
|
||
FROM bes_bestelling b,
|
||
bes_bestelopdr_item boi,
|
||
bes_bestelling_item bi
|
||
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||
AND boi.bes_bestelopdr_item_key =
|
||
bi.bes_bestelopdr_item_key
|
||
AND bi.bes_bestelling_key = b.bes_bestelling_key))
|
||
prs_kostenplaats_key,
|
||
o.mld_opdr_key,
|
||
c.cnt_contract_key,
|
||
bo.bes_bestelopdr_key,
|
||
( -- status van de factuur is ingevoerd als er facturen van dezelfde leverancier en nummer zijn
|
||
-- met status ingevoerd, afgewezen of incompleet
|
||
SELECT DECODE (COUNT ( * ), 0, f.fin_factuur_statuses_key, 2)
|
||
FROM fin_factuur f_t,
|
||
cnt_contract c_t,
|
||
bes_bestelopdr b_t,
|
||
mld_opdr o_t
|
||
WHERE f_t.fin_factuur_verwijder IS NULL
|
||
AND f_t.mld_opdr_key = o_t.mld_opdr_key(+)
|
||
AND f_t.cnt_contract_key = c_t.cnt_contract_key(+)
|
||
AND f_t.bes_bestelopdr_key = b_t.bes_bestelopdr_key(+)
|
||
AND COALESCE (
|
||
o_t.mld_uitvoerende_keys,
|
||
COALESCE (b_t.prs_bedrijf_key,
|
||
c_t.cnt_prs_bedrijf_key)) =
|
||
COALESCE (
|
||
o.mld_uitvoerende_keys,
|
||
COALESCE (bo.prs_bedrijf_key,
|
||
c.cnt_prs_bedrijf_key))
|
||
AND f.fin_factuur_nr = f_t.fin_factuur_nr
|
||
AND f_t.fin_factuur_statuses_key IN (1, 2, 3, 5) -- Afgewezen,Ingevoerd,Incompleet,TerGoedkeuring
|
||
AND f.fin_factuur_statuses_key = 6)
|
||
fin_factuur_statuses_key,
|
||
f.fin_factuur_statuses_key fin_factuur_statuses_org_key,
|
||
'Onbekend' lev_kpn,
|
||
rn.reknr,
|
||
(SELECT fin_kenmerkfactuur_waarde
|
||
FROM fin_kenmerkfactuur fk
|
||
WHERE fk.fin_factuur_key = f.fin_factuur_key
|
||
AND fk.fin_kenmerk_key = 2) administratie,
|
||
(SELECT fac.safe_to_date (fin_kenmerkfactregel_waarde,
|
||
'DD-MM-YYYY')
|
||
afwboekdatum
|
||
FROM fin_kenmerkfactregel fkf, fin_kenmerk fk
|
||
WHERE fk.fin_kenmerk_key = fkf.fin_kenmerk_key
|
||
AND fkf.fin_kenmerkfactregel_verwijder IS NULL
|
||
AND fk.fin_kenmerk_verwijder IS NULL
|
||
AND UPPER (fk.fin_kenmerk_omschrijving) = 'AFW. BOEKDATUM'
|
||
AND fkf.fin_factuurregel_key = fr.fin_factuurregel_key)
|
||
afwboekdatum,
|
||
fr_afwk.afw_kostenplaats_key,
|
||
l.alg_locatie_code
|
||
FROM fin_factuur f,
|
||
fin_factuurregel fr,
|
||
fin_btwtabelwaarde btw,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
cnt_contract c,
|
||
bes_bestelopdr bo,
|
||
prs_bedrijf b_o,
|
||
prs_bedrijf b_c,
|
||
prs_bedrijf b_b,
|
||
(SELECT b.*, fin_factuur_key
|
||
FROM fin_kenmerkfactuur km, prs_bedrijf b
|
||
WHERE fin_kenmerk_key = 41
|
||
AND fac.safe_to_number (km.fin_kenmerkfactuur_waarde) =
|
||
b.prs_bedrijf_key) b_f, -- Afwijkend bedrijf
|
||
(SELECT frk.fin_factuurregel_key,
|
||
prs_kostenplaats_key afw_kostenplaats_key
|
||
FROM fin_kenmerk k,
|
||
prs_kostenplaats kp,
|
||
fin_kenmerkfactregel frk
|
||
WHERE kp.prs_kostenplaats_key = fac.safe_to_number(frk.fin_kenmerkfactregel_waarde)
|
||
AND k.fin_kenmerk_key = frk.fin_kenmerk_key
|
||
AND frk.fin_kenmerkfactregel_verwijder IS NULL
|
||
AND k.fin_kenmerk_verwijder IS NULL
|
||
AND kp.prs_kostenplaats_verwijder IS NULL
|
||
AND k.fin_kenmerk_upper = 'AFW. KOSTENPLAATS') fr_afwk, -- Afwijkend kostenplaats
|
||
prs_kostensoort kr,
|
||
prs_kostensoortgrp kg,
|
||
pchx_v_kenm_reknr rn,
|
||
alg_locatie l
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key(+)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND f.cnt_contract_key = c.cnt_contract_key(+)
|
||
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
||
AND bo.prs_bedrijf_key = b_b.prs_bedrijf_key(+)
|
||
AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+)
|
||
AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
|
||
AND f.fin_factuur_key = b_f.fin_factuur_key(+)
|
||
AND kr.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)
|
||
AND fr.prs_kostensoort_key = kr.prs_kostensoort_key(+)
|
||
AND fr.fin_factuurregel_key = rn.fin_factuurregel_key(+)
|
||
AND fr.fin_factuurregel_key = fr_afwk.fin_factuurregel_key(+)
|
||
AND fr.fin_factuurregel_referentie = l.alg_locatie_code(+)
|
||
AND f.fin_factuur_verwijder IS NULL;
|
||
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_rap_factuurgegevens
|
||
(
|
||
html_factuur_key,
|
||
fclt_f_boekstuknummer,
|
||
factuurdatum,
|
||
referentie,
|
||
factuurnummer,
|
||
bedrag,
|
||
fclt_f_bedrijf
|
||
)
|
||
AS
|
||
SELECT '<a class="details" onclick=''FcltMgr.openDetail("appl/fin/fin_factuur.asp?urole=bo&'
|
||
|| 'fin_key='
|
||
|| fin_factuur_key
|
||
|| '")''>'
|
||
|| fin_factuur_key
|
||
|| '</a>'
|
||
fin_factuur_key,
|
||
boekstuknummer,
|
||
fin_factuur_datum,
|
||
opdracht_id,
|
||
fin_factuur_nr,
|
||
SUM (fin_factuurregel_totaal) totaal,
|
||
b.prs_bedrijf_naam
|
||
FROM pchx_v_factuur_gegevens fg, prs_bedrijf b
|
||
WHERE fg.prs_bedrijf_key = b.prs_bedrijf_key(+)
|
||
GROUP BY fin_factuur_key,
|
||
boekstuknummer,
|
||
opdracht_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_nr,
|
||
prs_bedrijf_naam;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_rap_factuurgegevens_fin
|
||
(
|
||
fin_factuur_key,
|
||
nr,
|
||
factuurdatum,
|
||
uitvoerende,
|
||
leveranciernr,
|
||
factuurnr,
|
||
excl_btw,
|
||
incl_btw,
|
||
status,
|
||
afwbedrijf,
|
||
grootboekrekening,
|
||
factuurregel_omschrijving,
|
||
afw_boekdatum
|
||
)
|
||
AS
|
||
SELECT fin_factuur_key,
|
||
TO_CHAR (fin_factuur_key),
|
||
fin_factuur_datum,
|
||
borg.prs_bedrijf_naam,
|
||
borg.prs_leverancier_nr,
|
||
fin_factuur_nr,
|
||
SUM (fin_factuurregel_totaal),
|
||
SUM (fin_factuurregel_totaal + fin_factuurregel_btw),
|
||
DECODE (fin_factuur_statuses_org_key,
|
||
1, 'Afgewezen',
|
||
2, 'Ingevoerd',
|
||
5, 'Ter goedkeuring',
|
||
6, 'Akkoord')
|
||
Status,
|
||
bafw.prs_bedrijf_naam,
|
||
reknr,
|
||
fin_factuurregel_omschrijving,
|
||
afwboekdatum
|
||
FROM pchx_v_factuur_gegevens f,
|
||
prs_bedrijf borg,
|
||
prs_bedrijf bafw
|
||
WHERE borg.prs_bedrijf_key = f.prs_bedrijf_key_org
|
||
AND bafw.prs_bedrijf_key = f.prs_bedrijf_key_afw(+)
|
||
AND f.fin_factuur_statuses_org_key IN (1, 2, 5, 6)
|
||
GROUP BY fin_factuur_key,
|
||
fin_factuur_datum,
|
||
borg.prs_bedrijf_naam,
|
||
borg.prs_leverancier_nr,
|
||
fin_factuur_nr,
|
||
fin_factuur_statuses_org_key,
|
||
bafw.prs_bedrijf_naam,
|
||
reknr,
|
||
fin_factuurregel_omschrijving,
|
||
afwboekdatum;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - Export exact
|
||
-------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW pchx_v_aanwezigfactuur
|
||
(
|
||
FIN_FACTUUR_KEY,
|
||
FIN_FACTUUR_NR,
|
||
FIN_FACTUUR_TOTAAL,
|
||
FIN_FACTUUR_TOTAAL_BTW,
|
||
MLD_OPDR_KEY,
|
||
CNT_CONTRACT_KEY,
|
||
BES_BESTELOPDR_KEY,
|
||
PRS_PERSLID_KEY_USER,
|
||
FIN_FACTUUR_DATUM,
|
||
FIN_FACTUUR_BOEKMAAND,
|
||
FIN_FACTUUR_DEBITEUR_NR,
|
||
PRS_KOSTENSOORT_KEY,
|
||
FIN_FACTUUR_OPMERKING,
|
||
FIN_FACTUUR_STATUSES_KEY,
|
||
FIN_FACTUUR_VERWIJDER
|
||
)
|
||
AS
|
||
SELECT FIN_FACTUUR_KEY,
|
||
FIN_FACTUUR_NR,
|
||
FIN_FACTUUR_TOTAAL,
|
||
FIN_FACTUUR_TOTAAL_BTW,
|
||
MLD_OPDR_KEY,
|
||
CNT_CONTRACT_KEY,
|
||
BES_BESTELOPDR_KEY,
|
||
PRS_PERSLID_KEY_USER,
|
||
FIN_FACTUUR_DATUM,
|
||
FIN_FACTUUR_BOEKMAAND,
|
||
FIN_FACTUUR_DEBITEUR_NR,
|
||
PRS_KOSTENSOORT_KEY,
|
||
FIN_FACTUUR_OPMERKING,
|
||
FIN_FACTUUR_STATUSES_KEY,
|
||
FIN_FACTUUR_VERWIJDER
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_verwijder IS NULL AND fin_factuur_statuses_key > 1;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_kenm_reknr
|
||
(
|
||
fin_factuurregel_key,
|
||
reknr
|
||
)
|
||
AS
|
||
SELECT fr1.fin_factuurregel_key,
|
||
COALESCE (
|
||
(SELECT fac_usrdata_code
|
||
FROM fin_kenmerkfactregel kfr1, fac_usrdata ud
|
||
WHERE fin_kenmerk_key = 24
|
||
AND kfr1.fin_factuurregel_key = fr1.fin_factuurregel_key
|
||
AND fac.safe_to_number (fin_kenmerkfactregel_waarde) =
|
||
ud.fac_usrdata_key),
|
||
(SELECT fac_usrdata_code
|
||
FROM fin_kenmerkfactuur kf1, fac_usrdata ud
|
||
WHERE fin_kenmerk_key = 21
|
||
AND kf1.fin_factuur_key = fr1.fin_factuur_key
|
||
AND fac.safe_to_number (fin_kenmerkfactuur_waarde) =
|
||
ud.fac_usrdata_key))
|
||
FROM fin_factuurregel fr1;
|
||
|
||
|
||
-- View om de relatie tussen werkmaatschappij en locatie weer te geven. Deze relatie loopt
|
||
-- via de kenmerken werkmaatschij(n) bij een locatie. Deze kenmerken wijzen naar een intern
|
||
-- bedrijf. Deze interne bedrijven hebben vervolgens een kenmerk dat naar de kostenplaats wijst.
|
||
-- De combinatie prs_kostenplaat_nr en locatiecode is uiteindelijke de projectcode die naar
|
||
-- Exact gecommuniceerd wordt. Geldt alleen voor PCHD!!
|
||
CREATE OR REPLACE VIEW pchx_v_wm_loc
|
||
AS
|
||
SELECT DISTINCT prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
wm.prs_kostenplaats_key,
|
||
wm.prs_kostenplaats_nr,
|
||
b.prs_bedrijf_intern,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
COUNT (*) aantal,
|
||
wm.prs_kostenplaats_nr || alg_locatie_code projectcode
|
||
FROM alg_kenmerk k,
|
||
alg_onrgoedkenmerk aogk,
|
||
prs_bedrijf b,
|
||
alg_locatie l,
|
||
(SELECT prs_link_key, prs_kostenplaats_nr, kp.prs_kostenplaats_key
|
||
FROM prs_kostenplaats kp, prs_kenmerklink kl
|
||
WHERE fac.safe_to_number (kl.prs_kenmerklink_waarde) = kp.prs_kostenplaats_key AND kl.prs_kenmerk_key = 1260)
|
||
wm
|
||
WHERE fac.safe_to_number (alg_onrgoedkenmerk_waarde) = b.prs_bedrijf_key
|
||
AND aogk.alg_kenmerk_key = k.alg_kenmerk_key
|
||
AND alg_kenmerk_omschrijving LIKE 'Werkmaatschappij%'
|
||
AND alg_kenmerk_kenmerktype = 'S'
|
||
AND alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND alg_onrgoed_key = l.alg_locatie_key
|
||
AND l.alg_locatie_verwijder IS NULL
|
||
AND b.prs_bedrijf_key = wm.prs_link_key(+)
|
||
AND b.prs_bedrijf_intern = 1
|
||
AND COALESCE (alg_locatie_vervaldatum, SYSDATE + 1) > SYSDATE
|
||
GROUP BY prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
prs_bedrijf_intern,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
wm.prs_kostenplaats_nr,
|
||
wm.prs_kostenplaats_key;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_bron_export_exact_xml
|
||
AS
|
||
SELECT boekstuknummer bkstnr,
|
||
REPLACE (fin_factuur_opmerking, ',', '') fact_oms25,
|
||
opdracht_id
|
||
|| ' - '
|
||
|| REPLACE (fin_factuurregel_omschrijving, ',', '')
|
||
regel_oms25,
|
||
fin_factuurregel_omschrijving regel_oms,
|
||
TO_CHAR (fin_factuur_datum, 'yyyy-mm-dd') datum,
|
||
(SELECT TO_CHAR (
|
||
fac.safe_to_date (fin_kenmerkfactregel_waarde,
|
||
'dd-mm-yyyy'),
|
||
'yyyy-mm-dd')
|
||
FROM fin_kenmerkfactregel kfr
|
||
WHERE kfr.fin_factuurregel_key = fg.fin_factuurregel_key
|
||
AND kfr.fin_kenmerk_key = 23) -- afw boekdatum
|
||
afw_datum,
|
||
(SELECT prs_leverancier_nr
|
||
FROM prs_bedrijf b
|
||
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
|
||
crdnr,
|
||
projectlocatie,
|
||
projectcode,
|
||
REPLACE (TO_CHAR (fin_factuurregel_totaal), ',', '.') bedrag_txt,
|
||
fin_factuurregel_totaal bedrag,
|
||
fin_factuurregel_totaal + fin_factuurregel_btw bedrag_incl,
|
||
fin_factuur_nr || '/' || fin_factuur_debiteur_nr betaalref,
|
||
prs_kostensoort_oms itemcode,
|
||
reknr,
|
||
(SELECT prs_kostenplaats_nr
|
||
FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_key = fg.prs_kostenplaats_key)
|
||
kstplcode,
|
||
fin_btwtabelwaarde_code btw_code,
|
||
lev_kpn,
|
||
administratie,
|
||
fin_factuur_key,
|
||
fin_factuurregel_nr,
|
||
fin_factuur_statuses_key,
|
||
alg_locatie_code
|
||
FROM pchx_v_factuur_gegevens fg,
|
||
prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaats_key = fg.prs_kostenplaats_key
|
||
-- Alleen als de kosten doorbelast moeten worden gaan we controleren of de werkmaatschappij wel aan de locatie gekoppeld is.
|
||
AND ( SUBSTR(boekstuknummer,2,2) <> '70'
|
||
OR administratie = '100'
|
||
OR
|
||
( EXISTS (SELECT 1 FROM pchx_v_wm_loc wl
|
||
WHERE wl.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND wl.alg_locatie_code = fg.alg_locatie_code))
|
||
AND prs_kostensoort_oms IS NOT NULL);
|
||
|
||
-- View om ongeldige facturen boven water te krijgen. Een ongeldige factuur is een factuur zonder kostensoort
|
||
CREATE OR REPLACE VIEW pchx_v_rap_ongeldige_factuur
|
||
AS
|
||
SELECT fin_factuur_key,
|
||
opdracht_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_nr,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_totaal,
|
||
fin_btwtabelwaarde_code,
|
||
fin_factuur_opmerking,
|
||
boekstuknummer,
|
||
SUBSTR (boekstuknummer, 2, 2) dagboek,
|
||
prs_kostensoort_oms,
|
||
PCHX.fin_get_locatie_code (fin_factuur_key, fin_factuurregel_key) locatie,
|
||
k.prs_kostenplaats_nr,
|
||
s.fin_factuur_statuses_omschr
|
||
FROM pchx_v_factuur_gegevens f, fin_factuur_statuses s, prs_kostenplaats k
|
||
WHERE f.fin_factuur_statuses_key IN (2, 5, 6)
|
||
AND f.fin_factuur_statuses_key = s.fin_factuur_statuses_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM PCHX_V_BRON_EXPORT_EXACT_XML x
|
||
WHERE f.fin_factuur_key = x.fin_factuur_key)
|
||
AND f.prs_kostenplaats_key = k.prs_kostenplaats_key;
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - Export exact verwerk
|
||
-- Deze exportfunctie wordt ook gebruikt voor de koppeling naar Scansys
|
||
-------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_exp_verwerk_exact_adm (
|
||
result,
|
||
result_order,
|
||
administratie
|
||
)
|
||
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
|
||
|| ';'
|
||
|| projectcode
|
||
|| ';'
|
||
|| prs_kostensoort_refcode
|
||
|| ';'
|
||
|| mld_opdr_key
|
||
|| ';'
|
||
|| cnt_contract_key
|
||
,CHR (13), ''), CHR (10), '<ret>'),
|
||
f.fin_factuur_key,
|
||
f.administratie
|
||
FROM pchx_exp_factuur f,
|
||
pchx_v_factuur_gegevens fg
|
||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||
AND fg.fin_factuur_statuses_key = 6;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_export_verwerk_exact (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT result, result_order
|
||
FROM pchx_v_exp_verwerk_exact_adm
|
||
WHERE administratie = pchx.get_administratienr
|
||
OR (pchx.get_user = 'PCHD' AND administratie = '100')
|
||
OR (pchx.get_user = 'PCHD' AND administratie = '250');
|
||
|
||
|
||
-- Procedure om alle geexporteerde facturen naar status verwerkt te zetten.
|
||
-- Deze procedure pchx_export_verwerk_exact_adm wordt ook gebruikt voor de koppeling naar Scansys
|
||
CREATE OR REPLACE PROCEDURE pchx_export_verwerk_exact_adm (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2,
|
||
p_administratie IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c_fact
|
||
IS
|
||
SELECT f.fin_factuur_key
|
||
FROM pchx_exp_factuur f
|
||
, pchx_v_factuur_gegevens fg
|
||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||
AND fg.fin_factuur_statuses_key = 6
|
||
AND f.administratie = p_administratie;
|
||
|
||
CURSOR c_opdr
|
||
IS
|
||
SELECT distinct fg.mld_opdr_key, mld_statusopdr_key, m.mld_melding_status, m.mld_melding_key
|
||
FROM pchx_exp_factuur f
|
||
, pchx_v_factuur_gegevens fg
|
||
, mld_opdr o
|
||
, mld_melding m
|
||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||
AND fg.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND fg.fin_factuur_statuses_key = 6
|
||
AND f.administratie = p_administratie;
|
||
|
||
CURSOR c_bes
|
||
IS
|
||
SELECT bo.*
|
||
FROM pchx_exp_factuur f
|
||
, pchx_v_factuur_gegevens fg
|
||
, bes_bestelopdr bo
|
||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||
AND fg.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||
AND fg.fin_factuur_statuses_key = 6
|
||
AND f.administratie = p_administratie;
|
||
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanvrager NUMBER;
|
||
v_bestelling_key NUMBER;
|
||
v_logdate DATE;
|
||
BEGIN
|
||
v_errormsg := 'Geen akties';
|
||
|
||
-- Facilitor user
|
||
v_aanvrager := 4;
|
||
|
||
v_logdate := SYSDATE;
|
||
|
||
FOR rec1 IN c_bes
|
||
LOOP
|
||
BEGIN
|
||
-- indien nog niet afgemeld, dan maar even afmelden.
|
||
IF rec1.bes_bestelopdr_status = 3 THEN -- in behandeling
|
||
UPDATE bes_bestelopdr
|
||
SET bes_bestelopdr_status = 4
|
||
WHERE bes_bestelopdr_key= rec1.bes_bestelopdr_key
|
||
AND bes_bestelopdr_status = 3;
|
||
END IF;
|
||
|
||
IF rec1.bes_bestelopdr_status = 5 -- bevestigd
|
||
OR rec1.bes_bestelopdr_status = 4 -- in bestelling
|
||
OR rec1.bes_bestelopdr_status = 3 THEN
|
||
|
||
UPDATE bes_bestelopdr_item B
|
||
SET bes_bestelopdr_item_aantalontv = COALESCE(bes_bestelopdr_item_aantal, 0),
|
||
bes_bestelopdr_item_ontvangen = SYSDATE
|
||
WHERE b.bes_bestelopdr_key = rec1.bes_bestelopdr_key;
|
||
|
||
UPDATE bes_bestelling_item bi
|
||
SET bes_bestelling_item_aantalontv = COALESCE(bes_bestelling_item_aantal, 0)
|
||
WHERE EXISTS (SELECT bes_bestelopdr_key
|
||
FROM bes_bestelopdr_item boi
|
||
WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND bes_bestelopdr_key = rec1.bes_bestelopdr_key);
|
||
|
||
SELECT distinct bes_bestelling_key
|
||
INTO v_bestelling_key
|
||
FROM bes_bestelling_item bi, bes_bestelopdr_item boi
|
||
WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND bes_bestelopdr_key = rec1.bes_bestelopdr_key;
|
||
|
||
bes.updatebestelopdrstatus(rec1.bes_bestelopdr_key, v_aanvrager);
|
||
bes.updatebestellingstatus(v_bestelling_key, v_aanvrager);
|
||
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
FOR rec1 IN c_opdr
|
||
LOOP
|
||
BEGIN
|
||
-- indien nog niet afgemeld, dan maar even afmelden.
|
||
IF rec1.mld_statusopdr_key <> 6 AND rec1.mld_statusopdr_key <> 7 AND rec1.mld_statusopdr_key <> 9 THEN
|
||
mld.setopdrachtstatus (rec1.mld_opdr_key, 6, v_aanvrager);
|
||
mld.setopdrachtstatus (rec1.mld_opdr_key, 9, v_aanvrager);
|
||
END IF;
|
||
|
||
UPDATE mld_opdr o
|
||
SET mld_opdr_kosten =
|
||
(SELECT SUM (fin_factuurregel_totaal)
|
||
FROM pchx_v_aanwezigfactuur f
|
||
, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND f.fin_factuur_statuses_key >= 6)
|
||
WHERE o.mld_opdr_key = rec1.mld_opdr_key
|
||
AND rec1.mld_melding_status IN (4, 5, 7); -- anders faalt de trigger sowieso
|
||
|
||
-- update meldingstatus
|
||
mld.updatemeldingstatusAV (rec1.mld_melding_key, 0, v_aanvrager, 0);
|
||
-- zet de status naar verwerkt (user is facilitor)
|
||
mld.setopdrachtstatus (rec1.mld_opdr_key, 7, v_aanvrager);
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec1 IN c_fact
|
||
LOOP
|
||
BEGIN
|
||
UPDATE fin_factuur f
|
||
SET fin_factuur_statuses_key = 7
|
||
WHERE f.fin_factuur_key = rec1.fin_factuur_key;
|
||
|
||
fac.trackaction ('FINVER', rec1.fin_factuur_key, v_aanvrager, NULL, NULL);
|
||
END;
|
||
END LOOP;
|
||
DELETE pchx_exp_factuur
|
||
WHERE administratie = p_administratie;
|
||
END;
|
||
/
|
||
|
||
--Deze procedure pchx_export_verwerk_exact wordt ook gebruikt voor de koppeling naar Scansys
|
||
CREATE OR REPLACE PROCEDURE pchx_export_verwerk_exact (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
pchx_export_verwerk_exact_adm (p_applname, p_applrun, p_filedir, p_filename, pchx.get_administratienr);
|
||
IF pchx.get_user = 'PCHD'
|
||
THEN
|
||
pchx_export_verwerk_exact_adm (p_applname, p_applrun, p_filedir, p_filename, '100');
|
||
pchx_export_verwerk_exact_adm (p_applname, p_applrun, p_filedir, p_filename, '250');
|
||
END IF;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_import_factuur (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_cursor
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_newline VARCHAR2 (1000); -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1);
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_barcode VARCHAR2 (12);
|
||
BEGIN
|
||
v_fielddelimitor := ';';
|
||
|
||
DELETE pchx_imp_factuur
|
||
WHERE fac_import_key <> p_import_key;
|
||
|
||
FOR rec IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec.fac_imp_file_line;
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_barcode);
|
||
|
||
IF LENGTH (v_barcode) = 12
|
||
THEN
|
||
INSERT INTO pchx_imp_factuur (fac_import_key, barcode)
|
||
VALUES (p_import_key, v_barcode);
|
||
ELSE
|
||
-- na een geldige barcode volgt altijd nog een linefeed op de volgende regel.
|
||
IF ASCII(SUBSTR(v_barcode, 1, 1)) <> 10
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
'Factuurimport: Geen geldige barcode aangetroffen: '
|
||
|| v_barcode,
|
||
'');
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
-- verwijder de entries uit de imp_file omdat er meerdere bestanden in <20><>n run ingelezen kunnen worden.
|
||
DELETE fac_imp_file WHERE fac_import_key = p_import_key;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
'');
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_update_factuur (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_cursor
|
||
IS
|
||
SELECT *
|
||
FROM pchx_imp_factuur
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
v_factuur_key NUMBER (10);
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
FOR rec IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
INSERT INTO fin_factuur (fin_factuur_statuses_key,
|
||
fin_factuur_datum,
|
||
fin_factuur_totaal_btw,
|
||
fin_factuur_nr)
|
||
VALUES (3,
|
||
SYSDATE,
|
||
0,
|
||
'XXX') -- Melding 57823, graag XXX ipv spatie, dat valt beter op bij het aanvullen van de factuur
|
||
RETURNING fin_factuur_key
|
||
INTO v_factuur_key;
|
||
|
||
-- link naar gescand document
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (v_factuur_key,
|
||
1,
|
||
'http://vbwnlmsl220/inkoopfacturen/'
|
||
|| rec.barcode
|
||
|| '.pdf');
|
||
|
||
-- administratie
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (v_factuur_key, 2, SUBSTR (rec.barcode, 2, 3));
|
||
|
||
-- boekstuknummer
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (v_factuur_key, 3, SUBSTR (rec.barcode, 5, 8));
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
'');
|
||
END;
|
||
/
|
||
|
||
-- View om werkmaatschappijen te koppelen aan locaties. Door alleen interne bedrijven te kiezen
|
||
-- voorkomen we dat er extern relaties gekozen worden.
|
||
CREATE OR REPLACE VIEW pchx_v_bedrijf_intern
|
||
AS
|
||
SELECT prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
prs_bedrijf_verwijder
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_intern = 1;
|
||
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_rap_usrdata
|
||
(
|
||
fac_usrtab_key,
|
||
fac_usrtab_omschrijving,
|
||
fac_usrdata_key,
|
||
fac_usrdata_code,
|
||
fac_usrdata_omschr,
|
||
fac_usrdata_prijs,
|
||
fac_usrdata_volgnr,
|
||
fac_usrdata_parentkey,
|
||
fac_usrdata_vervaldatum
|
||
)
|
||
AS
|
||
SELECT ut.fac_usrtab_key,
|
||
ut.fac_usrtab_omschrijving,
|
||
ud.fac_usrdata_key,
|
||
ud.fac_usrdata_code,
|
||
ud.fac_usrdata_omschr,
|
||
fac_usrdata_prijs,
|
||
fac_usrdata_volgnr,
|
||
fac_usrdata_parentkey,
|
||
fac_usrdata_vervaldatum
|
||
FROM fac_usrtab ut, fac_usrdata ud
|
||
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key;
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_import_usrdata (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_cursor
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Import line
|
||
v_field VARCHAR2 (100); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1);
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
v_error BOOLEAN;
|
||
v_header_found BOOLEAN;
|
||
v_oracle_err_num NUMBER;
|
||
v_oracle_err_mes VARCHAR2 (200);
|
||
v_usrtab_key_txt VARCHAR2 (100);
|
||
v_usrtab_key fac_usrtab.fac_usrtab_key%TYPE;
|
||
v_usrtab_naam fac_usrtab.fac_usrtab_naam%TYPE;
|
||
v_usrdata_key_txt VARCHAR2 (100);
|
||
v_usrdata_key fac_usrdata.fac_usrdata_key%TYPE;
|
||
v_usrdata_code fac_usrdata.fac_usrdata_code%TYPE;
|
||
v_usrdata_omschr fac_usrdata.fac_usrdata_omschr%TYPE;
|
||
v_usrdata_volgnr_txt VARCHAR2 (100);
|
||
v_usrdata_volgnr fac_usrdata.fac_usrdata_volgnr%TYPE;
|
||
v_usrdata_prijs_txt VARCHAR2 (100);
|
||
v_usrdata_prijs fac_usrdata.fac_usrdata_prijs%TYPE;
|
||
v_usrdata_parentkey_txt VARCHAR2 (100);
|
||
v_usrdata_parentkey fac_usrdata.fac_usrdata_parentkey%TYPE;
|
||
v_usrdata_vervaldatum_txt VARCHAR2 (100);
|
||
v_usrdata_vervaldatum fac_usrdata.fac_usrdata_vervaldatum%TYPE;
|
||
BEGIN
|
||
v_fielddelimitor := ';';
|
||
v_header_found := FALSE;
|
||
|
||
DELETE pchx_imp_usrdata;
|
||
|
||
FOR rec IN c_cursor
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec.fac_imp_file_line;
|
||
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_usrtab_key_txt);
|
||
-- fac.imp_getfield (v_newline, v_fielddelimitor, v_usrtab_naam);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_usrdata_key_txt);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_usrdata_code);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_usrdata_omschr);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_usrdata_prijs_txt);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_usrdata_volgnr_txt);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_usrdata_parentkey_txt);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_usrdata_vervaldatum_txt);
|
||
|
||
-- Skip until a valid header is found
|
||
IF UPPER (v_usrtab_key_txt) = 'FAC USRTAB KEY'
|
||
AND UPPER (v_usrdata_key_txt) = 'FAC USRDATA KEY'
|
||
AND UPPER (v_usrdata_volgnr_txt) = 'FAC USRDATA VOLGNR'
|
||
AND UPPER (v_usrdata_parentkey_txt) = 'FAC USRDATA PARENTKEY'
|
||
AND UPPER (v_usrdata_vervaldatum_txt) = 'FAC USRDATA VERVALDATUM'
|
||
THEN
|
||
-- Sla de kopregel over.
|
||
v_header_found := TRUE;
|
||
ELSIF v_header_found
|
||
THEN
|
||
v_usrtab_key := fac.safe_to_number (v_usrtab_key_txt);
|
||
v_usrdata_key := fac.safe_to_number (v_usrdata_key_txt);
|
||
v_usrdata_volgnr := fac.safe_to_number (v_usrdata_volgnr_txt);
|
||
v_usrdata_prijs := fac.safe_to_number (REPLACE (v_usrdata_prijs_txt, ',', '.'));
|
||
v_usrdata_parentkey := fac.safe_to_number (v_usrdata_parentkey_txt);
|
||
v_usrdata_vervaldatum := fac.safe_to_date (v_usrdata_vervaldatum_txt, 'dd-mm-yyyy');
|
||
|
||
INSERT INTO pchx_imp_usrdata (fac_usrtab_key,
|
||
fac_usrtab_naam,
|
||
fac_usrdata_key,
|
||
fac_usrdata_code,
|
||
fac_usrdata_omschr,
|
||
fac_usrdata_volgnr,
|
||
fac_usrdata_prijs,
|
||
fac_usrdata_parentkey,
|
||
fac_usrdata_vervaldatum)
|
||
VALUES (v_usrtab_key,
|
||
v_usrtab_naam,
|
||
v_usrdata_key,
|
||
v_usrdata_code,
|
||
v_usrdata_omschr,
|
||
v_usrdata_volgnr,
|
||
v_usrdata_prijs,
|
||
v_usrdata_parentkey,
|
||
v_usrdata_vervaldatum);
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF NOT v_header_found
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Geen geldige header aangetroffen',
|
||
'Bestand is geen geldig eigentabel importbestand.');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_oracle_err_num := SQLCODE;
|
||
v_oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || v_oracle_err_num || '/' || v_oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
'');
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_update_usrdata (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT * FROM pchx_imp_usrdata;
|
||
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
IF rec.fac_usrdata_key IS NULL
|
||
THEN
|
||
INSERT INTO fac_usrdata (fac_usrtab_key,
|
||
fac_usrdata_code,
|
||
fac_usrdata_omschr,
|
||
fac_usrdata_volgnr,
|
||
fac_usrdata_prijs,
|
||
fac_usrdata_parentkey,
|
||
fac_usrdata_vervaldatum)
|
||
VALUES (rec.fac_usrtab_key,
|
||
LPAD (rec.fac_usrdata_code, 6, '0'),
|
||
rec.fac_usrdata_omschr,
|
||
rec.fac_usrdata_volgnr,
|
||
rec.fac_usrdata_prijs,
|
||
rec.fac_usrdata_parentkey,
|
||
rec.fac_usrdata_vervaldatum);
|
||
ELSE
|
||
UPDATE fac_usrdata
|
||
SET fac_usrtab_key = rec.fac_usrtab_key,
|
||
fac_usrdata_code = LPAD (rec.fac_usrdata_code, 6, '0'),
|
||
fac_usrdata_omschr = rec.fac_usrdata_omschr,
|
||
fac_usrdata_volgnr = rec.fac_usrdata_volgnr,
|
||
fac_usrdata_prijs = rec.fac_usrdata_prijs,
|
||
fac_usrdata_parentkey = rec.fac_usrdata_parentkey,
|
||
fac_usrdata_vervaldatum = rec.fac_usrdata_vervaldatum
|
||
WHERE fac_usrdata_key = rec.fac_usrdata_key;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
'');
|
||
END;
|
||
/
|
||
|
||
-- view voor het exporteren van een catalogus. Deze kan later via de import ingelezen worden.
|
||
CREATE OR REPLACE VIEW pchx_v_imp_bes_artikel_sync
|
||
(
|
||
FCLT_F_CatalogusNaam,
|
||
Leverancier,
|
||
CatDatum,
|
||
Artikelnr,
|
||
Groep,
|
||
Omschrijving,
|
||
Prijs,
|
||
Eenheid,
|
||
Picture,
|
||
Orderaantal,
|
||
Tax,
|
||
DueDate,
|
||
Inkoopprijs,
|
||
Minimum,
|
||
Staffeltabel,
|
||
Wijzigdagen,
|
||
Annuleerdagen
|
||
)
|
||
AS
|
||
SELECT td.ins_discipline_omschrijving,
|
||
b.prs_bedrijf_naam,
|
||
TO_CHAR (td.ins_discipline_aanmaak, 'yyyymmdd'),
|
||
sd.bes_srtdeel_nr,
|
||
sg.bes_srtgroep_omschrijving,
|
||
sd.bes_srtdeel_omschrijving,
|
||
TO_CHAR (bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL)),
|
||
sd.bes_srtdeel_eenheid,
|
||
sd.bes_srtdeel_image,
|
||
TO_CHAR (sd.bes_srtdeel_veelvoud),
|
||
TO_CHAR (sd.bes_srtdeel_btw),
|
||
TO_CHAR (sd.bes_srtdeel_vervaldatum, 'yyyymmdd'),
|
||
TO_CHAR (bes.getsrtdeelinkprijs (sd.bes_srtdeel_key, NULL)),
|
||
NULL,
|
||
bs.bes_staffeltabel_naam,
|
||
sd.bes_srtdeel_wijzigdagen,
|
||
sd.bes_srtdeel_annuleerdagen
|
||
FROM ins_tab_discipline td,
|
||
bes_srtgroep sg,
|
||
bes_srtdeel sd,
|
||
prs_bedrijf b,
|
||
bes_staffeltabel bs
|
||
WHERE td.ins_discipline_module = 'BES'
|
||
AND td.ins_discipline_verwijder IS NULL
|
||
AND td.ins_discipline_key = sg.ins_discipline_key
|
||
AND sg.bes_srtgroep_verwijder IS NULL
|
||
AND sg.bes_srtgroep_key = sd.bes_srtgroep_key
|
||
AND sd.bes_srtdeel_verwijder IS NULL
|
||
AND sd.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND bs.bes_staffeltabel_key(+) = sd.bes_staffeltabel_key;
|
||
|
||
-- view voor bedrijfsuggest bij facturen die niet gekoppeld zijn aan een contract
|
||
-- of opdracht.
|
||
CREATE OR REPLACE VIEW pchx_v_fin_bedrijf
|
||
(
|
||
prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
prs_bedrijf_naam_nr,
|
||
prs_bedrijf_verwijder
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
CASE
|
||
WHEN prs_leverancier_nr IS NULL THEN prs_bedrijf_naam
|
||
ELSE prs_bedrijf_naam || ' (' || prs_leverancier_nr || ')'
|
||
END,
|
||
prs_bedrijf_verwijder
|
||
FROM prs_bedrijf b
|
||
WHERE prs_bedrijf_intern IS NULL;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - Export SCANSYS
|
||
-------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_select_scansys_adm (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_administratie IN VARCHAR2)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT f.bkstnr,
|
||
f.datum,
|
||
f.fact_oms25,
|
||
f.administratie,
|
||
f.crdnr,
|
||
f.fin_factuurregel_nr,
|
||
f.afw_datum,
|
||
f.reknr,
|
||
f.regel_oms,
|
||
f.kstplcode,
|
||
-- Als de projectcode al bij de factuur is ingevuld dan pakken we deze. Daarna kijken we of het om servicekosten gaat (999). Dan is de kostenplaats
|
||
-- voldoende. Anders wordt het kostenplaatsnr (kstplcode) met daaraan vast de locatiecode.
|
||
COALESCE(f.projectcode, f.kstplcode || DECODE(SUBSTR(f.kstplcode, 1,3), '999', '', f.alg_locatie_code)) projectcode,
|
||
f.itemcode,
|
||
f.bedrag_txt,
|
||
f.btw_code,
|
||
f.betaalref,
|
||
f.bedrag,
|
||
f.bedrag_incl,
|
||
f.projectlocatie
|
||
FROM pchx_v_bron_export_exact_xml f, pchx_exp_factuur e
|
||
WHERE f.administratie = p_administratie AND f.fin_factuur_key = e.fin_factuur_key
|
||
ORDER BY f.bkstnr;
|
||
|
||
v_order_count NUMBER;
|
||
v_amount_sum NUMBER (10, 2);
|
||
v_amount_sum_incl NUMBER (10, 2);
|
||
v_count NUMBER;
|
||
--v_sub_count NUMBER; --Met PCHX#63945 wordt regelnummer vanuit de xml-import aangeleverd en moet ook conform worden doorgegeven.
|
||
v_bestand VARCHAR2 (30);
|
||
v_dagboeknr VARCHAR2 (2);
|
||
v_bkstnr_cur VARCHAR2 (30);
|
||
v_bkstnr_prev VARCHAR2 (30);
|
||
BEGIN
|
||
v_order_count := 0;
|
||
v_amount_sum := 0;
|
||
v_amount_sum_incl := 0;
|
||
v_count := 0;
|
||
v_bestand := SUBSTR (p_applname || '_' || p_administratie, 1, 12);
|
||
|
||
-- Eerst opruiming
|
||
-- PCHX#67175 In verband met notificatie toch geen opruiming
|
||
--DELETE FROM imp_log
|
||
-- WHERE imp_log_applicatie = p_applname;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
-- Bewaar de factuur keys in een tijdelijke tabel zodat bij het verwerken (nieuwe export)
|
||
-- deze keys gebruikt kunnen worden.
|
||
-- Verwijder alleen de records van de geselecteerde administratie
|
||
DELETE pchx_exp_factuur e
|
||
WHERE administratie = p_administratie;
|
||
|
||
INSERT INTO pchx_exp_factuur (fin_factuur_key, administratie)
|
||
(SELECT DISTINCT fin_factuur_key, p_administratie
|
||
FROM pchx_v_bron_export_exact_xml
|
||
WHERE fin_factuur_statuses_key = 6
|
||
AND administratie = p_administratie);
|
||
|
||
v_bkstnr_prev := 'empty';
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
--PCHX#65429: Dagboeknr verschuift vanaf 2021 naar postitie 2 & 3 van het boekstuknummer (ipv positie 3 & 4).
|
||
--Oude nog openstaande facturen (van 2020) moeten nog wel met positie 3&4, dat gaat via onderstaande case.
|
||
--Na verloop van tijd mag dit weer opgeschoond worden en mag dit altijd: v_dagboeknr := SUBSTR (rec.bkstnr, 2, 2);
|
||
|
||
v_bkstnr_cur := rec.bkstnr;
|
||
|
||
CASE
|
||
WHEN SUBSTR (rec.bkstnr, 0, 2) = '20'
|
||
THEN
|
||
v_dagboeknr := SUBSTR (rec.bkstnr, 3, 2);
|
||
ELSE
|
||
v_dagboeknr := SUBSTR (rec.bkstnr, 2, 2);
|
||
END CASE;
|
||
|
||
v_count := 1; -- dummy
|
||
|
||
IF v_count <> 0
|
||
THEN
|
||
--Header xml
|
||
IF v_bkstnr_cur <> v_bkstnr_prev
|
||
THEN
|
||
-- Footer xml
|
||
IF v_bkstnr_prev <> 'empty'
|
||
|
||
THEN
|
||
pchx.add_xml_row (v_bestand, '</GLEntry>');
|
||
pchx.add_xml_row (v_bestand, '</GLEntries>');
|
||
pchx.add_xml_row (v_bestand, '</eExact>');
|
||
END IF;
|
||
|
||
v_bestand :=
|
||
TO_CHAR( rec.administratie
|
||
|| rec.bkstnr
|
||
|| '##'
|
||
|| SUBSTR (p_applname || '_' || p_administratie, 1, 12));
|
||
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<?xml version="1.0" encoding="windows-1252"?>');
|
||
pchx.add_xml_row (v_bestand, '<eExact>');
|
||
pchx.add_xml_row (v_bestand, '<GLEntries>');
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<GLEntry status="E" entry="'
|
||
|| xml.char_to_html (rec.bkstnr)
|
||
|| '">');
|
||
pchx.add_xml_element (v_bestand, 'Description', rec.fact_oms25);
|
||
pchx.add_xml_element (v_bestand, 'Date', rec.datum);
|
||
pchx.add_xml_element (v_bestand,
|
||
'DocumentDate',
|
||
TO_CHAR (SYSDATE, 'YYYY-MM-DD'));
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Journal type="I" code="' || v_dagboeknr || '"/>');
|
||
--v_sub_count := 1;
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Creditor number="' || xml.char_to_html (rec.crdnr) || '"/>');
|
||
END IF;
|
||
|
||
-- 1 of meerdere factuurregels
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<FinEntryLine number="'
|
||
|| rec.fin_factuurregel_nr
|
||
|| '" subtype="T" type="N">');
|
||
pchx.add_xml_element (
|
||
v_bestand,
|
||
'Date',
|
||
COALESCE (rec.afw_datum, rec.datum));
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<GLAccount code="'
|
||
|| xml.char_to_html (rec.reknr)
|
||
|| '"/>');
|
||
|
||
IF pchx.get_user = 'PCHD' AND v_dagboeknr = '70'
|
||
THEN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Project code="'
|
||
|| rec.projectcode
|
||
|| '" type="I" status="A">');
|
||
pchx.add_xml_element (v_bestand,
|
||
'Description',
|
||
'');
|
||
pchx.add_xml_row (v_bestand, '</Project>');
|
||
END IF;
|
||
|
||
IF pchx.get_user = 'PCHD' AND rec.projectlocatie IS NOT NULL
|
||
THEN
|
||
pchx.add_xml_element (v_bestand,
|
||
'Sublocation',
|
||
rec.projectlocatie);
|
||
END IF;
|
||
|
||
pchx.add_xml_element (v_bestand,
|
||
'Description',
|
||
rec.regel_oms);
|
||
|
||
--Met PCHX#63945 wordt afwijkende kostenplaats gehaald vanuit de import en daarmee van de factuurregels.
|
||
-- Voorheen kreeg PCHH altijd 0100, bij PCHA en PCHW werd dit gehaald uit projectcode en bij de overige omgeving werd kostenplaats van bestelling/contract/opdracht overgenomen.
|
||
--Met PCHX#63945 moet dit dus, voor controledoeleinden in Exact, nu van de (door Exact aangeleverde) factuurregels. CASE
|
||
IF rec.kstplcode IS NOT NULL
|
||
THEN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Costcenter code="'
|
||
|| xml.char_to_html (rec.kstplcode)
|
||
|| '"/>');
|
||
END IF;
|
||
|
||
IF pchx.get_user = 'PCHD' AND p_administratie <> '100' AND p_administratie <> '250'
|
||
THEN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Item code="'
|
||
|| xml.char_to_html (rec.itemcode)
|
||
|| '"/>');
|
||
END IF;
|
||
|
||
pchx.add_xml_row (v_bestand, '<Amount>');
|
||
pchx.add_xml_element (v_bestand, 'Debit', rec.bedrag_txt);
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<VAT code="'
|
||
|| xml.char_to_html (rec.btw_code)
|
||
|| '"/>');
|
||
pchx.add_xml_row (v_bestand, '</Amount>');
|
||
pchx.add_xml_row (v_bestand, '<Payment>');
|
||
pchx.add_xml_element (v_bestand,
|
||
'Reference',
|
||
rec.betaalref);
|
||
pchx.add_xml_element (v_bestand,
|
||
'InvoiceNumber',
|
||
rec.bkstnr);
|
||
pchx.add_xml_row (v_bestand, '</Payment>');
|
||
pchx.add_xml_row (v_bestand, '<FinReferences>');
|
||
pchx.add_xml_element (v_bestand, 'YourRef', rec.betaalref);
|
||
pchx.add_xml_element (v_bestand,
|
||
'DocumentDate',
|
||
TO_CHAR (SYSDATE, 'YYYY-MM-DD'));
|
||
pchx.add_xml_row (v_bestand, '</FinReferences>');
|
||
pchx.add_xml_row (v_bestand, '</FinEntryLine>');
|
||
--v_sub_count := v_sub_count + 1;
|
||
v_amount_sum := v_amount_sum + rec.bedrag;
|
||
v_amount_sum_incl := v_amount_sum_incl + rec.bedrag_incl;
|
||
|
||
END IF;
|
||
END;
|
||
|
||
v_bkstnr_prev := v_bkstnr_cur;
|
||
v_order_count := v_order_count + 1;
|
||
END LOOP;
|
||
|
||
-- Footer xml
|
||
IF v_bkstnr_prev <> 'empty'
|
||
THEN
|
||
pchx.add_xml_row (v_bestand, '</GLEntry>');
|
||
pchx.add_xml_row (v_bestand, '</GLEntries>');
|
||
pchx.add_xml_row (v_bestand, '</eExact>');
|
||
END IF;
|
||
|
||
fac.writelog (
|
||
p_applname,
|
||
'S',
|
||
'Exact export uitgevoerd. Aantal regels: '
|
||
|| v_order_count
|
||
|| ' Totaal bedrag: '
|
||
|| v_amount_sum
|
||
|| ' Totaal bedrag (incl): '
|
||
|| v_amount_sum_incl,
|
||
'');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_select_scansys (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
pchx_select_scansys_adm (p_applname, p_applrun, pchx.get_administratienr);
|
||
IF pchx.get_user = 'PCHD'
|
||
THEN
|
||
-- Na de migratie van PCHH (administratie 100) naar PCHD moeten we ook voor administratie 100 de export uitvoerende
|
||
pchx_select_scansys_adm (p_applname, p_applrun, '100');
|
||
-- Na de migratie van PCHP (administratie 250) naar PCHD moeten we ook voor administratie 250 de export uitvoerende
|
||
pchx_select_scansys_adm (p_applname, p_applrun, '250');
|
||
END IF;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_export_scansys
|
||
(
|
||
result,
|
||
result_order,
|
||
boekstuknummer
|
||
)
|
||
AS
|
||
SELECT SUBSTR (fac_rapport_regel, INSTR (fac_rapport_regel, '##') + 2),
|
||
fac_rapport_volgnr,
|
||
SUBSTR (fac_rapport_regel, 1, INSTR (fac_rapport_regel, '##') - 1)
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node LIKE 'SCANSYS%';
|
||
|
||
|
||
--------------------------------------------------------------------------------------
|
||
-- views tbv realtime monitor
|
||
--------------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_graph_meldingpd_fm
|
||
(
|
||
fclt_xas_,
|
||
fclt_yas_,
|
||
volgorde
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (mld_melding_datum, 'dd'),
|
||
COUNT (mld_melding_key),
|
||
TRUNC (mld_melding_datum) - TRUNC (SYSDATE)
|
||
FROM mld_melding m
|
||
WHERE mld_melding_datum > SYSDATE - 15
|
||
AND mld_melding_datum > TO_DATE ('20131001', 'yyyymmdd')
|
||
AND mld_melding_datum < SYSDATE
|
||
GROUP BY TO_CHAR (mld_melding_datum, 'dd'),
|
||
TRUNC (mld_melding_datum) - TRUNC (SYSDATE);
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_graph_meldingpm_fm
|
||
(
|
||
fclt_xas_,
|
||
fclt_yas_,
|
||
volgorde
|
||
)
|
||
AS
|
||
SELECT DECODE (SUBSTR (TO_CHAR (mld_melding_datum, 'yyyymm'), 5),
|
||
'01', 'Januari',
|
||
'02', 'Februari',
|
||
'03', 'Maart',
|
||
'04', 'April',
|
||
'05', 'Mei',
|
||
'06', 'Juni',
|
||
'07', 'Juli',
|
||
'08', 'Augustus',
|
||
'09', 'September',
|
||
'10', 'Oktober',
|
||
'11', 'November',
|
||
'December'),
|
||
COUNT (mld_melding_key),
|
||
TO_CHAR (mld_melding_datum, 'yyyymm')
|
||
FROM mld_melding m
|
||
WHERE mld_melding_datum BETWEEN ADD_MONTHS (
|
||
TO_DATE (
|
||
TO_CHAR (SYSDATE, 'yyyymm') || '01',
|
||
'yyyymmdd'),
|
||
-11)
|
||
AND SYSDATE
|
||
AND mld_melding_datum > TO_DATE ('20131001', 'yyyymmdd')
|
||
GROUP BY TO_CHAR (mld_melding_datum, 'yyyymm');
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_graph_openst_behand
|
||
(
|
||
fclt_xas_,
|
||
fclt_yas_,
|
||
fclt_yas2_,
|
||
sortering
|
||
)
|
||
AS
|
||
SELECT behandelaar,
|
||
COUNT (mld_key) - SUM (uitvoeringoptijd) telaat,
|
||
SUM (uitvoeringoptijd) op_tijd,
|
||
1 - COUNT (mld_key)
|
||
FROM (SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
CASE SIGN (mld_melding_einddatum - SYSDATE)
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
uitvoeringoptijd,
|
||
DECODE (
|
||
mld_melding_flag,
|
||
1,
|
||
'FSB',
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames pf
|
||
WHERE pf.prs_perslid_key =
|
||
m.mld_melding_behandelaar_key))
|
||
behandelaar
|
||
FROM mld_melding m
|
||
WHERE mld_melding_status IN (2, 3, 4, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending
|
||
)
|
||
WHERE behandelaar IS NOT NULL
|
||
GROUP BY behandelaar;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_graph_openst_uitv
|
||
(
|
||
fclt_xas_,
|
||
fclt_yas_,
|
||
fclt_yas2_,
|
||
fclt_url,
|
||
sortering
|
||
)
|
||
AS
|
||
SELECT behandelaar,
|
||
COUNT (opdr_key) - SUM (uitvoeringoptijd) telaat,
|
||
SUM (uitvoeringoptijd) op_tijd,
|
||
'appl/mld/opdr_search.asp?urole=bo'
|
||
|| '&'
|
||
|| 'autosearch=1'
|
||
|| '&'
|
||
|| 'handler_key='
|
||
|| behandelaar_key,
|
||
1 - COUNT (opdr_key)
|
||
FROM (SELECT DISTINCT
|
||
o.mld_opdr_key opdr_key,
|
||
CASE SIGN (mld_opdr_einddatum - SYSDATE)
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
uitvoeringoptijd,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames pf
|
||
WHERE mld_uitvoerende_keys = pf.prs_perslid_key
|
||
UNION ALL
|
||
SELECT prs_bedrijf_naam
|
||
FROM prs_bedrijf b
|
||
WHERE mld_uitvoerende_keys = b.prs_bedrijf_key)
|
||
behandelaar,
|
||
o.mld_uitvoerende_keys behandelaar_key
|
||
FROM mld_opdr o
|
||
WHERE o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- 3 Ter fiattering, 4 Gefiatteerd, 5 Toegekend, 8 Geaccepteerd, 10 Ter goedkeuring
|
||
)
|
||
WHERE behandelaar IS NOT NULL
|
||
GROUP BY behandelaar, behandelaar_key;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_graph_ppi_acc (fclt_xas_, fclt_yas_)
|
||
AS
|
||
SELECT SUM (acceptoptijd) aantal, COUNT (mld_key) totaal
|
||
FROM (SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
fac.gettrackingdate ('MLDNEW', m.mld_melding_key),
|
||
std.mld_stdmelding_t_accepttijd.tijdsduur,
|
||
std.mld_stdmelding_t_accepttijd.eenheid)
|
||
- COALESCE (
|
||
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDACP', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1
|
||
THEN
|
||
0
|
||
ELSE
|
||
1
|
||
END
|
||
acceptoptijd
|
||
FROM mld_melding m, mld_discipline md, mld_stdmelding std
|
||
WHERE md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND mld_melding_status IN (2, 3) -- 2-ingevoerd, 3-ingezien
|
||
);
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_graph_ppi_uitv (fclt_xas_, fclt_yas_)
|
||
AS
|
||
SELECT SUM (uitvoeringoptijd) aantal, COUNT (mld_key) totaal
|
||
FROM (SELECT DISTINCT
|
||
m.mld_melding_key mld_key,
|
||
CASE
|
||
WHEN fac.gettrackingdate ('MLDREJ', m.mld_melding_key) IS NULL
|
||
THEN
|
||
CASE SIGN(fac.datumtijdplusuitvoertijd (
|
||
m.mld_melding_datum,
|
||
m.mld_melding_t_uitvoertijd.tijdsduur,
|
||
m.mld_melding_t_uitvoertijd.eenheid)
|
||
- COALESCE (
|
||
fac.gettrackingdate ('MLDREJ', m.mld_melding_key),
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
|
||
SYSDATE))
|
||
WHEN -1
|
||
THEN
|
||
0
|
||
ELSE
|
||
1
|
||
END
|
||
ELSE
|
||
1
|
||
END
|
||
uitvoeringoptijd
|
||
FROM mld_melding m, mld_discipline md, mld_stdmelding std
|
||
WHERE md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND mld_melding_status IN (2, 3, 4, 7, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending
|
||
);
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_graph_vakgroep_open
|
||
(
|
||
fclt_xas_,
|
||
fclt_yas_,
|
||
fclt_yas2_,
|
||
sortering,
|
||
fclt_url,
|
||
fclt_3d_discipline_key
|
||
)
|
||
AS
|
||
SELECT ins_srtdiscipline_prefix || ' '
|
||
|| lcl.x ('ins_discipline_omschrijving',
|
||
d.ins_discipline_key,
|
||
d.ins_discipline_omschrijving),
|
||
COUNT (m.mld_melding_key) - SUM (uitvoeringoptijd) telaat,
|
||
SUM (uitvoeringoptijd) op_tijd,
|
||
-1 * COUNT (m.mld_melding_key) totaal,
|
||
'appl/mld/mld_search.asp?urole=fo'
|
||
|| '&'
|
||
|| 'autosearch=1'
|
||
|| '&'
|
||
|| 'disc_key_str='
|
||
|| d.ins_discipline_key,
|
||
d.ins_discipline_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd,
|
||
(SELECT mld_melding_key,
|
||
CASE SIGN (mld_melding_einddatum - SYSDATE)
|
||
WHEN -1 THEN 0
|
||
ELSE 1
|
||
END
|
||
uitvoeringoptijd
|
||
FROM mld_melding m2) uitv
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_melding_key = uitv.mld_melding_key
|
||
AND mld_melding_status IN (2, 3, 4, 7, 0) -- 2-ingevoerd, 3-ingezien, 4-geaccepteerd, 7-uitgegeven, 0-pending
|
||
GROUP BY d.ins_discipline_key,
|
||
d.ins_discipline_omschrijving,
|
||
ins_srtdiscipline_prefix
|
||
ORDER BY COUNT (d.ins_discipline_omschrijving) DESC;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_graph_fact_count
|
||
(
|
||
fclt_xas_,
|
||
fclt_yas_,
|
||
sortering
|
||
)
|
||
AS
|
||
SELECT prs_perslid_naam_full, COUNT ( * ), 1 - COUNT ( * )
|
||
FROM ( SELECT boekstuknummer,
|
||
prs_perslid_naam_full,
|
||
SUM (fin_factuurregel_totaal) totaal
|
||
FROM pchx_v_factuur_gegevens fg,
|
||
prs_kostenplaats k,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE fin_factuur_statuses_key = 2
|
||
AND fg.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND k.prs_perslid_key = pf.prs_perslid_key
|
||
GROUP BY prs_perslid_naam_full, boekstuknummer)
|
||
GROUP BY prs_perslid_naam_full;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_graph_fact_amount
|
||
(
|
||
fclt_xas_,
|
||
fclt_yas_,
|
||
sortering
|
||
)
|
||
AS
|
||
SELECT prs_perslid_naam_full, SUM(totaal), 1 - SUM(totaal)
|
||
FROM ( SELECT boekstuknummer,
|
||
prs_perslid_naam_full,
|
||
SUM (fin_factuurregel_totaal) totaal
|
||
FROM pchx_v_factuur_gegevens fg,
|
||
prs_kostenplaats k,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE fin_factuur_statuses_key = 2
|
||
AND fg.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND k.prs_perslid_key = pf.prs_perslid_key
|
||
GROUP BY prs_perslid_naam_full, boekstuknummer)
|
||
GROUP BY prs_perslid_naam_full;
|
||
|
||
CREATE OR REPLACE VIEW PCHX_V_RAP_TECH_ADRES
|
||
(
|
||
FCLT_F_BEDRIJF,
|
||
L,
|
||
U,
|
||
C,
|
||
H,
|
||
FCLT_F_KANAAL,
|
||
FCLT_F_Opdrachttype,
|
||
Adres,
|
||
Stylesheet,
|
||
Bijlage
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam,
|
||
DECODE (prs_bedrijf_leverancier, 1, 'x', NULL) L,
|
||
DECODE (prs_bedrijf_uitvoerende, 1, 'x', NULL) U,
|
||
DECODE (prs_bedrijf_contract, 1, 'x', NULL) C,
|
||
DECODE (prs_bedrijf_huurder, 1, 'x', NULL) H,
|
||
DECODE (ba.prs_bedrijfadres_type,
|
||
'B', 'Bestellingen',
|
||
'C', 'Contracten',
|
||
'O', 'Opdrachten',
|
||
NULL)
|
||
Kanaal,
|
||
DECODE (
|
||
prs_bedrijfadres_type,
|
||
'O',
|
||
DECODE (ot.mld_typeopdr_key,
|
||
NULL, 'Geen/Overige opdrachten',
|
||
ot.mld_typeopdr_omschrijving),
|
||
NULL,
|
||
'',
|
||
'N.v.t.'
|
||
)
|
||
opdrachttype,
|
||
prs_bedrijfadres_url,
|
||
prs_bedrijfadres_xsl,
|
||
prs_bedrijfadres_attachfile Bijlage
|
||
FROM prs_bedrijf b, prs_bedrijfadres ba, mld_typeopdr ot
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND b.prs_bedrijf_key = ba.prs_bedrijf_key(+)
|
||
AND ba.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||
AND b.prs_bedrijf_intern IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW PCHX_V_RAP_BEDRIJFDIENSTLOC
|
||
(
|
||
FCLT_F_BEDRIJF,
|
||
L,
|
||
U,
|
||
C,
|
||
H,
|
||
FCLT_F_DIENST,
|
||
FCLT_F_LOCATIE,
|
||
FCLT_F_GEBOUW
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam,
|
||
DECODE (prs_bedrijf_leverancier, 1, 'x', NULL) L,
|
||
DECODE (prs_bedrijf_uitvoerende, 1, 'x', NULL) U,
|
||
DECODE (prs_bedrijf_contract, 1, 'x', NULL) C,
|
||
DECODE (prs_bedrijf_huurder, 1, 'x', NULL) H,
|
||
d.prs_dienst_omschrijving dienst,
|
||
l.alg_locatie_omschrijving Locatie,
|
||
'Alle' Gebouw
|
||
FROM prs_bedrijf b,
|
||
prs_bedrijfdienstlocatie bdl,
|
||
prs_dienst d,
|
||
alg_locatie l
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
|
||
AND d.prs_dienst_key(+) = bdl.prs_dienst_key
|
||
AND b.prs_bedrijf_intern IS NULL
|
||
AND l.alg_locatie_key = bdl.alg_locatie_key
|
||
UNION ALL
|
||
SELECT prs_bedrijf_naam,
|
||
DECODE (prs_bedrijf_leverancier, 1, 'x', NULL) L,
|
||
DECODE (prs_bedrijf_uitvoerende, 1, 'x', NULL) U,
|
||
DECODE (prs_bedrijf_contract, 1, 'x', NULL) C,
|
||
DECODE (prs_bedrijf_huurder, 1, 'x', NULL) H,
|
||
d.prs_dienst_omschrijving dienst,
|
||
l.alg_locatie_omschrijving Locatie,
|
||
g.alg_gebouw_omschrijving Gebouw
|
||
FROM prs_bedrijf b,
|
||
prs_bedrijfdienstlocatie bdl,
|
||
prs_dienst d,
|
||
alg_locatie l,
|
||
alg_gebouw g
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
|
||
AND d.prs_dienst_key(+) = bdl.prs_dienst_key
|
||
AND b.prs_bedrijf_intern IS NULL
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND g.alg_gebouw_key = bdl.alg_gebouw_key
|
||
UNION ALL
|
||
SELECT prs_bedrijf_naam,
|
||
DECODE (prs_bedrijf_leverancier, 1, 'x', NULL) L,
|
||
DECODE (prs_bedrijf_uitvoerende, 1, 'x', NULL) U,
|
||
DECODE (prs_bedrijf_contract, 1, 'x', NULL) C,
|
||
DECODE (prs_bedrijf_huurder, 1, 'x', NULL) H,
|
||
d.prs_dienst_omschrijving dienst,
|
||
'Alle' Locatie,
|
||
'Alle' Gebouw
|
||
FROM prs_bedrijf b, prs_bedrijfdienstlocatie bdl, prs_dienst d
|
||
WHERE prs_bedrijf_verwijder IS NULL
|
||
AND b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
|
||
AND d.prs_dienst_key(+) = bdl.prs_dienst_key
|
||
AND b.prs_bedrijf_intern IS NULL
|
||
AND bdl.alg_gebouw_key IS NULL
|
||
AND bdl.alg_locatie_key IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_rap_mld_qrc
|
||
(
|
||
fclt_3d_locatie_key,
|
||
fclt_3d_discipline_key,
|
||
fclt_f_discipline,
|
||
fclt_f_soortmelding,
|
||
fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_f_verdieping,
|
||
plaats,
|
||
ruimte_key,
|
||
ruimtefunctie,
|
||
fclt_f_objectdiscipline,
|
||
fclt_f_objectgroep,
|
||
objectsoort_key,
|
||
fclt_f_objectsoort,
|
||
objectsoort_code,
|
||
ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
ins_deel_upper,
|
||
hide_f_bookmark_id,
|
||
variabele
|
||
)
|
||
AS
|
||
SELECT l.alg_locatie_key,
|
||
disc.ins_discipline_key,
|
||
disc.ins_discipline_omschrijving,
|
||
msd.mld_stdmelding_omschrijving,
|
||
l.alg_locatie_omschrijving,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_verdieping_omschrijving,
|
||
o.alg_plaatsaanduiding plaats,
|
||
d.ins_alg_ruimte_key ruimte_key,
|
||
sr.alg_srtruimte_omschrijving,
|
||
disc.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_key,
|
||
sd.ins_srtdeel_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_upper,
|
||
b.fac_bookmark_id,
|
||
'INS_KEY'
|
||
FROM (SELECT DECODE (
|
||
INSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query),
|
||
'STDM_KEY=')
|
||
),
|
||
'&'
|
||
),
|
||
0,
|
||
SUBSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query),
|
||
'STDM_KEY=')
|
||
),
|
||
10
|
||
),
|
||
SUBSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query),
|
||
'STDM_KEY=')
|
||
),
|
||
10,
|
||
INSTR (
|
||
SUBSTR (
|
||
UPPER (fac_bookmark_query),
|
||
INSTR (UPPER (fac_bookmark_query),
|
||
'STDM_KEY=')
|
||
),
|
||
'&'
|
||
)
|
||
- 10
|
||
)
|
||
)
|
||
stdm_key,
|
||
fac_bookmark_id
|
||
FROM fac_bookmark
|
||
WHERE UPPER (fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
|
||
-- AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') > 0 (nog) niet nodig voor PCH
|
||
)
|
||
b, -- stdm_key-bookmarks
|
||
(SELECT sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
si.ins_srtinstallatie_key ins_srtdeel_key
|
||
FROM mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si
|
||
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL
|
||
AND si.ins_srtinstallatie_niveau = 'S'
|
||
UNION ALL
|
||
SELECT sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
sd.ins_srtdeel_key
|
||
FROM mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si,
|
||
ins_srtdeel sd
|
||
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL
|
||
AND si.ins_srtinstallatie_niveau = 'G'
|
||
AND si.ins_srtinstallatie_key = sd.ins_srtgroep_key
|
||
UNION ALL
|
||
SELECT sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
sd.ins_srtdeel_key
|
||
FROM mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si,
|
||
ins_srtgroep sg,
|
||
ins_srtdeel sd
|
||
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL
|
||
AND si.ins_srtinstallatie_niveau = 'D'
|
||
AND si.ins_srtinstallatie_key = sg.ins_discipline_key
|
||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) msd, -- object-meldingen
|
||
ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_discipline disc,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l,
|
||
alg_ruimte r,
|
||
alg_srtruimte sr
|
||
WHERE 1=1 -- fac.safe_to_number (b.stdm_key) = msd.mld_stdmelding_key
|
||
AND msd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND d.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = disc.ins_discipline_key
|
||
AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type
|
||
AND d.ins_alg_locatie_key = o.alg_locatie_key -- redundant?
|
||
AND o.alg_locatie_key = l.alg_locatie_key
|
||
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+);
|
||
|
||
-- QR codes om melding op bepaalde ruimte aan te maken.
|
||
CREATE OR REPLACE VIEW pchx_v_rap_mld_qrc1
|
||
(
|
||
alg_ruimte_key,
|
||
alg_ruimte_aanduiding,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
alg_srtruimte_omschrijving,
|
||
fac_bookmark_naam,
|
||
fac_bookmark_id
|
||
)
|
||
AS
|
||
SELECT alg_ruimte_key,
|
||
rg.alg_ruimte_aanduiding,
|
||
rg.alg_ruimte_nr,
|
||
rg.alg_ruimte_omschrijving,
|
||
rg.alg_srtruimte_omschrijving,
|
||
b.fac_bookmark_naam,
|
||
b.fac_bookmark_id
|
||
FROM alg_v_ruimte_gegevens rg, fac_bookmark b
|
||
WHERE b.fac_bookmark_naam LIKE 'QR%';
|
||
|
||
-- PCHD#34422
|
||
CREATE OR REPLACE VIEW PCHX_V_RAP_DOORLOOP_FACT
|
||
(
|
||
FACTUUR_KEY,
|
||
FCLT_F_FACTUUR_NR,
|
||
FCLT_F_STATUS,
|
||
FCLT_F_ACTIE,
|
||
DATUM,
|
||
FCLT_F_DATUM
|
||
)
|
||
AS
|
||
SELECT fin_factuur_key factuur_key,
|
||
fin_factuur_nr factuur_nr,
|
||
COALESCE (fin_factuur_statuses_omschr, 'Ter goedkeuring') status,
|
||
'Geregistreerd' Actie,
|
||
fin_factuur_datum Datum,
|
||
'Import' Door
|
||
FROM fin_factuur f, fin_factuur_statuses stat
|
||
WHERE fin_factuur_key NOT IN
|
||
(SELECT fac_tracking_refkey
|
||
FROM fac_tracking ft, fac_srtnotificatie srt
|
||
WHERE srt.fac_srtnotificatie_key =
|
||
ft.fac_srtnotificatie_key
|
||
AND srt.fac_srtnotificatie_code = 'FINNEW')
|
||
AND fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key = stat.fin_factuur_statuses_key(+)
|
||
UNION ALL
|
||
SELECT fin_factuur_key,
|
||
fin_factuur_nr,
|
||
COALESCE (fin_factuur_statuses_omschr, 'Ter goedkeuring'),
|
||
'Geregistreerd',
|
||
fac_tracking_datum,
|
||
prs_perslid_naam_friendly
|
||
FROM fin_factuur f,
|
||
fac_tracking ft,
|
||
fac_srtnotificatie srt,
|
||
prs_v_perslid_fullnames p,
|
||
fin_factuur_statuses stat
|
||
WHERE fac_tracking_refkey = f.fin_factuur_key
|
||
AND srt.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
|
||
AND srt.fac_srtnotificatie_code = 'FINNEW'
|
||
AND fin_factuur_verwijder IS NULL
|
||
AND p.prs_perslid_key(+) = ft.prs_perslid_key
|
||
AND f.fin_factuur_statuses_key = stat.fin_factuur_statuses_key(+)
|
||
UNION ALL
|
||
SELECT fin_factuur_key,
|
||
fin_factuur_nr,
|
||
COALESCE (fin_factuur_statuses_omschr, 'Ter goedkeuring'),
|
||
'Goedgekeurd',
|
||
fac_tracking_datum,
|
||
prs_perslid_naam_friendly
|
||
FROM fin_factuur f,
|
||
fac_tracking ft,
|
||
fac_srtnotificatie srt,
|
||
prs_v_perslid_fullnames p,
|
||
fin_factuur_statuses stat
|
||
WHERE fac_tracking_refkey = f.fin_factuur_key
|
||
AND srt.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
|
||
AND srt.fac_srtnotificatie_code = 'FINFOK'
|
||
AND fin_factuur_verwijder IS NULL
|
||
AND p.prs_perslid_key(+) = ft.prs_perslid_key
|
||
AND f.fin_factuur_statuses_key = stat.fin_factuur_statuses_key(+)
|
||
UNION ALL
|
||
SELECT fin_factuur_key,
|
||
fin_factuur_nr,
|
||
COALESCE (fin_factuur_statuses_omschr, 'Ter goedkeuring'),
|
||
'Gefiatteerd',
|
||
fac_tracking_datum,
|
||
prs_perslid_naam_friendly
|
||
FROM fin_factuur f,
|
||
fac_tracking ft,
|
||
fac_srtnotificatie srt,
|
||
prs_v_perslid_fullnames p,
|
||
fin_factuur_statuses stat
|
||
WHERE fac_tracking_refkey = f.fin_factuur_key
|
||
AND srt.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
|
||
AND srt.fac_srtnotificatie_code = 'FINGOE'
|
||
AND fin_factuur_verwijder IS NULL
|
||
AND p.prs_perslid_key(+) = ft.prs_perslid_key
|
||
AND f.fin_factuur_statuses_key = stat.fin_factuur_statuses_key(+);
|
||
|
||
-- PCHE#36676
|
||
CREATE OR REPLACE VIEW pchx_v_rap_export_schedule
|
||
(
|
||
hide_f_orderby,
|
||
exportnaam,
|
||
startdatum,
|
||
uitvoerdatum
|
||
)
|
||
AS
|
||
SELECT 1000000 - imp_schedule_key,
|
||
imp_schedule_name,
|
||
imp_schedule_aanmaak,
|
||
imp_schedule_done
|
||
FROM imp_schedule;
|
||
|
||
--- PCHD#37981
|
||
CREATE OR REPLACE VIEW pchx_v_rap_searchresult
|
||
(
|
||
fclt_f_datum,
|
||
fclt_f_persoon,
|
||
fclt_f_zoekterm,
|
||
resultaat,
|
||
fclt_f_keuze_type,
|
||
keuze_url,
|
||
keuze_omschrijving
|
||
)
|
||
AS
|
||
SELECT fac_gui_counter_date datum,
|
||
prs_perslid_naam_full persoon,
|
||
fgc.fac_gui_counter_info zoekterm,
|
||
COALESCE (result.result, 'Geen') resultaat,
|
||
COALESCE (choice.TYPE, 'Geen') keuze_type,
|
||
choice.url keuze_url,
|
||
choice.oms keuze_omschrijving
|
||
FROM fac_gui_counter fgc,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info url,
|
||
'Reserveerbaar artikel' TYPE,
|
||
res_artikel_omschrijving oms
|
||
FROM fac_gui_counter fgc, res_artikel ra
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%res_artikel%'
|
||
AND ra.res_artikel_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info,
|
||
'key=')
|
||
+ 4)
|
||
))
|
||
UNION
|
||
SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info,
|
||
'Reserveerbaar object',
|
||
res_deel_omschrijving
|
||
FROM fac_gui_counter fgc, res_deel rd
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%res_deel%'
|
||
AND rd.res_deel_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info,
|
||
'key=')
|
||
+ 4)
|
||
))
|
||
UNION
|
||
SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info,
|
||
'Melding',
|
||
std.mld_stdmelding_omschrijving oms
|
||
FROM fac_gui_counter fgc, mld_stdmelding std
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%stdm%'
|
||
AND std.mld_stdmelding_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info, '=')
|
||
+ 1)
|
||
))
|
||
UNION
|
||
SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info,
|
||
'Kennisbank',
|
||
fac_faq_question oms
|
||
FROM fac_gui_counter fgc, fac_faq faq
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%faq%'
|
||
AND fac_faq_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info, '=')
|
||
+ 1)
|
||
))
|
||
UNION
|
||
SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info,
|
||
'Reserveerbare ruimte',
|
||
res_ruimte_nr oms
|
||
FROM fac_gui_counter fgc, res_ruimte
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%res_ruimte%'
|
||
AND res_ruimte_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info, '=')
|
||
+ 1)
|
||
))
|
||
UNION
|
||
SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info,
|
||
'Bestelling',
|
||
ins_discipline_omschrijving
|
||
FROM fac_gui_counter fgc, bes_discipline
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%bes%'
|
||
AND ins_discipline_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info,
|
||
'dis_key=')
|
||
+ 8)
|
||
))
|
||
UNION
|
||
SELECT fac_gui_counter_refkey,
|
||
fac_gui_counter_info,
|
||
'Telefoonboek',
|
||
prs_perslid_naam_full
|
||
FROM fac_gui_counter fgc, prs_v_perslid_fullnames pf
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchchoice'
|
||
AND fac_gui_counter_info LIKE '%phone%'
|
||
AND pf.prs_perslid_key(+) =
|
||
fac.safe_to_number(SUBSTR (
|
||
fac_gui_counter_info,
|
||
(INSTR (fac_gui_counter_info, '=')
|
||
+ 1)
|
||
))) choice,
|
||
(SELECT fac_gui_counter_refkey,
|
||
REPLACE (REPLACE (fac_gui_counter_info, '{', ''), '}', '')
|
||
result
|
||
FROM fac_gui_counter fgc
|
||
WHERE fac_gui_counter_info IS NOT NULL
|
||
AND fac_gui_counter_group = 'searchresult') result
|
||
WHERE fac_gui_counter_group = 'search'
|
||
AND fgc.fac_gui_counter_info IS NOT NULL
|
||
AND fgc.prs_perslid_key = pf.prs_perslid_key
|
||
AND choice.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key
|
||
AND result.fac_gui_counter_refkey(+) = fgc.fac_gui_counter_key;
|
||
|
||
-- PCHX#87511 Verzoek rapportage inzage userxx rechten in autorisatiegroepen
|
||
CREATE OR REPLACE VIEW pchx_v_web_user_gebruik
|
||
AS
|
||
SELECT fac_functie_code,
|
||
lcl.l (fac_functie_omschrijving) code,
|
||
'Menu' node,
|
||
DECODE (SUBSTR (fac_menu_altlabel, 1, 3), 'lcl', lcl.l (fac_menu_altlabel), fac_menu_altlabel) omschrijving
|
||
FROM fac_menu m, fac_functie f
|
||
WHERE m.fac_functie_key = f.fac_functie_key AND f.fac_functie_code LIKE 'WEB_USER%'
|
||
UNION ALL
|
||
SELECT fac_functie_code,
|
||
lcl.l (fac_functie_omschrijving) code,
|
||
'Rapport',
|
||
fac_usrrap_omschrijving
|
||
FROM fac_usrrap r, fac_functie f
|
||
WHERE r.fac_functie_key = f.fac_functie_key AND f.fac_functie_code LIKE 'WEB_USER%'
|
||
UNION ALL
|
||
SELECT fac_functie_code,
|
||
lcl.l (fac_functie_omschrijving) code,
|
||
'Autorisatiegroep',
|
||
fac_groep_omschrijving
|
||
FROM fac_groep g, fac_groeprechten gr, fac_functie f
|
||
WHERE gr.fac_functie_key = f.fac_functie_key
|
||
AND gr.fac_groep_key = g.fac_groep_key
|
||
AND f.fac_functie_code LIKE 'WEB_USER%'
|
||
UNION ALL
|
||
SELECT fac_functie_code,
|
||
lcl.l (fac_functie_omschrijving),
|
||
'Widget',
|
||
fac_widget_naam omschrijving
|
||
FROM fac_widget w, fac_functie f
|
||
WHERE w.fac_functie_key = f.fac_functie_key AND f.fac_functie_code LIKE 'WEB_USER%';
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_autorisatierol
|
||
(
|
||
fac_groep_omschrijving,
|
||
fac_functie_omschrijving,
|
||
ins_srtdiscipline_omschrijving,
|
||
ins_discipline_omschrijving,
|
||
prs_rechten,
|
||
alg_rechten
|
||
)
|
||
AS
|
||
SELECT fac_groep_omschrijving,
|
||
COALESCE(fac_locale_xsl_tekst, fac_functie_omschrijving),
|
||
ins_srtdiscipline_omschrijving,
|
||
d.ins_discipline_omschrijving,
|
||
DECODE (
|
||
fac_functie_min_level,
|
||
0,
|
||
DECODE (fac_gebruiker_prs_level_write,
|
||
9, DECODE (fac_gebruiker_prs_level_read, 9, '-', 'Read'),
|
||
'Write'),
|
||
1,
|
||
DECODE (fac_gebruiker_prs_level_write,
|
||
9, DECODE (fac_gebruiker_prs_level_read, 9, '-', 'Read'),
|
||
'Write'),
|
||
3,
|
||
DECODE (fac_gebruiker_prs_level_write,
|
||
9, DECODE (fac_gebruiker_prs_level_read, 9, '-', 'Read'),
|
||
'Write'),
|
||
7,
|
||
DECODE (fac_gebruiker_prs_level_write,
|
||
9, DECODE (fac_gebruiker_prs_level_read, 9, '-', 'Read'),
|
||
'Write'),
|
||
11,
|
||
'-',
|
||
13,
|
||
DECODE (fac_gebruiker_prs_level_read, 9, '-', 'Read'),
|
||
15,
|
||
DECODE (fac_gebruiker_prs_level_write,
|
||
9, DECODE (fac_gebruiker_prs_level_read, 9, '-', 'Read'),
|
||
'Write'))
|
||
prs_rechten,
|
||
DECODE (
|
||
fac_functie_min_level,
|
||
0,
|
||
DECODE (fac_gebruiker_alg_level_write,
|
||
9, DECODE (fac_gebruiker_alg_level_read, 9, '-', 'Read'),
|
||
'Write'),
|
||
1,
|
||
DECODE (fac_gebruiker_alg_level_write,
|
||
9, DECODE (fac_gebruiker_alg_level_read, 9, '-', 'Read'),
|
||
'Write'),
|
||
3,
|
||
DECODE (fac_gebruiker_alg_level_write,
|
||
9, DECODE (fac_gebruiker_alg_level_read, 9, '-', 'Read'),
|
||
'Write'),
|
||
7,
|
||
'-',
|
||
11,
|
||
DECODE (fac_gebruiker_alg_level_write,
|
||
9, DECODE (fac_gebruiker_alg_level_read, 9, '-', 'Read'),
|
||
'Write'),
|
||
13,
|
||
DECODE (fac_gebruiker_alg_level_read, 9, '-', 'Read'),
|
||
15,
|
||
DECODE (fac_gebruiker_alg_level_write,
|
||
9, DECODE (fac_gebruiker_alg_level_read, 9, '-', 'Read'),
|
||
'Write'))
|
||
alg_rechten
|
||
FROM fac_groeprechten gr,
|
||
fac_groep g,
|
||
ins_tab_discipline d,
|
||
fac_functie f,
|
||
ins_srtdiscipline sd,
|
||
(SELECT fac_locale_xsl_label, fac_locale_xsl_tekst
|
||
FROM fac_locale_xsl
|
||
WHERE fac_locale_xsl_lang = 'NL') l
|
||
WHERE gr.fac_groep_key = g.fac_groep_key
|
||
AND gr.ins_discipline_key = d.ins_discipline_key(+)
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
|
||
AND gr.fac_functie_key = f.fac_functie_key
|
||
AND f.fac_functie_omschrijving = fac_locale_xsl_label(+);
|
||
|
||
/* Formatted on 1-6-2017 8:40:22 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW pchx_v_autorisatie
|
||
(
|
||
prs_perslid_naam_full,
|
||
prs_afdeling_naam,
|
||
prs_afdeling_omschrijving,
|
||
prs_bedrijf_naam,
|
||
fac_groep_omschrijving
|
||
)
|
||
AS
|
||
SELECT prs_perslid_naam_full,
|
||
prs_afdeling_naam,
|
||
prs_afdeling_omschrijving,
|
||
prs_bedrijf_naam,
|
||
fac_groep_omschrijving
|
||
FROM fac_gebruikersgroep gg,
|
||
fac_groep g,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames pf,
|
||
prs_v_afdeling a,
|
||
prs_bedrijf b
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND gg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_bedrijf_key = b.prs_bedrijf_key;
|
||
|
||
-- Rapportage om te controleren welke rechten er aangepast zijn die te maken hebben met goedkeuring (FIA en GOE rechten)
|
||
-- En het wijzigen van profielen en budgethouders.
|
||
CREATE OR REPLACE VIEW pchx_v_rap_audit_trail
|
||
AS
|
||
SELECT *
|
||
FROM (SELECT a.fac_audit_key,
|
||
fac_audit_tabelnaam,
|
||
'Aanpassing rechten van groep' uitleg,
|
||
fac_audit_actie,
|
||
fac_audit_datum,
|
||
pf.prs_perslid_naam_full,
|
||
f.fac_functie_omschrijving,
|
||
(SELECT fac_groep_omschrijving
|
||
FROM fac_groep g, fac_audit a1
|
||
WHERE COALESCE (fac.safe_to_number (a1.fac_audit_waarde_oud),
|
||
fac.safe_to_number (a1.fac_audit_waarde_nieuw)) =
|
||
g.fac_groep_key
|
||
AND a.fac_audit_tabelkey = a1.fac_audit_tabelkey
|
||
AND a.fac_audit_datum = a1.fac_audit_datum
|
||
AND fac_audit_veldnaam = 'fac_groep_key')
|
||
|| ' - '
|
||
|| (SELECT ins_discipline_omschrijving
|
||
FROM ins_tab_discipline d, fac_audit a1
|
||
WHERE COALESCE (fac.safe_to_number (a1.fac_audit_waarde_oud),
|
||
fac.safe_to_number (a1.fac_audit_waarde_nieuw)) =
|
||
d.ins_discipline_key
|
||
AND a.fac_audit_tabelkey = a1.fac_audit_tabelkey
|
||
AND a.fac_audit_datum = a1.fac_audit_datum
|
||
AND fac_audit_veldnaam = 'ins_discipline_key') oms
|
||
FROM fac_audit a, fac_functie f, prs_v_perslid_fullnames pf
|
||
WHERE fac_audit_tabelnaam = 'fac_groeprechten'
|
||
AND (a.fac_audit_waarde_oud = fac_functie_key OR a.fac_audit_waarde_nieuw = fac_functie_key)
|
||
AND f.fac_functie_code IN ('WEB_FINBOF', 'WEB_ORDGOE', 'WEB_CNTGOE')
|
||
AND a.prs_perslid_key = pf.prs_perslid_key
|
||
UNION ALL
|
||
SELECT a.fac_audit_key,
|
||
fac_audit_tabelnaam,
|
||
'Personen toevoegen aan auth groep',
|
||
fac_audit_actie,
|
||
fac_audit_datum,
|
||
pf.prs_perslid_naam_full,
|
||
g.fac_groep_omschrijving,
|
||
(SELECT p.prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all p, fac_audit a1
|
||
WHERE COALESCE (fac.safe_to_number (a1.fac_audit_waarde_oud),
|
||
fac.safe_to_number (a1.fac_audit_waarde_nieuw)) =
|
||
p.prs_perslid_key
|
||
AND a.fac_audit_tabelkey = a1.fac_audit_tabelkey
|
||
AND a.fac_audit_datum = a1.fac_audit_datum
|
||
AND fac_audit_veldnaam = 'prs_perslid_key')
|
||
|| ' - '
|
||
|| (SELECT ins_discipline_omschrijving
|
||
FROM ins_tab_discipline d, fac_audit a1
|
||
WHERE COALESCE (fac.safe_to_number (a1.fac_audit_waarde_oud),
|
||
fac.safe_to_number (a1.fac_audit_waarde_nieuw)) =
|
||
d.ins_discipline_key
|
||
AND a.fac_audit_tabelkey = a1.fac_audit_tabelkey
|
||
AND a.fac_audit_datum = a1.fac_audit_datum
|
||
AND fac_audit_veldnaam = 'ins_discipline_key') oms
|
||
FROM fac_audit a, fac_groep g, prs_v_perslid_fullnames_all pf
|
||
WHERE fac_audit_tabelnaam = 'fac_gebruikersgroep'
|
||
AND fac_audit_veldnaam = 'fac_groep_key'
|
||
AND (a.fac_audit_waarde_oud = fac_groep_key OR a.fac_audit_waarde_nieuw = fac_groep_key)
|
||
AND a.prs_perslid_key = pf.prs_perslid_key
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM fac_groeprechten gr, fac_functie f
|
||
WHERE gr.fac_groep_key = g.fac_groep_key
|
||
AND gr.fac_functie_key = f.fac_functie_key
|
||
AND f.fac_functie_code IN ('WEB_FINBOF', 'WEB_ORDGOE', 'WEB_CNTGOE'))
|
||
UNION ALL
|
||
SELECT a.fac_audit_key,
|
||
fac_audit_tabelnaam,
|
||
'Wijzigen limiet van een profiel',
|
||
fac_audit_actie,
|
||
fac_audit_datum,
|
||
pf.prs_perslid_naam_full,
|
||
pr.fac_profiel_omschrijving,
|
||
a.fac_audit_waarde_oud || ' --> ' || a.fac_audit_waarde_nieuw oms
|
||
FROM fac_audit a, fac_profiel pr, prs_v_perslid_fullnames_all pf
|
||
WHERE fac_audit_tabelnaam = 'fac_profiel'
|
||
AND fac_audit_veldnaam = 'fac_profiel_limiet'
|
||
AND fac_audit_tabelkey = pr.fac_profiel_key
|
||
AND a.prs_perslid_key = pf.prs_perslid_key
|
||
UNION ALL
|
||
SELECT a.fac_audit_key,
|
||
fac_audit_tabelnaam,
|
||
'Wijzigen budgethouder',
|
||
fac_audit_actie,
|
||
fac_audit_datum,
|
||
pf.prs_perslid_naam_full,
|
||
k.prs_kostenplaats_omschrijving,
|
||
(SELECT p.prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all p
|
||
WHERE p.prs_perslid_key = a.fac_audit_waarde_oud)
|
||
|| ' --> '
|
||
|| (SELECT p.prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all p
|
||
WHERE p.prs_perslid_key = a.fac_audit_waarde_nieuw) oms
|
||
FROM fac_audit a, prs_kostenplaats k, prs_v_perslid_fullnames_all pf
|
||
WHERE fac_audit_tabelnaam = 'prs_kostenplaats'
|
||
AND fac_audit_veldnaam = 'prs_perslid_key'
|
||
AND fac_audit_tabelkey = k.prs_kostenplaats_key
|
||
AND a.prs_perslid_key = pf.prs_perslid_key)
|
||
WHERE fac_audit_datum > SYSDATE - 200;
|
||
|
||
-- Organisastie brede view voor het tonen van het aantal meldingen per dag met een tijdspanne van een week
|
||
CREATE OR REPLACE VIEW pchx_aant_per_dag
|
||
(
|
||
mld_melding_datum
|
||
)
|
||
AS
|
||
SELECT mld_melding_datum
|
||
FROM mld_melding
|
||
WHERE TO_CHAR (mld_melding_datum, 'D') NOT IN (1, 7)
|
||
AND TRUNC (mld_melding_datum) NOT IN
|
||
(SELECT TRUNC (mld_vrije_dagen_datum) FROM mld_vrije_dagen)
|
||
AND mld_melding_datum > SYSDATE - 7
|
||
AND NOT mld_melding_datum > SYSDATE;
|
||
|
||
-- Organisastie brede view voor het tonen van het aantal meldingen per maand met een tijdspanne van een jaar
|
||
CREATE OR REPLACE VIEW pchx_v_aant_mld_per_maand
|
||
(
|
||
mld_melding_datum
|
||
)
|
||
AS
|
||
SELECT TRUNC(mld_melding_datum)
|
||
FROM mld_melding
|
||
WHERE TO_CHAR (mld_melding_datum, 'D') NOT IN (1, 7)
|
||
AND TRUNC (mld_melding_datum) NOT IN
|
||
(SELECT TRUNC (mld_vrije_dagen_datum) FROM mld_vrije_dagen)
|
||
AND mld_melding_datum > ADD_MONTHS (SYSDATE, -11)
|
||
AND NOT mld_melding_datum > SYSDATE;
|
||
|
||
-- Organisastie brede view voor het tonen van het aantal meldingen per locatie
|
||
CREATE OR REPLACE VIEW pchx_open_meldingen_locatie
|
||
AS
|
||
SELECT mld_melding_key,
|
||
mld_alg_locatie_key,
|
||
alg_locatie_key,
|
||
mld_melding_status,
|
||
alg_locatie_omschrijving
|
||
FROM mld_melding, alg_locatie
|
||
WHERE mld_alg_locatie_key = alg_locatie_key
|
||
AND mld_melding_status IS NOT NULL
|
||
AND mld_melding_status <> 5;
|
||
|
||
-- Organisastie brede view voor het tonen van het aantal opgelost binnen SLA
|
||
CREATE OR REPLACE VIEW pchx_v_graph_optijd_sla
|
||
(
|
||
fclt_xas_,
|
||
fclt_yas_
|
||
)
|
||
AS
|
||
SELECT SUM (acceptoptijd) aantal, COUNT (mld_key) totaal
|
||
FROM (SELECT DISTINCT
|
||
m.mld_melding_key
|
||
mld_key,
|
||
CASE SIGN (
|
||
fac.datumtijdplusuitvoertijd (
|
||
fac.gettrackingdate ('MLDNEW',
|
||
m.mld_melding_key),
|
||
std.mld_stdmelding_t_accepttijd.tijdsduur,
|
||
std.mld_stdmelding_t_accepttijd.eenheid)
|
||
- COALESCE (
|
||
fac.gettrackingdate ('MLDREJ',
|
||
m.mld_melding_key),
|
||
COALESCE (
|
||
fac.gettrackingdate ('MLDACP',
|
||
m.mld_melding_key),
|
||
SYSDATE)))
|
||
WHEN -1
|
||
THEN
|
||
0
|
||
ELSE
|
||
1
|
||
END
|
||
acceptoptijd
|
||
FROM mld_melding m,
|
||
mld_discipline md,
|
||
mld_stdmelding std,
|
||
ins_srtdiscipline sd
|
||
WHERE md.ins_discipline_key = std.mld_ins_discipline_key
|
||
AND std.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND md.ins_srtdiscipline_key = sd.INS_SRTDISCIPLINE_KEY
|
||
AND sd.INS_SRTDISCIPLINE_KEY = 102 --Aangegeven dat het alleen om storingen gaat
|
||
--AND m.mld_melding_datum >= SYSDATE -7 --Bepaling tijdspanne
|
||
--TO_DATE ('01-01-1990','DD-MM-YYYY') --Alternatieve bepaling tijdspanne
|
||
AND mld_melding_status NOT IN (1, 5, 6)
|
||
AND mld_melding_datum > SYSDATE - 7
|
||
AND NOT mld_melding_datum > SYSDATE);
|
||
|
||
--Klant specifieke view voor het tonen van alle nieuwe meldingen gesorteerd op THT
|
||
/*
|
||
CREATE OR REPLACE VIEW pchx_v_lijst_nieuwe_mld
|
||
AS
|
||
SELECT meldingnummer,
|
||
productgroep,
|
||
melding_ruimte,
|
||
onderwerp,
|
||
melding_status,
|
||
ROUND (
|
||
mld_t_uitvoertijd (
|
||
m.min_t_sla.tijdsduur + m.max_t_respijt.tijdsduur,
|
||
m.min_t_sla.eenheid).tijdsduur,
|
||
2)
|
||
tht
|
||
FROM mld_v_udr_melding mu, pchx_v_startmelding_geg m
|
||
WHERE MELDING_STATUS IN ('Nieuw', 'Te accepteren')
|
||
AND mu.melding_key = m_start
|
||
ORDER BY tht;
|
||
*/
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_kostenplaatsen
|
||
AS
|
||
SELECT prs_kostenplaats_key,
|
||
prs_kostenplaats_nr || ' - ' || prs_kostenplaats_omschrijving
|
||
prs_kostenplaats_omschrijving,
|
||
COALESCE (prs_kostenplaats_verwijder, prs_kostenplaats_eind)
|
||
prs_kostenplaats_eind
|
||
FROM prs_kostenplaats;
|
||
|
||
--PCHD#54161 - Rapportage verwijderde facturen
|
||
CREATE OR REPLACE VIEW pchx_v_fintrack
|
||
(FACTUUR_KEY,
|
||
TRACKING_KEY,
|
||
TRACKING_DATUM,
|
||
TRACKING_OMS,
|
||
NAAM,
|
||
NOTI_CODE,
|
||
STATUS_OUD,
|
||
STATUS_NIEUW)
|
||
AS
|
||
SELECT
|
||
f.factuur_key,
|
||
t.fac_tracking_key,
|
||
t.fac_tracking_datum,
|
||
t.fac_tracking_oms,
|
||
p.prs_perslid_naam_friendly,
|
||
sn.fac_srtnotificatie_code,
|
||
CASE
|
||
WHEN t.fac_tracking_oms LIKE '%Status:%'
|
||
THEN
|
||
SUBSTR (
|
||
t.fac_tracking_oms,
|
||
INSTR (t.fac_tracking_oms, 'Status:') + 8,
|
||
INSTR (
|
||
SUBSTR (t.fac_tracking_oms,
|
||
INSTR (t.fac_tracking_oms, 'Status:') + 9,
|
||
100),
|
||
' --> '))
|
||
ELSE
|
||
''
|
||
END
|
||
AS status_oud,
|
||
CASE
|
||
WHEN t.fac_tracking_oms LIKE '%Status:%'
|
||
THEN
|
||
SUBSTR (
|
||
SUBSTR (t.fac_tracking_oms,
|
||
INSTR (t.fac_tracking_oms, 'Status:') + 10,
|
||
999),
|
||
INSTR (
|
||
SUBSTR (t.fac_tracking_oms,
|
||
INSTR (t.fac_tracking_oms, 'Status:') + 10,
|
||
999),
|
||
' --> ')
|
||
+ 5,
|
||
INSTR (
|
||
SUBSTR (
|
||
SUBSTR (
|
||
t.fac_tracking_oms,
|
||
INSTR (t.fac_tracking_oms, 'Status:') + 14
|
||
+ INSTR (
|
||
SUBSTR (
|
||
t.fac_tracking_oms,
|
||
INSTR (t.fac_tracking_oms, 'Status:')
|
||
+ 10,
|
||
999),
|
||
' --> ')),
|
||
0),
|
||
CHR (10)))
|
||
ELSE
|
||
''
|
||
END
|
||
AS status_nieuw
|
||
FROM fac_tracking t,
|
||
fac_srtnotificatie sn,
|
||
fin_v_udr_factuur f,
|
||
prs_v_perslid_fullnames_all p
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND SUBSTR (sn.fac_srtnotificatie_code, 1, 3) = 'FIN'
|
||
AND t.fac_tracking_refkey = f.factuur_key
|
||
AND p.prs_perslid_key = t.prs_perslid_key;
|
||
|
||
--PCHD#54161 - Rapportage verwijderde facturen
|
||
CREATE OR REPLACE VIEW pchx_v_rap_finfno
|
||
(FACTUUR_KEY,
|
||
FACTUUR_DATUM,
|
||
UITVOERENDE,
|
||
LEVERANCIER_NR,
|
||
FACTUURNR_EXTERN,
|
||
FACTUUR_VOOR,
|
||
OPDRACHTNR,
|
||
OPDRACHT_KEY,
|
||
CONTRACT_KEY,
|
||
BESTELLING_KEY,
|
||
KOSTENPLAATS,
|
||
KOSTENPLAATS_EXTERN,
|
||
DISCIPLINE_OMSCHRIJVING,
|
||
CATALOGUS,
|
||
KOSTENSOORT,
|
||
KOSTENSOORT_OPMERKING,
|
||
KOSTENSOORT_REFCODE,
|
||
KOSTENSOORT_ALTCODE,
|
||
KOSTENSOORT_BTW,
|
||
STDMELDING_OMSCHRIJVING,
|
||
BEDRAG_INCL_BTW,
|
||
BEDRAG_EXCL_BTW,
|
||
HUIDIGE_STATUS_MELDING,
|
||
STATUS_MELDING_AFWIJZING,
|
||
OPMERKING,
|
||
BUDGETHOUDER,
|
||
DATUM_WIJZIGING,
|
||
NAAM_WIJZIGING,
|
||
GROOTBOEKREKENING,
|
||
AF_BEDRIJF)
|
||
AS
|
||
SELECT f.factuur_key,
|
||
f.factuur_datum,
|
||
f.uitvoerende,
|
||
f.leverancier_nr,
|
||
f.factuurnr_extern,
|
||
f.factuur_voor,
|
||
f.opdrachtnr,
|
||
f.opdracht_key,
|
||
f.contract_key,
|
||
f.bestelling_key,
|
||
f.kostenplaats,
|
||
f.kostenplaats_extern,
|
||
f.discipline_omschrijving,
|
||
f.catalogus,
|
||
f.kostensoort,
|
||
f.kostensoort_opmerking,
|
||
f.kostensoort_refcode,
|
||
f.kostensoort_altcode,
|
||
f.kostensoort_btw,
|
||
f.stdmelding_omschrijving,
|
||
f.bedrag_incl_btw,
|
||
f.bedrag_excl_btw,
|
||
f.status,
|
||
(SELECT t2.status_nieuw
|
||
FROM pchx_v_fintrack t2
|
||
WHERE t2.tracking_key =
|
||
(SELECT MAX(t2.tracking_key)
|
||
FROM pchx_v_fintrack t2
|
||
WHERE t2.status_nieuw IS NOT NULL
|
||
AND t2.tracking_key < t1.fac_tracking_key)) AS status_melding_afwijzing,
|
||
f.opmerking,
|
||
f.budgethouder,
|
||
t1.fac_tracking_datum,
|
||
p.prs_perslid_naam_friendly,
|
||
(SELECT ud.fac_usrdata_omschr
|
||
FROM fin_kenmerkfactuur kf, fin_kenmerk k, fac_kenmerkdomein fkd, fac_usrdata ud
|
||
WHERE k.fin_kenmerk_key = 21 -- Key voor aanvullend gegeven Grootboekrekening
|
||
AND f.factuur_key = kf.fin_factuur_key
|
||
AND k.fin_kenmerk_key = kf.fin_kenmerk_key
|
||
AND fkd.fac_kenmerkdomein_key = k.fac_kenmerkdomein_key
|
||
AND ud.fac_usrtab_key = fkd.fac_usrtab_key
|
||
AND kf.fin_kenmerkfactuur_waarde = ud.fac_usrdata_key),
|
||
(SELECT b.prs_bedrijf_naam
|
||
FROM fin_kenmerkfactuur kf, fin_kenmerk k, fac_kenmerkdomein fkd, pchx_v_fin_bedrijf b
|
||
WHERE k.fin_kenmerk_key = 41 -- Key voor aanvullend gegeven Afw. bedrijf
|
||
AND f.factuur_key = kf.fin_factuur_key
|
||
AND k.fin_kenmerk_key = kf.fin_kenmerk_key
|
||
AND fkd.fac_kenmerkdomein_key = k.fac_kenmerkdomein_key
|
||
AND kf.fin_kenmerkfactuur_waarde = b.prs_bedrijf_key)
|
||
FROM fin_v_udr_factuur f,
|
||
fac_tracking t1,
|
||
fac_srtnotificatie sn,
|
||
prs_v_perslid_fullnames_all p
|
||
WHERE t1.fac_tracking_refkey = f.factuur_key
|
||
AND sn.fac_srtnotificatie_key = t1.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'FINFNO'
|
||
AND p.prs_perslid_key = t1.prs_perslid_key;
|
||
|
||
|
||
-- Koppeling om crediteurgegevens vanuit PCHD te verspreiden over de andere PCH omgevingen.
|
||
CREATE OR REPLACE PROCEDURE pchx_import_bedrijf_gegevens (
|
||
p_import_key NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_bedrijf_key VARCHAR2 (1000);
|
||
v_bedrijf_naam VARCHAR2 (1000);
|
||
v_bedrijf_post_adres VARCHAR2 (1000);
|
||
v_bedrijf_post_postcode VARCHAR2 (1000);
|
||
v_bedrijf_post_plaats VARCHAR2 (1000);
|
||
v_bedrijf_post_land VARCHAR2 (1000);
|
||
v_bedrijf_bezoek_adres VARCHAR2 (1000);
|
||
v_bedrijf_bezoek_postcode VARCHAR2 (1000);
|
||
v_bedrijf_bezoek_plaats VARCHAR2 (1000);
|
||
v_bedrijf_bezoek_land VARCHAR2 (1000);
|
||
v_bedrijf_telefoon VARCHAR2 (1000);
|
||
v_bedrijf_fax VARCHAR2 (1000);
|
||
v_bedrijf_telefoon2 VARCHAR2 (1000);
|
||
v_bedrijf_contact_persoon VARCHAR2 (1000);
|
||
v_bedrijf_contact_telefoon VARCHAR2 (1000);
|
||
v_bedrijf_contact_fax VARCHAR2 (1000);
|
||
v_bedrijf_opmerking VARCHAR2 (1000);
|
||
v_bedrijf_opmerking2 VARCHAR2 (1000);
|
||
v_bedrijf_uurloon VARCHAR2 (1000);
|
||
v_leverancier_nr VARCHAR2 (1000);
|
||
v_overeenkomst_nr VARCHAR2 (1000);
|
||
v_overeenkomst_datum VARCHAR2 (1000);
|
||
v_bedrijf_email VARCHAR2 (1000);
|
||
v_bedrijf_order_confirm VARCHAR2 (1000);
|
||
v_bedrijf_image_loc VARCHAR2 (1000);
|
||
v_bedrijf_details_loc VARCHAR2 (1000);
|
||
v_bedrijf_xmldetails_loc VARCHAR2 (1000);
|
||
v_bedrijf_xmlcatalogus_loc VARCHAR2 (1000);
|
||
v_bedrijf_bes_limiet VARCHAR2 (1000);
|
||
v_bedrijf_bes_kosten VARCHAR2 (1000);
|
||
v_bedrijf_aanmaak VARCHAR2 (1000);
|
||
v_bedrijf_verwijder VARCHAR2 (1000);
|
||
v_bedrijf_leverancier VARCHAR2 (1000);
|
||
v_bedrijf_uitvoerende VARCHAR2 (1000);
|
||
v_bedrijf_contract VARCHAR2 (1000);
|
||
v_bedrijf_intern VARCHAR2 (1000);
|
||
v_bedrijf_huurder VARCHAR2 (1000);
|
||
v_bedrijf_bezoeker VARCHAR2 (1000);
|
||
v_bedrijf_ingids VARCHAR2 (1000);
|
||
v_bedrijf_bes_factor VARCHAR2 (1000);
|
||
v_relatietype_omschrijving VARCHAR2 (1000);
|
||
v_bedrijfadres_key VARCHAR2 (1000);
|
||
v_bedrijfadres_type VARCHAR2 (1000);
|
||
v_typeopdr_omschrijving VARCHAR2 (1000);
|
||
v_bedrijfadres_url VARCHAR2 (1000);
|
||
v_bedrijfadres_ordermode VARCHAR2 (1000);
|
||
v_bedrijfadres_certificate VARCHAR2 (1000);
|
||
v_bedrijfadres_xsl VARCHAR2 (1000);
|
||
v_bedrijfadres_ext VARCHAR2 (1000);
|
||
v_bedrijfadres_username VARCHAR2 (1000);
|
||
v_bedrijfadres_password VARCHAR2 (1000);
|
||
v_bedrijfadres_attachfile VARCHAR2 (1000);
|
||
v_bedrijfadres_flexfiles VARCHAR2 (1000);
|
||
v_bedrijfadres_encoding VARCHAR2 (1000);
|
||
v_bedrijfadres_authmethod VARCHAR2 (1000);
|
||
v_bedrijfadres_soapversion VARCHAR2 (1000);
|
||
v_bedrijfadres_soapaction VARCHAR2 (1000);
|
||
v_bedrijfadres_lockuser_naam VARCHAR2 (1000);
|
||
v_bedrijfadres_locksecret VARCHAR2 (1000);
|
||
v_bedrijfadres_lockexpire VARCHAR2 (1000);
|
||
v_typeopdr_key NUMBER (10);
|
||
v_relatietype_key NUMBER (10);
|
||
v_bedrijfadres_lockuser_key NUMBER (10);
|
||
|
||
v_newline VARCHAR2 (4000); -- Import line
|
||
v_field VARCHAR2 (1000); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1);
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
v_ongeldig NUMBER (1);
|
||
v_header_is_valid NUMBER (1) := 0;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
v_fielddelimitor := ';';
|
||
|
||
DELETE pchx_imp_bedrijf_gegevens;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_ongeldig := 0;
|
||
|
||
IF v_header_is_valid = 1
|
||
THEN
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_key);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_naam);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_post_adres);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_post_postcode);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_post_plaats);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_post_land);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_bezoek_adres);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_bezoek_postcode);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_bezoek_plaats);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_bezoek_land);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_telefoon);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_fax);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_telefoon2);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_contact_persoon);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_contact_telefoon);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_contact_fax);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_opmerking);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_opmerking2);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_uurloon);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_leverancier_nr);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_overeenkomst_nr);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_overeenkomst_datum);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_email);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_order_confirm);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_image_loc);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_details_loc);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_xmldetails_loc);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_xmlcatalogus_loc);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_bes_limiet);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_bes_kosten);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_aanmaak);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_verwijder);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_leverancier);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_uitvoerende);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_contract);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_intern);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_huurder);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_bezoeker);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_ingids);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijf_bes_factor);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_relatietype_omschrijving);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_key);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_type);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_typeopdr_omschrijving);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_url);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_ordermode);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_certificate);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_xsl);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_ext);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_username);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_password);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_attachfile);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_flexfiles);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_encoding);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_authmethod);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_soapversion);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_soapaction);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_lockuser_naam);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_locksecret);
|
||
fac.imp_getfield (v_newline,
|
||
v_fielddelimitor,
|
||
v_bedrijfadres_lockexpire);
|
||
|
||
|
||
SELECT MAX (prs_relatietype_key)
|
||
INTO v_relatietype_key
|
||
FROM prs_relatietype rt
|
||
WHERE UPPER (rt.prs_relatietype_omschrijving) =
|
||
UPPER (v_relatietype_omschrijving);
|
||
|
||
IF v_relatietype_omschrijving IS NOT NULL AND v_relatietype_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Relateietype niet gevonden: ' || v_relatietype_omschrijving, '');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
SELECT MAX (mld_typeopdr_key)
|
||
INTO v_typeopdr_key
|
||
FROM mld_typeopdr ot
|
||
WHERE UPPER (ot.mld_typeopdr_omschrijving) =
|
||
UPPER (v_typeopdr_omschrijving);
|
||
|
||
IF v_typeopdr_omschrijving IS NOT NULL AND v_typeopdr_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Opdrachttype niet gevonden: ' || v_typeopdr_omschrijving, '');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
SELECT MAX (prs_perslid_key)
|
||
INTO v_bedrijfadres_lockuser_key
|
||
FROM prs_perslid p
|
||
WHERE UPPER (p.prs_perslid_naam) =
|
||
UPPER (v_bedrijfadres_lockuser_naam);
|
||
|
||
IF v_bedrijfadres_lockuser_naam IS NOT NULL AND v_bedrijfadres_lockuser_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Lockuser niet gevonden: ' || v_bedrijfadres_lockuser_naam, '');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
INSERT INTO pchx_imp_bedrijf_gegevens (
|
||
prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
prs_bedrijf_post_adres,
|
||
prs_bedrijf_post_postcode,
|
||
prs_bedrijf_post_plaats,
|
||
prs_bedrijf_post_land,
|
||
prs_bedrijf_bezoek_adres,
|
||
prs_bedrijf_bezoek_postcode,
|
||
prs_bedrijf_bezoek_plaats,
|
||
prs_bedrijf_bezoek_land,
|
||
prs_bedrijf_telefoon,
|
||
prs_bedrijf_fax,
|
||
prs_bedrijf_telefoon2,
|
||
prs_bedrijf_contact_persoon,
|
||
prs_bedrijf_contact_telefoon,
|
||
prs_bedrijf_contact_fax,
|
||
prs_bedrijf_opmerking,
|
||
prs_bedrijf_opmerking2,
|
||
prs_bedrijf_uurloon,
|
||
prs_leverancier_nr,
|
||
prs_overeenkomst_nr,
|
||
prs_overeenkomst_datum,
|
||
prs_bedrijf_email,
|
||
prs_bedrijf_order_confirm,
|
||
prs_bedrijf_image_loc,
|
||
prs_bedrijf_details_loc,
|
||
prs_bedrijf_xmldetails_loc,
|
||
prs_bedrijf_xmlcatalogus_loc,
|
||
prs_bedrijf_bes_limiet,
|
||
prs_bedrijf_bes_kosten,
|
||
prs_bedrijf_aanmaak,
|
||
prs_bedrijf_verwijder,
|
||
prs_bedrijf_leverancier,
|
||
prs_bedrijf_uitvoerende,
|
||
prs_bedrijf_contract,
|
||
prs_bedrijf_intern,
|
||
prs_bedrijf_huurder,
|
||
prs_bedrijf_bezoeker,
|
||
prs_bedrijf_ingids,
|
||
prs_bedrijf_bes_factor,
|
||
prs_relatietype_key,
|
||
prs_bedrijfadres_key,
|
||
prs_bedrijfadres_type,
|
||
mld_typeopdr_key,
|
||
prs_bedrijfadres_url,
|
||
prs_bedrijfadres_ordermode,
|
||
prs_bedrijfadres_certificate,
|
||
prs_bedrijfadres_xsl,
|
||
prs_bedrijfadres_ext,
|
||
prs_bedrijfadres_username,
|
||
prs_bedrijfadres_password,
|
||
prs_bedrijfadres_attachfile,
|
||
prs_bedrijfadres_flexfiles,
|
||
prs_bedrijfadres_encoding,
|
||
prs_bedrijfadres_authmethod,
|
||
prs_bedrijfadres_soapversion,
|
||
prs_bedrijfadres_soapaction,
|
||
prs_bedrijfadres_lockuser_key,
|
||
prs_bedrijfadres_locksecret,
|
||
prs_bedrijfadres_lockexpire)
|
||
VALUES (
|
||
v_bedrijf_key,
|
||
v_bedrijf_naam,
|
||
v_bedrijf_post_adres,
|
||
v_bedrijf_post_postcode,
|
||
v_bedrijf_post_plaats,
|
||
v_bedrijf_post_land,
|
||
v_bedrijf_bezoek_adres,
|
||
v_bedrijf_bezoek_postcode,
|
||
v_bedrijf_bezoek_plaats,
|
||
v_bedrijf_bezoek_land,
|
||
v_bedrijf_telefoon,
|
||
v_bedrijf_fax,
|
||
v_bedrijf_telefoon2,
|
||
v_bedrijf_contact_persoon,
|
||
v_bedrijf_contact_telefoon,
|
||
v_bedrijf_contact_fax,
|
||
SUBSTR(v_bedrijf_opmerking,0,320),
|
||
SUBSTR(v_bedrijf_opmerking2,0,320),
|
||
FAC.safe_to_number(REPLACE(v_bedrijf_uurloon, ',', '.')),
|
||
v_leverancier_nr,
|
||
v_overeenkomst_nr,
|
||
FAC.safe_to_date (
|
||
v_overeenkomst_datum,
|
||
'yyyy-mm-dd hh24:mi:ss'),
|
||
v_bedrijf_email,
|
||
v_bedrijf_order_confirm,
|
||
v_bedrijf_image_loc,
|
||
v_bedrijf_details_loc,
|
||
v_bedrijf_xmldetails_loc,
|
||
v_bedrijf_xmlcatalogus_loc,
|
||
FAC.safe_to_number(REPLACE(v_bedrijf_bes_limiet, ',', '.')),
|
||
FAC.safe_to_number(REPLACE(v_bedrijf_bes_kosten, ',', '.')),
|
||
FAC.safe_to_date (
|
||
v_bedrijf_aanmaak,
|
||
'yyyy-mm-dd hh24:mi:ss'),
|
||
FAC.safe_to_date (
|
||
v_bedrijf_verwijder,
|
||
'yyyy-mm-dd hh24:mi:ss'),
|
||
v_bedrijf_leverancier,
|
||
v_bedrijf_uitvoerende,
|
||
v_bedrijf_contract,
|
||
v_bedrijf_intern,
|
||
v_bedrijf_huurder,
|
||
v_bedrijf_bezoeker,
|
||
v_bedrijf_ingids,
|
||
FAC.safe_to_number(REPLACE(v_bedrijf_bes_factor, ',', '.')),
|
||
v_relatietype_key,
|
||
v_bedrijfadres_key,
|
||
v_bedrijfadres_type,
|
||
v_typeopdr_key,
|
||
v_bedrijfadres_url,
|
||
v_bedrijfadres_ordermode,
|
||
v_bedrijfadres_certificate,
|
||
v_bedrijfadres_xsl,
|
||
v_bedrijfadres_ext,
|
||
v_bedrijfadres_username,
|
||
v_bedrijfadres_password,
|
||
v_bedrijfadres_attachfile,
|
||
v_bedrijfadres_flexfiles,
|
||
v_bedrijfadres_encoding,
|
||
v_bedrijfadres_authmethod,
|
||
v_bedrijfadres_soapversion,
|
||
v_bedrijfadres_soapaction,
|
||
v_bedrijfadres_lockuser_key,
|
||
v_bedrijfadres_locksecret,
|
||
v_bedrijfadres_lockexpire);
|
||
END IF;
|
||
ELSE
|
||
IF LOWER (v_newline) LIKE
|
||
'prs_bedrijf_key;prs_bedrijf_naam;prs_bedrijf_post_adres;prs_bedrijf_post_postcode;prs_bedrijf_post_plaats;prs_bedrijf_post_land;prs_bedrijf_bezoek_adres;prs_bedrijf_bezoek_postcode;prs_bedrijf_bezoek_plaats;prs_bedrijf_bezoek_land;prs_bedrijf_telefoon;prs_bedrijf_fax;prs_bedrijf_telefoon2;prs_bedrijf_contact_persoon;prs_bedrijf_contact_telefoon;prs_bedrijf_contact_fax;prs_bedrijf_opmerking;prs_bedrijf_opmerking2;prs_bedrijf_uurloon;prs_leverancier_nr;prs_overeenkomst_nr;prs_overeenkomst_datum;prs_bedrijf_email;prs_bedrijf_order_confirm;prs_bedrijf_image_loc;prs_bedrijf_details_loc;prs_bedrijf_xmldetails_loc;prs_bedrijf_xmlcatalogus_loc;prs_bedrijf_bes_limiet;prs_bedrijf_bes_kosten;prs_bedrijf_aanmaak;prs_bedrijf_verwijder;prs_bedrijf_leverancier;prs_bedrijf_uitvoerende;prs_bedrijf_contract;prs_bedrijf_intern;prs_bedrijf_huurder;prs_bedrijf_bezoeker;prs_bedrijf_ingids;prs_bedrijf_bes_factor;prs_relatietype_omschrijving;prs_bedrijfadres_key;prs_bedrijfadres_type;mld_typeopdr_omschrijving;prs_bedrijfadres_url;prs_bedrijfadres_ordermode;prs_bedrijfadres_certificate;prs_bedrijfadres_xsl;prs_bedrijfadres_ext;prs_bedrijfadres_username;prs_bedrijfadres_password;prs_bedrijfadres_attachfile;prs_bedrijfadres_flexfiles;prs_bedrijfadres_encoding;prs_bedrijfadres_authmethod;prs_bedrijfadres_soapversion;prs_bedrijfadres_soapaction;bedrijfadres_lockuser_naam;prs_bedrijfadres_locksecret;prs_bedrijfadres_lockexpire%'
|
||
THEN
|
||
v_header_is_valid := 1;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
'');
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_update_bedrijf_gegevens (
|
||
p_import_key NUMBER)
|
||
AS
|
||
CURSOR c IS
|
||
SELECT DISTINCT prs_bedrijf_key,
|
||
prs_bedrijf_naam,
|
||
prs_bedrijf_post_adres,
|
||
prs_bedrijf_post_postcode,
|
||
prs_bedrijf_post_plaats,
|
||
prs_bedrijf_post_land,
|
||
prs_bedrijf_bezoek_adres,
|
||
prs_bedrijf_bezoek_postcode,
|
||
prs_bedrijf_bezoek_plaats,
|
||
prs_bedrijf_bezoek_land,
|
||
prs_bedrijf_telefoon,
|
||
prs_bedrijf_fax,
|
||
prs_bedrijf_telefoon2,
|
||
prs_bedrijf_contact_persoon,
|
||
prs_bedrijf_contact_telefoon,
|
||
prs_bedrijf_contact_fax,
|
||
prs_bedrijf_opmerking,
|
||
prs_bedrijf_opmerking2,
|
||
prs_bedrijf_uurloon,
|
||
prs_leverancier_nr,
|
||
prs_overeenkomst_nr,
|
||
prs_overeenkomst_datum,
|
||
prs_bedrijf_email,
|
||
prs_bedrijf_order_confirm,
|
||
prs_bedrijf_image_loc,
|
||
prs_bedrijf_details_loc,
|
||
prs_bedrijf_xmldetails_loc,
|
||
prs_bedrijf_xmlcatalogus_loc,
|
||
prs_bedrijf_bes_limiet,
|
||
prs_bedrijf_bes_kosten,
|
||
prs_bedrijf_aanmaak,
|
||
prs_bedrijf_verwijder,
|
||
prs_bedrijf_leverancier,
|
||
prs_bedrijf_uitvoerende,
|
||
prs_bedrijf_contract,
|
||
prs_bedrijf_intern,
|
||
prs_bedrijf_huurder,
|
||
prs_bedrijf_bezoeker,
|
||
prs_bedrijf_ingids,
|
||
prs_bedrijf_bes_factor,
|
||
prs_relatietype_key
|
||
FROM pchx_imp_bedrijf_gegevens;
|
||
|
||
CURSOR c_addr (c_bedrijf_key NUMBER)
|
||
IS
|
||
SELECT DISTINCT prs_bedrijfadres_type,
|
||
mld_typeopdr_key,
|
||
prs_bedrijfadres_url,
|
||
prs_bedrijfadres_ordermode,
|
||
prs_bedrijfadres_certificate,
|
||
prs_bedrijfadres_xsl,
|
||
prs_bedrijfadres_ext,
|
||
prs_bedrijfadres_username,
|
||
prs_bedrijfadres_password,
|
||
prs_bedrijfadres_attachfile,
|
||
prs_bedrijfadres_flexfiles,
|
||
prs_bedrijfadres_encoding,
|
||
prs_bedrijfadres_authmethod,
|
||
prs_bedrijfadres_soapversion,
|
||
prs_bedrijfadres_soapaction,
|
||
prs_bedrijfadres_lockuser_key,
|
||
prs_bedrijfadres_locksecret,
|
||
prs_bedrijfadres_lockexpire
|
||
FROM pchx_imp_bedrijf_gegevens
|
||
WHERE prs_bedrijf_key = c_bedrijf_key
|
||
AND prs_bedrijfadres_type IS NOT NULL;
|
||
|
||
CURSOR c_del (c_kenmerk_key NUMBER)
|
||
IS
|
||
SELECT b.prs_bedrijf_key
|
||
FROM prs_bedrijf b, prs_kenmerklink kl
|
||
WHERE b.prs_bedrijf_verwijder IS NULL
|
||
AND b.prs_bedrijf_key = kl.prs_link_key
|
||
AND kl.prs_kenmerk_key = c_kenmerk_key
|
||
AND kl.prs_kenmerklink_waarde = '1'
|
||
AND b.prs_leverancier_nr NOT IN
|
||
(SELECT prs_leverancier_nr FROM pchx_imp_bedrijf_gegevens);
|
||
|
||
v_leverancier_nr prs_bedrijf.prs_leverancier_nr%TYPE;
|
||
v_bedrijf_key prs_bedrijf.prs_bedrijf_key%TYPE;
|
||
v_bedrijf_key_pchd prs_bedrijf.prs_bedrijf_key%TYPE;
|
||
v_kenmerk_sync_key prs_kenmerk.prs_kenmerk_key%TYPE;
|
||
v_bedrijfadres_key prs_bedrijfadres.prs_bedrijfadres_key%TYPE;
|
||
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER;
|
||
BEGIN
|
||
-- Zoek het kenmerk voor de bedrijf synchronisatie. Als dit kenmerk aangevinkt is dan is dit bedrijf aangemaakt
|
||
-- via deze koppeling. Als het bedrijf dan niet meer in het importbestand voorkomt en het vinkje staat aan, dan mag
|
||
-- het bedrijf verwijderd worden.
|
||
BEGIN
|
||
SELECT prs_kenmerk_key
|
||
INTO v_kenmerk_sync_key
|
||
FROM prs_kenmerk
|
||
WHERE prs_kenmerk_code = 'BEDRIJF_SYNC';
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_kenmerk_sync_key := -1;
|
||
END;
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_bedrijf_key_pchd := rec.prs_bedrijf_key;
|
||
|
||
v_errorhint := 'Zoek bedrijf';
|
||
SELECT MAX(prs_bedrijf_key)
|
||
INTO v_bedrijf_key
|
||
FROM prs_bedrijf
|
||
WHERE prs_leverancier_nr = rec.prs_leverancier_nr;
|
||
|
||
IF v_bedrijf_key IS NULL
|
||
THEN
|
||
v_errorhint := 'Voeg bedrijf toe';
|
||
INSERT INTO prs_bedrijf (prs_bedrijf_naam)
|
||
VALUES (rec.prs_bedrijf_naam)
|
||
RETURNING prs_bedrijf_key
|
||
INTO v_bedrijf_key;
|
||
END IF;
|
||
|
||
v_errorhint := 'Update bedrijf';
|
||
UPDATE prs_bedrijf b
|
||
SET prs_bedrijf_naam = rec.prs_bedrijf_naam,
|
||
prs_bedrijf_post_adres = rec.prs_bedrijf_post_adres,
|
||
prs_bedrijf_post_postcode = rec.prs_bedrijf_post_postcode,
|
||
prs_bedrijf_post_plaats = rec.prs_bedrijf_post_plaats,
|
||
prs_bedrijf_post_land = rec.prs_bedrijf_post_land,
|
||
prs_bedrijf_bezoek_adres = rec.prs_bedrijf_bezoek_adres,
|
||
prs_bedrijf_bezoek_postcode = rec.prs_bedrijf_bezoek_postcode,
|
||
prs_bedrijf_bezoek_plaats = rec.prs_bedrijf_bezoek_plaats,
|
||
prs_bedrijf_bezoek_land = rec.prs_bedrijf_bezoek_land,
|
||
prs_bedrijf_telefoon = rec.prs_bedrijf_telefoon,
|
||
prs_bedrijf_fax = rec.prs_bedrijf_fax,
|
||
prs_bedrijf_telefoon2 = rec.prs_bedrijf_telefoon2,
|
||
prs_bedrijf_contact_persoon = rec.prs_bedrijf_contact_persoon,
|
||
prs_bedrijf_contact_telefoon = rec.prs_bedrijf_contact_telefoon,
|
||
prs_bedrijf_contact_fax = rec.prs_bedrijf_contact_fax,
|
||
prs_bedrijf_opmerking = rec.prs_bedrijf_opmerking,
|
||
prs_bedrijf_opmerking2 = rec.prs_bedrijf_opmerking2,
|
||
prs_bedrijf_uurloon = rec.prs_bedrijf_uurloon,
|
||
prs_leverancier_nr = rec.prs_leverancier_nr,
|
||
prs_overeenkomst_nr = rec.prs_overeenkomst_nr,
|
||
prs_overeenkomst_datum = rec.prs_overeenkomst_datum,
|
||
prs_bedrijf_email = rec.prs_bedrijf_email,
|
||
prs_bedrijf_order_confirm = rec.prs_bedrijf_order_confirm,
|
||
prs_bedrijf_image_loc = rec.prs_bedrijf_image_loc,
|
||
prs_bedrijf_details_loc = rec.prs_bedrijf_details_loc,
|
||
prs_bedrijf_xmldetails_loc = rec.prs_bedrijf_xmldetails_loc,
|
||
prs_bedrijf_xmlcatalogus_loc = rec.prs_bedrijf_xmlcatalogus_loc,
|
||
prs_bedrijf_bes_limiet = rec.prs_bedrijf_bes_limiet,
|
||
prs_bedrijf_bes_kosten = rec.prs_bedrijf_bes_kosten,
|
||
prs_bedrijf_aanmaak = rec.prs_bedrijf_aanmaak,
|
||
prs_bedrijf_verwijder = rec.prs_bedrijf_verwijder,
|
||
prs_bedrijf_leverancier = rec.prs_bedrijf_leverancier,
|
||
prs_bedrijf_uitvoerende = rec.prs_bedrijf_uitvoerende,
|
||
prs_bedrijf_contract = rec.prs_bedrijf_contract,
|
||
prs_bedrijf_intern = rec.prs_bedrijf_intern,
|
||
prs_bedrijf_huurder = rec.prs_bedrijf_huurder,
|
||
prs_bedrijf_bezoeker = rec.prs_bedrijf_bezoeker,
|
||
prs_bedrijf_ingids = rec.prs_bedrijf_ingids,
|
||
prs_bedrijf_bes_factor = rec.prs_bedrijf_bes_factor,
|
||
prs_relatietype_key = rec.prs_relatietype_key
|
||
WHERE b.prs_bedrijf_key = v_bedrijf_key;
|
||
|
||
IF v_kenmerk_sync_key <> -1
|
||
THEN
|
||
FLX.setflex('PRS', v_kenmerk_sync_key, v_bedrijf_key, 'B', '1');
|
||
END IF;
|
||
|
||
FOR rec1 IN c_addr (v_bedrijf_key_pchd)
|
||
LOOP
|
||
BEGIN
|
||
|
||
v_errorhint := 'Zoek bedrijfaddres';
|
||
SELECT prs_bedrijfadres_key
|
||
INTO v_bedrijfadres_key
|
||
FROM prs_bedrijfadres
|
||
WHERE prs_bedrijf_key = v_bedrijf_key
|
||
AND COALESCE (mld_typeopdr_key, -1) = COALESCE (rec1.mld_typeopdr_key, -1)
|
||
AND prs_bedrijfadres_type = rec1.prs_bedrijfadres_type;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errorhint := 'Voeg bedrijfaddres toe';
|
||
INSERT INTO prs_bedrijfadres (prs_bedrijf_key,
|
||
mld_typeopdr_key,
|
||
prs_bedrijfadres_type)
|
||
VALUES (v_bedrijf_key,
|
||
rec1.mld_typeopdr_key,
|
||
rec1.prs_bedrijfadres_type)
|
||
RETURNING prs_bedrijfadres_key
|
||
INTO v_bedrijfadres_key;
|
||
END;
|
||
|
||
v_errorhint := 'Pas bedrijfaddres aan';
|
||
UPDATE prs_bedrijfadres
|
||
SET prs_bedrijfadres_url = rec1.prs_bedrijfadres_url,
|
||
prs_bedrijfadres_ordermode = rec1.prs_bedrijfadres_ordermode,
|
||
prs_bedrijfadres_certificate = rec1.prs_bedrijfadres_certificate,
|
||
prs_bedrijfadres_xsl = DECODE (UPPER (REPLACE(rec1.prs_bedrijfadres_xsl, '\', '/')), -- '
|
||
'XSL/PCHD.XSL', 'xsl/' || SUBSTR (USER, 1, 4) || '.xsl',
|
||
rec1.prs_bedrijfadres_xsl),
|
||
prs_bedrijfadres_ext = rec1.prs_bedrijfadres_ext,
|
||
prs_bedrijfadres_username = rec1.prs_bedrijfadres_username,
|
||
prs_bedrijfadres_password = rec1.prs_bedrijfadres_password,
|
||
prs_bedrijfadres_attachfile = 'Alg. inkoopvoorwaarden PCH IFMS.pdf',
|
||
prs_bedrijfadres_flexfiles = rec1.prs_bedrijfadres_flexfiles,
|
||
prs_bedrijfadres_encoding = rec1.prs_bedrijfadres_encoding,
|
||
prs_bedrijfadres_authmethod = rec1.prs_bedrijfadres_authmethod,
|
||
prs_bedrijfadres_soapversion = rec1.prs_bedrijfadres_soapversion,
|
||
prs_bedrijfadres_soapaction = rec1.prs_bedrijfadres_soapaction,
|
||
prs_bedrijfadres_lockuser_key = rec1.prs_bedrijfadres_lockuser_key,
|
||
prs_bedrijfadres_locksecret = rec1.prs_bedrijfadres_locksecret,
|
||
prs_bedrijfadres_lockexpire = rec1.prs_bedrijfadres_lockexpire
|
||
WHERE prs_bedrijfadres_key = v_bedrijfadres_key;
|
||
|
||
END LOOP;
|
||
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM pchx_imp_bedrijf_gegevens;
|
||
|
||
IF v_count > 0
|
||
THEN
|
||
FOR rec2 IN c_del(v_kenmerk_sync_key)
|
||
LOOP
|
||
UPDATE prs_bedrijf SET prs_bedrijf_verwijder = SYSDATE WHERE prs_bedrijf_key = rec2.prs_bedrijf_key;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
rec.prs_bedrijf_naam || ' - ' || SUBSTR (v_errormsg, 1, 1000),
|
||
v_errorhint);
|
||
END;
|
||
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
'');
|
||
END;
|
||
/
|
||
|
||
|
||
-- Koppeling om contactpersonen vanuit PCHD te verspreiden over de andere PCH omgevingen.
|
||
CREATE OR REPLACE PROCEDURE pchx_import_contactpersoon (
|
||
p_import_key NUMBER)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
v_contactpersoon_key VARCHAR2 (1000);
|
||
v_contactpersoon_naam VARCHAR2 (1000);
|
||
v_contactpersoon_tussenv VARCHAR2 (1000);
|
||
v_contactpersoon_voorletters VARCHAR2 (1000);
|
||
v_contactpersoon_voornaam VARCHAR2 (1000);
|
||
v_contactpersoon_aanhef VARCHAR2 (1000);
|
||
v_contactpersoon_titel VARCHAR2 (1000);
|
||
v_contactpersoon_telefoon_1 VARCHAR2 (1000);
|
||
v_contactpersoon_telefoon_2 VARCHAR2 (1000);
|
||
v_contactpersoon_fax VARCHAR2 (1000);
|
||
v_contactpersoon_email VARCHAR2 (1000);
|
||
v_contactpersoon_functie VARCHAR2 (1000);
|
||
v_contactpersoon_opmerking VARCHAR2 (1000);
|
||
v_bedrijf_key VARCHAR2 (1000);
|
||
v_bedrijf_naam VARCHAR2 (1000);
|
||
|
||
v_newline VARCHAR2 (4000); -- Import line
|
||
v_field VARCHAR2 (1000); -- Import field
|
||
v_fielddelimitor VARCHAR2 (1);
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
v_ongeldig NUMBER (1);
|
||
v_header_is_valid NUMBER (1) := 0;
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
v_fielddelimitor := ';';
|
||
|
||
DELETE pchx_imp_contactpersoon;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_ongeldig := 0;
|
||
|
||
IF v_header_is_valid = 1
|
||
THEN
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_key);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_naam);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_tussenv);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_voorletters);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_voornaam);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_aanhef);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_titel);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_telefoon_1);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_telefoon_2);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_fax);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_email);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_functie);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_contactpersoon_opmerking);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_key);
|
||
fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijf_naam);
|
||
|
||
SELECT MAX (b.prs_bedrijf_key)
|
||
INTO v_bedrijf_key
|
||
FROM prs_bedrijf b, pchx_imp_bedrijf_gegevens i
|
||
WHERE v_bedrijf_key = i.prs_bedrijf_key
|
||
AND i.prs_leverancier_nr = b.prs_leverancier_nr
|
||
AND b.prs_bedrijf_verwijder IS NULL;
|
||
|
||
IF v_bedrijf_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Bedrijf niet gevonden: ' || v_bedrijf_naam, '');
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
INSERT INTO pchx_imp_contactpersoon (
|
||
prs_contactpersoon_key,
|
||
prs_contactpersoon_naam,
|
||
prs_contactpersoon_tussenv,
|
||
prs_contactpersoon_voorletters,
|
||
prs_contactpersoon_voornaam,
|
||
prs_contactpersoon_aanhef,
|
||
prs_contactpersoon_titel,
|
||
prs_contactpersoon_telefoon_1,
|
||
prs_contactpersoon_telefoon_2,
|
||
prs_contactpersoon_fax,
|
||
prs_contactpersoon_email,
|
||
prs_contactpersoon_functie,
|
||
prs_contactpersoon_opmerking,
|
||
prs_bedrijf_key,
|
||
prs_bedrijf_naam)
|
||
VALUES (
|
||
v_contactpersoon_key,
|
||
v_contactpersoon_naam,
|
||
v_contactpersoon_tussenv,
|
||
v_contactpersoon_voorletters,
|
||
v_contactpersoon_voornaam,
|
||
v_contactpersoon_aanhef,
|
||
v_contactpersoon_titel,
|
||
v_contactpersoon_telefoon_1,
|
||
v_contactpersoon_telefoon_2,
|
||
v_contactpersoon_fax,
|
||
v_contactpersoon_email,
|
||
v_contactpersoon_functie,
|
||
v_contactpersoon_opmerking,
|
||
v_bedrijf_key,
|
||
v_bedrijf_naam);
|
||
END IF;
|
||
ELSE
|
||
IF LOWER (v_newline) LIKE 'prs_contactpersoon_key;prs_contactpersoon_naam;prs_contactpersoon_tussenv;prs_contactpersoon_voorletters;prs_contactpersoon_voornaam;prs_contactpersoon_aanhef;prs_contactpersoon_titel;prs_contactpersoon_telefoon_1;prs_contactpersoon_telefoon_2;prs_contactpersoon_fax;prs_contactpersoon_email;prs_contactpersoon_functie;prs_contactpersoon_opmerking;prs_bedrijf_key;prs_bedrijf_naam%'
|
||
THEN
|
||
v_header_is_valid := 1;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
'');
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_update_contactpersoon (
|
||
p_import_key NUMBER)
|
||
AS
|
||
CURSOR c IS
|
||
SELECT DISTINCT prs_bedrijf_key
|
||
FROM pchx_imp_contactpersoon;
|
||
|
||
CURSOR c_det (c_bedrijf_key NUMBER)
|
||
IS
|
||
SELECT *
|
||
FROM pchx_imp_contactpersoon
|
||
WHERE prs_bedrijf_key = c_bedrijf_key;
|
||
|
||
v_contactpersoon_key prs_contactpersoon.prs_contactpersoon_key%TYPE;
|
||
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
FOR rec1 IN c
|
||
LOOP
|
||
BEGIN
|
||
|
||
FOR rec IN c_det(rec1.prs_bedrijf_key)
|
||
LOOP
|
||
BEGIN
|
||
BEGIN
|
||
v_errorhint := 'Zoek contactpersoon';
|
||
SELECT prs_contactpersoon_key
|
||
INTO v_contactpersoon_key
|
||
FROM prs_contactpersoon
|
||
WHERE prs_bedrijf_key = rec1.prs_bedrijf_key
|
||
AND prs_contactpersoon_naam = rec.prs_contactpersoon_naam
|
||
AND COALESCE(prs_contactpersoon_voornaam, 'Onbekend') = COALESCE(rec.prs_contactpersoon_voornaam, 'Onbekend')
|
||
AND prs_contactpersoon_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errorhint := 'Voeg contactpersoon toe';
|
||
INSERT INTO prs_contactpersoon (prs_contactpersoon_naam, prs_contactpersoon_voornaam, prs_bedrijf_key)
|
||
VALUES (rec.prs_contactpersoon_naam, rec.prs_contactpersoon_voornaam, rec.prs_bedrijf_key)
|
||
RETURNING prs_contactpersoon_key
|
||
INTO v_contactpersoon_key;
|
||
END;
|
||
|
||
v_errorhint := 'Pas contactpersoon aan';
|
||
UPDATE prs_contactpersoon
|
||
SET prs_contactpersoon_tussenv = rec.prs_contactpersoon_tussenv,
|
||
prs_contactpersoon_voorletters = rec.prs_contactpersoon_voorletters,
|
||
prs_contactpersoon_aanhef = rec.prs_contactpersoon_aanhef,
|
||
prs_contactpersoon_titel = rec.prs_contactpersoon_titel,
|
||
prs_contactpersoon_telefoon_1 = rec.prs_contactpersoon_telefoon_1,
|
||
prs_contactpersoon_telefoon_2 = rec.prs_contactpersoon_telefoon_2,
|
||
prs_contactpersoon_fax = rec.prs_contactpersoon_fax,
|
||
prs_contactpersoon_email = rec.prs_contactpersoon_email,
|
||
prs_contactpersoon_functie = rec.prs_contactpersoon_functie,
|
||
prs_contactpersoon_opmerking = rec.prs_contactpersoon_opmerking
|
||
WHERE prs_contactpersoon_key = v_contactpersoon_key;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
rec.prs_bedrijf_naam || ' - ' || rec.prs_contactpersoon_naam || ', ' || rec.prs_contactpersoon_voornaam || ' - ' ||
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
v_errorhint);
|
||
END;
|
||
|
||
END LOOP;
|
||
|
||
v_errorhint := 'Verwijder contactpersonen';
|
||
UPDATE prs_contactpersoon cp
|
||
SET cp.prs_contactpersoon_verwijder = SYSDATE
|
||
WHERE cp.prs_bedrijf_key = rec1.prs_bedrijf_key
|
||
AND NOT EXISTS (SELECT prs_contactpersoon_key
|
||
FROM pchx_imp_contactpersoon cp2
|
||
WHERE cp2.prs_bedrijf_key = cp.prs_bedrijf_key
|
||
AND cp2.prs_contactpersoon_naam = cp.prs_contactpersoon_naam
|
||
AND COALESCE(cp2.prs_contactpersoon_voornaam, 'Onbekend') = COALESCE(cp.prs_contactpersoon_voornaam, 'Onbekend'));
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
v_errorhint);
|
||
END;
|
||
/
|
||
|
||
--PCHX#62602 Rapportage periodieke taken (ook nog niet gestart)
|
||
CREATE OR REPLACE VIEW pchx_v_rap_deelinspect
|
||
(
|
||
deel_key,
|
||
discipline,
|
||
soort,
|
||
groep,
|
||
soortcode,
|
||
omschrijving,
|
||
plaatseigenaar,
|
||
plaatseigenaartype,
|
||
plaatsaanduiding,
|
||
eigenaar,
|
||
eigenaar_key,
|
||
opmerking,
|
||
regio,
|
||
district,
|
||
locatie_code,
|
||
locatie_omschrijving,
|
||
locatie_plaats,
|
||
gebouwcode,
|
||
gebouw,
|
||
terreinsectorcode,
|
||
terreinsector,
|
||
verdiepingcode,
|
||
ruimtenr,
|
||
werkplekvolgnr,
|
||
werkplek,
|
||
uitleenbaar,
|
||
uitgeleend,
|
||
res_opmerking,
|
||
beheerder,
|
||
vervaldatum,
|
||
actief,
|
||
aantal,
|
||
state,
|
||
statedate,
|
||
fclt_3d_discipline_key,
|
||
fclt_3d_afdeling_key,
|
||
fclt_3d_locatie_key,
|
||
ins_deelsrtcontrole_key,
|
||
ins_srtcontrole_key,
|
||
srtcontrole_omschrijving,
|
||
ins_deelsrtcontrole_datum,
|
||
controlemode_omschrijving,
|
||
ins_deelsrtcontrole_opmerking,
|
||
perslid,
|
||
ins_deelsrtcontrole_datum_org,
|
||
ins_deelsrtcontrole_plandatum,
|
||
deelsrtcontrole_status
|
||
)
|
||
AS
|
||
SELECT deel_key,
|
||
discipline,
|
||
soort,
|
||
groep,
|
||
soortcode,
|
||
omschrijving,
|
||
plaatseigenaar,
|
||
plaatseigenaartype,
|
||
plaatsaanduiding,
|
||
eigenaar,
|
||
eigenaar_key,
|
||
opmerking,
|
||
regio,
|
||
district,
|
||
locatie_code,
|
||
locatie_omschrijving,
|
||
locatie_plaats,
|
||
gebouwcode,
|
||
gebouw,
|
||
terreinsectorcode,
|
||
terreinsector,
|
||
verdiepingcode,
|
||
ruimtenr,
|
||
werkplekvolgnr,
|
||
werkplek,
|
||
uitleenbaar,
|
||
uitgeleend,
|
||
res_opmerking,
|
||
beheerder,
|
||
vervaldatum,
|
||
actief,
|
||
aantal,
|
||
state,
|
||
statedate,
|
||
fclt_3d_discipline_key,
|
||
fclt_3d_afdeling_key,
|
||
fclt_3d_locatie_key,
|
||
ins_deelsrtcontrole_key,
|
||
ins_srtcontrole_key,
|
||
srtcontrole_omschrijving,
|
||
ins_deelsrtcontrole_datum,
|
||
controlemode_omschrijving,
|
||
ins_deelsrtcontrole_opmerking,
|
||
perslid,
|
||
ins_deelsrtcontrole_datum_org,
|
||
ins_deelsrtcontrole_plandatum,
|
||
deelsrtcontrole_status
|
||
FROM ins_v_udr_deelinspect
|
||
UNION ALL
|
||
SELECT ud.deel_key,
|
||
ud.discipline,
|
||
ud.soort,
|
||
ud.groep,
|
||
ud.soortcode,
|
||
ud.omschrijving,
|
||
ud.plaatseigenaar,
|
||
ud.plaatseigenaartype,
|
||
ud.plaatsaanduiding,
|
||
ud.eigenaar,
|
||
ud.eigenaar_key,
|
||
ud.opmerking,
|
||
ud.regio,
|
||
ud.district,
|
||
ud.locatie_code,
|
||
ud.locatie_omschrijving,
|
||
ud.locatie_plaats,
|
||
ud.gebouwcode,
|
||
ud.gebouw,
|
||
ud.terreinsectorcode,
|
||
ud.terreinsector,
|
||
ud.verdiepingcode,
|
||
ud.ruimtenr,
|
||
ud.werkplekvolgnr,
|
||
ud.werkplek,
|
||
ud.uitleenbaar,
|
||
ud.uitgeleend,
|
||
ud.res_opmerking,
|
||
ud.beheerder,
|
||
ud.vervaldatum,
|
||
ud.actief,
|
||
ud.aantal,
|
||
ud.state,
|
||
ud.statedate,
|
||
ud.fclt_3d_discipline_key,
|
||
ud.fclt_3d_afdeling_key,
|
||
ud.fclt_3d_locatie_key,
|
||
NULL,
|
||
sc.ins_srtcontrole_key,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
NULL,
|
||
'Nog niet gepland',
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key),
|
||
NULL
|
||
FROM ins_v_udr_deel ud,
|
||
ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_tab_discipline disc,
|
||
ins_srtcontrole sc
|
||
WHERE d.ins_deel_key = ud.deel_key
|
||
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
||
AND disc.ins_discipline_key = sg.ins_discipline_key
|
||
AND ( (sd.ins_srtdeel_key = sc.ins_srtinstallatie_key
|
||
AND ins_srtcontrole_niveau = 'S')
|
||
OR (sg.ins_srtgroep_key = sc.ins_srtinstallatie_key
|
||
AND ins_srtcontrole_niveau = 'G')
|
||
OR (disc.ins_discipline_key = sc.ins_srtinstallatie_key
|
||
AND ins_srtcontrole_niveau = 'D'));
|
||
|
||
--PCHX#63363 Notificaties obv periodieke taken naar objectbeheerders
|
||
CREATE OR REPLACE VIEW pchx_v_rap_ctrbeh
|
||
(
|
||
plaats,
|
||
gebouw,
|
||
verdieping,
|
||
ruimte,
|
||
discipline,
|
||
objectgroep,
|
||
objectsoort,
|
||
deel_key,
|
||
objectomschrijving,
|
||
plandatum,
|
||
extra_key,
|
||
taakomschrijving,
|
||
status,
|
||
beheerder_key,
|
||
beheerder_email
|
||
)
|
||
AS
|
||
SELECT di.locatie_plaats,
|
||
di.gebouw,
|
||
di.verdiepingcode,
|
||
di.ruimtenr,
|
||
di.discipline,
|
||
di.groep,
|
||
di.soort,
|
||
di.deel_key,
|
||
di.omschrijving,
|
||
TRUNC (di.ins_deelsrtcontrole_plandatum),
|
||
dsc.ins_deelsrtcontrole_key,
|
||
di.srtcontrole_omschrijving,
|
||
di.deelsrtcontrole_status,
|
||
p.prs_perslid_key,
|
||
p.prs_perslid_email
|
||
FROM pchx_v_rap_deelinspect di,
|
||
ins_deel d,
|
||
prs_perslid p,
|
||
ins_deelsrtcontrole dsc,
|
||
ins_tab_discipline disc,
|
||
fac_usrtab ut,
|
||
fac_usrdata ud
|
||
WHERE di.ins_deelsrtcontrole_datum IS NULL
|
||
AND (di.vervaldatum > SYSDATE OR di.vervaldatum IS NULL)
|
||
AND d.prs_perslid_key_beh = p.prs_perslid_key(+)
|
||
AND d.ins_deel_key = di.deel_key
|
||
AND dsc.ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key
|
||
AND d.ins_discipline_key = disc.ins_discipline_key
|
||
AND UPPER (ut.fac_usrtab_naam) = 'NOTI_CUST11'
|
||
AND ut.fac_usrtab_verwijder IS NULL
|
||
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND fac.safe_to_number (ud.fac_usrdata_code) = d.ins_discipline_key
|
||
ORDER BY di.ins_deelsrtcontrole_datum,
|
||
TRUNC (di.ins_deelsrtcontrole_plandatum),
|
||
di.controlemode_omschrijving,
|
||
p.prs_perslid_email;
|
||
|
||
--PCHX#63363 Notificaties obv periodieke taken naar objectbeheerders
|
||
CREATE OR REPLACE VIEW pchx_v_noti_ctrbeh_wk
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
'CUST11' AS code,
|
||
NULL,
|
||
beheerder_key,
|
||
'Herinnering: '
|
||
|| discipline
|
||
|| ' - '
|
||
|| objectgroep
|
||
|| ' - '
|
||
|| taakomschrijving
|
||
|| ', dient uiterlijk '
|
||
|| TO_CHAR (plandatum, 'DD-MM-YYYY')
|
||
|| ' te worden afgehandeld',
|
||
(SELECT fac_usrrap_key
|
||
FROM fac_usrrap
|
||
WHERE UPPER (fac_usrrap_code) = 'PCHX_V_RAP_CTRBEH')
|
||
rapportnr,
|
||
extra_key
|
||
FROM pchx_v_rap_ctrbeh
|
||
WHERE TRUNC (plandatum) = TRUNC (SYSDATE) + 7;
|
||
|
||
--PCHX#63363 Notificaties obv periodieke taken naar objectbeheerders
|
||
CREATE OR REPLACE VIEW pchx_v_noti_ctrbeh_mnd
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
'CUST11' AS code,
|
||
NULL,
|
||
beheerder_key,
|
||
discipline
|
||
|| ' - '
|
||
|| objectgroep
|
||
|| ' - '
|
||
|| taakomschrijving
|
||
|| ', dient uiterlijk '
|
||
|| TO_CHAR (plandatum, 'DD-MM-YYYY')
|
||
|| ' te worden afgehandeld',
|
||
(SELECT fac_usrrap_key
|
||
FROM fac_usrrap
|
||
WHERE UPPER (fac_usrrap_view_name) = 'PCHX_V_RAP_CTRBEH')
|
||
rapportnr,
|
||
extra_key
|
||
FROM pchx_v_rap_ctrbeh
|
||
WHERE TRUNC (plandatum) = TRUNC (SYSDATE) + 31;
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_import_fin_scansys_xml (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
v_seq_of_columns VARCHAR (100);
|
||
BEGIN
|
||
--In de XSL: Factuurnummer(1);Factuurdatum(2);Ordernummer(3);Omschrijving(4);Aantal(5);Nettobedrag(6);BTWcode(7);BTWBedrag(8);Document(9);Debiteurnummer(10);
|
||
-- Opmerking(11);-BtwVerlegd(12);Betalingsconditie(13);Boekperiode(14);Boekstuknummer(15);Kostensoort(16);Kostendrager(17);Grootboekrekening(18);AfwijkendBedrijf(19);Projectcode(20);
|
||
-- Administratie(21);Afw.Grootboekrekening(22);Regelnummer(23);Kostenplaats(24);Debiteur(25);AFwijkende boekdatum(26);
|
||
|
||
--hulp voor pos : '1;2;3;4;5;6;7;8;9;0;1;2;3 ;4 ;5 ;6 ;7 ;8 ;9 ;0 ;1 ;2 ;3 ;4; 5 '
|
||
v_seq_of_columns := '0;1;2;3;0;0;4;5;6;;7;9;10;11;12;15;16;17;18;19;14;21;20;22;23;24;7;25;26;8';
|
||
|
||
-- 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"), dit staat in kenmerk14
|
||
-- 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 (Boekstuknummer)
|
||
-- v_kenmerk2: 17 (Kostensoort)
|
||
-- v_kenmerk3: 18
|
||
-- v_kenmerk4: 19 (Grootboekrekening)
|
||
-- v_kenmerk5: 20 (Afwijkend bedrijf)
|
||
-- v_boekmaand: 21
|
||
-- v_kenmerk6: 22 (Adminstratie)
|
||
-- v_kenmerk7: 23 (Projectcode)
|
||
-- v_kenmerk8: 24 (Afwijkende grootboekrekening)
|
||
-- v_kenmerk9: 25 (Regelnummer)
|
||
-- v_kenmerk10: 26 (Kostenplaats)
|
||
-- v_kenmerk11: 27 (BTW code)
|
||
-- v_kenmerk12: 28 Debiteur
|
||
-- v_kenmerk13: 29 Afwijkende boekdatum
|
||
-- v_kenmerk14: 30 BTW bedrag (gelijk aan 10).
|
||
|
||
DELETE FROM fac_imp_factuur
|
||
WHERE fac_import_key <> p_import_key;
|
||
|
||
fac_import_factuur_body (p_import_key, v_seq_of_columns);
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET factuurregelaantal = aantal;
|
||
|
||
UPDATE fac_imp_factuur
|
||
SET ordernr = factuurnr
|
||
WHERE ordernr IS NULL;
|
||
|
||
-- Om onderscheid te maken tussen eigen kosten en kosten voord de werkmaatschappij-en is besloten bij eigen kosten
|
||
-- een X voor het bestelnummer te plaatsen. In dat geval kan Loes dit herkennen en de boeking op dagboek 71 plaatsen.
|
||
UPDATE fac_imp_factuur
|
||
SET ordernr = SUBSTR(ordernr, 3, 100)
|
||
WHERE UPPER(ordernr) LIKE 'XB%';
|
||
|
||
-- referenties naar bestellingen krijgen vaak een B mee in de factuurimport. Om er voor te zorgen dat we
|
||
-- ook echt op zoek gaan naar bestellingen, wordt deze B verwijderd.
|
||
UPDATE fac_imp_factuur
|
||
SET ordernr = SUBSTR(ordernr, 2, 100)
|
||
WHERE UPPER(ordernr) LIKE 'B%';
|
||
|
||
-- De facturen op contracten voor de Holding (administratie 100) hebben een prefix H voor de contracten staan.
|
||
UPDATE fac_imp_factuur
|
||
SET ordernr = replace(ordernr, 'C', 'CH')
|
||
WHERE SUBSTR(ordernr, 1, 1) = 'C' AND kenmerk6 = '100'
|
||
AND ordernr NOT LIKE 'CH%'
|
||
AND fac_import_key = p_import_key;
|
||
|
||
-- verwijder de entries uit de imp_file omdat er meerdere bestanden in <20><>n run ingelezen kunnen worden.
|
||
DELETE fac_imp_file
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_post_upd_fin_scansys_xml (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR km_facturen IS
|
||
SELECT factuurnr,
|
||
fin_factuur_key,
|
||
omschrijving,
|
||
-- opmerking,
|
||
kenmerk1,
|
||
kenmerk4,
|
||
kenmerk6,
|
||
kenmerk12,
|
||
debiteurnr,
|
||
fac_import_key,
|
||
(SELECT DISTINCT (MAX (p.prs_perslid_key))
|
||
FROM prs_perslid p, fac_v_rap_groeprechten r
|
||
WHERE r.fclt_f_login = p.prs_perslid_oslogin
|
||
AND r.fclt_f_funcode = 'WEB_FINGOE') AS goedkeurder
|
||
FROM ( SELECT factuurnr,
|
||
MAX (fin_factuur_key) AS fin_factuur_key,
|
||
omschrijving,
|
||
-- opmerking,
|
||
kenmerk1,
|
||
kenmerk4,
|
||
kenmerk6,
|
||
kenmerk12,
|
||
debiteurnr,
|
||
fac_import_key
|
||
FROM fac_imp_factuur
|
||
GROUP BY factuurnr,
|
||
omschrijving,
|
||
-- opmerking,
|
||
kenmerk1,
|
||
kenmerk4,
|
||
kenmerk6,
|
||
kenmerk12,
|
||
debiteurnr,
|
||
fac_import_key);
|
||
|
||
CURSOR km_factuurregels IS
|
||
SELECT fr.fin_factuur_key,
|
||
i.fin_factuurregel_key,
|
||
i.opmerking,
|
||
i.kenmerk1,
|
||
i.kenmerk2,
|
||
i.kenmerk6,
|
||
i.kenmerk7,
|
||
i.kenmerk8,
|
||
i.kenmerk9,
|
||
i.kenmerk10,
|
||
i.kenmerk13,
|
||
i.kenmerk14
|
||
FROM fac_imp_factuur i, fin_factuurregel fr
|
||
WHERE fac_import_key = p_import_key
|
||
AND i.fin_factuurregel_key = fr.fin_factuurregel_key;
|
||
|
||
CURSOR btw IS
|
||
SELECT f.fac_import_key,
|
||
f.fac_imp_file_index,
|
||
f.fin_factuur_key,
|
||
f.fin_factuurregel_key,
|
||
f.btw,
|
||
f.kenmerk11,
|
||
f.btw_bedrag
|
||
FROM fac_imp_factuur f
|
||
WHERE f.fac_import_key = p_import_key;
|
||
|
||
CURSOR btw_verlegd IS
|
||
SELECT f.fac_import_key,
|
||
f.fac_imp_file_index,
|
||
f.fin_factuur_key,
|
||
f.fin_factuurregel_key,
|
||
f.btw,
|
||
f.kenmerk11,
|
||
f.btw_bedrag
|
||
FROM fac_imp_factuur f
|
||
WHERE f.fac_import_key = p_import_key
|
||
AND (f.kenmerk11 = 'I21' OR f.kenmerk11 = 'I9');
|
||
|
||
|
||
v_factuur_key NUMBER (10);
|
||
v_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_afwbedrijf VARCHAR2 (200);
|
||
v_grootboekrekening VARCHAR2 (200);
|
||
v_kostenplaats NUMBER;
|
||
v_referentie_key NUMBER;
|
||
v_kostensoort_key NUMBER;
|
||
v_opmerking VARCHAR2 (3000);
|
||
v_omschrijving VARCHAR2 (3000);
|
||
v_afw_boekdatum VARCHAR2 (200);
|
||
v_btwverlegd_key VARCHAR2 (200);
|
||
BEGIN
|
||
-- Er kunnen meerdere BTW codes zijn met zelfde BTW percentage ivm btw verlegd, hier zetten we deze goed.
|
||
v_errorhint := 'BTW code verlegd goedzetten';
|
||
|
||
FOR rec IN btw_verlegd
|
||
LOOP
|
||
BEGIN
|
||
SELECT fin_btwtabelwaarde_key
|
||
INTO v_btwverlegd_key
|
||
FROM fin_btwtabelwaarde
|
||
WHERE fin_btwtabelwaarde_code = rec.kenmerk11
|
||
AND fin_btwtabelwaarde_verwijder IS NULL;
|
||
|
||
UPDATE fin_factuurregel
|
||
SET fin_btwtabelwaarde_key = v_btwverlegd_key -- BTW key bijbehorende BTW code (I21 / I9)
|
||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key
|
||
AND (rec.kenmerk11 = 'I21' OR rec.kenmerk11 = 'I9');
|
||
END;
|
||
END LOOP;
|
||
|
||
-- De kenmerken bij de facturen en factuurregels worden hieronder nog gevuld.
|
||
v_errorhint := 'Kenmerken facturen vullen';
|
||
|
||
FOR rec IN km_facturen
|
||
LOOP
|
||
v_opmerking := SUBSTR (rec.omschrijving, 1, 250);
|
||
-- verwijder de markering voor cr/lf die we zelf in de stylesheet toegevoegd hebben.
|
||
v_opmerking := REPLACE (v_opmerking, '@@', CHR (13));
|
||
|
||
v_errorhint := 'Opmerking bij factuur vullen';
|
||
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_opmerking = v_opmerking
|
||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||
|
||
BEGIN
|
||
v_errorhint := 'Debiteur in factuur vullen';
|
||
|
||
--Debiteur bij de factuur overnemen van de tag <Debiteur>
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_debiteur_nr = rec.kenmerk12
|
||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||
|
||
|
||
v_errorhint := 'Goedkeurder in factuur vullen';
|
||
|
||
--Een goedkeurder vullen bij de factuur
|
||
UPDATE fin_factuur
|
||
SET prs_perslid_key_goedkeur = rec.goedkeurder
|
||
WHERE fin_factuur_key = rec.fin_factuur_key
|
||
AND rec.fin_factuur_key IS NOT NULL;
|
||
|
||
-- administratie
|
||
IF rec.kenmerk6 IS NULL
|
||
THEN
|
||
v_errorhint := 'Geen administratie';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_errormsg || v_errorhint,
|
||
'Er is geen administratie gevuld bij dit boekstuknummer '
|
||
|| rec.kenmerk1);
|
||
ELSE
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (
|
||
rec.fin_factuur_key,
|
||
(SELECT MAX (fin_kenmerk_key)
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_verwijder IS NULL
|
||
AND fin_kenmerk_upper =
|
||
'ADMINISTRATIE'),
|
||
rec.kenmerk6);
|
||
END IF;
|
||
|
||
-- boekstuknummer
|
||
IF rec.kenmerk1 IS NULL
|
||
THEN
|
||
v_errorhint := 'Geen boekstuknummer';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg || v_errorhint,
|
||
'Er is geen boekstuknummer gevuld');
|
||
ELSE
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (
|
||
rec.fin_factuur_key,
|
||
(SELECT MAX (fin_kenmerk_key)
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_verwijder IS NULL
|
||
AND fin_kenmerk_upper =
|
||
'BOEKSTUKNUMMER'),
|
||
rec.kenmerk1);
|
||
END IF;
|
||
|
||
-- Afwijkend bedrijf
|
||
IF rec.debiteurnr IS NULL
|
||
THEN
|
||
v_errorhint := 'Geen afw. bedrijf';
|
||
ELSE
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (
|
||
rec.fin_factuur_key,
|
||
(SELECT MAX (fin_kenmerk_key)
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_verwijder IS NULL
|
||
AND fin_kenmerk_upper =
|
||
'AFW. BEDRIJF'),
|
||
(SELECT MAX (prs_bedrijf_key)
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE fac.safe_to_number (
|
||
prs_leverancier_nr) =
|
||
rec.debiteurnr));
|
||
END IF;
|
||
|
||
--Grootboekrekening
|
||
IF rec.kenmerk4 IS NULL
|
||
THEN
|
||
v_errorhint := 'Geen grootboekrekening';
|
||
ELSE
|
||
v_errorhint := 'Fout bij inlezen grootboekrekening';
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (
|
||
rec.fin_factuur_key,
|
||
(SELECT MAX (fin_kenmerk_key)
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_verwijder IS NULL
|
||
AND fin_kenmerk_upper =
|
||
'GROOTBOEKREKENING'),
|
||
(SELECT MAX (ud.fac_usrdata_key)
|
||
FROM fac_usrdata ud, fac_usrtab ut
|
||
WHERE UPPER (ut.fac_usrtab_naam) =
|
||
'GROOTBOEKREKENIN'
|
||
AND ut.fac_usrtab_key =
|
||
ud.fac_usrtab_key
|
||
AND ud.fac_usrdata_code =
|
||
rec.kenmerk4));
|
||
END IF;
|
||
|
||
v_errorhint := 'Bepalen referentie';
|
||
|
||
SELECT COALESCE (mld_opdr_key,
|
||
cnt_contract_key,
|
||
bes_bestelopdr_key)
|
||
INTO v_referentie_key
|
||
FROM fin_factuur
|
||
WHERE fin_factuur_key = rec.fin_factuur_key
|
||
AND rec.fac_import_key = p_import_key;
|
||
|
||
IF v_referentie_key IS NULL
|
||
THEN
|
||
v_errorhint := 'Geen referentie';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_errormsg || v_errorhint,
|
||
'Er is geen referentie gevonden bij dit boekstuknummer '
|
||
|| rec.kenmerk1);
|
||
END IF;
|
||
|
||
IF pchx.get_user = 'PCHD' AND rec.kenmerk6 <> '100' AND rec.kenmerk6 <> '250' THEN
|
||
PCHX.fin_set_projectloc_code (rec.fin_factuur_key);
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN km_factuurregels
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Update factuurregels';
|
||
v_kostenplaats := NULL;
|
||
v_omschrijving := SUBSTR (rec.opmerking, 1, 250);
|
||
-- verwijder de markering voor cr/lf die we zelf in de stylesheet toegevoegd hebben.
|
||
|
||
v_omschrijving := REPLACE (v_omschrijving, '@@', CHR (13));
|
||
v_afw_boekdatum :=
|
||
TO_CHAR (
|
||
fac.safe_to_date (SUBSTR (rec.kenmerk13, 0, 10),
|
||
'yyyy-mm-dd'),
|
||
'dd-mm-yyyy');
|
||
|
||
v_errorhint := 'Update factuurregels, kostenplaats';
|
||
|
||
SELECT MAX (prs_kostenplaats_key)
|
||
INTO v_kostenplaats
|
||
FROM prs_kostenplaats
|
||
WHERE prs_kostenplaats_upper = UPPER (rec.kenmerk10)
|
||
AND prs_kostenplaats_verwijder IS NULL;
|
||
|
||
v_errorhint := 'Update factuurregels, omschrijving';
|
||
|
||
UPDATE fin_factuurregel
|
||
SET fin_factuurregel_omschrijving = v_omschrijving
|
||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
|
||
|
||
--Afwijkende grootboekrekening (factuurregel)
|
||
v_errorhint := 'Geen afw. grootboekrekening factuurregel';
|
||
|
||
--Het BTW bedrag moet 1 op 1 worden overgenomen vanuit Scansys, om geen afrondingsverschillen te krijgen
|
||
v_errorhint := 'BTW bedrag overnemen';
|
||
|
||
UPDATE fin_factuurregel
|
||
SET fin_factuurregel_btw =
|
||
fac.safe_to_number (REPLACE (rec.kenmerk14, ',', '.'))
|
||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
|
||
|
||
IF rec.kenmerk8 IS NULL
|
||
THEN
|
||
v_errorhint := 'Geen afw. grootboekrekening factuurregel';
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'E',
|
||
v_errormsg || v_errorhint,
|
||
'Er is geen afwijkende grootboekrekening gevuld bij een factuurregel bij dit boekstuknummer '
|
||
|| rec.kenmerk1);
|
||
ELSE
|
||
INSERT INTO fin_kenmerkfactregel (
|
||
fin_factuurregel_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactregel_waarde)
|
||
VALUES (
|
||
rec.fin_factuurregel_key,
|
||
(SELECT MAX (fin_kenmerk_key)
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_verwijder IS NULL
|
||
AND fin_kenmerk_upper =
|
||
'AFW. GROOTBOEKREKENING'),
|
||
(SELECT MAX (ud.fac_usrdata_key)
|
||
FROM fac_usrdata ud, fac_usrtab ut
|
||
WHERE UPPER (ut.fac_usrtab_naam) =
|
||
'GROOTBOEKREKENIN'
|
||
AND ut.fac_usrtab_key =
|
||
ud.fac_usrtab_key
|
||
AND ud.fac_usrdata_code =
|
||
rec.kenmerk8));
|
||
END IF;
|
||
|
||
--Projectcode (factuurregel)
|
||
v_errorhint := 'Geen projectcode factuurregel';
|
||
|
||
IF rec.kenmerk7 IS NULL
|
||
THEN
|
||
v_errorhint := 'Geen projectcode factuurregel';
|
||
ELSE
|
||
INSERT INTO fin_kenmerkfactregel (
|
||
fin_factuurregel_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactregel_waarde)
|
||
VALUES (
|
||
rec.fin_factuurregel_key,
|
||
(SELECT MAX (fin_kenmerk_key)
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_verwijder IS NULL
|
||
AND fin_kenmerk_upper =
|
||
'PROJECTCODE'),
|
||
rec.kenmerk7);
|
||
END IF;
|
||
|
||
v_errorhint := 'Geen afw. kostenplaats factuurregel';
|
||
|
||
--Afw. kostenplaats (factuurregel)
|
||
IF v_kostenplaats IS NULL
|
||
THEN
|
||
v_errorhint := 'Geen afw. kostenplaats factuurregel';
|
||
ELSE
|
||
INSERT INTO fin_kenmerkfactregel (
|
||
fin_factuurregel_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactregel_waarde)
|
||
VALUES (
|
||
rec.fin_factuurregel_key,
|
||
(SELECT MAX (fin_kenmerk_key)
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_verwijder IS NULL
|
||
AND fin_kenmerk_upper =
|
||
'AFW. KOSTENPLAATS'),
|
||
v_kostenplaats);
|
||
END IF;
|
||
|
||
v_errorhint := 'Geen kostensoort factuurregel';
|
||
|
||
|
||
IF pchx.get_user = 'PCHD' AND rec.kenmerk6 <> '100' AND rec.kenmerk6 <> '250' THEN
|
||
--Kostensoort (factuurregel)
|
||
PCHX.fin_set_kostensoort (rec.fin_factuur_key, rec.fin_factuurregel_key, rec.kenmerk2);
|
||
END IF;
|
||
|
||
v_errorhint := 'Geen regelnummer factuurregel';
|
||
--Regelnummer (factuurregel)
|
||
IF rec.kenmerk9 IS NULL
|
||
THEN
|
||
v_errorhint := 'Geen regelnummer factuurregel';
|
||
ELSE
|
||
UPDATE fin_factuurregel
|
||
SET fin_factuurregel_nr = rec.kenmerk9
|
||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
|
||
END IF;
|
||
|
||
v_errorhint := 'Geen afw. boekdatum factuurregel';
|
||
--Afw. boekdatum (factuurregel)
|
||
IF rec.kenmerk13 IS NULL
|
||
THEN
|
||
v_errorhint := 'Geen afw. boekdatum factuurregel';
|
||
ELSE
|
||
INSERT INTO fin_kenmerkfactregel (
|
||
fin_factuurregel_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactregel_waarde)
|
||
VALUES (
|
||
rec.fin_factuurregel_key,
|
||
(SELECT MAX (fin_kenmerk_key)
|
||
FROM fin_kenmerk
|
||
WHERE fin_kenmerk_verwijder IS NULL
|
||
AND fin_kenmerk_upper =
|
||
'AFW. BOEKDATUM'),
|
||
v_afw_boekdatum);
|
||
END IF;
|
||
|
||
IF pchx.get_user = 'PCHD' AND rec.kenmerk6 <> '100' AND rec.kenmerk6 <> '250' THEN
|
||
PCHX.fin_set_locatie_code (rec.fin_factuur_key, rec.fin_factuurregel_key);
|
||
END IF;
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
--Het BTW bedrag moet 1 op 1 worden overgenomen vanuit Scansys, om geen afrondingsverschillen te krijgen
|
||
FOR rec IN km_facturen
|
||
LOOP
|
||
v_errorhint := 'BTW bedrag factuur herrekenen';
|
||
|
||
BEGIN
|
||
UPDATE fin_factuur
|
||
SET fin_factuur_totaal_btw =
|
||
(SELECT SUM (fin_factuurregel_btw)
|
||
FROM fin_factuurregel
|
||
WHERE fin_factuur_key = rec.fin_factuur_key)
|
||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
SUBSTR (v_errormsg, 1, 1000),
|
||
v_errorhint);
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_update_fin_scansys_xml (
|
||
p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
-- Standaard FCLT verwerk import facturen
|
||
fac_update_factuur (p_import_key);
|
||
-- CUST: post processing van:
|
||
-- 1) Kenmerken vullen bij factuur.
|
||
-- 2) Btw code goed zetten.
|
||
pchx_post_upd_fin_scansys_xml (p_import_key);
|
||
END;
|
||
/
|
||
|
||
--PCHS#64217 Rapportage meldingen met incidentnummer
|
||
CREATE OR REPLACE VIEW pchx_v_mld_incidentnr
|
||
AS
|
||
SELECT melding_key,
|
||
meldingnummer,
|
||
melding_start_key,
|
||
externnummer,
|
||
melding_regio,
|
||
melding_district,
|
||
melding_locatiecode,
|
||
melding_locatie,
|
||
melding_locatieplaats,
|
||
fclt_3d_locatie_key,
|
||
melding_gebouwcode,
|
||
melding_gebouw,
|
||
melding_verdieping,
|
||
melding_ruimtenr,
|
||
melding_ruimte,
|
||
melding_ordernr,
|
||
kostensoortgroep,
|
||
kostensoort,
|
||
kostenplaats,
|
||
kostenplaats_oms,
|
||
melder,
|
||
melder_key,
|
||
afdeling,
|
||
afdeling_omschrijving,
|
||
fclt_3d_afdeling_key,
|
||
bedrijf_key,
|
||
invoerder,
|
||
meldbron,
|
||
soortmelding,
|
||
fclt_3d_discipline_key,
|
||
productgroep,
|
||
subproductgroep,
|
||
behandelgroep,
|
||
behandelaar,
|
||
behandelaar_key,
|
||
subproductgroepgroep,
|
||
fclt_3d_discipline2_key,
|
||
actieve_behandelgroep,
|
||
actieve_behandelaar_key,
|
||
actieve_behandelaar,
|
||
melding_status,
|
||
sla_nvt,
|
||
sla_werkdgn,
|
||
sla_werkuren,
|
||
sla_respijtdgn,
|
||
sla_respijturen,
|
||
sla_accptdgn,
|
||
sla_accpturen,
|
||
plan_uitvoertijd_sla,
|
||
melding_datum,
|
||
melding_einddatum,
|
||
melding_einddatum_std,
|
||
melding_acceptdatum,
|
||
melding_afgemeld,
|
||
melding_accepted,
|
||
doorlooptijd_werkdgn,
|
||
doorlooptijd_werkuren,
|
||
onderwerp,
|
||
vomschrijving,
|
||
melding_opmerking,
|
||
prioriteit,
|
||
prioriteittxt,
|
||
rating,
|
||
rating_opmerking,
|
||
bolletje,
|
||
actiecode,
|
||
accept_sla_dagen,
|
||
accept_sla_uren,
|
||
uitvoering_sla_dagen,
|
||
uitvoering_sla_uren,
|
||
afspraak_sla_dagen,
|
||
afspraak_sla_uren,
|
||
accept_sla_optijd,
|
||
uitvoering_sla_optijd,
|
||
afspraak_sla_optijd,
|
||
selfservice,
|
||
(SELECT DISTINCT (kmm.mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding kmm, mld_kenmerk km
|
||
WHERE km.mld_kenmerk_omschrijving = 'Incidentnummer'
|
||
AND km.mld_kenmerk_key = kmm.mld_kenmerk_key
|
||
AND kmm.mld_melding_key = melding_key
|
||
AND km.mld_kenmerk_verwijder IS NULL
|
||
AND kmm.mld_kenmerkmelding_verwijder IS NULL)
|
||
AS incidentnummer
|
||
FROM mld_v_udr_melding;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_implog_scansysxml
|
||
(
|
||
import,
|
||
import_key,
|
||
datum,
|
||
status,
|
||
omschrijving,
|
||
hint
|
||
)
|
||
AS
|
||
SELECT ia.fac_import_app_code,
|
||
LOG.fac_import_key,
|
||
LOG.imp_log_datum,
|
||
LOG.imp_log_status,
|
||
LOG.imp_log_omschrijving,
|
||
LOG.imp_log_hint
|
||
FROM imp_log LOG, fac_import i, fac_import_app ia
|
||
WHERE LOG.fac_import_key = i.fac_import_key
|
||
AND i.fac_import_app_key = ia.fac_import_app_key
|
||
AND LOG.imp_log_status = 'E'
|
||
AND UPPER (ia.fac_import_app_code) = 'FIN_SCANSYS_XML'
|
||
AND LOG.imp_log_hint NOT LIKE
|
||
'%Er is geen grootboekrekening gevuld bij dit boekstuknummer%' --ivm PCHX#68542
|
||
ORDER BY imp_log_key DESC;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW PCHX_V_NOTI_IMPLOGSCANSYS
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY,
|
||
XSENDER,
|
||
XEMAIL,
|
||
XMOBILE
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
'CUST12',
|
||
NULL,
|
||
NULL,
|
||
pchx.get_user || ': ' || imp.omschrijving || ' ' || imp.hint,
|
||
(SELECT fac_usrrap_key
|
||
FROM fac_usrrap
|
||
WHERE UPPER (fac_usrrap_code) =
|
||
'PCHX_V_IMPLOG_SCANSYSXML') rapportnr,
|
||
NULL,
|
||
NULL,
|
||
'fa@pch-dienstengroep.nl',
|
||
NULL
|
||
FROM PCHX_V_IMPLOG_SCANSYSXML imp
|
||
WHERE imp.datum BETWEEN (SELECT fac_notificatie_job_lastrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'PCHX_V_NOTI_IMPLOGSCANSYS')
|
||
AND (SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'PCHX_V_NOTI_IMPLOGSCANSYS');
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW PCHX_V_BRON_PRS_ANO
|
||
(
|
||
PERSLID_KEY,
|
||
NAAM,
|
||
TUSSENVOEGSEL,
|
||
VOORLETTERS,
|
||
VOORNAAM,
|
||
LOGIN,
|
||
EMAIL,
|
||
VERWIJDERDATUM,
|
||
NIEUWE_NAAM
|
||
)
|
||
AS
|
||
SELECT p.prs_perslid_key,
|
||
p.prs_perslid_naam,
|
||
p.prs_perslid_tussenvoegsel,
|
||
p.prs_perslid_voorletters,
|
||
p.prs_perslid_voornaam,
|
||
p.prs_perslid_oslogin,
|
||
p.prs_perslid_email,
|
||
p.prs_perslid_verwijder,
|
||
lcl.l ('lcl_prs_old_employee')
|
||
FROM prs_perslid p
|
||
WHERE p.prs_perslid_verwijder IS NOT NULL
|
||
AND NOT EXISTS
|
||
(SELECT ft.fac_tracking_key
|
||
FROM fac_tracking ft
|
||
WHERE ft.fac_tracking_refkey = p.prs_perslid_key
|
||
AND ft.fac_srtnotificatie_key =
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'PRSANO'))
|
||
ORDER BY p.prs_perslid_verwijder;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW PCHX_V_NOTI_CAPA
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
PAR1,
|
||
PAR2,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT 'CUST13',
|
||
NULL,
|
||
COALESCE (m.actieve_behandelaar_key, m.behandelaar_key),
|
||
'Rapp<EFBFBD>l: '
|
||
|| fac_version_cust
|
||
|| ': '
|
||
|| m.melding_key
|
||
|| ' '
|
||
|| sm.mld_stdmelding_omschrijving
|
||
|| ' - '
|
||
|| m.onderwerp
|
||
|| ' moet uiterlijk per '
|
||
|| TO_CHAR (m.melding_einddatum, 'DD-MM-YYYY')
|
||
|| ' gereed zijn' AS text,
|
||
mm.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM mld_v_udr_melding m,
|
||
mld_melding mm,
|
||
mld_stdmelding sm,
|
||
fac_version
|
||
WHERE mm.mld_melding_key = m.melding_key
|
||
AND mm.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key IN
|
||
(SELECT ud.fac_usrdata_volgnr
|
||
FROM fac_usrdata ud, fac_usrtab ut
|
||
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND UPPER (ut.fac_usrtab_naam) = 'CUST13')
|
||
AND COALESCE (m.actieve_behandelaar_key, m.behandelaar_key) IS NOT NULL
|
||
AND ( TRUNC (m.melding_einddatum) =
|
||
ADD_MONTHS (TRUNC (SYSDATE), 2) -- 2 maanden vanaf nu
|
||
OR TRUNC (m.melding_einddatum) =
|
||
ADD_MONTHS (TRUNC (SYSDATE), 1) -- 1 maand vanaf nu
|
||
OR TRUNC (m.melding_einddatum) = TRUNC (SYSDATE) + 7) -- 1 week vanaf nu
|
||
AND mm.mld_melding_status IN (0,
|
||
2,
|
||
3,
|
||
4,
|
||
7);
|
||
|
||
-- Overzicht dat inzichtelijk maakt wie tot welke limiet mag fiatteren.
|
||
CREATE OR REPLACE VIEW pchx_v_fiatterings_overzicht
|
||
AS
|
||
SELECT k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving,
|
||
kpp.prs_perslid_naam_full,
|
||
( SELECT LISTAGG (kpc.prs_perslid_naam_full, ',')
|
||
WITHIN GROUP (ORDER BY kpc.prs_perslid_key DESC)
|
||
AS vervangers
|
||
FROM prs_collega c, prs_v_perslid_fullnames kpc
|
||
WHERE c.prs_perslid_key = kpp.prs_perslid_key
|
||
AND c.prs_perslid_key_alt = kpc.prs_perslid_key
|
||
GROUP BY c.prs_perslid_key) vervangers,
|
||
pr.fac_profiel_omschrijving,
|
||
pr.fac_profiel_limiet,
|
||
d.ins_discipline_omschrijving,
|
||
pw.fac_profielwaarde_limiet,
|
||
kpg.prs_kostenplaatsgrp_oms,
|
||
kpg1.prs_perslid_naam_full
|
||
kpg1_fiat,
|
||
COALESCE (prs_kostenplaatsgrp_fin_limit1, FAC.safe_to_number (FAC.getSetting ('mld_opdr_kpg_fin_limit1')))
|
||
limiet1,
|
||
kpg2.prs_perslid_naam_full
|
||
kpg2_fiat,
|
||
COALESCE (prs_kostenplaatsgrp_fin_limit2, FAC.safe_to_number (FAC.getSetting ('mld_opdr_kpg_fin_limit2')))
|
||
limiet2,
|
||
kpg3.prs_perslid_naam_full
|
||
kpg3_fiat
|
||
FROM prs_kostenplaats k,
|
||
prs_kostenplaatsgrp kpg,
|
||
prs_v_perslid_fullnames kpg1,
|
||
prs_v_perslid_fullnames kpg2,
|
||
prs_v_perslid_fullnames kpg3,
|
||
prs_v_perslid_fullnames kpp,
|
||
prs_perslid p,
|
||
fac_profiel pr,
|
||
fac_profielwaarde pw,
|
||
ins_tab_discipline d
|
||
WHERE k.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
|
||
AND k.prs_perslid_key = p.prs_perslid_key(+)
|
||
AND k.prs_perslid_key = kpp.prs_perslid_key(+)
|
||
AND kpg.prs_perslid_key = kpg1.prs_perslid_key(+)
|
||
AND kpg.prs_kostenplaatsgrp_fiat2_key = kpg2.prs_perslid_key(+)
|
||
AND kpg.prs_kostenplaatsgrp_fiat3_key = kpg3.prs_perslid_key(+)
|
||
AND p.fac_profiel_key = pr.fac_profiel_key(+)
|
||
AND pr.fac_profiel_key = pw.fac_profiel_key(+)
|
||
AND pw.ins_discipline_key = d.ins_discipline_key(+)
|
||
AND k.prs_kostenplaats_verwijder IS NULL
|
||
AND COALESCE (k.prs_kostenplaats_eind, SYSDATE + 1) > SYSDATE;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_mld_mldref
|
||
(
|
||
melding_key,
|
||
melding_nummer
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
srt.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| ' - '
|
||
|| sm.mld_stdmelding_omschrijving
|
||
FROM mld_melding m, ins_srtdiscipline srt, mld_stdmelding sm, mld_discipline d
|
||
where m.mld_stdmelding_key = sm.mld_stdmelding_key AND
|
||
sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = srt.ins_srtdiscipline_key;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_cntr_cntrref
|
||
(
|
||
contract_key,
|
||
contract_nummer,
|
||
verwijder_datum
|
||
)
|
||
AS
|
||
SELECT cnt.cnt_contract_key,
|
||
cnt.cnt_contract_nummer_intern || case when cnt.cnt_contract_versie IS NULL OR cnt.cnt_contract_versie = ''THEN '' ELSE '.'||cnt.cnt_contract_versie END || ' - ' || cdisc.INS_DISCIPLINE_OMSCHRIJVING ,
|
||
cnt.cnt_contract_verwijder
|
||
FROM cnt_contract cnt, cnt_discipline cdisc
|
||
WHERE cnt.ins_discipline_key = cdisc.ins_discipline_key;
|
||
|
||
-- Rapportages tbv Dashboards
|
||
|
||
-- Operationele dashboards
|
||
CREATE OR REPLACE VIEW pchx_v_dashb_factuur
|
||
AS
|
||
SELECT f.fin_factuur_key,
|
||
k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving,
|
||
k.prs_perslid_key,
|
||
f.fin_factuur_statuses_key,
|
||
l.alg_locatie_key fclt_3d_locatie_key,
|
||
l.alg_locatie_omschrijving melding_locatie,
|
||
1 waarde
|
||
FROM fin_factuur f,
|
||
prs_kostenplaats k,
|
||
alg_locatie l,
|
||
(SELECT DISTINCT f.fin_factuur_key, aog.alg_locatie_key
|
||
FROM fin_factuur f,
|
||
cnt_contract_plaats cp,
|
||
(SELECT alg_locatie_key, alg_onroerendgoed_keys, alg_type FROM alg_v_allonroerendgoed
|
||
UNION ALL
|
||
SELECT alg_locatie_key, alg_locatie_key, 'L' FROM alg_locatie) aog
|
||
WHERE f.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp.cnt_alg_plaats_code = aog.alg_type
|
||
AND cp.cnt_alg_plaats_key = aog.alg_onroerendgoed_keys
|
||
UNION ALL
|
||
SELECT fin_factuur_key, a.alg_locatie_key
|
||
FROM fin_factuur f, bes_bestelopdr bo, mld_adres a
|
||
WHERE f.bes_bestelopdr_key = bo.bes_bestelopdr_key AND bo.mld_adres_key_lev = a.mld_adres_key
|
||
UNION ALL
|
||
SELECT f.fin_factuur_key, m.mld_alg_locatie_key
|
||
FROM fin_factuur f, mld_opdr o, mld_melding m
|
||
WHERE f.mld_opdr_key = o.mld_opdr_key AND o.mld_melding_key = m.mld_melding_key) fl
|
||
WHERE fin.getfactuurkostenplaats (f.fin_factuur_key) = k.prs_kostenplaats_key
|
||
AND fl.alg_locatie_key = l.alg_locatie_key
|
||
AND f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_key = fl.fin_factuur_key;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_dashb_openmld_kwisp
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
alg_locatie_key fclt_3d_locatie_key,
|
||
alg_locatie_omschrijving melding_locatie,
|
||
sd.ins_srtdiscipline_omschrijving soortmelding,
|
||
sd.ins_srtdiscipline_key soortmelding_key,
|
||
s.mld_statuses_omschrijving,
|
||
m.mld_melding_datum
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
alg_locatie l,
|
||
mld_statuses s
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND m.mld_melding_status = s.mld_statuses_key;
|
||
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_dashb_openbes
|
||
AS
|
||
SELECT u.catalogus,
|
||
u.bestelling_key,
|
||
u.status,
|
||
u.fclt_3d_locatie_key,
|
||
u.fclt_3d_discipline_key,
|
||
l.alg_locatie_omschrijving melding_locatie
|
||
FROM bes_v_udr_bestelling u, alg_locatie l
|
||
WHERE u.fclt_3d_locatie_key = l.alg_locatie_key
|
||
GROUP BY u.catalogus,
|
||
u.bestelling_key,
|
||
u.status,
|
||
u.fclt_3d_locatie_key,
|
||
l.alg_locatie_omschrijving,
|
||
u.fclt_3d_discipline_key;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_dashb_contract_rap
|
||
AS
|
||
SELECT DISTINCT c.cnt_contract_key,
|
||
aog.alg_locatie_key fclt_3d_locatie_key,
|
||
l.alg_locatie_omschrijving melding_locatie,
|
||
DECODE (cnt.cnt_contract_status (c.cnt_contract_looptijd_van,
|
||
cnt.cnt_getrappeldatum (c.cnt_contract_key),
|
||
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
||
c.cnt_contract_looptijd_tot),
|
||
0, lcl.l ('lcl_cnt_future'),
|
||
1, lcl.l ('lcl_cnt_topical'),
|
||
2, lcl.l ('lcl_cnt_warn'),
|
||
3, lcl.l ('lcl_cnt_cancel'),
|
||
4, lcl.l ('lcl_cnt_past')) fase_actief,
|
||
DECODE (
|
||
c.cnt_contract_status,
|
||
0, DECODE (fac.getsetting ('cnt_contract_approval'),
|
||
1, lcl.l ('lcl_cnt_active_approval'),
|
||
lcl.l ('lcl_cnt_active')),
|
||
1, lcl.l ('lcl_cnt_inactive'),
|
||
2, lcl.l ('lcl_cnt_new'),
|
||
3, lcl.l ('lcl_cnt_forapproval')) cnt_contract_status,
|
||
1 waarde
|
||
FROM cnt_contract c,
|
||
cnt_contract_plaats cp,
|
||
alg_locatie l,
|
||
(SELECT alg_locatie_key, alg_onroerendgoed_keys, alg_type FROM alg_v_allonroerendgoed
|
||
UNION ALL
|
||
SELECT alg_locatie_key, alg_locatie_key, 'L' FROM alg_locatie) aog
|
||
WHERE cp.cnt_alg_plaats_code = aog.alg_type
|
||
AND cp.cnt_alg_plaats_key = aog.alg_onroerendgoed_keys
|
||
AND cp.cnt_contract_key = c.cnt_contract_key
|
||
AND aog.alg_locatie_key = l.alg_locatie_key;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_locaties
|
||
AS
|
||
SELECT alg_locatie_key, alg_locatie_code, alg_locatie_omschrijving melding_locatie FROM alg_v_aanweziglocatie;
|
||
|
||
-- Klantmanager dashboards
|
||
CREATE OR REPLACE VIEW pchx_v_werkplaatschappij
|
||
AS
|
||
WITH
|
||
datums
|
||
AS
|
||
( SELECT ADD_MONTHS (TRUNC (SYSDATE, 'MM'), -1 * (LEVEL - 1)) datum
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <= 30)
|
||
SELECT d.datum melding_datum,
|
||
prs_perslid_naam_full budgethouder,
|
||
prs_kostenplaats_nr kostenplaats,
|
||
alg_locatie_omschrijving melding_locatie,
|
||
ins_srtdiscipline_omschrijving soort_melding
|
||
FROM datums d,
|
||
prs_v_perslid_fullnames pf,
|
||
prs_kostenplaats k,
|
||
alg_locatie l,
|
||
ins_srtdiscipline sd
|
||
WHERE k.prs_perslid_key = pf.prs_perslid_key
|
||
AND k.prs_kostenplaats_verwijder IS NULL
|
||
AND l.alg_locatie_verwijder IS NULL
|
||
AND COALESCE(alg_locatie_vervaldatum, SYSDATE + 1) > SYSDATE
|
||
AND ins_srtdiscipline_key IN (485, 484, 482, 481) -- Wens, Storing, Klacht, Informatieverzoek
|
||
AND ins_srtdiscipline_verwijder IS NULL;
|
||
|
||
-- Doorlooptijd van meldingen in werkdagen met datum selectie om afmelddatum.
|
||
CREATE OR REPLACE VIEW pchx_v_melding_doorlooptijd
|
||
AS
|
||
SELECT mld_melding_key,
|
||
meldingnummer,
|
||
afgemeld melding_datum,
|
||
locatie melding_locatie,
|
||
locatie_omschrijving,
|
||
alg_locatie_key,
|
||
kostenplaats,
|
||
kostenplaats_oms,
|
||
budgethouder,
|
||
soortmelding,
|
||
productgroep,
|
||
subproductgroep,
|
||
onderwerp,
|
||
omschrijving,
|
||
(SELECT LISTAGG (DISTINCT prs_bedrijf_naam, CHR(10)) WITHIN GROUP (ORDER BY prs_bedrijf_naam ASC) AS leveranciers
|
||
FROM mld_opdr o,
|
||
prs_bedrijf b
|
||
WHERE o.mld_melding_key = x.mld_melding_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key) leveranciers,
|
||
DECODE (mld_melding_status, 1, 'Gesloten', 5, 'Gesloten', 6, 'Gesloten', 'Open') status, -- 1 Afgewezen, 5 Afgemeld, 6 Historie
|
||
DECODE (x.t_doorlooptijd.eenheid, 'D', x.t_doorlooptijd.tijdsduur, NULL)
|
||
doorlooptijd_werkdgn
|
||
FROM (SELECT m.mld_melding_key,
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key
|
||
meldingnummer,
|
||
alg_locatie_omschrijving
|
||
locatie,
|
||
alg_locatie_omschrijving
|
||
locatie_omschrijving,
|
||
alg_locatie_key,
|
||
prs_kostenplaats_nr kostenplaats,
|
||
prs_kostenplaats_omschrijving kostenplaats_oms,
|
||
pf.prs_perslid_naam_full budgethouder,
|
||
sd.ins_srtdiscipline_omschrijving
|
||
soortmelding,
|
||
md.ins_discipline_omschrijving productgroep,
|
||
s.mld_stdmelding_omschrijving subproductgroep,
|
||
mld.getactualuitvoer (m.mld_melding_key)
|
||
t_doorlooptijd,
|
||
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1))
|
||
afgemeld,
|
||
m.mld_melding_onderwerp onderwerp,
|
||
m.mld_melding_omschrijving omschrijving,
|
||
mld_melding_status
|
||
FROM mld_melding m,
|
||
mld_stdmelding s,
|
||
alg_locatie l,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
prs_kostenplaats k,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND md.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND m.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND k.prs_perslid_key = pf.prs_perslid_key(+)
|
||
AND sd.ins_srtdiscipline_prefix IN ('K', 'W', 'I', 'S')
|
||
AND m.mld_melding_datum >= TO_DATE ('01-01-2010', 'DD-MM-YYYY')) x;
|
||
|
||
-- udr view met daarbij de budgethouder van de kostenplaats.
|
||
CREATE OR REPLACE VIEW pchx_v_udr_melding
|
||
AS
|
||
SELECT (SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames pf, prs_kostenplaats k
|
||
WHERE u.kostenplaats = k.prs_kostenplaats_nr
|
||
AND k.prs_perslid_key = pf.prs_perslid_key
|
||
AND k.prs_kostenplaats_verwijder IS NULL) budgethouder,
|
||
u.*
|
||
FROM mld_v_udr_melding u;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_openmeldingen_locatie
|
||
AS
|
||
SELECT l.alg_locatie_key,
|
||
1 waarde,
|
||
l.alg_locatie_code title,
|
||
ins_srtdiscipline_omschrijving soort_melding,
|
||
prs_kostenplaats_nr kostenplaats,
|
||
prs_perslid_naam_full budgethouder,
|
||
alg_locatie_omschrijving melding_locatie
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
alg_locatie l,
|
||
prs_kostenplaats k,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_melding_status IN (0,
|
||
2,
|
||
3,
|
||
4,
|
||
7,
|
||
99) -- Bij Frontoffice, Nieuw, Te accepteren, In behandeling, Uitgegeven, Niet opgelost
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND m.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND k.prs_perslid_key = pf.prs_perslid_key(+);
|
||
|
||
------ 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 |