283 Commits
DB50 ... main

Author SHA1 Message Date
Erik Groener
97b2da6e0c UWVA#91726 Kolom ontbreekt in rapport BEHEER RES: verbruiksartikelen, toevoegen?
svn path=/Database/trunk/; revision=71145
2025-12-04 09:12:30 +00:00
Erik Groener
fe7518e0a5 UWVA#91727 Export Verbruiksartikelen toont minder regels dan weergegeven in scherm
svn path=/Database/trunk/; revision=71144
2025-12-04 09:10:27 +00:00
Erik Groener
b7eb8358c0 UWVA#91726 Kolom ontbreekt in rapport BEHEER RES: verbruiksartikelen, toevoegen?
svn path=/Database/trunk/; revision=71143
2025-12-04 09:05:22 +00:00
Erik Groener
e3988a5d94 UWVA#91726 Kolom ontbreekt in rapport BEHEER RES: verbruiksartikelen, toevoegen?
svn path=/Database/trunk/; revision=71142
2025-12-04 08:13:40 +00:00
Erik Groener
1d62bb6a5f YKPN#88810 Uitschakelen van het kunnen boeken van facturen op een contract
svn path=/Database/trunk/; revision=71137
2025-12-03 14:35:03 +00:00
Erik Groener
c308e8efd6 YKPN#88810 Uitschakelen van het kunnen boeken van facturen op een contract
svn path=/Database/trunk/; revision=71130
2025-12-03 12:54:47 +00:00
Maykel Geerdink
ab52b77ce1 IVET#90517: Exportopties voor uitgebreide kennisbankinformatie.
svn path=/Database/trunk/; revision=71117
2025-12-02 14:13:41 +00:00
Maykel Geerdink
851d2e495d SGGR#90860: PUT /api2/objects/33444.json eindigt met 404 status.
svn path=/Database/trunk/; revision=71073
2025-11-27 11:25:45 +00:00
Maykel Geerdink
71ea710f10 HGCU#91616: View ctr_v_monthly_recurring_tasks aanpassen i.v.m. foutieve status in jaaroverzicht voor periodieke check ADS meldingen.
svn path=/Database/trunk/; revision=71068
2025-11-27 08:34:20 +00:00
dcf2e53096 FCLT#91672 ai_apikey onzichtbaar maken in de GUI voor iedereen zonder WEB_FACFAC
svn path=/Database/trunk/; revision=71062
2025-11-26 14:20:43 +00:00
0335cb0100 FCLT#91672 Settings alvast aangepast
svn path=/Database/trunk/; revision=71061
2025-11-26 14:01:01 +00:00
Erik Groener
da6d7cf574 AAIT#88977 Mutaties van Admin inzien
svn path=/Database/trunk/; revision=71050
2025-11-25 10:54:30 +00:00
8d5bcf002e FCLT#91143 spelvaudten
svn path=/Database/trunk/; revision=71002
2025-11-19 10:01:05 +00:00
Jos Groot Lipman
d342469376 FCLT#72726 /.well-known/security.txt toevoegen
svn path=/Database/trunk/; revision=70991
2025-11-18 15:58:36 +00:00
Jos Groot Lipman
659e21dc93 Merge 2025.3 DB52b patches
svn path=/Database/trunk/; revision=70979
2025-11-18 10:12:21 +00:00
Erik Groener
a38ed43fa5 VNOG#87525 Vraag over CC/BCC in Facilitor-mails
setting moet niet in upgrade script

svn path=/Database/trunk/; revision=70941
2025-11-14 07:35:26 +00:00
Jos Groot Lipman
0f9b2b122b FCLT#91143 Alleen commentaar bij potentieel misleidende code
svn path=/Database/trunk/; revision=70928
2025-11-13 13:33:36 +00:00
Erik Groener
18750cd22e FZKH#91268 Optie 'Verwijderen' ontbreekt bij opdrachten onder sjabloon-melding in Facilitor
svn path=/Database/trunk/; revision=70922
2025-11-13 09:32:29 +00:00
Jos Groot Lipman
b171d60484 FCLT#90981 XML <header revision="705"> klopt niet sinds SVN als alternatief voor Visual SourceSafe is ingezet
svn path=/Database/trunk/; revision=70877
2025-11-10 16:20:31 +00:00
Jos Groot Lipman
2642312a53 Merge 2025.3 DB52a patches
svn path=/Database/trunk/; revision=70850
2025-11-06 14:02:13 +00:00
Maykel Geerdink
721d8b0dfa YAXX#90069: Statusfout bij afgemelde offerteaanvragen voor goedkeuring.
svn path=/Database/trunk/; revision=70849
2025-11-06 14:01:16 +00:00
Erik Groener
2362bed630 VNOG#87525 Vraag over CC/BCC in Facilitor-mails
svn path=/Database/trunk/; revision=70841
2025-11-06 10:12:54 +00:00
Erik Groener
d5056820af FMHN#87779 Gebruiker eerder waarschuwen bij meldingen op gebouwen zonder die dienst
svn path=/Database/trunk/; revision=70798
2025-11-04 11:19:02 +00:00
baf8460546 FCLT#91143 Bij de tracking-text van het automatisch toewijzen van een geplande melding aan een actieve behandelaar, moet in de lcl 'lcl_mld_is_mldabh_to' de {0} vervangen worden door de naam vd behandelaar, net zoals .format() dat in de ASP code doet. Dat is hier aangepast
svn path=/Database/trunk/; revision=70791
2025-11-04 09:09:53 +00:00
Erik Groener
efdccec90f YAXX#89674 Verschillende statusbehoeften bij inkooporders, probleem doorbelastingsfouten
svn path=/Database/trunk/; revision=70752
2025-10-29 15:02:17 +00:00
Maykel Geerdink
117194936a FCLT#89456: Wijzigingen en verbeteringsvoorstellen MJOB module (Punt 31).
svn path=/Database/trunk/; revision=70740
2025-10-28 16:26:02 +00:00
Maykel Geerdink
1c185efa15 AAGN#88039: Performance issue bij assetmanagement en draaien/exporteren taken-overzicht.
svn path=/Database/trunk/; revision=70739
2025-10-28 15:57:38 +00:00
Maykel Geerdink
2e589c5805 VNOG#89057: Vervaldatum van hoofdobject ook door laten werken in onderdelen.
svn path=/Database/trunk/; revision=70736
2025-10-28 15:18:46 +00:00
Maykel Geerdink
eecb6c46c4 AAGN#88039: Performance issue bij assetmanagement en draaien/exporteren taken-overzicht.
svn path=/Database/trunk/; revision=70732
2025-10-28 11:17:17 +00:00
Erik Groener
099345c0d2 DJIN#86656 Audit-trail/tracking toevoegen voor mutaties in Facilitor
svn path=/Database/trunk/; revision=70707
2025-10-27 10:44:40 +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
68 changed files with 9868 additions and 3812 deletions

View File

@@ -203,6 +203,9 @@ 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;

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)
@@ -250,6 +252,10 @@ CREATE_TABLE(alg_terreinsector,0)
-- prs_perslid_key_verantw2
-- NUMBER(10)
-- CONSTRAINT alg_r_prs_perslid_key4 REFERENCES prs_perslid(prs_perslid_key),
-- in MLD_TAB.SRC:
-- mld_dienstniveau_key
-- NUMBER(10)
-- REFERENCES mld_dienstniveau(mld_dienstniveau_key) ON DELETE SET NULL,
CONSTRAINT alg_u_alg_terreinsector_upper UNIQUE(alg_locatie_key, alg_terreinsector_upper, alg_terreinsector_verwijder)
);
@@ -716,6 +722,9 @@ CREATE_TABLE(alg_kenmerk,0)
,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

@@ -66,10 +66,12 @@ AS
RETURN NUMBER;
PROCEDURE notifybestellingbedrijven (pbestelkey NUMBER,
ptrackingkey NUMBER);
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifybestelopdrbedrijven (pbestelopdrkey NUMBER,
ptrackingkey NUMBER);
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PROCEDURE autodeliver;
@@ -2226,14 +2228,16 @@ AS
END;
PROCEDURE notifybestellingbedrijven (pbestelkey NUMBER,
ptrackingkey NUMBER)
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
NULL; -- TODO?
END;
PROCEDURE notifybestelopdrbedrijven (pbestelopdrkey NUMBER,
ptrackingkey NUMBER)
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
FOR bedrijfrec IN (SELECT b.prs_bedrijf_key,
@@ -2245,7 +2249,6 @@ AS
mld_adres ma,
alg_locatie l
WHERE o.bes_bestelopdr_key = pbestelopdrkey
AND 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 ( b.prs_bedrijf_key = o.prs_bedrijf_key -- type 'B'
@@ -2261,7 +2264,8 @@ AS
prefkey => pbestelopdrkey,
ptrackingkey => ptrackingkey,
preference => bedrijfrec.bes_bestelopdr_id,
plocatie_key => bedrijfrec.alg_locatie_key);
plocatie_key => bedrijfrec.alg_locatie_key,
pnotidelay => pnotidelay);
END LOOP;
END;

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,
@@ -607,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

@@ -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;
/
@@ -347,7 +354,7 @@ CREATE OR REPLACE PACKAGE BODY bez AS
AND rd.res_rsv_deel_tot > lbegin + 1 / 1440 - lpreposttime
AND d.res_discipline_key = bez_parkingdiscipline_key) aantal
FROM res_v_aanwezigdeel d,
ins_deel id,
ins_v_deelenonderdeel id,
alg_v_aanwezigterreinsector t,
alg_locatie l
WHERE d.res_ins_deel_key = id.ins_deel_key
@@ -409,7 +416,7 @@ CREATE OR REPLACE PACKAGE BODY bez AS
AND d.res_discipline_key = bez_parkingdiscipline_key)
aantal
FROM res_v_aanwezigdeel d,
ins_deel id,
ins_v_deelenonderdeel id,
alg_v_allonroerendgoed og,
alg_v_aanwezigterreinsector t,
alg_locatie l
@@ -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

@@ -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

@@ -132,8 +132,8 @@ AS
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)
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
@@ -579,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,
@@ -673,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)
@@ -790,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,
@@ -848,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
@@ -860,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
@@ -892,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

@@ -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,6 +6,7 @@
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;
@@ -22,7 +23,8 @@ CREATE OR REPLACE PACKAGE cnt AS
PROCEDURE remove(p_contract_key IN NUMBER);
PROCEDURE notifycontractbedrijven (pcntkey NUMBER,
ptrackingkey NUMBER);
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PRAGMA RESTRICT_REFERENCES (cnt_contract_status, WNDS, WNPS);
END cnt;
@@ -37,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
@@ -50,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
@@ -68,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;
@@ -76,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';
@@ -99,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.
@@ -246,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
@@ -270,7 +295,11 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
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
@@ -283,6 +312,45 @@ 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;
@@ -295,7 +363,12 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
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 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
@@ -329,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);
@@ -351,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
@@ -367,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;
@@ -610,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(+)
@@ -700,7 +774,8 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
END;
PROCEDURE notifycontractbedrijven (pcntkey NUMBER,
ptrackingkey NUMBER)
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
FOR bedrijfrec
@@ -708,11 +783,15 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
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,
COALESCE (l.alg_locatie_email, ins_discipline_email)
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),
@@ -756,6 +835,8 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
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
@@ -769,7 +850,10 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
prefkey => pcntkey,
ptrackingkey => ptrackingkey,
preference => bedrijfrec.cnt_contract_nummer_intern,
plocatie_key => bedrijfrec.alg_locatie_key);
pdiscipline_key => bedrijfrec.ins_discipline_key,
plocatie_key => bedrijfrec.alg_locatie_key,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
pnotidelay => pnotidelay);
END LOOP;
END;

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
@@ -369,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
@@ -450,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

431
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; ~ \
@@ -803,9 +404,21 @@ FOR EACH ROW ~\
:new.column, ~\
action);
#define AUDIT_VALUE_T(table, tablekey, column) ~\
aud.auditaction(STRINGIZE(table), ~\
:old.tablekey, ~\
:new.tablekey, ~\
STRINGIZE(column), ~\
:old.column.tijdsduur||' '||:old.column.eenheid, ~\
:new.column.tijdsduur||' '||:new.column.eenheid, ~\
action);
#define AUDIT_VALUE(table, column) ~\
AUDIT_VALUE_K(table, table##_key, column)
#define AUDIT_VAL_T(table, column) ~\
AUDIT_VALUE_T(table, table##_key, column)
#define AUDIT_END() ~\
END; ~\
/ ~ \

View File

@@ -401,7 +401,7 @@ AS
m.ins_srtcontrole_periode,
m.ins_srtcontrole_bits,
1,
0),
0) volgendedatum,
m.discipline,
m.soort,
m.groep,
@@ -439,6 +439,23 @@ AS
OR ig.vervaldatum > ig.volgendedatum)
AND ig.volgendedatum BETWEEN TRUNC(ADD_MONTHS(SYSDATE, -12), 'YYYY') AND TRUNC(ADD_MONTHS(SYSDATE, 24), 'YYYY')
AND TRUNC(ig.volgendedatum, 'YYYY') < TRUNC(ADD_MONTHS(SYSDATE, 24), 'YYYY') -- 1 januari in het jaar dat 2 jaar verder ligt niet meetellen.
AND TO_CHAR(ig.volgendedatum, 'YYYY-MM') NOT IN (SELECT TO_CHAR(di.ins_deelsrtcontrole_datum, 'YYYY-MM') jaarmaand -- Toekomstige inspecties mogen niet al zijn uitgevoerd. Ofwel 1c mag geen 2 bevatten in dezelfde maand.
FROM ins_v_udr_deelinspect di,
ins_srtcontrole sc,
ctr_disc_params dp
WHERE di.ins_srtcontrole_key = sc.ins_srtcontrole_key
AND sc.ctr_discipline_key = dp.ctr_ins_discipline_key
AND dp.ctr_disc_params_ismjob = 0
AND sc.ins_srtcontrole_eenheid > 2
AND di.ins_deelsrtcontrole_datum BETWEEN TRUNC(ADD_MONTHS(SYSDATE, -12), 'YYYY')
AND TRUNC(ADD_MONTHS(SYSDATE, 24), 'YYYY')
AND di.ins_deelsrtcontrole_key NOT IN (SELECT MAX(ins_deelsrtcontrole_key) -- Inspecties die zijn uitgevoerd, uitgezonderd de laatste (2), want die zitten onder 1a.
FROM ins_deelsrtcontrole id2
WHERE id2.ins_deel_key = di.deel_key
AND id2.ins_srtcontrole_key = di.ins_srtcontrole_key
AND id2.ins_scenario_key = 1)
AND di.deel_key = ig.ins_deel_key
AND di.ins_srtcontrole_key = ig.ins_srtcontrole_key)
UNION ALL
-- 2) Inspecties die vorig jaar en dit jaar zijn uitgevoerd, uitgezonderd de laatste.
SELECT di.discipline,

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'));

View File

