AASA#82181 -- Verrekenen Stategeld inpassen in proces van bundel-catering
svn path=/Customer/trunk/; revision=65398
This commit is contained in:
109
AA/AASA/aasa.sql
109
AA/AASA/aasa.sql
@@ -133,15 +133,23 @@ CREATE OR REPLACE VIEW aasa_v_export_budget_tracker (RESULT, result_order) AS
|
||||
-- Als de kostenplaats bij de reservering begint met 77 dan wordt de (top)kostenplaats bepaald a.d.h.v. de cateraar.
|
||||
CREATE OR REPLACE VIEW aasa_v_catering_kpn
|
||||
(
|
||||
res_rsv_ruimte_key,
|
||||
res_reservering_nr,
|
||||
res_rsv_artikel_key,
|
||||
res_rsv_artikel_prijs,
|
||||
res_artikel_kostenalgemeen_tot,
|
||||
res_rsv_artikel_levering,
|
||||
prs_bedrijf_key,
|
||||
bu_kostenplaats_key
|
||||
)
|
||||
AS
|
||||
SELECT res_rsv_artikel_key,
|
||||
SELECT rrr.res_rsv_ruimte_key,
|
||||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||||
res_reservering_nr,
|
||||
res_rsv_artikel_key,
|
||||
res_rsv_artikel_prijs,
|
||||
ra.res_artikel_kostenalgemeen * rra.res_rsv_artikel_aantal
|
||||
res_artikel_kostenalgemeen_tot,
|
||||
res_rsv_artikel_levering,
|
||||
rdp.prs_bedrijf_key,
|
||||
DECODE(SUBSTR(k.prs_kostenplaats_nr, 1,2)
|
||||
@@ -175,7 +183,7 @@ CREATE OR REPLACE VIEW aasa_v_export_bundel_catering
|
||||
result_order
|
||||
)
|
||||
AS
|
||||
SELECT res_rsv_artikel_key || ';' || res_rsv_artikel_prijs result,
|
||||
SELECT res_rsv_artikel_key || ';' || res_rsv_artikel_prijs || ';' || res_artikel_kostenalgemeen_tot result,
|
||||
res_rsv_artikel_key result_order
|
||||
FROM aasa_v_catering_kpn;
|
||||
|
||||
@@ -186,19 +194,47 @@ CREATE OR REPLACE PROCEDURE aasa_export_bundel_catering (
|
||||
p_filedir IN VARCHAR2,
|
||||
p_filename IN VARCHAR2)
|
||||
AS
|
||||
|
||||
-- De cateraars onder SABIC
|
||||
CURSOR c_bedr
|
||||
IS
|
||||
SELECT prs_bedrijf_key
|
||||
FROM res_disc_params
|
||||
GROUP BY prs_bedrijf_key;
|
||||
SELECT dp.prs_bedrijf_key, b.prs_bedrijf_naam
|
||||
FROM res_disc_params dp, prs_bedrijf b
|
||||
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):
|
||||
----- 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 bu_kostenplaats_key, sum(res_rsv_artikel_prijs) prijs
|
||||
FROM aasa_v_catering_kpn
|
||||
WHERE res_rsv_artikel_levering < lev_date
|
||||
AND prs_bedrijf_key = p_bedrijf_key
|
||||
GROUP BY bu_kostenplaats_key;
|
||||
SELECT v.prs_bedrijf_key,
|
||||
v.bu_kostenplaats_key,
|
||||
v.bedrag,
|
||||
v.soort,
|
||||
v.volgorde
|
||||
FROM ( SELECT prs_bedrijf_key,
|
||||
bu_kostenplaats_key,
|
||||
SUM (res_rsv_artikel_prijs) bedrag,
|
||||
'prijs_catering' soort,
|
||||
2 volgorde
|
||||
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
|
||||
UNION
|
||||
SELECT prs_bedrijf_key,
|
||||
bu_kostenplaats_key,
|
||||
SUM (res_artikel_kostenalgemeen_tot) bedrag,
|
||||
'kosten_algemeen' soort,
|
||||
1 volgorde
|
||||
FROM aasa_v_catering_kpn
|
||||
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 ;
|
||||
|
||||
|
||||
c_catmld_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(2, 'D');
|
||||
v_errormsg VARCHAR (200);
|
||||
@@ -360,9 +396,9 @@ BEGIN
|
||||
v_date - 1,
|
||||
fac.datumtijdplusuitvoertijd (SYSDATE, 1, 'DAGEN'),
|
||||
'MLD',
|
||||
'Cateringreserveringen maand: ' || v_month,
|
||||
rec.prijs,
|
||||
rec.prijs,
|
||||
'Cateringreserveringen maand: ' || v_month || DECODE(rec.soort, 'kosten_algemeen', ' - statiegeld', ''),
|
||||
rec.bedrag,
|
||||
rec.bedrag,
|
||||
v_mld_opdr_bedrijfopdr_volgnr)
|
||||
RETURNING mld_opdr_key INTO v_mld_opdr_key;
|
||||
|
||||
@@ -371,25 +407,33 @@ BEGIN
|
||||
-- meld de opdracht af
|
||||
MLD.setopdrachtstatus (v_mld_opdr_key, 6, v_aanvrager);
|
||||
|
||||
v_errormsg := 'Voeg regels toe aan mapping tabel';
|
||||
-- Indien van toepassing/aanwezig wordt eerst de bundelopdracht voor 'kosten_algemeen' aangemaakt (volgnr 1) en daarna de bundelopdracht voor prijs_catering.
|
||||
-- Na deze laatste prijs_catering-opdracht gaan we de regels aan de mapping-tabel toevoegen en desbetreffende artikelregels op verwerkt zetten
|
||||
IF rec.soort = 'prijs_catering'
|
||||
THEN
|
||||
|
||||
v_errormsg := 'Voeg regels toe aan mapping tabel';
|
||||
|
||||
INSERT INTO aaxx_bundel_catering_ref (mld_opdr_key, res_rsv_artikel_key, res_rsv_artikel_prijs, res_rsv_artikel_verwerkt)
|
||||
SELECT v_mld_opdr_key, res_rsv_artikel_key, res_rsv_artikel_prijs, v_date
|
||||
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.prs_bedrijf_key = rec1.prs_bedrijf_key -- ivm probleem 58219
|
||||
;
|
||||
INSERT INTO aaxx_bundel_catering_ref (mld_opdr_key, res_rsv_artikel_key, res_rsv_artikel_prijs, res_artikel_kostenalgemeen_tot, res_rsv_artikel_verwerkt)
|
||||
SELECT v_mld_opdr_key, res_rsv_artikel_key, res_rsv_artikel_prijs, res_artikel_kostenalgemeen_tot, v_date
|
||||
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.prs_bedrijf_key = rec1.prs_bedrijf_key -- ivm probleem 58219
|
||||
;
|
||||
|
||||
v_errormsg := 'Pas de status van de artikelen aan ' || v_mld_opdr_key;
|
||||
UPDATE res_rsv_artikel rra
|
||||
SET res_rsv_artikel_verwerkt = SYSDATE,
|
||||
res_status_bo_key = 6
|
||||
WHERE EXISTS
|
||||
(SELECT mld_opdr_key
|
||||
FROM aaxx_bundel_catering_ref bc
|
||||
WHERE bc.mld_opdr_key = v_mld_opdr_key
|
||||
AND bc.res_rsv_artikel_key = rra.res_rsv_artikel_key);
|
||||
v_errormsg := 'Pas de status van de artikelen aan ' || v_mld_opdr_key;
|
||||
|
||||
UPDATE res_rsv_artikel rra
|
||||
SET res_rsv_artikel_verwerkt = SYSDATE,
|
||||
res_status_bo_key = 6
|
||||
WHERE EXISTS
|
||||
(SELECT mld_opdr_key
|
||||
FROM aaxx_bundel_catering_ref bc
|
||||
WHERE bc.mld_opdr_key = v_mld_opdr_key
|
||||
AND bc.res_rsv_artikel_key = rra.res_rsv_artikel_key);
|
||||
|
||||
END IF;
|
||||
|
||||
|
||||
EXCEPTION
|
||||
@@ -402,7 +446,7 @@ BEGIN
|
||||
|
||||
END;
|
||||
ELSE
|
||||
fac.writelog (p_applname, 'E', 'Een bedrag van: ' || rec.prijs || ' euro kan niet aan een kostenplaats gekoppeld worden!', '');
|
||||
fac.writelog (p_applname, 'E', 'Een bedrag van: ' || rec.bedrag || ' euro kan niet aan een kostenplaats gekoppeld worden!', '');
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
@@ -426,6 +470,7 @@ CREATE OR REPLACE VIEW aasa_v_rap_catering_inkoop
|
||||
fclt_f_artikelnummer,
|
||||
artikelomschrijving,
|
||||
interne_artikelprijs,
|
||||
res_artikel_kostenalgemeen_st,
|
||||
aantal,
|
||||
fclt_f_besteller,
|
||||
afdeling
|
||||
@@ -457,6 +502,8 @@ AS
|
||||
ROUND ((rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal),
|
||||
5)
|
||||
interneprijs,
|
||||
res_artikel_kostenalgemeen
|
||||
res_artikel_kostenalgemeen_st,
|
||||
rra.res_rsv_artikel_aantal
|
||||
aantal,
|
||||
pf.prs_perslid_naam_full
|
||||
|
||||
Reference in New Issue
Block a user