Files
Customer/CONN/conn.sql
Arthur Egberink b994fff69e CONN#12801
svn path=/Customer/trunk/; revision=13297
2007-06-06 07:59:26 +00:00

6041 lines
242 KiB
MySQL
Raw Blame History

-- Script containing customer specific configuration sql statements for CONN: Connexxion
-- (c) 2005-2006 Dijkoraad IT bv
-- $Revision: 98 $
-- $Modtime: 6-06-07 9:54 $
--
-- Support: +31 53 4800700
SET ECHO ON
SPOOL xconn.lst;
CREATE OR REPLACE VIEW CONN_V_BES_DIESEL (Aanvraagnr, Aantal, Omschrijving, Datum, Afleveradres)
AS
SELECT b.bes_bestelling_key, bi.bes_bestelling_item_aantal,
d.ins_srtdeel_omschrijving, k.bes_kenmerkbestell_waarde, a.mld_adres_naam
FROM mld_adres a,
bes_discipline d,
ins_srtgroep g,
ins_srtdeel d,
bes_bestelling_item bi,
bes_bestelling b,
bes_kenmerkbestell k
WHERE d.ins_discipline_key = g.ins_discipline_key
AND g.ins_srtgroep_key = d.ins_srtgroep_key
AND bi.ins_srtdeel_key = d.ins_srtdeel_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND d.ins_discipline_key = 1442
AND b.mld_adres_key_lev = a.mld_adres_key
AND k.bes_bestelling_key = b.bes_bestelling_key
AND k.bes_kenmerk_key = 3
AND b.bes_bestelling_afgewezen is null;
--CONN#12801
CREATE OR REPLACE VIEW conn_v_gebruikers_groep_email (fclt_groep,
fclt_naam,
email
)
AS
SELECT g.fac_groep_omschrijving, prs_perslid_naam_full, prs_perslid_email
FROM fac_gebruikersgroep gg,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
fac_groep g
WHERE p.prs_perslid_key = gg.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND gg.fac_groep_key = g.fac_groep_key;
--CONN#791
CREATE OR REPLACE VIEW conn_v_halte_gegevens (fclt_f_concessies,
haltecode,
plaatsnaam,
haltenaam,
infobusstation,
infohalte,
passerendelijnen
)
AS
SELECT (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 562) concessies,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 501) haltecode,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 502) plaatsnaam,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 504) haltenaam,
(SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key =
kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 509)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 510)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 511)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 512)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 513)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 514) infopaneelbus,
(SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key =
kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 516)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 517)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 518)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 519)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 520)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 521) infopaneelhalte,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 601) passerendelijnen
FROM ins_deel d
WHERE ins_srtdeel_key = 43401 AND ins_deel_verwijder IS NULL;
--CONN#668
--zie onderaan de file
--CONN#662
CREATE OR REPLACE PROCEDURE CONN_EXPORT_HUURMUTATIE (
p_MutatieKey IN NUMBER,
p_LogLevel IN NUMBER)
AS
v_INGANGSDATUM VARCHAR2(20);
v_INDEXERINGSDATUM VARCHAR2(20);
v_INDEXERINGSCODE VARCHAR2(20);
v_INDEXERINGSMETHODE VARCHAR2(20);
v_HUURDERNUMMER VARCHAR2(20);
v_BUDGETCODE VARCHAR2(20);
v_COMPLEXNUMMER VARCHAR2(20);
v_EENHEIDSNUMMER VARCHAR2(83);
v_FACTUURDEBITEUR VARCHAR2(20);
v_PROLONGATIETERMIJN VARCHAR2(20);
v_TOTAAL NUMBER;
ORACLE_err_num NUMBER;
ORACLE_err_mes VARCHAR2(100);
v_actie VARCHAR2(100);
v_index NUMBER;
CURSOR c_tarief IS
select cnt_contract_key,
aog.ALG_SRTONRGOED_CODE,
aog.ALG_SRTONRGOED_PRIJS,
sum(cnt_contract_onrgoed_opp) opp
from (select cnt_contract_key
, alg_srtonrgoed_key
, alg_onrgoed_niveau
, cnt_contract_onrgoed_opp
from cnt_contract_onrgoed
where cnt_mld_melding_key is not null
union all
select cogo.cnt_contract_key
, cogo.alg_srtonrgoed_key
, cogo.alg_onrgoed_niveau
, cogo.cnt_contract_onrgoed_opp - nvl(cogm.cnt_contract_onrgoed_opp,0) cnt_contract_onrgoed_opp
from cnt_contract_onrgoed cogo, cnt_contract_onrgoed cogm
where cogm.cnt_contract_onrgoed_key_org(+) = cogo.cnt_contract_onrgoed_key
and cogo.cnt_mld_melding_key is null
) contract
, alg_v_allsrtonrgoed aog
where cnt_contract_key in (
select cnt_contract_key
from (
select cog.cnt_contract_key,
cogm.cnt_mld_melding_key cnt_mld_melding_key
from cnt_contract_onrgoed cog
, cnt_contract_onrgoed cogm
where cogm.cnt_contract_onrgoed_key_org = cog.cnt_contract_onrgoed_key
union
select cog.cnt_contract_key
, cnt_mld_melding_key
from cnt_contract_onrgoed cog
)
where cnt_mld_melding_key = p_MutatieKey
)
and aog.alg_srtonrgoed_key = contract.alg_srtonrgoed_key
and aog.alg_type = contract.alg_onrgoed_niveau
group by contract.alg_srtonrgoed_key,
cnt_contract_key,
aog.ALG_SRTONRGOED_CODE,
aog.ALG_SRTONRGOED_PRIJS
order by cnt_contract_key;
v_TariefRec c_Tarief%ROWTYPE;
v_CNT_CONTRACT_KEY NUMBER(10);
BEGIN
v_actie := 'idle';
v_index := 0;
DBMS_OUTPUT.put_line('Before Select MLD_MELDING_KEY');
BEGIN
SELECT NVL(km.MLD_KENMERKMELDING_WAARDE, '')
INTO v_INGANGSDATUM
FROM MLD_KENMERKMELDING km
WHERE km.MLD_MELDING_KEY = p_MutatieKey
AND km.MLD_KENMERK_KEY = 781;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_INGANGSDATUM := NULL;
END;
DBMS_OUTPUT.put_line('Before Select 1621');
BEGIN
SELECT NVL(km.MLD_KENMERKMELDING_WAARDE, '')
INTO v_INDEXERINGSDATUM
FROM MLD_KENMERKMELDING km
WHERE km.MLD_MELDING_KEY = p_MutatieKey
AND km.MLD_KENMERK_KEY = 1621;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_INDEXERINGSDATUM := NULL;
END;
DBMS_OUTPUT.put_line('Before Select 1625');
BEGIN
SELECT NVL(fd.FAC_USRDATA_CODE, '')
INTO v_INDEXERINGSCODE
FROM MLD_KENMERKMELDING km
, FAC_USRDATA fd
WHERE km.MLD_MELDING_KEY = p_MutatieKey
AND fac.safe_to_number(km.MLD_KENMERKMELDING_WAARDE) = fd.FAC_USRDATA_KEY
AND km.MLD_KENMERK_KEY = 1625;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_INDEXERINGSCODE := NULL;
END;
DBMS_OUTPUT.put_line('Before Select 1622');
BEGIN
SELECT NVL(fd.FAC_USRDATA_CODE, '')
INTO v_INDEXERINGSMETHODE
FROM MLD_KENMERKMELDING km
, FAC_USRDATA fd
WHERE km.MLD_MELDING_KEY = p_MutatieKey
AND fac.safe_to_number(km.MLD_KENMERKMELDING_WAARDE) = fd.FAC_USRDATA_KEY
AND km.MLD_KENMERK_KEY = 1622;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_INDEXERINGSMETHODE := NULL;
END;
DBMS_OUTPUT.put_line('Before Select 1641');
BEGIN
SELECT NVL(fd.FAC_USRDATA_CODE, '')
INTO v_PROLONGATIETERMIJN
FROM MLD_KENMERKMELDING km
, FAC_USRDATA fd
WHERE km.MLD_MELDING_KEY = p_MutatieKey
AND fac.safe_to_number(km.MLD_KENMERKMELDING_WAARDE) = fd.FAC_USRDATA_KEY
AND km.MLD_KENMERK_KEY = 1641;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_PROLONGATIETERMIJN := NULL;
END;
DBMS_OUTPUT.put_line('Before LOOP');
v_CNT_CONTRACT_KEY := -1;
v_actie := 'Bepaling individuele tarieven';
OPEN c_Tarief;
IF c_Tarief%ISOPEN THEN
LOOP
BEGIN
FETCH c_Tarief INTO v_TariefRec;
EXIT WHEN c_Tarief%NOTFOUND;
DBMS_OUTPUT.put_line('Contract key ' || v_TariefRec.cnt_contract_key);
IF v_CNT_CONTRACT_KEY <> v_TariefRec.cnt_contract_key THEN
v_CNT_CONTRACT_KEY := v_TariefRec.cnt_contract_key;
v_actie := 'Bepaling individuele tarieven (contract:' || v_CNT_CONTRACT_KEY || ')';
DBMS_OUTPUT.put_line('1');
select sum(cnt_contract_onrgoed_opp*aog.ALG_SRTONRGOED_PRIJS) prijs
into v_TOTAAL
from (select cnt_contract_key
, alg_srtonrgoed_key
, alg_onrgoed_niveau
, cnt_contract_onrgoed_opp
from cnt_contract_onrgoed
where cnt_mld_melding_key is not null
union all
select cogo.cnt_contract_key
, cogo.alg_srtonrgoed_key
, cogo.alg_onrgoed_niveau
, cogo.cnt_contract_onrgoed_opp - nvl(cogm.cnt_contract_onrgoed_opp,0) cnt_contract_onrgoed_opp
from cnt_contract_onrgoed cogo, cnt_contract_onrgoed cogm
where cogm.cnt_contract_onrgoed_key_org(+) = cogo.cnt_contract_onrgoed_key
and cogo.cnt_mld_melding_key is null
) contract
, alg_v_allsrtonrgoed aog
where cnt_contract_key = v_CNT_CONTRACT_KEY
and aog.alg_srtonrgoed_key = contract.alg_srtonrgoed_key
and aog.alg_type = contract.alg_onrgoed_niveau;
v_actie := 'Bepaling leveranciergegevens (contract:' || v_CNT_CONTRACT_KEY || ')';
DBMS_OUTPUT.put_line('Bepaling leveranciergegevens (contract:' || v_CNT_CONTRACT_KEY || ')');
SELECT substr(prs_leverancier_nr,0,instr(prs_leverancier_nr, '/')-1)
, substr(prs_leverancier_nr,instr(prs_leverancier_nr, '/')+1)
, c.cnt_contract_nummer
INTO v_BUDGETCODE
, v_HUURDERNUMMER
, v_EENHEIDSNUMMER
FROM CNT_CONTRACT c
, PRS_BEDRIJF b
WHERE c.CNT_CONTRACT_KEY = v_cnt_contract_key
AND c.CNT_PRS_BEDRIJF_KEY = b.PRS_BEDRIJF_KEY;
BEGIN
SELECT nvl(prs_kenmerklink_waarde,'')
INTO v_FACTUURDEBITEUR
FROM prs_kenmerklink kl
, CNT_CONTRACT c
, PRS_BEDRIJF b
WHERE c.CNT_CONTRACT_KEY = v_cnt_contract_key
AND c.CNT_PRS_BEDRIJF_KEY = b.PRS_BEDRIJF_KEY
AND kl.prs_link_key = prs_bedrijf_key
and prs_kenmerk_key = 1014;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_FACTUURDEBITEUR := NULL;
END;
END IF;
DBMS_OUTPUT.put_line('Bepaling locatiecode (contract:' || v_CNT_CONTRACT_KEY || ')');
v_actie := 'Bepaling locatiecode (contract:' || v_CNT_CONTRACT_KEY || ')';
SELECT max (l.alg_locatie_code)
INTO v_COMPLEXNUMMER
FROM cnt_contract_onrgoed cog
, alg_v_allonroerendgoed aog
, alg_locatie l
WHERE cog.alg_onrgoed_key = aog.alg_onroerendgoed_keys
AND aog.alg_locatie_key = l.alg_locatie_key
AND cog.cnt_mld_melding_key = p_MutatieKey;
DBMS_OUTPUT.put_line('Toevoegen record (contract:' || v_CNT_CONTRACT_KEY || ', tarieftype:' || v_TariefRec.ALG_SRTONRGOED_CODE || ')');
v_actie := 'Toevoegen record (contract:' || v_CNT_CONTRACT_KEY || ', tarieftype:' || v_TariefRec.ALG_SRTONRGOED_CODE || ')';
v_index := v_index + 1;
INSERT INTO CONN_EXP_CONTRACTMUTATIE
( BEDRIJFSNUMMER
, MUTATIENUMMER
, HUURDERNUMMER
, BUDGETCODE
, COMPLEXNUMMER
, EENHEIDSNUMMER
, INGANGSDATUM
, FACTUURDEBITEUR
, PROLONGATIETERMIJN
, INDEXERINGSDATUM
, INDEXERINGSCODE
, INDEXERINGSMETHODE
, TARIEFTYPE
, AANTAL
, TARIEF
, TOTAAL
, REGELINDEX
) VALUES (
'0011'
, p_MutatieKey || '/' || v_CNT_CONTRACT_KEY
, v_HUURDERNUMMER
, v_BUDGETCODE
, v_COMPLEXNUMMER
, v_EENHEIDSNUMMER
, fac.safe_to_date(v_INGANGSDATUM, 'dd-mm-yyyy')
, v_FACTUURDEBITEUR
, v_PROLONGATIETERMIJN
, fac.safe_to_date(v_INDEXERINGSDATUM,'dd-mm-yyyy')
, v_INDEXERINGSCODE
, v_INDEXERINGSMETHODE
, v_TariefRec.ALG_SRTONRGOED_CODE
, v_TariefRec.opp
, v_TariefRec.ALG_SRTONRGOED_PRIJS
, v_TOTAAL
, v_index
);
END;
END LOOP;
-- toevoegen aantal aan records
UPDATE CONN_EXP_CONTRACTMUTATIE SET AANTALREGELS = v_index WHERE substr(MUTATIENUMMER,0,instr(MUTATIENUMMER, '/')-1) = p_MutatieKey;
DBMS_OUTPUT.put_line('Na update CONN_EXP_CONTRACTMUTATIE (aantalregels)');
v_actie := 'Update mutaties';
UPDATE cnt_contract_onrgoed SET cnt_mutatie_status_key = 6 WHERE cnt_mld_melding_key=p_MutatieKey;
END IF;
commit;
EXCEPTION WHEN OTHERS THEN
ROLLBACK;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.imp_writelog ('EXPORT HUURMUTATIES',
p_MutatieKey || ' date:' || trunc(sysdate),
'E',
'(ORACLE error ' || to_char(oracle_err_num) || '/' || oracle_err_mes || ')',
v_actie
);
COMMIT;
END CONN_EXPORT_HUURMUTATIE;
/
/* Formatted on 2006/04/04 17:07 (Formatter Plus v4.8.6) */
CREATE OR REPLACE VIEW conn_v_exp_contractmutatie (bedrijfsnummer,
fclt_f_mutatienummer,
huurdernummer,
budgetcode,
fclt_f_complexnummer,
eenheidsnummer,
ingangsdatum,
factuurdebiteur,
indexeringsdatum,
indexeringscode,
indexeringsmethode,
tarieftype,
aantal,
tarief,
totaal
)
AS
SELECT bedrijfsnummer, mutatienummer, huurdernummer, budgetcode,
complexnummer, eenheidsnummer, ingangsdatum, factuurdebiteur,
indexeringsdatum, indexeringscode, indexeringsmethode, tarieftype,
aantal, tarief, totaal
FROM conn_exp_contractmutatie;
--CONN#69
/* Formatted on 2006/03/07 10:46 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_v_rapp_chipknip_detail (fclt_f_artikel_nr, fclt_f_maand, prijs, uitgegeven, ingekocht)
AS
SELECT ins_srtdeel_nr, maand, ins_srtdeel_prijs, SUM (aantal_intern), SUM (aantal_extern)
FROM (SELECT ins_srtdeel_nr, TO_CHAR (bes_bestelling_datum, 'YYYYMM') maand, ins_srtdeel_prijs,
SUM (bi.bes_bestelling_item_aantal) aantal_intern, TO_NUMBER (NULL) aantal_extern
FROM ins_srtgroep g, ins_srtdeel sd, bes_bestelling b, bes_bestelling_item bi
WHERE g.ins_discipline_key = 541
AND sd.ins_srtgroep_key = g.ins_srtgroep_key
AND sd.ins_srtdeel_verwijder IS NULL
AND bi.ins_srtdeel_key = sd.ins_srtdeel_key
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND b.bes_bestelling_status > 4
GROUP BY ins_srtdeel_nr, ins_srtdeel_prijs, TO_CHAR (bes_bestelling_datum, 'YYYYMM')
UNION ALL
SELECT ins_srtdeel_nr, TO_CHAR (bes_bestelling_datum, 'YYYYMM'), ins_srtdeel_prijs, TO_NUMBER (NULL),
SUM (bi.bes_bestelling_item_aantal)
FROM ins_srtgroep g, ins_srtdeel sd, bes_bestelling b, bes_bestelling_item bi
WHERE g.ins_discipline_key = 801
AND sd.ins_srtgroep_key = g.ins_srtgroep_key
AND sd.ins_srtdeel_verwijder IS NULL
AND bi.ins_srtdeel_key = sd.ins_srtdeel_key
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND b.bes_bestelling_status > 4
GROUP BY ins_srtdeel_nr, ins_srtdeel_prijs, TO_CHAR (bes_bestelling_datum, 'YYYYMM'))
GROUP BY ins_srtdeel_nr, maand, ins_srtdeel_prijs;
/* Formatted on 2006/02/24 11:40 (Formatter Plus v4.8.6) */
CREATE OR REPLACE VIEW conn_v_rapp_chipknip (fclt_f_artikel_nr,
prijs,
uitgegeven,
ingekocht,
voorraad
)
AS
SELECT fclt_f_artikel_nr, prijs, SUM (uitgegeven),
SUM (ingekocht), SUM(ingekocht) - SUM(uitgegeven)
FROM conn_v_rapp_chipknip_detail
GROUP BY fclt_f_artikel_nr, prijs;
--CONN#649
CREATE OR REPLACE VIEW conn_v_loctype_huur_detail (locatie_omschrijving,
fclt_f_locatie_code,
locatie_type,
uitbeheer,
hide_f_volgnr,
omschrijving,
tarief,
oppervlakte
)
AS
SELECT alg_locatie_omschrijving, alg_locatie_code,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key = fac.safe_to_number (k_type.alg_onrgoedkenmerk_waarde)) TYPE,
k_inbeh.alg_onrgoedkenmerk_waarde inbeheer, volgnr, oms, code, oppervlak
FROM alg_v_aanweziglocatie l,
alg_onrgoedkenmerk k_type,
alg_onrgoedkenmerk k_inbeh,
(SELECT alg_locatie_key, 'Kadastraal Oppervlakte' oms, '1' volgnr, '' code,
fac.safe_to_number (k_kad.alg_onrgoedkenmerk_waarde) oppervlak
FROM alg_v_aanweziglocatie l, alg_onrgoedkenmerk k_kad
WHERE l.alg_locatie_key = k_kad.alg_onrgoed_key AND k_kad.alg_kenmerk_key = 1025
UNION ALL
SELECT alg_locatie_key, 'Verhuurbaar Oppervlakte' oms, '2' volgnr, '' code,
fac.safe_to_number (k_verh.alg_onrgoedkenmerk_waarde) oppervlak
FROM alg_v_aanweziglocatie l, alg_onrgoedkenmerk k_verh
WHERE l.alg_locatie_key = k_verh.alg_onrgoed_key AND k_verh.alg_kenmerk_key = 1020
UNION ALL
SELECT alg_locatie_key, leegstand oms, '3' volgnr, code, SUM (oppervlak) oppervlak
FROM (SELECT co.cnt_contract_key, prs_bedrijf_key,
DECODE (prs_bedrijf_key, 13324, 'Leegstand', 'Verhuurd') leegstand,
SUM (cog.cnt_contract_onrgoed_opp) oppervlak, aog.alg_locatie_key alg_locatie_key,
cog.alg_srtonrgoed_key,
DECODE (LPAD (sog.alg_srtonrgoed_code, 1),
'K', 'Kantoor',
'B', 'Werkplaats',
'S', 'Stalling',
'W', 'Werkplaats',
'A', 'Algemene Ruimte',
'P', 'Portocabin',
'T', 'Terrein',
LPAD (sog.alg_srtonrgoed_code, 1)
) code,
cog.alg_onrgoed_niveau
FROM cnt_v_aanwezigcontract co,
cnt_v_cnt_contract_onrgoed_cur cog,
alg_v_allonroerendgoed aog,
alg_v_allsrtonrgoed sog,
prs_v_aanwezigbedrijf b,
cnt_disc_params cdp
WHERE co.cnt_contract_key = cog.cnt_contract_key
AND cog.alg_srtonrgoed_key = sog.alg_srtonrgoed_key
AND cog.alg_onrgoed_key = aog.alg_onroerendgoed_keys
AND sog.alg_type = aog.alg_type
AND co.ins_discipline_key = cdp.cnt_ins_discipline_key
AND cdp.cnt_srtcontract_type = 2
AND cog.alg_onrgoed_niveau = sog.alg_type
AND co.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND UPPER (LPAD (sog.alg_srtonrgoed_code, 1)) <> 'C'
GROUP BY co.cnt_contract_key,
aog.alg_locatie_key,
prs_bedrijf_key,
cog.alg_srtonrgoed_key,
sog.alg_srtonrgoed_code,
cog.alg_onrgoed_niveau)
GROUP BY alg_locatie_key, leegstand, code) verh
WHERE l.alg_locatie_key = k_type.alg_onrgoed_key(+)
AND k_type.alg_kenmerk_key(+) = 1120
AND l.alg_locatie_key = k_inbeh.alg_onrgoed_key(+)
AND k_inbeh.alg_kenmerk_key(+) = 22
AND l.alg_locatie_key = verh.alg_locatie_key
ORDER BY alg_locatie_code, volgnr, oms DESC, code;
/* Formatted on 2006/02/14 22:07 (Formatter Plus v4.8.6) */
CREATE OR REPLACE VIEW conn_v_loctype_huur (fclt_f_locatie_type,
hide_f_volgnr,
fclt_f_omschrijving,
fclt_f_tarief,
oppervlakte
)
AS
SELECT locatie_type, hide_f_volgnr, omschrijving, tarief,
SUM (oppervlakte)
FROM conn_v_loctype_huur_detail
WHERE uitbeheer IS NULL OR TO_DATE (uitbeheer, 'DD-MM-YYYY') > SYSDATE
GROUP BY locatie_type, hide_f_volgnr, omschrijving, tarief;
/* Formatted on 2005/05/27 13:17 (Formatter Plus v4.8.0) */
CREATE OR REPLACE VIEW conn_v_open_huur_mut (hide_f_melding_key,
fclt_f_melding,
fclt_f_locatie,
gebouw_terrein,
verdieping,
ruimte
)
AS
SELECT mld_melding_key, to_char(mld_melding_key), l.alg_locatie_code,
NVL (g.alg_gebouw_code, t.alg_terreinsector_code),
v.alg_verdieping_code, alg_ruimte_nr
FROM mld_melding m,
alg_v_allonroerendgoed aog,
cnt_contract_onrgoed cog,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r,
alg_terreinsector t
WHERE m.mld_melding_key = cog.cnt_mld_melding_key
AND aog.alg_gebouw_key = g.alg_gebouw_key(+)
AND aog.alg_verdieping_key = v.alg_verdieping_key(+)
AND aog.alg_ruimte_key = r.alg_ruimte_key(+)
AND aog.alg_terreinsector_key = t.alg_terreinsector_key(+)
AND aog.alg_locatie_key = l.alg_locatie_key
AND aog.alg_onroerendgoed_keys = cog.alg_onrgoed_key;
-- CONN#435
CREATE OR REPLACE VIEW CONN_V_LEV_SCHOONMAAK
(PRS_BEDRIJF_KEY, PRS_BEDRIJF_NAAM)
AS
SELECT DISTINCT prs_bedrijf.PRS_BEDRIJF_KEY,prs_bedrijf.PRS_BEDRIJF_NAAM
FROM prs_bedrijf, prs_bedrijfdienstlocatie
WHERE prs_bedrijf.prs_bedrijf_verwijder IS NULL
AND prs_bedrijf.prs_bedrijf_key = prs_bedrijfdienstlocatie.prs_bedrijf_key
AND prs_bedrijfdienstlocatie.prs_dienst_key = 129 ;
/* Formatted on 2006/06/16 09:43 (Formatter Plus v4.8.5) */
-- aangepast ivm datamodelchanges. Was m.i. in vorige versie NIET goed, dus deze geeft ook ander resultaat
CREATE OR REPLACE VIEW conn_mi_rapport_prod_groep (nr,
fclt_f_maand,
naam,
fclt_f_business_unit,
afdeling,
kostenplaats,
aantal,
fclt_f_catalogus,
fclt_f_groep,
prijs,
fclt_3d_afdeling_key
)
AS
SELECT TO_CHAR (b.bes_bestelling_key) c1, TO_CHAR (bes_bestelling_datum, 'YYMM') c3,
prs_perslid_naam || DECODE (prs_perslid_voorletters, NULL, '', ', ' || prs_perslid_voorletters) c6,
bu.prs_afdeling_omschrijving c5, fu.prs_afdeling_naam || '/' || a.prs_afdeling_omschrijving c7,
kpl.prs_kostenplaats_nr kp, SUM (bi.bes_bestelling_item_aantal) c9, d.ins_discipline_omschrijving d1,
g.ins_srtgroep_omschrijving d2, SUM (bi.bes_bestelling_item_aantal * pr.prijs) c10, fu.prs_afdeling_key
FROM bes_bestelling_item bi,
ins_srtdeel srt,
bes_bestelling b,
bes_bestellingstatuses s,
prs_perslid p,
prs_afdeling a,
prs_afdeling bu,
prs_v_afdeling_boom bo,
prs_v_afdeling_fullnames fu,
ins_srtgroep g,
ins_tab_discipline d,
bes_v_item_prijs pr,
prs_kostenplaats kpl
WHERE b.bes_bestelling_status = s.bes_bestellingstatuses_key
AND bi.ins_srtdeel_key = srt.ins_srtdeel_key
AND bi.bes_bestelling_item_key = pr.bes_bestelling_item_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND p.prs_perslid_key = b.prs_perslid_key
AND bo.prs_afdeling_key(+) = a.prs_afdeling_key
AND fu.prs_afdeling_key = a.prs_afdeling_key
AND bu.prs_afdeling_key = bo.prs_afdeling_key1
AND p.prs_afdeling_key = a.prs_afdeling_key
AND srt.ins_srtgroep_key = g.ins_srtgroep_key
AND g.ins_discipline_key = d.ins_discipline_key
AND (b.bes_bestelling_status = 6 OR b.bes_bestelling_status = 7)
AND b.prs_kostenplaats_key = kpl.prs_kostenplaats_key(+)
GROUP BY b.bes_bestelling_key,
TO_CHAR (bes_bestelling_datum, 'YYMM'),
prs_perslid_naam || DECODE (prs_perslid_voorletters, NULL, '', ', ' || prs_perslid_voorletters),
bu.prs_afdeling_omschrijving,
fu.prs_afdeling_naam || '/' || a.prs_afdeling_omschrijving,
d.ins_discipline_omschrijving,
kpl.prs_kostenplaats_nr,
fu.prs_afdeling_key,
g.ins_srtgroep_omschrijving;
CREATE OR REPLACE VIEW CONN_MI_RAPPORT_ARTIKELEN
(FCLT_F_MAAND, AANTAL, FCLT_F_CATALOGUS, FCLT_F_GROEP, FCLT_F_OMSCHRIJVING, PRIJS)
AS
SELECT
TO_CHAR(bes_bestelling_datum, 'YYMM'),
SUM( bi.bes_bestelling_item_aantal),
d.INS_DISCIPLINE_OMSCHRIJVING,
g.ins_srtgroep_omschrijving,
ins_srtdeel_omschrijving,
SUM( bi.bes_bestelling_item_aantal * pr.PRIJS)
FROM
BES_BESTELLING_ITEM bi,
INS_SRTDEEL srt,
BES_BESTELLING b,
INS_SRTGROEP g,
INS_TAB_DISCIPLINE d,
bes_v_item_prijs pr
WHERE
bi.INS_SRTDEEL_key = srt.INS_SRTDEEL_key AND
bi.BES_bestelling_item_key = pr.bes_bestelling_item_key AND
bi.BES_bestelling_KEY = b.BES_bestelling_KEY AND
srt.INS_SRTGROEP_KEY = g.INS_SRTGROEP_KEY AND
g.INS_DISCIPLINE_KEY = d.INS_DISCIPLINE_KEY AND
(b.bes_bestelling_status = 6 OR b.bes_bestelling_status = 7) AND
bi.bes_bestelling_item_aantal <> 0
GROUP BY
TO_CHAR(bes_bestelling_datum, 'YYMM'),
d.INS_DISCIPLINE_OMSCHRIJVING,
g.ins_srtgroep_omschrijving,
ins_srtdeel_omschrijving;
/* Formatted on 2006/09/01 16:21 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_v_bedrijf_gegevens
AS
SELECT prs_bedrijf_key, prs_bedrijf_naam, prs_bedrijf_naam_upper,
prs_bedrijf_post_adres, prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats, prs_bedrijf_bezoek_adres,
prs_bedrijf_bezoek_postcode, prs_bedrijf_bezoek_plaats,
prs_bedrijf_telefoon, prs_bedrijf_fax, prs_bedrijf_contact_persoon,
prs_bedrijf_contact_telefoon, prs_bedrijf_contact_fax,
prs_bedrijf_opmerking, prs_bedrijf_uurloon, prs_leverancier_nr,
prs_overeenkomst_nr, prs_overeenkomst_datum, prs_bedrijf_aanmaak,
prs_bedrijf_verwijder, prs_bedrijf_leverancier,
prs_bedrijf_uitvoerende, prs_bedrijf_contract, prs_bedrijf_email,
prs_bedrijf_xsl, prs_bedrijf_order_adres, prs_bedrijf_image_loc,
prs_bedrijf_details_loc, mld_adres_key_lev, mld_adres_key_fac,
prs_bedrijf_bezoek_land, prs_bedrijf_post_land,
prs_bedrijf_telefoon2, prs_bedrijf_opmerking2, prs_bedrijf_intern,
prs_bedrijf_huurder, prs_bedrijf_ingids,
SUBSTR (b.prs_leverancier_nr,
INSTR (b.prs_leverancier_nr, '/') + 1
) huurdernr,
SUBSTR (b.prs_leverancier_nr,
1,
INSTR (b.prs_leverancier_nr, '/') - 1
) budgetcode
FROM prs_bedrijf b
WHERE prs_bedrijf_verwijder IS NULL;
-- verwijderen van de afdelingen uit de view heeft een negatief effect op de performance!!!!
CREATE OR REPLACE VIEW conn_v_locatiehuurder
(omschrijving, huurder_key, complex, huurder, huurdernr, budgetcode)
AS
SELECT complex || '-' || huurder || '-' || budgetcode AS omschrijving,
NVL (fac.safe_to_number (complex), 0) * 100000
+ NVL (fac.safe_to_number (SUBSTR (budgetcode, INSTR (budgetcode, '-') + 1)), 0) AS huurder_key,
complex, huurder, huurdernr, budgetcode
FROM (SELECT alg_locatie_code complex, b.prs_bedrijf_naam huurder, b.huurdernr, b.budgetcode
FROM cnt_v_contract_locatie_geg lg,
alg_locatie l,
conn_v_bedrijf_gegevens b,
prs_afdeling a,
cnt_disc_params cdp
WHERE cdp.cnt_ins_discipline_key = lg.ins_discipline_key
AND cdp.cnt_srtcontract_type = 2
AND l.alg_locatie_key = lg.alg_locatie_key
AND lg.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
AND lg.cnt_prs_afdeling_key = a.prs_afdeling_key(+));
--
-- CONN#460
--
CREATE OR REPLACE PACKAGE CONN_RAP AS
-- PACKAGES voor de Connexxion specifieke rapportages
TYPE t_cursor IS REF CURSOR;
FUNCTION FindNearestSampleValue(p_ins_deel_key IN NUMBER,p_ins_kenmerk_key IN NUMBER ,p_sample_date IN DATE) RETURN NUMBER;
FUNCTION FindNearestSampleDate(p_ins_deel_key IN NUMBER,p_ins_kenmerk_key IN NUMBER ,p_sample_date IN DATE) RETURN DATE;
PROCEDURE conn_p_verbruik (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor);
PROCEDURE conn_p_bes_div_cat (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor);
END;
/
CREATE OR REPLACE PACKAGE BODY CONN_RAP AS
--
-- Algemene procedures en functies.
--
--
FUNCTION FindNearestSampleDate(p_ins_deel_key IN NUMBER
,p_ins_kenmerk_key IN NUMBER
,p_sample_date IN DATE
) RETURN DATE IS
v_waarde DATE;
BEGIN
SELECT waarde
INTO v_waarde
FROM (
SELECT ins_kenmerkdeel_aanmaak waarde
FROM ins_kenmerkdeel skd
WHERE skd.ins_kenmerk_key = p_ins_kenmerk_key
AND skd.ins_deel_key = p_ins_deel_key
ORDER BY ABS(p_sample_date - skd.INS_KENMERKDEEL_AANMAAK)
)
WHERE ROWNUM = 1;
RETURN v_waarde;
END;
--
FUNCTION FindNearestSampleValue(p_ins_deel_key IN NUMBER
,p_ins_kenmerk_key IN NUMBER
,p_sample_date IN DATE
) RETURN NUMBER IS
v_waarde NUMBER;
BEGIN
SELECT FAC.safe_to_number(waarde)
INTO v_waarde
FROM (
SELECT ins_kenmerkdeel_waarde waarde
FROM ins_kenmerkdeel skd
WHERE skd.ins_kenmerk_key = p_ins_kenmerk_key
AND skd.ins_deel_key = p_ins_deel_key
ORDER BY ABS(p_sample_date - skd.INS_KENMERKDEEL_AANMAAK)
)
WHERE ROWNUM = 1;
RETURN v_waarde;
END;
--
PROCEDURE conn_p_verbruik (user_key IN NUMBER
,p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor) AS
v_datum_van DATE;
v_datum_tot DATE;
v_alg_level_read NUMBER;
BEGIN
v_datum_van := fac.safe_to_date(p_datum_van, 'dd-mm-yyyy');
v_datum_tot := fac.safe_to_date(p_datum_tot, 'dd-mm-yyyy');
SELECT MIN(fac_gebruiker_alg_level_read)
INTO v_alg_level_read
FROM fac_v_webgebruiker
WHERE prs_perslid_key = user_key
AND fac_functie_key = 242; -- WEB_OBJUSE
IF v_alg_level_read = -1 THEN
OPEN p_cursor FOR
SELECT alg_locatie_code code,
alg_locatie_omschrijving naam,
ins_deel_omschrijving meter,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) -
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) verbruik,
to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van),'dd-mm-yyyy hh24:mi') begin_datum,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) begin_waarde,
to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot),'dd-mm-yyyy hh24:mi') eind_datum,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) eind_waarde
FROM (
SELECT DISTINCT
d.ins_deel_key,
k.ins_kenmerk_key,
ins_deel_omschrijving,
alg_locatie_key,
alg_locatie_omschrijving,
alg_locatie_code
FROM ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigdeel d,
ins_kenmerkdeel kd,
ins_kenmerk k,
ins_srtkenmerk sk,
alg_locatie l
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
AND d.ins_deel_key = kd.ins_deel_key
AND d.ins_alg_locatie_key = l.alg_locatie_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_kenmerk_verwijder IS NULL
AND k.ins_kenmerk_meetwaarde = 1
AND sk.INS_SRTKENMERK_KENMERKTYPE = 'N'
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
) res
ORDER BY code;
ELSE -- We moeten echte autorisatie controleren
OPEN p_cursor FOR
SELECT alg_locatie_code code,
alg_locatie_omschrijving naam,
ins_deel_omschrijving meter,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) -
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) verbruik,
to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van),'dd-mm-yyyy hh24:mi') begin_datum,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) begin_waarde,
to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot),'dd-mm-yyyy hh24:mi') eind_datum,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) eind_waarde
FROM (
SELECT DISTINCT
d.ins_deel_key,
k.ins_kenmerk_key,
ins_deel_omschrijving,
alg_locatie_key,
alg_locatie_omschrijving,
alg_locatie_code
FROM ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigdeel d,
ins_kenmerkdeel kd,
ins_kenmerk k,
ins_srtkenmerk sk,
alg_locatie l
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
AND d.ins_deel_key = kd.ins_deel_key
AND d.INS_ALG_LOCATIE_KEY = l.alg_locatie_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_kenmerk_verwijder IS NULL
AND k.ins_kenmerk_volgnummer >= 100
AND sk.INS_SRTKENMERK_KENMERKTYPE = 'N'
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND alg_locatie_key IN (
SELECT alg_locatie_key
FROM fac_v_my_locations
WHERE PRS_PERSLID_KEY = user_key
AND niveau = v_alg_level_read
)
) res
ORDER BY code;
END IF;
END;
--
PROCEDURE conn_p_bes_div_cat ( user_key IN NUMBER,
p_datum_van IN VARCHAR2, -- Let wel: formaat '01-01-2015'
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor) AS
BEGIN
OPEN p_cursor FOR
SELECT a.prs_afdeling_parent_oms divisie,
dis.ins_discipline_omschrijving catalogus,
COUNT (b.bes_bestelling_key) aantal_aanvragen,
SUM (COALESCE (bp.prijs, 0) * bi.bes_bestelling_item_aantal
) totaalbedrag
FROM BES_BESTELLING b,
BES_BESTELLING_ITEM bi,
INS_SRTDEEL sd,
INS_SRTGROEP sg,
INS_TAB_DISCIPLINE dis,
bes_v_item_prijs bp,
(SELECT p.prs_perslid_key,
a.prs_afdeling_omschrijving prs_afdeling_parent_oms
FROM prs_v_afdeling_boom ab, PRS_AFDELING a, PRS_PERSLID p
WHERE ab.prs_afdeling_key1 = a.prs_afdeling_key
AND p.prs_afdeling_key = ab.prs_afdeling_key) a
WHERE bi.bes_bestelling_item_key = bp.bes_bestelling_item_key
AND b.bes_bestelling_datum >= Fac.safe_to_date(p_datum_van, 'dd-mm-yyyy')
AND b.bes_bestelling_datum < Fac.safe_to_date(p_datum_tot, 'dd-mm-yyyy')
AND bi.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = dis.ins_discipline_key
AND b.bes_bestelling_status <> 1
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND bi.bes_bestelling_item_key = bp.bes_bestelling_item_key
AND b.bes_bestelling_module = 'BES'
AND a.prs_perslid_key = b.prs_perslid_key
GROUP BY a.prs_afdeling_parent_oms, dis.ins_discipline_omschrijving
ORDER BY 1,2;
END;
--
END;
/
show errors;
--
-- CONN #455, 540
--
/* Formatted on 2005/04/26 14:38 (Formatter Plus v4.8.0) */
CREATE OR REPLACE VIEW conn_v_export_xelion (fclt_f_complex,
fclt_f_contract,
tarieftype,
oppervlakte,
prijs
)
AS
SELECT l.alg_locatie_code, cnt_contract_nummer, sog.srtonrgoed_code,
SUM (cog.cnt_contract_onrgoed_opp) AS tot_opp, srtonrgoed_prijs
FROM cnt_contract c,
cnt_contract_onrgoed cog,
alg_v_onroerendgoed_gegevens aog,
alg_locatie l,
(SELECT alg_srtruimte_key AS srtonrgoed_key,
alg_srtruimte_code AS srtonrgoed_code,
alg_srtruimte_prijs AS srtonrgoed_prijs,
'R' AS alg_onrgoed_niveau
FROM alg_srtruimte
UNION ALL
SELECT alg_srtterreinsector_key AS srtonrgoed_key,
alg_srtterreinsector_code AS srtonrgoed_code,
alg_srtterreinsector_prijs AS srtonrgoed_prijs,
'T' AS alg_onrgoed_niveau
FROM alg_srtterreinsector) sog
WHERE cog.cnt_contract_key = c.cnt_contract_key
AND aog.alg_onroerendgoed_keys = cog.alg_onrgoed_key
AND cog.cnt_contract_onrgoed_key_org IS NULL
AND aog.alg_locatie_key = l.alg_locatie_key
AND cog.alg_onrgoed_niveau = sog.alg_onrgoed_niveau
AND sog.srtonrgoed_key = cog.alg_srtonrgoed_key
GROUP BY c.cnt_contract_key,
c.cnt_contract_nummer,
l.alg_locatie_code,
sog.srtonrgoed_code,
sog.srtonrgoed_prijs;
--
-- CONN #451
--
/* Formatted on 2006/06/14 15:09 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_v_bestelopdr_gegevens (hide_f_opdracht,
datum,
fclt_f_opdrnr,
fclt_f_naam,
telefoon,
fclt_f_status
)
AS
SELECT DISTINCT bo.bes_bestelopdr_key, TO_CHAR (b.bes_bestelling_datum, 'DD-MM-YYYY'),
TO_CHAR (bo.bes_bestelopdr_key), (SELECT pf.prs_perslid_naam_full
FROM prs_v_perslid_fullnames pf
WHERE pf.prs_perslid_key = b.prs_perslid_key),
b.bes_bestelling_telefoon, bos.bes_bestelopdrstatuses_omschr
FROM bes_bestelling b,
bes_bestelling_item bi,
bes_bestelopdr bo,
bes_bestelopdrstatuses bos,
bes_bestelopdr_item boi
WHERE bes_bestelopdr_status IN (4, 5, 6, 7)
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bo.bes_bestelopdr_status = bos.bes_bestelopdrstatuses_key;
--
-- CONN#321
--
-- view werkt niet meer omdat kenmerk 1001 niet meer bestaat ?????
create or replace view CONN_V_BESTELLER_Z_KOSTENPL (NAAM, AFDELING, LIMIET)
AS select pf.PRS_PERSLID_NAAM_FULL, a.PRS_AFDELING_OMSCHRIJVING, kl.PRS_KENMERKLINK_WAARDE from prs_v_aanwezigperslid p, prs_afdeling a, prs_v_aanwezigkenmerklink kl, prs_v_perslid_fullnames pf
where p.prs_perslid_key = kl.PRS_LINK_KEY
and p.prs_perslid_key = pf.prs_perslid_key
and p.prs_afdeling_key = a.prs_afdeling_key
and kl.PRS_KENMERK_KEY = 1001
and a.prs_kostenplaats_key is null;
CREATE OR REPLACE VIEW CONN_V_ONTVANGEN_HUURCONTR
(FCLT_F_Xelioncontractnummer, Xelionsubcontractnummer,
FCLT_F_mutatienummer, navisioncontractvolgnummer, FCLT_F_huurder, budgetcode, FCLT_F_complex, vhe_contractnummer, contractsoort,
ingangsdatum, einddatum, totaalbedrag, invoerdatum, tarieftype, aantal, prijs, cnt_contract_key)
as
select Xelioncontractnummer, Xelionsubcontractnummer,
mutatienummer, navisioncontractvolgnummer, huurder, budgetcode, complex, vhe_contractnummer, contractsoort,
ingangsdatum, einddatum, totaalbedrag, invoerdatum, tarieftype, aantal, prijs, cnt_contract_key from conn_ontv_mutatie;
CREATE OR REPLACE VIEW conn_v_huurcontract_details (fclt_f_locatie,
fclt_f_naam,
fclt_f_nummer,
opp,
prijs,
code
)
AS
SELECT (SELECT alg_locatie_code
FROM alg_locatie
WHERE alg_locatie_key = locatie),
NVL ((SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b, cnt_contract cn
WHERE prs_bedrijf_key = cn.cnt_prs_bedrijf_key
AND contract_key = cn.cnt_contract_key),
''
) AS naam,
NVL ((SELECT b.prs_leverancier_nr
FROM prs_bedrijf b, cnt_contract cn
WHERE prs_bedrijf_key = cn.cnt_prs_bedrijf_key
AND contract_key = cn.cnt_contract_key),
''
) AS nr,
opp, prijs, code
FROM (SELECT contract_key, SUM (cnt_contract_onrgoed_opp) opp, prijs,
code, locatie
FROM (SELECT c.cnt_contract_key AS contract_key,
co.cnt_contract_onrgoed_opp,
NVL
((SELECT alg_srtruimte_prijs
FROM alg_srtruimte
WHERE alg_srtruimte_key =
alg_srtonrgoed_key
AND co.alg_onrgoed_niveau = 'R'),
(SELECT alg_srtterreinsector_prijs
FROM alg_srtterreinsector
WHERE alg_srtterreinsector_key =
alg_srtonrgoed_key)
) AS prijs,
NVL
((SELECT alg_srtruimte_code
FROM alg_srtruimte
WHERE alg_srtruimte_key =
alg_srtonrgoed_key
AND co.alg_onrgoed_niveau = 'R'),
(SELECT alg_srtterreinsector_code
FROM alg_srtterreinsector
WHERE alg_srtterreinsector_key =
alg_srtonrgoed_key)
) AS code,
NVL
((SELECT alg_locatie_key
FROM alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE r.alg_ruimte_key = alg_onrgoed_key
AND r.alg_verdieping_key =
v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key),
(SELECT alg_locatie_key
FROM alg_terreinsector
WHERE alg_terreinsector_key =
alg_onrgoed_key)
) AS locatie
FROM cnt_contract_onrgoed co, cnt_contract c
WHERE c.cnt_contract_key = co.cnt_contract_key
AND cnt_mld_melding_key IS NULL)
GROUP BY code, contract_key, prijs, locatie)
ORDER BY locatie;
CREATE OR REPLACE VIEW conn_v_huurders_kostenplaats (fclt_f_naam,
fclt_f_kostenplaats
)
AS
SELECT prs_bedrijf_naam AS naam,
prs_leverancier_nr AS kostenplaats
FROM prs_v_aanwezigbedrijf;
create or replace view CONN_V_HUURCONTRACTEN(FCLT_F_LOCATIE, FCLT_F_NAAM, FCLT_F_NUMMER, prijs)
AS
select fclt_f_locatie, fclt_f_naam, fclt_f_nummer, sum (opp * prijs)
from CONN_V_HUURCONTRACT_DETAILS
group by fclt_f_locatie, fclt_f_naam, fclt_f_nummer;
--
-- CONN#415 CONN#492
--
CREATE OR REPLACE VIEW conn_v_locatie_huurder (fclt_f_locatie,
adres,
plaats,
huurder,
huurder_telefoon,
verantwoordelijke,
telefoon
)
AS
SELECT l.alg_locatie_code, l.alg_locatie_adres, l.alg_locatie_plaats, b.prs_bedrijf_naam, b.prs_bedrijf_telefoon,
l.alg_locatie_verantw, l.alg_locatie_verantw_tel
FROM cnt_v_contract_locatie_geg lg, alg_locatie l, prs_bedrijf b, cnt_disc_params cdp
WHERE lg.ins_discipline_key = cdp.cnt_ins_discipline_key
AND cdp.cnt_srtcontract_type = 2
AND l.alg_locatie_key = lg.alg_locatie_key
AND b.prs_bedrijf_key IS NOT NULL
AND lg.cnt_prs_bedrijf_key = b.prs_bedrijf_key;
--
-- CONN#415 CONN#496
--
CREATE OR REPLACE VIEW CONN_V_LOCATIE_BEDRIJVEN
(FCLT_F_LOCATIE, ADRES, POSTCODE, PLAATS, BEDRIJF,
DIENST, TELEFOONNR, STORINGSNR)
AS
SELECT l.ALG_LOCATIE_CODE
,l.ALG_LOCATIE_ADRES
,l.ALG_LOCATIE_POSTCODE
,l.ALG_LOCATIE_PLAATS
,substr(b.PRS_BEDRIJF_NAAM,1,decode(instr(b.PRS_BEDRIJF_NAAM,' _ LEV'),0,60,instr(b.PRS_BEDRIJF_NAAM,' _ LEV')))
,d.PRS_DIENST_OMSCHRIJVING
,b.PRS_BEDRIJF_TELEFOON
,b.PRS_BEDRIJF_TELEFOON2
FROM PRS_BEDRIJFDIENSTLOCATIE bdl
,ALG_V_AANWEZIGLOCATIE l
,PRS_DIENST d
,PRS_V_AANWEZIGBEDRIJF b
where bdl.PRS_BEDRIJF_KEY = b.PRS_BEDRIJF_KEY
and bdl.ALG_LOCATIE_KEY = l.ALG_LOCATIE_KEY
and bdl.PRS_DIENST_KEY = d.PRS_DIENST_KEY
order by 1,5;
CREATE OR REPLACE VIEW CONN_V_PERSLID_Z_LOGWWMAIL (NAAM,NUMMER,LOGIN,WACHTWOORD,EMAIL) AS
SELECT pf.prs_perslid_naam_full, p.prs_perslid_nr, p.prs_perslid_oslogin,
RPAD (' ', LENGTH (p.prs_perslid_wachtwoord) + 1, '*'),
p.prs_perslid_email
FROM prs_perslid p, prs_v_perslid_fullnames pf
WHERE pf.prs_perslid_key = p.prs_perslid_key
AND ( p.prs_perslid_oslogin IS NULL
OR p.prs_perslid_wachtwoord IS NULL
OR p.prs_perslid_email IS NULL
);
--insert into fac_usrrap (FAC_USRRAP_OMSCHRIJVING, FAC_USRRAP_VIEW_NAME, FAC_USRRAP_INFO) values
-- ('Personen zonder login..', 'CONN_V_PERSLID_Z_LOGWWMAIL', 'Personen waarbij geen login, wachtwoord of e-mail adres ingevuld is.');
--
create or replace view conn_v_bedrijf_zonder_nummer as
select * from prs_v_aanwezigbedrijf where prs_leverancier_nr is null
and prs_bedrijf_intern is null;
create or replace view CONN_RAP_OPDR_OPMERKINGEN AS
select alg_locatie_omschrijving fclt_f_locatie
,sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.MLD_OPDR_BEDRIJFOPDR_VOLGNR opdrachtnummer
,TO_CHAR(o.mLD_OPDR_DATUMBEGIN, 'dd-mm-yyyy') datum
,prs_bedrijf_naam leverancier
,mld_kenmerkopdr_waarde opmerking
from mld_opdr o
,MLD_V_AANWEZIGKENMERKOPDR ko
,mld_melding m
,alg_locatie l
,mld_discipline md
,ins_srtdiscipline sd
,prs_bedrijf b
where o.mld_opdr_key = ko.mld_opdr_key
and ko.MLD_KENMERK_KEY = 75
and o.MLD_TYPEOPDR_KEY = 5
and m.mld_melding_key = o.mld_melding_key
and m.mld_alg_locatie_key = l.alg_locatie_key
AND md.ins_discipline_key = m.mld_ins_discipline_key
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
and b.prs_bedrijf_key(+) = o.MLD_UITVOERENDE_KEYS order by 1;
-- *
-- * FAC_V_WEB_AUTORISATIE view
-- *
CREATE OR REPLACE VIEW FAC_V_WEB_AUTORISATIE
(BEDRIJF, FCLT_F_BUSINESS_UNIT, FCLT_F_NAAM, FCLT_F_USERID, FCLT_F_GROEP)
AS
SELECT B.prs_bedrijf_naam as BEDRIJF
, AD.prs_afdeling_omschrijving as FCLT_F_BUSINESS_UNIT
, PF.prs_perslid_naam_full as FCLT_F_NAAM
, P.PRS_PERSLID_OSLOGIN as FCLT_F_USERID
, GR.fac_groep_upper as FCLT_F_GROEP
FROM PRS_V_AANWEZIGPERSLID P
, PRS_AFDELING AD
, PRS_V_AFDELING_BOOM AB
, PRS_BEDRIJF B
, FAC_GEBRUIKERSGROEP GG
, FAC_GROEP GR
, PRS_V_PERSLID_FULLNAMES PF
WHERE GG.fac_groep_key=GR.fac_groep_key
AND P.prs_perslid_key=GG.prs_perslid_key
AND P.prs_afdeling_key = AB.prs_afdeling_key
AND AB.prs_bedrijf_key = B.prs_bedrijf_key
AND AB.prs_afdeling_key1 = AD.prs_afdeling_key
AND PF.prs_perslid_key = p.prs_perslid_key;
-- view wordt niet meer gebruikt omdat kenmerken niet meer bestaan
CREATE OR REPLACE VIEW CONN_FIATTERING
(BESTELLER, LIMIET, FIATTEUR1, LIMIET1, FIATTEUR2,
LIMIET2)
AS
SELECT p.prs_perslid_naam||DECODE(p.prs_perslid_voorletters,null,'',', '||p.prs_perslid_voorletters)||DECODE(p.prs_perslid_voornaam,null,'',' ('||p.prs_perslid_voornaam||')') Besteller,
RTRIM(K2.prs_kenmerklink_waarde) Limiet1,
F1.prs_perslid_naam||DECODE(F1.prs_perslid_voorletters,null,'',', '||F1.prs_perslid_voorletters)||DECODE(F1.prs_perslid_voornaam,null,'',' ('||F1.prs_perslid_voornaam||')') Fiatteur1,
RTRIM(K4.prs_kenmerklink_waarde) Limiet2,
F2.prs_perslid_naam||DECODE(F2.prs_perslid_voorletters,null,'',', '||F2.prs_perslid_voorletters)||DECODE(F2.prs_perslid_voornaam,null,'',' ('||F2.prs_perslid_voornaam||')') Fiatteur2,
RTRIM(K5.prs_kenmerklink_waarde) Limiet3
FROM prs_v_aanwezigperslid P, prs_kenmerklink K1, prs_kenmerklink K2, prs_v_aanwezigperslid F1, prs_kenmerklink K3, prs_kenmerklink K4, prs_kenmerklink K5, prs_v_aanwezigperslid F2
WHERE K1.prs_kenmerk_key(+)=1000 -- Fiatteur
AND K1.prs_link_key(+)=P.prs_perslid_key
AND K2.prs_kenmerk_key(+)=1001 -- Limiet
AND K2.prs_link_key(+)=P.prs_perslid_key
AND F1.prs_perslid_key(+) = fac.safe_to_number(K1.prs_kenmerklink_waarde)
AND K3.prs_kenmerk_key(+)=1000 -- Fiatteur
AND K3.prs_link_key(+)=F1.prs_perslid_key
AND F2.prs_perslid_key(+) = fac.safe_to_number(K3.prs_kenmerklink_waarde)
AND K4.prs_kenmerk_key(+)=1001 -- Limiet
AND K4.prs_link_key(+)=F1.prs_perslid_key
AND K5.prs_kenmerk_key(+)=1001 -- Limiet
AND K5.prs_link_key(+)=fac.safe_to_number(K3.prs_kenmerklink_waarde)
AND K2.PRS_KENMERK_KEY IS NOT NULL
ORDER BY 1;
/* Formatted on 2006/06/16 10:13 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_mi_rapport_vest_man (nr,
fclt_f_maand,
naam,
fclt_f_business_unit,
fclt_f_afdeling,
kostenplaats,
aantal,
fclt_f_catalogus,
prijs,
fclt_3d_afdeling_key
)
AS
SELECT TO_CHAR (b.bes_bestelling_key) c1, TO_CHAR (bes_bestelling_datum, 'YYMM') c3,
prs_perslid_naam || DECODE (prs_perslid_voorletters, NULL, '', ', ' || prs_perslid_voorletters) c6,
bu.prs_afdeling_omschrijving c5, fu.prs_afdeling_naam || '/' || a.prs_afdeling_omschrijving c7,
kpl.prs_kostenplaats_nr kp, SUM (bi.bes_bestelling_item_aantal) c9, d.ins_discipline_omschrijving d1,
SUM (bi.bes_bestelling_item_aantal * pr.prijs) c10, fu.prs_afdeling_key
FROM bes_bestelling_item bi,
ins_srtdeel srt,
bes_bestelling b,
bes_bestellingstatuses s,
prs_perslid p,
prs_afdeling a,
prs_afdeling bu,
prs_v_afdeling_boom bo,
prs_v_afdeling_fullnames fu,
ins_srtgroep g,
ins_tab_discipline d,
bes_v_item_prijs pr,
prs_kostenplaats kpl
WHERE b.bes_bestelling_status = s.bes_bestellingstatuses_key
AND bi.ins_srtdeel_key = srt.ins_srtdeel_key
AND bi.bes_bestelling_item_key = pr.bes_bestelling_item_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND p.prs_perslid_key = b.prs_perslid_key
AND bo.prs_afdeling_key(+) = a.prs_afdeling_key
AND fu.prs_afdeling_key = a.prs_afdeling_key
AND bu.prs_afdeling_key = bo.prs_afdeling_key1
AND p.prs_afdeling_key = a.prs_afdeling_key
AND srt.ins_srtgroep_key = g.ins_srtgroep_key
AND g.ins_discipline_key = d.ins_discipline_key
AND (b.bes_bestelling_status = 6 OR b.bes_bestelling_status = 7 OR b.bes_bestelling_status = 5)
AND b.prs_kostenplaats_key = kpl.prs_kostenplaats_key(+)
GROUP BY b.bes_bestelling_key,
TO_CHAR (bes_bestelling_datum, 'YYMM'),
prs_perslid_naam || DECODE (prs_perslid_voorletters, NULL, '', ', ' || prs_perslid_voorletters),
bu.prs_afdeling_omschrijving,
fu.prs_afdeling_naam || '/' || a.prs_afdeling_omschrijving,
d.ins_discipline_omschrijving,
kpl.prs_kostenplaats_nr,
fu.prs_afdeling_key;
-- RD: Door wie wordt deze view nog gebruikt?
CREATE OR REPLACE VIEW CONN_V_RUIMTEGEG
(ALG_LOCATIE_KEY,ALG_LOCATIE_CODE, ALG_GEBOUW_UPPER, ALG_GEBOUW_KEY, ALG_VERDIEPING_CODE, ALG_RUIMTE_KEY,
ALG_RUIMTE_NR, ALG_RUIMTE_OMSCHRIJVING, ALG_SRTRUIMTE_CODE, HUURDER, HUURDERNR,
CNT_CONTRACT_NUMMER, ALG_SRTRUIMTE_PRIJS, BUDGETCODE, BUSINESSUNIT, RUIMTEOPPERVLAKTE,
GEHUURDEOPPERVLAKTE, INHUUR, UITBEHEER, RUIMTESOORT)
AS
SELECT
vg.ALG_LOCATIE_KEY,
vg.ALG_LOCATIE_CODE,
vg.ALG_GEBOUW_UPPER,
ALG_GEBOUW_KEY,
vg.ALG_VERDIEPING_CODE,
vg.alg_ruimte_key,
vg.ALG_RUIMTE_NR,
vg.ALG_RUIMTE_OMSCHRIJVING ,
(select alg_srtruimte_code from alg_srtruimte asr where asr.alg_srtruimte_key = cogc.alg_srtonrgoed_key) ,
NVL(a.prs_afdeling_omschrijving, b.prs_bedrijf_naam) ,
substr(NVL(a.prs_kostenplaats_nr, b.PRS_LEVERANCIER_NR), instr(NVL(a.prs_kostenplaats_nr, b.PRS_LEVERANCIER_NR),'/')+1,15),
cnt.CNT_CONTRACT_NUMMER ,
(select alg_srtruimte_prijs from alg_srtruimte asr where asr.alg_srtruimte_key = cogc.alg_srtonrgoed_key) ,
substr(NVL(a.prs_kostenplaats_nr, b.PRS_LEVERANCIER_NR),0, instr(NVL(a.prs_kostenplaats_nr, b.PRS_LEVERANCIER_NR),'/')-1),
nvl ( (select prs_afdeling_omschrijving from prs_afdeling abu, prs_v_afdeling_boom ab where ab.prs_afdeling_key1 = abu.prs_afdeling_key and ab.prs_afdeling_key = a.prs_afdeling_key),
(select fac_usrdata_code from fac_usrdata ud, prs_kenmerklink kl where kl.prs_kenmerk_key = 1015 and prs_link_key = b.prs_bedrijf_key and kl.prs_kenmerklink_waarde = ud.fac_usrdata_key)) Businessunit,
(select FAC.safe_To_Number(alg_onrgoedkenmerk_waarde) from alg_onrgoedkenmerk aok
where aok.alg_onrgoed_key = vg.alg_ruimte_key
and aok.alg_kenmerk_key = 106) GetekendOppervlakte,
TO_NUMBER(TO_CHAR(FAC.SAFE_TO_NUMBER(cogc.CNT_CONTRACT_ONRGOED_OPP) ,'99999999D')) ,
DECODE (NVL(inh.alg_onrgoedkenmerk_waarde,''), 130, 'Nee', 129, 'Ja'),
--inh.alg_onrgoedkenmerk_waarde,
uit.alg_onrgoedkenmerk_waarde,
DECODE (substr((select alg_srtruimte_code from alg_srtruimte asr where asr.alg_srtruimte_key = cogc.alg_srtonrgoed_key),0,1),
'A','AR',
'B','B',
'K','K',
'S','S',
'W','W',
'P','P')
FROM
--(SELECT vg.alg_locatie_code, vg.ALG_RUIMTE_OMSCHRIJVING, vg.alg_ruimte_nr, vg.alg_gebouw_upper, vg.alg_verdieping_upper FROM alg_v_ruimte_gegevens VG) ALLE_RUIMTES,
alg_v_ruimte_gegevens VG,
CNT_V_CNT_CONTRACT_ONRGOED_CUR cogc,
CNT_V_AANWEZIGCONTRACT cnt,
(select * from PRS_AFDELING af, prs_kostenplaats ks where af.prs_kostenplaats_key = ks.prs_kostenplaats_key(+)) a,
PRS_BEDRIJF b,
ALG_V_AANWEZIGONRGOEDKENMERK uit, -- uitbeheer datum locatieniveau
ALG_V_AANWEZIGONRGOEDKENMERK inh -- inhuur locatieniveau
WHERE
vg.alg_ruimte_key = cogc.alg_onrgoed_key (+) AND
cogc.cnt_contract_key = cnt.cnt_contract_key (+) AND
cnt.CNT_PRS_AFDELING_KEY = a.prs_afdeling_key (+) AND
cnt.CNT_PRS_BEDRIJF_KEY = b.prs_bedrijf_key (+) AND
vg.alg_locatie_key = uit.alg_onrgoed_key(+) AND
uit.alg_kenmerk_key(+) = 22 AND --uit beheer datum locatieniveau
vg.alg_locatie_key = inh.alg_onrgoed_key(+) AND
inh.alg_kenmerk_key(+) = 10;
/
-- RD: Door wie wordt deze view nog gebruikt?
CREATE OR REPLACE VIEW CONN_V_TERREINGEG
(ALG_LOCATIE_KEY,ALG_LOCATIE_CODE, ALG_GEBOUW_UPPER, ALG_GEBOUW_KEY, ALG_VERDIEPING_CODE, ALG_RUIMTE_KEY,
ALG_RUIMTE_NR, ALG_RUIMTE_OMSCHRIJVING, ALG_SRTRUIMTE_CODE, HUURDER, HUURDERNR,
CNT_CONTRACT_NUMMER, ALG_SRTRUIMTE_PRIJS, BUDGETCODE, BUSINESSUNIT, RUIMTEOPPERVLAKTE,
GEHUURDEOPPERVLAKTE, INHUUR, UITBEHEER, ALG_TERREINSECTOR_KEY)
AS
SELECT
l.ALG_LOCATIE_KEY,
l.ALG_LOCATIE_CODE,
tg.ALG_TERREINSECTOR_CODE ALG_GEBOUW_UPPER,
TO_NUMBER(NULL),
TO_NUMBER(NULL),
tg.alg_terreinsector_key ALG_RUIMTE_KEY,
tg.ALG_TERREINSECTOR_NAAM ALG_RUIMTE_NUMMER,
tg.ALG_TERREINSECTOR_OMSCHRIJVING ALG_RUIMTE_OMSCHRIJVING ,
(select alg_srtterreinsector_code from alg_srtterreinsector asr where asr.alg_srtterreinsector_key = cogc.alg_srtonrgoed_key) ,
NVL(a.prs_afdeling_omschrijving, b.PRS_BEDRIJF_NAAM) ,
substr(NVL(a.prs_kostenplaats_nr, b.PRS_LEVERANCIER_NR),instr(NVL(a.prs_kostenplaats_nr, b.PRS_LEVERANCIER_NR),'/')+1,10),
cnt.CNT_CONTRACT_NUMMER ,
(select alg_srtterreinsector_prijs from alg_srtterreinsector asr where asr.alg_srtterreinsector_key = cogc.alg_srtonrgoed_key) ,
substr(NVL(a.prs_kostenplaats_nr, b.PRS_LEVERANCIER_NR),0,instr(NVL(a.prs_kostenplaats_nr, b.PRS_LEVERANCIER_NR),'/')-1), --budgetcode
nvl ( (select prs_afdeling_omschrijving from prs_afdeling abu, prs_v_afdeling_boom ab where ab.prs_afdeling_key1 = abu.prs_afdeling_key and ab.prs_afdeling_key = a.prs_afdeling_key),
(select fac_usrdata_code from fac_usrdata ud, prs_kenmerklink kl where kl.prs_kenmerk_key = 1015 and prs_link_key = b.prs_bedrijf_key and kl.prs_kenmerklink_waarde = ud.fac_usrdata_key)) Businessunit,
(select FAC.safe_To_Number(alg_onrgoedkenmerk_waarde) from alg_onrgoedkenmerk aok
where aok.alg_onrgoed_key = tg.alg_terreinsector_key
and aok.alg_kenmerk_key = 106) GetekendOppervlakte,
TO_NUMBER(TO_CHAR(FAC.SAFE_TO_NUMBER(cogc.CNT_CONTRACT_ONRGOED_OPP) ,'99999999D')) ,
DECODE (NVL(inh.alg_onrgoedkenmerk_waarde,''), 130, 'Nee', 129, 'Ja'),
-- inh.alg_onrgoedkenmerk_waarde,
uit.alg_onrgoedkenmerk_waarde,
alg_terreinsector_key
FROM
alg_v_aanwezigterreinsector tg,
alg_locatie l,
CNT_V_CNT_CONTRACT_ONRGOED_CUR cogc,
CNT_V_AANWEZIGCONTRACT cnt,
(select * from PRS_AFDELING, prs_kostenplaats where PRS_AFDELING.prs_kostenplaats_key = prs_kostenplaats.prs_kostenplaats_key(+)) a,
PRS_BEDRIJF b,
ALG_V_AANWEZIGONRGOEDKENMERK uit, -- uitbeheer datum locatieniveau
ALG_V_AANWEZIGONRGOEDKENMERK inh -- inhuur locatieniveau
WHERE
tg.alg_locatie_key = l.alg_locatie_key AND
tg.alg_terreinsector_key = cogc.alg_onrgoed_key (+) AND
cogc.cnt_contract_key = cnt.cnt_contract_key (+) AND
cnt.CNT_PRS_AFDELING_KEY = a.prs_afdeling_key (+) AND
cnt.CNT_PRS_BEDRIJF_KEY = b.prs_bedrijf_key (+) AND
tg.alg_locatie_key = uit.alg_onrgoed_key(+) AND
uit.alg_kenmerk_key(+) = 22 AND --uit beheer datum locatieniveau
tg.alg_locatie_key = inh.alg_onrgoed_key(+) AND
inh.alg_kenmerk_key(+) = 10;
/* Formatted on 2006/06/16 10:17 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_v_ppi1 (aanvraagnummer,
fclt_f_maand,
besteller,
afdeling,
artikelnummer,
omschrijving,
aantal,
prijs,
fclt_3d_afdeling_key
)
AS
SELECT b.bes_bestelling_key, TO_CHAR (b.bes_bestelling_datum, 'YYMM'),
p.prs_perslid_naam || ' ' || NVL (p.prs_perslid_voorletters, '') || ' ' || NVL (p.prs_perslid_voornaam, ''),
a.prs_afdeling_naam, s.ins_srtdeel_nr, s.ins_srtdeel_omschrijving,
TO_CHAR (i.bes_bestelling_item_aantal, '99999990'), TO_CHAR (pr.prijs, '99999990D00'), a.prs_afdeling_key
FROM bes_bestelling b,
bes_bestelling_item i,
prs_perslid p,
prs_afdeling a,
ins_srtdeel s,
ins_srtgroep g,
ins_tab_discipline d,
bes_v_item_prijs pr
WHERE b.bes_bestelling_key = i.bes_bestelling_key
AND i.bes_bestelling_item_key = pr.bes_bestelling_item_key
AND b.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND i.ins_srtdeel_key = s.ins_srtdeel_key
AND s.ins_srtgroep_key = g.ins_srtgroep_key
AND g.ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_key = 21;
CREATE OR REPLACE VIEW CONN_V_PPI1_TOT
(FCLT_F_MAAND, AANTAL, TOTAALBEDRAG)
AS
SELECT
FCLT_F_Maand
,SUM(TO_NUMBER(Aantal, '999999D99', 'nls_numeric_characters = ''.,'''))
,SUM(TO_NUMBER(Aantal, '999999D99', 'nls_numeric_characters = ''.,''') * TO_NUMBER(prijs, '999999D99', 'nls_numeric_characters = ''.,'''))
FROM CONN_V_PPI1
GROUP BY FCLT_F_Maand;
CREATE OR REPLACE VIEW conn_v_ppi2_all (opdrachtnummer,
fclt_f_maand,
besteller,
afdeling,
totaalbedrag,
bes_bestelopdr_datum,
bes_bestelopdr_leverdatum,
prs_afdeling_key
)
AS
SELECT bo.bes_bestelopdr_key, TO_CHAR (bo.bes_bestelopdr_datum, 'YYMM'),
pp.prs_perslid_naam || ' ' || NVL (pp.prs_perslid_voorletters, '') || ' '
|| NVL (pp.prs_perslid_voornaam, ''),
ad.prs_afdeling_naam, pr.prijs * bi.bes_bestelling_item_aantal, bo.bes_bestelopdr_datum,
bo.bes_bestelopdr_leverdatum, ad.prs_afdeling_key
FROM bes_bestelling bb,
bes_bestelling_item bi,
bes_bestelopdr bo,
bes_bestelopdr_item boi,
prs_perslid pp,
prs_afdeling ad,
bes_v_item_prijs pr
WHERE bb.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_bestelling_item_key = pr.bes_bestelling_item_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bo.prs_perslid_key = pp.prs_perslid_key
AND pp.prs_afdeling_key = ad.prs_afdeling_key;
CREATE OR REPLACE VIEW CONN_V_PPI2_SUBSET
(OPDRACHTNUMMER, FCLT_F_MAAND, BESTELLER, AFDELING, TOTAALBEDRAG,
PRS_AFDELING_KEY)
AS
SELECT
Opdrachtnummer,
FCLT_F_Maand,
Besteller,
Afdeling,
Totaalbedrag,
PRS_AFDELING_KEY
FROM CONN_V_PPI2_ALL
WHERE (
(BES_BESTELOPDR_LEVERDATUM > mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(BES_BESTELOPDR_DATUM, 4,'DAGEN'))
OR
(BES_BESTELOPDR_LEVERDATUM IS NULL AND
sysdate > mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(BES_BESTELOPDR_DATUM, 4,'DAGEN')
)
);
CREATE OR REPLACE VIEW CONN_V_PPI2
(OPDRACHTNUMMER, FCLT_F_MAAND, BESTELLER, AFDELING, TOTAALBEDRAG,
FCLT_3D_AFDELING_KEY)
AS
SELECT
Opdrachtnummer,
FCLT_F_Maand,
Besteller,
Afdeling,
TO_CHAR(SUM(Totaalbedrag),'99999990D00'),
PRS_AFDELING_KEY
FROM CONN_V_PPI2_SUBSET
GROUP BY Opdrachtnummer,FCLT_F_Maand,Besteller,Afdeling,PRS_AFDELING_KEY;
CREATE OR REPLACE VIEW CONN_V_PPI2_TOT
(FCLT_F_MAAND, AANTAL, TOTAAL)
AS
SELECT FCLT_F_Maand, SUM(Aantal) Aantal, SUM(Totaal) Totaal
FROM
(
SELECT FCLT_F_Maand, COUNT(Opdrachtnummer) Aantal, 0 Totaal
FROM (SELECT FCLT_F_Maand, Opdrachtnummer
FROM CONN_V_PPI2 A
GROUP BY FCLT_F_Maand, Opdrachtnummer)
GROUP BY FCLT_F_Maand
UNION
SELECT FCLT_F_Maand, 0, COUNT(Opdrachtnummer)
FROM (SELECT FCLT_F_Maand, Opdrachtnummer
FROM CONN_V_PPI2_ALL B
GROUP BY FCLT_F_Maand, Opdrachtnummer)
GROUP BY FCLT_F_Maand
)
GROUP BY FCLT_F_Maand;
/* Formatted on 2006/06/16 10:18 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_v_ppi3_all (aanvraagnummer,
fclt_f_maand,
besteller,
afdeling,
fiatteur,
status,
aantal,
prijs,
totaalbedrag,
bes_bestelling_datum,
bes_bestelling_afgewezen,
bes_bestelling_geaccepteerd,
prs_afdeling_key
)
AS
SELECT b.bes_bestelling_key, TO_CHAR (b.bes_bestelling_datum, 'YYMM'),
p.prs_perslid_naam || ' ' || NVL (p.prs_perslid_voorletters, '') || ' ' || NVL (p.prs_perslid_voornaam, ''),
a.prs_afdeling_naam,
p2.prs_perslid_naam || ' ' || NVL (p2.prs_perslid_voorletters, '') || ' '
|| NVL (p2.prs_perslid_voornaam, ''),
bs.bes_bestellingstatuses_omschr, i.bes_bestelling_item_aantal, pr.prijs,
i.bes_bestelling_item_aantal * pr.prijs, b.bes_bestelling_datum, b.bes_bestelling_afgewezen,
b.bes_bestelling_geaccepteerd, a.prs_afdeling_key
FROM bes_bestelling b,
bes_bestelling_item i,
prs_perslid p,
prs_afdeling a,
prs_perslid p2,
bes_bestellingstatuses bs,
bes_v_item_prijs pr
WHERE b.bes_bestelling_key = i.bes_bestelling_key
AND i.bes_bestelling_item_key = pr.bes_bestelling_item_key
AND b.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND b.bes_bestelling_status = bs.bes_bestellingstatuses_key
AND b.bes_bestelling_fiat_user IS NOT NULL -- Dus alleen "fiatteringsbestellingen"
AND b.bes_bestelling_fiat_user = p2.prs_perslid_key;
CREATE OR REPLACE VIEW CONN_V_PPI3_SUBSET
(AANVRAAGNUMMER, FCLT_F_MAAND, BESTELLER, AFDELING, FIATTEUR,
STATUS, AANTAL, PRIJS, TOTAALBEDRAG, BES_BESTELLING_DATUM,
BES_BESTELLING_AFGEWEZEN, BES_BESTELLING_GEACCEPTEERD, PRS_AFDELING_KEY)
AS
SELECT
Aanvraagnummer,
FCLT_F_Maand,
Besteller,
Afdeling,
Fiatteur,
Status,
Aantal,
Prijs,
Totaalbedrag,
BES_BESTELLING_DATUM,
BES_BESTELLING_AFGEWEZEN,
BES_BESTELLING_GEACCEPTEERD,
PRS_AFDELING_KEY
FROM CONN_V_PPI3_ALL
WHERE (
(mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(BES_BESTELLING_DATUM, 3,'DAGEN') < bes_bestelling_afgewezen)
OR
(mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(BES_BESTELLING_DATUM, 3,'DAGEN') < bes_bestelling_geaccepteerd)
OR
(bes_bestelling_afgewezen IS NULL AND bes_bestelling_geaccepteerd IS NULL AND
mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(BES_BESTELLING_DATUM, 3,'DAGEN') < SYSDATE)
);
CREATE OR REPLACE VIEW CONN_V_PPI3
(AANVRAAGNUMMER, FCLT_F_MAAND, BESTELLER, AFDELING, FIATTEUR,
STATUS, TOTAALBEDRAG, BESTELD, AFGEWEZEN, GEFIATTEERD,
FCLT_3D_AFDELING_KEY)
AS
SELECT
Aanvraagnummer,
FCLT_F_Maand,
Besteller,
Afdeling,
Fiatteur,
Status,
TO_CHAR(SUM(Totaalbedrag),'99999990D00'),
BES_BESTELLING_DATUM,
BES_BESTELLING_AFGEWEZEN,
BES_BESTELLING_GEACCEPTEERD,
PRS_AFDELING_KEY
FROM CONN_V_PPI3_SUBSET
GROUP BY Aanvraagnummer, FCLT_F_Maand, Besteller, Afdeling, Fiatteur, Status,
BES_BESTELLING_DATUM, BES_BESTELLING_AFGEWEZEN, BES_BESTELLING_GEACCEPTEERD,
PRS_AFDELING_KEY;
CREATE OR REPLACE VIEW CONN_V_PPI3_TOT
(FCLT_F_MAAND, TOTAAL, TELAAT)
AS
SELECT fclt_f_maand, SUM(totaal) Totaal,SUM(totaal)-SUM(optijd) Telaat
FROM
(
SELECT FCLT_F_Maand, COUNT(*) Totaal, 0 Optijd
FROM (SELECT FCLT_F_Maand, aanvraagnummer
FROM CONN_V_PPI3_ALL A
GROUP BY FCLT_F_Maand, aanvraagnummer)
GROUP BY FCLT_F_Maand
UNION
SELECT FCLT_F_Maand, 0, COUNT(*)
FROM (SELECT FCLT_F_Maand, aanvraagnummer
FROM CONN_V_PPI3_SUBSET A
GROUP BY FCLT_F_Maand, aanvraagnummer)
GROUP BY FCLT_F_Maand
)
GROUP BY FCLT_F_Maand;
CREATE OR REPLACE VIEW CONN_V_PPI4_
(AANVRAAGNUMMER, FCLT_F_MAAND, BESTELLER, AFDELING, AANTAL,
TOTAALPRIJS, PRS_AFDELING_KEY)
AS
SELECT
B.bes_bestelling_key,
TO_CHAR(B.bes_bestelling_datum, 'YYMM'),
P.prs_perslid_naam || ' ' || NVL(P.prs_perslid_voorletters, '') || ' ' || NVL(P.prs_perslid_voornaam, ''),
A.prs_afdeling_naam,
I.bes_bestelling_item_aantal,
I.bes_bestelling_item_aantal * PR.prijs,
A.PRS_AFDELING_KEY
FROM BES_BESTELLING B, BES_BESTELLING_ITEM I, PRS_PERSLID P, PRS_AFDELING A,
bes_v_item_prijs PR
WHERE B.BES_BESTELLING_KEY = I.BES_BESTELLING_KEY
AND I.bes_bestelling_item_key = PR.bes_bestelling_item_key
AND B.prs_perslid_key = P.prs_perslid_key
AND P.prs_afdeling_key = A.prs_afdeling_key;
CREATE OR REPLACE VIEW CONN_V_PPI4
(AANVRAAGNUMMER, FCLT_F_MAAND, BESTELLER, AFDELING, AANTAL,
TOTAALPRIJS, FCLT_3D_AFDELING_KEY)
AS
SELECT
Aanvraagnummer,
FCLT_F_Maand,
Besteller,
Afdeling,
TO_CHAR(SUM(Aantal),'9999999999'),
TO_CHAR(SUM(Totaalprijs),'99999990D00'),
PRS_AFDELING_KEY
FROM CONN_V_PPI4_
GROUP BY Aanvraagnummer,FCLT_F_Maand,Besteller,Afdeling, prs_afdeling_key
HAVING SUM(Totaalprijs) < 50;
CREATE OR REPLACE VIEW CONN_V_PPI4_TOT
(FCLT_F_MAAND, AANTAL, TOTAAL)
AS
SELECT fclt_f_maand, SUM(Aantal) Aantal, SUM(Totaal) Totaal
FROM
(
SELECT FCLT_F_Maand, COUNT(*) Aantal, 0 Totaal
FROM (SELECT FCLT_F_Maand, aanvraagnummer
FROM CONN_V_PPI4 A
GROUP BY FCLT_F_Maand, aanvraagnummer)
GROUP BY FCLT_F_Maand
UNION
SELECT FCLT_F_Maand, 0, COUNT(*)
FROM (SELECT FCLT_F_Maand, aanvraagnummer
FROM CONN_V_PPI4_ A
GROUP BY FCLT_F_Maand, aanvraagnummer)
GROUP BY FCLT_F_Maand
)
GROUP BY FCLT_F_Maand;
/* Formatted on 2006/06/16 10:24 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_v_ppi5_all (opdrachtnummer, fclt_f_maand, opmerking, prs_afdeling_key)
AS
SELECT bo.bes_bestelopdr_key, TO_CHAR (bo.bes_bestelopdr_datum, 'YYMM'), bo.bes_bestelopdr_delivery_opmerk,
p.prs_afdeling_key
FROM bes_bestelling bb, bes_bestelling_item bi, bes_bestelopdr bo, bes_bestelopdr_item boi, prs_perslid p
WHERE bb.bes_bestelling_key = bi.bes_bestelling_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND bb.prs_perslid_key = p.prs_perslid_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key;
/* Formatted on 2006/06/16 10:22 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_v_ppi5 (opdrachtnummer, fclt_f_maand, opmerking, fclt_3d_prs_afdeling_key)
AS
SELECT DISTINCT bo.bes_bestelopdr_key, TO_CHAR (bo.bes_bestelopdr_datum, 'YYMM'), bo.bes_bestelopdr_delivery_opmerk,
p.prs_afdeling_key
FROM bes_bestelling bb, bes_bestelling_item bi, bes_bestelopdr bo, bes_bestelopdr_item boi, prs_perslid p
WHERE bb.bes_bestelling_key = bi.bes_bestelling_key
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bb.prs_perslid_key = p.prs_perslid_key
AND bes_bestelopdr_delivery_opmerk IS NOT NULL;
CREATE OR REPLACE VIEW CONN_V_PPI5_TOT
(FCLT_F_MAAND, AANTAL, TOTAAL)
AS
SELECT fclt_f_maand, SUM(Aantal) Aantal, SUM(Totaal) Totaal
FROM
(
SELECT FCLT_F_Maand, COUNT(*) Aantal, 0 Totaal
FROM (SELECT FCLT_F_Maand, opdrachtnummer
FROM CONN_V_PPI5 A
GROUP BY FCLT_F_Maand, opdrachtnummer)
GROUP BY FCLT_F_Maand
UNION
SELECT FCLT_F_Maand, 0, COUNT(*)
FROM (SELECT FCLT_F_Maand, opdrachtnummer
FROM CONN_V_PPI5_ALL A
GROUP BY FCLT_F_Maand, opdrachtnummer)
GROUP BY FCLT_F_Maand
)
GROUP BY FCLT_F_Maand;
CREATE OR REPLACE VIEW CONN_V_PPI_OVERZICHT
(PPI, FCLT_F_MAAND, AANTAL, TOTAAL)
AS
SELECT 'PPI1 - Bestelling artikelen Luxe catalogus per maand',FCLT_F_Maand,TO_CHAR(Aantal),TO_CHAR(Totaalbedrag,'99999990D00')
FROM CONN_V_PPI1_TOT
UNION
SELECT 'PPI2 - Juistheid "afmelding" ontvangsten per maand',FCLT_F_Maand,TO_CHAR(Aantal),TO_CHAR(Totaal)
FROM CONN_V_PPI2_TOT
UNION
SELECT 'PPI3 - Tijd tussen aanvraag en fiattering per maand',FCLT_F_Maand,TO_CHAR(Telaat),TO_CHAR(Totaal)
FROM CONN_V_PPI3_TOT
UNION
SELECT 'PPI4 - Kleine bestellingen per maand',FCLT_F_Maand,TO_CHAR(Aantal),TO_CHAR(Totaal)
FROM CONN_V_PPI4_TOT
UNION
SELECT 'PPI5 - Niet tevreden ontvangers per maand',FCLT_F_Maand,TO_CHAR(Aantal),TO_CHAR(Totaal)
FROM CONN_V_PPI5_TOT;
-- *
-- * CONN_V_DELETED_LOC_GEG view
-- * Overzicht verwijderde locaties (CONN#188)
-- *
CREATE OR REPLACE FORCE VIEW CONN_V_DELETED_LOC_GEG
(FCLT_F_LOCATIE_CODE, OMSCHRIJVING, BEZOEK_ADRES,
BEZOEK_PLAATS, VERWIJDERDATUM, UITBEHEER, DISTRICT)
AS
SELECT l.alg_locatie_code,
l.alg_locatie_omschrijving,
l.alg_locatie_adres,
l.alg_locatie_plaats,
l.alg_locatie_verwijder,
(SELECT aok.alg_onrgoedkenmerk_waarde from alg_onrgoedkenmerk aok
WHERE alg_onrgoed_key = l.alg_locatie_key
AND alg_kenmerk_key = 22),
d.alg_district_omschrijving
FROM alg_locatie l,
alg_district d
WHERE d.alg_district_key(+) = l.alg_district_key
AND (l.alg_locatie_verwijder IS NOT NULL
OR
l.alg_locatie_key IN (
SELECT alg_onrgoed_key from alg_onrgoedkenmerk aok
WHERE alg_onrgoed_niveau = 'L'
AND alg_kenmerk_key = 22))
ORDER BY l.alg_locatie_upper ASC;
commit;
-- *
-- * CONN_V_SCHOON_TOT_LOC_GEG view
-- * Schoonmaak overzicht totaalgegevens per locatie (CONN#232)
-- *
CREATE OR REPLACE FORCE VIEW CONN_V_SCHOON_TOT_LOC_GEG
(FCLT_F_LOCATIE_CODE, OMSCHRIJVING, FCLT_F_BEDRIJF, TOT_OPP, OPP_GLAS_BINNEN, OPP_GLAS_BUITEN,
TOT_KOSTEN, TOESLAG, SCHOONMAAKKOSTEN, GLASBEWASSING, OVERIGE_KOSTEN, AFRONDING)
AS
SELECT l.alg_locatie_code,
l.alg_locatie_omschrijving,
b.prs_bedrijf_naam schoonmaakbedrijf,
FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde) totaal_oppervlakte,
FAC.SAFE_TO_NUMBER(kogb.alg_onrgoedkenmerk_waarde) opp_glas_binnen_kantoor,
FAC.SAFE_TO_NUMBER(kogbu.alg_onrgoedkenmerk_waarde) opp_glas_buiten_stalling,
ROUND(FAC.SAFE_TO_NUMBER(sb.sch_programma_bedrijf_kental)/12*FAC.SAFE_TO_NUMBER(b.prs_bedrijf_uurloon)*FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde)*((FAC.SAFE_TO_NUMBER(kt.alg_onrgoedkenmerk_waarde)/100)-1),2)+ROUND(FAC.SAFE_TO_NUMBER(sb.sch_programma_bedrijf_kental)/12*FAC.SAFE_TO_NUMBER(b.prs_bedrijf_uurloon)*FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde)*FAC.SAFE_TO_NUMBER(kt.alg_onrgoedkenmerk_waarde)/100,2)+kg.alg_onrgoedkenmerk_waarde+kbk1.alg_onrgoedkenmerk_waarde+kbk2.alg_onrgoedkenmerk_waarde+kbk3.alg_onrgoedkenmerk_waarde+ka.alg_onrgoedkenmerk_waarde totale_kosten,
ROUND(FAC.SAFE_TO_NUMBER(sb.sch_programma_bedrijf_kental)/12*FAC.SAFE_TO_NUMBER(b.prs_bedrijf_uurloon)*FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde)*((FAC.SAFE_TO_NUMBER(kt.alg_onrgoedkenmerk_waarde)/100)-1),2) toeslag,
ROUND(FAC.SAFE_TO_NUMBER(sb.sch_programma_bedrijf_kental)/12*FAC.SAFE_TO_NUMBER(b.prs_bedrijf_uurloon)*FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde)*FAC.SAFE_TO_NUMBER(kt.alg_onrgoedkenmerk_waarde)/100,2) schoonmaakkosten,
FAC.SAFE_TO_NUMBER(kg.alg_onrgoedkenmerk_waarde) glasbewassing,
FAC.SAFE_TO_NUMBER(kbk1.alg_onrgoedkenmerk_waarde)+FAC.SAFE_TO_NUMBER(kbk2.alg_onrgoedkenmerk_waarde)+FAC.SAFE_TO_NUMBER(kbk3.alg_onrgoedkenmerk_waarde) overige_kosten,
FAC.SAFE_TO_NUMBER(ka.alg_onrgoedkenmerk_waarde) afrondingsverschil
FROM alg_v_aanweziglocatie l,
alg_onrgoedkenmerk ko, -- oppervlak
alg_onrgoedkenmerk ksp, -- schoonmaakprogramma
alg_onrgoedkenmerk ksb, -- schoonmaakbedrijf
alg_onrgoedkenmerk kogb, -- oppervlakte glas binnen (glas kantoor)
alg_onrgoedkenmerk kogbu, -- oppervlakte glas buiten (glas stalling)
alg_onrgoedkenmerk kt, -- toeslag
alg_onrgoedkenmerk kg, -- glasbewassing
alg_onrgoedkenmerk kbk1, -- bijkomende kosten bedrag 1 (overige kosten)
alg_onrgoedkenmerk kbk2, -- bijkomende kosten bedrag 2 (overige kosten)
alg_onrgoedkenmerk kbk3, -- bijkomende kosten bedrag 3 (overige kosten)
alg_onrgoedkenmerk ka, -- afronding
sch_programma_bedrijf sb,
prs_bedrijf b
WHERE l.alg_locatie_key = ko.alg_onrgoed_key(+)
AND ko.alg_kenmerk_key(+) = 99 -- oppervlak
AND ko.alg_onrgoed_niveau(+) = 'L'
--
AND l.alg_locatie_key = ksp.alg_onrgoed_key(+)
AND ksp.alg_kenmerk_key(+) = 98 -- schoonmaakprogramma
AND ksp.alg_onrgoed_niveau(+) = 'L'
AND sb.sch_programma_key(+) = ksp.alg_onrgoedkenmerk_waarde
--
AND l.alg_locatie_key = ksb.alg_onrgoed_key(+)
AND ksb.alg_kenmerk_key(+) = 97 -- schoonmaakbedrijf
AND ksb.alg_onrgoed_niveau(+) = 'L'
AND b.prs_bedrijf_key(+) = ksb.alg_onrgoedkenmerk_waarde
AND sb.prs_bedrijf_key = b.prs_bedrijf_key
--
AND l.alg_locatie_key = kogb.alg_onrgoed_key(+)
AND kogb.alg_kenmerk_key(+) = 89 -- oppervlakte glas binnen (glas kantoor)
AND kogb.alg_onrgoed_niveau(+) = 'L'
--
AND l.alg_locatie_key = kogbu.alg_onrgoed_key(+)
AND kogbu.alg_kenmerk_key(+) = 90 -- oppervlakte glas buiten (glas stalling)
AND kogbu.alg_onrgoed_niveau(+) = 'L'
--
AND l.alg_locatie_key = kt.alg_onrgoed_key(+)
AND kt.alg_kenmerk_key(+) = 87 -- toeslag
AND kt.alg_onrgoed_niveau(+) = 'L'
--
AND l.alg_locatie_key = kg.alg_onrgoed_key(+)
AND kg.alg_kenmerk_key(+) = 40 -- glasbewassing
AND kg.alg_onrgoed_niveau(+) = 'L'
--
AND l.alg_locatie_key = kbk1.alg_onrgoed_key(+)
AND kbk1.alg_kenmerk_key(+) = 43 -- bijkomende kosten bedrag 1 (overige kosten)
AND kbk1.alg_onrgoed_niveau(+) = 'L'
--
AND l.alg_locatie_key = kbk2.alg_onrgoed_key(+)
AND kbk2.alg_kenmerk_key(+) = 45 -- bijkomende kosten bedrag 2 (overige kosten)
AND kbk2.alg_onrgoed_niveau(+) = 'L'
--
AND l.alg_locatie_key = kbk3.alg_onrgoed_key(+)
AND kbk3.alg_kenmerk_key(+) = 47 -- bijkomende kosten bedrag 3 (overige kosten)
AND kbk3.alg_onrgoed_niveau(+) = 'L'
--
AND l.alg_locatie_key = ka.alg_onrgoed_key(+)
AND ka.alg_kenmerk_key(+) = 105 -- afronding
AND ka.alg_onrgoed_niveau(+) = 'L'
ORDER BY l.alg_locatie_upper ASC;
commit;
-- *
-- * CONN_V_SCHOON_DETAIL_GEG view
-- * Schoonmaak overzicht detailgegevens per ruimte (CONN#232)
-- *
CREATE OR REPLACE FORCE VIEW CONN_V_SCHOON_DETAIL_GEG
(FCLT_F_LOC, RUIMTENR, OPP, FREQ, RUIMTE_SOORT, VLOER_AFW, PROGRAMMA, KENTAL,
FCLT_F_BEDRIJF, SCHOONMAAKKOSTEN, TOESLAG, RUIMTE_DICHT, RUIMTE_OPEN, FIN_OPEN, FIN_DICHT, RUIMTE_OPM,
FCLT_F_HUURDERNR,
FCLT_F_BUDGETCODE)
AS
SELECT rg.alg_locatie_code locatienummer,
rg.alg_ruimte_nr ruimtenummer,
FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde) oppervlakte,
(SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = sp.sch_programma_frequentie_key AND fac_usrtab_key = 83) frequentie, -- frequentie schoonmaak
(SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = sp.sch_programma_srtruimte_key AND fac_usrtab_key = 82) ruimtesoort, -- ruimtesoort schoonmaak
(SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = sp.sch_programma_srtvloer_key AND fac_usrtab_key = 81) vloersoort, -- vloersoort schoonmaak
sp.sch_programma_code schoonmaakprogramma,
sb.sch_programma_bedrijf_kental kental,
b.prs_bedrijf_naam schoonmaakbedrijf,
ROUND(FAC.SAFE_TO_NUMBER(sb.sch_programma_bedrijf_kental)/12*FAC.SAFE_TO_NUMBER(b.prs_bedrijf_uurloon)*FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde)*FAC.SAFE_TO_NUMBER(kt.alg_onrgoedkenmerk_waarde)/100,2) schoonmaakkosten,
ROUND(FAC.SAFE_TO_NUMBER(sb.sch_programma_bedrijf_kental)/12*FAC.SAFE_TO_NUMBER(b.prs_bedrijf_uurloon)*FAC.SAFE_TO_NUMBER(ko.alg_onrgoedkenmerk_waarde)*((FAC.SAFE_TO_NUMBER(kt.alg_onrgoedkenmerk_waarde)/100)-1),2) toeslag,
krd.alg_onrgoedkenmerk_waarde ruimte_dicht_datum,
kro.alg_onrgoedkenmerk_waarde ruimte_open_datum,
kfd.alg_onrgoedkenmerk_waarde ruimte_financieel_dicht_datum,
kfo.alg_onrgoedkenmerk_waarde ruimte_financieel_open_datum,
r.alg_ruimte_opmerking,
b.huurdernr,
b.budgetcode
FROM alg_v_aanwezigruimte r,
alg_v_ruimte_gegevens rg,
alg_locatie l,
alg_onrgoedkenmerk ko, -- oppervlak
alg_onrgoedkenmerk ksp, -- schoonmaakprogramma
alg_onrgoedkenmerk ksb, -- schoonmaakbedrijf
alg_onrgoedkenmerk kt, -- toeslag
alg_onrgoedkenmerk krd, -- ruimte dicht datum
alg_onrgoedkenmerk kro, -- ruimte open datum
alg_onrgoedkenmerk kfd, -- ruimte financieel dicht datum
alg_onrgoedkenmerk kfo, -- ruimte financieel open datum
sch_programma sp,
sch_programma_bedrijf sb,
conn_v_bedrijf_gegevens b
WHERE r.alg_ruimte_key = rg.alg_ruimte_key
AND sb.sch_programma_key = sp.sch_programma_key
--
AND r.alg_ruimte_key = ko.alg_onrgoed_key(+)
AND ko.alg_kenmerk_key(+) = 77 -- oppervlak
AND ko.alg_onrgoed_niveau(+) = 'R'
--
AND r.alg_ruimte_key = ksp.alg_onrgoed_key(+)
AND ksp.alg_kenmerk_key(+) = 85 -- schoonmaakprogramma
AND ksp.alg_onrgoed_niveau(+) = 'R'
AND sp.sch_programma_key(+) = ksp.alg_onrgoedkenmerk_waarde
--
AND r.alg_ruimte_key = ksb.alg_onrgoed_key(+)
AND ksb.alg_kenmerk_key(+) = 78 -- schoonmaakbedrijf
AND ksb.alg_onrgoed_niveau(+) = 'R'
AND b.prs_bedrijf_key(+) = ksb.alg_onrgoedkenmerk_waarde
AND sb.prs_bedrijf_key = b.prs_bedrijf_key
--
AND r.alg_ruimte_key = rg.alg_ruimte_key
AND rg.alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_key = kt.alg_onrgoed_key(+)
AND kt.alg_kenmerk_key(+) = 87 -- toeslag
AND kt.alg_onrgoed_niveau(+) = 'L'
--
AND r.alg_ruimte_key = krd.alg_onrgoed_key(+)
AND krd.alg_kenmerk_key(+) = 80 -- ruimte dicht datum
AND krd.alg_onrgoed_niveau(+) = 'R'
--
AND r.alg_ruimte_key = kro.alg_onrgoed_key(+)
AND kro.alg_kenmerk_key(+) = 79 -- ruimte open datum
AND kro.alg_onrgoed_niveau(+) = 'R'
--
AND r.alg_ruimte_key = kfd.alg_onrgoed_key(+)
AND kfd.alg_kenmerk_key(+) = 82 -- ruimte financieel dicht datum
AND kfd.alg_onrgoed_niveau(+) = 'R'
--
AND r.alg_ruimte_key = kfo.alg_onrgoed_key(+)
AND kfo.alg_kenmerk_key(+) = 81 -- ruimte financieel open datum
AND kfo.alg_onrgoed_niveau(+) = 'R'
ORDER BY rg.alg_locatie_code, b.prs_bedrijf_naam ASC;
CREATE OR REPLACE VIEW CONN_V_SCHOON_OVERZ_TOT
(FCLT_F_LOC, OPP, FCLT_F_BEDRIJF, TOTAAL, TOESLAG)
AS
SELECT complex, FAC.SAFE_TO_NUMBER(oppervlakte), schoon,
TO_NUMBER (TO_CHAR (tot_ruimte_bedrag, '999999D99')),
TO_NUMBER (TO_CHAR (toeslag_bedrag, '999999D99'))
FROM conn_v_schoon_loc_geg
WHERE schoon IS NOT NULL
ORDER BY 1, 2;
CREATE OR REPLACE VIEW CONN_V_SCHOON_HUURDER
(FCLT_F_COMPLEX, RUIMTE, OMSCHRIJVING, FCLT_F_SCHOON,
PROGRAMMA, SCHOON_OPP, HUUR_OPP, HUURDER)
AS
SELECT rg.alg_locatie_code complex,
rg.ALG_RUIMTE_AANDUIDING,
rg.alg_ruimte_omschrijving AS omschrijving,
sb.prs_bedrijf_naam AS schoon,
sp.sch_programma_code AS programma,
ko.alg_onrgoedkenmerk_waarde AS s_oppervlakte,
cog.CNT_CONTRACT_ONRGOED_OPP AS r_oppervlakte,
nvl(prs_afdeling_omschrijving, b.prs_bedrijf_naam)
FROM alg_v_ruimte_gegevens rg,
ALG_V_AANWEZIGONRGOEDKENMERK ko,
ALG_V_AANWEZIGONRGOEDKENMERK ksb,
ALG_V_AANWEZIGONRGOEDKENMERK ksp,
PRS_BEDRIJF sb,
SCH_PROGRAMMA sp,
cnt_contract_onrgoed cog,
cnt_contract c,
prs_afdeling a,
prs_bedrijf b
WHERE rg.alg_ruimte_key = cog.ALG_ONRGOED_KEY(+)
AND cog.cnt_contract_key = c.cnt_contract_key(+)
AND c.cnt_prs_afdeling_key = a.prs_afdeling_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
AND rg.alg_ruimte_key = ko.alg_onrgoed_key(+)
AND ko.alg_kenmerk_key(+) = '77' -- oppervlakte
AND rg.alg_ruimte_key = ksb.alg_onrgoed_key
AND ksb.alg_kenmerk_key = '78' -- schoonmaakbedrijf
AND sb.prs_bedrijf_key = ksb.alg_onrgoedkenmerk_waarde
AND rg.alg_ruimte_key = ksp.alg_onrgoed_key(+)
AND ksp.alg_kenmerk_key(+) = '85' -- schoonmaakprogramma
AND sp.sch_programma_key(+) = ksp.alg_onrgoedkenmerk_waarde
AND cog.CNT_MLD_MELDING_KEY IS NULL;
create or replace view CONN_V_PRS_INDIENST (FCLT_F_MAAND, FCLT_F_NAAM, NUMMER, INDIENST, FCLT_F_AFDELING) as
select TO_CHAR(p.prs_perslid_ingangsdatum, 'YYMM'),
pf.prs_perslid_naam_full,
p.prs_perslid_nr,
TO_CHAR(p.prs_perslid_ingangsdatum, 'DD-MM-YYYY'),
a.prs_afdeling_naam1
from prs_v_afdeling a,
prs_v_aanwezigperslid p,
prs_v_perslid_fullnames pf
where p.prs_afdeling_key = a.prs_afdeling_key
and pf.prs_perslid_key = p.prs_perslid_key
and p.prs_perslid_ingangsdatum IS NOT NULL;
create or replace view CONN_V_PRS_UITDIENST (FCLT_F_MAAND, FCLT_F_NAAM, NUMMER, UITDIENST, FCLT_F_AFDELING) as
select TO_CHAR(p.prs_perslid_einddatum, 'YYMM'),
pf.prs_perslid_naam_full,
p.prs_perslid_nr,
TO_CHAR(p.prs_perslid_einddatum, 'DD-MM-YYYY'),
a.prs_afdeling_naam1
from prs_v_afdeling a,
prs_v_aanwezigperslid p,
prs_v_perslid_fullnames pf
where p.prs_afdeling_key = a.prs_afdeling_key
and pf.prs_perslid_key = p.prs_perslid_key
and p.prs_perslid_einddatum IS NOT NULL;
create or replace view CONN_V_VERPLICHTING (FCLT_F_NAAM, NUMMER, UITDIENST, VERPLICHTING, DETAILS) as
select pf.prs_perslid_naam_full,
p.prs_perslid_nr,
TO_CHAR(p.prs_perslid_einddatum, 'DD-MM-YYYY'),
t.fac_message_text,
pv.item
from prs_v_verplichting pv,
fac_message t,
prs_perslid p,
prs_v_perslid_fullnames pf
where pv.fac_message_code = t.fac_message_code
and pv.prs_perslid_key = p.prs_perslid_key
and pf.prs_perslid_key = p.prs_perslid_key
and p.prs_perslid_einddatum < sysdate;
/
--///////////////////////////////////////////VERVALLEN/////////////////////////////////////BEGIN?
CREATE OR REPLACE VIEW CONN_V_OPDR AS
select m.MLD_INS_DISCIPLINE_KEY
,o.*
from mld_opdr o, mld_melding m
where o.mld_melding_key = m.mld_melding_key;
/
CREATE OR REPLACE VIEW CONN_V_OPDR_IB AS
select o.*
from CONN_V_OPDR o
where o.MLD_INS_DISCIPLINE_KEY = 562;
/
CREATE OR REPLACE VIEW CONN_V_OPDR_OVERIG AS
select o.*
from CONN_V_OPDR o
where o.MLD_INS_DISCIPLINE_KEY <> 562;
/
CREATE OR REPLACE VIEW CONN_V_MLD_VERPLICHTING_OFF
(OPDRACHT, LOCATIE, BEDRIJF, DATUM, OFFERTE_STATUS, BEDRAG, EIGENAAR)
AS
select (select ins_srtdiscipline_prefix from ins_srtdiscipline sd, ins_tab_discipline d, mld_melding m where
m.MLD_INS_DISCIPLINE_KEY = d.ins_discipline_key
and d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
and m.mld_melding_key = o.mld_melding_key) || o.mld_melding_key ||'/' || o.MLD_OPDR_BEDRIJFOPDR_VOLGNR
, (select alg_locatie_code
from alg_locatie l, mld_melding m
where l.alg_locatie_key = m.mld_alg_locatie_key
and o.mld_melding_key = m.mld_melding_key) as locatie
, (select prs_bedrijf_naam from prs_bedrijf where prs_bedrijf_key = o.MLD_UITVOERENDE_KEYS) as bedrijf
, (select TO_CHAR(MLD_OPDR_DATUMBEGIN, 'DD-MM-YYYY') from mld_opdr where mld_melding_key = o.mld_melding_key and rownum = 1) as OpdrDatum
, ud.FAC_USRDATA_OMSCHR
, TO_CHAR(nvl(bed.MLD_KENMERKOPDR_WAARDE,0),'9999990D00') as Openstaand
, (select fd.fac_usrdata_omschr
from fac_usrdata fd, MLD_V_AANWEZIGKENMERKOPDR gb, mld_opdr opdr
where gb.mld_opdr_key = opdr.mld_opdr_key
and gb.mld_kenmerk_key = 83
and opdr.mld_uitvoerende_keys = o.MLD_UITVOERENDE_KEYS
and gb.mld_kenmerkopdr_waarde = fd.fac_usrdata_key
and rownum = 1) as Eigenaar
from mld_opdr o, MLD_V_AANWEZIGKENMERKOPDR ko, fac_usrdata ud, MLD_V_AANWEZIGKENMERKOPDR bed
where o.MLD_TYPEOPDR_KEY = 66
and o.mld_opdr_key = ko.mld_opdr_key(+)
and ko.MLD_KENMERK_KEY(+) = 74
and ud.fac_usrdata_key(+) = ko.mld_kenmerkopdr_waarde
and bed.mld_kenmerk_key(+) = 449
and o.mld_opdr_key = bed.mld_opdr_key(+)
and o.mld_statusopdr_key = 5;
CREATE OR REPLACE VIEW CONN_V_MLD_VERPLICHTING
(DATUM, FCLT_F_SOORT, OPDRACHT, LOCATIE, BEDRIJF,
EIGENAAR, OPDRACHT_BEDRAG, FACTUUR_BEDRAG)
AS
SELECT TO_CHAR (mld_opdr_datumbegin, 'DD-MM-YYYY') datum,
(SELECT ins_srtdiscipline_prefix
FROM ins_srtdiscipline sd,
ins_tab_discipline d,
mld_melding m
WHERE m.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND o.mld_melding_key = m.mld_melding_key) soort,
opdracht,
(SELECT alg_locatie_code
FROM alg_locatie l, mld_melding m
WHERE l.alg_locatie_key = m.mld_alg_locatie_key
AND o.mld_melding_key = m.mld_melding_key) AS locatie,
(SELECT prs_bedrijf_naam
FROM prs_bedrijf
WHERE prs_bedrijf_key = mld_uitvoerende_keys) AS bedrijf,
(SELECT fd.fac_usrdata_omschr
FROM fac_usrdata fd, mld_v_aanwezigkenmerkopdr gb
WHERE gb.mld_opdr_key = o.mld_opdr_key
AND gb.mld_kenmerk_key = 83
AND gb.mld_kenmerkopdr_waarde = fd.fac_usrdata_key) AS eigenaar,
mld_opdr_kosten opdrachtkosten, fr_bedrag factuurbedrag
FROM (SELECT o.mld_melding_key
|| '/'
|| o.mld_opdr_bedrijfopdr_volgnr opdracht,
mld_opdr_datumbegin, mld_uitvoerende_keys, mld_melding_key,
o.mld_opdr_key, mld_opdr_kosten,
NVL (fin_factuurregel_totaal + fr.fin_factuurregel_btw,
0
) fr_bedrag
FROM fin_factuur f, fin_factuurregel fr, mld_opdr o
WHERE fr.fin_factuur_key(+) = f.fin_factuur_key
AND o.mld_opdr_key = f.mld_opdr_key(+)
AND o.mld_statusopdr_key <> 7
AND o.mld_typeopdr_key = 5) o
WHERE mld_opdr_kosten - fr_bedrag > 2500;
CREATE OR REPLACE VIEW CONN_V_MLD_VERPLICHTING_FIAT
(OPDRACHT, LOCATIE, FIATTEUR, DATUM, OFFERTE_STATUS, BEDRAG, EIGENAAR)
AS
select (select ins_srtdiscipline_prefix from ins_srtdiscipline sd, ins_tab_discipline d, mld_melding m where
m.MLD_INS_DISCIPLINE_KEY = d.ins_discipline_key
and d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
and m.mld_melding_key = o.mld_melding_key) || o.mld_melding_key ||'/' || o.MLD_OPDR_BEDRIJFOPDR_VOLGNR
, (select alg_locatie_code
from alg_locatie l, mld_melding m
where l.alg_locatie_key = m.mld_alg_locatie_key
and o.mld_melding_key = m.mld_melding_key) as locatie
, NVL((select prs_bedrijf_naam from prs_bedrijf where prs_bedrijf_key = o.MLD_UITVOERENDE_KEYS),
(select prs_perslid_naam from prs_perslid where prs_perslid_key = o.MLD_UITVOERENDE_KEYS)) as bedrijf
, (select TO_CHAR(MLD_OPDR_DATUMBEGIN,'DD-MM-YYYY') from mld_opdr where mld_melding_key = o.mld_melding_key) as OpdrDatum
, ud.FAC_USRDATA_OMSCHR
, TO_CHAR(nvl(bed.MLD_KENMERKOPDR_WAARDE,0),'9999990D00') as Openstaand
, (select fd.fac_usrdata_omschr
from fac_usrdata fd, MLD_V_AANWEZIGKENMERKOPDR gb, mld_opdr opdr
where gb.mld_opdr_key = opdr.mld_opdr_key
and gb.mld_kenmerk_key = 83
and opdr.mld_uitvoerende_keys = o.MLD_UITVOERENDE_KEYS
and gb.mld_kenmerkopdr_waarde = fd.fac_usrdata_key
and rownum = 1) as Eigenaar
from mld_opdr o, MLD_V_AANWEZIGKENMERKOPDR ko , fac_usrdata ud, MLD_V_AANWEZIGKENMERKOPDR bed
where o.MLD_TYPEOPDR_KEY = 65
and o.mld_opdr_key = ko.mld_opdr_key(+)
and ko.MLD_KENMERK_KEY(+) = 69
and ud.fac_usrdata_key(+) = ko.mld_kenmerkopdr_waarde
and bed.mld_kenmerk_key(+) = 445
and o.mld_opdr_key = bed.mld_opdr_key(+)
and o.mld_statusopdr_key = 5;
create or replace view CONN_V_OPPERVLAKTE (FCLT_F_CODE, AANDUIDING, OMSCHRIJVING, GETEKEND, ETABEL, SCHOONMAAK)
AS
select alg_locatie_code as fclt_f_code, alg_ruimte_aanduiding, alg_locatie_omschrijving, alg_ruimte_bruto_vloeropp as getekend, sum(gebruikteopp) as etabel, fac.safe_to_number(alg_onrgoedkenmerk_waarde) as schoonmaak from alg_v_ruimte_gegevens rg, conn_import_etabel et, alg_v_aanwezigonrgoedkenmerk ok
where
rg.alg_locatie_code = et.complex
and rg.alg_ruimte_nr = et.ruimte(+)
AND rg.alg_ruimte_key = ok.alg_onrgoed_key(+)
AND ok.alg_kenmerk_key(+) = '77' --ruimte opp schoonmaak
group by alg_locatie_code, alg_ruimte_aanduiding, alg_locatie_omschrijving, alg_ruimte_bruto_vloeropp, alg_onrgoedkenmerk_waarde order by 2;
CREATE OR REPLACE VIEW conn_rap_tekeningen
AS
SELECT alg_locatie_code AS fclt_f_locatie, alg_gebouw_code,
alg_verdieping_omschrijving, cad_tekening_type,
cad_tekening_filenaam
FROM cad_tekening, alg_locatie, alg_gebouw, alg_verdieping AVG
WHERE cad_tekening.alg_verdieping_key = AVG.alg_verdieping_key
AND alg_locatie.alg_locatie_key = alg_gebouw.alg_locatie_key
AND AVG.alg_gebouw_key = alg_gebouw.alg_gebouw_key
UNION
SELECT alg_locatie_code AS fclt_f_locatie, '', '', cad_tekening_type,
cad_tekening_filenaam
FROM cad_tekening, alg_locatie
WHERE cad_tekening.alg_verdieping_key = NULL
AND alg_locatie.alg_locatie_key = cad_tekening.alg_locatie_key;
CREATE OR REPLACE VIEW CONN_V_RAP_GROEPLEDEN
(NAAM, FCLT_F_LOGIN, FCLT_F_DIVISIE, REGIO, FCLT_F_GROEP, AANTAL_RECHTEN)
AS
SELECT p.prs_perslid_naam, p.prs_perslid_oslogin, a1.prs_afdeling_omschrijving, a2.prs_afdeling_omschrijving,
gr.fac_groep_omschrijving, TO_CHAR(count(*))
FROM fac_gebruikersgroep gg,
prs_v_aanwezigperslid p,
prs_afdeling a1,
prs_afdeling a2,
prs_v_afdeling_boom ab,
fac_groep gr,
fac_groeprechten grr
WHERE p.prs_perslid_key = gg.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = a1.prs_afdeling_key
AND ab.prs_afdeling_key2 = a2.prs_afdeling_key
AND gg.fac_groep_key = gr.fac_groep_key
AND gr.FAC_GROEP_KEY = grr.fac_groep_key
AND gr.fac_groep_verwijder IS NULL
GROUP BY p.prs_perslid_naam, p.prs_perslid_oslogin,
gr.fac_groep_omschrijving, a1.prs_afdeling_omschrijving, a2.prs_afdeling_omschrijving;
-- CONN#546
CREATE OR REPLACE VIEW conn_v_contracten_gegevens
AS
SELECT TO_CHAR (c.cnt_contract_key) contractnr, c.cnt_contract_nummer externnr,
NVL (b.prs_bedrijf_naam, afd2.prs_afdeling_naam) fclt_f_bedrijf,
TO_CHAR (c.cnt_contract_looptijd_van, 'DD-MM-YYYY') ingangsdatum,
TO_CHAR (c.cnt_contract_looptijd_tot, 'DD-MM-YYYY') einddatum, k1.cnt_kenmerkcontract_waarde bedrag
FROM prs_v_aanwezigbedrijf b,
cnt_v_aanwezigcontract c,
prs_v_aanwezigafdeling afd,
prs_v_aanwezigafdeling afd2,
cnt_kenmerkcontract k1,
cnt_disc_params cdp
WHERE b.prs_bedrijf_key(+) = c.cnt_prs_bedrijf_key
AND cdp.cnt_ins_discipline_key = c.ins_discipline_key
AND cdp.cnt_srtcontract_type <> 2
AND c.cnt_prs_afdeling_key = afd2.prs_afdeling_key(+)
AND afd.prs_afdeling_key = c.prs_afdeling_key_eig
AND c.cnt_contract_key = k1.cnt_contract_key(+)
AND 26 = k1.cnt_kenmerk_key(+)
AND k1.cnt_kenmerkcontract_verwijder IS NULL
AND ( (SYSDATE BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_rappeldatum)
OR (SYSDATE BETWEEN c.cnt_contract_rappeldatum AND c.cnt_contract_opzegdatum)
OR (SYSDATE BETWEEN c.cnt_contract_opzegdatum AND c.cnt_contract_looptijd_tot + 1)
);
/* Formatted on 2005/09/13 14:07 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_v_rcontracten_gegevens (fclt_f_locatie,
OBJECT,
externnr,
beschrijving,
einddatum,
uitvoerder,
contractnemer,
betalingsvoorwaarden,
totaal_pj,
facturatietermijn,
dienstverlening_afroep,
dienstverlening_periodiek,
responsetijden,
afspraken
)
AS
SELECT NVL (l.alg_locatie_omschrijving, g.alg_locatie_omschrijving) fclt_f_locatie,
sd.ins_srtdeel_omschrijving OBJECT, c.cnt_contract_nummer externnr, c.cnt_contract_omschrijving beschrijving,
c.cnt_contract_looptijd_tot einddatum, b.prs_bedrijf_naam uitvoerder,
(SELECT prs_bedrijf_naam
FROM prs_v_contractbedrijf
WHERE prs_bedrijf_key =
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 141
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL)) contractnemer,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 143
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL) betalingsvoorwaarden,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 144
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL) totaal_pj,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 145
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL)) facturatietermijn,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 146
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL)) dienstverlening_afroep,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 147
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL)) dienstverlening_periodiek,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 149
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL) responsetijden,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 161
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL) afspraken
FROM cnt_v_aanwezigcontract_plaats cp,
(SELECT g2.alg_gebouw_key, l2.alg_locatie_omschrijving
FROM alg_gebouw g2, alg_locatie l2
WHERE g2.alg_locatie_key = l2.alg_locatie_key) g,
alg_locatie l,
cnt_contract c,
cnt_contract_object co,
prs_bedrijf b,
ins_srtdeel sd,
cnt_disc_params cdp
WHERE cp.cnt_alg_plaats_key = g.alg_gebouw_key(+)
AND cp.cnt_alg_plaats_key = l.alg_locatie_key(+)
AND cp.cnt_alg_plaats_code IN ('L', 'G')
AND cp.cnt_contract_key = c.cnt_contract_key
AND co.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = cdp.cnt_ins_discipline_key
AND cdp.cnt_srtcontract_type = 3
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND co.cnt_ins_srtdeel_key = sd.ins_srtdeel_key;
CREATE OR REPLACE function CONN_GET_CONTRACT_KEY (
p_locatie in VARCHAR2,
p_huurder in VARCHAR2,
p_budgetcode in VARCHAR2)
RETURN NUMBER AS
v_cnt_contract_key NUMBER(10);
BEGIN
BEGIN
select distinct cnt_contract_key
into v_cnt_contract_key
from cnt_v_contract_locatie_geg lg
,alg_locatie l
,prs_bedrijf b
where lg.alg_locatie_key = l.alg_locatie_key
and l.alg_locatie_code = p_locatie
and lg.cnt_prs_bedrijf_key = b.prs_bedrijf_key
and b.prs_leverancier_nr = p_budgetcode||'/'||p_huurder
and rownum = 1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN NULL;
END;
RETURN v_cnt_contract_key;
END;
/
CREATE OR REPLACE procedure CONN_IMPORT_NAV_HUURCONTRACTEN (
p_ApplName in VARCHAR2,
p_ApplRun in VARCHAR2,
p_FileDir in VARCHAR2,
p_FileName IN VARCHAR2) AS
--v_FileHandle UTL_FILE.FILE_TYPE;
--v_NewLine VARCHAR2(1000); -- Input line
--v_Field VARCHAR2(100);
--v_FieldDelimitor VARCHAR2(1);
--v_ErrorMsg VARCHAR(200);
--v_Date DATE;
--v_Number NUMBER(9,2);
--v_Contract NUMBER(10);
--ORACLE_err_num NUMBER;
--ORACLE_err_mes VARCHAR2(100);
--v_XelionContractnummer VARCHAR2(100);
--v_XelionSubcontractnummer VARCHAR2(100);
--v_Mutatienummer VARCHAR2(100);
--v_NavisionContractvolgnummer VARCHAR2(100);
--v_Huurder VARCHAR2(100);
--v_Companyname VARCHAR2(100);
--v_Budgetcode VARCHAR2(100);
--v_Complex VARCHAR2(100);
--v_VHE_Contractnummer VARCHAR2(100);
--v_Contractsoort VARCHAR2(100);
--v_Ingangsdatum VARCHAR2(100);
--v_Einddatum VARCHAR2(100);
--v_TotaalBedrag VARCHAR2(100);
--v_Invoerdatum VARCHAR2(100);
BEGIN
-- v_FieldDelimitor := ';';
-- v_FileHandle := UTL_FILE.FOPEN (p_FileDir, p_FileName, 'r');
-- DELETE FROM IMP_LOG WHERE IMP_LOG_APPLICATIE = p_ApplName;
-- DELETE FROM CONN_IMP_NAV_HUURCONTRACTEN;
-- LOOP
-- BEGIN
-- UTL_FILE.GET_LINE(v_FileHandle, v_NewLine);
-- EXCEPTION
-- WHEN NO_DATA_FOUND THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- -- EOF reached
-- EXIT;
-- WHEN OTHERS THEN
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := '(ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- END;
-- BEGIN
-- v_ErrorMsg := 'Inlezen velden met scheidingstekens';
-- getField(v_newLine, v_FieldDelimitor,v_XelionContractnummer);
-- getField(v_newLine, v_FieldDelimitor,v_XelionSubcontractnummer);
-- getField(v_newLine, v_FieldDelimitor,v_Mutatienummer);
-- getField(v_newLine, v_FieldDelimitor,v_NavisionContractvolgnummer);
-- getField(v_newLine, v_FieldDelimitor,v_Huurder);
-- getField(v_newLine, v_FieldDelimitor,v_Companyname);
-- getField(v_newLine, v_FieldDelimitor,v_Budgetcode);
-- getField(v_newLine, v_FieldDelimitor,v_Complex);
-- getField(v_newLine, v_FieldDelimitor,v_VHE_Contractnummer);
-- getField(v_newLine, v_FieldDelimitor,v_Contractsoort);
-- getField(v_newLine, v_FieldDelimitor,v_Ingangsdatum);
-- getField(v_newLine, v_FieldDelimitor,v_Einddatum);
-- getField(v_newLine, v_FieldDelimitor,v_TotaalBedrag);
-- getField(v_newLine, v_FieldDelimitor,v_Invoerdatum);
-- v_ErrorMsg := 'Controle op datumvelden (xelion: '||v_XelionContractnummer||')';
-- v_date := to_date (v_Ingangsdatum, 'yyyymmdd');
-- v_date := to_date (v_Einddatum, 'yyyymmdd');
-- v_ErrorMsg := 'Controle op getallen (xelion: '||v_XelionContractnummer||')';
-- v_number := to_number (v_TotaalBedrag, '999999999.99');
-- v_contract := conn_get_contract_key(v_Complex, v_Huurder, v_Budgetcode);
-- v_ErrorMsg := 'Invoegen contract (xelion: '||v_XelionContractnummer||')';
-- IF v_contract IS NOT NULL THEN
-- INSERT INTO conn_imp_nav_huurcontracten
-- ( XelionContractnummer
-- ,XelionSubcontractnummer
-- ,Mutatienummer
-- ,NavisionContractvolgnummer
-- ,Huurder
-- ,Companyname
-- ,Budgetcode
-- ,Complex
-- ,VHE_Contractnummer
-- ,Contractsoort
-- ,Ingangsdatum
-- ,Einddatum
-- ,TotaalBedrag
-- ,Invoerdatum
-- ) VALUES
-- ( substr(v_XelionContractnummer,1,25)
-- ,substr(v_XelionSubcontractnummer,1,4)
-- ,substr(v_Mutatienummer,1,20)
-- ,substr(v_NavisionContractvolgnummer,1,100)
-- ,substr(v_Huurder,1,20)
-- ,substr(v_Companyname,1,50)
-- ,substr(v_Budgetcode,1,20)
-- ,substr(v_Complex,1,4)
-- ,substr(v_VHE_Contractnummer,1,50)
-- ,substr(v_Contractsoort,1,50)
-- ,substr(v_Ingangsdatum,1,10)
-- ,substr(v_Einddatum,1,10)
-- ,substr(v_TotaalBedrag,1,12)
-- ,substr(v_Invoerdatum,1,10)
-- );
-- ELSE
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', 'Kan contract niet vinden', 'Check huurdernr:'|| v_Huurder ||' en budgetcode: '|| v_Budgetcode);
-- END IF;
-- EXCEPTION
-- WHEN OTHERS THEN
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- END;
COMMIT;
-- END LOOP;
-- EXCEPTION
-- WHEN UTL_FILE.INVALID_OPERATION THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.INVALID_OPERATION (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Controleer bestandsnaam van importbestand');
-- WHEN UTL_FILE.INVALID_FILEHANDLE THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.INVALID_FILEHANDLE (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- WHEN UTL_FILE.INVALID_PATH THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.INVALID_PATH (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Controleer directory van importbestand (init.ora bevat utl_file_dir setting om te beschrijven welke directories te gebruiken zijn');
-- WHEN UTL_FILE.READ_ERROR THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.READ_ERROR (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- WHEN OTHERS THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'OTHERS (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
END;
/
--
--
--
CREATE OR REPLACE procedure CONN_IMPORT_NAV_HUURTARIEVEN (
p_ApplName in VARCHAR2,
p_ApplRun in VARCHAR2,
p_FileDir in VARCHAR2,
p_FileName IN VARCHAR2) AS
--v_FileHandle UTL_FILE.FILE_TYPE;
--v_NewLine VARCHAR2(1000); -- Input line
--v_Field VARCHAR2(100);
--v_FieldDelimitor VARCHAR2(1);
--v_ErrorMsg VARCHAR(200);
--ORACLE_err_num NUMBER;
--ORACLE_err_mes VARCHAR2(200);
--v_Companyname VARCHAR2(100);
--v_XelionContractnummer VARCHAR2(100);
--v_XelionSubcontractnummer VARCHAR2(100);
--v_Mutatienummer VARCHAR2(100);
--v_Tarieftype VARCHAR2(100);
--v_Aantal VARCHAR2(100);
--v_Prijs VARCHAR2(100);
BEGIN
-- v_FieldDelimitor := ';';
-- v_FileHandle := UTL_FILE.FOPEN (p_FileDir, p_FileName, 'r');
-- DELETE FROM IMP_LOG WHERE IMP_LOG_APPLICATIE = p_ApplName;
-- DELETE FROM CONN_IMP_NAV_HUURTARIEVEN;
-- LOOP
-- BEGIN
-- UTL_FILE.GET_LINE(v_FileHandle, v_NewLine);
-- EXCEPTION
-- WHEN NO_DATA_FOUND THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- -- EOF reached
-- EXIT;
-- WHEN OTHERS THEN
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := '(ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- END;
-- getField(v_newLine, v_FieldDelimitor,v_Companyname);
-- getField(v_newLine, v_FieldDelimitor,v_XelionContractnummer);
-- getField(v_newLine, v_FieldDelimitor,v_XelionSubcontractnummer);
-- getField(v_newLine, v_FieldDelimitor,v_Mutatienummer);
-- getField(v_newLine, v_FieldDelimitor,v_Tarieftype);
-- getField(v_newLine, v_FieldDelimitor,v_Aantal);
-- getField(v_newLine, v_FieldDelimitor,v_Prijs);
-- INSERT INTO conn_imp_nav_huurtarieven
-- ( Companyname
-- ,XelionContractnummer
-- ,XelionSubcontractnummer
-- ,Mutatienummer
-- ,Tarieftype
-- ,Aantal
-- ,Prijs
-- ) VALUES
-- ( substr(v_Companyname,1,50)
-- ,substr(v_XelionContractnummer,1,25)
-- ,substr(v_XelionSubcontractnummer,1,4)
-- ,substr(v_Mutatienummer,1,20)
-- ,substr(v_Tarieftype,1,20)
-- ,substr(v_Aantal,1,20)
-- ,substr(v_Prijs,1,20)
-- );
COMMIT;
-- END LOOP;
-- EXCEPTION
-- WHEN UTL_FILE.INVALID_OPERATION THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.INVALID_OPERATION (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Controleer bestandsnaam van importbestand');
-- WHEN UTL_FILE.INVALID_FILEHANDLE THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.INVALID_FILEHANDLE (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- WHEN UTL_FILE.INVALID_PATH THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.INVALID_PATH (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Controleer directory van importbestand (init.ora bevat utl_file_dir setting om te beschrijven welke directories te gebruiken zijn');
-- WHEN UTL_FILE.READ_ERROR THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'UTL_FILE.READ_ERROR (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
-- WHEN OTHERS THEN
-- UTL_FILE.FCLOSE(v_FileHandle);
-- ORACLE_err_num := SQLCODE;
-- ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
-- v_ErrorMsg := 'OTHERS (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
-- INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
-- values
-- (p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg, 'Onbekend');
END;
/
--
CREATE OR REPLACE procedure CONN_UPDATE_NAV_HUURCONTRACTEN (
p_ApplName in VARCHAR2,
p_ApplRun in VARCHAR2) AS
BEGIN
commit;
END;
/
CREATE OR REPLACE procedure CONN_VERWERK_HUURMUTATIE (
p_ApplName in VARCHAR2,
p_ApplRun in VARCHAR2,
p_mut_key in NUMBER) AS
ORACLE_err_mes VARCHAR2(300);
v_ErrorMsg VARCHAR2(300);
ORACLE_err_num NUMBER;
CURSOR c1 IS
SELECT ALG_ONRGOED_KEY
,CNT_CONTRACT_ONRGOED_KEY
,NVL(CNT_CONTRACT_ONRGOED_OPP1, 0) AS CNT_CONTRACT_ONRGOED_OPP1
,NVL(CNT_CONTRACT_ONRGOED_OPP2, 0) AS CNT_CONTRACT_ONRGOED_OPP2
,CNT_CONTRACT_ONRGOED_KEY2
,CNT_CONTRACT_KEY
,CNT_CONTRACT_KEY2
,CNT_PRS_BEDRIJF_KEY2
FROM CNT_V_CONTRACT_HUURDER ch
WHERE CNT_MLD_MELDING_KEY = p_mut_key
ORDER BY 1;
CURSOR c2 IS
SELECT cog.CNT_CONTRACT_KEY
,CNT_CONTRACT_ONRGOED_KEY
,TOT_OPP
,cog.ALG_ONRGOED_KEY
FROM CNT_CONTRACT_ONRGOED cog
,(SELECT CNT_CONTRACT_KEY
,ALG_ONRGOED_KEY
,SUM(CNT_CONTRACT_ONRGOED_OPP) AS tot_opp
FROM CNT_CONTRACT_ONRGOED
WHERE CNT_MLD_MELDING_KEY IS NULL
GROUP BY CNT_CONTRACT_KEY, ALG_ONRGOED_KEY
HAVING COUNT(ALG_ONRGOED_KEY) > 1) dup
WHERE cog.CNT_CONTRACT_KEY = dup.CNT_CONTRACT_KEY
AND cog.ALG_ONRGOED_KEY = dup.ALG_ONRGOED_KEY
ORDER BY 1,4;
v_rec c1%rowtype;
v_rec2 c2%rowtype;
v_alg_onrgoed_key_prev NUMBER(10);
v_cnt_contract_key_prev NUMBER(10);
v_remove_contract_key NUMBER(10);
v_count NUMBER(10);
BEGIN
BEGIN
v_remove_contract_key := -1;
dbms_output.put_line('begin'||TO_CHAR(sysdate,'YYMMDD-HHMISS'));
OPEN c1;
IF c1%ISOPEN THEN
LOOP
BEGIN
FETCH c1 INTO v_rec;
EXIT WHEN c1%NOTFOUND;
UPDATE CNT_CONTRACT_ONRGOED
SET CNT_MLD_MELDING_KEY = NULL
,CNT_CONTRACT_ONRGOED_KEY_ORG = NULL
WHERE CNT_CONTRACT_ONRGOED_KEY = v_rec.CNT_CONTRACT_ONRGOED_KEY2;
-- update the original contacts. Variables used for original contracts have a 1 in the variable
-- name.
IF v_rec.CNT_CONTRACT_ONRGOED_KEY IS NOT NULL THEN
--if (! isNaN(cnt_contract_key1)) {
UPDATE CNT_CONTRACT_ONRGOED
SET CNT_CONTRACT_ONRGOED_OPP = CNT_CONTRACT_ONRGOED_OPP - v_rec.CNT_CONTRACT_ONRGOED_OPP2
WHERE CNT_CONTRACT_ONRGOED_KEY = v_rec.CNT_CONTRACT_ONRGOED_KEY;
END IF;
IF v_rec.CNT_PRS_BEDRIJF_KEY2 = 1 THEN
DELETE CNT_CONTRACT_ONRGOED
WHERE CNT_CONTRACT_ONRGOED_KEY = v_rec.CNT_CONTRACT_ONRGOED_KEY2;
v_remove_contract_key := v_rec.CNT_CONTRACT_ONRGOED_KEY;
END IF;
END;
END LOOP;
END IF;
CLOSE c1;
IF v_remove_contract_key = -1 THEN
SELECT count(*)
INTO v_count
FROM CNT_CONTRACT_ONRGOED
WHERE CNT_CONTRACT_KEY = v_remove_contract_key;
IF v_count = NULL THEN
UPDATE CNT_CONTRACT SET CNT_CONTRACT_LOOPTIJD_TOT = sysdate + 10,
CNT_CONTRACT_RAPPELDATUM = sysdate + 10,
CNT_CONTRACT_OPZEGDATUM = sysdate + 10,
CNT_CONTRACT_LOOPTIJD_VAN = sysdate + 9
where CNT_CONTRACT_KEY = v_remove_contract_key;
UPDATE CNT_CONTRACT SET CNT_CONTRACT_VERWIJDER = sysdate
WHERE CNT_CONTRACT_KEY = v_remove_contract_key;
END IF;
END IF;
dbms_output.put_line('na close c1'||TO_CHAR(sysdate,'YYMMDD-HHMISS'));
--
DELETE CNT_CONTRACT_ONRGOED
WHERE CNT_CONTRACT_ONRGOED_OPP = 0;
dbms_output.put_line('na delete'||TO_CHAR(sysdate,'YYMMDD-HHMISS'));
v_alg_onrgoed_key_prev := -1;
v_cnt_contract_key_prev := -1;
OPEN c2;
IF c2%ISOPEN THEN
LOOP
BEGIN
FETCH c2 INTO v_rec2;
EXIT WHEN c2%NOTFOUND;
IF v_rec2.CNT_CONTRACT_KEY <> v_cnt_contract_key_prev OR
v_rec2.ALG_ONRGOED_KEY <> v_alg_onrgoed_key_prev THEN
-- if (cnt_contract_key != cnt_contract_key_prev || alg_onrgoed_key != alg_onrgoed_key_prev) {
-- update oppervlakte to total
UPDATE CNT_CONTRACT_ONRGOED SET CNT_CONTRACT_ONRGOED_OPP = v_rec2.TOT_OPP
WHERE CNT_CONTRACT_ONRGOED_KEY = v_rec2.CNT_CONTRACT_ONRGOED_KEY;
ELSE
-- delete duplicate records.
DELETE CNT_CONTRACT_ONRGOED
WHERE CNT_CONTRACT_ONRGOED_KEY = v_rec2.CNT_CONTRACT_ONRGOED_KEY;
END IF;
v_cnt_contract_key_prev := v_rec2.CNT_CONTRACT_KEY;
v_alg_onrgoed_key_prev := v_rec2.ALG_ONRGOED_KEY;
END;
END LOOP;
END IF;
CLOSE c2;
dbms_output.put_line('na close c2'||TO_CHAR(sysdate,'YYMMDD-HHMISS'));
UPDATE CNT_CONTRACT c SET
CNT_CONTRACT_NUMMER = (SELECT DISTINCT MAX(COM.XELIONCONTRACTNUMMER) FROM CONN_ONTV_MUTATIE com WHERE c.CNT_CONTRACT_KEY = com.CNT_CONTRACT_KEY)
,CNT_CONTRACT_DOCUMENT = (SELECT DISTINCT 'Xelion subcontractnr: ' || COM.XELIONSUBCONTRACTNUMMER ||
'Navision contractnr: ' || COM.NAVISIONCONTRACTVOLGNUMMER ||
'VHE contractnummer: ' || COM.VHE_CONTRACTNUMMER ||
'Navision totaalbedrag: ' || COM.TOTAALBEDRAG FROM CONN_ONTV_MUTATIE com WHERE c.CNT_CONTRACT_KEY = com.CNT_CONTRACT_KEY)
,CNT_CONTRACT_LOOPTIJD_VAN = (SELECT DISTINCT TO_DATE(COM.INGANGSDATUM,'YYYYMMDD') FROM CONN_ONTV_MUTATIE com WHERE c.CNT_CONTRACT_KEY = com.CNT_CONTRACT_KEY)
,CNT_CONTRACT_LOOPTIJD_TOT = (SELECT DISTINCT TO_DATE(COM.EINDDATUM,'YYYYMMDD') FROM CONN_ONTV_MUTATIE com WHERE c.CNT_CONTRACT_KEY = com.CNT_CONTRACT_KEY)
WHERE c.CNT_CONTRACT_KEY IN (SELECT CNT_CONTRACT_KEY FROM CONN_ONTV_MUTATIE WHERE MUTATIENUMMER = p_mut_key);
--!!!!!!!!!!!!!!!!!verwijder records uit conn_ontv_mutatie
DELETE FROM CONN_ONTV_MUTATIE WHERE MUTATIENUMMER = p_mut_key;
dbms_output.put_line('na delete c2'||TO_CHAR(sysdate,'YYMMDD-HHMISS'));
COMMIT;
EXCEPTION WHEN OTHERS THEN
dbms_output.put_line('exception'||TO_CHAR(sysdate,'YYMMDD-HHMISS'));
ROLLBACK;
ORACLE_err_num := SQLCODE;
ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
v_ErrorMsg := 'Fout tijdens doorvoeren van de mutatie (mutatienr:'||p_mut_key||') (ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)';
INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
VALUES
(p_ApplName, p_ApplRun, sysdate, 'E', v_ErrorMsg,'Onbekend');
COMMIT;
END;
END;
/
CREATE OR REPLACE procedure CONN_UPDATE_NAV_HUURTARIEVEN (
p_ApplName in VARCHAR2,
p_ApplRun in VARCHAR2) AS
v_ErrorMsg VARCHAR(200);
v_LogStatus VARCHAR(1);
ORACLE_err_num NUMBER;
ORACLE_err_mes VARCHAR2(200);
CURSOR c1 IS
SELECT *
FROM conn_ontv_mutatie
ORDER BY MUTATIENUMMER, CNT_CONTRACT_KEY;
v_rec c1%rowtype;
v_teller integer;
v_cur_mutatie VARCHAR2(10);
v_mutatie_succes NUMBER(1);
cCount number(10);
v_srt_key NUMBER(10);
v_opp NUMBER(10,2);
v_prijs NUMBER(10,2);
v_ontv_prijs NUMBER(10,2);
v_tot_prijs NUMBER(10,2);
v_mut_prijs NUMBER(10,2);
v_afwijking NUMBER(10,2);
BEGIN
-- delete old messages from the log
DELETE FROM IMP_LOG WHERE IMP_LOG_APPLICATIE = p_ApplName;
UPDATE CONN_IMP_NAV_HUURCONTRACTEN SET CNT_CONTRACT_KEY = CONN_GET_CONTRACT_KEY(Complex, Huurder, Budgetcode);
-- remove items from CONN_ONTV_MUTATIE table. New received contract
-- information will overwrite the current data. This pocess is used
-- to correct contracts that where not accepted by Facilitor.
DELETE FROM CONN_ONTV_MUTATIE
WHERE (XelionContractnummer, Mutatienummer)
IN
(SELECT XelionContractnummer, Mutatienummer FROM CONN_IMP_NAV_HUURCONTRACTEN);
-- add new received records to the CONN_ONTV_MUTATIE table
INSERT INTO CONN_ONTV_MUTATIE
( XelionContractnummer
,XelionSubcontractnummer
,Mutatienummer
,NavisionContractvolgnummer
,Huurder
,Companyname
,Budgetcode
,Complex
,VHE_Contractnummer
,Contractsoort
,Ingangsdatum
,Einddatum
,TotaalBedrag
,Invoerdatum
,Tarieftype
,Aantal
,Prijs
,cnt_contract_key
)
select cim.XelionContractnummer
,cim.XelionSubcontractnummer
,cim.Mutatienummer
,NavisionContractvolgnummer
,Huurder
,cim.Companyname
,Budgetcode
,Complex
,VHE_Contractnummer
,Contractsoort
,Ingangsdatum
,Einddatum
,TotaalBedrag
,Invoerdatum
,Tarieftype
,Aantal
,Prijs
,cnt_contract_key
from conn_imp_nav_huurtarieven cit, conn_imp_nav_huurcontracten cim
where cit.XELIONCONTRACTNUMMER = cim.XELIONCONTRACTNUMMER
and cim.cnt_contract_key is not null and cim.mutatienummer is not null;
-- Log all entries that cannot be found in the contracts.
INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
select p_ApplName,
p_ApplRun,
sysdate,
'E',
'Contract niet gevonden, Xelion:' || cim.XelionContractnummer || '/' || cim.XelionSubcontractnummer ||
' Mutatie:' || cim.Mutatienummer || ' Huurder/Budget:' || Huurder || '/' || Budgetcode,
'Controleer complex, huurder, budgetcode'
from conn_imp_nav_huurcontracten cim
where cim.cnt_contract_key is null;
INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
select p_ApplName,
p_ApplRun,
sysdate,
'E',
'Mutatienummer niet gevonden, Xelion:' || cim.XelionContractnummer || '/' || cim.XelionSubcontractnummer ||
' Mutatie:' || cim.Mutatienummer || ' Huurder/Budget:' || Huurder || '/' || Budgetcode,
'Controleer complex, huurder, budgetcode'
from conn_imp_nav_huurcontracten cim
where cim.mutatienummer is null;
delete from conn_imp_nav_huurcontracten;
delete from conn_imp_nav_huurtarieven;
-- start compare
v_cur_mutatie := '0';
OPEN c1;
IF c1%ISOPEN THEN
LOOP
BEGIN
FETCH c1 INTO v_rec;
EXIT WHEN c1%NOTFOUND;
-- Check whether
IF v_cur_mutatie <> v_rec.MUTATIENUMMER THEN
-- Check if we are in startup mode
IF v_cur_mutatie <> 0 THEN
-- Not the first time, so end of a mutation run.
-- Calculate the total amount of the contract received
SELECT SUM(TOTAALBEDRAG)
INTO v_ontv_prijs
FROM
(SELECT DISTINCT MUTATIENUMMER, XELIONCONTRACTNUMMER, TOTAALBEDRAG
FROM CONN_ONTV_MUTATIE
WHERE MUTATIENUMMER = v_cur_mutatie);
-- Calculate de deviation
v_afwijking := TRUNC((ABS(v_ontv_prijs - v_tot_prijs)/v_tot_prijs)*100);
-- A match between received data and Facilitor is established when all tarieftypes received
-- match the facilitor tarieftypes and square meters AND the total price of the contract is
-- within the 10 percent from the Facilitor contract.
IF v_mutatie_succes = 1 AND v_afwijking < 10 THEN
-- Succesfull match update the status of the mutation to 'OntvangenOK''
UPDATE CNT_CONTRACT_ONRGOED SET CNT_MUTATIE_STATUS_KEY = 3 WHERE CNT_MLD_MELDING_KEY = v_cur_mutatie;
v_ErrorMsg := 'Ontvangen contract match afwijking: '|| v_afwijking|| '% Facilitor bedrag:'|| v_tot_prijs||' Ontvangen bedrag:' ||v_ontv_prijs;
v_LogStatus := 'I';
CONN_VERWERK_HUURMUTATIE (p_ApplName,p_ApplRun,v_cur_mutatie);
COMMIT;
ELSE
-- Unsuccesfull match - set the status of the mutation to 'OntvangenNOK'
UPDATE CNT_CONTRACT_ONRGOED SET CNT_MUTATIE_STATUS_KEY = 4 WHERE CNT_MLD_MELDING_KEY = v_cur_mutatie;
v_ErrorMsg := 'Ontvangen contract mismatch! afwijking:'|| v_afwijking || '% Facilitor bedrag:'|| v_tot_prijs||' Ontvangen bedrag:' ||v_ontv_prijs ||' tarieftype fout(0-fout|1-succes): '|| v_mutatie_succes;
v_LogStatus := 'E';
COMMIT;
END IF;
INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
VALUES
(p_ApplName, p_ApplRun, sysdate, v_LogStatus, v_ErrorMsg,'Onbekend');
END IF;
-- reset loop variables
v_mutatie_succes := 1;
v_tot_prijs := 0;
v_cur_mutatie := v_rec.MUTATIENUMMER;
END IF;
-- retrieve soort onroerendgoedkey from the Facilitor
SELECT SRT_KEY INTO v_srt_key
FROM (
SELECT ALG_SRTRUIMTE_KEY AS SRT_KEY
FROM ALG_SRTRUIMTE
WHERE ALG_SRTRUIMTE_OMSCHRIJVING = v_rec.COMPLEX||'-'||v_rec.TARIEFTYPE
UNION
SELECT ALG_SRTTERREINSECTOR_KEY AS SRT_KEY
FROM ALG_SRTTERREINSECTOR W
WHERE ALG_SRTTERREINSEC_OMSCHRIJVING = v_rec.COMPLEX||'-'||v_rec.TARIEFTYPE);
-- retrieve the square meters and price from the new contract in Facilitor
SELECT opp, NVL(sr.ALG_SRTRUIMTE_PRIJS, st.ALG_SRTTERREINSECTOR_PRIJS)
INTO v_opp, v_prijs
FROM ( SELECT srt_key,
SUM(opp) - NVL(SUM(opp_cor),0) AS opp,
MAX(prijs) AS prijs
FROM ( SELECT cogo.ALG_SRTONRGOED_KEY AS srt_key,
cogo.CNT_CONTRACT_ONRGOED_OPP AS opp,
SUM(cogm.CNT_CONTRACT_ONRGOED_OPP) AS opp_cor,
0 AS prijs
FROM CNT_CONTRACT_ONRGOED cogo,
CNT_CONTRACT_ONRGOED cogm
WHERE cogo.CNT_CONTRACT_ONRGOED_KEY = cogm.CNT_CONTRACT_ONRGOED_KEY_ORG(+)
AND cogo.CNT_MLD_MELDING_KEY IS NULL
AND cogo.CNT_CONTRACT_KEY = v_rec.CNT_CONTRACT_KEY
GROUP BY cogo.CNT_CONTRACT_ONRGOED_KEY, cogo.ALG_SRTONRGOED_KEY, cogo.CNT_CONTRACT_ONRGOED_OPP
UNION ALL
SELECT cogm.ALG_SRTONRGOED_KEY AS srt_key,
cogm.CNT_CONTRACT_ONRGOED_OPP AS opp,
0 ,
NVL(CNT_SRTRUIMTE_PRIJS,0) AS prijs
FROM CNT_CONTRACT_ONRGOED cogm
WHERE cogm.CNT_CONTRACT_KEY = v_rec.CNT_CONTRACT_KEY
AND cogm.CNT_MLD_MELDING_KEY = v_rec.MUTATIENUMMER
)
GROUP BY srt_key
),
ALG_SRTRUIMTE sr,
ALG_SRTTERREINSECTOR st
WHERE srt_key = sr.ALG_SRTRUIMTE_KEY(+)
AND srt_key = st.ALG_SRTTERREINSECTOR_KEY(+)
AND srt_key = v_srt_key;
IF v_rec.aantal <> v_opp THEN
INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
VALUES
(p_ApplName, p_ApplRun, sysdate, 'L', 'Oppervlakte klopt niet, contract:'||v_rec.XelionContractnummer||' tarieftype:'||v_rec.tarieftype||' aantal:'||v_rec.aantal||' verwacht aantal:'||v_opp,'Onbekend');
v_mutatie_succes := 0;
END IF;
v_tot_prijs := v_tot_prijs + v_opp * v_prijs;
END;
END LOOP;
IF v_cur_mutatie <> 0 THEN
-- Not the first time, so end of a mutation run.
-- Calculate the total amount of the contract received
SELECT SUM(TOTAALBEDRAG)
INTO v_ontv_prijs
FROM ( SELECT DISTINCT MUTATIENUMMER, XELIONCONTRACTNUMMER, TOTAALBEDRAG
FROM CONN_ONTV_MUTATIE
WHERE MUTATIENUMMER = v_cur_mutatie);
-- Calculate de deviation
v_afwijking := TRUNC((ABS(v_ontv_prijs - v_tot_prijs)/v_tot_prijs)*100);
-- A match between received data and Facilitor is established when all tarieftypes received
-- match the facilitor tarieftypes and square meters AND the total price of the contract is
-- within the 10 percent from the Facilitor contract.
IF v_mutatie_succes = 1 AND v_afwijking < 10 THEN
-- Succesfull match update the status of the mutation to 'OntvangenOK''
UPDATE CNT_CONTRACT_ONRGOED SET CNT_MUTATIE_STATUS_KEY = 3 WHERE CNT_MLD_MELDING_KEY = v_cur_mutatie;
v_ErrorMsg := 'Ontvangen contract match afwijking: '|| v_afwijking|| '% Facilitor bedrag:'|| v_tot_prijs||' Ontvangen bedrag:' ||v_ontv_prijs;
v_LogStatus := 'I';
CONN_VERWERK_HUURMUTATIE (p_ApplName,p_ApplRun,v_cur_mutatie);
ELSE
-- Unsuccesfull match - set the status of the mutation to 'OntvangenNOK'
UPDATE CNT_CONTRACT_ONRGOED SET CNT_MUTATIE_STATUS_KEY = 4 WHERE CNT_MLD_MELDING_KEY = v_cur_mutatie;
v_ErrorMsg := 'Ontvangen contract mismatch! afwijking:'|| v_afwijking || '% Facilitor bedrag:'|| v_tot_prijs||' Ontvangen bedrag:' ||v_ontv_prijs ||' tarieftype fout(0-fout|1-succes): '|| v_mutatie_succes;
v_LogStatus := 'E';
END IF;
INSERT INTO IMP_LOG (IMP_LOG_APPLICATIE,IMP_LOG_RUN, IMP_LOG_DATUM, IMP_LOG_STATUS, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
VALUES
(p_ApplName, p_ApplRun, sysdate, v_LogStatus, v_ErrorMsg,'Onbekend');
END IF;
END IF;
CLOSE c1;
COMMIT;
END;
/
CREATE OR REPLACE VIEW CONN_V_BAD_PERMAN_IMPORT
(NAAM, NUMMER, AFD_CODE, AFDELING, REGIO,
DIVISIE)
AS
SELECT pf.prs_perslid_naam_full, p.prs_perslid_nr, oac.afd_code,
oac.afd_omschrijving, oac.dvb_k_regio_label, oac.dvb_divisie_label
FROM PRS_PERSLID p,
PRS_AFDELING a,
oac.oac_stg_distribute_medewerker oac,
prs_v_perslid_fullnames pf
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_nr = oac.dvb_personeelsnummer
AND a.prs_afdeling_upper = 'PERMAN'
AND UPPER (a.prs_afdeling_omschrijving) = 'PERMAN NIEUW'
AND ind_toekomstmutatie = 'N';
-- CONN#581
CREATE OR REPLACE VIEW conn_v_bedrijf
AS
SELECT prs_bedrijf_naam fclt_f_Bedrijfsnaam,
prs_leverancier_nr fclt_f_Leveranciersnummer, prs_bedrijf_email,
prs_bedrijf_order_adres, prs_bedrijf_xsl
FROM prs_bedrijf
WHERE prs_bedrijf_verwijder IS NULL;
/
--CONN#599
CREATE OR REPLACE VIEW conn_v_opdr_doorloop (opdracht,
fclt_f_maand,
fclt_f_locatie,
aanmaak,
afgemeld,
verschil
)
AS
SELECT o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdr, to_char(o.mld_opdr_aanmaak, 'yymm'),
(SELECT alg_locatie_code
FROM alg_locatie l, mld_melding m
WHERE o.mld_melding_key = m.mld_melding_key
AND m.mld_alg_locatie_key = l.alg_locatie_key) locatie_code,
o.mld_opdr_aanmaak aanmaak,
NVL (o.mld_opdr_datumuitgevoerd,
TO_DATE ('29991231', 'yyyymmdd')
) afgemeld,
TRUNC (NVL (o.mld_opdr_datumuitgevoerd,
TO_DATE ('29991231', 'yyyymmdd')
)
)
- TRUNC (o.mld_opdr_aanmaak) verschil
FROM mld_opdr o, mld_melding m
WHERE o.mld_opdr_aanmaak IS NOT NULL
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_ins_discipline_key = 163;
-- FSN#1251
CREATE OR REPLACE VIEW conn_v_thema_ruimtefunctie (alg_ruimte_key, waarde)
AS
SELECT cogc.alg_onrgoed_key, SUBSTR (alg_srtruimte_code, 0, 1)
FROM cnt_v_cnt_contract_onrgoed_cur cogc, alg_srtruimte asr
WHERE asr.alg_srtruimte_key = cogc.alg_srtonrgoed_key;
/* Formatted on 2005/12/06 16:25 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_v_thema_huurder (alg_ruimte_key, waarde)
AS
SELECT vg.alg_ruimte_key,
NVL ((SELECT prs_afdeling_omschrijving
FROM prs_afdeling abu, prs_v_afdeling_boom ab
WHERE ab.prs_afdeling_key1 = abu.prs_afdeling_key AND ab.prs_afdeling_key = a.prs_afdeling_key),
(SELECT fac_usrdata_code
FROM fac_usrdata ud, prs_kenmerklink kl
WHERE kl.prs_kenmerk_key = 1015
AND prs_link_key = b.prs_bedrijf_key
AND kl.prs_kenmerklink_waarde = ud.fac_usrdata_key)
)
FROM alg_v_ruimte_gegevens vg,
cnt_v_cnt_contract_onrgoed_cur cogc,
cnt_v_aanwezigcontract cnt,
prs_afdeling a,
prs_bedrijf b
WHERE vg.alg_ruimte_key = cogc.alg_onrgoed_key(+)
AND cogc.cnt_contract_key = cnt.cnt_contract_key(+)
AND cnt.cnt_prs_afdeling_key = a.prs_afdeling_key(+)
AND cnt.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+);
CREATE OR REPLACE VIEW conn_v_thema_terhuurder (alg_terreinsector_key, waarde)
AS
SELECT tg.alg_terreinsector_key,
NVL ((SELECT prs_afdeling_omschrijving
FROM prs_afdeling abu, prs_v_afdeling_boom ab
WHERE ab.prs_afdeling_key1 = abu.prs_afdeling_key AND ab.prs_afdeling_key = a.prs_afdeling_key),
(SELECT fac_usrdata_code
FROM fac_usrdata ud, prs_kenmerklink kl
WHERE kl.prs_kenmerk_key = 1015
AND prs_link_key = b.prs_bedrijf_key
AND kl.prs_kenmerklink_waarde = ud.fac_usrdata_key)
)
FROM alg_v_aanwezigterreinsector tg,
cnt_v_cnt_contract_onrgoed_cur cogc,
cnt_v_aanwezigcontract cnt,
prs_afdeling a,
prs_bedrijf b
WHERE tg.alg_terreinsector_key = cogc.alg_onrgoed_key(+)
AND cogc.cnt_contract_key = cnt.cnt_contract_key(+)
AND cnt.cnt_prs_afdeling_key = a.prs_afdeling_key(+)
AND cnt.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+);
CREATE OR REPLACE VIEW conn_v_thema_schvloersoort (alg_ruimte_key, waarde)
AS
SELECT rg.alg_ruimte_key, vs.fac_usrdata_omschr
FROM alg_v_ruimte_gegevens rg, alg_v_aanwezigonrgoedkenmerk ksp, sch_programma sp, fac_usrdata vs
WHERE sp.sch_programma_key(+) = ksp.alg_onrgoedkenmerk_waarde
AND rg.alg_ruimte_key = ksp.alg_onrgoed_key(+)
AND ksp.alg_kenmerk_key(+) = '85' -- schoonmaakprogramma
AND vs.fac_usrdata_key(+) = sp.sch_programma_srtvloer_key
;
CREATE OR REPLACE VIEW conn_v_thema_schfrequentie (alg_ruimte_key, waarde)
AS
SELECT rg.alg_ruimte_key, fr.fac_usrdata_omschr
FROM alg_v_ruimte_gegevens rg, alg_v_aanwezigonrgoedkenmerk ksp, sch_programma sp, fac_usrdata fr
WHERE sp.sch_programma_key(+) = ksp.alg_onrgoedkenmerk_waarde
AND rg.alg_ruimte_key = ksp.alg_onrgoed_key(+)
AND ksp.alg_kenmerk_key(+) = '85' -- schoonmaakprogramma
AND fr.fac_usrdata_key(+) = sp.sch_programma_frequentie_key;
CREATE OR REPLACE VIEW conn_v_thema_schopendicht (alg_ruimte_key, waarde)
AS
SELECT rg.alg_ruimte_key, sd.sch_dicht
FROM alg_v_ruimte_gegevens rg, conn_v_sch_dicht sd
WHERE rg.alg_ruimte_key = sd.alg_ruimte_key(+);
-- PRS KENMERK TRIGGERS
CREATE OR REPLACE TRIGGER conn_prs_kenmerklink_d
AFTER DELETE
ON prs_kenmerklink
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
v_fout VARCHAR2 (2048);
BEGIN
IF (:old.prs_kenmerk_key = 1200) THEN
update CONN_EXP_DEBITEUR
set Blokering = 'JA'
, Mutatiedatumtijd = sysdate
where prs_key = :old.prs_link_key;
END IF;
EXCEPTION
WHEN OTHERS THEN
v_fout := SQLERRM;
END;
/
CREATE OR REPLACE TRIGGER conn_prs_kenmerklink_d2
AFTER DELETE
ON prs_kenmerklink
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
v_fout VARCHAR2 (2048);
v_aantal NUMBER (1);
v_perslid_nr prs_perslid.prs_perslid_nr%type;
BEGIN
IF (:old.prs_kenmerk_key = 1080) THEN
BEGIN
BEGIN
select max(prs_perslid_nr)
into v_perslid_nr
from prs_perslid
where prs_perslid_verwijder is null
and prs_perslid_key = :old.prs_link_key;
EXCEPTION
WHEN OTHERS
THEN
v_perslid_nr := '';
END;
-- Faxnr
IF (:old.prs_kenmerk_key = 1080) THEN
update CONN_EXP_TELEFOON
set FAXNR = ''
where PERSONEELSNR = v_perslid_nr;
END IF;
END;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_fout := SQLERRM;
END;
/
CREATE OR REPLACE TRIGGER conn_prs_kenmerklink_u_i
AFTER UPDATE OR INSERT
ON PRS_KENMERKLINK
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
v_fout VARCHAR2 (2048);
v_message VARCHAR2(32);
v_aantal NUMBER (1);
v_kenmerklink_waarde PRS_KENMERKLINK.prs_kenmerklink_waarde%TYPE;
v_link_key PRS_PERSLID.prs_perslid_key%TYPE;
v_perslid_nr PRS_PERSLID.prs_perslid_nr%TYPE;
BEGIN
IF :NEW.prs_kenmerklink_verwijder IS NULL THEN
v_kenmerklink_waarde := :NEW.prs_kenmerklink_waarde;
ELSE
v_kenmerklink_waarde := '';
END IF;
IF (:NEW.prs_kenmerk_key = 1080) -- Faxnr (type = P)
THEN
BEGIN
BEGIN
v_perslid_nr := '';
v_link_key := -1;
IF :NEW.prs_kenmerklink_niveau = 'P' THEN
SELECT prs_perslid_nr
INTO v_perslid_nr
FROM PRS_PERSLID
WHERE prs_perslid_verwijder IS NULL
AND prs_perslid_key = :NEW.prs_link_key;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_perslid_nr := v_perslid_nr;
END;
-- Faxnr (type = P)
IF (:NEW.prs_kenmerk_key = 1080) THEN
UPDATE CONN_EXP_TELEFOON
SET FAXNR = SUBSTR(v_kenmerklink_waarde,1,15)
WHERE PERSONEELSNR = v_perslid_nr;
END IF;
END;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_fout := SQLERRM;
END;
/
CREATE OR REPLACE TRIGGER conn_prs_kenmerklink_u_i2
AFTER UPDATE OR INSERT
ON PRS_KENMERKLINK
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
v_fout VARCHAR2 (2048);
v_message VARCHAR2(32);
v_aantal NUMBER (1);
v_kenmerklink_waarde PRS_KENMERKLINK.prs_kenmerklink_waarde%TYPE;
v_perslid_nr PRS_PERSLID.prs_perslid_nr%TYPE;
v_link_key PRS_PERSLID.prs_perslid_key%TYPE;
v_Huurdernummer VARCHAR2(30);
v_Budgetcode VARCHAR2(30);
v_Factureren_aan VARCHAR2(30);
v_Debiteur VARCHAR2(60);
v_Adres VARCHAR2(35);
v_Postcode VARCHAR2(12);
v_Plaats VARCHAR2(30);
v_Land VARCHAR2(30);
v_Telefoon VARCHAR2(20);
v_Fax VARCHAR2(20);
v_Email VARCHAR2(80);
v_Huurder NUMBER(1);
v_count NUMBER(1);
v_bedrijf_key NUMBER(10);
BEGIN
-- Init
IF :NEW.prs_kenmerklink_verwijder IS NULL THEN
v_kenmerklink_waarde := :NEW.prs_kenmerklink_waarde;
ELSE
v_kenmerklink_waarde := '';
IF (:old.prs_kenmerk_key = 1200) THEN
update CONN_EXP_DEBITEUR
set Blokering = 'JA'
, Mutatiedatumtijd = sysdate
where prs_key = :old.prs_link_key;
END IF;
END IF;
v_link_key := :NEW.prs_link_key;
IF (:NEW.prs_kenmerk_key = 1200) THEN
BEGIN
SELECT huurdernummer, budgetcode, factureren_aan
INTO v_Huurdernummer, v_Budgetcode, v_Factureren_aan
FROM conn_exp_debiteur_tmp
WHERE prs_bedrijf_key = v_link_key;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_Huurdernummer := null;
v_Budgetcode := null;
v_Factureren_aan := null;
END;
DELETE FROM conn_exp_debiteur_tmp WHERE prs_bedrijf_key = v_link_key;
SELECT SUBSTR(NVL(PRS_BEDRIJF_NAAM,''),1,60)
, SUBSTR(NVL(PRS_BEDRIJF_POST_ADRES,''),1,35)
, SUBSTR(NVL(PRS_BEDRIJF_POST_POSTCODE,''),1,12)
, SUBSTR(NVL(PRS_BEDRIJF_POST_PLAATS,''),1,30)
, SUBSTR(NVL(PRS_BEDRIJF_POST_LAND,''),1,30)
, SUBSTR(NVL(PRS_BEDRIJF_TELEFOON,''),1,20)
, SUBSTR(NVL(PRS_BEDRIJF_FAX,''),1,20)
, SUBSTR(NVL(PRS_BEDRIJF_EMAIL,''),1,80)
, NVL(PRS_BEDRIJF_HUURDER,0)
INTO v_Debiteur
, v_Adres
, v_Postcode
, v_Plaats
, v_Land
, v_Telefoon
, v_Fax
, v_Email
, v_Huurder
FROM PRS_BEDRIJF
WHERE PRS_BEDRIJF_KEY = v_link_key;
SELECT count(*)
INTO v_count
FROM CONN_EXP_DEBITEUR
WHERE prs_key = v_link_key;
IF v_Huurder = 1 THEN
IF (v_count = 0) THEN
insert into CONN_EXP_DEBITEUR
(prs_key
,prs_type
,Debiteurnaam
,Adres
,Postcode
,Plaats
,Land
,Telefoon
,Fax
,Email
,Blokering
,Mutatiedatumtijd
,Huurdernummer
,Budgetcode
,Factureren_aan)
values
(v_link_key
,'B'
,v_Debiteur
,v_Adres
,v_Postcode
,v_Plaats
,v_Land
,v_Telefoon
,v_Fax
,v_Email
,'NEE'
,sysdate
,v_Huurdernummer
,v_Budgetcode
,v_Factureren_aan);
ELSE
update CONN_EXP_DEBITEUR
set Debiteurnaam = v_Debiteur
,Adres = v_Adres
,Postcode = v_Postcode
,Plaats = v_Plaats
,Land = v_Land
,Telefoon = v_Telefoon
,Fax = v_Fax
,Email = v_Email
,Blokering = 'NEE'
,Huurdernummer = v_Huurdernummer
,Budgetcode = v_Budgetcode
,Factureren_aan = v_Factureren_aan
,Mutatiedatumtijd = sysdate
where prs_key = v_link_key;
END IF;
ELSE
-- geen huurder (meer)
update CONN_EXP_DEBITEUR
set Blokering = 'JA'
, Mutatiedatumtijd = sysdate
where prs_key = :old.prs_link_key;
END IF;
ELSE
BEGIN
SELECT prs_bedrijf_key
INTO v_bedrijf_key
FROM conn_exp_debiteur_tmp
WHERE prs_bedrijf_key = v_link_key;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_bedrijf_key := null;
END;
END IF;
IF (:NEW.prs_kenmerk_key = 1010) THEN
IF v_bedrijf_key <> -1 THEN
UPDATE CONN_EXP_DEBITEUR_TMP
SET huurdernummer = SUBSTR(v_kenmerklink_waarde,1,20)
WHERE prs_bedrijf_key = v_link_key;
ELSE
INSERT INTO CONN_EXP_DEBITEUR_TMP
(prs_bedrijf_key, huurdernummer)
values
(v_link_key, SUBSTR(v_kenmerklink_waarde,1,20));
END IF;
UPDATE PRS_BEDRIJF
SET prs_leverancier_nr = SUBSTR(prs_leverancier_nr||'/',1,50)
WHERE prs_bedrijf_key = v_link_key
AND ( (INSTR(prs_leverancier_nr,'/') = 0) OR (prs_leverancier_nr IS NULL) );
UPDATE PRS_BEDRIJF
SET prs_leverancier_nr =
SUBSTR(
REPLACE(NVL(prs_leverancier_nr,''),
SUBSTR(NVL(prs_leverancier_nr,''),INSTR(NVL(prs_leverancier_nr,''),'/')),
'/'||SUBSTR(v_kenmerklink_waarde,1,20)
)
,1,50)
WHERE prs_bedrijf_key = v_link_key;
END IF;
IF (:NEW.prs_kenmerk_key = 1011) THEN
IF v_bedrijf_key <> -1 THEN
UPDATE CONN_EXP_DEBITEUR_TMP
SET budgetcode = SUBSTR(v_kenmerklink_waarde,1,20)
WHERE prs_bedrijf_key = v_link_key;
ELSE
INSERT INTO CONN_EXP_DEBITEUR_TMP
(prs_bedrijf_key, budgetcode)
values
(v_link_key, SUBSTR(v_kenmerklink_waarde,1,20));
END IF;
UPDATE PRS_BEDRIJF
SET prs_leverancier_nr = SUBSTR(prs_leverancier_nr||'/',1,50)
WHERE prs_bedrijf_key = v_link_key
AND ( (INSTR(prs_leverancier_nr,'/') = 0) OR (prs_leverancier_nr IS NULL) );
UPDATE PRS_BEDRIJF
SET prs_leverancier_nr =
SUBSTR(
REPLACE(NVL(prs_leverancier_nr,''),
SUBSTR(NVL(prs_leverancier_nr,''),1,INSTR(NVL(prs_leverancier_nr,''),'/')),
SUBSTR(v_kenmerklink_waarde,1,20)||'/'
)
,1,50)
WHERE prs_bedrijf_key = v_link_key;
END IF;
-- Factureren aan (type = B)
IF (:NEW.prs_kenmerk_key = 1014) THEN
IF v_bedrijf_key <> -1 THEN
UPDATE CONN_EXP_DEBITEUR_TMP
SET factureren_aan = SUBSTR(v_kenmerklink_waarde,1,20)
WHERE prs_bedrijf_key = v_link_key;
ELSE
INSERT INTO CONN_EXP_DEBITEUR_TMP
(prs_bedrijf_key, factureren_aan)
values
(v_link_key, SUBSTR(v_kenmerklink_waarde,1,20));
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_fout := SQLERRM;
END;
/
CREATE OR REPLACE TRIGGER conn_prs_perslid_d
AFTER DELETE
ON prs_perslid
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
v_fout VARCHAR2 (2048);
v_aantal NUMBER (1);
BEGIN
delete
from CONN_EXP_TELEFOON
where PERSONEELSNR = :old.prs_perslid_nr;
EXCEPTION
WHEN OTHERS
THEN
v_fout := SQLERRM;
END;
/
CREATE OR REPLACE TRIGGER conn_prs_perslid_u_i
AFTER UPDATE OR INSERT
ON prs_perslid
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
v_aantal NUMBER (1);
v_fout VARCHAR2 (2048);
v_prs_kenmerk_fax_key prs_kenmerk.prs_kenmerk_key%TYPE;
v_prs_kenmerklink_fax prs_kenmerklink.prs_kenmerklink_waarde%TYPE;
BEGIN
IF :NEW.prs_perslid_nr IS NOT NULL
AND ( NVL (:NEW.prs_perslid_oslogin, CHR (191)) <>
NVL (:OLD.prs_perslid_oslogin, CHR (191))
OR NVL (:NEW.prs_perslid_telefoonnr, CHR (191)) <>
NVL (:OLD.prs_perslid_telefoonnr, CHR (191))
OR NVL (:NEW.prs_perslid_mobiel, CHR (191)) <>
NVL (:OLD.prs_perslid_mobiel, CHR (191))
OR NVL (:NEW.prs_perslid_email, CHR (191)) <>
NVL (:OLD.prs_perslid_email, CHR (191))
)
THEN
-- er is een relevante wijziging
-- eerst kijken of er al een record in conn_exp_telefoon bestaat
SELECT COUNT (*)
INTO v_aantal
FROM conn_exp_telefoon
WHERE personeelsnr = :NEW.prs_perslid_nr;
IF v_aantal > 0
THEN
-- update conn_exp_telefoon
UPDATE conn_exp_telefoon
SET login = :NEW.prs_perslid_oslogin,
telefoonnr = :NEW.prs_perslid_telefoonnr,
mobielnr = :NEW.prs_perslid_mobiel,
email = :NEW.prs_perslid_email
WHERE personeelsnr = :NEW.prs_perslid_nr;
ELSE
-- insert conn_exp_telefoon
BEGIN
SELECT prs_kenmerk.prs_kenmerk_key
INTO v_prs_kenmerk_fax_key
FROM prs_kenmerk
WHERE prs_kenmerk.prs_kenmerk_upper = 'FAXNR'
AND prs_kenmerk.prs_kenmerk_niveau = 'P'
AND prs_kenmerk.prs_kenmerk_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_prs_kenmerk_fax_key := 0;
END;
BEGIN
SELECT prs_kenmerklink_waarde
INTO v_prs_kenmerklink_fax
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL
AND prs_kenmerk_key = v_prs_kenmerk_fax_key
AND prs_link_key = :NEW.prs_perslid_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_prs_kenmerklink_fax := NULL;
END;
INSERT INTO conn_exp_telefoon
(personeelsnr, login,
telefoonnr, mobielnr,
faxnr, email
)
VALUES (:NEW.prs_perslid_nr, :NEW.prs_perslid_oslogin,
:NEW.prs_perslid_telefoonnr, :NEW.prs_perslid_mobiel,
v_prs_kenmerklink_fax, :NEW.prs_perslid_email
);
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_fout := SQLERRM;
END;
/
CREATE OR REPLACE TRIGGER conn_prs_perslid_u_i2
AFTER UPDATE OR INSERT
ON prs_perslid
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
v_count NUMBER (10);
v_fout VARCHAR2 (2048);
BEGIN
IF :NEW.prs_perslid_nr IS NULL THEN
v_count := 0;
ELSE
select count(*)
into v_count
FROM CONN_EXP_TELEFOON
WHERE PERSONEELSNR = :OLD.prs_perslid_nr;
END IF;
IF (v_count = 0) THEN
IF (:NEW.prs_perslid_verwijder IS NULL) AND NOT (:NEW.prs_perslid_nr IS NULL) THEN
insert into CONN_EXP_TELEFOON
(PERSONEELSNR
,LOGIN
,TELEFOONNR)
values
(substr(:NEW.prs_perslid_nr,1,16)
,substr(:NEW.prs_perslid_oslogin,1,30)
,substr(:NEW.prs_perslid_telefoonnr,1,15));
END IF;
ELSE
IF :NEW.prs_perslid_verwijder IS NULL THEN
update CONN_EXP_TELEFOON
set LOGIN = :NEW.prs_perslid_oslogin
,TELEFOONNR = :NEW.prs_perslid_telefoonnr
,PERSONEELSNR = :NEW.prs_perslid_nr
,MUTATIEDATUMTIJD = sysdate
WHERE PERSONEELSNR = :OLD.prs_perslid_nr;
ELSE
delete
from CONN_EXP_TELEFOON
WHERE PERSONEELSNR = :NEW.prs_perslid_nr;
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_fout := SQLERRM;
END;
/
-- CONN#656
CREATE OR REPLACE PACKAGE CONN_HALTES AS
FUNCTION get_halte_key
(p_haltecode IN VARCHAR2
,p_kenmerk_key IN NUMBER
) return NUMBER;
FUNCTION verwerk_halte
(p_HALTECODE IN VARCHAR2
,p_HALTENAAM IN VARCHAR2
,p_PLAATSNAAM IN VARCHAR2
,p_PLACECODE IN VARCHAR2
,p_ZONE IN VARCHAR2
,p_X_COORDINAAT IN VARCHAR2
,p_Y_COORDINAAT IN VARCHAR2
,p_LIJNNUMMER IN VARCHAR2
) return NUMBER;
END CONN_HALTES;
/
CREATE OR REPLACE PACKAGE BODY CONN_HALTES AS
FUNCTION get_halte_key
(p_haltecode IN VARCHAR2
,p_kenmerk_key IN NUMBER
) return NUMBER
IS
v_result NUMBER(10);
v_count NUMBER(10);
BEGIN
-- Init
v_result := 0;
select count(*)
into v_count
from ins_deel
where ins_deel_verwijder is null
and substr(ins_deel_omschrijving,2,8) = p_haltecode;
IF (v_count = 1) THEN
select ins_deel_key
into v_result
from ins_deel
where ins_deel_verwijder is null
and substr(ins_deel_omschrijving,2,8) = p_haltecode;
ELSE
select count(*)
into v_count
FROM ins_deel d, ins_kenmerkdeel kd
WHERE d.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = p_kenmerk_key
AND kd.ins_kenmerkdeel_waarde = p_haltecode
AND ins_kenmerkdeel_verwijder is null;
IF (v_count = 1) THEN
select d.ins_deel_key
into v_result
FROM ins_deel d, ins_kenmerkdeel kd
WHERE d.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = p_kenmerk_key
AND kd.ins_kenmerkdeel_waarde = p_haltecode
AND ins_kenmerkdeel_verwijder is null;
END IF;
END IF;
RETURN v_result;
EXCEPTION WHEN OTHERS THEN
RETURN -1;
END get_halte_key;
FUNCTION verwerk_halte
(p_HALTECODE IN VARCHAR2
,p_HALTENAAM IN VARCHAR2
,p_PLAATSNAAM IN VARCHAR2
,p_PLACECODE IN VARCHAR2
,p_ZONE IN VARCHAR2
,p_X_COORDINAAT IN VARCHAR2
,p_Y_COORDINAAT IN VARCHAR2
,p_LIJNNUMMER IN VARCHAR2
) return NUMBER
IS
v_DEEL_OMSCHRIJVING VARCHAR2(30);
v_HALTENAAM VARCHAR2(40);
v_HALTECODE VARCHAR2(8);
v_PLAATSNAAM VARCHAR2(30);
v_PLACECODE VARCHAR2(10);
v_ZONE VARCHAR2(10);
v_X_COORDINAAT VARCHAR2(10);
v_Y_COORDINAAT VARCHAR2(10);
v_LIJNNUMMER VARCHAR2(200);
ORACLE_err_num NUMBER;
ORACLE_err_mes VARCHAR2(100);
v_result NUMBER(10);
v_errormsg VARCHAR2(1000);
v_import_row VARCHAR2(1000);
v_count NUMBER(10);
v_terreinsector_key NUMBER(10);
v_ins_deel_key NUMBER(10);
c_error_result NUMBER(10) := -1;
-- Constanten: diversen
c_srtdeel_key INTEGER := 43401; -- Halte
c_srtdeel_module VARCHAR2 (3) := 'INS';
c_locatie_key_onbekend INTEGER := 3123;
c_ruimte_type VARCHAR2 (1) := 'T';
c_halte_prefix VARCHAR2 (1) := 'H';
-- Constanten: kenmerken key's
c_halte_code INTEGER := 501;
c_zone_kenmerk_key INTEGER := 503;
c_place_kenmerk_key INTEGER := 541;
c_plaatsnaam_kenmerk_key INTEGER := 502;
c_haltenaam_kenmerk_key INTEGER := 504;
c_xcoordinaat_kenmerk_key INTEGER := 505;
c_ycoordinaat_kenmerk_key INTEGER := 506;
c_Lijnnummer1_kenmerk_key INTEGER := 601;
BEGIN
-- INIT
v_result := c_error_result;
v_errormsg := 'INIT';
v_import_row := p_HALTECODE||'|'||p_HALTENAAM||'|'||p_PLAATSNAAM||'|'||p_PLACECODE||'|'||p_ZONE||'|'||p_X_COORDINAAT||'|'||p_Y_COORDINAAT||'|'||p_LIJNNUMMER;
v_terreinsector_key := -1;
v_HALTENAAM := substr(p_HALTENAAM,1,40);
v_HALTECODE := substr(p_HALTECODE,1,8);
v_PLAATSNAAM := substr(p_PLAATSNAAM,1,30);
v_PLACECODE := substr(p_PLACECODE,1,10);
v_ZONE := substr(p_ZONE,1,4);
v_X_COORDINAAT := substr(p_X_COORDINAAT,1,6);
v_Y_COORDINAAT := substr(p_Y_COORDINAAT,1,6);
v_LIJNNUMMER := substr(p_LIJNNUMMER,1,200);
v_DEEL_OMSCHRIJVING := substr(c_halte_prefix||v_HALTECODE||' '||v_HALTENAAM,1,30);
select get_halte_key(v_HALTECODE,c_halte_code)
into v_ins_deel_key
from dual;
IF (v_ins_deel_key <= 0) THEN
-- alg_terrein
v_errormsg := '-- Terrein zoeken';
select count(*)
into v_count
from alg_terreinsector
where alg_terreinsector_verwijder is null
and alg_terreinsector_upper = upper(substr(v_PLAATSNAAM,1,10))
and alg_locatie_key = c_locatie_key_onbekend;
IF (v_count = 0) THEN
v_errormsg := '-- Nieuwe key voor alg_terrein ophalen ';
SELECT alg_s_alg_onroerendgoed_keys.NEXTVAL
INTO v_terreinsector_key
FROM DUAL;
v_errormsg := '-- alg_terrein toevoegen ';
INSERT INTO alg_terreinsector
(alg_locatie_key
,alg_terreinsector_code
,alg_terreinsector_naam)
VALUES
(c_locatie_key_onbekend
,SUBSTR(v_PLAATSNAAM,1,10)
,SUBSTR(v_PLAATSNAAM,1,30));
END IF;
v_errormsg := '-- Terrein zoeken (2)';
select alg_terreinsector_key
into v_terreinsector_key
from alg_terreinsector
where alg_terreinsector_verwijder is null
and alg_terreinsector_upper = upper(substr(v_PLAATSNAAM,1,10))
and alg_locatie_key = c_locatie_key_onbekend;
SELECT ins_s_ins_inst_keys.NEXTVAL
INTO v_ins_deel_key
FROM DUAL;
v_errormsg := '-- Toevoegen halte ';
insert into INS_DEEL
(ins_deel_key
,ins_srtdeel_key
,ins_deel_module
,ins_alg_ruimte_key
,ins_alg_ruimte_type
,ins_deel_omschrijving)
values
(v_ins_deel_key
,c_srtdeel_key
,c_srtdeel_module
,v_terreinsector_key
,c_ruimte_type
,v_DEEL_OMSCHRIJVING);
ELSE
v_errormsg := '-- Update bestaande halte ';
update ins_deel
set ins_deel_omschrijving = v_DEEL_OMSCHRIJVING
where ins_deel_key = v_ins_deel_key;
END IF;
v_result := v_ins_deel_key;
v_errormsg := '-- Verwijder eventueel bestaande flexibele kenmerken die relevant zijn voor de koppeling';
DELETE
FROM ins_kenmerkdeel
WHERE ins_deel_key = v_ins_deel_key
AND ins_kenmerk_key in (c_halte_code,c_zone_kenmerk_key,c_place_kenmerk_key,c_plaatsnaam_kenmerk_key,c_haltenaam_kenmerk_key,c_xcoordinaat_kenmerk_key,c_ycoordinaat_kenmerk_key,c_Lijnnummer1_kenmerk_key);
-- c_halte_code
v_errormsg := '--C-- flexprops Halte code toevoegen met kenmerk_key = <'||to_char(c_Halte_code)||'> en deel_key = <'||to_char(v_ins_deel_key)||'> en v_HALTECODE = <'||substr(v_HALTECODE,1,8)||'>';
IF v_HALTECODE IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_Halte_code
, v_ins_deel_key
, substr(v_HALTECODE,1,8));
END IF;
-- c_zone_kenmerk_key
v_errormsg := '--N-- flexprops Zone toevoegen';
IF v_ZONE IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_zone_kenmerk_key
, v_ins_deel_key
, v_ZONE);
END IF;
-- c_place_kenmerk_key
v_errormsg := '--C-- flexprops Placecode toevoegen';
IF v_PLACECODE IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_place_kenmerk_key
, v_ins_deel_key
, v_PLACECODE);
END IF;
-- c_plaatsnaam_kenmerk_key
v_errormsg := '--C-- flexprops Plaatsnaam toevoegen';
IF v_PLAATSNAAM IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_plaatsnaam_kenmerk_key
, v_ins_deel_key
, v_PLAATSNAAM);
END IF;
-- c_haltenaam_kenmerk_key
v_errormsg := '--N-- flexprops Haltenaam toevoegen';
IF v_HALTENAAM IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_haltenaam_kenmerk_key
, v_ins_deel_key
, v_HALTENAAM);
END IF;
-- c_xcoordinaat_kenmerk_key
v_errormsg := '--N-- flexprops X co<63>rdinaten toevoegen';
IF v_X_COORDINAAT IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_xcoordinaat_kenmerk_key
, v_ins_deel_key
, v_X_COORDINAAT);
END IF;
-- c_ycoordinaat_kenmerk_key
v_errormsg := '--N-- flexprops Y co<63>rdinaten toevoegen';
IF v_Y_COORDINAAT IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_ycoordinaat_kenmerk_key
, v_ins_deel_key
, v_Y_COORDINAAT);
END IF;
-- c_Lijnnummer1_kenmerk_key
v_errormsg := '--N-- flexprops passerende lijnen toevoegen';
IF v_LIJNNUMMER IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_Lijnnummer1_kenmerk_key
, v_ins_deel_key
, v_LIJNNUMMER);
END IF;
v_errormsg := 'Verwijderen rapportage meldingen ouder dan 30 dagen';
DELETE FROM imp_log WHERE imp_log_applicatie = 'VERWERK_HALTE' AND imp_log_datum + 30 < SYSDATE;
RETURN v_result;
EXCEPTION WHEN OTHERS THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := v_errormsg || ' ' ||
'(ORACLE error ' || to_char(oracle_err_num) || '/' || oracle_err_mes
|| ')';
fac.imp_writelog ('VERWERK_HALTE',
'PACKAGE CONN_HALTES',
'E',
v_errormsg,
v_import_row
);
RETURN c_error_result;
END verwerk_halte;
END CONN_HALTES;
/
CREATE OR REPLACE VIEW conn_v_rap_chalte_import AS
SELECT imp_log_omschrijving melding, TO_CHAR(imp_log_datum,'DD-MM-YYYY') datum_import, imp_log_hint importregel
FROM imp_log
WHERE imp_log_applicatie = 'VERWERK_HALTE'
ORDER BY imp_log_datum DESC;
/
--//////////////////////////////////////////////////////////////////////////////////CONN#668
-- Somewhat under construction
-- gewijzigde export op basis van gen_export agv FIN module.
-- Schrijft opdrachtgegevens naar file van opdrachten waarvan facturen zijn gefiatteerd
-- Er worden 2 files gegenereerd, voor Coda en voor Navision, welke regel waarin komt
-- wordt bepaald aan de hand van de eerste letter van de kostensoort.
--
-- TODO:
-- post-importzaken: AV verklaren van meldingen etc??
-- Voor facturen/deelfacturen wordt het totaalfactuurbedrag vereist in de exportfile,
-- om aan te kunnen geven dat er betaald kan worden. Dit factuurtotaal wordt berekend
-- door de som van alle facturen met hetzelfde factuurnummer en van dezelfde leverancier
-- te nemen, ongeacht de fiatteringsstatus. Dit is waarschijnlijk het bedrag inclusief BTW (?).
-- Tabellen voor de exporteren van factuurgegevens (naar C=Coda en N=Navision)
CREATE OR REPLACE VIEW CONN_V_EXP_BES
(ORDERNR, FACTUURNR, LEVERANCIERSNR, FACTUURDATUM, BOEKINGSDATUM,
SPREIDENOVER, KOSTENSOORT, FACREGELOMS, LOCATIENR, HUURDERNR,
BUDGETCODE, AANTAL, PRIJS, VERDEELPERIODE, BTWTYPE,
TOTAAL, KLANTNR, EIGENAAR, FIN_FACTUUR_KEY)
AS
SELECT TO_CHAR (bo.bes_bestelopdr_key) OrderNr,
f.fin_factuur_nr FactNr,
b.prs_leverancier_nr LeverancNr,
TO_CHAR (f.fin_factuur_datum, 'YYYYMMDD') FactDatum,
'' BoekDatum,
'' SpreidenOver,
NVL(ks.prs_kostensoort_oms, kst.prs_kostensoort_oms) KostenSoort,
fr.fin_factuurregel_omschrijving Omschrijving,
fr.fin_factuurregel_referentie KostenPlaats,
(SELECT SUBSTR(k.prs_kostenplaats_nr, 1 ,INSTR(k.prs_kostenplaats_nr, '/', 1, 1)-1)
FROM dual) BudgetCode,
(SELECT SUBSTR(k.prs_kostenplaats_nr, INSTR(k.prs_kostenplaats_nr, '/', 1, 1)+1)
FROM dual) Huurder,
SUM(boi.bes_bestelopdr_item_aantal) Aantal,
fr.fin_factuurregel_totaal KostPrijs, --SUM(boi.bes_bestelopdr_item_prijs) KostPrijs,
NVL (fin_factuur_boekmaand, TO_CHAR (f.fin_factuur_datum, 'YYYY-MM')) VerdeelPeriode,
DECODE (ROUND(100*fr.fin_factuurregel_btw/fr.fin_factuurregel_totaal), 19, '2',6,'1','0') BTWtype,
(f.fin_factuur_totaal + f.fin_factuur_totaal_BTW) TotBedrFactuur,
f.fin_factuur_debiteur_nr OnsKlantNr,
'FB' Bedrijf,
f.fin_factuur_key
FROM bes_bestelopdr bo,
prs_bedrijf b,
bes_bestelling bes,
bes_bestelopdr_item boi,
bes_bestelling_item bi,
prs_kostenplaats k,
fin_factuur f,
fin_factuurregel fr,
prs_kostensoort ks,
ins_srtdeel isd,
ins_srtgroep isg,
ins_tab_discipline itd,
prs_kostensoort kst
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND bes.bes_bestelling_key = bi.bes_bestelling_key
AND k.prs_kostenplaats_key = bes.prs_kostenplaats_key
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND f.fin_factuur_statuses_key = 6
AND f.fin_factuur_key = fr.fin_factuur_key
AND kst.prs_kostensoort_key = itd.prs_kostensoort_key
AND itd.ins_discipline_key = isg.ins_discipline_key
AND isg.ins_srtgroep_key = isd.ins_srtgroep_key
AND isd.ins_srtdeel_key = bi.ins_srtdeel_key
GROUP BY TO_CHAR (bo.bes_bestelopdr_key),
f.fin_factuur_nr,
b.prs_leverancier_nr,
TO_CHAR (f.fin_factuur_datum, 'YYYYMMDD'),
NVL(ks.prs_kostensoort_oms, kst.prs_kostensoort_oms),
fr.fin_factuurregel_omschrijving,
fr.fin_factuurregel_referentie,
k.prs_kostenplaats_nr,
fr.fin_factuurregel_totaal,
NVL (fin_factuur_boekmaand, TO_CHAR (f.fin_factuur_datum, 'YYYY-MM')),
DECODE (ROUND(100*fr.fin_factuurregel_btw/fr.fin_factuurregel_totaal), 19, '2',6,'1','0'),
f.fin_factuur_totaal_btw,
f.fin_factuur_totaal,
f.fin_factuur_debiteur_nr,
f.fin_factuur_key;
CREATE OR REPLACE VIEW CONN_V_EXP_CNT
(ORDERNR, FACTUURNR, LEVERANCIERSNR, FACTUURDATUM, BOEKINGSDATUM,
SPREIDENOVER, KOSTENSOORT, FACREGELOMS, LOCATIENR, HUURDERNR,
BUDGETCODE, AANTAL, PRIJS, VERDEELPERIODE, BTWTYPE,
TOTAAL, KLANTNR, EIGENAAR, FIN_FACTUUR_KEY)
AS
SELECT 'C' || c.cnt_contract_nummer_intern opdrachtnr,
f.fin_factuur_nr FactNr,
b.prs_leverancier_nr LeverancNr,
TO_CHAR (f.fin_factuur_datum, 'YYYYMMDD') FactDatum,
'' BoekDatum,
'' SpreidenOver,
NVL(ks.prs_kostensoort_oms, kst.prs_kostensoort_oms) KostenSoort,
fr.fin_factuurregel_omschrijving Omschrijving,
fr.fin_factuurregel_referentie KostenPlaats,
(SELECT SUBSTR(k.prs_kostenplaats_nr, 1 ,INSTR(k.prs_kostenplaats_nr, '/', 1, 1)-1)
FROM dual) BudgetCode,
(SELECT SUBSTR(k.prs_kostenplaats_nr, INSTR(k.prs_kostenplaats_nr, '/', 1, 1)+1)
FROM dual) Huurder,
1 Aantal,
fr.fin_factuurregel_totaal KostPrijs, --SUM(boi.bes_bestelopdr_item_prijs) KostPrijs,
NVL (fin_factuur_boekmaand, TO_CHAR (f.fin_factuur_datum, 'YYYY-MM')) VerdeelPeriode,
DECODE (ROUND(100*fr.fin_factuurregel_btw/fr.fin_factuurregel_totaal), 19, '2',6,'1','0') BTWtype,
(f.fin_factuur_totaal + f.fin_factuur_totaal_BTW) TotBedrFactuur,
f.fin_factuur_debiteur_nr OnsKlantNr,
'FB' Bedrijf,
f.fin_factuur_key
FROM prs_bedrijf b,
cnt_contract c,
prs_kostenplaats k,
prs_kostensoort ks,
prs_kostensoort kst,
fin_factuur f,
fin_factuurregel fr
WHERE f.cnt_contract_key = c.cnt_contract_key
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND c.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND c.prs_kostensoort_key = kst.prs_kostensoort_key(+)
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND fr.fin_factuur_key = f.fin_factuur_key
AND f.fin_factuur_statuses_key = 6;
CREATE OR REPLACE VIEW CONN_V_EXP_MLD
(ORDERNR, FACTUURNR, LEVERANCIERSNR, FACTUURDATUM, BOEKINGSDATUM,
SPREIDENOVER, KOSTENSOORT, FACREGELOMS, LOCATIENR, HUURDERNR,
BUDGETCODE, AANTAL, PRIJS, VERDEELPERIODE, BTWTYPE,
TOTAAL, KLANTNR, EIGENAAR, FIN_FACTUUR_KEY, PRS_KOSTENPLAATS_MODULE, PRS_KOSTENPLAATS_NR)
AS
SELECT sdi.ins_srtdiscipline_prefix || o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrachtnr,
f.fin_factuur_nr FactNr,
b.prs_leverancier_nr LeverancNr,
TO_CHAR (f.fin_factuur_datum, 'YYYYMMDD') FactDatum,
'' BoekDatum, -- mld_kenmerk_key = 131 , wordt niet meer gebruikt
'' SpreidenOver,
NVL(ks.prs_kostensoort_oms,
NVL((SELECT prs_kostensoort_oms
FROM prs_kostensoort kst
WHERE kst.prs_kostensoort_key = stdm.prs_kostensoort_key),
(SELECT kst.prs_kostensoort_oms
FROM prs_kostensoort kst
WHERE kst.prs_kostensoort_key = di.prs_kostensoort_key))) KostenSoort,
fr.fin_factuurregel_omschrijving Omschrijving,
fr.fin_factuurregel_referentie KostenPlaats,
(SELECT SUBSTR(k.prs_kostenplaats_nr, 1 ,INSTR(k.prs_kostenplaats_nr, '/', 1, 1)-1)
FROM dual) BudgetCode,
(SELECT SUBSTR(k.prs_kostenplaats_nr, INSTR(k.prs_kostenplaats_nr, '/', 1, 1)+1)
FROM dual) Huurder,
1 Aantal,
fr.fin_factuurregel_totaal KostPrijs,
NVL (fin_factuur_boekmaand, TO_CHAR (f.fin_factuur_datum, 'YYYY-MM')) VerdeelPeriode,
DECODE (ROUND(100*fr.fin_factuurregel_btw/fr.fin_factuurregel_totaal), 19, '2',6,'1','0') BTWtype,
(f.fin_factuur_totaal + f.fin_factuur_totaal_BTW) TotBedrFactuur,
f.fin_factuur_debiteur_nr OnsKlantNr,
(SELECT fud.fac_usrdata_omschr
FROM mld_kenmerkopdr v,
fac_usrdata fud
WHERE v.mld_kenmerkopdr_waarde = fud.fac_usrdata_key
AND v.mld_opdr_key = o.mld_opdr_key
AND v.mld_kenmerk_key = 83) Bedrijf,
f.fin_factuur_key,
prs_kostenplaats_module,
prs_kostenplaats_nr
FROM mld_opdr o,
prs_bedrijf b,
mld_melding m,
prs_kostenplaats k,
fin_factuur f,
fin_factuurregel fr,
alg_locatie l,
mld_stdmelding stdm,
ins_tab_discipline di,
ins_srtdiscipline sdi,
prs_kostensoort ks
WHERE b.prs_bedrijf_key = o.mld_uitvoerende_keys
AND o.mld_melding_key = m.mld_melding_key
AND k.prs_kostenplaats_key = o.prs_kostenplaats_key
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND f.mld_opdr_key = o.mld_opdr_key
AND f.fin_factuur_key = fr.fin_factuur_key
AND m.mld_stdmelding_key = stdm.mld_stdmelding_key
AND di.ins_discipline_key = stdm.mld_ins_discipline_key
AND sdi.ins_srtdiscipline_key = di.ins_srtdiscipline_key
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND f.fin_factuur_statuses_key = 6
ORDER BY 1, 2;
CREATE OR REPLACE VIEW CONN_V_EXPORT_FINORDERS_CODA (result_key, result, module, fin_factuur_key, result_order)
AS
SELECT null,
ordernr
|| ';'
|| factuurnr
|| ';'
|| leveranciersnr
|| ';'
|| factuurdatum
|| ';'
|| boekingsdatum
|| ';'
|| spreidenover
|| ';'
|| kostensoort
|| ';'
|| facregeloms
|| ';'
|| locatienr
|| ';'
|| '' --huurdernr
|| ';'
|| budgetcode
|| ';'
-- || aantal op verzoek van Martin het aantal uitgezet omdat dit ook niet in de oude export zat
-- || ';'
|| prijs
|| ';'
|| verdeelperiode
|| ';'
|| btwtype
|| ';'
|| totaal
|| ';'
|| klantnr
|| ';'
|| eigenaar regel,
module, fin_factuur_key, null
FROM conn_exp_finorders_coda;
CREATE OR REPLACE VIEW CONN_V_EXPORT_FINORDERS_NAV_FB (result_key, result, module, fin_factuur_key, result_order)
AS
SELECT null,
ordernr
|| ';'
|| factuurnr
|| ';'
|| leveranciersnr
|| ';'
|| factuurdatum
|| ';'
|| boekingsdatum
|| ';'
|| spreidenover
|| ';'
|| kostensoort
|| ';'
|| facregeloms
|| ';'
|| locatienr
|| ';'
|| '' --huurdernr
|| ';'
|| budgetcode
|| ';'
-- || aantal op verzoek van Martin het aantal uitgezet omdat dit ook niet in de oude export zat
-- || ';'
|| prijs
|| ';'
|| verdeelperiode
|| ';'
|| btwtype
|| ';'
|| totaal
|| ';'
|| klantnr
|| ';'
|| eigenaar regel,
module, fin_factuur_key, null
FROM conn_exp_finorders_nav_fb;
CREATE OR REPLACE VIEW CONN_V_EXPORT_FINORDERS_NAV_VG (result_key, result, module, fin_factuur_key, result_order)
AS
SELECT null,
ordernr
|| ';'
|| factuurnr
|| ';'
|| leveranciersnr
|| ';'
|| factuurdatum
|| ';'
|| boekingsdatum
|| ';'
|| spreidenover
|| ';'
|| kostensoort
|| ';'
|| facregeloms
|| ';'
|| locatienr
|| ';'
|| '' -- huurdernr
|| ';'
|| budgetcode
|| ';'
-- || aantal op verzoek van Martin het aantal uitgezet omdat dit ook niet in de oude export zat
-- || ';'
|| prijs
|| ';'
|| verdeelperiode
|| ';'
|| btwtype
|| ';'
|| totaal
|| ';'
|| klantnr
|| ';'
|| eigenaar regel,
module, fin_factuur_key, null
FROM conn_exp_finorders_nav_vg;
-- Procedure voor de exporteren van factuurgegevens (naar C=Coda en N=Navision)
CREATE OR REPLACE PROCEDURE conn_select_finorders_coda (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
DELETE conn_exp_finorders_coda;
INSERT INTO conn_exp_finorders_coda
(MODULE, DOEL, ORDERNR, FACTUURNR, LEVERANCIERSNR,
FACTUURDATUM, BOEKINGSDATUM, SPREIDENOVER, KOSTENSOORT, FACREGELOMS,
LOCATIENR, HUURDERNR, BUDGETCODE, AANTAL, PRIJS,
VERDEELPERIODE, BTWTYPE, TOTAAL, KLANTNR, EIGENAAR, FIN_FACTUUR_KEY)
(SELECT 'MLD' module, SUBSTR (kostensoort, 1, 1) doel, ordernr,
factuurnr, leveranciersnr, factuurdatum,
boekingsdatum, spreidenover, SUBSTR (kostensoort, 2) kostensoort,
facregeloms, locatienr, huurdernr, budgetcode, aantal, prijs,
verdeelperiode, btwtype, totaal, klantnr, eigenaar, fin_factuur_key
FROM conn_v_exp_mld
WHERE SUBSTR (kostensoort, 1, 1) = 'C'
UNION ALL
SELECT 'CNT', SUBSTR (kostensoort, 1, 1) doel, ordernr,
factuurnr, leveranciersnr, factuurdatum,
boekingsdatum, spreidenover, SUBSTR (kostensoort, 2) kostensoort,
facregeloms, locatienr, huurdernr, budgetcode, aantal, prijs,
verdeelperiode, btwtype, totaal, klantnr, eigenaar, fin_factuur_key
FROM conn_v_exp_cnt
WHERE SUBSTR (kostensoort, 1, 1) = 'C'
UNION ALL
SELECT 'BES', SUBSTR (kostensoort, 1, 1) doel, ordernr,
factuurnr, leveranciersnr, factuurdatum,
boekingsdatum, spreidenover, SUBSTR (kostensoort, 2) kostensoort,
facregeloms, locatienr, huurdernr, budgetcode, aantal, prijs,
verdeelperiode, btwtype, totaal, klantnr, eigenaar, fin_factuur_key
FROM conn_v_exp_bes
WHERE SUBSTR (kostensoort, 1, 1) = 'C');
END;
/
-- Procedure voor de exporteren van factuurgegevens (naar C=Coda en N=Navision)
CREATE OR REPLACE PROCEDURE conn_export_finorders_coda (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
v_errormsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
v_errormsg := 'Update fin_factuur';
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
UPDATE fin_factuur
SET fin_factuur_verwerkt = SYSDATE,
fin_factuur_statuses_key = 7
WHERE fin_factuur_key IN
( SELECT fin_factuur_key
FROM conn_v_export_finorders_coda
);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
END;
/
-- Procedure voor de exporteren van factuurgegevens (naar C=Coda en N=Navision)
CREATE OR REPLACE PROCEDURE conn_select_finorders_nav_fb (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
DELETE conn_exp_finorders_nav_fb;
INSERT INTO conn_exp_finorders_nav_fb
(MODULE, DOEL, ORDERNR, FACTUURNR, LEVERANCIERSNR,
FACTUURDATUM, BOEKINGSDATUM, SPREIDENOVER, KOSTENSOORT, FACREGELOMS,
LOCATIENR, HUURDERNR, BUDGETCODE, AANTAL, PRIJS,
VERDEELPERIODE, BTWTYPE, TOTAAL, KLANTNR, EIGENAAR, FIN_FACTUUR_KEY)
(SELECT 'MLD' module, SUBSTR (kostensoort, 1, 1) doel, ordernr,
factuurnr, leveranciersnr, factuurdatum,
boekingsdatum, spreidenover, SUBSTR (kostensoort, 2) kostensoort,
facregeloms, DECODE (prs_kostenplaats_module, 'PRJ', prs_kostenplaats_nr, locatienr),
huurdernr, budgetcode, aantal, prijs,
verdeelperiode, btwtype, totaal, klantnr, eigenaar, fin_factuur_key
FROM conn_v_exp_mld
WHERE SUBSTR (kostensoort, 1, 1) = 'N' and nvl(eigenaar,' ') <> 'VG'
UNION ALL
SELECT 'CNT', SUBSTR (kostensoort, 1, 1) doel, ordernr,
factuurnr, leveranciersnr, factuurdatum,
boekingsdatum, spreidenover, SUBSTR (kostensoort, 2) kostensoort,
facregeloms, locatienr, huurdernr, budgetcode, aantal, prijs,
verdeelperiode, btwtype, totaal, klantnr, eigenaar, fin_factuur_key
FROM conn_v_exp_cnt
WHERE SUBSTR (kostensoort, 1, 1) = 'N' and nvl(eigenaar,' ') <> 'VG'
UNION ALL
SELECT 'BES', SUBSTR (kostensoort, 1, 1) doel, ordernr,
factuurnr, leveranciersnr, factuurdatum,
boekingsdatum, spreidenover, SUBSTR (kostensoort, 2) kostensoort,
facregeloms, locatienr, huurdernr, budgetcode, aantal, prijs,
verdeelperiode, btwtype, totaal, klantnr, eigenaar, fin_factuur_key
FROM conn_v_exp_bes
WHERE SUBSTR (kostensoort, 1, 1) = 'N' and nvl(eigenaar,' ') <> 'VG');
END;
/
-- Procedure voor de exporteren van factuurgegevens (naar C=Coda en N=Navision)
CREATE OR REPLACE PROCEDURE conn_export_finorders_nav_fb (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
v_errormsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
v_errormsg := 'Update fin_factuur';
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
UPDATE fin_factuur
SET fin_factuur_verwerkt = SYSDATE,
fin_factuur_statuses_key = 7
WHERE fin_factuur_key IN
( SELECT fin_factuur_key
FROM conn_v_export_finorders_nav_fb
);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
END;
/
-- Procedure voor de exporteren van factuurgegevens (naar C=Coda en N=Navision)
CREATE OR REPLACE PROCEDURE conn_select_finorders_nav_vg (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
DELETE conn_exp_finorders_nav_vg;
INSERT INTO conn_exp_finorders_nav_vg
(MODULE, DOEL, ORDERNR, FACTUURNR, LEVERANCIERSNR,
FACTUURDATUM, BOEKINGSDATUM, SPREIDENOVER, KOSTENSOORT, FACREGELOMS,
LOCATIENR, HUURDERNR, BUDGETCODE, AANTAL, PRIJS,
VERDEELPERIODE, BTWTYPE, TOTAAL, KLANTNR, EIGENAAR, FIN_FACTUUR_KEY)
(SELECT 'MLD' module, SUBSTR (kostensoort, 1, 1) doel, ordernr,
factuurnr, leveranciersnr, factuurdatum,
boekingsdatum, spreidenover, SUBSTR (kostensoort, 2) kostensoort,
facregeloms, DECODE (prs_kostenplaats_module, 'PRJ', prs_kostenplaats_nr, locatienr),
huurdernr, budgetcode, aantal, prijs,
verdeelperiode, btwtype, totaal, klantnr, eigenaar, fin_factuur_key
FROM conn_v_exp_mld
WHERE SUBSTR (kostensoort, 1, 1) = 'N' AND eigenaar = 'VG'
UNION ALL
SELECT 'CNT', SUBSTR (kostensoort, 1, 1) doel, ordernr,
factuurnr, leveranciersnr, factuurdatum,
boekingsdatum, spreidenover, SUBSTR (kostensoort, 2) kostensoort,
facregeloms, locatienr, huurdernr, budgetcode, aantal, prijs,
verdeelperiode, btwtype, totaal, klantnr, eigenaar, fin_factuur_key
FROM conn_v_exp_cnt
WHERE SUBSTR (kostensoort, 1, 1) = 'N' AND eigenaar = 'VG'
UNION ALL
SELECT 'BES', SUBSTR (kostensoort, 1, 1) doel, ordernr,
factuurnr, leveranciersnr, factuurdatum,
boekingsdatum, spreidenover, SUBSTR (kostensoort, 2) kostensoort,
facregeloms, locatienr, huurdernr, budgetcode, aantal, prijs,
verdeelperiode, btwtype, totaal, klantnr, eigenaar, fin_factuur_key
FROM conn_v_exp_bes
WHERE SUBSTR (kostensoort, 1, 1) = 'N' AND eigenaar = 'VG');
END;
/
-- Procedure voor de exporteren van factuurgegevens (naar C=Coda en N=Navision)
CREATE OR REPLACE PROCEDURE conn_export_finorders_nav_vg (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
v_errormsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
v_errormsg := 'Update fin_factuur';
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
UPDATE fin_factuur
SET fin_factuur_verwerkt = SYSDATE,
fin_factuur_statuses_key = 7
WHERE fin_factuur_key IN
( SELECT fin_factuur_key
FROM conn_v_export_finorders_nav_vg
);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
END;
/
-- Procedure voor de import van facturen (van leverancier of basware)
CREATE OR REPLACE PROCEDURE conn_import_factuur (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
v_filehandle UTL_FILE.file_type;
v_newline VARCHAR2 (1000); -- Input line
v_field VARCHAR2 (100);
v_fielddelimitor VARCHAR2 (1);
v_errormsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
-- De velden op de eerste regel
v_totbedrfact VARCHAR2 (100);
v_totbedrfactvalue VARCHAR2 (100);
-- De importvelden
v_empty VARCHAR2 (100);
v_onsklantnr VARCHAR2 (100);
v_ordernr VARCHAR2 (100);
v_leveranciernr VARCHAR2 (100);
v_factuurnr VARCHAR2 (100);
v_factuurdatum VARCHAR2 (100);
v_aantal VARCHAR2 (100);
v_kostprijs VARCHAR2 (100);
v_btw VARCHAR2 (100);
v_locatie VARCHAR2 (100);
v_afleverdatum VARCHAR2 (100);
v_check_dec_sign NUMBER(5,2);
CURSOR cfactuur
IS
SELECT imp_index, imp_line
FROM conn_imp_factuur_file
ORDER BY imp_index;
v_rec cfactuur%rowtype;
BEGIN
-- Init
v_fielddelimitor := ';';
header_is_valid := 0;
DELETE FROM conn_imp_factuur;
DELETE imp_log
WHERE imp_log_applicatie = 'FACTUUR';
-- check the client decimal settings
-- we do not convert the , to a . if the client decimal separator is a ,
SELECT FAC.SAFE_TO_NUMBER('2,5')
INTO v_check_dec_sign
FROM DUAL;
OPEN cfactuur;
IF cfactuur%ISOPEN THEN
LOOP
BEGIN
FETCH cfactuur INTO v_rec;
EXIT WHEN cfactuur%NOTFOUND;
v_newline := v_rec.imp_line;
IF (header_is_valid = 0)
THEN
fac.imp_getfield (v_newline, v_fielddelimitor, v_totbedrfact);
fac.imp_getfield (v_newline, v_fielddelimitor, v_totbedrfactvalue);
ELSE
fac.imp_getfield (v_newline, v_fielddelimitor, v_onsklantnr);
fac.imp_getfield (v_newline, v_fielddelimitor, v_ordernr);
fac.imp_getfield (v_newline, v_fielddelimitor, v_leveranciernr);
fac.imp_getfield (v_newline, v_fielddelimitor, v_factuurnr);
fac.imp_getfield (v_newline, v_fielddelimitor, v_factuurdatum);
fac.imp_getfield (v_newline, v_fielddelimitor, v_empty);
fac.imp_getfield (v_newline, v_fielddelimitor, v_empty);
fac.imp_getfield (v_newline, v_fielddelimitor, v_aantal);
fac.imp_getfield (v_newline, v_fielddelimitor, v_kostprijs);
fac.imp_getfield (v_newline, v_fielddelimitor, v_btw);
fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie);
fac.imp_getfield (v_newline, v_fielddelimitor, v_afleverdatum);
END IF;
IF (header_is_valid = 0 AND v_totbedrfact = 'TotBedrFactuur')
THEN
header_is_valid := 1;
ELSIF ( header_is_valid = 1
AND v_onsklantnr = 'OnsKlantNr'
AND v_ordernr = 'OrderNr'
AND v_leveranciernr = 'Leveranciernr'
AND v_factuurnr = 'FactNr'
AND v_factuurdatum = 'FactDatum'
AND v_aantal = 'Aantal'
AND v_kostprijs = 'KostPrijs'
AND v_btw = 'Btw'
AND v_locatie = 'Locatie'
AND v_afleverdatum = 'Afleverdatum'
)
THEN
header_is_valid := 2;
ELSIF (header_is_valid = 2) -- v_ordernr mag leeg zijn
THEN
IF v_check_dec_sign IS NULL THEN
v_kostprijs := REPLACE (SUBSTR (v_kostprijs, 1, 11), ',', '.');
ELSE
v_kostprijs := SUBSTR (v_kostprijs, 1, 11);
END IF;
INSERT INTO conn_imp_factuur
(debiteurnr,
ordernr,
leveranciernr,
factuurnr,
factuurdatum,
aantal,
kostprijs,
btw,
locatie,
afleverdatum
)
VALUES (SUBSTR (v_onsklantnr, 1, 30),
SUBSTR (v_ordernr, 1, 13),
UPPER(SUBSTR (v_leveranciernr, 1, 10)),
SUBSTR (v_factuurnr, 1, 10),
SUBSTR (v_factuurdatum, 1, 8),
SUBSTR (v_aantal, 1, 10),
v_kostprijs,
SUBSTR (v_btw, 1, 2),
SUBSTR (v_locatie, 1, 4),
SUBSTR (v_afleverdatum, 1, 8)
);
COMMIT;
END IF;
END;
END LOOP;
END IF;
IF (header_is_valid < 2)
THEN
fac.imp_writelog
(p_applname,
p_applrun,
'E',
'Invalid import file',
'Er is geen geldige Header aangetroffen in het importbestand'
);
END IF;
EXCEPTION
WHEN OTHERS
THEN
UTL_FILE.fclose (v_filehandle);
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
END;
/
/* Formatted on 2006/07/06 16:46 (Formatter Plus v4.8.5) */
CREATE OR REPLACE PROCEDURE conn_update_factuur (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
CURSOR cfactuur
IS
SELECT RTRIM (LTRIM (ordernr)) ordernr,
leveranciernr,
factuurnr,
factuurdatum,
SUM (aantal * kostprijs) totaal,
SUM (aantal * kostprijs * btw / 100) totaal_btw,
btw,
SUBSTR (factuurdatum, 1, 4) fjaar,
SUBSTR (factuurdatum, 5, 2) fmaand,
SUBSTR (factuurdatum, 7, 2) fdag,
debiteurnr, -- wordt nog niets mee gedaan
SUM (aantal) aantal,
locatie,
SUBSTR (afleverdatum, 1, 4) ajaar, -- afleverdatum nodig om opdrachtnummer bij bestelopdrachten te achterhalen indien ordernr niet is meegegeven
SUBSTR (afleverdatum, 5, 2) amaand,
SUBSTR (afleverdatum, 7, 2) adag
FROM conn_imp_factuur
GROUP BY ordernr,
leveranciernr,
factuurnr,
factuurdatum,
btw,
factuurdatum,
debiteurnr,
locatie,
afleverdatum
ORDER BY ordernr,
btw DESC;
c_i NUMBER;
c_teller NUMBER;
c_index NUMBER;
c_factuurregel NUMBER;
c_fac_type VARCHAR2 (1);
c_prefix VARCHAR2 (3);
c_ordernr_index NUMBER;
c_ordernr_s1 VARCHAR2 (20);
c_ordernr_s2 VARCHAR2 (20);
c_old_ordernr VARCHAR2 (20);
c_write_ordernr VARCHAR2 (20);
c_besteloprd_ordernr NUMBER (10);
c_totaal NUMBER;
c_find BOOLEAN;
c_find_ordernr BOOLEAN;
c_mld_opdr_key NUMBER (10);
c_cnt_contract_key NUMBER (10);
c_bes_bestelopdr_key NUMBER (10);
v_errormsg VARCHAR (200);
oracle_err_mes VARCHAR2 (150);
BEGIN
-- Maak de log tabel leeg
DELETE imp_log
WHERE imp_log_run <> p_applrun
AND imp_log_applicatie = 'FACTUUR';
c_old_ordernr := '';
c_teller := 0;
-- Facturen
FOR rc IN cfactuur
LOOP
IF rc.ordernr = c_old_ordernr
THEN
-- voeg alleen nieuwe factuurregel toe die een andere BTW waarde heeft
-- waarde van c_index is nog steeds actueel
c_factuurregel := c_factuurregel + 1;
BEGIN
INSERT INTO fin_factuurregel
(fin_factuur_key,
fin_factuurregel_nr,
fin_factuurregel_totaal,
fin_factuurregel_btw,
fin_factuurregel_omschrijving,
fin_factuurregel_referentie
)
VALUES (c_index,
c_factuurregel,
rc.totaal,
rc.totaal_btw,
rc.aantal || ' artikelen met ' || rc.btw || '% BTW',
rc.locatie
);
COMMIT;
fac.imp_writelog (p_applname,
p_applrun,
'I',
'Factuurregel '
|| c_factuurregel
|| ' toegevoegd aan factuur '
|| c_index,
rc.ordernr || ' / ' || rc.factuurnr
);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog
(p_applname,
p_applrun,
'E',
'Factuur(regel) kan niet toegevoegd worden '
|| v_errormsg,
rc.ordernr || '/' || rc.factuurnr
);
END;
c_teller := c_teller + 1;
ELSE
c_old_ordernr := rc.ordernr;
c_factuurregel := 1;
c_ordernr_index := INSTR (rc.ordernr, '/');
c_totaal := 0;
IF c_ordernr_index = 0
THEN
c_ordernr_s1 := rc.ordernr;
c_ordernr_s2 := '';
ELSE
c_ordernr_s1 := SUBSTR (rc.ordernr, 1, c_ordernr_index - 1);
c_ordernr_s2 := SUBSTR (rc.ordernr, c_ordernr_index + 1);
END IF;
c_find := FALSE;
c_find_ordernr := FALSE;
c_fac_type := '';
c_prefix := '';
IF (LENGTH (rc.ordernr) > 0)
THEN
c_prefix := SUBSTR (rc.ordernr, 1, 1);
IF ( c_ordernr_index != 0
OR ( ( ( ASCII (SUBSTR (c_prefix, 1, 1)) >= 65
AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 90
)
OR ( ASCII (SUBSTR (c_prefix, 1, 1)) >= 97
AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 122
)
)
AND ASCII (SUBSTR (c_prefix, 1, 1)) != 67
AND ASCII (SUBSTR (c_prefix, 1, 1)) != 99
)
)
THEN
c_fac_type := 'O'; -- Opdracht (Melding)
ELSIF ( ASCII (SUBSTR (c_prefix, 1, 1)) >= 48
AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 57
)
THEN
c_fac_type := 'B'; -- Bestelling
ELSIF ( ASCII (SUBSTR (c_prefix, 1, 1)) = 67
OR ASCII (SUBSTR (c_prefix, 1, 1)) = 99
)
THEN
c_fac_type := 'C'; -- Contract
ELSE
fac.imp_writelog (p_applname,
p_applrun,
'E',
'Kan type van factuur niet bepalen ',
rc.ordernr || ' / ' || rc.factuurnr
);
END IF;
ELSE
BEGIN
-- Probeer opdrachtnummer te achterhalen bij bestelopdrachten
-- met hetzelfde leveranciersnummer, locatie, afleverdatum en aantal
SELECT bo.bes_bestelopdr_key
INTO c_besteloprd_ordernr
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bbi,
bes_bestelling bb,
mld_adres ma,
alg_locatie l,
prs_bedrijf b
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bbi.bes_bestelling_key = bb.bes_bestelling_key
AND boi.bes_bestelopdr_item_aantal = rc.aantal
AND bb.bes_bestelling_leverdatum = TO_DATE (rc.ajaar
|| '-'
|| rc.amaand
|| '-'
|| rc.adag
|| ' 00:00',
'YYYY-MM-DD HH24:MI')
AND bo.mld_adres_key_lev = ma.mld_adres_key
AND ma.alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_code = rc.locatie
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_leverancier_nr = rc.leveranciernr;
c_find_ordernr := TRUE;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog
(p_applname,
p_applrun,
'E',
'Kan het bestelopdrachtnummer (OrderNr) niet vinden '
|| v_errormsg,
'?/' || rc.factuurnr || '/' || rc.aantal || '/' ||
rc.ajaar || '-' || rc.amaand || '-' || rc.adag || '/' ||
rc.locatie || '/' || rc.leveranciernr
);
c_find_ordernr := FALSE;
END;
IF c_find_ordernr
THEN
c_ordernr_s1 := '' || c_besteloprd_ordernr;
c_fac_type := 'B';
END IF;
END IF;
IF c_fac_type = 'O'
THEN
IF ( c_ordernr_index != 0
AND ( ASCII (SUBSTR (c_prefix, 1, 1)) >= 48
AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 57
)
)
-- Er is geen prefix maar het is wel een opdracht
-- Afgedwongen door /
THEN
-- c_ordernr_s2 bevat al het gedeelte na de /
-- c_ordernr_s1 bevat geen prefix
c_find := TRUE;
ELSE
c_i := 1;
LOOP
IF ( ASCII (SUBSTR (c_ordernr_s1, c_i, 1)) >= 48
AND ASCII (SUBSTR (c_ordernr_s1, c_i, 1)) <= 57
)
THEN
c_find := TRUE;
ELSE
c_i := c_i + 1;
END IF;
EXIT WHEN (c_find OR c_i > LENGTH (c_ordernr_s1));
END LOOP;
IF c_find
THEN
c_ordernr_s1 := SUBSTR (c_ordernr_s1, c_i);
ELSE
fac.imp_writelog (p_applname,
p_applrun,
'E',
'Kan OrderNr niet bepalen ',
rc.ordernr || ' / ' || rc.factuurnr
);
END IF;
END IF;
ELSIF c_fac_type = 'C'
THEN
-- haal prefix 'C' of 'c' eraf
c_ordernr_s1 := SUBSTR (c_ordernr_s1, 2);
c_find := TRUE;
ELSIF c_fac_type = 'B'
THEN
-- geen prefix aanwezig, c_ordernr_s1 is goed
c_find := TRUE;
END IF;
-- c_ordernr_s1 bevat ordernummer
-- c_ordernr_s2 bevat volgnummer van de opdracht bij meldingen
-- Bij bestellingen en contracten is deze waarde leeg
-- Find mld_opdr_key met mld_melding_key
IF c_fac_type = 'O'
THEN
c_cnt_contract_key := NULL;
c_bes_bestelopdr_key := NULL;
BEGIN
SELECT o.mld_opdr_key
INTO c_mld_opdr_key
FROM mld_opdr o
WHERE o.mld_melding_key = c_ordernr_s1
AND mld_opdr_bedrijfopdr_volgnr = c_ordernr_s2;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog
(p_applname,
p_applrun,
'E',
'Kan de melding referentie niet vinden '
|| v_errormsg,
rc.ordernr || '/' || rc.factuurnr
);
c_find := FALSE;
END;
ELSIF c_fac_type = 'C'
THEN
c_cnt_contract_key := c_ordernr_s1;
c_bes_bestelopdr_key := NULL;
c_mld_opdr_key := NULL;
ELSIF c_fac_type = 'B'
THEN
c_cnt_contract_key := NULL;
c_bes_bestelopdr_key := c_ordernr_s1;
c_mld_opdr_key := NULL;
END IF;
IF ( (c_fac_type = 'B' OR c_fac_type = 'C' OR c_fac_type = 'O')
AND c_find
)
THEN
BEGIN
SELECT fin_s_fin_factuur_key.NEXTVAL
INTO c_index
FROM DUAL;
INSERT INTO fin_factuur
(fin_factuur_key,
fin_factuur_totaal,
fin_factuur_totaal_btw,
mld_opdr_key,
cnt_contract_key,
bes_bestelopdr_key,
prs_perslid_key_user,
fin_factuur_datum,
fin_factuur_opmerking,
fin_factuur_statuses_key,
fin_factuur_nr,
fin_factuur_boekmaand,
fin_factuur_debiteur_nr,
prs_kostensoort_key
)
VALUES (c_index,
rc.totaal,
rc.totaal_btw,
c_mld_opdr_key,
c_cnt_contract_key,
c_bes_bestelopdr_key,
1042, -- Martin Hanemaaijer
TO_DATE (rc.fjaar
|| '-'
|| rc.fmaand
|| '-'
|| rc.fdag
|| ' 00:00',
'YYYY-MM-DD HH24:MI'),
'Ge<EFBFBD>mporteerde factuur',
2,
rc.factuurnr,
rc.fjaar || '-' || rc.fmaand,
rc.debiteurnr,
NULL
);
COMMIT;
INSERT INTO fin_factuurregel
(fin_factuur_key,
fin_factuurregel_nr,
fin_factuurregel_totaal,
fin_factuurregel_btw,
fin_factuurregel_omschrijving,
fin_factuurregel_referentie
)
VALUES (c_index,
c_factuurregel, -- Zal hier altijd 1 zijn
rc.totaal,
rc.totaal_btw,
rc.aantal || ' eenheden met ' || rc.btw || '% BTW',
rc.locatie
);
COMMIT;
IF c_find_ordernr
THEN
c_write_ordernr := '' || c_besteloprd_ordernr;
ELSE
c_write_ordernr := rc.ordernr;
END IF;
fac.imp_writelog (p_applname,
p_applrun,
'I',
'Factuur '
|| c_index
|| ' toegevoegd met factuurregel '
|| c_factuurregel,
c_write_ordernr || ' / ' || rc.factuurnr
);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog
(p_applname,
p_applrun,
'E',
'Factuur(regel) kan niet toegevoegd worden '
|| v_errormsg,
rc.ordernr || '/' || rc.factuurnr
);
END;
END IF;
c_teller := c_teller + 1;
END IF;
END LOOP;
-- Facturen
FOR rc IN cfactuur
LOOP
c_fac_type := '';
c_prefix := '';
c_find_ordernr := FALSE;
IF (LENGTH (rc.ordernr) > 0)
THEN
c_prefix := SUBSTR (rc.ordernr, 1, 1);
IF ( c_ordernr_index != 0
OR ( ( ( ASCII (SUBSTR (c_prefix, 1, 1)) >= 65
AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 90
)
OR ( ASCII (SUBSTR (c_prefix, 1, 1)) >= 97
AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 122
)
)
AND ASCII (SUBSTR (c_prefix, 1, 1)) != 67
AND ASCII (SUBSTR (c_prefix, 1, 1)) != 99
)
)
THEN
c_fac_type := 'O'; -- Opdracht (Melding)
ELSIF ( ASCII (SUBSTR (c_prefix, 1, 1)) >= 48
AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 57
)
THEN
c_fac_type := 'B'; -- Bestelling
c_besteloprd_ordernr := TO_NUMBER (rc.ordernr, '9999999999');
ELSIF ( ASCII (SUBSTR (c_prefix, 1, 1)) = 67
OR ASCII (SUBSTR (c_prefix, 1, 1)) = 99
)
THEN
c_fac_type := 'C'; -- Contract
ELSE
fac.imp_writelog (p_applname,
p_applrun,
'E',
'Kan type van factuur niet bepalen ',
rc.ordernr || ' / ' || rc.factuurnr
);
END IF;
ELSE
BEGIN
-- Probeer opdrachtnummer te achterhalen bij bestelopdrachten
-- met hetzelfde leveranciersnummer, locatie, afleverdatum en aantal
SELECT bo.bes_bestelopdr_key
INTO c_besteloprd_ordernr
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bbi,
bes_bestelling bb,
mld_adres ma,
alg_locatie l,
prs_bedrijf b
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bbi.bes_bestelling_key = bb.bes_bestelling_key
AND boi.bes_bestelopdr_item_aantal = rc.aantal
AND bb.bes_bestelling_leverdatum = TO_DATE (rc.ajaar
|| '-'
|| rc.amaand
|| '-'
|| rc.adag
|| ' 00:00',
'YYYY-MM-DD HH24:MI')
AND bo.mld_adres_key_lev = ma.mld_adres_key
AND ma.alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_code = rc.locatie
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_leverancier_nr = rc.leveranciernr;
c_find_ordernr := TRUE;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog
(p_applname,
p_applrun,
'E',
'Kan het bestelopdrachtnummer (OrderNr) niet vinden '
|| v_errormsg,
'?/' || rc.factuurnr || '/' || rc.aantal || '/' ||
rc.ajaar || '-' || rc.amaand || '-' || rc.adag || '/' ||
rc.locatie || '/' || rc.leveranciernr
);
c_find_ordernr := FALSE;
END;
IF c_find_ordernr
THEN
c_fac_type := 'B';
END IF;
END IF;
IF c_fac_type = 'B'
THEN
SELECT SUM ( boi.bes_bestelopdr_item_prijs
* boi.bes_bestelopdr_item_aantal
)
INTO c_totaal
FROM bes_bestelopdr b, bes_bestelopdr_item boi
WHERE boi.bes_bestelopdr_key = b.bes_bestelopdr_key
AND b.bes_bestelopdr_key = c_besteloprd_ordernr;
SELECT MAX (fin_factuur_key)
INTO c_index
FROM fin_factuur
WHERE bes_bestelopdr_key = c_besteloprd_ordernr;
IF c_totaal = rc.totaal
THEN
UPDATE fin_factuur
SET fin_factuur_datumfiat_ok = SYSDATE,
prs_perslid_key_fiat = 1042,
fin_factuur_statuses_key = 6
WHERE fin_factuur_key = c_index
AND ( mld_opdr_key IS NOT NULL
OR cnt_contract_key IS NOT NULL
OR bes_bestelopdr_key IS NOT NULL
);
fac.imp_writelog (p_applname,
p_applrun,
'I',
'Factuur '
|| c_index
|| ' status op afgemeld gezet ',
c_besteloprd_ordernr || ' / ' || rc.factuurnr
);
END IF;
END IF;
COMMIT;
END LOOP;
END;
/
-- CONN#756 view tbv b-ware ( view wordt niet door facilitor gebruikt)
CREATE OR REPLACE VIEW CXX_CRED_BWIPEXP
("CMPCODE", "CODE", "NAME", "ADD1", "ADD2", "TERMS", "ACNUM", "ACREF",
"CFVALUE", "STARTYEAR", "STARTPERIOD", "ENDYEAR", "ENDPERIOD")
AS
SELECT 'FB-01'
, PRS_LEVERANCIER_NR
, PRS_BEDRIJF_NAAM
, PRS_BEDRIJF_POST_ADRES
, PRS_BEDRIJF_POST_POSTCODE || '/' || PRS_BEDRIJF_POST_PLAATS
, '-' --betalingstermijn
, DECODE (UPPER(SUBSTR(PRS_LEVERANCIER_NR,1,1)),
'C', SUBSTR(PRS_LEVERANCIER_NR,2) ,
(SELECT PRS_KENMERKLINK_WAARDE
FROM PRS_KENMERKLINK WHERE PRS_KENMERK_KEY = 1180
AND PRS_LINK_KEY = PRS_BEDRIJF_KEY)) --bankrekeningnummer
, '-'
, '1431100'
, '0'
, '0'
, '0'
, '0'
FROM PRS_V_AANWEZIGBEDRIJF
WHERE PRS_BEDRIJF_INTERN IS NULL
AND NVL(PRS_BEDRIJF_HUURDER,0) <> 1
AND ( UPPER(PRS_LEVERANCIER_NR) LIKE 'C%'
OR UPPER(PRS_LEVERANCIER_NR) LIKE 'LEV%');
commit;
-- Zaken tbv Perman/Interconnect koppeling (voorheen in aparte bestanden)
-- Start perman.sql
/* Formatted on 2006/09/15 11:37 (Formatter Plus v4.8.5) */
CREATE OR REPLACE PACKAGE perman
AS
PROCEDURE verwerk (
p_ind_toekomstmutatie IN VARCHAR2,
p_dvb_personeelsnummer IN VARCHAR2,
p_per_naam IN VARCHAR2,
p_per_partnernaam IN VARCHAR2,
p_per_indnaamsvoegen IN VARCHAR2,
p_per_tussenvoegsels IN VARCHAR2,
p_per_partussenvoegs IN VARCHAR2,
p_per_voorletters IN VARCHAR2,
p_per_roepnaam IN VARCHAR2,
p_per_username IN VARCHAR2,
p_per_titel IN VARCHAR2,
p_per_achtervoegsel IN VARCHAR2,
p_dvb_datum_in_dienst IN DATE,
p_dvb_datum_uit_dienst IN DATE,
p_fnc_omschrijving IN VARCHAR2,
p_dvb_k_emailzake IN VARCHAR2,
p_dvb_divisie IN VARCHAR2,
p_dvb_divisie_label IN VARCHAR2,
p_dvb_k_regio IN VARCHAR2,
p_dvb_k_regio_label IN VARCHAR2,
p_dvb_k_regiozoeknaam IN VARCHAR2,
p_afd_code IN VARCHAR2,
p_afd_omschrijving IN VARCHAR2,
p_dvb_k_standplts_label IN VARCHAR2
);
FUNCTION prs_perslid_key (p_dvb_personeelsnummer IN VARCHAR2)
RETURN NUMBER;
FUNCTION prs_srtperslid_key (p_fnc_omschrijving IN VARCHAR2)
RETURN NUMBER;
FUNCTION prs_perslid_verwijder
RETURN NUMBER;
FUNCTION prs_afdeling_key (
p_dvb_divisie IN VARCHAR2,
p_dvb_divisie_label IN VARCHAR2,
p_dvb_k_regiozoeknaam IN VARCHAR2,
p_dvb_k_regio_label IN VARCHAR2,
p_afd_code IN VARCHAR2,
p_afd_omschrijving IN VARCHAR2
)
RETURN NUMBER;
FUNCTION prs_afdeling_key_old (p_dvb_personeelsnummer IN VARCHAR2)
RETURN NUMBER;
END perman;
/
CREATE OR REPLACE PACKAGE BODY perman
AS
PROCEDURE verwerk (
p_ind_toekomstmutatie IN VARCHAR2,
p_dvb_personeelsnummer IN VARCHAR2,
p_per_naam IN VARCHAR2,
p_per_partnernaam IN VARCHAR2,
p_per_indnaamsvoegen IN VARCHAR2,
p_per_tussenvoegsels IN VARCHAR2,
p_per_partussenvoegs IN VARCHAR2,
p_per_voorletters IN VARCHAR2,
p_per_roepnaam IN VARCHAR2,
p_per_username IN VARCHAR2,
p_per_titel IN VARCHAR2,
p_per_achtervoegsel IN VARCHAR2,
p_dvb_datum_in_dienst IN DATE,
p_dvb_datum_uit_dienst IN DATE,
p_fnc_omschrijving IN VARCHAR2,
p_dvb_k_emailzake IN VARCHAR2,
p_dvb_divisie IN VARCHAR2,
p_dvb_divisie_label IN VARCHAR2,
p_dvb_k_regio IN VARCHAR2,
p_dvb_k_regio_label IN VARCHAR2,
p_dvb_k_regiozoeknaam IN VARCHAR2,
p_afd_code IN VARCHAR2,
p_afd_omschrijving IN VARCHAR2,
p_dvb_k_standplts_label IN VARCHAR2
)
IS
v_prs_srtperslid_key prs_srtperslid.prs_srtperslid_key%TYPE;
v_prs_afdeling_key prs_afdeling.prs_afdeling_key%TYPE;
v_prs_afdeling_key_old prs_afdeling.prs_afdeling_key%TYPE;
v_prs_perslid_key prs_perslid.prs_perslid_key%TYPE;
v_fac_groep_key fac_groep.fac_groep_key%TYPE;
v_prs_perslid_naam prs_perslid.prs_perslid_naam%TYPE;
v_prs_perslid_tussenvoegsels prs_perslid.prs_perslid_tussenvoegsel%TYPE;
v_prs_perslid_titel prs_perslid.prs_perslid_titel%TYPE := NULL;
v_prs_perslid_einddatum prs_perslid.prs_perslid_einddatum%TYPE;
v_standplaats_kenmerk_key prs_kenmerk.prs_kenmerk_key%TYPE;
v_standplaats_kenmerklink_key prs_kenmerklink.prs_kenmerklink_key%TYPE;
v_count NUMBER (10);
BEGIN
v_prs_srtperslid_key := prs_srtperslid_key (p_fnc_omschrijving);
v_prs_afdeling_key :=
prs_afdeling_key (p_dvb_divisie,
p_dvb_divisie_label,
p_dvb_k_regiozoeknaam,
p_dvb_k_regio_label,
p_afd_code,
p_afd_omschrijving
);
v_prs_perslid_key := prs_perslid_key (p_dvb_personeelsnummer);
v_prs_afdeling_key_old := prs_afdeling_key_old (p_dvb_personeelsnummer);
v_prs_perslid_naam := SUBSTR (p_per_naam, 1, 30);
v_prs_perslid_tussenvoegsels := p_per_tussenvoegsels;
IF p_per_indnaamsvoegen = 'J'
OR p_per_indnaamsvoegen = 'W'
OR p_per_indnaamsvoegen = 'E'
OR p_per_indnaamsvoegen = 'P'
THEN
v_prs_perslid_tussenvoegsels := p_per_partussenvoegs;
IF p_per_tussenvoegsels IS NOT NULL
THEN
v_prs_perslid_naam := SUBSTR (p_per_partnernaam || '-' || p_per_tussenvoegsels || ' ' || p_per_naam, 1, 30);
ELSE
v_prs_perslid_naam := SUBSTR (p_per_partnernaam || '-' || p_per_naam, 1, 30);
END IF;
ELSIF p_per_indnaamsvoegen = 'A'
THEN
v_prs_perslid_tussenvoegsels := p_per_partussenvoegs;
v_prs_perslid_naam := SUBSTR (p_per_partnernaam, 1, 30);
ELSIF p_per_indnaamsvoegen = 'G'
THEN
IF p_per_partussenvoegs IS NOT NULL
THEN
v_prs_perslid_naam :=
SUBSTR (v_prs_perslid_naam || '-' || p_per_partussenvoegs || ' ' || p_per_partnernaam, 1, 30);
ELSE
v_prs_perslid_naam := SUBSTR (v_prs_perslid_naam || '-' || p_per_partnernaam, 1, 30);
END IF;
END IF;
IF p_ind_toekomstmutatie = 'N'
THEN -- Toekomstmutaties niet meenemen
IF p_per_titel IS NOT NULL OR p_per_achtervoegsel IS NOT NULL
THEN
v_prs_perslid_titel := SUBSTR (p_per_titel || '()' || p_per_achtervoegsel, 1, 15);
END IF;
-- controleren op onbepaald (dwz dvb_datum_uit_dienst=31 dec 2999)
v_prs_perslid_einddatum := p_dvb_datum_uit_dienst;
IF p_dvb_datum_uit_dienst IS NULL
THEN
v_prs_perslid_einddatum := TO_DATE ('31-12-2999', 'DD-MM-YYYY');
END IF;
IF v_prs_perslid_key = 0
THEN --nieuwe medewerker
INSERT INTO prs_perslid
(prs_perslid_nr, prs_perslid_module, prs_perslid_naam,
prs_perslid_tussenvoegsel, prs_perslid_voorletters,
prs_perslid_voornaam
-- , prs_perslid_oslogin
, prs_perslid_titel, prs_perslid_ingangsdatum,
prs_perslid_einddatum, prs_afdeling_key, prs_srtperslid_key
)
VALUES (p_dvb_personeelsnummer, 'PRS', v_prs_perslid_naam,
SUBSTR (v_prs_perslid_tussenvoegsels, 1, 15), SUBSTR (p_per_voorletters, 1, 10),
SUBSTR (p_per_roepnaam, 1, 30)
-- , substr(p_per_username,1,30)
, v_prs_perslid_titel, p_dvb_datum_in_dienst,
v_prs_perslid_einddatum, v_prs_afdeling_key, v_prs_srtperslid_key
);
SELECT prs_perslid_key
INTO v_prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_nr = p_dvb_personeelsnummer;
-- Default autorisatie toekennen aan deze nieuwe persoon
BEGIN
SELECT fac_groep_key
INTO v_fac_groep_key
FROM fac_groep
WHERE fac_groep_upper = 'ALGEMEEN2808' AND fac_groep_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO fac_groep
(fac_groep_omschrijving
)
VALUES ('Algemeen2808'
);
SELECT fac_groep_key
INTO v_fac_groep_key
FROM fac_groep
WHERE fac_groep_upper = 'ALGEMEEN2808' AND fac_groep_verwijder IS NULL;
END;
INSERT INTO fac_gebruikersgroep
(fac_groep_key, prs_perslid_key
)
VALUES (v_fac_groep_key, v_prs_perslid_key
);
ELSE
UPDATE prs_perslid
SET prs_perslid_naam = v_prs_perslid_naam,
prs_perslid_tussenvoegsel = SUBSTR (v_prs_perslid_tussenvoegsels, 1, 15),
prs_perslid_voorletters = SUBSTR (p_per_voorletters, 1, 10),
prs_perslid_voornaam = SUBSTR (p_per_roepnaam, 1, 30)
-- , prs_perslid_oslogin=substr(p_per_username,1,30)
,
prs_perslid_titel = v_prs_perslid_titel,
prs_perslid_ingangsdatum = p_dvb_datum_in_dienst,
prs_perslid_einddatum = v_prs_perslid_einddatum,
prs_afdeling_key = v_prs_afdeling_key,
prs_srtperslid_key = v_prs_srtperslid_key
WHERE prs_perslid_key = v_prs_perslid_key;
END IF;
--standplaats-kenmerk!!!
SELECT prs_kenmerk.prs_kenmerk_key
INTO v_standplaats_kenmerk_key
FROM prs_kenmerk
WHERE prs_kenmerk_upper = 'STANDPLAATS';
BEGIN
SELECT prs_kenmerklink_key
INTO v_standplaats_kenmerklink_key
FROM prs_kenmerklink
WHERE prs_link_key = v_prs_perslid_key AND prs_kenmerk_key = v_standplaats_kenmerk_key;
IF p_dvb_k_standplts_label IS NULL
THEN
DELETE FROM prs_kenmerklink
WHERE prs_kenmerklink_key = v_standplaats_kenmerklink_key;
ELSE
UPDATE prs_kenmerklink
SET prs_kenmerklink_waarde = p_dvb_k_standplts_label
WHERE prs_kenmerklink_key = v_standplaats_kenmerklink_key;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN -- nieuwe toevoegen indien niet leeg
IF p_dvb_k_standplts_label IS NOT NULL
THEN
INSERT INTO prs_kenmerklink
(prs_link_key, prs_kenmerklink_niveau, prs_kenmerk_key, prs_kenmerklink_waarde
)
VALUES (v_prs_perslid_key, 'P', v_standplaats_kenmerk_key, p_dvb_k_standplts_label
);
END IF;
END;
END IF;
v_count := prs_perslid_verwijder; -- CONN#410
END;
FUNCTION prs_perslid_key (p_dvb_personeelsnummer IN VARCHAR2)
RETURN NUMBER
IS
v_prs_perslid_key prs_perslid.prs_perslid_key%TYPE;
-- CONN#613 only search for active persons
BEGIN
SELECT prs_perslid_key
INTO v_prs_perslid_key
FROM prs_v_aanwezigperslid
WHERE prs_perslid_nr = p_dvb_personeelsnummer;
RETURN v_prs_perslid_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN 0;
END;
FUNCTION prs_srtperslid_key (p_fnc_omschrijving IN VARCHAR2)
RETURN NUMBER
IS
v_prs_srtperslid_key prs_perslid.prs_srtperslid_key%TYPE;
BEGIN
SELECT prs_srtperslid_key
INTO v_prs_srtperslid_key
FROM prs_srtperslid
WHERE prs_srtperslid_upper = UPPER (p_fnc_omschrijving);
RETURN v_prs_srtperslid_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO prs_srtperslid
(prs_srtperslid_omschrijving
)
VALUES (p_fnc_omschrijving
);
SELECT prs_srtperslid_key
INTO v_prs_srtperslid_key
FROM prs_srtperslid
WHERE prs_srtperslid_upper = UPPER (p_fnc_omschrijving);
RETURN v_prs_srtperslid_key;
END;
-- CONN#410
FUNCTION prs_perslid_verwijder
RETURN NUMBER
IS
CURSOR c_prs_del
IS
SELECT DISTINCT p.prs_perslid_key
FROM prs_perslid p, prs_v_verplichting pv
WHERE p.prs_perslid_verwijder IS NULL
AND NOT (p.prs_perslid_einddatum IS NULL)
AND p.prs_perslid_einddatum <= SYSDATE
AND p.prs_perslid_key = pv.prs_perslid_key(+)
AND pv.prs_perslid_key IS NULL;
rec_prs_del c_prs_del%ROWTYPE;
v_count_verwijderd NUMBER (10);
v_errmes VARCHAR2 (512);
BEGIN
v_count_verwijderd := 0;
FOR rec_prs_del IN c_prs_del
LOOP
BEGIN
UPDATE prs_perslidwerkplek
SET prs_perslidwerkplek_verwijder = SYSDATE
WHERE prs_perslid_key = rec_prs_del.prs_perslid_key AND prs_perslidwerkplek_verwijder IS NULL;
UPDATE prs_perslid
SET prs_perslid_verwijder = SYSDATE
WHERE prs_perslid_key = rec_prs_del.prs_perslid_key;
EXCEPTION
WHEN OTHERS
THEN
v_errmes := 'Error bij verwijderen persoon. Negeer fouten, verwerk de volgende persoon.';
END;
END LOOP;
RETURN v_count_verwijderd;
END;
FUNCTION prs_afdeling_key (
p_dvb_divisie IN VARCHAR2,
p_dvb_divisie_label IN VARCHAR2,
p_dvb_k_regiozoeknaam IN VARCHAR2,
p_dvb_k_regio_label IN VARCHAR2,
p_afd_code IN VARCHAR2,
p_afd_omschrijving IN VARCHAR2
)
RETURN NUMBER
IS
v_mh_bedrijf_key prs_afdeling.prs_afdeling_key%TYPE;
v_mh_afdeling_parentkey prs_afdeling.prs_afdeling_key%TYPE;
v_afdeling_key prs_afdeling.prs_afdeling_key%TYPE;
BEGIN
BEGIN
SELECT a.prs_afdeling_key
INTO v_afdeling_key
FROM prs_afdeling a
WHERE a.prs_afdeling_upper = UPPER (p_afd_code) AND a.prs_afdeling_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_afdeling_key := NULL;
END;
IF v_afdeling_key IS NULL
THEN -- afdeling bestaat niet
BEGIN
-- bestaat afdeling "perman nieuw"
SELECT a.prs_afdeling_key
INTO v_afdeling_key
FROM prs_afdeling a
WHERE a.prs_afdeling_upper = UPPER ('Perman')
AND UPPER (a.prs_afdeling_omschrijving) = UPPER ('Perman nieuw')
AND a.prs_afdeling_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_afdeling_key := NULL;
END;
IF v_afdeling_key IS NULL
THEN -- afdeling "Perman nieuw" bestaat niet
-- maak de afdeling " Perman nieuw" aan (dezelfde regio als Maarten Hanemaaijer)
-- vind afdeling van Maarten Hanemaaijer, perslid_key = 1042
-- benodigd zijn prs_afdeling_parent_key en prs_bedrijf_key
BEGIN
SELECT a.prs_bedrijf_key, a.prs_afdeling_parentkey
INTO v_mh_bedrijf_key, v_mh_afdeling_parentkey
FROM prs_perslid p, prs_afdeling a
WHERE p.prs_afdeling_key = a.prs_afdeling_key AND p.prs_perslid_key = 1042;
-- and p.prs_perslid_upper = upper ('Hanemaaijer')
-- and upper (p.prs_perslid_voornaam) = upper ('Maarten');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN 0;
END;
-- maak de afdeling "Perman nieuw" aan
INSERT INTO prs_afdeling
(prs_afdeling_parentkey, prs_afdeling_naam, prs_afdeling_omschrijving, prs_bedrijf_key
)
VALUES (v_mh_afdeling_parentkey, 'Perman', 'Perman nieuw', v_mh_bedrijf_key
);
-- vindt de afdeling_key van de afdeling "Perman nieuw"
SELECT prs_afdeling_key
INTO v_afdeling_key
FROM prs_afdeling a
WHERE a.prs_afdeling_upper = UPPER ('Perman')
AND UPPER (a.prs_afdeling_omschrijving) = UPPER ('Perman nieuw');
END IF;
-- else -- afdeling bestaat: return v-afdeling_key.
END IF;
RETURN v_afdeling_key;
END;
FUNCTION prs_afdeling_key_old (p_dvb_personeelsnummer IN VARCHAR2)
RETURN NUMBER
IS
v_prs_afdeling_key prs_perslid.prs_afdeling_key%TYPE;
BEGIN
SELECT prs_afdeling_key
INTO v_prs_afdeling_key
FROM prs_perslid
WHERE prs_perslid_nr = p_dvb_personeelsnummer;
RETURN v_prs_afdeling_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN 0;
END;
END perman;
/
-- End perman.sql
-- HALTEWERK-rapportage/doorbelastingsoverzicht (CONN#3661)
CREATE OR REPLACE VIEW conn_v_haltewerk
(fclt_f_maand, dag, fclt_f_opdrachtgever, fclt_f_plaats, fclt_f_halte, fclt_f_medewerker, fclt_f_activiteit, bestede_tijd, materiaal_bedrag)
AS
SELECT TO_CHAR(dw.mld_deelwerk_datum, 'YYYYMM') maand,
TO_CHAR(dw.mld_deelwerk_datum, 'dd-mm-yyyy') dag,
opdrachtgever,
-- l.alg_locatie_code || ' - ' || ts.alg_terreinsector_code plaats,
ts.alg_terreinsector_code plaats,
haltecode || ' ' || haltenaam halte,
pf.prs_perslid_naam_full medewerker,
activiteit,
SUM(dw.mld_deelwerk_duur) bestede_tijd,
SUM(materiaal_bedrag)
FROM (SELECT kd.ins_deel_key kd1, kd.ins_kenmerkdeel_waarde haltecode
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerk_key = 501),
(SELECT kd.ins_deel_key kd2, kd.ins_kenmerkdeel_waarde haltenaam
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerk_key = 504),
(SELECT dw.mld_deelwerk_key dw1, ud.fac_usrdata_omschr opdrachtgever
FROM mld_deelwerk dw,
fac_usrdata ud
WHERE dw.fac_usrdata_key_opdrachtgever = ud.fac_usrdata_key),
(SELECT dwa dw2, activiteit, materiaal_bedrag
FROM (SELECT dw.mld_deelwerk_key dwa, ud.fac_usrdata_omschr activiteit
FROM mld_deelwerk dw,
fac_usrdata ud
WHERE dw.fac_usrdata_key_activiteit = ud.fac_usrdata_key) a
LEFT JOIN
(SELECT dwm.mld_deelwerk_key dwb, SUM(dwm.mld_deelwerkmateriaal_aantal * ud.fac_usrdata_prijs) materiaal_bedrag
FROM mld_deelwerkmateriaal dwm,
fac_usrdata ud
WHERE dwm.fac_usrdata_key_materiaal = ud.fac_usrdata_key
GROUP BY dwm.mld_deelwerk_key) b
ON a.dwa = b.dwb),
mld_deelwerk dw,
ins_deel d,
alg_terreinsector ts,
-- alg_locatie l,
prs_v_perslid_fullnames pf
WHERE dw.ins_deel_key = d.ins_deel_key
AND d.ins_alg_ruimte_key = ts.alg_terreinsector_key
-- AND ts.alg_locatie_key = l.alg_locatie_key
AND dw.prs_perslid_key = pf.prs_perslid_key
AND dw.ins_deel_key = kd1
AND dw.ins_deel_key = kd2
AND dw.mld_deelwerk_key = dw1
AND dw.mld_deelwerk_key = dw2
GROUP BY TO_CHAR(dw.mld_deelwerk_datum, 'YYYYMM'),
TO_CHAR(dw.mld_deelwerk_datum, 'dd-mm-yyyy'),
opdrachtgever,
-- l.alg_locatie_code || '-' || ts.alg_terreinsector_code,
ts.alg_terreinsector_code,
haltecode || ' ' || haltenaam,
pf.prs_perslid_naam_full,
activiteit
ORDER BY maand, dag, opdrachtgever, plaats, halte, medewerker, activiteit;
SPOOL OFF