SCBR#61562: nieuwe rapporten

svn path=/Customer/trunk/; revision=46337
This commit is contained in:
Suzan Wiegerinck
2020-03-23 16:13:36 +00:00
parent fa176dfce5
commit 3b02184356

View File

@@ -117,7 +117,6 @@ CREATE OR REPLACE VIEW SCBR_V_RAP_SLEUTELUITGIFTE
CILINDER,
RUIMTE
)
BEQUEATH DEFINER
AS
SELECT prs_perslid_naam_full,
COALESCE (p.prs_perslid_mobiel, p.prs_perslid_telefoonnr)
@@ -197,86 +196,93 @@ AS
COALESCE (p.prs_perslid_mobiel, p.prs_perslid_telefoonnr),
sleutel;
CREATE OR REPLACE PACKAGE SCBR
CREATE OR REPLACE VIEW SCBR_V_RAP_BESTELLINGEN
(
CATALOGUS,
KOSTENSOORT,
KOSTENPLAATS,
BUDGETHOUDER,
BESTELOPDRACHT,
BESTEL_DATUM,
BESTEL_STATUS,
BESTELLER,
ARTIKEL,
ARTIKEL_PRIJS,
AANTAL,
REGEL_TOTAAL
)
AS
PROCEDURE bijwerken_bes (p_bes_bestelling_key IN NUMBER);
END SCBR;
/
SELECT d.ins_discipline_omschrijving
catalogus,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT MAX (
COALESCE (bsg.prs_kostensoort_key,
disc.prs_kostensoort_key))
FROM bes_discipline disc, bes_srtgroep bsg
WHERE disc.ins_discipline_key =
bsg.ins_discipline_key
AND disc.ins_discipline_key = d.ins_discipline_key))
kostensoort,
kp.prs_kostenplaats_nr,
kp.budgethouder,
bo.bes_bestelopdr_id,
bo.bes_bestelopdr_datum,
stat.bes_bestelopdrstatuses_omschr,
pn.prs_perslid_naam_friendly
besteller,
boi.bes_bestelopdr_item_omschrijv,
COALESCE (boi.bes_bestelopdr_item_prijs, 0),
boi.bes_bestelopdr_item_aantalontv,
COALESCE (
boi.bes_bestelopdr_item_prijs
* boi.bes_bestelopdr_item_aantalontv,
0)
AS totaal_bedrag
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelopdrstatuses stat,
prs_v_perslid_fullnames_all pn,
prs_perslid p,
prs_afdeling a,
bes_bestelling b,
bes_bestelling_item bi,
bes_srtdeel sd,
bes_srtgroep sg,
ins_tab_discipline d,
(SELECT kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
bh.prs_perslid_naam_friendly budgethouder
FROM prs_kostenplaats kp, prs_v_perslid_fullnames_all bh
WHERE kp.prs_perslid_key = bh.prs_perslid_key(+)) kp
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND stat.bes_bestelopdrstatuses_key = bo.bes_bestelopdr_status
AND bo.prs_perslid_key = pn.prs_perslid_key
AND bo.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key(+)
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = d.ins_discipline_key
ORDER BY d.ins_discipline_omschrijving,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT MAX (
COALESCE (bsg.prs_kostensoort_key,
disc.prs_kostensoort_key))
FROM bes_discipline disc, bes_srtgroep bsg
WHERE disc.ins_discipline_key =
bsg.ins_discipline_key
AND disc.ins_discipline_key =
d.ins_discipline_key)),
kp.prs_kostenplaats_nr,
bo.bes_bestelopdr_id;
CREATE OR REPLACE PACKAGE BODY SCBR
AS
PROCEDURE bijwerken_bes (p_bes_bestelling_key IN NUMBER)
IS
v_count NUMBER;
v_kenmerk_key NUMBER;
v_errorhint VARCHAR2 (4000);
v_mag_locatie VARCHAR2 (25);
-- Haal de bestelregels van de bestelling op
CURSOR c_br IS
SELECT bes_bestelling_item_key, bes_srtdeel_key
FROM bes_bestelling_item br
WHERE br.bes_bestelling_key = p_bes_bestelling_key;
BEGIN
FOR rec IN c_br
LOOP
v_errorhint := 'Fout bij bepalen magazijnlocatie';
-- bepaal eerst de juiste kenmerkkey
SELECT k.bes_kenmerk_key
INTO v_kenmerk_key
FROM bes_srtkenmerk sk,
bes_kenmerk k,
bes_srtgroep ag,
bes_srtdeel a
WHERE k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND bes_srtkenmerk_upper = 'MAGAZIJNLOCATIE'
AND k.bes_srtinstallatie_key = ag.ins_discipline_key
AND a.bes_srtgroep_key = ag.bes_srtgroep_key
AND bes_srtdeel_key = rec.bes_srtdeel_key;
-- controleren of deze niet al gevuld is bij de bestelregel
SELECT COUNT (*)
INTO v_count
FROM bes_kenmerkbesteli km
WHERE km.bes_bestelling_item_key =
rec.bes_bestelling_item_key
AND km.bes_kenmerk_key = v_kenmerk_key
AND km.bes_kenmerkbesteli_verwijder IS NULL;
--- als dit kenmerk nog niet gevuld is dan gaan we het bij de bestelregel toevoegen
IF v_count = 0
THEN
--- eerst maar eens de magazijn locatie opvragen
SELECT bes_srtdeel_notitie
INTO v_mag_locatie
FROM bes_srtdeel art
WHERE art.bes_srtdeel_key = rec.bes_srtdeel_key;
IF v_mag_locatie IS NOT NULL
THEN
INSERT INTO bes_kenmerkbesteli (
bes_kenmerk_key,
bes_bestelling_item_key,
bes_kenmerkbesteli_waarde)
VALUES (v_kenmerk_key,
rec.bes_bestelling_item_key,
v_mag_locatie);
ELSE
INSERT INTO bes_kenmerkbesteli (
bes_kenmerk_key,
bes_bestelling_item_key,
bes_kenmerkbesteli_waarde)
VALUES (v_kenmerk_key,
rec.bes_bestelling_item_key,
'Onbekend');
END IF;
END IF;
END LOOP;
END;
END SCBR;
/
------ payload end ------
SET DEFINE OFF