2685 lines
170 KiB
SQL
2685 lines
170 KiB
SQL
-- Customer specific once-script RABO
|
||
|
||
SET ECHO ON
|
||
SPOOL xRABO#37283.lst
|
||
SET DEFINE OFF
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_export_verwerk_exact (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c_fact
|
||
IS
|
||
SELECT f.fin_factuur_key
|
||
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;
|
||
|
||
CURSOR c_opdr
|
||
IS
|
||
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
|
||
, 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
|
||
SELECT bo.*
|
||
FROM aaxx_exp_factuur 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;
|
||
|
||
CURSOR c_sync_kostensoort
|
||
IS
|
||
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,
|
||
aaxx_exp_factuur 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;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanvrager NUMBER;
|
||
v_bestelling_key NUMBER;
|
||
v_logdate DATE;
|
||
BEGIN
|
||
v_errormsg := 'Geen akties';
|
||
|
||
-- Facilitor user
|
||
IF aaxx_get_user = 'SITECH'
|
||
THEN
|
||
v_aanvrager := 6524;
|
||
ELSE
|
||
v_aanvrager := 4;
|
||
END IF;
|
||
|
||
-- AAIT#34097 aanpassen kostensoort bij factuur. Soms wordt de stdmelding aangepast terwijl
|
||
-- er al een factuur geboekt is. Door bij het verwerken van de factuur deze kostensoort nog
|
||
-- aan te passen wordt voorkomen dat hier verschillen gaan ontstaan.
|
||
-- AAIT#36442 AAIT niet meenemen in dit mechanisme omdat bij AAIT de kostensoort uit de opdracht
|
||
-- gehaald wordt.
|
||
IF aaxx_get_user <> 'IT'
|
||
THEN
|
||
v_errormsg := 'Aanpassen kostensoort';
|
||
FOR reck IN c_sync_kostensoort
|
||
LOOP
|
||
BEGIN
|
||
IF reck.fac_kostensoort_key <> reck.std_kostensoort_key
|
||
THEN
|
||
UPDATE fin_factuur
|
||
SET prs_kostensoort_key = reck.std_kostensoort_key
|
||
WHERE fin_factuur_key = reck.fin_factuur_key;
|
||
|
||
-- Pas de login aan
|
||
INSERT INTO fac_tracking (fac_tracking_refkey, fac_srtnotificatie_key, fac_tracking_oms)
|
||
SELECT reck.fin_factuur_key, fac_srtnotificatie_key, 'Kostensoort aangepast in factuur export'
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'FINUPD';
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
-- Verkoopinterface
|
||
|
||
v_logdate := SYSDATE;
|
||
-- voeg SA en ST opdrachten toe aan de fin_verkoopfacturen (vh. verkoopbuffer)
|
||
-- BTW tarief in verkoopbuffer is altijd 19 procent (AADS#18338)
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_bedrijf_key, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, 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_n1
|
||
)
|
||
SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr, 1,30 ),
|
||
'opdracht',
|
||
o.mld_opdr_key,
|
||
v_logdate,
|
||
DECODE (aaxx_get_user, 'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757',
|
||
'CV EIG INST PL', '913757',
|
||
substr(aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr),1,6)),
|
||
'DOW', k.prs_kostenplaats_nr,
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520',
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SITECH', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'ESSENT', '912001',
|
||
'LB', exact_code,
|
||
'NMM', 'MGB',
|
||
'SABIC', DECODE (to_char(opdr_datum, 'YYYY'), '2012', k.prs_kostenplaats_nr,
|
||
'2013', k.prs_kostenplaats_nr,
|
||
aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
SUBSTR (prs_kostenplaats_nr, 1, 30)) prs_kostenplaats_nr,
|
||
DECODE (aaxx_get_user, 'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757',
|
||
'CV EIG INST PL', '913757',
|
||
substr(aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr),1,6)),
|
||
'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520',
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SITECH', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'ESSENT', '912001',
|
||
'LB', DECODE(g.alg_locatie_key,
|
||
1, '911928', -- Worldwide Headquarters
|
||
2, '911927', -- Maasvlakte
|
||
3, '911930', -- Botlek
|
||
4, '911929' -- Moerdijk
|
||
),
|
||
'NMM', DECODE(k.prs_kostenplaats_nr,
|
||
'0001', '913799', -- Heijmans
|
||
'0002', '913810', -- Vermaat
|
||
'0003', '913766', -- Defensie
|
||
'0004', '913776', -- Stichting Nationaal Militair Museum
|
||
'Onbekend'
|
||
),
|
||
'RABO', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'SABIC', DECODE (to_char(opdr_datum, 'YYYY'), '2012', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'2013', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
(SELECT distinct prs_leverancier_nr FROM prs_bedrijf b, prs_afdeling a
|
||
WHERE b.prs_bedrijf_key = a.prs_bedrijf_key
|
||
AND b.prs_bedrijf_verwijder IS NULL
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_afdeling_naam = aaxx_get_top_dep_code(k.prs_kostenplaats_nr))),
|
||
'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'ZCN', '913815',
|
||
'ZKHM', '913816',
|
||
SUBSTR (prs_kostenplaats_nr, 1, 30)) debiteur,
|
||
b.prs_bedrijf_key,
|
||
ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') ,
|
||
ks.prs_kostensoort_opmerking,
|
||
vk_prs_kostensoort_refcode,
|
||
SUBSTR(DECODE (aaxx_get_user,
|
||
'AH', DECODE(SUBSTR(ks.prs_kostensoort_upper,1,2), 'CV', ksg.prs_kostensoortgrp_oms,
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key),
|
||
'DBS', DECODE(ks.prs_kostensoortgrp_key, 3, 'Projecten', 'Core Variable'),
|
||
'DOW', 'Service Charges',
|
||
'RABO', 'Servicekosten ' || aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'VL', 'Core Variabel',
|
||
'ZCN', DECODE(sd.ins_srtdiscipline_prefix, 'PR', 'Projecten',
|
||
DECODE(aaxx_get_top_dep_code(prs_kostenplaats_nr), 'SN', 'Servicekosten',
|
||
'KL', 'Klantvragen',
|
||
'')),
|
||
'ZKHM', DECODE(sd.ins_srtdiscipline_prefix, 'PR', 'Projecten',
|
||
DECODE(aaxx_get_top_dep_code(prs_kostenplaats_nr), 'SN', 'Servicekosten',
|
||
'KL', 'Klantvragen',
|
||
'')),
|
||
ksg.prs_kostensoortgrp_oms || DECODE (aaxx_get_user, 'LB', ' ' || Exact_code,
|
||
'SABIC', ' ' || DECODE (to_char(opdr_datum, 'YYYY'), '2012', k.prs_kostenplaats_nr,
|
||
'2013', k.prs_kostenplaats_nr,
|
||
aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ' ' || l.alg_locatie_code),
|
||
'NMM', DECODE(k.prs_kostenplaats_nr, '0001', ' Heijmans',
|
||
'0002', ' Vermaat',
|
||
'0003', ' Defensie',
|
||
'0004', ' NMM',
|
||
' Onbekend')
|
||
)
|
||
)
|
||
, 1, 60) prs_kostensoortgrp_oms,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| mld_opdr_bedrijfopdr_volgnr
|
||
|| ' '
|
||
|| d.ins_discipline_omschrijving
|
||
|| ' ('
|
||
|| (SELECT MAX(mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND ( ( aaxx_get_user <> 'DBS' AND k.mld_srtkenmerk_key = 143) -- opdrachtnummer
|
||
OR ( aaxx_get_user = 'DBS' AND k.mld_srtkenmerk_key = 55) -- projectnaam
|
||
)
|
||
AND km.mld_melding_key = m.mld_melding_key)
|
||
|| ')'
|
||
omschrijving,
|
||
ROUND (fg.bedrag
|
||
* COALESCE ( (SELECT u.uplift
|
||
FROM aaxx_imp_uplift u
|
||
WHERE u.prs_leverancier_nr = b.prs_leverancier_nr
|
||
AND UPPER(soort_order) = 'WO'
|
||
AND UPPER (u.prs_kostensoort_oms) =
|
||
ks.prs_kostensoort_upper
|
||
AND fg.fin_factuur_boekmaand =
|
||
u.jaar
|
||
|| '-'
|
||
|| LTRIM (TO_CHAR (u.maand, '00'))),
|
||
DECODE (aaxx_get_user, 'NMM', 1.1, 1)
|
||
),
|
||
2
|
||
),
|
||
DECODE (aaxx_get_user,
|
||
'SABIC', DECODE (ks.prs_kostensoort_oms, 'RAS-NC', 2, 'CV OP VERV', 2, 5), -- Kostensoorten RAS-NC en CV OP VERV zijn laag tarief
|
||
'SITECH', DECODE (fg.prs_kostensoort_refcode, '4321006', fin_btwtabelwaarde_code, 5), --AADS#21168
|
||
fin_btwtabelwaarde_code) fin_btwtabelwaarde_code,
|
||
to_char(opdr_datum, 'YYYY'),
|
||
DECODE (aaxx_get_user,
|
||
'LB', l.alg_locatie_code,
|
||
'NMM', 'MGB',
|
||
COALESCE(exact_code, alg_gebouw_code)), -- C1
|
||
SUBSTR (
|
||
DECODE (aaxx_get_user, 'AH', DECODE(SUBSTR(ks.prs_kostensoort_upper,1,2), 'CV', ksg.prs_kostensoortgrp_oms,
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key),
|
||
'DBS', DECODE (ks.prs_kostensoort_upper, 'NC PROJ', '913757' || m.mld_melding_key,
|
||
'CV EIG BOUW PL', '913757',
|
||
'CV EIG INST PL', '913757',
|
||
'CVE GEB NIET PLAN', aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr) || m.mld_melding_key,
|
||
'CVE INSTAL NIET PLAN', aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr) || m.mld_melding_key,
|
||
aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr)),
|
||
'SITECH', (SELECT fac_usrdata_omschr
|
||
FROM alg_onrgoedkenmerk, fac_usrdata ud
|
||
WHERE alg_onrgoed_key = g.alg_gebouw_key
|
||
AND alg_kenmerk_key = 1060 -- rema contract
|
||
AND ud.fac_usrdata_key =
|
||
fac.safe_to_number (alg_onrgoedkenmerk_waarde)
|
||
AND ( ks.prs_kostensoort_upper LIKE 'ST ONDH%'
|
||
OR ks.prs_kostensoort_upper LIKE 'STB ONDH%')),
|
||
'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8) ||
|
||
DECODE(substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,3),
|
||
'911', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,5), 'NC P ', 'PR', 'NC/CV'),
|
||
'912', 'CV/NC/PR',
|
||
'913', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,7), 'COR VAR', 'CV', 'NC/PR'),
|
||
'Onbekend') ||
|
||
substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ksg.prs_kostensoortgrp_oms || ' ' || l.alg_locatie_code,
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'RABO', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'SABIC', DECODE (to_char(opdr_datum, 'YYYY'), '2012', '',
|
||
'2013', '',
|
||
aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'ZCN', DECODE(sd.ins_srtdiscipline_prefix, 'PR', to_char(m.mld_melding_key),
|
||
aaxx_get_top_dep_code(prs_kostenplaats_nr)),
|
||
'ZKHM', DECODE(sd.ins_srtdiscipline_prefix, 'PR', to_char(m.mld_melding_key),
|
||
aaxx_get_top_dep_code(prs_kostenplaats_nr)),
|
||
'')
|
||
, 1, 12) groepering, -- C2
|
||
DECODE (aaxx_get_user, 'LB', prs_kostensoort_oms || '1',
|
||
'DOW', 'A' || prs_kostensoort_oms,
|
||
'ESSENT', (SELECT uplift
|
||
FROM aaxx_imp_uplift u
|
||
WHERE u.prs_kostensoort_oms = ks.prs_kostensoort_oms),
|
||
'') subregelvolgorde, -- C3
|
||
l.alg_locatie_key -- N1
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
prs_bedrijf b,
|
||
prs_kostenplaats k,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
fin_factuur f,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_v_onroerendgoed og,
|
||
aaxx_v_exact_code_gebouw exact,
|
||
(SELECT fin_factuur_key,
|
||
mld_opdr_key,
|
||
SUM (fin_factuurregel_totaal) bedrag,
|
||
aaxx_get_verkoop_btw_code (fin_btwtabelwaarde_key) fin_btwtabelwaarde_code,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
prs_kostensoort_refcode,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum
|
||
FROM aaxx_v_factuur_gegevens
|
||
WHERE fin_factuur_statuses_key = 7
|
||
GROUP BY fin_factuur_key,
|
||
fin_btwtabelwaarde_key,
|
||
mld_opdr_key,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum,
|
||
fin_factuurregel_btw,
|
||
fin_btwtabelwaarde_code,
|
||
vk_prs_kostensoort_refcode,
|
||
prs_kostensoort_refcode,
|
||
fin_factuurregel_totaal) fg
|
||
WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND fg.mld_opdr_key = o.mld_opdr_key
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
||
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND og.alg_gebouw_key = exact.alg_gebouw_key(+)
|
||
AND fg.fin_factuur_key = f.fin_factuur_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_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
|
||
AND (( sd.ins_srtdiscipline_prefix = 'SA'
|
||
AND aaxx_get_user <> 'VL'
|
||
AND aaxx_get_user <> 'AH'
|
||
AND aaxx_get_user <> 'DSM'
|
||
AND aaxx_get_user <> 'SABIC'
|
||
AND aaxx_get_user <> 'ZCN'
|
||
AND aaxx_get_user <> 'ZKHM'
|
||
AND aaxx_get_user <> 'DOW'
|
||
AND aaxx_get_user <> 'LB'
|
||
AND aaxx_get_user <> 'NMM'
|
||
AND aaxx_get_user <> 'RABO'
|
||
AND aaxx_get_user <> 'DBS'
|
||
AND aaxx_get_user <> 'ESSENT')
|
||
OR ( aaxx_get_user = 'SITECH'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'ST ONDH%'
|
||
OR ks.prs_kostensoort_upper LIKE 'STB ONDH%')
|
||
AND ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
)
|
||
OR ( aaxx_get_user = 'AH'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV%'
|
||
OR ks.prs_kostensoort_upper LIKE 'NC PROJ%')
|
||
)
|
||
OR ( aaxx_get_user = 'DBS'
|
||
AND ks.prs_kostensoort_upper IN (
|
||
'CV AFVAL REST',
|
||
'CV OND',
|
||
'CV GEB NIET PLAN',
|
||
'CV INSTAL NIET PLAN',
|
||
'CV TERR VERHARD',
|
||
'CV TERR NIET PL',
|
||
'CV OND TERR',
|
||
'CV TERR OVR',
|
||
'CV CONS REST',
|
||
'CV CONS SERV',
|
||
'CV CONS OVR',
|
||
'CV CONS AUT',
|
||
'CV BEWAK',
|
||
'CV PREV CAL',
|
||
'CV BEWAK OVR',
|
||
'CV SCH',
|
||
'CV SCH GLAS',
|
||
'CV SCH OVR',
|
||
'CV VGM',
|
||
'CV GROEN',
|
||
'CV EIG BOUW PL',
|
||
'CV EIG INST PL',
|
||
'NC PROJ',
|
||
'CVE INSTAL NIET PLAN',
|
||
'CVE GEB NIET PLAN')
|
||
)
|
||
OR ( aaxx_get_user = 'DOW'
|
||
AND ( ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
OR ot.mld_typeopdr_omschrijving = 'Projectorder')
|
||
AND ( ks.prs_kostensoort_upper LIKE 'NC %'
|
||
OR ks.prs_kostensoort_upper LIKE 'NC P %'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR MAIL SERVICES'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR VENDING'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR MAIN HANDYMAN'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR GEN TEN SERV'
|
||
)
|
||
)
|
||
OR ( aaxx_get_user = 'DSM'
|
||
AND SUBSTR(ks.prs_kostensoort_upper,1,3) IN (
|
||
'CV ',
|
||
'CVE')
|
||
)
|
||
OR ( aaxx_get_user = 'ESSENT'
|
||
AND ks.prs_kostensoort_upper LIKE 'CVE%'
|
||
AND ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
)
|
||
OR ( aaxx_get_user = 'LB'
|
||
AND ks.prs_kostensoort_upper LIKE 'NC%'
|
||
AND ks.prs_kostensoort_upper <> 'NC DERDEN'
|
||
AND ks.prs_kostensoort_upper <> 'NC PROJ'
|
||
)
|
||
OR ( aaxx_get_user = 'NMM'
|
||
AND ks.prs_kostensoort_upper LIKE 'CV%'
|
||
)
|
||
OR ( aaxx_get_user = 'RABO'
|
||
AND ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
)
|
||
OR ( aaxx_get_user = 'SABIC'
|
||
AND ( ( o.mld_opdr_datumbegin < to_date ('20140101', 'yyyymmdd') -- Voor sabic geldt in 2014 een ander mechanisme (AASA#28673)
|
||
AND ks.prs_kostensoort_upper LIKE '%NC'
|
||
AND ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
)
|
||
OR ( o.mld_opdr_datumbegin > to_date ('20140101', 'yyyymmdd') -- Voor sabic geldt voor 2014 een ander mechanisme (AASA#28673)
|
||
AND ks.prs_kostensoort_upper LIKE 'CV %'
|
||
AND ks.prs_kostensoort_upper <> 'CV CHIP'
|
||
AND ( o.mld_opdr_datumbegin > to_date ('20150101', 'yyyymmdd') -- Voor sabic geldt voor 2015 een ander mechanisme (AASA#31618)
|
||
OR ( ks.prs_kostensoort_upper <> 'CV CONS REST'
|
||
AND ks.prs_kostensoort_upper <> 'CV CONS AUT'
|
||
AND ks.prs_kostensoort_upper <> 'CV SCH OVR'
|
||
AND ks.prs_kostensoort_upper <> 'CV DOC POST'
|
||
AND ks.prs_kostensoort_upper <> 'CV AFVAL REST'
|
||
)
|
||
)
|
||
AND ( ks.prs_kostensoort_upper <> 'CV EIG BOUW PL' OR ot.mld_typeopdr_omschrijving = 'Workorder')
|
||
)
|
||
)
|
||
)
|
||
OR ( aaxx_get_user = 'VL'
|
||
AND ( ( o.mld_opdr_datumbegin < to_date ('20160101', 'yyyymmdd') -- Voor VL geldt in 2016 een ander mechanisme (AAVL#34856)
|
||
AND ks.prs_kostensoort_upper IN (
|
||
'CV OND',
|
||
'CV TERR OVR',
|
||
'CV BEWAK OVR',
|
||
'CV BOUW PLAN',
|
||
'CV CONS REST',
|
||
'CV CONS OVR',
|
||
'CV SCH',
|
||
'CV WP',
|
||
'CV GEB NIET PLAN',
|
||
'CV CONS SERV',
|
||
'CV SCH GLAS',
|
||
'CV KART',
|
||
'CV INSTAL PLAN',
|
||
'CV BEWAK',
|
||
'CV VERH',
|
||
'CV GROEN',
|
||
'CV INSTAL NIET PLAN',
|
||
'CV PREV CAL',
|
||
'CV DOC POST',
|
||
'CV BEW',
|
||
'CV TERR VERHARD',
|
||
'CV REC',
|
||
'CV DOC REP',
|
||
'CV VERV PERS',
|
||
'CV OND TERR',
|
||
'CV ACHT OND',
|
||
'CV EIG INST PL',
|
||
'CV EIG BOUW PL',
|
||
'NC ACHT OND',
|
||
'NC INV BOUW',
|
||
'NC INV WP',
|
||
'NC INV INST')
|
||
)
|
||
OR
|
||
( o.mld_opdr_datumbegin >= to_date ('20160101', 'yyyymmdd') -- Voor VL geldt in 2016 een ander mechanisme (AAVL#34856)
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CVE %' OR ks.prs_kostensoort_upper LIKE 'NC %')
|
||
)
|
||
)
|
||
)
|
||
OR ( aaxx_get_user = 'ZCN'
|
||
AND ( sd.ins_srtdiscipline_prefix = 'PR'
|
||
OR aaxx_get_top_dep_code(prs_kostenplaats_nr) = 'SN'
|
||
OR aaxx_get_top_dep_code(prs_kostenplaats_nr) = 'KL'
|
||
)
|
||
)
|
||
OR ( aaxx_get_user = 'ZKHM'
|
||
AND ( sd.ins_srtdiscipline_prefix = 'PR'
|
||
OR aaxx_get_top_dep_code(prs_kostenplaats_nr) = 'SN'
|
||
OR aaxx_get_top_dep_code(prs_kostenplaats_nr) = 'KL'
|
||
)
|
||
)
|
||
);
|
||
|
||
|
||
-- voeg contract orders toe aan de verkoopbuffer
|
||
-- bij SITECH wordt gegroepeerd op REMA contract
|
||
IF aaxx_get_user = 'SITECH' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
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_kostensoort_refcode, 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_n1
|
||
)
|
||
SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || 'C' || cnt_contract_nummer_intern || DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie), 1,30 ),
|
||
'contract',
|
||
c.cnt_contract_key,
|
||
v_logdate,
|
||
aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||
aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||
ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') ,
|
||
ks.prs_kostensoort_opmerking,
|
||
vk_prs_kostensoort_refcode,
|
||
(SELECT prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key),
|
||
'C'
|
||
|| cnt_contract_nummer_intern
|
||
|| DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie)
|
||
omschrijving,
|
||
COALESCE((SELECT ROUND (COALESCE(cp.gewicht,1) * fg.bedrag * u.uplift, 2)
|
||
FROM aaxx_imp_uplift u
|
||
WHERE u.prs_leverancier_nr = b.prs_leverancier_nr
|
||
AND UPPER (soort_order) = 'CO'
|
||
AND UPPER (u.prs_kostensoort_oms) = ks.prs_kostensoort_upper
|
||
AND fg.fin_factuur_boekmaand =
|
||
TO_CHAR (u.jaar) || '-' || LTRIM (TO_CHAR (u.maand, '00'))), ROUND ((cp.gewicht * fg.bedrag), 2)),
|
||
5, -- AADS#21168 , AADS#26856
|
||
to_char(opdr_datum, 'YYYY'),
|
||
cp.alg_gebouw_code,
|
||
cp.rema,
|
||
'',
|
||
''
|
||
FROM cnt_contract c,
|
||
prs_bedrijf b,
|
||
prs_kostenplaats k,
|
||
ins_tab_discipline d,
|
||
prs_kostensoort ks,
|
||
fin_factuur f,
|
||
(SELECT fin_factuur_key,
|
||
cnt_contract_key,
|
||
SUM (fin_factuurregel_totaal) bedrag,
|
||
fin_factuurregel_btw btw,
|
||
aaxx_get_verkoop_btw_code (fin_btwtabelwaarde_key) fin_btwtabelwaarde_code,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum
|
||
FROM aaxx_v_factuur_gegevens
|
||
WHERE fin_factuur_statuses_key = 7
|
||
GROUP BY fin_factuur_key,
|
||
cnt_contract_key,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum,
|
||
fin_factuurregel_btw,
|
||
fin_btwtabelwaarde_key,
|
||
fin_btwtabelwaarde_code,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_factuurregel_totaal) fg,
|
||
(SELECT cnt_contract_key,
|
||
alg_gebouw_code,
|
||
rema.fac_usrdata_omschr rema,
|
||
cp.cnt_contract_plaats_gewicht
|
||
/ ( SELECT DECODE (SUM (cp2.cnt_contract_plaats_gewicht),
|
||
0, 1,
|
||
SUM (cp2.cnt_contract_plaats_gewicht))
|
||
FROM cnt_contract_plaats cp2
|
||
WHERE cp2.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp2.cnt_contract_plaats_verwijder IS NULL
|
||
GROUP BY cp.cnt_contract_key)
|
||
gewicht
|
||
FROM cnt_contract_plaats cp,
|
||
alg_gebouw g,
|
||
(SELECT k.alg_onrgoed_key, ud.fac_usrdata_omschr
|
||
FROM alg_onrgoedkenmerk k, fac_usrdata ud
|
||
WHERE k.alg_kenmerk_key = 1060
|
||
AND fac.safe_to_number (alg_onrgoedkenmerk_waarde) =
|
||
fac_usrdata_key) rema
|
||
WHERE cp.cnt_contract_plaats_verwijder IS NULL
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
AND g.alg_gebouw_key = rema.alg_onrgoed_key(+)) cp
|
||
WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND fg.cnt_contract_key = c.cnt_contract_key
|
||
AND c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
AND fg.fin_factuur_key = f.fin_factuur_key
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key
|
||
AND aaxx_get_user = 'SITECH'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'AE%'
|
||
OR ks.prs_kostensoort_upper LIKE 'AS ONDH%'
|
||
OR ks.prs_kostensoort_upper LIKE 'ST ONDH%'
|
||
OR ks.prs_kostensoort_upper LIKE 'STB ONDH%'
|
||
);
|
||
ELSE
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_bedrijf_key, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, 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_n1
|
||
)
|
||
SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || 'C' || cnt_contract_nummer_intern || DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie), 1,30 ),
|
||
'contract',
|
||
c.cnt_contract_key,
|
||
v_logdate,
|
||
DECODE (aaxx_get_user,
|
||
'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757',
|
||
'CV EIG INST PL', '913757',
|
||
substr(aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr),1,6)),
|
||
'LB', exact_code,
|
||
'NMM', exact_code,
|
||
'DOW', k.prs_kostenplaats_nr,
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520',
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'NS', SUBSTR (prs_kostenplaats_nr, 1, 30),
|
||
'SABIC', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)
|
||
) prs_kostenplaats_nr,
|
||
DECODE (aaxx_get_user,
|
||
'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757',
|
||
'CV EIG INST PL', '913757',
|
||
substr(aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr),1,6)),
|
||
'LB', DECODE(g.alg_locatie_key,
|
||
1, '911928', -- Worldwide Headquarters
|
||
2, '911927', -- Maasvlakte
|
||
3, '911930', -- Botlek
|
||
4, '911929' -- Moerdijk
|
||
),
|
||
'NMM', DECODE(k.prs_kostenplaats_nr,
|
||
'0001', '913799', -- Heijmans
|
||
'0002', '913810', -- Vermaat
|
||
'0003', '913766', -- Defensie
|
||
'0004', '913776', -- Stichting Nationaal Militair Museum
|
||
'Onbekend'
|
||
),
|
||
'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520',
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'NS', SUBSTR (prs_kostenplaats_nr, 1, 30),
|
||
'SABIC', (SELECT distinct prs_leverancier_nr FROM prs_bedrijf b, prs_afdeling a
|
||
WHERE b.prs_bedrijf_key = a.prs_bedrijf_key
|
||
AND b.prs_bedrijf_verwijder IS NULL
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_afdeling_naam = aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'ZCN', '913815',
|
||
'ZCN', '913816'
|
||
) debiteur,
|
||
b.prs_bedrijf_key,
|
||
ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') ,
|
||
ks.prs_kostensoort_opmerking,
|
||
vk_prs_kostensoort_refcode,
|
||
DECODE (aaxx_get_user,
|
||
'DBS', DECODE(ks.prs_kostensoortgrp_key, 3, 'Projecten', 'Core Variable'),
|
||
'DOW', 'Service Charges',
|
||
'ZCN', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), 'SN', 'Servicekosten',
|
||
'KL', 'Klantvragen',
|
||
''),
|
||
'ZKHM', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), 'SN', 'Servicekosten',
|
||
'KL', 'Klantvragen',
|
||
''),
|
||
ksg.prs_kostensoortgrp_oms || DECODE (aaxx_get_user, 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ' ' || l.alg_locatie_code),
|
||
'LB', ' ' || exact_code,
|
||
'SABIC', ' ' || aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'NMM', DECODE(k.prs_kostenplaats_nr, '0001', ' Heijmans',
|
||
'0002', ' Vermaat',
|
||
'0003', ' Defensie',
|
||
'0004', ' NMM',
|
||
' Onbekend'))
|
||
) prs_kostensoortgrp_oms,
|
||
'C'
|
||
|| cnt_contract_nummer_intern
|
||
|| DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie)
|
||
omschrijving,
|
||
DECODE (aaxx_get_user,
|
||
'NMM', ROUND (fg.bedrag * 1.1,2),
|
||
fg.bedrag),
|
||
DECODE (aaxx_get_user, 'SABIC', DECODE (prs_kostensoort_upper, 'CV OP VERV', 2, 5),
|
||
fin_btwtabelwaarde_code) fin_btwtabelwaarde_code,
|
||
to_char(opdr_datum, 'YYYY'),
|
||
DECODE (aaxx_get_user, 'LB', l.alg_locatie_code,
|
||
COALESCE(exact_code, alg_gebouw_code)) exact_code,
|
||
SUBSTR (
|
||
DECODE (aaxx_get_user, 'AH', ksg.prs_kostensoortgrp_oms,
|
||
'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757',
|
||
'CV EIG INST PL', '913757',
|
||
aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr)),
|
||
'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8) ||
|
||
DECODE(substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,3),
|
||
'911', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,5), 'NC P ', 'PR', 'NC/CV'),
|
||
'912', 'CV/NC/PR',
|
||
'913', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,7), 'COR VAR', 'CV', 'NC/PR'),
|
||
'Onbekend') ||
|
||
substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ksg.prs_kostensoortgrp_oms || ' ' || l.alg_locatie_code,
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SABIC', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'ZCN', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'ZKHM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'')
|
||
,1,12) groepering,
|
||
DECODE (aaxx_get_user, 'LB', prs_kostensoort_oms || '1',
|
||
'DOW', 'A' || prs_kostensoort_oms, '') subregelvolgorde,
|
||
l.alg_locatie_key -- N1
|
||
FROM cnt_contract c,
|
||
prs_bedrijf b,
|
||
prs_kostenplaats k,
|
||
ins_tab_discipline d,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
fin_factuur f,
|
||
alg_locatie l,
|
||
(SELECT cnt_contract_key, alg_gebouw_code, exact_code, ag.alg_gebouw_key, ag.alg_locatie_key
|
||
FROM
|
||
(SELECT cnt_contract_key, MIN (cp.cnt_alg_plaats_key) cnt_alg_plaats_key
|
||
FROM cnt_contract_plaats cp
|
||
WHERE cp.cnt_contract_plaats_verwijder IS NULL
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
GROUP BY cnt_contract_key) cp,
|
||
alg_gebouw ag,
|
||
aaxx_v_exact_code_gebouw ae
|
||
WHERE cp.cnt_alg_plaats_key = ag.alg_gebouw_key
|
||
AND cp.cnt_alg_plaats_key = ae.alg_gebouw_key) g,
|
||
(SELECT fin_factuur_key,
|
||
cnt_contract_key,
|
||
SUM (fin_factuurregel_totaal) bedrag,
|
||
fin_factuurregel_btw btw,
|
||
aaxx_get_verkoop_btw_code (fin_btwtabelwaarde_key) fin_btwtabelwaarde_code,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum
|
||
FROM aaxx_v_factuur_gegevens
|
||
WHERE fin_factuur_statuses_key = 7
|
||
GROUP BY fin_factuur_key,
|
||
cnt_contract_key,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum,
|
||
fin_factuurregel_btw,
|
||
fin_btwtabelwaarde_key,
|
||
fin_btwtabelwaarde_code,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_factuurregel_totaal) fg
|
||
WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND fg.cnt_contract_key = c.cnt_contract_key
|
||
AND fg.fin_factuur_key = f.fin_factuur_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND c.cnt_contract_key = g.cnt_contract_key(+)
|
||
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
||
AND ( ( aaxx_get_user = 'AH'
|
||
AND ks.prs_kostensoort_upper LIKE 'CV %'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'LB'
|
||
AND ks.prs_kostensoort_upper LIKE 'NC%' -- LyondellBasell
|
||
AND ks.prs_kostensoort_upper <> 'NC DERDEN'
|
||
AND ks.prs_kostensoort_upper <> 'NC PROJ'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'DBS'
|
||
AND ks.prs_kostensoort_upper IN (
|
||
'CV AFVAL REST',
|
||
'CV OND',
|
||
'CV GEB NIET PLAN',
|
||
'CV INSTAL NIET PLAN',
|
||
'CV TERR VERHARD',
|
||
'CV TERR NIET PL',
|
||
'CV OND TERR',
|
||
'CV TERR OVR',
|
||
'CV CONS REST',
|
||
'CV CONS SERV',
|
||
'CV CONS OVR',
|
||
'CV CONS AUT',
|
||
'CV BEWAK',
|
||
'CV PREV CAL',
|
||
'CV BEWAK OVR',
|
||
'CV SCH',
|
||
'CV SCH GLAS',
|
||
'CV SCH OVR',
|
||
'CV VGM',
|
||
'CV GROEN',
|
||
'CV EIG BOUW PL',
|
||
'CV EIG INST PL',
|
||
'NC PROJ',
|
||
'CVE INSTAL NIET PLAN',
|
||
'CVE GEB NIET PLAN')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'DOW'
|
||
AND ( ks.prs_kostensoort_upper = 'COR VAR CATE COFFE'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR IND CLO'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR MAIL SERVICES'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR VENDING'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR MAIN HANDYMAN'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR GEN TEN SERV'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR HVAC'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR CLEA BUILDING SAN'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR CLEA VSR KMS')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'DSM'
|
||
AND SUBSTR(ks.prs_kostensoort_upper,1,3) IN (
|
||
'CV ',
|
||
'CVE')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'NMM'
|
||
AND ks.prs_kostensoort_upper LIKE 'CV%'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'SABIC'
|
||
AND c.cnt_contract_looptijd_van >= to_date ('20140101', 'yyyymmdd') -- Voor sabic geldt voor 2014 een ander mechanisme (AASA#28673)
|
||
AND ks.prs_kostensoort_upper LIKE 'CV %'
|
||
AND ks.prs_kostensoort_upper <> 'CV CHIP'
|
||
AND ( c.cnt_contract_looptijd_van >= to_date ('20150101', 'yyyymmdd') -- Voor sabic geldt voor 2015 een ander mechanisme (AASA#31618)
|
||
OR ( ks.prs_kostensoort_upper <> 'CV CONS REST'
|
||
AND ks.prs_kostensoort_upper <> 'CV CONS AUT'
|
||
AND ks.prs_kostensoort_upper <> 'CV SCH OVR'
|
||
AND ks.prs_kostensoort_upper <> 'CV DOC POST'
|
||
AND ks.prs_kostensoort_upper <> 'CV AFVAL REST'
|
||
)
|
||
)
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'VL'
|
||
AND c.cnt_contract_looptijd_van < to_date ('20160101', 'yyyymmdd') -- Voor VL geldt voor 2016 een ander mechanisme (AAVL#34856)
|
||
AND ks.prs_kostensoort_upper IN (
|
||
'CV OND',
|
||
'CV TERR OVR',
|
||
'CV BEWAK OVR',
|
||
'CV BOUW PLAN',
|
||
'CV CONS REST',
|
||
'CV CONS OVR',
|
||
'CV SCH',
|
||
'CV WP',
|
||
'CV GEB NIET PLAN',
|
||
'CV CONS SERV',
|
||
'CV SCH GLAS',
|
||
'CV KART',
|
||
'CV INSTAL PLAN',
|
||
'CV BEWAK',
|
||
'CV VERH',
|
||
'CV GROEN',
|
||
'CV INSTAL NIET PLAN',
|
||
'CV PREV CAL',
|
||
'CV DOC POST',
|
||
'CV BEW',
|
||
'CV TERR VERHARD',
|
||
'CV REC',
|
||
'CV DOC REP',
|
||
'CV VERV PERS',
|
||
'CV OND TERR',
|
||
'CV ACHT OND',
|
||
'NC ACHT OND',
|
||
'CV EIG INST PL',
|
||
'CV EIG BOUW PL',
|
||
'NC INV BOUW',
|
||
'NC INV WP',
|
||
'NC INV INST')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'ZCN'
|
||
AND ( aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'SN'
|
||
OR aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'KL')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'ZKHM'
|
||
AND ( aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'SN'
|
||
OR aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'KL')
|
||
)
|
||
);
|
||
END IF;
|
||
-- voeg bestelorders toe aan de verkoopbuffer
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_bedrijf_key, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, 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_n1
|
||
)
|
||
SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || bestel.bes_bestelopdr_id, 1,30 ),
|
||
'bestelopdr',
|
||
bestel.bes_bestelopdr_key,
|
||
v_logdate,
|
||
DECODE (aaxx_get_user,
|
||
'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DOW', '911791',
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520',
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SITECH', aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||
'LB', exact_code,
|
||
'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
SUBSTR (prs_kostenplaats_nr, 1, 30)),
|
||
DECODE (aaxx_get_user,
|
||
'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DOW', '911791',
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520',
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SITECH', aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||
'LB', DECODE(g.alg_locatie_key,
|
||
1, '911928', -- Worldwide Headquarters
|
||
2, '911927', -- Maasvlakte
|
||
3, '911930', -- Botlek
|
||
4, '911929' -- Moerdijk
|
||
),
|
||
'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'ZCN', '913815',
|
||
'ZKHM', '913816',
|
||
SUBSTR (prs_kostenplaats_nr, 1, 30)),
|
||
bestel.prs_bedrijf_key,
|
||
ks.prs_kostensoort_oms
|
||
|| DECODE (TO_CHAR (opdr_datum, 'YYYY'),
|
||
TO_CHAR (TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy')) - 1), ' VJ',
|
||
''),
|
||
ks.prs_kostensoort_opmerking,
|
||
vk_prs_kostensoort_refcode,
|
||
prs_kostensoortgrp_oms || DECODE (aaxx_get_user, 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ' ' || l.alg_locatie_code),
|
||
'LB', ' ' || exact_code,
|
||
'SABIC', ' ' || k.prs_kostenplaats_nr,
|
||
'ZCN', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), 'SN', 'Servicekosten',
|
||
'KL', 'Klantvragen',
|
||
''),
|
||
'ZKHM', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), 'SN', 'Servicekosten',
|
||
'KL', 'Klantvragen',
|
||
'')
|
||
),
|
||
bestel.bes_bestelopdr_id || ' ' || d.ins_discipline_omschrijving
|
||
omschrijving,
|
||
fin_factuurregel_totaal,
|
||
DECODE (aaxx_get_user, 'SITECH', 5,
|
||
fin_btwtabelwaarde_code) fin_btwtabelwaarde_code,
|
||
TO_CHAR (opdr_datum, 'YYYY'),
|
||
DECODE (aaxx_get_user,
|
||
'LB', alg_locatie_code,
|
||
COALESCE(exact_code, alg_gebouw_code)),
|
||
DECODE (aaxx_get_user,
|
||
'AH', ksg.prs_kostensoortgrp_oms,
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ksg.prs_kostensoortgrp_oms || ' ' || l.alg_locatie_code,
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'DOW', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,5), 'NC P ', 'NCP', 'NC/CV') ||
|
||
substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6),
|
||
'ZCN', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'ZKHM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'') groepering, -- c2
|
||
DECODE (aaxx_get_user, 'LB', prs_kostensoort_oms || '1', '') subregelvolgorde, -- c3
|
||
l.alg_locatie_key -- N1
|
||
FROM ( SELECT *
|
||
FROM aaxx_v_bestelgegevens
|
||
GROUP BY bes_bestelopdr_key,
|
||
bes_bestelopdr_id,
|
||
ins_discipline_key,
|
||
mld_adres_key_lev,
|
||
bes_bestelling_leverdatum,
|
||
prs_bedrijf_key) bestel,
|
||
mld_adres ad,
|
||
prs_kostenplaats k,
|
||
ins_tab_discipline d,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
fin_factuur f,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
aaxx_v_exact_code_gebouw exact,
|
||
( SELECT fin_factuur_key,
|
||
bes_bestelopdr_key,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum,
|
||
aaxx_get_verkoop_btw_code (fin_btwtabelwaarde_key) fin_btwtabelwaarde_code,
|
||
sum(fin_factuurregel_totaal) fin_factuurregel_totaal
|
||
FROM aaxx_v_factuur_gegevens
|
||
WHERE fin_factuur_statuses_key = 7
|
||
AND bes_bestelopdr_key IS NOT NULL
|
||
GROUP BY fin_factuur_key,
|
||
bes_bestelopdr_key,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
fin_factuur_boekmaand,
|
||
fin_btwtabelwaarde_key,
|
||
opdr_datum,
|
||
fin_factuur_datum,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_btwtabelwaarde_code) fg
|
||
WHERE fg.bes_bestelopdr_key = bestel.bes_bestelopdr_key
|
||
AND fg.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND bestel.ins_discipline_key = d.ins_discipline_key
|
||
AND bestel.mld_adres_key_lev = ad.mld_adres_key(+)
|
||
AND ad.mld_adres_gebouw_ruimte = g.alg_gebouw_code(+)
|
||
AND g.alg_gebouw_key = exact.alg_gebouw_key(+)
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND fg.fin_factuur_key = f.fin_factuur_key
|
||
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
||
AND ( ( aaxx_get_user = 'AH'
|
||
AND ks.prs_kostensoort_upper LIKE 'CV%'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'SITECH'
|
||
AND ks.prs_kostensoort_upper LIKE 'AE%' -- SITECH
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'DSM'
|
||
AND SUBSTR(ks.prs_kostensoort_upper,1,3) IN (
|
||
'CV ',
|
||
'CVE')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'LB'
|
||
AND ks.prs_kostensoort_upper LIKE 'NC%' -- LyondellBasell
|
||
AND ks.prs_kostensoort_upper <> 'NC DERDEN'
|
||
AND ks.prs_kostensoort_upper <> 'NC PROJ'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'VL'
|
||
AND ( ( bes_bestelling_leverdatum < to_date('20160101', 'yyyymmdd') -- Voor VL geldt voor 2016 een ander mechanisme (AAVL#34856)
|
||
AND ks.prs_kostensoort_upper LIKE 'CV %')
|
||
OR
|
||
( bes_bestelling_leverdatum >= to_date('20160101', 'yyyymmdd') -- Voor VL geldt voor 2016 een ander mechanisme (AAVL#34856)
|
||
AND ks.prs_kostensoort_upper LIKE 'CVE %')
|
||
)
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'ZCN'
|
||
AND ( aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'SN'
|
||
OR aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'KL')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'ZKHM'
|
||
AND ( aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'SN'
|
||
OR aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'KL')
|
||
)
|
||
);
|
||
|
||
-- bereken per klant de FEE over de omzet.
|
||
IF aaxx_get_user = 'DBS' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
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_kostensoort_refcode, 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_c4
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', prs_debiteur_naam, 'FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8110550', prs_kostensoortgrp_oms, 'FEE' , ROUND(fin_verkoopfactuur_bedrag * ma.marge, 2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X', ok.ordernummer
|
||
FROM fin_verkoopfactuur v, mld_opdr o,
|
||
(SELECT km.mld_melding_key, fac.safe_to_number (fac_usrdata_code) marge
|
||
FROM fac_usrdata ud,
|
||
mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE sk.mld_srtkenmerk_omschrijving = 'Marge'
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND fac.safe_to_number (mld_kenmerkmelding_waarde) = fac_usrdata_key) ma,
|
||
(SELECT km.mld_melding_key, mld_kenmerkmelding_waarde ordernummer
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE sk.mld_srtkenmerk_omschrijving = 'Ordernummer klant'
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key) ok
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND fin_verkoopfactuur_xmlnode = 'opdracht'
|
||
AND fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND o.mld_melding_key = ma.mld_melding_key
|
||
AND o.mld_melding_key = ok.mld_melding_key
|
||
AND (v.prs_kostensoort_oms = 'NC PROJ' OR v.prs_kostensoort_oms LIKE 'CVE%');
|
||
-- 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, prs_debiteur_naam || 'FEE', fin_verkoopfactuur_c2, ma.marge;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'DOW' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', prs_debiteur_naam, 'BASE FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8210511', prs_kostensoortgrp_oms, 'BASE FEE' , ROUND(SUM(fin_verkoopfactuur_bedrag) * 0.04, 2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
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;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'DSM' THEN
|
||
-- CVE
|
||
-- Fee: De fee over dit CVE gedeelte wordt apart doorbelast aan de klant en moet in een separate factuur worden gezet.
|
||
-- Deze factuur moet standaard naar debiteurencode 520.
|
||
-- Per factuur dient een fee berekend te worden van 0% of 3%.
|
||
-- Hierbij geldt als uitgangspunt dat voor alle MA contracten 0% geldt, en voor alle CP 3%.
|
||
-- Deze fee dient als totaalbedrag geboekt te worden op 1 regel per BTW percentage op de kostensoort FEE.
|
||
-- Extra verzoek hierover is om wel per locatie <20><>n regel te maken (dus Sittard, Urmond, Campus,etc).
|
||
-- Misschien dat we dit kunnen doen door artikelcode FEE te gebruiken, maar omschrijving Fee Sittard, Fee Urmond, etc?
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', '520', 'CVE FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8210511', prs_kostensoortgrp_oms, 'FEE ' || l.alg_locatie_code, SUM(ROUND(fin_verkoopfactuur_bedrag * 0.03, 2)), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', 'FEE' || '520', 'X'
|
||
FROM fin_verkoopfactuur v, prs_relatietype r, alg_locatie l, prs_bedrijf b
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND v.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_relatietype_key = r.prs_relatietype_key
|
||
AND r.prs_relatietype_omschrijving = 'Contracting party'
|
||
AND v.fin_verkoopfactuur_n1 = l.alg_locatie_key
|
||
AND prs_kostensoort_oms LIKE 'CVE%'
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, l.alg_locatie_code, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2;
|
||
|
||
-- CV
|
||
-- Fee: Er wordt een fee van 0% of 3% berekend over deze factuur.
|
||
-- Het percentage is afhankelijk van het contracttype van de leverancier.
|
||
-- Bij alle Managing Agent (MA) geldt 0%, voor alle Contracting Party (CP) geldt 3%.
|
||
-- Deze fee dient als totaalbedrag geboekt te worden op 1 regel per BTW percentage op de kostensoort FEE.
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', '520', 'CV FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8210511', prs_kostensoortgrp_oms, 'FEE' , SUM(ROUND(fin_verkoopfactuur_bedrag * 0.03, 2)), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v, prs_relatietype r, alg_locatie l, prs_bedrijf b
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND v.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_relatietype_key = r.prs_relatietype_key
|
||
AND r.prs_relatietype_omschrijving = 'Contracting party'
|
||
AND prs_kostensoort_oms LIKE 'CV %'
|
||
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;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'ESSENT' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'BASE FEE ' || to_char(u.uplift) || '%' || DECODE (INSTR(v.prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8210511', prs_kostensoortgrp_oms, 'BASE FEE ' || TO_CHAR(u.uplift) || '%' , ROUND(SUM(fin_verkoopfactuur_bedrag) * (u.uplift/100),2), 5, fin_verkoopfactuur_maand, 'X', 'X', u.uplift || 'X'
|
||
FROM fin_verkoopfactuur v, aaxx_imp_uplift u
|
||
WHERE REPLACE(v.prs_kostensoort_oms, ' VJ', '') = u.prs_kostensoort_oms
|
||
AND fin_verkoopfactuur_aanmaak = v_logdate
|
||
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, uplift, fin_verkoopfactuur_maand;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'LB' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'BASE FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305'), prs_kostensoortgrp_oms, 'FEE ' || prs_kostensoort_oms, ROUND(SUM(fin_verkoopfactuur_bedrag)*0.075,2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', 'X', prs_kostensoort_oms || '2'
|
||
FROM fin_verkoopfactuur
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
GROUP BY 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_btwtabelwaarde_code, fin_verkoopfactuur_maand, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305');
|
||
END IF;
|
||
|
||
-- NMM
|
||
-- Pas het bedrag van de bewaking aan. Opdrachten aan stdmelding 1121 moeten een bedrag krijgen van het aantal uren uit de opdracht maal het uurtarief dat
|
||
-- In een eigentabel opgeslagen wordt. De entries in de eigen tabel kunnen verschillende tarieven met een vervaldatum bevatten.
|
||
IF aaxx_get_user = 'NMM' THEN
|
||
UPDATE fin_verkoopfactuur vk
|
||
SET fin_verkoopfactuur_bedrag = (SELECT o.mld_opdr_uren * ud.fac_usrdata_prijs
|
||
FROM mld_opdr o, fac_usrdata ud
|
||
WHERE vk.fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND vk.fin_verkoopfactuur_xmlnode = 'opdracht'
|
||
AND ud.fac_usrtab_key = DECODE (TO_CHAR (COALESCE(mld_opdr_plandatum, mld_opdr_datumbegin), 'D'), 1, 141, 7, 141, 122) -- Uurtarief bewaking (141 tabel weekend, 122 tabel weekdagen)
|
||
AND ud.fac_usrdata_verwijder IS NULL
|
||
AND o.mld_opdr_datumbegin < COALESCE(ud.fac_usrdata_vervaldatum, SYSDATE)
|
||
AND NOT EXISTS (SELECT ud2.fac_usrdata_key
|
||
FROM fac_usrdata ud2
|
||
WHERE ud2.fac_usrtab_key = DECODE (TO_CHAR (COALESCE(mld_opdr_plandatum, mld_opdr_datumbegin), 'D'), 1, 141, 7, 141, 122) -- Uurtarief bewaking (141 tabel weekend, 122 tabel weekdagen)
|
||
AND o.mld_opdr_datumbegin < COALESCE(ud2.fac_usrdata_vervaldatum, SYSDATE)
|
||
AND ud2.fac_usrdata_verwijder IS NULL
|
||
AND COALESCE(ud2.fac_usrdata_vervaldatum, SYSDATE) <
|
||
COALESCE(ud.fac_usrdata_vervaldatum, SYSDATE)
|
||
)
|
||
)
|
||
WHERE EXISTS (SELECT mld_opdr_key
|
||
FROM mld_opdr o, mld_melding m
|
||
WHERE vk.fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND vk.fin_verkoopfactuur_xmlnode = 'opdracht'
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = 1121 -- Aanvraag beveiligingsdienst(en) tbv evenementen
|
||
)
|
||
AND fin_verkoopfactuur_aanmaak = v_logdate;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'RABO' THEN -- RABO#37283
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', prs_debiteur_naam, 'FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8210511', prs_kostensoortgrp_oms, 'FEE' , ROUND(SUM(fin_verkoopfactuur_bedrag) * fac_usrdata_prijs / 100, 2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_v_allonroerendgoed aog,
|
||
alg_gebouw g,
|
||
fac_usrdata ud
|
||
WHERE v.fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
|
||
AND aog.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_gebouw_code =
|
||
SUBSTR (fac_usrdata_code,
|
||
1,
|
||
INSTR (fac_usrdata_code || ' ', ' ') - 1)
|
||
AND fac_usrtab_key = 81
|
||
AND o.mld_opdr_datumbegin < COALESCE (fac_usrdata_vervaldatum, SYSDATE)
|
||
AND NOT EXISTS
|
||
(SELECT fac_usrdata_key
|
||
FROM fac_usrdata ud2
|
||
WHERE SUBSTR (ud2.fac_usrdata_code,
|
||
1,
|
||
INSTR (ud2.fac_usrdata_code || ' ', ' ') - 1) =
|
||
SUBSTR (ud.fac_usrdata_code,
|
||
1,
|
||
INSTR (ud.fac_usrdata_code || ' ', ' ') - 1)
|
||
AND ud2.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND ud2.fac_usrdata_key <> ud.fac_usrdata_key
|
||
AND COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE) <
|
||
COALESCE (ud.fac_usrdata_vervaldatum, SYSDATE)
|
||
AND o.mld_opdr_datumbegin <
|
||
COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE))
|
||
AND fin_verkoopfactuur_aanmaak = v_logdate
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoortgrp_oms, fac_usrdata_prijs, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, 'X';
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'VL' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, '8210513', prs_kostensoortgrp_oms, 'FEE', ROUND(fin_verkoopfactuur_bedrag*0.025,2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', 'X', 'X'
|
||
FROM fin_verkoopfactuur
|
||
WHERE prs_kostensoort_oms = 'NC ACHT OND'
|
||
AND fin_verkoopfactuur_aanmaak = v_logdate;
|
||
END IF;
|
||
|
||
FOR rec1 IN c_bes
|
||
LOOP
|
||
BEGIN
|
||
-- indien nog niet afgemeld, dan maar even afmelden.
|
||
IF rec1.bes_bestelopdr_status = 3 THEN -- in behandeling
|
||
UPDATE bes_bestelopdr
|
||
SET bes_bestelopdr_status = 4
|
||
WHERE bes_bestelopdr_key= rec1.bes_bestelopdr_key
|
||
AND bes_bestelopdr_status = 3;
|
||
END IF;
|
||
|
||
IF rec1.bes_bestelopdr_status = 5 -- bevestigd
|
||
OR rec1.bes_bestelopdr_status = 4 -- in bestelling
|
||
OR rec1.bes_bestelopdr_status = 3 THEN
|
||
|
||
UPDATE bes_bestelopdr_item B
|
||
SET bes_bestelopdr_item_aantalontv = COALESCE(bes_bestelopdr_item_aantal, 0),
|
||
bes_bestelopdr_item_ontvangen = SYSDATE
|
||
WHERE b.bes_bestelopdr_key = rec1.bes_bestelopdr_key;
|
||
|
||
UPDATE bes_bestelling_item bi
|
||
SET bes_bestelling_item_aantalontv = COALESCE(bes_bestelling_item_aantal, 0)
|
||
WHERE EXISTS (SELECT bes_bestelopdr_key
|
||
FROM bes_bestelopdr_item boi
|
||
WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND bes_bestelopdr_key = rec1.bes_bestelopdr_key);
|
||
|
||
SELECT distinct bes_bestelling_key
|
||
INTO v_bestelling_key
|
||
FROM bes_bestelling_item bi, bes_bestelopdr_item boi
|
||
WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND bes_bestelopdr_key = rec1.bes_bestelopdr_key;
|
||
|
||
bes.updatebestelopdrstatus(rec1.bes_bestelopdr_key, v_aanvrager);
|
||
bes.updatebestellingstatus(v_bestelling_key, v_aanvrager);
|
||
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
FOR rec1 IN c_opdr
|
||
LOOP
|
||
BEGIN
|
||
-- indien nog niet afgemeld, dan maar even afmelden.
|
||
IF rec1.mld_statusopdr_key <> 6 AND rec1.mld_statusopdr_key <> 7 AND rec1.mld_statusopdr_key <> 9 THEN
|
||
mld.setopdrachtstatus (rec1.mld_opdr_key, 6, v_aanvrager);
|
||
mld.setopdrachtstatus (rec1.mld_opdr_key, 9, v_aanvrager);
|
||
END IF;
|
||
|
||
UPDATE mld_opdr o
|
||
SET mld_opdr_kosten =
|
||
(SELECT SUM (fin_factuurregel_totaal)
|
||
FROM aaxx_v_aanwezigfactuur f
|
||
, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND f.fin_factuur_statuses_key >= 6)
|
||
WHERE o.mld_opdr_key = rec1.mld_opdr_key
|
||
AND rec1.mld_melding_status IN (4, 5, 7); -- anders faalt de trigger sowieso
|
||
|
||
-- update meldingstatus
|
||
mld.updatemeldingstatusAV (rec1.mld_melding_key, 0, v_aanvrager, 0);
|
||
-- zet de status naar verwerkt (user is facilitor)
|
||
mld.setopdrachtstatus (rec1.mld_opdr_key, 7, v_aanvrager);
|
||
END;
|
||
END LOOP;
|
||
|
||
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);
|
||
END;
|
||
END LOOP;
|
||
-- verwijder de enties uit de tijdelijke tabel. (AAEY#29465)
|
||
DELETE aaxx_exp_factuur;
|
||
END;
|
||
/
|
||
|
||
|
||
declare
|
||
begin
|
||
aaxx_export_verwerk_exact ('VERWERK_EXACT', NULL,NULL, NULL);
|
||
end;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE aaxx_export_verwerk_exact (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c_fact
|
||
IS
|
||
SELECT f.fin_factuur_key
|
||
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;
|
||
|
||
CURSOR c_opdr
|
||
IS
|
||
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
|
||
, 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
|
||
SELECT bo.*
|
||
FROM aaxx_exp_factuur 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;
|
||
|
||
CURSOR c_sync_kostensoort
|
||
IS
|
||
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,
|
||
aaxx_exp_factuur 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;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanvrager NUMBER;
|
||
v_bestelling_key NUMBER;
|
||
v_logdate DATE;
|
||
BEGIN
|
||
v_errormsg := 'Geen akties';
|
||
|
||
-- Facilitor user
|
||
IF aaxx_get_user = 'SITECH'
|
||
THEN
|
||
v_aanvrager := 6524;
|
||
ELSE
|
||
v_aanvrager := 4;
|
||
END IF;
|
||
|
||
-- AAIT#34097 aanpassen kostensoort bij factuur. Soms wordt de stdmelding aangepast terwijl
|
||
-- er al een factuur geboekt is. Door bij het verwerken van de factuur deze kostensoort nog
|
||
-- aan te passen wordt voorkomen dat hier verschillen gaan ontstaan.
|
||
-- AAIT#36442 AAIT niet meenemen in dit mechanisme omdat bij AAIT de kostensoort uit de opdracht
|
||
-- gehaald wordt.
|
||
IF aaxx_get_user <> 'IT'
|
||
THEN
|
||
v_errormsg := 'Aanpassen kostensoort';
|
||
FOR reck IN c_sync_kostensoort
|
||
LOOP
|
||
BEGIN
|
||
IF reck.fac_kostensoort_key <> reck.std_kostensoort_key
|
||
THEN
|
||
UPDATE fin_factuur
|
||
SET prs_kostensoort_key = reck.std_kostensoort_key
|
||
WHERE fin_factuur_key = reck.fin_factuur_key;
|
||
|
||
-- Pas de login aan
|
||
INSERT INTO fac_tracking (fac_tracking_refkey, fac_srtnotificatie_key, fac_tracking_oms)
|
||
SELECT reck.fin_factuur_key, fac_srtnotificatie_key, 'Kostensoort aangepast in factuur export'
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'FINUPD';
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
-- Verkoopinterface
|
||
|
||
v_logdate := SYSDATE;
|
||
-- voeg SA en ST opdrachten toe aan de fin_verkoopfacturen (vh. verkoopbuffer)
|
||
-- BTW tarief in verkoopbuffer is altijd 19 procent (AADS#18338)
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_bedrijf_key, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, 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_n1
|
||
)
|
||
SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr, 1,30 ),
|
||
'opdracht',
|
||
o.mld_opdr_key,
|
||
v_logdate,
|
||
DECODE (aaxx_get_user, 'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757',
|
||
'CV EIG INST PL', '913757',
|
||
substr(aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr),1,6)),
|
||
'DOW', k.prs_kostenplaats_nr,
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520',
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SITECH', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'ESSENT', '912001',
|
||
'LB', exact_code,
|
||
'NMM', 'MGB',
|
||
'SABIC', DECODE (to_char(opdr_datum, 'YYYY'), '2012', k.prs_kostenplaats_nr,
|
||
'2013', k.prs_kostenplaats_nr,
|
||
aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
SUBSTR (prs_kostenplaats_nr, 1, 30)) prs_kostenplaats_nr,
|
||
DECODE (aaxx_get_user, 'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757',
|
||
'CV EIG INST PL', '913757',
|
||
substr(aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr),1,6)),
|
||
'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520',
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SITECH', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'ESSENT', '912001',
|
||
'LB', DECODE(g.alg_locatie_key,
|
||
1, '911928', -- Worldwide Headquarters
|
||
2, '911927', -- Maasvlakte
|
||
3, '911930', -- Botlek
|
||
4, '911929' -- Moerdijk
|
||
),
|
||
'NMM', DECODE(k.prs_kostenplaats_nr,
|
||
'0001', '913799', -- Heijmans
|
||
'0002', '913810', -- Vermaat
|
||
'0003', '913766', -- Defensie
|
||
'0004', '913776', -- Stichting Nationaal Militair Museum
|
||
'Onbekend'
|
||
),
|
||
'RABO', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'SABIC', DECODE (to_char(opdr_datum, 'YYYY'), '2012', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'2013', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
(SELECT distinct prs_leverancier_nr FROM prs_bedrijf b, prs_afdeling a
|
||
WHERE b.prs_bedrijf_key = a.prs_bedrijf_key
|
||
AND b.prs_bedrijf_verwijder IS NULL
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_afdeling_naam = aaxx_get_top_dep_code(k.prs_kostenplaats_nr))),
|
||
'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'ZCN', '913815',
|
||
'ZKHM', '913816',
|
||
SUBSTR (prs_kostenplaats_nr, 1, 30)) debiteur,
|
||
b.prs_bedrijf_key,
|
||
ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') ,
|
||
ks.prs_kostensoort_opmerking,
|
||
vk_prs_kostensoort_refcode,
|
||
SUBSTR(DECODE (aaxx_get_user,
|
||
'AH', DECODE(SUBSTR(ks.prs_kostensoort_upper,1,2), 'CV', ksg.prs_kostensoortgrp_oms,
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key),
|
||
'DBS', DECODE(ks.prs_kostensoortgrp_key, 3, 'Projecten', 'Core Variable'),
|
||
'DOW', 'Service Charges',
|
||
'RABO', 'Servicekosten ' || aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'VL', 'Core Variabel',
|
||
'ZCN', DECODE(sd.ins_srtdiscipline_prefix, 'PR', 'Projecten',
|
||
DECODE(aaxx_get_top_dep_code(prs_kostenplaats_nr), 'SN', 'Servicekosten',
|
||
'KL', 'Klantvragen',
|
||
'')),
|
||
'ZKHM', DECODE(sd.ins_srtdiscipline_prefix, 'PR', 'Projecten',
|
||
DECODE(aaxx_get_top_dep_code(prs_kostenplaats_nr), 'SN', 'Servicekosten',
|
||
'KL', 'Klantvragen',
|
||
'')),
|
||
ksg.prs_kostensoortgrp_oms || DECODE (aaxx_get_user, 'LB', ' ' || Exact_code,
|
||
'SABIC', ' ' || DECODE (to_char(opdr_datum, 'YYYY'), '2012', k.prs_kostenplaats_nr,
|
||
'2013', k.prs_kostenplaats_nr,
|
||
aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ' ' || l.alg_locatie_code),
|
||
'NMM', DECODE(k.prs_kostenplaats_nr, '0001', ' Heijmans',
|
||
'0002', ' Vermaat',
|
||
'0003', ' Defensie',
|
||
'0004', ' NMM',
|
||
' Onbekend')
|
||
)
|
||
)
|
||
, 1, 60) prs_kostensoortgrp_oms,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| mld_opdr_bedrijfopdr_volgnr
|
||
|| ' '
|
||
|| d.ins_discipline_omschrijving
|
||
|| ' ('
|
||
|| (SELECT MAX(mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND ( ( aaxx_get_user <> 'DBS' AND k.mld_srtkenmerk_key = 143) -- opdrachtnummer
|
||
OR ( aaxx_get_user = 'DBS' AND k.mld_srtkenmerk_key = 55) -- projectnaam
|
||
)
|
||
AND km.mld_melding_key = m.mld_melding_key)
|
||
|| ')'
|
||
omschrijving,
|
||
ROUND (fg.bedrag
|
||
* COALESCE ( (SELECT u.uplift
|
||
FROM aaxx_imp_uplift u
|
||
WHERE u.prs_leverancier_nr = b.prs_leverancier_nr
|
||
AND UPPER(soort_order) = 'WO'
|
||
AND UPPER (u.prs_kostensoort_oms) =
|
||
ks.prs_kostensoort_upper
|
||
AND fg.fin_factuur_boekmaand =
|
||
u.jaar
|
||
|| '-'
|
||
|| LTRIM (TO_CHAR (u.maand, '00'))),
|
||
DECODE (aaxx_get_user, 'NMM', 1.1, 1)
|
||
),
|
||
2
|
||
),
|
||
DECODE (aaxx_get_user,
|
||
'SABIC', DECODE (ks.prs_kostensoort_oms, 'RAS-NC', 2, 'CV OP VERV', 2, 5), -- Kostensoorten RAS-NC en CV OP VERV zijn laag tarief
|
||
'SITECH', DECODE (fg.prs_kostensoort_refcode, '4321006', fin_btwtabelwaarde_code, 5), --AADS#21168
|
||
fin_btwtabelwaarde_code) fin_btwtabelwaarde_code,
|
||
to_char(opdr_datum, 'YYYY'),
|
||
DECODE (aaxx_get_user,
|
||
'LB', l.alg_locatie_code,
|
||
'NMM', 'MGB',
|
||
COALESCE(exact_code, alg_gebouw_code)), -- C1
|
||
SUBSTR (
|
||
DECODE (aaxx_get_user, 'AH', DECODE(SUBSTR(ks.prs_kostensoort_upper,1,2), 'CV', ksg.prs_kostensoortgrp_oms,
|
||
sd.ins_srtdiscipline_prefix || m.mld_melding_key),
|
||
'DBS', DECODE (ks.prs_kostensoort_upper, 'NC PROJ', '913757' || m.mld_melding_key,
|
||
'CV EIG BOUW PL', '913757',
|
||
'CV EIG INST PL', '913757',
|
||
'CVE GEB NIET PLAN', aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr) || m.mld_melding_key,
|
||
'CVE INSTAL NIET PLAN', aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr) || m.mld_melding_key,
|
||
aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr)),
|
||
'SITECH', (SELECT fac_usrdata_omschr
|
||
FROM alg_onrgoedkenmerk, fac_usrdata ud
|
||
WHERE alg_onrgoed_key = g.alg_gebouw_key
|
||
AND alg_kenmerk_key = 1060 -- rema contract
|
||
AND ud.fac_usrdata_key =
|
||
fac.safe_to_number (alg_onrgoedkenmerk_waarde)
|
||
AND ( ks.prs_kostensoort_upper LIKE 'ST ONDH%'
|
||
OR ks.prs_kostensoort_upper LIKE 'STB ONDH%')),
|
||
'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8) ||
|
||
DECODE(substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,3),
|
||
'911', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,5), 'NC P ', 'PR', 'NC/CV'),
|
||
'912', 'CV/NC/PR',
|
||
'913', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,7), 'COR VAR', 'CV', 'NC/PR'),
|
||
'Onbekend') ||
|
||
substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ksg.prs_kostensoortgrp_oms || ' ' || l.alg_locatie_code,
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'RABO', aaxx_get_dep_code(k.prs_kostenplaats_nr),
|
||
'SABIC', DECODE (to_char(opdr_datum, 'YYYY'), '2012', '',
|
||
'2013', '',
|
||
aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'ZCN', DECODE(sd.ins_srtdiscipline_prefix, 'PR', to_char(m.mld_melding_key),
|
||
aaxx_get_top_dep_code(prs_kostenplaats_nr)),
|
||
'ZKHM', DECODE(sd.ins_srtdiscipline_prefix, 'PR', to_char(m.mld_melding_key),
|
||
aaxx_get_top_dep_code(prs_kostenplaats_nr)),
|
||
'')
|
||
, 1, 12) groepering, -- C2
|
||
DECODE (aaxx_get_user, 'LB', prs_kostensoort_oms || '1',
|
||
'DOW', 'A' || prs_kostensoort_oms,
|
||
'ESSENT', (SELECT uplift
|
||
FROM aaxx_imp_uplift u
|
||
WHERE u.prs_kostensoort_oms = ks.prs_kostensoort_oms),
|
||
'') subregelvolgorde, -- C3
|
||
l.alg_locatie_key -- N1
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
prs_bedrijf b,
|
||
prs_kostenplaats k,
|
||
mld_melding m,
|
||
mld_stdmelding std,
|
||
ins_tab_discipline d,
|
||
ins_srtdiscipline sd,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
aaxx_exp_factuur f,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
alg_v_onroerendgoed og,
|
||
aaxx_v_exact_code_gebouw exact,
|
||
(SELECT fin_factuur_key,
|
||
mld_opdr_key,
|
||
SUM (fin_factuurregel_totaal) bedrag,
|
||
aaxx_get_verkoop_btw_code (fin_btwtabelwaarde_key) fin_btwtabelwaarde_code,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
prs_kostensoort_refcode,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum
|
||
FROM aaxx_v_factuur_gegevens
|
||
WHERE fin_factuur_statuses_key = 6
|
||
GROUP BY fin_factuur_key,
|
||
fin_btwtabelwaarde_key,
|
||
mld_opdr_key,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum,
|
||
fin_factuurregel_btw,
|
||
fin_btwtabelwaarde_code,
|
||
vk_prs_kostensoort_refcode,
|
||
prs_kostensoort_refcode,
|
||
fin_factuurregel_totaal) fg
|
||
WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND fg.mld_opdr_key = o.mld_opdr_key
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
||
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND og.alg_gebouw_key = exact.alg_gebouw_key(+)
|
||
AND fg.fin_factuur_key = f.fin_factuur_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_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
|
||
AND (( sd.ins_srtdiscipline_prefix = 'SA'
|
||
AND aaxx_get_user <> 'VL'
|
||
AND aaxx_get_user <> 'AH'
|
||
AND aaxx_get_user <> 'DSM'
|
||
AND aaxx_get_user <> 'SABIC'
|
||
AND aaxx_get_user <> 'ZCN'
|
||
AND aaxx_get_user <> 'ZKHM'
|
||
AND aaxx_get_user <> 'DOW'
|
||
AND aaxx_get_user <> 'LB'
|
||
AND aaxx_get_user <> 'NMM'
|
||
AND aaxx_get_user <> 'RABO'
|
||
AND aaxx_get_user <> 'DBS'
|
||
AND aaxx_get_user <> 'ESSENT')
|
||
OR ( aaxx_get_user = 'SITECH'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'ST ONDH%'
|
||
OR ks.prs_kostensoort_upper LIKE 'STB ONDH%')
|
||
AND ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
)
|
||
OR ( aaxx_get_user = 'AH'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CV%'
|
||
OR ks.prs_kostensoort_upper LIKE 'NC PROJ%')
|
||
)
|
||
OR ( aaxx_get_user = 'DBS'
|
||
AND ks.prs_kostensoort_upper IN (
|
||
'CV AFVAL REST',
|
||
'CV OND',
|
||
'CV GEB NIET PLAN',
|
||
'CV INSTAL NIET PLAN',
|
||
'CV TERR VERHARD',
|
||
'CV TERR NIET PL',
|
||
'CV OND TERR',
|
||
'CV TERR OVR',
|
||
'CV CONS REST',
|
||
'CV CONS SERV',
|
||
'CV CONS OVR',
|
||
'CV CONS AUT',
|
||
'CV BEWAK',
|
||
'CV PREV CAL',
|
||
'CV BEWAK OVR',
|
||
'CV SCH',
|
||
'CV SCH GLAS',
|
||
'CV SCH OVR',
|
||
'CV VGM',
|
||
'CV GROEN',
|
||
'CV EIG BOUW PL',
|
||
'CV EIG INST PL',
|
||
'NC PROJ',
|
||
'CVE INSTAL NIET PLAN',
|
||
'CVE GEB NIET PLAN')
|
||
)
|
||
OR ( aaxx_get_user = 'DOW'
|
||
AND ( ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
OR ot.mld_typeopdr_omschrijving = 'Projectorder')
|
||
AND ( ks.prs_kostensoort_upper LIKE 'NC %'
|
||
OR ks.prs_kostensoort_upper LIKE 'NC P %'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR MAIL SERVICES'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR VENDING'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR MAIN HANDYMAN'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR GEN TEN SERV'
|
||
)
|
||
)
|
||
OR ( aaxx_get_user = 'DSM'
|
||
AND SUBSTR(ks.prs_kostensoort_upper,1,3) IN (
|
||
'CV ',
|
||
'CVE')
|
||
)
|
||
OR ( aaxx_get_user = 'ESSENT'
|
||
AND ks.prs_kostensoort_upper LIKE 'CVE%'
|
||
AND ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
)
|
||
OR ( aaxx_get_user = 'LB'
|
||
AND ks.prs_kostensoort_upper LIKE 'NC%'
|
||
AND ks.prs_kostensoort_upper <> 'NC DERDEN'
|
||
AND ks.prs_kostensoort_upper <> 'NC PROJ'
|
||
)
|
||
OR ( aaxx_get_user = 'NMM'
|
||
AND ks.prs_kostensoort_upper LIKE 'CV%'
|
||
)
|
||
OR ( aaxx_get_user = 'RABO'
|
||
AND ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
)
|
||
OR ( aaxx_get_user = 'SABIC'
|
||
AND ( ( o.mld_opdr_datumbegin < to_date ('20140101', 'yyyymmdd') -- Voor sabic geldt in 2014 een ander mechanisme (AASA#28673)
|
||
AND ks.prs_kostensoort_upper LIKE '%NC'
|
||
AND ot.mld_typeopdr_omschrijving = 'Workorder'
|
||
)
|
||
OR ( o.mld_opdr_datumbegin > to_date ('20140101', 'yyyymmdd') -- Voor sabic geldt voor 2014 een ander mechanisme (AASA#28673)
|
||
AND ks.prs_kostensoort_upper LIKE 'CV %'
|
||
AND ks.prs_kostensoort_upper <> 'CV CHIP'
|
||
AND ( o.mld_opdr_datumbegin > to_date ('20150101', 'yyyymmdd') -- Voor sabic geldt voor 2015 een ander mechanisme (AASA#31618)
|
||
OR ( ks.prs_kostensoort_upper <> 'CV CONS REST'
|
||
AND ks.prs_kostensoort_upper <> 'CV CONS AUT'
|
||
AND ks.prs_kostensoort_upper <> 'CV SCH OVR'
|
||
AND ks.prs_kostensoort_upper <> 'CV DOC POST'
|
||
AND ks.prs_kostensoort_upper <> 'CV AFVAL REST'
|
||
)
|
||
)
|
||
AND ( ks.prs_kostensoort_upper <> 'CV EIG BOUW PL' OR ot.mld_typeopdr_omschrijving = 'Workorder')
|
||
)
|
||
)
|
||
)
|
||
OR ( aaxx_get_user = 'VL'
|
||
AND ( ( o.mld_opdr_datumbegin < to_date ('20160101', 'yyyymmdd') -- Voor VL geldt in 2016 een ander mechanisme (AAVL#34856)
|
||
AND ks.prs_kostensoort_upper IN (
|
||
'CV OND',
|
||
'CV TERR OVR',
|
||
'CV BEWAK OVR',
|
||
'CV BOUW PLAN',
|
||
'CV CONS REST',
|
||
'CV CONS OVR',
|
||
'CV SCH',
|
||
'CV WP',
|
||
'CV GEB NIET PLAN',
|
||
'CV CONS SERV',
|
||
'CV SCH GLAS',
|
||
'CV KART',
|
||
'CV INSTAL PLAN',
|
||
'CV BEWAK',
|
||
'CV VERH',
|
||
'CV GROEN',
|
||
'CV INSTAL NIET PLAN',
|
||
'CV PREV CAL',
|
||
'CV DOC POST',
|
||
'CV BEW',
|
||
'CV TERR VERHARD',
|
||
'CV REC',
|
||
'CV DOC REP',
|
||
'CV VERV PERS',
|
||
'CV OND TERR',
|
||
'CV ACHT OND',
|
||
'CV EIG INST PL',
|
||
'CV EIG BOUW PL',
|
||
'NC ACHT OND',
|
||
'NC INV BOUW',
|
||
'NC INV WP',
|
||
'NC INV INST')
|
||
)
|
||
OR
|
||
( o.mld_opdr_datumbegin >= to_date ('20160101', 'yyyymmdd') -- Voor VL geldt in 2016 een ander mechanisme (AAVL#34856)
|
||
AND ( ks.prs_kostensoort_upper LIKE 'CVE %' OR ks.prs_kostensoort_upper LIKE 'NC %')
|
||
)
|
||
)
|
||
)
|
||
OR ( aaxx_get_user = 'ZCN'
|
||
AND ( sd.ins_srtdiscipline_prefix = 'PR'
|
||
OR aaxx_get_top_dep_code(prs_kostenplaats_nr) = 'SN'
|
||
OR aaxx_get_top_dep_code(prs_kostenplaats_nr) = 'KL'
|
||
)
|
||
)
|
||
OR ( aaxx_get_user = 'ZKHM'
|
||
AND ( sd.ins_srtdiscipline_prefix = 'PR'
|
||
OR aaxx_get_top_dep_code(prs_kostenplaats_nr) = 'SN'
|
||
OR aaxx_get_top_dep_code(prs_kostenplaats_nr) = 'KL'
|
||
)
|
||
)
|
||
);
|
||
|
||
|
||
-- voeg contract orders toe aan de verkoopbuffer
|
||
-- bij SITECH wordt gegroepeerd op REMA contract
|
||
IF aaxx_get_user = 'SITECH' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
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_kostensoort_refcode, 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_n1
|
||
)
|
||
SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || 'C' || cnt_contract_nummer_intern || DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie), 1,30 ),
|
||
'contract',
|
||
c.cnt_contract_key,
|
||
v_logdate,
|
||
aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||
aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||
ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') ,
|
||
ks.prs_kostensoort_opmerking,
|
||
vk_prs_kostensoort_refcode,
|
||
(SELECT prs_kostensoortgrp_oms
|
||
FROM prs_kostensoortgrp ksg
|
||
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key),
|
||
'C'
|
||
|| cnt_contract_nummer_intern
|
||
|| DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie)
|
||
omschrijving,
|
||
COALESCE((SELECT ROUND (COALESCE(cp.gewicht,1) * fg.bedrag * u.uplift, 2)
|
||
FROM aaxx_imp_uplift u
|
||
WHERE u.prs_leverancier_nr = b.prs_leverancier_nr
|
||
AND UPPER (soort_order) = 'CO'
|
||
AND UPPER (u.prs_kostensoort_oms) = ks.prs_kostensoort_upper
|
||
AND fg.fin_factuur_boekmaand =
|
||
TO_CHAR (u.jaar) || '-' || LTRIM (TO_CHAR (u.maand, '00'))), ROUND ((cp.gewicht * fg.bedrag), 2)),
|
||
5, -- AADS#21168 , AADS#26856
|
||
to_char(opdr_datum, 'YYYY'),
|
||
cp.alg_gebouw_code,
|
||
cp.rema,
|
||
'',
|
||
''
|
||
FROM cnt_contract c,
|
||
prs_bedrijf b,
|
||
prs_kostenplaats k,
|
||
ins_tab_discipline d,
|
||
prs_kostensoort ks,
|
||
aaxx_exp_factuur f,
|
||
(SELECT fin_factuur_key,
|
||
cnt_contract_key,
|
||
SUM (fin_factuurregel_totaal) bedrag,
|
||
fin_factuurregel_btw btw,
|
||
aaxx_get_verkoop_btw_code (fin_btwtabelwaarde_key) fin_btwtabelwaarde_code,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum
|
||
FROM aaxx_v_factuur_gegevens
|
||
WHERE fin_factuur_statuses_key = 6
|
||
GROUP BY fin_factuur_key,
|
||
cnt_contract_key,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum,
|
||
fin_factuurregel_btw,
|
||
fin_btwtabelwaarde_key,
|
||
fin_btwtabelwaarde_code,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_factuurregel_totaal) fg,
|
||
(SELECT cnt_contract_key,
|
||
alg_gebouw_code,
|
||
rema.fac_usrdata_omschr rema,
|
||
cp.cnt_contract_plaats_gewicht
|
||
/ ( SELECT DECODE (SUM (cp2.cnt_contract_plaats_gewicht),
|
||
0, 1,
|
||
SUM (cp2.cnt_contract_plaats_gewicht))
|
||
FROM cnt_contract_plaats cp2
|
||
WHERE cp2.cnt_contract_key = cp.cnt_contract_key
|
||
AND cp2.cnt_contract_plaats_verwijder IS NULL
|
||
GROUP BY cp.cnt_contract_key)
|
||
gewicht
|
||
FROM cnt_contract_plaats cp,
|
||
alg_gebouw g,
|
||
(SELECT k.alg_onrgoed_key, ud.fac_usrdata_omschr
|
||
FROM alg_onrgoedkenmerk k, fac_usrdata ud
|
||
WHERE k.alg_kenmerk_key = 1060
|
||
AND fac.safe_to_number (alg_onrgoedkenmerk_waarde) =
|
||
fac_usrdata_key) rema
|
||
WHERE cp.cnt_contract_plaats_verwijder IS NULL
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
AND g.alg_gebouw_key = rema.alg_onrgoed_key(+)) cp
|
||
WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND fg.cnt_contract_key = c.cnt_contract_key
|
||
AND c.cnt_contract_key = cp.cnt_contract_key(+)
|
||
AND fg.fin_factuur_key = f.fin_factuur_key
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key
|
||
AND aaxx_get_user = 'SITECH'
|
||
AND ( ks.prs_kostensoort_upper LIKE 'AE%'
|
||
OR ks.prs_kostensoort_upper LIKE 'AS ONDH%'
|
||
OR ks.prs_kostensoort_upper LIKE 'ST ONDH%'
|
||
OR ks.prs_kostensoort_upper LIKE 'STB ONDH%'
|
||
);
|
||
ELSE
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_bedrijf_key, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, 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_n1
|
||
)
|
||
SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || 'C' || cnt_contract_nummer_intern || DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie), 1,30 ),
|
||
'contract',
|
||
c.cnt_contract_key,
|
||
v_logdate,
|
||
DECODE (aaxx_get_user,
|
||
'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757',
|
||
'CV EIG INST PL', '913757',
|
||
substr(aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr),1,6)),
|
||
'LB', exact_code,
|
||
'NMM', exact_code,
|
||
'DOW', k.prs_kostenplaats_nr,
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520',
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'NS', SUBSTR (prs_kostenplaats_nr, 1, 30),
|
||
'SABIC', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)
|
||
) prs_kostenplaats_nr,
|
||
DECODE (aaxx_get_user,
|
||
'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757',
|
||
'CV EIG INST PL', '913757',
|
||
substr(aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr),1,6)),
|
||
'LB', DECODE(g.alg_locatie_key,
|
||
1, '911928', -- Worldwide Headquarters
|
||
2, '911927', -- Maasvlakte
|
||
3, '911930', -- Botlek
|
||
4, '911929' -- Moerdijk
|
||
),
|
||
'NMM', DECODE(k.prs_kostenplaats_nr,
|
||
'0001', '913799', -- Heijmans
|
||
'0002', '913810', -- Vermaat
|
||
'0003', '913766', -- Defensie
|
||
'0004', '913776', -- Stichting Nationaal Militair Museum
|
||
'Onbekend'
|
||
),
|
||
'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520',
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'NS', SUBSTR (prs_kostenplaats_nr, 1, 30),
|
||
'SABIC', (SELECT distinct prs_leverancier_nr FROM prs_bedrijf b, prs_afdeling a
|
||
WHERE b.prs_bedrijf_key = a.prs_bedrijf_key
|
||
AND b.prs_bedrijf_verwijder IS NULL
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_afdeling_naam = aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'ZCN', '913815',
|
||
'ZCN', '913816'
|
||
) debiteur,
|
||
b.prs_bedrijf_key,
|
||
ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') ,
|
||
ks.prs_kostensoort_opmerking,
|
||
vk_prs_kostensoort_refcode,
|
||
DECODE (aaxx_get_user,
|
||
'DBS', DECODE(ks.prs_kostensoortgrp_key, 3, 'Projecten', 'Core Variable'),
|
||
'DOW', 'Service Charges',
|
||
'ZCN', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), 'SN', 'Servicekosten',
|
||
'KL', 'Klantvragen',
|
||
''),
|
||
'ZKHM', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), 'SN', 'Servicekosten',
|
||
'KL', 'Klantvragen',
|
||
''),
|
||
ksg.prs_kostensoortgrp_oms || DECODE (aaxx_get_user, 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ' ' || l.alg_locatie_code),
|
||
'LB', ' ' || exact_code,
|
||
'SABIC', ' ' || aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'NMM', DECODE(k.prs_kostenplaats_nr, '0001', ' Heijmans',
|
||
'0002', ' Vermaat',
|
||
'0003', ' Defensie',
|
||
'0004', ' NMM',
|
||
' Onbekend'))
|
||
) prs_kostensoortgrp_oms,
|
||
'C'
|
||
|| cnt_contract_nummer_intern
|
||
|| DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie)
|
||
omschrijving,
|
||
DECODE (aaxx_get_user,
|
||
'NMM', ROUND (fg.bedrag * 1.1,2),
|
||
fg.bedrag),
|
||
DECODE (aaxx_get_user, 'SABIC', DECODE (prs_kostensoort_upper, 'CV OP VERV', 2, 5),
|
||
fin_btwtabelwaarde_code) fin_btwtabelwaarde_code,
|
||
to_char(opdr_datum, 'YYYY'),
|
||
DECODE (aaxx_get_user, 'LB', l.alg_locatie_code,
|
||
COALESCE(exact_code, alg_gebouw_code)) exact_code,
|
||
SUBSTR (
|
||
DECODE (aaxx_get_user, 'AH', ksg.prs_kostensoortgrp_oms,
|
||
'DBS', DECODE (ks.prs_kostensoort_upper, 'CV EIG BOUW PL', '913757',
|
||
'CV EIG INST PL', '913757',
|
||
aaxx_get_lev2_dep_code(k.prs_kostenplaats_nr)),
|
||
'DOW', substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8) ||
|
||
DECODE(substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,3),
|
||
'911', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,5), 'NC P ', 'PR', 'NC/CV'),
|
||
'912', 'CV/NC/PR',
|
||
'913', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,7), 'COR VAR', 'CV', 'NC/PR'),
|
||
'Onbekend') ||
|
||
substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,8),
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ksg.prs_kostensoortgrp_oms || ' ' || l.alg_locatie_code,
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SABIC', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'ZCN', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'ZKHM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'')
|
||
,1,12) groepering,
|
||
DECODE (aaxx_get_user, 'LB', prs_kostensoort_oms || '1',
|
||
'DOW', 'A' || prs_kostensoort_oms, '') subregelvolgorde,
|
||
l.alg_locatie_key -- N1
|
||
FROM cnt_contract c,
|
||
prs_bedrijf b,
|
||
prs_kostenplaats k,
|
||
ins_tab_discipline d,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
aaxx_exp_factuur f,
|
||
alg_locatie l,
|
||
(SELECT cnt_contract_key, alg_gebouw_code, exact_code, ag.alg_gebouw_key, ag.alg_locatie_key
|
||
FROM
|
||
(SELECT cnt_contract_key, MIN (cp.cnt_alg_plaats_key) cnt_alg_plaats_key
|
||
FROM cnt_contract_plaats cp
|
||
WHERE cp.cnt_contract_plaats_verwijder IS NULL
|
||
AND cp.cnt_alg_plaats_code = 'G'
|
||
GROUP BY cnt_contract_key) cp,
|
||
alg_gebouw ag,
|
||
aaxx_v_exact_code_gebouw ae
|
||
WHERE cp.cnt_alg_plaats_key = ag.alg_gebouw_key
|
||
AND cp.cnt_alg_plaats_key = ae.alg_gebouw_key) g,
|
||
(SELECT fin_factuur_key,
|
||
cnt_contract_key,
|
||
SUM (fin_factuurregel_totaal) bedrag,
|
||
fin_factuurregel_btw btw,
|
||
aaxx_get_verkoop_btw_code (fin_btwtabelwaarde_key) fin_btwtabelwaarde_code,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum
|
||
FROM aaxx_v_factuur_gegevens
|
||
WHERE fin_factuur_statuses_key = 6
|
||
GROUP BY fin_factuur_key,
|
||
cnt_contract_key,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum,
|
||
fin_factuurregel_btw,
|
||
fin_btwtabelwaarde_key,
|
||
fin_btwtabelwaarde_code,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_factuurregel_totaal) fg
|
||
WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND fg.cnt_contract_key = c.cnt_contract_key
|
||
AND fg.fin_factuur_key = f.fin_factuur_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.ins_discipline_key = d.ins_discipline_key
|
||
AND c.cnt_contract_key = g.cnt_contract_key(+)
|
||
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
||
AND ( ( aaxx_get_user = 'AH'
|
||
AND ks.prs_kostensoort_upper LIKE 'CV %'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'LB'
|
||
AND ks.prs_kostensoort_upper LIKE 'NC%' -- LyondellBasell
|
||
AND ks.prs_kostensoort_upper <> 'NC DERDEN'
|
||
AND ks.prs_kostensoort_upper <> 'NC PROJ'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'DBS'
|
||
AND ks.prs_kostensoort_upper IN (
|
||
'CV AFVAL REST',
|
||
'CV OND',
|
||
'CV GEB NIET PLAN',
|
||
'CV INSTAL NIET PLAN',
|
||
'CV TERR VERHARD',
|
||
'CV TERR NIET PL',
|
||
'CV OND TERR',
|
||
'CV TERR OVR',
|
||
'CV CONS REST',
|
||
'CV CONS SERV',
|
||
'CV CONS OVR',
|
||
'CV CONS AUT',
|
||
'CV BEWAK',
|
||
'CV PREV CAL',
|
||
'CV BEWAK OVR',
|
||
'CV SCH',
|
||
'CV SCH GLAS',
|
||
'CV SCH OVR',
|
||
'CV VGM',
|
||
'CV GROEN',
|
||
'CV EIG BOUW PL',
|
||
'CV EIG INST PL',
|
||
'NC PROJ',
|
||
'CVE INSTAL NIET PLAN',
|
||
'CVE GEB NIET PLAN')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'DOW'
|
||
AND ( ks.prs_kostensoort_upper = 'COR VAR CATE COFFE'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR IND CLO'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR MAIL SERVICES'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR VENDING'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR MAIN HANDYMAN'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR GEN TEN SERV'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR HVAC'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR CLEA BUILDING SAN'
|
||
OR ks.prs_kostensoort_upper = 'COR VAR CLEA VSR KMS')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'DSM'
|
||
AND SUBSTR(ks.prs_kostensoort_upper,1,3) IN (
|
||
'CV ',
|
||
'CVE')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'NMM'
|
||
AND ks.prs_kostensoort_upper LIKE 'CV%'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'SABIC'
|
||
AND c.cnt_contract_looptijd_van >= to_date ('20140101', 'yyyymmdd') -- Voor sabic geldt voor 2014 een ander mechanisme (AASA#28673)
|
||
AND ks.prs_kostensoort_upper LIKE 'CV %'
|
||
AND ks.prs_kostensoort_upper <> 'CV CHIP'
|
||
AND ( c.cnt_contract_looptijd_van >= to_date ('20150101', 'yyyymmdd') -- Voor sabic geldt voor 2015 een ander mechanisme (AASA#31618)
|
||
OR ( ks.prs_kostensoort_upper <> 'CV CONS REST'
|
||
AND ks.prs_kostensoort_upper <> 'CV CONS AUT'
|
||
AND ks.prs_kostensoort_upper <> 'CV SCH OVR'
|
||
AND ks.prs_kostensoort_upper <> 'CV DOC POST'
|
||
AND ks.prs_kostensoort_upper <> 'CV AFVAL REST'
|
||
)
|
||
)
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'VL'
|
||
AND c.cnt_contract_looptijd_van < to_date ('20160101', 'yyyymmdd') -- Voor VL geldt voor 2016 een ander mechanisme (AAVL#34856)
|
||
AND ks.prs_kostensoort_upper IN (
|
||
'CV OND',
|
||
'CV TERR OVR',
|
||
'CV BEWAK OVR',
|
||
'CV BOUW PLAN',
|
||
'CV CONS REST',
|
||
'CV CONS OVR',
|
||
'CV SCH',
|
||
'CV WP',
|
||
'CV GEB NIET PLAN',
|
||
'CV CONS SERV',
|
||
'CV SCH GLAS',
|
||
'CV KART',
|
||
'CV INSTAL PLAN',
|
||
'CV BEWAK',
|
||
'CV VERH',
|
||
'CV GROEN',
|
||
'CV INSTAL NIET PLAN',
|
||
'CV PREV CAL',
|
||
'CV DOC POST',
|
||
'CV BEW',
|
||
'CV TERR VERHARD',
|
||
'CV REC',
|
||
'CV DOC REP',
|
||
'CV VERV PERS',
|
||
'CV OND TERR',
|
||
'CV ACHT OND',
|
||
'NC ACHT OND',
|
||
'CV EIG INST PL',
|
||
'CV EIG BOUW PL',
|
||
'NC INV BOUW',
|
||
'NC INV WP',
|
||
'NC INV INST')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'ZCN'
|
||
AND ( aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'SN'
|
||
OR aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'KL')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'ZKHM'
|
||
AND ( aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'SN'
|
||
OR aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'KL')
|
||
)
|
||
);
|
||
END IF;
|
||
-- voeg bestelorders toe aan de verkoopbuffer
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, prs_bedrijf_key, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, 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_n1
|
||
)
|
||
SELECT substr(to_char(v_logdate, 'dd-mm-yyyy') || ' - ' || bestel.bes_bestelopdr_id, 1,30 ),
|
||
'bestelopdr',
|
||
bestel.bes_bestelopdr_key,
|
||
v_logdate,
|
||
DECODE (aaxx_get_user,
|
||
'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DOW', '911791',
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520',
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SITECH', aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||
'LB', exact_code,
|
||
'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
SUBSTR (prs_kostenplaats_nr, 1, 30)),
|
||
DECODE (aaxx_get_user,
|
||
'AH', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'DOW', '911791',
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', '520',
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'SITECH', aaxx_get_dep_code (k.prs_kostenplaats_nr),
|
||
'LB', DECODE(g.alg_locatie_key,
|
||
1, '911928', -- Worldwide Headquarters
|
||
2, '911927', -- Maasvlakte
|
||
3, '911930', -- Botlek
|
||
4, '911929' -- Moerdijk
|
||
),
|
||
'VL', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'ZCN', '913815',
|
||
'ZKHM', '913816',
|
||
SUBSTR (prs_kostenplaats_nr, 1, 30)),
|
||
bestel.prs_bedrijf_key,
|
||
ks.prs_kostensoort_oms
|
||
|| DECODE (TO_CHAR (opdr_datum, 'YYYY'),
|
||
TO_CHAR (TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy')) - 1), ' VJ',
|
||
''),
|
||
ks.prs_kostensoort_opmerking,
|
||
vk_prs_kostensoort_refcode,
|
||
prs_kostensoortgrp_oms || DECODE (aaxx_get_user, 'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ' ' || l.alg_locatie_code),
|
||
'LB', ' ' || exact_code,
|
||
'SABIC', ' ' || k.prs_kostenplaats_nr,
|
||
'ZCN', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), 'SN', 'Servicekosten',
|
||
'KL', 'Klantvragen',
|
||
''),
|
||
'ZKHM', DECODE(aaxx_get_top_dep_code(k.prs_kostenplaats_nr), 'SN', 'Servicekosten',
|
||
'KL', 'Klantvragen',
|
||
'')
|
||
),
|
||
bestel.bes_bestelopdr_id || ' ' || d.ins_discipline_omschrijving
|
||
omschrijving,
|
||
fin_factuurregel_totaal,
|
||
DECODE (aaxx_get_user, 'SITECH', 5,
|
||
fin_btwtabelwaarde_code) fin_btwtabelwaarde_code,
|
||
TO_CHAR (opdr_datum, 'YYYY'),
|
||
DECODE (aaxx_get_user,
|
||
'LB', alg_locatie_code,
|
||
COALESCE(exact_code, alg_gebouw_code)),
|
||
DECODE (aaxx_get_user,
|
||
'AH', ksg.prs_kostensoortgrp_oms,
|
||
'DSM', DECODE (SUBSTR(ks.prs_kostensoort_upper,1,3) , 'CV ', ksg.prs_kostensoortgrp_oms || ' ' || l.alg_locatie_code,
|
||
'CVE', aaxx_get_top_dep_code(k.prs_kostenplaats_nr)),
|
||
'DOW', DECODE(SUBSTR(ks.prs_kostensoort_upper, 1,5), 'NC P ', 'NCP', 'NC/CV') ||
|
||
substr(aaxx_get_top_dep_code(k.prs_kostenplaats_nr),1,6),
|
||
'ZCN', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'ZKHM', aaxx_get_top_dep_code(k.prs_kostenplaats_nr),
|
||
'') groepering, -- c2
|
||
DECODE (aaxx_get_user, 'LB', prs_kostensoort_oms || '1', '') subregelvolgorde, -- c3
|
||
l.alg_locatie_key -- N1
|
||
FROM ( SELECT *
|
||
FROM aaxx_v_bestelgegevens
|
||
GROUP BY bes_bestelopdr_key,
|
||
bes_bestelopdr_id,
|
||
ins_discipline_key,
|
||
mld_adres_key_lev,
|
||
bes_bestelling_leverdatum,
|
||
prs_bedrijf_key) bestel,
|
||
mld_adres ad,
|
||
prs_kostenplaats k,
|
||
ins_tab_discipline d,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
aaxx_exp_factuur f,
|
||
alg_gebouw g,
|
||
alg_locatie l,
|
||
aaxx_v_exact_code_gebouw exact,
|
||
( SELECT fin_factuur_key,
|
||
bes_bestelopdr_key,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_factuur_boekmaand,
|
||
opdr_datum,
|
||
fin_factuur_datum,
|
||
aaxx_get_verkoop_btw_code (fin_btwtabelwaarde_key) fin_btwtabelwaarde_code,
|
||
sum(fin_factuurregel_totaal) fin_factuurregel_totaal
|
||
FROM aaxx_v_factuur_gegevens
|
||
WHERE fin_factuur_statuses_key = 6
|
||
AND bes_bestelopdr_key IS NOT NULL
|
||
GROUP BY fin_factuur_key,
|
||
bes_bestelopdr_key,
|
||
prs_kostenplaats_key,
|
||
prs_kostensoort_key,
|
||
fin_factuur_boekmaand,
|
||
fin_btwtabelwaarde_key,
|
||
opdr_datum,
|
||
fin_factuur_datum,
|
||
vk_prs_kostensoort_refcode,
|
||
fin_btwtabelwaarde_code) fg
|
||
WHERE fg.bes_bestelopdr_key = bestel.bes_bestelopdr_key
|
||
AND fg.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND bestel.ins_discipline_key = d.ins_discipline_key
|
||
AND bestel.mld_adres_key_lev = ad.mld_adres_key(+)
|
||
AND ad.mld_adres_gebouw_ruimte = g.alg_gebouw_code(+)
|
||
AND g.alg_gebouw_key = exact.alg_gebouw_key(+)
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND fg.fin_factuur_key = f.fin_factuur_key
|
||
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
||
AND ( ( aaxx_get_user = 'AH'
|
||
AND ks.prs_kostensoort_upper LIKE 'CV%'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'SITECH'
|
||
AND ks.prs_kostensoort_upper LIKE 'AE%' -- SITECH
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'DSM'
|
||
AND SUBSTR(ks.prs_kostensoort_upper,1,3) IN (
|
||
'CV ',
|
||
'CVE')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'LB'
|
||
AND ks.prs_kostensoort_upper LIKE 'NC%' -- LyondellBasell
|
||
AND ks.prs_kostensoort_upper <> 'NC DERDEN'
|
||
AND ks.prs_kostensoort_upper <> 'NC PROJ'
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'VL'
|
||
AND ( ( bes_bestelling_leverdatum < to_date('20160101', 'yyyymmdd') -- Voor VL geldt voor 2016 een ander mechanisme (AAVL#34856)
|
||
AND ks.prs_kostensoort_upper LIKE 'CV %')
|
||
OR
|
||
( bes_bestelling_leverdatum >= to_date('20160101', 'yyyymmdd') -- Voor VL geldt voor 2016 een ander mechanisme (AAVL#34856)
|
||
AND ks.prs_kostensoort_upper LIKE 'CVE %')
|
||
)
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'ZCN'
|
||
AND ( aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'SN'
|
||
OR aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'KL')
|
||
)
|
||
OR
|
||
( aaxx_get_user = 'ZKHM'
|
||
AND ( aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'SN'
|
||
OR aaxx_get_top_dep_code(k.prs_kostenplaats_nr) = 'KL')
|
||
)
|
||
);
|
||
|
||
-- bereken per klant de FEE over de omzet.
|
||
IF aaxx_get_user = 'DBS' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
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_kostensoort_refcode, 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_c4
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', prs_debiteur_naam, 'FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8110550', prs_kostensoortgrp_oms, 'FEE' , ROUND(fin_verkoopfactuur_bedrag * ma.marge, 2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X', ok.ordernummer
|
||
FROM fin_verkoopfactuur v, mld_opdr o,
|
||
(SELECT km.mld_melding_key, fac.safe_to_number (fac_usrdata_code) marge
|
||
FROM fac_usrdata ud,
|
||
mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE sk.mld_srtkenmerk_omschrijving = 'Marge'
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND fac.safe_to_number (mld_kenmerkmelding_waarde) = fac_usrdata_key) ma,
|
||
(SELECT km.mld_melding_key, mld_kenmerkmelding_waarde ordernummer
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk
|
||
WHERE sk.mld_srtkenmerk_omschrijving = 'Ordernummer klant'
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND k.mld_kenmerk_key = km.mld_kenmerk_key) ok
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND fin_verkoopfactuur_xmlnode = 'opdracht'
|
||
AND fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND o.mld_melding_key = ma.mld_melding_key
|
||
AND o.mld_melding_key = ok.mld_melding_key
|
||
AND (v.prs_kostensoort_oms = 'NC PROJ' OR v.prs_kostensoort_oms LIKE 'CVE%');
|
||
-- 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, prs_debiteur_naam || 'FEE', fin_verkoopfactuur_c2, ma.marge;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'DOW' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', prs_debiteur_naam, 'BASE FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8210511', prs_kostensoortgrp_oms, 'BASE FEE' , ROUND(SUM(fin_verkoopfactuur_bedrag) * 0.04, 2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
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;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'DSM' THEN
|
||
-- CVE
|
||
-- Fee: De fee over dit CVE gedeelte wordt apart doorbelast aan de klant en moet in een separate factuur worden gezet.
|
||
-- Deze factuur moet standaard naar debiteurencode 520.
|
||
-- Per factuur dient een fee berekend te worden van 0% of 3%.
|
||
-- Hierbij geldt als uitgangspunt dat voor alle MA contracten 0% geldt, en voor alle CP 3%.
|
||
-- Deze fee dient als totaalbedrag geboekt te worden op 1 regel per BTW percentage op de kostensoort FEE.
|
||
-- Extra verzoek hierover is om wel per locatie <20><>n regel te maken (dus Sittard, Urmond, Campus,etc).
|
||
-- Misschien dat we dit kunnen doen door artikelcode FEE te gebruiken, maar omschrijving Fee Sittard, Fee Urmond, etc?
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', '520', 'CVE FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8210511', prs_kostensoortgrp_oms, 'FEE ' || l.alg_locatie_code, SUM(ROUND(fin_verkoopfactuur_bedrag * 0.03, 2)), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', 'FEE' || '520', 'X'
|
||
FROM fin_verkoopfactuur v, prs_relatietype r, alg_locatie l, prs_bedrijf b
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND v.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_relatietype_key = r.prs_relatietype_key
|
||
AND r.prs_relatietype_omschrijving = 'Contracting party'
|
||
AND v.fin_verkoopfactuur_n1 = l.alg_locatie_key
|
||
AND prs_kostensoort_oms LIKE 'CVE%'
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, l.alg_locatie_code, prs_debiteur_naam, DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoortgrp_oms, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2;
|
||
|
||
-- CV
|
||
-- Fee: Er wordt een fee van 0% of 3% berekend over deze factuur.
|
||
-- Het percentage is afhankelijk van het contracttype van de leverancier.
|
||
-- Bij alle Managing Agent (MA) geldt 0%, voor alle Contracting Party (CP) geldt 3%.
|
||
-- Deze fee dient als totaalbedrag geboekt te worden op 1 regel per BTW percentage op de kostensoort FEE.
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', '520', 'CV FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8210511', prs_kostensoortgrp_oms, 'FEE' , SUM(ROUND(fin_verkoopfactuur_bedrag * 0.03, 2)), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v, prs_relatietype r, alg_locatie l, prs_bedrijf b
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
AND v.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND b.prs_relatietype_key = r.prs_relatietype_key
|
||
AND r.prs_relatietype_omschrijving = 'Contracting party'
|
||
AND prs_kostensoort_oms LIKE 'CV %'
|
||
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;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'ESSENT' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'BASE FEE ' || to_char(u.uplift) || '%' || DECODE (INSTR(v.prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8210511', prs_kostensoortgrp_oms, 'BASE FEE ' || TO_CHAR(u.uplift) || '%' , ROUND(SUM(fin_verkoopfactuur_bedrag) * (u.uplift/100),2), 5, fin_verkoopfactuur_maand, 'X', 'X', u.uplift || 'X'
|
||
FROM fin_verkoopfactuur v, aaxx_imp_uplift u
|
||
WHERE REPLACE(v.prs_kostensoort_oms, ' VJ', '') = u.prs_kostensoort_oms
|
||
AND fin_verkoopfactuur_aanmaak = v_logdate
|
||
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, uplift, fin_verkoopfactuur_maand;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'LB' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'BASE FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305'), prs_kostensoortgrp_oms, 'FEE ' || prs_kostensoort_oms, ROUND(SUM(fin_verkoopfactuur_bedrag)*0.075,2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', 'X', prs_kostensoort_oms || '2'
|
||
FROM fin_verkoopfactuur
|
||
WHERE fin_verkoopfactuur_aanmaak = v_logdate
|
||
GROUP BY 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_btwtabelwaarde_code, fin_verkoopfactuur_maand, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305');
|
||
END IF;
|
||
|
||
-- NMM
|
||
-- Pas het bedrag van de bewaking aan. Opdrachten aan stdmelding 1121 moeten een bedrag krijgen van het aantal uren uit de opdracht maal het uurtarief dat
|
||
-- In een eigentabel opgeslagen wordt. De entries in de eigen tabel kunnen verschillende tarieven met een vervaldatum bevatten.
|
||
IF aaxx_get_user = 'NMM' THEN
|
||
UPDATE fin_verkoopfactuur vk
|
||
SET fin_verkoopfactuur_bedrag = (SELECT o.mld_opdr_uren * ud.fac_usrdata_prijs
|
||
FROM mld_opdr o, fac_usrdata ud
|
||
WHERE vk.fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND vk.fin_verkoopfactuur_xmlnode = 'opdracht'
|
||
AND ud.fac_usrtab_key = DECODE (TO_CHAR (COALESCE(mld_opdr_plandatum, mld_opdr_datumbegin), 'D'), 1, 141, 7, 141, 122) -- Uurtarief bewaking (141 tabel weekend, 122 tabel weekdagen)
|
||
AND ud.fac_usrdata_verwijder IS NULL
|
||
AND o.mld_opdr_datumbegin < COALESCE(ud.fac_usrdata_vervaldatum, SYSDATE)
|
||
AND NOT EXISTS (SELECT ud2.fac_usrdata_key
|
||
FROM fac_usrdata ud2
|
||
WHERE ud2.fac_usrtab_key = DECODE (TO_CHAR (COALESCE(mld_opdr_plandatum, mld_opdr_datumbegin), 'D'), 1, 141, 7, 141, 122) -- Uurtarief bewaking (141 tabel weekend, 122 tabel weekdagen)
|
||
AND o.mld_opdr_datumbegin < COALESCE(ud2.fac_usrdata_vervaldatum, SYSDATE)
|
||
AND ud2.fac_usrdata_verwijder IS NULL
|
||
AND COALESCE(ud2.fac_usrdata_vervaldatum, SYSDATE) <
|
||
COALESCE(ud.fac_usrdata_vervaldatum, SYSDATE)
|
||
)
|
||
)
|
||
WHERE EXISTS (SELECT mld_opdr_key
|
||
FROM mld_opdr o, mld_melding m
|
||
WHERE vk.fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND vk.fin_verkoopfactuur_xmlnode = 'opdracht'
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = 1121 -- Aanvraag beveiligingsdienst(en) tbv evenementen
|
||
)
|
||
AND fin_verkoopfactuur_aanmaak = v_logdate;
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'RABO' THEN -- RABO#37283
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, '', prs_debiteur_naam, 'FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), '', '8210511', prs_kostensoortgrp_oms, 'FEE' , ROUND(SUM(fin_verkoopfactuur_bedrag) * fac_usrdata_prijs / 100, 2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', fin_verkoopfactuur_c2, 'X'
|
||
FROM fin_verkoopfactuur v,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_v_allonroerendgoed aog,
|
||
alg_gebouw g,
|
||
fac_usrdata ud
|
||
WHERE v.fin_verkoopfactuur_refkey = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
|
||
AND aog.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_gebouw_code =
|
||
SUBSTR (fac_usrdata_code,
|
||
1,
|
||
INSTR (fac_usrdata_code || ' ', ' ') - 1)
|
||
AND fac_usrtab_key = 81
|
||
AND o.mld_opdr_datumbegin < COALESCE (fac_usrdata_vervaldatum, SYSDATE)
|
||
AND NOT EXISTS
|
||
(SELECT fac_usrdata_key
|
||
FROM fac_usrdata ud2
|
||
WHERE SUBSTR (ud2.fac_usrdata_code,
|
||
1,
|
||
INSTR (ud2.fac_usrdata_code || ' ', ' ') - 1) =
|
||
SUBSTR (ud.fac_usrdata_code,
|
||
1,
|
||
INSTR (ud.fac_usrdata_code || ' ', ' ') - 1)
|
||
AND ud2.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND ud2.fac_usrdata_key <> ud.fac_usrdata_key
|
||
AND COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE) <
|
||
COALESCE (ud.fac_usrdata_vervaldatum, SYSDATE)
|
||
AND o.mld_opdr_datumbegin <
|
||
COALESCE (ud2.fac_usrdata_vervaldatum, SYSDATE))
|
||
AND fin_verkoopfactuur_aanmaak = v_logdate
|
||
GROUP BY fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_debiteur_naam, prs_kostensoort_oms, prs_kostensoortgrp_oms, fac_usrdata_prijs, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c2, 'X';
|
||
END IF;
|
||
|
||
IF aaxx_get_user = 'VL' THEN
|
||
INSERT INTO fin_verkoopfactuur
|
||
(
|
||
-- module, export_datum, prs_kostenplaats_nr, debiteur, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw, groepering, subregelvolgorde
|
||
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_kostensoort_refcode, prs_kostensoortgrp_oms, fin_verkoopfactuur_omschr, fin_verkoopfactuur_bedrag, fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, fin_verkoopfactuur_c1, fin_verkoopfactuur_c2, fin_verkoopfactuur_c3
|
||
)
|
||
SELECT fin_verkoopfactuur_id, fin_verkoopfactuur_xmlnode, fin_verkoopfactuur_refkey, fin_verkoopfactuur_aanmaak, prs_kostenplaats_nr, prs_debiteur_naam, 'FEE' || DECODE (INSTR(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, '8210513', prs_kostensoortgrp_oms, 'FEE', ROUND(fin_verkoopfactuur_bedrag*0.025,2), fin_btwtabelwaarde_code, fin_verkoopfactuur_maand, 'X', 'X', 'X'
|
||
FROM fin_verkoopfactuur
|
||
WHERE prs_kostensoort_oms = 'NC ACHT OND'
|
||
AND fin_verkoopfactuur_aanmaak = v_logdate;
|
||
END IF;
|
||
|
||
FOR rec1 IN c_bes
|
||
LOOP
|
||
BEGIN
|
||
-- indien nog niet afgemeld, dan maar even afmelden.
|
||
IF rec1.bes_bestelopdr_status = 3 THEN -- in behandeling
|
||
UPDATE bes_bestelopdr
|
||
SET bes_bestelopdr_status = 4
|
||
WHERE bes_bestelopdr_key= rec1.bes_bestelopdr_key
|
||
AND bes_bestelopdr_status = 3;
|
||
END IF;
|
||
|
||
IF rec1.bes_bestelopdr_status = 5 -- bevestigd
|
||
OR rec1.bes_bestelopdr_status = 4 -- in bestelling
|
||
OR rec1.bes_bestelopdr_status = 3 THEN
|
||
|
||
UPDATE bes_bestelopdr_item B
|
||
SET bes_bestelopdr_item_aantalontv = COALESCE(bes_bestelopdr_item_aantal, 0),
|
||
bes_bestelopdr_item_ontvangen = SYSDATE
|
||
WHERE b.bes_bestelopdr_key = rec1.bes_bestelopdr_key;
|
||
|
||
UPDATE bes_bestelling_item bi
|
||
SET bes_bestelling_item_aantalontv = COALESCE(bes_bestelling_item_aantal, 0)
|
||
WHERE EXISTS (SELECT bes_bestelopdr_key
|
||
FROM bes_bestelopdr_item boi
|
||
WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND bes_bestelopdr_key = rec1.bes_bestelopdr_key);
|
||
|
||
SELECT distinct bes_bestelling_key
|
||
INTO v_bestelling_key
|
||
FROM bes_bestelling_item bi, bes_bestelopdr_item boi
|
||
WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||
AND bes_bestelopdr_key = rec1.bes_bestelopdr_key;
|
||
|
||
bes.updatebestelopdrstatus(rec1.bes_bestelopdr_key, v_aanvrager);
|
||
bes.updatebestellingstatus(v_bestelling_key, v_aanvrager);
|
||
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
FOR rec1 IN c_opdr
|
||
LOOP
|
||
BEGIN
|
||
-- indien nog niet afgemeld, dan maar even afmelden.
|
||
IF rec1.mld_statusopdr_key <> 6 AND rec1.mld_statusopdr_key <> 7 AND rec1.mld_statusopdr_key <> 9 THEN
|
||
mld.setopdrachtstatus (rec1.mld_opdr_key, 6, v_aanvrager);
|
||
mld.setopdrachtstatus (rec1.mld_opdr_key, 9, v_aanvrager);
|
||
END IF;
|
||
|
||
UPDATE mld_opdr o
|
||
SET mld_opdr_kosten =
|
||
(SELECT SUM (fin_factuurregel_totaal)
|
||
FROM aaxx_v_aanwezigfactuur f
|
||
, fin_factuurregel fr
|
||
WHERE f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND f.fin_factuur_statuses_key >= 6)
|
||
WHERE o.mld_opdr_key = rec1.mld_opdr_key
|
||
AND rec1.mld_melding_status IN (4, 5, 7); -- anders faalt de trigger sowieso
|
||
|
||
-- update meldingstatus
|
||
mld.updatemeldingstatusAV (rec1.mld_melding_key, 0, v_aanvrager, 0);
|
||
-- zet de status naar verwerkt (user is facilitor)
|
||
mld.setopdrachtstatus (rec1.mld_opdr_key, 7, v_aanvrager);
|
||
END;
|
||
END LOOP;
|
||
|
||
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);
|
||
END;
|
||
END LOOP;
|
||
-- verwijder de enties uit de tijdelijke tabel. (AAEY#29465)
|
||
DELETE aaxx_exp_factuur;
|
||
END;
|
||
/
|
||
|
||
COMMIT;
|
||
|
||
BEGIN adm.systrackscriptId('$Id$'); END;
|
||
/
|
||
|
||
commit;
|
||
|
||
SPOOL OFF
|