WZUV#41726 Fase 2: Exact koppeling en factuurimport Liander
svn path=/Customer/trunk/; revision=36186
This commit is contained in:
765
WZUV/WZUV.SQL
765
WZUV/WZUV.SQL
@@ -913,6 +913,771 @@ AS
|
||||
OR aog.alg_ruimte_key = ar.alg_ruimte_key)
|
||||
AND kpl_cat.alg_onrgoed_key(+) = aog.alg_gebouw_key;
|
||||
|
||||
CREATE OR REPLACE PROCEDURE wzuv_import_fin_fact_liander (
|
||||
p_import_key IN NUMBER)
|
||||
AS
|
||||
v_seq_of_columns VARCHAR (50);
|
||||
BEGIN
|
||||
-- In de xsl factuurnr(1);factuurdatum(2);opdrachtnr(3);omschrijving(4);bedrag(5);btwperc(6);btwbedrag(7);pdf(8)
|
||||
--hulp voor pos : '1;2;3;4;5;6;7;8;9;0;1;2;3;14;15;16;7;8;9;0'
|
||||
v_seq_of_columns := '0;1;2;0;0;0;3;0;4;6;5;0;0;0;0;7;0;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);
|
||||
|
||||
-- Voeg prefix C toe aan het contractnummer van het actieve contract van Liander
|
||||
UPDATE fac_imp_factuur f
|
||||
SET f.ordernr =
|
||||
(SELECT DISTINCT 'C' || c.cnt_contract_key
|
||||
FROM cnt_contract c, prs_bedrijf b
|
||||
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||||
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);
|
||||
|
||||
-- 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, 1, 7)
|
||||
WHERE kenmerk1 IS NOT NULL;
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE wzuv_update_fin_fact_liander (
|
||||
p_import_key IN NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
-- Standaard FCLT verwerk import facturen
|
||||
fac_update_factuur (p_import_key);
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
-- ==========================================
|
||||
-- VANAF HIER ALLE VIEWS EN PROCS VOOR DE EXACT KOPPELING
|
||||
-- ==========================================
|
||||
-- Kenmerk 1 is bijlage
|
||||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BESTAND
|
||||
(
|
||||
FIN_FACTUUR_KEY,
|
||||
FIN_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;
|
||||
|
||||
-- Kenmerk 21 is betaalreferentie
|
||||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BETAALREF
|
||||
(
|
||||
FIN_FACTUUR_KEY,
|
||||
FIN_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;
|
||||
|
||||
-- Kenmerk 22 is omschrijving kopregel
|
||||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_OMSCHR_KOPREGEL
|
||||
(
|
||||
FIN_FACTUUR_KEY,
|
||||
FIN_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;
|
||||
|
||||
-- Kenmerk 23 is omschrijving datum factuurregel
|
||||
CREATE OR REPLACE VIEW WZUV_V_FACTUURREGEL_DATUM
|
||||
(
|
||||
FIN_FACTUURREGEL_KEY,
|
||||
FIN_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;
|
||||
|
||||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_BES_GEGEVENS
|
||||
(
|
||||
FIN_FACTUUR_KEY,
|
||||
OPDRACHT_ID,
|
||||
FIN_FACTUUR_DATUM,
|
||||
FIN_FACTUUR_BOEKMAAND,
|
||||
FIN_FACTUUR_NR,
|
||||
FIN_FACTUUR_BESTAND,
|
||||
PRS_BEDRIJF_KEY,
|
||||
FIN_FACTUURREGEL_TOTAAL,
|
||||
FIN_FACTUURREGEL_BTW,
|
||||
FIN_FACTUURREGEL_BTW_PERC,
|
||||
FIN_BTWTABELWAARDE_BTWCODE,
|
||||
FIN_FACTUURREGEL_NR,
|
||||
FIN_FACTUURREGEL_OMSCHRIJVING,
|
||||
FIN_FACTUURREGEL_DATUM,
|
||||
FIN_FACTUUR_DEBITEUR_NR,
|
||||
FIN_FACTUUR_BETAALREF,
|
||||
FIN_FACTUUR_OMSCHR_KOPREGEL,
|
||||
PROJECT_NUMMER,
|
||||
PRS_KOSTENSOORT_OMS,
|
||||
PRS_KOSTENSOORT_DOORBELASTEN,
|
||||
PRS_KOSTENPLAATS_NR,
|
||||
BES_OPDR_KEY,
|
||||
MLD_OPDR_KEY,
|
||||
CNT_CONTRACT_KEY,
|
||||
FIN_FACTUUR_STATUSES_KEY
|
||||
)
|
||||
AS
|
||||
SELECT DISTINCT
|
||||
f.fin_factuur_key,
|
||||
TO_CHAR (bo.bes_bestelopdr_id) opdracht_id,
|
||||
f.fin_factuur_datum,
|
||||
f.fin_factuur_boekmaand,
|
||||
f.fin_factuur_nr,
|
||||
fb.fin_factuur_bestand,
|
||||
b.prs_bedrijf_key,
|
||||
fr.fin_factuurregel_totaal,
|
||||
fr.fin_factuurregel_btw,
|
||||
btw.fin_btwtabelwaarde_perc,
|
||||
btw.fin_btwtabelwaarde_code,
|
||||
fr.fin_factuurregel_nr,
|
||||
fr.fin_factuurregel_omschrijving,
|
||||
frd.fin_factuurregel_datum,
|
||||
f.fin_factuur_debiteur_nr,
|
||||
fbr.fin_factuur_betaalref,
|
||||
fok.fin_factuur_omschr_kopregel,
|
||||
NULL projectnummer,
|
||||
COALESCE (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),
|
||||
kp.prs_kostenplaats_nr,
|
||||
bo.bes_bestelopdr_key bes_opdr_key,
|
||||
NULL mld_opdr_key,
|
||||
NULL cnt_contract_key,
|
||||
f.fin_factuur_statuses_key
|
||||
FROM bes_bestelopdr bo,
|
||||
prs_bedrijf b,
|
||||
bes_bestelling bes,
|
||||
bes_bestelopdr_item boi,
|
||||
bes_bestelling_item bi,
|
||||
fin_factuur f,
|
||||
wzuv_v_factuur_bestand fb,
|
||||
wzuv_v_factuur_betaalref fbr,
|
||||
wzuv_v_factuur_omschr_kopregel fok,
|
||||
fin_factuurregel fr,
|
||||
wzuv_v_factuurregel_datum frd,
|
||||
fin_btwtabelwaarde btw,
|
||||
prs_kostensoort ks,
|
||||
prs_kostensoort ks_regel,
|
||||
prs_kostenplaats kp
|
||||
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key
|
||||
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||||
AND bes.bes_bestelling_key = bi.bes_bestelling_key
|
||||
AND kp.prs_kostenplaats_key = bes.prs_kostenplaats_key
|
||||
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||||
AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+)
|
||||
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||||
AND f.fin_factuur_key = fr.fin_factuur_key
|
||||
AND fr.fin_factuurregel_key = frd.fin_factuurregel_key(+)
|
||||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
|
||||
AND f.fin_factuur_key = fb.fin_factuur_key(+)
|
||||
AND f.fin_factuur_key = fbr.fin_factuur_key(+)
|
||||
AND f.fin_factuur_key = fok.fin_factuur_key(+);
|
||||
|
||||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_MLDCNT_GEGEVENS
|
||||
(
|
||||
FIN_FACTUUR_KEY,
|
||||
OPDRACHT_ID,
|
||||
FIN_FACTUUR_DATUM,
|
||||
FIN_FACTUUR_BOEKMAAND,
|
||||
FIN_FACTUUR_NR,
|
||||
FIN_FACTUUR_BESTAND,
|
||||
PRS_BEDRIJF_KEY,
|
||||
FIN_FACTUURREGEL_TOTAAL,
|
||||
FIN_FACTUURREGEL_BTW,
|
||||
FIN_FACTUURREGEL_BTW_PERC,
|
||||
FIN_BTWTABELWAARDE_BTWCODE,
|
||||
FIN_FACTUURREGEL_NR,
|
||||
FIN_FACTUURREGEL_OMSCHRIJVING,
|
||||
FIN_FACTUURREGEL_DATUM,
|
||||
FIN_FACTUUR_DEBITEUR_NR,
|
||||
FIN_FACTUUR_BETAALREF,
|
||||
FIN_FACTUUR_OMSCHR_KOPREGEL,
|
||||
PROJECT_NUMMER,
|
||||
PRS_KOSTENSOORT_OMS,
|
||||
PRS_KOSTENSOORT_DOORBELASTEN,
|
||||
PRS_KOSTENPLAATS_NR,
|
||||
BES_OPDR_KEY,
|
||||
MLD_OPDR_KEY,
|
||||
CNT_CONTRACT_KEY,
|
||||
FIN_FACTUUR_STATUSES_KEY
|
||||
)
|
||||
AS
|
||||
SELECT DISTINCT
|
||||
f.fin_factuur_key,
|
||||
COALESCE (
|
||||
TO_CHAR (cnt_contract_nummer),
|
||||
(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))
|
||||
opdracht_id,
|
||||
f.fin_factuur_datum,
|
||||
f.fin_factuur_boekmaand,
|
||||
f.fin_factuur_nr,
|
||||
fb.fin_factuur_bestand,
|
||||
COALESCE (b_c.prs_bedrijf_key, b_o.prs_bedrijf_key) prs_bedrijf_key,
|
||||
fr.fin_factuurregel_totaal,
|
||||
fr.fin_factuurregel_btw,
|
||||
btw.fin_btwtabelwaarde_perc,
|
||||
btw.fin_btwtabelwaarde_code,
|
||||
fr.fin_factuurregel_nr,
|
||||
fr.fin_factuurregel_omschrijving,
|
||||
frd.fin_factuurregel_datum,
|
||||
f.fin_factuur_debiteur_nr,
|
||||
fbr.fin_factuur_betaalref,
|
||||
fok.fin_factuur_omschr_kopregel,
|
||||
NULL projectnummer,
|
||||
COALESCE (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),
|
||||
COALESCE (kp_c.prs_kostenplaats_nr, kp_o.prs_kostenplaats_nr)
|
||||
prs_kostenplaats_nr,
|
||||
NULL bes_opdr_key,
|
||||
o.mld_opdr_key,
|
||||
c.cnt_contract_key,
|
||||
f.fin_factuur_statuses_key
|
||||
FROM fin_factuur f,
|
||||
wzuv_v_factuur_bestand fb,
|
||||
wzuv_v_factuur_betaalref fbr,
|
||||
wzuv_v_factuur_omschr_kopregel fok,
|
||||
fin_factuurregel fr,
|
||||
wzuv_v_factuurregel_datum frd,
|
||||
fin_btwtabelwaarde btw,
|
||||
mld_opdr o,
|
||||
mld_typeopdr ot,
|
||||
cnt_contract c,
|
||||
prs_bedrijf b_o,
|
||||
prs_bedrijf b_c,
|
||||
prs_kostensoort ks,
|
||||
prs_kostensoort ks_regel,
|
||||
prs_kostenplaats kp_c,
|
||||
prs_kostenplaats kp_o
|
||||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||||
AND fr.fin_factuurregel_key = frd.fin_factuurregel_key(+)
|
||||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
|
||||
AND f.fin_factuur_key = fb.fin_factuur_key(+)
|
||||
AND f.fin_factuur_key = fbr.fin_factuur_key(+)
|
||||
AND f.fin_factuur_key = fok.fin_factuur_key(+)
|
||||
AND f.bes_bestelopdr_key IS NULL
|
||||
AND f.mld_opdr_key = o.mld_opdr_key(+)
|
||||
AND o.prs_kostenplaats_key = kp_o.prs_kostenplaats_key(+)
|
||||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||||
AND f.cnt_contract_key = c.cnt_contract_key(+)
|
||||
AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+)
|
||||
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(+);
|
||||
|
||||
|
||||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_GEG_AKKOORD
|
||||
(
|
||||
FIN_FACTUUR_KEY,
|
||||
OPDRACHT_ID,
|
||||
FIN_FACTUUR_DATUM,
|
||||
FIN_FACTUUR_BOEKMAAND,
|
||||
FIN_FACTUUR_NR,
|
||||
FIN_FACTUUR_BESTAND,
|
||||
PRS_BEDRIJF_KEY,
|
||||
FIN_FACTUURREGEL_TOTAAL,
|
||||
FIN_FACTUURREGEL_BTW,
|
||||
FIN_FACTUURREGEL_BTW_PERC,
|
||||
FIN_BTWTABELWAARDE_BTWCODE,
|
||||
FIN_FACTUURREGEL_NR,
|
||||
FIN_FACTUURREGEL_OMSCHRIJVING,
|
||||
FIN_FACTUURREGEL_DATUM,
|
||||
FIN_FACTUUR_DEBITEUR_NR,
|
||||
FIN_FACTUUR_BETAALREF,
|
||||
FIN_FACTUUR_OMSCHR_KOPREGEL,
|
||||
PROJECT_NUMMER,
|
||||
PRS_KOSTENSOORT_OMS,
|
||||
PRS_KOSTENSOORT_DOORBELASTEN,
|
||||
PRS_KOSTENPLAATS_NR,
|
||||
BES_OPDR_KEY,
|
||||
MLD_OPDR_KEY,
|
||||
CNT_CONTRACT_KEY,
|
||||
FIN_FACTUUR_STATUSES_KEY
|
||||
)
|
||||
AS
|
||||
SELECT "FIN_FACTUUR_KEY",
|
||||
"OPDRACHT_ID",
|
||||
"FIN_FACTUUR_DATUM",
|
||||
"FIN_FACTUUR_BOEKMAAND",
|
||||
"FIN_FACTUUR_NR",
|
||||
"FIN_FACTUUR_BESTAND",
|
||||
"PRS_BEDRIJF_KEY",
|
||||
"FIN_FACTUURREGEL_TOTAAL",
|
||||
"FIN_FACTUURREGEL_BTW",
|
||||
"FIN_FACTUURREGEL_BTW_PERC",
|
||||
"FIN_BTWTABELWAARDE_BTWCODE",
|
||||
"FIN_FACTUURREGEL_NR",
|
||||
"FIN_FACTUURREGEL_OMSCHRIJVING",
|
||||
"FIN_FACTUURREGEL_DATUM",
|
||||
"FIN_FACTUUR_DEBITEUR_NR",
|
||||
"FIN_FACTUUR_BETAALREF",
|
||||
"FIN_FACTUUR_OMSCHR_KOPREGEL",
|
||||
"PROJECT_NUMMER",
|
||||
"PRS_KOSTENSOORT_OMS",
|
||||
"PRS_KOSTENSOORT_DOORBELASTEN",
|
||||
"PRS_KOSTENPLAATS_NR",
|
||||
"BES_OPDR_KEY",
|
||||
"MLD_OPDR_KEY",
|
||||
"CNT_CONTRACT_KEY",
|
||||
"FIN_FACTUUR_STATUSES_KEY"
|
||||
FROM wzuv_v_factuur_mldcnt_gegevens
|
||||
WHERE fin_factuur_statuses_key = 6
|
||||
UNION
|
||||
SELECT "FIN_FACTUUR_KEY",
|
||||
"OPDRACHT_ID",
|
||||
"FIN_FACTUUR_DATUM",
|
||||
"FIN_FACTUUR_BOEKMAAND",
|
||||
"FIN_FACTUUR_NR",
|
||||
"FIN_FACTUUR_BESTAND",
|
||||
"PRS_BEDRIJF_KEY",
|
||||
"FIN_FACTUURREGEL_TOTAAL",
|
||||
"FIN_FACTUURREGEL_BTW",
|
||||
"FIN_FACTUURREGEL_BTW_PERC",
|
||||
"FIN_BTWTABELWAARDE_BTWCODE",
|
||||
"FIN_FACTUURREGEL_NR",
|
||||
"FIN_FACTUURREGEL_OMSCHRIJVING",
|
||||
"FIN_FACTUURREGEL_DATUM",
|
||||
"FIN_FACTUUR_DEBITEUR_NR",
|
||||
"FIN_FACTUUR_BETAALREF",
|
||||
"FIN_FACTUUR_OMSCHR_KOPREGEL",
|
||||
"PROJECT_NUMMER",
|
||||
"PRS_KOSTENSOORT_OMS",
|
||||
"PRS_KOSTENSOORT_DOORBELASTEN",
|
||||
"PRS_KOSTENPLAATS_NR",
|
||||
"BES_OPDR_KEY",
|
||||
"MLD_OPDR_KEY",
|
||||
"CNT_CONTRACT_KEY",
|
||||
"FIN_FACTUUR_STATUSES_KEY"
|
||||
FROM wzuv_v_factuur_bes_gegevens
|
||||
WHERE fin_factuur_statuses_key = 6;
|
||||
|
||||
CREATE OR REPLACE VIEW WZUV_V_FACTUUR_GEG
|
||||
(
|
||||
FIN_FACTUUR_KEY,
|
||||
OPDRACHT_ID,
|
||||
FIN_FACTUUR_DATUM,
|
||||
FIN_FACTUUR_BOEKMAAND,
|
||||
FIN_FACTUUR_NR,
|
||||
FIN_FACTUUR_BESTAND,
|
||||
PRS_BEDRIJF_KEY,
|
||||
FIN_FACTUURREGEL_TOTAAL,
|
||||
FIN_FACTUURREGEL_BTW,
|
||||
FIN_FACTUURREGEL_BTW_PERC,
|
||||
FIN_BTWTABELWAARDE_BTWCODE,
|
||||
FIN_FACTUURREGEL_NR,
|
||||
FIN_FACTUURREGEL_OMSCHRIJVING,
|
||||
FIN_FACTUURREGEL_DATUM,
|
||||
FIN_FACTUUR_DEBITEUR_NR,
|
||||
FIN_FACTUUR_BETAALREF,
|
||||
FIN_FACTUUR_OMSCHR_KOPREGEL,
|
||||
PROJECT_NUMMER,
|
||||
PRS_KOSTENSOORT_OMS,
|
||||
PRS_KOSTENSOORT_DOORBELASTEN,
|
||||
PRS_KOSTENPLAATS_NR,
|
||||
BES_OPDR_KEY,
|
||||
MLD_OPDR_KEY,
|
||||
CNT_CONTRACT_KEY,
|
||||
FIN_FACTUUR_STATUSES_KEY
|
||||
)
|
||||
AS
|
||||
SELECT "FIN_FACTUUR_KEY",
|
||||
"OPDRACHT_ID",
|
||||
"FIN_FACTUUR_DATUM",
|
||||
"FIN_FACTUUR_BOEKMAAND",
|
||||
"FIN_FACTUUR_NR",
|
||||
"FIN_FACTUUR_BESTAND",
|
||||
"PRS_BEDRIJF_KEY",
|
||||
"FIN_FACTUURREGEL_TOTAAL",
|
||||
"FIN_FACTUURREGEL_BTW",
|
||||
"FIN_FACTUURREGEL_BTW_PERC",
|
||||
"FIN_BTWTABELWAARDE_BTWCODE",
|
||||
"FIN_FACTUURREGEL_NR",
|
||||
"FIN_FACTUURREGEL_OMSCHRIJVING",
|
||||
"FIN_FACTUURREGEL_DATUM",
|
||||
"FIN_FACTUUR_DEBITEUR_NR",
|
||||
"FIN_FACTUUR_BETAALREF",
|
||||
"FIN_FACTUUR_OMSCHR_KOPREGEL",
|
||||
"PROJECT_NUMMER",
|
||||
"PRS_KOSTENSOORT_OMS",
|
||||
"PRS_KOSTENSOORT_DOORBELASTEN",
|
||||
"PRS_KOSTENPLAATS_NR",
|
||||
"BES_OPDR_KEY",
|
||||
"MLD_OPDR_KEY",
|
||||
"CNT_CONTRACT_KEY",
|
||||
"FIN_FACTUUR_STATUSES_KEY"
|
||||
FROM wzuv_v_factuur_mldcnt_gegevens
|
||||
UNION
|
||||
SELECT "FIN_FACTUUR_KEY",
|
||||
"OPDRACHT_ID",
|
||||
"FIN_FACTUUR_DATUM",
|
||||
"FIN_FACTUUR_BOEKMAAND",
|
||||
"FIN_FACTUUR_NR",
|
||||
"FIN_FACTUUR_BESTAND",
|
||||
"PRS_BEDRIJF_KEY",
|
||||
"FIN_FACTUURREGEL_TOTAAL",
|
||||
"FIN_FACTUURREGEL_BTW",
|
||||
"FIN_FACTUURREGEL_BTW_PERC",
|
||||
"FIN_BTWTABELWAARDE_BTWCODE",
|
||||
"FIN_FACTUURREGEL_NR",
|
||||
"FIN_FACTUURREGEL_OMSCHRIJVING",
|
||||
"FIN_FACTUURREGEL_DATUM",
|
||||
"FIN_FACTUUR_DEBITEUR_NR",
|
||||
"FIN_FACTUUR_BETAALREF",
|
||||
"FIN_FACTUUR_OMSCHR_KOPREGEL",
|
||||
"PROJECT_NUMMER",
|
||||
"PRS_KOSTENSOORT_OMS",
|
||||
"PRS_KOSTENSOORT_DOORBELASTEN",
|
||||
"PRS_KOSTENPLAATS_NR",
|
||||
"BES_OPDR_KEY",
|
||||
"MLD_OPDR_KEY",
|
||||
"CNT_CONTRACT_KEY",
|
||||
"FIN_FACTUUR_STATUSES_KEY"
|
||||
FROM wzuv_v_factuur_bes_gegevens;
|
||||
|
||||
-- Alle waarden (zijn evt meer records) uit eigen tabel 'Exact' waarvan de waarde_code met een
|
||||
-- zekere prefix begint (volgens de systeem-setting PREFIX_FCLT_FACTUUR_XML_HEADER), komen in de header vd xml terecht
|
||||
-- 121 is de eigen tabel met dagboeknrs. (op dit moment alleen '40' moet nog gevuld worden)
|
||||
CREATE OR REPLACE VIEW wzuv_v_fclt_factuur_header (
|
||||
result,
|
||||
result_order
|
||||
)
|
||||
AS
|
||||
SELECT '<' || fac_usrdata_code || '>' || fac_usrdata_omschr || '</' || fac_usrdata_code || '>', 1
|
||||
FROM fac_usrdata
|
||||
WHERE fac_usrtab_key = 121
|
||||
AND fac_usrdata_verwijder is null;
|
||||
|
||||
CREATE OR REPLACE VIEW wzuv_v_fclt_factuur_body (
|
||||
result,
|
||||
result_order
|
||||
)
|
||||
AS
|
||||
SELECT DECODE(regelnummer,0,'<fin_factuur>','<fin_factuurregel>')
|
||||
|| '<fin_factuur_key>' || fin_factuur_key || '</fin_factuur_key>'
|
||||
|| '<fin_factuur_nr>' || xml.char_to_html(fin_factuur_nr) || '</fin_factuur_nr>'
|
||||
|| '<fin_factuur_bestand>' || xml.char_to_html(fin_factuur_bestand) || '</fin_factuur_bestand>'
|
||||
|| '<fin_factuur_debiteur_nr>' || xml.char_to_html(fin_factuur_debiteur_nr) || '</fin_factuur_debiteur_nr>'
|
||||
|| '<fin_factuur_omschr_kopregel>' || xml.char_to_html(fin_factuur_omschr_kopregel) || '</fin_factuur_omschr_kopregel>'
|
||||
|| '<bes_mld_cnt_opdracht_id>' || xml.char_to_html(bes_mld_cnt_opdracht_id) || '</bes_mld_cnt_opdracht_id>'
|
||||
|| '<fin_factuur_datum>' || datum || '</fin_factuur_datum>'
|
||||
|| '<fin_factuur_boekmaand>' || fin_factuur_boekmaand || '</fin_factuur_boekmaand>'
|
||||
|| '<prs_kostensoort_oms>' || xml.char_to_html(grootboekrekening) || '</prs_kostensoort_oms>'
|
||||
|| '<prs_kostensoort_doorbelasten>' || xml.char_to_html(kostensoort_doorbelasten)|| '</prs_kostensoort_doorbelasten>'
|
||||
|| '<prs_betaal_referentie>' || xml.char_to_html(betaalreferentie) || '</prs_betaal_referentie>'
|
||||
|| '<prs_leverancier_nr>' || xml.char_to_html(crediteur_nr) || '</prs_leverancier_nr>'
|
||||
|| '<prs_bedrijf_naam>' || xml.char_to_html(crediteur_naam) || '</prs_bedrijf_naam>'
|
||||
|| '<fin_factuur_totaal_exbtw>' || fin_factuur_totaal_exbtw || '</fin_factuur_totaal_exbtw>'
|
||||
|| '<fin_factuur_totaal_incbtw>' || fin_factuur_totaal_incbtw || '</fin_factuur_totaal_incbtw>'
|
||||
|| '<fin_factuurregel_omschrijving>' || xml.char_to_html(fin_factuurregel_omschrijving) || '</fin_factuurregel_omschrijving>'
|
||||
|| '<fin_factuurregel_datum>' || xml.char_to_html(fin_factuurregel_datum) || '</fin_factuurregel_datum>'
|
||||
|| '<fin_factuurregel_totaal>' || fin_factuurregel_totaal || '</fin_factuurregel_totaal>'
|
||||
|| '<fin_factuurregel_btw_perc>' || btw_percentage || '</fin_factuurregel_btw_perc>'
|
||||
|| '<fin_factuurregel_btw_perc_code>' || xml.char_to_html(btw_code) || '</fin_factuurregel_btw_perc_code>'
|
||||
|| '<fin_factuurregel_btw_bedrag>' || btw_bedrag || '</fin_factuurregel_btw_bedrag>'
|
||||
|| '<prs_kostenplaats_nr>' || xml.char_to_html(prs_kostenplaats_nr) || '</prs_kostenplaats_nr>'
|
||||
|| DECODE(regelnummer, 0, '', DECODE(max_factuur_regelnr - regelnummer,0,'</fin_factuurregel></fin_factuur>','</fin_factuurregel>'))
|
||||
,
|
||||
(1000000 + fin_factuur_key) * 10000 + regelnummer
|
||||
FROM (SELECT 0 regelnummer,
|
||||
aant_factuur_regels,
|
||||
max_factuur_regelnr,
|
||||
fin_factuur_key,
|
||||
fin_factuur_nr,
|
||||
fin_factuur_bestand,
|
||||
fin_factuur_debiteur_nr,
|
||||
fin_factuur_omschr_kopregel,
|
||||
opdracht_id bes_mld_cnt_opdracht_id,
|
||||
TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
|
||||
fin_factuur_boekmaand,
|
||||
'' grootboekrekening,
|
||||
'' kostensoort_doorbelasten,
|
||||
betaalreferentie,
|
||||
(SELECT prs_leverancier_nr
|
||||
FROM prs_bedrijf b
|
||||
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key) crediteur_nr,
|
||||
(SELECT prs_bedrijf_naam
|
||||
FROM prs_bedrijf b
|
||||
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key) crediteur_naam,
|
||||
REPLACE (TO_CHAR (ROUND(bedrag_exbtw,2)), ',', '.') fin_factuur_totaal_exbtw,
|
||||
REPLACE (TO_CHAR (ROUND(bedrag_incbtw,2)), ',', '.') fin_factuur_totaal_incbtw,
|
||||
'' fin_factuurregel_omschrijving,
|
||||
'' fin_factuurregel_datum,
|
||||
'' fin_factuurregel_totaal,
|
||||
'' btw_percentage,
|
||||
'' btw_code,
|
||||
'' btw_bedrag,
|
||||
'' prs_kostenplaats_nr
|
||||
FROM (SELECT fin_factuur_key,
|
||||
opdracht_id,
|
||||
fin_factuur_datum,
|
||||
fin_factuur_boekmaand,
|
||||
fin_factuur_nr,
|
||||
fin_factuur_bestand,
|
||||
prs_bedrijf_key,
|
||||
fin_factuur_debiteur_nr,
|
||||
COALESCE(fin_factuur_betaalref, fin_factuur_nr || '/' || fin_factuur_debiteur_nr) betaalreferentie,
|
||||
fin_factuur_omschr_kopregel,
|
||||
COUNT(fin_factuur_key) AS aant_factuur_regels,
|
||||
MAX (fin_factuurregel_nr) AS max_factuur_regelnr,
|
||||
SUM (fin_factuurregel_totaal) bedrag_exbtw,
|
||||
SUM (fin_factuurregel_totaal + fin_factuurregel_btw) bedrag_incbtw
|
||||
FROM wzuv_v_factuur_geg_akkoord ---DEZE DUS
|
||||
GROUP BY fin_factuur_key,
|
||||
opdracht_id,
|
||||
fin_factuur_datum,
|
||||
fin_factuur_boekmaand,
|
||||
fin_factuur_nr,
|
||||
fin_factuur_bestand,
|
||||
prs_bedrijf_key,
|
||||
fin_factuur_debiteur_nr,
|
||||
fin_factuur_betaalref,
|
||||
fin_factuur_omschr_kopregel) fg
|
||||
UNION ALL
|
||||
SELECT fin_factuurregel_nr regelnummer,
|
||||
(SELECT COUNT(fin_factuur_key)
|
||||
FROM wzuv_v_factuur_geg_akkoord fc
|
||||
WHERE fc.fin_factuur_key = fg.fin_factuur_key
|
||||
GROUP BY fin_factuur_key,
|
||||
opdracht_id,
|
||||
fin_factuur_datum,
|
||||
fin_factuur_nr,
|
||||
prs_bedrijf_key,
|
||||
fin_factuur_debiteur_nr) AS aant_factuur_regels,
|
||||
(SELECT MAX(fin_factuurregel_nr)
|
||||
FROM wzuv_v_factuur_geg_akkoord fc
|
||||
WHERE fc.fin_factuur_key = fg.fin_factuur_key
|
||||
GROUP BY fin_factuur_key,
|
||||
opdracht_id,
|
||||
fin_factuur_datum,
|
||||
fin_factuur_nr,
|
||||
prs_bedrijf_key,
|
||||
fin_factuur_debiteur_nr) AS max_factuur_regelnr,
|
||||
fin_factuur_key,
|
||||
fin_factuur_nr,
|
||||
'' fin_factuur_bestand,
|
||||
fin_factuur_debiteur_nr,
|
||||
'' fin_factuur_omschr_kopregel,
|
||||
'' bes_mld_cnt_opdracht_id,
|
||||
TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
|
||||
fin_factuur_boekmaand,
|
||||
prs_kostensoort_oms grootboekrekening,
|
||||
TO_CHAR(prs_kostensoort_doorbelasten) kostensoort_doorbelasten,
|
||||
COALESCE(fin_factuur_betaalref, fin_factuur_nr || '/' || fin_factuur_debiteur_nr) betaalreferentie,
|
||||
(SELECT prs_leverancier_nr
|
||||
FROM prs_bedrijf b
|
||||
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key) crediteur_nr,
|
||||
(SELECT prs_bedrijf_naam
|
||||
FROM prs_bedrijf b
|
||||
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key) crediteur_naam,
|
||||
'' fin_factuur_totaal_exbtw,
|
||||
'' fin_factuur_totaal_incbtw,
|
||||
fin_factuurregel_omschrijving,
|
||||
fin_factuurregel_datum,
|
||||
REPLACE (TO_CHAR (ROUND(fin_factuurregel_totaal,2)), ',', '.') fin_factuurregel_totaal,
|
||||
TO_CHAR(fin_factuurregel_btw_perc) btw_percentage,
|
||||
fin_btwtabelwaarde_btwcode btw_code,
|
||||
REPLACE (TO_CHAR (ROUND(fin_factuurregel_btw,2)), ',', '.') btw_bedrag,
|
||||
prs_kostenplaats_nr
|
||||
FROM wzuv_v_factuur_geg_akkoord fg
|
||||
ORDER BY fin_factuur_key, regelnummer);
|
||||
|
||||
CREATE OR REPLACE VIEW wzuv_v_export_fclt_factuur (
|
||||
result,
|
||||
result_order
|
||||
)
|
||||
AS
|
||||
SELECT '<xml>',0 FROM DUAL
|
||||
UNION
|
||||
SELECT result, result_order FROM wzuv_v_fclt_factuur_header
|
||||
UNION
|
||||
SELECT result, result_order FROM wzuv_v_fclt_factuur_body
|
||||
UNION
|
||||
SELECT '</xml>',99999999999999999999 FROM DUAL;
|
||||
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE wzuv_export_fclt_factuur (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_filedir IN VARCHAR2,
|
||||
p_filename IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
|
||||
-- In cursor cfactuur alle facturen die worden geexporteerd...
|
||||
CURSOR cfactuur
|
||||
IS
|
||||
SELECT fin_factuur_key
|
||||
FROM wzuv_v_factuur_geg_akkoord
|
||||
GROUP BY fin_factuur_key;
|
||||
|
||||
BEGIN
|
||||
-- DE EXPORT IS OP BASIS VAN EEN VIEW GEREALISEERD, WAARNA NU ALS LAATSTE STAP NOG WAT ADMINISTRATIE VOLGT...
|
||||
FOR cfact IN cfactuur
|
||||
LOOP
|
||||
-- Zowel de factuur in tracking zetten als de status op verwerkt (=7) zetten
|
||||
fin.setfactuurstatus (cfact.fin_factuur_key, 7, NULL);
|
||||
END LOOP;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE VIEW wzuv_v_export_undo_exact (
|
||||
result,
|
||||
result_order
|
||||
)
|
||||
AS
|
||||
SELECT REPLACE(REPLACE(f.fin_factuur_key
|
||||
|| ';'
|
||||
|| opdracht_id
|
||||
|| ';'
|
||||
|| fin_factuur_datum
|
||||
|| ';'
|
||||
|| fin_factuur_nr
|
||||
|| ';'
|
||||
|| prs_bedrijf_key
|
||||
|| ';'
|
||||
|| fin_factuurregel_totaal
|
||||
|| ';'
|
||||
|| fin_factuurregel_btw
|
||||
|| ';'
|
||||
|| fin_factuurregel_nr
|
||||
|| ';'
|
||||
|| fin_factuur_debiteur_nr
|
||||
|| ';'
|
||||
|| project_nummer
|
||||
|| ';'
|
||||
|| prs_kostensoort_oms
|
||||
|| ';'
|
||||
|| bes_opdr_key
|
||||
|| ';'
|
||||
|| mld_opdr_key
|
||||
|| ';'
|
||||
|| cnt_contract_key
|
||||
,CHR (13), ''), CHR (10), '<ret>'), f.fin_factuur_key
|
||||
FROM wzuv_v_factuur_geg f, fac_tracking t, fac_srtnotificatie sn
|
||||
WHERE sn.fac_srtnotificatie_code ='FINVER'
|
||||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||||
AND t.fac_tracking_datum >= (SELECT MAX(t1.fac_tracking_datum) - (1 / (24*60))
|
||||
FROM fac_tracking t1
|
||||
WHERE t1.fac_srtnotificatie_key = t.fac_srtnotificatie_key)
|
||||
AND f.fin_factuur_key = t.fac_tracking_refkey
|
||||
AND f.fin_factuur_statuses_key = 7;
|
||||
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE wzuv_select_undo_exact (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
v_errormsg VARCHAR (200);
|
||||
BEGIN
|
||||
v_errormsg := 'Geen akties';
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
-- Procedure om alle geexporteerde facturen naar status verwerkt te zetten.
|
||||
CREATE OR REPLACE PROCEDURE wzuv_export_undo_exact (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_filedir IN VARCHAR2,
|
||||
p_filename IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
CURSOR cfactuur
|
||||
IS
|
||||
SELECT DISTINCT f.fin_factuur_key
|
||||
FROM fac_tracking t, fac_srtnotificatie sn, fin_factuur f
|
||||
WHERE sn.fac_srtnotificatie_code ='FINVER'
|
||||
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
|
||||
AND t.fac_tracking_datum >= (SELECT MAX(t1.fac_tracking_datum) - (1 / (24*60))
|
||||
FROM fac_tracking t1
|
||||
WHERE t1.fac_srtnotificatie_key = t.fac_srtnotificatie_key)
|
||||
AND f.fin_factuur_key = t.fac_tracking_refkey
|
||||
AND fin_factuur_statuses_key = 7;
|
||||
|
||||
v_errormsg VARCHAR (200);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
BEGIN
|
||||
v_errormsg := 'Geen akties';
|
||||
|
||||
FOR cfact IN cfactuur
|
||||
LOOP
|
||||
-- Eerst de factuur in tracking zetten...
|
||||
-- Omdat van 7 naar 6 niet mag/geoorloofd is, lukt het niet via
|
||||
-- de reguliere functie fin.setfactuurstatus (cfact.fin_factuur_key, 6, NULL);
|
||||
|
||||
-- Dan maar zelf en custom-made:
|
||||
fac.trackaction ('FINFOK', cfact.fin_factuur_key, NULL, NULL, 'Factuur uit archief teruggezet');
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_statuses_key = 6
|
||||
WHERE fin_factuur_key = cfact.fin_factuur_key;
|
||||
|
||||
END LOOP;
|
||||
END;
|
||||
/
|
||||
|
||||
-- ===================================
|
||||
-- EINDE VIEWS EN PROCS VOOR DE EXACT KOPPELING
|
||||
-- ===================================
|
||||
|
||||
BEGIN
|
||||
DBMS_UTILITY.COMPILE_SCHEMA (USER, FALSE);
|
||||
END;
|
||||
|
||||
Reference in New Issue
Block a user