diff --git a/VBXX/vbxx.sql b/VBXX/vbxx.sql index 79144112f..fe0b1e323 100644 --- a/VBXX/vbxx.sql +++ b/VBXX/vbxx.sql @@ -3619,206 +3619,197 @@ AS -- CREATE OR REPLACE VIEW vbxx_v_factuur_gegevens AS - SELECT f.fin_factuur_key, - DECODE ( - c.cnt_contract_key, - NULL, DECODE ( - bo.bes_bestelopdr_key, - NULL, (SELECT sd.ins_srtdiscipline_prefix - || m.mld_melding_key - || '/' - || o.mld_opdr_bedrijfopdr_volgnr - FROM mld_melding m, - mld_stdmelding std, - ins_tab_discipline d, - ins_srtdiscipline sd - WHERE m.mld_melding_key = - o.mld_melding_key - AND 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), - bo.bes_bestelopdr_id), - 'C' - || TO_CHAR (cnt_contract_nummer_intern) - || DECODE (cnt_contract_versie, - NULL, NULL, - '.' || cnt_contract_versie)) - opdracht_id, - f.fin_factuur_datum, - f.fin_factuur_nr, - COALESCE (b_c.prs_bedrijf_key, - COALESCE (b_o.prs_bedrijf_key, b_b.prs_bedrijf_key)) - prs_bedrijf_key, - DECODE ( - (SELECT prs_kenmerklink_waarde - FROM prs_kenmerklink kl, prs_kenmerk k - WHERE kl.prs_kenmerk_key = k.prs_kenmerk_key - AND k.prs_kenmerk_code = 'ONDERDEELVEBEGO' - AND kl.prs_link_key = + SELECT f.fin_factuur_key, + DECODE ( + c.cnt_contract_key, + NULL, DECODE ( + bo.bes_bestelopdr_key, + NULL, (SELECT sd.ins_srtdiscipline_prefix + || m.mld_melding_key + || '/' + || o.mld_opdr_bedrijfopdr_volgnr + FROM mld_melding m, + mld_stdmelding std, + ins_tab_discipline d, + ins_srtdiscipline sd + WHERE m.mld_melding_key = o.mld_melding_key + AND 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), + bo.bes_bestelopdr_id), + 'C' + || TO_CHAR (cnt_contract_nummer_intern) + || DECODE (cnt_contract_versie, NULL, NULL, '.' || cnt_contract_versie)) + opdracht_id, + f.fin_factuur_datum, + f.fin_factuur_nr, + COALESCE (b_c.prs_bedrijf_key, COALESCE (b_o.prs_bedrijf_key, b_b.prs_bedrijf_key)) + prs_bedrijf_key, + DECODE ( + (SELECT prs_kenmerklink_waarde + FROM prs_kenmerklink kl, prs_kenmerk k + WHERE kl.prs_kenmerk_key = k.prs_kenmerk_key + AND k.prs_kenmerk_code = 'ONDERDEELVEBEGO' + AND kl.prs_link_key = + COALESCE (b_c.prs_bedrijf_key, COALESCE (b_o.prs_bedrijf_key, b_b.prs_bedrijf_key))), + '1', 63, + 62) + dagboek, + fr.fin_factuurregel_totaal, + ROUND ( + fr.fin_factuurregel_totaal + * DECODE (btw.fin_btwtabelwaarde_verlegd, 1, 0, btw.fin_btwtabelwaarde_perc / 100), + 2) + fin_factuurregel_btw, + btw.fin_btwtabelwaarde_code, + btw.fin_btwtabelwaarde_key, + fr.fin_factuurregel_nr, + fr.fin_factuurregel_key, + f.fin_factuur_debiteur_nr, + f.fin_factuur_opmerking, + f.fin_factuur_boekmaand, + prs_kostensoort_oms, + k.prs_kostensoort_refcode, + k.prs_kostensoort_opmerking, + k.prs_kostensoort_key, + g.alg_gebouw_code, + (SELECT fac.safe_to_number (alg_onrgoedkenmerk_waarde) + FROM alg_onrgoedkenmerk aogk, alg_kenmerk k + WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key + AND aogk.alg_onrgoed_key = COALESCE(ml.alg_district_key, cl.alg_district_key) + AND k.alg_kenmerk_code = 'AFWDAGBOEKNR') + afw_dagboek, + (SELECT alg_onrgoedkenmerk_waarde + FROM alg_onrgoedkenmerk aogk, alg_kenmerk k + WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key + AND aogk.alg_onrgoed_key = COALESCE(ml.alg_district_key, cl.alg_district_key) + AND k.alg_kenmerk_code = 'AFWKSTDRCODE') + afw_kstdrcode, + o.mld_opdr_key, + c.cnt_contract_key, + bo.bes_bestelopdr_key, + ( -- status van de factuur is ingevoerd als er facturen van dezelfde leverancier en nummer zijn + -- met status ingevoerd, afgewezen of incompleet + SELECT DECODE (COUNT (*), 0, f.fin_factuur_statuses_key, 2) + FROM fin_factuur f_t, + cnt_contract c_t, + bes_bestelopdr b_t, + mld_opdr o_t + WHERE f_t.fin_factuur_verwijder IS NULL + AND f_t.mld_opdr_key = o_t.mld_opdr_key(+) + AND f_t.cnt_contract_key = c_t.cnt_contract_key(+) + AND f_t.bes_bestelopdr_key = b_t.bes_bestelopdr_key(+) + AND COALESCE ( + o_t.mld_uitvoerende_keys, + COALESCE ( + b_t.prs_bedrijf_key, COALESCE ( - b_c.prs_bedrijf_key, - COALESCE (b_o.prs_bedrijf_key, - b_b.prs_bedrijf_key))), - '1', 63, - 62) - dagboek, - fr.fin_factuurregel_totaal, - ROUND ( - fr.fin_factuurregel_totaal - * DECODE (btw.fin_btwtabelwaarde_verlegd, - 1, 0, - btw.fin_btwtabelwaarde_perc / 100), - 2) - fin_factuurregel_btw, - btw.fin_btwtabelwaarde_code, - btw.fin_btwtabelwaarde_key, - fr.fin_factuurregel_nr, - fr.fin_factuurregel_key, - f.fin_factuur_debiteur_nr, - f.fin_factuur_opmerking, - f.fin_factuur_boekmaand, - prs_kostensoort_oms, - k.prs_kostensoort_refcode, - k.prs_kostensoort_opmerking, - k.prs_kostensoort_key, - g.alg_gebouw_code, - ( SELECT fac.safe_to_number(alg_onrgoedkenmerk_waarde) - FROM alg_onrgoedkenmerk aogk, alg_kenmerk k - WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key - AND aogk.alg_onrgoed_key = l.alg_district_key - AND k.alg_kenmerk_code = 'AFWDAGBOEKNR') - afw_dagboek, - ( SELECT alg_onrgoedkenmerk_waarde - FROM alg_onrgoedkenmerk aogk, alg_kenmerk k - WHERE aogk.alg_kenmerk_key = k.alg_kenmerk_key - AND aogk.alg_onrgoed_key = l.alg_district_key - AND k.alg_kenmerk_code = 'AFWKSTDRCODE') - afw_kstdrcode, - o.mld_opdr_key, - c.cnt_contract_key, - bo.bes_bestelopdr_key, - ( -- status van de factuur is ingevoerd als er facturen van dezelfde leverancier en nummer zijn - -- met status ingevoerd, afgewezen of incompleet - SELECT DECODE (COUNT (*), 0, f.fin_factuur_statuses_key, 2) - FROM fin_factuur f_t, - cnt_contract c_t, - bes_bestelopdr b_t, - mld_opdr o_t - WHERE f_t.fin_factuur_verwijder IS NULL - AND f_t.mld_opdr_key = o_t.mld_opdr_key(+) - AND f_t.cnt_contract_key = c_t.cnt_contract_key(+) - AND f_t.bes_bestelopdr_key = b_t.bes_bestelopdr_key(+) - AND COALESCE ( - o_t.mld_uitvoerende_keys, - COALESCE ( - b_t.prs_bedrijf_key, - COALESCE ( - c_t.cnt_prs_bedrijf_key, - (SELECT a.prs_bedrijf_key - FROM prs_v_afdeling a, prs_perslid p - WHERE o_t.mld_uitvoerende_keys = - p.prs_perslid_key - AND p.prs_afdeling_key = - a.prs_afdeling_key)))) = - COALESCE ( - o.mld_uitvoerende_keys, - COALESCE ( - bo.prs_bedrijf_key, - COALESCE ( - c.cnt_prs_bedrijf_key, - (SELECT a.prs_bedrijf_key - FROM prs_v_afdeling a, prs_perslid p - WHERE o.mld_uitvoerende_keys = - p.prs_perslid_key - AND p.prs_afdeling_key = - a.prs_afdeling_key)))) - AND f.fin_factuur_nr = f_t.fin_factuur_nr - AND f_t.fin_factuur_statuses_key IN (1, 2, 3, 5) -- Afgewezen, Ingevoerd, Incompleet, Ter goedkeuring - AND f.fin_factuur_statuses_key = 6) - fin_factuur_statuses_key, - lk.prs_kostenplaats_nr - lev_kpn, - l.alg_district_key, - DECODE (f.cnt_contract_key, NULL, - DECODE (f.bes_bestelopdr_key, NULL, - (SELECT fac_usrdata_code - FROM fac_usrdata ud, mld_kenmerkopdr ko, mld_kenmerk k, mld_srtkenmerk sk - WHERE o.mld_opdr_key = ko.mld_opdr_key - AND ko.mld_kenmerk_key = k.mld_kenmerk_key - AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key - AND sk.mld_srtkenmerk_code = 'TYPEFACTUUR' - AND FAC.safe_to_number(ko.mld_kenmerkopdr_waarde) = ud.fac_usrdata_key), - 'B'), - 'A') typefactuur - FROM fin_factuur f, - fin_factuurregel fr, - fin_btwtabelwaarde btw, - mld_opdr o, - mld_melding m, - alg_locatie l, - alg_gebouw g, - mld_typeopdr ot, - cnt_contract c, - bes_bestelopdr bo, - ( SELECT fc.fin_factuur_key, MIN (cs.cnt_alg_plaats_key) alg_gebouw_key - FROM fin_factuur fc, cnt_contract_plaats cs - WHERE fc.cnt_contract_key = cs.cnt_contract_key AND cnt_alg_plaats_code = 'G' AND cnt_contract_plaats_verwijder IS NULL - GROUP BY fc.fin_factuur_key - UNION ALL - SELECT fo.fin_factuur_key, og.alg_gebouw_key - FROM fin_factuur fo, - mld_opdr o1, - mld_melding m1, - alg_v_allonroerendgoed og - WHERE fo.mld_opdr_key = o1.mld_opdr_key - AND o1.mld_melding_key = m1.mld_melding_key - AND m1.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys - UNION ALL - SELECT fb.fin_factuur_key, MIN (g1.alg_gebouw_key) alg_gebouw_key - FROM fin_factuur fb, - bes_bestelopdr_item boi, - bes_bestelling_item bi, - bes_bestelling b, - alg_gebouw g1 - WHERE fb.bes_bestelopdr_key = boi.bes_bestelopdr_key - AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key - AND bi.bes_bestelling_key = b.bes_bestelling_key - AND b.mld_adres_key_lev = g1.mld_adres_key - GROUP BY fb.fin_factuur_key) fg, - (SELECT mld_uitvoerende_key, - DECODE (u.TYPE, - 'B', mld_uitvoerende_key, - a.prs_bedrijf_key) - prs_bedrijf_key - FROM mld_v_uitvoerende u, prs_v_afdeling a, prs_perslid p - WHERE u.mld_uitvoerende_key = prs_perslid_key(+) - AND p.prs_afdeling_key = a.prs_afdeling_key(+)) b_o, - prs_bedrijf b_c, - prs_bedrijf b_b, - prs_kostensoort k, - prs_kostensoortgrp kg, - prs_kostenplaats lk - WHERE f.fin_factuur_key = fr.fin_factuur_key - AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key - AND f.mld_opdr_key = o.mld_opdr_key(+) - AND o.mld_melding_key = m.mld_melding_key(+) - AND m.mld_alg_locatie_key = l.alg_locatie_key(+) - AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+) - AND f.cnt_contract_key = c.cnt_contract_key(+) - AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+) - AND bo.prs_bedrijf_key = b_b.prs_bedrijf_key(+) - AND o.mld_uitvoerende_keys = b_o.mld_uitvoerende_key(+) - AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+) - AND c.prs_kostensoort_key = k.prs_kostensoort_key(+) - AND k.prs_kostenplaats_key = lk.prs_kostenplaats_key(+) - AND k.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+) - AND f.fin_factuur_key = fg.fin_factuur_key - AND fg.alg_gebouw_key = g.alg_gebouw_key - AND g.alg_locatie_key = l.alg_locatie_key - AND f.fin_factuur_verwijder IS NULL; + c_t.cnt_prs_bedrijf_key, + (SELECT a.prs_bedrijf_key + FROM prs_v_afdeling a, prs_perslid p + WHERE o_t.mld_uitvoerende_keys = p.prs_perslid_key + AND p.prs_afdeling_key = a.prs_afdeling_key)))) = + COALESCE ( + o.mld_uitvoerende_keys, + COALESCE ( + bo.prs_bedrijf_key, + COALESCE ( + c.cnt_prs_bedrijf_key, + (SELECT a.prs_bedrijf_key + FROM prs_v_afdeling a, prs_perslid p + WHERE o.mld_uitvoerende_keys = p.prs_perslid_key + AND p.prs_afdeling_key = a.prs_afdeling_key)))) + AND f.fin_factuur_nr = f_t.fin_factuur_nr + AND f_t.fin_factuur_statuses_key IN (1, + 2, + 3, + 5) -- Afgewezen, Ingevoerd, Incompleet, Ter goedkeuring + AND f.fin_factuur_statuses_key = 6) + fin_factuur_statuses_key, + lk.prs_kostenplaats_nr + lev_kpn, + COALESCE(ml.alg_district_key, cl.alg_district_key) alg_district_key, + DECODE ( + f.cnt_contract_key, + NULL, DECODE ( + f.bes_bestelopdr_key, + NULL, (SELECT fac_usrdata_code + FROM fac_usrdata ud, + mld_kenmerkopdr ko, + mld_kenmerk k, + mld_srtkenmerk sk + WHERE o.mld_opdr_key = ko.mld_opdr_key + AND ko.mld_kenmerk_key = k.mld_kenmerk_key + AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key + AND sk.mld_srtkenmerk_code = 'TYPEFACTUUR' + AND FAC.safe_to_number (ko.mld_kenmerkopdr_waarde) = ud.fac_usrdata_key), + 'B'), + 'A') + typefactuur + FROM fin_factuur f, + fin_factuurregel fr, + fin_btwtabelwaarde btw, + mld_opdr o, + mld_melding m, + alg_locatie ml, + alg_locatie cl, + alg_gebouw g, + mld_typeopdr ot, + cnt_contract c, + bes_bestelopdr bo, + ( SELECT fc.fin_factuur_key, MIN (cs.cnt_alg_plaats_key) alg_gebouw_key + FROM fin_factuur fc, cnt_contract_plaats cs + WHERE fc.cnt_contract_key = cs.cnt_contract_key + AND cnt_alg_plaats_code = 'G' + AND cnt_contract_plaats_verwijder IS NULL + GROUP BY fc.fin_factuur_key + UNION ALL + SELECT fo.fin_factuur_key, og.alg_gebouw_key + FROM fin_factuur fo, + mld_opdr o1, + mld_melding m1, + alg_v_allonroerendgoed og + WHERE fo.mld_opdr_key = o1.mld_opdr_key + AND o1.mld_melding_key = m1.mld_melding_key + AND m1.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys + UNION ALL + SELECT fb.fin_factuur_key, MIN (g1.alg_gebouw_key) alg_gebouw_key + FROM fin_factuur fb, + bes_bestelopdr_item boi, + bes_bestelling_item bi, + bes_bestelling b, + alg_gebouw g1 + WHERE fb.bes_bestelopdr_key = boi.bes_bestelopdr_key + AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key + AND bi.bes_bestelling_key = b.bes_bestelling_key + AND b.mld_adres_key_lev = g1.mld_adres_key + GROUP BY fb.fin_factuur_key) fg, + (SELECT mld_uitvoerende_key, DECODE (u.TYPE, 'B', mld_uitvoerende_key, a.prs_bedrijf_key) prs_bedrijf_key + FROM mld_v_uitvoerende u, prs_v_afdeling a, prs_perslid p + WHERE u.mld_uitvoerende_key = prs_perslid_key(+) AND p.prs_afdeling_key = a.prs_afdeling_key(+)) b_o, + prs_bedrijf b_c, + prs_bedrijf b_b, + prs_kostensoort k, + prs_kostensoortgrp kg, + prs_kostenplaats lk + WHERE f.fin_factuur_key = fr.fin_factuur_key + AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key + AND f.mld_opdr_key = o.mld_opdr_key(+) + AND o.mld_melding_key = m.mld_melding_key(+) + AND m.mld_alg_locatie_key = ml.alg_locatie_key(+) + AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+) + AND f.cnt_contract_key = c.cnt_contract_key(+) + AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+) + AND bo.prs_bedrijf_key = b_b.prs_bedrijf_key(+) + AND o.mld_uitvoerende_keys = b_o.mld_uitvoerende_key(+) + AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+) + AND f.prs_kostensoort_key = k.prs_kostensoort_key(+) + AND k.prs_kostenplaats_key = lk.prs_kostenplaats_key(+) + AND k.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+) + AND f.fin_factuur_key = fg.fin_factuur_key(+) + AND fg.alg_gebouw_key = g.alg_gebouw_key(+) + AND g.alg_locatie_key = cl.alg_locatie_key(+) + AND f.fin_factuur_verwijder IS NULL; CREATE OR REPLACE VIEW vbxx_v_export_exact_xml ( @@ -4014,7 +4005,7 @@ BEGIN AND alg_district_key = p_district_key; INSERT INTO vbxx_exp_factuur (fin_factuur_key, dagboek, alg_district_key) - ( SELECT DISTINCT fg.fin_factuur_key, fg.dagboek, alg_district_key + ( SELECT DISTINCT fg.fin_factuur_key, fg.dagboek, p_district_key FROM vbxx_v_factuur_gegevens fg, prs_bedrijf b WHERE fg.prs_bedrijf_key = b.prs_bedrijf_key