WZUV#41726 Fase 2: Factuurimport Kenter en aanpassing view tbv Exact export contractgerelateerde facturen

svn path=/Customer/trunk/; revision=36576
This commit is contained in:
Suzan Wiegerinck
2018-01-14 13:15:32 +00:00
parent f8d3b1d5a6
commit 35021db1be

View File

@@ -952,35 +952,30 @@ BEGIN
-- Voeg prefix C toe aan het contractnummer van het actieve contract van Liander
-- het juiste contract kan bepaald worden op basis van het EAN nummer dat in kenmerkveldje 2 staat
UPDATE fac_imp_factuur f
SET f.ordernr =
(SELECT DECODE (
cnt_contract_versie,
NULL,
'C' || c.cnt_contract_nummer_intern,
'C'
|| c.cnt_contract_nummer_intern
|| '.'
|| cnt_contract_versie)
FROM cnt_contract c,
prs_bedrijf b,
cnt_kenmerkcontract kc,
cnt_kenmerk k,
cnt_srtkenmerk sk
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_key = kc.cnt_contract_key
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND UPPER (sk.cnt_srtkenmerk_omschrijving) LIKE '%EAN%'
AND kc.cnt_kenmerkcontract_waarde = f.kenmerk2
AND b.prs_bedrijf_naam_upper LIKE '%LIANDER%'
AND c.cnt_contract_looptijd_van <
fac.safe_to_date (f.factuurdatum, 'yyyy-mm-dd')
AND C.CNT_CONTRACT_LOOPTIJD_TOT >
fac.safe_to_date (f.factuurdatum, 'yyyy-mm-dd')
AND fac_import_key = p_import_key
AND f.ordernr IS NULL);
UPDATE fac_imp_factuur f
SET f.ordernr =
(SELECT DECODE (
cnt_contract_versie,
NULL,
'C' || c.cnt_contract_nummer_intern,
'C'
|| c.cnt_contract_nummer_intern
|| '.'
|| cnt_contract_versie)
AS orderid
FROM cnt_kenmerkcontract kc,
cnt_kenmerk k,
cnt_srtkenmerk sk,
cnt_contract c,
prs_bedrijf b
WHERE kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND kc.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_naam_upper LIKE '%LIANDER%'
AND UPPER (sk.cnt_srtkenmerk_omschrijving) LIKE '%EAN%'
AND cnt_kenmerkcontract_waarde = f.kenmerk2);
-- de boekmaand is de maand waarover de factuur betrekking heeft
-- het kenmerk veld bevat de begindatum van deze maand dus daar extraheren we het jaar en de maand uit
UPDATE fac_imp_factuur f
@@ -1051,7 +1046,7 @@ END;
-- ==========================================
-- VANAF HIER ALLE VIEWS EN PROCS VOOR DE EXACT KOPPELING
-- ==========================================
-- Kenmerk 1 is bijlage
-- Kenmerk 21 is bijlage
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BESTAND
(
FIN_FACTUUR_KEY,
@@ -1060,9 +1055,9 @@ CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BESTAND
AS
SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
FROM fin_kenmerkfactuur kf
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 1;
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 21;
-- Kenmerk 21 is betaalreferentie
-- Kenmerk 2 is betaalreferentie
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BETAALREF
(
FIN_FACTUUR_KEY,
@@ -1071,9 +1066,9 @@ CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BETAALREF
AS
SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
FROM fin_kenmerkfactuur kf
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 21;
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 2;
-- Kenmerk 22 is omschrijving kopregel
-- Kenmerk is omschrijving kopregel
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_OMSCHR_KOPREGEL
(
FIN_FACTUUR_KEY,
@@ -1082,9 +1077,9 @@ CREATE OR REPLACE VIEW WZUV_V_FACTUUR_OMSCHR_KOPREGEL
AS
SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde
FROM fin_kenmerkfactuur kf
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 22;
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL AND fin_kenmerk_key = 3;
-- Kenmerk 23 is omschrijving datum factuurregel
-- Kenmerk 4 is omschrijving datum factuurregel
CREATE OR REPLACE VIEW WZUV_V_FACTUURREGEL_DATUM
(
FIN_FACTUURREGEL_KEY,
@@ -1093,7 +1088,7 @@ CREATE OR REPLACE VIEW WZUV_V_FACTUURREGEL_DATUM
AS
SELECT kfr.fin_factuurregel_key, kfr.fin_kenmerkfactregel_waarde
FROM fin_kenmerkfactregel kfr
WHERE kfr.fin_kenmerkfactregel_verwijder IS NULL AND fin_kenmerk_key = 23;
WHERE kfr.fin_kenmerkfactregel_verwijder IS NULL AND fin_kenmerk_key = 4;
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BES_GEGEVENS
(
@@ -1240,11 +1235,11 @@ AS
fr.fin_factuurregel_nr,
fr.fin_factuurregel_omschrijving,
frd.fin_factuurregel_datum,
f.fin_factuur_debiteur_nr,
COALESCE(f.fin_factuur_debiteur_nr, b_c.prs_leverancier_nr, b_o.prs_leverancier_nr),
fbr.fin_factuur_betaalref,
fok.fin_factuur_omschr_kopregel,
NULL projectnummer,
COALESCE (ks_regel.prs_kostensoort_oms, ks.prs_kostensoort_oms),
COALESCE (ks_contract.prs_kostensoort_oms, ks_regel.prs_kostensoort_oms, ks.prs_kostensoort_oms),
DECODE (ks_regel.prs_kostensoort_oms,
NULL, ks.prs_kostensoort_doorbelasten,
ks_regel.prs_kostensoort_doorbelasten),
@@ -1268,6 +1263,7 @@ AS
prs_bedrijf b_c,
prs_kostensoort ks,
prs_kostensoort ks_regel,
prs_kostensoort ks_contract,
prs_kostenplaats kp_c,
prs_kostenplaats kp_o
WHERE f.fin_factuur_key = fr.fin_factuur_key
@@ -1285,8 +1281,8 @@ AS
AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
AND c.prs_kostenplaats_key = kp_c.prs_kostenplaats_key(+)
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+);
AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+)
AND c.prs_kostensoort_key= ks_contract.prs_kostensoort_key(+);
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_GEG_AKKOORD
(
@@ -2119,7 +2115,118 @@ AS
FROM fac_notificatie_job
WHERE UPPER (fac_notificatie_job_view) =
'WZUV_V_NOTI_VRIJKOMEN_APP3');
-- Factuur import Nuts facturen Kenter
CREATE OR REPLACE PROCEDURE wzuv_import_fin_fact_kenter (
p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR (50);
BEGIN
-- In de csv:
-- Verzamelspecificatie nr. (1) ;Geadresseerde (2) ;Adres (3) ;PC Plaats (4) ;EAN code (5) ;Product (6) ;Aansluitadres: straat (7) ;Aansluitadres: huisnummer(8) ;Aansluitadres: huisnummertoevoeging (9);Aansluitadres: postcode (10);
-- Aansluitadres: plaats (11) ;Locatiedetails (12) ;Kostenplaats (13) ;Kostendrager (14) ;Kostendrager2 (15) ;Factuurgroepering (16) ;Factuurdatum (17) ;Factuurnummer (18) ;Gestorneerde factuur (19) ;Factuurtype (20);
-- Bedrag excl. BTW (21) ;Bedrag excl. BTW 21% (22);Bedrag excl. BTW 19% (23) ;Bedrag excl. BTW 6% (24) ;Bedrag excl. BTW 0% (25) ;Afrekentijdvak: start (26) ;Afrekentijdvak: einde (27) ;Blok 1 (28) ;Blok aantal 1 (29) ;Blok prijs 1 (30) ;
-- Blok bedrag (excl. BTW) 1 (31) ;Blok BTW% 1 (32) ;Blok 2 (33) ;Blok aantal 2 (34) ;Blok prijs 2 (35) ;Blok bedrag (excl. BTW) 2 (36) ;Blok BTW% 2 (37);Blok 3 (38) ;Blok aantal 3 (39) ;Blok prijs 3 (40) ;
-- Blok bedrag (excl. BTW) 3 (41);Blok BTW% 3 (42) ;Blok 4 (43) ;Blok aantal 4 (44) ;Blok prijs 4 (45) ;Blok bedrag (excl. BTW) 4 (46) ;Blok BTW% 4 (47) ;Blok 5 (48) ;Blok aantal 5 (49) ;Blok prijs 5 (50);
-- Blok bedrag (excl. BTW) 5;Blok BTW% 5;Blok 6;Blok aantal 6;Blok prijs 6;Blok bedrag (excl. BTW) 6;Blok BTW% 6;Blok 7;Blok aantal 7;Blok prijs 7;Blok bedrag (excl. BTW) 7;Blok BTW% 7;Blok 8;Blok aantal 8;Blok prijs 8;Blok bedrag (excl. BTW) 8;Blok BTW% 8;Blok 9;Blok aantal 9;Blok prijs 9;Blok bedrag (excl. BTW) 9;Blok BTW% 9;Blok 10;Blok aantal 10;Blok prijs 10;Blok bedrag (excl. BTW) 10;Blok BTW% 10;Blok 11;Blok aantal 11;Blok prijs 11;Blok bedrag (excl. BTW) 11;Blok BTW% 11;Blok 12;Blok aantal 12;Blok prijs 12;Blok bedrag (excl. BTW) 12;Blok BTW% 12;Blok 13;Blok aantal 13;Blok prijs 13;Blok bedrag (excl. BTW) 13;Blok BTW% 13;Blok 14;Blok aantal 14;Blok prijs 14;Blok bedrag (excl. BTW) 14;Blok BTW% 14;Blok 15;Blok aantal 15;Blok prijs 15;Blok bedrag (excl. BTW) 15;Blok BTW% 15;Blok 16;Blok aantal 16;Blok prijs 16;Blok bedrag (excl. BTW) 16;Blok BTW% 16;Blok 17;Blok aantal 17;Blok prijs 17;Blok bedrag (excl. BTW) 17;Blok BTW% 17;Blok 18;Blok aantal 18;Blok prijs 18;Blok bedrag (excl. BTW) 18;Blok BTW% 18;Blok 19;Blok aantal 19;Blok prijs 19;Blok bedrag (excl. BTW) 19;Blok BTW% 19;Blok 20;Blok aantal 20;Blok prijs 20;Blok bedrag (excl. BTW) 20;Blok BTW% 20;Blok 21;Blok aantal 21;Blok prijs 21;Blok bedrag (excl. BTW) 21;Blok BTW% 21;Blok 22;Blok aantal 22;Blok prijs 22;Blok bedrag (excl. BTW) 22;Blok BTW% 22;Blok 23;Blok aantal 23;Blok prijs 23;Blok bedrag (excl. BTW) 23;Blok BTW% 23;Blok 24;Blok aantal 24;Blok prijs 24;Blok bedrag (excl. BTW) 24;Blok BTW% 24;Blok 25;Blok aantal 25;Blok prijs 25;Blok bedrag (excl. BTW) 25;Blok BTW% 25;Blok 26;Blok aantal 26;Blok prijs 26;Blok bedrag (excl. BTW) 26;Blok BTW% 26;Blok 27;Blok aantal 27;Blok prijs 27;Blok bedrag (excl. BTW) 27;Blok BTW% 27;Blok 28;Blok aantal 28;Blok prijs 28;Blok bedrag (excl. BTW) 28;Blok BTW% 28;Blok 29;Blok aantal 29;Blok prijs 29;Blok bedrag (excl. BTW) 29;Blok BTW% 29;Blok 30;Blok aantal 30;Blok prijs 30;Blok bedrag (excl. BTW) 30;Blok BTW% 30;Factuuraanbieder;BTW Bedrijfsnaam;BTW Nummer;KVK nummer
--hulp voor pos : '1;2;3;4;5;6;7;8;9;0;1;2;3;4;5;6;7;8;9;0'
v_seq_of_columns :='0;18;17;5;0;0;6;0;21;0;32;0;0;0;0;26;5;0;0;0';
-- Variabelelijst
-- v_leveranciernr: 1
-- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet")
-- v_factuurdatum: 3
-- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_locatie: 5
-- v_afleverdatum: 6
-- v_omschrijving: 7
-- v_aantal: 8
-- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet")
-- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet")
-- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet")
-- v_docid: 12
-- v_debiteur_nr: 13
-- v_opmerking: 14
-- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/<leeg> waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet")
-- v_kenmerk1: 16
-- v_kenmerk1: 17
-- v_kenmerk1: 18
-- v_kenmerk1: 19
-- v_kenmerk1: 20
-- v_boekmaand: 21
fac_import_factuur_body (p_import_key, v_seq_of_columns);
-- De header regel kan verwijderd worden
DELETE fac_imp_factuur f
WHERE f.factuurnr = 'Factuurnummer';
-- Het EAN nummer bevat nog een ' deze moet verwijderd worden
UPDATE fac_imp_factuur
SET kenmerk2 = SUBSTR (kenmerk2, 2, 18);
-- Voeg prefix C toe aan het contractnummer van het actieve contract van Liander
-- het juiste contract kan bepaald worden op basis van het EAN nummer dat in kenmerkveldje 2 staat
UPDATE fac_imp_factuur f
SET f.ordernr =
(SELECT DECODE (
cnt_contract_versie,
NULL,
'C' || c.cnt_contract_nummer_intern,
'C'
|| c.cnt_contract_nummer_intern
|| '.'
|| cnt_contract_versie)
AS orderid
FROM cnt_kenmerkcontract kc,
cnt_kenmerk k,
cnt_srtkenmerk sk,
cnt_contract c,
prs_bedrijf b
WHERE kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND kc.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_naam_upper LIKE '%KENTER%'
AND UPPER (sk.cnt_srtkenmerk_omschrijving) LIKE '%EAN%'
AND cnt_kenmerkcontract_waarde = f.kenmerk2);
-- de boekmaand is de maand waarover de factuur betrekking heeft
-- het kenmerk veld bevat de begindatum van deze maand dus daar extraheren we het jaar en de maand uit
UPDATE fac_imp_factuur f
SET f.boekmaand = SUBSTR (kenmerk1, 7, 4) || SUBSTR (kenmerk1, 3, 3)
WHERE kenmerk1 IS NOT NULL;
-- per boekmaand moet een factuur geboekt worden
-- dus die plakken we voor nu maar even achter het factuurnummer
UPDATE fac_imp_factuur f
SET F.FACTUURNR = F.FACTUURNR ||'/'|| F.BOEKMAAND
WHERE kenmerk1 IS NOT NULL;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE wzuv_update_fin_fact_kenter (
p_import_key IN NUMBER)
AS
BEGIN
-- Standaard FCLT verwerk import facturen
fac_update_factuur (p_import_key);
-- Bij de import hebben we de facturen gesplits naar periode
-- Deze splitsing maken we nu weer ongedaan
UPDATE fin_factuur f
SET f.fin_factuur_nr =
SUBSTR (f.fin_factuur_nr, 1, INSTR (f.fin_factuur_nr, '/') - 1)
WHERE f.fin_factuur_key IN (SELECT i.fin_factuur_key
FROM fac_imp_factuur i
WHERE i.fac_import_key = p_import_key);
END;
/
BEGIN
DBMS_UTILITY.COMPILE_SCHEMA (USER, FALSE);