MDUX#55136 Automatisch afwijzen van incompleet geïmporteerde facturen

svn path=/Customer/trunk/; revision=40163
This commit is contained in:
Suzan Wiegerinck
2018-12-11 09:13:43 +00:00
parent 834abb1c35
commit cb31861125

View File

@@ -643,7 +643,13 @@ FROM fin_kenmerkfactuur kf
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL
AND fin_kenmerk_key = 3;
-- View waarin bij de factuur met fin_factuur_key het bijbehorende kenmerk 'incompleet wordt bepaald.
CREATE OR REPLACE VIEW mdux_v_factuur_incompleet (fin_factuur_key, fin_factuur_incompleet)
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 = 100;
-- view tbv export naar financieel systeem Navision
CREATE OR REPLACE VIEW mdux_v_factuur_mldcnt_gegevens (
@@ -740,6 +746,7 @@ AS
prs_kostenplaats kp_c,
prs_kostenplaats kp_o
WHERE f.fin_factuur_key = fr.fin_factuur_key
AND f.fin_factuur_verwijder is null
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
AND f.bes_bestelopdr_key is null
AND f.mld_opdr_key = o.mld_opdr_key(+)
@@ -754,7 +761,7 @@ AS
AND f.fin_factuur_key = nav.fin_factuur_key(+);
CREATE OR REPLACE VIEW mdux_v_factuur_bes_gegevens (
CREATE OR REPLACE VIEW MDUX_V_FACTUUR_BES_GEGEVENS (
fin_factuur_key,
opdracht_id,
fin_factuur_datum,
@@ -839,6 +846,7 @@ AS
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_verwijder is null
AND f.fin_factuur_key = fr.fin_factuur_key
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
AND f.fin_factuur_key = nav.fin_factuur_key(+);
@@ -852,13 +860,14 @@ SELECT * from mdux_v_factuur_bes_gegevens;
-- Alle facturen die of akkoord of afgewezen zijn, gaan terug naar Navision.
-- MDUX#55136: ook facturen met de status incompleet gaan terug naar Navision
CREATE OR REPLACE VIEW mdux_v_factuur_geg_2_navision
AS
SELECT * from mdux_v_factuur_mldcnt_gegevens
WHERE fin_factuur_statuses_key IN (1,6)
WHERE fin_factuur_statuses_key IN (1,6,3)
UNION
SELECT * from mdux_v_factuur_bes_gegevens
WHERE fin_factuur_statuses_key IN (1,6);
WHERE fin_factuur_statuses_key IN (1,6,3);
@@ -882,67 +891,105 @@ SELECT result, result_order FROM mdux_v_exp_navision_body
UNION
SELECT '</xml>',99999999999999999999 FROM DUAL;
CREATE OR REPLACE PROCEDURE mdux_export_navision (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
CREATE OR REPLACE PROCEDURE mdux_export_navision (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
CURSOR cfactuur
IS
SELECT fin_factuur_key, fin_factuur_statuses_key
FROM mdux_v_factuur_geg_2_navision
GROUP BY fin_factuur_key, fin_factuur_statuses_key;
c_kenmerk_key_afgewezen NUMBER(10) := 3;
v_count NUMBER(10);
FROM mdux_v_factuur_geg_2_navision
GROUP BY fin_factuur_key, fin_factuur_statuses_key;
c_kenmerk_key_afgewezen NUMBER (10) := 3;
c_kenmerk_key_incompleet NUMBER (10) := 100;
v_count NUMBER (10);
BEGIN
-- DE EXPORT IS OP BASIS VAN EEN VIEW GEREALISEERD, WAARNA NU ALS LAATSTE STAP NOG WAT ADMINISTRATIE VOLGT...
FOR cfact IN cfactuur
LOOP
-- 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
IF cfact.fin_factuur_statuses_key = 6
THEN
-- Status akkoord kan op reguliere wijze naar verwerkt...
fin.setfactuurstatus (cfact.fin_factuur_key, 7, NULL);
-- Status akkoord kan op reguliere wijze naar verwerkt...
fin.setfactuurstatus (cfact.fin_factuur_key, 7, NULL);
ELSE
IF cfact.fin_factuur_statuses_key = 1
THEN
-- Status afgewezen kan NIET op reguliere wijze naar verwerkt... (zie call MDUX#31142)
SELECT COUNT(*)
INTO v_count
FROM mdux_v_factuur_afgewezen
WHERE fin_factuur_key = cfact.fin_factuur_key;
IF cfact.fin_factuur_statuses_key = 1
THEN
-- Status afgewezen kan NIET op reguliere wijze naar verwerkt... (zie call MDUX#31142)
SELECT COUNT ( * )
INTO v_count
FROM mdux_v_factuur_afgewezen
WHERE fin_factuur_key = cfact.fin_factuur_key;
IF v_count = 1
THEN
UPDATE fin_kenmerkfactuur
SET fin_kenmerkfactuur_waarde = '1'
WHERE fin_factuur_key = cfact.fin_factuur_key
AND fin_kenmerk_key = c_kenmerk_key_afgewezen;
ELSE
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
VALUES (cfact.fin_factuur_key, c_kenmerk_key_afgewezen, '1');
END IF;
END IF;
IF v_count = 1
THEN
UPDATE fin_kenmerkfactuur
SET fin_kenmerkfactuur_waarde = '1'
WHERE fin_factuur_key = cfact.fin_factuur_key
AND fin_kenmerk_key = c_kenmerk_key_afgewezen;
ELSE
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
fin_kenmerk_key,
fin_kenmerkfactuur_waarde)
VALUES (cfact.fin_factuur_key,
c_kenmerk_key_afgewezen,
'1');
END IF;
fac.trackaction ('FINVER', cfact.fin_factuur_key, NULL, NULL, 'Factuur van afgewezen naar verwerkt');
UPDATE fin_factuur
SET fin_factuur_statuses_key = 7
WHERE fin_factuur_key = cfact.fin_factuur_key;
fac.trackaction ('FINVER',
cfact.fin_factuur_key,
NULL,
NULL,
'Factuur van afgewezen naar verwerkt');
UPDATE fin_factuur
SET fin_factuur_statuses_key = 7
WHERE fin_factuur_key = cfact.fin_factuur_key;
ELSE
IF cfact.fin_factuur_statuses_key = 3
THEN
-- Status incompleet kan NIET op reguliere wijze naar verwerkt... (zie call MDUX#55136)
SELECT COUNT ( * )
INTO v_count
FROM mdux_v_factuur_incompleet
WHERE fin_factuur_key = cfact.fin_factuur_key;
IF v_count = 1
THEN
UPDATE fin_kenmerkfactuur
SET fin_kenmerkfactuur_waarde = '1'
WHERE fin_factuur_key = cfact.fin_factuur_key
AND fin_kenmerk_key = c_kenmerk_key_incompleet;
ELSE
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
fin_kenmerk_key,
fin_kenmerkfactuur_waarde)
VALUES (cfact.fin_factuur_key,
c_kenmerk_key_incompleet,
'1');
END IF;
fac.trackaction ('FINVER',
cfact.fin_factuur_key,
NULL,
NULL,
'Factuur van incompleet naar verwerkt');
UPDATE fin_factuur
SET fin_factuur_statuses_key = 7
WHERE fin_factuur_key = cfact.fin_factuur_key;
END IF;
END IF;
END IF;
END LOOP;
END LOOP;
END;
/
CREATE OR REPLACE VIEW mdux_v_export_undo_navision (
result,
result_order