From ef79ae8ddac8cdf35298348bcb8667d94edebf75 Mon Sep 17 00:00:00 2001 From: Admin Date: Thu, 5 May 2011 14:09:08 +0000 Subject: [PATCH] JGL: Forced accept voor levering 5-5 svn path=/Customer/trunk/; revision=14763 --- CONN/conn.sql | 830 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 742 insertions(+), 88 deletions(-) diff --git a/CONN/conn.sql b/CONN/conn.sql index c401cb4ff..9766741ae 100644 --- a/CONN/conn.sql +++ b/CONN/conn.sql @@ -1,7 +1,7 @@ -- Script containing customer specific configuration sql statements for CONN: Connexxion -- (c) 2005-2010 SG|facilitor bv --- $Revision: 162 $ --- $Modtime: 28-03-11 9:14 $ +-- $Revision: 163 $ +-- $Modtime: 5-05-11 13:36 $ -- -- Support: +31 53 4800710 @@ -21,13 +21,13 @@ CREATE OR REPLACE FORCE VIEW conn_v_bes_diesel AS SELECT b.bes_bestelling_key, bi.bes_bestelling_item_aantal, - d.ins_srtdeel_omschrijving, + d.bes_srtdeel_omschrijving, TO_CHAR (b.bes_bestelling_leverdatum, 'dd-mm-yyyy'), a.mld_adres_naam - FROM mld_adres a, bes_discipline d, ins_srtgroep g, ins_srtdeel d, bes_bestelling_item bi, bes_bestelling b + 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.ins_srtgroep_key = d.ins_srtgroep_key - AND bi.ins_srtdeel_key = d.ins_srtdeel_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 @@ -614,7 +614,7 @@ CREATE OR REPLACE PACKAGE CONN_RAP AS 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); + 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; / @@ -758,7 +758,7 @@ CREATE OR REPLACE PACKAGE BODY CONN_RAP AS END IF; END; -- - PROCEDURE conn_p_bes_div_cat ( user_key IN NUMBER, + 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 @@ -772,8 +772,8 @@ CREATE OR REPLACE PACKAGE BODY CONN_RAP AS ) totaalbedrag FROM BES_BESTELLING b, BES_BESTELLING_ITEM bi, - INS_SRTDEEL sd, - INS_SRTGROEP sg, + bes_srtDEEL sd, + bes_srtGROEP sg, INS_TAB_DISCIPLINE dis, bes_bestelopdr_item boi, (SELECT p.prs_perslid_key, @@ -784,8 +784,8 @@ CREATE OR REPLACE PACKAGE BODY CONN_RAP AS 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.ins_srtdeel_key = sd.ins_srtdeel_key - AND sd.ins_srtgroep_key = sg.ins_srtgroep_key + 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 @@ -795,7 +795,7 @@ CREATE OR REPLACE PACKAGE BODY CONN_RAP AS ORDER BY 1,2; END; - -- + -- END; / @@ -1261,23 +1261,23 @@ AS || ' ' || NVL (p.prs_perslid_voornaam, ''), a.prs_afdeling_naam, - s.ins_srtdeel_nr, - s.ins_srtdeel_omschrijving, + s.bes_srtdeel_nr, + s.bes_srtdeel_omschrijving, TO_CHAR (i.bes_bestelling_item_aantal, '99999990'), - TO_CHAR (s.ins_srtdeel_prijs, '99999990D00'), -- ATTENTIE, was vroeger soms bestelitemprijs + TO_CHAR (s.bes_srtdeel_prijs, '99999990D00'), -- ATTENTIE, was vroeger soms bestelitemprijs a.prs_afdeling_key FROM bes_bestelling b, bes_bestelling_item i, prs_perslid p, prs_afdeling a, - ins_srtdeel s, - ins_srtgroep g, + 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.ins_srtdeel_key = s.ins_srtdeel_key - AND s.ins_srtgroep_key = g.ins_srtgroep_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; @@ -1422,8 +1422,8 @@ AS || NVL (p2.prs_perslid_voornaam, ''), bs.bes_bestellingstatuses_omschr, i.bes_bestelling_item_aantal, - s.ins_srtdeel_prijs, -- check? - i.bes_bestelling_item_aantal * s.ins_srtdeel_prijs, + s.bes_srtdeel_prijs, -- check? + i.bes_bestelling_item_aantal * s.bes_srtdeel_prijs, b.bes_bestelling_datum, fac.gettrackingdate('BESREJ', b.bes_bestelling_key), fac.gettrackingdate('BESACP', b.bes_bestelling_key), @@ -1434,9 +1434,9 @@ AS prs_afdeling a, prs_perslid p2, bes_bestellingstatuses bs, - ins_srtdeel s + bes_srtdeel s WHERE b.bes_bestelling_key = i.bes_bestelling_key - AND i.ins_srtdeel_key = s.ins_srtdeel_key + AND i.bes_srtdeel_key = s.bes_srtdeel_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 @@ -3875,8 +3875,8 @@ SELECT TO_CHAR (bo.bes_bestelopdr_key) OrderNr, fin_factuur f, fin_factuurregel fr, prs_kostensoort ks, - ins_srtdeel isd, - ins_srtgroep isg, + bes_srtdeel isd, + bes_srtgroep isg, ins_tab_discipline itd, prs_kostensoort kst WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key @@ -3890,8 +3890,8 @@ SELECT TO_CHAR (bo.bes_bestelopdr_key) OrderNr, AND f.fin_factuur_key = fr.fin_factuur_key AND kst.prs_kostensoort_key = itd.prs_kostensoort_key AND itd.ins_discipline_key = isg.ins_discipline_key - AND isg.ins_srtgroep_key = isd.ins_srtgroep_key - AND isd.ins_srtdeel_key = bi.ins_srtdeel_key + 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, @@ -5746,8 +5746,8 @@ AS FROM bes_bestelling b, bes_bestelling_item bi, bes_bestelopdr_item boi, - ins_srtdeel sd, - ins_srtgroep sg, + bes_srtdeel sd, + bes_srtgroep sg, bes_disc_params dp, bes_bestelopdr bo WHERE bes_bestelling_status = 5 @@ -5756,8 +5756,8 @@ AS 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.ins_srtdeel_key = sd.ins_srtdeel_key - AND sd.ins_srtgroep_key = sg.ins_srtgroep_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 @@ -5887,15 +5887,15 @@ AS SELECT DISTINCT bi.bes_bestelling_key, bes_bestelling_item_key FROM bes_bestelling_item bi, bes_bestelling b, - ins_srtdeel sd, - ins_srtgroep sg, + 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.ins_srtdeel_key = sd.ins_srtdeel_key - AND sd.ins_srtgroep_key = sg.ins_srtgroep_key + 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; @@ -5917,7 +5917,7 @@ AS v_errormsg VARCHAR2 (200); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); - + BEGIN FOR rec1 IN c1 LOOP @@ -5997,8 +5997,8 @@ AS 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 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 @@ -6009,7 +6009,7 @@ AS v_errormsg VARCHAR2 (200); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); - + BEGIN FOR rec1 IN c_opdr LOOP @@ -6023,9 +6023,9 @@ BEGIN 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; - - + END LOOP; + + FOR rec2 IN c_melding LOOP BEGIN @@ -6038,10 +6038,10 @@ BEGIN 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; - - - + END LOOP; + + + COMMIT; END; / @@ -6782,13 +6782,13 @@ AS '-' omvang FROM bes_bestelling b, bes_bestelling_item bi, - ins_srtdeel sd, - ins_srtgroep sg, + 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.ins_srtdeel_key = sd.ins_srtdeel_key - AND sd.ins_srtgroep_key = sg.ins_srtgroep_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 @@ -6870,34 +6870,34 @@ AS AND sk.bes_srtkenmerk_key = 65) naam_drager, TO_CHAR(bes_bestelling_datum,'DD-MM-YYYY'), - COALESCE (isd.ins_srtdeel_nr, '') + COALESCE (isd.bes_srtdeel_nr, '') || ' ' - || isd.ins_srtdeel_omschrijving + || isd.bes_srtdeel_omschrijving item, i.bes_bestelling_item_aantal, i.bes_bestelling_item_aantal - * COALESCE (bi.bes_bestelopdr_item_prijs, isd.ins_srtdeel_prijs) + * COALESCE (bi.bes_bestelopdr_item_prijs, isd.bes_srtdeel_prijs) prijs, pk.prs_kostenplaats_nr FROM bes_bestelling b, prs_v_perslid_fullnames_all pf, bes_bestelling_item i, - ins_srtdeel isd, - ins_srtgroep isg, + 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.ins_srtdeel_key = isd.ins_srtdeel_key - AND isd.ins_srtgroep_key = isg.ins_srtgroep_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 VIEW CONN_V_RAP_TOURSKLEDING ( FCLT_F_BESTELLER, @@ -6930,33 +6930,33 @@ AS AND sk.bes_srtkenmerk_key = 65) naam_drager, TO_CHAR (bes_bestelling_datum, 'DD-MM-YYYY'), - COALESCE (isd.ins_srtdeel_nr, '') + COALESCE (isd.bes_srtdeel_nr, '') || ' ' - || isd.ins_srtdeel_omschrijving + || isd.bes_srtdeel_omschrijving item, i.bes_bestelling_item_aantal, i.bes_bestelling_item_aantal - * COALESCE (bi.bes_bestelopdr_item_prijs, isd.ins_srtdeel_prijs) + * COALESCE (bi.bes_bestelopdr_item_prijs, isd.bes_srtdeel_prijs) prijs, pk.prs_kostenplaats_nr FROM bes_bestelling b, prs_v_perslid_fullnames_all pf, bes_bestelling_item i, - ins_srtdeel isd, - ins_srtgroep isg, + 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.ins_srtdeel_key = isd.ins_srtdeel_key - AND isd.ins_srtgroep_key = isg.ins_srtgroep_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; + 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 @@ -6994,9 +6994,9 @@ AS AND sk.bes_srtkenmerk_key = 65) naam_drager, TO_CHAR(bes_bestelling_datum,'DD-MM-YYYY'), - COALESCE (isd.ins_srtdeel_nr, '') + COALESCE (isd.bes_srtdeel_nr, '') || ' ' - || isd.ins_srtdeel_omschrijving + || isd.bes_srtdeel_omschrijving item, i.bes_bestelling_item_aantal, (SELECT ud.fac_usrdata_omschr @@ -7027,16 +7027,16 @@ AS FROM bes_bestelling b, prs_v_perslid_fullnames_all pf, bes_bestelling_item i, - ins_srtdeel isd, - ins_srtgroep isg, + 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.ins_srtdeel_key = isd.ins_srtdeel_key - AND isd.ins_srtgroep_key = isg.ins_srtgroep_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(+) @@ -7164,7 +7164,7 @@ AS 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 @@ -7177,6 +7177,7 @@ CREATE OR REPLACE PROCEDURE conn_import_budget ( ) 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); @@ -7191,13 +7192,13 @@ AS v_divisie VARCHAR2 (30); v_budget VARCHAR2 (30); v_district VARCHAR2 (30); - v_periode VARCHAR2 (10); + 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 (10); + v_vorige_divisie VARCHAR2 (30); CURSOR c IS @@ -7213,6 +7214,7 @@ BEGIN DELETE imp_log WHERE imp_log_applicatie = p_applname; + DELETE conn_imp_budget WHERE importrun IS NOT NULL; FOR rec IN c LOOP @@ -7220,7 +7222,8 @@ BEGIN v_errorhint := 'Inlezen regel'; v_newline := rec.fac_imp_file_line; - v_errorhint := 'Inlezen velden' || v_newline; + 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; @@ -7239,12 +7242,12 @@ BEGIN fac.imp_getfield (v_newline, v_fielddelimitor, v_eindtotaal); IF header_is_valid = 0 THEN - IF upper(v_locatie) = 'LOCATIE' - THEN + IF upper(v_locatie) = 'LOCATIE' + THEN header_is_valid := 1; END IF; ELSE - v_errorhint := 'Toevoegen record: ' || v_newline; + v_errorhint := 'Toevoegen record: ' || v_aanduiding; INSERT INTO conn_imp_budget (locatie, adres, @@ -7263,17 +7266,25 @@ BEGIN v_divisie, v_budget, v_district, - v_periode, - fac.safe_to_number(v_huur), - fac.safe_to_number(v_afschrijving), - fac.safe_to_number(v_servicekosten), - fac.safe_to_number(v_eindtotaal), + 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; @@ -7293,16 +7304,659 @@ END; CREATE OR REPLACE PROCEDURE conn_update_budget (p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS BEGIN - 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' + 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, + huur, + afschrijving, + servicekosten + FROM conn_imp_budget b + 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 kostensoort = 'Fac.kosten' + UNION ALL + SELECT locatie, + UPPER(divisie) divisie, + jaar, + maand, + bedrag huur, + 0 afschrijving, + 0 servicekosten + FROM conn_imp_kosten + WHERE 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, + huur, + afschrijving, + servicekosten + FROM conn_imp_budget b + UNION ALL + SELECT locatie, + UPPER(divisie) divisie, + jaar, + maand, + 0 huur, + 0 afschrijving, + bedrag * (-1) servicekosten + FROM conn_imp_kosten + WHERE kostensoort = 'Fac.kosten' + UNION ALL + SELECT locatie, + UPPER(divisie) divisie, + jaar, + maand, + bedrag * (-1) huur, + 0 afschrijving, + 0 servicekosten + FROM conn_imp_kosten + WHERE 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 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 = rec.opzegtermijn + UNION ALL + SELECT cnt_termijn_key + FROM cnt_termijn + WHERE cnt_termijn_type = 'Y' + AND cnt_termijn_aantal = 1 + AND rec.opzegtermijn = 12); + + 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; + BEGIN fac.registercustversion('CONN', 43); END; / -BEGIN adm.systrackscript('$Workfile: conn.sql $', '$Revision: 162 $', 0); END; +BEGIN adm.systrackscript('$Workfile: conn.sql $', '$Revision: 163 $', 0); END; / COMMIT;