Files
Customer/VENR/venr.sql
Maarten van der Heide 0745d4317c VENR#77885 NACHTWERK-taak/Bugfix onterecht proberen te verwijderen van personen
svn path=/Customer/trunk/; revision=60146
2023-04-21 14:25:48 +00:00

4266 lines
199 KiB
MySQL
Raw Blame History

--
-- $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;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
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 p.prs_perslid_key
FROM prs_perslid p
WHERE p.prs_afdeling_key = 1861 -- YASK
AND (NOT EXISTS -- Nog geen WP op YASK-locatie
(SELECT 1
FROM prs_v_perslidwerkplek_gegevens pwp
WHERE pwp.alg_locatie_key = 1421 -- YASK
AND pwp.prs_perslid_key = p.prs_perslid_key)
OR EXISTS -- Of WP in te laten vervallen YASK HTC 5-gebouw (waarna deze EXISTS kan worden verwijderd)
(SELECT 1
FROM prs_v_perslidwerkplek_gegevens pwp
WHERE pwp.alg_gebouw_key = 14881 -- YASK HTC 5
AND pwp.prs_perslid_key = p.prs_perslid_key));
CURSOR c_del
IS
SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE p.prs_perslid_verwijder IS NULL -- Persoon niet verwijderd
AND p.prs_afdeling_key = 1861 -- YASK
AND SUBSTR (COALESCE (p.prs_perslid_oslogin, 'Que'), 1, 1) <> '_'
AND COALESCE (p.prs_perslid_login, SYSDATE - 300) < SYSDATE - 60 -- Persoon 2 maanden niet ingelogd geweest
AND NOT EXISTS
(SELECT 1
FROM fac_imp_perslid
WHERE 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);
-- Toekennen autorisatiegroep 1501=2. Yask_Default_MLD_BES
INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key)
SELECT p.prs_perslid_key, 1501
FROM prs_perslid p
WHERE p.prs_perslid_verwijder IS NULL -- Persoon niet verwijderd
AND p.prs_afdeling_key = 1861 -- YASK
AND NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 1501
AND prs_perslid_key = p.prs_perslid_key);
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,
20561, -- VENR#67822: YASK HTC 05 (verdieping 2, ruimte 2.001)
'L', -- VENR#67822: Evt. andere WP(s) op Locatie verwijderen
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 p.prs_perslid_key > 10 -- Voor de zekerheid!
AND p.prs_perslid_apikey IS NULL
AND BITAND (p.prs_perslid_flags, 32) = 0 -- Bitje 6 is 0, dus verwijderbaar!
AND 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).
-- VENR#69955: Uitbreiden met de SLA-velden van de bovenliggende melding + (sub)productgroep.
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,
accept_sla_dagen,
accept_sla_uren,
uitvoering_sla_dagen,
uitvoering_sla_uren,
afspraak_sla_dagen,
afspraak_sla_uren,
accept_sla_optijd,
uitvoering_sla_optijd,
afspraak_sla_optijd,
productgroep,
subproductgroep
)
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,
m.accept_sla_dagen,
m.accept_sla_uren,
m.uitvoering_sla_dagen,
m.uitvoering_sla_uren,
m.afspraak_sla_dagen,
m.afspraak_sla_uren,
m.accept_sla_optijd,
m.uitvoering_sla_optijd,
m.afspraak_sla_optijd,
m.productgroep,
m.subproductgroep
FROM mld_v_udr_opdracht o,
mld_v_udr_melding m,
(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, -24), 'yyyy')
AND o.melding_key = m.melding_key
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(+);
-- VENR#67915: Thema WP-bezetting met andere beschikbaar-kleur per catalogus.
-- waarde1: Voor hele dagen: Vrij(0) of Bezet (3)
-- waarde: Voor halve dagen: Vrij(0), Ochtendbezet(1), MiddagBezet(2), Helemaalbezet(3)
-- waarde3: Voor tellen: Het aantal reservering op de dag, met 0 is dus Vrij
CREATE OR REPLACE VIEW venr_v_thema_deel_res_datum
AS
WITH datums AS ( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 42)
SELECT datum fclt_f_datum,
ins_deel_key,
MIN (res_rsv_deel_van) min_van,
MAX (res_rsv_deel_tot) max_tot,
CASE
WHEN MAX (res_rsv_deel_tot) IS NULL
THEN DECODE (res_discipline_key, 2061, 5, 2062, 6, 2063, 7, 2064, 8, 4) -- Werkplekken 2061=HR, 2062=Finance, 2063=Support, 2064=Servicedesk en 1781=Yask!
ELSE 3 -- Hele dag bezet
END
waarde1,
CASE
WHEN MAX (res_rsv_deel_tot) IS NULL
THEN DECODE (res_discipline_key, 2061, 5, 2062, 6, 2063, 7, 2064, 8, 4) -- Werkplekken 2061=HR, 2062=Finance, 2063=Support, 2064=Servicedesk en 1781=Yask!
WHEN TO_CHAR (MAX (res_rsv_deel_tot), 'HH24') <= 13
THEN 1 -- Ochtend
WHEN TO_CHAR (MIN (res_rsv_deel_van), 'HH24') >= 12
THEN 2 -- Middag
ELSE 3 -- Hele dag bezet
END
waarde,
COUNT (res_rsv_deel_tot) -- Aantal reservering deze dag
waarde3
FROM (SELECT datums.datum, res_ins_deel_key ins_deel_key, res_rsv_deel_van, res_rsv_deel_tot, res_discipline_key
FROM res_v_aanwezigdeel r,
ins_deel d,
datums,
(SELECT datum, res_deel_key, res_rsv_deel_van, res_rsv_deel_tot
FROM datums, res_v_aanwezigrsv_deel rrd
WHERE res_rsv_deel_van > TRUNC(SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
AND datum + 1 >= res_rsv_deel_van
AND datum < res_rsv_deel_tot)
blokkerend -- Vandaag en nog niet afgelopen
WHERE r.res_ins_deel_key = d.ins_deel_key
AND datums.datum = blokkerend.datum(+)
AND r.res_deel_key = blokkerend.res_deel_key(+)
AND (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > datums.datum))
GROUP BY datum, ins_deel_key, res_discipline_key
ORDER BY datum, ins_deel_key;
CREATE OR REPLACE VIEW venr_v_kosten_stedin
AS
SELECT m.mld_melding_key,
m.mld_melding_datum,
COALESCE(aog.alg_plaatsaanduiding, l.alg_locatie_code) plaatsaanduiding,
m.mld_melding_onderwerp,
m.mld_melding_omschrijving,
pf.prs_perslid_naam_full,
s.mld_statuses_omschrijving,
mld_melding_einddatum,
mld_melding_einddatum_std,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding kw, fac_usrdata ud
WHERE kw.mld_melding_key = m.mld_melding_key
AND kw.mld_kenmerk_key IN (4881, 4941)
AND FAC.safe_to_number (mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key) hygdienst,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding kw, fac_usrdata ud
WHERE kw.mld_melding_key = m.mld_melding_key
AND kw.mld_kenmerk_key IN (4882, 4942)
AND FAC.safe_to_number (mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key) bedrijf,
(SELECT REPLACE(mld_kenmerkmelding_waarde, '.', ',')
FROM mld_kenmerkmelding kw
WHERE kw.mld_melding_key = m.mld_melding_key
AND kw.mld_kenmerk_key IN (4883, 4961)) inkoop,
(SELECT REPLACE(mld_kenmerkmelding_waarde, '.', ',')
FROM mld_kenmerkmelding kw
WHERE kw.mld_melding_key = m.mld_melding_key
AND kw.mld_kenmerk_key IN (4884, 4962)) verkoop,
(SELECT mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding kw
WHERE kw.mld_melding_key = m.mld_melding_key
AND kw.mld_kenmerk_key IN (4886, 4964)) inkoopnr,
MLD.getmeldingstatusdate (m.mld_melding_key, 5) afgemeld
FROM mld_melding m,
alg_v_allonrgoed_gegevens aog,
alg_locatie l,
mld_statuses s,
prs_v_perslid_fullnames_all pf
WHERE mld_stdmelding_key IN (3821,3881) -- extra werk , ingredienten maas
AND m.prs_perslid_key = pf.prs_perslid_key(+)
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_melding_status = mld_statuses_key;
-- Transport views
CREATE OR REPLACE VIEW venr_v_mld_transport
AS
SELECT sd.ins_srtdiscipline_omschrijving
vakgroeptype,
sd.ins_srtdiscipline_prefix
prefix,
sd.ins_srtdiscipline_alg
plaatsgegevens,
sd.ins_srtdiscipline_ins
objectgegevens,
sd.ins_srtdiscipline_bes
bestelgegevens,
d.ins_discipline_omschrijving
vakgroep,
std.mld_stdmelding_omschrijving
standaardmelding,
stdg.mld_stdmeldinggroep_naam
groep,
k.prs_kostensoort_oms
kostensoort,
std.mld_stdmelding_t_accepttijd.tijdsduur
acceptatietijd,
std.mld_stdmelding_t_uitvoertijd.tijdsduur
uitvoertijd,
std.mld_stdmelding_t_uitvtijd_pr1.tijdsduur
uitvoertijd_kritiek,
std.mld_stdmelding_t_uitvtijd_pr2.tijdsduur
uitvoertijd_hoog,
std.mld_stdmelding_t_uitvtijd_pr4.tijdsduur
uitvoertijd_laag,
std.mld_stdmelding_directklaar
directklaar,
di.prs_dienst_omschrijving
dienst,
std.mld_stdmelding_notfrontend
not_frontend,
std.alg_onrgoed_niveau
alg_niveau,
t.mld_typeopdr_omschrijving
opdrachttype,
std.mld_stdmelding_hint
hint,
std.mld_stdmelding_kopieerbaar
kopieerbaar,
std.mld_stdmelding_afmeldtext
tekst_bij_afmelden,
DECODE (std.mld_stdmelding_doublecheck,
0, 'N',
1, 'I',
2, 'A',
3, 'B')
dubbele_meldingen, --0:niet, 1:FE/FO, 2:BO, 3:FE/FO/BO
std.mld_stdmelding_slabewaken
sla_bewaken,
d.ins_discipline_image
vakgroep_image,
std.mld_stdmelding_image
melding_image
FROM ins_srtdiscipline sd,
ins_tab_discipline d,
mld_stdmelding std,
prs_kostensoort k,
mld_stdmeldinggroep stdg,
prs_dienst di,
mld_typeopdr t
WHERE sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key
AND d.ins_discipline_key = std.mld_ins_discipline_key
AND std.prs_kostensoort_key = k.prs_kostensoort_key(+)
AND std.mld_stdmeldinggroep_key = stdg.mld_stdmeldinggroep_key(+)
AND std.prs_dienst_key = di.prs_dienst_key(+)
AND std.mld_typeopdr_key = t.mld_typeopdr_key(+);
CREATE OR REPLACE VIEW venr_v_faq_transport
AS
SELECT fac_faq_question vraag,
fac_faq_answer antwoord,
DECODE (fac_faq_level,
1, 'Zelfservice',
2, 'Professionals',
3, 'Beide') zichtbaar_voor,
DECODE (d.ins_discipline_module,
'MLD', d.ins_discipline_omschrijving) vakgroep,
std.mld_stdmelding_omschrijving melding,
fac_faq_source oorsprong,
fac_faq_url meer_info_url,
fac_faq_datum publicatiedatum,
fac_faq_lang taal,
fac_faq_hint hint,
fac_faq_vervaldatum vervaldatum,
fd.ins_discipline_omschrijving catalogusnaam,
fac_faq_displaymode displaymode
FROM fac_faq f,
mld_stdmeldingfaq stdf,
ins_tab_discipline d,
mld_stdmelding std,
ins_tab_discipline fd
WHERE f.fac_faq_key = stdf.fac_faq_key(+)
AND stdf.ins_discipline_key = d.ins_discipline_key(+)
AND stdf.mld_stdmelding_key = std.mld_stdmelding_key(+)
AND faq_ins_discipline_key = fd.ins_discipline_key(+);
CREATE OR REPLACE VIEW venr_v_ins_transport
AS
SELECT dg.ins_discipline_omschrijving disciplineomschrijving,
NULL disciplinekostensoort,
dg.ins_srtgroep_omschrijving groepsoortomschrijving,
sd.ins_srtdeel_upper objectsoortcode,
sd.ins_srtdeel_omschrijving objectsoortomschrijving,
d.ins_deel_omschrijving objectindentificatie,
d.ins_deel_opmerking objectopmerking,
DECODE (rd.res_deel_key, NULL, NULL, 'J') reserveerbaar,
sd.ins_srtdeel_eenheid eenheid,
rd.res_deel_prijs prijs,
l.alg_locatie_code locatiecode,
dg.alg_gebouw_upper gebouwcode,
dg.alg_verdieping_code bouwlaagvolgnummer,
dg.alg_ruimte_nr ruimtenummer,
DECODE(rd.res_deel_alg_level,
1, 'D',
2, 'L',
3, 'G',
4, 'V',
5, 'R') reserveringscope,
rid.ins_discipline_omschrijving catalogusnaam,
NULL persoonmatchcode,
NULL persoonmatchwaarde,
d.ins_deel_aanmaak ingangsdatum,
NULL vervaldatum,
dg.ins_deel_aantal aantal,
ins_deel_dwgx x,
ins_deel_dwgy y,
ins_deel_dwgrotatie rot,
ins_deel_dwgschaal schaal
FROM ins_v_deel_gegevens dg,
ins_deel d,
ins_srtdeel sd,
res_deel rd,
ins_tab_discipline rid,
alg_locatie l
WHERE dg.ins_deel_key = d.ins_deel_key
AND dg.ins_srtdeel_key = sd.ins_srtdeel_key
AND dg.ins_deel_key = rd.res_ins_deel_key(+)
AND rd.res_discipline_key = rid.ins_discipline_key(+)
AND dg.alg_locatie_key = l.alg_locatie_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