YASK#89430 Foutmelding VBXX.Fin_set_approver verschijnt dubbel op overzichtspagina
svn path=/Customer/trunk/; revision=69519
This commit is contained in:
339
VBXX/vbxx.sql
339
VBXX/vbxx.sql
@@ -734,6 +734,20 @@ AS
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
|
||||
BEGIN
|
||||
-- Om foutmeldingen te voorkomen controleren we eerst of er wel een verplichting gekoppeld is.
|
||||
SELECT count(*)
|
||||
INTO v_count
|
||||
FROM fin_factuur f
|
||||
WHERE f.fin_factuur_key = p_factuur_key
|
||||
AND ( f.mld_opdr_key IS NOT NULL
|
||||
OR f.cnt_contract_key IS NOT NULL
|
||||
OR f.bes_bestelopdr_key IS NOT NULL);
|
||||
|
||||
IF v_count = 0
|
||||
THEN
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
-- Nu bepalen we de locatie van de factuur. Adh daarvan kunnen we bepalen wie hier rechten op heeft.
|
||||
v_errorhint := 'Bepaal locatie.';
|
||||
SELECT l.alg_locatie_key, d.alg_regio_key
|
||||
@@ -5542,7 +5556,7 @@ AS
|
||||
---
|
||||
--- Foutcodes: In het kenmerk FOUTCODE wordt een bitwise foutcode bijgehouden. Hieronder staat de uitleg per bitje
|
||||
--- bit 0: bijlage kon niet opgeslagen worden.
|
||||
--- bit 1: ontbrekende orderreferentie
|
||||
--- bit 1: orderreferentie niet gevonden
|
||||
--- bit 2: fout in bedrijfsherkenning
|
||||
--- bit 3: overige fout uit import
|
||||
--- bit 4: dubbele factuur
|
||||
@@ -5550,6 +5564,8 @@ AS
|
||||
--- bit 6: IBAN niet correct
|
||||
--- bit 7: IBAN niet gevuld bij leverancier
|
||||
--- bit 8: Proces fout (Oracle foutmelding)
|
||||
--- bit 9: Ordernummer niet aanwezig via scanning
|
||||
--- bit 10: 3 weg matching maar verplichting niet afgemeld
|
||||
CURSOR ccor_0
|
||||
IS
|
||||
SELECT ordernr
|
||||
@@ -5595,7 +5611,7 @@ IS
|
||||
|
||||
CURSOR cfactuur
|
||||
IS
|
||||
SELECT i.fin_factuur_key, factuurdatum, i.kenmerk1, i.kenmerk2, i.kenmerk3, i.kenmerk6, i.kenmerk7, i.kenmerk8, i.kenmerk9, i.kenmerk10, i.kenmerk11, i.kenmerk12, i.kenmerk13, i.factuurnr, i.fac_imp_file_index, f.fin_factuur_totaal, f.fin_factuur_totaal_btw, f.mld_opdr_key, f.cnt_contract_key, f.bes_bestelopdr_key
|
||||
SELECT i.fin_factuur_key, factuurdatum, i.kenmerk1, i.kenmerk2, i.kenmerk3, i.kenmerk6, i.kenmerk7, i.kenmerk8, i.kenmerk9, i.kenmerk10, i.kenmerk11, i.kenmerk12, i.kenmerk13, i.factuurnr, i.ordernr, i.fac_imp_file_index, f.fin_factuur_totaal, f.fin_factuur_totaal_btw, f.mld_opdr_key, f.cnt_contract_key, f.bes_bestelopdr_key
|
||||
FROM fac_imp_factuur i, fin_factuur f
|
||||
WHERE i.fin_factuur_key IS NOT NULL
|
||||
AND i.fac_import_key = p_import_key
|
||||
@@ -5658,6 +5674,8 @@ IS
|
||||
v_factuur_note_key FIN_FACTUUR_NOTE.FIN_FACTUUR_NOTE_KEY%TYPE;
|
||||
v_bedrijf_iban FIN_KENMERKFACTUUR.FIN_KENMERKFACTUUR_WAARDE%TYPE;
|
||||
v_bedrijf_key PRS_BEDRIJF.PRS_BEDRIJF_KEY%TYPE;
|
||||
v_factmatchmode MLD_DISC_PARAMS.MLD_DISC_PARAMS_FACTMATCHMODE%TYPE;
|
||||
v_statusopdr_key MLD_OPDR.MLD_STATUSOPDR_KEY%TYPE;
|
||||
|
||||
PROCEDURE track_error (p_error_str IN VARCHAR2, p_foutcode IN NUMBER, p_factuur_key IN NUMBER, p_perslid_key IN NUMBER)
|
||||
IS
|
||||
@@ -5829,7 +5847,7 @@ BEGIN
|
||||
FOR rec IN cfactuur
|
||||
LOOP
|
||||
BEGIN
|
||||
|
||||
v_errorhint := 'Verwerken van de factuur';
|
||||
SELECT REPLACE(fin_factuur_opmerking, '@@', CHR (13) || CHR (10))
|
||||
INTO v_factuur_opmerking
|
||||
FROM fin_factuur
|
||||
@@ -5845,6 +5863,7 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
-- Als er een bijlage-flexprop en een bijlage is, dan gaan we deze PDF hier inzetten....
|
||||
v_errorhint := 'Verwerken bijlage van de factuur';
|
||||
IF c_kenmerk_key_bijlage IS NOT NULL AND rec.kenmerk1 IS NOT NULL
|
||||
THEN
|
||||
|
||||
@@ -5883,17 +5902,8 @@ BEGIN
|
||||
|
||||
END IF;
|
||||
|
||||
-- Incomplete facturen, zonder orderreferentie, gaan we ook op controle zetten
|
||||
IF (rec.mld_opdr_key IS NULL AND rec.cnt_contract_key IS NULL AND rec.bes_bestelopdr_key IS NULL)
|
||||
THEN
|
||||
|
||||
v_aanduiding_controle := 'ERROR: Factuur incompleet i.v.m. ontbrekende orderreferentie (vanuit scanning)' ;
|
||||
track_error (v_aanduiding_controle, 2, rec.fin_factuur_key, v_perslid_key); -- bit 1
|
||||
|
||||
END IF;
|
||||
|
||||
-- Fout gemeldt door Mareon
|
||||
|
||||
v_errorhint := 'Bedrijfsherkenning';
|
||||
IF rec.kenmerk6 = '3'
|
||||
THEN
|
||||
v_foutcode := 0;
|
||||
@@ -5922,148 +5932,180 @@ BEGIN
|
||||
-- G rekening IBAN tonen in Facilitor bij Factuur
|
||||
setkenmerkfactuur(rec.fin_factuur_key, 'GIBAN', rec.kenmerk13);
|
||||
|
||||
SELECT COALESCE(o.mld_uitvoerende_keys, bo.prs_bedrijf_key, c.cnt_prs_bedrijf_key, -1)
|
||||
INTO v_bedrijf_key
|
||||
FROM fin_factuur f,
|
||||
mld_opdr o,
|
||||
bes_bestelopdr bo,
|
||||
cnt_contract c
|
||||
WHERE f.mld_opdr_key = o.mld_opdr_key(+)
|
||||
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
||||
AND f.cnt_contract_key = c.cnt_contract_key(+)
|
||||
AND f.fin_factuur_key = rec.fin_factuur_key;
|
||||
|
||||
SELECT FLX.getflex('PRS', k.prs_kenmerk_key, v_bedrijf_key, 'B', 1)
|
||||
INTO v_bedrijf_iban
|
||||
FROM prs_kenmerk k
|
||||
WHERE k.prs_kenmerk_code = 'IBAN';
|
||||
|
||||
IF v_bedrijf_iban IS NULL
|
||||
THEN
|
||||
v_aanduiding_controle := 'ERROR: IBAN niet ingevuld bij leverancier.' ;
|
||||
track_error (v_aanduiding_controle, POWER(2,7), rec.fin_factuur_key, v_perslid_key);
|
||||
ELSE
|
||||
IF COALESCE(UPPER(REPLACE(rec.kenmerk12, ' ')), 'QueQeLeQue') <> UPPER(REPLACE(v_bedrijf_iban, ' '))
|
||||
THEN
|
||||
-- dan gaan we ook de iban controleren
|
||||
v_aanduiding_controle := 'ERROR: IBAN komt niet overeen!' ;
|
||||
track_error (v_aanduiding_controle, POWER(2,6), rec.fin_factuur_key, v_perslid_key);
|
||||
-- Incomplete facturen, zonder orderreferentie, gaan we ook op controle zetten
|
||||
IF (rec.mld_opdr_key IS NULL AND rec.cnt_contract_key IS NULL AND rec.bes_bestelopdr_key IS NULL)
|
||||
THEN
|
||||
IF rec.ordernr = '00000'
|
||||
THEN
|
||||
v_aanduiding_controle := 'ERROR: Factuur incompleet i.v.m. ontbrekende orderreferentie vanuit scanning';
|
||||
track_error (v_aanduiding_controle, 512, rec.fin_factuur_key, v_perslid_key); -- bit 9
|
||||
ELSE
|
||||
v_aanduiding_controle := 'ERROR: Factuur incompleet i.v.m. niet gevonden orderreferentie:' || rec.ordernr;
|
||||
track_error (v_aanduiding_controle, 2, rec.fin_factuur_key, v_perslid_key); -- bit 1
|
||||
END IF;
|
||||
END IF;
|
||||
ELSE
|
||||
|
||||
-- Controle of er al een factuur ontvangen is met hetzelfde factuurnummer en referentie
|
||||
-- 1 Afgewezen
|
||||
-- 2 Ingevoerd
|
||||
-- 3 Incompleet
|
||||
-- 5 Ter goedkeuring
|
||||
-- 6 Akkoord
|
||||
-- 7 Verwerkt
|
||||
|
||||
IF rec.mld_opdr_key IS NOT NULL
|
||||
THEN
|
||||
SELECT count(*)
|
||||
INTO v_dubbele_facturen
|
||||
FROM mld_opdr oa, fin_factuur f
|
||||
WHERE oa.mld_opdr_key = f.mld_opdr_key
|
||||
AND rec.factuurnr = f.fin_factuur_nr
|
||||
AND rec.mld_opdr_key = oa.mld_opdr_key
|
||||
AND f.fin_factuur_statuses_key NOT IN (1)
|
||||
AND f.fin_factuur_verwijder IS NULL
|
||||
AND f.fin_factuur_key <> rec.fin_factuur_key;
|
||||
END IF;
|
||||
|
||||
IF rec.bes_bestelopdr_key IS NOT NULL
|
||||
THEN
|
||||
SELECT count(*)
|
||||
INTO v_dubbele_facturen
|
||||
FROM bes_bestelopdr oa, fin_factuur f
|
||||
WHERE oa.bes_bestelopdr_key = f.bes_bestelopdr_key
|
||||
AND rec.factuurnr = f.fin_factuur_nr
|
||||
AND rec.bes_bestelopdr_key = oa.bes_bestelopdr_key
|
||||
AND f.fin_factuur_statuses_key NOT IN (1)
|
||||
AND f.fin_factuur_verwijder IS NULL
|
||||
AND f.fin_factuur_key <> rec.fin_factuur_key;
|
||||
END IF;
|
||||
v_errorhint := 'IBAN controle';
|
||||
SELECT COALESCE(o.mld_uitvoerende_keys, bo.prs_bedrijf_key, c.cnt_prs_bedrijf_key, -1)
|
||||
INTO v_bedrijf_key
|
||||
FROM fin_factuur f,
|
||||
mld_opdr o,
|
||||
bes_bestelopdr bo,
|
||||
cnt_contract c
|
||||
WHERE f.mld_opdr_key = o.mld_opdr_key(+)
|
||||
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
||||
AND f.cnt_contract_key = c.cnt_contract_key(+)
|
||||
AND f.fin_factuur_key = rec.fin_factuur_key;
|
||||
|
||||
IF rec.cnt_contract_key IS NOT NULL
|
||||
THEN
|
||||
SELECT count(*)
|
||||
INTO v_dubbele_facturen
|
||||
FROM cnt_contract ca, fin_factuur f
|
||||
WHERE ca.cnt_contract_key = f.cnt_contract_key
|
||||
AND rec.factuurnr = f.fin_factuur_nr
|
||||
AND rec.cnt_contract_key = ca.cnt_contract_key
|
||||
AND f.fin_factuur_statuses_key NOT IN (1)
|
||||
AND f.fin_factuur_verwijder IS NULL
|
||||
AND f.fin_factuur_key <> rec.fin_factuur_key;
|
||||
SELECT FLX.getflex('PRS', k.prs_kenmerk_key, v_bedrijf_key, 'B', 1)
|
||||
INTO v_bedrijf_iban
|
||||
FROM prs_kenmerk k
|
||||
WHERE k.prs_kenmerk_code = 'IBAN';
|
||||
|
||||
BEGIN
|
||||
SELECT FAC.safe_to_number(FLX.getflex('CNT', k.cnt_kenmerk_key, rec.cnt_contract_key, 1))
|
||||
INTO v_verdeelperiode_offset
|
||||
FROM cnt_contract c, cnt_kenmerk k
|
||||
WHERE c.ins_discipline_key = k.cnt_srtcontract_key
|
||||
AND k.cnt_kenmerk_niveau = 'S'
|
||||
AND k.cnt_kenmerk_code = 'VERDEELPERIODE_OFFSET'
|
||||
AND c.cnt_contract_key = rec.cnt_contract_key;
|
||||
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_boekmaand = TO_CHAR(ADD_MONTHS(fin_factuur_datum, COALESCE(v_verdeelperiode_offset, 0)), 'yyyy-mm')
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
NULL;
|
||||
-- Niet erg als de waarde leeg is of het kenmerk niet gedefinieerd is. Dan hoeven we niets te doen.
|
||||
END;
|
||||
|
||||
IF v_bedrijf_iban IS NULL
|
||||
THEN
|
||||
v_aanduiding_controle := 'ERROR: IBAN niet ingevuld bij leverancier.' ;
|
||||
track_error (v_aanduiding_controle, POWER(2,7), rec.fin_factuur_key, v_perslid_key);
|
||||
ELSE
|
||||
IF COALESCE(UPPER(REPLACE(rec.kenmerk12, ' ')), 'QueQeLeQue') <> UPPER(REPLACE(v_bedrijf_iban, ' '))
|
||||
THEN
|
||||
-- dan gaan we ook de iban controleren
|
||||
v_aanduiding_controle := 'ERROR: IBAN komt niet overeen!' ;
|
||||
track_error (v_aanduiding_controle, POWER(2,6), rec.fin_factuur_key, v_perslid_key);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Bij YKPN wordt de beheerder van het contract als eerste goedkeurder aangewezen.
|
||||
-- Voor de andere omgevingen wordt dit in het fin_set_approver proces uitgezocht.
|
||||
IF vbxx.get_user = 'YKPN'
|
||||
THEN
|
||||
-- De beheerder van het contract gaat als eerste goedkeurder ingevuld worden.
|
||||
-- Tenminste als deze rechten heeft op WEB_FINGOE
|
||||
SELECT MAX(prs_perslid_key_beh)
|
||||
INTO v_perslid_key_beh
|
||||
FROM cnt_contract c, fac_v_webgebruiker g, fac_functie f
|
||||
WHERE c.prs_perslid_key_beh = g.prs_perslid_key
|
||||
AND g.fac_functie_key = f.fac_functie_key
|
||||
AND f.fac_functie_code = 'WEB_FINGOE'
|
||||
AND cnt_contract_key = rec.cnt_contract_key;
|
||||
-- Controle of er al een factuur ontvangen is met hetzelfde factuurnummer en referentie
|
||||
-- 1 Afgewezen
|
||||
-- 2 Ingevoerd
|
||||
-- 3 Incompleet
|
||||
-- 5 Ter goedkeuring
|
||||
-- 6 Akkoord
|
||||
-- 7 Verwerkt
|
||||
v_errorhint := 'Controle op dubbele facturen';
|
||||
IF rec.mld_opdr_key IS NOT NULL
|
||||
THEN
|
||||
SELECT count(*)
|
||||
INTO v_dubbele_facturen
|
||||
FROM mld_opdr oa, fin_factuur f
|
||||
WHERE oa.mld_opdr_key = f.mld_opdr_key
|
||||
AND rec.factuurnr = f.fin_factuur_nr
|
||||
AND rec.mld_opdr_key = oa.mld_opdr_key
|
||||
AND f.fin_factuur_statuses_key NOT IN (1)
|
||||
AND f.fin_factuur_verwijder IS NULL
|
||||
AND f.fin_factuur_key <> rec.fin_factuur_key;
|
||||
|
||||
IF v_perslid_key_beh IS NOT NULL
|
||||
-- Nu we er toch zijn gaan we controleren of driewegmatching aanstaat voor de vakgroep.
|
||||
SELECT mld_disc_params_factmatchmode, mld_statusopdr_key
|
||||
INTO v_factmatchmode, v_statusopdr_key
|
||||
FROM mld_disc_params dp, mld_stdmelding std, mld_melding m, mld_opdr o
|
||||
WHERE o.mld_opdr_key = rec.mld_opdr_key
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND std.mld_ins_discipline_key = dp.mld_ins_discipline_key;
|
||||
|
||||
IF v_factmatchmode = 3 AND v_statusopdr_key IN (1,2,3,4,5,8,10) -- afgewezen, niet akkoord, ter fiattering, gefiatteerd, toegekend, geaccepteerd, tergoedkeuring
|
||||
THEN
|
||||
v_aanduiding_controle := 'ERROR: 3 weg matching maar verplichting niet afgemeld.' ;
|
||||
track_error (v_aanduiding_controle, POWER(2,1024), rec.fin_factuur_key, v_perslid_key);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
IF rec.bes_bestelopdr_key IS NOT NULL
|
||||
THEN
|
||||
SELECT count(*)
|
||||
INTO v_dubbele_facturen
|
||||
FROM bes_bestelopdr oa, fin_factuur f
|
||||
WHERE oa.bes_bestelopdr_key = f.bes_bestelopdr_key
|
||||
AND rec.factuurnr = f.fin_factuur_nr
|
||||
AND rec.bes_bestelopdr_key = oa.bes_bestelopdr_key
|
||||
AND f.fin_factuur_statuses_key NOT IN (1)
|
||||
AND f.fin_factuur_verwijder IS NULL
|
||||
AND f.fin_factuur_key <> rec.fin_factuur_key;
|
||||
END IF;
|
||||
|
||||
IF rec.cnt_contract_key IS NOT NULL
|
||||
THEN
|
||||
SELECT count(*)
|
||||
INTO v_dubbele_facturen
|
||||
FROM cnt_contract ca, fin_factuur f
|
||||
WHERE ca.cnt_contract_key = f.cnt_contract_key
|
||||
AND rec.factuurnr = f.fin_factuur_nr
|
||||
AND rec.cnt_contract_key = ca.cnt_contract_key
|
||||
AND f.fin_factuur_statuses_key NOT IN (1)
|
||||
AND f.fin_factuur_verwijder IS NULL
|
||||
AND f.fin_factuur_key <> rec.fin_factuur_key;
|
||||
|
||||
BEGIN
|
||||
SELECT FAC.safe_to_number(FLX.getflex('CNT', k.cnt_kenmerk_key, rec.cnt_contract_key, 1))
|
||||
INTO v_verdeelperiode_offset
|
||||
FROM cnt_contract c, cnt_kenmerk k
|
||||
WHERE c.ins_discipline_key = k.cnt_srtcontract_key
|
||||
AND k.cnt_kenmerk_niveau = 'S'
|
||||
AND k.cnt_kenmerk_code = 'VERDEELPERIODE_OFFSET'
|
||||
AND c.cnt_contract_key = rec.cnt_contract_key;
|
||||
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_boekmaand = TO_CHAR(ADD_MONTHS(fin_factuur_datum, COALESCE(v_verdeelperiode_offset, 0)), 'yyyy-mm')
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
NULL;
|
||||
-- Niet erg als de waarde leeg is of het kenmerk niet gedefinieerd is. Dan hoeven we niets te doen.
|
||||
END;
|
||||
|
||||
|
||||
-- Bij YKPN wordt de beheerder van het contract als eerste goedkeurder aangewezen.
|
||||
-- Voor de andere omgevingen wordt dit in het fin_set_approver proces uitgezocht.
|
||||
IF vbxx.get_user = 'YKPN'
|
||||
THEN
|
||||
UPDATE fin_factuur
|
||||
SET prs_perslid_key_goedkeur = v_perslid_key_beh
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
-- De beheerder van het contract gaat als eerste goedkeurder ingevuld worden.
|
||||
-- Tenminste als deze rechten heeft op WEB_FINGOE
|
||||
SELECT MAX(prs_perslid_key_beh)
|
||||
INTO v_perslid_key_beh
|
||||
FROM cnt_contract c, fac_v_webgebruiker g, fac_functie f
|
||||
WHERE c.prs_perslid_key_beh = g.prs_perslid_key
|
||||
AND g.fac_functie_key = f.fac_functie_key
|
||||
AND f.fac_functie_code = 'WEB_FINGOE'
|
||||
AND cnt_contract_key = rec.cnt_contract_key;
|
||||
|
||||
IF v_perslid_key_beh IS NOT NULL
|
||||
THEN
|
||||
UPDATE fin_factuur
|
||||
SET prs_perslid_key_goedkeur = v_perslid_key_beh
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
END IF;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
IF v_dubbele_facturen <> 0
|
||||
IF v_dubbele_facturen <> 0
|
||||
THEN
|
||||
v_aanduiding_controle := 'ERROR: Dubbele facturen gevonden!' ;
|
||||
track_error (v_aanduiding_controle, POWER(2,4), rec.fin_factuur_key, v_perslid_key);
|
||||
END IF;
|
||||
|
||||
-- tot slot nog nette logging
|
||||
v_aanduiding := 'Factuur geimporteerd vanuit Mareon' ;
|
||||
fac.trackaction ('FINUPD', rec.fin_factuur_key, v_perslid_key, NULL, v_aanduiding);
|
||||
|
||||
-- Bij YKPN gaan we nog niet het generieke proces af trappen.
|
||||
IF vbxx.get_user <> 'YKPN' AND vbxx.get_user <> 'HEIN'
|
||||
THEN
|
||||
v_aanduiding_controle := 'ERROR: Dubbele facturen gevonden!' ;
|
||||
track_error (v_aanduiding_controle, POWER(2,4), rec.fin_factuur_key, v_perslid_key);
|
||||
vbxx.fin_set_approver(rec.fin_factuur_key);
|
||||
END IF;
|
||||
|
||||
-- tot slot nog nette logging
|
||||
v_aanduiding := 'Factuur geimporteerd vanuit Mareon' ;
|
||||
fac.trackaction ('FINUPD', rec.fin_factuur_key, v_perslid_key, NULL, v_aanduiding);
|
||||
|
||||
END;
|
||||
|
||||
-- Bij YKPN gaan we nog niet het generieke proces af trappen.
|
||||
IF vbxx.get_user <> 'YKPN' AND vbxx.get_user <> 'HEIN'
|
||||
THEN
|
||||
vbxx.fin_set_approver(rec.fin_factuur_key);
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
-- We gaan nu beginnen met het verder verwerken van de factuur..
|
||||
FOR rec IN cfactuurregel
|
||||
LOOP
|
||||
BEGIN
|
||||
-- vul de locatiecode in de factuurregel
|
||||
v_errorhint := 'Controle van de facuurregel';
|
||||
-- vul de locatiecode in de factuurregel
|
||||
IF rec.mld_opdr_key IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
@@ -6161,7 +6203,8 @@ EXCEPTION
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
|
||||
v_errormsg :=
|
||||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
v_errorhint || CHR(10) ||
|
||||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')' ;
|
||||
|
||||
SELECT MAX(i.fin_factuur_key) fin_factuur_key, 'Betreft factuur_key ' || TO_CHAR(i.fin_factuur_key) ||' - Factuurnr ' || i.factuurnr
|
||||
INTO v_fin_factuur_key, v_errorhint
|
||||
@@ -6197,7 +6240,7 @@ END;
|
||||
/
|
||||
|
||||
--- bit 0: bijlage kon niet opgeslagen worden.
|
||||
--- bit 1: ontbrekende orderreferentie
|
||||
--- bit 1: niet gevonden orderreferentie
|
||||
--- bit 2: fout in bedrijfsherkenning
|
||||
--- bit 3: overige fout uit import
|
||||
--- bit 4: dubbele factuur
|
||||
@@ -6205,6 +6248,8 @@ END;
|
||||
--- bit 6: IBAN niet correct
|
||||
--- bit 7: IBAN niet gevuld bij leverancier
|
||||
--- bit 8: Proces fout (Oracle foutmelding)
|
||||
--- bit 9: ontbrekende orderreferentie uit scanning
|
||||
--- bit 10: 3 weg matching maar verplichting niet afgemeld
|
||||
CREATE OR REPLACE VIEW vbxx_v_fac_scan_result_detail
|
||||
AS
|
||||
SELECT f.fin_factuur_key factuur_key,
|
||||
@@ -6224,7 +6269,7 @@ AS
|
||||
AND k.fin_kenmerk_verwijder IS NULL
|
||||
AND BITAND (FAC.SAFE_TO_NUMBER (fin_kenmerkfactuur_waarde), 1) <> 0
|
||||
UNION ALL
|
||||
SELECT kf.fin_factuur_key, 'ontbrekende orderreferentie' foutmelding
|
||||
SELECT kf.fin_factuur_key, 'niet gevonden orderreferentie' foutmelding
|
||||
FROM fin_kenmerkfactuur kf, fin_kenmerk k
|
||||
WHERE kf.fin_kenmerk_key = k.fin_kenmerk_key
|
||||
AND k.fin_kenmerk_code = 'FOUTCODE'
|
||||
@@ -6278,7 +6323,21 @@ 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), 256) <> 0) bi,
|
||||
AND BITAND (FAC.SAFE_TO_NUMBER (fin_kenmerkfactuur_waarde), 256) <> 0
|
||||
UNION ALL
|
||||
SELECT kf.fin_factuur_key, 'geen orderreferentie uit scanning' 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), 512) <> 0
|
||||
UNION ALL
|
||||
SELECT kf.fin_factuur_key, '3 weg matching maar verplichting niet afgemeld' 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), 1024) <> 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
|
||||
@@ -6321,6 +6380,7 @@ CREATE OR REPLACE VIEW vbxx_v_rap_factuur_verplichting
|
||||
AS
|
||||
SELECT f.fin_factuur_key,
|
||||
f.fin_factuur_datum,
|
||||
f.fin_factuur_boekmaand,
|
||||
(SELECT t.fac_tracking_datum
|
||||
FROM fac_tracking t, fac_srtnotificatie sn
|
||||
WHERE t.fac_tracking_refkey = f.fin_factuur_key
|
||||
@@ -6328,6 +6388,7 @@ SELECT f.fin_factuur_key,
|
||||
AND sn.fac_srtnotificatie_code = 'FINNEW')
|
||||
fin_factuur_aanmaak,
|
||||
fs.fin_factuur_statuses_omschr factuur_status,
|
||||
DECODE(f.fin_factuur_flag, 1, 'Ja', 'Nee') dispuut,
|
||||
(SELECT b.prs_bedrijf_naam
|
||||
FROM prs_bedrijf b
|
||||
WHERE b.prs_bedrijf_key = COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key))
|
||||
|
||||
Reference in New Issue
Block a user