REME#81131 -- Recharge-melding voor catering inrichten - Bundel catering
svn path=/Customer/trunk/; revision=62896
This commit is contained in:
424
AA/REME/reme.sql
424
AA/REME/reme.sql
@@ -74,9 +74,8 @@ END;
|
||||
/
|
||||
|
||||
|
||||
|
||||
-- exact verkoop
|
||||
CREATE OR REPLACE VIEW reme_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM reme_v_export_exact_verkoop;
|
||||
CREATE OR REPLACE VIEW reme_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
||||
CREATE OR REPLACE PROCEDURE reme_select_exact_verkoop (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2
|
||||
@@ -98,6 +97,8 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
|
||||
-- exact verkoop over het vorige jaar
|
||||
CREATE OR REPLACE VIEW reme_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
|
||||
CREATE OR REPLACE PROCEDURE reme_select_exact_verkoop_vj (
|
||||
@@ -148,6 +149,425 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
-- bundel catering
|
||||
--- Voor REME geldt kostenplaatsen op gebouwniveau
|
||||
CREATE OR REPLACE VIEW reme_v_catering_kpn
|
||||
(
|
||||
res_rsv_ruimte_key,
|
||||
res_srtactiviteit_soort,
|
||||
res_rsv_artikel_key,
|
||||
res_rsv_artikel_prijs,
|
||||
res_rsv_artikel_levering,
|
||||
alg_ruimte_key,
|
||||
alg_gebouw_key,
|
||||
prs_bedrijf_key,
|
||||
prs_kostenplaats_key,
|
||||
bu_kostenplaats_nr,
|
||||
gebouw_kostenplaats_nr
|
||||
)
|
||||
AS
|
||||
SELECT rrr.res_rsv_ruimte_key,
|
||||
srt.res_srtactiviteit_soort, -- = 0 is ruimte-reservering, 1 is roomservice
|
||||
res_rsv_artikel_key,
|
||||
res_rsv_artikel_prijs,
|
||||
res_rsv_artikel_levering,
|
||||
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_locatie_omschrijving,
|
||||
rdp.prs_bedrijf_key,
|
||||
k.prs_kostenplaats_key,
|
||||
aaxx_get_top_kpn_nr(fac.safe_to_number (aaxx_get_top_kpn_key (k.prs_kostenplaats_key)))
|
||||
bu_kostenplaats_nr,
|
||||
aaxx_get_debiteur_gebouw (
|
||||
(SELECT l.alg_locatie_code
|
||||
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),
|
||||
(SELECT g.alg_gebouw_code
|
||||
FROM alg_v_onroerendgoed v, alg_gebouw g
|
||||
WHERE v.alg_ruimte_key = r.alg_ruimte_key
|
||||
AND v.alg_gebouw_key = g.alg_gebouw_key))
|
||||
gebouw_kostenplaats_nr
|
||||
FROM res_rsv_ruimte rrr,
|
||||
res_rsv_artikel rra,
|
||||
res_artikel ra,
|
||||
res_disc_params rdp,
|
||||
prs_kostenplaats k,
|
||||
res_activiteit act,
|
||||
res_srtactiviteit srt,
|
||||
(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 rrr.res_rsv_ruimte_key = r.res_rsv_ruimte_key
|
||||
AND rra.res_artikel_key = ra.res_artikel_key
|
||||
AND ra.res_discipline_key = rdp.res_ins_discipline_key
|
||||
AND rdp.prs_bedrijf_key IS NOT NULL
|
||||
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.res_activiteit_key = act.res_activiteit_key
|
||||
AND act.res_srtactiviteit_key = srt.res_srtactiviteit_key;
|
||||
|
||||
CREATE OR REPLACE VIEW reme_v_export_bundel_catering
|
||||
(
|
||||
result,
|
||||
result_order
|
||||
)
|
||||
AS
|
||||
SELECT res_rsv_artikel_key || ';' || res_rsv_artikel_prijs result,
|
||||
res_rsv_artikel_key result_order
|
||||
FROM reme_v_catering_kpn;
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE reme_export_bundel_catering (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_filedir IN VARCHAR2,
|
||||
p_filename IN VARCHAR2)
|
||||
AS
|
||||
|
||||
CURSOR c_bedr
|
||||
IS
|
||||
SELECT prs_bedrijf_key
|
||||
FROM res_disc_params
|
||||
WHERE prs_bedrijf_key IS NOT NULL
|
||||
GROUP BY prs_bedrijf_key;
|
||||
|
||||
-- Voor Vermaat geldt per Gebouw-kostenplaats 1 gebundelde opdracht
|
||||
CURSOR c_gebouw_kp (lev_date DATE, p_bedrijf_key NUMBER)
|
||||
IS
|
||||
SELECT gebouw_kostenplaats_nr, alg_gebouw_key, sum(res_rsv_artikel_prijs) prijs
|
||||
FROM reme_v_catering_kpn
|
||||
WHERE res_rsv_artikel_levering < lev_date
|
||||
AND prs_bedrijf_key = p_bedrijf_key
|
||||
GROUP BY gebouw_kostenplaats_nr, alg_gebouw_key;
|
||||
|
||||
c_catmld_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(2, 'D');
|
||||
v_errormsg VARCHAR (200);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_laatste_export DATE;
|
||||
v_mld_melding_key NUMBER;
|
||||
v_alg_locatie_key NUMBER;
|
||||
v_mld_opdr_key NUMBER;
|
||||
v_prs_bedrijf_key NUMBER;
|
||||
v_mld_opdr_bedrijfopdr_volgnr NUMBER;
|
||||
v_aanvrager NUMBER;
|
||||
v_mld_workorder_key NUMBER;
|
||||
v_mld_stdmelding_key NUMBER;
|
||||
v_prs_kostenplaats_key NUMBER;
|
||||
v_date DATE;
|
||||
v_month VARCHAR2(30);
|
||||
v_count NUMBER;
|
||||
BEGIN
|
||||
-- Facilitor
|
||||
v_aanvrager := 4;
|
||||
-- stdmelding key voor recharge
|
||||
v_mld_stdmelding_key := 602;
|
||||
-- key van opdrachttype workorder
|
||||
v_mld_workorder_key := 1;
|
||||
-- dummy kostenplaats bij de melding in geval van gebouw_kostenplaatsen --- OP LAND NL/BE DOEN ????????
|
||||
v_prs_kostenplaats_key := 141; -- 03900001 - Remeha NL
|
||||
|
||||
v_errormsg := 'Bepaal einddatum';
|
||||
|
||||
-- wat is de eerste dag van de huidige maand
|
||||
v_date := TO_DATE (TO_CHAR (SYSDATE, 'yyyymm') || '01', 'yyyymmdd');
|
||||
v_month := REPLACE(TO_CHAR (v_date-1, 'month-yyyy', 'NLS_DATE_LANGUAGE = ''dutch'''), ' ', '');
|
||||
|
||||
SELECT COUNT (mld_opdr_key)
|
||||
INTO v_count
|
||||
FROM mld_opdr
|
||||
WHERE mld_opdr_omschrijving = 'Cateringreserveringen maand: ' || v_month;
|
||||
|
||||
IF v_count > 0
|
||||
THEN
|
||||
fac.writelog (
|
||||
p_applname,
|
||||
'E',
|
||||
'Catering export is al eerder uitgevoerd.',
|
||||
'Controleer opdrachten met omschrijving: '
|
||||
|| 'Cateringreserveringen maand: ' || v_month);
|
||||
ELSE
|
||||
FOR rec1 IN c_bedr
|
||||
LOOP
|
||||
BEGIN
|
||||
FOR rec2 IN c_gebouw_kp (v_date, rec1.prs_bedrijf_key)
|
||||
LOOP
|
||||
BEGIN
|
||||
|
||||
IF rec2.gebouw_kostenplaats_nr IS NOT NULL
|
||||
THEN
|
||||
|
||||
-- controleer of ik een melding heb op dit gebouw
|
||||
BEGIN
|
||||
v_errormsg := 'Opzoeken catering melding';
|
||||
|
||||
SELECT g.alg_locatie_key
|
||||
INTO v_alg_locatie_key
|
||||
FROM alg_gebouw g
|
||||
WHERE g.alg_gebouw_key = rec2.alg_gebouw_key ;
|
||||
|
||||
SELECT mld_melding_key
|
||||
INTO v_mld_melding_key
|
||||
FROM mld_melding
|
||||
WHERE mld_alg_locatie_key = v_alg_locatie_key
|
||||
AND mld_alg_onroerendgoed_keys = rec2.alg_gebouw_key
|
||||
AND mld_stdmelding_key = v_mld_stdmelding_key
|
||||
AND prs_perslid_key = v_aanvrager
|
||||
AND v_date BETWEEN mld_melding_datum
|
||||
AND mld_melding_einddatum + 1;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
-- geen melding voor dit locatie/gebouw gevonden. Dan maken we er maar een aan.
|
||||
|
||||
v_errormsg := 'Aanmaken catering melding';
|
||||
|
||||
BEGIN
|
||||
INSERT INTO mld_melding (mld_melding_omschrijving,
|
||||
prs_perslid_key,
|
||||
prs_kostenplaats_key,
|
||||
mld_stdmelding_key,
|
||||
mld_alg_locatie_key,
|
||||
mld_alg_onroerendgoed_keys,
|
||||
mld_melding_einddatum,
|
||||
mld_melding_datum,
|
||||
mld_melding_t_uitvoertijd,
|
||||
mld_meldbron_key,
|
||||
mld_melding_module,
|
||||
mld_melding_spoed)
|
||||
VALUES ('Catering factuur boekingen',
|
||||
v_aanvrager,
|
||||
v_prs_kostenplaats_key,
|
||||
v_mld_stdmelding_key,
|
||||
v_alg_locatie_key,
|
||||
rec2.alg_gebouw_key,
|
||||
TO_DATE (TO_CHAR (v_date, 'YYYY') || '1231',
|
||||
'YYYYMMDD'),
|
||||
TO_DATE (TO_CHAR (v_date, 'YYYY') || '0101',
|
||||
'YYYYMMDD'),
|
||||
c_catmld_uitvoertijd,
|
||||
5,
|
||||
'MLD',
|
||||
3)
|
||||
RETURNING mld_melding_key
|
||||
INTO v_mld_melding_key;
|
||||
|
||||
BEGIN
|
||||
mld.setmeldingstatus (v_mld_melding_key, 2, v_aanvrager);
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
mld.setmeldingstatus (v_mld_melding_key, 4, v_aanvrager);
|
||||
END;
|
||||
|
||||
UPDATE mld_melding
|
||||
SET mld_melding_behandelaar_key = v_aanvrager
|
||||
WHERE mld_melding_key = v_mld_melding_key;
|
||||
END;
|
||||
END;
|
||||
|
||||
-- nu gaan we de opdracht aanmaken
|
||||
BEGIN
|
||||
v_mld_opdr_bedrijfopdr_volgnr :=
|
||||
mld.bepaalopdrmeldingvolgnr (v_mld_melding_key);
|
||||
|
||||
v_errormsg :=
|
||||
'Maak opdracht aan om factuur van cateraar te matchen';
|
||||
|
||||
-- maak opdracht aan om cateringfactuur van leverancier te matchen
|
||||
INSERT INTO mld_opdr (mld_melding_key,
|
||||
prs_kostenplaats_key,
|
||||
mld_statusopdr_key,
|
||||
mld_typeopdr_key,
|
||||
prs_perslid_key,
|
||||
mld_uitvoerende_keys,
|
||||
mld_opdr_datumbegin,
|
||||
mld_opdr_einddatum,
|
||||
mld_opdr_module,
|
||||
mld_opdr_omschrijving,
|
||||
mld_opdr_materiaal,
|
||||
mld_opdr_kosten,
|
||||
mld_opdr_bedrijfopdr_volgnr)
|
||||
VALUES ( v_mld_melding_key,
|
||||
v_prs_kostenplaats_key,
|
||||
5, -- uitgegeven
|
||||
v_mld_workorder_key,
|
||||
v_aanvrager,
|
||||
rec1.prs_bedrijf_key,
|
||||
v_date - 1,
|
||||
fac.datumtijdplusuitvoertijd (SYSDATE, 1, 'DAGEN'),
|
||||
'MLD',
|
||||
'Cateringreserveringen maand: ' || v_month,
|
||||
rec2.prijs,
|
||||
rec2.prijs,
|
||||
v_mld_opdr_bedrijfopdr_volgnr)
|
||||
RETURNING mld_opdr_key INTO v_mld_opdr_key;
|
||||
|
||||
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 reme_v_catering_kpn
|
||||
WHERE res_rsv_artikel_levering < v_date
|
||||
AND gebouw_kostenplaats_nr = rec2.gebouw_kostenplaats_nr
|
||||
AND alg_gebouw_key = rec2.alg_gebouw_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 := 'Update melding status';
|
||||
mld.updatemeldingstatus (v_mld_melding_key, 0, v_aanvrager); -- Facilitor
|
||||
-- meld de opdracht af
|
||||
MLD.setopdrachtstatus (v_mld_opdr_key, 6, v_aanvrager);
|
||||
-- en zet de opdracht op afgerond zodat deze direct in het factuurvoorstel komt.
|
||||
MLD.setopdrachtstatus (v_mld_opdr_key, 9, v_aanvrager);
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.writelog (p_applname, 'E', v_errormsg, '');
|
||||
|
||||
END;
|
||||
|
||||
|
||||
ELSE
|
||||
fac.writelog (p_applname, 'E', 'Een bedrag van: ' || rec2.prijs || ' euro kan niet aan een kostenplaats gekoppeld worden!', '');
|
||||
END IF;
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
END IF;
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE VIEW reme_v_rap_catering_inkoop
|
||||
(
|
||||
fclt_f_exportjob,
|
||||
fclt_f_bedrijf,
|
||||
afleveradres,
|
||||
fclt_f_afleverdatum,
|
||||
tijdstip,
|
||||
bestelnummer,
|
||||
fclt_f_artikelnummer,
|
||||
artikelomschrijving,
|
||||
interne_artikelprijs,
|
||||
aantal,
|
||||
fclt_f_besteller,
|
||||
afdeling,
|
||||
gebouw_kostenplaats_nr
|
||||
)
|
||||
AS
|
||||
SELECT TO_CHAR (rra.res_rsv_artikel_verwerkt, 'dd-mm-yyyy'),
|
||||
prs_bedrijf_naam,
|
||||
alg_locatie_code
|
||||
|| '-'
|
||||
|| alg_gebouw_code
|
||||
|| '-'
|
||||
|| alg_verdieping_code
|
||||
|| '-'
|
||||
|| alg_ruimte_nr
|
||||
|| ' ('
|
||||
|| alg_ruimte_omschrijving
|
||||
|| ')'
|
||||
afleveradres,
|
||||
TO_CHAR (rra.res_rsv_artikel_levering, 'dd-mm-yyyy')
|
||||
datum,
|
||||
TO_CHAR (rra.res_rsv_artikel_levering, 'hh24:mi')
|
||||
tijd,
|
||||
res_reservering_key || '/' || res_rsv_ruimte_volgnr
|
||||
bestelnummer,
|
||||
res_artikel_nr
|
||||
artikelnummer,
|
||||
res_artikel_omschrijving
|
||||
artikelomschrijving,
|
||||
ROUND ((rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal),
|
||||
5)
|
||||
interneprijs,
|
||||
rra.res_rsv_artikel_aantal
|
||||
aantal,
|
||||
pf.prs_perslid_naam_full
|
||||
besteller,
|
||||
k.prs_kostenplaats_nr || '-' || k.prs_kostenplaats_omschrijving,
|
||||
aaxx_get_debiteur_gebouw (l.alg_locatie_code, g.alg_gebouw_code)
|
||||
FROM res_rsv_ruimte rrr,
|
||||
aaxx_bundel_catering_ref bu,
|
||||
prs_bedrijf b,
|
||||
res_rsv_artikel rra,
|
||||
alg_ruimte r,
|
||||
alg_verdieping v,
|
||||
alg_gebouw g,
|
||||
alg_locatie l,
|
||||
prs_perslid p,
|
||||
prs_v_perslid_fullnames_all pf,
|
||||
prs_kostenplaats k,
|
||||
res_artikel ra,
|
||||
mld_opdr o,
|
||||
( SELECT COALESCE (MAX (ir2a.alg_ruimte_key), irrr.alg_ruimte_key)
|
||||
alg_ruimte_key,
|
||||
irrr.res_rsv_ruimte_key
|
||||
FROM res_rsv_ruimte irrr, res_v_rsv_ruimte_2_alg_ruimte ir2a
|
||||
WHERE irrr.res_rsv_ruimte_key = ir2a.res_rsv_ruimte_key(+)
|
||||
GROUP BY irrr.res_rsv_ruimte_key, irrr.alg_ruimte_key) r2a
|
||||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||||
AND r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||||
AND r2a.alg_ruimte_key = r.alg_ruimte_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||||
AND g.alg_locatie_key = l.alg_locatie_key
|
||||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||||
AND rra.res_rsv_artikel_verwijder IS NULL
|
||||
AND rra.res_status_bo_key = 6
|
||||
AND rra.res_artikel_key = ra.res_artikel_key
|
||||
AND rra.res_rsv_artikel_levering >
|
||||
TO_DATE ('20110901', 'yyyymmdd')
|
||||
AND rra.res_rsv_artikel_key = bu.res_rsv_artikel_key(+)
|
||||
AND bu.mld_opdr_key = o.mld_opdr_key(+)
|
||||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+);
|
||||
|
||||
|
||||
-- Rapportviews
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user