AAIT#72344 -- Verkoopinterface voor inlo-covestro PROJECTEN activeren en inrichten
AAIT#77215 -- Facturen OCP wel boeken maar niet naar exact - inpassen in inkoopinterface AAIT#73079 -- Verkoopinterface INLO-Covestro svn path=/Customer/trunk/; revision=59997
This commit is contained in:
550
AA/aaxx_fin.sql
550
AA/aaxx_fin.sql
@@ -217,7 +217,7 @@ BEGIN
|
||||
|
||||
IF v_teller > 1
|
||||
THEN
|
||||
v_po_nr := SUBSTR ('!-' || v_po_nr, 1, 20) ;
|
||||
v_po_nr := SUBSTR (v_po_nr || '-!', 1, 20) ;
|
||||
|
||||
END IF;
|
||||
|
||||
@@ -322,7 +322,7 @@ BEGIN
|
||||
|
||||
IF v_teller > 1
|
||||
THEN
|
||||
v_po_regel := SUBSTR ('!-' || v_po_regel, 1, 100) ;
|
||||
v_po_regel := SUBSTR (v_po_regel || '-!', 1, 100) ;
|
||||
|
||||
END IF;
|
||||
|
||||
@@ -615,6 +615,285 @@ AS
|
||||
-------------------------------------------
|
||||
-- INKOOPINTERFACE - exportfunctie - EXACT
|
||||
-------------------------------------------
|
||||
|
||||
-- Inkoop: Alle facturen akkoord - Gebruikersoverzicht inkoopfacturen die wel/niet meegaan de EXACT inkooprun in
|
||||
--- dit is ook de bronview voor de export EXACT (de inkoopfacturen die wel/niet meegaan naar Exact)
|
||||
CREATE OR REPLACE VIEW aaxx_v_export_exact_check
|
||||
(
|
||||
prs_kostenplaatsgrp_nr,
|
||||
fin_factuur_key,
|
||||
check_in_inkooprun,
|
||||
fin_factuur_totaal,
|
||||
check_factuurdatum, -- facturen mogen niet ouder zijn dan 5 jaar of meer dan <20><>n jaar in de toekomst
|
||||
check_dubbelefactuur, -- status van de factuur is ingevoerd als er facturen van dezelfde leverancier en nummer zijn met status ingevoerd, afgewezen of incompleet
|
||||
check_nogtecontroleren, -- factuur staat op controle en moet nog gecontroleerd worden (vinkje controle nog niet gezet)
|
||||
check_onholdgezet, -- filterstatus 1 = bolletje 'On hold - Niet meenemen in inkooprun'
|
||||
check_admin_exact, -- voor inlo en aait gelden meerdere administratie met een vereiste match op SUBSTR(prs_kostenplaatsgrp_nr, 1, 3)
|
||||
check_geen_kostensoort, -- facturen zonder kostensoort niet meenemen
|
||||
check_geen_grootboeknr, -- facturen zonder grootboeknr ( = financiele waarde op de kostensoort = prs_kostensoort_refcode)
|
||||
check_po_klant_project, -- tbv projectorders (voor klantadministratie AAES, DSM, INLO-COV....) controle op gevulde 'ordernummer klant'
|
||||
check_filter_nietnaarexact -- filterstatus 2 = inkoopfactuur gaat niet naar exact (niet in XML-output) maar wordt wel op verwerkt gezet
|
||||
)
|
||||
AS
|
||||
SELECT CASE
|
||||
WHEN f.prs_kostenplaatsgrp_key IS NOT NULL
|
||||
THEN
|
||||
(SELECT prs_kostenplaatsgrp_nr
|
||||
|| ' - '
|
||||
|| prs_kostenplaatsgrp_oms
|
||||
FROM prs_kostenplaatsgrp
|
||||
WHERE prs_kostenplaatsgrp_key =
|
||||
f.prs_kostenplaatsgrp_key)
|
||||
ELSE
|
||||
NULL
|
||||
END
|
||||
prs_kostenplaatsgrp_nr,
|
||||
f.fin_factuur_key,
|
||||
CASE
|
||||
WHEN f.check_factuurdatum IS NULL
|
||||
AND f.check_dubbelefactuur IS NULL
|
||||
AND f.check_nogtecontroleren IS NULL
|
||||
AND f.check_onholdgezet IS NULL
|
||||
AND kp.check_admin_exact IS NULL
|
||||
AND f.check_geen_kostensoort IS NULL
|
||||
AND f.check_geen_grootboeknr IS NULL
|
||||
AND f.check_po_klant_project IS NULL
|
||||
AND f.check_nietnaarexact IS NULL
|
||||
THEN
|
||||
'Ja'
|
||||
ELSE
|
||||
'Nee'
|
||||
END
|
||||
inkooprun,
|
||||
f.fin_factuur_totaal,
|
||||
f.check_factuurdatum,
|
||||
f.check_dubbelefactuur,
|
||||
f.check_nogtecontroleren,
|
||||
f.check_onholdgezet,
|
||||
kp.check_admin_exact,
|
||||
f.check_geen_kostensoort,
|
||||
f.check_geen_grootboeknr,
|
||||
f.check_po_klant_project,
|
||||
f.check_nietnaarexact
|
||||
FROM (SELECT f.fin_factuur_key,
|
||||
fs.fin_factuur_statuses_omschr,
|
||||
COALESCE (kp_cnt.prs_kostenplaatsgrp_key,
|
||||
kp_opd.prs_kostenplaatsgrp_key,
|
||||
kp_bes.prs_kostenplaatsgrp_key)
|
||||
prs_kostenplaatsgrp_key,
|
||||
CASE
|
||||
WHEN f.prs_kostensoort_key IS NULL
|
||||
THEN
|
||||
'geen kostensoort!'
|
||||
ELSE
|
||||
''
|
||||
END
|
||||
check_geen_kostensoort,
|
||||
CASE
|
||||
WHEN k.prs_kostensoort_key IS NOT NULL
|
||||
AND k.prs_kostensoort_refcode IS NULL
|
||||
THEN
|
||||
'geen grootboeknr!'
|
||||
ELSE
|
||||
''
|
||||
END
|
||||
check_geen_grootboeknr,
|
||||
CASE
|
||||
WHEN pr.mld_opdr_key IS NOT NULL
|
||||
AND COALESCE (pr.mld_po_nr_afw, pr.mld_po_nr)
|
||||
IS NULL
|
||||
AND ( aaxx_get_user IN ('DSM', 'GN', 'ESSENT')
|
||||
OR ( aaxx_get_user IN ('INLO')
|
||||
AND pr.inlo_subaccount IN ('COVESTRO')))
|
||||
THEN
|
||||
'geen ordernummer klant!'
|
||||
ELSE
|
||||
''
|
||||
END
|
||||
check_po_klant_project,
|
||||
COALESCE (
|
||||
o.prs_kostenplaats_key,
|
||||
COALESCE (
|
||||
c.prs_kostenplaats_key,
|
||||
(SELECT DISTINCT b.prs_kostenplaats_key
|
||||
FROM bes_bestelling b,
|
||||
bes_bestelopdr_item boi,
|
||||
bes_bestelling_item bi
|
||||
WHERE bo.bes_bestelopdr_key =
|
||||
boi.bes_bestelopdr_key
|
||||
AND boi.bes_bestelopdr_item_key =
|
||||
bi.bes_bestelopdr_item_key
|
||||
AND bi.bes_bestelling_key =
|
||||
b.bes_bestelling_key)))
|
||||
prs_kostenplaats_key,
|
||||
f.fin_factuur_totaal,
|
||||
CASE
|
||||
WHEN f.fin_factuur_datum < SYSDATE - (5 * 365)
|
||||
OR f.fin_factuur_datum > SYSDATE + 365
|
||||
THEN
|
||||
'ongeldige factuurdatum: '
|
||||
|| TO_CHAR (f.fin_factuur_datum, 'dd-mm-yyyy')
|
||||
ELSE
|
||||
''
|
||||
END
|
||||
check_factuurdatum,
|
||||
( -- status van de factuur is ingevoerd als er facturen van dezelfde leverancier en nummer zijn met status ingevoerd(2) of incompleet(3)
|
||||
SELECT DECODE (COUNT (*), 0, '', 'dubbele factuur!')
|
||||
FROM fin_factuur f_t,
|
||||
cnt_contract c_t,
|
||||
bes_bestelopdr b_t,
|
||||
mld_opdr o_t
|
||||
WHERE f_t.fin_factuur_verwijder IS NULL
|
||||
AND f_t.mld_opdr_key = o_t.mld_opdr_key(+)
|
||||
AND f_t.cnt_contract_key = c_t.cnt_contract_key(+)
|
||||
AND f_t.bes_bestelopdr_key =
|
||||
b_t.bes_bestelopdr_key(+)
|
||||
AND COALESCE (
|
||||
o_t.mld_uitvoerende_keys,
|
||||
COALESCE (b_t.prs_bedrijf_key,
|
||||
c_t.cnt_prs_bedrijf_key)) =
|
||||
COALESCE (
|
||||
o.mld_uitvoerende_keys,
|
||||
COALESCE (bo.prs_bedrijf_key,
|
||||
c.cnt_prs_bedrijf_key))
|
||||
AND f.fin_factuur_nr = f_t.fin_factuur_nr
|
||||
AND f_t.fin_factuur_statuses_key IN (2, 3)
|
||||
AND f.fin_factuur_statuses_key = 6)
|
||||
check_dubbelefactuur,
|
||||
CASE
|
||||
WHEN contr.fin_factuur_controle = 1
|
||||
AND fin_factuur_controle_ok IS NULL
|
||||
THEN
|
||||
'Controle - Nog doen'
|
||||
ELSE
|
||||
''
|
||||
END
|
||||
check_nogtecontroleren,
|
||||
CASE
|
||||
WHEN f.fin_factuur_flag = 1 THEN 'on hold'
|
||||
ELSE ''
|
||||
END
|
||||
check_onholdgezet,
|
||||
CASE
|
||||
WHEN f.fin_factuur_flag = 2 THEN 'niet naar exact - wordt wel verwerkt'
|
||||
ELSE ''
|
||||
END
|
||||
check_nietnaarexact
|
||||
FROM fin_factuur f,
|
||||
prs_kostensoort k,
|
||||
fin_factuur_statuses fs,
|
||||
mld_opdr o,
|
||||
mld_typeopdr ot,
|
||||
cnt_contract c,
|
||||
bes_bestelopdr bo,
|
||||
prs_bedrijf b_o,
|
||||
prs_bedrijf b_c,
|
||||
prs_bedrijf b_b,
|
||||
aaxx_v_projectorders_bron pr,
|
||||
(SELECT fin_factuur_key,
|
||||
(SELECT fin_kenmerkfactuur_waarde
|
||||
FROM fin_kenmerkfactuur fk, fin_kenmerk k
|
||||
WHERE fk.fin_kenmerk_key = k.fin_kenmerk_key
|
||||
AND k.fin_kenmerk_verwijder IS NULL
|
||||
AND UPPER (fin_kenmerk_omschrijving) =
|
||||
'EXTRA CONTROLE?'
|
||||
AND fk.fin_factuur_key = f.fin_factuur_key)
|
||||
fin_factuur_controle,
|
||||
(SELECT fin_kenmerkfactuur_waarde
|
||||
FROM fin_kenmerkfactuur fk, fin_kenmerk k
|
||||
WHERE fk.fin_kenmerk_key = k.fin_kenmerk_key
|
||||
AND k.fin_kenmerk_verwijder IS NULL
|
||||
AND UPPER (fin_kenmerk_omschrijving) =
|
||||
'GECONTROLEERD'
|
||||
AND fk.fin_factuur_key = f.fin_factuur_key)
|
||||
fin_factuur_controle_ok
|
||||
FROM fin_factuur f) contr,
|
||||
( SELECT fin_factuur_key,
|
||||
c.prs_kostenplaats_key,
|
||||
kpg.prs_kostenplaatsgrp_key,
|
||||
kpg.prs_kostenplaatsgrp_nr
|
||||
FROM fin_factuur f,
|
||||
cnt_contract c,
|
||||
prs_kostenplaats kp,
|
||||
prs_kostenplaatsgrp kpg
|
||||
WHERE f.cnt_contract_key = c.cnt_contract_key
|
||||
AND c.prs_kostenplaats_key =
|
||||
kp.prs_kostenplaats_key
|
||||
AND kp.prs_kostenplaatsgrp_key =
|
||||
kpg.prs_kostenplaatsgrp_key(+)
|
||||
ORDER BY f.fin_factuur_key DESC) kp_cnt,
|
||||
( SELECT fin_factuur_key,
|
||||
o.prs_kostenplaats_key,
|
||||
kpg.prs_kostenplaatsgrp_key,
|
||||
kpg.prs_kostenplaatsgrp_nr
|
||||
FROM fin_factuur f,
|
||||
mld_opdr o,
|
||||
prs_kostenplaats kp,
|
||||
prs_kostenplaatsgrp kpg
|
||||
WHERE f.mld_opdr_key = o.mld_opdr_key
|
||||
AND o.prs_kostenplaats_key =
|
||||
kp.prs_kostenplaats_key
|
||||
AND kp.prs_kostenplaatsgrp_key =
|
||||
kpg.prs_kostenplaatsgrp_key(+)
|
||||
ORDER BY f.fin_factuur_key DESC) kp_opd,
|
||||
( SELECT DISTINCT f.fin_factuur_key,
|
||||
b.prs_kostenplaats_key,
|
||||
kpg.prs_kostenplaatsgrp_key,
|
||||
kpg.prs_kostenplaatsgrp_nr
|
||||
FROM fin_factuur f,
|
||||
bes_bestelling b,
|
||||
bes_bestelopdr_item boi,
|
||||
bes_bestelling_item bi,
|
||||
prs_kostenplaats kp,
|
||||
prs_kostenplaatsgrp kpg
|
||||
WHERE f.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||||
AND boi.bes_bestelopdr_item_key =
|
||||
bi.bes_bestelopdr_item_key
|
||||
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
||||
AND b.prs_kostenplaats_key =
|
||||
kp.prs_kostenplaats_key
|
||||
AND kp.prs_kostenplaatsgrp_key =
|
||||
kpg.prs_kostenplaatsgrp_key(+)
|
||||
ORDER BY f.fin_factuur_key DESC) kp_bes
|
||||
WHERE f.fin_factuur_statuses_key =
|
||||
fs.fin_factuur_statuses_key
|
||||
AND f.fin_factuur_key = contr.fin_factuur_key
|
||||
AND f.prs_kostensoort_key = k.prs_kostensoort_key(+)
|
||||
AND f.mld_opdr_key = o.mld_opdr_key(+)
|
||||
AND f.mld_opdr_key = pr.mld_opdr_key(+)
|
||||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||||
AND f.cnt_contract_key = c.cnt_contract_key(+)
|
||||
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
||||
AND bo.prs_bedrijf_key = b_b.prs_bedrijf_key(+)
|
||||
AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+)
|
||||
AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
|
||||
AND f.fin_factuur_key = kp_cnt.fin_factuur_key(+)
|
||||
AND f.fin_factuur_key = kp_opd.fin_factuur_key(+)
|
||||
AND f.fin_factuur_key = kp_bes.fin_factuur_key(+)
|
||||
AND f.fin_factuur_verwijder IS NULL
|
||||
AND f.fin_factuur_statuses_key = 6 -- op akkoord
|
||||
) f,
|
||||
(SELECT kp.prs_kostenplaats_key,
|
||||
CASE
|
||||
WHEN aaxx_get_user IN ('INLO', 'IT')
|
||||
AND SUBSTR (prs_kostenplaatsgrp_nr, 1, 3) IN
|
||||
(SELECT administratie
|
||||
FROM aaxx_v_administratie)
|
||||
THEN
|
||||
''
|
||||
WHEN aaxx_get_user NOT IN ('INLO', 'IT')
|
||||
THEN
|
||||
''
|
||||
ELSE
|
||||
'kostenplaatsgrp_nr niet in interface bekend '
|
||||
|| SUBSTR (kpg.prs_kostenplaatsgrp_nr, 1, 3)
|
||||
END
|
||||
check_admin_exact
|
||||
FROM prs_kostenplaats kp, prs_kostenplaatsgrp kpg
|
||||
WHERE kp.prs_kostenplaatsgrp_key =
|
||||
kpg.prs_kostenplaatsgrp_key(+)) kp
|
||||
WHERE f.prs_kostenplaats_key = kp.prs_kostenplaats_key;
|
||||
|
||||
CREATE OR REPLACE VIEW aaxx_v_aanwezigfactuur
|
||||
(
|
||||
FIN_FACTUUR_KEY,
|
||||
@@ -1372,27 +1651,20 @@ BEGIN
|
||||
|
||||
END IF;
|
||||
|
||||
-- Hier bepalen we wat er allemaal meegaat de inkooprun in:
|
||||
--- Bron voor uitsluiten facturen is de aaxx_v_export_exact_check
|
||||
INSERT INTO aaxx_exp_factuur (fin_factuur_key, administratie)
|
||||
( SELECT DISTINCT fin_factuur_key,
|
||||
( SELECT DISTINCT fg.fin_factuur_key,
|
||||
DECODE (aaxx_get_user,
|
||||
'INLO', SUBSTR (prs_kostenplaatsgrp_nr, 1, 3),
|
||||
'INLO', SUBSTR (kpg.prs_kostenplaatsgrp_nr, 1, 3),
|
||||
'IT', DECODE (fg.lev_kpn,
|
||||
'00100008', '001', SUBSTR (prs_kostenplaatsgrp_nr, 1, 3)), -- Overrule voor facturen met leverende kp 00100008, altijd op adm 001 (zie ticket AAIT#69183)
|
||||
NULL)
|
||||
FROM aaxx_v_factuur_gegevens fg, prs_kostenplaats kp, prs_kostenplaatsgrp kpg
|
||||
'00100008', '001', SUBSTR (kpg.prs_kostenplaatsgrp_nr, 1, 3)), -- Overrule voor facturen met leverende kp 00100008, altijd op adm 001 (zie ticket AAIT#69183)
|
||||
NULL) administratie
|
||||
FROM aaxx_v_factuur_gegevens fg, aaxx_v_export_exact_check c, prs_kostenplaats kp, prs_kostenplaatsgrp kpg
|
||||
WHERE fg.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||||
AND fg.fin_factuur_key = c.fin_factuur_key AND c.check_in_inkooprun = 'Ja'
|
||||
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
|
||||
AND fg.fin_factuur_statuses_key = 6
|
||||
AND COALESCE(p_subaccount, COALESCE(kp.prs_kostenplaatsgrp_key, 0)) = COALESCE(kp.prs_kostenplaatsgrp_key, 0)
|
||||
AND (fg.fin_factuur_controle IS NULL OR fg.fin_factuur_controle = 1 AND fg.fin_factuur_controle_ok = 1)
|
||||
AND fg.fin_factuur_flag <> 1 -- filterstatus 1 = bolletje 'On hold - Niet meenemen in Inkooprun'
|
||||
AND fg.fin_factuur_datum > SYSDATE - (5 * 365) -- Check op geldige factuurdatum:
|
||||
AND fg.fin_factuur_datum < SYSDATE + 365 -- facturen mogen niet ouder zijn dan 5 jaar of meer dan <20><>n jaar in de toekomst.
|
||||
-- alleen de facturen meenemen die match op administratie <-> kostenplaatsgroep hebben zodat deze in cursor c (c_administratie VARCHAR2) ook in XML komen
|
||||
AND (1 = CASE WHEN aaxx_get_user IN ('INLO', 'IT') AND SUBSTR(prs_kostenplaatsgrp_nr, 1, 3) IN (SELECT administratie FROM aaxx_v_administratie) THEN 1
|
||||
WHEN aaxx_get_user NOT IN ('INLO', 'IT') THEN 1
|
||||
ELSE 0
|
||||
END)
|
||||
);
|
||||
|
||||
-- Bepaal het boekstuknummer (key 3) met het hoogste nummer van dit jaar ## AAIT#36589
|
||||
@@ -1717,11 +1989,15 @@ AS
|
||||
FROM aaxx_exp_factuur f
|
||||
, aaxx_v_factuur_gegevens fg
|
||||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||||
AND fg.fin_factuur_statuses_key = 6;
|
||||
AND fg.fin_factuur_statuses_key = 6
|
||||
UNION
|
||||
SELECT c.fin_factuur_key -- toevoegen alle inkoopfacturen die op akkoord staan, maar met filterstatus 'niet naar exact, maar wel verwerken' - ticket AAIT#77215
|
||||
FROM aaxx_v_export_exact_check c
|
||||
WHERE check_filter_nietnaarexact IS NOT NULL ;
|
||||
|
||||
CURSOR c_opdr
|
||||
IS
|
||||
SELECT distinct fg.mld_opdr_key, mld_statusopdr_key, m.mld_melding_status, m.mld_melding_key
|
||||
SELECT DISTINCT fg.mld_opdr_key, mld_statusopdr_key, m.mld_melding_status, m.mld_melding_key
|
||||
FROM aaxx_exp_factuur f
|
||||
, aaxx_v_factuur_gegevens fg
|
||||
, mld_opdr o
|
||||
@@ -1730,7 +2006,18 @@ AS
|
||||
AND fg.mld_opdr_key = o.mld_opdr_key
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND laatste_factuur = 1
|
||||
AND fg.fin_factuur_statuses_key = 6;
|
||||
AND fg.fin_factuur_statuses_key = 6
|
||||
UNION
|
||||
SELECT DISTINCT fg.mld_opdr_key, mld_statusopdr_key, m.mld_melding_status, m.mld_melding_key
|
||||
FROM (SELECT c.fin_factuur_key FROM aaxx_v_export_exact_check c WHERE check_filter_nietnaarexact IS NOT NULL) f
|
||||
, aaxx_v_factuur_gegevens fg
|
||||
, mld_opdr o
|
||||
, mld_melding m
|
||||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||||
AND fg.mld_opdr_key = o.mld_opdr_key
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND laatste_factuur = 1
|
||||
AND fg.fin_factuur_statuses_key = 6 ;
|
||||
|
||||
CURSOR c_bes
|
||||
IS
|
||||
@@ -1741,7 +2028,16 @@ AS
|
||||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||||
AND fg.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||||
AND laatste_factuur = 1
|
||||
AND fg.fin_factuur_statuses_key = 6;
|
||||
AND fg.fin_factuur_statuses_key = 6
|
||||
UNION
|
||||
SELECT bo.*
|
||||
FROM (SELECT c.fin_factuur_key FROM aaxx_v_export_exact_check c WHERE check_filter_nietnaarexact IS NOT NULL) f
|
||||
, aaxx_v_factuur_gegevens fg
|
||||
, bes_bestelopdr bo
|
||||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||||
AND fg.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||||
AND laatste_factuur = 1
|
||||
AND fg.fin_factuur_statuses_key = 6 ;
|
||||
|
||||
-- pas de bedragen in het factuurschema aan als de laatste factuur ontvangen is.
|
||||
CURSOR c_cnt
|
||||
@@ -1756,7 +2052,19 @@ AS
|
||||
AND c.cnt_contract_key = fs.cnt_contract_key
|
||||
AND fg.fin_factuur_boekmaand = fs.cnt_factuurschema_boekmaand
|
||||
AND laatste_factuur = 1
|
||||
AND fg.fin_factuur_statuses_key = 6;
|
||||
AND fg.fin_factuur_statuses_key = 6
|
||||
UNION
|
||||
SELECT DISTINCT fg.cnt_contract_key, fs.cnt_factuurschema_key
|
||||
FROM (SELECT c.fin_factuur_key FROM aaxx_v_export_exact_check c WHERE check_filter_nietnaarexact IS NOT NULL) f,
|
||||
aaxx_v_factuur_gegevens fg,
|
||||
cnt_contract c,
|
||||
cnt_factuurschema fs
|
||||
WHERE f.fin_factuur_key = fg.fin_factuur_key
|
||||
AND fg.cnt_contract_key = c.cnt_contract_key
|
||||
AND c.cnt_contract_key = fs.cnt_contract_key
|
||||
AND fg.fin_factuur_boekmaand = fs.cnt_factuurschema_boekmaand
|
||||
AND laatste_factuur = 1
|
||||
AND fg.fin_factuur_statuses_key = 6 ;
|
||||
|
||||
CURSOR c_sync_kostensoort
|
||||
IS
|
||||
@@ -1778,7 +2086,28 @@ AS
|
||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND std.mld_ins_discipline_key = md.ins_discipline_key
|
||||
AND std.prs_kostensoort_key = kstd.prs_kostensoort_key(+)
|
||||
AND md.prs_kostensoort_key = kvg.prs_kostensoort_key(+);
|
||||
AND md.prs_kostensoort_key = kvg.prs_kostensoort_key(+)
|
||||
UNION
|
||||
SELECT COALESCE (kstd.prs_kostensoort_key, kvg.prs_kostensoort_key)
|
||||
std_kostensoort_key,
|
||||
f.prs_kostensoort_key fac_kostensoort_key,
|
||||
f.fin_factuur_key
|
||||
FROM fin_factuur f,
|
||||
(SELECT c.fin_factuur_key FROM aaxx_v_export_exact_check c WHERE check_filter_nietnaarexact IS NOT NULL) ef,
|
||||
mld_opdr o,
|
||||
mld_melding m,
|
||||
mld_stdmelding std,
|
||||
ins_tab_discipline md,
|
||||
prs_kostensoort kstd,
|
||||
prs_kostensoort kvg
|
||||
WHERE f.fin_factuur_key = ef.fin_factuur_key
|
||||
AND f.mld_opdr_key = o.mld_opdr_key
|
||||
AND m.mld_melding_key = o.mld_melding_key
|
||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND std.mld_ins_discipline_key = md.ins_discipline_key
|
||||
AND std.prs_kostensoort_key = kstd.prs_kostensoort_key(+)
|
||||
AND md.prs_kostensoort_key = kvg.prs_kostensoort_key(+) ;
|
||||
|
||||
|
||||
v_errormsg VARCHAR (200);
|
||||
oracle_err_num NUMBER;
|
||||
@@ -1956,7 +2285,6 @@ BEGIN
|
||||
END bedrag,
|
||||
DECODE (aaxx_get_user,
|
||||
'EXPO' , DECODE (ks.prs_kostensoort_upper, 'CV CONS AUT', 2, fin_btwtabelwaarde_code), -- code 2 is 6 procent
|
||||
'ESSENT', '5',
|
||||
fin_btwtabelwaarde_code) fin_btwtabelwaarde_code,
|
||||
to_char(opdr_datum, 'YYYY'),
|
||||
DECODE (aaxx_get_user,
|
||||
@@ -2185,7 +2513,9 @@ BEGIN
|
||||
)
|
||||
OR ( aaxx_get_user = 'INLO'
|
||||
AND ( ks.prs_kostensoort_upper LIKE 'CV %'
|
||||
OR ks.prs_kostensoort_upper LIKE 'CVE %')
|
||||
OR ks.prs_kostensoort_upper LIKE 'CVE %'
|
||||
OR (SUBSTR(ot.mld_typeopdr_omschrijving, 1, 12) = 'Projectorder' AND INSTR(ks.prs_kostensoort_upper,'NC PROJ')>0 AND aaxx_get_user_sub('INLO', exact_k.klantcode) IN ('COVESTRO') )
|
||||
)
|
||||
AND NOT EXISTS ( SELECT 1 FROM DUAL WHERE aaxx_get_user_sub('INLO', exact_k.klantcode) IN ('GREENPORT VENLO')) -- uitsluiten subaccounts voor INLO
|
||||
AND NOT EXISTS ( SELECT 1 FROM DUAL WHERE aaxx_get_user_sub('INLO', exact_k.klantcode) IN ('COVESTRO') AND l.alg_locatie_code = 'GLN' AND INSTR(UPPER(g.alg_gebouw_naam), 'CHEMELOT CAMPUS')>0) -- uitsluiten COVESTRO-Campus Chemelot GELEEN
|
||||
)
|
||||
@@ -2353,7 +2683,6 @@ BEGIN
|
||||
bedrag,
|
||||
DECODE (aaxx_get_user,
|
||||
'EXPO' , DECODE (ks.prs_kostensoort_upper, 'CV CONS AUT', 2, fin_btwtabelwaarde_code), -- code 2 is 6 procent
|
||||
'ESSENT', '5',
|
||||
fin_btwtabelwaarde_code) fin_btwtabelwaarde_code,
|
||||
to_char(opdr_datum, 'YYYY'),
|
||||
DECODE (aaxx_get_user,
|
||||
@@ -2883,7 +3212,7 @@ BEGIN
|
||||
-- Generiek: voor meerdere/alle klantomgevingen zelfde structuur
|
||||
-- De fee is op basis van de op het project opgegeven Projectmarge (fin_verkoopfactuur_n3), met de tekst <20>Projectfee<65>.
|
||||
-- Per verkoopfactuur 1 regel, met exact_artikelcode '8110550 REVENUE PROJECTS FEE'
|
||||
IF aaxx_get_user IN ('DSM', 'GN', 'ESSENT') THEN
|
||||
IF aaxx_get_user IN ('DSM', 'GN', 'ESSENT', 'INLO') THEN
|
||||
|
||||
INSERT INTO fin_verkoopfactuur
|
||||
(
|
||||
@@ -2990,11 +3319,11 @@ BEGIN
|
||||
(
|
||||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3, fin_verkoopfactuur_c5, fin_verkoopfactuur_c8, fin_verkoopfactuur_c6, fin_verkoopfactuur_n4
|
||||
)
|
||||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'BASE FEE' || DECODE (INSTR(v.prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', prs_kostensoortgrp_oms, 'BASE FEE 1.5%', ROUND(SUM(fin_verkoopfactuur_bedrag) * 0.015, 2), 5, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X', fin_verkoopfactuur_c5, fin_verkoopfactuur_c8, fin_verkoopfactuur_c6, fin_verkoopfactuur_n4
|
||||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'BASE FEE' || DECODE (INSTR(v.prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', prs_kostensoortgrp_oms, 'BASE FEE 1.5%', ROUND(SUM(fin_verkoopfactuur_bedrag) * 0.015, 2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X', fin_verkoopfactuur_c5, fin_verkoopfactuur_c8, fin_verkoopfactuur_c6, fin_verkoopfactuur_n4
|
||||
FROM fin_verkoopfactuur v
|
||||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||||
AND fin_verkoopfactuur_c8 = 'CORE'
|
||||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, instr(v.prs_kostensoort_oms, ' VJ'), prs_kostensoortgrp_oms, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, fin_verkoopfactuur_c5, fin_verkoopfactuur_c8, fin_verkoopfactuur_c6, fin_verkoopfactuur_n4;
|
||||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, instr(v.prs_kostensoort_oms, ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, fin_verkoopfactuur_c5, fin_verkoopfactuur_c8, fin_verkoopfactuur_c6, fin_verkoopfactuur_n4;
|
||||
END IF;
|
||||
|
||||
-- EXPO NC PROJ
|
||||
@@ -3011,7 +3340,7 @@ BEGIN
|
||||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, fin_verkoopfactuur_c5, fin_verkoopfactuur_c8, fin_verkoopfactuur_c6, fin_verkoopfactuur_n4;
|
||||
END IF;
|
||||
|
||||
-- INLO
|
||||
-- INLO CORE
|
||||
-- Voor Henkel: 5% over alle facturen van CV. Voor alle opdrachttype. Voor NC PROJ wordt GEEN fee berekend.
|
||||
-- Voor Zwaansvliet: 18,5% over de facturen van CV (=fee organisatiekosten), boeken op 8210520. Daarna nog Fee van 6,5%, boeken op 8210511 . Voor NC PROJ wordt geen fee berekend..
|
||||
-- Voor VEH wordt geen FEE berekend
|
||||
@@ -3025,6 +3354,7 @@ BEGIN
|
||||
FROM fin_verkoopfactuur v
|
||||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||||
AND prs_kostensoort_oms LIKE 'CV %'
|
||||
AND fin_verkoopfactuur_c8 = 'CORE'
|
||||
AND v.fin_verkoopfactuur_c1 = '03603000' -- Henkel
|
||||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, fin_verkoopfactuur_c5, fin_verkoopfactuur_c8, fin_verkoopfactuur_c6, fin_verkoopfactuur_n4;
|
||||
|
||||
@@ -3036,6 +3366,7 @@ BEGIN
|
||||
FROM fin_verkoopfactuur v
|
||||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||||
AND prs_kostensoort_oms LIKE 'CV %'
|
||||
AND fin_verkoopfactuur_c8 = 'CORE'
|
||||
AND v.fin_verkoopfactuur_c1 = '03604000' -- Zwaansvliet
|
||||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, fin_verkoopfactuur_c5, fin_verkoopfactuur_c8, fin_verkoopfactuur_c6, fin_verkoopfactuur_n4;
|
||||
|
||||
@@ -3047,6 +3378,7 @@ BEGIN
|
||||
FROM fin_verkoopfactuur v
|
||||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||||
AND prs_kostensoort_oms LIKE 'CV %'
|
||||
AND fin_verkoopfactuur_c8 = 'CORE'
|
||||
AND v.fin_verkoopfactuur_c1 = '03604000' -- Zwaansvliet
|
||||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, fin_verkoopfactuur_c5, fin_verkoopfactuur_c8, fin_verkoopfactuur_c6, fin_verkoopfactuur_n4;
|
||||
|
||||
@@ -3969,164 +4301,6 @@ END;
|
||||
-- RAPPORTAGES - Inkoop en Verkoop
|
||||
-------------------------------------------
|
||||
|
||||
-- Inkoop: Alle facturen akkoord - Gebruikersoverzicht inkoopfacturen die wel/niet meegaan de EXACT inkooprun in
|
||||
CREATE OR REPLACE VIEW aaxx_v_export_exact_check
|
||||
(
|
||||
fin_factuur_key,
|
||||
check_in_inkooprun,
|
||||
fin_factuur_totaal,
|
||||
check_factuurdatum, -- facturen mogen niet ouder zijn dan 5 jaar of meer dan <20><>n jaar in de toekomst
|
||||
check_dubbelefactuur, -- status van de factuur is ingevoerd als er facturen van dezelfde leverancier en nummer zijn met status ingevoerd, afgewezen of incompleet
|
||||
check_nogtecontroleren, -- factuur staat op controle en moet nog gecontroleerd worden (vinkje controle nog niet gezet)
|
||||
check_onholdgezet, -- filterstatus 1 = bolletje 'On hold - Niet meenemen in inkooprun'
|
||||
check_admin_exact -- voor inlo en aait gelden meerdere administratie met een vereiste match op SUBSTR(prs_kostenplaatsgrp_nr, 1, 3)
|
||||
)
|
||||
AS
|
||||
SELECT f.fin_factuur_key,
|
||||
CASE
|
||||
WHEN f.check_factuurdatum IS NULL
|
||||
AND f.check_dubbelefactuur IS NULL
|
||||
AND f.check_nogtecontroleren IS NULL
|
||||
AND f.check_onholdgezet IS NULL
|
||||
AND kp.check_admin_exact IS NULL
|
||||
THEN
|
||||
'Ja'
|
||||
ELSE
|
||||
'Nee'
|
||||
END
|
||||
inkooprun,
|
||||
f.fin_factuur_totaal,
|
||||
f.check_factuurdatum,
|
||||
f.check_dubbelefactuur,
|
||||
f.check_nogtecontroleren,
|
||||
f.check_onholdgezet,
|
||||
kp.check_admin_exact
|
||||
FROM (SELECT f.fin_factuur_key,
|
||||
fs.fin_factuur_statuses_omschr,
|
||||
COALESCE (
|
||||
o.prs_kostenplaats_key,
|
||||
COALESCE (
|
||||
c.prs_kostenplaats_key,
|
||||
(SELECT DISTINCT b.prs_kostenplaats_key
|
||||
FROM bes_bestelling b,
|
||||
bes_bestelopdr_item boi,
|
||||
bes_bestelling_item bi
|
||||
WHERE bo.bes_bestelopdr_key =
|
||||
boi.bes_bestelopdr_key
|
||||
AND boi.bes_bestelopdr_item_key =
|
||||
bi.bes_bestelopdr_item_key
|
||||
AND bi.bes_bestelling_key =
|
||||
b.bes_bestelling_key)))
|
||||
prs_kostenplaats_key,
|
||||
f.fin_factuur_totaal,
|
||||
CASE
|
||||
WHEN f.fin_factuur_datum < SYSDATE - (5 * 365)
|
||||
OR f.fin_factuur_datum > SYSDATE + 365
|
||||
THEN
|
||||
'ongeldige factuurdatum: '
|
||||
|| TO_CHAR (f.fin_factuur_datum, 'dd-mm-yyyy')
|
||||
ELSE
|
||||
''
|
||||
END
|
||||
check_factuurdatum,
|
||||
( -- status van de factuur is ingevoerd als er facturen van dezelfde leverancier en nummer zijn met status ingevoerd(2) of incompleet(3)
|
||||
SELECT DECODE (COUNT (*), 0, '', 'dubbele factuur!')
|
||||
FROM fin_factuur f_t,
|
||||
cnt_contract c_t,
|
||||
bes_bestelopdr b_t,
|
||||
mld_opdr o_t
|
||||
WHERE f_t.fin_factuur_verwijder IS NULL
|
||||
AND f_t.mld_opdr_key = o_t.mld_opdr_key(+)
|
||||
AND f_t.cnt_contract_key = c_t.cnt_contract_key(+)
|
||||
AND f_t.bes_bestelopdr_key =
|
||||
b_t.bes_bestelopdr_key(+)
|
||||
AND COALESCE (
|
||||
o_t.mld_uitvoerende_keys,
|
||||
COALESCE (b_t.prs_bedrijf_key,
|
||||
c_t.cnt_prs_bedrijf_key)) =
|
||||
COALESCE (
|
||||
o.mld_uitvoerende_keys,
|
||||
COALESCE (bo.prs_bedrijf_key,
|
||||
c.cnt_prs_bedrijf_key))
|
||||
AND f.fin_factuur_nr = f_t.fin_factuur_nr
|
||||
AND f_t.fin_factuur_statuses_key IN (2, 3)
|
||||
AND f.fin_factuur_statuses_key = 6)
|
||||
check_dubbelefactuur,
|
||||
CASE
|
||||
WHEN contr.fin_factuur_controle = 1
|
||||
AND fin_factuur_controle_ok IS NULL
|
||||
THEN
|
||||
'Controle - Nog doen'
|
||||
ELSE
|
||||
''
|
||||
END
|
||||
check_nogtecontroleren,
|
||||
CASE
|
||||
WHEN f.fin_factuur_flag = 1 THEN 'on hold'
|
||||
ELSE ''
|
||||
END
|
||||
check_onholdgezet
|
||||
FROM fin_factuur f,
|
||||
fin_factuur_statuses fs,
|
||||
mld_opdr o,
|
||||
mld_typeopdr ot,
|
||||
cnt_contract c,
|
||||
bes_bestelopdr bo,
|
||||
prs_bedrijf b_o,
|
||||
prs_bedrijf b_c,
|
||||
prs_bedrijf b_b,
|
||||
(SELECT fin_factuur_key,
|
||||
(SELECT fin_kenmerkfactuur_waarde
|
||||
FROM fin_kenmerkfactuur fk, fin_kenmerk k
|
||||
WHERE fk.fin_kenmerk_key = k.fin_kenmerk_key
|
||||
AND k.fin_kenmerk_verwijder IS NULL
|
||||
AND UPPER (fin_kenmerk_omschrijving) =
|
||||
'EXTRA CONTROLE?'
|
||||
AND fk.fin_factuur_key = f.fin_factuur_key)
|
||||
fin_factuur_controle,
|
||||
(SELECT fin_kenmerkfactuur_waarde
|
||||
FROM fin_kenmerkfactuur fk, fin_kenmerk k
|
||||
WHERE fk.fin_kenmerk_key = k.fin_kenmerk_key
|
||||
AND k.fin_kenmerk_verwijder IS NULL
|
||||
AND UPPER (fin_kenmerk_omschrijving) =
|
||||
'GECONTROLEERD'
|
||||
AND fk.fin_factuur_key = f.fin_factuur_key)
|
||||
fin_factuur_controle_ok
|
||||
FROM fin_factuur f) contr
|
||||
WHERE f.fin_factuur_statuses_key =
|
||||
fs.fin_factuur_statuses_key
|
||||
AND f.fin_factuur_key = contr.fin_factuur_key
|
||||
AND f.mld_opdr_key = o.mld_opdr_key(+)
|
||||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+)
|
||||
AND f.cnt_contract_key = c.cnt_contract_key(+)
|
||||
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
|
||||
AND bo.prs_bedrijf_key = b_b.prs_bedrijf_key(+)
|
||||
AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+)
|
||||
AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
|
||||
AND f.fin_factuur_verwijder IS NULL
|
||||
AND f.fin_factuur_statuses_key = 6 -- op akkoord
|
||||
) f,
|
||||
(SELECT kp.prs_kostenplaats_key,
|
||||
CASE
|
||||
WHEN aaxx_get_user IN ('INLO', 'IT')
|
||||
AND SUBSTR (prs_kostenplaatsgrp_nr, 1, 3) IN
|
||||
(SELECT administratie
|
||||
FROM aaxx_v_administratie)
|
||||
THEN
|
||||
''
|
||||
WHEN aaxx_get_user NOT IN ('INLO', 'IT')
|
||||
THEN
|
||||
''
|
||||
ELSE
|
||||
'kostenplaatsgrp_nr niet in interface bekend '
|
||||
|| SUBSTR (kpg.prs_kostenplaatsgrp_nr, 1, 3)
|
||||
END
|
||||
check_admin_exact
|
||||
FROM prs_kostenplaats kp, prs_kostenplaatsgrp kpg
|
||||
WHERE kp.prs_kostenplaatsgrp_key =
|
||||
kpg.prs_kostenplaatsgrp_key(+)) kp
|
||||
WHERE f.prs_kostenplaats_key = kp.prs_kostenplaats_key;
|
||||
|
||||
-- Verkoop:
|
||||
-- Detailrapport van de verkooprun. Wordt als factuurbijlage van de exact-verkoopfactuur meegestuurd naar klant
|
||||
--- opgebouwd uit 2 views: detail_0 (basis) en detail_1 (klantrapport)
|
||||
|
||||
Reference in New Issue
Block a user