Files
Customer/AA/AALB/aalb.sql
Arthur Egberink cec238953c AALB#34629 -- Bundeling catering aanpassen
svn path=/Customer/trunk/; revision=27215
2015-12-02 09:30:19 +00:00

352 lines
11 KiB
SQL
Raw Blame History

-- Script containing customer specific configuration sql statements for aalb: Arcadis Aqumen Facility Management
-- (c) 2005-2007 Dijkoraad IT bv
-- $Revision$
-- $Id$
--
-- Support: +31 53 4800700
@aaxx.sql;
SPOOL xaalb.lst
SET ECHO ON
-- script om dagelijks terugkerende scripts aan te roepen.
CREATE OR REPLACE PROCEDURE aalb_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
BEGIN
aaxx_daily_task (p_applname, p_applrun);
END;
/
-- budgettracker overrules
CREATE OR REPLACE VIEW aalb_v_export_budget_tracker (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_budget_tracker;
-- export overrules
-- exact
CREATE OR REPLACE VIEW aalb_v_export_exact (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_xml;
CREATE OR REPLACE PROCEDURE aalb_select_exact (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun);
END;
/
CREATE OR REPLACE PROCEDURE aalb_export_exact (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
CREATE OR REPLACE VIEW aalb_v_export_verwerk_exact (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_verwerk_exact;
CREATE OR REPLACE PROCEDURE aalb_export_verwerk_exact (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_verwerk_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
-- bundel catering
CREATE OR REPLACE VIEW aalb_v_export_bundel_catering (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_bundel_catering;
CREATE OR REPLACE PROCEDURE aalb_export_bundel_catering (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
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_prs_bedrijf_key NUMBER;
v_alg_locatie_key NUMBER;
v_alg_gebouw_key NUMBER;
v_prs_dienst_key NUMBER;
v_prs_kostenplaats_key NUMBER;
v_mld_opdr_bedrijfopdr_volgnr NUMBER;
v_aanvrager NUMBER;
v_mld_workorder_key NUMBER;
v_mld_stdmelding_key NUMBER;
v_date DATE;
v_date_check DATE;
v_count NUMBER;
v_total NUMBER(10,2);
BEGIN
-- Facilitor
v_aanvrager := 4;
-- LB: Arcadis Aqumen kostenplaats key
v_prs_kostenplaats_key := 1;
-- stdmelding key voor recharge
v_mld_stdmelding_key := 361;
-- key van opdrachttype workorder
v_mld_workorder_key := 1;
-- key voor de locatie van de melding
v_alg_locatie_key := 21; -- Rotterdam
v_alg_gebouw_key := 681;
-- key van App<70>l
v_prs_bedrijf_key := 19141;
v_errormsg := 'Bepaal einddatum';
-- wat is de eerste dag van de huidige maand
v_date := to_date(to_char(sysdate, 'yyyymm')||'01','yyyymmdd');
SELECT count(mld_opdr_key)
INTO v_count
FROM mld_opdr
WHERE mld_opdr_omschrijving = 'Catering factuur tot: ' || to_char(v_date, 'dd-mm-yyyy');
SELECT COALESCE(SUM (res_rsv_artikel_prijs),0)
INTO v_total
FROM res_rsv_artikel rra
WHERE rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_status_bo_key = 5 -- geleverd.
AND rra.res_rsv_artikel_levering < v_date;
IF v_count > 0 THEN
fac.writelog (p_applname,'E', 'Catering export is al eerder uitgevoerd.',
'Controleer opdrachten met datum: ' || to_char(v_date, 'dd-mm-yyyy'));
ELSIF v_total = 0 THEN
fac.writelog (p_applname,'W', 'Er is deze maand niets te factureren',
'Controleer of de catering wel afgemeld is');
ELSE
v_errormsg := 'Aanpassen kostenplaatsen';
-- vul de kostenplaats van reserveringen die per abuis geen kostenplaats hebben.
UPDATE res_rsv_ruimte rrr
SET prs_kostenplaats_key =
(SELECT prs_kostenplaats_key
FROM prs_perslid p, prs_afdeling a
WHERE rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key)
WHERE rrr.prs_kostenplaats_key IS NULL;
-- maak een melding aan voor deze maand
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 tot ' || to_char(v_date, 'dd-mm-yyyy'),
v_aanvrager,
v_prs_kostenplaats_key,
v_mld_stdmelding_key,
v_alg_locatie_key,
v_alg_gebouw_key,
v_date-1,
add_months(v_date, -1),
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;
-- aanmaken opdracht
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
, v_prs_bedrijf_key
, v_date-1
, FAC.DatumTijdPlusUitvoerTijd(sysdate, 1, 'DAGEN')
, 'MLD'
, 'Catering factuur tot: ' || to_char(v_date, 'dd-mm-yyyy')
, v_total
, v_total
, v_mld_opdr_bedrijfopdr_volgnr);
UPDATE res_rsv_artikel rra
SET res_rsv_artikel_verwerkt = SYSDATE,
res_status_bo_key = 6
WHERE rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_status_bo_key = 5 -- geleverd.
AND rra.res_rsv_artikel_levering < v_date;
v_errormsg := 'Update melding status';
MLD.updatemeldingstatus (v_mld_melding_key, 0, v_aanvrager); -- Facilitor
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;
END IF;
COMMIT;
END;
/
-- exact verkoop
CREATE OR REPLACE VIEW aalb_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE aalb_select_exact_verkoop (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'));
END;
/
CREATE OR REPLACE PROCEDURE aalb_export_exact_verkoop (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'));
END;
/
-- exact verkoop over het vorige jaar
CREATE OR REPLACE VIEW aalb_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE aalb_select_exact_verkoop_vj (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
END;
/
CREATE OR REPLACE PROCEDURE aalb_export_exact_verkoop_vj (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1));
END;
/
-- exact projecturen (XML)
CREATE OR REPLACE VIEW aalb_v_export_exact_uren (result, result_order)
AS SELECT result, result_order FROM aaxx_v_export_exact_uren_xml;
CREATE OR REPLACE PROCEDURE aalb_select_exact_uren (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_uren_xml(p_applname, p_applrun, '');
END;
/
-- verwerk exact projecturen (XML)
CREATE OR REPLACE PROCEDURE aalb_export_verwerk_exact_uren (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '');
END;
/
--------------------------------
-- import contractorders
--------------------------------
CREATE OR REPLACE PROCEDURE aalb_import_contract (
p_import_key IN NUMBER
) IS
BEGIN
aaxx_import_contract (p_import_key);
END aalb_import_contract;
/
CREATE OR REPLACE PROCEDURE aalb_update_contract (p_import_key IN NUMBER)
AS
BEGIN
aaxx_update_contract (p_import_key);
END aalb_update_contract;
/
CREATE OR REPLACE PROCEDURE aalb_import_ruimte (p_import_key IN NUMBER)
AS
BEGIN
aaxx_import_ruimte(p_import_key);
END;
/
CREATE OR REPLACE PROCEDURE aalb_update_ruimte (p_import_key IN NUMBER)
AS
BEGIN
aaxx_update_ruimte(p_import_key);
END;
/
BEGIN adm.systrackscriptId('$Id$', 0); END;
/
BEGIN fac.registercustversion('AALB', 9); END;
/
COMMIT;
SPOOL OFF