352 lines
11 KiB
SQL
352 lines
11 KiB
SQL
-- 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
|
||
|
||
|