SCBR#61562: nieuwe rapporten
svn path=/Customer/trunk/; revision=46337
This commit is contained in:
164
SCBR/SCBR.sql
164
SCBR/SCBR.sql
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user