YKPN#83385 -- Pilot Mareon Factuurscanning bij KPN
svn path=/Customer/trunk/; revision=64695
This commit is contained in:
142
VBXX/VBXX.sql
142
VBXX/VBXX.sql
@@ -374,13 +374,15 @@ IS
|
||||
c_kenmerk_key_controle NUMBER(10);
|
||||
c_kenmerk_key_verzamel NUMBER(10);
|
||||
c_kenmerk_key_mareon_bron NUMBER(10);
|
||||
c_kenmerk_key_gebouw NUMBER(10);
|
||||
v_opdracht_key NUMBER(10);
|
||||
v_controle NUMBER(1) := 0 ; -- 1 = controlevinkje op inkoopfactuur zetten
|
||||
v_aanduiding_controle VARCHAR2 (1000); -- Voor logging op bijbehorende controle zodat men weet wat men moet controleren
|
||||
v_fin_factuur_key NUMBER(10);
|
||||
v_locatie_code ALG_LOCATIE.ALG_LOCATIE_CODE%TYPE;
|
||||
v_gebouw_key ALG_GEBOUW.ALG_GEBOUW_KEY%TYPE;
|
||||
v_perslid_key PRS_PERSLID.PRS_PERSLID_KEY%TYPE;
|
||||
v_dubbele_facturen NUMBER(10);
|
||||
v_perslid_key_beh CNT_CONTRACT.PRS_PERSLID_KEY_BEH%TYPE;
|
||||
|
||||
-- Verdeelperiode voor de contracten gaan bepalen
|
||||
v_cnt_jaar_start NUMBER(10);
|
||||
@@ -413,6 +415,31 @@ IS
|
||||
v_fin_factuur_boekmaand_laatst VARCHAR(7);
|
||||
v_fin_factuur_boekmaand_prev VARCHAR(7);
|
||||
|
||||
PROCEDURE track_error (p_error_str IN VARCHAR2, p_factuur_key IN NUMBER, p_perslid_key IN NUMBER)
|
||||
IS
|
||||
v_factuur_opmerking FIN_FACTUUR.FIN_FACTUUR_OPMERKING%TYPE;
|
||||
BEGIN
|
||||
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
|
||||
THEN
|
||||
v_factuur_opmerking := v_factuur_opmerking || CHR (13) || CHR (10) || p_error_str;
|
||||
ELSE
|
||||
v_factuur_opmerking := p_error_str;
|
||||
END IF;
|
||||
|
||||
-- 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;
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
|
||||
SELECT prs_perslid_key
|
||||
@@ -585,6 +612,12 @@ BEGIN
|
||||
AND fin_kenmerk_code = 'MAREON_BRON'
|
||||
AND fin_kenmerk_verwijder IS NULL;
|
||||
|
||||
-- CUST: Voor vullen van het gebouwkenmerk op factuurregelniveau
|
||||
SELECT MIN (fin_kenmerk_key)
|
||||
INTO c_kenmerk_key_gebouw
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_code = 'GEBOUW'
|
||||
AND fin_kenmerk_verwijder IS NULL;
|
||||
|
||||
-- We gaan nu beginnen met het verder verwerken van de factuur..
|
||||
FOR rec IN cfactuur
|
||||
@@ -632,14 +665,8 @@ BEGIN
|
||||
IF (rec.mld_opdr_key IS NULL AND rec.cnt_contract_key IS NULL AND rec.bes_bestelopdr_key IS NULL) AND rec.kenmerk6 NOT IN ('3')
|
||||
THEN
|
||||
|
||||
v_aanduiding_controle := 'CONTROLE - Factuur incompleet i.v.m. ontbrekende orderreferentie (vanuit scanning)' ;
|
||||
v_controle := 1 ;
|
||||
|
||||
fac.trackaction ('FINUPD', rec.fin_factuur_key, v_perslid_key, NULL, v_aanduiding_controle);
|
||||
|
||||
|
||||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||||
VALUES (rec.fin_factuur_key, c_kenmerk_key_controle, 1);
|
||||
v_aanduiding_controle := 'ERROR: Factuur incompleet i.v.m. ontbrekende orderreferentie (vanuit scanning)' ;
|
||||
track_error (v_aanduiding_controle, rec.fin_factuur_key, v_perslid_key);
|
||||
|
||||
END IF;
|
||||
|
||||
@@ -649,19 +676,8 @@ BEGIN
|
||||
IF rec.kenmerk6 = '3'
|
||||
THEN
|
||||
|
||||
v_aanduiding_controle := 'CONTROLE - Betreft D-categorie factuur!' ;
|
||||
|
||||
fac.trackaction ('FINUPD', rec.fin_factuur_key, v_perslid_key, NULL, v_aanduiding_controle);
|
||||
|
||||
|
||||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
|
||||
VALUES (rec.fin_factuur_key, c_kenmerk_key_controle, 1);
|
||||
|
||||
-- nog reden vullen:
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_statuses_key = 3,
|
||||
fin_factuur_opmerking = rec.kenmerk7
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key ;
|
||||
v_aanduiding_controle := 'ERROR: ' || REPLACE(rec.kenmerk7, ' @@', CHR(13)||CHR(10));
|
||||
track_error (v_aanduiding_controle, rec.fin_factuur_key, v_perslid_key);
|
||||
|
||||
END IF;
|
||||
|
||||
@@ -719,20 +735,30 @@ BEGIN
|
||||
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;
|
||||
|
||||
-- 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;
|
||||
|
||||
IF v_dubbele_facturen <> 0
|
||||
THEN
|
||||
v_aanduiding_controle := 'Dubbele facturen gevonden!' ;
|
||||
|
||||
fac.trackaction ('FINUPD', rec.fin_factuur_key, v_perslid_key, NULL, v_aanduiding_controle);
|
||||
|
||||
-- nog reden vullen:
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_statuses_key = 3,
|
||||
fin_factuur_opmerking = v_aanduiding_controle
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key ;
|
||||
|
||||
v_aanduiding_controle := 'ERROR: Dubbele facturen gevonden!' ;
|
||||
track_error (v_aanduiding_controle, rec.fin_factuur_key, v_perslid_key);
|
||||
END IF;
|
||||
|
||||
-- tot slot nog nette logging
|
||||
@@ -750,8 +776,8 @@ BEGIN
|
||||
IF rec.mld_opdr_key IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
SELECT l.alg_locatie_code
|
||||
INTO v_locatie_code
|
||||
SELECT l.alg_locatie_code, (SELECT MAX(alg_gebouw_key) FROM alg_v_aanweziggebouw g WHERE g.alg_locatie_key = l.alg_locatie_key)
|
||||
INTO v_locatie_code, v_gebouw_key
|
||||
FROM mld_opdr o, mld_melding m, alg_locatie l
|
||||
WHERE o.mld_opdr_key = rec.mld_opdr_key
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
@@ -766,8 +792,8 @@ BEGIN
|
||||
IF rec.bes_bestelopdr_key IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
SELECT l.alg_locatie_code
|
||||
INTO v_locatie_code
|
||||
SELECT l.alg_locatie_code, (SELECT MAX(alg_gebouw_key) FROM alg_v_aanweziggebouw g WHERE g.alg_locatie_key = l.alg_locatie_key)
|
||||
INTO v_locatie_code, v_gebouw_key
|
||||
FROM bes_bestelopdr o, mld_adres a, alg_locatie l
|
||||
WHERE o.bes_bestelopdr_key = rec.bes_bestelopdr_key
|
||||
AND o.mld_adres_key_lev = a.mld_adres_key
|
||||
@@ -782,8 +808,8 @@ BEGIN
|
||||
IF rec.cnt_contract_key IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
SELECT alg_locatie_code
|
||||
INTO v_locatie_code
|
||||
SELECT alg_locatie_code, (SELECT MAX(alg_gebouw_key) FROM alg_v_aanweziggebouw g WHERE g.alg_locatie_key = l.alg_locatie_key)
|
||||
INTO v_locatie_code, v_gebouw_key
|
||||
FROM alg_district d, alg_locatie l, fin_factuurregel fr
|
||||
WHERE d.alg_district_key = l.alg_district_key
|
||||
AND d.alg_regio_key IN (2, 3) -- binnenland / buitenland
|
||||
@@ -803,6 +829,16 @@ BEGIN
|
||||
SET fr.fin_factuurregel_referentie = v_locatie_code
|
||||
WHERE fr.fin_factuurregel_key = rec.fin_factuurregel_key;
|
||||
|
||||
IF v_gebouw_key IS NOT NULL
|
||||
THEN
|
||||
INSERT INTO fin_kenmerkfactregel (fin_kenmerk_key,
|
||||
fin_factuurregel_key,
|
||||
fin_kenmerkfactregel_waarde)
|
||||
VALUES (c_kenmerk_key_gebouw,
|
||||
rec.fin_factuurregel_key,
|
||||
v_gebouw_key);
|
||||
END IF;
|
||||
|
||||
-- Zijn er regels niet goed geimporteerd? Dat kan voorkomen als bijvoorbeeld de combinatie btw tarief en verlegd
|
||||
-- niet leiden tot een eenduidige Exact code
|
||||
IF rec.fin_factuurregel_key IS NULL
|
||||
@@ -817,15 +853,9 @@ BEGIN
|
||||
|
||||
IF v_fin_factuur_key IS NOT NULL
|
||||
THEN
|
||||
v_aanduiding_controle := 'Fouten in ge<67>mporteerde factuur op ' || to_char(SYSDATE, 'DD-MM-YYYY');
|
||||
v_aanduiding_controle := 'ERROR: Fouten in ge<67>mporteerde factuur op ' || to_char(SYSDATE, 'DD-MM-YYYY');
|
||||
track_error (v_aanduiding_controle, rec.fin_factuur_key, v_perslid_key);
|
||||
|
||||
fac.trackaction ('FINUPD', rec.fin_factuur_key, v_perslid_key, NULL, v_aanduiding_controle);
|
||||
|
||||
-- nog reden vullen:
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_statuses_key = 3,
|
||||
fin_factuur_opmerking = v_aanduiding_controle
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
@@ -873,6 +903,26 @@ EXCEPTION
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE VIEW vbxx_v_fac_scan_result_detail
|
||||
AS
|
||||
SELECT fac_tracking_refkey factuur_key,
|
||||
fac_tracking_datum,
|
||||
FAC.gettrackingdate('FINNEW', fac_tracking_refkey) fin_factuur_aanmaak,
|
||||
fac_tracking_oms,
|
||||
CASE
|
||||
WHEN fac_tracking_oms LIKE 'ERROR%' THEN 1
|
||||
WHEN fac_tracking_oms = 'Factuur ge<67>mporteerd met fouten' THEN 1
|
||||
ELSE 0
|
||||
END waarde
|
||||
FROM fac_tracking t, fac_srtnotificatie sn
|
||||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||||
AND sn.fac_srtnotificatie_code IN ('FINNEW', 'FINUPD');
|
||||
|
||||
CREATE OR REPLACE VIEW vbxx_v_fac_scan_result_trend
|
||||
AS
|
||||
SELECT factuur_key, fin_factuur_aanmaak, MAX (waarde) waarde
|
||||
FROM vbxx_v_fac_scan_result_detail
|
||||
GROUP BY factuur_key, fin_factuur_aanmaak;
|
||||
|
||||
------ payload end ------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user