598 Commits

Author SHA1 Message Date
Jos Groot Lipman
cdf619d3ca #90075 Ondersteuning werkplekbeheer in verschillende tijdzones
svn path=/Database/branches/DB52/; revision=70955
2025-11-17 09:51:47 +00:00
Jos Groot Lipman
bc9d25b8b0 FCLT#90168 IMP_LOG met '$PURGE$' tracking moet je langer bewaren dan drie maand
svn path=/Database/branches/DB52/; revision=70927
2025-11-13 12:40:19 +00:00
Maykel Geerdink
060ab15966 PNBR#91355: Foutmelding bij openen bestelvoorraad via menubalk.
svn path=/Database/branches/DB52/; revision=70908
2025-11-12 11:25:06 +00:00
Maykel Geerdink
c38253d10e PNBR#91355: Foutmelding bij openen bestelvoorraad via menubalk.
svn path=/Database/branches/DB52/; revision=70905
2025-11-12 10:27:51 +00:00
Jos Groot Lipman
7d258160c3 FCLT#90062 Toleranter maken van referentieherkenning in factuurimport
svn path=/Database/branches/DB52/; revision=70890
2025-11-11 12:36:43 +00:00
Maykel Geerdink
269e729f2c PNBR#91355: Foutmelding bij openen bestelvoorraad via menubalk.
svn path=/Database/branches/DB52/; revision=70871
2025-11-10 13:58:43 +00:00
Jos Groot Lipman
01929844a6 FCLT#90168 Setting S(puo_fclt_web_apikey) na anonimiseren weer correct instellen
svn path=/Database/branches/DB52/; revision=70863
2025-11-10 09:17:39 +00:00
Jos Groot Lipman
315f8673e3 FCLT#91196 Audit gebruik telefoonlijst verbeteren
svn path=/Database/branches/DB52/; revision=70716
2025-10-27 13:03:59 +00:00
39000ed033 BRCF#90569 spelvoud
svn path=/Database/branches/DB52/; revision=70661
2025-10-20 11:09:02 +00:00
d7c87b79fd BRCF#90569 +lcl
svn path=/Database/branches/DB52/; revision=70655
2025-10-20 08:05:00 +00:00
91f45d87df Versie DB52
svn path=/Database/branches/DB52/; revision=70650
2025-10-17 12:37:44 +00:00
6fe6b0ba3b Branch DB52
svn path=/Database/branches/DB52/; revision=70649
2025-10-17 11:52:10 +00:00
Jos Groot Lipman
f0952cae61 BSSC#91004 E-mailnotificaties fiatteren ontbreken
svn path=/Database/trunk/; revision=70644
2025-10-16 14:10:57 +00:00
Jos Groot Lipman
773494d15c NOVA#85796 Veranderingen bijhouden in Verbruiksartikelen voor contractbeheerder
svn path=/Database/trunk/; revision=70630
2025-10-15 15:50:25 +00:00
Jos Groot Lipman
517d50a462 AAXX#91083 Contract notificatie houdt geen rekening met fiatteren
svn path=/Database/trunk/; revision=70621
2025-10-15 13:14:55 +00:00
Erik Groener
8f7d4260e7 UWVA#88793 Datummogelijkheden verbruiksartikelen catalogus per locatie
- vervaldatum moet >= zijn

svn path=/Database/trunk/; revision=70606
2025-10-14 09:42:03 +00:00
Jos Groot Lipman
71ebaf828e FCLT#90168 De regel met 'Jammer maar helaas' heeft geen afsluitende commentaar */
svn path=/Database/trunk/; revision=70570
2025-10-08 08:17:33 +00:00
Erik Groener
9fa65f4d57 FCLT#87173 Ontbrekende kolom taakcategorie in importsheets voor inspecties toevoegen
onnodige line wraps in fac_update_inspectie verwijderd.

svn path=/Database/trunk/; revision=70569
2025-10-08 08:02:47 +00:00
Erik Groener
32a8ab84a7 FCLT#87173 Ontbrekende kolom taakcategorie in importsheets voor inspecties toevoegen
svn path=/Database/trunk/; revision=70560
2025-10-07 16:22:24 +00:00
Jos Groot Lipman
91314151fe LPNL#90079 Locatierestrictie bezoekersgegevens naar systeemadres werkt niet
svn path=/Database/trunk/; revision=70537
2025-10-06 12:36:02 +00:00
Jos Groot Lipman
0dff4099d4 FCLT#90865 FAC_HOURLY implementeren
svn path=/Database/trunk/; revision=70532
2025-10-06 08:10:58 +00:00
Erik Groener
9c0c22820e FCLT#90099 Upgrade productie: unique constraint (PRS_U_PRS_BEDRIJF_NAAM_UPPER)
svn path=/Database/trunk/; revision=70527
2025-10-06 07:09:02 +00:00
07a764dae8 AQQA#87641 Omschrijving
svn path=/Database/trunk/; revision=70520
2025-10-03 13:48:20 +00:00
Jos Groot Lipman
73c124ddcd MDUX#90867 /facilitor/setting/bes_bestelopdr_prefix en /facilitor/setting/bes_bestelling_prefix toevoegen aan de XML
svn path=/Database/trunk/; revision=70504
2025-10-02 12:41:19 +00:00
Maykel Geerdink
34bf0d6a26 BVB1#90886: Bugtest-opdracht geeft foutmelding bij mailversturing.
svn path=/Database/trunk/; revision=70500
2025-10-02 09:27:59 +00:00
Jos Groot Lipman
1fe71da1ff FCLT#90097 Probleem met lege kalenderoptie toont '-1' in show-mode
svn path=/Database/trunk/; revision=70498
2025-10-02 07:55:22 +00:00
Jos Groot Lipman
5010df55cc VLKC#89552 Popup bij meldingen buiten werktijden Facilitydesk
svn path=/Database/trunk/; revision=70494
2025-10-01 14:44:44 +00:00
Jos Groot Lipman
51c4d778b6 VLKC#89552 Popup bij meldingen buiten werktijden Facilitydesk
svn path=/Database/trunk/; revision=70493
2025-10-01 14:42:16 +00:00
Maykel Geerdink
0834147f77 FMHN#90557: Reserveringsfout ondanks correcte invoer.
svn path=/Database/trunk/; revision=70492
2025-10-01 14:31:25 +00:00
89cf1645f2 DLLG#90075 Rekening houden met reserveringen bij opdrachten, en efficienter de server_timezone ophalen (en gebruiken).
svn path=/Database/trunk/; revision=70489
2025-10-01 12:57:23 +00:00
e536ba45c5 DLLG#90075 localized reserveringtijden in de UDR, en de reserveringtijden in de XML alleen in lokale tijd opnemen
svn path=/Database/trunk/; revision=70487
2025-10-01 11:46:55 +00:00
Jos Groot Lipman
ff30064704 MARX#90312 Structurele ondersteuning voor mail2whatever
svn path=/Database/trunk/; revision=70480
2025-10-01 08:09:32 +00:00
Erik Groener
e83da85fc5 FCLT#87173 Ontbrekende kolom taakcategorie in importsheets voor inspecties toevoegen
svn path=/Database/trunk/; revision=70475
2025-09-30 17:22:46 +00:00
Jos Groot Lipman
c92be95a11 DLLG#90075 Tijdzone ook in de XML
svn path=/Database/trunk/; revision=70472
2025-09-30 14:59:14 +00:00
Jos Groot Lipman
d925c34071 FCLT#90865 FAC_HOURLY implementeren
svn path=/Database/trunk/; revision=70465
2025-09-30 12:33:31 +00:00
Florien Bolks
3a82d5ae69 FCLT#88385 -- laatste commit voor autorisaties
svn path=/Database/trunk/; revision=70463
2025-09-30 11:25:20 +00:00
Jos Groot Lipman
48a3b22259 FCLT#87817 Probleem met onderscheid tussen gekoppelde en gegroepeerde meldingen
svn path=/Database/trunk/; revision=70462
2025-09-30 10:42:46 +00:00
Florien Bolks
5dd9ed1a9f FCLT#88385 -- autorisaties goed zetten globale rechten
svn path=/Database/trunk/; revision=70457
2025-09-30 07:56:05 +00:00
Jos Groot Lipman
4cb8852556 FCLT#90168 Interne en Systeembedrijven hoef je niet te anonimiseren
svn path=/Database/trunk/; revision=70453
2025-09-29 15:47:17 +00:00
Jos Groot Lipman
606b681557 FCLT#90103 Performance optimalisatie res_v_udr_reservering
svn path=/Database/trunk/; revision=70447
2025-09-29 14:22:20 +00:00
Jos Groot Lipman
0601eb9cc8 FCLT#90789 bes.notifybestelopdrbedrijven klopt niet helemaal voor Generieke bedrijven
svn path=/Database/trunk/; revision=70446
2025-09-29 14:14:01 +00:00
d396e4861e BRCF#90569 Instelling omschrijving te groot ..
svn path=/Database/trunk/; revision=70439
2025-09-29 12:07:42 +00:00
66468215a6 BRCF#90569 samenvatten melding ook achter de afmeldtekst instelling
svn path=/Database/trunk/; revision=70438
2025-09-29 11:59:45 +00:00
Jos Groot Lipman
9534ea8650 FCLT#90837 Firefox warning: Content-Security-Policy: Ignoring ‘block-all-mixed-content’
FCLT#84701 Standaardkoppelingen via interface 

svn path=/Database/trunk/; revision=70433
2025-09-29 10:08:18 +00:00
Erik Groener
c9cb08d7a8 UWVA#88793 Datummogelijkheden verbruiksartikelen catalogus per locatie
svn path=/Database/trunk/; revision=70423
2025-09-26 07:24:43 +00:00
Jos Groot Lipman
e3ac42f448 Vele teksten door vele mensen
svn path=/Database/trunk/; revision=70418
2025-09-24 14:58:26 +00:00
Jos Groot Lipman
8c9b5f95e0 FCLT#84701 prs_bedrijfadres_template toevoeging
svn path=/Database/trunk/; revision=70417
2025-09-24 14:57:11 +00:00
Florien Bolks
fa678f62be FCLT#88385 -- poging 2
svn path=/Database/trunk/; revision=70413
2025-09-24 12:16:27 +00:00
Florien Bolks
ad23d8f55d FCLT#88385 -- hele map commit
svn path=/Database/trunk/; revision=70412
2025-09-24 12:04:05 +00:00
Jos Groot Lipman
177f42bf73 FCLT#88579 Facilitor utf-8 ondersteuning (stap 1)
svn path=/Database/trunk/; revision=70411
2025-09-24 10:58:30 +00:00
Jos Groot Lipman
0812a0f5e3 LPNL#90079 Locatierestrictie bezoekersgegevens naar systeemadres werkt niet
svn path=/Database/trunk/; revision=70410
2025-09-24 10:52:08 +00:00
Peter Feij
ef15896029 NOVA#85796 Veranderingen bijhouden in Verbruiksartikelen
svn path=/Database/trunk/; revision=70405
2025-09-24 08:25:40 +00:00
Jos Groot Lipman
bc352d2a74 VNOG#87525 Vraag over CC/BCC in Facilitor-mails
svn path=/Database/trunk/; revision=70400
2025-09-23 15:53:26 +00:00
Jos Groot Lipman
7173570793 UWVA#90681 Achtergrond van QR-codes instelbaar maken (nu hardcoded wit)
svn path=/Database/trunk/; revision=70393
2025-09-23 10:21:59 +00:00
Florien Bolks
5ec59e9cb0 FCLT#88385 -- extra kolom toegevoegd voor aanmaken standaardmeldingen
svn path=/Database/trunk/; revision=70377
2025-09-22 09:47:28 +00:00
Erik Groener
6f58dbff16 AAXX#90665 Contractkenmerk voor 'alle' contracten komt niet in de XML
svn path=/Database/trunk/; revision=70366
2025-09-19 06:54:45 +00:00
Florien Bolks
adbaa85fc9 FCLT#88385 -- _TESTERS toegevoegd
svn path=/Database/trunk/; revision=70364
2025-09-18 13:58:57 +00:00
Jos Groot Lipman
9c66ad8040 FCLT#90715 fac_notificatie record ook opnemen in XML data
svn path=/Database/trunk/; revision=70355
2025-09-18 07:52:31 +00:00
Florien Bolks
eb17b3bf3a FCLT#88385 -- rechten verbeteren
svn path=/Database/trunk/; revision=70354
2025-09-18 07:43:49 +00:00
Jos Groot Lipman
4521f812f5 FCLT#90715 fac_notificatie record ook opnemen in XML data
svn path=/Database/trunk/; revision=70349
2025-09-17 15:03:42 +00:00
0ebd69c753 NOVA#89239 refactoring
svn path=/Database/trunk/; revision=70347
2025-09-17 14:14:03 +00:00
8cd7481d67 FCLT#90168 unused settings verwijderen
svn path=/Database/trunk/; revision=70345
2025-09-17 12:35:18 +00:00
Florien Bolks
14539d0d4e FCLT#88385 -- meldingen
svn path=/Database/trunk/; revision=70317
2025-09-15 09:13:28 +00:00
Florien Bolks
37e165d586 FCLT#88385 -- wijziging meldingenstructuur, help me pagina verwijderen, icoon storing aanpassen
svn path=/Database/trunk/; revision=70314
2025-09-15 08:42:28 +00:00
Erik Groener
63b74b7dd4 STCH#90505 ORA-06502 in CNT.sprintf
svn path=/Database/trunk/; revision=70311
2025-09-15 07:38:13 +00:00
Florien Bolks
e0a158e57c FCLT#88385 -- error
svn path=/Database/trunk/; revision=70296
2025-09-11 14:38:27 +00:00
Florien Bolks
9211ad92d9 FCLT#88385 -- poging
svn path=/Database/trunk/; revision=70295
2025-09-11 14:25:46 +00:00
Florien Bolks
cb4526bba0 lockoff
svn path=/Database/trunk/; revision=70292
2025-09-11 13:40:46 +00:00
Florien Bolks
1f6536ac5e FCLT#88385 -- debug
svn path=/Database/trunk/; revision=70291
2025-09-11 13:18:34 +00:00
Florien Bolks
aac61b35d0 FCLT#88385 -- fix
svn path=/Database/trunk/; revision=70288
2025-09-11 12:37:20 +00:00
Peter Feij
ad133e08b9 UWVA#88793 Datummogelijkheden verbruiksartikelen catalogus per locatie
svn path=/Database/trunk/; revision=70287
2025-09-11 12:30:48 +00:00
Florien Bolks
b6082a5617 FCLT#88385 -- number naar type
svn path=/Database/trunk/; revision=70286
2025-09-11 12:26:19 +00:00
Florien Bolks
91b7878c8c FCLT#88385 -- widgetpagina aanmaeken
svn path=/Database/trunk/; revision=70285
2025-09-11 12:13:23 +00:00
Peter Feij
7cf55b6b45 YASK#90640 goedgekeurde facturen meetellen voor totaalcheck ook als ze later zijn
svn path=/Database/trunk/; revision=70282
2025-09-11 11:43:40 +00:00
Florien Bolks
6d74457050 FCLT#88385 -- update
svn path=/Database/trunk/; revision=70280
2025-09-11 09:54:27 +00:00
Florien Bolks
d2ad61c0ec FCLT#88385 -- errors
svn path=/Database/trunk/; revision=70268
2025-09-10 12:45:16 +00:00
Florien Bolks
0fb92a3b82 FCLT#88385 -- fouten eruit gehaald
svn path=/Database/trunk/; revision=70264
2025-09-10 10:17:00 +00:00
Florien Bolks
148d9819e8 FCLT#88385 -- fouten uit SQL gehaald
svn path=/Database/trunk/; revision=70262
2025-09-10 08:08:53 +00:00
Jos Groot Lipman
d3266f7d7e FCLT#90608 Notificatiesjob altijd met lage prio versturen
svn path=/Database/trunk/; revision=70256
2025-09-09 13:35:43 +00:00
Jos Groot Lipman
42208c7b16 FCLT#90601 Exchange via tasker eigen queue
svn path=/Database/trunk/; revision=70253
2025-09-09 12:41:18 +00:00
Florien Bolks
53e23da0c6 FCLT#88705 -- intiele inrichting
svn path=/Database/trunk/; revision=70252
2025-09-09 12:19:19 +00:00
dacbf069b7 AQQA#87641 S(mld_uses_requestor_location) toegevoegd
svn path=/Database/trunk/; revision=70240
2025-09-08 11:55:02 +00:00
Jos Groot Lipman
a9bf464a4f MARX#89543 Overbodige index droppen
svn path=/Database/trunk/; revision=70239
2025-09-08 11:40:11 +00:00
Jos Groot Lipman
55b6115406 MARX#89543 Overbodige index droppen
svn path=/Database/trunk/; revision=70238
2025-09-08 11:36:05 +00:00
470d61e4a6 PZEE#90449 Startdatum+tijd opnieuw evalueren indien aangepast
svn path=/Database/trunk/; revision=70201
2025-09-03 12:34:10 +00:00
Florien Bolks
c4ad5d25e8 Test mogelijke aanpassingen intiele inrichting FMIS
svn path=/Database/trunk/; revision=70194
2025-09-03 08:21:06 +00:00
Peter Feij
e7381426ea LOGC#90445 Mijlpalen een levensduur kunnen geven - zo wel
svn path=/Database/trunk/; revision=70187
2025-09-02 11:35:33 +00:00
Erik Groener
44478bade2 YASK#79801 Kan adresgegevens bij het gebouw niet uploaden met de inventarisati
svn path=/Database/trunk/; revision=70182
2025-09-02 10:07:46 +00:00
Erik Groener
5a9e7a7a7f FCLT#86145 Ontbrekende triggers bij tabellen met primary key en sequence
svn path=/Database/trunk/; revision=70154
2025-08-29 08:23:44 +00:00
Erik Groener
8eb459d4db FCLT#89765 Problemen afgemelde meldingen na update functie #83589
svn path=/Database/trunk/; revision=70150
2025-08-29 07:21:34 +00:00
Peter Feij
ffddada0db LOGC#90445 Mijlpalen een levensduur kunnen geven
svn path=/Database/trunk/; revision=70143
2025-08-28 14:45:45 +00:00
Peter Feij
649458e5b4 FCLT#88619 Naamgeving kenmerkdomein pagina's
STER#85227 verwijderde waarden in eigen tabel niet meetellen

svn path=/Database/trunk/; revision=70139
2025-08-28 12:20:10 +00:00
Erik Groener
1ff5ae4c98 FMHN#75443 Importeren "Extern nr" bij Rijnstraat 8 artikelen
svn path=/Database/trunk/; revision=70121
2025-08-27 11:25:56 +00:00
Erik Groener
e005782992 FMHN#75443 Importeren "Extern nr" bij Rijnstraat 8 artikelen
svn path=/Database/trunk/; revision=70120
2025-08-27 10:03:14 +00:00
Peter Feij
c35817a860 DLLG#90075 Ondersteuning werkplekbeheer in verschillende tijdzones
svn path=/Database/trunk/; revision=70112
2025-08-26 16:06:17 +00:00
Erik Groener
f74ef73baf FCLT#89765 Problemen afgemelde meldingen na update functie #83589
svn path=/Database/trunk/; revision=70109
2025-08-26 12:38:35 +00:00
Peter Feij
f2bc1e6105 FCLT#85573 Bericht van falende notificaties aangepast (lcl)
svn path=/Database/trunk/; revision=70103
2025-08-26 09:47:50 +00:00
Erik Groener
f4bb030455 PROR#89199 Per melding slechts één object selecteren
svn path=/Database/trunk/; revision=70101
2025-08-25 13:52:28 +00:00
Jos Groot Lipman
52a38be004 MARX#89038 Zetten definitieve fac_bijlagen_refkey gebruikt geen indexen
svn path=/Database/trunk/; revision=70094
2025-08-25 11:38:57 +00:00
Erik Groener
4bf288567f PROR#89199 Per melding slechts één object selecteren
svn path=/Database/trunk/; revision=70090
2025-08-25 10:06:42 +00:00
Jos Groot Lipman
7fb026a498 FCLT#90149 Upgrade tsk package robuuster maken
svn path=/Database/trunk/; revision=70088
2025-08-25 09:29:18 +00:00
Jos Groot Lipman
b0a35f97d6 FCLT#90149 Upgrade tsk package robuuster maken
svn path=/Database/trunk/; revision=70087
2025-08-25 08:58:39 +00:00
Erik Groener
f424a30baa PROR#89199 Per melding slechts één object selecteren
svn path=/Database/trunk/; revision=70084
2025-08-25 06:27:42 +00:00
Peter Feij
cd65b4f5f1 SGGR#81078 Sensoren: ondersteuning triggerwaarde voor status-sensoren, GUI
svn path=/Database/trunk/; revision=70083
2025-08-22 14:22:47 +00:00
Peter Feij
f43925431a SGGR#81078 Sensoren: ondersteuning triggerwaarde voor status-sensoren
svn path=/Database/trunk/; revision=70081
2025-08-22 14:21:05 +00:00
Peter Feij
184328f5e1 SGGR#81078 Sensoren: ins_v_udr_sensordata voor actuele data, ook leuk
svn path=/Database/trunk/; revision=70079
2025-08-22 10:00:55 +00:00
Peter Feij
fbb961928d SGGR#81078 Sensoren: ins_v_udr_sensordata voor actuele data, ook leuk
svn path=/Database/trunk/; revision=70078
2025-08-22 09:54:15 +00:00
Peter Feij
91b3629a16 SGGR#81078 Sensoren: ruimte_key zodat ook geschikt voor Graphics
svn path=/Database/trunk/; revision=70077
2025-08-21 16:27:04 +00:00
Peter Feij
a6dcc98cdf SGGR#81078 Sensoren: geldigheid, tolerantie
svn path=/Database/trunk/; revision=70070
2025-08-21 10:42:12 +00:00
Jos Groot Lipman
b0db6fab52 SGSF#90318 Generieke notificatie voor reserveringen werkt niet zonder catering
svn path=/Database/trunk/; revision=70068
2025-08-21 08:59:45 +00:00
Jos Groot Lipman
66f6dd960d FCLT#88579 UTF-8 indexje INS_I_INS_KENMERK_KENMERK2 niet nodig
FCLT#89765 Conversie van oude actiecode bitjes
FCLT#90179 fac_groep_omschrijving wat langer

svn path=/Database/trunk/; revision=70064
2025-08-20 14:58:32 +00:00
Erik Groener
4eb7f9f33a FCLT#89765 Problemen afgemelde meldingen na update functie #83589
svn path=/Database/trunk/; revision=70057
2025-08-20 12:14:21 +00:00
Maykel Geerdink
dc778fea91 FCLT#89443: Wijzigingen en verbeteringsvoorstellen MJOB module (Punt 7).
svn path=/Database/trunk/; revision=70027
2025-08-18 11:55:37 +00:00
Erik Groener
e8d8b89cff FCLT#90179 Lengte FAC_GROEP_OMSCHRIJVING van 30 naar 60
svn path=/Database/trunk/; revision=70023
2025-08-18 07:56:59 +00:00
Peter Feij
7deceaab16 LOGC#90264 Ook geaccepteerde meldingen nog kunnen afwijzen
svn path=/Database/trunk/; revision=70010
2025-08-14 14:10:41 +00:00
Jos Groot Lipman
4a680b6525 VLKC#90054 Vaste bijlage ook opnemen in XML. Ook: typeopdr was weggevallen, weer teruggehaald.
svn path=/Database/trunk/; revision=70004
2025-08-14 09:23:58 +00:00
Jos Groot Lipman
d34ea750b9 PNBR#87100 Fout in flex-uitdrukking: Ongeldig getal ORA-01722 iets betere logging
svn path=/Database/trunk/; revision=70001
2025-08-14 07:21:30 +00:00
Jos Groot Lipman
7a51ca7330 FCLT#90263 Opschonen sourcecode
svn path=/Database/trunk/; revision=70000
2025-08-13 16:07:04 +00:00
Jos Groot Lipman
8bd64c7bfe MARX#90181 http status bij errors in API aanroepen per persoon kunnen instellen.
svn path=/Database/trunk/; revision=69993
2025-08-13 13:17:50 +00:00
Maykel Geerdink
99539596f4 FCLT#89443: Wijzigingen en verbeteringsvoorstellen MJOB module (Punt 7).
svn path=/Database/trunk/; revision=69992
2025-08-13 13:11:20 +00:00
Jos Groot Lipman
5d783e2dc2 FCLT#88579 Facilitor utf-8 ondersteuning
svn path=/Database/trunk/; revision=69990
2025-08-13 11:05:07 +00:00
Peter Feij
1b51be6440 FCLT#87498 Gebruiksinfo per ruimte op basis van reserveringen, ruimte en werkplek
svn path=/Database/trunk/; revision=69978
2025-08-12 14:37:31 +00:00
Jos Groot Lipman
bcfffc159a MARX#90181 http status bij errors in API aanroepen per persoon kunnen instellen.
svn path=/Database/trunk/; revision=69977
2025-08-12 14:31:35 +00:00
Peter Feij
ef0381ac46 FCLT#87498 Gebruiksinfo per ruimte op basis van reserveringen, ruimte en werkplek
svn path=/Database/trunk/; revision=69975
2025-08-12 11:51:08 +00:00
Peter Feij
d9c64ac1ef FCLT#87498 Gebruiksinfo per ruimte op basis van reserveringen, ruimte en werkplek -saveonly voor later, gaat nog aangepast worden
svn path=/Database/trunk/; revision=69966
2025-08-12 09:57:06 +00:00
Jos Groot Lipman
86acfb4fc3 FCLT#90168 Setting S(puo_fclt_web_apikey) na anonimiseren weer correct instellen
svn path=/Database/trunk/; revision=69962
2025-08-12 08:13:19 +00:00
Peter Feij
5ede3069f5 FCLT#87498 Gebruiksinfo per ruimte op basis van sensordata
svn path=/Database/trunk/; revision=69957
2025-08-11 13:09:40 +00:00
Jos Groot Lipman
15188ef572 UWVA#62916 Nooit achterhaald waarom immediate XML generatie soms zo lang duurde maar sinds we alles via de tasker doen speelt dit niet meer.
svn path=/Database/trunk/; revision=69949
2025-08-07 16:00:46 +00:00
Peter Feij
63d5e4c252 LOGC#90192 Standaard Mail2Melding gaf onterecht bouncebericht als geen bijlagen gebruikt worden
svn path=/Database/trunk/; revision=69948
2025-08-07 14:48:53 +00:00
Erik Groener
f979712808 FCLT#89720 Systeemadres per vakgroep kunnen definieren ==> ook meerdere toestaan
* / na plsql script toegevoegd

svn path=/Database/trunk/; revision=69942
2025-08-07 08:17:20 +00:00
Erik Groener
928fe530e8 FCLT#90097 Probleem met lege kalenderoptie toont '-1' in show-mode
svn path=/Database/trunk/; revision=69941
2025-08-07 07:21:06 +00:00
Jos Groot Lipman
ee6955caab FCLT#90168 mld_melding_onderwerp is 200 lang dus subject in PROCEDURE processemail daar ook op afkappen
svn path=/Database/trunk/; revision=69933
2025-08-06 11:12:06 +00:00
Erik Groener
90f0033864 FCLT#89903 prs_bedrijfadres_srtnoti mist indexen
svn path=/Database/trunk/; revision=69931
2025-08-06 10:53:55 +00:00
Erik Groener
c22cd4172d FCLT#90099 Upgrade productie: unique constraint (PRS_U_PRS_BEDRIJF_NAAM_UPPER)
moet zijn CONSTRAINT prs_c_prs_bedrijf_intern

svn path=/Database/trunk/; revision=69929
2025-08-06 10:20:21 +00:00
Erik Groener
5797ff142e FCLT#90099 Upgrade productie: unique constraint (PRS_U_PRS_BEDRIJF_NAAM_UPPER)
svn path=/Database/trunk/; revision=69928
2025-08-06 09:54:42 +00:00
Erik Groener
8652a516a0 FCLT#89720 Systeemadres per vakgroep kunnen definieren ==> ook meerdere toestaan
svn path=/Database/trunk/; revision=69926
2025-08-06 08:58:51 +00:00
Erik Groener
dd3a3001e5 FCLT#89720 Systeemadres per vakgroep kunnen definieren ==> ook meerdere toestaan
svn path=/Database/trunk/; revision=69925
2025-08-06 08:56:17 +00:00
Peter Feij
b3e3d85944 FCLT#88667 $rev$
svn path=/Database/trunk/; revision=69922
2025-08-05 13:12:32 +00:00
Peter Feij
64f1e620c9 FCLT#88667 Beschrijving van onze interne (inwendige) XML structuur in XSD-format en JSON Schema (draft-07).
Hier zouden we intern tegen kunnen valideren met 
<facilitor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="facilitor.xsd">

maar aannemelijker is dat dit hopelijk ergens handig gaat zijn in onze weg naar openheid, MCP, autodiscovery en weet ik wat al nog meer. Zo niet, dan stond het maar mooi ergens in SVN.

svn path=/Database/trunk/; revision=69921
2025-08-05 13:09:51 +00:00
Peter Feij
202db18e84 FCLT#90103 RES UDR basisviews door AI significant laten verbeteren; geen inhoudelijk effect
svn path=/Database/trunk/; revision=69888
2025-07-30 15:24:36 +00:00
Peter Feij
a2fc9cffc9 FCLT#90062 Toleranter maken van referentieherkenning in factuurimport
svn path=/Database/trunk/; revision=69886
2025-07-30 14:12:23 +00:00
Jos Groot Lipman
e927cec7fc FCLT#88993 Einde ondersteuning database prs.setpassword en prs.testpassword
svn path=/Database/trunk/; revision=69616
2025-07-01 11:38:32 +00:00
Jos Groot Lipman
e1a52a698e Merge 2025.2 DB51a patches
svn path=/Database/trunk/; revision=69611
2025-07-01 10:25:23 +00:00
265f23d665 FZKH#88777 typo
svn path=/Database/trunk/; revision=69513
2025-06-23 09:22:38 +00:00
Peter Feij
5d4cbd1539 we are careless
svn path=/Database/trunk/; revision=69460
2025-06-17 22:11:44 +00:00
Peter Feij
06891146be FCLT#84467 Syntaxfix
svn path=/Database/trunk/; revision=69362
2025-06-10 14:19:42 +00:00
Peter Feij
f32c05f8d3 FCLT#87091 labels aangepast
svn path=/Database/trunk/; revision=69357
2025-06-10 13:26:10 +00:00
Peter Feij
8ed71d393e FCLT#84467 mgt_kenmerkrolcoderel_x gedefinieerd (PRS vs REL)
svn path=/Database/trunk/; revision=69354
2025-06-10 12:59:47 +00:00
Peter Feij
58c290dc79 FCLT#84467 fix voor contactpersonen, voor EXTREL
svn path=/Database/trunk/; revision=69352
2025-06-10 12:23:56 +00:00
Erik Groener
4ff89654ec CARG#85666 Extra vast text in mail popup igv mld_opdr_ask_mail_if_unknown
* label aangepast

svn path=/Database/trunk/; revision=69346
2025-06-10 09:50:50 +00:00
55e7e3c51a AREO#83998 +lcl
svn path=/Database/trunk/; revision=69330
2025-06-06 10:57:54 +00:00
Peter Feij
12e7b4f62b FCLT#85585 Ander label voor de varianten
svn path=/Database/trunk/; revision=69317
2025-06-05 13:03:05 +00:00
Peter Feij
d53d99b424 FCLT#84467 RESBOF kenmerken bestond uit 2 ranges, verbeterd
svn path=/Database/trunk/; revision=69314
2025-06-05 12:45:01 +00:00
Peter Feij
bb3943fa46 FCLT#87498 sensordata agv integratie/samenwerking SWYCS - Facilitor
svn path=/Database/trunk/; revision=69309
2025-06-05 10:59:37 +00:00
Peter Feij
498c3a9d77 FCLT#84467 oplossing voor oud gedrag dat BO zonder extra rechten ook FEFO kenmerken kan zien. Change is dat hij die ook (als de status dat toestaat) mag wijzigen, zie ticket.
svn path=/Database/trunk/; revision=69306
2025-06-05 09:07:01 +00:00
Jos Groot Lipman
5495154b56 FCLT#89182 UDR: Sleuteloverzicht ook standaard een rapport_groep geven
svn path=/Database/trunk/; revision=69305
2025-06-05 07:12:14 +00:00
99c6b8bdaf FCLT#87091 buttons_in_hamburger uitgebreid met de publiceer knop
svn path=/Database/trunk/; revision=69304
2025-06-05 07:00:51 +00:00
Peter Feij
943800b43f FCLT#84467 Labels van menutaken voor kenmerken gelijkgetrokken
svn path=/Database/trunk/; revision=69303
2025-06-04 23:04:19 +00:00
Peter Feij
7b6fb99df1 FCLT#85585 mailsettings (ook) voor mldmgt
svn path=/Database/trunk/; revision=69302
2025-06-04 23:00:09 +00:00
a47059fd1f BLOS#81864 eenheid van acceptatie-tijd pakken, niet van doorlooptijd
svn path=/Database/trunk/; revision=69291
2025-06-04 11:57:00 +00:00
d4fd266a79 FCLT#87091 + lcl's
svn path=/Database/trunk/; revision=69288
2025-06-04 11:28:49 +00:00
36ca51273b FCLT#87091 Te lange setting naam
FCLT#87835 Vereiste autorisaties voor S(ai_enabled) & S(ai_apikey) aangepast naar resp. WEB_FACTAB & WEB_FACFAC (was andersom), en setting omschrijving van S(ai_enabled) ingekort zodat deze in fac_setting_description past

svn path=/Database/trunk/; revision=69286
2025-06-04 10:05:41 +00:00
6017e884a3 BLOS#81864 geen complexe types opleveren, maar gewoon (acceptatietijd_) werkdgn & werkuren (en ook het ongevraagde, complexe type doorlooptijd weer weg)
svn path=/Database/trunk/; revision=69285
2025-06-04 10:02:03 +00:00
Erik Groener
421dd7c0da BLCC#88329 Goedkeuringsflow huurcontracten werkt niet zonder contractbedrag
svn path=/Database/trunk/; revision=69280
2025-06-04 09:18:57 +00:00
f697fe9e68 FCLT#87091 + Omschrijving
svn path=/Database/trunk/; revision=69269
2025-06-03 18:42:14 +00:00
ff35d393ae FCLT#87091 +lcl
svn path=/Database/trunk/; revision=69266
2025-06-03 17:42:32 +00:00
Jos Groot Lipman
f42f503d01 FCLT#85585 Standaardwerking van fac.processemail voor Mail2Melding uitbreiden
svn path=/Database/trunk/; revision=69265
2025-06-03 15:19:43 +00:00
Jos Groot Lipman
24d58fac1e Diverse teksten door diverse personen
svn path=/Database/trunk/; revision=69264
2025-06-03 15:18:55 +00:00
8cdce76058 ALLR#80285 +komma
svn path=/Database/trunk/; revision=69263
2025-06-03 14:50:56 +00:00
Erik Groener
d14ab50095 BLCC#88329 Goedkeuringsflow huurcontracten werkt niet zonder contractbedrag
svn path=/Database/trunk/; revision=69261
2025-06-03 13:59:16 +00:00
f56463e583 BLCC#88329 syntax-fix
svn path=/Database/trunk/; revision=69259
2025-06-03 13:09:57 +00:00
9a22cc3c6f VLKC#89252 fac_reserved_number2 -> mld_pessismistisch_hergoedkeuren
svn path=/Database/trunk/; revision=69257
2025-06-03 13:02:35 +00:00
Erik Groener
0c57a6f446 BLCC#88329 Goedkeuringsflow huurcontracten werkt niet zonder contractbedrag
svn path=/Database/trunk/; revision=69256
2025-06-03 12:56:41 +00:00
4105cd8581 FCLT#89251 GPT-4o -> GPT-4.1
svn path=/Database/trunk/; revision=69254
2025-06-03 12:14:43 +00:00
Jos Groot Lipman
59191f81af NOVA#89217 fac_v_noti_facorderqueuefails iets explicieter 'reservering' vermelden
svn path=/Database/trunk/; revision=69246
2025-06-03 10:56:35 +00:00
bb9bf3b1ed FCLT#87091 mld_melding -> mld_melding_key
svn path=/Database/trunk/; revision=69245
2025-06-03 10:38:06 +00:00
Jos Groot Lipman
ecde712832 FCLT#88498 Tijdens tracking: ORA-01000: Maximum aantal open cursors is overschreden.
svn path=/Database/trunk/; revision=69241
2025-06-03 08:12:03 +00:00
ace86ec28d ALLR#80285 + res_ruimte_limiet (niet in res_rsv_ruimte)
svn path=/Database/trunk/; revision=69240
2025-06-03 07:08:12 +00:00
Jos Groot Lipman
f9c4047e1b LOGC#83589 Melding gereed melden en na x dagen automatisch definitief afmelden
svn path=/Database/trunk/; revision=69234
2025-06-02 14:11:41 +00:00
Peter Feij
f33cf874b8 FCLT#84467 Rolcode wordt nu ook in de roundtrips (export/import) meegenomen
svn path=/Database/trunk/; revision=69233
2025-06-02 14:09:02 +00:00
Peter Feij
dd3459e754 FCLT#84467 BO-only meldingskenmerken rolcode 4 (rest is default 7 lijkt me ok)
svn path=/Database/trunk/; revision=69231
2025-06-02 13:17:53 +00:00
Jos Groot Lipman
71e439cceb AAIT#88916 Opdrachten bij melding (DO) komen niet meer aan bij de leverancier
svn path=/Database/trunk/; revision=69226
2025-06-02 11:55:46 +00:00
d3f0098724 ALLR#80285 + res_ruimte_limiet
svn path=/Database/trunk/; revision=69213
2025-06-02 07:21:24 +00:00
61713eb903 FZKH#87243 Default uit (vind ik)
svn path=/Database/trunk/; revision=69211
2025-06-01 17:40:00 +00:00
b1dc043ed5 FZKH#87243 Alvast de setting toegevoegd voor de threshold voor compacte weergave (= onderdruk lege kolommen)
svn path=/Database/trunk/; revision=69204
2025-05-30 21:12:58 +00:00
6255d58c56 FZKH#87243 conversie om nieuw bitje "[b]voor zichtbaarheid[/b]: [i]in meldingenbord[/i]" aan te zetten
svn path=/Database/trunk/; revision=69203
2025-05-30 21:09:14 +00:00
Peter Feij
96f3aa36b3 FCLT#85585 Standaardwerking van fac.processemail voor Mail2Melding uitbreiden
svn path=/Database/trunk/; revision=69187
2025-05-28 14:50:12 +00:00
Jos Groot Lipman
ad6800612d FCLT#88993 Einde ondersteuning database prs.setpassword en prs.testpassword
svn path=/Database/trunk/; revision=69186
2025-05-28 13:35:43 +00:00
Maykel Geerdink
ff3dcf8f5c PZEE#88176: Pragmatisch Voorraadbeheer en Monitoring (voor Representatieartikelen).
svn path=/Database/trunk/; revision=69183
2025-05-28 13:13:49 +00:00
Peter Feij
359011d53e FCLT#85585 Standaardwerking van fac.processemail voor Mail2Melding uitbreiden savepoint
svn path=/Database/trunk/; revision=69168
2025-05-27 21:52:02 +00:00
4ceee0d1f8 FCLT#87835 + comment
svn path=/Database/trunk/; revision=69155
2025-05-27 11:24:23 +00:00
Erik Groener
33b2e60e35 FZKH#88777 Vanuit template vooringevulde melding/opdrachten/kenmerkvelden instantiëren
svn path=/Database/trunk/; revision=69152
2025-05-27 06:35:42 +00:00
Peter Feij
30b8abfb70 BCGV#87086 Gedeelde gebruiker (lockeduser) in XML tbv link naar afmeldscherm in bon
svn path=/Database/trunk/; revision=69151
2025-05-26 19:32:32 +00:00
Jos Groot Lipman
a2d42880fc FCLT#88913 Uitzondering van ORDNEW in notificatiequeue uitfaseren
svn path=/Database/trunk/; revision=69149
2025-05-26 15:41:13 +00:00
Jos Groot Lipman
612e8da7d5 FCLT#89182 UDR: Sleuteloverzicht ook standaard een rapport_groep geven
svn path=/Database/trunk/; revision=69148
2025-05-26 15:24:36 +00:00
Jos Groot Lipman
8b9e41c483 FCLT#88913 Uitzondering van ORDNEW in notificatiequeue uitfaseren
svn path=/Database/trunk/; revision=69140
2025-05-26 13:50:56 +00:00
Peter Feij
2296569b0c FCLT#87091 Koppeling naar bericht vanuit major incidents in self-service portal
svn path=/Database/trunk/; revision=69135
2025-05-26 12:22:30 +00:00
Jos Groot Lipman
b33e48b91c FCLT#88913 Uitzondering van ORDNEW in notificatiequeue uitfaseren
svn path=/Database/trunk/; revision=69133
2025-05-26 08:08:15 +00:00
Peter Feij
fa44c2465b FCLT#85585 Standaardwerking van fac.processemail voor Mail2Melding uitbreiden
svn path=/Database/trunk/; revision=69116
2025-05-22 16:51:13 +00:00
Erik Groener
56040d8dd7 GOKO#88934 Notitie op opdrachtbon tonen werkt niet
svn path=/Database/trunk/; revision=69107
2025-05-22 10:10:21 +00:00
Peter Feij
534b8c940d LOGC#89125 optionele acceptatiedatum bij mijlpalen
svn path=/Database/trunk/; revision=69100
2025-05-21 15:13:26 +00:00
Peter Feij
44f2474b5d FCLT#84467 rolcode vervangt de restricties die in volgnummer waren verstopt
svn path=/Database/trunk/; revision=69098
2025-05-21 14:41:30 +00:00
Peter Feij
abc10765aa FCLT#84467 rolcode vervangt de restricties die in volgnummer waren verstopt
FCLT#88353 bedrijf_intern mag toch weer nullipv 0

svn path=/Database/trunk/; revision=69097
2025-05-21 14:34:12 +00:00
Jos Groot Lipman
48477de89f PZEE#88371 Notifybedrijven vaker rekening houden met discipline
FCLT#88913 Uitzondering van ORDNEW in notificatiequeue uitfaseren

svn path=/Database/trunk/; revision=69068
2025-05-20 13:20:38 +00:00
Erik Groener
41b058cf5b FCLT#88353 prs_bedrijf_intern = 0 terug converteren naar NULL, en 0 niet meer toestaan
tikfoutje hersteld

svn path=/Database/trunk/; revision=69056
2025-05-19 11:22:23 +00:00
Erik Groener
7e393c7cc5 FCLT#88353 prs_bedrijf_intern = 0 terug converteren naar NULL, en 0 niet meer toestaan
svn path=/Database/trunk/; revision=69053
2025-05-19 10:22:06 +00:00
Peter Feij
6ed3eb645c FCLT#84467 rolcode vervangt de restricties die in volgnummer waren verstopt -savepoint
AAIT#87224 bedrijfsopmerking vergroten

svn path=/Database/trunk/; revision=69027
2025-05-15 10:07:04 +00:00
Peter Feij
6d411f4dd8 FCLT#84467 rolcode vervangt de restricties die in volgnummer waren verstopt
PZEE#88176 praktisch voorraadbeheer

svn path=/Database/trunk/; revision=69024
2025-05-14 13:39:08 +00:00
Peter Feij
2da87316c9 FCLT#84467 rolcode vervangt de restricties die in volgnummer waren verstopt
svn path=/Database/trunk/; revision=69023
2025-05-14 13:30:41 +00:00
Peter Feij
d44eca380d FCLT#84467 rolcode vervangt de restricties die in volgnummer waren verstopt
svn path=/Database/trunk/; revision=69022
2025-05-14 13:19:11 +00:00
Jos Groot Lipman
3419604626 FCLT#88993 Einde ondersteuning database prs.setpassword en prs.testpassword
svn path=/Database/trunk/; revision=69006
2025-05-13 15:25:50 +00:00
Erik Groener
5ffdec65b8 AAIT#87224 Leverancierspecifieke informatie bij opdrachten tonen
svn path=/Database/trunk/; revision=68996
2025-05-13 10:36:10 +00:00
Erik Groener
79cef4d2ad BRCF#87236 Scope automatisch overzetten van contracten naar relatiebeheer
svn path=/Database/trunk/; revision=68995
2025-05-13 09:56:58 +00:00
Peter Feij
0f20741d9b FCLT#84467 rolcode vervangt de restricties die in volgnummer waren verstopt - savepoint
svn path=/Database/trunk/; revision=68978
2025-05-12 08:18:22 +00:00
Peter Feij
804a8137bd FCLT#84467 rolcode vervangt de restricties die in volgnummer waren verstopt - savepoint
svn path=/Database/trunk/; revision=68971
2025-05-09 10:24:22 +00:00
Maykel Geerdink
75cd0177a8 MARX#78894: Facturen via REST-API aan kunnen maken.
svn path=/Database/trunk/; revision=68943
2025-05-08 09:08:33 +00:00
Erik Groener
e9dc730066 SCHG#88676 Problemen met CNT-import SCHG in 2025.1
svn path=/Database/trunk/; revision=68914
2025-05-06 10:02:14 +00:00
d4b47b471c STER#88886 importBezoekers hoeft niet op geluk = NULL te filteren, er is maar 1 optie die hier voorbij komt
svn path=/Database/trunk/; revision=68907
2025-05-02 13:50:23 +00:00
Maykel Geerdink
8989a4b2a0 FCLT#81738: Graag via de taken ook de xcp records indexeren.
svn path=/Database/trunk/; revision=68883
2025-04-29 10:34:46 +00:00
Erik Groener
60e26c98c4 CARG#85666 Extra vast text in mail popup igv mld_opdr_ask_mail_if_unknown
svn path=/Database/trunk/; revision=68862
2025-04-25 10:02:33 +00:00
Maykel Geerdink
8c21e426d5 BLOS#81864: Doorlooptijd acceptatie in mld_v_udr_melding.
svn path=/Database/trunk/; revision=68839
2025-04-23 10:23:57 +00:00
Maykel Geerdink
3787ff798e FMHN#83630: Custom (pdf) menuopties kunnen toevoegen.
svn path=/Database/trunk/; revision=68837
2025-04-23 08:55:37 +00:00
Erik Groener
9cc9fac674 AAIT#86450 Kennisbank item standaard op professionals zetten
svn path=/Database/trunk/; revision=68828
2025-04-22 12:56:29 +00:00
Maykel Geerdink
44878aed10 FMHN#83630: Custom (pdf) menuopties kunnen toevoegen.
svn path=/Database/trunk/; revision=68827
2025-04-22 12:50:34 +00:00
42f2f0da10 DLLG#82309 Dan hoeft dat stukje code hier niet meer
svn path=/Database/trunk/; revision=68813
2025-04-18 13:49:26 +00:00
661dc98d08 DLLG#82309 Ook bij fac.DatumTijdPlusUitvoerTijd rekening houden wanneer de eerste dag in het weekend valt
svn path=/Database/trunk/; revision=68812
2025-04-18 13:46:06 +00:00
ed82d74a2f FCLT#87835 1 reserved setting erbij voor de types number en string
svn path=/Database/trunk/; revision=68785
2025-04-17 11:04:55 +00:00
e3d74e3049 YASK#88648 'Naam' -> 'Code'
svn path=/Database/trunk/; revision=68762
2025-04-16 08:23:23 +00:00
Peter Feij
a4f5846341 SGGR#87834 View/rapport fac_v_lcrap_fe_vs_key aangepast - fixed
svn path=/Database/trunk/; revision=68714
2025-04-09 15:07:28 +00:00
866640c689 Merge 2025.1 DB50f patches (ongoing)
svn path=/Database/trunk/; revision=68713
2025-04-09 15:03:29 +00:00
Peter Feij
9701c0e170 SGGR#87834 View/rapport fac_v_lcrap_fe_vs_key aangepast zdd de telling cf de settings worden getoond alsmede de verschillen
svn path=/Database/trunk/; revision=68684
2025-04-08 10:04:06 +00:00
Erik Groener
3a4683c58b BAMG#85636 Uitbreiding BAMG#83299 met diverse verlengingstermijnen
Overbodig geworden lcl's verwijderd.

svn path=/Database/trunk/; revision=68682
2025-04-08 08:45:11 +00:00
Erik Groener
793947ffff BAMG#85636 Uitbreiding BAMG#83299 met diverse verlengingstermijnen
Na laatste termijn in verlengschema verlengtermijn in contract leeg maken.

svn path=/Database/trunk/; revision=68673
2025-04-07 12:43:07 +00:00
Erik Groener
592816e581 BAMG#85636 Uitbreiding BAMG#83299 met diverse verlengingstermijnen
Wijziging van tabel cnt_verlengschema: Geen einddatum meer opslaan maar wel een volgnummer en primary key

svn path=/Database/trunk/; revision=68658
2025-04-04 08:10:12 +00:00
Maykel Geerdink
d438d679e4 HSLE#88140: Herhaling reservering mist verbruiksartikelen.
svn path=/Database/trunk/; revision=68647
2025-04-03 12:25:48 +00:00
Erik Groener
1b719dc325 Er staat een "fac_lcl", dus niet met hoofdletters
svn path=/Database/trunk/; revision=68607
2025-04-01 07:39:19 +00:00
Erik Groener
0ef4128faf BAMG#85636 Uitbreiding BAMG#83299 met diverse verlengingstermijnen
typefout in macro create_table hersteld.

svn path=/Database/trunk/; revision=68605
2025-04-01 07:00:06 +00:00
Erik Groener
ea641c6dfa BAMG#85636 Uitbreiding BAMG#83299 met diverse verlengingstermijnen
svn path=/Database/trunk/; revision=68589
2025-03-31 09:26:34 +00:00
Maykel Geerdink
e55b49ef03 PCHX#86497: Verplichten specifieke kostensoort bij ontbrekende standaardkostensoort contractbeheer.
svn path=/Database/trunk/; revision=68586
2025-03-31 08:54:37 +00:00
Maykel Geerdink
91923cb34f PCHX#86497: Verplichten specifieke kostensoort bij ontbrekende standaardkostensoort contractbeheer.
svn path=/Database/trunk/; revision=68584
2025-03-31 08:24:31 +00:00
Erik Groener
b9116bf2d3 BAMG#85636 Uitbreiding BAMG#83299 met diverse verlengingstermijnen
Aiai: Meerdere schemaregels opgehaald.

svn path=/Database/trunk/; revision=68583
2025-03-31 06:38:51 +00:00
Erik Groener
9e2e11c403 BAMG#85636 Uitbreiding BAMG#83299 met diverse verlengingstermijnen
svn path=/Database/trunk/; revision=68572
2025-03-28 10:17:35 +00:00
Erik Groener
cac9273fe1 BAMG#85636 Uitbreiding BAMG#83299 met diverse verlengingstermijnen
svn path=/Database/trunk/; revision=68563
2025-03-27 11:55:12 +00:00
Erik Groener
6bdf33fe19 SCHG#88197 Problemen met CNT-import SCHG in acceptatie-omgeving 2025.1
svn path=/Database/trunk/; revision=68542
2025-03-26 09:27:09 +00:00
Maykel Geerdink
a179ba4827 PCHX#86497: Verplichten specifieke kostensoort bij ontbrekende standaardkostensoort contractbeheer.
svn path=/Database/trunk/; revision=68517
2025-03-25 08:21:41 +00:00
Erik Groener
290082f924 SCHG#88197 Problemen met CNT-import SCHG in acceptatie-omgeving 2025.1
svn path=/Database/trunk/; revision=68503
2025-03-24 14:23:02 +00:00
Maykel Geerdink
88acac632a VGLD#85984: Automatische afsluitdatum instellen in contracten mogelijk?
svn path=/Database/trunk/; revision=68479
2025-03-20 12:32:21 +00:00
3a09f3dd38 DLLG#82309 WHILE-loop -> LOOP + EXIT WHEN
svn path=/Database/trunk/; revision=68471
2025-03-19 15:59:48 +00:00
Jos Groot Lipman
3ce4d873c0 Merge 2025.1 DB50b patches
svn path=/Database/trunk/; revision=68460
2025-03-19 13:55:57 +00:00
061df2a8b2 DLLG#82309 Rekening houden met meerdere opeenvolgende vrije dagen
svn path=/Database/trunk/; revision=68441
2025-03-18 13:47:31 +00:00
55ff80d435 RIAN#87845
RIAN#87851
Revert r68243 & r68253

svn path=/Database/trunk/; revision=68424
2025-03-17 13:38:38 +00:00
Maykel Geerdink
3ea60827c1 LOGC#83589: Melding gereed melden en na x dagen automatisch definitief afmelden.
svn path=/Database/trunk/; revision=68422
2025-03-17 12:46:19 +00:00
Maykel Geerdink
c27358b525 LOGC#83589: Melding gereed melden en na x dagen automatisch definitief afmelden.
svn path=/Database/trunk/; revision=68378
2025-03-12 14:03:36 +00:00
Erik Groener
a388998734 WRTH#87857 Probleem bij importeren contractheaders in 2025.1 versie
svn path=/Database/trunk/; revision=68369
2025-03-12 07:16:02 +00:00
Erik Groener
eed7a54398 HMOD#87864 Probleem met Workflow Spendcloud: automatische afmelding
svn path=/Database/trunk/; revision=68359
2025-03-11 13:42:13 +00:00
Erik Groener
d31b144a5f UWVA#87689 Verbruiksartikelenrapport toont onterecht items van verwijderde catalogi
svn path=/Database/trunk/; revision=68348
2025-03-11 09:37:01 +00:00
Jos Groot Lipman
a400748783 Merge 2025.1 DB50a patches
svn path=/Database/trunk/; revision=68306
2025-03-06 14:54:32 +00:00
Erik Groener
15c176f8b7 VNOG#84055 Reserveringen van een week kunnen niet herhaald worden
svn path=/Database/trunk/; revision=68265
2025-03-03 13:02:38 +00:00
fff54b063b RIAN#87845 Ook persoon-gekoppelde (of; niet-plaatsgebonden) objecten in de 'download-set' opnemen
svn path=/Database/trunk/; revision=68253
2025-02-28 21:56:13 +00:00
d6f3748ae6 RIAN#87851 Exporteer/Download geen vervallen/verwijderde stdmeldingen
svn path=/Database/trunk/; revision=68243
2025-02-28 14:49:36 +00:00
e5539038eb Merge DB50
svn path=/Database/trunk/; revision=68179
2025-02-25 09:13:55 +00:00
b356a98234 Upgrade templates; remove _post-template
svn path=/Database/trunk/; revision=68159
2025-02-24 13:53:41 +00:00
Maykel Geerdink
6324afb231 NOVA#85923: Voorbeeldweergave van opdracht vóór verzending.
svn path=/Database/trunk/; revision=68109
2025-02-20 14:12:09 +00:00
6c55dd0116 Upgrade templates
svn path=/Database/trunk/; revision=68063
2025-02-19 09:12:07 +00:00
f839d737c5 Versie DB51
svn path=/Database/trunk/; revision=68062
2025-02-18 20:05:19 +00:00
Jos Groot Lipman
13af49c636 FCLT#85890 Als vervanging van het psr_perslid_systeemadres bij notificaties naar een persoon de technische adressen bij zijn intern bedrijf ook notificeren
svn path=/Database/trunk/; revision=68054
2025-02-18 16:15:11 +00:00
6b3458e6d9 BSSC#86530 res_rsv_ruimte_prijs, res_rsv_ruimte_korting & res_rsv_ruimte_totaal aan res_v_udr_reservering toegevoegd
svn path=/Database/trunk/; revision=68044
2025-02-18 15:23:38 +00:00
Maykel Geerdink
96e6aff06d NOVA#85923: Voorbeeldweergave van opdracht vóór verzending.
svn path=/Database/trunk/; revision=68043
2025-02-18 15:21:43 +00:00
Suzan Wiegerinck
cca6a82238 FCLT#85964 parameters in mld_disc_params aangepast voor notificatie instellingen
svn path=/Database/trunk/; revision=68035
2025-02-18 14:05:40 +00:00
Jos Groot Lipman
5a1b82f28a FCLT#85890 MLDNEW alleen notificeren als teverzenden==1
svn path=/Database/trunk/; revision=68029
2025-02-18 09:35:12 +00:00
Jos Groot Lipman
7496291734 BLCC#83273 Een team behandelt inderdaad vakgroepen en geen (andere) teams
svn path=/Database/trunk/; revision=68028
2025-02-18 09:33:08 +00:00
Maykel Geerdink
1bdb1aa5a1 NOVA#85923: Voorbeeldweergave van opdracht vóór verzending.
svn path=/Database/trunk/; revision=68006
2025-02-17 13:05:43 +00:00
Maykel Geerdink
b669376d49 SCHG#87582: Probleem bij aanmaak periodieke onderhoudsmeldingen wagenpark.
svn path=/Database/trunk/; revision=68002
2025-02-17 11:57:17 +00:00
Peter Feij
186b65d424 MARX#87424 Unieke bedrijfsnaam per rol (_intern)
svn path=/Database/trunk/; revision=68001
2025-02-17 11:05:43 +00:00
Jos Groot Lipman
557e049a7b Oracle Testscript verbeteringen
svn path=/Database/trunk/; revision=68000
2025-02-17 08:25:56 +00:00
a5c7af643f FCLT#86197 lcl_scf_(download|upload) nergens in gebruik
svn path=/Database/trunk/; revision=67994
2025-02-14 15:35:42 +00:00
Rik Hassing
2e8c5ac7ba FCLT#86197
- Removed
lcl_scf_import 
lcl_scf_export 

- Added  
lcl_download
lcl_upload
lcl_transport
lcl_paste

svn path=/Database/trunk/; revision=67990
2025-02-14 14:00:25 +00:00
b94b4f2c48 PCHX#85935 VIEW naam aangepast van prs_v_udr_vervangers -> prs_v_rap_vervangers, en de vervaldatum nu achter de namen gezet (waar van toepassing).
svn path=/Database/trunk/; revision=67989
2025-02-14 13:20:43 +00:00
Rik Hassing
6a02dc8027 FCLT#86197
- Add lcl lcl_scf_transport.

svn path=/Database/trunk/; revision=67982
2025-02-14 10:06:27 +00:00
fc4fe40601 CARG#85437 syntax
svn path=/Database/trunk/; revision=67980
2025-02-13 21:33:26 +00:00
937d48f529 CARG#85437 lcl's
svn path=/Database/trunk/; revision=67979
2025-02-13 21:29:32 +00:00
e0f2585e97 CARG#85437 daily procedure die bestellingen [onder voorwaarden] automatisch als geleverd markeert (en dat trackt/notificeert/vervolgt met een BES2AF waar nodig)
svn path=/Database/trunk/; revision=67977
2025-02-13 21:24:26 +00:00
f69cdb8f82 FCLT#84628 Savepoint deadlock preventie
svn path=/Database/trunk/; revision=67963
2025-02-12 16:13:02 +00:00
Rik Hassing
808661add0 FCLT#86197
Add LCLs

- lcl_scf_download
- lcl_scf_upload
- lcl_scf_paste

svn path=/Database/trunk/; revision=67938
2025-02-11 14:18:12 +00:00
Jos Groot Lipman
7861631acb Diverse LCL's
svn path=/Database/trunk/; revision=67925
2025-02-10 15:27:03 +00:00
Jos Groot Lipman
6a43cfbf80 FCLT#85890 ORDNOL ondersteuning: zorgen dat de note_key in fac_notificatie_extra_key komt
svn path=/Database/trunk/; revision=67923
2025-02-10 14:33:13 +00:00
a54dac664c PCHX#85935 fac_usrrap_groep van BASIS -> PRS, autorisatie van WEB_UDRMAN -> WEB_PRSMAN, beschrijving aangepast en fac_usrrap_functie van 32 -> 0
svn path=/Database/trunk/; revision=67912
2025-02-07 16:13:44 +00:00
0b2ad2d702 LOGC#86231 hide_f_sort kolommen met de upgrade zoveel mogelijk goed zetten qua sortering (-> Oplopend)
svn path=/Database/trunk/; revision=67911
2025-02-07 15:57:10 +00:00
5da2561ea4 DJIN#87336 Views aanpassen zodat ze 1 regel aan resultaten opleveren, zoals gewenst. Het conflict dat ontstond bij meerdere werkplekken met hetzelfde volgnr. is verholpen door een group by prs_key, volgnr en een MIN om de werkplek key heen
svn path=/Database/trunk/; revision=67904
2025-02-07 10:13:31 +00:00
Jos Groot Lipman
559a43356e CSUN#87371 Verwijderen overbodige afbeeldingen bij mail2melding berichten
svn path=/Database/trunk/; revision=67898
2025-02-06 15:22:48 +00:00
05b91a0da8 SVRZ#86345 punt-komma's in het inline commentaar levert problemen op
svn path=/Database/trunk/; revision=67893
2025-02-06 14:49:52 +00:00
Maykel Geerdink
aa5efe18ba VLKC#82681: 79962 - kenmerksoort bestellingen anonimiseren.
svn path=/Database/trunk/; revision=67883
2025-02-06 12:15:02 +00:00
Jos Groot Lipman
ad5fc8090d FCLT#86343 fac_hourly toegevoegd. Let op: future use, wordt nog nergens aangeroepen
svn path=/Database/trunk/; revision=67880
2025-02-06 10:53:18 +00:00
646edcce0d PCHD#86418 S(ai_enabled) & 8 = Laat AI een opdracht omschrijving genereren bij nieuwe opdrachten
svn path=/Database/trunk/; revision=67871
2025-02-05 15:13:47 +00:00
be257e8c55 SVRZ#86345 rekening houden met tracking-/melding_aanmaak-data die allemaal plaats vinden binnen dezelfde seconde
svn path=/Database/trunk/; revision=67861
2025-02-05 11:59:50 +00:00
Jos Groot Lipman
4e307945b3 FCLT#85890 ORDUPD via teverzenden=2 beter ondersteunen
svn path=/Database/trunk/; revision=67843
2025-02-04 15:11:11 +00:00
Maykel Geerdink
a9afe4acb9 FCLT#86882: Blokbehandelteam notificaties bij acceptatie en wijzigingen.
svn path=/Database/trunk/; revision=67837
2025-02-04 11:49:27 +00:00
Peter Feij
5b3dd3ad56 FCLT#85890 typo
svn path=/Database/trunk/; revision=67831
2025-02-03 16:05:56 +00:00
Rik Hassing
32b6507729 LOGC#86289
- Add lcl_mld_ai_generate_subject_placeholder.

svn path=/Database/trunk/; revision=67827
2025-02-03 13:28:29 +00:00
Peter Feij
062d295289 FCLT#85890 Orderqueue etc: systeembedrijven
svn path=/Database/trunk/; revision=67826
2025-02-03 13:17:37 +00:00
Jos Groot Lipman
d9e376eabb FCLT#85890 meerdere technische adressen voor verschillende srtnotificaties ondersteunen (als alternatief voor 'overrules')
Ook: prs_contactpersoon_systeem toegevoegd

svn path=/Database/trunk/; revision=67810
2025-01-30 16:59:53 +00:00
Peter Feij
3e0db1aa4a PCHD#83092 budgethouder_key toegevoegd aan udr basisview voor facturen
svn path=/Database/trunk/; revision=67804
2025-01-30 13:32:32 +00:00
550d617f58 DJIN#87336 De view voor de hoofdwerkplek van persleden aangepast zodat deze ook echt alleen de hoofdwerkplek toont, ook al bestaan er 2 werkplekken met hetzelfde volgnr.
svn path=/Database/trunk/; revision=67799
2025-01-30 10:15:52 +00:00
Peter Feij
5615fa2591 FCLT#85890 Orderqueue etc: systeembedrijven in menu
svn path=/Database/trunk/; revision=67796
2025-01-30 09:09:13 +00:00
Jos Groot Lipman
eb283bb7b8 FCLT#85890 fac_notificatie_realuser bijhouden zodat we in putorders correct kunnen overrulen
svn path=/Database/trunk/; revision=67792
2025-01-30 08:27:28 +00:00
61675ddfdb AAES#87138 +lcl's tbv het verwerken van opdrachten
svn path=/Database/trunk/; revision=67789
2025-01-29 19:19:21 +00:00
08c1e05663 AAES#87138 + S(mld_opdr_archive_by_gui)
svn path=/Database/trunk/; revision=67785
2025-01-29 13:19:41 +00:00
Maykel Geerdink
a8a8f1aed5 VGLD#85984: Automatische afsluitdatum instellen in contracten mogelijk?
svn path=/Database/trunk/; revision=67771
2025-01-29 07:22:03 +00:00
1203d7bb84 AAIT#83573 voortaan fac_like.asp gebruiken
svn path=/Database/trunk/; revision=67769
2025-01-28 16:36:25 +00:00
Jos Groot Lipman
4ac5450681 FCLT#85890 Orderqueue en notificatiequeue savepoint
svn path=/Database/trunk/; revision=67766
2025-01-28 15:59:07 +00:00
e4912ec5cd PCHX#85935 DEF_RAPPORT prs_v_udr_vervangers
svn path=/Database/trunk/; revision=67719
2025-01-24 11:42:27 +00:00
7005cedfd6 PCHX#85935 prs_v_udr_vervangers
svn path=/Database/trunk/; revision=67718
2025-01-24 11:39:55 +00:00
Peter Feij
33cf8e01f1 FCLT#85890 Technisch adres heeft nu ook een naam
svn path=/Database/trunk/; revision=67703
2025-01-22 17:46:05 +00:00
Jos Groot Lipman
34ad1bf8aa FCLT#85890 RESLIK, BESLIK en MLDLIK notificaties vanuit trigger gaf mutating error.
Maar FAC_PAC.SRC onderdrukt te ze toch al dus mogen we ook wel een '#' er voor zetten en dus eerder onderdrukken

svn path=/Database/trunk/; revision=67698
2025-01-22 15:16:34 +00:00
Peter Feij
125256c2eb FCLT#85890 Orderqueue en notificatiequeue generaliseren
svn path=/Database/trunk/; revision=67696
2025-01-22 15:12:17 +00:00
b7b49f8302 TRRL#80437 _Default-groep ook toevoegen als S(login_use_email) = 1 en email wordt gevuld (en login begint niet met een '_')
svn path=/Database/trunk/; revision=67687
2025-01-22 11:59:09 +00:00
Erik Groener
1d2aaa9b09 FCLT#86748 Fout bij automatisch verlengen oudere contractversies
svn path=/Database/trunk/; revision=67685
2025-01-22 10:58:40 +00:00
Peter Feij
e6b8788b78 BAUS#82535 Tracking op mutaties bij geplande acties
svn path=/Database/trunk/; revision=67673
2025-01-21 17:01:11 +00:00
Jos Groot Lipman
b9cb87464e 2024->2025
svn path=/Database/trunk/; revision=67668
2025-01-21 15:57:00 +00:00
Peter Feij
e954cfb475 FCLT#82423 Werkplekken, objecten (e.d.?) op locatie of gebouwniveau kunnen vastleggen
svn path=/Database/trunk/; revision=67667
2025-01-21 15:56:13 +00:00
ea15dc65f2 FCLT#82174 Menuoptie ook gewoon toevoegen
svn path=/Database/trunk/; revision=67664
2025-01-21 14:25:36 +00:00
Peter Feij
712990058e FCLT#86343 Kennisnbankdetails: wat tekstuele details
svn path=/Database/trunk/; revision=67657
2025-01-21 10:28:23 +00:00
Jos Groot Lipman
e242bb0b3f FCLT#85890 Orderqueue en notificatiequeue savepoint
svn path=/Database/trunk/; revision=67654
2025-01-21 08:35:38 +00:00
Erik Groener
ab18f3f3dc YAXX#86411 Kenmerken op regio niveau ondersteunen
svn path=/Database/trunk/; revision=67642
2025-01-20 13:20:30 +00:00
25ce91ba7b FCLT#86760 Voor de duidelijkheid nog een UNUSED prefix bij de vervallen instellingen
svn path=/Database/trunk/; revision=67640
2025-01-20 12:44:56 +00:00
09e28f0d87 FCLT#86760 openai_settings deprecated, 2 nieuwe [generieke] settings; ai_apikey & ai_endpoint
svn path=/Database/trunk/; revision=67638
2025-01-20 12:34:08 +00:00
Erik Groener
82d7849803 YAXX#86411 Kenmerken op regio niveau ondersteunen
svn path=/Database/trunk/; revision=67618
2025-01-16 10:15:33 +00:00
Maykel Geerdink
818faabb2e VGLD#85984: Automatische afsluitdatum instellen in contracten mogelijk?
svn path=/Database/trunk/; revision=67607
2025-01-15 14:39:43 +00:00
Erik Groener
ef6f395e12 YAXX#86411 Kenmerken op regio niveau ondersteunen
svn path=/Database/trunk/; revision=67601
2025-01-15 10:47:28 +00:00
64705dd8a2 TRRL#80437 Revert
svn path=/Database/trunk/; revision=67582
2025-01-13 14:40:28 +00:00
11ff3188e9 TRRL#80437 1) Indien S(login_use_email)=1, dan de _Default autorisatiegroep toevoegen als een gebruiker een emailadres krijgt
svn path=/Database/trunk/; revision=67581
2025-01-13 14:20:38 +00:00
Erik Groener
5bdcb65027 CARG#85884 Factuurschema ontbreekt in contract-XML, graag toevoegen
svn path=/Database/trunk/; revision=67572
2025-01-13 10:15:39 +00:00
Erik Groener
6a37c41460 YASK#86818 Fout bij aanpassen maximumwaarde numeriek kenmerk in YASK productieomgeving
svn path=/Database/trunk/; revision=67571
2025-01-13 09:32:48 +00:00
6dd9e4cb1a CARG#86728 goedkeuring -> fiattering
svn path=/Database/trunk/; revision=67570
2025-01-13 08:31:59 +00:00
Maykel Geerdink
4c6569bf5a FCLT#87146: Oplossing databasefout RWSN#86923 in release 2025.1.
svn path=/Database/trunk/; revision=67569
2025-01-13 08:23:43 +00:00
Erik Groener
06be3fadc9 YASK#86818 Fout bij aanpassen maximumwaarde numeriek kenmerk in YASK productieomgeving
svn path=/Database/trunk/; revision=67567
2025-01-13 08:10:43 +00:00
Maykel Geerdink
68e2ada5d5 YKPN#86805: Geen meldingen meer bij vervallen of verwijderde taak.
svn path=/Database/trunk/; revision=67550
2025-01-09 10:44:46 +00:00
Erik Groener
061dbb75bc DHLD#86034 Foutmelding EntraID: 'Login' veld niet uniek, configuratieprobleem
svn path=/Database/trunk/; revision=67545
2025-01-08 14:00:00 +00:00
Erik Groener
9f13c8bf2b DHLD#86034 Foutmelding EntraID: 'Login' veld niet uniek, configuratieprobleem
svn path=/Database/trunk/; revision=67524
2025-01-07 11:45:39 +00:00
Erik Groener
4b452e787b KW1C#86472 MJOB import probleem in productieomgeving KW1C
svn path=/Database/trunk/; revision=67518
2025-01-07 08:42:30 +00:00
Erik Groener
8356eaf14c FCLT#86003 Probleem met importeren contracten vanuit Mocadocs via FIP-sheet
svn path=/Database/trunk/; revision=67447
2024-12-19 12:20:40 +00:00
Erik Groener
390fd8834c FCLT#86003 Probleem met importeren contracten vanuit Mocadocs via FIP-sheet
svn path=/Database/trunk/; revision=67445
2024-12-19 11:42:56 +00:00
Jos Groot Lipman
46fd7c1a6e FCLT#85890 Orderqueue en notificatiequeue savepoint
svn path=/Database/trunk/; revision=67444
2024-12-19 11:34:48 +00:00
Erik Groener
2fbc120baa BRED#86842 Problemen bij exporteren van relaties en contactpersonen in BRED
svn path=/Database/trunk/; revision=67443
2024-12-19 11:22:41 +00:00
Erik Groener
18e8eac398 FCLT#86003 Probleem met importeren contracten vanuit Mocadocs via FIP-sheet
svn path=/Database/trunk/; revision=67441
2024-12-19 10:10:17 +00:00
Peter Feij
9fae3875a5 FCLT#85970 WEB_MLDTAG autorisatie
svn path=/Database/trunk/; revision=67375
2024-12-12 09:11:39 +00:00
Peter Feij
3e4b9c4ce3 KW1C#86841 View voor actuele ruimtebezetting
svn path=/Database/trunk/; revision=67373
2024-12-12 08:58:38 +00:00
Jos Groot Lipman
a2dd7d97b7 FCLT#86661 Savepoint global tsk_master_schema voor scheduling
svn path=/Database/trunk/; revision=67371
2024-12-12 08:14:32 +00:00
Maykel Geerdink
6d79eab4c1 VNOG#85909: Verbeteren werking van onderdelen in objectbeheer.
svn path=/Database/trunk/; revision=67340
2024-12-09 14:51:45 +00:00
Peter Feij
fb2af78f86 FCLT#85970 Mijlpalen per meldinggroep (en daarom verplaatst tot daarna)
svn path=/Database/trunk/; revision=67310
2024-12-05 14:37:03 +00:00
Erik Groener
814b61d735 FCLT#85815 Opdrachttype codes toevoegen voor duidelijkheid en compatibiliteit
svn path=/Database/trunk/; revision=67294
2024-12-05 08:21:50 +00:00
Peter Feij
a2b97e783b FCLT#85970 Mijlpalen in het menu. Is beheer maar geen hard applicatiebeheer, daarom in tab 2 ipv 33
svn path=/Database/trunk/; revision=67286
2024-12-04 15:56:02 +00:00
Ruud Lipper
91537dfc82 FCLT#86733 mld_use_order_approval uitleg verbeterd
svn path=/Database/trunk/; revision=67281
2024-12-04 10:59:08 +00:00
Erik Groener
cc7ff3ead8 FCLT#85815 Opdrachttype codes toevoegen voor duidelijkheid en compatibiliteit
svn path=/Database/trunk/; revision=67274
2024-12-03 14:36:54 +00:00
Maykel Geerdink
7045186030 VNOG#85909: Verbeteren werking van onderdelen in objectbeheer.
svn path=/Database/trunk/; revision=67270
2024-12-03 11:20:49 +00:00
Jos Groot Lipman
836f4afbb0 DJIN#86610 Problemen bij importeren DJIN/DVON dumps door ORADBA eigenaar
svn path=/Database/trunk/; revision=67268
2024-12-03 10:55:09 +00:00
Rik Hassing
664b057213 KFSG#86593
- Max lengte geven aan tekenstringbuffer PROCEDURE trackaction_withkey 

svn path=/Database/trunk/; revision=67224
2024-11-28 08:36:56 +00:00
Jos Groot Lipman
785e1e3f49 FCLT#85890 Orderqueue en notificatiequeue savepoint
svn path=/Database/trunk/; revision=67219
2024-11-27 15:20:50 +00:00
ab123c43c5 KFNS#84062 Setting omschrijving aangepast
svn path=/Database/trunk/; revision=67213
2024-11-27 12:51:47 +00:00
dbbca4d90b FCLT#86600 positief testen
svn path=/Database/trunk/; revision=67179
2024-11-25 15:23:11 +00:00
deeffb9bcb FCLT#86600 Als er geen budgethouder (bekend) is, dan ook niet proberen zijn profiel te controleren
svn path=/Database/trunk/; revision=67176
2024-11-25 14:12:25 +00:00
Peter Feij
488bae371f FCLT#85970 commentaar uitgebreid
svn path=/Database/trunk/; revision=67141
2024-11-21 15:20:55 +00:00
Maykel Geerdink
9f2088cbdb NOUR#82373: In takenoverzicht bijlage zichtbaar maken.
svn path=/Database/trunk/; revision=67137
2024-11-21 12:56:21 +00:00
Ilonka Maatman
e76d9db9e3 SUTF#86456
svn path=/Database/trunk/; revision=67131
2024-11-21 10:01:01 +00:00
Erik Groener
394923ced9 YFTH#86088 Ruimten zonder ruimtefunctie ontbreken in transportexport
svn path=/Database/trunk/; revision=67128
2024-11-21 09:43:29 +00:00
Ilonka Maatman
573027d00e YAXX#86386
svn path=/Database/trunk/; revision=67123
2024-11-21 08:03:19 +00:00
Suzan Wiegerinck
74b585d96b FCLT#85964 De ja/nee en ja/nee/n.v.t. kenmerken aangevuld met de 'prefix' itsm om problemen op bestaande inrichtingen te voorkomen (bij bijv. VNOG resulteert de setup nu in een AiAi)
svn path=/Database/trunk/; revision=67118
2024-11-20 11:56:37 +00:00
Jos Groot Lipman
7cedd41c54 FCLT#86343 prs_perslid_options sinds HSLE#36898 (2016.3) al niet meer in gebruik. Maar eens wissen.
svn path=/Database/trunk/; revision=67114
2024-11-20 10:10:16 +00:00
Rik Hassing
98fd745bca AAXX#83884
- Remove mld_typeopdr_mld_limiet

svn path=/Database/trunk/; revision=67106
2024-11-20 07:57:52 +00:00
Erik Groener
2fbe1dcca8 FCLT#83805 Beheer van autorisatiegroepen intuitiever maken
svn path=/Database/trunk/; revision=67105
2024-11-20 07:34:20 +00:00
Peter Feij
7e11780f42 FCLT#85970 syntax fix
svn path=/Database/trunk/; revision=67095
2024-11-19 14:31:12 +00:00
57492cc841 FCLT#86320 fac_tracking_key ook opleveren
svn path=/Database/trunk/; revision=67089
2024-11-19 12:33:27 +00:00
Peter Feij
b19302864a FCLT#85970 Ondersteuning van releasekalender en releasemanagement in ITSM-context
svn path=/Database/trunk/; revision=67088
2024-11-19 12:16:25 +00:00
Peter Feij
a5221f1f4b FCLT#85970 syntax fix
svn path=/Database/trunk/; revision=67087
2024-11-19 11:42:36 +00:00
Peter Feij
0730199144 FCLT#85970 syntax fix
svn path=/Database/trunk/; revision=67081
2024-11-18 21:59:52 +00:00
Peter Feij
40e2a0c1f4 FCLT#85970 Ondersteuning van releasekalender en releasemanagement in ITSM-context
svn path=/Database/trunk/; revision=67080
2024-11-18 21:36:36 +00:00
Peter Feij
991a90810f FCLT#85970 Ondersteuning van releasekalender en releasemanagement in ITSM-context
svn path=/Database/trunk/; revision=67077
2024-11-18 17:02:49 +00:00
Maykel Geerdink
00e3b06ad5 NOUR#82373: In takenoverzicht bijlage zichtbaar maken.
svn path=/Database/trunk/; revision=67071
2024-11-18 12:53:18 +00:00
Rik Hassing
198fbf9fde VNOG#85849
- Placeholder toegevoegd om string te kunnen formateren. (Voor NL)

svn path=/Database/trunk/; revision=67068
2024-11-18 11:45:07 +00:00
Rik Hassing
a54c224cc5 VNOG#85849
- Placeholder toegevoegd om string te kunnen formateren.

svn path=/Database/trunk/; revision=67067
2024-11-18 11:42:28 +00:00
Peter Feij
01f397ba3e FCLT#85970 Ondersteuning van releasekalender en releasemanagement in ITSM-context
svn path=/Database/trunk/; revision=67066
2024-11-18 11:37:49 +00:00
1b91278ada FCLT#85890 fac_v_notifyqueue.fac_notificatie_naam toegevoegd
svn path=/Database/trunk/; revision=67064
2024-11-18 11:22:32 +00:00
Rik Hassing
d0053bcbd8 AAXX#83884
- fix trigger

svn path=/Database/trunk/; revision=67063
2024-11-18 07:22:39 +00:00
Erik Groener
89fc0f90a0 SCHG#85828 Aanpassing transportkenmerken voor CNT in rapport en import
svn path=/Database/trunk/; revision=67049
2024-11-15 11:01:59 +00:00
Jos Groot Lipman
709892b347 FCLT#85890 Orderqueue en notificatiequeue savepoint
svn path=/Database/trunk/; revision=67045
2024-11-14 16:05:17 +00:00
Jos Groot Lipman
86b25c07ec FCLT#86343 mail_subject_undeliverable ook subject "Message undeliverable:" onderkennen
svn path=/Database/trunk/; revision=67044
2024-11-14 15:16:19 +00:00
Maykel Geerdink
7ae9d418ee VNOG#85909: Verbeteren werking van onderdelen in objectbeheer.
svn path=/Database/trunk/; revision=67007
2024-11-12 15:57:50 +00:00
Erik Groener
811e9c6262 YFTH#86088 Ruimten zonder ruimtefunctie ontbreken in transportexport
svn path=/Database/trunk/; revision=66996
2024-11-12 09:57:23 +00:00
Erik Groener
5ca6d26a50 LPNL#71678 Kan catering FIP artikel sheet niet inlezen met (nieuwe) kostensoorten
svn path=/Database/trunk/; revision=66991
2024-11-12 07:41:53 +00:00
Rik Hassing
e203dbacb0 AAXX#83884
- Update inconsistency ins_srtdiscipline_key with mld_discipline

svn path=/Database/trunk/; revision=66981
2024-11-11 14:05:15 +00:00
Maykel Geerdink
7aca9601d7 VNOG#83559: Objectenimport voorzien van parent-kolommen voor onderdelen.
svn path=/Database/trunk/; revision=66976
2024-11-11 10:36:32 +00:00
Rik Hassing
21eb5c65af AAXX#83884
- Add trigger to update mld_typeopdr_srtdiscipline when mld_discipline changes vakgroeptype.

svn path=/Database/trunk/; revision=66974
2024-11-11 09:56:58 +00:00
43733b3deb FCLT#86343 'ga verder met de melding' -> 'ga verder met de opdracht'
svn path=/Database/trunk/; revision=66971
2024-11-11 08:44:47 +00:00
Peter Feij
f2ea55f5cb FCLT#85970 Ondersteuning van releasekalender en releasemanagement in ITSM-context savepoint 0.1
svn path=/Database/trunk/; revision=66959
2024-11-07 17:19:27 +00:00
Jos Groot Lipman
a5788cb0d3 FCLT#85890 Orderqueue en notificatiequeue savepoint
svn path=/Database/trunk/; revision=66955
2024-11-07 16:16:33 +00:00
Maykel Geerdink
8ff29d9632 VNOG#83559: Objectenimport voorzien van parent-kolommen voor onderdelen.
svn path=/Database/trunk/; revision=66954
2024-11-07 15:48:29 +00:00
Jos Groot Lipman
a613a6964e FCLT#85890 Orderqueue en notificatiequeue savepoint
svn path=/Database/trunk/; revision=66953
2024-11-07 15:40:02 +00:00
Rik Hassing
5e1587f567 YAXX#84687
- Add field mld_typeopdr_mld_limiet 

svn path=/Database/trunk/; revision=66946
2024-11-07 12:31:32 +00:00
Erik Groener
55b1426eb6 FCLT#86293 fac_setting.prs_perslid_key onterecht gewist bij upgrades
svn path=/Database/trunk/; revision=66940
2024-11-07 10:10:06 +00:00
b5b435d6ce Merge 2024.3 DB49b patches
svn path=/Database/trunk/; revision=66927
2024-11-06 14:47:51 +00:00
Rik Hassing
8d88c4aae8 YAXX#84687
- Rename lcl 

svn path=/Database/trunk/; revision=66917
2024-11-06 09:39:12 +00:00
Rik Hassing
57575a8ca0 YAXX#84687
- Add lcl_prs_companies_default_order_amount.

svn path=/Database/trunk/; revision=66916
2024-11-06 09:27:05 +00:00
Rik Hassing
bebb21f532 YAXX#84687
- Add field prs_bedrijf_mld_limiet to prs_bedrijf

svn path=/Database/trunk/; revision=66915
2024-11-06 09:16:20 +00:00
Rik Hassing
a1c920cbb2 YASK#82997
- Replace lcl_prs_unapproved into lcl_prs_flags_unapproved_m.

svn path=/Database/trunk/; revision=66846
2024-11-04 08:33:39 +00:00
Jos Groot Lipman
6eee34ca6d YKPN#85668 Geen letterlijke ORA- in (commentaar van) sourcecode
svn path=/Database/trunk/; revision=66836
2024-10-31 14:20:53 +00:00
Rik Hassing
2f389045d9 YASK#82997
- Add missing apostrof

svn path=/Database/trunk/; revision=66828
2024-10-31 08:57:58 +00:00
Maykel Geerdink
a9c33e58ef VNOG#83559: Objectenimport voorzien van parent-kolommen voor onderdelen.
svn path=/Database/trunk/; revision=66800
2024-10-29 12:44:23 +00:00
Rik Hassing
3325941ced YASK#82997
- Add lcl_prs_unapproved

svn path=/Database/trunk/; revision=66791
2024-10-28 12:44:37 +00:00
6ed931dff2 Merge DB49a patches (final)
svn path=/Database/trunk/; revision=66785
2024-10-28 09:24:31 +00:00
Maykel Geerdink
67a942d041 VNOG#81617: Object en/of onderdelen kunnen selecteren in meldingen.
svn path=/Database/trunk/; revision=66776
2024-10-24 16:48:56 +00:00
Rik Hassing
91de6d7a44 LOGC#74061
- Add trackaction
- Change trackaction code for mld_melding_behandelaar_key

svn path=/Database/trunk/; revision=66773
2024-10-24 11:50:58 +00:00
Rik Hassing
b3da0d489a LOGC#74061
- Add check for status
- Trackaction error. Commented out for now (looking in to it)

svn path=/Database/trunk/; revision=66772
2024-10-24 11:36:31 +00:00
Rik Hassing
842523adf5 LOGC#74061
- Delete mld_melding_behandelaar(2)_key when associated user is deleted

svn path=/Database/trunk/; revision=66767
2024-10-24 09:44:26 +00:00
730e92ca34 Merge DB49a patches (ongoing)
svn path=/Database/trunk/; revision=66698
2024-10-18 10:06:48 +00:00
Erik Groener
75f3029c5d FCLT#81526 Standaard import voor MJOB
svn path=/Database/branches/DB49/; revision=66675
2024-10-17 10:56:16 +00:00
Rik Hassing
ac89b4e0c6 KFNS#84062
- Edit description for setting: mld_afmelden_popup_for_all_km

svn path=/Database/trunk/; revision=66674
2024-10-17 10:45:10 +00:00
22dd769d73 AAXX#81521 EXC_TAB.SRC gelijk aan upgrade script trekken
svn path=/Database/branches/DB49/; revision=66669
2024-10-17 09:31:31 +00:00
Peter Feij
d2789f4061 SINN#83743 ORA-00904 fix
svn path=/Database/branches/DB49/; revision=66667
2024-10-17 08:57:36 +00:00
2c95b17965 AAXX#81521 syntax-error (komma teveel)
svn path=/Database/branches/DB49/; revision=66663
2024-10-17 07:32:31 +00:00
Peter Feij
0e535ac524 FCLT#84824 Voorbeelddata mag zelfs niet per ongeluk geldig zijn
svn path=/Database/branches/DB49/; revision=66662
2024-10-17 07:32:06 +00:00
Maykel Geerdink
5519b38b2b BAUS#80301: Opties voor aanmaken kenmerken bij taken gelijk maken als bij andere modules.
svn path=/Database/branches/DB49/; revision=66653
2024-10-16 14:24:56 +00:00
d23f54628c PCHX#82938 Alleen specifieker proberen te matchen wanneer nodig, en dan nog coulant (volgens onderstaand algoritme)
svn path=/Database/branches/DB49/; revision=66651
2024-10-16 13:27:19 +00:00
Peter Feij
8dae0eb109 BAUS#82920 Controlemode_succes is nu ja/nee/Onbekend ipv 1/0/null
svn path=/Database/branches/DB49/; revision=66650
2024-10-16 13:24:30 +00:00
Erik Groener
e2bc7c5e79 SCHG#85790 Problemen bij importeren contracten vanuit Mocadocs naar FIP-sheet
svn path=/Database/branches/DB49/; revision=66647
2024-10-16 12:10:18 +00:00
Peter Feij
c573a11095 SINN#83743 prs_afdeling_naam8 toegevoegd met bedrijfsnaam-omschrijving
svn path=/Database/branches/DB49/; revision=66646
2024-10-16 11:50:30 +00:00
Erik Groener
746346d05e SCHG#85790 Problemen bij importeren contracten vanuit Mocadocs naar FIP-sheet
svn path=/Database/branches/DB49/; revision=66645
2024-10-16 11:41:48 +00:00
Peter Feij
16dc865532 SINN#83743 prs_afdeling_naam7 toegevoegd met bedrijfsnaam-prefix na advies JGL
svn path=/Database/branches/DB49/; revision=66644
2024-10-16 11:35:00 +00:00
Peter Feij
f15a76564c SINN#83743 prs_afdeling_naam7 toegevoegd met bedrijfsnaam-prefix reverted
svn path=/Database/branches/DB49/; revision=66643
2024-10-16 11:23:56 +00:00
Erik Groener
962c8c0d9b FCLT#81526 Standaard import voor MJOB
svn path=/Database/branches/DB49/; revision=66640
2024-10-16 10:41:31 +00:00
68ccf4c607 AAXX#81521 Default van res_rsv_ruimte_visibility -> 1 (=Normal)
SCHG#85790 cnt_soort -> VARCHAR2(60)

svn path=/Database/branches/DB49/; revision=66637
2024-10-16 10:32:59 +00:00
Erik Groener
9aee7571d2 SCHG#85790 Problemen bij importeren contracten vanuit Mocadocs naar FIP-sheet
svn path=/Database/branches/DB49/; revision=66636
2024-10-16 10:14:30 +00:00
Erik Groener
60e603c899 AREO#84307 Werkplek kunnen reserveren voor een ander
svn path=/Database/branches/DB49/; revision=66633
2024-10-16 09:50:05 +00:00
Rik Hassing
13063efedc KFNS#84062
- Add setting: mld_afmelden_popup_for_all_km

svn path=/Database/trunk/; revision=66628
2024-10-16 08:32:19 +00:00
Jos Groot Lipman
f17a3aea06 FCLT#85929 Favorieten moeten niet in de menu-export
svn path=/Database/branches/DB49/; revision=66627
2024-10-16 08:24:07 +00:00
Peter Feij
536a2b42d6 SINN#83743 prs_afdeling_naam7 toegevoegd met bedrijfsnaam-prefix
svn path=/Database/branches/DB49/; revision=66621
2024-10-15 16:39:40 +00:00
bd89c91775 AAXX#81521 savepoint DB
svn path=/Database/branches/DB49/; revision=66619
2024-10-15 15:57:52 +00:00
b20a995a70 AAXX#81521 res_rsv_ruimte_visibility toegevoegd om zichtbaarheid (zoals private outlook afspraken) vast te leggen
svn path=/Database/branches/DB49/; revision=66608
2024-10-15 10:19:23 +00:00
Peter Feij
41dff14643 FCLT#84824 Rechten specifiek alleen toekennen op eigen vakgroepen-fixed
svn path=/Database/branches/DB49/; revision=66579
2024-10-14 09:28:36 +00:00
Jos Groot Lipman
7d6f719aad FCLT#85802 Bij de tracking-node in de XML ook de fac_tracking_key opnemen voor als je scherp wilt sorteren.
svn path=/Database/branches/DB49/; revision=66575
2024-10-14 08:08:01 +00:00
96b38f8049 Merge DB49a patches (ongoing)
svn path=/Database/trunk/; revision=66564
2024-10-11 11:02:14 +00:00
Suzan Wiegerinck
86148dc9fb FCLT#84824 "Problems en wijzigingen moeten een groepering kunnen zijn" --> dat klopt niet, alleen een problem moet een groeprering van incidenten zijn.
svn path=/Database/branches/DB49/; revision=66557
2024-10-10 13:23:40 +00:00
Suzan Wiegerinck
77fbd5aed8 FCLT#84824 Standaardmeldingen aangepast, menu-item toegevoegd, autorisaties aangepast
svn path=/Database/branches/DB49/; revision=66552
2024-10-10 12:14:43 +00:00
Jos Groot Lipman
8a2bbb9646 RWSN#85681 Foutmelding bij importeren van kenmerken langer dan 1000 posities in MJOB object
svn path=/Database/trunk/; revision=66549
2024-10-10 11:02:39 +00:00
Peter Feij
f0571d6414 FCLT#84824 Rechten specifiek alleen toekennen op eigen vakgroepen-fix
svn path=/Database/branches/DB49/; revision=66546
2024-10-10 08:54:29 +00:00
Maykel Geerdink
6dc268b930 BVB1#79788: Bevindingen MJOB realisatiescherm.
svn path=/Database/trunk/; revision=66537
2024-10-09 12:12:20 +00:00
Peter Feij
81c0e9a600 FCLT#84824 Rechten specifiek alleen toekennen op eigen vakroepen
svn path=/Database/branches/DB49/; revision=66526
2024-10-08 15:17:07 +00:00
Erik Groener
2e9cf4de53 PLGR#85484 Probleem bij importeren van kenmerken naar contracten zonder contractsoort
svn path=/Database/trunk/; revision=66513
2024-10-08 06:10:17 +00:00
43d0d9e96f Upgrade script template (echt)
svn path=/Database/trunk/; revision=66511
2024-10-07 18:52:24 +00:00
8c18c51567 Upgrade script template (Nu in de juiste branch ;)
svn path=/Database/branches/DB49/; revision=66510
2024-10-07 18:41:40 +00:00
d70d7b3dab Upgrade script template (Nu in de juiste branch ;)
svn path=/Database/trunk/; revision=66510
2024-10-07 18:41:40 +00:00
48cc15e156 Upgrade script template
svn path=/Database/branches/DB49/; revision=66509
2024-10-07 18:34:16 +00:00
24c4b13272 Versie DB50
svn path=/Database/trunk/; revision=66508
2024-10-07 18:26:45 +00:00
fbac1bc072 Branch DB49
svn path=/Database/branches/DB49/; revision=66507
2024-10-07 18:24:15 +00:00
Maykel Geerdink
45718b05cb BAUS#80301: Opties voor aanmaken kenmerken bij taken gelijk maken als bij andere modules.
svn path=/Database/trunk/; revision=66495
2024-10-07 13:25:11 +00:00
Erik Groener
80306f91a1 FCLT#81526 Standaard import voor MJOB
svn path=/Database/trunk/; revision=66481
2024-10-07 09:02:20 +00:00
Peter Feij
9edeea209b FCLT#85233 Subtiele tekstverduidelijking label
svn path=/Database/trunk/; revision=66476
2024-10-07 07:43:18 +00:00
Erik Groener
d36d100458 ALKM#85717 Fout: ORA-12899 waarde te groot voor kolom PRS_SRTPERSLID bij PATCH-request
svn path=/Database/trunk/; revision=66463
2024-10-04 07:40:05 +00:00
Erik Groener
4a2bcd10cf FCLT#83767 Data-roundtrip via Excel/CSV voor bulkdata aanvulling (evt mutaties)
svn path=/Database/trunk/; revision=66460
2024-10-04 06:46:34 +00:00
Erik Groener
9f7b172bf8 STER#85441 Probleem met ruimte import: Verwijderde verdiepingen worden meegenomen in query
svn path=/Database/trunk/; revision=66443
2024-10-03 07:31:30 +00:00
Suzan Wiegerinck
7ea582ab10 FCLT#84691 Beperken vervolgmeldingen in incident- en changemanagementprocessen ingesteld
FCLT#84824 Vertalingen en autorisaties op orde gemaakt, icoontjes opgenomen

svn path=/Database/trunk/; revision=66440
2024-10-03 07:05:56 +00:00
Maykel Geerdink
a3754231f9 BAUS#80301: Opties voor aanmaken kenmerken bij taken gelijk maken als bij andere modules.
svn path=/Database/trunk/; revision=66431
2024-10-02 14:33:29 +00:00
Maykel Geerdink
b17de88f39 BAUS#80301: Opties voor aanmaken kenmerken bij taken gelijk maken als bij andere modules.
svn path=/Database/trunk/; revision=66424
2024-10-02 13:52:56 +00:00
Erik Groener
85105cbcf8 FCLT#83767 Data-roundtrip via Excel/CSV voor bulkdata aanvulling (evt mutaties)
svn path=/Database/trunk/; revision=66423
2024-10-02 13:50:41 +00:00
Peter Feij
ec9b1bde1e FCLT#84695 Kleine conflictvermijdende aanpassingen
svn path=/Database/trunk/; revision=66419
2024-10-02 11:51:48 +00:00
Ilonka Maatman
40f6c41edc #85500 Fout in uitleg autorisatie WEB_ORDFIN aanpassen in Facilitor en help-sectie
svn path=/Database/trunk/; revision=66417
2024-10-02 11:24:20 +00:00
Erik Groener
d4b8db58c5 FCLT#83767 Data-roundtrip via Excel/CSV voor bulkdata aanvulling (evt mutaties)
svn path=/Database/trunk/; revision=66415
2024-10-02 10:44:24 +00:00
Rik Hassing
19dd829a54 FMHN#83674 Onmogelijk maken voor zelfservice om te reserveren op feestdagen/weekend
- Add lcl for when a holiday in chosen series of days is detected.

svn path=/Database/trunk/; revision=66405
2024-10-02 07:08:34 +00:00
Rik Hassing
19af9fc0fb FMHN#83674 Onmogelijk maken voor zelfservice om te reserveren op feestdagen/weekend
- Add lcl for strict holiday

svn path=/Database/trunk/; revision=66403
2024-10-02 06:47:25 +00:00
Maykel Geerdink
04e15ebee7 KMMO#82722: Kan er een knop toegevoegd worden om geaccordeerde taken terug te zetten.
svn path=/Database/trunk/; revision=66401
2024-10-02 06:38:20 +00:00
Jos Groot Lipman
7bfb9b6de4 FCLT#85545 App-notificaties oude ongebruikte secret wissen
svn path=/Database/trunk/; revision=66397
2024-10-01 13:58:00 +00:00
Jos Groot Lipman
eb8425ec7e FCLT#55803 fac_version_cust default USER laten zijn, is een goede default
svn path=/Database/trunk/; revision=66396
2024-10-01 13:46:58 +00:00
Jos Groot Lipman
ff6b515338 FCLT#85545 App-notificaties op android via Google HTTP v1 API
svn path=/Database/trunk/; revision=66395
2024-10-01 13:42:54 +00:00
Peter Feij
79a70ae0ee FCLT#85565 menutaak voor unused entitities toegevoegd
svn path=/Database/trunk/; revision=66389
2024-10-01 10:21:30 +00:00
Erik Groener
3fbe4a03c1 VLKC#84849 Koppeling Facilitor en Teams voor bezoekersmelding
svn path=/Database/trunk/; revision=66387
2024-10-01 09:57:48 +00:00
Jos Groot Lipman
a8ad890f48 YKPN#85668 Te lange (ongeldige) referentie bij factuur import moet niet tot een ORA-06502 leiden
svn path=/Database/trunk/; revision=66381
2024-09-30 12:48:45 +00:00
Jos Groot Lipman
f6dc3b6745 FCLT#85233 Code refactoring, geen inhoudelijke change
svn path=/Database/trunk/; revision=66344
2024-09-26 08:00:03 +00:00
Jos Groot Lipman
3ff983f174 FCLT#85233 Logfile rotate al bij 256kB ipv. 4MB per dag. Ruimt iets beter op
svn path=/Database/trunk/; revision=66298
2024-09-24 10:42:33 +00:00
Jos Groot Lipman
be7f89e25a FCLT#80469 procedure prs.set_afdeling_verwijder(prs_afdeling_key) alvast toevoegen (2025.1)
svn path=/Database/trunk/; revision=66241
2024-09-18 10:20:53 +00:00
Peter Feij
3ee75fcfef CSUN#85306 Kennisbankuitbreiding voor klant-specifieke werkinstructies, opzet
svn path=/Database/trunk/; revision=66239
2024-09-18 09:10:21 +00:00
Erik Groener
a97533f674 FCLT#83767 Data-roundtrip via Excel/CSV voor bulkdata aanvulling (evt mutaties)
svn path=/Database/trunk/; revision=66215
2024-09-17 07:04:03 +00:00
Rik Hassing
63b6036034 PCHX#85307 Factuur bolletjes kunnen zetten zonder schrijfrechten.
- Revert adding setting to update file. 

svn path=/Database/trunk/; revision=66211
2024-09-17 06:07:01 +00:00
Rik Hassing
415ce4d841 PCHX#85307 Factuur bolletjes kunnen zetten zonder schrijfrechten.
Add setting fin_factuur_flags_list_usage

svn path=/Database/trunk/; revision=66210
2024-09-16 14:35:15 +00:00
Rik Hassing
6c801f6560 FMHN#83674 Onmogelijk maken voor zelfservice om te reserveren op feestdagen/weekend
- Add strict option for res_247organisation

svn path=/Database/trunk/; revision=66206
2024-09-16 12:56:34 +00:00
Erik Groener
d7977c2d32 FCLT#83767 Data-roundtrip via Excel/CSV voor bulkdata aanvulling (evt mutaties)
svn path=/Database/trunk/; revision=66196
2024-09-13 10:02:21 +00:00
Rik Hassing
a0ba8f4a76 FCLT#84691 Beperken vervolgmeldingen in incident- en changemanagementprocessen
Add LCL('mld_vervolg_beperking') And LCL('mld_vervolg_beperking_m')

svn path=/Database/trunk/; revision=66176
2024-09-11 13:27:14 +00:00
Erik Groener
273e9abf51 FCLT#83767 Data-roundtrip via Excel/CSV voor bulkdata aanvulling (evt mutaties)
svn path=/Database/trunk/; revision=66172
2024-09-11 10:06:17 +00:00
Peter Feij
536d882f0e SKHF#83099 Instelling puo_order_flexfiles
svn path=/Database/trunk/; revision=66160
2024-09-09 14:13:18 +00:00
Jos Groot Lipman
6bdf9d550b YAXX#85315 Bijlagen notities niet gesynchroniseerd tussen VBGO en LOGC
svn path=/Database/trunk/; revision=66136
2024-09-05 08:25:01 +00:00
Peter Feij
104195277d LOGC#83589 Melding gereed melden en na x dagen automatisch definitief afmelden - functie daarvoor
svn path=/Database/trunk/; revision=66122
2024-09-04 08:21:55 +00:00
Erik Groener
be3b76b638 PCHX#80376 Kunnen we een einddatum meegeven bij vervangers?
svn path=/Database/trunk/; revision=66095
2024-09-02 06:32:46 +00:00
f8746bf3ef FCLT#85213 lcl aanpassing
svn path=/Database/trunk/; revision=66088
2024-08-30 15:24:49 +00:00
fd6d925da7 FCLT#85037 Afmelddatum van blokken tonen
svn path=/Database/trunk/; revision=66083
2024-08-30 13:40:11 +00:00
b9d809f17a VGLD#82219 + lcl_bes_opdr_kenmerk_visible; 'Ook bij de bestelopdracht tonen'
svn path=/Database/trunk/; revision=66079
2024-08-29 14:48:56 +00:00
Peter Feij
2d856986fb FCLT#85233 savepoint
svn path=/Database/trunk/; revision=66076
2024-08-29 12:59:22 +00:00
Jos Groot Lipman
a3813ffd50 HSLE#81369 - Heropenen meldingen op basis van autorisatiegroep
svn path=/Database/trunk/; revision=66075
2024-08-29 12:37:59 +00:00
2bd3095486 FBEA#83210 + res_activiteit_color
svn path=/Database/trunk/; revision=66073
2024-08-29 12:19:14 +00:00
Jos Groot Lipman
11bb6c1054 FCLT#85233 daily/weekly/monthly wel loggen in IMP_LOG
svn path=/Database/trunk/; revision=66062
2024-08-29 07:57:38 +00:00
Maykel Geerdink
2a7eb41142 BAUS#80301: Opties voor aanmaken kenmerken bij taken gelijk maken als bij andere modules.
svn path=/Database/trunk/; revision=66060
2024-08-28 15:40:19 +00:00
de6d5d5dbd VLKC#84483 Geen factuurmatching als het Contractbedrag leeg is gelaten (itt 0)
svn path=/Database/trunk/; revision=66058
2024-08-28 15:08:40 +00:00
a5dbabbb88 YAXX#84507 Alleen fac_setting_pvalue hoeft geupgrade te worden
svn path=/Database/trunk/; revision=66053
2024-08-28 13:50:34 +00:00
33052acdcb YAXX#84507 offerteaanvraag naar andere leveranciers dan voorkeur
svn path=/Database/trunk/; revision=66051
2024-08-28 13:37:33 +00:00
Maykel Geerdink
b7031657f6 BAUS#80301: Opties voor aanmaken kenmerken bij taken gelijk maken als bij andere modules.
svn path=/Database/trunk/; revision=66047
2024-08-28 11:51:50 +00:00
a5174c2934 FCLT#85238 S(mld_show_order_details), S(mld_orderlist_columns_compact) & S(mld_orderlist_columns_full) wegge-refactored
svn path=/Database/trunk/; revision=66032
2024-08-27 08:14:44 +00:00
Erik Groener
a2cd5e777f BLCC#81700 Kostensoort van catalogi gewist na import verbruiksartikelen
svn path=/Database/trunk/; revision=66028
2024-08-26 13:01:50 +00:00
a1eeb1aac1 FCLT#85233 deprecated settings removed; mobile_imageportal & mld_melding_actiecode & udr_graph_default_json
svn path=/Database/trunk/; revision=66025
2024-08-26 11:51:27 +00:00
Ilonka Maatman
672662b7f5 FCLT#85213 Foute labels en uitleg bij velden over behandelaar in vakgroep scherm.
svn path=/Database/trunk/; revision=66010
2024-08-23 14:15:01 +00:00
dd89721b16 VBGO#85208 Eerst kijken of de gebruiker mag overrulen voordat we early-exit'en
svn path=/Database/trunk/; revision=66008
2024-08-23 09:21:46 +00:00
c9eba75bba PCHW#84812 geen functionele wijziging
svn path=/Database/trunk/; revision=66003
2024-08-22 11:41:22 +00:00
Maykel Geerdink
15df66f5fc VNOG#84884: Voor Core implementeren: Automatische taakstart op plandatum werkt niet.
svn path=/Database/trunk/; revision=66000
2024-08-22 10:32:28 +00:00
Maykel Geerdink
5b9b4f7a01 VNOG#84884: Voor Core implementeren: Automatische taakstart op plandatum werkt niet.
svn path=/Database/trunk/; revision=65999
2024-08-22 10:25:21 +00:00
Rik Hassing
7c1df3ab1d PCHW#84812 PCHW wijziging mislukt door ontbrekende afdeling omschrijving
lcl terug gezet naar hardcoded 'Onbekend' i.v.m. dat het in de FAC_INI.SRC ook zo gezet wordt.

svn path=/Database/trunk/; revision=65997
2024-08-22 09:51:18 +00:00
Rik Hassing
30b23bbfe4 PCHW#84812 PCHW wijziging mislukt door ontbrekende afdeling omschrijving
- Kijkt naar default taal voor vertaling van 'Onbekend'

svn path=/Database/trunk/; revision=65996
2024-08-22 08:20:01 +00:00
Jos Groot Lipman
5920766645 STER#85198 Database versie niet helemaal correct
svn path=/Database/trunk/; revision=65995
2024-08-22 08:09:11 +00:00
Rik Hassing
8752ce48e9 PCHW#84812 PCHW wijziging mislukt door ontbrekende afdeling omschrijving
- Update prs_afdeling_omschrijving naar 'Onbekend' als die leeg is en prs_afdeling_naam '''Onbekend' is.

svn path=/Database/trunk/; revision=65994
2024-08-22 07:52:22 +00:00
719655ed35 FCLT#83437 S(ins_related_diagram_depth_min/max) toegevoegd
svn path=/Database/trunk/; revision=65992
2024-08-21 18:15:01 +00:00
3af80d95df FCLT#85185 fclt-skolar-sans uit opgeslagen css-templates verwijderen
svn path=/Database/trunk/; revision=65980
2024-08-21 11:51:36 +00:00
Peter Feij
753a00f026 WOXX#85186 Integratie Plato-preconfiguratie in GUI via INI\PLAT\plat_ini.sql
svn path=/Database/trunk/; revision=65978
2024-08-21 11:37:14 +00:00
Peter Feij
6fcc26303d BAUS#82920 UDR periodieke taken bevat niet resultaat van voltooide taken
svn path=/Database/trunk/; revision=65958
2024-08-20 14:37:23 +00:00
05070925f0 FCLT#84334 De rechten voor 2 menuopties aangepast van PRSSYS -> MLDMGT
svn path=/Database/trunk/; revision=65955
2024-08-20 13:00:10 +00:00
Peter Feij
bdd56a3946 PNBR#80680 Rapporteren doorlooptijd per behandelteam
LOGC#85166 tekst van gegenereerde melding (door Koen)

svn path=/Database/trunk/; revision=65952
2024-08-20 11:04:28 +00:00
Maykel Geerdink
c72c01b73b VNOG#84884: Voor Core implementeren: Automatische taakstart op plandatum werkt niet.
svn path=/Database/trunk/; revision=65951
2024-08-20 11:03:34 +00:00
Peter Feij
113a91179a FCLT#84695Aanpassing standaard menu-items bij ITSM en FMIS inrichting
svn path=/Database/trunk/; revision=65950
2024-08-20 10:25:07 +00:00
Jos Groot Lipman
9aeac78c9c FCLT#84940 Performance anonimiseer routines
svn path=/Database/trunk/; revision=65940
2024-08-19 12:39:33 +00:00
Peter Feij
4821d9944b MARX#80460 Technisch adres ook bij intern bedrijf
svn path=/Database/trunk/; revision=65919
2024-08-15 17:26:01 +00:00
Rik Hassing
6c9c54fb4a HSLE#81370 Automatisch geaccepteerde workflow melding accepteerder en afmelder tracken
svn path=/Database/trunk/; revision=65910
2024-08-15 10:51:08 +00:00
Rik Hassing
23194ce9ec HSLE#81370 Automatisch geaccepteerde workflow melding accepteerder en afmelder tracken
If only there is a rootmelding (quickmelding), use p_user_key.

svn path=/Database/trunk/; revision=65907
2024-08-15 08:09:14 +00:00
Peter Feij
e9d2aa1ee5 PNBR#80680 Rapporteren doorlooptijd per behandelteam: bezwaar dat vertaling in lagere view zit verwijderd
svn path=/Database/trunk/; revision=65906
2024-08-15 07:42:08 +00:00
487b42828f HSLE#84818 Setting omschrijving aangepast
svn path=/Database/trunk/; revision=65894
2024-08-14 12:09:32 +00:00
Rik Hassing
fff9fe747e HSLE#84818 standaardteksten layout instelling maken
Change description of mld_can_reopen_call

svn path=/Database/trunk/; revision=65884
2024-08-14 08:48:19 +00:00
Peter Feij
a6399108c8 FCLT#84691 Onlogische stapsgewijze keuzes in incident- en changemanagementprocessen voorkomen/ QA Jos
svn path=/Database/trunk/; revision=65877
2024-08-13 15:06:05 +00:00
Jos Groot Lipman
37fdbde5ad FMHN#84318 en FCLT#84626 syntax errors
svn path=/Database/trunk/; revision=65866
2024-08-13 07:58:57 +00:00
Rik Hassing
116c69bceb HSLE#84818 standaardteksten layout instelling maken
- Change setting name "mld_standardtexts_visibility_constant" to "mld_afmeldtekst_compact_threshold"

svn path=/Database/trunk/; revision=65862
2024-08-13 07:47:09 +00:00
Peter Feij
94827493be PNBR#80680 Rapporteren doorlooptijd per behandelteam: ook 2bo/2fo
svn path=/Database/trunk/; revision=65860
2024-08-13 07:32:13 +00:00
Suzan Wiegerinck
a2a6170594 FCLT#80263 ITIL/IT Service Management 'module', eerste versie is in 2024.2 opgeleverd
svn path=/Database/trunk/; revision=65852
2024-08-12 14:37:43 +00:00
Jos Groot Lipman
24c15533cd FCLT#81526 Standaard import voor MJOB
svn path=/Database/trunk/; revision=65842
2024-08-12 09:28:07 +00:00
Rik Hassing
22b326ba5c HSLE#84818 standaardteksten layout instelling maken
Add mld_standardtexts_visibility_constant

svn path=/Database/trunk/; revision=65837
2024-08-09 08:39:41 +00:00
Rik Hassing
4580ffb6f3 FCLT#83953 mld_melding_onderwerp is met 80 posities vaak erg kort
svn path=/Database/trunk/; revision=65834
2024-08-09 07:28:38 +00:00
Peter Feij
fef51ed4df PNBR#80680 Rapporteren doorlooptijd per behandelteam
svn path=/Database/trunk/; revision=65824
2024-08-07 12:28:34 +00:00
Peter Feij
4b4c972b69 PNBR#80680 Rapporteren doorlooptijd per behandelteam
svn path=/Database/trunk/; revision=65823
2024-08-07 12:15:01 +00:00
Peter Feij
33ec2050fc PNBR#80680 Rapporteren doorlooptijd per behandelteam
svn path=/Database/trunk/; revision=65818
2024-08-06 12:15:40 +00:00
Peter Feij
30bb325ada PNBR#80680 Rapporteren doorlooptijd per behandelteam
svn path=/Database/trunk/; revision=65817
2024-08-06 11:52:16 +00:00
Rik Hassing
13505faa1d HSLE#81370 Automatisch geaccepteerde workflow melding accepteerder en afmelder tracken
userkey parameter toegevoegd bij mld_nextworkflowstep

svn path=/Database/trunk/; revision=65807
2024-08-06 09:31:37 +00:00
Peter Feij
468e12d7a1 PNBR#80680 Rapporteren doorlooptijd per behandelteam
svn path=/Database/trunk/; revision=65803
2024-08-05 18:16:51 +00:00
Peter Feij
1fde8305d9 PNBR#80680 Rapporteren doorlooptijd per behandelteam (savepoint, deze gaan we vooralsnog niet gebruiken)
svn path=/Database/trunk/; revision=65802
2024-08-05 18:15:23 +00:00
a992f8bb70 FCLT#84691 NOT NULL stond niet op de juiste plek
svn path=/Database/trunk/; revision=65786
2024-08-01 15:50:58 +00:00
Peter Feij
41e2998e19 PNBR#80680 Rapporteren doorlooptijd per behandelteam
svn path=/Database/trunk/; revision=65779
2024-08-01 11:28:39 +00:00
105b879c26 FCLT#84940 Punt 2, 3 & 6
svn path=/Database/trunk/; revision=65777
2024-08-01 11:01:33 +00:00
Maykel Geerdink
c6f575cdc4 VNOG#84884: Voor Core implementeren: Automatische taakstart op plandatum werkt niet.
svn path=/Database/trunk/; revision=65773
2024-08-01 07:39:48 +00:00
Maykel Geerdink
98d064df86 CSUN#84466: Multiactie voltooien werkt niet altijd.
svn path=/Database/trunk/; revision=65767
2024-07-31 09:47:06 +00:00
Peter Feij
6a70c1a1e5 FCLT#84691 Onlogische stapsgewijze keuzes in incident- en changemanagementprocessen voorkomen
svn path=/Database/trunk/; revision=65757
2024-07-29 13:49:21 +00:00
ce59b740a2 BLCC#80311 typo
svn path=/Database/trunk/; revision=65738
2024-07-26 13:08:44 +00:00
c8500356f0 BLCC#80311 lcl's vorige/volgende week
svn path=/Database/trunk/; revision=65735
2024-07-26 11:40:05 +00:00
Erik Groener
179d1cdf4b FCLT#81526 Standaard import voor MJOB
svn path=/Database/trunk/; revision=65728
2024-07-26 08:18:49 +00:00
23ea190065 Merge 2024.2 DB48c patches (effectief no change)
svn path=/Database/trunk/; revision=65721
2024-07-25 12:42:58 +00:00
663b4b00bc EIND#84700 S(note_draft_history_days) voor draft notities
svn path=/Database/trunk/; revision=65715
2024-07-25 09:38:31 +00:00
Rik Hassing
3e68e78b3f BLCC#84553 Tracking scope contracten duidelijker
svn path=/Database/trunk/; revision=65686
2024-07-23 11:04:00 +00:00
Rik Hassing
cac5d10aff YAXX#83343 Afwijkend afzender mail adres bij facturen
Define setting: fin_replyaddress

svn path=/Database/trunk/; revision=65679
2024-07-23 07:33:36 +00:00
Rik Hassing
756c96c262 HSLE#81369 Heropenen meldingen op basis van autorisatiegroep
update reopen description with WEB_MLDREO

svn path=/Database/trunk/; revision=65678
2024-07-23 07:31:09 +00:00
Rik Hassing
5d28f6c540 HSLE#81369 - Heropenen meldingen op basis van autorisatiegroep
svn path=/Database/trunk/; revision=65663
2024-07-22 13:11:07 +00:00
Maykel Geerdink
be73356b47 AAIT#70980: Extra prioritering meegeven in MJOB-planning/begroting.
svn path=/Database/trunk/; revision=65662
2024-07-22 12:48:16 +00:00
Lisa de Boer
4c5609590b FCLT#80553 LCL bijgewerkt.
svn path=/Database/trunk/; revision=65659
2024-07-22 12:11:49 +00:00
Jos Groot Lipman
67ee3e7056 Merge 2024.2 DB48c patches
svn path=/Database/trunk/; revision=65657
2024-07-22 11:35:08 +00:00
Erik Groener
21fc0419a4 FCLT#84626 Probleem met te lange client_id bij oAuth authenticatie in BLCC#83852
svn path=/Database/trunk/; revision=65628
2024-07-18 08:30:54 +00:00
Erik Groener
38fc7b8e27 FCLT#84526 Filters op empty bij transport flexkenmerken en periodieke taken.
svn path=/Database/trunk/; revision=65583
2024-07-16 09:56:21 +00:00
Erik Groener
ae446074d8 FCLT#80320 Hoe omgaan met Undeliverable berichten naar Facilitor mail2melding
svn path=/Database/trunk/; revision=65575
2024-07-15 14:10:58 +00:00
Maykel Geerdink
0b44737d13 FMHN#83109: Uitleenhistorie - eerste vulling van ins_deel_uitgifte.
svn path=/Database/trunk/; revision=65546
2024-07-11 13:17:38 +00:00
Erik Groener
5d0ae887f4 FMHN#84318 instellen bedrijfskalender
svn path=/Database/trunk/; revision=65539
2024-07-11 07:09:04 +00:00
Maykel Geerdink
34f1102408 FMHN#83109: Uitleenhistorie - eerste vulling van ins_deel_uitgifte.
svn path=/Database/trunk/; revision=65532
2024-07-10 15:24:16 +00:00
Jos Groot Lipman
89be7cf529 FCLT#84550 Standaard niet meer uitloggen bij IP wissel
svn path=/Database/trunk/; revision=65500
2024-07-09 13:45:51 +00:00
Erik Groener
e24cbb07bb FMHN#84318 instellen bedrijfskalender
svn path=/Database/trunk/; revision=65492
2024-07-09 11:35:54 +00:00
31d92c6c3f Merge 2024.2 DB48b patches
svn path=/Database/trunk/; revision=65485
2024-07-09 08:51:53 +00:00
Erik Groener
3f7d407d68 FMHN#84318 instellen bedrijfskalender
svn path=/Database/trunk/; revision=65443
2024-07-05 10:14:33 +00:00
Erik Groener
4ea3fc4ff4 FMHN#84318 instellen bedrijfskalender
svn path=/Database/trunk/; revision=65440
2024-07-05 09:12:00 +00:00
Erik Groener
af0fda1873 FMHN#84318 instellen bedrijfskalender
svn path=/Database/trunk/; revision=65438
2024-07-05 08:59:55 +00:00
Erik Groener
d794feeb9d FMHN#84318 instellen bedrijfskalender
svn path=/Database/trunk/; revision=65433
2024-07-04 08:43:09 +00:00
025f9a2cf1 CSUN#82890 revert r65403
svn path=/Database/trunk/; revision=65405
2024-07-03 09:43:22 +00:00
ee5ed58734 CSUN#82890 nooit gebruikte LCL's
svn path=/Database/trunk/; revision=65403
2024-07-03 09:40:30 +00:00
eded914b00 Merge 2024.2 DB48a patches
svn path=/Database/trunk/; revision=65396
2024-07-03 07:11:25 +00:00
Erik Groener
34d7c9dcda YAXX#83974 Importsheet externe bedrijven - kolomnamen van de export-view fac_v_exp_bedrijfadres gelijk gemaakt aan die in de importsheet
svn path=/Database/trunk/; revision=65382
2024-07-02 13:44:08 +00:00
Erik Groener
8f80ac8015 YAXX#83974 Importsheet externe bedrijven - kolomnamen van de export-view fac_v_exp_bedrijfadres gelijk gemaakt aan die in de importsheet
svn path=/Database/trunk/; revision=65379
2024-07-02 13:01:44 +00:00
Erik Groener
dea2459971 YAXX#83974 Importsheet externe bedrijven - kolomnamen van de export-view fac_v_exp_bedrijfadres gelijk gemaakt aan die in de importsheet
svn path=/Database/trunk/; revision=65368
2024-07-02 11:21:21 +00:00
Erik Groener
86b8d0d843 FCLT#84262 Anonimiseer-functie(s) doen niets met bijlagen in notities
svn path=/Database/trunk/; revision=65329
2024-06-28 08:32:37 +00:00
Erik Groener
d5544d8300 PCHX#82938 Geïmporteerde facturen specifieker aan gewenste contractversie koppelen
svn path=/Database/trunk/; revision=65297
2024-06-26 14:24:09 +00:00
Erik Groener
6eb497703a PCHX#81768 Plaats informatie toevoegen aan contract overzicht
svn path=/Database/trunk/; revision=65280
2024-06-25 14:22:00 +00:00
Jos Groot Lipman
1e3b1ff6ec EIND#82452 Meldingsomschrijving van 4000 naar 32767 oprekken
svn path=/Database/trunk/; revision=65245
2024-06-20 09:59:40 +00:00
Erik Groener
319b3c4e0d PCHX#80376 Kunnen we een einddatum meegeven bij vervangers?
svn path=/Database/trunk/; revision=65243
2024-06-20 09:19:14 +00:00
Erik Groener
29f6511b34 YAXX#83974 Importsheet externe bedrijven - technische adressen replyadres toevoegen
svn path=/Database/trunk/; revision=65236
2024-06-20 06:15:18 +00:00
Erik Groener
730071e702 YAXX#83974 Importsheet externe bedrijven - technische adressen replyadres toevoegen
svn path=/Database/trunk/; revision=65231
2024-06-19 14:51:39 +00:00
Jos Groot Lipman
8ae08cf73e FCLT#83940 Wat doet fac_api.fac_import_app_key eigenlijk
svn path=/Database/trunk/; revision=65230
2024-06-19 14:41:06 +00:00
Jos Groot Lipman
5d26277100 FCLT#83751 Mail2SOAP-dispatcher ontmantelen
svn path=/Database/trunk/; revision=65229
2024-06-19 14:40:06 +00:00
Erik Groener
92625d6ee1 PCHX#80376 Kunnen we een einddatum meegeven bij vervangers?
svn path=/Database/trunk/; revision=65226
2024-06-19 14:24:02 +00:00
Erik Groener
ccae9edcb9 FCLT#84230 flexbijlagen van ongerelateerde entiteiten komen in de XML
svn path=/Database/trunk/; revision=65212
2024-06-19 09:35:13 +00:00
58c2bfec35 Merge 2024.2 DB48a patches (ongoing)
svn path=/Database/trunk/; revision=65203
2024-06-18 14:12:53 +00:00
Erik Groener
5560215936 YAXX#83974 Importsheet externe bedrijven - technische adressen replyadres toevoegen
svn path=/Database/trunk/; revision=65199
2024-06-18 13:46:57 +00:00
Rik Hassing
6aac64962c Ticket FCLT#82437 Inzicht concept meldingen
Add menuitem lcl_menu_mld_concepts (Concept meldingen).
Add to update DB48to49

svn path=/Database/trunk/; revision=65198
2024-06-18 13:45:36 +00:00
5bbb923eec FCLT#76580 volgnr blijkbaar subtiel aangepast
svn path=/Database/trunk/; revision=65155
2024-06-17 08:33:35 +00:00
2e2ec5d478 FCLT#83491 Setup [Facilitor only] -> Setup
svn path=/Database/trunk/; revision=65145
2024-06-17 06:58:07 +00:00
e4f413ad36 Versie DB49
svn path=/Database/trunk/; revision=65117
2024-06-13 10:08:19 +00:00
92 changed files with 18783 additions and 7278 deletions

View File

@@ -11,6 +11,7 @@ AS
FUNCTION scriptspoolfile(custpattern IN VARCHAR2, scriptname IN VARCHAR2) RETURN VARCHAR2;
FUNCTION getscriptspoolfile(scriptname IN VARCHAR2) RETURN VARCHAR2;
FUNCTION checkscriptcust(custpattern IN VARCHAR2) RETURN VARCHAR2;
PROCEDURE fix_mld_t_uitvoertijd;
END adm;
/
@@ -202,10 +203,63 @@ AS
raise_application_error(-20001, tekst);
END IF;
-- Voor als een once-script ooit tabellen aanmaakt.
EXECUTE IMMEDIATE 'ALTER SESSION SET nls_length_semantics=''char''';
RETURN tekst;
END;
END adm;
-- Als je een database importeert onder een andere user wordt de schemanaam voor de defaults
-- van mld_t_uitvoertijd 'bevroren' en kun je de database nooit meer onder een ander schema
-- inlezen. In deze procedure herdefiniereren we alle default waardes zodat je de database
-- daarna na exporteren gemakkelijk ergens anders kunt inlezen
-- Er is niet automatisch te bepalen wanneer dit al dan niet nodig is. Daarom doen we het:
-- * In de epiloog van een upgrade
-- * Na anonimiseren (wat nog wel eens gebeurt vlak na een database refresh)
PROCEDURE fix_mld_t_uitvoertijd
IS
--
-- data_default is van het datatype LONG. Daarop kan geen string-bewerking als INSTR(), SUBSTR() en REPLACE() worden gedaan.
-- Daarom moeten de benodigde gegevens eerst in een tijdelijke tabel ingelezen worden zodat het datatype VARCHAR2 wordt. Voor
-- het huidige doel (de owner van MLD_T_UITVOERTIJD verwijderen) is de stringlengte van 1000 voldoende.
-- Met FETCH .. BULK COLLECT INTO .. worden alle records die volgen uit de query in 1 keer opgehaald. Dit is sneller dan een fetch in een loop.
--
TYPE ut_row IS RECORD
( tab_name VARCHAR2(100)
, col_name VARCHAR2(100)
, data_default VARCHAR2(1000)
);
TYPE ut_tab IS TABLE OF ut_row
INDEX BY PLS_INTEGER;
qry_txt VARCHAR2(1000);
upd_txt VARCHAR2(1000);
l_table ut_tab;
l_cursor SYS_REFCURSOR;
l_pos INTEGER;
l_default VARCHAR2(1000);
BEGIN
qry_txt := 'SELECT table_name, column_name, data_default'
|| ' FROM user_tab_columns'
|| ' WHERE data_type = ''MLD_T_UITVOERTIJD''';
OPEN l_cursor FOR qry_txt;
FETCH l_cursor BULK COLLECT INTO l_table;
CLOSE l_cursor;
FOR indx IN 1 .. l_table.COUNT
LOOP
l_pos := INSTR(l_table(indx).data_default, '"."');
IF (l_pos > 0)
THEN
l_default := REPLACE(REPLACE(SUBSTR(l_table(indx).data_default, l_pos+3, 100), '"', ''),'''','');
upd_txt := 'ALTER TABLE '|| l_table(indx).tab_name ||' MODIFY '|| l_table(indx).col_name ||' DEFAULT '|| l_default;
dbms_output.put_line(upd_txt);
EXECUTE IMMEDIATE upd_txt;
END IF;
END LOOP;
END;
END adm;
/
REGISTERRUN('$Id$')

View File

@@ -36,17 +36,17 @@
dummy1, child_verwijder, child_key, dummy2) \
BEGIN \
IF :new.parent_verwijder IS NOT NULL \
_THEN \
THEN \
UPDATE child_table \
SET child_verwijder = :new.parent_verwijder \
WHERE child_table.child_key = :new.parent_key \
AND child_table.ins_alg_ruimte_type = 'W' \
AND child_table.ins_deel_verwijder IS NULL; \
_ELSIF (:new.parent_verwijder IS NULL AND :old.parent_verwijder IS NOT NULL)\
_THEN \
ELSIF (:new.parent_verwijder IS NULL AND :old.parent_verwijder IS NOT NULL)\
THEN \
UPDATE child_table \
SET child_verwijder = :new.parent_verwijder \
WHERE child_table.child_key = :new.parent_key \
AND ins_alg_ruimte_type = 'W'; \
_END_IF; \
END_IF; \
END

View File

@@ -120,6 +120,8 @@ CREATE_TABLE(alg_locatie,0)
DATE,
alg_locatie_volgnr
NUMBER(3),
alg_locatie_timezone
VARCHAR2(40),
-- in MLD_TAB.SRC:
-- mld_dienstniveau_key
-- NUMBER(10)
@@ -436,6 +438,10 @@ CREATE_TABLE(alg_gebouw,0)
VARCHAR2(256),
alg_gebouw_externsyncdate
DATE,
mld_vrije_dagen_id
VARCHAR2(50),
alg_gebouw_virtueel
NUMBER(1) DEFAULT(0) NOT NULL, /* 0=normaal, 1=virtueel gebouw */
-- in MLD_TAB.SRC:
-- mld_dienstniveau_key
-- NUMBER(10)
@@ -486,6 +492,8 @@ CREATE_TABLE(alg_verdieping,0)
VARCHAR2(256),
alg_verdieping_externsyncdate
DATE,
alg_verdieping_virtueel
NUMBER(1) DEFAULT(0) NOT NULL, /* 0=normaal, 1=virtuele verdieping */
-- in MLD_TAB.SRC:
-- mld_dienstniveau_key
-- NUMBER(10)
@@ -651,6 +659,8 @@ CREATE_TABLE(alg_ruimte,0)
VARCHAR2(256),
alg_ruimte_externsyncdate
DATE,
alg_ruimte_virtueel
NUMBER(1) DEFAULT(0) NOT NULL, /* 0=normaal, 1=virtuele ruimte */
-- in MLD_TAB.SRC:
-- mld_dienstniveau_key
-- NUMBER(10)
@@ -704,10 +714,13 @@ CREATE_TABLE(alg_kenmerk,0)
,alg_kenmerk_niveau
VARCHAR2(1)
CONSTRAINT alg_c_alg_kenmerk_niveau1 CHECK(alg_kenmerk_niveau IS NOT NULL
AND alg_kenmerk_niveau IN ('R','V','G','T','L','D'))
AND alg_kenmerk_niveau IN ('R','V','G','T','L','D','E'))
,alg_kenmerk_volgnr
NUMBER(3)
NOT NULL
,alg_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
,alg_kenmerk_omschrijving
VARCHAR2(50)
,alg_kenmerk_upper

View File

@@ -64,6 +64,17 @@ AS
RETURN NUMBER;
FUNCTION bes_besteed_budget_agb (p_kp_key IN NUMBER)
RETURN NUMBER;
PROCEDURE notifybestellingbedrijven (pbestelkey NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifybestelopdrbedrijven (pbestelopdrkey NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PROCEDURE autodeliver;
END bes;
/
@@ -2216,6 +2227,229 @@ AS
RETURN l_budgetbesteld;
END;
PROCEDURE notifybestellingbedrijven (pbestelkey NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
NULL; -- TODO?
END;
PROCEDURE notifybestelopdrbedrijven (pbestelopdrkey NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
FOR bedrijfrec IN (SELECT b.prs_bedrijf_key,
CASE WHEN b.prs_bedrijf_key = o.prs_bedrijf_key THEN 'B' ELSE 'G' END bedrijfadres_type,
l.alg_locatie_key,
o.bes_bestelopdr_id
FROM prs_bedrijf b,
bes_bestelopdr o,
mld_adres ma,
alg_locatie l
WHERE o.bes_bestelopdr_key = pbestelopdrkey
AND o.mld_adres_key_lev = ma.mld_adres_key
AND ma.alg_locatie_key = l.alg_locatie_key(+)
AND ( b.prs_bedrijf_key = o.prs_bedrijf_key -- type 'B'
OR EXISTS
(SELECT 1
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'G')))
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,
prefkey => pbestelopdrkey,
ptrackingkey => ptrackingkey,
preference => bedrijfrec.bes_bestelopdr_id,
plocatie_key => bedrijfrec.alg_locatie_key,
pnotidelay => pnotidelay);
END LOOP;
END;
PROCEDURE autodeliver
IS
v_bes_bestellevr_key bes_bestellevr.bes_bestellevr_key%TYPE;
last_bes_bestelopdr_key bes_bestelopdr.bes_bestelopdr_key%TYPE;
last_bes_bestelling_key bes_bestelling_item.bes_bestelling_key%TYPE;
amount bes_bestelling_item.bes_bestelling_item_aantal%TYPE;
tracking VARCHAR2 (2000);
CURSOR b_upd IS
SELECT b.bes_bestelopdr_key,
b.bes_bestelopdr_id,
boi.bes_bestelopdr_item_key,
boi.bes_bestelopdr_item_aantal,
boi.bes_bestelopdr_item_omschrijv,
bi.bes_bestelling_key,
bi.bes_bestelling_item_key
FROM bes_bestelling bes
JOIN bes_bestelling_item bi
ON bi.bes_bestelling_key = bes.bes_bestelling_key
JOIN bes_bestelopdr_item boi
ON boi.bes_bestelopdr_item_key =
bi.bes_bestelopdr_item_key
JOIN bes_srtdeel s
ON s.bes_srtdeel_key = bi.bes_srtdeel_key
JOIN bes_srtgroep g
ON g.bes_srtgroep_key = s.bes_srtgroep_key
JOIN bes_disc_params bdp
ON bdp.bes_ins_discipline_key = g.ins_discipline_key
JOIN bes_bestelopdr b
ON b.bes_bestelopdr_key = boi.bes_bestelopdr_key
WHERE bdp.bes_disc_params_fe_confirm = 0
AND bdp.bes_disc_params_deliver_fe = 0
AND ( boi.bes_bestelopdr_item_aantalontv IS NULL
OR boi.bes_bestelopdr_item_aantalontv <
boi.bes_bestelopdr_item_aantal)
AND bdp.bes_disc_params_autodeliverdays > 0
AND bes.bes_bestelling_leverdatum
+ bdp.bes_disc_params_autodeliverdays <
SYSDATE
ORDER BY b.bes_bestelopdr_key;
PROCEDURE bes_auto_update (bes_bestelling_key IN NUMBER,
bes_bestelopdr_key IN NUMBER,
tracking IN VARCHAR2)
IS
prs_voor bes_bestelling.prs_perslid_key_voor%TYPE;
sender alg_locatie.alg_locatie_email%TYPE;
CURSOR fin_autoapprove (bestelopdr_key NUMBER)
IS
SELECT f.fin_factuur_key
FROM fin_factuur f
WHERE f.bes_bestelopdr_key = bestelopdr_key
AND f.fin_factuur_statuses_key = 2
AND f.fin_factuur_verwijder IS NULL
ORDER BY f.fin_factuur_key;
BEGIN
IF bes_bestelopdr_key <> -1
THEN
-- Update eerst de vorige nog even (deze is voor de laatste)
UPDATE bes_bestelopdr bo
SET bo.bes_bestelopdr_delivery_opmerk =
lcl.l ('bes_discipline_autodelivered')
WHERE bo.bes_bestelopdr_key =
bes_auto_update.bes_bestelopdr_key;
fac.trackaction ('BES2UP',
bes_bestelopdr_key,
NULL,
NULL,
tracking);
bes.updatebestelopdrstatus (bes_bestelopdr_key, NULL);
bes.updatebestellingstatus (bes_bestelling_key, NULL);
BEGIN
SELECT bes.prs_perslid_key_voor, l.alg_locatie_email
INTO prs_voor, sender
FROM bes_bestelling bes
JOIN mld_adres ma
ON ma.mld_adres_key = bes.mld_adres_key_lev
JOIN alg_locatie l
ON l.alg_locatie_key = ma.alg_locatie_key
WHERE bes.bes_bestelling_key =
bes_auto_update.bes_bestelling_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
prs_voor := NULL;
sender := NULL;
END;
fac.putnotificationsrtprio (NULL,
prs_voor,
'BESOT2',
bes_bestelling_key,
NULL,
NULL,
NULL,
NULL,
NULL,
2,
sender);
FOR rec IN fin_autoapprove (bes_bestelopdr_key)
LOOP
fin.autoapprovefactuur (rec.fin_factuur_key);
END LOOP;
END IF;
END;
BEGIN
last_bes_bestelopdr_key := -1;
last_bes_bestelling_key := -1;
FOR rec IN b_upd
LOOP
IF rec.bes_bestelopdr_key <> last_bes_bestelopdr_key
THEN
-- Update eerst de vorige nog even;
bes_auto_update (last_bes_bestelling_key,
last_bes_bestelopdr_key,
tracking);
-- En hierna verder met de huidige
last_bes_bestelopdr_key := rec.bes_bestelopdr_key;
last_bes_bestelling_key := rec.bes_bestelling_key;
tracking :=
REPLACE (
lcl.l ('lcl_bes_is_bes2uptrack'),
'{0}',
fac.getsetting ('bes_bestelopdr_prefix')
|| rec.bes_bestelopdr_id);
INSERT INTO bes_bestellevr (bes_bestellevr_opmerk)
VALUES (lcl.l ('bes_discipline_autodelivered'))
RETURNING bes_bestellevr_key
INTO v_bes_bestellevr_key;
END IF;
SELECT bes_bestelopdr_item_aantal
- COALESCE (bes_bestelopdr_item_aantalontv, 0)
INTO amount
FROM bes_bestelopdr_item
WHERE bes_bestelopdr_item_key = rec.bes_bestelopdr_item_key;
INSERT INTO bes_bestellevr_item (bes_bestellevr_key,
bes_bestelopdr_item_key,
bes_bestellevr_item_aantal)
VALUES (v_bes_bestellevr_key,
rec.bes_bestelopdr_item_key,
amount);
UPDATE bes_bestelopdr_item
SET bes_bestelopdr_item_aantalontv =
bes_bestelopdr_item_aantal,
bes_bestelopdr_item_ontvangen = SYSDATE
WHERE bes_bestelopdr_item_key = rec.bes_bestelopdr_item_key;
UPDATE bes_bestelling_item
SET bes_bestelling_item_aantalontv =
COALESCE (bes_bestelling_item_aantalontv, 0) + amount
WHERE bes_bestelling_item_key = rec.bes_bestelling_item_key;
tracking :=
SUBSTR (
tracking
|| CHR(10)
|| lcl.l ('lcl_bes_delivery')
|| ': '
|| amount
|| ' '
|| rec.bes_bestelopdr_item_omschrijv,
1,
2000);
END LOOP;
-- Update de laatste ook nog even;
bes_auto_update (last_bes_bestelling_key,
last_bes_bestelopdr_key,
tracking);
END;
END bes;
/

View File

@@ -497,7 +497,7 @@ CREATE_TABLE(bes_disc_params, 0)
NUMBER(1)
DEFAULT 0
NOT NULL,
bes_disc_params_bestelmode /* 0=ouderwets artikelselector, 1=vrij artikelen, 2=bestellijst */
bes_disc_params_bestelmode /* 0=ouderwets artikelselector, 1=vrij artikelen, 2=bestellijst, 3=actuele lijst */
NUMBER(1)
DEFAULT 0
NOT NULL,
@@ -520,7 +520,9 @@ CREATE_TABLE(bes_disc_params, 0)
bes_disc_params_deliver_fe
NUMBER(1)
DEFAULT 0
NOT NULL
NOT NULL,
bes_disc_params_autodeliverdays /* Als bes_disc_params_fe_confirm = 0 AND bes_disc_params_deliver_fe = 0, dan wordt deze bestelopdracht na bes_disc_params_autodeliverdays dagen als 'geleverd' gemarkeerd */
NUMBER(4)
);
//// flexprops
@@ -605,6 +607,9 @@ CREATE_TABLE(bes_kenmerk, 0)
, bes_kenmerk_volgnummer
NUMBER(3)
NOT NULL
, bes_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
, bes_kenmerk_uniek
NUMBER(1)
, bes_kenmerk_regexp

View File

@@ -64,7 +64,7 @@ BEGIN
IF (:new.bes_bestelling_satisfaction IS NOT NULL
AND (:old.bes_bestelling_satisfaction IS NULL OR :old.bes_bestelling_satisfaction <> :new.bes_bestelling_satisfaction))
THEN
fac.trackaction('BESLIK', :old.bes_bestelling_key, NULL , SYSDATE, REPLACE(lcl.l('lcl_faclike_changed'), '{0}', :new.bes_bestelling_satisfaction));
fac.trackaction('#BESLIK', :old.bes_bestelling_key, NULL , SYSDATE, REPLACE(lcl.l('lcl_faclike_changed'), '{0}', :new.bes_bestelling_satisfaction));
END IF;
END;
/

View File

@@ -351,6 +351,118 @@ AS
AND sd.prs_bedrijf_key = b.prs_bedrijf_key
AND sd.bes_staffeltabel_key = bs.bes_staffeltabel_key;
CREATE_VIEW(bes_v_average_current_stock, 0)
AS
-- Gemiddelde voorraad en bestellingen voor "Actuele lijst" artikelen.
SELECT sd.bes_srtdeel_key,
sd.bes_srtdeel_volgnr volgnummer,
sd.bes_srtdeel_nr artikelnummer,
sd.bes_srtdeel_omschrijving artikel,
sd.bes_srtdeel_notitie notitie,
dp.bes_ins_discipline_key,
bd.ins_discipline_omschrijving discipline,
g.bes_srtgroep_key,
g.bes_srtgroep_omschrijving groep,
sd.bes_srtdeel_voorraadmax voorraadmax,
sd.bes_srtdeel_voorraadmin voorraadmin,
sd.bes_srtdeel_maxbestel maxbestel,
sd.bes_srtdeel_minimum bestelmin,
sd.bes_srtdeel_maximum bestelmax,
sd.bes_srtdeel_veelvoud bestelveelvoud,
sd.bes_srtdeel_eenheid eenheid,
sd.bes_srtdeel_vervaldatum vervaldatum,
(SELECT COUNT(*)
FROM bes_kenmerk bk,
bes_srtkenmerk sk,
bes_srtdeel sd2,
bes_srtgroep sg
WHERE sd2.bes_srtgroep_key = sg.bes_srtgroep_key
AND (bk.bes_srtinstallatie_key = sg.ins_discipline_key
AND bk.bes_kenmerk_niveau LIKE 'D'
OR bk.bes_srtinstallatie_key = sg.bes_srtgroep_key
AND bk.bes_kenmerk_niveau LIKE 'G'
OR bk.bes_srtinstallatie_key = sd2.bes_srtdeel_key
AND bk.bes_kenmerk_niveau LIKE 'S')
AND bk.bes_kenmerk_type = 'I'
AND bk.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND bk.bes_kenmerk_verwijder IS NULL
AND sk.bes_srtkenmerk_verwijder IS NULL
AND sd2.bes_srtdeel_key = sd.bes_srtdeel_key) aantal_kenmerken,
SUM(CASE WHEN b.bes_bestelling_status = 6 THEN 0 ELSE bi.bes_bestelling_item_aantal END) - SUM(CASE WHEN b.bes_bestelling_status = 6 THEN 0 ELSE COALESCE(bi.bes_bestelling_item_aantalontv, 0) END) in_bestelling,
SUM(bi.bes_bestelling_item_aantal) besteld,
SUM(COALESCE(bi.bes_bestelling_item_aantalontv, 0)) geleverd,
COALESCE(bes.getsrtdeelprijs(sd.bes_srtdeel_key, NULL), 0) prijs,
MIN(b.bes_bestelling_datum) eerste_bestelling,
MAX(b.bes_bestelling_datum) laatste_bestelling,
ROUND(MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) historie_dagen,
COUNT(sd.bes_srtdeel_key) aantal_bestellingen,
ROUND((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / COUNT(sd.bes_srtdeel_key)) bestel_periode_dagen,
CASE
WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0
THEN NULL
ELSE ROUND((COUNT(sd.bes_srtdeel_key) / ((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365)) / 12, 1)
END bestellingen_per_maand,
CASE
WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0
THEN NULL
ELSE ROUND((((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365) * SUM(bi.bes_bestelling_item_aantal)) / 12, 1)
END artikelen_per_maand,
CASE
WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0
THEN NULL
ELSE ROUND((((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365) * SUM(bi.bes_bestelling_item_aantal)) * COALESCE(bes.getsrtdeelprijs(sd.bes_srtdeel_key, NULL), 0) / 12)
END totaal_per_maand,
CASE
WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0
THEN NULL
ELSE ROUND(COUNT(sd.bes_srtdeel_key) / ((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365), 1)
END bestellingen_per_jaar,
CASE
WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0
THEN NULL
ELSE ROUND(((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365) * SUM(bi.bes_bestelling_item_aantal))
END artikelen_per_jaar,
CASE
WHEN MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum) = 0
THEN NULL
ELSE ROUND(((MAX(b.bes_bestelling_datum) - MIN(b.bes_bestelling_datum)) / 365) * SUM(bi.bes_bestelling_item_aantal)) * COALESCE(bes.getsrtdeelprijs(sd.bes_srtdeel_key, NULL), 0)
END totaal_per_jaar
FROM bes_discipline bd,
bes_v_aanwezigsrtgroep g,
bes_v_aanwezigsrtdeel sd,
bes_disc_params dp,
bes_bestelling b,
bes_bestelling_item bi
WHERE sd.bes_srtgroep_key = g.bes_srtgroep_key
AND dp.bes_disc_params_bestelmode = 3
AND g.ins_discipline_key = bd.ins_discipline_key
AND bd.ins_discipline_key = dp.bes_ins_discipline_key
AND sd.bes_srtdeel_key = bi.bes_srtdeel_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND b.bes_bestelling_status IN (2, 3, 4, 5, 6)
AND (sd.bes_srtdeel_vervaldatum IS NULL
OR sd.bes_srtdeel_vervaldatum > SYSDATE)
GROUP BY sd.bes_srtdeel_volgnr,
sd.bes_srtdeel_nr,
sd.bes_srtdeel_key,
sd.bes_srtdeel_omschrijving,
sd.bes_srtdeel_notitie,
dp.bes_ins_discipline_key,
bd.ins_discipline_omschrijving,
g.bes_srtgroep_key,
g.bes_srtgroep_omschrijving,
sd.bes_srtdeel_voorraadmax,
sd.bes_srtdeel_voorraadmin,
sd.bes_srtdeel_maxbestel,
sd.bes_srtdeel_minimum,
sd.bes_srtdeel_maximum,
sd.bes_srtdeel_veelvoud,
sd.bes_srtdeel_eenheid,
sd.bes_srtdeel_vervaldatum
ORDER BY sd.bes_srtdeel_volgnr,
sd.bes_srtdeel_nr;
REGISTERRUN('$Id$')
#endif // BES

View File

@@ -13,6 +13,13 @@ CREATE OR REPLACE PACKAGE bez AS
FUNCTION afssprintf (ps IN VARCHAR2 , p_afspraak_key IN NUMBER) RETURN VARCHAR2 ;
FUNCTION bzksprintf (ps IN VARCHAR2 , p_bezoekers_key IN NUMBER) RETURN VARCHAR2 ;
PROCEDURE remove (p_afspraak_key IN NUMBER);
PROCEDURE notifyafspraakbedrijven (p_afspraak_key NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifybezoekerbedrijven (p_bezoekers_key NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
END bez;
/
@@ -583,6 +590,67 @@ CREATE OR REPLACE PACKAGE BODY bez AS
fac.remove_tracking('afspraak', p_afspraak_key);
END;
-- Alleen generieke bedrijven
PROCEDURE notifyafspraakbedrijven (p_afspraak_key NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
IS
BEGIN
FOR bedrijfrec IN (SELECT b.prs_bedrijf_key,
'G' bedrijfadres_type,
a.alg_locatie_key,
a.bez_afspraak_key
FROM prs_bedrijf b,
bez_afspraak a
WHERE a.bez_afspraak_key = p_afspraak_key
AND EXISTS
(SELECT 1
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'G'))
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,
prefkey => p_afspraak_key,
ptrackingkey => ptrackingkey,
preference => TO_CHAR(bedrijfrec.bez_afspraak_key),
plocatie_key => bedrijfrec.alg_locatie_key,
pnotidelay => pnotidelay);
END LOOP;
END;
-- Alleen generieke bedrijven
PROCEDURE notifybezoekerbedrijven (p_bezoekers_key NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
IS
BEGIN
FOR bedrijfrec IN (SELECT b.prs_bedrijf_key,
'G' bedrijfadres_type,
a.alg_locatie_key,
a.bez_afspraak_key
FROM prs_bedrijf b,
bez_afspraak a,
bez_bezoekers bb
WHERE bb.bez_afspraak_key = a.bez_afspraak_key
AND EXISTS
(SELECT 1
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'G'))
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,
prefkey => p_bezoekers_key,
ptrackingkey => ptrackingkey,
preference => TO_CHAR(bedrijfrec.bez_afspraak_key),
plocatie_key => bedrijfrec.alg_locatie_key,
pnotidelay => pnotidelay);
END LOOP;
END;
END bez;
/

View File

@@ -161,6 +161,9 @@ CREATE_TABLE(bez_kenmerk,0)
,bez_kenmerk_volgnr
NUMBER(3)
NOT NULL
,bez_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
,bez_kenmerk_omschrijving
VARCHAR2(50)
,bez_kenmerk_upper

View File

@@ -3,14 +3,22 @@
* $Id$
*/
CREATE_TRIGGER(bez_t_bez_afspraak_B_I)
BEFORE INSERT ON bez_afspraak
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(bez_afspraak_key,bez_s_bez_afspraak_key);
END;
/
CREATE_TRIGGER(bez_t_bez_afspraak_B_IU)
BEFORE INSERT OR UPDATE ON bez_afspraak
FOR EACH ROW
DECLARE dummy NUMBER;
BEGIN
UPDATE_PRIMARY_KEY(bez_afspraak_key,bez_s_bez_afspraak_key);
dummy := :new.bez_afspraak_key;
IF sys_context('USERENV', 'ACTION') = 'ANONYMIZE' OR
sys_context('USERENV', 'ACTION') = 'DBUPGRADE' THEN
RETURN;
END IF;
IF :new.bez_afspraak_contact_key IS NULL AND :new.prs_perslid_key IS NOT NULL THEN
:new.bez_afspraak_contact_key := :new.prs_perslid_key;
@@ -62,8 +70,8 @@ BEGIN
END;
/
CREATE_TRIGGER(bez_t_bez_bezoekers_B_IU)
BEFORE INSERT OR UPDATE ON bez_bezoekers
CREATE_TRIGGER(bez_t_bez_bezoekers_B_I)
BEFORE INSERT ON bez_bezoekers
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(bez_bezoekers_key,bez_s_bez_bezoekers_key);

View File

@@ -13,9 +13,9 @@ CREATE_TABLE(bgt_disc_params,0)
NUMBER (10)
CONSTRAINT bgt_r_ins_discipine_key REFERENCES ins_tab_discipline (ins_discipline_key),
bgt_disc_params_code -- projectcode
VARCHAR2 (20 BYTE),
VARCHAR2 (20 CHAR),
bgt_disc_params_opdrachtgever
VARCHAR2 (200 BYTE),
VARCHAR2 (200 CHAR),
bgt_disc_params_startdatum
DATE
);
@@ -28,18 +28,18 @@ CREATE_TABLE(bgt_project, 0)
NUMBER (10)
CONSTRAINT bgt_r_ins_discipline_key1 REFERENCES ins_tab_discipline (ins_discipline_key),
bgt_project_code
VARCHAR2 (20 BYTE)
VARCHAR2 (20 CHAR)
CONSTRAINT bgt_c_bgt_project_code NOT NULL,
bgt_project_omschrijving
VARCHAR2 (60 BYTE),
VARCHAR2 (60 CHAR),
bgt_project_volgnr
NUMBER (3),
bgt_project_prijspeildatum
DATE,
bgt_project_info
VARCHAR2 (4000 BYTE),
VARCHAR2 (4000 CHAR),
bgt_project_notes
VARCHAR2 (4000 BYTE),
VARCHAR2 (4000 CHAR),
bgt_project_aanmaak
DATE DEFAULT SYSDATE,
bgt_project_verwijder
@@ -59,9 +59,9 @@ CREATE_TABLE(bgt_kostenrubriek,0)
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),
VARCHAR2 (20 CHAR),
bgt_kostenrubriek_oms
VARCHAR2 (60 BYTE) NOT NULL,
VARCHAR2 (60 CHAR) NOT NULL,
fin_btwtabelwaarde_key
NUMBER(10)
CONSTRAINT bgt_r_fin_btwtabelwaarde_key REFERENCES fin_btwtabelwaarde (fin_btwtabelwaarde_key)

View File

@@ -13,7 +13,8 @@ DEFINIEER_VIEW_AANWEZIG(ctr_discipline, ins_discipline_verwijder,
CREATE OR REPLACE VIEW bgt_v_project_gegevens
AS
SELECT pr.ins_discipline_key
SELECT pr.ins_discipline_key FCLT_3D_DISCIPLINE_KEY
, pr.ins_discipline_key
, pr.bgt_project_key
, dp.bgt_disc_params_opdrachtgever opdrachtgever
, dp.bgt_disc_params_code pcode
@@ -34,7 +35,8 @@ AS
CREATE OR REPLACE VIEW bgt_v_project_full
AS
SELECT pr.ins_discipline_key
SELECT pr.ins_discipline_key FCLT_3D_DISCIPLINE_KEY
, pr.ins_discipline_key
, pr.bgt_project_key
, pr.opdrachtgever
, pr.pcode
@@ -60,7 +62,8 @@ AS
, bgt_kostenrubriek kr
WHERE pr.bgt_project_key = kr.bgt_project_key
UNION
SELECT pr.ins_discipline_key
SELECT pr.ins_discipline_key FCLT_3D_DISCIPLINE_KEY
, pr.ins_discipline_key
, pr.bgt_project_key
, pr.opdrachtgever
, pr.pcode
@@ -88,7 +91,8 @@ AS
WHERE pr.bgt_project_key = kr.bgt_project_key
AND kr.bgt_kostenrubriek_key = kg.bgt_kostenrubriek_key
UNION
SELECT pr.ins_discipline_key
SELECT pr.ins_discipline_key FCLT_3D_DISCIPLINE_KEY
, pr.ins_discipline_key
, pr.bgt_project_key
, pr.opdrachtgever
, pr.pcode

View File

@@ -112,6 +112,30 @@ BEGIN
END;
/
-- Toont de huidige afdeling die aan een ruimte gekoppeld is, en Meerdere! indien meerdere.
-- Ondersteunt dus (wel) bezettingsintervallen/historie. Niet sleepbaar want geen triviaal antwoord op
-- welke periode je dan moet doen (nu tot onbepaald zou kunnen, en dan moet je dus de huidige periode sluiten)
-- Gebruik prs_afdeling_naam6 formattering (ongeacht S(prs_dep_string))
CREATE_VIEW(cad_v_thema_huidigeafdelingen, 0)
(
alg_ruimte_key
, waarde
)
AS
SELECT x.alg_ruimte_key,
DECODE (x.aantal,
1, SUBSTR (x.sp, 1, 60),
'Meerdere!')
FROM (SELECT ra.alg_ruimte_key,
MIN (d.prs_afdeling_naam || '-' || d.prs_afdeling_omschrijving) sp,
MIN (d.prs_afdeling_key) sp_key,
COUNT (ra.prs_afdeling_key) aantal
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling d
WHERE ra.prs_afdeling_key = d.prs_afdeling_key
AND SYSDATE BETWEEN ra.prs_ruimteafdeling_ingangsdatum
AND COALESCE (ra.prs_ruimteafdeling_einddatum, TRUNC (SYSDATE) + 1)
GROUP BY ra.alg_ruimte_key) x;
// De afdelingsbezetting maar dan gebaseerd op de afdelingen
// van de de personen die op de werkplekken zitten
CREATE_VIEW(cad_v_thema_prsafdelingen, 0)
@@ -555,6 +579,7 @@ AS
-- waarde_html: van Naam [default]
-- waarde_html2: Naam
-- Let op: er ook een cad_v_label_deel_res_datum_TZ met timezone ondersteuning. Die wordt met 2026.1 de standaard.
CREATE_VIEW(cad_v_label_deel_res_datum, 0)
(
fclt_f_datum,
@@ -649,6 +674,110 @@ AS
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;
-- Variant van cad_v_label_deel_res_datum met Timezone ondersteuning. Moet met 2026.1 de standaard worden
CREATE_VIEW(cad_v_label_deel_res_datum_TZ, 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 (
naam,
NULL, '',
'[s40]'
|| naam
|| ' ('
|| TO_CHAR (localized_van, 'HH24:MI')
|| '-'
|| DECODE (TRUNC (localized_tot),
TRUNC (localized_van), TO_CHAR (localized_tot, 'HH24:MI'),
TO_CHAR (localized_tot, 'DD-MM-YYYY HH24:MI'))
|| ')'),
CHR (10))
WITHIN GROUP (ORDER BY localized_van)
waarde1,
CHR (10)
|| LISTAGG (
DECODE (naam,
NULL, '',
'[s40]' || TO_CHAR (localized_van, 'HH24:MI') || ' ' || naam),
CHR (10))
WITHIN GROUP (ORDER BY localized_van)
waarde2,
CHR (10)
|| LISTAGG (DECODE (naam, NULL, '', '[s40]' || naam), CHR (10))
WITHIN GROUP (ORDER BY localized_van)
waarde3,
LISTAGG (
DECODE (
naam,
NULL, '',
'<span class="body">'
|| TO_CHAR (localized_van, 'HH24:MI')
|| ' '
|| naam
|| '</span>'),
'<br>')
WITHIN GROUP (ORDER BY localized_van)
waarde_html,
LISTAGG (DECODE (naam, NULL, '', '<span class="body">' || naam || '</span>'), '<br>')
WITHIN GROUP (ORDER BY localized_van)
waarde_html2
FROM res_v_aanwezigdeel isd,
datums,
(SELECT datum,
res_ins_deel_key,
DECODE (p.prs_perslid_visibility,
1, pf.prs_perslid_naam_friendly,
a.prs_afdeling_omschrijving)
naam,
res_rsv_deel_van,
res_rsv_deel_tot,
CAST (
FROM_TZ (CAST (rrr.res_rsv_ruimte_van AS TIMESTAMP), fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone, fac.getsetting ('fac_server_timezone')) AS DATE) localized_van,
CAST (
FROM_TZ (CAST (rrr.res_rsv_ruimte_tot AS TIMESTAMP), fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone, fac.getsetting ('fac_server_timezone')) AS DATE) localized_tot
FROM res_v_aanwezigdeel r,
res_v_aanwezigrsv_deel rrd,
res_rsv_ruimte rrr,
alg_v_ruimte_gegevens r,
alg_locatie l,
prs_v_perslid_fullnames pf,
prs_perslid p,
prs_afdeling a,
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 = pf.prs_perslid_key
AND rrr.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_locatie_key = l.alg_locatie_key
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND datum + 1 >= res_rsv_deel_van
AND datum < res_rsv_deel_tot ) 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)
@@ -766,6 +895,7 @@ AS
-- 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
-- Let op: er ook een cad_v_thema_deel_res_datum_TZ met timezone ondersteuning. Die wordt met 2026.1 de standaard.
CREATE_VIEW(cad_v_thema_deel_res_datum,0)
(
fclt_f_datum,
@@ -824,6 +954,81 @@ AS
GROUP BY datum, ins_deel_key
ORDER BY datum, ins_deel_key;
-- Variant van cad_v_thema_deel_res_datum met Timezone ondersteuning. Moet met 2026.1 de standaard worden
CREATE_VIEW(cad_v_thema_deel_res_datum_TZ,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 -- serverdatum!
fclt_f_datum,
ins_deel_key,
MIN (localized_van)
min_van,
MAX (localized_tot)
max_tot,
CASE WHEN MAX (localized_tot) IS NULL THEN 0 ELSE 3 -- hele dag
END
waarde1,
CASE
WHEN MAX (localized_tot) IS NULL THEN 0
WHEN TO_CHAR (MAX (localized_tot), 'HH24') <= 13 THEN 1 -- ochtend
WHEN TO_CHAR (MIN (localized_van), 'HH24') >= 12 THEN 2 -- middag
ELSE 3 -- hele dag
END
waarde,
COUNT (localized_tot) -- aantal reservering deze dag
waarde3
FROM (SELECT datums.datum,
res_ins_deel_key ins_deel_key,
localized_van,
localized_tot
FROM res_v_aanwezigdeel r,
ins_deel d,
datums,
(SELECT datum,
res_deel_key,
localized_van,
localized_tot
FROM datums,
res_v_aanwezigrsv_deel rrd,
(SELECT CAST (
FROM_TZ (CAST (res_rsv_ruimte_van AS TIMESTAMP), fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE(l.alg_locatie_timezone, fac.getsetting ('fac_server_timezone')) AS DATE)
localized_van,
CAST (
FROM_TZ (CAST (res_rsv_ruimte_tot AS TIMESTAMP), fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE(l.alg_locatie_timezone, fac.getsetting ('fac_server_timezone')) AS DATE)
localized_tot,
res_rsv_ruimte_key
FROM res_rsv_ruimte rrr,
alg_v_ruimte_gegevens r,
alg_locatie l
WHERE rrr.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_locatie_key = l.alg_locatie_key) rrr
WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND res_rsv_deel_van > TRUNC (SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
AND datum + 1 >= localized_van
AND datum < localized_tot) 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
@@ -836,7 +1041,7 @@ AS
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
@@ -868,6 +1073,78 @@ AS
GROUP BY ins_deel_key, res_deel_omschrijving;
// Een basisview om sensorgemiddelde per ruimte per dag te berekenen
// AI-generated, nog niet nageteld, maar who cares.
// Bevat alleen sensoren met niet-discrete numerieke waarden zoals temperatuur, niet bezetting
// Bevat het ruimtegemiddelde van alle sensoren van hetzelfde srtdeel gedurende de kantoortijden
CREATE_VIEW(ins_v_sensorgemiddele_per_ruimte_per_dag, 0)
AS
WITH
sensor_data
AS
(SELECT d.ins_alg_ruimte_key
, d.ins_srtdeel_key
, sd.ins_srtdeel_code
, sd.ins_srtdeel_omschrijving
, sh.ins_deel_statedate
, sh.ins_deel_state
, LEAD (sh.ins_deel_statedate) OVER (PARTITION BY d.ins_alg_ruimte_key, sd.ins_srtdeel_omschrijving ORDER BY sh.ins_deel_statedate) AS next_statedate
FROM ins_deel d
JOIN ins_deel_state_history sh ON sh.ins_deel_key = d.ins_deel_key
JOIN ins_srtdeel sd ON sd.ins_srtdeel_key = d.ins_srtdeel_key
WHERE d.ins_alg_ruimte_type = 'R' AND sd.ins_srtdeel_sensortype = 2),
bounded_intervals
AS
(SELECT ins_alg_ruimte_key
, ins_srtdeel_key
, ins_srtdeel_code
, ins_srtdeel_omschrijving
, TRUNC (ins_deel_statedate) AS datum
, GREATEST (ins_deel_statedate, TRUNC (ins_deel_statedate) + fac.getsetting ('fac_t_startofworkday') / 24) AS start_time
, LEAST (NVL (next_statedate, TRUNC (ins_deel_statedate) + 1), TRUNC (ins_deel_statedate) + fac.getsetting ('fac_t_endofworkday') / 24) AS end_time
, ins_deel_state
FROM sensor_data
WHERE -- Alleen intervallen die de kantoortijd raken
NVL (next_statedate, TRUNC (ins_deel_statedate) + 1) > TRUNC (ins_deel_statedate) + fac.getsetting ('fac_t_startofworkday') / 24
AND ins_deel_statedate < TRUNC (ins_deel_statedate) + fac.getsetting ('fac_t_endofworkday') / 24),
gewogen_data
AS
(SELECT ins_alg_ruimte_key
, ins_srtdeel_key
, ins_srtdeel_code
, ins_srtdeel_omschrijving
, datum
, ins_deel_state
, (end_time - start_time) * 24 * 60 AS duration_minutes -- of * 24 * 60 * 60 voor seconden
FROM bounded_intervals
WHERE end_time > start_time -- filter eventueel negatieve of nulduur
)
SELECT ins_alg_ruimte_key
, ins_srtdeel_key
, ins_srtdeel_code
, ins_srtdeel_omschrijving
, datum
, ROUND (SUM (ins_deel_state * duration_minutes) / SUM (duration_minutes), 2) AS gewogen_gemiddelde
FROM gewogen_data
GROUP BY ins_alg_ruimte_key
, ins_srtdeel_key
, ins_srtdeel_code
, ins_srtdeel_omschrijving
, datum
ORDER BY ins_alg_ruimte_key, datum;
CREATE_VIEW(cad_v_co2_daggemiddelde, 0)
AS
SELECT ins_alg_ruimte_key alg_ruimte_key, datum fclt_f_datum, gewogen_gemiddelde waarde
FROM ins_v_sensorgemiddele_per_ruimte_per_dag
WHERE ins_srtdeel_code = 'CO2';
CREATE_VIEW(cad_v_temp_daggemiddelde)
AS
SELECT ins_alg_ruimte_key alg_ruimte_key, datum fclt_f_datum, gewogen_gemiddelde waarde
FROM ins_v_sensorgemiddele_per_ruimte_per_dag
WHERE ins_srtdeel_code = 'TEMP';
REGISTERRUN('$Id$')
#endif // CAD

View File

@@ -1,59 +0,0 @@
-- [CARE*.SQL]
--
-- Script tbv het initialiseren van de Facilitor Care-Webb omgeving in Oracle
-- Copyright Aareon Nederland B.V.
-- All rights reserved!
/*
* $Revision$
* $Id$
*/
#include "modules.h"
#include "comsql.h"
SET TIME ON
SET DEFINE OFF
SPOOL xcarewebb
PROMPT [carewebb.lst]
PROMPT
PROMPT Copyright Aareon Nederland B.V. 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
PROMPT maken.
PROMPT
PROMPT Dit script is gerund in user:
SHOW USER
PROMPT
PROMPT
SET LINESIZE 1000
SET ECHO ON
#include "care\care_tab.src"
#include "care\care_ind.src"
#include "care\care_vie.src"
#include "care\care_pac.src"
#include "care\care_ini.src"
COMMIT;
///////////////////////////// finally compile all views, triggers etc acc to the latest state ///////
BEGIN DBMS_UTILITY.COMPILE_SCHEMA(USER, FALSE); END;
/
REGISTERONCE('$Id$')
COMMIT;
///////////////////////////// Report invalid objects, if any ///////
SET ECHO OFF
SET LINESIZE 132
PROMPT List of all invalid objects after Facilitor Care-Webb upgrade:
SELECT _VERSION||' Warning: ' || object_type || ' ' || object_name || ' is ' || status
FROM user_objects
WHERE object_type IN ('VIEW', 'TRIGGER', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'PACKAGE BODY')
AND status <> 'VALID'
AND UPPER(object_name) LIKE 'CARE%'
ORDER BY object_name;
SELECT 'Care-Webb/' || USER || ' is now ' || fac.getdbversion() FROM DUAL;
PROMPT De upgrade is gereed, controleer de LST-files.
PROMPT Neem bij vragen, twijfels of problemen contact op met Facilitor.
SPOOL OFF

View File

@@ -1810,13 +1810,13 @@ AS
INTO v_srtkenmerk_key
FROM mld_srtkenmerk -- ins_v_aanwezigsrtkenmerk
WHERE mld_srtkenmerk_upper = UPPER (v_kw)
AND mld_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'V');
AND mld_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'r', 'S', 'X', 'V');
ELSE -- kenmerkwaarde is numeriek (dus key)!
SELECT mld_srtkenmerk_key
INTO v_srtkenmerk_key
FROM mld_srtkenmerk -- ins_v_aanwezigsrtkenmerk
WHERE mld_srtkenmerk_key = fac.safe_to_number (v_kw)
AND mld_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'V');
AND mld_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'r', 'S', 'X', 'V');
END IF;
RETURN TO_CHAR(v_srtkenmerk_key) || '|' || TO_CHAR(v_kenmerk_groep);
@@ -2931,7 +2931,7 @@ IS
IF v_waarde IS NOT NULL
THEN
IF v_srtkenmerk_type IN ('R', 'S')
IF v_srtkenmerk_type IN ('R', 'r', 'S')
THEN
v_errormsg := 'Fout bij bepalen eigen tabel';

View File

@@ -27,6 +27,8 @@ CREATE UNIQUE INDEX cnt_i_cnt_factuurschema1 ON cnt_factuurschema(cnt_contract_k
CREATE INDEX cnt_i_cnt_srtkenmerk1 ON cnt_srtkenmerk(cnt_srtkenmerk_code);
CREATE INDEX cnt_i_cnt_kenmerk1 ON cnt_kenmerk(cnt_kenmerk_code);
CREATE INDEX cnt_i_cnt_verlengschema ON cnt_verlengschema(cnt_contract_key);
REGISTERONCE('$Id$')
#endif // CNT

View File

@@ -6,12 +6,14 @@
CREATE OR REPLACE PACKAGE cnt AS
PROCEDURE setcontractstatus (pcontractkey IN NUMBER, pstatus IN NUMBER, puserkey IN NUMBER);
FUNCTION getVerlengschemaEinddatum(startdatum IN DATE, cnt_key IN NUMBER, volgnr IN NUMBER) RETURN DATE;
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;
PROCEDURE autoverleng_contract;
PROCEDURE autoinactiveer_contract;
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);
@@ -20,6 +22,10 @@ CREATE OR REPLACE PACKAGE cnt AS
FUNCTION sprintf (ps IN VARCHAR2 , p_contract_key IN NUMBER) RETURN VARCHAR2;
PROCEDURE remove(p_contract_key IN NUMBER);
PROCEDURE notifycontractbedrijven (pcntkey NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PRAGMA RESTRICT_REFERENCES (cnt_contract_status, WNDS, WNPS);
END cnt;
/
@@ -33,7 +39,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
AS
currentstatus cnt_contract.cnt_contract_status%TYPE;
newstatus cnt_contract.cnt_contract_status%TYPE;
eventcode fac_srtnotificatie.fac_srtnotificatie_code%TYPE;
eventcode VARCHAR(7); -- fac_srtnotificatie.fac_srtnotificatie_code%TYPE is te klein voor '@CNTNEW'
BEGIN
SELECT cnt_contract_status
INTO currentstatus
@@ -46,11 +52,12 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
IF currentstatus IS NULL
THEN
newstatus := pstatus;
eventcode := 'CNTNEW';
eventcode := 'CNTNEW'; -- direct ook notificeren
ELSIF currentstatus = 2 OR currentstatus = 3 -- Het kan ook zijn dat er geen fiattering nodig is.
THEN
newstatus := pstatus;
eventcode := 'CNTFIT';
fac.notifytrackingbedrijven('CNTNEW', pcontractkey); -- Nu alsnog notificeren, we zijn helemaal klaar met fiatteren
END IF;
WHEN 1 -- Gesloten
THEN
@@ -64,7 +71,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
IF currentstatus IS NULL
THEN
newstatus := pstatus;
eventcode := 'CNTNEW';
eventcode := '@CNTNEW'; -- nog niet notificeren
ELSIF currentstatus = 3
THEN
newstatus := pstatus;
@@ -72,7 +79,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
END IF;
WHEN 3 -- Ter goedkeuring
THEN
IF currentstatus = 2
IF currentstatus = 2 OR currentstatus IS NULL
THEN
newstatus := pstatus;
eventcode := 'CNTCPT';
@@ -95,6 +102,27 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
END IF;
END;
-- Bepaal de einddatum na x iteraties van het verlengschema vanaf een startdatum.
FUNCTION getVerlengschemaEinddatum(startdatum IN DATE, cnt_key IN NUMBER, volgnr IN NUMBER) RETURN DATE
IS
CURSOR c_verleng
IS
SELECT cnt_verlengschema_volgnr
, cnt_verlengschema_verlengtermijn
FROM cnt_verlengschema
WHERE cnt_verlengschema_volgnr <= volgnr
AND cnt_contract_key = cnt_key;
einddatum DATE := startdatum;
BEGIN
FOR c IN c_verleng
LOOP
einddatum := cnt.cnt_getTermijndatum(einddatum, c.cnt_verlengschema_verlengtermijn, 1);
END LOOP;
RETURN einddatum;
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.
@@ -242,6 +270,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
, c.cnt_contract_nummer_intern
, c.cnt_contract_omschrijving
, c.cnt_contract_looptijd_tot
, c.cnt_contract_verleng_termijn
, o.cnt_termijn_omschrijving opzegtermijn
, cnt.cnt_getTermijndatum (c.cnt_contract_looptijd_tot, c.cnt_contract_opzegtermijn, -1) dtopzeggen
, v.cnt_termijn_omschrijving verlengtermijn
@@ -256,9 +285,21 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
AND c.cnt_contract_verwijder IS NULL
AND BITAND(p.cnt_disc_params_opties,1) = 1 -- Dit contracttype mag automatisch verlengd worden
AND BITAND(c.cnt_contract_verlenging,4) = 4 -- Dit contract mag automatisch verlengd worden
AND TRUNC(SYSDATE) > cnt.cnt_getTermijndatum (c.cnt_contract_looptijd_tot, c.cnt_contract_opzegtermijn, -1);
AND TRUNC(SYSDATE) > cnt.cnt_getTermijndatum (c.cnt_contract_looptijd_tot, c.cnt_contract_opzegtermijn, -1)
AND NOT EXISTS
( SELECT 1
FROM cnt_contract cn
WHERE cn.cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND cn.cnt_contract_versie > c.cnt_contract_versie
AND cn.cnt_contract_looptijd_van = (c.cnt_contract_looptijd_tot + 1)
AND cn.cnt_contract_verwijder IS NULL
);
tracking VARCHAR2(4000);
tracking VARCHAR2(4000);
this_verlengschema_key cnt_verlengschema.cnt_verlengschema_key%TYPE;
next_verlengschema_key cnt_verlengschema.cnt_verlengschema_key%TYPE;
next_termijn cnt_termijn.cnt_termijn_key%TYPE;
infinite_prolongate NUMBER(1) := 0;
BEGIN
FOR cnt_verloopt IN c_verleng
LOOP
@@ -271,6 +312,85 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
, '{1}', TO_CHAR(cnt_verloopt.dtnieuw,'dd-mm-yyyy')
);
fac.trackaction ('CNTUPD', cnt_verloopt.cnt_contract_key, NULL, NULL, tracking);
-- Heeft dit automatisch verlengbaar contract een verlengschema?
BEGIN
SELECT this_schema_key
, next_schema_key
INTO this_verlengschema_key
, next_verlengschema_key
FROM ( SELECT cnt_verlengschema_key AS this_schema_key
, LEAD(cnt_verlengschema_key) OVER(ORDER BY cnt_verlengschema_volgnr) AS next_schema_key
FROM cnt_verlengschema
WHERE cnt_contract_key = cnt_verloopt.cnt_contract_key
)
WHERE rownum = 1;
-- Dan eerstvolgende verlengtermijn uit verlengschema naar het veld verlengtermijn in contract kopieren...
IF next_verlengschema_key IS NOT NULL
THEN
SELECT cnt_verlengschema_verlengtermijn
INTO next_termijn
FROM cnt_verlengschema
WHERE cnt_verlengschema_key = next_verlengschema_key;
ELSE
IF infinite_prolongate = 1
THEN
next_termijn := cnt_verloopt.cnt_contract_verleng_termijn;
ELSE
next_termijn := NULL;
END IF;
END IF;
UPDATE cnt_contract
SET cnt_contract_verleng_termijn = next_termijn
WHERE cnt_contract_key = cnt_verloopt.cnt_contract_key;
-- ...en deze verlengtermijn uit het verlengschema verwijderen.
DELETE
FROM cnt_verlengschema
WHERE cnt_verlengschema_key = this_verlengschema_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;
-- Laat laatste verlengtermijn staan als er geen volgende in het schema gevonden kan worden.
END;
END LOOP;
END;
PROCEDURE autoinactiveer_contract
IS
l_prs_perslid_key prs_perslid.prs_perslid_key%TYPE;
tracking VARCHAR2(4000);
CURSOR c_inactiveer IS
SELECT c.cnt_contract_key
FROM cnt_contract c
WHERE c.cnt_contract_inactiveren = 1
AND TRUNC(c.cnt_contract_looptijd_tot) < TRUNC(SYSDATE)
AND NOT EXISTS (SELECT f.fin_factuur_key -- Contract mag geen openstaande facturen hebben.
FROM fin_factuur f
WHERE f.cnt_contract_key = c.cnt_contract_key
AND f.fin_factuur_statuses_key NOT IN (1,7)
AND f.fin_factuur_verwijder IS NULL);
BEGIN
BEGIN
SELECT prs_perslid_key
INTO l_prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_oslogin = '_SYSTEEM' AND prs_perslid_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.putsystemnotification ('Invalid configuration: missing _SYSTEEM user', 1);
END;
FOR cnt_inactiveer IN c_inactiveer
LOOP
cnt.setcontractstatus(cnt_inactiveer.cnt_contract_key, 1, l_prs_perslid_key); -- Zorgt ook voor tracking en daarmee notificatie.
UPDATE cnt_contract
SET cnt_contract_inactiveren = 0
WHERE cnt_contract_key = cnt_inactiveer.cnt_contract_key;
tracking := lcl.l('lcl_cnt_is_cntupd') || CHR(10) || lcl.l('lcl_cnt_auto_close') || ': ' || lcl.l('lcl_Yes') || lcl.l('lcl_trackto') || lcl.l('lcl_No');
fac.trackaction('CNTUPD', cnt_inactiveer.cnt_contract_key, NULL, NULL, tracking);
END LOOP;
END;
@@ -282,6 +402,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
newkey NUMBER;
nummer1 cnt_contract.cnt_contract_nummer_intern%TYPE;
amount1 cnt_contract.cnt_contract_kosten%TYPE;
approve_new cnt_disc_params.cnt_disc_params_approve_new%TYPE;
srtcontract_type cnt_disc_params.cnt_srtcontract_type%TYPE;
new_status cnt_contract.cnt_contract_status%TYPE;
tracking VARCHAR2 (4000);
@@ -304,8 +425,9 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
cnt_contract_nummer_intern,
cnt_contract_kosten,
cdp.cnt_srtcontract_type,
cdp.cnt_disc_params_approve_new,
c.cnt_contract_status
INTO begin1, eind1, versie1, nummer1, amount1, srtcontract_type, new_status
INTO begin1, eind1, versie1, nummer1, amount1, srtcontract_type, approve_new, new_status
FROM cnt_contract c,
cnt_disc_params cdp
WHERE c.ins_discipline_key = cdp.cnt_ins_discipline_key
@@ -320,10 +442,9 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
THEN
-- Splitsen van contract.
begin1 := p_datum;
eind1 := eind1;
IF (fac.getsetting('cnt_contract_approval') = 1 AND srtcontract_type != 6)
IF (fac.getsetting('cnt_contract_approval') = 1 AND srtcontract_type != 6) -- niet voor mantelcontracten
THEN
new_status := 2; -- altijd op nieuw
new_status := 2; -- altijd op nieuw(=concept)
ELSE
new_status := 0; -- direct actief
END IF;
@@ -563,15 +684,15 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
-- ##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
SELECT COALESCE(b.prs_bedrijf_naam, p.prs_perslid_naam_full, a.prs_afdeling_omschrijving),
c.cnt_contract_omschrijving,
c.cnt_contract_nummer_intern
INTO varlev,
varomsch,
varnummer
FROM cnt_contract c,
prs_bedrijf b,
prs_perslid p,
prs_v_perslid_fullnames_all p,
prs_afdeling a
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
AND c.cnt_prs_perslid_key = p.prs_perslid_key(+)
@@ -652,6 +773,90 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
-- In geen enkele omgeving is cnt_contract_key in deze tabel ingevuld.
END;
PROCEDURE notifycontractbedrijven (pcntkey NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
FOR bedrijfrec
IN (SELECT b.prs_bedrijf_key,
l.alg_locatie_key,
CASE WHEN b.prs_bedrijf_key = c.cnt_prs_bedrijf_key THEN 'C' ELSE 'G' END bedrijfadres_type,
cnt_contract_nummer_intern,
c.ins_discipline_key,
COALESCE (l.alg_locatie_email, ins_discipline_email),
d.prs_bedrijf_key persoon_bedrijf_key -- van de melder, niet de uitvoerende
FROM prs_bedrijf b,
cnt_contract c,
ins_tab_discipline d,
alg_locatie l,
prs_perslid p,
prs_v_afdeling d,
( SELECT cnt_contract_key,
DECODE (MIN (cp1.cnt_alg_plaats_code),
'L', MIN (cp1.cnt_alg_plaats_key),
MIN (alg_boom.alg_locatie_key))
cnt_locatie_key
FROM cnt_contract_plaats cp1,
(SELECT alg_r.alg_ruimte_key,
alg_r.alg_verdieping_key,
alg_v.alg_gebouw_key,
alg_g.alg_locatie_key,
'R' alg_type
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
SELECT TO_NUMBER (NULL),
alg_v.alg_verdieping_key,
alg_v.alg_gebouw_key,
alg_g.alg_locatie_key,
'V' alg_type
FROM alg_verdieping alg_v, alg_gebouw alg_g
WHERE alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
UNION
SELECT TO_NUMBER (NULL),
TO_NUMBER (NULL),
alg_g.alg_gebouw_key,
alg_g.alg_locatie_key,
'G' alg_type
FROM alg_gebouw alg_g) alg_boom
WHERE cp1.cnt_alg_plaats_key =
CASE cp1.cnt_alg_plaats_code
WHEN 'G' THEN alg_boom.alg_gebouw_key(+)
WHEN 'V' THEN alg_boom.alg_verdieping_key(+)
WHEN 'R' THEN alg_boom.alg_ruimte_key(+)
END
AND cp1.cnt_alg_plaats_code = alg_boom.alg_type(+)
AND cp1.cnt_contract_plaats_verwijder IS NULL
GROUP BY cnt_contract_key
HAVING COUNT (1) = 1) cp
WHERE c.cnt_contract_key = pcntkey
AND d.ins_discipline_key = c.ins_discipline_key
AND c.cnt_contract_key = cp.cnt_contract_key(+)
AND cp.cnt_locatie_key = l.alg_locatie_key(+)
AND d.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = c.prs_perslid_key_beh
AND ( b.prs_bedrijf_key = c.cnt_prs_bedrijf_key -- type 'C'
OR EXISTS
(SELECT 1
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'G')))
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,
prefkey => pcntkey,
ptrackingkey => ptrackingkey,
preference => bedrijfrec.cnt_contract_nummer_intern,
pdiscipline_key => bedrijfrec.ins_discipline_key,
plocatie_key => bedrijfrec.alg_locatie_key,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
pnotidelay => pnotidelay);
END LOOP;
END;
END cnt;
/

View File

@@ -18,6 +18,7 @@ CREATE SEQUENCE cnt_s_cnt_kenmerkcontract_key MINVALUE 1;
CREATE SEQUENCE cnt_s_cnt_contract_note_key MINVALUE 1;
CREATE SEQUENCE cnt_s_cnt_factuurschema_key MINVALUE 1;
CREATE SEQUENCE cnt_s_cnt_verlengschema_key MINVALUE 1;
REGISTERONCE('$Id$')

View File

@@ -86,6 +86,14 @@ CREATE_TABLE(cnt_disc_params, 0)
DEFAULT 0
NOT NULL,
cnt_disc_params_opties
NUMBER(1)
DEFAULT 0
NOT NULL,
cnt_disc_params_ksverplicht /* Kostensoort verplicht {0=niet verplicht (default), 1=verplicht} */
NUMBER(1)
DEFAULT 0
NOT NULL,
cnt_disc_params_approve_new /* nieuw/gesplitst contract altijd acorderen {0=nee (default), 1=ja} */
NUMBER(1)
DEFAULT 0
NOT NULL
@@ -116,6 +124,10 @@ CREATE_TABLE(cnt_contract,0)
, cnt_contract_looptijd_tot
DATE
CONSTRAINT cnt_c_cnt_contract_tot CHECK(cnt_contract_looptijd_tot IS NOT NULL)
, cnt_contract_inactiveren /* Automatisch sluiten na einddatum (0=nee, 1=ja) */
NUMBER(1)
DEFAULT 0
CONSTRAINT cnt_r_cnt_contract_inactiveren CHECK(cnt_contract_inactiveren IN (0,1))
, cnt_contract_kosten
NUMBER(11,2)
, cnt_contract_termijnkosten
@@ -365,6 +377,9 @@ CREATE_TABLE(cnt_kenmerk, 0)
, cnt_kenmerk_volgnummer
NUMBER(3)
NOT NULL
, cnt_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
, cnt_kenmerk_uniek
NUMBER(1)
, cnt_kenmerk_regexp
@@ -446,6 +461,21 @@ CREATE_TABLE(cnt_factuurschema , 0)
DEFAULT SYSDATE
);
CREATE_TABLE(cnt_verlengschema, 0)
(
cnt_verlengschema_key
NUMBER(10)
PRIMARY KEY,
cnt_contract_key
NUMBER(10)
CONSTRAINT cnt_r_cnt_contract_key2 REFERENCES cnt_contract(cnt_contract_key),
cnt_verlengschema_volgnr
NUMBER(2),
cnt_verlengschema_verlengtermijn
NUMBER(10)
CONSTRAINT cnt_r_cnt_termijn_key6 REFERENCES cnt_termijn(cnt_termijn_key)
);
REGISTERONCE('$Id$')

View File

@@ -357,6 +357,14 @@ BEGIN
END;
/
CREATE OR REPLACE TRIGGER cnt_t_cnt_verlengschema_B_I
BEFORE INSERT ON cnt_verlengschema
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(cnt_verlengschema_key,cnt_s_cnt_verlengschema_key);
END;
/
REGISTERRUN('$Id$')
#endif // CNT

View File

@@ -156,6 +156,11 @@ AS
sk.fac_kenmerkdomein_key,
ck.cnt_kenmerkcontract_waarde
),
'r',
flx.getdomeinwaarde (
sk.fac_kenmerkdomein_key,
ck.cnt_kenmerkcontract_waarde
),
'S',
flx.getdomeinwaarde (
sk.fac_kenmerkdomein_key,
@@ -765,6 +770,7 @@ AS
lcl.x('cnt_srtkenmerk_omschrijving', skm.cnt_srtkenmerk_key, cnt_srtkenmerk_omschrijving)) kenmerk,
CASE
WHEN skm.cnt_srtkenmerk_kenmerktype = 'R'
OR skm.cnt_srtkenmerk_kenmerktype = 'r'
OR skm.cnt_srtkenmerk_kenmerktype = 'S'
THEN
flx.getdomeinwaarde (skm.fac_kenmerkdomein_key,
@@ -794,7 +800,7 @@ AS
END
waarde_d,
CASE
WHEN skm.cnt_srtkenmerk_kenmerktype IN ('R', 'S')
WHEN skm.cnt_srtkenmerk_kenmerktype IN ('R', 'r', 'S')
THEN
flx.getdomeinwaarde (skm.fac_kenmerkdomein_key, km.cnt_kenmerkcontract_waarde)
ELSE

419
COMSQL.H
View File

@@ -54,7 +54,7 @@ BEGIN adm.systrackscriptId(svnid, 0); END;~/
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
APPLICATION_ERROR(-20000, message); \
raise_application_error(-20000, message); \
END
#define CHECK_KEY_REFERENCE(table, primary_key, ref_key, message) \
@@ -69,9 +69,9 @@ BEGIN adm.systrackscriptId(svnid, 0); END;~/
WHERE primary_key = ref_key; \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN APPLICATION_ERROR(-20000, message); \
THEN raise_application_error(-20000, message); \
WHEN mutating_table \
_THEN NULL; \
THEN NULL; \
END
@@ -81,20 +81,6 @@ BEGIN adm.systrackscriptId(svnid, 0); END;~/
#define CREATE_TABLE(table_name, level) \
CREATE TABLE table_name
#define _SPOOL(x) \
SPOOL x
#define _EQ_OLD(x,y) \
x = :old.y
#define PROMPT1(x) \
PROMPT x
#define PROMPT2(x,y) \
PROMPT x,y
#define _INTO_VAR(x) \
INTO x
#define CREATE_SEQUENCE(sequence_name, minval) \
CREATE SEQUENCE sequence_name MINVALUE minval;
@@ -104,122 +90,15 @@ CREATE SEQUENCE sequence_name MINVALUE minval;
#define CREATE_TRIGGER(trigger_name) \
CREATE OR REPLACE TRIGGER trigger_name
#define _END_TRIGGER() \
END;~/
#define CREATE_PROCEDURE(pack_name, proc_name) \
CREATE OR REPLACE PROCEDURE proc_name
#define MONEY \
NUMBER
#define VARCHAR \
VARCHAR2
#define _LONG_RAW \
LONG RAW
#define _CONCAT \
||
#define _ALTER_MODIFY_START \
MODIFY
#define _ALTER_ADD_START \
ADD (
#define _ALTER_END \
)
#define _IDENTITY(x,y)
#define _TYPE(tab,fld) \
tab.fld%TYPE
#define _CREATE_OR_REPLACE \
CREATE OR REPLACE
#define _RETURN_LENGTH(x) \
#define _DECLARE_VAR(x) \
x
#define _SET_VAR(x) \
x
#define _VAR(x) \
x
#define _ASSIGN \
:=
#define _RETURNS \
RETURN
#define _AS \
IS
#define _GO \
;
#define _GO2 \
;~/
#define _NOTFOUND(x) \
x%NOTFOUND
#define INSTR2(a, b) \
INSTR(a, b)
#define SUBSTR2 \
SUBSTR
#define TRUNC_DATE \
TRUNC
#define _LOOP \
loop
#define _FOR(i,a,b) \
FOR i in a .. b loop
#define _END_LOOP \
end loop
#define _EXIT \
exit
#define _FROM_DUAL \
FROM DUAL
#define _EXEC0(p) \
p
#define _EXEC1(p,a1) \
p(a1)
#define _EXEC2(p,a1,a2) \
p(a1,a2)
#define _EXEC3(p,a1,a2,a3) \
p(a1,a2,a3)
#define _EXEC4(p,a1,a2,a3, a4) \
p(a1,a2,a3,a4)
#define _EXEC5(p,a1,a2,a3,a4,a5) \
p(a1,a2,a3,a4,a5)
#define _EXEC6(p,a1,a2,a3,a4,a5,a6) \
p(a1,a2,a3,a4,a5,a6)
#define _INTO1(x)
#define _INTO2(x) \
INTO x
#define _INTO3(x) \
,x
#define UPDATE_UPPER(omschrijving, upper_omschrijving,tab) \
:new.upper_omschrijving := UPPER(:new.omschrijving)
@@ -231,128 +110,25 @@ INTO x
END IF; \
END
#define _CC \
||
#define _OPLUS \
(+)
#define _OSTAR
#define _DECODE_BEGIN \
DECODE(
#define _DECODE_WHEN \
,
#define _DECODE_THEN \
,
#define _DECODE_ELSE \
,
#define _DECODE_END \
)
#define _THEN \
THEN
#define _FOUND(x) \
x%FOUND = TRUE
#define _IN_PACKAGE(pak,fp,fname) \
fp fname
#define _INPUT \
IN
#define _OUTPUT(x) \
OUT x
#define _DATEPART(x,y) \
TO_CHAR(x,#@y)
#define DATE_TO_CHAR \
TO_CHAR
#define NUMBER_TO_CHAR \
TO_CHAR
#define _MOD \
MOD
#define _NUM2HM(x) \
TO_NUMBER(TO_CHAR(x,'HH24.MI'))
#define _TO_CHAR(x) \
TO_CHAR(x)
#define _TO_NUMBER(x) \
TO_NUMBER(x)
#define _TO_NUMBER2(x,y) \
TO_NUMBER(x,y)
#define _TO_NUMBER3(x,y,z) \
TO_NUMBER(x,y,z)
#define _TO_DATE(x) \
TO_DATE(x)
#define _TO_DATE2(x,y) \
TO_DATE(x,y)
#define _DECLARE_CURSOR(x) \
CURSOR x
#define _CURSOR_PARAM(x) \
(x)
#define _CURSOR_PARAM2(x,y) \
(x,y)
#define _CURSOR_PARAM3(x,y,z) \
(x,y,z)
#define _CURSOR_FOR \
IS
#define _OPEN_CURSOR1(query, s, rec) \
FOR rec IN query LOOP
#define _OPEN_CURSOR2(query, s, rec, key) \
FOR rec IN query(key) LOOP
// , val s := rec.val;
#define _CLOSE_CURSOR(query, s) \
END LOOP;
#define _BEGIN_SQLS_PROC \
AS
#define _BEGIN_ORA_PROC \
BEGIN
#define _END_PROC \
END;~/
#define _END_IF \
END IF;
#define _ELSE \
ELSE
#define _ELSIF \
ELSIF
#define _FAC_MODULE(module,omschrijving) \
INSERT INTO fac_module (fac_module_name, fac_module_version, fac_module_date, fac_module_remark, fac_module_extern) \
VALUES (module,_DBV_STRING,TO_CHAR(SYSDATE,'YYYYMMDD'),omschrijving, 1);
#define APPLICATION_ERROR(code,text) raise_application_error(code, text)
#define APPLICATION_ERROR_GOTO(code,text) raise_application_error(code, text)
#define UPDATE_PRIMARY_KEY(primary_key, sequence_primary_key) \
@@ -361,63 +137,6 @@ ELSIF
FROM DUAL; \
END IF
#define CHECK_UNIQUE_OMSCHRIJVING(tabel, upper_omschrijving, \
exc_msg_GEEN_OMSCHRIJVING, \
exc_msg_BESTAANDE_OMSCHRIJVING) \
DECLARE \
dummy CHAR := 'N'; \
BEGIN \
SELECT 'X' INTO dummy \
FROM tabel \
GROUP BY upper_omschrijving \
HAVING COUNT(*) > 1; \
APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
\
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
END
#define CHECK_UNIQUE_KEY_OMSCHRIJVING(tabel, key, upper_omschrijving, \
exc_msg_GEEN_OMSCHRIJVING, \
exc_msg_BESTAANDE_OMSCHRIJVING) \
DECLARE \
dummy CHAR := 'N'; \
BEGIN \
SELECT 'X' INTO dummy \
FROM tabel \
GROUP BY key, upper_omschrijving \
HAVING COUNT(*) > 1; \
APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
\
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
END
#define CHECK_UNIQUE_DEEL_KEY_OMSCHRIJVING(tabel, up_key, naast_key, \
upper_omschrijving, exc_msg_GEEN_OMSCHRIJVING, \
exc_msg_BESTAANDE_OMSCHRIJVING) \
DECLARE \
dummy CHAR := 'N'; \
BEGIN \
SELECT 'X' INTO dummy \
FROM tabel \
GROUP BY up_key, naast_key, upper_omschrijving \
HAVING COUNT(*) > 1; \
APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
\
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20001, exc_msg_BESTAANDE_OMSCHRIJVING); \
END
#define LAAT_VERDIEPING_VERVALLEN_VOOR_GEBOUW(exc_msg_VERDIEPING_IN_GEBRUIK) \
BEGIN \
IF :new.alg_gebouw_verwijder IS NOT NULL \
@@ -431,10 +150,10 @@ upper_omschrijving, exc_msg_GEEN_OMSCHRIJVING, \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN APPLICATION_ERROR(-20000, exc_msg_VERDIEPING_IN_GEBRUIK); \
THEN raise_application_error(-20000, exc_msg_VERDIEPING_IN_GEBRUIK); \
\
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20000, exc_msg_VERDIEPING_IN_GEBRUIK); \
THEN raise_application_error(-20000, exc_msg_VERDIEPING_IN_GEBRUIK); \
END
#define LAAT_RUIMTE_VERVALLEN_VOOR_VERDIEPING(exc_msg_RUIMTE_IN_GEBRUIK) \
@@ -450,10 +169,10 @@ upper_omschrijving, exc_msg_GEEN_OMSCHRIJVING, \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN APPLICATION_ERROR(-20000, exc_msg_RUIMTE_IN_GEBRUIK); \
THEN raise_application_error(-20000, exc_msg_RUIMTE_IN_GEBRUIK); \
\
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20000, exc_msg_RUIMTE_IN_GEBRUIK); \
THEN raise_application_error(-20000, exc_msg_RUIMTE_IN_GEBRUIK); \
END
#define CHECK_NOG_REFERENCES(tabel,tabel_verwijder_veld,reference_view, \
@@ -467,65 +186,13 @@ upper_omschrijving, exc_msg_GEEN_OMSCHRIJVING, \
SELECT 'x' INTO dummy \
FROM reference_view \
WHERE reference_view.key_veld = :old.key_veld; \
APPLICATION_ERROR(-20000,message); \
raise_application_error(-20000, message); \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
NULL; \
WHEN TOO_MANY_ROWS THEN \
APPLICATION_ERROR(-20000,message); \
END
#define CHECK_REFERENCE_INST(key_veld, message) \
DECLARE \
dummy CHAR; \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigdeel \
WHERE ins_deel_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigonderdeel \
WHERE ins_onderdeel_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigelement \
WHERE ins_element_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
APPLICATION_ERROR(-20000, message); \
END; \
END; \
END
#define CHECK_REFERENCE_SRTINST(key_veld, message) \
DECLARE \
dummy CHAR; \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigsrtdeel \
WHERE ins_srtdeel_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigsrtonderdeel \
WHERE ins_srtonderdeel_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
BEGIN \
SELECT 'X' INTO dummy \
FROM ins_v_aanwezigsrtelement \
WHERE ins_srtelement_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
APPLICATION_ERROR(-20000, message); \
END; \
END; \
raise_application_error(-20000, message); \
END
#define CHECK_REFERENCE_ONROERENDGOED(key_veld, message) \
@@ -555,7 +222,7 @@ upper_omschrijving, exc_msg_GEEN_OMSCHRIJVING, \
WHERE alg_terreinsector_key = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
APPLICATION_ERROR(-20000,message); \
raise_application_error(-20000, message); \
END; \
END; \
END; \
@@ -566,56 +233,12 @@ CEIL
#define NULLDATUM NULL
#define CREATE_VOLGNR(volgnr_srt, volgnr_periode) \
INSERT INTO fac_volgnrs (fac_volgnr_srt, fac_volgnr_periode) \
VALUES(volgnr_srt, volgnr_periode)
#define UPDATE_VOLGNR(key_veld, fac_volgnr_srt) \
IF :new.key_veld IS NULL \
THEN \
:new.key_veld := FAC_P_FAC_VOLGNR.FAC_VOLGNR_NEXTVAL(fac_volgnr_srt); \
END IF
#define DEFINIEER_VIEW_AANWEZIG(table, verwijder_veld, view_name, level) \
CREATE_VIEW (view_name,level) AS \
SELECT * \
FROM table \
WHERE table.verwijder_veld IS NULLDATUM
#define CHECK_REFERENCE_DEFAULTUITV(key_veld, message) \
DECLARE \
dummy CHAR; \
BEGIN \
SELECT 'X' INTO dummy \
FROM mld_v_defaultuitv \
WHERE bco_defaultuitv_keys = :new.key_veld; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
APPLICATION_ERROR(-20000, message); \
END
#define UPDATE_WEEKINGAVE(weekingave_veld) \
BEGIN \
:new.weekingave_veld := to_number( \
to_char(:new.mld_opdr_datumbegin, 'YYWW')); \
END
#define SET_VERWIJDER_CHILDREN2(child_table, parent_key, child_key, parent_verwijder, \
child_verwijder) \
BEGIN \
IF :new.parent_verwijder IS NOT NULL OR \
(:new.parent_verwijder IS NULL AND :old.parent_verwijder IS NOT NULL) \
THEN \
UPDATE child_table \
SET child_verwijder = :new.parent_verwijder \
WHERE \
child_table.child_key = :new.parent_key; \
END IF; \
END
#define DELETE_CHILDREN(child_table, parent_key) \
BEGIN \
DELETE FROM child_table \
@@ -737,28 +360,6 @@ BEGIN ~\
END; ~\
/ ~\
#define BEGIN_MODULE(m) \
DECLARE ~\
dummy VARCHAR2(1); ~\
BEGIN ~\
SELECT 'x'INTO dummy ~\
FROM fac_module ~\
WHERE fac_module_name = UPPER(#@m);
#define SQL_SPOOL(SQLRegel) \
dbms_output.put_line(#@SQLRegel);
#define END_MODULE(m) \
EXCEPTION ~\
WHEN NO_DATA_FOUND THEN dbms_output.put_line('--Module ' ||#@m|| ' niet aanwezig'); ~\
END; ~/
#define UPDMOD(m, n) \
BEGIN_MODULE(m) ~\
SQL_SPOOL(START n.m) ~\
END_MODULE(m)
#define START_LOCALEITEMS(dialect_id) \
DECLARE ~ \
v_dialect_id fac_localeitems.fac_localeitems_dialect_id%TYPE; ~ \

View File

@@ -4,6 +4,385 @@
* $Id$
*/
CREATE OR REPLACE PACKAGE ctr AS
PROCEDURE taak_naar_ter_uitvoering(pmld_stdmelding_key IN NUMBER,
pmld_subject IN VARCHAR2,
pins_srtcontrole_info IN VARCHAR2,
pprs_kostenplaats_key IN NUMBER,
pprs_perslid_key IN NUMBER,
pmld_stdmelding_default_disc IN NUMBER,
palg_locatie_key IN NUMBER,
palg_onroerendgoed_keys IN NUMBER,
pins_deel_key IN NUMBER,
pdeelsrtcontrole_key IN NUMBER);
RETURN NUMBER;
PROCEDURE melding_voor_geplande_taken_maken;
END ctr;
/
CREATE OR REPLACE PACKAGE BODY ctr AS
PROCEDURE taak_naar_ter_uitvoering(pmld_stdmelding_key IN NUMBER,
pmld_subject IN VARCHAR2,
pins_srtcontrole_info IN VARCHAR2,
pprs_kostenplaats_key IN NUMBER,
pprs_perslid_key IN NUMBER,
pmld_stdmelding_default_disc IN NUMBER,
palg_locatie_key IN NUMBER,
palg_onroerendgoed_keys IN NUMBER,
pins_deel_key IN NUMBER,
pdeelsrtcontrole_key IN NUMBER)
AS
c_applname VARCHAR2 (50) := 'AFMELDEN_ORD';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
l_new_melding_key mld_melding.mld_melding_key%TYPE;
l_new_melding_object_key mld_melding_object.mld_melding_object_key%TYPE;
BEGIN
SELECT mld_s_mld_melding_key.NEXTVAL INTO l_new_melding_key FROM DUAL;
INSERT INTO mld_melding(prs_perslid_key,
prs_perslid_key_voor,
mld_melding_datum,
mld_ins_discipline_key,
mld_stdmelding_key,
mld_melding_omschrijving,
mld_melding_onderwerp,
mld_meldbron_key,
prs_kostenplaats_key,
mld_alg_locatie_key,
mld_melding_spoed,
mld_alg_onroerendgoed_keys,
mld_melding_module,
mld_melding_key)
VALUES (pprs_perslid_key,
pprs_perslid_key,
SYSDATE,
pmld_stdmelding_default_disc,
pmld_stdmelding_key,
pins_srtcontrole_info,
pmld_subject,
10,
pprs_kostenplaats_key,
palg_locatie_key,
3, -- Default prioriteit 3.
palg_onroerendgoed_keys,
'MLD',
l_new_melding_key);
SELECT mld_s_mld_object_key.NEXTVAL INTO l_new_melding_object_key FROM DUAL;
INSERT INTO mld_melding_object(ins_deel_key,
mld_melding_key,
ins_deelsrtcontrole_key,
mld_melding_object_key)
VALUES (pins_deel_key,
l_new_melding_key,
pdeelsrtcontrole_key,
l_new_melding_object_key);
mld.setmeldingstatus(l_new_melding_key, 2, NULL, 1);
IF pmld_stdmelding_default_disc IS NOT NULL -- mldbhg notificatie.
THEN
mld.notifybackoffice (l_new_melding_key, 'MLDBHG', 2);
END IF;
mld.mld_nextworkflowstep (l_new_melding_key, -1);
mld.mld_addautoorder(l_new_melding_key);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', v_aanduiding || v_errormsg, 'Taak afgebroken!');
END;
-- Automatische starten en ter uitvoering zetten van taken die voor vandaag of eerder zijn gepland (via plandatum of berekend).
-- Er wordt bij de taak ook direct een melding aangemaakt.
-- voorwaarden: 1) Er is een stdmelding gedefinieerd bij de periodieke taak.
-- 2) Alleen periodieke taken, GEEN mjob taken.
PROCEDURE melding_voor_geplande_taken_maken
AS
c_applname VARCHAR2 (50) := 'MELDING_VOOR_GEPLANDE_TAKEN_MAKEN';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_count_tot NUMBER (10);
l_prs_perslid_key prs_perslid.prs_perslid_key%TYPE;
l_new_deelsrtcontrole_key ins_deelsrtcontrole.ins_deelsrtcontrole_key%TYPE;
l_deelsrtcontrole_key ins_deelsrtcontrole.ins_deelsrtcontrole_key%TYPE;
mjb_approvedmld_desc fac_setting.fac_setting_default%TYPE;
mld_subject VARCHAR2 (200);
CURSOR c_taak_naar_ter_uitvoering
IS
-- Ingeplande taken.
SELECT idsc.ins_deelsrtcontrole_key,
idsc.ins_deel_key,
idsc.ins_srtcontrole_key,
idsc.ins_scenario_key,
xcp.mld_stdmelding_key,
sm.mld_stdmelding_default_disc,
CASE
WHEN d.ins_alg_ruimte_type IN ('T', 'R')
THEN
COALESCE(xcp.prs_kostenplaats_key,
(SELECT prs_kostenplaats_key
FROM alg_gebouw
WHERE alg_gebouw_key = (SELECT alg.alg_gebouw_key FROM alg_v_allonroerendgoed alg WHERE alg.alg_onroerendgoed_keys = d.ins_alg_ruimte_key)))
WHEN d.ins_alg_ruimte_type IN ('W')
THEN
COALESCE(xcp.prs_kostenplaats_key,
(SELECT prs_kostenplaats_key
FROM alg_gebouw
WHERE alg_gebouw_key = (SELECT wpg.alg_gebouw_key FROM prs_v_werkplek_gegevens wpg WHERE wpg.prs_werkplek_key = d.ins_alg_ruimte_key)))
ELSE
NULL
END prs_kostenplaats_key,
xcp.ins_srtcontrole_omschrijving,
xcp.ins_srtcontrole_info,
isd.ins_srtdeel_omschrijving,
CASE
WHEN d.ins_alg_ruimte_type IN ('T', 'R')
THEN
(SELECT alg.alg_locatie_key FROM alg_v_allonroerendgoed alg WHERE alg.alg_onroerendgoed_keys = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('W')
THEN
(SELECT wpg.alg_locatie_key FROM prs_v_werkplek_gegevens wpg WHERE wpg.prs_werkplek_key = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('P', 'A')
THEN
NULL
END alg_locatie_key,
CASE
WHEN d.ins_alg_ruimte_type IN ('T', 'R')
THEN
(SELECT alg.alg_onroerendgoed_keys FROM alg_v_allonroerendgoed alg WHERE alg.alg_onroerendgoed_keys = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('W')
THEN
(SELECT wpg.alg_ruimte_key FROM prs_v_werkplek_gegevens wpg WHERE wpg.prs_werkplek_key = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('P', 'A')
THEN
NULL
END alg_onroerendgoed_keys,
CASE
WHEN (SELECT COUNT(ins_deelsrtcontrole_key)
FROM ins_deelsrtcontrole idsc2
WHERE idsc2.ins_deel_key = idsc.ins_deel_key
AND idsc2.ins_srtcontrole_key = idsc.ins_srtcontrole_key
AND idsc2.ins_scenario_key = idsc.ins_scenario_key
AND idsc2.ins_deelsrtcontrole_status = 6) >= 1
THEN
ins.nextcyclusdate(idsc.ins_deel_key, idsc.ins_srtcontrole_key, 1, 1)
ELSE NULL
END nextdate
FROM ins_deelsrtcontrole idsc,
ins_v_defined_inspect_xcp xcp,
ins_v_deelenonderdeel d,
ins_srtdeel isd,
mld_stdmelding sm
WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key
AND xcp.ins_deel_key = idsc.ins_deel_key
AND xcp.ins_scenario_key = idsc.ins_scenario_key
AND xcp.mld_stdmelding_key = sm.mld_stdmelding_key
AND d.ins_deel_key = idsc.ins_deel_key
AND d.ins_srtdeel_key = isd.ins_srtdeel_key
AND d.ins_alg_ruimte_type IN ('T', 'R', 'P', 'W', 'A')
AND TRUNC(idsc.ins_deelsrtcontrole_plandatum, 'dd') <= TRUNC(SYSDATE, 'dd')
AND (xcp.ins_srtcontrole_eind IS NULL OR xcp.ins_srtcontrole_eind > SYSDATE)
AND d.ins_deel_verwijder IS NULL
AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > SYSDATE)
AND idsc.ins_scenario_key = 1
AND idsc.ins_deelsrtcontrole_status = 0
AND xcp.ctr_ismjob = 0
AND xcp.mld_stdmelding_key IS NOT NULL
UNION
-- Berekende taken t.o.v. de laatste inspectie (met historie).
SELECT NULL ins_deelsrtcontrole_key,
idsc.ins_deel_key,
idsc.ins_srtcontrole_key,
idsc.ins_scenario_key,
xcp.mld_stdmelding_key,
sm.mld_stdmelding_default_disc,
CASE
WHEN d.ins_alg_ruimte_type IN ('T', 'R')
THEN
COALESCE(xcp.prs_kostenplaats_key,
(SELECT prs_kostenplaats_key
FROM alg_gebouw
WHERE alg_gebouw_key = (SELECT alg.alg_gebouw_key FROM alg_v_allonroerendgoed alg WHERE alg.alg_onroerendgoed_keys = d.ins_alg_ruimte_key)))
WHEN d.ins_alg_ruimte_type IN ('W')
THEN
COALESCE(xcp.prs_kostenplaats_key,
(SELECT prs_kostenplaats_key
FROM alg_gebouw
WHERE alg_gebouw_key = (SELECT wpg.alg_gebouw_key FROM prs_v_werkplek_gegevens wpg WHERE wpg.prs_werkplek_key = d.ins_alg_ruimte_key)))
ELSE
NULL
END prs_kostenplaats_key,
xcp.ins_srtcontrole_omschrijving,
xcp.ins_srtcontrole_info,
isd.ins_srtdeel_omschrijving,
CASE
WHEN d.ins_alg_ruimte_type IN ('T', 'R')
THEN
(SELECT alg.alg_locatie_key FROM alg_v_allonroerendgoed alg WHERE alg.alg_onroerendgoed_keys = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('W')
THEN
(SELECT wpg.alg_locatie_key FROM prs_v_werkplek_gegevens wpg WHERE wpg.prs_werkplek_key = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('P', 'A')
THEN
NULL
END alg_locatie_key,
CASE
WHEN d.ins_alg_ruimte_type IN ('T', 'R')
THEN
(SELECT alg.alg_onroerendgoed_keys FROM alg_v_allonroerendgoed alg WHERE alg.alg_onroerendgoed_keys = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('W')
THEN
(SELECT wpg.alg_ruimte_key FROM prs_v_werkplek_gegevens wpg WHERE wpg.prs_werkplek_key = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('P', 'A')
THEN
NULL
END alg_onroerendgoed_keys,
CASE
WHEN (SELECT COUNT(ins_deelsrtcontrole_key)
FROM ins_deelsrtcontrole idsc2
WHERE idsc2.ins_deel_key = idsc.ins_deel_key
AND idsc2.ins_srtcontrole_key = idsc.ins_srtcontrole_key
AND idsc2.ins_scenario_key = idsc.ins_scenario_key
AND idsc2.ins_deelsrtcontrole_status = 6) >= 1
THEN
ins.nextcyclusdate(idsc.ins_deel_key, idsc.ins_srtcontrole_key, 1, 1)
ELSE NULL
END nextdate
FROM ins_deelsrtcontrole idsc,
ins_v_defined_inspect_xcp xcp,
ins_v_deelenonderdeel d,
ins_srtdeel isd,
mld_stdmelding sm
WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key
AND xcp.ins_deel_key = idsc.ins_deel_key
AND xcp.ins_scenario_key = idsc.ins_scenario_key
AND xcp.mld_stdmelding_key = sm.mld_stdmelding_key
AND d.ins_deel_key = idsc.ins_deel_key
AND d.ins_srtdeel_key = isd.ins_srtdeel_key
AND d.ins_alg_ruimte_type IN ('T', 'R', 'P', 'W', 'A')
AND TRUNC(ins.nextcyclusdate(idsc.ins_deel_key, idsc.ins_srtcontrole_key, 1, 1), 'dd') <= TRUNC(SYSDATE, 'dd')
AND (xcp.ins_srtcontrole_eind IS NULL OR xcp.ins_srtcontrole_eind > SYSDATE)
AND d.ins_deel_verwijder IS NULL
AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > SYSDATE)
AND idsc.ins_scenario_key = 1
AND idsc.ins_deelsrtcontrole_key = (SELECT MAX(ins_deelsrtcontrole_key)
FROM ins_deelsrtcontrole idsc2
WHERE idsc2.ins_deel_key = idsc.ins_deel_key
AND idsc2.ins_srtcontrole_key = idsc.ins_srtcontrole_key
AND idsc2.ins_scenario_key = idsc.ins_scenario_key
AND idsc2.ins_deelsrtcontrole_status = 6)
AND (SELECT MAX(ins_deelsrtcontrole_key)
FROM ins_deelsrtcontrole idsc2
WHERE idsc2.ins_deel_key = idsc.ins_deel_key
AND idsc2.ins_srtcontrole_key = idsc.ins_srtcontrole_key
AND idsc2.ins_scenario_key = idsc.ins_scenario_key
AND idsc2.ins_deelsrtcontrole_status != 6) IS NULL -- Er mag geen lopende taak aanwezig zijn.
AND xcp.ctr_ismjob = 0
AND xcp.mld_stdmelding_key IS NOT NULL;
BEGIN
v_count_tot := 0;
FOR rec IN c_taak_naar_ter_uitvoering
LOOP
BEGIN
v_errormsg := 'Fout starten taak';
v_aanduiding := '[' || TO_CHAR (rec.ins_deel_key) || '/' || TO_CHAR (rec.ins_srtcontrole_key) || '] ';
BEGIN
SELECT prs_perslid_key
INTO l_prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_oslogin = '_SYSTEEM' AND prs_perslid_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.putsystemnotification ('Invalid configuration: missing _SYSTEEM user', 1);
END;
-- Stap 1 is de taak starten.
IF rec.ins_deelsrtcontrole_key IS NULL
THEN
SELECT ins_s_ins_deelsrtcontrole_key.NEXTVAL INTO l_new_deelsrtcontrole_key FROM DUAL;
INSERT INTO ins_deelsrtcontrole (ins_deelsrtcontrole_key,
ins_deel_key,
ins_srtcontrole_key,
ins_deelsrtcontrole_status,
prs_perslid_key,
ins_deelsrtcontrole_datum_org)
VALUES (l_new_deelsrtcontrole_key,
rec.ins_deel_key,
rec.ins_srtcontrole_key,
2,
l_prs_perslid_key,
rec.nextdate);
l_deelsrtcontrole_key := l_new_deelsrtcontrole_key;
ELSE
l_deelsrtcontrole_key := rec.ins_deelsrtcontrole_key;
-- Het ins_deelsrtcontrole record bestaat al omdat de taak al is ingepland.
END IF;
ins.setinspectstatus(l_deelsrtcontrole_key, 2, NULL);
-- Stap 2 is de taak ter uitvoering brengen door een melding aan te maken en deze te koppelen aan de gestarte taak.
mjb_approvedmld_desc := fac.getsetting('mjb_approvedmelding_description');
IF mjb_approvedmld_desc = 2
THEN
mld_subject := rec.ins_srtcontrole_omschrijving;
ELSIF mjb_approvedmld_desc = 3
THEN
mld_subject := rec.ins_srtcontrole_omschrijving || ' (' || rec.ins_srtdeel_omschrijving || ')';
ELSE -- mjb_approvedmelding_description = 1
mld_subject := rec.ins_srtdeel_omschrijving;
END IF;
-- Melding aangmaken en koppelen.
ctr.taak_naar_ter_uitvoering(rec.mld_stdmelding_key,
mld_subject,
rec.ins_srtcontrole_info,
rec.prs_kostenplaats_key,
l_prs_perslid_key,
rec.mld_stdmelding_default_disc,
rec.alg_locatie_key,
rec.alg_onroerendgoed_keys,
rec.ins_deel_key,
l_deelsrtcontrole_key);
ins.setinspectstatus(l_deelsrtcontrole_key, 3, NULL);
v_count_tot := v_count_tot + 1;
IF MOD (v_count_tot, 500) = 0 THEN COMMIT; END IF;
END;
END LOOP;
fac.writelog (c_applname, 'S', '#Taken gestart: ' || TO_CHAR (v_count_tot), '');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (c_applname, 'E', v_aanduiding || v_errormsg, 'Taak afgebroken!');
END;
END ctr;
/
REGISTERRUN('$Id$')

View File

@@ -12,6 +12,42 @@ AS
DEFINIEER_VIEW_AANWEZIG(ctr_discipline, ins_discipline_verwijder,
ctr_v_aanwezigdiscipline, 0);
CREATE_VIEW(ctr_v_allsrtinstallatie, 0)
(
niveau,
ctr_srtinstallatie_key,
discipline_oms,
srtcontrole_oms,
ins_discipline_key,
ins_srtcontrole_key
)
AS
SELECT 'E',
cd.ins_discipline_key,
cd.ins_discipline_omschrijving,
NULL ins_srtcontrole_omschrijving,
cd.ins_discipline_key,
NULL ins_srtcontrole_key
FROM ctr_discipline cd
UNION
SELECT 'C',
isc.ins_srtcontrole_key,
cd.ins_discipline_omschrijving,
isc.ins_srtcontrole_omschrijving,
cd.ins_discipline_key,
isc.ins_srtcontrole_key
FROM ctr_discipline cd,
ins_srtcontrole isc
WHERE cd.ins_discipline_key = isc.ctr_discipline_key
UNION
SELECT 'T' niveau,
NULL ctr_srtinstallatie_key,
NULL discipline_oms,
NULL srtcontrole_oms,
NULL ins_discipline_key,
NULL ins_srtcontrole_key
FROM DUAL;
CREATE_VIEW(ctr_v_monthly_recurring_tasks, 0)
AS
-- Inspecties die dit jaar en volgend jaar nog uitgevoerd moeten worden.

View File

@@ -104,7 +104,6 @@ AS
WHERE starttime <= date_interval_end
AND endtime >= date_interval_start
AND appt_id || '|' || recur_id = p_appt_id || '|' || p_recur_id
AND gelukt IS NULL
AND NOT REGEXP_LIKE (att_mail, (SELECT COALESCE (fac_setting_pvalue, fac_setting_default)
FROM fac_setting
WHERE fac_setting_name = 'exchange_internal_email_regexp'));
@@ -317,10 +316,14 @@ AS
-- Met behulp van imp_exchange.gelukt kunnen importregels bewaard worden, zodat mutaties
-- aan appointments die gefaald zijn, alsnog kunnen worden doorgevoerd. Betekenis waarden 'gelukt':
-- NULL = niet correct verwerkt in vorige import --> nogmaals proberen
-- NULL = niet correct verwerkt in vorige import --> nogmaals proberen (of gewoon 'verse' regels toch .. ?)
-- 1 = succesvol verwerkt in vorige import --> importregel verwijderen
-- 2 = er is in een latere import een nieuwere status van dezelfde appointment ingelezen,
-- dus deze importregel is outdated --> regel verwijderen
-- 3 = a. Delete gevolgd door een Create/Update (komt toch niet voor .. ?)
-- b. Delete van onbekende reservering (komt volgens mij ook niet meer voor, wordt afgevangen in de asp-code)
-- 4 = Dit betreft een reservering die buiten het geconfigureerde datum-interval valt (die komt hier toch ook niet meer, de subscription luistert alleen naar changes binnen dit interval)
-- 5 = Regels die gaan over de res_ruimte als deelnemer
PROCEDURE import_exchange (p_import_key IN NUMBER, p_days_from IN NUMBER DEFAULT 0, p_days_to IN NUMBER DEFAULT 90)
IS
c_fielddelimitor VARCHAR2 (1) := ';';
@@ -348,6 +351,7 @@ AS
v_organizer VARCHAR2 (200);
v_att_mail VARCHAR2 (200);
v_att_name VARCHAR2 (200);
v_visibility VARCHAR2 (100);
v_modifier VARCHAR2 (100);
v_appt_id VARCHAR2 (500);
v_recur_id VARCHAR2 (500);
@@ -384,14 +388,30 @@ AS
-- We willen mislukte regels uit eerdere imports bewaren, zodat we die nog eens kunnen proberen.
-- Alle correct verwerkte importregels krijgen een vlag, dus die gooien we weg.
-- Deletes die al deleted zijn, zijn schijnbaar al gelukt
DELETE FROM exc_import
WHERE gelukt IS NOT NULL
OR ( modifier = 'D'
AND EXISTS
(SELECT 1
FROM res_rsv_ruimte
WHERE res_rsv_ruimte_verwijder IS NOT NULL
AND res_rsv_ruimte_externnr = appt_id || '|' || recur_id));
BEGIN
FOR r
IN (SELECT exc_import_key
FROM exc_import e
WHERE gelukt IS NOT NULL
OR (SELECT fac_import_datum_gelezen
FROM fac_import
WHERE fac_import_key = e.fac_import_key) <
SYSDATE - 1 / 24 -- Regels ouder dan 1u hoeven we ook nooit meer opnieuw te proberen
OR ( modifier = 'D'
AND EXISTS
(SELECT 1
FROM res_rsv_ruimte
WHERE res_rsv_ruimte_verwijder
IS NOT NULL
AND res_rsv_ruimte_externnr =
appt_id || '|' || recur_id))
FOR UPDATE
SKIP LOCKED) -- Dan doen we deze later wel, geen haast
LOOP
DELETE FROM exc_import
WHERE exc_import_key = r.exc_import_key;
END LOOP;
END;
-- We gaan uit van een geldig bestand, mogelijk verandert dat onderweg
header_is_valid := 0;
@@ -418,10 +438,20 @@ AS
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_organizer);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 5, v_att_mail);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 6, v_att_name);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 7, v_modifier);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 8, v_appt_id);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 9, v_recur_id);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 10, v_seq_nr);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 7, v_visibility);
IF (v_visibility IN ('C', 'U', 'D')) -- De modifier is in v_visibility opgeslagen; nog even in backwards-compatibility-mode blijven
THEN
v_visibility := '1';
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 7, v_modifier);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 8, v_appt_id);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 9, v_recur_id);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 10, v_seq_nr);
ELSE
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 8, v_modifier);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 9, v_appt_id);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 10, v_recur_id);
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 11, v_seq_nr);
END IF;
v_aanduiding := '[' || v_room_id || '|' || v_starttime || '|' || v_att_mail || '] ';
@@ -539,6 +569,7 @@ AS
organizer,
att_mail,
att_name,
visibility,
modifier,
appt_id,
recur_id,
@@ -551,6 +582,7 @@ AS
v_organizer,
v_att_mail,
v_att_name,
v_visibility,
v_modifier,
v_appt_id,
v_recur_id,
@@ -860,6 +892,7 @@ AS
starttime,
endtime,
organizer,
visibility,
modifier,
appt_id,
recur_id
@@ -880,6 +913,7 @@ AS
starttime,
endtime,
organizer,
visibility,
modifier) i,
res_rsv_ruimte rr,
res_ruimte rnew
@@ -905,6 +939,7 @@ AS
starttime,
endtime,
organizer,
visibility,
modifier,
appt_id,
recur_id,
@@ -928,6 +963,7 @@ AS
starttime,
endtime,
organizer,
visibility,
modifier) i,
res_v_aanwezigruimte r
WHERE i.room_id = r.res_ruimte_extern_id
@@ -938,6 +974,7 @@ AS
starttime,
endtime,
organizer,
visibility,
modifier,
appt_id,
recur_id,
@@ -961,6 +998,7 @@ AS
starttime,
endtime,
organizer,
visibility,
modifier) i,
res_v_aanwezigruimte r
WHERE i.room_id = r.res_ruimte_extern_id
@@ -983,41 +1021,52 @@ AS
FROM fac_setting
WHERE fac_setting_name = 'msgraph_sync_level';
-- We doen niets met boekingen die buiten het geconfigureerde interval vallen
/*
Onderstaande UPDATE set het gelukt bitje naar een error-waarde (niet '1', want dat betekent succesvol voltooid)
Of NULL (= 'te verwerken') als er zich geen fout situatie voordoet
*/
UPDATE exc_import i
SET gelukt = 4
WHERE starttime > date_interval_end
OR endtime < date_interval_start;
-- En res_ruimtes als deelnemers, dat kan natuurlijk niet
UPDATE exc_import i
SET gelukt = 5
WHERE EXISTS
(SELECT 1
FROM res_ruimte
WHERE UPPER (res_ruimte_extern_id) = UPPER (att_mail));
-- Eerst verwijderen; dat scheelt onterechte "dirties" bij toevoegen
-- Bij verplaatsen naar een andere ruimte krijg je mogelijk een delete op de oude
-- ruimte; die voeren we niet uit. Ook deletes van niet-bekende appointments negeren we.
UPDATE exc_import i
SET gelukt = 3
WHERE modifier IN ('D')
AND EXISTS
(SELECT 1
FROM exc_import
WHERE modifier != 'D'
AND appt_id || '|' || recur_id =
i.appt_id || '|' || i.recur_id
AND seq_nr > i.seq_nr);
UPDATE exc_import i
SET gelukt = 3
WHERE modifier IN ('D')
AND NOT EXISTS
(SELECT 1
FROM res_rsv_ruimte
WHERE INSTR(res_rsv_ruimte_externnr, i.appt_id || '|') = 1);
SET gelukt =
CASE
WHEN EXISTS
(SELECT 1
FROM res_ruimte
WHERE UPPER (res_ruimte_extern_id) = UPPER (att_mail))
THEN 5 -- res_ruimtes als deelnemers, dat kan natuurlijk niet
WHEN i.fac_import_key = p_import_key
AND ( starttime > date_interval_end
OR endtime < date_interval_start)
THEN 4 -- We doen niets met boekingen die buiten het geconfigureerde interval vallen
WHEN modifier = 'D'
AND ( EXISTS
(SELECT 1
FROM exc_import
WHERE modifier != 'D'
AND appt_id || '|' || recur_id =
i.appt_id || '|' || i.recur_id
AND seq_nr > i.seq_nr)
OR NOT EXISTS
(SELECT 1
FROM res_rsv_ruimte
WHERE INSTR (res_rsv_ruimte_externnr,
i.appt_id || '|') =
1))
THEN 3 -- Dit zijn [D]eletes die nog gevolgd worden door nieuwere niet-[D]elete-regels of [D]eletes van niet bestaande Facilitor reserveringen
WHEN modifier IN ('C', 'U')
AND EXISTS
(SELECT 1
FROM exc_import
WHERE appt_id || '|' || recur_id =
i.appt_id || '|' || i.recur_id
AND fac_import_key !=
i.fac_import_key
AND seq_nr > i.seq_nr)
THEN 2 -- Er bestaan 2 = er is in een latere import een nieuwere status van dezelfde appointment ingelezen
ELSE
NULL -- 'te verwerken'
END
WHERE gelukt IS NULL
AND i.fac_import_key = p_import_key;
COMMIT; -- Cleanup
@@ -1151,33 +1200,6 @@ AS
COMMIT; -- de DELETE's
-- Omdat we entries die gefaald zijn 'bewaren', kan het zijn dat we voor <20><>n appointment
-- meerdere updates - of zelfs een delete - hebben. Dan zijn we alleen ge<67>nteresseerd in de
-- nieuwste, de rest kan genegeerd/weg. (Als we een nieuwere UPDate hebben, kan de originele
-- ADD/create ook weg; een update van een nog-niet-bestaande reservering zorgt voor aanmaken.)
-- Hoger seq_nr = latere mutatie in Exchange
UPDATE exc_import i
SET gelukt = 2
WHERE modifier IN ('C', 'U')
AND EXISTS
(SELECT 1
FROM exc_import
WHERE appt_id || '|' || recur_id =
i.appt_id || '|' || i.recur_id
AND fac_import_key != i.fac_import_key
AND seq_nr > i.seq_nr);
-- Hetzelfde voor deletes van niet-bestaande reserveringen
UPDATE exc_import i
SET gelukt = 2
WHERE modifier = 'D'
AND NOT EXISTS
(SELECT 1
FROM res_rsv_ruimte
WHERE res_rsv_ruimte_externnr = i.appt_id || '|' || i.recur_id);
COMMIT; -- Cleanup
-- Dan bestaande bijwerken, anders kan het gebeuren dat we op basis van een UPDATE
-- eerst een rsv_ruimte aanmaken en 'm daarna meteen proberen bij te werken.
-- TODO: is dat nog steeds zo met "gelukt = 1"?
@@ -1370,6 +1392,7 @@ AS
IF ( v_ruimte_extern_id != rec.res_ruimte_extern_id
OR rec.res_rsv_ruimte_omschrijving !=
SUBSTR (rec.subject, 1, 60)
OR rec.res_rsv_ruimte_visibility != rec.visibility
OR rec.res_rsv_ruimte_van != rec.starttime
OR rec.res_rsv_ruimte_tot != rec.endtime)
THEN
@@ -1393,7 +1416,8 @@ AS
res_rsv_ruimte_omschrijving =
SUBSTR (rec.subject, 1, 60),
res_rsv_ruimte_van = rec.starttime,
res_rsv_ruimte_tot = rec.endtime
res_rsv_ruimte_tot = rec.endtime,
res_rsv_ruimte_visibility = rec.visibility
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
-- Opruimen en voorzieningen en bezoekers laten volgen
@@ -1580,6 +1604,22 @@ AS
-- AND res_rsv_ruimte_externnr NOT LIKE '%|'||rec.recur_id||'|%'
AND res_rsv_ruimte_verwijder IS NULL;
-- We gaan deze afronden; zet vlag.
UPDATE exc_import
SET gelukt = 1
WHERE appt_id || '|' || recur_id =
rec.appt_id || '|' || rec.recur_id
AND fac_import_key = p_import_key
AND gelukt IS NULL;
IF (v_debug)
THEN
fac.imp_writelog (p_import_key,
'I',
v_aanduiding,
'gelukt=1');
END IF;
-- Er bestaan al deelreserveringen voor andere occurences van deze recurring appointment
-- Deelreservering binnen de bijbehorende res_reservering aanmaken
IF (v_count > 0)
@@ -1643,6 +1683,7 @@ AS
res_rsv_ruimte_kosten_klant,
res_rsv_ruimte_contact_key,
res_rsv_ruimte_bezoekers,
res_rsv_ruimte_visibility,
res_reservering_key,
res_rsv_ruimte_volgnr,
res_status_bo_key)
@@ -1663,6 +1704,7 @@ AS
1,
v_perslid_key,
rec.num_bez,
rec.visibility,
v_reservering_key,
v_rsv_ruimte_volgnr,
2)
@@ -1675,12 +1717,6 @@ AS
THEN
DELETE FROM res_reservering WHERE res_reservering_key = v_reservering_key;
END IF;
-- Pas het 'gelukt' bitje aan zodat we hem later niet weer opnieuw proberen
UPDATE exc_import
SET gelukt = 2
WHERE appt_id || '|' || recur_id =
rec.appt_id || '|' || rec.recur_id
AND gelukt IS NULL;
fac.imp_writelog (p_import_key,
'I',
@@ -1707,22 +1743,6 @@ AS
v_errorhint := 'Toevoegen bezoekers';
exc.importBezoekers(p_import_key, rec.appt_id, rec.recur_id, v_rsv_ruimte_key, date_interval_start, date_interval_end);
-- Succesvol afgerond; zet vlag.
-- TODO: komen we hier ook als er iets mis ging met de bezoekers?
UPDATE exc_import
SET gelukt = 1
WHERE appt_id || '|' || recur_id =
rec.appt_id || '|' || rec.recur_id
AND gelukt IS NULL;
IF (v_debug)
THEN
fac.imp_writelog (p_import_key,
'I',
v_aanduiding,
'gelukt=1');
END IF;
-- res_discipline achterhalen; alleen tracken voor EXCO en MC zalen
v_errorhint := 'res_discipline bepalen';

View File

@@ -22,6 +22,9 @@ CREATE_TABLE(exc_import, 0)
VARCHAR2(200),
att_name
VARCHAR2(200),
visibility -- 0=Private, 1=Normal
NUMBER(4)
DEFAULT 1,
modifier
VARCHAR2(1),
appt_id
@@ -34,7 +37,8 @@ CREATE_TABLE(exc_import, 0)
NUMBER(10)
CONSTRAINT exc_r_fac_import_key1 REFERENCES fac_import(fac_import_key) ON DELETE CASCADE,
gelukt
NUMBER(1)
NUMBER(1),
CONSTRAINT exc_c_visibility CHECK (modifier = 'D' OR visibility IS NOT NULL)
);
REGISTERONCE('$Id$')

View File

@@ -12,7 +12,10 @@ _FAC_MODULE('FAQ', 'lcl_module_FAQ')
_FAC_MODULE('PDA', 'lcl_module_PDA')
_FAC_MODULE('UDR', 'lcl_module_UDR')
INSERT INTO fac_version (fac_version_key, fac_version_date, fac_version_lang) VALUES (1, SYSDATE, 'NL');
/* strikt genomen hoeft fac_version_cust niet gelijk te zijn aan de schema USER maar het is een goede default */
INSERT INTO fac_version
(fac_version_key, fac_version_date, fac_version_lang, fac_version_cust)
VALUES (1, SYSDATE, 'NL', SUBSTR(USER, 1, 4));
/*
*
@@ -22,7 +25,7 @@ INSERT INTO fac_version (fac_version_key, fac_version_date, fac_version_lang) VA
// Alles als een enorme BEGIN/END is over het netwerk immens sneller
BEGIN
DEF_FAC_MESSAGE ('fac_m002', 'Facilitor '_CONCAT _DBV_STRING,'Facilitor '_CONCAT _DBV_STRING);
DEF_FAC_MESSAGE ('fac_m002', 'Facilitor '|| _DBV_STRING,'Facilitor ' || _DBV_STRING);
/* FAC */
DEF_FAC_MESSAGE ('fac_m001', 'Printvoorbeeld','Preview');
@@ -524,6 +527,7 @@ DEF_FAC_MESSAGE ('INS_M201', 'Het kenmerk %1% is verplicht in te vullen','Proper
DEF_FAC_MESSAGE ('INS_M202', 'Verwijderen niet toegestaan. Er zijn nog meldingen bij dit object.','Delete not allowed. There are Calls referencing this object.');
DEF_FAC_MESSAGE ('INS_M203', 'Kopieren object','Copy object');
DEF_FAC_MESSAGE ('INS_M204', 'Kopieren geselecteerde objecten','Copy selected objects');
DEF_FAC_MESSAGE ('INS_M205', 'Parent object bestaat niet.','Parent object does noet exist.');
DEF_FAC_MESSAGE ('INS_REFSRTKENMERK_USRTAB' , 'Gebruikerstabel','User table');
DEF_FAC_MESSAGE ('INS_CONFIGSAMENSTEL' , 'Samenstelling configuratie','Composition configuration');
@@ -1507,7 +1511,17 @@ DEF_FAC_MESSAGE ('PRS_C_PRS_PERSLID_KEY1' , 'De personeelsfunctionaris is
DEF_FAC_MESSAGE ('PRS_C_PRS_PERSLID_KEY2' , 'De contactpersoon is niet geselecteerd.' , 'The Contact person was not selected.');
DEF_FAC_MESSAGE ('PRS_C_PRS_PERSLID_OSLOGIN' , 'Het veld ''Login'' is niet uniek.' , 'The field ''Login'' is not unique.');
DEF_FAC_MESSAGE ('PRS_I_PRS_BEDRIJFADRES2' , 'Combinatie bedrijf, district, locatie, opdrachttype, adrestype is niet uniek', 'Combination company, district, location, order type, address type is not unique');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MIN_A' , 'Nieuwe min.waarde van dit kenmerksoort voldoet niet aan alle afdelingen.' ,'New min.value of this property-type does not satisfy all departments.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MIN_B' , 'Nieuwe min.waarde van dit kenmerksoort voldoet niet aan alle bedrijven.' ,'New min.value of this property-type does not satisfy all companies.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MIN_C' , 'Nieuwe min.waarde van dit kenmerksoort voldoet niet aan alle contactpersonen.' ,'New min.value of this property-type does not satisfy all contact persons');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MIN_P' , 'Nieuwe min.waarde van dit kenmerksoort voldoet niet aan alle personen.' ,'New min.value of this property-type does not satisfy all persons.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MAX_A' , 'Nieuwe max.waarde van dit kenmerksoort voldoet niet aan alle afdelingen.' ,'New max.value of this property-type does not satisfy all departments.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MAX_B' , 'Nieuwe max.waarde van dit kenmerksoort voldoet niet aan alle bedrijven.' ,'New max.value of this property-type does not satisfy all companies.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MAX_C' , 'Nieuwe max.waarde van dit kenmerksoort voldoet niet aan alle contactpersonen.' ,'New max.value of this property-type does not satisfy all contact persons.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MAX_P' , 'Nieuwe max.waarde van dit kenmerksoort voldoet niet aan alle personen.' ,'New max.value of this property-type does not satisfy all persons.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_LENGTE', 'De lengte moet tussen 1 en 50 liggen.','Length must be between 1 and 50.');
DEF_FAC_MESSAGE ('PRS_I_PRS_BEDRIJFADRES2' , 'Combinatie bedrijf, discipline, locatie, opdrachttype, adrestype is niet uniek', 'Combination company, discipline, location, ordertype, address type is not unique');
DEF_FAC_MESSAGE ('PRS_R_ALG_LOCATIE_KEY1', 'De referentie naar locatie is niet ingevuld.','The reference to location has not been entered.');
DEF_FAC_MESSAGE ('PRS_R_ALG_LOCATIE_KEY2', 'Er zijn nog referenties van locatiebestekken naar locatie.','There are still references from location-plans to location.');
@@ -1536,7 +1550,7 @@ DEF_FAC_MESSAGE ('PRS_R_PRS_EENHEID_KEY', 'Verwijderen niet toegestaan, er zijn
DEF_FAC_MESSAGE ('PRS_R_PRS_CONTACTPERSOON_KEY', 'De contactpersoon is niet goed.','The contact person is invalid.');
DEF_FAC_MESSAGE ('PRS_U_PERSLIDWERKPLEK', 'De combinatie van persoon of afdeling en werkplek is niet uniek.','The combination of person or department and workplace is not unique.');
DEF_FAC_MESSAGE ('PRS_U_PRS_AFDELING_UPPER', 'Het veld ''Naam'' is niet uniek.','The field ''Name'' is not unique.');
DEF_FAC_MESSAGE ('PRS_U_PRS_AFDELING_UPPER', 'Het veld ''Code'' is niet uniek.','The field ''Code'' is not unique.');
DEF_FAC_MESSAGE ('PRS_U_PRS_BEDRIJF_NAAM_UPPER', 'Het veld ''Naam'' is niet uniek.','The field ''Name'' is not unique.');
DEF_FAC_MESSAGE ('PRS_U_PRS_BEDRIJFDIENSTLOC_KEY', 'De combinatie bedrijf, dienst, locatie en gebouw is niet uniek', 'The combination of company, service, location and building is not unique');
DEF_FAC_MESSAGE ('PRS_U_PRS_BESTEK_UPPER_NR', 'Het veld ''Nummer'' is niet uniek.','The field ''Number'' is not unique.');
@@ -1752,6 +1766,7 @@ DEF_FAC_FUNCTIE3('WEB_KPIRAP', 'KPI', 0, 0, 0);
DEF_FAC_FUNCTIE3('WEB_LAYOUT', 'FAC', 0, 0, NULL);
DEF_FAC_FUNCTIE3('WEB_LCLSYS', 'FAC', 0, 0, NULL);
DEF_FAC_FUNCTIE3('WEB_MLDAFR', 'MLD', 15, 1, 1);
DEF_FAC_FUNCTIE3('WEB_MLDTAG', 'MLD', 3, 1, 1);
DEF_FAC_FUNCTIE3('WEB_MLDBAC', 'MLD', 13, 1, 0);
DEF_FAC_FUNCTIE3('WEB_MLDBO2', 'MLD', 15, 1, 1);
DEF_FAC_FUNCTIE3('WEB_MLDBO3', 'MLD', 15, 1, 0);
@@ -1763,6 +1778,7 @@ DEF_FAC_FUNCTIE3('WEB_MLDMSU', 'MLD', 0, 0, 2);
DEF_FAC_FUNCTIE3('WEB_MLDORD', 'MLD', 15, 1, 1);
DEF_FAC_FUNCTIE3('WEB_MLDUSE', 'MLD', 15, 1, 0);
DEF_FAC_FUNCTIE3('WEB_MLDMSA', 'MLD', 0, 0, 2);
DEF_FAC_FUNCTIE3('WEB_MLDREO', 'MLD', 13, 1, 1);
DEF_FAC_FUNCTIE3('WEB_MRKBOF', 'MRK', 0, 0, 1);
DEF_FAC_FUNCTIE3('WEB_MRKMGT', 'MRK', 0, 0, 2);
DEF_FAC_FUNCTIE3('WEB_MRKMSU', 'MRK', 0, 0, 2);
@@ -2043,6 +2059,7 @@ DEF_FAC_SRTNOT('ORDNOL', 1, 'lcl_noti_ORDNOL', 'mld/mld_opdr.asp?opdr_key=', '0'
DEF_FAC_SRTNOT('ORDAFM', 1, 'lcl_noti_ORDAFM', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 10);
DEF_FAC_SRTNOT('ORDNEW', 0, 'lcl_noti_ORDNEW', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 10);
DEF_FAC_SRTNOT('ORDUPD', 0, 'lcl_noti_ORDUPD', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 60);
DEF_FAC_SRTNOT('ORDSND', 0, 'lcl_noti_ORDSND', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 60);
DEF_FAC_SRTNOT('ORDDAT', 0, 'lcl_noti_ORDDAT', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 60);
DEF_FAC_SRTNOT('ORDPLD', 0, 'lcl_noti_ORDPLD', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 60);
DEF_FAC_SRTNOT('ORDPL2', 0, 'lcl_noti_ORDPL2', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 60);
@@ -2081,6 +2098,7 @@ DEF_FAC_SRTNOT('PRSUPT', 0, 'lcl_noti_PRSUPT', 'prs/prs_bedrijfadres.asp?badr_ke
DEF_FAC_SRTNOT('PRSANO', 0, 'lcl_noti_PRSANO', 'prs/prs_perslid.asp?prs_key=' , '0', 'perslid', 10);
DEF_FAC_SRTNOT('RESNEW', 1, 'lcl_noti_RESNEW', 'res/res_reservering.asp?rsv_ruimte_key=', '0', 'reservering', 60);
DEF_FAC_SRTNOT('RESSND', 1, 'lcl_noti_RESSND', 'res/res_reservering.asp?rsv_ruimte_key=', '0', 'reservering', 60);
DEF_FAC_SRTNOT('RESUPD', 1, 'lcl_noti_RESUPD', 'res/res_reservering.asp?rsv_ruimte_key=', '0', 'reservering', 60);
DEF_FAC_SRTNOT('RESAFM', 0, 'lcl_noti_RESAFM', 'res/res_reservering.asp?rsv_ruimte_key=', '0', 'reservering', 10);
DEF_FAC_SRTNOT('RESBEV', 1, 'lcl_noti_RESBEV', 'res/res_reservering.asp?rsv_ruimte_key=', '0', 'reservering', 60);
@@ -2150,6 +2168,8 @@ DEF_FAC_SRTNOT('ALGTUP', 0, 'lcl_noti_ALGTUP', 'alg/alg_terreinsector.asp?key=',
DEF_FAC_SRTNOT('FAQUPD', 0, 'lcl_noti_FAQUPD', 'faq/fac_faq.asp?faq_key=', '0', 'kennisbank', 60);
DEF_FAC_SRTNOT('ACTUPD', 0, 'lcl_noti_ACTUPD', 'fac/job.asp?job_key=', '0', 'activiteit', 60);
DEF_FAC_SRTNOT('FINNEW', 0, 'lcl_noti_FINNEW', 'fin/fin_factuur.asp?fin_key=', '0', 'factuur', 60);
DEF_FAC_SRTNOT('FINUPD', 0, 'lcl_noti_FINUPD', 'fin/fin_factuur.asp?fin_key=', '0', 'factuur', 60);
DEF_FAC_SRTNOT('FINFOK', 0, 'lcl_noti_FINFOK', 'fin/fin_factuur.asp?fin_key=', '0', 'factuur', 10);
@@ -2349,11 +2369,11 @@ INSERT INTO prs_perslid (prs_perslid_module,
SELECT prs_perslid_module,
prs_srtperslid_key,
prs_afdeling_key,
'Sensoralarm',
'_SENSOR',
'Systeem',
'_SYSTEEM',
DBMS_RANDOM.string ('a', 32),
36,
'System account for sensor-triggered-events.'||CHR(13)||'For Facilitor internal use'
'System account for system-triggered-events.'||CHR(13)||'For Facilitor internal use'
FROM prs_perslid
WHERE prs_perslid_oslogin = '_FACILITOR';
@@ -2463,6 +2483,7 @@ DEF_IMPORT('WEB_PRSSYS', 'EXT_BEDRIJF', 'FIP: Aanvullen externe bedrijve
DEF_IMPORT('WEB_PRSSYS', 'CONTACTPERSOON', 'FIP: Aanvullen contactpersonen', 'FIP: Add contacts', 0)
DEF_IMPORT('WEB_FINFOF', 'FACTUUR', 'Standaard import van facturenbestand van leverancier(s)', 'Standard import of invoice file from supplier(s)', 0)
DEF_IMPORT('WEB_BESMSU', 'CATALOGUS', 'Vervangen(!) bestelcatalogi (generiek)', 'Replacement(!) purchase order catalogs (generic)', 0)
DEF_IMPORT('WEB_INSMGT', 'TAAK_MJOB', 'Import MJOB', 'Import MJOB', 1)
// TRANSPORT functies
DEF_IMPORT('WEB_PRSSYS', 'MENU', 'TRANSPORT: Menustructuur', 'TRANSPORT: Menu structure', 0)
@@ -2472,7 +2493,7 @@ DEF_IMPORT('WEB_PRSSYS', 'FLEX', 'TRANSPORT: Flexkenmerken',
DEF_IMPORT('WEB_PRSSYS', 'USRDATA', 'FIP: Eigen tabellen', 'FIP: Own tables', 0)
DEF_IMPORT('WEB_PRSSYS', 'SLE', 'FIP: Sleutels', 'FIP: Keys', 0)
DEF_IMPORT('WEB_PRSSYS', 'FAQ', 'FIP: Kennisbank', 'FIP: Knowledge base', 0)
DEF_IMPORT('WEB_PRSSYS', 'CNT', 'FIP: Contracten', 'FIP: Contracts', 0)
DEF_IMPORT('WEB_PRSSYS', 'CNT', 'FIP: Contracten', 'FIP: Contracts', 1)
DEF_IMPORT('WEB_PRSSYS', 'MLDAFMTXT', 'FIP: Afmeldteksten', 'FIP: Standard texts', 0)
DEF_IMPORT('WEB_PRSSYS', 'BEDRIJFADRES', 'FIP: Aanvullen technische bedrijfadressen', 'FIP: Add company technical addresses', 0)
DEF_IMPORT('WEB_LCLSYS', 'TRANSLATION', 'Import of FACILITOR translation file', 'Import of FACILITOR translation file', 0)
@@ -2500,12 +2521,14 @@ DEF_RAPPORT('TRANSPORT', 'WEB_PRSSYS', 0, 'fac_v_exp_flex_cnt', 'Flexkenme
'Flex properties Contracts', 'Export of flex properties for CNT (per contract type)')
DEF_RAPPORT('TRANSPORT', 'WEB_PRSSYS', 0, 'fac_v_exp_flex_fin', 'Flexkenmerken Facturen', 'Exporteren van flexkenmerken voor FIN',
'Flex properties Invoices', 'Export of flex properties for FIN')
DEF_RAPPORT('STATS', 'WEB_FACTAB', 0, 'fac_v_usage_statistics', 'Gebruik laatste 90 dagen', 'Basisrapport voor gebruiksstatistieken',
'Use statistics for 90 days', 'Basic report for usage statistics')
DEF_RAPPORT('STATS', 'WEB_FACTAB', 0, 'fac_v_usage_statistics_all', 'Gebruik historisch', 'Historische gebruiksstatistieken',
'Use statistics historically', 'Historical usage statistics')
DEF_RAPPORT('ADMIN', 'WEB_PRSSYS', 0, 'fac_v_lcrap_fe_vs_key_data', 'Licentie bepaling', 'Achtergrond van de licentie bepaling',
'License provision', 'Background to the license provision')
DEF_RAPPORT('STATS', 'WEB_FACTAB', 0, 'fac_v_usage_statistics', 'Gebruik laatste 90 dagen', 'Basisrapport voor gebruiksstatistieken',
'Use statistics for 90 days', 'Basic report for usage statistics')
DEF_RAPPORT('STATS', 'WEB_FACTAB', 0, 'fac_v_usage_statistics_all', 'Gebruik historisch', 'Historische gebruiksstatistieken',
'Use statistics historically', 'Historical usage statistics')
DEF_RAPPORT('ADMIN', 'WEB_PRSSYS', 0, 'fac_v_lcrap_fe_vs_key_data', 'Licentie bepaling', 'Achtergrond van de licentie bepaling',
'License provision', 'Background to the license provision')
DEF_RAPPORT('PRS', 'WEB_PRSMAN', 0 , 'prs_v_rap_vervangers', 'Vervangers', 'Vervangers per persoon',
'Substitutes', 'Substitutes per person')
-- UWVA#32742: flexkenmerken transport voor objecten
DEF_RAPPORT('TRANSPORT', 'WEB_PRSSYS', 0, 'fac_v_exp_flex_ins', 'Flexkenmerken Objecten', 'Exporteren van flexkenmerken voor INS (per discipline/groep/objectsoort of soort controle)',
@@ -2575,6 +2598,8 @@ DEF_RAPPORT('BASIS', 'WEB_UDRMAN', 32, 'ins_v_udr_sensorhistorie', 'UDR: Sensor
'UDR: Sensors recent history', 'Basic report for recent values of sensors')
DEF_RAPPORT('BASIS', 'WEB_UDRMAN', 32, 'ins_v_udr_sensorhistogram', 'UDR: Sensor gearchiveerde historie','Basisrapport voor historische gecomprimeerde meetwaarden van status-sensoren',
'UDR: Sensors archived history', 'Basic report for historic compressed values of state-sensors')
DEF_RAPPORT('BASIS', 'WEB_UDRMAN', 32, 'ins_v_udr_sensordata', 'UDR: Actuele Sensordata', 'Basisrapport voor actuele data van sensoren',
'UDR: Actual Sensor data', 'Basic report current data from sensors')
DEF_RAPPORT('BASIS', 'WEB_UDRMAN', 32, 'ins_v_udr_uitgifte', 'UDR: Object uitgifte historie', 'Basisrapport van uitlenen en innemen van objecten',
'UDR: Object issuance history', 'Basic report of lending and taking in objects')
DEF_RAPPORT('BASIS', 'WEB_UDRMAN', 32, 'bez_v_udr_reserveringbezoeker', 'UDR: Bezoekers bij reserveringen', 'Basisrapport voor bezoekers met reserveringsgegevens',
@@ -2600,16 +2625,16 @@ DEF_RAPPORT('ADMIN', 'WEB_PRSSYS', 0, 'prs_v_rap_impersonations', 'Audit van imp
DEF_RAPPORT('ADMIN', 'WEB_FACFAC', 0, 'prs_v_rap_supportaccess', 'Audit van support-toegang','Rapport van alle toegang door Facilitor support',
'Audit of support access', 'Report of all access by Facilitor application management')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_onrgoed1', 'FIP: 1-Aanvullen districten t/m gebouwen', 'Inventarisatie Vastgoed, tabblad Locaties', 'FIP: 1-Real estate 1', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_onrgoed2', 'FIP: 2-Aanvullen bouwlagen en ruimten', 'Inventarisatie Vastgoed, tabblad Ruimten', 'FIP: 2-Real estate 2', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_organisatie', 'FIP: 3-Aanvullen organisatiestructuur', 'Inventarisatie Organisatiestructuur', 'FIP: 3-Organisation', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_perslid', 'FIP: 4-Aanvullen personen', 'Inventarisatie Personen', 'FIP: 4-Persons', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_mld', 'FIP: 5-Aanvullen servicedesk', 'Inventarisatie Meldingen', 'FIP: 5-Calls structure', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_ins', 'FIP: 6-Aanvullen objecten', 'Inventarisatie Objecten', 'FIP: 6-Objects', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_inspectie', 'FIP: 9-Aanvullen van inspectiedefinities', 'Inventarisatie Inspecties', 'FIP: 9-Inspections', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_ext_bedrijf', 'FIP: Aanvullen externe bedrijven', 'Inventarisatie Externe bedrijven, tabblad Externe Bedrijven', 'FIP: Companies/TCompanies', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_bedrijfadres', 'FIP: Aanvullen technische bedrijfadressen', 'Inventarisatie Externe bedrijven, tabblad Technische adressen', 'FIP: Companies/Tech adresses', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_contactpersoon','FIP: Aanvullen contactpersonen', 'Inventarisatie Externe bedrijven, tabblad Contactpersonen', 'FIP: Companies/Contact persons', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_onrgoed1', 'FIP: 1-Aanvullen districten t/m gebouwen', 'Inventarisatie Vastgoed, tabblad Locaties', 'FIP: 1-Real estate 1', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_onrgoed2', 'FIP: 2-Aanvullen bouwlagen en ruimten', 'Inventarisatie Vastgoed, tabblad Ruimten', 'FIP: 2-Real estate 2', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_organisatie', 'FIP: 3-Aanvullen organisatiestructuur', 'Inventarisatie Organisatiestructuur', 'FIP: 3-Organisation', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_perslid', 'FIP: 4-Aanvullen personen', 'Inventarisatie Personen', 'FIP: 4-Persons', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_mld', 'FIP: 5-Aanvullen servicedesk', 'Inventarisatie Meldingen', 'FIP: 5-Calls structure', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_ins', 'FIP: 6-Aanvullen objecten', 'Inventarisatie Objecten', 'FIP: 6-Objects', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_inspectie', 'FIP: 9-Aanvullen van inspectiedefinities', 'Inventarisatie Inspecties', 'FIP: 9-Inspections', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_ext_bedrijf', 'FIP: Aanvullen externe bedrijven', 'Inventarisatie Externe bedrijven, tabblad Externe Bedrijven', 'FIP: Companies/TCompanies', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_bedrijfadres', 'FIP: Aanvullen technische bedrijfadressen', 'Inventarisatie Externe bedrijven, tabblad Technische adressen', 'FIP: Companies/Tech adresses', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_contactpersoon','FIP: Aanvullen contactpersonen', 'Inventarisatie Externe bedrijven, tabblad Contactpersonen', 'FIP: Companies/Contact persons', 'For internal use only')
/* STANDAARD MENUOPTIES */
// De regel: vereis R-recht voor overzicht en W-recht voor mutatie
@@ -2634,9 +2659,11 @@ BEGIN
// ==================================== FRONTEND OPTIES ===========================================
DEF_MENUKOP(0, 'lcl_menu_fe_mld', 'fa-bell');
DEF_MENUITEM(0, 'lcl_menu_mld_fe_1' , '', 'MLD', 'appl/mld/mld_melding.asp?urole=fe', 1, 0, 'WEB_MLDUSE', 'W', '0', ''); // not default since 2024.2
DEF_MENUITEM(0, 'lcl_menu_mld_fe_1' , '', 'MLD', 'appl/mld/mld_melding.asp?urole=fe', 1, 0, 'WEB_MLDUSE', 'W', '0', ''); // not default since DB48/2024.2
DEF_MENUITEM(0, 'lcl_menu_mld_fe_2' , '', 'MLD', 'appl/mld/mld_melding.asp?urole=fe', 0, 0, 'WEB_MLDUSE', 'W', '0', '');
DEF_MENUITEM(0, 'lcl_menu_mld_fe_3' , '', 'MLD', 'appl/mld/mld_fe_menu.asp', 1, 0, 'WEB_MLDUSE', 'W', '1', ''); // default since 2024.2
// DEF_MENUITEM(0, 'lcl_menu_mld_fe_3' , '', 'MLD', 'appl/mld/mld_fe_menu.asp', 0, 0, 'WEB_MLDUSE', 'W', '0', ''); Removed in DB48/2024.2
DEF_MENUITEM(0, 'lcl_menu_mld_fe_4' , '', 'MLD', 'appl/mld/mld_fe_menu.asp', 1, 0, 'WEB_MLDUSE', 'W', '0', ''); // default in DB48/2024.2
DEF_MENUITEM(0, 'lcl_menu_mld_fe_5' , '', 'MLD', 'appl/mld/mld_fe_menu.asp?lvl=2', 0, 0, 'WEB_MLDUSE', 'W', '1', ''); // default since DB49/2024.3
DEF_MENUITEM(0, 'lcl_menu_mld_fe_overview' , '', 'MLD', 'appl/mld/mld_search.asp?urole=fe', 0, 0, 'WEB_MLDUSE', 'R', '1', '');
DEF_MENUITEM(0, 'lcl_menu_mld_fe_common_wishes' , '', 'MLD', 'appl/mld/mld_search.asp?urole=fe&public=1&autosearch=1', 0, 0, 'WEB_MLDUSE', 'R', '0', '');
@@ -2660,7 +2687,7 @@ DEF_MENUITEM(0, 'lcl_menu_bes_fe_overview' , '', 'BES', 'appl/bes/bes_searc
DEF_MENUKOP(0, 'lcl_menu_fe_other', 'fa-random');
DEF_MENUITEM(0, 'lcl_menu_faq_kennisbank_fe' , '', 'FAQ', 'appl/fac/fac_faq_search.asp?urole=fe', 0, 0, 'WEB_FAQUSE', 'R', '0', '');
DEF_MENUITEM(0, 'lcl_menu_prs_phonebook' , '', 'PRS', 'appl/prs/prs_phonebook.asp', 0, 0, 'WEB_PHONEB', 'R', '1', '');
DEF_MENUITEM(0, 'lcl_menu_fac_jobs_fe' , '', 'FAC', 'appl/fac/job_search.asp?urole=fe', 0, 0, 'WEB_MLDUSE', 'W', '1', '');
DEF_MENUITEM(0, 'lcl_menu_fac_jobs_fe' , '', 'FAC', 'appl/fac/job_search.asp?urole=fe', 0, 0, 'WEB_MLDUSE', 'W', '0', '');
DEF_MENUITEM(0, 'lcl_menu_fac_fiattering_fe' , '', 'FAC', 'appl/fac/fac_fiattering_search.asp', 0, 0, 'WEB_MLDUSE', 'R', '1', ''); /* autorisatie? */
DEF_MENUITEM(0, 'lcl_menu_fe_marktplaats' , '', 'MRK', 'appl/mrk/mrk_search.asp?urole=fe', 0, 0, 'WEB_MRKUSE', 'R', '0', '');
DEF_MENUITEM(0, 'lcl_menu_fe_myinfo' , '', 'FAC', 'appl/fac/fac_user_info.asp', 0, 0, 'WEB_PROFIL', 'R', '1', '');
@@ -2674,6 +2701,8 @@ DEF_MENUITEM(1, 'lcl_menu_cht_incoming' , '', 'CHT', 'appl/chat/ChatterA
DEF_MENUITEM(1, 'lcl_menu_mld_fo_overview' , '', 'MLD', 'appl/mld/mld_search.asp?urole=fo', 0, 0, 'WEB_MLDFOF', 'R', '1', '');
DEF_MENUITEM(1, 'lcl_menu_mld_fo_1' , '', 'MLD', 'appl/mld/mld_melding.asp?urole=fo', 1, 0, 'WEB_MLDFOF', 'W', '1', '');
DEF_MENUITEM(1, 'lcl_menu_mld_fo_2' , '', 'MLD', 'appl/mld/mld_melding.asp?urole=fo', 0, 0, 'WEB_MLDFOF', 'W', '0', '');
DEF_MENUITEM(1, 'lcl_menu_fac_jobs_templates_fo', '', 'MLD', 'appl/fac/job_search.asp?urole=fo&template=1', 0, 0, 'WEB_MLDFOF', 'W', '1', '');
DEF_MENUITEM(1, 'lcl_menu_mld_concepts' , '', 'MLD', 'appl/mld/mld_search.asp?concept=1&urole=fo', 0, 0, 'WEB_MLDMSU', 'R', '0', '');
DEF_MENUITEM(1, 'lcl_menu_mld_notes' , '', 'MLD', 'appl/mld/mld_show_note.asp?urole=fo', 0, 0, 'WEB_MLDFOF', 'R', '0', '');
DEF_MENUITEM(1, 'lcl_menu_mld_bo_call_center' , '', 'MLD', 'appl/mld/mld_search.asp?urole=bo', 0, 0, 'WEB_MLDBOF', 'R', '1', '');
DEF_MENUITEM(1, 'lcl_menu_mld_bo_accept' , '', 'MLD', 'appl/mld/mld_search.asp?accept=1', 0, 0, 'WEB_MLDBO3', 'R', '1', '');
@@ -2689,6 +2718,7 @@ DEF_MENUITEM(1, 'lcl_menu_mld_bo_mijnopdrachte' , '', 'MLD', 'appl/mld/opdr_sear
DEF_MENUITEM(1, 'lcl_menu_mld_bo_afmeldenopdra' , '', 'MLD', 'appl/mld/opdr_search.asp?urole=b2', 0, 0, 'WEB_ORDBO2', 'R', '1', '');
DEF_MENUITEM(1, 'lcl_menu_mld_bo_afm_opdr_ext' , '', 'MLD', 'appl/mld/opdr_search.asp?urole=b2', 0, 0, 'WEB_EXTORD', 'R', '1', '');
DEF_MENUITEM(1, 'lcl_menu_mld_mi' , '', 'MLD', 'appl/mld/mld_search.asp?urole=mi', 0, 0, 'WEB_MLDBAC', 'R', '1', '');
DEF_MENUITEM(1, 'lcl_menu_mld_melding_tag' , '', 'MLD', 'appl/mgt/mld_melding_tag.asp', 0, 0, 'WEB_MLDTAG', 'R', '1', '');
DEF_MENUKOP(1, 'lcl_fo_uren', 'fa-stopwatch');
DEF_MENUITEM(1, 'lcl_menu_mld_uren_fe' , '', 'MLD', 'appl/mld/opdr_uren_search.asp?urole=fe', 0, 0, 'WEB_UURUSE', 'R', '1', '');
@@ -2764,13 +2794,14 @@ DEF_MENUITEM(1, 'lcl_menu_ins_verbruik' , '', 'INS', 'appl/ins/ins_verbr
DEF_MENUITEM(1, 'lcl_menu_prs_bedrijf' , '', 'PRS', 'appl/prs/prs_bedrijf_search.asp', 0, 0, 'WEB_RELMAN', 'R', '1', '');
DEF_MENUITEM(1, 'lcl_menu_prs_contactpers' , '', 'PRS', 'appl/prs/prs_contactpersoon_search.asp', 0, 0, 'WEB_RELUSE', 'R', '1', '');
DEF_MENUITEM(1, 'lcl_menu_cnt_bo' , '', 'CNT', 'appl/cnt/cnt_search.asp?urole=bo', 0, 0, 'WEB_CNTMAN', 'R', '1', '');
DEF_MENUITEM(1, 'lcl_menu_fac_jobs_fo' , '', 'FAC', 'appl/fac/job_search.asp?urole=fo', 0, 0, 'WEB_MLDFOF', 'W', '1', '');
DEF_MENUITEM(1, 'lcl_menu_fac_reports' , '', 'FAC', 'appl/fac/fac_reportx_show.asp?mode=list', 0, 0, 'WEB_USRRAP', 'W', '1', '');
DEF_MENUKOP(1, 'lcl_mjobbeheer', 'fa-calendar-range');
DEF_MENUITEM(1, 'lcl_mjb_console' , '', 'INS', 'appl/mjb/mjb_search.asp?mode=1', 0, 0, 'WEB_CTRUSE', 'R', '0', '');
DEF_MENUITEM(1, 'lcl_mjb_console2' , '', 'INS', 'appl/mjb/mjb_search.asp?mode=2', 0, 0, 'WEB_CTRBOF', 'R', '0', '');
DEF_MENUITEM(1, 'lcl_mjb_console3' , '', 'INS', 'appl/mjb/mjb_search.asp?mode=3', 0, 0, 'WEB_CTRBOF', 'R', '0', '');
DEF_MENUITEM(1, 'lcl_menu_ctr_scenarios' , '', 'CTR', 'appl/mgt/ctr_scenario.asp', 0, 0, 'WEB_CTRSEN', 'R', '1', '');
DEF_MENUITEM(1, 'lcl_menu_ctr_scenarios' , '', 'CTR', 'appl/mgt/ctr_scenario.asp', 0, 0, 'WEB_CTRSEN', 'R', '0', '');
DEF_MENUKOP(1, 'lcl_fg', 'fa-map');
DEF_MENUITEM(1, 'lcl_menu_fg' , '', 'CAD', 'appl/cad/default.asp', 0, 0, 'WEB_CADUSE', 'R', '1', '');
@@ -2816,7 +2847,6 @@ DEF_MENUITEM(1, 'lcl_menu_msg_categories' , '', 'MSG', 'appl/mgt/fac_nieuw
// ==================================== APPLICATION MANAGEMENT OPTIES =============================
DEF_MENUKOP(2, 'lcl_facmgt_aut', 'fa-key');
DEF_MENUITEM(2, 'lcl_menu_fac_aut_edit_groep' , '', 'FAC', 'appl/mgt/fac_groep.asp?editmode=1', 0, 0, 'WEB_FACMSU', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_aut_groep' , '', 'FAC', 'appl/mgt/fac_groep.asp', 0, 0, 'WEB_FACMSU', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_aut_functie' , '', 'FAC', 'appl/mgt/fac_functie.asp', 0, 0, 'WEB_FACMSU', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_aut_edit_functie' , '', 'FAC', 'appl/mgt/fac_functie.asp?editmode=1', 0, 0, 'WEB_PRSMSU', 'W', '1', ''); // doet met FACAFAC meer
DEF_MENUITEM(2, 'lcl_menu_fac_aut_perslid' , '', 'FAC', 'appl/mgt/prs_perslid.asp', 0, 0, 'WEB_FACMSU', 'W', '1', '');
@@ -2829,13 +2859,14 @@ DEF_MENUKOP(2, 'lcl_facmgt_alg', 'fa-building');
DEF_MENUITEM(2, 'lcl_menu_alg_gebouwfuncties' , '', 'ALG', 'appl/mgt/alg_srtgebouw.asp', 0, 0, 'WEB_ALGMSU', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_ruimtefuncties' , '', 'ALG', 'appl/mgt/alg_srtruimte.asp', 0, 0, 'WEB_ALGMSU', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_terreinsoorten' , '', 'ALG', 'appl/mgt/alg_srtterreinsector.asp', 0, 0, 'WEB_ALGMSU', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_regiokenmerken' , '', 'ALG', 'appl/mgt/alg_kenmerk.asp?level=E', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_districtkenmerken', '', 'ALG', 'appl/mgt/alg_kenmerk.asp?level=D', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_locatiekenmerken' , '', 'ALG', 'appl/mgt/alg_kenmerk.asp?level=L', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_terreinkenmerken' , '', 'ALG', 'appl/mgt/alg_kenmerk.asp?level=T', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_gebouwkenmerken' , '', 'ALG', 'appl/mgt/alg_kenmerk.asp?level=G', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_verdiepkenmerken' , '', 'ALG', 'appl/mgt/alg_kenmerk.asp?level=V', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_ruimtekenmerken' , '', 'ALG', 'appl/mgt/alg_kenmerk.asp?level=R', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_kenmerkdomeinen' , '', 'ALG', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=ALG', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_alg_kenmerkdomeinen' , '', 'ALG', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=ALG', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_alg_setting' , '', 'ALG', 'appl/fac/fac_setting_search.asp?module=ALG', 0, 0, 'WEB_ALGMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_prs', 'fa-users');
@@ -2846,7 +2877,7 @@ DEF_MENUITEM(2, 'lcl_menu_prs_bedrijfkenmerken' , '', 'PRS', 'appl/mgt/prs_kenme
DEF_MENUITEM(2, 'lcl_menu_prs_afdelingskenmerke', '', 'PRS', 'appl/mgt/prs_kenmerk.asp?level=A', 0, 0, 'WEB_PRSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_prs_persoonskenmerken', '', 'PRS', 'appl/mgt/prs_kenmerk.asp?level=P', 0, 0, 'WEB_PRSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_prs_contactkenmerken' , '', 'PRS', 'appl/mgt/prs_kenmerk.asp?level=C', 0, 0, 'WEB_PRSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_prs_kenmerkdomeinen' , '', 'PRS', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=PRS', 0, 0, 'WEB_PRSMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_prs_kenmerkdomeinen' , '', 'PRS', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=PRS', 0, 0, 'WEB_PRSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_prs_setting' , '', 'PRS', 'appl/fac/fac_setting_search.asp?module=PRS', 0, 0, 'WEB_PRSMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_ins', 'fa-fire-extinguisher');
@@ -2857,12 +2888,13 @@ DEF_MENUITEM(2, 'lcl_menu_ctr_disciplines' , '', 'CTR', 'appl/mgt/ctr_disci
DEF_MENUITEM(2, 'lcl_menu_ins_controlemode' , '', 'INS', 'appl/mgt/ins_controlemode.asp', 0, 0, 'WEB_INSMGT', 'W', '1', ''); // je zou zeggen CTR, maar vast iets met ins_disciplines
DEF_MENUITEM(2, 'lcl_menu_ins_srtcontrole' , '', 'INS', 'appl/mgt/ins_srtcontrole.asp', 0, 0, 'WEB_INSMGT', 'W', '1', ''); // je zou zeggen CTR, maar vast iets met ins_disciplines
DEF_MENUITEM(2, 'lcl_menu_ins_kenmerken' , '', 'INS', 'appl/mgt/ins_kenmerk.asp', 0, 0, 'WEB_INSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_ins_taakkenmerken' , '', 'CTR', 'appl/mgt/ins_kenmerk.asp?niveau=T', 0, 0, 'WEB_CTRMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_ins_kenmerksoorten' , '', 'INS', 'appl/mgt/ins_srtkenmerk.asp', 0, 0, 'WEB_INSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_ins_kenmerkdomeinen' , '', 'INS', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=INS', 0, 0, 'WEB_INSMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_ins_kenmerkdomeinen' , '', 'INS', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=INS', 0, 0, 'WEB_INSMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_ins_setting' , '', 'INS', 'appl/fac/fac_setting_search.asp?module=INS', 0, 0, 'WEB_INSMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_mld', 'fa-desktop');
DEF_MENUITEM(2, 'lcl_menu_mld_vakgroeptypes' , '', 'MLD', 'appl/mgt/mld_srtdiscipline.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_vakgroeptypes' , '', 'MLD', 'appl/mgt/mld_srtdiscipline.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_vakgroepen' , '', 'MLD', 'appl/mgt/mld_discipline.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_stdmeldinggroep' , '', 'MLD', 'appl/mgt/mld_stdmeldinggroep.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_meldingen' , '', 'MLD', 'appl/mgt/mld_stdmelding.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
@@ -2870,14 +2902,16 @@ DEF_MENUITEM(2, 'lcl_menu_mld_behandelgroep' , '', 'MLD', 'appl/mgt/mld_behan
DEF_MENUITEM(2, 'lcl_menu_mld_meldbron' , '', 'MLD', 'appl/mgt/mld_meldbron.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_dienst_niveaus' , '', 'MLD', 'appl/mgt/mld_dienstniveau.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_afmeldteksten' , '', 'MLD', 'appl/mgt/mld_afmeldtekst.asp', 0, 0, 'WEB_MLDMSA', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_opdrachttypes' , '', 'MLD', 'appl/mgt/mld_typeopdr.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_opdrachttypes' , '', 'MLD', 'appl/mgt/mld_typeopdr.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_improdopdr' , '', 'MLD', 'appl/mgt/mld_impropdr.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_opdrkosten' , '', 'MLD', 'appl/mgt/mld_kosten.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_workflows' , '', 'MLD', 'appl/mgt/mld_workflow.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_jobs_templates' , '', 'MLD', 'appl/fac/job_search.asp?template=1', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_email_setting' , '', 'MLD', 'appl/mgt/fac_email_setting.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_kenmerken_m' , '', 'MLD', 'appl/mgt/mld_kenmerk.asp?niveau=M', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_kenmerken' , '', 'MLD', 'appl/mgt/mld_kenmerk.asp?niveau=O', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_kenmerksoorten' , '', 'MLD', 'appl/mgt/mld_srtkenmerk.asp', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_kenmerkdomeinen' , '', 'MLD', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=MLD', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_mld_kenmerkdomeinen' , '', 'MLD', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=MLD', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_mld_setting' , '', 'MLD', 'appl/fac/fac_setting_search.asp?module=MLD', 0, 0, 'WEB_MLDMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_res', 'fa-calendar');
@@ -2895,7 +2929,7 @@ DEF_MENUITEM(2, 'lcl_menu_res_opstellingen' , '', 'RES', 'appl/mgt/res_opste
DEF_MENUITEM(2, 'lcl_menu_res_perioden' , '', 'RES', 'appl/mgt/res_cyclus.asp', 0, 0, 'WEB_RESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_res_kenmerken' , '', 'RES', 'appl/mgt/res_kenmerk.asp', 0, 0, 'WEB_RESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_res_kenmerksoorten' , '', 'RES', 'appl/mgt/res_srtkenmerk.asp', 0, 0, 'WEB_RESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_res_kenmerkdomeinen' , '', 'RES', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=RES', 0, 0, 'WEB_RESMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_res_kenmerkdomeinen' , '', 'RES', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=RES', 0, 0, 'WEB_RESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_res_setting' , '', 'RES', 'appl/fac/fac_setting_search.asp?module=RES', 0, 0, 'WEB_RESMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_bes', 'fa-cart-plus');
@@ -2906,7 +2940,7 @@ DEF_MENUITEM(2, 'lcl_menu_bes_staffeltabel' , '', 'BES', 'appl/mgt/bes_staff
DEF_MENUITEM(2, 'lcl_menu_bes_kenmerken' , '', 'BES', 'appl/mgt/bes_kenmerkbestel.asp', 0, 0, 'WEB_BESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bes_itemkenmerken' , '', 'BES', 'appl/mgt/bes_kenmerk.asp', 0, 0, 'WEB_BESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bes_kenmerksoorten' , '', 'BES', 'appl/mgt/bes_srtkenmerk.asp', 0, 0, 'WEB_BESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bes_kenmerkdomeinen' , '', 'BES', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=BES', 0, 0, 'WEB_BESMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_bes_kenmerkdomeinen' , '', 'BES', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=BES', 0, 0, 'WEB_BESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bes_importeren' , '', 'BES', 'appl/mgt/fac_import_app.asp', 0, 0, 'WEB_BESMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bes_setting' , '', 'BES', 'appl/fac/fac_setting_search.asp?module=BES', 0, 0, 'WEB_BESMGT', 'W', '0', '');
@@ -2915,7 +2949,7 @@ DEF_MENUITEM(2, 'lcl_menu_cnt_contractsoorten' , '', 'CNT', 'appl/mgt/cnt_disci
DEF_MENUITEM(2, 'lcl_menu_cnt_termijnen' , '', 'CNT', 'appl/mgt/cnt_termijn.asp', 0, 0, 'WEB_CNTMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_cnt_kenmerken' , '', 'CNT', 'appl/mgt/cnt_kenmerk.asp', 0, 0, 'WEB_CNTMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_cnt_kenmerksoorten' , '', 'CNT', 'appl/mgt/cnt_srtkenmerk.asp', 0, 0, 'WEB_CNTMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_cnt_kenmerkdomeinen' , '', 'CNT', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=CNT', 0, 0, 'WEB_CNTMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_cnt_kenmerkdomeinen' , '', 'CNT', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=CNT', 0, 0, 'WEB_CNTMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_cnt_setting' , '', 'CNT', 'appl/fac/fac_setting_search.asp?module=CNT', 0, 0, 'WEB_CNTMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_fin', 'fa-euro-sign');
@@ -2928,7 +2962,7 @@ DEF_MENUITEM(2, 'lcl_menu_fin_profielen' , '', 'FIN', 'appl/mgt/fac_profi
DEF_MENUITEM(2, 'lcl_menu_fin_profiel_limieten' , '', 'FIN', 'appl/mgt/fac_profielwaarde.asp', 0, 0, 'WEB_FINMSU', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fin_btwtabellen' , '', 'FIN', 'appl/mgt/fin_btwtabel.asp', 0, 0, 'WEB_FINMSU', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fin_kenmerken' , '', 'FIN', 'appl/mgt/fin_kenmerk.asp', 0, 0, 'WEB_FINMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fin_kenmerkdomeinen' , '', 'FIN', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=FIN', 0, 0, 'WEB_FINMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_fin_kenmerkdomeinen' , '', 'FIN', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=FIN', 0, 0, 'WEB_FINMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fin_setting' , '', 'FIN', 'appl/fac/fac_setting_search.asp?module=FIN', 0, 0, 'WEB_FINMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_fg', 'fa-map');
@@ -2945,13 +2979,13 @@ DEF_MENUKOP(2, 'lcl_facmgt_bez', 'fa-user-plus');
DEF_MENUITEM(2, 'lcl_menu_bez_actie_groep' , '', 'BEZ', 'appl/mgt/bez_actie_groep.asp', 0, 0, 'WEB_BEZMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bez_acties' , '', 'BEZ', 'appl/mgt/bez_actie.asp', 0, 0, 'WEB_BEZMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bez_kenmerken' , '', 'BEZ', 'appl/mgt/bez_kenmerk.asp', 0, 0, 'WEB_BEZMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bez_kenmerkdomeinen' , '', 'BEZ', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=BEZ', 0, 0, 'WEB_BEZMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_bez_kenmerkdomeinen' , '', 'BEZ', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=BEZ', 0, 0, 'WEB_BEZMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_bez_setting' , '', 'BEZ', 'appl/fac/fac_setting_search.asp?module=BEZ', 0, 0, 'WEB_BEZMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_faq', 'fa-info-circle');
DEF_MENUITEM(2, 'lcl_menu_faq_catalogi' , '', 'FAQ', 'appl/mgt/faq_discipline.asp', 0, 0, 'WEB_FAQMSU', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_faq_kenmerk' , '', 'FAQ', 'appl/mgt/faq_kenmerk.asp', 0, 0, 'WEB_FAQMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_faq_kenmerkdomeinen' , '', 'FAQ', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=FAQ', 0, 0, 'WEB_FAQMGT', 'W', '1', '');
//DEF_MENUITEM(2, 'lcl_menu_faq_kenmerkdomeinen' , '', 'FAQ', 'appl/fac/fac_kenmerkdomein_search.asp?fkdmodule=FAQ', 0, 0, 'WEB_FAQMGT', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_faq_setting' , '', 'FAQ', 'appl/fac/fac_setting_search.asp?module=FAQ', 0, 0, 'WEB_FAQMGT', 'W', '0', '');
DEF_MENUKOP(2, 'lcl_facmgt_reports', 'fa-memo-circle-check');
@@ -2965,6 +2999,10 @@ DEF_MENUKOP(2, 'lcl_facmgt_overig', 'fa-cogs');
DEF_MENUITEM(2, 'lcl_menu_fac_bookmarks' , '', 'FAC', 'appl/fac/fac_bookmark_list.asp', 0, 0, 'WEB_HLPADM', 'R', '1', '');
DEF_MENUITEM(2, 'lcl_menu_cht_chatkanalen' , '', 'CHT', 'appl/mgt/cht_discipline.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_eigen_tabellen' , '', 'FAC', 'appl/mgt/fac_usrtab.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_kenmerkdomeinen' , '', 'FAC', 'appl/fac/fac_kenmerkdomein_search.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_prs_bedrijf_system' , '', 'FAC', 'appl/prs/prs_bedrijf_search.asp?intern=2', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_system_adresses' , '', 'FAC', 'appl/mgt/prs_bedrijfadres.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_xsledit' , '', 'FAC', 'appl/fac/fac_edit_xsl.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_jobs' , '', 'FAC', 'appl/fac/job_search.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_importfuncties' , '', 'FAC', 'appl/imp/imp_search.asp', 0, 0, 'WEB_IMPORT', 'W', '1', '');
@@ -2983,6 +3021,7 @@ DEF_MENUITEM(2, 'lcl_menu_fac_vrije_dagen' , '', 'FAC', 'appl/mgt/mld_vrije
DEF_MENUKOP( 2, 'lcl_facmgt_data', 'fa-file-circle-info');
DEF_MENUITEM(2, 'lcl_menu_fmstats' , '', 'FAC', 'appl/alg/alg_fm_stats.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_gdprstats' , '', 'FAC', 'appl/prs/prs_gdpr_stats.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_unusedstats' , '', 'FAC', 'appl/fac/fac_unused_stats.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_about' , '', 'FAC', 'appl/fac/about.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
DEF_MENUKOP(2, 'lcl_facmgt_dbmanagement', 'fa-shield-exclamation');
@@ -3010,6 +3049,7 @@ DEF_MENUENTRY(2, 99160, 'lcl_menu_cad_verify' , '', 'FAC', 'appl/cad/ca
DEF_MENUENTRY(2, 99170, 'lcl_menu_admtracking_search' , '', 'FAC', 'appl/fac/fac_admtracking_search.asp', 0, 0, 'WEB_FACTAB');
DEF_MENUENTRY(2, 99180, 'lcl_menu_mytracking' , '', 'FAC', 'appl/fac/fac_mytracking.asp', 0, 0, 'WEB_FACTAB');
DEF_MENUENTRY(2, 99190, 'lcl_menu_session' , '', 'FAC', 'appl/fac/fac_session.asp', 0, 0, 'WEB_FACTAB');
DEF_MENUENTRY(2, 99200, 'lcl_menu_get_exchange' , '', 'EXC', 'appl/api/exchange/default.asp', 0, 0, 'WEB_FACTAB');
DEF_MENUKOPV (2, 99210, 'lcl_facmgt_setup_direct', 'fa-table-cells'); // Facilitor-use only
DEF_MENUENTRY(2, 99220, 'lcl_menu_fac_anytable' , '', 'FAC', 'appl/mgt/user_tables.asp', 0, 0, 'WEB_FACTAB');

File diff suppressed because it is too large Load Diff

View File

@@ -1094,7 +1094,7 @@ FAC_LCL('hint.ins_tab_discipline.notify', 'Let op: om daadwerk
FAC_LCL('hint.ins_tab_discipline.notifycust', 'Let op: om daadwerkelijk te notificeren moeten ook de notificatie instellingen geconfigureerd zijn.', 'Please note: The notifications have to be configured in the section notifications.')
FAC_LCL('hint.ins_tab_discipline.notifybo', 'Indien geactiveerd, dan krijgen alle gebruikers met MLDBOF/MLDBO3-rechten voor deze vakgroep een notificatie als er een nieuwe melding is. Geadviseerd wordt deze functie alleen te gebruiken voor vakgroepen met enkele gebruikers die incidenteel meldingen ter behandeling aangeboden krijgen.', 'If activated, all users with MLDBOF/MLDBO3 rights for this subject group will be notified when there is a new call. It is recommended to use this feature only for disciplines with a few users who occasionally receive notifications for processing.')
FAC_LCL('hint.ins_tab_discipline.notifybhg', 'Indien aangevinkt, dan krijgen alle leden van het betreffende behandelteam een notificatie zodra een melding wordt toegekend aan het betreffende behandelteam. Voor deze notificatie is een behandelteaminrichting vereist.', 'If checked, then all members of the relevant back office team will receive a notification as soon as a call is assigned to the relevant back office team. A back office team setup is required for this notification.')
FAC_LCL('hint.ins_tab_discipline.notifybe', 'Indien aangevinkt, dan krijgt de actieve behandelaar een notificatie zodra deze gekozen is als actieve behandelaar bij een melding. Voor deze notificatie is een behandelteaminrichting vereist.', 'If ticked, the active practitioner will receive a notification as soon as it is chosen as active practitioner on a notification. A back office team setup is required for this notification.')
FAC_LCL('hint.ins_tab_discipline.notifybe', 'Indien aangevinkt, dan krijgt de behandelaar (MLDBE2) en de actieve behandelaar (MLDAB2) een notificatie zodra deze gekozen is als (actieve) behandelaar bij een melding. Voor de notificatie MLDAB2 is een behandelteaminrichting vereist.', 'If ticked, the practitioner (MLDBE2) and the active treatment practitioner (MLDAB2) will receive a notification as soon as they are chosen as the (active) practitioner for a notification. Notification MLDAB2 requires a back office team setup.')
FAC_LCL('hint.ins_tab_discipline.notifynob', 'Indien aangevinkt, dan krijgen personen die behandelaar worden van meldingen van deze vakgroep een notificatie. Let op: om daadwerkelijk te notificeren moeten ook de notificatie-instellingen zijn geconfigureerd.', 'If checked, persons who become handlers of notifications from this discipline will receive a notification. Please note that to actually notify, the notification settings must also be configured.')
FAC_LCL('hint.ins_tab_discipline.reminderdays', 'Kan worden gebruikt in combinatie met een notificatiejob. Op deze manier kan er bijvoorbeeld x dagen na het afronden van een melding een evaluatieformulier worden gestuurd naar de melder. Als de herinnering 3 dagen na het afmelden van de melding moet worden gestuurd, is de herinneringstijd 3 dagen.', 'Can be used in combination with a notification job. This way, an evaluation form can be sent to the notifier, for example, x days after the completion of a call. If the reminder is to be sent 3 days after the call is closed, the reminder time is 3 days.')
FAC_LCL('hint.ins_tab_discipline.orderlimit1', 'Opdrachten behorende bij deze vakgroep mogen door de Backoffice worden goedgekeurd tot het bedrag wat u hier invult. Het gaat hier om functionele goedkeuring. De financi<63>le goedkeuring gebeurt <20> afhankelijk van het profiel van de aanvrager <20> door de budgethouder.', 'Orders from this discipline need to be approved by the back office if the order is below the amount set here.')
@@ -1310,7 +1310,7 @@ FAC_LCL('hint.mld_opdr.startdate_range', '', '')
FAC_LCL('hint.mld_opdr.status', '', '')
FAC_LCL('hint.mld_opdr.tobeinvoiced', '', '')
FAC_LCL('hint.mld_opdr.vat', '', '')
FAC_LCL('hint.mld_srtkenmerk.attributetype', 'Het type waarvan deze kenmerksoort is, bijv. Karakter/Numeriek/Referentie', 'The type of the property, e.g. Character/Numeric/Reference.')
FAC_LCL('hint.mld_srtkenmerk.attributetype', 'Het type waarvan deze kenmerksoort is, bijv. Karakter/Numeriek/Referentie. Bekijk voor meer informatie de sectie Kenmerktypen op onze Help-pagina.', 'The type of the property, e.g. Character/Numeric/Reference.')
FAC_LCL('hint.mld_srtkenmerk.code', 'Een alternatieve code of alternatief nummer dat de gebruiker te zien krijgt.', 'An alternative code or number that is shown to the users.')
FAC_LCL('hint.mld_srtkenmerk.decimals', 'Optioneel voor kenmerktype Numeriek. Niet van toepassing op kenmerktypen Karakter en Referentie.', 'Optional for property type Numeric. Not applicable to property types Character and Reference.')
FAC_LCL('hint.mld_srtkenmerk.domain', 'Verplicht voor kenmerktype Referentie. Niet van toepassing op kenmerktypen Karakter en Numeriek.', 'Mandatory for property type Reference. Not applicable to property types Character and Numeric.')
@@ -1381,7 +1381,7 @@ FAC_LCL('hint.mld_stdmelding.sequence', 'Om eventueel een ra
FAC_LCL('hint.mld_stdmelding.service', 'Als hier een dienst is geselecteerd, dan wordt bij een eventuele opdracht de leverancierskeuze beperkt tot wat er in het onderdeel diensten is ingesteld.', 'If a service is selected, the suppliers/contractors list when creating an order is limited to those that have this service configured.')
FAC_LCL('hint.mld_stdmelding.showobject', 'Het plaatsniveau dat u hier selecteert, verplicht de gebruikers om tot en met dat niveau de plaatsgegevens in te vullen, voordat er objecten getoond worden. Is het niveau bijvoorbeeld verdieping, dan kan de gebruiker pas objecten selecteren wanneer het plaatsniveau tot en met verdieping is ingevuld. LET OP: dit niveau mag niet lager zijn dan het verplichte niveau onder het kopje <20>Behandeling<6E>.', 'The level that you select is the mandatory place that users need to fill in before objects are available for selection. If the level is floor, a user can start selecting objects after the floor field has been filled in. Please note: The level may not be lower than the level selected at <20>Handling<6E>.')
FAC_LCL('hint.mld_stdmelding.statusobjrequired', 'Hier kun je kiezen bij welke status een object verplicht is.', 'Here you can choose the status at which an object is required.')
FAC_LCL('hint.mld_stdmelding.subjectlist', 'Hier kan aangegeven worden of het onderwerp verplicht ingevuld moet worden, niet ingevuld moet worden, of optioneel ingevuld moet worden.', 'Here you can indicate whether the subject must be filled in, not filled in, or filled in optionally.')
FAC_LCL('hint.mld_stdmelding.subjectlist', 'Hier kan aangegeven worden of het onderwerp verplicht ingevuld moet worden, niet ingevuld moet worden, optioneel ingevuld moet worden of via AI moet worden gegenereerd.', 'Here you can indicate whether the subject must be filled in, not filled in, filled in optionally or automatically generated by AI.')
FAC_LCL('hint.mld_stdmelding.survey', 'Indien de module <20>Klanttevredenheidsonderzoek<65> in gebruik is, kan met dit veld aangegeven worden of de meldingen van deze meldingsoort meedoen.', 'If the customer satisfaction survey module is used, this field can be used to include or exclude this call from participating.')
FAC_LCL('hint.mld_stdmelding.symbolname', 'De naam van de ge<67>ploade afbeelding.', 'Name of the picture to be used.')
FAC_LCL('hint.mld_stdmelding.theme', 'Hiermee kan een Graphics-thema worden ingesteld. Beschik je over de Graphics-module, dan kun je grafisch een ruimte kiezen als je een melding maakt. In de plattegrond die dan wordt getoon, wordt ook het eventueel ingestelde thema getoond.', 'A Graphics theme can be set with this. If you have the Graphics module, you can graphically choose a room when you make a report. In the map that is then shown, the possibly set theme is also shown.')
@@ -1478,6 +1478,7 @@ FAC_LCL('hint.model_contracts.inccontracttype', '', '')
FAC_LCL('hint.model_contracts.incdepartment', '', '')
FAC_LCL('hint.model_contracts.incdescription', '', '')
FAC_LCL('hint.model_contracts.incenddate', '', '')
FAC_LCL('hint.ins_tab_discipline.options', 'Contracten kunnen nu automatisch worden verlengd. Zodra de rappeldatum is verstreken, wordt de einddatum van het contract automatisch aangepast met de gekozen termijn.', 'Contracts can now be renewed automatically. Once the report date has expired, the end date of the contract is automatically adjusted by the chosen term.')
FAC_LCL('hint.model_contracts.incfields', '', '')
FAC_LCL('hint.model_contracts.incincludes', '', '')
FAC_LCL('hint.model_contracts.incmodel', '', '')
@@ -1754,8 +1755,8 @@ FAC_LCL('hint.res_activiteit.duration', 'Bij het maken van e
FAC_LCL('hint.res_activiteit.foreign', '', '')
FAC_LCL('hint.res_activiteit.hasendtime', 'Geef hier aan of er een eindtijd geldt of niet.', 'Indicate here whether an end time applies or not.')
FAC_LCL('hint.res_activiteit.blocktimes', 'Dit veld wordt gebruikt om vaste tijdsintervallen voor reserveringen te configureren. Bijv. ochtend (07:00-12:30), middag (12:31-18:00) en hele dag (08:30-17:30). Staat dit ingesteld, dan wordt een gebruiker gedwongen om een van deze intervallen te kiezen en kan de gebruiker niet langer zelf tijden kiezen.', 'This field is used to configure fixed time intervals for reservations. E.g. morning (07:00-12:30), afternoon (12:31-18:00) and whole day (08:30-17:30). If set, a user is forced to choose one of these intervals and the user can no longer choose times.')
FAC_LCL('hint.res_activiteit.limitdays', 'Hier kan aangegeven worden tot hoe ver in de toekomst er gereserveerd kan worden. Er zijn 2 waarden: wat mag een frontend-reserveerder zelf, en wat mag er (door de Frontoffice) <20>berhaupt. Denk aan het reserveren van een werkplek tot 14 dagen in de toekomst, en een evenement tot een jaar. Deze begrenzingen zijn hard, welke reserveringsroute je ook kiest.', 'Here you can specify how far into the future reservations can be made. There are 2 values: what can a front-end reserver do themselves, and what can be done (by the front office) at all. Think of reserving a workplace up to 14 days in the future, and an event up to a year. These limits are hard, whatever reservation route you choose.')
FAC_LCL('hint.res_activiteit.limitdaysfe', 'Hier kan aangegeven worden tot hoe ver in de toekomst er gereserveerd kan worden. Er zijn 2 waarden: wat mag een frontend-reserveerder zelf, en wat mag er (door de Frontoffice) <20>berhaupt. Denk aan het reserveren van een werkplek tot 14 dagen in de toekomst, en een evenement tot een jaar. Deze begrenzingen zijn hard, welke reserveringsroute je ook kiest.', 'Here you can specify how far into the future reservations can be made. There are 2 values: what can a front-end reserver do themselves, and what can be done (by the front office) at all. Think of reserving a workplace up to 14 days in the future, and an event up to a year. These limits are hard, whatever reservation route you choose.')
FAC_LCL('hint.res_activiteit.limitdays', 'Hier kan aangegeven worden tot hoe ver in de toekomst er gereserveerd kan worden. Er zijn 2 waarden: wat mag een frontend-reserveerder zelf, en wat mag er (door de Frontoffice) <20>berhaupt. Denk aan het reserveren van een werkplek tot 14 dagen in de toekomst, en een evenement tot een jaar. Deze begrenzingen zijn hard, welke reserveringsroute je ook kiest. Bij deze waarde wordt rekening gehouden met de instelling <20> res_247organisation<6F>. Als met deze instelling res_247organisation is ingesteld dat de weekenden als vrije dagen worden beschouwd, dien je bijv. bij een maand vooruit boeken rekening te houden met het aantal werkdagen en niet alle dagen (werkdagen + weekenden).', 'Here you can specify how far into the future reservations can be made. There are 2 values: what can a front-end reserver do themselves, and what can be done (by the front office) at all. Think of reserving a workplace up to 14 days in the future, and an event up to a year. These limits are hard, whatever reservation route you choose.')
FAC_LCL('hint.res_activiteit.limitdaysfe', 'Hier kan aangegeven worden tot hoe ver in de toekomst er gereserveerd kan worden. Er zijn 2 waarden: wat mag een frontend-reserveerder zelf, en wat mag er (door de Frontoffice) <20>berhaupt. Denk aan het reserveren van een werkplek tot 14 dagen in de toekomst, en een evenement tot een jaar. Deze begrenzingen zijn hard, welke reserveringsroute je ook kiest. Bij deze waarde wordt rekening gehouden met de instelling <20> res_247organisation<6F>. Als met deze instelling res_247organisation is ingesteld dat de weekenden als vrije dagen worden beschouwd, dien je bijv. bij een maand vooruit boeken rekening te houden met het aantal werkdagen en niet alle dagen (werkdagen + weekenden).', 'Here you can specify how far into the future reservations can be made. There are 2 values: what can a front-end reserver do themselves, and what can be done (by the front office) at all. Think of reserving a workplace up to 14 days in the future, and an event up to a year. These limits are hard, whatever reservation route you choose.')
FAC_LCL('hint.res_activiteit.name', 'De naam van de activiteit, bijvoorbeeld Vergaderservice.', 'The name of the activity, for example Meeting service.')
FAC_LCL('hint.res_activiteit.image', 'Voer hier de naam van de afbeelding in.', 'You can enter the name of the image here.')
FAC_LCL('hint.res_activiteit.notfrontend', 'Indien aangevinkt, is de activiteit niet zichtbaar voor Frontend-gebruikers.', 'If checked, the activity is not visible to Frontend users.')

File diff suppressed because it is too large Load Diff

View File

@@ -33,6 +33,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
anonymize_period NUMBER := fac.safe_to_number (fac.getsetting ('anonymize_period'));
v_count NUMBER;
anonymize_mode NUMBER;
lcl_fac_anonymized fac_locale_xsl.fac_locale_xsl_tekst%TYPE := lcl.l('lcl_fac_anonymized');
-- Alle bestellingen waarvan de afwijsdatum, alles geleverd datum, verwerkingsdatum of annuleringsdatum tussen de startdatum en de einddatum liggen.
CURSOR c_bestelling
@@ -60,18 +61,17 @@ CREATE OR REPLACE PACKAGE BODY ano AS
WHERE fac_srtnotificatie_code = 'BESANO'))
ORDER BY b.bes_bestelling_key;
-- BES heeft nog geen anonimiseerbare kenmerken
--CURSOR c_bijlagen(p_refkey IN NUMBER)
--IS
-- SELECT b.fac_bijlagen_key
-- FROM fac_bijlagen b
-- , bes_kenmerk k
-- , bes_srtkenmerk s
-- WHERE k.bes_srtkenmerk_key = s.bes_srtkenmerk_key
-- AND k.bes_kenmerk_key = b.fac_bijlagen_kenmerk_key
-- AND BITAND(s.bes_srtkenmerk_systeem, 8) = 8
-- AND b.fac_bijlagen_module = 'BES'
-- AND b.fac_bijlagen_refkey = p_refkey;
CURSOR c_bijlagen(p_refkey IN NUMBER)
IS
SELECT b.fac_bijlagen_key
FROM fac_bijlagen b
, bes_kenmerk k
, bes_srtkenmerk s
WHERE k.bes_srtkenmerk_key = s.bes_srtkenmerk_key
AND k.bes_kenmerk_key = b.fac_bijlagen_kenmerk_key
AND BITAND(s.bes_srtkenmerk_systeem, 8) = 8
AND b.fac_bijlagen_module = 'BES'
AND b.fac_bijlagen_refkey = p_refkey;
BEGIN
IF p_einddatum > SYSDATE - anonymize_period + 1
@@ -102,7 +102,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
AND fac_tracking_refkey = rec_b.bes_bestelling_key
AND fac_tracking_oms IS NOT NULL;
-- Alle BES tracking verwijderen waar geen omschrijving in staat
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
DELETE FROM fac_tracking
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
@@ -129,20 +129,29 @@ CREATE OR REPLACE PACKAGE BODY ano AS
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);
-- Zet het verwijder-veld van alle bijlagen van bestellingen waarvan het &8 (BITAND) bit (anonimiseren)
-- van het bes_srtkenmerk.bes_srtkenmerk_systeem veld is gezet.
-- De scheduled functie utils/gen_schedular/gen_cleanup.js verwijderd dan binnenkort de bijlage echt
-- en ruimt dan ook het record in fac_bijlagen op.
-- BES heeft nog geen anonimiseerbare kenmerken
--FOR rec_fb in c_bijlagen(rec_b.bes_bestelling_key)
--LOOP
-- flx.deleteflexbijlage(rec_fb.fac_bijlagen_key);
--END LOOP;
FOR rec_fb in c_bijlagen(rec_b.bes_bestelling_key)
LOOP
flx.deleteflexbijlage(rec_fb.fac_bijlagen_key);
END LOOP;
END IF;
--IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
--THEN
--END IF;
IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
THEN
-- Anonimiseren van tekstvelden in de bestelling.
UPDATE bes_bestelling
SET bes_bestelling_opmerking = CASE WHEN bes_bestelling_opmerking IS NOT NULL THEN lcl_fac_anonymized END
, bes_bestelling_ordernr = CASE WHEN bes_bestelling_ordernr IS NOT NULL THEN lcl_fac_anonymized END
, bes_bestelling_plaats = CASE WHEN bes_bestelling_plaats IS NOT NULL THEN lcl_fac_anonymized END
, bes_bestelling_satisfaction_op = CASE WHEN bes_bestelling_satisfaction_op IS NOT NULL THEN lcl_fac_anonymized END
, bes_bestelling_lev_opm = CASE WHEN bes_bestelling_lev_opm IS NOT NULL THEN lcl_fac_anonymized END
, bes_bestelling_externnr = CASE WHEN bes_bestelling_externnr IS NOT NULL THEN lcl_fac_anonymized END
WHERE bes_bestelling_key = rec_b.bes_bestelling_key;
END IF;
-- Anonimiseren van de bestelling tracken.
fac.trackaction('#BESANO', rec_b.bes_bestelling_key, NULL, NULL, NULL);
@@ -169,7 +178,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
AND fac_tracking_refkey = rec_bo.bes_bestelopdr_key
AND fac_tracking_oms IS NOT NULL;
-- Alle BES tracking verwijderen waar geen omschrijving in staat
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
DELETE FROM fac_tracking
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
@@ -198,16 +207,26 @@ CREATE OR REPLACE PACKAGE BODY ano AS
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);
-- BES heeft nog geen anonimiseerbare kenmerken
--FOR rec_fb IN c_bijlagen(rec_bo.bes_bestelopdr_key)
--LOOP
-- flx.deleteflexbijlage(rec_fb.fac_bijlagen_key);
--END LOOP;
FOR rec_fb IN c_bijlagen(rec_bo.bes_bestelopdr_key)
LOOP
flx.deleteflexbijlage(rec_fb.fac_bijlagen_key);
END LOOP;
END IF;
--IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
--THEN
--END IF;
IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
THEN
-- Anonimiseren van tekstvelden in de bestelopdracht.
UPDATE bes_bestelopdr
SET bes_bestelopdr_opmerking = CASE WHEN bes_bestelopdr_opmerking IS NOT NULL THEN lcl_fac_anonymized END
, bes_bestelopdr_delivery_opmerk = CASE WHEN bes_bestelopdr_delivery_opmerk IS NOT NULL THEN lcl_fac_anonymized END
, bes_bestelopdr_externnr = CASE WHEN bes_bestelopdr_externnr IS NOT NULL THEN lcl_fac_anonymized END
WHERE bes_bestelopdr_key = rec_bo.bes_bestelopdr_key;
UPDATE bes_bestelopdr_item
SET bes_bestelopdr_item_opmerking = CASE WHEN bes_bestelopdr_item_opmerking IS NOT NULL THEN lcl_fac_anonymized END
WHERE bes_bestelopdr_key = rec_bo.bes_bestelopdr_key;
END IF;
-- Anonimiseren van de bestelopdracht tracken.
fac.trackaction('BES2AN', rec_bo.bes_bestelopdr_key, NULL, NULL, NULL);
@@ -288,7 +307,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
AND fac_tracking_refkey = rec_a.bez_afspraak_key
AND fac_tracking_oms IS NOT NULL;
-- Alle BEZ tracking verwijderen waar geen omschrijving in staat
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
DELETE FROM fac_tracking
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
@@ -329,7 +348,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
THEN
-- 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.
-- Daardoor wordt de lcl "Ganonimiseerd" in vele gevallen niet blijvend in de gastheer 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.
@@ -360,7 +379,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
WHERE bb.bez_afspraak_key = rec_a.bez_afspraak_key)
AND fac_tracking_oms IS NOT NULL;
-- Alle BEZ tracking verwijderen waar geen omschrijving in staat
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
DELETE FROM fac_tracking
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
@@ -407,39 +426,48 @@ CREATE OR REPLACE PACKAGE BODY ano AS
END;
PROCEDURE anonymizefin (p_startdatum IN DATE,
p_einddatum IN DATE)
p_einddatum IN DATE)
AS
anonymize_period NUMBER := fac.safe_to_number (fac.getsetting ('anonymize_period'));
v_count NUMBER;
anonymize_mode NUMBER;
lcl_fac_anonymized fac_locale_xsl.fac_locale_xsl_tekst%TYPE := lcl.l('lcl_fac_anonymized');
-- Alle facturen die afgewezen of verwerkt zijn in de periode tussen de startdatum en de einddatum.
CURSOR c_factuur
IS
SELECT f.fin_factuur_key
FROM fin_factuur f
WHERE (SELECT MAX(ft.fac_tracking_datum)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = f.fin_factuur_key
AND ft.fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_xmlnode = 'factuur'
AND fac_srtnotificatie_key != (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'FINANO')
)) BETWEEN p_startdatum AND p_einddatum
AND f.fin_factuur_statuses_key IN (1, 7)
AND NOT EXISTS
(SELECT ft.fac_tracking_key
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = f.fin_factuur_key
AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'FINANO'))
ORDER BY f.fin_factuur_key;
WITH
fin_tracking
AS
( SELECT fac_tracking_refkey,
MAX (fac_tracking_datum) max_tracking_datum
FROM fac_tracking
WHERE fac_srtnotificatie_key IN
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_xmlnode = 'factuur'
AND fac_srtnotificatie_key !=
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'FINANO'))
GROUP BY fac_tracking_refkey)
SELECT f.fin_factuur_key
FROM fin_factuur f, fin_tracking ft
WHERE f.fin_factuur_key = ft.fac_tracking_refkey
AND ft.max_tracking_datum BETWEEN p_startdatum AND p_einddatum
AND f.fin_factuur_statuses_key IN (1, 7)
AND NOT EXISTS
(SELECT ft.fac_tracking_key
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = f.fin_factuur_key
AND ft.fac_srtnotificatie_key =
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'FINANO'))
ORDER BY f.fin_factuur_key;
CURSOR c_bijlagen_factuur(p_refkey IN NUMBER)
IS
CURSOR c_bijlagen_factuur(p_refkey IN NUMBER)
IS
SELECT b.fac_bijlagen_key
FROM fac_bijlagen b
, fin_kenmerk k
@@ -449,6 +477,16 @@ CREATE OR REPLACE PACKAGE BODY ano AS
AND k.fin_kenmerk_type = 'F'
AND b.fac_bijlagen_module = 'FIN';
CURSOR c_bijlagen_factuur_note(p_refkey IN NUMBER)
IS
SELECT b.fac_bijlagen_key
FROM fac_bijlagen b
, fin_factuur_note n
WHERE b.fac_bijlagen_refkey = n.fin_factuur_note_key
AND b.fac_bijlagen_module = 'FINN'
AND b.fac_bijlagen_kenmerk_key = -1
AND n.fin_factuur_key = p_refkey;
BEGIN
IF p_einddatum > SYSDATE - anonymize_period + 1
THEN
@@ -461,6 +499,8 @@ CREATE OR REPLACE PACKAGE BODY ano AS
IF anonymize_mode > 0
THEN
DBMS_APPLICATION_INFO.SET_ACTION ('ANONYMIZE'); // Voorkomt eventueel triggers
v_count := 0;
FOR rec_f IN c_factuur
LOOP
@@ -478,7 +518,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
AND fac_tracking_refkey = rec_f.fin_factuur_key
AND fac_tracking_oms IS NOT NULL;
-- Alle FIN tracking verwijderen waar geen omschrijving in staat
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
DELETE FROM fac_tracking
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
@@ -491,6 +531,11 @@ CREATE OR REPLACE PACKAGE BODY ano AS
IF (BITAND(anonymize_mode, 2) = 2) -- notes
THEN
-- Verwijder alle bijlagen van notities van de melding.
FOR rec_nb IN c_bijlagen_factuur_note(rec_f.fin_factuur_key)
LOOP
flx.deleteflexbijlage(rec_nb.fac_bijlagen_key);
END LOOP;
-- Verwijder alle notities van de factuur.
DELETE FROM fin_factuur_note ffn
WHERE ffn.fin_factuur_key = rec_f.fin_factuur_key;
@@ -519,18 +564,11 @@ CREATE OR REPLACE PACKAGE BODY ano AS
IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
THEN
EXECUTE IMMEDIATE 'ALTER TRIGGER fin_t_fin_factuur_B_IU DISABLE';
BEGIN
-- Anonimiseren van tekstvelden in de factuur.
UPDATE fin_factuur
SET fin_factuur_opmerking = CASE WHEN fin_factuur_opmerking_afw IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, fin_factuur_opmerking_afw = CASE WHEN fin_factuur_opmerking_afw IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
WHERE fin_factuur_key = rec_f.fin_factuur_key;
EXCEPTION
WHEN OTHERS THEN
EXECUTE IMMEDIATE 'ALTER TRIGGER fin_t_fin_factuur_B_IU ENABLE';
END;
EXECUTE IMMEDIATE 'ALTER TRIGGER fin_t_fin_factuur_B_IU ENABLE';
-- Anonimiseren van tekstvelden in de factuur.
UPDATE fin_factuur
SET fin_factuur_opmerking = CASE WHEN fin_factuur_opmerking IS NOT NULL THEN lcl_fac_anonymized END
, fin_factuur_opmerking_afw = CASE WHEN fin_factuur_opmerking_afw IS NOT NULL THEN lcl_fac_anonymized END
WHERE fin_factuur_key = rec_f.fin_factuur_key;
END IF;
-- Anonimiseren van de factuur tracken.
@@ -543,7 +581,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
WHERE fin_factuur_key = rec_f.fin_factuur_key)
LOOP
--IF (BITAND(anonymize_mode, 1) = 1) -- tracking
--THEN -- Tracking van factuurregels gebeurd op factuur niveau.
--THEN -- Tracking van factuurregels gebeurd op factuur niveau.
--END IF;
--IF (BITAND(anonymize_mode, 2) = 2) -- notes
@@ -569,7 +607,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
THEN
-- Anonimiseren van tekstvelden in de factuurregels van de factuur.
UPDATE fin_factuurregel
SET fin_factuurregel_omschrijving = CASE WHEN fin_factuurregel_omschrijving IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
SET fin_factuurregel_omschrijving = CASE WHEN fin_factuurregel_omschrijving IS NOT NULL THEN lcl_fac_anonymized END
WHERE fin_factuurregel_key = rec_r.fin_factuurregel_key;
END IF;
@@ -594,6 +632,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
anonymize_period NUMBER := fac.safe_to_number (fac.getsetting ('anonymize_period'));
v_count NUMBER;
anonymize_mode NUMBER;
lcl_fac_anonymized fac_locale_xsl.fac_locale_xsl_tekst%TYPE := lcl.l('lcl_fac_anonymized');
-- Alle meldingen waarvan de afwijsdatum of verwerkingsdatum tussen de startdatum en de einddatum liggen.
CURSOR c_melding
@@ -647,6 +686,26 @@ CREATE OR REPLACE PACKAGE BODY ano AS
AND k.mld_kenmerk_niveau IN ('P','O')
AND b.fac_bijlagen_module = 'MLD';
CURSOR c_bijlagen_melding_note(p_refkey IN NUMBER)
IS
SELECT b.fac_bijlagen_key
FROM fac_bijlagen b
, mld_melding_note n
WHERE b.fac_bijlagen_refkey = n.mld_melding_note_key
AND b.fac_bijlagen_module = 'MLDN'
AND b.fac_bijlagen_kenmerk_key = -1
AND n.mld_melding_key = p_refkey;
CURSOR c_bijlagen_opdracht_note(p_refkey IN NUMBER)
IS
SELECT b.fac_bijlagen_key
FROM fac_bijlagen b
, mld_opdr_note n
WHERE b.fac_bijlagen_refkey = n.mld_opdr_note_key
AND b.fac_bijlagen_module = 'ORDN'
AND b.fac_bijlagen_kenmerk_key = -1
AND n.mld_opdr_key = p_refkey;
BEGIN
IF p_einddatum > SYSDATE - anonymize_period + 1
THEN
@@ -659,6 +718,8 @@ CREATE OR REPLACE PACKAGE BODY ano AS
IF anonymize_mode > 0
THEN
DBMS_APPLICATION_INFO.SET_ACTION ('ANONYMIZE'); // Voorkomt mld_t_mld_melding_B_IU
v_count := 0;
FOR rec_m IN c_melding
LOOP
@@ -676,7 +737,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
AND fac_tracking_refkey = rec_m.mld_melding_key
AND fac_tracking_oms IS NOT NULL;
-- Alle MLD tracking verwijderen waar geen omschrijving in staat
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
DELETE FROM fac_tracking
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
@@ -689,6 +750,11 @@ CREATE OR REPLACE PACKAGE BODY ano AS
IF (BITAND(anonymize_mode, 2) = 2) -- notes
THEN
-- Verwijder alle bijlagen van notities van de melding.
FOR rec_nb IN c_bijlagen_melding_note(rec_m.mld_melding_key)
LOOP
flx.deleteflexbijlage(rec_nb.fac_bijlagen_key);
END LOOP;
-- Verwijder alle notities van de melding.
DELETE FROM mld_melding_note mmn
WHERE mmn.mld_melding_key = rec_m.mld_melding_key;
@@ -718,23 +784,16 @@ CREATE OR REPLACE PACKAGE BODY ano AS
IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
THEN
EXECUTE IMMEDIATE 'ALTER TRIGGER mld_t_mld_melding_B_IU DISABLE';
BEGIN
-- Anonimiseren van tekstvelden in de melding.
UPDATE mld_melding
SET mld_melding_omschrijving = CASE WHEN mld_melding_omschrijving IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_melding_opmerking = CASE WHEN mld_melding_opmerking IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_melding_document = CASE WHEN mld_melding_document IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_melding_satisfaction_op = CASE WHEN mld_melding_satisfaction_op IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_melding_naam_ext = CASE WHEN mld_melding_naam_ext IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_melding_email_ext = CASE WHEN mld_melding_email_ext IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_melding_tel_ext = CASE WHEN mld_melding_tel_ext IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
SET mld_melding_omschrijving = CASE WHEN mld_melding_omschrijving IS NOT NULL THEN lcl_fac_anonymized END
, mld_melding_opmerking = CASE WHEN mld_melding_opmerking IS NOT NULL THEN lcl_fac_anonymized END
, mld_melding_document = CASE WHEN mld_melding_document IS NOT NULL THEN lcl_fac_anonymized END
, mld_melding_satisfaction_op = CASE WHEN mld_melding_satisfaction_op IS NOT NULL THEN lcl_fac_anonymized END
, mld_melding_naam_ext = CASE WHEN mld_melding_naam_ext IS NOT NULL THEN lcl_fac_anonymized END
, mld_melding_email_ext = CASE WHEN mld_melding_email_ext IS NOT NULL THEN lcl_fac_anonymized END
, mld_melding_tel_ext = CASE WHEN mld_melding_tel_ext IS NOT NULL THEN lcl_fac_anonymized END
WHERE mld_melding_key = rec_m.mld_melding_key;
EXCEPTION
WHEN OTHERS THEN
EXECUTE IMMEDIATE 'ALTER TRIGGER mld_t_mld_melding_B_IU ENABLE';
END;
EXECUTE IMMEDIATE 'ALTER TRIGGER mld_t_mld_melding_B_IU ENABLE';
END IF;
-- Anonimiseren van de melding tracken.
@@ -758,7 +817,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
AND fac_tracking_refkey = rec_o.mld_opdr_key
AND fac_tracking_oms IS NOT NULL;
-- Alle ORD tracking verwijderen waar geen omschrijving in staat
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
DELETE FROM fac_tracking
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
@@ -771,6 +830,11 @@ CREATE OR REPLACE PACKAGE BODY ano AS
IF (BITAND(anonymize_mode, 2) = 2) -- notes
THEN
-- Verwijder alle bijlagen van notities van de opdracht bij de melding.
FOR rec_nb IN c_bijlagen_opdracht_note(rec_o.mld_opdr_key)
LOOP
flx.deleteflexbijlage(rec_nb.fac_bijlagen_key);
END LOOP;
-- Verwijder alle notities van de opdrachten bij de melding.
DELETE FROM mld_opdr_note mon
WHERE mon.mld_opdr_key = rec_o.mld_opdr_key;
@@ -803,21 +867,21 @@ CREATE OR REPLACE PACKAGE BODY ano AS
THEN
-- Anonimiseren van tekstvelden in de opdrachten van de melding.
UPDATE mld_opdr
SET mld_opdr_omschrijving = CASE WHEN mld_opdr_omschrijving IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_opdr_werkzaamheden = CASE WHEN mld_opdr_werkzaamheden IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_opdr_contactpersoon = CASE WHEN mld_opdr_contactpersoon IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_opdr_opmerking_fiat = CASE WHEN mld_opdr_opmerking_fiat IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_opdr_opmerking = CASE WHEN mld_opdr_opmerking IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
SET mld_opdr_omschrijving = CASE WHEN mld_opdr_omschrijving IS NOT NULL THEN lcl_fac_anonymized END
, mld_opdr_werkzaamheden = CASE WHEN mld_opdr_werkzaamheden IS NOT NULL THEN lcl_fac_anonymized END
, mld_opdr_contactpersoon = CASE WHEN mld_opdr_contactpersoon IS NOT NULL THEN lcl_fac_anonymized END
, mld_opdr_opmerking_fiat = CASE WHEN mld_opdr_opmerking_fiat IS NOT NULL THEN lcl_fac_anonymized END
, mld_opdr_opmerking = CASE WHEN mld_opdr_opmerking IS NOT NULL THEN lcl_fac_anonymized END
WHERE mld_opdr_key = rec_o.mld_opdr_key;
-- Anonimiseren van tekstvelden in opdrachtregels van de melding.
UPDATE mld_opdr_materiaal
SET mld_opdr_materiaal_omschr = CASE WHEN mld_opdr_materiaal_omschr IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_opdr_materiaal_info = CASE WHEN mld_opdr_materiaal_info IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_opdr_materiaal_extra1 = CASE WHEN mld_opdr_materiaal_extra1 IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_opdr_materiaal_extra2 = CASE WHEN mld_opdr_materiaal_extra2 IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_opdr_materiaal_extra3 = CASE WHEN mld_opdr_materiaal_extra3 IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, mld_opdr_materiaal_extra4 = CASE WHEN mld_opdr_materiaal_extra4 IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
SET mld_opdr_materiaal_omschr = CASE WHEN mld_opdr_materiaal_omschr IS NOT NULL THEN lcl_fac_anonymized END
, mld_opdr_materiaal_info = CASE WHEN mld_opdr_materiaal_info IS NOT NULL THEN lcl_fac_anonymized END
, mld_opdr_materiaal_extra1 = CASE WHEN mld_opdr_materiaal_extra1 IS NOT NULL THEN lcl_fac_anonymized END
, mld_opdr_materiaal_extra2 = CASE WHEN mld_opdr_materiaal_extra2 IS NOT NULL THEN lcl_fac_anonymized END
, mld_opdr_materiaal_extra3 = CASE WHEN mld_opdr_materiaal_extra3 IS NOT NULL THEN lcl_fac_anonymized END
, mld_opdr_materiaal_extra4 = CASE WHEN mld_opdr_materiaal_extra4 IS NOT NULL THEN lcl_fac_anonymized END
WHERE mld_opdr_key = rec_o.mld_opdr_key;
END IF;
@@ -834,6 +898,12 @@ CREATE OR REPLACE PACKAGE BODY ano AS
END IF;
END LOOP; -- meldingen
END IF;
DBMS_APPLICATION_INFO.SET_ACTION (NULL);
EXCEPTION
WHEN OTHERS THEN
DBMS_APPLICATION_INFO.SET_ACTION (NULL);
END;
PROCEDURE anonymizeprs (p_startdatum IN DATE,
@@ -901,7 +971,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
AND fac_tracking_refkey = rec_p.prs_perslid_key
AND fac_tracking_oms IS NOT NULL;
-- Alle PRS tracking verwijderen waar geen omschrijving in staat
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
DELETE FROM fac_tracking
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
@@ -996,6 +1066,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
prs_old_employee VARCHAR2 (100) := lcl.l('lcl_prs_old_employee');
v_count NUMBER;
anonymize_mode NUMBER;
lcl_fac_anonymized fac_locale_xsl.fac_locale_xsl_tekst%TYPE := lcl.l('lcl_fac_anonymized');
-- Alle personen die tussen de startdatum en de einddatum verwijderd zijn.
CURSOR c_reservering
@@ -1052,6 +1123,8 @@ CREATE OR REPLACE PACKAGE BODY ano AS
IF anonymize_mode > 0
THEN
DBMS_APPLICATION_INFO.SET_ACTION ('ANONYMIZE'); // Voorkomt eventuele triggers
v_count := 0;
FOR rec_r IN c_reservering
LOOP
@@ -1069,7 +1142,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
AND fac_tracking_refkey = rec_r.res_rsv_ruimte_key
AND fac_tracking_oms IS NOT NULL;
-- Alle RES tracking verwijderen waar geen omschrijving in staat
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
-- en waarvoor er ook geen srtnotificatie-tekst bestaat.
DELETE FROM fac_tracking
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
@@ -1109,9 +1182,9 @@ CREATE OR REPLACE PACKAGE BODY ano AS
IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
THEN
UPDATE res_rsv_ruimte
SET res_rsv_ruimte_omschrijving = CASE WHEN res_rsv_ruimte_omschrijving IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, res_rsv_ruimte_opmerking = CASE WHEN res_rsv_ruimte_opmerking IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
, res_rsv_ruimte_telefoon = CASE WHEN res_rsv_ruimte_telefoon IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
SET res_rsv_ruimte_omschrijving = CASE WHEN res_rsv_ruimte_omschrijving IS NOT NULL THEN lcl_fac_anonymized END
, res_rsv_ruimte_opmerking = CASE WHEN res_rsv_ruimte_opmerking IS NOT NULL THEN lcl_fac_anonymized END
, res_rsv_ruimte_telefoon = CASE WHEN res_rsv_ruimte_telefoon IS NOT NULL THEN lcl_fac_anonymized END
WHERE res_rsv_ruimte_key = rec_r.res_rsv_ruimte_key;
END IF;
@@ -1133,6 +1206,8 @@ CREATE OR REPLACE PACKAGE BODY ano AS
PROCEDURE anonymizefull(p_flags NUMBER DEFAULT 65535)
AS
BEGIN
DBMS_APPLICATION_INFO.SET_ACTION ('ANONYMIZE'); // Voorkomt trigger bez_t_bez_afspraak_B_IU die in de weg kan zitten
-- Destructive obstrufication of personal data.
UPDATE prs_perslid
SET prs_perslid_naam = INITCAP (DBMS_RANDOM.string ('l', LENGTH (prs_perslid_naam)))
@@ -1177,9 +1252,18 @@ CREATE OR REPLACE PACKAGE BODY ano AS
END IF;
UPDATE prs_perslid
SET prs_perslid_apikey = 'TEST_' || dbms_utility.get_hash_value(prs_perslid_apikey , 0, power(2,24))
SET prs_perslid_apikey = 'TEST_' || dbms_utility.get_hash_value(prs_perslid_apikey, 0, power(2,24))
WHERE prs_perslid_apikey IS NOT NULL;
-- Deze weer kloppend maken voor als je lokaal gaat testen
UPDATE fac_setting
SET fac_setting_pvalue =
(SELECT prs_perslid_apikey
FROM prs_perslid
WHERE prs_perslid_oslogin = '_PUTORDERS')
WHERE fac_setting_pvalue IS NOT NULL
AND fac_setting_name = 'puo_fclt_web_apikey';
DELETE FROM fac_imp_perslid;
-- Indien mogelijk de naam van contactpersoon overnemen van prs_perslid.
@@ -1225,24 +1309,16 @@ CREATE OR REPLACE PACKAGE BODY ano AS
SET prs_contactpersoon_email= 'EC' || TO_CHAR(prs_contactpersoon_key) || '@notexist.facilitor.nl'
WHERE prs_contactpersoon_email IS NOT NULL;
BEGIN
EXECUTE IMMEDIATE 'ALTER TRIGGER bez_t_bez_afspraak_B_IU DISABLE';
UPDATE bez_afspraak
SET bez_afspraak_gastheer = (SELECT SUBSTR(prs_perslid_naam_full,1,50)
FROM prs_v_perslid_fullnames_all
WHERE prs_perslid_key = bez_afspraak_host_key
)
WHERE bez_afspraak_host_key IS NOT NULL;
UPDATE bez_afspraak
SET bez_afspraak_gastheer = (SELECT SUBSTR(prs_perslid_naam_full,1,50)
FROM prs_v_perslid_fullnames_all
WHERE prs_perslid_key = bez_afspraak_host_key
)
WHERE bez_afspraak_host_key IS NOT NULL;
UPDATE bez_afspraak
SET bez_afspraak_gastheer = INITCAP (DBMS_RANDOM.string ('l', LENGTH (bez_afspraak_gastheer)))
WHERE bez_afspraak_host_key IS NULL;
EXECUTE IMMEDIATE 'ALTER TRIGGER bez_t_bez_afspraak_B_IU ENABLE';
EXCEPTION
WHEN OTHERS THEN
EXECUTE IMMEDIATE 'ALTER TRIGGER bez_t_bez_afspraak_B_IU ENABLE';
END;
UPDATE bez_afspraak
SET bez_afspraak_gastheer = INITCAP (DBMS_RANDOM.string ('l', LENGTH (bez_afspraak_gastheer)))
WHERE bez_afspraak_host_key IS NULL;
UPDATE bez_bezoekers
SET bez_afspraak_naam = UPPER(SUBSTR(bez_afspraak_naam,1,1)) || '. Bezoeker'
@@ -1254,6 +1330,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
WHERE bez_afspraak_bedrijf IS NOT NULL
AND bez_afspraak_bedrijf <> 'Anoniem';
-- Alleen de externe bedrijven
UPDATE prs_bedrijf
SET prs_bedrijf_naam = ano.naam(prs_bedrijf_naam, 10)
, prs_bedrijf_post_adres = ano.adres(prs_bedrijf_post_adres)
@@ -1268,7 +1345,8 @@ CREATE OR REPLACE PACKAGE BODY ano AS
, prs_bedrijf_email = ano.email(prs_bedrijf_email)
, prs_bedrijf_contact_persoon = ano.naam(prs_bedrijf_contact_persoon)
, prs_bedrijf_contact_telefoon = ano.telefoon(prs_bedrijf_contact_telefoon)
, prs_bedrijf_contact_fax = ano.telefoon(prs_bedrijf_contact_fax);
, prs_bedrijf_contact_fax = ano.telefoon(prs_bedrijf_contact_fax)
WHERE prs_bedrijf_intern IS NULL;
UPDATE prs_bedrijfadres
SET prs_bedrijfadres_url = ano.email(prs_bedrijfadres_url)
@@ -1296,17 +1374,10 @@ CREATE OR REPLACE PACKAGE BODY ano AS
, mld_adres_telefoon = ano.telefoon(mld_adres_telefoon)
, mld_adres_email = ano.email(mld_adres_email);
BEGIN
EXECUTE IMMEDIATE 'ALTER TRIGGER mld_t_mld_melding_B_IU DISABLE';
UPDATE mld_melding
SET mld_melding_naam_ext = ano.naam(mld_melding_naam_ext)
, mld_melding_email_ext = ano.email(mld_melding_email_ext)
, mld_melding_tel_ext = ano.telefoon(mld_melding_tel_ext);
EXECUTE IMMEDIATE 'ALTER TRIGGER mld_t_mld_melding_B_IU ENABLE';
EXCEPTION
WHEN OTHERS THEN
EXECUTE IMMEDIATE 'ALTER TRIGGER mld_t_mld_melding_B_IU ENABLE';
END;
UPDATE mld_melding
SET mld_melding_naam_ext = ano.naam(mld_melding_naam_ext)
, mld_melding_email_ext = ano.email(mld_melding_email_ext)
, mld_melding_tel_ext = ano.telefoon(mld_melding_tel_ext);
UPDATE mld_disc_params
SET mld_disc_params_emailnw1 = ano.email(mld_disc_params_emailnw1)
@@ -1320,14 +1391,8 @@ CREATE OR REPLACE PACKAGE BODY ano AS
WHERE mld_ins_discipline_key IN (SELECT ins_discipline_key
FROM mld_discipline);
BEGIN
EXECUTE IMMEDIATE 'ALTER TRIGGER mld_t_mld_opdr_B_IU DISABLE';
ano.table_column('mld_opdr', 'mld_opdr_contactpersoon', 'naam');
EXECUTE IMMEDIATE 'ALTER TRIGGER mld_t_mld_opdr_B_IU ENABLE';
EXCEPTION
WHEN OTHERS THEN
EXECUTE IMMEDIATE 'ALTER TRIGGER mld_t_mld_opdr_B_IU ENABLE';
END;
ano.table_column('mld_opdr', 'mld_opdr_contactpersoon', 'naam');
ano.table_column('fin_verkoopfactuur', 'prs_debiteur_naam', 'naam');
ano.table_column('alg_gebouw', 'alg_gebouw_email', 'email');
ano.table_column('alg_locatie', 'alg_locatie_email', 'email');
@@ -1342,6 +1407,12 @@ CREATE OR REPLACE PACKAGE BODY ano AS
ano.table_column('prs_contactpersoon', 'prs_contactpersoon_telefoon_2', 'telefoon');
ano.table_column('prs_perslid', 'prs_perslid_telefoonnr', 'telefoon');
ano.table_column('prs_perslid', 'prs_perslid_mobiel', 'telefoon');
DBMS_APPLICATION_INFO.SET_ACTION (NULL);
// Onderstaande heeft niets met anonimiseren te maken maar anonymizefull draait nogal eens
// na een import en dan is het altijd fijn om de mld_t_uitvoertijd te herstellen
adm.fix_mld_t_uitvoertijd();
END;
PROCEDURE anonymize (p_startdatum IN DATE,

File diff suppressed because it is too large Load Diff

View File

@@ -91,49 +91,53 @@
o_ktable_kshowexpr OUT VARCHAR2
)
AS
l_module VARCHAR2 (3);
l_module VARCHAR2 (4);
BEGIN
l_module := pmodule;
o_kvtable_kniveau := NULL;
CASE
WHEN pmodule = 'ALG'
THEN o_kvtable := 'alg_onrgoedkenmerk';
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';
THEN o_kvtable := 'bez_kenmerkwaarde';
o_kvtable_refkey := 'bez_bezoekers_key';
WHEN pmodule = 'BES'
THEN o_kvtable := 'bes_kenmerkbestell';
THEN o_kvtable := 'bes_kenmerkbestell';
o_kvtable_refkey := 'bes_bestelling_key';
WHEN pmodule = 'CNT'
THEN o_kvtable := 'cnt_kenmerkcontract';
THEN o_kvtable := 'cnt_kenmerkcontract';
o_kvtable_refkey := 'cnt_contract_key';
WHEN pmodule = 'FAQ'
THEN o_kvtable := 'faq_kenmerkwaarde';
THEN o_kvtable := 'faq_kenmerkwaarde';
o_kvtable_refkey := 'fac_faq_key';
WHEN pmodule = 'FIN'
THEN o_kvtable := 'fin_kenmerkfactuur';
THEN o_kvtable := 'fin_kenmerkfactuur';
o_kvtable_refkey := 'fin_factuur_key';
WHEN pmodule = 'FINR'
THEN o_kvtable := 'fin_kenmerkfactregel';
o_kvtable_refkey := 'fin_factuurregel_key';
l_module := 'FIN';
WHEN pmodule = 'CIL' OR pmodule = 'SLE'
THEN o_kvtable := 'ins_kenmerkdeel';
THEN o_kvtable := 'ins_kenmerkdeel';
o_kvtable_refkey := 'ins_deel_key';
WHEN pmodule = 'INS'
THEN o_kvtable := 'ins_kenmerkdeel';
THEN o_kvtable := 'ins_kenmerkdeel';
o_kvtable_refkey := 'ins_deel_key';
WHEN pmodule = 'MLD'
THEN o_kvtable := 'mld_kenmerkmelding';
THEN o_kvtable := 'mld_kenmerkmelding';
o_kvtable_refkey := 'mld_melding_key';
WHEN pmodule = 'OPD'
THEN o_kvtable := 'mld_kenmerkopdr';
THEN o_kvtable := 'mld_kenmerkopdr';
o_kvtable_refkey := 'mld_opdr_key';
l_module := 'MLD';
WHEN pmodule = 'PRS'
THEN o_kvtable := 'prs_kenmerklink';
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';
THEN o_kvtable := 'res_kenmerkwaarde';
o_kvtable_refkey := 'res_rsv_ruimte_key';
END CASE;
IF l_module = 'RES'
@@ -165,7 +169,7 @@
l_kcolumnname_kkey VARCHAR2 (30);
l_kcolumnname_delete VARCHAR2 (30);
l_kcolumnname_showexpr VARCHAR2 (30);
l_module VARCHAR2 (3);
l_module VARCHAR2 (4);
BEGIN
IF p_optional = 1 AND p_ref_key IS NULL
THEN
@@ -388,7 +392,7 @@
p_waarde IN VARCHAR2,
p_multi IN NUMBER DEFAULT 0)
AS
l_module VARCHAR2 (3);
l_module VARCHAR2 (4);
l_sql_kenm VARCHAR2 (4500);
l_sql_upsert VARCHAR2 (4500);
l_rowsprocessed NUMBER DEFAULT 0;
@@ -464,7 +468,7 @@
p_niveau IN VARCHAR2,
p_waardekey IN NUMBER DEFAULT NULL)
AS
l_module VARCHAR2 (3);
l_module VARCHAR2 (4);
l_sql_delete VARCHAR2 (4500);
l_rowsprocessed NUMBER DEFAULT 0;
l_cursor_delete INTEGER DEFAULT DBMS_SQL.open_cursor;
@@ -510,7 +514,7 @@
FUNCTION getflexexprtype (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER) RETURN VARCHAR2
IS
l_module VARCHAR2 (3);
l_module VARCHAR2 (4);
l_sql_expr VARCHAR2 (4500);
l_kenmerk_tablename VARCHAR2 (30);
l_kenmval_tablename VARCHAR2 (30);
@@ -545,7 +549,7 @@
FUNCTION getflexexpression (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER) RETURN VARCHAR2
IS
l_module VARCHAR2 (3);
l_module VARCHAR2 (4);
l_sql_expr VARCHAR2 (4500);
l_kenmerk_tablename VARCHAR2 (30);
l_kenmval_tablename VARCHAR2 (30);
@@ -571,7 +575,7 @@
FUNCTION getflexshowexpr (pmodule IN VARCHAR2,
p_kenmerk_key IN NUMBER) RETURN VARCHAR2
IS
l_module VARCHAR2 (3);
l_module VARCHAR2 (4);
l_sql_expr VARCHAR2 (4500);
l_kenmerk_tablename VARCHAR2 (30);
l_kenmval_tablename VARCHAR2 (30);
@@ -641,7 +645,7 @@
END;
PROCEDURE evaluateflexexpressions (pmodule IN VARCHAR2, prefkey IN NUMBER, puserkey IN NUMBER, psavetodb IN NUMBER)
AS
l_module VARCHAR2 (3);
l_module VARCHAR2 (4);
l_sql_exprval VARCHAR2 (4500);
l_rowsprocessed NUMBER DEFAULT 0;
l_cursor_exprval NUMBER; -- INTEGER DEFAULT DBMS_SQL.open_cursor;
@@ -771,7 +775,8 @@
'Error binding flex-expression ' || pmodule|| ' kkey:' || expr.fac_kenmwaarden_kenmerk_key
|| ' type: ' || l_kenmerktype || ' val: ' || l_kenmerkwaarde
|| CHR(10) || SQLERRM
|| CHR(10) || l_sql_exprval);
|| CHR(10) || l_sql_exprval
|| CHR(10) || 'Original: ' || l_expr);
END;
END LOOP;
BEGIN
@@ -782,7 +787,8 @@
-20001,
'Error executing flex-expression ' || pmodule|| ' kkey:' || expr.fac_kenmwaarden_kenmerk_key
|| CHR(10) || SQLERRM
|| CHR(10) || l_sql_exprval);
|| CHR(10) || l_sql_exprval
|| CHR(10) || 'Original: ' || l_expr);
END;
IF expr.fac_kenmwaarden_kenmerktype = 'N'
THEN

178
FAC/FAC_PACTSK.SRC Normal file
View File

@@ -0,0 +1,178 @@
/* $Revision$
* $Id$
*/
/* FAC_PACTSK
*
* Contains all functions for tasker.
*
*/
/* Als tijdens een upgrade de PROCEDURE waittask loopt dan 'hangt' de package
recreate totdat de timeout van waittask optreedt (max 60 seconde).
Door hier even een willekeurige taak te starten eindigt waittask even
en hebben wij de kans te upgraden.
Van de PUTORDERS taak weten we dat het vrij onschuldig is als die een
keer wordt gestart zonder dat er eigenlijk iets te doen is.
In omgevingen waar de tasker niet draait zal geen fac_task record zijn
en dan doet dit statement ook niets.
*/
UPDATE fac_task
SET fac_task_nextrun = SYSDATE
WHERE fac_task_key =
(SELECT MIN (fac_task_key)
FROM fac_task tt, fac_cust tsko
WHERE tt.fac_cust_key = tsko.fac_cust_key
AND fac_cust_enabled > 0
AND BITAND (fac_task_flags, 1) = 1
AND fac_task_code = 'PUTORDERS');
-- Zodat de externe tasker het ziet:
COMMIT;
CREATE OR REPLACE PACKAGE tsk
AS
PROCEDURE registercust (p_customerid VARCHAR2 DEFAULT NULL,
p_schema VARCHAR2 DEFAULT NULL);
PROCEDURE registertask (p_taskcode VARCHAR2,
p_customerid VARCHAR2 DEFAULT NULL);
PROCEDURE starttask (p_taskcode VARCHAR2,
p_nextrun DATE DEFAULT SYSDATE,
p_customerid VARCHAR2 DEFAULT NULL);
PROCEDURE waittask (pinterval NUMBER DEFAULT 5,
ptimeout NUMBER DEFAULT 300);
END tsk;
/
CREATE OR REPLACE PACKAGE BODY tsk
AS
PROCEDURE registercust (p_customerid VARCHAR2 DEFAULT NULL,
p_schema VARCHAR2 DEFAULT NULL)
AS
tsk_master_schema VARCHAR(32);
custid fac_version.fac_version_cust%TYPE;
selfid fac_version.fac_version_cust%TYPE;
fac_schema fac_version.fac_version_schema%TYPE;
currentdb_schema VARCHAR2 (64);
tsksql VARCHAR2 (4000);
BEGIN
SELECT fac_version_cust,
fac_version_schema
INTO selfid,
fac_schema
FROM fac_version;
custid := COALESCE(p_customerid, selfid);
tsk_master_schema := fac.getsetting ('tsk_master_schema');
currentdb_schema := SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA');
IF tsk_master_schema IS NULL OR tsk_master_schema = '*SELF*' OR tsk_master_schema = currentdb_schema
THEN -- zelf oplossen
BEGIN
INSERT INTO fac_cust(fac_cust_customerid, fac_cust_schema)
VALUES(custid, COALESCE(p_schema, fac_schema));
EXCEPTION
WHEN DUP_VAL_ON_INDEX
THEN
NULL;
END;
-- Schema bijwerken
UPDATE fac_cust
SET fac_cust_schema = COALESCE(p_schema, fac_schema)
WHERE fac_cust_customerid = custid;
ELSE -- Remote register
tsksql := 'BEGIN ' || tsk_master_schema || '.tsk.registercust(:custid, :schema); END;';
EXECUTE IMMEDIATE tsksql USING selfid, fac_schema;
END IF;
END;
PROCEDURE registertask (p_taskcode VARCHAR2,
p_customerid VARCHAR2 DEFAULT NULL)
AS
tsk_master_schema VARCHAR(32);
selfid fac_version.fac_version_cust%TYPE;
tsksql VARCHAR2 (4000);
currentdb_schema VARCHAR2 (64);
BEGIN
SELECT fac_version_cust INTO selfid FROM fac_version;
tsk_master_schema := fac.getsetting ('tsk_master_schema');
currentdb_schema := SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA');
IF tsk_master_schema IS NULL OR tsk_master_schema = '*SELF*' OR tsk_master_schema = currentdb_schema
THEN -- zelf oplossen
BEGIN
INSERT INTO fac_task(fac_cust_key, fac_task_code)
SELECT fac_cust_key, p_taskcode
FROM fac_cust
WHERE fac_cust_customerid = COALESCE(p_customerid, selfid);
EXCEPTION
WHEN DUP_VAL_ON_INDEX
THEN
NULL;
END;
ELSE -- start remote tasker
tsksql := 'BEGIN ' || tsk_master_schema || '.tsk.registertask(:taskcode, :custid); END;';
EXECUTE IMMEDIATE tsksql USING p_taskcode, selfid;
END IF;
END;
-- veronderstelt dat taak al correct is geregistreerd
PROCEDURE starttask (p_taskcode VARCHAR2,
p_nextrun DATE DEFAULT SYSDATE,
p_customerid VARCHAR2 DEFAULT NULL)
AS
tsk_master_schema VARCHAR(32);
selfid fac_version.fac_version_cust%TYPE;
tsksql VARCHAR2 (4000);
currentdb_schema VARCHAR2 (64);
BEGIN
SELECT fac_version_cust INTO selfid FROM fac_version;
tsk_master_schema := fac.getsetting ('tsk_master_schema');
currentdb_schema := SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA');
IF tsk_master_schema IS NULL OR tsk_master_schema = '*SELF*' OR tsk_master_schema = currentdb_schema
THEN -- zelf oplossen
UPDATE fac_task
SET fac_task_nextrun = fac.safe_LEAST (p_nextrun, fac_task_nextrun)
WHERE fac_task_code = p_taskcode
AND fac_cust_key = (SELECT fac_cust_key
FROM fac_cust
WHERE fac_cust_customerid = COALESCE(p_customerid, selfid));
ELSE -- start remote tasker
tsksql := 'BEGIN ' || tsk_master_schema || '.tsk.starttask(:taskcode, :nextrun, :custid); END;';
EXECUTE IMMEDIATE tsksql USING p_taskcode, p_nextrun, selfid;
END IF;
END;
-- Keert terug als er iets interessants in fac_task staat
-- of als timeout is verstreken
PROCEDURE waittask (pinterval NUMBER DEFAULT 5,
ptimeout NUMBER DEFAULT 300)
AS
timeend DATE;
firsttask DATE;
BEGIN
timeend := SYSDATE + ptimeout / 60/60/24;
WHILE timeend > SYSDATE
LOOP
SELECT MIN (fac_task_nextrun)
INTO firsttask
FROM fac_task tt, fac_cust tsko
WHERE tt.fac_cust_key = tsko.fac_cust_key
AND fac_cust_enabled > 0
AND fac_task_nextrun <= SYSDATE
AND BITAND (fac_task_flags, 1) = 1;
IF firsttask <= SYSDATE
THEN
RETURN;
END IF;
DBMS_SESSION.SLEEP(pinterval); -- Dit maakt dat in de Oracle statistics allerlei timer events
-- hoog scoren in 'Top 5 Timed Events' Dat is verder niet erg.
END LOOP;
END;
END tsk;
/
-- tsk_master_schema needs:
-- GRANT EXECUTE ON tsk TO PUBLIC
REGISTERRUN('$Id$')

File diff suppressed because it is too large Load Diff

View File

@@ -55,6 +55,8 @@ 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;
CREATE SEQUENCE fac_s_fac_layout_key MINVALUE 100;
CREATE SEQUENCE fac_s_fac_cust_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_task_key MINVALUE 1;
-- CREATE SEQUENCE fac_s_fac_queue_key MINVALUE 1;
-- Some free to use sequence to generate unique and sequential numbers

View File

@@ -19,7 +19,7 @@ CREATE GLOBAL TEMPORARY TABLE tmp_set (
fac_setting_type
VARCHAR2(32) NOT NULL,
fac_setting_default
VARCHAR2(1024),
VARCHAR2(4000),
fac_setting_description
VARCHAR2(250) UNIQUE NOT NULL,
fac_setting_comment
@@ -47,15 +47,11 @@ COMMIT;
WHENEVER SQLERROR EXIT;
BEGIN
-- Unused; remove in 2024.3
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'mobile_imageportal' , 'boolean' , 'true' , '[UNUSED] Use the fancy mobile icon portal (true) or text portal (false)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_melding_actiecode' , 'number' , '1' , '[UNUSED] Use active backoffice/frontend flow')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'udr_graph_default_json' , 'string' , '' , '[UNUSED] Default json options for report graphs (string!)')
-- Unused; remove in 2025.3
-- \Unused
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_otap' , 'string' , 'P' , 'OTAP environment. custenv.wsc overrule only')
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_portalert_XD' , 'string' , '', , 'Hot news text on portal Cross Domain!')
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'forum_secret' , 'string' , 'rQf1yKO1VWP4xm3iGef1WgzFo5LPKBEz', 'Forum jwt secret (future use)')
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'helppage_secret' , 'string' , 'yuszkRZXlGqjOgyE' , 'Helppage hmac secret')
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'idp_internal_anyuser' , 'boolean' , 'false' , 'AUT_IDP_INTERNAL sso can be used to login for any user')
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'logcenter_secret' , 'string' , 'd1RLxRhQMvuU7MkdVeLlcBdYKZkUNh7N', 'Logcenter jwt secret')
@@ -63,6 +59,16 @@ DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'sys_ip_restrict_internal'
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_imagecharts_account_id' , 'string' , '' , 'Image-charts account_id (future use)')
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_imagecharts_secret_key' , 'string' , '' , 'Image-charts secret_key (future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_fe_users' , 'number' , '0' , 'Number of licensed frontend users')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_key_users' , 'number' , '0' , 'Number of licensed key users')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_device_users' , 'number' , '0' , 'Number of licensed device users')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_passive_users' , 'number' , '0' , 'Number of licensed passive users')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'licensed_templates' , 'string' , 'basic,generic' , 'Licensed bedrijfadres templates (comma separated)')
DEFINE_SETTING('PUO', 0000, 'WEB_FACTAB', 'tsk_master_schema' , 'string' , '' , 'Tasker master schema name (not necessarily customerId)')
DEFINE_SETTING('PUO', 0000, 'WEB_FACTAB', 'tsk_extra_folders' , 'array' , '' , 'Tasker extra folders to start CUST tasks (future use))')
DEFINE_SETTING('FAC', 0000, 'WEB_FACTAB', 'noti_delay_mode' , 'number' , '0' , '0=Notification to bedrijfadres always zero delay, 1=honor fac_srtnotificatie_delay, >1=fixed delay in seconds (eg. 5)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_api2_compatibility' , 'number' , '0' , '0=latest and greatest, bit 1=backwards compatible')
DEFINE_SETTING('ALG', 0001, 'WEB_FACFAC', 'alg_ruimte_comm_opp_key' , 'number' , '-1' , 'Key to be used for commercial ruimte oppervlakte')
@@ -103,7 +109,7 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'fac_api_allow_impersonate'
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_api_key_in_url' , 'boolean' , 'false' , 'Is APIKEY= in url also allowed (unsafe)? Default is header X-Facilitor-API-Key only')
DEFINE_SETTING('ALG', 0001, 'WEB_FACFAC', 'fac_betafeatures' , 'number' , '0' , 'Bits for enabling release specific experimental features')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'fac_pdf_printer' , 'number' , '0' , 'PDF Printer support bits (future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_usrrap_mode' , 'number' , '0' , 'User reports mode {0=default, 1=advanced}')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_usrrap_mode' , 'number' , '0' , 'User reports mode {0=default, 1=advanced (UDR)}')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'fac_usrrap_safe_view_regexp' , 'string' , '' , 'User reports safe views regexp')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'fclt_web_url' , 'string' , '' , 'Url to the Facilitor software (future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'hiresTimer' , 'number' , '1' , 'internal use only')
@@ -111,6 +117,7 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'iLearning_enabled'
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'language_toggles' , 'array' , 'NL' , 'Allow language toggle for alternate languages')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'login_pda_url' , 'string' , 'appl/aut/login.asp' , 'url providing login-services when pda detected. Future use')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'login_url' , 'string' , 'appl/aut/login.asp' , 'url providing login-services')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'm2m_enabled' , 'number' , '0' , 'Is Facilitor Mail2Melding configured {0=disabled | 1=enabled}')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'mobile_enabled' , 'number' , '0' , 'Is Facilitor Mobile available {0=disabled | 1=web only enabled | 2=Nativescript app only enabled | 3=web+app enabled}')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'multi_language_option' , 'number' , '0' , 'Enable multi language')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'prs_allow_impersonate' , 'boolean' , 'false' , 'Allow impersonation by PRSSYS')
@@ -140,11 +147,12 @@ DEFINE_SETTING('PRS', 0001, 'WEB_FACTAB', 'prs_kpn_string'
DEFINE_SETTING('PRS', 0001, 'WEB_FACTAB', 'prs_pers_string' , 'string' , ' p.prs_perslid_naam|| NVL2( p.prs_perslid_voorletters, '', '' || p.prs_perslid_voorletters, '''')|| NVL2( p.prs_perslid_tussenvoegsel, '' '' || p.prs_perslid_tussenvoegsel, '''')|| NVL2( p.prs_perslid_voornaam, '' ('' || p.prs_perslid_voornaam || '')'', '''')', NULL)
DEFINE_SETTING('PRS', 0001, 'WEB_FACTAB', 'scim_default_bedrijf' , 'number' , '-1' , 'Default company (prs_bedrijf_key) for SCIM new organisation units')
DEFINE_SETTING('RES', 0001, 'WEB_FACFAC', 'res_remoteurl_refuse' , 'string' , '' , 'Regexp, do not jump to these remote url (future use)')
DEFINE_SETTING('PRS', 0001, 'WEB_FACFAC', 'prs_purge_inactief' , 'number' , '1' , 'Purge prs_perslid_inactief users {1=daily, 0=disable}')
DEFINE_SETTING('FAC', 0000, 'WEB_FACTAB', '_optimizer_use_feedback' , 'string' , '' , '_optimizer_use_feedback (Future use)')
DEFINE_SETTING('FAC', 0000, 'WEB_FACTAB', 'cursor_sharing' , 'string' , '' , 'cursor_sharing (Future use)')
DEFINE_SETTING('FAC', 0000, 'WEB_FACTAB', 'flexFilesPath' , 'string' , '*_DATA' , 'Path for Flexbestanden type ''F'' en ''M'', zonder eindslash')
DEFINE_SETTING('FAC', 0000, 'WEB_FACTAB', 'max_logfile_size' , 'number' , '4194304' , 'Start new logfile after it reaches this size')
DEFINE_SETTING('FAC', 0000, 'WEB_FACTAB', 'max_logfile_size' , 'number' , '262144' , 'Start new logfile after it reaches this size')
DEFINE_SETTING('FAC', 0000, 'WEB_FACTAB', 'optimizer_features_enable' , 'string' , '' , 'optimizer_features_enable (Future use)')
DEFINE_SETTING('FAC', 0000, 'WEB_FACTAB', 'tempfilespath' , 'string' , NULL , 'Path for temp files (future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'style_image_path' , 'string' , NULL , 'path to folder storing styling template pictures')
@@ -189,7 +197,7 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'csstemplate'
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'fontawesomestyle' , 'string' , 'fal' , 'Icons style. Options are far (regular), fas (solid), fal (light)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'custfunctionspath' , 'string' , NULL , 'path to custfunctions.wsc')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'email_regexp' , 'string' , '^\s*[A-Z0-9&\._%+-]+@[A-Z0-9\.-]+\.[A-Z]{2,}\s*([,;]\s*[A-Z0-9&\._%+-]+@[A-Z0-9\.-]+\.[A-Z]{2,}\s*)*$', 'Meerdere gescheiden door , of ;')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'email_regexp_single' , 'string' , '^\s*[A-Z0-9&\._%+-]+@[A-Z0-9\.-]+\.[A-Z]{2,}\s*$', 'E<EFBFBD>n email adres')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'email_regexp_single' , 'string' , '^\s*[A-Z0-9&\._%+-]+@[A-Z0-9\.-]+\.[A-Z]{2,}\s*$', 'E n email adres')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_accept_terms' , 'number' , '0' , '0 (default) no accept, 1=must accept L("lcl_terms_filename")')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_emailtoken_auth_expire' , 'number' , '0' , 'Minutes e-mail login token is valid (default 0)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_logo_file' , 'string' , 'tmpl_logo.gif' , 'Customer logo file (Future use)')
@@ -197,8 +205,10 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_msxml2domdocument'
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_tamper_check' , 'number' , '255' , 'Perform tampercheck on save')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_reserved_number1' , 'number' , '0' , 'reserved_number1 (reserved and unused)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_reserved_number2' , 'number' , '0' , 'reserved_number2 (reserved and unused)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_reserved_number3' , 'number' , '0' , 'reserved_number3 (reserved and unused)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_reserved_string1' , 'string' , '' , 'reserved_string1 (reserved and unused)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_reserved_string2' , 'string' , '' , 'reserved_string2 (reserved and unused)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_reserved_string3' , 'string' , '' , 'reserved_string3 (reserved and unused)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_server_timezone' , 'string' , 'Europe/Amsterdam' , 'The timezone of the database-server')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'fac_t_endofworkday' , 'float' , '17' , 'End time (hour, decimal) of a working day')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'fac_t_startofworkday' , 'float' , '8' , 'Start time (hour, decimal) of a working day')
@@ -206,9 +216,11 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flexAllowedExt'
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'imgAllowedExt' , 'string' , 'jpg|jpeg|png|gif|bmp' , 'Allowed image extensions')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flexPreviewExt' , 'string' , '.*\.(jpg|jpeg|png|gif|bmp)$' , 'Extentions of attachments to preview in show_mld')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flex_mimetypes' , 'json' , '{ "jpg": "image/jpeg", "jpeg": "image/jpeg" , "png": "image/png", "bmp": "image/bmp", "gif": "image/gif", "pdf": "application/pdf", "html": "text/html", "eml": "message/rfc822" }', 'Supported streaming mimetypes')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flex_min_size' , 'number' , '64' , 'E-mail attachments smaller (in bytes) than this are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'mail_subject_undeliverable' , 'string' , ' "^(Undeliverable:|Onbestelbaar:)', 'Undeliverable E-mails with bounced this subject are silently ignored (future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'mail_subject_ignore' , 'string' , ' "^(Automatic reply:|Automatisch antwoord:)', 'E-mails with this subject are silently ignored (future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flex_min_size' , 'number' , '64' , 'E-mail attachments smaller (in bytes) than this are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flex_min_imgsize' , 'number' , '64' , 'E-mail image attachments smaller (in bytes) than this are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flex_min_imgsize_ext' , 'string' , '.*\.(jpg|jpeg|png|gif|bmp)$' , 'Small (flex_min_imgsize) E-mail attachments are ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'mail_subject_undeliverable' , 'string' , '^(Undeliverable:|Message undeliverable:|Onbestelbaar:|Bericht onbestelbaar:)', 'Undeliverable E-mails with bounced this subject are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'mail_subject_ignore' , 'string' , '^(Automatic reply:|Automatisch antwoord:)', 'E-mails with this subject are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'mld_instemmer_self' , 'number' , '0' , 'Fallback option for approving a concept if no consenter is defined or if you are the consenter { 0=No consent needed | 1=Budgetholder | 2=Objectmanager | 4=Departmentmanager | 8=Manager | 16=Buildingmanager}')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'hsts_maxage' , 'number' , '31536000' , 'HTTP Strict Transport Security max-age (0=off, eg. 31536000 for one year)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'http_meta_head' , 'string' , '<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">', 'Submitted in each html <head>')
@@ -220,6 +232,7 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'impAllowedExt'
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'kto_srtdiscipline_key' , 'number' , '-1' , 'key van KTO (klanttevredenheidsonderzoek) vakgroeptype')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'logcenter_url' , 'string' , 'https://logcentre.facilitor.nl/?SSO=CUSTOMER', 'Logcenter url')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'menu_image_path' , 'string' , NULL , 'relative! path to folder storing menu pictures and files')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'menu_image_url_path' , 'string' , NULL , 'relative! path to folder storing menu files which are used as url')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'mobile_favorite_menu_items' , 'number' , '3' , 'This is how many of the favorite menuitems are shown on the mobile portal')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'mobile_password_exp' , 'number' , '15' , 'time to enter the login code received on the mobile in minutes.')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'os_logon' , 'boolean' , 'false' , 'enable NT domain logon {true | false}')
@@ -234,7 +247,8 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'prs_login_lockout_delayfactor'
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'prs_password_hash_factor' , 'number' , '17' , 'Password hash workfactor (2^x)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'prs_password_otp_mode' , 'number' , '0' , 'OTP mode (0=off,+1=prssys only, +2=everyone with password, +4=force 2-factor auth)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'qr_auth_expire' , 'number' , '5' , 'Minutes QRC-code is valid (default 5)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'qr_color' , 'number' , '5452544' , 'QRC color')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'qr_color' , 'number' , '5452544' , 'QRC color')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'qr_bggray_color' , 'number' , '255' , 'QRC background gray color (0-255)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'qrc_enable' , 'number' , '0' , 'Enable QRC-authentication feature (1) or not (0)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'refreshfromdump_oracle_login' , 'string' , '' , 'oracle login un/pw')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'self_register' , 'number' , '0' , 'Can user self-register? ( 0 disable )')
@@ -296,7 +310,7 @@ DEFINE_SETTING('ALG', 0001, 'WEB_FACTAB', 'alg_image_path'
DEFINE_SETTING('ALG', 0001, 'WEB_PRSSYS', 'alg_photo_size' , 'string' , 'r512x512' , 'Resize uploads to this maximum ALG photo size. Ex: r200x150')
DEFINE_SETTING('ALG', 0001, 'WEB_PRSSYS', 'fg_maps_distance_apikey' , 'string' , '' , 'API Key for Google Maps distance API requests')
DEFINE_SETTING('BES', 0001, 'WEB_PRSSYS', 'bes_afleverruimte_verplicht' , 'number' , '0' , 'Afleverruimte visable and/or required {0=visable and not required (default) | 1=visable and required | 2=not visable and not required}')
DEFINE_SETTING('BES', 0001, 'WEB_PRSSYS', 'bes_approval_all' , 'number' , '0' , 'Goedkeuring bestelling vereist t.o.v. eerstvolgende limiet (=0 default) of t.o.v. totale kosten (in <EFBFBD><EFBFBD>n keer)(=1)')
DEFINE_SETTING('BES', 0001, 'WEB_PRSSYS', 'bes_approval_all' , 'number' , '0' , 'Goedkeuring bestelling vereist t.o.v. eerstvolgende limiet (=0 default) of t.o.v. totale kosten (in n keer)(=1)')
DEFINE_SETTING('BES', 0001, 'WEB_PRSSYS', 'bes_bestelling_prefix' , 'string' , '' , 'prefix voor het aanvraagnummer van de bestelling')
DEFINE_SETTING('BES', 0001, 'WEB_PRSSYS', 'bes_bestelopdr_flags' , 'number' , '0' , 'Number of flags that can be defined on purchase orders. Max 10')
DEFINE_SETTING('BES', 0001, 'WEB_PRSSYS', 'bes_bestelopdr_prefix' , 'string' , '' , 'prefix voor het opdrachtnummer van de bestelling')
@@ -326,6 +340,7 @@ DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'bez_show_progress_prop'
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'bez_show_resname' , 'boolean' , 'false' , 'Show room name instead of real estate name {false=show real estate name | true=show room name}')
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'bez_use_buildinghours' , 'number' , '0' , 'Gebouwtijden als tijdgrenzen van afspraken gebruiken {0=Nee (default), 1=Ja, 2=weekend niet, 3=volgens gebouwtijden maar weekends niet}')
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'bez_change_range' , 'number' , '0' , 'minutes before & after start time that bezbof can change visitors')
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'bez_chat_message' , 'string' , 'https://teams.microsoft.com/l/chat/0/0?users={0}&message={1}', 'Link to start Microsoft Teams chat')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'csscust' , 'string' , '' , 'Custom css overrules')
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'vis_afspraak_limiet' , 'number' , '-1' , 'max number of days from now that visitors are allowed, in past or future {-1 = no limit}')
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'vis_allow_check_all' , 'number' , '1' , 'multiple-checkin visitors { 0=no | 1=yes }')
@@ -352,7 +367,7 @@ DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'vis_show_alg_level'
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'vis_t1' , 'float' , '8' , 'visitors day start (hour)')
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'vis_t1_fo' , 'float' , '-1' , 'visitors day start (hour) frontoffice')
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'vis_t1_std' , 'float' , '8' , 'standard visiting begin time of visitors (hour)')
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'vis_t2' , 'float' , '18' , 'visitors day end (hour)')
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'vis_t2' , 'float' , '18' , 'visitors day end (hour, max. 23.99)')
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'vis_t2_fo' , 'float' , '-1' , 'visitors day end (hour) frontoffice')
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'vis_t2_std' , 'float' , '18' , 'standard visiting end time of visitors (hour)')
DEFINE_SETTING('BEZ', 0001, 'WEB_PRSSYS', 'vis_user_history' , 'number' , '7' , 'number of days in the past the FE can see his vistors')
@@ -391,7 +406,7 @@ DEFINE_SETTING('CAD', 0001, 'WEB_PRSSYS', 'fg_mobile_thema'
DEFINE_SETTING('CAD', 0001, 'WEB_PRSSYS', 'fg_outinslabelsize' , 'number' , '8000' , 'Default labelsize for objects outside (mm)')
DEFINE_SETTING('CAD', 0001, 'WEB_PRSSYS', 'fg_outlabelsize' , 'number' , '16000' , 'Default labelsize for terrains outside (mm)')
DEFINE_SETTING('CAD', 0001, 'WEB_PRSSYS', 'fg_papercolor' , 'number' , '15462399' , 'Background color (-1=as published)')
DEFINE_SETTING('CAD', 0001, 'WEB_PRSSYS', 'fg_planforcecolor' , 'number' , '0x000000' , 'Plan forced color (-1=as published, future use)')
DEFINE_SETTING('CAD', 0001, 'WEB_PRSSYS', 'fg_planforcecolor' , 'number' , '-1' , 'Plan forced color (-1=as published, future use)')
DEFINE_SETTING('CAD', 0001, 'WEB_PRSSYS', 'fg_papercolorcpt' , 'number' , '13684944' , 'Background color for concept drawings')
DEFINE_SETTING('CAD', 0001, 'WEB_PRSSYS', 'fg_publiclayers' , 'array' , '' , 'Discipline keys for layers to be visible even without WEB_INSUSE authorisation')
DEFINE_SETTING('CAD', 0001, 'WEB_PRSSYS', 'fg_symbolweight' , 'number' , '60' , 'Linewidth for symbols (mm)')
@@ -400,7 +415,7 @@ DEFINE_SETTING('CAD', 0001, 'WEB_PRSSYS', 'fg_dwfviewer_installed'
DEFINE_SETTING('CAD', 0001, 'WEB_PRSSYS', 'cad_symbols_snap' , 'number' , '1' , 'Snap objects to grid (grid in mm), <1=off')
DEFINE_SETTING('CHT', 0001, 'WEB_PRSSYS', 'cht_bo_naam' , 'number' , '0' , 'Toon naam van servicedesk medewerker 0=eigen naam 1=algemene term')
DEFINE_SETTING('CNT', 0001, 'WEB_PRSSYS', 'cnt_all_kostenplaats' , 'number' , '0' , 'show all (1) active kostenplaats values or only the one i have mandate for (0) in list')
DEFINE_SETTING('CNT', 0001, 'WEB_PRSSYS', 'cnt_approval_all' , 'number' , '0' , 'Goedkeuring contract vereist t.o.v. eerstvolgende limiet (=0 default) of t.o.v. totale kosten (in <EFBFBD><EFBFBD>n keer)(=1)')
DEFINE_SETTING('CNT', 0001, 'WEB_PRSSYS', 'cnt_approval_all' , 'number' , '0' , 'Goedkeuring contract vereist t.o.v. eerstvolgende limiet (=0 default) of t.o.v. totale kosten (in n keer)(=1)')
DEFINE_SETTING('CNT', 0001, 'WEB_PRSSYS', 'cnt_contract_approval' , 'number' , '0' , 'Het contract approval mechanisme is wel (=1) of niet (=0) ingeschakeld')
DEFINE_SETTING('CNT', 0001, 'WEB_PRSSYS', 'cnt_contract_limit3' , 'number' , '125000' , 'De derde limiet van het contract approval mechanisme')
DEFINE_SETTING('CNT', 0001, 'WEB_PRSSYS', 'cnt_contract_limit2' , 'number' , '5000' , 'De tweede limiet van het contract approval mechanisme')
@@ -422,12 +437,13 @@ DEFINE_SETTING('CNT', 0001, 'WEB_PRSSYS', 'cnt_grace_period'
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'ProxyServerIPAddress' , 'string' , NULL , 'For webserver to reach outside world')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'interface_toggles' , 'number' , '1' , 'To keep track of the interface that is being used')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'ReplyAddress' , 'string' , '' , 'ReplyTo Address when e-mailing manually')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'fin_replyaddress' , 'string' , '' , 'Financial ReplyTo Address when e-mailing manually')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'anonymize_period' , 'number' , '365' , 'Period before data will be [GDPR] anonymized (days)')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'anonymize_mode' , 'number' , '13' , 'Data that will be [GDPR] anonymized (0=nothing, 1=tracking,2=notes,4=flexproperties,8=descriptions)')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'datapurge_period' , 'number' , '99' , 'Period (years) to keep dynamic data stored in database. Older data wil be permanently purged')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'aut_login_strip_domain' , 'number' , '1' , 'Strip AD domain from login name { 0=no, 1=yes (default) } (Future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'auth_edit_advanced' , 'boolean' , 'false' , 'Start autorisation popup dialog in advanced mode')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'buttons_in_hamburger' , 'array' , 'fa-print,fa-envelope,fa-table,fa-fclt-refresh,fa-columns,fa-share-square', 'Hide these frameheader buttons behind a hamburger.')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'buttons_in_hamburger' , 'array' , 'fa-print,fa-envelope,fa-table,fa-fclt-refresh,fa-columns,fa-share-square,fa-file-download,fa-file-upload,fa-megaphone,fa-trash-can-xmark', 'Hide these frameheader buttons behind a hamburger.')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'can_selfapprove' , 'number' , '999999' , 'I can approve myself below or equal this limit or someone else must approve always above this limit')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'checkBrowser' , 'number' , '0' , 'Check for IE6 at login (1) or not.')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'currency_icon' , 'string' , 'fa-euro-sign' , 'Currency icon. Use fa-money-bill-wave for generic')
@@ -470,10 +486,10 @@ DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flexFilesOrdering'
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'helppage_url' , 'string' , 'https://help.facilitor.nl/fac_wrapper.php', 'Helppage')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'iconcolumns' , 'number' , '6' , 'number of columns in an iconmenu page.')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'inline_actions_hamburger' , 'number' , '0' , 'Use a hamburger-icon to view the inline actions {0=No | 1=Yes, onClick | 2=Yes, onMouseOver}')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'inline_actions_mld' , 'number' , '1' , 'Show inline actions in MLD-list {0=No | 1=Yes}')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'inline_actions_mld' , 'number' , '1' , 'Show inline actions in MLD-list {0=No | 1=Yes | 2=Yes, but suppress in embedded lists}')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'kosten_klant_default' , 'number' , '1' , 'initial status of kosten klant checkbox { 0 - unchecked | 1 - checked }')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'login_remember_days' , 'number' , '30' , 'Days to remember login. { 0 disable }')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'login_use_email' , 'number' , '0' , 'use email to check user authentication { 0 - use oslogin | 1 - use email }')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'login_use_email' , 'number' , '0' , 'Add users to the _Default authorisation group when ''Login'' { 1 = Or ''E-mail'' } is filled out')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'logoff_return_url' , 'string' , '../../' , 'Return url to go to after log off')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'max_horizontal_blocks' , 'number' , '3' , 'Max. horizontal blocks in detail-frames')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'max_tracking_length' , 'number' , '30' , 'Max. displayed length of single value in a tracking line, longer values are summarized')
@@ -491,6 +507,7 @@ DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'mobile_position_required'
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'note_collapsed' , 'number' , '1' , 'Notes overview collapsed/fold up (=1 default) or unfold (=0)')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'note_autocollapse' , 'string' , '' , 'Regexp note text that will allways start collapsed in note overviews (for technical system notes)')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'note_sort_ascending' , 'number' , '0' , 'Ordering of notes for FO and BO in note overviews {0 = descending | 1 = ascending}')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'note_draft_history_days' , 'number' , '30' , 'Save drafts of notes for this many days (-1 = do not save)')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'portalmenu_combine_single' , 'number' , '0' , '0: default, 1:If a portalmenukop consists of 1 item, should the image be moved in between the menukop and the menuitem? 2:only header')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'portalmenucols' , 'number' , '3' , 'Number of columns in portal menu')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'portalmenulines' , 'number' , '5' , 'Max. number of lines in portalmenu (incl. "More..."')
@@ -536,11 +553,12 @@ DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'udr_graph_gauge_colors'
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'udr_graph_pie_colors' , 'string' , '[''#003478'',''#6685ae'',''#e37b00'',''#0b94f9'',''#81ce58'',''#f3d736'',''#acaa65'',''#a222c4'',''#5b9bc3'',''#1c40eb'',''#037011'',''#d192e7'',''#f88625'',''#93b89f'',''#bf6b87'',''#a2b41a'',''#f76979'',''#f41181'',''#73eb59'',''#32d1d0'',''#a00bed'',''#66fe6b'',''#b94d5b'']' , 'Colors being used for pie charts (string!)')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'use_wildcard_with_suggests' , 'number' , '2' , 'Use wildcards for all sugest fields (0=no wildcard, 1=text*, 2=*text*)')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'usrrap_refreshrate' , 'number' , '60' , 'time between auto refresh of selected usrraps (seconds)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'ai_enabled' , 'number' , '0' , 'Enable AI to: &1; generate subjects for calls from their description (configuration needed) &2; generate FAQs for calls &4; generate text for closing calls &8; (not implemented) find similar calls')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'openai_model' , 'string' , 'gpt-3.5-turbo' , 'Default OpenAI language model to use')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'openai_model_large_context' , 'string' , '' , 'Fallback model for prompts with larger contexts')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'openai_apikey' , 'string' , 'sk-proj-yzeVEAimM50pGzoPSTdmT3BlbkFJM3cBKKfpo0PVEEyBYJwR', 'OpenAI APIKEY for AI services')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'openai_organization' , 'string' , 'org-6M9EiAUYLBepI30skvLFk39B', 'OpenAI Organization for AI services')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'ai_enabled' , 'number' , '0' , 'Enable AI (65535=all (incl. future) AI features) to generate;' || CHR(10) || '&1; subjects for calls from their description (configuration needed)' || CHR(10) || '&2; FAQs for calls' || CHR(10) || '&4; text for closing calls' || CHR(10) || '&8; new order descriptions' || CHR(10) || '&16; portal messages when publishing calls')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'ai_endpoint' , 'string' , 'https://ai-fac-prod-openai-studio.openai.azure.com/openai/deployments/ai-fac-prod-4o/chat/completions?api-version=2024-08-01-preview', 'AI API endpoint url')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'ai_apikey' , 'string' , 'CCV3nRxb3ohPwxlwPQBjGFWqDSPTilfLHjsfhGBRjOEmlfgRtRzwJQQJ99AKACfhMk5XJ3w3AAABACOG7TGx', 'APIKEY for AI services')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'ai_mail_base_prompt_outputformat' , 'string' , '' , 'AI base prompt for e-mails. Describes desired output format 0 (future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'ai_mail_base_prompt1' , 'string' , '' , 'AI base prompt for e-mails. Describes format 1 (future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'ai_mail_base_prompt2' , 'string' , '' , 'AI base prompt for e-mails. Describes format 2 (future use)')
DEFINE_SETTING('MSG', 0001, 'WEB_PRSSYS', 'msg_photo_size' , 'string' , 'r512x512' , 'Resize uploads to this maximum MSG photo size. Ex: r200x150')
DEFINE_SETTING('MSG', 0001, 'WEB_PRSSYS', 'msg_max_history' , 'number' , '30' , 'Show messages no longer than msg_max_history days ago')
DEFINE_SETTING('FAQ', 0001, 'WEB_PRSSYS', 'faq_kennisbank_popup' , 'number' , '3' , 'Show kennisbank popup {0=no | 01=1=FE | 10=2=FO | 11=3=FE+FO}')
@@ -548,14 +566,17 @@ DEFINE_SETTING('FAQ', 0001, 'WEB_PRSSYS', 'faq_max_results'
DEFINE_SETTING('FAQ', 0001, 'WEB_PRSSYS', 'faq_max_results_mld' , 'number' , '0' , 'Initial number of faq items when editing an issue. 0 = show all.')
DEFINE_SETTING('FAQ', 0001, 'WEB_PRSSYS', 'faq_max_results_bez' , 'number' , '0' , 'Initial number of faq items when editing an appointment. 0 = show all.')
DEFINE_SETTING('FAQ', 0001, 'WEB_PRSSYS', 'faq_search_hints_only' , 'number' , '0' , 'When searching through the Knowledge base, only find matching hints {1=true | 0=false}')
DEFINE_SETTING('FAQ', 0001, 'WEB_PRSSYS', 'faq_default_visibility' , 'number' , '3' , 'Set default visibility when creating a new knowledgebase item {1=Selfservice | 2=Professionals | 3=Selfservide and Profesionals')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_bof_mag_editen' , 'number' , '1' , 'Users/Approvers with FINBOF rights have edit possibilities {0=no edit (only approve) | 1=edit (default)}')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_btw_default' , 'number' , '3' , 'Standaard btw tarief (1=NL|Nul, 2=NL|Laag, 3=NL|Hoog, enz.)')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_enable_afwijzen' , 'number' , '1' , 'Is it possible to reject an invoice or not {0=Afwijzen unavailable | 1=Afwijzen available}')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_enable_goedkeuren' , 'number' , '0' , 'Is it possible to validate (''goedkeuren'') an invoice {0=validation unavailable | 1=validation optional | 2=validation required}')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_enable_kostensoort' , 'number' , '1' , 'can factuur kostensoort be changed?')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_factuur_flags' , 'number' , '0' , 'Number of flags that can be defined on invoices. Max 10')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_factuur_flags_list_usage' , 'number' , '0' , 'Set rights that readonly can/cannot edit markings (bolletjes) toe {0=no | 1=yes}')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_factuur_verlegdmode' , 'number' , '0' , 'Use and validation of field fin_factuur_gbedrag: {0=field invisible | &1=visible and enterable | &2=required if invoicelines has a shifted VAT-value | &4=all invoicelines must have shifted VAT-value or must have standard VAT values (=not shifted)}')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_kostensoort_verplicht' , 'number' , '0' , 'Is kostensoort required? {0=not required | 1=required}')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_factuur_import_sanitize_id' , 'string' , '([A-Za-z]{0,3}\d{1,10}(\/\d+)?)', 'Regexp for sanitizing imported invoice ID''s (removes unwanted characters)')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_match_lowerlimit' , 'number' , '0' , 'Check lowerlimit also for matching {0=Only upperlimit (invoice<order+tolerance | 1=Upper and lowerlimit (order-tolerance<invoice<order+tolerance)}')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_new_after_save' , 'number' , '0' , 'Na het opslaan terugkomen met de factuur in de showmode of met nieuw leeg invulformulier (0=showmode || 1=nieuw formulier)')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_splitsen_omschr' , 'number' , '0' , 'Split up the discription of the invoice lines? {0=no (default) | 1=yes}')
@@ -569,7 +590,7 @@ DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_attach_obj_cntpers'
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_auth_obj_lendout' , 'number' , '0' , 'Authorization scope for objects which are lent out for lending registration (INSFOF/fo) {0=owner(borrower) (default) | 1=basic place/owner}')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_can_edit_own_objects' , 'number' , '0' , 'Owner can edit objects {0|1, default 0}')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_element_description' , 'string' , '' , 'SQL voor de objectomschrijving achter de "heeft betrekking op" knop voor het selecteren van elementen')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_explode_objects' , 'number' , '1' , 'Explode the nummer of (new) object {0=no | 1=yes (default) | 2=choice: default no | choice: default yes}')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_explode_objects' , 'number' , '1' , 'Explode the nummer of (new) object {0=no | 1=yes (default) | 2=choice: default no | 3=choice: default yes}')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_fg_remote_maps' , 'string' , '' , 'API Key. if not empty use Google Maps instead of FG if x,y coordinates of an object are available')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_flex_uitgifte_empty' , 'number' , '0' , 'Flexvelden die geen meetwaarden zijn leeg maken bij uitgifte {0=no (default) | 1=yes}')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_inspect_service_depend' , 'number' , '0' , 'Company depends on the {0=servicecompanylocation {default} 1=contract scope 2=both}')
@@ -581,6 +602,8 @@ DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_srtdeelsuggest_info'
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_state_history' , 'number' , '30' , 'Number of days to keep ins_deel_state_history records')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_deel_flags' , 'number' , '0' , 'Number of flags that can be defined on objects. Max 10')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_nr_separator' , 'string' , '' , 'Separator between prefix and number for ranges of objectcodes that are numbered automatically')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_related_diagram_depth_min' , 'number' , '1' , 'The related objects diagram shows objects of this many levels back')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_related_diagram_depth_max' , 'number' , '2' , 'The related objects diagram shows objects of this many levels forward')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'mjb_freeze_year' , 'number' , '2023' , 'Frozen (approved/activated) year of Preventive Maintenance (MJOB)')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'mjb_inflation' , 'float' , '0' , 'Default annual inflation rate (%) for Preventive Maintenance (MJOB)')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'mjb_operation_external' , 'number' , '0' , 'Operational handling of Preventive Maintenance (MJOB) tasks {0=internal | 1=external}')
@@ -600,17 +623,20 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_add_mldopmerk_on_opdrclose'
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_afhandeling_required_for_close' , 'number' , '0' , 'Het veld afhandeling verplicht bij het afmelden van een melding (0=no, 1=yes)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_afhandeling_restrict_edit' , 'number' , '0' , 'Het veld afhandeling alleen in te vullen bij afmelden/afwijzen (0=no, 1=yes)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_afmelden_extern' , 'number' , '0' , 'Are external orders visible and/or changeble by ORDBO2 (0=not visible | 1=visible for ORDBO2 | 2=visible and changeble by ORDBO2)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_afmelden_popup_for_all_km' , 'number' , '0' , 'Toon afmeldkenmerken in het opdracht-afmeld-scherm (0=Alleen ontbrekende verplichte kenmerken | 1=Ja, allemaal')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_afrond_canflex' , 'boolean' , 'false' , 'Change flex of completed issue with MLDAFR ')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_afrond_canremark' , 'boolean' , 'false' , 'Change remark of completed issue with MLDAFR ')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_allow_for_others' , 'number' , '0' , 'Can i make calls for others ? {0=no | 1=yes | 2=yes, initial empty}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_allow_parentmelding' , 'number' , '0' , 'Allow attaching a call to another manually (0=not | 1=allow without orders | 2=allow with closed orders')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_archive_by_gui' , 'boolean' , 'false' , 'Can a call be archived by a button (true) or just by export (false)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_archive_by_gui' , 'boolean' , 'false' , 'Can an order be archived by a button (true) or not (false)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_ask_for_orders' , 'boolean' , 'true' , 'ask for immediate order input after call entry { true | false }')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_assume_ok_days' , 'number' , '0' , 'Number of days after the call will be automatically closed, if no response is given')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_autolink_regexp' , 'string' , '(?:(?:melding [A-Z]*)|(?:[A-Z \,]+\#[A-Z]*))(\d+)', 'Automatically turn MLD-references in texts into clickable links eg. (?:(?:melding [A-Z]*)|(?:[A-Z\,\n]+\#[A-Z]*))(\d+)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_behandelteam_canclose' , 'number' , '1' , 'Close authorization depending on (0=discipline | 1=discipline en treatment team (default))')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_bo_sort_descending' , 'number' , '0' , 'Sort ordering of mld_melding for BO (0 = most urgent first | 1 = last made first | 2 = most recent activity first)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_can_change_prio_and_place_while_issued', 'boolean' , 'false' , 'Allow to change [prio] and [place] while issue is issued')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_can_reopen_call' , 'number' , '0' , 'Calls can be reopened {0=no(default), +1=Yes Issuer, +2=Yes FO/BO}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_can_reopen_call' , 'number' , '0' , 'Calls can be reopened {0=no(default), +1=Yes Issuer, +2=Yes FO/BO, +4=By WEB_MLDREO authorisation}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_clear_on_close' , 'number' , '0' , 'Clear when closing call (0=just close call | +1=reset attention, +2=reset Assigned to, +4=reset Back office groups, +8=reset Processor)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_close_noti_default_off' , 'number' , '0' , 'Checkbox [melder notificeren] at cancel is default off (0=no interference, 1=default off)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_close_opdr_default' , 'number' , '0' , 'De checkbox met de vraag of de open opdrachten ook afgemeld moeten worden is standaard niet(0=default) of wel(1) aangevinkt')
@@ -619,6 +645,7 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_continue_edit_issuer'
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_copy_objects_in_workflow' , 'number' , '0' , 'Copy object-references to the next step in workflow (0=do not copy | 1=copy)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_disable_continuation' , 'boolean' , 'false' , 'Disable creating continuation calls { false | true }')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_layout' , 'array' , 'A,B,C,D,E,F,G,H,I,J,K' , 'De volgorde van de blokken in het meldingen scherm' || CHR(10) || 'A: Aanvrager' || CHR(10) || 'B: Categorie' || CHR(10) || 'C: Plaats' || CHR(10) || 'D: Afleveradres' || CHR(10) || 'E: Behandeling' || CHR(10) || 'F: Actieve behandeling' || CHR(10) || 'G: Kennisbank' || CHR(10) || 'H: Heeft betrekking op' || CHR(10) || 'I: Aanvullende gegevens' || CHR(10) || 'J: Omschrijving' || CHR(10) || 'K: Afhandeling')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_afmeldtekst_compact_threshold' , 'number' , '10' , 'Threshold for compact view of closing texts into a single dropdown')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_enable_workflow' , 'number' , '1' , 'enable workflow in call handling {0=workflow disabled | 1=workflow enabled }')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_endate_ordbo2' , 'number' , '1' , 'Enddate can be editted by MLDORD/ORDBO2 {0=no | 1=yes (default)}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_enforce_orderdates' , 'number' , '0' , 'Enforce order start/ending dates to be within call start/ending dates')
@@ -627,7 +654,7 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_first_close_orders'
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_fixdatums_marge' , 'number' , '7' , 'WEB_MLDMSU can fix invoer/afgemeld dates')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_fo_can_assign_team' , 'number' , '0' , 'Allow assignment of a new call to a treatment team by the frontoffice {0=no | 1=yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_fo_default_user' , 'boolean' , 'false' , 'Use current user as default caller, { true=user default | false=empty default }')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_fof_canFlexChange' , 'boolean' , 'false' , 'FOF flex kenmerken laten wijzigen >800 900<=.')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_fof_canFlexChange' , 'boolean' , 'false' , 'TODO is dit het dan? ***MLDFOF kan FE-flexkenmerken ook na acceptatie nog wijzigen***')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_forward_all' , 'number' , '1' , 'Forward a complain 0= to a complain with the same srtdiscipline 1= (default) to a complain for all srtdisciplines')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_forward_auto_fill' , 'number' , '0' , 'Use current discipline and call (and "assigned to") as defaults while forwarding. {0=no | 1=yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_forward_can_assign' , 'number' , '0' , 'Allow assignment to a specific handler-person while forwarding a call {0=no | 1=yes}')
@@ -657,20 +684,21 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_num_prefix_mode'
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_object_filled_in_alert' , 'number' , '1' , '{0=geen, 1=wel} alert tonen als er automatisch een object wordt ingevuld bij een melding.')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_omschrijving_restrict_edit' , 'number' , '0' , 'Het veld omschrijving alleen in te vullen als nog te accepteren (0=no, 1=yes)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_alt_kostensoort' , 'number' , '0' , 'Enable use of alternative cost category {0|1} default 0')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_approval_all' , 'number' , '0' , 'Goedkeuring opdracht vereist t.o.v. eerstvolgende limiet (=0 default) of t.o.v. totale kosten (in <EFBFBD><EFBFBD>n keer)(=1)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_approval_all' , 'number' , '0' , 'Goedkeuring opdracht vereist t.o.v. eerstvolgende limiet (=0 default) of t.o.v. totale kosten (in n keer)(=1)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_pessismistisch_hergoedkeuren' , 'number' , '0' , 'Hergoedkeuren als de opdrachtkosten boven de bestellimiet, of boven de goedkeuringsvrijstelling komen {1=ja | 0=alleen als beiden waar zijn}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_validate_by_substitute' , 'number' , '1' , 'Validate by substitute {0=no | 1=yes default}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_ask_mail_if_unknown' , 'number' , '0' , 'Workaround for sending order by e-mail to ''externe relatie'' if address unknown (0=disabled default | 1=enabled)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_close' , 'number' , '0' , 'Can close orders in order overview window without seeing order details? {0=yes default | 1=no}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_confirm_for_send' , 'number' , '0' , 'Ask confirmation before sending an e-Order to a supplier (0=do not ask| 1=ask)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_ignore_caller_profile' , 'number' , '0' , 'Ignore profile of caller in approving process {0=No (default) | 1=Yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_kpg_fin_limit2' , 'number' , '100000' , 'De tweede kpg limiet van het opdracht fiattering mechanisme')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_kpg_fin_limit1' , 'number' , '15000' , 'De eerste kpg limiet van het opdracht fiattering mechanisme')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_pref_contractors_only' , 'boolean' , 'false' , 'Show only preferred contractors (true) or all contractors (false)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_pref_contractors_only' , 'number' , '0' , 'Show only preferred contractors (=1), all contractors (=0), or all contractors only for offers (=2)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_refiat_preference' , 'number' , '0' , 'Bij herfiattering opnieuw fiatteren {0=(default) fiatteur moet opnieuw fiatteren, 1=goedkeurder kan aangeven of dat moet}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_reapproval_rate' , 'float' , '-1' , 'Re-approval rate (%) {-1 = based on profile-limit (default) | >=0 }')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_sel_intern_uitv' , 'number' , '0' , 'Internal contractors can be selected for all services {0=no (default) | 1=Yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_show_requestor_in_list' , 'number' , '1' , 'Show requestor (melder) column in opdr search list {0=no | 1=print only | 2=view only | 3=both}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_costs_readonly_after_rfc' , 'number' , '0' , 'Cost fields of follow-up orders become readonly for suppliers when issued {0=no (default) | 1=yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdr_note_default_notifyBO' , 'number' , '0' , 'Default value for "Behandelaar hierover notificeren" for order-notes {0=off(default) | &1; on | &2; immutable & hidden}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdracht_flags' , 'number' , '0' , 'Number of flags fo/bo can define for orders. Max 10')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_opdracht_recent' , 'number' , '60' , 'Tijdsinterval voor de recente opdracht wijzigingen in minuten')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_ord_afmeld_future' , 'number' , '1' , 'Opdracht einddatum niet controleren bij afmelden {0=opdracht einddatum mag niet in de toekomst liggen, 1=default niets controleren)')
@@ -680,13 +708,12 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_ord_flexsummary'
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_ord_show_kostenplaats' , 'number' , '1' , 'show kostenplaats field for orders {0=don''t show | 1=editable | 2=show}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_ord_show_ordernr' , 'number' , '0' , 'show ordernr field for orders {0=don''t show(&use mld_melding_ordernr) | 1=show}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_order_autoprint' , 'number' , '3' , 'When to autoprint orders {0=print new order for extern and intern | 1=print with any save | 2=print new order for extern | 3=never print}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_orderlist_columns_compact' , 'number' , '34052' , 'Bitwise coding of columns to show (when relevant) in compact orders list')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_orderlist_columns_full' , 'number' , '49470' , 'Bitwise coding of columns to show (when relevant) in full orders list')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_performer_can_change_flags' , 'boolean' , 'false' , 'Executor can change the flags of his orders.')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_pgb_fiattering' , 'number' , '0' , 'Voor een opdracht is het algemene fiatteringsproces noodzakelijk naast PGB/AGB fiatering? {0=no | 1=yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_photo_size' , 'string' , 'r512x512' , 'Resize uploads to this maximum MLD photo size. Ex: r200x150')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_plandate_in_list' , 'number' , '0' , '*Show Planned Date as a column in backoffice overview orders {0=no | 1=yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_print_loc_address' , 'number' , '0' , 'Show location address details in backoffice overview calls {0=no | 1=on print | 2=address+postal code+building} | 3=address+postal code+city')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_uses_requestor_location' , 'number' , '1' , 'Use the location of the requestor to overwrite the location of a new issue {0=no | 1=yes(default)}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_processing_group_all' , 'number' , '1' , 'Een behandelteam mag gekozen worden uit dezelfde srtdiscipline {0} of uit alle srtdiscipline {1=default})')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_reference_days' , 'number' , '100' , 'Het aantal dagen terug in de tijd van waaraf eigen referentie getoond dienen te worden')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_rejected_is_open' , 'number' , '0' , 'show rejected meldingen as Open FE/FO {1=Open | 0=Closed}.')
@@ -694,8 +721,8 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_restrict_mobile_to_me'
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_sel_single_closingtext' , 'number' , '1' , 'Auto select closing text when just one available {2=yes | 1=no (default)}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_selector_mode' , 'number' , '0' , 'Selector mode vakgroep/melding voor de frontend. {0(=default)=vakgroep en melding (beide eerst te kiezen), 1=vakgroep readonly, 2=alleen melding}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_show_cards' , 'number' , '5' , 'Number of order cards shown under a contractor in order plan board {nn=number | -1=all}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_bord_compact_threshold_columns' , 'number' , '6' , 'Number of columns after which the board will suppress empty columns {-1=never | 0=always | nn=number of columns}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_show_endtime' , 'number' , '1' , 'Show endtime for complaints (0=only date, 1=with endtime)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_show_order_details' , 'number' , '1' , '*Show remark in backoffice Orders Management {0=no | 1=yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_show_parent_attachments' , 'boolean' , 'true' , 'Show the attachments of parent calls {true (default) | false}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_show_search_similar' , 'number' , '0' , 'Show a link to similar calls with call details {0=no | 1=yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_show_urgent_as_new' , 'boolean' , 'false' , 'Show urgent calls as new calls')
@@ -708,7 +735,7 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_uren_more'
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_uren_omschrijving' , 'number' , '1' , 'Description to show with hour registration {1=melder | 2=vakgroep/stdmelding | 3=opdrachtomschrijving | 4=opdrachttype-melder}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_uren_weeks_back' , 'number' , '8' , 'Show this number of weeks in the overview, ending at the selected date')
DEFINE_SETTING('MLD', 0000, 'WEB_PRSSYS', 'mld_use_department' , 'number' , '0' , 'MLD also registers a department. You can see MLD of your department scope and below (0=don''t use | 1=use)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_use_order_approval' , 'number' , '0' , 'Approval mechanism is used for mld orders (0=disabled | 1=enabled)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_use_order_approval' , 'number' , '0' , 'Approval (costcentre/fiattering) mechanism is used for mld orders (0=disabled | 1=enabled)')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_use_plandate2' , 'number' , '0' , '*Allow use of planned end date {0=no | 1=only show in list | 2=yes, but don''t show in list | 3=yes and show in list}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_ord_edit_plandates' , 'number' , '1' , 'Edit plandates { 1=in order (default), 2=with buttons, 3=both }')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_workflow_set_defaults' , 'number' , '0' , 'Set defaults for flexkenmerken if they weren''t set by the predecessor (0=do not set | 1=set defaults)')
@@ -730,13 +757,15 @@ DEFINE_SETTING('PHB', 0001, 'WEB_PRSSYS', 'ph_showfunctie'
DEFINE_SETTING('PHB', 0001, 'WEB_PRSSYS', 'ph_showparentafdeling' , 'number' , '0' , 'Show parent department in phonebook (0|1)')
DEFINE_SETTING('PHB', 0001, 'WEB_PRSSYS', 'phone_show_functie' , 'boolean' , 'true' , 'Provide search on Functions in phonebook (true|false)')
DEFINE_SETTING('PHB', 0001, 'WEB_PRSSYS', 'prs_phonebook_info' , 'string' , '' , 'Message to be shown at the top of the phonebook')
DEFINE_SETTING('PHB', 0001, 'WEB_PRSSYS', 'prs_phonebook_maxresults' , 'number' , '0' , 'Absolute maximum result lines for phonebook, disables Excel export')
DEFINE_SETTING('PHB', 0001, 'WEB_PRSSYS', 'prs_phonebook_audit_floor' , 'number' , '10' , 'Audit this phonebook request when more than ## results')
DEFINE_SETTING('PRJ', 0001, 'WEB_PRSSYS', 'prj_discipline_key' , 'number' , '-1' , 'mld_discipline_key of discipline for moves')
DEFINE_SETTING('PRJ', 0001, 'WEB_PRSSYS', 'prj_fg_paperColor' , 'number' , '16777215' , 'Backgroundcolor for scenario-floorplans {nn=color | -1=''as published''}')
DEFINE_SETTING('PRS', 0001, 'WEB_PRSSYS', 'prs_approvemethod' , 'number' , '1' , 'Approval tree: 1 = kp.budgethouder, kpngroep.verantwoordelijke, 2 = traverse up departments if kp.budgethouder undefined, 3=traverse up departments for budgethouder with adequate profile')
DEFINE_SETTING('PRS', 0001, 'WEB_PRSSYS', 'prs_bedrijf_leveranciernr_unique' , 'number' , '0' , 'leveranciernr or prs_bedrijf unique (1) or not unique (0)')
DEFINE_SETTING('PRS', 0001, 'WEB_PRSSYS', 'prs_collegas_used' , 'number' , '9' , 'Can FE users indicate collegues for replacement. Use value as autlevel scope: everything (-1) ... nothing (9=default)')
DEFINE_SETTING('PRS', 0001, 'WEB_PRSSYS', 'prs_default_kpn_empty' , 'number' , '0' , 'Costcentre always default empty {0=no | 1=yes}')
DEFINE_SETTING('PRS', 0001, 'WEB_PRSSYS', 'prs_dep_default_kpn' , 'number' , '5' , 'A user can make costs for his own department by default {0=no | 1=yes | 2=all departments of company | 4=personal}')
DEFINE_SETTING('PRS', 0001, 'WEB_PRSSYS', 'prs_dep_default_kpn' , 'number' , '5' , 'A user can make costs for his own department by default {0=no | 1=yes | 2=all departments of company | 4=personal | &8=only department cost centres | &16=only project cost centres | &32=only building cost centres }')
DEFINE_SETTING('PRS', 0001, 'WEB_PRSSYS', 'prs_dep_default_kpn_voor' , 'number' , '0' , 'Gebruik de kostenplaatsen van de prs_perslid_voor indien gezet samen met mld_allow_for_others/bes_allow_for_others')
DEFINE_SETTING('PRS', 0001, 'WEB_PRSSYS', 'prs_fof_show_belongings' , 'number' , '1' , '0=hide belongings, 1=show belongings')
DEFINE_SETTING('PRS', 0001, 'WEB_PRSSYS', 'prs_h' , 'float' , '0.25' , 'Employability time stepsize')
@@ -756,7 +785,7 @@ DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_lookhistory_days'
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_is_closed_after_days' , 'number' , '0' , 'Days after which a reservation is considered closed')
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_release_equipment_on_close' , 'number' , '0' , 'Propose to release reserved equipment when closing a reservation prematurely {0=no | 1=yes}')
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'fac_xml_max_factuur' , 'number' , '500' , 'Maximum number of lines for invoice in sales-invoice node')
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_247organisation' , 'number' , '0' , '24/7 organisation (1= weekends are working days 0= weekends are holidays)')
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_247organisation' , 'number' , '0' , '24/7 organisation (0= weekends are holidays | 1= weekends are working days | 2= weekends are holidays STRICT)')
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_allow_for_others' , 'number' , '1' , 'Can I make reservations for others ? {0=no | 1=yes}')
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_allow_multi_cat' , 'boolean' , 'false' , 'Can catering be done on multi day reservation {false | true}')
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_allow_undelete' , 'boolean' , 'false' , 'Deleted reservations can be undeleted {false | true}')
@@ -834,6 +863,7 @@ DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_pda_room_times'
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'res_adhoc_threshold' , 'number' , '10' , 'The amount of time (in minutes) before the end of a reservation before an adhoc reservation can be made')
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'msgraph_sync_level' , 'number' , '0' , 'Level of synchronization (Sufficient rights required); { 0: No sync, +1: Facilitor reads from Exchange, +2: Facilitor writes only to Exchange rooms, +4: Facilitor writes to all Exchange users }')
DEFINE_SETTING('RES', 0001, 'WEB_PRSSYS', 'exchange_internal_email_regexp' , 'string' , '*' , 'Regular expression to match internal visitors by; internal visitors are not registered in Facilitor (All visitors are internal by default)')
DEFINE_SETTING('RES', 0001, 'WEB_FACTAB', 'exchange_max_concurrent_notifications' , 'number' , '50' , 'The maximum number of concurrent notifications in progress')
DEFINE_SETTING('SLE', 0001, 'WEB_PRSSYS', 'cil_ins_srt_groep_key' , 'number' , '-1' , 'INS_SRTDEEL_KEY of object type Cylinders')
DEFINE_SETTING('SLE', 0001, 'WEB_PRSSYS', 'sle_cil_koppelen' , 'number' , '1' , 'Sleutels en cilinders zijn door bo handmatig te koppelen {0=nee, 1=ja(default)}')
DEFINE_SETTING('SLE', 0001, 'WEB_PRSSYS', 'sle_ins_srt_groep_key' , 'number' , '-1' , 'INS_SRTDEEL_KEY of object type Keys')
@@ -846,12 +876,15 @@ DEFINE_SETTING('PUO', 0000, 'WEB_FACTAB', 'puo_uid' , 'string
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'bdradrfiles_path' , 'string' , NULL , 'Technische adressen bijlagen folder')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_apppushurl' , 'string' , '' , 'URL for pushing APP1 notifications')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_app2pushurl' , 'string' , 'https://fcm.googleapis.com/fcm/send' , 'URL for pushing APP2 notifications')
DEFINE_SETTING('PUO', 0000, 'WEB_FACFAC', 'puo_app2secret' , 'string' , 'AAAACkskZvA:APA91bGv1P1_0myDdm9_wEj22f5PDjD3XrO_7X7o6Eok93wHNlXuGPMyl-bK508zc5-mdDjwIZPpamSmDDa6ykIJulcJGkJ3lZnJ-ngx-Cak-lzoL_-gWTb5GFvUDvFg5hnP1MNG1-SG', 'Push secret for APP2 notifications')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_app2pushurl' , 'string' , 'https://fcm.googleapis.com/v1/projects/facilitor-165209/messages:send' , 'URL for pushing APP2 notifications')
DEFINE_SETTING('PUO', 0000, 'WEB_FACFAC', 'puo_app2secret' , 'string' , '#included in next line', 'Google JSONKey secret for APP2 notifications')
UPDATE tmp_set
SET fac_setting_default = '
#include "facilitor-165209-firebase-adminsdk-xts0z-042cb975b9.json"
' WHERE fac_setting_name = 'puo_app2secret';
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_bcc' , 'string' , '' , 'Blind copy email address for ORDERS only')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_cc' , 'string' , '' , 'Copy email address for ORDERS only')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_connectionflag' , 'number' , '0' , 'INTERNET_FLAG_PASSIVE = 0x8000000, else = 0')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_custorders' , 'boolean' , 'false' , 'true = use customer orderqueue')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_emergencymailaddress' , 'string' , '' , 'E-mail address for system notifications')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_failalert_threshold' , 'number' , '240' , 'Minimum minutes after first failed send-attempts before an alert is sent to the (PRSSYS) application manager(s)')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_faildelayincrement' , 'number' , '10' , 'Delay retry of failed orders up to failures*10 minutes')
@@ -860,7 +893,7 @@ DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_failextralogging' , 'number
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_faillimit' , 'number' , '336' , 'After this time (hours) stop trying failed orders')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_fclt_web_apikey' , 'string' , '' , 'Putorders APIKEY to the Facilitor software')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_fclt_web_url' , 'string' , '' , 'Url to the Facilitor software (webserver internal address)')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_flags' , 'number' , '255' , '+1=send notifications, +2=send orders, +4=all orders Immediate')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_flags' , 'number' , '255' , '+1=send notifications to people, +2=send orders to technical addresses')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_forceapppushtoken' , 'string' , '' , 'Force this pushtoken for test purposes')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_forcefromaddress' , 'string' , '' , 'Force the from and reply address for test purposes eg john@example.com')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_forcemailaddress' , 'string' , '' , 'Force this email address for test purposes eg john@example.com')
@@ -871,10 +904,11 @@ DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_forceallowedgroep' , 'string
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_fromaddress' , 'string' , '' , 'The fixed From address for Facilitor orders')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_logdestination' , 'number' , '1' , 'Where to log: 1=detailed file, 2=csv file, 3=both')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_loglevel' , 'number' , '1' , 'Level of logging (0-3) for troubleshooting purposes')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_schedule_putorders' , 'number' , '0' , 'Force putorders run at least every ## minutes even with empty queue (for pre_putorders)')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_mailbodycharset' , 'string' , 'unicode-1-1-utf-8' , 'Putorders e-mail charset')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_notificationinmailbody' , 'boolean' , 'true' , 'false = as attachments, true = in body (deprecated)')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_notificationxsl' , 'string' , '' , 'stylesheet to be applied for notifications')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_order_flexfiles' , 'number' , '0' , 'Include flexfiles with sent orders (deprecated, use technical address)')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_order_flexfiles' , 'number' , '0' , 'System default for attachments with orders as defined in the technical address (0=don''t send, 1=attach))')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_proxyserveripaddress' , 'string' , '127.0.0.1:8888' , 'Proxy Server IP Address, only used when UseProxy = true')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_receiptto' , 'string' , '' , 'Address to send the receipt confirmation to for ORDERS only')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_receivetimeout' , 'number' , '30' , 'Default receive timeout for http-communication. Increase for slow servers')
@@ -886,7 +920,7 @@ DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_sendusername' , 'string
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_sendusing' , 'number' , '2' , '1=cdoSendUsingPickup (IIS SMTP Service must be installed), 2=cdoSendUsingPort')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_smsaccount' , 'string' , '' , 'SMS email address for protocol SMTP')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_smsprotocol' , 'string' , 'HTTP' , 'HTTP or SMTP(*)')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_smsprovider' , 'number' , '0' , '0=wireless-services.nl, 1=Aareon.nl')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_smsprovider' , 'number' , '0' , '0=unused, 1=aareon.nl')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_smtpauthenticate' , 'number' , '0' , 'Authentication when sendusing cdoSendUsingPort 0=cdoAnonymous, 1=cdoBasic, 2=cdoNTLM')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_smtpconnectiontimeout' , 'number' , '30' , 'SMTP timeout in seconds (future use)')
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_smtpserver' , 'string' , 'localhost' , 'Server when sendusing cdoSendUsingPort')
@@ -901,6 +935,8 @@ DEFINE_SETTING('PUO', 0001, 'WEB_PRSSYS', 'puo_lcl_friendly_sftp' , 'string
DEFINE_SETTING('PUO', 0001, 'WEB_PRSSYS', 'puo_lcl_friendly_http' , 'string' , 'Opdracht per SOAP gestuurd naar {0}' , 'Friendly text for http tracking')
DEFINE_SETTING('PUO', 0001, 'WEB_PRSSYS', 'puo_lcl_friendly_mailto' , 'string' , 'Opdracht per e-mail gestuurd naar {0}' , 'Friendly text for mail tracking')
DEFINE_SETTING('PUO', 0001, 'WEB_PRSSYS', 'puo_lcl_tracknoti' , 'string' , 'Notificatie {0} verstuurd aan {1}' , 'Friendly text for notification mail tracking')
DEFINE_SETTING('PUO', 0001, 'WEB_PRSSYS', 'puo_lcl_tracknoti_sys' , 'string' , 'Notificatie {0} verstuurd naar {1}' , 'Friendly text for system tracking {0} is notification, {1} is company')
DEFINE_SETTING('PUO', 0001, 'WEB_PRSSYS', 'puo_lcl_tracknoti_sys_fail' , 'string' , ' (na {0} gefaalde poging(en))' , 'Friendly text for system tracking failing')
DEFINE_SETTING('PUO', 0001, 'WEB_PRSSYS', 'puo_subjectprefix' , 'string' , 'Facilitor bestelling: Bestelopdracht nr.' , 'Mail subject prefix for BES orders (to be followed by ordernr)')
DEFINE_SETTING('PUO', 0001, 'WEB_PRSSYS', 'puo_subjectprefixcnt' , 'string' , 'Facilitor contract nr.' , 'Mail subject prefix for CNT')
DEFINE_SETTING('PUO', 0001, 'WEB_PRSSYS', 'puo_subjectprefixres' , 'string' , 'Facilitor reservering nr.' , 'Mail subject prefix for RES')

View File

@@ -118,10 +118,10 @@ CREATE_TABLE(fac_groep, 0)
NUMBER(10)
CONSTRAINT fac_k_fac_groep_key PRIMARY KEY,
fac_groep_omschrijving
VARCHAR2(30)
VARCHAR2(60)
CONSTRAINT fac_c_fac_groep_omschrijving CHECK(fac_groep_omschrijving IS NOT NULL),
fac_groep_upper
VARCHAR2(30),
VARCHAR2(60),
-- CONSTRAINT fac_c_fac_groep_upper CHECK(fac_groep_upper IS NOT NULL),
fac_groep_collega
NUMBER(1)
@@ -621,6 +621,8 @@ CREATE_TABLE(fac_notificatie, 0)
fac_srtnotificatie_key
NUMBER(10)
REFERENCES fac_srtnotificatie(fac_srtnotificatie_key) ON DELETE CASCADE,
fac_notificatie_naam -- puur informatief voor logging/support, bijvoorbeeld opdrachtnummer
VARCHAR(80),
fac_notificatie_status
NUMBER(3)
NOT_NULL(fac_notificatie_status, fac_c_fac_notificatie_status),
@@ -640,6 +642,10 @@ CREATE_TABLE(fac_notificatie, 0)
// REFERENCES prs_bedrijfadres(prs_bedrijfadres_key) ON DELETE CASCADE,
fac_notificatie_receiver_email
VARCHAR2(255),
fac_notificatie_email_cc
VARCHAR2(4000),
fac_notificatie_email_bcc
VARCHAR2(4000),
fac_notificatie_receiver_phone
VARCHAR2(30),
fac_notificatie_oms
@@ -670,7 +676,13 @@ CREATE_TABLE(fac_notificatie, 0)
DEFAULT SYSDATE NOT NULL,
fac_notificatie_failcount
NUMBER(10)
DEFAULT 0 NOT NULL
DEFAULT 0 NOT NULL,
fac_notificatie_failmessage /* de laatste failmessage, rest zoek je maar in Putorders logging */
VARCHAR(4000),
fac_notificatie_faildatum // de laatste
DATE,
fac_notificatie_realuser
VARCHAR2(64)
);
/* Welke notificatiejobs bestaan er
* Vermelding hierin veroorzaakt periodieke notificaties
@@ -752,8 +764,6 @@ CREATE_TABLE(fac_import_app, 0)
VARCHAR(32),
fac_import_app_loglevel
NUMBER(1) DEFAULT 0 NOT NULL,
fac_import_app_action
VARCHAR(320) DEFAULT 'ORACLE' NOT NULL,
fac_import_app_csv
NUMBER(1) DEFAULT 0 NOT NULL
);
@@ -867,7 +877,7 @@ CREATE_TABLE(fac_activiteit, 0)
fac_activiteit_eenheid -- 1=dagelijks, 2=wekelijk, 3=maandelijk, 4=jaarlijks, null=eenmalig. Niet beschikbaar: uurlijks(0)
NUMBER(1)
DEFAULT(1)
CONSTRAINT fac_c_fac_activiteit_eenheid CHECK (fac_activiteit_eenheid IN (1,2,3,4) OR fac_activiteit_eenheid IS NULL),
CONSTRAINT fac_c_fac_activiteit_eenheid CHECK (fac_activiteit_eenheid IN (1,2,3,4,5) OR fac_activiteit_eenheid IS NULL),
fac_activiteit_bits -- details, afhankelijk van de mode (mag best null zijn)
NUMBER(4),
fac_activiteit_periode
@@ -1036,6 +1046,8 @@ CREATE_TABLE(fac_imp_onrgoed1, 0)
, alg_locatie_omschrijving VARCHAR2(60)
, alg_gebouw_code VARCHAR2(12)
, alg_gebouw_naam VARCHAR2(60)
, alg_gebouw_adres VARCHAR2(50)
, alg_gebouw_postcode VARCHAR2(12)
, alg_srtgebouw_omschrijving VARCHAR2(30)
, alg_locatie_verantw VARCHAR2(30)
, alg_locatie_verantw_tel VARCHAR2(20)
@@ -1071,12 +1083,15 @@ CREATE_TABLE(fac_imp_mld, 0)
, mld_stdmelding_omschrijving VARCHAR2(60)
, mld_stdmelding_groep VARCHAR2(30)
, mld_stdmelding_kostensoort VARCHAR2(60)
, mld_stdmelding_urgentie VARCHAR2(6)
, mld_stdmelding_uitvoertijd NUMBER(3)
, mld_stdmelding_accepttijd NUMBER(12,5)
, mld_stdmelding_accepttijd1 NUMBER(12,5)
, mld_stdmelding_accepttijd2 NUMBER(12,5)
, mld_stdmelding_accepttijd4 NUMBER(12,5)
, mld_stdmelding_uitvoertijd NUMBER(12,5)
, mld_stdmelding_uitvoertijd1 NUMBER(12,5)
, mld_stdmelding_uitvoertijd2 NUMBER(12,5)
, mld_stdmelding_uitvoertijd4 NUMBER(12,5)
, mld_discipline_directklaar NUMBER(1)
, mld_stdmelding_uitvoertijd1 NUMBER(3)
, mld_stdmelding_uitvoertijd2 NUMBER(3)
, mld_stdmelding_uitvoertijd4 NUMBER(3)
, prs_dienst VARCHAR2(60)
, mld_stdmelding_notfrontend VARCHAR2(1)
, alg_onrgoed_niveau VARCHAR2(1)
@@ -1088,6 +1103,7 @@ CREATE_TABLE(fac_imp_mld, 0)
, mld_stdmelding_slabewaken NUMBER(1)
, mld_stdmelding_externnr VARCHAR2(256)
, mld_stdmelding_image VARCHAR2(255)
, mld_stdmelding_objects_allowed NUMBER(1)
);
CREATE_TABLE(fac_imp_mldafmtxt, 0)
@@ -1182,9 +1198,9 @@ CREATE_TABLE(fac_imp_perslid, 0)
,prs_perslid_telefoonnr VARCHAR2 (20)
,prs_perslid_mobiel VARCHAR2 (20)
,prs_perslid_email VARCHAR2 (200)
,prs_srtperslid_omschrijving VARCHAR2 (60)
,prs_srtperslid_omschrijving VARCHAR2 (100)
,prs_perslid_nr VARCHAR2 (16)
,prs_perslid_oslogin VARCHAR2 (30)
,prs_perslid_oslogin VARCHAR2 (256)
,prs_perslid_wachtwoord VARCHAR2 (30)
,prs_perslid_partner_naam VARCHAR2(60)
,prs_perslid_partner_tussenv VARCHAR2(15)
@@ -1265,6 +1281,8 @@ CREATE_TABLE(fac_imp_ins, 0)
,ins_deel_vervaldatum DATE
,ins_deel_aantal NUMBER(8,2) DEFAULT(0) NOT NULL
,ins_deel_externnr VARCHAR2(256)
,ins_srtdeel_omschr_parent VARCHAR2 (100)
,ins_deel_omschr_parent VARCHAR2 (60)
);
CREATE_TABLE(fac_imp_sle, 0)
@@ -1376,7 +1394,7 @@ CREATE_TABLE(fac_imp_ext_bedrijf, 0)
prs_overeenkomst_nr VARCHAR2 (30),
prs_overeenkomst_datum DATE,
prs_bedrijf_email VARCHAR2 (100),
prs_bedrijf_opmerking VARCHAR2 (320),
prs_bedrijf_opmerking VARCHAR2 (4000),
prs_dienst_omschrijving VARCHAR2 (60),
alg_locatie_code VARCHAR2 (10),
alg_gebouw_code VARCHAR2 (12),
@@ -1399,11 +1417,12 @@ CREATE_TABLE(fac_imp_bedrijfadres, 0)
prs_bedrijfadres_xsl VARCHAR2 (256),
prs_bedrijfadres_ext VARCHAR2 (10),
prs_bedrijfadres_attachfile VARCHAR2 (256),
prs_bedrijfadres_username VARCHAR2 (32),
prs_bedrijfadres_username VARCHAR2 (128),
prs_bedrijfadres_password VARCHAR2 (320),
prs_bedrijfadres_plugin VARCHAR2 (320),
prs_bedrijfadres_plugindata VARCHAR2 (4000),
prs_bedrijfadres_sender VARCHAR2 (512),
prs_bedrijfadres_replyaddress VARCHAR2 (512),
prs_bedrijfadres_lockuser_key NUMBER (10),
prs_bedrijfadres_lockexpire NUMBER (10)
);
@@ -1435,6 +1454,29 @@ CREATE_TABLE(fac_imp_oprognose, 0) (
VARCHAR2(128)
);
CREATE_TABLE(fac_imp_taak_mjob, 0)
( ins_deel_key NUMBER(10)
, ctr_discipline_key NUMBER(10)
, ismjob NUMBER(1)
, ins_srtcontrole_omschrijving VARCHAR2(60)
, ins_srtcontrole_key NUMBER(10)
, ins_srtcontrole_opmerking VARCHAR2(320)
, ins_srtcontrole_groep VARCHAR2(60)
, ins_srtcontrole_prioriteit NUMBER(3)
, fin_btwtabelwaarde_key NUMBER(10)
, prs_kostenplaats_key NUMBER(10)
, ins_srtcontroledl_xcp_aantal NUMBER(8,2)
, ins_srtcontroledl_xcp_aanteh VARCHAR2(30)
, ins_srtcontroledl_xcp_perc NUMBER(3)
, ins_srtcontroledl_xcp_opmerk VARCHAR2(320)
, ins_srtcontroledl_xcp_eenheid NUMBER(3)
, ins_srtcontroledl_xcp_periode NUMBER(6,2)
, ins_srtcontroledl_xcp_start DATE
, ins_srtcontroledl_xcp_eind DATE
, ins_srtcontroledl_xcp_materia NUMBER(9,2)
, prs_dienst_omschrijving VARCHAR2(60)
, ins_srtcontroledl_xcp_key NUMBER(10)
);
CREATE_TABLE (fac_setting,0) (
fac_setting_key
@@ -1495,7 +1537,8 @@ CREATE_TABLE (fac_version, 0) (
fac_version_putorders_date DATE,
fac_version_scheduler_date DATE,
fac_version_notify_date DATE,
fac_version_cleanup_date DATE
fac_version_cleanup_date DATE,
fac_version_tasker_date DATE
);
CREATE_TABLE(fac_typestaffel, 0)
@@ -1524,7 +1567,9 @@ CREATE_TABLE(fac_tracking, 0)
// Note: this column is defined in PRS_TAB.SRC
// prs_perslid_key NUMBER (10) REFERENCES prs_perslid (prs_perslid_key) ON DELETE SET NULL,
fac_tracking_oms
VARCHAR2(2048 CHAR)
VARCHAR2(2048 CHAR),
fac_tracking_subject_refkey /* optionele verwijzing naar iets (bv discipline) dat in de omschrijving genoemd wordt */
NUMBER (10)
);
CREATE_TABLE( fac_menuitems, 0)
@@ -1533,7 +1578,7 @@ CREATE_TABLE( fac_menuitems, 0)
fac_menuitems_groep NUMBER(1), /* 0=personal, 1=professional, 2=appmanagement, 3=mobile*/
fac_menuitems_label VARCHAR2 (30 CHAR) NOT NULL,
fac_menuitems_oms VARCHAR2 (60 CHAR),
fac_menuitems_module VARCHAR2 (3 BYTE),
fac_menuitems_module VARCHAR2 (3 CHAR),
fac_menuitems_url VARCHAR2 (60 CHAR),
fac_menuitems_srtdisc NUMBER(1),
fac_menuitems_disc NUMBER(1),
@@ -1610,6 +1655,8 @@ CREATE_TABLE(fac_nieuws, 0)
fac_nieuws_parentkey NUMBER(10) REFERENCES fac_nieuws(fac_nieuws_key) ON DELETE CASCADE
// Note: this column is defined in PRS_TAB.SRC
// prs_perslid_key NUMBER(10) REFERENCES prs_perslid(prs_perslid_key) ON DELETE SET NULL
// Note: this column is defined in MLD_TAB.SRC
// mld_melding_key NUMBER(10) REFERENCES mld_melding(mld_melding_key) ON DELETE SET NULL
);
CREATE_TABLE(fac_faq, 0)
@@ -1785,6 +1832,7 @@ CREATE_TABLE(fac_imp_flex, 0)
kenmerk_niveau VARCHAR2(255),
kenmerk_verplicht VARCHAR2(255),
kenmerk_groep VARCHAR2(255),
kenmerk_rolcode VARCHAR2(255),
kenmerk_volgnummer VARCHAR2(255),
kenmerk_default VARCHAR2(4000),
kenmerk_type VARCHAR2(255),
@@ -2065,12 +2113,16 @@ CREATE_TABLE(fac_email_setting, 0)
fac_email_setting_action VARCHAR2 (255),
fac_email_setting_aanmaak DATE DEFAULT SYSDATE,
fac_email_setting_expire DATE,
fac_email_setting_attachpath VARCHAR2 (255),
fac_email_setting_attachpath VARCHAR2 (255) DEFAULT '*flexfilespath',
fac_email_setting_attachext VARCHAR2(255),
fac_email_setting_reqattachext VARCHAR2(255),
fac_email_setting_attachmaxkb NUMBER(10), -- Kilobyte
fac_email_setting_loglevel NUMBER(3) DEFAULT 0 NOT NULL,
fac_email_setting_text VARCHAR2 (320), -- signaaltekst in onderwerpregel
fac_email_setting_opmerking VARCHAR2 (320),
fac_email_setting_ai_prompt VARCHAR2 (4000),
// Note: this column is defined in MLD_TAB.SRC
// mld_stdmelding_key NUMBER(10) REFERENCES mld_stdmelding(mld_stdmelding_key) ON DELETE CASCADE,
// Note: this column is defined in PRS_TAB.SRC
// prs_perslid_key_auth NUMBER(10) REFERENCES prs_perslid(prs_perslid_key)
CONSTRAINT fac_u_fac_email_setting_user UNIQUE(fac_email_setting_user, fac_email_setting_volgnr)
@@ -2109,9 +2161,10 @@ CREATE_TABLE(fac_imp_inspectie, 0) (
ins_srtcontrole_omschrijving VARCHAR2 (60),
ins_srtcontrole_info VARCHAR2 (320),
ins_srtcontrole_periode VARCHAR2 (7),
ins_srtcontrole_mode VARCHAR2 (1),
ins_srtcontrole_eenheid VARCHAR2 (1),
ins_srtcontrole_bits VARCHAR2 (4)
ins_srtcontrole_mode VARCHAR2 (1),
ins_srtcontrole_eenheid VARCHAR2 (1),
ins_srtcontrole_bits VARCHAR2 (4),
ctr_discipline_omschrijving VARCHAR2 (60)
);
-- AAIT#25547
@@ -2137,9 +2190,10 @@ CREATE_TABLE(fac_imp_cnt, 0)
(
nummer_intern VARCHAR2 (30),
nummer_extern VARCHAR2 (30),
cnt_soort VARCHAR2 (30),
cnt_soort VARCHAR2 (60),
beschrijving VARCHAR2 (50),
mantel_nr VARCHAR2 (30),
mantel_nr_versie VARCHAR2 (10),
omschrijving VARCHAR2 (1000),
afdeling VARCHAR2 (15),
perslid_eig VARCHAR2 (30),
@@ -2149,17 +2203,23 @@ CREATE_TABLE(fac_imp_cnt, 0)
datum_eind DATE,
datum_opzeg DATE,
datum_rappel DATE,
bedrijf_naam VARCHAR2 (60),
contact_naam VARCHAR2 (30),
soortcontact VARCHAR2 (1),
bedrijf_naam VARCHAR2 (200),
contact_naam VARCHAR2 (200),
kpn_code VARCHAR2 (30),
kostensoort VARCHAR2 (60),
bedrag NUMBER (11,2),
bedrag_termijn NUMBER (11,2),
uurtarief NUMBER (6,2),
korting NUMBER (4,2),
locatiecode VARCHAR2 (10),
terreincode VARCHAR2 (12),
gebouwcode VARCHAR2 (12),
verdiepingcode NUMBER (3),
ruimtecode VARCHAR2 (20),
verlengen VARCHAR2 (1),
versie VARCHAR2(10),
dienst VARCHAR2(60),
versie VARCHAR2 (10),
dienst VARCHAR2 (60),
flex1 VARCHAR2 (255),
flex2 VARCHAR2 (255),
flex3 VARCHAR2 (255),
@@ -2233,7 +2293,6 @@ CREATE_TABLE(fac_api, 0)
fac_api_viewmapping_json VARCHAR2 (4000),
fac_api_stylesheet VARCHAR2 (64),
fac_api_stylesheet_out VARCHAR2 (64),
fac_import_app_key NUMBER (10),
fac_api_options_json VARCHAR2 (4000)
);
@@ -2287,6 +2346,7 @@ CREATE_TABLE(faq_kenmerk,0)
faq_kenmerk_key NUMBER(10) CONSTRAINT faq_k_faq_kenmerk_key PRIMARY KEY,
faq_discipline_key NUMBER(10),
faq_kenmerk_volgnr NUMBER(3) NOT NULL,
faq_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL,
faq_kenmerk_omschrijving VARCHAR2(50),
faq_kenmerk_upper VARCHAR2(50),
faq_kenmerk_code VARCHAR2(60),
@@ -2399,4 +2459,29 @@ CREATE_TABLE(fac_layout, 0)
DEFAULT SYSDATE
);
CREATE_TABLE(fac_cust, 0)
(
fac_cust_key NUMBER(10)
CONSTRAINT fac_k_fac_cust_key PRIMARY KEY,
fac_cust_customerid VARCHAR(4) NOT NULL,
fac_cust_schema VARCHAR(30) DEFAULT '00' NOT NULL, // kopie fac_version_schema van de gebruiker
fac_cust_enabled NUMBER(1) DEFAULT 1 NOT NULL, // future use, disable during upgrades?
fac_cust_aanmaak DATE DEFAULT SYSDATE NOT NULL,
CONSTRAINT fac_u_fac_cust UNIQUE(fac_cust_customerid)
);
CREATE_TABLE(fac_task, 0)
(
fac_task_key NUMBER(10)
CONSTRAINT fac_k_fac_task_key PRIMARY KEY,
fac_cust_key NUMBER(10) REFERENCES fac_cust(fac_cust_key) ON DELETE CASCADE,
fac_task_code VARCHAR(32) NOT NULL,
fac_task_nextrun DATE,
fac_task_lastrun DATE,
fac_task_flags NUMBER(3) DEFAULT 1 NOT NULL, -- +1=enabled
fac_task_aanmaak DATE DEFAULT SYSDATE NOT NULL,
CONSTRAINT fac_u_fac_task UNIQUE(fac_cust_key, fac_task_code)
);
REGISTERONCE('$Id$')

View File

@@ -335,12 +335,17 @@ DECLARE
loms web_user_messages.web_user_mess_dsc%TYPE;
lxmlnode fac_srtnotificatie.fac_srtnotificatie_xmlnode%TYPE;
lparamkey web_user_messages.web_user_mess_action_params%TYPE;
realuser VARCHAR(64);
BEGIN
UPDATE_PRIMARY_KEY(fac_notificatie_key, fac_s_fac_notificatie_key);
dbms_application_info.read_client_info (:NEW.fac_notificatie_realuser); -- is gezet achteraan m_connections.inc, wordt opgepikt door putorders
-- 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
IF BITAND (:NEW.fac_notificatie_status, 1) = 1
AND :new.prs_perslid_key_receiver IS NOT NULL
AND :new.fac_notificatie_queue = 'DEFAULT'
THEN
-- strip zodat we alleen de eerste regel overhouden
loms := SUBSTR(:NEW.fac_notificatie_oms, 1, 512);
@@ -397,6 +402,26 @@ BEGIN
END;
/
CREATE_TRIGGER(fac_t_fac_notificatie_A_IU)
AFTER INSERT OR UPDATE
ON fac_notificatie
FOR EACH ROW
BEGIN
IF INSERTING OR UPDATING ('fac_notificatie_notbefore')
THEN
IF BITAND(:NEW.fac_notificatie_status, 2 + 4 + 32) > 0 -- Alleen EMAIL, SMS of APPPUSH
OR :NEW.prs_bedrijfadres_key IS NOT NULL
OR :NEW.fac_notificatie_systeemadres IS NOT NULL
THEN
tsk.starttask(p_taskcode => 'PUTORDERS', p_nextrun => :NEW.fac_notificatie_notbefore);
ELSIF :NEW.fac_notificatie_queue = 'EXCHANGE'
THEN
tsk.starttask(p_taskcode => 'EXCHANGE', p_nextrun => :NEW.fac_notificatie_notbefore);
END IF;
END IF;
END;
/
CREATE_TRIGGER(fac_t_fac_notificatie_job_B_IU)
BEFORE INSERT OR UPDATE ON fac_notificatie_job
FOR EACH ROW
@@ -541,10 +566,10 @@ BEGIN
: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
:new.prs_perslid_key := sys_context('USERENV', 'CLIENT_IDENTIFIER');
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),
@@ -554,22 +579,64 @@ BEGIN
END;
/
-- Door de COMPOUND TRIGGER kunnen we notifytrackingbedrijven doen in de AFTER STATEMENT
-- met alleen de newkey als parameter. Dat kan omdat bij mijn weten er eigenlijk
-- nooit een insert into meerdere FAC_TRACKING records is in een enkel statement
CREATE_TRIGGER(fac_t_fac_tracking_b_i)
BEFORE INSERT ON fac_tracking
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_tracking_key, fac_s_fac_tracking_key);
-- dit event moet mogelijk ook actief worden genotificeerd,
-- dat kan expliciet worden onderdrukt door de omschrijving te prefixen met een #
IF SUBSTR(:new.fac_tracking_oms, 1, 1) = '#'
THEN
-- 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
ELSE
fac.notifytracking(:new.fac_srtnotificatie_key, :new.prs_perslid_key, :new.fac_tracking_oms, :new.fac_tracking_refkey, :new.fac_tracking_key);
END IF;
FOR INSERT
ON fac_tracking
COMPOUND TRIGGER
newkey fac_tracking.fac_tracking_key%TYPE;
srtkey fac_tracking.fac_srtnotificatie_key%TYPE;
refkey fac_tracking.fac_tracking_refkey%TYPE;
omschr fac_tracking.fac_tracking_oms%TYPE;
prskey fac_tracking.prs_perslid_key%TYPE;
notify_bedrijven BOOLEAN := FALSE;
BEFORE EACH ROW
IS
BEGIN
UPDATE_PRIMARY_KEY(fac_tracking_key, fac_s_fac_tracking_key);
IF newkey IS NOT NULL THEN
raise_application_error(-20001, 'Unexpected multi-insert of fac_tracking'); -- for safety
END IF;
-- dit event moet mogelijk ook actief worden genotificeerd,
-- dat kan expliciet worden onderdrukt door de omschrijving te prefixen met een # of @
IF SUBSTR(:new.fac_tracking_oms, 1, 1) = '#'
THEN
-- bedoeld om te onderdrukken, maar moeten we wel weer verwijderen
:new.fac_tracking_oms := SUBSTR(:new.fac_tracking_oms, 2);
-- En nu dus niet notificeren
NULL;
ELSIF SUBSTR(:new.fac_tracking_oms, 1, 1) = '@' -- Technische adressen niet notificeren, wel personen
THEN
:new.fac_tracking_oms := SUBSTR(:new.fac_tracking_oms, 2);
newkey := :new.fac_tracking_key;
ELSE
newkey := :new.fac_tracking_key;
notify_bedrijven := TRUE;
-- Alleen hier ook fac.notifytrackingbedrijven uitvoeren
END IF;
srtkey := :new.fac_srtnotificatie_key;
refkey := :new.fac_tracking_refkey;
prskey := :new.prs_perslid_key;
omschr := :new.fac_tracking_oms;
END BEFORE EACH ROW;
AFTER STATEMENT
IS
BEGIN
IF newkey IS NOT NULL
THEN
fac.notifytracking(srtkey, prskey, omschr, refkey, newkey);
IF notify_bedrijven
THEN
fac.notifytrackingbedrijven (newkey);
END IF;
END IF;
END AFTER STATEMENT;
END;
/
@@ -1037,6 +1104,38 @@ BEGIN
END;
/
CREATE_TRIGGER(fac_t_fac_cust_B_I)
BEFORE INSERT ON fac_cust
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_cust_key, fac_s_fac_cust_key);
END;
/
CREATE_TRIGGER(fac_t_fac_cust_B_IU)
BEFORE INSERT OR UPDATE ON fac_cust
FOR EACH ROW
BEGIN
:new.fac_cust_customerid := UPPER(:new.fac_cust_customerid);
END;
/
CREATE_TRIGGER(fac_t_fac_task_B_I)
BEFORE INSERT ON fac_task
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_task_key, fac_s_fac_task_key);
END;
/
CREATE_TRIGGER(fac_t_fac_task_B_IU)
BEFORE INSERT OR UPDATE ON fac_task
FOR EACH ROW
BEGIN
:new.fac_task_code := UPPER(:new.fac_task_code);
END;
/
-- CREATE_TRIGGER(fac_t_fac_queue_B_I)
-- BEFORE INSERT ON fac_queue
-- FOR EACH ROW
@@ -1045,4 +1144,12 @@ END;
-- END;
-- /
CREATE_TRIGGER(fac_t_fac_note_group_B_I)
BEFORE INSERT ON fac_note_group
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fac_note_group_key, fac_s_fac_note_group_key);
END;
/
REGISTERRUN('$Id$')

View File

@@ -615,71 +615,62 @@ AS
AND res_rsv_deel_van;
-- Notificatie voor opdrachten in de queue die al meer dan S(puo_failalert_threshold) minuten gefaald zijn
-- Het onderwerp ondersteunt placeholders, default is zoiets:
-- '##APPL## waarschuwing (##CUST##): Het versturen van ##ENTITYKEY## van ##DATETIME## naar ##ADRES## is na ##NR## pogingen nog niet gelukt. Controleer de configuratie.'
CREATE_VIEW(fac_v_noti_facorderqueuefails, 0)
(
sender,
receiver,
text,
par1,
code,
key,
xkey, xemail, xmobile, fac_srtnotificatie_key, attachments, xsender, prs_bedrijfadres_key
text
)
AS
SELECT '',
wg.prs_perslid_key,
LTRIM(lcl.L('lcl_facilitor_appl')) || ' alert: transmission of '
|| DECODE (
fac_srtnotificatie_code,
'ORDSNX',
'Order '
|| (SELECT mld_melding_key
|| '/'
|| mld_opdr_bedrijfopdr_volgnr
|| ' to '
|| COALESCE (prs_bedrijf_naam, '??')
FROM mld_opdr o, prs_bedrijf b
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key(+) AND mld_opdr_key = key),
'BES2SX',
'Procurement order '
|| (SELECT bes_bestelopdr_id || ' to ' || prs_bedrijf_naam
FROM bes_bestelopdr o, prs_bedrijf b
WHERE o.prs_bedrijf_key = b.prs_bedrijf_key AND bes_bestelopdr_key = key),
key)
|| ' has failed '
|| COUNT ( * )
|| ' times since '
|| TO_CHAR (MIN (ft.fac_tracking_datum), 'DD-MM-YYYY HH24:MI')
|| ' (' || MIN(fac_version_cust) || ')',
NULL,
NULL,
NULL,
NULL
, NULL xemail
, NULL xmobile
, NULL fac_srtnotificatie_key
, NULL attachments
, NULL xsender
, NULL prs_bedrijfadres_key
FROM fac_v_orderqueue q,
fac_tracking ft,
fac_srtnotificatie fs,
fac_functie f,
fac_v_webgebruiker wg,
fac_version
WHERE f.fac_functie_key = wg.fac_functie_key
AND f.fac_functie_code = 'WEB_PRSSYS'
AND ft.fac_srtnotificatie_key = fs.fac_srtnotificatie_key
AND ft.fac_tracking_refkey = q.key
AND fac_srtnotificatie_code IN ('ORDSNX', 'BES2SX')
GROUP BY xmlnode,
key,
fac_srtnotificatie_code,
wg.prs_perslid_key
HAVING (SYSDATE - MIN (ft.fac_tracking_datum)) * 24 * 60 > fac.getSetting('puo_failalert_threshold');
SELECT wg.prs_perslid_key,
REPLACE (
REPLACE (
REPLACE (
REPLACE (
REPLACE (
REPLACE (lcl.l('lcl_noti_facorderqueuefails_subject')
, '##APPL##'
, lcl.l ('lcl_facilitor_appl'))
, '##ENTITYKEY##'
, DECODE (fac_srtnotificatie_xmlnode
, 'opdracht', 'Order '
|| (SELECT mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr
FROM mld_opdr o
WHERE mld_opdr_key = fac_notificatie_refkey)
, 'bestelopdr', 'Procurement order '
|| (SELECT bes_bestelopdr_id
FROM bes_bestelopdr o
WHERE bes_bestelopdr_key = fac_notificatie_refkey)
, 'reservering', 'Reservation '
|| (SELECT res_reservering_key || '/' || res_rsv_ruimte_volgnr
FROM res_rsv_ruimte o
WHERE res_rsv_ruimte_key = fac_notificatie_extrakey)
, fac_srtnotificatie_xmlnode || ' ' || fac_notificatie_refkey))
, '##ADRES##'
, COALESCE ((SELECT (prs_bedrijf_naam)
FROM prs_bedrijf b, prs_bedrijfadres pba
WHERE b.prs_bedrijf_key = pba.prs_bedrijf_key AND pba.prs_bedrijfadres_key = q.prs_bedrijfadres_key)
, '??'))
, '##NR##'
, fac_notificatie_failcount)
, '##DATETIME##'
, TO_CHAR (q.fac_notificatie_datum, 'DD-MM-YYYY HH24:MI'))
, '##CUST##'
, fac_version_cust)
FROM fac_notificatie q,
fac_srtnotificatie fs,
fac_functie f,
fac_v_webgebruiker wg,
fac_version
WHERE f.fac_functie_key = wg.fac_functie_key
AND f.fac_functie_code = 'WEB_PRSSYS'
AND q.fac_srtnotificatie_key = fs.fac_srtnotificatie_key
AND BITAND (q.fac_notificatie_status, 64) = 0
AND (q.prs_bedrijfadres_key IS NOT NULL OR q.fac_notificatie_systeemadres IS NOT NULL)
AND q.fac_notificatie_failcount > 0
AND (SYSDATE - q.fac_notificatie_datum) * 24 * 60 > fac.getSetting ('puo_failalert_threshold');
-- dagelijkse notificatie voor verwoede inlogpogingen (1 regel per user beetje veel misschien)
CREATE OR REPLACE FORCE VIEW fac_v_noti_auditfail_day
@@ -723,99 +714,23 @@ SELECT fac_notificatie_receiver_email, fac_notificatie_receiver_phone, fac_notif
fac_notificatie_extrakey, fac_notificatie_sender_email, fac_notificatie_lang, fac_notificatie_systeemadres,
fac_notificatie_attachments, fac_srtnotificatie_delay, fac_srtnotificatie_srtkm_key, fac_srtnotificatie_noticollegas,
prs_perslid_key_receiver, fac_notificatie_notbefore, fac_notificatie_failcount, prs_bedrijfadres_key,
prs_perslid_key_sender, fac_notificatie_geturl, fac_notificatie_getbody
prs_perslid_key_sender, fac_notificatie_geturl, fac_notificatie_getbody, fac_notificatie_naam, fac_notificatie_realuser
FROM fac_notificatie n
LEFT OUTER JOIN fac_srtnotificatie sn ON n.fac_srtnotificatie_key = sn.fac_srtnotificatie_key;
-- Queue met naar leveranciers te verzenden opdrachten tbv PutOrders: wat-moet-naar-wie-en-hoe
-- Tijdelijke dummy die niets oplevert, droppen met DB51
CREATE_VIEW(fac_v_orderqueue, 0)
(prs_bedrijf_key, alg_locatie_key, xmlnode, key, reference, sender, teverzenden_datum)
AS -- (bestel)opdrachten
SELECT b.prs_bedrijf_key, l.alg_locatie_key, 'bestelopdr', o.bes_bestelopdr_key,
o.bes_bestelopdr_id, alg_locatie_email, NULL teverzenden_datum
FROM prs_bedrijf b, bes_bestelopdr o, mld_adres ma, alg_locatie l
WHERE b.prs_bedrijf_key = o.prs_bedrijf_key
AND o.mld_adres_key_lev = ma.mld_adres_key
AND ma.alg_locatie_key = l.alg_locatie_key(+)
AND EXISTS (SELECT '' FROM prs_bedrijfadres ba WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key AND ba.prs_bedrijfadres_type = 'B')
AND o.bes_bestelopdr_status = 3
UNION ALL -- (melding)opdachten
SELECT b.prs_bedrijf_key, COALESCE (l1.alg_locatie_key, l2.alg_locatie_key), 'opdracht', o.mld_opdr_key,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr, COALESCE (l1.alg_locatie_email, l2.alg_locatie_email), o.mld_opdr_teverzenden_datum
FROM prs_bedrijf b, mld_opdr o, mld_melding m, mld_adres ma, alg_locatie l1, alg_locatie l2
WHERE b.prs_bedrijf_key = o.mld_uitvoerende_keys
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_adres_key = ma.mld_adres_key(+)
AND ma.alg_locatie_key = l1.alg_locatie_key(+)
AND m.mld_alg_locatie_key = l2.alg_locatie_key(+)
AND EXISTS (SELECT '' FROM prs_bedrijfadres ba WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key AND ba.prs_bedrijfadres_type = 'O')
AND (((o.mld_statusopdr_key = 5 OR o.mld_statusopdr_key = 4) AND o.mld_opdr_teverzenden = 1)
OR (o.mld_opdr_teverzenden = 2))
AND o.mld_opdr_verzonden IS NULL
UNION ALL -- contracten
SELECT b.prs_bedrijf_key, l.alg_locatie_key, 'contract', c.cnt_contract_key,
cnt_contract_nummer_intern, COALESCE (l.alg_locatie_email, ins_discipline_email), NULL teverzenden_datum
FROM prs_bedrijf b, cnt_contract c, ins_tab_discipline d, alg_locatie l,
( SELECT cnt_contract_key,
DECODE (MIN (cp1.cnt_alg_plaats_code),
'L', MIN (cp1.cnt_alg_plaats_key),
MIN (alg_boom.alg_locatie_key)) cnt_locatie_key
FROM cnt_contract_plaats cp1,
(SELECT alg_r.alg_ruimte_key, alg_r.alg_verdieping_key, alg_v.alg_gebouw_key, alg_g.alg_locatie_key, 'R' alg_type
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
SELECT TO_NUMBER (NULL), alg_v.alg_verdieping_key, alg_v.alg_gebouw_key, alg_g.alg_locatie_key, 'V' alg_type
FROM alg_verdieping alg_v, alg_gebouw alg_g
WHERE alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
UNION
SELECT TO_NUMBER (NULL), TO_NUMBER (NULL), alg_g.alg_gebouw_key, alg_g.alg_locatie_key, 'G' alg_type
FROM alg_gebouw alg_g) alg_boom
WHERE cp1.cnt_alg_plaats_key =
CASE cp1.cnt_alg_plaats_code
WHEN 'G' THEN alg_boom.alg_gebouw_key(+)
WHEN 'V' THEN alg_boom.alg_verdieping_key(+)
WHEN 'R' THEN alg_boom.alg_ruimte_key(+)
END
AND cp1.cnt_alg_plaats_code = alg_boom.alg_type(+)
AND cp1.cnt_contract_plaats_verwijder IS NULL
GROUP BY cnt_contract_key HAVING COUNT (1) = 1) cp
WHERE b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND d.ins_discipline_key = c.ins_discipline_key
AND c.cnt_contract_key = cp.cnt_contract_key(+)
AND cp.cnt_locatie_key = l.alg_locatie_key(+)
AND EXISTS (SELECT '' FROM prs_bedrijfadres ba WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key AND ba.prs_bedrijfadres_type = 'C')
AND c.cnt_contract_verwijder IS NULL
AND c.cnt_contract_looptijd_tot > SYSDATE
AND c.cnt_contract_teverzenden = 1
UNION ALL -- reserveringen, res_rsv_ruimte_key komt in extrakey
SELECT b.prs_bedrijf_key, l.alg_locatie_key, 'reservering', rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr, NULL sender, NULL teverzenden_datum
FROM prs_bedrijf b, res_rsv_ruimte rrr, alg_locatie l, alg_v_ruimte_gegevens_all ruimte_geg
, (SELECT res_ruimte_opstel_key, rr.res_ruimte_nr res_ruimte_nr
, rr.res_ruimte_key
, MIN (alg_ruimte_key) alg_ruimte_key
FROM res_ruimte_opstelling rro
, res_alg_ruimte rar
, res_ruimte rr
WHERE rro.res_ruimte_key = rar.res_ruimte_key
AND rr.res_ruimte_key = rar.res_ruimte_key
AND rar.res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_opstel_key
, rr.res_ruimte_nr
, rr.res_ruimte_key) opstelalg
WHERE rrr.res_rsv_ruimte_teverzenden IN (1, 2) -- nieuw/update
AND rrr.res_rsv_ruimte_verzonden IS NULL
AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+)
AND ruimte_geg.alg_ruimte_key = COALESCE (rrr.alg_ruimte_key, opstelalg.alg_ruimte_key)
AND b.prs_bedrijf_key = (SELECT MAX(rrd.prs_bedrijf_key) -- artikelen van verschillende leveranciers is unsupported
FROM res_disc_params rrd, res_artikel ra, res_rsv_artikel rra
WHERE rrd.res_ins_discipline_key = ra.res_discipline_key
AND rra.res_artikel_key = ra.res_artikel_key
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND ruimte_geg.alg_locatie_key = l.alg_locatie_key
AND EXISTS (SELECT '' FROM prs_bedrijfadres ba WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key AND ba.prs_bedrijfadres_type = 'R');
AS
SELECT -1 prs_bedrijf_key,
-1 alg_locatie_key,
'dontcare' xmlnode,
-1 key,
-1 reference,
'' sender,
SYSDATE teverzenden_datum
FROM DUAL
WHERE 0 = 1;
// PLANMATIG ONDERHOUDS views (OPROGNOSE)
-- Basisview voor intern gebruik
@@ -938,34 +853,33 @@ CREATE_VIEW (fac_v_imp_res_artikel_sync ,0) (hide_f_artikel_catalogus,
artikelMinimum
)
AS
SELECT (SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d
WHERE d.ins_discipline_key = res_discipline_key),
res_artikel_omschrijving,
TO_CHAR (res_artikel_key),
(SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d
WHERE d.ins_discipline_key = res_discipline_key),
(SELECT prs_kostensoort_oms
FROM ins_tab_discipline d, prs_kostensoort k
WHERE d.ins_discipline_key = res_discipline_key
AND d.prs_kostensoort_key = k.prs_kostensoort_key),
res_artikel_nr,
res_artikel_omschrijving,
res_artikel_eenheid,
TO_CHAR (res_artikel_prijs),
TO_CHAR (res_artikel_prijs_vast),
TO_CHAR (res_artikel_inkoopprijs),
TO_CHAR (res_artikel_kostenpersoneel),
TO_CHAR (res_artikel_kostenalgemeen),
TO_CHAR (res_artikel_btw),
res_artikel_opmerking,
res_artikel_groep,
TO_CHAR (res_artikel_volgnummer),
TO_CHAR (res_artikel_ingangsdatum, 'YYYYMMDD'),
TO_CHAR (res_artikel_vervaldatum, 'YYYYMMDD'),
TO_CHAR (res_artikel_minimum)
FROM res_v_aanwezigartikel;
SELECT d.ins_discipline_omschrijving,
a.res_artikel_omschrijving,
TO_CHAR (a.res_artikel_key),
d.ins_discipline_omschrijving,
(SELECT k.prs_kostensoort_oms
FROM prs_kostensoort k
WHERE k.prs_kostensoort_key = d.prs_kostensoort_key),
a.res_artikel_nr,
a.res_artikel_omschrijving,
a.res_artikel_eenheid,
TO_CHAR (a.res_artikel_prijs),
TO_CHAR (a.res_artikel_prijs_vast),
TO_CHAR (a.res_artikel_inkoopprijs),
TO_CHAR (a.res_artikel_kostenpersoneel),
TO_CHAR (a.res_artikel_kostenalgemeen),
TO_CHAR (a.res_artikel_btw),
a.res_artikel_opmerking,
a.res_artikel_groep,
TO_CHAR (a.res_artikel_volgnummer),
TO_CHAR (a.res_artikel_ingangsdatum, 'YYYYMMDD'),
TO_CHAR (a.res_artikel_vervaldatum, 'YYYYMMDD'),
TO_CHAR (a.res_artikel_minimum)
FROM res_v_aanwezigartikel a
, res_discipline d
WHERE d.ins_discipline_key = a.res_discipline_key
AND d.ins_discipline_verwijder IS NULL;
/* View met het maximale actuele menu van de huidige configuratie */
CREATE_VIEW (fac_v_menu, 0)
@@ -1079,92 +993,89 @@ AS
WHERE imp_log_applicatie = '$PutOrders$' AND imp_log_datum > SYSDATE - 10;
CREATE_VIEW (fac_v_lcrap_fe_vs_key_data, 0)
(
prs_perslid_key
, naam
, usertype
, oslogin
, last_login
, key_user
)
AS
SELECT x.prs_perslid_key,
naam,
usertype,
oslogin,
last_login,
a.key_user,
b.xd_user
FROM (SELECT p.prs_perslid_key,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key)
naam,
'user'
usertype,
COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2)
oslogin,
p.prs_perslid_login
last_login
FROM prs_v_aanwezigperslid p
WHERE ( prs_perslid_oslogin IS NULL
OR prs_perslid_oslogin NOT IN ('_FACILITOR', '_PUTORDERS', '_HMAIL'))
AND EXISTS -- op basis van groep + rechten
(SELECT 1
FROM fac_v_webgebruiker
WHERE prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT p.prs_perslid_key,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key)
naam,
'user'
usertype,
COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2)
oslogin,
NULL
last_login -- geen login (lees zonder rechten), dus telt als nooit recent ingelogd!
FROM prs_v_aanwezigperslid p
WHERE NOT EXISTS -- g<EFBFBD><EFBFBD>n groep + rechten!
(SELECT 1
FROM fac_v_webgebruiker gg
WHERE gg.prs_perslid_key = p.prs_perslid_key)
AND ( fac.getsetting ('mld_allow_for_others') = 1
OR EXISTS
(SELECT 1
FROM bes_disc_params dp, bes_discipline bd
WHERE dp.bes_disc_params_for_others = 1
AND bd.ins_discipline_key = dp.bes_ins_discipline_key
AND bd.ins_discipline_verwijder IS NULL))
UNION ALL -- FSN#27315: En ook eventuele "sensorusers" meetellen!
SELECT NULL prs_perslid_key,
sd.ins_srtdeel_omschrijving naam,
'sensorobject' usertype,
ins_deel_omschrijving oslogin,
ins_deel_statedate last_login -- recent actief dus tellen als recent
FROM ins_v_aanwezigdeel d, ins_srtdeel sd
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key AND NVL(sd.ins_srtdeel_sensortype,0) <> 0) x
LEFT JOIN -- 1=user heeft schrijfrechten op key-codes=notFE-codes
(SELECT DISTINCT prs_perslid_key, 1 key_user
FROM (SELECT g.prs_perslid_key, 1 key_user
FROM fac_v_webgebruiker g, fac_functie f
WHERE g.fac_functie_key = f.fac_functie_key
AND f.fac_functie_groep IN (1, 2)
AND g.fac_gebruiker_prs_level_write < 9
AND g.fac_gebruiker_alg_level_write < 9
UNION
SELECT p.prs_perslid_key, 1 key_user
FROM fac_groep fg, fac_gebruikersgroep fgg, prs_perslid p
WHERE fac_groep_collega = 1
AND fg.fac_groep_key = fgg.fac_groep_key
AND p.prs_perslid_key = fgg.prs_perslid_key
AND p.prs_perslid_verwijder IS NULL
AND fg.fac_groep_key IN ( SELECT fac_groep_key
FROM fac_gebruikersgroep
GROUP BY fac_groep_key
HAVING COUNT (prs_perslid_key) > 9))) a
ON x.prs_perslid_key = a.prs_perslid_key
LEFT JOIN -- FSN#30404: 1=user is cross-domain (xd) user
(SELECT p.prs_perslid_key, 1 xd_user
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
AND p.prs_perslid_apikey IS NOT NULL
AND ab.prs_bedrijf_key =
fac.safe_to_number (fac.getsetting ('xd_primary_bedrijfkey'))) b
ON x.prs_perslid_key = b.prs_perslid_key;
SELECT x.prs_perslid_key
, naam
, usertype
, oslogin
, last_login
, a.key_user
FROM (SELECT p.prs_perslid_key
, (SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key)
naam
, 'user'
usertype
, COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2)
oslogin
, p.prs_perslid_login
last_login
FROM prs_v_aanwezigperslid p
WHERE ( prs_perslid_oslogin IS NULL
OR prs_perslid_oslogin NOT IN ('_FACILITOR'
, '_PUTORDERS'
, '_HMAIL'
, '_SYSTEEM'))
AND EXISTS -- op basis van groep + rechten
(SELECT 1
FROM fac_v_webgebruiker
WHERE prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT p.prs_perslid_key
, (SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key)
naam
, 'user'
usertype
, COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2)
oslogin
, NULL
last_login -- geen login (lees zonder rechten), dus telt als nooit recent ingelogd!
FROM prs_v_aanwezigperslid p
WHERE NOT EXISTS -- g<><67>n groep + rechten!
(SELECT 1
FROM fac_v_webgebruiker gg
WHERE gg.prs_perslid_key = p.prs_perslid_key)
AND ( fac.getsetting ('mld_allow_for_others') = 1
OR EXISTS
(SELECT 1
FROM bes_disc_params dp, bes_discipline bd
WHERE dp.bes_disc_params_for_others = 1 AND bd.ins_discipline_key = dp.bes_ins_discipline_key AND bd.ins_discipline_verwijder IS NULL))
UNION ALL -- FSN#27315: En ook eventuele "sensorusers" meetellen!
SELECT NULL prs_perslid_key
, sd.ins_srtdeel_omschrijving naam
, 'sensorobject' usertype
, ins_deel_omschrijving oslogin
, ins_deel_statedate last_login -- recent actief dus tellen als recent
FROM ins_v_aanwezigdeel d, ins_srtdeel sd
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key AND NVL (sd.ins_srtdeel_sensortype, 0) <> 0) x
LEFT JOIN -- 1=user heeft schrijfrechten op key-codes=notFE-codes
(SELECT DISTINCT prs_perslid_key, 1 key_user
FROM (SELECT g.prs_perslid_key, 1 key_user
FROM fac_v_webgebruiker g, fac_functie f
WHERE g.fac_functie_key = f.fac_functie_key AND f.fac_functie_groep IN (1, 2) AND g.fac_gebruiker_prs_level_write < 9 AND g.fac_gebruiker_alg_level_write < 9
UNION
SELECT p.prs_perslid_key, 1 key_user
FROM fac_groep fg, fac_gebruikersgroep fgg, prs_perslid p
WHERE fac_groep_collega = 1
AND fg.fac_groep_key = fgg.fac_groep_key
AND p.prs_perslid_key = fgg.prs_perslid_key
AND p.prs_perslid_verwijder IS NULL
AND fg.fac_groep_key IN ( SELECT fac_groep_key
FROM fac_gebruikersgroep
GROUP BY fac_groep_key
HAVING COUNT (prs_perslid_key) > 9))) a
ON x.prs_perslid_key = a.prs_perslid_key;
-- Dit gaan we hanteren om API-users te tellen (zijn dan geen normale keyusers meer)
CREATE_VIEW (fac_v_lcrap_apiusers, 0)
@@ -1193,37 +1104,43 @@ AS
-- personen zonder rechten worden als passive_user toegevoegd
CREATE_VIEW (fac_v_lcrap_fe_vs_key, 0)
(
tijdstip,
all_users,
fe_users,
key_users,
devices,
passive_users,
xdkey_users,
recent_login
tijdstip
, licensed_fe_users
, licensed_key_users
, licensed_device_users
, licensed_passive_users
, fe_users
, key_users
, devices
, passive_users
, all_users
, recent_login
, licensed_delta_fe
, licensed_delta_key
, licensed_delta_device
, licensed_delta_passive
)
BEQUEATH DEFINER
AS
SELECT tijdstip,
all_users,
fe_users,
key_users,
NVL (system_users, 0),
NVL (passive_users, 0),
xdkey_users,
recent_login
FROM (SELECT SYSDATE
tijdstip,
COUNT (*)
all_users,
COUNT (*) - SUM (DECODE (x.key_user, NULL, DECODE (x.xd_user, NULL, 0, 1), 1))
fe_users,
SUM (DECODE (x.key_user, NULL, 0, DECODE (x.xd_user, NULL, 1, 0)))
key_users,
SUM (DECODE (x.key_user, NULL, 0, DECODE (x.xd_user, NULL, 0, 1)))
xdkey_users,
SUM (CASE WHEN x.last_login > SYSDATE - 100 THEN 1 ELSE 0 END)
recent_login
SELECT tijdstip
, fac.getsetting ('licensed_fe_users') licensed_fe_users
, fac.getsetting ('licensed_key_users') licensed_key_users
, fac.getsetting ('licensed_device_users') licensed_device_users
, fac.getsetting ('licensed_passive_users') licensed_passive_users
, fe_users
, key_users
, NVL (system_users, 0)
, NVL (passive_users, 0)
, all_users
, recent_login
, fac.safe_to_number (fac.getsetting ('licensed_fe_users')) - fe_users delta_fe
, fac.safe_to_number (fac.getsetting ('licensed_key_users')) - key_users delta_key
, fac.safe_to_number (fac.getsetting ('licensed_device_users')) - NVL (system_users, 0) delta_device
, fac.safe_to_number (fac.getsetting ('licensed_passive_users')) - NVL (passive_users, 0) delta_passive
FROM (SELECT SYSDATE tijdstip
, COUNT (*) all_users
, COUNT (*) - SUM (DECODE (x.key_user, NULL, 0, 1)) fe_users
, SUM (DECODE (x.key_user, NULL, 0, 1)) key_users
, SUM (CASE WHEN x.last_login > SYSDATE - 100 THEN 1 ELSE 0 END) recent_login
FROM fac_v_lcrap_fe_vs_key_data x
WHERE x.usertype = 'user') a
LEFT JOIN (SELECT COUNT (*) system_users
@@ -1890,7 +1807,8 @@ AS
AND ff.fac_functie_key(+) = fm.fac_functie_key
AND itd.ins_discipline_key(+) = fm.ins_discipline_key
AND isd.ins_srtdiscipline_key(+) = fm.ins_srtdiscipline_key
AND fac_menu_volgnr IS NOT NULL;
AND fac_menu_volgnr IS NOT NULL
AND fm.prs_perslid_key IS NULL;
CREATE_VIEW(fac_v_exp_flex_res, 0)
AS
@@ -1912,6 +1830,7 @@ AS
km.res_kenmerk_niveau kenmerk_niveau,
km.res_kenmerk_verplicht kenmerk_verplicht,
km.res_kenmerk_groep kenmerk_groep,
km.res_kenmerk_rolcode kenmerk_rolcode,
km.res_kenmerk_volgnummer kenmerk_volgnummer,
km.res_kenmerk_default kenmerk_default,
km.res_kenmerk_toonbaar kenmerk_toonbaar,
@@ -1958,6 +1877,7 @@ AS
bes_kenmerk_niveau kenmerk_niveau,
bes_kenmerk_verplicht kenmerk_verplicht,
bes_kenmerk_groep kenmerk_groep,
bes_kenmerk_rolcode kenmerk_rolcode,
bes_kenmerk_volgnummer kenmerk_volgnummer,
bes_kenmerk_default kenmerk_default,
bes_kenmerk_toonbaar kenmerk_toonbaar,
@@ -2053,6 +1973,7 @@ AS
mld_kenmerk_niveau kenmerk_niveau,
mld_kenmerk_verplicht kenmerk_verplicht,
mld_kenmerk_groep kenmerk_groep,
mld_kenmerk_rolcode kenmerk_rolcode,
mld_kenmerk_volgnummer kenmerk_volgnummer,
mld_kenmerk_default kenmerk_default,
mld_kenmerk_toonbaar kenmerk_toonbaar,
@@ -2206,6 +2127,7 @@ AS
km.cnt_kenmerk_niveau kenmerk_niveau,
km.cnt_kenmerk_verplicht kenmerk_verplicht,
km.cnt_kenmerk_groep kenmerk_groep,
km.cnt_kenmerk_rolcode kenmerk_rolcode,
km.cnt_kenmerk_volgnummer kenmerk_volgnummer,
km.cnt_kenmerk_default kenmerk_default,
km.cnt_kenmerk_toonbaar kenmerk_toonbaar,
@@ -2225,7 +2147,7 @@ AS
WHERE km.cnt_srtkenmerk_key = kms.cnt_srtkenmerk_key
AND kms.fac_kenmerkdomein_key = kmd.fac_kenmerkdomein_key(+)
AND kmd.fac_usrtab_key = fut.fac_usrtab_key(+)
AND km.cnt_srtcontract_key = cd.ins_discipline_key
AND km.cnt_srtcontract_key = cd.ins_discipline_key(+)
AND km.cnt_kenmerk_verwijder IS NULL
AND kms.cnt_srtkenmerk_verwijder IS NULL
AND kmd.fac_kenmerkdomein_verwijder IS NULL
@@ -2252,6 +2174,7 @@ AS
ins_kenmerk_niveau kenmerk_niveau,
ins_kenmerk_verplicht kenmerk_verplicht,
ins_kenmerk_groep kenmerk_groep,
ins_kenmerk_rolcode kenmerk_rolcode,
ins_kenmerk_volgnummer kenmerk_volgnummer,
ins_kenmerk_default kenmerk_default,
ins_kenmerk_toonbaar kenmerk_toonbaar,
@@ -2265,7 +2188,7 @@ AS
ins_discipline_omschrijving fclt_f_discipline,
ins_srtgroep_omschrijving fclt_f_groep,
ins_srtdeel_omschrijving fclt_f_objectsoort,
NULL fclt_f_empty_1,
NULL empty_1,
ins_kenmerk_meetwaarde kenmerk_meetwaarde,
ins_kenmerk_wissen kenmerk_wissen
FROM (SELECT kmd.*,
@@ -2378,6 +2301,7 @@ AS
NULL kenmerk_niveau,
km.fin_kenmerk_verplicht kenmerk_verplicht,
km.fin_kenmerk_groep kenmerk_groep,
km.fin_kenmerk_rolcode kenmerk_rolcode,
km.fin_kenmerk_volgnr kenmerk_volgnummer,
km.fin_kenmerk_default kenmerk_default,
km.fin_kenmerk_toonbaar kenmerk_toonbaar,
@@ -2417,6 +2341,7 @@ AS
, k.ins_kenmerk_niveau kenmerk_niveau
, k.ins_kenmerk_verplicht kenmerk_verplicht
, k.ins_kenmerk_groep kenmerk_groep
, k.ins_kenmerk_rolcode kenmerk_rolcode
, k.ins_kenmerk_volgnummer kenmerk_volgnummer
, k.ins_kenmerk_default kenmerk_default
, k.ins_kenmerk_toonbaar kenmerk_toonbaar
@@ -2429,9 +2354,9 @@ AS
, TO_CHAR(k.ins_kenmerk_verwijder, 'YYYY-MM-DD HH24:MI:SS') kenmerk_verwijder
, p.ins_discipline_omschrijving fclt_f_discipline
, c.ins_srtcontrole_omschrijving fclt_f_srtcontrole
, NULL fclt_f_empty_1
, NULL fclt_f_empty_2
, NULL fclt_f_empty_3
, NULL empty_1
, NULL empty_2
, NULL empty_3
, ins_kenmerk_wissen kenmerk_wissen
FROM ins_kenmerk k
, ins_srtkenmerk s
@@ -2672,6 +2597,7 @@ AS
kenmerk,
CASE
WHEN km.faq_kenmerk_kenmerktype = 'R'
OR km.faq_kenmerk_kenmerktype = 'r'
OR km.faq_kenmerk_kenmerktype = 'S'
THEN
flx.getdomeinwaarde (km.fac_kenmerkdomein_key,
@@ -2701,7 +2627,7 @@ AS
END
waarde_d,
CASE
WHEN km.faq_kenmerk_kenmerktype IN ('R', 'S')
WHEN km.faq_kenmerk_kenmerktype IN ('R', 'r', 'S')
THEN
flx.getdomeinwaarde (km.fac_kenmerkdomein_key, kw.faq_kenmerkwaarde_waarde)
ELSE

View File

@@ -13,18 +13,23 @@ AS
SELECT b.prs_bedrijf_naam Bedrijfsnaam
, b.prs_leverancier_nr Leveranciernummer
, a.prs_bedrijfadres_type Kanaal
, a.mld_typeopdr_key Opdrachttype
, (SELECT m.mld_typeopdr_omschrijving
FROM mld_typeopdr m
WHERE m.mld_typeopdr_key = a.mld_typeopdr_key) Opdrachttype
, a.prs_bedrijfadres_url Adres
, a.prs_bedrijfadres_ordermode Ordermode
, a.prs_bedrijfadres_certificate Certificaat
, a.prs_bedrijfadres_xsl Xsltemplate
, a.prs_bedrijfadres_xsl Xsl_template
, a.prs_bedrijfadres_ext Extensie
, a.prs_bedrijfadres_attachfile Vastebijlage
, a.prs_bedrijfadres_attachfile Vaste_bijlage
, a.prs_bedrijfadres_username Login
, a.prs_bedrijfadres_password Wachtwoord
, a.prs_bedrijfadres_sender Afzender
, a.prs_bedrijfadres_lockuser_key Vastegebruiker
, a.prs_bedrijfadres_lockexpire Expiredays
, a.prs_bedrijfadres_replyaddress Reply_adres
, (SELECT p.prs_perslid_oslogin
FROM prs_perslid p
WHERE p.prs_perslid_key = a.prs_bedrijfadres_lockuser_key) Vaste_gebruiker
, a.prs_bedrijfadres_lockexpire Expire_days
FROM prs_bedrijfadres a
, prs_v_aanwezigbedrijf b
WHERE a.prs_bedrijf_key = b.prs_bedrijf_key
@@ -37,8 +42,10 @@ CREATE OR REPLACE VIEW fac_v_exp_contactpersoon
AS
SELECT b.prs_bedrijf_naam Bedrijfsnaam
, b.prs_leverancier_nr Leveranciernummer
, NULL Persoonmatchcode
, NULL Persoonmatchwaarde
, DECODE (u.prs_perslid_email, NULL
, DECODE (u.prs_perslid_oslogin, NULL, NULL, 2), 1) Persoonmatchcode
, DECODE (u.prs_perslid_email, NULL
, DECODE (u.prs_perslid_oslogin, NULL, NULL, u.prs_perslid_oslogin), u.prs_perslid_email) Persoonmatchwaarde
, c.prs_contactpersoon_naam ContactPersoonAchternaam
, c.prs_contactpersoon_tussenv Tussenvoegsel
, c.prs_contactpersoon_voorletters Voorletters
@@ -49,20 +56,25 @@ SELECT b.prs_bedrijf_naam Bedrijfsnaam
, c.prs_contactpersoon_telefoon_2 Mobiel
, c.prs_contactpersoon_email Email
, c.prs_contactpersoon_functie Functie
, c.prs_contactpersoon_opmerking Opmerking
, REPLACE (c.prs_contactpersoon_opmerking, CHR(13)) Opmerking
, l.alg_locatie_code Locatiecode
FROM prs_contactpersoon c
, prs_v_aanwezigbedrijf b
, prs_contactpersoon_locatie p
, prs_v_aanwezigperslid u
, prs_v_aanwezigbedrijf b
, alg_v_aanweziglocatie l
WHERE c.prs_bedrijf_key = b.prs_bedrijf_key(+)
WHERE c.prs_bedrijf_key = b.prs_bedrijf_key
AND c.prs_perslid_key = u.prs_perslid_key(+)
AND c.prs_contactpersoon_key = p.prs_contactpersoon_key(+)
AND p.alg_locatie_key = l.alg_locatie_key(+)
AND c.prs_contactpersoon_verwijder IS NULL
;
-- import: FIP: Aanvullen externe bedrijven
-- importsheet: Inventarisatie Externe bedrijven, tabblad Externe Bedrijven
-- importtabel: fac_imp_ext_bedrijf
-- NB: Overeenkomstdatum als varchar2 ophalen omdat alleen de datum (dd-mm-yyyy) ingelezen wordt.
-- Met trunc() blijft het een timestamp!
CREATE OR REPLACE VIEW fac_v_exp_ext_bedrijf
AS
SELECT b.prs_bedrijf_naam Bedrijfsnaam
@@ -90,8 +102,8 @@ SELECT b.prs_bedrijf_naam Bedrijfsnaam
, CASE WHEN b.prs_bedrijf_ingids = 1 THEN 'J' ELSE '' END Tooningids
, b.prs_bedrijf_uurloon Uurloon
, b.prs_overeenkomst_nr Overeenkomstnummer
, b.prs_overeenkomst_datum Overeenkomstdatum
, b.prs_bedrijf_opmerking Opmerking
, TO_CHAR(b.prs_overeenkomst_datum,'dd-mm-yyyy') Overeenkomstdatum
, REPLACE (b.prs_bedrijf_opmerking, CHR(13)) Opmerking
, d.prs_dienst_omschrijving Dienst
, CASE WHEN l.alg_locatie_key IS NULL
THEN (SELECT MAX(v.alg_locatie_code) FROM alg_v_gebouw_gegevens v WHERE v.alg_gebouw_key = l.alg_gebouw_key)
@@ -111,7 +123,10 @@ SELECT b.prs_bedrijf_naam Bedrijfsnaam
, prs_dienst d
WHERE b.prs_relatietype_key = r.prs_relatietype_key(+)
AND b.prs_bedrijf_key = l.prs_bedrijf_key(+)
AND l.prs_dienst_key = d.prs_dienst_key
AND l.prs_dienst_key = d.prs_dienst_key(+)
AND b.prs_bedrijf_verwijder IS NULL
AND r.prs_relatietype_verwijder IS NULL
AND b.prs_bedrijf_intern IS NULL
;
-- import: FIP: 9-Aanvullen van inspectiedefinities
@@ -119,8 +134,8 @@ SELECT b.prs_bedrijf_naam Bedrijfsnaam
-- importtabel: fac_imp_inspectie
CREATE OR REPLACE VIEW fac_v_exp_inspectie
AS
SELECT d.ins_discipline_omschrijving Disciplineomschrijving
, g.ins_srtgroep_omschrijving Groepsoortomschrijving
SELECT a.discipline_oms Disciplineomschrijving
, a.srtgroep_oms Groepsoortomschrijving
, s.ins_srtdeel_code Objectsoortcode
, c.ins_srtcontrole_omschrijving Controle_omschrijving
, c.ins_srtcontrole_info Controle_informatie
@@ -128,18 +143,23 @@ SELECT d.ins_discipline_omschrijving Disciplineomschrijving
, c.ins_srtcontrole_eenheid Eenheid
, c.ins_srtcontrole_mode Controle_mode
, c.ins_srtcontrole_bits Bits
FROM ins_srtcontrole c
, (SELECT t.ins_discipline_omschrijving
FROM ctr_discipline t
WHERE t.ins_discipline_key = c.ctr_discipline_key
) Taakcategorie
FROM ins_srtcontrole c
, ins_srtdeel s
, ins_srtgroep g
, ins_discipline d
WHERE c.ins_srtinstallatie_key = s.ins_srtdeel_key
AND s.ins_srtgroep_key = g.ins_srtgroep_key
AND g.ins_discipline_key = d.ins_discipline_key
, ins_v_allsrtinstallatie a
WHERE c.ins_srtcontrole_niveau = a.niveau
AND c.ins_srtinstallatie_key = a.ins_srtinstallatie_key
AND a.ins_srtdeel_key = s.ins_srtdeel_key(+)
;
-- import: FIP: 6-Aanvullen objecten
-- importsheet: Inventarisatie Objecten-56894
-- importtabel: fac_imp_ins
-- NB: Ingangsdatum en vervaldatum als varchar2 ophalen omdat alleen de datum (dd-mm-yyyy) ingelezen wordt.
-- Met trunc() blijft het een timestamp!
CREATE OR REPLACE VIEW fac_v_exp_ins
AS
SELECT DISTINCT d.ins_discipline_omschrijving Disciplineomschrijving
@@ -148,7 +168,7 @@ AS
, sd.ins_srtdeel_code Objectsoortcode
, sd.ins_srtdeel_omschrijving Objectsoortomschrijving
, id.ins_deel_omschrijving Objectidentificatie
, id.ins_deel_opmerking Objectopmerking
, REPLACE (id.ins_deel_opmerking, CHR(13)) Objectopmerking
, sd.ins_srtdeel_uitleenbaar Reserveerbaar
, sd.ins_srtdeel_eenheid Eenheid
, sd.ins_srtdeel_prijs Prijs
@@ -162,10 +182,12 @@ AS
, c.prs_kostensoort_oms Cataloguskostensoort
, NULL Persoonmatchcode
, NULL Persoonmatchwaarde
, id.ins_deel_aanmaak Ingangsdatum
, id.ins_deel_vervaldatum Vervaldatum
, TO_CHAR(id.ins_deel_aanmaak,'dd-mm-yyyy') Ingangsdatum
, TO_CHAR(id.ins_deel_vervaldatum,'dd-mm-yyyy') Vervaldatum
, id.ins_deel_aantal Aantal
, id.ins_deel_externnr Externnr
, NULL Parentobjectsoortomschr
, NULL Parentobjectidentificatie
, NULL Kenmerk1
, NULL Kenmerk2
, NULL Kenmerk3
@@ -197,8 +219,8 @@ AS
, res_deel rd
, res_discipline r
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND d.alg_locatie_key = l.alg_locatie_key
AND d.alg_gebouw_key = g.alg_gebouw_key
AND d.alg_locatie_key = l.alg_locatie_key(+)
AND d.alg_gebouw_key = g.alg_gebouw_key(+)
AND d.ins_deel_key = id.ins_deel_key
AND d.ins_discipline_key = i.ins_discipline_key
AND id.ins_deel_key = rd.res_ins_deel_key(+)
@@ -211,89 +233,85 @@ AS
-- import: FIP: 5-Aanvullen servicedesk
-- importsheet: Inventarisatie Meldingen
-- importtabel: fac_imp_mld
CREATE OR REPLACE VIEW fac_v_exp_mld
CREATE OR REPLACE FORCE VIEW fac_v_exp_mld
AS
SELECT s.ins_srtdiscipline_omschrijving Vakgroeptype
, s.ins_srtdiscipline_prefix Prefix
, s.ins_srtdiscipline_alg Plaatsgegevens
, s.ins_srtdiscipline_ins Objectgegevens
, s.ins_srtdiscipline_bes Bestelgegevens
, i.ins_discipline_omschrijving Vakgroep
, m.mld_stdmelding_omschrijving Standaardmelding
, g.mld_stdmeldinggroep_naam Groep
, k.prs_kostensoort_oms Kostensoort
, REPLACE(CASE WHEN m.mld_stdmelding_t_accepttijd.eenheid = 'U'
THEN m.mld_stdmelding_t_accepttijd.tijdsduur / 24
ELSE m.mld_stdmelding_t_accepttijd.tijdsduur
END, ',', '.') Acceptatietijd
, REPLACE(CASE WHEN m.mld_stdmelding_t_uitvoertijd.eenheid = 'U'
THEN m.mld_stdmelding_t_uitvoertijd.tijdsduur / 24
ELSE m.mld_stdmelding_t_uitvoertijd.tijdsduur
END, ',', '.') Uitvoertijd
, REPLACE(CASE WHEN m.mld_stdmelding_t_uitvtijd_pr1.eenheid = 'U'
THEN m.mld_stdmelding_t_uitvtijd_pr1.tijdsduur / 24
ELSE m.mld_stdmelding_t_uitvtijd_pr1.tijdsduur
END, ',', '.') Uitvoertijd_kritiek
, REPLACE(CASE WHEN m.mld_stdmelding_t_uitvtijd_pr2.eenheid = 'U'
THEN m.mld_stdmelding_t_uitvtijd_pr2.tijdsduur / 24
ELSE m.mld_stdmelding_t_uitvtijd_pr2.tijdsduur
END, ',', '.') Uitvoertijd_hoog
, REPLACE(CASE WHEN m.mld_stdmelding_t_uitvtijd_pr4.eenheid = 'U'
THEN m.mld_stdmelding_t_uitvtijd_pr4.tijdsduur / 24
ELSE m.mld_stdmelding_t_uitvtijd_pr4.tijdsduur
END, ',', '.') Uitvoertijd_laag
, p.mld_disc_params_directklaar Directklaar
, d.prs_dienst_omschrijving Dienst
, m.mld_stdmelding_notfrontend Not_frontend
, m.alg_onrgoed_niveau alg_niveau
, t.mld_typeopdr_omschrijving Opdrachttype
, m.mld_stdmelding_hint Hint
, m.mld_stdmelding_kopieerbaar Kopieerbaar
, m.mld_stdmelding_afmeldtext Tekst_bij_afmelden
, DECODE(m.mld_stdmelding_doublecheck, 0, 'N', 1, 'I', 2, 'A', 3, 'B', 'N') Dubbele_meldingen
, m.mld_stdmelding_slabewaken Sla_bewaken
, i.ins_discipline_image Disc_image
, m.mld_stdmelding_image Stdm_image
, m.mld_stdmelding_externnr Externnr
FROM mld_stdmelding m
, mld_typeopdr t
, mld_stdmeldinggroep g
, prs_kostensoort k
, prs_dienst d
, mld_discipline i
, mld_disc_params p
, ins_srtdiscipline s
WHERE m.mld_ins_discipline_key = i.ins_discipline_key
AND m.mld_ins_discipline_key = p.mld_ins_discipline_key
AND i.ins_srtdiscipline_key = s.ins_srtdiscipline_key
AND m.mld_typeopdr_key = t.mld_typeopdr_key(+)
AND m.mld_stdmeldinggroep_key = g.mld_stdmeldinggroep_key(+)
AND m.prs_kostensoort_key = k.prs_kostensoort_key(+)
AND m.prs_dienst_key = d.prs_dienst_key(+)
SELECT sd.ins_srtdiscipline_omschrijving vakgroeptype
, sd.ins_srtdiscipline_prefix prefix
, COALESCE(sd.ins_srtdiscipline_alg, 0) plaatsgegevens
, COALESCE(sd.ins_srtdiscipline_ins, 0) objectgegevens
, COALESCE(sd.ins_srtdiscipline_bes, 0) bestelgegevens
, md.ins_discipline_omschrijving vakgroep
, sm.mld_stdmelding_omschrijving standaardmelding
, mg.mld_stdmeldinggroep_naam groep
, ks.prs_kostensoort_oms kostensoort
, REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_accepttijd, 'U'), ',', '.') acceptatietijd
, REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_accept_pr1, 'U'), ',', '.') acceptatietijd_kritiek
, REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_accept_pr2, 'U'), ',', '.') acceptatietijd_hoog
, REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_accept_pr4, 'U'), ',', '.') acceptatietijd_laag
, REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_uitvoertijd, 'D'), ',', '.') uitvoertijd
, REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_uitvtijd_pr1, 'D'), ',', '.') uitvoertijd_kritiek
, REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_uitvtijd_pr2, 'D'), ',', '.') uitvoertijd_hoog
, REPLACE(mld.uitvoertijd_to_unit(sm.mld_stdmelding_t_uitvtijd_pr4, 'D'), ',', '.') uitvoertijd_laag
, mp.mld_disc_params_directklaar directklaar
, pd.prs_dienst_omschrijving dienst
, sm.mld_stdmelding_notfrontend notfrontend
, sm.alg_onrgoed_niveau alg_niveau
, mt.mld_typeopdr_omschrijving opdrachttype
, sm.mld_stdmelding_hint hint
, sm.mld_stdmelding_kopieerbaar kopieerbaar
, sm.mld_stdmelding_afmeldtext tekst_bij_afmelden
, DECODE(sm.mld_stdmelding_doublecheck, 1, 'i', 2, 'a', 3, 'b', 'n') dubbele_meldingen
, mld_stdmelding_slabewaken sla_bewaken
, mld_stdmelding_objects_allowed max_objecten
, md.ins_discipline_image disc_image
, sm.mld_stdmelding_image stdm_image
, sm.mld_stdmelding_externnr externnr
FROM mld_stdmelding sm
, mld_discipline md
, ins_srtdiscipline sd
, mld_disc_params mp
, prs_dienst pd
, mld_stdmeldinggroep mg
, prs_kostensoort ks
, mld_typeopdr mt
WHERE sm.mld_ins_discipline_key = md.ins_discipline_key
AND sm.mld_ins_discipline_key = mp.mld_disc_params_key(+)
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
AND sm.mld_stdmeldinggroep_key = mg.mld_stdmeldinggroep_key(+)
AND sm.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND sm.mld_typeopdr_key = mt.mld_typeopdr_key(+)
AND sm.prs_dienst_key = pd.prs_dienst_key(+)
AND sm.mld_stdmelding_verwijder IS NULL
AND ( sm.mld_stdmelding_vervaldatum IS NULL
OR sm.mld_stdmelding_vervaldatum > SYSDATE)
AND md.ins_discipline_verwijder IS NULL
AND sd.ins_srtdiscipline_verwijder IS NULL
;
-- import: FIP: 1-Aanvullen districten t/m gebouwen
-- importsheet: Inventarisatie Vastgoed, tabblad Locaties
-- importtabel: fac_imp_onrgoed1
CREATE OR REPLACE VIEW fac_v_exp_onrgoed1
CREATE OR REPLACE FORCE VIEW fac_v_exp_onrgoed1
AS
SELECT r.alg_regio_omschrijving Regio,
d.alg_district_omschrijving District,
l.alg_locatie_code Locatiecode,
l.alg_locatie_omschrijving Locatieomschrijving,
g.alg_gebouw_code Gebouwcode,
g.alg_gebouw_naam Gebouwomschrijving,
sg.alg_srtgebouw_omschrijving Gebouwfunctie,
l.alg_locatie_verantw Contactpersoon,
l.alg_locatie_verantw_tel Telefoonnummer,
l.alg_locatie_adres Bezoekadres,
l.alg_locatie_postcode Postcode,
l.alg_locatie_plaats Plaats,
l.alg_locatie_land Locatieland,
l.alg_locatie_land Land,
l.alg_locatie_post_adres Postadres,
l.alg_locatie_post_postcode postPostcode,
l.alg_locatie_post_plaats postPlaats,
l.alg_locatie_post_land Land,
l.alg_locatie_post_postcode Postpostcode,
l.alg_locatie_post_plaats Postplaats,
l.alg_locatie_post_land Postland,
sg.alg_srtgebouw_omschrijving Gebouwfunctie,
g.alg_gebouw_code Gebouwcode,
g.alg_gebouw_naam Gebouwnaam,
g.alg_gebouw_adres Gebouwadres,
g.alg_gebouw_postcode Gebouwpostcode,
NULL kenmerk1,
NULL kenmerk2,
NULL kenmerk3,
@@ -335,7 +353,10 @@ SELECT l.alg_locatie_code Locatiecode
, r.alg_ruimte_bruto_vloeropp Vloeroppervlak
, pa.prs_afdeling_naam Afdelingscode
, ra.prs_ruimteafdeling_bezetting Bezetting
, s.prs_verhuurbaar ReserveerbareRuimte
, CASE WHEN rb.aantal IS NULL
THEN 0
ELSE 1
END ReserveerbareRuimte
, rd.ins_discipline_omschrijving Categorie
, rp.res_disc_params_expire_dagen Expiredagen
, rr.res_ruimte_prijs Prijs
@@ -361,10 +382,22 @@ SELECT l.alg_locatie_code Locatiecode
, res_disc_params rp
, res_ruimte_opstelling rro
, res_v_aanwezigopstelling ro
, (SELECT rar.alg_ruimte_key
, COUNT(*) aantal
FROM res_v_aanwezigalg_ruimte rar
, res_ruimte rr
WHERE rar.res_ruimte_key = rr.res_ruimte_key
AND rr.res_ruimte_verwijder IS NULL
AND ( rr.res_ruimte_vervaldatum IS NULL
OR rr.res_ruimte_vervaldatum > SYSDATE
)
AND rr.res_ruimte_cv = 0
GROUP BY rar.alg_ruimte_key
) rb
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_srtruimte_key = s.alg_srtruimte_key
AND r.alg_srtruimte_key = s.alg_srtruimte_key(+)
AND r.alg_ruimte_key = ra.alg_ruimte_key(+)
AND ra.prs_afdeling_key = pa.prs_afdeling_key(+)
AND r.alg_ruimte_key = rar.alg_ruimte_key(+)
@@ -373,7 +406,10 @@ SELECT l.alg_locatie_code Locatiecode
AND rd.ins_discipline_key = rp.res_ins_discipline_key(+)
AND rr.res_ruimte_key = rro.res_ruimte_key(+)
AND rro.res_opstelling_key = ro.res_opstelling_key(+)
AND r.alg_ruimte_key = rb.alg_ruimte_key(+)
AND rro.res_ruimte_opstel_verwijder IS NULL
AND (g.alg_gebouw_vervaldatum IS NULL OR g.alg_gebouw_vervaldatum > TRUNC(SYSDATE))
AND (rr.res_ruimte_vervaldatum IS NULL OR rr.res_ruimte_vervaldatum > TRUNC(SYSDATE));
;
-- import: FIP: 3-Aanvullen organisatiestructuur
@@ -391,10 +427,13 @@ SELECT b.prs_bedrijf_naam Bedrijfsnaam
FROM prs_afdeling a
, prs_afdeling ap
, prs_kostenplaats k
, prs_bedrijf b
, prs_v_aanwezigbedrijf b
WHERE a.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND a.prs_bedrijf_key = b.prs_bedrijf_key(+)
AND a.prs_afdeling_parentkey = ap.prs_afdeling_key(+)
AND a.prs_afdeling_verwijder IS NULL
AND ap.prs_afdeling_verwijder IS NULL
AND k.prs_kostenplaats_verwijder IS NULL
;
-- import: FIP: 4-Aanvullen personen
@@ -404,9 +443,9 @@ CREATE OR REPLACE VIEW fac_v_exp_perslid
AS
SELECT l.alg_locatie_code Locatiecode
, o.alg_gebouw_code Gebouwcode
, o.alg_verdieping_code Bouwlaagvolgnummer
, v.alg_verdieping_volgnr Bouwlaagvolgnummer
, o.alg_ruimte_nr Ruimtenummer
, w.prs_werkplek_volgnr Werkplekvolgnummer
, b.prs_perslidwerkplek_volgnr Werkplekvolgnummer
, w.prs_werkplek_omschrijving Omschrijving
, a.prs_afdeling_naam Afdelingscode
, p.prs_perslid_naam PersoonAchternaam
@@ -420,8 +459,8 @@ SELECT l.alg_locatie_code Locatiecode
, s.prs_srtperslid_omschrijving Functie
, p.prs_perslid_nr Personeelsnummer
, p.prs_perslid_oslogin Loginnaam
, p.prs_perslid_wachtwoord_hash Password
, null NVT1
, null Password
, k.prs_kostenplaats_nr Kostenplaatsnr
, null NVT2
, null NVT3
, null NVT4
@@ -453,16 +492,170 @@ SELECT l.alg_locatie_code Locatiecode
, prs_afdeling a
, alg_v_onroerendgoed_gegevens o
, alg_locatie l
, alg_verdieping v
, prs_perslidwerkplek b
, prs_werkplek w
, prs_kostenplaats k
WHERE p.prs_srtperslid_key = s.prs_srtperslid_key(+)
AND p.prs_afdeling_key = a.prs_afdeling_key(+)
AND w.prs_alg_ruimte_key = o.alg_onroerendgoed_keys(+)
AND o.alg_type = 'R'
AND o.alg_locatie_key = l.alg_locatie_key(+)
AND o.alg_verdieping_key = v.alg_verdieping_key(+)
AND p.prs_perslid_key = b.prs_perslid_key(+)
AND b.prs_werkplek_key = w.prs_werkplek_key(+)
AND p.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_inactief IS NULL
AND p.prs_perslid_flags = 0
AND p.prs_perslid_apikey IS NULL
;
CREATE OR REPLACE FORCE VIEW fac_v_exp_contract
AS
SELECT c.cnt_contract_nummer_intern ContractNr --A_nummer_intern
, c.cnt_contract_versie Versie --B_versie
, c.cnt_contract_nummer ExternNr --C_nummer_extern
, (SELECT ins_discipline_omschrijving
FROM cnt_discipline
WHERE ins_discipline_key = c.ins_discipline_key) ContractSoort --D_contractsoort
, c.cnt_contract_omschrijving Beschrijving --E_beschrijving
, m.cnt_contract_nummer_intern MantelNr --F_mantel_nummer
, m.cnt_contract_versie MantelNr_versie --G_mantel_versie
, TRANSLATE(c.cnt_contract_document, chr(10)||chr(13), '\n') Omschrijving --H_omschrijving
, (SELECT prs_dienst_omschrijving
FROM prs_dienst
WHERE prs_dienst_key = c.prs_dienst_key) Dienst --I_dienst
, a.prs_afdeling_naam Eigenaar_afd --J_afdeling
, e.prs_perslid_email Eigenaar_email --K_eigenaar
, b.prs_perslid_email Beheerder_email --L_beheerder
, TRANSLATE(c.cnt_contract_opmerking, chr(10)||chr(13), '\n') Opmerking --M_opmerking
, TO_CHAR(c.cnt_contract_looptijd_van, 'dd-mm-yyyy') Ingangsdatum --N_ingangsdatum
, TO_CHAR(cnt.cnt_getTermijndatum( cnt.cnt_getTermijndatum( c.cnt_contract_looptijd_tot
, c.cnt_contract_opzegtermijn
, -1)
, c.cnt_contract_rappeltermijn
, -1), 'dd-mm-yyyy') Rappeldatum --O_rappeldatum
, TO_CHAR(cnt.cnt_getTermijndatum( c.cnt_contract_looptijd_tot
, c.cnt_contract_opzegtermijn
, -1), 'dd-mm-yyyy') Opzegdatum --P_opzegdatum
, TO_CHAR(c.cnt_contract_looptijd_tot, 'dd-mm-yyyy') Einddatum --Q_einddatum
, CASE WHEN c.cnt_prs_perslid_key IS NOT NULL
THEN 'P'
ELSE 'B'
END Soort_contactpartij --R_soortcontact
, CASE WHEN c.cnt_prs_perslid_key IS NOT NULL
THEN (SELECT prs_perslid_email
FROM prs_perslid
WHERE prs_perslid_key = c.cnt_prs_perslid_key)
ELSE (SELECT prs_bedrijf_naam
FROM prs_bedrijf
WHERE prs_bedrijf_key = c.cnt_prs_bedrijf_key)
END Bedrijfsnaam --S_bedrijfnaam
, (SELECT prs_contactpersoon_email
FROM prs_contactpersoon
WHERE prs_contactpersoon_key = c.prs_contactpersoon_key) ContactNaam --T_contactpersoon
, (SELECT prs_kostenplaats_nr
FROM prs_kostenplaats
WHERE prs_kostenplaats_key = c.prs_kostenplaats_key) KostenplaatsCode --U_kostenplaatscode
, (SELECT prs_kostensoort_oms
FROM prs_kostensoort
WHERE prs_kostensoort_key = c.prs_kostensoort_key) KostensoortCode --V_kostensoortcode
, TO_CHAR(c.cnt_contract_kosten) Contractbedrag --W_contractbedrag
, TO_CHAR(c.cnt_contract_termijnkosten) Termijnbedrag --X_termijnbedrag
, TO_CHAR(c.cnt_contract_uurloon) Uurtarief --Y_uurtarief
, TO_CHAR(c.cnt_contract_korting) Korting --Z_korting
, CASE WHEN p.cnt_alg_plaats_code IN ('L','T','G','V','R')
THEN g.alg_locatie_code
ELSE NULL
END locatiecode --AA_locatiecode
, CASE WHEN p.cnt_alg_plaats_code IN ('T')
THEN g.alg_terreinsector_code
ELSE NULL
END terreincode --AB_terreincode
, CASE WHEN p.cnt_alg_plaats_code IN ('G','V','R')
THEN g.alg_gebouw_code
ELSE NULL
END gebouwcode --AC_gebouwcode
, CASE WHEN p.cnt_alg_plaats_code IN ('V','R')
THEN g.alg_verdieping_code
ELSE NULL
END verdiepingcode --AD_verdiepingcode
, CASE WHEN p.cnt_alg_plaats_code IN ('R')
THEN g.alg_ruimte_nr
ELSE NULL
END ruimtecode --AE_ruimtecode
, c.cnt_contract_verlenging Verlengen --AF_verlengen
FROM cnt_contract c
, (SELECT mm.cnt_contract_key
, mm.cnt_contract_nummer_intern
, mm.cnt_contract_versie
FROM cnt_contract mm
, cnt_disc_params md
WHERE mm.ins_discipline_key = md.cnt_ins_discipline_key
AND md.cnt_srtcontract_type = 6
AND mm.cnt_contract_status != 1
) m
, (SELECT o.*, l.alg_locatie_code
FROM alg_v_onroerendgoed_gegevens o
, alg_locatie l
WHERE o.alg_locatie_key = l.alg_locatie_key
UNION
SELECT l.alg_locatie_key, NULL, NULL
, l.alg_locatie_code, NULL
, NULL, NULL, NULL
, NULL, NULL, NULL
, NULL, NULL, NULL
, NULL, NULL, NULL
, l.alg_locatie_key, 'L', l.alg_locatie_code
FROM alg_locatie l
) g
, cnt_contract_plaats p
, prs_afdeling a
, prs_v_aanwezigperslid b
, prs_v_aanwezigperslid e
, prs_kostenplaats k
WHERE c.cnt_contract_mantel_key = m.cnt_contract_key(+)
AND c.cnt_contract_key = p.cnt_contract_key(+)
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
AND c.prs_perslid_key_beh = b.prs_perslid_key
AND c.prs_perslid_key_eig = e.prs_perslid_key(+)
AND c.prs_kostenplaats_key = k.prs_kostenplaats_key
AND c.cnt_contract_verwijder IS NULL
AND a.prs_afdeling_verwijder IS NULL
AND b.prs_perslid_email IS NOT NULL
AND k.prs_kostenplaats_verwijder IS NULL
ORDER BY c.cnt_contract_nummer_intern
, c.cnt_contract_versie
;
CREATE OR REPLACE FORCE VIEW fac_v_exp_res_artikel_sync
AS
SELECT ra.res_artikel_key ArtikelKey
, rd.ins_discipline_omschrijving CatalogusNaam
, pk.prs_kostensoort_oms CatalogusKostensoort
, ra.res_artikel_nr ArtikelNummer
, ra.res_artikel_omschrijving ArtikelOmschrijving
, ra.res_artikel_eenheid ArtikelEenheid
, ra.res_artikel_prijs ArtikelPrijs
, ra.res_artikel_prijs_vast ArtikelPrijsVast
, ra.res_artikel_inkoopprijs ArtikelInkoopprijs
, ra.res_artikel_kostenpersoneel ArtikelPersoneelkosten
, ra.res_artikel_kostenalgemeen ArtikelAlgemenekosten
, ra.res_artikel_BTW ArtikelBTW
, ra.res_artikel_opmerking ArtikelOpmerking
, ra.res_artikel_groep ArtikelGroep
, ra.res_artikel_volgnummer ArtikelVolgnummer
, TO_CHAR(ra.res_artikel_ingangsdatum, 'yyyymmdd') ArtikelIngangsdatum
, TO_CHAR(ra.res_artikel_vervaldatum, 'yyyymmdd') ArtikelVervaldatum
, ra.res_artikel_minimum ArtikelMinimum
, ra.res_artikel_externnr Externnr
FROM res_artikel ra
, res_discipline rd
, prs_kostensoort pk
WHERE ra.res_discipline_key = rd.ins_discipline_key
AND rd.prs_kostensoort_key = pk.prs_kostensoort_key(+)
AND ra.res_artikel_verwijder IS NULL
AND TRUNC(ra.res_artikel_vervaldatum) > TRUNC(SYSDATE)
;
REGISTERRUN('$Id$')

View File

@@ -0,0 +1,13 @@
{
"type": "service_account",
"project_id": "facilitor-165209",
"private_key_id": "042cb975b9b456956773da035272efce0cf00285",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCQQJNL05OmzmCp\nu5yFfOdH21TkMGFYDvAUYqlvGu3waIEbnYU4Gu2FEj2rGRgcnrgOKWYxp+b58BkM\nWxBZ61wgpRIvvFUTHSmR3pLU3eRaxTlqJPFYHAQavi28a38nlM5EMXWGmLOKI25j\nUe4vbU3+WnP0kTTjLnSK0Pcm/bSp/b/zuERi1WcDtFLvVP/ZdwnAy/CzILbkC8Wm\nCckVYgFmcxK91mZ755mafn5Pn4zt8HkA4NzZivqhM4vOn7zXaJnwON2sQNxUTyJv\n+q8Pa4FRHHBPVO86uKWEUlciRDoVokZyon7a0QeVJv5otuLJF1p15+jUNN5eMGgV\nUOBkfzBnAgMBAAECggEAOVUpFfCcFSaeXaee8KExjSo75cvizKx3OCr0e5/A5RWs\nBs1HFwMA1yxmTTwWjL16mspSfzbkAv+t/O6uo4Z7YdAp18YrLAMhtAO56Rfd/EO5\n65mOQL411Wkz5Vj2O0WV652av+muJh+p7piwKbJwVsEdqB0UX5zlngyqxpj8drk2\niIEwz6diyRWv3dczZfhbbZLfVuRDLicfcyLK566OIg1a2WhniZbntksrwFLC5lkq\n8nRepvgTeIGg9b5Q+zP74iENU/onfyLSZ82KB+SVgC68D5wBjAVcoVk1MCD7SpSE\nkze4Dbo+rdOVFb/vB7g80pT8EagFZ8jpvzWQyE6HaQKBgQDEWhYHkXVffwEle9lo\nmanlFAkR/OYw99oglWhkAUWsBonegxccdDkprpnoaeQxzFhr5vwdd/Bt4J1y5W48\nhJUF61AN7FJ1+3DfBZ7Lg9i/HmtoaQUebTFjJOU6V4FIP/LkWke4xKinmg2sr875\nL9aTkMyFEPLL4vXYp/AJxIaUjwKBgQC8EsxphJ6vSnkX5wrFRKEfrswwHb9+N9kx\n5UVeO8SRyt3PJ1lJqpqgIHcQh18HFtdbSwgLZOYZilkyfDIoVNx7UJyb59vFTKdO\n/epGyT583MQk8Yoy0bdQEPgkTWk2yKjhW7CJcTLDpd2/GNf7r5mHsk1Qwi5XaxKu\nmeHX6KICqQKBgDVFC3z6JZHG7xSwSQdryP/xM5TBu+HFHFSCtFONVM2a6ISJpBeA\nIJICYJcBQ3uPKN39SKDmDUCCE7U8MXARuCxm7s0YNDb2BGU9LRuhpYgURKeK9myO\nyztOozH004o6bzcslxC1qdvum48iE1DffaODQTlIo9ZUuMYSqbi8rJZZAoGALwpk\npl/NcPqnnxrizsSDqHEIEWDfbKp7YMd/ujooyG59XDrzUkGhuztjjHbPhe5onyT9\nNhxekTTRapc11HClVRKsmTI8/fRWRKOt3VaokoKFbNgdQOjDePtFlY7nKhS2aOeO\nGFJ/5/+snwePvhwFwrMOM4zeGm9llNZYbrB5FUECgYEAo/VqIOKag9wwMhw7CiYv\nSx2xtRf4KJT9cEtNYm3DBLZrJsUNKdIH8MujHTZ83ISybN0j9OkcA+5jEsFGGcnt\niKQ2wVPcSEm74ujx+RjOtElrTfYaUf1da/eqIH+cCrLfGA4qdglt7jGDKYSJ/nlC\n3hqreqJE75MQnvGOOr3Eoh4=\n-----END PRIVATE KEY-----\n",
"client_email": "firebase-adminsdk-xts0z@facilitor-165209.iam.gserviceaccount.com",
"client_id": "106239533568553355908",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-xts0z%40facilitor-165209.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
}

1896
FAC/facilitor.json Normal file

File diff suppressed because it is too large Load Diff

1722
FAC/facilitor.xsd Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -60,9 +60,9 @@ PROJEXE=z:\Project\FACILITOR\BUILD
##
## New style using schemanumbers
##
CURRENTVERSION=47
NEXTVERSION=48
FILEVERSION=
CURRENTVERSION=51
NEXTVERSION=52
FILEVERSION=a
NEXTROOT=DB$(NEXTVERSION)$(FILEVERSION)
CURRENTUPDATE=DB$(CURRENTVERSION)to$(NEXTVERSION)
@@ -193,10 +193,12 @@ $(EXE)\$(NEXTROOT)\FCLT$(NEXTVERSION)$(FILEVERSION).SQL: \
$(MSRC)\fac\fac_pacl.src \
$(MSRC)\fac\fac_pacflex.src \
$(MSRC)\fac\fac_pacdel.src \
$(MSRC)\fac\fac_pactsk.src \
$(MSRC)\fac\fac_seq.src \
$(MSRC)\fac\fac_tab.src \
$(MSRC)\fac\fac_tri.src \
$(MSRC)\fac\fac_vie.src \
$(MSRC)\fac\fac_vieexp.src \
$(MSRC)\ini\ini_ind.src \
$(MSRC)\ini\ini_ini.src \
$(MSRC)\ini\ini_pac.src \
@@ -205,6 +207,7 @@ $(EXE)\$(NEXTROOT)\FCLT$(NEXTVERSION)$(FILEVERSION).SQL: \
$(MSRC)\ini\ini_tri.src \
$(MSRC)\ini\fmis\fmis_ini.sql \
$(MSRC)\ini\itsm\itsm_ini.sql \
$(MSRC)\ini\plat\plat_ini.sql \
$(MSRC)\ins\ins_ind.src \
$(MSRC)\ins\ins_ini.src \
$(MSRC)\ins\ins_lcl.src \

View File

@@ -22,17 +22,17 @@ spool &fcltlogfile
WHENEVER SQLERROR EXIT;
DECLARE
tekst VARCHAR2 (1000);
charset VARCHAR2 (1000);
n_object NUMBER (10);
BEGIN
CASE ASCII('<27>')
WHEN 191 THEN tekst :='WE8ISO8859P1';
WHEN 128 THEN tekst :='WE8MSWIN1252'; -- De enige goede
ELSE tekst :='UNKNOWN ';
END CASE;
IF tekst <> 'WE8MSWIN1252' THEN
SELECT MIN(client_charset)
INTO charset
FROM v$session_connect_info
WHERE sid = sys_context('USERENV','SID');
IF charset <> 'WE8MSWIN1252' THEN
tekst := '=================================================================' || CHR(10)
|| 'Foute clientside NLS_LANG ['|| TO_CHAR(ASCII('<27>')) ||'] voor dit Facilitor script.' || CHR(10)
|| 'WE8MSWIN1252 is nodig, ik vermoed '|| tekst || CHR(10)
|| 'Foute clientside NLS_LANG voor dit Facilitor script.' || CHR(10)
|| 'WE8MSWIN1252 is nodig, ik vermoed '|| charset || CHR(10)
|| 'Geef bijvoorbeeld in Windows voordat SQL*Plus opstart:' || CHR(10)
|| 'SET NLS_LANG=.WE8MSWIN1252' || CHR(10)
|| 'Het script wordt nu afgebroken!' || CHR(10)
@@ -59,7 +59,7 @@ WHENEVER SQLERROR CONTINUE;
PROMPT [&fcltlogfile]
PROMPT
PROMPT Copyright 1996-2024 Aareon Nederland B.V. All rights reserved.
PROMPT Copyright 1996-2025 Aareon Nederland B.V. 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
@@ -67,12 +67,15 @@ PROMPT
SELECT 'Current os_user: ' || SYS_CONTEXT( 'userenv', 'os_user' ) FROM DUAL;
PROMPT
ALTER SESSION SET nls_length_semantics='char';
SET LINESIZE 1000
SET DEFINE OFF
SET ECHO ON
#include "adm\adm_tab.src"
#include "adm\adm_seq.src"
#include "adm\adm_tri.src"
/* adm_pac.src komt straks nog een keer met de recreate maar we hebben hem al eerder nodig */
#include "adm\adm_pac.src"
/* TYPES */
@@ -203,6 +206,6 @@ 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-2024 Aareon Nederland B.V. All rights reserved.
PROMPT If in doubt please contact: Facilitor Helpdesk +31 53 4800 710
PROMPT Copyright (c) 1996-2025 Aareon Nederland B.V. All rights reserved.
SPOOL OFF

View File

@@ -515,7 +515,7 @@ AS
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_datum <= factuurdatum OR fin_factuur_statuses_key IN (6, 7)) -- Akkoord(6) en Verwerkt(7)
AND fin_factuur_boekmaand = factuurboekmaand;
-- totaaltermijngefactureerd(btw) is dus voor deze periode inclusief deze nieuwe, dus
@@ -530,7 +530,7 @@ AS
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_datum <= factuurdatum OR fin_factuur_statuses_key IN (6, 7)); -- Akkoord(6) en Verwerkt(7)
DBMS_OUTPUT.put_line ('Totaal gefactureerd: ' || totaalgefactureerd);
DBMS_OUTPUT.put_line ('Totaal gefactureerd periode: ' || totaaltermijngefactureerd);
@@ -544,12 +544,13 @@ AS
DBMS_OUTPUT.put_line ('Totaal gefactureerd periode: ' || totaaltermijngefactureerd);
END IF;
IF totaalgefactureerd <=
contractkosten + fac.safe_to_number (fac.getsetting ('cnt_factuur_totaalmarge'))
AND fin.tolerantiematch (discipline,
ftype,
totaaltermijngefactureerd,
COALESCE (factuurschemabedrag, contracttermijnkosten)) = 1
IF ( totaalgefactureerd <=
contractkosten + fac.safe_to_number (fac.getsetting ('cnt_factuur_totaalmarge'))
OR contractkosten IS NULL)
AND fin.tolerantiematch (discipline,
ftype,
totaaltermijngefactureerd,
COALESCE (factuurschemabedrag, contracttermijnkosten)) = 1
THEN
retval := 1;
ELSE
@@ -623,7 +624,7 @@ AS
WHERE mld_opdr_key = o_key
AND fin_factuur_statuses_key <> 1
AND fin_factuur_verwijder IS NULL
AND fin_factuur_datum <= factuurdatum;
AND (fin_factuur_datum <= factuurdatum OR fin_factuur_statuses_key IN (6, 7)); -- Akkoord(6) en Verwerkt(7)
-- 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',

View File

@@ -190,6 +190,9 @@ CREATE_TABLE(fin_kenmerk,0)
,fin_kenmerk_volgnr
NUMBER(3)
NOT NULL
,fin_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
,fin_kenmerk_omschrijving
VARCHAR2(50)
,fin_kenmerk_upper

View File

@@ -3,8 +3,8 @@
* $Id$
*/
CREATE_TRIGGER(fin_t_fin_factuur_b_iu)
BEFORE INSERT OR UPDATE ON fin_factuur
CREATE_TRIGGER(fin_t_fin_factuur_b_i)
BEFORE INSERT ON fin_factuur
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fin_factuur_key, fin_s_fin_factuur_key);
@@ -13,8 +13,8 @@ BEGIN
END;
/
CREATE_TRIGGER(fin_t_fin_factuurregel_b_iu)
BEFORE INSERT OR UPDATE ON fin_factuurregel
CREATE_TRIGGER(fin_t_fin_factuurregel_b_i)
BEFORE INSERT ON fin_factuurregel
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(fin_factuurregel_key, fin_s_fin_factuurregel_key);

View File

@@ -77,108 +77,101 @@ CREATE_VIEW(fin_v_udr_factuur, 1)
bedrag_excl_btw,
status,
opmerking,
budgethouder
budgethouder,
budgethouder_key
)
AS
SELECT f.fin_factuur_key,
f.fin_factuur_datum factuur_datum,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE prs_bedrijf_key =
COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key))
uitvoerende,
(SELECT b.prs_leverancier_nr
FROM prs_bedrijf b
WHERE prs_bedrijf_key =
COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key))
leverancier_nr,
fin_factuur_nr factuurnr_extern,
CASE
WHEN f.mld_opdr_key IS NOT NULL THEN lcl.l ('lcl_fin_mld_opdr')
WHEN f.cnt_contract_key IS NOT NULL THEN lcl.l ('lcl_fin_cnt_contract')
WHEN f.bes_bestelopdr_key IS NOT NULL THEN lcl.l ('lcl_fin_bestelling')
END
CASE,
COALESCE (
NVL2 (
f.mld_opdr_key,
ins_srtdiscipline_prefix
|| TO_CHAR (o.mld_melding_key)
|| '/'
|| o.mld_opdr_bedrijfopdr_volgnr,
NULL),
NVL2 (
f.cnt_contract_key,
'C'
|| cnt_contract_nummer_intern
|| NVL2 (cnt_contract_versie, '.' || cnt_contract_versie, ''),
NULL),
NVL2 (f.bes_bestelopdr_key, bo.bes_bestelopdr_id, NULL),
' ')
opdrachtnr,
f.mld_opdr_key,
f.cnt_contract_key,
f.bes_bestelopdr_key,
NVL2 (
k.prs_kostenplaats_nr,
prs_kostenplaats_nr || ' '
|| lcl.x ('prs_kostenplaats_omschrijving',
k.prs_kostenplaats_key,
k.prs_kostenplaats_omschrijving),
'')
kostenplaats,
DECODE (k.prs_kostenplaats_extern, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')),
cd.ins_discipline_omschrijving,
(SELECT MIN (ins_discipline_omschrijving)
FROM bes_discipline bd,
bes_srtgroep bg,
bes_srtdeel bs,
bes_bestelling_item bi,
bes_bestelopdr_item boi
WHERE boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND bs.bes_srtdeel_key = bi.bes_srtdeel_key
AND bg.bes_srtgroep_key = bs.bes_srtgroep_key
AND bd.ins_discipline_key = bg.ins_discipline_key)
bes_discipline_omschrijving,
ks.prs_kostensoort_oms,
ks.prs_kostensoort_opmerking,
ks.prs_kostensoort_refcode,
ks.prs_kostensoort_altcode,
DECODE (ks.prs_kostensoort_btw, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')),
mld_stdmelding_omschrijving,
f.fin_factuur_totaal + f.fin_factuur_totaal_btw bedrag_incl_btw,
f.fin_factuur_totaal bedrag_excl_btw,
fs.fin_factuur_statuses_omschr,
f.fin_factuur_opmerking,
(SELECT p.prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all p
WHERE prs_perslid_key = fin.getfiatteur(f.fin_factuur_key))
budgethouder
FROM fin_factuur f,
prs_kostenplaats k,
mld_opdr o,
mld_melding m,
mld_discipline d,
mld_stdmelding sm,
ins_srtdiscipline sd,
cnt_contract c,
cnt_discipline cd,
bes_bestelopdr bo,
prs_kostensoort ks,
fin_factuur_statuses fs
WHERE fin.getfactuurkostenplaats(f.fin_factuur_key) = k.prs_kostenplaats_key(+)
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND f.mld_opdr_key = o.mld_opdr_key(+)
AND o.mld_melding_key = m.mld_melding_key(+)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key(+)
AND sm.mld_ins_discipline_key = d.ins_discipline_key(+)
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
AND f.cnt_contract_key = c.cnt_contract_key(+)
AND c.ins_discipline_key = cd.ins_discipline_key(+)
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
AND f.fin_factuur_statuses_key = fs.fin_factuur_statuses_key
AND f.fin_factuur_verwijder IS NULL;
WITH
fiatteur_data
AS
(SELECT f.fin_factuur_key, fin.getfiatteur (f.fin_factuur_key) AS budgethouder_key
FROM fin_factuur f)
SELECT f.fin_factuur_key
, f.fin_factuur_datum
factuur_datum
, (SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE prs_bedrijf_key = COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key))
uitvoerende
, (SELECT b.prs_leverancier_nr
FROM prs_bedrijf b
WHERE prs_bedrijf_key = COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key, bo.prs_bedrijf_key))
leverancier_nr
, fin_factuur_nr
factuurnr_extern
, CASE
WHEN f.mld_opdr_key IS NOT NULL THEN lcl.l ('lcl_fin_mld_opdr')
WHEN f.cnt_contract_key IS NOT NULL THEN lcl.l ('lcl_fin_cnt_contract')
WHEN f.bes_bestelopdr_key IS NOT NULL THEN lcl.l ('lcl_fin_bestelling')
END
CASE
, COALESCE (NVL2 (f.mld_opdr_key, ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || o.mld_opdr_bedrijfopdr_volgnr, NULL)
, NVL2 (f.cnt_contract_key, 'C' || cnt_contract_nummer_intern || NVL2 (cnt_contract_versie, '.' || cnt_contract_versie, ''), NULL)
, NVL2 (f.bes_bestelopdr_key, bo.bes_bestelopdr_id, NULL)
, ' ')
opdrachtnr
, f.mld_opdr_key
, f.cnt_contract_key
, f.bes_bestelopdr_key
, NVL2 (k.prs_kostenplaats_nr, prs_kostenplaats_nr || ' ' || lcl.x ('prs_kostenplaats_omschrijving', k.prs_kostenplaats_key, k.prs_kostenplaats_omschrijving), '')
kostenplaats
, DECODE (k.prs_kostenplaats_extern, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no'))
, cd.ins_discipline_omschrijving
, (SELECT MIN (ins_discipline_omschrijving)
FROM bes_discipline bd
, bes_srtgroep bg
, bes_srtdeel bs
, bes_bestelling_item bi
, bes_bestelopdr_item boi
WHERE boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND bs.bes_srtdeel_key = bi.bes_srtdeel_key
AND bg.bes_srtgroep_key = bs.bes_srtgroep_key
AND bd.ins_discipline_key = bg.ins_discipline_key)
bes_discipline_omschrijving
, ks.prs_kostensoort_oms
, ks.prs_kostensoort_opmerking
, ks.prs_kostensoort_refcode
, ks.prs_kostensoort_altcode
, DECODE (ks.prs_kostensoort_btw, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no'))
, mld_stdmelding_omschrijving
, f.fin_factuur_totaal + f.fin_factuur_totaal_btw
bedrag_incl_btw
, f.fin_factuur_totaal
bedrag_excl_btw
, fs.fin_factuur_statuses_omschr
, f.fin_factuur_opmerking
, (SELECT p.prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all p
WHERE p.prs_perslid_key = fd.budgethouder_key)
AS budgethouder
, fd.budgethouder_key
FROM fin_factuur f
, prs_kostenplaats k
, mld_opdr o
, mld_melding m
, mld_discipline d
, mld_stdmelding sm
, ins_srtdiscipline sd
, cnt_contract c
, cnt_discipline cd
, bes_bestelopdr bo
, prs_kostensoort ks
, fin_factuur_statuses fs
, fiatteur_data fd
WHERE fin.getfactuurkostenplaats (f.fin_factuur_key) = k.prs_kostenplaats_key(+)
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND f.fin_factuur_key = fd.fin_factuur_key
AND f.mld_opdr_key = o.mld_opdr_key(+)
AND o.mld_melding_key = m.mld_melding_key(+)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key(+)
AND sm.mld_ins_discipline_key = d.ins_discipline_key(+)
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
AND f.cnt_contract_key = c.cnt_contract_key(+)
AND c.ins_discipline_key = cd.ins_discipline_key(+)
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
AND f.fin_factuur_statuses_key = fs.fin_factuur_statuses_key
AND f.fin_factuur_verwijder IS NULL;
// Dit is strict geen fin view, maar het is de UDR-versie van het kostenoverzicht
// dat bedragen rapporteert over de BROC.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

14
INI/PLAT/plat_ini.sql Normal file
View File

@@ -0,0 +1,14 @@
--
-- $Id$
--
-- Script bevat initiele configuratie voor een standaard Plato inrichting van Facilitor
-- Plato is de MJOB-tool voor woco's, dat zou samenwerken met Tobias
--
--
fac.writelog ('INI.PLAT_INI','I', 'All completed', '');
------ payload end ------
BEGIN adm.systrackscriptId ('$Id$', 1); END;

View File

@@ -16,13 +16,13 @@
SELECT 'x' INTO dummy \
FROM kindje_tabel \
WHERE kindje_tabel.key_veld = :old.key_veld; \
APPLICATION_ERROR(-20000,message); \
raise_application_error(-20000, message); \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
NULL; \
WHEN TOO_MANY_ROWS THEN \
APPLICATION_ERROR(-20000,message); \
raise_application_error(-20000, message); \
END
@@ -31,7 +31,7 @@
IF :new.key_ruimte_veld IS NULL \
AND :new.key_terrein_veld IS NULL \
THEN \
APPLICATION_ERROR(-20000, message); \
raise_application_error(-20000, message); \
END IF; \
END
@@ -69,7 +69,7 @@
~ \
IF verplicht = 1 AND :new.kolom_naam IS NULL \
THEN \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
raise_application_error(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m008');~ \
ELSIF tiep = 'N' \
THEN \
@@ -80,7 +80,7 @@
IF ware_waarde < min_waarde OR ware_waarde > max_waarde \
THEN \
/* Te klein / te groot */ \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
raise_application_error(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m009');~ \
ELSE \
/* Bepaal het format_mask */ \
@@ -95,14 +95,14 @@
:new.kolom_naam := LTRIM(to_char(ware_waarde, format_mask)); \
IF INSTR(:new.kolom_naam, '#') <> 0 \
THEN \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
raise_application_error(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m010');~ \
END IF;~ \
END IF;~ \
EXCEPTION \
WHEN others \
THEN \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
raise_application_error(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m010');~ \
END;~ \
\
@@ -111,7 +111,7 @@
ware_lengte := LENGTH(:new.kolom_naam); \
IF ware_lengte > max_lengte \
THEN \
APPLICATION_ERROR(-20004, to_char(attribuut_key)|| \
raise_application_error(-20004, to_char(attribuut_key)|| \
to_char(:new.ins_srtdeel_key)||'att_m011');~ \
END IF;~ \
END IF; \
@@ -134,12 +134,12 @@
AND INS_SD.ins_srtgroep_key = INS_SG.ins_srtgroep_key \
AND INS_SG.ins_discipline_key = :old.ins_srtinst_keys \
AND INS_D.FacKolom IS NOT NULL; \
APPLICATION_ERROR(-20003, 'att_m022'); \
raise_application_error(-20003, 'att_m022'); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20003, 'att_m022'); \
THEN raise_application_error(-20003, 'att_m022'); \
END; \
END IF
@@ -155,12 +155,12 @@
WHERE INS_D.ins_srtdeel_key = INS_SD.ins_srtdeel_key \
AND INS_SD.ins_srtgroep_key = :old.ins_srtinst_keys \
AND FacKolom IS NOT NULL; \
APPLICATION_ERROR(-20003, 'att_m022'); \
raise_application_error(-20003, 'att_m022'); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20003, 'att_m022'); \
THEN raise_application_error(-20003, 'att_m022'); \
END; \
END IF
@@ -175,12 +175,12 @@
FROM ins_v_aanwezigdeel \
WHERE ins_srtdeel_key = :old.ins_srtinst_keys \
AND FacKolom IS NOT NULL; \
APPLICATION_ERROR(-20003, 'att_m022'); \
raise_application_error(-20003, 'att_m022'); \
EXCEPTION \
WHEN NO_DATA_FOUND \
THEN NULL; \
WHEN TOO_MANY_ROWS \
THEN APPLICATION_ERROR(-20003, 'att_m022'); \
THEN raise_application_error(-20003, 'att_m022'); \
END; \
END IF
@@ -195,13 +195,13 @@
FROM reference_view \
WHERE reference_view.key_veld = :old.key_veld \
AND reference_view.reference_verwijder_veld IS NULL; \
APPLICATION_ERROR(-20000,message); \
raise_application_error(-20000, message); \
END IF; \
EXCEPTION \
WHEN NO_DATA_FOUND THEN \
NULL; \
WHEN TOO_MANY_ROWS THEN \
APPLICATION_ERROR(-20000,message); \
raise_application_error(-20000, message); \
END
#endif // _INSSQL_H

View File

@@ -36,7 +36,6 @@ CREATE INDEX ins_i_ins_kenmerk1 ON ins_kenmerk(ins_kenmerk_code);
CREATE INDEX ins_i_ins_srtinstallatie1 ON ins_kenmerk(ins_srtinstallatie_key);
CREATE INDEX ins_i_ins_kenmerk_deel1 ON ins_kenmerkdeel(ins_deel_key);
CREATE INDEX ins_i_ins_kenmerk_kenmerk1 ON ins_kenmerkdeel(ins_kenmerk_key);
CREATE INDEX ins_i_ins_kenmerk_kenmerk2 ON ins_kenmerkdeel(ins_kenmerkdeel_waarde);
CREATE INDEX ins_i_ins_deelkoppeling1 ON ins_deelkoppeling(ins_deelkoppeling_van_key);
CREATE INDEX ins_i_ins_deelkoppeling2 ON ins_deelkoppeling(ins_deelkoppeling_naar_key);

View File

@@ -10,21 +10,8 @@ _FAC_MODULE('SLE','lcl_module_SLE')
INSERT INTO ins_scenario(ins_scenario_key, ins_scenario_omschrijving)
VALUES (1, 'Actual scenario');
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
)
VALUES ('SLE: Sleuteloverzicht', 'ins_v_rap_sle_toegang',
0, 0,
0,
'Overzicht van sleutels en bezitters',
(SELECT fac_functie_key FROM fac_functie
WHERE fac_functie_code = 'WEB_SLEFOF'),
0
);
DEF_RAPPORT('BASIS', 'WEB_SLEFOF', 0, 'ins_v_rap_sle_toegang', 'UDR: Sleuteloverzicht', 'Basisrapport voor sleutels',
'UDR: Key management', 'Basic report for key management')
DEF_STATUS('controle', 0, 'lcl_ins_controle_pending');
DEF_STATUS('controle', 2, 'lcl_ins_controle_gestart');

View File

@@ -312,6 +312,10 @@ CREATE_TABLE(ins_srtdeel,0)
NOT NULL,
ins_srtdeel_statethreshold /* drempelwaarde waarboven een melding type mld_stdmelding_key aangemaakt moet worden */
VARCHAR2(128),
ins_srtdeel_statestepsize /* ondergrens (marge) voor verschil tussen meetwaarden om als verschil te erkennen, bv 0,5 */
NUMBER(6,3),
ins_srtdeel_stateanchor /* anker voor zgn kwantisatiegrid, bv 10. Werkt in combi met stepsize Q(x) = round((x - q_anchor)/q_step) * q_step + q_anchor */
NUMBER(6,3),
/* in mld_tab.src:
mld_stdmelding_key
NUMBER(10)
@@ -464,6 +468,8 @@ CREATE_TABLE(ins_deel_state_history, 0)
CONSTRAINT ins_r_ins_deel_key2 REFERENCES ins_deel(ins_deel_key),
ins_deel_state
VARCHAR2(128),
ins_deel_state_value
NUMBER(16,6),
ins_deel_statedate
DATE,
ins_deel_state_history_opmerk /* je weet het niet he */
@@ -716,7 +722,7 @@ CREATE_TABLE(ins_deelsrtcontrole, 0)
VARCHAR(4000 CHAR),
ins_deelsrtcontrole_plandatum
DATE,
ins_deelsrtcontrole_status // (vooralsnog 0;Ingepland 2;Gestart/In behandeling 5;Afgemeld/Gereed gemeld; 6;Afgerond)
ins_deelsrtcontrole_status // (vooralsnog 0;Ingepland 2;Gestart/In behandeling 3;Ter uitvoering 5;Afgemeld/Gereed gemeld; 6;Afgerond)
NUMBER(1)
DEFAULT (6)
CONSTRAINT ins_c_deelsrtcontrole_status NOT NULL,
@@ -817,7 +823,7 @@ CREATE_TABLE(ins_kenmerk, 0)
ins_kenmerk_niveau
VARCHAR2(1)
CONSTRAINT ins_c_ins_kenmerk_niveau2 CHECK
(ins_kenmerk_niveau IS NOT NULL AND (ins_kenmerk_niveau IN('D', 'G', 'S', 'C'))), /* C=srtcontrole */
(ins_kenmerk_niveau IS NOT NULL AND (ins_kenmerk_niveau IN ('D', 'G', 'S', 'T', 'C', 'E'))), /* D=Discipline, G=Objectgroep, S=Objectsoort, T=Alle taken, C=Periodiek taken, E=Taakcategorie */
ins_kenmerk_bewerkniveau /* Kenmerk behoort bij individueel Deel of algemeen Srtdeel */
VARCHAR2(1) DEFAULT 'D' NOT NULL
CONSTRAINT ins_c_ins_kenmerk_bewerk CHECK(ins_kenmerk_bewerkniveau IN ('D', 'S')),
@@ -850,6 +856,9 @@ CREATE_TABLE(ins_kenmerk, 0)
ins_kenmerk_volgnummer
NUMBER(3)
NOT NULL,
ins_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL,
ins_kenmerk_locatiekolom
VARCHAR2(30),
ins_kenmerk_uniek
@@ -872,7 +881,7 @@ CREATE_TABLE(ins_kenmerk, 0)
fac_functie_key
NUMBER(10)
CONSTRAINT fac_r_ins_kenmerk_functie REFERENCES fac_functie (fac_functie_key),
CONSTRAINT ins_r_ins_srtinstallatie_key1 CHECK(ins_srtinstallatie_key IS NOT NULL OR ins_kenmerk_niveau = 'D'),
CONSTRAINT ins_r_ins_srtinstallatie_key1 CHECK(ins_srtinstallatie_key IS NOT NULL OR ins_kenmerk_niveau IN ('D', 'T')),
CONSTRAINT ins_u_ins_kenmerk UNIQUE(ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_omschrijving, ins_kenmerk_groep, ins_kenmerk_verwijder)
);

View File

@@ -320,6 +320,9 @@ BEGIN
ELSIF :new.ins_alg_ruimte_type = 'P'
THEN
CHECK_KEY_REFERENCE(prs_v_aanwezigperslid , prs_perslid_key , :new.ins_alg_ruimte_key, 'ins_m195');
ELSIF :new.ins_alg_ruimte_type IS NULL
THEN
CHECK_KEY_REFERENCE(ins_v_aanwezigdeel , ins_deel_key , :new.ins_alg_ruimte_key, 'ins_m205');
ELSE
raise_application_error(-20000, 'ins_m84');
END IF;
@@ -351,240 +354,284 @@ BEGIN
END;
/
CREATE OR REPLACE TRIGGER ins_t_ins_deel_A_U
AFTER UPDATE ON ins_deel
FOR EACH ROW
CREATE OR REPLACE TRIGGER ins_t_ins_deel_a_u
AFTER UPDATE
ON ins_deel
FOR EACH ROW
DECLARE
lmelder_oslogin CONSTANT VARCHAR2 (10) := '_SENSOR';
lmelder_oslogin CONSTANT VARCHAR2 (10) := '_SYSTEEM';
new_date DATE;
prev_state ins_deel_state_history.ins_deel_state%TYPE;
prev_historystate ins_deel_state_history.ins_deel_state%TYPE;
lsensortype ins_srtdeel.ins_srtdeel_sensortype%TYPE;
lstate_history_key ins_deel_state_history.ins_deel_state_history_key%TYPE;
ins_srtdeel_statethreshold ins_srtdeel.ins_srtdeel_statethreshold%TYPE;
anchorednewstateval NUMBER;
ldubbelcheck_key mld_melding.mld_melding_key%TYPE;
lstdmelding_key ins_srtdeel.mld_stdmelding_key%TYPE;
ldiscipline_key mld_stdmelding.mld_ins_discipline_key%TYPE;
lstatethreshold ins_srtdeel.ins_srtdeel_statethreshold%TYPE;
lstatestepsize ins_srtdeel.ins_srtdeel_statestepsize%TYPE;
lstateanchor ins_srtdeel.ins_srtdeel_stateanchor%TYPE;
lmelding_key mld_melding.mld_melding_key%TYPE;
lmelder_key mld_melding.prs_perslid_key%TYPE;
BEGIN
-- archiving chances in state_history
IF (:old.ins_deel_state IS NULL AND :new.ins_deel_state IS NOT NULL)
OR (:new.ins_deel_state <> :old.ins_deel_state)
THEN
BEGIN
new_date := COALESCE (:new.ins_deel_statedate, SYSDATE); -- voorkom dat de update *net* een seconde later kan zijn
BEGIN
-- archiving changes in state_history, satisfying parameters
-- note that archiving is more limited than recording any change
INSERT INTO ins_deel_state_history (ins_deel_key, ins_deel_state, ins_deel_statedate)
VALUES (:new.ins_deel_key,
:new.ins_deel_state,
COALESCE (:new.ins_deel_statedate, new_date))
RETURNING ins_deel_state_history_key
INTO lstate_history_key;
EXCEPTION
WHEN DUP_VAL_ON_INDEX
THEN
BEGIN
SELECT ins_deel_state
INTO prev_state
FROM ins_deel_state_history
WHERE ins_deel_state_history_key =
(SELECT MAX (ins_deel_state_history_key)
FROM ins_deel_state_history
WHERE ins_deel_key = :new.ins_deel_key
AND ins_deel_statedate < new_date);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
IF (:old.ins_deel_state IS NULL AND :new.ins_deel_state IS NOT NULL) OR (:new.ins_deel_state <> :old.ins_deel_state)
THEN
BEGIN
-- mutatie van state impliceert al dat het een sensortype is
-- toch checken we dat en halen ook de benodigde eigenschappen op
IF (prev_state = :new.ins_deel_state)
SELECT ins_srtdeel_statethreshold
, mld_stdmelding_key
, ins_srtdeel_statestepsize
, ins_srtdeel_stateanchor
, ins_srtdeel_sensortype
INTO lstatethreshold
, lstdmelding_key
, lstatestepsize
, lstateanchor
, lsensortype
FROM ins_srtdeel
WHERE ins_srtdeel_key = :new.ins_srtdeel_key AND ins_srtdeel_sensortype > 0; -- een sensor; dwingt configuratie af.
-- voorkom dat de update *net* een seconde later kan zijn, een atomair tijdstip voor deze activiteit hier
new_date := COALESCE (:new.ins_deel_statedate, SYSDATE);
-- Voor continuwaarden gaan we de waarden 'snappen' op een 'grid' van meetwaarden
-- initieel/default de ongesnapte meetwaarde; voor tekstwaarden wordt dit NULL
anchorednewstateval := fac.safe_to_number (:new.ins_deel_state);
-- we bewaren alleen de history als de afwijking met de vorige waarde er is (discreet)
-- of groot genoeg is (continu) als dat geconfigureerd is. Merk op dat we hier de gesnapte
-- (dus eventueel afgeronde) waarden vergelijken
IF BITAND (lsensortype, 1) = 1 OR (lstatestepsize IS NOT NULL AND lstateanchor IS NOT NULL)
THEN
DELETE ins_deel_state_history
WHERE ins_deel_key = :new.ins_deel_key AND ins_deel_statedate = new_date;
ELSE -- kan alleen bij tri-stste statussen gebeuren
UPDATE ins_deel_state_history
SET ins_deel_state = :new.ins_deel_state
WHERE ins_deel_key = :new.ins_deel_key AND ins_deel_statedate = new_date;
END IF;
END;
END IF;
-- potentially trigger dependent actions
IF (:old.ins_deel_state IS NULL AND :new.ins_deel_state IS NOT NULL)
OR (:new.ins_deel_state <> :old.ins_deel_state)
THEN
BEGIN
SELECT ins_srtdeel_statethreshold, mld_stdmelding_key
INTO lstatethreshold, lstdmelding_key
FROM ins_srtdeel
WHERE ins_srtdeel_key = :new.ins_srtdeel_key;
IF lstatethreshold IS NOT NULL
AND lstdmelding_key IS NOT NULL
AND ins.state_compare (:new.ins_deel_state, lstatethreshold) > 0
AND ins.state_compare (:old.ins_deel_state, lstatethreshold) <= 0
THEN
-- Eerst controleren of er niet al een "heel recente" melding bestaat
-- waarmee deze zou kunnen gaan overlappen. We hebben geen behoefte aan veel meer
-- meldingen over hetzelfde, wellicht zou het iets over de urgentie zeggen..
--
BEGIN
SELECT prs_perslid_key
INTO lmelder_key
FROM prs_perslid
WHERE prs_perslid_oslogin = lmelder_oslogin AND prs_perslid_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.putsystemnotification ('Invalid configuration: missing _SENSOR user',
1);
END;
IF lmelder_key IS NOT NULL
THEN
-- Ik denk dat het voorlopig voldoende is om te checken dat *wij* hier niet al eerder
-- een automatische melding hebben gegenereerd. Handmatige parallelle meldingen
-- beschouwen we niet. We willen primair voorkomen dat er in een paar minuten tientallen
-- meldingen ontstaan omdat de waarde rond de limiet flippert. Een daalmarge zou
-- een ander mechanisme hiertegen kunnen zijn, maar dit is intrinsieker.
-- Ik zoek de goedkoopst mogelijk check, ik weet hier al zeker dat we (weer)
-- de limiet overschrijden. We nemen de tijd niet in beschouwing, omdat voor de ene
-- toepassing 1 minuut recent is, en voor een andere misschien een maand.
BEGIN
SELECT m.mld_melding_key
INTO ldubbelcheck_key
FROM mld_melding m, mld_melding_object mo
WHERE m.mld_melding_key = mo.mld_melding_key
AND mo.ins_deel_key = :new.ins_deel_key
AND m.mld_stdmelding_key = lstdmelding_key
AND m.prs_perslid_key = lmelder_key
AND m.mld_melding_status IN (2,
0,
4,
7); -- lopend
SELECT ins_deel_state
INTO prev_historystate
FROM ins_deel_state_history
WHERE ins_deel_key = :new.ins_deel_key
ORDER BY ins_deel_statedate DESC, ins_deel_state_history_key DESC
FETCH FIRST 1 ROW ONLY;
IF ldubbelcheck_key IS NOT NULL -- puur voor de leesbaarheid, als er geen is gaan we nl in de exception verder
IF BITAND (lsensortype, 2) = 2
THEN
-- track this. This seems like an appropriate place.
UPDATE ins_deel_state_history
SET ins_deel_state_history_opmerk =
REPLACE (
REPLACE (lcl.l ('lcl_ins_sensorstate_already_mld'),
'{0}',
lmelding_key),
'{1}',
lstatethreshold)
WHERE ins_deel_state_history_key = lstate_history_key;
-- continuwaarden snappen op grid
anchorednewstateval :=
ROUND ((anchorednewstateval - TO_NUMBER (lstateanchor)) / TO_NUMBER (lstatestepsize)) * TO_NUMBER (lstatestepsize) + TO_NUMBER (lstateanchor);
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
BEGIN
-- dit zou de trigger van mld_melding wel mogen doen..
SELECT msm.mld_ins_discipline_key
INTO ldiscipline_key
FROM mld_stdmelding msm
WHERE msm.mld_stdmelding_key = lstdmelding_key;
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_alg_locatie_key,
mld_alg_onroerendgoed_keys,
mld_melding_datum,
mld_melding_onderwerp,
mld_melding_omschrijving,
mld_stdmelding_key,
mld_melding_status,
mld_kosten_klant,
prs_perslid_key,
mld_melding_spoed,
mld_ins_discipline_key)
VALUES (
'MLD',
11, -- sensor
:new.ins_alg_locatie_key,
:new.ins_alg_ruimte_key,
SYSDATE,
lcl.l ('lcl_mld_state_generated_onderwerp'),
REPLACE (
REPLACE (
lcl.l (
'lcl_mld_state_generated_omschrijving'),
'{0}',
:new.ins_deel_state),
'{1}',
lstatethreshold),
lstdmelding_key,
2, -- of afh mld_directklaar
NULL,
lmelder_key, --TODO!!!!!!! prs_perslid_key,
3,
ldiscipline_key)
RETURNING mld_melding_key
INTO lmelding_key;
--en het sensorobject erbij registreren
INSERT INTO mld_melding_object (ins_deel_key, mld_melding_key)
VALUES (:new.ins_deel_key, lmelding_key);
-- track this. This seems like an appropriate place.
UPDATE ins_deel_state_history
SET ins_deel_state_history_opmerk =
REPLACE (
REPLACE (lcl.l ('lcl_ins_sensorstate_caused_mld'),
'{0}',
lmelding_key),
'{1}',
lstatethreshold)
WHERE ins_deel_state_history_key = lstate_history_key;
-- If defined kick off the workflow
mld.mld_nextworkflowstep (lmelding_key, -1);
END;
DBMS_OUTPUT.put_line ('No history for deel_state, firstvalue=' || anchorednewstateval);
prev_historystate := NULL;
END;
END IF;
END IF;
END;
END IF;
DBMS_OUTPUT.put_line ('prev_historystate=' || prev_historystate);
DBMS_OUTPUT.put_line ('new.ins_deel_state=' || :new.ins_deel_state);
DBMS_OUTPUT.put_line ('ins.state_diff (prev_historystate, :new.ins_deel_state)=' || ins.state_diff (prev_historystate, :new.ins_deel_state));
-- we gaan er gewoon van uit dat de oude waarde al gealigned is op het grid.
-- round((x - q_anchor)/q_step) * q_step + q_anchor
DBMS_OUTPUT.put_line ('anchorednewstateval=' || anchorednewstateval);
-- Waarde opslaan: sowieso voor discrete waarden en
-- voor continuwaarden indien de afgeronde afwijking groot genoeg id
--
-- Note: we introduce the numeric value in ins_deel_state_value, this is for future use
-- since at this moment all existing code etc does not use it yet and altering that is out off scope
--
IF BITAND (lsensortype, 2) <> 2 OR prev_historystate IS NULL OR ABS (ins.state_diff (prev_historystate, :new.ins_deel_state)) >= lstatestepsize
THEN
BEGIN
INSERT INTO ins_deel_state_history (ins_deel_key
, ins_deel_state
, ins_deel_statedate
, ins_deel_state_value)
VALUES (:new.ins_deel_key
, COALESCE (TO_CHAR (anchorednewstateval), :new.ins_deel_state)
, COALESCE (:new.ins_deel_statedate, new_date)
, anchorednewstateval)
RETURNING ins_deel_state_history_key
INTO lstate_history_key;
EXCEPTION
WHEN DUP_VAL_ON_INDEX
THEN
-- Er blijkt op/voor/met precies dit tijdstip al een meetwaarde geregistreerd van deze sensor
-- Dan kiezen we maar voor: laatste update -dus deze- geldt, alsof het een correctie is.
IF (prev_historystate <> :new.ins_deel_state)
THEN
UPDATE ins_deel_state_history
SET ins_deel_state = COALESCE (TO_CHAR (anchorednewstateval), :new.ins_deel_state), ins_deel_state_value = anchorednewstateval
WHERE ins_deel_key = :new.ins_deel_key AND ins_deel_statedate = new_date;
END IF;
-- lstate_history_key blijft hier NULL, dus een dubbele kan nooit een melding triggeren
-- wie hier ooit uitkomt bij een probleem: gefeliciteerd
END;
END IF;
END;
END IF;
-- potentially trigger dependent actions; this is not dependant
-- to the snapping of the values, which are for archiving only.
IF (:old.ins_deel_state IS NULL AND :new.ins_deel_state IS NOT NULL) OR (:new.ins_deel_state <> :old.ins_deel_state)
THEN
BEGIN
IF lstatethreshold IS NOT NULL
AND lstdmelding_key IS NOT NULL
AND ( ( BITAND (lsensortype, 2) = 2
AND ins.state_compare (:new.ins_deel_state, lstatethreshold) > 0
AND ins.state_compare (:old.ins_deel_state, lstatethreshold) <= 0)
OR (BITAND (lsensortype, 1) = 1 AND UPPER (:new.ins_deel_state) = UPPER (lstatethreshold)))
THEN
-- Eerst controleren of er niet al een "heel recente" melding bestaat
-- waarmee deze zou kunnen gaan overlappen. We hebben geen behoefte aan veel meer
-- meldingen over hetzelfde, wellicht zou het iets over de urgentie zeggen..
--
BEGIN
SELECT prs_perslid_key
INTO lmelder_key
FROM prs_perslid
WHERE prs_perslid_oslogin = lmelder_oslogin AND prs_perslid_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.putsystemnotification ('Invalid configuration: missing _SYSTEEM user', 1);
END;
IF lmelder_key IS NOT NULL
THEN
-- Ik denk dat het voorlopig voldoende is om te checken dat *wij* hier niet al eerder
-- een automatische melding hebben gegenereerd. Handmatige parallelle meldingen
-- beschouwen we niet. We willen primair voorkomen dat er in een paar minuten tientallen
-- meldingen ontstaan omdat de waarde rond de limiet flippert. Een daalmarge zou
-- een ander mechanisme hiertegen kunnen zijn, maar dit is intrinsieker.
-- Ik zoek de goedkoopst mogelijk check, ik weet hier al zeker dat we (weer)
-- de limiet overschrijden. We nemen de tijd niet in beschouwing, omdat voor de ene
-- toepassing 1 minuut recent is, en voor een andere misschien een maand.
BEGIN
SELECT m.mld_melding_key
INTO ldubbelcheck_key
FROM mld_melding m, mld_melding_object mo
WHERE m.mld_melding_key = mo.mld_melding_key
AND mo.ins_deel_key = :new.ins_deel_key
AND m.mld_stdmelding_key = lstdmelding_key
AND m.prs_perslid_key = lmelder_key
AND m.mld_melding_status IN (2
, 0
, 4
, 7); -- lopend
IF ldubbelcheck_key IS NOT NULL -- puur voor de leesbaarheid, als er geen is gaan we nl in de exception verder
THEN
-- track this. This seems like an appropriate place.
UPDATE ins_deel_state_history
SET ins_deel_state_history_opmerk = REPLACE (REPLACE (lcl.l ('lcl_ins_sensorstate_already_mld'), '{0}', ldubbelcheck_key), '{1}', lstatethreshold)
WHERE ins_deel_state_history_key = lstate_history_key;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
BEGIN
-- dit zou de trigger van mld_melding wel mogen doen..
SELECT msm.mld_ins_discipline_key
INTO ldiscipline_key
FROM mld_stdmelding msm
WHERE msm.mld_stdmelding_key = lstdmelding_key;
INSERT INTO mld_melding (mld_melding_module
, mld_meldbron_key
, mld_alg_locatie_key
, mld_alg_onroerendgoed_keys
, mld_melding_datum
, mld_melding_onderwerp
, mld_melding_omschrijving
, mld_stdmelding_key
, mld_melding_status
, mld_kosten_klant
, prs_perslid_key
, mld_melding_spoed
, mld_ins_discipline_key)
VALUES ('MLD'
, 11
, -- sensor
:new.ins_alg_locatie_key
, :new.ins_alg_ruimte_key
, SYSDATE
, lcl.l ('lcl_mld_state_generated_onderwerp')
, REPLACE (REPLACE (lcl.l ('lcl_mld_state_generated_omschrijving'), '{0}', :new.ins_deel_state), '{1}', lstatethreshold)
, lstdmelding_key
, 2
, -- of afh mld_directklaar
NULL
, lmelder_key
, --TODO!!!!!!! prs_perslid_key,
3
, ldiscipline_key)
RETURNING mld_melding_key
INTO lmelding_key;
--en het sensorobject erbij registreren
INSERT INTO mld_melding_object (ins_deel_key, mld_melding_key)
VALUES (:new.ins_deel_key, lmelding_key);
-- track this. This seems like an appropriate place.
UPDATE ins_deel_state_history
SET ins_deel_state_history_opmerk =
REPLACE (REPLACE (lcl.l ('lcl_ins_sensorstate_caused_mld'), '{0}', lmelding_key), '{1}', lstatethreshold)
WHERE ins_deel_state_history_key = lstate_history_key;
-- If defined kick off the workflow
mld.mld_nextworkflowstep (lmelding_key, -1);
END;
END;
END IF;
END IF;
END;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.put_line ('Statevalues set for non-sensor: ignored');
NULL;
END;
-- Uitlenen object: Uitgifte object toevoegen aan de uitgifte tabel.
IF (:old.ins_alg_ruimte_key_org IS NULL AND :new.ins_alg_ruimte_key_org IS NOT NULL)
AND (:old.ins_alg_ruimte_type_org IS NULL AND :new.ins_alg_ruimte_type_org IS NOT NULL)
AND (:new.ins_alg_ruimte_type = 'C' OR :new.ins_alg_ruimte_type = 'P')
IF (:old.ins_alg_ruimte_key_org IS NULL AND :new.ins_alg_ruimte_key_org IS NOT NULL)
AND (:old.ins_alg_ruimte_type_org IS NULL AND :new.ins_alg_ruimte_type_org IS NOT NULL)
AND (:new.ins_alg_ruimte_type = 'C' OR :new.ins_alg_ruimte_type = 'P')
THEN
BEGIN
INSERT INTO ins_deel_uitgifte (ins_deel_key
, ins_deel_uitgifte_begin
, ins_deel_uitgifte_eind_plan
, prs_perslid_key
, prs_contactpersoon_key)
VALUES (:new.ins_deel_key
, SYSDATE
, CASE
WHEN :new.res_rsv_deel_key IS NOT NULL
THEN (SELECT rrd.res_rsv_deel_tot
FROM res_rsv_deel rrd
WHERE res_rsv_deel_key = :new.res_rsv_deel_key)
ELSE NULL
END
, CASE
WHEN :new.ins_alg_ruimte_type = 'P'
THEN :new.ins_alg_ruimte_key
ELSE NULL
END
, CASE
WHEN :new.ins_alg_ruimte_type = 'C'
THEN :new.ins_alg_ruimte_key
ELSE NULL
END);
, ins_deel_uitgifte_begin
, ins_deel_uitgifte_eind_plan
, prs_perslid_key
, prs_contactpersoon_key)
VALUES (:new.ins_deel_key
, SYSDATE
, CASE
WHEN :new.res_rsv_deel_key IS NOT NULL
THEN
(SELECT rrd.res_rsv_deel_tot
FROM res_rsv_deel rrd
WHERE res_rsv_deel_key = :new.res_rsv_deel_key)
ELSE
NULL
END
, CASE WHEN :new.ins_alg_ruimte_type = 'P' THEN :new.ins_alg_ruimte_key ELSE NULL END
, CASE WHEN :new.ins_alg_ruimte_type = 'C' THEN :new.ins_alg_ruimte_key ELSE NULL END);
END;
END IF;
-- Innemen object: Inname object aanpassen in de uitgifte tabel.
IF (:old.ins_alg_ruimte_key_org IS NOT NULL AND :new.ins_alg_ruimte_key_org IS NULL)
AND (:old.ins_alg_ruimte_type_org IS NOT NULL AND :new.ins_alg_ruimte_type_org IS NULL)
AND (:old.ins_alg_ruimte_type = 'C' OR :old.ins_alg_ruimte_type = 'P')
IF (:old.ins_alg_ruimte_key_org IS NOT NULL AND :new.ins_alg_ruimte_key_org IS NULL)
AND (:old.ins_alg_ruimte_type_org IS NOT NULL AND :new.ins_alg_ruimte_type_org IS NULL)
AND (:old.ins_alg_ruimte_type = 'C' OR :old.ins_alg_ruimte_type = 'P')
THEN
BEGIN
UPDATE ins_deel_uitgifte
@@ -623,7 +670,7 @@ BEGIN
WHILE PrimaryKey IS NOT NULL
LOOP
Dummy := fac.remember_SavePrimaryKey('INS_TRIGGER_BUSY', 1);
/* Jammer maar helaas, vanwege syntaxredenen moeten we weten of we met UNDO te maken hebben
/* Jammer maar helaas, vanwege syntaxredenen moeten we weten of we met UNDO te maken hebben */
/* Als parent is verwijderd, dan is deletemode gevuld met zijn datum */
/* Als parent terug wordt gehaald, dan is delete-mode gevuld met NULL ( betekent FALSE) */
SELECT ins_deel_verwijder

View File

@@ -39,16 +39,65 @@ AS
AND fac_code2label_domein = 'controle'
AND fac_locale_xsl_lang = lcl.getuserlanguage ();
/* Voor onderdelen de plaats/eigenaar van de parent. */
CREATE_VIEW(ins_v_deelenonderdeel, 0)
AS
SELECT dl.ins_deel_key,
dl.ins_deel_module,
dl.ins_srtdeel_key,
COALESCE(dl.ins_alg_ruimte_key, parent_deel.ins_alg_ruimte_key) ins_alg_ruimte_key,
COALESCE(dl.ins_alg_ruimte_type, parent_deel.ins_alg_ruimte_type) ins_alg_ruimte_type,
dl.ins_deel_aantal,
dl.ins_deel_omschrijving,
dl.ins_deel_opmerking,
dl.ins_deel_upper,
dl.ins_deel_aanmaak,
dl.ins_deel_vervaldatum,
dl.ins_deel_verwijder,
dl.ins_deel_getekend,
dl.ins_discipline_key,
dl.ins_alg_locatie_key,
dl.ins_deel_parent_key,
dl.ins_deel_omtrek,
dl.ins_deel_oppervlak,
dl.ins_deel_dwgx,
dl.ins_deel_dwgy,
dl.ins_deel_dwgz,
dl.ins_deel_dwgrotatie,
dl.ins_deel_dwgschaal,
dl.ins_deel_x,
dl.ins_deel_y,
dl.ins_alg_ruimte_key_org,
dl.ins_alg_ruimte_type_org,
dl.ins_deel_state,
dl.ins_deel_statedate,
dl.ins_deel_t_uitvoertijd,
dl.ins_deel_actief,
dl.ins_deel_image,
dl.ins_deel_mjb_score1,
dl.ins_deel_mjb_score2,
dl.ins_deel_externnr,
dl.ins_deel_externsyncdate,
dl.ins_deel_flag,
dl.prs_perslid_key_beh,
dl.res_rsv_deel_key,
dl.bes_bestelopdr_key
FROM ins_deel dl
LEFT OUTER JOIN ins_deel parent_deel
ON parent_deel.ins_deel_key = dl.ins_deel_parent_key;
/* Views met ins_deel moeten voorwaarde : "AND ins_deel_parent_key IS NULL" bevatten... */
DEFINIEER_VIEW_AANWEZIG(ins_deel, ins_deel_verwijder,
ins_v_aanwezigdeel,0) AND
ins_deel_parent_key IS NULL;
/* Views met ins_onderdeel moeten voorwaarde : "AND ins_deel_parent_key IS NOT NULL" bevatten... */
DEFINIEER_VIEW_AANWEZIG(ins_deel, ins_deel_verwijder,
DEFINIEER_VIEW_AANWEZIG(ins_v_deelenonderdeel, ins_deel_verwijder,
ins_v_aanwezigonderdeel,0) AND
ins_deel_parent_key IS NOT NULL;
DEFINIEER_VIEW_AANWEZIG(ins_v_deelenonderdeel, ins_deel_verwijder,
ins_v_aanwezigdeelenonderdeel,0);
CREATE_VIEW(ins_v_srtgroep_gegevens,0) AS
SELECT ins_D.ins_discipline_key, ins_D.ins_discipline_omschrijving,
@@ -470,6 +519,169 @@ AS SELECT INS_D.ins_discipline_key
* komt te staan.
*/
CREATE_VIEW(ins_v_deelenonderdeel_gegevens,0)
( ins_discipline_key
, ins_discipline_omschrijving
, ins_srtgroep_key
, ins_srtgroep_omschrijving
, ins_srtgroep_upper
, ins_srtdeel_key
, ins_srtdeel_omschrijving
, ins_srtdeel_upper
, alg_locatie_key
, alg_gebouw_key
, alg_gebouw_code
, alg_gebouw_naam
, alg_gebouw_omschrijving
, alg_gebouw_upper
, alg_verdieping_key
, alg_verdieping_omschrijving
, alg_verdieping_upper
, alg_verdieping_code
, alg_ruimte_key
, alg_ruimte_nr
, alg_ruimte_upper_nr
, prs_werkplek_key
, prs_werkplek_module
, prs_werkplek_volgnr
, alg_terreinsector_key
, alg_terreinsector_omschrijving
, alg_terreinsector_upper
, alg_plaatsaanduiding
, prs_afdeling_key
, prs_afdeling_omschrijving
, prs_afdeling_upper
, prs_perslid_key
, prs_perslid_volnaam
, prs_perslid_upper
, ins_deel_key
, ins_deel_omschrijving
, ins_deel_upper
, ins_deel_aantal
, ins_deel_oppervlak
, ins_deel_omtrek
, ins_deel_aanmaak
, ins_deel_opmerking
, ins_deel_getekend
, ins_deel_vervaldatum
)
AS SELECT INS_D.ins_discipline_key
, INS_D.ins_discipline_omschrijving
, INS_SG.ins_srtgroep_key
, INS_SG.ins_srtgroep_omschrijving
, INS_SG.ins_srtgroep_upper
, INS_SD.ins_srtdeel_key
, INS_SD.ins_srtdeel_code||'-'||INS_SD.ins_srtdeel_omschrijving
, INS_SD.ins_srtdeel_upper
, INS_DE.ins_alg_locatie_key
, INS_AO.alg_gebouw_key
, INS_AO.alg_gebouw_code
, INS_AO.alg_gebouw_naam
, INS_AO.alg_gebouw_omschrijving
, INS_AO.alg_gebouw_upper
, INS_AO.alg_verdieping_key
, INS_AO.alg_verdieping_omschrijving
, INS_AO.alg_verdieping_upper
, INS_AO.alg_verdieping_code
, INS_AO.alg_ruimte_key
, INS_AO.alg_ruimte_nr
, INS_AO.alg_ruimte_upper_nr
, INS_AO.prs_werkplek_key
, INS_AO.prs_werkplek_module
, INS_AO.prs_werkplek_volgnr
, INS_AO.alg_terreinsector_key
, INS_AO.alg_terreinsector_omschrijving
, INS_AO.alg_terreinsector_upper
, INS_AO.alg_plaatsaanduiding
, to_number(NULL)
, NULL
, NULL
, to_number(NULL)
, NULL
, NULL
, INS_DE.ins_deel_key
, INS_DE.ins_deel_omschrijving
, INS_DE.ins_deel_upper
, INS_DE.ins_deel_aantal
, INS_DE.ins_deel_oppervlak
, INS_DE.ins_deel_omtrek
, INS_DE.ins_deel_aanmaak
, INS_DE.ins_deel_opmerking
, INS_DE.ins_deel_getekend
, INS_DE.ins_deel_vervaldatum
FROM ins_v_deelenonderdeel INS_DE
, ins_tab_discipline INS_D
, ins_v_alg_overzicht INS_AO
, ins_srtdeel INS_SD
, ins_srtgroep INS_SG
WHERE INS_DE.ins_deel_verwijder IS NULL
AND INS_AO.alg_onroerendgoed_keys = INS_DE.ins_alg_ruimte_key
AND INS_AO.alg_onroerendgoed_type = INS_DE.ins_alg_ruimte_type
AND INS_DE.ins_alg_ruimte_type IN ('T','R','W')
AND INS_AO.alg_locatie_key = INS_DE.ins_alg_locatie_key
AND INS_SD.ins_srtdeel_key = INS_DE.ins_srtdeel_key
AND INS_SG.ins_srtgroep_key = INS_SD.ins_srtgroep_key
AND INS_D.ins_discipline_key = INS_DE.ins_discipline_key
AND INS_DE.ins_discipline_key IN (SELECT ins_discipline_key FROM ins_discipline)
UNION
SELECT INS_D.ins_discipline_key
, INS_D.ins_discipline_omschrijving
, INS_SG.ins_srtgroep_key
, INS_SG.ins_srtgroep_omschrijving
, INS_SG.ins_srtgroep_upper
, INS_SD.ins_srtdeel_key
, INS_SD.ins_srtdeel_code||'-'||INS_SD.ins_srtdeel_omschrijving
, INS_SD.ins_srtdeel_upper
, INS_DE.ins_alg_locatie_key
, to_number(NULL)
, NULL
, NULL
, NULL
, NULL
, to_number(NULL)
, NULL
, NULL
, to_number(NULL)
, to_number(NULL)
, NULL
, NULL
, to_number(NULL)
, NULL
, to_number(NULL)
, to_number(NULL)
, NULL
, NULL
, decode(PRS_AP.prs_roerendgoed_type,'A',prs_afdeling_upper,'P',prs_perslid_volnaam)
, PRS_AP.prs_afdeling_key
, PRS_AP.prs_afdeling_omschrijving
, PRS_AP.prs_afdeling_upper
, PRS_AP.prs_perslid_key
, PRS_AP.prs_perslid_volnaam
, PRS_AP.prs_perslid_upper
, INS_DE.ins_deel_key
, INS_DE.ins_deel_omschrijving
, INS_DE.ins_deel_upper
, INS_DE.ins_deel_aantal
, INS_DE.ins_deel_oppervlak
, INS_DE.ins_deel_omtrek
, INS_DE.ins_deel_aanmaak
, INS_DE.ins_deel_opmerking
, INS_DE.ins_deel_getekend
, INS_DE.ins_deel_vervaldatum
FROM ins_v_deelenonderdeel INS_DE
, ins_tab_discipline INS_D
, prs_v_afdeling_perslid PRS_AP
, ins_srtdeel INS_SD
, ins_srtgroep INS_SG
WHERE INS_DE.ins_deel_verwijder IS NULL
AND PRS_AP.prs_roerendgoed_key = INS_DE.ins_alg_ruimte_key
AND PRS_AP.prs_roerendgoed_type = INS_DE.ins_alg_ruimte_type
AND INS_DE.ins_alg_ruimte_type IN ('A','P')
AND INS_SD.ins_srtdeel_key = INS_DE.ins_srtdeel_key
AND INS_SG.ins_srtgroep_key = INS_SD.ins_srtgroep_key
AND INS_D.ins_discipline_key = INS_DE.ins_discipline_key
AND INS_DE.ins_discipline_key IN (SELECT ins_discipline_key FROM ins_discipline);
CREATE_VIEW(ins_v_orgdeel_gegevens,0)
( ins_discipline_key
, ins_discipline_omschrijving
@@ -680,7 +892,7 @@ AS
select de.ins_discipline_key,gr.ins_srtgroep_key,de.ins_srtdeel_key
,de.ins_alg_locatie_key,ve.alg_gebouw_key,ru.alg_verdieping_key
,de.ins_alg_ruimte_key,to_number(null),to_number(null),to_number(null),to_number(null),de.ins_deel_key
from ins_deel de,ins_srtgroep gr, ins_srtdeel sd, alg_ruimte ru,alg_verdieping ve
from ins_v_deelenonderdeel de,ins_srtgroep gr, ins_srtdeel sd, alg_ruimte ru,alg_verdieping ve
where de.ins_discipline_key = gr.ins_discipline_key
and de.ins_srtdeel_key = sd.ins_srtdeel_key
and sd.ins_srtgroep_key = gr.ins_srtgroep_key
@@ -691,7 +903,7 @@ union
select de.ins_discipline_key,gr.ins_srtgroep_key,de.ins_srtdeel_key
,de.ins_alg_locatie_key,ve.alg_gebouw_key,ru.alg_verdieping_key
,ru.alg_ruimte_key,de.ins_alg_ruimte_key,to_number(null),to_number(null),to_number(null),de.ins_deel_key
from ins_deel de,ins_srtgroep gr, ins_srtdeel sd, prs_werkplek wp, alg_ruimte ru, alg_verdieping ve
from ins_v_deelenonderdeel de,ins_srtgroep gr, ins_srtdeel sd, prs_werkplek wp, alg_ruimte ru, alg_verdieping ve
where de.ins_discipline_key = gr.ins_discipline_key
and de.ins_srtdeel_key = sd.ins_srtdeel_key
and sd.ins_srtgroep_key = gr.ins_srtgroep_key
@@ -703,7 +915,7 @@ union
select de.ins_discipline_key,gr.ins_srtgroep_key,de.ins_srtdeel_key
,de.ins_alg_locatie_key,to_number(null),to_number(null),to_number(null),to_number(null)
,de.ins_alg_ruimte_key,to_number(null),to_number(null),de.ins_deel_key
from ins_deel de,ins_srtgroep gr, ins_srtdeel sd
from ins_v_deelenonderdeel de,ins_srtgroep gr, ins_srtdeel sd
where de.ins_discipline_key = gr.ins_discipline_key
and de.ins_srtdeel_key = sd.ins_srtdeel_key
and sd.ins_srtgroep_key = gr.ins_srtgroep_key and de.ins_alg_ruimte_type = 'T'
@@ -712,7 +924,7 @@ union
select de.ins_discipline_key,gr.ins_srtgroep_key,de.ins_srtdeel_key
,de.ins_alg_locatie_key,to_number(null),to_number(null)
,to_number(null),to_number(null), to_number(null),de.ins_alg_ruimte_key,to_number(null),de.ins_deel_key
from ins_deel de,ins_srtgroep gr,ins_srtdeel sd
from ins_v_deelenonderdeel de,ins_srtgroep gr,ins_srtdeel sd
where de.ins_discipline_key = gr.ins_discipline_key
and de.ins_srtdeel_key = sd.ins_srtdeel_key
and sd.ins_srtgroep_key = gr.ins_srtgroep_key and de.ins_alg_ruimte_type = 'A'
@@ -721,7 +933,7 @@ union
select de.ins_discipline_key,gr.ins_srtgroep_key,de.ins_srtdeel_key
,de.ins_alg_locatie_key,to_number(null),to_number(null)
,to_number(null),to_number(null),to_number(null),af.prs_afdeling_key,de.ins_alg_ruimte_key,de.ins_deel_key
from ins_deel de,ins_srtgroep gr,ins_srtdeel sd,prs_perslid pl,prs_afdeling af
from ins_v_deelenonderdeel de,ins_srtgroep gr,ins_srtdeel sd,prs_perslid pl,prs_afdeling af
where de.ins_discipline_key = gr.ins_discipline_key
and de.ins_srtdeel_key = sd.ins_srtdeel_key
and sd.ins_srtgroep_key = gr.ins_srtgroep_key
@@ -738,7 +950,7 @@ AS
select de.ins_discipline_key,gr.ins_srtgroep_key,de.ins_srtdeel_key
,de.ins_alg_locatie_key,ve.alg_gebouw_key,ru.alg_verdieping_key
,de.ins_alg_ruimte_key_org,TO_NUMBER(null),TO_NUMBER(null),TO_NUMBER(null),TO_NUMBER(null),de.ins_deel_key
from ins_deel de,ins_srtgroep gr, ins_srtdeel sd, alg_ruimte ru,alg_verdieping ve
from ins_v_deelenonderdeel de,ins_srtgroep gr, ins_srtdeel sd, alg_ruimte ru,alg_verdieping ve
where de.ins_discipline_key = gr.ins_discipline_key
and de.ins_srtdeel_key = sd.ins_srtdeel_key
and sd.ins_srtgroep_key = gr.ins_srtgroep_key
@@ -749,7 +961,7 @@ union
select de.ins_discipline_key,gr.ins_srtgroep_key,de.ins_srtdeel_key
,de.ins_alg_locatie_key,ve.alg_gebouw_key,ru.alg_verdieping_key
,ru.alg_ruimte_key,de.ins_alg_ruimte_key_org,TO_NUMBER(null),TO_NUMBER(null),TO_NUMBER(null),de.ins_deel_key
from ins_deel de,ins_srtgroep gr, ins_srtdeel sd, prs_werkplek wp, alg_ruimte ru, alg_verdieping ve
from ins_v_deelenonderdeel de,ins_srtgroep gr, ins_srtdeel sd, prs_werkplek wp, alg_ruimte ru, alg_verdieping ve
where de.ins_discipline_key = gr.ins_discipline_key
and de.ins_srtdeel_key = sd.ins_srtdeel_key
and sd.ins_srtgroep_key = gr.ins_srtgroep_key
@@ -761,7 +973,7 @@ union
select de.ins_discipline_key,gr.ins_srtgroep_key,de.ins_srtdeel_key
,de.ins_alg_locatie_key,TO_NUMBER(null),TO_NUMBER(null),TO_NUMBER(null),TO_NUMBER(null)
,de.ins_alg_ruimte_key_org,TO_NUMBER(null),TO_NUMBER(null),de.ins_deel_key
from ins_deel de,ins_srtgroep gr, ins_srtdeel sd
from ins_v_deelenonderdeel de,ins_srtgroep gr, ins_srtdeel sd
where de.ins_discipline_key = gr.ins_discipline_key
and de.ins_srtdeel_key = sd.ins_srtdeel_key
and sd.ins_srtgroep_key = gr.ins_srtgroep_key and de.ins_alg_ruimte_type_org = 'T'
@@ -770,7 +982,7 @@ union
select de.ins_discipline_key,gr.ins_srtgroep_key,de.ins_srtdeel_key
,de.ins_alg_locatie_key,TO_NUMBER(null),TO_NUMBER(null)
,TO_NUMBER(null),TO_NUMBER(null), TO_NUMBER(null),de.ins_alg_ruimte_key_org,TO_NUMBER(null),de.ins_deel_key
from ins_deel de,ins_srtgroep gr,ins_srtdeel sd
from ins_v_deelenonderdeel de,ins_srtgroep gr,ins_srtdeel sd
where de.ins_discipline_key = gr.ins_discipline_key
and de.ins_srtdeel_key = sd.ins_srtdeel_key
and sd.ins_srtgroep_key = gr.ins_srtgroep_key and de.ins_alg_ruimte_type_org = 'A'
@@ -779,7 +991,7 @@ union
select de.ins_discipline_key,gr.ins_srtgroep_key,de.ins_srtdeel_key
,de.ins_alg_locatie_key,TO_NUMBER(null),TO_NUMBER(null)
,TO_NUMBER(null),TO_NUMBER(null),TO_NUMBER(null),af.prs_afdeling_key,de.ins_alg_ruimte_key_org,de.ins_deel_key
from ins_deel de,ins_srtgroep gr,ins_srtdeel sd,prs_perslid pl,prs_afdeling af
from ins_v_deelenonderdeel de,ins_srtgroep gr,ins_srtdeel sd,prs_perslid pl,prs_afdeling af
where de.ins_discipline_key = gr.ins_discipline_key
and de.ins_srtdeel_key = sd.ins_srtdeel_key
and sd.ins_srtgroep_key = gr.ins_srtgroep_key
@@ -830,12 +1042,12 @@ AS SELECT INS_D.ins_discipline_key
, INS_DE.ins_deel_upper
, INS_DE.ins_deel_aantal
, INS_DE2.ins_deel_omschrijving
FROM ins_deel INS_DE
, ins_discipline INS_D
, ins_v_alg_overzicht INS_AO
, ins_srtdeel INS_SD
, ins_srtgroep INS_SG
, ins_deel INS_DE2
FROM ins_v_deelenonderdeel INS_DE
, ins_discipline INS_D
, ins_v_alg_overzicht INS_AO
, ins_srtdeel INS_SD
, ins_srtgroep INS_SG
, ins_v_deelenonderdeel INS_DE2
WHERE INS_DE.ins_deel_verwijder IS NULL
AND INS_DE.ins_deel_parent_key = INS_DE2.ins_deel_key
AND INS_AO.alg_onroerendgoed_keys = INS_DE.ins_alg_ruimte_key
@@ -867,12 +1079,12 @@ AS SELECT INS_D.ins_discipline_key
, INS_DE.ins_deel_upper
, INS_DE.ins_deel_aantal
, INS_DE2.ins_deel_omschrijving
FROM ins_deel INS_DE
FROM ins_v_deelenonderdeel INS_DE
, ins_discipline INS_D
, prs_v_afdeling_perslid PRS_AP
, ins_srtdeel INS_SD
, ins_srtgroep INS_SG
, ins_deel INS_DE2
, ins_v_deelenonderdeel INS_DE2
WHERE INS_DE.ins_deel_verwijder IS NULL
AND INS_DE.ins_deel_parent_key = INS_DE2.ins_deel_key
AND PRS_AP.prs_roerendgoed_key = INS_DE.ins_alg_ruimte_key
@@ -1329,11 +1541,11 @@ AS SELECT ALG_L.alg_locatie_code ||'-'
, INS_D.ins_deel_omschrijving
, INS_D.ins_deel_verwijder
, ALG_V.alg_verdieping_key
FROM ins_deel INS_D
, alg_ruimte ALG_R
, alg_verdieping ALG_V
, alg_gebouw ALG_G
, alg_locatie ALG_L
FROM ins_v_deelenonderdeel INS_D
, alg_ruimte ALG_R
, alg_verdieping ALG_V
, alg_gebouw ALG_G
, alg_locatie ALG_L
WHERE INS_D.ins_alg_ruimte_key = ALG_R.alg_ruimte_key
AND INS_D.ins_alg_ruimte_type = 'R'
AND ALG_R.alg_verdieping_key = ALG_V.alg_verdieping_key
@@ -1358,12 +1570,12 @@ AS SELECT ALG_L.alg_locatie_code ||'-'
, INS_D.ins_deel_omschrijving
, INS_D.ins_deel_verwijder
, ALG_V.alg_verdieping_key
FROM ins_deel INS_D
, prs_werkplek PRS_W
, alg_ruimte ALG_R
, alg_verdieping ALG_V
, alg_gebouw ALG_G
, alg_locatie ALG_L
FROM ins_v_deelenonderdeel INS_D
, prs_werkplek PRS_W
, alg_ruimte ALG_R
, alg_verdieping ALG_V
, alg_gebouw ALG_G
, alg_locatie ALG_L
WHERE INS_D.ins_alg_ruimte_key = PRS_W.prs_werkplek_key
AND INS_D.ins_alg_ruimte_type = 'W'
AND PRS_W.prs_alg_ruimte_key = ALG_R.alg_ruimte_key
@@ -1384,17 +1596,17 @@ CREATE_VIEW (ins_v_ins_deel_verdieping,0)
, alg_verdieping_key)
AS SELECT INS_D.ins_deel_key,
ALG_R.alg_verdieping_key
FROM ins_deel INS_D,
alg_ruimte ALG_R
FROM ins_v_deelenonderdeel INS_D,
alg_ruimte ALG_R
WHERE INS_D.ins_alg_ruimte_key = ALG_R.alg_ruimte_key
AND ins_alg_ruimte_type = 'R'
AND ins_deel_verwijder IS NULL
UNION
SELECT INS_D.ins_deel_key,
ALG_R.alg_verdieping_key
FROM ins_deel INS_D,
prs_werkplek PRS_W,
alg_ruimte ALG_R
FROM ins_v_deelenonderdeel INS_D,
prs_werkplek PRS_W,
alg_ruimte ALG_R
WHERE INS_D.ins_alg_ruimte_key = PRS_W.prs_werkplek_key
AND PRS_W.prs_alg_ruimte_key = ALG_R.alg_ruimte_key
AND ins_alg_ruimte_type = 'W'
@@ -2153,7 +2365,7 @@ AS
ins_srtkenmerk_omschrijving)
kenmerk,
CASE
WHEN skm.ins_srtkenmerk_kenmerktype = 'R' OR skm.ins_srtkenmerk_kenmerktype = 'S'
WHEN skm.ins_srtkenmerk_kenmerktype = 'R' OR skm.ins_srtkenmerk_kenmerktype = 'r' OR skm.ins_srtkenmerk_kenmerktype = 'S'
THEN
flx.getdomeinwaarde (skm.fac_kenmerkdomein_key, km.ins_kenmerkdeel_waarde)
WHEN skm.ins_srtkenmerk_kenmerktype = 'C' OR skm.ins_srtkenmerk_kenmerktype = 'F'
@@ -2178,7 +2390,7 @@ AS
END
waarde_d,
CASE
WHEN skm.ins_srtkenmerk_kenmerktype IN ('R', 'S')
WHEN skm.ins_srtkenmerk_kenmerktype IN ('R', 'r', 'S')
THEN
flx.getdomeinwaarde (skm.fac_kenmerkdomein_key, km.ins_kenmerkdeel_waarde)
ELSE
@@ -2199,70 +2411,76 @@ AS
-- Alle gedane en lopende inspecties van alle objecten.
CREATE OR REPLACE FORCE VIEW ins_v_udr_deelinspect
AS
SELECT d.deel_key,
d.discipline,
d.soort,
d.groep,
d.soortcode,
d.omschrijving,
d.plaatseigenaar,
d.plaatseigenaartype,
d.plaatsaanduiding,
d.eigenaar,
d.eigenaar_key,
d.opmerking,
d.regio,
d.district,
d.locatie_code,
d.locatie_omschrijving,
d.locatie_plaats,
d.gebouwcode,
d.gebouw,
d.terreinsectorcode,
d.terreinsector,
d.verdiepingcode,
d.ruimtenr,
d.werkplekvolgnr,
d.werkplek,
d.uitleenbaar,
d.uitgeleend,
d.res_opmerking,
d.beheerder,
d.vervaldatum,
d.actief,
d.aantal,
d.state,
d.statedate,
d.fclt_3d_discipline_key,
d.fclt_3d_afdeling_key,
d.fclt_3d_locatie_key,
idsc.ins_deelsrtcontrole_key,
idsc.ins_srtcontrole_key,
(SELECT cd.ins_discipline_omschrijving
FROM ctr_discipline cd, ins_srtcontrole isc
WHERE isc.ins_srtcontrole_key = idsc.ins_srtcontrole_key
AND isc.ctr_discipline_key = cd.ins_discipline_key) ctr_discipline_omschrijving,
(SELECT isc.ins_srtcontrole_omschrijving
FROM ins_srtcontrole isc
WHERE isc.ins_srtcontrole_key = idsc.ins_srtcontrole_key) srtcontrole_omschrijving,
idsc.ins_deelsrtcontrole_datum,
(SELECT icm.ins_controlemode_oms
FROM ins_controlemode icm
WHERE icm.ins_controlemode_key = idsc.ins_controlemode_key) controlemode_omschrijving,
idsc.ins_deelsrtcontrole_opmerking,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = idsc.prs_perslid_key) perslid,
idsc.ins_deelsrtcontrole_datum_org,
idsc.ins_deelsrtcontrole_plandatum,
(SELECT lcl.x ('fc2l.fac_code2label_label', fc2l.fac_code2label_key, fc2l.fac_code2label_label)
FROM fac_code2label fc2l
WHERE fc2l.fac_code2label_domein = 'controle'
AND fc2l.fac_code2label_code = idsc.ins_deelsrtcontrole_status) deelsrtcontrole_status,
idsc.ins_deelsrtcontrole_status
FROM ins_v_udr_deel d,
ins_deelsrtcontrole idsc
WHERE d.deel_key = idsc.ins_deel_key;
SELECT d.deel_key
, d.discipline
, d.soort
, d.groep
, d.soortcode
, d.omschrijving
, d.plaatseigenaar
, d.plaatseigenaartype
, d.plaatsaanduiding
, d.eigenaar
, d.eigenaar_key
, d.opmerking
, d.regio
, d.district
, d.locatie_code
, d.locatie_omschrijving
, d.locatie_plaats
, d.gebouwcode
, d.gebouw
, d.terreinsectorcode
, d.terreinsector
, d.verdiepingcode
, d.ruimtenr
, d.werkplekvolgnr
, d.werkplek
, d.uitleenbaar
, d.uitgeleend
, d.res_opmerking
, d.beheerder
, d.vervaldatum
, d.actief
, d.aantal
, d.state
, d.statedate
, d.fclt_3d_discipline_key
, d.fclt_3d_afdeling_key
, d.fclt_3d_locatie_key
, idsc.ins_deelsrtcontrole_key
, idsc.ins_srtcontrole_key
, (SELECT cd.ins_discipline_omschrijving
FROM ctr_discipline cd
WHERE isc.ctr_discipline_key = cd.ins_discipline_key)
ctr_discipline_omschrijving
, isc.ins_srtcontrole_omschrijving
srtcontrole_omschrijving
, idsc.ins_deelsrtcontrole_datum
, icm.ins_controlemode_oms
controlemode_omschrijving
, icm.ins_controlemode_opmerking
controlemode_opmerking
, DECODE (icm.ins_controlemode_success, 1, lcl.l ('lcl_yes'), 0, lcl.l ('lcl_no'), lcl.l('lcl_unknown'))
controlemode_succes
, idsc.ins_deelsrtcontrole_opmerking
, (SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = idsc.prs_perslid_key) perslid
, idsc.ins_deelsrtcontrole_datum_org
, idsc.ins_deelsrtcontrole_plandatum
, (SELECT lcl.x ('fc2l.fac_code2label_label', fc2l.fac_code2label_key, fc2l.fac_code2label_label)
FROM fac_code2label fc2l
WHERE fc2l.fac_code2label_domein = 'controle'
AND fc2l.fac_code2label_code = idsc.ins_deelsrtcontrole_status) deelsrtcontrole_status
, idsc.ins_deelsrtcontrole_status
FROM ins_v_udr_deel d
, ins_deelsrtcontrole idsc
, ins_srtcontrole isc
, ins_controlemode icm
WHERE isc.ins_srtcontrole_key = idsc.ins_srtcontrole_key
AND icm.ins_controlemode_key(+) = idsc.ins_controlemode_key
AND d.deel_key = idsc.ins_deel_key;
-- Alle soort controles die op de objecten zitten.
CREATE OR REPLACE FORCE VIEW ins_v_udr_deelsrtcontrole
@@ -2449,6 +2667,42 @@ SELECT di.deel_key,
ins_v_defined_inspect_xcp iscx
WHERE di.deel_key = iscx.ins_deel_key;
// Rapport over de actuele sensordata van alle sensoren met wat afgeleide gegevens
CREATE_VIEW(ins_v_udr_sensordata, 0)
AS
SELECT h.ins_deel_key deel_key
, og.alg_ruimte_key ruimte_key
, og.alg_plaatsaanduiding plaats
, d.ins_deel_omschrijving sensor
, sd.ins_srtdeel_omschrijving soort
, sd.ins_srtdeel_code soortcode
, DECODE (BITAND (sd.ins_srtdeel_sensortype, 3), 1, lcl.l ('lcl_ins_sensortype1'), 2, lcl.l ('lcl_ins_sensortype2'), '?') sensortype
, og.alg_gebouw_code gebouwcode
, og.alg_gebouw_naam gebouwnaam
, og.alg_verdieping_code verdiepingcode
, og.alg_ruimte_nr ruimtenr
, og.prs_werkplek_key werkplek_key
, og.prs_werkplek_volgnr werkplekvolgnr
, og.prs_werkplek_omschrijving werkplek
, og.alg_terreinsector_code terreinsectorcode
, og.alg_terreinsector_naam terreinsector
, h.ins_deel_state waarde
, sd.ins_srtdeel_statethreshold bovengrens
, DECODE (sd.ins_srtdeel_statethreshold, NULL, NULL, ins.state_diff (sd.ins_srtdeel_statethreshold, h.ins_deel_state)) marge
, h.ins_deel_statedate datum
, ROUND ((SYSDATE - h.ins_deel_statedate) * 24 * 60, 1) minutes_ago
, og.alg_locatie_key fclt_3d_locatie_key
, d.ins_discipline_key fclt_3d_discipline_key
FROM ins_deel h
, ins_v_deelenonderdeel d
, ins_v_alg_overzicht og
, ins_srtdeel sd
WHERE og.alg_onroerendgoed_keys = d.ins_alg_ruimte_key
AND og.alg_onroerendgoed_type = d.ins_alg_ruimte_type
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
AND sd.ins_srtdeel_sensortype > 0
AND d.ins_deel_key = h.ins_deel_key;
// Rapport over de gecomprimeerde/historische sensordata van status-sensoren
CREATE_VIEW(ins_v_udr_sensorhistogram, 0)
AS
@@ -2468,7 +2722,7 @@ AS
ROUND (h.ins_deel_statetime, 2) ratio,
og.alg_locatie_key fclt_3d_locatie_key,
d.ins_discipline_key fclt_3d_discipline_key
FROM ins_deel_state_history_all h, ins_deel d, ins_v_alg_overzicht og
FROM ins_deel_state_history_all h, ins_v_deelenonderdeel d, ins_v_alg_overzicht og
WHERE og.alg_onroerendgoed_keys = d.ins_alg_ruimte_key
AND og.alg_onroerendgoed_type = d.ins_alg_ruimte_type
AND d.ins_deel_key = h.ins_deel_key;
@@ -2484,18 +2738,19 @@ AS
og.alg_gebouw_code gebouwcode,
og.alg_gebouw_naam gebouwnaam,
og.alg_verdieping_code verdiepingcode,
og.alg_ruimte_key ruimte_key,
og.alg_ruimte_nr ruimtenr,
og.prs_werkplek_volgnr werkplekvolgnr,
og.prs_werkplek_omschrijving werkplek,
og.alg_terreinsector_code terreinsectorcode,
og.alg_terreinsector_naam terreinsector,
h.ins_deel_state status,
fac.safe_to_number (REPLACE (h.ins_deel_state, ',', '.')) status_numeriek,
h.ins_deel_state_value status_numeriek,
h.ins_deel_state_history_opmerk opmerking,
og.alg_locatie_key fclt_3d_locatie_key,
d.ins_discipline_key fclt_3d_discipline_key
FROM ins_deel_state_history h,
ins_deel d,
ins_v_deelenonderdeel d,
ins_v_alg_overzicht og,
ins_srtdeel sd
WHERE og.alg_onroerendgoed_keys = d.ins_alg_ruimte_key
@@ -2521,9 +2776,21 @@ AS
|| cp.prs_contactpersoon_naam contactpersoon,
a.prs_afdeling_omschrijving afdeling_omschrijving,
a.prs_afdeling_naam afdeling_code,
b.prs_bedrijf_naam bedrijf_naam
b.prs_bedrijf_naam bedrijf_naam,
d.ins_deel_vervaldatum vervaldatum,
d.ins_deel_verwijder verwijderdatum,
CASE
WHEN d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > SYSDATE
THEN lcl.l('lcl_no')
ELSE lcl.l('lcl_yes')
END vervallen,
CASE
WHEN d.ins_deel_verwijder IS NULL
THEN lcl.l('lcl_no')
ELSE lcl.l('lcl_yes')
END verwijderd
FROM ins_deel_uitgifte du,
ins_deel d,
ins_v_deelenonderdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_discipline dis,
@@ -2545,5 +2812,123 @@ AS
ORDER BY du.ins_deel_key,
du.ins_deel_uitgifte_begin;
/*
-- ins_v_room_occupancy_buckets:
-- Verzamelt 30-min buckets van de afgelopen 90 dagen per ruimte en bezettingssensor.
-- Filtert op werkdagen (ma<6D>vr) en sluit feestdagen uit.
-- Output-kolommen:
-- alg_ruimte_key, bucket_start, sensor_id, state ('true'/'false').
--
-- ins_v_room_occupancy_stats:
-- Agregeert per ruimte en bucket het aantal bezette werkplekken (occupied_desks)
-- en het totaal aantal werkpleksensoren (total_desks).
-- Output-kolommen:
-- room_key, bucket_start, occupied_desks, total_desks.
--
-- ins_v_room_occupancy_kpis:
-- Berekent per ruimte drie KPI's:
-- total_person_hours (som occupied_desks <20> 0.5u)
-- avg_utilization_pct (gem. benutting % op 1 decimaal)
-- peak_occupied_desks (max gelijktijdige bezetting in <20><>n bucket)
*/
CREATE_VIEW(ins_v_room_occupancy_buckets, 0)
AS
WITH
intervals
AS
( SELECT -- genereer alle 30-min-intervals tussen sysdate-90 en sysdate
TRUNC (SYSDATE - 90) + NUMTODSINTERVAL ((ROWNUM - 1) * 30, 'MINUTE') AS bucket_start
FROM DUAL
CONNECT BY ROWNUM <= ((SYSDATE - (SYSDATE - 90)) * 24 * 60 / 30)),
sensors
AS
( -- select alleen bezettingssensoren
SELECT d.ins_deel_key, d.ins_alg_ruimte_key AS alg_ruimte_key
FROM ins_deel d JOIN ins_srtdeel sd ON sd.ins_srtdeel_key = d.ins_srtdeel_key
WHERE sd.ins_srtgroep_key = fac.getsetting ('ins_occupationsensors_srtgroep_key') AND d.ins_alg_ruimte_type = 'R'),
sensor_states
AS
( SELECT i.bucket_start
, s.ins_deel_key AS sensor_id
, s.alg_ruimte_key
, MAX (h.ins_deel_statedate) AS last_ts
FROM intervals i
CROSS JOIN sensors s
LEFT JOIN ins_deel_state_history h ON h.ins_deel_key = s.ins_deel_key AND h.ins_deel_statedate <= i.bucket_start
GROUP BY i.bucket_start, s.ins_deel_key, s.alg_ruimte_key),
bucket_values
AS
(SELECT ss.alg_ruimte_key
, ss.bucket_start
, ss.sensor_id
, -- gebruik NVL om ontbrekende states als 'false' te tonen
NVL (h.ins_deel_state, 'false') AS state
FROM sensor_states ss LEFT JOIN ins_deel_state_history h ON h.ins_deel_key = ss.sensor_id AND h.ins_deel_statedate = ss.last_ts
-- filter op kantooruren via TO_CHAR, omdat EXTRACT(HOUR) niet werkt op DATE
WHERE (TO_NUMBER (TO_CHAR (ss.bucket_start, 'HH24')) + TO_NUMBER (TO_CHAR (ss.bucket_start, 'MI')) / 60) BETWEEN fac.getsetting ('fac_t_startofworkday')
AND fac.getsetting ('fac_t_endofworkday')
-- alleen maandag t/m vrijdag
AND TO_CHAR (ss.bucket_start, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') NOT IN ('SAT', 'SUN')
-- geen vrije dagen
AND TRUNC (ss.bucket_start) NOT IN (SELECT mld_vrije_dagen_datum FROM mld_vrije_dagen))
SELECT alg_ruimte_key
, bucket_start
, sensor_id
, state
FROM bucket_values;
CREATE_VIEW(ins_v_room_occupancy_stats, 0)
AS
SELECT rob.alg_ruimte_key
AS alg_ruimte_key
, rob.bucket_start
, -- aantal bezette werkplekken in de bucket
SUM (
CASE
WHEN (LOWER(rob.state) = 'true' OR rob.state = '1')
AND EXISTS
(SELECT 1
FROM ins_deel d JOIN ins_srtdeel sd ON sd.ins_srtdeel_key = d.ins_srtdeel_key
WHERE sd.ins_srtgroep_key = fac.getsetting ('ins_occupationsensors_srtgroep_key')
AND d.ins_deel_key = rob.sensor_id
AND d.ins_alg_ruimte_key = rob.alg_ruimte_key)
THEN
1
ELSE
0
END)
AS occupied_desks
, -- totaal aantal werkpleksensoren in de bucket
SUM (
CASE
WHEN EXISTS
(SELECT 1
FROM ins_deel d JOIN ins_srtdeel sd ON sd.ins_srtdeel_key = d.ins_srtdeel_key
WHERE sd.ins_srtgroep_key = fac.getsetting ('ins_occupationsensors_srtgroep_key')
AND d.ins_deel_key = rob.sensor_id
AND d.ins_alg_ruimte_key = rob.alg_ruimte_key)
THEN
1
ELSE
0
END)
AS total_desks
FROM ins_v_room_occupancy_buckets rob
GROUP BY rob.alg_ruimte_key, rob.bucket_start;
CREATE_VIEW(ins_v_room_occupancy_kpis, 0)
AS
SELECT alg_ruimte_key
, -- 1) Totaal persoon-uren over de afgelopen 90 dagen tijdens kantoortijden
SUM (occupied_desks * (30 / 60)) AS total_person_hours
, -- 2) Gemiddelde benutting als percentage per bucket, afgerond op 1 decimaal
ROUND (AVG (occupied_desks / NULLIF (total_desks, 0)) * 100, 1) AS avg_utilization_pct
, -- 3) Piek aantal gelijktijdig bezette werkplekken in <20><>n bucket
MAX (occupied_desks) AS peak_occupied_desks
FROM ins_v_room_occupancy_stats
GROUP BY alg_ruimte_key;
REGISTERRUN('$Id$')
#endif // INS

View File

@@ -77,7 +77,7 @@ CREATE INDEX mld_i_mld_opdr_uren2 ON mld_opdr_uren(mld_opdr_key);
CREATE UNIQUE INDEX mld_i_mld_dienstpakket ON mld_dienstpakket(mld_stdmelding_key, mld_dienstniveau_key);
CREATE UNIQUE INDEX mld_i_mld_opdr_uitvoeren1 ON mld_opdr_uitvoeren(mld_opdr_key, mld_opdr_uitvoeren_dag);
CREATE INDEX mld_i_mld_opdr_materiaal1 ON mld_opdr_materiaal(mld_opdr_key, fac_usrdata_key, mld_opdr_materiaal_omschr);
CREATE INDEX mld_i_mld_opdr_materiaal1 ON mld_opdr_materiaal(mld_opdr_key);
CREATE UNIQUE INDEX mld_i_mld_stdmeldingfaq1 ON mld_stdmeldingfaq(mld_stdmelding_key, ins_discipline_key, fac_faq_key);
CREATE INDEX mld_i_mld_stdmeldingfaq2 ON mld_stdmeldingfaq(ins_discipline_key, fac_faq_key);
@@ -88,6 +88,10 @@ CREATE INDEX mld_i_mld_typeopdrfaq2 ON mld_typeopdrfaq(fac_faq_key);
CREATE INDEX mld_i_mld_kenmerkblokmelding ON mld_kenmerkblokmelding(prs_perslid_key);
CREATE INDEX mld_i_mld_vrije_dagen_id ON mld_vrije_dagen(mld_vrije_dagen_id);
CREATE UNIQUE INDEX mld_i_mld_melding_tag1 ON mld_melding_tag(ins_srtdiscipline_key, UPPER(mld_melding_tag_naam), mld_melding_tag_verwijder);
REGISTERONCE('$Id$')
#endif // MLD

View File

@@ -343,7 +343,7 @@ DEFINE_LOCALEITEM(lcl_select_bedrijf)
DEFINE_LOCALEITEM(lcl_select_dienst_filter)
DEFINE_LOCALEITEM(lcl_select_notypeopdr_selected)
DEFINE_LOCALEITEM(lcl_select_typeopdr)
DEFINE_LOCALEITEM(lcl_setsend)
DEFINE_LOCALEITEM(lcl_setsent)
DEFINE_LOCALEITEM(lcl_status)
DEFINE_LOCALEITEM(lcl_status_details)
DEFINE_LOCALEITEM(lcl_submit)

File diff suppressed because it is too large Load Diff

View File

@@ -4,6 +4,7 @@
*/
CREATE SEQUENCE mld_s_mld_disc_params_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_vervolg_beperking_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_oorzaak_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_meldbron_key MINVALUE 50;
CREATE SEQUENCE mld_s_mld_standaardopdr_key MINVALUE 1;
@@ -18,6 +19,7 @@ CREATE SEQUENCE mld_s_mld_vrije_dagen_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_stdmelding_key MINVALUE 1; /* also used for mld_typeopdr */
CREATE SEQUENCE mld_s_mld_stdmeldinggroep_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_behandelgroep_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_melding_tag_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_stdm_srtinst_key MINVALUE 1;
CREATE SEQUENCE mld_s_mld_object_key MINVALUE 1;

View File

@@ -138,6 +138,25 @@ CREATE_TABLE(mld_disc_params, 0)
NUMBER(3) DEFAULT(0) NOT NULL
);
/* GUI-directives, used to restrict the vervolgmelding of a melding of ins_srtdiscipline_key_1 to ins_srtdiscipline_key_2
* Optional, no record for ins_srtdiscipline_key_1 = no restrictions for ins_srtdiscipline_key_1
*/
CREATE_TABLE(mld_vervolg_beperking, 0)
(
mld_vervolg_beperking_key
NUMBER(10)
PRIMARY KEY,
ins_srtdiscipline_key_1
NUMBER(10) NOT NULL
CONSTRAINT mld_r_ins_srtdiscipline_key1 REFERENCES ins_srtdiscipline(ins_srtdiscipline_key) ON DELETE CASCADE,
ins_srtdiscipline_key_2
NUMBER(10) NOT NULL
CONSTRAINT mld_r_ins_srtdiscipline_key3 REFERENCES ins_srtdiscipline(ins_srtdiscipline_key) ON DELETE CASCADE,
mld_vervolg_beperking_aanmaak
DATE DEFAULT SYSDATE NOT NULL
);
CREATE_TABLE(mld_oorzaak,0)
(
mld_oorzaak_key
@@ -172,7 +191,7 @@ CREATE_TABLE(mld_meldbron,0)
NOT_NULL(mld_meldbron_upper, mld_c_mld_meldbron_upper),
mld_meldbron_kiesbaar
NUMBER(1)
DEFAULT 1
DEFAULT 0
NOT NULL,
mld_meldbron_default
NUMBER(1),
@@ -293,6 +312,9 @@ CREATE_TABLE(mld_typeopdr,0)
mld_typeopdr_afhandeling /* Afhandeling verplicht bij afmelden opdracht van dit opdrachttype (0=Nee/1=Ja) */
NUMBER(1)
DEFAULT 0,
mld_typeopdr_confirm_for_send /* Hoe moet de opdrachten verstuurd worden (&1=Vraag opwerpen voor verzending, &2=Markeren voor verzending => 0=Direct versturen (Default), 1=Eerst Vragen, 2=Markeren) */
NUMBER(1)
DEFAULT 0,
mld_typeopdr_gvs
NUMBER(11,2)
DEFAULT 1000000,
@@ -310,6 +332,9 @@ CREATE_TABLE(mld_typeopdr,0)
DEFAULT 0 NOT NULL,
mld_typeopdr_image
VARCHAR2(255 CHAR),
mld_typeopdr_code
VARCHAR2(60)
CONSTRAINT mld_u_mld_typeopdr_code UNIQUE,
CONSTRAINT mld_u_mld_typeopdr_upper UNIQUE(mld_typeopdr_upper, mld_typeopdr_module)
);
@@ -344,6 +369,41 @@ CREATE_TABLE(mld_stdmeldinggroep,0)
CONSTRAINT mld_u_stdmeldinggroep_naam UNIQUE (mld_stdmeldinggroep_naam)
);
CREATE_TABLE(mld_melding_tag,0) /* generieke opzet voor mld_releases of mld_releasekalender: mijlpalen */
(
mld_melding_tag_key
NUMBER(10)
CONSTRAINT mld_k_melding_tag_key PRIMARY KEY,
ins_srtdiscipline_key
NUMBER(10) NOT NULL
CONSTRAINT mld_r_ins_srtdiscipline_key4 REFERENCES ins_srtdiscipline(ins_srtdiscipline_key) ON DELETE CASCADE,
mld_melding_tag_naam
VARCHAR2(30)
NOT NULL,
mld_melding_tag_oms /* korte omschrijving */
VARCHAR2(1000),
mld_stdmeldinggroep_key /* optional reference to mld_stdmeldinggroep */
NUMBER(10)
CONSTRAINT mld_r_mld_stdmeldinggroep_key2 REFERENCES mld_stdmeldinggroep(mld_stdmeldinggroep_key),
mld_melding_tag_datum_van /* lijkt logisch, maar definieren waarom */
DATE,
mld_melding_tag_datum_acc /* de acceptatiereleasedatum */
DATE,
mld_melding_tag_datum_tot /* de releasedatum */
DATE NOT NULL,
mld_melding_tag_actief /* om te kunnen laten vervallen */
NUMBER(2) DEFAULT 1 NOT NULL,
prs_perslid_key /* aanmaker of verantwoordelijke */
NUMBER(10)
CONSTRAINT mld_r_prs_perslid_key15 REFERENCES prs_perslid(prs_perslid_key),
mld_melding_tag_aanmaak
DATE DEFAULT SYSDATE NOT NULL,
mld_melding_tag_verwijder
DATE
/* UNIQUE via index mld_i_mld_melding_tag1 */
);
CREATE_TABLE(mld_stdmelding,0)
(
mld_stdmelding_key
@@ -530,6 +590,14 @@ CREATE_TABLE(mld_stdmelding,0)
NUMBER(1)
DEFAULT 0
NOT NULL,
mld_stdmelding_taggable // mld_melding_tag (mijlpaal) voor indirecte einddatum 0=geen, 1=intern zichtbaar, +2=3=extern zichtbaar
NUMBER(1)
DEFAULT 0
NOT NULL,
mld_stdmelding_objects_allowed
NUMBER(1)
DEFAULT(2)
NOT NULL,
CONSTRAINT mld_u_mld_stdmelding UNIQUE(mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_verwijder)
);
@@ -543,6 +611,11 @@ ALTER TABLE mld_stdmelding MODIFY mld_stdmelding_t_uitvoertijd NOT_NULL(mld_stdm
ALTER TABLE mld_stdmelding MODIFY mld_stdmelding_t_uitvtijd_pr1 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmelding MODIFY mld_stdmelding_t_uitvtijd_pr2 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE mld_stdmelding MODIFY mld_stdmelding_t_uitvtijd_pr4 DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
ALTER TABLE fac_email_setting ADD
(
mld_stdmelding_key
NUMBER(10) REFERENCES mld_stdmelding(mld_stdmelding_key) ON DELETE CASCADE
);
ALTER TABLE ins_srtdeel ADD
(
mld_stdmelding_key
@@ -791,11 +864,11 @@ CREATE_TABLE(mld_discipline_discipline, 0) -- Kruistabel
(
mld_discipline_discipline_key
NUMBER (10) PRIMARY KEY NOT NULL,
mld_discipline_key1
mld_discipline_key1 -- Vakgroep
NUMBER(10)
CONSTRAINT mld_k_mld_disc_disc_key1
REFERENCES ins_tab_discipline(ins_discipline_key) NOT NULL,
mld_discipline_key2
mld_discipline_key2 -- Behandelteam
NUMBER(10)
CONSTRAINT mld_r_mld_disc_disc_key2
REFERENCES ins_tab_discipline(ins_discipline_key) NOT NULL
@@ -977,13 +1050,11 @@ CREATE_TABLE(mld_melding,0)
DATE
NOT_NULL(mld_melding_datum, mld_c_mld_melding_datum),
mld_melding_onderwerp /* optionele korte omschrijving */
VARCHAR2(80),
VARCHAR2(200),
mld_melding_onderwerp_ai /* AI generated onderwerp */
VARCHAR2(80),
VARCHAR2(200),
mld_melding_omschrijving
CLOB,
mld_melding_omschrijving_old -- deprecated
VARCHAR2(4000),
mld_melding_opmerking
VARCHAR2(4000),
mld_melding_behandelaar_key
@@ -1024,6 +1095,9 @@ CREATE_TABLE(mld_melding,0)
DATE,
mld_melding_acceptdatum_std -- sla freeze acceptatie
DATE,
mld_melding_tag_key
NUMBER(10)
CONSTRAINT mld_r_mld_melding_tag REFERENCES mld_melding_tag(mld_melding_tag_key),
mld_melding_geprint
NUMBER(1)
CONSTRAINT mld_c_mld_melding_geprint CHECK(mld_melding_geprint IS NULL
@@ -1139,6 +1213,10 @@ COMMENT ON COLUMN mld_workflowrule.mld_workflowrule_result IS '0 is failure/reje
COMMENT ON COLUMN mld_melding.mld_workflowstep_key IS 'references the workflow step that this melding corresponds to';
COMMENT ON COLUMN mld_melding.mld_melding_start_key IS 'references the initiating mld_melding if this is a workflow step';
ALTER TABLE fac_nieuws ADD
mld_melding_key
NUMBER(10) CONSTRAINT mld_r_mld_melding_key8 REFERENCES mld_melding(mld_melding_key) ON DELETE SET NULL;
CREATE_TABLE(mld_opdr,0)
(
@@ -1224,7 +1302,7 @@ CREATE_TABLE(mld_opdr,0)
NUMBER(1)
CONSTRAINT mld_c_mld_opdr_teverz CHECK(mld_opdr_teverzenden IS NULL
OR mld_opdr_teverzenden = 1
OR mld_opdr_teverzenden = 2), /* NULL=niet verzenden, 1=verzende bij status 4 en 5, 2=altijd verzenden */
OR mld_opdr_teverzenden = 2), /* NULL=niet verzenden, 1=verzenden bij status 4 en 5, 2=altijd verzenden */
mld_opdr_teverzenden_datum
DATE
DEFAULT NULLDATUM,
@@ -1304,8 +1382,11 @@ CREATE_TABLE(mld_vrije_dagen, 0)
CONSTRAINT mld_k_mld_vrije_dagen_key PRIMARY KEY,
mld_vrije_dagen_datum
DATE
NOT_NULL(mld_vrije_dagen_datum, mld_c_mld_vrije_dagen_datum)
CONSTRAINT mld_u_mld_vrije_dagen_datum UNIQUE
NOT_NULL(mld_vrije_dagen_datum, mld_c_mld_vrije_dagen_datum),
mld_vrije_dagen_id VARCHAR2(50)
DEFAULT ('Default') NOT NULL,
CONSTRAINT mld_u_mld_vrije_dagen_datum UNIQUE(mld_vrije_dagen_datum, mld_vrije_dagen_id)
);
CREATE_TABLE(mld_melding_object, 0)
@@ -1397,7 +1478,7 @@ CREATE_TABLE(mld_kenmerk, 0)
VARCHAR2(60)
, mld_kenmerk_verplicht
NUMBER(1)
, mld_kenmerk_groep
, mld_kenmerk_groep /* voor groepsverplichting als mld_kenmerk_verplicht=2 */
NUMBER(1)
DEFAULT 0 NOT NULL
, mld_kenmerk_toonbaar
@@ -1408,6 +1489,10 @@ CREATE_TABLE(mld_kenmerk, 0)
, mld_kenmerk_volgnummer
NUMBER(3)
NOT NULL
, mld_kenmerk_rolcode /* voor welke rol(len) is dit kenmerk */
NUMBER(4)
DEFAULT 7 /* default alles */
NOT NULL
, mld_kenmerk_uniek
NUMBER(1)
, mld_kenmerk_regexp
@@ -1534,22 +1619,22 @@ CREATE TABLE mld_kenmerkblokmelding
* Voor CNT moet srtdiscipline leeg kunnen zijn. Ik wil er dus naartoe dat de specifiekste
* geldt en de globalere dan dummy is (dont care)
*/
CREATE_TABLE(mld_typeopdr_srtdiscipline, 0)
(
mld_typeopdr_srtdisc_key
NUMBER(10)
PRIMARY KEY,
mld_typeopdr_key
NUMBER(10)
NOT_NULL(mld_typeopdr_key, mld_c_mld_typeopdr_key1)
CONSTRAINT mld_r_mld_typeopdr_key3 REFERENCES mld_typeopdr(mld_typeopdr_key) ON DELETE CASCADE,
ins_srtdiscipline_key
NUMBER(10)
CONSTRAINT mld_r_ins_srtdiscipline_key2 REFERENCES ins_srtdiscipline(ins_srtdiscipline_key) ON DELETE CASCADE,
ins_discipline_key
NUMBER(10)
CONSTRAINT mld_r_ins_discipline_key3 REFERENCES ins_tab_discipline(ins_discipline_key) ON DELETE CASCADE
);
CREATE_TABLE(mld_typeopdr_srtdiscipline, 0)
(
mld_typeopdr_srtdisc_key
NUMBER(10)
PRIMARY KEY,
mld_typeopdr_key
NUMBER(10)
NOT_NULL(mld_typeopdr_key, mld_c_mld_typeopdr_key1)
CONSTRAINT mld_r_mld_typeopdr_key3 REFERENCES mld_typeopdr(mld_typeopdr_key) ON DELETE CASCADE,
ins_srtdiscipline_key
NUMBER(10)
CONSTRAINT mld_r_ins_srtdiscipline_key2 REFERENCES ins_srtdiscipline(ins_srtdiscipline_key) ON DELETE CASCADE,
ins_discipline_key
NUMBER(10)
CONSTRAINT mld_r_ins_discipline_key3 REFERENCES ins_tab_discipline(ins_discipline_key) ON DELETE CASCADE
);
CREATE_TABLE(mld_deelwerk, 0)
(

View File

@@ -11,6 +11,14 @@ BEGIN
END;
/
CREATE_TRIGGER(mld_t_mld_melding_tag_B_I)
BEFORE INSERT ON mld_melding_tag
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_melding_tag_key, mld_s_mld_melding_tag_key);
END;
/
AUDIT_BEGIN(mld_disc_params)
AUDIT_VALUE(mld_disc_params, mld_behandelgroep_key)
AUDIT_VALUE(mld_disc_params, mld_disc_params_bestellimiet)
@@ -48,6 +56,14 @@ BEGIN
END;
/
CREATE_TRIGGER(mld_t_mld_vervolg_beperking_B_I)
BEFORE INSERT ON mld_vervolg_beperking
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_vervolg_beperking_key,mld_s_mld_vervolg_beperking_key);
END;
/
CREATE_TRIGGER(mld_t_mld_oorzaak_B_IU)
BEFORE INSERT OR UPDATE ON mld_oorzaak
FOR EACH ROW
@@ -147,6 +163,7 @@ FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_typeopdr_key,mld_s_mld_stdmelding_key);
UPDATE_UPPER(mld_typeopdr_omschrijving,mld_typeopdr_upper,mld_typeopdr);
UPDATE_UPPER(mld_typeopdr_code,mld_typeopdr_code,mld_typeopdr);
END;
/
@@ -170,6 +187,11 @@ CREATE_TRIGGER(mld_t_mld_melding_B_IU)
BEFORE INSERT OR UPDATE ON mld_melding
FOR EACH ROW
BEGIN
IF sys_context('USERENV', 'ACTION') = 'ANONYMIZE' OR
sys_context('USERENV', 'ACTION') = 'DBUPGRADE' THEN
RETURN;
END IF;
-- Laat de opdrachten van doorgestuurde meldingen in vakgroep volgen
IF (fac.getSetting('mld_opdr_discipline_mode') = 1 AND
:old.mld_stdmelding_key <> :new.mld_stdmelding_key AND
@@ -326,7 +348,7 @@ BEGIN
IF (:new.mld_melding_satisfaction IS NOT NULL
AND (:old.mld_melding_satisfaction IS NULL OR :old.mld_melding_satisfaction <> :new.mld_melding_satisfaction))
THEN
fac.trackaction('MLDLIK', :old.mld_melding_key, NULL , SYSDATE, REPLACE(lcl.l('lcl_faclike_changed'), '{0}', :new.mld_melding_satisfaction));
fac.trackaction('#MLDLIK', :old.mld_melding_key, NULL , SYSDATE, REPLACE(lcl.l('lcl_faclike_changed'), '{0}', :new.mld_melding_satisfaction));
END IF;
END;
/
@@ -390,12 +412,63 @@ CREATE_TRIGGER(mld_t_mld_opdr_B_IU)
BEFORE INSERT OR UPDATE ON mld_opdr
FOR EACH ROW
BEGIN
IF sys_context('USERENV', 'ACTION') = 'ANONYMIZE' OR
sys_context('USERENV', 'ACTION') = 'DBUPGRADE' THEN
RETURN;
END IF;
CHECK_REFERENCE_UITVOERENDE (mld_uitvoerende_keys, 'mld_m37');
-- gooi fiatverzoeknotificaties weg als gefiatteerd of afgewezen-> opnemen in bovenste deel
IF :OLD.mld_statusopdr_key = 3 AND :new.mld_statusopdr_key IN (4, 2)
THEN
fac.clrnotifications ('MLDAP1', :new.mld_opdr_key);
END IF;
// Nog tijdelijk backwards compatible met cust-code die mld_opdr_teverzenden op 2 zet
IF :OLD.mld_opdr_teverzenden = 2 AND :OLD.mld_opdr_verzonden IS NULL
THEN
NULL; -- stond hij al in de queue
ELSIF :NEW.mld_opdr_teverzenden = 2 AND :NEW.mld_opdr_verzonden IS NULL
THEN -- Zou hij vroeger in de fac_v_orderqueue herverschijnen
-- ORDSND tracking/notificatie
--mld.notifyopdrbedrijven (:new.mld_opdr_key, ptrackingkey => NULL); geeft trigger mutating
FOR bedrijfrec
IN (SELECT b.prs_bedrijf_key,
COALESCE (l1.alg_locatie_key, l2.alg_locatie_key) alg_locatie_key,
COALESCE (l1.alg_locatie_email, l2.alg_locatie_email) alg_locatie_email,
:NEW.mld_melding_key || '/' || :NEW.mld_opdr_bedrijfopdr_volgnr reference,
d.prs_bedrijf_key persoon_bedrijf_key, -- van de melder, niet de uitvoerende
fac_srtnotificatie_key
FROM mld_melding m,
mld_adres ma,
alg_locatie l1,
alg_locatie l2,
prs_perslid p,
prs_v_afdeling d,
prs_bedrijf b,
fac_srtnotificatie fsn
WHERE b.prs_bedrijf_key = :NEW.mld_uitvoerende_keys
AND :NEW.mld_melding_key = m.mld_melding_key
AND m.mld_adres_key = ma.mld_adres_key(+)
AND ma.alg_locatie_key = l1.alg_locatie_key(+)
AND m.mld_alg_locatie_key = l2.alg_locatie_key(+)
AND d.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = m.prs_perslid_key
AND fac_srtnotificatie_code = 'ORDSND') -- hardcoded ORDSND, het gaat uiteindelijk vooral om de XMLnode 'opdracht' in putorders
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => 'O',
prefkey => :NEW.mld_opdr_key,
ptrackingkey => NULL,
psrtnoti_key => bedrijfrec.fac_srtnotificatie_key,
preference => bedrijfrec.reference,
ptypeopdr_key => :NEW.mld_typeopdr_key,
plocatie_key => bedrijfrec.alg_locatie_key,
pdiscipline_key => :NEW.mld_opdr_discipline_key,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
psender => bedrijfrec.alg_locatie_email);
END LOOP;
END IF;
END;
/
@@ -414,7 +487,7 @@ FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_vrije_dagen_key, mld_s_mld_vrije_dagen_key);
/* Haal het tijdgedeelte van de ingevoerde datum af. */
:new.mld_vrije_dagen_datum := TRUNC_DATE(:new.mld_vrije_dagen_datum);
:new.mld_vrije_dagen_datum := TRUNC(:new.mld_vrije_dagen_datum);
END;
/
@@ -980,6 +1053,25 @@ BEGIN
END;
/
CREATE_TRIGGER(mld_t_ins_discipline_b_u)
BEFORE UPDATE ON ins_tab_discipline
FOR EACH ROW
BEGIN
UPDATE mld_typeopdr_srtdiscipline
SET mld_typeopdr_srtdiscipline.ins_srtdiscipline_key = :new.ins_srtdiscipline_key
WHERE mld_typeopdr_srtdiscipline.ins_discipline_key = :new.ins_discipline_key
AND :new.ins_discipline_module = 'MLD';
END;
/
CREATE_TRIGGER(mld_t_mld_discipline_discipline_B_I)
BEFORE INSERT ON mld_discipline_discipline
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(mld_discipline_discipline_key, mld_s_mld_disc_disc_key);
END;
/
REGISTERRUN('$Id$')
#endif // MLD

View File

@@ -4,7 +4,7 @@
*/
/* uitvoertijd, duur en eenheid in uren (U) of dagen (D) */
CREATE_TYPE (MLD_T_UITVOERTIJD)
CREATE TYPE MLD_T_UITVOERTIJD
AS
OBJECT (tijdsduur NUMBER(12,5), eenheid VARCHAR2(1));
/

View File

@@ -850,7 +850,11 @@ CREATE_VIEW(mld_v_udr_melding, 1)
accept_sla_optijd,
uitvoering_sla_optijd,
afspraak_sla_optijd,
selfservice
acceptatietijd_werkdgn,
acceptatietijd_werkuren,
selfservice,
melding_tag,
melding_tag_datum
)
AS
SELECT mld_melding_key,
@@ -1008,7 +1012,13 @@ AS
lcl.l ('lcl_no')
END
afspraak_sla_optijd,
DECODE(invoerder, melder, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) selfservice
DECODE (x.t_acceptatietijd.eenheid, 'D', x.t_acceptatietijd.tijdsduur, NULL)
acceptatietijd_werkdgn,
DECODE (x.t_acceptatietijd.eenheid, 'U', x.t_acceptatietijd.tijdsduur, NULL)
acceptatietijd_werkuren,
DECODE(invoerder, melder, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) selfservice,
mld_melding_tag_naam,
mld_melding_tag_datum_tot
FROM (SELECT m.mld_melding_key,
m.mld_melding_start_key,
m.mld_melding_externnr,
@@ -1158,6 +1168,7 @@ AS
mld.getmeldingstatusdate (m.mld_melding_key, 1))
accepted,
mld.getactualuitvoer (m.mld_melding_key) t_doorlooptijd,
mld.getactualaccept(m.mld_melding_key) t_acceptatietijd,
m.mld_melding_onderwerp onderwerp,
m.mld_melding_omschrijving omschrijving,
m.mld_melding_opmerking opmerking,
@@ -1165,7 +1176,9 @@ AS
m.mld_melding_satisfaction,
m.mld_melding_satisfaction_op,
m.mld_melding_flag,
mld_melding_actiecode
m.mld_melding_actiecode,
mmt.mld_melding_tag_naam,
mmt.mld_melding_tag_datum_tot
FROM mld_melding m,
mld_stdmelding s,
alg_locatie l,
@@ -1175,6 +1188,7 @@ AS
mld_discipline md,
mld_disc_params mdp,
mld_behandelgroep mbg,
mld_melding_tag mmt,
ins_srtdiscipline sd,
mld_stdmeldinggroep smg,
(SELECT mx.mld_melding_key
@@ -1206,6 +1220,7 @@ AS
AND mdp.mld_behandelgroep_key = mbg.mld_behandelgroep_key(+)
AND l.alg_district_key = d.alg_district_key(+)
AND d.alg_regio_key = r.alg_regio_key(+)
AND m.mld_melding_tag_key = mmt.mld_melding_tag_key(+)
AND m.mld_melding_key = mab.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
AND m.fac_activiteit_key IS NULL
@@ -1642,7 +1657,7 @@ AS
mld_srtkenmerk_omschrijving)
kenmerk,
CASE
WHEN skm.mld_srtkenmerk_kenmerktype = 'R' OR skm.mld_srtkenmerk_kenmerktype = 'S'
WHEN skm.mld_srtkenmerk_kenmerktype = 'R' OR skm.mld_srtkenmerk_kenmerktype = 'r' OR skm.mld_srtkenmerk_kenmerktype = 'S'
THEN
flx.getdomeinwaarde (skm.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde)
WHEN skm.mld_srtkenmerk_kenmerktype = 'C' OR skm.mld_srtkenmerk_kenmerktype = 'F'
@@ -1667,7 +1682,7 @@ AS
END
waarde_d,
CASE
WHEN skm.mld_srtkenmerk_kenmerktype IN ('R', 'S')
WHEN skm.mld_srtkenmerk_kenmerktype IN ('R', 'r', 'S')
THEN
flx.getdomeinwaarde (skm.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde)
ELSE
@@ -1694,7 +1709,7 @@ SELECT o.*,
mld_srtkenmerk_omschrijving)
kenmerk,
CASE
WHEN skm.mld_srtkenmerk_kenmerktype = 'R' OR skm.mld_srtkenmerk_kenmerktype = 'S'
WHEN skm.mld_srtkenmerk_kenmerktype = 'R' OR skm.mld_srtkenmerk_kenmerktype = 'r' OR skm.mld_srtkenmerk_kenmerktype = 'S'
THEN
flx.getdomeinwaarde (skm.fac_kenmerkdomein_key, ko.mld_kenmerkopdr_waarde)
WHEN skm.mld_srtkenmerk_kenmerktype = 'C' OR skm.mld_srtkenmerk_kenmerktype = 'F'
@@ -1719,7 +1734,7 @@ SELECT o.*,
END
waarde_d,
CASE
WHEN skm.mld_srtkenmerk_kenmerktype IN ('R', 'S')
WHEN skm.mld_srtkenmerk_kenmerktype IN ('R', 'r', 'S')
THEN
flx.getdomeinwaarde (skm.fac_kenmerkdomein_key, ko.mld_kenmerkopdr_waarde)
ELSE
@@ -1809,6 +1824,87 @@ SELECT mss.mld_stdmelding_srtinst_key
OR mss.ins_srtinstallatie_niveau = 'D' AND mss.ins_srtinstallatie_key = isg.ins_discipline_key
);
// views voor het bieden van inzicht in behandeling door behandelteams van een melding
// de relevante gebeurtenisen bij elkaar
CREATE_VIEW(mld_v_behandeltracking, 1)
AS
SELECT ft.fac_tracking_refkey
, ft.fac_tracking_key
, ft.fac_tracking_datum
, ft.fac_srtnotificatie_key
, fsn.fac_srtnotificatie_code
, ft.fac_tracking_oms
, ft.fac_tracking_subject_refkey
, DECODE (ins_discipline_key, NULL, NULL, md.ins_discipline_omschrijving) behandelteam
, md.ins_discipline_key
FROM fac_tracking ft, fac_srtnotificatie fsn, mld_discipline md
WHERE ft.fac_srtnotificatie_key = fsn.fac_srtnotificatie_key
AND fsn.fac_srtnotificatie_code IN ('MLDNEW'
, 'MLDACP'
, 'MLDBHG'
, 'MLDBWD'
, 'MLDDOO'
, 'MLDAFM'
, 'MLDREJ')
AND ft.fac_tracking_subject_refkey = md.ins_discipline_key(+);
// de interpretatie ervan.
CREATE_VIEW(mld_v_behandelverloop, 1)
AS
SELECT mld_melding_key
, datum
, event
, eventkey
, eventtext
, behandelteam -- in de native taal..
, LEAD (datum, 1) OVER (PARTITION BY mld_melding_key ORDER BY datum, eventkey) AS datumtot -- evt. handig voor kalenderrapportage
, -ROUND ((datum - LEAD (datum, 1) OVER (PARTITION BY mld_melding_key ORDER BY datum, eventkey)) * 24 * 60, 0) AS minuten
, DECODE ((MAX (datum) OVER (PARTITION BY mld_melding_key) - MIN (datum) OVER (PARTITION BY mld_melding_key))
, 0 -- Niet delen door 0
, 100 / COUNT (datum) OVER (PARTITION BY mld_melding_key) -- Als de eerste fac_tracking_datum gelijk is aan de laatste fac_tracking_datum, verdeel het percentage dan gelijk
, -ROUND (
( (datum - LEAD (datum, 1) OVER (PARTITION BY mld_melding_key ORDER BY datum, eventkey))
/ (MAX (datum) OVER (PARTITION BY mld_melding_key) - MIN (datum) OVER (PARTITION BY mld_melding_key)))
* 100
, 1)) AS percentage
FROM (SELECT fac_tracking_refkey mld_melding_key
, GREATEST (fac_tracking_datum, m.mld_melding_datum) datum
, fac_srtnotificatie_code event
, fac_tracking_key eventkey
, fac_tracking_oms eventtext
, NULL behandelteam
FROM mld_v_behandeltracking, mld_melding m
WHERE fac_tracking_refkey = m.mld_melding_key AND fac_srtnotificatie_code = 'MLDNEW'
UNION
SELECT fac_tracking_refkey
, fac_tracking_datum
, fac_srtnotificatie_code
, fac_tracking_key
, fac_tracking_oms
, NULL
FROM mld_v_behandeltracking
WHERE fac_srtnotificatie_code NOT IN ('MLDNEW', 'MLDBHG') -- die behandelen we hier apart
UNION
SELECT fac_tracking_refkey
, fac_tracking_datum
, fac_srtnotificatie_code
, fac_tracking_key
, fac_tracking_oms
, behandelteam -- kan historisch NULL zijn
FROM mld_v_behandeltracking
WHERE fac_srtnotificatie_code = 'MLDBHG'
UNION
SELECT fac_tracking_refkey-- aanvullen tot vandaag als deze nog loopt
, SYSDATE
, 'NOW'
, NULL
, NULL
, NULL
FROM mld_v_behandeltracking s
WHERE NOT EXISTS
(SELECT ''
FROM mld_v_behandeltracking x
WHERE x.fac_tracking_refkey = s.fac_tracking_refkey AND x.fac_srtnotificatie_code IN ('MLDAFM', 'MLDREJ')));
REGISTERRUN('$Id$')
#endif // MLD

View File

@@ -9,7 +9,7 @@
CREATE_TABLE(prj_scenario, 0)
(
prj_scenario_key
NUMBER(10) _IDENTITY(10000000,1)
NUMBER(10)
CONSTRAINT prj_k_prj_scenario_key PRIMARY KEY,
prj_scenario_omschrijving
VARCHAR2(30),
@@ -42,7 +42,7 @@ CREATE_TABLE(prj_scenario, 0)
CREATE_TABLE(prj_ruimte, 0)
(
prj_ruimte_key
NUMBER(10) _IDENTITY(10000000,1)
NUMBER(10)
CONSTRAINT prj_k_prj_ruimte_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)
@@ -246,7 +246,7 @@ CREATE_TABLE(prj_deel, 0)
CREATE_TABLE(prj_selectie, 0)
(
prj_selectie_key
NUMBER(10) _IDENTITY(10000000,1)
NUMBER(10)
CONSTRAINT prj_k_prj_selectie_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)
@@ -270,7 +270,7 @@ CREATE_TABLE(prj_selectie, 0)
CREATE_TABLE(prj_scenario_note, 0)
(
prj_scenario_note_key
NUMBER(10) _IDENTITY(10000000,1)
NUMBER(10)
CONSTRAINT prj_k_prj_scenario_reamrk_key PRIMARY KEY,
prj_scenario_key
NUMBER(10)

View File

@@ -10,7 +10,7 @@ CREATE INDEX prs_i_prs_afdeling2 ON prs_afdeling(prs_kostenplaats_key);
CREATE INDEX prs_i_prs_afdeling3 ON prs_afdeling(prs_afdeling_externid);
CREATE INDEX prs_i_prs_bedrijfadres1 ON prs_bedrijfadres(prs_bedrijf_key);
CREATE UNIQUE INDEX prs_i_prs_bedrijfadres2 ON prs_bedrijfadres(prs_bedrijf_key, prs_bedrijfadres_type, mld_typeopdr_key, alg_locatie_key, alg_district_key, prs_bedrijf_key2, prs_bedrijfadres_startdatum);
CREATE UNIQUE INDEX prs_i_prs_bedrijfadres2 ON prs_bedrijfadres(prs_bedrijf_key, prs_bedrijfadres_type, mld_typeopdr_key, ins_discipline_key, alg_locatie_key, alg_district_key, prs_bedrijf_key2, prs_bedrijfadres_startdatum);
CREATE INDEX prs_i_prs_perslid1 ON prs_perslid(prs_srtperslid_key);
CREATE INDEX prs_i_prs_perslid2 ON prs_perslid(prs_afdeling_key);
@@ -20,6 +20,7 @@ CREATE INDEX prs_i_prs_perslid6 ON prs_perslid(prs_perslid_nr);
CREATE UNIQUE INDEX prs_i_prs_perslid7 ON prs_perslid(prs_perslid_apikey);
CREATE INDEX prs_i_prs_perslid8 ON prs_perslid(prs_perslid_externid);
CREATE UNIQUE INDEX prs_i_prs_bedrijfbedrijf1 ON prs_bedrijf_bedrijf(prs_bedrijf_key1, prs_bedrijf_key2);
CREATE UNIQUE INDEX prs_i_prs_bedrijfadres_srtnoti1 ON prs_bedrijfadres_srtnoti(prs_bedrijfadres_key, fac_srtnotificatie_key);
CREATE INDEX prs_i_prscontactpersoon1 ON prs_contactpersoon(prs_bedrijf_key);
CREATE INDEX prs_i_prscontactpersoon2 ON prs_contactpersoon(prs_perslid_key);

View File

@@ -95,9 +95,6 @@ AS
PROCEDURE setpassword(pperslidkey IN NUMBER, pwachtwoord IN VARCHAR2);
FUNCTION testpassword(pperslidkey IN NUMBER, pwachtwoord IN VARCHAR2)
RETURN NUMBER;
PROCEDURE upsertkenmerk (p_kenmerk_key IN NUMBER, p_prs_key IN NUMBER, p_waarde IN VARCHAR2);
PROCEDURE movetoruimte (p_prs_key IN NUMBER, p_ruimte_key IN NUMBER, p_alg_type IN VARCHAR2, p_virtual IN NUMBER DEFAULT 0);
@@ -108,8 +105,11 @@ AS
PROCEDURE delete_perslid (p_import_key IN NUMBER, p_perslid_key IN NUMBER);
PROCEDURE set_afdeling_verwijder (p_afdeling_key IN NUMBER);
FUNCTION combinatievalidatie (p_kp_key IN NUMBER, p_ksrt_key IN NUMBER, p_disc_key IN NUMBER) RETURN BOOLEAN;
PROCEDURE personen_inactief_schonen;
PROCEDURE personen_vervangers_schonen;
END prs;
/
@@ -322,7 +322,8 @@ AS
dbms_output.put_line('Approvemethod: '||lmethode);
dbms_output.put_line('Ondergrens: '||pondergrens);
IF lmethode = 3 THEN -- ook profiel budgethouder controleren
IF lmethode = 3 AND lkpverantwkey > 0
THEN -- ook profiel budgethouder controleren
lkpverantwlimiet := prs.getprofiellimiet (lkpverantwkey, pdisckey);
dbms_output.put_line('Zijn limiet: '||lkpverantwlimiet);
IF (lkpverantwlimiet < pondergrens) -- lkpverantwkey != -1 is impliciet in die limiet
@@ -331,8 +332,8 @@ AS
END IF;
END IF;
IF (lkpverantwkey = -1 OR lkpverantwkey = pexcludekey OR lexcludeisvervanger = 1)
AND (lmethode = 2 OR lmethode = 3)
-- Mode 2 en 3: Doorloop de afdeling boom indien de kostenplaats geen verantwoordelijke heeft. Voor mode 3 ook profiel budgethouder controleren.
IF lkpverantwkey = -1 AND (lmethode = 2 OR lmethode = 3)
-- Doorloop de boom naar boven, met allerlei aannames.
THEN
dbms_output.put_line('We gaan de boom in');
@@ -550,6 +551,8 @@ AS
RETURN lnextfiatteur;
END;
// Let op: Als pwachtwoord IS NULL wordt het wachtwoord gewist
// Als pwachtwoord IS NOT NULL wordt een random(!!) wachtwoord ingesteld zodat de gebruik zelf 'wachtwoord vergeten' kan gaan doen
PROCEDURE setpassword(pperslidkey IN NUMBER, pwachtwoord IN VARCHAR2)
IS
BEGIN
@@ -566,37 +569,12 @@ AS
SET prs_perslid_salt = DBMS_RANDOM.string ('a', 32)
WHERE prs_perslid_key = pperslidkey;
UPDATE prs_perslid
SET prs_perslid_wachtwoord_hash = fac.makehash(prs_perslid_salt || pwachtwoord),
prs_perslid_wachtwoord_exp = CASE WHEN fac.getsetting ('prs_password_expiration') > 0
THEN SYSDATE + fac.getsetting ('prs_password_expiration')
ELSE NULL
END
SET prs_perslid_wachtwoord_hash = DBMS_RANDOM.string ('a', 32), -- zodat wachtwoord vergeten mogelijk wordt
prs_perslid_wachtwoord_exp = SYSDATE -- direct verlopen
WHERE prs_perslid_key = pperslidkey;
END IF;
END;
FUNCTION testpassword(pperslidkey IN NUMBER, pwachtwoord IN VARCHAR2)
RETURN NUMBER
IS
perslid_key prs_perslid.prs_perslid_key%TYPE;
BEGIN
IF pwachtwoord IS NULL
THEN
RETURN 0;
END IF;
BEGIN
SELECT prs_perslid_key
INTO perslid_key
FROM prs_perslid
WHERE fac.testhash(prs_perslid_wachtwoord_hash, prs_perslid_salt || pwachtwoord) = 1
AND prs_perslid_key = pperslidkey;
EXCEPTION
WHEN NO_DATA_FOUND
THEN RETURN 0;
END;
RETURN 1;
END;
-- Er wordt nu niet getrackt (wat eigenlijk niet zo goed is)
PROCEDURE upsertkenmerk (p_kenmerk_key IN NUMBER,
p_prs_key IN NUMBER,
@@ -986,7 +964,7 @@ AS
WHERE prs_kenmerk_upper = UPPER (kw)
AND prs_kenmerk_verwijder IS NULL
AND prs_kenmerk_niveau = 'P'
AND prs_kenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'V');
AND prs_kenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'r', 'S', 'X', 'V');
ELSE -- kenmerkwaarde is numeriek (dus key)!
SELECT prs_kenmerk_key
INTO v_kenmerk_key
@@ -994,7 +972,7 @@ AS
WHERE prs_kenmerk_key = fac.safe_to_number (kw)
AND prs_kenmerk_verwijder IS NULL
AND prs_kenmerk_niveau = 'P'
AND prs_kenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'V');
AND prs_kenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'r', 'S', 'X', 'V');
END IF;
RETURN v_kenmerk_key;
@@ -1726,10 +1704,10 @@ AS
v_prs_srtperslid_omschrijving :=
TRIM (v_prs_srtperslid_omschrijving);
IF LENGTH (v_prs_srtperslid_omschrijving) > 60
IF LENGTH (v_prs_srtperslid_omschrijving) > 100
THEN
v_prs_srtperslid_omschrijving :=
SUBSTR (v_prs_srtperslid_omschrijving, 1, 60);
SUBSTR (v_prs_srtperslid_omschrijving, 1, 100);
fac.imp_writelog (
p_import_key,
'W',
@@ -1769,9 +1747,9 @@ AS
v_errorhint := 'Ongeldige loginnaam';
v_prs_perslid_oslogin := TRIM (v_prs_perslid_oslogin);
IF LENGTH (v_prs_perslid_oslogin) > 30
IF LENGTH (v_prs_perslid_oslogin) > 256
THEN
v_prs_perslid_oslogin := SUBSTR (v_prs_perslid_oslogin, 1, 30);
v_prs_perslid_oslogin := SUBSTR (v_prs_perslid_oslogin, 1, 256);
fac.imp_writelog (
p_import_key,
'W',
@@ -2029,7 +2007,7 @@ AS
IF p_kenmerkwaarde IS NOT NULL
THEN
IF v_kenmerk_type IN ('R', 'S')
IF v_kenmerk_type IN ('R', 'r', 'S')
THEN
v_errormsg := 'Fout bij bepalen eigen tabel';
@@ -2400,10 +2378,10 @@ AS
prs_perslid_apikey = recPersLid.prs_perslid_apikey
WHERE prs_perslid_key = v_perslid_key;
IF recPersLid.prs_perslid_wachtwoord IS NOT NULL
THEN
IF recPersLid.prs_perslid_wachtwoord IS NOT NULL
THEN
prs.setpassword(v_perslid_key, recPersLid.prs_perslid_wachtwoord);
END IF;
END IF;
END IF;
-- Voor CUST-postprocessing (van de kenmerken) is het handig te onthouden:
@@ -2726,6 +2704,21 @@ AS
END;
END delete_perslid;
-- Verwijder ook alle children
-- Let wel dat de trigger van alles kan tegengaan (nog personen, objecten enz.)
PROCEDURE set_afdeling_verwijder (p_afdeling_key IN NUMBER)
AS
BEGIN
UPDATE prs_afdeling
SET prs_afdeling_verwijder = SYSDATE
WHERE prs_afdeling_verwijder IS NULL
AND prs_afdeling_key IN ( SELECT prs_afdeling_key
FROM prs_afdeling
START WITH prs_afdeling_key = p_afdeling_key
CONNECT BY PRIOR prs_afdeling_key = prs_afdeling_parentkey);
END;
FUNCTION combinatievalidatie (p_kp_key IN NUMBER, p_ksrt_key IN NUMBER, p_disc_key IN NUMBER)
RETURN BOOLEAN
AS
@@ -2878,6 +2871,23 @@ AS
COMMIT;
END;
PROCEDURE personen_vervangers_schonen
AS
v_count_del NUMBER(10);
BEGIN
v_count_del := 0;
DELETE
FROM prs_collega
WHERE prs_collega_vervaldatum < TRUNC(SYSDATE);
v_count_del := SQL%ROWCOUNT;
IF v_count_del > 0
THEN
fac.writelog ('PRS_COLLEGA_SCHONEN', 'S', 'Vervangers/#geschoond: ' || TO_CHAR (v_count_del), '');
END IF;
END;
END prs;
/

View File

@@ -16,6 +16,8 @@ CREATE SEQUENCE prs_s_prs_contactpersoon_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_contactpers_loc_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_bedrijfadres_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_bedrijfbedrijf_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_bedrijfadres_srtnoti_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_prsfaq_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_dienst_key MINVALUE 1;
CREATE SEQUENCE prs_s_prs_bedrijfdienstloc_key MINVALUE 1;

View File

@@ -60,7 +60,7 @@ CREATE_TABLE(prs_bedrijf,0)
prs_bedrijf_contact_fax
VARCHAR2(20),
prs_bedrijf_opmerking
VARCHAR2(1000),
VARCHAR2(4000),
prs_bedrijf_opmerking2
VARCHAR2(1000),
prs_bedrijf_uurloon
@@ -87,6 +87,8 @@ CREATE_TABLE(prs_bedrijf,0)
NUMBER(8,2),
prs_bedrijf_bes_kosten
NUMBER(8,2),
prs_bedrijf_mld_limiet
NUMBER(8,2),
-- fin_btwtabel_key
-- NUMBER(10)
-- CONSTRAINT prs_r_fin_btwtabel_key1 REFERENCES fin_btwtabel(fin_btwtabel_key),
@@ -110,10 +112,10 @@ CREATE_TABLE(prs_bedrijf,0)
NUMBER(1)
CONSTRAINT prs_c_prs_bedrijf_contract CHECK(prs_bedrijf_contract IS NULL
OR prs_bedrijf_contract = 1 ),
prs_bedrijf_intern /* is onderdeel van de eigen organisatie */
prs_bedrijf_intern /* NULL=extern, 1=onderdeel van de eigen organisatie, 2=pseudo(systeem)bedrijf voor bedrijfadressen */
NUMBER(1)
CONSTRAINT prs_c_prs_bedrijf_intern CHECK(prs_bedrijf_intern IS NULL
OR prs_bedrijf_intern = 1 ),
OR prs_bedrijf_intern IN (1,2)),
prs_bedrijf_huurder /* is huurder */
NUMBER(1)
CONSTRAINT prs_c_prs_bedrijf_huurder CHECK(prs_bedrijf_huurder IS NULL
@@ -129,7 +131,6 @@ CREATE_TABLE(prs_bedrijf,0)
prs_bedrijf_bes_factor /* FSN#19902, voor PRD, had bijna een flex kunnen zijn */
NUMBER(8,6)
DEFAULT 1,
CONSTRAINT prs_u_prs_bedrijf_naam_upper UNIQUE(prs_bedrijf_naam_upper, prs_bedrijf_verwijder),
prs_bedrijf_t_uitvoertijd
MLD_T_UITVOERTIJD
CONSTRAINT prs_c_prs_bedrijf_t_uitvtijd CHECK(prs_bedrijf_t_uitvoertijd.tijdsduur >= 0), /* of null */
@@ -141,7 +142,8 @@ CREATE_TABLE(prs_bedrijf,0)
prs_bedrijf_y
NUMBER(16,6),
prs_bedrijf_url
VARCHAR2(512)
VARCHAR2(512),
CONSTRAINT prs_u_prs_bedrijf_naam_upper UNIQUE(prs_bedrijf_naam_upper, prs_bedrijf_intern, prs_bedrijf_verwijder)
);
ALTER TABLE prs_bedrijf MODIFY prs_bedrijf_t_uitvoertijd DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
@@ -226,11 +228,16 @@ CREATE_TABLE(prs_bedrijf_bedrijf,0)
* Bij Opdrachten kan er per opdrachttype een ander adres zijn, het record met mld_typeopdr_key NULL
* is de fallback voor de niet benoemde opdrachttypes.
* prs_bedrijf_key2 is optioneel het bedrijf van de opdrachtGEVER, in (pseudo-)multicompany omgevingen
* Type E is voor Mareon (ERP), en is vooralsnog alleen voor interne bedrijven (opdrachtgevers)
*/
CREATE_TABLE(prs_bedrijfadres, 0) (
prs_bedrijfadres_key
NUMBER(10)
CONSTRAINT prs_k_prs_bedrijfadres_key PRIMARY KEY,
prs_bedrijfadres_template
VARCHAR(128)
DEFAULT 'generic'
NOT NULL,
prs_bedrijf_key -- opdrachtnemer
NUMBER(10)
CONSTRAINT prs_r_prs_bedrijf_key6 REFERENCES prs_bedrijf(prs_bedrijf_key) ON DELETE CASCADE,
@@ -243,9 +250,13 @@ CREATE_TABLE(prs_bedrijfadres, 0) (
alg_locatie_key -- optioneel specifiek voor deze locatie
NUMBER(10)
CONSTRAINT prs_r_alg_locatie_key REFERENCES alg_locatie(alg_locatie_key) ON DELETE CASCADE,
prs_bedrijfadres_type /* O=Order, B=Bestelling, V=Voorraadinfo, C=Contract, N=Notificatie, I=IOT */
VARCHAR2(1)
CONSTRAINT prs_c_prs_bedrijfadrestype CHECK (prs_bedrijfadres_type IN ('O','B','C','V','N','I','R')),
ins_discipline_key -- optioneel specifiek voor deze discipline
NUMBER(10)
CONSTRAINT ins_r_ins_discipline_key REFERENCES ins_tab_discipline(ins_discipline_key) ON DELETE CASCADE,
prs_bedrijfadres_omschrijving /* voor identificatie, uitleg */
VARCHAR2(100),
prs_bedrijfadres_type /* O=Order, B=Bestelling, V=Voorraadinfo, C=Contract, N=Notificatie, I=IOT, R=Catering, E=ERP (Mareon) */
VARCHAR2(3), /* OG=Order generiek, BOF BestelOrderGeneriek enz. */
-- In MLD_TAB.SRC:
-- mld_typeopdr_key
-- NUMBER(10) CONSTRAINT prs_r_mld_typeopdr_key REFERENCES mld_typeopdr(mld_typeopdr_key) ON DELETE CASCADE,
@@ -278,7 +289,7 @@ CREATE_TABLE(prs_bedrijfadres, 0) (
prs_bedrijfadres_ext
VARCHAR2(10),
prs_bedrijfadres_username
VARCHAR2(32),
VARCHAR2(128),
prs_bedrijfadres_password
VARCHAR2(320),
prs_bedrijfadres_privkey
@@ -320,6 +331,27 @@ CREATE_TABLE(prs_bedrijfadres, 0) (
NOT NULL
);
CREATE_TABLE(prs_bedrijfadres_srtnoti, 0)
(
prs_bedrijfadres_srtnoti_key
NUMBER(10)
PRIMARY KEY,
prs_bedrijfadres_key
NUMBER(10)
CONSTRAINT prs_r_bedrijfadres_key2
REFERENCES prs_bedrijfadres(prs_bedrijfadres_key) ON DELETE CASCADE,
fac_srtnotificatie_key
NUMBER(10)
REFERENCES fac_srtnotificatie(fac_srtnotificatie_key) ON DELETE CASCADE,
prs_bedrijfadres_method -- optionele overrule method
VARCHAR2(16),
prs_bedrijfadres_url -- optionele overrule endpoint
VARCHAR2(512),
prs_bedrijfadres_srtnoti_aanmaak
DATE
DEFAULT SYSDATE NOT NULL
);
CREATE_TABLE(prs_kostenplaatsgrp,0) (
prs_kostenplaatsgrp_key
NUMBER (10) PRIMARY KEY,
@@ -503,10 +535,10 @@ CREATE_TABLE(prs_srtperslid,0)
NUMBER(10)
CONSTRAINT prs_k_prs_srtperslid_key PRIMARY KEY,
prs_srtperslid_omschrijving
VARCHAR2(60)
VARCHAR2(100)
NOT_NULL(prs_srtperslid_omschrijving, prs_c_prs_srtperslid_omschr),
prs_srtperslid_upper
VARCHAR2(60)
VARCHAR2(100)
NOT_NULL(prs_srtperslid_upper, prs_c_prs_srtperslid_upper),
prs_bedrijf_key
NUMBER(10)
@@ -620,10 +652,10 @@ CREATE_TABLE(prs_perslid,0)
prs_perslid_nr
VARCHAR2(16),
prs_perslid_oslogin
VARCHAR2(30)
VARCHAR2(256)
CONSTRAINT prs_c_prs_perslid_oslogin UNIQUE,
prs_perslid_oslogin2
VARCHAR2(30)
VARCHAR2(256)
CONSTRAINT prs_c_prs_perslid_oslogin2 UNIQUE,
prs_perslid_salt
VARCHAR2(32),
@@ -732,6 +764,10 @@ CREATE_TABLE(prs_perslid,0)
NUMBER(1)
DEFAULT 0
NOT NULL,
prs_perslid_errorhandling -- 0=200 on API1 error, 1=400 on error
NUMBER (10)
DEFAULT 1
NOT NULL,
prs_perslid_key_verantw -- fallback als elke structuur faalt (irt o.a. meldingen-instemming)
NUMBER(10)
CONSTRAINT prs_r_prs_perslid_key23 REFERENCES prs_perslid(prs_perslid_key),
@@ -1004,7 +1040,9 @@ CREATE_TABLE(prs_collega,0)
prs_collega_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(prs_collega_aanmaak, prs_c_prs_collega_aanmaak)
NOT_NULL(prs_collega_aanmaak, prs_c_prs_collega_aanmaak),
prs_collega_vervaldatum
DATE
);
CREATE_TABLE(prs_perslidkostenplaats,0)
@@ -1110,6 +1148,9 @@ CREATE_TABLE(prs_kenmerk,0)
,prs_kenmerk_volgnr
NUMBER(3)
NOT NULL
,prs_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
,prs_kenmerk_omschrijving
VARCHAR2(50)
,prs_kenmerk_upper
@@ -1224,6 +1265,8 @@ prs_contactpersoon_opmerking
VARCHAR2(255),
prs_contactpersoon_uurloon
NUMBER(6,2),
prs_contactpersoon_systeem
NUMBER(1) DEFAULT 0 NOT NULL,
prs_bedrijf_key
NUMBER(10)
CONSTRAINT prs_r_prs_bedrijf_key4 REFERENCES prs_bedrijf(prs_bedrijf_key),
@@ -1323,6 +1366,29 @@ CONSTRAINT prs_c_prs_bdlbp1 CHECK ((prs_bedrijf_key IS NOT NULL AND prs_perslid_
ALTER TABLE prs_bedrijfdienstlocatie MODIFY prs_bdl_t_uitvoertijd DEFAULT MLD_T_UITVOERTIJD(NULL, NULL);
/*
* Om een kennisbankitem afhankelijk te kunnen maken van een afdeling/bedrijf
* afdeling is optioneel. Toepassing is melder-afhankelijk maken van faqs
* maar mogelijk is dit ooit ook nog wel anders bruikbaar (bv voor leveranciers)
*/
CREATE_TABLE(prs_prsfaq, 0)
(
prs_prsfaq_key
NUMBER(10)
CONSTRAINT prs_k_prsfaq_key PRIMARY KEY,
prs_bedrijf_key
NUMBER(10)
NOT NULL
CONSTRAINT prs_r_prs_bedrijf_key9 REFERENCES prs_bedrijf(prs_bedrijf_key) ON DELETE CASCADE,
prs_afdeling_key /* optionele verbijzondering binnen dit bedrijf */
NUMBER(10)
CONSTRAINT prs_r_prs_afdeling_key2 REFERENCES prs_afdeling(prs_afdeling_key) ON DELETE CASCADE,
fac_faq_key
NUMBER(10)
NOT NULL
CONSTRAINT prs_r_fac_faq_key REFERENCES fac_faq(fac_faq_key) ON DELETE CASCADE
);
CREATE_TABLE(prs_project,0) (
prs_project_key
NUMBER(10) PRIMARY KEY,

View File

@@ -249,6 +249,43 @@ BEGIN
EXCEPTION
WHEN OTHERS THEN NULL;
END;
FOR c1
IN (SELECT mld_melding_key
FROM mld_melding
WHERE mld_melding_behandelaar_key =
:old.prs_perslid_key
AND mld_melding_status NOT IN (5, 6))
LOOP
fac.trackaction ('#MLDBEH',
c1.mld_melding_key,
NULL,
NULL,
LCL.L('lcl_mld_is_mldbeh_none'));
UPDATE mld_melding
SET mld_melding_behandelaar_key = NULL
WHERE mld_melding_key = c1.mld_melding_key;
END LOOP;
FOR c1
IN (SELECT mld_melding_key
FROM mld_melding
WHERE mld_melding_behandelaar2_key =
:old.prs_perslid_key
AND mld_melding_status NOT IN (5, 6))
LOOP
fac.trackaction ('#MLDABH',
c1.mld_melding_key,
NULL,
NULL,
LCL.L('lcl_mld_is_mldabh_none'));
UPDATE mld_melding
SET mld_melding_behandelaar2_key = NULL
WHERE mld_melding_key = c1.mld_melding_key;
END LOOP;
-- Wis alle authenticatiemogelijkheden
:new.prs_perslid_oslogin := '';
:new.prs_perslid_oslogin2 := '';
@@ -263,19 +300,12 @@ BEGIN
END IF;
END IF;
IF (NVL(:new.prs_perslid_wachtwoord_hash, 'X') <> NVL(:old.prs_perslid_wachtwoord_hash, 'X'))
OR ( fac.getsetting ('login_use_email') = 0
AND ( :new.prs_perslid_oslogin IS NULL AND :old.prs_perslid_oslogin IS NOT NULL
OR :new.prs_perslid_oslogin2 IS NULL AND :old.prs_perslid_oslogin2 IS NOT NULL
)
)
OR ( fac.getsetting ('login_use_email') = 1
AND :new.prs_perslid_email IS NULL
AND :old.prs_perslid_email IS NOT NULL
)
OR ( :new.prs_perslid_inactief IS NOT NULL
AND :old.prs_perslid_inactief IS NULL
)
IF ( (NVL(:new.prs_perslid_wachtwoord_hash, 'X') <> NVL(:old.prs_perslid_wachtwoord_hash, 'X'))
OR (:new.prs_perslid_oslogin IS NULL AND :old.prs_perslid_oslogin IS NOT NULL)
OR (:new.prs_perslid_oslogin2 IS NULL AND :old.prs_perslid_oslogin2 IS NOT NULL)
OR (:new.prs_perslid_email IS NULL AND :old.prs_perslid_email IS NOT NULL)
OR (:new.prs_perslid_inactief IS NOT NULL AND :old.prs_perslid_inactief IS NULL)
)
THEN -- Merk op: anno 5.3.2 wordt een persoon die *nu* is ingelogd hier niet
-- automatisch door uitgelogd
:new.prs_perslid_credentials_datum := SYSDATE;
@@ -293,12 +323,19 @@ FOR EACH ROW
BEGIN
/*
* Als echte persoon een login krijgt, dan ook in de default autorisatiegroep als die nog geen rechten had
* Als S(login_use_email) = 1 en de persoon krijgt een email, dan ook
*/
IF :new.prs_perslid_verwijder IS NULLDATUM AND
:new.prs_perslid_oslogin IS NOT NULL AND :old.prs_perslid_oslogin IS NULL AND
SUBSTR(:new.prs_perslid_oslogin, 1, 1) <> '_'
THEN
BEGIN
IF :new.prs_perslid_verwijder IS NULL
AND ( ( :old.prs_perslid_oslogin IS NULL
AND :new.prs_perslid_oslogin IS NOT NULL
AND SUBSTR (:new.prs_perslid_oslogin, 1, 1) <> '_')
OR ( fac.getsetting ('login_use_email') = 1
AND :old.prs_perslid_email IS NULL
AND :new.prs_perslid_email IS NOT NULL
AND ( :new.prs_perslid_oslogin IS NULL
OR SUBSTR (:new.prs_perslid_oslogin, 1, 1) <> '_')))
THEN
BEGIN
INSERT INTO fac_gebruikersgroep
(fac_groep_key, prs_perslid_key)
SELECT fac_groep_key, :NEW.prs_perslid_key
@@ -307,12 +344,12 @@ BEGIN
AND NOT EXISTS (SELECT 'x'
FROM fac_gebruikersgroep
WHERE prs_perslid_key = :NEW.prs_perslid_key);
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;
END IF;
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;
END IF;
END;
/
@@ -463,6 +500,61 @@ BEGIN
END;
/
CREATE_TRIGGER(prs_t_prs_bedrijfadres_A_I)
AFTER INSERT ON prs_bedrijfadres
FOR EACH ROW
BEGIN
CASE :new.prs_bedrijfadres_type
WHEN 'C' THEN
INSERT INTO prs_bedrijfadres_srtnoti
(prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT :new.prs_bedrijfadres_key,
fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CNTNEW';
WHEN 'O' THEN
INSERT INTO prs_bedrijfadres_srtnoti
(prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT :new.prs_bedrijfadres_key,
fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code IN ('ORDNEW', 'ORDSND');
WHEN 'B' THEN
INSERT INTO prs_bedrijfadres_srtnoti
(prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT :new.prs_bedrijfadres_key,
fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'BES2NE';
WHEN 'R' THEN
INSERT INTO prs_bedrijfadres_srtnoti
(prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT :new.prs_bedrijfadres_key,
fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'RESSND';
ELSE -- V=Voorraadinfo, N=Notificatie, E=ERP (Mareon)
NULL;
END CASE;
END;
/
CREATE_TRIGGER(prs_t_prs_bedrijfadres_srtnoti_B_I)
BEFORE INSERT ON prs_bedrijfadres_srtnoti
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_bedrijfadres_srtnoti_KEY, prs_s_prs_bedrijfadres_srtnoti_key);
END;
/
CREATE_TRIGGER(prs_t_prs_prsfaq_B_I)
BEFORE INSERT ON prs_prsfaq
FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_prsfaq_key, prs_s_prs_prsfaq_key);
END;
/
CREATE_TRIGGER(prs_t_prs_kenmerk_b_iu)
BEFORE INSERT OR UPDATE ON prs_kenmerk
FOR EACH ROW
@@ -479,7 +571,7 @@ BEGIN
IF :new.prs_kenmerk_kenmerktype IN ('C', 'N') AND :new.prs_kenmerk_lengte IS NULL
THEN
raise_application_error(-20000, 'ALG_C_ALG_KENMERK_LENGTE');
raise_application_error(-20000, 'PRS_C_PRS_KENMERK_LENGTE');
END IF;
IF :new.prs_kenmerk_kenmerktype = 'N' AND :new.prs_kenmerk_lengte > 20
THEN
@@ -492,29 +584,38 @@ BEGIN
(:old.prs_kenmerk_nmin IS NULL AND :new.prs_kenmerk_nmin IS NOT NULL)
THEN
DECLARE
Dummy CHAR;
aantal NUMBER;
BEGIN
SELECT 'X'
INTO Dummy
SELECT COUNT(*)
INTO aantal
FROM prs_kenmerkLink
WHERE FAC.SAFE_TO_NUMBER(prs_kenmerkLink_waarde) < :new.prs_kenmerk_nmin
AND prs_kenmerk_key = :old.prs_kenmerk_key;
IF :new.prs_kenmerk_niveau = 'G' THEN
raise_application_error(-20000, 'ALG_C_ALG_KENMERK_MIN_G');
ELSE
raise_application_error(-20000, 'ALG_C_ALG_KENMERK_MIN_R');
AND prs_kenmerk_key = :old.prs_kenmerk_key
AND prs_link_key IN
(SELECT prs_afdeling_key
FROM prs_afdeling
WHERE prs_afdeling_verwijder IS NULL
AND :new.prs_kenmerk_niveau = 'A'
UNION
SELECT prs_bedrijf_key
FROM prs_bedrijf
WHERE prs_bedrijf_verwijder IS NULL
AND :new.prs_kenmerk_niveau = 'B'
UNION
SELECT prs_contactpersoon_key
FROM prs_contactpersoon
WHERE prs_contactpersoon_verwijder IS NULL
AND :new.prs_kenmerk_niveau = 'C'
UNION
SELECT prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_verwijder IS NULL
AND :new.prs_kenmerk_niveau = 'P'
);
IF aantal > 0
THEN
raise_application_error(-20000, 'PRS_C_PRS_KENMERK_MIN_' || :new.prs_kenmerk_niveau);
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS THEN
BEGIN
IF :new.prs_kenmerk_niveau = 'G' THEN
raise_application_error(-20000, 'ALG_C_ALG_KENMERK_MIN_G');
ELSE
raise_application_error(-20000, 'ALG_C_ALG_KENMERK_MIN_R');
END IF;
END;
END;
END IF;
@@ -522,29 +623,38 @@ BEGIN
(:old.prs_kenmerk_nmax IS NULL AND :new.prs_kenmerk_nmax IS NOT NULL)
THEN
DECLARE
Dummy CHAR;
aantal NUMBER;
BEGIN
SELECT 'X'
INTO Dummy
SELECT COUNT(*)
INTO aantal
FROM prs_kenmerkLink
WHERE FAC.SAFE_TO_NUMBER(prs_kenmerkLink_waarde) > :new.prs_kenmerk_nmax
AND prs_kenmerk_key = :old.prs_kenmerk_key;
IF :new.prs_kenmerk_niveau = 'G' THEN
raise_application_error(-20000, 'ALG_C_ALG_KENMERK_MAX_G');
ELSE
raise_application_error(-20000, 'ALG_C_ALG_KENMERK_MAX_R');
AND prs_kenmerk_key = :old.prs_kenmerk_key
AND prs_link_key IN
(SELECT prs_afdeling_key
FROM prs_afdeling
WHERE prs_afdeling_verwijder IS NULL
AND :new.prs_kenmerk_niveau = 'A'
UNION
SELECT prs_bedrijf_key
FROM prs_bedrijf
WHERE prs_bedrijf_verwijder IS NULL
AND :new.prs_kenmerk_niveau = 'B'
UNION
SELECT prs_contactpersoon_key
FROM prs_contactpersoon
WHERE prs_contactpersoon_verwijder IS NULL
AND :new.prs_kenmerk_niveau = 'C'
UNION
SELECT prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_verwijder IS NULL
AND :new.prs_kenmerk_niveau = 'P'
);
IF aantal > 0
THEN
raise_application_error(-20000, 'PRS_C_PRS_KENMERK_MAX_' || :new.prs_kenmerk_niveau);
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
WHEN TOO_MANY_ROWS THEN
BEGIN
IF :new.prs_kenmerk_niveau = 'G' THEN
raise_application_error(-20000, 'ALG_C_ALG_KENMERK_MAX_G');
ELSE
raise_application_error(-20000, 'ALG_C_ALG_KENMERK_MAX_R');
END IF;
END;
END;
END IF;
END IF;

View File

@@ -568,6 +568,8 @@ CREATE_VIEW(prs_v_afdeling, 0)
prs_afdeling_naam4,
prs_afdeling_naam5,
prs_afdeling_naam6,
prs_afdeling_naam7,
prs_afdeling_naam8,
prs_afdeling_upper,
prs_afdeling_omschrijving,
prs_kostenplaats_key,
@@ -586,6 +588,8 @@ CREATE_VIEW(prs_v_afdeling, 0)
b.prs_afdeling_naam4,
b.prs_afdeling_naam5,
b.prs_afdeling_naam6,
pb.prs_bedrijf_naam || '-' || a.prs_afdeling_omschrijving prs_afdeling_naam7,
pb.prs_bedrijf_naam || '-' || a.prs_afdeling_naam prs_afdeling_naam8,
UPPER(a.prs_afdeling_naam) prs_afdeling_upper,
a.prs_afdeling_omschrijving,
a.prs_kostenplaats_key,
@@ -595,8 +599,9 @@ CREATE_VIEW(prs_v_afdeling, 0)
b.prs_bedrijf_key,
a.prs_perslid_key_verantw,
b.niveau
FROM prs_afdeling a, prs_v_afdeling_fullnames b
WHERE a.prs_afdeling_key=b.prs_afdeling_key;
FROM prs_afdeling a, prs_v_afdeling_fullnames b, prs_bedrijf pb
WHERE a.prs_afdeling_key = b.prs_afdeling_key
AND b.prs_bedrijf_key = pb.prs_bedrijf_key;
-- NB: dit is een overrule!
DEFINIEER_VIEW_AANWEZIG(prs_v_afdeling,
@@ -634,54 +639,55 @@ CREATE_VIEW(prs_v_hoofdperslidwerkplek2, 0)
prs_werkplek_key,
aantal
)
AS
SELECT prs_perslid_key, pwp.prs_werkplek_key, 1
FROM prs_perslidwerkplek pwp, prs_werkplek wp
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_werkplek_virtueel = 0
AND NOT EXISTS
(SELECT ''
FROM prs_perslidwerkplek pwp2, prs_werkplek wp2
WHERE pwp.prs_perslid_key = pwp2.prs_perslid_key
AND pwp2.prs_werkplek_key = wp2.prs_werkplek_key
AND wp2.prs_werkplek_virtueel = 0
AND pwp.prs_werkplek_key <> pwp2.prs_werkplek_key
AND COALESCE (pwp2.prs_perslidwerkplek_volgnr, 10000 + pwp2.prs_perslidwerkplek_key) <
COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000 + pwp.prs_perslidwerkplek_key));
AS -- Kies bij gelijke volgnummers degene met de laagste prs_werkplek_key
SELECT prs_perslid_key, MIN (pwp.prs_werkplek_key), 1
FROM prs_perslidwerkplek pwp, prs_werkplek wp
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_werkplek_virtueel = 0
AND NOT EXISTS
(SELECT ''
FROM prs_perslidwerkplek pwp2, prs_werkplek wp2
WHERE pwp.prs_perslid_key = pwp2.prs_perslid_key
AND pwp2.prs_werkplek_key = wp2.prs_werkplek_key
AND wp2.prs_werkplek_virtueel = 0
AND pwp.prs_werkplek_key <> pwp2.prs_werkplek_key
AND COALESCE (pwp2.prs_perslidwerkplek_volgnr, 10000 + pwp2.prs_perslidwerkplek_key) <
COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000 + pwp.prs_perslidwerkplek_key))
GROUP BY pwp.prs_perslid_key, COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000 + pwp.prs_perslidwerkplek_key);
CREATE_VIEW(prs_v_hoofdperslidwerkplek, 0)
AS
SELECT prs_perslid_key,
MAX (pwp.prs_werkplek_key) prs_werkplek_key,
1 aantal
FROM prs_perslidwerkplek pwp, prs_werkplek wp
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_werkplek_virtueel = 0
GROUP BY prs_perslid_key
HAVING COUNT (pwp.prs_werkplek_key) = 1
UNION ALL
SELECT prs_perslid_key, pwp.prs_werkplek_key, 2
FROM prs_perslidwerkplek pwp, prs_werkplek wp
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_werkplek_virtueel = 0
AND NOT EXISTS
(SELECT ''
FROM prs_perslidwerkplek pwp2, prs_werkplek wp2
WHERE pwp.prs_perslid_key = pwp2.prs_perslid_key
AND pwp2.prs_werkplek_key = wp2.prs_werkplek_key
AND wp2.prs_werkplek_virtueel = 0
AND pwp.prs_werkplek_key <> pwp2.prs_werkplek_key
AND COALESCE (pwp2.prs_perslidwerkplek_volgnr, 10000+pwp2.prs_perslidwerkplek_key) <
COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000+pwp.prs_perslidwerkplek_key))
AND NOT EXISTS
( SELECT prs_perslid_key
FROM prs_perslidwerkplek pwp3, prs_werkplek wp3
WHERE pwp3.prs_werkplek_key = wp3.prs_werkplek_key
AND wp3.prs_werkplek_virtueel = 0
AND pwp3.prs_perslid_key = pwp.prs_perslid_key
GROUP BY prs_perslid_key
HAVING COUNT (pwp3.prs_werkplek_key) = 1);
SELECT prs_perslid_key,
MAX (pwp.prs_werkplek_key) prs_werkplek_key,
1 aantal
FROM prs_perslidwerkplek pwp, prs_werkplek wp
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_werkplek_virtueel = 0
GROUP BY prs_perslid_key
HAVING COUNT (pwp.prs_werkplek_key) = 1
UNION ALL
SELECT prs_perslid_key, MIN(pwp.prs_werkplek_key), 2
FROM prs_perslidwerkplek pwp, prs_werkplek wp
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_werkplek_virtueel = 0
AND NOT EXISTS
(SELECT ''
FROM prs_perslidwerkplek pwp2, prs_werkplek wp2
WHERE pwp.prs_perslid_key = pwp2.prs_perslid_key
AND pwp2.prs_werkplek_key = wp2.prs_werkplek_key
AND wp2.prs_werkplek_virtueel = 0
AND pwp.prs_werkplek_key <> pwp2.prs_werkplek_key
AND COALESCE (pwp2.prs_perslidwerkplek_volgnr, 10000 + pwp2.prs_perslidwerkplek_key) <
COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000 + pwp.prs_perslidwerkplek_key))
AND NOT EXISTS
( SELECT prs_perslid_key
FROM prs_perslidwerkplek pwp3, prs_werkplek wp3
WHERE pwp3.prs_werkplek_key = wp3.prs_werkplek_key
AND wp3.prs_werkplek_virtueel = 0
AND pwp3.prs_perslid_key = pwp.prs_perslid_key
GROUP BY prs_perslid_key
HAVING COUNT (pwp3.prs_werkplek_key) = 1)
GROUP BY prs_perslid_key, COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000 + pwp.prs_perslidwerkplek_key);
CREATE_VIEW(prs_v_werkplek_gegevens,0)
(
@@ -1636,6 +1642,36 @@ AS
GROUP BY wp.prs_alg_ruimte_key, r.alg_verdieping_key)
GROUP BY alg_ruimte_key, alg_verdieping_key;
/* Per persoon de [actuele] vervangers */
CREATE_VIEW(prs_v_rap_vervangers, 0)
(
prs_perslid_key,
naam,
vervangers
)
AS
SELECT c.prs_perslid_key,
(SELECT p.prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames_all p
WHERE p.prs_perslid_key = c.prs_perslid_key),
LISTAGG (
(SELECT p_alt.prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames_all p_alt
WHERE p_alt.prs_perslid_key = c.prs_perslid_key_alt)
|| DECODE (
c.prs_collega_vervaldatum,
NULL, '',
' ('
|| lcl.l ('lcl_tot')
|| ' '
|| TO_CHAR (c.prs_collega_vervaldatum, 'DD-MM-YYYY')
|| ')'),
', ')
FROM prs_collega c
WHERE c.prs_collega_vervaldatum IS NULL
OR c.prs_collega_vervaldatum > SYSDATE
GROUP BY c.prs_perslid_key;
/* ROOT VIEWS for User defined Reports (UDR) */
CREATE_VIEW(prs_v_udr_bedrijf, 0)
(

View File

@@ -42,6 +42,8 @@ CREATE OR REPLACE PACKAGE res AS
FUNCTION notifypool (pbez_bezoeker_key IN NUMBER, pcode IN VARCHAR2) RETURN NUMBER;
PROCEDURE notifybackoffice (prsvkey IN NUMBER, pcode IN VARCHAR2, ptype IN VARCHAR2 DEFAULT NULL, pkey IN NUMBER DEFAULT NULL);
PROCEDURE remove(p_rsv_ruimte_key IN NUMBER);
PROCEDURE notifyreserveringbedrijven (prsvkey NUMBER, ptrackingkey NUMBER, pnotidelay NUMBER DEFAULT NULL);
END res;
/
@@ -207,6 +209,7 @@ AS
new_ruimte_van DATE;
new_ruimte_tot DATE;
bez_parkingdiscipline_key NUMBER;
min_res_rsv_artikel_key res_rsv_artikel.res_rsv_artikel_key%TYPE;
BEGIN
SELECT *
INTO rsv_from
@@ -359,8 +362,8 @@ AS
prsv_ruimte_key_to,
ra.res_rsv_deel_prijs,
2, -- ingevoerd
TRUNC (rsv_to.res_rsv_ruimte_van) + (ra.res_rsv_deel_van - TRUNC (rsv_from.res_rsv_ruimte_van)),
TRUNC (rsv_to.res_rsv_ruimte_van) + (ra.res_rsv_deel_tot - TRUNC (rsv_from.res_rsv_ruimte_tot))
TRUNC (rsv_to.res_rsv_ruimte_van) + (ra.res_rsv_deel_van - TRUNC (rsv_from.res_rsv_ruimte_van)), -- reservering van rsv_deel kan afwijken van rsv_ruimte
TRUNC (rsv_to.res_rsv_ruimte_tot) + (ra.res_rsv_deel_tot - TRUNC (rsv_from.res_rsv_ruimte_tot))
FROM res_rsv_deel ra, res_deel rd
WHERE ra.res_rsv_ruimte_key = prsv_ruimte_key_from
AND ra.res_deel_key = rd.res_deel_key
@@ -432,63 +435,86 @@ AS
-- Artikel is al toegevoegd indien catering is aangevinkt.
-- De kenmerken van de oude en nieuwe reserveringen zijn exact hetzelfde met dezelfde kenmerk keys enz.
-- De kenmerken van de oude en nieuwe reservering in dezelfde volgorde zetten en dan de waarden overnemen.
INSERT INTO res_kenmerkartikel (res_rsv_artikel_key,
res_kenmerk_key,
res_kenmerkartikel_waarde)
SELECT newkenmerk.res_rsv_artikel_key,
newkenmerk.res_kenmerk_key,
oldkenmerk.res_kenmerkartikel_waarde
FROM (SELECT ka.res_rsv_artikel_key,
ka.res_kenmerk_key,
ka.res_kenmerkartikel_waarde,
ra.res_artikel_key,
ROW_NUMBER()
OVER(ORDER BY
rra.res_rsv_artikel_key,
k.res_kenmerk_key)
AS RN
FROM res_kenmerkartikel ka,
res_kenmerk k,
res_srtkenmerk sk,
res_rsv_ruimte rr,
res_rsv_artikel rra,
res_artikel ra
WHERE ka.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
AND (k.res_artikel_key = rra.res_artikel_key
OR k.res_discipline_key = ra.res_discipline_key)
AND ra.res_artikel_key = rra.res_artikel_key
AND ka.res_rsv_artikel_key = rra.res_rsv_artikel_key
AND rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
--AND k.res_activiteit_key IS NULL -- Niet nodig: Als res_activiteit_key gevuld is dan is res_kenmerk_niveau 'A'.
AND k.res_kenmerk_niveau IN ('C', 'D')
AND k.res_kenmerk_volgnummer < 900
AND k.res_kenmerk_verwijder IS NULL
AND ka.res_kenmerkartikel_verwijder IS NULL
AND sk.res_srtkenmerk_kenmerktype NOT IN ('F', 'M', 'E')
AND rr.res_rsv_ruimte_key = prsv_ruimte_key_from) oldkenmerk,
(SELECT rra.res_rsv_artikel_key,
k.res_kenmerk_key,
ra.res_artikel_key,
ROW_NUMBER()
OVER(ORDER BY
rra.res_rsv_artikel_key,
k.res_kenmerk_key)
AS rn
FROM res_rsv_ruimte rr,
res_rsv_artikel rra,
res_artikel ra,
res_kenmerk k
WHERE rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND (k.res_artikel_key = rra.res_artikel_key
OR k.res_discipline_key = ra.res_discipline_key)
AND ra.res_artikel_key = rra.res_artikel_key
AND rr.res_rsv_ruimte_key = prsv_ruimte_key_to) newkenmerk
WHERE oldkenmerk.rn = newkenmerk.rn
AND oldkenmerk.res_kenmerk_key = newkenmerk.res_kenmerk_key
AND oldkenmerk.res_artikel_key = newkenmerk.res_artikel_key
ORDER BY newkenmerk.res_rsv_artikel_key,
newkenmerk.res_kenmerk_key;
-- Een artikel kan vaker voorkomen met een andere waarde van zijn kenmerk.
-- In dat geval kunnen de kenmerken niet rechtstreeks gematched worden. Een "oud" res_rsv_artikel_key kan dan gematched worden aan meerdere "nieuwe" res_rsv_artikel_key's.
-- We doorlopen dan elk "oud" res_rsv_artikel_key met zijn kenmerk afzonderlijk en kiezen dan <20><>n van de vrije "nieuwe" res_rsv_artikel_key's (MIN).
-- Aan het eind zijn dan alle "oud" res_rsv_artikel_key's gebonden aan een nieuw res_rsv_artikel_key. Met een query kan het niet in <20><>n keer opgelost worden.
FOR kenmerkartikelrec
IN
(SELECT oldkenmerk.res_rsv_artikel_key,
newkenmerk.res_kenmerk_key,
oldkenmerk.res_kenmerkartikel_waarde,
oldkenmerk.res_artikel_key
FROM (SELECT ka.res_rsv_artikel_key,
ka.res_kenmerk_key,
ka.res_kenmerkartikel_waarde,
ra.res_artikel_key,
k.res_srtkenmerk_key
FROM res_kenmerkartikel ka,
res_kenmerk k,
res_srtkenmerk sk,
res_rsv_ruimte rr,
res_rsv_artikel rra,
res_artikel ra
WHERE ka.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
AND (k.res_artikel_key = rra.res_artikel_key
OR k.res_discipline_key = ra.res_discipline_key)
AND ra.res_artikel_key = rra.res_artikel_key
AND ka.res_rsv_artikel_key = rra.res_rsv_artikel_key
AND rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
--AND k.res_activiteit_key IS NULL -- Niet nodig: Als res_activiteit_key gevuld is dan is res_kenmerk_niveau 'A'.
AND k.res_kenmerk_niveau IN ('C', 'D')
AND BITAND(k.res_kenmerk_rolcode, 7) <> 4 -- Backofficekenmerken niet (100)
AND k.res_kenmerk_verwijder IS NULL
AND ka.res_kenmerkartikel_verwijder IS NULL
AND sk.res_srtkenmerk_kenmerktype NOT IN ('F', 'M', 'E')
AND rr.res_rsv_ruimte_key = prsv_ruimte_key_from) oldkenmerk,
(SELECT rra.res_rsv_artikel_key,
k.res_kenmerk_key,
ra.res_artikel_key,
k.res_srtkenmerk_key
FROM res_rsv_ruimte rr,
res_rsv_artikel rra,
res_artikel ra,
res_kenmerk k
WHERE rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND (k.res_artikel_key = rra.res_artikel_key
OR k.res_discipline_key = ra.res_discipline_key)
AND ra.res_artikel_key = rra.res_artikel_key
AND rr.res_rsv_ruimte_key = prsv_ruimte_key_to) newkenmerk
WHERE oldkenmerk.res_kenmerk_key = newkenmerk.res_kenmerk_key
AND oldkenmerk.res_srtkenmerk_key = newkenmerk.res_srtkenmerk_key
AND oldkenmerk.res_artikel_key = newkenmerk.res_artikel_key
GROUP BY oldkenmerk.res_rsv_artikel_key,
newkenmerk.res_kenmerk_key,
oldkenmerk.res_kenmerkartikel_waarde,
oldkenmerk.res_artikel_key
ORDER BY oldkenmerk.res_rsv_artikel_key,
newkenmerk.res_kenmerk_key)
LOOP
SELECT MIN(rra.res_rsv_artikel_key)
INTO min_res_rsv_artikel_key
FROM res_rsv_artikel rra,
res_rsv_ruimte rr
WHERE rra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND rr.res_rsv_ruimte_key = prsv_ruimte_key_to
AND res_artikel_key = kenmerkartikelrec.res_artikel_key
-- De res_rsv_artikel_key's die bezet zijn uitsluiten. Welke res_kenmerkartikel_waarde is ingevuld maakt niets uit.
AND NOT EXISTS
(SELECT res_kenmerkartikel_key
FROM res_kenmerkartikel
WHERE res_rsv_artikel_key = rra.res_rsv_artikel_key
AND res_kenmerk_key = kenmerkartikelrec.res_kenmerk_key);
INSERT INTO res_kenmerkartikel (res_rsv_artikel_key,
res_kenmerk_key,
res_kenmerkartikel_waarde)
VALUES (min_res_rsv_artikel_key,
kenmerkartikelrec.res_kenmerk_key,
kenmerkartikelrec.res_kenmerkartikel_waarde);
END LOOP;
END IF;
END IF;
-- 512 Bezoekers
@@ -544,7 +570,7 @@ AS
) waarde_from
WHERE k.res_activiteit_key = r.res_activiteit_key
AND k.res_kenmerk_niveau = 'A'
AND k.res_kenmerk_volgnummer < 900
AND BITAND(k.res_kenmerk_rolcode, 7) <> 4 -- Backofficekenmerken niet
AND k.res_kenmerk_verwijder IS NULL
AND s.res_srtkenmerk_verwijder IS NULL
AND k.res_srtkenmerk_key = s.res_srtkenmerk_key
@@ -1194,6 +1220,8 @@ AS
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
AND ra.res_artikel_key = a.res_artikel_key
AND sao.res_srtartikel_og_verwijder IS NULL
AND ra.res_rsv_artikel_levering BETWEEN COALESCE(sao.res_srtartikel_og_ingangsdatum, a.res_artikel_ingangsdatum, TRUNC(ra.res_rsv_artikel_levering))
AND COALESCE(sao.res_srtartikel_og_vervaldatum, a.res_artikel_vervaldatum, TRUNC(ra.res_rsv_artikel_levering)+1)
AND rg.alg_ruimte_key IS NOT NULL
AND rar.res_alg_ruimte_verwijder IS NULL -- Het kan ook een koppelruimte zijn die uit meerdere ruimten bestaat
AND ra.res_rsv_artikel_key = pres_rsv_artikel_key
@@ -1458,7 +1486,7 @@ AS
THEN
waarde := lcl.l ('lcl_check_1');
END IF;
ELSIF ck.res_srtkenmerk_kenmerktype = 'R' OR ck.res_srtkenmerk_kenmerktype = 'S'
ELSIF ck.res_srtkenmerk_kenmerktype = 'R' OR ck.res_srtkenmerk_kenmerktype = 'r' OR ck.res_srtkenmerk_kenmerktype = 'S'
-- referentie
THEN
waarde := flx.getdomeinwaarde (ck.fac_kenmerkdomein_key, TO_NUMBER (waarde));
@@ -2549,6 +2577,64 @@ AS
-- Geen tracking op res_reservering.
END;
PROCEDURE notifyreserveringbedrijven (prsvkey NUMBER,
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
FOR bedrijfrec
-- JGL: Vooralsnog geen ondersteuning van technische adressen per discipline
-- Dat wordt te ingewikkeld omdat onderstaande loop dan per discipline fac.notifybedrijf
-- gaat aanroepen waardoor je altijd een notificatie per catalogus krijgt wat je misschien helemaal niet wilt
IN (SELECT b.prs_bedrijf_key,
l.alg_locatie_key,
CASE WHEN b.prs_bedrijf_key = resbedrijf.prs_bedrijf_key THEN 'R' ELSE 'G' END bedrijfadres_type,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr reference,
d.prs_bedrijf_key persoon_bedrijf_key -- van de melder, niet de uitvoerende
FROM prs_bedrijf b,
res_rsv_ruimte rrr,
alg_locatie l,
alg_v_ruimte_gegevens_all ruimte_geg,
prs_perslid p,
prs_v_afdeling d,
( SELECT res_ruimte_opstel_key,
rr.res_ruimte_key,
MIN (alg_ruimte_key) alg_ruimte_key
FROM res_ruimte_opstelling rro, res_alg_ruimte rar, res_ruimte rr
WHERE rro.res_ruimte_key = rar.res_ruimte_key
AND rr.res_ruimte_key = rar.res_ruimte_key
AND rar.res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_opstel_key, rr.res_ruimte_key) opstelalg,
(SELECT res_rsv_ruimte_key, MAX (rrd.prs_bedrijf_key) prs_bedrijf_key -- artikelen van verschillende leveranciers is unsupported
FROM res_disc_params rrd, res_artikel ra, res_rsv_artikel rra
WHERE rrd.res_ins_discipline_key = ra.res_discipline_key
AND rra.res_artikel_key = ra.res_artikel_key
GROUP BY res_rsv_ruimte_key) resbedrijf
WHERE rrr.res_rsv_ruimte_key = prsvkey
AND resbedrijf.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key -- outer join voor 'G'enerieke notificaties zonder catering
AND rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+)
AND ruimte_geg.alg_ruimte_key = COALESCE (rrr.alg_ruimte_key, opstelalg.alg_ruimte_key)
AND ruimte_geg.alg_locatie_key = l.alg_locatie_key
AND d.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = rrr.res_rsv_ruimte_host_key
AND ( b.prs_bedrijf_key = resbedrijf.prs_bedrijf_key -- type 'R', alleen als er catering bij zit
OR EXISTS
(SELECT 1
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key
AND ba.prs_bedrijfadres_startdatum <= SYSDATE
AND ba.prs_bedrijfadres_type = 'G')))
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,
prefkey => prsvkey,
ptrackingkey => ptrackingkey,
preference => bedrijfrec.reference,
plocatie_key => bedrijfrec.alg_locatie_key,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
pnotidelay => pnotidelay);
END LOOP;
END;
END res;
/

View File

@@ -141,6 +141,8 @@ CREATE_TABLE(res_ruimte,0)
DEFAULT 0
NOT NULL
CONSTRAINT res_c_res_ruimte_cv CHECK(res_ruimte_cv IN (0,1)),
res_ruimte_limiet /* Optional overrule of Setting res_reservering_limiet (days) */
NUMBER(3),
CONSTRAINT res_u_res_ruimte_upper UNIQUE(res_ruimte_upper, res_ruimte_verwijder)
);
@@ -478,6 +480,8 @@ CREATE_TABLE(res_activiteit, 0)
CONSTRAINT res_r_res_activiteit_key2 REFERENCES res_activiteit(res_activiteit_key)
, res_activiteit_image
VARCHAR2(255)
, res_activiteit_color
VARCHAR2(60 CHAR)
, CONSTRAINT res_u_res_activiteit_upper UNIQUE(res_activiteit_upper, res_activiteit_verwijder, res_srtactiviteit_key)
);
@@ -625,6 +629,10 @@ CREATE_TABLE(res_rsv_ruimte, 0)
NUMBER(4)
DEFAULT 0
NOT_NULL(res_rsv_ruimte_extern_meeting, res_c_rsv_extern_meeting)
, res_rsv_ruimte_visibility -- 0=Private, 1=Normal
NUMBER(4)
DEFAULT 1
NOT NULL
, res_rsv_ruimte_teverzenden -- 1=nieuw 2=update
NUMBER(1)
DEFAULT 0
@@ -861,6 +869,9 @@ CREATE_TABLE(res_kenmerk, 0)
, res_kenmerk_volgnummer
NUMBER(3)
NOT NULL
, res_kenmerk_rolcode
NUMBER(4)
DEFAULT 7 NOT NULL
, res_kenmerk_default
VARCHAR2(4000)
, res_kenmerk_show_expr
@@ -952,6 +963,10 @@ CREATE_TABLE(res_srtartikel_onrgoed, 0)
, res_srtartikel_og_verwijder
DATE
DEFAULT NULLDATUM
, res_srtartikel_og_ingangsdatum
DATE
, res_srtartikel_og_vervaldatum
DATE
, CONSTRAINT res_c_alg_onrgoed_key UNIQUE(alg_onrgoed_key, alg_onrgoed_niveau, res_discipline_key, res_srtartikel_og_verwijder)
);

View File

@@ -31,6 +31,21 @@ AUDIT_VALUE(res_ruimte, res_ruimte_intprijs_dag)
AUDIT_VALUE(res_ruimte, res_ruimte_vervaldatum)
AUDIT_END()
AUDIT_BEGIN(res_artikel)
AUDIT_VALUE(res_artikel, res_discipline_key)
AUDIT_VALUE(res_artikel, res_artikel_prijs)
AUDIT_VALUE(res_artikel, res_artikel_prijs_vast)
AUDIT_VALUE(res_artikel, res_artikel_inkoopprijs)
AUDIT_VALUE(res_artikel, res_artikel_kostenpersoneel)
AUDIT_VALUE(res_artikel, res_artikel_kostenalgemeen)
AUDIT_VALUE(res_artikel, res_artikel_btw)
AUDIT_END()
AUDIT_BEGIN(res_deel)
AUDIT_VALUE(res_deel, res_discipline_key)
AUDIT_VALUE(res_deel, res_deel_prijs)
AUDIT_VALUE(res_deel, res_deel_prijs_vast)
AUDIT_END()
CREATE_TRIGGER(res_t_res_disc_params_b_iu)
BEFORE INSERT OR UPDATE ON res_disc_params
@@ -407,6 +422,11 @@ CREATE_TRIGGER(res_t_res_rsv_ruimte_B_IU)
BEFORE INSERT OR UPDATE ON res_rsv_ruimte
FOR EACH ROW
BEGIN
IF sys_context('USERENV', 'ACTION') = 'ANONYMIZE' OR
sys_context('USERENV', 'ACTION') = 'DBUPGRADE' THEN
RETURN;
END IF;
-- Niet waterdicht, meestal adequaat
IF NOT UPDATING('res_rsv_ruimte_satisfaction')
THEN
@@ -421,7 +441,7 @@ BEGIN
IF (:new.res_rsv_ruimte_satisfaction IS NOT NULL
AND (:old.res_rsv_ruimte_satisfaction IS NULL OR :old.res_rsv_ruimte_satisfaction <> :new.res_rsv_ruimte_satisfaction))
THEN
fac.trackaction('RESLIK', :old.res_rsv_ruimte_key, NULL , SYSDATE, REPLACE(lcl.l('lcl_faclike_changed'), '{0}', :new.res_rsv_ruimte_satisfaction));
fac.trackaction('#RESLIK', :old.res_rsv_ruimte_key, NULL , SYSDATE, REPLACE(lcl.l('lcl_faclike_changed'), '{0}', :new.res_rsv_ruimte_satisfaction));
END IF;
END;
/

View File

@@ -369,8 +369,12 @@ AND ins_discipline_min_level IN (1,2,3,4);
CREATE_VIEW(res_v_srtartikel_onrgoed, 0)
( alg_ruimte_key,
res_discipline_key,
alg_onrgoed_niveau) AS
SELECT ra.alg_ruimte_key, res_discipline_key, alg_onrgoed_niveau
alg_onrgoed_niveau,
alg_onrgoed_ingangsdatum,
alg_onrgoed_vervaldatum
) AS
SELECT ra.alg_ruimte_key, og.res_discipline_key, og.alg_onrgoed_niveau
, og.res_srtartikel_og_ingangsdatum, og.res_srtartikel_og_vervaldatum
FROM res_srtartikel_onrgoed og,
alg_ruimte ra,
alg_verdieping rv,
@@ -379,23 +383,110 @@ CREATE_VIEW(res_v_srtartikel_onrgoed, 0)
AND ra.alg_verdieping_key = rv.alg_verdieping_key
AND rv.alg_gebouw_key = rg.alg_gebouw_key
AND og.alg_onrgoed_niveau = 'L'
AND res_srtartikel_og_verwijder IS NULL
AND alg_ruimte_key IS NOT NULL
AND og.res_srtartikel_og_verwijder IS NULL
AND ra.alg_ruimte_key IS NOT NULL
UNION
SELECT ra.alg_ruimte_key, res_discipline_key, alg_onrgoed_niveau
SELECT ra.alg_ruimte_key, og.res_discipline_key, og.alg_onrgoed_niveau
, og.res_srtartikel_og_ingangsdatum, og.res_srtartikel_og_vervaldatum
FROM res_srtartikel_onrgoed og, alg_ruimte ra, alg_verdieping rv
WHERE og.alg_onrgoed_key = rv.alg_gebouw_key
AND ra.alg_verdieping_key = rv.alg_verdieping_key
AND og.alg_onrgoed_niveau = 'G'
AND res_srtartikel_og_verwijder IS NULL
AND alg_ruimte_key IS NOT NULL
AND og.res_srtartikel_og_verwijder IS NULL
AND ra.alg_ruimte_key IS NOT NULL
UNION
SELECT ra.alg_ruimte_key, res_discipline_key, alg_onrgoed_niveau
SELECT ra.alg_ruimte_key, og.res_discipline_key, og.alg_onrgoed_niveau
, og.res_srtartikel_og_ingangsdatum, og.res_srtartikel_og_vervaldatum
FROM res_srtartikel_onrgoed og, alg_ruimte ra
WHERE og.alg_onrgoed_key = ra.alg_ruimte_key
AND og.alg_onrgoed_niveau = 'R'
AND res_srtartikel_og_verwijder IS NULL
AND alg_ruimte_key IS NOT NULL;
AND og.res_srtartikel_og_verwijder IS NULL
AND ra.alg_ruimte_key IS NOT NULL;
CREATE_VIEW(res_v_srtartikel_onrgoed_scope, 0)
AS
WITH onrgoed AS
(SELECT alg_onroerendgoed_keys
, alg_ruimte_key
, alg_verdieping_key
, alg_gebouw_key
, alg_locatie_key
FROM alg_v_allonroerendgoed
WHERE alg_type = 'R'
)
, scope AS
(SELECT ar.alg_onroerendgoed_keys
, so.res_discipline_key
, 'R' alg_onrgoed_niveau
, ar.alg_ruimte_key AS alg_onrgoed_key
, so.res_srtartikel_og_ingangsdatum
, so.res_srtartikel_og_vervaldatum
, so.res_srtartikel_og_verwijder
FROM onrgoed ar
, res_srtartikel_onrgoed so
WHERE so.alg_onrgoed_niveau = 'R'
AND so.alg_onrgoed_key = ar.alg_ruimte_key
UNION ALL
SELECT ar.alg_onroerendgoed_keys
, so.res_discipline_key
, 'V'
, ar.alg_verdieping_key
, so.res_srtartikel_og_ingangsdatum
, so.res_srtartikel_og_vervaldatum
, so.res_srtartikel_og_verwijder
FROM onrgoed ar
, res_srtartikel_onrgoed so
WHERE so.alg_onrgoed_niveau = 'V'
AND so.alg_onrgoed_key = ar.alg_verdieping_key
UNION ALL
SELECT ar.alg_onroerendgoed_keys
, so.res_discipline_key
, 'G'
, ar.alg_gebouw_key
, so.res_srtartikel_og_ingangsdatum
, so.res_srtartikel_og_vervaldatum
, so.res_srtartikel_og_verwijder
FROM onrgoed ar
, res_srtartikel_onrgoed so
WHERE so.alg_onrgoed_niveau = 'G'
AND so.alg_onrgoed_key = ar.alg_gebouw_key
UNION ALL
SELECT ar.alg_onroerendgoed_keys
, so.res_discipline_key
, 'L'
, ar.alg_locatie_key
, so.res_srtartikel_og_ingangsdatum
, so.res_srtartikel_og_vervaldatum
, so.res_srtartikel_og_verwijder
FROM onrgoed ar
, res_srtartikel_onrgoed so
WHERE so.alg_onrgoed_niveau = 'L'
AND so.alg_onrgoed_key = ar.alg_locatie_key
)
, ranked AS
(SELECT scope.*
, ROW_NUMBER() OVER
(PARTITION BY scope.alg_onroerendgoed_keys
, scope.res_discipline_key
ORDER BY CASE scope.alg_onrgoed_niveau
WHEN 'R' THEN 1
WHEN 'V' THEN 2
WHEN 'G' THEN 3
WHEN 'L' THEN 4
END
) AS rank_nr
FROM scope
)
SELECT alg_onroerendgoed_keys
, res_discipline_key
, alg_onrgoed_niveau
, alg_onrgoed_key
, res_srtartikel_og_ingangsdatum
, res_srtartikel_og_vervaldatum
, res_srtartikel_og_verwijder
FROM ranked
WHERE rank_nr = 1;
CREATE_VIEW(fac_v_my_res_rooms, 0) AS
SELECT res_ruimte_key,
@@ -672,13 +763,18 @@ CREATE_VIEW(res_v_udr_reservering, 1)
bezoekers,
van,
tot,
localized_van,
localized_tot,
duur,
status,
bostatus,
activiteit,
srtactiviteit_key,
activiteitsoort,
opmerking
opmerking,
visibility,
ruimte_prijs,
ruimte_korting
)
AS
SELECT rrr.res_rsv_ruimte_key,
@@ -742,79 +838,15 @@ AS
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
(SELECT rg.alg_regio_omschrijving
FROM alg_regio rg,
alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE rg.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
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT d.alg_district_omschrijving
FROM alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
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
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT l.alg_locatie_key
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_code
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_omschrijving
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_plaats
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_gebouw_code
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT v.alg_gebouw_key
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_verdieping_code
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
rg.alg_regio_omschrijving,
d.alg_district_omschrijving,
l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
l.alg_locatie_plaats,
g.alg_gebouw_code,
g.alg_gebouw_key,
v.alg_verdieping_code,
r2a.ruimte_nr,
r2a.opstelling,
r2a.capaciteit,
@@ -843,6 +875,20 @@ AS
rrr.res_rsv_ruimte_bezoekers,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
(SELECT CAST (
FROM_TZ (CAST (rrr.res_rsv_ruimte_van AS TIMESTAMP),
fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
fac.getsetting ('fac_server_timezone'))
AS DATE)
FROM DUAL),
(SELECT CAST (
FROM_TZ (CAST (rrr.res_rsv_ruimte_tot AS TIMESTAMP),
fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
fac.getsetting ('fac_server_timezone'))
AS DATE)
FROM DUAL),
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
(SELECT res_status_fo_omschrijving
FROM res_status_fo rs
@@ -853,7 +899,10 @@ AS
ra.res_activiteit_omschrijving,
rsa.res_srtactiviteit_key,
rsa.res_srtactiviteit_omschrijving,
rrr.res_rsv_ruimte_opmerking
rrr.res_rsv_ruimte_opmerking,
rrr.res_rsv_ruimte_visibility,
res.getruimteprijs(rrr.res_rsv_ruimte_key),
rrr.res_rsv_ruimte_korting
FROM res_v_aanwezigrsv_ruimte rrr,
res_activiteit ra,
res_srtactiviteit rsa,
@@ -886,9 +935,21 @@ AS
rrr.alg_ruimte_key,
r.alg_ruimte_nr
FROM res_rsv_ruimte rrr, alg_ruimte r
WHERE rrr.alg_ruimte_key IS NOT NULL AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a
WHERE rrr.alg_ruimte_key IS NOT NULL AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_district d,
alg_regio rg
WHERE rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND r2a.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 l.alg_district_key = d.alg_district_key(+)
AND d.alg_regio_key = rg.alg_regio_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
@@ -944,6 +1005,8 @@ CREATE_VIEW(res_v_udr_reserveringincl, 1)
bezoekers,
van,
tot,
localized_van,
localized_tot,
duur,
status,
bostatus,
@@ -951,6 +1014,7 @@ CREATE_VIEW(res_v_udr_reserveringincl, 1)
srtactiviteit_key,
activiteitsoort,
opmerking,
visibility,
bezorgmode,
voorziening_discipline_key,
voorziening_type,
@@ -1035,75 +1099,14 @@ AS
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
(SELECT rg.alg_regio_omschrijving
FROM alg_regio rg,
alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE rg.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
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT d.alg_district_omschrijving
FROM alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
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
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT l.alg_locatie_key
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_code
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_omschrijving
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_plaats
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_gebouw_code
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_verdieping_code
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
rg.alg_regio_omschrijving,
d.alg_district_omschrijving,
l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
l.alg_locatie_plaats,
g.alg_gebouw_code,
v.alg_verdieping_code,
r2a.ruimte_nr,
r2a.opstelling,
r2a.capaciteit,
@@ -1134,6 +1137,20 @@ AS
rrr.res_rsv_ruimte_bezoekers,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
(SELECT CAST (
FROM_TZ (CAST (rrr.res_rsv_ruimte_van AS TIMESTAMP),
fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
fac.getsetting ('fac_server_timezone'))
AS DATE)
FROM DUAL),
(SELECT CAST (
FROM_TZ (CAST (rrr.res_rsv_ruimte_tot AS TIMESTAMP),
fac.getsetting ('fac_server_timezone'))
AT TIME ZONE COALESCE (l.alg_locatie_timezone,
fac.getsetting ('fac_server_timezone'))
AS DATE)
FROM DUAL),
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
(SELECT res_status_fo_omschrijving
FROM res_status_fo rs
@@ -1145,6 +1162,7 @@ AS
rsa.res_srtactiviteit_key,
rsa.res_srtactiviteit_omschrijving,
rrr.res_rsv_ruimte_opmerking,
rrr.res_rsv_ruimte_visibility,
DECODE(rrr.res_rsv_ruimte_cvab_mode, 0, lcl.l('lcl_res_afhalen'), 1, lcl.l('lcl_res_bezorgen'), ''),
voorz.ins_discipline_key,
voorz.vtype,
@@ -1235,9 +1253,21 @@ AS
'consumable' vtype
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, ins_tab_discipline c
WHERE rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = c.ins_discipline_key) voorz
AND ra.res_discipline_key = c.ins_discipline_key) voorz,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_district d,
alg_regio rg
WHERE rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND r2a.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 l.alg_district_key = d.alg_district_key(+)
AND d.alg_regio_key = rg.alg_regio_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
AND rrr.res_activiteit_key = ra.res_activiteit_key
@@ -1249,5 +1279,121 @@ AS
AND (rrr.res_ruimte_opstel_key IS NOT NULL OR voorz.res_rsv_ruimte_key IS NOT NULL)
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
-- Om een goede bezettingsgraad te kunnen leveren zijn onderstaande views gegenereerd
-- Deze houdt rekening met werkplekreserveringen in een ruimte, en telt dan het aantal bezettingen
-- Alles op basis van reserveringen. BIj INS gebeurt iets vergelijkbaars obv sensorinfo.
-- De performance is een risico omdat er per ruimte/werkplek (max, als 24x7) 13.000 halfuurbuckets
-- worden bepaald. We moeten dus nog gaan zien of we deze standaard gaan tonen, wellicht na een vinkje.
-- Maar dan zijn ze als voorbeeld (en toets/beloning op inrichting cf. richtlijnen) beschikbaar.
/*
-- Desk-reserveringen (werkplekken) via 30-minuut-buckets:
-- 1) res_v_desk_reservation_buckets:
-- Genereer alle 30-min-buckets voor sysdate-90 tot sysdate binnen kantoortijden
-- (ma-vr, geen feestdagen). Breek alle werkplekreserveringen op in deze buckets.
-- OUTPUT: alg_ruimte_key, bucket_start, reserved_count (aantal werkplekken gereserveerd).
--
-- 2) res_v_desk_reservation_stats:
-- Toon per bucket en ruimte het aantal werkplekreserveringen.
--
-- 3) res_v_desk_reservation_kpis:
-- KPI<50>s per ruimte:
-- total_reserved_hours_desk = som(reserved_count <20> 0.5u)
-- avg_reserved_count = gem. aantal gelijktijdige desk-reserveringen
-- peak_reserved_count = max gelijktijdige desk-reserveringen
*/
CREATE_VIEW(res_v_desk_reservation_buckets, 0)
AS
WITH
intervals
AS
( SELECT TRUNC (SYSDATE - 90) + NUMTODSINTERVAL ((ROWNUM - 1) * 30, 'MINUTE') AS bucket_start
FROM DUAL
CONNECT BY ROWNUM <= ((SYSDATE - (SYSDATE - 90)) * 24 * 60 / 30)),
valid_buckets
AS
(SELECT bucket_start
FROM intervals
WHERE (TO_NUMBER (TO_CHAR (bucket_start, 'HH24')) + TO_NUMBER (TO_CHAR (bucket_start, 'MI')) / 60) BETWEEN fac.getsetting ('fac_t_startofworkday')
AND fac.getsetting ('fac_t_endofworkday')
AND TO_CHAR (bucket_start, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') NOT IN ('SAT', 'SUN')
AND TRUNC (bucket_start) NOT IN (SELECT mld_vrije_dagen_datum FROM mld_vrije_dagen)),
desk_res
AS
(SELECT r.alg_ruimte_key AS alg_ruimte_key, rd.res_rsv_deel_van AS start_dt, rd.res_rsv_deel_tot AS end_dt
FROM res_rsv_ruimte r
JOIN res_rsv_deel rd ON rd.res_rsv_ruimte_key = r.res_rsv_ruimte_key
JOIN res_deel d ON d.res_deel_key = rd.res_deel_key
JOIN res_discipline dis ON dis.ins_discipline_key = d.res_discipline_key
WHERE r.res_rsv_ruimte_dirtlevel = 0
AND r.res_status_fo_key IN (1, 2)
AND r.res_ruimte_opstel_key IS NULL
AND r.res_rsv_ruimte_verwijder IS NULL
AND dis.ins_discipline_min_level = 5
AND rd.res_rsv_deel_van < SYSDATE
AND rd.res_rsv_deel_tot > SYSDATE - 90),
bucket_assign
AS
(SELECT vb.bucket_start, dr.alg_ruimte_key
FROM valid_buckets vb JOIN desk_res dr ON dr.start_dt < vb.bucket_start + INTERVAL '30' MINUTE AND dr.end_dt > vb.bucket_start)
SELECT alg_ruimte_key, bucket_start, COUNT (*) AS reserved_count
FROM bucket_assign
GROUP BY alg_ruimte_key, bucket_start;
CREATE_VIEW(res_v_desk_reservation_stats, 0)
AS
SELECT rdb.alg_ruimte_key, rdb.bucket_start, rdb.reserved_count
FROM res_v_desk_reservation_buckets rdb;
CREATE_VIEW(res_v_desk_reservation_kpis, 0)
AS
SELECT alg_ruimte_key
, SUM (reserved_count * 0.5) AS total_reserved_hours_desk
, ROUND (AVG (reserved_count), 1) AS avg_reserved_count_desk
, MAX (reserved_count) AS peak_reserved_count_desk
FROM res_v_desk_reservation_stats
GROUP BY alg_ruimte_key;
/*
-- Kamerreserveringen (ruimtes) via eenvoudige KPI-berekening:
-- 4) res_v_room_simple_kpis:
-- Direct berekening per ruimte:<br>-- total_reserved_hours_room = som uren binnen kantoortijden</br>
-- avg_reservation_duration_hours (uren, 1 decimaal)
-- max_reservation_duration_hours
-- Hierbij worden reserveringstijden per record afgeknipt met GREATEST/LEAST
*/
CREATE_VIEW(res_v_room_simple_kpis, 0)
AS
SELECT rar.alg_ruimte_key
AS alg_ruimte_key
, SUM (
LEAST (r.res_rsv_ruimte_tot, TRUNC (r.res_rsv_ruimte_van) + NUMTODSINTERVAL (fac.getsetting ('fac_t_endofworkday'), 'HOUR'))
- GREATEST (r.res_rsv_ruimte_van, TRUNC (r.res_rsv_ruimte_van) + NUMTODSINTERVAL (fac.getsetting ('fac_t_startofworkday'), 'HOUR')))
* 24
AS total_reserved_hours_room
, -- gemiddelde reserveringsduur in uren (1 decimaal)
ROUND (
AVG (
( LEAST (r.res_rsv_ruimte_tot, TRUNC (r.res_rsv_ruimte_van) + NUMTODSINTERVAL (fac.getsetting ('fac_t_endofworkday'), 'HOUR'))
- GREATEST (r.res_rsv_ruimte_van, TRUNC (r.res_rsv_ruimte_van) + NUMTODSINTERVAL (fac.getsetting ('fac_t_startofworkday'), 'HOUR')))
* 24)
, 1)
AS avg_reservation_duration_hours
, -- gemiddelde aantal personen per reservering
ROUND (AVG (COALESCE (r.res_rsv_ruimte_bezoekers_shown, r.res_rsv_ruimte_bezoekers)), 1)
AS avg_persons_per_reservation
FROM res_rsv_ruimte r
JOIN res_ruimte_opstelling ro ON ro.res_ruimte_opstel_key = r.res_ruimte_opstel_key
JOIN res_ruimte ru ON ru.res_ruimte_key = ro.res_ruimte_key
JOIN res_alg_ruimte rar ON rar.res_ruimte_key = ru.res_ruimte_key
WHERE r.res_rsv_ruimte_dirtlevel = 0
AND r.res_status_fo_key IN (1, 2)
AND r.res_rsv_ruimte_verwijder IS NULL
AND r.res_rsv_ruimte_van < SYSDATE
AND r.res_rsv_ruimte_tot > SYSDATE - 90
GROUP BY rar.alg_ruimte_key;
REGISTERRUN('$Id$')
#endif // RES

View File

@@ -23,9 +23,9 @@ CREATE_TABLE(web_user_messages, 0)
VARCHAR2(512)
CONSTRAINT web_c_web_mes_dsc NOT NULL,
web_user_mess_action_soort
CHAR(1),
VARCHAR2(1),
web_user_mess_action_status
CHAR(1),
VARCHAR2(1),
web_user_mess_action_params
VARCHAR2(255),
web_user_mess_prioriteit

View File

@@ -43,8 +43,10 @@ ALTER TABLE ins_srtdiscipline DROP CONSTRAINT ins_c_ins_srtdiscipline_bes;
ALTER TABLE ins_srtdiscipline ADD CONSTRAINT ins_c_ins_srtdiscipline_bes CHECK(ins_srtdiscipline_bes IN (0,1,2));
/////////////////////////////////////////////////////////////////////////////////////////// EIND#82432
DEF_MENUITEM(0, 'lcl_menu_fac_jobs_fe', '', 'FAC', 'appl/fac/job_search.asp?urole=fe', 0, 0, 'WEB_MLDUSE', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_fac_jobs_fe', 'lcl_menu_prs_phonebook', 25);
DEF_MENUITEM(0, 'lcl_menu_fac_jobs_fe', '', 'FAC', 'appl/fac/job_search.asp?urole=fe', 0, 0, 'WEB_MLDUSE', 'W', '0', '');
DEF_MENUITEM(1, 'lcl_menu_fac_jobs_fo', '', 'FAC', 'appl/fac/job_search.asp?urole=fo', 0, 0, 'WEB_MLDFOF', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_fac_jobs_fo', 'lcl_menu_cnt_bo', 100);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#80823
ALTER TABLE fac_import_app ADD fac_import_app_csv NUMBER(1) DEFAULT(0) NOT NULL;
@@ -152,7 +154,7 @@ COMMIT;
#include "../INI/INI_IND.SRC"
#include "../INI/INI_TRI.SRC"
#include "../INI/INI_INI.SRC"
DEF_MENUENTRY(2, 99005, 'lcl_menu_setup_framework' , '', 'FAC', 'appl/init/init_setup.asp', 0, 0, 'WEB_FACTAB');
DEF_MENUENTRY(2, 99010, 'lcl_menu_setup_framework' , '', 'FAC', 'appl/init/init_setup.asp', 0, 0, 'WEB_FACTAB');
/////////////////////////////////////////////////////////////////////////////////////////// FBEA#79162
DEF_IMPORT('WEB_PRSSYS', 'VRIJEDAGEN', 'Vrije dagen', 'Non-working days', 1);
@@ -276,16 +278,16 @@ DEF_FAC_SRTNOT('RESSNT', 0, 'lcl_noti_RESSNT', 'res/res_reservering.asp?rsv_ruim
DEF_FAC_SRTNOT('RESSNX', 0, 'lcl_noti_RESSNX', 'res/res_reservering.asp?rsv_ruimte_key=', '0', 'reservering', 10);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#83889
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_onrgoed1', 'FIP: 1-Aanvullen districten t/m gebouwen', 'Inventarisatie Vastgoed, tabblad Locaties', 'FIP: 1-Real estate 1', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_onrgoed2', 'FIP: 2-Aanvullen bouwlagen en ruimten', 'Inventarisatie Vastgoed, tabblad Ruimten', 'FIP: 2-Real estate 2', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_organisatie', 'FIP: 3-Aanvullen organisatiestructuur', 'Inventarisatie Organisatiestructuur', 'FIP: 3-Organisation', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_perslid', 'FIP: 4-Aanvullen personen', 'Inventarisatie Personen', 'FIP: 4-Persons', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_mld', 'FIP: 5-Aanvullen servicedesk', 'Inventarisatie Meldingen', 'FIP: 5-Calls structure', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_ins', 'FIP: 6-Aanvullen objecten', 'Inventarisatie Objecten', 'FIP: 6-Objects', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_inspectie', 'FIP: 9-Aanvullen van inspectiedefinities', 'Inventarisatie Inspecties', 'FIP: 9-Inspections', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_ext_bedrijf', 'FIP: Aanvullen externe bedrijven', 'Inventarisatie Externe bedrijven, tabblad Externe Bedrijven', 'FIP: Companies/Companies', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_bedrijfadres', 'FIP: Aanvullen technische bedrijfadressen', 'Inventarisatie Externe bedrijven, tabblad Technische adressen', 'FIP: Companies/Tech adresses', 'For internal use only')
DEF_RAPPORT('ROUNDTRIP', 'WEB_FACFAC', 0, 'fac_v_exp_contactpersoon','FIP: Aanvullen contactpersonen', 'Inventarisatie Externe bedrijven, tabblad Contactpersonen', 'FIP: Companies/Contact persons', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_onrgoed1', 'FIP: 1-Aanvullen districten t/m gebouwen', 'Inventarisatie Vastgoed, tabblad Locaties', 'FIP: 1-Real estate 1', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_onrgoed2', 'FIP: 2-Aanvullen bouwlagen en ruimten', 'Inventarisatie Vastgoed, tabblad Ruimten', 'FIP: 2-Real estate 2', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_organisatie', 'FIP: 3-Aanvullen organisatiestructuur', 'Inventarisatie Organisatiestructuur', 'FIP: 3-Organisation', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_perslid', 'FIP: 4-Aanvullen personen', 'Inventarisatie Personen', 'FIP: 4-Persons', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_mld', 'FIP: 5-Aanvullen servicedesk', 'Inventarisatie Meldingen', 'FIP: 5-Calls structure', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_ins', 'FIP: 6-Aanvullen objecten', 'Inventarisatie Objecten', 'FIP: 6-Objects', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_inspectie', 'FIP: 9-Aanvullen van inspectiedefinities', 'Inventarisatie Inspecties', 'FIP: 9-Inspections', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_ext_bedrijf', 'FIP: Aanvullen externe bedrijven', 'Inventarisatie Externe bedrijven, tabblad Externe Bedrijven', 'FIP: Companies/Companies', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_bedrijfadres', 'FIP: Aanvullen technische bedrijfadressen', 'Inventarisatie Externe bedrijven, tabblad Technische adressen', 'FIP: Companies/Tech adresses', 'For internal use only')
DEF_RAPPORT('EXPORT', 'WEB_FACFAC', 0, 'fac_v_exp_contactpersoon','FIP: Aanvullen contactpersonen', 'Inventarisatie Externe bedrijven, tabblad Contactpersonen', 'FIP: Companies/Contact persons', 'For internal use only')
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#83782
--Mag niet zo maar. Via de interface @prod de rapporten gewoon verwijderd.
@@ -304,7 +306,7 @@ UPDATE fac_menuitems
FROM fac_functie
WHERE UPPER (fac_functie_code) = 'WEB_EXTFIN')
WHERE fac_menuitems_label = 'lcl_menu_fin_fe_overz';
DELETE FROM fac_functie WHERE fac_functie_code IN ('WEB_OUTLET','WEB_PRSCNG','WEB_FINUSE');
ALTER PACKAGE fac COMPILE; // anders (nog) invalid en lukt het volgende niet niet

View File

@@ -17,9 +17,294 @@ ALTER TABLE mld_melding DROP COLUMN mld_melding_omschrijving_old;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#83940
ALTER TABLE fac_api DROP COLUMN fac_import_app_key;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#82437
DEF_MENUITEM(1, 'lcl_menu_mld_concepts', '', 'MLD', 'appl/mld/mld_search.asp?concept=1&urole=fo', 0, 0, 'WEB_MLDMSU', 'R', '0', '');
/////////////////////////////////////////////////////////////////////////////////////////// YAXX#83974
ALTER TABLE fac_imp_bedrijfadres ADD prs_bedrijfadres_replyaddress VARCHAR2(512);
/////////////////////////////////////////////////////////////////////////////////////////// PCHX#80376
ALTER TABLE prs_collega ADD prs_collega_vervaldatum DATE;
/////////////////////////////////////////////////////////////////////////////////////////// FMHN#84318
ALTER TABLE mld_vrije_dagen
ADD mld_vrije_dagen_id VARCHAR2(50)
DEFAULT ('Default') NOT NULL;
CREATE INDEX mld_i_mld_vrije_dagen_id ON mld_vrije_dagen(mld_vrije_dagen_id);
BEGIN
adm.tryalter('TABLE mld_vrije_dagen DROP CONSTRAINT mld_u_mld_vrije_dagen_datum');
adm.trydrop('INDEX mld_u_mld_vrije_dagen_datum');
END;
/
ALTER TABLE mld_vrije_dagen ADD CONSTRAINT mld_u_mld_vrije_dagen_datum UNIQUE(mld_vrije_dagen_datum, mld_vrije_dagen_id);
ALTER TABLE alg_gebouw
ADD mld_vrije_dagen_id VARCHAR2(50);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84550
UPDATE fac_setting
SET fac_setting_pvalue = NULL
WHERE fac_setting_name = 'sys_ip_lockmode'
AND fac_setting_pvalue IS NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84626
ALTER TABLE prs_bedrijfadres
MODIFY prs_bedrijfadres_username VARCHAR2(128);
ALTER TABLE fac_imp_bedrijfadres
MODIFY prs_bedrijfadres_username VARCHAR2(128);
/////////////////////////////////////////////////////////////////////////////////////////// HSLE#81369
DEF_FAC_FUNCTIE3('WEB_MLDREO', 'MLD', 13, 1, 1);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#81526
BEGIN
adm.trydrop ('TABLE tmp_imp_mjb');
END;
/
CREATE TABLE fac_imp_taak_mjob
( ins_deel_key NUMBER(10)
, ctr_discipline_key NUMBER(10)
, ismjob NUMBER(1)
, ins_srtcontrole_omschrijving VARCHAR2(60)
, ins_srtcontrole_key NUMBER(10)
, ins_srtcontrole_opmerking VARCHAR2(320)
, ins_srtcontrole_groep VARCHAR2(60)
, ins_srtcontrole_prioriteit NUMBER(3)
, fin_btwtabelwaarde_key NUMBER(10)
, prs_kostenplaats_key NUMBER(10)
, ins_srtcontroledl_xcp_aantal NUMBER(8,2)
, ins_srtcontroledl_xcp_aanteh VARCHAR2(30)
, ins_srtcontroledl_xcp_perc NUMBER(3)
, ins_srtcontroledl_xcp_opmerk VARCHAR2(320)
, ins_srtcontroledl_xcp_eenheid NUMBER(3)
, ins_srtcontroledl_xcp_periode NUMBER(6,2)
, ins_srtcontroledl_xcp_start DATE
, ins_srtcontroledl_xcp_eind DATE
, ins_srtcontroledl_xcp_materia NUMBER(9,2)
, prs_dienst_omschrijving VARCHAR2(60)
, ins_srtcontroledl_xcp_key NUMBER(10)
);
DEF_IMPORT('WEB_INSMGT', 'TAAK_MJOB', 'Import MJOB', 'Import MJOB', 1);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84691
CREATE_TABLE(mld_vervolg_beperking, 0)
(
mld_vervolg_beperking_key
NUMBER(10)
PRIMARY KEY,
ins_srtdiscipline_key_1
NUMBER(10) NOT NULL
CONSTRAINT mld_r_ins_srtdiscipline_key1 REFERENCES ins_srtdiscipline(ins_srtdiscipline_key) ON DELETE CASCADE,
ins_srtdiscipline_key_2
NUMBER(10) NOT NULL
CONSTRAINT mld_r_ins_srtdiscipline_key3 REFERENCES ins_srtdiscipline(ins_srtdiscipline_key) ON DELETE CASCADE,
mld_vervolg_beperking_aanmaak
DATE DEFAULT SYSDATE NOT NULL
);
CREATE SEQUENCE mld_s_mld_vervolg_beperking_key MINVALUE 1;
/////////////////////////////////////////////////////////////////////////////////////////// PNBR#80680
ALTER TABLE fac_tracking ADD fac_tracking_subject_refkey NUMBER (10);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#83953
ALTER TABLE mld_melding
MODIFY mld_melding_onderwerp VARCHAR2(200)
MODIFY mld_melding_onderwerp_ai VARCHAR2(200);
/////////////////////////////////////////////////////////////////////////////////////////// MARX#80460
ALTER TABLE prs_bedrijfadres DROP CONSTRAINT prs_c_prs_bedrijfadrestype;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84940
DROP TRIGGER fin_t_fin_factuur_B_IU;
DROP TRIGGER fin_t_fin_factuurregel_B_IU;
DROP TRIGGER bez_t_bez_bezoekers_B_IU;
/////////////////////////////////////////////////////////////////////////////////////////// VNOG#84884
ALTER PACKAGE fac COMPILE; // anders (nog) invalid en lukt het volgende niet niet
ALTER PACKAGE fac COMPILE BODY;
// TIjdelijk de flags op 0 zetten anders krijgen we foutmelding "PRS_M183".
UPDATE prs_perslid
SET prs_perslid_flags = 0
WHERE prs_perslid_oslogin = '_SENSOR';
UPDATE prs_perslid
SET prs_perslid_naam = 'Systeem',
prs_perslid_oslogin = '_SYSTEEM',
prs_perslid_opmerking = 'System account for system-triggered-events.'||CHR(13)||'For Facilitor internal use'
WHERE prs_perslid_oslogin = '_SENSOR';
UPDATE prs_perslid
SET prs_perslid_flags = 36
WHERE prs_perslid_oslogin = '_SYSTEEM';
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84334
UPDATE fac_menuitems
SET fac_functie_key =
(SELECT fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_MLDMGT')
WHERE fac_menuitems_label = 'lcl_menu_mld_vakgroeptypes'
AND fac_functie_key = (SELECT fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSSYS');
UPDATE fac_menuitems
SET fac_functie_key =
(SELECT fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_MLDMGT')
WHERE fac_menuitems_label = 'lcl_menu_mld_opdrachttypes'
AND fac_functie_key = (SELECT fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSSYS');
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85185
UPDATE fac_setting
SET fac_setting_pvalue =
REGEXP_REPLACE (REGEXP_REPLACE (fac_setting_pvalue,
',\s*fclt-skolar-sans',
'',
1,
0),
'fclt-skolar-sans\s*,',
'',
1,
0)
WHERE fac_setting_name = 'csstemplate'
AND ( REGEXP_LIKE (fac_setting_pvalue, ',\s*fclt-skolar-sans')
OR REGEXP_LIKE (fac_setting_pvalue, 'fclt-skolar-sans\s*,'));
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84812
UPDATE prs_afdeling
SET prs_afdeling_omschrijving = 'Onbekend'
WHERE prs_afdeling_omschrijving IS NULL
AND prs_afdeling_naam = 'Onbekend';
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85198
// Voor accept omgevingen herstel DB48
UPDATE fac_usrrap
SET fac_usrrap_groep = 'EXPORT'
WHERE fac_usrrap_groep = 'ROUNDTRIP';
/////////////////////////////////////////////////////////////////////////////////////////// BAUS#80301
ALTER TABLE ins_kenmerk DROP CONSTRAINT ins_c_ins_kenmerk_niveau2;
ALTER TABLE ins_kenmerk ADD CONSTRAINT ins_c_ins_kenmerk_niveau2 CHECK
(ins_kenmerk_niveau IS NOT NULL AND (ins_kenmerk_niveau IN ('D', 'G', 'S', 'T', 'C', 'E'))); // T=Alle taken, C=srtcontrole, E=ctr-discipline
ALTER TABLE ins_kenmerk DROP CONSTRAINT ins_r_ins_srtinstallatie_key1;
ALTER TABLE ins_kenmerk ADD CONSTRAINT ins_r_ins_srtinstallatie_key1 CHECK
(ins_srtinstallatie_key IS NOT NULL OR ins_kenmerk_niveau IN ('D', 'T'));
DEF_MENUITEM(2, 'lcl_menu_ins_taakkenmerken' , '', 'CTR', 'appl/mgt/ins_kenmerk.asp?niveau=T', 0, 0, 'WEB_CTRMGT', 'W', '1', '');
-- Aanmaken van het default menuitem "Taakkenmerken":
INSERT INTO fac_menu(fac_menuitems_key,
fac_menu_volgnr,
fac_menu_altlabel,
fac_menu_alturl,
fac_menu_altgroep,
fac_menu_image,
fac_menu_level,
fac_menu_info)
SELECT fac_menuitems_key,
(SELECT fm.fac_menu_volgnr
FROM fac_menu fm
WHERE fm.fac_menu_altlabel = 'lcl_menu_ins_kenmerken')
+ 1,
fac_menuitems_label,
fac_menuitems_url,
fac_menuitems_groep,
fac_menuitems_image,
CASE
WHEN fac_menuitems_groep IN (0, 1, 2) THEN 2
WHEN fac_menuitems_groep IN (3, 7) THEN 1
ELSE 0
END
fac_menu_level,
fac_menuitems_oms
FROM fac_menuitems i
WHERE fac_menuitems_label = 'lcl_menu_ins_taakkenmerken'
AND i.fac_menuitems_key NOT IN
(SELECT m.fac_menuitems_key
FROM fac_menu m
WHERE m.fac_menuitems_key IS NOT NULL);
/////////////////////////////////////////////////////////////////////////////////////////// YAXX#84507
UPDATE fac_setting
SET fac_setting_pvalue =
CASE WHEN fac_setting_pvalue = 'true' THEN '1' ELSE '0' END
WHERE fac_setting_name = 'mld_opdr_pref_contractors_only'
AND fac_setting_pvalue IS NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// FBEA#83210
ALTER TABLE res_activiteit
ADD (res_activiteit_color VARCHAR2 (60 CHAR));
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#83767
ALTER TABLE fac_imp_mld MODIFY ( mld_stdmelding_uitvoertijd NUMBER(12,5)
, mld_stdmelding_uitvoertijd1 NUMBER(12,5)
, mld_stdmelding_uitvoertijd2 NUMBER(12,5)
, mld_stdmelding_uitvoertijd4 NUMBER(12,5)
);
ALTER TABLE fac_imp_mld ADD ( mld_stdmelding_accepttijd NUMBER(12,5)
, mld_stdmelding_accepttijd1 NUMBER(12,5)
, mld_stdmelding_accepttijd2 NUMBER(12,5)
, mld_stdmelding_accepttijd4 NUMBER(12,5)
);
ALTER TABLE fac_imp_mld DROP COLUMN mld_stdmelding_urgentie;
/////////////////////////////////////////////////////////////////////////////////////////// CSUN#85306
CREATE SEQUENCE prs_s_prs_prsfaq_key MINVALUE 1;
CREATE_TABLE(prs_prsfaq, 0)
(
prs_prsfaq_key
NUMBER(10)
CONSTRAINT prs_k_prsfaq_key PRIMARY KEY,
prs_bedrijf_key
NUMBER(10)
NOT NULL
CONSTRAINT prs_r_prs_bedrijf_key9 REFERENCES prs_bedrijf(prs_bedrijf_key) ON DELETE CASCADE,
prs_afdeling_key /* optionele verbijzondering binnen dit bedrijf */
NUMBER(10)
CONSTRAINT prs_r_prs_afdeling_key2 REFERENCES prs_afdeling(prs_afdeling_key) ON DELETE CASCADE,
fac_faq_key
NUMBER(10)
NOT NULL
CONSTRAINT prs_r_fac_faq_key REFERENCES fac_faq(fac_faq_key) ON DELETE CASCADE
);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85565
DEF_MENUITEM(2, 'lcl_menu_unusedstats', '', 'FAC', 'appl/fac/fac_unused_stats.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_unusedstats', 'lcl_menu_about', -2);
/////////////////////////////////////////////////////////////////////////////////////////// ALKM#85717
ALTER TABLE prs_srtperslid MODIFY ( prs_srtperslid_omschrijving VARCHAR2(100)
, prs_srtperslid_upper VARCHAR2(100));
ALTER TABLE fac_imp_perslid MODIFY (prs_srtperslid_omschrijving VARCHAR2(100));
/////////////////////////////////////////////////////////////////////////////////////////// AAXX#81521
ALTER TABLE res_rsv_ruimte
ADD res_rsv_ruimte_visibility NUMBER (4) DEFAULT 1 NOT NULL;
ALTER TABLE exc_import
ADD visibility NUMBER (4) DEFAULT 1;
ALTER TABLE exc_import
ADD CONSTRAINT exc_c_visibility CHECK
(modifier = 'D' OR visibility IS NOT NULL);
/////////////////////////////////////////////////////////////////////////////////////////// SCHG#85790
ALTER TABLE fac_imp_cnt
MODIFY (cnt_soort VARCHAR2(60));
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000
REGISTERONCE('$Id$')
#define POST_RECREATE "DB48to49_post.src"
#include "epilogue.inc"

27
_UP/DB48to49_post.src Normal file
View File

@@ -0,0 +1,27 @@
/* DB48TO49_POST.SRC
*
* Update script van FACILITOR schema
* Uitgevoerd *na* de recreate zodat puo_app2secret de goede waarde heeft
*
* LET OP: De makefile detecteert timestamp van dit bestand niet
*
* $Revision$
* $Id$
*/
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85545
UPDATE prs_bedrijfadres
SET prs_bedrijfadres_url = fac.getsetting('puo_app2pushurl'),
prs_bedrijfadres_privkey = fac.getsetting('puo_app2secret'),
prs_bedrijfadres_oa_scope = 'https://www.googleapis.com/auth/firebase.messaging',
prs_bedrijfadres_authmethod = 5, -- GoogleAuth
prs_bedrijfadres_password = NULL -- niet meer nodig
WHERE prs_bedrijf_key IN (SELECT prs_bedrijf_key
FROM prs_bedrijf
WHERE prs_bedrijf_naam = 'Aareon Facilitor Mobile app')
AND prs_bedrijfadres_type = 'N';
REGISTERONCE('$Id$')
COMMIT;

98
_UP/DB49to49a.sql Normal file
View File

@@ -0,0 +1,98 @@
--
-- $Id$
--
-- Aanpassingen om DB49 (accp) naar de DB49a te brengen
-- Merk op dat de recreate er nog bij komt die de DB-version bijwerkt
--
-- MOET OOK ZIJN/WORDEN OPGENOMEN IN DB48to49.src !!!
DEFINE thisfile = 'DB49to49a.sql'
DEFINE dbuser = '*'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
WHENEVER SQLERROR CONTINUE;
PROMPT &fcltcusterr
SET DEFINE OFF
------ payload begin ------
-- /////////////////////////////////////////////////////////////////////////////////////////// AAXX#81521
ALTER TABLE res_rsv_ruimte
ADD res_rsv_ruimte_visibility NUMBER (4) DEFAULT 1 NOT NULL;
ALTER TABLE exc_import
ADD visibility NUMBER (4) DEFAULT 1;
ALTER TABLE exc_import
ADD CONSTRAINT exc_c_visibility CHECK
(modifier = 'D' OR visibility IS NOT NULL);
-- /////////////////////////////////////////////////////////////////////////////////////////// SCHG#85790
ALTER TABLE fac_imp_cnt
MODIFY (cnt_soort VARCHAR2(60));
-- /////////////////////////////////////////////////////////////////////////////////////////// FCLT#81526
UPDATE fac_import_app
SET fac_import_app_csv = 1
WHERE fac_import_app_code = 'TAAK_MJOB';
/////////////////////////////////////////////////////////////////////////////////////////// BAUS#80301
-- Autorisatie en module van het menuitem "Taakkenmerken" aanpassen van "WEB_INSMG" en "INS" naar "WEB_CTTMGT" en "CTR".
UPDATE fac_menuitems
SET fac_menuitems_module = 'CTR',
fac_functie_key = (SELECT fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_CTRMGT')
WHERE fac_menuitems_label = 'lcl_menu_ins_taakkenmerken';
-- Aanmaken van het default menuitem "Taakkenmerken":
INSERT INTO fac_menu(fac_menuitems_key,
fac_menu_volgnr,
fac_menu_altlabel,
fac_menu_alturl,
fac_menu_altgroep,
fac_menu_image,
fac_menu_level,
fac_menu_info)
SELECT fac_menuitems_key,
(SELECT fm.fac_menu_volgnr
FROM fac_menu fm
WHERE fm.fac_menu_altlabel = 'lcl_menu_ins_kenmerken')
+ 1,
fac_menuitems_label,
fac_menuitems_url,
fac_menuitems_groep,
fac_menuitems_image,
CASE
WHEN fac_menuitems_groep IN (0, 1, 2) THEN 2
WHEN fac_menuitems_groep IN (3, 7) THEN 1
ELSE 0
END
fac_menu_level,
fac_menuitems_oms
FROM fac_menuitems i
WHERE fac_menuitems_label = 'lcl_menu_ins_taakkenmerken'
AND i.fac_menuitems_key NOT IN
(SELECT m.fac_menuitems_key
FROM fac_menu m
WHERE m.fac_menuitems_key IS NOT NULL);
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 1); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile

365
_UP/DB49to50.src Normal file
View File

@@ -0,0 +1,365 @@
/*
* Update script van FACILITOR schema
* $Revision$
* $Id$
*/
#include "prologue.inc"
COMMIT;
SET DEFINE OFF
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85890
RENAME fac_v_orderqueue to fac_v_orderqueue_OLD;
// Tijdelijke dummy die niets oplevert
CREATE OR REPLACE VIEW fac_v_orderqueue
AS
SELECT -1 prs_bedrijf_key,
-1 alg_locatie_key,
'dontcare' xmlnode,
-1 key,
-1 reference,
'' sender,
SYSDATE teverzenden_datum
FROM DUAL
WHERE 0 = 1;
CREATE TABLE prs_bedrijfadres_srtnoti
(
prs_bedrijfadres_srtnoti_key
NUMBER(10)
PRIMARY KEY,
prs_bedrijfadres_key
NUMBER(10)
CONSTRAINT prs_r_bedrijfadres_key2
REFERENCES prs_bedrijfadres(prs_bedrijfadres_key) ON DELETE CASCADE,
fac_srtnotificatie_key
NUMBER(10)
REFERENCES fac_srtnotificatie(fac_srtnotificatie_key) ON DELETE CASCADE,
prs_bedrijfadres_method -- optionele overrule method (anders GET/POST afhankelijk van of er een body is)
VARCHAR2(16),
prs_bedrijfadres_url -- optionele overrule endpoint
VARCHAR2(512),
prs_bedrijfadres_srtnoti_aanmaak
DATE
DEFAULT SYSDATE NOT NULL
);
CREATE SEQUENCE prs_s_prs_bedrijfadres_srtnoti_key MINVALUE 1;
ALTER TABLE fac_notificatie
ADD fac_notificatie_naam VARCHAR(80); // puur informatief voor logging/support, bijvoorbeeld opdrachtnummer
ALTER TABLE fac_notificatie
ADD fac_notificatie_failmessage VARCHAR(4000); // de laatste
ALTER TABLE fac_notificatie
ADD fac_notificatie_faildatum DATE; // de laatste
ALTER TABLE fac_notificatie
ADD fac_notificatie_realuser VARCHAR2(64);
ALTER TABLE prs_bedrijfadres
ADD ins_discipline_key NUMBER(10)
REFERENCES ins_tab_discipline(ins_discipline_key) ON DELETE CASCADE; // Scherpere bedrijfadres bepaling, vooral reserveringen?
ALTER TABLE prs_bedrijfadres
ADD prs_bedrijfadres_omschrijving VARCHAR2(100);
ALTER TABLE prs_bedrijfadres
MODIFY prs_bedrijfadres_type VARCHAR2(3); // Ook ruimte voor BOG voor BestelOpdrachten Generiek
ALTER TABLE prs_bedrijf DROP CONSTRAINT prs_c_prs_bedrijf_intern; // mag ook 2 zijn
ALTER PACKAGE fac COMPILE; // anders (mogelijk nog) invalid en lukt het volgende niet
ALTER PACKAGE fac COMPILE BODY;
UPDATE prs_bedrijf
SET prs_bedrijf_intern = 2, // is nu logischer
prs_bedrijf_uitvoerende = NULL
WHERE prs_bedrijf_naam = 'Aareon Facilitor Mobile app';
ALTER TABLE prs_contactpersoon
ADD prs_contactpersoon_systeem
NUMBER(1) DEFAULT 0 NOT NULL;
ALTER TABLE fac_version
ADD fac_version_tasker_date DATE;
CREATE_TABLE(fac_cust, 0)
(
fac_cust_key NUMBER(10)
CONSTRAINT fac_k_fac_cust_key PRIMARY KEY,
fac_cust_customerid VARCHAR(4) NOT NULL,
fac_cust_schema VARCHAR(30) DEFAULT '00' NOT NULL, // kopie fac_version_schema van de gebruiker
fac_cust_enabled NUMBER(1) DEFAULT 1 NOT NULL, // future use, disable during upgrades?
fac_cust_aanmaak DATE DEFAULT SYSDATE NOT NULL,
CONSTRAINT fac_u_fac_cust UNIQUE(fac_cust_customerid)
);
CREATE_TABLE(fac_task, 0)
(
fac_task_key NUMBER(10)
CONSTRAINT fac_k_fac_task_key PRIMARY KEY,
fac_cust_key NUMBER(10) REFERENCES fac_cust(fac_cust_key) ON DELETE CASCADE,
fac_task_code VARCHAR(32) NOT NULL,
fac_task_nextrun DATE,
fac_task_lastrun DATE,
fac_task_flags NUMBER(3) DEFAULT 1 NOT NULL, -- +1=enabled
fac_task_aanmaak DATE DEFAULT SYSDATE NOT NULL,
CONSTRAINT fac_u_fac_task UNIQUE(fac_cust_key, fac_task_code)
);
CREATE SEQUENCE fac_s_fac_cust_key MINVALUE 1;
CREATE SEQUENCE fac_s_fac_task_key MINVALUE 1;
DEF_FAC_SRTNOT('RESSND', 1, 'lcl_noti_RESSND', 'res/res_reservering.asp?rsv_ruimte_key=', '0', 'reservering', 60);
DEF_MENUITEM(2, 'lcl_menu_prs_bedrijf_system' , '', 'FAC', 'appl/prs/prs_bedrijf_search.asp?intern=2', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_prs_bedrijf_system', 'lcl_menu_fac_eigen_tabellen', 1);
DEF_MENUITEM(2, 'lcl_menu_system_adresses' , '', 'FAC', 'appl/mgt/prs_bedrijfadres.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_system_adresses', 'lcl_menu_prs_bedrijf_system', 1);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#80469
/////////////////////////////////////////////////////////////////////////////////////////// YAXX#84687
ALTER TABLE prs_bedrijf
ADD prs_bedrijf_mld_limiet NUMBER(8,2);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85970
CREATE_TABLE(mld_melding_tag,0) /* generiekere opzet voor mld_releases of mld_releasekalender */
(
mld_melding_tag_key
NUMBER(10)
CONSTRAINT mld_k_melding_tag_key PRIMARY KEY,
ins_srtdiscipline_key
NUMBER(10) NOT NULL
CONSTRAINT mld_r_ins_srtdiscipline_key4 REFERENCES ins_srtdiscipline(ins_srtdiscipline_key) ON DELETE CASCADE,
mld_melding_tag_naam
VARCHAR2(30)
NOT NULL,
mld_melding_tag_oms /* korte omschrijving */
VARCHAR2(1000),
mld_stdmeldinggroep_key /* optional reference to mld_stdmeldinggroep */
NUMBER(10)
CONSTRAINT mld_r_mld_stdmeldinggroep_key2 REFERENCES mld_stdmeldinggroep(mld_stdmeldinggroep_key),
mld_melding_tag_datum_van /* lijkt logisch, maar definieren waarom */
DATE,
mld_melding_tag_datum_tot /* de releasedatum */
DATE NOT NULL,
prs_perslid_key /* aanmaker of verantwoordelijke */
NUMBER(10)
CONSTRAINT mld_r_prs_perslid_key15 REFERENCES prs_perslid(prs_perslid_key),
mld_melding_tag_aanmaak
DATE DEFAULT SYSDATE NOT NULL,
mld_melding_tag_verwijder
DATE
);
CREATE UNIQUE INDEX mld_i_mld_melding_tag1 ON mld_melding_tag(ins_srtdiscipline_key, UPPER(mld_melding_tag_naam), mld_melding_tag_verwijder);
CREATE SEQUENCE mld_s_mld_melding_tag_key MINVALUE 1;
ALTER TABLE mld_stdmelding ADD
mld_stdmelding_taggable
NUMBER(1)
DEFAULT 0
NOT NULL;
ALTER TABLE mld_melding ADD
mld_melding_tag_key
NUMBER(10)
CONSTRAINT mld_r_mld_melding_tag REFERENCES mld_melding_tag(mld_melding_tag_key);
DEF_FAC_FUNCTIE3('WEB_MLDTAG', 'MLD', 3, 1, 1);
DEF_MENUITEM(1, 'lcl_menu_mld_melding_tag' , '', 'MLD', 'appl/mgt/mld_melding_tag.asp', 0, 0, 'WEB_MLDTAG', 'R', '1', '');
MENU_INS_AFTER('lcl_menu_mld_melding_tag', 'lcl_menu_mld_mi', 1);
/////////////////////////////////////////////////////////////////////////////////////////// VNOG#83559
ALTER TABLE fac_imp_ins
ADD (
ins_srtdeel_omschr_parent VARCHAR2 (100),
ins_deel_omschr_parent VARCHAR2 (60)
);
/////////////////////////////////////////////////////////////////////////////////////////// AAXX#83884
UPDATE mld_typeopdr_srtdiscipline mts
SET mts.ins_srtdiscipline_key =
(SELECT md.ins_srtdiscipline_key
FROM mld_discipline md
WHERE md.ins_discipline_key = mts.ins_discipline_key)
WHERE EXISTS
(SELECT 1
FROM mld_discipline md
WHERE md.ins_discipline_key = mts.ins_discipline_key);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#83805
DELETE FROM fac_menu
WHERE fac_menuitems_key IN (SELECT fac_menuitems_key
FROM fac_menuitems
WHERE fac_menuitems_label = 'lcl_menu_fac_aut_groep'
);
DELETE FROM fac_menuitems
WHERE fac_menuitems_label = 'lcl_menu_fac_aut_groep';
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#86343
// Sinds HSLE#36898 (2016.3) al niet meer in gebruik.
ALTER PACKAGE fac COMPILE; // anders (nog) invalid en lukt het volgende niet niet
ALTER PACKAGE fac COMPILE BODY;
UPDATE prs_perslid
SET prs_perslid_options = NULL
WHERE prs_perslid_options IS NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000
DEF_FAC_MESSAGE ('INS_M205', 'Parent object bestaat niet.','Parent object does noet exist.');
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85815
ALTER TABLE mld_typeopdr
ADD mld_typeopdr_code VARCHAR2(60)
CONSTRAINT mld_u_mld_typeopdr_code UNIQUE;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#86003
ALTER TABLE fac_imp_cnt
ADD ( mantel_nr_versie VARCHAR2(10)
, soortcontact VARCHAR2(1)
, kostensoort VARCHAR2(60)
, scope VARCHAR2(1)
);
ALTER TABLE fac_imp_cnt
MODIFY ( bedrijf_naam VARCHAR2(200)
, contact_naam VARCHAR2(200)
);
/////////////////////////////////////////////////////////////////////////////////////////// DHLD#86034
ALTER TABLE prs_perslid
MODIFY ( prs_perslid_oslogin VARCHAR2(256)
, prs_perslid_oslogin2 VARCHAR2(256)
);
ALTER TABLE fac_imp_perslid
MODIFY prs_perslid_oslogin VARCHAR2(256);
/////////////////////////////////////////////////////////////////////////////////////////// YASK#86818
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MIN_A' , 'Nieuwe min.waarde van dit kenmerksoort voldoet niet aan alle afdelingen.' ,'New min.value of this property-type does not satisfy all departments.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MIN_B' , 'Nieuwe min.waarde van dit kenmerksoort voldoet niet aan alle bedrijven.' ,'New min.value of this property-type does not satisfy all companies.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MIN_C' , 'Nieuwe min.waarde van dit kenmerksoort voldoet niet aan alle contactpersonen.' ,'New min.value of this property-type does not satisfy all contact persons');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MIN_P' , 'Nieuwe min.waarde van dit kenmerksoort voldoet niet aan alle personen.' ,'New min.value of this property-type does not satisfy all persons.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MAX_A' , 'Nieuwe max.waarde van dit kenmerksoort voldoet niet aan alle afdelingen.' ,'New max.value of this property-type does not satisfy all departments.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MAX_B' , 'Nieuwe max.waarde van dit kenmerksoort voldoet niet aan alle bedrijven.' ,'New max.value of this property-type does not satisfy all companies.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MAX_C' , 'Nieuwe max.waarde van dit kenmerksoort voldoet niet aan alle contactpersonen.' ,'New max.value of this property-type does not satisfy all contact persons.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MAX_P' , 'Nieuwe max.waarde van dit kenmerksoort voldoet niet aan alle personen.' ,'New max.value of this property-type does not satisfy all persons.');
DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_LENGTE', 'De lengte moet tussen 1 en 50 liggen.','Length must be between 1 and 50.');
/////////////////////////////////////////////////////////////////////////////////////////// VGLD#85984
ALTER TABLE cnt_contract
ADD cnt_contract_inactiveren /* Automatisch sluiten na einddatum (0=nee, 1=ja) */
NUMBER(1)
DEFAULT 0
CONSTRAINT cnt_r_cnt_contract_inactiveren CHECK(cnt_contract_inactiveren IN (0,1));
/////////////////////////////////////////////////////////////////////////////////////////// YAXX#86411
ALTER TABLE alg_kenmerk DROP CONSTRAINT alg_c_alg_kenmerk_niveau1;
ALTER TABLE alg_kenmerk ADD CONSTRAINT alg_c_alg_kenmerk_niveau1 CHECK(alg_kenmerk_niveau IS NOT NULL
AND alg_kenmerk_niveau IN ('R','V','G','T','L','D', 'E'));
DEF_MENUITEM(2, 'lcl_menu_alg_regiokenmerken' , '', 'ALG', 'appl/mgt/alg_kenmerk.asp?level=E', 0, 0, 'WEB_ALGMGT', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_alg_regiokenmerken', 'lcl_menu_alg_districtkenmerken', -10);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#82174
-- Variatie op MENU_INS_AFTER(); nl. zonder fac_menuitems-record
INSERT INTO fac_menu (fac_menu_volgnr,
fac_menu_altlabel,
fac_menu_info,
fac_menu_alturl,
fac_menu_altgroep,
fac_menu_level,
fac_functie_key)
SELECT (SELECT fac_menu_volgnr + 5
FROM fac_menu
WHERE fac_menu_altlabel = 'lcl_menu_session'),
'lcl_menu_get_exchange',
'',
'appl/api/exchange/default.asp',
2,
2,
fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_FACTAB'
AND NOT EXISTS
(SELECT ''
FROM fac_menu
WHERE fac_menu_alturl = 'appl/api/exchange/default.asp');
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#82423
ALTER TABLE alg_gebouw ADD alg_gebouw_virtueel NUMBER(1) DEFAULT(0) NOT NULL;
ALTER TABLE alg_verdieping ADD alg_verdieping_virtueel NUMBER(1) DEFAULT(0) NOT NULL;
ALTER TABLE alg_ruimte ADD alg_ruimte_virtueel NUMBER(1) DEFAULT(0) NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// BAUS#82535
DEF_FAC_SRTNOT('ACTUPD', 0, 'lcl_noti_ACTUPD', 'fac/job.asp?job_key=', '0', 'activiteit', 60);
/////////////////////////////////////////////////////////////////////////////////////////// PCHX#85935
CREATE VIEW prs_v_rap_vervangers AS SELECT * FROM DUAL;
DEF_RAPPORT('PRS', 'WEB_PRSMAN', 0 , 'prs_v_rap_vervangers', 'Vervangers', 'Vervangers per persoon',
'Substitutes', 'Substitutes per person')
/////////////////////////////////////////////////////////////////////////////////////////// LOGC#86231
UPDATE fac_usrrap_cols c1
SET fac_usrrap_cols_sorting = 1
WHERE fac_usrrap_cols_column_name = 'hide_f_sort'
AND fac_usrrap_cols_visible IN ('H', 'I') -- Ik ben [H]idden of [I]nvisible (verborgen/onzichtbaar)
AND fac_usrrap_cols_sorting = 3 -- Sortering staat op automatisch
AND fac_usrrap_cols_volgnr = -- Ik ben de eerste kolom
( SELECT MIN (fac_usrrap_cols_volgnr)
FROM fac_usrrap_cols c2
WHERE c2.fac_usrrap_key = c1.fac_usrrap_key
GROUP BY fac_usrrap_key)
AND NOT EXISTS -- autosorting is van toepassing (alle kolommen staan op 'automatisch' sorteren)
(SELECT ''
FROM fac_usrrap_cols c3
WHERE c3.fac_usrrap_key = c1.fac_usrrap_key
AND fac_usrrap_cols_sorting <> 3);
/////////////////////////////////////////////////////////////////////////////////////////// NOVA#85923
ALTER TABLE mld_typeopdr
ADD mld_typeopdr_confirm_for_send
NUMBER(1)
DEFAULT 0;
ALTER PACKAGE fac COMPILE; // anders (mogelijk nog) invalid en lukt het volgende niet
ALTER PACKAGE fac COMPILE BODY;
UPDATE mld_typeopdr
SET mld_typeopdr_confirm_for_send = fac.getsetting('mld_opdr_confirm_for_send');
/////////////////////////////////////////////////////////////////////////////////////////// CARG#85437
ALTER TABLE bes_disc_params
ADD bes_disc_params_autodeliverdays
NUMBER(4);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#86197
UPDATE fac_setting
SET fac_setting_pvalue =
REPLACE (
REPLACE (fac_setting_pvalue,
'fa-file-import',
'fa-file-upload'),
'fa-file-export',
'fa-file-download')
WHERE fac_setting_name = 'buttons_in_hamburger'
AND fac_setting_pvalue IS NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// MARX#87424
ALTER TABLE prs_bedrijf DROP CONSTRAINT prs_u_prs_bedrijf_naam_upper DROP INDEX;
ALTER TABLE prs_bedrijf ADD CONSTRAINT prs_u_prs_bedrijf_naam_upper UNIQUE(prs_bedrijf_naam_upper, prs_bedrijf_intern, prs_bedrijf_verwijder);
/////////////////////////////////////////////////////////////////////////////////////////// WRTH#87857
UPDATE fac_import_app SET fac_import_app_csv = 1 WHERE fac_import_app_code = 'CNT';
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000
REGISTERONCE('$Id$')
#define POST_RECREATE "DB49to50_post.src"
#include "epilogue.inc"

66
_UP/DB49to50_post.src Normal file
View File

@@ -0,0 +1,66 @@
/* DB49TO45_POST.SRC
*
* Uitgevoerd *na* de recreate zodat we op de nieuwe fac.notifytracking kunnen rekenen
*
* LET OP: De makefile detecteert timestamp van dit bestand niet
*
* $Revision$
* $Id$
*/
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85545
-- Kijk in fac_v_orderqueue_OLD wat nog een laatste keer een notificatie
-- naar een systeemadres moet krijgen
-- Afgekeken van mld_t_mld_opdr_B_IU
BEGIN
FOR bedrijfrec
IN (SELECT b.prs_bedrijf_key,
COALESCE (l1.alg_locatie_key, l2.alg_locatie_key) alg_locatie_key,
COALESCE (l1.alg_locatie_email, l2.alg_locatie_email) alg_locatie_email,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr reference,
d.prs_bedrijf_key persoon_bedrijf_key, -- van de melder, niet de uitvoerende
fac_srtnotificatie_key,
o.mld_opdr_key,
o.mld_typeopdr_key
FROM mld_melding m,
mld_adres ma,
alg_locatie l1,
alg_locatie l2,
prs_perslid p,
prs_v_afdeling d,
prs_bedrijf b,
fac_v_orderqueue_OLD q,
mld_opdr o,
fac_srtnotificatie fsn
WHERE q.xmlnode = 'opdracht'
AND q.key = o.mld_opdr_key
AND b.prs_bedrijf_key = o.mld_uitvoerende_keys
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_adres_key = ma.mld_adres_key(+)
AND ma.alg_locatie_key = l1.alg_locatie_key(+)
AND m.mld_alg_locatie_key = l2.alg_locatie_key(+)
AND d.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = m.prs_perslid_key
AND fac_srtnotificatie_code = 'ORDUPD') -- hardcoded ORDUPD, het gaat uiteindelijk vooral om de XMLnode 'opdracht' in putorders
LOOP
DBMS_OUTPUT.PUT_LINE('Notificeer opdracht ' || bedrijfrec.mld_opdr_key);
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => 'O',
prefkey => bedrijfrec.mld_opdr_key,
ptrackingkey => NULL,
psrtnoti_key => bedrijfrec.fac_srtnotificatie_key,
preference => bedrijfrec.reference,
ptypeopdr_key => bedrijfrec.mld_typeopdr_key,
plocatie_key => bedrijfrec.alg_locatie_key,
psender => bedrijfrec.alg_locatie_email);
END LOOP;
END;
/
// En nu kan hij echt weg
DROP VIEW fac_v_orderqueue_OLD;
REGISTERONCE('$Id$')
COMMIT;

414
_UP/DB50to51.src Normal file
View File

@@ -0,0 +1,414 @@
/*
* Update script van FACILITOR schema
* $Revision$
* $Id$
*/
#include "prologue.inc"
COMMIT;
SET DEFINE OFF
/////////////////////////////////////////////////////////////////////////////////////////// WRTH#87857
UPDATE fac_import_app SET fac_import_app_csv = 1 WHERE fac_import_app_code = 'CNT';
/////////////////////////////////////////////////////////////////////////////////////////// PCHX#86497
ALTER TABLE cnt_disc_params /* Kostensoort verplicht {0=niet verplicht (default), 1=verplicht} */
ADD cnt_disc_params_ksverplicht
NUMBER(1)
DEFAULT 0
NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// SCHG#88197
ALTER TABLE fac_imp_cnt
DROP COLUMN scope;
ALTER TABLE fac_imp_cnt
DROP COLUMN gebouwcode;
ALTER TABLE fac_imp_cnt
ADD ( locatiecode VARCHAR2 (10)
, terreincode VARCHAR2 (12)
, gebouwcode VARCHAR2 (12)
, verdiepingcode NUMBER (3)
, ruimtecode VARCHAR2 (20)
);
/////////////////////////////////////////////////////////////////////////////////////////// BAMG#85636
CREATE TABLE cnt_verlengschema
(
cnt_verlengschema_key
NUMBER(10)
PRIMARY KEY,
cnt_contract_key
NUMBER(10)
CONSTRAINT cnt_r_cnt_contract_key2 REFERENCES cnt_contract(cnt_contract_key),
cnt_verlengschema_volgnr
NUMBER(2),
cnt_verlengschema_verlengtermijn
NUMBER(10)
CONSTRAINT cnt_r_cnt_termijn_key6 REFERENCES cnt_termijn(cnt_termijn_key)
);
CREATE SEQUENCE cnt_s_cnt_verlengschema_key MINVALUE 1;
CREATE INDEX cnt_i_cnt_verlengschema ON cnt_verlengschema(cnt_contract_key);
/////////////////////////////////////////////////////////////////////////////////////////// YASK#88648
UPDATE fac_message
SET fac_message_text = 'Het veld ''Code'' is niet uniek.'
WHERE fac_message_code = 'PRS_U_PRS_AFDELING_UPPER';
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84467
ALTER TABLE mld_kenmerk ADD mld_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = 0;
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 1
WHERE mld_kenmerk_volgnummer <= 800
AND mld_kenmerk_niveau IN ('T', 'D', 'S', 'A');
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 2
WHERE mld_kenmerk_volgnummer <= 900 -- ja ook die <=800
AND mld_kenmerk_niveau IN ('T', 'D', 'S', 'A');
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 4 -- anders ziet BO de normale km niet
WHERE mld_kenmerk_volgnummer <= 800 OR mld_kenmerk_volgnummer >= 900
AND mld_kenmerk_niveau IN ('T', 'D', 'S', 'A');
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 1
WHERE mld_kenmerk_volgnummer <= 100
AND mld_kenmerk_niveau IN ('O', 'P');
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 2
WHERE mld_kenmerk_volgnummer <= 900
AND mld_kenmerk_volgnummer >= 100
AND mld_kenmerk_niveau IN ('O', 'P');
UPDATE mld_kenmerk k
SET mld_kenmerk_rolcode = mld_kenmerk_rolcode + 4
WHERE mld_kenmerk_volgnummer >= 900
AND mld_kenmerk_niveau IN ('O', 'P');
ALTER TABLE bes_kenmerk ADD bes_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE bes_kenmerk k
SET bes_kenmerk_rolcode = 0;
UPDATE bes_kenmerk k
SET bes_kenmerk_rolcode = bes_kenmerk_rolcode + 1
WHERE bes_kenmerk_volgnummer <= 100
AND bes_kenmerk_type IN ('B', 'I');
UPDATE bes_kenmerk k
SET bes_kenmerk_rolcode = bes_kenmerk_rolcode + 4
WHERE bes_kenmerk_volgnummer >= 900
AND bes_kenmerk_type IN ('B', 'I');
ALTER TABLE cnt_kenmerk ADD cnt_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE cnt_kenmerk k
SET cnt_kenmerk_rolcode = 0;
UPDATE cnt_kenmerk k
SET cnt_kenmerk_rolcode = 1
WHERE cnt_kenmerk_volgnummer <= 100;
UPDATE cnt_kenmerk k
SET cnt_kenmerk_rolcode = cnt_kenmerk_rolcode + 2
WHERE cnt_kenmerk_volgnummer >= 100;
ALTER TABLE ins_kenmerk ADD ins_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE ins_kenmerk k
SET ins_kenmerk_rolcode = 0;
UPDATE ins_kenmerk k
SET ins_kenmerk_rolcode = 1
WHERE ins_kenmerk_volgnummer <= 100
AND ins_kenmerk_niveau IN ('D', 'G', 'S');
UPDATE ins_kenmerk k
SET ins_kenmerk_rolcode = ins_kenmerk_rolcode + 2
WHERE ins_kenmerk_volgnummer >= 100
AND ins_kenmerk_volgnummer <= 900
AND ins_kenmerk_niveau IN ('D', 'G', 'S');
UPDATE ins_kenmerk k
SET ins_kenmerk_rolcode = ins_kenmerk_rolcode + 4
WHERE ins_kenmerk_volgnummer >= 900
AND ins_kenmerk_niveau IN ('D', 'G', 'S');
UPDATE ins_kenmerk k
SET ins_kenmerk_rolcode = 1
WHERE ins_kenmerk_volgnummer <= 100
AND ins_kenmerk_niveau IN ('T', 'C', 'E');
ALTER TABLE res_kenmerk ADD res_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE res_kenmerk k
SET res_kenmerk_rolcode = 0;
UPDATE res_kenmerk k
SET res_kenmerk_rolcode = 1
WHERE res_kenmerk_volgnummer <= 800;
UPDATE res_kenmerk k
SET res_kenmerk_rolcode = res_kenmerk_rolcode + 2
WHERE res_kenmerk_volgnummer <= 900;
UPDATE res_kenmerk k
SET res_kenmerk_rolcode = res_kenmerk_rolcode + 4
WHERE res_kenmerk_volgnummer <= 800
OR res_kenmerk_volgnummer >= 900;
// Deze varianten hebben kenmerk_volgnr ipv kenmerk_volgnummer
// (en tegelijkertijd geen verwijzing naar een kenmerksoort)
ALTER TABLE alg_kenmerk ADD alg_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE alg_kenmerk k
SET alg_kenmerk_rolcode = 0;
UPDATE alg_kenmerk k
SET alg_kenmerk_rolcode = 1
WHERE alg_kenmerk_volgnr <= 100;
UPDATE alg_kenmerk k
SET alg_kenmerk_rolcode = alg_kenmerk_rolcode + 2
WHERE alg_kenmerk_volgnr >= 100;
ALTER TABLE bez_kenmerk ADD bez_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE bez_kenmerk k
SET bez_kenmerk_rolcode = 0;
UPDATE bez_kenmerk k
SET bez_kenmerk_rolcode = 3
WHERE bez_kenmerk_volgnr <= 900;
UPDATE bez_kenmerk k
SET bez_kenmerk_rolcode = bez_kenmerk_rolcode + 4
WHERE bez_kenmerk_volgnr >= 900;
ALTER TABLE fin_kenmerk ADD fin_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE fin_kenmerk k
SET fin_kenmerk_rolcode = 1;
ALTER TABLE faq_kenmerk ADD faq_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE faq_kenmerk k
SET faq_kenmerk_rolcode = 1;
ALTER TABLE prs_kenmerk ADD prs_kenmerk_rolcode NUMBER(4) DEFAULT 7 NOT NULL;
UPDATE prs_kenmerk k
SET prs_kenmerk_rolcode = 0;
UPDATE prs_kenmerk k
SET prs_kenmerk_rolcode = 1
WHERE prs_kenmerk_volgnr <= 100;
UPDATE prs_kenmerk k
SET prs_kenmerk_rolcode = prs_kenmerk_rolcode + 2
WHERE prs_kenmerk_volgnr >= 100;
UPDATE prs_kenmerk k
SET prs_kenmerk_rolcode = prs_kenmerk_rolcode + 4 -- Wijzigbaar met PROFIL
WHERE prs_kenmerk_niveau <> 'C' AND prs_kenmerk_volgnr >= 800;
UPDATE prs_kenmerk k
SET prs_kenmerk_rolcode = prs_kenmerk_rolcode + 4 -- Wijzigbaar met EXTREL
WHERE prs_kenmerk_niveau = 'C' AND BITAND (prs_kenmerk_rolcode, 4) = 0;
UPDATE prs_kenmerk k
SET prs_kenmerk_toonbaar = COALESCE (prs_kenmerk_toonbaar, 0) + 2 -- Zichtbaar in profiel
WHERE prs_kenmerk_volgnr > 800
AND prs_kenmerk_volgnr <= 900
AND BITAND (COALESCE (prs_kenmerk_toonbaar, 0), 2) = 0;
ALTER TABLE fac_imp_flex ADD kenmerk_rolcode VARCHAR2(255);
/*
UPDATE ins_kenmerk k
SET ins_kenmerk_omschrijving = (SELECT ins_srtkenmerk_omschrijving FROM ins_srtkenmerk sk WHERE sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key)
WHERE ins_kenmerk_omschrijving IS NULL;
UPDATE mld_kenmerk k
SET mld_kenmerk_omschrijving = (SELECT mld_srtkenmerk_omschrijving FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key)
WHERE mld_kenmerk_omschrijving IS NULL;
UPDATE res_kenmerk k
SET res_kenmerk_omschrijving = (SELECT res_srtkenmerk_omschrijving FROM res_srtkenmerk sk WHERE sk.res_srtkenmerk_key = k.res_srtkenmerk_key)
WHERE res_kenmerk_omschrijving IS NULL;
UPDATE bes_kenmerk k
SET bes_kenmerk_omschrijving = (SELECT bes_srtkenmerk_omschrijving FROM bes_srtkenmerk sk WHERE sk.bes_srtkenmerk_key = k.bes_srtkenmerk_key)
WHERE bes_kenmerk_omschrijving IS NULL;
UPDATE cnt_kenmerk k
SET cnt_kenmerk_omschrijving = (SELECT cnt_srtkenmerk_omschrijving FROM cnt_srtkenmerk sk WHERE sk.cnt_srtkenmerk_key = k.cnt_srtkenmerk_key)
WHERE cnt_kenmerk_omschrijving IS NULL;
*/
/////////////////////////////////////////////////////////////////////////////////////////// AAIT#87224
ALTER TABLE prs_bedrijf MODIFY prs_bedrijf_opmerking VARCHAR2(4000);
ALTER TABLE fac_imp_ext_bedrijf MODIFY prs_bedrijf_opmerking VARCHAR2(4000);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#88353
UPDATE prs_bedrijf SET prs_bedrijf_intern = NULL WHERE prs_bedrijf_intern = 0;
ALTER TABLE prs_bedrijf
ADD CONSTRAINT prs_c_prs_bedrijf_intern CHECK(prs_bedrijf_intern IS NULL OR prs_bedrijf_intern IN (1,2));
/////////////////////////////////////////////////////////////////////////////////////////// LOGC#89125
ALTER TABLE mld_melding_tag ADD mld_melding_tag_datum_acc DATE;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#85585
ALTER TABLE fac_email_setting
ADD (mld_stdmelding_key NUMBER (10) REFERENCES mld_stdmelding (mld_stdmelding_key) ON DELETE CASCADE);
ALTER TABLE fac_email_setting
MODIFY fac_email_setting_attachpath VARCHAR2 (255) DEFAULT '*flexfilespath';
ALTER TABLE fac_email_setting
ADD fac_email_setting_text VARCHAR2 (320);
INSERT INTO fac_setting (fac_setting_module
, fac_setting_flags
, fac_functie_key
, fac_setting_name
, fac_setting_type
, fac_setting_description)
SELECT 'FAC'
, 1
, fac_functie_key
, 'm2m_enabled'
, 'number'
, 'Is Facilitor Mail2Melding configured {0=disabled | 1=enabled}'
FROM fac_functie
WHERE fac_functie_code = 'WEB_FACFAC';
-- Zet nieuwe setting m2m_enabled voor omgeving waar m2m in gebruik is
DECLARE
m2m NUMBER;
BEGIN
SELECT COUNT (*) INTO m2m FROM fac_email_setting;
IF m2m > 0
THEN
UPDATE fac_setting
SET fac_setting_pvalue = '1'
WHERE fac_setting_name = 'm2m_enabled';
END IF;
END;
/
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#88913
DEF_FAC_SRTNOT('ORDSND', 0, 'lcl_noti_ORDSND', 'mld/mld_opdr.asp?opdr_key=', '0', 'opdracht', 60);
-- CNTNEW/ORDNEW/BES2NE aanmaken bij kanalen die nog naar geen enkele notificatie luisteren
INSERT INTO prs_bedrijfadres_srtnoti (prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT prs_bedrijfadres_key, fac_srtnotificatie_key
FROM fac_srtnotificatie, prs_bedrijfadres ba
WHERE fac_srtnotificatie_code = 'CNTNEW'
AND prs_bedrijfadres_type = 'C'
AND NOT EXISTS
(SELECT 1
FROM prs_bedrijfadres_srtnoti ba_srt
WHERE ba_srt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key);
INSERT INTO prs_bedrijfadres_srtnoti (prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT prs_bedrijfadres_key, fac_srtnotificatie_key
FROM fac_srtnotificatie, prs_bedrijfadres ba
WHERE fac_srtnotificatie_code IN ('ORDNEW', 'ORDSND')
AND prs_bedrijfadres_type = 'O'
AND NOT EXISTS
(SELECT 1
FROM prs_bedrijfadres_srtnoti ba_srt
WHERE ba_srt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key);
INSERT INTO prs_bedrijfadres_srtnoti (prs_bedrijfadres_key, fac_srtnotificatie_key)
SELECT prs_bedrijfadres_key, fac_srtnotificatie_key
FROM fac_srtnotificatie, prs_bedrijfadres ba
WHERE fac_srtnotificatie_code = 'BES2NE'
AND prs_bedrijfadres_type = 'B'
AND NOT EXISTS
(SELECT 1
FROM prs_bedrijfadres_srtnoti ba_srt
WHERE ba_srt.prs_bedrijfadres_key = ba.prs_bedrijfadres_key);
-- RESNEW luisterde al nooit automatisch
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#87091
ALTER TABLE fac_nieuws ADD
mld_melding_key
NUMBER(10) CONSTRAINT mld_r_mld_melding_key8 REFERENCES mld_melding(mld_melding_key) ON DELETE SET NULL;
UPDATE fac_setting
SET fac_setting_pvalue = fac_setting_pvalue || ',fa-megaphone'
WHERE fac_setting_pvalue IS NOT NULL
AND fac_setting_name = 'buttons_in_hamburger';
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#89182
INSERT INTO fac_locale (fac_locale_lang,
fac_locale_kolomkeyval,
fac_locale_kolomnaam,
fac_locale_tekst)
SELECT 'EN',
fac_usrrap_key,
'FAC_USRRAP_OMSCHRIJVING',
'UDR: Key management'
FROM fac_usrrap
WHERE fac_usrrap_view_name = 'ins_v_rap_sle_toegang'
AND fac_usrrap_omschrijving = 'SLE: Sleuteloverzicht'
AND fac_usrrap_info = 'Overzicht van sleutels en bezitters';
INSERT INTO fac_locale (fac_locale_lang,
fac_locale_kolomkeyval,
fac_locale_kolomnaam,
fac_locale_tekst)
SELECT 'EN',
fac_usrrap_key,
'FAC_USRRAP_INFO',
'Basic report for key management'
FROM fac_usrrap
WHERE fac_usrrap_view_name = 'ins_v_rap_sle_toegang'
AND fac_usrrap_omschrijving = 'SLE: Sleuteloverzicht'
AND fac_usrrap_info = 'Overzicht van sleutels en bezitters';
UPDATE fac_usrrap
SET fac_usrrap_omschrijving = 'UDR: Sleuteloverzicht',
fac_usrrap_info = 'Basisrapport voor sleutels',
fac_usrrap_groep = 'BASIS'
WHERE fac_usrrap_view_name = 'ins_v_rap_sle_toegang'
AND fac_usrrap_omschrijving = 'SLE: Sleuteloverzicht'
AND fac_usrrap_info = 'Overzicht van sleutels en bezitters'
AND fac_usrrap_groep IS NULL;
/////////////////////////////////////////////////////////////////////////////////////////// FZKH#88777
ALTER TABLE fac_activiteit DROP CONSTRAINT fac_c_fac_activiteit_eenheid;
ALTER TABLE fac_activiteit
ADD CONSTRAINT fac_c_fac_activiteit_eenheid CHECK (fac_activiteit_eenheid IN (1,2,3,4,5) OR fac_activiteit_eenheid IS NULL);
DEF_MENUITEM(1, 'lcl_menu_fac_jobs_templates_fo', '', 'MLD', 'appl/fac/job_search.asp?urole=fo&template=1', 0, 0, 'WEB_MLDFOF', 'W', '1', '');
DEF_MENUITEM(2, 'lcl_menu_fac_jobs_templates', '', 'MLD', 'appl/fac/job_search.asp?template=1', 0, 0, 'WEB_MLDMGT', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_fac_jobs_templates', 'lcl_menu_mld_workflows', 1);
/////////////////////////////////////////////////////////////////////////////////////////// FZKH#87243
UPDATE mld_kenmerk k1
SET k1.mld_kenmerk_inlijst = k1.mld_kenmerk_inlijst + 2
WHERE k1.mld_kenmerk_key IN
(SELECT k2.mld_kenmerk_key
FROM mld_kenmerk k2, mld_srtkenmerk sk, fac_kenmerkdomein kd
WHERE k2.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND k2.mld_kenmerk_verwijder IS NULL
AND sk.mld_srtkenmerk_verwijder IS NULL
AND kd.fac_kenmerkdomein_verwijder IS NULL
AND k2.mld_kenmerk_show_expr IS NULL
AND k2.mld_kenmerk_toonbaar IS NULL
AND k2.mld_kenmerk_niveau IN ('A',
'T',
'D',
'S')
AND sk.mld_srtkenmerk_kenmerktype IN ('r', 'R')
AND NOT EXISTS
(SELECT ''
FROM fac_usrtab u1
WHERE u1.fac_usrtab_parentkey IS NOT NULL
AND u1.fac_usrtab_key = kd.fac_usrtab_key)
AND NOT EXISTS
(SELECT ''
FROM fac_usrtab u1, fac_usrtab u2
WHERE u2.fac_usrtab_parentkey =
u1.fac_usrtab_key
AND u1.fac_usrtab_key = kd.fac_usrtab_key));
/////////////////////////////////////////////////////////////////////////////////////////// ALLR#80285
ALTER TABLE res_ruimte
ADD res_ruimte_limiet NUMBER (3);
/////////////////////////////////////////////////////////////////////////////////////////// BLCC#88329
ALTER TABLE cnt_disc_params
ADD cnt_disc_params_approve_new NUMBER(1) DEFAULT 0 NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// VLKC#89252
INSERT INTO fac_setting (fac_setting_module,
fac_setting_name,
fac_setting_type,
fac_setting_description,
fac_setting_default,
fac_setting_pvalue)
VALUES('MLD',
'mld_pessismistisch_hergoedkeuren',
'number',
'Hergoedkeuren als de opdrachtkosten boven de bestellimiet, of boven de goedkeuringsvrijstelling komen {1=ja | 0=alleen als beiden waar zijn}',
'0',
(SELECT fac_setting_pvalue FROM fac_setting WHERE fac_setting_name = 'fac_reserved_number2'));
UPDATE fac_setting
SET fac_setting_pvalue = ''
WHERE fac_setting_name = 'fac_reserved_number2';
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000
REGISTERONCE('$Id$')
#include "epilogue.inc"

143
_UP/DB51to52.src Normal file
View File

@@ -0,0 +1,143 @@
/*
* Update script van FACILITOR schema
* $Revision$
* $Id$
*/
#include "prologue.inc"
COMMIT;
SET DEFINE OFF
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#89720
BEGIN
adm.trydrop('INDEX prs_i_prs_bedrijfadres2');
END;
/
CREATE UNIQUE INDEX prs_i_prs_bedrijfadres2 ON prs_bedrijfadres(prs_bedrijf_key, prs_bedrijfadres_type, mld_typeopdr_key, ins_discipline_key, alg_locatie_key, alg_district_key, prs_bedrijf_key2, prs_bedrijfadres_startdatum);
UPDATE fac_message
SET fac_message_text = 'Combinatie bedrijf, discipline, locatie, opdrachttype, adrestype is niet uniek'
WHERE fac_message_code = 'PRS_I_PRS_BEDRIJFADRES2';
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#90099
BEGIN
adm.tryalter('TABLE prs_bedrijf DROP CONSTRAINT prs_c_prs_bedrijf_intern');
END;
/
UPDATE prs_bedrijf SET prs_bedrijf_intern = NULL WHERE prs_bedrijf_intern = 0;
ALTER TABLE prs_bedrijf
ADD CONSTRAINT prs_c_prs_bedrijf_intern CHECK(prs_bedrijf_intern IS NULL OR prs_bedrijf_intern IN (1,2));
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#89903
CREATE UNIQUE INDEX prs_i_prs_bedrijfadres_srtnoti1 ON prs_bedrijfadres_srtnoti(prs_bedrijfadres_key, fac_srtnotificatie_key);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#90097
UPDATE alg_gebouw
SET mld_vrije_dagen_id = NULL
WHERE mld_vrije_dagen_id = '-1';
/////////////////////////////////////////////////////////////////////////////////////////// MARX#90181
ALTER TABLE prs_perslid
ADD prs_perslid_errorhandling -- 0=200 on API1 error, 1=400 on error
NUMBER (10)
DEFAULT 1
NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#88579
DECLARE
altersql VARCHAR (4000);
BEGIN
FOR curs IN ( SELECT c.*
FROM user_tab_columns c JOIN user_tables t ON t.table_name = c.table_name
WHERE char_used = 'B'
ORDER BY c.table_name, c.column_name)
LOOP
-- FAC_IMP_OPROGNOSE z<>n kolom ELEMENT is een enigszins reserved woord lijkt. Daarom quotes
altersql :=
'alter table ' || curs.table_name || ' MODIFY "' || curs.column_name || '" VARCHAR (' || curs.data_length || ' CHAR)';
DBMS_OUTPUT.PUT_LINE (altersql);
EXECUTE IMMEDIATE altersql;
END LOOP;
END;
/
DROP INDEX INS_I_INS_KENMERK_KENMERK2;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#90179
ALTER TABLE fac_groep MODIFY (fac_groep_omschrijving VARCHAR2(60), fac_groep_upper VARCHAR2(60));
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#89765
ALTER PACKAGE fac COMPILE; // anders (mogelijk nog) invalid en lukt het volgende niet
ALTER PACKAGE fac COMPILE BODY;
UPDATE mld_melding
SET mld_melding_actiecode = mld_melding_actiecode - 128 -- bit 1, 2 en 256 toegestaan
WHERE mld_melding_status = 5
AND BITAND(mld_melding_actiecode, 128) = 128;
/////////////////////////////////////////////////////////////////////////////////////////// SGGR#81078
ALTER TABLE ins_srtdeel ADD ins_srtdeel_statestepsize NUMBER (6, 3);
ALTER TABLE ins_srtdeel ADD ins_srtdeel_stateanchor NUMBER (6, 3);
ALTER TABLE ins_deel_state_history ADD ins_deel_state_value NUMBER(16,6);
CREATE VIEW ins_v_udr_sensordata AS SELECT * FROM DUAL;
DEF_RAPPORT('BASIS', 'WEB_UDRMAN', 32, 'ins_v_udr_sensordata', 'UDR: Actuele Sensordata', 'Basisrapport voor actuele data van sensoren',
'UDR: Actual Sensor data', 'Basic report current data from sensors')
/////////////////////////////////////////////////////////////////////////////////////////// PROR#89199
ALTER TABLE mld_stdmelding ADD mld_stdmelding_objects_allowed NUMBER(1) DEFAULT(2) NOT NULL;
ALTER TABLE fac_imp_mld ADD mld_stdmelding_objects_allowed NUMBER(1);
/////////////////////////////////////////////////////////////////////////////////////////// DLLG#90075
ALTER TABLE alg_locatie ADD alg_locatie_timezone VARCHAR2(40);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#88619
-- cascadeert vanzelf door naar fac_menu
DELETE FROM fac_menuitems
WHERE fac_menuitems_label LIKE 'lcl_menu_____kenmerkdomeinen';
DEF_MENUITEM(2, 'lcl_menu_kenmerkdomeinen' , '', 'FAC', 'appl/fac/fac_kenmerkdomein_search.asp', 0, 0, 'WEB_PRSSYS', 'W', '1', '');
MENU_INS_AFTER('lcl_menu_kenmerkdomeinen', 'lcl_menu_fac_eigen_tabellen', 1);
/////////////////////////////////////////////////////////////////////////////////////////// LOGC#90445
ALTER TABLE mld_melding_tag ADD mld_melding_tag_actief NUMBER(2) DEFAULT 1 NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#79801
ALTER TABLE fac_imp_onrgoed1
ADD ( alg_gebouw_adres VARCHAR2(50)
, alg_gebouw_postcode VARCHAR2(12)
);
/////////////////////////////////////////////////////////////////////////////////////////// MARX#89543
DROP INDEX mld_i_mld_opdr_materiaal1 ;
CREATE INDEX mld_i_mld_opdr_materiaal1 ON mld_opdr_materiaal(mld_opdr_key);
/////////////////////////////////////////////////////////////////////////////////////////// UWVA#88793
ALTER TABLE res_srtartikel_onrgoed ADD res_srtartikel_og_ingangsdatum DATE;
ALTER TABLE res_srtartikel_onrgoed ADD res_srtartikel_og_vervaldatum DATE;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84701
ALTER TABLE prs_bedrijfadres
ADD prs_bedrijfadres_template VARCHAR(128)
DEFAULT 'generic'
NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#55847
ALTER TABLE fac_notificatie
ADD fac_notificatie_email_cc VARCHAR(4000);
ALTER TABLE fac_notificatie
ADD fac_notificatie_email_bcc VARCHAR(4000);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#87173
ALTER TABLE fac_imp_inspectie ADD ctr_discipline_omschrijving VARCHAR2(60);
/////////////////////////////////////////////////////////////////////////////////////////// MARX#90312
ALTER TABLE fac_email_setting
ADD fac_email_setting_ai_prompt VARCHAR2(4000);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000
REGISTERONCE('$Id$')
#include "epilogue.inc"

View File

@@ -20,50 +20,6 @@ DELETE
WHERE fac_locale_kolomnaam LIKE 'FAC_IMPORT_APP_%'
AND fac_locale_kolomkeyval NOT IN (SELECT fac_import_app_key FROM fac_import_app);
-- Schema-naam uit MLD_T_UITVOERTIJD verwijderen.
--
-- data_default is van het datatype LONG. Daarop kan geen string-bewerking als INSTR(), SUBSTR() en REPLACE() worden gedaan.
-- Daarom moeten de benodigde gegevens eerst in een tijdelijke tabel ingelezen worden zodat het datatype VARCHAR2 wordt. Voor
-- het huidige doel (de owner van MLD_T_UITVOERTIJD verwijderen) is de stringlengte van 1000 voldoende.
-- Met FETCH .. BULK COLLECT INTO .. worden alle records die volgen uit de query in 1 keer opgehaald. Dit is sneller dan een fetch in een loop.
--
DECLARE
TYPE ut_row IS RECORD
( tab_name VARCHAR2(100)
, col_name VARCHAR2(100)
, data_default VARCHAR2(1000)
);
TYPE ut_tab IS TABLE OF ut_row
INDEX BY PLS_INTEGER;
qry_txt VARCHAR2(1000);
upd_txt VARCHAR2(1000);
l_table ut_tab;
l_cursor SYS_REFCURSOR;
l_pos INTEGER;
l_default VARCHAR2(1000);
BEGIN
qry_txt := 'SELECT table_name, column_name, data_default'
|| ' FROM user_tab_columns'
|| ' WHERE data_type = ''MLD_T_UITVOERTIJD''';
OPEN l_cursor FOR qry_txt;
FETCH l_cursor BULK COLLECT INTO l_table;
CLOSE l_cursor;
FOR indx IN 1 .. l_table.COUNT
LOOP
l_pos := INSTR(l_table(indx).data_default, '"."');
IF (l_pos > 0)
THEN
l_default := REPLACE(REPLACE(SUBSTR(l_table(indx).data_default, l_pos+3, 100), '"', ''),'''','');
upd_txt := 'ALTER TABLE '|| l_table(indx).tab_name ||' MODIFY '|| l_table(indx).col_name ||' DEFAULT '|| l_default;
dbms_output.put_line(upd_txt);
EXECUTE IMMEDIATE upd_txt;
END IF;
END LOOP;
END;
/
///////////////////////////// now recreate all views, triggers etc acc to the latest state ///////
#include "recreate.inc"
@@ -73,6 +29,7 @@ END;
BEGIN
fac.fac_cleanup;
adm.fix_mld_t_uitvoertijd();
END;
/

View File

@@ -62,17 +62,17 @@ END;
DECLARE
tekst VARCHAR2 (1000);
charset VARCHAR2 (1000);
BEGIN
CASE ASCII('<27>')
WHEN 191 THEN tekst :='WE8ISO8859P1';
WHEN 128 THEN tekst :='WE8MSWIN1252'; -- De enige goede
ELSE tekst :='UNKNOWN ';
END CASE;
IF tekst <> 'WE8MSWIN1252' THEN
SELECT MIN(client_charset)
INTO charset
FROM v$session_connect_info
WHERE sid = sys_context('USERENV','SID');
IF charset <> 'WE8MSWIN1252' THEN
tekst := '=================================================================' || CHR(10)
|| 'Wrong clientside NLS_LANG ['|| TO_CHAR(ASCII('<27>')) ||'] for this Facilitor upgrade.' || CHR(10)
|| 'WE8MSWIN1252 is required, we suspect '|| tekst || CHR(10)
|| 'Please enter before you start SQL*Plus:' || CHR(10)
|| 'Wrong clientside NLS_LANG for this Facilitor upgrade.' || CHR(10)
|| 'WE8MSWIN1252 is required, we suspect '|| charset || CHR(10)
|| 'Please enter this before you start SQL*Plus:' || CHR(10)
|| ' on Windows:' || CHR(10)
|| ' SET NLS_LANG=.WE8MSWIN1252' || CHR(10)
|| ' on Unix:' || CHR(10)
@@ -98,7 +98,7 @@ PROMPT [&fcltlogfile]
PROMPT
PROMPT ************************************************************************
PROMPT UPGRADE of Facilitor schema to version EVALCONCAT(DB, _DBV) $Revision$
PROMPT Copyright (c) 1996-2024 Aareon Nederland B.V. All rights reserved.
PROMPT Copyright (c) 1996-2025 Aareon Nederland B.V. All rights reserved.
PROMPT
SELECT 'The current version of Facilitor@' || USER || ' is: ' || fac.getdbversion()
FROM DUAL;
@@ -130,6 +130,7 @@ variable update_start number
exec :update_start := dbms_utility.get_time
/* om zeker te weten dat eventuele conversies goed gaan */
ALTER SESSION SET nls_territory='america';
ALTER SESSION SET nls_length_semantics='char';
SELECT adm.systeminfo FROM DUAL;

View File

@@ -135,7 +135,7 @@ function checkauto(tbl)
while (!oRs.Eof)
{
var col = oRs("COLUMN_NAME").Value;
if (!col.match(/(FAC_WIDGET_TYPEREFKEY|_KEY|_VOLGNR|_SALT|_HASH|_OTPSECRET|AUT_IDP_SECRET|APIKEY|RES_RUIMTE_SYNCSTATE|FAC_LOCALE_KOLOMKEYVAL)$/))
if (!col.match(/(FAC_WIDGET_TYPEREFKEY|_KEY|_VOLGNR|_SALT|_HASH|_OTPSECRET|AUT_IDP_SECRET|APIKEY|RES_RUIMTE_SYNCSTATE|MLD_MELDING_OMSCHRIJVING|FAC_LOCALE_KOLOMKEYVAL)$/))
cols.push(col)
oRs.MoveNext();
}

View File

@@ -1,5 +0,0 @@
:: Achteraan d:\Backup\BackupAppl.bat op Jos's PC staat deze gescheduled
SET DBVER=48
SET DBPRV=47
SET DBPRVPATH=z:\Archief\FACILITOR\2024.1\DB47\FCLT47.sql
@testworkCOMMON.bat trunk %*

View File

@@ -1 +1 @@
testwork48.bat %*
testwork50.bat %*