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:
548
VBXX/vbxx.sql
548
VBXX/vbxx.sql
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user