@@ -25,7 +25,7 @@ INSERT INTO fac_version
// 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');
@@ -1521,7 +1521,7 @@ DEF_FAC_MESSAGE ('PRS_C_PRS_KENMERK_MAX_C' , 'Nieuwe max.waarde van dit kenmerks
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, district, locatie, opdrachttype, adrestype is niet uniek', 'Combination company, district, location, order type, address type is not unique');
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.');
@@ -1550,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.');
@@ -2059,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);
@@ -2094,7 +2095,10 @@ DEF_FAC_SRTNOT('PRSLOG', 0, 'lcl_noti_PRSLOG', 'prs/prs_perslid.asp?prs_key=',
DEF_FAC_SRTNOT('PRSKPU', 1, 'lcl_noti_PRSKPU', 'mgt/prs_kostenplaats.asp?mode=show&id=', '0', 'kostenplaats', 10);
DEF_FAC_SRTNOT('PRSUPB', 0, 'lcl_noti_PRSUPB', 'prs/prs_bedrijf.asp?bedrijf_key=', '0', 'bedrijf', 10);
DEF_FAC_SRTNOT('PRSUPT', 0, 'lcl_noti_PRSUPT', 'prs/prs_bedrijfadres.asp?badr_key=', '0', 'bedrijfadres', 10);
DEF_FAC_SRTNOT('PRSANO', 0, 'lcl_noti_PRSANO', 'prs/prs_perslid.asp?prs_key=' , '0', 'perslid', 10);
DEF_FAC_SRTNOT('PRSANO', 0, 'lcl_noti_PRSANO', 'prs/prs_perslid.asp?prs_key=', '0', 'perslid', 10);
DEF_FAC_SRTNOT('AFDNEW', 0, 'lcl_noti_AFDNEW', 'prs/prs_afdeling.asp?key=', '0', 'afdeling', 10);
DEF_FAC_SRTNOT('AFDUPD', 0, 'lcl_noti_AFDUPD', 'prs/prs_afdeling.asp?key=', '0', 'afdeling', 10);
DEF_FAC_SRTNOT('AFDDEL', 0, 'lcl_noti_AFDDEL', 'prs/prs_afdeling.asp?key=', '0', 'afdeling', 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);
@@ -2492,7 +2496,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)
@@ -2597,6 +2601,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',
@@ -2698,6 +2704,7 @@ 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', '');
@@ -2862,7 +2869,7 @@ DEF_MENUITEM(2, 'lcl_menu_alg_terreinkenmerken' , '', 'ALG', 'appl/mgt/alg_kenme
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');
@@ -2873,7 +2880,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');
@@ -2886,7 +2893,7 @@ DEF_MENUITEM(2, 'lcl_menu_ins_srtcontrole' , '', 'INS', 'appl/mgt/ins_srtco
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');
@@ -2902,10 +2909,12 @@ DEF_MENUITEM(2, 'lcl_menu_mld_opdrachttypes' , '', 'MLD', 'appl/mgt/mld_typeo
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');
@@ -2923,7 +2932,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');
@@ -2934,7 +2943,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', '');
@@ -2943,7 +2952,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');
@@ -2956,7 +2965,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');
@@ -2973,13 +2982,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');
@@ -2993,7 +3002,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', '');

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1252,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.
@@ -1321,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)
@@ -1335,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)

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

View File

@@ -8,6 +8,27 @@
*
*/
/* 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,
@@ -17,6 +38,8 @@ AS
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;
/
@@ -28,24 +51,24 @@ AS
tsk_master_schema VARCHAR(32);
custid fac_version.fac_version_cust%TYPE;
selfid fac_version.fac_version_cust%TYPE;
selfschema fac_version.fac_version_schema%TYPE;
fac_schema fac_version.fac_version_schema%TYPE;
currentdb_schema VARCHAR2 (64);
tsksql VARCHAR2 (4000);
cursor_name INTEGER;
rows_processed INTEGER;
BEGIN
SELECT fac_version_cust,
fac_version_schema
INTO selfid,
selfschema
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 = USER
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, selfschema));
VALUES(custid, COALESCE(p_schema, fac_schema));
EXCEPTION
WHEN DUP_VAL_ON_INDEX
THEN
@@ -53,17 +76,11 @@ AS
END;
-- Schema bijwerken
UPDATE fac_cust
SET fac_cust_schema = COALESCE(p_schema, selfschema)
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;';
cursor_name := DBMS_SQL.open_cursor;
DBMS_SQL.PARSE (cursor_name, tsksql, DBMS_SQL.NATIVE);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':custid', selfid);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':schema', selfschema);
rows_processed := DBMS_SQL.EXECUTE (cursor_name);
DBMS_SQL.CLOSE_CURSOR (cursor_name);
EXECUTE IMMEDIATE tsksql USING selfid, fac_schema;
END IF;
END;
@@ -73,13 +90,13 @@ AS
tsk_master_schema VARCHAR(32);
selfid fac_version.fac_version_cust%TYPE;
tsksql VARCHAR2 (4000);
cursor_name INTEGER;
rows_processed INTEGER;
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 = USER
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)
@@ -93,13 +110,7 @@ AS
END;
ELSE -- start remote tasker
tsksql := 'BEGIN ' || tsk_master_schema || '.tsk.registertask(:taskcode, :custid); END;';
cursor_name := DBMS_SQL.open_cursor;
DBMS_SQL.PARSE (cursor_name, tsksql, DBMS_SQL.NATIVE);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':custid', selfid);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':taskcode', p_taskcode);
rows_processed := DBMS_SQL.EXECUTE (cursor_name);
DBMS_SQL.CLOSE_CURSOR (cursor_name);
EXECUTE IMMEDIATE tsksql USING p_taskcode, selfid;
END IF;
END;
@@ -111,13 +122,13 @@ AS
tsk_master_schema VARCHAR(32);
selfid fac_version.fac_version_cust%TYPE;
tsksql VARCHAR2 (4000);
cursor_name INTEGER;
rows_processed INTEGER;
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 = USER
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)
@@ -127,16 +138,38 @@ AS
WHERE fac_cust_customerid = COALESCE(p_customerid, selfid));
ELSE -- start remote tasker
tsksql := 'BEGIN ' || tsk_master_schema || '.tsk.starttask(:taskcode, :nextrun, :custid); END;';
cursor_name := DBMS_SQL.open_cursor;
DBMS_SQL.PARSE (cursor_name, tsksql, DBMS_SQL.NATIVE);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':custid', selfid);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':taskcode', p_taskcode);
DBMS_SQL.BIND_VARIABLE (cursor_name, ':nextrun', p_nextrun);
rows_processed := DBMS_SQL.EXECUTE (cursor_name);
DBMS_SQL.CLOSE_CURSOR (cursor_name);
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:

File diff suppressed because it is too large Load Diff

View File

@@ -47,12 +47,7 @@ COMMIT;
WHENEVER SQLERROR EXIT;
BEGIN
-- Unused; remove in 2025.2
DEFINE_SETTING('PUO', 0001, 'WEB_FACTAB', 'puo_custorders' , 'boolean' , 'false' , 'UNUSED! true = use customer orderqueue')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'openai_model' , 'string' , 'gpt-4o' , 'UNUSED! Default OpenAI language model to use')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'openai_model_large_context' , 'string' , '' , 'UNUSED! Fallback model for prompts with larger contexts')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'openai_apikey' , 'string' , 'sk-proj-yzeVEAimM50pGzoPSTdmT3BlbkFJM3cBKKfpo0PVEEyBYJwR', 'UNUSED! OpenAI APIKEY for AI services')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'openai_organization' , 'string' , 'org-6M9EiAUYLBepI30skvLFk39B', 'UNUSED! OpenAI Organization for AI services')
-- Unused; remove in 2025.3
-- \Unused
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'fac_otap' , 'string' , 'P' , 'OTAP environment. custenv.wsc overrule only')
@@ -64,7 +59,15 @@ 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('PUO', 0000, 'WEB_FACTAB', 'tsk_master_schema' , 'string' , '' , 'Task master schema name (not necessarily customerId)')
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')
@@ -106,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')
@@ -114,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')
@@ -186,6 +190,7 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_html_strictness'
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'cal_showOn' , 'string' , 'button' , '''button'' or ''focus'' or ''both''')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'csp_header' , 'string' , 'default-src ''self''; script-src ''self'' ''unsafe-eval'' ''unsafe-inline''; style-src ''self'' ''unsafe-inline''; frame-src ''self'' mailto: tel: callto:; img-src ''self'' data: {0}; block-all-mixed-content;', 'Content-Security-Policy header')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'csp_header_extradata' , 'string' , '*.tile.openstreetmap.org', 'Content-Security-Policy header extra image source')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'well_known_security_txt' , 'string' , 'https://facilitor.nl/.well-known/security.txt', 'Redirect url for /.well-known/security.txt')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_lfmap_tileprovider' , 'string' , 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', 'Tile provider voor map-projection of data')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'referrer_policy_header' , 'string' , 'same-origin' , 'Referrer-Policy header')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'cssenvcust' , 'string' , '' , 'Custom css environment overrules')
@@ -194,6 +199,7 @@ DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'fontawesomestyle'
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 n email adres')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'email_cc_allowed' , 'number' , '0' , 'Allow use of Cc and Bcc {0 | 1} in sending email')
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)')
@@ -201,8 +207,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')
@@ -210,9 +218,9 @@ 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', 'flex_min_imgsize' , 'number' , '64' , 'Future use. E-mail image attachments smaller (in bytes) than this are silently ignored')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'flex_min_imgsize_ext' , 'string' , '.*\.(jpg|jpeg|png|gif|bmp)$' , 'Future use. Small (flex_min_imgsize) E-mail attachments are ignored')
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}')
@@ -226,6 +234,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}')
@@ -240,7 +249,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 )')
@@ -263,7 +273,6 @@ DEFINE_SETTING('INS', 0001, 'WEB_FACTAB', 'ins_image_path'
DEFINE_SETTING('INS', 0001, 'WEB_FACTAB', 'insd_image_path' , 'string' , NULL , 'path to folder storing ins discipline pictures')
DEFINE_SETTING('INS', 0001, 'WEB_FACTAB', 'ins_score_enabled' , 'number' , '0' , 'Is conditie meting aanwezig {0 | 1}')
DEFINE_SETTING('INS', 0001, 'WEB_FACTAB', 'inspect_enabled' , 'number' , '0' , 'Is Facilitor Inspect available {0 | 1} (future use)')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'mjb_show_srt_with_tasks' , 'number' , '0' , 'Show "Object type", "Object group ", "Discipline" columns in the MJOB console at grouping "Tasks" {0=no | 1=yes}')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'mjb_show_ruimte' , 'number' , '0' , 'Show "Room" column in the MJOB console at groupings "Object" and "Tasks" {0=no | 1=yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'defaultstdmelding' , 'number' , '-1' , 'The stdmeldingkey for generic calls received by e-mail')
DEFINE_SETTING('MLD', 0001, 'WEB_FACTAB', 'mld_contract_startdate_key' , 'number' , '-1' , 'key of flex prop in rental contract mutation call')
@@ -435,7 +444,7 @@ DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'anonymize_mode'
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,fa-file-download,fa-file-upload', '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')
@@ -545,9 +554,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 (65535=all (incl. future) AI features)' || CHR(10) || '&1; generate subjects for calls from their description (configuration needed)' || CHR(10) || '&2; generate FAQs for calls' || CHR(10) || '&4; generate text for closing calls' || CHR(10) || '&8; generate new order descriptions')
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_FACTAB', 'ai_apikey' , 'string' , 'CCV3nRxb3ohPwxlwPQBjGFWqDSPTilfLHjsfhGBRjOEmlfgRtRzwJQQJ99AKACfhMk5XJ3w3AAABACOG7TGx', 'APIKEY 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://general-foundry-prod.cognitiveservices.azure.com/openai/deployments/general-gpt4o/chat/completions?api-version=2025-01-01-preview', 'AI API endpoint url')
DEFINE_SETTING('FAC', 0000, 'WEB_FACFAC', 'ai_apikey' , 'string' , '3XUVnWTMwxOhKEj4Jnu4hj0Ifr8B9lt0PLCdhjAVxb2krGD99wpiJQQJ99BJACfhMk5XJ3w3AAAAACOGEWSl', '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}')
@@ -555,6 +567,7 @@ 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 = Selfservice and Professionals}')
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}')
@@ -564,6 +577,7 @@ DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_factuur_flags'
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}')
@@ -618,6 +632,7 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_allow_parentmelding'
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)')
@@ -640,7 +655,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}')
@@ -671,6 +686,7 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_object_filled_in_alert'
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 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}')
@@ -698,6 +714,7 @@ DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_pgb_fiattering'
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}.')
@@ -705,6 +722,7 @@ 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_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}')
@@ -740,6 +758,8 @@ 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')
@@ -844,6 +864,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')
@@ -915,6 +936,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)
@@ -642,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
@@ -873,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
@@ -1042,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)
@@ -1097,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)
@@ -1387,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),
@@ -1571,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),
@@ -1648,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)
@@ -1823,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),
@@ -2103,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)
@@ -2147,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
@@ -2197,8 +2212,11 @@ CREATE_TABLE(fac_imp_cnt, 0)
bedrag_termijn NUMBER (11,2),
uurtarief NUMBER (6,2),
korting NUMBER (4,2),
scope VARCHAR2 (1),
locatiecode VARCHAR2 (10),
terreincode VARCHAR2 (12),
gebouwcode VARCHAR2 (12),
verdiepingcode NUMBER (3),
ruimtecode VARCHAR2 (20),
verlengen VARCHAR2 (1),
versie VARCHAR2 (10),
dienst VARCHAR2 (60),
@@ -2328,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),

View File

@@ -343,7 +343,9 @@ BEGIN
-- Kopieer direct naar statusinformatie op de portal indien van toepassing
-- Daarbij worden alle oude berichten (eerst) verwijderd
IF BITAND (:NEW.fac_notificatie_status, 1) = 1 AND :new.prs_perslid_key_receiver IS NOT NULL
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,12 +399,25 @@ BEGIN
-- Always clear the notify_to_statinfo bit, even when no :new.prs_perslid_key_receiver
:NEW.fac_notificatie_status := BITAND (:NEW.fac_notificatie_status, 255 - 1);
:NEW.fac_notificatie_queue:=UPPER(:NEW.fac_notificatie_queue);
END;
/
IF BITAND(:NEW.fac_notificatie_status, 255 - 64) > 0 -- Alleen custom-queue negeren we
OR :NEW.prs_bedrijfadres_key IS NOT NULL
OR :NEW.fac_notificatie_systeemadres IS NOT NULL
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
tsk.starttask(p_taskcode => 'PUTORDERS', p_nextrun => :NEW.fac_notificatie_notbefore);
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;
/
@@ -572,6 +587,11 @@ CREATE_TRIGGER(fac_t_fac_tracking_b_i)
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
@@ -583,17 +603,26 @@ CREATE_TRIGGER(fac_t_fac_tracking_b_i)
END IF;
-- dit event moet mogelijk ook actief worden genotificeerd,
-- dat kan expliciet worden onderdrukt door de omschrijving te prefixen met een #
-- 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
fac.notifytracking(:new.fac_srtnotificatie_key, :new.prs_perslid_key, :new.fac_tracking_oms, :new.fac_tracking_refkey, :new.fac_tracking_key);
newkey := :new.fac_tracking_key;
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
@@ -601,7 +630,11 @@ CREATE_TRIGGER(fac_t_fac_tracking_b_i)
BEGIN
IF newkey IS NOT NULL
THEN
fac.notifytrackingbedrijven (newkey);
fac.notifytracking(srtkey, prskey, omschr, refkey, newkey);
IF notify_bedrijven
THEN
fac.notifytrackingbedrijven (newkey);
END IF;
END IF;
END AFTER STATEMENT;
END;
@@ -1111,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
@@ -840,57 +831,6 @@ AS
FROM fac_v_oprognosegegevens
GROUP BY mld_stdmelding_omschrijving, TO_CHAR (mld_melding_datum, 'yyyy');
CREATE_VIEW (fac_v_imp_res_artikel_sync ,0) (hide_f_artikel_catalogus,
hide_f_artikel_omschrijving,
artikelKey,
catalogusNaam,
catalogusKostensoort,
artikelNummer,
artikelOmschrijving,
artikelEenheid,
artikelPrijs,
artikelPrijsVast,
artikelInkoopprijs,
artikelPersoneelkosten,
artikelAlgemenekosten,
artikelBTW,
artikelOpmerking,
artikelGroep,
artikelVolgnummer,
artikelIngangsdatum,
artikelVervaldatum,
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;
/* View met het maximale actuele menu van de huidige configuratie */
CREATE_VIEW (fac_v_menu, 0)
AS
@@ -1003,92 +943,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)
@@ -1117,37 +1054,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
@@ -1837,6 +1780,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,
@@ -1883,6 +1827,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,
@@ -1978,6 +1923,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,
@@ -2131,6 +2077,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,
@@ -2177,6 +2124,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,
@@ -2303,6 +2251,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,
@@ -2342,6 +2291,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
@@ -2584,7 +2534,11 @@ SELECT f.fac_faq_key
(SELECT COUNT (*)
FROM alg_algfaq af
WHERE af.fac_faq_key = f.fac_faq_key)
aantalplaatsen
aantalplaatsen,
(SELECT ins_discipline_omschrijving
FROM faq_v_aanwezigdiscipline
WHERE ins_discipline_key = f.faq_ins_discipline_key)
catalogus
FROM fac_faq f, prs_v_perslid_fullnames_all pf
WHERE f.prs_perslid_key = pf.prs_perslid_key;

View File

@@ -134,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
@@ -143,13 +143,16 @@ 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
@@ -183,6 +186,8 @@ AS
, 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
@@ -208,14 +213,14 @@ AS
, ins_srtdeel sd
, alg_locatie l
, alg_gebouw g
, ins_deel id
, ins_v_deelenonderdeel id
, prs_kostensoort k
, prs_kostensoort c
, 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(+)
@@ -257,6 +262,7 @@ SELECT sd.ins_srtdiscipline_omschrijving vakgroeptype
, 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
@@ -275,30 +281,37 @@ SELECT sd.ins_srtdiscipline_omschrijving vakgroeptype
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,
@@ -341,7 +354,7 @@ SELECT l.alg_locatie_code Locatiecode
, pa.prs_afdeling_naam Afdelingscode
, ra.prs_ruimteafdeling_bezetting Bezetting
, CASE WHEN rb.aantal IS NULL
THEN 0
THEN 0
ELSE 1
END ReserveerbareRuimte
, rd.ins_discipline_omschrijving Categorie
@@ -482,7 +495,7 @@ SELECT l.alg_locatie_code Locatiecode
, alg_verdieping v
, prs_perslidwerkplek b
, prs_werkplek w
, prs_kostenplaats k
, 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(+)
@@ -551,50 +564,104 @@ SELECT c.cnt_contract_nummer_intern ContractNr
, 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
, p.cnt_alg_plaats_code ScopeType --AA_scope
, (SELECT MIN(CASE WHEN p.cnt_alg_plaats_code = 'L' THEN alg_locatie_code
WHEN p.cnt_alg_plaats_code = 'G' THEN alg_gebouw_code
ELSE ''
END)
FROM alg_v_gebouw_gegevens
WHERE CASE WHEN p.cnt_alg_plaats_code = 'L' THEN alg_locatie_key
WHEN p.cnt_alg_plaats_code = 'G' THEN alg_gebouw_key
END = p.cnt_alg_plaats_key
) LocatieGebouw_code --AB_locatiegebouw
, c.cnt_contract_verlenging Verlengen --AC_verlengen
--, CASE WHEN c.cnt_contract_verlenging = 5
-- THEN cnt.cnt_getTermijndatum( c.cnt_contract_looptijd_tot
-- , c.cnt_contract_verleng_termijn
-- , 1)
-- ELSE NULL
-- END Verlengdatum
, 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
, m.cnt_disc_params_factuurboeken Factuurboeken --AG_factuurboeken
FROM cnt_contract c
, (SELECT mm.cnt_contract_key
, mm.cnt_contract_nummer_intern
, mm.cnt_contract_versie
, md.cnt_disc_params_factuurboeken
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(+)
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_perslid_key_eig = e.prs_perslid_key(+)
AND c.prs_kostenplaats_key = k.prs_kostenplaats_key
AND c.cnt_contract_verwijder IS NULL
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
AND p.cnt_alg_plaats_code = g.alg_type(+)
AND p.cnt_alg_plaats_key = g.alg_onroerendgoed_keys(+)
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)
OR ra.res_artikel_vervaldatum IS NULL
)
;
REGISTERRUN('$Id$')

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=49
NEXTVERSION=50
FILEVERSION=
CURRENTVERSION=50
NEXTVERSION=51
FILEVERSION=a
NEXTROOT=DB$(NEXTVERSION)$(FILEVERSION)
CURRENTUPDATE=DB$(CURRENTVERSION)to$(NEXTVERSION)

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)
@@ -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 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);
@@ -624,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

