AADS#17418
svn path=/Customer/trunk/; revision=14129
This commit is contained in:
410
AA/AADS/aads.sql
410
AA/AADS/aads.sql
@@ -1,7 +1,7 @@
|
||||
-- Script containing customer specific configuration sql statements for aads: Arcadis Aqumen Facility Management
|
||||
-- (c) 2005-2007 Dijkoraad IT bv
|
||||
-- $Revision: 11 $
|
||||
-- $Modtime: 15-02-10 14:52 $
|
||||
-- $Revision: 12 $
|
||||
-- $Modtime: 13-04-10 11:01 $
|
||||
--
|
||||
-- Support: +31 53 4800700
|
||||
|
||||
@@ -832,12 +832,12 @@ FROM (SELECT v.kwartaal+0 kwartaal,
|
||||
FROM aads_hv_freeze v, (SELECT SUM (teken_opp) totaal, geb_code, kwartaal
|
||||
FROM aads_hv_freeze v1
|
||||
WHERE v1.code LIKE 'KA%'
|
||||
AND huurder_nummer NOT LIKE '%.99'
|
||||
AND coalesce(huurder_nummer,'1') NOT LIKE '%.99'
|
||||
GROUP BY geb_code, kwartaal) totaal_gebouw
|
||||
WHERE v.code LIKE 'KA%'
|
||||
AND v.geb_code = totaal_gebouw.geb_code
|
||||
AND v.kwartaal = totaal_gebouw.kwartaal
|
||||
AND huurder_nummer NOT LIKE '%.99'
|
||||
AND coalesce(huurder_nummer,'1') NOT LIKE '%.99'
|
||||
AND SUBSTR (v.kwartaal, 1, 4) = TO_CHAR (SYSDATE, 'yyyy')
|
||||
UNION ALL
|
||||
SELECT SUBSTR (v.kwartaal, 1, 4)+1 kwartaal,
|
||||
@@ -855,12 +855,12 @@ FROM (SELECT v.kwartaal+0 kwartaal,
|
||||
FROM aads_hv_freeze v, (SELECT SUM (teken_opp) totaal, geb_code, kwartaal
|
||||
FROM aads_hv_freeze v1
|
||||
WHERE v1.code LIKE 'KA%'
|
||||
AND huurder_nummer NOT LIKE '%.99'
|
||||
AND coalesce(huurder_nummer,'1') NOT LIKE '%.99'
|
||||
GROUP BY geb_code, kwartaal) totaal_gebouw
|
||||
WHERE v.code LIKE 'KA%'
|
||||
AND v.geb_code = totaal_gebouw.geb_code
|
||||
AND v.kwartaal = totaal_gebouw.kwartaal
|
||||
AND huurder_nummer NOT LIKE '%.99'
|
||||
AND coalesce(huurder_nummer,'1') NOT LIKE '%.99'
|
||||
AND v.kwartaal =
|
||||
fac.safe_to_number (TO_CHAR (SYSDATE, 'yyyy') - 1) || '3') v
|
||||
GROUP BY v.kwartaal,
|
||||
@@ -1594,7 +1594,7 @@ BEGIN
|
||||
p_applrun,
|
||||
'I',
|
||||
'Arcadis Aqumen BedrijfDienstLocatieGebouw import version ' || currentversion,
|
||||
'$Revision: 11 $'
|
||||
'$Revision: 12 $'
|
||||
);
|
||||
|
||||
SELECT COUNT (*)
|
||||
@@ -1606,7 +1606,7 @@ BEGIN
|
||||
p_applrun,
|
||||
'E',
|
||||
'Arcadis Aqumen BedrijfDienstLocatieGebouw import bevat geen records',
|
||||
'$Revision: 11 $'
|
||||
'$Revision: 12 $'
|
||||
);
|
||||
return;
|
||||
END IF;
|
||||
@@ -1733,7 +1733,399 @@ END;
|
||||
/
|
||||
|
||||
|
||||
BEGIN fac.registercustversion('AADS', 12); END;
|
||||
--------------------------------
|
||||
-- import contractorders
|
||||
--------------------------------
|
||||
CREATE OR REPLACE PROCEDURE aads_import_contract (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2,
|
||||
p_filedir IN VARCHAR2,
|
||||
p_filename IN VARCHAR2
|
||||
) IS
|
||||
|
||||
CURSOR cnt
|
||||
IS
|
||||
SELECT oms, num referentie
|
||||
FROM (SELECT 'Contract komt dubbel voor:' oms,
|
||||
contractcode || '/' || volgnummer num
|
||||
FROM aads_imp_contract) num
|
||||
GROUP BY num
|
||||
HAVING COUNT (num) > 1
|
||||
UNION ALL
|
||||
SELECT 'Gebouw bestaat niet:' oms, gebouw_code referentie
|
||||
FROM aads_imp_contract
|
||||
WHERE volgnummer IS NOT NULL
|
||||
AND upper(gebouw_code) NOT IN (SELECT NVL (alg_gebouw_upper, 'geen')
|
||||
FROM alg_v_aanweziggebouw)
|
||||
AND upper(gebouw_code) NOT IN
|
||||
(SELECT NVL (REPLACE (alg_gebouw_upper, '-', ''), 'geen')
|
||||
FROM alg_v_aanweziggebouw)
|
||||
UNION ALL
|
||||
SELECT DISTINCT
|
||||
'Leverancier bestaat niet:' oms,
|
||||
leverancier || '[' || leveranciernummer || ']' referentie
|
||||
FROM aads_imp_contract
|
||||
WHERE fac.safe_to_number (leveranciernummer) NOT IN
|
||||
(SELECT NVL (fac.safe_to_number (prs_leverancier_nr), 9999999999)
|
||||
FROM prs_bedrijf
|
||||
WHERE prs_bedrijf_contract = 1)
|
||||
UNION ALL
|
||||
SELECT 'Contractsoort bestaat niet:' oms, i.dienst referentie
|
||||
FROM aads_imp_contract i, cnt_discipline d, prs_kostensoort k
|
||||
WHERE i.dienst = k.prs_kostensoort_refcode
|
||||
AND DECODE (pakket, 'Pluspakket', 2, 1) = prs_kostensoortgrp_key
|
||||
AND d.prs_kostensoort_key(+) = k.prs_kostensoort_key
|
||||
AND i.volgnummer IS NULL
|
||||
AND k.prs_kostensoort_key IS NULL;
|
||||
|
||||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||||
|
||||
v_newline VARCHAR2 (4000); -- Input line
|
||||
v_errormsg VARCHAR (1000);
|
||||
v_hint VARCHAR (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_count NUMBER;
|
||||
v_ongeldig NUMBER(1);
|
||||
v_mode NUMBER(1);
|
||||
v_aanduiding VARCHAR (200);
|
||||
v_ins_discipline_key NUMBER(10);
|
||||
|
||||
-- De importvelden:
|
||||
v_gebouw_code VARCHAR2(100);
|
||||
v_leverancier VARCHAR2(100);
|
||||
v_beschrijving VARCHAR2(100);
|
||||
v_van VARCHAR2(100);
|
||||
v_pakket VARCHAR2(100);
|
||||
v_tot VARCHAR2(100);
|
||||
v_omschrijving VARCHAR2(4000);
|
||||
v_bedrag VARCHAR2(100);
|
||||
v_btw VARCHAR2(100);
|
||||
v_dienst VARCHAR2(100);
|
||||
v_contractcode VARCHAR2(100);
|
||||
v_volgnummer VARCHAR2(100);
|
||||
v_leveranciernummer VARCHAR2(100);
|
||||
v_dummy VARCHAR2(100);
|
||||
|
||||
|
||||
CURSOR c1(p_imp_file_applicatie VARCHAR2)
|
||||
IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_imp_file_applicatie = p_imp_file_applicatie
|
||||
ORDER BY fac_imp_file_index;
|
||||
|
||||
rec1 c1%ROWTYPE;
|
||||
|
||||
BEGIN
|
||||
|
||||
-- Eerst opruiming
|
||||
DELETE FROM imp_log WHERE imp_log_applicatie = p_applname;
|
||||
DELETE FROM aads_imp_contract;
|
||||
|
||||
COMMIT;
|
||||
|
||||
OPEN c1(p_applname);
|
||||
IF (c1%ISOPEN)
|
||||
THEN
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errormsg := 'Fout FETCH te importeren rij';
|
||||
|
||||
FETCH c1 INTO rec1;
|
||||
EXIT WHEN c1%NOTFOUND;
|
||||
v_newline := rec1. fac_imp_file_line;
|
||||
|
||||
v_newline := replace(v_newline,'""','');
|
||||
|
||||
v_errormsg := 'Fout opvragen te importeren rij';
|
||||
v_aanduiding := '';
|
||||
v_ongeldig := 0;
|
||||
|
||||
IF (1=0)
|
||||
THEN
|
||||
fac.imp_writelog (p_applname,
|
||||
p_applrun,
|
||||
'E',
|
||||
v_aanduiding||'Ongeldig importbestand',
|
||||
'Toelichting: ... '
|
||||
);
|
||||
ELSE
|
||||
|
||||
-- Lees alle veldwaarden
|
||||
fac.imp_getfield (v_newline,
|
||||
C_FIELDDELIMITOR,
|
||||
v_gebouw_code
|
||||
);
|
||||
--
|
||||
v_errormsg := 'Fout opvragen te importeren rij (leverancier)'||v_gebouw_code;
|
||||
fac.imp_getfield (v_newline,
|
||||
C_FIELDDELIMITOR,
|
||||
v_leverancier
|
||||
);
|
||||
--
|
||||
v_errormsg := 'Fout opvragen te importeren rij (beschrijving)'||v_gebouw_code;
|
||||
fac.imp_getfield (v_newline,
|
||||
C_FIELDDELIMITOR,
|
||||
v_beschrijving
|
||||
);
|
||||
--
|
||||
v_errormsg := 'Fout opvragen te importeren rij (pakket)'||v_gebouw_code;
|
||||
fac.imp_getfield (v_newline,
|
||||
C_FIELDDELIMITOR,
|
||||
v_pakket
|
||||
);
|
||||
--
|
||||
v_errormsg := 'Fout opvragen te importeren rij (van)'||v_gebouw_code;
|
||||
fac.imp_getfield (v_newline,
|
||||
C_FIELDDELIMITOR,
|
||||
v_van
|
||||
);
|
||||
--
|
||||
v_errormsg := 'Fout opvragen te importeren rij (tot)'||v_gebouw_code;
|
||||
fac.imp_getfield (v_newline,
|
||||
C_FIELDDELIMITOR,
|
||||
v_tot
|
||||
);
|
||||
--
|
||||
v_errormsg := 'Fout opvragen te importeren rij (omschrijving)'||v_gebouw_code;
|
||||
fac.imp_getfield (v_newline,
|
||||
C_FIELDDELIMITOR,
|
||||
v_omschrijving
|
||||
);
|
||||
--
|
||||
v_errormsg := 'Fout opvragen te importeren rij (bedrag)'||v_gebouw_code;
|
||||
fac.imp_getfield (v_newline,
|
||||
C_FIELDDELIMITOR,
|
||||
v_bedrag
|
||||
);
|
||||
--
|
||||
v_errormsg := 'Fout opvragen te importeren rij (btw)'||v_gebouw_code;
|
||||
fac.imp_getfield (v_newline,
|
||||
C_FIELDDELIMITOR,
|
||||
v_btw
|
||||
);
|
||||
--
|
||||
v_errormsg := 'Fout opvragen te importeren rij (dienst)'||v_gebouw_code;
|
||||
fac.imp_getfield (v_newline,
|
||||
C_FIELDDELIMITOR,
|
||||
v_dienst
|
||||
);
|
||||
--
|
||||
v_errormsg := 'Fout opvragen te importeren rij (contractcode):'||v_gebouw_code;
|
||||
fac.imp_getfield (v_newline,
|
||||
C_FIELDDELIMITOR,
|
||||
v_contractcode
|
||||
);
|
||||
--
|
||||
v_errormsg := 'Fout opvragen te importeren rij (volgnummer)'||v_gebouw_code;
|
||||
fac.imp_getfield (v_newline,
|
||||
C_FIELDDELIMITOR,
|
||||
v_volgnummer
|
||||
);
|
||||
--
|
||||
v_errormsg := 'Fout opvragen te importeren rij (leveranciernummer)'||v_gebouw_code;
|
||||
fac.imp_getfield (v_newline,
|
||||
C_FIELDDELIMITOR,
|
||||
v_leveranciernummer
|
||||
);
|
||||
|
||||
-- Insert geformatteerde import record
|
||||
IF v_ongeldig = 0
|
||||
THEN
|
||||
v_errormsg := 'Fout bij toevoegen te impoteren gebouw ['||v_gebouw_code||']';
|
||||
INSERT INTO aads_IMP_CONTRACT (
|
||||
gebouw_code
|
||||
, leverancier
|
||||
, beschrijving
|
||||
, van
|
||||
, tot
|
||||
, omschrijving
|
||||
, bedrag
|
||||
, btw
|
||||
, dienst
|
||||
, contractcode
|
||||
, volgnummer
|
||||
, pakket
|
||||
, leveranciernummer
|
||||
) VALUES (
|
||||
v_gebouw_code
|
||||
,v_leverancier
|
||||
,v_beschrijving
|
||||
,fac.safe_to_date(v_van, 'dd-mm-yy')
|
||||
,fac.safe_to_date(v_tot, 'dd-mm-yy')
|
||||
,v_omschrijving
|
||||
,fac.safe_to_number(replace(v_bedrag,',','.'))
|
||||
,v_btw
|
||||
,v_dienst
|
||||
,v_contractcode
|
||||
,fac.safe_to_number(replace(v_volgnummer,',','.'))
|
||||
,v_pakket
|
||||
,v_leveranciernummer
|
||||
);
|
||||
|
||||
-- check of het contractsoort bestaat
|
||||
BEGIN
|
||||
SELECT ins_discipline_key
|
||||
INTO v_ins_discipline_key
|
||||
FROM ins_tab_discipline
|
||||
WHERE ins_discipline_module = 'CNT'
|
||||
AND ins_discipline_verwijder IS NULL
|
||||
AND upper(ins_discipline_omschrijving) = SUBSTR(DECODE(upper(v_pakket), 'STANDAARD', 'ST', 'AS') || ' ' || upper(v_beschrijving),1,30);
|
||||
EXCEPTION WHEN NO_DATA_FOUND THEN
|
||||
INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_omschrijving, prs_kostensoort_key)
|
||||
VALUES ('CNT', SUBSTR(DECODE(upper(v_pakket), 'STANDAARD', 'ST', 'AS') || ' ' || v_beschrijving,1,30), null)
|
||||
RETURNING ins_discipline_key
|
||||
INTO v_ins_discipline_key;
|
||||
|
||||
INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type)
|
||||
VALUES(v_ins_discipline_key, 5);
|
||||
END;
|
||||
END IF;
|
||||
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
END IF;
|
||||
|
||||
FOR rec IN cnt
|
||||
LOOP
|
||||
BEGIN
|
||||
fac.imp_writelog (p_applname,
|
||||
p_applrun,
|
||||
'E',
|
||||
rec.oms,
|
||||
rec.referentie
|
||||
);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
commit;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
v_hint := v_errormsg;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_applname,
|
||||
p_applrun,
|
||||
'E',
|
||||
v_errormsg,
|
||||
v_hint
|
||||
);
|
||||
END aads_import_contract;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE aads_update_contract (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||||
AS
|
||||
v_oldcountcnt NUMBER;
|
||||
v_newcountcnt NUMBER;
|
||||
v_countcnt NUMBER;
|
||||
v_errormsg VARCHAR (1000);
|
||||
v_error_hint VARCHAR (1000);
|
||||
oracle_err_mes VARCHAR2 (150);
|
||||
oracle_err_num VARCHAR2 (150);
|
||||
currentversion fac_module.fac_module_version%TYPE;
|
||||
BEGIN
|
||||
|
||||
SELECT MAX (fac_module_version)
|
||||
INTO currentversion
|
||||
FROM fac_module;
|
||||
|
||||
fac.imp_writelog (p_applname,
|
||||
p_applrun,
|
||||
'I',
|
||||
'Arcadis Aqumen Contract import version ' || currentversion,
|
||||
'$Revision: 12 $'
|
||||
);
|
||||
|
||||
SELECT COUNT (*)
|
||||
INTO v_countcnt
|
||||
FROM aads_imp_contract;
|
||||
|
||||
IF v_countcnt = 0 THEN
|
||||
fac.imp_writelog (p_applname,
|
||||
p_applrun,
|
||||
'E',
|
||||
'Arcadis Aqumen Contract import bevat geen records',
|
||||
'$Revision: 12 $'
|
||||
);
|
||||
return;
|
||||
END IF;
|
||||
|
||||
-- voeg de contracten toe
|
||||
INSERT INTO cnt_contract
|
||||
(
|
||||
cnt_contract_nummer
|
||||
, cnt_contract_omschrijving
|
||||
, cnt_contract_document
|
||||
, cnt_contract_looptijd_van
|
||||
, cnt_contract_looptijd_tot
|
||||
, cnt_contract_kosten
|
||||
, cnt_prs_bedrijf_key
|
||||
, prs_afdeling_key_eig
|
||||
, ins_discipline_key
|
||||
, prs_perslid_key_beh
|
||||
, prs_kostenplaats_key
|
||||
, cnt_contract_rappeltermijn
|
||||
, cnt_contract_opzegtermijn
|
||||
)
|
||||
(SELECT contractcode,
|
||||
SUBSTR (beschrijving, 1, 50),
|
||||
REPLACE (REPLACE (i.omschrijving, '<(>', ''), '<)>', ''),
|
||||
van,
|
||||
tot,
|
||||
bedrag,
|
||||
prs_bedrijf_key,
|
||||
449,
|
||||
ins_discipline_key,
|
||||
6524,
|
||||
prs_kostenplaats_key,
|
||||
1,
|
||||
1
|
||||
FROM aads_imp_contract i,
|
||||
prs_bedrijf b,
|
||||
cnt_discipline d,
|
||||
prs_kostenplaats k
|
||||
WHERE fac.safe_to_number (leveranciernummer) =
|
||||
NVL (fac.safe_to_number (prs_leverancier_nr), 9999999999)
|
||||
AND upper(ins_discipline_omschrijving) = SUBSTR(DECODE(upper(i.pakket), 'STANDAARD', 'ST', 'AS') || ' ' || upper(i.beschrijving),1,30)
|
||||
AND k.prs_kostenplaats_nr = i.gebouw_code
|
||||
AND i.volgnummer IS NULL);
|
||||
|
||||
-- Scope van het contract zetten.
|
||||
INSERT INTO cnt_contract_plaats
|
||||
(
|
||||
cnt_contract_key, cnt_alg_plaats_key, cnt_alg_plaats_code, cnt_contract_plaats_gewicht
|
||||
)
|
||||
(SELECT cnt_contract_key, alg_gebouw_key, 'G', TRUNC (SUM (bedrag))
|
||||
FROM aads_imp_contract i, alg_gebouw g, cnt_contract c
|
||||
WHERE cnt_contract_nummer = contractcode
|
||||
AND (upper(i.gebouw_code) = alg_gebouw_upper
|
||||
OR REPLACE (alg_gebouw_upper, '-', '') = upper(gebouw_code))
|
||||
GROUP BY alg_gebouw_key, cnt_contract_key);
|
||||
|
||||
-- How many active records are now present?
|
||||
SELECT COUNT (*)
|
||||
INTO v_oldcountcnt
|
||||
FROM cnt_contract;
|
||||
|
||||
SELECT COUNT (*)
|
||||
INTO v_newcountcnt
|
||||
FROM cnt_contract;
|
||||
|
||||
fac.imp_writelog (p_applname,
|
||||
p_applrun,
|
||||
'S',
|
||||
'Aantal contracten vooraf: ' || TO_CHAR (v_oldcountcnt) || ' nu: ' || TO_CHAR (v_newcountcnt),
|
||||
''
|
||||
);
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
BEGIN fac.registercustversion('AADS', 13); END;
|
||||
/
|
||||
|
||||
COMMIT;
|
||||
|
||||
Reference in New Issue
Block a user