3984 lines
186 KiB
MySQL
3984 lines
186 KiB
MySQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific db-configuration for VENR.
|
||
DEFINE thisfile = 'VENR.SQL'
|
||
DEFINE dbuser = '^VENR'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SPOOL &fcltlogfile
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
CREATE OR REPLACE VIEW venr_v_rap_import_log
|
||
(
|
||
fclt_f_applicatie,
|
||
datum,
|
||
fclt_f_status,
|
||
omschrijving,
|
||
hint
|
||
)
|
||
AS
|
||
SELECT COALESCE (fac_import_app_code, imp_log_applicatie),
|
||
TO_CHAR (imp_log_datum, 'dd-mm-yyyy hh24:mi'),
|
||
imp_log_status,
|
||
imp_log_omschrijving,
|
||
imp_log_hint
|
||
FROM imp_log il1, fac_import fi1, fac_import_app fia1
|
||
WHERE il1.fac_import_key = fi1.fac_import_key(+)
|
||
AND fi1.fac_import_app_key = fia1.fac_import_app_key(+)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM imp_log il2, fac_import fi2
|
||
WHERE il2.fac_import_key = fi2.fac_import_key
|
||
AND fi2.fac_import_app_key = fi1.fac_import_app_key
|
||
AND il2.fac_import_key > il1.fac_import_key);
|
||
|
||
-- Export naar UNIT4
|
||
/* Formatted on 3-9-2014 15:52:25 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW venr_v_u4_supplier
|
||
(
|
||
prs_bedrijf_key,
|
||
supplierid,
|
||
suppliergroupid,
|
||
name,
|
||
shortname,
|
||
street1,
|
||
street2,
|
||
zipcode,
|
||
city,
|
||
person,
|
||
telephone,
|
||
fax,
|
||
email,
|
||
vatnumber,
|
||
paymentconditionid,
|
||
cocregistration,
|
||
combineinvoices -- Afkorting van 'combineinvoicesforelectronicbanking'
|
||
)
|
||
AS
|
||
SELECT x.prs_bedrijf_key,
|
||
7000000 + x.prs_bedrijf_key,
|
||
0,
|
||
x.prs_bedrijf_naam,
|
||
SUBSTR (x.prs_bedrijf_naam, 1, 8),
|
||
naamstraat.prs_kenmerklink_waarde,
|
||
x.prs_bedrijf_post_adres,
|
||
x.prs_bedrijf_post_postcode,
|
||
x.prs_bedrijf_post_plaats,
|
||
x.prs_bedrijf_contact_persoon,
|
||
x.prs_bedrijf_telefoon,
|
||
x.prs_bedrijf_fax,
|
||
x.prs_bedrijf_email,
|
||
NULL, --TODO btwnr.prs_kenmerklink_waarde,
|
||
(SELECT fac_usrdata_code
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrdata_key =
|
||
fac.safe_to_number (bc.prs_kenmerklink_waarde)),
|
||
kvknr.prs_kenmerklink_waarde,
|
||
'true'
|
||
FROM (SELECT *
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE COALESCE (prs_bedrijf_intern, 0) = 0) x
|
||
LEFT JOIN prs_v_aanwezigkenmerklink btwnr
|
||
ON btwnr.prs_kenmerk_key = 1021 --BTW-nummer
|
||
AND btwnr.prs_link_key = x.prs_bedrijf_key
|
||
LEFT JOIN prs_v_aanwezigkenmerklink bc
|
||
ON bc.prs_kenmerk_key = 1023 --Betalingsconditie
|
||
AND bc.prs_link_key = x.prs_bedrijf_key
|
||
LEFT JOIN prs_v_aanwezigkenmerklink kvknr
|
||
ON kvknr.prs_kenmerk_key = 1024 --KvK-nummer
|
||
AND kvknr.prs_link_key = x.prs_bedrijf_key
|
||
LEFT JOIN prs_v_aanwezigkenmerklink naamstraat
|
||
ON naamstraat.prs_kenmerk_key = 1080 --NaamStraat
|
||
AND naamstraat.prs_link_key = x.prs_bedrijf_key;
|
||
|
||
CREATE OR REPLACE VIEW venr_v_u4_customer
|
||
(
|
||
prs_bedrijf_key,
|
||
customerid,
|
||
customergroupid,
|
||
name,
|
||
shortname,
|
||
street1,
|
||
street2,
|
||
zipcode,
|
||
city,
|
||
person,
|
||
telephone,
|
||
fax,
|
||
email,
|
||
vatnumber,
|
||
paymentconditionid,
|
||
chargevattypeid,
|
||
cocregistration,
|
||
creditsqueezeid
|
||
)
|
||
AS
|
||
SELECT x.prs_bedrijf_key,
|
||
7000000 + x.prs_bedrijf_key,
|
||
0,
|
||
x.prs_bedrijf_naam,
|
||
SUBSTR (x.prs_bedrijf_naam, 1, 8),
|
||
naamstraat.prs_kenmerklink_waarde,
|
||
x.prs_bedrijf_post_adres,
|
||
x.prs_bedrijf_post_postcode,
|
||
x.prs_bedrijf_post_plaats,
|
||
x.prs_bedrijf_contact_persoon,
|
||
x.prs_bedrijf_telefoon,
|
||
x.prs_bedrijf_fax,
|
||
x.prs_bedrijf_email,
|
||
NULL, --TODO btwnr.prs_kenmerklink_waarde,
|
||
(SELECT fac_usrdata_code
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrdata_key =
|
||
fac.safe_to_number (bc.prs_kenmerklink_waarde)),
|
||
DECODE (
|
||
btwtype.prs_kenmerklink_waarde,
|
||
NULL,
|
||
1, -- Niet gevuld in FACILITOR, dan default 'Ja'?
|
||
(SELECT fac_usrdata_code
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrdata_key =
|
||
fac.safe_to_number (btwtype.prs_kenmerklink_waarde))),
|
||
kvknr.prs_kenmerklink_waarde,
|
||
0
|
||
FROM (SELECT *
|
||
FROM prs_v_aanwezigbedrijf
|
||
WHERE COALESCE (prs_bedrijf_intern, 0) = 1) x
|
||
LEFT JOIN prs_v_aanwezigkenmerklink btwnr
|
||
ON btwnr.prs_kenmerk_key = 1021 --BTW-nummer
|
||
AND btwnr.prs_link_key = x.prs_bedrijf_key
|
||
LEFT JOIN prs_v_aanwezigkenmerklink btwtype
|
||
ON btwtype.prs_kenmerk_key = 1022 --BTW-type
|
||
AND btwtype.prs_link_key = x.prs_bedrijf_key
|
||
LEFT JOIN prs_v_aanwezigkenmerklink bc
|
||
ON bc.prs_kenmerk_key = 1023 --Betalingsconditie
|
||
AND bc.prs_link_key = x.prs_bedrijf_key
|
||
LEFT JOIN prs_v_aanwezigkenmerklink kvknr
|
||
ON kvknr.prs_kenmerk_key = 1024 --KvK-nummer
|
||
AND kvknr.prs_link_key = x.prs_bedrijf_key
|
||
LEFT JOIN prs_v_aanwezigkenmerklink naamstraat
|
||
ON naamstraat.prs_kenmerk_key = 1080 --NaamStraat
|
||
AND naamstraat.prs_link_key = x.prs_bedrijf_key;
|
||
|
||
/* MAG WEG -> U4 doet hier niets mee!
|
||
CREATE OR REPLACE VIEW venr_v_u4_address
|
||
(
|
||
supcusid, -- SupplierId of CustomerId; mappen naar OrganizationId!
|
||
--customergroupid,
|
||
--name,
|
||
addresstype,
|
||
street1,
|
||
postcode,
|
||
city,
|
||
--countryid,
|
||
telephone,
|
||
--mobilephone,
|
||
fax,
|
||
email
|
||
)
|
||
AS
|
||
SELECT COALESCE (u4nr.prs_kenmerklink_waarde,
|
||
'F' || TO_CHAR (b.prs_bedrijf_key)),
|
||
--0,
|
||
--prs_bedrijf_naam,
|
||
0, -- Bezoekadres in FACILITOR => Afleveradres in UNIT4
|
||
b.prs_bedrijf_bezoek_adres,
|
||
b.prs_bedrijf_bezoek_postcode,
|
||
b.prs_bedrijf_bezoek_plaats,
|
||
--prs_bedrijf_bezoek_land,
|
||
b.prs_bedrijf_telefoon,
|
||
b.prs_bedrijf_fax,
|
||
b.prs_bedrijf_email
|
||
FROM prs_v_aanwezigbedrijf b,
|
||
(SELECT *
|
||
FROM prs_v_aanwezigkenmerklink
|
||
WHERE prs_kenmerklink_verwijder IS NULL
|
||
AND prs_kenmerk_key = 1040) u4nr
|
||
WHERE b.prs_bedrijf_bezoek_adres IS NOT NULL
|
||
AND b.prs_bedrijf_bezoek_plaats IS NOT NULL
|
||
AND b.prs_bedrijf_key = u4nr.prs_link_key(+)
|
||
UNION ALL
|
||
SELECT COALESCE (u4nr.prs_kenmerklink_waarde,
|
||
'F' || TO_CHAR (b.prs_bedrijf_key)),
|
||
--0,
|
||
--prs_bedrijf_naam,
|
||
1, -- Postadres in FACILITOR => Factuuradres in UNIT4
|
||
b.prs_bedrijf_post_adres,
|
||
b.prs_bedrijf_post_postcode,
|
||
b.prs_bedrijf_post_plaats,
|
||
--prs_bedrijf_post_land,
|
||
b.prs_bedrijf_telefoon,
|
||
b.prs_bedrijf_fax,
|
||
b.prs_bedrijf_email
|
||
FROM prs_v_aanwezigbedrijf b,
|
||
(SELECT *
|
||
FROM prs_v_aanwezigkenmerklink
|
||
WHERE prs_kenmerklink_verwijder IS NULL
|
||
AND prs_kenmerk_key = 1040) u4nr
|
||
WHERE b.prs_bedrijf_post_adres IS NOT NULL
|
||
AND b.prs_bedrijf_post_plaats IS NOT NULL;
|
||
*/
|
||
|
||
/* Formatted on 26-8-2014 9:24:42 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW venr_v_u4_bankaccount
|
||
(
|
||
prs_bedrijf_key,
|
||
supcusid, -- SupplierId of CustomerId; mappen naar OrganizationId!
|
||
accountholdername,
|
||
banktypeid,
|
||
accountnumber,
|
||
bic,
|
||
iban,
|
||
preferred
|
||
)
|
||
AS
|
||
SELECT x.prs_bedrijf_key,
|
||
7000000 + x.prs_bedrijf_key,
|
||
x.prs_bedrijf_naam,
|
||
'B', -- Altijd 'B' (afgestemd)
|
||
banknr.prs_kenmerklink_waarde,
|
||
--bic.prs_kenmerklink_waarde,
|
||
DECODE (SUBSTR (UPPER (iban.prs_kenmerklink_waarde), 5, 4),
|
||
'ABNA', 'ABNANL2A',
|
||
'AEGO', 'AEGONL2U',
|
||
'ASNB', 'ASNBNL21',
|
||
'ASRB', 'ASRBNL2R',
|
||
'BNGH', 'BNGHNL2G',
|
||
'BNPA', 'BNPANL2A',
|
||
'BOFS', 'BOFSNL21002',
|
||
'DEUT', 'DEUTNL2N',
|
||
'FRBK', 'FRBKNL2L',
|
||
'FVLB', 'FVLBNL22',
|
||
'GILL', 'GILLNL2A',
|
||
'INGB', 'INGBNL2A',
|
||
'KASA', 'KASANL2A',
|
||
'KNAB', 'KNABNL2H',
|
||
'RABO', 'RABONL2U',
|
||
'RBOS', 'RBOSNL2A',
|
||
'RBRB', 'RBRBNL21',
|
||
'SNSB', 'SNSBNL2A',
|
||
'STAL', 'STALNL2G',
|
||
'TRIO', 'TRIONL2U',
|
||
bic.prs_kenmerklink_waarde),
|
||
UPPER (iban.prs_kenmerklink_waarde),
|
||
'true'
|
||
FROM (SELECT * FROM prs_v_aanwezigbedrijf) x
|
||
LEFT JOIN prs_v_aanwezigkenmerklink banknr
|
||
ON banknr.prs_kenmerk_key = 1028 -- Bankrekening (don't care)
|
||
AND banknr.prs_link_key = x.prs_bedrijf_key
|
||
LEFT JOIN prs_v_aanwezigkenmerklink bic
|
||
ON bic.prs_kenmerk_key = 1029 -- BIC-code (don't care unless)
|
||
AND bic.prs_link_key = x.prs_bedrijf_key
|
||
JOIN prs_v_aanwezigkenmerklink iban
|
||
ON iban.prs_kenmerk_key = 1030 -- Ibannummer
|
||
AND iban.prs_link_key = x.prs_bedrijf_key;
|
||
|
||
|
||
/* Formatted on 1-9-2014 10:50:10 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW venr_v_u4_supplierinvoice
|
||
(
|
||
fin_factuur_key, -- Intern
|
||
mld_opdr_key, -- Intern
|
||
cnt_contract_key, -- Intern
|
||
grootboekprefix, -- Intern
|
||
administratie, -- '0829' (OCI) of '0861' (SSD)
|
||
invoiceid,
|
||
invoicedate,
|
||
supplierid,
|
||
paymentconditionid,
|
||
paymentreference,
|
||
vatoninvoice,
|
||
journalid,
|
||
periodnumber,
|
||
reference,
|
||
fiscalyear,
|
||
journaltransaction,
|
||
invoiceexpirationdate,
|
||
rebateexpirationdate
|
||
)
|
||
AS
|
||
WITH last_exp -- Tijdstip laatste succesvolle U4-export uit eigen tabel!
|
||
AS (SELECT fac.safe_to_date (fac_usrdata_code,
|
||
'dd-mm-yyyy hh24:mi:ss')
|
||
datum
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 24 AND fac_usrdata_key = 51),
|
||
bet_cond
|
||
AS (SELECT *
|
||
FROM prs_v_aanwezigkenmerklink
|
||
WHERE prs_kenmerklink_niveau = 'B' AND prs_kenmerk_key = 1023)
|
||
SELECT f.fin_factuur_key, -- Initial Main-contract invoices/opdracht=regie
|
||
f.mld_opdr_key mld_opdr_key,
|
||
NULL cnt_contract_key,
|
||
'70' grootboekprefix, -- TODO: Configureerbaar maken?
|
||
'MVL008' || SUBSTR (kf.fin_kenmerkfactuur_waarde, 3, 2)
|
||
administratie,
|
||
kf.fin_kenmerkfactuur_waarde, -- Boekstuknr-kenmerk gegenereerd door FACILITOR (ook initieel?)
|
||
TO_CHAR (f.fin_factuur_datum, 'DD-MM-YYYY'),
|
||
7000000 + o.mld_uitvoerende_keys,
|
||
COALESCE (udbc.fac_usrdata_code, '60A'), -- Initiele/A-variant!
|
||
SUBSTR (f.fin_factuur_nr, 1, 16), -- Factuurnummer in U4 max. 16!
|
||
DECODE (f.fin_factuur_totaal_btw, 0, 'false', 'true'),
|
||
'I', -- Dagboekcode hard op 'I'!
|
||
TO_CHAR (TO_DATE (f.fin_factuur_boekmaand, 'YYYY-MM'), 'MM'),
|
||
TO_CHAR (o.mld_melding_key)
|
||
|| '/'
|
||
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
|
||
TO_CHAR (f.fin_factuur_datum, 'YYYY'),
|
||
0,
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY'),
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY')
|
||
FROM fin_factuur f,
|
||
fin_kenmerkfactuur kf,
|
||
( SELECT fac_tracking_refkey,
|
||
MIN (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key = 116 -- FINNEW
|
||
GROUP BY fac_tracking_refkey) finnew,
|
||
last_exp le,
|
||
mld_opdr o,
|
||
bet_cond klbc,
|
||
fac_usrdata udbc, -- OOK VERWIJDERDE!
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_v_aanwezigkenmerklink kl1,
|
||
prs_v_aanwezigkenmerklink kl2
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key != 3 -- Skippen als Incompleet (kan niet voorkomen?)
|
||
AND f.fin_factuur_statuses_key != 7 -- Skippen als Akkoord (niet dubbel genereren!)
|
||
AND kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerk_key = 41 -- Hidden boekstuknr!
|
||
AND f.fin_factuur_key = kf.fin_factuur_key
|
||
AND f.fin_factuur_key = finnew.fac_tracking_refkey
|
||
AND finnew.fac_tracking_datum > le.datum -- Te exporteren initiele invoices
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_uitvoerende_keys = klbc.prs_link_key(+)
|
||
--AND udbc.fac_usrtab_key = 2 -- Betalingsconditie-waarden
|
||
AND (MOD (fac.safe_to_number (klbc.prs_kenmerklink_waarde), 10)
|
||
+ 10) = udbc.fac_usrdata_key(+)
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND kl1.prs_kenmerklink_niveau = 'B'
|
||
AND kl1.prs_kenmerk_key = 1064 -- Klant->Regio (of bedrijfnaam=regio?)
|
||
AND d.alg_regio_key =
|
||
fac.safe_to_number (kl1.prs_kenmerklink_waarde)
|
||
AND kl2.prs_kenmerklink_niveau = 'B'
|
||
AND kl2.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND kl1.prs_link_key = kl2.prs_link_key
|
||
AND kl2.prs_kenmerklink_waarde = '31' -- Export als Main-contract
|
||
UNION ALL -- Initial Main-contract invoices/contract=catering?
|
||
SELECT f.fin_factuur_key,
|
||
NULL mld_opdr_key,
|
||
c.cnt_contract_key,
|
||
'70' grootboekprefix, -- TODO: Configureerbaar maken?
|
||
'MVL008' || SUBSTR (kf.fin_kenmerkfactuur_waarde, 3, 2)
|
||
administratie,
|
||
kf.fin_kenmerkfactuur_waarde, -- Boekstuknr-kenmerk gegenereerd door FACILITOR (ook initieel?)
|
||
TO_CHAR (f.fin_factuur_datum, 'DD-MM-YYYY'),
|
||
7000000 + c.cnt_prs_bedrijf_key,
|
||
COALESCE (udbc.fac_usrdata_code, '60A'), -- Initiele/A-variant!
|
||
SUBSTR (f.fin_factuur_nr, 1, 16), -- Factuurnummer in U4 max. 16!
|
||
DECODE (f.fin_factuur_totaal_btw, 0, 'false', 'true'),
|
||
'I', -- Dagboekcode hard op 'I'!
|
||
TO_CHAR (TO_DATE (f.fin_factuur_boekmaand, 'YYYY-MM'), 'MM'),
|
||
c.cnt_contract_nummer_intern,
|
||
TO_CHAR (f.fin_factuur_datum, 'YYYY'),
|
||
0,
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY'),
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY')
|
||
FROM fin_factuur f,
|
||
fin_kenmerkfactuur kf,
|
||
( SELECT fac_tracking_refkey,
|
||
MIN (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key = 116 -- FINNEW
|
||
GROUP BY fac_tracking_refkey) finnew,
|
||
last_exp le,
|
||
cnt_v_aanwezigcontract c,
|
||
bet_cond klbc,
|
||
fac_usrdata udbc, -- OOK VERWIJDERDE!
|
||
prs_v_afdeling_boom ab,
|
||
prs_v_aanwezigkenmerklink kl
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key != 3 -- Skippen als Incompleet (kan niet voorkomen?)
|
||
AND f.fin_factuur_statuses_key != 7 -- Skippen als Akkoord (niet dubbel genereren!)
|
||
AND kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerk_key = 41 -- Hidden boekstuknr!
|
||
AND f.fin_factuur_key = kf.fin_factuur_key
|
||
AND f.fin_factuur_key = finnew.fac_tracking_refkey
|
||
AND finnew.fac_tracking_datum > le.datum -- Te exporteren initiele invoices
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND c.cnt_prs_bedrijf_key = klbc.prs_link_key(+)
|
||
--AND udbc.fac_usrtab_key = 2 -- Betalingsconditie-waarden
|
||
AND (MOD (fac.safe_to_number (klbc.prs_kenmerklink_waarde), 10)
|
||
+ 10) = udbc.fac_usrdata_key(+)
|
||
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key
|
||
AND kl.prs_kenmerklink_niveau = 'B'
|
||
AND kl.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND ab.prs_bedrijf_key = kl.prs_link_key
|
||
AND kl.prs_kenmerklink_waarde = '31' -- Export als Main-contract
|
||
UNION ALL -- Frozen Main-contract invoices/opdracht=regie
|
||
SELECT f.fin_factuur_key,
|
||
f.mld_opdr_key mld_opdr_key,
|
||
NULL cnt_contract_key,
|
||
'70' grootboekprefix, -- TODO: Configureerbaar maken?
|
||
'MVL008' || SUBSTR (kf.fin_kenmerkfactuur_waarde, 3, 2)
|
||
administratie,
|
||
kf.fin_kenmerkfactuur_waarde, -- Boekstuknr-kenmerk gegenereerd door FACILITOR
|
||
TO_CHAR (f.fin_factuur_datum, 'DD-MM-YYYY'),
|
||
7000000 + o.mld_uitvoerende_keys,
|
||
COALESCE (udbc.fac_usrdata_code, '60'), -- Definitieve variant!
|
||
SUBSTR (f.fin_factuur_nr, 1, 16), -- Factuurnummer in U4 max. 16!
|
||
DECODE (f.fin_factuur_totaal_btw, 0, 'false', 'true'),
|
||
'I', -- Dagboekcode hard op 'I'!
|
||
TO_CHAR (TO_DATE (f.fin_factuur_boekmaand, 'YYYY-MM'), 'MM'),
|
||
TO_CHAR (o.mld_melding_key)
|
||
|| '/'
|
||
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
|
||
TO_CHAR (f.fin_factuur_datum, 'YYYY'),
|
||
0,
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY'),
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY')
|
||
FROM fin_factuur f,
|
||
fin_kenmerkfactuur kf,
|
||
( SELECT fac_tracking_refkey,
|
||
MIN (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key = 121 -- FINVER
|
||
GROUP BY fac_tracking_refkey) finver,
|
||
last_exp le,
|
||
mld_opdr o,
|
||
bet_cond klbc,
|
||
fac_usrdata udbc, -- OOK VERWIJDERDE!
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_v_aanwezigkenmerklink kl1,
|
||
prs_v_aanwezigkenmerklink kl2
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key = 7 -- Verwerkt
|
||
AND kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerk_key = 41 -- Hidden boekstuknr!
|
||
AND f.fin_factuur_key = kf.fin_factuur_key
|
||
AND f.fin_factuur_key = finver.fac_tracking_refkey
|
||
AND finver.fac_tracking_datum > le.datum -- Te exporteren definitieve invoices
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_uitvoerende_keys = klbc.prs_link_key(+)
|
||
--AND udbc.fac_usrtab_key = 2 -- Betalingsconditie-waarden
|
||
AND MOD (fac.safe_to_number (klbc.prs_kenmerklink_waarde), 10) =
|
||
udbc.fac_usrdata_key(+)
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND kl1.prs_kenmerklink_niveau = 'B'
|
||
AND kl1.prs_kenmerk_key = 1064 -- Klant->Regio (of bedrijfnaam=regio?)
|
||
AND d.alg_regio_key =
|
||
fac.safe_to_number (kl1.prs_kenmerklink_waarde)
|
||
AND kl2.prs_kenmerklink_niveau = 'B'
|
||
AND kl2.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND kl1.prs_link_key = kl2.prs_link_key
|
||
AND kl2.prs_kenmerklink_waarde = '31' -- Export als Main-contract
|
||
UNION ALL -- Frozen Main-contract invoices/contract=catering?
|
||
SELECT f.fin_factuur_key,
|
||
NULL mld_opdr_key,
|
||
c.cnt_contract_key,
|
||
'70' grootboekprefix, -- TODO: Configureerbaar maken?
|
||
'MVL008' || SUBSTR (kf.fin_kenmerkfactuur_waarde, 3, 2)
|
||
administratie,
|
||
kf.fin_kenmerkfactuur_waarde, -- Boekstuknr-kenmerk gegenereerd door FACILITOR
|
||
TO_CHAR (f.fin_factuur_datum, 'DD-MM-YYYY'),
|
||
7000000 + c.cnt_prs_bedrijf_key,
|
||
COALESCE (udbc.fac_usrdata_code, '60'), -- Definitieve variant!
|
||
SUBSTR (f.fin_factuur_nr, 1, 16), -- Factuurnummer in U4 max. 16!
|
||
DECODE (f.fin_factuur_totaal_btw, 0, 'false', 'true'),
|
||
'I', -- Dagboekcode hard op 'I'!
|
||
TO_CHAR (TO_DATE (f.fin_factuur_boekmaand, 'YYYY-MM'), 'MM'),
|
||
c.cnt_contract_nummer_intern,
|
||
TO_CHAR (f.fin_factuur_datum, 'YYYY'),
|
||
0,
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY'),
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY')
|
||
FROM fin_factuur f,
|
||
fin_kenmerkfactuur kf,
|
||
( SELECT fac_tracking_refkey,
|
||
MIN (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key = 121 -- FINVER
|
||
GROUP BY fac_tracking_refkey) finver,
|
||
last_exp le,
|
||
cnt_v_aanwezigcontract c,
|
||
bet_cond klbc,
|
||
fac_usrdata udbc, -- OOK VERWIJDERDE!
|
||
prs_v_afdeling_boom ab,
|
||
prs_v_aanwezigkenmerklink kl
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key = 7 -- Verwerkt
|
||
AND kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerk_key = 41 -- Hidden boekstuknr!
|
||
AND f.fin_factuur_key = kf.fin_factuur_key
|
||
AND f.fin_factuur_key = finver.fac_tracking_refkey
|
||
AND finver.fac_tracking_datum > le.datum -- Te exporteren definitieve invoices
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND c.cnt_prs_bedrijf_key = klbc.prs_link_key(+)
|
||
--AND udbc.fac_usrtab_key = 2 -- Betalingsconditie-waarden
|
||
AND MOD (fac.safe_to_number (klbc.prs_kenmerklink_waarde), 10) =
|
||
udbc.fac_usrdata_key(+)
|
||
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key
|
||
AND kl.prs_kenmerklink_niveau = 'B'
|
||
AND kl.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND ab.prs_bedrijf_key = kl.prs_link_key
|
||
AND kl.prs_kenmerklink_waarde = '31' -- Export als Main-contract
|
||
UNION ALL -- Frozen SSD invoices/exceptions-opdracht=regie
|
||
SELECT f.fin_factuur_key,
|
||
f.mld_opdr_key mld_opdr_key,
|
||
NULL cnt_contract_key,
|
||
'71' grootboekprefix, -- TODO: Configureerbaar maken?
|
||
'MVL008' || SUBSTR (kf.fin_kenmerkfactuur_waarde, 3, 2)
|
||
administratie,
|
||
kf.fin_kenmerkfactuur_waarde, -- Boekstuknr-kenmerk gegenereerd door FACILITOR (ook exceptions?)
|
||
TO_CHAR (f.fin_factuur_datum, 'DD-MM-YYYY'),
|
||
7000000 + o.mld_uitvoerende_keys,
|
||
COALESCE (udbc.fac_usrdata_code, '60'), -- Definitieve variant!
|
||
SUBSTR (f.fin_factuur_nr, 1, 16), -- Factuurnummer in U4 max. 16!
|
||
DECODE (f.fin_factuur_totaal_btw, 0, 'false', 'true'),
|
||
'I', -- Dagboekcode hard op 'I'!
|
||
TO_CHAR (TO_DATE (f.fin_factuur_boekmaand, 'YYYY-MM'), 'MM'),
|
||
TO_CHAR (o.mld_melding_key)
|
||
|| '/'
|
||
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
|
||
TO_CHAR (f.fin_factuur_datum, 'YYYY'),
|
||
0,
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY'),
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY')
|
||
FROM fin_factuur f,
|
||
fin_kenmerkfactuur kf,
|
||
( SELECT fac_tracking_refkey,
|
||
MIN (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key = 121 -- FINVER
|
||
GROUP BY fac_tracking_refkey) finver,
|
||
last_exp le,
|
||
mld_opdr o,
|
||
bet_cond klbc,
|
||
fac_usrdata udbc, -- OOK VERWIJDERDE!
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_v_aanwezigkenmerklink kl1,
|
||
prs_v_aanwezigkenmerklink kl2
|
||
WHERE f.fin_factuur_verwijder IS NULL AND f.fin_factuur_statuses_key = 7 -- Verwerkt
|
||
AND EXISTS -- WEL gemarkeerd als exception!
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 43 -- Specifiek exporteren!
|
||
AND fin_factuur_key = f.fin_factuur_key)
|
||
AND kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerk_key = 41 -- Hidden boekstuknr!
|
||
AND f.fin_factuur_key = kf.fin_factuur_key
|
||
AND f.fin_factuur_key = finver.fac_tracking_refkey
|
||
AND finver.fac_tracking_datum > le.datum -- Te exporteren exception-invoices
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_uitvoerende_keys = klbc.prs_link_key(+)
|
||
--AND udbc.fac_usrtab_key = 2 -- Betalingsconditie-waarden
|
||
AND MOD (fac.safe_to_number (klbc.prs_kenmerklink_waarde), 10) =
|
||
udbc.fac_usrdata_key(+)
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND kl1.prs_kenmerklink_niveau = 'B'
|
||
AND kl1.prs_kenmerk_key = 1064 -- Klant->Regio (of bedrijfnaam=regio?)
|
||
AND d.alg_regio_key =
|
||
fac.safe_to_number (kl1.prs_kenmerklink_waarde)
|
||
AND kl2.prs_kenmerklink_niveau = 'B'
|
||
AND kl2.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND kl1.prs_link_key = kl2.prs_link_key
|
||
AND kl2.prs_kenmerklink_waarde = '32' -- Export als SSD
|
||
UNION ALL -- Frozen SSD invoices/exceptions-contract=catering?
|
||
SELECT f.fin_factuur_key,
|
||
NULL mld_opdr_key,
|
||
c.cnt_contract_key,
|
||
'71' grootboekprefix, -- TODO: Configureerbaar maken?
|
||
'MVL008' || SUBSTR (kf.fin_kenmerkfactuur_waarde, 3, 2)
|
||
administratie,
|
||
kf.fin_kenmerkfactuur_waarde, -- Boekstuknr-kenmerk gegenereerd door FACILITOR (ook exceptions?)
|
||
TO_CHAR (f.fin_factuur_datum, 'DD-MM-YYYY'),
|
||
7000000 + c.cnt_prs_bedrijf_key,
|
||
COALESCE (udbc.fac_usrdata_code, '60'), -- Definitieve variant!
|
||
SUBSTR (f.fin_factuur_nr, 1, 16), -- Factuurnummer in U4 max. 16!
|
||
DECODE (f.fin_factuur_totaal_btw, 0, 'false', 'true'),
|
||
'I', -- Dagboekcode hard op 'I'!
|
||
TO_CHAR (TO_DATE (f.fin_factuur_boekmaand, 'YYYY-MM'), 'MM'),
|
||
c.cnt_contract_nummer_intern,
|
||
TO_CHAR (f.fin_factuur_datum, 'YYYY'),
|
||
0,
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY'),
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY')
|
||
FROM fin_factuur f,
|
||
fin_kenmerkfactuur kf,
|
||
( SELECT fac_tracking_refkey,
|
||
MIN (fac_tracking_datum) fac_tracking_datum
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key = 121 -- FINVER
|
||
GROUP BY fac_tracking_refkey) finver,
|
||
last_exp le,
|
||
cnt_v_aanwezigcontract c,
|
||
bet_cond klbc,
|
||
fac_usrdata udbc, -- OOK VERWIJDERDE!
|
||
prs_v_afdeling_boom ab,
|
||
prs_v_aanwezigkenmerklink kl
|
||
WHERE f.fin_factuur_verwijder IS NULL AND f.fin_factuur_statuses_key = 7 -- Verwerkt
|
||
AND EXISTS -- WEL gemarkeerd als exception!
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 43 -- Specifiek exporteren!
|
||
AND fin_factuur_key = f.fin_factuur_key)
|
||
AND kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerk_key = 41 -- Hidden boekstuknr!
|
||
AND f.fin_factuur_key = kf.fin_factuur_key
|
||
AND f.fin_factuur_key = finver.fac_tracking_refkey
|
||
AND finver.fac_tracking_datum > le.datum -- Te exporteren exception-invoices
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND c.cnt_prs_bedrijf_key = klbc.prs_link_key(+)
|
||
--AND udbc.fac_usrtab_key = 2 -- Betalingsconditie-waarden
|
||
AND MOD (fac.safe_to_number (klbc.prs_kenmerklink_waarde), 10) =
|
||
udbc.fac_usrdata_key(+)
|
||
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key
|
||
AND kl.prs_kenmerklink_niveau = 'B'
|
||
AND kl.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND ab.prs_bedrijf_key = kl.prs_link_key
|
||
AND kl.prs_kenmerklink_waarde = '32' -- Export als SSD
|
||
UNION ALL -- Frozen SSD invoices/underlying-opdracht=regie
|
||
SELECT f.fin_factuur_key,
|
||
f.mld_opdr_key,
|
||
NULL cnt_contract_key,
|
||
'71' grootboekprefix, -- TODO: Configureerbaar maken?
|
||
'MVL008' || SUBSTR (kf1.fin_kenmerkfactuur_waarde, 3, 2)
|
||
administratie,
|
||
kf1.fin_kenmerkfactuur_waarde, -- Boekstuknr-kenmerk gegenereerd door FACILITOR
|
||
TO_CHAR (f.fin_factuur_datum, 'DD-MM-YYYY'),
|
||
7000000 + o.mld_uitvoerende_keys,
|
||
COALESCE (udbc.fac_usrdata_code, '60'), -- Definitieve variant!
|
||
SUBSTR (f.fin_factuur_nr, 1, 16), -- Factuurnummer in U4 max. 16!
|
||
DECODE (f.fin_factuur_totaal_btw, 0, 'false', 'true'),
|
||
'I', -- Dagboekcode hard op 'I'!
|
||
TO_CHAR (TO_DATE (f.fin_factuur_boekmaand, 'YYYY-MM'), 'MM'),
|
||
TO_CHAR (o.mld_melding_key)
|
||
|| '/'
|
||
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
|
||
TO_CHAR (f.fin_factuur_datum, 'YYYY'),
|
||
0,
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY'),
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY')
|
||
FROM fin_factuur f,
|
||
fin_kenmerkfactuur kf1,
|
||
fin_kenmerkfactuur kf2,
|
||
( SELECT fac_usrdata_code ordernr,
|
||
MIN (fac_usrdata_vervaldatum) datum -- Request-datum
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 25
|
||
GROUP BY fac_usrdata_code) ssdreq,
|
||
last_exp le,
|
||
mld_opdr o,
|
||
bet_cond klbc,
|
||
fac_usrdata udbc, -- OOK VERWIJDERDE!
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_v_aanwezigkenmerklink kl1,
|
||
prs_v_aanwezigkenmerklink kl2
|
||
WHERE f.fin_factuur_verwijder IS NULL AND f.fin_factuur_statuses_key = 7 -- Verwerkt
|
||
AND NOT EXISTS -- NIET gemarkeerd als exception!
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 43 -- Specifiek exporteren!
|
||
AND fin_factuur_key = f.fin_factuur_key)
|
||
AND kf1.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf1.fin_kenmerk_key = 41 -- Hidden boekstuknr!
|
||
AND f.fin_factuur_key = kf1.fin_factuur_key
|
||
AND kf2.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf2.fin_kenmerk_key = 42 -- Hidden ordernr!
|
||
AND f.fin_factuur_key = kf2.fin_factuur_key
|
||
AND kf2.fin_kenmerkfactuur_waarde = ssdreq.ordernr
|
||
AND ssdreq.datum > le.datum -- Te exporteren underlying-invoices
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_uitvoerende_keys = klbc.prs_link_key(+)
|
||
--AND udbc.fac_usrtab_key = 2 -- Betalingsconditie-waarden
|
||
AND MOD (fac.safe_to_number (klbc.prs_kenmerklink_waarde), 10) =
|
||
udbc.fac_usrdata_key(+)
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND kl1.prs_kenmerklink_niveau = 'B'
|
||
AND kl1.prs_kenmerk_key = 1064 -- Klant->Regio (of bedrijfnaam=regio?)
|
||
AND d.alg_regio_key =
|
||
fac.safe_to_number (kl1.prs_kenmerklink_waarde)
|
||
AND kl2.prs_kenmerklink_niveau = 'B'
|
||
AND kl2.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND kl1.prs_link_key = kl2.prs_link_key
|
||
AND kl2.prs_kenmerklink_waarde = '32' -- Export als SSD
|
||
UNION ALL -- Frozen SSD invoices/underlying-contract=catering?
|
||
SELECT f.fin_factuur_key,
|
||
NULL mld_opdr_key,
|
||
c.cnt_contract_key,
|
||
'71' grootboekprefix, -- TODO: Configureerbaar maken?
|
||
'MVL008' || SUBSTR (kf1.fin_kenmerkfactuur_waarde, 3, 2)
|
||
administratie,
|
||
kf1.fin_kenmerkfactuur_waarde, -- Boekstuknr-kenmerk gegenereerd door FACILITOR
|
||
TO_CHAR (f.fin_factuur_datum, 'DD-MM-YYYY'),
|
||
7000000 + c.cnt_prs_bedrijf_key,
|
||
COALESCE (udbc.fac_usrdata_code, '60'), -- Definitieve variant!
|
||
SUBSTR (f.fin_factuur_nr, 1, 16), -- Factuurnummer in U4 max. 16!
|
||
DECODE (f.fin_factuur_totaal_btw, 0, 'false', 'true'),
|
||
'I', -- Dagboekcode hard op 'I'!
|
||
TO_CHAR (TO_DATE (f.fin_factuur_boekmaand, 'YYYY-MM'), 'MM'),
|
||
c.cnt_contract_nummer_intern,
|
||
TO_CHAR (f.fin_factuur_datum, 'YYYY'),
|
||
0,
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY'),
|
||
TO_CHAR (f.fin_factuur_datum + 60, 'DD-MM-YYYY')
|
||
FROM fin_factuur f,
|
||
fin_kenmerkfactuur kf1,
|
||
fin_kenmerkfactuur kf2,
|
||
( SELECT fac_usrdata_code ordernr,
|
||
MIN (fac_usrdata_vervaldatum) datum -- Request-datum
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 25
|
||
GROUP BY fac_usrdata_code) ssdreq,
|
||
last_exp le,
|
||
cnt_v_aanwezigcontract c,
|
||
bet_cond klbc,
|
||
fac_usrdata udbc, -- OOK VERWIJDERDE!
|
||
prs_v_afdeling_boom ab,
|
||
prs_v_aanwezigkenmerklink kl
|
||
WHERE f.fin_factuur_verwijder IS NULL AND f.fin_factuur_statuses_key = 7 -- Verwerkt
|
||
AND NOT EXISTS -- NIET gemarkeerd als exception!
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 43 -- Specifiek exporteren!
|
||
AND fin_factuur_key = f.fin_factuur_key)
|
||
AND kf1.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf1.fin_kenmerk_key = 41 -- Hidden boekstuknr!
|
||
AND f.fin_factuur_key = kf1.fin_factuur_key
|
||
AND kf2.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf2.fin_kenmerk_key = 42 -- Hidden ordernr!
|
||
AND f.fin_factuur_key = kf2.fin_factuur_key
|
||
AND kf2.fin_kenmerkfactuur_waarde = ssdreq.ordernr
|
||
AND ssdreq.datum > le.datum -- Te exporteren underlying-invoices
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND c.cnt_prs_bedrijf_key = klbc.prs_link_key(+)
|
||
--AND udbc.fac_usrtab_key = 2 -- Betalingsconditie-waarden
|
||
AND MOD (fac.safe_to_number (klbc.prs_kenmerklink_waarde), 10) =
|
||
udbc.fac_usrdata_key(+)
|
||
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key
|
||
AND kl.prs_kenmerklink_niveau = 'B'
|
||
AND kl.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND ab.prs_bedrijf_key = kl.prs_link_key
|
||
AND kl.prs_kenmerklink_waarde = '32' -- Export als SSD
|
||
;
|
||
|
||
CREATE OR REPLACE VIEW venr_v_u4_supplierinvoiceline
|
||
(
|
||
fin_factuur_key,
|
||
fin_factuurregel_nr,
|
||
invoiceid,
|
||
accountid, -- Kostensoort volgens input Friso; AANNAME alles doorbelasten!
|
||
description, -- Factuurregel-omschrijving
|
||
transactiondate,
|
||
debitamountcur,
|
||
vatcodeid -- Geen=0, Laag=1 en Hoog=2
|
||
)
|
||
AS
|
||
SELECT DISTINCT v.fin_factuur_key,
|
||
fr.fin_factuurregel_nr,
|
||
v.invoiceid,
|
||
grootboekprefix -- Prefix 70/71!
|
||
|| COALESCE (ksfr.prs_kostensoort_opmerking,
|
||
ksf.prs_kostensoort_opmerking,
|
||
ksm.prs_kostensoort_opmerking,
|
||
ksv.prs_kostensoort_opmerking),
|
||
SUBSTR (fr.fin_factuurregel_omschrijving, 1, 30),
|
||
TO_CHAR (f.fin_factuur_datum, 'DD-MM-YYYY'),
|
||
fr.fin_factuurregel_totaal, -- Excl. BTW
|
||
DECODE (btw.fin_btwtabelwaarde_code, 'L', 1, 'H', 2, 0)
|
||
FROM venr_v_u4_supplierinvoice v,
|
||
fin_factuur f,
|
||
prs_kostensoort ksf,
|
||
fin_factuurregel fr,
|
||
prs_kostensoort ksfr,
|
||
fin_btwtabelwaarde btw,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoort ksv
|
||
WHERE v.fin_factuur_key = f.fin_factuur_key
|
||
AND f.prs_kostensoort_key = ksf.prs_kostensoort_key(+)
|
||
AND f.fin_factuur_key = fr.fin_factuur_key
|
||
AND fr.prs_kostensoort_key = ksfr.prs_kostensoort_key(+)
|
||
AND btw.fin_btwtabel_key = 1
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
|
||
AND v.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+);
|
||
|
||
CREATE OR REPLACE VIEW venr_v_u4_vattransactionline
|
||
(
|
||
fin_factuur_key,
|
||
fin_factuurregel_nr,
|
||
invoiceid,
|
||
amountturnovercur,
|
||
vatamountcur
|
||
)
|
||
AS
|
||
SELECT DISTINCT v.fin_factuur_key,
|
||
fr.fin_factuurregel_nr,
|
||
v.invoiceid,
|
||
fr.fin_factuurregel_totaal, -- Excl. BTW
|
||
fr.fin_factuurregel_btw -- BTW-bedrag
|
||
FROM venr_v_u4_supplierinvoice v,
|
||
fin_factuurregel fr,
|
||
fin_btwtabelwaarde btw
|
||
WHERE v.fin_factuur_key = fr.fin_factuur_key
|
||
AND btw.fin_btwtabel_key = 1
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key;
|
||
|
||
|
||
--TODO: CNT-dimensie VENR-diensten afstemmen/afronden!
|
||
/* Formatted on 4-9-2014 10:02:28 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW venr_v_u4_order
|
||
(
|
||
mld_opdr_key, -- Altijd NULL/Intern! => Weg?
|
||
cnt_contract_key, -- Alleen tbv. verkoopopdrachten zonder factuur/Intern
|
||
grootboekprefix, -- Intern
|
||
administratie, -- '0829' (OCI) of '0861' (SSD)
|
||
orderid,
|
||
orderdate,
|
||
customerid,
|
||
paymentconditionid,
|
||
vatscenarioid,
|
||
chargevattype,
|
||
reference,
|
||
deliveryaddress
|
||
)
|
||
AS
|
||
WITH last_exp -- Tijdstip laatste succesvolle U4-export uit eigen tabel!
|
||
AS (SELECT fac.safe_to_date (fac_usrdata_code,
|
||
'dd-mm-yyyy hh24:mi:ss')
|
||
datum
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 24 AND fac_usrdata_key = 51),
|
||
bet_cond
|
||
AS (SELECT *
|
||
FROM prs_v_aanwezigkenmerklink
|
||
WHERE prs_kenmerklink_niveau = 'B' AND prs_kenmerk_key = 1023)
|
||
SELECT NULL, -- Frozen Main-contract orders
|
||
NULL,
|
||
'80' grootboekprefix, -- TODO: Configureerbaar maken?
|
||
'MVL008' || SUBSTR (ssdfrz.ordernr, 3, 2) administratie,
|
||
ssdfrz.ordernr,
|
||
TO_CHAR (ssdfrz.datum, 'DD-MM-YYYY'),
|
||
7000000 + ssdfrz.bedrijf_key, -- prs_bedrijf_key (via ET)!
|
||
COALESCE (udbc.fac_usrdata_code, '60'), -- Definitieve variant!
|
||
6, -- Hard
|
||
0, -- Hard
|
||
DECODE (
|
||
f.mld_opdr_key,
|
||
NULL,
|
||
'Contract '
|
||
|| (SELECT cnt_contract_nummer_intern
|
||
FROM cnt_contract
|
||
WHERE cnt_contract_key = f.cnt_contract_key),
|
||
'Opdracht '
|
||
|| (SELECT TO_CHAR (mld_melding_key)
|
||
|| '/'
|
||
|| TO_CHAR (mld_opdr_bedrijfopdr_volgnr)
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = f.mld_opdr_key)),
|
||
NULL
|
||
FROM ( SELECT fac_usrdata_code ordernr,
|
||
fac.safe_to_number (fac_usrdata_omschr) bedrijf_key,
|
||
MIN (fac_usrdata_aanmaak) datum -- Order-datum
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 25
|
||
GROUP BY fac_usrdata_code, fac_usrdata_omschr) ssdfrz,
|
||
last_exp le,
|
||
bet_cond klbc,
|
||
fac_usrdata udbc, -- OOK VERWIJDERDE!
|
||
prs_v_aanwezigkenmerklink kl,
|
||
fin_kenmerkfactuur kf,
|
||
fin_factuur f
|
||
WHERE ssdfrz.datum > le.datum -- Te exporteren uplift-orders
|
||
AND ssdfrz.bedrijf_key = klbc.prs_link_key(+)
|
||
--AND udbc.fac_usrtab_key = 2 -- Betalingsconditie-waarden
|
||
AND MOD (fac.safe_to_number (klbc.prs_kenmerklink_waarde), 10) =
|
||
udbc.fac_usrdata_key(+)
|
||
AND kl.prs_kenmerklink_niveau = 'B'
|
||
AND kl.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND ssdfrz.bedrijf_key = kl.prs_link_key
|
||
AND kl.prs_kenmerklink_waarde = '31' -- Export als Main-contract
|
||
AND kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerk_key = 42 -- Hidden ordernr!
|
||
AND ssdfrz.ordernr = kf.fin_kenmerkfactuur_waarde
|
||
AND f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key = 7 -- Verwerkt; altijd!
|
||
AND kf.fin_factuur_key = f.fin_factuur_key
|
||
AND (f.mld_opdr_key IS NOT NULL OR f.cnt_contract_key IS NOT NULL)
|
||
UNION ALL -- Periodic Main-contract orders/no invoice!
|
||
SELECT NULL,
|
||
c.cnt_contract_key,
|
||
'80' grootboekprefix, -- TODO: Configureerbaar maken?
|
||
'MVL008' || SUBSTR (ssdfrz.ordernr, 3, 2) administratie,
|
||
ssdfrz.ordernr,
|
||
TO_CHAR (ssdfrz.datum, 'DD-MM-YYYY'),
|
||
7000000 + ssdfrz.bedrijf_key, -- prs_bedrijf_key (via ET)!
|
||
COALESCE (udbc.fac_usrdata_code, '60'), -- Definitieve variant!
|
||
6, -- Hard
|
||
0, -- Hard
|
||
'Contract ' || c.cnt_contract_nummer_intern,
|
||
NULL
|
||
FROM ( SELECT fac_usrdata_code ordernr,
|
||
fac.safe_to_number (fac_usrdata_omschr) bedrijf_key,
|
||
MIN (fac_usrdata_aanmaak) datum -- Order-datum
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 25
|
||
GROUP BY fac_usrdata_code, fac_usrdata_omschr) ssdfrz,
|
||
last_exp le,
|
||
bet_cond klbc,
|
||
fac_usrdata udbc, -- OOK VERWIJDERDE!
|
||
prs_v_aanwezigkenmerklink kl,
|
||
cnt_contract c
|
||
WHERE ssdfrz.datum > le.datum -- Te exporteren VENR-diensten
|
||
AND ssdfrz.bedrijf_key = klbc.prs_link_key(+)
|
||
--AND udbc.fac_usrtab_key = 2 -- Betalingsconditie-waarden
|
||
AND MOD (fac.safe_to_number (klbc.prs_kenmerklink_waarde), 10) =
|
||
udbc.fac_usrdata_key(+)
|
||
AND kl.prs_kenmerklink_niveau = 'B'
|
||
AND kl.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND ssdfrz.bedrijf_key = kl.prs_link_key
|
||
AND kl.prs_kenmerklink_waarde = '31' -- Export als Main-contract
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerk_key = 42 -- Hidden ordernr
|
||
AND fin_kenmerkfactuur_waarde = ssdfrz.ordernr)
|
||
AND ssdfrz.bedrijf_key = c.cnt_prs_bedrijf_key
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM cnt_kenmerkcontract
|
||
WHERE cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cnt_kenmerk_key = -1 -- TODO: Contract-doorbelasten
|
||
AND cnt_contract_key = c.cnt_contract_key)
|
||
UNION ALL -- Frozen SSD borderel-orders
|
||
SELECT NULL,
|
||
NULL,
|
||
'81' grootboekprefix, -- TODO: Configureerbaar maken?
|
||
'MVL008' || SUBSTR (ssdfrz.ordernr, 3, 2) administratie,
|
||
ssdfrz.ordernr,
|
||
TO_CHAR (ssdfrz.datum, 'DD-MM-YYYY'),
|
||
7000000 + ssdfrz.bedrijf_key, -- prs_bedrijf_key (via ET)!
|
||
COALESCE (udbc.fac_usrdata_code, '60'), -- Definitieve variant!
|
||
6, -- Hard
|
||
0, -- Hard
|
||
DECODE ( -- TODO: Toevoegen Regio/District/Locatie op basis van Exportbundeling (of Grootboekcode)?
|
||
kl2.prs_kenmerklink_waarde,
|
||
'42', -- Wekelijks
|
||
'Weekfactuur ' || TO_CHAR (ssdfrz.datum, 'IYYY-IW'),
|
||
'43', -- Halfmaandelijks
|
||
'Halfmaandfactuur ' || TO_CHAR (ssdfrz.datum, 'YYYY-MM/DD'),
|
||
'44', -- Maandelijks
|
||
'Maandfactuur ' || TO_CHAR (ssdfrz.datum, 'YYYY-MM'),
|
||
'45', -- Maandelijks
|
||
'Maandfactuur ' || TO_CHAR (ssdfrz.datum, 'YYYY-MM'),
|
||
'Periode ongeldig!'),
|
||
COALESCE (o2da.deliveryaddress, 'Contract') -- Listig stukje!!!
|
||
FROM ( SELECT fac_usrdata_code ordernr,
|
||
fac.safe_to_number (fac_usrdata_omschr) bedrijf_key,
|
||
MIN (fac_usrdata_aanmaak) datum -- Order-datum
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 25
|
||
GROUP BY fac_usrdata_code, fac_usrdata_omschr) ssdfrz,
|
||
last_exp le,
|
||
bet_cond klbc,
|
||
fac_usrdata udbc, -- OOK VERWIJDERDE!
|
||
prs_v_aanwezigkenmerklink kl1,
|
||
prs_v_aanwezigkenmerklink kl2,
|
||
(SELECT DISTINCT
|
||
kf.fin_kenmerkfactuur_waarde ordernr,
|
||
DECODE (kl2.prs_kenmerklink_waarde,
|
||
'48', r.alg_regio_omschrijving,
|
||
'49', d.alg_district_omschrijving,
|
||
l.alg_locatie_omschrijving)
|
||
deliveryaddress
|
||
FROM fin_kenmerkfactuur kf,
|
||
fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
alg_regio r,
|
||
prs_v_aanwezigkenmerklink kl1,
|
||
prs_v_aanwezigkenmerklink kl2
|
||
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerk_key = 42 -- Hidden ordernr!
|
||
AND kf.fin_factuur_key = f.fin_factuur_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND d.alg_regio_key = r.alg_regio_key
|
||
AND kl1.prs_kenmerklink_niveau = 'B'
|
||
AND kl1.prs_kenmerk_key = 1064 -- Klant->Regio (of bedrijfnaam=regio?)
|
||
AND d.alg_regio_key =
|
||
fac.safe_to_number (kl1.prs_kenmerklink_waarde)
|
||
AND kl2.prs_kenmerklink_niveau = 'B'
|
||
AND kl2.prs_kenmerk_key = 1063 -- Klant->Exportbundeling
|
||
AND kl1.prs_link_key = kl2.prs_link_key) o2da -- Ordernr2DeliveryAddr.
|
||
WHERE ssdfrz.datum > le.datum -- Te exporteren borderels
|
||
AND ssdfrz.bedrijf_key = klbc.prs_link_key(+)
|
||
--AND udbc.fac_usrtab_key = 2 -- Betalingsconditie-waarden
|
||
AND MOD (fac.safe_to_number (klbc.prs_kenmerklink_waarde), 10) =
|
||
udbc.fac_usrdata_key(+)
|
||
AND kl1.prs_kenmerklink_niveau = 'B'
|
||
AND kl1.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND ssdfrz.bedrijf_key = kl1.prs_link_key
|
||
AND kl1.prs_kenmerklink_waarde = '32' -- Export als SSD
|
||
AND kl2.prs_kenmerklink_niveau = 'B'
|
||
AND kl2.prs_kenmerk_key = 1062 -- Klant->Exportperiode
|
||
AND ssdfrz.bedrijf_key = kl2.prs_link_key
|
||
AND ssdfrz.ordernr = o2da.ordernr(+);
|
||
|
||
/* Formatted on 9-1-2015 10:48:12 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW venr_v_u4_orderline
|
||
(
|
||
orderid, -- Intern
|
||
accountid,
|
||
productid,
|
||
description,
|
||
quantityordered,
|
||
quantitydelivered,
|
||
price,
|
||
priceper,
|
||
vatcodeid
|
||
)
|
||
AS
|
||
SELECT x.orderid,
|
||
x.grootboekprefix || '000', -- Prefix 80/81!
|
||
x.grootboekprefix || '000', -- Prefix 80/81!
|
||
'Opdrachten/' || x.orderid || '/' || x.orderdate,
|
||
DECODE (SIGN (SUM (x.fin_factuurregel_totaal)), -1, -1, 1), -- -1 als credit!
|
||
DECODE (SIGN (SUM (x.fin_factuurregel_totaal)), -1, -1, 1), -- -1 als credit!
|
||
ABS(SUM(x.fin_factuurregel_totaal
|
||
* (1 + COALESCE (ud.fac_usrdata_prijs, 0)))), -- Excl. BTW; price nooit negatief!
|
||
'maal', -- Hard
|
||
x.vatcodeid
|
||
FROM (SELECT v.orderid,
|
||
v.orderdate,
|
||
v.grootboekprefix,
|
||
COALESCE (ksfr.prs_kostensoort_opmerking,
|
||
ksf.prs_kostensoort_opmerking,
|
||
ksm.prs_kostensoort_opmerking,
|
||
ksv.prs_kostensoort_opmerking)
|
||
accountid,
|
||
fr.fin_factuurregel_totaal,
|
||
DECODE (btw.fin_btwtabelwaarde_code, 'L', 1, 'H', 2, 0)
|
||
vatcodeid
|
||
FROM venr_v_u4_order v,
|
||
fin_kenmerkfactuur kf,
|
||
fin_factuur f,
|
||
prs_kostensoort ksf,
|
||
fin_factuurregel fr,
|
||
prs_kostensoort ksfr,
|
||
fin_btwtabelwaarde btw,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline td,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoort ksv
|
||
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerk_key = 42 -- Hidden ordernr!
|
||
AND v.orderid = kf.fin_kenmerkfactuur_waarde
|
||
AND f.fin_factuur_verwijder IS NULL
|
||
AND kf.fin_factuur_key = f.fin_factuur_key
|
||
AND f.prs_kostensoort_key = ksf.prs_kostensoort_key(+)
|
||
AND f.fin_factuur_key = fr.fin_factuur_key
|
||
AND fr.prs_kostensoort_key = ksfr.prs_kostensoort_key(+)
|
||
AND btw.fin_btwtabel_key = 1
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+))
|
||
x
|
||
LEFT JOIN
|
||
fac_v_aanwezigusrdata ud
|
||
ON ud.fac_usrtab_key = 26 AND x.accountid = ud.fac_usrdata_code
|
||
GROUP BY x.orderid,
|
||
x.grootboekprefix || '000', -- Prefix 80/81!
|
||
x.grootboekprefix || '000', -- Prefix 80/81!
|
||
'Opdrachten/' || x.orderid || '/' || x.orderdate,
|
||
x.vatcodeid
|
||
UNION ALL
|
||
SELECT x.orderid,
|
||
x.grootboekprefix || '000', -- Prefix 80/81!
|
||
x.grootboekprefix || '000', -- Prefix 80/81!
|
||
'Contracten/' || x.orderid || '/' || x.orderdate,
|
||
DECODE (SIGN (SUM (x.fin_factuurregel_totaal)), -1, -1, 1), -- -1 als credit!
|
||
DECODE (SIGN (SUM (x.fin_factuurregel_totaal)), -1, -1, 1), -- -1 als credit!
|
||
ABS(SUM(x.fin_factuurregel_totaal
|
||
* (1 + COALESCE (ud.fac_usrdata_prijs, 0)))), -- Excl. BTW; price nooit negatief!
|
||
'maal', -- Hard
|
||
x.vatcodeid
|
||
FROM (SELECT v.orderid,
|
||
v.orderdate,
|
||
v.grootboekprefix,
|
||
COALESCE (ksfr.prs_kostensoort_opmerking,
|
||
ksf.prs_kostensoort_opmerking,
|
||
ksc.prs_kostensoort_opmerking)
|
||
accountid,
|
||
fr.fin_factuurregel_totaal,
|
||
DECODE (btw.fin_btwtabelwaarde_code, 'L', 1, 'H', 2, 0)
|
||
vatcodeid
|
||
FROM venr_v_u4_order v,
|
||
fin_kenmerkfactuur kf,
|
||
fin_factuur f,
|
||
prs_kostensoort ksf,
|
||
fin_factuurregel fr,
|
||
prs_kostensoort ksfr,
|
||
fin_btwtabelwaarde btw,
|
||
cnt_contract c,
|
||
prs_kostensoort ksc
|
||
WHERE kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerk_key = 42 -- Hidden ordernr!
|
||
AND v.orderid = kf.fin_kenmerkfactuur_waarde
|
||
AND f.fin_factuur_verwijder IS NULL
|
||
AND kf.fin_factuur_key = f.fin_factuur_key
|
||
AND f.prs_kostensoort_key = ksf.prs_kostensoort_key(+)
|
||
AND f.fin_factuur_key = fr.fin_factuur_key
|
||
AND fr.prs_kostensoort_key = ksfr.prs_kostensoort_key(+)
|
||
AND btw.fin_btwtabel_key = 1
|
||
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+))
|
||
x
|
||
LEFT JOIN
|
||
fac_v_aanwezigusrdata ud
|
||
ON ud.fac_usrtab_key = 26 AND x.accountid = ud.fac_usrdata_code
|
||
GROUP BY x.orderid,
|
||
x.grootboekprefix || '000', -- Prefix 80/81!
|
||
x.grootboekprefix || '000', -- Prefix 80/81!
|
||
'Contracten/' || x.orderid || '/' || x.orderdate,
|
||
x.vatcodeid
|
||
UNION ALL
|
||
SELECT v.orderid,
|
||
v.grootboekprefix || '000', -- Prefix 80/81!
|
||
v.grootboekprefix || '000', -- Prefix 80/81!
|
||
'Contracten' || v.orderid || '/' || v.orderdate,
|
||
1, -- Altijd 1 dus nooit credit!
|
||
1, -- Altijd 1 dus nooit credit!
|
||
SUM (c.cnt_contract_termijnkosten), -- Excl. BTW; TODO: Uplift?
|
||
'maal', -- Hard
|
||
DECODE (btw.fin_btwtabelwaarde_code, 'L', 1, 'H', 2, 0)
|
||
FROM venr_v_u4_order v,
|
||
cnt_contract c,
|
||
prs_kostensoort ksc,
|
||
fin_btwtabelwaarde btw,
|
||
fac_v_aanwezigusrdata ud
|
||
WHERE v.cnt_contract_key = c.cnt_contract_key
|
||
AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+)
|
||
AND btw.fin_btwtabel_key = 1
|
||
AND btw.fin_btwtabelwaarde_code = 'H' -- TODO: Altijd hoog?
|
||
AND ud.fac_usrtab_key = 26 -- UpliftOCI
|
||
AND ksc.prs_kostensoort_opmerking = ud.fac_usrdata_code
|
||
GROUP BY v.orderid,
|
||
grootboekprefix || '000', -- Prefix 80/81!
|
||
grootboekprefix || '000', -- Prefix 80/81!
|
||
'Contracten' || v.orderid || '/' || v.orderdate,
|
||
DECODE (btw.fin_btwtabelwaarde_code, 'L', 1, 'H', 2, 0);
|
||
|
||
|
||
--TODO: CNT-dimensie VENR-diensten afstemmen/afronden!
|
||
/* Formatted on 2-9-2014 17:00:00 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW venr_v_u4_actual
|
||
(
|
||
exportvariant,
|
||
fin_factuur_key,
|
||
mld_opdr_key,
|
||
cnt_contract_key,
|
||
prs_bedrijf_key,
|
||
periode,
|
||
bundeling
|
||
)
|
||
AS
|
||
SELECT 'MC1', -- Aangemaakte O-facturen voor Main-contract (OCI) => Initiele MC-inkoopfacturen (zonder boekstuknr)
|
||
f.fin_factuur_key,
|
||
f.mld_opdr_key,
|
||
NULL cnt_contract_key,
|
||
o.mld_uitvoerende_keys,
|
||
NULL periode, -- Periode niet van toepassing!
|
||
NULL bundeling -- Bundeling niet van toepassing!
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_v_aanwezigkenmerklink kl1,
|
||
prs_v_aanwezigkenmerklink kl2
|
||
WHERE f.fin_factuur_verwijder IS NULL AND f.fin_factuur_statuses_key != 3 -- Skippen als Incompleet (kan niet voorkomen?)
|
||
AND NOT EXISTS -- Geen boekstuknr, dus nog initieel exporteren!
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 41 -- Hidden boekstuknr!
|
||
AND fin_factuur_key = f.fin_factuur_key)
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND kl1.prs_kenmerklink_niveau = 'B'
|
||
AND kl1.prs_kenmerk_key = 1064 -- Klant->Regio (of bedrijfnaam=regio?)
|
||
AND d.alg_regio_key =
|
||
fac.safe_to_number (kl1.prs_kenmerklink_waarde)
|
||
AND kl2.prs_kenmerklink_niveau = 'B'
|
||
AND kl2.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND kl1.prs_link_key = kl2.prs_link_key
|
||
AND kl2.prs_kenmerklink_waarde = '31' -- Export als Main-contract
|
||
UNION ALL -- Aangemaakte C-facturen voor Main-contract (OCI) => Initiele MC-inkoopfacturen (zonder boekstuknr)
|
||
SELECT 'MC1', -- Aangemaakte O-facturen voor Main-contract (OCI) => Initiele MC-inkoopfacturen (zonder boekstuknr)
|
||
f.fin_factuur_key,
|
||
NULL mld_opdr_key,
|
||
c.cnt_contract_key,
|
||
c.cnt_prs_bedrijf_key,
|
||
NULL periode, -- Periode niet van toepassing!
|
||
NULL bundeling -- Bundeling niet van toepassing!
|
||
FROM fin_factuur f,
|
||
cnt_contract c,
|
||
prs_v_afdeling_boom ab,
|
||
prs_v_aanwezigkenmerklink kl
|
||
WHERE f.fin_factuur_verwijder IS NULL AND f.fin_factuur_statuses_key != 3 -- Skippen als Incompleet (kan niet voorkomen?)
|
||
AND NOT EXISTS -- Geen boekstuknr, dus nog initieel exporteren!
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 41 -- Hidden boekstuknr!
|
||
AND fin_factuur_key = f.fin_factuur_key)
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key
|
||
AND kl.prs_kenmerklink_niveau = 'B'
|
||
AND kl.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND ab.prs_bedrijf_key = kl.prs_link_key
|
||
AND kl.prs_kenmerklink_waarde = '31' -- Export als Main-contract
|
||
UNION ALL -- Goedgekeurde O-facturen voor Main-contract (OCI) => Definitieve MC-inkoop/verkoop
|
||
SELECT 'MC2',
|
||
f.fin_factuur_key,
|
||
f.mld_opdr_key,
|
||
NULL cnt_contract_key,
|
||
kl1.prs_link_key,
|
||
NULL periode, -- Periode niet van toepassing!
|
||
NULL bundeling -- Bundeling niet van toepassing!
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_v_aanwezigkenmerklink kl1,
|
||
prs_v_aanwezigkenmerklink kl2
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key = 6 -- Akkoord
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND kl1.prs_kenmerklink_niveau = 'B'
|
||
AND kl1.prs_kenmerk_key = 1064 -- Klant->Regio (of bedrijfnaam=regio?)
|
||
AND d.alg_regio_key =
|
||
fac.safe_to_number (kl1.prs_kenmerklink_waarde)
|
||
AND kl2.prs_kenmerklink_niveau = 'B'
|
||
AND kl2.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND kl1.prs_link_key = kl2.prs_link_key
|
||
AND kl2.prs_kenmerklink_waarde = '31' -- Export als Main-contract
|
||
UNION ALL -- Goedgekeurde C-facturen voor Main-contract (OCI) => Definitieve MC-inkoopfacturen (met boekstuknr)
|
||
SELECT 'MC2',
|
||
f.fin_factuur_key,
|
||
NULL mld_opdr_key,
|
||
c.cnt_contract_key,
|
||
ab.prs_bedrijf_key,
|
||
NULL periode, -- Periode niet van toepassing!
|
||
NULL bundeling -- Bundeling niet van toepassing!
|
||
FROM fin_factuur f,
|
||
cnt_contract c,
|
||
prs_v_afdeling_boom ab,
|
||
prs_v_aanwezigkenmerklink kl
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key = 6 -- Akkoord
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key
|
||
AND kl.prs_kenmerklink_niveau = 'B'
|
||
AND kl.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND ab.prs_bedrijf_key = kl.prs_link_key
|
||
AND kl.prs_kenmerklink_waarde = '31' -- Export als Main-contract
|
||
UNION ALL -- Gemarkeerde C-contracten voor Main-contract (OCI) => MC-verkoopopdrachten/VENR-diensten
|
||
SELECT 'MC3',
|
||
NULL fin_factuur_key,
|
||
NULL mld_opdr_key,
|
||
c.cnt_contract_key,
|
||
c.cnt_prs_bedrijf_key,
|
||
NULL periode, -- Periode niet van toepassing!
|
||
NULL bundeling -- Bundeling niet van toepassing!
|
||
FROM cnt_v_aanwezigcontract c, prs_v_aanwezigkenmerklink kl
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM cnt_kenmerkcontract
|
||
WHERE cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cnt_kenmerk_key = -1 -- TODO: Contract-doorbelasten
|
||
AND cnt_contract_key = c.cnt_contract_key)
|
||
AND kl.prs_kenmerklink_niveau = 'B'
|
||
AND kl.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND c.cnt_prs_bedrijf_key = kl.prs_link_key
|
||
AND kl.prs_kenmerklink_waarde = '31' -- Export als Main-contract
|
||
UNION ALL -- Goedgekeurde <20>n gemarkeerde O-facturen voor SSD => SSD-exceptions
|
||
SELECT 'SSD1',
|
||
f.fin_factuur_key,
|
||
f.mld_opdr_key,
|
||
NULL cnt_contract_key,
|
||
o.mld_uitvoerende_keys,
|
||
NULL periode, -- Periode niet van toepassing!
|
||
NULL bundeling -- Bundeling niet van toepassing!
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_v_aanwezigkenmerklink kl1,
|
||
prs_v_aanwezigkenmerklink kl2
|
||
WHERE f.fin_factuur_verwijder IS NULL AND f.fin_factuur_statuses_key = 6 -- Akkoord
|
||
AND EXISTS -- Gemarkeerd als exception, dan nu al exporteren!
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 43 -- Specifiek exporteren!
|
||
AND fin_factuur_key = f.fin_factuur_key)
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND kl1.prs_kenmerklink_niveau = 'B'
|
||
AND kl1.prs_kenmerk_key = 1064 -- Klant->Regio (of bedrijfnaam=regio?)
|
||
AND d.alg_regio_key =
|
||
fac.safe_to_number (kl1.prs_kenmerklink_waarde)
|
||
AND kl2.prs_kenmerklink_niveau = 'B'
|
||
AND kl2.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND kl1.prs_link_key = kl2.prs_link_key
|
||
AND kl2.prs_kenmerklink_waarde = '32' -- Export als SSD
|
||
UNION ALL -- Goedgekeurde <20>n gemarkeerde C-facturen voor SSD => SSD-exceptions
|
||
SELECT 'SSD1',
|
||
f.fin_factuur_key,
|
||
NULL mld_opdr_key,
|
||
c.cnt_contract_key,
|
||
c.cnt_prs_bedrijf_key,
|
||
NULL periode, -- Periode niet van toepassing!
|
||
NULL bundeling -- Bundeling niet van toepassing!
|
||
FROM fin_factuur f,
|
||
cnt_contract c,
|
||
prs_v_afdeling_boom ab,
|
||
prs_v_aanwezigkenmerklink kl
|
||
WHERE f.fin_factuur_verwijder IS NULL AND f.fin_factuur_statuses_key = 6 -- Akkoord
|
||
AND EXISTS -- Gemarkeerd als exception, dan nu al exporteren!
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 43 -- Specifiek exporteren!
|
||
AND fin_factuur_key = f.fin_factuur_key)
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key
|
||
AND kl.prs_kenmerklink_niveau = 'B'
|
||
AND kl.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND ab.prs_bedrijf_key = kl.prs_link_key
|
||
AND kl.prs_kenmerklink_waarde = '32' -- Export als SSD
|
||
UNION ALL -- Goedgekeurde of verwerkte OC-facturen per bundeling voor SSD => SSD-verkoopopdrachten/borderels
|
||
SELECT 'SSD2',
|
||
NULL fin_factuur_key,
|
||
NULL mld_opdr_key,
|
||
NULL cnt_contract_key,
|
||
x.prs_bedrijf_key,
|
||
x.periode,
|
||
x.bundeling
|
||
FROM (SELECT kl1.prs_link_key prs_bedrijf_key,
|
||
kl3.prs_kenmerklink_waarde periode,
|
||
DECODE (kl4.prs_kenmerklink_waarde,
|
||
'48', 'R' || TO_CHAR (d.alg_regio_key),
|
||
'49', 'D' || TO_CHAR (d.alg_district_key),
|
||
'L' || TO_CHAR (l.alg_locatie_key))
|
||
bundeling
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_v_aanwezigkenmerklink kl1,
|
||
prs_v_aanwezigkenmerklink kl2,
|
||
prs_v_aanwezigkenmerklink kl3,
|
||
prs_v_aanwezigkenmerklink kl4
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
AND NOT EXISTS -- Geen ordernr, dus nog exporteren als borderel!
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 42 -- Hidden ordernr!
|
||
AND fin_factuur_key = f.fin_factuur_key)
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND kl1.prs_kenmerklink_niveau = 'B'
|
||
AND kl1.prs_kenmerk_key = 1064 -- Klant->Regio (of bedrijfnaam=regio?)
|
||
AND d.alg_regio_key =
|
||
fac.safe_to_number (kl1.prs_kenmerklink_waarde)
|
||
AND kl2.prs_kenmerklink_niveau = 'B'
|
||
AND kl2.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND kl1.prs_link_key = kl2.prs_link_key
|
||
AND kl2.prs_kenmerklink_waarde = '32' -- Export als SSD
|
||
AND kl3.prs_kenmerklink_niveau = 'B'
|
||
AND kl3.prs_kenmerk_key = 1062 -- Klant->Exportperiode
|
||
AND kl1.prs_link_key = kl3.prs_link_key
|
||
AND kl4.prs_kenmerklink_niveau = 'B'
|
||
AND kl4.prs_kenmerk_key = 1063 -- Klant->Exportbundeling
|
||
AND kl1.prs_link_key = kl4.prs_link_key
|
||
UNION
|
||
SELECT ab.prs_bedrijf_key,
|
||
kl2.prs_kenmerklink_waarde periode,
|
||
DECODE (kl3.prs_kenmerklink_waarde,
|
||
'48', 'R0',
|
||
'49', 'D0',
|
||
'L0')
|
||
bundeling
|
||
FROM fin_factuur f,
|
||
cnt_contract c,
|
||
prs_v_afdeling_boom ab,
|
||
prs_v_aanwezigkenmerklink kl1,
|
||
prs_v_aanwezigkenmerklink kl2,
|
||
prs_v_aanwezigkenmerklink kl3
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
AND NOT EXISTS -- Geen ordernr, dus nog exporteren als borderel!
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 42 -- Hidden ordernr!
|
||
AND fin_factuur_key = f.fin_factuur_key)
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key
|
||
AND kl1.prs_kenmerklink_niveau = 'B'
|
||
AND kl1.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND ab.prs_bedrijf_key = kl1.prs_link_key
|
||
AND kl1.prs_kenmerklink_waarde = '32' -- Export als SSD
|
||
AND kl2.prs_kenmerklink_niveau = 'B'
|
||
AND kl2.prs_kenmerk_key = 1062 -- Klant->Exportperiode
|
||
AND ab.prs_bedrijf_key = kl2.prs_link_key
|
||
AND kl3.prs_kenmerklink_niveau = 'B'
|
||
AND kl3.prs_kenmerk_key = 1063 -- Klant->Exportbundeling
|
||
AND ab.prs_bedrijf_key = kl3.prs_link_key) x;
|
||
|
||
/* Formatted on 4-9-2014 13:38:22 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE venr_select_u4 (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
-- Cursor loopt over een view met daarin opgebouwd alle actuele (nog te
|
||
-- te exporteren) regels; deze of een volgende run.
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM venr_v_u4_actual
|
||
ORDER BY 1, 2;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
export_date DATE := SYSDATE;
|
||
regelnr NUMBER := 0;
|
||
v_count NUMBER;
|
||
v_boekstuknr VARCHAR2 (20);
|
||
v_ordernr VARCHAR2 (20);
|
||
v_freeze NUMBER;
|
||
BEGIN
|
||
-- Genereer boekstuknr(OCI+SSD)/ordernr(OCI) voor alle relevante facturen en
|
||
-- bevries (AV=Verwerkt) deze!
|
||
-- Tevens entry in Eigen Tabel met uplift voor OCI-verkoopopdrachten!
|
||
FOR rec IN c1
|
||
LOOP
|
||
v_boekstuknr := NULL;
|
||
v_ordernr := NULL;
|
||
v_freeze := 0;
|
||
|
||
IF (rec.exportvariant != 'SSD2')
|
||
THEN
|
||
-- Genereren/toevoegen boekstuknr of ordernr
|
||
IF (rec.exportvariant = 'SSD1') -- SSD/Exception=>Genereren boekstuknr/freeze!
|
||
THEN
|
||
-- Sequence '01' voor boekstuknr tbv. SSD!
|
||
SELECT fac_s_user01.NEXTVAL INTO v_count FROM DUAL;
|
||
|
||
v_boekstuknr :=
|
||
TO_CHAR (export_date, 'Y')
|
||
|| '761' -- TODO: Configureerbaar maken?
|
||
|| SUBSTR ('0000' || TO_CHAR (v_count), -4);
|
||
|
||
-- Toevoegen boekstuknr als hidden kenmerk op factuur!
|
||
v_errormsg := 'Fout bij toevoegen boekstuknr/SSD';
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, 41, v_boekstuknr);
|
||
|
||
v_freeze := 1;
|
||
ELSIF (rec.exportvariant = 'MC1') -- OCI/Initieel=>Genereren boekstuknr/no freeze!
|
||
THEN
|
||
-- Sequence '03' voor boekstuknr tbv. OCI!
|
||
SELECT fac_s_user03.NEXTVAL INTO v_count FROM DUAL;
|
||
|
||
v_boekstuknr :=
|
||
TO_CHAR (export_date, 'Y')
|
||
|| '729' -- TODO: Configureerbaar maken?
|
||
|| SUBSTR ('0000' || TO_CHAR (v_count), -4);
|
||
|
||
-- Toevoegen boekstuknr als hidden kenmerk op factuur!
|
||
v_errormsg := 'Fout bij toevoegen boekstuknr/MC';
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, 41, v_boekstuknr);
|
||
ELSIF (rec.exportvariant = 'MC2') -- OCI/Definitief=>Genereren ordernr/freeze!
|
||
THEN
|
||
-- Sequence '04' voor ordernr tbv. OCI!
|
||
SELECT fac_s_user04.NEXTVAL INTO v_count FROM DUAL;
|
||
|
||
v_ordernr :=
|
||
TO_CHAR (export_date, 'Y')
|
||
|| '629' -- TODO: Configureerbaar maken?
|
||
|| SUBSTR ('0000' || TO_CHAR (v_count), -4);
|
||
|
||
-- Toevoegen ordernr als hidden kenmerk op factuur!
|
||
v_errormsg := 'Fout bij toevoegen ordernr/MC';
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, 42, v_ordernr);
|
||
|
||
v_freeze := 1;
|
||
ELSIF (rec.exportvariant = 'MC3') -- OCI/Direct definitief=>Genereren ordernr/freeze!
|
||
THEN
|
||
-- Sequence '04' voor ordernr tbv. OCI!
|
||
SELECT fac_s_user04.NEXTVAL INTO v_count FROM DUAL;
|
||
|
||
v_ordernr :=
|
||
TO_CHAR (export_date, 'Y')
|
||
|| '629' -- TODO: Configureerbaar maken?
|
||
|| SUBSTR ('0000' || TO_CHAR (v_count), -4);
|
||
ELSE
|
||
fac.writelog (p_applname,
|
||
'E',
|
||
'Exportvariant ongeldig!',
|
||
'');
|
||
END IF;
|
||
|
||
-- Bevriezen factuur
|
||
IF (v_freeze = 1)
|
||
THEN
|
||
v_errormsg := 'Fout bij bevriezen factuur/MC';
|
||
|
||
UPDATE fin_factuur f
|
||
SET fin_factuur_statuses_key = 7 -- AV
|
||
WHERE f.fin_factuur_key = rec.fin_factuur_key;
|
||
|
||
fac.trackaction ('FINVER',
|
||
rec.fin_factuur_key,
|
||
NULL, -- FACILITOR
|
||
NULL,
|
||
NULL);
|
||
|
||
regelnr := regelnr + 1;
|
||
END IF;
|
||
|
||
-- Toevoegen meta-order als entry in eigen tabel (met/zonder uplift?)!
|
||
IF (v_ordernr IS NOT NULL) -- Alleen Main-contracts=OCI!
|
||
THEN
|
||
v_errormsg := 'Fout bij toevoegen meta-order/MC';
|
||
|
||
INSERT INTO fac_usrdata (fac_usrtab_key,
|
||
fac_usrdata_code,
|
||
fac_usrdata_omschr,
|
||
fac_usrdata_aanmaak,
|
||
fac_usrdata_vervaldatum,
|
||
fac_usrdata_prijs)
|
||
VALUES (25,
|
||
v_ordernr,
|
||
TO_CHAR (rec.prs_bedrijf_key), -- OCI-prs_bedrijf_key!
|
||
export_date,
|
||
NULL,
|
||
NULL); -- TODO: uplift?
|
||
END IF;
|
||
ELSE -- Borderels
|
||
-- Of wekelijks en woensdag
|
||
-- Of halfmaandelijks en de 14e of de 'laatste-2' dag van de maand
|
||
-- Of maandelijks en de 'laatste-2' dag van de maand
|
||
-- Of maandelijks en de 5e dag van de maand
|
||
IF ( (rec.periode = '42' AND TO_CHAR (SYSDATE, 'D') = 4)
|
||
OR (rec.periode = '43' AND TO_CHAR (SYSDATE, 'DD') IN ('14', TO_CHAR (LAST_DAY (SYSDATE) - 2, 'DD')))
|
||
OR (rec.periode = '44' AND TO_CHAR (SYSDATE, 'DD') = '05')
|
||
OR (rec.periode = '45' AND TO_CHAR (SYSDATE, 'DD') = TO_CHAR (LAST_DAY (SYSDATE) - 2, 'DD')))
|
||
THEN
|
||
-- 1. Genereer ordernr
|
||
-- 2. Loop over betreffende facturen:
|
||
-- a. Toevoegen ordernr als hidden kenmerk
|
||
-- b. Bevriezen
|
||
-- 3. Toevoegen meta-order in eigen tabel
|
||
-- Sequence '02' voor ordernr tbv. SSD!
|
||
SELECT fac_s_user02.NEXTVAL INTO v_count FROM DUAL;
|
||
|
||
v_ordernr :=
|
||
TO_CHAR (export_date, 'Y')
|
||
|| '661' -- TODO: Configureerbaar maken?
|
||
|| SUBSTR ('0000' || TO_CHAR (v_count), -4);
|
||
|
||
FOR rcf
|
||
IN ( SELECT x.fin_factuur_key,
|
||
x.fin_factuur_statuses_key,
|
||
x.prs_bedrijf_key
|
||
FROM (SELECT f.fin_factuur_key,
|
||
f.fin_factuur_statuses_key,
|
||
o.mld_uitvoerende_keys prs_bedrijf_key,
|
||
DECODE (
|
||
kl4.prs_kenmerklink_waarde,
|
||
'48',
|
||
'R' || TO_CHAR (d.alg_regio_key),
|
||
'49',
|
||
'D' || TO_CHAR (d.alg_district_key),
|
||
'L' || TO_CHAR (l.alg_locatie_key))
|
||
bundeling
|
||
FROM fin_factuur f,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_v_aanwezigkenmerklink kl1,
|
||
prs_v_aanwezigkenmerklink kl2,
|
||
--prs_v_aanwezigkenmerklink kl3,
|
||
prs_v_aanwezigkenmerklink kl4
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
AND NOT EXISTS -- Geen ordernr, dus nog exporteren als borderel!
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 42 -- Hidden ordernr!
|
||
AND fin_factuur_key =
|
||
f.fin_factuur_key)
|
||
AND f.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_locatie_key =
|
||
l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND kl1.prs_kenmerklink_niveau = 'B'
|
||
AND kl1.prs_kenmerk_key = 1064 -- Klant->Regio (of bedrijfnaam=regio?)
|
||
AND d.alg_regio_key =
|
||
fac.safe_to_number (
|
||
kl1.prs_kenmerklink_waarde)
|
||
AND kl2.prs_kenmerklink_niveau = 'B'
|
||
AND kl2.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND kl1.prs_link_key = kl2.prs_link_key
|
||
AND kl2.prs_kenmerklink_waarde = '32' -- Export als SSD
|
||
--AND kl3.prs_kenmerklink_niveau = 'B'
|
||
--AND kl3.prs_kenmerk_key = 1062 -- Klant->Exportperiode
|
||
--AND kl1.prs_link_key = kl3.prs_link_key
|
||
--AND kl3.prs_kenmerklink_waarde =
|
||
-- rec.periode
|
||
AND kl4.prs_kenmerklink_niveau = 'B'
|
||
AND kl4.prs_kenmerk_key = 1063 -- Klant->Exportbundeling
|
||
AND kl1.prs_link_key = kl4.prs_link_key
|
||
UNION ALL
|
||
SELECT f.fin_factuur_key,
|
||
f.fin_factuur_statuses_key,
|
||
c.cnt_prs_bedrijf_key prs_bedrijf_key,
|
||
DECODE (kl3.prs_kenmerklink_waarde,
|
||
'48', 'R0',
|
||
'49', 'D0',
|
||
'L0')
|
||
bundeling
|
||
FROM fin_factuur f,
|
||
cnt_contract c,
|
||
prs_v_afdeling_boom ab,
|
||
prs_v_aanwezigkenmerklink kl1,
|
||
--prs_v_aanwezigkenmerklink kl2,
|
||
prs_v_aanwezigkenmerklink kl3
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
|
||
AND NOT EXISTS -- Geen ordernr, dus nog exporteren als borderel!
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 42 -- Hidden ordernr!
|
||
AND fin_factuur_key =
|
||
f.fin_factuur_key)
|
||
AND f.cnt_contract_key = c.cnt_contract_key
|
||
AND c.prs_afdeling_key_eig =
|
||
ab.prs_afdeling_key
|
||
AND kl1.prs_kenmerklink_niveau = 'B'
|
||
AND kl1.prs_kenmerk_key = 1061 -- Klant->Exportvariant
|
||
AND ab.prs_bedrijf_key = kl1.prs_link_key
|
||
AND kl1.prs_kenmerklink_waarde = '32' -- Export als SSD
|
||
--AND kl2.prs_kenmerklink_niveau = 'B'
|
||
--AND kl2.prs_kenmerk_key = 1062 -- Klant->Exportperiode
|
||
--AND ab.prs_bedrijf_key = kl2.prs_link_key
|
||
--AND kl2.prs_kenmerklink_waarde =
|
||
-- rec.periode
|
||
AND kl3.prs_kenmerklink_niveau = 'B'
|
||
AND kl3.prs_kenmerk_key = 1063 -- Klant->Exportbundeling
|
||
AND ab.prs_bedrijf_key = kl3.prs_link_key)
|
||
x
|
||
WHERE x.bundeling = rec.bundeling
|
||
ORDER BY 1)
|
||
LOOP
|
||
-- Toevoegen ordernr als hidden kenmerk op factuur!
|
||
v_errormsg := 'Fout bij toevoegen ordernr/SSD';
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (rcf.fin_factuur_key, 42, v_ordernr);
|
||
|
||
IF (rcf.fin_factuur_statuses_key != 7)
|
||
THEN
|
||
v_errormsg := 'Fout bij bevriezen factuur/SSD';
|
||
|
||
UPDATE fin_factuur f
|
||
SET fin_factuur_statuses_key = 7 -- AV
|
||
WHERE f.fin_factuur_key = rcf.fin_factuur_key;
|
||
|
||
fac.trackaction ('FINVER',
|
||
rcf.fin_factuur_key,
|
||
NULL, -- FACILITOR
|
||
NULL,
|
||
NULL);
|
||
|
||
regelnr := regelnr + 1;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
v_errormsg := 'Fout bij toevoegen meta-order/SSD';
|
||
|
||
INSERT INTO fac_usrdata (fac_usrtab_key,
|
||
fac_usrdata_code,
|
||
fac_usrdata_omschr,
|
||
fac_usrdata_aanmaak,
|
||
fac_usrdata_vervaldatum,
|
||
fac_usrdata_prijs)
|
||
VALUES (25,
|
||
v_ordernr,
|
||
TO_CHAR (rec.prs_bedrijf_key), -- SSD-prs_bedrijf_key!
|
||
export_date,
|
||
NULL,
|
||
NULL);
|
||
END IF;
|
||
END IF;
|
||
--COMMIT; -- Geen tussentijdse COMMIT, dus alles of niets!
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
-- Let op: 2e param is 'E' omdat deze regel (mede) is bedoeld als feedback
|
||
-- tbv. applicatiebeheerders!
|
||
fac.writelog (p_applname,
|
||
'E',
|
||
'Aantal bevroren facturen: ' || TO_CHAR (regelnr),
|
||
'');
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg ||
|
||
' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname,
|
||
'E',
|
||
'Proces U4_EXPORT afgebroken!',
|
||
v_errormsg);
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
|
||
/* Formatted on 27-8-2014 15:16:44 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PACKAGE VENR
|
||
AS
|
||
-- PACKAGES voor de VENR specifieke ondersteuning
|
||
PROCEDURE finish_ssdinvoices (p_ordernr IN NUMBER);
|
||
END;
|
||
/
|
||
|
||
/* Formatted on 21-4-2015 10:24:36 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PACKAGE BODY VENR
|
||
AS
|
||
PROCEDURE finish_ssdinvoices (p_ordernr IN NUMBER)
|
||
AS
|
||
-- Cursor loopt over nog niet geexporteerde invoices onder borderel met
|
||
-- 'p_ordernr'; betreffende facturen krijgen een boekstuknr!
|
||
CURSOR c1
|
||
IS
|
||
SELECT f.fin_factuur_key
|
||
FROM fin_factuur f, fin_kenmerkfactuur kf
|
||
WHERE f.fin_factuur_verwijder IS NULL
|
||
AND f.fin_factuur_statuses_key = 7 -- Verwerkt
|
||
AND kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerk_key = 42 -- Ordernr
|
||
AND f.fin_factuur_key = kf.fin_factuur_key
|
||
AND kf.fin_kenmerkfactuur_waarde = TO_CHAR (p_ordernr)
|
||
AND NOT EXISTS -- GEEN boekstuknr (= NIET gemarkeerd als exception)!
|
||
(SELECT 1
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 41 -- Boekstuknr
|
||
AND fin_factuur_key = f.fin_factuur_key)
|
||
ORDER BY 1;
|
||
|
||
c_applname VARCHAR2 (50) := 'FINISH_SSDINV';
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200) := '-';
|
||
v_usrdata_key NUMBER (10);
|
||
v_boekstuknr VARCHAR2 (20);
|
||
v_update NUMBER (10) := 0;
|
||
v_count NUMBER (10);
|
||
BEGIN
|
||
v_aanduiding := '[' || TO_CHAR (p_ordernr) || '] ';
|
||
v_errormsg := 'Fout bij bepalen meta-order/SSD';
|
||
|
||
SELECT fac_usrdata_key
|
||
INTO v_usrdata_key
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 25
|
||
AND fac_usrdata_vervaldatum IS NULL -- Moet zo zijn!
|
||
AND fac_usrdata_code = TO_CHAR (p_ordernr);
|
||
|
||
-- Toevoegen boekstuknr-kenmerk op 1 of meer facturen!
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout bij bepalen boekstuknr';
|
||
|
||
-- Sequence '01' voor boekstuknr tbv. SSD
|
||
SELECT fac_s_user01.NEXTVAL INTO v_count FROM DUAL;
|
||
|
||
v_boekstuknr :=
|
||
TO_CHAR (SYSDATE, 'Y')
|
||
|| '761' -- TODO: Configureerbaar maken?
|
||
|| SUBSTR ('0000' || TO_CHAR (v_count), -4);
|
||
|
||
v_errormsg := 'Fout bij toevoegen boekstuknr';
|
||
|
||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||
fin_kenmerk_key,
|
||
fin_kenmerkfactuur_waarde)
|
||
VALUES (rec.fin_factuur_key, 41, v_boekstuknr);
|
||
|
||
v_update := v_update + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog (c_applname,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'');
|
||
END;
|
||
END LOOP;
|
||
|
||
v_errormsg := 'Fout bij bijwerken vervaldatum';
|
||
|
||
UPDATE fac_usrdata
|
||
SET fac_usrdata_vervaldatum = SYSDATE
|
||
WHERE fac_usrdata_key = v_usrdata_key;
|
||
|
||
fac.writelog (
|
||
c_applname,
|
||
'S',
|
||
'SSD-borderel '
|
||
|| TO_CHAR (p_ordernr)
|
||
|| '/#invoices: '
|
||
|| TO_CHAR (v_update),
|
||
'');
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog (c_applname,
|
||
'E',
|
||
'Procedure FINISH_SSDINV afgebroken!',
|
||
v_errormsg);
|
||
END finish_ssdinvoices;
|
||
END;
|
||
/
|
||
|
||
/* Formatted on 17-9-2014 15:50:10 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW venr_v_rap_finish_ssdinvoices
|
||
(
|
||
hide_f_bedrijf_key,
|
||
fclt_f_bedrijf,
|
||
ordernr,
|
||
aantal,
|
||
totaal_excl,
|
||
totaal_incl
|
||
)
|
||
AS
|
||
SELECT b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
ud.fac_usrdata_code,
|
||
COUNT (DISTINCT f.fin_factuur_key),
|
||
SUM (fr.fin_factuurregel_totaal),
|
||
SUM (fr.fin_factuurregel_totaal + ROUND (fr.fin_factuurregel_btw, 2))
|
||
FROM fac_v_aanwezigusrdata ud,
|
||
prs_bedrijf b,
|
||
fin_kenmerkfactuur kf,
|
||
fin_factuur f,
|
||
fin_factuurregel fr
|
||
WHERE ud.fac_usrtab_key = 25 -- Verkoopopdrachten
|
||
AND ud.fac_usrdata_vervaldatum IS NULL
|
||
AND ud.fac_usrdata_code LIKE '_661%' -- Prefix voor SSD-orders
|
||
AND fac.safe_to_number (ud.fac_usrdata_omschr) = b.prs_bedrijf_key
|
||
AND kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerk_key = 42 -- Ordernr
|
||
AND ud.fac_usrdata_code = kf.fin_kenmerkfactuur_waarde
|
||
AND f.fin_factuur_statuses_key = 7 -- Verwerkt (moet zo zijn)!
|
||
AND kf.fin_factuur_key = f.fin_factuur_key
|
||
AND f.fin_factuur_key = fr.fin_factuur_key
|
||
GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam, ud.fac_usrdata_code;
|
||
|
||
|
||
/* Formatted on 5-9-2014 9:55:05 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW venr_v_rap_order2invoice_xref
|
||
(
|
||
fclt_x_borderel,
|
||
fclt_f_locatie,
|
||
fclt_f_leverancier,
|
||
extern_factuurnr,
|
||
excl_btw,
|
||
btw_hoog,
|
||
btw_laag,
|
||
kostenplaats,
|
||
soort_onderhoud,
|
||
meldingnummer,
|
||
fclt_3d_afdeling_key
|
||
)
|
||
AS
|
||
SELECT ud.fac_usrdata_code,
|
||
DECODE (
|
||
l.alg_locatie_key,
|
||
NULL,
|
||
'Contract',
|
||
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')'),
|
||
uv.prs_bedrijf_naam,
|
||
f.fin_factuur_nr,
|
||
SUM (fr.fin_factuurregel_totaal),
|
||
SUM(DECODE (fr.fin_btwtabelwaarde_key,
|
||
3, ROUND (fr.fin_factuurregel_btw, 2),
|
||
0)),
|
||
SUM(DECODE (fr.fin_btwtabelwaarde_key,
|
||
2, ROUND (fr.fin_factuurregel_btw, 2),
|
||
0)),
|
||
gbc.fin_kenmerkfactuur_waarde,
|
||
DECODE (o.mld_typeopdr_key, NULL, NULL, 281, 'P', 'C'), -- 281=Preventief onderhoud
|
||
TO_CHAR (o.mld_melding_key),
|
||
b2a.prs_afdeling_key
|
||
FROM fac_v_aanwezigusrdata ud,
|
||
prs_bedrijf kl,
|
||
( SELECT prs_bedrijf_key, MIN (prs_afdeling_key1) prs_afdeling_key
|
||
FROM prs_v_afdeling_boom
|
||
GROUP BY prs_bedrijf_key) b2a,
|
||
fin_kenmerkfactuur kf,
|
||
fin_factuur f,
|
||
fin_factuurregel fr,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
alg_locatie l,
|
||
prs_bedrijf uv,
|
||
(SELECT *
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerkfactuur_verwijder IS NULL
|
||
AND fin_kenmerk_key = 61) gbc -- Grootboekcode klant
|
||
WHERE ud.fac_usrtab_key = 25 -- Verkoopopdrachten
|
||
AND ud.fac_usrdata_vervaldatum IS NULL
|
||
AND ud.fac_usrdata_code LIKE '_661%' -- Prefix voor SSD-orders
|
||
AND fac.safe_to_number (ud.fac_usrdata_omschr) = kl.prs_bedrijf_key
|
||
AND kl.prs_bedrijf_key = b2a.prs_bedrijf_key
|
||
AND kf.fin_kenmerkfactuur_verwijder IS NULL
|
||
AND kf.fin_kenmerk_key = 42 -- Ordernr
|
||
AND ud.fac_usrdata_code = kf.fin_kenmerkfactuur_waarde
|
||
--AND f.fin_factuur_statuses_key = 7 -- Verwerkt (moet zo zijn)!
|
||
AND kf.fin_factuur_key = f.fin_factuur_key
|
||
AND f.fin_factuur_key = fr.fin_factuur_key
|
||
AND f.mld_opdr_key = o.mld_opdr_key(+)
|
||
AND o.mld_melding_key = m.mld_melding_key(+)
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||
AND o.mld_uitvoerende_keys = uv.prs_bedrijf_key(+)
|
||
AND f.fin_factuur_key = gbc.fin_factuur_key(+)
|
||
GROUP BY ud.fac_usrdata_code,
|
||
DECODE (
|
||
l.alg_locatie_key,
|
||
NULL,
|
||
'Contract',
|
||
l.alg_locatie_omschrijving
|
||
|| ' ('
|
||
|| l.alg_locatie_code
|
||
|| ')'),
|
||
uv.prs_bedrijf_naam,
|
||
f.fin_factuur_nr,
|
||
gbc.fin_kenmerkfactuur_waarde,
|
||
DECODE (o.mld_typeopdr_key, NULL, NULL, 281, 'P', 'C'),
|
||
TO_CHAR (o.mld_melding_key),
|
||
b2a.prs_afdeling_key;
|
||
|
||
-- Import vanuit Strukton
|
||
CREATE OR REPLACE PROCEDURE venr_import_opdrstat_strukton (p_import_key IN NUMBER)
|
||
AS
|
||
c_delim VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (1000) := '';
|
||
header_is_valid NUMBER := 0;
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_imp NUMBER (10) := 0;
|
||
v_ongeldig NUMBER (1) := 0;
|
||
-- De importvelden
|
||
v_mld_opdr_key_tekst VARCHAR2 (100);
|
||
v_extern_nummer VARCHAR2 (100);
|
||
v_status_code VARCHAR2 (100);
|
||
v_status NUMBER (10);
|
||
v_datumtijd_tekst VARCHAR2 (100);
|
||
v_datumtijd DATE;
|
||
v_status_tekst VARCHAR2 (100);
|
||
v_opmerking VARCHAR2 (4000);
|
||
--v_totaal_tekst VARCHAR2 (100);
|
||
--v_totaal NUMBER (8,2);
|
||
--v_correctie_tekst VARCHAR2 (100);
|
||
--v_correctie NUMBER (8,2);
|
||
-- Overige velden
|
||
v_mld_opdr_key NUMBER (10);
|
||
v_mld_opdr_opmerking VARCHAR2 (4000);
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
DELETE FROM venr_imp_opdrstat_strukton;
|
||
COMMIT;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden.
|
||
fac.imp_getfield (v_newline, c_delim, v_mld_opdr_key_tekst);
|
||
v_mld_opdr_key_tekst := TRIM (v_mld_opdr_key_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_extern_nummer);
|
||
v_extern_nummer := TRIM (v_extern_nummer);
|
||
fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID
|
||
v_status_code := TRIM (v_status_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst);
|
||
v_datumtijd_tekst := TRIM (v_datumtijd_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_status_tekst);
|
||
v_status_tekst := TRIM (v_status_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_opmerking);
|
||
v_opmerking := SUBSTR (TRIM (v_opmerking), 1, 1000);
|
||
--fac.imp_getfield (v_newline, c_delim, v_totaal_tekst);
|
||
--v_totaal := fac.safe_to_number (v_totaal_tekst);
|
||
--fac.imp_getfield (v_newline, c_delim, v_correctie_tekst);
|
||
--v_correctie := fac.safe_to_number (v_correctie_tekst);
|
||
-- Verwijder de markering voor cr/lf die in stylesheet is toegevoegd.
|
||
v_opmerking := REPLACE (v_opmerking, '@@', CHR (13));
|
||
v_aanduiding := '[' || v_mld_opdr_key_tekst || '|' || v_extern_nummer || '|' || v_status_code || '|' || v_datumtijd_tekst || '|' || v_status_tekst || '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (TRIM (v_mld_opdr_key_tekst)) = 'REFERENCEID'
|
||
AND UPPER (TRIM (v_extern_nummer)) = 'SERVICEREQUESTID'
|
||
AND UPPER (TRIM (v_status_code)) = 'TYPEID'
|
||
AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME'
|
||
AND UPPER (TRIM (v_opmerking)) = 'REMARKS'
|
||
--AND UPPER (TRIM (v_totaal_tekst)) = 'TOTAL'
|
||
--AND UPPER (TRIM (v_correctie_tekst)) = 'CORRECTION'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Controleer alle veldwaarden.
|
||
v_errormsg := 'Fout bepalen opdracht';
|
||
|
||
BEGIN
|
||
SELECT o.mld_opdr_key, o.mld_opdr_opmerking
|
||
INTO v_mld_opdr_key, v_mld_opdr_opmerking
|
||
FROM mld_opdr o, mld_melding m, mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr = v_mld_opdr_key_tekst;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_ongeldig := 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Status ongedefinieerd';
|
||
|
||
CASE
|
||
WHEN v_status_code = '5'
|
||
THEN
|
||
v_status := 5; -- uitgegeven
|
||
WHEN v_status_code = '10'
|
||
THEN
|
||
v_status := 8; -- geaccepteerd
|
||
WHEN v_status_code = '20' -- monteur gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '25' -- specialist gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '30' -- technisch gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
-- KFNS#52066: Uitprijs/fiatteer-functionaliteit!
|
||
--WHEN v_status_code = '40' -- uitgeprijst (fiattering aan FACILITOR-kant)
|
||
--THEN
|
||
-- v_status := 9; -- afgerond
|
||
--WHEN v_status_code = '45' -- gefiatteerd (fiattering aan Strukton-kant)
|
||
--THEN
|
||
-- v_status := 9; -- afgerond
|
||
WHEN v_status_code = '70'
|
||
THEN
|
||
v_status := 1; -- geannuleerd
|
||
WHEN v_status_code = '80'
|
||
THEN
|
||
v_status := 1; -- afgewezen
|
||
WHEN v_status_code = '200' -- onderbroken
|
||
THEN
|
||
--TODO: Notitie toevoegen (incl. reden?)
|
||
v_status := NULL; -- ongewijzigd
|
||
WHEN v_status_code = '210' -- herpland
|
||
THEN
|
||
--TODO: Notitie toevoegen
|
||
v_status := NULL; -- ongewijzigd
|
||
ELSE
|
||
v_status := NULL;
|
||
v_ongeldig := 1; -- nog te bezien
|
||
END CASE;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Datumtijd ongeldig';
|
||
|
||
IF INSTR (v_datumtijd_tekst, '.') > 0
|
||
THEN
|
||
v_datumtijd := fac.safe_to_date (REPLACE (SUBSTR (v_datumtijd_tekst, 1, INSTR (v_datumtijd_tekst, '.') - 1), 'T', ' '), 'yyyy-mm-dd hh24:mi:ss');
|
||
ELSE
|
||
v_datumtijd := fac.safe_to_date (REPLACE (v_datumtijd_tekst, 'T', ' '), 'yyyy-mm-dd hh24:mi:ss');
|
||
END IF;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Opmerking ongeldig';
|
||
|
||
-- Controleer of de opmerking niet leeg is en of dezelfde opmerking al bij een eerdere statusovergang is gemeld.
|
||
IF v_opmerking IS NOT NULL AND INSTR (v_mld_opdr_opmerking, v_opmerking) = 0
|
||
THEN
|
||
v_opmerking := '[' || v_datumtijd_tekst || '] - ' || v_status_tekst || CHR (13) || CHR (10) || v_opmerking;
|
||
ELSE
|
||
v_opmerking := '[' || v_datumtijd_tekst || '] - ' || v_status_tekst;
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record.
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout wegschrijven statusbericht';
|
||
|
||
INSERT INTO venr_imp_opdrstat_strukton (mld_opdr_key,
|
||
extern_nummer,
|
||
status,
|
||
datumtijd,
|
||
opmerking) -- Geen totaal/correctie!
|
||
VALUES (v_mld_opdr_key,
|
||
v_extern_nummer,
|
||
v_status,
|
||
v_datumtijd,
|
||
v_opmerking);
|
||
|
||
v_count_imp := v_count_imp + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
|
||
END;
|
||
ELSE
|
||
-- Foutmeldingen onderdrukken als uitprijzen/fiatteren niet is aangeschakeld.
|
||
IF v_status_code <> '40' AND v_status_code <> '45'
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF header_is_valid = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!');
|
||
ELSE
|
||
fac.imp_writelog (p_import_key, 'S', 'Inleesproces/#ingelezen statusberichten: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'Inleesproces/#ongeldige niet ingelezen statusberichten: ' || TO_CHAR (v_count_tot - v_count_imp), '');
|
||
END IF;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces statusberichten afgebroken!');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE venr_update_opdrstat_strukton (p_import_key IN NUMBER)
|
||
AS
|
||
-- Cursor loopt - per opdracht in volgorde! - over alle ingelezen statusberichten.
|
||
CURSOR c1
|
||
IS
|
||
SELECT mld_opdr_key, extern_nummer, status, datumtijd, opmerking -- Geen totaal/correctie!
|
||
FROM venr_imp_opdrstat_strukton
|
||
ORDER BY 1, 4;
|
||
|
||
c_user_key NUMBER (10) := 5; -- _STRUKTON-user
|
||
c_refnr_srtkkey NUMBER (10) := 141; -- Refnr. Leverancier
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count NUMBER (10) := 0;
|
||
v_mld_key NUMBER (10);
|
||
v_opdr_key NUMBER (10);
|
||
v_opdr_status NUMBER (10);
|
||
v_mld_typeopdr_key NUMBER (10);
|
||
v_mld_kenmerk_key NUMBER (10);
|
||
v_mld_kenmerkopdr_key NUMBER (10);
|
||
BEGIN
|
||
-- Loop over alle ingelezen Strukton-statusberichten.
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := '[' || rec.mld_opdr_key || '|' || SUBSTR (rec.opmerking, 1, 100) || '] ';
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Key van melding/opdracht bepalen en Refnr. bij opdracht opslaan.
|
||
IF rec.mld_opdr_key IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout bepalen opdracht.';
|
||
|
||
SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key, mld_typeopdr_key
|
||
INTO v_mld_key, v_opdr_key, v_opdr_status, v_mld_typeopdr_key
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = rec.mld_opdr_key;
|
||
|
||
v_errormsg := 'Fout bepalen Refnr-kenmerk.';
|
||
|
||
SELECT k.mld_kenmerk_key
|
||
INTO v_mld_kenmerk_key
|
||
FROM mld_kenmerk k
|
||
WHERE k.mld_srtkenmerk_key = c_refnr_srtkkey AND k.mld_typeopdr_key = v_mld_typeopdr_key;
|
||
|
||
v_errormsg := 'Fout bepalen Refnr-kenmerkopdracht.';
|
||
|
||
SELECT MAX (ko.mld_kenmerkopdr_key)
|
||
INTO v_mld_kenmerkopdr_key
|
||
FROM mld_kenmerkopdr ko
|
||
WHERE ko.mld_opdr_key = v_opdr_key AND v_mld_kenmerk_key = ko.mld_kenmerk_key;
|
||
|
||
IF v_mld_kenmerkopdr_key IS NULL
|
||
THEN
|
||
-- Kenmerk toevoegen
|
||
v_errormsg := 'Fout toevoegen Refnr-kenmerkopdracht.';
|
||
|
||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, mld_opdr_key, mld_kenmerkopdr_waarde)
|
||
VALUES (v_mld_kenmerk_key, v_opdr_key, rec.extern_nummer);
|
||
ELSE
|
||
-- Kenmerk bijwerken
|
||
v_errormsg := 'Fout bijwerken Refnr-kenmerkopdracht.';
|
||
|
||
UPDATE mld_kenmerkopdr
|
||
SET mld_kenmerkopdr_waarde = rec.extern_nummer
|
||
WHERE mld_kenmerkopdr_key = v_mld_kenmerkopdr_key;
|
||
END IF;
|
||
|
||
IF rec.status IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout bijwerken Opmerking (opdracht).';
|
||
|
||
v_count := LENGTH (rec.opmerking) + 5; -- Beetje speling qua lengte!
|
||
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_opmerking =
|
||
DECODE (mld_opdr_opmerking,
|
||
NULL, rec.opmerking,
|
||
rec.opmerking || CHR (13) || CHR (10) || SUBSTR (mld_opdr_opmerking, 1, (4000 - v_count)))
|
||
WHERE mld_opdr_key = v_opdr_key;
|
||
|
||
v_errormsg := 'Fout bijwerken Status.';
|
||
|
||
IF rec.status = 8 AND v_opdr_status = 5
|
||
THEN
|
||
-- Accepteer de opdracht als deze uitgegeven was
|
||
MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton
|
||
ELSIF rec.status = 6 AND v_opdr_status = 5
|
||
THEN
|
||
-- Meld de opdracht af als deze uitgegeven was (na eerst accepteren)
|
||
MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton
|
||
MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton
|
||
ELSIF rec.status = 6 AND v_opdr_status = 8
|
||
THEN
|
||
-- Meld de opdracht af als deze geaccepteerd was
|
||
MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton
|
||
ELSIF rec.status = 1 AND v_opdr_status IN (5, 8)
|
||
THEN
|
||
-- Wijs de opdracht af als deze niet/wel geaccepteerd was
|
||
MLD.setopdrachtstatus (v_opdr_key, 1, c_user_key); -- Strukton
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0);
|
||
--ELSIF rec.status = 9 AND v_opdr_status = 6 -- Per KFNS#52066
|
||
--THEN
|
||
-- Neem ontvangen kosten over zoals afgestemd met KFNS#59399!
|
||
--UPDATE mld_opdr
|
||
-- SET mld_opdr_materiaal = rec.totaal,
|
||
-- mld_opdr_kosten = rec.totaal + rec.correctie
|
||
-- WHERE mld_opdr_key = v_opdr_key;
|
||
|
||
-- Rond de opdracht af als deze afgemeld was
|
||
--MLD.setopdrachtstatus (v_opdr_key, 9, c_user_key); -- Strukton
|
||
END IF;
|
||
|
||
IF rec.status = 6 AND v_opdr_status <> 6
|
||
THEN
|
||
-- AADO#30922: Melding niet meer automatisch afmelden.
|
||
-- KFNS#37965: Opmerking-veld bij melding niet meer bijwerken.
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0);
|
||
END IF;
|
||
ELSE -- rec.status IS NULL (= Onderbroken/Herpland), dan toevoegen Notitie!
|
||
-- YAXX#59749: Toevoegen Notitie!
|
||
v_errormsg := 'Fout toevoegen Notitie (opdracht).';
|
||
|
||
INSERT INTO mld_opdr_note (mld_opdr_key, mld_opdr_note_omschrijving, prs_perslid_key)
|
||
VALUES (v_opdr_key, rec.opmerking, c_user_key);
|
||
END IF;
|
||
END IF;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Statusbericht-loop');
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
|
||
-- VENR#39178: FIN-rapportages per klant/leverancier/contract.
|
||
/* Formatted on 24-2-2017 13:30:30 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW venr_v_rap_actual_cost_tot
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
fclt_f_klant,
|
||
fclt_f_leverancier,
|
||
contractnr,
|
||
beschrijving,
|
||
aantal,
|
||
kosten_onderweg,
|
||
kosten_afgerond,
|
||
fclt_x_kostenplaats
|
||
)
|
||
AS -- Vaste contractkosten over de ACTUAL termijn
|
||
SELECT b2a.prs_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm'), -- Deze maand volgende maand factureren (achteraf)
|
||
x.alg_district_omschrijving klant,
|
||
b2a.prs_bedrijf_naam leverancier,
|
||
x.cnt_contract_nummer_intern, -- Uit deze maand lopend contract, anders geen vaste kosten
|
||
x.cnt_contract_omschrijving,
|
||
0 aantal,
|
||
ROUND (
|
||
DECODE (COALESCE (x.cnt_contract_termijnkosten, 0),
|
||
0, x.cnt_contract_kosten / 12,
|
||
x.cnt_contract_termijnkosten),
|
||
2)
|
||
kosten_onderweg,
|
||
TO_NUMBER (NULL) kosten_afgerond,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
|
||
FROM (SELECT d.alg_district_omschrijving, -- Klant
|
||
--c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_prs_bedrijf_key, -- Leverancier
|
||
c.cnt_contract_kosten,
|
||
c.cnt_contract_termijnkosten,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving
|
||
FROM cnt_v_aanwezigcontract c,
|
||
(SELECT cp.cnt_contract_key, g.alg_locatie_key
|
||
FROM cnt_contract_plaats cp, alg_gebouw g
|
||
WHERE cp.cnt_alg_plaats_code = 'G'
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
UNION ALL
|
||
SELECT cp.cnt_contract_key,
|
||
cp.cnt_alg_plaats_key alg_locatie_key
|
||
FROM cnt_contract_plaats cp
|
||
WHERE cp.cnt_alg_plaats_code = 'L') cl,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_kostenplaats kp
|
||
WHERE EXISTS -- Gemarkeerd als vast contract
|
||
(SELECT 1
|
||
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
|
||
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
||
AND k.cnt_srtkenmerk_key = 81 -- Vast contract
|
||
AND kc.cnt_kenmerkcontract_waarde = '1' -- Aangevinkt
|
||
AND kc.cnt_contract_key = c.cnt_contract_key)
|
||
--AND c.cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (LAST_DAY (SYSDATE))
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (LAST_DAY (SYSDATE))
|
||
AND c.cnt_contract_key = cl.cnt_contract_key
|
||
AND cl.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||
AND fac_usrdata_code = TO_CHAR (d.alg_district_key))
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) x
|
||
LEFT JOIN
|
||
( SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam,
|
||
MIN (p.prs_afdeling_key) prs_afdeling_key,
|
||
COUNT ( * ) aantal
|
||
FROM prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
|
||
WHERE b.prs_bedrijf_key = cp.prs_bedrijf_key(+)
|
||
AND cp.prs_perslid_key = p.prs_perslid_key(+)
|
||
GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam) b2a
|
||
ON x.cnt_prs_bedrijf_key = b2a.prs_bedrijf_key
|
||
UNION ALL -- Variabele kosten uit ACTUAL opdrachten waarvoor Kosten meerekenen=Ja
|
||
SELECT b2a.prs_afdeling_key,
|
||
TO_CHAR (SYSDATE, 'yyyy-mm'), -- Deze maand ORDAFR, volgende maand factureren (achteraf)
|
||
x.alg_district_omschrijving klant,
|
||
COALESCE (b2a.prs_bedrijf_naam, pf.prs_perslid_naam_full) leverancier,
|
||
x.cnt_contract_nummer_intern,
|
||
x.cnt_contract_omschrijving,
|
||
COUNT ( * ) aantal,
|
||
SUM (DECODE (ordafr.fac_tracking_refkey, NULL, COALESCE (x.mld_opdr_kosten, 0), 0))
|
||
kosten_onderweg,
|
||
SUM (DECODE (ordafr.fac_tracking_refkey, NULL, 0, COALESCE (x.mld_opdr_kosten, 0)))
|
||
kosten_afgerond,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
|
||
FROM (SELECT d.alg_district_omschrijving, -- Klant
|
||
o.mld_opdr_key,
|
||
--o.mld_melding_key,
|
||
--o.mld_opdr_bedrijfopdr_volgnr,
|
||
--o.mld_statusopdr_key,
|
||
o.mld_uitvoerende_keys, -- Leverancier
|
||
o.mld_opdr_kosten,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
--prs_perslid p,
|
||
--prs_v_afdeling_boom ab,
|
||
--prs_bedrijf b,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
cnt_contract c,
|
||
prs_kostenplaats kp
|
||
WHERE o.mld_statusopdr_key NOT IN (1, 2, 7) -- Nog niet gereed!
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 1 -- Kosten meerekenen=Ja
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = -1 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
--AND m.prs_perslid_key = p.prs_perslid_key
|
||
--AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
--AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||
AND fac_usrdata_code = TO_CHAR (d.alg_district_key))
|
||
AND o.cnt_contract_key = c.cnt_contract_key(+)
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) x
|
||
LEFT JOIN fac_tracking ordafr
|
||
ON ordafr.fac_srtnotificatie_key = 68 -- ORDAFR
|
||
AND x.mld_opdr_key = ordafr.fac_tracking_refkey
|
||
LEFT JOIN ( SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam,
|
||
MIN (p.prs_afdeling_key) prs_afdeling_key,
|
||
COUNT ( * ) aantal
|
||
FROM prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
|
||
WHERE b.prs_bedrijf_key = cp.prs_bedrijf_key(+)
|
||
AND cp.prs_perslid_key = p.prs_perslid_key(+)
|
||
GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam) b2a
|
||
ON x.mld_uitvoerende_keys = b2a.prs_bedrijf_key
|
||
LEFT JOIN prs_v_perslid_fullnames_all pf
|
||
ON x.mld_uitvoerende_keys = pf.prs_perslid_key
|
||
GROUP BY b2a.prs_afdeling_key,
|
||
x.alg_district_omschrijving,
|
||
COALESCE (b2a.prs_bedrijf_naam, pf.prs_perslid_naam_full),
|
||
x.cnt_contract_nummer_intern,
|
||
x.cnt_contract_omschrijving,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
|
||
UNION ALL
|
||
SELECT TO_NUMBER (NULL) prs_afdeling_key, -- TODO: prs_afdeling_key van App<70>l?
|
||
TO_CHAR (SYSDATE, 'yyyy-mm'), -- Deze maand geboekt, volgende maand factureren (achteraf)
|
||
x.alg_district_omschrijving klant,
|
||
'App<EFBFBD>l' leverancier,
|
||
TO_CHAR (NULL) cnt_contract_nummer_intern,
|
||
'RES/Banqueting' cnt_contract_omschrijving,
|
||
COUNT (DISTINCT x.res_rsv_ruimte_key) aantal,
|
||
SUM (DECODE (resafm.fac_tracking_refkey, NULL, COALESCE (x.res_rsv_artikel_prijs, 0), 0))
|
||
kosten_onderweg,
|
||
SUM (DECODE (resafm.fac_tracking_refkey, NULL, 0, COALESCE (x.res_rsv_artikel_prijs, 0)))
|
||
kosten_afgerond,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
|
||
FROM (SELECT d.alg_district_omschrijving, -- Klant
|
||
rrr.res_rsv_ruimte_key,
|
||
--rrr.res_reservering_key,
|
||
--rrr.res_rsv_ruimte_volgnr,
|
||
--rra.res_status_bo_key,
|
||
rra.res_rsv_artikel_prijs,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
--prs_perslid p,
|
||
--prs_v_afdeling_boom ab,
|
||
--prs_bedrijf b
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_v_aanwezigalg_ruimte
|
||
GROUP BY res_ruimte_key) rar,
|
||
alg_v_onrgoed_boom aob,
|
||
alg_district d,
|
||
prs_kostenplaats kp
|
||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_status_bo_key != 6 -- Niet AV
|
||
AND rra.res_rsv_artikel_dirtlevel = 0 -- Niet dirty
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
--AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key
|
||
--AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
--AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rar.res_ruimte_key(+)
|
||
AND COALESCE (rrr.alg_ruimte_key, rar.alg_ruimte_key) = aob.alg_ruimte_key
|
||
AND aob.alg_district_key = d.alg_district_key
|
||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||
AND fac_usrdata_code = TO_CHAR (d.alg_district_key))
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) x
|
||
LEFT JOIN fac_tracking resafm
|
||
ON resafm.fac_srtnotificatie_key = 80 -- RESAFM
|
||
AND x.res_rsv_ruimte_key = resafm.fac_tracking_refkey
|
||
GROUP BY x.alg_district_omschrijving,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving;
|
||
|
||
-- Actual regels en basis voor oa. te exporteren/bevriezen regels op de 10e van
|
||
-- de maand; voor de output geldt:
|
||
-- Actual regels en basis voor oa. te exporteren/bevriezen regels in nacht na
|
||
-- de 1e werkdag van de maand; voor de output geldt:
|
||
-- Dat deze de actual opdrachten toont (voor 1e ORDAFR).
|
||
-- Dat deze de actual reserveringen toont (voor 1e RESAFM).
|
||
-- Dat deze tot nacht na 1e werkdag van de maand alleen door Kien wijzigbaar
|
||
-- is.
|
||
/* Formatted on 24-2-2017 14:10:50 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW venr_v_actual_fact -- Tbv. FACT_EXPORT!
|
||
(
|
||
prs_afdeling_key,
|
||
maand,
|
||
klant_key,
|
||
klant,
|
||
leverancier_key,
|
||
leverancier,
|
||
cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
ref_key,
|
||
ref_id,
|
||
aantal,
|
||
kosten_afgerond,
|
||
kostenplaats
|
||
)
|
||
AS -- Vaste contractkosten over de ACTUAL termijn
|
||
SELECT b2a.prs_afdeling_key,
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'), -- Afgelopen maand deze maand factureren (achteraf)
|
||
x.alg_district_key klant_key,
|
||
x.alg_district_omschrijving klant,
|
||
b2a.prs_bedrijf_key leverancier_key,
|
||
b2a.prs_bedrijf_naam leverancier,
|
||
x.cnt_contract_key,
|
||
x.cnt_contract_nummer_intern, -- Uit afgelopen maand lopend contract, anders geen vaste kosten
|
||
x.cnt_contract_omschrijving,
|
||
TO_NUMBER (NULL) ref_key,
|
||
TO_CHAR (NULL) ref_id,
|
||
0 aantal,
|
||
ROUND (
|
||
DECODE (COALESCE (x.cnt_contract_termijnkosten, 0),
|
||
0, x.cnt_contract_kosten / 12,
|
||
x.cnt_contract_termijnkosten),
|
||
2)
|
||
kosten_afgerond,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
|
||
FROM (SELECT d.alg_district_key, d.alg_district_omschrijving, -- Klant
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
c.cnt_prs_bedrijf_key, -- Leverancier
|
||
c.cnt_contract_kosten,
|
||
c.cnt_contract_termijnkosten,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving
|
||
FROM cnt_v_aanwezigcontract c,
|
||
(SELECT cp.cnt_contract_key, g.alg_locatie_key
|
||
FROM cnt_contract_plaats cp, alg_gebouw g
|
||
WHERE cp.cnt_alg_plaats_code = 'G'
|
||
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
|
||
UNION ALL
|
||
SELECT cp.cnt_contract_key,
|
||
cp.cnt_alg_plaats_key alg_locatie_key
|
||
FROM cnt_contract_plaats cp
|
||
WHERE cp.cnt_alg_plaats_code = 'L') cl,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
prs_kostenplaats kp
|
||
WHERE EXISTS -- Gemarkeerd als vast contract
|
||
(SELECT 1
|
||
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
|
||
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
|
||
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
|
||
AND k.cnt_srtkenmerk_key = 81 -- Vast contract
|
||
AND kc.cnt_kenmerkcontract_waarde = '1' -- Aangevinkt
|
||
AND kc.cnt_contract_key = c.cnt_contract_key)
|
||
--AND c.cnt_contract_status = 0 -- NIET Gesloten
|
||
AND TRUNC (c.cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
|
||
AND c.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
|
||
AND NOT EXISTS -- Nog geen entry in eigen tabel
|
||
(SELECT 1
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 141 -- VasteKostenMnd
|
||
AND fac_usrdata_code = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') || '/' || c.cnt_contract_key)
|
||
AND c.cnt_contract_key = cl.cnt_contract_key
|
||
AND cl.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||
AND fac_usrdata_code = TO_CHAR (d.alg_district_key))
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) x
|
||
LEFT JOIN
|
||
( SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam,
|
||
MIN (p.prs_afdeling_key) prs_afdeling_key,
|
||
COUNT ( * ) aantal
|
||
FROM prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
|
||
WHERE b.prs_bedrijf_key = cp.prs_bedrijf_key(+)
|
||
AND cp.prs_perslid_key = p.prs_perslid_key(+)
|
||
GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam) b2a
|
||
ON x.cnt_prs_bedrijf_key = b2a.prs_bedrijf_key
|
||
UNION ALL -- Variabele kosten uit ACTUAL opdrachten waarvoor Kosten meerekenen=Ja
|
||
SELECT b2a.prs_afdeling_key,
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'), -- Voor 1e ORDAFR, deze maand factureren (achteraf)
|
||
x.alg_district_key klant_key,
|
||
x.alg_district_omschrijving klant,
|
||
b2a.prs_bedrijf_key leverancier_key,
|
||
COALESCE (b2a.prs_bedrijf_naam, pf.prs_perslid_naam_full) leverancier,
|
||
x.cnt_contract_key,
|
||
x.cnt_contract_nummer_intern,
|
||
x.cnt_contract_omschrijving,
|
||
x.mld_opdr_key ref_key,
|
||
TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr) ref_id,
|
||
1 aantal,
|
||
COALESCE (x.mld_opdr_kosten, 0) kosten_afgerond,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
|
||
FROM (SELECT d.alg_district_key, d.alg_district_omschrijving, -- Klant
|
||
o.mld_opdr_key,
|
||
o.mld_melding_key,
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
o.mld_statusopdr_key,
|
||
o.mld_uitvoerende_keys, -- Leverancier
|
||
o.mld_opdr_kosten,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving
|
||
FROM mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_melding m,
|
||
--prs_perslid p,
|
||
--prs_v_afdeling_boom ab,
|
||
--prs_bedrijf b,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
cnt_contract c,
|
||
prs_kostenplaats kp
|
||
WHERE o.mld_statusopdr_key NOT IN (1, 2, 7) -- Nog niet gereed!
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 1 -- Kosten meerekenen=Ja
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = -1 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
--AND m.prs_perslid_key = p.prs_perslid_key
|
||
--AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
--AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||
AND fac_usrdata_code = TO_CHAR (d.alg_district_key))
|
||
AND o.cnt_contract_key = c.cnt_contract_key(+)
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) x
|
||
LEFT JOIN fac_tracking ordafr
|
||
ON ordafr.fac_srtnotificatie_key = 68 -- ORDAFR
|
||
AND x.mld_opdr_key = ordafr.fac_tracking_refkey
|
||
LEFT JOIN ( SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam,
|
||
MIN (p.prs_afdeling_key) prs_afdeling_key,
|
||
COUNT ( * ) aantal
|
||
FROM prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
|
||
WHERE b.prs_bedrijf_key = cp.prs_bedrijf_key(+)
|
||
AND cp.prs_perslid_key = p.prs_perslid_key(+)
|
||
GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam) b2a
|
||
ON x.mld_uitvoerende_keys = b2a.prs_bedrijf_key
|
||
LEFT JOIN prs_v_perslid_fullnames_all pf
|
||
ON x.mld_uitvoerende_keys = pf.prs_perslid_key
|
||
WHERE ordafr.fac_tracking_datum < TRUNC (SYSDATE, 'mm')
|
||
UNION ALL
|
||
SELECT TO_NUMBER (NULL) prs_afdeling_key, -- TODO: prs_afdeling_key van App<70>l?
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'), -- Voor 1e RESAFM, deze maand factureren (achteraf)
|
||
x.alg_district_key klant_key,
|
||
x.alg_district_omschrijving klant,
|
||
12633 leverancier_key,
|
||
'App<EFBFBD>l' leverancier,
|
||
TO_NUMBER (NULL) cnt_contract_key,
|
||
TO_CHAR (NULL) cnt_contract_nummer_intern,
|
||
'RES/Banqueting' cnt_contract_omschrijving,
|
||
x.res_rsv_ruimte_key ref_key,
|
||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) ref_id,
|
||
1 aantal,
|
||
SUM (x.res_rsv_artikel_prijs) kosten_afgerond,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
|
||
FROM (SELECT d.alg_district_key, d.alg_district_omschrijving, -- Klant
|
||
rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
rra.res_status_bo_key,
|
||
rra.res_rsv_artikel_prijs,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
--prs_perslid p,
|
||
--prs_v_afdeling_boom ab,
|
||
--prs_bedrijf b
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_v_aanwezigalg_ruimte
|
||
GROUP BY res_ruimte_key) rar,
|
||
alg_v_onrgoed_boom aob,
|
||
alg_district d,
|
||
prs_kostenplaats kp
|
||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_status_bo_key != 6 -- Niet AV
|
||
AND rra.res_rsv_artikel_dirtlevel = 0 -- Niet dirty
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
--AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key
|
||
--AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
--AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rar.res_ruimte_key(+)
|
||
AND COALESCE (rrr.alg_ruimte_key, rar.alg_ruimte_key) = aob.alg_ruimte_key
|
||
AND aob.alg_district_key = d.alg_district_key
|
||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||
AND fac_usrdata_code = TO_CHAR (d.alg_district_key))
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) x
|
||
LEFT JOIN fac_tracking resafm
|
||
ON resafm.fac_srtnotificatie_key = 80 -- RESAFM
|
||
AND x.res_rsv_ruimte_key = resafm.fac_tracking_refkey
|
||
WHERE resafm.fac_tracking_datum < TRUNC (SYSDATE, 'mm')
|
||
GROUP BY x.alg_district_key,
|
||
x.alg_district_omschrijving,
|
||
x.res_rsv_ruimte_key,
|
||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr),
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving;
|
||
|
||
-- Te exporteren/bevriezen totalen over voorgaande maand (opdrachten en reserveringen).
|
||
CREATE OR REPLACE VIEW venr_v_rap_actual_fact_tot
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
maand,
|
||
fclt_f_klant,
|
||
fclt_f_leverancier,
|
||
contractnr,
|
||
beschrijving,
|
||
aantal,
|
||
kosten_afgerond,
|
||
fclt_x_kostenplaats
|
||
)
|
||
AS
|
||
SELECT prs_afdeling_key,
|
||
maand,
|
||
klant,
|
||
leverancier,
|
||
contractnr,
|
||
beschrijving,
|
||
SUM (aantal),
|
||
SUM (kosten_afgerond),
|
||
kostenplaats
|
||
FROM venr_v_actual_fact
|
||
GROUP BY prs_afdeling_key,
|
||
maand,
|
||
klant,
|
||
leverancier,
|
||
contractnr,
|
||
beschrijving,
|
||
kostenplaats;
|
||
|
||
-- Frozen regels en basis voor oa. de notificatie op de 11e van de maand; voor
|
||
-- de output geldt:
|
||
-- Frozen regels en basis voor oa. de notificatie in nacht na 1e werkdag van
|
||
-- de maand; voor de output geldt:
|
||
-- Dat deze de frozen opdrachten toont.
|
||
-- Dat deze de frozen reserveringen toont.
|
||
-- Nog niet in scope:
|
||
-- Dat de laatst bevroren maand per leverancier in nacht na 1e werkdag van de
|
||
-- maand wordt genotificeerd (via extra_key-principe) met daarin de kosten
|
||
-- gegroepeerd per klant/contract.
|
||
/* Formatted on 24-2-2017 15:00:00 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW venr_v_frozen_fact
|
||
(
|
||
prs_afdeling_key,
|
||
maand,
|
||
klant_key,
|
||
klant,
|
||
--leverancier_key,
|
||
extra_key, -- Moet zo heten!
|
||
leverancier,
|
||
cnt_contract_key,
|
||
contractnr,
|
||
beschrijving,
|
||
ref_key,
|
||
ref_id,
|
||
aantal,
|
||
kosten_afgerond,
|
||
kostenplaats
|
||
)
|
||
AS -- Vaste contractkosten over de FROZEN termijnen
|
||
SELECT b2a.prs_afdeling_key,
|
||
SUBSTR (x.fac_usrdata_code, 1, 7) maand, -- yyyy-mm
|
||
x.alg_district_key klant_key,
|
||
x.alg_district_omschrijving klant,
|
||
b2a.prs_bedrijf_key leverancier_key,
|
||
b2a.prs_bedrijf_naam leverancier,
|
||
x.cnt_contract_key,
|
||
x.cnt_contract_nummer_intern,
|
||
x.cnt_contract_omschrijving,
|
||
TO_NUMBER (NULL) ref_key,
|
||
TO_CHAR (NULL) ref_id,
|
||
0 aantal,
|
||
COALESCE (x.fac_usrdata_prijs, 0) kosten_afgerond,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
|
||
FROM (SELECT d.alg_district_key, d.alg_district_omschrijving, -- Klant
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
ud.fac_usrdata_code, -- Maand/Contract
|
||
c.cnt_prs_bedrijf_key, -- Leverancier
|
||
ud.fac_usrdata_prijs,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving
|
||
FROM fac_usrdata ud,
|
||
cnt_contract c,
|
||
--prs_bedrijf b,
|
||
alg_district d,
|
||
prs_kostenplaats kp
|
||
WHERE ud.fac_usrtab_key = 141 -- VasteKostenMnd
|
||
AND SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1) = TO_CHAR (c.cnt_contract_key)
|
||
--AND SUBSTR (ud.fac_usrdata_omschr, 1, INSTR (ud.fac_usrdata_omschr, '/') - 1) = TO_CHAR (b.prs_bedrijf_key)
|
||
AND SUBSTR (ud.fac_usrdata_omschr, INSTR (ud.fac_usrdata_omschr, '/') + 1) = TO_CHAR (d.alg_district_key)
|
||
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) x
|
||
LEFT JOIN
|
||
( SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam,
|
||
MIN (p.prs_afdeling_key) prs_afdeling_key,
|
||
COUNT ( * ) aantal
|
||
FROM prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
|
||
WHERE b.prs_bedrijf_key = cp.prs_bedrijf_key(+)
|
||
AND cp.prs_perslid_key = p.prs_perslid_key(+)
|
||
GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam) b2a
|
||
ON x.cnt_prs_bedrijf_key = b2a.prs_bedrijf_key
|
||
UNION ALL -- Variabele kosten uit FROZEN opdrachten (waarvoor Kosten meerekenen=Ja)
|
||
SELECT b2a.prs_afdeling_key,
|
||
x.mld_opdr_ordernr maand, -- yyyy-mm
|
||
x.alg_district_key klant_key,
|
||
x.alg_district_omschrijving klant,
|
||
b2a.prs_bedrijf_key leverancier_key,
|
||
COALESCE (b2a.prs_bedrijf_naam, pf.prs_perslid_naam_full) leverancier,
|
||
x.cnt_contract_key,
|
||
x.cnt_contract_nummer_intern,
|
||
x.cnt_contract_omschrijving,
|
||
x.mld_opdr_key ref_key,
|
||
TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr) ref_id,
|
||
1 aantal,
|
||
COALESCE (x.mld_opdr_kosten, 0) kosten_afgerond,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
|
||
FROM (SELECT d.alg_district_key, d.alg_district_omschrijving, -- Klant
|
||
o.mld_opdr_key,
|
||
o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr,
|
||
o.mld_opdr_ordernr,
|
||
o.mld_uitvoerende_keys, -- Leverancier
|
||
o.mld_opdr_kosten,
|
||
c.cnt_contract_key,
|
||
c.cnt_contract_nummer_intern,
|
||
c.cnt_contract_omschrijving,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
--prs_perslid p,
|
||
--prs_v_afdeling_boom ab,
|
||
--prs_bedrijf b,
|
||
alg_locatie l,
|
||
alg_district d,
|
||
cnt_contract c,
|
||
prs_kostenplaats kp
|
||
WHERE o.mld_statusopdr_key = 7
|
||
AND o.mld_opdr_ordernr IS NOT NULL
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
--AND m.prs_perslid_key = p.prs_perslid_key
|
||
--AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
--AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND o.cnt_contract_key = c.cnt_contract_key(+)
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) x
|
||
LEFT JOIN
|
||
( SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam,
|
||
MIN (p.prs_afdeling_key) prs_afdeling_key,
|
||
COUNT ( * ) aantal
|
||
FROM prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
|
||
WHERE b.prs_bedrijf_key = cp.prs_bedrijf_key(+)
|
||
AND cp.prs_perslid_key = p.prs_perslid_key(+)
|
||
GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam) b2a
|
||
ON x.mld_uitvoerende_keys = b2a.prs_bedrijf_key
|
||
LEFT JOIN
|
||
prs_v_perslid_fullnames_all pf
|
||
ON x.mld_uitvoerende_keys = pf.prs_perslid_key
|
||
UNION ALL
|
||
SELECT TO_NUMBER (NULL) prs_afdeling_key, -- TODO: prs_afdeling_key van App<70>l?
|
||
x.res_rsv_ruimte_ordernr maand, -- yyyy-mm
|
||
x.alg_district_key klant_key,
|
||
x.alg_district_omschrijving klant,
|
||
12633 leverancier_key,
|
||
'App<EFBFBD>l' leverancier,
|
||
TO_NUMBER (NULL) cnt_contract_key,
|
||
TO_CHAR (NULL) cnt_contract_nummer_intern,
|
||
'RES/Banqueting' cnt_contract_omschrijving,
|
||
x.res_rsv_ruimte_key ref_key,
|
||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) ref_id,
|
||
1 aantal,
|
||
SUM (x.res_rsv_artikel_prijs) kosten_afgerond,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
|
||
FROM (SELECT d.alg_district_key, d.alg_district_omschrijving, -- Klant
|
||
rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr,
|
||
rrr.res_rsv_ruimte_ordernr,
|
||
rra.res_rsv_artikel_prijs,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving
|
||
FROM res_rsv_ruimte rrr,
|
||
res_rsv_artikel rra,
|
||
res_artikel ra,
|
||
--prs_perslid p,
|
||
--prs_v_afdeling_boom ab,
|
||
--prs_bedrijf b
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_v_aanwezigalg_ruimte
|
||
GROUP BY res_ruimte_key) rar,
|
||
alg_v_onrgoed_boom aob,
|
||
alg_district d,
|
||
prs_kostenplaats kp
|
||
WHERE rrr.res_rsv_ruimte_ordernr IS NOT NULL
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_status_bo_key = 6 -- AV
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
--AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key
|
||
--AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
--AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
||
AND rro.res_ruimte_key = rar.res_ruimte_key(+)
|
||
AND COALESCE (rrr.alg_ruimte_key, rar.alg_ruimte_key) = aob.alg_ruimte_key
|
||
AND aob.alg_district_key = d.alg_district_key
|
||
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)) x
|
||
GROUP BY x.res_rsv_ruimte_ordernr,
|
||
x.alg_district_key,
|
||
x.alg_district_omschrijving,
|
||
x.res_rsv_ruimte_key,
|
||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr),
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving;
|
||
|
||
-- Geexporteerde/bevroren totalen over voorgaande maanden (opdrachten en reserveringen).
|
||
CREATE OR REPLACE VIEW venr_v_rap_frozen_fact_tot
|
||
(
|
||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||
fclt_f_maand,
|
||
fclt_f_klant,
|
||
fclt_f_leverancier,
|
||
contractnr,
|
||
beschrijving,
|
||
aantal,
|
||
kosten_afgerond,
|
||
fclt_x_kostenplaats
|
||
)
|
||
AS
|
||
SELECT prs_afdeling_key,
|
||
maand,
|
||
klant,
|
||
leverancier,
|
||
contractnr,
|
||
beschrijving,
|
||
SUM (aantal),
|
||
SUM (kosten_afgerond),
|
||
kostenplaats
|
||
FROM venr_v_frozen_fact
|
||
GROUP BY prs_afdeling_key,
|
||
maand,
|
||
klant,
|
||
leverancier,
|
||
contractnr,
|
||
beschrijving,
|
||
kostenplaats;
|
||
|
||
/* Formatted on 24-2-2017 16:48:43 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE venr_select_fact (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
-- Bevries vaste contractkosten in eigen tabel.
|
||
CURSOR c1
|
||
IS
|
||
SELECT '[' || TO_CHAR (cnt_contract_key) || '|' || contractnr || '] ' aanduiding,
|
||
maand, cnt_contract_key, leverancier_key, klant_key, kosten_afgerond
|
||
FROM venr_v_actual_fact
|
||
WHERE aantal = 0
|
||
ORDER BY 1;
|
||
|
||
-- Zet "kosten" opdrachten die voor de 1e zijn afgerond op AV.
|
||
CURSOR c2
|
||
IS
|
||
SELECT '[' || TO_CHAR (ref_key) || '|' || ref_id || '] ' aanduiding,
|
||
ref_key mld_opdr_key
|
||
FROM venr_v_actual_fact
|
||
WHERE COALESCE (beschrijving, 'X') NOT LIKE 'RES/%'
|
||
ORDER BY 1;
|
||
|
||
-- Zet "kosten" banqueting die voor de 1e zijn afgerond op AV.
|
||
CURSOR c3
|
||
IS
|
||
SELECT '[' || TO_CHAR (ref_key) || '|' || ref_id || '] ' aanduiding,
|
||
ref_key res_rsv_ruimte_key
|
||
FROM venr_v_actual_fact
|
||
WHERE beschrijving LIKE 'RES/%'
|
||
ORDER BY 1;
|
||
|
||
-- Zet "inclusief" opdrachten die voor de 1e zijn gesloten op AV.
|
||
-- Afgerond/kosten meerekenen en geen dispuut
|
||
-- Afgemeld/kosten niet meerekenen, geen offerteaanvraag en geen dispuut
|
||
-- Afgerond/kosten niet meerekenen en geen dispuut (= geaccepteerde offerteaanvragen)
|
||
/*
|
||
CURSOR c4
|
||
IS
|
||
SELECT o.mld_opdr_key
|
||
FROM mld_opdr o, mld_typeopdr ot, mld_melding m, alg_locatie l, alg_district d
|
||
WHERE o.mld_statusopdr_key = 9 -- KV
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 1 -- Kosten meerekenen=Ja
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = -1 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
--AND m.prs_perslid_key = p.prs_perslid_key
|
||
--AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
--AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||
AND fac_usrdata_code = TO_CHAR (d.alg_district_key))
|
||
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
|
||
UNION ALL
|
||
SELECT o.mld_opdr_key
|
||
FROM mld_opdr o, mld_typeopdr ot, mld_melding m, alg_locatie l, alg_district d
|
||
WHERE o.mld_statusopdr_key = 6 -- TV
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 0 -- Kosten meerekenen=Nee
|
||
AND ot.mld_typeopdr_key != 168 -- Offerteaanvraag
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = -1 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
--AND m.prs_perslid_key = p.prs_perslid_key
|
||
--AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
--AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||
AND fac_usrdata_code = TO_CHAR (d.alg_district_key))
|
||
AND fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
|
||
UNION ALL
|
||
SELECT o.mld_opdr_key
|
||
FROM mld_opdr o, mld_typeopdr ot, mld_melding m, alg_locatie l, alg_district d
|
||
WHERE o.mld_statusopdr_key = 9 -- KV (ooit met kosten en Offerteaanvragen)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 0 -- Kosten meerekenen=Nee
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = -1 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
--AND m.prs_perslid_key = p.prs_perslid_key
|
||
--AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
--AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||
AND fac_usrdata_code = TO_CHAR (d.alg_district_key))
|
||
AND (fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
|
||
OR fac.gettrackingdate ('ORDOOK', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm'))
|
||
ORDER BY 1;
|
||
*/
|
||
CURSOR c4
|
||
IS
|
||
SELECT o.mld_opdr_key
|
||
FROM mld_opdr o, mld_typeopdr ot, mld_melding m, alg_locatie l, alg_district d
|
||
WHERE o.mld_statusopdr_key = 6 -- TV
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 0 -- Kosten meerekenen=Nee
|
||
AND ot.mld_typeopdr_key != 168 -- Offerteaanvraag
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = -1 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
--AND m.prs_perslid_key = p.prs_perslid_key
|
||
--AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
--AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||
AND fac_usrdata_code = TO_CHAR (d.alg_district_key))
|
||
AND fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
|
||
UNION ALL
|
||
SELECT o.mld_opdr_key
|
||
FROM mld_opdr o, mld_typeopdr ot, mld_melding m, alg_locatie l, alg_district d
|
||
WHERE o.mld_statusopdr_key = 9 -- KV (ooit met kosten en Offerteaanvragen)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 0 -- Kosten meerekenen=Nee
|
||
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
|
||
(SELECT 1
|
||
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
|
||
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = -1 -- Dispuut
|
||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
--AND m.prs_perslid_key = p.prs_perslid_key
|
||
--AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
--AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||
AND fac_usrdata_code = TO_CHAR (d.alg_district_key))
|
||
AND (fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
|
||
OR fac.gettrackingdate ('ORDOOK', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm'))
|
||
ORDER BY 1;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_holiday NUMBER;
|
||
v_count NUMBER (10);
|
||
BEGIN
|
||
-- In nacht na 1e werkdag van de maand (via scheduled task):
|
||
-- 1. Bevries vaste contractkosten in eigen tabel.
|
||
-- 2. Zet "kosten" opdrachten die voor de 1e zijn afgerond op AV.
|
||
-- 3. Zet "kosten" banqueting die voor de 1e zijn afgemeld op AV.
|
||
-- 4. Zet "inclusief" opdrachten die voor de 1e zijn gesloten op AV. => TODO???
|
||
-- x. Doe niets met afgewezen/geannuleerde opdrachten?
|
||
SELECT COUNT ( * )
|
||
INTO v_holiday
|
||
FROM mld_vrije_dagen
|
||
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1);
|
||
|
||
-- LET OP: FACT-export draait dagelijks na middernacht (begin van dag) en
|
||
-- de "freeze" wordt maandelijks alleen in nacht na 1e werkdag van de maand
|
||
-- uitgevoerd.
|
||
-- IF nacht na 1e werkdag van de maand (<28>n geen weekend <20>n geen vrije dag)!
|
||
-- count_work_days (d1,d2) bepaalt het #werkdagen van d1 tot d2 (als d1=d2,
|
||
-- dan return 0); daarom bepalen tov. laatste dag van vorige maand!
|
||
IF FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1
|
||
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
|
||
AND v_holiday = 0
|
||
THEN
|
||
v_count := 0;
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout toevoegen vaste contractkosten';
|
||
|
||
INSERT INTO fac_usrdata (fac_usrtab_key,
|
||
fac_usrdata_code,
|
||
fac_usrdata_omschr,
|
||
fac_usrdata_aanmaak,
|
||
fac_usrdata_vervaldatum,
|
||
fac_usrdata_prijs)
|
||
VALUES (141, -- VasteKostenMnd
|
||
rec.maand || '/' || TO_CHAR (rec.cnt_contract_key),
|
||
TO_CHAR (rec.leverancier_key) || '/' || rec.klant_key,
|
||
SYSDATE,
|
||
NULL,
|
||
rec.kosten_afgerond);
|
||
|
||
v_count := v_count + 1;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'Vaste contractkosten');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#Vaste contractkosten bevroren: ' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
|
||
v_count := 0;
|
||
|
||
FOR rec IN c2
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout bijwerken ordernummer (kosten opdrachten).';
|
||
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_ordernr = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
||
WHERE mld_opdr_key = rec.mld_opdr_key;
|
||
|
||
v_errormsg := 'Fout verwerken kosten-mld_opdr.';
|
||
|
||
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 4);
|
||
|
||
v_count := v_count + 1;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'Kosten opdrachten');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#Kosten opdrachten bevroren: ' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
|
||
v_count := 0;
|
||
|
||
FOR rec IN c3
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout bijwerken ordernummer (kosten banqueting).';
|
||
|
||
UPDATE res_rsv_ruimte
|
||
SET res_rsv_ruimte_ordernr = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||
|
||
v_errormsg := 'Fout verwerken res_rsv_artikel';
|
||
|
||
UPDATE res_rsv_artikel
|
||
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
|
||
WHERE res_rsv_artikel_dirtlevel = 0
|
||
AND res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||
|
||
v_errormsg := 'Fout tracken res_rsv_ruimte';
|
||
|
||
fac.trackaction ('RESVER',
|
||
rec.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
'Banqueting verwerkt');
|
||
|
||
v_count := v_count + 1;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'Kosten banqueting');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#Kosten banqueting bevroren: ' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
|
||
v_count := 0;
|
||
|
||
FOR rec IN c4
|
||
LOOP
|
||
v_errormsg := 'Fout verwerken inclusief-mld_opdr.';
|
||
|
||
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 4);
|
||
|
||
v_count := v_count + 1;
|
||
|
||
COMMIT;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#Inclusief opdrachten bevroren: ' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', v_errormsg, 'Proces FACT_EXPORT afgebroken!');
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
-- Koppeling om persoonsgegevens in te lezen vanuit Synergy van Yask
|
||
CREATE OR REPLACE PROCEDURE venr_import_perslid_mut (p_import_key IN NUMBER)
|
||
AS
|
||
v_seq_of_columns VARCHAR(255);
|
||
BEGIN
|
||
-- v_alg_locatie_code 1
|
||
-- v_alg_gebouw_code 2
|
||
-- v_alg_verdieping_volgnr 3
|
||
-- v_alg_ruimte_nr 4
|
||
-- v_prs_werkplek_volgnr 5
|
||
-- v_prs_werkplek_omschrijving 6
|
||
-- v_prs_afdeling_naam 7
|
||
-- v_prs_perslid_naam 8
|
||
-- v_prs_perslid_tussenvoegsel 9
|
||
-- v_prs_perslid_voornaam 10
|
||
-- v_prs_perslid_voorletters 11
|
||
-- v_prs_perslid_partner_naam 12
|
||
-- v_prs_perslid_partner_tussenv 13
|
||
-- v_prs_naamgebruik_code 14 0 (default) perslid_naam en perslid_tussenvoegsel worden gebruikt
|
||
-- 1 personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
|
||
-- 2 personen die de geboortenaam van de partner willen gebruiken
|
||
-- 3 personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
|
||
-- v_prs_perslid_geslacht 15 Gebruik 'man', 'm' of 1 voor man en 'vrouw', 'v' of 0 voor vrouw case insensitive geen default
|
||
-- v_prs_perslid_telefoonnr 16
|
||
-- v_prs_perslid_mobiel 17
|
||
-- v_prs_perslid_email 18
|
||
-- v_prs_perslid_dienstverband 19
|
||
-- v_prs_perslid_nr 20
|
||
-- v_prs_srtperslid_omschrijving 21
|
||
-- v_prs_perslid_oslogin 22
|
||
-- v_prs_perslid_wachtwoord 23
|
||
-- v_prs_perslid_titel 24
|
||
-- v_prs_perslid_apikey 25
|
||
-- v_dummy 26
|
||
-- v_prs_kenmerk1 27
|
||
-- v_prs_kenmerk2 28
|
||
-- v_prs_kenmerk3 29
|
||
-- v_prs_kenmerk4 30
|
||
-- v_prs_kenmerk5 31
|
||
-- v_prs_kenmerk6 32
|
||
-- v_prs_kenmerk7 33
|
||
-- v_prs_kenmerk8 34
|
||
-- v_prs_kenmerk9 35
|
||
-- v_prs_kenmerk10 36
|
||
-- v_prs_kenmerk11 37
|
||
-- v_prs_kenmerk12 38
|
||
-- v_prs_kenmerk13 39
|
||
-- v_prs_kenmerk14 40
|
||
-- v_prs_kenmerk15 41
|
||
-- v_prs_kenmerk16 42
|
||
-- v_prs_kenmerk17 43
|
||
-- v_prs_kenmerk18 44
|
||
-- v_prs_kenmerk19 45
|
||
-- v_prs_kenmerk20 46
|
||
-- Voeg een lege regel toe anders wordt de eerste persoon geskipped.
|
||
INSERT INTO fac_imp_file (fac_imp_file_line, fac_imp_file_index, fac_import_key)
|
||
VALUES ('Header', 0, p_import_key);
|
||
v_seq_of_columns := '0;0;0;0;0;0;9;4;3;2;0;0;0;0;0;10;11;8;0;1;5;8;0;0;0;0;6;7;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0';
|
||
prs.import_perslid(p_import_key, v_seq_of_columns, '%');
|
||
|
||
UPDATE fac_imp_perslid
|
||
SET prs_perslid_oslogin = UPPER(prs_perslid_oslogin),
|
||
prs_afdeling_naam = 'YASK';
|
||
|
||
DELETE fac_imp_perslid
|
||
WHERE prs_perslid_oslogin IS NULL;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE venr_update_perslid_mut (p_import_key IN NUMBER)
|
||
IS
|
||
|
||
CURSOR c IS
|
||
SELECT prs_perslid_key
|
||
FROM prs_perslid p
|
||
WHERE prs_afdeling_key = 1861 -- Yask
|
||
AND NOT EXISTS
|
||
(SELECT prs_perslidwerkplek_key
|
||
FROM prs_v_perslidwerkplek_gegevens pwp
|
||
WHERE pwp.prs_perslid_key = p.prs_perslid_key
|
||
AND pwp.alg_locatie_key = 1421 -- Yask
|
||
);
|
||
|
||
CURSOR c_del IS
|
||
SELECT prs_perslid_key
|
||
FROM prs_perslid p
|
||
WHERE prs_afdeling_key = 1861 -- Yask
|
||
AND SUBSTR (COALESCE (prs_perslid_oslogin, 'Que'), 1, 1) <> '_'
|
||
AND prs_perslid_verwijder IS NULL -- Persoon was al niet verwijderd.
|
||
AND COALESCE (prs_perslid_login, SYSDATE - 300) < SYSDATE - 60 -- Persoon is twee maanden niet ingelogd geweest
|
||
AND NOT EXISTS
|
||
(SELECT i.prs_perslid_oslogin
|
||
FROM fac_imp_perslid i
|
||
WHERE i.prs_perslid_oslogin = p.prs_perslid_oslogin);
|
||
|
||
v_count NUMBER;
|
||
BEGIN
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM fac_imp_perslid;
|
||
|
||
prs.update_perslid (p_import_key, 'LOGIN', NULL);
|
||
|
||
-- autorisatiegroep koppelen 1501 Yask medewerker meldingen
|
||
INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key)
|
||
SELECT prs_perslid_key, 1501
|
||
FROM prs_perslid p
|
||
WHERE prs_afdeling_key = 1861
|
||
AND NOT EXISTS
|
||
(SELECT fac_gebruikersgroep_key
|
||
FROM fac_gebruikersgroep gg
|
||
WHERE gg.prs_perslid_key = p.prs_perslid_key
|
||
AND fac_groep_key = 1501);
|
||
|
||
DELETE FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 1
|
||
AND fac_gebruikersgroep_aanmaak > SYSDATE - 1 / 24;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
prs.movetoruimte (rec.prs_perslid_key,
|
||
15421, -- HTC41
|
||
NULL,
|
||
1);
|
||
END LOOP;
|
||
|
||
-- Oppassen dat we geen leeg bestand ontvangen hebben.
|
||
IF v_count > 100
|
||
THEN
|
||
FOR rec IN c_del
|
||
LOOP
|
||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
END LOOP;
|
||
END IF;
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
-- Dummy export NACHTWERK!
|
||
-- VENR#60140: Toewijzen Manpower-WP (nav. zelfregistratie).
|
||
-- VENR#60726: Verwijderen inactieve accounts (3 maanden niet ingelogd).
|
||
CREATE OR REPLACE PROCEDURE venr_select_nachtwerk (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
c_alg_ruimte_key NUMBER (10) := 15388; -- MPG-DIE-16|DH-16|0|001
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER;
|
||
BEGIN
|
||
v_count := 0;
|
||
|
||
FOR rec
|
||
IN ( SELECT p.prs_perslid_key, p.prs_perslid_oslogin,
|
||
COUNT (vp.prs_perslid_key) aant
|
||
FROM prs_v_aanwezigperslid p, prs_v_verplichting_keys vp
|
||
WHERE TO_CHAR (SYSDATE, 'dd') = '01' -- Op 1e van de maand >90d niet ingelogd!
|
||
AND p.prs_perslid_login < TRUNC (ADD_MONTHS (SYSDATE, -3), 'mm')
|
||
AND p.prs_perslid_key = vp.prs_perslid_key(+) -- Actuele verplichtingen?
|
||
GROUP BY p.prs_perslid_key, p.prs_perslid_oslogin
|
||
ORDER BY 1)
|
||
LOOP
|
||
BEGIN
|
||
IF rec.aant = 0
|
||
THEN
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_verwijder = SYSDATE
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
v_count := v_count + 1;
|
||
ELSE
|
||
fac.writelog (p_applname, 'I',
|
||
'[' || rec.prs_perslid_oslogin || ']/#Verplichtingen: ' || TO_CHAR (rec.aant),
|
||
'Persoon niet ge<67>nactiveerd');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN -- Kennelijk heeft persoon toch nog ernstige verplichtingen!
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E',
|
||
'[' || rec.prs_perslid_oslogin || ']/' || v_errormsg,
|
||
'Fout inactiveren persoon');
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#Personen ge<67>nactiveerd:' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
|
||
v_count := 0;
|
||
|
||
FOR rec
|
||
IN ( SELECT p.prs_perslid_key, p.prs_perslid_oslogin,
|
||
COUNT (*) aant,
|
||
MAX (DECODE (l.alg_district_key, 361, -1, 1)) alg_district_key
|
||
FROM prs_v_aanwezigperslid p,
|
||
prs_v_afdeling_boom ab,
|
||
prs_perslidwerkplek pwp,
|
||
prs_werkplek wp,
|
||
alg_v_allonrgoed_gegevens aog,
|
||
alg_locatie l
|
||
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key1 = 2241 -- Manpowergroup
|
||
AND p.prs_perslid_key = pwp.prs_perslid_key(+)
|
||
AND pwp.prs_werkplek_key = wp.prs_werkplek_key(+)
|
||
AND wp.prs_alg_ruimte_key = aog.alg_ruimte_key(+)
|
||
AND aog.alg_locatie_key = l.alg_locatie_key(+)
|
||
AND EXISTS (SELECT 1 FROM alg_v_aanwezigruimte WHERE alg_ruimte_key = c_alg_ruimte_key)
|
||
GROUP BY p.prs_perslid_key, p.prs_perslid_oslogin
|
||
ORDER BY 1)
|
||
LOOP
|
||
BEGIN
|
||
IF rec.alg_district_key > 0 -- Nog geen WP onder District=Manpower?
|
||
THEN
|
||
PRS.movetoruimte (rec.prs_perslid_key, c_alg_ruimte_key, 'D', 1);
|
||
|
||
v_count := v_count + 1;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E',
|
||
'[' || rec.prs_perslid_oslogin || ']/' || v_errormsg,
|
||
'Fout toewijzen MPG-WP');
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', '#Manpower-WP toegewezen:' || TO_CHAR (v_count), '');
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_applname, 'E', v_errormsg, 'Proces NACHTWERK afgebroken!');
|
||
END venr_select_nachtwerk;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW venr_v_prs_autclient
|
||
AS
|
||
SELECT p.prs_perslid_key,
|
||
pf.prs_perslid_naam_full naam,
|
||
p.prs_perslid_email email,
|
||
p.prs_perslid_verwijder,
|
||
aut_client_perslid_device_name device,
|
||
aut_client_perslid_aanmaak registratiedatum
|
||
FROM AUT_CLIENT_PERSLID acp,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE acp.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
-- VENR#65754: Opdrachtgegevens incl. kenmerken (afgeleid van mld_v_udr_opdrachtkenmerk_cnd)
|
||
CREATE OR REPLACE VIEW venr_v_udr_opdrachten
|
||
(
|
||
opdracht_key,
|
||
opdracht_nummer,
|
||
opdracht_regio,
|
||
opdracht_district,
|
||
opdracht_locatie_code,
|
||
opdracht_locatie,
|
||
opdracht_locatieplaats,
|
||
fclt_3d_locatie_key,
|
||
opdracht_gebouwcode,
|
||
opdracht_gebouw,
|
||
opdracht_verdieping,
|
||
opdracht_ruimtenr,
|
||
opdracht_ruimte,
|
||
opdracht_kostenplaats,
|
||
opdracht_kostenplaats_oms,
|
||
melding_key,
|
||
opdracht_type,
|
||
opdracht_volgnummer,
|
||
opdracht_status,
|
||
opdracht_duur_gepland,
|
||
opdracht_datum,
|
||
opdracht_einddatum,
|
||
opdracht_plandatum,
|
||
opdracht_acceptdatum,
|
||
opdracht_afgemeld,
|
||
opdracht_doorlooptijd,
|
||
opdracht_accepttijd,
|
||
opdracht_omschrijving,
|
||
opdracht_opmerking,
|
||
opdracht_uitvoerende,
|
||
opdracht_uitvoerende_contact,
|
||
opdracht_behandelaar,
|
||
opdracht_contract,
|
||
opdracht_contract_versie,
|
||
opdracht_contactpersoon,
|
||
opdracht_uren,
|
||
opdracht_correctie,
|
||
opdracht_materiaal,
|
||
opdracht_uurtarief,
|
||
opdracht_kosten,
|
||
opdracht_parent_key,
|
||
opdracht_parent_nummer,
|
||
opdracht_parent_volgnummer,
|
||
opdracht_verstrektdatum,
|
||
opdracht_lev_doorloopdagen,
|
||
opdracht_lev_doorloopuren,
|
||
offerte_ontv,
|
||
offerte_ref,
|
||
inkooporder,
|
||
refnr_lev,
|
||
klant,
|
||
naam_tekenbevoegde,
|
||
toegekend_pasnr,
|
||
personeelsnr,
|
||
id_gezien,
|
||
kostencode
|
||
)
|
||
AS
|
||
SELECT o.opdracht_key,
|
||
o.opdracht_nummer,
|
||
o.opdracht_regio,
|
||
o.opdracht_district,
|
||
o.opdracht_locatie_code,
|
||
o.opdracht_locatie,
|
||
o.opdracht_locatieplaats,
|
||
o.fclt_3d_locatie_key,
|
||
o.opdracht_gebouwcode,
|
||
o.opdracht_gebouw,
|
||
o.opdracht_verdieping,
|
||
o.opdracht_ruimtenr,
|
||
o.opdracht_ruimte,
|
||
o.opdracht_kostenplaats,
|
||
o.opdracht_kostenplaats_oms,
|
||
o.melding_key,
|
||
o.opdracht_type,
|
||
o.opdracht_volgnummer,
|
||
o.opdracht_status,
|
||
o.opdracht_duur_gepland,
|
||
o.opdracht_datum,
|
||
o.opdracht_einddatum,
|
||
o.opdracht_plandatum,
|
||
o.opdracht_acceptdatum,
|
||
o.opdracht_afgemeld,
|
||
o.opdracht_doorlooptijd,
|
||
o.opdracht_accepttijd,
|
||
o.opdracht_omschrijving,
|
||
o.opdracht_opmerking,
|
||
o.opdracht_uitvoerende,
|
||
o.opdracht_uitvoerende_contact,
|
||
o.opdracht_behandelaar,
|
||
o.opdracht_contract,
|
||
o.opdracht_contract_versie,
|
||
o.opdracht_contactpersoon,
|
||
o.opdracht_uren,
|
||
o.opdracht_correctie,
|
||
o.opdracht_materiaal,
|
||
o.opdracht_uurtarief,
|
||
o.opdracht_kosten,
|
||
o.opdracht_parent_key,
|
||
o.opdracht_parent_nummer,
|
||
o.opdracht_parent_volgnummer,
|
||
o.opdracht_verstrektdatum,
|
||
o.opdracht_lev_doorloopdagen,
|
||
o.opdracht_lev_doorloopuren,
|
||
ko1.mld_kenmerkopdr_waarde,
|
||
ko2.mld_kenmerkopdr_waarde,
|
||
ko3.mld_kenmerkopdr_waarde,
|
||
ko4.mld_kenmerkopdr_waarde,
|
||
ko5.fac_usrdata_omschr,
|
||
ko6.fac_usrdata_omschr,
|
||
ko7.mld_kenmerkopdr_waarde,
|
||
ko8.mld_kenmerkopdr_waarde,
|
||
ko9.fac_usrdata_omschr,
|
||
ko10.mld_kenmerkopdr_waarde
|
||
FROM mld_v_udr_opdracht o,
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 2
|
||
AND mld_kenmerk_key = ko.mld_kenmerk_key)) ko1, -- Offerte ontvangen
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 3
|
||
AND mld_kenmerk_key = ko.mld_kenmerk_key)) ko2, -- Offerte referentie
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 101
|
||
AND mld_kenmerk_key = ko.mld_kenmerk_key)) ko3, -- Inkooporder
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 141
|
||
AND mld_kenmerk_key = ko.mld_kenmerk_key)) ko4, -- Refnr. Leverancier
|
||
(SELECT ko.mld_opdr_key, ud.fac_usrdata_omschr
|
||
FROM mld_v_aanwezigkenmerkopdr ko, fac_usrdata ud
|
||
WHERE fac.safe_to_number (ko.mld_kenmerkopdr_waarde) = ud.fac_usrdata_key
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 301
|
||
AND mld_kenmerk_key = ko.mld_kenmerk_key)) ko5, -- Klant(R)
|
||
(SELECT ko.mld_opdr_key, ud.fac_usrdata_omschr
|
||
FROM mld_v_aanwezigkenmerkopdr ko, fac_usrdata ud
|
||
WHERE fac.safe_to_number (ko.mld_kenmerkopdr_waarde) = ud.fac_usrdata_key
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 521
|
||
AND mld_kenmerk_key = ko.mld_kenmerk_key)) ko6, -- Naam tekenbevoegd Pivot Park(R)
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 541
|
||
AND mld_kenmerk_key = ko.mld_kenmerk_key)) ko7, -- Toegekend XS pasnummer
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 542
|
||
AND mld_kenmerk_key = ko.mld_kenmerk_key)) ko8, -- Personeelsnummer
|
||
(SELECT ko.mld_opdr_key, ud.fac_usrdata_omschr
|
||
FROM mld_v_aanwezigkenmerkopdr ko, fac_usrdata ud
|
||
WHERE fac.safe_to_number (ko.mld_kenmerkopdr_waarde) = ud.fac_usrdata_key
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 561
|
||
AND mld_kenmerk_key = ko.mld_kenmerk_key)) ko9, -- ID gezien(R)
|
||
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
|
||
FROM mld_v_aanwezigkenmerkopdr ko
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 1601
|
||
AND mld_kenmerk_key = ko.mld_kenmerk_key)) ko10 -- Kostencode
|
||
WHERE fac.gettrackingdate ('ORDNEW', o.opdracht_key) > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND o.opdracht_key = ko1.mld_opdr_key(+)
|
||
AND o.opdracht_key = ko2.mld_opdr_key(+)
|
||
AND o.opdracht_key = ko3.mld_opdr_key(+)
|
||
AND o.opdracht_key = ko4.mld_opdr_key(+)
|
||
AND o.opdracht_key = ko5.mld_opdr_key(+)
|
||
AND o.opdracht_key = ko6.mld_opdr_key(+)
|
||
AND o.opdracht_key = ko7.mld_opdr_key(+)
|
||
AND o.opdracht_key = ko8.mld_opdr_key(+)
|
||
AND o.opdracht_key = ko9.mld_opdr_key(+)
|
||
AND o.opdracht_key = ko10.mld_opdr_key(+);
|
||
|
||
------ payload end ------
|
||
|
||
SET DEFINE OFF
|
||
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||
/
|
||
|
||
COMMIT;
|
||
SET ECHO OFF
|
||
SPOOL OFF
|
||
SET DEFINE ON
|
||
PROMPT Logfile of this upgrade is: &fcltlogfile
|