From e0dd8acaf016a36e9ca8b52e58c8f52e3d39f978 Mon Sep 17 00:00:00 2001 From: Maarten van der Heide Date: Wed, 7 Sep 2022 13:30:30 +0000 Subject: [PATCH] KFNS#73533+KFNS#73843+KFNS#74055 Numerieke overflow (ORA-01426) svn path=/Customer/trunk/; revision=57175 --- KFNS/kfns.sql | 176 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 141 insertions(+), 35 deletions(-) diff --git a/KFNS/kfns.sql b/KFNS/kfns.sql index 761a17292..37fc5050d 100644 --- a/KFNS/kfns.sql +++ b/KFNS/kfns.sql @@ -3601,12 +3601,12 @@ AS -- Dat de data per artikelgroep(/eigenaar) wordt genotificeerd (via extra_key- -- principe). /* Formatted on 15-1-2016 13:58:02 (QP5 v5.136.908.31019) */ +/* CREATE OR REPLACE VIEW kfns_v_mag_voorraad ( extra_key, -- fac_usrdata_key in ET-Artikeleigenaren (per Artikelgroep) artikelgroep, --artikeleigenaar, - --afleveradres, artikelnummer, artikelomschrijving, voorraad, @@ -3621,38 +3621,38 @@ AS --TRIM (ud.fac_usrdata_code), sg.bes_srtgroep_omschrijving, --TRIM (ud.fac_usrdata_omschr), - --sd.bes_srtdeel_opmerking, -- KFNS#73533/73843/74055: ORA-01426? - --'DD-Daalsedijk 14', + --sd.bes_srtdeel_opmerking, sd.bes_srtdeel_nr, sd.bes_srtdeel_omschrijving, - --x.extern_geleverd - --- COALESCE ( - -- CEIL (x.intern_besteld / sd.bes_srtdeel_voorraadfactor), - -- 0), - x.extern_geleverd - - CEIL(x.intern_besteld - / DECODE (sd.bes_srtdeel_voorraadfactor, - NULL, 1, - 0, 1, - sd.bes_srtdeel_voorraadfactor)), + --DECODE (x.bes_srtdeel_nr, + -- NULL, 0, + -- x.extern_geleverd + -- - CEIL(x.intern_besteld + -- / DECODE (sd.bes_srtdeel_voorraadfactor, + -- NULL, 1, + -- 0, 1, + -- sd.bes_srtdeel_voorraadfactor))), + COALESCE (x.extern_geleverd, 0) - COALESCE (x.intern_besteld, 0), sd.bes_srtdeel_eenheid, sd.bes_srtdeel_voorraadmin, bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL), - (x.extern_geleverd - - CEIL(x.intern_besteld - / DECODE (sd.bes_srtdeel_voorraadfactor, - NULL, 1, - 0, 1, - sd.bes_srtdeel_voorraadfactor))) - * bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL), - (x.extern_geleverd - - CEIL(x.intern_besteld - / DECODE (sd.bes_srtdeel_voorraadfactor, - NULL, 1, - 0, 1, - sd.bes_srtdeel_voorraadfactor))) - * bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL) - * ( (100 + sd.bes_srtdeel_btw) / 100) -- Afronding? + --(x.extern_geleverd + -- - CEIL(x.intern_besteld + -- / DECODE (sd.bes_srtdeel_voorraadfactor, + -- NULL, 1, + -- 0, 1, + -- sd.bes_srtdeel_voorraadfactor))) + --* bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL), + --(x.extern_geleverd + -- - CEIL(x.intern_besteld + -- / DECODE (sd.bes_srtdeel_voorraadfactor, + -- NULL, 1, + -- 0, 1, + -- sd.bes_srtdeel_voorraadfactor))) + --* bes.getsrtdeelprijs (sd.bes_srtdeel_key, NULL) + --* ((100 + sd.bes_srtdeel_btw) / 100) -- Afronding? + TO_NUMBER (NULL), + TO_NUMBER (NULL) FROM bes_v_aanwezigsrtgroep sg, bes_v_aanwezigsrtdeel sd, -- KFNS#71209: Geen verwijderde artikelen! ( SELECT inkoop_disc_key, @@ -3745,13 +3745,120 @@ AS AND COALESCE (sd.bes_srtdeel_vervaldatum, SYSDATE) > TRUNC (SYSDATE) AND sd.bes_srtdeel_nr = x.bes_srtdeel_nr(+) AND UPPER (TRIM (sg.bes_srtgroep_omschrijving)) = ud.fac_usrdata_upper(+); +*/ +CREATE OR REPLACE VIEW kfns_v_mag_voorraad +( + extra_key, -- fac_usrdata_key in ET-Artikeleigenaren (per Artikelgroep) + artikelgroep, + artikelnummer, + artikelomschrijving, + voorraad, + eenheid, + min_voorraad, + artikelprijs, + voorraadexcl, + voorraadincl +) +AS + SELECT ud.fac_usrdata_key, + sg.bes_srtgroep_omschrijving, + sd.bes_srtdeel_nr, + sd.bes_srtdeel_omschrijving, + COALESCE (x.extern_geleverd, 0) - COALESCE (x.intern_besteld, 0), -- Voorraadfactor in de praktijk altijd 1. + sd.bes_srtdeel_eenheid, + sd.bes_srtdeel_voorraadmin, + TO_NUMBER (NULL), -- Prijzen in de praktijd altijd 0,00. + TO_NUMBER (NULL), -- Voorraad-waarde niet relevant zonder prijzen. + TO_NUMBER (NULL) -- Voorraad-waarde niet relevant zonder prijzen. + FROM bes_v_aanwezigsrtgroep sg, + bes_v_aanwezigsrtdeel sd, -- KFNS#71209: Geen verwijderde artikelen! + ( SELECT bes_srtdeel_nr, + SUM (intern_besteld) intern_besteld, + SUM (extern_besteld) extern_besteld, + SUM (extern_geleverd) extern_geleverd + FROM ( -- Intern besteld + SELECT dp.bes_ins_discipline_key_inkoop inkoop_disc_key, + sd.bes_srtdeel_nr, + bi.bes_bestelling_item_aantal intern_besteld, + 0 extern_besteld, + 0 extern_geleverd + FROM bes_bestelling b, + bes_bestelling_item bi, + bes_srtdeel sd, + bes_srtgroep sg, + bes_discipline bd, + bes_disc_params dp + WHERE b.bes_bestelling_key = bi.bes_bestelling_key + AND bi.bes_srtdeel_key = sd.bes_srtdeel_key + AND sd.bes_srtdeel_verwijder IS NULL + AND sd.bes_srtgroep_key = sg.bes_srtgroep_key + AND sg.ins_discipline_key = bd.ins_discipline_key + AND bd.ins_discipline_key = dp.bes_ins_discipline_key + AND dp.bes_ins_discipline_key_inkoop IS NOT NULL + UNION ALL -- Extern besteld + SELECT bd.ins_discipline_key inkoop_disc_key, + sd.bes_srtdeel_nr, + 0 intern_besteld, + bi.bes_bestelling_item_aantal extern_besteld, + 0 extern_geleverd + FROM bes_bestelling b, + bes_bestelling_item bi, + bes_srtdeel sd, + bes_srtgroep sg, + bes_discipline bd, + bes_disc_params dp + WHERE b.bes_bestelling_status IN (2, 3, 4, 5) + AND b.bes_bestelling_key = bi.bes_bestelling_key + AND bi.bes_srtdeel_key = sd.bes_srtdeel_key + AND sd.bes_srtdeel_verwijder IS NULL + AND sd.bes_srtgroep_key = sg.bes_srtgroep_key + AND sg.ins_discipline_key = bd.ins_discipline_key + AND bd.ins_discipline_key = dp.bes_ins_discipline_key + AND dp.bes_ins_discipline_key_inkoop IS NULL + AND dp.bes_ins_discipline_key IN + (SELECT bes_ins_discipline_key_inkoop + FROM bes_disc_params + WHERE bes_ins_discipline_key_inkoop IS NOT NULL) + UNION ALL -- Extern geleverd + SELECT bd.ins_discipline_key inkoop_disc_key, + sd.bes_srtdeel_nr, + 0 intern_besteld, + 0 extern_besteld, + bi.bes_bestelling_item_aantal extern_geleverd + FROM bes_bestelling b, + bes_bestelling_item bi, + bes_srtdeel sd, + bes_srtgroep sg, + bes_discipline bd, + bes_disc_params dp + WHERE b.bes_bestelling_status IN (6, 7) + AND b.bes_bestelling_key = bi.bes_bestelling_key + AND bi.bes_srtdeel_key = sd.bes_srtdeel_key + AND sd.bes_srtdeel_verwijder IS NULL + AND sd.bes_srtgroep_key = sg.bes_srtgroep_key + AND sg.ins_discipline_key = bd.ins_discipline_key + AND bd.ins_discipline_key = dp.bes_ins_discipline_key + AND dp.bes_ins_discipline_key_inkoop IS NULL + AND dp.bes_ins_discipline_key IN + (SELECT bes_ins_discipline_key_inkoop + FROM bes_disc_params + WHERE bes_ins_discipline_key_inkoop IS NOT NULL)) + GROUP BY bes_srtdeel_nr) x, + ( SELECT TRIM (fac_usrdata_upper) fac_usrdata_upper, + MIN (fac_usrdata_key) fac_usrdata_key + FROM fac_v_aanwezigusrdata + WHERE fac_usrtab_key = 42 + GROUP BY TRIM (fac_usrdata_upper)) ud -- Artikeleigenaren + WHERE sg.ins_discipline_key = 402 -- Beperken tot Magazijn-Ontvangst? + AND sg.bes_srtgroep_key = sd.bes_srtgroep_key + AND COALESCE (sd.bes_srtdeel_vervaldatum, SYSDATE) > TRUNC (SYSDATE) + AND sd.bes_srtdeel_nr = x.bes_srtdeel_nr(+) + AND UPPER (TRIM (sg.bes_srtgroep_omschrijving)) = ud.fac_usrdata_upper(+); CREATE OR REPLACE VIEW kfns_v_rap_mag_voorraad ( fclt_f_artikelgroep, --fclt_f_eigenaar, - --artikeleigenaar, -- KFNS#73533/73843/74055: ORA-01426? - --afleveradres, artikelnummer, artikelomschrijving, voorraad, @@ -3763,8 +3870,7 @@ CREATE OR REPLACE VIEW kfns_v_rap_mag_voorraad ) AS SELECT artikelgroep, - --artikeleigenaar, -- KFNS#73533/73843/74055: ORA-01426? - --afleveradres, + --artikeleigenaar, artikelnummer, artikelomschrijving, voorraad, @@ -3782,7 +3888,7 @@ CREATE OR REPLACE VIEW kfns_v_mag_verbruik -- Intern besteld kwartaal, extra_key, -- fac_usrdata_key in ET-Artikeleigenaren (per Artikelgroep) artikelgroep, - --artikeleigenaar, -- KFNS#73533/73843/74055: ORA-01426? + --artikeleigenaar, bestelnr, besteldatum, besteller, @@ -3797,7 +3903,7 @@ AS --TRIM (ud.fac_usrdata_code), x.bes_srtgroep_omschrijving, --TRIM (ud.fac_usrdata_omschr), - --x.bes_srtdeel_opmerking, -- KFNS#73533/73843/74055: ORA-01426? + --x.bes_srtdeel_opmerking, TO_CHAR (x.bes_bestelling_key), x.bes_bestelling_datum, og.opdrachtgever, @@ -3809,7 +3915,7 @@ AS b.bes_bestelling_datum, ud.fac_usrdata_key, sg.bes_srtgroep_omschrijving, - --sd.bes_srtdeel_opmerking, -- KFNS#73533/73843/74055: ORA-01426? + --sd.bes_srtdeel_opmerking, sd.bes_srtdeel_nr, sd.bes_srtdeel_omschrijving, sd.bes_srtdeel_eenheid,