9 Commits

Author SHA1 Message Date
Jos Groot Lipman
47203e2d1d Daar komt nooit een nieuwe versie van...
svn path=/Database/branches/DB16/; revision=16788
2013-02-12 13:03:17 +00:00
Arthur Egberink
05fe9103c1 AADS#24957 -- Btw bedrag wordt niet goed berekend bij verlegd.
svn path=/Database/branches/DB16/; revision=16083
2012-11-23 08:07:59 +00:00
Arthur Egberink
106f2689a0 FSN#24824 -- Lengte van kenmerkwaarden aanpassen
svn path=/Database/branches/DB16/; revision=16082
2012-11-23 08:05:54 +00:00
Peter Koerhuis
5b5dc2e539 CSUN#24455 Bijlagen bij meldingen per mail worden niet opgeslagen
svn path=/Database/branches/DB16/; revision=15585
2012-10-04 14:34:48 +00:00
Jos Groot Lipman
b10e1ebe13 Definitieve oplossing moest in trunk, niet in branch
svn path=/Database/branches/DB16/; revision=12467
2012-09-20 14:00:54 +00:00
Maykel Geerdink
3f1f81f90e UWVA#23839: BES/CNT: Testbevindingen Abonnementen.
svn path=/Database/branches/DB16/; revision=12463
2012-09-20 13:49:29 +00:00
Jos Groot Lipman
7383ea3d09 AKZA#23780 werkplekken via Touchscreen
svn path=/Database/branches/DB16/; revision=12459
2012-09-20 12:58:24 +00:00
Arthur Egberink
daad8244b4 FSN#24288 -- support version numbers in contract for imported invoices.
svn path=/Database/branches/DB16/; revision=12442
2012-09-17 15:15:07 +00:00
Jos Groot Lipman
c7d7c9017e Branch voor DB16a in wording
svn path=/Database/branches/DB16/; revision=12438
2012-09-17 12:16:31 +00:00
421 changed files with 137646 additions and 105094 deletions

View File

@@ -4,36 +4,33 @@
CREATE OR REPLACE PACKAGE adm
AS
FUNCTION systeminfo RETURN VARCHAR2;
PROCEDURE systrackscriptId (svnid IN VARCHAR2, force IN NUMBER DEFAULT 1);
PROCEDURE systrackscript (n IN VARCHAR2, r IN VARCHAR2, force IN NUMBER);
PROCEDURE trydrop (n IN VARCHAR2);
PROCEDURE tryalter (n IN VARCHAR2);
FUNCTION scriptspoolfile(custpattern IN VARCHAR2, scriptname IN VARCHAR2) RETURN VARCHAR2;
FUNCTION getscriptspoolfile(scriptname IN VARCHAR2) RETURN VARCHAR2;
FUNCTION checkscriptcust(custpattern IN VARCHAR2) RETURN VARCHAR2;
END adm;
/
CREATE OR REPLACE PACKAGE BODY adm
AS
-- Voor SVN is dit handiger, vereist alleen de svn-id string
-- ($Id$)
PROCEDURE systrackscriptId (svnid IN VARCHAR2, force IN NUMBER DEFAULT 1)
PROCEDURE systrackscript (n IN VARCHAR2, r IN VARCHAR2, force IN NUMBER)
AS
revisionnr adm_tracking.adm_tracking_revision%TYPE;
scriptname adm_tracking.adm_tracking_name%TYPE;
tempstr VARCHAR2 (100);
revisionnr VARCHAR2 (60);
scriptname VARCHAR2 (60);
d1 adm_tracking.adm_tracking_name%TYPE;
d2 adm_tracking.adm_tracking_revision%TYPE;
BEGIN
-- op het gemakje ontleden
tempstr := REPLACE (svnid, '$Id: ', '');
tempstr := RTRIM(SUBSTR(tempstr, 1, instr(tempstr, ' ', 1, 2)));
-- is nu: ADM_PAC.SRC 19151
scriptname := RTRIM(SUBSTR(tempstr, 1, instr(tempstr, ' ', 1, 1))); -- ADM_PAC
revisionnr := SUBSTR(tempstr, instr(tempstr, ' ', 1, 1) + 1); -- 19151
-- Als force = 1 dan wordt onvoorwaardelijk getrackt, anders
-- wordt niet getrackt als deze (n,r) al eerder werd getrackt
revisionnr := REPLACE (r, '$', '');
revisionnr := RTRIM (REPLACE (revisionnr, 'Revision: ', ''));
scriptname := REPLACE (n, '$', '');
scriptname := RTRIM (REPLACE (scriptname, 'Workfile: ', ''));
IF force = 1
THEN
INSERT INTO adm_tracking (adm_tracking_name, adm_tracking_revision)
VALUES (scriptname, revisionnr);
INSERT INTO adm_tracking (adm_tracking_name, adm_tracking_revision
)
VALUES (scriptname, revisionnr
);
ELSE
BEGIN
UPDATE adm_tracking
@@ -43,11 +40,13 @@ AS
IF SQL%ROWCOUNT = 0
THEN
INSERT INTO adm_tracking (adm_tracking_name, adm_tracking_revision)
VALUES (scriptname, revisionnr);
INSERT INTO adm_tracking (adm_tracking_name, adm_tracking_revision
)
VALUES (scriptname, revisionnr
);
END IF;
END;
END IF;
END IF;
END;
-- DDL. Probeert een object (TABLE, INDEX e.d.) te droppen, maar moppert niet als die niet bestond
@@ -59,149 +58,19 @@ AS
stmt := 'DROP ' || n;
EXECUTE IMMEDIATE stmt;
DBMS_OUTPUT.put_line ('Found, successfully dropped: ' || n);
EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE IN (-942, -1418, -2289, -4043, -4080)
THEN
-- did not exist, voor table, view, index, sequence, object and trigger
DBMS_OUTPUT.put_line ('Not found, no need to drop: ' || n);
NULL;
ELSE
raise_application_error (-20001, 'Error trying to DROP ' || n || ': ' || SQLERRM);
END IF;
END;
-- DDL. Probeert een object (TABLE, INDEX e.d.) te alteren, maar moppert niet als die niet bestond
-- Hiermee voorkomen we foutmeldingen in logfiles die niet erg zijn
PROCEDURE tryalter (n IN VARCHAR2)
AS
stmt VARCHAR2 (1000);
BEGIN
stmt := 'ALTER ' || n;
EXECUTE IMMEDIATE stmt;
DBMS_OUTPUT.put_line ('Found, successfully altered: ' || n);
EXCEPTION
WHEN OTHERS
THEN
IF SQLCODE IN (-904, -942, -1418, -2289, -4043, -4080, -2443)
THEN
-- did not exist, voor identifier (column) table, view, index, sequence, object and trigger, constraint
DBMS_OUTPUT.put_line ('Not found, not altered: ' || n);
NULL;
ELSIF SQLCODE IN (-955, -1442)
THEN
-- object or not-null property already exist
DBMS_OUTPUT.put_line ('Already exists, not altered: ' || n);
NULL;
ELSE
raise_application_error (-20001, 'Error trying to ALTER ' || n || ': ' || SQLERRM);
END IF;
END;
FUNCTION scriptspoolfile (custpattern IN VARCHAR2, -- eg ^SGGR for 'start with SGGR', ATCH|BONS for two schema
scriptname IN VARCHAR2)
RETURN VARCHAR2
IS
lstname VARCHAR2(4000);
tekst VARCHAR2(4000);
BEGIN
tekst := adm.checkscriptcust(custpattern);
lstname := adm.getscriptspoolfile(scriptname);
RETURN lstname;
END;
FUNCTION getscriptspoolfile(scriptname IN VARCHAR2)
RETURN VARCHAR2
IS
lstname VARCHAR2 (255);
BEGIN
lstname := scriptname
|| '_' || USER || '_' || SYS_CONTEXT ('USERENV', 'SERVICE_NAME')
|| '_' || SYS_CONTEXT ('USERENV', 'SERVER_HOST')
|| '_' || TO_CHAR (SYSDATE, 'YYYYMMDD_HH24MISS')
|| '.lst';
RETURN UPPER(lstname);
END;
FUNCTION systeminfo
RETURN VARCHAR2
IS
tekst VARCHAR2 (4000);
TYPE table_varchar IS TABLE OF VARCHAR2 (32);
var_table_varchar table_varchar;
BEGIN
var_table_varchar :=
table_varchar ('TERMINAL',
'HOST',
'LANGUAGE',
'CURRENT_USER',
'SESSION_USER',
'DB_DOMAIN',
'DB_NAME',
'SERVER_HOST',
'SERVICE_NAME',
'IP_ADDRESS');
tekst := 'OS-user: ' || SYS_CONTEXT('USERENV','OS_USER');
FOR elem IN 1 .. var_table_varchar.COUNT
LOOP
tekst := tekst ||
CHR(10) ||
var_table_varchar (elem) || ': ' ||
SYS_CONTEXT ('USERENV', var_table_varchar (elem));
END LOOP;
return tekst;
END;
FUNCTION checkscriptcust(custpattern IN VARCHAR2)
RETURN VARCHAR2
IS
klant VARCHAR2(4);
groep VARCHAR2(4);
fout NUMBER(1) := 0;
qry VARCHAR2(4000);
tekst VARCHAR2 (4000);
BEGIN
-- Wat handige info voor in de SPOOL-file (vooral bij licentieklanten waar we het niet altijd weten)
tekst := adm.systeminfo;
BEGIN
-- EXECUTE IMMEDIATE oplossing omdat in het CREA-script de fac_version_tabel er niet op tijd
-- is, daardoor deze hele package invalid is en aan het eind de REGISTERRUN faalt
-- (ook al gebruikt REGISTERRUN deze checkscriptcust niet)
qry := 'SELECT fac_version_cust'
|| ' , fac_version_group'
|| ' FROM fac_version';
EXECUTE IMMEDIATE qry INTO klant, groep;
EXCEPTION
WHEN OTHERS THEN
klant := USER;
groep := USER;
fout := 1;
END;
IF NOT (custpattern = klant OR (custpattern = groep AND groep IS NOT NULL) OR REGEXP_LIKE(USER, custpattern, 'i'))
THEN
IF (INSTR(custpattern,'^') = 0 OR fout = 0)
THEN
tekst := 'User should be ' || custpattern || ' but is ' || USER;
ELSE
tekst := 'User should match ' || custpattern || ' but is ' || USER;
END IF;
tekst := CHR(10)
|| '============================================' || CHR(10)
|| 'Wrong user!!!!!!!!!' || CHR(10)
|| tekst || CHR(10)
|| '============================================' || CHR(10);
RAISE_APPLICATION_ERROR(-20000, tekst);
END IF;
RETURN tekst;
END;
END adm;
END adm;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: ADM_PAC.SRC $','$Revision$')

View File

@@ -1,9 +0,0 @@
/*
* $Revision$
* $Id$
*/
CREATE SEQUENCE adm_s_adm_tracking_key MINVALUE 1;
// De package is er nog niet bij de CREA dus uitgeschakeld
// REGISTERONCE('$Id$')

View File

@@ -5,14 +5,8 @@
CREATE_TABLE(adm_tracking, 0)
(
adm_tracking_key
NUMBER(10)
CONSTRAINT adm_k_adm_tracking_key PRIMARY KEY,
adm_tracking_name VARCHAR2 (60),
adm_tracking_revision VARCHAR2 (60),
adm_tracking_date DATE DEFAULT SYSDATE,
adm_tracking_osuser VARCHAR2 (60) DEFAULT SYS_CONTEXT('USERENV','OS_USER')
);
// De package is er nog niet bij de CREA dus uitgeschakeld
// REGISTERONCE('$Id$')

View File

@@ -1,16 +0,0 @@
/*
* $Revision$
* $Id$
*
*/
CREATE_TRIGGER(adm_t_adm_tracking_B_I)
BEFORE INSERT ON adm_tracking
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(adm_tracking_key, adm_s_adm_tracking_key);
END;
/
// De package is er nog niet bij de CREA dus uitgeschakeld
// REGISTERRUN('$Id$')

View File

@@ -5,6 +5,35 @@
*
* History:
*/
#ifdef MS_SQL
#define SET_VERWIJDER_CHILDREN_DEEL(child_table, parent_key, parent_verwijder, \
dummy1, child_verwijder, child_key, dummy2) \
BEGIN \
UPDATE child_table \
SET child_verwijder = i.parent_verwijder \
FROM inserted i left join deleted d \
on i.parent_key = d.parent_key \
WHERE child_table.child_key = i.parent_key \
AND (i.parent_verwijder IS NOT NULL OR \
(i.parent_verwijder IS NULL AND d.parent_verwijder IS NOT NULL)) \
AND ins_alg_ruimte_type NOT IN ('W','T'); \
END
#define SET_VERWIJDER_CHILDREN_DEELT(child_table, parent_key, parent_verwijder, \
dummy1, child_verwijder, child_key, dummy2) \
BEGIN \
UPDATE child_table \
SET child_verwijder = i.parent_verwijder \
FROM inserted i left join deleted d \
on i.parent_key = d.parent_key \
WHERE child_table.child_key = i.parent_key \
AND (i.parent_verwijder IS NOT NULL OR \
(i.parent_verwijder IS NULL AND d.parent_verwijder IS NOT NULL)) \
AND ins_alg_ruimte_type = 'T'; \
END
#else
#define SET_VERWIJDER_CHILDREN_DEEL(child_table, parent_key, parent_verwijder, \
dummy1, child_verwijder, child_key, dummy2) \
@@ -32,6 +61,8 @@
END IF; \
END
#endif
#define SET_VERWIJDER_CHILDREN_DEELWP(child_table, parent_key, parent_verwijder, \
dummy1, child_verwijder, child_key, dummy2) \
BEGIN \

View File

@@ -20,4 +20,4 @@ create index alg_i_alg_ruimte3 on alg_ruimte(alg_ruimte_key, alg_ruimte_nr);
// speciaal tbv ins_v_alg_overzicht:
CREATE INDEX alg_i_alg_ruimte4 on alg_ruimte(alg_verdieping_key,alg_ruimte_key, alg_ruimte_upper_nr, alg_ruimte_nr);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: ALG_IND.SRC $','$Revision$')

View File

@@ -3,7 +3,7 @@
* $Id$
*/
_FAC_MODULE('ALG','lcl_module_ALG')
_FAC_MODULE('ALG','Vastgoedbeheer')
DEF_FAC_MESSAGE ('ALG_OPENST_MELDING', 'heeft openstaande melding', '');
DEF_FAC_MESSAGE ('ALG_BEVAT_OBJECT', 'bevat object', '');
@@ -12,4 +12,4 @@ DEF_FAC_MESSAGE ('ALG_OPENST_RES_V', 'heeft niet-verwerkte voorzieningsreserveri
DEF_FAC_MESSAGE ('ALG_TOEK_AFSPRAAK', 'heeft toekomstige afspraak', '');
DEF_FAC_MESSAGE ('ALG_OPEN_CONTRACT', 'heeft lopend contract', '');
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: ALG_INI.SRC $','$Revision$')

View File

@@ -1,74 +0,0 @@
#ifdef ALG
/*
* $Revision$
* $Id$
*/
CREATE OR REPLACE PACKAGE alg
AS
PROCEDURE upsertkenmerk (p_kenmerk_key IN NUMBER,
p_alg_key IN NUMBER,
p_waarde IN VARCHAR2);
END alg;
/
CREATE OR REPLACE PACKAGE BODY alg
AS
-- Er wordt nu niet getrackt (wat eigenlijk niet zo goed is)
PROCEDURE upsertkenmerk (p_kenmerk_key IN NUMBER,
p_alg_key IN NUMBER,
p_waarde IN VARCHAR2)
AS
v_count NUMBER;
v_niveau VARCHAR2 (1);
BEGIN
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt opgeslagen
SELECT alg_kenmerk_niveau
INTO v_niveau
FROM alg_kenmerk
WHERE alg_kenmerk_key = p_kenmerk_key;
-- Is er al een actuele waarde?
SELECT COUNT ( * )
INTO v_count
FROM alg_onrgoedkenmerk
WHERE alg_onrgoed_key = p_alg_key
AND alg_kenmerk_key = p_kenmerk_key
AND alg_onrgoedkenmerk_verwijder IS NULL;
IF v_count = 1
THEN
IF p_waarde IS NULL
THEN
-- Wissen bestaande waarde
DELETE alg_onrgoedkenmerk
WHERE alg_onrgoed_key = p_alg_key
AND alg_kenmerk_key = p_kenmerk_key
AND alg_onrgoedkenmerk_verwijder IS NULL;
ELSE
-- Bijwerken bestaande waarde
UPDATE alg_onrgoedkenmerk
SET alg_onrgoedkenmerk_waarde = p_waarde
WHERE alg_onrgoed_key = p_alg_key
AND alg_kenmerk_key = p_kenmerk_key
AND alg_onrgoedkenmerk_verwijder IS NULL;
END IF;
ELSE
IF p_kenmerk_key IS NOT NULL AND p_waarde IS NOT NULL
THEN
-- Registreren waarde
INSERT INTO alg_onrgoedkenmerk (alg_kenmerk_key,
alg_onrgoed_key,
alg_onrgoed_niveau,
alg_onrgoedkenmerk_waarde)
VALUES (p_kenmerk_key,
p_alg_key,
v_niveau,
p_waarde);
END IF;
END IF;
END;
END alg;
/
REGISTERRUN('$Id$')
#endif // ALG

View File

@@ -20,4 +20,3 @@ CREATE SEQUENCE alg_s_alg_srtverdieping_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_kenmerk_key MINVALUE 1000;
CREATE SEQUENCE alg_s_alg_onrgoedkenmerk_key MINVALUE 1;
CREATE SEQUENCE alg_s_alg_algfaq_key MINVALUE 1;

View File

@@ -60,10 +60,10 @@ CREATE_TABLE(alg_locatie,0)
VARCHAR2(10)
NOT_NULL(alg_locatie_code, alg_c_alg_locatie_code),
alg_locatie_omschrijving
VARCHAR2(60)
VARCHAR2(30)
NOT_NULL(alg_locatie_omschrijving, alg_c_alg_locatie_omschrijving),
alg_locatie_upper
VARCHAR2(60)
VARCHAR2(30)
NOT_NULL(alg_locatie_upper, alg_c_alg_locatie_upper),
alg_locatie_aanmaak
DATE
@@ -73,7 +73,7 @@ CREATE_TABLE(alg_locatie,0)
DATE
DEFAULT NULLDATUM,
alg_locatie_adres
VARCHAR2(50),
VARCHAR2(35),
alg_locatie_postcode
VARCHAR2(12),
alg_locatie_plaats
@@ -81,7 +81,7 @@ CREATE_TABLE(alg_locatie,0)
alg_locatie_land
VARCHAR2(30),
alg_locatie_post_adres
VARCHAR2(50),
VARCHAR2(35),
alg_locatie_post_postcode
VARCHAR2(12),
alg_locatie_post_plaats
@@ -100,17 +100,11 @@ CREATE_TABLE(alg_locatie,0)
NUMBER(16,6),
alg_locatie_y
NUMBER(16,6),
alg_locatie_mjb_score1
NUMBER(6,2),
alg_locatie_vervaldatum
DATE,
alg_locatie_image
VARCHAR2(255),
-- in MLD_TAB.SRC:
-- mld_dienstniveau_key
-- NUMBER(10)
-- REFERENCES mld_dienstniveau(mld_dienstniveau_key) ON DELETE SET NULL,
CONSTRAINT alg_u_alg_locatie_code UNIQUE(alg_district_key, alg_locatie_code, alg_locatie_verwijder),
CONSTRAINT alg_u_alg_locatie_code UNIQUE(alg_locatie_code, alg_locatie_verwijder),
CONSTRAINT alg_u_alg_locatie_upper UNIQUE(alg_district_key, alg_locatie_upper, alg_locatie_verwijder)
);
@@ -184,24 +178,11 @@ CREATE_TABLE(alg_terreinsector,0)
alg_terreinsector_verwijder
DATE
DEFAULT NULLDATUM,
alg_terreinsector_vervaldatum
DATE,
alg_terreinsector_ordernr
VARCHAR2(30),
alg_terreinsector_image
VARCHAR2(255),
alg_terreinsector_getekend
DATE
DEFAULT NULLDATUM,
alg_terreinsector_toon_telef
NUMBER(3) DEFAULT(0) NOT NULL
CONSTRAINT alg_c_alg_terreinsector_telf CHECK(alg_terreinsector_toon_telef IN (0,1,2,3)), /* 0=Onzichtbaar; 1=Niet verplicht; 2=Verplicht bij parkeerplaats. 3=Altijd verplicht */
alg_terreinsector_toon_email
NUMBER(3) DEFAULT(0) NOT NULL
CONSTRAINT alg_c_alg_terreinsector_mail CHECK(alg_terreinsector_toon_email IN (0,1,2,3)), /* 0=Onzichtbaar; 1=Niet verplicht; 2=Verplicht bij parkeerplaats. 3=Altijd verplicht */
alg_terreinsector_toon_kentk
NUMBER(3) DEFAULT(0) NOT NULL
CONSTRAINT alg_c_alg_terreinsector_kent CHECK(alg_terreinsector_toon_kentk IN (0,1,2,3)), /* 0=Onzichtbaar; 1=Niet verplicht; 2=Verplicht bij parkeerplaats. 3=Altijd verplicht */
-- in PRS_TAB.SRC:
-- prs_kostenplaats_key
-- NUMBER(10)
@@ -209,12 +190,6 @@ CREATE_TABLE(alg_terreinsector,0)
-- prs_afdeling_key
-- NUMBER(10)
-- CONSTRAINT alg_r_prs_afdeling1 REFERENCES prs_afdeling(prs_afdeling_key),
-- prs_perslid_key_verantw
-- NUMBER(10)
-- CONSTRAINT alg_r_prs_perslid_key3 REFERENCES prs_perslid(prs_perslid_key),
-- prs_perslid_key_verantw2
-- NUMBER(10)
-- CONSTRAINT alg_r_prs_perslid_key4 REFERENCES prs_perslid(prs_perslid_key),
CONSTRAINT alg_u_alg_terreinsector_upper UNIQUE(alg_locatie_key, alg_terreinsector_upper, alg_terreinsector_verwijder)
);
@@ -240,34 +215,6 @@ CREATE_TABLE(alg_srtgebouw,0)
alg_srtgebouw_verwijder
DATE
DEFAULT NULLDATUM,
alg_srtgebouw_aspect_max_vg /* Veiligheid - Gezondheid */
NUMBER(2)
DEFAULT 1
NOT NULL,
alg_srtgebouw_aspect_max_ch /* Cultuur Historische waarde */
NUMBER(2)
DEFAULT 2
NOT NULL,
alg_srtgebouw_aspect_max_gb /* Gebruik en Bedrijfsproces */
NUMBER(2)
DEFAULT 3
NOT NULL,
alg_srtgebouw_aspect_max_tv /* Technische Vervolgschade */
NUMBER(2)
DEFAULT 5
NOT NULL,
alg_srtgebouw_aspect_max_tk /* Toename Klachtenonderhoud */
NUMBER(2)
DEFAULT 5
NOT NULL,
alg_srtgebouw_aspect_max_be /* Beleving - Esthetica */
NUMBER(2)
DEFAULT 7
NOT NULL,
alg_srtgebouw_aspect_max_en /* Energie (aanvulling) */
NUMBER(2)
DEFAULT 4
NOT NULL,
CONSTRAINT alg_u_alg_srtgebouw_upper UNIQUE(alg_srtgebouw_upper, alg_srtgebouw_verwijder)
);
@@ -284,7 +231,7 @@ CREATE_TABLE(alg_gebouw,0)
NUMBER(10)
CONSTRAINT alg_r_alg_srtgebouw_key REFERENCES alg_srtgebouw(alg_srtgebouw_key),
alg_gebouw_naam
VARCHAR2(60)
VARCHAR2(30)
NOT_NULL(alg_gebouw_naam, alg_c_alg_gebouw_naam),
alg_gebouw_code
VARCHAR2(12)
@@ -325,13 +272,6 @@ CREATE_TABLE(alg_gebouw,0)
-- CONSTRAINT alg_r_mld_adres_key1 REFERENCES mld_adres(mld_adres_key),
alg_gebouw_opmerking
VARCHAR2(50),
-- in PRS_TAB.SRC: de gebouwverantwoordelijke (1 en 2)
-- prs_perslid_key_verantw
-- NUMBER(10)
-- CONSTRAINT alg_r_prs_perslid_key1 REFERENCES prs_perslid(prs_perslid_key),
-- prs_perslid_key_verantw2
-- NUMBER(10)
-- CONSTRAINT alg_r_prs_perslid_key2 REFERENCES prs_perslid(prs_perslid_key),
alg_gebouw_dwgx
NUMBER(10,3),
alg_gebouw_dwgy
@@ -347,32 +287,13 @@ CREATE_TABLE(alg_gebouw,0)
alg_gebouw_werkdagen
NUMBER(1)
DEFAULT 1
NOT_NULL(alg_gebouw_werkdagen, alg_c_gebouw_werkdagen)
CONSTRAINT alg_c_alg_gebouw_werk CHECK(alg_gebouw_werkdagen IN (0,1)),
CONSTRAINT alg_c_alg_gebouw_week CHECK(alg_gebouw_werkdagen IS NULL
OR alg_gebouw_werkdagen = 1),
alg_gebouw_bez
NUMBER(1)
DEFAULT 1
CONSTRAINT alg_c_alg_gebouw_bez CHECK(alg_gebouw_bez IS NULL
OR alg_gebouw_bez = 1),
alg_gebouw_email
VARCHAR2(200),
alg_gebouw_vervaldatum
DATE,
alg_gebouw_image
VARCHAR2(255),
alg_gebouw_mjb_score1
NUMBER(6,2),
alg_gebouw_toon_telefoon
NUMBER(3) DEFAULT(0) NOT NULL
CONSTRAINT alg_c_alg_gebouw_toon_telf CHECK(alg_gebouw_toon_telefoon IN (0,1,2,3)), /* 0=Onzichtbaar; 1=Niet verplicht; 2=Verplicht bij parkeerplaats. 3=Altijd verplicht */
alg_gebouw_toon_email
NUMBER(3) DEFAULT(0) NOT NULL
CONSTRAINT alg_c_alg_gebouw_toon_mail CHECK(alg_gebouw_toon_email IN (0,1,2,3)), /* 0=Onzichtbaar; 1=Niet verplicht; 2=Verplicht bij parkeerplaats. 3=Altijd verplicht */
alg_gebouw_toon_kenteken
NUMBER(3) DEFAULT(0) NOT NULL
CONSTRAINT alg_c_alg_gebouw_toon_kent CHECK(alg_gebouw_toon_kenteken IN (0,1,2,3)), /* 0=Onzichtbaar; 1=Niet verplicht; 2=Verplicht bij parkeerplaats. 3=Altijd verplicht */
alg_gebouw_groep
VARCHAR2(60),
CONSTRAINT alg_u_alg_gebouw_upper UNIQUE(alg_locatie_key, alg_gebouw_upper, alg_gebouw_verwijder)
);
@@ -425,10 +346,10 @@ CREATE_TABLE(alg_srtruimte,0)
NUMBER(10)
CONSTRAINT alg_k_alg_srtruimte_key PRIMARY KEY,
alg_srtruimte_omschrijving
VARCHAR2(50)
VARCHAR2(30)
NOT_NULL(alg_srtruimte_omschrijving, alg_c_alg_srtruimte_omschr),
alg_srtruimte_upper
VARCHAR2(50)
VARCHAR2(30)
NOT_NULL(alg_srtruimte_upper, alg_c_alg_srtruimte_upper),
alg_srtruimte_code
VARCHAR2(10),
@@ -457,14 +378,10 @@ CREATE_TABLE(alg_srtruimte,0)
NUMBER(1)
CONSTRAINT alg_c_prs_verhuurbaar CHECK(prs_verhuurbaar IS NULL
OR prs_verhuurbaar = 1 ),
alg_srtruimte_t_uitvoertijd
MLD_T_UITVOERTIJD
CONSTRAINT alg_c_alg_srtruimt_t_uitvtijd CHECK(alg_srtruimte_t_uitvoertijd.tijdsduur >= 0),
CONSTRAINT alg_c_prs_werkplek_verhuurbaar CHECK(NOT(prs_bevat_werkplek = 1
CONSTRAINT alg_c_prs_werkplek_verhuurbaar CHECK(NOT(prs_bevat_werkplek = 1
AND prs_verhuurbaar IS NULL)),
CONSTRAINT alg_u_alg_srtruimte_upper UNIQUE(alg_srtruimte_upper, alg_srtruimte_verwijder)
);
ALTER TABLE alg_srtruimte MODIFY alg_srtruimte_t_uitvoertijd DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
CREATE_TABLE(alg_srtruimte_locatiegebouw,0)
(
@@ -551,14 +468,6 @@ CREATE_TABLE(alg_ruimte,0)
NUMBER(8,2),
alg_ruimte_opp_gevelbekleding
NUMBER(8,2),
alg_ruimte_beginuur
NUMBER(5,2),
alg_ruimte_einduur
NUMBER(5,2),
alg_ruimte_werkdagen
NUMBER(1)
-- DEFAULT NULL op gebouw terugvallen
CONSTRAINT alg_c_alg_ruimte_werk CHECK(alg_ruimte_werkdagen IN (0,1)),
-- in MLD_TAB.SRC:
-- mld_dienstniveau_key
-- NUMBER(10)
@@ -615,7 +524,6 @@ CREATE_TABLE(alg_kenmerk,0)
AND alg_kenmerk_niveau IN ('R','V','G','T','L','D'))
,alg_kenmerk_volgnr
NUMBER(3)
NOT NULL
,alg_kenmerk_omschrijving
VARCHAR2(50)
,alg_kenmerk_upper
@@ -623,16 +531,14 @@ CREATE_TABLE(alg_kenmerk,0)
,alg_kenmerk_hint
VARCHAR2(255)
,alg_kenmerk_default
VARCHAR2(4000)
,alg_kenmerk_show_expr
VARCHAR2(4000)
VARCHAR2(255)
,alg_kenmerk_dimensie
VARCHAR2(10)
,alg_kenmerk_kenmerktype
VARCHAR2(1)
CONSTRAINT alg_c_alg_kenmerk_type1 CHECK(alg_kenmerk_kenmerktype IN ('C','N','D','T','R','X','L','Q','F','M','E','S','l','B','V'))
CONSTRAINT alg_c_alg_kenmerk_type1 CHECK(alg_kenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l'))
,alg_kenmerk_systeem
NUMBER(2)
NUMBER(1)
,alg_kenmerk_toonbaar
NUMBER(1)
,alg_kenmerk_uniek
@@ -641,9 +547,6 @@ CREATE_TABLE(alg_kenmerk,0)
VARCHAR2(255)
,alg_kenmerk_verplicht
NUMBER(1)
,alg_kenmerk_groep
NUMBER(1)
DEFAULT 0 NOT NULL
,alg_kenmerk_lengte
NUMBER(4)
,alg_kenmerk_dec
@@ -664,22 +567,4 @@ CREATE_TABLE(alg_kenmerk,0)
DEFAULT NULLDATUM
);
-- Koppeltabel tussen de Kennisbank (FAQ) en plaats (alg_v_allonroerendgoed)
CREATE_TABLE(alg_algfaq, 0)
(
alg_algfaq_key
NUMBER(10)
CONSTRAINT alg_k_algfaq_key PRIMARY KEY,
alg_locatie_key
NUMBER(10)
NOT_NULL(alg_locatie_key, mld_c_alg_locatie_key)
CONSTRAINT mld_r_mld_locatie_key1 REFERENCES alg_locatie(alg_locatie_key) ON DELETE CASCADE,
alg_onroerendgoed_keys
NUMBER(10),
fac_faq_key
NUMBER(10)
NOT_NULL(fac_faq_key, alg_c_fac_faq_key)
CONSTRAINT alg_r_fac_faq_key1 REFERENCES fac_faq(fac_faq_key) ON DELETE CASCADE
);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: ALG_TAB.SRC $','$Revision$')

View File

@@ -117,6 +117,20 @@ BEGIN
WHEN NO_DATA_FOUND THEN NULL;
WHEN TOO_MANY_ROWS THEN raise_application_error(-20000,'cnt_m027');
END;
/* CONN#465 */
DECLARE
dummy CHAR;
BEGIN
SELECT 'x'
INTO dummy
FROM cnt_contract_onrgoed co
WHERE co.ALG_ONRGOED_KEY = :old.alg_terreinsector_key
AND co.ALG_ONRGOED_NIVEAU = 'T';
APPLICATION_ERROR_GOTO(-20000,'alg_m999 Terrein heeft nog huurcontract');
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;
WHEN TOO_MANY_ROWS THEN APPLICATION_ERROR_GOTO(-20000,'alg_m999 Terrein heeft nog huurcontract');
END;
DECLARE
dummy CHAR;
BEGIN
@@ -290,7 +304,7 @@ BEGIN
INTO dummy
FROM alg_srtruimte ALG_SR_1,
alg_srtruimte ALG_SR_2,
prs_werkplek PRS_W
all_v_aanwezigwerkplek PRS_W
WHERE ALG_SR_1.alg_srtruimte_key = :old.alg_srtruimte_key
AND ALG_SR_1.prs_bevat_werkplek = 1
AND ALG_SR_2.alg_srtruimte_key = :new.alg_srtruimte_key
@@ -319,6 +333,20 @@ BEGIN
WHEN TOO_MANY_ROWS THEN APPLICATION_ERROR_GOTO(-20000,'cnt_m024');
END;
DECLARE
dummy CHAR;
BEGIN
SELECT 'x'
INTO dummy
FROM cnt_contract_onrgoed co
WHERE co.alg_onrgoed_key = :old.alg_ruimte_key
AND co.alg_onrgoed_niveau = 'R';
APPLICATION_ERROR_GOTO(-20000,'alg_m999 Ruimte heeft nog huurcontract');
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;
WHEN TOO_MANY_ROWS THEN APPLICATION_ERROR_GOTO(-20000,'alg_m999 Ruimte heeft nog huurcontract');
END;
DECLARE
dummy CHAR;
BEGIN
@@ -401,8 +429,10 @@ BEGIN
SET alg_onrgoed_keys = :NEW.alg_verdieping_key
WHERE alg_onrgoed_keys = :NEW.alg_ruimte_key AND bez_afspraak_datum > SYSDATE;
DELETE FROM prs_werkplek
WHERE prs_werkplek.prs_alg_ruimte_key = :new.alg_ruimte_key;
UPDATE prs_werkplek
SET prs_werkplek_verwijder = :new.alg_ruimte_verwijder
WHERE prs_werkplek.prs_alg_ruimte_key = :new.alg_ruimte_key
AND prs_werkplek_verwijder IS NULL;
END IF;
@@ -420,16 +450,12 @@ BEGIN
THEN
APPLICATION_ERROR(-20003, 'ALG_M238');
END IF;
IF :new.alg_kenmerk_kenmerktype IN ('C', 'N', 'B') AND :new.alg_kenmerk_lengte IS NULL
IF (:new.alg_kenmerk_kenmerktype IN ('C','N'))
AND :new.alg_kenmerk_lengte IS NULL
THEN
APPLICATION_ERROR(-20000, 'ALG_C_ALG_KENMERK_LENGTE');
END IF;
-- Numeriek mag niet te lang zijn (numeric overflow)
IF :new.alg_kenmerk_kenmerktype IN ('N', 'B') AND :new.alg_kenmerk_lengte > 20
THEN
:new.alg_kenmerk_lengte := 20;
END IF;
IF :new.alg_kenmerk_kenmerktype IN ('N', 'B') AND :old.alg_kenmerk_key IS NOT NULL
IF :new.alg_kenmerk_kenmerktype = 'N' AND :old.alg_kenmerk_key IS NOT NULL
THEN
IF :old.alg_kenmerk_nmin <> :new.alg_kenmerk_nmin OR
:old.alg_kenmerk_nmin IS NULL AND :new.alg_kenmerk_nmin IS NOT NULL
@@ -523,7 +549,7 @@ BEGIN
KenmerkNMin alg_kenmerk.alg_kenmerk_nmin%TYPE;
KenmerkNMax alg_kenmerk.alg_kenmerk_nmax%TYPE;
RefKenmerkKey NUMBER(10);
NumberWaarde NUMBER(25,5);
NumberWaarde NUMBER(15,5);
FormatMask VARCHAR2(60);
KenmerkWaarde alg_onrgoedkenmerk.alg_onrgoedkenmerk_waarde%TYPE;
BEGIN
@@ -584,7 +610,7 @@ BEGIN
APPLICATION_ERROR(-20004, 'ALG_M232,'|| KenmerkOmschr ||','
|| TO_CHAR(KenmerkLengte));
END IF;
ELSIF KenmerkType IN ('N', 'B')
ELSIF KenmerkType = 'N'
/*
** Number
*/
@@ -660,32 +686,13 @@ CREATE_TRIGGER(alg_t_alg_srtterreinsec_B_IU)
BEFORE INSERT OR UPDATE ON alg_srtterreinsector
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_srtterreinsector_key, alg_s_alg_srtterrein_key);
UPDATE_PRIMARY_KEY(alg_srtterreinsector_key, alg_s_alg_srtruimte_key);
UPDATE_UPPER(alg_srtterreinsec_omschrijving, alg_srtterreinsector_upper,alg_srtterreinsector);
UPDATE_AANMAAKDATUM(alg_srtterreinsector, alg_srtterreinsector_aanmaak);
CHECK_NOG_REFERENCES(alg_srtterreinsector, alg_srtterreinsector_verwijder,
alg_v_aanwezigterreinsector, alg_srtterreinsector_key, 'alg_m041');
alg_v_aanwezigsrtterreinsector, alg_srtterreinsector_key, 'alg_m041');
END;
/
CREATE_TRIGGER(alg_t_alg_algfaq_B_I)
BEFORE INSERT ON alg_algfaq
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(alg_algfaq_key, alg_s_alg_algfaq_key);
END;
/
CREATE_TRIGGER(alg_t_alg_algfaq_B_IU)
BEFORE INSERT OR UPDATE ON alg_algfaq
FOR EACH ROW
BEGIN
IF :new.alg_onroerendgoed_keys IS NOT NULL
THEN
CHECK_REFERENCE_ONROERENDGOED(alg_onroerendgoed_keys, 'alg_m239 alg_onroerendgoed_keys ('|| :new.alg_onroerendgoed_keys ||') bestaat niet');
END IF;
END;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: ALG_TRI.SRC $','$Revision$')

View File

@@ -146,7 +146,7 @@ CREATE_VIEW(alg_v_ruimte_gegevens, 0) AS
AND alg_l.alg_locatie_key = alg_g.alg_locatie_key;
CREATE_VIEW(alg_v_ruimte_gegevens_all, 0) AS
SELECT alg_l.alg_locatie_key, alg_l.alg_district_key, alg_l.alg_locatie_omschrijving, alg_l.alg_locatie_adres, alg_l.alg_locatie_code,
SELECT alg_l.alg_locatie_key, alg_l.alg_district_key, alg_l.alg_locatie_omschrijving, alg_l.alg_locatie_code,
alg_l.alg_locatie_upper, alg_g.alg_gebouw_key, alg_g.alg_srtgebouw_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_upper, alg_v.alg_verdieping_volgnr, alg_v.alg_verdieping_code,
@@ -268,8 +268,6 @@ SELECT ALG_R.alg_ruimte_key,
CREATE_VIEW(alg_v_allonrgoed_gegevens,0)
(
alg_onroerendgoed_keys,
alg_plaatsaanduiding,
alg_plaatsomschrijving,
alg_onroerendgoed_code,
alg_onroerendgoed_omschrijving,
alg_ruimte_key,
@@ -281,10 +279,6 @@ CREATE_VIEW(alg_v_allonrgoed_gegevens,0)
alg_gebouw_key,
alg_gebouw_code,
alg_gebouw_naam,
alg_gebouw_toon_telefoon,
alg_gebouw_toon_email,
alg_gebouw_toon_kenteken,
alg_gebouw_groep,
alg_terreinsector_key,
alg_terreinsector_code,
alg_terreinsector_naam,
@@ -292,339 +286,244 @@ CREATE_VIEW(alg_v_allonrgoed_gegevens,0)
alg_type
)
AS
SELECT alg_r.alg_ruimte_key,
DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', alg_g.alg_gebouw_code)
|| DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
'_', '',
'-' || alg_v.alg_verdieping_code)
|| DECODE (SUBSTR (alg_r.alg_ruimte_nr, 1, 1), '_', '', '-' || alg_r.alg_ruimte_nr),
DECODE (
SUBSTR (alg_g.alg_gebouw_code, 1, 1),
'_',
alg_l.alg_locatie_omschrijving,
DECODE (
SUBSTR (alg_v.alg_verdieping_code, 1, 1),
'_',
alg_g.alg_gebouw_naam,
DECODE (SUBSTR (alg_r.alg_ruimte_nr, 1, 1), '_', '', alg_r.alg_ruimte_omschrijving))),
alg_r.alg_ruimte_nr,
alg_r.alg_ruimte_omschrijving,
alg_r.alg_ruimte_key,
alg_r.alg_ruimte_nr,
alg_r.alg_ruimte_omschrijving,
alg_r.alg_verdieping_key,
alg_v.alg_verdieping_code,
alg_v.alg_verdieping_omschrijving,
alg_g.alg_gebouw_key,
alg_g.alg_gebouw_code,
alg_g.alg_gebouw_naam,
alg_g.alg_gebouw_toon_telefoon,
alg_g.alg_gebouw_toon_email,
alg_g.alg_gebouw_toon_kenteken,
alg_g.alg_gebouw_groep,
TO_NUMBER (NULL),
NULL,
NULL,
alg_g.alg_locatie_key,
'R'
FROM alg_ruimte alg_r,
alg_verdieping alg_v,
alg_gebouw alg_g,
alg_locatie alg_l
WHERE alg_r.alg_verdieping_key = alg_v.alg_verdieping_key
AND alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
AND alg_l.alg_locatie_key = alg_g.alg_locatie_key
SELECT alg_r.alg_ruimte_key,
alg_r.alg_ruimte_nr,
alg_r.alg_ruimte_omschrijving,
alg_r.alg_ruimte_key,
alg_r.alg_ruimte_nr,
alg_r.alg_ruimte_omschrijving,
alg_r.alg_verdieping_key,
alg_v.alg_verdieping_code,
alg_v.alg_verdieping_omschrijving,
alg_g.alg_gebouw_key,
alg_g.alg_gebouw_code,
alg_g.alg_gebouw_naam,
TO_NUMBER (NULL),
NULL,
NULL,
alg_g.alg_locatie_key,
'R'
FROM 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
UNION ALL
SELECT alg_v.alg_verdieping_key,
DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', alg_g.alg_gebouw_code)
|| DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
'_', '',
'-' || alg_v.alg_verdieping_code),
DECODE (
SUBSTR (alg_g.alg_gebouw_code, 1, 1),
'_',
alg_l.alg_locatie_omschrijving,
DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
'_', alg_v.alg_verdieping_omschrijving)),
alg_v.alg_verdieping_code,
alg_v.alg_verdieping_omschrijving,
TO_NUMBER (NULL),
NULL,
NULL,
alg_v.alg_verdieping_key,
alg_v.alg_verdieping_code,
alg_v.alg_verdieping_omschrijving,
alg_g.alg_gebouw_key,
alg_g.alg_gebouw_code,
alg_g.alg_gebouw_naam,
alg_g.alg_gebouw_toon_telefoon,
alg_g.alg_gebouw_toon_email,
alg_g.alg_gebouw_toon_kenteken,
alg_g.alg_gebouw_groep,
TO_NUMBER (NULL),
NULL,
NULL,
alg_g.alg_locatie_key,
'V'
FROM alg_verdieping alg_v, alg_gebouw alg_g, alg_locatie alg_l
WHERE alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
AND alg_l.alg_locatie_key = alg_g.alg_locatie_key
SELECT alg_v.alg_verdieping_key,
alg_v.alg_verdieping_code,
alg_v.alg_verdieping_omschrijving,
TO_NUMBER (NULL),
NULL,
NULL,
alg_v.alg_verdieping_key,
alg_v.alg_verdieping_code,
alg_v.alg_verdieping_omschrijving,
alg_g.alg_gebouw_key,
alg_g.alg_gebouw_code,
alg_g.alg_gebouw_naam,
TO_NUMBER (NULL),
NULL,
NULL,
alg_g.alg_locatie_key,
'V'
FROM alg_verdieping alg_v, alg_gebouw alg_g
WHERE alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
UNION ALL
SELECT alg_g.alg_gebouw_key,
DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', alg_g.alg_gebouw_code),
DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1),
'_', alg_l.alg_locatie_omschrijving,
alg_g.alg_gebouw_naam),
alg_g.alg_gebouw_code,
alg_g.alg_gebouw_naam,
TO_NUMBER (NULL),
NULL,
NULL,
TO_NUMBER (NULL),
NULL,
NULL,
alg_g.alg_gebouw_key,
alg_g.alg_gebouw_code,
alg_g.alg_gebouw_naam,
alg_g.alg_gebouw_toon_telefoon,
alg_g.alg_gebouw_toon_email,
alg_g.alg_gebouw_toon_kenteken,
alg_g.alg_gebouw_groep,
TO_NUMBER (NULL),
NULL,
NULL,
alg_g.alg_locatie_key,
'G'
FROM alg_gebouw alg_g, alg_locatie alg_l
WHERE alg_l.alg_locatie_key = alg_g.alg_locatie_key
SELECT alg_g.alg_gebouw_key,
alg_g.alg_gebouw_code,
alg_g.alg_gebouw_naam,
TO_NUMBER (NULL),
NULL,
NULL,
TO_NUMBER (NULL),
NULL,
NULL,
alg_g.alg_gebouw_key,
alg_g.alg_gebouw_code,
alg_g.alg_gebouw_naam,
TO_NUMBER (NULL),
NULL,
NULL,
alg_g.alg_locatie_key,
'G'
FROM alg_gebouw alg_g
UNION ALL
SELECT alg_t.alg_terreinsector_key,
DECODE (SUBSTR (alg_t.alg_terreinsector_code, 1, 1),
'_', '',
alg_t.alg_terreinsector_code),
DECODE (SUBSTR (alg_t.alg_terreinsector_code, 1, 1),
'_', alg_l.alg_locatie_omschrijving,
alg_terreinsector_naam),
alg_t.alg_terreinsector_code,
alg_t.alg_terreinsector_naam,
TO_NUMBER (NULL),
NULL,
NULL,
TO_NUMBER (NULL),
NULL,
NULL,
TO_NUMBER (NULL),
NULL,
NULL,
alg_t.alg_terreinsector_toon_telef,
alg_t.alg_terreinsector_toon_email,
alg_t.alg_terreinsector_toon_kentk,
NULL,
alg_t.alg_terreinsector_key,
alg_t.alg_terreinsector_code,
alg_t.alg_terreinsector_naam,
alg_t.alg_locatie_key,
'T'
FROM alg_terreinsector alg_t, alg_locatie alg_l
WHERE alg_l.alg_locatie_key = alg_t.alg_locatie_key;
SELECT alg_t.alg_terreinsector_key,
alg_t.alg_terreinsector_code,
alg_t.alg_terreinsector_naam,
TO_NUMBER (NULL),
NULL,
NULL,
TO_NUMBER (NULL),
NULL,
NULL,
TO_NUMBER (NULL),
NULL,
NULL,
alg_t.alg_terreinsector_key,
alg_t.alg_terreinsector_code,
alg_t.alg_terreinsector_naam,
alg_t.alg_locatie_key,
'T'
FROM alg_terreinsector alg_t;
CREATE_VIEW(alg_v_onroerendgoed_gegevens,0)
(
alg_onroerendgoed_keys,
alg_plaatsaanduiding,
alg_plaatsomschrijving,
alg_onroerendgoed_code,
alg_onroerendgoed_omschrijving,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_omschrijving,
alg_verdieping_key,
alg_verdieping_code,
alg_verdieping_omschrijving,
alg_gebouw_key,
alg_gebouw_code,
alg_gebouw_naam,
alg_terreinsector_key,
alg_terreinsector_code,
alg_terreinsector_naam,
alg_locatie_key,
alg_type
)
AS
SELECT alg_r.alg_ruimte_key,
DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', alg_g.alg_gebouw_code)
|| DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
'_', '',
'-' || alg_v.alg_verdieping_code)
|| DECODE (SUBSTR (alg_r.alg_ruimte_nr, 1, 1), '_', '', '-' || alg_r.alg_ruimte_nr),
DECODE (
SUBSTR (alg_g.alg_gebouw_code, 1, 1),
'_',
alg_l.alg_locatie_omschrijving,
DECODE (
SUBSTR (alg_v.alg_verdieping_code, 1, 1),
'_',
alg_g.alg_gebouw_naam,
DECODE (SUBSTR (alg_r.alg_ruimte_nr, 1, 1), '_', '', alg_r.alg_ruimte_omschrijving))),
alg_r.alg_ruimte_nr,
alg_r.alg_ruimte_omschrijving,
alg_r.alg_ruimte_key,
alg_r.alg_ruimte_nr,
alg_r.alg_ruimte_omschrijving,
alg_r.alg_verdieping_key,
alg_v.alg_verdieping_code,
alg_v.alg_verdieping_omschrijving,
alg_g.alg_gebouw_key,
alg_g.alg_gebouw_code,
alg_g.alg_gebouw_naam,
TO_NUMBER (NULL),
(alg_onroerendgoed_keys,
alg_onroerendgoed_code,
alg_onroerendgoed_omschrijving,
alg_ruimte_key,
alg_ruimte_nr,
alg_ruimte_omschrijving,
alg_verdieping_key,
alg_verdieping_code,
alg_verdieping_omschrijving,
alg_gebouw_key,
alg_gebouw_code,
alg_gebouw_naam,
alg_terreinsector_key,
alg_terreinsector_code,
alg_terreinsector_naam,
alg_type,
alg_locatie_key ) AS
SELECT ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_omschrijving,
ALG_R.alg_ruimte_key,
ALG_R.alg_ruimte_nr,
ALG_R.alg_ruimte_omschrijving,
ALG_R.alg_verdieping_key,
ALG_V.alg_verdieping_code,
ALG_V.alg_verdieping_omschrijving,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_code,
ALG_G.alg_gebouw_naam,
to_number(NULL),
NULL,
NULL,
alg_g.alg_locatie_key,
'R'
FROM alg_ruimte alg_r,
alg_verdieping alg_v,
alg_gebouw alg_g,
alg_locatie alg_l
WHERE alg_r.alg_verdieping_key = alg_v.alg_verdieping_key
AND alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
AND alg_l.alg_locatie_key = alg_g.alg_locatie_key
UNION ALL
SELECT alg_v.alg_verdieping_key,
DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', alg_g.alg_gebouw_code)
|| DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
'_', '',
'-' || alg_v.alg_verdieping_code),
DECODE (
SUBSTR (alg_g.alg_gebouw_code, 1, 1),
'_',
alg_l.alg_locatie_omschrijving,
DECODE (SUBSTR (alg_v.alg_verdieping_code, 1, 1),
'_', alg_v.alg_verdieping_omschrijving)),
alg_v.alg_verdieping_code,
alg_v.alg_verdieping_omschrijving,
TO_NUMBER (NULL),
'R',
ALG_G.alg_locatie_key
FROM alg_v_aanwezigruimte 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
UNION
SELECT ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_code,
ALG_V.alg_verdieping_omschrijving,
to_number(NULL),
NULL,
NULL,
alg_v.alg_verdieping_key,
alg_v.alg_verdieping_code,
alg_v.alg_verdieping_omschrijving,
alg_g.alg_gebouw_key,
alg_g.alg_gebouw_code,
alg_g.alg_gebouw_naam,
TO_NUMBER (NULL),
ALG_V.alg_verdieping_key,
ALG_V.alg_verdieping_code,
ALG_V.alg_verdieping_omschrijving,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_code,
ALG_G.alg_gebouw_naam,
to_number(NULL),
NULL,
NULL,
alg_g.alg_locatie_key,
'V'
FROM alg_verdieping alg_v, alg_gebouw alg_g, alg_locatie alg_l
WHERE alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
AND alg_l.alg_locatie_key = alg_g.alg_locatie_key
UNION ALL
SELECT alg_g.alg_gebouw_key,
DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1), '_', '', alg_g.alg_gebouw_code),
DECODE (SUBSTR (alg_g.alg_gebouw_code, 1, 1),
'_', alg_l.alg_locatie_omschrijving,
alg_g.alg_gebouw_naam),
alg_g.alg_gebouw_code,
alg_g.alg_gebouw_naam,
TO_NUMBER (NULL),
'V',
ALG_G.alg_locatie_key
FROM alg_v_aanwezigverdieping ALG_V, alg_gebouw ALG_G
WHERE ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key
UNION
SELECT ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_code,
ALG_G.alg_gebouw_naam,
to_number(NULL),
NULL,
NULL,
TO_NUMBER (NULL),
to_number(NULL),
NULL,
NULL,
alg_g.alg_gebouw_key,
alg_g.alg_gebouw_code,
alg_g.alg_gebouw_naam,
TO_NUMBER (NULL),
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_code,
ALG_G.alg_gebouw_naam,
to_number(NULL),
NULL,
NULL,
alg_g.alg_locatie_key,
'G'
FROM alg_gebouw alg_g, alg_locatie alg_l
WHERE alg_l.alg_locatie_key = alg_g.alg_locatie_key
UNION ALL
SELECT alg_t.alg_terreinsector_key,
DECODE (SUBSTR (alg_t.alg_terreinsector_code, 1, 1),
'_', '',
alg_t.alg_terreinsector_code),
DECODE (SUBSTR (alg_t.alg_terreinsector_code, 1, 1),
'_', alg_l.alg_locatie_omschrijving,
alg_terreinsector_naam),
alg_t.alg_terreinsector_code,
alg_t.alg_terreinsector_naam,
TO_NUMBER (NULL),
'G',
ALG_G.alg_locatie_key
FROM alg_v_aanweziggebouw ALG_G
UNION
SELECT ALG_T.alg_terreinsector_key,
ALG_T.alg_terreinsector_code,
ALG_T.alg_terreinsector_naam,
to_number(NULL),
NULL,
NULL,
TO_NUMBER (NULL),
to_number(NULL),
NULL,
NULL,
TO_NUMBER (NULL),
to_number(NULL),
NULL,
NULL,
alg_t.alg_terreinsector_key,
alg_t.alg_terreinsector_code,
alg_t.alg_terreinsector_naam,
alg_t.alg_locatie_key,
'T'
FROM alg_terreinsector alg_t, alg_locatie alg_l
WHERE alg_l.alg_locatie_key = alg_t.alg_locatie_key;
ALG_T.alg_terreinsector_key,
ALG_T.alg_terreinsector_code,
ALG_T.alg_terreinsector_naam,
'T',
ALG_T.alg_locatie_key
FROM alg_v_aanwezigterreinsector ALG_T;
CREATE_VIEW(alg_v_alg_ruimte_verdieping,0)
AS SELECT ALG_R.alg_ruimte_key
, ALG_V.alg_verdieping_key
FROM alg_ruimte ALG_R,
alg_verdieping ALG_V
WHERE ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
AND ALG_R.alg_ruimte_verwijder IS NULL;
CREATE_VIEW(alg_v_my_room, 0) AS
SELECT DISTINCT r.alg_ruimte_key, r.alg_verdieping_key, pl.prs_perslid_key
FROM alg_ruimte r,
prs_perslidwerkplek pl,
prs_werkplek wp
prs_v_aanwezigperslidwerkplek pl,
prs_v_aanwezigwerkplek wp
WHERE r.alg_ruimte_key = wp.prs_alg_ruimte_key
AND pl.prs_werkplek_key = wp.prs_werkplek_key;
CREATE_VIEW(alg_v_my_floor, 0) AS
SELECT v.alg_verdieping_key,
alg_gebouw_key,
r.prs_perslid_key
prs_perslid_key
FROM alg_v_my_room r, alg_verdieping v
WHERE r.alg_verdieping_key = v.alg_verdieping_key;
CREATE_VIEW(alg_v_my_building, 0) AS
SELECT f.alg_gebouw_key,
alg_locatie_key,
f.prs_perslid_key
prs_perslid_key
FROM alg_v_my_floor f, alg_gebouw b
WHERE f.alg_gebouw_key = b.alg_gebouw_key;
CREATE_VIEW(alg_v_my_location, 0) AS
SELECT b.alg_locatie_key,
l.alg_district_key,
b.prs_perslid_key
prs_perslid_key
FROM alg_v_my_building b, alg_locatie l
WHERE b.alg_locatie_key = l.alg_locatie_key;
CREATE_VIEW(alg_v_my_district, 0) AS
SELECT l.alg_district_key,
alg_regio_key,
l.prs_perslid_key
prs_perslid_key
FROM alg_v_my_location l, alg_district d
WHERE l.alg_district_key = d.alg_district_key;
CREATE_VIEW(alg_v_my_region, 0) AS
SELECT alg_regio_key,
prs_perslid_key
prs_perslid_key
FROM alg_v_my_district;
CREATE_VIEW(fac_v_my_regions, 0)
(alg_regio_key,
(alg_regio_key,
prs_perslid_key,
niveau) AS
SELECT alg_regio_key,
prs_perslid_key,
5
prs_perslid_key,
5
FROM alg_v_my_region
UNION
SELECT alg_regio_key,
prs_perslid_key,
4
4
FROM alg_v_my_region
UNION
SELECT alg_regio_key,
@@ -638,28 +537,28 @@ UNION
FROM alg_v_my_region
UNION
SELECT alg_regio_key,
prs_perslid_key,
1
prs_perslid_key,
1
FROM alg_v_my_region
UNION
SELECT alg_regio_key,
prs_perslid_key,
0
prs_perslid_key,
0
FROM alg_v_my_region;
CREATE_VIEW(fac_v_my_districts, 0)
(alg_district_key,
(alg_district_key,
prs_perslid_key,
niveau) AS
SELECT alg_district_key,
prs_perslid_key,
5
prs_perslid_key,
5
FROM alg_v_my_district
UNION
SELECT alg_district_key,
prs_perslid_key,
4
4
FROM alg_v_my_district
UNION
SELECT alg_district_key,
@@ -673,29 +572,29 @@ UNION
FROM alg_v_my_district
UNION
SELECT alg_district_key,
prs_perslid_key,
1
prs_perslid_key,
1
FROM alg_v_my_district d
UNION
SELECT alg_district_key,
ro.prs_perslid_key,
0
prs_perslid_key,
0
FROM alg_district d, alg_v_my_region ro
WHERE ro.alg_regio_key = d.alg_regio_key;
CREATE_VIEW(fac_v_my_locations, 0)
(alg_locatie_key,
(alg_locatie_key,
prs_perslid_key,
niveau) AS
SELECT alg_locatie_key,
prs_perslid_key,
5
prs_perslid_key,
5
FROM alg_v_my_location
UNION
SELECT alg_locatie_key,
prs_perslid_key,
4
4
FROM alg_v_my_location
UNION
SELECT alg_locatie_key,
@@ -709,31 +608,31 @@ UNION
FROM alg_v_my_location
UNION
SELECT l.alg_locatie_key,
d.prs_perslid_key,
1
prs_perslid_key,
1
FROM alg_v_my_district d, alg_locatie l
WHERE l.alg_district_key= d.alg_district_key
UNION
SELECT l.alg_locatie_key,
ro.prs_perslid_key,
0
prs_perslid_key,
0
FROM alg_locatie l, alg_district d, alg_v_my_region ro
WHERE l.alg_district_key= d.alg_district_key
AND ro.alg_regio_key = d.alg_regio_key;
CREATE_VIEW(fac_v_my_buildings, 0)
(alg_gebouw_key,
(alg_gebouw_key,
prs_perslid_key,
niveau) AS
SELECT alg_gebouw_key,
prs_perslid_key,
5
prs_perslid_key,
5
FROM alg_v_my_building
UNION
SELECT alg_gebouw_key,
prs_perslid_key,
4
4
FROM alg_v_my_building
UNION
SELECT alg_gebouw_key,
@@ -742,21 +641,21 @@ UNION
FROM alg_v_my_building
UNION
SELECT alg_gebouw_key,
l.prs_perslid_key,
prs_perslid_key,
2
FROM alg_v_my_location l, alg_gebouw g
WHERE g.alg_locatie_key = l.alg_locatie_key
UNION
SELECT g.alg_gebouw_key,
d.prs_perslid_key,
1
prs_perslid_key,
1
FROM alg_v_my_district d, alg_locatie l, alg_gebouw g
WHERE d.alg_district_key = l.alg_district_key
AND g.alg_locatie_key = l.alg_locatie_key
UNION
SELECT g.alg_gebouw_key,
ro.prs_perslid_key,
0
prs_perslid_key,
0
FROM alg_v_my_region ro, alg_gebouw g, alg_locatie l, alg_district d
WHERE ro.alg_regio_key = d.alg_regio_key
AND l.alg_district_key= d.alg_district_key
@@ -764,82 +663,83 @@ UNION
CREATE_VIEW(fac_v_my_floors, 0)
(alg_verdieping_key,
(alg_verdieping_key,
prs_perslid_key,
niveau) AS
SELECT alg_verdieping_key,
prs_perslid_key,
5
prs_perslid_key,
5
FROM alg_v_my_floor
UNION
SELECT alg_verdieping_key,
prs_perslid_key,
4
4
FROM alg_v_my_floor
UNION
SELECT v.alg_verdieping_key,
b.prs_perslid_key,
prs_perslid_key,
3
FROM alg_v_my_building b, alg_verdieping v
WHERE b.alg_gebouw_key = v.alg_gebouw_key
UNION
SELECT v.alg_verdieping_key,
l.prs_perslid_key,
prs_perslid_key,
2
FROM alg_v_my_location l, alg_gebouw g, alg_verdieping v
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
UNION
SELECT v.alg_verdieping_key,
d.prs_perslid_key,
1
prs_perslid_key,
1
FROM alg_v_my_district d, alg_locatie l, alg_gebouw g, alg_verdieping v
WHERE d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
UNION
SELECT v.alg_verdieping_key,
ro.prs_perslid_key,
0
prs_perslid_key,
0
FROM alg_v_my_region ro, alg_district d, alg_locatie l, alg_gebouw g, alg_verdieping v
WHERE ro.alg_regio_key = d.alg_regio_key
AND d.alg_district_key= l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key;
CREATE_VIEW(fac_v_my_rooms, 0)
(alg_ruimte_key,
(alg_ruimte_key,
prs_perslid_key,
niveau) AS
SELECT alg_ruimte_key,
prs_perslid_key,
5
prs_perslid_key,
5
FROM alg_v_my_room
UNION
SELECT alg_ruimte_key,
f.prs_perslid_key,
4
prs_perslid_key,
4
FROM alg_v_my_floor f, alg_ruimte r
WHERE f.alg_verdieping_key = r.alg_verdieping_key
UNION
SELECT alg_ruimte_key,
b.prs_perslid_key,
3
prs_perslid_key,
3
FROM alg_v_my_building b, alg_verdieping v, alg_ruimte r
WHERE b.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
UNION
SELECT alg_ruimte_key,
l.prs_perslid_key,
2
prs_perslid_key,
2
FROM alg_v_my_location l, alg_gebouw b, alg_verdieping v, alg_ruimte r
WHERE l.alg_locatie_key = b.alg_locatie_key
AND b.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
UNION
SELECT alg_ruimte_key,
d.prs_perslid_key,
1
prs_perslid_key,
1
FROM alg_v_my_district d, alg_locatie l, alg_gebouw b, alg_verdieping v, alg_ruimte r
WHERE d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = b.alg_locatie_key
@@ -847,8 +747,8 @@ UNION
AND v.alg_verdieping_key = r.alg_verdieping_key
UNION
SELECT alg_ruimte_key,
ro.prs_perslid_key,
0
prs_perslid_key,
0
FROM alg_v_my_region ro, alg_district d, alg_locatie l, alg_gebouw b, alg_verdieping v, alg_ruimte r
WHERE ro.alg_regio_key = d.alg_regio_key
AND d.alg_district_key = l.alg_district_key
@@ -856,86 +756,6 @@ UNION
AND b.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key;
-- Zwaar geoptimaliseerd FSN#25609
-- 5.4.1 toch weer terug naar bovenstaande originele
-- Deze even een versie laten staan om relatief simpel terug te kunnen
CREATE_VIEW(fac_v_my_rooms11, 0)
(
ALG_RUIMTE_KEY,
PRS_PERSLID_KEY,
NIVEAU
)
AS
WITH avmr -- alg_v_my_room
AS (SELECT DISTINCT
r.alg_ruimte_key, r.alg_verdieping_key, pl.prs_perslid_key
FROM alg_ruimte r,
prs_perslidwerkplek pl,
prs_werkplek wp
WHERE r.alg_ruimte_key = wp.prs_alg_ruimte_key
AND pl.prs_werkplek_key = wp.prs_werkplek_key),
avmf -- alg_v_my_floor
AS (SELECT v.alg_verdieping_key, alg_gebouw_key, r.prs_perslid_key
FROM avmr r, alg_verdieping v
WHERE r.alg_verdieping_key = v.alg_verdieping_key),
avmb -- alg_v_my_building
AS (SELECT f.alg_gebouw_key, alg_locatie_key, f.prs_perslid_key
FROM avmf f, alg_gebouw b
WHERE f.alg_gebouw_key = b.alg_gebouw_key),
avml -- alg_v_my_location
AS (SELECT b.alg_locatie_key, l.alg_district_key, b.prs_perslid_key
FROM avmb b, alg_locatie l
WHERE b.alg_locatie_key = l.alg_locatie_key),
avmd -- alg_v_my_district
AS (SELECT l.alg_district_key, alg_regio_key, l.prs_perslid_key
FROM avml l, alg_district d
WHERE l.alg_district_key = d.alg_district_key),
avmrr -- alg_v_my_region
AS (SELECT alg_regio_key, prs_perslid_key FROM avmd)
SELECT alg_ruimte_key, prs_perslid_key, 5 FROM avmr
UNION ALL
SELECT alg_ruimte_key, f.prs_perslid_key, 4
FROM avmf f, alg_ruimte r
WHERE f.alg_verdieping_key = r.alg_verdieping_key
UNION ALL
SELECT alg_ruimte_key, b.prs_perslid_key, 3
FROM avmb b, alg_verdieping v, alg_ruimte r
WHERE b.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
UNION ALL
SELECT alg_ruimte_key, l.prs_perslid_key, 2
FROM avml l,
alg_gebouw b,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = b.alg_locatie_key
AND b.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
UNION ALL
SELECT alg_ruimte_key, d.prs_perslid_key, 1
FROM avmd d,
alg_locatie l,
alg_gebouw b,
alg_verdieping v,
alg_ruimte r
WHERE d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = b.alg_locatie_key
AND b.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
UNION ALL
SELECT alg_ruimte_key, ro.prs_perslid_key, 0
FROM avmrr ro,
alg_district d,
alg_locatie l,
alg_gebouw b,
alg_verdieping v,
alg_ruimte r
WHERE ro.alg_regio_key = d.alg_regio_key
AND d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = b.alg_locatie_key
AND b.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key;
DEFINIEER_VIEW_AANWEZIG(alg_srtterreinsector, alg_srtterreinsector_verwijder,
alg_v_aanwezigsrtterreinsector,0);
@@ -957,8 +777,8 @@ CREATE_VIEW(ALG_V_ONRGOED_BOOM, 0 )
(ALG_REGIO_KEY, ALG_DISTRICT_KEY, ALG_LOCATIE_KEY, ALG_GEBOUW_KEY, ALG_VERDIEPING_KEY,
ALG_RUIMTE_KEY)
AS
SELECT a1.alg_regio_key, a2.alg_district_key, a3.alg_locatie_key,
a4.alg_gebouw_key, a5.alg_verdieping_key, a5.alg_ruimte_key
SELECT a0.alg_regio_key, a1.alg_district_key, a2.alg_locatie_key,
a3.alg_gebouw_key, a4.alg_verdieping_key, a5.alg_ruimte_key
FROM alg_regio a0,
alg_district a1,
alg_locatie a2,
@@ -1302,8 +1122,8 @@ AS
x.ruimtesoort,
x.ruimtegebruik,
x.vloersoort,
ROUND (x.nen2580_opp, 2),
ROUND (x.vloer_opp, 2),
REPLACE (TO_CHAR (ROUND (x.nen2580_opp, 2)), '.', ','),
REPLACE (TO_CHAR (ROUND (x.vloer_opp, 2)), '.', ','),
TO_CHAR (100 * ROUND (x.bezetting, 2)) || '%',
x.werkplekken,
x.alg_gebouw_key
@@ -1408,7 +1228,6 @@ AS
(SELECT alg_kenmerk_key
FROM alg_kenmerk
WHERE UPPER(alg_kenmerk_omschrijving) LIKE '%WERKPLEK%'
AND alg_kenmerk_systeem = 1
AND alg_kenmerk_verwijder IS NULL)
AND ok.alg_onrgoed_niveau = 'R'
AND ok.alg_onrgoedkenmerk_verwijder IS NULL)
@@ -1423,7 +1242,6 @@ AS
(SELECT alg_kenmerk_key
FROM alg_kenmerk
WHERE UPPER(alg_kenmerk_omschrijving) LIKE '%GEBRUIK%'
AND alg_kenmerk_systeem = 1
AND alg_kenmerk_verwijder IS NULL)
AND ok.alg_onrgoed_niveau = 'R'
AND ok.alg_onrgoedkenmerk_waarde =
@@ -1438,11 +1256,10 @@ AS
(SELECT alg_kenmerk_key
FROM alg_kenmerk
WHERE UPPER(alg_kenmerk_omschrijving) LIKE '%VLOER%'
AND alg_kenmerk_systeem = 1
AND alg_kenmerk_verwijder IS NULL)
AND ok.alg_onrgoed_niveau = 'R'
AND ok.alg_onrgoedkenmerk_waarde =
ud.fac_usrdata_key) h
ud.fac_usrdata_key) h
ON a.alg_ruimte_key = h.alg_onrgoed_key
LEFT JOIN -- bezettingstotaal
( SELECT ra.alg_ruimte_key,
@@ -1460,68 +1277,6 @@ AS
AND a.mld_adres_verwijder IS NULL) y
ON x.alg_gebouw_key = y.alg_gebouw_key);
-- Vooralsnog even rechttoerechtaan, moet aangepast worden
CREATE_VIEW(alg_v_api_regios, 1) AS
SELECT alg_regio_key key,
alg_regio_omschrijving regioomschrijving
FROM alg_v_aanwezigregio;
CREATE_VIEW(alg_v_api_districten, 1) AS
SELECT alg_district_key key,
alg_regio_omschrijving regioomschrijving,
alg_district_omschrijving districtomschrijving
FROM alg_v_district_gegevens;
CREATE_VIEW(alg_v_api_locaties, 1) AS
SELECT l.alg_locatie_key key,
lg.alg_regio_omschrijving regioomschrijving,
lg.alg_district_omschrijving districtomschrijving,
l.alg_locatie_code locatiecode,
l.alg_locatie_omschrijving locatieomschrijving,
l.alg_locatie_adres locatieadres,
l.alg_locatie_postcode locatiepostcode,
l.alg_locatie_plaats locatieplaats,
l.alg_locatie_x locatiex,
l.alg_locatie_y locatiey
FROM alg_v_locatie_gegevens lg, alg_locatie l
WHERE lg.alg_locatie_key = l.alg_locatie_key;
CREATE_VIEW(alg_v_api_gebouwen, 1) AS
SELECT g.alg_gebouw_key key,
l.alg_locatie_code locatiecode,
g.alg_gebouw_code gebouwcode,
g.alg_gebouw_naam gebouwnaam,
sg.alg_srtgebouw_omschrijving soortgebouw,
l.alg_locatie_adres locatieadres,
l.alg_locatie_postcode locatiepostcode,
l.alg_locatie_plaats locatieplaats,
COALESCE(l.alg_locatie_x, g.alg_gebouw_x) gebouwx,
COALESCE(l.alg_locatie_y, g.alg_gebouw_y) gebouwy
FROM alg_locatie l,
alg_v_aanweziggebouw g,
alg_v_aanwezigsrtgebouw sg
WHERE l.alg_locatie_key = g.alg_locatie_key AND
g.alg_srtgebouw_key = sg.alg_srtgebouw_key (+);
CREATE_VIEW(alg_v_api_verdiepingen, 1) AS
SELECT alg_verdieping_key key,
alg_locatie_code locatiecode,
alg_gebouw_code gebouwcode,
alg_verdieping_code verdiepingcode,
alg_verdieping_omschrijving verdiepingomschrijving,
alg_verdieping_volgnr verdiepingvolgnr
FROM alg_v_verdieping_gegevens vg, alg_gebouw g
WHERE g.alg_gebouw_key = vg.alg_gebouw_key;
CREATE_VIEW(alg_v_api_ruimten, 1) AS
SELECT alg_ruimte_key key,
alg_locatie_code locatiecode,
alg_gebouw_code gebouwcode,
alg_verdieping_code verdiepingcode,
alg_ruimte_nr ruimtecode,
alg_ruimte_omschrijving ruimtenaam,
alg_srtruimte_omschrijving soortruimte
FROM alg_v_ruimte_gegevens rg, alg_gebouw g
WHERE g.alg_gebouw_key = rg.alg_gebouw_key;
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: ALG_VIE.SRC $','$Revision$')

View File

@@ -1,13 +0,0 @@
/* $Revision$
* $Id$
*/
CREATE UNIQUE INDEX aut_i_idp_code ON aut_idp(aut_idp_code);
CREATE UNIQUE INDEX aut_i_idp2 ON aut_idp(aut_idp_issuer, aut_idp_audience, aut_idp_type);
CREATE UNIQUE INDEX aut_i_sp_code ON aut_sp(aut_sp_code);
CREATE UNIQUE INDEX aut_i_cp_refreshtkn ON aut_client_perslid(aut_client_perslid_refreshtkn);
CREATE UNIQUE INDEX aut_i_cp_accesstoken ON aut_client_perslid(aut_client_perslid_accesstoken);
REGISTERONCE('$Id$')

View File

@@ -1,15 +0,0 @@
/*
* $Revision$
* $Id$
*/
CREATE SEQUENCE aut_s_aut_idp_key MINVALUE 1;
CREATE SEQUENCE aut_s_aut_idp_map_key MINVALUE 1;
CREATE SEQUENCE aut_s_aut_sp_key MINVALUE 1;
CREATE SEQUENCE aut_s_aut_sp_map_key MINVALUE 1;
CREATE SEQUENCE aut_s_aut_client_key MINVALUE 1;
CREATE SEQUENCE aut_s_aut_client_perslid_key MINVALUE 1;
REGISTERONCE('$Id$')

View File

@@ -1,216 +0,0 @@
/*
* $Revision$
* $Id$
*/
// Documentatie in de wiki onder Authenticeren
CREATE TABLE aut_idp
(
aut_idp_key
NUMBER(10)
CONSTRAINT aut_k_idp_key PRIMARY KEY,
aut_idp_code -- Voor &sso=<code>
VARCHAR2(30),
aut_idp_type -- 1=Internal (login.asp, future use), 2=UID_DEC (deprecated),
NUMBER(3), -- 3=GUID-encrypted (deprecated), 4=JWT, 5=SAML (future use)
aut_idp_algorithm -- HS256 is HMAC-SHA256
VARCHAR2(30),
aut_idp_omschrijving
VARCHAR2(30),
aut_idp_opmerking
VARCHAR2(320),
aut_idp_secret
VARCHAR2(128),
aut_idp_audience
VARCHAR2(128),
aut_idp_issuer
VARCHAR2(128),
aut_idp_remote_loginurl
VARCHAR2(128),
aut_idp_remote_logouturl
VARCHAR2(128),
aut_idp_saml_metaurl
VARCHAR2(128),
aut_idp_clockskew
NUMBER(10),
aut_idp_duration
NUMBER(10),
aut_idp_autocreate
NUMBER(1)
DEFAULT 0 -- +1: create; +2: update
NOT NULL,
prs_afdeling_key
NUMBER(10)
CONSTRAINT aut_r_idp_prs_afdeling REFERENCES prs_afdeling(prs_afdeling_key) ON DELETE CASCADE,
prs_bedrijf_key
NUMBER(10)
CONSTRAINT aut_r_idp_prs_bedrijf REFERENCES prs_bedrijf(prs_bedrijf_key) ON DELETE CASCADE,
fac_functie_key
NUMBER(10)
CONSTRAINT aut_r_idp_functie REFERENCES fac_functie(fac_functie_key),
aut_idp_internal -- can be used for FACFAC
NUMBER(1)
DEFAULT 0 NOT NULL,
aut_idp_ipfilter
VARCHAR2(320),
aut_idp_ipauto
NUMBER(1)
DEFAULT 0 NOT NULL,
aut_idp_loglevel
NUMBER(1) DEFAULT 0 NOT NULL,
aut_idp_aanmaak
DATE
DEFAULT SYSDATE
);
CREATE TABLE aut_idp_map
(
aut_idp_map_key
NUMBER(10)
CONSTRAINT aut_k_idp_map_key PRIMARY KEY,
aut_idp_key
NUMBER(10)
CONSTRAINT aut_r_idp_map_id REFERENCES aut_idp(aut_idp_key) ON DELETE CASCADE,
aut_idp_map_from -- as sent in JWT
VARCHAR(100)
NOT NULL,
aut_idp_map_to -- FACILITOR column of 1000+kenmerk_key
NUMBER(10)
NOT NULL,
aut_idp_map_identify
NUMBER(1)
DEFAULT 0
NOT NULL,
aut_idp_map_autocreate -- unused/future use
NUMBER(1)
DEFAULT 0 -- +1: create; +2: update
NOT NULL,
aut_idp_map_default
VARCHAR(256),
aut_idp_map_aanmaak
DATE
DEFAULT SYSDATE
);
CREATE TABLE aut_sp
(
aut_sp_key
NUMBER(10)
CONSTRAINT aut_k_sp_key PRIMARY KEY,
aut_sp_code -- Nodig?
VARCHAR2(30),
aut_sp_type -- 1=Internal (login.asp, future use), 2=UID_DEC (deprecated),
NUMBER(3), -- 3=GUID-encrypted (deprecated), 4=JWT, 5=SAML (future use)
aut_sp_algorithm -- HS256 is HMAC-SHA256
VARCHAR2(30),
aut_sp_omschrijving
VARCHAR2(30),
aut_sp_opmerking
VARCHAR2(320),
aut_sp_secret
VARCHAR2(128),
aut_sp_audience
VARCHAR2(128),
aut_idp_duration
NUMBER(10),
aut_sp_issuer
VARCHAR2(128),
aut_sp_redirect_uri
VARCHAR2(320),
fac_functie_key
NUMBER(10)
CONSTRAINT aut_r_sp_functie REFERENCES fac_functie(fac_functie_key),
aut_sp_internal
NUMBER(1)
DEFAULT 0 NOT NULL,
aut_sp_loglevel
NUMBER(1) DEFAULT 0 NOT NULL,
aut_sp_aanmaak
DATE
DEFAULT SYSDATE
);
-- Mapping attributen
CREATE TABLE aut_sp_map
(
aut_sp_map_key
NUMBER(10)
CONSTRAINT aut_k_sp_map_key PRIMARY KEY,
aut_sp_key
NUMBER(10)
CONSTRAINT aut_r_sp_map_id REFERENCES aut_sp(aut_sp_key),
aut_sp_map_from
NUMBER(3)
NOT NULL,
aut_sp_map_to -- as sent in JWT
VARCHAR(100)
NOT NULL,
aut_sp_map_aanmaak
DATE
DEFAULT SYSDATE
);
-- Clients (zoals al dan niet native App's)
CREATE TABLE aut_client
(
aut_client_key
NUMBER(10)
CONSTRAINT aut_k_aut_client_key PRIMARY KEY,
aut_client_id
VARCHAR2(64),
aut_client_type -- 1=Internal (login.asp, future use), 2=UID_DEC (deprecated),
NUMBER(3), -- 3=GUID-encrypted (deprecated), 4=JWT, 5=SAML (future use)
aut_client_omschrijving
VARCHAR2(30),
aut_client_opmerking
VARCHAR2(320),
aut_client_secret
VARCHAR2(128),
prs_bedrijf_key -- reference to find tech-adres (bedrijfadres of type N) for notifications
NUMBER(10)
CONSTRAINT aut_r_prs_bedrijf_key1 REFERENCES prs_bedrijf(prs_bedrijf_key) ON DELETE CASCADE,
aut_client_customuri -- future use
VARCHAR2(128),
aut_client_aanmaak
DATE
DEFAULT SYSDATE
);
-- Koppeling client en (toestemming gegeven door) perslid
CREATE TABLE aut_client_perslid
(
aut_client_perslid_key
NUMBER(10)
CONSTRAINT aut_k_client_perslid PRIMARY KEY,
aut_client_key
NUMBER(10)
CONSTRAINT aut_r_aut_client_id REFERENCES aut_client(aut_client_key) ON DELETE CASCADE,
aut_client_perslid_device_id
VARCHAR(320),
aut_client_perslid_device_name
VARCHAR(320),
aut_client_perslid_scope
VARCHAR(320)
DEFAULT NULL,
aut_client_perslid_pushtoken
VARCHAR(320),
aut_client_perslid_refreshtkn -- unused yet
VARCHAR(320),
aut_client_perslid_refreshdate
DATE,
aut_client_perslid_accesstoken
VARCHAR(320),
aut_client_perslid_accessdate
DATE,
aut_client_perslid_login -- wanneer voor het laatst de app gebruikt
DATE,
prs_perslid_key
NUMBER(10)
CONSTRAINT aut_r_aut_client_perslid REFERENCES prs_perslid(prs_perslid_key) ON DELETE CASCADE
CONSTRAINT aut_c_aut_client_perslid CHECK(prs_perslid_key IS NOT NULL),
aut_client_perslid_aanmaak
DATE
DEFAULT SYSDATE
);
REGISTERONCE('$Id$')

View File

@@ -1,57 +0,0 @@
/*
* $Revision$
* $Id$
*
*/
CREATE_TRIGGER(aut_t_aut_idp_B_IU)
BEFORE INSERT OR UPDATE ON aut_idp
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(aut_idp_key, aut_s_aut_idp_key);
:new.aut_idp_code := UPPER(:new.aut_idp_code);
END;
/
CREATE_TRIGGER(aut_t_aut_idp_map_B_I)
BEFORE INSERT ON aut_idp_map
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(aut_idp_map_key, aut_s_aut_idp_map_key);
END;
/
CREATE_TRIGGER(aut_t_aut_sp_B_IU)
BEFORE INSERT ON aut_sp
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(aut_sp_key, aut_s_aut_sp_key);
:new.aut_sp_code := UPPER(:new.aut_sp_code);
END;
/
CREATE_TRIGGER(aut_t_aut_sp_map_B_I)
BEFORE INSERT ON aut_sp_map
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(aut_sp_map_key, aut_s_aut_sp_map_key);
END;
/
CREATE_TRIGGER(aut_t_aut_client_B_I)
BEFORE INSERT ON aut_client
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(aut_client_key, aut_s_aut_client_key);
END;
/
CREATE_TRIGGER(aut_t_aut_client_perslid_B_I)
BEFORE INSERT ON aut_client_perslid
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(aut_client_perslid_key, aut_s_aut_client_perslid_key);
END;
/
REGISTERRUN('$Id$')

View File

@@ -16,7 +16,6 @@ create index bes_i_bes_bestelling9 on bes_bestelling (prs_perslid_key_voor);
create index bes_i_bes_bestelling10 on bes_bestelling (bes_bestelling_kto_verstuurd);
create index bes_i_bes_bestelling11 on bes_bestelling (bes_bestelling_parentkey);
create index bes_i_bes_bestelling12 on bes_bestelling (mld_melding_key);
CREATE INDEX bes_i_bes_bestelling13 ON bes_bestelling (bes_bestelling_retourvan_key);
CREATE INDEX bes_i_bes_bestelling_item1 ON bes_bestelling_item(bes_bestelopdr_item_key);
create index bes_i_bes_bestelling_item2 on bes_bestelling_item(bes_bestelling_item_status);
@@ -30,7 +29,6 @@ create index bes_i_bes_bestelopdr_datum on bes_bestelopdr(bes_bestelopdr_datum);
create index bes_i_bes_bestelopdr_item on bes_bestelopdr_item(bes_bestelopdr_item_verwerkt);
create index bes_i_bes_srtdeel1 on bes_srtdeel(bes_srtgroep_key);
CREATE UNIQUE INDEX bes_i_bes_srtdeel2 ON bes_srtdeel(bes_srtdeel_nr, prs_bedrijf_key, bes_srtgroep_key, bes_srtdeel_verwijder);
CREATE INDEX bes_i_bes_srtdeel_prs_bdr_key on bes_srtdeel (prs_bedrijf_key);
CREATE INDEX bes_i_bes_bestelling_item5 ON bes_bestelling_item(bes_srtdeel_key);
@@ -52,6 +50,6 @@ CREATE INDEX bes_i_bes_favoriet1 ON bes_favoriet(prs_perslid_key);
CREATE INDEX bes_i_bes_srtdeel_prijs1 ON bes_srtdeel_prijs (bes_srtdeel_key);
CREATE INDEX bes_i_bes_srtprod_prijs1 ON bes_srtprod_prijs (bes_srtprod_key);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: BES_IND.SRC $','$Revision$')
#endif // BES

View File

@@ -4,7 +4,7 @@
* $Id$
*/
_FAC_MODULE('BES','lcl_module_BES')
_FAC_MODULE('BES','Bestellingenmodule')
DEF_STATUS('bestelling', 1, 'lcl_bes_afgewezen');
DEF_STATUS('bestelling', 2, 'lcl_bes_new');
@@ -14,7 +14,6 @@ DEF_STATUS('bestelling', 5, 'lcl_bes_besteld');
DEF_STATUS('bestelling', 6, 'lcl_bes_geleverd');
DEF_STATUS('bestelling', 7, 'lcl_bes_verwerkt');
DEF_STATUS('bestelling', 8, 'lcl_bes_is_bescan');
DEF_STATUS('bestelling', 9, 'lcl_bes_ontvangen');
DEF_STATUS('bestelopdr', 1, 'lcl_bes_ord_afgewezen');
DEF_STATUS('bestelopdr', 2, 'lcl_bes_ord_new');
@@ -25,6 +24,6 @@ DEF_STATUS('bestelopdr', 6, 'lcl_bes_ord_geleverd');
DEF_STATUS('bestelopdr', 7, 'lcl_bes_ord_verwerkt');
DEF_STATUS('bestelopdr', 8, 'lcl_bes_ord_geannuleerd');
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: BES_INI.SRC $','$Revision$')
#endif // BES

File diff suppressed because it is too large Load Diff

View File

@@ -30,6 +30,6 @@ CREATE SEQUENCE bes_s_bes_srtprod_prijs_key MINVALUE 1;
CREATE SEQUENCE bes_s_bes_bedrijf_srtprod_key MINVALUE 1;
CREATE SEQUENCE bes_s_bes_bedrijf_bedrijf_key MINVALUE 1;
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: BES_SEQ.SRC $','$Revision$')
#endif // BES

View File

@@ -30,9 +30,6 @@ CREATE_TABLE(bes_srtgroep,0)
NOT_NULL(bes_srtgroep_omschrijving, bes_c_bes_srtgroep_omschr),
bes_srtgroep_volgnr
NUMBER(3),
prs_kostensoort_key
NUMBER(10)
CONSTRAINT bes_r_prs_kostensoort_key1 REFERENCES prs_kostensoort(prs_kostensoort_key),
bes_srtgroep_aanmaak
DATE
DEFAULT SYSDATE
@@ -145,8 +142,7 @@ CREATE_TABLE(bes_srtdeel,0)
NUMBER(1)
DEFAULT 0,
bes_srtdeel_nr
VARCHAR2(32)
NOT_NULL(bes_srtdeel_nr, bes_c_bes_srtdeel_nr),
VARCHAR2(32),
prs_bedrijf_key
NUMBER(10)
CONSTRAINT bes_r_prs_bedrijf_key3 REFERENCES prs_bedrijf(prs_bedrijf_key),
@@ -157,8 +153,6 @@ CREATE_TABLE(bes_srtdeel,0)
DATE,
bes_srtdeel_image
VARCHAR2(255),
bes_srtdeel_details_loc
VARCHAR2(255),
bes_srtdeel_veelvoud
NUMBER(6),
bes_srtdeel_minimum
@@ -173,9 +167,6 @@ CREATE_TABLE(bes_srtdeel,0)
NUMBER(6),
bes_srtdeel_voorraadmax
NUMBER(6),
bes_srtdeel_voorraadfactor
NUMBER(6)
DEFAULT 1, /* factor tussen inkoop- en verkoopenheden van zelfde artikelnr tbv voorraadbepaling */
bes_srtdeel_margepct /* percentage van de leveranciersmarge (verkoop-inkoop) dat voor ons is, de rest is voor whoever */
NUMBER(3),
bes_srtdeel_wijzigdagen /* zoveel dagen voor leverdatum nog te wijzigen */
@@ -185,14 +176,7 @@ CREATE_TABLE(bes_srtdeel,0)
bes_srtdeel_depotverdeelpct
NUMBER(3),
bes_srtdeel_notitie /* magazijnlocatie */
VARCHAR2(50),
bes_srtdeel_maxbestel /* De voorrraad is het maximum aantal dat ik mag bestellen {0=nee (default), 1=ja} */
NUMBER(1)
DEFAULT 0
NOT NULL,
ins_srtdeel_key /* objectrelatie */
NUMBER(10)
CONSTRAINT ins_r_ins_srtdeel_key4 REFERENCES ins_srtdeel(ins_srtdeel_key)
VARCHAR2(50)
);
@@ -241,8 +225,6 @@ CREATE_TABLE(bes_bestelling, 0)
bes_bestelling_fiat_user
NUMBER(10)
CONSTRAINT bes_r_bes_bestelling_fiat REFERENCES prs_perslid(prs_perslid_key),
bes_bestelling_fiatbedrag /* Tot zover gefiatteerd */
NUMBER(11,2),
mld_adres_key_lev
NUMBER(10)
CONSTRAINT bes_r_mld_adres_key_lev REFERENCES mld_adres(mld_adres_key),
@@ -250,6 +232,15 @@ CREATE_TABLE(bes_bestelling, 0)
NUMBER(8,2),
bes_bestelling_korting
NUMBER(8,2),
bes_bestelling_item_cnt
NUMBER(10)
DEFAULT 0,
bes_bestelling_item_cnt_acpt
NUMBER(10)
DEFAULT 0,
bes_bestelling_item_cnt_lev
NUMBER(10)
DEFAULT 0,
fac_activiteit_key
NUMBER(10)
CONSTRAINT fac_r_fac_activiteit3 REFERENCES fac_activiteit(fac_activiteit_key) ON DELETE CASCADE,
@@ -257,15 +248,7 @@ CREATE_TABLE(bes_bestelling, 0)
NUMBER(10)
CONSTRAINT bes_r_mld_melding1 REFERENCES mld_melding(mld_melding_key),
bes_bestelling_kto_verstuurd
DATE,
bes_bestelling_satisfaction
NUMBER(2),
bes_bestelling_satisfaction_op
VARCHAR2(2000),
bes_bestelling_approved
NUMBER(11,2),
bes_bestelling_lev_opm
VARCHAR2(320)
DATE
);
CREATE_TABLE(bes_bestelopdr, 0)
@@ -306,17 +289,17 @@ CREATE_TABLE(bes_bestelopdr, 0)
CONSTRAINT bes_r_opdr_prs_user_key1 REFERENCES prs_perslid(prs_perslid_key),
bes_bestelopdr_delivery_opmerk
VARCHAR2(320),
bes_bestelopdr_flag
NUMBER(1)
bes_bestelopdr_item_cnt
NUMBER(10)
DEFAULT 0,
bes_bestelopdr_item_cnt_lev
NUMBER(10)
DEFAULT 0
);
ALTER TABLE cnt_contract ADD bes_bestelopdr_key
NUMBER(10)
CONSTRAINT cnt_r_bes_bestelopdr_key REFERENCES bes_bestelopdr(bes_bestelopdr_key);
ALTER TABLE ins_deel
ADD bes_bestelopdr_key
NUMBER(10)
CONSTRAINT bes_r_bes_bestelopdr_key3 REFERENCES bes_bestelopdr(bes_bestelopdr_key);
CREATE_TABLE(bes_bestelopdr_item, 0)
(
@@ -338,8 +321,6 @@ CREATE_TABLE(bes_bestelopdr_item, 0)
NUMBER(5),
bes_bestelopdr_item_omschrijv
VARCHAR2(320),
bes_bestelopdr_item_opmerking
VARCHAR2(100),
bes_bestelopdr_item_prijs
NUMBER(12,6),
bes_bestelopdr_item_inkprijs
@@ -386,9 +367,7 @@ CREATE_TABLE(bes_bestelling_item, 0)
NUMBER(5),
bes_bestelling_item_status
NUMBER(10),
CONSTRAINT bes_c_bes_bestelling_item
CHECK ((bes_bestelling_item_aantal>=0 AND bes_bestelling_item_aantalontv<=bes_bestelling_item_aantal)
OR (bes_bestelling_item_aantal<0 AND bes_bestelling_item_aantalontv>=bes_bestelling_item_aantal))
CONSTRAINT bes_c_bes_bestelling_item CHECK (bes_bestelling_item_aantalontv<=bes_bestelling_item_aantal)
);
--CREATE_TABLE(bes_bestellingstatuses, 0)
@@ -418,10 +397,6 @@ CREATE_TABLE(bes_disc_params, 0)
NUMBER(10)
NOT_NULL(bes_ins_discipline_key, bes_c_ins_discipline_key)
CONSTRAINT bes_r_ins_discipine_key REFERENCES ins_tab_discipline(ins_discipline_key),
bes_disc_params_fiatflow /* Fiatterings flow 0=fiatteur->besbof 1=besbof->fiatteur */
NUMBER(1)
DEFAULT 0
CONSTRAINT bes_c_disc_params_fiatflow CHECK(bes_disc_params_fiatflow IN (0,1)),
bes_disc_params_bestellimiet
NUMBER(8,2)
DEFAULT 100000,
@@ -450,10 +425,8 @@ CREATE_TABLE(bes_disc_params, 0)
CONSTRAINT bes_c_disc_params1 CHECK(bes_disc_params_factmatchmode IN (2,3)), /* leeg mag ook */
bes_disc_params_leverdagen /* default levertijd */
NUMBER,
bes_disc_params_expire_tijd
NUMBER(5,2), /* grenstijdstip van de dag voor die freeze (bv 16.5) */
bes_disc_params_punchouturl
VARCHAR2(1024),
VARCHAR2(255),
bes_disc_params_punch_bedr_key
NUMBER(10)
CONSTRAINT bes_r_prs_bedrijf_key4 REFERENCES prs_bedrijf(prs_bedrijf_key),
@@ -476,15 +449,12 @@ CREATE_TABLE(bes_disc_params, 0)
bes_ins_discipline_key_inkoop /* optionele corresponderende inkoopcatalogus tbv voorraad */
NUMBER(10)
CONSTRAINT bes_r_ins_discipine_key2 REFERENCES ins_tab_discipline(ins_discipline_key),
bes_disc_params_pgb /* 0=Geen van beiden, 1=Alleen pgb, 2=Alleen agb, 3=Beiden, pgb en agb */
bes_disc_params_pgb /* 1=moet worden gecontroleerd tegen persoonsgebonden jaarbudget */
NUMBER(1),
bes_disc_params_singlegroep /* 1=een bestelling mag alleen artikelen van 1 srtgroep bevatten */
NUMBER(1),
bes_disc_params_noti_opdr /* 1=notificeer besteller over bestelopdracht(en) */
NUMBER(1),
bes_disc_params_bonotify /* 1=notificeer BO als er een bestelling is */
NUMBER(1)
NOT NULL,
bes_disc_params_herfiat /* 0=nooit, 1=zie criteria, 2=altijd */
NUMBER(1),
bes_disc_params_herfiatpct
@@ -507,44 +477,8 @@ CREATE_TABLE(bes_disc_params, 0)
NUMBER(10)
CONSTRAINT bes_r_cnt_termijn_key2 REFERENCES cnt_termijn(cnt_termijn_key),
bes_disc_params_for_others /* Kan ik als FE een bestelling voor een ander plaatsen? {0=no | 1=yes} */
NUMBER(1)
DEFAULT 0,
bes_disc_params_bestellimiet2
NUMBER(11,2)
DEFAULT 1000000,
bes_disc_params_bestellimiet3
NUMBER(11,2)
DEFAULT 1000000,
bes_disc_params_bestellimiet4
NUMBER(11,2)
DEFAULT 1000000,
bes_disc_params_bestellimiet5
NUMBER(11,2)
DEFAULT 1000000,
bes_disc_params_freeartikel /* Deprecated, gaat van 2017.3 via bes_disc_params_bestelmode */
NUMBER(1)
DEFAULT 0
NOT NULL,
bes_disc_params_bestelmode /* 0=ouderwets artikelselector, 1=vrij artikelen, 2=bestellijst */
NUMBER(1)
DEFAULT 0
NOT NULL,
bes_disc_params_fotomode /* 0=alleen bij kiezen artikel, 1=ook in bestellijst */
NUMBER(1)
DEFAULT 0
NOT NULL,
bes_disc_params_ins_mode /* bestelcatalogusinstellingen {0=Niet van toepassing, 1=Aanmaken en koppelen (Nog niet ondersteund), 2=Koppelen} */
NUMBER(1)
DEFAULT 0
NOT NULL,
bes_disc_params_fe_confirm /* Besteller bevestigt ontvangst {0=Nee (default), 1=Ja} */
NUMBER(1)
DEFAULT 0
NOT NULL,
bes_disc_params_hide_cost_fe /* Onderdruk kosten in bestellijst voor FE {0=Nee (default), 1=Ja} */
NUMBER(1)
DEFAULT 0
NOT NULL
);
//// flexprops
@@ -563,9 +497,7 @@ CREATE_TABLE(bes_srtkenmerk, 0)
, bes_srtkenmerk_kenmerktype
VARCHAR2(1)
, bes_srtkenmerk_systeem
NUMBER(2)
DEFAULT 0
NOT NULL
NUMBER(1)
, bes_srtkenmerk_lengte
NUMBER(4)
, bes_srtkenmerk_dec
@@ -586,7 +518,9 @@ CREATE_TABLE(bes_srtkenmerk, 0)
, CONSTRAINT bes_c_bes_srtkenmerk_omschr CHECK(bes_srtkenmerk_omschrijving IS NOT NULL)
, CONSTRAINT bes_srtkenmerk_omschrijving CHECK(bes_srtkenmerk_omschrijving IS NOT NULL)
, CONSTRAINT bes_u_bes_srtkenmerk_upper UNIQUE(bes_srtkenmerk_upper, bes_srtkenmerk_verwijder)
, CONSTRAINT bes_c_bes_srtkenmerk_kenmtype CHECK(bes_srtkenmerk_kenmerktype IN ('C','N','D','T','R','X','L','Q','F','M','E','S','l','B','V'))
, CONSTRAINT bes_c_bes_srtkenmerk_kenmtype CHECK(bes_srtkenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l'))
, CONSTRAINT bes_c_bes_srtkenmerk_systeem CHECK(bes_srtkenmerk_systeem IS NULL
OR bes_srtkenmerk_systeem = 1)
, CONSTRAINT bes_c_bes_srtkenmerk_lengte CHECK(bes_srtkenmerk_lengte >= 1
AND bes_srtkenmerk_lengte <= 4000)
, CONSTRAINT bes_c_bes_srtkenmerk_max_min CHECK(bes_srtkenmerk_nmax >= bes_srtkenmerk_nmin)
@@ -611,18 +545,12 @@ CREATE_TABLE(bes_kenmerk, 0)
VARCHAR2(1)
CONSTRAINT bes_c_ins_kenmerk_niveau2 CHECK
(bes_kenmerk_niveau is not null and (bes_kenmerk_niveau IN( 'D', 'G', 'S')))
, bes_kenmerk_omschrijving
VARCHAR2(50) /* optionele overrule van srtkenmerk_omschrijving */
, bes_kenmerk_verplicht
NUMBER(1)
, bes_kenmerk_groep
NUMBER(1)
DEFAULT 0 NOT NULL
, bes_kenmerk_toonbaar
NUMBER(1)
, bes_kenmerk_volgnummer
NUMBER(3)
NOT NULL
, bes_kenmerk_uniek
NUMBER(1)
, bes_kenmerk_regexp
@@ -633,19 +561,16 @@ CREATE_TABLE(bes_kenmerk, 0)
DATE
DEFAULT SYSDATE
, bes_kenmerk_default
VARCHAR2(4000)
, bes_kenmerk_show_expr
VARCHAR2(4000)
VARCHAR2(255)
, bes_kenmerk_verwijder
DATE
DEFAULT NULLDATUM
, CONSTRAINT bes_c_bes_srtkenmerk_key1 CHECK(bes_srtkenmerk_key IS NOT NULL)
, CONSTRAINT bes_r_bes_srtkenmerk_key2 FOREIGN KEY(bes_srtkenmerk_key) REFERENCES bes_srtkenmerk(bes_srtkenmerk_key)
, CONSTRAINT bes_c_bes_kenmerk_niveau1 CHECK(bes_kenmerk_niveau IS NOT NULL)
, CONSTRAINT bes_c_bes_kenmerk_toonbaar CHECK(bes_kenmerk_toonbaar IS NULL
OR bes_kenmerk_toonbaar = 1)
, CONSTRAINT bes_c_bes_kenmerk_aanmaak CHECK(bes_kenmerk_aanmaak IS NOT NULL)
, CONSTRAINT bes_u_bes_kenmerk UNIQUE(bes_srtkenmerk_key, bes_srtinstallatie_key, bes_kenmerk_type, bes_kenmerk_niveau, bes_kenmerk_omschrijving, bes_kenmerk_groep, bes_kenmerk_verwijder)
, CONSTRAINT bes_c_bes_srtkenmerk_key1 CHECK(bes_srtkenmerk_key IS NOT NULL)
, CONSTRAINT bes_r_bes_srtkenmerk_key2 FOREIGN KEY(bes_srtkenmerk_key) REFERENCES bes_srtkenmerk(bes_srtkenmerk_key)
, CONSTRAINT bes_c_bes_kenmerk_niveau1 CHECK(bes_kenmerk_niveau IS NOT NULL)
, CONSTRAINT bes_c_bes_kenmerk_toonbaar CHECK(bes_kenmerk_toonbaar IS NULL
OR bes_kenmerk_toonbaar = 1)
, CONSTRAINT bes_c_bes_kenmerk_aanmaak CHECK(bes_kenmerk_aanmaak IS NOT NULL)
);
CREATE_TABLE(bes_kenmerkbestell, 0)
@@ -798,6 +723,6 @@ CREATE_TABLE(bes_bedrijf_bedrijf,0)
);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: BES_TAB.SRC $','$Revision$')
#endif // BES

View File

@@ -60,8 +60,8 @@ CREATE_TRIGGER(bes_t_bes_bestelling_a_d)
ON bes_bestelling
FOR EACH ROW
BEGIN
-- Alle BES% weggooien. XML generatie zou er toch op falen
fac.clrnotifications ('BES%', :old.bes_bestelling_key);
-- Of alle BES% weggooien?
fac.clrnotifications ('BESAP1', :new.bes_bestelling_key);
END;
/
@@ -147,47 +147,6 @@ END;
/
AUDIT_BEGIN(bes_disc_params)
AUDIT_VALUE(bes_disc_params, bes_disc_params_bestellimiet)
AUDIT_VALUE(bes_disc_params, bes_disc_params_bestellimiet2)
AUDIT_VALUE(bes_disc_params, bes_disc_params_bestellimiet3)
AUDIT_VALUE(bes_disc_params, bes_disc_params_bestellimiet4)
AUDIT_VALUE(bes_disc_params, bes_disc_params_bestellimiet5)
AUDIT_VALUE(bes_disc_params, bes_disc_params_min_bedrag)
AUDIT_VALUE(bes_disc_params, bes_disc_params_auto_order)
AUDIT_VALUE(bes_disc_params, bes_disc_params_autoacceptrfo)
AUDIT_VALUE(bes_disc_params, bes_disc_params_herfiat)
AUDIT_VALUE(bes_disc_params, bes_disc_params_herfiatpct)
AUDIT_VALUE(bes_disc_params, bes_disc_params_herfiatmarge)
AUDIT_VALUE(bes_disc_params, bes_disc_params_factuurpct)
AUDIT_VALUE(bes_disc_params, bes_disc_params_factuurmarge)
AUDIT_VALUE(bes_disc_params, bes_disc_params_factmatchmode)
AUDIT_VALUE(bes_disc_params, bes_disc_params_factuurappr)
AUDIT_VALUE(bes_disc_params, bes_disc_params_factuurgrens)
AUDIT_VALUE(bes_disc_params, bes_disc_params_pgb)
AUDIT_VALUE(bes_disc_params, bes_disc_params_leverdagen)
AUDIT_VALUE(bes_disc_params, bes_disc_params_remoteconfirm)
AUDIT_VALUE(bes_disc_params, bes_disc_params_freeartikel)
AUDIT_VALUE(bes_disc_params, bes_disc_params_punchouturl)
AUDIT_VALUE(bes_disc_params, bes_disc_params_punch_bedr_key)
AUDIT_VALUE(bes_disc_params, bes_disc_params_logo_url)
AUDIT_VALUE(bes_disc_params, bes_disc_params_noti_dagen)
AUDIT_VALUE(bes_disc_params, bes_disc_params_noti_opdr)
AUDIT_VALUE(bes_disc_params, bes_disc_params_bonotify)
AUDIT_VALUE(bes_disc_params, bes_disc_params_retour)
AUDIT_VALUE(bes_disc_params, bes_disc_params_retour_url)
AUDIT_VALUE(bes_disc_params, bes_disc_params_levopm_url)
AUDIT_VALUE(bes_disc_params, bes_ins_discipline_key_inkoop)
AUDIT_VALUE(bes_disc_params, bes_disc_params_singlegroep)
AUDIT_VALUE(bes_disc_params, bes_disc_params_kpautorisatie)
AUDIT_VALUE(bes_disc_params, bes_disc_params_maxartikel)
AUDIT_VALUE(bes_disc_params, bes_disc_params_contract)
AUDIT_VALUE(bes_disc_params, bes_disc_params_cnt_disckey)
AUDIT_VALUE(bes_disc_params, bes_disc_params_cnt_termijn)
AUDIT_VALUE(bes_disc_params, bes_disc_params_cnt_opzegterm)
AUDIT_VALUE(bes_disc_params, bes_disc_params_for_others)
AUDIT_END()
CREATE_TRIGGER(BES_T_BES_DISC_PARAMS_B_IU)
BEFORE INSERT OR UPDATE ON bes_disc_params
FOR EACH ROW
@@ -210,17 +169,13 @@ BEGIN
raise_application_error(-20003, 'bes_C_bes_SRTKENMERK_SYSTEEM');
END IF;
IF :NEW.bes_srtkenmerk_kenmerktype IN ('C', 'N', 'B') AND :NEW.bes_srtkenmerk_lengte IS NULL
IF (:NEW.bes_srtkenmerk_kenmerktype = 'C' OR :NEW.bes_srtkenmerk_kenmerktype = 'N')
AND :NEW.bes_srtkenmerk_lengte IS NULL
THEN
raise_application_error (-20000, 'bes_C_bes_SRTKENMERK_LENGTE');
END IF;
-- Numeriek mag niet te lang zijn (numeric overflow)
IF :new.bes_srtkenmerk_kenmerktype IN ('N', 'B') AND :new.bes_srtkenmerk_lengte > 20
THEN
:new.bes_srtkenmerk_lengte := 20;
END IF;
IF :NEW.bes_srtkenmerk_kenmerktype IN ('N', 'B') AND :OLD.bes_srtkenmerk_key IS NOT NULL
IF :NEW.bes_srtkenmerk_kenmerktype = 'N' AND :OLD.bes_srtkenmerk_key IS NOT NULL
THEN
IF :OLD.bes_srtkenmerk_nmin <> :NEW.bes_srtkenmerk_nmin
OR (:OLD.bes_srtkenmerk_nmin IS NULL AND :NEW.bes_srtkenmerk_nmin IS NOT NULL)
@@ -323,7 +278,7 @@ BEGIN
srtkenmerknmin bes_srtkenmerk.bes_srtkenmerk_nmin%TYPE;
srtkenmerknmax bes_srtkenmerk.bes_srtkenmerk_nmax%TYPE;
kenmerkverplicht bes_kenmerk.bes_kenmerk_verplicht%TYPE;
numberwaarde NUMBER (25,5);
numberwaarde NUMBER (15, 5);
formatmask VARCHAR2 (60);
kenmerkbestellingwaarde bes_kenmerkbestell.bes_kenmerkbestell_waarde%TYPE;
BEGIN
@@ -357,7 +312,7 @@ BEGIN
THEN
raise_application_error (-20004, 'bes_m241,' || srtkenmerkomschr || ',' || TO_CHAR (srtkenmerklengte));
END IF;
ELSIF srtkenmerktype IN ('N', 'B')
ELSIF srtkenmerktype = 'N'
THEN
-- NUMBER
-- Controleer of er een numerieke waarde ingevuld is.
@@ -438,7 +393,7 @@ BEGIN
srtkenmerknmin bes_srtkenmerk.bes_srtkenmerk_nmin%TYPE;
srtkenmerknmax bes_srtkenmerk.bes_srtkenmerk_nmax%TYPE;
kenmerkverplicht bes_kenmerk.bes_kenmerk_verplicht%TYPE;
numberwaarde NUMBER (25,5);
numberwaarde NUMBER (15, 5);
formatmask VARCHAR2 (60);
kenmerkbestelitemwaarde bes_kenmerkbesteli.bes_kenmerkbesteli_waarde%TYPE;
BEGIN
@@ -472,7 +427,7 @@ BEGIN
THEN
raise_application_error (-20004, 'bes_m241,' || srtkenmerkomschr || ',' || TO_CHAR (srtkenmerklengte));
END IF;
ELSIF srtkenmerktype IN ('N', 'B')
ELSIF srtkenmerktype = 'N'
THEN
-- NUMBER
-- Controleer of er een numerieke waarde ingevuld is.
@@ -605,6 +560,6 @@ BEGIN
END;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: BES_TRI.SRC $','$Revision$')
#endif // BES

View File

@@ -57,8 +57,6 @@ CREATE_VIEW(bes_v_qvw_algemeen, 0) (bes_bestelling_key,
afdeling_omschrijving,
alg_locatie_key,
locatie_code,
locatie_omschrijving,
locatie_plaats,
district_omschijving,
afleveradres,
mandaat,
@@ -66,7 +64,6 @@ CREATE_VIEW(bes_v_qvw_algemeen, 0) (bes_bestelling_key,
werkplek,
ins_discipline_key,
catalogus,
bes_srtgroep_key,
groep,
afleverdatum,
doorlooptijd_werkdgn,
@@ -80,40 +77,33 @@ CREATE_VIEW(bes_v_qvw_algemeen, 0) (bes_bestelling_key,
aantal,
itemprijs,
iteminkoopprijs,
bes_srtdeel_key,
productomschrijving,
itemposnr
)
AS
SELECT bes_bestelling_key, bestelaanvraagnr, besteldatum, besteller, invoerder, kostensoortgroep,kostensoort, kpn, kpn_omschrijving, prs_bedrijf_key,
afdeling_code, afdeling_omschrijving, alg_locatie_key, locatie_code, locatie_omschrijving, locatie_plaats, district_omschijving, afleveradres, mandaat,
personeelsnr, werkplek, ins_discipline_key, catalogus, bes_srtgroep_key, groep, afleverdatum, doorlooptijd_werkdgn, sla_tijd,
productcode, prijs, inkoopprijs, status, gefiatteerddoor, bestelopdrachtnummer, aantal, itemprijs, iteminkoopprijs, bes_srtdeel_key, productomschrijving, itemposnr
afdeling_code, afdeling_omschrijving, alg_locatie_key, locatie_code, district_omschijving, afleveradres, mandaat,
personeelsnr, werkplek, ins_discipline_key, catalogus, groep, afleverdatum, doorlooptijd_werkdgn, sla_tijd,
productcode, prijs, inkoopprijs, status, gefiatteerddoor, bestelopdrachtnummer, aantal, itemprijs, iteminkoopprijs, productomschrijving, itemposnr
FROM (SELECT b.bes_bestelling_key bes_bestelling_key, 'A-' || b.bes_bestelling_key bestelaanvraagnr,
TRUNC(b.bes_bestelling_datum) besteldatum,
TO_CHAR (b.bes_bestelling_datum, 'YYYY-MM-DD') besteldatum,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key) besteller,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = COALESCE(fac.gettrackinguserkey ('BESNEW', b.bes_bestelling_key), fac.gettrackinguserkey ('BESAP2', b.bes_bestelling_key))) invoerder,
(SELECT ksg.prs_kostensoortgrp_oms
FROM prs_kostensoortgrp ksg,
prs_kostensoort ks
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
AND ks.prs_kostensoort_key =
(SELECT MAX(COALESCE(bsg.prs_kostensoort_key, disc.prs_kostensoort_key))
FROM bes_discipline disc,
bes_srtgroep bsg
WHERE disc.ins_discipline_key = d.ins_discipline_key)) kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT MAX(COALESCE(bsg.prs_kostensoort_key, disc.prs_kostensoort_key))
FROM bes_discipline disc,
bes_srtgroep bsg
WHERE disc.ins_discipline_key = bsg.ins_discipline_key
AND disc.ins_discipline_key = d.ins_discipline_key)) kostensoort,
WHERE pf.prs_perslid_key = fac.gettrackinguserkey ('BESAP2', b.bes_bestelling_key)) invoerder,
(select ksg.prs_kostensoortgrp_oms
from prs_kostensoortgrp ksg, prs_kostensoort ks
where ksg.PRS_KOSTENSOORTGRP_KEY = ks.PRS_KOSTENSOORTGRP_KEY
and ks.PRS_KOSTENSOORT_KEY = (select disc.PRS_KOSTENSOORT_KEY
from bes_discipline disc
where disc.ins_DISCIPLINE_KEY = d.ins_discipline_key)) kostensoortgroep,
(select ks.prs_kostensoort_oms
from prs_kostensoort ks
where ks.PRS_KOSTENSOORT_KEY = (select disc.PRS_KOSTENSOORT_KEY
from bes_discipline disc
where disc.ins_DISCIPLINE_KEY = d.ins_discipline_key)) kostensoort,
k.prs_kostenplaats_nr kpn,
k.prs_kostenplaats_omschrijving kpn_omschrijving,
(SELECT prs_bedrijf_key
@@ -122,9 +112,9 @@ AS
a.prs_afdeling_naam afdeling_code,
a.prs_afdeling_omschrijving afdeling_omschrijving,
ma.alg_locatie_key alg_locatie_key,
l.alg_locatie_code locatie_code,
l.alg_locatie_omschrijving locatie_omschrijving,
l.alg_locatie_plaats locatie_plaats,
(SELECT alg_locatie_code
FROM alg_locatie l
WHERE l.alg_locatie_key = ma.alg_locatie_key) locatie_code,
(SELECT alg_district_omschrijving
FROM alg_locatie l, alg_district d
WHERE l.alg_district_key = d.alg_district_key
@@ -135,16 +125,16 @@ AS
prs_perslid_nr personeelsnr, wp2.prs_werkplek_aanduiding werkplek,
d.ins_discipline_key ins_discipline_key,
d.ins_discipline_omschrijving catalogus,
sg.bes_srtgroep_key bes_srtgroep_key,
sg.bes_srtgroep_omschrijving groep,
TRUNC(bes_bestelling_leverdatum) afleverdatum,
fac.count_work_days (b.bes_bestelling_datum, NVL (fac.gettrackingdate ('BESOTV', b.bes_bestelling_key), SYSDATE)) doorlooptijd_werkdgn,
TO_CHAR (b.bes_bestelling_leverdatum, 'YYYY-MM-DD') afleverdatum,
TO_CHAR (fac.count_work_days (b.bes_bestelling_datum, NVL (fac.gettrackingdate ('BESOTV', b.bes_bestelling_key), SYSDATE))
) doorlooptijd_werkdgn,
NVL ((SELECT bdp.bes_disc_params_leverdagen
FROM bes_disc_params bdp
WHERE d.ins_discipline_key = bdp.bes_ins_discipline_key), 0) sla_tijd,
sd.bes_srtdeel_nr productcode,
bi.bes_bestelling_item_prijs * bi.bes_bestelling_item_aantal prijs,
NVL(bes.getsrtdeelinkprijs(sd.bes_srtdeel_key, bes_bestelling_datum), bi.bes_bestelling_item_prijs) * bi.bes_bestelling_item_aantal inkoopprijs,
REPLACE (TO_CHAR (bi.bes_bestelling_item_prijs * bi.bes_bestelling_item_aantal, '9999990.99'), '.', ',') prijs,
REPLACE (TO_CHAR (NVL(bes.getsrtdeelinkprijs(sd.bes_srtdeel_key, bes_bestelling_datum), bi.bes_bestelling_item_prijs) * bi.bes_bestelling_item_aantal, '9999990.99'), '.', ',') inkoopprijs,
(SELECT bes_bestellingstatuses_omschr
FROM bes_bestellingstatuses bs
WHERE bs.bes_bestellingstatuses_key = b.bes_bestelling_status) status,
@@ -152,9 +142,8 @@ AS
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = b.bes_bestelling_fiat_user) gefiatteerddoor,
'O-' || bo.bes_bestelopdr_id bestelopdrachtnummer, bi.bes_bestelling_item_aantal aantal,
bi.bes_bestelling_item_prijs itemprijs,
NVL(bes.getsrtdeelinkprijs(sd.bes_srtdeel_key, bes_bestelling_datum), bi.bes_bestelling_item_prijs) iteminkoopprijs,
sd.bes_srtdeel_key bes_srtdeel_key,
REPLACE (TO_CHAR (bi.bes_bestelling_item_prijs, '9999990.99'), '.', ',') itemprijs,
REPLACE (TO_CHAR (NVL(bes.getsrtdeelinkprijs(sd.bes_srtdeel_key, bes_bestelling_datum), bi.bes_bestelling_item_prijs), '9999990.99'), '.', ',') iteminkoopprijs,
sd.bes_srtdeel_omschrijving productomschrijving,
boi.bes_bestelopdr_item_posnr itemposnr
FROM bes_bestelling b,
@@ -172,14 +161,12 @@ AS
bes_bestelopdr bo,
bes_srtdeel sd,
bes_srtgroep sg,
ins_tab_discipline d,
alg_locatie l
ins_tab_discipline d
WHERE b.prs_perslid_key = p.prs_perslid_key
AND b.prs_kostenplaats_key = k.prs_kostenplaats_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND b.mld_adres_key_lev = ma.mld_adres_key
AND wp2.prs_perslid_key(+) = p.prs_perslid_key
AND l.alg_locatie_key(+) = ma.alg_locatie_key
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key(+)
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
@@ -187,334 +174,7 @@ AS
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = d.ins_discipline_key);
CREATE_VIEW(bes_v_qvw_locale, 0)
(fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_tekst_nl, fac_locale_tekst_en, fac_locale_tekst_de, fac_locale_tekst_fr)
AS
WITH bqa AS (SELECT DISTINCT ins_discipline_key,
catalogus,
bes_srtgroep_key,
groep,
bes_srtdeel_key,
productomschrijving
FROM bes_v_qvw_algemeen)
SELECT DISTINCT bqa.ins_discipline_key,
'INS_DISCIPLINE_OMSCHRIJVING',
bqa.catalogus,
COALESCE (en.fac_locale_tekst, bqa.catalogus),
COALESCE (de.fac_locale_tekst, bqa.catalogus),
COALESCE (fr.fac_locale_tekst, bqa.catalogus)
FROM fac_locale en,
fac_locale de,
fac_locale fr,
bqa
WHERE bqa.ins_discipline_key = en.fac_locale_kolomkeyval(+)
AND en.fac_locale_kolomnaam(+) = 'INS_DISCIPLINE_OMSCHRIJVING'
AND en.fac_locale_lang(+) = 'EN'
AND bqa.ins_discipline_key = de.fac_locale_kolomkeyval(+)
AND de.fac_locale_kolomnaam(+) = 'INS_DISCIPLINE_OMSCHRIJVING'
AND de.fac_locale_lang(+) = 'DE'
AND bqa.ins_discipline_key = fr.fac_locale_kolomkeyval(+)
AND fr.fac_locale_kolomnaam(+) = 'INS_DISCIPLINE_OMSCHRIJVING'
AND fr.fac_locale_lang(+) = 'FR'
UNION ALL
SELECT DISTINCT bqa.bes_srtgroep_key,
'BES_SRTGROEP_OMSCHRIJVING',
bqa.groep,
COALESCE (en.fac_locale_tekst, bqa.groep),
COALESCE (de.fac_locale_tekst, bqa.groep),
COALESCE (fr.fac_locale_tekst, bqa.groep)
FROM fac_locale en,
fac_locale de,
fac_locale fr,
bqa
WHERE bqa.bes_srtgroep_key = en.fac_locale_kolomkeyval(+)
AND en.fac_locale_kolomnaam(+) = 'BES_SRTGROEP_OMSCHRIJVING'
AND en.fac_locale_lang(+) = 'EN'
AND bqa.bes_srtgroep_key = de.fac_locale_kolomkeyval(+)
AND de.fac_locale_kolomnaam(+) = 'BES_SRTGROEP_OMSCHRIJVING'
AND de.fac_locale_lang(+) = 'DE'
AND bqa.bes_srtgroep_key = fr.fac_locale_kolomkeyval(+)
AND fr.fac_locale_kolomnaam(+) = 'BES_SRTGROEP_OMSCHRIJVING'
AND fr.fac_locale_lang(+) = 'FR'
UNION ALL
SELECT DISTINCT bqa.bes_srtdeel_key,
'BES_SRTDEEL_OMSCHRIJVING',
bqa.productomschrijving,
COALESCE (en.fac_locale_tekst, bqa.productomschrijving),
COALESCE (de.fac_locale_tekst, bqa.productomschrijving),
COALESCE (fr.fac_locale_tekst, bqa.productomschrijving)
FROM fac_locale en,
fac_locale de,
fac_locale fr,
bqa
WHERE bqa.bes_srtdeel_key = en.fac_locale_kolomkeyval(+)
AND en.fac_locale_kolomnaam(+) = 'BES_SRTDEEL_OMSCHRIJVING'
AND en.fac_locale_lang(+) = 'EN'
AND bqa.bes_srtdeel_key = de.fac_locale_kolomkeyval(+)
AND de.fac_locale_kolomnaam(+) = 'BES_SRTDEEL_OMSCHRIJVING'
AND de.fac_locale_lang(+) = 'DE'
AND bqa.bes_srtdeel_key = fr.fac_locale_kolomkeyval(+)
AND fr.fac_locale_kolomnaam(+) = 'BES_SRTDEEL_OMSCHRIJVING'
AND fr.fac_locale_lang(+) = 'FR';
REGISTERRUN('$Workfile: BES_VIE.SRC $','$Revision$')
-- Vooralsnog placeholders, moeten aangepast worden
CREATE_VIEW(bes_v_api_bestellingen, 1) AS SELECT * from bes_bestelling;
CREATE_VIEW(bes_v_api_bestelopdrachten, 1) AS SELECT * from bes_bestelopdr;
/* ROOT VIEWS for User defined Reports (UDR) */
CREATE_VIEW(bes_v_udr_bestelling, 1)
(
bestelling_key,
bestelaanvraagnr,
besteldatum,
leverancier,
besteller,
invoerder,
kostensoortgroep,
kostensoort,
kpn,
kpn_omschrijving,
fclt_3d_afdeling_key,
afdeling_code,
afdeling_omschrijving,
fclt_3d_locatie_key,
locatie_code,
regio_omschrijving,
district_omschrijving,
afleveradres,
afleverplaats,
mandaat,
fclt_3d_discipline_key,
catalogus,
groep,
productomschrijving,
productcode,
afleverdatum,
doorlooptijd_werkdgn,
sla_tijd,
prijs,
inkoopprijs,
status,
gefiatteerddoor,
bestelopdrachtnummer,
aantal,
itemprijs,
iteminkoopprijs,
itemposnr
)
AS
SELECT bes_bestelling_key,
bestelaanvraagnr,
besteldatum,
bedrijf_naam,
besteller,
invoerder,
kostensoortgroep,
kostensoort,
kpn,
kpn_omschrijving,
prs_afdeling_key,
afdeling_code,
afdeling_omschrijving,
alg_locatie_key,
locatie_code,
regio_omschrijving,
district_omschijving,
afleveradres,
afleverplaats,
mandaat,
ins_discipline_key,
catalogus,
groep,
productomschrijving,
productcode,
afleverdatum,
doorlooptijd_werkdgn,
sla_tijd,
prijs,
inkoopprijs,
status,
gefiatteerddoor,
bestelopdrachtnummer,
aantal,
itemprijs,
iteminkoopprijs,
itemposnr
FROM (SELECT b.bes_bestelling_key bes_bestelling_key,
'A-' || b.bes_bestelling_key bestelaanvraagnr,
b.bes_bestelling_datum besteldatum,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key)
besteller,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key =
COALESCE (fac.gettrackinguserkey ('BESNEW', b.bes_bestelling_key),
fac.gettrackinguserkey ('BESAP2', b.bes_bestelling_key)))
invoerder,
(SELECT ksg.prs_kostensoortgrp_oms
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
AND ks.prs_kostensoort_key =
(SELECT MAX(COALESCE (bsg.prs_kostensoort_key,
disc.prs_kostensoort_key))
FROM bes_discipline disc, bes_srtgroep bsg
WHERE disc.ins_discipline_key = d.ins_discipline_key))
kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT MAX(COALESCE (bsg.prs_kostensoort_key,
disc.prs_kostensoort_key))
FROM bes_discipline disc, bes_srtgroep bsg
WHERE disc.ins_discipline_key = bsg.ins_discipline_key
AND disc.ins_discipline_key = d.ins_discipline_key))
kostensoort,
k.prs_kostenplaats_nr kpn,
k.prs_kostenplaats_omschrijving kpn_omschrijving,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = sd.prs_bedrijf_key)
bedrijf_naam,
a.prs_afdeling_key,
a.prs_afdeling_naam afdeling_code,
a.prs_afdeling_omschrijving afdeling_omschrijving,
ma.alg_locatie_key alg_locatie_key,
(SELECT alg_locatie_code
FROM alg_locatie l
WHERE l.alg_locatie_key = ma.alg_locatie_key)
locatie_code,
(SELECT alg_regio_omschrijving
FROM alg_locatie l, alg_district d, alg_regio r
WHERE r.alg_regio_key = d.alg_regio_key
AND l.alg_district_key = d.alg_district_key
AND l.alg_locatie_key = ma.alg_locatie_key)
regio_omschrijving,
(SELECT alg_district_omschrijving
FROM alg_locatie l, alg_district d
WHERE l.alg_district_key = d.alg_district_key
AND l.alg_locatie_key = ma.alg_locatie_key)
district_omschijving,
ma.mld_adres_naam afleveradres,
b.bes_bestelling_plaats afleverplaats,
NVL ( (SELECT pr.fac_profiel_limiet
FROM fac_profiel pr
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0)
mandaat,
d.ins_discipline_key ins_discipline_key,
d.ins_discipline_omschrijving catalogus,
sg.bes_srtgroep_omschrijving groep,
b.bes_bestelling_leverdatum afleverdatum,
fac.count_work_days (
b.bes_bestelling_datum,
NVL (fac.gettrackingdate ('BESOTV', b.bes_bestelling_key), SYSDATE))
doorlooptijd_werkdgn,
NVL ( (SELECT bdp.bes_disc_params_leverdagen
FROM bes_disc_params bdp
WHERE d.ins_discipline_key = bdp.bes_ins_discipline_key), 0)
sla_tijd,
sd.bes_srtdeel_nr productcode,
bi.bes_bestelling_item_prijs * bi.bes_bestelling_item_aantal prijs,
NVL (bes.getsrtdeelinkprijs (sd.bes_srtdeel_key, bes_bestelling_datum),
bi.bes_bestelling_item_prijs)
* bi.bes_bestelling_item_aantal
inkoopprijs,
(SELECT bes_bestellingstatuses_omschr
FROM bes_bestellingstatuses bs
WHERE bs.bes_bestellingstatuses_key = b.bes_bestelling_status)
status,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = b.bes_bestelling_fiat_user)
gefiatteerddoor,
'O-' || bo.bes_bestelopdr_id bestelopdrachtnummer,
bi.bes_bestelling_item_aantal aantal,
bi.bes_bestelling_item_prijs itemprijs,
NVL (bes.getsrtdeelinkprijs (sd.bes_srtdeel_key, bes_bestelling_datum),
bi.bes_bestelling_item_prijs)
iteminkoopprijs,
sd.bes_srtdeel_omschrijving productomschrijving,
boi.bes_bestelopdr_item_posnr itemposnr
FROM bes_bestelling b,
prs_perslid p,
prs_kostenplaats k,
prs_afdeling a,
mld_adres ma,
bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_bestelopdr bo,
bes_srtdeel sd,
bes_srtgroep sg,
ins_tab_discipline d
WHERE b.prs_perslid_key = p.prs_perslid_key
AND b.prs_kostenplaats_key = k.prs_kostenplaats_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND b.mld_adres_key_lev = ma.mld_adres_key
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key(+)
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = d.ins_discipline_key);
CREATE_VIEW(bes_v_allsrtinstallatie, 0)
(
NIVEAU,
BES_SRTINSTALLATIE_KEY,
DISCIPLINE_OMS,
SRTGROEP_OMS,
SRTDEEL_OMS,
BES_DISCIPLINE_KEY,
BES_SRTGROEP_KEY,
BES_SRTDEEL_KEY,
BES_DISCIPLINE_VERWIJDER,
BES_SRTGROEP_VERWIJDER,
BES_SRTDEEL_VERWIJDER
)
AS
SELECT 'D',
bes_ID.ins_discipline_key,
bes_ID.ins_discipline_omschrijving discipline_oms,
NULL srtgroep_oms,
NULL srtdeel_oms,
bes_ID.ins_discipline_key,
NULL bes_srtgroep_key,
NULL bes_srtdeel_key,
bes_ID.ins_discipline_verwijder bes_discipline_verwijder,
NULL bes_srtgroep_verwijder,
NULL bes_srtdeel_verwijder
FROM bes_discipline bes_ID
UNION
SELECT 'G',
bes_SG.bes_srtgroep_key,
bes_ID.ins_discipline_omschrijving,
bes_SG.bes_srtgroep_omschrijving,
NULL srtdeel_oms,
bes_ID.ins_discipline_key,
bes_SG.bes_srtgroep_key,
NULL bes_srtdeel_key,
bes_ID.ins_discipline_verwijder bes_discipline_verwijder,
bes_SG.bes_srtgroep_verwijder,
NULL bes_srtdeel_verwijder
FROM bes_discipline bes_ID, bes_srtgroep bes_SG
WHERE bes_ID.ins_discipline_key = bes_SG.ins_discipline_key
UNION
SELECT 'S',
bes_SD.bes_srtdeel_key,
bes_ID.ins_discipline_omschrijving,
bes_SG.bes_srtgroep_omschrijving,
bes_SD.bes_srtdeel_omschrijving,
bes_ID.ins_discipline_key,
bes_SG.bes_srtgroep_key,
bes_SD.bes_srtdeel_key,
bes_ID.ins_discipline_verwijder bes_discipline_verwijder,
bes_SG.bes_srtgroep_verwijder,
bes_SD.bes_srtdeel_verwijder
FROM bes_discipline bes_ID, bes_srtgroep bes_SG, bes_srtdeel bes_SD
WHERE bes_SG.bes_srtgroep_key = bes_SD.bes_srtgroep_key
AND bes_ID.ins_discipline_key = bes_SG.ins_discipline_key;
REGISTERRUN('$Id$')
#endif // BES

View File

@@ -1,18 +1,17 @@
#ifdef BEZ // 03-11-2000 PF
/*
/*
* $Revision$
* $Id$
*/
create index bez_res_rsv_ruimte_key1 on bez_afspraak(res_rsv_ruimte_key);
create index bez_i_bez_afspraak_bez1 on bez_afspraak (bez_afspraak_contact_key);
create index bez_i_bez_afspraak_bez2 on bez_afspraak (bez_afspraak_host_key);
create index bez_i_bez_afspraak_bez3 on bez_afspraak (prs_perslid_key);
create index bez_i_bez_afspraak_bez4 on bez_afspraak (bez_afspraak_datum);
CREATE INDEX bez_i_bez_afspraak_bez5 ON bez_afspraak(bez_afspraak_contact_key, bez_afspraak_datum);
CREATE INDEX bez_i_bez_afspraak_bez6 ON bez_afspraak(bez_afspraak_host_key, bez_afspraak_datum);
CREATE INDEX bez_i_bez_afspraak_bez7 ON bez_afspraak(alg_locatie_key);
create index bez_i_bez_afspraak_bez4 on bez_afspraak (bez_afspraak_datum);
create index bez_i_bez_bezoeker_afsp on bez_bezoekers (bez_afspraak_key);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: BEZ_IND.SRC $','$Revision$')
#endif // BEZ

View File

@@ -3,7 +3,7 @@
* $Id$
*/
_FAC_MODULE('BEZ','lcl_module_BEZ')
_FAC_MODULE('BEZ','Bezoekersregistratie')
INSERT INTO bez_actie (bez_actie_omschrijving) VALUES ('Onbekend');
INSERT INTO bez_actie (bez_actie_omschrijving) VALUES ('Ontvanger bellen');
@@ -11,6 +11,6 @@ INSERT INTO bez_actie (bez_actie_omschrijving) VALUES ('Begeleiden naar ontvange
INSERT INTO bez_actie (bez_actie_omschrijving) VALUES ('Verwijzen naar ontvanger');
INSERT INTO bez_actie (bez_actie_omschrijving) VALUES ('Op laten halen (bellen)');
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: BEZ_INI.SRC $','$Revision$')
#endif // BEZ

View File

@@ -6,12 +6,10 @@
*/
CREATE OR REPLACE PACKAGE bez AS
PROCEDURE copy_afspraak (pkey IN NUMBER, newdate IN DATE, puserkey IN NUMBER, prsvkey_to IN NUMBER);
PROCEDURE copy_afspraak (pkey IN NUMBER, newdate IN DATE, puserkey IN NUMBER, prsvkey_to IN NUMBER, newafspraakkey OUT NUMBER);
PROCEDURE sync_resafspraak (presvruimtevan IN NUMBER, presvruimtenaar IN NUMBER);
PROCEDURE claim_parking (pbez_bezoekers_key IN NUMBER, palg_gebter_key IN NUMBER);
FUNCTION hasparking (pbez_bezoekers_key IN NUMBER) RETURN NUMBER;
FUNCTION afssprintf (ps IN VARCHAR2 , p_afspraak_key IN NUMBER) RETURN VARCHAR2 ;
FUNCTION bzksprintf (ps IN VARCHAR2 , p_bezoekers_key IN NUMBER) RETURN VARCHAR2 ;
FUNCTION sprintf (ps IN VARCHAR2 , p_afspraak_key IN NUMBER) RETURN VARCHAR2 ;
END bez;
/
@@ -20,13 +18,6 @@ CREATE OR REPLACE PACKAGE BODY bez AS
PROCEDURE copy_afspraak (pkey IN NUMBER, newdate IN DATE, puserkey IN NUMBER, prsvkey_to IN NUMBER)
AS
newafspraakkey bez_afspraak.bez_afspraak_key%TYPE;
BEGIN
copy_afspraak (pkey, newdate, puserkey, prsvkey_to, newafspraakkey);
END;
-- Variant waarbij je newafspraakkey terug krijgt
PROCEDURE copy_afspraak (pkey IN NUMBER, newdate IN DATE, puserkey IN NUMBER, prsvkey_to IN NUMBER, newafspraakkey OUT NUMBER)
AS
newbezoekerskey bez_bezoekers.bez_bezoekers_key%TYPE;
hasparking NUMBER;
nieuwvan DATE;
@@ -37,12 +28,8 @@ CREATE OR REPLACE PACKAGE BODY bez AS
SELECT bez_bezoekers_key,
bez_afspraak_naam,
bez_afspraak_bedrijf,
bez_bezoekers_opmerking,
bez_bezoekers_telefoon,
bez_bezoekers_email,
bez_bezoekers_kenteken,
prs_contactpersoon_key,
prs_perslid_key
bez_afspraak_opmerking,
prs_contactpersoon_key
FROM bez_bezoekers
WHERE bez_afspraak_key = pkey;
BEGIN
@@ -66,23 +53,13 @@ CREATE OR REPLACE PACKAGE BODY bez AS
SELECT bez_s_bez_afspraak_key.NEXTVAL INTO newafspraakkey FROM DUAL;
INSERT INTO bez_afspraak (bez_afspraak_key,
prs_perslid_key,
bez_afspraak_host_key,
bez_afspraak_contact_key,
bez_afspraak_gastheer,
bez_afspraak_telefoonnr,
bez_afspraak_datum, bez_actie_key,
alg_locatie_key, res_rsv_ruimte_key,
alg_onrgoed_keys, bez_afspraak_ruimte,
bez_afspraak_opmerking, bez_afspraak_eind
INSERT INTO bez_afspraak (bez_afspraak_key, prs_perslid_key, bez_afspraak_host_key, bez_afspraak_contact_key, bez_afspraak_gastheer, bez_afspraak_datum, bez_actie_key, alg_locatie_key, res_rsv_ruimte_key, alg_onrgoed_keys, bez_afspraak_ruimte, bez_afspraak_opmerking, bez_afspraak_eind
)
SELECT newafspraakkey,
puserkey,
a.bez_afspraak_host_key,
a.bez_afspraak_contact_key,
a.bez_afspraak_gastheer,
a.bez_afspraak_telefoonnr,
nieuwvan,
a.bez_actie_key,
a.alg_locatie_key,
@@ -94,7 +71,7 @@ CREATE OR REPLACE PACKAGE BODY bez AS
FROM bez_afspraak a
WHERE a.bez_afspraak_key = pkey;
-- Er zijn geen flexkenmerken in het spel voor afspraak
-- Er zijn geen flexkenmerken in het spel
FOR b IN bezoekers
LOOP
SELECT bez_s_bez_bezoekers_key.NEXTVAL INTO newbezoekerskey FROM DUAL;
@@ -104,24 +81,16 @@ CREATE OR REPLACE PACKAGE BODY bez AS
bez_afspraak_key,
bez_afspraak_naam,
bez_afspraak_bedrijf,
bez_bezoekers_opmerking,
bez_bezoekers_telefoon,
bez_bezoekers_email,
bez_bezoekers_kenteken,
prs_contactpersoon_key,
prs_perslid_key
bez_afspraak_opmerking,
prs_contactpersoon_key
)
VALUES (
newbezoekerskey,
newafspraakkey,
b.bez_afspraak_naam,
b.bez_afspraak_bedrijf,
b.bez_bezoekers_opmerking,
b.bez_bezoekers_telefoon,
b.bez_bezoekers_email,
b.bez_bezoekers_kenteken,
b.prs_contactpersoon_key,
b.prs_perslid_key
b.bez_afspraak_opmerking,
b.prs_contactpersoon_key
);
-- Als de bron een P had, dan de bestemming ook
@@ -133,24 +102,6 @@ CREATE OR REPLACE PACKAGE BODY bez AS
-- Eventueel: controleren of de nieuwe nu ook een P heeft,
-- en zo niet dat dan tracken; goed doordenken!
END IF;
-- Kopieer de flexkenmerken van de bezoekers
-- Do not copy backoffice characteristics (> 900)
INSERT INTO bez_kenmerkwaarde
( bez_bezoekers_key,
bez_kenmerk_key,
bez_kenmerkwaarde_waarde
)
SELECT newbezoekerskey,
w.bez_kenmerk_key,
w.bez_kenmerkwaarde_waarde
FROM bez_kenmerkwaarde w,
bez_kenmerk k
WHERE w.bez_kenmerk_key = k.bez_kenmerk_key
AND w.bez_bezoekers_key = b.bez_bezoekers_key
AND k.bez_kenmerk_volgnr <= 900
AND w.bez_kenmerkwaarde_verwijder IS NULL;
END LOOP;
fac.trackaction ('BEZMUT', newafspraakkey, puserkey, NULL, NULL);
@@ -213,7 +164,6 @@ CREATE OR REPLACE PACKAGE BODY bez AS
talgruimte res_rsv_ruimte.alg_ruimte_key%TYPE;
lparkeerkey res_deel.res_deel_key%TYPE;
bez_parkingdiscipline_key NUMBER;
lpreposttime NUMBER(5,4); -- we gaan nog delen door 24, res_disc_params.res_disc_params_preposttime%TYPE is dan te klein;
BEGIN
-- Claim een (nieuwe) parkeerplaats voor de gegeven bezoeker
-- Reserveer voor de tijden van de bijbehorende afspraak cq. res_rsv_ruimte
@@ -242,21 +192,11 @@ CREATE OR REPLACE PACKAGE BODY bez AS
IF ldeelreskey IS NOT NULL
THEN
-- Zoek de noodzakelijke gegevens op
SELECT r.res_ruimte_opstel_key, r.alg_ruimte_key
INTO topstel, talgruimte
SELECT r.res_rsv_ruimte_van, r.res_rsv_ruimte_tot, r.res_ruimte_opstel_key, r.alg_ruimte_key
INTO lbegin, leinde, topstel, talgruimte
FROM res_rsv_ruimte r
WHERE res_rsv_ruimte_key = ldeelreskey;
-- Begin- en eindtijd zouden al bekend moeten zijn via afspraak (zal eigenlijk altijd gevuld zijn)
-- Zo niet, dan nog ophalen uit rsv_ruimte
IF lbegin IS NULL OR leinde IS NULL
THEN
SELECT r.res_rsv_ruimte_van, r.res_rsv_ruimte_tot
INTO lbegin, leinde
FROM res_rsv_ruimte r
WHERE res_rsv_ruimte_key = ldeelreskey;
END IF;
IF talgruimte IS NOT NULL
THEN
SELECT g.alg_locatie_key
@@ -271,23 +211,15 @@ CREATE OR REPLACE PACKAGE BODY bez AS
FROM res_ruimte_opstelling ro, res_alg_ruimte rag, alg_ruimte r, alg_verdieping v, alg_gebouw g
WHERE ro.res_ruimte_key = rag.res_ruimte_key
AND rag.alg_ruimte_key = r.alg_ruimte_key
AND res_alg_ruimte_verwijder IS NULL
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND ro.res_ruimte_opstel_key = topstel;
END IF;
END IF;
-- ik weet genoeg, behalve: de discipline_key van parkeerplaatsen en de pre/post tijden van deze discipline!
bez_parkingdiscipline_key := fac.safe_to_number (fac.getsetting ('vis_parking_key'));
SELECT COALESCE(rdp.res_disc_params_preposttime, 0) / 24
INTO lpreposttime
FROM res_disc_params rdp
WHERE rdp.res_ins_discipline_key = bez_parkingdiscipline_key;
-- lpreposttime is nu in dagen (in uren / 24 = in dagen).
-- In de query wordt rekening gehouden met 1 minuut marge voor afrondfouten (+/- 1 / 1440).
-- ik weet genoeg, behalve: de discipline_key van parkeerplaatsen!
bez_parkingdiscipline_key := fac.safe_to_number (fac.getsetting ('vis_parking_key'));
-- Heb ik een gebouwkey of terreinkey meegekregen?
IF palg_gebter_key IS NULL
THEN
@@ -298,27 +230,16 @@ CREATE OR REPLACE PACKAGE BODY bez AS
(SELECT MIN (rd.res_deel_key)
FROM res_v_aanwezigrsv_deel rd
WHERE d.res_deel_key = rd.res_deel_key
AND rd.res_rsv_deel_van BETWEEN TRUNC (lbegin) AND leinde - 1 / 1440 + lpreposttime
AND rd.res_rsv_deel_tot BETWEEN lbegin + 1 / 1440 - lpreposttime AND TRUNC (lbegin) + 1
AND rd.res_rsv_deel_van < leinde - 1 / 1440 + lpreposttime
AND rd.res_rsv_deel_tot > lbegin + 1 / 1440 - lpreposttime
AND rd.res_rsv_deel_van BETWEEN TRUNC (lbegin) AND leinde - 1 / 1440
AND rd.res_rsv_deel_tot BETWEEN lbegin + 1 / 1440 AND TRUNC (lbegin) + 1
AND rd.res_rsv_deel_van < leinde - 1 / 1440
AND rd.res_rsv_deel_tot > lbegin + 1 / 1440
AND d.res_discipline_key = bez_parkingdiscipline_key)
aantal
FROM res_v_aanwezigdeel d, ins_deel id, alg_v_aanwezigterreinsector t
FROM res_v_aanwezigdeel d, ins_deel id
WHERE d.res_ins_deel_key = id.ins_deel_key
AND id.ins_alg_locatie_key = llocatiekey
AND d.res_discipline_key = bez_parkingdiscipline_key
AND id.ins_alg_ruimte_key = t.alg_terreinsector_key(+)
-- outer join mag hier niet en dit filter is niet nodig? AND id.ins_alg_ruimte_type = 'T'(+)
AND t.prs_afdeling_key IS NULL -- Alleen 'gewone' parkeerplaatsen
-- Is de parkeerplaats reserveerbaar op de begindag. Meerdaagse parkeerplaatsen worden niet ondersteund.
-- (bits & (2^(dow-1))) = (2^(dow-1))
AND BITAND(d.res_deel_beschikbaar_bits,
POWER(2,
(fac.getweekdaynum(TRUNC(lbegin)) - 1))) =
POWER(2, (fac.getweekdaynum(TRUNC (lbegin)) - 1))
AND ( d.res_deel_vervaldatum IS NULL
OR d.res_deel_vervaldatum > lbegin)
ORDER BY id.ins_deel_upper)
WHERE aantal IS NULL;
ELSE
@@ -330,10 +251,10 @@ CREATE OR REPLACE PACKAGE BODY bez AS
(SELECT MIN (rd.res_deel_key)
FROM res_v_aanwezigrsv_deel rd
WHERE d.res_deel_key = rd.res_deel_key
AND rd.res_rsv_deel_van BETWEEN TRUNC (lbegin) AND leinde - 1 / 1440 + lpreposttime
AND rd.res_rsv_deel_tot BETWEEN lbegin + 1 / 1440 - lpreposttime AND TRUNC (lbegin) + 1
AND rd.res_rsv_deel_van < leinde - 1 / 1440 + lpreposttime
AND rd.res_rsv_deel_tot > lbegin + 1 / 1440 - lpreposttime
AND rd.res_rsv_deel_van BETWEEN TRUNC (lbegin) AND leinde - 1 / 1440
AND rd.res_rsv_deel_tot BETWEEN lbegin + 1 / 1440 AND TRUNC (lbegin) + 1
AND rd.res_rsv_deel_van < leinde - 1 / 1440
AND rd.res_rsv_deel_tot > lbegin + 1 / 1440
AND d.res_discipline_key = bez_parkingdiscipline_key)
aantal
FROM res_v_aanwezigdeel d, ins_deel id, alg_v_allonroerendgoed og
@@ -343,16 +264,8 @@ CREATE OR REPLACE PACKAGE BODY bez AS
AND (id.ins_alg_ruimte_key = og.alg_ruimte_key
OR id.ins_alg_ruimte_key = og.alg_terreinsector_key)
AND (og.alg_gebouw_key = palg_gebter_key
OR og.alg_terreinsector_key = palg_gebter_key)
OR og.alg_terreinsector_key = palg_gebter_key)
AND id.ins_alg_ruimte_type IN ('R', 'T')
-- Is de parkeerplaats reserveerbaar op de begindag. Meerdaagse parkeerplaatsen worden niet ondersteund.
-- (bits & (2^(dow-1))) = (2^(dow-1))
AND BITAND(d.res_deel_beschikbaar_bits,
POWER(2,
(fac.getweekdaynum(TRUNC(lbegin)) - 1))) =
POWER(2, (fac.getweekdaynum(TRUNC (lbegin)) - 1))
AND ( d.res_deel_vervaldatum IS NULL
OR d.res_deel_vervaldatum > lbegin)
ORDER BY id.ins_deel_upper)
WHERE aantal IS NULL;
END IF;
@@ -390,7 +303,7 @@ CREATE OR REPLACE PACKAGE BODY bez AS
END;
FUNCTION afssprintf (ps IN VARCHAR2, p_afspraak_key IN NUMBER) RETURN VARCHAR2 IS
FUNCTION sprintf (ps IN VARCHAR2, p_afspraak_key IN NUMBER) RETURN VARCHAR2 IS
lafspraak_datum bez_afspraak.bez_afspraak_datum%TYPE;
lbezoek VARCHAR2 (200);
s varchar2 (2048 CHAR);
@@ -398,7 +311,7 @@ CREATE OR REPLACE PACKAGE BODY bez AS
s := ps;
-- We support substitution of placeholders in the messages
-- ##KEY## afspraaknummer
-- ##NAAM## volledige naam van de (eerst opgeslagen) bezoeker
-- ##NAAM## volledige naam van de bezoeker
IF INSTR (s, '#') > 0
THEN
SELECT bez_afspraak_datum
@@ -413,52 +326,17 @@ CREATE OR REPLACE PACKAGE BODY bez AS
GROUP BY bez_afspraak_key;
s :=
REPLACE (REPLACE (REPLACE (s, '##NAAM##', lbezoek), '##KEY##', TO_CHAR (p_afspraak_key)),
REPLACE (REPLACE (REPLACE (s, '##NAAM##', lbezoek), '##KEY##', NUMBER_TO_CHAR (p_afspraak_key)),
'##DATUM##',
TO_CHAR (lafspraak_datum, 'DD-MM-YY HH24:MI')
DATE_TO_CHAR (lafspraak_datum, 'DD-MM-YY HH24:MI')
);
END IF;
RETURN s;
END;
FUNCTION bzksprintf (ps IN VARCHAR2 , p_bezoekers_key IN NUMBER) RETURN VARCHAR2 IS
lafspraak_datum bez_afspraak.bez_afspraak_datum%TYPE;
lafspraak_key bez_afspraak.bez_afspraak_key%TYPE;
lbezoek bez_bezoekers.bez_afspraak_naam%TYPE;
lbedrijf bez_bezoekers.bez_afspraak_bedrijf%TYPE;
lbadgenr bez_bezoekers.bez_bezoekers_pasnr%TYPE;
s varchar2 (2048 CHAR);
BEGIN
s := ps;
-- We support substitution of placeholders in the messages
-- ##KEY## afspraaknummer
-- ##NAAM## volledige naam van de bezoeker
-- ##BEDRIJF## naam van het bedrijf van de bezoeker
-- ##PASNR## pasnr (badgenr)
IF INSTR (s, '#') > 0
THEN
SELECT a.bez_afspraak_datum, b.bez_afspraak_key, b.bez_afspraak_naam, b.bez_afspraak_bedrijf, b.bez_bezoekers_pasnr
INTO lafspraak_datum, lafspraak_key, lbezoek, lbedrijf, lbadgenr
FROM bez_afspraak a, bez_bezoekers b
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND bez_bezoekers_key = p_bezoekers_key;
s :=
REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (s, '##NAAM##', lbezoek), '##KEY##', TO_CHAR (lafspraak_key)),
'##DATUM##',
TO_CHAR (lafspraak_datum, 'DD-MM-YY HH24:MI')
), '##BEDRIJF##', lbedrijf), '##PASNR##', lbadgenr);
END IF;
RETURN s;
END;
END bez;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: BEZ_PAC.SRC $','$Revision$')
#endif // BEZ

View File

@@ -10,6 +10,6 @@ CREATE SEQUENCE bez_s_bez_actie_key MINVALUE 1;
CREATE SEQUENCE bez_s_bez_kenmerk_key MINVALUE 1000;
CREATE SEQUENCE bez_s_bez_kenmerkwaarde_key MINVALUE 1;
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: BEZ_SEQ.SRC $','$Revision$')
#endif // BEZ

View File

@@ -11,19 +11,10 @@ CREATE_TABLE(bez_actie,0)
PRIMARY KEY,
bez_actie_omschrijving
VARCHAR2(64),
bez_actie_default
NUMBER(1),
bez_actie_flags
NUMBER(3) DEFAULT 0 NOT NULL, -- 0x001=oproepen, 0x002=autobadge
bez_actie_verwijder
DATE
);
ALTER TABLE res_ruimte
ADD bez_actie_key
NUMBER(10)
REFERENCES bez_actie(bez_actie_key);
CREATE_TABLE(bez_afspraak,0)
(
bez_afspraak_key
@@ -61,10 +52,7 @@ CREATE_TABLE(bez_afspraak,0)
bez_afspraak_opmerking
VARCHAR2(320),
bez_afspraak_eind
DATE,
bez_afspraak_aanmaak
DATE
DEFAULT SYSDATE NOT NULL
);
CREATE_TABLE(bez_bezoekers,0)
@@ -87,27 +75,12 @@ CREATE_TABLE(bez_bezoekers,0)
CONSTRAINT bez_r_prs_perslid REFERENCES prs_perslid(prs_perslid_key),
bez_bezoekers_pasnr
VARCHAR2(30),
bez_bezoekers_opmerking
VARCHAR2(50),
bez_afspraak_opmerking
VARCHAR2(50),
bez_bezoekers_done
DATE,
bez_bezoekers_out
DATE,
bez_bezoekers_oproep
DATE,
bez_bezoekers_flags -- documentatie in appl/bez/xxx.inc
NUMBER(10)
DEFAULT 0 NOT NULL,
bez_bezoekers_flag
NUMBER(1),
bez_bezoekers_aanmaak
DATE
DEFAULT SYSDATE NOT NULL,
bez_bezoekers_telefoon VARCHAR2(20),
bez_bezoekers_email VARCHAR2(200),
bez_bezoekers_kenteken VARCHAR2(10)
);
@@ -125,7 +98,6 @@ CREATE_TABLE(bez_kenmerk,0)
CONSTRAINT bez_k_bez_kenmerk_key PRIMARY KEY
,bez_kenmerk_volgnr
NUMBER(3)
NOT NULL
,bez_kenmerk_omschrijving
VARCHAR2(50)
,bez_kenmerk_upper
@@ -133,18 +105,15 @@ CREATE_TABLE(bez_kenmerk,0)
,bez_kenmerk_hint
VARCHAR2(255)
,bez_kenmerk_default
VARCHAR2(4000)
,bez_kenmerk_show_expr
VARCHAR2(4000)
VARCHAR2(255)
,bez_kenmerk_dimensie
VARCHAR2(10)
,bez_kenmerk_kenmerktype
VARCHAR2(1)
CONSTRAINT bez_c_bez_kenmerk_type2 CHECK
(bez_kenmerk_kenmerktype IN ('C','N','D','T','R','X','L','Q','F','M','E','S','l','B','V'))
,bez_kenmerk_systeem -- &1 = systeemkm, &2 = primary, show in list
NUMBER(2)
DEFAULT 0 NOT NULL
(bez_kenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l'))
,bez_kenmerk_systeem
NUMBER(1)
,bez_kenmerk_toonbaar
NUMBER(1)
,bez_kenmerk_uniek
@@ -153,9 +122,6 @@ CREATE_TABLE(bez_kenmerk,0)
VARCHAR2(255)
,bez_kenmerk_verplicht
NUMBER(1)
,bez_kenmerk_groep
NUMBER(1)
DEFAULT 0 NOT NULL
,bez_kenmerk_lengte
NUMBER(4)
,bez_kenmerk_dec
@@ -200,6 +166,6 @@ CREATE_TABLE(bez_kenmerkwaarde,0)
CONSTRAINT bez_u_bez_kenmerkwaarde_key UNIQUE(bez_bezoekers_key, bez_kenmerk_key)
);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: BEZ_TAB.SRC $','$Revision$')
#endif // BEZ

View File

@@ -17,21 +17,7 @@ BEGIN
END IF;
IF :new.bez_afspraak_host_key IS NULL AND :new.bez_afspraak_gastheer IS NULL THEN
BEGIN
IF fac.getsetting ('vis_afspraak_host_uses_keys') = 1 THEN
:new.bez_afspraak_host_key := :new.bez_afspraak_contact_key;
ELSE
BEGIN
SELECT SUBSTR(prs_perslid_naam_full,1,50)
INTO :new.bez_afspraak_gastheer
FROM prs_v_perslid_fullnames_all
WHERE prs_perslid_key=:new.bez_afspraak_contact_key;
EXCEPTION
WHEN OTHERS THEN
:new.bez_afspraak_gastheer := '*';
END;
END IF;
END;
:new.bez_afspraak_host_key := :new.bez_afspraak_contact_key;
END IF;
IF :new.bez_afspraak_host_key IS NOT NULL THEN
SELECT SUBSTR(prs_perslid_naam_full,1,50)
@@ -58,7 +44,7 @@ CREATE_TRIGGER(bez_t_bez_afspraak_d)
ON bez_afspraak
FOR EACH ROW
BEGIN
DELETE FROM bez_bezoekers WHERE bez_afspraak_key = :OLD.bez_afspraak_key;
DELETE FROM bez_bezoekers WHERE bez_afspraak_key=:OLD.bez_afspraak_key;
END;
/
@@ -83,24 +69,13 @@ CREATE_TRIGGER(bez_t_notificatie_afspraak_d)
ON bez_afspraak
FOR EACH ROW
BEGIN
-- Alle notificaties verwijderen van de "afspraak" xmlnode die behoren bij de verwijderde afspraak.
fac.clrnotifications_xmlnode('afspraak', :OLD.bez_afspraak_key);
-- Tracking verwijderen die niet weg gaat als de afspraak wordt verwijderd.
fac.clrtracking_xmlnode('afspraak', :OLD.bez_afspraak_key);
fac.clrnotifications('BEZ%', :OLD.bez_afspraak_key);
END;
/
CREATE_TRIGGER(bez_t_notificatie_bezoekers_d)
AFTER DELETE
ON bez_bezoekers
FOR EACH ROW
BEGIN
-- Alle notificaties verwijderen van de "bezoeker" xmlnode die behoren bij de verwijderde bezoeker.
fac.clrnotifications_xmlnode('bezoeker', :OLD.bez_bezoekers_key);
-- Tracking verwijderen die niet weg gaat als de bezoeker wordt verwijderd.
fac.clrtracking_xmlnode('bezoeker', :OLD.bez_bezoekers_key);
END;
/
CREATE_TRIGGER(bez_t_bez_kenmerk_b_iu)
BEFORE INSERT OR UPDATE ON bez_kenmerk
@@ -119,11 +94,6 @@ BEGIN
THEN
APPLICATION_ERROR(-20000, 'ALG_C_ALG_KENMERK_LENGTE');
END IF;
IF :new.bez_kenmerk_kenmerktype = 'N'
AND :new.bez_kenmerk_lengte > 20
THEN
:new.bez_kenmerk_lengte := 20;
END IF;
IF :new.bez_kenmerk_kenmerktype = 'N' AND :old.bez_kenmerk_key IS NOT NULL
THEN
@@ -196,7 +166,7 @@ BEGIN
KenmerkDec bez_kenmerk.bez_kenmerk_dec%TYPE;
KenmerkNMin bez_kenmerk.bez_kenmerk_nmin%TYPE;
KenmerkNMax bez_kenmerk.bez_kenmerk_nmax%TYPE;
NumberWaarde NUMBER(25,5);
NumberWaarde NUMBER(15,5);
FormatMask VARCHAR2(60);
KenmerkWaarde bez_kenmerkwaarde.bez_kenmerkwaarde_waarde%TYPE;
BEGIN
@@ -309,6 +279,6 @@ BEGIN
END;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: BEZ_TRI.SRC $','$Revision$')
#endif // BEZ

View File

@@ -4,290 +4,6 @@
* $Id$
*/
CREATE_VIEW(bez_v_api_afspraken, 1) AS
SELECT a.bez_afspraak_key,
a.prs_perslid_key,
p1.prs_perslid_naam_full bez_afspraak_host,
p2.prs_perslid_naam_full bez_afspraak_contact,
a.bez_afspraak_datum,
a.bez_actie_key,
og.alg_onroerendgoed_code,
og.alg_onroerendgoed_omschrijving,
a.bez_afspraak_ruimte,
a.bez_afspraak_opmerking,
a.bez_afspraak_eind,
b.bez_bezoekers_key,
b.bez_afspraak_naam bezoeker_naam,
b.bez_afspraak_bedrijf bezoeker_bedrijf,
b.bez_bezoekers_opmerking bezoeker_opmerking,
b.bez_bezoekers_done,
b.bez_bezoekers_out,
b.bez_bezoekers_pasnr
FROM bez_afspraak a,
bez_bezoekers b,
prs_v_perslid_fullnames_all p1,
prs_v_perslid_fullnames_all p2,
alg_v_allonrgoed_gegevens og
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND p1.prs_perslid_key = a.bez_afspraak_host_key
AND p2.prs_perslid_key = a.bez_afspraak_contact_key
AND a.alg_onrgoed_keys = og.alg_onroerendgoed_keys;
/* ROOT VIEWS for User defined Reports (UDR) */
CREATE_VIEW(bez_v_udr_bezoeker, 1)
(
key,
afspraak_key,
reservering_key,
host,
contact,
invoerder,
plaats_code,
plaats_omschrijving,
regio,
district,
locatie_code,
locatie_naam,
locatie_plaats,
gebouw_code,
gebouw_naam,
verdieping_code,
verdieping_naam,
ruimte_code,
ruimte_naam,
afspraak_ruimte,
afspraak_opmerking,
bezoeker_naam,
bezoeker_bedrijf,
bezoek_van,
weekdag_bezoek_van,
bezoek_tot,
actie,
bezoeker_opmerking,
bezoeker_binnen,
bezoeker_buiten,
pasnr,
parkeerplaats,
fclt_3d_locatie_key,
fclt_3d_afdeling_key,
selfservice
)
AS
SELECT b.bez_bezoekers_key,
a.bez_afspraak_key,
a.res_rsv_ruimte_key,
COALESCE (p1.prs_perslid_naam_full, a.bez_afspraak_gastheer) bez_afspraak_host,
p2.prs_perslid_naam_full bez_afspraak_contact,
p3.prs_perslid_naam_full bez_afspraak_invoerder,
og.alg_onroerendgoed_code,
og.alg_onroerendgoed_omschrijving,
r.alg_regio_omschrijving,
d.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
l.alg_locatie_plaats,
og.alg_gebouw_code,
og.alg_gebouw_naam,
og.alg_verdieping_code,
og.alg_verdieping_omschrijving,
og.alg_ruimte_nr,
og.alg_ruimte_omschrijving,
a.bez_afspraak_ruimte,
a.bez_afspraak_opmerking,
b.bez_afspraak_naam bezoeker_naam,
b.bez_afspraak_bedrijf bezoeker_bedrijf,
a.bez_afspraak_datum,
TO_CHAR(a.bez_afspraak_datum, 'D') weekdag_bezoek_van,
a.bez_afspraak_eind,
ba.bez_actie_omschrijving,
b.bez_bezoekers_opmerking bezoeker_opmerking,
b.bez_bezoekers_done,
b.bez_bezoekers_out,
b.bez_bezoekers_pasnr,
rd.res_deel_omschrijving,
a.alg_locatie_key,
pp1.prs_afdeling_key,
DECODE (p2.prs_perslid_naam_full, p3.prs_perslid_naam_full, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) selfservice
FROM bez_afspraak a,
bez_bezoekers b,
prs_v_perslid_fullnames_all p1,
prs_v_perslid_fullnames_all p2,
prs_v_perslid_fullnames_all p3,
alg_v_allonrgoed_gegevens og,
alg_locatie l,
alg_district d,
alg_regio r,
bez_actie ba,
prs_perslid pp1,
res_rsv_deel rrd,
res_deel rd
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND pp1.prs_perslid_key(+) = a.bez_afspraak_host_key
AND p1.prs_perslid_key(+) = a.bez_afspraak_host_key
AND p2.prs_perslid_key = a.bez_afspraak_contact_key
AND p3.prs_perslid_key(+) = a.prs_perslid_key
AND a.bez_actie_key = ba.bez_actie_key
AND l.alg_district_key = d.alg_district_key
AND d.alg_regio_key = r.alg_regio_key
AND l.alg_locatie_key = a.alg_locatie_key
AND a.alg_onrgoed_keys = og.alg_onroerendgoed_keys(+)
AND b.bez_bezoekers_key = rrd.bez_bezoekers_key(+)
AND rrd.res_deel_key = rd.res_deel_key(+)
AND a.bez_afspraak_datum >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
CREATE_VIEW(bez_v_udr_reserveringbezoeker, 1)
(
bezoeker_key,
afspraak_key,
reservering_key,
host,
plaats_code,
plaats_omschrijving,
regio,
district,
locatie_code,
locatie_naam,
gebouw_code,
gebouw_naam,
verdieping_code,
verdieping_naam,
ruimte_code,
ruimte_naam,
afspraak_ruimte,
afspraak_opmerking,
bezoeker_naam,
bezoeker_bedrijf,
bezoek_van,
bezoek_tot,
actie,
bezoeker_opmerking,
bezoeker_binnen,
bezoeker_buiten,
pasnr,
parkeerplaats,
nummer,
res_omschrijving,
invoerdatum,
datum,
gastheer,
invoerder,
kostensoortgroep,
kostensoort,
kpn,
kpn_omschrijving,
fclt_3d_afdeling_key,
afdeling_code,
afdeling_omschrijving,
regio_omschrijving,
district_omschijving,
fclt_3d_locatie_key,
locatie,
locatie_omschrijving,
locatie_plaats,
gebouw,
verdieping,
ruimte,
opstelling,
capaciteit,
no_show,
mandaat,
personeelsnr,
fclt_3d_discipline_key,
catalogus_key,
catalogus,
reserveerbare_ruimte,
bezoekers,
van,
tot,
duur,
status,
bostatus,
activiteit,
srtactiviteit_key,
activiteitsoort
)
AS
SELECT
b.key bezoeker_key,
b.afspraak_key,
b.reservering_key,
b.host,
--b.contact,
--b.invoerder,
b.plaats_code,
b.plaats_omschrijving,
b.regio,
b.district,
b.locatie_code,
b.locatie_naam,
--b.locatie_plaats,
b.gebouw_code,
b.gebouw_naam,
b.verdieping_code,
b.verdieping_naam,
b.ruimte_code,
b.ruimte_naam,
b.afspraak_ruimte,
b.afspraak_opmerking,
b.bezoeker_naam,
b.bezoeker_bedrijf,
b.bezoek_van,
b.bezoek_tot,
b.actie,
b.bezoeker_opmerking,
b.bezoeker_binnen,
b.bezoeker_buiten,
b.pasnr,
b.parkeerplaats,
--b.fclt_3d_locatie_key,
--b.fclt_3d_afdeling_key,
--b.selfservice,
--r.key,
r.nummer,
r.res_omschrijving,
r.invoerdatum,
r.datum,
r.gastheer,
--r.contact,
r.invoerder,
r.kostensoortgroep,
r.kostensoort,
r.kpn,
r.kpn_omschrijving,
r.fclt_3d_afdeling_key,
r.afdeling_code,
r.afdeling_omschrijving,
r.regio_omschrijving,
r.district_omschijving,
r.fclt_3d_locatie_key,
r.locatie,
r.locatie_omschrijving,
r.locatie_plaats,
r.gebouw,
r.verdieping,
r.ruimte,
r.opstelling,
r.capaciteit,
r.no_show,
r.mandaat,
r.personeelsnr,
r.fclt_3d_discipline_key,
r.catalogus_key,
r.catalogus,
r.reserveerbare_ruimte,
r.bezoekers,
r.van,
r.tot,
r.duur,
r.status,
r.bostatus,
r.activiteit,
r.srtactiviteit_key,
r.activiteitsoort
FROM res_v_udr_reservering r, bez_v_udr_bezoeker b
WHERE b.reservering_key = r.key;
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: BEZ_VIE.SRC $','$Revision$')
#endif // BEZ

View File

@@ -1,16 +0,0 @@
#ifdef BGT
/*
* $Revision$
* $Id$
*/
CREATE INDEX bgt_i_bgt_budget_key_naar ON bgt_budgetmutatie(bgt_budget_key_naar);
CREATE INDEX bgt_i_bgt_budget_key_van ON bgt_budgetmutatie(bgt_budget_key_van);
CREATE INDEX bgt_i_bgt_disc_params ON bgt_disc_params(bgt_ins_discipline_key);
CREATE INDEX bgt_i_bgt_budget ON bgt_budget(ins_discipline_key, bgt_project_key, bgt_kostenrubriek_key, prs_kostensoortgrp_key, prs_kostensoort_key);
REGISTERONCE('$Id$')
#endif // BGT

View File

@@ -1,16 +0,0 @@
#ifdef BGT
/*
* $Revision$
* $Id$
*/
_FAC_MODULE('BGT','lcl_module_BGT')
/*
** De MESSAGES van de BGT module.
*/
DEF_FAC_MESSAGE ('BGT_U_BUDGET' ,'Dit budget bestaat al.');
REGISTERONCE('$Id$')
#endif // BGT

View File

@@ -1,460 +0,0 @@
#ifdef BGT
/*
* $Revision$
* $Id$
*/
CREATE OR REPLACE PACKAGE bgt
AS
FUNCTION getMutatieOpBudget( p_budget_key IN NUMBER
, p_mutatie_key IN NUMBER
, p_btw IN NUMBER
) RETURN NUMBER;
FUNCTION getBudgetMutaties ( p_budget_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER;
FUNCTION getBudgetOpDatum ( p_budget_key IN NUMBER
, p_btw IN NUMBER
, p_datum DATE DEFAULT NULL
) RETURN NUMBER;
FUNCTION getBudgetSoortMutatie ( p_kostenrubriek_key IN NUMBER
, p_kostensoortgrp_key IN NUMBER
, p_kostensoort_key IN NUMBER
, p_btw IN NUMBER
, p_soortmutatie IN VARCHAR2
, p_datum IN DATE DEFAULT NULL
) RETURN NUMBER;
FUNCTION getSoortMutatie ( p_mutatie_key IN NUMBER
) RETURN VARCHAR2;
FUNCTION getContractwaarde( p_srtkey IN VARCHAR2
, p_key IN NUMBER
, p_btw IN NUMBER
, p_status NUMBER DEFAULT 3
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER;
FUNCTION getRaming ( p_mld_opdr_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER;
FUNCTION getGecontracteerd ( p_mld_opdr_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER;
FUNCTION getGefactureerdSoort( p_kostensoort_key IN NUMBER
, p_btw IN NUMBER
) RETURN NUMBER;
FUNCTION getGefactureerd ( p_mld_opdr_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER;
FUNCTION getTefactureren ( p_mld_opdr_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER;
END bgt;
/
CREATE OR REPLACE PACKAGE BODY bgt
AS
FUNCTION getMutatieOpBudget( p_budget_key IN NUMBER
, p_mutatie_key IN NUMBER
, p_btw IN NUMBER
) RETURN NUMBER
IS
v_bedrag_mut NUMBER;
BEGIN
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
BEGIN
SELECT COALESCE(SUM(bedrag_mutatie), 0)
INTO v_bedrag_mut
FROM (SELECT bgt_budgetmutatie_key
, bgt_budget_key_van budget_key
, CASE WHEN p_btw=0 THEN COALESCE(bgt_budget_bedrag_van, 0)
WHEN p_btw=1 THEN COALESCE(bgt_budget_btwbedrag_van, 0)
WHEN p_btw=2 THEN COALESCE(bgt_budget_bedrag_van, 0) + COALESCE(bgt_budget_btwbedrag_van, 0)
END bedrag_mutatie
FROM bgt_budgetmutatie
UNION
SELECT bgt_budgetmutatie_key
, bgt_budget_key_naar budget_key
, CASE WHEN p_btw=0 THEN COALESCE(bgt_budget_bedrag_naar, 0)
WHEN p_btw=1 THEN COALESCE(bgt_budget_btwbedrag_naar, 0)
WHEN p_btw=2 THEN COALESCE(bgt_budget_bedrag_naar, 0) + COALESCE(bgt_budget_btwbedrag_naar, 0)
END bedrag_mutatie
FROM bgt_budgetmutatie
) mut
WHERE mut.budget_key = p_budget_key
AND mut.bgt_budgetmutatie_key = DECODE(p_mutatie_key , NULL, mut.bgt_budgetmutatie_key, p_mutatie_key);
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_bedrag_mut := NULL;
END;
RETURN v_bedrag_mut;
END getMutatieOpBudget;
FUNCTION getBudgetMutaties ( p_budget_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL -- eigenlijk: tot-en-met
) RETURN NUMBER
IS
v_bedrag_mut NUMBER;
BEGIN
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
-- NB: dit zijn zowel onderlinge mutaties als van-naar reserve mutaties!!
BEGIN
SELECT COALESCE(SUM(mut.bedrag_mutaties), 0)
INTO v_bedrag_mut
FROM (SELECT CASE WHEN p_btw=0 THEN COALESCE(SUM(bgt_budget_bedrag_van), 0)
WHEN p_btw=1 THEN COALESCE(SUM(bgt_budget_btwbedrag_van), 0)
WHEN p_btw=2 THEN COALESCE(SUM(bgt_budget_bedrag_van), 0) + COALESCE(SUM(bgt_budget_btwbedrag_van), 0)
END bedrag_mutaties
FROM bgt_budgetmutatie
WHERE bgt_budget_key_van = p_budget_key
AND ((p_datum_van IS NOT NULL AND TRUNC(bgt_budgetmutatie_datum) >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND TRUNC(bgt_budgetmutatie_datum) <= p_datum_tot) OR p_datum_tot IS NULL)
UNION
SELECT CASE WHEN p_btw=0 THEN COALESCE(SUM(bgt_budget_bedrag_naar), 0)
WHEN p_btw=1 THEN COALESCE(SUM(bgt_budget_btwbedrag_naar), 0)
WHEN p_btw=2 THEN COALESCE(SUM(bgt_budget_bedrag_naar), 0) + COALESCE(SUM(bgt_budget_btwbedrag_naar), 0)
END bedrag_mutaties
FROM bgt_budgetmutatie
WHERE bgt_budget_key_naar = p_budget_key
AND ((p_datum_van IS NOT NULL AND TRUNC(bgt_budgetmutatie_datum) >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND TRUNC(bgt_budgetmutatie_datum) <= p_datum_tot) OR p_datum_tot IS NULL)
) mut;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_bedrag_mut := NULL;
END;
RETURN v_bedrag_mut;
END getBudgetMutaties;
FUNCTION getBudgetOpDatum ( p_budget_key IN NUMBER
, p_btw IN NUMBER
, p_datum DATE DEFAULT NULL
) RETURN NUMBER
IS
v_huidig_budget NUMBER;
v_mutatie NUMBER;
v_datum_budget NUMBER;
BEGIN
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
BEGIN
SELECT CASE WHEN p_btw=0 THEN COALESCE(bgt_budget_bedrag, 0)
WHEN p_btw=1 THEN COALESCE(bgt_budget_btwbedrag, 0)
WHEN p_btw=2 THEN COALESCE(bgt_budget_bedrag, 0) + COALESCE(bgt_budget_btwbedrag, 0)
END huidig_budget
, CASE WHEN p_btw=0 THEN BGT.getBudgetMutaties(bgt_budget_key, 0, p_datum+1, NULL)
WHEN p_btw=1 THEN BGT.getBudgetMutaties(bgt_budget_key, 1, p_datum+1, NULL)
WHEN p_btw=2 THEN BGT.getBudgetMutaties(bgt_budget_key, 0, p_datum+1, NULL) + BGT.getBudgetMutaties(bgt_budget_key, 1, p_datum+1, NULL)
END mutaties
INTO v_huidig_budget
, v_mutatie
FROM bgt_budget
WHERE bgt_budget_key = p_budget_key;
--
v_datum_budget := v_huidig_budget - v_mutatie;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_datum_budget := NULL;
END;
RETURN v_datum_budget;
END getBudgetOpDatum;
FUNCTION getBudgetSoortMutatie ( p_kostenrubriek_key IN NUMBER
, p_kostensoortgrp_key IN NUMBER
, p_kostensoort_key IN NUMBER
, p_btw IN NUMBER
, p_soortmutatie IN VARCHAR2
, p_datum IN DATE DEFAULT NULL
) RETURN NUMBER
IS
v_bedrag NUMBER;
BEGIN
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
BEGIN
SELECT COALESCE(SUM(bgt_mutatie_bedrag), 0) bgt_mutatie_bedrag
INTO v_bedrag
FROM ( SELECT b.bgt_kostenrubriek_key
, b.prs_kostensoortgrp_key
, b.prs_kostensoort_key
, b.bgt_budget_isreserve
, TRUNC(m.bgt_budgetmutatie_datum) bgt_budgetmutatie_datum
, CASE WHEN p_btw=0 THEN COALESCE(m.bgt_budget_bedrag_van, 0)
WHEN p_btw=1 THEN COALESCE(m.bgt_budget_btwbedrag_van, 0)
WHEN p_btw=2 THEN COALESCE(m.bgt_budget_bedrag_van, 0) + COALESCE(m.bgt_budget_btwbedrag_van, 0)
END bgt_mutatie_bedrag
, BGT.getSoortMutatie (m.bgt_budgetmutatie_key) bgt_mutatie_soort
FROM bgt_budget b
, bgt_budgetmutatie m
WHERE b.bgt_budget_key = m.bgt_budget_key_van
UNION ALL
SELECT b.bgt_kostenrubriek_key
, b.prs_kostensoortgrp_key
, b.prs_kostensoort_key
, b.bgt_budget_isreserve
, TRUNC(m.bgt_budgetmutatie_datum) bgt_budgetmutatie_datum
, CASE WHEN p_btw=0 THEN COALESCE(m.bgt_budget_bedrag_naar, 0)
WHEN p_btw=1 THEN COALESCE(m.bgt_budget_btwbedrag_naar, 0)
WHEN p_btw=2 THEN COALESCE(m.bgt_budget_bedrag_naar, 0) + COALESCE(m.bgt_budget_btwbedrag_naar, 0)
END bgt_mutatie_bedrag
, BGT.getSoortMutatie (m.bgt_budgetmutatie_key) bgt_mutatie_soort
FROM bgt_budget b
, bgt_budgetmutatie m
WHERE b.bgt_budget_key = m.bgt_budget_key_naar
) single_mutatie
WHERE INSTR(p_soortmutatie, bgt_mutatie_soort) > 0
AND ( (p_kostenrubriek_key IS NOT NULL AND p_kostensoortgrp_key = -1 AND p_kostensoort_key = -1 AND bgt_kostenrubriek_key = p_kostenrubriek_key)
OR (p_kostenrubriek_key IS NOT NULL AND p_kostensoortgrp_key IS NULL AND p_kostensoort_key IS NULL AND bgt_kostenrubriek_key = p_kostenrubriek_key AND prs_kostensoortgrp_key IS NULL AND prs_kostensoort_key IS NULL)
OR (p_kostenrubriek_key IS NOT NULL AND p_kostensoortgrp_key IS NOT NULL AND p_kostensoort_key IS NOT NULL AND prs_kostensoort_key = p_kostensoort_key)
OR (p_kostenrubriek_key IS NULL AND p_kostensoortgrp_key IS NOT NULL AND p_kostensoort_key = -1 AND prs_kostensoortgrp_key = p_kostensoortgrp_key)
OR (p_kostenrubriek_key IS NULL AND p_kostensoortgrp_key IS NOT NULL AND p_kostensoort_key IS NULL AND prs_kostensoortgrp_key = p_kostensoortgrp_key AND prs_kostensoort_key IS NULL)
OR (p_kostenrubriek_key IS NULL AND p_kostensoortgrp_key IS NULL AND p_kostensoort_key IS NOT NULL AND prs_kostensoort_key = p_kostensoort_key)
)
AND (TRUNC(bgt_budgetmutatie_datum) <= p_datum OR p_datum IS NULL);
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_bedrag := NULL;
END;
RETURN v_bedrag;
END getBudgetSoortMutatie;
FUNCTION getSoortMutatie( p_mutatie_key IN NUMBER
) RETURN VARCHAR2
IS
v_budget_van bgt_budgetmutatie.bgt_budget_key_van%TYPE;
v_budget_naar bgt_budgetmutatie.bgt_budget_key_naar%TYPE;
v_mutatie_omschrijving bgt_budgetmutatie.bgt_budgetmutatie_omschrijving%TYPE;
v_mutatie_reserve bgt_budgetmutatie.bgt_budgetmutatie_reserve%TYPE;
v_mutatie_code bgt_budgetmutatie.bgt_budgetmutatie_code%TYPE;
v_mutatie_level_van VARCHAR2(1);
v_mutatie_level_naar VARCHAR2(1);
v_soort_mutatie VARCHAR2(1);
v_budget_isreserve bgt_budget.bgt_budget_isreserve%TYPE;
BEGIN
BEGIN
SELECT m.bgt_budget_key_van
, m.bgt_budget_key_naar
, m.bgt_budgetmutatie_omschrijving
, m.bgt_budgetmutatie_reserve
, m.bgt_budgetmutatie_code
, CASE WHEN bv.prs_kostensoort_key IS NOT NULL
THEN 'S'
ELSE CASE WHEN bv.prs_kostensoortgrp_key IS NOT NULL
THEN 'G'
ELSE CASE WHEN bv.bgt_kostenrubriek_key IS NOT NULL
THEN 'R'
ELSE 'P'
END
END
END mutatie_level_van
, CASE WHEN bn.prs_kostensoort_key IS NOT NULL
THEN 'S'
ELSE CASE WHEN bn.prs_kostensoortgrp_key IS NOT NULL
THEN 'G'
ELSE CASE WHEN bn.bgt_kostenrubriek_key IS NOT NULL
THEN 'R'
ELSE 'P'
END
END
END mutatie_level_naar
, bv.bgt_budget_isreserve
INTO v_budget_van
, v_budget_naar
, v_mutatie_omschrijving
, v_mutatie_reserve
, v_mutatie_code
, v_mutatie_level_van
, v_mutatie_level_naar
, v_budget_isreserve
FROM bgt_budget bv
, bgt_budget bn
, bgt_budgetmutatie m
WHERE m.bgt_budget_key_van = bv.bgt_budget_key(+)
AND m.bgt_budget_key_naar = bn.bgt_budget_key(+)
AND m.bgt_budgetmutatie_key = p_mutatie_key;
--
-- Mutatie van-naar reserve (tussen algemeenreserve en kostensoort of kostenrubriek en kostensoort)
-- (Is dus allebei tussen kostenrubriek en kostensoort).
-- Maak nog onderscheid tussen automatische overboeking A (correctie van budget tgv meer gecontracteerd dan budget)
-- overboeking wegens meer-minderwerk W
-- en een gewone mutatie van/naar reserve.
IF ( (v_mutatie_level_van = 'R')
OR (v_mutatie_level_naar = 'R')
) THEN
IF (v_mutatie_reserve = 1) THEN -- 'AO Automatische overboeking'
IF (v_mutatie_code = 'W') THEN
v_soort_mutatie := 'W';
ELSE
v_soort_mutatie := 'A';
END IF;
ELSE
v_soort_mutatie := 'R';
END IF;
END IF;
--
-- Mutatie extra budget (er wordt geld aan algemeenreserve, kostenrubriek of kostensoort toegevoegd OF onttrokken.
IF ((v_budget_van = v_budget_naar) OR (v_budget_van IS NULL) OR (v_budget_naar IS NULL) ) THEN
v_soort_mutatie := 'E';
END IF;
--
-- Onderlinge mutatie (mutaties tussen kostensoorten)
IF ( (v_budget_van <> v_budget_naar)
AND (v_mutatie_level_van = 'S')
AND (v_mutatie_level_naar = 'S')
) THEN
v_soort_mutatie := 'M';
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_soort_mutatie := NULL;
END;
--
RETURN v_soort_mutatie;
END getSoortMutatie;
FUNCTION getContractwaarde( p_srtkey IN VARCHAR2
, p_key IN NUMBER
, p_btw IN NUMBER
, p_status NUMBER DEFAULT 3
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL -- eigenlijk: tot-en-met
) RETURN NUMBER
IS
v_bedrag NUMBER;
BEGIN
-- p_srtkey: SRT=prs_kostensoort_key, OPDR=mld_opdr_key.
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
-- p_status: 1=raming, 2=gecontracteerd, 3=alles.
BEGIN
SELECT CASE WHEN p_btw=0 THEN SUM(COALESCE(mld_opdr_kosten, 0))
WHEN p_btw=1 THEN SUM(COALESCE(mld_opdr_kosten_btw, 0))
WHEN p_btw=2 THEN SUM(COALESCE(mld_opdr_kosten, 0)) + SUM(COALESCE(mld_opdr_kosten_btw, 0))
END contracten
INTO v_bedrag
FROM mld_opdr
WHERE p_key = DECODE(p_srtkey, 'SRT', prs_kostensoort_key, 'OPDR', mld_opdr_key)
AND ( (p_status = 1 AND mld_statusopdr_key = 10)
OR (p_status = 2 AND mld_statusopdr_key <> 10)
OR (p_status = 3 AND mld_statusopdr_key = mld_statusopdr_key)
)
AND ((p_datum_van IS NOT NULL AND TRUNC(mld_opdr_datumbegin) >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND TRUNC(mld_opdr_datumbegin) <= p_datum_tot) OR p_datum_tot IS NULL);
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_bedrag := NULL;
END;
RETURN v_bedrag;
END getContractwaarde;
FUNCTION getRaming( p_mld_opdr_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER
IS
v_bedrag NUMBER;
BEGIN
v_bedrag := BGT.getContractwaarde('OPDR', p_mld_opdr_key, p_btw, 1, p_datum_van, p_datum_tot);
RETURN v_bedrag;
END getRaming;
FUNCTION getGecontracteerd( p_mld_opdr_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER
IS
v_bedrag NUMBER;
BEGIN
v_bedrag := BGT.getContractwaarde('OPDR', p_mld_opdr_key, p_btw, 2, p_datum_van, p_datum_tot);
RETURN v_bedrag;
END getGecontracteerd;
FUNCTION getGefactureerdSoort( p_kostensoort_key IN NUMBER
, p_btw IN NUMBER
) RETURN NUMBER
IS
v_bedrag NUMBER;
BEGIN
BEGIN
SELECT SUM(BGT.getGefactureerd(mld_opdr_key, p_btw, NULL, NULL))
INTO v_bedrag
FROM mld_opdr
WHERE prs_kostensoort_key = p_kostensoort_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_bedrag := NULL;
END;
RETURN v_bedrag;
END getGefactureerdSoort;
FUNCTION getGefactureerd ( p_mld_opdr_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL -- eigenlijk: tot-en-met
) RETURN NUMBER
IS
v_bedrag NUMBER;
BEGIN
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
v_bedrag := 0;
BEGIN
SELECT CASE WHEN p_btw=0 THEN SUM(COALESCE(fin_factuur_totaal, 0))
WHEN p_btw=1 THEN SUM(COALESCE(fin_factuur_totaal_btw, 0))
WHEN p_btw=2 THEN SUM(COALESCE(fin_factuur_totaal, 0)) + SUM(COALESCE(fin_factuur_totaal_btw, 0))
END facturen
INTO v_bedrag
FROM fin_factuur
WHERE ((p_datum_van IS NOT NULL AND TRUNC(fin_factuur_advies) >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND TRUNC(fin_factuur_advies) <= p_datum_tot) OR p_datum_tot IS NULL)
AND mld_opdr_key = p_mld_opdr_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_bedrag := 0;
END;
RETURN v_bedrag;
END getGefactureerd;
FUNCTION getTefactureren ( p_mld_opdr_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER
IS
v_statusopdr NUMBER;
v_cont NUMBER;
v_fact NUMBER;
v_bedrag NUMBER;
BEGIN
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
v_bedrag := 0;
BEGIN
SELECT NVL(mld_statusopdr_key, 0)
INTO v_statusopdr
FROM mld_opdr
WHERE mld_opdr_key = p_mld_opdr_key;
--
IF (v_statusopdr <> 10) THEN
v_cont := getGecontracteerd(p_mld_opdr_key, p_btw, p_datum_van, p_datum_tot);
v_fact := getGefactureerd(p_mld_opdr_key, p_btw, p_datum_van, p_datum_tot);
v_bedrag := COALESCE(v_cont, 0) - COALESCE(v_fact, 0);
END IF;
END;
RETURN v_bedrag;
END getTefactureren;
END bgt;
/
REGISTERRUN('$Id$')
#endif // BGT

View File

@@ -1,16 +0,0 @@
#ifdef BGT
/*
* $Revision$
* $Id$
*/
CREATE SEQUENCE bgt_s_bgt_disc_params_key MINVALUE 1;
CREATE SEQUENCE bgt_s_bgt_project_key MINVALUE 1;
CREATE SEQUENCE bgt_s_bgt_kostenrubriek_key MINVALUE 1;
CREATE SEQUENCE bgt_s_bgt_budget_key MINVALUE 1;
CREATE SEQUENCE bgt_s_bgt_budgetmutatie_key MINVALUE 1;
REGISTERONCE('$Id$')
#endif // BGT

View File

@@ -1,166 +0,0 @@
#ifdef BGT
/*
* $Revision$
* $Id$
*/
/* discipline=project */
CREATE_TABLE(bgt_disc_params,0)
(
bgt_disc_params_key
NUMBER (10) PRIMARY KEY NOT NULL,
bgt_ins_discipline_key
NUMBER (10)
CONSTRAINT bgt_r_ins_discipine_key REFERENCES ins_tab_discipline (ins_discipline_key),
bgt_disc_params_code -- projectcode
VARCHAR2 (20 BYTE),
bgt_disc_params_opdrachtgever
VARCHAR2 (200 BYTE),
bgt_disc_params_startdatum
DATE
);
/* deelproject */
CREATE_TABLE(bgt_project, 0)
(
bgt_project_key
NUMBER (10) PRIMARY KEY NOT NULL,
ins_discipline_key
NUMBER (10)
CONSTRAINT bgt_r_ins_discipline_key1 REFERENCES ins_tab_discipline (ins_discipline_key),
bgt_project_code
VARCHAR2 (20 BYTE)
CONSTRAINT bgt_c_bgt_project_code NOT NULL,
bgt_project_omschrijving
VARCHAR2 (60 BYTE),
bgt_project_volgnr
NUMBER (3),
bgt_project_prijspeildatum
DATE,
bgt_project_info
VARCHAR2 (4000 BYTE),
bgt_project_notes
VARCHAR2 (4000 BYTE),
bgt_project_aanmaak
DATE DEFAULT SYSDATE,
bgt_project_verwijder
DATE,
prs_kostenplaats_key
NUMBER (10)
CONSTRAINT bgt_r_prs_kostenplaats_key1 REFERENCES prs_kostenplaats (prs_kostenplaats_key),
CONSTRAINT bgt_u_bgt_project UNIQUE(ins_discipline_key, bgt_project_code, bgt_project_verwijder)
);
CREATE_TABLE(bgt_kostenrubriek,0)
(
bgt_kostenrubriek_key
NUMBER (10) PRIMARY KEY NOT NULL,
bgt_project_key
NUMBER (10)
CONSTRAINT bgt_c_bgt_kostenrubriek1 NOT NULL
CONSTRAINT bgt_r_bgt_project_key1 REFERENCES bgt_project (bgt_project_key),
bgt_kostenrubriek_code
VARCHAR2 (20 BYTE),
bgt_kostenrubriek_oms
VARCHAR2 (60 BYTE) NOT NULL,
fin_btwtabelwaarde_key
NUMBER(10)
CONSTRAINT bgt_r_fin_btwtabelwaarde_key REFERENCES fin_btwtabelwaarde (fin_btwtabelwaarde_key)
);
ALTER TABLE prs_kostensoortgrp ADD bgt_kostenrubriek_key NUMBER(10) CONSTRAINT prs_r_bgt_kostenrubriek_key1 REFERENCES bgt_kostenrubriek (bgt_kostenrubriek_key);
CREATE_TABLE(bgt_budget,1)
(
bgt_budget_key
NUMBER (10) PRIMARY KEY NOT NULL,
ins_discipline_key
NUMBER (10)
CONSTRAINT prs_r_ins_discipline_key1 REFERENCES ins_tab_discipline (ins_discipline_key), /* ik denk nog not null?*/
bgt_project_key
NUMBER (10)
CONSTRAINT prs_r_bgt_project_key1 REFERENCES bgt_project (bgt_project_key), /* ik denk nog not null?*/
bgt_kostenrubriek_key
NUMBER (10)
CONSTRAINT prs_r_bgt_kostenrubriek_key2 REFERENCES bgt_kostenrubriek (bgt_kostenrubriek_key),
prs_kostensoortgrp_key
NUMBER (10)
CONSTRAINT prs_r_kostensoortgrp_key2 REFERENCES prs_kostensoortgrp (prs_kostensoortgrp_key),
prs_kostensoort_key
NUMBER (10)
CONSTRAINT prs_r_kostensoort_key2 REFERENCES prs_kostensoort (prs_kostensoort_key),
prs_kostenplaatsgrp_key
NUMBER (10)
CONSTRAINT prs_r_kostenplaatsgrp_key3 REFERENCES prs_kostenplaatsgrp (prs_kostenplaatsgrp_key),
prs_kostenplaats_key
NUMBER (10)
CONSTRAINT prs_r_kostenplaats_key5 REFERENCES prs_kostenplaats (prs_kostenplaats_key),
bgt_budget_bedrag
NUMBER (12,2),
bgt_budget_btwbedrag
NUMBER (12,2),
bgt_budget_isreserve
NUMBER(1)
DEFAULT (0)
NOT NULL
CONSTRAINT bgt_c_bgt_budget_isreserve CHECK(bgt_budget_isreserve IN (0,1)),
bgt_budget_begin
DATE,
bgt_budget_eind
DATE,
bgt_budget_aanmaak
DATE DEFAULT SYSDATE,
bgt_budget_vervaldatum
DATE, -- of gewoon verwijderdatum?
CONSTRAINT bgt_c_bgt_budget1 CHECK ( (bgt_budget_isreserve = 0 AND ( bgt_kostenrubriek_key IS NOT NULL
OR (bgt_kostenrubriek_key IS NOT NULL AND prs_kostensoortgrp_key IS NOT NULL)
OR (bgt_kostenrubriek_key IS NOT NULL AND prs_kostensoortgrp_key IS NOT NULL AND prs_kostensoort_key IS NOT NULL)
OR prs_kostenplaatsgrp_key IS NOT NULL
OR (prs_kostenplaatsgrp_key IS NOT NULL AND prs_kostenplaats_key IS NOT NULL)
)
)
OR (bgt_budget_isreserve = 1 AND prs_kostensoortgrp_key IS NULL AND prs_kostenplaats_key IS NULL)
),
CONSTRAINT bgt_u_budget UNIQUE (bgt_kostenrubriek_key, prs_kostensoortgrp_key, prs_kostensoort_key)
);
-- under construction
CREATE_TABLE(bgt_budgetmutatie, 1)
(
bgt_budgetmutatie_key
NUMBER (10) PRIMARY KEY,
bgt_budgetmutatie_datum
DATE NOT NULL,
bgt_budgetmutatie_omschrijving
VARCHAR2 (100) NOT NULL,
prs_perslid_key
NUMBER (10)
NOT NULL
CONSTRAINT bgt_r_prs_perslid_key2 REFERENCES prs_perslid (prs_perslid_key),
bgt_budget_key_van
NUMBER (10)
CONSTRAINT bgt_r_bgt_budget1 REFERENCES bgt_budget (bgt_budget_key),
bgt_budget_bedrag_van
NUMBER (12, 2),
bgt_budget_btwbedrag_van
NUMBER (12, 2),
bgt_budget_key_naar
NUMBER (10)
CONSTRAINT bgt_r_bgt_budget2 REFERENCES bgt_budget (bgt_budget_key),
bgt_budget_bedrag_naar
NUMBER (12, 2),
bgt_budget_btwbedrag_naar
NUMBER (12, 2),
bgt_budgetmutatie_reserve
NUMBER (1)
DEFAULT (0)
NOT NULL,
bgt_budgetmutatie_code
VARCHAR2 (2),
bgt_budgetmutatie_volgnr
NUMBER (3),
CONSTRAINT bgt_c_bgt_budget_key1 CHECK(bgt_budget_key_van IS NOT NULL OR bgt_budget_key_naar IS NOT NULL)
);
REGISTERONCE('$Id$')
#endif // BGT

View File

@@ -1,94 +0,0 @@
#ifdef BGT
/*
* $Revision$
* $Id$
*/
AUDIT_BEGIN(bgt_disc_params)
AUDIT_VALUE(bgt_disc_params, bgt_ins_discipline_key)
AUDIT_END()
CREATE_TRIGGER(bgt_t_bgt_disc_params_b_i)
BEFORE INSERT ON bgt_disc_params
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(bgt_disc_params_key, bgt_s_bgt_disc_params_key);
END;
/
CREATE_TRIGGER(bgt_t_bgt_project_B_I)
BEFORE INSERT ON bgt_project
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(bgt_project_key,bgt_s_bgt_project_key);
END;
/
CREATE_TRIGGER(bgt_t_bgt_kostenrubriek_B_I)
BEFORE INSERT ON bgt_kostenrubriek
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(bgt_kostenrubriek_key,bgt_s_bgt_kostenrubriek_key);
END;
/
CREATE_TRIGGER(bgt_t_bgt_budget_B_I)
BEFORE INSERT ON bgt_budget
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(bgt_budget_key,bgt_s_bgt_budget_key);
END;
/
CREATE_TRIGGER(bgt_t_bgt_budgetmutatie_B_I)
BEFORE INSERT ON bgt_budgetmutatie
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(bgt_budgetmutatie_key,bgt_s_bgt_budgetmutatie_key);
END;
/
CREATE_TRIGGER(bgt_t_bgt_budgetmutatie_B_IU)
BEFORE INSERT OR UPDATE ON bgt_budgetmutatie
FOR EACH ROW
BEGIN
-- Bij insert moet het nieuwe mutatiebedrag bij het budgetbedrag worden opgeteld.
-- Bij update moet het VERSCHIL tussen het oude- en nieuwe mutatiebedrag bij het budgetbedrag worden opgeteld.
IF (:new.bgt_budget_key_van IS NOT NULL) THEN
UPDATE bgt_budget
SET bgt_budget_bedrag = NVL(bgt_budget_bedrag, 0) + (NVL(:new.bgt_budget_bedrag_van, 0) - NVL(:old.bgt_budget_bedrag_van, 0))
, bgt_budget_btwbedrag = NVL(bgt_budget_btwbedrag, 0) + (NVL(:new.bgt_budget_btwbedrag_van, 0) - NVL(:old.bgt_budget_btwbedrag_van, 0))
WHERE bgt_budget_key = :new.bgt_budget_key_van;
END IF;
IF (:new.bgt_budget_key_naar IS NOT NULL) THEN
UPDATE bgt_budget
SET bgt_budget_bedrag = NVL(bgt_budget_bedrag, 0) + (NVL(:new.bgt_budget_bedrag_naar, 0) - NVL(:old.bgt_budget_bedrag_naar, 0))
, bgt_budget_btwbedrag = NVL(bgt_budget_btwbedrag, 0) + (NVL(:new.bgt_budget_btwbedrag_naar, 0) - NVL(:old.bgt_budget_btwbedrag_naar, 0))
WHERE bgt_budget_key = :new.bgt_budget_key_naar;
END IF;
END;
/
CREATE_TRIGGER(bgt_t_bgt_budgetmutatie_B_D)
BEFORE DELETE ON bgt_budgetmutatie
FOR EACH ROW
BEGIN
IF (:old.bgt_budget_key_van IS NOT NULL) THEN
UPDATE bgt_budget
SET bgt_budget_bedrag = NVL(bgt_budget_bedrag, 0) - NVL(:old.bgt_budget_bedrag_van, 0)
, bgt_budget_btwbedrag = NVL(bgt_budget_btwbedrag, 0) - NVL(:old.bgt_budget_btwbedrag_van, 0)
WHERE bgt_budget_key = :old.bgt_budget_key_van;
END IF;
IF (:old.bgt_budget_key_naar IS NOT NULL) THEN
UPDATE bgt_budget
SET bgt_budget_bedrag = NVL(bgt_budget_bedrag, 0) - NVL(:old.bgt_budget_bedrag_naar, 0)
, bgt_budget_btwbedrag = NVL(bgt_budget_btwbedrag, 0) - NVL(:old.bgt_budget_btwbedrag_naar, 0)
WHERE bgt_budget_key = :old.bgt_budget_key_naar;
END IF;
END;
/
REGISTERRUN('$Id$')
#endif // BGT

View File

@@ -1,125 +0,0 @@
#ifdef BGT
/*
* $Revision$
* $Id$
*/
CREATE_VIEW(ctr_discipline, 0)
AS
SELECT * FROM ins_tab_discipline WHERE ins_discipline_module = 'BGT';
DEFINIEER_VIEW_AANWEZIG(ctr_discipline, ins_discipline_verwijder,
bgt_v_aanwezigdiscipline, 0);
CREATE OR REPLACE VIEW bgt_v_project_gegevens
AS
SELECT pr.ins_discipline_key
, pr.bgt_project_key
, dp.bgt_disc_params_opdrachtgever opdrachtgever
, dp.bgt_disc_params_code pcode
, dp.bgt_disc_params_code || ' ' || id.ins_discipline_omschrijving project
, id.ins_discipline_omschrijving projectnaam
, pr.bgt_project_code dcode
, pr.bgt_project_code || ' - ' || pr.bgt_project_omschrijving subproject
, pr.bgt_project_omschrijving subprojectnaam
, id.ins_discipline_verwijder
, pr.bgt_project_verwijder
FROM ins_tab_discipline id
, bgt_disc_params dp
, bgt_project pr
WHERE id.ins_discipline_module = 'BGT'
AND id.ins_discipline_key = dp.bgt_ins_discipline_key
AND id.ins_discipline_key = pr.ins_discipline_key;
CREATE OR REPLACE VIEW bgt_v_project_full
AS
SELECT pr.ins_discipline_key
, pr.bgt_project_key
, pr.opdrachtgever
, pr.pcode
, pr.project
, pr.projectnaam
, pr.dcode
, pr.subproject
, pr.subprojectnaam
, pr.ins_discipline_verwijder
, pr.bgt_project_verwijder
, kr.bgt_kostenrubriek_key
, kr.bgt_kostenrubriek_code rcode
, kr.bgt_kostenrubriek_oms kostenrubriek
, NULL prs_kostensoortgrp_key
, NULL gcode
, NULL kostengroep
, NULL prs_kostensoort_key
, NULL scode
, NULL kostensoort
, kr.bgt_kostenrubriek_code kostencode
, SUBSTR(kr.bgt_kostenrubriek_oms, INSTR(kr.bgt_kostenrubriek_oms, ' ',1,1)+1) kostennaam
FROM bgt_v_project_gegevens pr
, bgt_kostenrubriek kr
WHERE pr.bgt_project_key = kr.bgt_project_key
UNION
SELECT pr.ins_discipline_key
, pr.bgt_project_key
, pr.opdrachtgever
, pr.pcode
, pr.project
, pr.projectnaam
, pr.dcode
, pr.subproject
, pr.subprojectnaam
, pr.ins_discipline_verwijder
, pr.bgt_project_verwijder
, kr.bgt_kostenrubriek_key
, kr.bgt_kostenrubriek_code rcode
, kr.bgt_kostenrubriek_oms kostenrubriek
, kg.prs_kostensoortgrp_key
, kg.prs_kostensoortgrp_altcode gcode
, kg.prs_kostensoortgrp_oms kostengroep
, NULL
, NULL
, NULL
, kg.prs_kostensoortgrp_altcode kostencode
, SUBSTR(kg.prs_kostensoortgrp_oms, INSTR(kg.prs_kostensoortgrp_oms, ' ',1,1)+1) kostennaam
FROM bgt_v_project_gegevens pr
, bgt_kostenrubriek kr
, prs_kostensoortgrp kg
WHERE pr.bgt_project_key = kr.bgt_project_key
AND kr.bgt_kostenrubriek_key = kg.bgt_kostenrubriek_key
UNION
SELECT pr.ins_discipline_key
, pr.bgt_project_key
, pr.opdrachtgever
, pr.pcode
, pr.project
, pr.projectnaam
, pr.dcode
, pr.subproject
, pr.subprojectnaam
, pr.ins_discipline_verwijder
, pr.bgt_project_verwijder
, kr.bgt_kostenrubriek_key
, kr.bgt_kostenrubriek_code rcode
, kr.bgt_kostenrubriek_oms kostenrubriek
, kg.prs_kostensoortgrp_key
, kg.prs_kostensoortgrp_altcode gcode
, kg.prs_kostensoortgrp_oms kostengroep
, ks.prs_kostensoort_key
, ks.prs_kostensoort_altcode scode
, ks.prs_kostensoort_oms kostensoort
, ks.prs_kostensoort_altcode kostencode
, SUBSTR(ks.prs_kostensoort_oms, INSTR(ks.prs_kostensoort_oms, ' ',1,1)+1) kostennaam
FROM bgt_v_project_gegevens pr
, bgt_kostenrubriek kr
, prs_kostensoortgrp kg
, prs_kostensoort ks
WHERE pr.bgt_project_key = kr.bgt_project_key
AND kr.bgt_kostenrubriek_key = kg.bgt_kostenrubriek_key
AND kg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key;
REGISTERRUN('$Id$')
#endif // BGT

View File

@@ -10,6 +10,6 @@ CREATE INDEX cad_i_cad_tekening3 ON cad_tekening(alg_verdieping_key);
CREATE INDEX cad_i_cad_contour1 ON cad_imp_contour(cad_tekening_key);
CREATE UNIQUE INDEX cad_i_cad_legendaw1 ON cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: CAD_IND.SRC $','$Revision$')
#endif // CAD

View File

@@ -4,13 +4,14 @@
* $Id$
*/
_FAC_MODULE('CAD','lcl_module_CAD')
_FAC_MODULE('CAD','Facilitor Graphics')
INSERT INTO cad_legenda (cad_legenda_key, cad_legenda_omschrijving, cad_legenda_discreet) VALUES (1, 'Default legenda', 1);
INSERT INTO cad_legenda (cad_legenda_key, cad_legenda_omschrijving, cad_legenda_discreet) VALUES (2, 'Aantallen', 0);
// IN prj_ini: INSERT INTO cad_legenda (cad_legenda_key, cad_legenda_omschrijving, cad_legenda_discreet) VALUES (3, 'Default project legenda', 1);
INSERT INTO cad_legenda (cad_legenda_key, cad_legenda_omschrijving, cad_legenda_discreet) VALUES (4, 'Bezetting', 1);
INSERT INTO cad_legenda (cad_legenda_omschrijving, cad_legenda_discreet) VALUES ('Default legenda', 1);
INSERT INTO cad_legenda (cad_legenda_omschrijving, cad_legenda_discreet) VALUES ('Aantallen', 0);
UPDATE cad_legenda SET cad_legenda_key=1 WHERE cad_legenda_omschrijving='Default legenda';
UPDATE cad_legenda SET cad_legenda_key=2 WHERE cad_legenda_omschrijving='Aantallen';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (2,'0','FFFFFF','0');
@@ -35,14 +36,8 @@ VALUES (2,'50','FF5A09','50');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (2,'99','FF0000','99');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (4,'0','33CC33','hele dag beschikbaar');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (4,'1','FF9900','''s middags beschikbaar');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (4,'2','FFFF00','''s ochtends beschikbaar');
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr)
VALUES (4,'3','FF0000','hele dag bezet');
/* zijn de functies hier al bekend? */
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key)
SELECT 'Ruimtefunctie', 1, 'cad_v_thema_srtruimte', 1, fac_functie_key
@@ -59,34 +54,6 @@ INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view,
FROM fac_functie
WHERE fac_functie_code = 'WEB_MLDBAC';
INSERT INTO CAD_THEMA
( CAD_THEMA_OMSCHRIJVING, CAD_LEGENDA_KEY, CAD_THEMA_VIEW, CAD_THEMA_TYPE, fac_functie_key )
SELECT 'Bezetting: aantal werkplekken', 1, 'CAD_V_THEMA_AANTALWP', '1', fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_PRSBOF';
INSERT INTO CAD_THEMA
( CAD_THEMA_OMSCHRIJVING, CAD_LEGENDA_KEY, CAD_THEMA_VIEW,CAD_THEMA_TYPE, fac_functie_key )
SELECT 'Oppervlakte: Gemiddeld/werkplek', 1, 'CAD_V_THEMA_WPOPP', '1', fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_PRSBOF';
-- NB: deze gaan met vaste keys 12,13 harde defaults voor infobord.
INSERT INTO cad_thema
( cad_thema_key, cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key )
SELECT 12, 'Actuele bezetting', 1, 'cad_v_thema_srtruimtesensor', '1', fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_RESFOF';
INSERT INTO cad_thema
( cad_thema_key, cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key )
SELECT 13, 'Werkplekbezetting', 4, 'cad_v_thema_deel_res_datum', '17', fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_RESUSE';
-- De cad_thema_key sequence gaat later vanzelf wel verder met 21.
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, fac_functie_key, cad_label_size)
SELECT 'Ruimtefunctie/opp', 'cad_v_label_srtruimteopp', 1, fac_functie_key, 360
@@ -98,6 +65,16 @@ INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, f
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSUSE';
INSERT INTO CAD_THEMA
( CAD_THEMA_OMSCHRIJVING, CAD_LEGENDA_KEY, CAD_THEMA_VIEW, CAD_THEMA_TYPE, fac_functie_key )
SELECT 'Bezetting: aantal werkplekken', 1, 'CAD_V_THEMA_AANTALWP', '1', fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_PRSBOF';
INSERT INTO CAD_THEMA
( CAD_THEMA_OMSCHRIJVING, CAD_LEGENDA_KEY, CAD_THEMA_VIEW,CAD_THEMA_TYPE, fac_functie_key )
SELECT 'Oppervlakte: Gemiddeld/werkplek', 1, 'CAD_V_THEMA_WPOPP', '1', fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_PRSBOF';
INSERT INTO CAD_LABEL
( CAD_LABEL_OMSCHRIJVING, CAD_LABEL_VIEW, CAD_LABEL_TYPE, CAD_LABEL_SIZE, FAC_FUNCTIE_KEY )
SELECT 'Werkplekken', 'cad_v_label_werkplekken', '1', 800, fac_functie_key
@@ -114,19 +91,6 @@ INSERT INTO CAD_LABEL
from fac_functie
where fac_functie_code = 'WEB_ALGUSE';
-- NB: deze gaat met vaste key 12, een harde default voor infobord.
INSERT INTO cad_label
( cad_label_key, cad_label_omschrijving, cad_label_view, cad_label_type, cad_label_size, cad_label_visible, fac_functie_key )
SELECT 12, 'Flexibele ruimtes', 'cad_v_label_bezetbareruimtes', '1', 500, 0, fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_RESFOF';
INSERT INTO cad_label
( cad_label_key, cad_label_omschrijving, cad_label_view, cad_label_type, cad_label_size, cad_label_visible, fac_functie_key )
SELECT 13, 'Werkplekbezetting', 'cad_v_label_deel_res_datum', '17', 700, 0, fac_functie_key
from fac_functie
where fac_functie_code = 'WEB_RESUSE';
-- De cad_label_key sequence gaat later vanzelf wel verder met 21.
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: CAD_INI.SRC $','$Revision$')
#endif // CAD

View File

@@ -1,80 +1,10 @@
#ifdef CAD // 22-05-1998 KTH
/*
/*
* $Revision$
* $Id$
*/
CREATE OR REPLACE PACKAGE cad AS
PROCEDURE refreshlegenda (themakey IN NUMBER, reinit IN NUMBER);
END cad;
/
CREATE OR REPLACE PACKAGE BODY cad
AS
PROCEDURE refreshlegenda (themakey IN NUMBER, reinit IN NUMBER)
AS
vname cad_thema.cad_thema_view%TYPE;
lkey cad_thema.cad_legenda_key%TYPE;
tomschrijving cad_thema.cad_thema_omschrijving%TYPE;
sql_stmt VARCHAR2 (1000);
newlegenda BOOLEAN := FALSE;
BEGIN
BEGIN
-- Welke domein en welke legenda?
SELECT cad_thema_view, cad_legenda_key, cad_thema_omschrijving
INTO vname, lkey, tomschrijving
FROM cad_thema
WHERE cad_thema_key = themakey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
newlegenda := TRUE;
END;
IF newlegenda OR lkey IS NULL
THEN
-- nieuwe legenda
INSERT INTO cad_legenda (cad_legenda_omschrijving, cad_legenda_discreet)
VALUES (SUBSTR(tomschrijving, 1, 32), 1)
RETURNING cad_legenda_key
INTO lkey;
-- gebruiken bij dit thema
UPDATE cad_thema
SET cad_legenda_key = lkey
WHERE cad_thema_key = themakey;
ELSE
-- bestaande legenda, eventueel wissen
IF reinit = 1
THEN
DELETE FROM cad_legendawaarde WHERE cad_legenda_key = lkey;
END IF;
END IF;
sql_stmt :=
'INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) '
|| 'SELECT DISTINCT '
|| TO_CHAR (lkey)
|| ', waarde, '
|| 'TO_CHAR(DBMS_UTILITY.get_hash_value (waarde, 0, POWER (2, 24)), ''0XXXXX'')'
|| ', REPLACE(waarde, ''*'', '''')'
|| ' FROM '
|| vname -- er zit een constraint op cad_thema.cad_thema_view dus relatief SQL-injection safe
|| ' thv WHERE REPLACE (waarde, ''*'', '''') IS NOT NULL'
|| ' AND NOT EXISTS '
|| ' (SELECT cl.cad_legendawaarde_value FROM cad_legendawaarde cl WHERE cl.cad_legendawaarde_value = thv.waarde AND cl.cad_legenda_key = '
|| TO_CHAR (lkey)
|| ')';
DBMS_OUTPUT.put_line (sql_stmt);
EXECUTE IMMEDIATE sql_stmt;
END;
END cad;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: CAD_PAC.SRC $','$Revision$')
#endif // CAD

View File

@@ -6,12 +6,12 @@
CREATE SEQUENCE cad_s_cad_tekening_key MINVALUE 1;
CREATE SEQUENCE cad_s_cad_legenda_key MINVALUE 21;
CREATE SEQUENCE cad_s_cad_legenda_key MINVALUE 1;
CREATE SEQUENCE cad_s_cad_legendawaarde_key MINVALUE 1;
CREATE SEQUENCE cad_s_cad_thema_key MINVALUE 1;
CREATE SEQUENCE cad_s_cad_label_key MINVALUE 1;
CREATE SEQUENCE cad_s_cad_imp_contour_key MINVALUE 1;
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: CAD_SEQ.SRC $','$Revision$')
#endif // CAD

View File

@@ -64,7 +64,7 @@ CREATE_TABLE(cad_legendawaarde,0)
/* Welke thema's -kleur of label- zijn gedefinieerd?
* _type: bitwise codering:
* _type: bitwise codering:
* bit 0 (1) is gezet voor 'binnen'
* bit 1 (2) is gezet voor 'buiten'. (bit 0 en 1 mogen niet beide gezet zijn en ook niet beide leeg zijn)
* bit 2 (4) is gezet voor projectomgeving (0 is actuele situatie)
@@ -75,7 +75,6 @@ CREATE_TABLE(cad_legendawaarde,0)
* bit 5 (32) is gereserveerd
* bit 6 (64) is gereserveerd
* bit 7 (128) is gezet voor 'draggable', dan kan dit thema worden gebruikt om te muteren (FSN#14942).
* De optionele onclick_url wordt (vooralsnog) gebruikt in de touch-omgevingen (FSN#31594), aangevuld met de key (afh type)
*/
CREATE_TABLE(cad_thema,0)
@@ -91,25 +90,13 @@ CREATE_TABLE(cad_thema,0)
cad_thema_view
VARCHAR2(1000)
NOT_NULL(cad_thema_view, cad_c_cad_thema_view),
cad_thema_type
VARCHAR2(3)
cad_thema_type VARCHAR2(3)
CONSTRAINT cad_c_cad_thema_type CHECK (cad_thema_type BETWEEN 1 AND 255),
fac_functie_key
NUMBER(10)
CONSTRAINT cad_fac_functie_key1 REFERENCES fac_functie(fac_functie_key),
cad_thema_onclick_url
VARCHAR2(512)
CONSTRAINT cad_fac_functie_key1 REFERENCES fac_functie(fac_functie_key)
);
ALTER TABLE mld_stdmelding
ADD
(
cad_thema_key
NUMBER(10)
CONSTRAINT mld_r_cad_thema_key1 REFERENCES cad_thema(cad_thema_key)
);
CREATE_TABLE(cad_label,0)
(
cad_label_key
@@ -127,12 +114,7 @@ CREATE_TABLE(cad_label,0)
NUMBER,
fac_functie_key
NUMBER(10)
CONSTRAINT cad_fac_functie_key2 REFERENCES fac_functie(fac_functie_key),
cad_label_visible
NUMBER(1)
DEFAULT 1
NOT NULL
CONSTRAINT cad_c_cad_label_visible CHECK (cad_label_visible IN (0,1))
CONSTRAINT cad_fac_functie_key2 REFERENCES fac_functie(fac_functie_key)
);
CREATE_TABLE(cad_imp_contour,0)
@@ -156,11 +138,11 @@ CREATE_TABLE(cad_imp_contour,0)
cad_imp_contour_concept
NUMBER(1) -- valid are 0, 1
DEFAULT 0
-- in PRJ_TAB.SRC:
-- prj_scenario_key
-- in PRJ_TAB.SRC:
-- prj_scenario_key
-- NUMBER(10) REFERENCES prj_scenario(prj_scenario_key) ON DELETE CASCADE
);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: CAD_TAB.SRC $','$Revision$')
#endif // CAD

View File

@@ -40,8 +40,6 @@ CREATE_TRIGGER(cad_t_cad_thema_B_IU)
BEFORE INSERT OR UPDATE ON cad_thema
FOR EACH ROW
BEGIN
-- Geeft een 44002 als invalid
:new.cad_thema_view := DBMS_ASSERT.SQL_OBJECT_NAME(:new.cad_thema_view);
UPDATE_PRIMARY_KEY(cad_thema_key, cad_s_cad_thema_key);
END;
/
@@ -50,8 +48,6 @@ CREATE_TRIGGER(cad_t_cad_label_B_IU)
BEFORE INSERT OR UPDATE ON cad_label
FOR EACH ROW
BEGIN
-- Geeft een 44002 als invalid
:new.cad_label_view := DBMS_ASSERT.SQL_OBJECT_NAME(:new.cad_label_view);
UPDATE_PRIMARY_KEY(cad_label_key, cad_s_cad_label_key);
END;
/
@@ -64,6 +60,6 @@ BEGIN
END;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: CAD_TRI.SRC $','$Revision$')
#endif

View File

@@ -11,6 +11,51 @@ CREATE_VIEW(cad_v_cad_aanwezigtekening,0) AS
FROM ins_discipline)
OR C_T.ins_discipline_key IS NULL);
CREATE_VIEW(cad_v_cad_tekening_gegevens,0)
(cad_tekening_key,
alg_locatie_key,
alg_locatie_code,
alg_gebouw_key,
alg_gebouw_code,
alg_verdieping_key,
alg_verdieping_omschrijving,
ins_discipline_key,
ins_discipline_omschrijving) AS
SELECT C_T.cad_tekening_key,
C_T.alg_locatie_key,
ALG_L.alg_locatie_code,
ALG_G.alg_gebouw_key,
ALG_G.alg_gebouw_code,
C_T.alg_verdieping_key,
ALG_V.alg_verdieping_omschrijving,
C_T.ins_discipline_key,
INS_D.ins_discipline_omschrijving
FROM alg_locatie ALG_L,
alg_verdieping ALG_V,
alg_gebouw ALG_G,
ins_discipline INS_D,
cad_v_cad_aanwezigtekening C_T
WHERE C_T.alg_locatie_key = ALG_L.alg_locatie_key
AND C_T.alg_verdieping_key = ALG_V.alg_verdieping_key (+)
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key (+)
AND C_T.ins_discipline_key = INS_D.ins_discipline_key (+);
CREATE_VIEW(cad_v_plattegrond,0) AS
SELECT * FROM cad_tekening
WHERE cad_tekening_verwijder IS NULL
AND UPPER(cad_tekening_type) = 'P';
CREATE_VIEW(cad_v_contour,0) AS
SELECT * FROM cad_tekening
WHERE cad_tekening_verwijder IS NULL
AND UPPER(cad_tekening_type) = 'C';
CREATE_VIEW(cad_v_discipline,0) AS
SELECT * FROM cad_tekening
WHERE cad_tekening_verwijder IS NULL
AND UPPER(cad_tekening_type) = 'D';
/* mapping van labels in tekening met ruimtenr in database
* let op: de applicatie kan van een specifieke variant gebruikmaken
* deze heet dan XXXX_V_SYNC..
@@ -36,6 +81,84 @@ SELECT
t.alg_terreinsector_code
FROM alg_v_aanwezigterreinsector t;
/* View met ALLE tekeningen, ongeacht de autorisatie; minimale kolommen, gebruikt in CAD_PAC.SRC */
CREATE_VIEW(cad_v_cad_tekening,0) AS
SELECT ins_discipline_key,
alg_locatie_key,
alg_verdieping_key,
cad_tekening_type,
cad_tekening_filenaam
FROM cad_tekening C_T
WHERE cad_tekening_verwijder IS NULL;
/* 29-06-1998 KTH LOG#1905
* View CAD_V_INS_DEEL wordt door de AutoCAD Map-user FCLTCAD geraadpleegd.
* Bij die user heet de SYNONYM ernaar toe anders (zie CAD_ROL).
*/
CREATE_VIEW(cad_v_ins_deel,0)
(ins_deel_key,
ins_deel_cadlabel,
ins_srtdeel_omschrijving,
ins_deel_oppervlak,
ins_deel_omtrek
) AS
SELECT D.ins_deel_key,
D.ins_deel_omschrijving,
SD.ins_srtdeel_omschrijving,
NVL(TO_CHAR(D.ins_deel_oppervlak),'-')||' m2',
NVL(TO_CHAR(D.ins_deel_omtrek),'-')||' m'
FROM all_v_aanwezigdeel D, ins_srtdeel SD
WHERE SD.ins_srtdeel_key=D.ins_srtdeel_key;
CREATE_VIEW(cad_v_lpn_ins_deel_2,0) AS
SELECT
D.ins_deel_key,
ins_srtkenmerk_omschrijving,
KD.ins_kenmerkdeel_waarde ||' '|| SK.ins_srtkenmerk_dimensie INS_KENMERKDEEL_WAARDE2
FROM
ins_srtkenmerk SK,
ins_kenmerk K,
ins_kenmerkdeel KD,
ins_deel D
WHERE SK.ins_srtkenmerk_key=K.ins_srtkenmerk_key
AND K.ins_kenmerk_key=KD.ins_kenmerk_key
AND KD.ins_deel_key=D.ins_deel_key
AND KD.ins_kenmerkdeel_verwijder IS NULL;
CREATE_VIEW(cad_v_lpn_ins_deel_1,0) AS
SELECT
D.ins_deel_key,
SD.ins_srtdeel_omschrijving,
D.ins_deel_omschrijving
FROM
ins_srtdeel SD,
ins_deel D
WHERE D.ins_srtdeel_key = SD.ins_srtdeel_key;
CREATE_VIEW(cad_v_prs_werkplek,0)
(prs_werkplek_key,
prs_werkplek_cadlabel,
prs_werkplek_volgnr,
prs_werkplek_omschrijving,
prs_werkplek_opp
) AS
SELECT W.prs_werkplek_key,
W.prs_werkplek_volgnr,
W.prs_werkplek_volgnr,
W.prs_werkplek_omschrijving,
W.prs_werkplek_opp /* Alleen een waarde indien prs_werkplek_vastopp 1 is, anders te traag? */
FROM prs_v_aanwezigwerkplek W;
CREATE_VIEW(cad_v_lpn_prs_werkplek_1,0) AS
SELECT W.prs_werkplek_key,
W.prs_werkplek_volgnr,
W.prs_werkplek_omschrijving
FROM prs_v_aanwezigwerkplek W;
/* Standard thema/label views */
// Zowel label-views als thema-views hebben de kolommen alg_ruimte_key en waarde
// Feature: Sommige thema views kunnen updatable zijn!
@@ -54,14 +177,14 @@ SELECT prs_w.prs_alg_ruimte_key,
prs_p.prs_perslid_naam
|| DECODE (prs_p.prs_perslid_voorletters, NULL, '', ', ' || prs_p.prs_perslid_voorletters)
|| DECODE (prs_p.prs_perslid_voornaam, NULL, '', ' (' || prs_p.prs_perslid_voornaam || ')')
FROM prs_werkplek prs_w, prs_perslidwerkplek prs_pw, prs_perslid prs_p
FROM prs_v_aanwezigwerkplek prs_w, prs_v_aanwezigperslidwerkplek prs_pw, prs_perslid prs_p
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
AND prs_pw.prs_perslid_key IS NOT NULL
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
AND prs_w.prs_werkplek_virtueel = 0
UNION
SELECT prs_w.prs_alg_ruimte_key, '[Vrij]'
FROM prs_werkplek prs_w, prs_v_werkplek_bezetting prs_wb
FROM prs_v_aanwezigwerkplek prs_w, prs_v_werkplek_bezetting prs_wb
WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key
AND prs_w.prs_werkplek_virtueel = 0
AND prs_wb.prs_werkplek_bezetting < 100;
@@ -140,7 +263,9 @@ AS
|| TO_CHAR (NVL (prs_pw.prs_perslidwerkplek_bezetting, 0))
|| '%' waarde
FROM prs_werkplek prs_w,
prs_perslidwerkplek prs_pw,
(SELECT *
FROM prs_perslidwerkplek
WHERE prs_perslidwerkplek_verwijder IS NULL) prs_pw,
prs_perslid prs_p
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
AND prs_pw.prs_perslid_key IS NOT NULL
@@ -153,8 +278,10 @@ AS
|| TO_CHAR (100 - NVL (SUM (prs_wb.prs_perslidwerkplek_bezetting), 0))
|| '%'
FROM prs_werkplek prs_w,
prs_perslidwerkplek prs_wb
WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key(+)
(SELECT *
FROM prs_perslidwerkplek
WHERE prs_perslidwerkplek_verwijder IS NULL) prs_wb
WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key(+) AND prs_werkplek_verwijder IS NULL
GROUP BY prs_w.prs_alg_ruimte_key, prs_w.prs_werkplek_key, prs_w.prs_werkplek_volgnr
HAVING SUM (NVL (prs_wb.prs_perslidwerkplek_bezetting, 0)) < 100) DATA
/
@@ -164,43 +291,48 @@ CREATE_VIEW(CAD_V_THEMA_AANTALWP, 0) (ALG_RUIMTE_KEY, WAARDE)
AS
SELECT wp.prs_alg_ruimte_key, COUNT (*)
FROM PRS_WERKPLEK wp
WHERE wp.prs_werkplek_verwijder IS NULL
GROUP BY prs_alg_ruimte_key;
/
CREATE_VIEW(cad_v_label_werkplekken,0)
(alg_ruimte_key, waarde, highlight)
AS
SELECT prs_alg_ruimte_key,
CHR (1)
|| prs_werkplek_volgnr
|| ' ('
|| TO_CHAR (wpopp, 'FM9990.0')
|| ' m2'
|| DECODE (bez, 100, '', ' '||TO_CHAR (bez) || '%')
|| ')'
waarde,
DECODE (SIGN (bez - 100), 1, 2, 0) highlight
FROM ( SELECT prs_w.prs_alg_ruimte_key,
prs_w.prs_werkplek_volgnr,
SUM (NVL (prs_pw.prs_perslidwerkplek_bezetting, 0)) bez,
wpopp
FROM prs_werkplek prs_w,
prs_v_werkplek_oppervlakte pwo,
prs_perslidwerkplek prs_pw
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key(+)
AND pwo.prs_werkplek_key(+) = prs_w.prs_werkplek_key
GROUP BY prs_w.prs_alg_ruimte_key,
prs_w.prs_werkplek_volgnr,
'prs_werkplek',
prs_w.prs_werkplek_key,
wpopp);
SELECT prs_alg_ruimte_key,
CHR (1)
|| prs_werkplek_volgnr
|| ' ('
|| TO_CHAR (wpopp, 'FM9999.0')
|| 'm2 '
|| TO_CHAR (bez)
|| '%)' waarde,
DECODE (SIGN (bez - 100),
1, 2,
0
) highlight
FROM (SELECT prs_w.prs_alg_ruimte_key, prs_w.prs_werkplek_volgnr,
SUM (NVL (prs_pw.prs_perslidwerkplek_bezetting, 0)) bez,
wpopp
FROM PRS_WERKPLEK prs_w,
prs_v_werkplek_oppervlakte pwo,
(SELECT *
FROM PRS_PERSLIDWERKPLEK
WHERE prs_perslidwerkplek_verwijder IS NULL) prs_pw
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key(+)
AND pwo.prs_werkplek_key(+) = prs_w.prs_werkplek_key
AND prs_w.prs_werkplek_verwijder IS NULL
GROUP BY prs_w.prs_alg_ruimte_key,
prs_w.prs_werkplek_volgnr,
'prs_werkplek',
prs_w.prs_werkplek_key,
wpopp) vdata;
CREATE_VIEW(CAD_V_THEMA_WPOPP, 0)
(alg_ruimte_key, waarde)
AS
SELECT wp.prs_alg_ruimte_key, r.alg_ruimte_bruto_vloeropp / COUNT (prs_werkplek_key)
FROM PRS_WERKPLEK wp, ALG_RUIMTE r
WHERE wp.prs_alg_ruimte_key = r.alg_ruimte_key
WHERE wp.prs_werkplek_verwijder IS NULL AND wp.prs_alg_ruimte_key = r.alg_ruimte_key
GROUP BY wp.prs_alg_ruimte_key, r.alg_ruimte_bruto_vloeropp
/
@@ -397,10 +529,12 @@ AS
WHERE NOT EXISTS
(SELECT ''
FROM prs_werkplek
WHERE prs_alg_ruimte_key = alg_ruimte_key)
WHERE prs_werkplek_verwijder IS NULL
AND prs_alg_ruimte_key = alg_ruimte_key)
UNION
SELECT DISTINCT prs_alg_ruimte_key, -2
FROM prs_werkplek;
FROM prs_werkplek
WHERE prs_werkplek_verwijder IS NULL;
CREATE_VIEW(cad_v_label_flexwerkers, 0)
(
@@ -412,6 +546,7 @@ AS
FROM prs_werkplek wp, prs_perslidwerkplek pwp, prs_v_perslid_fullnames pf
WHERE pwp.prs_perslid_key = pf.prs_perslid_key
AND wp.prs_werkplek_key = pwp.prs_werkplek_key
AND pwp.prs_perslidwerkplek_verwijder IS NULL
AND wp.prs_werkplek_type = 1;
-- Een werkplekkleurenthema, flex/vast/vrij/bezet
@@ -430,43 +565,12 @@ AS
END)
status
FROM prs_werkplek wp, prs_perslidwerkplek pwp
WHERE wp.prs_werkplek_virtueel = 0
WHERE wp.prs_werkplek_verwijder IS NULL
AND pwp.prs_perslidwerkplek_verwijder IS NULL
AND wp.prs_werkplek_virtueel = 0
AND pwp.prs_werkplek_key(+) = wp.prs_werkplek_key
GROUP BY wp.prs_werkplek_key;
-- Werkplekthema met de bezetter(s) ervan
CREATE_VIEW(cad_v_label_wp_bewoner, 0)
(
prs_werkplek_key,
waarde
)
AS
SELECT DISTINCT
prs_w.prs_werkplek_key,
DECODE (
prs_p.prs_perslid_voornaam,
NULL,
DECODE (prs_p.prs_perslid_voorletters,
NULL, '',
prs_p.prs_perslid_voorletters || ' '),
prs_p.prs_perslid_voornaam || ' ')
|| DECODE (prs_p.prs_perslid_tussenvoegsel,
NULL, '',
prs_p.prs_perslid_tussenvoegsel || ' ')
|| prs_p.prs_perslid_naam
|| CASE
WHEN prs_pw.prs_perslidwerkplek_bezetting < 100
THEN
' (' || TO_CHAR (NVL (prs_pw.prs_perslidwerkplek_bezetting, 0)) || '%)'
END
waarde
FROM prs_werkplek prs_w,
prs_perslidwerkplek prs_pw,
prs_perslid prs_p
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
AND prs_pw.prs_perslid_key IS NOT NULL
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key;
-- Reserveerbare ruimtes kleurenthema (waarde = aantal minuten nog vrij)
CREATE_VIEW(cad_v_thema_ruimte_reservering,0)
(ALG_RUIMTE_KEY, WAARDE)
@@ -490,40 +594,12 @@ AS
blokkerend.res_ruimte_opstel_key(+))
GROUP BY alg_ruimte_key;
-- Reserveerbare ruimtes label thema, toont de ruimtenaam van
-- ruimtes die reserveerbaar zijn, hetzij door een reservering,
-- hetzij door een sensor
-- DEZE VIEW WORDT STANDAARD GEBRUIKT ALS DEFAULT THEMA VOOR HET INFOBORD
CREATE_VIEW(cad_v_label_bezetbareruimtes, 0)
(
alg_ruimte_key,
waarde
)
AS
SELECT rar.alg_ruimte_key, MIN (COALESCE(res_ruimte_friendlyname, res_ruimte_nr)) waarde
FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rar
WHERE rro.res_ruimte_key = rr.res_ruimte_key
AND rar.res_ruimte_key = rr.res_ruimte_key
AND rar.res_alg_ruimte_verwijder IS NULL
GROUP BY rar.alg_ruimte_key
UNION
SELECT alg_ruimte_key, alg_ruimte_nr
FROM alg_ruimte r, ins_deel d, ins_srtdeel sd
WHERE d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_deel_state IS NOT NULL
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = fac.getSetting('ins_occupationsensors_srtgroep_key')
AND NOT EXISTS (SELECT ''
FROM res_alg_ruimte
WHERE alg_ruimte_key = r.alg_ruimte_key);
-- Reserveerbare ruimtes label thema
-- Let op: Toont *eerstvolgende* reservering als die binnen een uur begint
CREATE_VIEW(cad_v_label_ruimte_reservering,0)
(ALG_RUIMTE_KEY, WAARDE)
AS
SELECT rar.alg_ruimte_key, MAX (COALESCE(res_ruimte_friendlyname, res_ruimte_nr) || res_info.tekst) waarde
SELECT rar.alg_ruimte_key, MAX (res_ruimte_nr || res_info.tekst) waarde
FROM res_ruimte_opstelling rro,
res_ruimte rr,
res_alg_ruimte rar,
@@ -533,7 +609,7 @@ AS
|| TO_CHAR (res_rsv_ruimte_van, 'HH24:MI')
|| '-'
|| TO_CHAR (res_rsv_ruimte_tot, 'HH24:MI')
|| '[br][s50]'
|| '[br][s50]host: '
|| prs_perslid_naam_full
|| '[br][s80][b]'
|| res_rsv_ruimte_omschrijving)
@@ -590,338 +666,6 @@ AS
AND res_rsv_deel_tot - 1 / 24 / 60) res -- NU bezig
WHERE isd.ins_deel_key = res.res_ins_deel_key(+);
-- Deze core-view wordt direct als label-thema (13) gebruikt, maar kan ook als basis voor een alternatief via
-- create view myview (fclt_f_datum, ins_deel_key, waarde) as select fclt_f_datum, ins_deel_key, waarde3 from cad_v_label_deel_res_datum.
-- Kijkt nu hard maximaal 42 dagen tov van nu vooruit, wat hopelijk even genoeg is voor alle situaties
-- De verschillende waardevarianten zijn presentatie alternatieven, evt meerdere regels onder elkaar
-- Merk op dat waarde_html ook een class meeneemt, waarmee in CSS gestyld kan worden
-- Voor 2d
-- waarde1: Naam (van-tot)
-- waarde: van Naam [default]
-- waarde3: Naam
-- Voor 3d
-- waarde_html: van Naam [default]
-- waarde_html2: Naam
CREATE_VIEW(cad_v_label_deel_res_datum, 0)
(
fclt_f_datum,
ins_deel_key,
res_deel_omschrijving,
waarde1,
waarde,
waarde3,
waarde_html,
waarde_html2
)
AS
WITH
datums
AS
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 42)
SELECT datums.datum
fclt_f_datum,
isd.res_ins_deel_key
ins_deel_key,
res_deel_omschrijving,
CHR (10)
|| LISTAGG (
DECODE (
prs_perslid_naam_friendly,
NULL, '',
'[s40]'
|| prs_perslid_naam_friendly
|| ' ('
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|| '-'
|| DECODE (TRUNC (res_rsv_deel_tot),
TRUNC (res_rsv_deel_van), TO_CHAR (res_rsv_deel_tot, 'HH24:MI'),
TO_CHAR (res_rsv_deel_tot, 'DD-MM-YYYY HH24:MI'))
|| ')'),
CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde1,
CHR (10)
|| LISTAGG (
DECODE (
prs_perslid_naam_friendly,
NULL, '',
'[s40]'
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|| ' '
|| prs_perslid_naam_friendly),
CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde2,
CHR (10)
|| LISTAGG (
DECODE (prs_perslid_naam_friendly,
NULL, '',
'[s40]' || prs_perslid_naam_friendly),
CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde3,
LISTAGG (
DECODE (
prs_perslid_naam_friendly,
NULL, '',
'<span class="body">'
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|| ' '
|| prs_perslid_naam_friendly
|| '</span>'),
'<br>')
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde_html,
LISTAGG (
DECODE (prs_perslid_naam_friendly,
NULL, '',
'<span class="body">' || prs_perslid_naam_friendly || '</span>'),
'<br>')
WITHIN GROUP (ORDER BY res_rsv_deel_van)
waarde_html2
FROM res_v_aanwezigdeel isd,
datums,
(SELECT datum,
res_ins_deel_key,
prs_perslid_naam_friendly,
res_rsv_deel_van,
res_rsv_deel_tot
FROM res_v_aanwezigdeel r,
res_v_aanwezigrsv_deel rrd,
res_rsv_ruimte rrr,
prs_v_perslid_fullnames p,
datums
WHERE r.res_deel_key = rrd.res_deel_key
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND datum >= TRUNC (res_rsv_deel_van)
AND datum < TRUNC (res_rsv_deel_tot + 1)) res -- Bezet
WHERE isd.res_ins_deel_key = res.res_ins_deel_key(+) AND datums.datum = res.datum(+)
GROUP BY datums.datum, isd.res_ins_deel_key, res_deel_omschrijving;
--
-- Thema's gebaseerd op objectstatus van objecten binnen ruimte/werkplek (typisch sensoren)
--
CREATE_VIEW(cad_v_thema_ruimtesensor,0)
(
alg_ruimte_key,
waarde
)
AS
SELECT r.alg_ruimte_key alg_ruimte_key, initcap(d.ins_deel_state) status
FROM alg_ruimte r, ins_deel d, ins_srtdeel sd
WHERE r.alg_ruimte_verwijder IS NULL
AND d.ins_deel_verwijder IS NULL
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = fac.getSetting('ins_occupationsensors_srtgroep_key')
AND d.ins_deel_state IS NOT NULL;
-- Kleurenthema dat reserveringen en actuele bezetting weergeeft
-- Geeft van de overige ruimte de ruimtesoort terug
-- DEZE VIEW WORDT STANDAARD GEBRUIKT ALS DEFAULT THEMA VOOR HET INFOBORD
CREATE_VIEW(cad_v_thema_srtruimtesensor, 0)
(
alg_ruimte_key,
waarde
)
AS
-- zalen met een sensor
SELECT alg_ruimte_key, DECODE (MAX (status), 0, 'Uit', 2, 'Aan', 'NoShow')
FROM ( SELECT r.alg_ruimte_key,
DECODE (
INITCAP (d.ins_deel_state),
'0', -- als de sensor uit is kijken we naar de reservering
DECODE (r2a.res_reservering_key,
NULL, 0, -- als er geen reservering gescheduled staat is de status uit
DECODE (eerste10min, 1, 2, 1)), -- in de eerste 10 minuten v/d reservering melden we nog geen noshow(1) aan(2)
2)
status
FROM alg_ruimte r,
ins_deel d,
ins_srtdeel sd,
(SELECT rr2a.res_reservering_key,
rr2a.alg_ruimte_key,
CASE WHEN (SYSDATE - res_rsv_ruimte_van > 10 / 1440)
THEN 0
ELSE 1
END eerste10min
FROM res_v_rsv_ruimte_2_alg_ruimte rr2a
WHERE res_rsv_ruimte_dirtlevel = 0
AND rr2a.res_alg_ruimte_verwijder IS NULL
AND rr2a.res_rsv_ruimte_van BETWEEN TRUNC(SYSDATE) AND SYSDATE -- Voorkennis: geen meerdaagse ruimtereserveringen
AND rr2a.res_rsv_ruimte_tot BETWEEN SYSDATE AND TRUNC(SYSDATE + 1)) r2a
WHERE r.alg_ruimte_verwijder IS NULL
AND d.ins_deel_verwijder IS NULL
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = fac.getSetting('ins_occupationsensors_srtgroep_key')
AND d.ins_deel_state IS NOT NULL
AND r.alg_ruimte_key = r2a.alg_ruimte_key(+))
GROUP BY alg_ruimte_key
UNION ALL -- en dan de ruimten zonder sensor
SELECT r.alg_ruimte_key,
DECODE (rr.res_ruimte_key, -- is dit een vergaderruimte?
NULL, '*' || sr.alg_srtruimte_omschrijving,
DECODE (r2a.res_reservering_key, NULL, 'Uit', 'Aan')) -- 0 uit / 1 noshow / 2 aan
FROM alg_v_aanwezigruimte r,
alg_srtruimte sr,
(SELECT rr2a.res_reservering_key, rr2a.alg_ruimte_key
FROM res_v_rsv_ruimte_2_alg_ruimte rr2a
WHERE res_rsv_ruimte_dirtlevel = 0
AND rr2a.res_alg_ruimte_verwijder IS NULL
AND rr2a.res_rsv_ruimte_van BETWEEN TRUNC(SYSDATE) AND SYSDATE
AND rr2a.res_rsv_ruimte_tot BETWEEN SYSDATE AND TRUNC(SYSDATE + 1)) r2a,
( SELECT alg_ruimte_key, MAX (res_ruimte_key) res_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY alg_ruimte_key) rr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
AND r.alg_ruimte_key = r2a.alg_ruimte_key(+)
AND r.alg_ruimte_key = rr.alg_ruimte_key(+)
AND NOT EXISTS
(SELECT r.alg_ruimte_key
FROM ins_deel d, ins_srtdeel sd
WHERE d.ins_deel_verwijder IS NULL
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = fac.getSetting('ins_occupationsensors_srtgroep_key')
AND d.ins_deel_state IS NOT NULL);
CREATE_VIEW(cad_v_thema_wpsensor,0)
(
prs_werkplek_key,
waarde
)
AS
SELECT wp.prs_werkplek_key prs_werkplek_key, initcap(d.ins_deel_state) status
FROM prs_werkplek wp, ins_deel d, ins_srtdeel sd
WHERE d.ins_deel_verwijder IS NULL
AND wp.prs_werkplek_virtueel = 0
AND d.ins_alg_ruimte_type = 'W'
AND d.ins_alg_ruimte_key = wp.prs_werkplek_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = fac.getSetting('ins_occupationsensors_srtgroep_key')
AND d.ins_deel_state IS NOT NULL;
-- View voor reserveerbare (werkplek)OBJECTEN, het default thema met key 13
-- Deze core-view wordt direct als kleur-objecten-thema gebruikt, maar kan ook als basis voor een alternatief via worden gebruikt
-- Kijkt nu hard maximaal 42 dagen tov van nu vooruit, wat hopelijk even genoeg is voor alle situaties
-- De verschillende waardevarianten zijn presentatie alternatieven, evt meerdere regels onder elkaar
-- waarde1: Voor hele dagen: Vrij(0) of Bezet (3)
-- waarde: Voor halve dagen: Vrij(0), Ochtendbezet(1), MiddagBezet(2), Helemaalbezet(3)
-- waarde3: Voor tellen: Het aantal reservering op de dag, met 0 is dus Vrij
CREATE_VIEW(cad_v_thema_deel_res_datum,0)
(
fclt_f_datum,
ins_deel_key,
min_van,
max_tot,
waarde1,
waarde,
waarde3
)
AS
WITH
datums
AS
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 42)
SELECT datum
fclt_f_datum,
ins_deel_key,
MIN (res_rsv_deel_van)
min_van,
MAX (res_rsv_deel_tot)
max_tot,
CASE WHEN MAX (res_rsv_deel_tot) IS NULL THEN 0 ELSE 3 -- hele dag
END
waarde1,
CASE
WHEN MAX (res_rsv_deel_tot) IS NULL THEN 0
WHEN TO_CHAR (MAX (res_rsv_deel_tot), 'HH24') <= 13 THEN 1 -- ochtend
WHEN TO_CHAR (MIN (res_rsv_deel_van), 'HH24') >= 12 THEN 2 -- middag
ELSE 3 -- hele dag
END
waarde,
COUNT (res_rsv_deel_tot) -- aantal reservering deze dag
waarde3
FROM (SELECT datums.datum,
res_ins_deel_key ins_deel_key,
res_rsv_deel_van,
res_rsv_deel_tot
FROM res_v_aanwezigdeel r,
ins_deel d,
datums,
(SELECT datum,
res_deel_key,
res_rsv_deel_van,
res_rsv_deel_tot
FROM datums, res_v_aanwezigrsv_deel rrd
WHERE res_rsv_deel_van > TRUNC(SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
AND datum >= TRUNC (res_rsv_deel_van)
AND datum < TRUNC (res_rsv_deel_tot) + 1) blokkerend -- vandaag en nog niet afgelopen
WHERE r.res_deel_key = blokkerend.res_deel_key(+)
AND datums.datum = blokkerend.datum(+)
AND (r.res_deel_vervaldatum IS NULL or r.res_deel_vervaldatum > datums.datum)
AND d.ins_deel_key = r.res_ins_deel_key)
GROUP BY datum, ins_deel_key
ORDER BY datum, ins_deel_key;
-- Paar views om de populariteit van reserveerbare objecten te kunnen illustreren
-- Basisview, met aantal per datum
CREATE_VIEW(cad_v_thema_deel_gereserveerd,0)
AS
SELECT TRUNC (rrd.res_rsv_deel_van) datum,
rd.res_ins_deel_key ins_deel_key,
rd.res_deel_omschrijving,
COUNT (*) aantal
FROM res_rsv_deel rrd, res_deel rd
WHERE rrd.res_deel_key = rd.res_deel_key
GROUP BY TRUNC (rrd.res_rsv_deel_van), rd.res_ins_deel_key, rd.res_deel_omschrijving;
-- Totaal gereserveerde dagen of delen daarvan in de afgelopen 1, 4 resp 8 wkn
CREATE_VIEW(cad_v_thema_deel_populair_1wkn,0)
AS
SELECT ins_deel_key, res_deel_omschrijving, COUNT (*) waarde
FROM cad_v_thema_deel_gereserveerd
WHERE datum BETWEEN SYSDATE - 8 AND SYSDATE
GROUP BY ins_deel_key, res_deel_omschrijving;
CREATE_VIEW(cad_v_thema_deel_populair_4wkn,0)
AS
SELECT ins_deel_key, res_deel_omschrijving, COUNT (*) waarde
FROM cad_v_thema_deel_gereserveerd
WHERE datum BETWEEN SYSDATE - 29 AND SYSDATE
GROUP BY ins_deel_key, res_deel_omschrijving;
CREATE_VIEW(cad_v_thema_deel_populair_8wkn,0)
AS
SELECT ins_deel_key, res_deel_omschrijving, COUNT (*) waarde
FROM cad_v_thema_deel_gereserveerd
WHERE datum BETWEEN SYSDATE - 57 AND SYSDATE
GROUP BY ins_deel_key, res_deel_omschrijving;
-- Toekomstig populair
CREATE_VIEW(cad_v_thema_deel_populair_futu,0)
AS
SELECT ins_deel_key, res_deel_omschrijving, COUNT (*) waarde
FROM cad_v_thema_deel_gereserveerd
WHERE datum > SYSDATE
GROUP BY ins_deel_key, res_deel_omschrijving;
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: CAD_VIE.SRC $','$Revision$')
#endif // CAD

View File

@@ -1,7 +1,7 @@
-- [CARE*.SQL]
--
-- Script tbv het initialiseren van de Facilitor Care-Webb omgeving in Oracle
-- Copyright Aareon Nederland B.V.
-- Copyright 2010 SG|facilitor bv.
-- All rights reserved!
/*
* $Revision$
@@ -15,7 +15,7 @@ SET DEFINE OFF
SPOOL xcarewebb
PROMPT [carewebb.lst]
PROMPT
PROMPT Copyright Aareon Nederland B.V. ALL RIGHTS RESERVED.
PROMPT Copyright 2010 SG|facilitor bv. ALL RIGHTS RESERVED.
PROMPT
PROMPT Dit is de gegenereerde list-file van CARExxxx.sql welke
PROMPT is gebruikt om de Facilitor(r) Care-Webb _VERSION omgeving in Oracle aan te
@@ -26,7 +26,7 @@ SHOW USER
PROMPT
PROMPT
SET LINESIZE 1000
SET LINESIZE 500
SET ECHO ON
#include "care\care_tab.src"
#include "care\care_ind.src"
@@ -39,12 +39,12 @@ COMMIT;
///////////////////////////// finally compile all views, triggers etc acc to the latest state ///////
BEGIN DBMS_UTILITY.COMPILE_SCHEMA(USER, FALSE); END;
/
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: CARE.SRC $','$Revision$')
COMMIT;
///////////////////////////// Report invalid objects, if any ///////
SET ECHO OFF
SET LINESIZE 132
SET LINESIZE 120
PROMPT List of all invalid objects after Facilitor Care-Webb upgrade:
SELECT _VERSION||' Warning: ' || object_type || ' ' || object_name || ' is ' || status
FROM user_objects

View File

@@ -5,4 +5,4 @@
CREATE INDEX care_i_periode ON care_periode(jaar, periode, week, maandag);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: CARE_IND.SRC $','$Revision$')

View File

@@ -5,7 +5,7 @@
* $Id$
*/
_FAC_MODULE('CARE','lcl_module_CARE')
_FAC_MODULE('CARE','Care-Webb')
------------ De eenvoudige bedrijfsstructuur vormgeven via 3 nivo's: bedrijf, afdeling en subafdeling ------------
@@ -44,8 +44,8 @@ CREATE SEQUENCE prs_s_prs_afdeling_key START WITH 2000 NOCACHE;
-- FAC-TABELLEN FAC_USRTAB, FAC_USRDATA
-- Eigen tabel Produkt met HV1 en HV2
INSERT INTO fac_usrtab (fac_usrtab_key, fac_usrtab_naam, fac_usrtab_omschrijving)
VALUES (1, 'Produkt', 'Produkt');
INSERT INTO fac_usrtab (fac_usrtab_key, fac_usrtab_naam, fac_usrtab_omschrijving, fac_usrtab_view)
VALUES (1, 'Produkt', 'Produkt', 'T');
INSERT INTO fac_usrdata (fac_usrdata_key, fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
VALUES(1,1,'HV1','HV1');
INSERT INTO fac_usrdata (fac_usrdata_key, fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
@@ -55,16 +55,16 @@ INSERT INTO fac_usrdata (fac_usrdata_key, fac_usrtab_key, fac_usrdata_code, fac_
VALUES(3,1,'HV3','HV3');
-- Eigen tabel ManVrouw met Man en Vrouw
INSERT INTO fac_usrtab (fac_usrtab_key, fac_usrtab_naam, fac_usrtab_omschrijving)
VALUES (21, 'ManVrouw', 'ManVrouw');
INSERT INTO fac_usrtab (fac_usrtab_key, fac_usrtab_naam, fac_usrtab_omschrijving, fac_usrtab_view)
VALUES (21, 'ManVrouw', 'ManVrouw', 'T');
INSERT INTO fac_usrdata (fac_usrdata_key, fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
VALUES(21,21,'Man','Man');
INSERT INTO fac_usrdata (fac_usrdata_key, fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
VALUES(22,21,'Vrouw','Vrouw');
-- Eigen tabel $SYSTEM-CAK: een systeemtabel met allerlei instellingen voor het CAK rapport
INSERT INTO fac_usrtab (fac_usrtab_key, fac_usrtab_naam, fac_usrtab_omschrijving)
VALUES (41, '$SYSTEM-CAK', 'Systeem tabel voor CAK rapport');
INSERT INTO fac_usrtab (fac_usrtab_key, fac_usrtab_naam, fac_usrtab_omschrijving, fac_usrtab_view)
VALUES (41, '$SYSTEM-CAK', 'Systeem tabel voor CAK rapport', 'T');
INSERT INTO fac_usrdata (fac_usrdata_key, fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
VALUES(41,41,'BESTANDSNUMMER','000');
INSERT INTO fac_usrdata (fac_usrdata_key, fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
@@ -87,8 +87,8 @@ VALUES(49,41,'HV3','100');
INSERT INTO fac_usrtab (fac_usrtab_key, fac_usrtab_naam, fac_usrtab_omschrijving)
VALUES (61, 'Redenbeeindiging', 'Redenbeeindiging');
INSERT INTO fac_usrtab (fac_usrtab_key, fac_usrtab_naam, fac_usrtab_omschrijving, fac_usrtab_view)
VALUES (61, 'Redenbeeindiging', 'Redenbeeindiging', 'T');
INSERT INTO fac_usrdata (fac_usrdata_key, fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
VALUES(61,61,'Sterfgeval','Sterfgeval');
INSERT INTO fac_usrdata (fac_usrdata_key, fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
@@ -100,8 +100,8 @@ VALUES(64,61,'Op verzoek aanbieder','Op verzoek aanbieder');
-- ATCH#21595: Google km: Nieuw flexveld auto/rijbewijs via ref_kenmerkdomein/standaard tabel JaNee
-- Eigen tabel Ja-Nee met de waarden 'Ja' en 'Nee'
INSERT INTO fac_usrtab (fac_usrtab_key, fac_usrtab_naam, fac_usrtab_omschrijving)
VALUES (81, 'JaNee', 'JaNee');
INSERT INTO fac_usrtab (fac_usrtab_key, fac_usrtab_naam, fac_usrtab_omschrijving, fac_usrtab_view)
VALUES (81, 'JaNee', 'JaNee', 'T');
INSERT INTO fac_usrdata (fac_usrdata_key, fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
VALUES(81,81,'Ja','Ja');
INSERT INTO fac_usrdata (fac_usrdata_key, fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr)
@@ -137,41 +137,22 @@ INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,a
alg_kenmerk_lengte,alg_kenmerk_dec,alg_kenmerk_nmin)
VALUES (1002, 'L', 30, 'Tarief HV3', 'EUR. / uur', 'N', 1, 5, 2, 0);
-- BONS#23781: Client van gemeente wel/niet naar CAK. Uitgangspunt (default) = wel naar CAK. Is een vink-veldje "Niet doorzetten naar CAK", standaard uit.
INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving,
alg_kenmerk_kenmerktype, alg_kenmerk_lengte,alg_kenmerk_nmin, alg_kenmerk_nmax)
VALUES (1006, 'L', 33, 'Veiling tarieven', 'N', 1, 0, 1);
-- BONS#31596: Gemeente is een budgetgemeente, van invloed op:
-- kolom T+U+V van het Iwmo facturen rapport en,
-- de clienten worden niet naar het CAK gestuurd.
INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving,
alg_kenmerk_kenmerktype, alg_kenmerk_lengte,alg_kenmerk_nmin, alg_kenmerk_nmax)
VALUES (1007, 'L', 34, 'Budgetgemeente', 'N', 1, 0, 1);
-- BONS#32746: OB code in het CAK rapport
INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving,
alg_kenmerk_kenmerktype, alg_kenmerk_lengte,alg_kenmerk_nmin, alg_kenmerk_nmax)
VALUES (1008, 'L', 31, 'Ondersteunende Begeleiding', 'N', 1, 0, 1);
-- Label factuur-infix en factuur-postfix
INSERT INTO alg_kenmerk
INSERT INTO alg_kenmerk
(alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving, alg_kenmerk_default,alg_kenmerk_kenmerktype)
VALUES (1003, 'L', 40, 'Factuurnr specificatie','<span style="color:red">Gemeente afhankelijke factuurnummers (afwijkend van standaard) </span>','L');
VALUES (1003, 'L', 35, 'Factuurnr specificatie','<span style="color:red">Gemeente afhankelijke factuurnummers (afwijkend van standaard) </span>','L');
-- Factnr infix (ATCH#21599)
INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving, alg_kenmerk_kenmerktype, alg_kenmerk_lengte)
VALUES (1004, 'L', 42, 'Factuurnr. infix', 'C', 10);
VALUES (1004, 'L', 37, 'Factuurnr. infix', 'C', 10);
-- Factnr suffix (ATCH#21599)
INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving, alg_kenmerk_kenmerktype, alg_kenmerk_lengte)
VALUES (1005, 'L', 44, 'Factuurnr. postfix', 'C', 10);
VALUES (1005, 'L', 39, 'Factuurnr. postfix', 'C', 10);
-- Label archief
INSERT INTO alg_kenmerk
INSERT INTO alg_kenmerk
(alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving, alg_kenmerk_default,alg_kenmerk_kenmerktype)
VALUES (1020, 'L', 50, 'Documenten archief','<span style="color:red">Archivering van gemeentegebonden documenten </span>','L');
@@ -179,31 +160,9 @@ VALUES (1020, 'L', 50, 'Documenten archief','<span style="color:red">Archivering
INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving,alg_kenmerk_kenmerktype)
VALUES (1021, 'L', 60, 'Archief','M');
-- ALT HV CODES CAK
INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving,alg_kenmerk_kenmerktype, alg_kenmerk_verplicht, alg_kenmerk_groep, alg_kenmerk_lengte)
VALUES (2000, 'L', 70, 'Alt HV1','C', 2, 1, 3);
INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving,alg_kenmerk_kenmerktype, alg_kenmerk_verplicht, alg_kenmerk_groep, alg_kenmerk_lengte)
VALUES (2001, 'L', 75, 'Alt HV2','C', 2, 2, 3);
INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving,alg_kenmerk_kenmerktype, alg_kenmerk_verplicht, alg_kenmerk_groep, alg_kenmerk_lengte)
VALUES (2002, 'L', 80, 'Alt HV3','C', 2, 3, 3);
INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving,alg_kenmerk_kenmerktype, alg_kenmerk_verplicht, alg_kenmerk_groep)
VALUES (2003, 'L', 72, 'Alt HV1 startdatum','D', 2, 1);
INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving,alg_kenmerk_kenmerktype, alg_kenmerk_verplicht, alg_kenmerk_groep)
VALUES (2004, 'L', 77, 'Alt HV2 startdatum','D', 2, 2);
INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving,alg_kenmerk_kenmerktype, alg_kenmerk_verplicht, alg_kenmerk_groep)
VALUES (2005, 'L', 82, 'Alt HV3 startdatum','D', 2, 3);
INSERT INTO alg_kenmerk (alg_kenmerk_key,alg_kenmerk_niveau,alg_kenmerk_volgnr,alg_kenmerk_omschrijving,alg_kenmerk_kenmerktype)
VALUES (2006, 'L', 65, 'Alternatieve HV codes tbv CAK','L');
-- Sequence bijstellen
DROP SEQUENCE alg_s_alg_kenmerk_key;
CREATE SEQUENCE alg_s_alg_kenmerk_key START WITH 3000 NOCACHE;
CREATE SEQUENCE alg_s_alg_kenmerk_key START WITH 2000 NOCACHE;
------------------- Voor elke persoon (= client en verzorger) de volgende kenmerken -------------------
@@ -310,7 +269,7 @@ VALUES(1065, 'P', 190, 'Auto/Rijbewijs', 'R', 4);
INSERT INTO prs_kenmerk
(prs_kenmerk_key, prs_kenmerk_niveau, prs_kenmerk_volgnr ,prs_kenmerk_omschrijving,
prs_kenmerk_default, prs_kenmerk_kenmerktype)
VALUES(1080, 'P', 890, 'Documenten archief',
VALUES(1080, 'P', 890, 'Documenten archief',
'<span style="color:red">Archivering van persoonsgebonden documenten</span>', 'L');
-- Kenmerk Folder Openbaar
@@ -332,7 +291,7 @@ CREATE SEQUENCE prs_s_prs_kenmerk_key START WITH 2000 NOCACHE;
-- Profiel-tabel wordt (mis)gebruikt voor CAK acties (w.o. opnieuw aanmelden client bij CAK)
INSERT INTO fac_profiel
(fac_profiel_key, fac_profiel_omschrijving)
VALUES(1,'Zorguren naar CAK vergeten');
VALUES(1,'Opnieuw bij CAK aanmelden');
INSERT INTO fac_profiel
(fac_profiel_key, fac_profiel_omschrijving)
@@ -345,7 +304,7 @@ CREATE SEQUENCE fac_s_fac_profiel_key START WITH 2000 NOCACHE;
------------------- Voor elke meldingtype (=beschikking) de volgende kenmerken -------------------
-- MLD-TABELLEN INS_SRTDISCIPLINE, MLD_TYPEOPDR, MLD_TYPEOPDR_SRTDISCIPLINE,
-- MLD-TABELLEN INS_SRTDISCIPLINE, MLD_TYPEOPDR, MLD_TYPEOPDR_SRTDISCIPLINE,
-- MLD_REFSRTKENMERK, MLD_SRTKENMERK, MLD_KENMERK,
-- MLD_IMPROPDR, MLD_KOSTEN
@@ -365,10 +324,7 @@ CREATE SEQUENCE ins_s_ins_srtdiscipline_key START WITH 2000 NOCACHE;
UPDATE mld_typeopdr
SET mld_typeopdr_omschrijving = 'Verzorgen/huishoudelijke hulp',
mld_typeopdr_sluitmelding = 0,
mld_typeopdr_uren = 5,
mld_typeopdr_materiaal = 0,
mld_typeopdr_totaal = 0,
mld_typeopdr_factuur = 0
mld_typeopdr_matchtype = 3
WHERE mld_typeopdr_key = 5;
INSERT INTO mld_typeopdr_srtdiscipline (mld_typeopdr_key, ins_srtdiscipline_key) VALUES (5, 1);
@@ -378,12 +334,12 @@ DROP SEQUENCE mld_s_mld_typeopdr_srtdisc;
CREATE SEQUENCE mld_s_mld_typeopdr_srtdisc START WITH 2000 NOCACHE;
INSERT INTO fac_kenmerkdomein
(fac_kenmerkdomein_key, fac_kenmerkdomein_module, fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam,
(fac_kenmerkdomein_key, fac_kenmerkdomein_module, fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam,
fac_kenmerkdomein_kolomnaam ,fac_kenmerkdomein_kolomtxt,fac_usrtab_key)
VALUES(2,'MLD','Redenbeeindiging','FAC_USRDATA','FAC_USRDATA_KEY','FAC_USRDATA_OMSCHR',61);
INSERT INTO fac_kenmerkdomein
(fac_kenmerkdomein_key, fac_kenmerkdomein_module, fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam,
(fac_kenmerkdomein_key, fac_kenmerkdomein_module, fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam,
fac_kenmerkdomein_kolomnaam ,fac_kenmerkdomein_kolomtxt,fac_usrtab_key)
VALUES(1,'MLD','Produkt','FAC_USRDATA','FAC_USRDATA_KEY','FAC_USRDATA_OMSCHR',1);
@@ -406,7 +362,7 @@ VALUES(3,'Beschikkingsnr', 'C', 25);
INSERT INTO mld_srtkenmerk
(mld_srtkenmerk_key, mld_srtkenmerk_omschrijving, mld_srtkenmerk_dimensie, mld_srtkenmerk_kenmerktype,
mld_srtkenmerk_lengte, mld_srtkenmerk_dec, mld_srtkenmerk_nmin)
VALUES(4,'Client uurtarief', '<27>', 'N', 4, 2, 0);
VALUES(4,'PGB uurtarief', '<27>', 'N', 4, 2, 0);
INSERT INTO mld_srtkenmerk
(mld_srtkenmerk_key, mld_srtkenmerk_omschrijving, mld_srtkenmerk_kenmerktype, fac_kenmerkdomein_key)
@@ -498,7 +454,7 @@ INSERT INTO fac_srtnotificatie
'Conflict in uitgegeven uren t.o.v. de beschikking (melding ##KEY##)', 'melding',
0
);
-- Notificatie JOB die elk heel uur afgaat tijdens kantooruren van 7.00 t/m 18.00 u (zo is ook gen_notify op SAAS geconfigureerd)
INSERT INTO fac_notificatie_job
(fac_notificatie_job_key, fac_notificatie_job_view,
@@ -509,7 +465,7 @@ INSERT INTO fac_notificatie_job
'MLD: Notificatie van nieuwe meldingen voor de teamleider(s)',
1, 3, trunc (SYSDATE, 'HH')
);
-- Notificatie JOB die aan het begin van elke dag afgaat om 8.00u
INSERT INTO fac_notificatie_job
(fac_notificatie_job_key, fac_notificatie_job_view,
@@ -529,7 +485,7 @@ CREATE SEQUENCE fac_s_fac_notificatie_job_key START WITH 2000 NOCACHE;
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
-- MODULE Klachten registratie
-- MODULE Klachten registratie
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
INSERT INTO ins_srtdiscipline
@@ -546,20 +502,20 @@ INSERT INTO mld_disc_params(mld_ins_discipline_key, mld_disc_params_notify)
SELECT ins_discipline_key,0 FROM ins_tab_discipline WHERE ins_discipline_omschrijving = 'Klachten over verzorger';
INSERT INTO mld_stdmelding
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_t_accepttijd, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Slechte kwaliteit geleverd',MLD_T_UITVOERTIJD(4, 'U'),2 FROM ins_tab_discipline;
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_urgentie, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Slechte kwaliteit geleverd',4,2 FROM ins_tab_discipline;
INSERT INTO mld_stdmelding
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_t_accepttijd, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Niet komen opdagen',MLD_T_UITVOERTIJD(4, 'U'),2 FROM ins_tab_discipline;
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_urgentie, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Niet komen opdagen',4,2 FROM ins_tab_discipline;
INSERT INTO mld_stdmelding
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_t_accepttijd, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Schade',MLD_T_UITVOERTIJD(4, 'U'),2 FROM ins_tab_discipline;
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_urgentie, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Schade',4,2 FROM ins_tab_discipline;
INSERT INTO mld_stdmelding
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_t_accepttijd, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Houding en/of communicatie',MLD_T_UITVOERTIJD(4, 'U'),2 FROM ins_tab_discipline;
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_urgentie, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Houding en/of communicatie',4,2 FROM ins_tab_discipline;
INSERT INTO ins_tab_discipline
(ins_discipline_module, ins_discipline_omschrijving, ins_srtdiscipline_key)
@@ -569,16 +525,16 @@ INSERT INTO mld_disc_params(mld_ins_discipline_key, mld_disc_params_notify)
SELECT ins_discipline_key,0 FROM ins_tab_discipline WHERE ins_discipline_omschrijving = 'Klachten over zorgaanbieder';
INSERT INTO mld_stdmelding
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_t_accepttijd, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Afspraak niet nagekomen',MLD_T_UITVOERTIJD(4, 'U'),2 FROM ins_tab_discipline;
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_urgentie, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Afspraak niet nagekomen',4,2 FROM ins_tab_discipline;
INSERT INTO mld_stdmelding
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_t_accepttijd, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Houding en/of communicatie',MLD_T_UITVOERTIJD(4, 'U'),2 FROM ins_tab_discipline;
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_urgentie, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Houding en/of communicatie',4,2 FROM ins_tab_discipline;
INSERT INTO mld_stdmelding
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_t_accepttijd, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Onduidelijke informatie',MLD_T_UITVOERTIJD(4, 'U'),2 FROM ins_tab_discipline;
(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_urgentie, mld_stdmelding_freetext)
SELECT max(ins_discipline_key),'Onduidelijke informatie',4,2 FROM ins_tab_discipline;
-- Autorisatiegroepen met rechten voor klachten: FO, BO en MI.
@@ -596,7 +552,7 @@ AND d.ins_srtdiscipline_key = 2;
INSERT INTO fac_groep (fac_groep_omschrijving) VALUES ('BO-MLD: Klachten');
INSERT INTO fac_groeprechten(fac_groep_key, fac_functie_key, ins_discipline_key,
INSERT INTO fac_groeprechten(fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_prs_level_read, fac_gebruiker_alg_level_read,
fac_gebruiker_prs_level_write, fac_gebruiker_alg_level_write)
SELECT g.fac_groep_key,f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
@@ -877,7 +833,6 @@ AND UPPER(FAC_LOCALEITEMS_LCL) = 'LCL_MLD_BEHANDELAAR';
-- FAC-TABELLEN FAC_USRRAP
-- Rapportages
-- Rapport IWMO) voor de BACKOFFICE/ADMINISTRATIE: Iwmo factuur rapport (BONS#31596)
-- Rapport A) voor de BACKOFFICE/ADMINISTRATIE: NIET ingeleverde weekbrieven (UUR_BOF).
-- Rapport B) voor de FRONTOFFICE/TEAMLEIDER: NIET ingeleverde weekbrieven van de teamleden (UUR_FOF).
-- Rapport C) voor de FRONTEND/VERZORGER,medewerker: Overzichtslijst van je teamgenoten (WEB_MLDORD).
@@ -890,9 +845,6 @@ AND UPPER(FAC_LOCALEITEMS_LCL) = 'LCL_MLD_BEHANDELAAR';
-- Rapport J) voor de MANINFO/FACTUURADMIN: Factuurrapport voor de gemaakte uren binnen 1 PERIODE, per week, per verzorger - variant C: (MLDBAC).
-- BONS#31596: Iwmo factuurrapport via XSL
-- Rapport Iwmo) FACTUURrapport voor Iwmo:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -905,34 +857,7 @@ INSERT INTO fac_usrrap
fac_usrrap_info,
fac_functie_key,
fac_usrrap_autorefresh
)
SELECT 'Factuur Iwmo) Per beschikking in periode, per week',
'care_v_rap2_factuur_uren_iwmo',
NULL,
NULL,
NULL,
0,
0,
1,
'Factuurrapportage Iwmo',
fac_functie_key,
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
fac_usrrap_in_huidige_locatie,
fac_usrrap_template,
fac_usrrap_macro,
fac_usrrap_vraagbegindatum,
fac_usrrap_vraageinddatum,
fac_usrrap_functie,
fac_usrrap_info,
fac_functie_key,
fac_usrrap_autorefresh
)
)
SELECT 'Admin: Niet ingeleverde weekbrieven',
'care_v_rap_missing_weekbrief',
NULL,
@@ -1034,7 +959,7 @@ FROM fac_functie WHERE fac_functie_code = 'WEB_PRSMAN';
--
-- Rapport E) Analyserapport voor de gemaakte uren binnen 1 PERIODE - variant A:
-- Rapport E) Analyserapport voor de gemaakte uren binnen 1 PERIODE - variant A:
-- op periode -nivo eventuele de conflicten analyseren...
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
@@ -1063,7 +988,7 @@ SELECT 'Admin: A) Urenconflict in periode',
FROM fac_functie WHERE fac_functie_code = 'WEB_UURBOF';
-- Rapport F) Analyserapport voor de gemaakte uren binnen 1 PERIODE - variant B:
-- Rapport F) Analyserapport voor de gemaakte uren binnen 1 PERIODE - variant B:
-- periode + week-nivo de conflicten analyseren...
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
@@ -1092,7 +1017,7 @@ SELECT 'Admin: B) Urenconflict in een periode, per week',
FROM fac_functie WHERE fac_functie_code = 'WEB_UURBOF';
-- Rapport G) Analyserapport voor de gemaakte uren binnen 1 PERIODE - variant C:
-- Rapport G) Analyserapport voor de gemaakte uren binnen 1 PERIODE - variant C:
-- periode + week-nivo + verzorger de conflicten analyseren...
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
@@ -1124,7 +1049,7 @@ INSERT INTO fac_usrrap
-- Rapport H) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant A:
-- Rapport H) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant A:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1152,7 +1077,7 @@ INSERT INTO fac_usrrap
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- Rapport I) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, verdeeld over de 4 WEKEN - variant B:
-- Rapport I) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, verdeeld over de 4 WEKEN - variant B:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1180,7 +1105,7 @@ INSERT INTO fac_usrrap
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- Rapport J) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, verdeeld over de 4 WEKEN, en daarbinnen per datum - variant C:
-- Rapport J) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, verdeeld over de 4 WEKEN, en daarbinnen per datum - variant C:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1208,7 +1133,7 @@ INSERT INTO fac_usrrap
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- ATCH#21599: 9 nieuwe factuurrapporten
-- Rapport D) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, verdeeld over de 4 WEKEN, en daarbinnen per datum - variant D:
-- Rapport D) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, verdeeld over de 4 WEKEN, en daarbinnen per datum - variant D:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1236,7 +1161,7 @@ INSERT INTO fac_usrrap
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- ATCH#21599: 9 nieuwe factuurrapporten
-- Rapport E) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant E:
-- Rapport E) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant E:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1264,7 +1189,7 @@ INSERT INTO fac_usrrap
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- ATCH#21599: 9 nieuwe factuurrapporten
-- Rapport F) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, verdeeld over de 4 WEKEN, en daarbinnen per datum - variant F:
-- Rapport F) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, verdeeld over de 4 WEKEN, en daarbinnen per datum - variant F:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1292,7 +1217,7 @@ INSERT INTO fac_usrrap
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- ATCH#21599: 9 nieuwe factuurrapporten
-- Rapport G) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant G:
-- Rapport G) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant G:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1320,7 +1245,7 @@ INSERT INTO fac_usrrap
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- ATCH#21599: 9 nieuwe factuurrapporten
-- Rapport I) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant I:
-- Rapport I) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant I:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1349,7 +1274,7 @@ INSERT INTO fac_usrrap
-- ATCH#21599: 9 nieuwe factuurrapporten
-- Rapport J) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant J:
-- Rapport J) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant J:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1377,7 +1302,7 @@ INSERT INTO fac_usrrap
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- ATCH#21599: 9 nieuwe factuurrapporten
-- Rapport K) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant K:
-- Rapport K) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant K:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1405,7 +1330,7 @@ INSERT INTO fac_usrrap
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- ATCH#21599: 9 nieuwe factuurrapporten
-- Rapport L) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant L:
-- Rapport L) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - variant L:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1433,7 +1358,7 @@ INSERT INTO fac_usrrap
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- ATCH#21599: 9 nieuwe factuurrapporten
-- Rapport M) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, uitgesplitst per week - variant M:
-- Rapport M) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, uitgesplitst per week - variant M:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1462,7 +1387,7 @@ INSERT INTO fac_usrrap
-- BONS#22915: 1 nieuwe factuurrapport
-- Rapport N) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, - variant N (Woudenberg):
-- Rapport N) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, - variant N (Woudenberg):
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1490,7 +1415,7 @@ INSERT INTO fac_usrrap
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- BONS#22915: 1 nieuwe factuurrapport
-- Rapport O) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, - variant O (Scherpenzeel):
-- Rapport O) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE, - variant O (Scherpenzeel):
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1517,149 +1442,14 @@ INSERT INTO fac_usrrap
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- Rapport P) FACTUURrapport voor de gemaakte uren per week - variant P:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
fac_usrrap_in_huidige_locatie,
fac_usrrap_template,
fac_usrrap_macro,
fac_usrrap_vraagbegindatum,
fac_usrrap_vraageinddatum,
fac_usrrap_functie,
fac_usrrap_info,
fac_functie_key,
fac_usrrap_autorefresh
)
SELECT 'Factuur P) Per beschikking in periode, per week',
'care_v_rap2_factuur_uren_P',
NULL,
NULL,
NULL,
0,
0,
0,
'Factuurrapportage per beschikking in een gekozen periode, uitgesplitst per week',
fac_functie_key,
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- Rapport R) FACTUURrapport met detailgegevens client per beschikking - variant R:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
fac_usrrap_vraagbegindatum,
fac_usrrap_vraageinddatum,
fac_usrrap_functie,
fac_usrrap_info,
fac_functie_key,
fac_usrrap_autorefresh
)
SELECT 'Factuur R) Details Client per beschikking',
'care_v_rap2_factuur_uren_R',
0,
0,
1,
'Factuurrapportage per beschikking met detailgegevens clienten',
fac_functie_key,
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- Rapport Q) FACTUURrapport voor de gemaakte uren per datum - variant Q (Bernisse):
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
fac_usrrap_in_huidige_locatie,
fac_usrrap_template,
fac_usrrap_macro,
fac_usrrap_vraagbegindatum,
fac_usrrap_vraageinddatum,
fac_usrrap_functie,
fac_usrrap_info,
fac_functie_key,
fac_usrrap_autorefresh
)
SELECT 'Factuur Q) Per beschikking in periode, per week, per datum',
'care_v_rap2_factuur_uren_Q',
NULL,
NULL,
NULL,
0,
0,
0,
'Factuurrapportage per beschikking in een gekozen periode, uitgesplitst per week/per datum',
fac_functie_key,
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- BONS#36043: Totaallijst clienten in zorg (outerjoin uren):
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
fac_usrrap_vraagbegindatum,
fac_usrrap_vraageinddatum,
fac_usrrap_functie,
fac_usrrap_info,
fac_functie_key,
fac_usrrap_autorefresh
)
SELECT 'Totaal lijst cli<6C>nten in zorg',
'care_v_rap_tot_clientzorg',
0,
0,
1,
'Totaal lijst cli<6C>nten in zorg (ook zonder uren)',
fac_functie_key,
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- BONS#40385: Totaallijst clienten in zorg met medewerker (outerjoin uren):
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
fac_usrrap_vraagbegindatum,
fac_usrrap_vraageinddatum,
fac_usrrap_functie,
fac_usrrap_info,
fac_functie_key,
fac_usrrap_autorefresh
)
SELECT 'Totaal lijst cli<6C>nten in zorg MDW',
'care_v_rap_tot_clientzorg_mdw',
0,
0,
1,
'Totaal lijst cli<6C>nten in zorg met gekoppelde medewerker',
fac_functie_key,
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
fac_usrrap_vraagbegindatum,
fac_usrrap_vraageinddatum,
fac_usrrap_functie,
fac_usrrap_info,
fac_functie_key,
fac_usrrap_autorefresh
)
SELECT 'Totaal lijst cli<6C>nten in zorg - zonder uren',
'care_v_rap_tot_clientzorg_all',
0,
0,
1,
'Totaal lijst cli<6C>nten in zorg met gekoppelde medewerker',
fac_functie_key,
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Rapport I) SALARISrapport voor de gemaakte uren binnen 1 PERIODE - variant A:
-- Rapport I) SALARISrapport voor de gemaakte uren binnen 1 PERIODE - variant A:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1839,8 +1629,8 @@ INSERT INTO fac_usrrap
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- rapport controle cak rapport FSN#20131
-- rapport controle cak rapport FSN#20131
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1865,10 +1655,10 @@ INSERT INTO fac_usrrap
'Rapport met basis controles tbv het CAK rapport',
fac_functie_key,
0
FROM fac_functie WHERE fac_functie_code = 'WEB_PRSSYS';
FROM fac_functie WHERE fac_functie_code = 'WEB_PRSSYS';
-- Rapport Voorblad factuur voor gemeenten:
-- Rapport Voorblad factuur voor gemeenten:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
@@ -1897,7 +1687,7 @@ INSERT INTO fac_usrrap
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- Rapport PGB-facturen:
-- Rapport PGB-facturen:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
@@ -1954,7 +1744,7 @@ INSERT INTO fac_usrrap
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- ADMIN: Rapport Controle autokosten (km) op weeknivo
-- ADMIN: Rapport Controle autokosten (km) op weeknivo
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -1981,7 +1771,7 @@ INSERT INTO fac_usrrap
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- ADMIN: Rapport Controle autokosten (km) op dagnivo
-- ADMIN: Rapport Controle autokosten (km) op dagnivo
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -2007,10 +1797,10 @@ INSERT INTO fac_usrrap
fac_functie_key,
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
-- VERZORGER: 'Mijn' Rapport Controle autokosten (km) op dagnivo
-- VERZORGER: 'Mijn' Rapport Controle autokosten (km) op dagnivo
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
@@ -2037,7 +1827,7 @@ INSERT INTO fac_usrrap
fac_functie_key,
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDORD';
-- ADMIN: Rapport Controle autokosten (km) van improductieve uren op periode-nivo
INSERT INTO fac_usrrap
@@ -2143,7 +1933,7 @@ INSERT INTO fac_usrrap
Rapporten op nieuwe wijze (zonder 6-weken beperking)
-- Rapport A2) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - zonder periode-uren:
-- Rapport A2) FACTUURrapport voor de gemaakte uren binnen 1 PERIODE - zonder periode-uren:
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
@@ -2170,40 +1960,18 @@ INSERT INTO fac_usrrap
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
INSERT INTO fac_usrrap
(fac_usrrap_omschrijving,
fac_usrrap_view_name,
fac_usrrap_in_huidige_locatie,
fac_usrrap_template,
fac_usrrap_macro,
fac_usrrap_vraagbegindatum,
fac_usrrap_vraageinddatum,
fac_usrrap_functie,
fac_usrrap_info,
fac_functie_key,
fac_usrrap_autorefresh
)
SELECT 'Instroom en Uitstroom per Client',
'care_v_rap_in_uitstroom',
NULL,
NULL,
NULL,
0,
0,
0,
'Instroom en uitstroomdatum per Client',
fac_functie_key,
0
FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBAC';
----------- Alle overbodige menuitem (module BES, BEZ, CAD, etc uit het menu halen)
DELETE FROM fac_menu m
WHERE EXISTS
WHERE EXISTS
(SELECT 'x'
FROM fac_menuitems mi
WHERE mi.fac_menuitems_key = m.fac_menuitems_key
WHERE mi.fac_menuitems_key = m.fac_menuitems_key
AND mi.fac_menuitems_module IN ('BES', 'BEZ', 'CAD', 'CNT', 'FIN', 'INS', 'MRK', 'PRJ', 'RES','SCH', 'SLE')
AND mi.fac_menuitems_groep IN (0,1)
);
@@ -2236,7 +2004,7 @@ WHERE fac_functie_code = 'WEB_MLDBAC';
-- Een insert in de periodetabel van alle weken tot en met 1 jaar terug.
INSERT INTO care_periode (jaar, periode, week, maandag)
SELECT
SELECT
TO_CHAR (SYSDATE - 7*(LEVEL-1), 'IYYY') jaar,
FLOOR((TO_CHAR (SYSDATE - 7*(LEVEL-1),'IW') - 1) /4) + 1 periode,
TO_CHAR (SYSDATE - 7*(LEVEL-1), 'IW') week,
@@ -2244,24 +2012,6 @@ SELECT
FROM DUAL
CONNECT BY LEVEL <= 1*52+1;
INSERT INTO care_t_qvw_periodeweektabel
SELECT
TO_CHAR (SYSDATE - 7*(LEVEL-1), 'IYYY') jaar,
DECODE(FLOOR((TO_CHAR (SYSDATE - 7*(LEVEL-1),'IW') - 1) /4) + 1, 14, 13,FLOOR((TO_CHAR (SYSDATE - 7*(LEVEL-1),'IW') - 1) /4) + 1) periode,
TO_CHAR (SYSDATE - 7*(LEVEL-1), 'IW') week,
TRUNC (SYSDATE - 7*(LEVEL-1), 'IW') startdatum
FROM DUAL
CONNECT BY LEVEL <= 1*52+1
UNION
SELECT
TO_CHAR (SYSDATE + 7*(LEVEL), 'IYYY') jaar,
DECODE(FLOOR((TO_CHAR (SYSDATE + 7*(LEVEL),'IW') - 1) /4) + 1, 14, 13,FLOOR((TO_CHAR (SYSDATE + 7*(LEVEL),'IW') - 1) /4) + 1) periode,
TO_CHAR (SYSDATE + 7*(LEVEL), 'IW') week,
TRUNC (SYSDATE + 7*(LEVEL), 'IW') startdatum
FROM DUAL
CONNECT BY LEVEL <= 20*52+1;
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: CARE_INI.SRC $','$Revision$')
#endif // CARE

View File

@@ -13,32 +13,32 @@ AS
RETURN DATE;
FUNCTION goodmonday_end (p_mld_key IN NUMBER)
RETURN DATE;
PROCEDURE care_v_rap2_factuur_uren_a (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor, p_where IN VARCHAR2 DEFAULT NULL);
PROCEDURE care_v_rap2_factuur_uren_e (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor, p_where IN VARCHAR2 DEFAULT NULL);
PROCEDURE care_v_rap2_factuur_uren_a (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor, p_where IN VARCHAR2);
PROCEDURE care_v_rap2_factuur_uren_e (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor, p_where IN VARCHAR2);
END care;
/
CREATE OR REPLACE PACKAGE BODY care
AS
FUNCTION goodmonday_start (p_mld_key IN NUMBER)
RETURN DATE
IS
-- Herindicaties/vorige indicaties van dezelfde client die in dezelfde week start/eindigt.
l_mld_key NUMBER(10);
l_good_monday DATE;
BEGIN
--- Vorige beschikking: bij herindicatie midden in de week is 1 van beide beschikkingen geldig
--- Herindicatie midden in de week wordt gekenmerkt door:
--- dezelfde client, dezelfde gemeente, eindweek van de vorige is gelijk aan beginweek van herindicatie,
--- Herindicatie midden in de week wordt gekenmerkt door:
--- dezelfde client, dezelfde gemeente, eindweek van de vorige is gelijk aan beginweek van herindicatie,
--- en het maakt niet uit wat de product is/wordt.
--- Baas' van dubbele beschikking is diegene met de meeste aantal uren, ongeacht HV1->HV2 overgang.
--- Bij gelijke aantal uren is de nieuwe beschikking de baas.
-- Selecteer de vorige beschikking b1 van de beschikking b2 die meer uren heeft.
SELECT MAX(b1.mld_melding_key)
INTO l_mld_key
@@ -51,14 +51,14 @@ AS
AND b1.prs_client_key = b2.prs_client_key
AND b1.gemeente_code = b2.gemeente_code
AND b1.uren_beschikking > b2.uren_beschikking;
IF l_mld_key IS NOT NULL
THEN
-- Er is een vorige indicatie met meer uren, die is de 'baas'.
-- Dat betekent dat de goede maandag van de beschikking b2 verder, naar de volgende week wordt gezet
-- Dat betekent dat de goede maandag van de beschikking b2 verder, naar de volgende week wordt gezet
-- (ipv standaard op maandag deze week)
SELECT ( TRUNC (mld_melding_datum) + 7
- DECODE (TO_CHAR (mld_melding_datum, 'D'), '1', 8, TO_CHAR (mld_melding_datum, 'D'))
+ 2)
@@ -75,7 +75,7 @@ AS
FROM mld_melding
WHERE mld_melding_key = p_mld_key;
END IF;
RETURN l_good_monday;
END;
@@ -83,19 +83,19 @@ FUNCTION goodmonday_end (p_mld_key IN NUMBER)
RETURN DATE
IS
-- Herindicaties/vorige indicaties van dezelfde client die in dezelfde week start/eindigt.
l_mld_key NUMBER(10);
l_good_monday DATE;
BEGIN
--- Volgende beschikking: bij herindicatie midden in de week is 1 van beide beschikkingen geldig
--- Herindicatie midden in de week wordt gekenmerkt door:
--- dezelfde client, dezelfde gemeente, eindjaar/week van de vorige is gelijk aan beginjaar/week van herindicatie,
--- Herindicatie midden in de week wordt gekenmerkt door:
--- dezelfde client, dezelfde gemeente, eindjaar/week van de vorige is gelijk aan beginjaar/week van herindicatie,
--- en het maakt niet uit wat de product is/wordt.
--- Baas' van dubbele beschikking is diegene met de meeste aantal uren, ongeacht HV1->HV2 overgang.
--- Bij gelijke aantal uren is de nieuwe beschikking de baas.
-- Controleer of die er is, en zo ja, selecteer de volgende beschikking b2 van de beschikking b1 die MEER
--- Bij gelijke aantal uren is de nieuwe beschikking de baas.
-- Controleer of die er is, en zo ja, selecteer de volgende beschikking b2 van de beschikking b1 die MEER
-- of GELIJK AANTAL uren heeft.
SELECT MAX(b2.mld_melding_key)
INTO l_mld_key
@@ -108,73 +108,72 @@ FUNCTION goodmonday_end (p_mld_key IN NUMBER)
AND b1.prs_client_key = b2.prs_client_key
AND b1.gemeente_code = b2.gemeente_code
AND b2.uren_beschikking >= b1.uren_beschikking;
IF l_mld_key IS NOT NULL
THEN
-- Er is een volgende indicatie b2 met MEER of GELIJK AANTAL uren, die is de 'baas' is.
-- Dat betekent dat de goede maandag van de beschikking b2 op de maandag van deze week wordt gezet
-- Dat betekent dat de goede maandag van de beschikking b2 op de maandag van deze week wordt gezet
-- (ipv standaard op maandag de volgende week)
SELECT ( TRUNC (mld_melding_einddatum)
- DECODE (TO_CHAR (mld_melding_einddatum, 'D'), '1', 8, TO_CHAR (mld_melding_einddatum, 'D'))
+ 2)
INTO l_good_monday
FROM mld_melding
WHERE mld_melding_key = p_mld_key;
ELSE
-- Er is GEEN volgende indicatie is of GEEN volgende indicatie met MEER of GELIJK AANTAL uren, dus deze is de 'baas'.
-- Dat betekent dat de goede maandag van de beschikking b2 standaard op maandag van de volgende week komt te staan.
SELECT ( TRUNC (mld_melding_einddatum) + 7
- DECODE (TO_CHAR (mld_melding_einddatum, 'D'), '1', 8, TO_CHAR (mld_melding_einddatum, 'D'))
+ 2)
INTO l_good_monday
FROM mld_melding
WHERE mld_melding_key = p_mld_key;
WHERE mld_melding_key = p_mld_key;
END IF;
RETURN l_good_monday;
END;
PROCEDURE care_v_rap2_factuur_uren_a
( user_key IN NUMBER,
(user_key IN NUMBER,
p_datum_van IN VARCHAR2,
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor,
p_where IN VARCHAR2 DEFAULT NULL
p_cursor OUT t_cursor,
p_where IN VARCHAR2
)
AS
v_datum_van DATE;
v_datum_tot DATE;
v_datum_tot DATE;
BEGIN
DELETE FROM care_periode;
INSERT INTO care_periode (jaar, periode, week, maandag)
SELECT
SELECT
TO_CHAR (SYSDATE - 7*(LEVEL-1), 'IYYY') jaar,
LEAST(FLOOR((TO_CHAR (SYSDATE - 7*(LEVEL-1),'IW') - 1) /4) + 1, 13) periode,
FLOOR((TO_CHAR (SYSDATE - 7*(LEVEL-1),'IW') - 1) /4) + 1 periode,
TO_CHAR (SYSDATE - 7*(LEVEL-1), 'IW') week,
TRUNC (SYSDATE - 7*(LEVEL-1), 'IW') startdatum
FROM DUAL
CONNECT BY LEVEL <= 1*52+1;
DELETE FROM CARE_T_BESCHIKK_X_PERIODETABEL;
INSERT INTO CARE_T_BESCHIKK_X_PERIODETABEL(JAAR, PERIODE,WEEK_VAN,WEEK_TM,BSN,PRODUCT,UREN_BESCHIKKING)
SELECT pw.jaar, pw.periode, MIN(week), MAX(week), b.client_bsn, b.product, SUM(b.uren_beschikking)
FROM care_periode pw, care_v_beschikking_all b
WHERE pw.maandag >= B.BESCHIKKING_MAANDAG_VAN
AND pw.maandag < B.BESCHIKKING_MAANDAG_TOT
AND b.beschikking_datum_tot >= sysdate - 53*7
GROUP BY pw.jaar, pw.periode, b.client_bsn, b.product;
OPEN p_cursor FOR
'SELECT
'SELECT
fclt_f_periode,
factuurdatum,
wzacode,
@@ -192,45 +191,44 @@ PROCEDURE care_v_rap2_factuur_uren_a
bedrag_euro,
bedrag_centen
FROM care_v_rap2_factuur_uren_a' || p_where;
END care_v_rap2_factuur_uren_a;
PROCEDURE care_v_rap2_factuur_uren_e
( user_key IN NUMBER,
PROCEDURE care_v_rap2_factuur_uren_e
(user_key IN NUMBER,
p_datum_van IN VARCHAR2,
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor,
p_where IN VARCHAR2 DEFAULT NULL
p_cursor OUT t_cursor,
p_where IN VARCHAR2
)
AS
v_datum_van DATE;
v_datum_tot DATE;
v_datum_tot DATE;
BEGIN
DELETE FROM care_periode;
INSERT INTO care_periode (jaar, periode, week, maandag)
SELECT
SELECT
TO_CHAR (SYSDATE - 7*(LEVEL-1), 'IYYY') jaar,
LEAST(FLOOR((TO_CHAR (SYSDATE - 7*(LEVEL-1),'IW') - 1) /4) + 1, 13) periode,
FLOOR((TO_CHAR (SYSDATE - 7*(LEVEL-1),'IW') - 1) /4) + 1 periode,
TO_CHAR (SYSDATE - 7*(LEVEL-1), 'IW') week,
TRUNC (SYSDATE - 7*(LEVEL-1), 'IW') startdatum
FROM DUAL
CONNECT BY LEVEL <= 1*52+1;
DELETE FROM CARE_T_BESCHIKK_X_PERIODETABEL;
INSERT INTO CARE_T_BESCHIKK_X_PERIODETABEL(JAAR, PERIODE,WEEK_VAN,WEEK_TM,BSN,PRODUCT,UREN_BESCHIKKING)
SELECT pw.jaar, pw.periode, MIN(week), MAX(week), b.client_bsn, b.product, SUM(b.uren_beschikking)
FROM care_periode pw, care_v_beschikking_all b
WHERE pw.maandag >= B.BESCHIKKING_MAANDAG_VAN
AND pw.maandag < B.BESCHIKKING_MAANDAG_TOT
AND b.beschikking_datum_tot >= sysdate - 53*7
GROUP BY pw.jaar, pw.periode, b.client_bsn, b.product;
OPEN p_cursor FOR
'SELECT
OPEN p_cursor FOR
'SELECT
fclt_x_periode,
periode,
weeknrs,
@@ -247,12 +245,12 @@ PROCEDURE care_v_rap2_factuur_uren_e
uren,
bedrag_euro
FROM care_v_rap2_factuur_uren_e' || p_where;
END care_v_rap2_factuur_uren_e;
END care;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: CARE_PAC.SRC $','$Revision$')
#endif // CARE

View File

@@ -22,13 +22,4 @@ CREATE_TABLE(CARE_T_BESCHIKK_X_PERIODETABEL, 0)
UREN_BESCHIKKING NUMBER (10)
)
CREATE_TABLE(CARE_T_QVW_PERIODEWEEKTABEL, 0)
(
JAAR VARCHAR(4),
PERIODE NUMBER(2),
WEEK VARCHAR(4),
MAANDAG DATE
);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: CARE_TAB.SRC $','$Revision$')

File diff suppressed because it is too large Load Diff

View File

@@ -1,43 +0,0 @@
--
-- $Id$
--
-- Script for (re)initializing the "CND-module" for conditiemetingen according to NEN2767-standard
-- It can be run repeatedly after a initial initialisation in an existing Facilitor database
-- to upgrade CND the to the latest version.
-- First time the CND_INI must be run as well, once, first
--
DEFINE thisfile = 'CND.SQL'
DEFINE dbuser = ''
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,57 +0,0 @@
#ifdef CND
/*
* $Revision$
* $Id$
*/
-- Tabel tbv importfunctie 'Verwerken van NEN2767 gebreken/resultaten'
CREATE_TABLE(cnd_imp_nen2767_results,0)
(
fac_import_key NUMBER (10),
alg_gebouw_code VARCHAR2 (12),
ins_deel_omschrijving VARCHAR2 (60),
mld_melding_datum VARCHAR2 (20),
mld_melding_omschrijving VARCHAR2 (2000),
prs_perslid_email VARCHAR2 (200),
gebrekcode VARCHAR2 (20),
ernst VARCHAR2 (50),
omvang VARCHAR2 (50),
intensiteit VARCHAR2 (50),
aspect1 VARCHAR2 (20),
aspect2 VARCHAR2 (20),
aspect3 VARCHAR2 (20),
aspect4 VARCHAR2 (20),
aspect5 VARCHAR2 (20),
aspect6 VARCHAR2 (20),
aspect7 VARCHAR2 (20),
foto VARCHAR2 (50),
condscore NUMBER (6, 2),
prioscore NUMBER (6, 2),
kosten NUMBER (10, 2),
plandatum DATE,
flex1 VARCHAR2 (255),
flex2 VARCHAR2 (255),
flex3 VARCHAR2 (255),
flex4 VARCHAR2 (255),
flex5 VARCHAR2 (255),
flex6 VARCHAR2 (255),
flex7 VARCHAR2 (255),
flex8 VARCHAR2 (255),
flex9 VARCHAR2 (255),
flex10 VARCHAR2 (255)
);
-- Tabel tbv importfunctie 'Aanvullen van combinaties objectsoorten x standaard melding'
CREATE_TABLE(cnd_imp_srtdeel_mlddiscipline,0)
(
fac_import_key NUMBER (10),
ins_srtdeel_code VARCHAR2 (10),
ins_srtgroep_omschrijving VARCHAR2 (60),
ins_discipline_omschrijving VARCHAR2 (60),
mld_discipline_omschrijving VARCHAR2 (60)
);
REGISTERRUN('$Id$')
#endif // CND

View File

@@ -1,13 +0,0 @@
#ifdef CND
/*
* $Revision$
* $Id$
*/
-----------------------------------------------------------------------------------------------------------------------
-- Additional triggers for tables that are related to CND. AFTER-update, ze mogen de normale flow niet beinvloeden
-----------------------------------------------------------------------------------------------------------------------
REGISTERRUN('$Id$')
#endif // CND

View File

@@ -1,450 +0,0 @@
#ifdef CND
/*
* $Revision$
* $Id$
*/
-- CND_V_NEN2767_ALLE_GEBREKEN: hierin zitten alle meldingen (gebreken) die nu relevant voor de berekening kunnen zijn
-- dus gebreken die erkend zijn maar nog niet verwerkt of afgewezen.
-- Niet uit te sluiten valt dat er dubbele registraties zijn, dat wordt ontdubbeld in cnd_v_nen2767_per_srtgebrek
-- Het is daarmee niet aannemelijk dat je deze view nodig hebt, gebruik cnd_v_nen2767_per_srtgebrek.
-- Merk op: op alle 3 de aspecten in mld_kenmerkmelding zit geen outer join, omdat ze overal verplicht zijn;
-- zonder deze waarden is de conditiescore ook niet te berekenen overigens.
-- Full version, met ernst, intensiteit en omvang
CREATE_VIEW(cnd_v_nen2767_alle_gebreken_fl,0)
(
ins_deel_key,
mld_melding_key,
mld_stdmelding_key,
mld_melding_status,
ernst,
intensiteit,
omvang
)
AS
WITH
w_srtdisc_key AS (SELECT fac.getsetting ('cnd_gebreken_srtdisc_key') sdk FROM DUAL)
SELECT d.ins_deel_key,
m.mld_melding_key,
m.mld_stdmelding_key,
m.mld_melding_status,
km_ernst.mld_kenmerkmelding_waarde,
km_intensiteit.mld_kenmerkmelding_waarde,
ud_omvang.fac_usrdata_prijs
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline disc,
mld_melding_object mo,
ins_deel d,
mld_kenmerkmelding km_ernst,
mld_kenmerk k_ernst,
mld_srtkenmerk sk_ernst,
mld_kenmerkmelding km_intensiteit,
mld_kenmerk k_intensiteit,
mld_srtkenmerk sk_intensiteit,
mld_kenmerkmelding km_omvang,
mld_kenmerk k_omvang,
mld_srtkenmerk sk_omvang,
fac_usrdata ud_omvang,
w_srtdisc_key
WHERE disc.ins_srtdiscipline_key = w_srtdisc_key.sdk
AND sm.mld_stdmelding_code <> 'GEEN'
AND disc.ins_discipline_verwijder IS NULL
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND mo.mld_melding_key = m.mld_melding_key
AND mo.mld_melding_object_verwijder IS NULL
AND d.ins_deel_key = mo.ins_deel_key
AND km_ernst.mld_melding_key = m.mld_melding_key
AND k_ernst.mld_kenmerk_key = km_ernst.mld_kenmerk_key
AND k_ernst.mld_srtkenmerk_key = sk_ernst.mld_srtkenmerk_key
AND sk_ernst.mld_srtkenmerk_code = 'ERNST'
AND km_intensiteit.mld_melding_key = m.mld_melding_key
AND k_intensiteit.mld_kenmerk_key = km_intensiteit.mld_kenmerk_key
AND k_intensiteit.mld_srtkenmerk_key = sk_intensiteit.mld_srtkenmerk_key
AND sk_intensiteit.mld_srtkenmerk_code = 'INTENSITEIT'
AND km_omvang.mld_melding_key = m.mld_melding_key
AND k_omvang.mld_kenmerk_key = km_omvang.mld_kenmerk_key
AND k_omvang.mld_srtkenmerk_key = sk_omvang.mld_srtkenmerk_key
AND sk_omvang.mld_srtkenmerk_code = 'OMVANG'
AND ud_omvang.fac_usrdata_key = fac.safe_to_number (km_omvang.mld_kenmerkmelding_waarde)
AND m.mld_melding_status NOT IN (1, 6);
-- Smaller/faster version, zonder ernst, intensiteit en omvang
CREATE_VIEW(cnd_v_nen2767_alle_gebreken,0)
(
ins_deel_key,
mld_melding_key,
mld_stdmelding_key
)
AS
WITH
w_srtdisc_key AS (SELECT fac.getsetting ('cnd_gebreken_srtdisc_key') sdk FROM DUAL)
SELECT d.ins_deel_key,
m.mld_melding_key,
m.mld_stdmelding_key
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline disc,
mld_melding_object mo,
ins_deel d,
w_srtdisc_key
WHERE disc.ins_srtdiscipline_key = w_srtdisc_key.sdk
AND sm.mld_stdmelding_code <> 'GEEN'
AND disc.ins_discipline_verwijder IS NULL
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND mo.mld_melding_key = m.mld_melding_key
AND mo.mld_melding_object_verwijder IS NULL
AND d.ins_deel_key = mo.ins_deel_key
AND m.mld_melding_status NOT IN (1, 6);
-- Ontdubbel eventuele zelfde gebreken die op hetzelfde object zijn gemaakt, dus wanneer na elkaar
-- hetzelfde gebrek (stdmelding) is ingelegd, dan geldt de laatste (=hoogste melding_key)
CREATE_VIEW(cnd_v_nen2767_per_srtgebrek,0)
(
ins_deel_key,
mld_melding_key,
mld_stdmelding_key,
mld_melding_status,
ernst,
intensiteit,
omvang
)
AS
SELECT a.ins_deel_key,
a.mld_melding_key,
a.mld_stdmelding_key,
a.mld_melding_status,
a.ernst,
a.intensiteit,
a.omvang
FROM cnd_v_nen2767_alle_gebreken_fl a,
( SELECT a2.mld_stdmelding_key,
a2.ins_deel_key,
MAX (a2.mld_melding_key) AS mld_melding_key
FROM cnd_v_nen2767_alle_gebreken a2
GROUP BY a2.mld_stdmelding_key, a2.ins_deel_key) b
WHERE a.mld_melding_key = b.mld_melding_key
AND a.ins_deel_key = b.ins_deel_key;
CREATE_VIEW(cnd_v_nen2767_gebrek,0)
AS
WITH
w_srtdisc_key AS (SELECT fac.getsetting ('cnd_gebreken_srtdisc_key') sdk FROM DUAL)
SELECT mo.ins_deel_key,
m.mld_melding_key,
m.mld_stdmelding_key,
m.mld_melding_status,
m.mld_melding_datum
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline disc,
mld_melding_object mo,
w_srtdisc_key
WHERE disc.ins_srtdiscipline_key = w_srtdisc_key.sdk
AND disc.ins_discipline_verwijder IS NULL
AND sm.mld_ins_discipline_key = disc.ins_discipline_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND mo.mld_melding_key = m.mld_melding_key
AND mo.mld_melding_object_verwijder IS NULL
AND m.mld_melding_status NOT IN (1,6);
CREATE_VIEW(cnd_v_nen2767_srtgebrek,0)
AS
SELECT a.ins_deel_key,
a.mld_melding_key,
a.mld_stdmelding_key,
a.mld_melding_status,
a.mld_melding_datum
FROM cnd_v_nen2767_gebrek a,
( SELECT a2.mld_stdmelding_key,
a2.ins_deel_key,
MAX (a2.mld_melding_key) AS mld_melding_key
FROM cnd_v_nen2767_gebrek a2
GROUP BY a2.mld_stdmelding_key, a2.ins_deel_key) b
WHERE a.mld_melding_key = b.mld_melding_key
AND a.ins_deel_key = b.ins_deel_key;
CREATE_VIEW(cnd_v_aggr_cond_score,0)
(
alg_locatie_key,
alg_gebouw_key,
ins_deel_key,
ins_deel_aantal,
ins_deel_mjb_score1,
kosten,
correctiefactor,
totale_vervangingswaarde,
correctie_vervangingswaarde
)
AS
SELECT l.alg_locatie_key,
g.alg_gebouw_key,
d.ins_deel_key,
MAX (d.ins_deel_aantal),
MAX (d.ins_deel_mjb_score1),
MAX (
COALESCE (sc.INS_SRTCONTROLE_KOSTEN, 0)
+ COALESCE (sc.INS_SRTCONTROLE_KOSTEN2, 0)
+ COALESCE (sc.INS_SRTCONTROLE_KOSTEN3, 0)
+ COALESCE (sc.INS_SRTCONTROLE_MATERIAAL, 0))
kosten,
cnd.nen2767_corr_cond_score (MAX (d.ins_deel_mjb_score1))
correctiefactor,
MAX (d.ins_deel_aantal)
* MAX (
COALESCE (sc.INS_SRTCONTROLE_KOSTEN, 0)
+ COALESCE (sc.INS_SRTCONTROLE_KOSTEN2, 0)
+ COALESCE (sc.INS_SRTCONTROLE_KOSTEN3, 0)
+ COALESCE (sc.INS_SRTCONTROLE_MATERIAAL, 0))
totale_vervangingswaarde,
MAX (d.ins_deel_aantal)
* MAX (
COALESCE (sc.INS_SRTCONTROLE_KOSTEN, 0)
+ COALESCE (sc.INS_SRTCONTROLE_KOSTEN2, 0)
+ COALESCE (sc.INS_SRTCONTROLE_KOSTEN3, 0)
+ COALESCE (sc.INS_SRTCONTROLE_MATERIAAL, 0))
* cnd.nen2767_corr_cond_score (MAX (d.ins_deel_mjb_score1))
correctie_vervangingswaarde
FROM ins_deel d,
ins_v_defined_inspect_xcp sc,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l
WHERE d.ins_deel_verwijder IS NULL
AND ins_deel_mjb_score1 IS NOT NULL
AND sc.ins_deel_key = d.ins_deel_key
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_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 ins_scenario_key = 1
AND ctr_ismjob = 1
GROUP BY d.ins_deel_key, l.alg_locatie_key, g.alg_gebouw_key;
CREATE_VIEW(cnd_v_rap_conditiemetingen, 0)
(
mld_melding_key,
complexnummer,
clusternummer,
clusternaam,
gebouwgroep,
hoofdrecept,
groeprecept,
subrecept,
identificatie,
gebreknr,
datum_tijd,
datum,
inspecteur,
status,
gebrek,
omschrijving,
ernst,
omvang,
intensiteit,
veiligheid_gezondheid,
cultuurhistorische_waarde,
gebruik_en_bedrijfsproces,
technische_vervolgschade,
toename_klachtenonderhoud,
beleving_esthetica,
foto
)
AS
SELECT m.mld_melding_key,
l.alg_locatie_omschrijving complexnummer,
aog.alg_gebouw_code clusternummer,
aog.alg_gebouw_naam clusternaam,
aog.alg_gebouw_groep groep,
id.ins_discipline_omschrijving hoofdrecept,
isg.ins_srtgroep_omschrijving groeprecept,
isd.ins_srtdeel_omschrijving || ' (' || isd.ins_srtdeel_code || ')'
subrecept,
d.ins_deel_omschrijving identificatie,
m.mld_melding_key gebreknummer,
m.mld_melding_datum datum_tijd,
TO_CHAR (mld_melding_datum, 'DD-MM-YYYY') datum,
pf.prs_perslid_naam_full inspecteur,
s.mld_statuses_omschrijving status,
std.mld_stdmelding_omschrijving gebrek,
m.mld_melding_omschrijving omschrijving,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ERNST'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
ernst,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'OMVANG'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
omvang,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'INTENSITEIT'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
intensiteit,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT1'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
veiligheid_gezondheid,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT2'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
cultuurhistorische_waarde,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT3'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
gebruik_en_bedrijfsproces,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT4'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
technische_vervolgschade,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT5'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
toename_klachtenonderhoud,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT6'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
beleving_esthetica,
(SELECT k.mld_kenmerk_key
FROM mld_kenmerk k, mld_srtkenmerk sk
WHERE sk.mld_srtkenmerk_code = 'FOTO' AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key)
foto
FROM mld_melding m,
mld_melding_object mo,
ins_deel d,
ins_srtdeel isd,
ins_srtgroep isg,
ins_discipline id,
alg_v_allonrgoed_gegevens aog,
alg_locatie l,
mld_statuses s,
prs_v_perslid_fullnames_all pf,
mld_stdmelding std
WHERE m.mld_melding_key = mo.mld_melding_key
AND d.ins_deel_key = mo.ins_deel_key
AND d.ins_srtdeel_key = isd.ins_srtdeel_key
AND isd.ins_srtgroep_key = isg.ins_srtgroep_key
AND isg.ins_discipline_key = id.ins_discipline_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
AND l.alg_locatie_key = aog.alg_locatie_key
AND s.mld_statuses_key = m.mld_melding_status
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key;
REGISTERRUN('$Id$')
#endif // CND

View File

@@ -19,11 +19,12 @@ create index cnt_i_cnt_contract_plaats1 on cnt_contract_plaats(cnt_alg_plaats_ke
create index cnt_i_cnt_contract_plaats2 on cnt_contract_plaats(cnt_contract_key);
create index cnt_i_cnt_contract_object1 on cnt_contract_object(cnt_contract_key);
CREATE INDEX cnt_i_cnt_contract_object2 ON cnt_contract_object(cnt_ins_deel_key);
CREATE INDEX cnt_i_cnt_contract_onrg1 ON cnt_contract_onrgoed(cnt_contract_key);
CREATE INDEX cnt_i_cnt_contract_onrg2 ON cnt_contract_onrgoed(alg_onrgoed_key);
CREATE INDEX cnt_i_cnt_contract_note1 ON cnt_contract_note(cnt_contract_key);
CREATE UNIQUE INDEX cnt_i_cnt_factuurschema1 ON cnt_factuurschema(cnt_contract_key, cnt_factuurschema_boekmaand);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: CNT_IND.SRC $','$Revision$')
#endif // CNT

View File

@@ -5,13 +5,13 @@
/*
** Bij installatie van modules moet de tabel FAC_MODULE gevuld of ge-update worden.
*/
_FAC_MODULE('CNT','lcl_module_CNT')
_FAC_MODULE('CNT','Contractbeheer')
/*
** De MESSAGES van de CNT module.
*/
DEF_FAC_MESSAGE ('CNT_M001','Verwijderen contract','Delete contract');
DEF_FAC_MESSAGE ('CNT_M002','Er moet of een bedrijf of een afdeling of een persoon ingevuld worden.','Either a company or a department or a person must be entered.');
DEF_FAC_MESSAGE ('CNT_M002','Er moet of een bedrijf of een afdeling ingevuld worden.','Either a company or a department must be entered.');
DEF_FAC_MESSAGE ('CNT_M003','Locatie bestaat niet.','Location does not exist.');
DEF_FAC_MESSAGE ('CNT_M004','Terreinsector bestaat niet.','Sublocation does not exist.');
DEF_FAC_MESSAGE ('CNT_M005','Gebouw bestaat niet.','Building does not exist.');
@@ -63,11 +63,20 @@ DEF_FAC_MESSAGE ('cnt_r_cnt_contract_stdmld' ,'De aangegeven dienst bestaat n
DEF_FAC_MESSAGE ('cnt_r_cnt_contract_bedrijf' ,'Het aangegeven bedrijf bestaat niet.' ,'That company does not exist.');
DEF_FAC_MESSAGE ('cnt_r_cnt_contractint' ,'De aangegeven interne contactpersoon bestaat niet.' ,'That internal contact person does not exist');
INSERT INTO cnt_typecontract VALUES (1, 'lcl_cnt_typecontract1'); //Objecten
INSERT INTO cnt_typecontract VALUES (3, 'lcl_cnt_typecontract3'); //Plaats/Objectsoort
INSERT INTO cnt_typecontract VALUES (4, 'lcl_cnt_typecontract4'); //Geen
INSERT INTO cnt_typecontract VALUES (5, 'lcl_cnt_typecontract5'); //Plaats
INSERT INTO cnt_typecontract VALUES (6, 'lcl_cnt_typecontract6'); //Mantel
INSERT INTO cnt_mutatie_status VALUES (0, 'Vervallen');
INSERT INTO cnt_mutatie_status VALUES (1, 'Open');
INSERT INTO cnt_mutatie_status VALUES (2, 'Concept');
INSERT INTO cnt_mutatie_status VALUES (3, 'Ontvangen/Ok');
INSERT INTO cnt_mutatie_status VALUES (4, 'Ontvangen/NietOk');
INSERT INTO cnt_mutatie_status VALUES (5, 'Voltooid');
INSERT INTO cnt_mutatie_status VALUES (6, 'Geexporteerd');
INSERT INTO cnt_typecontract VALUES (1, 'Onderhoud/Maintenance');
INSERT INTO cnt_typecontract VALUES (2, 'Huur/Rental');
INSERT INTO cnt_typecontract VALUES (3, 'Ondersteuning/Support');
INSERT INTO cnt_typecontract VALUES (4, 'Algemeen/Generic');
INSERT INTO cnt_typecontract VALUES (5, 'Leverancier/Supplier');
INSERT INTO cnt_typecontract VALUES (6, 'Mantel/Master');
INSERT INTO cnt_termijn (cnt_termijn_type, cnt_termijn_aantal, cnt_termijn_omschrijving, cnt_termijn_volgnummer) VALUES ('W', 0, 'Geen', 10);
INSERT INTO cnt_termijn (cnt_termijn_type, cnt_termijn_aantal, cnt_termijn_omschrijving, cnt_termijn_volgnummer) VALUES ('W', 1, '1 Week', 20);
@@ -80,7 +89,7 @@ INSERT INTO cnt_termijn (cnt_termijn_type, cnt_termijn_aantal, cnt_termijn_omsch
INSERT INTO cnt_termijn (cnt_termijn_type, cnt_termijn_aantal, cnt_termijn_omschrijving, cnt_termijn_volgnummer) VALUES ('M', 9, '9 Maanden', 90);
INSERT INTO cnt_termijn (cnt_termijn_type, cnt_termijn_aantal, cnt_termijn_omschrijving, cnt_termijn_volgnummer) VALUES ('Y', 1, '1 Jaar', 100);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: CNT_INI.SRC $','$Revision$')
#endif // CNT

View File

@@ -4,235 +4,215 @@
* $Id$
*/
CREATE OR REPLACE PACKAGE cnt AS
PROCEDURE setcontractstatus (pcontractkey IN NUMBER, pstatus IN NUMBER, puserkey IN NUMBER);
CREATE OR REPLACE PACKAGE Cnt AS
FUNCTION cnt_getTermijndatum (pdate IN DATE, ptermijn_key IN NUMBER, prichting IN NUMBER) RETURN DATE;
FUNCTION termijnjaarfactor (ptermijn_key IN NUMBER) RETURN NUMBER;
FUNCTION cnt_getOpzegdatum (pcnt_contract_key IN NUMBER) RETURN DATE;
FUNCTION cnt_getRappeldatum (pcnt_contract_key IN NUMBER) RETURN DATE;
FUNCTION cnt_contract_status (van IN DATE, rappel IN DATE, opzeg IN DATE, tot IN DATE) RETURN NUMBER;
FUNCTION cnt_contract_items (cntKey IN NUMBER) RETURN VARCHAR2;
PROCEDURE cnt_complete_mutatie(p_mutaite_key IN NUMBER);
PROCEDURE splitscontract (p_key IN NUMBER, p_datum IN DATE, p_user IN NUMBER, p_amount NUMBER);
PROCEDURE generatefactuurschema (pcontractkey IN NUMBER,ptermijnbedrag IN NUMBER DEFAULT NULL);
FUNCTION getnieuwsteversiekey(p_key IN NUMBER) RETURN NUMBER;
FUNCTION sprintf (ps IN VARCHAR2 , p_contract_key IN NUMBER) RETURN VARCHAR2;
PRAGMA RESTRICT_REFERENCES (cnt_contract_items, WNDS, WNPS);
PRAGMA RESTRICT_REFERENCES (cnt_contract_status, WNDS, WNPS);
END cnt;
END Cnt;
/
CREATE OR REPLACE PACKAGE BODY cnt AS
-- Geef contractkey, gewenste status en userkey, en de status wortdt
-- gezet, waarbij zonodig (indien verandering) een trackrecord wordt gemaakt
-- Als de status niet wijzigt, wordt ook geen trackrecord gemaakt
-- ZIE schema StateDiagramContracten.vsd
PROCEDURE setcontractstatus (pcontractkey IN NUMBER, pstatus IN NUMBER, puserkey IN NUMBER)
AS
currentstatus cnt_contract.cnt_contract_status%TYPE;
newstatus cnt_contract.cnt_contract_status%TYPE;
eventcode fac_srtnotificatie.fac_srtnotificatie_code%TYPE;
BEGIN
SELECT cnt_contract_status
INTO currentstatus
FROM cnt_contract
WHERE cnt_contract_key = pcontractkey;
CREATE OR REPLACE PACKAGE BODY Cnt AS
CASE pstatus
WHEN 0 -- Actief
THEN
IF currentstatus IS NULL
THEN
newstatus := pstatus;
eventcode := 'CNTNEW';
ELSIF currentstatus = 2 OR currentstatus = 3 -- Het kan ook zijn dat er geen fiattering nodig is.
THEN
newstatus := pstatus;
eventcode := 'CNTFIT';
END IF;
WHEN 1 -- Gesloten
THEN
IF currentstatus = 0
THEN
newstatus := pstatus;
eventcode := 'CNTCLO';
END IF;
WHEN 2 -- Nieuw
THEN
IF currentstatus IS NULL
THEN
newstatus := pstatus;
eventcode := 'CNTNEW';
ELSIF currentstatus = 3
THEN
newstatus := pstatus;
eventcode := 'CNTREJ';
END IF;
WHEN 3 -- Ter goedkeuring
THEN
IF currentstatus = 2
THEN
newstatus := pstatus;
eventcode := 'CNTCPT';
END IF;
ELSE
-- Invalid statuschange or no change
newstatus := NULL;
END CASE;
-- Deze functie bepaald de datum door het termijn (ptermijn_key) van de datum (pdate) in mindering te brengen.
-- Indien de 29, 30 of 31 datum niet in de betreffende maand voorkomt wordt de eerste van de volgende maand genomen.
-- prichting geeft aan of ten opzichte van pdate achteruit (-1) of vooruit (1, of anders) moet worden gerekend.
FUNCTION cnt_getTermijndatum (pdate IN DATE, ptermijn_key IN NUMBER, prichting IN NUMBER) RETURN DATE IS
ptermijn_type VARCHAR2(1);
ptermijn_aantal NUMBER;
lrichting NUMBER;
BEGIN
IF prichting = -1
THEN
lrichting := -1;
ELSE
lrichting := 1;
END IF;
IF newstatus IS NOT NULL
THEN
-- vooralsnog lopen de notificaties 1-op-1 met de tracking
-- noticode := eventcode;
UPDATE cnt_contract
SET cnt_contract_status = newstatus
WHERE cnt_contract_key = pcontractkey;
-- Bepaal type en aantal periodes
IF ptermijn_key IS NOT NULL
THEN
SELECT cnt_termijn_type,
cnt_termijn_aantal
INTO ptermijn_type,
ptermijn_aantal
FROM cnt_termijn
WHERE cnt_termijn_key = ptermijn_key;
ELSE
-- Als ptermijn_key leeg/ongedefinieerd, return pdate (ofwel termijn dan impliciet 0 dagen)!
RETURN pdate;
END IF;
-- We know that trackaction doesnt do tracking if eventcode is null
fac.trackaction (eventcode, pcontractkey, puserkey, NULL, NULL);
END IF;
END;
IF ptermijn_type = 'D'
THEN
RETURN pdate + (lrichting * ptermijn_aantal);
ELSIF ptermijn_type = 'W'
THEN
RETURN pdate + (lrichting * ptermijn_aantal * 7);
ELSIF ptermijn_type = 'M'
THEN
RETURN fac.addMonths(pdate, lrichting * ptermijn_aantal);
ELSE
-- ptermijn_type = 'Y'
RETURN fac.addMonths(pdate, lrichting * ptermijn_aantal * 12);
END IF;
END;
-- Deze functie bepaalt de datum door het termijn (ptermijn_key) van de datum (pdate) in mindering te brengen.
-- Indien de 29, 30 of 31 datum niet in de betreffende maand voorkomt wordt de eerste van de volgende maand genomen.
-- prichting geeft aan of ten opzichte van pdate achteruit (-1) of vooruit (1, of anders) moet worden gerekend.
FUNCTION cnt_getTermijndatum (pdate IN DATE, ptermijn_key IN NUMBER, prichting IN NUMBER)
RETURN DATE
IS
ptermijn_type VARCHAR2(1);
ptermijn_aantal NUMBER;
lrichting NUMBER;
BEGIN
IF prichting = -1
THEN
lrichting := -1;
ELSE
lrichting := 1;
END IF;
FUNCTION cnt_getOpzegdatum (pcnt_contract_key IN NUMBER) RETURN DATE IS
plooptijd_tot DATE;
popzegtermijn NUMBER;
BEGIN
SELECT cnt_contract_looptijd_tot,
cnt_contract_opzegtermijn
INTO plooptijd_tot,
popzegtermijn
FROM cnt_contract
WHERE cnt_contract_key = pcnt_contract_key;
RETURN cnt_getTermijndatum (plooptijd_tot, popzegtermijn, -1);
END;
-- Bepaal type en aantal periodes
IF ptermijn_key IS NOT NULL
THEN
SELECT cnt_termijn_type,
cnt_termijn_aantal
INTO ptermijn_type,
ptermijn_aantal
FROM cnt_termijn
WHERE cnt_termijn_key = ptermijn_key;
ELSE
-- Als ptermijn_key leeg/ongedefinieerd, return pdate (ofwel termijn dan impliciet 0 dagen)!
RETURN pdate;
END IF;
FUNCTION cnt_getRappeldatum (pcnt_contract_key IN NUMBER) RETURN DATE IS
plooptijd_tot DATE;
prappeltermijn NUMBER;
popzegtermijn NUMBER;
BEGIN
SELECT cnt_contract_looptijd_tot,
cnt_contract_rappeltermijn,
cnt_contract_opzegtermijn
INTO plooptijd_tot,
prappeltermijn,
popzegtermijn
FROM cnt_contract
WHERE cnt_contract_key = pcnt_contract_key;
RETURN cnt_getTermijndatum (cnt_getTermijndatum (plooptijd_tot, popzegtermijn, -1), prappeltermijn, -1);
END;
IF ptermijn_type = 'D'
THEN
RETURN pdate + (lrichting * ptermijn_aantal);
ELSIF ptermijn_type = 'W'
THEN
RETURN pdate + (lrichting * ptermijn_aantal * 7);
ELSIF ptermijn_type = 'M'
THEN
RETURN fac.addMonths(pdate, lrichting * ptermijn_aantal);
ELSE
-- ptermijn_type = 'Y'
RETURN fac.addMonths(pdate, lrichting * ptermijn_aantal * 12);
END IF;
END;
FUNCTION cnt_contract_status (van IN DATE, rappel IN DATE, opzeg IN DATE, tot IN DATE) RETURN NUMBER AS
varSysdate DATE;
BEGIN
varSysdate:=SYSDATE;
-- Deze functie benadert de factor om een contracttermijn te normaliseren tot een (1) jaar.
-- Als dat niet kan (ongeldige termijn) wordt nu -1 opgeleverd
-- Vb: 4W -> 13, 2M ->6, 2J-> 0,5
-- Kan geen rekening houden met schrikkeljaren en 53 weken en zo
FUNCTION termijnjaarfactor (ptermijn_key IN NUMBER)
RETURN NUMBER
IS
ptermijn_type VARCHAR2 (1);
ptermijn_aantal NUMBER;
BEGIN
IF ptermijn_key IS NOT NULL
THEN
SELECT cnt_termijn_type, cnt_termijn_aantal
INTO ptermijn_type, ptermijn_aantal
FROM cnt_termijn
WHERE cnt_termijn_key = ptermijn_key;
ELSE
-- Als ptermijn_key leeg/ongedefinieerd, return dan maar 1
RETURN -1;
END IF;
IF varSysdate < van THEN
RETURN 0;
ELSIF varSysdate <= rappel THEN
RETURN 1;
ELSIF varSysdate <= opzeg THEN
RETURN 2;
ELSIF varSysdate <= tot THEN
RETURN 3;
END IF;
IF ptermijn_aantal = 0
THEN
RETURN -1; -- delen door null mag niet he
END IF;
RETURN 4;
END;
IF ptermijn_type = 'D'
THEN
RETURN 365 / ptermijn_aantal;
-- soms 366
ELSIF ptermijn_type = 'W'
THEN
RETURN 52 / ptermijn_aantal; -- soms 53
ELSIF ptermijn_type = 'M'
THEN
RETURN 12 / ptermijn_aantal;
ELSE
-- ptermijn_type = 'Y'
RETURN 1 / ptermijn_aantal;
END IF;
END;
FUNCTION cnt_getOpzegdatum (pcnt_contract_key IN NUMBER) RETURN DATE IS
plooptijd_tot DATE;
popzegtermijn NUMBER;
BEGIN
SELECT cnt_contract_looptijd_tot,
cnt_contract_opzegtermijn
INTO plooptijd_tot,
popzegtermijn
FROM cnt_contract
WHERE cnt_contract_key = pcnt_contract_key;
RETURN cnt_getTermijndatum (plooptijd_tot, popzegtermijn, -1);
END;
FUNCTION cnt_contract_items (cntKey IN NUMBER) RETURN VARCHAR2 AS
ret VARCHAR2(512);
var_ckey number;
CURSOR query(cntKey NUMBER) IS
SELECT 1 ckey, S.INS_SRTDEEL_CODE || ' ' ||S.INS_SRTDEEL_OMSCHRIJVING cntText
from CNT_CONTRACT_OBJECT O, INS_V_AANWEZIGSRTDEEL S
WHERE O.CNT_CONTRACT_KEY = cntKey
AND S.ins_srtdeel_key = O.cnt_ins_srtdeel_key
AND O.cnt_ins_DEEL_key IS NULL
UNION
SELECT 2 ckey, D.INS_DEEL_OMSCHRIJVING cntText
from CNT_CONTRACT_OBJECT O, INS_V_AANWEZIGDEEL D
WHERE O.CNT_CONTRACT_KEY = cntKey
AND D.ins_DEEL_key = O.cnt_ins_DEEL_key
UNION
SELECT 3 ckey, g.alg_locatie_omschrijving cntText
FROM alg_v_aanweziglocatie g, CNT_v_aanwezigCONTRACT_PLAATS P
WHERE p.CNT_CONTRACT_KEY = cntKey
AND p.cnt_alg_plaats_key = g.alg_locatie_key
AND p.CNT_ALG_PLAATS_CODE = 'L'
UNION
SELECT 4 ckey, l.alg_locatie_omschrijving || ' ' ||g.alg_gebouw_omschrijving cntText
FROM alg_v_aanweziggebouw g, CNT_v_aanwezigCONTRACT_PLAATS P, alg_locatie l
WHERE p.CNT_CONTRACT_KEY = cntKey
AND p.cnt_alg_plaats_key = g.alg_gebouw_key
AND p.CNT_ALG_PLAATS_CODE = 'G'
AND l.alg_locatie_key = g.alg_locatie_key
UNION
SELECT 5 ckey, l.alg_locatie_omschrijving || ' ' ||alg_terreinsector_naam cntText
FROM alg_v_aanwezigterreinsector T, CNT_v_aanwezigCONTRACT_PLAATS P, alg_locatie l
WHERE p.CNT_CONTRACT_KEY = cntKey
AND p.cnt_alg_plaats_key = T.alg_terreinsector_key
AND p.CNT_ALG_PLAATS_CODE = 'T'
AND l.alg_locatie_key = t.alg_locatie_key
ORDER BY 2;
FUNCTION cnt_getRappeldatum (pcnt_contract_key IN NUMBER)
RETURN DATE
IS
plooptijd_tot DATE;
prappeltermijn NUMBER;
popzegtermijn NUMBER;
BEGIN
SELECT cnt_contract_looptijd_tot,
cnt_contract_rappeltermijn,
cnt_contract_opzegtermijn
INTO plooptijd_tot,
prappeltermijn,
popzegtermijn
FROM cnt_contract
WHERE cnt_contract_key = pcnt_contract_key;
RETURN cnt_getTermijndatum (cnt_getTermijndatum (plooptijd_tot, popzegtermijn, -1), prappeltermijn, -1);
END;
BEGIN
ret := null;
var_ckey := -1;
FOR cntitem_rec IN query(cntKey) LOOP
IF var_ckey = -1 THEN
ret := cntitem_rec.cntText;
ELSE
IF LENGTH(ret)+LENGTH(cntitem_rec.cntText)<(512-5) THEN
ret := ret || CHR(10) || cntitem_rec.cntText;
ELSE
ret := ret || CHR(10) || '...';
RETURN ret;
END IF;
END IF;
var_ckey := cntitem_rec.ckey;
END LOOP;
FUNCTION cnt_contract_status (van IN DATE, rappel IN DATE, opzeg IN DATE, tot IN DATE)
RETURN NUMBER
AS
varSysdate DATE;
BEGIN
varSysdate:=SYSDATE;
RETURN ret;
END;
IF varSysdate < van THEN
RETURN 0;
ELSIF varSysdate <= rappel THEN
RETURN 1;
ELSIF varSysdate <= opzeg THEN
RETURN 2;
ELSIF varSysdate <= tot THEN
RETURN 3;
END IF;
RETURN 4;
END;
PROCEDURE splitscontract (p_key IN NUMBER, p_datum IN DATE, p_user IN NUMBER, p_amount NUMBER)
PROCEDURE cnt_complete_mutatie(p_mutaite_key IN NUMBER) IS
-- The following actions should be executed when the state becomes 'Voltooid':
-- Find the matching records in the CNT_CONTRACT_ONRGOED table where one row without a mutation_key
-- filled in matches a row with a mutation_key filled in.
-- The match will be successful if both rows have the same ALG_ONRGOED_KEY,
-- the same ALG_ONRGOED_NIVEAU and the same CNT_CONTRACT_KEY.
-- From these matching records the one without CNT_MUTATION_KEY should be deleted
BEGIN
DELETE
cnt_contract_onrgoed
WHERE cnt_contract_onrgoed_key IN (
SELECT a.cnt_contract_onrgoed_key
FROM cnt_contract_onrgoed b, cnt_contract_onrgoed a
WHERE a.cnt_contract_key = b.cnt_contract_key
AND a.alg_onrgoed_key = b.alg_onrgoed_key
AND a.alg_onrgoed_niveau = b.alg_onrgoed_niveau
AND b.cnt_mutatie_key = p_mutaite_key
AND a.cnt_mutatie_key IS NULL);
-- Delete the entries in the CNT_CONTRACT_ONRGOED table with the mutation_key equal
-- to the CNT_MUTATION that will be accepted and where the area size (CNT_CONTRACT_ONRGOED_OPP) = 0.
DELETE
cnt_contract_onrgoed
WHERE cnt_mutatie_key = p_mutaite_key
AND CNT_CONTRACT_ONRGOED_OPP = 0;
-- Set the Mutation_key to NULL from the rows where the CNT_MUTATION_KEY will be equal to the CNT_MUTATION that was accepted.
UPDATE
cnt_contract_onrgoed
SET cnt_mutatie_key = NULL
WHERE cnt_mutatie_key = p_mutaite_key;
--The state of the mutation should be set to 'Voltooid'
UPDATE cnt_mutatie
SET CNT_MUTATIE_DATUM_VOLTOOID = SYSDATE,
CNT_MUTATIE_STATUS = 5
WHERE cnt_mutatie_key = p_mutaite_key;
END cnt_complete_mutatie;
PROCEDURE splitscontract (p_key IN NUMBER, p_datum IN DATE, p_user IN NUMBER, p_amount NUMBER)
IS
begin1 DATE;
eind1 DATE;
@@ -240,11 +220,9 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
newkey NUMBER;
nummer1 cnt_contract.cnt_contract_nummer_intern%TYPE;
amount1 cnt_contract.cnt_contract_kosten%TYPE;
srtcontract_type cnt_disc_params.cnt_srtcontract_type%TYPE;
new_status cnt_contract.cnt_contract_status%TYPE;
BEGIN
-- Splits het contract met p_key in twee delen: het oude dat eindigt op p_datum - 1,
-- en een nieuwe kopie die begint op die p_datum
-- Splits het contract met p_key in twee delen: het oude dat eindigt op p_datum,
-- en een nieuwe kopie die begint op die datum
-- p_amount is -optioneel- het bedrag dat bij het oude contract moeten blijven
-- de rest komt bij de nieuwe. Als p_amount NULL is, eindigen beide contracten
-- met het originele bedrag.
@@ -258,36 +236,27 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
c.cnt_contract_looptijd_tot,
COALESCE (c.cnt_contract_versie, '0'),
cnt_contract_nummer_intern,
cnt_contract_kosten,
cdp.cnt_srtcontract_type
INTO begin1, eind1, versie1, nummer1, amount1, srtcontract_type
FROM cnt_contract c,
cnt_disc_params cdp
WHERE c.ins_discipline_key = cdp.cnt_ins_discipline_key
AND c.cnt_contract_key = p_key
AND c.cnt_contract_looptijd_van < p_datum
AND c.cnt_contract_looptijd_tot > p_datum;
cnt_contract_kosten
INTO begin1, eind1, versie1, nummer1, amount1
FROM cnt_contract c
WHERE c.cnt_contract_key = p_key
AND c.cnt_contract_looptijd_van < p_datum
AND c.cnt_contract_looptijd_tot > p_datum;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN;
END;
IF (fac.getsetting('cnt_contract_approval') = 1 AND srtcontract_type != 6)
THEN
new_status := 2; -- altijd op nieuw
ELSE
new_status := 0; -- direct actief
END IF;
-- de datum is een zinvolle splitsdatum, alles in orde
INSERT INTO cnt_contract (cnt_contract_nummer, cnt_contract_omschrijving, cnt_contract_looptijd_tot, cnt_contract_kosten,
cnt_contract_uurloon, cnt_prs_bedrijf_key, cnt_prs_afdeling_key, cnt_prs_perslid_key,
cnt_contract_verwijder, cnt_contract_nummer_intern, cnt_contract_korting, prs_contactpersoon_key,
cnt_contract_uurloon, cnt_prs_bedrijf_key, cnt_prs_afdeling_key, cnt_contract_verwijder,
cnt_contract_nummer_intern, cnt_contract_korting, prs_contactpersoon_key,
cnt_contract_contact_persoon, ins_discipline_key, cnt_contract_document,
prs_perslid_key_eig, prs_perslid_key_beh, prs_afdeling_key_eig, cnt_contract_status,
cnt_contract_looptijd_van, prs_kostenplaats_key, cnt_contract_termijnkosten, prs_kostensoort_key,
cnt_contract_opmerking, cnt_contract_mantel_key, cnt_contract_opzegtermijn,
cnt_contract_rappeltermijn, cnt_contract_versie, prs_dienst_key, cnt_contract_termijntermijn
cnt_contract_rappeltermijn, cnt_contract_versie
)
SELECT cnt_contract_nummer,
cnt_contract_omschrijving,
@@ -296,7 +265,6 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
cnt_contract_uurloon,
cnt_prs_bedrijf_key,
cnt_prs_afdeling_key,
cnt_prs_perslid_key,
NULL,
cnt_contract_nummer_intern,
cnt_contract_korting,
@@ -307,7 +275,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
prs_perslid_key_eig,
prs_perslid_key_beh,
prs_afdeling_key_eig,
new_status,
0,
p_datum,
prs_kostenplaats_key,
cnt_contract_termijnkosten,
@@ -316,9 +284,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
cnt_contract_mantel_key,
cnt_contract_opzegtermijn,
cnt_contract_rappeltermijn,
TO_CHAR (versie1 + 1),
prs_dienst_key,
cnt_contract_termijntermijn
TO_CHAR (versie1 + 1)
FROM cnt_contract
WHERE cnt_contract_key = p_key;
@@ -369,6 +335,18 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
FROM cnt_contract_object cob
WHERE cob.cnt_contract_key = p_key AND cob.cnt_contract_object_verwijder IS NULL;
--cnt_contract_onrgoed
INSERT INTO cnt_contract_onrgoed (cnt_contract_key, alg_onrgoed_key, alg_onrgoed_niveau, alg_srtonrgoed_key, cnt_contract_onrgoed_opp, cnt_srtruimte_prijs
)
SELECT newkey,
cog.alg_onrgoed_key,
cog.alg_onrgoed_niveau,
cog.alg_srtonrgoed_key,
cog.cnt_contract_onrgoed_opp,
cog.cnt_srtruimte_prijs
FROM cnt_contract_onrgoed cog
WHERE cog.cnt_contract_key = p_key AND cog.cnt_mutatie_key IS NULL;
--cnt_contract_plaats
INSERT INTO cnt_contract_plaats (cnt_contract_key, cnt_alg_plaats_code, cnt_alg_plaats_key, cnt_contract_plaats_gewicht
)
@@ -376,66 +354,15 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
FROM cnt_contract_plaats cop
WHERE cop.cnt_contract_key = p_key AND cop.cnt_contract_plaats_verwijder IS NULL;
IF p_amount IS NOT NULL AND amount1 <> 0 AND fac.getsetting('cnt_scopeverdeling') = 1
THEN -- gewicht is dan telkens een bedrag en cnt_contract_kosten is het totaal daarvan
UPDATE cnt_contract_plaats
SET cnt_contract_plaats_gewicht = cnt_contract_plaats_gewicht / amount1 * p_amount
WHERE cnt_contract_key = p_key;
UPDATE cnt_contract_plaats
SET cnt_contract_plaats_gewicht = cnt_contract_plaats_gewicht / amount1 * (amount1 - p_amount)
WHERE cnt_contract_key = newkey;
END IF;
--cnt_factuurschema: splitst op dezelfde grensdatum
UPDATE cnt_factuurschema
SET cnt_contract_key = newkey
WHERE cnt_contract_key = p_key
AND cnt_factuurschema_boekmaand >= TO_CHAR(p_datum, 'YYYY-MM');
WHERE cnt_contract_key = p_key AND cnt_factuurschema_datum > p_datum;
fac.trackaction ('CNTNEW', newkey, p_user, NULL, NULL);
END splitscontract;
-- Genereer een factuurschema met een gelijk bedrag per maand gedurende
-- de looptijd van het contract
-- Verondersteld dat er nog geen schema was.
PROCEDURE generatefactuurschema (
pcontractkey IN NUMBER,
ptermijnbedrag IN NUMBER DEFAULT NULL)
AS
maanden NUMBER (10);
maand NUMBER (10);
ltermijnbedrag cnt_factuurschema.cnt_factuurschema_bedrag%TYPE;
BEGIN
FOR cnt_rec
IN (SELECT cnt_contract_kosten,
cnt_contract_looptijd_tot,
cnt_contract_looptijd_van
FROM cnt_contract
WHERE cnt_contract_key = pcontractkey)
LOOP
maanden :=
1
+ TRUNC(MONTHS_BETWEEN (cnt_rec.cnt_contract_looptijd_tot,
cnt_rec.cnt_contract_looptijd_van));
ltermijnbedrag :=
COALESCE (ptermijnbedrag, cnt_rec.cnt_contract_kosten / maanden);
FOR maand IN 0 .. maanden - 1
LOOP
INSERT INTO cnt_factuurschema (cnt_contract_key,
cnt_factuurschema_boekmaand,
cnt_factuurschema_bedrag)
VALUES (pcontractkey,
TO_CHAR (
ADD_MONTHS (cnt_rec.cnt_contract_looptijd_van, maand),
'YYYY-MM'),
ltermijnbedrag);
END LOOP;
END LOOP;
END;
-- Zoek de key van de hoogste revisie van het meegegeven contract
-- Beseffende dat _versie een oplopende reeks is en hopende dat
-- nummer_intern hetzelfde blijft over versies en vrij uniek is
@@ -477,47 +404,10 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
RETURN resultkey;
END;
FUNCTION sprintf (ps IN VARCHAR2 , p_contract_key IN NUMBER )
RETURN VARCHAR2
IS
s VARCHAR2 (2048 CHAR);
varlev VARCHAR2 (255 CHAR); -- Kan nu ook een samenstelling zijn van prs_perslid gegevens.
varomsch cnt_contract.cnt_contract_omschrijving%TYPE;
varnummer cnt_contract.cnt_contract_nummer_intern%TYPE;
BEGIN
s := ps;
-- We do support substitution of placeholders in the messages
-- ##LEV## = prs_bedrijf_naam
-- ##OMSCH## = cnt_contract_omschrijving
-- ##KEY## = cnt_contract_nummer_intern
IF INSTR (s, '#') > 0
THEN
SELECT COALESCE(prs_bedrijf_naam, fac.getsetting ('prs_pers_string'), fac.getsetting ('prs_dep_string')),
cnt_contract_omschrijving,
cnt_contract_nummer_intern
INTO varlev,
varomsch,
varnummer
FROM cnt_contract c,
prs_bedrijf b,
prs_perslid p,
prs_afdeling a
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
AND c.cnt_prs_perslid_key = p.prs_perslid_key(+)
AND c.cnt_prs_afdeling_key = a.prs_afdeling_key(+)
AND c.cnt_contract_key = p_contract_key;
s :=
REPLACE (REPLACE (REPLACE (s, '##LEV##', varlev), '##OMSCH##', varomsch),
'##KEY##',
varnummer
);
END IF;
RETURN s;
END;
END cnt;
END Cnt;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: CNT_PAC.SRC $','$Revision$')
#endif // CNT

View File

@@ -16,9 +16,12 @@ CREATE SEQUENCE cnt_s_cnt_srtkenmerk_key MINVALUE 1;
CREATE SEQUENCE cnt_s_cnt_kenmerk_key MINVALUE 1;
CREATE SEQUENCE cnt_s_cnt_kenmerkcontract_key MINVALUE 1;
CREATE SEQUENCE cnt_s_cnt_onrgoed_key MINVALUE 1;
CREATE SEQUENCE cnt_s_cnt_mutatie_key MINVALUE 1;
CREATE SEQUENCE cnt_s_cnt_contract_note_key MINVALUE 1;
CREATE SEQUENCE cnt_s_cnt_factuurschema_key MINVALUE 1;
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: CNT_SEQ.SRC $','$Revision$')
#endif // CNT

View File

@@ -42,16 +42,6 @@ CREATE_TABLE(cnt_disc_params, 0)
DEFAULT 1
NOT_NULL(cnt_srtcontract_type, cnt_c_cnt_srtcontract_type1)
CONSTRAINT cnt_r_cnt_typecontract_key REFERENCES cnt_typecontract(cnt_typecontract_key),
cnt_disc_params_opmerking
VARCHAR2(320),
cnt_disc_params_verkoopcontr
NUMBER(1)
DEFAULT 0
NOT NULL,
cnt_disc_params_factuurschema
NUMBER(1)
DEFAULT 0
NOT NULL,
cnt_disc_params_factuurmarge
NUMBER(8,2)
DEFAULT 0,
@@ -66,25 +56,7 @@ CREATE_TABLE(cnt_disc_params, 0)
/* bewust niet, irrelevant voor cnt: cnt_disc_params_factmatchmode -- 2-weg of 3-weg matching? */
cnt_disc_params_termijndefault
NUMBER(10)
CONSTRAINT cnt_r_cnt_disc_params_tdefault REFERENCES cnt_termijn(cnt_termijn_key),
cnt_disc_params_fin NUMBER(1)
DEFAULT 1 NOT NULL,
cnt_disc_params_binding
NUMBER(3)
DEFAULT (3)
NOT NULL, /* 2=Persoon 1=Bedrijf 3=Alles*/
cnt_disc_params_leverancier /* indien Bedrijf: Leveranciers? */
NUMBER(1)
DEFAULT 0
NOT NULL,
cnt_disc_params_uitvoerende /* indien Bedrijf: Uitvoerenden? */
NUMBER(1)
DEFAULT 0
NOT NULL,
cnt_disc_params_huurder /* indien Bedrijf: Huurders? */
NUMBER(1)
DEFAULT 0
NOT NULL
CONSTRAINT cnt_r_cnt_disc_params_tdefault REFERENCES cnt_termijn(cnt_termijn_key)
);
@@ -116,17 +88,11 @@ CREATE_TABLE(cnt_contract,0)
NUMBER(11,2)
, cnt_contract_termijnkosten
NUMBER(11,2)
, cnt_contract_termijntermijn
NUMBER(10)
CONSTRAINT cnt_r_cnt_termijn_key4 REFERENCES cnt_termijn(cnt_termijn_key)
, cnt_contract_uurloon
NUMBER(6,2)
, cnt_prs_bedrijf_key
NUMBER(10)
CONSTRAINT cnt_r_prs_bedrijf_key REFERENCES prs_bedrijf(prs_bedrijf_key)
, cnt_prs_perslid_key
NUMBER(10)
CONSTRAINT cnt_r_prs_perslid_key2 REFERENCES prs_perslid(prs_perslid_key)
, cnt_prs_afdeling_key
NUMBER(10)
CONSTRAINT cnt_r_prs_afdeling_key REFERENCES prs_afdeling(prs_afdeling_key)
@@ -142,7 +108,7 @@ CREATE_TABLE(cnt_contract,0)
, cnt_contract_nummer_intern
VARCHAR2(30)
, cnt_contract_korting
NUMBER(5,2)
NUMBER(4,2)
CONSTRAINT cnt_c_cnt_contract_korting CHECK(0 <= cnt_contract_korting AND cnt_contract_korting <= 100)
, prs_contactpersoon_key
NUMBER(10)
@@ -165,9 +131,10 @@ CREATE_TABLE(cnt_contract,0)
, prs_afdeling_key_eig
NUMBER(10)
CONSTRAINT cnt_r_prs_afdeling_key_eig REFERENCES prs_afdeling(prs_afdeling_key)
, cnt_contract_status /* 0=actief, 1=inactief, 2=nieuw, 3=ter goedkeuring */
, cnt_contract_status /* 0=actief, 1=inactief */
NUMBER(1)
CONSTRAINT cnt_c_cnt_contract_status CHECK(cnt_contract_status IN (0,1,2,3))
DEFAULT 0
CONSTRAINT cnt_r_cnt_contract_status CHECK(cnt_contract_status IN (0,1))
, cnt_contract_looptijd_van
DATE
DEFAULT to_date('01-01-'|| DATE_TO_CHAR(sysdate,'yyyy'),'dd-mm-yyyy')
@@ -185,14 +152,6 @@ CREATE_TABLE(cnt_contract,0)
NUMBER(1)
DEFAULT 2
CONSTRAINT cnt_r_cnt_contract_verlenging CHECK(cnt_contract_verlenging IN (0,1,2,3))
, cnt_contract_approved
NUMBER(11,2)
, cnt_contract_teverzenden
NUMBER(1)
, cnt_contract_locked_user_key
NUMBER(10)
, cnt_contract_locked_date
DATE
-- In BES_TAB.SRC:
--, bes_bestelopdr_key
-- NUMBER(10)
@@ -280,9 +239,10 @@ ALTER TABLE mld_opdr ADD
);
ALTER TABLE mld_opdr DROP CONSTRAINT mld_r_mld_melding_key1;
ALTER TABLE mld_opdr ADD
(
CONSTRAINT mld_r_mld_melding_key3 CHECK(mld_melding_key IS NOT NULL OR cnt_contract_key IS NOT NULL OR prs_kostensoort_key IS NOT NULL)
CONSTRAINT MLD_R_MLD_MELDING_KEY3 CHECK(mld_melding_key IS NOT NULL OR cnt_contract_key IS NOT NULL)
);
CREATE_TABLE(cnt_srtkenmerk, 0)
@@ -298,7 +258,7 @@ CREATE_TABLE(cnt_srtkenmerk, 0)
, cnt_srtkenmerk_kenmerktype
VARCHAR2(1)
, cnt_srtkenmerk_systeem
NUMBER(2)
NUMBER(1)
, cnt_srtkenmerk_lengte
NUMBER(4)
, cnt_srtkenmerk_dec
@@ -319,7 +279,7 @@ CREATE_TABLE(cnt_srtkenmerk, 0)
, CONSTRAINT cnt_c_cnt_srtkenmerk_omschr CHECK(cnt_srtkenmerk_omschrijving IS NOT NULL)
, CONSTRAINT cnt_srtkenmerk_omschrijving CHECK(cnt_srtkenmerk_omschrijving IS NOT NULL)
, CONSTRAINT cnt_u_cnt_srtkenmerk_upper UNIQUE(cnt_srtkenmerk_upper, cnt_srtkenmerk_verwijder)
, CONSTRAINT cnt_c_cnt_srtkenmerk_kenmtype CHECK(cnt_srtkenmerk_kenmerktype IN ('C','N','D','T','R','X','L','Q','F','M','E','S','l','B','V'))
, CONSTRAINT cnt_c_cnt_srtkenmerk_kenmtype CHECK(cnt_srtkenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l'))
, CONSTRAINT cnt_c_cnt_srtkenmerk_systeem CHECK(cnt_srtkenmerk_systeem IS NULL
OR cnt_srtkenmerk_systeem = 1)
, CONSTRAINT cnt_c_cnt_srtkenmerk_lengte CHECK(cnt_srtkenmerk_lengte >= 1
@@ -340,18 +300,14 @@ CREATE_TABLE(cnt_kenmerk, 0)
NUMBER(10) /* verwijst naar ins_discipline */
, cnt_kenmerk_niveau
VARCHAR2(1)
, cnt_kenmerk_omschrijving
VARCHAR2(50) /* optionele overrule van srtkenmerk_omschrijving */
, cnt_kenmerk_verplicht
NUMBER(1)
, cnt_kenmerk_groep
NUMBER(1)
DEFAULT 0 NOT NULL
, cnt_kenmerk_toonbaar
NUMBER(1)
, cnt_kenmerk_volgnummer
NUMBER(3)
NOT NULL
, cnt_kenmerk_locatiekolom
VARCHAR2(30)
, cnt_kenmerk_uniek
NUMBER(1)
, cnt_kenmerk_regexp
@@ -364,16 +320,15 @@ CREATE_TABLE(cnt_kenmerk, 0)
, cnt_kenmerk_verwijder
DATE
DEFAULT NULLDATUM
, cnt_kenmerk_default VARCHAR2(4000)
, cnt_kenmerk_show_expr VARCHAR2(4000)
, CONSTRAINT cnt_r_cnt_srtkenmerk_key1 CHECK(cnt_srtkenmerk_key IS NOT NULL)
, CONSTRAINT cnt_r_cnt_srtkenmerk_key2 FOREIGN KEY(cnt_srtkenmerk_key) REFERENCES cnt_srtkenmerk(cnt_srtkenmerk_key)
, CONSTRAINT cnt_c_cnt_kenmerk_niveau1 CHECK(cnt_kenmerk_niveau IS NOT NULL)
, CONSTRAINT cnt_c_cnt_kenmerk_niveau2 CHECK(cnt_kenmerk_niveau IN ('C','S'))
, CONSTRAINT cnt_c_cnt_kenmerk_toonbaar CHECK(cnt_kenmerk_toonbaar IS NULL
OR cnt_kenmerk_toonbaar = 1)
, CONSTRAINT cnt_c_cnt_kenmerk_aanmaak CHECK(cnt_kenmerk_aanmaak IS NOT NULL)
, CONSTRAINT cnt_u_cnt_kenmerk UNIQUE(cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_omschrijving, cnt_kenmerk_groep, cnt_kenmerk_verwijder)
, cnt_kenmerk_default VARCHAR2(255)
, CONSTRAINT cnt_r_cnt_srtkenmerk_key1 CHECK(cnt_srtkenmerk_key IS NOT NULL)
, CONSTRAINT cnt_r_cnt_srtkenmerk_key2 FOREIGN KEY(cnt_srtkenmerk_key) REFERENCES cnt_srtkenmerk(cnt_srtkenmerk_key)
, CONSTRAINT cnt_c_cnt_kenmerk_niveau1 CHECK(cnt_kenmerk_niveau IS NOT NULL)
, CONSTRAINT cnt_c_cnt_kenmerk_niveau2 CHECK(cnt_kenmerk_niveau IN ('C','S'))
, CONSTRAINT cnt_c_cnt_kenmerk_toonbaar CHECK(cnt_kenmerk_toonbaar IS NULL
OR cnt_kenmerk_toonbaar = 1)
, CONSTRAINT cnt_c_cnt_kenmerk_aanmaak CHECK(cnt_kenmerk_aanmaak IS NOT NULL)
, CONSTRAINT cnt_u_cnt_kenmerk UNIQUE(cnt_srtkenmerk_key, cnt_srtcontract_key, cnt_kenmerk_niveau, cnt_kenmerk_verwijder)
);
CREATE_TABLE(cnt_kenmerkcontract, 0)
@@ -398,10 +353,69 @@ CREATE_TABLE(cnt_kenmerkcontract, 0)
, CONSTRAINT cnt_r_cnt_kenmerk_key1 CHECK(cnt_kenmerk_key IS NOT NULL)
, CONSTRAINT cnt_r_cnt_kenmerk_key2 FOREIGN KEY(cnt_kenmerk_key) REFERENCES cnt_kenmerk(cnt_kenmerk_key)
, CONSTRAINT cnt_c_cnt_kenmerkcontract_aan CHECK(cnt_kenmerkcontract_aanmaak IS NOT NULL)
, CONSTRAINT cnt_u_cnt_kenmerkcontract UNIQUE(cnt_contract_key, cnt_kenmerk_key, cnt_kenmerkcontract_verwijder)
, CONSTRAINT cnt_u_cnt_kenmerkcontract UNIQUE(cnt_kenmerk_key, cnt_contract_key, cnt_kenmerkcontract_verwijder)
, CONSTRAINT cnt_r_kenmerk_contract FOREIGN KEY (cnt_contract_key) REFERENCES cnt_contract(cnt_contract_key) ON DELETE CASCADE
);
CREATE_TABLE(cnt_mutatie, 0)
( cnt_mutatie_key NUMBER(10)
CONSTRAINT cnt_k_cnt_mutatie_key PRIMARY KEY,
cnt_mutatie_omschrijving VARCHAR2(50),
cnt_mutatie_datum DATE,
cnt_mutatie_datum_concept DATE,
cnt_mutatie_datum_ontvangen DATE,
cnt_mutatie_datum_voltooid DATE,
cnt_mutatie_datum_ingang DATE,
prs_perslid_key NUMBER(10)
CONSTRAINT cnt_r_prs_perslid_key REFERENCES prs_perslid(prs_perslid_key),
cnt_mutatie_status NUMBER(1) -- Open = 1 Concept = 2 OntvangenOK = 3 OntvangenNOK = 4 Voltooid = 5
);
CREATE_TABLE(cnt_mutatie_status,0)
(
cnt_mutatie_status
NUMBER(10)
CONSTRAINT cnt_k_cnt_mutatie_status_key PRIMARY KEY,
cnt_mutatie_status_omschrijv
VARCHAR2(30)
);
CREATE_TABLE(cnt_contract_onrgoed, 0)
( cnt_contract_onrgoed_key
NUMBER(10)
CONSTRAINT cnt_k_cnt_contract_onrgoed_key PRIMARY KEY,
cnt_contract_key
NUMBER(10)
CONSTRAINT cnt_r_cnt_contract_key REFERENCES cnt_contract(cnt_contract_key),
alg_onrgoed_key
NUMBER(10),
alg_onrgoed_niveau
VARCHAR2(1)
CONSTRAINT cnt_c_cnt_onrgoed_niveau CHECK(alg_onrgoed_niveau IN ('R', 'T')),
cnt_mutatie_key
NUMBER(10)
CONSTRAINT cnt_r_cnt_mutatie_key REFERENCES cnt_mutatie(cnt_mutatie_key) on delete cascade,
cnt_contract_onrgoed_opp
NUMBER(8,2),
alg_srtonrgoed_key
NUMBER(10),
cnt_mld_melding_key
NUMBER(10)
CONSTRAINT cnt_r_mld_melding_key REFERENCES mld_melding(mld_melding_key),
cnt_mutatie_status_key
NUMBER(10)
DEFAULT 1
CONSTRAINT cnt_r_cnt_mutatie_status REFERENCES cnt_mutatie_status(cnt_mutatie_status),
cnt_srtruimte_prijs
NUMBER(8,2),
cnt_contract_onrgoed_key_org
NUMBER(10)
CONSTRAINT cnt_r_cnt_contract_onrgoed_key REFERENCES cnt_contract_onrgoed(cnt_contract_onrgoed_key)
);
CREATE_TABLE(cnt_contract_note, 0)
(
cnt_contract_note_key NUMBER (10) PRIMARY KEY,
@@ -419,18 +433,15 @@ CREATE_TABLE(cnt_factuurschema , 0)
NUMBER(10)
NOT NULL
CONSTRAINT cnt_r_cnt_factuurschema1 REFERENCES cnt_contract(cnt_contract_key),
cnt_factuurschema_boekmaand /* format YYYY-MM */
VARCHAR2(7),
cnt_factuurschema_datum
DATE,
cnt_factuurschema_bedrag
NUMBER(11,2),
cnt_factuurschema_opmerking
VARCHAR2(320),
cnt_factuurschema_aanmaak
DATE
DEFAULT SYSDATE
cnt_factuurschema_referentie
VARCHAR2(20)
);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: CNT_TAB.SRC $','$Revision$')
#endif // CNT

View File

@@ -3,16 +3,6 @@
* $Id$
*/
AUDIT_BEGIN(cnt_disc_params)
AUDIT_VALUE(cnt_disc_params, cnt_srtcontract_type)
AUDIT_VALUE(cnt_disc_params, cnt_disc_params_factuurschema)
AUDIT_VALUE(cnt_disc_params, cnt_disc_params_factuurpct)
AUDIT_VALUE(cnt_disc_params, cnt_disc_params_factuurmarge)
AUDIT_VALUE(cnt_disc_params, cnt_disc_params_factuurappr)
AUDIT_VALUE(cnt_disc_params, cnt_disc_params_factuurgrens)
AUDIT_VALUE(cnt_disc_params, cnt_disc_params_opmerking)
AUDIT_END()
CREATE_TRIGGER(cnt_t_cnt_disc_params_b_iu)
BEFORE INSERT OR UPDATE ON cnt_disc_params
FOR EACH ROW
@@ -65,14 +55,9 @@ BEFORE INSERT OR UPDATE ON cnt_contract
FOR EACH ROW
BEGIN
IF ( :new.cnt_prs_bedrijf_key IS NULL
AND :new.cnt_prs_afdeling_key IS NULL
AND :new.cnt_prs_perslid_key IS NULL)
AND :new.cnt_prs_afdeling_key IS NULL)
OR ( :new.cnt_prs_bedrijf_key IS NOT NULL
AND :new.cnt_prs_afdeling_key IS NOT NULL)
OR ( :new.cnt_prs_bedrijf_key IS NOT NULL
AND :new.cnt_prs_perslid_key IS NOT NULL)
OR ( :new.cnt_prs_perslid_key IS NOT NULL
AND :new.cnt_prs_afdeling_key IS NOT NULL)
THEN
APPLICATION_ERROR_GOTO(-20000,'cnt_m002');
ELSE
@@ -85,6 +70,14 @@ BEGIN
SET_VERWIJDER_CHILDREN(cnt_contract_object,cnt_contract_key,cnt_contract_verwijder,cnt_contract_object_verwijder,cnt_contract);
SET_VERWIJDER_CHILDREN(cnt_contract_plaats,cnt_contract_key,cnt_contract_verwijder,cnt_contract_plaats_verwijder,cnt_contract);
BEGIN IF :new.cnt_contract_verwijder IS NOT NULL
OR ( :new.cnt_contract_verwijder IS NULL
AND :old.cnt_contract_verwijder IS NOT NULL)
THEN
DELETE cnt_contract_onrgoed
WHERE cnt_contract_onrgoed.cnt_contract_key = :new.cnt_contract_key;
END IF;
END;
END;
/
@@ -141,18 +134,14 @@ BEGIN
raise_application_error(-20003, 'CNT_C_CNT_SRTKENMERK_SYSTEEM');
END IF;
--
IF :new.cnt_srtkenmerk_kenmerktype IN ('C', 'N', 'B') AND :new.cnt_srtkenmerk_lengte IS NULL
IF (:new.cnt_srtkenmerk_kenmerktype = 'C'
OR :new.cnt_srtkenmerk_kenmerktype = 'N')
AND :new.cnt_srtkenmerk_lengte IS NULL
THEN
raise_application_error(-20000, 'CNT_C_CNT_SRTKENMERK_LENGTE');
END IF;
-- Numeriek mag niet te lang zijn (numeric overflow)
IF :new.cnt_srtkenmerk_kenmerktype IN ('N', 'B')
AND :new.cnt_srtkenmerk_lengte > 20
THEN
:new.cnt_srtkenmerk_lengte := 20;
END IF;
--
IF :new.cnt_srtkenmerk_kenmerktype IN ('N', 'B')
IF :new.cnt_srtkenmerk_kenmerktype = 'N'
AND :old.cnt_srtkenmerk_key IS NOT NULL
THEN
IF :old.cnt_srtkenmerk_nmin <> :new.cnt_srtkenmerk_nmin
@@ -234,7 +223,7 @@ BEGIN
SrtKenmerkNMin cnt_srtkenmerk.cnt_srtkenmerk_nmin%TYPE;
SrtKenmerkNMax cnt_srtkenmerk.cnt_srtkenmerk_nmax%TYPE;
KenmerkVerplicht cnt_kenmerk.cnt_kenmerk_verplicht%TYPE;
NumberWaarde NUMBER(25,5);
NumberWaarde NUMBER(15,5);
FormatMask VARCHAR2(60);
KenmerkContractWaarde cnt_kenmerkcontract.cnt_kenmerkcontract_waarde%TYPE;
BEGIN
@@ -277,7 +266,7 @@ BEGIN
THEN
APPLICATION_ERROR_GOTO(-20004, 'cnt_m241,'||SrtKenmerkOmschr||','||TO_CHAR(SrtKenmerkLengte));
END IF;
ELSIF SrtKenmerkType IN ('N', 'B')
ELSIF SrtKenmerkType = 'N'
THEN
-- NUMBER
-- Controleer of er een numerieke waarde ingevuld is.
@@ -331,6 +320,26 @@ BEGIN
END;
/
CREATE_TRIGGER(cnt_t_cnt_contract_onrg_B_IU)
BEFORE INSERT OR UPDATE ON cnt_contract_onrgoed
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(cnt_contract_onrgoed_key,cnt_s_cnt_onrgoed_key);
END;
/
CREATE_TRIGGER(cnt_t_cnt_mutatie_B_IU)
BEFORE INSERT OR UPDATE ON cnt_mutatie
FOR EACH ROW
BEGIN
:new.cnt_mutatie_datum := SYSDATE;
UPDATE_PRIMARY_KEY(cnt_mutatie_key,cnt_s_cnt_mutatie_key);
IF :new.cnt_mutatie_key IS NOT NULL AND :old.cnt_mutatie_key IS NULL THEN
:new.cnt_mutatie_datum_ingang := SYSDATE;
END IF;
END;
/
CREATE_TRIGGER(cnt_t_cnt_termijn_B_IU)
BEFORE INSERT OR UPDATE ON cnt_termijn
FOR EACH ROW
@@ -354,6 +363,6 @@ BEGIN
END;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: CNT_TRI.SRC $','$Revision$')
#endif // CNT

File diff suppressed because it is too large Load Diff

244
COMSQL.H
View File

@@ -14,24 +14,22 @@
#define STRINGIZE(a) #@a
#define _EVALCONCAT(a, b) a ## b
#define EVALCONCAT(a, b) _EVALCONCAT(a, b)
#define _MKSTRING(a) STRINGIZE(a)
/*
* The database schema version must increase with every release
* The database schema version; must increase with every release
* It is now defined by external macro _DBV
*/
/* The minimum required software version */
#define _VERSIONMAJ 2019
#define _VERSIONMIN 1
#define _VERSIONPATCH '0'
#define _VERSION '2019.1.0'
#define _DBV_STRING _MKSTRING(_DBV)
#define _VERSIONMAJ 5
#define _VERSIONMIN 2
#define _VERSIONPATCH STRINGIZE(2)
#define _VERSION '5.2.2'
#define REGISTERONCE(svnid) \
BEGIN adm.systrackscriptId(svnid, 1); END;~/
#define REGISTERONCE(f, r) \
BEGIN adm.systrackscript(f, r, 1); END;~/
#define REGISTERRUN(svnid) \
BEGIN adm.systrackscriptId(svnid, 0); END;~/
#define REGISTERRUN(f, r) \
BEGIN adm.systrackscript(f, r, 0); END;~/
#define SET_VERWIJDER_CHILDREN(child_table, parent_key, parent_verwijder, \
child_verwijder, table) \
@@ -79,9 +77,6 @@ BEGIN adm.systrackscriptId(svnid, 0); END;~/
END
#define CREATE_TYPE(type_name) \
CREATE TYPE type_name
#define CREATE_TABLE(table_name, level) \
CREATE TABLE table_name
@@ -102,16 +97,16 @@ INTO x
#define CREATE_SEQUENCE(sequence_name, minval) \
CREATE SEQUENCE sequence_name MINVALUE minval;
#define CREATE_VIEW(view_name, level) \
#define CREATE_VIEW(view_name, level) \
CREATE OR REPLACE FORCE VIEW view_name
#define CREATE_TRIGGER(trigger_name) \
#define CREATE_TRIGGER(trigger_name) \
CREATE OR REPLACE TRIGGER trigger_name
#define _END_TRIGGER() \
#define _END_TRIGGER() \
END;~/
#define CREATE_PROCEDURE(pack_name, proc_name) \
#define CREATE_PROCEDURE(pack_name, proc_name) \
CREATE OR REPLACE PROCEDURE proc_name
#define MONEY \
@@ -224,9 +219,49 @@ INTO x
#define _INTO3(x) \
,x
#define _DUMMY1_FROM \
DECLARE dummy CHAR;~BEGIN~SELECT 'X' INTO dummy FROM
#define _DUMMY1_WHEN1
#define _DUMMY1_WHEN0 \
EXCEPTION WHEN NO_DATA_FOUND THEN
#define _DUMMY1_WHEN2 \
WHEN TOO_MANY_ROWS THEN
#define _DUMMY1_END1
#define _DUMMY1_END2 \
end;
#define _U_NEW \
:new.
#define _U_OLD \
:old.
#define _U_UPDATE(table,field,new) \
field := new;
#define UPDATE_UPPER(omschrijving, upper_omschrijving,tab) \
:new.upper_omschrijving := UPPER(:new.omschrijving)
#define _BEFORE_INSERT_OR_UPDATE(TableName) \
BEFORE INSERT OR UPDATE ON TableName
#define _AFTER_UPDATE(TableName) \
AFTER UPDATE ON TableName
#define _BEFORE_UPDATE(TableName) \
BEFORE UPDATE ON TableName
#define _BEFORE_INSERT_OR_UPDATE_OR_DELETE(TableName) \
BEFORE INSERT OR UPDATE OR DELETE ON TableName
#define _AFTER_INSERT_OR_UPDATE_OR_DELETE(TableName) \
AFTER INSERT OR UPDATE OR DELETE ON TableName
#define _AFTER_INSERT_OR_UPDATE(TableName) \
AFTER INSERT OR UPDATE ON TableName
#define _BEFORE_DELETE(TableName) \
BEFORE DELETE ON TableName
#define UPDATE_AANMAAKDATUM(TableName, Datum_veld) \
BEGIN \
IF :new.Datum_veld IS NULL \
@@ -235,6 +270,11 @@ INTO x
END IF; \
END
#define _OR_REPLACE \
OR REPLACE
#define _FOR_EACH_ROW \
FOR EACH ROW
#define _CC \
||
@@ -628,100 +668,68 @@ CEIL
#define DEF_FAC_MESSAGE(a,b,c) INSERT INTO fac_message VALUES (a,b)
#define UPD_FAC_FUNCTIE2(c, o, m, l, d, g, i) UPDATE fac_functie SET fac_functie_omschrijving=o,fac_functie_module=m,fac_functie_min_level=l, fac_functie_discipline=d, fac_functie_groep=g, fac_functie_info=i) WHERE fac_functie_code=c
#define DEF_FAC_FUNCTIE3(c, m, l, d, g) INSERT INTO fac_functie (fac_functie_code, fac_functie_omschrijving,fac_functie_module,fac_functie_min_level, fac_functie_discipline, fac_functie_groep, fac_functie_info) VALUES(c, 'lcl_' || c, m, l, d, g, 'lcl_' || c || '_info')
#define DEF_FAC_FUNCTIE3x(c, x, m, l, d, g) INSERT INTO fac_functie (fac_functie_code, fac_functie_omschrijving,fac_functie_module,fac_functie_min_level, fac_functie_discipline, fac_functie_groep, fac_functie_info) VALUES(c||x, 'lcl_' || c ||x, m, l, d, g, 'lcl_' || c || x ||'_info')
#define DEF_FAC_SRTNOT(c, m, o, u, g, x, d) INSERT INTO fac_srtnotificatie (fac_srtnotificatie_code, fac_srtnotificatie_mode, fac_srtnotificatie_oms, fac_srtnotificatie_url, fac_srtnotificatie_groep, fac_srtnotificatie_xmlnode, fac_srtnotificatie_delay) VALUES (c, m, o, u, g, x, d)
#define DEF_FAC_FUNCTIE(c, o, m, l) INSERT INTO fac_functie (fac_functie_code, fac_functie_omschrijving,fac_functie_module,fac_functie_min_level) VALUES(c, o, m, l)
#define UPD_FAC_FUNCTIE(c, o, m, l) UPDATE fac_functie SET fac_functie_omschrijving=0,fac_functie_module=m,fac_functie_min_level=l) WHERE fac_functie_code=c
#define DEF_FAC_FUNCTIE2(c, o, m, l, d, g, i) INSERT INTO fac_functie (fac_functie_code, fac_functie_omschrijving,fac_functie_module,fac_functie_min_level, fac_functie_discipline, fac_functie_groep, fac_functie_info) VALUES(c, o, m, l, d, g, i)
#define UPD_FAC_FUNCTIE2(c, o, m, l, d, g, i) UPDATE fac_functie SET fac_functie_omschrijving=0,fac_functie_module=m,fac_functie_min_level=l, fac_functie_discipline=d, fac_functie_groep=g, fac_functie_info=i) WHERE fac_functie_code=c
#define DEF_FAC_SRTNOT(c, m, o, u, g, x) INSERT INTO fac_srtnotificatie (fac_srtnotificatie_code, fac_srtnotificatie_mode, fac_srtnotificatie_oms, fac_srtnotificatie_url, fac_srtnotificatie_groep, fac_srtnotificatie_xmlnode) VALUES (c, m, o, u, g, x)
#define DEF_MENUKOP(g, s, i) INSERT INTO fac_menu (fac_menu_volgnr, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_level) SELECT COALESCE(MAX(fac_menuitems_key),0)*100+50, s, g, i, 1 FROM fac_menuitems
#define DEF_MENUKOPV(g, v, s, i) INSERT INTO fac_menu (fac_menu_volgnr, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_level) VALUES (v, s, g, i, 1)
#define DEF_MENUITEM(g, l, i, m, u, s, d, f, rw, x, img) INSERT INTO fac_menuitems (fac_menuitems_groep, fac_menuitems_label, fac_menuitems_oms, fac_menuitems_module, fac_menuitems_url, fac_menuitems_srtdisc, fac_menuitems_disc, fac_functie_key, fac_menuitems_rw, fac_menuitems_default, fac_menuitems_image) SELECT g, l, i, m, u, s, d, fac_functie_key, rw, x, img FROM fac_functie WHERE fac_functie_code=f
#define DEF_MENUENTRY(g, v, l, i, m, u, s, d, f) INSERT INTO fac_menu (fac_menu_volgnr, fac_menu_altlabel, fac_menu_info, fac_menu_alturl, fac_menu_altgroep, fac_functie_key) SELECT v, l, i, u, g, fac_functie_key FROM fac_functie WHERE fac_functie_code = f AND NOT EXISTS (SELECT '' FROM fac_menu WHERE fac_menu_alturl = u)
#define DEF_SETTING(m, n, d, t) INSERT INTO fac_setting (fac_setting_module, fac_setting_name, fac_setting_default, fac_setting_description) VALUES (m, n, d, t)
#define DEF_BOOKMARK(x, p, q)INSERT INTO fac_bookmark (fac_bookmark_id, fac_bookmark_naam, fac_bookmark_xmlnode, fac_bookmark_path, fac_bookmark_query) VALUES (DBMS_RANDOM.string ('a', 16), x, x, p, q)
#define DEF_MENUKOP(g, s) INSERT INTO fac_menu (fac_menu_volgnr, fac_menu_altlabel, fac_menu_altgroep, fac_menu_level) SELECT COALESCE(MAX(fac_menuitems_key),0)*100+50, s, g, 1 FROM fac_menuitems
#define DEF_MENUITEM(g, l, i, m, u, s, d, f, rw, x) INSERT INTO fac_menuitems (fac_menuitems_groep, fac_menuitems_label, fac_menuitems_oms, fac_menuitems_module, fac_menuitems_url, fac_menuitems_srtdisc, fac_menuitems_disc, fac_functie_key, fac_menuitems_rw, fac_menuitems_default) SELECT g, l, i, m, u, s, d, fac_functie_key, rw, x FROM fac_functie WHERE fac_functie_code=f
#define DEF_SETTING(m, n, d, t)INSERT INTO fac_setting (fac_setting_module ,fac_setting_name, fac_setting_default, fac_setting_description) VALUES (m, n, d, t)
// We begonnen te denken dat het om statussen ging, maar het werd meer. De naam van de macro bleef echter
#define DEF_STATUS(x, c, t)INSERT INTO fac_code2label (fac_code2label_domein ,fac_code2label_code, fac_code2label_label) VALUES (x, c, t)
// Voeg (nieuwe, default) menukop met label a van groep g en level l toe na bestaande menuoptie met label b, increment n
#define MENU_INSKOP_AFTER(a, b, g, n) INSERT INTO fac_menu (fac_menu_volgnr, fac_menu_altlabel, fac_menu_altgroep, fac_menu_level) SELECT fac_menu_volgnr + n, a, g, 1 FROM fac_menu m WHERE m.fac_menuitems_key = (SELECT MAX (mm.fac_menuitems_key) FROM fac_menu mm, fac_menuitems mmi WHERE mm.fac_menuitems_key = mmi.fac_menuitems_key AND mmi.fac_menuitems_label = b)
// Voeg (nieuwe, default) menuoptie met label a toe na de eerste bestaande menukop met label b, increment n
#define MENU_INS_AFTERKOP(a, b, n) INSERT INTO fac_menu (fac_menuitems_key, fac_menu_volgnr) SELECT i.fac_menuitems_key, MIN (m.fac_menu_volgnr) + n FROM fac_menuitems i, fac_menu m WHERE i.fac_menuitems_key = (SELECT MAX (mmi.fac_menuitems_key) FROM fac_menuitems mmi WHERE mmi.fac_menuitems_label = a) AND m.fac_menu_altlabel = b GROUP BY i.fac_menuitems_key
// Voeg (nieuwe, default) menuoptie met label a toe na bestaande menuoptie met label b, increment n
#define MENU_INS_AFTER(a, b, n) INSERT INTO fac_menu (fac_menuitems_key, fac_menu_volgnr) SELECT i.fac_menuitems_key, m.fac_menu_volgnr + n FROM fac_menuitems i, fac_menu m WHERE i.fac_menuitems_key = (SELECT MAX(mmi.fac_menuitems_key) FROM fac_menuitems mmi WHERE mmi.fac_menuitems_label = a) AND m.fac_menuitems_key = (SELECT MAX(mm.fac_menuitems_key) FROM fac_menu mm, fac_menuitems mmi WHERE mm.fac_menuitems_key = mmi.fac_menuitems_key AND mmi.fac_menuitems_label = b)
#define MENU_INS_AFTER(a, b, n) INSERT INTO fac_menu (fac_menuitems_key, fac_menu_volgnr) SELECT i.fac_menuitems_key, m.fac_menu_volgnr + n FROM fac_menuitems i, fac_menu m WHERE i.fac_menuitems_key = (SELECT mmi.fac_menuitems_key FROM fac_menuitems mmi WHERE mmi.fac_menuitems_label = a) AND m.fac_menuitems_key = (SELECT mm.fac_menuitems_key FROM fac_menu mm, fac_menuitems mmi WHERE mm.fac_menuitems_key = mmi.fac_menuitems_key AND mmi.fac_menuitems_label = b)
// poging 1
#define MENU_MOV_AFTER(b, a, n) UPDATE fac_menu SET fac_menu_volgnr = (SELECT m.fac_menu_volgnr + n FROM fac_menuitems i, fac_menu m WHERE m.fac_menuitems_key=i.fac_menuitems_key AND i.fac_menuitems_key = (SELECT MAX(mmi.fac_menuitems_key) FROM fac_menuitems mmi WHERE mmi.fac_menuitems_label = a)) WHERE fac_menuitems_key = (SELECT MAX(mm.fac_menuitems_key) FROM fac_menu mm, fac_menuitems mmi WHERE mm.fac_menuitems_key = mmi.fac_menuitems_key AND mmi.fac_menuitems_label = b)
#define MENU_MOV_AFTER(b, a, n) UPDATE fac_menu SET fac_menu_volgnr = (SELECT m.fac_menu_volgnr + n FROM fac_menuitems i, fac_menu m WHERE m.fac_menuitems_key=i.fac_menuitems_key AND i.fac_menuitems_key = (SELECT mmi.fac_menuitems_key FROM fac_menuitems mmi WHERE mmi.fac_menuitems_label = a)) WHERE fac_menuitems_key = (SELECT mm.fac_menuitems_key FROM fac_menu mm, fac_menuitems mmi WHERE mm.fac_menuitems_key = mmi.fac_menuitems_key AND mmi.fac_menuitems_label = b)
// NOT_NULL(): Columnconstraint ipv. NOT NULL, De melding ORA-1400: mandatory (NOT NULL)...
// geeft de constraintnaam niet, zodat de melding niet vertaald kan worden.
// geeft de constraintnaam niet, zodat de meding niet vertaald kan worden.
// De CHECK() geeft het wel, dus wordt deze gebruikt.
#define NOT_NULL(column, constraint_name) CONSTRAINT constraint_name CHECK(column IS NOT NULL)
#define DEF_IMPORT(aut, code, oms_nl, oms_en) \
DECLARE ~\
imp_key NUMBER(10); ~\
BEGIN ~\
INSERT INTO fac_import_app ~\
( fac_import_app_code, fac_import_app_oms, fac_functie_key ) ~\
VALUES ( UPPER(code), oms_nl ~\
, (SELECT fac_functie_key FROM fac_functie ~\
WHERE fac_functie_code = aut ~\
) ~\
) ~\
RETURNING fac_import_app_key INTO imp_key; ~\
INSERT INTO fac_locale (fac_locale_lang, fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_tekst) ~\
VALUES ('EN', imp_key, 'FAC_IMPORT_APP_OMS', oms_en); ~\
END; ~\
/ ~\
/* Doorloop de onthouden PrimaryKeys via FAC_P_FAC_SAVE_RESTORE en roep voor elke key de functie Func
* aan. Deze doet de uiteindelijke actie.
* Func krijgt als argument de key (NUMBER) mee en moet een BOOLEAN teruggeven.
* Zie ook commentaar in FAC_PAC.SRC.
*/
#define FAC_P_FAC_SAVE_RESTORE_UPDATE(Func, TableName) \
_ORACLE(DECLARE) \
_DECLARE_VAR(IndexNr) NUMBER; \
_DECLARE_VAR(PrimaryKey) NUMBER(10); \
_DECLARE_VAR(Dummy) BOOLEAN; \
_ORACLE(BEGIN) \
_SET_VAR(IndexNr) _ASSIGN 1; \
_SET_VAR(PrimaryKey) _ASSIGN fac_p_fac_save_restore.GetPrimaryKey(TableName, _VAR(IndexNr)); \
WHILE _VAR(PrimaryKey) IS NOT NULL \
_ORACLE(LOOP)_MSSQL(begin) \
_ORACLE( _SET_VAR(Dummy) _ASSIGN Func(PrimaryKey) ); \
_MSSQL( _EXEC1( Func, _VAR(PrimaryKey)) ); \
_SET_VAR(IndexNr) _ASSIGN _VAR(IndexNr) + 1; \
_SET_VAR(PrimaryKey) _ASSIGN fac_p_fac_save_restore.GetPrimaryKey(TableName, _VAR(IndexNr)); \
_END_LOOP; \
_MSSQL( _EXEC1( fac_p_fac_save_restore.ResetSelectie, TableName) ); \
_ORACLE(Dummy := fac_p_fac_save_restore.ResetSelectie(TableName)); \
_ORACLE(END)
#define DEF_RAPPORT(aut, func, view, oms_nl, info_nl, oms_en, info_en) \
DECLARE ~\
rap_key NUMBER(10); ~\
BEGIN ~\
INSERT INTO fac_usrrap ~\
( fac_usrrap_omschrijving, fac_usrrap_view_name ~\
, fac_usrrap_vraagbegindatum, fac_usrrap_vraageinddatum ~\
, fac_usrrap_functie, fac_usrrap_autorefresh ~\
, fac_usrrap_info ~\
, fac_functie_key ~\
) ~\
VALUES ( oms_nl, view, 0, 0, func, 0, info_nl ~\
, (SELECT fac_functie_key FROM fac_functie ~\
WHERE fac_functie_code = aut ~\
) ~\
) ~\
RETURNING fac_usrrap_key INTO rap_key; ~\
INSERT INTO fac_locale ( fac_locale_lang, fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_tekst) ~\
VALUES ('EN', rap_key, 'FAC_USRRAP_OMSCHRIJVING', oms_en); ~\
INSERT INTO fac_locale ( fac_locale_lang, fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_tekst) ~\
VALUES ('EN', rap_key, 'FAC_USRRAP_INFO', info_en); ~\
END; ~\
/ ~\
/* Macros voor het vullen van de INS bibliotheek in INS_DATA.SRC */
#define DEF_DISCIPLINE(ldis)\
INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_omschrijving, ins_discipline_min_level) \
VALUES('INS', SUBSTR(ldis ,1, 30), 1)
#define DEF_RAPPORT_COL(oms_nl, volgnr, col, f, d, t, v, label_nl, label_en) \
DECLARE ~\
col_key NUMBER(10); ~\
BEGIN ~\
INSERT INTO fac_usrrap_cols ~\
( fac_usrrap_key, fac_usrrap_cols_volgnr ~\
, fac_usrrap_cols_column_name, fac_usrrap_cols_caption ~\
, fac_usrrap_cols_filter, fac_usrrap_cols_filterdefault ~\
, fac_usrrap_cols_datatype, fac_usrrap_cols_visible ~\
) ~\
VALUES ( (SELECT fac_usrrap_key ~\
FROM fac_usrrap ~\
WHERE fac_usrrap_omschrijving = oms_nl ~\
) ~\
, volgnr, col, label_nl ~\
, f, d, t, v ~\
) ~\
RETURNING fac_usrrap_cols_key INTO col_key; ~\
/* INSERT INTO fac_locale ( fac_locale_lang, fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_tekst) */ ~\
/* VALUES ('EN', col_key, 'FAC_USRRAP_COLS_CAPTION', label_en); */ ~\
END; ~\
/ ~\
#define DEF_GROEPSOORT(ldis, lgrp)\
INSERT INTO ins_srtgroep (ins_discipline_key, ins_srtgroep_module, ins_srtgroep_omschrijving) \
SELECT ins_discipline_key, 'INS', SUBSTR(lgrp, 1,30) FROM ins_tab_discipline \
WHERE SUBSTR(UPPER(ins_discipline_omschrijving),1,30) = SUBSTR(UPPER(ldis),1,30)
#define DEF_DEELSOORT(ldis, lgrp, lds, lsym, lcode)\
INSERT INTO ins_srtdeel \
(ins_srtgroep_key, ins_srtdeel_module, ins_srtdeel_code, \
ins_srtdeel_acadsymbol, ins_srtdeel_omschrijving,ins_srtdeel_dimensie) \
SELECT ins_srtgroep_key, 'INS', lcode ,lsym, SUBSTR(lds,1,30), 0 \
FROM ins_srtgroep \
WHERE SUBSTR(UPPER(ins_srtgroep_omschrijving),1,30) = SUBSTR(UPPER(lgrp),1,30)
#define BEGIN_MODULE(m) \
DECLARE ~\
@@ -744,6 +752,12 @@ END; ~\
SQL_SPOOL(START n.m) ~\
END_MODULE(m)
#define __T__USER_OBJECTS__OBJECT_TYPE__TYPE \
VARCHAR2(50)
#define __T__ins_discipline__ins_discipline_key__TYPE \
NUMBER(10)
#define START_LOCALEITEMS(dialect_id) \
DECLARE ~ \
v_dialect_id fac_localeitems.fac_localeitems_dialect_id%TYPE; ~ \
@@ -764,36 +778,4 @@ END; ~\
/ ~ \
COMMIT;
#define AUDIT_BEGIN(table) ~\
CREATE OR REPLACE TRIGGER aud_t_##table## ~\
AFTER INSERT OR UPDATE OR DELETE ON table ~\
FOR EACH ROW ~\
DECLARE ~\
action VARCHAR2(1); ~\
BEGIN ~\
IF DELETING THEN ~\
action := 'D'; ~\
ELSIF INSERTING THEN ~\
action := 'I'; ~\
ELSE ~\
action := 'U'; ~\
END IF;
#define AUDIT_VALUE_K(table, tablekey, column) ~\
aud.auditaction(STRINGIZE(table), ~\
:old.tablekey, ~\
:new.tablekey, ~\
STRINGIZE(column), ~\
:old.column, ~\
:new.column, ~\
action);
#define AUDIT_VALUE(table, column) ~\
AUDIT_VALUE_K(table, table##_key, column)
#define AUDIT_END() ~\
END; ~\
/ ~ \
#endif // _COMSQL_H

View File

@@ -1,9 +0,0 @@
/*
* $Revision$
* $Id$
*/
CREATE UNIQUE INDEX ctr_i_ctr_disc_params1 ON ctr_disc_params(ctr_ins_discipline_key);
REGISTERONCE('$Id$')

View File

@@ -1,24 +0,0 @@
#ifdef CTR
/*
* $Revision$
* $Id$
*/
_FAC_MODULE('CTR','lcl_module_CTR')
INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_omschrijving) values ('CTR', 'Controle');
INSERT INTO ctr_disc_params(ctr_ins_discipline_key, ctr_disc_params_controle_type)
SELECT MAX(ins_discipline_key), 1 FROM ins_tab_discipline;
INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_omschrijving) values ('CTR', 'Vervanging');
INSERT INTO ctr_disc_params(ctr_ins_discipline_key, ctr_disc_params_controle_type)
SELECT MAX(ins_discipline_key), 2 FROM ins_tab_discipline;
INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_omschrijving) values ('CTR', 'Certificering');
insert into ctr_disc_params(ctr_ins_discipline_key, ctr_disc_params_controle_type)
SELECT MAX(ins_discipline_key), 3 FROM ins_tab_discipline;
REGISTERONCE('$Id$')
#endif // MRK

View File

@@ -1,10 +0,0 @@
#ifdef CTR
/*
* $Revision$
* $Id$
*/
REGISTERRUN('$Id$')
#endif // CTR

View File

@@ -1,11 +0,0 @@
#ifdef CTR
/*
* $Revision$
* $Id$
*/
CREATE SEQUENCE ctr_s_ctr_disc_params_key MINVALUE 1;
REGISTERONCE('$Id$')
#endif // CTR

View File

@@ -1,33 +0,0 @@
#ifdef CTR
/*
* $Revision$
* $Id$
*/
CREATE_TABLE (ctr_disc_params,0)
(
ctr_disc_params_key
NUMBER(10),
ctr_ins_discipline_key
NUMBER(10),
ctr_disc_params_controle_type // 1=controle, 2=vervanging, 3=certificering, rest ntb
NUMBER(1)
DEFAULT(1)
CONSTRAINT ctr_disc_params_controle_type NOT NULL,
ctr_disc_params_ismjob
NUMBER(1) -- valid are 0, 1
DEFAULT 0
NOT NULL,
mld_stdmelding_key
NUMBER(10)
CONSTRAINT mld_r_mld_stdmelding_key6 REFERENCES mld_stdmelding,
CONSTRAINT ctr_c_ins_discipline_key CHECK (ctr_ins_discipline_key IS NOT NULL),
CONSTRAINT ctr_k_ctr_disc_params_key PRIMARY KEY (ctr_disc_params_key),
CONSTRAINT ctr_r_ins_discipine_key FOREIGN KEY (ctr_ins_discipline_key)
REFERENCES ins_tab_discipline (ins_discipline_key)
);
REGISTERONCE('$Id$')
#endif // CTR

View File

@@ -1,25 +0,0 @@
#ifdef CTR
/*
* $Revision$
* $Id$
*/
AUDIT_BEGIN(ctr_disc_params)
AUDIT_VALUE(ctr_disc_params, ctr_ins_discipline_key)
AUDIT_VALUE(ctr_disc_params, ctr_disc_params_controle_type)
AUDIT_VALUE(ctr_disc_params, ctr_disc_params_ismjob)
AUDIT_VALUE(ctr_disc_params, mld_stdmelding_key)
AUDIT_END()
CREATE_TRIGGER(ctr_t_ctr_disc_params_b_iu)
BEFORE INSERT OR UPDATE ON ctr_disc_params
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(ctr_disc_params_key, ctr_s_ctr_disc_params_key);
END;
/
REGISTERRUN('$Id$')
#endif // CTR

View File

@@ -1,17 +0,0 @@
#ifdef CTR
/*
* $Revision$
* $Id$
*/
CREATE_VIEW(ctr_discipline, 0)
AS
SELECT * FROM ins_tab_discipline WHERE ins_discipline_module = 'CTR';
DEFINIEER_VIEW_AANWEZIG(ctr_discipline, ins_discipline_verwijder,
ctr_v_aanwezigdiscipline, 0);
REGISTERRUN('$Id$')
#endif // CTR

View File

@@ -2,19 +2,10 @@
* $Id$
*/
CREATE INDEX fac_i_audit_perslidkey1 ON fac_audit(prs_perslid_key);
CREATE INDEX fac_i_audit_tabel1 ON fac_audit(fac_audit_tabelnaam, fac_audit_tabelkey);
CREATE UNIQUE INDEX fac_i_fac_bookmark1 ON fac_bookmark(fac_bookmark_id);
CREATE INDEX fac_i_fac_groep1 ON fac_groep(fac_groep_externid);
CREATE UNIQUE INDEX fac_i_fac_gebruikersgroep1 ON fac_gebruikersgroep(prs_perslid_key, fac_groep_key);
CREATE INDEX fac_i_fac_selectie1 ON fac_selectie(fac_selectie_node,fac_selectie_tabel);
create index fac_i_fac_result1 on fac_result(fac_result_sessionid);
CREATE UNIQUE INDEX fac_i_fac_profielwaarde1 ON fac_profielwaarde (fac_profiel_key, ins_discipline_key);
create index fac_i_fac_perfmon_sample1 on fac_perfmon_sample(fac_perfmon_sample_datum);
@@ -22,15 +13,12 @@ create index fac_i_fac_perfmon_sample2 on fac_perfmon_sample(fac_perfmon_sample_
create index fac_i_fac_perfmon_sample3 on fac_perfmon_sample(prs_perslid_key);
CREATE UNIQUE INDEX fac_i_srtnotificatie_code1 ON fac_srtnotificatie(fac_srtnotificatie_code);
CREATE UNIQUE INDEX fac_i_srtnotificatie_code2 on fac_srtnotificatie(fac_srtnotificatie_key, fac_srtnotificatie_xmlnode);
CREATE INDEX fac_i_notificatie1 ON fac_notificatie(prs_perslid_key_receiver, fac_notificatie_status);
CREATE INDEX fac_i_notificatie2 ON fac_notificatie(fac_srtnotificatie_key);
CREATE UNIQUE INDEX fac_i_fac_xml1 ON fac_xml(fac_session_id, fac_xml_volgnr);
CREATE INDEX fac_i_fac_session1 ON fac_session(prs_perslid_key);
CREATE UNIQUE INDEX fac_i_fac_session2 ON fac_session(fac_session_sessionid_hash);
CREATE UNIQUE INDEX fac_i_fac_sequence1 ON fac_sequence(fac_sequence_name);
CREATE UNIQUE INDEX fac_i_fac_import_app1
ON fac_import_app (fac_import_app_code,
@@ -38,35 +26,13 @@ CREATE UNIQUE INDEX fac_i_fac_import_app1
prs_bedrijf_key,
fac_import_app_prefix);
CREATE INDEX imp_i_log_importkey1 ON imp_log(fac_import_key);
CREATE INDEX imp_i_imp_log2 ON imp_log(imp_log_applicatie);
-- Maakt opruimen efficienter:
CREATE INDEX fac_i_import_appkey1 ON fac_import(fac_import_app_key, fac_import_key);
CREATE INDEX fac_i_tracking_refkey1 ON fac_tracking(fac_tracking_refkey);
CREATE INDEX fac_i_tracking_perslidkey1 ON fac_tracking(prs_perslid_key);
CREATE INDEX fac_i_tracking_srtnotkey1 ON fac_tracking(fac_srtnotificatie_key);
CREATE INDEX fac_i_imp_factuur1 ON fac_imp_factuur (ordernr);
CREATE INDEX fac_i_imp_factuur2 ON fac_imp_factuur (fac_import_key);
CREATE UNIQUE INDEX fac_i_fac_locale_xref1 ON fac_locale_xref (fac_locale_xref_filepath, fac_locale_xsl_key);
CREATE UNIQUE INDEX fac_i_fac_code2label ON fac_code2label (fac_code2label_domein, fac_code2label_code);
CREATE UNIQUE INDEX fac_i_fac_menuitems1 ON fac_menuitems (fac_menuitems_label);
CREATE INDEX fac_i_fac_menu_perslid_key ON fac_menu (prs_perslid_key);
CREATE UNIQUE INDEX fac_i_imp_usrdata1 ON fac_imp_usrdata (fac_usrtab_naam, fac_usrdata_code);
CREATE UNIQUE INDEX fac_i_fac_api1 ON fac_api (fac_api_name);
create index fac_i_fac_usrrap_volgnr on fac_usrrap(fac_usrrap_volgnr, fac_usrrap_omschrijving);
CREATE INDEX fac_i_fac_bijlagen_root_key ON fac_bijlagen(fac_bijlagen_root_key);
CREATE INDEX fac_i_fac_bijlagen_refkey1 ON fac_bijlagen(fac_bijlagen_refkey);
CREATE INDEX fac_i_fac_note_group1 ON fac_note_group(fac_note_group_xmlnode, fac_note_group_volgnr);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: FAC_IND.SRC $','$Revision$')

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3595
FAC/FAC_LCLASP.SRC Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,47 +0,0 @@
/* $Revision$
* $Id$
*/
/* FAC_PACA, (A means Audit) to be included from fac_pac.src, isolated for convenience only
* The Audit-package source. Contains all functions for audit.
*
* Usage: aud.auditaction(...);
*
*/
CREATE OR REPLACE PACKAGE aud
AS
PROCEDURE auditaction (tabelnaam VARCHAR2, tabelkey_oud NUMBER, tabelkey_nieuw NUMBER, veldnaam VARCHAR2, waarde_oud VARCHAR2, waarde_nieuw VARCHAR2, action VARCHAR2, opmerk VARCHAR2 DEFAULT NULL);
END aud;
/
CREATE OR REPLACE PACKAGE BODY aud
AS
PROCEDURE auditaction (tabelnaam VARCHAR2, tabelkey_oud NUMBER, tabelkey_nieuw NUMBER, veldnaam VARCHAR2, waarde_oud VARCHAR2, waarde_nieuw VARCHAR2, action VARCHAR2, opmerk VARCHAR2 DEFAULT NULL)
IS
BEGIN
IF (action <> 'I' AND COALESCE(waarde_oud, 'bUSnDIaVjRS56D3z') <> COALESCE(waarde_nieuw, 'bUSnDIaVjRS56D3z')) OR
(action = 'I' AND waarde_nieuw IS NOT NULL)
THEN
INSERT INTO fac_audit (fac_audit_tabelnaam,
fac_audit_tabelkey,
fac_audit_veldnaam,
fac_audit_actie,
fac_audit_waarde_oud,
fac_audit_waarde_nieuw,
prs_perslid_key,
fac_audit_opmerking)
VALUES (tabelnaam,
COALESCE(tabelkey_nieuw, tabelkey_oud),
veldnaam,
CASE WHEN action = 'D' OR SUBSTR(veldnaam, -9) = 'verwijder' THEN 'D' ELSE action END,
waarde_oud,
waarde_nieuw,
sys_context('USERENV', 'CLIENT_IDENTIFIER'),
opmerk);
END IF;
END;
END aud;
/
REGISTERRUN('$Id$')

View File

@@ -1,404 +0,0 @@
#ifdef MLD
/*
* $Revision$
* $Id$
*/
#undef TRUNC
CREATE OR REPLACE PACKAGE ano AS
PROCEDURE anonymizebes (p_startdatum IN DATE, p_einddatum IN DATE);
PROCEDURE anonymizebez (p_startdatum IN DATE, p_einddatum IN DATE);
PROCEDURE anonymizemld (p_startdatum IN DATE, p_einddatum IN DATE);
PROCEDURE anonymizeprs (p_startdatum IN DATE, p_einddatum IN DATE);
PROCEDURE anonymize (p_startdatum IN DATE, p_einddatum IN DATE);
END ano;
/
CREATE OR REPLACE PACKAGE BODY ano AS
PROCEDURE anonymizebes (p_startdatum IN DATE,
p_einddatum IN DATE)
AS
anonymize_period NUMBER := fac.safe_to_number (fac.getsetting ('anonymize_period'));
-- Alle bestellingen waarvan de afwijsdatum, alles geleverd datum, verwerkingsdatum of annuleringsdatum tussen de startdatum en de einddatum liggen.
CURSOR c_bestelling
IS
SELECT b.bes_bestelling_key
FROM bes_bestelling b
WHERE (SELECT MAX(ft.fac_tracking_datum)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = b.bes_bestelling_key
AND ft.fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_xmlnode = 'bestelling'
--AND fac_srtnotificatie_code != 'BESANO' -- Vervangen door "fac_srtnotificatie_key != key" hieronder. Blijkt veel sneller te zijn.
AND fac_srtnotificatie_key != (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'BESANO')
)) BETWEEN p_startdatum AND p_einddatum
AND b.bes_bestelling_status IN (1, 6, 7, 8)
AND NOT EXISTS
(SELECT ft.fac_tracking_key
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = b.bes_bestelling_key
AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'BESANO'))
ORDER BY b.bes_bestelling_key;
BEGIN
IF p_einddatum > SYSDATE - anonymize_period + 1
THEN
raise_application_error (-20000, 'ano_m001 Einddatum is te groot');
END IF;
FOR rec_b IN c_bestelling
LOOP
-- Verwijder alle kenmerkwaarden van de bestelling waarvan het &8 (BITAND) bit van het bes_srtkenmerk.bes_srtkenmerk_systeem veld is gezet.
DELETE FROM bes_kenmerkbestell bkbl
WHERE bkbl.bes_bestelling_key = rec_b.bes_bestelling_key
AND bkbl.bes_kenmerk_key IN (SELECT bk.bes_kenmerk_key
FROM bes_kenmerk bk,
bes_srtkenmerk bsk
WHERE bk.bes_srtkenmerk_key = bsk.bes_srtkenmerk_key
AND bk.bes_kenmerk_key = bkbl.bes_kenmerk_key
AND BITAND(bsk.bes_srtkenmerk_systeem, 8) = 8);
-- Verwijder alle kenmerkwaarden van de bestelopdrachten van de bestelling waarvan het &8 (BITAND) bit van het bes_srtkenmerk.bes_srtkenmerk_systeem veld is gezet.
DELETE FROM bes_kenmerkbesteli bkbi
WHERE bkbi.bes_bestelling_item_key IN (SELECT bi.bes_bestelling_item_key
FROM bes_bestelling_item bi
WHERE bi.bes_bestelling_key = rec_b.bes_bestelling_key)
AND bkbi.bes_kenmerk_key IN (SELECT bk.bes_kenmerk_key
FROM bes_kenmerk bk,
bes_srtkenmerk bsk
WHERE bk.bes_srtkenmerk_key = bsk.bes_srtkenmerk_key
AND bk.bes_kenmerk_key = bkbi.bes_kenmerk_key
AND BITAND(bsk.bes_srtkenmerk_systeem, 8) = 8);
-- Alle BES tracking anonimiseren m.b.t. de bestelling.
UPDATE fac_tracking
SET fac_tracking_oms = NULL
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_xmlnode = 'bestelling'
AND fac_srtnotificatie_code != 'BESANO')
AND fac_tracking_refkey = rec_b.bes_bestelling_key
AND fac_tracking_oms IS NOT NULL;
-- Anonimiseren van de bestelling tracken.
fac.trackaction('BESANO', rec_b.bes_bestelling_key, NULL, NULL, NULL);
-- Anonimiseren bestelopdrachten.
FOR rec_bo IN (SELECT bo.bes_bestelopdr_key
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bi
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bi.bes_bestelling_key = rec_b.bes_bestelling_key)
LOOP
-- Alle BES tracking anonimiseren m.b.t. de bestelopdracht van de bestelling.
UPDATE fac_tracking
SET fac_tracking_oms = NULL
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_xmlnode = 'bestelopdr'
AND fac_srtnotificatie_code != 'BES2AN')
AND fac_tracking_refkey = rec_bo.bes_bestelopdr_key
AND fac_tracking_oms IS NOT NULL;
-- Anonimiseren van de bestelopdracht tracken.
fac.trackaction('BES2AN', rec_bo.bes_bestelopdr_key, NULL, NULL, NULL);
END LOOP;
END LOOP;
END;
PROCEDURE anonymizebez (p_startdatum IN DATE,
p_einddatum IN DATE)
AS
anonymize_period NUMBER := fac.safe_to_number (fac.getsetting ('anonymize_period'));
bez_generic_visitor VARCHAR2 (2001) := lcl.l('lcl_bez_generic_visitor');
-- Alle afspraken die tussen de startdatum en de einddatum liggen.
CURSOR c_afspraak
IS
SELECT bez_afspraak_key
FROM bez_afspraak
WHERE bez_afspraak_datum BETWEEN p_startdatum AND p_einddatum
AND NOT EXISTS
(SELECT ft.fac_tracking_key
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = bez_afspraak_key
AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'BEZANO'))
ORDER BY bez_afspraak_key;
BEGIN
IF p_einddatum > SYSDATE - anonymize_period + 1
THEN
raise_application_error (-20000, 'ano_m001 Einddatum is te groot');
END IF;
FOR rec IN c_afspraak
LOOP
-- Verwijder alle kenmerkwaarden van bezoekers van de afspraak waarvan het &8 (BITAND) bit van het bez_kenmerk.bez_kenmerk_systeem veld is gezet.
DELETE FROM bez_kenmerkwaarde bkw
WHERE bkw.bez_bezoekers_key IN (SELECT b.bez_bezoekers_key
FROM bez_bezoekers b
WHERE b.bez_afspraak_key = rec.bez_afspraak_key)
AND bkw.bez_kenmerk_key IN (SELECT bk.bez_kenmerk_key
FROM bez_kenmerk bk
WHERE bk.bez_kenmerk_key = bkw.bez_kenmerk_key
AND BITAND(bk.bez_kenmerk_systeem, 8) = 8);
-- Anonimiseer alle bezoekers.
UPDATE bez_bezoekers
SET bez_afspraak_naam = bez_generic_visitor,
bez_afspraak_bedrijf = NULL,
bez_afspraak_opmerking = NULL,
bez_bezoekers_telefoon = NULL,
bez_bezoekers_email = NULL,
bez_bezoekers_kenteken = NULL
WHERE bez_afspraak_key = rec.bez_afspraak_key;
-- Anonimiseer alle afspraken.
-- Door de trigger in de update wordt automatische de naam van de host in de gastheer geplakt.
-- Daardoor wordt de lcl "Ganonimiseerd" in vele gevallen niet blijvend in de gasheer gezet.
-- De persoon (prs record) moet daarom eerst aangepast worden.
-- Tijdens het anonimiseren van de persoon wordt daarom de bez_afspraak_gastheer ook geanonimiseerd.
-- In de gevallen dat er geen host wordt gebruikt en alleen tekst voor de persoon (gastheer) wordt ingevuld wordt het veld wel blijvend gezet.
UPDATE bez_afspraak
SET bez_afspraak_gastheer = bez_generic_visitor,
bez_afspraak_telefoonnr = NULL,
bez_afspraak_opmerking = NULL
WHERE bez_afspraak_key = rec.bez_afspraak_key;
-- Alle BEZ tracking anonimiseren m.b.t. de afspraak.
UPDATE fac_tracking
SET fac_tracking_oms = NULL
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_xmlnode = 'afspraak'
AND fac_srtnotificatie_code != 'BEZANO')
AND fac_tracking_refkey = rec.bez_afspraak_key
AND fac_tracking_oms IS NOT NULL;
-- Alle BEZ tracking anonimiseren m.b.t. de bezoekers van de afspraak.
UPDATE fac_tracking
SET fac_tracking_oms = NULL
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_xmlnode = 'bezoeker')
AND fac_tracking_refkey IN (SELECT bb.bez_bezoekers_key FROM bez_bezoekers bb WHERE bb.bez_afspraak_key = rec.bez_afspraak_key)
AND fac_tracking_oms IS NOT NULL;
-- Anonimiseren van de afspraak tracken.
fac.trackaction('BEZANO', rec.bez_afspraak_key, NULL, NULL, NULL);
END LOOP;
END;
PROCEDURE anonymizemld (p_startdatum IN DATE,
p_einddatum IN DATE)
AS
anonymize_period NUMBER := fac.safe_to_number (fac.getsetting ('anonymize_period'));
-- Alle meldingen waarvan de afwijsdatum of verwerkingsdatum tussen de startdatum en de einddatum liggen.
CURSOR c_melding
IS
SELECT m.mld_melding_key
FROM mld_melding m
WHERE (SELECT MAX(ft.fac_tracking_datum)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = m.mld_melding_key
AND ft.fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_xmlnode = 'melding'
--AND fac_srtnotificatie_code != 'MLDANO' -- Vervangen door "fac_srtnotificatie_key != key" hieronder. Blijkt veel sneller te zijn.
AND fac_srtnotificatie_key != (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'MLDANO')
)) BETWEEN p_startdatum AND p_einddatum
AND m.mld_melding_status IN (1, 6)
AND NOT EXISTS
(SELECT ft.fac_tracking_key
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = m.mld_melding_key
AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'MLDANO'))
ORDER BY m.mld_melding_key;
BEGIN
IF p_einddatum > SYSDATE - anonymize_period + 1
THEN
raise_application_error (-20000, 'ano_m001 Einddatum is te groot');
END IF;
FOR rec_m IN c_melding
LOOP
-- Verwijder alle kenmerkwaarden van de melding waarvan het &8 (BITAND) bit van het mld_srtkenmerk.mld_srtkenmerk_systeem veld is gezet.
DELETE FROM mld_kenmerkmelding mkm
WHERE mkm.mld_melding_key = rec_m.mld_melding_key
AND mkm.mld_kenmerk_key IN (SELECT mk.mld_kenmerk_key
FROM mld_kenmerk mk,
mld_srtkenmerk msk
WHERE mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
AND mk.mld_kenmerk_key = mkm.mld_kenmerk_key
AND BITAND(msk.mld_srtkenmerk_systeem, 8) = 8);
-- Verwijder alle kenmerkwaarden van de opdrachten van de melding waarvan het &8 (BITAND) bit van het mld_srtkenmerk.mld_srtkenmerk_systeem veld is gezet.
DELETE FROM mld_kenmerkopdr mko
WHERE mko.mld_opdr_key IN (SELECT mo.mld_opdr_key
FROM mld_opdr mo
WHERE mo.mld_melding_key = rec_m.mld_melding_key)
AND mko.mld_kenmerk_key IN (SELECT mk.mld_kenmerk_key
FROM mld_kenmerk mk,
mld_srtkenmerk msk
WHERE mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
AND mk.mld_kenmerk_key = mko.mld_kenmerk_key
AND BITAND(msk.mld_srtkenmerk_systeem, 8) = 8);
-- Alle MLD tracking anonimiseren m.b.t. de melding.
UPDATE fac_tracking
SET fac_tracking_oms = NULL
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_xmlnode = 'melding'
AND fac_srtnotificatie_code != 'MLDANO')
AND fac_tracking_refkey = rec_m.mld_melding_key
AND fac_tracking_oms IS NOT NULL;
-- Anonimiseren van de melding tracken.
fac.trackaction('MLDANO', rec_m.mld_melding_key, NULL, NULL, NULL);
-- Anonimiseren opdrachten melding.
FOR rec_o IN (SELECT mld_opdr_key
FROM mld_opdr
WHERE mld_melding_key = rec_m.mld_melding_key)
LOOP
-- Alle MLD tracking anonimiseren m.b.t. de opdrachten van de melding.
UPDATE fac_tracking
SET fac_tracking_oms = NULL
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_xmlnode = 'opdracht'
AND fac_srtnotificatie_code != 'ORDANO')
AND fac_tracking_refkey = rec_o.mld_opdr_key
AND fac_tracking_oms IS NOT NULL;
-- Anonimiseren van de meldingsopdracht tracken.
fac.trackaction('ORDANO', rec_o.mld_opdr_key, NULL, NULL, NULL);
END LOOP;
END LOOP;
END;
PROCEDURE anonymizeprs (p_startdatum IN DATE,
p_einddatum IN DATE)
AS
anonymize_period NUMBER := fac.safe_to_number (fac.getsetting ('anonymize_period'));
bez_generic_visitor VARCHAR2 (2001) := lcl.l('lcl_bez_generic_visitor');
prs_old_employee VARCHAR2 (100) := lcl.l('lcl_prs_old_employee');
-- Alle personen die tussen de startdatum en de einddatum verwijderd zijn.
CURSOR c_perslid
IS
SELECT '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_naam || '|' || p.prs_perslid_email || '] ' aanduiding,
p.prs_perslid_key
FROM prs_perslid p
WHERE p.prs_perslid_verwijder IS NOT NULL
AND p.prs_perslid_verwijder BETWEEN p_startdatum AND p_einddatum
AND NOT EXISTS
(SELECT ft.fac_tracking_key
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = p.prs_perslid_key
AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'PRSANO'))
ORDER BY 2;
BEGIN
IF p_einddatum > SYSDATE - anonymize_period + 1
THEN
raise_application_error (-20000, 'ano_m001 Einddatum is te groot');
END IF;
FOR rec IN c_perslid
LOOP
BEGIN
-- Verwijder alle kenmerkwaarden van de persoon waarvan het &8 (BITAND) bit van het prs_kenmerk.prs_kenmerk_systeem veld is gezet.
DELETE FROM prs_kenmerklink pkl
WHERE pkl.prs_kenmerklink_niveau = 'P'
AND pkl.prs_link_key = rec.prs_perslid_key
AND pkl.prs_kenmerk_key IN (SELECT pk.prs_kenmerk_key
FROM prs_kenmerk pk
WHERE pk.prs_kenmerk_key = pkl.prs_kenmerk_key
AND BITAND(pk.prs_kenmerk_systeem, 8) = 8);
-- Persoon anonimiseren.
UPDATE prs_perslid
SET prs_perslid_naam = prs_old_employee,
prs_perslid_tussenvoegsel = NULL,
prs_perslid_voorletters = NULL,
prs_perslid_voornaam = NULL,
prs_perslid_titel = NULL,
prs_perslid_initialen = NULL,
prs_perslid_geslacht = NULL,
prs_perslid_nr = NULL,
prs_perslid_telefoonnr = NULL,
prs_perslid_mobiel = NULL,
prs_perslid_email = NULL,
prs_perslid_oslogin = NULL,
prs_perslid_oslogin2 = NULL,
prs_perslid_uurloon = NULL,
alg_onroerendgoed_keys = NULL,
alg_onroerendgoed_type = NULL
WHERE prs_perslid_key = rec.prs_perslid_key;
-- Van al zijn afspraken waar hij host was, ook de naam van de host (=veld gastheer) anonimiseren.
-- Door update gebeurd dit eigenlijk al automatisch maar dan moet de persoon al wel eerst geanonimiseerd zijn.
UPDATE bez_afspraak
SET bez_afspraak_gastheer = bez_generic_visitor
WHERE bez_afspraak_host_key = rec.prs_perslid_key;
-- Alle PRSXXX tracking anonimiseren. De PRSLOG tracking moet verwijderd worden.
UPDATE fac_tracking
SET fac_tracking_oms = NULL
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code LIKE 'PRS%'
AND fac_srtnotificatie_code != 'PRSLOG'
AND fac_srtnotificatie_code != 'PRSANO')
AND fac_tracking_refkey = rec.prs_perslid_key
AND fac_tracking_oms IS NOT NULL;
-- PRSLOG Tracking verwijderen.
DELETE FROM fac_tracking
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'PRSLOG')
AND fac_tracking_refkey = rec.prs_perslid_key;
-- Anonimiseren van de persoon tracken.
fac.trackaction('PRSANO', rec.prs_perslid_key, NULL, NULL, NULL);
END;
END LOOP;
END;
PROCEDURE anonymize (p_startdatum IN DATE,
p_einddatum IN DATE)
AS
BEGIN
anonymizebes(p_startdatum, p_einddatum);
anonymizebez(p_startdatum, p_einddatum);
anonymizemld(p_startdatum, p_einddatum);
anonymizeprs(p_startdatum, p_einddatum);
END;
END ano;
/
REGISTERRUN('$Id$')
#endif // ANO

File diff suppressed because it is too large Load Diff

View File

@@ -1,939 +0,0 @@
/* $Revision$
* $Id$
*/
/* FAC_PACFLEX
*
* Contains all functions for flex values.
*
*/
CREATE OR REPLACE PACKAGE flx
AS
PROCEDURE gettableinf (pmodule IN OUT VARCHAR2,
o_ktable OUT VARCHAR2, -- Naam kenmerk tabel
o_ktable_kdefault OUT VARCHAR2,
o_kvtable OUT VARCHAR2, -- Naam kenmerk waarden tabel
o_kvtable_refkey OUT VARCHAR2,
o_kvtable_kniveau OUT VARCHAR2,
o_kvtable_kwaarde OUT VARCHAR2,
o_kvtable_kkey OUT VARCHAR2,
o_kvtable_kdelete OUT VARCHAR2,
o_ktable_kshowexpr OUT VARCHAR2
);
FUNCTION getflex (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_niveau IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2;
PROCEDURE setflex (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_waarde IN VARCHAR2);
PROCEDURE setflex (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_niveau IN VARCHAR2,
p_waarde IN VARCHAR2,
p_multi IN NUMBER DEFAULT 0);
PROCEDURE deleteflex (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_niveau IN VARCHAR2,
p_waardekey IN NUMBER DEFAULT NULL);
PROCEDURE setflexbijlage (p_module IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_disk_directory IN VARCHAR2,
p_disk_filename IN VARCHAR2,
p_filename IN VARCHAR2,
p_file_size IN NUMBER,
p_file_date IN DATE,
p_digest IN VARCHAR2 DEFAULT NULL,
p_root_key IN NUMBER DEFAULT NULL);
PROCEDURE copyflexbijlage ( p_module IN VARCHAR2
, p_refkey IN NUMBER
, p_kenmerk_key IN NUMBER
, p_from_bijlagen_key IN NUMBER
);
PROCEDURE deleteflexbijlage (p_bijlagen_key IN NUMBER);
PROCEDURE deleteflexbijlage (p_module IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_disk_directory IN VARCHAR2,
p_filename IN VARCHAR2);
FUNCTION getflexexprtype (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_niveau IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2;
FUNCTION getflexexpression (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_niveau IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2;
FUNCTION getflexshowexpr (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_niveau IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2;
FUNCTION getdomeinwaarde (dkey IN NUMBER,
waarde IN VARCHAR2,
ignorewhenxmlnode IN NUMBER DEFAULT 0) RETURN VARCHAR2;
PROCEDURE evaluateflexexpressions (pmodule IN VARCHAR2, prefkey IN NUMBER, puserkey IN NUMBER, psavetodb IN NUMBER);
END flx;
/
CREATE OR REPLACE PACKAGE BODY flx
AS
PROCEDURE gettableinf (pmodule IN OUT VARCHAR2,
o_ktable OUT VARCHAR2, -- Naam kenmerk tabel
o_ktable_kdefault OUT VARCHAR2,
o_kvtable OUT VARCHAR2, -- Naam kenmerk waarden tabel
o_kvtable_refkey OUT VARCHAR2,
o_kvtable_kniveau OUT VARCHAR2,
o_kvtable_kwaarde OUT VARCHAR2,
o_kvtable_kkey OUT VARCHAR2,
o_kvtable_kdelete OUT VARCHAR2,
o_ktable_kshowexpr OUT VARCHAR2
)
AS
l_module VARCHAR2 (3);
BEGIN
l_module := pmodule;
o_kvtable_kniveau := NULL;
CASE
WHEN pmodule = 'ALG'
THEN o_kvtable := 'alg_onrgoedkenmerk';
o_kvtable_refkey := 'alg_onrgoed_key';
o_kvtable_kniveau := 'alg_onrgoed_niveau';
WHEN pmodule = 'BEZ'
THEN o_kvtable := 'bez_kenmerkwaarde';
o_kvtable_refkey := 'bez_bezoekers_key';
WHEN pmodule = 'BES'
THEN o_kvtable := 'bes_kenmerkbestell';
o_kvtable_refkey := 'bes_bestelling_key';
WHEN pmodule = 'CNT'
THEN o_kvtable := 'cnt_kenmerkcontract';
o_kvtable_refkey := 'cnt_contract_key';
WHEN pmodule = 'FAQ'
THEN o_kvtable := 'faq_kenmerkwaarde';
o_kvtable_refkey := 'fac_faq_key';
WHEN pmodule = 'FIN'
THEN o_kvtable := 'fin_kenmerkfactuur';
o_kvtable_refkey := 'fin_factuur_key';
WHEN pmodule = 'CIL' OR pmodule = 'SLE'
THEN o_kvtable := 'ins_kenmerkdeel';
o_kvtable_refkey := 'ins_deel_key';
WHEN pmodule = 'INS'
THEN o_kvtable := 'ins_kenmerkdeel';
o_kvtable_refkey := 'ins_deel_key';
WHEN pmodule = 'MLD'
THEN o_kvtable := 'mld_kenmerkmelding';
o_kvtable_refkey := 'mld_melding_key';
WHEN pmodule = 'OPD'
THEN o_kvtable := 'mld_kenmerkopdr';
o_kvtable_refkey := 'mld_opdr_key';
l_module := 'MLD';
WHEN pmodule = 'PRS'
THEN o_kvtable := 'prs_kenmerklink';
o_kvtable_refkey := 'prs_link_key';
o_kvtable_kniveau := 'prs_kenmerklink_niveau';
WHEN pmodule = 'RES'
THEN o_kvtable := 'res_kenmerkwaarde';
o_kvtable_refkey := 'res_rsv_ruimte_key';
END CASE;
IF l_module = 'RES'
THEN o_kvtable_kwaarde := 'res_kenmerkreservering_waarde'; -- RES is uitzondering
ELSE o_kvtable_kwaarde := o_kvtable || '_waarde';
END IF;
o_ktable := l_module || '_kenmerk';
o_ktable_kdefault := l_module || '_kenmerk_default';
o_ktable_kshowexpr := l_module || '_kenmerk_show_expr';
o_kvtable_kkey := l_module || '_kenmerk_key';
o_kvtable_kdelete := o_kvtable || '_verwijder';
END;
FUNCTION getflex (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_niveau IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2
IS
l_sql_kenm VARCHAR2 (4500);
l_waarde VARCHAR2 (4000);
l_kenmerk_tablename VARCHAR2 (30);
l_kenmval_tablename VARCHAR2 (30);
l_kcolumnname_refkey VARCHAR2 (30);
l_kcolumnname_niveau VARCHAR2 (30);
l_kcolumnname_waarde VARCHAR2 (30);
l_kcolumnname_default VARCHAR2 (30);
l_kcolumnname_kkey VARCHAR2 (30);
l_kcolumnname_delete VARCHAR2 (30);
l_kcolumnname_showexpr VARCHAR2 (30);
l_module VARCHAR2 (3);
BEGIN
l_module := pmodule;
flx.gettableinf (l_module, l_kenmerk_tablename, l_kcolumnname_default, l_kenmval_tablename, l_kcolumnname_refkey, l_kcolumnname_niveau, l_kcolumnname_waarde, l_kcolumnname_kkey, l_kcolumnname_delete, l_kcolumnname_showexpr);
l_sql_kenm := 'SELECT ' || l_kcolumnname_waarde ||
' FROM ' || l_kenmval_tablename ||
' WHERE ' || l_kcolumnname_refkey || ' = ' || p_ref_key ||
' AND ' || l_kcolumnname_kkey || ' = ' || p_kenmerk_key ||
' AND ' || l_kcolumnname_delete || ' IS NULL';
-- Merk op dat p_kenmerk_key uniek genoeg is, eigenlijk we hoeven p_niveau niet mee te nemen
-- Toch controleren we hem gewoon wel voor de tabellen die er mee werken
IF l_kcolumnname_niveau IS NOT NULL
THEN
l_sql_kenm := l_sql_kenm || ' AND ' || l_kcolumnname_niveau || ' = ''' || p_niveau || '''';
END IF;
BEGIN
EXECUTE IMMEDIATE l_sql_kenm INTO l_waarde;
RETURN l_waarde;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN NULL;
END;
END;
-- Let wel: we doen alleen een insert, nooit een update
PROCEDURE setflexbijlage (p_module IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_disk_directory IN VARCHAR2,
p_disk_filename IN VARCHAR2,
p_filename IN VARCHAR2,
p_file_size IN NUMBER,
p_file_date IN DATE,
p_digest IN VARCHAR2 DEFAULT NULL,
p_root_key IN NUMBER DEFAULT NULL)
AS
l_bijlagen_key fac_bijlagen.fac_bijlagen_key%TYPE;
l_disk_filename fac_bijlagen.fac_bijlagen_disk_filename%TYPE;
BEGIN
IF (p_disk_filename = p_filename) THEN
l_disk_filename := '';
ELSE
l_disk_filename := p_disk_filename;
END IF;
BEGIN
SELECT fac_bijlagen_key
INTO l_bijlagen_key
FROM fac_bijlagen
WHERE fac_bijlagen_verwijder IS NULL
AND fac_bijlagen_module = p_module
AND fac_bijlagen_refkey = p_ref_key
AND fac_bijlagen_disk_directory = p_disk_directory
AND fac_bijlagen_filename = p_filename;
UPDATE fac_bijlagen
SET fac_bijlagen_disk_filename = l_disk_filename
, fac_bijlagen_file_size = p_file_size
, fac_bijlagen_aanmaak = p_file_date
, fac_bijlagen_digest = p_digest
WHERE fac_bijlagen_key = l_bijlagen_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO fac_bijlagen
( fac_bijlagen_module
, fac_bijlagen_refkey
, fac_bijlagen_kenmerk_key
, fac_bijlagen_disk_directory
, fac_bijlagen_disk_filename
, fac_bijlagen_filename
, fac_bijlagen_file_size
, fac_bijlagen_aanmaak
, fac_bijlagen_digest
, fac_bijlagen_root_key
) VALUES
( p_module
, p_ref_key
, p_kenmerk_key
, p_disk_directory
, l_disk_filename
, p_filename
, p_file_size
, p_file_date
, p_digest
, p_root_key
)
RETURNING fac_bijlagen_key INTO l_bijlagen_key;
END;
END;
PROCEDURE copyflexbijlage ( p_module IN VARCHAR2
, p_refkey IN NUMBER
, p_kenmerk_key IN NUMBER
, p_from_bijlagen_key IN NUMBER
)
AS
BEGIN
INSERT INTO fac_bijlagen
( fac_bijlagen_module
, fac_bijlagen_refkey
, fac_bijlagen_kenmerk_key
, fac_bijlagen_disk_directory
, fac_bijlagen_filename
, fac_bijlagen_digest
, fac_bijlagen_file_size
, fac_bijlagen_root_key
, fac_bijlagen_aanmaak
)
SELECT p_module
, p_refkey
, p_kenmerk_key
, '*see root*'
, fac_bijlagen_filename
, fac_bijlagen_digest
, fac_bijlagen_file_size
, fac_bijlagen_root_key
, fac_bijlagen_aanmaak
FROM fac_bijlagen
WHERE fac_bijlagen_key = p_from_bijlagen_key;
END;
PROCEDURE deleteflexbijlage (p_bijlagen_key IN NUMBER)
AS
v_cur_root_key NUMBER;
v_new_root_key NUMBER;
v_cur_disk_dir fac_bijlagen.fac_bijlagen_disk_directory%TYPE;
BEGIN
-- Bepaal de nieuwe root_key als het huidige record wordt verwijderd,
SELECT MIN(n1.fac_bijlagen_root_key)
, MIN(n1.fac_bijlagen_key)
, MIN(n2.fac_bijlagen_disk_directory)
INTO v_cur_root_key
, v_new_root_key
, v_cur_disk_dir
FROM fac_bijlagen n1
, fac_bijlagen n2
WHERE n1.fac_bijlagen_root_key = n2.fac_bijlagen_root_key
AND n1.fac_bijlagen_verwijder IS NULL
AND n2.fac_bijlagen_verwijder IS NULL
AND n2.fac_bijlagen_key = p_bijlagen_key
AND n1.fac_bijlagen_key <> p_bijlagen_key;
IF (v_cur_root_key <> v_new_root_key)
THEN
-- Wijzig de root_key van alle records die naar het te verwijderen record verwijzen
UPDATE fac_bijlagen
SET fac_bijlagen_root_key = v_new_root_key
, fac_bijlagen_disk_directory = v_cur_disk_dir
WHERE fac_bijlagen_root_key = v_cur_root_key
AND fac_bijlagen_verwijder IS NULL;
END IF;
--
-- Nu mag dit record verwijderd worden
UPDATE fac_bijlagen
SET fac_bijlagen_verwijder = SYSDATE
WHERE fac_bijlagen_key = p_bijlagen_key;
END;
PROCEDURE deleteflexbijlage (p_module IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_disk_directory IN VARCHAR2,
p_filename IN VARCHAR2)
AS
v_bijlagen_key NUMBER(10);
CURSOR c_bijlagen
IS
SELECT fac_bijlagen_key
FROM fac_bijlagen
WHERE fac_bijlagen_module = p_module
AND fac_bijlagen_disk_directory = p_disk_directory
AND fac_bijlagen_refkey = p_ref_key
AND fac_bijlagen_kenmerk_key = p_kenmerk_key
AND fac_bijlagen_verwijder IS NULL
AND fac_bijlagen_filename = p_filename;
BEGIN
FOR bijl IN c_bijlagen
LOOP
flx.deleteflexbijlage(bijl.fac_bijlagen_key);
END LOOP;
END;
PROCEDURE setflex (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_waarde IN VARCHAR2)
AS
BEGIN
setflex(pmodule, p_kenmerk_key, p_ref_key, NULL, p_waarde);
END;
PROCEDURE setflex (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_niveau IN VARCHAR2,
p_waarde IN VARCHAR2,
p_multi IN NUMBER DEFAULT 0)
AS
l_module VARCHAR2 (3);
l_sql_kenm VARCHAR2 (4500);
l_sql_upsert VARCHAR2 (4500);
l_rowsprocessed NUMBER DEFAULT 0;
l_cursor_upsert INTEGER DEFAULT DBMS_SQL.open_cursor;
l_aantal_kenm NUMBER;
l_kenmerk_tablename VARCHAR2 (30);
l_kenmval_tablename VARCHAR2 (30);
l_kcolumnname_refkey VARCHAR2 (30);
l_kcolumnname_niveau VARCHAR2 (30);
l_kcolumnname_waarde VARCHAR2 (30);
l_kcolumnname_default VARCHAR2 (30);
l_kcolumnname_kkey VARCHAR2 (30);
l_kcolumnname_delete VARCHAR2 (30);
l_kcolumnname_showexpr VARCHAR2 (30);
l_niveau_col VARCHAR2 (32) DEFAULT '';
l_niveau_val VARCHAR2 (7) DEFAULT '';
BEGIN
l_module := pmodule;
flx.gettableinf (l_module, l_kenmerk_tablename, l_kcolumnname_default, l_kenmval_tablename, l_kcolumnname_refkey, l_kcolumnname_niveau, l_kcolumnname_waarde, l_kcolumnname_kkey, l_kcolumnname_delete, l_kcolumnname_showexpr);
l_sql_kenm := 'SELECT COUNT(*)' ||
' FROM ' || l_kenmval_tablename ||
' WHERE ' || l_kcolumnname_refkey || ' = ' || p_ref_key ||
' AND ' || l_kcolumnname_kkey || ' = ' || p_kenmerk_key ||
' AND ' || l_kcolumnname_delete || ' IS NULL';
-- Voor het kenmerktype Map kunnen/mogen meerdere regels met dezelde refkey en kenmerk_key bestaan.
-- In dat geval dus toevoegen als ook de verwijzing naar fac_bijlagen (in p_waarde) nog niet bestaat.
IF (p_multi = 1) THEN
l_sql_kenm := l_sql_kenm || ' AND ' || l_kcolumnname_waarde || ' = ' || p_waarde;
END IF;
EXECUTE IMMEDIATE l_sql_kenm INTO l_aantal_kenm;
l_sql_upsert := '';
IF l_aantal_kenm = 0
THEN
IF l_kcolumnname_niveau IS NOT NULL AND p_niveau IS NOT NULL
THEN
l_niveau_col := ', ' || l_kcolumnname_niveau;
l_niveau_val := ', ''' || p_niveau || '''';
END IF;
l_sql_upsert := 'INSERT INTO ' || l_kenmval_tablename ||
' (' || l_kcolumnname_refkey ||
' , ' || l_kcolumnname_kkey ||
' , ' || l_kcolumnname_waarde ||
l_niveau_col ||
' )' ||
' VALUES (' || p_ref_key ||
' , ' || p_kenmerk_key ||
' , :p_waarde'||
l_niveau_val ||
' )';
ELSE
-- Voor p_multi zijn er geen wijzigingen!
IF (p_multi = 0) THEN
l_sql_upsert := 'UPDATE ' || l_kenmval_tablename ||
' SET ' || l_kcolumnname_waarde || ' = :p_waarde' ||
' WHERE ' || l_kcolumnname_refkey || ' = ' || p_ref_key ||
' AND ' || l_kcolumnname_kkey || ' = ' || p_kenmerk_key ||
' AND ' || l_kcolumnname_delete || ' IS NULL';
END IF;
END IF;
IF (l_sql_upsert IS NOT NULL) THEN
DBMS_SQL.PARSE (l_cursor_upsert, l_sql_upsert, DBMS_SQL.native);
DBMS_SQL.BIND_VARIABLE(l_cursor_upsert, ':p_waarde', p_waarde);
l_rowsprocessed := DBMS_SQL.EXECUTE (l_cursor_upsert);
DBMS_SQL.CLOSE_CURSOR(l_cursor_upsert);
END IF;
END;
PROCEDURE deleteflex (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_ref_key IN NUMBER,
p_niveau IN VARCHAR2,
p_waardekey IN NUMBER DEFAULT NULL)
AS
l_module VARCHAR2 (3);
l_sql_delete VARCHAR2 (4500);
l_rowsprocessed NUMBER DEFAULT 0;
l_cursor_delete INTEGER DEFAULT DBMS_SQL.open_cursor;
l_kenmerk_tablename VARCHAR2 (30);
l_kenmval_tablename VARCHAR2 (30);
l_kcolumnname_refkey VARCHAR2 (30);
l_kcolumnname_niveau VARCHAR2 (30);
l_kcolumnname_waarde VARCHAR2 (30);
l_kcolumnname_default VARCHAR2 (30);
l_kcolumnname_kkey VARCHAR2 (30);
l_kcolumnname_delete VARCHAR2 (30);
l_kcolumnname_showexpr VARCHAR2 (30);
l_niveau VARCHAR2 (40);
BEGIN
l_module := pmodule;
flx.gettableinf (l_module, l_kenmerk_tablename, l_kcolumnname_default, l_kenmval_tablename, l_kcolumnname_refkey, l_kcolumnname_niveau, l_kcolumnname_waarde, l_kcolumnname_kkey, l_kcolumnname_delete, l_kcolumnname_showexpr);
-- Merk op dat p_kenmerk_key uniek genoeg is, eigenlijk we hoeven p_niveau niet mee te nemen
IF l_kcolumnname_niveau IS NOT NULL
THEN
l_niveau := ' AND ' || l_kcolumnname_niveau || ' = ''' || p_niveau || '''';
ELSE
l_niveau := '';
END IF;
l_sql_delete := 'DELETE FROM ' || l_kenmval_tablename ||
' WHERE ' || l_kcolumnname_refkey || ' = ' || p_ref_key ||
' AND ' || l_kcolumnname_kkey || ' = ' || p_kenmerk_key ||
' AND ' || l_kcolumnname_delete || ' IS NULL' ||
l_niveau;
IF (p_waardekey IS NOT NULL) THEN -- Specifieke flex-bijlage
l_sql_delete := l_sql_delete ||
' AND ' || l_kcolumnname_waarde || ' = ' || TO_CHAR(p_waardekey);
END IF;
DBMS_SQL.parse (l_cursor_delete, l_sql_delete, DBMS_SQL.native);
l_rowsprocessed := DBMS_SQL.execute (l_cursor_delete);
DBMS_SQL.close_cursor(l_cursor_delete);
END;
FUNCTION getflexexprtype (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_niveau IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2
IS
l_module VARCHAR2 (3);
l_sql_expr VARCHAR2 (4500);
l_kenmerk_tablename VARCHAR2 (30);
l_kenmval_tablename VARCHAR2 (30);
l_kcolumnname_refkey VARCHAR2 (30);
l_kcolumnname_niveau VARCHAR2 (30);
l_kcolumnname_waarde VARCHAR2 (30);
l_kcolumnname_default VARCHAR2 (30);
l_kcolumnname_kkey VARCHAR2 (30);
l_kcolumnname_delete VARCHAR2 (30);
l_kcolumnname_showexpr VARCHAR2 (30);
l_expr VARCHAR2 (4);
BEGIN
l_module := pmodule;
flx.gettableinf (l_module, l_kenmerk_tablename, l_kcolumnname_default, l_kenmval_tablename, l_kcolumnname_refkey, l_kcolumnname_niveau, l_kcolumnname_waarde, l_kcolumnname_kkey, l_kcolumnname_delete, l_kcolumnname_showexpr);
-- Expressie opvragen uit de default waarde uit de kenmerk tabel.
l_sql_expr := 'SELECT (SUBSTR (' || l_kcolumnname_default || ', 1, 2))' ||
' FROM ' || l_kenmerk_tablename ||
' WHERE ' || l_kcolumnname_kkey || ' = ' || p_kenmerk_key;
EXECUTE IMMEDIATE l_sql_expr INTO l_expr;
IF l_expr = '##'
THEN
l_sql_expr := 'SELECT (SUBSTR (' || l_kcolumnname_default || ', 3, 4))' ||
' FROM ' || l_kenmerk_tablename ||
' WHERE ' || l_kcolumnname_kkey || ' = ' || p_kenmerk_key;
EXECUTE IMMEDIATE l_sql_expr INTO l_expr;
ELSE
l_expr := NULL;
END IF;
RETURN l_expr;
END;
FUNCTION getflexexpression (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_niveau IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2
IS
l_module VARCHAR2 (3);
l_sql_expr VARCHAR2 (4500);
l_kenmerk_tablename VARCHAR2 (30);
l_kenmval_tablename VARCHAR2 (30);
l_kcolumnname_refkey VARCHAR2 (30);
l_kcolumnname_niveau VARCHAR2 (30);
l_kcolumnname_waarde VARCHAR2 (30);
l_kcolumnname_default VARCHAR2 (30);
l_kcolumnname_kkey VARCHAR2 (30);
l_kcolumnname_delete VARCHAR2 (30);
l_kcolumnname_showexpr VARCHAR2 (30);
l_expr VARCHAR2 (4000);
BEGIN
l_module := pmodule;
flx.gettableinf (l_module, l_kenmerk_tablename, l_kcolumnname_default, l_kenmval_tablename, l_kcolumnname_refkey, l_kcolumnname_niveau, l_kcolumnname_waarde, l_kcolumnname_kkey, l_kcolumnname_delete, l_kcolumnname_showexpr);
-- Expressie opvragen uit de default waarde uit de kenmerk tabel.
l_sql_expr := 'SELECT (SUBSTR (' || l_kcolumnname_default || ', 9))' ||
' FROM ' || l_kenmerk_tablename ||
' WHERE ' || l_kcolumnname_kkey || ' = ' || p_kenmerk_key;
EXECUTE IMMEDIATE l_sql_expr INTO l_expr;
RETURN l_expr;
END;
FUNCTION getflexshowexpr (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_niveau IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2
IS
l_module VARCHAR2 (3);
l_sql_expr VARCHAR2 (4500);
l_kenmerk_tablename VARCHAR2 (30);
l_kenmval_tablename VARCHAR2 (30);
l_kcolumnname_refkey VARCHAR2 (30);
l_kcolumnname_niveau VARCHAR2 (30);
l_kcolumnname_waarde VARCHAR2 (30);
l_kcolumnname_default VARCHAR2 (30);
l_kcolumnname_kkey VARCHAR2 (30);
l_kcolumnname_delete VARCHAR2 (30);
l_kcolumnname_showexpr VARCHAR2 (30);
l_expr VARCHAR2 (4000);
BEGIN
l_module := pmodule;
flx.gettableinf (l_module, l_kenmerk_tablename, l_kcolumnname_default, l_kenmval_tablename, l_kcolumnname_refkey, l_kcolumnname_niveau, l_kcolumnname_waarde, l_kcolumnname_kkey, l_kcolumnname_delete, l_kcolumnname_showexpr);
-- Expressie opvragen uit de default waarde uit de kenmerk tabel.
l_sql_expr := 'SELECT (SUBSTR (' || l_kcolumnname_showexpr || ', 9))' ||
' FROM ' || l_kenmerk_tablename ||
' WHERE ' || l_kcolumnname_kkey || ' = ' || p_kenmerk_key;
EXECUTE IMMEDIATE l_sql_expr INTO l_expr;
RETURN l_expr;
END;
FUNCTION getdomeinwaarde (dkey IN NUMBER, waarde IN VARCHAR2, ignorewhenxmlnode IN NUMBER DEFAULT 0)
RETURN VARCHAR2
IS
sresult VARCHAR2 (255);
kolomnaam fac_kenmerkdomein.fac_kenmerkdomein_kolomnaam%TYPE;
kolomtxt fac_kenmerkdomein.fac_kenmerkdomein_kolomtxt%TYPE;
objectnaam fac_kenmerkdomein.fac_kenmerkdomein_objectnaam%TYPE;
xmlnode fac_kenmerkdomein.fac_kenmerkdomein_xmlnode%TYPE;
resultvalue VARCHAR2 (1000);
BEGIN
IF waarde IS NULL
THEN
resultvalue := NULL; -- gauw klaar mee
ELSE
SELECT rsk.fac_kenmerkdomein_kolomnaam,
rsk.fac_kenmerkdomein_kolomtxt,
rsk.fac_kenmerkdomein_objectnaam,
rsk.fac_kenmerkdomein_xmlnode
INTO kolomnaam,
kolomtxt,
objectnaam,
xmlnode
FROM fac_kenmerkdomein rsk
WHERE rsk.fac_kenmerkdomein_key = dkey;
IF (xmlnode IS NOT NULL AND ignorewhenxmlnode = 1)
THEN
RETURN waarde;
END IF;
-- Optimalisatie: meestal is het dezelfde query op de usrdata-tabel
-- Dan hoeven we niet te bouwen en steeds te parsen (FSN#25653)
IF kolomtxt = 'FAC_USRDATA_OMSCHR'
AND objectnaam = 'FAC_USRDATA'
AND kolomnaam = 'FAC_USRDATA_KEY'
THEN
SELECT fac_usrdata_omschr
INTO resultvalue
FROM fac_usrdata
WHERE fac_usrdata_key = fac.safe_to_number(waarde);
ELSE
sresult := 'SELECT MIN(' || kolomtxt || ') FROM ' || objectnaam || ' WHERE ' || kolomnaam || ' = :bd_waarde';
EXECUTE IMMEDIATE sresult INTO resultvalue USING waarde;
END IF;
END IF;
RETURN resultvalue;
END;
PROCEDURE evaluateflexexpressions (pmodule IN VARCHAR2, prefkey IN NUMBER, puserkey IN NUMBER, psavetodb IN NUMBER)
AS
l_module VARCHAR2 (3);
l_sql_exprval VARCHAR2 (4500);
l_rowsprocessed NUMBER DEFAULT 0;
l_cursor_exprval NUMBER; -- INTEGER DEFAULT DBMS_SQL.open_cursor;
l_desctab DBMS_SQL.desc_tab;
l_colcnt NUMBER;
l_expr VARCHAR2 (4000);
l_exprtype VARCHAR2 (4);
l_exprval VARCHAR2 (4000);
l_exprval_num NUMBER;
l_exprval_date DATE;
l_cntbind NUMBER;
l_cnt NUMBER;
l_bvar VARCHAR2 (1000);
l_rflex VARCHAR2 (1000) DEFAULT '(\:flex[0-9_]+)'; -- supports ':flex111 = ''538'''
l_kenmerkwaarde fac_kenmwaarden.fac_kenmwaarden_waarde%TYPE;
l_kenmerkw_date DATE;
l_kenmerkw_num NUMBER;
l_kenmerktype fac_kenmwaarden.fac_kenmwaarden_kenmerktype%TYPE;
l_kenmerk_key fac_kenmwaarden.fac_kenmwaarden_kenmerk_key%TYPE;
l_kenmerk_tablename VARCHAR2 (30);
l_kenmval_tablename VARCHAR2 (30);
l_kcolumnname_refkey VARCHAR2 (30);
l_kcolumnname_niveau VARCHAR2 (30);
l_kcolumnname_waarde VARCHAR2 (30);
l_kcolumnname_default VARCHAR2 (30);
l_kcolumnname_kkey VARCHAR2 (30);
l_kcolumnname_delete VARCHAR2 (30);
l_kcolumnname_showexpr VARCHAR2 (30);
l_niveau_val VARCHAR2 (1) DEFAULT '';
CURSOR c_expressions
IS
SELECT fac_kenmwaarden_kenmerk_key,
fac_kenmwaarden_kenmerktype,
fac_kenmwaarden_kenmerklen,
fac_kenmwaarden_kenmerkdec,
fac_kenmwaarden_niveau,
fac_kenmwaarden_waarde
FROM fac_kenmwaarden
WHERE fac_kenmwaarden_module = pmodule
AND fac_kenmwaarden_refkey = prefkey
AND prs_perslid_key = puserkey
AND fac_kenmwaarden_isexpr = 1
ORDER BY fac_kenmwaarden_key;
BEGIN
l_module := pmodule;
flx.gettableinf (l_module, l_kenmerk_tablename, l_kcolumnname_default, l_kenmval_tablename, l_kcolumnname_refkey, l_kcolumnname_niveau, l_kcolumnname_waarde, l_kcolumnname_kkey, l_kcolumnname_delete, l_kcolumnname_showexpr);
FOR expr IN c_expressions
LOOP
l_cursor_exprval := DBMS_SQL.open_cursor;
-- Expressie opvragen.
l_exprtype := flx.getflexexprtype(pmodule, expr.fac_kenmwaarden_kenmerk_key, expr.fac_kenmwaarden_niveau);
l_expr := flx.getflexexpression(pmodule, expr.fac_kenmwaarden_kenmerk_key, expr.fac_kenmwaarden_niveau);
IF l_exprtype IS NOT NULL AND l_expr IS NOT NULL
THEN
l_sql_exprval := 'SELECT ' || '(' || l_expr || ')' || ' FROM DUAL';
DBMS_SQL.parse (l_cursor_exprval, l_sql_exprval, DBMS_SQL.native);
--DBMS_SQL.describe_columns(l_cursor_exprval, l_colcnt, l_desctab);
IF expr.fac_kenmwaarden_kenmerktype = 'N'
THEN
DBMS_SQL.define_column(l_cursor_exprval, 1, l_exprval_num);
ELSIF expr.fac_kenmwaarden_kenmerktype = 'V'
THEN
DBMS_SQL.define_column(l_cursor_exprval, 1, l_exprval_num);
ELSIF expr.fac_kenmwaarden_kenmerktype = 'D'
THEN
DBMS_SQL.define_column(l_cursor_exprval, 1, l_exprval_date);
ELSE
DBMS_SQL.define_column(l_cursor_exprval, 1, l_exprval, 4000);
END IF;
l_cntbind := REGEXP_COUNT (l_sql_exprval,
l_rflex,
1,
'i');
FOR l_cnt IN 1 .. l_cntbind
LOOP
l_bvar := REGEXP_SUBSTR (l_sql_exprval,
l_rflex,
1,
l_cnt,
'i');
l_kenmerk_key := TO_NUMBER (SUBSTR (l_bvar, 6));
BEGIN
SELECT fac_kenmwaarden_waarde,
fac_kenmwaarden_kenmerktype
INTO l_kenmerkwaarde,
l_kenmerktype
FROM fac_kenmwaarden
WHERE fac_kenmwaarden_module = l_module
AND fac_kenmwaarden_refkey = prefkey
AND prs_perslid_key = puserkey
AND fac_kenmwaarden_kenmerk_key = l_kenmerk_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_kenmerkwaarde := NULL;
l_kenmerktype := NULL;
END;
-- Als <20><>n van de flexkenmerken NULL is, dan met die waarde verder rekenen. Waarde kan bewust NULL zijn
CASE l_kenmerktype
WHEN 'D'
THEN
l_kenmerkw_date := TO_DATE(l_kenmerkwaarde, 'DD-MM-YYYY');
DBMS_SQL.bind_variable (l_cursor_exprval, l_bvar, l_kenmerkw_date);
WHEN 'N'
THEN
l_kenmerkw_num := TO_NUMBER(l_kenmerkwaarde);
DBMS_SQL.bind_variable (l_cursor_exprval, l_bvar, l_kenmerkw_num);
WHEN 'V'
THEN
l_kenmerkw_num := TO_NUMBER(l_kenmerkwaarde);
DBMS_SQL.bind_variable (l_cursor_exprval, l_bvar, l_kenmerkw_num);
ELSE
DBMS_SQL.bind_variable (l_cursor_exprval, l_bvar, l_kenmerkwaarde);
END CASE;
END LOOP;
l_rowsprocessed := DBMS_SQL.execute_and_fetch (l_cursor_exprval);
IF expr.fac_kenmwaarden_kenmerktype = 'N'
THEN
DBMS_SQL.column_value (l_cursor_exprval, 1, l_exprval_num);
l_exprval := TO_CHAR(l_exprval_num);
IF (l_exprval IS NOT NULL AND expr.fac_kenmwaarden_kenmerkdec > 0)
THEN
-- Voeg gewenst aantal decimalen toe
-- en een voorloop nul als het begint met een punt.
IF (INSTR(l_exprval,'.') = 0)
THEN
l_exprval := l_exprval || '.';
ELSIF (INSTR(l_exprval,'.') = 1)
THEN
l_exprval := '0' || l_exprval;
END IF;
l_exprval := l_exprval || RPAD('0', expr.fac_kenmwaarden_kenmerkdec, '0');
l_exprval := SUBSTR(l_exprval, 1, INSTR(l_exprval, '.') + expr.fac_kenmwaarden_kenmerkdec);
END IF;
ELSIF expr.fac_kenmwaarden_kenmerktype = 'V'
THEN
DBMS_SQL.column_value (l_cursor_exprval, 1, l_exprval_num);
l_exprval := TO_CHAR(l_exprval_num);
ELSIF expr.fac_kenmwaarden_kenmerktype = 'D'
THEN
DBMS_SQL.column_value (l_cursor_exprval, 1, l_exprval_date);
l_exprval := TO_CHAR(l_exprval_date, 'DD-MM-YYYY');
ELSE
DBMS_SQL.column_value (l_cursor_exprval, 1, l_exprval);
END IF;
IF l_kcolumnname_niveau IS NOT NULL
THEN
IF psavetodb = 1
THEN
-- Waarde opslaan in de database
flx.setflex (l_module, expr.fac_kenmwaarden_kenmerk_key, prefkey, expr.fac_kenmwaarden_niveau, l_exprval);
END IF;
-- Waarde van de expressie flexkenmerk in de tijdelijke kenmerk waarden tabel (fac_kenmwaarden) vullen met de nieuwe waarde.
-- Expressie flexkenmerken die afhankelijke zijn van andere expressie flexkenmerken worden dan ook goed berekend.
UPDATE fac_kenmwaarden
SET fac_kenmwaarden_waarde = l_exprval
WHERE fac_kenmwaarden_module = pmodule
AND fac_kenmwaarden_refkey = prefkey
AND fac_kenmwaarden_kenmerk_key = expr.fac_kenmwaarden_kenmerk_key
AND fac_kenmwaarden_niveau = expr.fac_kenmwaarden_niveau
AND prs_perslid_key = puserkey
AND fac_kenmwaarden_isexpr = 1;
ELSE
IF psavetodb = 1
THEN
-- Waarde opslaan in de database
flx.setflex (l_module, expr.fac_kenmwaarden_kenmerk_key, prefkey, l_exprval);
END IF;
-- Waarde van de expressie flexkenmerk in de tijdelijke kenmerk waarden tabel (fac_kenmwaarden) vullen met de nieuwe waarde.
-- Expressie flexkenmerken die afhankelijke zijn van andere expressie flexkenmerken worden dan ook goed berekend.
UPDATE fac_kenmwaarden
SET fac_kenmwaarden_waarde = l_exprval
WHERE fac_kenmwaarden_module = pmodule
AND fac_kenmwaarden_refkey = prefkey
AND fac_kenmwaarden_kenmerk_key = expr.fac_kenmwaarden_kenmerk_key
AND prs_perslid_key = puserkey
AND fac_kenmwaarden_niveau IS NULL
AND fac_kenmwaarden_isexpr = 1;
END IF;
END IF;
l_expr := flx.getflexshowexpr(pmodule, expr.fac_kenmwaarden_kenmerk_key, expr.fac_kenmwaarden_niveau);
IF l_expr IS NOT NULL
THEN
l_sql_exprval := 'SELECT ' || '(' || l_expr || ')' || ' FROM DUAL';
DBMS_SQL.parse (l_cursor_exprval, l_sql_exprval, DBMS_SQL.native);
--DBMS_SQL.describe_columns(l_cursor_exprval, l_colcnt, l_desctab);
IF expr.fac_kenmwaarden_kenmerktype = 'N'
THEN
DBMS_SQL.define_column(l_cursor_exprval, 1, l_exprval_num);
ELSIF expr.fac_kenmwaarden_kenmerktype = 'V'
THEN
DBMS_SQL.define_column(l_cursor_exprval, 1, l_exprval_num);
ELSIF expr.fac_kenmwaarden_kenmerktype = 'D'
THEN
DBMS_SQL.define_column(l_cursor_exprval, 1, l_exprval_date);
ELSE
DBMS_SQL.define_column(l_cursor_exprval, 1, l_exprval, 4000);
END IF;
l_cntbind := REGEXP_COUNT (l_sql_exprval,
l_rflex,
1,
'i');
FOR l_cnt IN 1 .. l_cntbind
LOOP
l_bvar := REGEXP_SUBSTR (l_sql_exprval,
l_rflex,
1,
l_cnt,
'i');
l_kenmerk_key := TO_NUMBER (SUBSTR (l_bvar, 6));
BEGIN
SELECT fac_kenmwaarden_waarde,
fac_kenmwaarden_kenmerktype
INTO l_kenmerkwaarde,
l_kenmerktype
FROM fac_kenmwaarden
WHERE fac_kenmwaarden_module = l_module
AND fac_kenmwaarden_refkey = prefkey
AND prs_perslid_key = puserkey
AND fac_kenmwaarden_kenmerk_key = l_kenmerk_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_kenmerkwaarde := NULL;
l_kenmerktype := NULL;
END;
-- Als <20><>n van de flexkenmerken NULL is, dan met die waarde verder rekenen. Waarde kan bewust NULL zijn
CASE l_kenmerktype
WHEN 'D'
THEN
l_kenmerkw_date := TO_DATE(l_kenmerkwaarde, 'DD-MM-YYYY');
DBMS_SQL.bind_variable (l_cursor_exprval, l_bvar, l_kenmerkw_date);
WHEN 'N'
THEN
l_kenmerkw_num := TO_NUMBER(l_kenmerkwaarde);
DBMS_SQL.bind_variable (l_cursor_exprval, l_bvar, l_kenmerkw_num);
WHEN 'V'
THEN
l_kenmerkw_num := TO_NUMBER(l_kenmerkwaarde);
DBMS_SQL.bind_variable (l_cursor_exprval, l_bvar, l_kenmerkw_num);
ELSE
DBMS_SQL.bind_variable (l_cursor_exprval, l_bvar, l_kenmerkwaarde);
END CASE;
END LOOP;
l_rowsprocessed := DBMS_SQL.execute_and_fetch (l_cursor_exprval);
IF expr.fac_kenmwaarden_kenmerktype = 'N'
THEN
DBMS_SQL.column_value (l_cursor_exprval, 1, l_exprval_num);
l_exprval := TO_CHAR(l_exprval_num);
IF (l_exprval IS NOT NULL AND expr.fac_kenmwaarden_kenmerkdec > 0)
THEN
-- Voeg gewenst aantal decimalen toe
-- en een voorloop nul als het begint met een punt.
IF (INSTR(l_exprval,'.') = 0)
THEN
l_exprval := l_exprval || '.';
ELSIF (INSTR(l_exprval,'.') = 1)
THEN
l_exprval := '0' || l_exprval;
END IF;
l_exprval := l_exprval || RPAD('0', expr.fac_kenmwaarden_kenmerkdec, '0');
l_exprval := SUBSTR(l_exprval, 1, INSTR(l_exprval, '.') + expr.fac_kenmwaarden_kenmerkdec);
END IF;
ELSIF expr.fac_kenmwaarden_kenmerktype = 'V'
THEN
DBMS_SQL.column_value (l_cursor_exprval, 1, l_exprval_num);
l_exprval := TO_CHAR(l_exprval_num);
ELSIF expr.fac_kenmwaarden_kenmerktype = 'D'
THEN
DBMS_SQL.column_value (l_cursor_exprval, 1, l_exprval_date);
l_exprval := TO_CHAR(l_exprval_date, 'DD-MM-YYYY');
ELSE
DBMS_SQL.column_value (l_cursor_exprval, 1, l_exprval);
END IF;
IF l_kcolumnname_niveau IS NOT NULL
THEN
IF psavetodb = 1 AND l_exprval IS NOT NULL AND l_exprval <> '0'
THEN
-- Waarde opslaan in de database
flx.setflex (l_module, expr.fac_kenmwaarden_kenmerk_key, prefkey, expr.fac_kenmwaarden_niveau, expr.fac_kenmwaarden_waarde);
END IF;
-- Waarde van de expressie flexkenmerk in de tijdelijke kenmerk waarden tabel (fac_kenmwaarden) vullen met de nieuwe waarde.
-- Expressie flexkenmerken die afhankelijke zijn van andere expressie flexkenmerken worden dan ook goed berekend.
UPDATE fac_kenmwaarden
SET fac_kenmwaarden_exprwaarde = l_exprval
WHERE fac_kenmwaarden_module = pmodule
AND fac_kenmwaarden_refkey = prefkey
AND fac_kenmwaarden_kenmerk_key = expr.fac_kenmwaarden_kenmerk_key
AND fac_kenmwaarden_niveau = expr.fac_kenmwaarden_niveau
AND prs_perslid_key = puserkey
AND fac_kenmwaarden_isexpr = 1;
ELSE
IF psavetodb = 1 AND l_exprval IS NOT NULL AND l_exprval <> '0'
THEN
-- Waarde opslaan in de database
flx.setflex (l_module, expr.fac_kenmwaarden_kenmerk_key, prefkey, expr.fac_kenmwaarden_waarde);
END IF;
-- Waarde van de expressie flexkenmerk in de tijdelijke kenmerk waarden tabel (fac_kenmwaarden) vullen met de nieuwe waarde.
-- Expressie flexkenmerken die afhankelijke zijn van andere expressie flexkenmerken worden dan ook goed berekend.
UPDATE fac_kenmwaarden
SET fac_kenmwaarden_exprwaarde = l_exprval
WHERE fac_kenmwaarden_module = pmodule
AND fac_kenmwaarden_refkey = prefkey
AND fac_kenmwaarden_kenmerk_key = expr.fac_kenmwaarden_kenmerk_key
AND prs_perslid_key = puserkey
AND fac_kenmwaarden_niveau IS NULL
AND fac_kenmwaarden_isexpr = 1;
END IF;
END IF;
DBMS_SQL.close_cursor(l_cursor_exprval);
END LOOP;
END;
END flx;
/
REGISTERRUN('$Id$')

View File

@@ -22,57 +22,43 @@ AS
PROCEDURE setuserlanguage (flcode IN VARCHAR2);
PROCEDURE setdatabaselanguage (flcode IN VARCHAR2);
FUNCTION xl (pnaam IN VARCHAR2, pkey IN NUMBER, pdefault IN VARCHAR2, plang IN VARCHAR2)
RETURN VARCHAR2;
FUNCTION x (pnaam IN VARCHAR2, pkey IN NUMBER, pdefault IN VARCHAR2, pautolcl IN NUMBER DEFAULT 1)
FUNCTION x (pnaam IN VARCHAR2, pkey IN NUMBER, pdefault IN VARCHAR2)
RETURN VARCHAR2;
FUNCTION L (pnaam IN VARCHAR2, pautolcl IN NUMBER DEFAULT 0)
FUNCTION L (pnaam IN VARCHAR2)
RETURN VARCHAR2;
PROCEDURE fallback_languages;
END lcl;
/
CREATE OR REPLACE PACKAGE BODY lcl
AS
FUNCTION getuserlanguage
RETURN VARCHAR2
FUNCTION getuserlanguage RETURN VARCHAR2
AS
userlang VARCHAR2 (10);
BEGIN
-- Cache de databasetaal in een package-global
IF fcltdblanguage IS NULL
THEN
SELECT fac_version_lang INTO fcltdblanguage FROM fac_version;
DBMS_OUTPUT.put_line ('Recaching language ' || fcltdblanguage);
END IF;
-- Bepaalt de applicatietaal van de user zoals vanuit ASP gezet
-- Links is wat Oracle teruggeeft, rechts wat ISO-639 vindt (onze keuze)
userlang := SYS_CONTEXT ('userenv', 'LANG');
RETURN CASE userlang
WHEN 'NL' THEN 'NL'
WHEN 'GB' THEN 'EN'
WHEN 'D' THEN 'DE'
WHEN 'F' THEN 'FR'
WHEN 'S' THEN 'SV'
WHEN 'N' THEN 'NO'
WHEN 'DK' THEN 'DA'
WHEN 'SF' THEN 'FI'
ELSE fcltdblanguage
END;
-- Bepaalt de applicatietaal van de user zoals vanuit ASP gezet
IF SYS_CONTEXT('userenv', 'LANG') = 'GB'
THEN
RETURN 'EN';
ELSIF SYS_CONTEXT('userenv', 'LANG') = 'D'
THEN
RETURN 'DE';
ELSIF SYS_CONTEXT('userenv', 'LANG') = 'F'
THEN
RETURN 'FR';
ELSE
RETURN SYS_CONTEXT('userenv', 'LANG');
END IF;
END;
PROCEDURE setuserlanguage (flcode IN VARCHAR2)
AS
nlslang VARCHAR2 (30);
setsql VARCHAR2 (60);
lflcode VARCHAR2 (10); -- locale kopie
lflcode VARCHAR2 (3); -- locale kopie
BEGIN
-- Zet de sessie in de juiste taal, gegeven de FACILITOR-tweeletterige taalcode
@@ -84,7 +70,7 @@ AS
INTO lflcode
FROM fac_version;
ELSE
lflcode := SUBSTR(flcode, 1, 10);
lflcode := flcode;
END IF;
@@ -103,18 +89,6 @@ AS
WHEN 'FR'
THEN
nlslang := 'FRENCH';
WHEN 'SV'
THEN
nlslang := 'SWEDISH';
WHEN 'NO'
THEN
nlslang := 'NORWEGIAN';
WHEN 'DA'
THEN
nlslang := 'DANISH';
WHEN 'FI'
THEN
nlslang := 'FINNISH';
ELSE
nlslang := 'DUTCH';
END CASE;
@@ -124,20 +98,11 @@ AS
EXECUTE IMMEDIATE setsql;
END;
/* Let op dat ASP-code mogelijk ook nog cache't. Wijzig een willekeurige setting voor een re-cache */
PROCEDURE setdatabaselanguage (flcode IN VARCHAR2)
AS
BEGIN
UPDATE fac_version
SET fac_version_lang = flcode;
fcltdblanguage := flcode; -- Gecachete waarde bijwerken
END;
/* levert de vertaalde string op*/
FUNCTION xl (pnaam IN VARCHAR2, pkey IN NUMBER, pdefault IN VARCHAR2, plang IN VARCHAR2)
RETURN VARCHAR2
AS
retval fac_locale_xsl.fac_locale_xsl_tekst%TYPE;
retval VARCHAR2(2000); --fac_locale.fac_locale_tekst%TYPE;
BEGIN
BEGIN
-- language vertaling, geen dialect. Geldt voor kolommen
@@ -161,51 +126,39 @@ AS
FUNCTION x (pnaam IN VARCHAR2, pkey IN NUMBER, pdefault IN VARCHAR2, pautolcl IN NUMBER DEFAULT 1)
FUNCTION x (pnaam IN VARCHAR2, pkey IN NUMBER, pdefault IN VARCHAR2)
RETURN VARCHAR2
AS
requiredlang fac_version.fac_version_lang%TYPE;
retval fac_locale_xsl.fac_locale_xsl_tekst%TYPE;
retval VARCHAR2(2000); --fac_locale.fac_locale_tekst%TYPE;
BEGIN
-- Cache de databasetaal in een package-global
IF fcltdblanguage IS NULL
THEN
SELECT fac_version_lang INTO fcltdblanguage FROM fac_version;
DBMS_OUTPUT.put_line ('Recaching language ' || fcltdblanguage);
DBMS_OUTPUT.put_line ('Rechaching language ' || fcltdblanguage);
END IF;
requiredlang := lcl.getuserlanguage ();
IF (requiredlang = fcltdblanguage OR pkey IS NULL)
THEN
-- DBMS_OUTPUT.put_line ('Using default language ' || requiredlang);
DBMS_OUTPUT.put_line ('Using default language ' || requiredlang);
retval := pdefault;
ELSE
-- DBMS_OUTPUT.put_line ('Using notdefault language ' || requiredlang);
DBMS_OUTPUT.put_line ('Using notdefault language ' || requiredlang);
retval := lcl.xl (pnaam, pkey, pdefault, requiredlang);
END IF;
-- Voor lcl_noti_* maar verder generiek
IF pautolcl = 1 THEN
retval := lcl.L(retval, pautolcl);
END IF;
RETURN retval;
END;
-- Oracle variant van de ASP-L functie
-- Geef pautolcl=1 mee als je niet zeker weet of het een lcl is
FUNCTION L (pnaam IN VARCHAR2, pautolcl IN NUMBER DEFAULT 0)
FUNCTION L (pnaam IN VARCHAR2)
RETURN VARCHAR2
AS
retval fac_locale_xsl.fac_locale_xsl_tekst%TYPE;
retval VARCHAR2(2000); --fac_locale.fac_locale_tekst%TYPE;
BEGIN
-- Voor lcl_noti_* maar verder generiek
IF pautolcl = 1 AND pnaam NOT LIKE 'lcl_%' THEN
RETURN pnaam;
END IF;
SELECT COALESCE(fac_locale_xsl_cust, fac_locale_xsl_tekst)
INTO retval
FROM fac_locale_xsl
@@ -216,95 +169,6 @@ AS
RETURN retval;
END;
PROCEDURE fallback_languages
AS
BEGIN
-- Eerst: missende LCL's aanmaken vanuit NL (die ik compleet veronderstel)
-- Eerder ggeimporteerde talen zijn mogelijk niet compleet namelijk
FOR c_lang IN (SELECT DISTINCT (fac_locale_xsl_lang) lang
FROM fac_locale_xsl
WHERE fac_locale_xsl_lang <> 'NL')
LOOP
DBMS_OUTPUT.PUT_LINE ('Updating language ' || c_lang.lang);
INSERT INTO fac_locale_xsl (fac_locale_xsl_lang,
fac_locale_xsl_module,
fac_locale_xsl_label,
fac_locale_xsl_tekst,
fac_locale_xsl_isvalid)
SELECT c_lang.lang,
fac_locale_xsl_module,
fac_locale_xsl_label,
'@@',
0
FROM fac_locale_xsl x2
WHERE fac_locale_xsl_lang = 'NL'
AND NOT EXISTS
(SELECT 1
FROM fac_locale_xsl x3
WHERE x3.fac_locale_xsl_lang = c_lang.lang
AND x2.fac_locale_xsl_label =
x3.fac_locale_xsl_label
AND x2.fac_locale_xsl_module =
x3.fac_locale_xsl_module);
END LOOP;
-- Dan: Engelstalig terugvallen op de database taal (of NL)
UPDATE fac_locale_xsl flx1
SET fac_locale_xsl_isvalid = 0,
fac_locale_xsl_tekst =
(SELECT fac_locale_xsl_tekst
FROM fac_locale_xsl flx2
WHERE flx1.fac_locale_xsl_label = flx2.fac_locale_xsl_label
AND flx1.fac_locale_xsl_module =
flx2.fac_locale_xsl_module
AND fac_locale_xsl_lang =
COALESCE((SELECT fac_version_lang FROM fac_version), 'NL'))
WHERE ( fac_locale_xsl_isvalid = 0
OR fac_locale_xsl_tekst IS NULL
OR fac_locale_xsl_tekst = '@'
OR fac_locale_xsl_tekst = '@@')
AND fac_locale_xsl_lang = 'EN';
-- Dan: Nu nog steeds missende Engelstalig echt terugvallen op NL. Altijd beter dan '@@'
UPDATE fac_locale_xsl flx1
SET fac_locale_xsl_isvalid = 0,
fac_locale_xsl_tekst =
(SELECT fac_locale_xsl_tekst
FROM fac_locale_xsl flx2
WHERE flx1.fac_locale_xsl_label = flx2.fac_locale_xsl_label
AND flx1.fac_locale_xsl_module =
flx2.fac_locale_xsl_module
AND fac_locale_xsl_lang = 'NL')
WHERE ( fac_locale_xsl_isvalid = 0
OR fac_locale_xsl_tekst IS NULL
OR fac_locale_xsl_tekst = '@'
OR fac_locale_xsl_tekst = '@@')
AND fac_locale_xsl_lang = 'EN';
-- Daarna: Alle andere talen terugvallen op Engelstalig
UPDATE fac_locale_xsl flx1
SET fac_locale_xsl_isvalid = 0,
fac_locale_xsl_tekst =
(SELECT fac_locale_xsl_tekst
FROM fac_locale_xsl flx2
WHERE flx1.fac_locale_xsl_label = flx2.fac_locale_xsl_label
AND flx1.fac_locale_xsl_module =
flx2.fac_locale_xsl_module
AND fac_locale_xsl_lang = 'EN')
WHERE ( fac_locale_xsl_isvalid = 0
OR fac_locale_xsl_tekst IS NULL
OR fac_locale_xsl_tekst = '@'
OR fac_locale_xsl_tekst = '@@')
AND fac_locale_xsl_lang NOT IN
('EN', 'NL');
-- En allerlaatst: lege teksten zijn altijd valid
UPDATE fac_locale_xsl flx1
SET fac_locale_xsl_isvalid = 1
WHERE fac_locale_xsl_tekst IS NULL;
END;
END lcl;
END lcl;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: FAC_PACL.SRC $','$Revision$')

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,6 @@ CREATE SEQUENCE fac_s_fac_functie_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_usrtab_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_usrdata_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_usrrap_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_usrrap_cols_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_usrgraph_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_mgtrap_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_groep_key MINVALUE 1;
@@ -20,7 +19,6 @@ CREATE SEQUENCE fac_s_fac_srtnotificatie_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_notificatie_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_notificatie_job_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_import_app_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_export_app_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_import_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_activiteit_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_setting_key MINVALUE 1;
@@ -29,37 +27,16 @@ CREATE SEQUENCE fac_s_fac_tracking_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_menuitems_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_menu_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_nieuws_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_nieuws_groep_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_faq_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_locale_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_localeitems_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_locale_mgt_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_locale_xsl_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_locale_xref_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_kenmerkdomein_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_kenmwaarden_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_widget_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_note_group_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_code2label_key MINVALUE 1;
CREATE SEQUENCE imp_s_imp_log_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_api_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_audit_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_auditfail_key MINVALUE 1;
CREATE SEQUENCE faq_s_faq_kenmerk_key MINVALUE 1;
CREATE SEQUENCE faq_s_faq_kenmerkwaarde_key MINVALUE 1;
CREATE SEQUENCE faq_s_fac_gui_counter_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_email_setting_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_bookmark_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_qvw_ticket_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_session_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_sequence_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_bijlagen_key MINVALUE 1;
-- Some free to use sequence to generate unique and sequential numbers
-- with custom procedures like exports or invoicing
CREATE SEQUENCE fac_s_user01 MINVALUE 1 NOCACHE;
CREATE SEQUENCE fac_s_user02 MINVALUE 1 NOCACHE;
CREATE SEQUENCE fac_s_user03 MINVALUE 1 NOCACHE;
CREATE SEQUENCE fac_s_user04 MINVALUE 1 NOCACHE;
CREATE SEQUENCE fac_s_user05 MINVALUE 1 NOCACHE;
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: FAC_SEQ.SRC $','$Revision$')

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -4,21 +4,21 @@
*
*/
CREATE_TRIGGER(fac_t_fac_functie_B_I)
BEFORE INSERT ON fac_functie
#define FAC_ERROR_CODE -20999
CREATE_TRIGGER(fac_t_fac_error_B_IU)
BEFORE INSERT OR UPDATE ON fac_error
FOR EACH ROW
BEGIN
APPLICATION_ERROR(FAC_ERROR_CODE, '');
END;
/
CREATE_TRIGGER(fac_t_fac_functie_B_IU)
BEFORE INSERT OR UPDATE ON fac_functie
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_functie_key, fac_s_fac_functie_key);
:new.fac_functie_volgnr :=
CASE
WHEN SUBSTR (:new.fac_functie_code, 8, 3) IN ('USE', 'FOF', 'BOF')
AND SUBSTR (:new.fac_functie_code, 5, 3) <> 'UUR'
THEN 250
WHEN SUBSTR (:new.fac_functie_code, 8, 3) IN ('BAC', 'MAN')
THEN 500
WHEN SUBSTR (:new.fac_functie_code, 8, 3) IN ('BO2', 'BO3', 'AFR', 'NOS', 'OAP')
THEN 750
END;
END;
/
@@ -28,6 +28,7 @@ FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_groep_key, fac_s_fac_groep_key);
:new.fac_groep_upper := UPPER(:new.fac_groep_omschrijving);
:new.fac_groep_aanmaak := SYSDATE;
END;
/
@@ -39,29 +40,6 @@ BEGIN
END;
/
AUDIT_BEGIN(fac_gebruikersgroep)
AUDIT_VALUE(fac_gebruikersgroep, fac_groep_key)
AUDIT_VALUE(fac_gebruikersgroep, prs_perslid_key)
AUDIT_END()
CREATE_TRIGGER(fac_t_fac_email_setting_B_IU)
BEFORE INSERT OR UPDATE ON fac_email_setting
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_email_setting_key, fac_s_fac_email_setting_key);
END;
/
AUDIT_BEGIN(fac_groeprechten)
AUDIT_VALUE(fac_groeprechten, fac_groep_key)
AUDIT_VALUE(fac_groeprechten, fac_functie_key)
AUDIT_VALUE(fac_groeprechten, ins_discipline_key)
AUDIT_VALUE(fac_groeprechten, fac_gebruiker_alg_level_read)
AUDIT_VALUE(fac_groeprechten, fac_gebruiker_prs_level_read)
AUDIT_VALUE(fac_groeprechten, fac_gebruiker_alg_level_write)
AUDIT_VALUE(fac_groeprechten, fac_gebruiker_prs_level_write)
AUDIT_END()
CREATE_TRIGGER(fac_t_fac_groeprechten_B_IU)
BEFORE INSERT OR UPDATE ON fac_groeprechten
FOR EACH ROW
@@ -75,10 +53,6 @@ BEGIN
-- Determine whether we really need to store these values
/* see web_ini for meaning of this bitwise value */
-- Note: the ASP-code does all the checking and fixing
-- This is not very necessary anymore, and does not really help
-- However: if it ain't broke, we don't fix it.
SELECT fac_functie_min_level
INTO funclevel
FROM fac_functie
@@ -155,14 +129,8 @@ BEGIN
OR :new.fac_gebruiker_alg_level_write <> 9)
THEN keepit:=1;
END IF;
-- Slotbetoog: als deze autorisatie niet minsten iets te lezen heeft, mag-ie weg.
-- Omdat de ASP dit voorkomt, is dit een error als vangnet
IF keepit = 1 AND (:new.fac_gebruiker_prs_level_read = 9 OR :new.fac_gebruiker_alg_level_read = 9)
THEN
raise_application_error (-20000, 'FAC_MGG1 this is insufficient authorisation for this right');
END IF;
IF keepit = 0 THEN
Dummy := fac.remember_SavePrimaryKey('FAC_GROEPRECHTEN',:new.fac_groeprechten_key);
IF keepit=0 THEN
Dummy := Fac_P_Fac_Save_Restore.SavePrimaryKey('FAC_GROEPRECHTEN',:new.fac_groeprechten_key);
END IF;
END;
/
@@ -177,16 +145,16 @@ DECLARE
IndexNr NUMBER;
BEGIN
IndexNr := 1;
PrimKey := fac.remember_GetPrimaryKey('FAC_GROEPRECHTEN',IndexNr);
PrimKey := Fac_P_Fac_Save_Restore.GetPrimaryKey('FAC_GROEPRECHTEN',IndexNr);
WHILE PrimKey IS NOT NULL
LOOP
DELETE
FROM FAC_groeprechten
WHERE fac_groeprechten_key = PrimKey;
IndexNr := IndexNr + 1;
PrimKey := fac.remember_GetPrimaryKey('FAC_GROEPRECHTEN',IndexNr);
PrimKey := Fac_P_Fac_Save_Restore.GetPrimaryKey('FAC_GROEPRECHTEN',IndexNr);
END LOOP;
Dummy := fac.remember_ResetSelectie('FAC_GROEPRECHTEN');
Dummy := fac_p_fac_save_restore.ResetSelectie('FAC_GROEPRECHTEN');
END;
/
@@ -198,29 +166,13 @@ BEGIN
END;
/
CREATE_TRIGGER(fac_t_fac_usrtab_B_I)
BEFORE INSERT ON fac_usrtab
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_usrtab_key, fac_s_fac_usrtab_key);
UPDATE_AANMAAKDATUM(fac_usrtab, fac_usrtab_aanmaak);
END;
/
CREATE_TRIGGER(fac_t_fac_usrtab_B_IU)
BEFORE INSERT OR UPDATE ON fac_usrtab
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_usrtab_key, fac_s_fac_usrtab_key);
:new.fac_usrtab_object := 'USR_'||UPPER(:new.fac_usrtab_naam);
END;
/
CREATE_TRIGGER(fac_t_fac_usrdata_B_I)
BEFORE INSERT ON fac_usrdata
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_usrdata_key, fac_s_fac_usrdata_key);
UPDATE_AANMAAKDATUM(fac_usrdata, fac_usrdata_aanmaak);
UPDATE_AANMAAKDATUM(fac_usrtab, fac_usrtab_aanmaak);
END;
/
@@ -228,38 +180,25 @@ CREATE_TRIGGER(fac_t_fac_usrdata_B_IU)
BEFORE INSERT OR UPDATE ON fac_usrdata
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_usrdata_key, fac_s_fac_usrdata_key);
:new.fac_usrdata_upper := UPPER(:new.fac_usrdata_code);
UPDATE_AANMAAKDATUM(fac_usrdata, fac_usrdata_aanmaak);
END;
/
CREATE_TRIGGER(fac_t_fac_usrrap_B_IU)
BEFORE INSERT OR UPDATE ON fac_usrrap
FOR EACH ROW
DECLARE
BEGIN
-- Geeft een 44002 als invalid
:new.fac_usrrap_view_name := DBMS_ASSERT.SQL_OBJECT_NAME(:new.fac_usrrap_view_name);
UPDATE_PRIMARY_KEY(fac_usrrap_key, fac_s_fac_usrrap_key);
UPDATE_AANMAAKDATUM(fac_usrrap, fac_usrrap_aanmaak);
END;
/
CREATE_TRIGGER(fac_t_fac_usrrapcols_B_IU)
BEFORE INSERT OR UPDATE ON fac_usrrap_cols
FOR EACH ROW
DECLARE
BEGIN
UPDATE_PRIMARY_KEY(fac_usrrap_cols_key, fac_s_fac_usrrap_cols_key);
END;
/
CREATE_TRIGGER(fac_t_fac_usrgraph_B_IU)
BEFORE INSERT OR UPDATE ON fac_usrgraph
FOR EACH ROW
DECLARE
BEGIN
-- Geeft een 44002 als invalid
:new.fac_usrgraph_view_name := DBMS_ASSERT.SQL_OBJECT_NAME(:new.fac_usrgraph_view_name);
UPDATE_PRIMARY_KEY(fac_usrgraph_key, fac_s_fac_usrgraph_key);
UPDATE_AANMAAKDATUM(fac_usrgraph, fac_usrgraph_aanmaak);
END;
@@ -283,10 +222,6 @@ BEGIN
END;
/
AUDIT_BEGIN(fac_profiel)
AUDIT_VALUE(fac_profiel, fac_profiel_omschrijving)
AUDIT_VALUE(fac_profiel, fac_profiel_limiet)
AUDIT_END()
CREATE_TRIGGER(fac_t_fac_profiel_B_IU)
BEFORE INSERT OR UPDATE ON fac_profiel
@@ -296,12 +231,6 @@ BEGIN
END;
/
AUDIT_BEGIN(fac_profielwaarde)
AUDIT_VALUE(fac_profielwaarde, fac_profiel_key)
AUDIT_VALUE(fac_profielwaarde, fac_profielwaarde_limiet)
AUDIT_VALUE(fac_profielwaarde, ins_discipline_key)
AUDIT_END()
CREATE_TRIGGER(fac_t_fac_profielwaarde_B_IU)
BEFORE INSERT OR UPDATE ON fac_profielwaarde
FOR EACH ROW
@@ -332,36 +261,26 @@ CREATE_TRIGGER(fac_t_fac_notificatie_B_I)
FOR EACH ROW
DECLARE
loms web_user_messages.web_user_mess_dsc%TYPE;
lxmlnode fac_srtnotificatie.fac_srtnotificatie_xmlnode%TYPE;
BEGIN
-- Kopieer direct naar statusinformatie op de portal indien van toepassing
-- Daarbij worden alle oude berichten (eerst) verwijderd
IF BITAND (:NEW.fac_notificatie_status, 1) = 1 AND :new.prs_perslid_key_receiver IS NOT NULL
THEN
-- strip zodat we alleen de eerste regel overhouden
loms := SUBSTR(:NEW.fac_notificatie_oms, 1, 512);
loms := :NEW.fac_notificatie_oms;
IF INSTR (loms, chr(13)) > 0 THEN
loms := SUBSTR (loms, 1, INSTR (loms, chr(13)) -1);
END IF;
IF INSTR (loms, chr(10)) > 0 THEN
loms := SUBSTR (loms, 1, INSTR (loms, chr(10)) -1);
END IF;
-- Verwijder oudere (achterhaalde) portalberichten over hetzelfde
IF :NEW.fac_srtnotificatie_key IS NOT NULL
THEN
SELECT fac_srtnotificatie_xmlnode
INTO lxmlnode
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_key = :NEW.fac_srtnotificatie_key;
-- Verwijder oude gelijkluidende berichten
-- Noot: die check op _dsc voorkomt dat bij meerdere bezoekers alleen de laatste overblijft
DELETE FROM web_user_messages
WHERE fac_srtnotificatie_key = :NEW.fac_srtnotificatie_key
AND prs_perslid_key_receiver = :NEW.prs_perslid_key_receiver
AND web_user_mess_action_params = :NEW.fac_notificatie_refkey
AND web_user_mess_dsc = loms;
DELETE FROM web_user_messages
WHERE fac_srtnotificatie_key IN
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_xmlnode = lxmlnode)
AND prs_perslid_key_receiver = :NEW.prs_perslid_key_receiver
AND web_user_mess_action_params = COALESCE (:NEW.fac_notificatie_extrakey, :NEW.fac_notificatie_refkey);
END IF;
-- En voeg de nieuwe toe. Let op: als een extrakey bekend is, wordt die als parameter gebruikt, anders gewoon refkey
INSERT INTO web_user_messages
(prs_perslid_key_sender, prs_perslid_key_receiver, web_user_mess_dsc, web_user_mess_action_status,
@@ -372,9 +291,9 @@ BEGIN
:NEW.fac_notificatie_prioriteit
);
-- Clear the notify_to_statinfo bit
:NEW.fac_notificatie_status := BITAND (:NEW.fac_notificatie_status, 255 - 1);
END IF;
-- Always clear the notify_to_statinfo bit, even when no :new.prs_perslid_key_receiver
:NEW.fac_notificatie_status := BITAND (:NEW.fac_notificatie_status, 255 - 1);
END;
/
@@ -395,14 +314,6 @@ BEGIN
END;
/
CREATE_TRIGGER(fac_t_fac_export_app_B_IU)
BEFORE INSERT OR UPDATE ON fac_export_app
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_export_app_key, fac_s_fac_export_app_key);
END;
/
CREATE_TRIGGER(fac_t_fac_import_app_B_IU)
BEFORE INSERT OR UPDATE ON fac_import_app
FOR EACH ROW
@@ -410,17 +321,16 @@ BEGIN
UPDATE_PRIMARY_KEY(fac_import_app_key, fac_s_fac_import_app_key);
END;
/
CREATE_TRIGGER(fac_t_fac_import_B_I)
BEFORE INSERT ON fac_import
CREATE_TRIGGER(fac_t_fac_import_B_IU)
BEFORE INSERT OR UPDATE ON fac_import
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_import_key, fac_s_fac_import_key);
END;
/
CREATE_TRIGGER(fac_t_imp_log_B_I)
BEFORE INSERT ON imp_log
CREATE_TRIGGER(fac_t_imp_log_B_IU)
BEFORE INSERT OR UPDATE ON imp_log
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(imp_log_key, imp_s_imp_log_key);
@@ -436,8 +346,6 @@ BEGIN
scode fac_srtnotificatie.fac_srtnotificatie_code%TYPE;
smode fac_srtnotificatie.fac_srtnotificatie_mode%TYPE;
sappl imp_log.imp_log_applicatie%TYPE;
pkey prs_perslid.prs_perslid_key%TYPE;
l_naam_friendly prs_v_perslid_fullnames_all.prs_perslid_naam_friendly%TYPE;
BEGIN
IF :NEW.imp_log_status = 'F'
THEN
@@ -471,22 +379,7 @@ BEGIN
AND fi.fac_import_key = :NEW.fac_import_key;
END IF;
l_naam_friendly := ''; -- 'User unknown'
pkey := fac.safe_to_number(sys_context('USERENV', 'CLIENT_IDENTIFIER'));
IF pkey > 0 THEN
BEGIN
SELECT prs_perslid_naam_friendly
INTO l_naam_friendly
FROM prs_v_perslid_fullnames_all
WHERE prs_perslid_key = pkey;
l_naam_friendly := ' (' || l_naam_friendly || ', key ' || pkey || ')';
EXCEPTION
WHEN NO_DATA_FOUND -- for putorders a.o. this is unknown
THEN l_naam_friendly := '??Perslid ' || pkey || ' not found ??';
END;
END IF;
fac.putsystemnotification (sappl||': '||:NEW.imp_log_omschrijving || ' ' || l_naam_friendly, smode);
fac.putsystemnotification (sappl||': '||:NEW.imp_log_omschrijving, smode);
END IF;
END;
END;
@@ -501,36 +394,14 @@ BEGIN
END;
/
AUDIT_BEGIN(fac_setting)
AUDIT_VALUE(fac_setting, fac_setting_pvalue)
AUDIT_END()
CREATE_TRIGGER(fac_t_fac_setting_B_IU)
BEFORE INSERT or UPDATE ON fac_setting
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_setting_key, fac_s_fac_setting_key);
IF :new.fac_setting_datum IS NULL OR
COALESCE(:OLD.fac_setting_pvalue,'undefined') <> COALESCE(:NEW.fac_setting_pvalue,'undefined') OR
COALESCE(:OLD.fac_setting_default,'undefined') <> COALESCE(:NEW.fac_setting_default,'undefined')
THEN
-- Datum bijwerken is belangrijk omdat webserver op basis hiervan
-- eventueel versneld zijn settings-cache refreshed
:new.fac_setting_datum := SYSDATE;
END IF;
UPDATE_AANMAAKDATUM(fac_setting, fac_setting_datum);
:new.fac_setting_module := UPPER(:new.fac_setting_module);
:new.fac_setting_name := LOWER(:new.fac_setting_name);
:new.prs_perslid_key := sys_context('USERENV', 'CLIENT_IDENTIFIER');
-- Het kan geen kwaad om wijzigingen te tracken
IF :new.fac_setting_datum <> :old.fac_setting_datum
THEN
INSERT INTO adm_tracking (adm_tracking_name, adm_tracking_revision, adm_tracking_osuser)
VALUES (SUBSTR('S('||:new.fac_setting_name||')', 1, 60),
SUBSTR(:new.fac_setting_pvalue, 1, 60),
:new.prs_perslid_key -- we gaan de naam er niet bijzoeken hoor
);
END IF;
-- :new.fac_setting_name := LOWER(:new.fac_setting_name); db15to16.asp kan niet tegen lowercase
END;
/
@@ -543,15 +414,6 @@ BEGIN
END;
/
CREATE_TRIGGER(fac_t_fac_qvw_ticket_B_I)
BEFORE INSERT ON fac_qvw_ticket
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_qvw_ticket_key, fac_s_fac_qvw_ticket_key);
END;
/
CREATE_TRIGGER(fac_t_fac_tracking_b_i)
BEFORE INSERT ON fac_tracking
FOR EACH ROW
@@ -564,7 +426,7 @@ BEGIN
-- bedoeld om te onderdrukken, maar moeten we wel weer verwijderen
:new.fac_tracking_oms := SUBSTR(:new.fac_tracking_oms, 2);
-- Moet ik nou nog iets doen om NULL te maken als dit alleen de # was?
-- En nu dus niet notificeren
-- En nu dus niet tracken
ELSE
fac.notifytracking(:new.fac_srtnotificatie_key, :new.prs_perslid_key, :new.fac_tracking_oms, :new.fac_tracking_refkey);
END IF;
@@ -586,13 +448,6 @@ BEGIN
UPDATE_PRIMARY_KEY(fac_menu_key, fac_s_fac_menu_key);
END;
/
CREATE_TRIGGER(fac_t_fac_nieuws_groep_b_iu)
BEFORE INSERT OR UPDATE ON fac_nieuws_groep
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_nieuws_groep_key, fac_s_fac_nieuws_groep_key);
END;
/
CREATE_TRIGGER(fac_t_fac_nieuws__b_iu)
BEFORE INSERT OR UPDATE ON fac_nieuws
FOR EACH ROW
@@ -605,7 +460,6 @@ BEFORE INSERT OR UPDATE ON fac_faq
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_faq_key, fac_s_fac_faq_key);
:new.fac_faq_wijzigdatum := SYSDATE;
END;
/
CREATE_TRIGGER(fac_t_fac_locale_b_iu)
@@ -625,6 +479,14 @@ BEGIN
:new.fac_localeitems_dialect_id := UPPER (:new.fac_localeitems_dialect_id);
END;
/
CREATE_TRIGGER(fac_t_fac_locale_mgt_b_iu)
BEFORE INSERT OR UPDATE ON fac_locale_mgt
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_locale_mgt_key, fac_s_fac_locale_mgt_key);
:new.fac_locale_mgt_lang := UPPER (:new.fac_locale_mgt_lang);
END;
/
CREATE_TRIGGER(fac_t_fac_locale_xsl_b_iu)
BEFORE INSERT OR UPDATE ON fac_locale_xsl
FOR EACH ROW
@@ -650,14 +512,14 @@ DECLARE
objecttype user_objects.object_type%TYPE;
BEGIN
UPDATE_PRIMARY_KEY(fac_kenmerkdomein_key, fac_s_fac_kenmerkdomein_key);
:new.fac_kenmerkdomein_upper := UPPER(:new.fac_kenmerkdomein_omschrijving);
:new.fac_kenmerkdomein_module := UPPER(:new.fac_kenmerkdomein_module);
:new.fac_kenmerkdomein_xmlnode := LOWER(:new.fac_kenmerkdomein_xmlnode);
:new.fac_kenmerkdomein_upper := UPPER(:new.fac_kenmerkdomein_omschrijving);
:new.fac_kenmerkdomein_module := UPPER(:new.fac_kenmerkdomein_module);
:new.fac_kenmerkdomein_xmlnode := LOWER(:new.fac_kenmerkdomein_xmlnode);
BEGIN
SELECT object_type
INTO objecttype
FROM user_objects
WHERE UPPER(object_name) = UPPER(DBMS_ASSERT.SQL_OBJECT_NAME(:new.fac_kenmerkdomein_objectnaam));
WHERE object_name = :new.fac_kenmerkdomein_objectnaam;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
@@ -666,7 +528,7 @@ BEGIN
IF objecttype IS NULL
THEN
raise_application_error (-20000, 'FAC_MXX3 Invalid object');
raise_application_error (-20000, 'ALG_M235');
ELSIF objecttype IN ('TABLE', 'VIEW')
THEN
DECLARE
@@ -706,14 +568,6 @@ BEGIN
END;
/
CREATE_TRIGGER(fac_t_fac_kenmwaarden_B_IU)
BEFORE INSERT OR UPDATE ON fac_kenmwaarden
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_kenmwaarden_key, fac_s_fac_kenmwaarden_key);
END;
/
CREATE_TRIGGER(fac_t_fac_widget_B_IU)
BEFORE INSERT OR UPDATE ON fac_widget
FOR EACH ROW
@@ -738,274 +592,4 @@ BEGIN
UPDATE_PRIMARY_KEY(fac_api_key, fac_s_fac_api_key);
END;
/
CREATE_TRIGGER(fac_t_fac_audit_b_i)
BEFORE INSERT ON fac_audit
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_audit_key, fac_s_fac_audit_key);
END;
/
CREATE_TRIGGER(fac_t_fac_auditfail_b_i)
BEFORE INSERT ON fac_auditfail
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_auditfail_key, fac_s_fac_auditfail_key);
END;
/
CREATE_TRIGGER(faq_t_faq_kenmerkwaarde_b_iu)
BEFORE INSERT OR UPDATE ON faq_kenmerkwaarde
FOR EACH ROW
BEGIN
UPDATE_AANMAAKDATUM(faq_kenmerkwaarde, faq_kenmerkwaarde_aanmaak);
/*
** Controleer eerst of de ingevulde waarde goed is.
*/
IF :new.faq_kenmerkwaarde_waarde <> :old.faq_kenmerkwaarde_waarde
OR :old.faq_kenmerkwaarde_waarde IS NULL
OR :new.faq_kenmerkwaarde_waarde IS NULL
THEN
DECLARE
KenmerkOmschr faq_kenmerk.faq_kenmerk_omschrijving%TYPE;
KenmerkType faq_kenmerk.faq_kenmerk_kenmerktype%TYPE;
KenmerkLengte faq_kenmerk.faq_kenmerk_lengte%TYPE;
KenmerkDec faq_kenmerk.faq_kenmerk_dec%TYPE;
KenmerkNMin faq_kenmerk.faq_kenmerk_nmin%TYPE;
KenmerkNMax faq_kenmerk.faq_kenmerk_nmax%TYPE;
NumberWaarde NUMBER(25,5);
FormatMask VARCHAR2(60);
KenmerkWaarde faq_kenmerkwaarde.faq_kenmerkwaarde_waarde%TYPE;
BEGIN
KenmerkWaarde := :new.faq_kenmerkwaarde_waarde;
BEGIN
DECLARE
dummy VARCHAR2(1);
BEGIN
SELECT faq_kenmerk_omschrijving
, faq_kenmerk_kenmerktype
, faq_kenmerk_lengte
, faq_kenmerk_dec
, faq_kenmerk_nmin
, faq_kenmerk_nmax
INTO KenmerkOmschr
, KenmerkType
, KenmerkLengte
, KenmerkDec
, KenmerkNMin
, KenmerkNMax
FROM faq_kenmerk
WHERE faq_kenmerk_key = :new.faq_kenmerk_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN APPLICATION_ERROR_GOTO(-20000,'INS_R_INS_KENMERK_KEY1');
END;
/* Kijk welk KenmerkType gebruikt wordt.
** Aan de hand daarvan moet een controle uitgevoerd worden.
**/
IF KenmerkType = 'C'
/*
** Char
*/
THEN
/*
** Controleer of de lengte te groot of goed is
*/
IF LENGTH(KenmerkWaarde) > KenmerkLengte
THEN
APPLICATION_ERROR(-20004, 'faq_m232,'|| KenmerkOmschr ||','
|| TO_CHAR(KenmerkLengte));
END IF;
ELSIF KenmerkType IN ('N', 'B')
/*
** Number
*/
THEN
/*
** Controleer of er een numerieke waarde ingevuld is
*/
IF KenmerkDec IS NULL OR KenmerkDec = 0
THEN
FormatMask := RPAD('9', KenmerkLengte, '9');
ELSE
FormatMask := RPAD('9', KenmerkLengte - KenmerkDec, '9')
||'D'||RPAD('9', KenmerkDec, '9');
END IF;
/*
** Controleer of er een numerieke waarde ingevuld is
*/
BEGIN
NumberWaarde := TO_NUMBER(KenmerkWaarde);
EXCEPTION
WHEN OTHERS
THEN FormatMask := REPLACE(FormatMask, '9', '#');
FormatMask := REPLACE(FormatMask, '0', '#');
FormatMask := REPLACE(FormatMask, 'D', '.');
RAISE_APPLICATION_ERROR(-20004,'faq_m233,'|| KenmerkOmschr ||','
|| FormatMask);
END;
/*
** Controleer of de waarde binnen NMin en NMax ligt
*/
IF ( (KenmerkNMin IS NOT NULL AND NumberWaarde < KenmerkNMin)
OR (KenmerkNMax IS NOT NULL AND NumberWaarde > KenmerkNMax))
THEN
APPLICATION_ERROR_GOTO(-20004, 'faq_m234,'|| KenmerkOmschr ||','
|| TO_CHAR(KenmerkNMin)||','
|| TO_CHAR(KenmerkNMax));
ELSE
/*
** Controleer of de waarde aan het formaat voldoet
*/
KenmerkWaarde := LTRIM(NUMBER_TO_CHAR(NumberWaarde, FormatMask));
IF INSTR2(KenmerkWaarde, '#') <> 0
THEN
FormatMask := REPLACE(FormatMask, '9', '#');
FormatMask := REPLACE(FormatMask, '0', '#');
FormatMask := REPLACE(FormatMask, 'D', '.');
APPLICATION_ERROR_GOTO(-20004,'faq_m233,'|| KenmerkOmschr ||','
|| FormatMask);
END IF;
END IF;
/*
** Zet de geconverteerde waarde terug
*/
:new.faq_kenmerkwaarde_waarde := KenmerkWaarde;
ELSIF KenmerkType = 'D'
/*
** Datum
*/
THEN
KenmerkWaarde := DATE_TO_CHAR(_TO_DATE2(KenmerkWaarde,'DD-MM-YY'),'DD-MM-YYYY');
/*
** Zet de geconverteerde waarde terug
*/
:new.faq_kenmerkwaarde_waarde := KenmerkWaarde;
END IF;
END;
END;
UPDATE_PRIMARY_KEY(faq_kenmerkwaarde_key, faq_s_faq_kenmerkwaarde_key);
END IF;
END;
/
CREATE_TRIGGER(faq_t_faq_kenmerk_b_iu)
BEFORE INSERT OR UPDATE ON faq_kenmerk
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(faq_kenmerk_key, faq_s_faq_kenmerk_key);
UPDATE_UPPER(faq_kenmerk_omschrijving, faq_kenmerk_upper,faq_kenmerk);
IF (:new.faq_kenmerk_verwijder IS NOT NULL AND :old.faq_kenmerk_verwijder IS NULL AND
:new.faq_kenmerk_systeem = 1)
THEN
APPLICATION_ERROR(-20003, 'faq_m238');
END IF;
IF :new.faq_kenmerk_kenmerktype IN ('C','N', 'B') AND :new.faq_kenmerk_lengte IS NULL
THEN
APPLICATION_ERROR(-20000, 'FAQ_C_FAQ_KENMERK_LENGTE');
END IF;
IF :new.faq_kenmerk_kenmerktype IN ('N', 'B') AND :new.faq_kenmerk_lengte > 20
THEN
:new.faq_kenmerk_lengte := 20;
END IF;
IF :new.faq_kenmerk_kenmerktype IN ('N', 'B') AND :old.faq_kenmerk_key IS NOT NULL
THEN
IF :old.faq_kenmerk_nmin <> :new.faq_kenmerk_nmin OR
:old.faq_kenmerk_nmin IS NULL AND :new.faq_kenmerk_nmin IS NOT NULL
THEN
DECLARE
Dummy CHAR;
BEGIN
SELECT 'X'
INTO Dummy
FROM faq_kenmerkwaarde
WHERE faq_kenmerk_key = :old.faq_kenmerk_key
AND faq_kenmerk_key IN
(SELECT faq_kenmerk_key FROM faq_kenmerkwaarde
WHERE faq_kenmerk_key = :old.faq_kenmerk_key
AND FAC.SAFE_TO_NUMBER(faq_kenmerkwaarde_waarde) < :new.faq_kenmerk_nmin
AND rownum=1);
APPLICATION_ERROR(-20000, 'FAQ_C_FAQ_KENMERK_MIN');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS THEN
APPLICATION_ERROR(-20000, 'FAQ_C_FAQ_KENMERK_MIN');
END;
END IF;
IF :old.faq_kenmerk_nmax <> :new.faq_kenmerk_nmax OR
:old.faq_kenmerk_nmax IS NULL AND :new.faq_kenmerk_nmax IS NOT NULL
THEN
DECLARE
Dummy CHAR;
BEGIN
SELECT 'X'
INTO Dummy
FROM faq_kenmerkwaarde
WHERE faq_kenmerk_key = :old.faq_kenmerk_key
AND faq_kenmerk_key IN
(SELECT faq_kenmerk_key FROM faq_kenmerkwaarde
WHERE faq_kenmerk_key = :old.faq_kenmerk_key
AND FAC.SAFE_TO_NUMBER(faq_kenmerkwaarde_waarde) > :new.faq_kenmerk_nmax
AND rownum=1);
APPLICATION_ERROR(-20000, 'FAQ_C_FAQ_KENMERK_MAX');
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS THEN
BEGIN
APPLICATION_ERROR(-20000, 'FAQ_C_FAQ_KENMERK_MAX');
END;
END;
END IF;
END IF;
UPDATE_AANMAAKDATUM(faq_kenmerk, faq_kenmerk_aanmaak);
END;
/
CREATE_TRIGGER(fac_t_fac_gui_counter_b_i)
BEFORE INSERT ON fac_gui_counter
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_gui_counter_key, faq_s_fac_gui_counter_key);
END;
/
CREATE_TRIGGER(fac_t_fac_bookmark_B_I)
BEFORE INSERT ON fac_bookmark
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_bookmark_key, fac_s_fac_bookmark_key);
END;
/
CREATE_TRIGGER(fac_t_fac_session_B_I)
BEFORE INSERT ON fac_session
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_session_key, fac_s_fac_session_key);
END;
/
CREATE_TRIGGER(fac_t_fac_sequence_B_I)
BEFORE INSERT ON fac_sequence
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_sequence_key, fac_s_fac_sequence_key);
END;
/
CREATE_TRIGGER(fac_t_fac_bijlagen_B_I)
BEFORE INSERT ON fac_bijlagen
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_bijlagen_key, fac_s_fac_bijlagen_key);
IF :new.fac_bijlagen_root_key IS NULL THEN
:new.fac_bijlagen_root_key := :new.fac_bijlagen_key;
END IF;
END;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: FAC_TRI.SRC $','$Revision$')

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

120
FCLT.NMK
View File

@@ -1,9 +1,9 @@
###############################################################################
## MAK\SQL\FCLT.NMK
##
## Project: FACILITOR
## Project: SM44 Facilitor
##
## (c) 1996-2019 Aareon Nederland B.V.
## (c) 1995-2012 SG|facilitor bv
##
## Auteur: Ir. P.G. Feij
## $Revision$
@@ -25,7 +25,7 @@
## CL.EXE
## Microsoft (R) C Optimizing Compiler Version 6.00A
## -for precompiling only-
## WRAP.EXE (from 10.2.x or better) for Oracle
## WRAP.EXE (from 10.2.x) for Oracle, renamed to WRAP10.EXE
##
## SED.EXE
## GNU sed version 4.2
@@ -44,7 +44,7 @@
###############################################################################
##
## Steps performed are:
## All files are preprocessed using intermediate temp files
## All files are preprocessed directly into their result, no temp files
#############
@@ -60,10 +60,10 @@ PROJEXE=z:\Project\FACILITOR\BUILD
##
## New style using schemanumbers
##
CURRENTVERSION=37
NEXTVERSION=38
FILEVERSION=
NEXTCAREVERSION=35
CURRENTVERSION=15
NEXTVERSION=16
FILEVERSION=c
NEXTCAREVERSION=19
NEXTROOT=DB$(NEXTVERSION)$(FILEVERSION)
CURRENTUPDATE=DB$(CURRENTVERSION)to$(NEXTVERSION)
@@ -86,9 +86,10 @@ EXE=$(PROJEXE)
### TOOL DEFINES (gets info from OS-environment) ###
PRECOMP=$(MAKTOOLS)\CL
WRAP1=$(MAKTOOLS)\WRAP.EXE
PRECOMP_OPTIONS=/EP /D_VER=$(CURRENTUPDATE)$(FILEVERSION) /D_DBV=$(NEXTVERSION)$(FILEVERSION)
CLEANUP1=$(MAKTOOLS)\sedclean.bat
WRAP1=$(MAKTOOLS)\WRAP10.EXE
PRECOMP_OPTIONS=/EP /D_VER=$(CURRENTUPDATE) /D_DBV=$(NEXTVERSION)
CLEANUP1=$(MAKTOOLS)\sed.exe "/^ *$$/d" -i
CLEANUP2=$(MAKTOOLS)\sed.exe "s/~/\n/g" -i
##
## DEPENDENCIES
@@ -119,15 +120,10 @@ $(EXE)\$(NEXTROOT)\FCLT$(NEXTVERSION)$(FILEVERSION).SQL: \
$(MSRC)\ins\inssql.h \
$(MSRC)\alg\alg_ind.src \
$(MSRC)\alg\alg_ini.src \
$(MSRC)\alg\alg_pac.src \
$(MSRC)\alg\alg_seq.src \
$(MSRC)\alg\alg_tab.src \
$(MSRC)\alg\alg_tri.src \
$(MSRC)\alg\alg_vie.src \
$(MSRC)\aut\aut_ind.src \
$(MSRC)\aut\aut_seq.src \
$(MSRC)\aut\aut_tab.src \
$(MSRC)\aut\aut_tri.src \
$(MSRC)\bes\bes_ind.src \
$(MSRC)\bes\bes_ini.src \
$(MSRC)\bes\bes_pac.src \
@@ -142,13 +138,6 @@ $(EXE)\$(NEXTROOT)\FCLT$(NEXTVERSION)$(FILEVERSION).SQL: \
$(MSRC)\bez\bez_tab.src \
$(MSRC)\bez\bez_tri.src \
$(MSRC)\bez\bez_vie.src \
$(MSRC)\bgt\bgt_ind.src \
$(MSRC)\bgt\bgt_ini.src \
$(MSRC)\bgt\bgt_pac.src \
$(MSRC)\bgt\bgt_seq.src \
$(MSRC)\bgt\bgt_tab.src \
$(MSRC)\bgt\bgt_tri.src \
$(MSRC)\bgt\bgt_vie.src \
$(MSRC)\cad\cad_ind.src \
$(MSRC)\cad\cad_ini.src \
$(MSRC)\cad\cad_pac.src \
@@ -156,10 +145,6 @@ $(EXE)\$(NEXTROOT)\FCLT$(NEXTVERSION)$(FILEVERSION).SQL: \
$(MSRC)\cad\cad_tab.src \
$(MSRC)\cad\cad_tri.src \
$(MSRC)\cad\cad_vie.src \
$(MSRC)\cnd\cnd_tab.src \
$(MSRC)\cnd\cnd_pac.src \
$(MSRC)\cnd\cnd_tri.src \
$(MSRC)\cnd\cnd_vie.src \
$(MSRC)\cnt\cnt_ind.src \
$(MSRC)\cnt\cnt_ini.src \
$(MSRC)\cnt\cnt_pac.src \
@@ -167,50 +152,32 @@ $(EXE)\$(NEXTROOT)\FCLT$(NEXTVERSION)$(FILEVERSION).SQL: \
$(MSRC)\cnt\cnt_tab.src \
$(MSRC)\cnt\cnt_tri.src \
$(MSRC)\cnt\cnt_vie.src \
$(MSRC)\ctr\ctr_ind.src \
$(MSRC)\ctr\ctr_ini.src \
$(MSRC)\ctr\ctr_pac.src \
$(MSRC)\ctr\ctr_seq.src \
$(MSRC)\ctr\ctr_tab.src \
$(MSRC)\ctr\ctr_tri.src \
$(MSRC)\ctr\ctr_vie.src \
$(MSRC)\fac\fac_ind.src \
$(MSRC)\fac\fac_ini.src \
$(MSRC)\fac\fac_lcl.src \
$(MSRC)\fac\fac_lclhints.src \
$(MSRC)\fac\fac_lclasp.src \
$(MSRC)\fac\fac_set.src \
$(MSRC)\fac\fac_pac.src \
$(MSRC)\fac\fac_paca.src \
$(MSRC)\fac\fac_pacx.src \
$(MSRC)\fac\fac_pacf.src \
$(MSRC)\fac\fac_pacl.src \
$(MSRC)\fac\fac_pacflex.src \
$(MSRC)\fac\fac_seq.src \
$(MSRC)\fac\fac_tab.src \
$(MSRC)\fac\fac_tri.src \
$(MSRC)\fac\fac_vie.src \
$(MSRC)\ins\ins_ind.src \
$(MSRC)\ins\ins_ini.src \
$(MSRC)\ins\ins_lcl.src \
$(MSRC)\ins\ins_pac.src \
$(MSRC)\ins\ins_seq.src \
$(MSRC)\ins\ins_tab.src \
$(MSRC)\ins\ins_tri.src \
$(MSRC)\ins\ins_vie.src \
$(MSRC)\kpi\kpi_ind.src \
$(MSRC)\kpi\kpi_ini.src \
$(MSRC)\kpi\kpi_pac.src \
$(MSRC)\kpi\kpi_seq.src \
$(MSRC)\kpi\kpi_tab.src \
$(MSRC)\kpi\kpi_tri.src \
$(MSRC)\kpi\kpi_vie.src \
$(MSRC)\mld\mld_ind.src \
$(MSRC)\mld\mld_ini.src \
$(MSRC)\mld\mld_lcl.src \
$(MSRC)\mld\mld_pac.src \
$(MSRC)\mld\mld_seq.src \
$(MSRC)\mld\mld_tab.src \
$(MSRC)\mld\mld_typ.src \
$(MSRC)\mld\mld_tri.src \
$(MSRC)\mld\mld_vie.src \
$(MSRC)\mrk\mrk_ind.src \
@@ -248,6 +215,13 @@ $(EXE)\$(NEXTROOT)\FCLT$(NEXTVERSION)$(FILEVERSION).SQL: \
$(MSRC)\prs\prs_tab.src \
$(MSRC)\prs\prs_tri.src \
$(MSRC)\prs\prs_vie.src \
$(MSRC)\sch\sch_ind.src \
$(MSRC)\sch\sch_ini.src \
$(MSRC)\sch\sch_pac.src \
$(MSRC)\sch\sch_seq.src \
$(MSRC)\sch\sch_tab.src \
$(MSRC)\sch\sch_tri.src \
$(MSRC)\sch\sch_vie.src \
$(MSRC)\res\res_ind.src \
$(MSRC)\res\res_ini.src \
$(MSRC)\res\res_lcl.src \
@@ -263,16 +237,10 @@ $(EXE)\$(NEXTROOT)\FCLT$(NEXTVERSION)$(FILEVERSION).SQL: \
$(MSRC)\web\web_tab.src \
$(MSRC)\web\web_tri.src \
$(MSRC)\web\web_vie.src
@IF NOT EXIST $(EXE)\$(NEXTROOT)\NUL mkdir $(EXE)\$(NEXTROOT)
$(PRECOMP) $(PRECOMP_OPTIONS) $(MSRC)\fclt.src>$(TEMP)\$(*B)_.sql
$(CLEANUP1) $(TEMP)\$(*B)_.sql
COPY $(TEMP)\$(*B)_.sql $(EXE)\$(NEXTROOT)\FCLT$(NEXTVERSION)$(FILEVERSION)_.SQL
## $(WRAP1) iname=$(TEMP)\$(*B)_.sql oname=$(TEMP)\$(*B).sql
COPY $(TEMP)\$(*B).sql $(EXE)\$(NEXTROOT)\FCLT$(NEXTVERSION)$(FILEVERSION).SQL
$(MSRC)\fac\_fac_lclmdl.src: \
$(MSRC)\fac\fac_lclmdl.csv
cscript /nologo $(MSRC)\fac\parse_fac_lclmld.js $** >$@
$(PRECOMP) $(PRECOMP_OPTIONS) $(MSRC)\fclt.src>$*_.sql
$(CLEANUP1) $*_.sql
$(CLEANUP2) $*_.sql
$(WRAP1) iname=$*_.sql oname=$*.sql
##########################################################################
#### UPDATES CONSIST OF UPDATE AND RECREATE scripts
@@ -285,12 +253,10 @@ $(EXE)\$(NEXTROOT)\$(CURRENTUPDATE)$(FILEVERSION).SQL: \
$(MSRC)\fclt.src \
$(MSRC)\comsql.h \
$(EXE)\$(NEXTROOT)\FCLT$(NEXTVERSION)$(FILEVERSION).sql
@IF NOT EXIST $(EXE)\$(NEXTROOT)\NUL mkdir $(EXE)\$(NEXTROOT)
$(PRECOMP) $(PRECOMP_OPTIONS) $(SRCUPDATE).src>$(TEMP)\$(*B)_.sql
$(CLEANUP1) $(TEMP)\$(*B)_.sql
COPY $(TEMP)\$(*B)_.sql $(EXE)\$(NEXTROOT)\$(CURRENTUPDATE)$(FILEVERSION)_.SQL
$(WRAP1) iname=$(TEMP)\$(*B)_.sql oname=$(TEMP)\$(*B).sql
COPY $(TEMP)\$(*B).sql $(EXE)\$(NEXTROOT)\$(CURRENTUPDATE)$(FILEVERSION).SQL
$(PRECOMP) $(PRECOMP_OPTIONS) $(SRCUPDATE).src>$*_.sql
$(CLEANUP1) $*_.sql
$(CLEANUP2) $*_.sql
$(WRAP1) iname=$*_.sql oname=$*.sql
$(EXE)\$(NEXTROOT)\RECRE$(NEXTVERSION)$(FILEVERSION).SQL: \
$(SRCRECREA).src \
@@ -299,12 +265,10 @@ $(EXE)\$(NEXTROOT)\RECRE$(NEXTVERSION)$(FILEVERSION).SQL: \
$(MSRC)\fclt.src \
$(MSRC)\comsql.h \
$(EXE)\$(NEXTROOT)\FCLT$(NEXTVERSION)$(FILEVERSION).sql
@IF NOT EXIST $(EXE)\$(NEXTROOT)\NUL mkdir $(EXE)\$(NEXTROOT)
$(PRECOMP) $(PRECOMP_OPTIONS) $(SRCRECREA).src>$(TEMP)\$(*B)_.sql
$(CLEANUP1) $(TEMP)\$(*B)_.sql
COPY $(TEMP)\$(*B)_.sql $(EXE)\$(NEXTROOT)\RECRE$(NEXTVERSION)$(FILEVERSION)_.SQL
$(WRAP1) iname=$(TEMP)\$(*B)_.sql oname=$(TEMP)\$(*B).sql
COPY $(TEMP)\$(*B).sql $(EXE)\$(NEXTROOT)\RECRE$(NEXTVERSION)$(FILEVERSION).SQL
$(PRECOMP) $(PRECOMP_OPTIONS) $(SRCRECREA).src>$*_.sql
$(CLEANUP1) $*_.sql
$(CLEANUP2) $*_.sql
$(WRAP1) iname=$*_.sql oname=$*.sql
##########################################################################
@@ -321,12 +285,10 @@ $(EXE)\CARE\CARE$(NEXTCAREVERSION).SQL: \
$(MSRC)\care\care_vie.src \
$(MSRC)\care\care_pac.src \
$(MSRC)\care\care_ini.src
@IF NOT EXIST $(EXE)\CARE\NUL mkdir $(EXE)\CARE
$(PRECOMP) $(PRECOMP_OPTIONS) $(MSRC)\care.src>$(TEMP)\$(*B)_.sql
$(CLEANUP1) $(TEMP)\$(*B)_.sql
COPY $(TEMP)\$(*B)_.sql $(EXE)\CARE\CARE$(NEXTCAREVERSION)_.SQL
$(WRAP1) iname=$(TEMP)\$(*B)_.sql oname=$(TEMP)\$(*B).sql
COPY $(TEMP)\$(*B).sql $(EXE)\CARE\CARE$(NEXTCAREVERSION).SQL
$(PRECOMP) $(PRECOMP_OPTIONS) $(MSRC)\care.src>$*_.sql
$(CLEANUP1) $*_.sql
$(CLEANUP2) $*_.sql
$(WRAP1) iname=$*_.sql oname=$*.sql
$(EXE)\CARE\RECAR$(NEXTCAREVERSION).SQL: \
$(CARERECREA).src \
@@ -334,11 +296,9 @@ $(EXE)\CARE\RECAR$(NEXTCAREVERSION).SQL: \
$(MSRC)\care.src \
$(MSRC)\comsql.h \
$(EXE)\CARE\CARE$(NEXTCAREVERSION).sql
@IF NOT EXIST $(EXE)\CARE\NUL mkdir $(EXE)\CARE
$(PRECOMP) $(PRECOMP_OPTIONS) $(CARERECREA).src>$(TEMP)\$(*B)_.sql
$(CLEANUP1) $(TEMP)\$(*B)_.sql
COPY $(TEMP)\$(*B)_.sql $(EXE)\CARE\RECAR$(NEXTCAREVERSION)_.SQL
$(WRAP1) iname=$(TEMP)\$(*B)_.sql oname=$(TEMP)\$(*B).sql
COPY $(TEMP)\$(*B).sql $(EXE)\CARE\RECAR$(NEXTCAREVERSION).SQL
$(PRECOMP) $(PRECOMP_OPTIONS) $(CARERECREA).src>$*_.sql
$(CLEANUP1) $*_.sql
$(CLEANUP2) $*_.sql
$(WRAP1) iname=$*_.sql oname=$*.sql
## END-OF-FILE

View File

@@ -1,11 +1,12 @@
-- [CREA*.SQL]
--
-- Script tbv het aanmaken van de Facilitor omgeving in Oracle
-- Copyright 1996-2012 SG|facilitor bv.
-- All rights reserved!
/*
* $Revision$
* $Id$
*
* Script to initialise a FACILITOR database schema in Oracle
*/
#define FCLT_CREATE
#include "modules.h"
#include "comsql.h"
@@ -13,10 +14,10 @@ SET TIME ON
SET HEADING OFF
SET FEEDBACK OFF
SET ECHO OFF
SET SERVEROUTPUT ON SIZE UNLIMITED;
#define _MKVER(a) STRINGIZE(a)
column fcltlogfile new_value fcltlogfile NOPRINT;
select 'FACILITOR'|| _DBV_STRING || '_' || UPPER(USER || '_' || sys_context('USERENV', 'SERVICE_NAME') || '_' || sys_context('USERENV', 'SERVER_HOST')) || '_' || to_char(sysdate,'YYYYMMDD_HH24MISS') || '.lst' as fcltlogfile from dual;
select 'FACILITOR'||_MKVER(_DBV) || '_' || UPPER(USER || '_' || sys_context('USERENV', 'SERVICE_NAME') || '_' || sys_context('USERENV', 'SERVER_HOST')) || '_' || to_char(sysdate,'YYYYMMDD_HH24MISS') || '.lst' as fcltlogfile from dual;
spool &fcltlogfile
WHENEVER SQLERROR EXIT;
@@ -38,34 +39,25 @@ BEGIN
|| '=================================================================' || CHR(10);
RAISE_APPLICATION_ERROR(-20000, 'OR'||'A-' || CHR(10) || tekst);
END IF;
IF USER = 'SYS' OR USER = 'SYSTEM' THEN
RAISE_APPLICATION_ERROR(-20000, 'Cannot create Facilitor database on user ' || USER);
END IF;
END;
/
WHENEVER SQLERROR CONTINUE;
PROMPT [&fcltlogfile]
PROMPT
PROMPT Copyright 1996-2020 Aareon Nederland B.V. ALL RIGHTS RESERVED.
PROMPT Copyright 1996-2012 SG|facilitor bv. ALL RIGHTS RESERVED.
PROMPT
PROMPT This is the generated list-file of EVALCONCAT(FCLT,_DBV).sql which was used
PROMPT to create the FACILITOR(r) EVALCONCAT(DB,_DBV) schema in Oracle
PROMPT
SELECT 'Current os_user: ' || SYS_CONTEXT( 'userenv', 'os_user' ) FROM DUAL;
PROMPT Dit is de gegenereerde list-file van FCLTnnn.sql welke
PROMPT is gebruikt om de FACILITOR(r) _VERSION omgeving in Oracle aan te
PROMPT maken.
PROMPT
SET LINESIZE 1000
SET LINESIZE 500
SET DEFINE OFF
SET ECHO ON
#include "adm\adm_tab.src"
#include "adm\adm_seq.src"
#include "adm\adm_tri.src"
#include "adm\adm_pac.src"
/* TYPES */
#include "mld\mld_typ.src"
/* TABLES */
#include "fac\fac_tab.src"
#include "alg\alg_tab.src"
@@ -79,14 +71,10 @@ SET ECHO ON
#include "web\web_tab.src"
#include "cnt\cnt_tab.src"
#include "bes\bes_tab.src"
#include "sch\sch_tab.src"
#include "fin\fin_tab.src"
#include "bgt\bgt_tab.src"
#include "prj\prj_tab.src"
#include "msg\msg_tab.src"
#include "kpi\kpi_tab.src"
#include "ctr\ctr_tab.src"
#include "aut\aut_tab.src"
#include "cnd\cnd_tab.src"
/* SEQUENCES */
#include "fac\fac_seq.src"
@@ -101,13 +89,10 @@ SET ECHO ON
#include "web\web_seq.src"
#include "cnt\cnt_seq.src"
#include "bes\bes_seq.src"
#include "sch\sch_seq.src"
#include "fin\fin_seq.src"
#include "bgt\bgt_seq.src"
#include "prj\prj_seq.src"
#include "msg\msg_seq.src"
#include "kpi\kpi_seq.src"
#include "ctr\ctr_seq.src"
#include "aut\aut_seq.src"
/* INDICES */
#include "fac\fac_ind.src"
@@ -122,13 +107,10 @@ SET ECHO ON
#include "web\web_ind.src"
#include "cnt\cnt_ind.src"
#include "bes\bes_ind.src"
#include "sch\sch_ind.src"
#include "fin\fin_ind.src"
#include "bgt\bgt_ind.src"
#include "prj\prj_ind.src"
#include "msg\msg_ind.src"
#include "kpi\kpi_ind.src"
#include "ctr\ctr_ind.src"
#include "aut\aut_ind.src"
/* VIEWS, PACKAGES, TRIGGERS and LOCALES */
#include "_up/recreate.inc"
@@ -146,42 +128,32 @@ SET ECHO ON
#include "web\web_ini.src"
#include "cnt\cnt_ini.src"
#include "bes\bes_ini.src"
#include "sch\sch_ini.src"
#include "fin\fin_ini.src"
#include "bgt\bgt_ini.src"
#include "prj\prj_ini.src"
#include "msg\msg_ini.src"
#include "kpi\kpi_ini.src"
#include "ctr\ctr_ini.src"
COMMIT;
///////////////////////////// finally compile all views, triggers etc acc to the latest state ///////
BEGIN DBMS_UTILITY.COMPILE_SCHEMA(USER, FALSE); END;
/
BEGIN fac.registerversion(_VERSIONMAJ, _VERSIONMIN, _VERSIONPATCH, _DBV_STRING, 'NL'); END;
BEGIN fac.registerversion(_VERSIONMAJ, _VERSIONMIN, _VERSIONPATCH, _DBV, 'NL'); END;
/
REGISTERONCE('$Id$')
INSERT INTO adm_tracking
(adm_tracking_name, adm_tracking_revision)
VALUES
('Database created', 'DB' || _DBV_STRING);
REGISTERONCE('$Workfile: FCLT.SRC $','$Revision$')
COMMIT;
/* Report invalid objects, if any */
///////////////////////////// Report invalid objects, if any ///////
SET ECHO OFF
SET LINESIZE 132
PROMPT List of all invalid objects after FACILITOR initialisation:
SELECT 'OR'||'A-'||'DB'|| _DBV_STRING ||' Warning: ' || object_type || ' ' || object_name || ' is ' || status
SET LINESIZE 80
PROMPT List of all invalid objects after Facilitor creation:
SELECT 'OR'||'A-'||'DB'||TO_CHAR(_DBV)||' Warning: ' || object_type || ' ' || object_name || ' is ' || status
FROM user_objects
WHERE object_type IN ('VIEW', 'TRIGGER', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'PACKAGE BODY')
AND status <> 'VALID'
ORDER BY object_name;
PROMPT ======================================================================
SELECT 'Schema FACILITOR@' || USER || ' is now ' || fac.getdbversion() FROM DUAL;
PROMPT
PROMPT Your schema initialisation is ready. Please check the logfile for errors.
PROMPT If in doubt please contact: FACILITOR Helpdesk +31 53 4800 710
PROMPT Copyright (c) 1996-2020 Aareon Nederland B.V. All rights reserved.
SELECT 'Facilitor/' || USER || ' is now ' || fac.getdbversion() FROM DUAL;
PROMPT Schema initialisatie is gereed, controleer de LST-files.
PROMPT Neem bij vragen, twijfels of problemen contact op met Facilitor.
SPOOL OFF

View File

@@ -7,12 +7,7 @@
CREATE INDEX fin_i_fin_factuur1 ON fin_factuur(mld_opdr_key);
CREATE INDEX fin_i_fin_factuur2 ON fin_factuur(cnt_contract_key);
CREATE INDEX fin_i_fin_factuur3 ON fin_factuur(bes_bestelopdr_key);
CREATE INDEX fin_i_fin_factuur4 ON fin_factuur(fin_factuur_statuses_key, fin_factuur_verwijder);
CREATE INDEX fin_i_fin_factuurregel1 ON fin_factuurregel(fin_factuur_key);
CREATE INDEX fin_i_fin_factuurnote1 ON fin_factuur_note(fin_factuur_key);
CREATE INDEX fin_i_fin_verkoopfactuur1 ON fin_verkoopfactuur(fin_verkoopfactuur_refkey, fin_verkoopfactuur_xmlnode);
CREATE INDEX fin_i_fin_verkoopfactuur2 ON fin_verkoopfactuur(fin_verkoopfactuur_id);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: fin_ind.src $','$Revision$')
#endif // FIN

View File

@@ -3,20 +3,19 @@
* $Id$
*/
_FAC_MODULE('FIN','lcl_module_FIN')
_FAC_MODULE('FIN','Facturen')
DEF_STATUS('factuur', 1, 'lcl_fin_afgewezen');
DEF_STATUS('factuur', 2, 'lcl_fin_ingevoerd');
DEF_STATUS('factuur', 3, 'lcl_fin_incompleet');
DEF_STATUS('factuur', 5, 'lcl_fin_ter_goedgekeuring');
DEF_STATUS('factuur', 6, 'lcl_fin_akkoord');
DEF_STATUS('factuur', 7, 'lcl_fin_verwerkt');
INSERT INTO fin_btwtabel (fin_btwtabel_key, fin_btwtabel_omschrijving, fin_btwtabel_default) VALUES (1, 'NL standaard', 1);
INSERT INTO fin_btwtabelwaarde (fin_btwtabelwaarde_key, fin_btwtabel_key, fin_btwtabelwaarde_code, fin_btwtabelwaarde_oms, fin_btwtabelwaarde_perc) VALUES(1, 1, '0', 'Nul', 0);
INSERT INTO fin_btwtabelwaarde (fin_btwtabelwaarde_key, fin_btwtabel_key, fin_btwtabelwaarde_code, fin_btwtabelwaarde_oms, fin_btwtabelwaarde_perc) VALUES(2, 1, 'L', 'Laag', 6);
INSERT INTO fin_btwtabelwaarde (fin_btwtabelwaarde_key, fin_btwtabel_key, fin_btwtabelwaarde_code, fin_btwtabelwaarde_oms, fin_btwtabelwaarde_perc) VALUES(3, 1, 'H', 'Hoog', 21);
INSERT INTO fin_btwtabelwaarde (fin_btwtabelwaarde_key, fin_btwtabel_key, fin_btwtabelwaarde_code, fin_btwtabelwaarde_oms, fin_btwtabelwaarde_perc) VALUES(3, 1, 'H', 'Hoog', 19);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: fin_ini.src $','$Revision$')
#endif // FIN

View File

@@ -40,11 +40,8 @@ AS
FUNCTION getfactuurkostenplaats (pfactuur_key IN NUMBER)
RETURN NUMBER;
FUNCTION getfiatteur (pfactuur_key IN NUMBER,
pexcludekey IN NUMBER DEFAULT NULL)
RETURN NUMBER;
FUNCTION sprintf (ps IN VARCHAR2 , p_factuur_key IN NUMBER) RETURN VARCHAR2;
END fin;
/
@@ -69,15 +66,10 @@ AS
CASE pstatus
WHEN 1 -- Afgewezen
THEN
IF currentstatus IS NULL OR currentstatus = 2 OR currentstatus = 5
IF currentstatus IS NULL OR currentstatus = 2
THEN
newstatus := pstatus;
IF currentstatus = 5
THEN
eventcode := 'FINGNO';
ELSE
eventcode := 'FINFNO';
END IF;
eventcode := 'FINFNO';
END IF;
WHEN 2 -- Ingevoerd
THEN
@@ -85,30 +77,19 @@ AS
THEN
newstatus := pstatus;
eventcode := 'FINNEW';
ELSIF currentstatus = 1 OR currentstatus = 5
ELSIF currentstatus = 1 OR currentstatus = 6
THEN
newstatus := pstatus;
eventcode := 'FINFUN';
ELSIF currentstatus = 6
THEN
newstatus := pstatus;
eventcode := 'FINGUN';
END IF;
WHEN 5 -- Ter goedkeuring
WHEN 6 -- Verwerkt
THEN
IF currentstatus = 2
THEN
newstatus := pstatus;
eventcode := 'FINFOK';
END IF;
WHEN 6 -- Verwerkt
THEN
IF currentstatus = 2 OR currentstatus = 5
THEN
newstatus := pstatus;
eventcode := 'FINGOE';
END IF;
WHEN 7 -- Uitgegeven
WHEN 7 -- Uitgegeven
THEN
IF currentstatus = 6
THEN
@@ -200,8 +181,6 @@ AS
discpct NUMBER;
discmarge NUMBER;
upperlimit NUMBER;
lowerlimit NUMBER;
match_lowerlimit fac_setting.fac_setting_default%TYPE;
franchise NUMBER;
BEGIN
CASE
@@ -245,43 +224,25 @@ AS
IF discpct IS NULL AND discmarge IS NULL
THEN
upperlimit := pbestelbedrag;
lowerlimit := pbestelbedrag;
ELSIF discpct IS NULL
THEN
upperlimit := pbestelbedrag + discmarge;
lowerlimit := pbestelbedrag - discmarge;
ELSE
upperlimit := pbestelbedrag * (100 + discpct) / 100;
lowerlimit := pbestelbedrag * (100 - discpct) / 100;
END IF;
match_lowerlimit := fac.getSetting('fin_match_lowerlimit');
DBMS_OUTPUT.put_line ('discipline: ' || pdisckey);
DBMS_OUTPUT.put_line ('tolerantie%: ' || discpct);
DBMS_OUTPUT.put_line ('tolerantie-abs: ' || discmarge);
DBMS_OUTPUT.put_line ('bestel/opdracht/contactbedrag: ' || pbestelbedrag);
DBMS_OUTPUT.put_line ('bovengrens: ' || upperlimit);
IF match_lowerlimit = 1
THEN
DBMS_OUTPUT.put_line ('ondergrens: ' || lowerlimit);
END IF;
DBMS_OUTPUT.put_line ('vrijstelling: ' || franchise);
DBMS_OUTPUT.put_line ('bovengrens ' || upperlimit);
DBMS_OUTPUT.put_line ('vrijstelling ' || franchise);
DBMS_OUTPUT.put_line ('factuurbedrag: ' || pfactbedrag);
IF pfactbedrag <= upperlimit
THEN
-- niet te hoog
IF match_lowerlimit = 1 AND pfactbedrag < lowerlimit
THEN
-- ondergrens doet er toe en het is te laag = nok
RETURN 0;
ELSE
-- ondergrens doet er niet toe of het is hoger dan de ondergrens = ok
RETURN 1;
END IF;
RETURN 1;
ELSE
-- te hoog = nok
RETURN 0;
END IF;
END;
@@ -293,32 +254,25 @@ AS
-- -1 factuur niet (automatisch) goed
-- 0 niks van te zeggen of reeds goed-/afgekeurd/verwerkt
-- 1 factuur okay
ftype VARCHAR2 (1);
c_key fin_factuur.cnt_contract_key%TYPE;
b_key fin_factuur.bes_bestelopdr_key%TYPE;
o_key fin_factuur.mld_opdr_key%TYPE;
factuurstatus fin_factuur.fin_factuur_statuses_key%TYPE;
factuurdatum fin_factuur.fin_factuur_datum%TYPE;
factuurboekmaand fin_factuur.fin_factuur_boekmaand%TYPE;
discipline ins_tab_discipline.ins_discipline_key%TYPE;
factmatchmode mld_disc_params.mld_disc_params_factmatchmode%TYPE;
korting bes_bestelopdr.bes_bestelopdr_korting%TYPE;
levkosten bes_bestelopdr.bes_bestelopdr_levkosten%TYPE;
contracttermijnkosten cnt_contract.cnt_contract_termijnkosten%TYPE;
factuurschemabedrag cnt_factuurschema.cnt_factuurschema_bedrag%TYPE;
contractkosten cnt_contract.cnt_contract_kosten%TYPE;
opdrachtkosten mld_opdr.mld_opdr_kosten%TYPE;
typeopdr_factuur mld_typeopdr.mld_typeopdr_factuur%TYPE;
factuurbedrag NUMBER (12, 2);
bestelbedrag NUMBER (12, 2); -- van de opdracht waar deze factuur over gaat
totaalgefactureerd NUMBER (12, 2); -- met deze factuur erbij eerder gefactureerd van dezelfde B(R)OC
totaaltermijngefactureerd NUMBER (12, 2); -- met deze factuur erbij eerder gefactureerd van dezelfde C igv factuurschema-gebruik
totaaltermijngefactureerdbtw NUMBER (12, 2); -- met deze factuur erbij eerder gefactureerd van dezelfde C igv factuurschema-gebruik
totaalgefactureerdbtw NUMBER (12, 2);
aantalgefactureerd NUMBER := 0;
opdrstatus mld_opdr.mld_statusopdr_key%TYPE;
retval NUMBER := 0;
inclbtw NUMBER := 0;
ftype VARCHAR2 (1);
c_key fin_factuur.cnt_contract_key%TYPE;
b_key fin_factuur.bes_bestelopdr_key%TYPE;
o_key fin_factuur.mld_opdr_key%TYPE;
factuurstatus fin_factuur.fin_factuur_statuses_key%TYPE;
factuurdatum fin_factuur.fin_factuur_datum%TYPE;
discipline ins_tab_discipline.ins_discipline_key%TYPE;
factmatchmode mld_disc_params.mld_disc_params_factmatchmode%TYPE;
korting bes_bestelopdr.bes_bestelopdr_korting%TYPE;
levkosten bes_bestelopdr.bes_bestelopdr_levkosten%TYPE;
contracttermijnkosten cnt_contract.cnt_contract_termijnkosten%TYPE;
contractkosten cnt_contract.cnt_contract_kosten%TYPE;
opdrachtkosten mld_opdr.mld_opdr_kosten%TYPE;
matchtype mld_typeopdr.mld_typeopdr_matchtype%TYPE;
factuurbedrag NUMBER (12, 2);
bestelbedrag NUMBER (12, 2); -- van de opdracht waar deze factuur over gaat
totaalgefactureerd NUMBER (12, 2); -- met deze factuur erbij eerder gefactureerd van dezelfde B(R)OC
opdrstatus mld_opdr.mld_statusopdr_key%TYPE;
retval NUMBER := 0;
-- Bepaal te tolerantie van de vakgroep
-- waarschijnlijk in procenten of zo?
-- of geven we de factuurwaarde mee en leveren we true/false op?
@@ -337,24 +291,22 @@ AS
DBMS_OUTPUT.put_line ('\nfactuurkey: ' || pfactuur_key);
SELECT mld_opdr_key,
cnt_contract_key,
bes_bestelopdr_key,
fin_factuur_totaal,
fin_factuur_statuses_key,
fin_factuur_datum,
fin_factuur_boekmaand
INTO o_key,
c_key,
b_key,
factuurbedrag,
factuurstatus,
factuurdatum,
factuurboekmaand
FROM fin_factuur
WHERE fin_factuur_key = pfactuur_key;
SELECT mld_opdr_key,
cnt_contract_key,
bes_bestelopdr_key,
fin_factuur_totaal,
fin_factuur_statuses_key,
fin_factuur_datum
INTO o_key,
c_key,
b_key,
factuurbedrag,
factuurstatus,
factuurdatum
FROM fin_factuur
WHERE fin_factuur_key = pfactuur_key;
IF factuurstatus <> 2 -- is al verwerkt, matching zinloos
IF factuurstatus <> 2 -- is al verwerkt, matching zinloos
THEN
DBMS_OUTPUT.put_line ('STOP, factuurstatus: ' || factuurstatus);
RETURN 0;
@@ -376,29 +328,16 @@ AS
-- en het totaal met de eerder bestellingfacturen ook,
-- waarbij afhankelijk van 2-weg/3-weg wordt geteld.
-- Dat moeten we dus eerst bepalen
SELECT MAX (isg.ins_discipline_key)
INTO discipline
FROM bes_bestelopdr_item boi,
bes_bestelling_item bbi,
bes_srtdeel isd,
bes_srtgroep isg
WHERE isd.bes_srtgroep_key = isg.bes_srtgroep_key
AND bbi.bes_srtdeel_key = isd.bes_srtdeel_key
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND boi.bes_bestelopdr_key = b_key;
SELECT MAX (isg.ins_discipline_key)
INTO discipline
FROM bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_srtdeel isd, bes_srtgroep isg
WHERE isd.bes_srtgroep_key = isg.bes_srtgroep_key
AND bbi.bes_srtdeel_key = isd.bes_srtdeel_key
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND boi.bes_bestelopdr_key = b_key;
factmatchmode := fin.getfactmatchmode (discipline, 'B');
-- Zijn de bestelbedragen incl. of excl. BTW.
SELECT MAX( (SELECT ks.prs_kostensoort_btw
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
COALESCE (bsg.prs_kostensoort_key, bd.prs_kostensoort_key)))
INTO inclbtw
FROM bes_discipline bd, bes_srtgroep bsg
WHERE bd.ins_discipline_key = bsg.ins_discipline_key
AND bd.ins_discipline_key = discipline;
-- Bereken dan nu de voor de matching relevante bedragen
-- Voor bestellingen nemen we de INKOOPPRIJS (het is immers een factuur die wij ontvangen)
-- Maar als die niet gevuld is (ook bv bij punchout), dan de enige andere prijs die we weten
@@ -406,52 +345,36 @@ AS
CASE
WHEN factmatchmode = 2
THEN
SELECT SUM(boi.bes_bestelopdr_item_aantal
* COALESCE (boi.bes_bestelopdr_item_inkprijs,
boi.bes_bestelopdr_item_prijs)),
MAX (COALESCE (bo.bes_bestelopdr_korting, 0)),
MAX (COALESCE (bo.bes_bestelopdr_levkosten, 0))
INTO bestelbedrag, korting, levkosten
FROM bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelopdr bo
WHERE boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND bo.bes_bestelopdr_status NOT IN (1, 3, 8) -- als die maar niet afgewezen/geannuleerd is
AND boi.bes_bestelopdr_key = b_key;
SELECT SUM (boi.bes_bestelopdr_item_aantal * COALESCE(boi.bes_bestelopdr_item_inkprijs, boi.bes_bestelopdr_item_prijs)),
MAX (COALESCE (bo.bes_bestelopdr_korting, 0)),
MAX (COALESCE (bo.bes_bestelopdr_levkosten, 0))
INTO bestelbedrag, korting, levkosten
FROM bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelopdr bo
WHERE boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND bo.bes_bestelopdr_status NOT IN (1,3,8) -- als die maar niet afgewezen/geannuleerd is
AND boi.bes_bestelopdr_key = b_key;
WHEN factmatchmode = 3
THEN
SELECT SUM(boi.bes_bestelopdr_item_aantal
* COALESCE (boi.bes_bestelopdr_item_inkprijs,
boi.bes_bestelopdr_item_prijs)),
MAX (COALESCE (bo.bes_bestelopdr_korting, 0)),
MAX (COALESCE (bo.bes_bestelopdr_levkosten, 0))
INTO bestelbedrag, korting, levkosten
FROM bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelopdr bo
WHERE boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_status IN (6, 7) -- alleen de geleverde regels meetellen
AND boi.bes_bestelopdr_key = b_key;
SELECT SUM (boi.bes_bestelopdr_item_aantal * COALESCE(boi.bes_bestelopdr_item_inkprijs, boi.bes_bestelopdr_item_prijs)),
MAX (COALESCE (bo.bes_bestelopdr_korting, 0)),
MAX (COALESCE (bo.bes_bestelopdr_levkosten, 0))
INTO bestelbedrag, korting, levkosten
FROM bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelopdr bo
WHERE boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_status IN (6, 7) -- alleen de geleverde regels meetellen
AND boi.bes_bestelopdr_key = b_key;
END CASE;
bestelbedrag := bestelbedrag - korting + levkosten; -- Bedragen zijn excl. BTW?
bestelbedrag := bestelbedrag - korting + levkosten;
SELECT SUM (fin_factuur_totaal), SUM (fin_factuur_totaal_btw)
INTO totaalgefactureerd, totaalgefactureerdbtw
FROM fin_factuur
WHERE bes_bestelopdr_key = b_key
AND fin_factuur_statuses_key <> 1
AND fin_factuur_verwijder IS NULL
AND fin_factuur_datum <= factuurdatum;
SELECT SUM (fin_factuur_totaal) -- is excl BTW
INTO totaalgefactureerd
FROM fin_factuur
WHERE bes_bestelopdr_key = b_key AND fin_factuur_statuses_key <> 1 AND fin_factuur_datum <= factuurdatum;
IF inclbtw = 1 -- Artikelen zijn al inclusief, dan ook maar factuur inclusief matchen
THEN
DBMS_OUTPUT.put_line ('Inclusief BTW');
totaalgefactureerd := totaalgefactureerd + totaalgefactureerdbtw;
END IF;
IF fin.tolerantiematch (discipline,
ftype,
totaalgefactureerd,
bestelbedrag) = 1
IF fin.tolerantiematch (discipline, ftype, totaalgefactureerd, bestelbedrag) = 1
THEN
retval := 1;
ELSE
@@ -462,25 +385,13 @@ AS
--
WHEN ftype = 'C'
THEN
-- om te beginnen zit deze factuur per definitie in deze termijn (welke dan ook)
totaaltermijngefactureerd := factuurbedrag;
-- Zijn deze contractbedragen incl. of excl. BTW.
SELECT MAX( (SELECT ks.prs_kostensoort_btw
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
COALESCE (c.prs_kostensoort_key, cd.prs_kostensoort_key)))
INTO inclbtw
FROM cnt_discipline cd, cnt_contract c
WHERE cd.ins_discipline_key = c.ins_discipline_key AND c.cnt_contract_key = c_key;
-- Controle op termijn bedrag en totaal, je kunt discussieren of _verwijder moet worden gecontroleerd.
BEGIN
SELECT c.cnt_contract_termijnkosten, c.cnt_contract_kosten, c.ins_discipline_key
INTO contracttermijnkosten, contractkosten, discipline
FROM cnt_contract c
WHERE cnt_contract_status = 0 -- actief
AND cnt_contract_key = c_key;
SELECT c.cnt_contract_termijnkosten, c.cnt_contract_kosten, c.ins_discipline_key
INTO contracttermijnkosten, contractkosten, discipline
FROM cnt_contract c
WHERE cnt_contract_status = 0 -- actief
AND cnt_contract_key = c_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
@@ -488,66 +399,19 @@ AS
RETURN -1;
END;
-- Er kan ook gebruik gemaakt worden van een factuurschema, dan moet het termijnbedrag anders bepaald worden
BEGIN
SELECT s.cnt_factuurschema_bedrag
INTO factuurschemabedrag
FROM cnt_factuurschema s
WHERE s.cnt_factuurschema_boekmaand = factuurboekmaand
AND s.cnt_contract_key = c_key;
-- Ok, er is dus een factuurschema-bedrag voor deze periode: dan controleren:
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.put_line( 'Geen factuurschema van toepassing voor contract '
|| c_key
|| ' in periode '
|| factuurboekmaand);
-- factuurschemabedrag is nu null
END;
-- waren er niet al facturen voor dezelfde periode en komt het totaal er met deze dan niet overheen?
SELECT SUM (fin_factuur_totaal), SUM (fin_factuur_totaal_btw)
INTO totaaltermijngefactureerd, totaaltermijngefactureerdbtw
FROM fin_factuur
WHERE cnt_contract_key = c_key
AND fin_factuur_statuses_key <> 1
AND fin_factuur_verwijder IS NULL
AND fin_factuur_datum <= factuurdatum
AND fin_factuur_boekmaand = factuurboekmaand;
-- totaaltermijngefactureerd(btw) is dus voor deze periode inclusief deze nieuwe, dus
-- dus mogelijk hoger dan deze ene factuur
-- We doen er toch niks mee: factmatchmode := fin.getfactmatchmode (discipline, 'C');
-- hoeveel is er *met deze factuur erbij* totaal voor dit contract gefactureerd
SELECT SUM (fin_factuur_totaal), SUM (fin_factuur_totaal_btw)
INTO totaalgefactureerd, totaalgefactureerdbtw
FROM fin_factuur
WHERE cnt_contract_key = c_key
AND fin_factuur_statuses_key <> 1
AND fin_factuur_verwijder IS NULL
AND fin_factuur_datum <= factuurdatum;
DBMS_OUTPUT.put_line ('Totaal gefactureerd: ' || totaalgefactureerd);
DBMS_OUTPUT.put_line ('Totaal gefactureerd periode: ' || totaaltermijngefactureerd);
IF inclbtw = 1 -- Contractbedragen zijn al inclusief, dan ook factuur inclusief matchen
IF contracttermijnkosten IS NULL OR contractkosten IS NULL
THEN
DBMS_OUTPUT.put_line ('Inclusief BTW');
totaalgefactureerd := totaalgefactureerd + totaalgefactureerdbtw; -- inclusief BTW
totaaltermijngefactureerd := totaaltermijngefactureerd + totaaltermijngefactureerdbtw; -- deze periode(maand) incl. BTW
DBMS_OUTPUT.put_line ('Totaal gefactureerd: ' || totaalgefactureerd);
DBMS_OUTPUT.put_line ('Totaal gefactureerd periode: ' || totaaltermijngefactureerd);
retval := 0;
END IF;
IF totaalgefactureerd <=
contractkosten + fac.safe_to_number (fac.getsetting ('cnt_factuur_totaalmarge'))
AND fin.tolerantiematch (discipline,
ftype,
totaaltermijngefactureerd,
COALESCE (factuurschemabedrag, contracttermijnkosten)) = 1
-- Zou hier horen, maar we doen er toch niks mee: factmatchmode := fin.getfactmatchmode (discipline, 'C');
SELECT SUM (fin_factuur_totaal)
INTO totaalgefactureerd
FROM fin_factuur
WHERE cnt_contract_key = c_key AND fin_factuur_statuses_key <> 1 AND fin_factuur_datum <= factuurdatum;
IF fin.tolerantiematch (discipline, ftype, totaalgefactureerd, contractkosten) = 1
AND fin.tolerantiematch (discipline, ftype, factuurbedrag, contracttermijnkosten) = 1
THEN
retval := 1;
ELSE
@@ -558,56 +422,26 @@ AS
--
WHEN ftype = 'O'
THEN
-- controleer op basis van mld_typeopdr_factuur
-- controleer op basis van typeopdr.matchtype
BEGIN
SELECT o.mld_opdr_kosten,
sm.mld_ins_discipline_key,
top.mld_typeopdr_factuur,
o.mld_statusopdr_key
INTO opdrachtkosten,
discipline,
typeopdr_factuur,
opdrstatus
FROM mld_opdr o,
mld_melding m,
mld_typeopdr top,
mld_stdmelding sm
WHERE o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND o.mld_typeopdr_key = top.mld_typeopdr_key
--AND top.mld_typeopdr_uren NOT IN (3, 4, 5) -- bij interne uren geen facturen
AND top.mld_typeopdr_factuur <> 0 -- dan willen we ook geen factuur
AND top.mld_typeopdr_kosten = 1 -- daar mag een factuur bij
AND mld_statusopdr_key NOT IN (1, 2, 3, 10) -- dat zijn (nog) ongeldige opdrachten
AND mld_opdr_key = o_key;
SELECT o.mld_opdr_kosten, sm.mld_ins_discipline_key, top.mld_typeopdr_matchtype, o.mld_statusopdr_key
INTO opdrachtkosten, discipline, matchtype, opdrstatus
FROM mld_opdr o, mld_melding m, mld_typeopdr top, mld_stdmelding sm
WHERE o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND o.mld_typeopdr_key = top.mld_typeopdr_key
AND mld_statusopdr_key NOT IN (1, 2, 3, 10) -- dat zijn (nog) ongeldige opdrachten
AND mld_opdr_key = o_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.put_line (
'Bijbehorende opdracht(status/kosten/type) is ongeldig: ' || o_key);
DBMS_OUTPUT.put_line ('Bijbehorende opdracht(status?) is ongeldig: ' || o_key);
RETURN -1;
END;
DBMS_OUTPUT.put_line ('opdrachtkosten: ' || opdrachtkosten);
DBMS_OUTPUT.put_line ('typeopdr_factuur: ' || typeopdr_factuur);
DBMS_OUTPUT.put_line ('matchtype: ' || matchtype);
DBMS_OUTPUT.put_line ('opdrstatus: ' || opdrstatus);
SELECT MAX( (SELECT ks.prs_kostensoort_btw
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
COALESCE (o.prs_kostensoort_key,
stdm.prs_kostensoort_key,
md.prs_kostensoort_key)))
INTO inclbtw
FROM mld_discipline md,
mld_opdr o,
mld_stdmelding stdm,
mld_melding m
WHERE md.ins_discipline_key = stdm.mld_ins_discipline_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = stdm.mld_stdmelding_key
AND mld_opdr_key = o_key;
factmatchmode := fin.getfactmatchmode (discipline, 'O');
-- Een opdracht is maar 1 ding, dus die status bepaalt al veel bij 3-weg
@@ -617,43 +451,53 @@ AS
RETURN -1;
END IF;
SELECT SUM (fin_factuur_totaal), SUM (fin_factuur_totaal_btw), COUNT(*)
INTO totaalgefactureerd, totaalgefactureerdbtw, aantalgefactureerd
FROM fin_factuur
WHERE mld_opdr_key = o_key
AND fin_factuur_statuses_key <> 1
AND fin_factuur_verwijder IS NULL
AND fin_factuur_datum <= factuurdatum;
-- Hier kunnen we iets met de deels nieuwe opties
-- '0;Geen facturen;1;E<>n factuur (vaste prijs);2;E<>n factuur (nacalculatie);3;Meerdere facturen;4;Contracttermijnen',
-- 0 hebben we direct al afgevangen
-- 1 en 2 verdragen geen eerdere factuur
IF typeopdr_factuur IN (1,2) AND aantalgefactureerd>1
--IF opdrachtkosten IS NULL -- niks van te zeggen
--THEN
-- vroeger: RETURN 0;
-- als er een factuurgrens is, maakt het niet uit wat de opdracht was
--END IF;
IF matchtype = 0 -- bedrag altijd goed
THEN
-- er is al een eerdere factuur, dan is de rest fout
retval := -1;
retval := 1;
ELSIF matchtype = 4 -- 4 er mag geen factuur bij deze opdracht
THEN
retval := 0;
ELSIF matchtype = 1 -- 1 factuur moet matchen met opdracht
THEN
IF fin.tolerantiematch (discipline, ftype, factuurbedrag, opdrachtkosten) = 1
THEN
retval := 1;
ELSE
retval := -1;
END IF;
ELSIF matchtype = 2 -- 2 termijnfactuur
THEN
SELECT SUM (fin_factuur_totaal)
INTO totaalgefactureerd
FROM fin_factuur
WHERE mld_opdr_key = o_key AND fin_factuur_statuses_key <> 1 AND fin_factuur_datum <= factuurdatum;
IF fin.tolerantiematch (discipline, ftype, totaalgefactureerd, opdrachtkosten) = 1
THEN
retval := 1;
ELSE
retval := -1;
END IF;
ELSE --IF matchtype = 3 THEN
DBMS_OUTPUT.put_line ('matchtype unsupported yet!');
RETURN 0;
END IF;
SELECT SUM (fin_factuur_totaal)
INTO totaalgefactureerd
FROM fin_factuur
WHERE mld_opdr_key = o_key AND fin_factuur_statuses_key <> 1 AND fin_factuur_datum <= factuurdatum;
IF fin.tolerantiematch (discipline, ftype, totaalgefactureerd, opdrachtkosten) = 1
THEN
retval := 1;
ELSE
-- dan is dit 3 of de eerste van 1 of 2
IF inclbtw = 1 -- Opdrachtbedragen zijn dus inclusief, dan ook factuur inclusief matchen
THEN
DBMS_OUTPUT.put_line ('Inclusief BTW');
totaalgefactureerd := totaalgefactureerd + totaalgefactureerdbtw;
END IF;
IF typeopdr_factuur = 2
THEN
retval := 1;
ELSE
IF fin.tolerantiematch (discipline,
ftype,
totaalgefactureerd,
opdrachtkosten) = 1
THEN
retval := 1;
ELSE
retval := -1;
END IF;
END IF;
retval := -1;
END IF;
ELSE
retval := 0;
@@ -665,30 +509,11 @@ AS
-- Keurt een ingevoerde factuur (onvoorwaardelijk) goed of (als rejecttoo) af op basis van de matchingscriteria
PROCEDURE matchandsetfactuur (pfactuur_key IN NUMBER, prejecttoo IN BOOLEAN)
IS
lgoedkeurder fin_factuur.prs_perslid_key_goedkeur%TYPE;
BEGIN
CASE fin.matchfactuur (pfactuur_key)
WHEN 1
THEN
IF fac.getsetting('fin_enable_goedkeuren') = 0 -- validation unavailable
THEN
fin.setfactuurstatus (pfactuur_key, 6, NULL);
ELSIF fac.getsetting('fin_enable_goedkeuren') = 2 -- validation required
THEN
fin.setfactuurstatus (pfactuur_key, 5, NULL);
ELSE -- validation optional (fin_enable_goedkeuren = 1)
SELECT f.prs_perslid_key_goedkeur
INTO lgoedkeurder
FROM fin_factuur f
WHERE fin_factuur_key = pfactuur_key;
IF lgoedkeurder IS NULL
THEN
fin.setfactuurstatus (pfactuur_key, 6, NULL);
ELSE
fin.setfactuurstatus (pfactuur_key, 5, NULL);
END IF;
END IF;
fin.setfactuurstatus (pfactuur_key, 6, NULL);
WHEN -1
THEN
IF prejecttoo
@@ -810,7 +635,7 @@ AS
SELECT DISTINCT COALESCE (btw.fin_btwtabel_key, fin.getdefaultbtwtabelkey ()) btwtabel_key
FROM cnt_contract c, prs_bedrijf bd, fin_btwtabel btw
WHERE btw.fin_btwtabel_key(+) = bd.fin_btwtabel_key
AND bd.prs_bedrijf_key(+) = c.cnt_prs_bedrijf_key
AND bd.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND c.cnt_contract_key = p_ckey;
CURSOR mld_btwtabel
@@ -918,7 +743,7 @@ AS
INTO lperc, lverlegd
FROM fin_btwtabelwaarde
WHERE fin_btwtabelwaarde_key = pbtwtabelwaardekey;
IF lverlegd = 1 THEN
lbtwbedrag := 0;
ELSE
@@ -934,7 +759,6 @@ AS
END;
-- zoek de kostenplaats van een (gekoppelde) factuur op
-- Bij voorkeur niet meer gebruiken sinds v2017.2
FUNCTION getfactuurkostenplaats (pfactuur_key IN NUMBER)
RETURN NUMBER
IS
@@ -979,80 +803,9 @@ AS
RETURN kpkey;
END;
-- zoek de fiatteur van een (gekoppelde) factuur op
-- -1 als niet gevonden
FUNCTION getfiatteur (pfactuur_key IN NUMBER,
pexcludekey IN NUMBER DEFAULT NULL)
RETURN NUMBER
IS
c_key fin_factuur.cnt_contract_key%TYPE;
b_key fin_factuur.bes_bestelopdr_key%TYPE;
o_key fin_factuur.mld_opdr_key%TYPE;
ftot fin_factuur.fin_factuur_totaal%TYPE;
ftotb fin_factuur.fin_factuur_totaal_btw%TYPE;
kpkey prs_kostenplaats.prs_kostenplaats_key%TYPE;
ldisckey ins_tab_discipline.ins_discipline_key%TYPE;
kskey prs_kostensoort.prs_kostensoort_key%TYPE;
linclbtw prs_kostensoort.prs_kostensoort_btw%TYPE;
lbedrag fin_factuur.fin_factuur_totaal%TYPE;
BEGIN
SELECT mld_opdr_key, cnt_contract_key, bes_bestelopdr_key, fin_factuur_totaal, fin_factuur_totaal_btw
INTO o_key, c_key, b_key, ftot, ftotb
FROM fin_factuur
WHERE fin_factuur_key = pfactuur_key;
CASE
WHEN b_key IS NOT NULL
THEN
SELECT MAX (b.prs_kostenplaats_key)
INTO kpkey
FROM bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelopdr bo, bes_bestelling b
WHERE bbi.bes_bestelling_key = b.bes_bestelling_key
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_key = b_key;
WHEN c_key IS NOT NULL
THEN
SELECT c.prs_kostenplaats_key
INTO kpkey
FROM cnt_contract c
WHERE cnt_contract_key = c_key;
WHEN o_key IS NOT NULL
THEN
SELECT COALESCE (o.prs_kostenplaats_key, m.prs_kostenplaats_key)
INTO kpkey
FROM mld_opdr o, mld_melding m
WHERE o.mld_melding_key = m.mld_melding_key AND mld_opdr_key = o_key;
ELSE
RETURN -1;
END CASE;
IF linclbtw = 1 THEN
lbedrag := ftot + ftotb;
ELSE
lbedrag := ftot;
END IF;
RETURN prs.getfiatteur(kpkey, pexcludekey, lbedrag, ldisckey);
END;
FUNCTION sprintf (ps IN VARCHAR2 , p_factuur_key IN NUMBER)
RETURN VARCHAR2
IS
s VARCHAR2 (2048 CHAR);
BEGIN
s := ps;
-- We do support substitution of placeholders in the messages
-- ##KEY## = fin_factuur_key
IF INSTR (s, '#') > 0
THEN
s := REPLACE (s, '##KEY##', p_factuur_key);
END IF;
RETURN s;
END;
END fin;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: fin_pac.src $','$Revision$')
#endif // FIN

View File

@@ -6,16 +6,13 @@
CREATE SEQUENCE fin_s_fin_factuur_key MINVALUE 1 NOCACHE;
CREATE SEQUENCE fin_s_fin_factuurregel_key MINVALUE 1;
CREATE SEQUENCE fin_s_fin_kenmerk_key MINVALUE 1;
CREATE SEQUENCE fin_s_fin_kenmerkfactuur_key MINVALUE 2; /* 1/-1 wordt nu gebruikt voor nieuwe factuurregel (fin_edit_factuur.js) */
CREATE SEQUENCE fin_s_fin_kenmerkfactregel_key MINVALUE 1;
CREATE SEQUENCE fin_s_fin_kenmerkfactuur_key MINVALUE 1;
CREATE SEQUENCE fin_s_fin_btwtabel_key MINVALUE 2; /* 1 wordt gebruikt in de fin_ini */
CREATE SEQUENCE fin_s_fin_btwtabelwaarde_key MINVALUE 4; /* eerste 3 standaard gevuld */
CREATE SEQUENCE fin_s_fin_factuur_note_key MINVALUE 1;
CREATE SEQUENCE fin_s_fin_verkoopfactuur_key MINVALUE 1;
CREATE SEQUENCE fin_s_verkoopfactuurkop_key MINVALUE 1;
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: FIN_SEQ.SRC $','$Revision$')
#endif // FIN

View File

@@ -53,25 +53,10 @@ CREATE_TABLE(fin_btwtabelwaarde, 0)
CONSTRAINT fin_u_fin_btwtabelwaarde UNIQUE(fin_btwtabel_key, fin_btwtabelwaarde_code, fin_btwtabelwaarde_verwijder)
);
ALTER TABLE prs_kostensoort ADD fin_btwtabelwaarde_key NUMBER(10) CONSTRAINT prs_r_fin_btwtabelwaarde_key REFERENCES fin_btwtabelwaarde (fin_btwtabelwaarde_key);
ALTER TABLE prs_bedrijf
ADD fin_btwtabel_key NUMBER(10)
CONSTRAINT prs_r_fin_btwtabel_key1 REFERENCES fin_btwtabel(fin_btwtabel_key);
ALTER TABLE mld_opdr_materiaal
ADD fin_btwtabelwaarde_key NUMBER(10)
CONSTRAINT mld_r_fin_btwtabelwaarde1 REFERENCES fin_btwtabelwaarde(fin_btwtabelwaarde_key);
// FSN#37318
ALTER TABLE ins_srtcontrole
ADD fin_btwtabelwaarde_key NUMBER(10)
CONSTRAINT ins_r_fin_btwtabelwaarde1 REFERENCES fin_btwtabelwaarde(fin_btwtabelwaarde_key);
ALTER TABLE prs_bedrijf_bedrijf
ADD fin_btwtabelwaarde_key NUMBER(10) -- default btw
CONSTRAINT prs_r_fin_btwtabelwaarde_key2 REFERENCES fin_btwtabelwaarde(fin_btwtabelwaarde_key);
CREATE_TABLE(fin_factuur,0)
(
fin_factuur_key
@@ -81,12 +66,10 @@ CREATE_TABLE(fin_factuur,0)
VARCHAR2(30)
NOT_NULL(fin_factuur_nr, fin_c_fin_factuur0)
, fin_factuur_totaal
NUMBER(12,2)
NUMBER(8,2)
, fin_factuur_totaal_btw
NUMBER (14,4)
NUMBER (10,4)
NOT_NULL(fin_factuur_totaal_btw, fin_c_fin_factuur1)
, fin_factuur_gbedrag
NUMBER(14,2)
, mld_opdr_key
NUMBER(10)
CONSTRAINT fin_r_fin_factuur1 REFERENCES mld_opdr(mld_opdr_key)
@@ -99,14 +82,9 @@ CREATE_TABLE(fin_factuur,0)
, prs_perslid_key_user
NUMBER(10)
CONSTRAINT fin_r_fin_factuur4 REFERENCES prs_perslid(prs_perslid_key)
, prs_perslid_key_goedkeur
NUMBER(10)
CONSTRAINT fin_r_fin_factuur6 REFERENCES prs_perslid(prs_perslid_key)
, fin_factuur_datum
DATE
NOT_NULL(fin_factuur_datum, fin_c_fin_factuur3)
, fin_factuur_advies
DATE
, fin_factuur_boekmaand
VARCHAR2(7)
, fin_factuur_debiteur_nr
@@ -118,19 +96,10 @@ CREATE_TABLE(fin_factuur,0)
VARCHAR2(250)
, fin_factuur_statuses_key
NUMBER(10)
CONSTRAINT fin_c_fin_status1 CHECK(fin_factuur_statuses_key IN (1,2,3,5,6,7))
CONSTRAINT fin_c_fin_status1 CHECK(fin_factuur_statuses_key IN (1,2,3,6,7))
NOT_NULL(fin_factuur_statuses_key, fin_c_fin_factuur5)
, fin_factuur_bron
NUMBER(3)
DEFAULT 0
NOT NULL
, fin_factuur_verwijder
DATE
, fin_factuur_flag
NUMBER(1)
, cnt_contract_plaats_key
NUMBER(10)
CONSTRAINT fin_r_fin_factuur8 REFERENCES cnt_contract_plaats(cnt_contract_plaats_key)
);
CREATE_TABLE(fin_factuurregel,0)
@@ -145,13 +114,13 @@ CREATE_TABLE(fin_factuurregel,0)
, fin_factuurregel_nr
NUMBER
, fin_factuurregel_totaal
NUMBER(12,2)
NUMBER(8,2)
NOT_NULL(fin_factuurregel_totaal, fin_c_fin_factuurregel2)
, fin_factuurregel_btw
NUMBER(14,4)
NUMBER(10,4)
NOT_NULL(fin_factuurregel_btw, fin_c_fin_factuurregel3)
, fin_factuurregel_omschrijving
VARCHAR2(250)
VARCHAR2(60)
, fin_factuurregel_referentie
VARCHAR2(30)
, fin_btwtabelwaarde_key
@@ -160,14 +129,6 @@ CREATE_TABLE(fin_factuurregel,0)
, prs_kostensoort_key
NUMBER(10)
CONSTRAINT fin_r_fin_factuur5 REFERENCES prs_kostensoort(prs_kostensoort_key)
, fin_factuurregel_code
VARCHAR2(30)
, fin_factuurregel_aantal
NUMBER(8,2)
, fin_factuurregel_eenheid
VARCHAR2(30)
, fin_factuurregel_id
NUMBER(10)
);
@@ -180,27 +141,21 @@ CREATE_TABLE(fin_kenmerk,0)
CONSTRAINT fin_k_fin_kenmerk_key PRIMARY KEY
,fin_kenmerk_volgnr
NUMBER(3)
NOT NULL
,fin_kenmerk_omschrijving
VARCHAR2(50)
,fin_kenmerk_upper
VARCHAR2(50)
,fin_kenmerk_type -- Factuur of factuurRegel
VARCHAR2(1)
CONSTRAINT fin_c_fin_kenmerk_type CHECK (fin_kenmerk_type is not null and (fin_kenmerk_type IN( 'F', 'R')))
,fin_kenmerk_hint
VARCHAR2(255)
,fin_kenmerk_default
VARCHAR2(4000)
,fin_kenmerk_show_expr
VARCHAR2(4000)
VARCHAR2(255)
,fin_kenmerk_dimensie
VARCHAR2(10)
,fin_kenmerk_kenmerktype
VARCHAR2(1)
CONSTRAINT fin_c_fin_kenmerk_type1 CHECK(fin_kenmerk_kenmerktype IN ('C','N','D','T','R','X','L','Q','F','M','E','S','l','B','V'))
CONSTRAINT fin_c_fin_kenmerk_type1 CHECK(fin_kenmerk_kenmerktype IN ('C','N','D','R','X','L','Q','F','M','E','S', 'l'))
,fin_kenmerk_systeem
NUMBER(2)
NUMBER(1)
,fin_kenmerk_toonbaar
NUMBER(1)
,fin_kenmerk_uniek
@@ -209,9 +164,6 @@ CREATE_TABLE(fin_kenmerk,0)
VARCHAR2(255)
,fin_kenmerk_verplicht
NUMBER(1)
,fin_kenmerk_groep
NUMBER(1)
DEFAULT 0 NOT NULL
,fin_kenmerk_lengte
NUMBER(4)
,fin_kenmerk_dec
@@ -253,28 +205,6 @@ CREATE_TABLE(fin_kenmerkfactuur,0)
CONSTRAINT fin_u_fin_kenmerkfactuur_key UNIQUE(fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_verwijder)
);
CREATE_TABLE(fin_kenmerkfactregel,0)
(fin_kenmerkfactregel_key
NUMBER(10)
CONSTRAINT fin_k_kenmerkfactregel_key PRIMARY KEY
,fin_factuurregel_key
NUMBER(10)
CONSTRAINT fin_r_fin_factuurregel_key REFERENCES fin_factuurregel(fin_factuurregel_key)
,fin_kenmerk_key
NUMBER(10)
CONSTRAINT fin_r_fin_kenmerk_key2 REFERENCES fin_kenmerk(fin_kenmerk_key)
,fin_kenmerkfactregel_waarde
VARCHAR2(4000)
,fin_kenmerkfactregel_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(fin_kenmerkfactregel_aanmaak, fin_c_kenmerkfactregel_aanm)
,fin_kenmerkfactregel_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT fin_u_kenmerkfactregel_key UNIQUE(fin_factuurregel_key, fin_kenmerk_key, fin_kenmerkfactregel_verwijder)
);
CREATE_TABLE(fin_factuur_note, 0)
(
fin_factuur_note_key NUMBER (10) PRIMARY KEY,
@@ -284,73 +214,7 @@ CREATE_TABLE(fin_factuur_note, 0)
fin_factuur_note_omschrijving VARCHAR2 (4000 CHAR)
);
// Met name om er een model (scaffolding) op te kunnen baseren is een kop-tabel erg wenselijk.
CREATE_TABLE(fin_verkoopfactuurkop, 0)
(
fin_verkoopfactuurkop_key NUMBER(10) PRIMARY KEY,
fin_verkoopfactuurkop_aanmaak DATE DEFAULT SYSDATE,
fin_verkoopfactuurkop_id VARCHAR2(30), /* het (externe) factuurnummer, vaak wel numeriek */
CONSTRAINT fin_u_verkoopfactuurkop_id UNIQUE(fin_verkoopfactuurkop_id)
);
// Een basistabel waarin verkoopfactuurREGELS kunnen worden bewaard als een soort hardcopy
// Deze tabel wordt (vooralsnog) niet door de core-programmatuur gevuld maar is wel een
// uniforme opslag voor latere referentie; vervangt de diverse cust-tabellen die ontstonden
// Voor verschillende waarden (van bv kostenplaats of btwpercentage) zijn er verschillende regels
// Stamgegevens kunnen later wijzigen en worden hier bevroren, overige gegevens kunnen worden
// teruggevonden via de bijbehorende referentie
// Tevens zijn er plenty extra kolommen voor gebruik naar eigen inzicht
// LET OP: dit is bewust de rand van ons datamodel, hierin verder gaan opent de beerput van de financiele wereld
// waar we niet vrijwillig in willen vallen.
// LET OP: de verwijzing fin_verkoopfactuurkop_key is optioneel.
// Indien een cust dit via de GUI wil gebruiken is deze vereist.
CREATE_TABLE(fin_verkoopfactuur, 0)
(
fin_verkoopfactuur_key NUMBER(10) PRIMARY KEY,
fin_verkoopfactuurkop_key NUMBER(10) REFERENCES fin_verkoopfactuurkop(fin_verkoopfactuurkop_key) ON DELETE CASCADE,
fin_verkoopfactuur_aanmaak DATE DEFAULT SYSDATE,
fin_verkoopfactuur_id VARCHAR2(30), /* het (externe) factuurnummer, vaak wel numeriek */
fin_verkoopfactuur_datum DATE, /* de factuurdatum */
fin_verkoopfactuur_omschr VARCHAR2(1000),
fin_verkoopfactuur_xmlnode VARCHAR2(60), /* type van waarover deze factuur gaat */
fin_verkoopfactuur_refkey NUMBER(10), /* key van de bijbehorende entiteit van type xmlnode */
prs_kostenplaats_key NUMBER(10),
prs_kostenplaats_nr VARCHAR2(30),
prs_kostenplaats_omschrijving VARCHAR2(60),
prs_kostenplaatsgrp_oms VARCHAR2(60),
prs_kostensoort_oms VARCHAR2(60),
prs_kostensoort_opmerking VARCHAR2(255),
prs_kostensoort_refcode VARCHAR2(60),
prs_bedrijf_key NUMBER(10),
prs_debiteur_naam VARCHAR2(60), /* kan prs_bedrijf_naam zijn maar hoeft niet */
prs_kostensoortgrp_oms VARCHAR2(60),
fin_verkoopfactuur_bedrag NUMBER(12,2),
fin_verkoopfactuur_btw NUMBER(12,2),
fin_btwtabelwaarde_code VARCHAR2(10),
fin_btwtabelwaarde_oms VARCHAR2(30),
fin_btwtabelwaarde_perc NUMBER(5,3),
fin_btwtabelwaarde_verlegd NUMBER(1),
fin_verkoopfactuur_maand VARCHAR2(6), /* boekmaand, bv 201409 */
fin_verkoopfactuur_n1 NUMBER(14,4),
fin_verkoopfactuur_n2 NUMBER(14,4),
fin_verkoopfactuur_n3 NUMBER(14,4),
fin_verkoopfactuur_n4 NUMBER(14,4),
fin_verkoopfactuur_n5 NUMBER(14,4),
fin_verkoopfactuur_c1 VARCHAR2(200),
fin_verkoopfactuur_c2 VARCHAR2(200),
fin_verkoopfactuur_c3 VARCHAR2(200),
fin_verkoopfactuur_c4 VARCHAR2(200),
fin_verkoopfactuur_c5 VARCHAR2(200),
fin_verkoopfactuur_c6 VARCHAR2(500),
fin_verkoopfactuur_c7 VARCHAR2(1000),
fin_verkoopfactuur_c8 VARCHAR2(4000),
fin_verkoopfactuur_d1 DATE,
fin_verkoopfactuur_d2 DATE,
fin_verkoopfactuur_d3 DATE,
fin_verkoopfactuur_d4 DATE,
fin_verkoopfactuur_d5 DATE
);
REGISTERONCE('$Id$')
REGISTERONCE('$Workfile: FIN_TAB.SRC $','$Revision$')
#endif // FIN

View File

@@ -40,7 +40,7 @@ BEGIN
KenmerkDec fin_kenmerk.fin_kenmerk_dec%TYPE;
KenmerkNMin fin_kenmerk.fin_kenmerk_nmin%TYPE;
KenmerkNMax fin_kenmerk.fin_kenmerk_nmax%TYPE;
NumberWaarde NUMBER(25,5);
NumberWaarde NUMBER(15,5);
FormatMask VARCHAR2(60);
KenmerkWaarde fin_kenmerkfactuur.fin_kenmerkfactuur_waarde%TYPE;
BEGIN
@@ -68,141 +68,6 @@ BEGIN
THEN APPLICATION_ERROR_GOTO(-20000,'INS_R_INS_KENMERK_KEY1');
END;
/* Kijk welk KenmerkType gebruikt wordt.
** Aan de hand daarvan moet een controle uitgevoerd worden.
**/
IF KenmerkType = 'C'
/*
** Char
*/
THEN
/*
** Controleer of de lengte te groot of goed is
*/
IF LENGTH(KenmerkWaarde) > KenmerkLengte
THEN
APPLICATION_ERROR(-20004, 'fin_M232,'|| KenmerkOmschr ||','
|| TO_CHAR(KenmerkLengte));
END IF;
ELSIF KenmerkType IN ('N', 'B')
/*
** Number
*/
THEN
/*
** Controleer of er een numerieke waarde ingevuld is
*/
IF KenmerkDec IS NULL OR KenmerkDec = 0
THEN
FormatMask := RPAD('9', KenmerkLengte, '9');
ELSE
FormatMask := RPAD('9', KenmerkLengte - KenmerkDec, '9')
||'D'||RPAD('9', KenmerkDec, '9');
END IF;
/*
** Controleer of er een numerieke waarde ingevuld is
*/
BEGIN
NumberWaarde := TO_NUMBER(KenmerkWaarde);
EXCEPTION
WHEN OTHERS
THEN FormatMask := REPLACE(FormatMask, '9', '#');
FormatMask := REPLACE(FormatMask, '0', '#');
FormatMask := REPLACE(FormatMask, 'D', '.');
RAISE_APPLICATION_ERROR(-20004,'fin_M233,'|| KenmerkOmschr ||','
|| FormatMask);
END;
/*
** Controleer of de waarde binnen NMin en NMax ligt
*/
IF ( (KenmerkNMin IS NOT NULL AND NumberWaarde < KenmerkNMin)
OR (KenmerkNMax IS NOT NULL AND NumberWaarde > KenmerkNMax))
THEN
APPLICATION_ERROR_GOTO(-20004, 'fin_M234,'|| KenmerkOmschr ||','
|| TO_CHAR(KenmerkNMin)||','
|| TO_CHAR(KenmerkNMax));
ELSE
/*
** Controleer of de waarde aan het formaat voldoet
*/
KenmerkWaarde := LTRIM(NUMBER_TO_CHAR(NumberWaarde, FormatMask));
IF INSTR2(KenmerkWaarde, '#') <> 0
THEN
FormatMask := REPLACE(FormatMask, '9', '#');
FormatMask := REPLACE(FormatMask, '0', '#');
FormatMask := REPLACE(FormatMask, 'D', '.');
APPLICATION_ERROR_GOTO(-20004,'fin_M233,'|| KenmerkOmschr ||','
|| FormatMask);
END IF;
END IF;
/*
** Zet de geconverteerde waarde terug
*/
:new.fin_kenmerkfactuur_waarde := KenmerkWaarde;
ELSIF KenmerkType = 'D'
/*
** Datum
*/
THEN
KenmerkWaarde := DATE_TO_CHAR(_TO_DATE2(KenmerkWaarde,'DD-MM-YY'),'DD-MM-YYYY');
/*
** Zet de geconverteerde waarde terug
*/
:new.fin_kenmerkfactuur_waarde := KenmerkWaarde;
END IF;
END;
END;
UPDATE_PRIMARY_KEY(fin_kenmerkfactuur_key, fin_s_fin_kenmerkfactuur_key);
END IF;
END;
/
CREATE_TRIGGER(fin_t_fin_kenmerkfacreg_b_iu)
BEFORE INSERT OR UPDATE ON fin_kenmerkfactregel
FOR EACH ROW
BEGIN
UPDATE_AANMAAKDATUM(fin_kenmerkfactregel, fin_kenmerkfactregel_aanmaak);
/*
** Controleer eerst of de ingevulde waarde goed is.
*/
IF :new.fin_kenmerkfactregel_waarde <> :old.fin_kenmerkfactregel_waarde
OR :old.fin_kenmerkfactregel_waarde IS NULL
OR :new.fin_kenmerkfactregel_waarde IS NULL
THEN
DECLARE
KenmerkOmschr fin_kenmerk.fin_kenmerk_omschrijving%TYPE;
KenmerkType fin_kenmerk.fin_kenmerk_kenmerktype%TYPE;
KenmerkLengte fin_kenmerk.fin_kenmerk_lengte%TYPE;
KenmerkDec fin_kenmerk.fin_kenmerk_dec%TYPE;
KenmerkNMin fin_kenmerk.fin_kenmerk_nmin%TYPE;
KenmerkNMax fin_kenmerk.fin_kenmerk_nmax%TYPE;
NumberWaarde NUMBER(25,5);
FormatMask VARCHAR2(60);
KenmerkWaarde fin_kenmerkfactregel.fin_kenmerkfactregel_waarde%TYPE;
BEGIN
KenmerkWaarde := :new.fin_kenmerkfactregel_waarde;
BEGIN
DECLARE
dummy VARCHAR2(1);
BEGIN
SELECT fin_kenmerk_omschrijving
, fin_kenmerk_kenmerktype
, fin_kenmerk_lengte
, fin_kenmerk_dec
, fin_kenmerk_nmin
, fin_kenmerk_nmax
INTO KenmerkOmschr
, KenmerkType
, KenmerkLengte
, KenmerkDec
, KenmerkNMin
, KenmerkNMax
FROM fin_kenmerk
WHERE fin_kenmerk_key = :new.fin_kenmerk_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN APPLICATION_ERROR_GOTO(-20000,'INS_R_INS_KENMERK_KEY1');
END;
/* Kijk welk KenmerkType gebruikt wordt.
** Aan de hand daarvan moet een controle uitgevoerd worden.
**/
@@ -273,7 +138,7 @@ BEGIN
/*
** Zet de geconverteerde waarde terug
*/
:new.fin_kenmerkfactregel_waarde := KenmerkWaarde;
:new.fin_kenmerkfactuur_waarde := KenmerkWaarde;
ELSIF KenmerkType = 'D'
/*
** Datum
@@ -283,11 +148,11 @@ BEGIN
/*
** Zet de geconverteerde waarde terug
*/
:new.fin_kenmerkfactregel_waarde := KenmerkWaarde;
:new.fin_kenmerkfactuur_waarde := KenmerkWaarde;
END IF;
END;
END;
UPDATE_PRIMARY_KEY(fin_kenmerkfactregel_key, fin_s_fin_kenmerkfactregel_key);
UPDATE_PRIMARY_KEY(fin_kenmerkfactuur_key, fin_s_fin_kenmerkfactuur_key);
END IF;
END;
/
@@ -302,14 +167,10 @@ BEGIN
THEN
APPLICATION_ERROR(-20003, 'fin_M238');
END IF;
IF :new.fin_kenmerk_kenmerktype IN ('C','N', 'B') AND :new.fin_kenmerk_lengte IS NULL
IF (:new.fin_kenmerk_kenmerktype IN ('C','N'))
AND :new.fin_kenmerk_lengte IS NULL
THEN
APPLICATION_ERROR(-20000, 'fin_C_fin_KENMERK_LENGTE');
END IF;
-- Numeriek mag niet te lang zijn (numeric overflow)
IF :new.fin_kenmerk_kenmerktype IN ('N', 'B') AND :new.fin_kenmerk_lengte > 20
THEN
:new.fin_kenmerk_lengte := 20;
END IF;
IF :new.fin_kenmerk_kenmerktype = 'N' AND :old.fin_kenmerk_key IS NOT NULL
THEN
@@ -389,22 +250,6 @@ BEGIN
END;
/
CREATE_TRIGGER(fin_t_verkoopfactuurkop_b_i)
BEFORE INSERT ON fin_verkoopfactuurkop
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fin_verkoopfactuurkop_key, fin_s_verkoopfactuurkop_key);
END;
/
CREATE_TRIGGER(fin_t_fin_verkoopfactuur_b_iu)
BEFORE INSERT OR UPDATE ON fin_verkoopfactuur
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fin_verkoopfactuur_key, fin_s_fin_verkoopfactuur_key);
END;
/
REGISTERRUN('$Id$')
REGISTERRUN('$Workfile: FIN_TRI.SRC $','$Revision$')
#endif // FIN

Some files were not shown because too many files have changed in this diff Show More