YAXX#88424 Controle op IBAN toegevoegd. Loggin van de factuur-import wordt nu in de notities geplaatst.
svn path=/Customer/trunk/; revision=69057
This commit is contained in:
131
VBXX/vbxx.sql
131
VBXX/vbxx.sql
@@ -4314,7 +4314,6 @@ AS
|
||||
fr.fin_factuurregel_nr,
|
||||
fr.fin_factuurregel_key,
|
||||
f.fin_factuur_debiteur_nr,
|
||||
f.fin_factuur_opmerking,
|
||||
f.fin_factuur_boekmaand,
|
||||
prs_kostensoort_oms,
|
||||
k.prs_kostensoort_refcode,
|
||||
@@ -4559,7 +4558,6 @@ AS
|
||||
fin_factuur_nr,
|
||||
prs_bedrijf_key,
|
||||
fin_factuur_debiteur_nr,
|
||||
fin_factuur_opmerking,
|
||||
SUM (fin_factuurregel_totaal)
|
||||
bedrag,
|
||||
SUM (fin_factuurregel_totaal + fin_factuurregel_btw)
|
||||
@@ -4590,7 +4588,6 @@ AS
|
||||
fin_factuur_nr,
|
||||
prs_bedrijf_key,
|
||||
fin_factuur_debiteur_nr,
|
||||
fin_factuur_opmerking,
|
||||
fin_btwtabelwaarde_code,
|
||||
prs_kostensoort_oms,
|
||||
prs_kostensoort_refcode,
|
||||
@@ -5546,6 +5543,8 @@ AS
|
||||
--- bit 3: overige fout uit import
|
||||
--- bit 4: dubbele factuur
|
||||
--- bit 5: verzamelfactuur
|
||||
--- bit 6: IBAN niet correct
|
||||
--- bit 7: Proces fout (Oracle foutmelding)
|
||||
CURSOR ccor_0
|
||||
IS
|
||||
SELECT ordernr
|
||||
@@ -5648,46 +5647,64 @@ IS
|
||||
v_factuur_datum_boekmaand_nu VARCHAR(2);
|
||||
v_fin_factuur_boekmaand_laatst VARCHAR(7);
|
||||
v_fin_factuur_boekmaand_prev VARCHAR(7);
|
||||
v_factuur_opmerking FIN_FACTUUR.FIN_FACTUUR_OPMERKING%TYPE;
|
||||
v_factuur_note_omschrijving FIN_FACTUUR_NOTE.FIN_FACTUUR_NOTE_OMSCHRIJVING%TYPE;
|
||||
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;
|
||||
|
||||
PROCEDURE track_error (p_error_str IN VARCHAR2, p_foutcode IN NUMBER, p_factuur_key IN NUMBER, p_perslid_key IN NUMBER)
|
||||
IS
|
||||
v_factuur_opmerking FIN_FACTUUR.FIN_FACTUUR_OPMERKING%TYPE;
|
||||
|
||||
v_kenmerk_key_foutcode FIN_KENMERK.FIN_KENMERK_KEY%TYPE;
|
||||
v_foutcode NUMBER(10);
|
||||
v_verschil NUMBER(10);
|
||||
BEGIN
|
||||
fac.trackaction ('FINUPD', p_factuur_key, p_perslid_key, NULL, p_error_str);
|
||||
--Hebben we deze tracking nodig? De fouten komen ook in de notities te staan.
|
||||
--fac.trackaction ('FINUPD', p_factuur_key, p_perslid_key, NULL, p_error_str);
|
||||
|
||||
SELECT fin_factuur_opmerking
|
||||
INTO v_factuur_opmerking
|
||||
FROM fin_factuur
|
||||
WHERE fin_factuur_key = p_factuur_key;
|
||||
|
||||
IF v_factuur_opmerking IS NOT NULL
|
||||
BEGIN
|
||||
SELECT fin_factuur_note_omschrijving, fin_factuur_note_key
|
||||
INTO v_factuur_note_omschrijving, v_factuur_note_key
|
||||
FROM fin_factuur_note
|
||||
WHERE fin_factuur_key = p_factuur_key;
|
||||
|
||||
INSERT INTO fin_factuur_note (fin_factuur_key, prs_perslid_key, fin_factuur_note_omschrijving)
|
||||
VALUES ('Factuur import:' || CHR (13) || CHR (10) || v_factuur_note_omschrijving, p_perslid_key, p_error_str);
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_factuur_opmerking := SUBSTR(v_factuur_opmerking || CHR (13) || CHR (10) || p_error_str, 1, 250);
|
||||
ELSE
|
||||
v_factuur_opmerking := SUBSTR(p_error_str,1,250);
|
||||
END IF;
|
||||
INSERT INTO fin_factuur_note (fin_factuur_key, prs_perslid_key, fin_factuur_note_omschrijving)
|
||||
VALUES (v_factuur_note_omschrijving || CHR (13) || CHR (10) || p_error_str, p_perslid_key, p_error_str);
|
||||
|
||||
IF v_factuur_opmerking IS NOT NULL
|
||||
THEN
|
||||
v_factuur_opmerking := SUBSTR(v_factuur_opmerking || CHR (13) || CHR (10) || p_error_str, 1, 250);
|
||||
ELSE
|
||||
v_factuur_opmerking := SUBSTR(p_error_str,1,250);
|
||||
END IF;
|
||||
END;
|
||||
|
||||
-- nog reden vullen:
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_statuses_key = 3,
|
||||
fin_factuur_opmerking = v_factuur_opmerking
|
||||
WHERE fin_factuur_key = p_factuur_key;
|
||||
|
||||
SELECT k.fin_kenmerk_key
|
||||
INTO v_kenmerk_key_foutcode
|
||||
FROM fin_kenmerk k
|
||||
WHERE k.fin_kenmerk_code = 'FOUTCODE'
|
||||
AND k.fin_kenmerk_verwijder IS NULL;
|
||||
IF p_foutcode IS NOT NULL
|
||||
THEN
|
||||
SELECT k.fin_kenmerk_key
|
||||
INTO v_kenmerk_key_foutcode
|
||||
FROM fin_kenmerk k
|
||||
WHERE k.fin_kenmerk_code = 'FOUTCODE'
|
||||
AND k.fin_kenmerk_verwijder IS NULL;
|
||||
|
||||
v_foutcode := COALESCE(FAC.SAFE_TO_NUMBER(FLX.getflex ('FIN', v_kenmerk_key_foutcode, p_factuur_key)),0);
|
||||
v_verschil := BITAND(v_foutcode, p_foutcode);
|
||||
v_foutcode := v_foutcode - v_verschil;
|
||||
v_foutcode := v_foutcode + p_foutcode;
|
||||
v_foutcode := COALESCE(FAC.SAFE_TO_NUMBER(FLX.getflex ('FIN', v_kenmerk_key_foutcode, p_factuur_key)),0);
|
||||
v_verschil := BITAND(v_foutcode, p_foutcode);
|
||||
v_foutcode := v_foutcode - v_verschil;
|
||||
v_foutcode := v_foutcode + p_foutcode;
|
||||
|
||||
FLX.setflex ('FIN', v_kenmerk_key_foutcode, p_factuur_key, v_foutcode);
|
||||
FLX.setflex ('FIN', v_kenmerk_key_foutcode, p_factuur_key, v_foutcode);
|
||||
END IF;
|
||||
|
||||
END;
|
||||
|
||||
@@ -5812,6 +5829,16 @@ BEGIN
|
||||
LOOP
|
||||
BEGIN
|
||||
|
||||
SELECT fin_factuur_opmerking
|
||||
INTO v_factuur_opmerking
|
||||
FROM fin_factuur
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
|
||||
IF v_factuur_opmerking IS NOT NULL
|
||||
THEN
|
||||
track_error (v_factuur_opmerking, NULL, rec.fin_factuur_key, v_perslid_key); -- Overnemen van de opmerking in de notitie.
|
||||
END IF;
|
||||
|
||||
-- Als er een bijlage-flexprop en een bijlage is, dan gaan we deze PDF hier inzetten....
|
||||
IF c_kenmerk_key_bijlage IS NOT NULL AND rec.kenmerk1 IS NOT NULL
|
||||
THEN
|
||||
@@ -5889,6 +5916,29 @@ 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)
|
||||
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(+);
|
||||
|
||||
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 NOT NULL AND COALESCE(rec.kenmerk12, 'QueQeLeQue') <> v_bedrijf_iban
|
||||
THEN
|
||||
-- dan gaan we ook de iban controleren
|
||||
v_aanduiding_controle := 'ERROR: Dubbele facturen gevonden!' ;
|
||||
track_error (v_aanduiding_controle, POWER(2,6), rec.fin_factuur_key, v_perslid_key);
|
||||
END IF;
|
||||
|
||||
-- Controle of er al een factuur ontvangen is met hetzelfde factuurnummer en referentie
|
||||
-- 1 Afgewezen
|
||||
-- 2 Ingevoerd
|
||||
@@ -6093,12 +6143,13 @@ EXCEPTION
|
||||
THEN
|
||||
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_statuses_key = 3,
|
||||
fin_factuur_opmerking = SUBSTR('Bij factuurimport is volgende Errormessage gemeld: ' || v_errormsg || CHR (13) || CHR (10) ||
|
||||
'Actie 1: Informeren Facilitor' || CHR (13) || CHR (10) ||
|
||||
'Actie 2: Factuur gewoon oppakken: Aanvullen, doorzetten, etc', 1, 250)
|
||||
SET fin_factuur_statuses_key = 3
|
||||
WHERE fin_factuur_key = v_fin_factuur_key ;
|
||||
|
||||
track_error ('Bij factuurimport is volgende Errormessage gemeld: ' || v_errormsg || CHR (13) || CHR (10) ||
|
||||
'Actie 1: Informeren Facilitor' || CHR (13) || CHR (10) ||
|
||||
'Actie 2: Factuur gewoon oppakken: Aanvullen, doorzetten, etc', POWER(2,7), v_fin_factuur_key, v_perslid_key);
|
||||
|
||||
v_aanduiding := 'Factuur geimporteerd vanuit Mareon' ;
|
||||
fac.trackaction ('FINUPD', v_fin_factuur_key, v_perslid_key, NULL, v_aanduiding);
|
||||
|
||||
@@ -6123,7 +6174,11 @@ END;
|
||||
CREATE OR REPLACE VIEW vbxx_v_fac_scan_result_detail
|
||||
AS
|
||||
SELECT f.fin_factuur_key factuur_key,
|
||||
f.fin_factuur_opmerking,
|
||||
(SELECT MAX(n.fin_factuur_note_omschrijving)
|
||||
FROM fin_factuur_note n
|
||||
WHERE n.fin_factuur_key = f.fin_factuur_key
|
||||
AND n.fin_factuur_note_omschrijving LIKE 'Factuur import:%')
|
||||
fin_factuur_opmerking,
|
||||
FAC.gettrackingdate ('FINNEW', f.fin_factuur_key) fin_factuur_aanmaak,
|
||||
bi.foutmelding,
|
||||
b.prs_bedrijf_naam
|
||||
@@ -6168,7 +6223,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), 32) <> 0) bi,
|
||||
AND BITAND (FAC.SAFE_TO_NUMBER (fin_kenmerkfactuur_waarde), 32) <> 0
|
||||
UNION ALL
|
||||
SELECT kf.fin_factuur_key, 'IBAN nummer' 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), 64) <> 0
|
||||
UNION ALL
|
||||
SELECT kf.fin_factuur_key, 'proces fout' 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), 128) <> 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
|
||||
|
||||
Reference in New Issue
Block a user