PZEE#88176: Pragmatisch Voorraadbeheer en Monitoring (voor Representatieartikelen).
svn path=/Database/trunk/; revision=69183
This commit is contained in:
112
BES/BES_VIE.SRC
112
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
|
||||
|
||||
Reference in New Issue
Block a user