4164 lines
163 KiB
SQL
4164 lines
163 KiB
SQL
-- Script containing customer generic configuration sql statements for all PCH accounts
|
||
-- $Revision$
|
||
-- $Id$
|
||
--
|
||
|
||
DEFINE thisfile = 'PCHX.SQL'
|
||
DEFINE dbuser = '^PCH'
|
||
DEFINE custid = '^PCH'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SPOOL &fcltlogfile
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
CREATE OR REPLACE 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;
|
||
|
||
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.
|
||
-- Ook voor export 'VERPL' is dit gehanteerd, dat is de eerste export van de facturen (verplichtingen),
|
||
-- voordat de geaccordeerde facturen worden geexporteerd (scansys)
|
||
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 := '651';
|
||
END IF;
|
||
|
||
IF v_user = 'PCHD'
|
||
THEN
|
||
v_adm := '650';
|
||
END IF;
|
||
|
||
IF v_user = 'PCHH'
|
||
THEN
|
||
v_adm := '100';
|
||
END IF;
|
||
|
||
IF v_user = 'PCHP'
|
||
THEN
|
||
v_adm := '250';
|
||
END IF;
|
||
|
||
IF v_user = 'PCHS'
|
||
THEN
|
||
v_adm := '300';
|
||
END IF;
|
||
|
||
IF v_user = 'PCHY'
|
||
THEN
|
||
v_adm := '150';
|
||
END IF;
|
||
|
||
IF v_user = 'PCHW'
|
||
THEN
|
||
v_adm := '655';
|
||
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;
|
||
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_export_exact (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'EXACT';
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_export_exact650 (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'EXACT650';
|
||
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_factuur_gegevens
|
||
(
|
||
fin_factuur_key,
|
||
opdracht_id,
|
||
fin_factuur_datum,
|
||
fin_factuur_nr,
|
||
prs_bedrijf_key_org,
|
||
prs_bedrijf_key_afw,
|
||
prs_bedrijf_key,
|
||
fin_factuurregel_omschrijving,
|
||
fin_factuurregel_totaal,
|
||
fin_factuurregel_btw,
|
||
fin_btwtabelwaarde_code,
|
||
fin_btwtabelwaarde_key,
|
||
fin_factuurregel_nr,
|
||
fin_factuurregel_key,
|
||
fin_factuur_debiteur_nr,
|
||
fin_factuur_opmerking,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
boekstuknummer,
|
||
project_nummer,
|
||
project_naam,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoort_refcode,
|
||
vk_prs_kostensoort_refcode,
|
||
prs_kostensoort_key,
|
||
prs_kostenplaats_key,
|
||
prs_kostenplaats_org,
|
||
mld_opdr_key,
|
||
cnt_contract_key,
|
||
bes_bestelopdr_key,
|
||
fin_factuur_statuses_key,
|
||
fin_factuur_statuses_org_key,
|
||
lev_kpn,
|
||
reknr,
|
||
kstdrcode,
|
||
administratie,
|
||
afwboekdatum
|
||
)
|
||
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),
|
||
f.fin_factuur_nr,
|
||
b_f.prs_bedrijf_key prs_bedrijf_key_afw,
|
||
COALESCE (b_c.prs_bedrijf_key,
|
||
COALESCE (b_o.prs_bedrijf_key, b_b.prs_bedrijf_key))
|
||
prs_bedrijf_key_org,
|
||
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,
|
||
COALESCE (
|
||
fr_btw.afw_btw_bedrag,
|
||
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)),
|
||
(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 fac_usrdata_code
|
||
FROM fin_kenmerkfactregel kfr, fac_usrdata ud
|
||
WHERE fin_kenmerk_key = 61
|
||
AND kfr.fin_factuurregel_key = fr.fin_factuurregel_key
|
||
AND fac.safe_to_number (fin_kenmerkfactregel_waarde) =
|
||
ud.fac_usrdata_key)
|
||
projectnummer,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fin_kenmerkfactregel kfr, fac_usrdata ud
|
||
WHERE fin_kenmerk_key = 61
|
||
AND kfr.fin_factuurregel_key = fr.fin_factuurregel_key
|
||
AND fac.safe_to_number (fin_kenmerkfactregel_waarde) =
|
||
ud.fac_usrdata_key)
|
||
projectnaam,
|
||
COALESCE (kr.prs_kostensoort_oms, k.prs_kostensoort_oms),
|
||
k.prs_kostensoort_refcode,
|
||
'Onbekend' vk_prs_kostensoort_refcode,
|
||
COALESCE (kr.prs_kostensoort_key, k.prs_kostensoort_key),
|
||
COALESCE (
|
||
(SELECT prs_kostenplaats_key
|
||
FROM prs_kostenplaats kpr, fin_kenmerkfactregel kfr
|
||
WHERE kfr.fin_kenmerk_key = 26
|
||
AND kfr.fin_factuurregel_key = fr.fin_factuurregel_key
|
||
AND fac.safe_to_number (fin_kenmerkfactregel_waarde) =
|
||
kpr.prs_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,
|
||
COALESCE (
|
||
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_org,
|
||
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,
|
||
lk.prs_kostenplaats_nr lev_kpn,
|
||
rn.reknr,
|
||
kd.kstdrcode,
|
||
(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
|
||
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 kfr.fin_factuurregel_key,
|
||
fac.safe_to_number (fin_kenmerkfactregel_waarde)
|
||
afw_btw_bedrag
|
||
FROM fin_kenmerkfactregel kfr
|
||
WHERE fin_kenmerk_key = 4) fr_btw, -- Afwijkend btwbedrag
|
||
prs_kostensoort k,
|
||
prs_kostensoort kr,
|
||
prs_kostensoortgrp kg,
|
||
prs_kostenplaats lk,
|
||
pchx_v_kenm_kstdrcode kd,
|
||
pchx_v_kenm_reknr rn
|
||
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 f.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||
AND k.prs_kostenplaats_key = lk.prs_kostenplaats_key(+)
|
||
AND k.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)
|
||
AND fr.prs_kostensoort_key = kr.prs_kostensoort_key(+)
|
||
AND fr.fin_factuurregel_key = kd.fin_factuurregel_key(+)
|
||
AND fr.fin_factuurregel_key = rn.fin_factuurregel_key(+)
|
||
AND fr.fin_factuurregel_key = fr_btw.fin_factuurregel_key(+)
|
||
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,
|
||
kostendrager,
|
||
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,
|
||
kstdrcode,
|
||
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,
|
||
kstdrcode,
|
||
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;
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_kenm_kstdrcode
|
||
(
|
||
fin_factuurregel_key,
|
||
kstdrcode
|
||
)
|
||
AS
|
||
SELECT fr1.fin_factuurregel_key,
|
||
COALESCE (
|
||
(SELECT fac_usrdata_code
|
||
FROM fin_kenmerkfactregel kfr1, fac_usrdata ud
|
||
WHERE fin_kenmerk_key = 25
|
||
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 = 22
|
||
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;
|
||
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_bron_export_exact_xml
|
||
(
|
||
bkstnr,
|
||
fact_oms25,
|
||
regel_oms25,
|
||
datum,
|
||
afw_datum,
|
||
crdnr,
|
||
projectnr,
|
||
projectnaam,
|
||
bedrag_txt,
|
||
bedrag,
|
||
bedrag_incl,
|
||
betaalref,
|
||
itemcode,
|
||
reknr,
|
||
kstdrcode,
|
||
kstplcode,
|
||
btw_code,
|
||
lev_kpn,
|
||
administratie,
|
||
fin_factuur_key
|
||
)
|
||
AS
|
||
SELECT (SELECT fin_kenmerkfactuur_waarde kf
|
||
FROM fin_kenmerkfactuur kf
|
||
WHERE kf.fin_factuur_key = fg.fin_factuur_key
|
||
AND kf.fin_kenmerk_key = 3) -- boekstuknummer
|
||
bkstnr,
|
||
REPLACE (fin_factuur_opmerking, ',', '') fact_oms25,
|
||
opdracht_id
|
||
|| ' - '
|
||
|| REPLACE (fin_factuurregel_omschrijving, ',', '')
|
||
regel_oms25,
|
||
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,
|
||
project_nummer,
|
||
project_naam,
|
||
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,
|
||
kstdrcode,
|
||
(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
|
||
FROM pchx_v_factuur_gegevens fg
|
||
WHERE fin_factuur_statuses_key = 6;
|
||
|
||
|
||
|
||
|
||
-- Procedure om alle facturen te exporteren naar exact voor de geselecteerde administratie.
|
||
CREATE OR REPLACE PROCEDURE pchx_select_exact_adm (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_administratie IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT bkstnr, datum, max(fact_oms25) fact_oms25
|
||
FROM pchx_v_bron_export_exact_xml
|
||
WHERE administratie = p_administratie
|
||
GROUP BY bkstnr, datum;
|
||
|
||
CURSOR c_sub (c_bkstnr VARCHAR2)
|
||
IS
|
||
SELECT *
|
||
FROM pchx_v_bron_export_exact_xml
|
||
WHERE administratie = p_administratie
|
||
AND bkstnr = c_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;
|
||
v_bestand VARCHAR2(12);
|
||
v_dagboeknr VARCHAR2(2);
|
||
|
||
BEGIN
|
||
|
||
v_order_count := 0;
|
||
v_amount_sum := 0;
|
||
v_amount_sum_incl := 0;
|
||
v_count := 0;
|
||
v_bestand := SUBSTR(p_applname, 1, 12);
|
||
|
||
-- Eerst 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_factuur_gegevens
|
||
WHERE fin_factuur_statuses_key = 6
|
||
AND administratie = p_administratie
|
||
);
|
||
|
||
|
||
-- header
|
||
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>');
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
-- bepalen dagboeknr
|
||
v_dagboeknr := SUBSTR(rec.bkstnr, 3,2);
|
||
|
||
v_count := 1; -- dummy
|
||
IF v_count <> 0
|
||
THEN
|
||
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;
|
||
FOR rec1 IN c_sub (rec.bkstnr)
|
||
LOOP
|
||
BEGIN
|
||
pchx.add_xml_row (v_bestand, '<FinEntryLine number="' || v_sub_count || '" subtype="T" type="N">');
|
||
pchx.add_xml_element (v_bestand, 'Date', COALESCE(rec1.afw_datum, rec1.datum));
|
||
pchx.add_xml_row (v_bestand, '<GLAccount code="' || xml.char_to_html(rec1.reknr) || '"/>');
|
||
IF pchx.get_user = 'PCHD' THEN
|
||
pchx.add_xml_row (v_bestand, '<Project code="' || rec1.projectnr || '" type="I" status="A">');
|
||
pchx.add_xml_element (v_bestand, 'Description', rec1.projectnaam);
|
||
pchx.add_xml_row (v_bestand, '</Project>');
|
||
END IF;
|
||
pchx.add_xml_element (v_bestand, 'Description', rec1.regel_oms25);
|
||
IF pchx.get_user = 'PCHD' or pchx.get_user = 'PCHS' or pchx.get_user = 'PCHP' or pchx.get_user = 'PCHY'
|
||
THEN
|
||
pchx.add_xml_row (v_bestand, '<Costcenter code="' || xml.char_to_html(rec1.kstplcode) || '"/>');
|
||
END IF;
|
||
-- LET OP: PCHA en PCHW gebruiken het projectcode veld om de kostenplaats te vullen in Exact
|
||
-- De Facilitor kostenplaats wordt bij deze accounts al gebruikt voor de klantkostenplaats.
|
||
IF pchx.get_user = 'PCHA' or pchx.get_user = 'PCHW'
|
||
THEN
|
||
pchx.add_xml_row (v_bestand, '<Costcenter code="' || xml.char_to_html(rec1.projectnr) || '"/>');
|
||
END IF;
|
||
IF pchx.get_user = 'PCHD'
|
||
THEN
|
||
pchx.add_xml_row (v_bestand, '<Costunit code="' || xml.char_to_html(rec1.kstdrcode) || '"/>');
|
||
END IF;
|
||
pchx.add_xml_row (v_bestand, '<Creditor number="' || xml.char_to_html(rec1.crdnr) || '"/>');
|
||
IF pchx.get_user = 'PCHD'
|
||
THEN
|
||
pchx.add_xml_row (v_bestand, '<Item code="' || xml.char_to_html(rec1.itemcode) || '"/>');
|
||
END IF;
|
||
pchx.add_xml_row (v_bestand, '<Amount>');
|
||
pchx.add_xml_element (v_bestand, 'Debit', rec1.bedrag_txt);
|
||
pchx.add_xml_row (v_bestand, '<VAT code="' || xml.char_to_html(rec1.btw_code) || '"/>');
|
||
pchx.add_xml_row (v_bestand, '</Amount>');
|
||
pchx.add_xml_row (v_bestand, '<Payment>');
|
||
pchx.add_xml_element (v_bestand, 'Reference', rec1.betaalref);
|
||
pchx.add_xml_element (v_bestand, 'InvoiceNumber', rec1.bkstnr);
|
||
pchx.add_xml_row (v_bestand, '</Payment>');
|
||
pchx.add_xml_row (v_bestand, '<FinReferences>');
|
||
pchx.add_xml_element (v_bestand, 'YourRef', rec1.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 + rec1.bedrag;
|
||
v_amount_sum_incl := v_amount_sum_incl + rec1.bedrag_incl;
|
||
END;
|
||
END LOOP;
|
||
pchx.add_xml_row (v_bestand, '</GLEntry>');
|
||
END IF;
|
||
END;
|
||
v_order_count := v_order_count + 1;
|
||
END LOOP;
|
||
|
||
pchx.add_xml_row (v_bestand, '</GLEntries>');
|
||
pchx.add_xml_row (v_bestand, '</eExact>');
|
||
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_exact650 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
pchx_select_exact_adm (p_applname, p_applrun, '650');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_select_exact (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
pchx_select_exact_adm (p_applname, p_applrun, pchx.get_administratienr);
|
||
END;
|
||
/
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - Export exact verwerk
|
||
-------------------------------------------------------------------------------
|
||
|
||
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
|
||
|| ';'
|
||
|| project_nummer
|
||
|| ';'
|
||
|| 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_exact650 (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT result, result_order
|
||
FROM pchx_v_exp_verwerk_exact_adm
|
||
WHERE administratie = '650';
|
||
|
||
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;
|
||
|
||
|
||
-- Procedure om alle geexporteerde facturen naar status verwerkt te zetten.
|
||
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;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_export_verwerk_exact650 (
|
||
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, '650');
|
||
END;
|
||
/
|
||
|
||
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);
|
||
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,
|
||
' ')
|
||
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://vbwnlms326/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;
|
||
/
|
||
|
||
|
||
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_verwijder
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_key, prs_bedrijf_naam, prs_bedrijf_verwijder
|
||
FROM prs_bedrijf b
|
||
WHERE prs_bedrijf_intern IS NULL;
|
||
|
||
|
||
-------------------------------------------------------------------------------
|
||
-- EXPORTFUNCTIE - Export VERPLICHTINGEN EN 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 bkstnr,
|
||
datum,
|
||
MAX (fact_oms25) fact_oms25,
|
||
administratie,
|
||
crdnr
|
||
FROM pchx_v_bron_export_exact_xml f
|
||
WHERE administratie = 650
|
||
AND fin_factuur_key IN
|
||
(SELECT fac_tracking_refkey
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST10'
|
||
AND t.fac_tracking_refkey = fin_factuur_key)
|
||
GROUP BY bkstnr,
|
||
datum,
|
||
administratie,
|
||
crdnr;
|
||
|
||
CURSOR c_sub (c_bkstnr VARCHAR2)
|
||
IS
|
||
SELECT *
|
||
FROM pchx_v_bron_export_exact_xml
|
||
WHERE administratie = p_administratie AND bkstnr = c_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;
|
||
v_bestand VARCHAR2 (30);
|
||
v_dagboeknr VARCHAR2 (2);
|
||
BEGIN
|
||
v_order_count := 0;
|
||
v_amount_sum := 0;
|
||
v_amount_sum_incl := 0;
|
||
v_count := 0;
|
||
v_bestand := SUBSTR (p_applname, 1, 12);
|
||
|
||
-- Eerst 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_factuur_gegevens
|
||
WHERE fin_factuur_statuses_key = 6
|
||
AND administratie = p_administratie);
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
-- bepalen dagboeknr & boekstuknr
|
||
v_dagboeknr := SUBSTR (rec.bkstnr, 3, 2);
|
||
v_bestand :=
|
||
TO_CHAR( rec.administratie
|
||
|| rec.bkstnr
|
||
|| '##'
|
||
|| SUBSTR (p_applname, 1, 12));
|
||
|
||
v_count := 1; -- dummy
|
||
|
||
IF v_count <> 0
|
||
THEN
|
||
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) || '"/>');
|
||
|
||
FOR rec1 IN c_sub (rec.bkstnr)
|
||
LOOP
|
||
BEGIN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<FinEntryLine number="'
|
||
|| v_sub_count
|
||
|| '" subtype="T" type="N">');
|
||
pchx.add_xml_element (
|
||
v_bestand,
|
||
'Date',
|
||
COALESCE (rec1.afw_datum, rec1.datum));
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<GLAccount code="'
|
||
|| xml.char_to_html (rec1.reknr)
|
||
|| '"/>');
|
||
|
||
IF pchx.get_user = 'PCHD'
|
||
THEN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Project code="'
|
||
|| rec1.projectnr
|
||
|| '" type="I" status="A">');
|
||
pchx.add_xml_element (v_bestand,
|
||
'Description',
|
||
rec1.projectnaam);
|
||
pchx.add_xml_row (v_bestand, '</Project>');
|
||
END IF;
|
||
|
||
pchx.add_xml_element (v_bestand,
|
||
'Description',
|
||
rec1.regel_oms25);
|
||
|
||
IF pchx.get_user = 'PCHD'
|
||
OR pchx.get_user = 'PCHS'
|
||
OR pchx.get_user = 'PCHP'
|
||
OR pchx.get_user = 'PCHY'
|
||
THEN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Costcenter code="'
|
||
|| xml.char_to_html (rec1.kstplcode)
|
||
|| '"/>');
|
||
END IF;
|
||
|
||
-- LET OP: PCHA en PCHW gebruiken het projectcode veld om de kostenplaats te vullen in Exact
|
||
-- De Facilitor kostenplaats wordt bij deze accounts al gebruikt voor de klantkostenplaats.
|
||
IF pchx.get_user = 'PCHA' OR pchx.get_user = 'PCHW'
|
||
THEN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Costcenter code="'
|
||
|| xml.char_to_html (rec1.projectnr)
|
||
|| '"/>');
|
||
END IF;
|
||
|
||
IF pchx.get_user = 'PCHD'
|
||
THEN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Costunit code="'
|
||
|| xml.char_to_html (rec1.kstdrcode)
|
||
|| '"/>');
|
||
END IF;
|
||
|
||
IF pchx.get_user = 'PCHD'
|
||
THEN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Item code="'
|
||
|| xml.char_to_html (rec1.itemcode)
|
||
|| '"/>');
|
||
END IF;
|
||
|
||
pchx.add_xml_row (v_bestand, '<Amount>');
|
||
pchx.add_xml_element (v_bestand, 'Debit', rec1.bedrag_txt);
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<VAT code="'
|
||
|| xml.char_to_html (rec1.btw_code)
|
||
|| '"/>');
|
||
pchx.add_xml_row (v_bestand, '</Amount>');
|
||
pchx.add_xml_row (v_bestand, '<Payment>');
|
||
pchx.add_xml_element (v_bestand,
|
||
'Reference',
|
||
rec1.betaalref);
|
||
pchx.add_xml_element (v_bestand,
|
||
'InvoiceNumber',
|
||
rec1.bkstnr);
|
||
pchx.add_xml_row (v_bestand, '</Payment>');
|
||
pchx.add_xml_row (v_bestand, '<FinReferences>');
|
||
pchx.add_xml_element (v_bestand, 'YourRef', rec1.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 + rec1.bedrag;
|
||
v_amount_sum_incl := v_amount_sum_incl + rec1.bedrag_incl;
|
||
END;
|
||
END LOOP;
|
||
|
||
pchx.add_xml_row (v_bestand, '</GLEntry>');
|
||
pchx.add_xml_row (v_bestand, '</GLEntries>');
|
||
pchx.add_xml_row (v_bestand, '</eExact>');
|
||
END IF;
|
||
END;
|
||
|
||
v_order_count := v_order_count + 1;
|
||
END LOOP;
|
||
|
||
|
||
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);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_bron_verplichtingen_xml
|
||
(
|
||
bkstnr,
|
||
fact_oms25,
|
||
regel_oms25,
|
||
datum,
|
||
afw_datum,
|
||
crdnr,
|
||
projectnr,
|
||
projectnaam,
|
||
bedrag_txt,
|
||
bedrag,
|
||
bedrag_incl,
|
||
betaalref,
|
||
itemcode,
|
||
reknr,
|
||
kstdrcode,
|
||
kstplcode,
|
||
btw_code,
|
||
lev_kpn,
|
||
administratie,
|
||
fin_factuur_key,
|
||
track_verpl
|
||
)
|
||
AS
|
||
SELECT (SELECT fin_kenmerkfactuur_waarde kf
|
||
FROM fin_kenmerkfactuur kf
|
||
WHERE kf.fin_factuur_key = fg.fin_factuur_key
|
||
AND kf.fin_kenmerk_key = 3) -- boekstuknummer
|
||
bkstnr,
|
||
REPLACE (fin_factuur_opmerking, ',', '') fact_oms25,
|
||
opdracht_id
|
||
|| ' - '
|
||
|| REPLACE (fin_factuurregel_omschrijving, ',', '')
|
||
regel_oms25,
|
||
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,
|
||
project_nummer,
|
||
project_naam,
|
||
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,
|
||
kstdrcode,
|
||
(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,
|
||
(SELECT fac_tracking_datum
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_tracking_refkey = fin_factuur_key
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST10')
|
||
track_verpl
|
||
FROM pchx_v_factuur_gegevens fg
|
||
WHERE fin_factuur_statuses_key between 1 and 6;
|
||
|
||
|
||
CREATE OR REPLACE VIEW pchx_v_export_verpl
|
||
(
|
||
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 = 'VERPL';
|
||
|
||
|
||
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 = 'SCANSYS';
|
||
|
||
|
||
/* Formatted on 12-4-2019 12:02:45 (QP5 v5.136.908.31019) */
|
||
/* Formatted on 12-4-2019 13:41:05 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE pchx_select_verpl_adm (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_administratie IN VARCHAR2)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT bkstnr,
|
||
datum,
|
||
MAX (fact_oms25) fact_oms25,
|
||
administratie,
|
||
crdnr
|
||
FROM pchx_v_bron_verplichtingen_xml
|
||
WHERE administratie = 650 AND track_verpl IS NULL
|
||
GROUP BY bkstnr,
|
||
datum,
|
||
administratie,
|
||
crdnr;
|
||
|
||
CURSOR c_sub
|
||
IS
|
||
SELECT *
|
||
FROM pchx_v_bron_verplichtingen_xml
|
||
WHERE administratie = p_administratie AND track_verpl IS NULL;
|
||
|
||
v_order_count NUMBER;
|
||
v_amount_sum NUMBER (10, 2);
|
||
v_amount_sum_incl NUMBER (10, 2);
|
||
v_count NUMBER;
|
||
v_sub_count NUMBER;
|
||
v_bestand VARCHAR2 (30);
|
||
v_dagboeknr VARCHAR2 (2);
|
||
v_applname VARCHAR2 (2);
|
||
BEGIN
|
||
--Eerst maar de resultaten van vorige export opruimen
|
||
|
||
v_order_count := 0;
|
||
v_amount_sum := 0;
|
||
v_amount_sum_incl := 0;
|
||
v_count := 0;
|
||
v_bestand := SUBSTR (p_applname, 1, 12);
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
-- bepalen dagboeknr & boekstuknr
|
||
-- We zetten hier administratie, boekstuknummer en ## voor,
|
||
-- dit is nodig omdat de we bij het vullen van FAC_RAPPORT een toevoeging moeten hebben om
|
||
-- de unieke bestandsnamen te kunnen bepalen.
|
||
-- In add_xml_row en add_xml_element filteren we dit weer, zodat dit niet in de node komt.
|
||
v_dagboeknr := SUBSTR (rec.bkstnr, 3, 2);
|
||
v_bestand :=
|
||
TO_CHAR( rec.administratie
|
||
|| rec.bkstnr
|
||
|| '##'
|
||
|| SUBSTR (p_applname, 1, 12));
|
||
|
||
v_count := 1; -- dummy
|
||
|
||
IF v_count <> 0
|
||
THEN
|
||
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) || '"/>');
|
||
|
||
FOR rec1 IN c_sub
|
||
LOOP
|
||
IF rec1.bkstnr = rec.bkstnr
|
||
THEN
|
||
BEGIN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<FinEntryLine number="'
|
||
|| v_sub_count
|
||
|| '" subtype="T" type="N">');
|
||
pchx.add_xml_element (
|
||
v_bestand,
|
||
'Date',
|
||
COALESCE (rec1.afw_datum, rec1.datum));
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<GLAccount code="'
|
||
|| xml.char_to_html (rec1.reknr)
|
||
|| '"/>');
|
||
|
||
IF pchx.get_user = 'PCHD'
|
||
THEN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Project code="'
|
||
|| rec1.projectnr
|
||
|| '" type="I" status="A">');
|
||
pchx.add_xml_element (v_bestand,
|
||
'Description',
|
||
rec1.projectnaam);
|
||
pchx.add_xml_row (v_bestand, '</Project>');
|
||
END IF;
|
||
|
||
pchx.add_xml_element (v_bestand,
|
||
'Description',
|
||
rec1.regel_oms25);
|
||
|
||
IF pchx.get_user = 'PCHD'
|
||
OR pchx.get_user = 'PCHS'
|
||
OR pchx.get_user = 'PCHP'
|
||
OR pchx.get_user = 'PCHY'
|
||
THEN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Costcenter code="'
|
||
|| xml.char_to_html (rec1.kstplcode)
|
||
|| '"/>');
|
||
END IF;
|
||
|
||
-- LET OP: PCHA en PCHW gebruiken het projectcode veld om de kostenplaats te vullen in Exact
|
||
-- De Facilitor kostenplaats wordt bij deze accounts al gebruikt voor de klantkostenplaats.
|
||
IF pchx.get_user = 'PCHA' OR pchx.get_user = 'PCHW'
|
||
THEN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Costcenter code="'
|
||
|| xml.char_to_html (rec1.projectnr)
|
||
|| '"/>');
|
||
END IF;
|
||
|
||
IF pchx.get_user = 'PCHD'
|
||
THEN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Costunit code="'
|
||
|| xml.char_to_html (rec1.kstdrcode)
|
||
|| '"/>');
|
||
END IF;
|
||
|
||
IF pchx.get_user = 'PCHD'
|
||
THEN
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<Item code="'
|
||
|| xml.char_to_html (rec1.itemcode)
|
||
|| '"/>');
|
||
END IF;
|
||
|
||
pchx.add_xml_row (v_bestand, '<Amount>');
|
||
pchx.add_xml_element (v_bestand,
|
||
'Debit',
|
||
rec1.bedrag_txt);
|
||
pchx.add_xml_row (
|
||
v_bestand,
|
||
'<VAT code="'
|
||
|| xml.char_to_html (rec1.btw_code)
|
||
|| '"/>');
|
||
pchx.add_xml_row (v_bestand, '</Amount>');
|
||
pchx.add_xml_row (v_bestand, '<Payment>');
|
||
pchx.add_xml_element (v_bestand,
|
||
'Reference',
|
||
rec1.betaalref);
|
||
pchx.add_xml_element (v_bestand,
|
||
'InvoiceNumber',
|
||
rec1.bkstnr);
|
||
pchx.add_xml_row (v_bestand, '</Payment>');
|
||
pchx.add_xml_row (v_bestand, '<FinReferences>');
|
||
pchx.add_xml_element (v_bestand,
|
||
'YourRef',
|
||
rec1.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 + rec1.bedrag;
|
||
v_amount_sum_incl := v_amount_sum_incl + rec1.bedrag_incl;
|
||
|
||
INSERT INTO fac_tracking (fac_tracking_refkey, fac_srtnotificatie_key, fac_tracking_oms)
|
||
SELECT rec1.fin_factuur_key,
|
||
fac_srtnotificatie_key,
|
||
'Verplichting verzonden naar Scansys'
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST10'
|
||
AND rec1.fin_factuur_key NOT IN
|
||
(SELECT t.fac_tracking_refkey
|
||
FROM fac_tracking t,
|
||
fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key =
|
||
sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code =
|
||
'CUST10'
|
||
AND t.fac_tracking_refkey =
|
||
rec1.fin_factuur_key);
|
||
END;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
pchx.add_xml_row (v_bestand, '</GLEntry>');
|
||
pchx.add_xml_row (v_bestand, '</GLEntries>');
|
||
pchx.add_xml_row (v_bestand, '</eExact>');
|
||
END IF;
|
||
END;
|
||
|
||
v_order_count := v_order_count + 1;
|
||
END LOOP;
|
||
|
||
fac.writelog (
|
||
p_applname,
|
||
'S',
|
||
'Scansys verplichtingen 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_verpl (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
pchx_select_verpl_adm (p_applname, p_applrun, pchx.get_administratienr);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE pchx_export_verpl (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
v_errormsg VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
-- Verwerk actie direct starten na de export
|
||
NULL;
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
--------------------------------------------------------------------------------------
|
||
-- 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_org = 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_org = 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;
|
||
|
||
|
||
|
||
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;
|
||
|
||
|
||
-- 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_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;
|
||
|
||
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);
|
||
|
||
SELECT MAX (mld_typeopdr_key)
|
||
INTO v_typeopdr_key
|
||
FROM mld_typeopdr ot
|
||
WHERE UPPER (ot.mld_typeopdr_omschrijving) =
|
||
UPPER (v_typeopdr_omschrijving);
|
||
|
||
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);
|
||
|
||
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,
|
||
v_bedrijf_opmerking,
|
||
v_bedrijf_opmerking2,
|
||
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);
|
||
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;
|
||
|
||
|
||
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_errormsg VARCHAR (200);
|
||
v_errorhint VARCHAR (200);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_bedrijf_key_pchd := rec.prs_bedrijf_key;
|
||
|
||
SELECT prs_bedrijf_key
|
||
INTO v_bedrijf_key
|
||
FROM prs_bedrijf
|
||
WHERE prs_leverancier_nr = rec.prs_leverancier_nr;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO prs_bedrijf (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)
|
||
VALUES (rec.prs_bedrijf_naam,
|
||
rec.prs_bedrijf_post_adres,
|
||
rec.prs_bedrijf_post_postcode,
|
||
rec.prs_bedrijf_post_plaats,
|
||
rec.prs_bedrijf_post_land,
|
||
rec.prs_bedrijf_bezoek_adres,
|
||
rec.prs_bedrijf_bezoek_postcode,
|
||
rec.prs_bedrijf_bezoek_plaats,
|
||
rec.prs_bedrijf_bezoek_land,
|
||
rec.prs_bedrijf_telefoon,
|
||
rec.prs_bedrijf_fax,
|
||
rec.prs_bedrijf_telefoon2,
|
||
rec.prs_bedrijf_contact_persoon,
|
||
rec.prs_bedrijf_contact_telefoon,
|
||
rec.prs_bedrijf_contact_fax,
|
||
rec.prs_bedrijf_opmerking,
|
||
rec.prs_bedrijf_opmerking2,
|
||
rec.prs_bedrijf_uurloon,
|
||
rec.prs_leverancier_nr,
|
||
rec.prs_overeenkomst_nr,
|
||
rec.prs_overeenkomst_datum,
|
||
rec.prs_bedrijf_email,
|
||
rec.prs_bedrijf_order_confirm,
|
||
rec.prs_bedrijf_image_loc,
|
||
rec.prs_bedrijf_details_loc,
|
||
rec.prs_bedrijf_xmldetails_loc,
|
||
rec.prs_bedrijf_xmlcatalogus_loc,
|
||
rec.prs_bedrijf_bes_limiet,
|
||
rec.prs_bedrijf_bes_kosten,
|
||
rec.prs_bedrijf_aanmaak,
|
||
rec.prs_bedrijf_verwijder,
|
||
rec.prs_bedrijf_leverancier,
|
||
rec.prs_bedrijf_uitvoerende,
|
||
rec.prs_bedrijf_contract,
|
||
rec.prs_bedrijf_intern,
|
||
rec.prs_bedrijf_huurder,
|
||
rec.prs_bedrijf_bezoeker,
|
||
rec.prs_bedrijf_ingids,
|
||
rec.prs_bedrijf_bes_factor,
|
||
rec.prs_relatietype_key)
|
||
RETURNING prs_bedrijf_key INTO v_bedrijf_key;
|
||
|
||
FOR rec1 IN c_addr(v_bedrijf_key_pchd)
|
||
LOOP
|
||
INSERT INTO prs_bedrijfadres (prs_bedrijf_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,
|
||
rec1.prs_bedrijfadres_type,
|
||
rec1.mld_typeopdr_key,
|
||
rec1.prs_bedrijfadres_url,
|
||
rec1.prs_bedrijfadres_ordermode,
|
||
rec1.prs_bedrijfadres_certificate,
|
||
rec1.prs_bedrijfadres_xsl,
|
||
rec1.prs_bedrijfadres_ext,
|
||
rec1.prs_bedrijfadres_username,
|
||
rec1.prs_bedrijfadres_password,
|
||
rec1.prs_bedrijfadres_attachfile,
|
||
rec1.prs_bedrijfadres_flexfiles,
|
||
rec1.prs_bedrijfadres_encoding,
|
||
rec1.prs_bedrijfadres_authmethod,
|
||
rec1.prs_bedrijfadres_soapversion,
|
||
rec1.prs_bedrijfadres_soapaction,
|
||
rec1.prs_bedrijfadres_lockuser_key,
|
||
rec1.prs_bedrijfadres_locksecret,
|
||
rec1.prs_bedrijfadres_lockexpire);
|
||
|
||
END LOOP;
|
||
|
||
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;
|
||
/
|
||
|
||
------ 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 |