867 lines
36 KiB
Plaintext
867 lines
36 KiB
Plaintext
SPOOL 115to116
|
|
|
|
/*
|
|
* [V:\SQL\_UPDATE]
|
|
*
|
|
* Update script van versie 01.15 naar 01.16
|
|
*
|
|
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
|
|
* om #ifdef's te gebruiken voor de diverse modules.
|
|
*
|
|
* History:
|
|
*
|
|
* 05-06-96 KTH SPOOL-filenaam gecorrigeerd (was nog 114to115)
|
|
* 05-06-96 AH PRS-entities toegevoegd
|
|
* 04-06-96 EH View prs_v_werkplek_gegevens intern aangepast (Performance)
|
|
* 03-06-96 EH 2 entities voor PRS toegevoegd.
|
|
* 03-06-96 AH INV_SRTDEEL-entity is Artikelsoort geworden.
|
|
* 31-05-96 AH LEV-message tegevoegd.
|
|
* 31-05-96 AH INS_T_INS_DEEL_B_IU aangepast voor INV/LEV. INS_Alg_ruimte_key
|
|
* kan ook 'L' (locaties) bevatten.
|
|
* 31-05-96 AH Voor LEV is de UNIQUE op INS_DEEL veranderd.
|
|
* 31-05-96 AH INV-entities en messages toegevoegd
|
|
* 31-05-96 AH Views INV_V_DEEL_GEGEVENS, INV_V_DEEL_PLAATS_GEGEVENS
|
|
* en INV_V_DEEL_BEZIT_GEGEVENS aangepast
|
|
* 31-05-96 AH Vakgroep, Artikelgroep en Artikelsoort aangepast in
|
|
* entities en messages
|
|
* 29-05-96 EH Aan de view prs_v_werkplekperslidgegevens persleden weer hun
|
|
* afdeling teruggegeven.
|
|
* 29-05-96 EH Lege file aangemaakt
|
|
*/
|
|
|
|
#include "comsql.h"
|
|
|
|
#ifdef PRS
|
|
|
|
CREATE OR REPLACE VIEW prs_v_werkplek_gegevens AS
|
|
SELECT PRS_W.prs_werkplek_key,
|
|
PRS_W.prs_werkplek_volgnr,
|
|
PRS_W.prs_werkplek_omschrijving,
|
|
PRS_W.prs_werkplek_opp,
|
|
ALG_R.alg_ruimte_key,
|
|
ALG_R.alg_ruimte_nr,
|
|
ALG_R.alg_ruimte_upper_nr,
|
|
ALG_R.alg_ruimte_bruto_vloeropp,
|
|
ALG_V.alg_verdieping_key,
|
|
ALG_V.alg_verdieping_volgnr,
|
|
ALG_V.alg_verdieping_omschrijving,
|
|
ALG_G.alg_gebouw_key,
|
|
ALG_G.alg_gebouw_omschrijving,
|
|
ALG_G.alg_gebouw_upper,
|
|
ALG_G.alg_locatie_key
|
|
FROM prs_v_aanwezigwerkplek PRS_W, alg_ruimte ALG_R,
|
|
alg_verdieping ALG_V, alg_gebouw ALG_G
|
|
WHERE ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
|
|
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
|
|
AND PRS_W.prs_alg_ruimte_key = ALG_R.alg_ruimte_key;
|
|
|
|
CREATE_VIEW(prs_v_werkplekperslid_gegevens,NORMAAL_PRIVILEGE)
|
|
( prs_perslidwerkplek_key,
|
|
prs_perslid_key,
|
|
prs_afdeling_key,
|
|
prs_naam,
|
|
prs_werkplek_key,
|
|
prs_werkplek_volgnr,
|
|
prs_werkplek_opp,
|
|
alg_locatie_key,
|
|
alg_gebouw_omschrijving,
|
|
alg_gebouw_upper,
|
|
alg_verdieping_volgnr,
|
|
alg_verdieping_omschrijving,
|
|
alg_ruimte_nr,
|
|
alg_ruimte_upper_nr ) AS
|
|
SELECT PRS_PW.prs_perslidwerkplek_key,
|
|
PRS_PW.prs_perslid_key,
|
|
PRS_P.prs_afdeling_key,
|
|
PRS_P.prs_perslid_naam||' '||prs_perslid_voorletters,
|
|
PRS_PW.prs_werkplek_key,
|
|
PRS_W.prs_werkplek_volgnr,
|
|
PRS_W.prs_werkplek_opp,
|
|
PRS_W.alg_locatie_key,
|
|
PRS_W.alg_gebouw_omschrijving,
|
|
PRS_W.alg_gebouw_upper,
|
|
PRS_W.alg_verdieping_volgnr,
|
|
PRS_W.alg_verdieping_omschrijving,
|
|
PRS_W.alg_ruimte_nr,
|
|
PRS_W.alg_ruimte_upper_nr
|
|
FROM prs_v_aanwezigperslidwerkplek PRS_PW, prs_perslid PRS_P,
|
|
prs_v_werkplek_gegevens PRS_W
|
|
WHERE PRS_PW.prs_perslid_key = PRS_P.prs_perslid_key
|
|
AND PRS_PW.prs_werkplek_key = PRS_W.prs_werkplek_key
|
|
UNION
|
|
SELECT PRS_PW.prs_perslidwerkplek_key,
|
|
to_number(NULL),
|
|
PRS_PW.prs_afdeling_key,
|
|
'['||PRS_A.prs_afdeling_naam||']',
|
|
PRS_PW.prs_werkplek_key,
|
|
PRS_W.prs_werkplek_volgnr,
|
|
PRS_W.prs_werkplek_opp,
|
|
PRS_W.alg_locatie_key,
|
|
PRS_W.alg_gebouw_omschrijving,
|
|
PRS_W.alg_gebouw_upper,
|
|
PRS_W.alg_verdieping_volgnr,
|
|
PRS_W.alg_verdieping_omschrijving,
|
|
PRS_W.alg_ruimte_nr,
|
|
PRS_W.alg_ruimte_upper_nr
|
|
FROM prs_v_aanwezigperslidwerkplek PRS_PW, prs_afdeling PRS_A,
|
|
prs_v_werkplek_gegevens PRS_W
|
|
WHERE PRS_PW.prs_afdeling_key = PRS_A.prs_afdeling_key
|
|
AND PRS_PW.prs_werkplek_key = PRS_W.prs_werkplek_key;
|
|
|
|
#endif //PRS
|
|
|
|
DEF_FAC_ENTITY ('PRS_RAFRAP_PERC', 'Perc.', NULL, NULL);
|
|
DEF_FAC_ENTITY ('PRS_RAFRAP_OPP', 'Opp. (m2)', NULL, NULL);
|
|
DEF_FAC_ENTITY ('PRS_OGWRAP_BUTTON', 'Overzicht', NULL, NULL);
|
|
|
|
DEF_FAC_ENTITY ('INV_SRTDEEL', 'Artikel', 'Artikelen', 'het');
|
|
|
|
|
|
DEF_FAC_MESSAGE ('inv_m001', 'Verwijderen vakgroep ');
|
|
DEF_FAC_MESSAGE ('inv_m002', 'De omschrijving van de vakgroep is niet ingevuld.');
|
|
DEF_FAC_MESSAGE ('inv_m004', 'De vakgroep is niet ingevuld.');
|
|
DEF_FAC_MESSAGE ('inv_m007', 'De omschrijving voor het artikelsoort is niet ingevuld.');
|
|
DEF_FAC_MESSAGE ('inv_m008', 'Verwijderen artikelsoort ');
|
|
DEF_FAC_MESSAGE ('inv_m012', 'Het artikelsoort is niet ingevuld.');
|
|
|
|
#ifdef INV
|
|
CREATE_VIEW(inv_v_deel_gegevens,NORMAAL_PRIVILEGE) AS
|
|
SELECT INV_D.ins_discipline_key, INV_D.ins_discipline_omschrijving,
|
|
INV_SG.ins_srtgroep_key, INV_SG.ins_srtgroep_omschrijving,
|
|
INV_SG.ins_srtgroep_upper, INV_SD.ins_srtdeel_key,
|
|
INV_SD.ins_srtdeel_omschrijving, INV_SD.ins_srtdeel_upper,
|
|
INV_SD.inv_srtdeel_nr,
|
|
INV_DEEL.ins_deel_key, INV_DEEL.ins_deel_aantal,
|
|
INV_DEEL.ins_deel_omschrijving, INV_DEEL.ins_deel_upper,
|
|
INV_DEEL.ins_deel_serienr, INV_DEEL.ins_alg_ruimte_key,
|
|
INV_DEEL.ins_alg_ruimte_type, INV_DEEL.ins_prs_bezit_key,
|
|
INV_DEEL.ins_prs_bezit_type
|
|
#ifdef LEV
|
|
, INV_DEEL.lev_afvoerlijst_datum
|
|
#endif
|
|
FROM inv_v_aanwezigdiscipline INV_D, inv_v_aanwezigsrtgroep INV_SG,
|
|
inv_v_aanwezigsrtdeel INV_SD, inv_v_aanwezigdeel INV_DEEL
|
|
WHERE INV_SG.ins_srtgroep_key = INV_SD.ins_srtgroep_key
|
|
AND INV_D.ins_discipline_key = INV_SG.ins_discipline_key
|
|
AND INV_DEEL.ins_srtdeel_key = INV_SD.ins_srtdeel_key;
|
|
|
|
CREATE_VIEW(inv_v_deel_plaats_gegevens,NORMAAL_PRIVILEGE)
|
|
(ins_deel_key, ins_deel_omschrijving,
|
|
ins_deel_upper, ins_deel_aantal,
|
|
ins_alg_ruimte_key,
|
|
ins_alg_ruimte_type, ins_srtdeel_key,
|
|
#ifdef INV
|
|
inv_srtdeel_nr,
|
|
#endif
|
|
ins_srtdeel_omschrijving, ins_srtdeel_upper,
|
|
alg_locatie_key, alg_gebouw_key,
|
|
alg_gebouw_omschrijving, alg_gebouw_upper,
|
|
alg_verdieping_key, alg_verdieping_omschrijving,
|
|
alg_verdieping_volgnr, alg_ruimte_key,
|
|
alg_ruimte_nr, alg_ruimte_omschrijving,
|
|
alg_ruimte_upper_nr,
|
|
prs_werkplek_key, prs_werkplek_volgnr) AS
|
|
SELECT INV_D.ins_deel_key,
|
|
INV_D.ins_deel_omschrijving,
|
|
INV_D.ins_deel_upper,
|
|
INV_D.ins_deel_aantal,
|
|
INV_D.ins_alg_ruimte_key,
|
|
INV_D.ins_alg_ruimte_type,
|
|
INV_SD.ins_srtdeel_key,
|
|
#ifdef INV
|
|
INV_SD.inv_srtdeel_nr,
|
|
#endif
|
|
INV_SD.ins_srtdeel_omschrijving,
|
|
INV_SD.ins_srtdeel_upper,
|
|
ALG_G.alg_locatie_key,
|
|
ALG_G.alg_gebouw_key,
|
|
ALG_G.alg_gebouw_omschrijving,
|
|
ALG_G.alg_gebouw_upper,
|
|
ALG_V.alg_verdieping_key,
|
|
ALG_V.alg_verdieping_omschrijving,
|
|
ALG_V.alg_verdieping_volgnr,
|
|
ALG_R.alg_ruimte_key,
|
|
ALG_R.alg_ruimte_nr,
|
|
ALG_R.alg_ruimte_omschrijving,
|
|
ALG_R.alg_ruimte_upper_nr,
|
|
TO_NUMBER(NULL),
|
|
TO_NUMBER(NULL)
|
|
FROM inv_v_aanwezigdeel INV_D, ins_srtdeel INV_SD,
|
|
alg_gebouw ALG_G, alg_verdieping ALG_V,
|
|
alg_ruimte ALG_R
|
|
WHERE ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key
|
|
AND ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key
|
|
AND INV_SD.ins_srtdeel_key = INV_D.ins_srtdeel_key
|
|
AND ALG_R.alg_ruimte_key = INV_D.ins_alg_ruimte_key
|
|
AND INV_D.ins_alg_ruimte_type = 'R'
|
|
UNION
|
|
SELECT INV_D.ins_deel_key,
|
|
INV_D.ins_deel_omschrijving,
|
|
INV_D.ins_deel_upper,
|
|
INV_D.ins_deel_aantal,
|
|
INV_D.ins_alg_ruimte_key,
|
|
INV_D.ins_alg_ruimte_type,
|
|
INV_SD.ins_srtdeel_key,
|
|
#ifdef INV
|
|
INV_SD.inv_srtdeel_nr,
|
|
#endif
|
|
INV_SD.ins_srtdeel_omschrijving,
|
|
INV_SD.ins_srtdeel_upper,
|
|
ALG_G.alg_locatie_key,
|
|
ALG_G.alg_gebouw_key,
|
|
ALG_G.alg_gebouw_omschrijving,
|
|
ALG_G.alg_gebouw_upper,
|
|
ALG_V.alg_verdieping_key,
|
|
ALG_V.alg_verdieping_omschrijving,
|
|
ALG_V.alg_verdieping_volgnr,
|
|
ALG_R.alg_ruimte_key,
|
|
ALG_R.alg_ruimte_nr,
|
|
ALG_R.alg_ruimte_omschrijving,
|
|
ALG_R.alg_ruimte_upper_nr,
|
|
PRS_W.prs_werkplek_key,
|
|
PRS_W.prs_werkplek_volgnr
|
|
FROM inv_v_aanwezigdeel INV_D, ins_srtdeel INV_SD,
|
|
alg_gebouw ALG_G, alg_verdieping ALG_V,
|
|
alg_ruimte ALG_R, prs_werkplek PRS_W
|
|
WHERE ALG_G.alg_gebouw_key = ALG_V.alg_gebouw_key
|
|
AND ALG_V.alg_verdieping_key = ALG_R.alg_verdieping_key
|
|
AND ALG_R.alg_ruimte_key = PRS_W.prs_alg_ruimte_key
|
|
AND INV_SD.ins_srtdeel_key = INV_D.ins_srtdeel_key
|
|
AND PRS_W.prs_werkplek_key = INV_D.ins_alg_ruimte_key
|
|
AND INV_D.ins_alg_ruimte_type = 'W';
|
|
|
|
|
|
CREATE_VIEW(inv_v_deel_bezit_gegevens,NORMAAL_PRIVILEGE)
|
|
(ins_discipline_key, ins_srtgroep_key,
|
|
ins_srtdeel_key, ins_srtdeel_omschrijving,
|
|
ins_srtdeel_upper,
|
|
#ifdef INV
|
|
inv_srtdeel_nr,
|
|
#endif
|
|
ins_deel_key,
|
|
ins_deel_omschrijving, ins_deel_upper,
|
|
ins_deel_aantal,
|
|
ins_alg_ruimte_key, ins_alg_ruimte_type,
|
|
ins_prs_bezit_key, ins_prs_bezit_type,
|
|
prs_afdeling_key, prs_afdeling_naam,
|
|
prs_afdeling_omschrijving,
|
|
prs_afdeling_upper, prs_perslid_key,
|
|
prs_perslid_naam, prs_perslid_upper) AS
|
|
SELECT INV_D.ins_discipline_key,
|
|
INV_D.ins_srtgroep_key,
|
|
INV_D.ins_srtdeel_key,
|
|
INV_D.ins_srtdeel_omschrijving,
|
|
INV_D.ins_srtdeel_upper,
|
|
#ifdef INV
|
|
INV_D.inv_srtdeel_nr,
|
|
#endif
|
|
INV_D.ins_deel_key,
|
|
INV_D.ins_deel_omschrijving,
|
|
INV_D.ins_deel_upper,
|
|
INV_D.ins_deel_aantal,
|
|
INV_D.ins_alg_ruimte_key,
|
|
INV_D.ins_alg_ruimte_type,
|
|
INV_D.ins_prs_bezit_key,
|
|
INV_D.ins_prs_bezit_type,
|
|
PRS_A.prs_afdeling_key,
|
|
PRS_A.prs_afdeling_naam,
|
|
PRS_A.prs_afdeling_omschrijving,
|
|
PRS_A.prs_afdeling_upper,
|
|
TO_NUMBER(NULL),
|
|
NULL,
|
|
NULL
|
|
FROM inv_v_deel_gegevens INV_D, prs_v_aanwezigafdeling PRS_A
|
|
WHERE INV_D.ins_prs_bezit_type = 'A'
|
|
AND INV_D.ins_prs_bezit_key = PRS_A.prs_afdeling_key
|
|
UNION
|
|
SELECT INV_D.ins_discipline_key,
|
|
INV_D.ins_srtgroep_key,
|
|
INV_D.ins_srtdeel_key,
|
|
INV_D.ins_srtdeel_omschrijving,
|
|
INV_D.ins_srtdeel_upper,
|
|
#ifdef INV
|
|
INV_D.inv_srtdeel_nr,
|
|
#endif
|
|
INV_D.ins_deel_key,
|
|
INV_D.ins_deel_omschrijving,
|
|
INV_D.ins_deel_upper,
|
|
INV_D.ins_deel_aantal,
|
|
INV_D.ins_alg_ruimte_key,
|
|
INV_D.ins_alg_ruimte_type,
|
|
INV_D.ins_prs_bezit_key,
|
|
INV_D.ins_prs_bezit_type,
|
|
PRS_A.prs_afdeling_key,
|
|
PRS_A.prs_afdeling_naam,
|
|
PRS_A.prs_afdeling_omschrijving,
|
|
PRS_A.prs_afdeling_upper,
|
|
PRS_P.prs_perslid_key,
|
|
PRS_P.prs_perslid_naam||' '||PRS_P.prs_perslid_voorletters,
|
|
PRS_P.prs_perslid_upper||' '||UPPER(PRS_P.prs_perslid_voorletters)
|
|
FROM inv_v_deel_gegevens INV_D, prs_v_aanwezigafdeling PRS_A,
|
|
prs_v_aanwezigperslid PRS_P
|
|
WHERE INV_D.ins_prs_bezit_type = 'P'
|
|
AND INV_D.ins_prs_bezit_key = PRS_P.prs_perslid_key
|
|
AND PRS_P.prs_afdeling_key = PRS_A.prs_afdeling_key;
|
|
|
|
CREATE TRIGGER ins_t_ins_deel_B_IU
|
|
BEFORE INSERT OR UPDATE ON ins_deel
|
|
FOR EACH ROW
|
|
BEGIN
|
|
LOG('Begin INS_T_INS_DEEL_B_IU');
|
|
UPDATE_PRIMARY_KEY(ins_deel_key,ins_s_ins_inst_keys);
|
|
UPDATE_UPPER(ins_deel_omschrijving,ins_deel_upper);
|
|
SET_VERWIJDER_CHILDREN(ins_onderdeel, ins_deel_key, ins_deel_verwijder,
|
|
ins_onderdeel_verwijder);
|
|
|
|
/* Bij INS_DEEL in INS-mode moet INS_ALG_RUIMTE_KEY ingevuld zijn
|
|
* en wel met ruimte of terreinsector, daarvoor moet ook het
|
|
* INS_ALG_RUIMTE_TYPE veld goed ingevuld zijn (met 'R' of 'T').
|
|
* Dit geldt als INS_ALG_RUIMTE_KEY veranderd is of als er een
|
|
* nieuw record geinsert wordt.
|
|
*
|
|
* IN INV-mode hoeft INS_ALG_RUIMTE_KEY niet ingevuld te zijn, maar
|
|
* als deze ingevuld is moet INS_ALG_RUIMTE_KEY met ruimte of werkplek
|
|
* gevuld zijn, daarvoor moet het veld INS_ALG_RUITMTE_KEY goed
|
|
* ingevuld zijn (met 'R' of 'W').
|
|
*
|
|
* IN INV-mode kan het veld INS_PRS_BEZIT_KEY ook ingevuld zijn, maar
|
|
* INS_ALG_RUIMTE_KEY en INS_PRS_BEZIT_KEY kunnen niet beide ingevuld worden.
|
|
* INS_PRS_BEZIT_KEY kan de waarde perslid of afdeling bevatten en het
|
|
* veld INS_PRS_BEZIT_TYPE moet dan goed ingevuld zijn (met 'P' of 'A').
|
|
*/
|
|
IF :new.ins_deel_module = 'INS'
|
|
AND (:old.ins_alg_ruimte_key <> :new.ins_alg_ruimte_key
|
|
OR :old.ins_alg_ruimte_key IS NULL)
|
|
THEN
|
|
IF :new.ins_alg_ruimte_type = 'R'
|
|
THEN
|
|
CHECK_KEY_REFERENCE(alg_v_aanwezigruimte, alg_ruimte_key,
|
|
:new.ins_alg_ruimte_key, 'ins_m83');
|
|
ELSIF :new.ins_alg_ruimte_type = 'T'
|
|
THEN
|
|
CHECK_KEY_REFERENCE(alg_v_aanwezigterreinsector, alg_terreinsector_key,
|
|
:new.ins_alg_ruimte_key, 'ins_m83');
|
|
ELSE
|
|
APPLICATION_ERROR(-20000, 'ins_m84');
|
|
END IF;
|
|
#ifdef INV
|
|
ELSIF :new.ins_deel_module = 'INV'
|
|
AND (:new.ins_alg_ruimte_key IS NOT NULL
|
|
OR :new.ins_prs_bezit_key IS NOT NULL )
|
|
THEN
|
|
IF :new.ins_alg_ruimte_key IS NOT NULL
|
|
AND :new.ins_prs_bezit_key IS NOT NULL
|
|
THEN
|
|
APPLICATION_ERROR(-20000, 'ins_m85');
|
|
ELSIF :new.ins_alg_ruimte_key IS NOT NULL
|
|
THEN
|
|
IF :new.ins_alg_ruimte_type = 'R'
|
|
THEN
|
|
CHECK_KEY_REFERENCE(alg_v_aanwezigruimte, alg_ruimte_key,
|
|
:new.ins_alg_ruimte_key, 'ins_m88');
|
|
ELSIF :new.ins_alg_ruimte_type = 'W'
|
|
THEN
|
|
CHECK_KEY_REFERENCE(prs_v_aanwezigwerkplek, prs_werkplek_key,
|
|
:new.ins_alg_ruimte_key, 'ins_m88');
|
|
ELSIF :new.ins_alg_ruimte_type = 'L'
|
|
THEN
|
|
CHECK_KEY_REFERENCE(alg_v_aanweziglocatie, alg_locatie_key,
|
|
:new.ins_alg_ruimte_key, 'ins_m88');
|
|
ELSE
|
|
APPLICATION_ERROR(-20000, 'ins_m84');
|
|
END IF;
|
|
ELSIF :new.ins_prs_bezit_key IS NOT NULL
|
|
THEN
|
|
IF :new.ins_prs_bezit_type = 'P'
|
|
THEN
|
|
CHECK_KEY_REFERENCE(prs_v_aanwezigperslid, prs_perslid_key,
|
|
:new.ins_prs_bezit_key, 'ins_m86');
|
|
ELSIF :new.ins_prs_bezit_type = 'A'
|
|
THEN
|
|
CHECK_KEY_REFERENCE(prs_v_aanwezigafdeling, prs_afdeling_key,
|
|
:new.ins_prs_bezit_key, 'ins_m86');
|
|
ELSE
|
|
APPLICATION_ERROR(-20000, 'ins_m86');
|
|
END IF;
|
|
ELSE
|
|
APPLICATION_ERROR(-20000, 'ins_m87');
|
|
END IF;
|
|
#endif
|
|
END IF;
|
|
#ifdef INV
|
|
/* Als een INS_DEEL in INV-mode (red. een artikel) verwijderd, gekoppeld,
|
|
* ontkoppeld of verplaatst wordt van een ruimte of een werkplek,
|
|
* dan is de bijbehorende verdieping-tekening niet meer up to date en
|
|
* moet dus het INV_DWGUPTODATE-veld gezet worden.
|
|
*
|
|
* Als in INV-mode het INS_DEEL van INS_SRTDEEL veranderd,
|
|
* moet in het geval dit INS_SRTDEEL een ander ACADSYMBOL heeft
|
|
* het INV_DWGUPTODATE-veld van de verdiepingtekening ook gezet worden.
|
|
*/
|
|
IF :new.ins_deel_module = 'INV'
|
|
THEN
|
|
/* Verwijderen */
|
|
IF :new.ins_deel_verwijder IS NOT NULL
|
|
/* Koppelen */
|
|
OR (:old.ins_alg_ruimte_key IS NULL
|
|
AND :new.ins_alg_ruimte_key IS NOT NULL)
|
|
/* Ontkoppelen */
|
|
OR (:old.ins_alg_ruimte_key IS NOT NULL
|
|
AND :new.ins_alg_ruimte_key IS NULL)
|
|
/* Verplaatsen */
|
|
OR (:old.ins_alg_ruimte_key <> :new.ins_alg_ruimte_key)
|
|
/* Van INS_SRTDEEL veranderen.
|
|
* ACADSYMBOL is hierin nog niet verwerkt.
|
|
*/
|
|
OR (:old.ins_srtdeel_key <> :new.ins_srtdeel_key)
|
|
THEN
|
|
/* Voor de oude INS_ALG_RUIMTE_KEY */
|
|
IF :old.ins_alg_ruimte_type = 'R'
|
|
AND :old.ins_alg_ruimte_key IS NOT NULL
|
|
THEN
|
|
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
|
|
(SELECT ALG_R.alg_verdieping_key
|
|
FROM alg_ruimte ALG_R
|
|
WHERE ALG_R.alg_ruimte_key = :old.ins_alg_ruimte_key),
|
|
inv_dwguptodate);
|
|
ELSIF :old.ins_alg_ruimte_type = 'W'
|
|
AND :old.ins_alg_ruimte_key IS NOT NULL
|
|
THEN
|
|
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
|
|
(SELECT ALG_R.alg_verdieping_key
|
|
FROM prs_v_aanwezigwerkplek PRS_W,
|
|
alg_ruimte ALG_R
|
|
WHERE PRS_W.prs_werkplek_key = :old.ins_alg_ruimte_key
|
|
AND ALG_R.alg_ruimte_key = PRS_W.prs_alg_ruimte_key),
|
|
inv_dwguptodate);
|
|
END IF;
|
|
/* Voor de nieuwe INS_ALG_RUIMTE_KEY*/
|
|
IF :new.ins_alg_ruimte_type = 'R'
|
|
AND :new.ins_alg_ruimte_key IS NOT NULL
|
|
THEN
|
|
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
|
|
(SELECT ALG_R.alg_verdieping_key
|
|
FROM alg_ruimte ALG_R
|
|
WHERE ALG_R.alg_ruimte_key = :new.ins_alg_ruimte_key),
|
|
inv_dwguptodate);
|
|
ELSIF :new.ins_alg_ruimte_type = 'W'
|
|
AND :new.ins_alg_ruimte_key IS NOT NULL
|
|
THEN
|
|
SET_DWGUPTODATE(alg_verdieping, alg_verdieping_key,
|
|
(SELECT ALG_R.alg_verdieping_key
|
|
FROM prs_v_aanwezigwerkplek PRS_W,
|
|
alg_ruimte ALG_R
|
|
WHERE PRS_W.prs_werkplek_key = :new.ins_alg_ruimte_key
|
|
AND ALG_R.alg_ruimte_key = PRS_W.prs_alg_ruimte_key),
|
|
inv_dwguptodate);
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
#endif // INV
|
|
|
|
/* Gedeelte t.b.v. eventuele attribuutjes */
|
|
|
|
DECLARE dummy NUMBER;
|
|
BEGIN
|
|
SELECT count(*) INTO dummy
|
|
FROM ins_v_attribute_gegevens
|
|
WHERE ins_srtdeel_key = :new.ins_srtdeel_key;
|
|
|
|
IF dummy <> 0 /* attributen aanwezig */
|
|
THEN
|
|
IF :new.fac0 <> :old.fac0 OR :new.fac0 IS NULL OR :old.fac0 IS NULL
|
|
THEN
|
|
/*
|
|
* Trigger t.b.v. de 'flexibele' velden in ins_deel
|
|
*/
|
|
CHECK_ATTRIBUTE(fac0,0);
|
|
END IF;
|
|
|
|
IF :new.fac1 <> :old.fac1 OR :new.fac1 IS NULL OR :old.fac1 IS NULL THEN CHECK_ATTRIBUTE(fac1,1); END IF;
|
|
IF :new.fac2 <> :old.fac2 OR :new.fac2 IS NULL OR :old.fac2 IS NULL THEN CHECK_ATTRIBUTE(fac2,2); END IF;
|
|
IF :new.fac3 <> :old.fac3 OR :new.fac3 IS NULL OR :old.fac3 IS NULL THEN CHECK_ATTRIBUTE(fac3,3); END IF;
|
|
IF :new.fac4 <> :old.fac4 OR :new.fac4 IS NULL OR :old.fac4 IS NULL THEN CHECK_ATTRIBUTE(fac4,4); END IF;
|
|
IF :new.fac5 <> :old.fac5 OR :new.fac5 IS NULL OR :old.fac5 IS NULL THEN CHECK_ATTRIBUTE(fac5,5); END IF;
|
|
IF :new.fac6 <> :old.fac6 OR :new.fac6 IS NULL OR :old.fac6 IS NULL THEN CHECK_ATTRIBUTE(fac6,6); END IF;
|
|
IF :new.fac7 <> :old.fac7 OR :new.fac7 IS NULL OR :old.fac7 IS NULL THEN CHECK_ATTRIBUTE(fac7,7); END IF;
|
|
IF :new.fac8 <> :old.fac8 OR :new.fac8 IS NULL OR :old.fac8 IS NULL THEN CHECK_ATTRIBUTE(fac8,8); END IF;
|
|
IF :new.fac9 <> :old.fac9 OR :new.fac9 IS NULL OR :old.fac9 IS NULL THEN CHECK_ATTRIBUTE(fac9,9); END IF;
|
|
|
|
END IF;
|
|
END;
|
|
|
|
/* Einde attributen */
|
|
|
|
#ifdef BCP
|
|
|
|
/* Procedure Taak */
|
|
IF :new.ins_deel_module = 'INS' AND :new.ins_alg_ruimte_type = 'R'
|
|
THEN
|
|
DECLARE
|
|
|
|
/* zoek taak bij nGebouw en bij deelsoort */
|
|
CURSOR c1(nGebouw NUMBER, nSrtdeel NUMBER) IS
|
|
SELECT A.bcp_taak_key, B.bcp_verzamel_key
|
|
FROM bcp_v_aanwezigtaak A, bcp_v_aanwezigverzamel B
|
|
WHERE A.bcp_verzamel_key = B.bcp_verzamel_key
|
|
AND B.bcp_ins_srtdeel_key = nSrtdeel
|
|
AND A.bcp_alg_gebouw_key = nGebouw;
|
|
|
|
Rec c1%ROWTYPE;
|
|
|
|
/* zoek alle verzamelopdrachten bij een deelsoort */
|
|
CURSOR c2(nSrtdeel NUMBER) IS
|
|
SELECT bcp_verzamel_key
|
|
FROM bcp_v_aanwezigverzamel
|
|
WHERE bcp_ins_srtdeel_key = nSrtdeel;
|
|
|
|
Rec2 c2%ROWTYPE;
|
|
|
|
nGebouw NUMBER(10);
|
|
nOudGebouw NUMBER(10);
|
|
nVerzamel NUMBER(10);
|
|
nUren NUMBER(10);
|
|
nMateriaal NUMBER(12);
|
|
nFreqWeken NUMBER(2);
|
|
nSector NUMBER(2);
|
|
nStartweek NUMBER(4);
|
|
nStartwerkweek NUMBER(4);
|
|
nJaar NUMBER(4);
|
|
nWeek NUMBER(4);
|
|
nWerkweek NUMBER(4);
|
|
nTaak NUMBER(10);
|
|
nStatus NUMBER(10);
|
|
nFactor NUMBER(10);
|
|
teller NUMBER(10);
|
|
teller2 NUMBER(10);
|
|
totaal NUMBER(10);
|
|
aant NUMBER(10);
|
|
nStatusUpper VARCHAR2(30);
|
|
verzamel_veranderd BOOLEAN;
|
|
taken_veranderd BOOLEAN;
|
|
nOthing BOOLEAN;
|
|
|
|
BEGIN
|
|
|
|
/* zoek gebouw en sector bij ruimte waar deel is */
|
|
SELECT A.alg_gebouw_key, A.bco_gebouw_sector
|
|
INTO nGebouw, nSector
|
|
FROM alg_v_aanweziggebouw A, alg_v_aanwezigverdieping B, alg_v_aanwezigruimte C
|
|
WHERE A.alg_gebouw_key = B.alg_gebouw_key
|
|
AND B.alg_verdieping_key = C.alg_verdieping_key
|
|
AND C.alg_ruimte_key = :new.ins_alg_ruimte_key;
|
|
|
|
IF NOT :old.ins_srtdeel_key IS NULL THEN
|
|
SELECT A.alg_gebouw_key
|
|
INTO nOudGebouw
|
|
FROM alg_v_aanweziggebouw A, alg_v_aanwezigverdieping B, alg_v_aanwezigruimte C
|
|
WHERE A.alg_gebouw_key = B.alg_gebouw_key
|
|
AND B.alg_verdieping_key = C.alg_verdieping_key
|
|
AND C.alg_ruimte_key = :old.ins_alg_ruimte_key;
|
|
END IF;
|
|
|
|
/* bepalen of de taken en eventueel de verzamelopdrachten van
|
|
het deel veranderd zijn. */
|
|
IF (:new.ins_srtdeel_key = :old.ins_srtdeel_key) AND (nGebouw = nOudGebouw) THEN
|
|
verzamel_veranderd := FALSE;
|
|
taken_veranderd := FALSE;
|
|
ELSIF (:new.ins_srtdeel_key = :old.ins_srtdeel_key) THEN
|
|
verzamel_veranderd := TRUE;
|
|
taken_veranderd := FALSE;
|
|
ELSE
|
|
verzamel_veranderd := TRUE;
|
|
taken_veranderd := TRUE;
|
|
END IF;
|
|
|
|
IF taken_veranderd THEN
|
|
|
|
/* alleen de taken bij oud_deel updaten als er een oud_deel is */
|
|
IF (NOT :old.ins_srtdeel_key IS NULL)
|
|
AND (NOT nOudGebouw IS NULL)
|
|
AND (NOT :old.ins_deel_verwijder = NULLDATUM)
|
|
THEN
|
|
OPEN c1(nOudGebouw, :old.ins_srtdeel_key);
|
|
LOOP
|
|
FETCH c1 INTO Rec;
|
|
EXIT WHEN c1%NOTFOUND;
|
|
|
|
nTaak := Rec.bcp_taak_key;
|
|
|
|
SELECT bcp_taak_aantal, bcp_ins_deel_aantal
|
|
INTO totaal, teller
|
|
FROM bcp_v_aanwezigtaak
|
|
WHERE bcp_taak_key = nTaak;
|
|
|
|
IF (teller = 1) THEN
|
|
|
|
UPDATE bcp_taak
|
|
SET bcp_taak_verwijder = SYSDATE
|
|
WHERE bcp_taak_key = nTaak;
|
|
|
|
ELSIF (teller > 1) THEN
|
|
|
|
/* bepaal aantal van het te verwijderen deel ...*/
|
|
aant := :old.ins_deel_aantal;
|
|
|
|
/* ... en pas de taak aan */
|
|
UPDATE bcp_taak
|
|
SET bcp_taak_uren = (totaal-aant)/totaal * bcp_taak_uren,
|
|
bcp_taak_materiaal = (totaal-aant)/totaal * bcp_taak_materiaal,
|
|
bcp_ins_deel_aantal = bcp_ins_deel_aantal-1,
|
|
bcp_taak_aantal = bcp_taak_aantal - :old.ins_deel_aantal
|
|
WHERE bcp_taak_key = nTaak;
|
|
END IF;
|
|
END LOOP;
|
|
CLOSE c1;
|
|
END IF; /* einde: CHANGE? */
|
|
|
|
/* nu passen we het nieuwe deel in de taken in,
|
|
(nog steeds taken_veranderd=TRUE) */
|
|
|
|
IF (NOT :new.ins_srtdeel_key IS NULL)
|
|
AND (NOT nGebouw IS NULL)
|
|
AND (NOT :new.ins_deel_verwijder = NULLDATUM)
|
|
THEN
|
|
OPEN c2(:new.ins_srtdeel_key);
|
|
LOOP
|
|
FETCH c2 INTO Rec2;
|
|
EXIT WHEN c2%NOTFOUND;
|
|
nVerzamel := Rec2.bcp_verzamel_key;
|
|
|
|
/* zoek of er een taak is bij de verzamelopdracht
|
|
en betreffende het gebouw */
|
|
BEGIN
|
|
SELECT bcp_taak_key
|
|
INTO nTaak
|
|
FROM bcp_v_aanwezigtaak
|
|
WHERE bcp_verzamel_key = nVerzamel
|
|
AND bcp_alg_gebouw_key = nGebouw;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
nTaak:= NULL;
|
|
END;
|
|
|
|
IF (nTaak IS NULL) THEN /* geen taak bij verzamel gevonden */
|
|
|
|
SELECT A.bcp_verzamel_uren, A.bcp_verzamel_materiaal, B.bcp_frequentie_weken
|
|
INTO nUren, nMateriaal, nFreqWeken
|
|
FROM bcp_verzamel A, bcp_frequentie B
|
|
WHERE A.bcp_frequentie_key = B.bcp_frequentie_key
|
|
AND A.bcp_verzamel_key = nVerzamel;
|
|
|
|
nJaar := mod(to_number(to_char(SYSDATE, 'YYYY')),100);
|
|
|
|
nStartweek := bcp_f_bcp4deel.bepaal_startweek(nSector, nFreqWeken, nVerzamel, nJaar);
|
|
|
|
INSERT INTO bcp_taak(bcp_verzamel_key,
|
|
bcp_alg_gebouw_key,
|
|
bcp_taak_uren,
|
|
bcp_taak_materiaal,
|
|
bcp_taak_eersteweek,
|
|
bcp_taak_aantal,
|
|
bcp_ins_deel_aantal)
|
|
VALUES(nVerzamel,
|
|
nGebouw,
|
|
nUren * :new.ins_deel_aantal,
|
|
nMateriaal * :new.ins_deel_aantal,
|
|
nStartweek,
|
|
:new.ins_deel_aantal,
|
|
1);
|
|
|
|
SELECT bcp_taak_key
|
|
INTO nTaak
|
|
FROM bcp_v_aanwezigtaak
|
|
WHERE bcp_verzamel_key = nVerzamel
|
|
AND bcp_alg_gebouw_key = nGebouw;
|
|
|
|
nStatus := bcp_f_bcp4deel.bepaalstatusopdrkey('BCP_STATUSOPDR_INGEPLAND');
|
|
|
|
nWeek := to_number(to_char(SYSDATE, 'YY') || to_char(SYSDATE,'WW'));
|
|
nOthing := bcp_f_bcp4deel.bcp_jaarweek2jaarwerkweek(nWeek, nWerkweek);
|
|
|
|
nOthing := bcp_f_bcp4deel.bcp_jaarweek2jaarwerkweek(nStartweek, nStartwerkweek);
|
|
|
|
INSERT INTO bcp_prevopdr(bcp_taak_key,
|
|
bcp_mld_statusopdr_key,
|
|
bcp_prevopdr_ingepland,
|
|
bcp_prevopdr_ingepland2)
|
|
|
|
VALUES(nTaak,
|
|
nStatus,
|
|
nStartweek,
|
|
nStartwerkweek);
|
|
|
|
ELSE /* Taak gevonden, bij elke gevonden verzamelopdracht
|
|
is er precies eentje, dus uniek */
|
|
|
|
SELECT bcp_taak_aantal, bcp_ins_deel_aantal,
|
|
bcp_taak_uren, bcp_taak_materiaal
|
|
INTO teller, teller2, nUren, nMateriaal
|
|
FROM bcp_v_aanwezigtaak A
|
|
WHERE A.bcp_taak_key = nTaak;
|
|
|
|
nFactor := (teller + :new.ins_deel_aantal)/teller;
|
|
|
|
IF (nUren * nFactor > 999.99) THEN
|
|
APPLICATION_ERROR(-20000,'bcp_m044');
|
|
END IF;
|
|
|
|
IF (nMateriaal * nFactor > 999999.99) THEN
|
|
APPLICATION_ERROR(-20000,'bcp_m045');
|
|
END IF;
|
|
|
|
UPDATE bcp_taak
|
|
SET bcp_taak_uren = bcp_taak_uren * nFactor,
|
|
bcp_taak_materiaal = bcp_taak_materiaal * NFactor,
|
|
bcp_taak_aantal = teller2 + :new.ins_deel_aantal,
|
|
bcp_ins_deel_aantal = teller + 1
|
|
WHERE bcp_taak_key = nTaak;
|
|
END IF;
|
|
END LOOP;
|
|
CLOSE c2;
|
|
END IF;
|
|
|
|
ELSE /* taken niet veranderd, alleen uren & materiaal even updaten */
|
|
|
|
OPEN c1(nOudGebouw, :old.ins_srtdeel_key);
|
|
LOOP
|
|
FETCH c1 INTO Rec;
|
|
EXIT WHEN c1%NOTFOUND;
|
|
|
|
nTaak := Rec.bcp_taak_key;
|
|
|
|
SELECT bcp_taak_uren, bcp_taak_materiaal, bcp_taak_aantal
|
|
INTO nUren, nMateriaal, teller
|
|
FROM bcp_v_aanwezigtaak
|
|
WHERE bcp_taak_key = nTaak;
|
|
|
|
/* factor is (totaal-oud+nieuw)/totaal */
|
|
nFactor := (teller + :new.ins_deel_aantal - :old.ins_deel_aantal)/teller;
|
|
|
|
IF (nUren * nFactor > 999.99) THEN
|
|
APPLICATION_ERROR(-20000,'bcp_m044');
|
|
END IF;
|
|
|
|
IF (nMateriaal * nFactor > 999999.99) THEN
|
|
APPLICATION_ERROR(-20000,'bcp_m045');
|
|
END IF;
|
|
|
|
UPDATE bcp_taak
|
|
SET bcp_taak_uren = bcp_taak_uren * nFactor,
|
|
bcp_taak_materiaal = bcp_taak_materiaal * NFactor,
|
|
bcp_taak_aantal = teller + :new.ins_deel_aantal - :old.ins_deel_aantal
|
|
WHERE bcp_taak_key = nTaak;
|
|
END LOOP; /* taken voor update */
|
|
CLOSE c1;
|
|
END IF; /* einde: taken_veranderd */
|
|
END;
|
|
END IF;
|
|
#endif
|
|
#ifdef LEV
|
|
LOG('Begin voor gedeelte van LEV voor kostenpost');
|
|
/* Bij het aanmaken van een leveringsregel wordt een INS_DEEL
|
|
* aangemaakt. Als OLD.lev_levering_key IS NULL en NEW.lev_levering_key
|
|
* IS NOT NULL dan wordt dit INS_DEEL nieuw aangemaakt, dus kunnen
|
|
* de kosten van deze levering bij ALG_KOSTENPOST_BESTEED geboekt worden.
|
|
*
|
|
* Bij het wijzigen van een leveringsregel kan niet bepaald worden of
|
|
* in het scherm EDIT-levering het aantal aangepast is of bij
|
|
* toekenning een aantal het INS_DEEL verhuisd naar een ander INS_DEEL.
|
|
* Deze stap is opgelost in het form EDIT-levering.
|
|
*/
|
|
IF :old.lev_levering_key IS NULL
|
|
AND :new.lev_levering_key IS NOT NULL
|
|
THEN
|
|
DECLARE
|
|
prijs INS_SRTDEEL.INV_SRTDEEL_PRIJS%TYPE;
|
|
BEGIN
|
|
SELECT NVL(INS_SD.inv_srtdeel_prijs, 0)
|
|
INTO prijs
|
|
FROM ins_srtdeel INS_SD
|
|
WHERE INS_SD.ins_srtdeel_key = :new.ins_srtdeel_key;
|
|
UPDATE alg_kostenpost
|
|
SET alg_kostenpost_besteed = NVL(alg_kostenpost_besteed, 0) +
|
|
NVL(:new.ins_deel_aantal, 0) * prijs
|
|
WHERE alg_kostenpost_key = (SELECT lev_alg_kostenpost_key
|
|
FROM lev_bestelling
|
|
WHERE lev_bestelling_key = :new.lev_bestelling_key);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN NULL;
|
|
END;
|
|
END IF;
|
|
LOG('Einde voor gedeelte van LEV voor kostenpost');
|
|
#endif
|
|
LOG('Eind INS_T_INS_DEEL_B_IU');
|
|
END;
|
|
/
|
|
|
|
#endif // INV
|
|
|
|
DEF_FAC_ENTITY ('INV_VERHUIS_DATUM', 'Verhuisdatum', 'Verhuisdata', 'de');
|
|
DEF_FAC_ENTITY ('INV_VERHUIS_VAN', 'Van', NULL, NULL);
|
|
DEF_FAC_ENTITY ('INV_VERHUIS_NAAR', 'Naar', NULL, NULL);
|
|
DEF_FAC_ENTITY ('INV_VERHUIS_BIJZONDERHEDEN', 'Bijzonderheden', NULL, 'de');
|
|
|
|
DEF_FAC_MESSAGE ('INV_M037', 'Verhuisformulier');
|
|
DEF_FAC_MESSAGE ('INV_M038', 'Het registratienummer moet ingevuld worden.');
|
|
DEF_FAC_MESSAGE ('INV_M039', 'De datum is niet ingevuld.');
|
|
DEF_FAC_MESSAGE ('INV_M040', 'Gewenste verhuisdatum');
|
|
DEF_FAC_MESSAGE ('INV_M041', 'Het artikelnummer is niet ingevuld.');
|
|
DEF_FAC_MESSAGE ('INV_M042', 'Gereserveerd voor afvoer');
|
|
DEF_FAC_MESSAGE ('INV_M043', 'Artikel moet gekozen zijn.');
|
|
DEF_FAC_MESSAGE ('INV_M044', 'Aantal te verwijderen artikelen');
|
|
DEF_FAC_MESSAGE ('INV_M045', 'Het te verwijderen aantal moet kleiner of gelijk zijn aan het aantal delen.');
|
|
|
|
#ifdef LEV
|
|
|
|
ALTER TABLE ins_deel
|
|
DROP
|
|
UNIQUE(ins_alg_ruimte_key, ins_srtdeel_key, ins_deel_upper,
|
|
lev_levering_key, lev_bestelling_key, ins_deel_verwijder);
|
|
|
|
ALTER TABLE ins_deel
|
|
ADD
|
|
UNIQUE(ins_alg_ruimte_key, ins_srtdeel_key, ins_deel_upper,
|
|
lev_levering_key, lev_bestelling_key, lev_afvoerlijst_datum,
|
|
ins_deel_verwijder);
|
|
|
|
#endif // LEV
|
|
|
|
INSERT INTO fac_message VALUES('LEV_M050', 'Alleen nog toe te wijzen leveringen');
|
|
|
|
UPDATE fac_entity_name
|
|
SET fac_entity_user_name = 'Artikelsoort',
|
|
fac_entity_user_name_m = 'Artikelsoorten',
|
|
fac_entity_user_name_pre = 'het'
|
|
WHERE fac_entity_system_name = 'INV_SRTDEEL';
|
|
|
|
UPDATE fac_message
|
|
SET fac_message_text = 'Verwijderen vakgroep '
|
|
WHERE fac_message_code = 'INV_M001';
|
|
|
|
UPDATE fac_message
|
|
SET fac_message_text = 'De omschrijving van de vakgroep is niet ingevuld.'
|
|
WHERE fac_message_code = 'INV_M002';
|
|
|
|
UPDATE fac_message
|
|
SET fac_message_text = 'De vakgroep is niet ingevuld.'
|
|
WHERE fac_message_code = 'INV_M004';
|
|
|
|
UPDATE fac_message
|
|
SET fac_message_text = 'De omschrijving voor het artikelsoort is niet ingevuld.'
|
|
WHERE fac_message_code = 'INV_M007';
|
|
|
|
UPDATE fac_message
|
|
SET fac_message_text = 'Verwijderen artikelsoort '
|
|
WHERE fac_message_code = 'INV_M008';
|
|
|
|
UPDATE fac_message
|
|
SET fac_message_text = 'Het artikelsoort is niet ingevuld.'
|
|
WHERE fac_message_code = 'INV_M012';
|
|
|
|
DEF_FAC_ENTITY ('PRS_PERSLID_ELCONR', 'Elconr.', 'Elconummers', 'het');
|
|
DEF_FAC_ENTITY ('PRS_PERSLID_EENHEID', 'Eenheid', 'Eenheden', 'de');
|
|
DEF_FAC_ENTITY ('PRS_PERSLID_RANG', 'Rang', 'Rangen', 'de');
|
|
SPOOL OFF
|