diff --git a/VLKC/vlkc.sql b/VLKC/vlkc.sql index 0fc921e08..418f76ee2 100644 --- a/VLKC/vlkc.sql +++ b/VLKC/vlkc.sql @@ -4991,7 +4991,7 @@ AS v_locatie_key NUMBER (10); v_discipline_key NUMBER (10); v_stdmelding_key NUMBER (10); - v_body VARCHAR2 (4000); + v_body VARCHAR2 (4000); v_melding_key NUMBER (10); v_folder_kkey NUMBER (10); v_opdracht_id VARCHAR2 (255); @@ -5260,7 +5260,7 @@ EXCEPTION END; / --- VLKC#65151: Uitrijkaarten +-- VLKC#65151: Uitrijkaarten. CREATE OR REPLACE VIEW vlkc_v_rap_uitrijkaarten ( afspraakmaand, @@ -5344,6 +5344,180 @@ AS WHERE x.bez_afspraak_datum > TO_DATE ('01-01-2020', 'dd-mm-yyyy') AND x.bez_afspraak_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy'); +-- VLKC#69695: Automatisch uitgegeven opdrachten (bijna kopie van vlkc_v_rap_mld_kosten). +CREATE OR REPLACE VIEW vlkc_v_rap_autoorders +( + vakgroeptype, + vakgroep, + soortmelding, + opdrachttype, + opdrachtid, + uitvoerende, + omschrijving, + status, + aangemaakt, + toegekend, + verzonden, + kosten_opdr, + kosten_fact, + aantal_fact +) +AS + SELECT x.ins_srtdiscipline_omschrijving vakgroeptype, + x.ins_discipline_omschrijving vakgroep, + x.mld_stdmelding_omschrijving soortmelding, + x.mld_typeopdr_omschrijving opdrachttype, + TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr) opdrachtid, + COALESCE (x.prs_bedrijf_naam, x.prs_perslid_naam_full) uitvoerende, + x.mld_opdr_omschrijving omschrijving, + x.mld_statusopdr_omschrijving status, + x.mld_opdr_datumbegin aangemaakt, + fac.gettrackingdate ('ORDNEW', x.mld_opdr_key) toegekend, + x.mld_opdr_verzonden verzonden, + ROUND (x.mld_opdr_kosten, 2) kosten_opdr, + gefactureerd.kosten kosten_fact, + gefactureerd.aantal aantal_fact + FROM (SELECT o.mld_opdr_key, + o.mld_melding_key, + o.mld_opdr_bedrijfopdr_volgnr, + sd.ins_srtdiscipline_omschrijving, + md.ins_discipline_omschrijving, + sm.mld_stdmelding_omschrijving, + ot.mld_typeopdr_key, + ot.mld_typeopdr_omschrijving, + lev.prs_bedrijf_naam, + iuv.prs_perslid_naam_full, + o.mld_opdr_omschrijving, + os.mld_statusopdr_omschrijving, + o.mld_opdr_datumbegin, + o.mld_opdr_verzonden, + o.mld_opdr_kosten + FROM mld_opdr o, + mld_typeopdr ot, + mld_melding m, + mld_discipline md, + mld_stdmelding sm, + ins_srtdiscipline sd, + prs_bedrijf lev, + prs_v_perslid_fullnames iuv, + mld_statusopdr os + WHERE o.mld_melding_key = m.mld_melding_key + AND o.mld_typeopdr_key = ot.mld_typeopdr_key + AND m.mld_stdmelding_key = sm.mld_stdmelding_key + AND sm.mld_stdmelding_autoorder = 1 -- Autoorder! + AND sm.mld_typeopdr_key IS NOT NULL + AND sm.prs_dienst_key IS NOT NULL + AND FLOOR ((m.mld_melding_datum - o.mld_opdr_datumbegin) * 24 * 60) = 0 -- Opdracht binnen minuut na melding aangemaakt! + AND sm.mld_ins_discipline_key = md.ins_discipline_key + AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key + AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key(+) + AND o.mld_uitvoerende_keys = iuv.prs_perslid_key(+) + AND o.mld_statusopdr_key = os.mld_statusopdr_key) x + LEFT JOIN ( SELECT mld_opdr_key, + SUM (fin_factuur_totaal + fin_factuur_totaal_btw) kosten, + COUNT (DISTINCT fin_factuur_key) aantal + FROM fin_factuur + WHERE fin_factuur_verwijder IS NULL + AND fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt + GROUP BY mld_opdr_key) gefactureerd + ON x.mld_opdr_key = gefactureerd.mld_opdr_key; + +-- VLKC#69696: Openstaande opdrachten automatisch vs. niet automatisch aangemaakt. +CREATE OR REPLACE VIEW vlkc_v_rap_ord_open +( + vakgroeptype, + vakgroep, + soortmelding, + mld_typeopdr_key, + opdrachttype, + mld_opdr_key, + mld_melding_key, + opdrachtid, + uitvoerende, + status, + aangemaakt, + toegekend, + verzonden, + auto_order, + desk_order +) +AS + SELECT sd.ins_srtdiscipline_omschrijving, + md.ins_discipline_omschrijving, + sm.mld_stdmelding_omschrijving, + ot.mld_typeopdr_key, + ot.mld_typeopdr_omschrijving, + o.mld_opdr_key, + o.mld_melding_key, + TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) opdrachtid, + COALESCE (lev.prs_bedrijf_naam, iuv.prs_perslid_naam_full) uitvoerende, + os.mld_statusopdr_omschrijving, + o.mld_opdr_datumbegin aangemaakt, + fac.gettrackingdate ('ORDNEW', o.mld_opdr_key) toegekend, + o.mld_opdr_verzonden verzonden, + 1 auto_order, + 0 desk_order + FROM mld_opdr o, + mld_typeopdr ot, + mld_melding m, + mld_discipline md, + mld_stdmelding sm, + ins_srtdiscipline sd, + prs_bedrijf lev, + prs_v_perslid_fullnames iuv, + mld_statusopdr os + WHERE o.mld_melding_key = m.mld_melding_key + AND o.mld_typeopdr_key = ot.mld_typeopdr_key + AND m.mld_stdmelding_key = sm.mld_stdmelding_key + AND sm.mld_stdmelding_autoorder = 1 -- Autoorder! + AND sm.mld_typeopdr_key IS NOT NULL + AND sm.prs_dienst_key IS NOT NULL + AND FLOOR ((m.mld_melding_datum - o.mld_opdr_datumbegin) * 24 * 60) = 0 -- Opdracht <1 minuut na melding aangemaakt! + AND sm.mld_ins_discipline_key = md.ins_discipline_key + AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key + AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key(+) + AND o.mld_uitvoerende_keys = iuv.prs_perslid_key(+) + AND o.mld_statusopdr_key = os.mld_statusopdr_key + AND os.mld_statusopdr_key IN (3, 4, 5, 8, 10) + UNION ALL + SELECT sd.ins_srtdiscipline_omschrijving, + md.ins_discipline_omschrijving, + sm.mld_stdmelding_omschrijving, + ot.mld_typeopdr_key, + ot.mld_typeopdr_omschrijving, + o.mld_opdr_key, + o.mld_melding_key, + TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) opdrachtid, + COALESCE (lev.prs_bedrijf_naam, iuv.prs_perslid_naam_full) uitvoerende, + os.mld_statusopdr_omschrijving, + o.mld_opdr_datumbegin aangemaakt, + fac.gettrackingdate ('ORDNEW', o.mld_opdr_key) toegekend, + o.mld_opdr_verzonden verzonden, + 0 auto_order, + 1 desk_order + FROM mld_opdr o, + mld_typeopdr ot, + mld_melding m, + mld_discipline md, + mld_stdmelding sm, + ins_srtdiscipline sd, + prs_bedrijf lev, + prs_v_perslid_fullnames iuv, + mld_statusopdr os + WHERE o.mld_melding_key = m.mld_melding_key + AND o.mld_typeopdr_key = ot.mld_typeopdr_key + AND m.mld_stdmelding_key = sm.mld_stdmelding_key + AND ( sm.mld_stdmelding_autoorder = 0 + OR sm.mld_typeopdr_key IS NULL + OR sm.prs_dienst_key IS NULL + OR FLOOR ((m.mld_melding_datum - o.mld_opdr_datumbegin) * 24 * 60) > 0) -- Opdracht >1 minuut na melding aangemaakt! + AND sm.mld_ins_discipline_key = md.ins_discipline_key + AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key + AND o.mld_uitvoerende_keys = lev.prs_bedrijf_key(+) + AND o.mld_uitvoerende_keys = iuv.prs_perslid_key(+) + AND o.mld_statusopdr_key = os.mld_statusopdr_key + AND os.mld_statusopdr_key IN (3, 4, 5, 8, 10); + ------ payload end ------ SET DEFINE OFF