diff --git a/BES/BES_VIE.SRC b/BES/BES_VIE.SRC index bbb9defa..1c8d51d8 100644 --- a/BES/BES_VIE.SRC +++ b/BES/BES_VIE.SRC @@ -351,6 +351,118 @@ AS AND sd.prs_bedrijf_key = b.prs_bedrijf_key AND sd.bes_staffeltabel_key = bs.bes_staffeltabel_key; + +CREATE_VIEW(bes_v_average_current_stock, 0) +AS + -- Gemiddelde voorraad en bestellingen voor "Actuele lijst" artikelen. + SELECT sd.bes_srtdeel_key, + sd.bes_srtdeel_volgnr volgnummer, + sd.bes_srtdeel_nr artikelnummer, + sd.bes_srtdeel_omschrijving artikel, + sd.bes_srtdeel_notitie notitie, + dp.bes_ins_discipline_key, + bd.ins_discipline_omschrijving discipline, + g.bes_srtgroep_key, + g.bes_srtgroep_omschrijving groep, + sd.bes_srtdeel_voorraadmax voorraadmax, + sd.bes_srtdeel_voorraadmin voorraadmin, + sd.bes_srtdeel_maxbestel maxbestel, + sd.bes_srtdeel_minimum bestelmin, + sd.bes_srtdeel_maximum bestelmax, + sd.bes_srtdeel_veelvoud bestelveelvoud, + sd.bes_srtdeel_eenheid eenheid, + sd.bes_srtdeel_vervaldatum vervaldatum, + (SELECT COUNT(*) + FROM bes_kenmerk bk, + bes_srtkenmerk sk, + bes_srtdeel sd2, + bes_srtgroep sg + WHERE sd2.bes_srtgroep_key = sg.bes_srtgroep_key + AND (bk.bes_srtinstallatie_key = sg.ins_discipline_key + AND bk.bes_kenmerk_niveau LIKE 'D' + OR bk.bes_srtinstallatie_key = sg.bes_srtgroep_key + AND bk.bes_kenmerk_niveau LIKE 'G' + OR bk.bes_srtinstallatie_key = sd2.bes_srtdeel_key + AND bk.bes_kenmerk_niveau LIKE 'S') + AND bk.bes_kenmerk_type = 'I' + AND bk.bes_srtkenmerk_key = sk.bes_srtkenmerk_key + AND bk.bes_kenmerk_verwijder IS NULL + AND sk.bes_srtkenmerk_verwijder IS NULL + AND sd2.bes_srtdeel_key = sd.bes_srtdeel_key) aantal_kenmerken, + SUM(CASE WHEN b.bes_bestelling_status = 6 THEN 0 ELSE bi.bes_bestelling_item_aantal END) - SUM(CASE WHEN b.bes_bestelling_status = 6 THEN 0 ELSE COALESCE(bi.bes_bestelling_item_aantalontv, 0) END) in_bestelling, + SUM(bi.bes_bestelling_item_aantal) besteld, + SUM(COALESCE(bi.bes_bestelling_item_aantalontv, 0)) geleverd, + COALESCE(bes.getsrtdeelprijs(sd.bes_srtdeel_key, NULL), 0) prijs, + MIN(b.bes_bestelling_datum) eerste_bestelling, + MAX(b.bes_bestelling_datum) laatste_bestelling, + ROUND(MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) historie_dagen, + COUNT(sd.bes_srtdeel_key) aantal_bestellingen, + ROUND((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / COUNT(sd.bes_srtdeel_key)) bestel_periode_dagen, + CASE + WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0 + THEN NULL + ELSE ROUND((COUNT(sd.bes_srtdeel_key) / ((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365)) / 12, 1) + END bestellingen_per_maand, + CASE + WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0 + THEN NULL + ELSE ROUND((((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365) * SUM(bi.bes_bestelling_item_aantal)) / 12, 1) + END artikelen_per_maand, + CASE + WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0 + THEN NULL + ELSE ROUND((((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365) * SUM(bi.bes_bestelling_item_aantal)) * COALESCE(bes.getsrtdeelprijs(sd.bes_srtdeel_key, NULL), 0) / 12) + END totaal_per_maand, + CASE + WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0 + THEN NULL + ELSE ROUND(COUNT(sd.bes_srtdeel_key) / ((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365), 1) + END bestellingen_per_jaar, + CASE + WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0 + THEN NULL + ELSE ROUND(((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365) * SUM(bi.bes_bestelling_item_aantal)) + END artikelen_per_jaar, + CASE + WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0 + THEN NULL + ELSE ROUND(((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365) * SUM(bi.bes_bestelling_item_aantal)) * COALESCE(bes.getsrtdeelprijs(sd.bes_srtdeel_key, NULL), 0) + END totaal_per_jaar + FROM bes_discipline bd, + bes_v_aanwezigsrtgroep g, + bes_v_aanwezigsrtdeel sd, + bes_disc_params dp, + bes_bestelling b, + bes_bestelling_item bi + WHERE sd.bes_srtgroep_key = g.bes_srtgroep_key + AND dp.bes_disc_params_bestelmode = 3 + AND g.ins_discipline_key = bd.ins_discipline_key + AND bd.ins_discipline_key = dp.bes_ins_discipline_key + AND sd.bes_srtdeel_key = bi.bes_srtdeel_key + AND bi.bes_bestelling_key = b.bes_bestelling_key + AND b.bes_bestelling_status IN (2, 3, 4, 5, 6) + AND (sd.bes_srtdeel_vervaldatum IS NULL + OR sd.bes_srtdeel_vervaldatum > SYSDATE) +GROUP BY sd.bes_srtdeel_volgnr, + sd.bes_srtdeel_nr, + sd.bes_srtdeel_key, + sd.bes_srtdeel_omschrijving, + sd.bes_srtdeel_notitie, + dp.bes_ins_discipline_key, + bd.ins_discipline_omschrijving, + g.bes_srtgroep_key, + g.bes_srtgroep_omschrijving, + sd.bes_srtdeel_voorraadmax, + sd.bes_srtdeel_voorraadmin, + sd.bes_srtdeel_maxbestel, + sd.bes_srtdeel_minimum, + sd.bes_srtdeel_maximum, + sd.bes_srtdeel_veelvoud, + sd.bes_srtdeel_eenheid, + sd.bes_srtdeel_vervaldatum +ORDER BY sd.bes_srtdeel_volgnr, + sd.bes_srtdeel_nr; + REGISTERRUN('$Id$') #endif // BES