YAXX#88771 Koppeling Facilitor - Exact
YASK#91270 Rabobank proforma exporteren & verwerken van district naar regio svn path=/Customer/trunk/; revision=70994
This commit is contained in:
319
VBXX/vbxx.sql
319
VBXX/vbxx.sql
@@ -84,6 +84,17 @@ AS
|
||||
RETURN NUMBER;
|
||||
|
||||
PROCEDURE checkopdracht (p_opdr_key IN NUMBER);
|
||||
|
||||
FUNCTION get_fin_exact_signature (p_factuurregel_key IN NUMBER, p_prefix IN VARCHAR2)
|
||||
RETURN VARCHAR2;
|
||||
|
||||
PROCEDURE set_fin_exact_signature (p_factuurregel_key IN NUMBER, p_prefix IN VARCHAR2);
|
||||
|
||||
FUNCTION check_fin_exact_signature (p_crdnr IN VARCHAR2,
|
||||
p_factuur_nr IN VARCHAR2,
|
||||
p_n_fact_regels IN NUMBER)
|
||||
RETURN NUMBER;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -1775,6 +1786,87 @@ AS
|
||||
|| ')';
|
||||
fac.writelog ('VBXX.checkopdracht', 'E', SUBSTR (v_errormsg, 1, 1000), v_errorhint || ' - opdracht_key:' || p_opdr_key);
|
||||
END;
|
||||
|
||||
FUNCTION get_fin_exact_signature (p_factuurregel_key IN NUMBER, p_prefix IN VARCHAR2)
|
||||
RETURN VARCHAR2
|
||||
AS
|
||||
v_signature VARCHAR2 (2000);
|
||||
BEGIN
|
||||
SELECT p_prefix
|
||||
|| '-'
|
||||
|| crdnr
|
||||
|| '-'
|
||||
|| factuur_nr
|
||||
|| '-'
|
||||
|| oms_regel
|
||||
|| '-'
|
||||
|| datum
|
||||
|| '-'
|
||||
|| fin_factuur_boekmaand
|
||||
|| '-'
|
||||
|| reknr
|
||||
|| '-'
|
||||
|| kstplcode
|
||||
|| '-'
|
||||
|| kstdrcode
|
||||
|| '-'
|
||||
|| bedrag_txt
|
||||
|| '-'
|
||||
|| btw_code
|
||||
|| '-'
|
||||
|| dagboek
|
||||
|| '-'
|
||||
|| oms_kop
|
||||
|| '-'
|
||||
|| fin_factuur_debiteur_nr
|
||||
INTO v_signature
|
||||
FROM vbxx_v_bron_export_exact_api
|
||||
WHERE fin_factuurregel_key = p_factuurregel_key;
|
||||
|
||||
RETURN v_signature;
|
||||
END;
|
||||
|
||||
PROCEDURE set_fin_exact_signature (p_factuurregel_key IN NUMBER, p_prefix IN VARCHAR2)
|
||||
AS
|
||||
v_signature VARCHAR2 (2000);
|
||||
BEGIN
|
||||
v_signature := VBXX.get_fin_exact_signature (p_factuurregel_key, p_prefix);
|
||||
FLX.setflex ('FINR',
|
||||
vbxx.get_kenmerk_key ('FIN', NULL, 'EXACTSIGNATURE'),
|
||||
p_factuurregel_key,
|
||||
v_signature);
|
||||
END;
|
||||
|
||||
FUNCTION check_fin_exact_signature (p_crdnr IN VARCHAR2,
|
||||
p_factuur_nr IN VARCHAR2,
|
||||
p_n_fact_regels IN NUMBER)
|
||||
RETURN NUMBER
|
||||
AS
|
||||
CURSOR c IS
|
||||
SELECT fin_factuurregel_key
|
||||
FROM vbxx_v_bron_export_exact_api x
|
||||
WHERE factuur_nr = p_factuur_nr AND crdnr = p_crdnr;
|
||||
|
||||
v_result NUMBER;
|
||||
v_signature_kenm VARCHAR2 (2000);
|
||||
v_signature VARCHAR2 (2000);
|
||||
BEGIN
|
||||
v_result := 0;
|
||||
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
v_signature_kenm := FLX.getflex ('FINR', vbxx.get_kenmerk_key ('FIN', NULL, 'EXACTSIGNATURE'), rec.fin_factuurregel_key);
|
||||
v_signature := VBXX.get_fin_exact_signature (rec.fin_factuurregel_key, p_n_fact_regels);
|
||||
|
||||
IF v_signature_kenm <> v_signature
|
||||
THEN
|
||||
RETURN 0;
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
RETURN 1;
|
||||
END;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -5286,6 +5378,7 @@ CREATE OR REPLACE VIEW vbxx_v_bron_export_exact_api
|
||||
fin_factuur_key,
|
||||
fin_factuur_externnr,
|
||||
opdracht_id,
|
||||
mld_opdr_key,
|
||||
factuur_nr, -- crediteur factuurnummer
|
||||
datum, -- factuurdatum
|
||||
crdnr, -- crediteurnummer
|
||||
@@ -5316,6 +5409,7 @@ AS
|
||||
SELECT fin_factuur_key,
|
||||
fin_factuur_externnr,
|
||||
opdracht_id,
|
||||
mld_opdr_key,
|
||||
fin_factuur_nr,
|
||||
TO_CHAR (fin_factuur_datum, 'yyyy-mm-dd')
|
||||
datum,
|
||||
@@ -5782,6 +5876,62 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE vbxx_verwerk_exact_api (
|
||||
p_factuur_nr IN VARCHAR2,
|
||||
p_crdnr IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
CURSOR c_fact
|
||||
IS
|
||||
SELECT DISTINCT f.fin_factuur_key, f.mld_opdr_key
|
||||
FROM vbxx_v_bron_export_exact_api f
|
||||
WHERE f.factuur_nr = p_factuur_nr
|
||||
AND f.crdnr = p_crdnr
|
||||
AND f.fin_factuur_statuses_key = 6; -- goedgekeurd
|
||||
|
||||
v_aanvrager NUMBER;
|
||||
v_statusopdr_key NUMBER;
|
||||
BEGIN
|
||||
v_aanvrager := 3; -- Facilitor
|
||||
|
||||
FOR rec1 IN c_fact
|
||||
LOOP
|
||||
BEGIN
|
||||
UPDATE fin_factuur f
|
||||
SET fin_factuur_statuses_key = 7
|
||||
WHERE f.fin_factuur_key = rec1.fin_factuur_key;
|
||||
|
||||
fac.trackaction ('FINVER', rec1.fin_factuur_key, v_aanvrager, NULL, NULL);
|
||||
|
||||
-- als opdrachtkey IS NOT NULL
|
||||
IF rec1.mld_opdr_key IS NOT NULL
|
||||
THEN
|
||||
SELECT mld_statusopdr_key
|
||||
INTO v_statusopdr_key
|
||||
FROM mld_opdr
|
||||
WHERE mld_opdr_key = rec1.mld_opdr_key;
|
||||
|
||||
--als status != afgemeld (6) en afgerond (9)
|
||||
IF v_statusopdr_key <> 6 AND v_statusopdr_key <> 9
|
||||
THEN
|
||||
-- set status op geleverd
|
||||
MLD.setopdrachtstatus (rec1.mld_opdr_key, 6, NULL);
|
||||
END IF;
|
||||
-- als status != afgerond (9)
|
||||
IF v_statusopdr_key <> 9
|
||||
THEN
|
||||
-- set status op 9
|
||||
MLD.setopdrachtstatus (rec1.mld_opdr_key, 9, NULL);
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
--
|
||||
-- Verkoopfacturen
|
||||
--
|
||||
@@ -5871,6 +6021,14 @@ AS
|
||||
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
||||
WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key
|
||||
AND k.alg_kenmerk_code = 'BOEKMNDOFFSET'
|
||||
AND k.alg_kenmerk_niveau = 'E' -- Regio
|
||||
AND k.alg_kenmerk_verwijder IS NULL
|
||||
AND alg_onrgoed_key = r.alg_regio_key),
|
||||
(SELECT FAC.safe_to_number (alg_onrgoedkenmerk_waarde)
|
||||
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
||||
WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key
|
||||
AND k.alg_kenmerk_code = 'BOEKMNDOFFSET'
|
||||
AND k.alg_kenmerk_niveau = 'D'
|
||||
AND k.alg_kenmerk_verwijder IS NULL
|
||||
AND alg_onrgoed_key = l.alg_district_key),
|
||||
0)),
|
||||
@@ -5893,6 +6051,7 @@ AS
|
||||
nietdoorbelasten,
|
||||
o.mld_opdr_key,
|
||||
l.alg_district_key,
|
||||
di.alg_regio_key,
|
||||
l.alg_locatie_key fclt_3d_locatie_key,
|
||||
COALESCE(kso.prs_kostensoort_oms, ksm.prs_kostensoort_oms) opdracht_nen_code,
|
||||
COALESCE(kso.prs_kostensoort_refcode, ksm.prs_kostensoort_refcode) opdracht_nen_exact_code,
|
||||
@@ -6064,10 +6223,13 @@ SELECT fin_verkoopfactuur_omschr meldingnummer,
|
||||
-- PRO_FORMA facturen
|
||||
--
|
||||
|
||||
vbxx_klant_fin_gegevens
|
||||
|
||||
CREATE OR REPLACE VIEW vbxx_v_export_pro_forma (
|
||||
result,
|
||||
result_order,
|
||||
alg_district_key
|
||||
alg_district_key,
|
||||
alg_regio_key
|
||||
)
|
||||
AS
|
||||
SELECT 'meldingnummer;' ||
|
||||
@@ -6098,8 +6260,8 @@ AS
|
||||
'pro_forma_goedgekeurd;' ||
|
||||
'niet_doorbelasten;' ||
|
||||
'meldinggebouw;' ||
|
||||
'klantinkoopnr', -1, alg_district_key
|
||||
FROM alg_district
|
||||
'klantinkoopnr', -1, -1 alg_district_key, -1 alg_regio_key
|
||||
FROM DUAL
|
||||
UNION ALL
|
||||
SELECT meldingnummer || ';' ||
|
||||
meldinglocatie || ';' ||
|
||||
@@ -6131,13 +6293,15 @@ AS
|
||||
meldinggebouw || ';' ||
|
||||
klantinkoopnr,
|
||||
mld_melding_key,
|
||||
alg_district_key
|
||||
alg_district_key,
|
||||
alg_regio_key
|
||||
FROM vbxx_v_kosten_doorbelasting
|
||||
WHERE mld_statusopdr_key = 9;
|
||||
|
||||
-- Procedure om pro-forma factuur klaar te zetten.
|
||||
CREATE OR REPLACE PROCEDURE vbxx_select_pro_forma (p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_regio_key IN NUMBER,
|
||||
p_district_key IN NUMBER
|
||||
)
|
||||
AS
|
||||
@@ -6147,7 +6311,7 @@ AS
|
||||
FROM vbxx_v_kosten_doorbelasting
|
||||
WHERE mld_statusopdr_key = 9 -- afgerond.
|
||||
AND (UPPER(opdrachttype) like 'REVERSED%' OR factuurbedrag IS NOT NULL) -- ReversedBilling OF er is een factuur gekoppeld.
|
||||
AND (alg_district_key = p_district_key OR p_district_key = -1);
|
||||
AND (alg_district_key = p_district_key OR alg_regio_key = p_regio_key);
|
||||
|
||||
v_errormsg VARCHAR (200);
|
||||
oracle_err_num NUMBER;
|
||||
@@ -6162,30 +6326,60 @@ BEGIN
|
||||
DELETE FROM imp_log
|
||||
WHERE imp_log_applicatie = p_applname;
|
||||
|
||||
SELECT TO_CHAR (
|
||||
ADD_MONTHS (
|
||||
SYSDATE,
|
||||
COALESCE (
|
||||
(SELECT FAC.safe_to_number (alg_onrgoedkenmerk_waarde)
|
||||
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
||||
WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key -- boekmaand offset
|
||||
AND k.alg_kenmerk_code = 'BOEKMNDOFFSET'
|
||||
AND k.alg_kenmerk_verwijder IS NULL
|
||||
AND alg_onrgoed_key = d.alg_district_key),
|
||||
0)),
|
||||
'yyyymm')
|
||||
INTO v_boekmaand
|
||||
FROM alg_district d
|
||||
WHERE alg_district_key = p_district_key;
|
||||
IF p_regio_key IS NULL
|
||||
THEN
|
||||
SELECT TO_CHAR (
|
||||
ADD_MONTHS (
|
||||
SYSDATE,
|
||||
COALESCE (
|
||||
(SELECT FAC.safe_to_number (alg_onrgoedkenmerk_waarde)
|
||||
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
||||
WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key -- boekmaand offset
|
||||
AND k.alg_kenmerk_code = 'BOEKMNDOFFSET'
|
||||
AND k.alg_kenmerk_verwijder IS NULL
|
||||
AND alg_onrgoed_key = d.alg_district_key),
|
||||
0)),
|
||||
'yyyymm')
|
||||
INTO v_boekmaand
|
||||
FROM alg_district d
|
||||
WHERE alg_district_key = p_district_key;
|
||||
|
||||
SELECT k.alg_kenmerk_key
|
||||
INTO v_datum_pro_forma_kenmerk_key
|
||||
FROM alg_kenmerk k
|
||||
WHERE k.alg_kenmerk_code = 'DATUMPROFORMA'
|
||||
AND k.alg_kenmerk_verwijder IS NULL;
|
||||
|
||||
ALG.upsertkenmerk (v_datum_pro_forma_kenmerk_key, p_district_key ,to_char(SYSDATE, 'dd-mm-yyyy hh24:mi:ss')); -- Readonly datum pro forma
|
||||
SELECT k.alg_kenmerk_key
|
||||
INTO v_datum_pro_forma_kenmerk_key
|
||||
FROM alg_kenmerk k
|
||||
WHERE k.alg_kenmerk_code = 'DATUMPROFORMA'
|
||||
AND k.alg_kenmerk_niveau = 'D' -- district
|
||||
AND k.alg_kenmerk_verwijder IS NULL;
|
||||
|
||||
ALG.upsertkenmerk (v_datum_pro_forma_kenmerk_key, p_district_key ,to_char(SYSDATE, 'dd-mm-yyyy hh24:mi:ss')); -- Readonly datum pro forma
|
||||
ELSE -- regio_key is gevuld
|
||||
SELECT TO_CHAR (
|
||||
ADD_MONTHS (
|
||||
SYSDATE,
|
||||
COALESCE (
|
||||
(SELECT FAC.safe_to_number (alg_onrgoedkenmerk_waarde)
|
||||
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
||||
WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key -- boekmaand offset
|
||||
AND k.alg_kenmerk_code = 'BOEKMNDOFFSET'
|
||||
AND k.alg_kenmerk_niveau = 'E' -- regio
|
||||
AND k.alg_kenmerk_verwijder IS NULL
|
||||
AND alg_onrgoed_key = r.alg_regio_key),
|
||||
0)),
|
||||
'yyyymm')
|
||||
INTO v_boekmaand
|
||||
FROM alg_regio r
|
||||
WHERE r.alg_regio_key = p_regio_key;
|
||||
|
||||
SELECT k.alg_kenmerk_key
|
||||
INTO v_datum_pro_forma_kenmerk_key
|
||||
FROM alg_kenmerk k
|
||||
WHERE k.alg_kenmerk_code = 'DATUMPROFORMA'
|
||||
AND k.alg_kenmerk_niveau = 'E' -- regio
|
||||
AND k.alg_kenmerk_verwijder IS NULL;
|
||||
|
||||
ALG.upsertkenmerk (v_datum_pro_forma_kenmerk_key, p_regio_key ,to_char(SYSDATE, 'dd-mm-yyyy hh24:mi:ss')); -- Readonly datum pro forma
|
||||
END IF;
|
||||
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
BEGIN
|
||||
@@ -6220,6 +6414,7 @@ END;
|
||||
|
||||
CREATE OR REPLACE PROCEDURE vbxx_select_pro_forma_verwerk (p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_regio_key IN NUMBER,
|
||||
p_district_key IN NUMBER
|
||||
)
|
||||
AS
|
||||
@@ -6229,7 +6424,7 @@ AS
|
||||
FROM vbxx_v_kosten_doorbelasting
|
||||
WHERE mld_statusopdr_key = 9 -- Afgerond
|
||||
AND pro_forma_goedgekeurd = 'Ja'
|
||||
AND (alg_district_key = p_district_key OR p_district_key = -1);
|
||||
AND (alg_district_key = p_district_key OR alg_regio_key = p_regio_key);
|
||||
|
||||
v_errormsg VARCHAR (200);
|
||||
oracle_err_num NUMBER;
|
||||
@@ -6237,6 +6432,8 @@ AS
|
||||
v_boekmaand VARCHAR2 (10);
|
||||
v_boekmaand_kenmerk_key NUMBER(10);
|
||||
v_exp_proforma_kenmerk_key NUMBER(10);
|
||||
v_onrgoed_key NUMBER(10);
|
||||
v_onrgoed_niveau VARCHAR2(1);
|
||||
|
||||
BEGIN
|
||||
|
||||
@@ -6246,21 +6443,42 @@ BEGIN
|
||||
|
||||
-- YASK#68837 We halen de boekmaand niet meer uit het kenmerk bij het district maar we gaan deze
|
||||
-- opnieuw berekenen.
|
||||
SELECT TO_CHAR (
|
||||
ADD_MONTHS (
|
||||
SYSDATE,
|
||||
COALESCE (
|
||||
(SELECT FAC.safe_to_number (alg_onrgoedkenmerk_waarde)
|
||||
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
||||
WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key
|
||||
AND k.alg_kenmerk_code = 'BOEKMNDOFFSET' -- boekmaand offset
|
||||
AND k.alg_kenmerk_verwijder IS NULL
|
||||
AND alg_onrgoed_key = d.alg_district_key),
|
||||
0)),
|
||||
'yyyymm')
|
||||
INTO v_boekmaand
|
||||
FROM alg_district d
|
||||
WHERE alg_district_key = p_district_key;
|
||||
IF p_regio_key IS NULL
|
||||
THEN
|
||||
SELECT TO_CHAR (
|
||||
ADD_MONTHS (
|
||||
SYSDATE,
|
||||
COALESCE (
|
||||
(SELECT FAC.safe_to_number (alg_onrgoedkenmerk_waarde)
|
||||
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
||||
WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key
|
||||
AND k.alg_kenmerk_code = 'BOEKMNDOFFSET' -- boekmaand offset
|
||||
AND k.alg_kenmerk_niveau = 'D'
|
||||
AND k.alg_kenmerk_verwijder IS NULL
|
||||
AND alg_onrgoed_key = d.alg_district_key),
|
||||
0)),
|
||||
'yyyymm')
|
||||
INTO v_boekmaand
|
||||
FROM alg_district d
|
||||
WHERE alg_district_key = p_district_key;
|
||||
ELSE
|
||||
SELECT TO_CHAR (
|
||||
ADD_MONTHS (
|
||||
SYSDATE,
|
||||
COALESCE (
|
||||
(SELECT FAC.safe_to_number (alg_onrgoedkenmerk_waarde)
|
||||
FROM alg_onrgoedkenmerk aogk, alg_kenmerk k
|
||||
WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key
|
||||
AND k.alg_kenmerk_code = 'BOEKMNDOFFSET' -- boekmaand offset
|
||||
AND k.alg_kenmerk_niveau = 'E' -- regio
|
||||
AND k.alg_kenmerk_verwijder IS NULL
|
||||
AND alg_onrgoed_key = r.alg_regio_key),
|
||||
0)),
|
||||
'yyyymm')
|
||||
INTO v_boekmaand
|
||||
FROM alg_regio r
|
||||
WHERE r.alg_regio_key = p_regio_key;
|
||||
END IF;
|
||||
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
@@ -6324,18 +6542,29 @@ BEGIN
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
IF p_regio_key IS NULL
|
||||
THEN
|
||||
v_onrgoed_key := p_district_key;
|
||||
v_onrgoed_niveau := 'D';
|
||||
ELSE
|
||||
v_onrgoed_key := p_regio_key;
|
||||
v_onrgoed_niveau := 'E';
|
||||
END IF;
|
||||
|
||||
SELECT alg_kenmerk_key
|
||||
INTO v_exp_proforma_kenmerk_key
|
||||
FROM alg_kenmerk k
|
||||
WHERE k.alg_kenmerk_code = 'EXPROFORMA'
|
||||
AND k.alg_kenmerk_niveau = v_onrgoed_niveau
|
||||
AND k.alg_kenmerk_verwijder IS NULL;
|
||||
ALG.upsertkenmerk (v_exp_proforma_kenmerk_key, p_district_key ,to_char(SYSDATE, 'dd-mm-yyyy hh24:mi:ss')); -- Readonly export datum pro forma
|
||||
ALG.upsertkenmerk (v_exp_proforma_kenmerk_key, v_onrgoed_key ,to_char(SYSDATE, 'dd-mm-yyyy hh24:mi:ss')); -- Readonly export datum pro forma
|
||||
SELECT alg_kenmerk_key
|
||||
INTO v_boekmaand_kenmerk_key
|
||||
FROM alg_kenmerk k
|
||||
WHERE k.alg_kenmerk_code = 'BOEKMAAND'
|
||||
AND k.alg_kenmerk_niveau = v_onrgoed_niveau
|
||||
AND k.alg_kenmerk_verwijder IS NULL;
|
||||
ALG.upsertkenmerk (v_boekmaand_kenmerk_key, p_district_key ,v_boekmaand); -- Readonly boekmaand laatste export veld.
|
||||
ALG.upsertkenmerk (v_boekmaand_kenmerk_key, v_onrgoed_key ,v_boekmaand); -- Readonly boekmaand laatste export veld.
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user