Files
Customer/CONN/conn.sql
Maarten van der Heide 5cdcf6d8b5 CONN#13740
svn path=/Customer/trunk/; revision=13629
2008-07-09 15:08:08 +00:00

6824 lines
272 KiB
MySQL
Raw Blame History

-- Script containing customer specific configuration sql statements for CONN: Connexxion
-- (c) 2005-2006 Dijkoraad IT bv
-- $Revision: 132 $
-- $Modtime: 9-07-08 17:06 $
--
-- Support: +31 53 4800700
SET ECHO ON
SPOOL xconn.lst;
CREATE OR REPLACE VIEW CONN_V_BES_DIESEL (Aanvraagnr, Aantal, Omschrijving, Datum, FCLT_F_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
-- Exporteren van huurcontracten via de knop in het huurmutatiescherm. De geselecteerde mutatie wordt in de tabel
-- CONN_EXP_CONTRACTMUTATIE geschreven. Hierna volgt de dagelijkse export die de regels daadwerkelijk in het exportbestand
-- plaatst.
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_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_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_CONTRACTMUTATIE (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
v_newline FAC_IMP_FILE.fac_imp_file_line%TYPE; -- Input line
v_field VARCHAR2 (100);
v_fielddelimitor VARCHAR2 (1);
v_errormsg VARCHAR (200);
v_hint VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
-- De velden op de eerste regel
v_bedrijfsnummer VARCHAR2(30);
v_mutatienummer VARCHAR2(20);
v_complexnummer VARCHAR2(20);
v_eenheidsnummer VARCHAR2(83);
v_huurdernummer VARCHAR2(20);
v_budgetcode VARCHAR2(20);
v_ingangsdatum VARCHAR2(20);
v_indexeringsdatum VARCHAR2(20);
v_brutohuur VARCHAR2(20);
v_invoerdatum VARCHAR2(20);
v_gebeurtenis VARCHAR2(20);
v_tarieftype VARCHAR2(10);
v_ruimtesoort VARCHAR2(10);
v_aantal VARCHAR2(20);
v_tarief VARCHAR2(20);
v_totaal VARCHAR2(20);
v_aantalregels VARCHAR2(20);
CURSOR c_cm
IS
SELECT *
FROM FAC_IMP_FILE
WHERE fac_imp_file_applicatie = p_applname
ORDER BY FAC_IMP_FILE_INDEX;
v_rec c_cm%ROWTYPE;
BEGIN
-- Init
v_fielddelimitor := ';';
DELETE CONN_IMP_CONTRACTMUTATIE;
DELETE IMP_LOG
WHERE imp_log_applicatie = p_applname
AND imp_log_datum < sysdate -7;
OPEN c_cm;
IF c_cm%ISOPEN THEN
LOOP
BEGIN
FETCH c_cm INTO v_rec;
EXIT WHEN c_cm%NOTFOUND;
v_hint := substr('import regel:' || v_rec.fac_imp_file_index || ' inhoud: ' || v_rec.fac_imp_file_line,0,200);
v_newline := v_rec.fac_imp_file_line;
Fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrijfsnummer);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_mutatienummer);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_complexnummer);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_eenheidsnummer);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_huurdernummer);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_budgetcode);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_ingangsdatum);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_indexeringsdatum);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_brutohuur);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_invoerdatum);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_gebeurtenis);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_tarieftype);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_ruimtesoort);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_aantal);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_tarief);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_totaal);
Fac.imp_getfield (v_newline, v_fielddelimitor, v_aantalregels);
INSERT INTO CONN_IMP_CONTRACTMUTATIE
( bedrijfsnummer
, mutatienummer
, complexnummer
, eenheidsnummer
, huurdernummer
, budgetcode
, ingangsdatum
, indexeringsdatum
, brutohuur
, invoerdatum
, gebeurtenis
, tarieftype
, ruimtesoort
, aantal
, tarief
, totaal
, aantalregels
)
VALUES ( substr(v_bedrijfsnummer,1,30)
, substr(v_mutatienummer,1,20)
, substr(v_complexnummer,1,20)
, substr(v_eenheidsnummer,1,83)
, substr(v_huurdernummer,1,20)
, substr(v_budgetcode,1,20)
, to_date(substr(v_ingangsdatum,1,8),'YYYYMMDD')
, to_date(substr(v_indexeringsdatum,1,8),'YYYYMMDD')
, to_number(substr(v_brutohuur,1,11))
, to_date(substr(v_invoerdatum,1,8),'YYYYMMDD')
, substr(v_gebeurtenis,1,20)
, substr(v_tarieftype,1,10)
, substr(v_ruimtesoort,1,10)
, to_number(substr(v_aantal,1,9))
, to_number(substr(v_tarief,1,13))
, to_number(substr(v_totaal,1,11))
, to_number(substr(v_aantalregels,1,6))
);
COMMIT;
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, v_hint);
END;
END LOOP;
END IF;
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, v_hint);
END;
/
CREATE OR REPLACE PROCEDURE CONN_UPDATE_CONTRACTMUTATIE (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
v_newline FAC_IMP_FILE.fac_imp_file_line%TYPE; -- Input line
v_field VARCHAR2 (100);
v_fielddelimitor VARCHAR2 (1);
v_errormsg VARCHAR (200);
v_hintmsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
-- De velden op de eerste regel
v_alg_srtonrgoed_key NUMBER;
v_alg_srtonrgoed_prijs NUMBER;
v_exp_totaal NUMBER;
v_tot_prijs NUMBER;
v_afwijking NUMBER;
v_alg_type VARCHAR2(1);
CURSOR c_index
IS
SELECT *
FROM CONN_IMP_CONTRACTMUTATIE
WHERE gebeurtenis = 'Index'
ORDER BY eenheidsnummer, tarieftype;
v_rec_index c_index%ROWTYPE;
CURSOR c_mutatie
IS
SELECT DISTINCT mutatienummer, brutohuur
FROM conn_imp_contractmutatie
WHERE gebeurtenis = 'Mutatie';
v_rec_mutatie c_mutatie%ROWTYPE;
CURSOR c_mut_index (pMutnummer IN VARCHAR2)
IS
SELECT *
FROM CONN_IMP_CONTRACTMUTATIE
WHERE mutatienummer = pMutnummer;
BEGIN
-- Init
OPEN c_index;
IF c_index%ISOPEN THEN
LOOP
BEGIN
FETCH c_index INTO v_rec_index;
EXIT WHEN c_index%NOTFOUND;
BEGIN
v_hintmsg := ' Complex: ' || v_rec_index.complexnummer || 'Tarieftype: ' || v_rec_index.tarieftype || ' Tarief:' || v_rec_index.tarief;
SELECT alg_srtonrgoed_key, alg_srtonrgoed_prijs, alg_type
INTO v_alg_srtonrgoed_key, v_alg_srtonrgoed_prijs, v_alg_type
FROM alg_v_allsrtonrgoed
WHERE alg_srtonrgoed_verwijder is null
AND alg_srtonrgoed_upper = v_rec_index.complexnummer || '-' || upper(v_rec_index.tarieftype);
IF v_rec_index.tarief <> v_alg_srtonrgoed_prijs THEN
IF v_alg_type = 'R' THEN
UPDATE alg_srtruimte
SET alg_srtruimte_prijs = v_rec_index.tarief
WHERE alg_srtruimte_key = v_alg_srtonrgoed_key;
ELSE
UPDATE alg_srtterreinsector
SET alg_srtterreinsector_prijs = v_rec_index.tarief
WHERE alg_srtterreinsector_key = v_alg_srtonrgoed_key;
END IF;
v_errormsg := 'Ind: Tarief aangepast. Tarief:' || v_rec_index.complexnummer || '-' || upper(v_rec_index.tarieftype) || ' Prijs:' || v_rec_index.tarief || ' Oude prijs:' || v_alg_srtonrgoed_prijs;
Fac.imp_writelog (p_applname, p_applrun, 'I', v_errormsg, '');
END IF;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_errormsg := 'Ind: Kan tarieftype niet vinden. Tarief:' || v_rec_index.complexnummer || '-' || upper(v_rec_index.tarieftype);
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
WHEN OTHERS THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'Ind: OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, v_hintmsg);
END;
END;
END LOOP;
CLOSE c_index;
COMMIT;
END IF;
v_rec_index := null;
OPEN c_mutatie;
IF c_mutatie%ISOPEN THEN
LOOP
BEGIN
FETCH c_mutatie INTO v_rec_mutatie;
EXIT WHEN c_mutatie%NOTFOUND;
BEGIN
SELECT max(totaal)
INTO v_exp_totaal
FROM conn_exp_contractmutatie cec
WHERE cec.mutatienummer = v_rec_mutatie.mutatienummer;
IF v_exp_totaal IS NULL THEN
v_errormsg := 'Mut: Kan contractmutatie niet vinden. Mutatie:' || v_rec_mutatie.mutatienummer || ' Huur:' || v_rec_mutatie.brutohuur;
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
ELSE
--Fac.imp_writelog (p_applname, p_applrun, 'E', 'Else v_exp_totaal: ' || v_exp_totaal, '');
IF v_exp_totaal = 0 THEN
v_afwijking := 0;
ELSE
v_afwijking := TRUNC((ABS(v_rec_mutatie.brutohuur - v_exp_totaal)/v_exp_totaal)*100);
END IF;
IF v_afwijking < 10 THEN
-- update tarieftype vanuit ontvangen mutatie
FOR v_rec_mut_index IN c_mut_index(v_rec_mutatie.mutatienummer) LOOP
BEGIN
v_hintmsg := ' Complex: ' || v_rec_mut_index.complexnummer || 'Tarieftype: ' || v_rec_mut_index.tarieftype || ' Tarief:' || v_rec_mut_index.tarief;
SELECT alg_srtonrgoed_key, alg_srtonrgoed_prijs, alg_type
INTO v_alg_srtonrgoed_key, v_alg_srtonrgoed_prijs, v_alg_type
FROM alg_v_allsrtonrgoed
WHERE alg_srtonrgoed_verwijder is null
AND alg_srtonrgoed_upper = v_rec_mut_index.complexnummer || '-' || upper(v_rec_mut_index.tarieftype);
IF v_rec_index.tarief <> v_alg_srtonrgoed_prijs THEN
IF v_alg_type = 'R' THEN
UPDATE alg_srtruimte
SET alg_srtruimte_prijs = v_rec_mut_index.tarief
WHERE alg_srtruimte_key = v_alg_srtonrgoed_key;
ELSE
UPDATE alg_srtterreinsector
SET alg_srtterreinsector_prijs = v_rec_mut_index.tarief
WHERE alg_srtterreinsector_key = v_alg_srtonrgoed_key;
END IF;
v_errormsg := 'Mut: Tarief aangepast. Tarief:' || v_rec_mut_index.complexnummer || '-' || upper(v_rec_mut_index.tarieftype) || ' Prijs:' || v_rec_mut_index.tarief || ' Oude prijs:' || v_alg_srtonrgoed_prijs;
Fac.imp_writelog (p_applname, p_applrun, 'I', v_errormsg, '');
ELSE
v_errormsg := 'Mut: Tarief NIET aangepast. Tarief:' || v_rec_mut_index.complexnummer || '-' || upper(v_rec_mut_index.tarieftype) || ' Prijs:' || v_rec_mut_index.tarief || ' Oude prijs:' || v_alg_srtonrgoed_prijs;
Fac.imp_writelog (p_applname, p_applrun, 'I', v_errormsg, '');
END IF;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_errormsg := 'Mut: Kan tarieftype niet vinden. Tarief:' || v_rec_mut_index.complexnummer || '-' || upper(v_rec_mut_index.tarieftype);
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
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, v_hintmsg);
END;
END LOOP;
-- verwijder records uit de export
DELETE CONN_EXP_CONTRACTMUTATIE WHERE mutatienummer = v_rec_mutatie.mutatienummer;
-- voor mutatie uit
CONN_VERWERK_HUURMUTATIE (p_applname, p_applrun, substr(v_rec_mutatie.MUTATIENUMMER,0,instr(v_rec_mutatie.MUTATIENUMMER, '/')-1));
UPDATE mld_melding
SET mld_melding_afgemeld_user= 1042
, mld_melding_afgemeld = sysdate
, mld_melding_opmerking = substr(mld_melding_opmerking || ' Bevestiging ontvangen d.d. ' || sysdate, 0, 3000)
WHERE mld_melding_key = substr(v_rec_mutatie.MUTATIENUMMER,0,instr(v_rec_mutatie.MUTATIENUMMER, '/')-1);
v_ErrorMsg := 'Mut: Mutatie verwerkt Mutatie: ' || v_rec_mutatie.mutatienummer || ' afwijking:'|| v_afwijking || '% Facilitor bedrag:'|| v_exp_totaal||' Ontvangen bedrag:' ||v_rec_mutatie.brutohuur ;
Fac.imp_writelog (p_applname, p_applrun, 'I', v_errormsg, '');
COMMIT;
ELSE
-- afwijking is te groot
v_ErrorMsg := 'Mut: Ontvangen contract mismatch! Mutatie: ' || v_rec_mutatie.mutatienummer || ' afwijking:'|| v_afwijking || '% Facilitor bedrag:'|| v_exp_totaal||' Ontvangen bedrag:' ||v_rec_mutatie.brutohuur ;
Fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
UPDATE mld_melding
SET mld_melding_opmerking = substr(mld_melding_opmerking || ' ' || v_ErrorMsg, 0, 3000)
WHERE mld_melding_key = substr(v_rec_mutatie.MUTATIENUMMER,0,instr(v_rec_mutatie.MUTATIENUMMER, '/')-1);
UPDATE CNT_CONTRACT_ONRGOED SET CNT_MUTATIE_STATUS_KEY = 4 WHERE CNT_MLD_MELDING_KEY || '/' || CNT_CONTRACT_KEY = v_rec_mutatie.mutatienummer;
END IF;
END IF;
END;
END;
END LOOP;
COMMIT;
END IF;
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, v_hintmsg);
END;
/
-- Procedure CONN_VERWERK_HUURMUTATIE wordt gebruikt door de procedure CONN_UPDATE_CONTRACTMUTATIE
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'));
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 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/CONN#14138
CREATE OR REPLACE VIEW conn_v_opdr_doorloop (nr,
fclt_f_maand,
fclt_f_locatie,
gemeld,
uitgegeven,
reactietijd,
afgemeld,
doorlooptijd
)
AS
SELECT o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr, 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),
m.mld_melding_datum, o.mld_opdr_aanmaak, TRUNC (o.mld_opdr_aanmaak) - TRUNC (m.mld_melding_datum),
NVL (o.mld_opdr_datumuitgevoerd, TO_DATE ('29991231', 'yyyymmdd')),
TRUNC (NVL (o.mld_opdr_datumuitgevoerd, TO_DATE ('29991231', 'yyyymmdd'))) - TRUNC (o.mld_opdr_aanmaak)
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_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
, ins_deel_x
, ins_deel_y)
values
(v_ins_deel_key
,c_srtdeel_key
,c_srtdeel_module
,v_terreinsector_key
,c_ruimte_type
,v_DEEL_OMSCHRIJVING
,Fac.safe_to_number(v_X_COORDINAAT)
,Fac.safe_to_number(v_Y_COORDINAAT));
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_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_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 (fr.fin_factuurregel_totaal,
0, '0',
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 (fr.fin_factuurregel_totaal,
0, '0',
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 (fr.fin_factuurregel_totaal,
0, '0',
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, factuurnr
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, factuurnr
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, factuurnr
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,
REPLACE(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,
REPLACE(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,
REPLACE(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,
REPLACE(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,
REPLACE(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,
REPLACE(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,
REPLACE(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,
REPLACE(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,
REPLACE(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_newline fac_imp_file.fac_imp_file_line%TYPE; -- 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_btw_bedrag VARCHAR2 (100);
v_docid VARCHAR2 (100);
v_locatie VARCHAR2 (100);
v_afleverdatum VARCHAR2 (100);
v_omschrijving VARCHAR2 (100);
v_check_dec_sign NUMBER(5,2);
CURSOR cfactuur
IS
SELECT *
FROM fac_imp_file
WHERE fac_imp_file_applicatie = p_applname
ORDER BY FAC_IMP_FILE_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.fac_imp_file_line;
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_ordernr);
fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie);
fac.imp_getfield (v_newline, v_fielddelimitor, v_afleverdatum);
fac.imp_getfield (v_newline, v_fielddelimitor, v_omschrijving);
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_bedrag);
fac.imp_getfield (v_newline, v_fielddelimitor, v_btw);
fac.imp_getfield (v_newline, v_fielddelimitor, v_docid);
IF v_check_dec_sign IS NULL THEN
v_kostprijs := REPLACE (SUBSTR (v_kostprijs, 1, 11), ',', '.');
v_btw_bedrag := REPLACE (SUBSTR (v_btw_bedrag, 1, 11), ',', '.');
v_aantal := REPLACE (SUBSTR (v_aantal, 1, 11), ',', '.');
ELSE
v_kostprijs := SUBSTR (v_kostprijs, 1, 11);
v_btw_bedrag := SUBSTR (v_btw_bedrag, 1, 11);
v_aantal := SUBSTR (v_aantal, 1, 11);
END IF;
INSERT INTO conn_imp_factuur
(debiteurnr,
ordernr,
leveranciernr,
factuurnr,
factuurdatum,
aantal,
kostprijs,
btw,
btw_bedrag,
locatie,
afleverdatum,
omschrijving,
docid
)
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),
v_btw_bedrag,
SUBSTR (v_locatie, 1, 4),
SUBSTR (v_afleverdatum, 1, 8),
SUBSTR (v_omschrijving, 1, 60),
SUBSTR (v_docid, 1, 100)
);
COMMIT;
END;
END LOOP;
END IF;
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;
/
/* 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 (kostprijs) totaal,
SUM (btw_bedrag) totaal_btw,
btw,
SUBSTR (factuurdatum, 5, 4) fjaar,
SUBSTR (factuurdatum, 3, 2) fmaand,
SUBSTR (factuurdatum, 1, 2) fdag,
debiteurnr, -- wordt nog niets mee gedaan
SUM (aantal) aantal,
locatie,
SUBSTR (afleverdatum, 5, 4) ajaar, -- afleverdatum nodig om opdrachtnummer bij bestelopdrachten te achterhalen indien ordernr niet is meegegeven
SUBSTR (afleverdatum, 3, 2) amaand,
SUBSTR (afleverdatum, 1, 2) adag,
omschrijving,
SUM (btw_bedrag) btw_bedrag
FROM conn_imp_factuur
GROUP BY ordernr,
leveranciernr,
factuurnr,
factuurdatum,
btw,
factuurdatum,
debiteurnr,
locatie,
omschrijving,
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_ordernr_t VARCHAR2 (40);
c_old_ordernr VARCHAR2 (20);
c_write_ordernr VARCHAR2 (20);
c_bestelopdr_id VARCHAR2 (20);
c_totaal NUMBER;
c_fact_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);
c_prs_bedrijf_naam VARCHAR2(100);
c_opmerking VARCHAR2(150);
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.omschrijving,
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;
c_mld_opdr_key := NULL;
c_cnt_contract_key := NULL;
c_bes_bestelopdr_key := NULL;
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 ( ( ( 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,
'I',
'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_id
INTO c_bestelopdr_id
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,
'I',
'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_index := INSTR (c_bestelopdr_id, '/');
c_totaal := 0;
IF c_ordernr_index = 0
THEN
c_ordernr_s1 := c_bestelopdr_id;
c_ordernr_s2 := '';
ELSE
c_ordernr_s1 := SUBSTR (c_bestelopdr_id, 1, c_ordernr_index - 1);
c_ordernr_s2 := SUBSTR (c_bestelopdr_id, c_ordernr_index + 1);
END IF;
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,
'I',
'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
-- Vind 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,
'I',
'Kan de melding referentie niet vinden '
|| v_errormsg,
rc.ordernr || '/' || rc.factuurnr
);
c_find := FALSE;
END;
ELSIF c_fac_type = 'C'
THEN
-- bestaat het contract wel?
BEGIN
SELECT cnt_contract_key
INTO c_cnt_contract_key
FROM cnt_contract
WHERE cnt_contract_key = c_ordernr_s1;
EXCEPTION
WHEN OTHERS THEN
c_cnt_contract_key := NULL;
c_find := FALSE;
END;
c_bes_bestelopdr_key := NULL;
c_mld_opdr_key := NULL;
ELSIF c_fac_type = 'B'
THEN
c_cnt_contract_key := NULL;
-- vind de bestelopdracht key?
BEGIN
IF c_ordernr_s2 IS NULL
THEN
c_ordernr_t := c_ordernr_s1;
ELSE
c_ordernr_t := c_ordernr_s1 || '/' || c_ordernr_s2;
END IF;
SELECT bes_bestelopdr_key
INTO c_bes_bestelopdr_key
FROM bes_bestelopdr
WHERE bes_bestelopdr_id = c_ordernr_t;
EXCEPTION
WHEN OTHERS THEN
c_bes_bestelopdr_key := NULL;
c_find := FALSE;
END;
c_mld_opdr_key := NULL;
END IF;
-- CONN#12074 ook facturen die niet gelinkt kunnen worden moeten ingelezen worden.
-- IF ( (c_fac_type = 'B' OR c_fac_type = 'C' OR c_fac_type = 'O')
-- AND c_find
-- )
-- THEN
c_opmerking := '';
IF NOT c_find THEN
BEGIN
SELECT prs_bedrijf_naam
INTO c_prs_bedrijf_naam
FROM prs_bedrijf
WHERE prs_leverancier_nr = rc.leveranciernr;
c_opmerking := 'Leverancier: ' || c_prs_bedrijf_naam || ' Ontvangen ordernummer: ' || rc.ordernr;
EXCEPTION WHEN NO_DATA_FOUND THEN
c_opmerking := 'Leverancier: onbekend' || ' Ontvangen ordernummer: ' || rc.ordernr;
END;
END IF;
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 ' || c_opmerking,
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.omschrijving,
rc.locatie
);
COMMIT;
IF c_find_ordernr
THEN
c_write_ordernr := c_bestelopdr_id;
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
-- Welke bestelling kan afgemeld worden. (Alleen bestellingen kunnen automatisch afgemeld worden)
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 ( ( ( ( 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 (Melidng)
ELSIF ( ASCII (SUBSTR (c_prefix, 1, 1)) >= 48
AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 57
)
THEN
c_fac_type := 'B'; -- Bestelling
c_bestelopdr_id := rc.ordernr;
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_id
INTO c_bestelopdr_id
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_id = c_bestelopdr_id;
SELECT MAX (fin_factuur_key)
INTO c_index
FROM fin_factuur f, bes_bestelopdr bo
WHERE bo.bes_bestelopdr_key = f.bes_bestelopdr_key
AND bo.bes_bestelopdr_id = c_bestelopdr_id;
SELECT SUM(fr.fin_factuurregel_totaal)
INTO c_fact_totaal
FROM fin_factuur f,
fin_factuurregel fr,
bes_bestelopdr b
WHERE f.bes_bestelopdr_key = b.bes_bestelopdr_key
AND f.fin_factuur_key = fr.fin_factuur_key
AND b.bes_bestelopdr_id = c_bestelopdr_id;
IF c_totaal = c_fact_totaal --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_bestelopdr_id || ' / ' || 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,
diversen, bestede_tijd, materiaal_bedrag, kilometers)
AS
SELECT TO_CHAR(dw.mld_deelwerk_datum, 'YYYYMM') maand,
TO_CHAR(dw.mld_deelwerk_datum, 'dd-mm-yyyy') dag,
opdrachtgever,
ts.alg_terreinsector_code plaats,
haltecode || ' ' || haltenaam halte,
pf.prs_perslid_naam_full medewerker,
activiteit,
dw.mld_deelwerk_opmerking,
SUM(dw.mld_deelwerk_duur) bestede_tijd,
SUM(materiaal_bedrag),
SUM(dw.mld_deelwerk_km)
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
AND ud.fac_usrdata_verwijder IS NULL) 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
AND ud.fac_usrdata_verwijder IS NULL
GROUP BY dwm.mld_deelwerk_key) b
ON a.dwa = b.dwb),
mld_deelwerk dw,
ins_deel d,
alg_terreinsector ts,
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 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,
ts.alg_terreinsector_code,
haltecode || ' ' || haltenaam,
pf.prs_perslid_naam_full,
activiteit,
dw.mld_deelwerk_opmerking
ORDER BY maand, dag, opdrachtgever, plaats, halte, medewerker, activiteit;
-- HALTEWERK-rapportage/Materiaaloverzicht (CONN#13730)
CREATE OR REPLACE VIEW CONN_V_HALTEMATERIAAL
(FCLT_F_MAAND, DAG, FCLT_F_OPDRACHTGEVER, FCLT_F_PLAATS, FCLT_F_HALTE,
FCLT_F_MEDEWERKER, FCLT_F_ACTIVITEIT, DIVERSEN, BESTEDE_TIJD, MATERIAAL_BEDRAG,
KILOMETERS, MATERIAAL, AANTAL)
AS
SELECT TO_CHAR(dw.mld_deelwerk_datum, 'YYYYMM') maand,
TO_CHAR(dw.mld_deelwerk_datum, 'dd-mm-yyyy') dag,
opdrachtgever,
ts.alg_terreinsector_code plaats,
haltecode || ' ' || haltenaam halte,
pf.prs_perslid_naam_full medewerker,
activiteit,
dw.mld_deelwerk_opmerking,
TO_CHAR(SUM(dw.mld_deelwerk_duur)) bestede_tijd, -- geen totaal tijd laten zien
SUM(materiaal_bedrag),
TO_CHAR(CASE SUM(dw.mld_deelwerk_km)
WHEN 0
THEN NULL
ELSE SUM(dw.mld_deelwerk_km)
END) kilometers, -- geen totaal kilometers laten zien, en geen 0 km laten zien per regel
materiaal_omschrijving,
materiaal_aantal
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, materiaal_omschrijving, materiaal_aantal
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,
ud.fac_usrdata_omschr materiaal_omschrijving,
dwm.mld_deelwerkmateriaal_aantal materiaal_aantal
FROM mld_deelwerkmateriaal dwm,
fac_usrdata ud
WHERE dwm.fac_usrdata_key_materiaal = ud.fac_usrdata_key
GROUP BY dwm.mld_deelwerk_key,
ud.fac_usrdata_omschr,
dwm.mld_deelwerkmateriaal_aantal) b
ON a.dwa = b.dwb),
mld_deelwerk dw,
ins_deel d,
alg_terreinsector ts,
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 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,
ts.alg_terreinsector_code,
haltecode || ' ' || haltenaam,
pf.prs_perslid_naam_full,
activiteit,
dw.mld_deelwerk_opmerking,
materiaal_omschrijving,
materiaal_aantal
ORDER BY maand, dag, opdrachtgever, plaats, halte, medewerker, activiteit;
/
-- CONN#12661: Notificatie op basis van meterstandverantwoordelijke per locatie
-- View voor kenmerk "Meterstanden verantwoordelijke"
CREATE OR REPLACE VIEW conn_v_meterstanden_verantw (prs_perslid_key, verantwoordelijke)
AS
SELECT w.prs_perslid_key,
p.prs_perslid_naam || DECODE (NVL (p.prs_perslid_voorletters, ''), '', '', ', ' || p.prs_perslid_voorletters) || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''), '', '', ' ' || p.prs_perslid_tussenvoegsel) || DECODE (NVL (p.prs_perslid_voornaam, ''), '', '', ' (' || p.prs_perslid_voornaam || ')') naam
FROM fac_v_webgebruiker w,
prs_v_aanwezigperslid p
WHERE w.prs_perslid_key = p.prs_perslid_key
AND w.fac_functie_key = (SELECT fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_OBJUSE')
AND w.fac_gebruiker_kolomkey =
(SELECT itd.ins_discipline_key
FROM ins_tab_discipline itd
WHERE itd.ins_discipline_omschrijving = 'Verbruiksregistratie')
ORDER BY p.prs_perslid_upper;
-- View notificatiejob
CREATE OR REPLACE VIEW conn_v_noti_meterstreminder
(code, sender, receiver, text, key, xkey)
AS
SELECT 'OBJINF',
NULL,
meterstanden_verantwoordelijke,
'U wordt verzocht de meterstanden van locatie ' || alg_locatie_omschrijving || ' in te voeren in Facilitor.',
alg_locatie_key,
NULL
FROM (SELECT l.alg_locatie_key,
COUNT(l.alg_locatie_omschrijving) aantal_objecten,
l.alg_locatie_omschrijving,
(SELECT alg_onrgoedkenmerk_waarde
FROM alg_locatie l,
alg_onrgoedkenmerk ogk
WHERE l.alg_locatie_key = ogk.alg_onrgoed_key
AND ogk.alg_onrgoed_niveau = 'L'
AND l.alg_locatie_key = d.ins_alg_locatie_key
AND ogk.alg_kenmerk_key IN (SELECT alg_kenmerk_key
FROM alg_kenmerk k, alg_refkenmerk rk
WHERE rk.alg_refkenmerk_omschrijving = 'Meterstandverantwoordelijke'
AND rk.alg_refkenmerk_key=k.alg_refkenmerk_key)) meterstanden_verantwoordelijke,
COUNT((SELECT 'buiten'
FROM ins_v_aanwezigkenmerkdeel akd
WHERE akd.ins_deel_key = d.ins_deel_key
AND akd.ins_kenmerk_key = sk.ins_kenmerk_key
AND akd.ins_kenmerkdeel_aanmaak NOT
BETWEEN (SELECT TO_DATE ((SELECT TO_CHAR (SYSDATE, 'YYYY') FROM DUAL) || '-' || (SELECT TO_CHAR (SYSDATE, 'MM') FROM DUAL) || '-01', 'YYYY-MM-DD HH24:MI') FROM DUAL) - 10
AND (SELECT TO_DATE ((SELECT TO_CHAR (SYSDATE, 'YYYY') FROM DUAL) || '-' || (SELECT TO_CHAR (SYSDATE, 'MM') FROM DUAL) || '-01', 'YYYY-MM-DD HH24:MI') FROM DUAL) + 14)) buiten,
COUNT((SELECT 'binnen'
FROM ins_v_aanwezigkenmerkdeel akd
WHERE akd.ins_deel_key = d.ins_deel_key
AND akd.ins_kenmerk_key = sk.ins_kenmerk_key
AND akd.ins_kenmerkdeel_aanmaak
BETWEEN (SELECT TO_DATE ((SELECT TO_CHAR (SYSDATE, 'YYYY') FROM DUAL) || '-' || (SELECT TO_CHAR (SYSDATE, 'MM') FROM DUAL) || '-01', 'YYYY-MM-DD HH24:MI') FROM DUAL) - 10
AND (SELECT TO_DATE ((SELECT TO_CHAR (SYSDATE, 'YYYY') FROM DUAL) || '-' || (SELECT TO_CHAR (SYSDATE, 'MM') FROM DUAL) || '-01', 'YYYY-MM-DD HH24:MI') FROM DUAL) + 14)) binnen
FROM ins_v_srtdeel_kenmerk sk,
ins_v_aanwezigdeel d,
ins_srtdeel sd,
alg_locatie l
WHERE sk.ins_srtdeel_key = sd.ins_srtdeel_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND d.ins_alg_locatie_key = l.alg_locatie_key
AND sk.ins_kenmerk_meetwaarde = 1
AND sk.ins_srtkenmerk_kenmerktype = 'N'
AND (SELECT alg_onrgoedkenmerk_waarde
FROM alg_locatie l,
alg_onrgoedkenmerk ogk
WHERE l.alg_locatie_key = ogk.alg_onrgoed_key
AND ogk.alg_onrgoed_niveau = 'L'
AND l.alg_locatie_key = d.ins_alg_locatie_key
AND ogk.alg_kenmerk_key IN (SELECT alg_kenmerk_key
FROM alg_kenmerk k, alg_refkenmerk rk
WHERE rk.alg_refkenmerk_omschrijving = 'Meterstandverantwoordelijke'
AND rk.alg_refkenmerk_key=k.alg_refkenmerk_key)) IS NOT NULL
GROUP BY l.alg_locatie_omschrijving,
d.ins_alg_locatie_key,
alg_locatie_key) t1
WHERE (t1.binnen = 0 AND t1.buiten > 0)
OR (t1.aantal_objecten > (t1.binnen + t1.buiten)) -- Indien er nog geen waarde is ingevuld dan altijd melding
ORDER BY 2;
CREATE OR REPLACE VIEW conn_v_export_contractmutatie as
SELECT
bedrijfsnummer
|| ';' ||
mutatienummer
|| ';' ||
huurdernummer
|| ';' ||
budgetcode
|| ';' ||
complexnummer
|| ';' ||
eenheidsnummer
|| ';' ||
to_char(ingangsdatum, 'yyyymmdd')
|| ';' ||
factuurdebiteur
|| ';' ||
prolongatietermijn
|| ';' ||
to_char(indexeringsdatum, 'yyyymmdd')
|| ';' ||
indexeringscode
|| ';' ||
indexeringsmethode
|| ';' ||
tarieftype
|| ';' ||
replace(to_char(aantal),'.',',')
|| ';' ||
replace(to_char(tarief),'.',',')
|| ';' ||
replace(to_char(totaal),'.',',') result,
mutatienummer result_order
FROM (SELECT *
FROM CONN_EXP_CONTRACTMUTATIE
WHERE NOT (UPPER(eenheidsnummer) LIKE '%CXX GEEN CONTRACT%'
OR tarief = 0
OR aantal = 0)
AND exportdatum IS NULL);
/
CREATE OR REPLACE PROCEDURE conn_select_contractmutatie (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
v_errormsg VARCHAR (200);
BEGIN
v_errormsg := 'Lekker niets doen. View conn_v_export_contractmutatie doet het werk';
END;
/
-- Procedure voor de exporteren gegevens contractmutatie
CREATE OR REPLACE PROCEDURE conn_export_contractmutatie (
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 := 'Geen akties';
-- Exportregels zijn weggesschreven. De status in de exporttabel wordt op 'E' gezet en de exportdatu ingevuld om dubbele export te voorkomen.
UPDATE CONN_EXP_CONTRACTMUTATIE SET exportdatum = sysdate, STATUS='E' WHERE exportdatum IS NULL;
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;
/
CREATE OR REPLACE VIEW conn_v_imp_log (fclt_f_applicatie,
run,
datum,
fclt_f_status,
omschrijving,
hint
)
AS
SELECT imp_log_applicatie, imp_log_run, to_char(imp_log_datum, 'yyyymmdd hh24miss'), imp_log_status,
imp_log_omschrijving, imp_log_hint
FROM imp_log;
CREATE OR REPLACE PACKAGE CONN_PARTNERS AS
/*
Tabel OAC_STG_PARTNER alias P:
P.Id p_partner_id
P.Pnr_Type p_bedrijf_type
P.Pnr_partnernummer p_prs_leverancier_nr
P.Pnr_naam p_prs_bedrijf_naam
P.Pnr_telefoon p_prs_bedrijf_telefoon
P.Pnr_mobiel p_prs_bedrijf_telefoon2
P.Pnr_fax p_prs_bedrijf_fax
P.Pnr_email p_prs_bedrijf_email
P.Pnr_Klantnr_Facilitor p_prs_????? RD*****
P.Pnr_Betalingsconditie p_prs_bedrijf_opmerking
P.Pnr_Mutatie_Ind p_stamgegevens (J/N)
P.Pst_Adres p_prs_bedrijf_post_adres
P.Pst_Postcode p_prs_bedrijf_post_postcode
P.Pst_Plaats p_prs_bedrijf_post_plaats
P.Pst_Land p_prs_bedrijf_post_land
P.Pst_Mutatie_ind p_postadres (J/N)
P.Pst_Adres p_prs_bedrijf_bezoek_adres
P.Pst_Postcode p_prs_bedrijf_bezoek_postcode
P.Pst_Plaats p_prs_bedrijf_bezoek_plaats
P.Pst_Land p_prs_bedrijf_bezoek_land
P.Pst_Mutatie_ind p_bezoekadres (J/N)
*/
FUNCTION verwerk_partner
( p_partner_id in number
,p_bedrijf_type in varchar2
,p_prs_leverancier_nr in varchar2
,p_prs_bedrijf_naam in varchar2
,p_prs_bedrijf_telefoon in varchar2
,p_prs_bedrijf_telefoon2 in varchar2
,p_prs_bedrijf_fax in varchar2
,p_prs_bedrijf_email in varchar2
,p_prs_bedrijf_opmerking in varchar2
,p_stamgegevens in varchar2
,p_prs_bedrijf_post_adres in varchar2
,p_prs_bedrijf_post_postcode in varchar2
,p_prs_bedrijf_post_plaats in varchar2
,p_prs_bedrijf_post_land in varchar2
,p_postadres in varchar2
,p_prs_bedrijf_bezoek_adres in varchar2
,p_prs_bedrijf_bezoek_postcode in varchar2
,p_prs_bedrijf_bezoek_plaats in varchar2
,p_prs_bedrijf_bezoek_land in varchar2
,p_bezoekadres in varchar2) return NUMBER;
/*
Tabel OAC_STG_CONTACTPERSOON alias C:
C.Ctn_Functie p_prs_contactpersoon_functie
C.Ctn_Naam p_prs_contactpersoon_naam
C.Ctn_Tussenvoegsel p_prs_contactpersoon_tussenv
C.Ctn_Voornaam p_prs_contactpersoon_voornaam
C.Ctn_Voorletters p_prs_contactpersoon_voorl
C.Ctn_Titel p_prs_contactpersoon_titel
C.Ctn_Aanhef p_prs_contactpersoon_aanhef
C.Ctn_Telefoon p_prs_contactpersoon_tel_1
C.Ctn_Mobiel p_prs_contactpersoon_tel_2
C.Ctn_Fax p_prs_contactpersoon_fax
C.Ctn_Email p_prs_contactpersoon_email
C.Ctn_Mutatie_Ind p_contactpersoon (j/n)
*/
FUNCTION verwerk_contactpersoon
( p_partner_id in number
,p_contactpersoon_id in number
,p_prs_contactpersoon_functie in varchar2
,p_prs_contactpersoon_naam in varchar2
,p_prs_contactpersoon_tussenv in varchar2
,p_prs_contactpersoon_voornaam in varchar2
,p_prs_contactpersoon_voorl in varchar2
,p_prs_contactpersoon_titel in varchar2
,p_prs_contactpersoon_aanhef in varchar2
,p_prs_contactpersoon_tel_1 in varchar2
,p_prs_contactpersoon_tel_2 in varchar2
,p_prs_contactpersoon_fax in varchar2
,p_prs_contactpersoon_email in varchar2
,p_contactpersoon in varchar2) return number;
END CONN_PARTNERS;
/
CREATE OR REPLACE PACKAGE BODY CONN_PARTNERS AS
FUNCTION verwerk_partner
( p_partner_id in number
,p_bedrijf_type in varchar2
,p_prs_leverancier_nr in varchar2
,p_prs_bedrijf_naam in varchar2
,p_prs_bedrijf_telefoon in varchar2
,p_prs_bedrijf_telefoon2 in varchar2
,p_prs_bedrijf_fax in varchar2
,p_prs_bedrijf_email in varchar2
,p_prs_bedrijf_opmerking in varchar2
,p_stamgegevens in varchar2
,p_prs_bedrijf_post_adres in varchar2
,p_prs_bedrijf_post_postcode in varchar2
,p_prs_bedrijf_post_plaats in varchar2
,p_prs_bedrijf_post_land in varchar2
,p_postadres in varchar2
,p_prs_bedrijf_bezoek_adres in varchar2
,p_prs_bedrijf_bezoek_postcode in varchar2
,p_prs_bedrijf_bezoek_plaats in varchar2
,p_prs_bedrijf_bezoek_land in varchar2
,p_bezoekadres in varchar2) return NUMBER
IS
v_partner_id NUMBER(15);
v_bedrijf_type VARCHAR2(30);
v_prs_leverancier_nr prs_bedrijf.prs_leverancier_nr%type;
v_prs_bedrijf_naam prs_bedrijf.prs_bedrijf_naam%type;
v_prs_bedrijf_telefoon prs_bedrijf.prs_bedrijf_telefoon%type;
v_prs_bedrijf_telefoon2 prs_bedrijf.prs_bedrijf_telefoon2%type;
v_prs_bedrijf_fax prs_bedrijf.prs_bedrijf_fax%type;
v_prs_bedrijf_email prs_bedrijf.prs_bedrijf_email%type;
v_prs_bedrijf_opmerking prs_bedrijf.prs_bedrijf_opmerking%type;
v_stamgegevens VARCHAR2(1);
v_prs_bedrijf_post_adres prs_bedrijf.prs_bedrijf_post_adres%type;
v_prs_bedrijf_post_postcode prs_bedrijf.prs_bedrijf_post_postcode%type;
v_prs_bedrijf_post_plaats prs_bedrijf.prs_bedrijf_post_plaats%type;
v_prs_bedrijf_post_land prs_bedrijf.prs_bedrijf_post_land%type;
v_postadres VARCHAR2(1);
v_prs_bedrijf_bezoek_adres prs_bedrijf.prs_bedrijf_bezoek_adres%type;
v_prs_bedrijf_bezoek_postcode prs_bedrijf.prs_bedrijf_bezoek_postcode%type;
v_prs_bedrijf_bezoek_plaats prs_bedrijf.prs_bedrijf_bezoek_plaats%type;
v_prs_bedrijf_bezoek_land prs_bedrijf.prs_bedrijf_bezoek_land%type;
v_bezoekadres VARCHAR2(1);
v_mode VARCHAR(10);
v_count NUMBER(10);
v_prs_bedrijf_key prs_bedrijf.prs_bedrijf_key%type;
ORACLE_err_num NUMBER;
ORACLE_err_mes VARCHAR2(100);
v_store_prs_bedrijf BOOLEAN;
BEGIN
-- INIT
--commit;
v_mode := '';
v_prs_bedrijf_key := 0;
v_partner_id := p_partner_id;
v_bedrijf_type := UPPER(SUBSTR(p_bedrijf_type,1,30));
v_prs_leverancier_nr := SUBSTR(p_prs_leverancier_nr,1,15);
v_prs_bedrijf_naam := SUBSTR(p_prs_bedrijf_naam||' _ '||v_prs_leverancier_nr,1,60);
v_prs_bedrijf_telefoon := SUBSTR(p_prs_bedrijf_telefoon,1,20);
v_prs_bedrijf_telefoon2 := SUBSTR(p_prs_bedrijf_telefoon2,1,20);
v_prs_bedrijf_fax := SUBSTR(p_prs_bedrijf_fax,1,20);
v_prs_bedrijf_email := SUBSTR(p_prs_bedrijf_email,1,100);
v_prs_bedrijf_opmerking := SUBSTR(p_prs_bedrijf_opmerking,1,320);
v_stamgegevens := UPPER(SUBSTR(p_stamgegevens,1,1));
v_prs_bedrijf_post_adres := SUBSTR(p_prs_bedrijf_post_adres,1,35);
v_prs_bedrijf_post_postcode := SUBSTR(p_prs_bedrijf_post_postcode,1,12);
v_prs_bedrijf_post_plaats := SUBSTR(p_prs_bedrijf_post_plaats,1,30);
v_prs_bedrijf_post_land := SUBSTR(p_prs_bedrijf_post_land,1,30);
v_postadres := UPPER(SUBSTR(p_postadres,1,1));
v_prs_bedrijf_bezoek_adres := SUBSTR(p_prs_bedrijf_bezoek_adres,1,35);
v_prs_bedrijf_bezoek_postcode := SUBSTR(p_prs_bedrijf_bezoek_postcode,1,12);
v_prs_bedrijf_bezoek_plaats := SUBSTR(p_prs_bedrijf_bezoek_plaats,1,30);
v_prs_bedrijf_bezoek_land := SUBSTR(p_prs_bedrijf_bezoek_land,1,30);
v_bezoekadres := UPPER(SUBSTR(p_bezoekadres,1,1));
IF v_stamgegevens = 'J' THEN
-- v_mode?
SELECT count(*)
INTO v_count
FROM prs_v_aanwezigbedrijf
WHERE upper(trim(prs_leverancier_nr)) = upper(trim(v_prs_leverancier_nr));
IF (v_count = 0) THEN
v_mode := 'INSERT';
ELSE
IF (v_count = 1) THEN
v_mode := 'UPDATE';
SELECT prs_bedrijf_key
INTO v_prs_bedrijf_key
FROM prs_v_aanwezigbedrijf
WHERE upper(trim(prs_leverancier_nr)) = upper(trim(v_prs_leverancier_nr));
END IF;
END IF;
IF v_mode = 'INSERT' THEN
-- RD****** v_bedrijf_type Zie hieronder DECODE statement:
insert into prs_bedrijf
(prs_leverancier_nr
,prs_bedrijf_naam
,prs_bedrijf_telefoon
,prs_bedrijf_telefoon2
,prs_bedrijf_fax
,prs_bedrijf_email
,prs_bedrijf_opmerking
,prs_bedrijf_post_adres
,prs_bedrijf_post_postcode
,prs_bedrijf_post_plaats
,prs_bedrijf_post_land
,prs_bedrijf_bezoek_adres
,prs_bedrijf_bezoek_postcode
,prs_bedrijf_bezoek_plaats
,prs_bedrijf_bezoek_land
,prs_bedrijf_leverancier
,prs_bedrijf_uitvoerende
,prs_bedrijf_contract)
values
(v_prs_leverancier_nr
,v_prs_bedrijf_naam
,v_prs_bedrijf_telefoon
,v_prs_bedrijf_telefoon2
,v_prs_bedrijf_fax
,v_prs_bedrijf_email
,v_prs_bedrijf_opmerking
,DECODE(p_postadres,'J',v_prs_bedrijf_post_adres,null)
,DECODE(p_postadres,'J',v_prs_bedrijf_post_postcode,null)
,DECODE(p_postadres,'J',v_prs_bedrijf_post_plaats,null)
,DECODE(p_postadres,'J',v_prs_bedrijf_post_land,null)
,DECODE(p_bezoekadres,'J',v_prs_bedrijf_bezoek_adres,null)
,DECODE(p_bezoekadres,'J',v_prs_bedrijf_bezoek_postcode,null)
,DECODE(p_bezoekadres,'J',v_prs_bedrijf_bezoek_plaats,null)
,DECODE(p_bezoekadres,'J',v_prs_bedrijf_bezoek_land,null)
,DECODE(v_bedrijf_type,'CREDITEUR',1,null)
,DECODE(v_bedrijf_type,'CREDITEUR',1,null)
,DECODE(v_bedrijf_type,'CREDITEUR',1,null));
SELECT max(prs_bedrijf_key)
INTO v_prs_bedrijf_key
FROM prs_bedrijf;
ELSE
IF v_mode = 'UPDATE' THEN
UPDATE prs_bedrijf
SET prs_bedrijf_naam = v_prs_bedrijf_naam
,prs_bedrijf_telefoon = v_prs_bedrijf_telefoon
,prs_bedrijf_telefoon2 = v_prs_bedrijf_telefoon2
,prs_bedrijf_fax = v_prs_bedrijf_fax
,prs_bedrijf_email = v_prs_bedrijf_email
,prs_bedrijf_opmerking = v_prs_bedrijf_opmerking
WHERE prs_bedrijf_key = v_prs_bedrijf_key;
IF v_postadres = 'J' THEN
UPDATE prs_bedrijf
SET prs_bedrijf_post_adres = v_prs_bedrijf_post_adres
,prs_bedrijf_post_postcode = v_prs_bedrijf_post_postcode
,prs_bedrijf_post_plaats = v_prs_bedrijf_post_plaats
,prs_bedrijf_post_land = v_prs_bedrijf_post_land
WHERE prs_bedrijf_key = v_prs_bedrijf_key;
END IF;
IF v_bezoekadres = 'J' THEN
UPDATE prs_bedrijf
SET prs_bedrijf_bezoek_adres = v_prs_bedrijf_bezoek_adres
,prs_bedrijf_bezoek_postcode = v_prs_bedrijf_bezoek_postcode
,prs_bedrijf_bezoek_plaats = v_prs_bedrijf_bezoek_plaats
,prs_bedrijf_bezoek_land = v_prs_bedrijf_bezoek_land
WHERE prs_bedrijf_key = v_prs_bedrijf_key;
END IF;
ELSE
-- Onbekende actie
NULL;
END IF;
END IF;
ELSE
-- Geen actie
NULL;
END IF;
v_store_prs_bedrijf := FAC_P_FAC_SAVE_RESTORE.ResetSelectie('PRS_BEDRIJF');
IF v_prs_bedrijf_key >= 0 THEN
v_store_prs_bedrijf := FAC_P_FAC_SAVE_RESTORE.SavePrimaryKey('PRS_BEDRIJF',v_prs_bedrijf_key);
END IF;
RETURN v_prs_bedrijf_key;
EXCEPTION WHEN OTHERS THEN
BEGIN
ORACLE_err_num := SQLCODE;
ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
insert into conn_partners_error
(error_mes
,partner_id)
values
('(ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)'
,v_partner_id);
--commit;
RETURN 0;
END;
END;
FUNCTION verwerk_contactpersoon
( p_partner_id in number
,p_contactpersoon_id in number
,p_prs_contactpersoon_functie in varchar2
,p_prs_contactpersoon_naam in varchar2
,p_prs_contactpersoon_tussenv in varchar2
,p_prs_contactpersoon_voornaam in varchar2
,p_prs_contactpersoon_voorl in varchar2
,p_prs_contactpersoon_titel in varchar2
,p_prs_contactpersoon_aanhef in varchar2
,p_prs_contactpersoon_tel_1 in varchar2
,p_prs_contactpersoon_tel_2 in varchar2
,p_prs_contactpersoon_fax in varchar2
,p_prs_contactpersoon_email in varchar2
,p_contactpersoon in varchar2) return number
IS
v_partner_id NUMBER(15);
v_contactpersoon_id NUMBER(15);
v_prs_contactpersoon_functie prs_contactpersoon.prs_contactpersoon_functie%type;
v_prs_contactpersoon_naam prs_contactpersoon.prs_contactpersoon_naam%type;
v_prs_contactpersoon_tussenv prs_contactpersoon.prs_contactpersoon_tussenv%type;
v_prs_contactpersoon_voornaam prs_contactpersoon.prs_contactpersoon_voornaam%type;
v_prs_contactpersoon_voorl prs_contactpersoon.prs_contactpersoon_voorletters%type;
v_prs_contactpersoon_titel prs_contactpersoon.prs_contactpersoon_titel%type;
v_prs_contactpersoon_aanhef prs_contactpersoon.prs_contactpersoon_aanhef%type;
v_prs_contactpersoon_tel_1 prs_contactpersoon.prs_contactpersoon_telefoon_1%type;
v_prs_contactpersoon_tel_2 prs_contactpersoon.prs_contactpersoon_telefoon_2%type;
v_prs_contactpersoon_fax prs_contactpersoon.prs_contactpersoon_fax%type;
v_prs_contactpersoon_email prs_contactpersoon.prs_contactpersoon_email%type;
v_contactpersoon varchar2(1);
v_mode VARCHAR(10);
v_count NUMBER(10);
v_prs_contactpersoon_key prs_contactpersoon.prs_contactpersoon_key%type;
v_prs_bedrijf_key prs_bedrijf.prs_bedrijf_key%type;
ORACLE_err_num NUMBER;
ORACLE_err_mes VARCHAR2(100);
BEGIN
-- INIT
--commit;
v_prs_contactpersoon_key := 0;
v_partner_id := p_partner_id;
v_contactpersoon_id := p_contactpersoon_id;
v_prs_contactpersoon_functie := SUBSTR(p_prs_contactpersoon_functie,1,30);
v_prs_contactpersoon_naam := SUBSTR(p_prs_contactpersoon_naam,1,30);
v_prs_contactpersoon_tussenv := SUBSTR(p_prs_contactpersoon_tussenv,1,15);
v_prs_contactpersoon_voornaam := SUBSTR(p_prs_contactpersoon_voornaam,1,30);
v_prs_contactpersoon_voorl := SUBSTR(p_prs_contactpersoon_voorl,1,10);
v_prs_contactpersoon_titel := SUBSTR(p_prs_contactpersoon_titel,1,10);
v_prs_contactpersoon_aanhef := SUBSTR(p_prs_contactpersoon_aanhef,1,30);
v_prs_contactpersoon_tel_1 := SUBSTR(p_prs_contactpersoon_tel_1,1,30);
v_prs_contactpersoon_tel_2 := SUBSTR(p_prs_contactpersoon_tel_2,1,30);
v_prs_contactpersoon_fax := SUBSTR(p_prs_contactpersoon_fax,1,30);
v_prs_contactpersoon_email := SUBSTR(p_prs_contactpersoon_email,1,50);
v_contactpersoon := UPPER(SUBSTR(p_contactpersoon,1,1));
v_prs_bedrijf_key := FAC_P_FAC_SAVE_RESTORE.GetPrimaryKey('PRS_BEDRIJF',v_prs_bedrijf_key);
IF v_contactpersoon = 'J' THEN
SELECT COUNT(*)
INTO v_count
FROM PRS_CONTACTPERSOON
WHERE UPPER(trim(prs_contactpersoon_naam)) = UPPER(trim(v_prs_contactpersoon_naam))
AND UPPER(trim(prs_contactpersoon_voornaam)) = UPPER(trim(v_prs_contactpersoon_voornaam))
AND UPPER(trim(prs_contactpersoon_voorletters))= UPPER(trim(v_prs_contactpersoon_voorl));
IF (v_count = 0) THEN
INSERT INTO prs_contactpersoon
(prs_bedrijf_key
,prs_contactpersoon_functie
,prs_contactpersoon_naam
,prs_contactpersoon_tussenv
,prs_contactpersoon_voornaam
,prs_contactpersoon_voorletters
,prs_contactpersoon_titel
,prs_contactpersoon_aanhef
,prs_contactpersoon_telefoon_1
,prs_contactpersoon_telefoon_2
,prs_contactpersoon_fax
,prs_contactpersoon_email)
values
(v_prs_bedrijf_key
,v_prs_contactpersoon_functie
,v_prs_contactpersoon_naam
,v_prs_contactpersoon_tussenv
,v_prs_contactpersoon_voornaam
,v_prs_contactpersoon_voorl
,v_prs_contactpersoon_titel
,v_prs_contactpersoon_aanhef
,v_prs_contactpersoon_tel_1
,v_prs_contactpersoon_tel_2
,v_prs_contactpersoon_fax
,v_prs_contactpersoon_email);
SELECT max(prs_contactpersoon_key)
INTO v_prs_contactpersoon_key
FROM prs_contactpersoon;
ELSE
IF (v_count = 1) THEN
v_mode := 'UPDATE';
SELECT prs_contactpersoon_key
INTO v_prs_contactpersoon_key
FROM PRS_CONTACTPERSOON
WHERE UPPER(trim(prs_contactpersoon_naam)) = UPPER(trim(v_prs_contactpersoon_naam))
AND UPPER(trim(prs_contactpersoon_voornaam)) = UPPER(trim(v_prs_contactpersoon_voornaam))
AND UPPER(trim(prs_contactpersoon_voorletters)) = UPPER(trim(v_prs_contactpersoon_voorl));
UPDATE prs_contactpersoon
SET prs_bedrijf_key = v_prs_bedrijf_key
,prs_contactpersoon_functie = v_prs_contactpersoon_functie
,prs_contactpersoon_tussenv = v_prs_contactpersoon_tussenv
,prs_contactpersoon_titel = v_prs_contactpersoon_titel
,prs_contactpersoon_aanhef = v_prs_contactpersoon_aanhef
,prs_contactpersoon_telefoon_1 = v_prs_contactpersoon_tel_1
,prs_contactpersoon_telefoon_2 = v_prs_contactpersoon_tel_2
,prs_contactpersoon_fax = v_prs_contactpersoon_fax
,prs_contactpersoon_email = v_prs_contactpersoon_email
WHERE prs_contactpersoon_key = v_prs_contactpersoon_key;
END IF;
END IF;
END IF;
--commit;
RETURN v_prs_contactpersoon_key;
EXCEPTION WHEN OTHERS THEN
BEGIN
ORACLE_err_num := SQLCODE;
ORACLE_err_mes := SUBSTR(SQLERRM, 1, 100);
insert into conn_contactpersonen_error
(error_mes
,partner_id
,contactpersoon_id)
values
('(ORACLE error number = <' || ORACLE_err_num || '> ORACLE error message = <' || ORACLE_err_mes || '>)'
,v_partner_id
,v_contactpersoon_id);
--commit;
RETURN 0;
END;
END;
END CONN_PARTNERS;
/
CREATE OR REPLACE VIEW conn_v_rap_gebouw_verplichting
AS
SELECT l.alg_locatie_code fclt_f_locatiecode, l.alg_locatie_plaats fclt_f_plaats, v.fclt_f_gebouwcode,
v.fclt_f_verplichting, v.item, v.fclt_3d_locatie_key
FROM alg_v_rap_gebouw_verplichting v, alg_locatie l
WHERE v.fclt_3d_locatie_key = l.alg_locatie_key;
/
CREATE OR REPLACE VIEW CONN_V_BES_VEENMAN
(FCLT_F_BESTELLER, FCLT_F_ARTIKEL, FCLT_F_SERVICENUMMER, FCLT_F_AFLEVERADRES)
AS
SELECT p.prs_perslid_naam
|| DECODE (NVL (p.prs_perslid_voorletters, ''),
'', '',
', ' || p.prs_perslid_voorletters
)
|| DECODE (NVL (p.prs_perslid_tussenvoegsel, ''),
'', '',
' ' || p.prs_perslid_tussenvoegsel
)
|| DECODE (NVL (p.prs_perslid_voornaam, ''),
'', '',
' (' || p.prs_perslid_voornaam || ')'
) besteller,
COALESCE (isd.ins_srtdeel_nr, '') || ' ' || isd.ins_srtdeel_omschrijving,
(SELECT v.bes_kenmerkbestell_waarde waarde
FROM bes_kenmerkbestell v,
bes_kenmerk k,
bes_srtkenmerk sk
WHERE v.bes_bestelling_key = b.bes_bestelling_key
AND v.bes_kenmerk_key = k.bes_kenmerk_key
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND sk.bes_srtkenmerk_omschrijving LIKE 'Servicenummer') servicenummer,
a.mld_adres_naam afleveradres
FROM bes_bestelling b,
prs_perslid p,
bes_bestelling_item i,
ins_srtdeel isd,
ins_srtgroep isg,
bes_discipline bd,
mld_adres a
WHERE p.prs_perslid_key = b.prs_perslid_key
AND b.bes_bestelling_key = i.bes_bestelling_key
AND i.ins_srtdeel_key = isd.ins_srtdeel_key
AND isd.ins_srtgroep_key = isg.ins_srtgroep_key
AND isg.ins_discipline_key = bd.ins_discipline_key
AND bd.ins_discipline_omschrijving LIKE 'Toners Veenman'
AND b.mld_adres_key_lev = a.mld_adres_key(+)
ORDER BY 1;
/
-- persoon met key 104383 is de backoffice facilities
-- kenmerksoort_key 75 is keuringsdatum
-- kenmerksoort_key 1122 is datum volgend onderhoud
CREATE OR REPLACE VIEW CONN_V_NOTI_KEURINGREMINDER
(CODE, SENDER, RECEIVER, TEXT, KEY,
XKEY)
AS
SELECT NULL,
NULL,
104383,
'De uiterste keurings/onderhouds datum van '
|| isd.ins_srtdeel_omschrijving || ' '
|| ID.ins_deel_omschrijving || ' '
|| 'is verstreken.',
id.ins_deel_key,
NULL
FROM ins_v_aanwezigdeel ID,
ins_kenmerkdeel ikd,
ins_kenmerk ik,
ins_srtdeel isd
WHERE ID.ins_srtdeel_key = isd.ins_srtdeel_key
AND ikd.ins_deel_key = ID.ins_deel_key
AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key
AND ik.ins_srtkenmerk_key IN (
SELECT ins_srtkenmerk_key
FROM ins_srtkenmerk
WHERE ins_srtkenmerk_key IN (75, 1122))
AND TO_DATE (ikd.ins_kenmerkdeel_waarde, 'dd-mm-yyyy') < SYSDATE
;
/* Formatted on 2008/07/09 17:04 (Formatter Plus v4.8.7) */
CREATE OR REPLACE VIEW conn_v_rap_locatie_verpl (fclt_f_locatie_code,
locatie_adres,
locatie_plaats,
hide_f_item_key,
fclt_f_verplichting,
item,
soort,
bedrijf
)
AS
SELECT b.code, b.adres, b.plaats, a.item_key, a.verpl, a.item, a.soort,
a.bedr
FROM (SELECT m.mld_alg_locatie_key locatie_key, 0 item_key,
'heeft openstaande melding' verpl,
sd.ins_srtdiscipline_prefix
|| TO_CHAR (m.mld_melding_key) item,
td.ins_discipline_omschrijving soort, '-' bedr, '-' omvang
FROM mld_melding m,
alg_v_allonroerendgoed og,
ins_srtdiscipline sd,
ins_tab_discipline td
WHERE m.mld_melding_status IN (2, 3, 4, 7) -- open
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
--AND og.alg_gebouw_key IS NOT NULL -- geen terreinen
AND m.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND sd.ins_srtdiscipline_key IN
(1, 3) -- alleen st- en b-meldingen
UNION
SELECT d.ins_alg_locatie_key locatie_key, d.ins_deel_key,
'bevat object' verpl, d.ins_deel_omschrijving item,
td.ins_discipline_omschrijving soort, '-' bedr, '-' omvang
FROM ins_v_aanwezigdeel d,
alg_v_allonroerendgoed og,
ins_tab_discipline td
WHERE d.ins_alg_ruimte_key = og.alg_onroerendgoed_keys
AND og.alg_gebouw_key IS NOT NULL -- geen terreinen
AND d.ins_discipline_key = td.ins_discipline_key
AND td.ins_discipline_min_level <> 3 -- plaatsgebonden obj.
UNION -- plaatscontracten
SELECT DISTINCT og.alg_locatie_key locatie_key,
c.cnt_contract_key item_key,
'heeft lopend contract' verpl,
c.cnt_contract_nummer_intern item,
(SELECT td.ins_discipline_omschrijving
FROM ins_tab_discipline td
WHERE td.ins_discipline_key =
c.ins_discipline_key)
soort,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key =
c.cnt_prs_bedrijf_key)
bedr,
'-' omvang
FROM cnt_contract c,
cnt_v_aanwezigcontract_plaats cp,
alg_v_allonroerendgoed og
WHERE c.cnt_contract_looptijd_tot > SYSDATE -- actueel
AND c.cnt_contract_key = cp.cnt_contract_key
AND ( ( cp.cnt_alg_plaats_code = 'G'
AND cp.cnt_alg_plaats_key =
og.alg_onroerendgoed_keys
)
OR ( cp.cnt_alg_plaats_code = 'L'
AND cp.cnt_alg_plaats_key = og.alg_locatie_key
)
)
UNION -- huurcontracten (1 per locatie en incl. terreinen)
SELECT DISTINCT og.alg_locatie_key locatie_key,
c.cnt_contract_key item_key,
'heeft lopend huurcontract' verpl,
c.cnt_contract_nummer_intern item,
(SELECT td.ins_discipline_omschrijving
FROM ins_tab_discipline td
WHERE td.ins_discipline_key =
c.ins_discipline_key)
soort,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key =
c.cnt_prs_bedrijf_key)
bedr,
'-' omvang
FROM cnt_v_aanwezigcontract c,
cnt_contract_onrgoed co,
alg_v_allonroerendgoed og
WHERE c.cnt_contract_looptijd_tot > SYSDATE -- actueel
AND c.cnt_contract_key = co.cnt_contract_key
AND co.alg_onrgoed_key = og.alg_onroerendgoed_keys
UNION -- diensten (1 per bedrijf per locatie)
SELECT bdl.alg_locatie_key locatie_key, 0 item_key,
'heeft dienst' verpl,
(SELECT d.prs_dienst_omschrijving
FROM prs_dienst d
WHERE d.prs_dienst_key = bdl.prs_dienst_key) item,
'-' soort,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = bdl.prs_bedrijf_key) bedr,
'-' omvang
FROM prs_bedrijfdienstlocatie bdl
WHERE bdl.alg_locatie_key IS NOT NULL
UNION -- bestellingen (via afleveradres-locatie)
SELECT DISTINCT a.alg_locatie_key, 0 item_key,
'heeft openstaande bestelling' verpl,
TO_CHAR (b.bes_bestelling_key) item,
(SELECT td.ins_discipline_omschrijving
FROM ins_tab_discipline td
WHERE td.ins_discipline_key =
sg.ins_discipline_key)
soort,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key =
sd.prs_bedrijf_key)
bedr,
'-' omvang
FROM bes_bestelling b,
bes_bestelling_item bi,
ins_srtdeel sd,
ins_srtgroep sg,
mld_adres a
WHERE b.bes_bestelling_status BETWEEN 1 AND 5 -- open
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND b.mld_adres_key_lev = a.mld_adres_key
AND a.alg_locatie_key IS NOT NULL) a
LEFT JOIN
(SELECT l.alg_locatie_key locatie_key, l.alg_locatie_code code,
l.alg_locatie_adres adres, l.alg_locatie_plaats plaats
FROM alg_locatie l) b ON a.locatie_key = b.locatie_key
/
COMMIT;
SPOOL OFF