@@ -1,269 +1,101 @@
--
-- $Id$
--
-- Script bevat initiele configuratie voor een standaard FM inrichting van Facilitor
-- Voor FM-implementaties zal dit Het Startpunt zijn.
--
--
-- Verwachting is dat dit zo ongeveer het eerste is wat je altijd zult doen bij een FM-implementatie,
-- niettemin doen we ons best -en zullen we dat moeten verifieren- om het zodanig opgezet te hebben
-- dat het ook later nog kan worden uitgevoerd. Niet omdat dat waarschijnlijk is, maar omdat zo
-- de meest robuuste code wordt gemaakt, die bestand is tegen een onverwachte situatie.
--
-- Het kan [alleen] uitgaan van alles wat standaard aanwezig is (uit fac_ini).
--
-- Moet in sync worden gehouden met de DB-versies, is daarom technisch onderdeel van de Facilitor-core
-- Inhoudelijk zou er een Implementatie-CAB mogen zijn (vertegenwoordigers van consultancy, support en evt core-CAB)
-- die de verantwoordelijkheid over de content heeft.
--
-- Ook goed om te weten: dit is een eenmalig (once) script dat een momentopname genereert als startpunt van
-- een verdere implementatie. Er komen GEEN upgrades voor deze initialisatie met nieuwere versies of
-- aanvullingen. Na deze aftrap mag je het verder helemaal zelf doen.
--
-- De basisinrichting wordt per module van onder naar boven opgebouwd, en eindigt met een zeer bescheiden
-- aantal appetizers: fictieve gegevens die e.e.a. voor de eerste confrontatie minder abstract maken.
--
--
-- Let op: deze code wordt letterlijk geinclude als body van procedure ini.fmis_ini, het is geen SQL*Plus!
--
-- Er wordt gebruik gemaakt van importfuncties, die COMMIT's doen. Deze hele procedure moet dus foutloos
-- lopen want het is alles of niks.
--
/* Script bevat initiele configuratie voor een standaard FM inrichting van Facilitor.
Voor FM-implementaties zal dit Het Startpunt zijn. Verwachting is dat dit zo ongeveer het eerste is wat je altijd zult doen bij een FM-implementatie,
niettemin doen we ons best -en zullen we dat moeten verifieren- om het zodanig opgezet te hebben dat het ook later nog kan worden uitgevoerd.
Niet omdat dat waarschijnlijk is, maar omdat zode meest robuuste code wordt gemaakt, die bestand is tegen een onverwachte situatie.
Het kan [alleen] uitgaan van alles wat standaard aanwezig is (uit fac_ini).
Moet in sync worden gehouden met de DB-versies, is daarom technisch onderdeel van de Facilitor-core
Inhoudelijk zou er een Implementatie-CAB mogen zijn (vertegenwoordigers van consultancy, support en evt core-CAB) die de verantwoordelijkheid over de content heeft.
Ook goed om te weten: dit is een eenmalig (once) script dat een momentopname genereert als startpunt van een verdere implementatie.
Er komen GEEN upgrades voor deze initialisatie met nieuwere versies of aanvullingen.
Na deze aftrap mag je het verder helemaal zelf doen.
De basisinrichting wordt per module van onder naar boven opgebouwd, en eindigt met een zeer bescheidenaantal appetizers:
fictieve gegevens die e.e.a. voor de eerste confrontatie minder abstract maken.
Let op: deze code wordt letterlijk geinclude als body van procedure ini.fmis_ini, het is geen SQL*Plus!
Er wordt gebruik gemaakt van importfuncties, die COMMIT's doen.
Deze hele procedure moet dus foutlooslopen want het is alles of niks. */
-- BASISCONFIG PER MODULE
-- 1. ALG
-- Gebouwfuncties en ruimtefuncties (afgeleid uit XD; denk dat het beter kan maar elke indeling kent zijn POV)
-- Bv Bouwbesluit, NEN. De Facilitaire NEN lijkt (!) dat niet te bieden.
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Fietsenstalling', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Gemeenschapshuis', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Kantoorgebouw', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Kinderopvang', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Loods', 1);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Opslag/Magazijn', 1);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Parkeergebouw', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Portocabin', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Projectlocatie', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Schoolgebouw', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Sportcentrum', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Stationsgebouw', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Winkel', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Wijkcentrum', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Werkplaats', NULL);
INSERT INTO alg_srtgebouw(alg_srtgebouw_omschrijving, alg_srtgebouw_passief) VALUES ('Woning', NULL);
INSERT INTO alg_srtterreinsector(alg_srtterreinsec_omschrijving) VALUES ('Parkeerterrein');
INSERT INTO alg_srtterreinsector(alg_srtterreinsec_omschrijving) VALUES ('Groenvoorziening');
-- NEN2580
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Bijeenkomstruimte', NULL, 1);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Garage', NULL, 1);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Kantoorruimte', 1, 1);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Technische ruimte', NULL, NULL);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Opslag/Magazijn', NULL, 1);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Horizontale verkeersruimte', NULL, NULL);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Verticale verkeersruimte', NULL, NULL);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Sanitairruimte', NULL, NULL);
INSERT INTO alg_srtruimte(alg_srtruimte_omschrijving, prs_bevat_werkplek, prs_verhuurbaar) VALUES ('Woonruimte', 1, 1);
-- Het ligt voor de hand hier een bak flexkenmerken aan te maken die je voor FM nodig hebt
-- Vloerafwerking: een eigen tabel met gangbare Vloerafwerkingen en een referentiekenmerk
-- Glasoppervlak: een number, wellicht per type (separatieglas, buiten)
fac.writelog ('INI.FMIS_INI','I', 'ALG completed', '');
-- 2. INS
-- Vakgroepen. Meervoud
-- Leidraad voor onderscheid is: is het aannemelijk dat daar andere personen (backoffice, autorisaties) over gaan. Ook NLSfb.
INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_code, ins_discipline_omschrijving, ins_discipline_min_level, ins_discipline_image)
-- Even helemaal weggehaald. Omdat bevonden was toch direct te verwijderen uit de omgeving. Van ieder onderdeel het format (insert into) en 1 voorbeeld laten staan.
-- Vakgroepen (Meervoud).
/* INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_code, ins_discipline_omschrijving, ins_discipline_min_level, ins_discipline_image)
SELECT 'INS', 'NLSFB00', 'FMIS-Bouwkundig Algemeen', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'NLSFB04', 'FMIS-Bouwkundig Afwerkingen', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'NLSFB05', 'FMIS-Bouwkundig Mechanische installaties', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'NLSFB06', 'FMIS-Bouwkundig Elektrische installaties', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'NLSFB07', 'FMIS-Bouwkundig Vaste inrichtingen', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'NLSFB08', 'FMIS-Bouwkundig Losse inventaris', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'NLSFB09', 'FMIS-Bouwkundig Terrein', 1, '' FROM DUAL UNION ALL
SELECT 'INS', 'F020', 'FMIS-Automaten', 1, 'fa-slot-machine' FROM DUAL UNION ALL
SELECT 'INS', 'F030', 'FMIS-Werkplekken', 1, 'fa-chair-office' FROM DUAL UNION ALL
SELECT 'INS', 'F040', 'FMIS-Toegang/Beveiliging', 1, 'fa-universal-access' FROM DUAL UNION ALL
SELECT 'INS', 'F050', 'FMIS-Presentatiemiddelen', 1, 'fa-projector' FROM DUAL UNION ALL
SELECT 'INS', 'F060', 'FMIS-Vervoer', 1, 'fa-car-side' FROM DUAL UNION ALL
SELECT 'INS', 'I010', 'FMIS-Computers', 1, 'fa-computer' FROM DUAL UNION ALL
SELECT 'INS', 'I020', 'FMIS-Smartphones', 1, 'fa-mobile-android' FROM DUAL UNION ALL
SELECT 'INS', 'I030', 'FMIS-Sensoren', 1, 'fa-sensor-on' FROM DUAL UNION ALL
SELECT 'INS', 'P010', 'FMIS-Parkeren', 1, 'fa-parking' FROM DUAL;
INSERT INTO ins_disc_params (ins_discipline_key) SELECT ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_module='INS' AND ins_discipline_key NOT IN (SELECT ins_discipline_key FROM ins_disc_params);
-- Groepen TODO AANVULLEN of verbeteren. Meervoud.
INSERT INTO ins_srtgroep (ins_srtgroep_omschrijving, ins_discipline_key)
INSERT INTO ins_disc_params (ins_discipline_key) SELECT ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_module='INS' AND ins_discipline_key NOT IN (SELECT ins_discipline_key FROM ins_disc_params);
*/
-- Groepen (Meervoud).
/* INSERT INTO ins_srtgroep (ins_srtgroep_omschrijving, ins_discipline_key)
SELECT 'Koffieautomaten', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F020' UNION ALL
SELECT 'Snoepautomaten', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F020' UNION ALL
SELECT 'Frisdrankautomaten', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F020' UNION ALL
SELECT 'Waterkoelers', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F020' UNION ALL
SELECT 'Bureau''s', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F030' UNION ALL
SELECT 'Tafels', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F030' UNION ALL
SELECT 'Stoelen', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F030' UNION ALL
SELECT 'Werkplekken', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'F030' UNION ALL
SELECT 'Desktops', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'I010' UNION ALL
SELECT 'Laptops', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'I010' UNION ALL
SELECT 'Tablets', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'I010' UNION ALL
SELECT 'Sensoren', ins_discipline_key FROM ins_tab_discipline WHERE ins_discipline_code = 'I030';
-- Objectsoorten TODO AANVULLEN. Enkelvoud.
INSERT INTO ins_srtdeel (ins_srtgroep_key, ins_srtdeel_code, ins_srtdeel_omschrijving, ins_srtdeel_image, ins_srtdeel_sensortype)
*/
-- Objectsoorten (Enkelvoud).
/* INSERT INTO ins_srtdeel (ins_srtgroep_key, ins_srtdeel_code, ins_srtdeel_omschrijving, ins_srtdeel_image, ins_srtdeel_sensortype)
SELECT ins_srtgroep_key, 'KOF','Koffieautomaat', 'fa-mug-hot', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Koffieautomaten' UNION ALL
SELECT ins_srtgroep_key, 'SNP','Snoepautomaat', 'fa-lollipop', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Snoepautomaten' UNION ALL
SELECT ins_srtgroep_key, 'FRS','Frisdrankautomaat', 'fa-cup-straw-swoosh', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Frisdrankautomaten' UNION ALL
SELECT ins_srtgroep_key, 'WTK','Waterkoeler', 'fa-glass-water', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Waterkoelers' UNION ALL
SELECT ins_srtgroep_key, 'DSK','Desktop type 1', 'fa-desktop', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Desktops' UNION ALL
SELECT ins_srtgroep_key, 'BUR','Bureau 160x80', 'fa-lamp-desk', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Bureau''s' UNION ALL
SELECT ins_srtgroep_key, 'TAF','Vergadertafel', 'fa-users-line', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Tafels' UNION ALL
SELECT ins_srtgroep_key, 'BST','Bureaustoel', 'fa-chair-office ', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Stoelen' UNION ALL
SELECT ins_srtgroep_key, 'LPT','Laptop type 1', 'fa-laptop', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Laptops' UNION ALL
SELECT ins_srtgroep_key, 'LPT','Laptop type 2', 'fa-laptop', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Laptops' UNION ALL
SELECT ins_srtgroep_key, 'TAB','Tablet', 'fa-tablet', 0 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Tablets' UNION ALL
SELECT ins_srtgroep_key, 'SB','Bezettingssensor', 'fa-sensor', 1 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Sensoren' UNION ALL
SELECT ins_srtgroep_key, 'ST','Temperatuursensor', 'fa-temperature-half', 2 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Sensoren' UNION ALL
SELECT ins_srtgroep_key, 'SC','CO2-sensor', 'fa-sensor-cloud', 2 FROM ins_srtgroep WHERE ins_srtgroep_omschrijving = 'Sensoren';
*/
fac.writelog ('INI.FMIS_INI','I', 'INS completed', '');
-- 3. MLD
-- Importeren van een standaard meldingenstructuur (MLD), maakt alle bovenliggende niveaus zelf aan
-- Dit mag inhoudelijk beter
-- TODO minder exotische meldingen
-- TODO meer variatie in de plaatjes
-- TODO betere suggesties voor parameters als Behandelteam, planbaarheid
INSERT INTO fac_imp_mld (ins_srtdiscipline_omschrijving, ins_srtdiscipline_prefix, ins_srtdiscipline_alg, ins_discipline_omschrijving, mld_stdmelding_hint, mld_stdmelding_omschrijving, mld_stdmelding_uitvoertijd)
SELECT 'FMIS-Aanvraag','A',1,'Afval','fa-recycle','Ophalen/verzamelen afval', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Afval','fa-recycle','Extra container', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Afval','fa-bin-recycle','Zwerfafval (verzamelen)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Automaten','fa-candy','Fris-/versnapering-automaat', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Automaten','fa-coffee-beans','Ingredi<EFBFBD>nten t.b.v. koffieautomaat', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Automaten','fa-jug-bottle','Waterflessen t.b.v. waterkoeler', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'BHV & Veiligheid','fa-medkit','BHV Herhalingstrainingen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'BHV & Veiligheid','fa-medkit','BHV middelen (AED/BHV rugzak-/hesje/megafoon) leveren', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'BHV & Veiligheid','fa-jug-bottle','Blusmiddelen (brandblusser/brandslanghaspel)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'BHV & Veiligheid','fa-medkit','EHBO-middelen bestellen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'BHV & Veiligheid','fa-medkit','Ontruimingsplan & -plattegrond (nieuw/wijzigen)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'BHV & Veiligheid','fa-bandage','Pleisterautomaten plaatsen/aanvullen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfskeuken apparatuur','fa-cutlery','Bedrijfskeuken apparatuur', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfskleding','fa-shirt','Bedrijfskleding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Benodigdheden & bedrijfsmiddelen','fa-flower-tulip','Bloemen bestellen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Benodigdheden & bedrijfsmiddelen','fa-eur','Huurauto', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Benodigdheden & bedrijfsmiddelen','fa-eur','Kantoorbenodigheden', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Benodigdheden & bedrijfsmiddelen','fa-eur','Onderhoud overige bedrijfsmiddelen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Benodigdheden & bedrijfsmiddelen','fa-eur','Repro en documentbeheer', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Benodigdheden & bedrijfsmiddelen','fa-eur','Vloeistoffen/gassen bestellen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Catering','fa-coffee','Catering', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Automatische deuren(dock-/rol-/schuif-/overhead)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Bouwkundig', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Brandblusser/brandhaspel', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Brandmeld- & ontruimingsinstallatie(BMC)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Inbraak-/alarminstallatie', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Keuring elektrische (hand) apparatuur (NEN3140)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Klimaatinstallatie (airco/koelunit)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Lift', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Schade Gebouwonderhoud', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Schilderwerkzaamheden', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Technische installaties', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gebouw- & installatieonderhoud','fa-cubes','Verlichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gereedschap, PBM en trappen','fa-wrench','Defect elektrische (hand) apparatuur (NEN3140)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gereedschap, PBM en trappen','fa-wrench','Desinfectiemiddel + handschoenen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gereedschap, PBM en trappen','fa-wrench','Keuring elektrische (hand) apparatuur (NEN3140)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Gereedschap, PBM en trappen','fa-wrench','Persoonlijke beschermingsmiddelen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Hijs- & hef-installaties','fa-industry','Keuring hijs- en hefmiddelen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Hijs- & hef-installaties','fa-industry','Keuring kleine hijsmiddelen, klimmateriaal en stellingen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Hijs- & hef-installaties','fa-industry','Kleine hijsmiddelen, klimmateriaal en stellingen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Audio visuele middelen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Bewegwijzering', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Binnenbeplanting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Meubilair & inrichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Meubilair leveren', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Sleutel leveren t.b.v. meubilair', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Meubilair & inrichting','fa-home','Vloerbedekking (nieuw/vervangen)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Ongedierte bestrijding','fa-bug','Ongediertebestrijding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Ongedierte bestrijding','fa-bug','Pest Control producten(lokaasbakjes, UV lamp, overige)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Ongedierte bestrijding','fa-bug','Verdelging en preventieve controle', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Post- & koeriersdiensten','fa-envelopes-bulk','Benodigheden & middelen dienstverlening post', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Post- & koeriersdiensten','fa-person-dolly','Koerierzendingen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Receptie & beveiliging','fa-user-police-tie','Extra inzet receptie', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Receptie & beveiliging','fa-address-card','Extra openings-/sluitronde', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Receptie & beveiliging','fa-address-card','Inzet Verkeersregelaar(s)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Receptie & beveiliging','fa-user-police','Inzet extra beveiliging', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Receptie & beveiliging','fa-shield-keyhole','Plaatsen/vervangen (elektronisch) slot/sleutel', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak','fa-eraser','Extra schoonmaak (verzoek)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak','fa-eraser','Gevelreiniging (extra)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak','fa-eraser','Glasbewassing (binnen/buiten)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak','fa-eraser','Sanitaire middelen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Elektrische oplaadpunten', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Gladheidsbestrijding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Groenonderhoud', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Hekwerken (onderhoud)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Overige aanvragen (toegangscontrole/hekwerken)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Terrein- & groenvoorziening', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Terreinverlichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Terrein- & groenvoorziening','fa-tree','Toegangspoorten & slagbomen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Verhuizing','fa-truck','Verhuismiddelen leveren', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Verhuizing','fa-truck','Verhuizing extern', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Verhuizing','fa-truck','Verhuizing intern', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Afval','fa-recycle','Klacht mbt Afval', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Automaten','fa-server','Klacht mbt automaten', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'BHV & Veiligheid','fa-medkit','Klacht mbt BHV & Veiligheid', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Bedrijfskeuken apparatuur','fa-cutlery','Bedrijfskeuken apparatuur', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Bedrijfskleding','fa-vest-patches','Klacht mbt Bedrijfskleding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Facilitaire dienstverlening','fa-id-badge','Klacht mbt facilitaire dienstverlening', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Gebouw- & installatieonderhoud','fa-cubes','Klacht mbt onderhoud', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Meubilair & inrichting','fa-home','Klacht mbt Meubilair & inrichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Ongedierte bestrijding','fa-bug','Klacht mbt Ongediertebestrijding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Koeriersdiensten','fa-truck-fast','Klacht mbt koeriersdiensten', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Receptie & beveiliging','fa-shield-check','Klacht mbt Receptie & beveiliging', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Schoonmaak','fa-eraser','Klacht mbt Schoonmaak', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Terrein- & groenvoorziening','fa-tree','Klacht mbt terrein- & groenvoorziening', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Afval','fa-recycle','Container is niet geleegd', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Automaten','fa-server','Fris-/versnapering-automaat', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Automaten','fa-server','Koffieautomaat', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Automaten','fa-server','Waterkoeler', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'BHV & Veiligheid','fa-medkit','AED werkt niet/rood lampje', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'BHV & Veiligheid','fa-medkit','Blusmiddelen (brandblusser/brandslanghaspel)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'BHV & Veiligheid','fa-medkit','Brandslaghaspel (kast)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'BHV & Veiligheid','fa-medkit','Keuring blusapparatuur', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'BHV & Veiligheid','fa-medkit','Legionellabeheer en bemonstering', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'BHV & Veiligheid','fa-medkit','Verzegeling blusapparatuur', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Bedrijfskeuken apparatuur','fa-cutlery','Bedrijfskeuken apparatuur', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Automatische deuren(dock-/rol-/schuif-/overhead)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Bouwkundig', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Bouwkundig (dak, kozijnen, wanden, glas, ruitbreuk, lekkage)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Brandblusser/brandhaspel', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Brandmeld- & ontruimingsinstallatie(BMC)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Dak- en gevelinstallaties', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Eigenaarsinstallaties (Eigenaar pand)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Elektrische installatie', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Hang- & sluitwerk(sloten, deurdranger, deurklink etc)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Inbraak-/alarminstallatie', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Klimaatinstallatie (airco/koelunit)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Liften', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Noodverlichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Riolering, leidingen & kanalen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Sanitair (toilet/urinoir, kraan, wasbak, spoelknop)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Schade Gebouwonderhoud', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Sprinkler installatie', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Technische installaties', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Verlichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Witgoed (wasmachines, koelkasten, drogers etc.)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-cubes','Zonwering (binnen/buiten)', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Hijs- & hef-installaties','fa-industry','Calamiteit Hijs- & hef-installaties', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Hijs- & hef-installaties','fa-industry','Hijs- & hef-installaties', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Hijs- & hef-installaties','fa-industry','Kleine hijsmiddelen, klimmateriaal en stellingen', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Ongedierte bestrijding','fa-bug','Ongediertebestrijding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Receptie & beveiliging','fa-address-card','Plaatsen/vervangen (electronisch) slot/sleutel', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Schoonmaak','fa-eraser','Sanitaire accessoires', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Schoonmaak','fa-eraser','Schoonmaak', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Bestrating', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Elektrische oplaadpunten', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Gladheidbestrijding', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Groenonderhoud', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Terreinverlichting', 5 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Toegangscontrole/inbraakalarm systeem', 5 FROM DUAL;
INSERT INTO fac_imp_mld (ins_srtdiscipline_omschrijving, ins_srtdiscipline_prefix, ins_srtdiscipline_alg, ins_discipline_omschrijving, mld_stdmelding_hint, mld_stdmelding_omschrijving, mld_stdmelding_uitvoertijd, mld_stdmelding_objects_allowed)
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-lightbulb-cfl-on','Elektrische installatie',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-door-open','Hang- & sluitwerk(sloten, deurdranger, deurklink etc)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-shield-exclamation','Inbraak-/alarminstallatie',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-temperature-list','Klimaatinstallatie (airco/koelunit)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-elevator','Liften',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-toilet','Sanitair (toilet/urinoir, kraan, wasbak, spoelknop)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-lightbulb-exclamation-on','Verlichting',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-jug-bottle','Schoonmaak',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-road','Bestrating',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-gas-pump-slash','Elektrische oplaadpunten',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-temperature-frigid','Gladheidbestrijding',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-tree','Groenonderhoud',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Terrein- & groenvoorziening','fa-light-emergency-on','Terreinverlichting',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Toegang & beveiliging','fa-drivers-license','Toegangspas',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Kantoorbeheer','fa-coffee-pot','Koffiezetapparaat',1,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Kantoorbeheer','fa-chair-office','Werkplek',1,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'ICT','fa-wifi-exclamation','Netwerkstoring',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'ICT','fa-laptop-slash','Hardware',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Toegang & beveiliging','fa-shield-exclamation','Beveiliging',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'ICT','fa-file-word','Software en applicaties',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-trash-can-clock','Container is niet geleegd',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Calamiteiten & BHV','fa-medkit','AED werkt niet/rood lampje',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Calamiteiten & BHV','fa-fire-extinguisher','Blusmiddelen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Storing','S',1,'Gebouw- & installatieonderhoud','fa-house-building','Bouwkundig (dak, kozijnen, wanden, glas, ruitbreuk, lekkage)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Toegang & beveiliging','fa-drivers-license','Toegangspas',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-medkit','Randapparatuur en accessoires',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-laptop-mobile','Hardware',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfsmiddelen','fa-home-lg','Thuiswerk voorzieningen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-globe','Netwerk',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-file-word','Software en applicaties',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Toegang & beveiliging','fa-shield-alt','Beveiliging',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'ICT','fa-file-shield','Autorisaties',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-trash-plus','Extra container',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-trash-can-clock','Extra afval afvoer verzoek',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Kantoorbeheer','fa-coffee-beans','Ingredi<EFBFBD>nten t.b.v. koffieautomaat',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Kantoorbeheer','fa-jug-bottle','Waterflessen t.b.v. waterkoeler',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Calamiteiten & BHV','fa-medkit','BHV trainingen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Calamiteiten & BHV','fa-prescription-bottle-alt','EHBO-middelen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfsmiddelen','fa-flower-tulip','Bloemen bestellen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfsmiddelen','fa-car-mirrors','Huurauto',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Bedrijfsmiddelen','fa-pencil-mechanical','Kantoorartikelen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-jug-bottle','Extra schoonmaak (verzoek)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-house-chimney-window','Extra glasbewassing (binnen/buiten)',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Aanvraag','A',1,'Schoonmaak & hygi<EFBFBD>nevoorzieningen','fa-toilet-paper-check','Sanitaire middelen',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Klacht','fa-octagon-exclamation','Klacht',5,2 FROM DUAL UNION ALL
SELECT 'FMIS-Klacht','K',0,'Klacht','fa-people-arrows-left-right','Ongewenst gedrag',5,2 FROM DUAL;
-- beetje lomp, wat vinden we?
UPDATE fac_imp_mld SET mld_stdmelding_slabewaken = 0, mld_stdmelding_notfrontend = 0
@@ -271,31 +103,18 @@ UPDATE fac_imp_mld SET mld_stdmelding_slabewaken = 0, mld_stdmelding_notfrontend
UPDATE fac_imp_mld SET mld_stdmelding_slabewaken = 1, mld_stdmelding_notfrontend = 1
WHERE ins_srtdiscipline_omschrijving = 'FMIS-Melding';
UPDATE fac_imp_mld SET mld_stdmelding_groep = SUBSTR(ins_discipline_omschrijving, 1, 30)
WHERE ins_srtdiscipline_omschrijving like 'FMIS-%';
WHERE ins_srtdiscipline_omschrijving LIKE 'FMIS-%';
BEGIN fac_update_mld(ini.getImportKey('MLD')); END;
DELETE FROM fac_imp_mld;
--UPDATE ins_srtdiscipline SET ins_srtdiscipline_kostenklant = 8 WHERE ins_srtdiscipline_omschrijving = 'FMIS-Klacht';
--UPDATE fac_setting
-- SET fac_setting_pvalue =
-- (SELECT mld_stdmelding_key
-- FROM mld_stdmelding
-- WHERE mld_stdmelding_omschrijving = 'Ontvangen mail bericht')
-- WHERE fac_setting_name = 'defaultstdmelding';
--INSERT INTO fac_email_setting (fac_email_setting_user, fac_email_setting_frommode, fac_email_setting_action, fac_email_setting_attachpath)
-- VALUES ('servicedesk', 0, 'FAC.processemail', '*flexfilespath');
-- huh? O, de import ondersteunde de image niet, dus die ging via de hint
-- De import ondersteunde de image niet, dus die ging via de hint
UPDATE mld_stdmelding
SET mld_stdmelding_image = mld_stdmelding_hint,
mld_stdmelding_hint = NULL
WHERE mld_stdmelding_hint IS NOT NULL AND mld_stdmelding_image IS NULL;
-- Voeg bijlage toe aan alle vakgroeptypen
-- Als die als
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_omschrijving, mld_srtkenmerk_kenmerktype) VALUES ('Bijlagen', 'M');
INSERT INTO mld_kenmerk (mld_srtkenmerk_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_groep) SELECT mld_srtkenmerk_key, 'A', 100, 0
FROM mld_srtkenmerk
@@ -304,17 +123,6 @@ INSERT INTO mld_kenmerk (mld_srtkenmerk_key, mld_kenmerk_niveau, mld_kenmerk_vol
fac.writelog ('INI.FMIS_INI','I', 'MLD completed', '');
-- 4. RES
-- Vraag is of we dit niet UIT de RES_INI moeten halen en hier moeten definieren.
-- Antwoord is: Waarom?
-- Daarom hier ter referentie, mogelijk wel aanvullen?
--INSERT INTO RES_OPSTELLING (res_opstelling_key,res_opstelling_omschrijving) VALUES (1,'Standaard');
--INSERT INTO res_srtactiviteit (res_srtactiviteit_key, res_srtactiviteit_omschrijving, res_srtactiviteit_soort) VALUES (1, 'Ruimte', 0);
--INSERT INTO res_srtactiviteit (res_srtactiviteit_key, res_srtactiviteit_omschrijving, res_srtactiviteit_soort) VALUES (2, 'Voorzieningen', 1);
--INSERT INTO res_activiteit (res_activiteit_omschrijving, res_srtactiviteit_key) VALUES ('Vergadering', 1);
--INSERT INTO res_activiteit (res_activiteit_omschrijving, res_srtactiviteit_key) VALUES ('N.v.t.', 2);
-- en dan nog wat meer, want we hoeven minder neutraal te zijn: Evenement, Hybride vergadering, ..
INSERT INTO res_srtactiviteit (res_srtactiviteit_omschrijving, res_srtactiviteit_soort, res_srtactiviteit_prefix,
res_srtactiviteit_kpnverplicht, res_srtactiviteit_metomschr, res_srtactiviteit_metopmerk, res_srtactiviteit_metaantal)
VALUES ('Flexwerken', 1, 'WP', 2, 0, 0, 0);
@@ -356,17 +164,17 @@ fac.writelog ('INI.FMIS_INI','I', 'RES completed', '');
-- 5. BEZ
-- Zaken uit BEZ_INI hier overgenomen
INSERT INTO bez_actie_groep (bez_actie_groep_omschrijving, bez_actie_groep_default) VALUES ('FMIS-Standaard', 1);
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) (SELECT 'Onbekend' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'FMIS-Standaard');
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) (SELECT 'Ontvanger bellen' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'FMIS-Standaard');
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) (SELECT 'Begeleiden naar ontvanger', bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'FMIS-Standaard');
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) (SELECT 'Verwijzen naar ontvanger' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'FMIS-Standaard');
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) (SELECT 'Op laten halen (bellen)' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'FMIS-Standaard');
INSERT INTO bez_actie_groep (bez_actie_groep_omschrijving, bez_actie_groep_default) VALUES ('Standaard', 1);
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Onbekend' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Ontvanger bellen' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Begeleiden naar ontvanger', bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Verwijzen naar ontvanger' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
INSERT INTO bez_actie (bez_actie_omschrijving, bez_actie_groep_key) SELECT 'Op laten halen (bellen)' , bez_actie_groep_key FROM bez_actie_groep WHERE bez_actie_groep_omschrijving = 'Standaard';
fac.writelog ('INI.FMIS_INI','I', 'BEZ completed', '');
-- 6. CNT
DECLARE
/* DECLARE
v_discipline_key ins_tab_discipline.ins_discipline_key%TYPE;
v_key cnt_srtkenmerk.cnt_srtkenmerk_key%TYPE;
BEGIN
@@ -395,14 +203,15 @@ BEGIN
cnt_kenmerk_volgnummer,
cnt_kenmerk_groep)
SELECT v_key, ins_discipline_key, 'S', 100, 0 FROM cnt_discipline;
END;
END; */
fac.writelog ('INI.FMIS_INI','I', 'CNT completed', '');
-- 7. FAQ
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Facilitaire Kennisbank', 'FAQ');
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Facilitaire kennisbank', 'FAQ');
fac.writelog ('INI.FMIS_INI','I', 'FAQ completed', '');
-- 8. MSG
-- Misschien ook hier nog een berichtje, anders iig de catalogi
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Algemene berichten', 'MSG');
@@ -412,11 +221,11 @@ fac.writelog ('INI.FMIS_INI','I', 'MSG completed', '');
-- 9. CAD
-- De standaardthema's uit CAD-INI van vroeger heb je niet met ITSM nodig, dus horen bij FMIS
-- De kunt makkelijk beargumenteren dat PRJ-thema's er dan ook bij zouden horen.
INSERT INTO cad_legenda (cad_legenda_omschrijving, cad_legenda_discreet) VALUES ('FMIS-Bezetting', 1); -- naam mag je later wel aanpassen, nu handig uniek
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'0','33CC33','hele dag beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='FMIS-Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'1','FF9900','''s middags beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='FMIS-Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'2','FFFF00','''s ochtends beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='FMIS-Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'3','FF0000','hele dag bezet' FROM cad_legenda WHERE cad_legenda_omschrijving='FMIS-Bezetting';
INSERT INTO cad_legenda (cad_legenda_omschrijving, cad_legenda_discreet) VALUES ('Bezetting', 1); -- naam mag je later wel aanpassen, nu handig uniek
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'0','33CC33','hele dag beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'1','FF9900','''s middags beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'2','FFFF00','''s ochtends beschikbaar' FROM cad_legenda WHERE cad_legenda_omschrijving='Bezetting';
INSERT INTO cad_legendawaarde (cad_legenda_key, cad_legendawaarde_value, cad_legendawaarde_rgb, cad_legendawaarde_omschr) SELECT MAX(cad_legenda_key),'3','FF0000','hele dag bezet' FROM cad_legenda WHERE cad_legenda_omschrijving='Bezetting';
INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view, cad_thema_type, fac_functie_key)
SELECT 'Ruimtefunctie', 1, 'cad_v_thema_srtruimte', 1, fac_functie_key
@@ -442,7 +251,7 @@ INSERT INTO cad_thema (cad_thema_omschrijving, cad_legenda_key, cad_thema_view,
SELECT 'Werkplekbezetting', cad_legenda_key, 'cad_v_thema_deel_res_datum', 17, fac_functie_key
FROM fac_functie, cad_legenda
WHERE fac_functie_code = 'WEB_RESUSE'
AND cad_legenda_omschrijving = 'FMIS-Bezetting';
AND cad_legenda_omschrijving = 'Bezetting';
-- CAD labels
INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, fac_functie_key, cad_label_size)
@@ -472,14 +281,14 @@ INSERT INTO cad_label (cad_label_omschrijving, cad_label_view, cad_label_type, f
--- INFOBOARD rapportage
INSERT INTO fac_usrrap (fac_usrrap_omschrijving, fac_usrrap_view_name, fac_usrrap_info, fac_functie_key, fac_usrrap_groep)
SELECT 'FMIS: Actuele reserveringen'
SELECT 'Actuele reserveringen'
, 'res_v_rap_infobordframe'
, 'Reserveringsoverzicht tbv informatieschermen'
, fac_functie_key
, 'RESERVERINGEN'
FROM fac_functie
WHERE fac_functie_code='WEB_RESFOF';
-- Dit is netjes de Engelse vertaling, was eerder voorhanden in fac_ini. Zou striktgenomen voor alle teksten moeten, tzt.
INSERT INTO fac_locale (fac_locale_lang, fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_tekst)
SELECT 'EN', MAX(fac_usrrap_key), 'FAC_USRRAP_OMSCHRIJVING', 'INFOBOARD: Actual reservations' FROM fac_usrrap WHERE fac_usrrap_view_name = 'res_v_rap_infobordframe';
INSERT INTO fac_locale (fac_locale_lang, fac_locale_kolomkeyval, fac_locale_kolomnaam, fac_locale_tekst)
@@ -492,38 +301,39 @@ UPDATE fac_setting SET fac_setting_pvalue = (SELECT MAX(fac_usrrap_key) FROM fac
fac.writelog ('INI.FMIS_INI','I', 'CAD completed', '');
-- 10. UDR
-- Kunnen we een paar FMIS-rapporten verzinnen? Neu.
-- Settings: Alleen settings die specifiek voor FM zijn en intrinsiek afwijken van de standaardinstellingen(!)
-- Instellingen: Alleen settings die specifiek voor FM zijn en intrinsiek afwijken van de standaardinstellingen(!)
-- Algemeen UPDATE fac_setting SET fac_setting_pvalue = 'no_reply@' || user || '.facilitor.nl' WHERE fac_setting_name = 'puo_fromaddress';
-- FMIS impliceert het een en ander
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'faq_enabled';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'mobile_enabled';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'qrc_enabled';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'vis_afspraak_host_uses_keys'; -- vind ik beter, terug kan altijd nog
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'vis_afspraak_onrgoed_uses_keys'; -- vind ik beter, terug kan altijd nog
fac.writelog ('INI.FMIS_INI','I', 'Settings completed', '');
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'vis_afspraak_host_uses_keys';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'vis_afspraak_onrgoed_uses_keys';
UPDATE fac_setting SET fac_setting_pvalue = '2' WHERE fac_setting_name = 'portalmenu_combine_single';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'fac_usrrap_mode';
UPDATE fac_setting SET fac_setting_pvalue = 'false' WHERE fac_setting_name = 'mld_accept_confirm';
UPDATE fac_setting SET fac_setting_pvalue = '1' WHERE fac_setting_name = 'mld_use_order_approval';
fac.writelog ('INI.FMIS_INI','I', 'Settings completed', '');
-- Autorisatiegroepen
-- We definieren deze groepen: Medewerker (_DEFAULT), Frontoffice, Backoffice, Beheerder (_ADMIN)
INSERT INTO fac_groep (fac_groep_omschrijving, fac_groep_opmerking) VALUES ('FMIS-Frontoffice', 'FMIS-autorisatiegroep voor frontoffice users');
INSERT INTO fac_groep (fac_groep_omschrijving, fac_groep_opmerking) VALUES ('FMIS-Backoffice', 'FMIS-autorisatiegroep voor backoffice users');
INSERT INTO fac_groep (fac_groep_omschrijving, fac_groep_opmerking) VALUES ('Applicatiebeheer', 'Autorisatiegroep voor functionele applicatiebeheerders van de klant (licentie rechten)');
INSERT INTO fac_groep (fac_groep_omschrijving, fac_groep_opmerking) VALUES ('_TESTERS', 'Autorisatiegroep voor testers van de klant tbv Facilitor trainingen');
-- Toekennen van de rechten om aan het werk te kunnen
-- We proberen ons zo goed mogelijk te beperken tot de functionaliteit die we hier zelf net hebben gedefinieerd.
-- In het bijzonder willen we geen bij-effecten als MLDUSE voor andere disciplines die toevallig al bestaan (bv uit ITSM_INI)
-- gaan toekennen. Voor Admin-groepen is dat wat minder strikt en doen we wel ons best.
-- Vooralsnog supporten we niet compleet dat je achteraf nog kunt initialiseren he.
UPDATE fac_groep
SET fac_groep_opmerking = 'Autorisatiegroep met alle applicatiebeheerrechten die mogelijk zijn (ook niet-licentierechten)'
WHERE fac_groep_omschrijving = '_Admin';
-- Medewerker rechten
-- Default rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_RESUSE', 'WEB_MLDUSE', 'WEB_BESUSE','WEB_BEZUSE','WEB_FAQUSE','WEB_PROFIL')
WHERE f.fac_functie_code IN ('WEB_RESUSE', 'WEB_MLDUSE', 'WEB_FAQUSE')
AND f.fac_functie_module = d.ins_discipline_module
AND g.fac_groep_upper = '_DEFAULT'
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
@@ -534,6 +344,30 @@ INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Default rechten die niet te koppelen zijn aan een discipline (globale rechten)
INSERT INTO fac_groeprechten (fac_groep_key,
fac_functie_key,
ins_discipline_key,
fac_gebruiker_alg_level_read,
fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read,
fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key,
f.fac_functie_key,
NULL,
-1,
-1,
-1,
-1
FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_BEZUSE','WEB_PROFIL', 'WEB_PRSOBJ', 'WEB_PHSRCH')
AND g.fac_groep_upper = '_DEFAULT'
AND NOT EXISTS
(SELECT gr.fac_groeprechten_key
FROM fac_groeprechten gr
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Frontoffice rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
@@ -541,7 +375,7 @@ INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_RESFOF', 'WEB_MLDFOF', 'WEB_BESFOF', 'WEB_BEZFOF', 'WEB_FAQFOF', 'WEB_INSFOF')
WHERE f.fac_functie_code IN ('WEB_RESFOF', 'WEB_MLDFOF', 'WEB_FAQFOF')
AND f.fac_functie_module = d.ins_discipline_module
AND g.fac_groep_upper = 'FMIS-FRONTOFFICE'
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
@@ -552,6 +386,30 @@ INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Frontoffice rechten die niet te koppelen zijn aan een discipline (globale rechten)
INSERT INTO fac_groeprechten (fac_groep_key,
fac_functie_key,
ins_discipline_key,
fac_gebruiker_alg_level_read,
fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read,
fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key,
f.fac_functie_key,
NULL,
-1,
-1,
-1,
-1
FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_BEZFOF', 'WEB_INSFOF', 'WEB_PRSFOF')
AND g.fac_groep_upper = 'FMIS-FRONTOFFICE'
AND NOT EXISTS
(SELECT gr.fac_groeprechten_key
FROM fac_groeprechten gr
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Backoffice rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
@@ -559,7 +417,7 @@ INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_RESBOF', 'WEB_MLDBOF', 'WEB_ORDBOF', 'WEB_BESBOF', 'WEB_BEZBOF', 'WEB_FAQBOF', 'WEB_INSUSE', 'WEB_INSMAN', 'WEB_CNTMAN', 'WEB_CNTUSE')
WHERE f.fac_functie_code IN ('WEB_RESBOF', 'WEB_MLDBOF', 'WEB_ORDBOF', 'WEB_FAQBOF')
AND f.fac_functie_module = d.ins_discipline_module
AND g.fac_groep_upper = 'FMIS-BACKOFFICE'
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
@@ -570,8 +428,80 @@ INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Backoffice rechten die niet te koppelen zijn aan een discipline (globale rechten)
INSERT INTO fac_groeprechten (fac_groep_key,
fac_functie_key,
ins_discipline_key,
fac_gebruiker_alg_level_read,
fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read,
fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key,
f.fac_functie_key,
NULL,
-1,
-1,
-1,
-1
FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_ALGUSE', 'WEB_RUIUSE', 'WEB_ALMAN', 'WEB_RUIMAN', 'WEB_TERMAN',
'WEB_BEZBOF', 'WEB_CNTMAN', 'WEB_CNTUSE', 'WEB_INSUSE', 'WEB_FAQBOF',
'WEB_INSMAN', 'WEB_INSUSE', 'WEB_MSGBOF', 'WEB_PRSMAN', 'WEB_RELMAN',
'WEB_EXTREL', 'WEB_PRSUSE')
AND g.fac_groep_upper = 'FMIS-BACKOFFICE'
AND NOT EXISTS
(SELECT gr.fac_groeprechten_key
FROM fac_groeprechten gr
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Beheerder rechten
-- Applicatiebeheer rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key, f.fac_functie_key, d.ins_discipline_key, -1, -1, -1, -1
FROM fac_functie f, ins_tab_discipline d, fac_groep g, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_RESMSU', 'WEB_MLDMSU', 'WEB_FAQMGT', 'WEB_FAQMSU',
'WEB_RESMGT', 'WEB_MLDMGT', 'WEB_RESBAC', 'WEB_MLDBAC')
AND f.fac_functie_module = d.ins_discipline_module
AND g.fac_groep_upper = 'APPLICATIEBEHEER'
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
AND (sd.ins_srtdiscipline_omschrijving LIKE 'FMIS-%' OR sd.ins_srtdiscipline_omschrijving IS NULL)
AND NOT EXISTS
(SELECT gr.fac_groeprechten_key
FROM fac_groeprechten gr
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_groep_key = g.fac_groep_key);
-- Applicatiebeheer rechten die niet te koppelen zijn aan een discipline (globale rechten)
INSERT INTO fac_groeprechten (fac_groep_key,
fac_functie_key,
ins_discipline_key,
fac_gebruiker_alg_level_read,
fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read,
fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key,
f.fac_functie_key,
NULL,
-1,
-1,
-1,
-1
FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_PRSMGT', 'WEB_PRSMSU', 'WEB_ALGMSU',
'WEB_ALGMGT', 'WEB_BEZMSU', 'WEB_BEZMGT', 'WEB_BEZBAC', 'WEB_CNTMSU', 'WEB_CNTMGT',
'WEB_FACMGT', 'WEB_FACMSU', 'WEB_IMPORT', 'WEB_PRSSYS', 'WEB_INSMGT', 'WEB_INSMSU')
AND g.fac_groep_upper = 'APPLICATIEBEHEER'
AND NOT EXISTS
(SELECT gr.fac_groeprechten_key
FROM fac_groeprechten gr
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.fac_groep_key = g.fac_groep_key);
-- _ADMIN rechten
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
@@ -590,11 +520,39 @@ INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.ins_discipline_key = d.ins_discipline_key
AND gr.fac_groep_key = g.fac_groep_key);
-- _ADMIN rechten die niet te koppelen zijn aan een discipline (globale rechten) muv WEB_FACFAC en WEB_FACHML en WEB_FACTAB
INSERT INTO fac_groeprechten (fac_groep_key,
fac_functie_key,
ins_discipline_key,
fac_gebruiker_alg_level_read,
fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read,
fac_gebruiker_prs_level_write)
SELECT g.fac_groep_key,
f.fac_functie_key,
NULL,
-1,
-1,
-1,
-1
FROM fac_functie f, fac_groep g --, ins_tab_discipline d, ins_srtdiscipline sd
WHERE f.fac_functie_code IN ('WEB_BEZBAC', 'WEB_BEZUSE', 'WEB_CADUSE',
'WEB_CADALG', 'WEB_CADCNT', 'WEB_CADMLD', 'WEB_CADPRS', 'WEB_CADSCH', 'WEB_FACQRC',
'WEB_EXTFIN', 'WEB_FINGOE', 'WEB_VERFAC', 'WEB_KPIRAP', 'WEB_UURUSE', 'WEB_MRKUSE',
'WEB_MSGUSE', 'WEB_PHONEB', 'WEB_PHSRCH', 'WEB_PROFIL', 'WEB_PRSOBJ', 'WEB_WGTUSE')
AND g.fac_groep_upper = '_ADMIN'
AND NOT EXISTS
(SELECT gr.fac_groeprechten_key
FROM fac_groeprechten gr
WHERE gr.fac_functie_key = f.fac_functie_key
AND gr.fac_groep_key = g.fac_groep_key);
-- _FACILITOR-rechten
-- We willen tbv Support dat _FACILITOR alles kan, dus ook rechten krijgt op de zaken
-- die hier zijn aangemaakt. De rest had-ie standaard al.
-- Dit zijn dus autorisaties als ORDAFR,ORDBO2, ORDGO5, UURBOF, CNTGO1 en MLDREO, to name a few.
-- Dit zijn dus autorisaties als ORDAFR, ORDBO2, ORDGO5, UURBOF, CNTGO1 en MLDREO.
INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key,
fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write,
fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write)
@@ -614,53 +572,16 @@ INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key
fac.writelog ('INI.FMIS_INI','I', 'AUT completed', '');
--
--
-- Een heel klein beetje voorbeeldvulling als appetizer
--
--
-- Importeren van locatie en gebouwen (ONRGOED1)
INSERT INTO fac_imp_onrgoed1 (alg_regio_omschrijving, alg_district_omschrijving,
-- Voorbeeldvulling
-- Importeren van locatie en gebouwen (ONRGOED1) - voor nu weglaten. Als klanten wellicht dit zelf gaan gebruiken dan kan het toegevoegd worden wel dan een lijst van 5 en niet 1 waarde.
/* INSERT INTO fac_imp_onrgoed1 (alg_regio_omschrijving, alg_district_omschrijving,
alg_locatie_code, alg_locatie_omschrijving, alg_gebouw_code, alg_gebouw_naam, alg_srtgebouw_omschrijving,
alg_locatie_adres, alg_locatie_postcode, alg_locatie_plaats)
VALUES ('Nederland', 'Midden',
'UTR','Hoofdkantoor','HQ','Hoofdgebouw','Kantoor',
'Grotestraat 123','1234 AB','Utrecht');
BEGIN fac_update_onrgoed1(ini.getImportKey('ONRGOED1')); END;
DELETE FROM fac_imp_onrgoed1;
-- Importeren van vergaderzalen (ONRGOED2)
INSERT INTO fac_imp_onrgoed2 (alg_locatie_code, alg_gebouw_code, alg_verdieping_volgnr, alg_srtruimte_omschrijving,
alg_ruimte_nr, alg_ruimte_omschrijving, reserveerbaar,
res_discipline_omschrijving, res_opstelling_omschrijving, res_ruimte_opstel_bezoekers, res_ruimte_nr)
SELECT 'UTR', 'HQ', 0, 'Vergaderruimte', '0.12', 'Vergaderruimte 1', 'J', 'Vergaderruimte', 'Standaard', 10, 'Dahlia' FROM DUAL UNION ALL
SELECT 'UTR', 'HQ', 0, 'Vergaderruimte', '0.13', 'Vergaderruimte 2', 'J', 'Vergaderruimte', 'Standaard', 8, 'Rozentuin' FROM DUAL;
-- Importeren van losse ruimten
INSERT INTO fac_imp_onrgoed2( alg_locatie_code, alg_gebouw_code, alg_verdieping_volgnr, alg_srtruimte_omschrijving, alg_ruimte_nr, alg_ruimte_omschrijving)
SELECT 'UTR', 'HQ', 0, 'Verkeersruimte', '0.01', 'Gang' FROM DUAL UNION ALL
SELECT 'UTR', 'HQ', 0, 'Kantoor', '0.02', 'Kantoor 0.02' FROM DUAL UNION ALL
SELECT 'UTR', 'HQ', 0, 'Kantoor', '0.03', 'Kantoor 0.03' FROM DUAL UNION ALL
SELECT 'UTR', 'HQ', 0, 'Kantoor', '0.04', 'Kantoor 0.04' FROM DUAL;
BEGIN fac_update_onrgoed2(ini.getImportKey('ONRGOED2')); END;
DELETE FROM fac_imp_onrgoed2;
-- Mooier:
UPDATE alg_verdieping SET alg_verdieping_omschrijving = 'Begane grond' WHERE alg_verdieping_upper = 'VERDIEPING 0';
-- Importeren van flexplekken (INS)
INSERT INTO fac_imp_ins (ins_discipline_omschrijving, ins_srtgroep_omschrijving,ins_srtdeel_code,ins_srtdeel_omschrijving,ins_deel_omschrijving,
alg_locatie_code,alg_gebouw_code,alg_verdieping_volgnr,alg_ruimte_nr,ins_deel_aantal,reserveerbaar,res_deel_alg_level,res_discipline_omschrijving)
SELECT 'Werkplekken', 'Werkplekken', 'FLEXDS', 'Flexplek met dockingstation', 'FLEXDS003.1', 'UTR', 'HQ', 0, '0.03', 1, 1, 4, 'Werkplekreservering' FROM DUAL UNION ALL
SELECT 'Werkplekken', 'Werkplekken', 'FLEXDS', 'Flexplek met dockingstation', 'FLEXDS004.1', 'UTR', 'HQ', 0, '0.04', 1, 1, 4, 'Werkplekreservering' FROM DUAL UNION ALL
SELECT 'Werkplekken', 'Werkplekken', 'FLEX', 'Flexplek', 'FLEX004.2', 'UTR', 'HQ', 0, '0.04', 1, 1, 4, 'Werkplekreservering' FROM DUAL;
BEGIN fac_update_ins(ini.getImportKey('INS')); END;
DELETE FROM fac_imp_ins;
DELETE FROM fac_imp_onrgoed1; */
-- Wil ik dit, en zo, en specifiek? Core!
INSERT INTO fac_menu (fac_menu_altlabel,
@@ -682,16 +603,6 @@ INSERT INTO fac_menu (fac_menu_altlabel,
FROM fac_functie f, res_discipline rd
WHERE rd.ins_discipline_omschrijving = 'Flexplekken' AND f.fac_functie_code = 'WEB_RESUSE';
-- Reserveerbare artikelen
INSERT INTO fac_imp_res_artikel_sync (res_discipline_oms, res_artikel_nr, res_artikel_omschrijving, res_artikel_eenheid, res_artikel_prijs, res_artikel_prijs_vast)
SELECT 'Dranken', 'D002', 'Thee', 'Kan', '5.50', 1 FROM DUAL UNION ALL
SELECT 'Dranken', 'D003', 'Frisdrank', 'Flesje', '2.50', 1 FROM DUAL UNION ALL
SELECT 'Dranken', 'D004', 'Water', 'Kan', '2.00', 1 FROM DUAL UNION ALL
SELECT 'Dranken', 'D001', 'Koffie', 'Kan', '7.50', 1 FROM DUAL;
BEGIN fac_update_res_artikel_sync(ini.getImportKey('RES_ARTIKEL_SYNC')); END;
DELETE FROM fac_imp_res_artikel_sync;
-- Interne organisatiestructuur (ORGANISATIE), is die kostenplaats nodig?
INSERT INTO fac_imp_organisatie (prs_bedrijf_naam, prs_afdeling_naam, prs_afdeling_omschrijving, prs_kostenplaats_nr)
SELECT 'Onze organisatie', 'SALES', 'Sales & Marketing', 'S' FROM DUAL UNION ALL
@@ -699,51 +610,163 @@ INSERT INTO fac_imp_organisatie (prs_bedrijf_naam, prs_afdeling_naam, prs_afdeli
SELECT 'Onze organisatie', 'HR', 'Personeel & Organisatie', 'P' FROM DUAL UNION ALL
SELECT 'Onze organisatie', 'ICT', 'ICT', 'I' FROM DUAL UNION ALL
SELECT 'Onze organisatie', 'FIN', 'Finance', 'FIN' FROM DUAL UNION ALL
SELECT 'Onze organisatie', 'MW', 'Overig', 'MW' FROM DUAL UNION ALL
SELECT 'Onze organisatie', 'MW', 'Overig', 'MW' FROM DUAL UNION ALL
SELECT 'Onze organisatie', 'FM', 'Facility Management', 'FM' FROM DUAL;
BEGIN fac_update_organisatie(ini.getImportKey('ORGANISATIE')); END;
DELETE FROM fac_imp_organisatie;
-- Minimale gebruikers, moet gedocumenteerd worden, wachtwoorden via wachtwoord-vergeten oid
-- nummers/mail hebben bewust ongeldig format om gegarandeerd ongeldig te zijn
INSERT INTO fac_imp_perslid (prs_afdeling_naam, prs_perslid_naam, prs_perslid_voornaam, prs_perslid_telefoonnr, prs_perslid_mobiel, prs_perslid_email, prs_srtperslid_omschrijving, prs_perslid_nr, prs_perslid_oslogin, prs_perslid_wachtwoord)
SELECT 'MW' a, 'Medewerker' b, 'Marco' c, '022-398345' d, '06-2978529' e, 'marco.medewerker@wxyz' f, 'Medewerker' g, '001' h, 'Marco' i, 'Medewerker21#' j FROM DUAL UNION ALL
SELECT 'FM', 'Backoffice', 'Bas', '022-398346', '06-2978630', 'bas.backoffice@wxyz', 'Medewerker', '002', 'Bas', 'Backoffice21#' FROM DUAL UNION ALL
SELECT 'FM', 'Frontoffice', 'Furkan', '022-398248', '06-2935632', 'furkan.frontoffice@wxyz', 'Medewerker', '003', 'Furkan', 'Frontoffice21#' FROM DUAL UNION ALL
SELECT 'ICT', 'Beheerder', 'Barbara', '022-398247', '06-2937631', 'barbara.beheerder@wxyz', 'Medewerker', '004', 'Barbara', 'Beheerder21#' FROM DUAL;
SELECT 'MW', 'Medewerker', 'Marco', '022-398345', '06-2978529', 'marco.medewerker@wxyz', 'Medewerker', '001', 'Marco', 'Medewerker21#' FROM DUAL UNION ALL
SELECT 'FM', 'Backoffice', 'Bas', '022-398346', '06-2978630', 'bas.backoffice@wxyz', 'Medewerker', '002', 'Bas', 'Backoffice21#' FROM DUAL UNION ALL
SELECT 'FM', 'Frontoffice', 'Furkan', '022-398248', '06-2935632', 'furkan.frontoffice@wxyz', 'Medewerker', '003', 'Furkan', 'Frontoffice21#' FROM DUAL UNION ALL
SELECT 'ICT', 'Beheerder', 'Barbara', '022-398247', '06-2937631', 'barbara.beheerder@wxyz', 'Medewerker', '004', 'Barbara', 'Beheerder21#' FROM DUAL;
BEGIN fac_update_perslid(ini.getImportKey('PERSLID')); END;
DELETE FROM fac_imp_perslid;
-- Rechten toekennen aan de personen
-- Iedereen zit standaard al in de _default groep
-- De beheerder zetten we in de beheerdersgroep en de ook in de backoffice groep? Nou, ik vind toch eigenlijk van niet.
-- INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep, prs_perslid p WHERE g.fac_groep_upper = '_DEFAULT' AND p.prs_perslid_naam = 'Medewerker'
-- Iedereen zit standaard in de _DEFAULT groep
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'FMIS-BACKOFFICE' AND p.prs_perslid_naam = 'Backoffice';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'FMIS-FRONTOFFICE' AND p.prs_perslid_naam = 'Backoffice';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'FMIS-FRONTOFFICE' AND p.prs_perslid_naam = 'Frontoffice';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = '_ADMIN' AND p.prs_perslid_naam = 'Beheerder';
--INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'FMIS-BACKOFFICE' AND p.prs_perslid_naam = 'Beheerder';
--INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'FMIS-FRONTOFFICE' AND p.prs_perslid_naam = 'Beheerder';
-- INS
INSERT INTO fac_imp_ins (ins_discipline_omschrijving, ins_srtgroep_omschrijving,ins_srtdeel_code,ins_srtdeel_omschrijving,ins_deel_omschrijving,
alg_locatie_code,alg_gebouw_code,alg_verdieping_volgnr,alg_ruimte_nr,ins_deel_aantal)
SELECT 'Automaten', 'Koffieautomaten', 'KOF', 'Koffieautomaat', 'KOF001', 'UTR', 'HQ', 0, '0.01', 1 FROM DUAL UNION ALL
SELECT 'Automaten', 'Koffieautomaten', 'KOF', 'Koffieautomaat', 'KOF002', 'UTR', 'HQ', 0, '0.01', 1 FROM DUAL;
BEGIN fac_update_ins(ini.getImportKey('INS')); END;
DELETE FROM fac_imp_ins;
fac.writelog ('INI.FMIS_INI','I', 'Sample content completed', '');
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) SELECT g.fac_groep_key, p.prs_perslid_key FROM fac_groep g, prs_perslid p WHERE g.fac_groep_upper = 'APPLICATIEBEHEER' AND p.prs_perslid_naam = 'Beheerder';
-- Nieuws bericht
INSERT INTO fac_nieuws (fac_nieuws_titel, fac_nieuws_omschrijving, fac_nieuws_image,
prs_perslid_key)
SELECT 'Facilitor voor al je facilitaire zaken', 'Gefeliciteerd met de keuze voor Facilitor/FMIS! Dit is een eerste stap naar totale controle over je dienstverlenende processen.', 'fa-person-through-window',
SELECT 'Facilitor voor al je facilitaire zaken', 'Gefeliciteerd met de keuze voor Facilitor! Dit is een eerste stap naar totale controle over je dienstverlenende processen.', 'fa-person-through-window',
prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_oslogin = '_FACILITOR';
-- 'Help me' verwijderen
DELETE FROM fac_menu WHERE fac_menu_altlabel = 'lcl_menu_mld_fe_5';
-- Widgetpagina aanmaken
/* DECLARE
mijn_widget_paginakey fac_widget_page.fac_widget_page_key%TYPE;
mijn_aanvraag_paginakey fac_menu.fac_menu_key%TYPE;
mijn_storing_paginakey fac_menu.fac_menu_key%TYPE;
mijn_klacht_paginakey fac_menu.fac_menu_key%TYPE;
mijn_aanvraag_widgetkey fac_widget.fac_widget_key%TYPE;
mijn_storing_widgetkey fac_widget.fac_widget_key%TYPE;
mijn_klacht_widgetkey fac_widget.fac_widget_key%TYPE;
BEGIN
INSERT INTO fac_widget_page(fac_widget_page_name, prs_perslid_key, fac_groep_key) VALUES ('Startpagina', NULL, NULL)
RETURNING fac_widget_page_key INTO mijn_widget_paginakey;
UPDATE fac_setting SET fac_setting_pvalue = mijn_widget_paginakey WHERE fac_setting_name = 'widgetportal';
-- Menuitems Aanvraag, Storing, Klacht aanmaken
INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key) VALUES ( NULL, 'Doe een aanvraag', 0, 'fa-comments-question-check', NULL, NULL, 60, '/appl/mld/mld_fe_menu.asp?srtdisc=1&lvl=1', NULL, NULL, 2, NULL, NULL)
RETURNING fac_menu_key INTO mijn_aanvraag_paginakey;
INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key) VALUES ( NULL, 'Meld een storing', 0, 'fa-comments-alt-exclamation', NULL, NULL, 70, '/appl/mld/mld_fe_menu.asp?srtdisc=3&lvl=1', NULL, NULL, 2, NULL, NULL)
RETURNING fac_menu_key INTO mijn_storing_paginakey;
INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key) VALUES ( NULL, 'Meld een klacht', 0, 'fa-bell-ring', NULL, NULL, 80, '/appl/mld/mld_fe_menu.asp?srtdisc=2&lvl=1', NULL, NULL, 2, NULL, NULL)
RETURNING fac_menu_key INTO mijn_klacht_paginakey;
-- losse widgets aanmaken van de menuitems
INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public) VALUES ('MI', 'Doe een aanvraag', mijn_aanvraag_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
RETURNING fac_widget_key INTO mijn_aanvraag_widgetkey;
INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public) VALUES ('MI', 'Meld een storing', mijn_storing_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
RETURNING fac_widget_key INTO mijn_storing_widgetkey;
INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public) VALUES ('MI', 'Meld een klacht', mijn_klacht_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
RETURNING fac_widget_key INTO mijn_klacht_widgetkey;
-- Widgets op de widgetpagina zetten
INSERT ALL INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_aanvraag_widgetkey, 0, null, 33)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_storing_widgetkey, 1, null, 33)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_klacht_widgetkey, 2, null, 33)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 1, 3, null, 100)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 2, 4, null, 100)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 3, 5, null, 100)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 4, 6, null, 100)
SELECT 1 FROM DUAL;
END; */
DECLARE
-- CNT declaraties
v_discipline_key ins_tab_discipline.ins_discipline_key%TYPE;
v_key cnt_srtkenmerk.cnt_srtkenmerk_key%TYPE;
-- Widgetpagina declaraties
mijn_widget_paginakey fac_widget_page.fac_widget_page_key%TYPE;
mijn_aanvraag_paginakey fac_menu.fac_menu_key%TYPE;
mijn_storing_paginakey fac_menu.fac_menu_key%TYPE;
mijn_klacht_paginakey fac_menu.fac_menu_key%TYPE;
mijn_aanvraag_widgetkey fac_widget.fac_widget_key%TYPE;
mijn_storing_widgetkey fac_widget.fac_widget_key%TYPE;
mijn_klacht_widgetkey fac_widget.fac_widget_key%TYPE;
BEGIN
-- CNT inserts
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Onderhoudscontract', 'CNT')
RETURNING ins_discipline_key INTO v_discipline_key;
INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 1);
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Servicecontract', 'CNT')
RETURNING ins_discipline_key INTO v_discipline_key;
INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 3);
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Algemeen contract', 'CNT')
RETURNING ins_discipline_key INTO v_discipline_key;
INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 4);
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Leverancierscontract', 'CNT')
RETURNING ins_discipline_key INTO v_discipline_key;
INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 5);
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving, ins_discipline_module) VALUES ('Mantelcontract', 'CNT')
RETURNING ins_discipline_key INTO v_discipline_key;
INSERT INTO cnt_disc_params (cnt_ins_discipline_key, cnt_srtcontract_type) VALUES (v_discipline_key, 6);
-- Alle contracten hebben bijlagen
INSERT INTO cnt_srtkenmerk (cnt_srtkenmerk_omschrijving, cnt_srtkenmerk_kenmerktype) VALUES ('Bijlagen', 'M')
RETURNING cnt_srtkenmerk_key INTO v_key;
INSERT INTO cnt_kenmerk (cnt_srtkenmerk_key,
cnt_srtcontract_key,
cnt_kenmerk_niveau,
cnt_kenmerk_volgnummer,
cnt_kenmerk_groep)
SELECT v_key, ins_discipline_key, 'S', 100, 0 FROM cnt_discipline;
-- Widgetpagina inserts
INSERT INTO fac_widget_page(fac_widget_page_name, prs_perslid_key, fac_groep_key) VALUES ('Startpagina', NULL, NULL)
RETURNING fac_widget_page_key INTO mijn_widget_paginakey;
UPDATE fac_setting SET fac_setting_pvalue = mijn_widget_paginakey WHERE fac_setting_name = 'widgetportal';
-- Menuitems Aanvraag, Storing, Klacht aanmaken
INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key)
VALUES (NULL, 'Doe een aanvraag', 0, 'fa-comments-question-check', NULL, NULL, 60, '/appl/mld/mld_fe_menu.asp?srtdisc=1&lvl=1', NULL, NULL, 2, NULL, NULL)
RETURNING fac_menu_key INTO mijn_aanvraag_paginakey;
INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key)
VALUES (NULL, 'Meld een storing', 0, 'fa-message-exclamation', NULL, NULL, 70, '/appl/mld/mld_fe_menu.asp?srtdisc=3&lvl=1', NULL, NULL, 2, NULL, NULL)
RETURNING fac_menu_key INTO mijn_storing_paginakey;
INSERT INTO fac_menu(fac_menuitems_key, fac_menu_altlabel, fac_menu_altgroep, fac_menu_image, fac_menu_info, fac_menu_message, fac_menu_volgnr, fac_menu_alturl, fac_functie_key, fac_menu_portal, fac_menu_level, ins_srtdiscipline_key, ins_discipline_key)
VALUES (NULL, 'Meld een klacht', 0, 'fa-bell-ring', NULL, NULL, 80, '/appl/mld/mld_fe_menu.asp?srtdisc=2&lvl=1', NULL, NULL, 2, NULL, NULL)
RETURNING fac_menu_key INTO mijn_klacht_paginakey;
-- Widgets aanmaken
INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public)
VALUES ('MI', 'Doe een aanvraag', mijn_aanvraag_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
RETURNING fac_widget_key INTO mijn_aanvraag_widgetkey;
INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public)
VALUES ('MI', 'Meld een storing', mijn_storing_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
RETURNING fac_widget_key INTO mijn_storing_widgetkey;
INSERT INTO fac_widget(fac_widget_type, fac_widget_naam, fac_widget_typerefkey, fac_widget_content, fac_widget_url, fac_widget_title, fac_widget_refreshtime, fac_widget_id, fac_widget_height, fac_widget_width, fac_functie_key, fac_widget_public)
VALUES ('MI', 'Meld een klacht', mijn_klacht_paginakey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0)
RETURNING fac_widget_key INTO mijn_klacht_widgetkey;
-- Widgets op de pagina zetten
INSERT ALL
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_aanvraag_widgetkey, 0, NULL, 33)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_storing_widgetkey, 1, NULL, 33)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, mijn_klacht_widgetkey, 2, NULL, 33)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 1, 3, NULL, 100)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 2, 4, NULL, 100)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 3, 5, NULL, 100)
INTO fac_widget_onpage (fac_widget_page_key, fac_widget_key, fac_widget_onpage_order, fac_widget_onpage_height, fac_widget_onpage_width) VALUES (mijn_widget_paginakey, 4, 6, NULL, 100)
SELECT 1 FROM DUAL;
END;
fac.writelog ('INI.FMIS_INI','I', 'All completed', '');
------ payload end ------

View File

@@ -905,14 +905,14 @@ fac.writelog ('INI.ITSM_INI','I', 'FAC completed', '');
-- Kenmerksoorten per standaardmelding
-- Incidenten hebben kenmerken op vakgroeptypeniveau zodat een klant eenvoudig zelf incidenten kan toevoegen
INSERT INTO mld_kenmerk (mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_omschrijving)
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 5 , 'Onderzoek en diagnose' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Bloktitel'
INSERT INTO mld_kenmerk (mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_rolcode, mld_kenmerk_volgnummer, mld_kenmerk_omschrijving)
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 7, 5 , 'Onderzoek en diagnose' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Bloktitel'
UNION ALL
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 10 , 'Bijlagen' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Bijlagen'
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 7, 10 , 'Bijlagen' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Bijlagen'
UNION ALL
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 905 , 'Workaround mogelijk?' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Ja/Nee/Nvt'
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 4, 20 , 'Workaround mogelijk?' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Ja/Nee/Nvt'
UNION ALL
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 910 , 'Toelichting/beschrijving workaround' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Tekstblok';
SELECT sk.mld_srtkenmerk_key, v_vgt_incident, 'T', 4, 30 , 'Toelichting/beschrijving workaround' FROM mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_omschrijving = 'ITSM Tekstblok';
-- Niet-standaard wijzigingen hebben kenmerken op vakgroep niveau zodat een klant eenvoudig een nieuwe categorie niet-standaard wijziging kan toevoegen
-- Niet-standaard wijziging kennen Deelmeldingen

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,
@@ -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

View File

@@ -354,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) := '_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 _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
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
@@ -626,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

@@ -42,47 +42,94 @@ AS
/* Voor onderdelen de plaats/eigenaar van de parent. */
CREATE_VIEW(ins_v_deelenonderdeel, 0)
AS
SELECT ins_deel_key,
ins_deel_module,
ins_srtdeel_key,
(COALESCE(dl.ins_alg_ruimte_key, (SELECT d2.ins_alg_ruimte_key FROM ins_deel d2 WHERE d2.ins_deel_key = dl.ins_deel_parent_key))) ins_alg_ruimte_key,
(COALESCE(dl.ins_alg_ruimte_type, (SELECT d2.ins_alg_ruimte_type FROM ins_deel d2 WHERE d2.ins_deel_key = dl.ins_deel_parent_key))) ins_alg_ruimte_type,
ins_deel_aantal,
ins_deel_omschrijving,
ins_deel_opmerking,
ins_deel_upper,
ins_deel_aanmaak,
ins_deel_vervaldatum,
ins_deel_verwijder,
ins_deel_getekend,
ins_discipline_key,
ins_alg_locatie_key,
ins_deel_parent_key,
ins_deel_omtrek,
ins_deel_oppervlak,
ins_deel_dwgx,
ins_deel_dwgy,
ins_deel_dwgz,
ins_deel_dwgrotatie,
ins_deel_dwgschaal,
ins_deel_x,
ins_deel_y,
ins_alg_ruimte_key_org,
ins_alg_ruimte_type_org,
ins_deel_state,
ins_deel_statedate,
ins_deel_t_uitvoertijd,
ins_deel_actief,
ins_deel_image,
ins_deel_mjb_score1,
ins_deel_mjb_score2,
ins_deel_externnr,
ins_deel_externsyncdate,
ins_deel_flag,
prs_perslid_key_beh,
res_rsv_deel_key,
bes_bestelopdr_key
FROM ins_deel dl;
-- Hoofdobjecten.
SELECT dl.ins_deel_key,
dl.ins_deel_module,
dl.ins_srtdeel_key,
ins_alg_ruimte_key ins_alg_ruimte_key,
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
WHERE dl.ins_deel_parent_key IS NULL
UNION ALL
-- Onderdelen.
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,
COALESCE(dl.ins_deel_vervaldatum, parent_deel.ins_deel_vervaldatum) ins_deel_vervaldatum,
dl.ins_deel_verwijder,
dl.ins_deel_getekend,
dl.ins_discipline_key,
COALESCE(dl.ins_alg_locatie_key, parent_deel.ins_alg_locatie_key) 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
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,
@@ -2665,6 +2712,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
@@ -2700,13 +2783,14 @@ 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
@@ -2773,5 +2857,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);

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)

View File

@@ -25,9 +25,11 @@ CREATE OR REPLACE PACKAGE mld AS
PROCEDURE notifyprio (pmeldingkey IN NUMBER, prio IN NUMBER, pperslid_key IN NUMBER, pdisc_level IN NUMBER DEFAULT 1);
PROCEDURE notifyopdrgoedkeurders (popdrkey IN NUMBER);
PROCEDURE notifyopdrbedrijven (popdrkey NUMBER,
ptrackingkey NUMBER);
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
PROCEDURE notifymeldingbedrijven (pmldkey NUMBER,
ptrackingkey NUMBER);
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL);
FUNCTION getinstemmer (pmldkey IN NUMBER) RETURN NUMBER;
PROCEDURE notifyinstemmer (pmldkey IN NUMBER);
FUNCTION mld_besteed_budget_pgb (p_prs_key IN NUMBER, p_disc_key IN NUMBER)
@@ -60,6 +62,15 @@ CREATE OR REPLACE PACKAGE mld AS
eenheid IN VARCHAR2 DEFAULT NULL
) RETURN MLD_T_UITVOERTIJD;
FUNCTION getactualuitvoer (p_melding_key IN NUMBER) RETURN MLD_T_UITVOERTIJD;
FUNCTION getactualaccept (startdate IN DATE,
enddate IN DATE,
stdm_key IN NUMBER,
prio IN NUMBER,
alg_key IN NUMBER,
ins_key IN NUMBER,
eenheid IN VARCHAR2 DEFAULT NULL
) RETURN MLD_T_UITVOERTIJD;
FUNCTION getactualaccept (p_melding_key IN NUMBER) RETURN MLD_T_UITVOERTIJD;
FUNCTION getstduitvoer (stdm_key IN NUMBER,
prio IN NUMBER,
alg_key IN NUMBER,
@@ -71,6 +82,7 @@ CREATE OR REPLACE PACKAGE mld AS
ins_key IN NUMBER,
v_mld_stdmelding_regime OUT NUMBER,
v_uitvoertijd_object OUT MLD_T_UITVOERTIJD,
v_accepttijd OUT MLD_T_UITVOERTIJD,
v_beginuur OUT NUMBER,
v_einduur OUT NUMBER,
v_werkdagen OUT NUMBER
@@ -250,7 +262,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
END IF;
WHEN 1 -- Afgewezen
THEN
IF currentstatus IS NULL OR currentstatus = 0 OR currentstatus = 2
IF currentstatus IS NULL OR currentstatus = 0 OR currentstatus = 2 OR currentstatus = 4
THEN
newstatus := pstatus;
eventcode := 'MLDREJ';
@@ -326,6 +338,11 @@ CREATE OR REPLACE PACKAGE BODY mld AS
THEN
behandelaar2_key := NULL;
END IF;
-- Van actiecode bit 128 wissen indien gezet.
IF BITAND(actiecode, 128) = 128
THEN
actiecode := actiecode - 128;
END IF;
END IF;
WHEN 6 -- Verwerkt
THEN
@@ -526,9 +543,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
THEN
newstatus := pstatus;
eventcode := 'ORDNEW';
IF teverzenden IS NULL OR teverzenden = 1 -- gebruiker heeft aangegeven 'niet versturen'
IF l_notificeren = 1 AND (teverzenden IS NULL OR teverzenden = 0) -- gebruiker heeft aangegeven 'niet versturen'
THEN
l_notificeren := 0;
l_notificeren := 2; -- alleen niet naar technisch adres
END IF;
END IF;
WHEN 6 -- Proces Technisch voltooid (TV) (Afgemeld)
@@ -601,6 +618,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
THEN
eventcode := '#' || eventcode;
END IF;
IF l_notificeren = 2 AND eventcode IS NOT NULL
THEN
eventcode := '@' || eventcode; -- Niet naar technisch adres, wel naar personen
END IF;
fac.trackaction (eventcode, popdrachtkey, puserkey, NULL, NULL, new_fac_tracking_key);
IF popdr_note_key IS NOT NULL
THEN
@@ -1426,7 +1447,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
-- in het bijzonder de uitvoerende maar het mag ook een
-- ander 'subscribed' bedrijf zijn (bedrijfadres_type 'G').
PROCEDURE notifyopdrbedrijven (popdrkey NUMBER,
ptrackingkey NUMBER)
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
FOR bedrijfrec
@@ -1468,13 +1490,16 @@ CREATE OR REPLACE PACKAGE BODY mld AS
preference => bedrijfrec.reference,
ptypeopdr_key => bedrijfrec.mld_typeopdr_key,
plocatie_key => bedrijfrec.alg_locatie_key,
pdisc_key => bedrijfrec.mld_opdr_discipline_key,
psender => bedrijfrec.alg_locatie_email);
pdiscipline_key => bedrijfrec.mld_opdr_discipline_key,
psender => bedrijfrec.alg_locatie_email,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
pnotidelay => pnotidelay);
END LOOP;
END;
PROCEDURE notifymeldingbedrijven (pmldkey NUMBER,
ptrackingkey NUMBER)
ptrackingkey NUMBER,
pnotidelay NUMBER DEFAULT NULL)
AS
BEGIN
FOR bedrijfrec
@@ -1512,8 +1537,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
ptrackingkey => ptrackingkey,
preference => bedrijfrec.reference,
plocatie_key => bedrijfrec.alg_locatie_key,
pdisc_key => bedrijfrec.mld_ins_discipline_key,
psender => bedrijfrec.alg_locatie_email);
pdiscipline_key => bedrijfrec.mld_ins_discipline_key,
psender => bedrijfrec.alg_locatie_email,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
pnotidelay => pnotidelay);
END LOOP;
END;
@@ -1773,8 +1800,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
l_alg_gebouw_key alg_v_allonrgoed_gegevens.alg_gebouw_key%TYPE;
l_alg_verdieping_key alg_v_allonrgoed_gegevens.alg_verdieping_key %TYPE;
l_alg_ruimte_key alg_v_allonrgoed_gegevens.alg_ruimte_key%TYPE;
l_alg_type alg_v_allonrgoed_gegevens.alg_type%TYPE;
l_prs_dienst_key NUMBER;
l_prs_bedrijf_key prs_v_aanwezigbedrijf.prs_bedrijf_key%TYPE;
l_cnt_contract_key cnt_contract.cnt_contract_key%TYPE;
l_aantal NUMBER;
l_bdl_tijdsduur prs_bedrijfdienstlocatie.prs_bdl_t_uitvoertijd.tijdsduur%TYPE;
l_bdl_eenheid prs_bedrijfdienstlocatie.prs_bdl_t_uitvoertijd.eenheid%TYPE;
@@ -1878,9 +1907,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
, mto.mld_typeopdr_fvs
, mto.mld_typeopdr_gvs
, mto.mld_typeopdr_isofferte
, mld_typeopdr_kosten
, mld_typeopdr_kosten_verplicht
, mld_typeopdr_slamode
, mto.mld_typeopdr_kosten
, mto.mld_typeopdr_kosten_verplicht
, mto.mld_typeopdr_slamode
INTO l_mld_typeopdr_key
, l_mld_typeopdr_fvs
, l_mld_typeopdr_gvs
@@ -2022,9 +2051,11 @@ CREATE OR REPLACE PACKAGE BODY mld AS
SELECT g.alg_gebouw_key
, g.alg_verdieping_key
, g.alg_ruimte_key
, g.alg_type
INTO l_alg_gebouw_key
, l_alg_verdieping_key
, l_alg_ruimte_key
, l_alg_type
FROM alg_v_allonrgoed_gegevens g
WHERE g.alg_onroerendgoed_keys = l_mld_alg_onroerendgoed_keys;
END IF;
@@ -2045,7 +2076,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
IF l_prs_dienst_key IS NOT NULL
THEN
-- Controleer of er <20><>n bedrijf is dat deze dienst levert (op deze locatie/dit gebouw)
-- Controleer of er <20><>n bedrijf is dat deze dienst levert (op deze locatie/dit gebouw) via prs_bedrijfdienstlocatie
IF l_alg_gebouw_key IS NOT NULL
THEN
SELECT MIN(bdl.prs_bedrijf_key) prs_bedrijf_key
@@ -2060,10 +2091,13 @@ CREATE OR REPLACE PACKAGE BODY mld AS
, prs_v_aanwezigbedrijf b
WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key
AND bdl.prs_dienst_key = l_prs_dienst_key
AND ((bdl.alg_gebouw_key = l_alg_gebouw_key
OR bdl.alg_gebouw_key IS NULL)
AND (bdl.alg_locatie_key = l_mld_alg_locatie_key
OR bdl.alg_locatie_key IS NULL))
AND ( ( bdl.alg_gebouw_key = l_alg_gebouw_key
OR bdl.alg_gebouw_key IS NULL
)
AND ( bdl.alg_locatie_key = l_mld_alg_locatie_key
OR bdl.alg_locatie_key IS NULL
)
)
AND bdl.mld_autoorder = 1;
ELSIF l_mld_alg_locatie_key IS NOT NULL
THEN
@@ -2079,8 +2113,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
, prs_v_aanwezigbedrijf b
WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key
AND bdl.prs_dienst_key = l_prs_dienst_key
AND (bdl.alg_locatie_key = l_mld_alg_locatie_key
OR bdl.alg_locatie_key IS NULL)
AND ( bdl.alg_locatie_key = l_mld_alg_locatie_key
OR bdl.alg_locatie_key IS NULL
)
AND bdl.mld_autoorder = 1;
ELSE
SELECT MIN(bdl.prs_bedrijf_key) prs_bedrijf_key
@@ -2105,6 +2140,56 @@ CREATE OR REPLACE PACKAGE BODY mld AS
THEN
l_prs_bedrijf_key := NULL;
END IF;
--
-- Controleer of er <20><>n bedrijf is dat deze dienst levert (op deze locatie/dit gebouw) via cnt_contract_plaats
IF l_aantal <> 1
THEN
IF l_mld_alg_onroerendgoed_keys IS NOT NULL
THEN
SELECT MIN(c.cnt_prs_bedrijf_key) cnt_prs_bedrijf_key
, MIN(cp.cnt_contract_key) cnt_contract_key
, COUNT(DISTINCT c.cnt_prs_bedrijf_key) aantal
INTO l_prs_bedrijf_key
, l_cnt_contract_key
, l_aantal
FROM cnt_contract c
, cnt_contract_plaats cp
, cnt_disc_params cd
WHERE cp.cnt_contract_key = c.cnt_contract_key
AND cd.cnt_ins_discipline_key = c.ins_discipline_key
AND SYSDATE BETWEEN c.cnt_contract_looptijd_van
AND c.cnt_contract_looptijd_tot
AND c.cnt_contract_verwijder IS NULL
AND cd.cnt_srtcontract_type IN (3,5)
AND cp.cnt_alg_plaats_key = l_mld_alg_onroerendgoed_keys
AND cp.cnt_alg_plaats_code = l_alg_type
AND c.prs_dienst_key = l_prs_dienst_key;
ELSE
SELECT MIN(c.cnt_prs_bedrijf_key) cnt_prs_bedrijf_key
, MIN(cp.cnt_contract_key) cnt_contract_key
, COUNT(DISTINCT c.cnt_prs_bedrijf_key) aantal
INTO l_prs_bedrijf_key
, l_cnt_contract_key
, l_aantal
FROM cnt_contract c
, cnt_contract_plaats cp
, cnt_disc_params cd
WHERE cp.cnt_contract_key = c.cnt_contract_key
AND cd.cnt_ins_discipline_key = c.ins_discipline_key
AND SYSDATE BETWEEN c.cnt_contract_looptijd_van
AND c.cnt_contract_looptijd_tot
AND c.cnt_contract_verwijder IS NULL
AND cd.cnt_srtcontract_type IN (3,5)
AND cp.cnt_alg_plaats_key = l_mld_alg_locatie_key
AND cp.cnt_alg_plaats_code = 'L'
AND c.prs_dienst_key = l_prs_dienst_key;
END IF;
IF l_aantal <> 1
THEN
l_prs_bedrijf_key := NULL;
l_cnt_contract_key := NULL;
END IF;
END IF;
END IF;
IF l_prs_bedrijf_key IS NULL
THEN
@@ -2231,6 +2316,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
mld_opdr_bedrijfopdr_volgnr,
mld_typeopdr_key,
mld_uitvoerende_keys,
cnt_contract_key,
prs_perslid_key,
prs_kostenplaats_key,
prs_kostensoort_key,
@@ -2246,6 +2332,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
mld.bepaalopdrmeldingvolgnr(p_melding_key),
l_mld_typeopdr_key,
l_prs_bedrijf_key,
l_cnt_contract_key,
CASE
WHEN l_haswrite = 1
THEN l_prs_perslid_key
@@ -2330,8 +2417,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
AND k.mld_srtkenmerk_key = t.mld_srtkenmerk_key
AND t.mld_srtkenmerk_verwijder IS NULL
AND t.mld_srtkenmerk_kenmerktype <> 'M'
AND (k.mld_kenmerk_volgnummer <= 100
OR k.mld_kenmerk_volgnummer >= 900) -- Alleen bij of na afmelden mogen afmeld-kenmerken tussen de 100..900
AND BITAND(k.mld_kenmerk_rolcode, 5) > 0 -- Alleen bij of na afmelden mogen afmeld-kenmerken (x0x of x1x)
AND COALESCE((SELECT v.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding v
, mld_kenmerk vk
@@ -2401,8 +2487,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
AND k.mld_srtkenmerk_key = t.mld_srtkenmerk_key
AND t.mld_srtkenmerk_verwijder IS NULL
AND t.mld_srtkenmerk_kenmerktype <> 'M'
AND (k.mld_kenmerk_volgnummer <= 100
OR k.mld_kenmerk_volgnummer >= 900) -- Alleen bij of na afmelden mogen afmeld-kenmerken tussen de 100..900
AND BITAND(k.mld_kenmerk_rolcode, 5) > 0 -- Alleen bij of na afmelden mogen afmeld-kenmerken (x0x of x1x)
AND COALESCE((SELECT MIN(v.mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding v
, mld_kenmerk vk
@@ -2426,6 +2511,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
UPDATE mld_opdr
SET mld_opdr_teverzenden = 1
WHERE mld_opdr_key = l_new_opdr_key;
fac.notifytrackingbedrijven ('ORDNEW', l_new_opdr_key);
ELSE
-- Alleen in geval van een uitvoerder, de opdracht door putorders laten oppikken.
BEGIN
@@ -2448,6 +2534,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
UPDATE mld_opdr
SET mld_opdr_teverzenden = 1
WHERE mld_opdr_key = l_new_opdr_key;
fac.notifytrackingbedrijven ('ORDNEW', l_new_opdr_key);
EXCEPTION
WHEN NO_DATA_FOUND
THEN NULL;
@@ -2679,7 +2766,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
-- and the flexprops of p_melding_key if these match the mld_srtkenmerk_key
LOOP
DBMS_OUTPUT.put_line( 'startkey:'
DBMS_OUTPUT.put_line ( 'startkey:'
|| l_melding_start_key
|| ' step key:'
|| r_nextsteps.mld_workflowstep_key);
@@ -2690,78 +2777,79 @@ CREATE OR REPLACE PACKAGE BODY mld AS
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key;
DBMS_OUTPUT.put_line (
'total nr of possible predecessors for next step: ' || l_nrofpossiblepredecessors);
DBMS_OUTPUT.put_line ('total nr of possible predecessors for next step: ' || l_nrofpossiblepredecessors);
SELECT COUNT ( * )
INTO l_nrofactualpredecessors -- disregard status
FROM mld_melding m
WHERE m.mld_workflowstep_key IN
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key =
r_nextsteps.mld_workflowstep_key)
SELECT COUNT ( * )
INTO l_nrofactualpredecessors -- disregard status
FROM mld_melding m
WHERE m.mld_workflowstep_key IN
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key
)
-- the step to be continued
AND mld_melding_start_key = l_melding_start_key; -- for this thread
AND m.mld_melding_start_key = l_melding_start_key; -- for this thread
DBMS_OUTPUT.put_line('total nr of actual predecessors for next step: '
|| l_nrofactualpredecessors);
DBMS_OUTPUT.put_line ('total nr of actual predecessors for next step: '
|| l_nrofactualpredecessors);
l_nrofrequiredpredecessors := l_nrofactualpredecessors;
l_nrofrequiredpredecessors := l_nrofactualpredecessors;
-- If there is a difference between l_nrofpossiblepredecessors and l_nrofactualpredecessors there are
-- a few possibilities:
-- a. an actual predecessor has not been started yet (workflow branches are unequal length)
-- b. an actual predecessor has not been started and will not start due to a condition
-- In case a. the predecessor will start eventually and then trigger the next step.
-- Then l_nrofreadypredecessors = l_nrofpossiblepredecessors
-- In case b. the l_nrofreadypredecessors will never reach l_nrofpossiblepredecessors, the
-- next step will be triggered when l_nrofreadypredecessors = l_nrofactualpredecessors
-- The question is: how do we distinguish a and b?
--
-- Suggestion: backtracking the workflow for the step that is not (yet) there?
IF l_nrofpossiblepredecessors > l_nrofactualpredecessors
THEN
BEGIN
SELECT wr1.mld_workflowstep_key
INTO l_common_ancestor
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key IN
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key)
GROUP BY wr1.mld_workflowstep_key;
EXCEPTION
WHEN NO_DATA_FOUND OR TOO_MANY_ROWS
THEN
-- If there is a difference between l_nrofpossiblepredecessors and l_nrofactualpredecessors there are
-- a few possibilities:
-- a. an actual predecessor has not been started yet (workflow branches are unequal length)
-- b. an actual predecessor has not been started and will not start due to a condition
-- In case a. the predecessor will start eventually and then trigger the next step.
-- Then l_nrofreadypredecessors = l_nrofpossiblepredecessors
-- In case b. the l_nrofreadypredecessors will never reach l_nrofpossiblepredecessors, the
-- next step will be triggered when l_nrofreadypredecessors = l_nrofactualpredecessors
-- The question is: how do we distinguish a and b?
--
-- Suggestion: backtracking the workflow for the step that is not (yet) there?
IF l_nrofpossiblepredecessors > l_nrofactualpredecessors
THEN
BEGIN
SELECT wr1.mld_workflowstep_key
INTO l_common_ancestor
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key IN
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key
)
GROUP BY wr1.mld_workflowstep_key;
EXCEPTION
WHEN NO_DATA_FOUND OR TOO_MANY_ROWS
THEN
l_common_ancestor := -1;
END;
END;
IF l_common_ancestor <> -1
THEN
IF l_common_ancestor <> -1
THEN
DBMS_OUTPUT.put_line ('Common ancestor detected for all previous workflowsteps, so a condition not met (case b)');
l_nrofrequiredpredecessors := l_nrofactualpredecessors;
ELSE
ELSE
-- determine case a or case b
FOR missingsteps
IN (SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key =
r_nextsteps.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key
MINUS
SELECT mld_workflowstep_key
FROM mld_melding m
WHERE m.mld_workflowstep_key IN
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key =
r_nextsteps.mld_workflowstep_key)
AND mld_melding_start_key = l_melding_start_key) LOOP
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key
)
AND mld_melding_start_key = l_melding_start_key
)
LOOP
-- This predecessing step missingsteps.mld_workflowstep_key is possible but not actual. How come?
-- Are some of its predecessor(s) not being the root actual in this workflow?
-- NOTE THAT THIS NEEDS ATTENTION IF WE NEED TO SUPPORT LONGER, UNBALANCED, CONDITIONAL WORKFLOWS
@@ -2770,18 +2858,18 @@ CREATE OR REPLACE PACKAGE BODY mld AS
INTO l_prepredecessors
FROM mld_melding m
WHERE m.mld_workflowstep_key IN
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key =
missingsteps.mld_workflowstep_key)
AND mld_melding_key <> l_melding_start_key
AND mld_melding_start_key = l_melding_start_key;
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = missingsteps.mld_workflowstep_key
)
AND mld_melding_key <> l_melding_start_key
AND mld_melding_start_key = l_melding_start_key;
DBMS_OUTPUT.put_line('Complex case! Total nr of actual prepredecessors for predecessor-step '
|| missingsteps.mld_workflowstep_key
|| ': '
|| l_prepredecessors);
DBMS_OUTPUT.put_line ('Complex case! Total nr of actual prepredecessors for predecessor-step '
|| missingsteps.mld_workflowstep_key
|| ': '
|| l_prepredecessors);
IF l_prepredecessors = 0
THEN
@@ -2800,30 +2888,30 @@ CREATE OR REPLACE PACKAGE BODY mld AS
THEN
l_nrofrequiredpredecessors := l_nrofactualpredecessors + nrcase_a; --l_nrofpossiblepredecessors;
END IF;
END IF;
ELSE
-- both are the same, just pick one to test against later
l_nrofrequiredpredecessors := l_nrofactualpredecessors;
END IF;
END IF;
ELSE
-- both are the same, just pick one to test against later
l_nrofrequiredpredecessors := l_nrofactualpredecessors;
END IF;
DBMS_OUTPUT.put_line('total nr of required predecessors for next step: '
|| l_nrofrequiredpredecessors);
DBMS_OUTPUT.put_line ('total nr of required predecessors for next step: '
|| l_nrofrequiredpredecessors);
SELECT COUNT ( * )
INTO l_nrofreadypredecessors
FROM mld_melding m
WHERE m.mld_workflowstep_key IN
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key =
r_nextsteps.mld_workflowstep_key)
-- the step to be continued
AND mld_melding_status IN (1, 5, 6) -- predecessor has been handled, no matter how
AND mld_melding_start_key = l_melding_start_key; -- for this thread
SELECT COUNT ( * )
INTO l_nrofreadypredecessors
FROM mld_melding m
WHERE m.mld_workflowstep_key IN
(SELECT wr1.mld_workflowstep_key
FROM mld_workflowrule wr1, mld_workflowstep ws1
WHERE wr1.mld_workflowstep_key = ws1.mld_workflowstep_key
AND wr1.mld_workflowstep_next_key = r_nextsteps.mld_workflowstep_key
)
-- the step to be continued
AND mld_melding_status IN (1, 5, 6) -- predecessor has been handled, no matter how
AND mld_melding_start_key = l_melding_start_key; -- for this thread
DBMS_OUTPUT.put_line (
'total nr of READY predecessors for next step: ' || l_nrofreadypredecessors);
DBMS_OUTPUT.put_line ('total nr of READY predecessors for next step: '
|| l_nrofreadypredecessors);
createthisnextstep := FALSE;
-- What we do next depends on the jointype. We are one predecessor ourselves. Options are:
@@ -2843,12 +2931,11 @@ CREATE OR REPLACE PACKAGE BODY mld AS
CASE r_nextsteps.mld_workflowstep_jointype
WHEN 0
THEN -- AND
createthisnextstep :=
l_nrofreadypredecessors >= l_nrofrequiredpredecessors OR p_success = -1;
createthisnextstep := l_nrofreadypredecessors >= l_nrofrequiredpredecessors OR p_success = -1;
WHEN 1
THEN -- OR
createthisnextstep := l_nrofreadypredecessors = 1;
-- if l_nrofreadypredecessors > 1 the creation has already taken place :-)
createthisnextstep := l_nrofreadypredecessors = 1 OR p_success = -1;
-- if l_nrofreadypredecessors > 1 the creation has already taken place :-)
WHEN 2
THEN -- SYNC
-- Wel nog een beetje raar in onze <20>naar mijn groeiende overtuiging slimmere- implementatie:
@@ -2859,8 +2946,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
IF createthisnextstep
THEN
DBMS_OUTPUT.put_line (
'We GO for the next step ' || r_nextsteps.mld_workflowstep_key);
DBMS_OUTPUT.put_line ('We GO for the next step ' || r_nextsteps.mld_workflowstep_key);
IF evaluatecondition (p_melding_key, r_nextsteps.mld_workflowrule_condition)
THEN
@@ -2876,8 +2962,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
rootregistered := TRUE;
END IF;
DBMS_OUTPUT.put_line (
'We actually start the next step ' || r_nextsteps.mld_workflowstep_key);
DBMS_OUTPUT.put_line ('We actually start the next step ' || r_nextsteps.mld_workflowstep_key);
l_nrstepsevaluatedtrue := l_nrstepsevaluatedtrue + 1;
IF r_nextsteps.mld_directklaar = 2
@@ -3319,6 +3404,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
RETURN MLD_T_UITVOERTIJD
AS
v_actual_uitvoertijd_object mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- constructor initialisatie;
v_actual_accepttijd mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- constructor initialisatie;
v_uitvoertijdtype VARCHAR2(5);
v_mld_stdmelding_regime mld_stdmelding.mld_stdmelding_regime%TYPE;
v_beginuur alg_gebouw.alg_gebouw_beginuur%TYPE;
@@ -3326,7 +3412,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
v_werkdagen alg_gebouw.alg_gebouw_werkdagen%TYPE;
BEGIN
getSLAparams(stdm_key, prio, alg_key, ins_key,
v_mld_stdmelding_regime, v_actual_uitvoertijd_object, v_beginuur, v_einduur, v_werkdagen);
v_mld_stdmelding_regime, v_actual_uitvoertijd_object, v_actual_accepttijd, v_beginuur, v_einduur, v_werkdagen);
IF COALESCE(eenheid, v_actual_uitvoertijd_object.eenheid) = 'D'
THEN
@@ -3369,6 +3455,89 @@ CREATE OR REPLACE PACKAGE BODY mld AS
RETURN v_actual_uitvoertijd_object;
END;
-- Dit is de tijd waarop afgerekend gaat worden.
FUNCTION getactualaccept (p_melding_key IN NUMBER)
RETURN MLD_T_UITVOERTIJD
AS
v_actual_accepttijd mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- constructor initialisatie;
BEGIN
-- Objecten hebben geen acceptatietijd.
SELECT mld.getactualaccept(m.mld_melding_datum,
COALESCE(fac.gettrackingdate('MLDACP', m.mld_melding_key), fac.gettrackingdate('MLDAFM', m.mld_melding_key), fac.gettrackingdate('MLDREJ', m.mld_melding_key), SYSDATE),
m.mld_stdmelding_key,
m.mld_melding_spoed,
m.mld_alg_onroerendgoed_keys,
NULL, -- ins_key (Objecten hebben geen acceptatietijd).
m.mld_melding_t_accepttijd.eenheid
)
INTO v_actual_accepttijd
FROM mld_melding m
WHERE mld_melding_key = p_melding_key;
RETURN v_actual_accepttijd;
END;
FUNCTION getactualaccept (startdate IN DATE,
enddate IN DATE,
stdm_key IN NUMBER,
prio IN NUMBER,
alg_key IN NUMBER, -- Altijd gebouw of hoger, locatie niet ondersteund
ins_key IN NUMBER, -- Object met de laagste uitvoertijd
eenheid IN VARCHAR2 DEFAULT NULL
)
RETURN MLD_T_UITVOERTIJD
AS
v_actual_uitvoertijd_object mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- constructor initialisatie;
v_actual_accepttijd mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- constructor initialisatie;
v_uitvoertijdtype VARCHAR2(5);
v_mld_stdmelding_regime mld_stdmelding.mld_stdmelding_regime%TYPE;
v_beginuur alg_gebouw.alg_gebouw_beginuur%TYPE;
v_einduur alg_gebouw.alg_gebouw_einduur%TYPE;
v_werkdagen alg_gebouw.alg_gebouw_werkdagen%TYPE;
BEGIN
getSLAparams(stdm_key, prio, alg_key, ins_key,
v_mld_stdmelding_regime, v_actual_uitvoertijd_object, v_actual_accepttijd, v_beginuur, v_einduur, v_werkdagen);
IF COALESCE(eenheid, v_actual_accepttijd.eenheid) = 'D'
THEN
v_uitvoertijdtype := 'DAGEN';
ELSE
v_uitvoertijdtype := 'UREN';
END IF;
-- Als bij Openingstijden geen ruimte/gebouwopeningstijden zijn gevonden dan terugvallen op Kantoortijden.
IF v_mld_stdmelding_regime = 1 OR (v_mld_stdmelding_regime = 2 AND (v_beginuur = -1 OR v_einduur = -1)) -- Kantoortijden: als in 5.1.2
THEN
v_actual_accepttijd :=
FAC.datumtijdnaaruitvoertijd (startdate, enddate, v_uitvoertijdtype);
ELSIF v_mld_stdmelding_regime = 2 -- Openingstijden: gebruik ruimte/gebouwopeningstijden
THEN
v_actual_accepttijd :=
FAC.datumtijdnaaruitvoertijd (startdate,
enddate,
v_uitvoertijdtype,
v_beginuur,
v_einduur,
v_werkdagen); -- Mode=0/1 resp. alle dagen/alleen werkdagen!
ELSIF v_mld_stdmelding_regime = 3 -- 24/7: negeert weekenden of vrije dagen
THEN
v_actual_accepttijd :=
FAC.datumtijdnaaruitvoertijd (startdate,
enddate,
v_uitvoertijdtype,
NULL, -- Don't care
NULL, -- Don't care
2); -- Mode=2 => 24/7
END IF;
-- Een negatieve actuele uitvoertijd niet toestaan. Minimale waarde is 0.
IF v_actual_accepttijd.tijdsduur < 0
THEN
v_actual_accepttijd.tijdsduur := 0;
END IF;
RETURN v_actual_accepttijd;
END;
FUNCTION uitvoertijd_to_char (uitvoertijd IN MLD_T_UITVOERTIJD)
RETURN VARCHAR
AS BEGIN
@@ -3410,13 +3579,14 @@ CREATE OR REPLACE PACKAGE BODY mld AS
v_einddatum DATE;
v_mld_stdmelding_regime mld_stdmelding.mld_stdmelding_regime%TYPE;
v_uitvoertijd_object mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie;
v_accepttijd mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie;
v_uitvoertijdtype VARCHAR2(5);
v_beginuur alg_gebouw.alg_gebouw_beginuur%TYPE;
v_einduur alg_gebouw.alg_gebouw_einduur%TYPE;
v_werkdagen NUMBER;
BEGIN
getSLAparams(stdm_key, prio, alg_key, ins_key,
v_mld_stdmelding_regime, v_uitvoertijd_object, v_beginuur, v_einduur, v_werkdagen);
v_mld_stdmelding_regime, v_uitvoertijd_object, v_accepttijd, v_beginuur, v_einduur, v_werkdagen);
IF uitvoertijd_object.eenheid IS NOT NULL
THEN
@@ -3496,13 +3666,14 @@ CREATE OR REPLACE PACKAGE BODY mld AS
RETURN MLD_T_UITVOERTIJD
AS
v_uitvoertijd_object mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
v_accepttijd mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
v_mld_stdmelding_regime mld_stdmelding.mld_stdmelding_regime%TYPE;
v_beginuur alg_gebouw.alg_gebouw_beginuur%TYPE;
v_einduur alg_gebouw.alg_gebouw_einduur%TYPE;
v_werkdagen NUMBER;
BEGIN
getSLAparams(stdm_key, prio, alg_key, ins_key,
v_mld_stdmelding_regime, v_uitvoertijd_object, v_beginuur, v_einduur, v_werkdagen);
v_mld_stdmelding_regime, v_uitvoertijd_object, v_accepttijd, v_beginuur, v_einduur, v_werkdagen);
RETURN v_uitvoertijd_object;
END;
@@ -3534,12 +3705,14 @@ CREATE OR REPLACE PACKAGE BODY mld AS
ins_key IN NUMBER, -- Object met de laagste uitvoertijd
v_mld_stdmelding_regime OUT NUMBER,
v_uitvoertijd_object OUT MLD_T_UITVOERTIJD,
v_accepttijd OUT MLD_T_UITVOERTIJD,
v_beginuur OUT NUMBER,
v_einduur OUT NUMBER,
v_werkdagen OUT NUMBER
)
AS
v_uitvoertijd_object_s mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
v_accepttijd_s mld_stdmelding.mld_stdmelding_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
v_mld_stdmelding_afhankelijk mld_stdmelding.mld_stdmelding_afhankelijk%TYPE;
l_alg_type VARCHAR2(1);
l_terreinsector_key alg_terreinsector.alg_terreinsector_key%TYPE;
@@ -3552,6 +3725,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
l_mldsrtruimte_uitvtijd_object mld_stdmsrtruimte.mld_stdmsrtruimte_t_uitvtijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
l_mldsrtgebouw_uitvtijd_object mld_stdmsrtgebouw.mld_stdmsrtgebouw_t_uitvtijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
l_mldsrtterrein_uitvtijd_object mld_stdmsrtterrein.mld_stdmsrtterrein_t_uitvtijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
l_mldsrtterrein_acctijd mld_stdmsrtterrein.mld_stdmsrtterrein_t_acctijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
l_mldsrtgebouw_accepttijd mld_stdmsrtgebouw.mld_stdmsrtgebouw_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
l_mldsrtruimte_accepttijd mld_stdmsrtruimte.mld_stdmsrtruimte_t_accepttijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
BEGIN
SELECT mld_stdmelding_regime,
CASE prio
@@ -3561,10 +3737,19 @@ CREATE OR REPLACE PACKAGE BODY mld AS
ELSE mld_stdmelding_t_uitvoertijd
END, -- gegarandeerd gevuld
mld_stdmelding_t_uitvoertijd, -- standaard uitvoertijd
CASE prio
WHEN 1 THEN mld_stdmelding_t_accept_pr1
WHEN 2 THEN mld_stdmelding_t_accept_pr2
WHEN 4 THEN mld_stdmelding_t_accept_pr4
ELSE mld_stdmelding_t_accepttijd
END, -- gegarandeerd gevuld
mld_stdmelding_t_accepttijd, -- standaard acceptatietijd
mld_stdmelding_afhankelijk
INTO v_mld_stdmelding_regime,
v_uitvoertijd_object,
v_uitvoertijd_object_s,
v_accepttijd,
v_accepttijd_s,
v_mld_stdmelding_afhankelijk
FROM mld_stdmelding msm
WHERE msm.mld_stdmelding_key = stdm_key;
@@ -3576,6 +3761,14 @@ CREATE OR REPLACE PACKAGE BODY mld AS
v_uitvoertijd_object := v_uitvoertijd_object_s;
END IF;
-- Als je geen afwijkende acceptatietijd voor de prio hebt, dan is het die van Normaal
-- Dit is een vangnet, die prio had eigenlijk niet voor kunnen komen.
IF prio <> 3 AND v_accepttijd.tijdsduur IS NULL
THEN
v_accepttijd := v_accepttijd_s;
END IF;
-- Acceptatietijd kent itt uitvoertijd geen objectafhankelijkheid.
IF v_mld_stdmelding_afhankelijk = 1 AND ins_key IS NOT NULL
THEN
-- is er een objectafhankelijke SLA? Dan geldt die ongeacht de prio
@@ -3625,10 +3818,16 @@ CREATE OR REPLACE PACKAGE BODY mld AS
2, sst.mld_stdmsrtterrein_t_uitv_pr2,
3, sst.mld_stdmsrtterrein_t_uitvtijd,
4, sst.mld_stdmsrtterrein_t_uitv_pr4),
COALESCE(sst.mld_stdmsrtterrein_regime, v_mld_stdmelding_regime) regime -- geen srtterreinsector-afhankelijk afwijkend regime.
COALESCE(sst.mld_stdmsrtterrein_regime, v_mld_stdmelding_regime) regime, -- geen srtterreinsector-afhankelijk afwijkend regime.
DECODE (prio,
1, sst.mld_stdmsrtterrein_t_acc_pr1,
2, sst.mld_stdmsrtterrein_t_acc_pr2,
3, sst.mld_stdmsrtterrein_t_acctijd,
4, sst.mld_stdmsrtterrein_t_acc_pr4)
INTO l_srtterrein_uitvoertijd_object,
l_mldsrtterrein_uitvtijd_object,
v_mld_stdmelding_regime
v_mld_stdmelding_regime,
l_mldsrtterrein_acctijd
FROM alg_terreinsector t,
alg_srtterreinsector st,
mld_stdmsrtterrein sst
@@ -3652,10 +3851,16 @@ CREATE OR REPLACE PACKAGE BODY mld AS
2, ssg.mld_stdmsrtgebouw_t_uitv_pr2,
3, ssg.mld_stdmsrtgebouw_t_uitvtijd,
4, ssg.mld_stdmsrtgebouw_t_uitv_pr4),
COALESCE(ssg.mld_stdmsrtgebouw_regime, v_mld_stdmelding_regime) regime -- geen srtgebouw-afhankelijk afwijkend regime.
COALESCE(ssg.mld_stdmsrtgebouw_regime, v_mld_stdmelding_regime) regime, -- geen srtgebouw-afhankelijk afwijkend regime.
DECODE (prio,
1, ssg.mld_stdmsrtgebouw_t_accept_pr1,
2, ssg.mld_stdmsrtgebouw_t_accept_pr2,
3, ssg.mld_stdmsrtgebouw_t_accepttijd,
4, ssg.mld_stdmsrtgebouw_t_accept_pr4)
INTO l_srtgebouw_uitvoertijd_object,
l_mldsrtgebouw_uitvtijd_object,
v_mld_stdmelding_regime
v_mld_stdmelding_regime,
l_mldsrtgebouw_accepttijd
FROM alg_gebouw g,
alg_srtgebouw sg,
mld_stdmsrtgebouw ssg
@@ -3681,10 +3886,16 @@ CREATE OR REPLACE PACKAGE BODY mld AS
2, ssr.mld_stdmsrtruimte_t_uitv_pr2,
3, ssr.mld_stdmsrtruimte_t_uitvtijd,
4, ssr.mld_stdmsrtruimte_t_uitv_pr4),
COALESCE(ssr.mld_stdmsrtruimte_regime, v_mld_stdmelding_regime) -- geen srtruimte-afhankelijk afwijkend regime.
COALESCE(ssr.mld_stdmsrtruimte_regime, v_mld_stdmelding_regime), -- geen srtruimte-afhankelijk afwijkend regime.
DECODE (prio,
1, ssr.mld_stdmsrtruimte_t_accept_pr1,
2, ssr.mld_stdmsrtruimte_t_accept_pr2,
3, ssr.mld_stdmsrtruimte_t_accepttijd,
4, ssr.mld_stdmsrtruimte_t_accept_pr4)
INTO l_srtruimte_uitvoertijd_object,
l_mldsrtruimte_uitvtijd_object,
v_mld_stdmelding_regime
v_mld_stdmelding_regime,
l_mldsrtruimte_accepttijd
FROM alg_ruimte r,
alg_srtruimte sr,
mld_stdmsrtruimte ssr
@@ -3724,6 +3935,26 @@ CREATE OR REPLACE PACKAGE BODY mld AS
ELSE
v_uitvoertijd_object.eenheid := v_uitvoertijd_object.eenheid;
END IF;
-- Acceptatietijd van de mld_stdmsrtruimte, mld_stdmsrtgebouw of mld_stdmsrtterrein nemen.
-- Als mld_stdmsrtruimte_t_accepttijd, mld_stdmsrtgebouw_t_accepttijd en mld_stdmsrtterrein_t_acctijd geen waarden hebben, dan terugvallen op standaard uitvoertijd die altijd een waarde heeft.
IF l_alg_type = 'T'
THEN
v_accepttijd.tijdsduur := COALESCE(l_mldsrtterrein_acctijd.tijdsduur, v_accepttijd.tijdsduur);
ELSE
v_accepttijd.tijdsduur := COALESCE(l_mldsrtruimte_accepttijd.tijdsduur, -- eerst ruimte
l_mldsrtgebouw_accepttijd.tijdsduur, -- dan gebouw
v_accepttijd.tijdsduur); -- dan standaard.
END IF;
IF l_mldsrtruimte_accepttijd.tijdsduur IS NOT NULL
THEN
v_accepttijd.eenheid := l_mldsrtruimte_accepttijd.eenheid;
ELSIF l_mldsrtgebouw_accepttijd.tijdsduur IS NOT NULL
THEN
v_accepttijd.eenheid := l_mldsrtgebouw_accepttijd.eenheid;
ELSE
v_accepttijd.eenheid := v_accepttijd.eenheid;
END IF;
END IF;
IF alg_key IS NULL AND v_mld_stdmelding_regime = 2
@@ -4603,7 +4834,7 @@ IS
BEGIN
UPDATE mld_melding m
SET m.mld_melding_actiecode = m.mld_melding_actiecode - BITAND (m.mld_melding_actiecode, p_actiecode)
WHERE m.mld_melding_status = 6 -- afgemeld
WHERE m.mld_melding_status = 5 -- afgemeld
AND BITAND (m.mld_melding_actiecode, p_actiecode) > 0
AND fac.gettrackingdate ('MLDAFM', m.mld_melding_key) < (SYSDATE - p_days);

View File

@@ -335,6 +335,9 @@ CREATE_TABLE(mld_typeopdr,0)
mld_typeopdr_code
VARCHAR2(60)
CONSTRAINT mld_u_mld_typeopdr_code UNIQUE,
mld_typeopdr_afronden
NUMBER(1)
DEFAULT(1) NOT NULL,
CONSTRAINT mld_u_mld_typeopdr_upper UNIQUE(mld_typeopdr_upper, mld_typeopdr_module)
);
@@ -388,8 +391,12 @@ CREATE_TABLE(mld_melding_tag,0) /* generieke opzet voor mld_releases of mld_rel
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),
@@ -590,6 +597,10 @@ CREATE_TABLE(mld_stdmelding,0)
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)
);
@@ -603,6 +614,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
@@ -851,11 +867,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
@@ -1200,6 +1216,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)
(
@@ -1461,7 +1481,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
@@ -1472,6 +1492,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
@@ -1918,6 +1942,9 @@ ALTER TABLE alg_gebouw
ALTER TABLE alg_locatie
ADD mld_dienstniveau_key NUMBER(10)
REFERENCES mld_dienstniveau(mld_dienstniveau_key) ON DELETE SET NULL;
ALTER TABLE alg_terreinsector
ADD mld_dienstniveau_key NUMBER(10)
REFERENCES mld_dienstniveau(mld_dienstniveau_key) ON DELETE SET NULL;
REGISTERONCE('$Id$')

View File

@@ -96,6 +96,23 @@ AUDIT_VALUE(mld_stdmelding, mld_stdmelding_malusbasis)
AUDIT_VALUE(mld_stdmelding, mld_stdmelding_malus)
AUDIT_VALUE(mld_stdmelding, mld_stdmelding_malusmax)
AUDIT_VALUE(mld_stdmelding, mld_stdmelding_verwijder)
AUDIT_VALUE(mld_stdmelding, mld_stdmelding_omschrijving)
AUDIT_VALUE(mld_stdmelding, mld_stdmelding_freetext)
AUDIT_VALUE(mld_stdmelding, mld_stdmeldinggroep_key)
AUDIT_VALUE(mld_stdmelding, alg_onrgoed_niveau)
AUDIT_VALUE(mld_stdmelding, prs_kostensoort_key)
AUDIT_VALUE(mld_stdmelding, prs_kostenplaats_key)
AUDIT_VALUE(mld_stdmelding, mld_stdmelding_kanverwijzen)
AUDIT_VALUE(mld_stdmelding, mld_stdmelding_conceptstatus)
AUDIT_VALUE(mld_stdmelding, mld_stdmelding_slabewaken)
AUDIT_VAL_T(mld_stdmelding, mld_stdmelding_t_accepttijd)
AUDIT_VAL_T(mld_stdmelding, mld_stdmelding_t_accept_pr1)
AUDIT_VAL_T(mld_stdmelding, mld_stdmelding_t_accept_pr2)
AUDIT_VAL_T(mld_stdmelding, mld_stdmelding_t_accept_pr4)
AUDIT_VAL_T(mld_stdmelding, mld_stdmelding_t_uitvoertijd)
AUDIT_VAL_T(mld_stdmelding, mld_stdmelding_t_uitvtijd_pr1)
AUDIT_VAL_T(mld_stdmelding, mld_stdmelding_t_uitvtijd_pr2)
AUDIT_VAL_T(mld_stdmelding, mld_stdmelding_t_uitvtijd_pr4)
AUDIT_END()
CREATE_TRIGGER(mld_t_mld_stdmelding_B_IU)
@@ -430,7 +447,7 @@ BEGIN
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
-- ORDUPD tracking/notificatie
-- ORDSND tracking/notificatie
--mld.notifyopdrbedrijven (:new.mld_opdr_key, ptrackingkey => NULL); geeft trigger mutating
FOR bedrijfrec
IN (SELECT b.prs_bedrijf_key,
@@ -454,7 +471,7 @@ BEGIN
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
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',
@@ -464,7 +481,8 @@ BEGIN
preference => bedrijfrec.reference,
ptypeopdr_key => :NEW.mld_typeopdr_key,
plocatie_key => bedrijfrec.alg_locatie_key,
pdisc_key => :NEW.mld_opdr_discipline_key,
pdiscipline_key => :NEW.mld_opdr_discipline_key,
pbedrijf_key2 => bedrijfrec.persoon_bedrijf_key,
psender => bedrijfrec.alg_locatie_email);
END LOOP;
END IF;
@@ -486,7 +504,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;
/
@@ -1063,6 +1081,14 @@ BEGIN
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,6 +850,8 @@ CREATE_VIEW(mld_v_udr_melding, 1)
accept_sla_optijd,
uitvoering_sla_optijd,
afspraak_sla_optijd,
acceptatietijd_werkdgn,
acceptatietijd_werkuren,
selfservice,
melding_tag,
melding_tag_datum
@@ -1010,6 +1012,10 @@ AS
lcl.l ('lcl_no')
END
afspraak_sla_optijd,
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
@@ -1162,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,

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);
@@ -554,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
@@ -570,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,
@@ -2404,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:

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
@@ -113,7 +113,9 @@ CREATE_TABLE(prs_bedrijf,0)
CONSTRAINT prs_c_prs_bedrijf_contract CHECK(prs_bedrijf_contract IS NULL
OR prs_bedrijf_contract = 1 ),
prs_bedrijf_intern /* NULL=extern, 1=onderdeel van de eigen organisatie, 2=pseudo(systeem)bedrijf voor bedrijfadressen */
NUMBER(1),
NUMBER(1)
CONSTRAINT prs_c_prs_bedrijf_intern CHECK(prs_bedrijf_intern IS NULL
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
@@ -232,6 +234,10 @@ 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,
@@ -758,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),
@@ -1138,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

View File

@@ -500,6 +500,45 @@ 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

View File

@@ -42,7 +42,7 @@ 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);
PROCEDURE notifyreserveringbedrijven (prsvkey NUMBER, ptrackingkey NUMBER, pnotidelay NUMBER DEFAULT NULL);
END res;
/
@@ -209,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
@@ -361,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
@@ -434,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
@@ -546,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
@@ -1196,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
@@ -2517,6 +2543,11 @@ AS
-- Verwijder de deelreservering.
fac.remove_tracking('reservering', p_rsv_ruimte_key);
fac.remove_tracking('xreservering', p_rsv_ruimte_key);
/* JOSGL: het voelt fout dat hierboven xreservering met p_rsv_ruimte_key in plaats van een p_res_reservering_key wordt gedaan
Het is (verwarrend maar) volgens mij wel correct. 'xreservering' tracking gebeurt alleen met RESCPY en RESMLT
en dan beide keren met een res_rsv_ruimte_key
xml.make_xml2 kent ook een p_xmlnode 'xreservering' maar die volgt zijn eigen codepad los van de srtnotificatie
*/
SELECT res_reservering_key
INTO res_key
@@ -2552,18 +2583,25 @@ AS
END;
PROCEDURE notifyreserveringbedrijven (prsvkey NUMBER,
ptrackingkey 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
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
@@ -2578,11 +2616,13 @@ AS
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 = 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 ( b.prs_bedrijf_key = resbedrijf.prs_bedrijf_key -- type 'R'
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
@@ -2595,7 +2635,9 @@ AS
prefkey => prsvkey,
ptrackingkey => ptrackingkey,
preference => bedrijfrec.reference,
plocatie_key => bedrijfrec.alg_locatie_key);
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)
);
@@ -867,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
@@ -958,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

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,6 +763,8 @@ CREATE_VIEW(res_v_udr_reservering, 1)
bezoekers,
van,
tot,
localized_van,
localized_tot,
duur,
status,
bostatus,
@@ -681,8 +774,7 @@ CREATE_VIEW(res_v_udr_reservering, 1)
opmerking,
visibility,
ruimte_prijs,
ruimte_korting,
ruimte_totaal
ruimte_korting
)
AS
SELECT rrr.res_rsv_ruimte_key,
@@ -746,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,
@@ -847,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
@@ -859,9 +901,8 @@ AS
rsa.res_srtactiviteit_omschrijving,
rrr.res_rsv_ruimte_opmerking,
rrr.res_rsv_ruimte_visibility,
rrr.res_rsv_ruimte_prijs,
rrr.res_rsv_ruimte_korting,
rrr.res_rsv_ruimte_totaal
res.getruimteprijs(rrr.res_rsv_ruimte_key),
rrr.res_rsv_ruimte_korting
FROM res_v_aanwezigrsv_ruimte rrr,
res_activiteit ra,
res_srtactiviteit rsa,
@@ -894,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
@@ -952,6 +1005,8 @@ CREATE_VIEW(res_v_udr_reserveringincl, 1)
bezoekers,
van,
tot,
localized_van,
localized_tot,
duur,
status,
bostatus,
@@ -1044,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,
@@ -1143,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
@@ -1245,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
@@ -1259,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

@@ -71,6 +71,14 @@ ALTER TABLE prs_bedrijfadres
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;
@@ -109,6 +117,10 @@ DEF_FAC_SRTNOT('RESSND', 1, 'lcl_noti_RESSND', 'res/res_reservering.asp?rsv_ruim
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
@@ -316,6 +328,12 @@ ALTER TABLE mld_typeopdr
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
@@ -337,6 +355,9 @@ UPDATE fac_setting
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$')

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"

39
_UP/DB52to53.src Normal file
View File

@@ -0,0 +1,39 @@
/*
* Update script van FACILITOR schema
* $Revision$
* $Id$
*/
#include "prologue.inc"
COMMIT;
SET DEFINE OFF
/////////////////////////////////////////////////////////////////////////////////////////// DJIN#86656
DEF_FAC_SRTNOT('AFDNEW', 0, 'lcl_noti_AFDNEW', 'prs/prs_afdeling.asp?key=', '0', 'afdeling', 10);
DEF_FAC_SRTNOT('AFDUPD', 0, 'lcl_noti_AFDUPD', 'prs/prs_afdeling.asp?key=', '0', 'afdeling', 10);
DEF_FAC_SRTNOT('AFDDEL', 0, 'lcl_noti_AFDDEL', 'prs/prs_afdeling.asp?key=', '0', 'afdeling', 10);
/////////////////////////////////////////////////////////////////////////////////////////// YAXX#89674
ALTER TABLE mld_typeopdr ADD mld_typeopdr_afronden NUMBER(1) DEFAULT(1) NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// FMHN#87779
ALTER TABLE alg_terreinsector
ADD mld_dienstniveau_key NUMBER(10)
REFERENCES mld_dienstniveau(mld_dienstniveau_key) ON DELETE SET NULL;
/////////////////////////////////////////////////////////////////////////////////////////// YKPN#88810
ALTER TABLE cnt_disc_params ADD cnt_disc_params_factuurboeken NUMBER(1) DEFAULT(1) NOT NULL;
ALTER TABLE fac_imp_cnt ADD factuurboeken VARCHAR2(1);
/////////////////////////////////////////////////////////////////////////////////////////// UWVA#91726
UPDATE fac_usrrap
SET fac_usrrap_view_name = 'fac_v_exp_res_artikel_sync'
WHERE LOWER(fac_usrrap_view_name) = 'fac_v_imp_res_artikel_sync';
DROP VIEW fac_v_imp_res_artikel_sync;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000
REGISTERONCE('$Id$')
#include "epilogue.inc"

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)
@@ -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;