-- Script containing customer specific configuration sql statements for CONN: Connexxion -- (c) 2005-2010 SG|facilitor bv -- $Revision: 180 $ -- $Modtime: 3-02-12 11:20 $ -- -- Support: +31 53 4800710 SET ECHO ON SPOOL xconn.lst; /* Formatted on 11-6-2010 16:48:16 (QP5 v5.136.908.31019) */ CREATE OR REPLACE FORCE VIEW conn_v_bes_diesel ( aanvraagnr, aantal, omschrijving, fclt_d_datum, fclt_f_afleveradres ) AS SELECT b.bes_bestelling_key, bi.bes_bestelling_item_aantal, d.bes_srtdeel_omschrijving, TO_CHAR (b.bes_bestelling_leverdatum, 'dd-mm-yyyy'), a.mld_adres_naam FROM mld_adres a, bes_discipline d, bes_srtgroep g, bes_srtdeel d, bes_bestelling_item bi, bes_bestelling b WHERE d.ins_discipline_key = g.ins_discipline_key AND g.bes_srtgroep_key = d.bes_srtgroep_key AND bi.bes_srtdeel_key = d.bes_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 b.bes_bestelling_status <> 1; --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; / --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; -- 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/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 (boi.bes_bestelopdr_item_prijs, 0) * bi.bes_bestelling_item_aantal ) totaalbedrag FROM BES_BESTELLING b, BES_BESTELLING_ITEM bi, bes_srtDEEL sd, bes_srtGROEP sg, INS_TAB_DISCIPLINE dis, bes_bestelopdr_item boi, (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_bestelopdr_item_key = boi.bes_bestelopdr_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.bes_srtdeel_key = sd.bes_srtdeel_key AND sd.bes_srtgroep_key = sg.bes_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 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 #451 -- /* Formatted on 11-6-2010 16:45:48 (QP5 v5.136.908.31019) */ CREATE OR REPLACE FORCE 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), (SELECT P.PRS_PERSLID_TELEFOONNR FROM prs_perslid p WHERE p.prs_perslid_key = b.prs_perslid_key), 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 -- /* Formatted on 18-1-2010 16:02:12 (QP5 v5.136.908.31019) */ CREATE OR REPLACE FORCE VIEW conn_v_besteller_z_kostenpl ( naam, afdeling, profiel ) AS SELECT pf.prs_perslid_naam_full, a.prs_afdeling_omschrijving, f.fac_profiel_omschrijving FROM prs_v_aanwezigperslid p, prs_afdeling a, prs_v_perslid_fullnames pf, fac_profiel f WHERE p.fac_profiel_key = f.fac_profiel_key AND p.prs_perslid_key = pf.prs_perslid_key AND p.prs_afdeling_key = a.prs_afdeling_key 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; /* Formatted on 28-11-2011 10:49:26 (QP5 v5.136.908.31019) */ 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, '*****', 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_hash 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 ,mld_stdmelding std ,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 m.mld_stdmelding_key = std.mld_stdmelding_key AND md.ins_discipline_key = std.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; -- * -- * CONN_V_FIATEURS view (in 4.81 CONN_FIATERING) -- * CREATE OR REPLACE VIEW CONN_V_FIATEURS ( PERSOON, PROFIEL, KOSTENPLAATSHOUDER, KOSTENPLAATSGROEPHOUDER ) 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 || ')') Persoon, f.fac_profiel_omschrijving, p2.prs_perslid_naam || DECODE (p2.prs_perslid_voorletters, NULL, '', ', ' || p2.prs_perslid_voorletters) || DECODE (p2.prs_perslid_voornaam, NULL, '', ' (' || p2.prs_perslid_voornaam || ')') Budgethouder, p3.prs_perslid_naam || DECODE (p3.prs_perslid_voorletters, NULL, '', ', ' || p3.prs_perslid_voorletters) || DECODE (p3.prs_perslid_voornaam, NULL, '', ' (' || p3.prs_perslid_voornaam || ')') Budgetgroephouder FROM prs_perslid p, fac_profiel f, prs_afdeling a, prs_kostenplaats k, prs_perslid p2, prs_kostenplaatsgrp g, prs_perslid p3 WHERE f.fac_profiel_key(+) = p.fac_profiel_key AND a.prs_afdeling_key(+) = p.prs_afdeling_key AND a.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND p2.prs_perslid_key(+) = k.prs_perslid_key AND k.prs_kostenplaatsgrp_key = g.prs_kostenplaatsgrp_key(+) AND p3.prs_perslid_key(+) = g.prs_perslid_key AND prs_kostenplaats_verwijder IS NULL AND p.prs_perslid_verwijder IS NULL ORDER BY 1, 2, 3, 4; -- 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) */ /* Formatted on 11-6-2010 17:32:44 (QP5 v5.136.908.31019) */ CREATE OR REPLACE FORCE 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.bes_srtdeel_nr, s.bes_srtdeel_omschrijving, TO_CHAR (i.bes_bestelling_item_aantal, '99999990'), TO_CHAR (i.bes_bestelling_item_prijs, '99999990D00'), a.prs_afdeling_key FROM bes_bestelling b, bes_bestelling_item i, prs_perslid p, prs_afdeling a, bes_srtdeel s, bes_srtgroep g, ins_tab_discipline d WHERE b.bes_bestelling_key = i.bes_bestelling_key AND b.prs_perslid_key = p.prs_perslid_key AND p.prs_afdeling_key = a.prs_afdeling_key AND i.bes_srtdeel_key = s.bes_srtdeel_key AND s.bes_srtgroep_key = g.bes_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; /* Formatted on 11-6-2010 17:37:17 (QP5 v5.136.908.31019) */ CREATE OR REPLACE FORCE 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, boi.bes_bestelopdr_item_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 WHERE bb.bes_bestelling_key = bi.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.prs_perslid_key = pp.prs_perslid_key AND pp.prs_afdeling_key = ad.prs_afdeling_key; /* Formatted on 11-6-2010 17:38:36 (QP5 v5.136.908.31019) */ CREATE OR REPLACE FORCE 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 > fac.datumtijdplusuitvoertijd (bes_bestelopdr_datum, 4, 'DAGEN')) OR (bes_bestelopdr_leverdatum IS NULL AND SYSDATE > fac.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 28-11-2011 10:47:34 (QP5 v5.136.908.31019) */ CREATE OR REPLACE FORCE 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, i.bes_bestelling_item_prijs, i.bes_bestelling_item_aantal * i.bes_bestelling_item_prijs, b.bes_bestelling_datum, fac.gettrackingdate ('BESREJ', b.bes_bestelling_key), fac.gettrackingdate ('BESACP', b.bes_bestelling_key), a.prs_afdeling_key FROM bes_bestelling b, bes_bestelling_item i, prs_perslid p, prs_afdeling a, prs_perslid p2, bes_bestellingstatuses bs WHERE b.bes_bestelling_key = i.bes_bestelling_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; /* Formatted on 11-6-2010 17:51:26 (QP5 v5.136.908.31019) */ CREATE OR REPLACE FORCE 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 ( (fac.datumtijdplusuitvoertijd (bes_bestelling_datum, 3, 'DAGEN') < bes_bestelling_afgewezen) OR (fac.datumtijdplusuitvoertijd (bes_bestelling_datum, 3, 'DAGEN') < bes_bestelling_geaccepteerd) OR ( bes_bestelling_afgewezen IS NULL AND bes_bestelling_geaccepteerd IS NULL AND fac.datumtijdplusuitvoertijd (bes_bestelling_datum, 3, 'DAGEN') < SYSDATE)); 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; /* 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; /* Formatted on 11-6-2010 17:56:01 (QP5 v5.136.908.31019) */ CREATE OR REPLACE FORCE 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 '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 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 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 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; --///////////////////////////////////////////VERVALLEN/////////////////////////////////////BEGIN? CREATE OR REPLACE VIEW CONN_V_OPDR AS select std.MLD_INS_DISCIPLINE_KEY ,o.* from mld_opdr o, mld_melding m, mld_stdmelding std where m.mld_stdmelding_key = std.mld_stdmelding_key and 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_stdmelding std, mld_melding m where m.mld_stdmelding_key = std.mld_stdmelding_key and std.mld_ins_discipline_key = d.ins_discipline_key and d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key and 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_stdmelding std, mld_melding m WHERE m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND 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_stdmelding std, mld_melding m where m.mld_stdmelding_key = std.mld_stdmelding_key and std.mld_ins_discipline_key = d.ins_discipline_key and d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key and 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 (contractnr, externnr, fclt_f_bedrijf, ingangsdatum, einddatum, bedrag ) 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, kc.cnt_kenmerkcontract_waarde bedrag FROM prs_v_aanwezigbedrijf b, cnt_v_aanwezigcontract c, prs_v_aanwezigafdeling afd, prs_v_aanwezigafdeling afd2, cnt_disc_params cdp, (SELECT cnt_contract_key, cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract kc, cnt_kenmerk k WHERE kc.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_srtkenmerk_key = 24 AND kc.cnt_kenmerkcontract_verwijder IS NULL) kc 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 = kc.cnt_contract_key(+) AND SYSDATE BETWEEN c.cnt_contract_looptijd_van 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; / /* Formatted on 11-6-2010 17:03:10 (QP5 v5.136.908.31019) */ 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_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); mld.setmeldingstatus ( TO_NUMBER ( SUBSTR (v_rec_mutatie.mutatienummer, 0, INSTR (v_rec_mutatie.mutatienummer, '/') - 1) ), 5, 1042 ); 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 = 0 THEN UPDATE CNT_CONTRACT SET CNT_CONTRACT_LOOPTIJD_TOT = 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 /* Formatted on 11-6-2010 16:57:33 (QP5 v5.136.908.31019) */ CREATE OR REPLACE FORCE 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 (fac.gettrackingdate ('ORDNEW', o.mld_opdr_key), '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, fac.gettrackingdate ('ORDNEW', o.mld_opdr_key), TRUNC (fac.gettrackingdate ('ORDNEW', o.mld_opdr_key)) - TRUNC (m.mld_melding_datum), NVL (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key), TO_DATE ('29991231', 'yyyymmdd')), TRUNC (NVL (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key), TO_DATE ('29991231', 'yyyymmdd'))) - TRUNC (fac.gettrackingdate ('ORDNEW', o.mld_opdr_key)) FROM mld_opdr o, mld_melding m, mld_stdmelding std WHERE o.mld_melding_key = m.mld_melding_key AND m.mld_stdmelding_key = std.mld_stdmelding_key AND std.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_upper,2,8) = UPPER(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_upper,2,8) = UPPER(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 UPPER(kd.ins_kenmerkdeel_waarde) = UPPER(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 UPPER(kd.ins_kenmerkdeel_waarde) = UPPER(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); -- controleer of de haltecode wel 8 posities is. Anders gaan we testdata importeren. IF length(v_haltecode) <> 8 THEN RETURN c_error_result; END IF; 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, BUDGETCODE, HUURDERNR, 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, COALESCE(kfr.prs_kostensoort_oms, 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, COALESCE (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 kfr, prs_kostensoort ks, bes_srtdeel isd, bes_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 fr.prs_kostensoort_key = kfr.prs_kostensoort_key(+) AND kst.prs_kostensoort_key = itd.prs_kostensoort_key AND itd.ins_discipline_key = isg.ins_discipline_key AND isg.bes_srtgroep_key = isd.bes_srtgroep_key AND isd.bes_srtdeel_key = bi.bes_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'), COALESCE(kfr.prs_kostensoort_oms, ks.prs_kostensoort_oms, kst.prs_kostensoort_oms), fr.fin_factuurregel_omschrijving, fr.fin_factuurregel_referentie, k.prs_kostenplaats_nr, fr.fin_factuurregel_totaal, COALESCE (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, BUDGETCODE, HUURDERNR, 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, COALESCE(kfr.prs_kostensoort_oms, 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, '' Huurder, 1 Aantal, fr.fin_factuurregel_totaal KostPrijs, --SUM(boi.bes_bestelopdr_item_prijs) KostPrijs, COALESCE (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, prs_kostensoort kfr 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 fr.prs_kostensoort_key = kfr.prs_kostensoort_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, BUDGETCODE, HUURDERNR, 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, COALESCE(kfr.prs_kostensoort_oms, ks.prs_kostensoort_oms, COALESCE((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, DECODE(mld_kosten_klant, 1, (SELECT SUBSTR(k.prs_kostenplaats_nr, INSTR(k.prs_kostenplaats_nr, '/', 1, 1)+1) FROM dual), '') Huurder, 1 Aantal, fr.fin_factuurregel_totaal KostPrijs, COALESCE (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, prs_kostensoort kfr, 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 fr.prs_kostensoort_key = kfr.prs_kostensoort_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 || ';' || 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 || ';' || 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 || ';' || 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) /* Formatted on 11-6-2010 17:10:37 (QP5 v5.136.908.31019) */ 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; -- Moet ooit nog eens efficienter in een fin.setfactuurstatus() UPDATE fin_factuur SET fin_factuur_statuses_key = 7 WHERE fin_factuur_key IN (SELECT fin_factuur_key FROM conn_v_export_finorders_coda); FOR f IN (SELECT * FROM conn_v_export_finorders_coda) LOOP fac.trackaction ('FINVER', f.fin_factuur_key, NULL, SYSDATE, NULL); END LOOP; 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) /* Formatted on 11-6-2010 17:20:27 (QP5 v5.136.908.31019) */ 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; -- Moet ooit nog eens efficienter in een fin.setfactuurstatus() UPDATE fin_factuur SET fin_factuur_statuses_key = 7 WHERE fin_factuur_key IN (SELECT fin_factuur_key FROM conn_v_export_finorders_nav_fb); FOR f IN (SELECT * FROM conn_v_export_finorders_nav_fb) LOOP fac.trackaction ('FINVER', f.fin_factuur_key, NULL, SYSDATE, NULL); END LOOP; 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) /* Formatted on 11-6-2010 17:23:22 (QP5 v5.136.908.31019) */ 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; -- Moet ooit nog eens efficienter in een fin.setfactuurstatus() UPDATE fin_factuur SET fin_factuur_statuses_key = 7 WHERE fin_factuur_key IN (SELECT fin_factuur_key FROM conn_v_export_finorders_nav_vg); FOR f IN (SELECT * FROM conn_v_export_finorders_nav_vg) LOOP fac.trackaction ('FINVER', f.fin_factuur_key, NULL, SYSDATE, NULL); END LOOP; 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; fac.imp_writelog (p_applname, p_applrun, 'S', 'Cxx factuurimport $Revision: 180 $', ''); 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; -- CONN#17357 en CONN#16819: -- Voorkom invalid number error door een '-' in btw_bedrag IF ( TRIM(v_btw_bedrag) = '-' ) THEN v_btw_bedrag := '0'; fac.imp_writelog (p_applname, p_applrun, 'I', 'BTW-bedrag ''-'' vervangen door ''0''', SUBSTR (v_ordernr, 1, 13)||' / '||SUBSTR (v_factuurnr, 1, 10) ); 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; / CREATE OR REPLACE PROCEDURE conn_update_factuur (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS CURSOR congeldig IS SELECT ordernr, factuurnr, aantal, kostprijs, btw, btw_bedrag, locatie, omschrijving FROM conn_imp_factuur WHERE fac.safe_to_number(aantal) IS NULL OR fac.safe_to_number(kostprijs) IS NULL OR fac.safe_to_number(btw) IS NULL OR fac.safe_to_number(btw_bedrag) IS NULL; 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_factuur_totaal NUMBER; c_factuur_btw 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_desc VARCHAR2(100); v_errormsg VARCHAR (200); oracle_err_mes VARCHAR2 (150); dummy VARCHAR2 (1); v_count NUMBER; 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; -- CONN#17357 en CONN#16819: -- Voorkom invalid number error voor ongeldige getallen (specifiek een '-' in btw_bedrag) -- 1) Zijn er fouten? SELECT COUNT (*) INTO v_count FROM conn_imp_factuur WHERE fac.safe_to_number (aantal) IS NULL OR fac.safe_to_number (kostprijs) IS NULL OR fac.safe_to_number (btw) IS NULL OR fac.safe_to_number (btw_bedrag) IS NULL; -- 2a) Rapporteer 'invalid numbers' en beëindig import IF (v_count > 0) THEN fac.imp_writelog (p_applname, p_applrun, 'E', 'Ongeldig importbestand; import wordt afgebroken.', 'Corrigeer de genoemde fouten.'); FOR rco IN congeldig LOOP v_desc := rco.ordernr||' / '||rco.factuurnr; IF ( COALESCE(fac.safe_to_number(rco.kostprijs), -1) = -1 ) THEN fac.imp_writelog (p_applname, p_applrun, 'E', 'Ongeldige kostprijs ['||rco.kostprijs||']', v_desc); END IF; IF ( COALESCE(fac.safe_to_number(rco.btw_bedrag), -1) = -1 ) THEN fac.imp_writelog (p_applname, p_applrun, 'E', 'Ongeldig BTW-bedrag ['||rco.btw_bedrag||']', v_desc); END IF; IF ( COALESCE(fac.safe_to_number(rco.aantal), -1) = -1 ) THEN fac.imp_writelog (p_applname, p_applrun, 'E', 'Ongeldig aantal artikelen ['||rco.aantal||']', v_desc); END IF; IF ( COALESCE(fac.safe_to_number(rco.btw), -1) = -1 ) THEN fac.imp_writelog (p_applname, p_applrun, 'E', 'Ongeldig BTW-percentage ['||rco.btw||']', v_desc); END IF; END LOOP; -- 2b) Geen 'invalid numbers' --> import! ELSE -- 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; SELECT SUM (kostprijs) totaal, SUM (btw_bedrag) totaal_btw INTO c_factuur_totaal, c_factuur_btw FROM conn_imp_factuur WHERE LTRIM (RTRIM (ordernr)) = rc.ordernr; 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, c_factuur_totaal, c_factuur_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¿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 BEGIN SELECT '' INTO dummy FROM fin_factuur 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); UPDATE fin_factuur SET fin_factuur_statuses_key = 6 WHERE fin_factuur_key = c_index; fac.trackaction ('FINFOK', c_index, NULL, NULL, NULL); fac.imp_writelog (p_applname, p_applrun, 'I', 'Factuur ' || c_index || ' status op afgemeld gezet ', c_bestelopdr_id || ' / ' || rc.factuurnr ); EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; END IF; END IF; COMMIT; END LOOP; END IF; -- invalid numbers 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; v_divisie_key prs_afdeling.prs_afdeling_key%TYPE; BEGIN BEGIN SELECT a.prs_afdeling_key INTO v_afdeling_key FROM prs_afdeling a WHERE TRIM(a.prs_afdeling_upper) = UPPER (TRIM(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 zoek de divisie en maak de afdeling aan. BEGIN SELECT a.prs_afdeling_key INTO v_divisie_key FROM prs_v_afdeling a WHERE UPPER (TRIM(a.prs_afdeling_omschrijving)) = UPPER (TRIM(p_dvb_divisie)) AND a.prs_afdeling_verwijder IS NULL AND a.niveau = 1; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN v_divisie_key := NULL; -- als we geen afdeling en divisie kunnen vinden dan plaatsen we de persoon in de afdeling perman nieuw -- 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; END; IF v_divisie_key IS NOT NULL THEN -- nieuwe afdeling onder bekende divisie plaatsen -- maak de afdeling aan INSERT INTO prs_afdeling (prs_afdeling_parentkey, prs_afdeling_naam, prs_afdeling_omschrijving, prs_bedrijf_key ) VALUES (v_divisie_key, p_afd_code, p_afd_omschrijving, null ) RETURNING prs_afdeling_key INTO v_afdeling_key; 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_d_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, '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 dag, opdrachtgever, plaats, halte, medewerker, activiteit; -- HALTEWERK-rapportage/Materiaaloverzicht (CONN#13730) CREATE OR REPLACE VIEW CONN_V_HALTEMATERIAAL (FCLT_D_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, '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 dag, opdrachtgever, plaats, halte, medewerker, activiteit; / -- -- notificatie job om bestellers en melders een herinnering te sturen zodat -- ze de opdracht of bestelling afmelden. -- De herinneringmail wordt x dagen na het aanmaken van de bestelopdracht en y -- dagen na de einddatum van de opdracht naar de melder/besteller verzonden. -- De waarden van x en y zijn te configureren bij de catatogus en bij de vakgroep -- als 'Aantal dagen tbv. herinnering' CREATE OR REPLACE VIEW conn_v_noti_bestelling_opdr ( code, sender, receiver, text, key, xkey ) AS SELECT DISTINCT 'BES2MA', NULL, b.prs_perslid_key, 'U wordt verzocht uw bestelling met nummer ' || bo.bes_bestelopdr_id || ' af te melden in Facilitor.', bo.bes_bestelopdr_key, NULL FROM bes_bestelling b, bes_bestelling_item bi, bes_bestelopdr_item boi, bes_srtdeel sd, bes_srtgroep sg, bes_disc_params dp, bes_bestelopdr bo WHERE bes_bestelling_status = 5 AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key AND b.bes_bestelling_key = bi.bes_bestelling_key AND TRUNC (bes_bestelopdr_datum + dp.bes_disc_params_noti_dagen) = TRUNC (SYSDATE) AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key AND bi.bes_srtdeel_key = sd.bes_srtdeel_key AND sd.bes_srtgroep_key = sg.bes_srtgroep_key AND sg.ins_discipline_key = dp.bes_ins_discipline_key AND dp.bes_disc_params_noti_dagen IS NOT NULL UNION ALL SELECT DISTINCT 'ORDMAI', NULL, m.prs_perslid_key, 'U wordt verzocht uw opdracht met nummer ' || o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr || ' af te melden in Facilitor.', o.mld_opdr_key, NULL FROM mld_opdr o, mld_melding m, mld_stdmelding std, mld_disc_params md WHERE o.mld_melding_key = m.mld_melding_key AND m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = md.mld_ins_discipline_key AND (o.mld_statusopdr_key = 5 OR o.mld_statusopdr_key = 8) AND mld_disc_params_noti_dagen IS NOT NULL AND TRUNC (o.mld_opdr_einddatum + md.mld_disc_params_noti_dagen) = TRUNC (SYSDATE); -- CONN#12661: Notificatie op basis van meterstandverantwoordelijke per locatie -- View voor kenmerk "Meterstanden verantwoordelijke" /* Formatted on 11-6-2010 16:49:27 (QP5 v5.136.908.31019) */ CREATE OR REPLACE FORCE 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_INSUSE') AND w.ins_discipline_key = (SELECT itd.ins_discipline_key FROM ins_tab_discipline itd WHERE itd.ins_discipline_omschrijving = 'Verbruiksregistratie') ORDER BY p.prs_perslid_upper; -- View notificatiejob /* Formatted on 20-10-2011 13:44:45 (QP5 v5.115.810.9015) */ 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 = 1280) -- Meterstandverantwoordelijke 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 TRUNC(SYSDATE, 'MM') - 10 AND TRUNC(SYSDATE, 'MM') + 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 TRUNC(SYSDATE, 'MM') - 10 AND TRUNC(SYSDATE, 'MM') + 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 = 1280) IS NOT NULL -- Meterstandverantwoordelijke 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; -------------------------- -- -- Afmeldprocedures voor bestellingen en opdrachten -- -------------------------- CREATE OR REPLACE PROCEDURE CONN_EXPORT_AFM_BESTEL (p_applname IN VARCHAR2, p_applrun IN VARCHAR2, p_filedir IN VARCHAR2, p_filename IN VARCHAR2 ) AS CURSOR c1 IS SELECT DISTINCT bi.bes_bestelling_key, bes_bestelling_item_key FROM bes_bestelling_item bi, bes_bestelling b, bes_srtdeel sd, bes_srtgroep sg, bes_disc_params bdp WHERE bi.bes_bestelling_key = b.bes_bestelling_key AND bes_bestelling_datum < SYSDATE - bdp.bes_disc_params_noti_dagen - 14 AND bes_bestelling_status IN (3, 4, 5) -- (gefiatteerd, geaccepteerd, besteld) AND bi.bes_srtdeel_key = sd.bes_srtdeel_key AND sd.bes_srtgroep_key = sg.bes_srtgroep_key AND sg.ins_discipline_key = bdp.bes_ins_discipline_key AND bdp.bes_disc_params_noti_dagen IS NOT NULL; CURSOR c2 (p_bes_bestelling_item_key IN number ) IS SELECT DISTINCT bo.bes_bestelopdr_key, boi.bes_bestelopdr_item_key, bes_bestelling_item_key, bes_bestelopdr_id FROM bes_bestelopdr bo, bes_bestelopdr_item boi, bes_bestelling_item bi WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key AND bi.bes_bestelling_item_key = p_bes_bestelling_item_key; rec1 c1%ROWTYPE; rec2 c2%ROWTYPE; v_errormsg VARCHAR2 (200); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); BEGIN FOR rec1 IN c1 LOOP BEGIN FOR rec2 IN c2 (rec1.bes_bestelling_item_key) LOOP BEGIN UPDATE bes_bestelopdr_item b SET bes_bestelopdr_item_aantalontv = bes_bestelopdr_item_aantal, bes_bestelopdr_item_ontvangen = SYSDATE WHERE bes_bestelopdr_item_key = rec2.bes_bestelopdr_item_key; BEGIN bes.updatebestelopdrstatus (rec2.bes_bestelopdr_key, 1042); END; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, 'Bestelopdracht:'|| rec2.bes_bestelopdr_id); END; END LOOP; DBMS_OUTPUT.put_line ('rec1 item: ' || rec1.bes_bestelling_item_key); UPDATE bes_bestelling_item SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal WHERE bes_bestelling_item_key = rec1.bes_bestelling_item_key; UPDATE bes_bestelling_item bi SET bes_bestelling_item_status = 6 -- geleverd WHERE COALESCE (bi.bes_bestelling_item_aantal, 0) = COALESCE (bi.bes_bestelling_item_aantalontv, 0) AND bes_bestelling_item_status = 5; -- besteld BEGIN bes.updatebestellingstatus (rec1.bes_bestelling_key, 1042); END; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, 'Bestelling:'|| rec1.bes_bestelling_key); END; END LOOP; COMMIT; END; / CREATE OR REPLACE PROCEDURE CONN_EXPORT_AFM_OPDRACHT (p_applname IN VARCHAR2, p_applrun IN VARCHAR2, p_filedir IN VARCHAR2, p_filename IN VARCHAR2 ) AS CURSOR c_opdr IS SELECT mld_opdr_key, mld_opdr_bedrijfopdr_volgnr, o.mld_melding_key FROM mld_opdr o, mld_melding m, mld_stdmelding std, mld_disc_params dp WHERE mld_statusopdr_key = 5 -- uitgegeven AND m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = dp.mld_ins_discipline_key AND o.mld_melding_key = m.mld_melding_key AND o.mld_opdr_datumbegin < SYSDATE - dp.mld_disc_params_noti_dagen - 14; CURSOR c_melding IS SELECT DISTINCT m.mld_melding_key FROM mld_melding m, mld_opdr o, fac_tracking t, fac_srtnotificatie sn WHERE o.mld_melding_key = m.mld_melding_key AND o.mld_opdr_key = t.fac_tracking_refkey AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND sn.fac_srtnotificatie_code = 'ORDAFM' AND trunc(t.fac_tracking_datum) = trunc(sysdate) AND NOT EXISTS (SELECT m.mld_melding_key FROM mld_opdr op WHERE op.mld_statusopdr_key = 5 -- uitgegeven AND m.mld_melding_key = op.mld_melding_key); rec1 c_opdr%ROWTYPE; rec2 c_melding%ROWTYPE; v_errormsg VARCHAR2 (200); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); BEGIN FOR rec1 IN c_opdr LOOP BEGIN mld.setopdrachtstatus(rec1.mld_opdr_key, 6, 1024); -- status afgemeld , user mhanemaa EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, 'Opdracht:'|| rec1.mld_melding_key || '/' || rec1.mld_opdr_bedrijfopdr_volgnr); END; END LOOP; FOR rec2 IN c_melding LOOP BEGIN mld.setmeldingstatus(rec2.mld_melding_key, 5, 1024); -- status afgemeld , user mhanemaa EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, 'Melding:'|| rec2.mld_melding_key); END; END LOOP; COMMIT; END; / 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; / -- Bevat CUST01- en CUST02-reminder naar beheerder verantwoordelijk voor de -- keuring van betreffende objecten (Gebouwobjecten vs. Gereedschappen). -- CUST01: wekelijks mbt. over 4 tot 5 weken te keuren objecten! -- CUST02: wekelijks mbt. objecten waarvan keuringsdatum is verstreken! /* Formatted on 2-12-2011 14:24:24 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW CONN_V_NOTI_KEURINGREMINDER ( code, sender, receiver, text, KEY, par1, par2, xkey ) AS SELECT sn.fac_srtnotificatie_code code, NULL sender, fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) receiver, REPLACE ( REPLACE ( sn.fac_srtnotificatie_oms, '##SRTGROEP##', DECODE (x.min_srtgroep_oms, x.max_srtgroep_oms, x.min_srtgroep_oms, x.min_srtgroep_oms || ', ...') ), '##AANTAL##', x.aantal ) subject, x.dummy_deel_key, -- Dummy key!!! NULL, NULL, NULL FROM ( SELECT o.alg_locatie_key, DECODE (o.ins_discipline_key, 101, 1320, -- Gebouwobjecten -> 1320-verantw. 341, 1320, -- Gebouwobjecten -> 1320-verantw. 1841, 1320, -- Gebouwobjecten -> 1320-verantw. 1881, 1320, -- Gebouwobjecten -> 1320-verantw. 1340) -- Gereedschappen -> 1340-verantw. verantwoordelijke, MIN (o.ins_srtgroep_omschrijving) min_srtgroep_oms, MAX (o.ins_srtgroep_omschrijving) max_srtgroep_oms, MIN (o.ins_deel_key) dummy_deel_key, COUNT (DISTINCT o.ins_deel_key) aantal FROM (SELECT scs.ins_srtinstallatie_key ins_srtdeel_key, scs.ins_srtcontrole_key, scs.ins_srtcontrole_omschrijving, scs.ins_srtcontrole_periode FROM ins_srtcontrole scs WHERE scs.ins_srtcontrole_niveau = 'S' UNION ALL SELECT sd.ins_srtdeel_key, scg.ins_srtcontrole_key, scg.ins_srtcontrole_omschrijving, scg.ins_srtcontrole_periode FROM ins_srtcontrole scg, ins_srtdeel sd WHERE scg.ins_srtcontrole_niveau = 'G' AND scg.ins_srtinstallatie_key = sd.ins_srtgroep_key UNION ALL SELECT sd.ins_srtdeel_key, scd.ins_srtcontrole_key, scd.ins_srtcontrole_omschrijving, scd.ins_srtcontrole_periode FROM ins_srtcontrole scd, ins_srtgroep sg, ins_srtdeel sd WHERE scd.ins_srtcontrole_niveau = 'D' AND scd.ins_srtinstallatie_key = sg.ins_discipline_key AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) cso -- ControleSoortObjecten LEFT JOIN (SELECT d.ins_deel_key, d.ins_deel_aanmaak, sd.ins_srtdeel_key, sg.ins_srtgroep_omschrijving, td.ins_discipline_key, td.ins_discipline_omschrijving, l.alg_locatie_key FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, ins_tab_discipline td, alg_locatie l WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = td.ins_discipline_key AND d.ins_alg_locatie_key = l.alg_locatie_key(+)) o -- Objecten ON cso.ins_srtdeel_key = o.ins_srtdeel_key LEFT JOIN (SELECT ins_deel_key, ins_kenmerkdeel_waarde afgekeurd FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = 1466) oa -- ObjectAfgekeurd ON o.ins_deel_key = oa.ins_deel_key LEFT JOIN (SELECT dsc.ins_deel_key, dsc.ins_srtcontrole_key, dsc.ins_deelsrtcontrole_datum, dsc.ins_deelsrtcontrole_opmerking FROM ins_deelsrtcontrole dsc WHERE dsc.ins_deelsrtcontrole_datum = (SELECT MAX ( ins_deelsrtcontrole_datum ) FROM ins_deelsrtcontrole WHERE ins_deel_key = dsc.ins_deel_key AND ins_srtcontrole_key = dsc.ins_srtcontrole_key)) olc -- ObjectLaatsteControle ON o.ins_deel_key = olc.ins_deel_key AND cso.ins_srtcontrole_key = olc.ins_srtcontrole_key WHERE (oa.afgekeurd IS NULL OR oa.afgekeurd = 130) -- 'Nee' AND COALESCE (olc.ins_deelsrtcontrole_datum, o.ins_deel_aanmaak) + cso.ins_srtcontrole_periode BETWEEN TRUNC(SYSDATE + 28) AND TRUNC(SYSDATE + 35) GROUP BY o.alg_locatie_key, DECODE (o.ins_discipline_key, 101, 1320, -- Gebouwobjecten -> 1320-verantw. 341, 1320, -- Gebouwobjecten -> 1320-verantw. 1841, 1320, -- Gebouwobjecten -> 1320-verantw. 1881, 1320, -- Gebouwobjecten -> 1320-verantw. 1340)) x, -- Gereedschappen -> 1340-verantw. alg_v_aanwezigonrgoedkenmerk ok, fac_srtnotificatie sn WHERE x.alg_locatie_key = ok.alg_onrgoed_key AND x.verantwoordelijke = ok.alg_kenmerk_key AND ok.alg_onrgoed_niveau = 'L' AND sn.fac_srtnotificatie_code = 'CUST01' UNION ALL SELECT sn.fac_srtnotificatie_code code, NULL sender, fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) receiver, REPLACE ( REPLACE ( sn.fac_srtnotificatie_oms, '##SRTGROEP##', DECODE (x.min_srtgroep_oms, x.max_srtgroep_oms, x.min_srtgroep_oms, x.min_srtgroep_oms || ', ...') ), '##AANTAL##', x.aantal ) subject, x.dummy_deel_key, -- Dummy key!!! NULL, NULL, NULL FROM ( SELECT o.alg_locatie_key, DECODE (o.ins_discipline_key, 101, 1320, -- Gebouwobjecten -> 1320-verantw. 341, 1320, -- Gebouwobjecten -> 1320-verantw. 1841, 1320, -- Gebouwobjecten -> 1320-verantw. 1881, 1320, -- Gebouwobjecten -> 1320-verantw. 1340) -- Gereedschappen -> 1340-verantw. verantwoordelijke, MIN (o.ins_srtgroep_omschrijving) min_srtgroep_oms, MAX (o.ins_srtgroep_omschrijving) max_srtgroep_oms, MIN (o.ins_deel_key) dummy_deel_key, COUNT (DISTINCT o.ins_deel_key) aantal FROM (SELECT scs.ins_srtinstallatie_key ins_srtdeel_key, scs.ins_srtcontrole_key, scs.ins_srtcontrole_omschrijving, scs.ins_srtcontrole_periode FROM ins_srtcontrole scs WHERE scs.ins_srtcontrole_niveau = 'S' UNION ALL SELECT sd.ins_srtdeel_key, scg.ins_srtcontrole_key, scg.ins_srtcontrole_omschrijving, scg.ins_srtcontrole_periode FROM ins_srtcontrole scg, ins_srtdeel sd WHERE scg.ins_srtcontrole_niveau = 'G' AND scg.ins_srtinstallatie_key = sd.ins_srtgroep_key UNION ALL SELECT sd.ins_srtdeel_key, scd.ins_srtcontrole_key, scd.ins_srtcontrole_omschrijving, scd.ins_srtcontrole_periode FROM ins_srtcontrole scd, ins_srtgroep sg, ins_srtdeel sd WHERE scd.ins_srtcontrole_niveau = 'D' AND scd.ins_srtinstallatie_key = sg.ins_discipline_key AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) cso -- ControleSoortObjecten LEFT JOIN (SELECT d.ins_deel_key, d.ins_deel_aanmaak, sd.ins_srtdeel_key, sg.ins_srtgroep_omschrijving, td.ins_discipline_key, td.ins_discipline_omschrijving, l.alg_locatie_key FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, ins_tab_discipline td, alg_locatie l WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = td.ins_discipline_key AND d.ins_alg_locatie_key = l.alg_locatie_key(+)) o -- Objecten ON cso.ins_srtdeel_key = o.ins_srtdeel_key LEFT JOIN (SELECT ins_deel_key, ins_kenmerkdeel_waarde afgekeurd FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = 1466) oa -- ObjectAfgekeurd ON o.ins_deel_key = oa.ins_deel_key LEFT JOIN (SELECT dsc.ins_deel_key, dsc.ins_srtcontrole_key, dsc.ins_deelsrtcontrole_datum, dsc.ins_deelsrtcontrole_opmerking FROM ins_deelsrtcontrole dsc WHERE dsc.ins_deelsrtcontrole_datum = (SELECT MAX ( ins_deelsrtcontrole_datum ) FROM ins_deelsrtcontrole WHERE ins_deel_key = dsc.ins_deel_key AND ins_srtcontrole_key = dsc.ins_srtcontrole_key)) olc -- ObjectLaatsteControle ON o.ins_deel_key = olc.ins_deel_key AND cso.ins_srtcontrole_key = olc.ins_srtcontrole_key WHERE (oa.afgekeurd IS NULL OR oa.afgekeurd = 130) -- 'Nee' AND COALESCE (olc.ins_deelsrtcontrole_datum, o.ins_deel_aanmaak) + cso.ins_srtcontrole_periode < TRUNC (SYSDATE) GROUP BY o.alg_locatie_key, DECODE (o.ins_discipline_key, 101, 1320, -- Gebouwobjecten -> 1320-verantw. 341, 1320, -- Gebouwobjecten -> 1320-verantw. 1841, 1320, -- Gebouwobjecten -> 1320-verantw. 1881, 1320, -- Gebouwobjecten -> 1320-verantw. 1340)) x, -- Gereedschappen -> 1340-verantw. alg_v_aanwezigonrgoedkenmerk ok, fac_srtnotificatie sn WHERE x.alg_locatie_key = ok.alg_onrgoed_key AND x.verantwoordelijke = ok.alg_kenmerk_key AND ok.alg_onrgoed_niveau = 'L' AND sn.fac_srtnotificatie_code = 'CUST02'; /* 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, mld_stdmelding std, 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_stdmelding_key = std.mld_stdmelding_key AND std.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, bes_srtdeel sd, bes_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.bes_srtdeel_key = sd.bes_srtdeel_key AND sd.bes_srtgroep_key = sg.bes_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 / CREATE OR REPLACE VIEW conn_v_rap_kostenkwartaal (fclt_f_locatie_code, fclt_f_locatie_omschrijving, fclt_f_jaar, fclt_f_kwartaal, fclt_f_soort_melding, aantal, werkelijke_kosten ) AS SELECT c21, c20, c30, c31, c32, COUNT (c0), SUM (c27) FROM (SELECT DISTINCT m.mld_melding_key c0, alg_locatie_code c21, alg_locatie_omschrijving c20, COALESCE ((SELECT SUM (f.fin_factuur_totaal) FROM fin_factuur f, mld_opdr o2 WHERE f.mld_opdr_key = o2.mld_opdr_key AND o2.mld_melding_key = m.mld_melding_key), 0 ) c27, TO_CHAR (mld_melding_datum, 'yyyy') c30, TO_CHAR ( (TRUNC ( TO_NUMBER (TO_CHAR (mld_melding_datum, 'mm' ) ) / 4 ) ) + 1) c31, mld_stdmelding_omschrijving c32 FROM mld_melding m, mld_discipline md, alg_locatie l, mld_stdmelding st WHERE m.mld_alg_locatie_key = l.alg_locatie_key AND m.mld_stdmelding_key = st.mld_stdmelding_key AND st.mld_ins_discipline_key = md.ins_discipline_key AND md.ins_srtdiscipline_key = 1) GROUP BY c20, c21, c30, c31, c32 ORDER BY 1, 2, 3 DESC; /* Formatted on 28-11-2011 10:52:17 (QP5 v5.136.908.31019) */ CREATE OR REPLACE FORCE VIEW conn_v_rap_tsnkleding ( fclt_f_besteller, fclt_f_bestemd_voor, fclt_f_naam_drager, fclt_d_besteldatum, item, aantal_besteleenheden, prijs, kostenplaats ) AS SELECT pf.prs_perslid_naam_full besteller, (SELECT pp.prs_perslid_naam_full FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk, prs_v_perslid_fullnames_all pp 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 v.bes_kenmerkbestell_waarde = pp.prs_perslid_key AND sk.bes_srtkenmerk_key = 161) bestemd_voor, (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_key = 65) naam_drager, TO_CHAR (bes_bestelling_datum, 'DD-MM-YYYY'), COALESCE (isd.bes_srtdeel_nr, '') || ' ' || isd.bes_srtdeel_omschrijving item, i.bes_bestelling_item_aantal, i.bes_bestelling_item_aantal * bi.bes_bestelopdr_item_prijs prijs, pk.prs_kostenplaats_nr FROM bes_bestelling b, prs_v_perslid_fullnames_all pf, bes_bestelling_item i, bes_srtdeel isd, bes_srtgroep isg, bes_discipline bd, mld_adres a, bes_bestelopdr_item bi, prs_kostenplaats pk WHERE pf.prs_perslid_key = b.prs_perslid_key AND b.bes_bestelling_key = i.bes_bestelling_key AND i.bes_srtdeel_key = isd.bes_srtdeel_key AND isd.bes_srtgroep_key = isg.bes_srtgroep_key AND isg.ins_discipline_key = bd.ins_discipline_key AND bd.ins_discipline_key = 1901 AND i.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key(+) AND b.mld_adres_key_lev = a.mld_adres_key(+) AND b.prs_kostenplaats_key = pk.prs_kostenplaats_key; CREATE OR REPLACE FORCE VIEW conn_v_rap_tourskleding ( fclt_f_besteller, fclt_f_bestemd_voor, fclt_f_naam_drager, fclt_d_besteldatum, item, aantal_besteleenheden, prijs, kostenplaats ) AS SELECT pf.prs_perslid_naam_full besteller, (SELECT pp.prs_perslid_naam_full FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk, prs_v_perslid_fullnames_all pp 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 v.bes_kenmerkbestell_waarde = pp.prs_perslid_key AND sk.bes_srtkenmerk_key = 161) bestemd_voor, (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_key = 65) naam_drager, TO_CHAR (bes_bestelling_datum, 'DD-MM-YYYY'), COALESCE (isd.bes_srtdeel_nr, '') || ' ' || isd.bes_srtdeel_omschrijving item, i.bes_bestelling_item_aantal, i.bes_bestelling_item_aantal * bi.bes_bestelopdr_item_prijs prijs, pk.prs_kostenplaats_nr FROM bes_bestelling b, prs_v_perslid_fullnames_all pf, bes_bestelling_item i, bes_srtdeel isd, bes_srtgroep isg, bes_discipline bd, mld_adres a, bes_bestelopdr_item bi, prs_kostenplaats pk WHERE pf.prs_perslid_key = b.prs_perslid_key AND b.bes_bestelling_key = i.bes_bestelling_key AND i.bes_srtdeel_key = isd.bes_srtdeel_key AND isd.bes_srtgroep_key = isg.bes_srtgroep_key AND isg.ins_discipline_key = bd.ins_discipline_key AND bd.ins_discipline_key = 2221 AND i.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key(+) AND b.mld_adres_key_lev = a.mld_adres_key(+) AND b.prs_kostenplaats_key = pk.prs_kostenplaats_key; /* Formatted on 23-1-2009 15:08:32 (QP5 v5.115.810.9015) */ -- TSN Initial Hokatex kleding CREATE OR REPLACE VIEW CONN_V_RAP_TSN_HOK_KLEDING ( FCLT_F_BESTELLER, FCLT_F_BESTEMD_VOOR, FCLT_F_NAAM_DRAGER, FCLT_D_BESTELDATUM, ITEM, AANTAL_BESTELEENHEDEN, RUILING, TOENAME, AFNAME, KOSTENPLAATS ) AS SELECT pf.prs_perslid_naam_full besteller, (SELECT pp.prs_perslid_naam_full FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk, prs_v_perslid_fullnames_all pp 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 v.bes_kenmerkbestell_waarde = pp.prs_perslid_key AND sk.bes_srtkenmerk_key = 161) bestemd_voor, (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_key = 65) naam_drager, TO_CHAR(bes_bestelling_datum,'DD-MM-YYYY'), COALESCE (isd.bes_srtdeel_nr, '') || ' ' || isd.bes_srtdeel_omschrijving item, i.bes_bestelling_item_aantal, (SELECT ud.fac_usrdata_omschr FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk, fac_usrdata ud 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 v.bes_kenmerkbestell_waarde = ud.fac_usrdata_key AND sk.bes_srtkenmerk_key = 523) ruiling, (SELECT ud.fac_usrdata_omschr FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk, fac_usrdata ud 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 v.bes_kenmerkbestell_waarde = ud.fac_usrdata_key AND sk.bes_srtkenmerk_key = 526) toename, (SELECT ud.fac_usrdata_omschr FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk, fac_usrdata ud 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 v.bes_kenmerkbestell_waarde = ud.fac_usrdata_key AND sk.bes_srtkenmerk_key = 527) afname, pk.prs_kostenplaats_nr FROM bes_bestelling b, prs_v_perslid_fullnames_all pf, bes_bestelling_item i, bes_srtdeel isd, bes_srtgroep isg, bes_discipline bd, mld_adres a, bes_bestelopdr_item bi, prs_kostenplaats pk WHERE pf.prs_perslid_key = b.prs_perslid_key AND b.bes_bestelling_key = i.bes_bestelling_key AND i.bes_srtdeel_key = isd.bes_srtdeel_key AND isd.bes_srtgroep_key = isg.bes_srtgroep_key AND isg.ins_discipline_key = bd.ins_discipline_key AND bd.ins_discipline_key = 2181 AND i.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key(+) AND b.mld_adres_key_lev = a.mld_adres_key(+) AND b.prs_kostenplaats_key = pk.prs_kostenplaats_key; -- Eerste opzet /* Formatted on 24-3-2010 15:12:46 (QP5 v5.136.908.31019) */ /* Formatted on 25-3-2010 9:46:31 (QP5 v5.136.908.31019) */ CREATE OR REPLACE FORCE VIEW conn_v_businessobjects ( fin_factuur_nr, fin_factuur_datum, fin_factuur_boekmaand, fin_factuur_totaal, fin_factuur_totaal_btw, fin_factuur_incl, fin_factuur_debiteur_nr, fin_factuur_opmerking, fin_factuur_statuses_omschr, prs_kostensoort_oms, prs_kostensoort_refcode, reftype, nummer, volgnr, prs_kostenplaats_nr, prs_leverancier_nr ) AS SELECT f.fin_factuur_nr, fin_factuur_datum, fin_factuur_boekmaand, fin_factuur_totaal, fin_factuur_totaal_btw, fin_factuur_totaal + fin_factuur_totaal_btw fin_factuur_incl, fin_factuur_debiteur_nr, f.fin_factuur_opmerking, s.fin_factuur_statuses_omschr, k.prs_kostensoort_oms, k.prs_kostensoort_refcode, 'O' reftype, sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) referentienummer, o.mld_opdr_bedrijfopdr_volgnr volgnr, kp.prs_kostenplaats_nr, b.prs_leverancier_nr FROM fin_factuur f, mld_opdr o, mld_melding m, fin_factuur_statuses s, prs_kostensoort k, prs_kostenplaats kp, prs_bedrijf b, mld_stdmelding stdm, ins_tab_discipline d, ins_srtdiscipline sd WHERE f.mld_opdr_key = o.mld_opdr_key AND o.mld_melding_key = m.mld_melding_key AND m.mld_stdmelding_key = stdm.mld_stdmelding_key AND stdm.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND f.fin_factuur_statuses_key = s.fin_factuur_statuses_key AND f.prs_kostensoort_key = k.prs_kostensoort_key(+) AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+) UNION ALL SELECT f.fin_factuur_nr, fin_factuur_datum, fin_factuur_boekmaand, fin_factuur_totaal, fin_factuur_totaal_btw, fin_factuur_totaal + fin_factuur_totaal_btw fin_factuur_incl, fin_factuur_debiteur_nr, f.fin_factuur_opmerking, s.fin_factuur_statuses_omschr, k.prs_kostensoort_oms, k.prs_kostensoort_refcode, 'B' reftype, bo.bes_bestelopdr_id referentienummer, 1 volgnr, kp.prs_kostenplaats_nr, b.prs_leverancier_nr FROM fin_factuur f, bes_bestelopdr bo, fin_factuur_statuses s, prs_kostensoort k, prs_kostenplaats kp, prs_bedrijf b, bes_bestelling ba, bes_bestelling_item bai, bes_bestelopdr_item boi WHERE f.bes_bestelopdr_key = bo.bes_bestelopdr_key AND f.fin_factuur_statuses_key = s.fin_factuur_statuses_key AND f.prs_kostensoort_key = k.prs_kostensoort_key AND bai.bes_bestelling_key = ba.bes_bestelling_key AND bai.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key AND ba.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND bo.prs_bedrijf_key = b.prs_bedrijf_key(+) UNION ALL SELECT f.fin_factuur_nr, fin_factuur_datum, fin_factuur_boekmaand, fin_factuur_totaal, fin_factuur_totaal_btw, fin_factuur_totaal + fin_factuur_totaal_btw fin_factuur_incl, fin_factuur_debiteur_nr, f.fin_factuur_opmerking, s.fin_factuur_statuses_omschr, k.prs_kostensoort_oms, k.prs_kostensoort_refcode, 'C' reftype, 'C'||TO_CHAR (c.cnt_contract_nummer_intern) referentienummer, 1 volgnr, kp.prs_kostenplaats_nr, b.prs_leverancier_nr FROM fin_factuur f, cnt_contract c, fin_factuur_statuses s, prs_kostensoort k, prs_kostenplaats kp, prs_bedrijf b WHERE f.cnt_contract_key = c.cnt_contract_key AND f.fin_factuur_statuses_key = s.fin_factuur_statuses_key AND f.prs_kostensoort_key = k.prs_kostensoort_key AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+); -- Functionaliteit tbv de locatieoverzichten -- Budget -- Uitnutting -- Xelion informatie CREATE OR REPLACE PROCEDURE conn_import_budget ( 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_aanduiding VARCHAR2 (1000); v_field VARCHAR2 (100); v_fielddelimitor VARCHAR2 (1); v_errormsg VARCHAR2 (200); v_errorhint VARCHAR2 (200); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER; -- De importvelden v_empty VARCHAR2 (100); v_locatie VARCHAR2 (100); v_adres VARCHAR2 (100); v_divisie VARCHAR2 (30); v_budget VARCHAR2 (30); v_district VARCHAR2 (30); v_periode VARCHAR2 (20); v_huur VARCHAR2 (30); v_afschrijving VARCHAR2 (30); v_servicekosten VARCHAR2 (30); v_eindtotaal VARCHAR2 (30); v_vorige_locatie VARCHAR2 (10); v_vorige_divisie VARCHAR2 (30); CURSOR c IS SELECT * FROM fac_imp_file WHERE fac_imp_file_applicatie = p_applname ORDER BY FAC_IMP_FILE_INDEX; BEGIN -- Init v_fielddelimitor := ';'; header_is_valid := 0; DELETE imp_log WHERE imp_log_applicatie = p_applname; DELETE conn_imp_budget WHERE importrun IS NOT NULL; FOR rec IN c LOOP BEGIN v_errorhint := 'Inlezen regel'; v_newline := rec.fac_imp_file_line; v_aanduiding := v_newline; v_errorhint := 'Inlezen velden' || v_aanduiding; fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie); IF v_locatie IS NULL THEN v_locatie := v_vorige_locatie; END IF; fac.imp_getfield (v_newline, v_fielddelimitor, v_adres); fac.imp_getfield (v_newline, v_fielddelimitor, v_divisie); IF v_divisie IS NULL THEN v_divisie := v_vorige_divisie; END IF; fac.imp_getfield (v_newline, v_fielddelimitor, v_budget); fac.imp_getfield (v_newline, v_fielddelimitor, v_district); fac.imp_getfield (v_newline, v_fielddelimitor, v_periode); fac.imp_getfield (v_newline, v_fielddelimitor, v_huur); fac.imp_getfield (v_newline, v_fielddelimitor, v_afschrijving); fac.imp_getfield (v_newline, v_fielddelimitor, v_servicekosten); fac.imp_getfield (v_newline, v_fielddelimitor, v_eindtotaal); IF header_is_valid = 0 THEN IF upper(v_locatie) = 'LOCATIE' AND upper(v_adres) = 'ADRES' AND upper(v_eindtotaal) = 'EINDTOTAAL' THEN header_is_valid := 1; END IF; ELSE v_errorhint := 'Toevoegen record: ' || v_aanduiding; INSERT INTO conn_imp_budget (locatie, adres, divisie, budget, district, periode, huur, afschrijving, servicekosten, eindtotaal, importrun ) VALUES (v_locatie, v_adres, v_divisie, v_budget, v_district, substr(v_periode,8), fac.safe_to_number(replace(v_huur,'.','')), fac.safe_to_number(replace(v_afschrijving,'.','')), fac.safe_to_number(replace(v_servicekosten,'.','')), fac.safe_to_number(replace(v_eindtotaal,'.','')), p_applrun ); v_vorige_locatie := v_locatie; v_vorige_divisie := v_divisie; end if; 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_errorhint); END; END LOOP; 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_errorhint); END; / CREATE OR REPLACE PROCEDURE conn_update_budget (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS BEGIN -- kijk in de bestaande tabel (b) of er records met dezelfde periode voorkomen als zojust geimporteerd (i). DELETE conn_imp_budget b WHERE importrun IS NULL AND EXISTS (SELECT locatie FROM conn_imp_budget i WHERE i.budget = b.budget AND i.importrun is not null); UPDATE conn_imp_budget SET importrun = NULL WHERE importrun IS NOT NULL; END; / CREATE OR REPLACE PROCEDURE conn_import_kosten ( 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_aanduiding VARCHAR2 (1000); v_field VARCHAR2 (100); v_fielddelimitor VARCHAR2 (1); v_errormsg VARCHAR2 (200); v_errorhint VARCHAR2 (200); v_count NUMBER; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER; -- De importvelden v_empty VARCHAR2 (100); v_locatie VARCHAR2 (10); v_jaar VARCHAR2 (10); v_maand VARCHAR2 (10); v_divisie VARCHAR2 (30); v_kostensoort VARCHAR2 (30); v_bedrag VARCHAR2 (20); CURSOR c IS SELECT * FROM fac_imp_file WHERE fac_imp_file_applicatie = p_applname ORDER BY FAC_IMP_FILE_INDEX; BEGIN -- Init v_fielddelimitor := ';'; header_is_valid := 0; DELETE imp_log WHERE imp_log_applicatie = p_applname; DELETE conn_imp_kosten WHERE importrun IS NOT NULL; FOR rec IN c LOOP BEGIN v_errorhint := 'Inlezen regel'; v_newline := rec.fac_imp_file_line; v_aanduiding := v_newline; v_errorhint := 'Inlezen velden' || v_aanduiding; fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie); fac.imp_getfield (v_newline, v_fielddelimitor, v_jaar); fac.imp_getfield (v_newline, v_fielddelimitor, v_maand); fac.imp_getfield (v_newline, v_fielddelimitor, v_divisie); fac.imp_getfield (v_newline, v_fielddelimitor, v_kostensoort); fac.imp_getfield (v_newline, v_fielddelimitor, v_bedrag); IF header_is_valid = 0 THEN IF upper(v_locatie) = 'LOCATIE' AND upper(v_jaar) = 'JAAR' AND upper(v_bedrag) = 'BEDRAG' THEN header_is_valid := 1; END IF; ELSE v_errorhint := 'Toevoegen record: ' || v_aanduiding; INSERT INTO conn_imp_kosten (locatie, jaar, maand, divisie, kostensoort, bedrag, importrun ) VALUES (v_locatie, to_number(v_jaar), to_number(v_maand), v_divisie, v_kostensoort, fac.safe_to_number(replace(v_bedrag,',','.')), p_applrun ); end if; 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_errorhint); END; END LOOP; -- kijk in de bestaande tabel (b) of er records met dezelfde periode voorkomen als zojust geimporteerd (i). SELECT count(jaar) INTO v_count from conn_imp_kosten b WHERE importrun IS NULL AND EXISTS (SELECT locatie FROM conn_imp_kosten i WHERE i.jaar = b.jaar and i.maand = b.maand and i.importrun is not null); IF v_count > 0 THEN fac.imp_writelog (p_applname, p_applrun, 'W', 'Combinatie van maand en jaar al eerder geimporteerd.', ''); 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_errorhint); END; / CREATE OR REPLACE PROCEDURE conn_update_kosten (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS BEGIN -- kijk in de bestaande tabel (b) of er records met dezelfde periode voorkomen als zojust geimporteerd (i). DELETE conn_imp_kosten b WHERE importrun IS NULL AND EXISTS (SELECT locatie FROM conn_imp_kosten i WHERE i.jaar = b.jaar AND i.maand = b.maand AND i.importrun is not null); UPDATE conn_imp_kosten SET importrun = NULL WHERE importrun IS NOT NULL; END; / -- bijbehorende rapportage CREATE OR REPLACE VIEW conn_v_rap_locatie_kosten ( fclt_f_locatie, fclt_f_divisie, fclt_f_jaar, maand, huur, afschrijving, servicekosten ) AS SELECT locatie || (select ' - ' || alg_locatie_omschrijving from alg_v_aanweziglocatie where alg_locatie_code = locatie), UPPER(divisie) divisie, periode jaar, 0 maand, coalesce(huur,0) huur, coalesce(afschrijving,0) afschrijving, coalesce(servicekosten,0) servicekosten FROM conn_imp_budget b WHERE importrun IS NULL UNION ALL SELECT locatie || (select ' - ' || alg_locatie_omschrijving from alg_v_aanweziglocatie where alg_locatie_code = locatie), divisie, to_char(jaar) jaar, maand, SUM (huur) huur, SUM (afschrijving) afschrijving, SUM (servicekosten) servicekosten FROM (SELECT locatie, UPPER(divisie) divisie, jaar, maand, 0 huur, 0 afschrijving, bedrag servicekosten FROM conn_imp_kosten WHERE importrun IS NULL AND kostensoort = 'Fac.kosten' UNION ALL SELECT locatie, UPPER(divisie) divisie, jaar, maand, bedrag huur, 0 afschrijving, 0 servicekosten FROM conn_imp_kosten WHERE importrun IS NULL AND kostensoort = 'Huur') GROUP BY locatie, divisie, jaar, maand UNION ALL SELECT locatie || (select ' - ' || alg_locatie_omschrijving from alg_v_aanweziglocatie where alg_locatie_code = locatie), divisie, to_char(jaar) jaar, 99 maand, SUM (huur) huur, SUM (afschrijving) afschrijving, SUM (servicekosten) servicekosten FROM (SELECT locatie, UPPER(divisie) divisie, fac.safe_to_number (periode) jaar, 0 maand, coalesce(huur,0) huur, coalesce(afschrijving,0) afschrijving, coalesce(servicekosten,0) servicekosten FROM conn_imp_budget b WHERE importrun IS NULL UNION ALL SELECT locatie, UPPER(divisie) divisie, jaar, maand, 0 huur, 0 afschrijving, bedrag * (-1) servicekosten FROM conn_imp_kosten WHERE importrun IS NULL AND kostensoort = 'Fac.kosten' UNION ALL SELECT locatie, UPPER(divisie) divisie, jaar, maand, bedrag * (-1) huur, 0 afschrijving, 0 servicekosten FROM conn_imp_kosten WHERE importrun IS NULL AND kostensoort = 'Huur') GROUP BY locatie, divisie, jaar ORDER BY 1, 2, 3, 4; CREATE OR REPLACE PROCEDURE conn_import_xelion_contract ( 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_aanduiding VARCHAR2 (1000); v_field VARCHAR2 (100); v_fielddelimitor VARCHAR2 (1); v_errormsg VARCHAR2 (200); v_errorhint VARCHAR2 (200); v_count NUMBER; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER; -- De importvelden v_empty VARCHAR2 (100); v_xelion_nummer VARCHAR2 (10); v_locatie_code VARCHAR2 (10); v_locatie_plaats VARCHAR2 (100); v_status VARCHAR2 (100); v_verhuurder VARCHAR2 (100); v_huurder VARCHAR2 (100); v_huurder_short VARCHAR2 (100); v_ingangsdatum_c VARCHAR2 (20); v_einddatum_c VARCHAR2 (20); v_ingangsdatum DATE; v_einddatum DATE; v_optie_verlenging VARCHAR2 (20); v_auto_verlenging VARCHAR2 (20); v_opzegtermijn_c VARCHAR2 (20); v_opzegtermijn NUMBER; CURSOR c IS SELECT * FROM fac_imp_file WHERE fac_imp_file_applicatie = p_applname ORDER BY FAC_IMP_FILE_INDEX; BEGIN -- Init v_fielddelimitor := ';'; DELETE imp_log WHERE imp_log_applicatie = p_applname; DELETE conn_imp_xelion_contract; FOR rec IN c LOOP BEGIN v_errorhint := 'Inlezen regel'; v_newline := rec.fac_imp_file_line; v_aanduiding := substr(v_newline,100); v_errorhint := 'Inlezen velden' || v_aanduiding; v_errorhint := 'Inlezen veld xelion nummer' || v_aanduiding; fac.imp_getfield (v_newline, v_fielddelimitor, v_xelion_nummer); v_errorhint := 'Inlezen veld locatie code' || v_aanduiding; fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie_code); v_errorhint := 'Inlezen veld locatie plaats' || v_locatie_code; fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie_plaats); v_errorhint := 'Inlezen veld huurcontract/inhuur' || v_aanduiding; fac.imp_getfield (v_newline, v_fielddelimitor, v_empty); -- huurcontract fac.imp_getfield (v_newline, v_fielddelimitor, v_empty); -- inhuur v_errorhint := 'Inlezen veld status' || v_aanduiding; fac.imp_getfield (v_newline, v_fielddelimitor, v_status); v_errorhint := 'Inlezen veld verhuurder' || v_aanduiding; fac.imp_getfield (v_newline, v_fielddelimitor, v_verhuurder); v_errorhint := 'Inlezen veld huurder' || v_aanduiding; fac.imp_getfield (v_newline, v_fielddelimitor, v_huurder); v_errorhint := 'Inlezen veld ingangsdatum' || v_aanduiding; fac.imp_getfield (v_newline, v_fielddelimitor, v_ingangsdatum_c); v_errorhint := 'Inlezen veld einddatum' || v_aanduiding; fac.imp_getfield (v_newline, v_fielddelimitor, v_einddatum_c); v_errorhint := 'Inlezen veld optie verlenging' || v_aanduiding; fac.imp_getfield (v_newline, v_fielddelimitor, v_optie_verlenging); v_errorhint := 'Inlezen veld auto verlenging' || v_aanduiding; fac.imp_getfield (v_newline, v_fielddelimitor, v_auto_verlenging); v_errorhint := 'Inlezen veld opzegtermijn' || v_aanduiding; fac.imp_getfield (v_newline, v_fielddelimitor, v_opzegtermijn_c); IF v_status = 'Actief' THEN v_errorhint := 'Omzetting ingangsdatum' || v_aanduiding; v_ingangsdatum := to_date (v_ingangsdatum_c, 'dd-mm-yyyy'); v_errorhint := 'Omzetting einddatum' || v_aanduiding; v_einddatum := to_date (v_einddatum_c, 'dd-mm-yyyy'); v_errorhint := 'Omzetting opzegtermijn' || v_aanduiding; v_opzegtermijn := to_number (v_opzegtermijn_c); v_errorhint := 'Zoek huurder in usertabel' || v_huurder; SELECT fac_usrdata_omschr INTO v_huurder_short FROM fac_usrdata WHERE fac_usrdata_code = substr(v_huurder,1,40) AND fac_usrtab_key = (SELECT fac_usrtab_key FROM fac_usrtab WHERE fac_usrtab_naam = 'Xelion huurder'); v_errorhint := 'Toevoegen record: ' || v_aanduiding; INSERT INTO conn_imp_xelion_contract ( xelion_nummer, locatie_code, locatie_plaats, status, verhuurder, huurder, ingangsdatum, einddatum, optie_verlenging, auto_verlenging, opzegtermijn ) VALUES ( v_xelion_nummer, v_locatie_code, v_locatie_plaats, v_status, v_verhuurder, v_huurder_short, v_ingangsdatum, v_einddatum, v_optie_verlenging, v_auto_verlenging, v_opzegtermijn ); END IF; 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_errorhint); END; END LOOP; 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_errorhint); END; / CREATE OR REPLACE PROCEDURE conn_update_xelion_contract (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS CURSOR c IS SELECT MAX (verhuurder) verhuurder, COUNT (verhuurder) aantal_verhuurders, MIN (ingangsdatum) ingangsdatum, MAX (einddatum) einddatum, MAX (optie_verlenging) optie_verlenging, MAX (auto_verlenging) auto_verlenging, MAX (opzegtermijn) opzegtermijn, locatie_code FROM conn_imp_xelion_contract GROUP BY locatie_code; CURSOR c_verhuur IS SELECT huurder, verhuurder, ingangsdatum, einddatum, optie_verlenging, auto_verlenging, opzegtermijn, locatie_code FROM conn_imp_xelion_contract; v_errormsg VARCHAR2 (200); v_errorhint VARCHAR2 (200); v_count NUMBER; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER; v_cnt_contract_key NUMBER; v_cnt_contract_omschrijving VARCHAR2 (200); v_cnt_termijn_key NUMBER; BEGIN FOR rec IN c LOOP BEGIN v_errorhint := 'Inhuurcontract opzoeken bij locatie: ' || rec.locatie_code; SELECT c.cnt_contract_key, cnt_contract_omschrijving INTO v_cnt_contract_key, v_cnt_contract_omschrijving FROM cnt_contract c, alg_locatie l, (SELECT cnt_contract_key, cnt_alg_plaats_key alg_locatie_key, NULL alg_gebouw_key FROM cnt_contract_plaats cp WHERE cnt_alg_plaats_code = 'L' AND cnt_contract_plaats_verwijder IS NULL UNION ALL SELECT cnt_contract_key, alg_locatie_key, alg_gebouw_key FROM cnt_contract_plaats cp, alg_gebouw g WHERE cnt_alg_plaats_key = g.alg_gebouw_key AND cnt_alg_plaats_code = 'G' AND cnt_contract_plaats_verwijder IS NULL) cp WHERE c.cnt_contract_key = cp.cnt_contract_key AND cp.alg_locatie_key = l.alg_locatie_key AND c.ins_discipline_key = 1565 -- inhuur AND l.alg_locatie_code = rec.locatie_code AND SYSDATE < cnt_contract_looptijd_tot; fac.imp_writelog (p_applname, p_applrun, 'I', 'Inhuurcontract gevonden', 'locatie: ' || rec.locatie_code || ' contract_omschrijving: ' || v_cnt_contract_omschrijving); v_errorhint := 'Inhuurcontract opzoeken rappeltermijn bij locatie: ' || rec.locatie_code || ' termijn:' || rec.opzegtermijn; SELECT MAX(cnt_termijn_key) INTO v_cnt_termijn_key FROM ( SELECT cnt_termijn_key FROM cnt_termijn WHERE cnt_termijn_type = 'M' AND cnt_termijn_aantal = COALESCE(rec.opzegtermijn, 0)); UPDATE cnt_contract SET cnt_contract_looptijd_van = rec.ingangsdatum, cnt_contract_looptijd_tot = rec.einddatum, cnt_contract_opzegtermijn = v_cnt_termijn_key --, -- cnt_contract_nummer = 'A-' || cnt_contract_nummer WHERE cnt_contract_key = v_cnt_contract_key; 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_errorhint); END; END LOOP; FOR rec IN c_verhuur LOOP BEGIN v_errorhint := 'Verhuurcontract opzoeken bij locatie: ' || rec.locatie_code || ' en huurder: ' || rec.huurder; SELECT c.cnt_contract_key, cnt_contract_omschrijving INTO v_cnt_contract_key, v_cnt_contract_omschrijving FROM cnt_contract c, prs_bedrijf b, alg_locatie l, (SELECT DISTINCT cnt_contract_key, alg_locatie_key FROM (SELECT cnt_contract_key, alg_locatie_key FROM cnt_contract_onrgoed co, alg_ruimte r, alg_verdieping v, alg_gebouw g WHERE alg_onrgoed_niveau = 'R' AND alg_onrgoed_key = r.alg_ruimte_key AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key UNION ALL SELECT cnt_contract_key, alg_locatie_key FROM cnt_contract_onrgoed co, alg_terreinsector t WHERE alg_onrgoed_key = t.alg_terreinsector_key AND alg_onrgoed_niveau = 'T')) cp WHERE c.cnt_contract_key = cp.cnt_contract_key AND cp.alg_locatie_key = l.alg_locatie_key AND c.ins_discipline_key = 1564 -- verhuur AND l.alg_locatie_code = rec.locatie_code AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key AND b.prs_bedrijf_naam LIKE rec.huurder || '%' AND SYSDATE < cnt_contract_looptijd_tot; fac.imp_writelog (p_applname, p_applrun, 'I', 'Verhuurcontract gevonden', 'locatie: ' || rec.locatie_code || ' contract_omschrijving: ' || v_cnt_contract_omschrijving); UPDATE cnt_contract SET cnt_contract_looptijd_van = rec.ingangsdatum, cnt_contract_looptijd_tot = rec.einddatum, cnt_contract_opzegtermijn = v_cnt_termijn_key, cnt_contract_nummer = 'A-' || cnt_contract_nummer WHERE cnt_contract_key = v_cnt_contract_key; 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_errorhint); END; END LOOP; 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_errorhint); END; / --CONN#20501 CREATE OR REPLACE VIEW conn_v_opplochuur ( fclt_f_locatie, fclt_f_huurder, oppervlakte ) AS SELECT locatie, huurder, SUM (oppervlakte) oppervlakte FROM (SELECT b.prs_bedrijf_naam huurder, l.alg_locatie_omschrijving locatie, ak.alg_onrgoedkenmerk_waarde oppervlakte FROM cnt_contract c, cnt_contract_onrgoed co, alg_ruimte r, alg_onrgoedkenmerk ak, alg_verdieping v, alg_gebouw g, alg_locatie l, prs_bedrijf b WHERE cnt_contract_verwijder IS NULL AND ins_discipline_key = 1564 -- huurcontract AND co.cnt_contract_key = c.cnt_contract_key AND c.cnt_contract_looptijd_van <= SYSDATE AND c.cnt_contract_looptijd_tot >= SYSDATE AND co.alg_onrgoed_key = r.alg_ruimte_key AND ak.alg_onrgoed_key = r.alg_ruimte_key AND ak.alg_kenmerk_key = 106 AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = l.alg_locatie_key AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key UNION ALL SELECT b.prs_bedrijf_naam huurder, l.alg_locatie_omschrijving locatie, ak.alg_onrgoedkenmerk_waarde oppervlakte FROM cnt_contract c, cnt_contract_onrgoed co, alg_terreinsector t, alg_onrgoedkenmerk ak, alg_locatie l, prs_bedrijf b WHERE cnt_contract_verwijder IS NULL AND ins_discipline_key = 1564 -- huurcontract AND co.cnt_contract_key = c.cnt_contract_key AND c.cnt_contract_looptijd_van <= SYSDATE AND c.cnt_contract_looptijd_tot >= SYSDATE AND co.alg_onrgoed_key = t.alg_terreinsector_key AND ak.alg_onrgoed_key = t.alg_terreinsector_key AND ak.alg_kenmerk_key = 107 -- huuroppervlakte AND t.alg_locatie_key = l.alg_locatie_key AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key) GROUP BY locatie, huurder ORDER BY 1; --CONN#20077 CREATE OR REPLACE VIEW conn_v_pgb_uitnutting ( fclt_f_Catalogus, fclt_f_Besteller, Bestellimiet, Besteld_tav_pgb ) AS SELECT bd.ins_discipline_omschrijving Catalogus, pf.prs_perslid_naam_full Besteller, fp.fac_profiel_limiet Limiet, SUM ( (bb.bes_bestelling_item_aantal * bb.bes_bestelling_item_prijs) ) totaal FROM bes_discipline bd, bes_disc_params bdp, bes_srtgroep bsg, bes_srtdeel bsd, bes_bestelling_item bb, bes_bestelling b, prs_perslid p, prs_v_perslid_fullnames pf, fac_profiel fp WHERE bdp.bes_ins_discipline_key = bd.ins_discipline_key AND bsg.ins_discipline_key = bd.ins_discipline_key AND bsd.bes_srtgroep_key = bsg.bes_srtgroep_key AND b.bes_bestelling_key = bb.bes_bestelling_key AND bb.bes_srtdeel_key = bsd.bes_srtdeel_key AND bd.ins_discipline_verwijder IS NULL AND bdp.bes_disc_params_pgb = 1 -- PGB moet aan staan AND p.prs_perslid_key = b.prs_perslid_key AND TO_CHAR (bes_bestelling_datum, 'YYYY') = TO_CHAR (SYSDATE, 'YYYY') AND fp.fac_profiel_key = p.fac_profiel_key AND b.bes_bestelling_status IN (3, 5, 6, 7) -- Gefiateerd, Besteld, Geleverd, Verwerkt AND pf.prs_perslid_key = p.prs_perslid_key GROUP BY bd.ins_discipline_omschrijving, pf.prs_perslid_naam_full, fp.fac_profiel_limiet ORDER BY 1, 2; --CONN#20985 /* Formatted on 8-7-2011 11:22:44 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW conn_v_rap_bes_artikel_expimp ( fclt_f_catalogusnaam, artikelbedrijf, catalogusaanmaak, artikelnummer, artikelgroepomschrijving, artikelomschrijving, artikelprijs, artikeleenheid, artikelimage, artikelveelvoud, artikelbtw, artikelvervaldatum, artikelinkoopprijs, artikelminimum ) AS SELECT td.ins_discipline_omschrijving, b.prs_bedrijf_naam, TO_CHAR (td.ins_discipline_aanmaak, 'yyyymmdd'), sd.bes_srtdeel_nr, sg.bes_srtgroep_omschrijving, sd.bes_srtdeel_omschrijving, TO_CHAR (bes.getsrtdeelprijs(sd.bes_srtdeel_key, NULL)), sd.bes_srtdeel_eenheid, sd.bes_srtdeel_image, TO_CHAR (sd.bes_srtdeel_veelvoud), TO_CHAR (COALESCE (sd.bes_srtdeel_btw, 0)), TO_CHAR ( COALESCE (sd.bes_srtdeel_vervaldatum, TO_DATE ('31-12-2099', 'dd-mm-yyyy')), 'yyyymmdd' ), TO_CHAR (bes.getsrtdeelinkprijs(sd.bes_srtdeel_key, NULL)), NULL FROM ins_tab_discipline td, bes_srtgroep sg, bes_srtdeel sd, prs_bedrijf b WHERE td.ins_discipline_module = 'BES' AND td.ins_discipline_verwijder IS NULL AND td.ins_discipline_key = sg.ins_discipline_key AND sg.bes_srtgroep_verwijder IS NULL AND sg.bes_srtgroep_key = sd.bes_srtgroep_key AND sd.bes_srtdeel_verwijder IS NULL AND sd.prs_bedrijf_key = b.prs_bedrijf_key; /* Formatted on 3-2-2012 9:48:48 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW conn_v_rap_inspectieobj_expimp ( fclt_f_locatiecode, ruimte, fclt_f_discipline, fclt_f_groep, fclt_f_objectsoort, object_id, fclt_f_merk, fclt_f_type, fclt_f_hoogte_cm, fclt_f_belasting_kg, fclt_f_bereik_nm_bar, fclt_f_voltage, fclt_f_apkplicht, fclt_f_keuring_categorie, fclt_f_contract_nr, -- Per CONN#22359! fclt_f_leverancier, fclt_f_soortcontrole, periode, controle_gepland, controle_laatste, controledatum, controleopmerking, fclt_f_afgekeurd ) AS SELECT x.alg_locatie_code, COALESCE (z1.alg_ruimte_nr, z2.alg_ruimte_nr), x.ins_discipline_omschrijving, x.ins_srtgroep_omschrijving, x.ins_srtdeel_omschrijving, x.ins_deel_omschrijving, k1.merk, k2.TYPE, k3.hoogte, k4.belasting, k5.bereik, k6.voltage, k7.apkplicht, k8.categorie, COALESCE (lev_onderhd.cnt_contract_nummer_intern, lev_onderst.cnt_contract_nummer_intern) contract_nr, COALESCE (lev_onderhd.prs_bedrijf_naam, lev_onderst.prs_bedrijf_naam) leverancier, csd.ins_srtcontrole_omschrijving, TO_CHAR (csd.ins_srtcontrole_periode), DECODE ( y.ins_deelsrtcontrole_datum, NULL, TO_CHAR (x.ins_deel_aanmaak + csd.ins_srtcontrole_periode, 'dd-mm-yyyy'), TO_CHAR ( y.ins_deelsrtcontrole_datum + csd.ins_srtcontrole_periode, 'dd-mm-yyyy' ) ), DECODE (y.ins_deelsrtcontrole_datum, NULL, TO_CHAR (x.ins_deel_aanmaak, 'dd-mm-yyyy'), TO_CHAR (y.ins_deelsrtcontrole_datum, 'dd-mm-yyyy')), NULL controledatum, NULL controlopmerking, k9.afgekeurd FROM (SELECT scs.ins_srtinstallatie_key ins_srtdeel_key, scs.ins_srtcontrole_key, scs.ins_srtcontrole_omschrijving, scs.ins_srtcontrole_periode FROM ins_srtcontrole scs WHERE scs.ins_srtcontrole_niveau = 'S' UNION ALL SELECT sd.ins_srtdeel_key, scg.ins_srtcontrole_key, scg.ins_srtcontrole_omschrijving, scg.ins_srtcontrole_periode FROM ins_srtcontrole scg, ins_srtdeel sd WHERE scg.ins_srtcontrole_niveau = 'G' AND scg.ins_srtinstallatie_key = sd.ins_srtgroep_key UNION ALL SELECT sd.ins_srtdeel_key, scd.ins_srtcontrole_key, scd.ins_srtcontrole_omschrijving, scd.ins_srtcontrole_periode FROM ins_srtcontrole scd, ins_srtgroep sg, ins_srtdeel sd WHERE scd.ins_srtcontrole_niveau = 'D' AND scd.ins_srtinstallatie_key = sg.ins_discipline_key AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) csd LEFT JOIN (SELECT d.ins_deel_key, d.ins_deel_aanmaak, d.ins_deel_omschrijving, d.ins_alg_ruimte_key, d.ins_alg_ruimte_type, sd.ins_srtdeel_key, sd.ins_srtdeel_code, sd.ins_srtdeel_omschrijving, sg.ins_srtgroep_omschrijving, td.ins_discipline_omschrijving, l.alg_locatie_key, l.alg_locatie_code FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg, ins_tab_discipline td, alg_locatie l WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtgroep_key = sg.ins_srtgroep_key AND sg.ins_discipline_key = td.ins_discipline_key AND d.ins_alg_locatie_key = l.alg_locatie_key(+)) x ON csd.ins_srtdeel_key = x.ins_srtdeel_key LEFT JOIN (SELECT DISTINCT co.cnt_ins_deel_key, c.cnt_contract_nummer_intern, b.prs_bedrijf_naam FROM cnt_contract_object co, cnt_contract c, ins_tab_discipline cd, prs_bedrijf b WHERE co.cnt_contract_object_verwijder IS NULL AND co.cnt_ins_deel_key IS NOT NULL AND co.cnt_contract_key = c.cnt_contract_key AND c.cnt_contract_looptijd_tot >= TRUNC ( ADD_MONTHS ( SYSDATE, -12 ), 'YYYY' ) AND c.ins_discipline_key = cd.ins_discipline_key AND cd.ins_discipline_verwijder IS NULL AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) lev_onderhd ON x.ins_deel_key = lev_onderhd.cnt_ins_deel_key LEFT JOIN (SELECT DISTINCT co.cnt_ins_srtdeel_key, g.alg_locatie_key, c.cnt_contract_nummer_intern, b.prs_bedrijf_naam FROM cnt_contract_object co, cnt_contract c, ins_tab_discipline cd, cnt_contract_plaats cp, alg_gebouw g, prs_bedrijf b WHERE co.cnt_contract_object_verwijder IS NULL AND co.cnt_ins_srtdeel_key IS NOT NULL AND co.cnt_contract_key = c.cnt_contract_key AND c.cnt_contract_looptijd_tot >= TRUNC ( ADD_MONTHS ( SYSDATE, -12 ), 'YYYY' ) AND c.ins_discipline_key = cd.ins_discipline_key AND cd.ins_discipline_verwijder IS NULL AND c.cnt_contract_key = cp.cnt_contract_key AND ( (cp.cnt_alg_plaats_code = 'G' AND cp.cnt_alg_plaats_key = g.alg_gebouw_key) OR (cp.cnt_alg_plaats_code = 'L' AND cp.cnt_alg_plaats_key = g.alg_locatie_key)) AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) lev_onderst ON x.ins_srtdeel_key = lev_onderst.cnt_ins_srtdeel_key AND x.alg_locatie_key = lev_onderst.alg_locatie_key LEFT JOIN (SELECT ins_deel_key, ins_kenmerkdeel_waarde merk FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = 42) k1 ON x.ins_deel_key = k1.ins_deel_key LEFT JOIN (SELECT ins_deel_key, ins_kenmerkdeel_waarde TYPE FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = 41) k2 ON x.ins_deel_key = k2.ins_deel_key LEFT JOIN (SELECT ins_deel_key, ins_kenmerkdeel_waarde hoogte FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = 1461) k3 ON x.ins_deel_key = k3.ins_deel_key LEFT JOIN (SELECT ins_deel_key, ins_kenmerkdeel_waarde belasting FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = 1462) k4 ON x.ins_deel_key = k4.ins_deel_key LEFT JOIN (SELECT ins_deel_key, ins_kenmerkdeel_waarde bereik FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = 1463) k5 ON x.ins_deel_key = k5.ins_deel_key LEFT JOIN (SELECT ins_deel_key, ins_kenmerkdeel_waarde voltage FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = 1464) k6 ON x.ins_deel_key = k6.ins_deel_key LEFT JOIN (SELECT ins_deel_key, DECODE (ins_kenmerkdeel_waarde, '129', 'JA', 'NEE') apkplicht FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = 1465) k7 ON x.ins_deel_key = k7.ins_deel_key LEFT JOIN (SELECT ins_deel_key, ins_kenmerkdeel_waarde categorie FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = 1467) k8 ON x.ins_deel_key = k8.ins_deel_key LEFT JOIN (SELECT ins_deel_key, DECODE (ins_kenmerkdeel_waarde, '129', 'JA', 'NEE') afgekeurd FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = 1466) k9 ON x.ins_deel_key = k9.ins_deel_key LEFT JOIN (SELECT dsc.ins_deel_key, dsc.ins_srtcontrole_key, dsc.ins_deelsrtcontrole_datum, dsc.ins_deelsrtcontrole_opmerking FROM ins_deelsrtcontrole dsc WHERE dsc.ins_deelsrtcontrole_datum = (SELECT MAX (ins_deelsrtcontrole_datum) FROM ins_deelsrtcontrole WHERE ins_deel_key = dsc.ins_deel_key AND ins_srtcontrole_key = dsc.ins_srtcontrole_key)) y ON x.ins_deel_key = y.ins_deel_key AND csd.ins_srtcontrole_key = y.ins_srtcontrole_key LEFT JOIN (SELECT r.alg_ruimte_key, 'R' alg_ruimte_type, r.alg_ruimte_nr FROM alg_ruimte r WHERE r.alg_ruimte_key = r.alg_ruimte_key) z1 ON x.ins_alg_ruimte_key = z1.alg_ruimte_key AND x.ins_alg_ruimte_type = z1.alg_ruimte_type LEFT JOIN (SELECT wp.prs_werkplek_key, 'W' alg_ruimte_type, r.alg_ruimte_nr FROM prs_werkplek wp, alg_ruimte r WHERE wp.prs_alg_ruimte_key = r.alg_ruimte_key) z2 ON x.ins_alg_ruimte_key = z2.prs_werkplek_key AND x.ins_alg_ruimte_type = z2.alg_ruimte_type; /* Formatted on 1-2-2012 14:45:54 (QP5 v5.115.810.9015) */ CREATE OR REPLACE PROCEDURE conn_import_inspectieobj ( p_applname IN VARCHAR2, p_applrun IN VARCHAR2, p_filedir IN VARCHAR2, p_filename IN VARCHAR2 ) IS c_delim VARCHAR2 (1) := ';'; v_newline VARCHAR2 (1000); -- Input line v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER; v_count_tot NUMBER (10); v_count_import NUMBER (10); v_ongeldig NUMBER (1); v_aanduiding VARCHAR (200); -- De importvelden: v_alg_locatie_code VARCHAR2 (255); -- C10 v_alg_ruimte_nr VARCHAR2 (255); -- C10 v_ins_discipline_omschrijving VARCHAR2 (255); -- C30 v_ins_srtgroep_omschrijving VARCHAR2 (255); -- C60 v_ins_srtdeel_omschrijving VARCHAR2 (255); -- C100 v_ins_deel_omschrijving VARCHAR2 (255); -- C60 v_merk VARCHAR2 (255); -- C60 v_type VARCHAR2 (255); -- C60 v_hoogte VARCHAR2 (255); -- C60 v_belasting VARCHAR2 (255); -- C60 v_bereik VARCHAR2 (255); -- C60 v_voltage VARCHAR2 (255); -- C60 v_apkplicht VARCHAR2 (255); -- C60 v_categorie VARCHAR2 (255); -- C60 v_cnt_contract_nummer_intern VARCHAR2 (255); -- C30 v_prs_bedrijf_naam VARCHAR2 (255); -- C60 v_ins_srtcontrole_oms VARCHAR2 (255); -- C60 x_periode VARCHAR2 (255); -- N4 x_controle_gepland VARCHAR2 (255); -- DATE x_controle_laatste VARCHAR2 (255); -- DATE v_ins_controle_datum VARCHAR2 (255); -- DATE v_ins_controle_opm VARCHAR2 (1024); -- C500 v_afgekeurd VARCHAR2 (255); -- C60 -- Overig: v_ins_controle_datum_d DATE; -- DATE CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_imp_file_applicatie = p_applname ORDER BY fac_imp_file_index; BEGIN -- Eerst opruiming DELETE FROM imp_log WHERE imp_log_applicatie = p_applname; DELETE FROM conn_imp_inspectieobj; COMMIT; v_count_tot := 0; v_count_import := 0; header_is_valid := 0; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_errormsg := 'Fout bij opvragen importregel'; v_aanduiding := ''; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_delim, v_alg_locatie_code); fac.imp_getfield (v_newline, c_delim, v_alg_ruimte_nr); fac.imp_getfield (v_newline, c_delim, v_ins_discipline_omschrijving); fac.imp_getfield (v_newline, c_delim, v_ins_srtgroep_omschrijving); fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_omschrijving); fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving); fac.imp_getfield (v_newline, c_delim, v_merk); fac.imp_getfield (v_newline, c_delim, v_type); fac.imp_getfield (v_newline, c_delim, v_hoogte); fac.imp_getfield (v_newline, c_delim, v_belasting); fac.imp_getfield (v_newline, c_delim, v_bereik); fac.imp_getfield (v_newline, c_delim, v_voltage); fac.imp_getfield (v_newline, c_delim, v_apkplicht); fac.imp_getfield (v_newline, c_delim, v_categorie); fac.imp_getfield (v_newline, c_delim, v_cnt_contract_nummer_intern); fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_naam); fac.imp_getfield (v_newline, c_delim, v_ins_srtcontrole_oms); fac.imp_getfield (v_newline, c_delim, x_periode); fac.imp_getfield (v_newline, c_delim, x_controle_gepland); fac.imp_getfield (v_newline, c_delim, x_controle_laatste); fac.imp_getfield (v_newline, c_delim, v_ins_controle_datum); fac.imp_getfield (v_newline, c_delim, v_ins_controle_opm); fac.imp_getfield (v_newline, c_delim, v_afgekeurd); v_aanduiding := '[' || v_ins_discipline_omschrijving || '|' || v_ins_srtgroep_omschrijving || '|' || v_ins_srtdeel_omschrijving || '|' || v_ins_deel_omschrijving || '] '; -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen! -- Ik negeer alles totdat ik een geldige header ben gepasseerd. IF (header_is_valid = 0) THEN IF UPPER (v_alg_locatie_code) = 'LOCATIECODE' AND UPPER (v_alg_ruimte_nr) = 'RUIMTE' AND UPPER (v_ins_discipline_omschrijving) = 'DISCIPLINE' AND UPPER (v_ins_srtgroep_omschrijving) = 'GROEP' AND UPPER (v_ins_srtdeel_omschrijving) = 'OBJECTSOORT' AND UPPER (v_ins_deel_omschrijving) = 'OBJECT_ID' AND UPPER (v_merk) = 'MERK' AND UPPER (v_type) = 'TYPE' AND UPPER (v_hoogte) = 'HOOGTE_CM' AND UPPER (v_belasting) = 'BELASTING_KG' AND UPPER (v_bereik) = 'BEREIK_NM_BAR' AND UPPER (v_voltage) = 'VOLTAGE' AND UPPER (v_apkplicht) = 'APKPLICHT' AND UPPER (v_categorie) = 'KEURING_CATEGORIE' AND UPPER (v_prs_bedrijf_naam) = 'LEVERANCIER' AND UPPER (v_cnt_contract_nummer_intern) = 'CONTRACT_NR' -- Per CONN#22359! AND UPPER (v_ins_srtcontrole_oms) = 'SOORTCONTROLE' AND UPPER (x_periode) = 'PERIODE' AND UPPER (x_controle_gepland) = 'CONTROLE_GEPLAND' AND UPPER (x_controle_laatste) = 'CONTROLE_LAATSTE' AND UPPER (v_ins_controle_datum) = 'CONTROLEDATUM' AND UPPER (v_ins_controle_opm) = 'CONTROLEOPMERKING' AND UPPER (v_afgekeurd) = 'AFGEKEURD' THEN header_is_valid := 1; END IF; ELSE v_count_tot := v_count_tot + 1; -- Controleer alle veldwaarden v_errormsg := 'Locatiecode ongeldig'; v_alg_locatie_code := TRIM (v_alg_locatie_code); IF LENGTH (v_alg_locatie_code) > 10 THEN v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 10); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Locatiecode wordt afgebroken tot [' || v_alg_locatie_code || ']' ); END IF; -- v_errormsg := 'Ruimte ongeldig'; v_alg_ruimte_nr := TRIM (v_alg_ruimte_nr); IF LENGTH (v_alg_ruimte_nr) > 10 THEN v_alg_ruimte_nr := SUBSTR (v_alg_ruimte_nr, 1, 10); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Ruimte wordt afgebroken tot [' || v_alg_ruimte_nr || ']' ); END IF; -- v_errormsg := 'Disciplineomschrijving ongeldig'; v_ins_discipline_omschrijving := TRIM (v_ins_discipline_omschrijving); IF LENGTH (v_ins_discipline_omschrijving) > 30 THEN v_ins_discipline_omschrijving := SUBSTR (TRIM (v_ins_discipline_omschrijving), 1, 30); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Disciplineomschrijving wordt afgebroken tot [' || v_ins_discipline_omschrijving || ']' ); END IF; -- v_errormsg := 'Groepsoortomschrijving ongeldig'; v_ins_srtgroep_omschrijving := TRIM (v_ins_srtgroep_omschrijving); IF LENGTH (v_ins_srtgroep_omschrijving) > 60 THEN v_ins_srtgroep_omschrijving := SUBSTR (TRIM (v_ins_srtgroep_omschrijving), 1, 60); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Groepsoortomschrijving wordt afgebroken tot [' || v_ins_srtgroep_omschrijving || ']' ); END IF; -- VERVALLEN 'Objectsoortcode' -- v_errormsg := 'Objectsoortomschrijving ongeldig'; v_ins_srtdeel_omschrijving := TRIM (v_ins_srtdeel_omschrijving); IF LENGTH (v_ins_srtdeel_omschrijving) > 100 THEN v_ins_srtdeel_omschrijving := SUBSTR (TRIM (v_ins_srtdeel_omschrijving), 1, 100); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Objectsoortomschrijving wordt afgebroken tot [' || v_ins_srtdeel_omschrijving || ']' ); END IF; -- v_errormsg := 'Objectomschrijving ongeldig'; v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving); IF LENGTH (v_ins_deel_omschrijving) > 60 THEN v_ins_deel_omschrijving := SUBSTR (TRIM (v_ins_deel_omschrijving), 1, 60); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Objectomschrijving wordt afgebroken tot [' || v_ins_deel_omschrijving || ']' ); END IF; -- v_errormsg := 'Merk ongeldig'; v_merk := TRIM (v_merk); IF LENGTH (v_merk) > 60 THEN v_merk := SUBSTR (v_merk, 1, 60); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Merk wordt afgebroken tot [' || v_merk || ']' ); END IF; -- v_errormsg := 'Type ongeldig'; v_type := TRIM (v_type); IF LENGTH (v_type) > 60 THEN v_type := SUBSTR (v_type, 1, 60); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Type wordt afgebroken tot [' || v_type || ']' ); END IF; -- v_errormsg := 'Hoogte ongeldig'; v_hoogte := TRIM (v_hoogte); IF LENGTH (v_hoogte) > 60 THEN v_hoogte := SUBSTR (v_hoogte, 1, 60); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Hoogte wordt afgebroken tot [' || v_hoogte || ']' ); END IF; -- v_errormsg := 'Belasting ongeldig'; v_belasting := TRIM (v_belasting); IF LENGTH (v_belasting) > 60 THEN v_belasting := SUBSTR (v_belasting, 1, 60); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Belasting wordt afgebroken tot [' || v_belasting || ']' ); END IF; -- v_errormsg := 'Bereik ongeldig'; v_bereik := TRIM (v_bereik); IF LENGTH (v_bereik) > 60 THEN v_bereik := SUBSTR (v_bereik, 1, 60); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Bereik wordt afgebroken tot [' || v_bereik || ']' ); END IF; -- v_errormsg := 'Voltage ongeldig'; v_voltage := TRIM (v_voltage); IF LENGTH (v_voltage) > 60 THEN v_voltage := SUBSTR (v_voltage, 1, 60); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Voltage wordt afgebroken tot [' || v_voltage || ']' ); END IF; -- v_errormsg := 'APK-plicht ongeldig'; v_apkplicht := TRIM (v_apkplicht); IF LENGTH (v_apkplicht) > 60 THEN v_apkplicht := SUBSTR (v_apkplicht, 1, 60); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'APK-plicht wordt afgebroken tot [' || v_apkplicht || ']' ); END IF; -- v_errormsg := 'Categorie ongeldig'; v_categorie := TRIM (v_categorie); IF LENGTH (v_categorie) > 60 THEN v_categorie := SUBSTR (v_categorie, 1, 60); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Categorie wordt afgebroken tot [' || v_categorie || ']' ); END IF; -- v_errormsg := 'Contractnummer ongeldig'; v_cnt_contract_nummer_intern := TRIM (v_cnt_contract_nummer_intern); IF LENGTH (v_cnt_contract_nummer_intern) > 30 THEN v_cnt_contract_nummer_intern := SUBSTR (v_cnt_contract_nummer_intern, 1, 30); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Contractnummer wordt afgebroken tot [' || v_cnt_contract_nummer_intern || ']' ); END IF; -- v_errormsg := 'Leverancier ongeldig'; v_prs_bedrijf_naam := TRIM (v_prs_bedrijf_naam); IF LENGTH (v_prs_bedrijf_naam) > 60 THEN v_prs_bedrijf_naam := SUBSTR (v_prs_bedrijf_naam, 1, 60); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Leverancier wordt afgebroken tot [' || v_prs_bedrijf_naam || ']' ); END IF; -- v_errormsg := 'Soort controle ongeldig'; v_ins_srtcontrole_oms := TRIM (v_ins_srtcontrole_oms); IF LENGTH (v_ins_srtcontrole_oms) > 60 THEN v_ins_srtcontrole_oms := SUBSTR (v_ins_srtcontrole_oms, 1, 60); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Soort controle wordt afgebroken tot [' || v_ins_srtcontrole_oms || ']' ); END IF; -- Skip 'Periode' -- Skip 'Controle gepland' -- Skip 'Controle laatste' -- v_errormsg := 'Controledatum ongeldig'; v_ins_controle_datum := TRIM (v_ins_controle_datum); v_ins_controle_datum_d := NULL; IF (v_ins_controle_datum IS NOT NULL) THEN IF (fac.safe_to_date (v_ins_controle_datum, 'dd-mm-yyyy') IS NULL) THEN fac.imp_writelog (p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Controledatum wordt genegeerd'); ELSE v_ins_controle_datum_d := fac.safe_to_date (v_ins_controle_datum, 'dd-mm-yyyy'); END IF; END IF; -- v_errormsg := 'Controleopmerking ongeldig'; v_ins_controle_opm := TRIM (v_ins_controle_opm); IF LENGTH (v_ins_controle_opm) > 500 THEN v_ins_controle_opm := SUBSTR (v_ins_controle_opm, 1, 500); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Controleopmerking wordt afgekapt op 500 posities' ); END IF; -- v_errormsg := 'Afgekeurd ongeldig'; v_afgekeurd := TRIM (v_afgekeurd); IF LENGTH (v_afgekeurd) > 60 THEN v_afgekeurd := SUBSTR (v_afgekeurd, 1, 60); fac.imp_writelog ( p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, 'Afgekeurd wordt afgebroken tot [' || v_afgekeurd || ']' ); END IF; -- Insert geformatteerde import record IF v_ongeldig = 0 THEN BEGIN v_errormsg := 'Fout bij wegschrijven importregel'; INSERT INTO conn_imp_inspectieobj ( alg_locatie_code, alg_ruimte_nr, ins_discipline_omschrijving, ins_srtgroep_omschrijving, --ins_srtdeel_code, -- VERVALLEN ins_srtdeel_omschrijving, ins_deel_omschrijving, merk, TYPE, hoogte, belasting, bereik, voltage, apkplicht, categorie, cnt_contract_nummer_intern, prs_bedrijf_naam, ins_srtcontrole_omschrijving, ins_deelsrtcontrole_datum, ins_deelsrtcontrole_opmerking, afgekeurd ) VALUES (v_alg_locatie_code, v_alg_ruimte_nr, v_ins_discipline_omschrijving, v_ins_srtgroep_omschrijving, --v_ins_srtdeel_code, -- VERVALLEN v_ins_srtdeel_omschrijving, v_ins_deel_omschrijving, v_merk, v_type, v_hoogte, v_belasting, v_bereik, v_voltage, v_apkplicht, v_categorie, v_cnt_contract_nummer_intern, v_prs_bedrijf_naam, v_ins_srtcontrole_oms, v_ins_controle_datum_d, v_ins_controle_opm, v_afgekeurd); COMMIT; v_count_import := v_count_import + 1; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END IF; END IF; END; END LOOP; IF (header_is_valid = 0) THEN fac.imp_writelog (p_applname, p_applrun, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!'); ELSE fac.imp_writelog ( p_applname, p_applrun, 'S', 'Inspectieobjecten/aantal ingelezen importregels: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_applname, p_applrun, 'S', 'Inspectieobjecten/aantal ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '' ); END IF; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_applname, p_applrun, 'E', v_aanduiding || v_errormsg, 'Inleesproces inspectieobjecten afgebroken!'); END conn_import_inspectieobj; / /* Formatted on 3-2-2012 11:18:55 (QP5 v5.115.810.9015) */ CREATE OR REPLACE PROCEDURE conn_update_inspectieobj ( p_applname IN VARCHAR2, p_applrun IN VARCHAR2 ) AS v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); -- SUBPROC PROCEDURE add_insdiscipline (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS CURSOR c1 IS SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper, MAX (ins_discipline_omschrijving) ins_discipline_omschrijving FROM conn_imp_inspectieobj GROUP BY UPPER (ins_discipline_omschrijving); v_errormsg VARCHAR2 (1024); v_discipline_key NUMBER (10); ccount NUMBER (10); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count_tot NUMBER (10); v_count_update NUMBER (10); BEGIN v_count_tot := 0; v_count_update := 0; FOR rec IN c1 LOOP BEGIN v_count_tot := v_count_tot + 1; v_errormsg := 'Fout bij toevoegen INS-discipline [' || rec.ins_discipline_omschrijving || ']'; SELECT COUNT ( * ) INTO ccount FROM ins_tab_discipline WHERE ins_discipline_verwijder IS NULL AND ins_discipline_module = 'INS' AND UPPER (TRIM (ins_discipline_omschrijving)) = UPPER (TRIM (rec.ins_discipline_omschrijving)); IF ccount = 0 THEN INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_omschrijving, ins_discipline_min_level, ins_discipline_kpnverplicht) VALUES ('INS', rec.ins_discipline_omschrijving, 1, 0) RETURNING ins_discipline_key INTO v_discipline_key; INSERT INTO ins_disc_params ( ins_discipline_key, ins_disc_params_type ) VALUES (v_discipline_key, 0); COMMIT; v_count_update := v_count_update + 1; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_applname, p_applrun, 'W', v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog ( p_applname, p_applrun, 'S', 'INS-Disciplines/aantal ingelezen: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_applname, p_applrun, 'S', 'INS-Disciplines/aantal toegevoegd: ' || TO_CHAR (v_count_update), '' ); COMMIT; END; -- SUBPROC PROCEDURE add_srtgroep (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS CURSOR c1 IS SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper, UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper, MAX (ins_discipline_omschrijving) ins_discipline_omschrijving, MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving FROM conn_imp_inspectieobj GROUP BY UPPER (ins_discipline_omschrijving), UPPER (ins_srtgroep_omschrijving); v_errormsg VARCHAR2 (1024); v_discipline_key NUMBER (10); ccount NUMBER (10); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count_tot NUMBER (10); v_count_update NUMBER (10); BEGIN v_count_tot := 0; v_count_update := 0; FOR rec IN c1 LOOP BEGIN v_count_tot := v_count_tot + 1; v_errormsg := 'Fout bij bepalen INS-discipline [' || rec.ins_discipline_omschrijving || ']'; SELECT ins_discipline_key INTO v_discipline_key FROM ins_tab_discipline WHERE ins_discipline_verwijder IS NULL AND ins_discipline_module = 'INS' AND UPPER (TRIM (ins_discipline_omschrijving)) = UPPER (TRIM (rec.ins_discipline_omschrijving)); v_errormsg := 'Fout bij toevoegen INS-groepsoort [' || rec.ins_srtgroep_omschrijving || ']'; SELECT COUNT ( * ) INTO ccount FROM ins_srtgroep WHERE ins_srtgroep_verwijder IS NULL AND ins_discipline_key = v_discipline_key AND UPPER (TRIM (ins_srtgroep_omschrijving)) = UPPER (TRIM (rec.ins_srtgroep_omschrijving)); IF ccount = 0 THEN INSERT INTO ins_srtgroep ( ins_discipline_key, ins_srtgroep_module, ins_srtgroep_omschrijving ) VALUES ( v_discipline_key, 'INS', rec.ins_srtgroep_omschrijving ); COMMIT; v_count_update := v_count_update + 1; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_applname, p_applrun, 'W', v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog ( p_applname, p_applrun, 'S', 'INS-Groepsoorten/aantal ingelezen: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_applname, p_applrun, 'S', 'INS-Groepsoorten/aantal toegevoegd: ' || TO_CHAR (v_count_update), '' ); COMMIT; END; -- SUBPROC PROCEDURE add_srtdeel (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS CURSOR c1 IS SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper, UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper, UPPER (ins_srtdeel_omschrijving) ins_srtdeel_upper, MAX(UPPER( SUBSTR (ins_srtgroep_omschrijving, 1, 2) || '-' || SUBSTR (ins_srtdeel_omschrijving, 1, 2))) new_srtdeel_code_upper, MAX (ins_discipline_omschrijving) ins_discipline_omschrijving, MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving, MAX (ins_srtdeel_omschrijving) ins_srtdeel_omschrijving FROM conn_imp_inspectieobj GROUP BY UPPER (ins_discipline_omschrijving), UPPER (ins_srtgroep_omschrijving), UPPER (ins_srtdeel_omschrijving); v_errormsg VARCHAR2 (1024); v_discipline_key NUMBER (10); v_srtgroep_key NUMBER (10); ccount NUMBER (10); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count_tot NUMBER (10); v_count_update NUMBER (10); BEGIN v_count_tot := 0; v_count_update := 0; FOR rec IN c1 LOOP BEGIN v_count_tot := v_count_tot + 1; v_errormsg := 'Fout bij bepalen INS-discipline [' || rec.ins_discipline_omschrijving || ']'; SELECT ins_discipline_key INTO v_discipline_key FROM ins_tab_discipline WHERE ins_discipline_verwijder IS NULL AND ins_discipline_module = 'INS' AND UPPER (TRIM (ins_discipline_omschrijving)) = UPPER (TRIM (rec.ins_discipline_omschrijving)); v_errormsg := 'Fout bij bepalen INS-groepsoort [' || rec.ins_srtgroep_omschrijving || ']'; SELECT ins_srtgroep_key INTO v_srtgroep_key FROM ins_srtgroep WHERE ins_srtgroep_verwijder IS NULL AND ins_srtgroep_module = 'INS' AND ins_discipline_key = v_discipline_key AND UPPER (TRIM (ins_srtgroep_omschrijving)) = UPPER (TRIM (rec.ins_srtgroep_omschrijving)); v_errormsg := 'Fout bij toevoegen INS-objectsoort [' || rec.ins_srtdeel_omschrijving || ']'; SELECT COUNT ( * ) INTO ccount FROM ins_srtdeel WHERE ins_srtdeel_verwijder IS NULL AND ins_srtdeel_module = 'INS' AND ins_srtgroep_key = v_srtgroep_key AND UPPER (TRIM (ins_srtdeel_omschrijving)) = UPPER (TRIM (rec.ins_srtdeel_omschrijving)); IF ccount = 0 THEN -- Binding 17 betekent ruimtegebonden of persoonsgebonden??? INSERT INTO ins_srtdeel (ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_code, ins_srtdeel_omschrijving, ins_srtdeel_binding) VALUES (v_srtgroep_key, 'INS', rec.new_srtdeel_code_upper, rec.ins_srtdeel_omschrijving, 17); COMMIT; v_count_update := v_count_update + 1; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_applname, p_applrun, 'W', v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog ( p_applname, p_applrun, 'S', 'INS-Objectsoorten/aantal ingelezen: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_applname, p_applrun, 'S', 'INS-Objectsoorten/aantal toegevoegd: ' || TO_CHAR (v_count_update), '' ); COMMIT; END; -- SUBPROC PROCEDURE add_deelinspectie (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS CURSOR c1 IS SELECT obj.ins_discipline_omschrijving, obj.ins_srtgroep_omschrijving, obj.ins_srtdeel_omschrijving, obj.ins_deel_omschrijving, obj.merk, obj.TYPE, obj.hoogte, obj.belasting, obj.bereik, obj.voltage, DECODE (UPPER (obj.apkplicht), 'JA', 129, 'NEE', 130, -1) apkplicht, obj.categorie, obj.alg_locatie_code, obj.alg_ruimte_nr, -- CONN#21887/Relevant igv. nieuwe objecten! obj.cnt_contract_nummer_intern, obj.ins_srtcontrole_omschrijving, obj.ins_deelsrtcontrole_datum, DECODE ( COALESCE (cb.prs_bedrijf_naam, obj.prs_bedrijf_naam), NULL, obj.ins_deelsrtcontrole_opmerking, COALESCE (cb.prs_bedrijf_naam, obj.prs_bedrijf_naam) || ':' || CHR (13) || CHR (10) || COALESCE (obj.ins_deelsrtcontrole_opmerking, '-') ) ins_deelsrtcontrole_opmerking, DECODE (UPPER (obj.afgekeurd), 'JA', 129, 'NEE', 130, -1) afgekeurd, cb.cnt_contract_key FROM (SELECT ins_discipline_omschrijving, ins_srtgroep_omschrijving, ins_srtdeel_omschrijving, ins_deel_omschrijving, merk, TYPE, hoogte, belasting, bereik, voltage, apkplicht, categorie, alg_locatie_code, alg_ruimte_nr, -- CONN#21887/Relevant igv. nieuwe objecten! cnt_contract_nummer_intern, -- Per CONN#22359! prs_bedrijf_naam, ins_srtcontrole_omschrijving, ins_deelsrtcontrole_datum, ins_deelsrtcontrole_opmerking, afgekeurd FROM conn_imp_inspectieobj) obj LEFT JOIN (SELECT c.cnt_contract_nummer_intern, b.prs_bedrijf_naam, c.cnt_contract_key, b.prs_bedrijf_key FROM cnt_contract c, ins_tab_discipline td, cnt_disc_params dp, prs_bedrijf b WHERE c.cnt_contract_verwijder IS NULL AND c.ins_discipline_key = td.ins_discipline_key AND td.ins_discipline_verwijder IS NULL AND td.ins_discipline_key = dp.cnt_ins_discipline_key AND dp.cnt_srtcontract_type = 3 -- Ondersteuning/Support AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) cb ON obj.cnt_contract_nummer_intern = cb.cnt_contract_nummer_intern; v_errormsg VARCHAR2 (1024); c_ruimte_nr VARCHAR2 (10) := 'WERKPLAATS'; c_srtruimte_key NUMBER (10) := 1; c_merk_srtkey NUMBER (10) := 42; c_type_srtkey NUMBER (10) := 41; c_hoogte_srtkey NUMBER (10) := 1461; c_belasting_srtkey NUMBER (10) := 1462; c_bereik_srtkey NUMBER (10) := 1463; c_voltage_srtkey NUMBER (10) := 1464; c_apkplicht_srtkey NUMBER (10) := 1465; c_categorie_srtkey NUMBER (10) := 1467; c_afgekeurd_srtkey NUMBER (10) := 1466; c_controle_periode NUMBER (10) := 365; v_discipline_key NUMBER (10); v_srtgroep_key NUMBER (10); v_srtdeel_key NUMBER (10); v_deel_key NUMBER (10); v_deel_oms VARCHAR2 (60); v_locatie_key NUMBER (10); v_gebouw_key NUMBER (10); v_verdieping_key NUMBER (10); v_ruimte_key NUMBER (10); v_kenmerk_key NUMBER (10); v_kenmerkdeel_key NUMBER (10); v_srtcontrole_id VARCHAR2 (20); v_controlemode_key NUMBER (10); ccount NUMBER (10); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count_tot NUMBER (10); v_count_oupdate NUMBER (10); v_count_cupdate NUMBER (10); v_aanduiding VARCHAR (200); BEGIN v_count_tot := 0; v_count_oupdate := 0; v_count_cupdate := 0; v_aanduiding := ''; FOR rec IN c1 LOOP BEGIN v_count_tot := v_count_tot + 1; v_aanduiding := '[' || rec.ins_discipline_omschrijving || '|' || rec.ins_srtgroep_omschrijving || '|' || rec.ins_srtdeel_omschrijving || '|' || rec.ins_deel_omschrijving || '] '; v_errormsg := 'Fout bij bepalen INS-discipline'; SELECT ins_discipline_key INTO v_discipline_key FROM ins_discipline WHERE ins_discipline_verwijder IS NULL AND ins_discipline_module = 'INS' AND UPPER (TRIM (ins_discipline_omschrijving)) = UPPER (TRIM (rec.ins_discipline_omschrijving)); v_errormsg := 'Fout bij bepalen INS-groepsoort'; SELECT ins_srtgroep_key INTO v_srtgroep_key FROM ins_srtgroep WHERE ins_srtgroep_verwijder IS NULL AND ins_srtgroep_module = 'INS' AND ins_discipline_key = v_discipline_key AND UPPER (TRIM (ins_srtgroep_omschrijving)) = UPPER (TRIM (rec.ins_srtgroep_omschrijving)); v_errormsg := 'Fout bij bepalen INS-objectsoort'; SELECT ins_srtdeel_key INTO v_srtdeel_key FROM ins_srtdeel WHERE ins_srtdeel_verwijder IS NULL AND ins_srtdeel_module = 'INS' AND ins_srtgroep_key = v_srtgroep_key AND UPPER (TRIM (ins_srtdeel_omschrijving)) = UPPER (TRIM (rec.ins_srtdeel_omschrijving)); v_errormsg := 'Fout bij bepalen locatie [' || rec.alg_locatie_code || ']'; SELECT alg_locatie_key INTO v_locatie_key FROM alg_locatie WHERE alg_locatie_verwijder IS NULL AND UPPER (TRIM (alg_locatie_code)) = UPPER (TRIM (rec.alg_locatie_code)); -- Ruimtegebonden objecten hebben een unieke ID binnen de locatie v_errormsg := 'Fout bij bepalen INS-object'; SELECT COUNT ( * ) INTO ccount FROM ins_deel d WHERE ins_deel_verwijder IS NULL AND ins_deel_module = 'INS' AND ins_srtdeel_key = v_srtdeel_key AND ins_alg_locatie_key = v_locatie_key AND ins_deel_upper = UPPER (rec.ins_deel_omschrijving); IF ccount > 0 -- Object bestaat reeds op locatie! THEN SELECT MAX (d.ins_deel_key) INTO v_deel_key FROM ins_deel d WHERE ins_deel_verwijder IS NULL AND ins_deel_module = 'INS' AND ins_srtdeel_key = v_srtdeel_key AND ins_alg_locatie_key = v_locatie_key AND ins_deel_upper = UPPER (rec.ins_deel_omschrijving); ELSE -- Object bestaat nog niet op locatie, dus toevoegen! v_errormsg := 'Fout bij bepalen default ID'; SELECT INS.GET_DESCRIPTION ('LPN_INS_DEEL', NULL, UPPER (ins_srtdeel_code), v_srtdeel_key) INTO v_deel_oms FROM ins_srtdeel WHERE ins_srtdeel_key = v_srtdeel_key; v_errormsg := 'Fout bij bepalen gewenste ruimte'; SELECT COUNT ( * ) INTO ccount FROM alg_v_aanwezigruimte r, alg_verdieping v, alg_gebouw g WHERE r.alg_ruimte_upper_nr = rec.alg_ruimte_nr AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = v_locatie_key; IF ccount > 0 -- rec.alg_ruimte_nr bekend op locatie! THEN SELECT MAX (r.alg_ruimte_key) INTO v_ruimte_key FROM alg_v_aanwezigruimte r, alg_verdieping v, alg_gebouw g WHERE r.alg_ruimte_upper_nr = rec.alg_ruimte_nr AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = v_locatie_key; ELSE -- rec.alg_ruimte_nr onbekend op locatie, c_ruimte_nr ook? v_errormsg := 'Fout bij bepalen default ruimte'; SELECT COUNT ( * ) INTO ccount FROM alg_v_aanwezigruimte r, alg_verdieping v, alg_gebouw g WHERE r.alg_ruimte_upper_nr = c_ruimte_nr AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = v_locatie_key; IF ccount > 0 -- c_ruimte_nr bekend op locatie! THEN SELECT MAX (r.alg_ruimte_key) INTO v_ruimte_key FROM alg_v_aanwezigruimte r, alg_verdieping v, alg_gebouw g WHERE r.alg_ruimte_upper_nr = c_ruimte_nr AND r.alg_verdieping_key = v.alg_verdieping_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = v_locatie_key; ELSE -- c_ruimte_nr nog onbekend op locatie, dan aanmaken! v_errormsg := 'Fout bij bepalen default gebouw'; SELECT MIN (g.alg_gebouw_key) INTO v_gebouw_key FROM alg_v_aanweziggebouw g WHERE g.alg_locatie_key = v_locatie_key; v_errormsg := 'Fout bij bepalen default verdieping'; SELECT v.alg_verdieping_key INTO v_verdieping_key FROM alg_v_aanwezigverdieping v WHERE v.alg_gebouw_key = v_gebouw_key AND alg_verdieping_volgnr = (SELECT MIN (alg_verdieping_volgnr) FROM alg_v_aanwezigverdieping WHERE alg_gebouw_key = v.alg_gebouw_key); v_errormsg := 'Fout bij toevoegen default ruimte'; INSERT INTO alg_ruimte ( alg_verdieping_key, alg_srtruimte_key, alg_ruimte_nr ) VALUES ( v_verdieping_key, c_srtruimte_key, c_ruimte_nr ) RETURNING alg_ruimte_key INTO v_ruimte_key; END IF; END IF; v_errormsg := 'Fout bij toevoegen INS-object'; INSERT INTO ins_deel (ins_discipline_key, ins_srtdeel_key, ins_deel_module, ins_deel_omschrijving, ins_alg_ruimte_key, ins_alg_ruimte_type, ins_alg_locatie_key) VALUES (v_discipline_key, v_srtdeel_key, 'INS', COALESCE (rec.ins_deel_omschrijving, v_deel_oms), v_ruimte_key, 'R', v_locatie_key) RETURNING ins_deel_key INTO v_deel_key; COMMIT; v_count_oupdate := v_count_oupdate + 1; END IF; -- MERK toevoegen; huidige merk NOOIT gewijzigd via import! IF rec.merk IS NOT NULL AND UPPER (rec.merk) != 'NVT' THEN v_errormsg := 'Fout bij bepalen merk-kenmerk'; SELECT COUNT ( * ) INTO ccount FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_merk_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken! THEN v_errormsg := 'Fout bij toevoegen merk-kenmerk'; INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer) VALUES (c_merk_srtkey, v_srtdeel_key, 'S', 100) RETURNING ins_kenmerk_key INTO v_kenmerk_key; fac.imp_writelog ( p_applname, p_applrun, 'I', 'INS-Objecten/Merk-kenmerk toegevoegd voor: ' || rec.ins_srtdeel_omschrijving, '' ); COMMIT; ELSE SELECT k.ins_kenmerk_key INTO v_kenmerk_key FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_merk_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); END IF; v_errormsg := 'Fout bij bepalen huidige merk'; SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key) INTO ccount, v_kenmerkdeel_key FROM ins_v_aanwezigkenmerkdeel WHERE ins_deel_key = v_deel_key AND ins_kenmerk_key = v_kenmerk_key; IF ccount = 0 THEN v_errormsg := 'Fout bij toevoegen merk'; INSERT INTO ins_kenmerkdeel ( ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde ) VALUES (v_deel_key, v_kenmerk_key, rec.merk); COMMIT; --ELSE -- v_errormsg := 'Fout bij wijzigen merk'; -- UPDATE ins_kenmerkdeel -- SET ins_kenmerkdeel_waarde = rec.merk -- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key; -- COMMIT; END IF; END IF; -- TYPE toevoegen; huidige waarde NOOIT gewijzigd via import! IF rec.TYPE IS NOT NULL AND UPPER (rec.TYPE) != 'NVT' THEN v_errormsg := 'Fout bij bepalen type-kenmerk'; SELECT COUNT ( * ) INTO ccount FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_type_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken! THEN v_errormsg := 'Fout bij toevoegen type-kenmerk'; INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer) VALUES (c_type_srtkey, v_srtdeel_key, 'S', 105) RETURNING ins_kenmerk_key INTO v_kenmerk_key; fac.imp_writelog ( p_applname, p_applrun, 'I', 'INS-Objecten/Type-kenmerk toegevoegd voor: ' || rec.ins_srtdeel_omschrijving, '' ); COMMIT; ELSE SELECT k.ins_kenmerk_key INTO v_kenmerk_key FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_type_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); END IF; v_errormsg := 'Fout bij bepalen huidige type'; SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key) INTO ccount, v_kenmerkdeel_key FROM ins_v_aanwezigkenmerkdeel WHERE ins_deel_key = v_deel_key AND ins_kenmerk_key = v_kenmerk_key; IF ccount = 0 THEN v_errormsg := 'Fout bij toevoegen type'; INSERT INTO ins_kenmerkdeel ( ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde ) VALUES (v_deel_key, v_kenmerk_key, rec.TYPE); COMMIT; --ELSE -- v_errormsg := 'Fout bij wijzigen type'; -- UPDATE ins_kenmerkdeel -- SET ins_kenmerkdeel_waarde = rec.type -- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key; -- COMMIT; END IF; END IF; -- HOOGTE toevoegen; huidige waarde NOOIT gewijzigd via import! IF rec.hoogte IS NOT NULL AND UPPER (rec.hoogte) != 'NVT' THEN v_errormsg := 'Fout bij bepalen hoogte-kenmerk'; SELECT COUNT ( * ) INTO ccount FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_hoogte_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken! THEN v_errormsg := 'Fout bij toevoegen hoogte-kenmerk'; INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer) VALUES (c_hoogte_srtkey, v_srtdeel_key, 'S', 110) RETURNING ins_kenmerk_key INTO v_kenmerk_key; fac.imp_writelog ( p_applname, p_applrun, 'I', 'INS-Objecten/Hoogte-kenmerk toegevoegd voor: ' || rec.ins_srtdeel_omschrijving, '' ); COMMIT; ELSE SELECT k.ins_kenmerk_key INTO v_kenmerk_key FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_hoogte_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); END IF; v_errormsg := 'Fout bij bepalen huidige hoogte'; SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key) INTO ccount, v_kenmerkdeel_key FROM ins_v_aanwezigkenmerkdeel WHERE ins_deel_key = v_deel_key AND ins_kenmerk_key = v_kenmerk_key; IF ccount = 0 THEN v_errormsg := 'Fout bij toevoegen hoogte'; INSERT INTO ins_kenmerkdeel ( ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde ) VALUES (v_deel_key, v_kenmerk_key, rec.hoogte); COMMIT; --ELSE -- v_errormsg := 'Fout bij wijzigen hoogte'; -- UPDATE ins_kenmerkdeel -- SET ins_kenmerkdeel_waarde = rec.hoogte -- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key; -- COMMIT; END IF; END IF; -- BELASTING toevoegen; huidige waarde NOOIT gewijzigd via import! IF rec.belasting IS NOT NULL AND UPPER (rec.belasting) != 'NVT' THEN v_errormsg := 'Fout bij bepalen belasting-kenmerk'; SELECT COUNT ( * ) INTO ccount FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_belasting_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken! THEN v_errormsg := 'Fout bij toevoegen belasting-kenmerk'; INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer) VALUES (c_belasting_srtkey, v_srtdeel_key, 'S', 112) RETURNING ins_kenmerk_key INTO v_kenmerk_key; fac.imp_writelog ( p_applname, p_applrun, 'I', 'INS-Objecten/Belasting-kenmerk toegevoegd voor: ' || rec.ins_srtdeel_omschrijving, '' ); COMMIT; ELSE SELECT k.ins_kenmerk_key INTO v_kenmerk_key FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_belasting_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); END IF; v_errormsg := 'Fout bij bepalen huidige belasting'; SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key) INTO ccount, v_kenmerkdeel_key FROM ins_v_aanwezigkenmerkdeel WHERE ins_deel_key = v_deel_key AND ins_kenmerk_key = v_kenmerk_key; IF ccount = 0 THEN v_errormsg := 'Fout bij toevoegen belasting'; INSERT INTO ins_kenmerkdeel ( ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde ) VALUES (v_deel_key, v_kenmerk_key, rec.belasting); COMMIT; --ELSE -- v_errormsg := 'Fout bij wijzigen belasting'; -- UPDATE ins_kenmerkdeel -- SET ins_kenmerkdeel_waarde = rec.belasting -- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key; -- COMMIT; END IF; END IF; -- BEREIK toevoegen; huidige waarde NOOIT gewijzigd via import! IF rec.bereik IS NOT NULL AND UPPER (rec.bereik) != 'NVT' THEN v_errormsg := 'Fout bij bepalen bereik-kenmerk'; SELECT COUNT ( * ) INTO ccount FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_bereik_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken! THEN v_errormsg := 'Fout bij toevoegen bereik-kenmerk'; INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer) VALUES (c_bereik_srtkey, v_srtdeel_key, 'S', 114) RETURNING ins_kenmerk_key INTO v_kenmerk_key; fac.imp_writelog ( p_applname, p_applrun, 'I', 'INS-Objecten/Bereik-kenmerk toegevoegd voor: ' || rec.ins_srtdeel_omschrijving, '' ); COMMIT; ELSE SELECT k.ins_kenmerk_key INTO v_kenmerk_key FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_bereik_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); END IF; v_errormsg := 'Fout bij bepalen huidige bereik'; SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key) INTO ccount, v_kenmerkdeel_key FROM ins_v_aanwezigkenmerkdeel WHERE ins_deel_key = v_deel_key AND ins_kenmerk_key = v_kenmerk_key; IF ccount = 0 THEN v_errormsg := 'Fout bij toevoegen bereik'; INSERT INTO ins_kenmerkdeel ( ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde ) VALUES (v_deel_key, v_kenmerk_key, rec.bereik); COMMIT; --ELSE -- v_errormsg := 'Fout bij wijzigen bereik'; -- UPDATE ins_kenmerkdeel -- SET ins_kenmerkdeel_waarde = rec.bereik -- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key; -- COMMIT; END IF; END IF; -- VOLTAGE toevoegen; huidige waarde NOOIT gewijzigd via import! IF rec.voltage IS NOT NULL AND UPPER (rec.voltage) != 'NVT' THEN v_errormsg := 'Fout bij bepalen voltage-kenmerk'; SELECT COUNT ( * ) INTO ccount FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_voltage_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken! THEN v_errormsg := 'Fout bij toevoegen voltage-kenmerk'; INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer) VALUES (c_voltage_srtkey, v_srtdeel_key, 'S', 116) RETURNING ins_kenmerk_key INTO v_kenmerk_key; fac.imp_writelog ( p_applname, p_applrun, 'I', 'INS-Objecten/Voltage-kenmerk toegevoegd voor: ' || rec.ins_srtdeel_omschrijving, '' ); COMMIT; ELSE SELECT k.ins_kenmerk_key INTO v_kenmerk_key FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_voltage_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); END IF; v_errormsg := 'Fout bij bepalen huidige voltage'; SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key) INTO ccount, v_kenmerkdeel_key FROM ins_v_aanwezigkenmerkdeel WHERE ins_deel_key = v_deel_key AND ins_kenmerk_key = v_kenmerk_key; IF ccount = 0 THEN v_errormsg := 'Fout bij toevoegen voltage'; INSERT INTO ins_kenmerkdeel ( ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde ) VALUES (v_deel_key, v_kenmerk_key, rec.voltage); COMMIT; --ELSE -- v_errormsg := 'Fout bij wijzigen voltage'; -- UPDATE ins_kenmerkdeel -- SET ins_kenmerkdeel_waarde = rec.voltage -- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key; -- COMMIT; END IF; END IF; -- APK toevoegen; huidige waarde NOOIT gewijzigd via import! IF rec.apkplicht IS NOT NULL AND UPPER (rec.apkplicht) != -1 THEN v_errormsg := 'Fout bij bepalen APK-kenmerk'; SELECT COUNT ( * ) INTO ccount FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_apkplicht_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken! THEN v_errormsg := 'Fout bij toevoegen APK-kenmerk'; INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer) VALUES (c_apkplicht_srtkey, v_srtdeel_key, 'S', 118) RETURNING ins_kenmerk_key INTO v_kenmerk_key; fac.imp_writelog ( p_applname, p_applrun, 'I', 'INS-Objecten/APK-kenmerk toegevoegd voor: ' || rec.ins_srtdeel_omschrijving, '' ); COMMIT; ELSE SELECT k.ins_kenmerk_key INTO v_kenmerk_key FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_apkplicht_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); END IF; v_errormsg := 'Fout bij bepalen huidige APK'; SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key) INTO ccount, v_kenmerkdeel_key FROM ins_v_aanwezigkenmerkdeel WHERE ins_deel_key = v_deel_key AND ins_kenmerk_key = v_kenmerk_key; IF ccount = 0 THEN v_errormsg := 'Fout bij toevoegen APK'; INSERT INTO ins_kenmerkdeel ( ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde ) VALUES (v_deel_key, v_kenmerk_key, rec.apkplicht); COMMIT; --ELSE -- v_errormsg := 'Fout bij wijzigen APK'; -- UPDATE ins_kenmerkdeel -- SET ins_kenmerkdeel_waarde = rec.apkplicht -- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key; -- COMMIT; END IF; END IF; -- CATEGORIE toevoegen; huidige waarde NOOIT gewijzigd via import! IF rec.categorie IS NOT NULL AND UPPER (rec.categorie) != 'NVT' THEN v_errormsg := 'Fout bij bepalen categorie-kenmerk'; SELECT COUNT ( * ) INTO ccount FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_categorie_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken! THEN v_errormsg := 'Fout bij toevoegen categorie-kenmerk'; INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer) VALUES (c_categorie_srtkey, v_srtdeel_key, 'S', 120) RETURNING ins_kenmerk_key INTO v_kenmerk_key; fac.imp_writelog ( p_applname, p_applrun, 'I', 'INS-Objecten/Categorie-kenmerk toegevoegd voor: ' || rec.ins_srtdeel_omschrijving, '' ); COMMIT; ELSE SELECT k.ins_kenmerk_key INTO v_kenmerk_key FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_categorie_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); END IF; v_errormsg := 'Fout bij bepalen huidige categorie'; SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key) INTO ccount, v_kenmerkdeel_key FROM ins_v_aanwezigkenmerkdeel WHERE ins_deel_key = v_deel_key AND ins_kenmerk_key = v_kenmerk_key; IF ccount = 0 THEN v_errormsg := 'Fout bij toevoegen categorie'; INSERT INTO ins_kenmerkdeel ( ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde ) VALUES (v_deel_key, v_kenmerk_key, rec.categorie); COMMIT; --ELSE -- v_errormsg := 'Fout bij wijzigen categorie'; -- UPDATE ins_kenmerkdeel -- SET ins_kenmerkdeel_waarde = rec.categorie -- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key; -- COMMIT; END IF; END IF; -- AFGEKEURD toevoegen; huidige waarde NOOIT gewijzigd via import! IF rec.afgekeurd IS NOT NULL AND UPPER (rec.afgekeurd) != -1 THEN v_errormsg := 'Fout bij bepalen afgekeurd-kenmerk'; SELECT COUNT ( * ) INTO ccount FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_afgekeurd_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken! THEN v_errormsg := 'Fout bij toevoegen afgekeurd-kenmerk'; INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer) VALUES (c_afgekeurd_srtkey, v_srtdeel_key, 'S', 122) RETURNING ins_kenmerk_key INTO v_kenmerk_key; fac.imp_writelog ( p_applname, p_applrun, 'I', 'INS-Objecten/afgekeurd-kenmerk toegevoegd voor: ' || rec.ins_srtdeel_omschrijving, '' ); COMMIT; ELSE SELECT k.ins_kenmerk_key INTO v_kenmerk_key FROM ins_v_aanwezigkenmerk k WHERE k.ins_srtkenmerk_key = c_afgekeurd_srtkey AND ( (k.ins_srtinstallatie_key = v_srtdeel_key AND k.ins_kenmerk_niveau = 'S') OR (k.ins_srtinstallatie_key = v_srtgroep_key AND k.ins_kenmerk_niveau = 'G') OR (k.ins_srtinstallatie_key = v_discipline_key AND k.ins_kenmerk_niveau = 'D')); END IF; v_errormsg := 'Fout bij bepalen huidige afgekeurd'; SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key) INTO ccount, v_kenmerkdeel_key FROM ins_v_aanwezigkenmerkdeel WHERE ins_deel_key = v_deel_key AND ins_kenmerk_key = v_kenmerk_key; IF ccount = 0 THEN v_errormsg := 'Fout bij toevoegen afgekeurd'; INSERT INTO ins_kenmerkdeel ( ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde ) VALUES (v_deel_key, v_kenmerk_key, rec.afgekeurd); COMMIT; --ELSE -- v_errormsg := 'Fout bij wijzigen afgekeurd'; -- UPDATE ins_kenmerkdeel -- SET ins_kenmerkdeel_waarde = rec.afgekeurd -- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key; -- COMMIT; END IF; END IF; -- Toevoegen controle; gebruik [a] de meest specifieke soort en -- [b] de minst recente mode! v_errormsg := 'Fout bij bepalen soort controle'; SELECT COUNT ( * ) INTO ccount FROM ins_srtcontrole sc WHERE UPPER (TRIM (sc.ins_srtcontrole_omschrijving)) = UPPER (TRIM (rec.ins_srtcontrole_omschrijving)) AND ( (sc.ins_srtinstallatie_key = v_srtdeel_key AND sc.ins_srtcontrole_niveau = 'S') OR (sc.ins_srtinstallatie_key = v_srtgroep_key AND sc.ins_srtcontrole_niveau = 'G') OR (sc.ins_srtinstallatie_key = v_discipline_key AND sc.ins_srtcontrole_niveau = 'D')); IF ccount = 0 THEN v_errormsg := 'Fout bij toevoegen soort controle'; INSERT INTO ins_srtcontrole (ins_srtinstallatie_key, ins_srtcontrole_niveau, ins_srtcontrole_omschrijving, ins_srtcontrole_periode) VALUES (v_srtdeel_key, 'S', SUBSTR (rec.ins_srtcontrole_omschrijving, 1, 60), c_controle_periode) -- Default een jaar! RETURNING ins_srtcontrole_key INTO v_srtcontrole_id; v_srtcontrole_id := 'S' || v_srtcontrole_id; fac.imp_writelog ( p_applname, p_applrun, 'I', 'INS-Objecten/soort controle toegevoegd: ' || SUBSTR (rec.ins_srtcontrole_omschrijving, 1, 60) || ' voor ' || rec.ins_srtdeel_omschrijving, '' ); COMMIT; ELSE SELECT MAX(sc.ins_srtcontrole_niveau || TO_CHAR (sc.ins_srtcontrole_key)) INTO v_srtcontrole_id FROM ins_srtcontrole sc WHERE UPPER (TRIM (sc.ins_srtcontrole_omschrijving)) = UPPER (TRIM (rec.ins_srtcontrole_omschrijving)) AND ( (sc.ins_srtinstallatie_key = v_srtdeel_key AND sc.ins_srtcontrole_niveau = 'S') OR (sc.ins_srtinstallatie_key = v_srtgroep_key AND sc.ins_srtcontrole_niveau = 'G') OR (sc.ins_srtinstallatie_key = v_discipline_key AND sc.ins_srtcontrole_niveau = 'D')); END IF; IF rec.ins_deelsrtcontrole_datum IS NOT NULL THEN v_errormsg := 'Fout bij bepalen controle mode'; SELECT MIN (ins_controlemode_key) INTO v_controlemode_key FROM ins_controlemode; v_errormsg := 'Fout bij toevoegen controle'; INSERT INTO ins_deelsrtcontrole ( ins_deel_key, ins_srtcontrole_key, ins_deelsrtcontrole_datum, ins_controlemode_key, ins_deelsrtcontrole_opmerking ) VALUES (v_deel_key, fac.safe_to_number (SUBSTR (v_srtcontrole_id, 2)), rec.ins_deelsrtcontrole_datum, v_controlemode_key, rec.ins_deelsrtcontrole_opmerking); COMMIT; v_count_cupdate := v_count_cupdate + 1; END IF; -- Uitbreiden contract-object-scope als contractnummer voorkomt in -- importbestand (ie. cnt_contract_key kon worden bepaald) en deze -- relatie nog niet bestaat! IF (rec.cnt_contract_key IS NOT NULL) THEN v_errormsg := 'Fout bij bepalen contract-object-relatie'; SELECT COUNT ( * ) INTO ccount FROM cnt_contract_object WHERE cnt_contract_object_verwijder IS NULL AND cnt_contract_key = rec.cnt_contract_key AND cnt_ins_srtdeel_key = v_srtdeel_key; IF ccount = 0 THEN v_errormsg := 'Fout bij toevoegen contract-object-scope'; INSERT INTO cnt_contract_object ( cnt_contract_key, cnt_ins_srtdeel_key ) VALUES (rec.cnt_contract_key, v_srtdeel_key); fac.imp_writelog ( p_applname, p_applrun, 'I', 'INS-Objecten/contractscope uitgebreid: ' || rec.cnt_contract_nummer_intern || ' plus ' || rec.ins_srtdeel_omschrijving, '' ); COMMIT; END IF; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_applname, p_applrun, 'W', v_aanduiding || v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog ( p_applname, p_applrun, 'S', 'INS-Objecten/aantal ingelezen: ' || TO_CHAR (v_count_tot), '' ); fac.imp_writelog ( p_applname, p_applrun, 'S', 'INS-Objecten/aantal toegevoegd: ' || TO_CHAR (v_count_oupdate), '' ); fac.imp_writelog ( p_applname, p_applrun, 'S', 'INS-Controles/aantal toegevoegd: ' || TO_CHAR (v_count_cupdate), '' ); COMMIT; END; -- MAIN BEGIN add_insdiscipline (p_applname, p_applrun); add_srtgroep (p_applname, p_applrun); add_srtdeel (p_applname, p_applrun); add_deelinspectie (p_applname, p_applrun); EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, 'Importproces inspectieobjecten afgebroken!'); END conn_update_inspectieobj; / BEGIN fac.registercustversion('CONN', 49); END; / BEGIN adm.systrackscript('$Workfile: conn.sql $', '$Revision: 180 $', 0); END; / COMMIT; SPOOL OFF