AASA#84855 -- Wijzigingen bundel-catering SABIC Eurest en Appel

svn path=/Customer/trunk/; revision=66516
This commit is contained in:
Jos Migo
2024-10-08 09:44:36 +00:00
parent 2facd0fd53
commit 2c1f2dd562

View File

@@ -131,6 +131,7 @@ CREATE OR REPLACE VIEW aasa_v_export_budget_tracker (RESULT, result_order) AS
-- bundel catering
-- Als de kostenplaats bij de reservering begint met 77 dan wordt de (top)kostenplaats bepaald a.d.h.v. de cateraar.
-- Deze view is basis voor cursur in bundel-export maar wordt tevens gebruikt om vooraf in beeld te krijgen voor Finance welke reservering door ontbrekende BU_kostenplaats buiten de bundeling vallen
CREATE OR REPLACE VIEW aasa_v_catering_kpn
(
res_rsv_ruimte_key,
@@ -140,7 +141,12 @@ CREATE OR REPLACE VIEW aasa_v_catering_kpn
res_artikel_kostenalgemeen_tot,
res_rsv_artikel_levering,
prs_bedrijf_key,
bu_kostenplaats_key
prs_bedrijf_naam,
prs_kostenplaats_omschrijving, -- kostenplaats in reservering
bu_kostenplaats_key, -- de vertaalde bu_kostenplaats waar de bundel-opdracht op komt..
alg_ruimte_key,
alg_gebouw_key,
alg_locatie_key
)
AS
SELECT rrr.res_rsv_ruimte_key,
@@ -152,6 +158,9 @@ SELECT rrr.res_rsv_ruimte_key,
res_artikel_kostenalgemeen_tot,
res_rsv_artikel_levering,
rdp.prs_bedrijf_key,
b.prs_bedrijf_naam,
k.prs_kostenplaats_nr || ' - ' || k.prs_kostenplaats_omschrijving
prs_kostenplaats_omschrijving,
DECODE(SUBSTR(k.prs_kostenplaats_nr, 1,2)
, '77', DECODE(rdp.prs_bedrijf_key, 66700, 4270 -- Compass Group NL h.o.d.n. Eurest (913910)
, 247) -- App<70>l (101025)
@@ -163,19 +172,60 @@ SELECT rrr.res_rsv_ruimte_key,
AND ta.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_verwijder IS NULL
AND ab.prs_afdeling_key1 = ta.prs_afdeling_key))
bukpn
bukpn,
r.alg_ruimte_key,
(SELECT g.alg_gebouw_key
FROM alg_v_onroerendgoed v, alg_gebouw g, alg_locatie l
WHERE v.alg_ruimte_key = r.alg_ruimte_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key)
alg_gebouw_key,
(SELECT l.alg_locatie_key
FROM alg_v_onroerendgoed v, alg_gebouw g, alg_locatie l
WHERE v.alg_ruimte_key = r.alg_ruimte_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key)
alg_locatie_key
FROM res_rsv_ruimte rrr,
res_rsv_artikel rra,
res_artikel ra,
res_disc_params rdp,
prs_kostenplaats k
prs_bedrijf b,
prs_kostenplaats k,
(SELECT rrr.res_rsv_ruimte_key,
CASE
WHEN rrr.alg_ruimte_key IS NULL
AND rrr.res_ruimte_opstel_key IS NOT NULL
THEN
(SELECT MAX (rar.alg_ruimte_key)
FROM res_v_ruimte_opstel_gegevens rog,
res_alg_ruimte rar
WHERE rog.res_ruimte_opstel_key =
rrr.res_ruimte_opstel_key
AND rog.res_ruimte_key = rar.res_ruimte_key
AND rar.res_alg_ruimte_verwijder IS NULL)
WHEN rrr.alg_ruimte_key IS NOT NULL
AND rrr.res_ruimte_opstel_key IS NULL
THEN
(SELECT avrg.alg_ruimte_key
FROM alg_v_ruimte_gegevens avrg
WHERE avrg.alg_ruimte_key = rrr.alg_ruimte_key)
ELSE
NULL
END
AS alg_ruimte_key
FROM res_rsv_ruimte rrr) r
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = rdp.res_ins_discipline_key
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_status_bo_key = 5
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+);
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_rsv_ruimte_key = r.res_rsv_ruimte_key
AND rdp.prs_bedrijf_key = b.prs_bedrijf_key
ORDER BY rra.res_rsv_artikel_levering DESC;
CREATE OR REPLACE VIEW aasa_v_export_bundel_catering
(
@@ -203,17 +253,19 @@ AS
WHERE dp.prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY dp.prs_bedrijf_key, b.prs_bedrijf_naam;
-- Twee soorten bundelopdrachten (per cateraar, per BU_kp):
-- Twee soorten bundelopdrachten (per cateraar, per locatie, per BU_kp):
----- van de totaal-prijs van de catering
----- van de algemene kosten (intern administratief) die op artikel zijn vastgelegd - betreft voor Sabic het statiegeld (zie ook ticket AASA#82181)
CURSOR c_kpn (lev_date DATE, p_bedrijf_key NUMBER)
IS
SELECT v.prs_bedrijf_key,
v.alg_locatie_key,
v.bu_kostenplaats_key,
v.bedrag,
v.soort,
v.volgorde
FROM ( SELECT prs_bedrijf_key,
alg_locatie_key,
bu_kostenplaats_key,
SUM (res_rsv_artikel_prijs) bedrag,
'prijs_catering' soort,
@@ -221,9 +273,10 @@ AS
FROM aasa_v_catering_kpn
WHERE res_rsv_artikel_levering < lev_date
AND prs_bedrijf_key = p_bedrijf_key
GROUP BY prs_bedrijf_key, bu_kostenplaats_key
GROUP BY prs_bedrijf_key, alg_locatie_key, bu_kostenplaats_key
UNION
SELECT prs_bedrijf_key,
alg_locatie_key,
bu_kostenplaats_key,
SUM (res_artikel_kostenalgemeen_tot) bedrag,
'kosten_algemeen' soort,
@@ -232,8 +285,8 @@ AS
WHERE res_rsv_artikel_levering < lev_date
AND prs_bedrijf_key = p_bedrijf_key
AND res_artikel_kostenalgemeen_tot IS NOT NULL
GROUP BY prs_bedrijf_key, bu_kostenplaats_key) v
ORDER BY v.prs_bedrijf_key, v.bu_kostenplaats_key, v.volgorde ;
GROUP BY prs_bedrijf_key, alg_locatie_key, bu_kostenplaats_key) v
ORDER BY v.prs_bedrijf_key, v.alg_locatie_key, v.bu_kostenplaats_key, v.volgorde ;
c_catmld_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(2, 'D');
@@ -286,22 +339,32 @@ BEGIN
FOR rec IN c_kpn (v_date, rec1.prs_bedrijf_key)
LOOP
BEGIN
v_alg_gebouw_key := NULL ;
IF rec1.prs_bedrijf_key = 66700 -- Compass Group NL h.o.d.n. Eurest
THEN
-- stdmelding key voor recharge
v_mld_stdmelding_key := 2161; -- SA IP-Catering (int) Recharge
-- key van gebouw waar catering op geboekt mag worden
v_alg_gebouw_key := 3441; -- ADC
v_alg_locatie_key := 101; -- BoZ
ELSE
-- key van gebouw waar catering op geboekt mag worden voor Eurest
IF rec.alg_locatie_key = 63 THEN v_alg_gebouw_key := 1823; END IF; -- GELEEN - 000-NGD
IF rec.alg_locatie_key = 64 THEN v_alg_gebouw_key := 1945; END IF; -- SITTARD - 000-907
IF rec.alg_locatie_key = 101 THEN v_alg_gebouw_key := 3441; END IF; -- BERGEN OP ZOOM - ADC
END IF; -- BoZ
IF rec1.prs_bedrijf_key = 37081 -- Appel
THEN
-- stdmelding key voor recharge
v_mld_stdmelding_key := 2001;
-- key van gebouw waar catering op geboekt mag worden
v_alg_gebouw_key := 1823;
v_alg_locatie_key := 63;
-- key van gebouwen waar catering op geboekt mag worden voor Appel
IF rec.alg_locatie_key = 63 THEN v_alg_gebouw_key := 1823; END IF; -- GELEEN - 000-NGD
IF rec.alg_locatie_key = 64 THEN v_alg_gebouw_key := 1945; END IF; -- SITTARD - 000-907
IF rec.alg_locatie_key = 101 THEN v_alg_gebouw_key := 3441; END IF; -- BERGEN OP ZOOM - ADC
END IF;
IF rec.bu_kostenplaats_key IS NOT NULL
IF rec.bu_kostenplaats_key IS NOT NULL AND rec.alg_locatie_key IS NOT NULL AND v_alg_gebouw_key IS NOT NULL
THEN
-- controleer of ik een melding heb op deze kpn
BEGIN
@@ -312,6 +375,8 @@ BEGIN
FROM mld_melding
WHERE prs_kostenplaats_key = rec.bu_kostenplaats_key
AND mld_stdmelding_key = v_mld_stdmelding_key
AND mld_alg_locatie_key = rec.alg_locatie_key
AND mld_alg_onroerendgoed_keys = v_alg_gebouw_key
AND v_date BETWEEN mld_melding_datum
AND mld_melding_einddatum + 1;
EXCEPTION
@@ -419,6 +484,7 @@ BEGIN
FROM aasa_v_catering_kpn c
WHERE res_rsv_artikel_levering < v_date
AND COALESCE(c.bu_kostenplaats_key, -1) = COALESCE(rec.bu_kostenplaats_key, -1)
AND c.alg_locatie_key = rec.alg_locatie_key
AND c.prs_bedrijf_key = rec1.prs_bedrijf_key -- ivm probleem 58219
;
@@ -446,7 +512,7 @@ BEGIN
END;
ELSE
fac.writelog (p_applname, 'E', 'Een bedrag van: ' || rec.bedrag || ' euro kan niet aan een kostenplaats gekoppeld worden!', '');
fac.writelog (p_applname, 'E', 'Een bedrag van: ' || rec.bedrag || ' euro kan niet aan een kostenplaats en/of locatie gekoppeld worden!', '');
END IF;
END;
END LOOP;
@@ -462,21 +528,27 @@ END;
CREATE OR REPLACE VIEW aasa_v_rap_catering_inkoop
(
fclt_f_exportjob,
opdrachtnr,
fclt_f_bedrijf,
afleveradres,
fclt_f_afleverdatum,
tijdstip,
bestelnummer,
bestelnummer, -- reserverings_nr
fclt_f_artikelnummer,
artikelomschrijving,
interne_artikelprijs,
interne_artikelprijs, -- stuksprijs
interne_artikelprijs_tot,
res_artikel_kostenalgemeen_st,
aantal,
artikel_btw,
fclt_f_besteller,
afdeling
afdeling,
res_rsv_ruimte_key
)
AS
SELECT TO_CHAR (rra.res_rsv_artikel_verwerkt, 'dd-mm-yyyy'),
SELECT TO_CHAR (rra.res_rsv_artikel_verwerkt, 'yyyy-mm-dd'),
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
opdrachtnr,
prs_bedrijf_naam,
alg_locatie_code
|| '-'
@@ -502,13 +574,19 @@ AS
ROUND ((rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal),
5)
interneprijs,
rra.res_rsv_artikel_prijs
interne_artikelprijs_tot,
res_artikel_kostenalgemeen
res_artikel_kostenalgemeen_st,
rra.res_rsv_artikel_aantal
aantal,
COALESCE(rra.res_rsv_artikel_btw, ra.res_artikel_btw)
artikel_btw,
pf.prs_perslid_naam_full
besteller,
k.prs_kostenplaats_nr || '-' || k.prs_kostenplaats_omschrijving
afdeling,
rrr.res_rsv_ruimte_key
FROM res_rsv_ruimte rrr,
aaxx_bundel_catering_ref bu,
prs_bedrijf b,