YAXX#89951 Wijziging notificatie CUST92: tekst toevoegen en verzenddoel wijzigen

YAXX#90309 Correctie en wijziging automatische goedkeuring contractfacturen
YAXX#88771 Koppeling Facilitor - Exact
YAXX#89542 Uitbreiding offerteproces in Purchase to Pay behandelen
YAXX#89944 Filter 'type factuur' rapportkosten verwijderen

svn path=/Customer/trunk/; revision=70232
This commit is contained in:
Arthur Egberink
2025-09-08 07:23:54 +00:00
parent 60ee4a31d5
commit 3237e7912c

View File

@@ -27,6 +27,11 @@ CREATE OR REPLACE PACKAGE VBXX
AS
FUNCTION get_user RETURN VARCHAR2;
FUNCTION get_kenmerk_key (p_module IN VARCHAR2,
p_refkey IN NUMBER,
p_kenmerk_code IN VARCHAR2,
p_niveau IN VARCHAR2 DEFAULT NULL) RETURN NUMBER;
PROCEDURE set_opslag_perc (p_opdr_key IN NUMBER);
@@ -71,6 +76,7 @@ AS
FUNCTION matchfactuur (pfactuur_key IN NUMBER)
RETURN NUMBER;
PROCEDURE checkopdracht (p_opdr_key IN NUMBER);
END;
/
@@ -83,6 +89,38 @@ AS
RETURN SUBSTR (USER, 1, 4);
END;
FUNCTION get_kenmerk_key (p_module IN VARCHAR2,
p_refkey IN NUMBER,
p_kenmerk_code IN VARCHAR2,
p_niveau IN VARCHAR2 DEFAULT NULL) RETURN NUMBER
AS
kkey NUMBER(10);
BEGIN
CASE
WHEN p_module = 'OPD'
THEN
SELECT mld_kenmerk_key
INTO kkey
FROM mld_kenmerk k, mld_srtkenmerk sk, mld_opdr o
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code LIKE p_kenmerk_code
AND o.mld_typeopdr_key = k.mld_typeopdr_key
AND o.mld_opdr_key = p_refkey;
WHEN p_module = 'MLD'
THEN
kkey := NULL; -- Nog niet geimplementeerd.
ELSE
kkey := NULL;
END CASE;
RETURN kkey;
EXCEPTION WHEN NO_DATA_FOUND
THEN
RETURN NULL;
END;
PROCEDURE set_opslag_perc (p_opdr_key IN NUMBER)
AS
@@ -756,6 +794,7 @@ AS
-- xxx_disc_params_factmatchmode = 2 of 3 weg matching. Contracten kent deze optie niet dus altijd 2 weg.
IF v_contract_key IS NOT NULL
THEN
v_errorhint := 'Zoek contractgegevens. Scope moet wel op gebouw staan!';
SELECT l.alg_locatie_key, d.alg_regio_key, cnt_disc_params_factuurappr, 2 cnt_disc_params_factmatchmode, 1 geleverd
INTO v_locatie_key, v_regio_key, v_factuurappr, v_factmatchmode, v_geleverd
FROM (
@@ -779,6 +818,7 @@ AS
IF v_bestelopdr_key IS NOT NULL
THEN
v_errorhint := 'Zoek bestelopdrachtgegevens.';
SELECT l.alg_locatie_key, d.alg_regio_key, bes_disc_params_factuurappr, bes_disc_params_factmatchmode, DECODE(bes_bestelopdr_status, 6, 1, 7, 1, 0) geleverd -- 6 Geleverd, 7 verwerkt
INTO v_locatie_key, v_regio_key, v_factuurappr, v_factmatchmode, v_geleverd
FROM (
@@ -813,6 +853,7 @@ AS
IF v_opdr_key IS NOT NULL
THEN
v_errorhint := 'Zoek opdrachtgegevens.';
SELECT l.alg_locatie_key, d.alg_regio_key, mld_disc_params_factuurappr, mld_disc_params_factmatchmode, DECODE(mld_statusopdr_key, 6, 1, 7, 1, 8, 1, 0) -- 6 afgemeld, 7 verwerkt, 8 afgerond
INTO v_locatie_key, v_regio_key, v_factuurappr, v_factmatchmode, v_geleverd
FROM (
@@ -863,7 +904,7 @@ AS
v_factuur_match := vbxx.matchfactuur(p_factuur_key);
fac.writelog ('VBXX.fin_set_approver', 'I', 'Fact: ' || p_factuur_key || ' v_factuurappr: ' || v_factuurappr || ' v_factmatchmode: ' || v_factmatchmode || ' v_geleverd: ' || v_geleverd, NULL);
-- geen goedkeuring nodig
IF v_kenmerk_fg = 1 AND v_factuur_match <> -1 -- Als de factuur matched en 'Facturen zonder afwijking automatisch goedkeuren' staat aan bij de regio
IF v_contract_key IS NULL AND v_kenmerk_fg = 1 AND v_factuur_match <> -1 -- Als de factuur matched en 'Facturen zonder afwijking automatisch goedkeuren' staat aan bij de regio. Contracten moeten altijd goedgekeurd worden.
THEN
IF v_factuurappr = 1 AND (v_factmatchmode = 2 OR (v_factmatchmode = 3 AND v_geleverd = 1))
THEN
@@ -1500,6 +1541,115 @@ AS
RETURN retval;
END;
PROCEDURE checkopdracht (p_opdr_key IN NUMBER)
AS
v_kenmerk_key MLD_KENMERK.MLD_KENMERK_KEY%TYPE;
v_typeopdr_code MLD_TYPEOPDR.MLD_TYPEOPDR_CODE%TYPE;
v_typeopdr_key MLD_TYPEOPDR.MLD_TYPEOPDR_KEY%TYPE;
v_statusopdr_key MLD_OPDR.MLD_STATUSOPDR_KEY%TYPE;
v_melding_key MLD_OPDR.MLD_MELDING_KEY%TYPE;
v_kosten NUMBER;
v_verkoopprijs NUMBER;
v_klantoffertelimiet NUMBER;
v_regio_key ALG_REGIO.ALG_REGIO_KEY%TYPE;
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
-- Controleer of de status van de offerteaanvraag afgemeld is
v_errorhint := 'Controleer of de status van de offerteaanvraag afgemeld is';
SELECT ot.mld_typeopdr_code, ot.mld_typeopdr_key, o.mld_statusopdr_key, o.mld_melding_key, d.alg_regio_key
INTO v_typeopdr_code, v_typeopdr_key, v_statusopdr_key, v_melding_key, v_regio_key
FROM mld_opdr o, mld_typeopdr ot, mld_melding m, alg_locatie l, alg_district d
WHERE o.mld_typeopdr_key = ot.mld_typeopdr_key
AND o.mld_opdr_key = p_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_alg_locatie_key = l.alg_locatie_key (+)
AND l.alg_district_key = d.alg_district_key(+);
dbms_output.put_line ('v_typeopdr_code:' || v_typeopdr_code || ' - v_statusopdr_key:' || v_statusopdr_key || ' - v_regio_key:' || v_regio_key);
IF v_typeopdr_code LIKE 'OFFERTEAANVRAAG%' AND v_statusopdr_key IN (5,8) -- Toegekend, Geaccepteerd (Hookfunctie werkt niet op afmelden melding)
THEN
/*
SELECT mld_kenmerk_key
INTO v_kenmerk_key
FROM mld_kenmerk k, mld_srtkenmerk sk
WHERE k.mld_typeopdr_key = v_typeopdr_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code LIKE 'VERKOOPPRIJS';*/
v_errorhint := 'Haal de verkoopprijs op';
v_kenmerk_key := VBXX.get_kenmerk_key('OPD', p_opdr_key, 'VERKOOPPRIJS');
IF v_kenmerk_key IS NOT NULL
THEN
v_verkoopprijs := FAC.safe_to_number (FLX.getflex('OPD', v_kenmerk_key, p_opdr_key, 1));
END IF;
dbms_output.put_line ('v_verkoopprijs:' || v_verkoopprijs);
IF v_verkoopprijs IS NOT NULL
THEN
-- Zoek het kenmerk van de eenmalige kosten bij de melding.
v_errorhint := 'Zoek het kenmerk van de eenmalige kosten bij de melding.';
SELECT mld_kenmerk_key
INTO v_kenmerk_key
FROM mld_kenmerk k, mld_srtkenmerk sk, mld_melding m, mld_stdmelding std, mld_discipline d
WHERE m.mld_melding_key = v_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 = k.mld_stdmelding_key
AND k.mld_kenmerk_niveau = 'T' -- Vakgroeptype
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code LIKE 'TOTAALEENMALIGEKOSTEN';
dbms_output.put_line ('v_kenmerk_key eenmalige kosten:' || v_kenmerk_key);
v_kosten := FAC.safe_to_number (FLX.getflex('MLD', v_kenmerk_key, v_melding_key, 1));
dbms_output.put_line ('v_kosten:' || v_kosten);
--IF v_kosten IS NULL
--THEN
FLX.setflex('MLD', v_kenmerk_key, v_melding_key, v_verkoopprijs);
--END IF;
v_errorhint := 'Bepaal de limiet voor klantoffertes (regio)';
SELECT alg_kenmerk_key
INTO v_kenmerk_key
FROM alg_kenmerk
WHERE alg_kenmerk_verwijder IS NULL
AND alg_kenmerk_code = 'LIMIETKLANTOFFERTE';
dbms_output.put_line ('v_kenmerk_key limiet klant offerte:' || v_kenmerk_key);
v_klantoffertelimiet := FAC.safe_to_number(FLX.getflex('ALG', v_kenmerk_key, v_regio_key, 'E', 1));
dbms_output.put_line ('v_klantoffertelimiet:' || v_klantoffertelimiet);
IF v_klantoffertelimiet IS NOT NULL AND v_klantoffertelimiet < v_verkoopprijs
THEN
v_errorhint := 'Voeg de waarschuwing toe bij de opdracht.';
v_kenmerk_key := VBXX.get_kenmerk_key('OPD', p_opdr_key, 'WAARSCHUWINGKLANTLIM');
dbms_output.put_line ('v_kenmerk_key waarschuwing:' || v_kenmerk_key);
IF v_kenmerk_key IS NOT NULL
THEN
FLX.setflex('OPD', v_kenmerk_key, p_opdr_key, 'Waarde van de offerte is hoger dan de vrijstelling van de klant. Eerst klantgoedkeuring aanvragen via de melding.');
END IF;
END IF;
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog ('VBXX.checkopdracht', 'E', SUBSTR (v_errormsg, 1, 1000), v_errorhint || ' - opdracht_key:' || p_opdr_key);
END;
END;
/
@@ -4283,28 +4433,7 @@ CREATE OR REPLACE VIEW vbxx_v_noti_offerte_goedk
xkey
)
AS
WITH
oap_rechten
AS
(SELECT gg.prs_perslid_key, ins_discipline_key, gr.fac_gebruiker_alg_level_read alg_level_read
FROM fac_functie f,
fac_groeprechten gr,
fac_groep g,
fac_gebruikersgroep gg
WHERE f.fac_functie_code = 'WEB_ORDBOF'
AND f.fac_functie_key = gr.fac_functie_key
AND gr.fac_groep_key = g.fac_groep_key
AND g.fac_groep_key = gg.fac_groep_key
AND (gg.prs_perslid_key, gr.ins_discipline_key) IN
(SELECT gg1.prs_perslid_key, gr1.ins_discipline_key
FROM fac_functie f1,
fac_groeprechten gr1,
fac_groep g1,
fac_gebruikersgroep gg1
WHERE f1.fac_functie_code = 'WEB_ORDOAP'
AND f1.fac_functie_key = gr1.fac_functie_key
AND gr1.fac_groep_key = g1.fac_groep_key
AND g1.fac_groep_key = gg1.fac_groep_key)),
WITH
ftracking
AS
( SELECT o.mld_melding_key
@@ -4334,22 +4463,20 @@ AS
AND o.mld_melding_key = o2.mld_melding_key)
GROUP BY o.mld_melding_key)
SELECT NULL,
oap.prs_perslid_key,
g.prs_perslid_key_verantw,
'Offerte(s) m.b.t. melding ' || m.mld_melding_key || ' zijn afgemeld en dienen beoordeeld te worden',
'CUST92',
m.mld_melding_key,
NULL
FROM mld_melding m,
mld_stdmelding std,
oap_rechten oap,
ftracking ft2,
fac_v_my_locations ml
alg_gebouw g,
alg_v_onroerendgoed aog
WHERE m.mld_melding_key = ft2.mld_melding_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = oap.ins_discipline_key
AND alg_level_read = ml.niveau
AND ml.prs_perslid_key = oap.prs_perslid_key
AND ml.alg_locatie_key = m.mld_alg_locatie_key;
AND mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
AND aog.alg_gebouw_key = g.alg_gebouw_key;
--
-- INKOOPFACTUREN RICHTING EXACT
@@ -4606,7 +4733,8 @@ CREATE OR REPLACE VIEW vbxx_v_bron_export_exact_xml
fin_factuur_debiteur_nr, -- crediteur debiteurnummer
alg_district_key,
alg_regio_key,
fin_factuur_boekmaand
fin_factuur_boekmaand,
fin_factuur_statuses_key
)
AS
SELECT fin_factuur_key,
@@ -4641,7 +4769,8 @@ AS
fin_factuur_debiteur_nr,
alg_district_key,
alg_regio_key,
fin_factuur_boekmaand
fin_factuur_boekmaand,
fin_factuur_statuses_key
FROM ( SELECT g.fin_factuur_key,
opdracht_id,
fin_factuur_datum,
@@ -4666,7 +4795,8 @@ AS
g.afw_kstdrcode,
g.alg_district_key,
g.alg_regio_key,
g.typefactuur
g.typefactuur,
g.fin_factuur_statuses_key
FROM vbxx_v_factuur_gegevens g,
vbxx_exp_factuur e
WHERE fin_factuur_statuses_key = 6
@@ -4692,7 +4822,316 @@ AS
g.afw_kstdrcode,
g.alg_district_key,
g.alg_regio_key,
g.typefactuur) fg,
g.typefactuur,
g.fin_factuur_statuses_key) fg,
prs_bedrijf b
WHERE fg.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_leverancier_nr IS NOT NULL;
-- Views tbv de API koppeling met Exact
CREATE OR REPLACE VIEW vbxx_v_factuur_gegevens_api
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)
|| DECODE (cnt_contract_versie, NULL, NULL, '.' || cnt_contract_versie))
opdracht_id,
f.fin_factuur_datum,
f.fin_factuur_nr,
COALESCE (b_c.prs_bedrijf_key, COALESCE (b_o.prs_bedrijf_key, b_b.prs_bedrijf_key))
prs_bedrijf_key,
DECODE (
(SELECT prs_kenmerklink_waarde
FROM prs_kenmerklink kl, prs_kenmerk k
WHERE kl.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_code = 'ONDERDEELVEBEGO'
AND k.prs_kenmerk_verwijder IS NULL
AND kl.prs_link_key =
COALESCE (b_c.prs_bedrijf_key, COALESCE (b_o.prs_bedrijf_key, b_b.prs_bedrijf_key))),
'1', 63,
62)
dagboek,
fr.fin_factuurregel_totaal,
ROUND (
fr.fin_factuurregel_totaal
* DECODE (btw.fin_btwtabelwaarde_verlegd, 1, 0, btw.fin_btwtabelwaarde_perc / 100),
2)
fin_factuurregel_btw,
btw.fin_btwtabelwaarde_code,
btw.fin_btwtabelwaarde_key,
fr.fin_factuurregel_nr,
fr.fin_factuurregel_key,
f.fin_factuur_debiteur_nr,
f.fin_factuur_boekmaand,
prs_kostensoort_oms,
k.prs_kostensoort_refcode,
k.prs_kostensoort_opmerking,
k.prs_kostensoort_key,
g.alg_gebouw_code,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc, cnt_kenmerk ck
WHERE kc.cnt_contract_key = c.cnt_contract_key
AND kc.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND ck.cnt_kenmerk_code = 'EXACT_CODE'
AND ck.cnt_kenmerk_verwijder IS NULL)
exact_code_contract,
(SELECT alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk aogk, alg_kenmerk gk
WHERE alg_onrgoed_key = g.alg_gebouw_key
AND aogk.alg_kenmerk_key = gk.alg_kenmerk_key
AND gk.alg_kenmerk_code = 'EXACT_CODE'
AND gk.alg_kenmerk_verwijder IS NULL)
exact_code_gebouw,
(SELECT fac.safe_to_number (alg_onrgoedkenmerk_waarde)
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key
AND aogk.alg_onrgoed_key = COALESCE(ml.alg_district_key, cl.alg_district_key)
AND k.alg_kenmerk_code = 'AFWDAGBOEKNR'
AND k.alg_kenmerk_verwijder IS NULL)
afw_dagboek,
(SELECT alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key
AND aogk.alg_onrgoed_key = COALESCE(ml.alg_district_key, cl.alg_district_key)
AND k.alg_kenmerk_code = 'AFWKSTDRCODE'
AND k.alg_kenmerk_verwijder IS NULL)
afw_kstdrcode,
o.mld_opdr_key,
c.cnt_contract_key,
bo.bes_bestelopdr_key,
fin_factuur_statuses_key,
lk.prs_kostenplaats_nr
lev_kpn,
COALESCE(ml.alg_district_key, cl.alg_district_key) alg_district_key,
(SELECT alg_regio_key
FROM alg_district di
WHERE di.alg_district_key = COALESCE(ml.alg_district_key, cl.alg_district_key) ) alg_regio_key,
DECODE (
f.cnt_contract_key,
NULL, DECODE (
f.bes_bestelopdr_key,
NULL, (SELECT fac_usrdata_code
FROM fac_usrdata ud,
mld_kenmerkopdr ko,
mld_kenmerk k,
mld_srtkenmerk sk
WHERE o.mld_opdr_key = ko.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code = 'TYPEFACTUUR'
AND k.mld_kenmerk_verwijder IS NULL
AND FAC.safe_to_number (ko.mld_kenmerkopdr_waarde) = ud.fac_usrdata_key),
'B'),
(SELECT fac_usrdata_code
FROM fac_usrdata ud,
cnt_kenmerkcontract kc,
cnt_kenmerk k
WHERE c.cnt_contract_key = kc.cnt_contract_key
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_code = 'TYPEFACTUUR'
AND k.cnt_kenmerk_verwijder IS NULL
AND FAC.safe_to_number (kc.cnt_kenmerkcontract_waarde) = ud.fac_usrdata_key))
typefactuur
FROM fin_factuur f,
fin_factuurregel fr,
fin_btwtabelwaarde btw,
mld_opdr o,
mld_melding m,
alg_locatie ml,
alg_locatie cl,
alg_gebouw g,
mld_typeopdr ot,
cnt_contract c,
bes_bestelopdr bo,
( SELECT fc.fin_factuur_key, MIN (cs.cnt_alg_plaats_key) alg_gebouw_key
FROM fin_factuur fc, cnt_contract_plaats cs
WHERE fc.cnt_contract_key = cs.cnt_contract_key
AND cnt_alg_plaats_code = 'G'
AND cnt_contract_plaats_verwijder IS NULL
GROUP BY fc.fin_factuur_key
UNION ALL
SELECT fo.fin_factuur_key, og.alg_gebouw_key
FROM fin_factuur fo,
mld_opdr o1,
mld_melding m1,
alg_v_allonroerendgoed og
WHERE fo.mld_opdr_key = o1.mld_opdr_key
AND o1.mld_melding_key = m1.mld_melding_key
AND m1.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
UNION ALL
SELECT fb.fin_factuur_key, MIN (g1.alg_gebouw_key) alg_gebouw_key
FROM fin_factuur fb,
bes_bestelopdr_item boi,
bes_bestelling_item bi,
bes_bestelling b,
alg_gebouw g1
WHERE fb.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND b.mld_adres_key_lev = g1.mld_adres_key
GROUP BY fb.fin_factuur_key) fg,
(SELECT mld_uitvoerende_key, DECODE (u.TYPE, 'B', mld_uitvoerende_key, a.prs_bedrijf_key) prs_bedrijf_key
FROM mld_v_uitvoerende u, prs_v_afdeling a, prs_perslid p
WHERE u.mld_uitvoerende_key = prs_perslid_key(+) AND p.prs_afdeling_key = a.prs_afdeling_key(+)) b_o,
prs_bedrijf b_c,
prs_bedrijf b_b,
prs_kostensoort k,
prs_kostensoortgrp kg,
prs_kostenplaats lk
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_melding_key = m.mld_melding_key(+)
AND m.mld_alg_locatie_key = ml.alg_locatie_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.mld_uitvoerende_key(+)
AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_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 f.fin_factuur_key = fg.fin_factuur_key(+)
AND fg.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.alg_locatie_key = cl.alg_locatie_key(+)
AND f.fin_factuur_verwijder IS NULL;
CREATE OR REPLACE VIEW vbxx_v_bron_export_exact_api
(
fin_factuur_key,
opdracht_id,
factuur_nr, -- crediteur factuurnummer
datum, -- factuurdatum
crdnr, -- crediteurnummer
bedrag_txt,
bedrag,
bedrag_incl,
oms_regel, -- omschrijving in de detailregels
reknr, -- grootboekrekeningnr
kstplcode, -- kostenplaats kenmerk bij gebouw
kstdrcode, -- kostendrager afh van grootboek
btw_code,
dagboek,
oms_kop, -- omschrijving in de kopregel
fin_factuur_debiteur_nr, -- crediteur debiteurnummer
alg_district_key,
alg_regio_key,
fin_factuur_boekmaand,
fin_factuur_statuses_key,
n_incompleet,
n_niet_akkoord
)
AS
SELECT fin_factuur_key,
opdracht_id,
fin_factuur_nr,
TO_CHAR (fin_factuur_datum, 'yyyy-mm-dd')
datum,
prs_leverancier_nr crdnr,
REPLACE (TO_CHAR (bedrag), ',', '.')
bedrag_txt,
bedrag,
bedrag_incl,
SUBSTR (UPPER (b.prs_bedrijf_naam), 1, 3)
|| ','
|| SUBSTR(fin_factuur_boekmaand, 6,2)
|| ','
|| opdracht_id
oms_regel,
prs_kostensoort_refcode reknr,
COALESCE(exact_code_contract, exact_code_gebouw) kstplcode,
COALESCE(afw_kstdrcode,
CASE WHEN typefactuur = 'A' THEN '00'
WHEN typefactuur = 'B' THEN '10'
WHEN typefactuur = 'C' THEN '20'
WHEN typefactuur = 'D' THEN '30'
END ) kstdrcode,
fin_btwtabelwaarde_code
btw_code,
COALESCE(fg.afw_dagboek, fg.dagboek) dagboek,
SUBSTR(UPPER(b.prs_bedrijf_naam),1,3) || ',' ||
SUBSTR(fin_factuur_boekmaand,6,2) oms_kop,
fin_factuur_debiteur_nr,
alg_district_key,
alg_regio_key,
fin_factuur_boekmaand,
fg.fin_factuur_statuses_key,
(SELECT COUNT(DISTINCT(fg2.fin_factuur_key)) FROM vbxx_v_factuur_gegevens_api fg2
WHERE fg.prs_bedrijf_key = fg2.prs_bedrijf_key
AND fg.fin_factuur_nr = fg2.fin_factuur_nr
AND fg2.fin_factuur_statuses_key = 3) n_incompleet,
(SELECT COUNT(DISTINCT(fg2.fin_factuur_key)) FROM vbxx_v_factuur_gegevens_api fg2
WHERE fg.prs_bedrijf_key = fg2.prs_bedrijf_key
AND fg.fin_factuur_nr = fg2.fin_factuur_nr
AND fg2.fin_factuur_statuses_key <> 6) n_niet_akkoord
FROM ( SELECT g.fin_factuur_key,
opdracht_id,
fin_factuur_datum,
fin_factuur_nr,
prs_bedrijf_key,
fin_factuur_debiteur_nr,
SUM (fin_factuurregel_totaal)
bedrag,
SUM (fin_factuurregel_totaal + fin_factuurregel_btw)
bedrag_incl,
fin_btwtabelwaarde_code,
prs_kostensoort_oms,
prs_kostensoort_refcode,
prs_kostensoort_opmerking,
mld_opdr_key,
cnt_contract_key,
exact_code_gebouw,
exact_code_contract,
fin_factuur_boekmaand,
g.dagboek,
g.afw_dagboek,
g.afw_kstdrcode,
g.alg_district_key,
g.alg_regio_key,
g.typefactuur,
g.fin_factuur_statuses_key
FROM vbxx_v_factuur_gegevens_api g
GROUP BY g.fin_factuur_key,
opdracht_id,
fin_factuur_datum,
fin_factuur_nr,
prs_bedrijf_key,
fin_factuur_debiteur_nr,
fin_btwtabelwaarde_code,
prs_kostensoort_oms,
prs_kostensoort_refcode,
prs_kostensoort_opmerking,
mld_opdr_key,
cnt_contract_key,
exact_code_gebouw,
exact_code_contract,
fin_factuur_boekmaand,
g.dagboek,
g.afw_dagboek,
g.afw_kstdrcode,
g.alg_district_key,
g.alg_regio_key,
g.typefactuur,
g.fin_factuur_statuses_key) fg,
prs_bedrijf b
WHERE fg.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_leverancier_nr IS NOT NULL;
@@ -5065,6 +5504,8 @@ AS
meldinglocatie,
di.alg_district_omschrijving
district,
r.alg_regio_omschrijving
regio,
g.alg_gebouw_code
gebouw_code,
pf.prs_perslid_naam_full
@@ -5180,6 +5621,7 @@ AS
mld_statusopdr so,
prs_bedrijf b,
alg_locatie l,
alg_regio r,
alg_district di,
alg_gebouw g,
prs_kostensoort kso,
@@ -5254,13 +5696,14 @@ AS
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND aog.alg_gebouw_key = g.alg_gebouw_key(+)
AND l.alg_district_key = di.alg_district_key
AND di.alg_regio_key = r.alg_regio_key
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND o.mld_statusopdr_key = so.mld_statusopdr_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
AND o.mld_opdr_key = tf.mld_opdr_key
AND tf.fac_usrdata_code <> 'A'
AND o.mld_opdr_key = tf.mld_opdr_key(+)
-- AND tf.fac_usrdata_code <> 'A'
AND o.mld_opdr_key = ok.mld_opdr_key(+)
AND o.mld_opdr_key = nb.mld_opdr_key(+)
AND o.mld_opdr_key = kin.mld_opdr_key(+)
@@ -5642,6 +6085,7 @@ AS
--- bit 8: Proces fout (Oracle foutmelding)
--- bit 9: Ordernummer niet aanwezig via scanning
--- bit 10: 3 weg matching maar verplichting niet afgemeld
--- bit 11: Bijlage niet aanwezig
CURSOR ccor_0
IS
SELECT ordernr
@@ -5692,7 +6136,7 @@ IS
WHERE i.fin_factuur_key IS NOT NULL
AND i.fac_import_key = p_import_key
AND f.fin_factuur_key = i.fin_factuur_key
AND kenmerk1 IS NOT NULL -- Incl bijlage
--AND kenmerk1 IS NOT NULL -- Incl bijlage
;
CURSOR cfactuurregel
@@ -5986,6 +6430,14 @@ BEGIN
END IF;
v_errorhint := 'Controle of er een factuur als bijlage aanwezig is';
IF rec.kenmerk1 IS NULL
THEN
v_aanduiding_controle := 'Van factuur met key ' || rec.fin_factuur_key || ' is de bestandsnaam niet gevonden (regel ' || rec.fac_imp_file_index || ')';
track_error (v_aanduiding_controle, POWER(2,11), rec.fin_factuur_key, v_perslid_key); -- bit 11
END IF;
-- Fout gemeldt door Mareon
v_errorhint := 'Bedrijfsherkenning';
IF rec.kenmerk6 = '3'
@@ -6334,6 +6786,7 @@ END;
--- bit 8: Proces fout (Oracle foutmelding)
--- bit 9: ontbrekende orderreferentie uit scanning
--- bit 10: 3 weg matching maar verplichting niet afgemeld
--- bit 11: Geen factuurbijlage aangetroffen.
CREATE OR REPLACE VIEW vbxx_v_fac_scan_result_detail
AS
SELECT f.fin_factuur_key factuur_key,
@@ -6421,7 +6874,14 @@ AS
WHERE kf.fin_kenmerk_key = k.fin_kenmerk_key
AND k.fin_kenmerk_code = 'FOUTCODE'
AND k.fin_kenmerk_verwijder IS NULL
AND BITAND (FAC.SAFE_TO_NUMBER (fin_kenmerkfactuur_waarde), 1024) <> 0) bi,
AND BITAND (FAC.SAFE_TO_NUMBER (fin_kenmerkfactuur_waarde), 1024) <> 0
UNION ALL
SELECT kf.fin_factuur_key, 'Geen factuurbijlage aangetroffen' foutmelding
FROM fin_kenmerkfactuur kf, fin_kenmerk k
WHERE kf.fin_kenmerk_key = k.fin_kenmerk_key
AND k.fin_kenmerk_code = 'FOUTCODE'
AND k.fin_kenmerk_verwijder IS NULL
AND BITAND (FAC.SAFE_TO_NUMBER (fin_kenmerkfactuur_waarde), 2048) <> 0) bi,
(SELECT fo.fin_factuur_key, mld_uitvoerende_keys prs_bedrijf_key
FROM mld_opdr o, fin_factuur fo
WHERE fo.mld_opdr_key = o.mld_opdr_key
@@ -6566,6 +7026,18 @@ SELECT f.fin_factuur_key,
AND f.fin_factuur_statuses_key = fs.fin_factuur_statuses_key
AND f.fin_factuur_key = ft.fin_factuur_key;
CREATE OR REPLACE VIEW vbxx_v_rap_error_log
AS
SELECT COALESCE (imp_log_applicatie, ia.fac_import_app_oms) applicatie,
imp_log_datum,
imp_log_status,
imp_log_omschrijving,
imp_log_hint
FROM imp_log i, fac_import im, fac_import_app ia
WHERE i.fac_import_key = im.fac_import_key(+)
AND im.fac_import_app_key = ia.fac_import_app_key(+);
/*
reversed billing verstuurd