1028 Commits

Author SHA1 Message Date
Dennis Hartmann
7d651f0877 AQQA#52750 - tmpl_logo.gif aangepast
svn path=/Website/branches/v2017.2/; revision=37492
2018-03-26 10:44:37 +00:00
Jos Groot Lipman
6b927e6c8c Release 2017.2 Gold E
svn path=/Website/branches/v2017.2/; revision=37397
2018-03-19 13:35:10 +00:00
Suzan Wiegerinck
a5d4591dca HPJI#41822 melding ICT doorzetten naar SDplus
svn path=/Website/branches/v2017.2/; revision=37115
2018-02-21 11:39:45 +00:00
Robin Stoker
182fb417bc PHBF#41929 -- revisie bon opdrachten
svn path=/Website/branches/v2017.2/; revision=37109
2018-02-21 11:28:14 +00:00
Robin Stoker
ab6932f01d BACKUP folder deleted
svn path=/Website/branches/v2017.2/; revision=37108
2018-02-21 11:24:18 +00:00
Marcel Bourseau
ee5b183646 MARX#51794: Factuur/statusbericht response bericht volgens ketenstandaard MessageService
svn path=/Website/branches/v2017.2/; revision=37102
2018-02-21 08:50:06 +00:00
Suzan Wiegerinck
fbef7e4950 WZUV#41726 Fase 2
svn path=/Website/branches/v2017.2/; revision=37100
2018-02-21 08:35:20 +00:00
Arthur Egberink
7a241ea337 YKPN#51761 -- Parkeerplaats autorisatie
svn path=/Website/branches/v2017.2/; revision=37093
2018-02-20 21:42:00 +00:00
Marcel Bourseau
b455ce4acd MARX#51794: Factuur/statusbericht response bericht volgens ketenstandaard MessageService
svn path=/Website/branches/v2017.2/; revision=37091
2018-02-20 17:18:47 +00:00
Suzan Wiegerinck
037e6a402b FSN#41286 Oplevering Teijin
svn path=/Website/branches/v2017.2/; revision=37085
2018-02-20 15:06:38 +00:00
Dennis Hartmann
ac10cbe118 svn path=/Website/branches/v2017.2/; revision=37073 2018-02-20 12:06:29 +00:00
Suzan Wiegerinck
b7b4f3251c WZUV#41726 Fase 2
svn path=/Website/branches/v2017.2/; revision=37064
2018-02-20 07:32:34 +00:00
Suzan Wiegerinck
9698f4965d WZUV#41726 Fase 2
svn path=/Website/branches/v2017.2/; revision=37063
2018-02-20 07:31:51 +00:00
Arthur Egberink
bb84a19ed0 PCHA#52033 -- Geluid bij nieuwe melding.
svn path=/Website/branches/v2017.2/; revision=37042
2018-02-19 11:36:28 +00:00
Arthur Egberink
30d4a59781 FCLT#52281 -- AiAi bij aanroep api_opdrsoap
svn path=/Website/branches/v2017.2/; revision=37041
2018-02-19 11:24:46 +00:00
Ruud Lipper
f41211d12b UWVA#52277 vertrouwlijke kenmerken niet op de bon tonen
svn path=/Website/branches/v2017.2/; revision=37033
2018-02-19 07:46:26 +00:00
Marcel Bourseau
aace9d249b MARX#52271: Memo veld voorzien van regelovergangen
svn path=/Website/branches/v2017.2/; revision=37032
2018-02-16 18:03:38 +00:00
Suzan Wiegerinck
b7209530c8 WZUV#41726 Fase 2: facturatie Care4Flex
svn path=/Website/branches/v2017.2/; revision=37026
2018-02-16 11:14:20 +00:00
Maarten van der Heide
17d1e704f1 SVRZ#51694 Noti/Objectwijziging
svn path=/Website/branches/v2017.2/; revision=37023
2018-02-16 10:06:33 +00:00
Suzan Wiegerinck
01dc503060 WZUV#41726 Fase 2: facturatie Randstad
svn path=/Website/branches/v2017.2/; revision=37017
2018-02-15 21:00:36 +00:00
Jos Groot Lipman
97c6a9280b DVON is licentie klant dus moet de udl naar WORK wijzen
svn path=/Website/branches/v2017.2/; revision=37004
2018-02-15 11:15:54 +00:00
Arthur Egberink
d8995b65b0 PNBR#38796
svn path=/Website/branches/v2017.2/; revision=37002
2018-02-15 10:49:56 +00:00
Daniëlle Tolner
2feb713e69 STPH#41897 teruggedraaid
svn path=/Website/branches/v2017.2/; revision=37001
2018-02-15 10:37:26 +00:00
Maarten van der Heide
7abf55566e UWVA#52037 Meldingbon/Nog wat puntjes op de 'i'
svn path=/Website/branches/v2017.2/; revision=36999
2018-02-15 10:24:55 +00:00
Suzan Wiegerinck
0d53a3462d AKZA#41202 kopie werkvergunning kunnen maken
svn path=/Website/branches/v2017.2/; revision=36964
2018-02-13 15:00:06 +00:00
Suzan Wiegerinck
40d83aed15 AKZA#41202 kopie werkvergunning kunnen maken
svn path=/Website/branches/v2017.2/; revision=36961
2018-02-13 14:25:16 +00:00
Maarten van der Heide
bd55c9d551 SVRZ#51694 Noti/Objectwijziging
svn path=/Website/branches/v2017.2/; revision=36944
2018-02-12 17:42:07 +00:00
Marcel Bourseau
2b68982bc0 MARX#51522: Uitbreiding REMS - Mareon: bijlage(foto's) in de opdrachtverstrekking
svn path=/Website/branches/v2017.2/; revision=36942
2018-02-12 16:31:46 +00:00
Arthur Egberink
c4551fe3ab PCHA#51947 -- Koppeling PCHA met Homij
svn path=/Website/branches/v2017.2/; revision=36938
2018-02-12 15:18:10 +00:00
Suzan Wiegerinck
cf567bcffa WZUV#41726 Fase 2: facturatie Randstad
svn path=/Website/branches/v2017.2/; revision=36936
2018-02-12 14:55:40 +00:00
Maarten van der Heide
7af73032b8 UWVA#52092 ARO-koppeling/AuthenticationService van GET naar POST
svn path=/Website/branches/v2017.2/; revision=36925
2018-02-12 10:33:01 +00:00
Jos Groot Lipman
649f0b2149 UWVA#52203 Flexwhere sensoren werken niet - alle reserveringen no show
svn path=/Website/branches/v2017.2/; revision=36924
2018-02-12 09:39:38 +00:00
Dennis Hartmann
64158ffaf3 VENR#51999 - als kosten leeg is 0.00 op bon
svn path=/Website/branches/v2017.2/; revision=36921
2018-02-12 08:27:24 +00:00
Sander Schepers
fdbe2e23ea NMPC#52176
EHBO formulier bijgewerkt

svn path=/Website/branches/v2017.2/; revision=36917
2018-02-09 14:59:39 +00:00
Maarten van der Heide
1d798b074e UWVA#52037 Meldingbon/Klachten en Inkoop supportbureau HRM vervallen
svn path=/Website/branches/v2017.2/; revision=36916
2018-02-09 14:55:38 +00:00
Maarten van der Heide
3168c05a8b UWVA#51846 Opdrachtbon/Telefoonnummer+UWVA#52037 Meldingbon/Gereeddatum
svn path=/Website/branches/v2017.2/; revision=36915
2018-02-09 14:34:15 +00:00
Sander Schepers
b28f9103c5 NMPC#52176 -- Nieuw formulier voor EHBO (standaardmelding 601)
svn path=/Website/branches/v2017.2/; revision=36907
2018-02-08 15:34:47 +00:00
Maarten van der Heide
f246c26d72 UWVA#52092 ARO-koppeling/AuthenticationService van GET naar POST
svn path=/Website/branches/v2017.2/; revision=36899
2018-02-08 14:46:05 +00:00
Suzan Wiegerinck
3bb219bcd9 WZUV#41726 Fase 2: OCI koppeling Topbloemen
svn path=/Website/branches/v2017.2/; revision=36894
2018-02-08 11:05:27 +00:00
Arthur Egberink
eac16d7b20 AADS#52057 -- Klantnummer Staples
svn path=/Website/branches/v2017.2/; revision=36883
2018-02-07 16:35:11 +00:00
Maarten van der Heide
d4deb810ab MNNL#52146 CUST03-noti/Jira
svn path=/Website/branches/v2017.2/; revision=36882
2018-02-07 16:20:51 +00:00
Marcel Bourseau
5e8e2bed64 MARX#51892: Factuur Koppeling Mareon -> REMS
svn path=/Website/branches/v2017.2/; revision=36878
2018-02-07 15:54:55 +00:00
Suzan Wiegerinck
87dfc8ad88 WZUV#41726 Fase 2: OCI koppeling Topbloemen
svn path=/Website/branches/v2017.2/; revision=36860
2018-02-06 16:13:27 +00:00
Marcel Bourseau
e2f7951a86 MARX#51892: Factuur Koppeling Mareon -> REMS
svn path=/Website/branches/v2017.2/; revision=36855
2018-02-06 14:58:03 +00:00
Maykel Geerdink
27be9536dd FCLT#52134: MJOB: freezecost en freezedate niet opgeslagen bij bevriezen ingeplande taken.
svn path=/Website/branches/v2017.2/; revision=36851
2018-02-06 10:33:36 +00:00
Marcel Bourseau
ec9ec48b4f MARX#52112: Mogelijkheid om (per opdrachtgever) Mareon Sync afbreken bij een HTTP error
svn path=/Website/branches/v2017.2/; revision=36847
2018-02-05 16:03:33 +00:00
Jos Groot Lipman
1b10c1f873 FSN#52099 Moet niet in de branch maar in trunk
svn path=/Website/branches/v2017.2/; revision=36841
2018-02-05 13:50:06 +00:00
Jos Groot Lipman
8566db7bd6 FSN#52099 API responsed met een uitgaande stylesheet moeten text/xml als responsetype hebben
svn path=/Website/branches/v2017.2/; revision=36840
2018-02-05 13:46:40 +00:00
Maarten van der Heide
03c9fef013 FSN#51427 Dianet (50 jaar)
svn path=/Website/branches/v2017.2/; revision=36832
2018-02-05 09:00:48 +00:00
Daniëlle Tolner
4686cc2365 ARBO#41399: Punch Out Topgeschenken
svn path=/Website/branches/v2017.2/; revision=36811
2018-02-01 14:27:23 +00:00
Dennis Hartmann
af343f4b2f BLCC#51897 -
svn path=/Website/branches/v2017.2/; revision=36803
2018-02-01 11:07:55 +00:00
Jos Groot Lipman
7703c7c8ae AQQA#52082 Beter loggen als lockeduser verkeerd is geconfigureerd
svn path=/Website/branches/v2017.2/; revision=36802
2018-02-01 11:03:36 +00:00
Maarten van der Heide
07970e3532 VLKC#51890 NACHTWERK-export/Auto registreren levering
svn path=/Website/branches/v2017.2/; revision=36800
2018-02-01 09:36:47 +00:00
Arthur Egberink
bc7325027d PCHD#51979 -- Inrichten FTP server
svn path=/Website/branches/v2017.2/; revision=36797
2018-01-31 15:12:21 +00:00
Marcel Bourseau
740e875416 MARX#52068: Afrond puntjes koppeling Facilitor - Mareon nav 1e echte casus / livegang (1.20)
svn path=/Website/branches/v2017.2/; revision=36786
2018-01-31 09:01:55 +00:00
Marcel Bourseau
f6a3764c36 MARX#52068: Afrond puntjes koppeling Facilitor - Mareon nav 1e echte casus / livegang
svn path=/Website/branches/v2017.2/; revision=36785
2018-01-31 08:58:28 +00:00
Marcel Bourseau
cc006c44e0 MARX#52068: Afrond puntjes koppeling Facilitor - Mareon nav 1e echte casus / livegang
svn path=/Website/branches/v2017.2/; revision=36783
2018-01-31 08:40:40 +00:00
Dennis Hartmann
dad30627b3 BLCC#51897
svn path=/Website/branches/v2017.2/; revision=36782
2018-01-31 08:28:26 +00:00
Arthur Egberink
275b6710fa AAFM#51271 -- Implementatie St Jacob.
svn path=/Website/branches/v2017.2/; revision=36781
2018-01-31 08:09:28 +00:00
Dennis Hartmann
85e86b8198 BLCC#51897 zaalhuur btw
svn path=/Website/branches/v2017.2/; revision=36780
2018-01-31 07:50:40 +00:00
Dennis Hartmann
3c57c8ab00 svn path=/Website/branches/v2017.2/; revision=36779 2018-01-31 07:07:18 +00:00
Marcel Bourseau
18241c6506 MARX52068: Afrond puntjes koppeling Facilitor - Mareon nav 1e echte casus / livegang
svn path=/Website/branches/v2017.2/; revision=36778
2018-01-30 16:53:53 +00:00
Daniëlle Tolner
6a551f5e28 AAGN#51447 Interface AAGN - Mareon
svn path=/Website/branches/v2017.2/; revision=36773
2018-01-30 14:08:24 +00:00
Dennis Hartmann
2144828673 BLCC#51897 - btw in en ex voor heerlen
svn path=/Website/branches/v2017.2/; revision=36772
2018-01-30 13:54:07 +00:00
Jos Groot Lipman
da451ef739 FSSN#52062 API2 update zonder velden moet best mogen
svn path=/Website/branches/v2017.2/; revision=36767
2018-01-30 11:59:42 +00:00
Maarten van der Heide
6ba6ed93df FSN#51427 Dianet
svn path=/Website/branches/v2017.2/; revision=36760
2018-01-29 14:34:47 +00:00
Maarten van der Heide
0f7ba507ef FSN#51427 Dianet
svn path=/Website/branches/v2017.2/; revision=36759
2018-01-29 14:01:12 +00:00
Jos Groot Lipman
241c6d8f7f FSN#51907 iOS Inloggen met de app - wit scherm na kiezen locatie
svn path=/Website/branches/v2017.2/; revision=36758
2018-01-29 13:28:48 +00:00
Maarten van der Heide
9483dac76a FSN#51427 Dianet
svn path=/Website/branches/v2017.2/; revision=36756
2018-01-29 10:48:16 +00:00
Maykel Geerdink
5693b0f1c6 BONS#52005: In de urenlijst staan bij medewerkers clienten met andere medewerkers.
svn path=/Website/branches/v2017.2/; revision=36755
2018-01-29 10:13:24 +00:00
Maarten van der Heide
6c9e9f4be6 BLCC#51930 TF-export+rap/Logica ombouwen naar 50900 (incl 6,5%)
svn path=/Website/branches/v2017.2/; revision=36753
2018-01-29 08:29:07 +00:00
Arthur Egberink
d827b5da32 CSUN#51570 -- Vakgroep/melding automatisch invullen via koppeling
svn path=/Website/branches/v2017.2/; revision=36748
2018-01-26 13:18:03 +00:00
Arthur Egberink
fb4f9fcde9 GVBA#46647 -- Koppeling met Strukton.
svn path=/Website/branches/v2017.2/; revision=36747
2018-01-26 11:47:11 +00:00
Dennis Hartmann
7b55537704 VLKC#52017 nieuw logo
svn path=/Website/branches/v2017.2/; revision=36746
2018-01-26 11:04:45 +00:00
Dennis Hartmann
2065fa84d5 VLKC#52017 nieuw logo
svn path=/Website/branches/v2017.2/; revision=36745
2018-01-26 11:04:38 +00:00
Robin Stoker
fbcc25f5bb STCH#51457 -- Fix om strukton koppeling voor nu weer te laten lopen(2)
svn path=/Website/branches/v2017.2/; revision=36735
2018-01-25 13:17:52 +00:00
Robin Stoker
296703689c STCH#51457 -- Fix om strukton koppeling voor nu weer te laten lopen
svn path=/Website/branches/v2017.2/; revision=36734
2018-01-25 13:13:14 +00:00
Maarten van der Heide
d890ccde13 SVRZ#51694 Noti/Objectwijziging
svn path=/Website/branches/v2017.2/; revision=36721
2018-01-24 20:18:29 +00:00
Marcel Bourseau
d4ca1eb26a MARX#51794: Factuur/statusbericht response bericht volgens ketenstandaard MessageService
svn path=/Website/branches/v2017.2/; revision=36716
2018-01-24 18:32:52 +00:00
Dennis Hartmann
9287cbd68c 51969 aanpassingen
svn path=/Website/branches/v2017.2/; revision=36711
2018-01-24 14:42:01 +00:00
Dennis Hartmann
16a225f135 HSLE#51969 - lcpas tekst gewijzigd
svn path=/Website/branches/v2017.2/; revision=36710
2018-01-24 13:14:32 +00:00
Dennis Hartmann
d14671df48 TEST
svn path=/Website/branches/v2017.2/; revision=36708
2018-01-24 12:53:03 +00:00
Marcel Bourseau
9ffd9d9fde MARX#51794: Factuur/statusbericht response bericht volgens ketenstandaard MessageService
svn path=/Website/branches/v2017.2/; revision=36704
2018-01-24 12:05:35 +00:00
Marcel Bourseau
8b195f2118 MARX#51798: MessageService 3.0/3.1 naar Volkerwessel/Hoendevangers geeft HTTP500
svn path=/Website/branches/v2017.2/; revision=36703
2018-01-24 12:03:37 +00:00
Dennis Hartmann
6eaf8b29da HSLE#51969 - toegangspas tekst aangepast
svn path=/Website/branches/v2017.2/; revision=36702
2018-01-24 11:58:36 +00:00
Dennis Hartmann
c799aa3518 NYBU#51965 - relatienummer toegevoegd external order
svn path=/Website/branches/v2017.2/; revision=36698
2018-01-24 09:47:24 +00:00
Dennis Hartmann
64e41eb8b0 VLKC#51891 - contractopdracht altijd van lanschot logo
svn path=/Website/branches/v2017.2/; revision=36695
2018-01-24 08:34:19 +00:00
Ruud Lipper
1a78f2470e UWVA#51314 afleveradres opdrachtbonnen terugvallen op locatieadres indien geen gebouw aflever
svn path=/Website/branches/v2017.2/; revision=36694
2018-01-24 08:29:32 +00:00
Dennis Hartmann
afd847a473 WTCA#51692 - aanpassing tekst
svn path=/Website/branches/v2017.2/; revision=36693
2018-01-24 08:28:09 +00:00
Maarten van der Heide
8f96d93b04 VLKC#48587 Fleurop-punchout/Extra CUST_FIELDs
svn path=/Website/branches/v2017.2/; revision=36691
2018-01-24 07:38:46 +00:00
Marcel Bourseau
b454444e04 MARX#51798: MessageService 3.0/3.1 naar Volkerwessel/Hoendevangers geeft HTTP500
svn path=/Website/branches/v2017.2/; revision=36689
2018-01-23 15:42:04 +00:00
Marcel Bourseau
fa748677a7 MARX#51798: MessageService 3.0/3.1 naar Volkerwessel/Hoendevangers geeft HTTP500
svn path=/Website/branches/v2017.2/; revision=36686
2018-01-23 13:07:22 +00:00
Maykel Geerdink
bb1f42e005 HCAS#51953: Wijzigen reeds voltooide periodieke taak lukt niet. Datum is fout.
svn path=/Website/branches/v2017.2/; revision=36681
2018-01-23 11:51:48 +00:00
Robin Stoker
12f52ca65a VEST#41990 -- gen_import.wsf vangt de backup al af, hier dus uit
svn path=/Website/branches/v2017.2/; revision=36676
2018-01-23 10:17:53 +00:00
Robin Stoker
8dc42638ae VEST#41990 -- Folders t.b.v. AD prs import
svn path=/Website/branches/v2017.2/; revision=36673
2018-01-23 09:45:34 +00:00
Robin Stoker
6deabc9609 VEST#41990 -- AD koppeling
svn path=/Website/branches/v2017.2/; revision=36672
2018-01-23 09:41:07 +00:00
Jos Groot Lipman
f62f2ded8c MARX#51963 0.0 weer toestaan voor verplicht G-bedrag
svn path=/Website/branches/v2017.2/; revision=36671
2018-01-23 09:34:44 +00:00
Ruud Lipper
c26caa6498 UWVA#51580 datum weergave gestylde rapporten
svn path=/Website/branches/v2017.2/; revision=36663
2018-01-22 13:11:38 +00:00
Maarten van der Heide
8816f75fff VLKC#48587 Fleurop-punchout/Extra CUST_FIELDs
svn path=/Website/branches/v2017.2/; revision=36660
2018-01-22 11:42:48 +00:00
Arthur Egberink
4efdf5f18f CSUN#40255 -- Notities meesturen over koppeling naar klant
svn path=/Website/branches/v2017.2/; revision=36656
2018-01-22 08:38:21 +00:00
Marcel Bourseau
f72b5ba1b0 MARX#51892: Factuur Koppeling Mareon -> REMS
svn path=/Website/branches/v2017.2/; revision=36652
2018-01-19 15:38:48 +00:00
Ruud Lipper
f64b371556 FSN#51946 actie bij melder zetten onterecht niet zichtbaar bij 'Wel interactie/Altijd zichtbaar voor FE'
svn path=/Website/branches/v2017.2/; revision=36649
2018-01-19 14:15:01 +00:00
Robin Stoker
4f223cc1ec CSUN#40255 -- Notities meesturen over koppeling naar klant
svn path=/Website/branches/v2017.2/; revision=36648
2018-01-19 14:09:21 +00:00
Maarten van der Heide
a974774e7a BLCC#51626 BCC-bonnen
svn path=/Website/branches/v2017.2/; revision=36642
2018-01-19 10:39:40 +00:00
Ruud Lipper
2a0b34d279 HSLE#50887 aanpassingen tbv flowmailer voorlopig niet nodig
svn path=/Website/branches/v2017.2/; revision=36641
2018-01-19 09:16:08 +00:00
Jos Groot Lipman
eaaab6ca68 Release 2017.2 Gold D
svn path=/Website/branches/v2017.2/; revision=36636
2018-01-18 13:45:23 +00:00
Jos Groot Lipman
1bb13c9a8c UWVA#51866 Smoelenboek import is vervallen
svn path=/Website/branches/v2017.2/; revision=36634
2018-01-18 13:17:12 +00:00
Jos Groot Lipman
d32f3edbb8 FSN#51538 Gepinde kolomvolgorde herstellen
svn path=/Website/branches/v2017.2/; revision=36632
2018-01-18 12:49:49 +00:00
Dennis Hartmann
02a2bda1e9 KFST#51845 - betalingstermijn op 30 dagen gezet
svn path=/Website/branches/v2017.2/; revision=36627
2018-01-18 09:26:47 +00:00
Jos Groot Lipman
b6a1efaa65 PNBR#51782 Bij voorraadlijst ook autorisatie controleren per catalogus
svn path=/Website/branches/v2017.2/; revision=36620
2018-01-17 16:20:57 +00:00
Arthur Egberink
e11b54a864 CSUN#40255 -- Notities ook in koppeling naar AAFM
svn path=/Website/branches/v2017.2/; revision=36618
2018-01-17 15:47:49 +00:00
Dennis Hartmann
d0fff75f9f WTCA#51692 - aanpassingen bon
svn path=/Website/branches/v2017.2/; revision=36612
2018-01-17 11:02:29 +00:00
Arthur Egberink
700bfbf87c AAEN#51467 -- Opruimen van AAEN (Enexis) omgeving
svn path=/Website/branches/v2017.2/; revision=36607
2018-01-17 10:01:07 +00:00
Arthur Egberink
1e36c97657 CSUN#51570 -- Vakgroep/melding automatisch invullen via koppeling
svn path=/Website/branches/v2017.2/; revision=36601
2018-01-16 15:14:08 +00:00
Arthur Egberink
d57fa38f32 CSUN#51570 -- Vakgroep/melding automatisch invullen via koppeling
svn path=/Website/branches/v2017.2/; revision=36600
2018-01-16 15:12:14 +00:00
Maykel Geerdink
40303d200d ARAI#51853: Uren kunnen registreren van poolmedewerkers.
svn path=/Website/branches/v2017.2/; revision=36597
2018-01-16 13:22:25 +00:00
Arthur Egberink
b3262405f4 CSUN#51570 -- Vakgroep/melding automatisch invullen via koppeling
svn path=/Website/branches/v2017.2/; revision=36595
2018-01-16 09:08:32 +00:00
Dennis Hartmann
7e8f288dbb test voor cust19
svn path=/Website/branches/v2017.2/; revision=36590
2018-01-16 08:21:11 +00:00
Marcel Bourseau
6fdfe4e329 MARX#51522: Uitbreiding REMS - Mareon: bijlage(foto's) in de opdrachtverstrekking
svn path=/Website/branches/v2017.2/; revision=36586
2018-01-15 14:16:34 +00:00
Suzan Wiegerinck
65cee1b3af WZUV#41726 Fase 2: factuurimport Liander
svn path=/Website/branches/v2017.2/; revision=36583
2018-01-15 12:19:35 +00:00
Suzan Wiegerinck
cbf6e95762 WZUV#41726 Fase 2: factuurimports
svn path=/Website/branches/v2017.2/; revision=36582
2018-01-15 12:11:32 +00:00
Jos Groot Lipman
2699fe057a PNBR#51782 Bij voorraadlijst ook autorisatie controleren per catalogus
svn path=/Website/branches/v2017.2/; revision=36579
2018-01-15 09:52:07 +00:00
Suzan Wiegerinck
abde0fe0d4 WZUV#41726 Fase 2: Factuurimport Kenter en aanpassing view tbv Exact export contractgerelateerde facturen
svn path=/Website/branches/v2017.2/; revision=36577
2018-01-14 13:34:51 +00:00
Suzan Wiegerinck
0410d1ea21 WZUV#41726 Fase 2: Exact koppeling
svn path=/Website/branches/v2017.2/; revision=36575
2018-01-14 13:01:23 +00:00
Suzan Wiegerinck
7786d8d823 WZUV#41726 Fase 2: Exact koppeling
svn path=/Website/branches/v2017.2/; revision=36574
2018-01-14 11:19:25 +00:00
Arthur Egberink
8d94bb9e47 YKPN#48088 -- Koppeling met Nedap kentekenherkenning.
svn path=/Website/branches/v2017.2/; revision=36573
2018-01-12 14:17:47 +00:00
Marcel Bourseau
1a59a67df1 MARX#51619: Ondersteunen MessageService 3.0/3.1
svn path=/Website/branches/v2017.2/; revision=36572
2018-01-12 14:16:25 +00:00
Marcel Bourseau
4a6003edaa MARX#51764: PDF attachment in CDATA (ketenstandaard MessageSevice) geeft bij facturatie AiAi
svn path=/Website/branches/v2017.2/; revision=36571
2018-01-12 14:00:38 +00:00
Marcel Bourseau
bc3408cd71 MARX#51798: MessageService 3.0/3.1 naar Volkerwessel/Hoendevangers geeft HTTP500
svn path=/Website/branches/v2017.2/; revision=36569
2018-01-12 13:46:37 +00:00
Dennis Hartmann
e010886df4 PCHA#51844 - mldafm behandeling niet op bon
svn path=/Website/branches/v2017.2/; revision=36568
2018-01-12 09:01:52 +00:00
Dennis Hartmann
729d3dba27 PCHA#51844 - behandeling op mldafm weg gehaald
svn path=/Website/branches/v2017.2/; revision=36567
2018-01-12 08:51:09 +00:00
Maarten van der Heide
e89a68849f UWVA#51769 Schonen bijlagen onder Facilitor_DATA
svn path=/Website/branches/v2017.2/; revision=36566
2018-01-11 14:59:11 +00:00
Ruud Lipper
ea96ccb1a7 AADS#51840 logo size
svn path=/Website/branches/v2017.2/; revision=36565
2018-01-11 14:54:29 +00:00
Jos Groot Lipman
6df59b389f FSN#51849 voorkom dat API1 een FAC_SESSION record genereert
svn path=/Website/branches/v2017.2/; revision=36564
2018-01-11 14:51:42 +00:00
Ruud Lipper
3d9524ef15 BONS#51835 rapport 'Totaal lijst cliënten in zorg MDW' uitbreiden met personeelsnummer
svn path=/Website/branches/v2017.2/; revision=36559
2018-01-11 13:04:44 +00:00
Jos Groot Lipman
955239bb02 FSN#51833 Search-as-you-type kunnen onderdrukke met &noqfilter=1
svn path=/Website/branches/v2017.2/; revision=36558
2018-01-11 12:06:04 +00:00
Jos Groot Lipman
a92c5774d2 UWVA#51734 Flexfiles buiten de webroot
svn path=/Website/branches/v2017.2/; revision=36556
2018-01-11 09:56:11 +00:00
Ruud Lipper
81a40b898f KFSG#51454 QRC RES RUIMTE RAPPORT
svn path=/Website/branches/v2017.2/; revision=36555
2018-01-11 09:54:44 +00:00
Robin Stoker
b630b6f8a8 BLCC#51715 -- opschonen van backup folder (delete)
svn path=/Website/branches/v2017.2/; revision=36552
2018-01-11 09:26:12 +00:00
Jos Groot Lipman
3a64220a33 Bij generic sql iets betere simpele sql-formatting toepassen
svn path=/Website/branches/v2017.2/; revision=36541
2018-01-10 12:39:53 +00:00
Arthur Egberink
32bb9be7f9 NMPC#39478 -- Badgeprint voor bezoekers
svn path=/Website/branches/v2017.2/; revision=36537
2018-01-10 10:48:08 +00:00
Jos Groot Lipman
0c574581a4 FSN#51749 facilitair relevant vinkje beter filteren
svn path=/Website/branches/v2017.2/; revision=36526
2018-01-09 16:26:12 +00:00
Marcel Bourseau
dc668a4971 MARX#51619: Ondersteunen MessageService 3.0/3.1
svn path=/Website/branches/v2017.2/; revision=36525
2018-01-09 15:47:07 +00:00
Marcel Bourseau
61f337968b MARX#51619: Ondersteunen MessageService 3.0/3.1
svn path=/Website/branches/v2017.2/; revision=36524
2018-01-09 15:36:22 +00:00
Jos Groot Lipman
e7566bc4ce MNNL#51780 Beter escapen notities naar Excel
svn path=/Website/branches/v2017.2/; revision=36523
2018-01-09 14:25:59 +00:00
Jos Groot Lipman
cfa49a4fca MNNL#51780 Beter escapen notities naar Excel
svn path=/Website/branches/v2017.2/; revision=36522
2018-01-09 14:13:47 +00:00
Suzan Wiegerinck
49e4899663 WZUV#41726 Fase 2: aanpassing notificaties
svn path=/Website/branches/v2017.2/; revision=36521
2018-01-09 13:28:15 +00:00
Suzan Wiegerinck
f8cbe724b2 WZUV#41726 Fase 2: aanpassing notificaties
svn path=/Website/branches/v2017.2/; revision=36520
2018-01-09 13:20:49 +00:00
Arthur Egberink
a9a85e5ab8 NMPC#39478 -- Badgeprint voor bezoekers
svn path=/Website/branches/v2017.2/; revision=36518
2018-01-09 12:44:03 +00:00
Ruud Lipper
e33c1d2cb0 FSN#51749 facilitair relevant vinkje niet goed weergegeven
svn path=/Website/branches/v2017.2/; revision=36515
2018-01-09 08:49:53 +00:00
Robin Stoker
1382fae982 delete files
svn path=/Website/branches/v2017.2/; revision=36511
2018-01-08 13:22:56 +00:00
Robin Stoker
471b4d8959 deleted files
svn path=/Website/branches/v2017.2/; revision=36510
2018-01-08 13:20:11 +00:00
Jos Groot Lipman
93d5b68926 FSN#51749 Beheer 'Facilitair relevant' hersteld
svn path=/Website/branches/v2017.2/; revision=36507
2018-01-08 12:43:40 +00:00
Jos Groot Lipman
2e41ed9422 HCAS#51759 upd periodieke taak van moment -> interval geeft fout(foreign key not found)
svn path=/Website/branches/v2017.2/; revision=36506
2018-01-08 12:10:11 +00:00
Jos Groot Lipman
17a28679fc AAFM#51747 OfficeApp ruimte data opvragen
svn path=/Website/branches/v2017.2/; revision=36505
2018-01-08 11:20:11 +00:00
Suzan Wiegerinck
797212947e WZUV#51384 cliënt komt te overlijden/vertrek uit appartement, notificaties
svn path=/Website/branches/v2017.2/; revision=36500
2018-01-05 18:36:09 +00:00
Ruud Lipper
12605f8aa6 FSN#51749 Vinkje facilitair relevant werd niet goed weergegeven
svn path=/Website/branches/v2017.2/; revision=36497
2018-01-05 09:03:14 +00:00
Robin Stoker
477f93034a STCH#51457 -- Strukton import xsl
svn path=/Website/branches/v2017.2/; revision=36496
2018-01-04 16:21:06 +00:00
Marcel Bourseau
f4575df4b5 51557: Ketenstandaard opdracht XML ipv lege XML nodes deze nodes niet meesturen
svn path=/Website/branches/v2017.2/; revision=36495
2018-01-04 15:58:57 +00:00
Robin Stoker
65287cc863 STCH#51457 -- Strukton naar web-plus variant
svn path=/Website/branches/v2017.2/; revision=36494
2018-01-04 15:49:31 +00:00
Maykel Geerdink
42edee0bf2 PLAT#51637: Testbevinding scenario's.
svn path=/Website/branches/v2017.2/; revision=36491
2018-01-04 14:38:59 +00:00
Maarten van der Heide
5f9d7dcf43 BLCC#51626 BCC-bonnen+BLCC#51680 SSC-reserveringsbon
svn path=/Website/branches/v2017.2/; revision=36488
2018-01-04 12:16:28 +00:00
Dennis Hartmann
9d6c422fe3 PCHW#51741 pch veranderd in de groene schakel
svn path=/Website/branches/v2017.2/; revision=36487
2018-01-04 12:02:36 +00:00
Robin Stoker
c019703385 STCH#51457 -- Aangepast naar STCH
svn path=/Website/branches/v2017.2/; revision=36486
2018-01-04 10:12:28 +00:00
Robin Stoker
5546cb745c STCH#51457 -- Strukton koppeling voor Sitech
svn path=/Website/branches/v2017.2/; revision=36485
2018-01-04 09:50:51 +00:00
Dennis Hartmann
36e33be7cf WTCA#51692 - brandgevaarlijke werkzaamheden melding aangepast
svn path=/Website/branches/v2017.2/; revision=36478
2018-01-03 14:48:34 +00:00
Arthur Egberink
20afed8a8f KFST#51724 -- Aanzetten koppeling XD personen
svn path=/Website/branches/v2017.2/; revision=36475
2018-01-03 13:09:59 +00:00
Robin Stoker
c46e492f8f STCH#51457 -- work naar fclt
svn path=/Website/branches/v2017.2/; revision=36472
2018-01-02 16:52:55 +00:00
Robin Stoker
5aeedea446 STCH#51457 -- cust folder gereed voor prod
svn path=/Website/branches/v2017.2/; revision=36471
2018-01-02 15:29:33 +00:00
Jos Groot Lipman
6299c9570f FSN#51651 'Not authorized' in plaats van AiAi als je geen PRSUSE hebt
svn path=/Website/branches/v2017.2/; revision=36468
2018-01-02 14:24:00 +00:00
Jos Groot Lipman
dffe35c395 DJIN#51710 Fout bij aanmelden bezoek door SAML gebruiker
svn path=/Website/branches/v2017.2/; revision=36465
2018-01-02 12:35:06 +00:00
Maarten van der Heide
b5ccc6e415 VLKC#40719 Eerste bestelstromen/Bestelopdrachtbon
svn path=/Website/branches/v2017.2/; revision=36464
2018-01-02 12:20:11 +00:00
Jos Groot Lipman
f459a78479 MARX#51709 API stylesheets mogen wel een include hebben
svn path=/Website/branches/v2017.2/; revision=36463
2018-01-02 11:56:57 +00:00
Jos Groot Lipman
a1df89318b UWVA#51703 ook via generiek de bes_bestelling_status en prs_perslid_key_voor kunnen bewerken
svn path=/Website/branches/v2017.2/; revision=36462
2018-01-02 10:58:14 +00:00
Ruud Lipper
29d7df3bad SUTF#51690 bij versturen van opdrachten verkeerde vakgroep email als verzendadres
svn path=/Website/branches/v2017.2/; revision=36455
2017-12-28 11:51:34 +00:00
Ruud Lipper
3c0cccc11a MARX#51672 afronden import opdrachtregels
svn path=/Website/branches/v2017.2/; revision=36454
2017-12-27 09:12:18 +00:00
ba21206a2f FCLT#51538 Gepinde optionele filters worden nu ook direct getoond (in de juiste volgorde)
svn path=/Website/branches/v2017.2/; revision=36451
2017-12-22 14:06:13 +00:00
Arthur Egberink
e2bdbef104 KFXX#51515 -- Implementatie Strijp-S voor Kien-FM
svn path=/Website/branches/v2017.2/; revision=36448
2017-12-22 12:55:45 +00:00
Robin Stoker
7edbbaa9be STCH#51457 -- SSO file voor STCH
svn path=/Website/branches/v2017.2/; revision=36447
2017-12-22 11:26:37 +00:00
6c69fd8d13 IVET#51554 typo
svn path=/Website/branches/v2017.2/; revision=36446
2017-12-22 10:44:32 +00:00
bd2e4e9c4d UWVA#51618 Volgorde van verplaatsen van de button balk veranderd tot na alle ajax calls
svn path=/Website/branches/v2017.2/; revision=36445
2017-12-22 09:51:54 +00:00
Arthur Egberink
c7f4d57f2e PCHD#41213 -- TV Schermen voor monitoring
svn path=/Website/branches/v2017.2/; revision=36442
2017-12-21 15:13:07 +00:00
Arthur Egberink
4ddbac1968 PCHD#41213 -- TV Schermen voor monitoring
svn path=/Website/branches/v2017.2/; revision=36441
2017-12-21 15:12:54 +00:00
Robin Stoker
d8747ba38c LOGI#40234 -- Styling voor QRcodes book meeting room
svn path=/Website/branches/v2017.2/; revision=36439
2017-12-21 11:47:31 +00:00
Suzan Wiegerinck
77319b9512 WZUV#41726 Fase 2: Factuurimport Technische Unie
svn path=/Website/branches/v2017.2/; revision=36437
2017-12-21 11:17:13 +00:00
Suzan Wiegerinck
0aa3f0235c AKZA#51567 deeplink in mail: notificatie naar areagedelegeerde (cust06)
svn path=/Website/branches/v2017.2/; revision=36434
2017-12-21 08:34:22 +00:00
Marcel Bourseau
9d8db40395 MDUX#51215: Consultancy dagen
svn path=/Website/branches/v2017.2/; revision=36430
2017-12-20 15:12:03 +00:00
Erik Groener
44f9e1c679 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/branches/v2017.2/; revision=36425
2017-12-20 14:17:54 +00:00
Erik Groener
f2c0f39ed0 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/branches/v2017.2/; revision=36422
2017-12-20 12:43:11 +00:00
Suzan Wiegerinck
05647272fd WZUV#51647 Aanpassen QR sticker
svn path=/Website/branches/v2017.2/; revision=36421
2017-12-20 12:38:12 +00:00
Ruud Lipper
cf165443f0 AAFM#51646
svn path=/Website/branches/v2017.2/; revision=36420
2017-12-20 12:30:31 +00:00
Ruud Lipper
db91183f3f AAFM#51634 heyday logo normale grote weergeven
svn path=/Website/branches/v2017.2/; revision=36418
2017-12-20 11:54:44 +00:00
Arthur Egberink
ac384e999c CSUN#40729 -- Automatiseren Facilitor (KPMG)
svn path=/Website/branches/v2017.2/; revision=36417
2017-12-20 08:52:28 +00:00
Marcel Bourseau
7117ac5a82 MARX#51557: Ketenstandaard opdracht XML ipv lege XML nodes deze nodes niet meesturen
svn path=/Website/branches/v2017.2/; revision=36414
2017-12-19 16:24:08 +00:00
Suzan Wiegerinck
e29cbd80fb WZUV#41726 Fase 2: Factuurimport Liander aangepast
svn path=/Website/branches/v2017.2/; revision=36411
2017-12-19 14:41:22 +00:00
Ruud Lipper
e8c5643daf MNNL#51631 deeplike links naar juiste omgeving laten verwijzen
svn path=/Website/branches/v2017.2/; revision=36408
2017-12-19 11:11:45 +00:00
Marcel Bourseau
76121fbaf8 MARX#51557: Ketenstandaard opdracht XML ipv lege XML nodes deze nodes niet meesturen
svn path=/Website/branches/v2017.2/; revision=36404
2017-12-18 15:49:33 +00:00
Dennis Hartmann
68fe5da31a YKPN#51177 - afmeldtekst op bon gekoppelde melding
svn path=/Website/branches/v2017.2/; revision=36385
2017-12-14 15:06:53 +00:00
Dennis Hartmann
8c571aa61a PCHW#51581 - X vergeten
svn path=/Website/branches/v2017.2/; revision=36381
2017-12-14 13:49:24 +00:00
Dennis Hartmann
91fa19eefa PCHW#51581 - dgs logo op reservering
svn path=/Website/branches/v2017.2/; revision=36380
2017-12-14 13:48:28 +00:00
Dennis Hartmann
3c9937287b PCHW#51581
svn path=/Website/branches/v2017.2/; revision=36378
2017-12-14 13:23:41 +00:00
46b6e55c66 FSN#51558 Floatingheader row width negeren en het laten afhangen van de cell widths
svn path=/Website/branches/v2017.2/; revision=36377
2017-12-14 12:48:17 +00:00
Dennis Hartmann
1bc4c59264 SKAF#51526 linebreaks toegevoegd
svn path=/Website/branches/v2017.2/; revision=36375
2017-12-14 11:33:51 +00:00
Erik Groener
c3a68abc73 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
Andere volgorde van velden in het overzicht.

svn path=/Website/branches/v2017.2/; revision=36374
2017-12-14 11:24:08 +00:00
Dennis Hartmann
deaf7688c3 VGLD#51590 - key 362 toegevoegd aan bon
svn path=/Website/branches/v2017.2/; revision=36373
2017-12-14 11:16:40 +00:00
Dennis Hartmann
257e793de9 PCHW#51581 - RESINF aan bon toegevoegd
svn path=/Website/branches/v2017.2/; revision=36369
2017-12-14 10:05:51 +00:00
Daniëlle Tolner
61de22f455 ARBO#51578: afleverdatum op bestelaanvraagbon
svn path=/Website/branches/v2017.2/; revision=36368
2017-12-14 09:49:34 +00:00
Dennis Hartmann
37f351796b KFSG#51582 -resinf text aangepast
svn path=/Website/branches/v2017.2/; revision=36367
2017-12-14 08:25:44 +00:00
Jos Groot Lipman
c02cc28238 Meer cursors closen
svn path=/Website/branches/v2017.2/; revision=36364
2017-12-13 16:27:11 +00:00
Maarten van der Heide
e49e0cec42 FSN#51427 Dianet
svn path=/Website/branches/v2017.2/; revision=36362
2017-12-13 16:05:00 +00:00
Maarten van der Heide
bb75ccac5c FSN#51427 Dianet
svn path=/Website/branches/v2017.2/; revision=36357
2017-12-13 14:05:32 +00:00
Dennis Hartmann
dc0349c9a5 MNNL#51430 - mijn oordeel toegevoegd aan bon
svn path=/Website/branches/v2017.2/; revision=36354
2017-12-13 13:03:16 +00:00
Suzan Wiegerinck
c47a4e6080 WZUV#41726 Fase 2: OCI koppeling Topbloemen
svn path=/Website/branches/v2017.2/; revision=36353
2017-12-13 11:33:45 +00:00
Suzan Wiegerinck
5389762221 WZUV#41726 Fase 2: OCI koppeling Topbloemen
svn path=/Website/branches/v2017.2/; revision=36352
2017-12-13 11:33:23 +00:00
0d98b2052a MNNL#51439 Draaitabel werkt weer als de mode=list URL direct wordt aangeroepen
svn path=/Website/branches/v2017.2/; revision=36351
2017-12-13 11:20:57 +00:00
Dennis Hartmann
63b226bf5c KFNS#51561 mailbon tekst aangepast - 'at the station'
svn path=/Website/branches/v2017.2/; revision=36350
2017-12-13 11:20:15 +00:00
Dennis Hartmann
18ade504c2 KFSG#51524 mobile styling toegevoegd
svn path=/Website/branches/v2017.2/; revision=36340
2017-12-12 12:16:12 +00:00
Maykel Geerdink
51ef1b5c20 AADS#51569: Bevindingen AAFM-DSM mbt inspecties en MJOB.
svn path=/Website/branches/v2017.2/; revision=36338
2017-12-12 09:57:25 +00:00
Ruud Lipper
30b22533ea AADS#51568
svn path=/Website/branches/v2017.2/; revision=36337
2017-12-12 09:46:25 +00:00
Ruud Lipper
abb73a91d1 AAFM#51309
svn path=/Website/branches/v2017.2/; revision=36336
2017-12-12 09:25:25 +00:00
Ruud Lipper
b63ea893df AAFM#51309
svn path=/Website/branches/v2017.2/; revision=36335
2017-12-12 09:16:30 +00:00
Dennis Hartmann
f7f2767296 SKAF#51526 -offerteaanvraag aangepast
svn path=/Website/branches/v2017.2/; revision=36334
2017-12-12 09:13:10 +00:00
Jos Groot Lipman
b869312000 MARX#51559 Ook bijlagen bij opdrachten via API2 kunnen uploaden
Nog wel aan te scherpen

svn path=/Website/branches/v2017.2/; revision=36329
2017-12-11 15:54:31 +00:00
Maykel Geerdink
de18661102 HCAS#51550: Fout in periodieke taak Dagrapport.
svn path=/Website/branches/v2017.2/; revision=36327
2017-12-11 14:38:04 +00:00
Maykel Geerdink
790c4c7295 YKPN#51494: Verkeerde persoon genotificeerd over fiattering.
svn path=/Website/branches/v2017.2/; revision=36324
2017-12-11 13:09:32 +00:00
Jos Groot Lipman
654046fab1 Bij generic sql iets betere simpele sql-formatting toepassen
svn path=/Website/branches/v2017.2/; revision=36320
2017-12-11 10:14:49 +00:00
Dennis Hartmann
62edd5dcd4 KFNS#51462 - RESINF Toegevoegd
svn path=/Website/branches/v2017.2/; revision=36319
2017-12-11 09:42:50 +00:00
Dennis Hartmann
20f45efc53 KFNS#51462 - resinf toegevoegd
svn path=/Website/branches/v2017.2/; revision=36318
2017-12-11 09:42:27 +00:00
Arthur Egberink
1a1e5a6218 YKPN#51552 -- Parkeerinfo per gebouw
svn path=/Website/branches/v2017.2/; revision=36315
2017-12-11 08:16:09 +00:00
Peter Feij
7998bdac54 VENR#51549 KIEN styling
svn path=/Website/branches/v2017.2/; revision=36311
2017-12-08 16:55:22 +00:00
Peter Feij
ff3ceefaa7 VENR#51549 KIEN styling
svn path=/Website/branches/v2017.2/; revision=36310
2017-12-08 16:54:56 +00:00
Erik Groener
a29daa08c1 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/branches/v2017.2/; revision=36301
2017-12-08 12:56:15 +00:00
Robin Stoker
cc12d17be5 DJIN#41120 -- Verwijderen van overrules puo
svn path=/Website/branches/v2017.2/; revision=36300
2017-12-08 12:01:52 +00:00
Robin Stoker
d669dc070c DJIN#41120 -- CUST folder DVON
svn path=/Website/branches/v2017.2/; revision=36299
2017-12-08 11:59:46 +00:00
e134b43324 FSN#46507 back button op de iOS -app gefixed voor niet gehashde pagina's
svn path=/Website/branches/v2017.2/; revision=36298
2017-12-08 11:28:57 +00:00
Dennis Hartmann
656388d8bf VGLD#51491 - key 181 inkoopbon oud format
svn path=/Website/branches/v2017.2/; revision=36281
2017-12-07 12:18:56 +00:00
Ruud Lipper
80819bf0ce AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36278
2017-12-07 10:54:32 +00:00
Ruud Lipper
1424640c4a AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36277
2017-12-07 10:20:12 +00:00
Ruud Lipper
8bb1230648 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36276
2017-12-07 09:19:29 +00:00
Ruud Lipper
736eeea2a1 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36275
2017-12-07 08:39:44 +00:00
Ruud Lipper
19dd73bce1 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36274
2017-12-07 08:06:41 +00:00
Ruud Lipper
056b0cd68e AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36273
2017-12-07 07:40:51 +00:00
Ruud Lipper
587b4de5e7 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36272
2017-12-07 07:35:52 +00:00
Ruud Lipper
daa31eea9f AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36271
2017-12-07 07:26:35 +00:00
Jos Groot Lipman
79b1c9677b UWVA#38360 Pacta via SAML
svn path=/Website/branches/v2017.2/; revision=36268
2017-12-06 15:21:31 +00:00
f7d77e818c FSN#46507 back button op de iOS -app gefixed (nog testen)
svn path=/Website/branches/v2017.2/; revision=36266
2017-12-06 15:12:15 +00:00
455db7b0b2 FSN#46507 back button op de iOS -app gefixed (nog testen)
svn path=/Website/branches/v2017.2/; revision=36265
2017-12-06 15:04:39 +00:00
6bd4b8b9f3 FSN#46507 back button op de iOS -app gefixed (nog testen)
svn path=/Website/branches/v2017.2/; revision=36264
2017-12-06 14:46:32 +00:00
0dd3280b3e FSN#46507 back button op de iOS -app gefixed (nog testen)
svn path=/Website/branches/v2017.2/; revision=36263
2017-12-06 14:34:51 +00:00
Maykel Geerdink
43a9586401 AKZA#51507: Taken aan objecten.
svn path=/Website/branches/v2017.2/; revision=36262
2017-12-06 14:27:38 +00:00
Ruud Lipper
9512136e5f AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36261
2017-12-06 14:20:18 +00:00
Ruud Lipper
902ab567a2 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36260
2017-12-06 14:13:45 +00:00
56a91665cb FSN#46507 back button op de iOS -app gefixed (nog testen)
svn path=/Website/branches/v2017.2/; revision=36259
2017-12-06 14:03:12 +00:00
Maykel Geerdink
4aa264a52a PLAT#51511: AiAi foutmelding accorderen Clusters - (Maximum aantal cursors?).
svn path=/Website/branches/v2017.2/; revision=36258
2017-12-06 13:48:07 +00:00
Ruud Lipper
e706d15001 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36256
2017-12-06 13:40:38 +00:00
Ruud Lipper
eb0005fa60 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36255
2017-12-06 13:25:52 +00:00
Ruud Lipper
92ccc0a4f5 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36254
2017-12-06 13:19:46 +00:00
Ruud Lipper
faa73ecbc0 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36253
2017-12-06 13:07:58 +00:00
Ruud Lipper
cc13515ac1 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36252
2017-12-06 12:52:42 +00:00
Ruud Lipper
0892d45014 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36250
2017-12-06 12:43:33 +00:00
Dennis Hartmann
7c64cbb5c4 KFNS#51416
svn path=/Website/branches/v2017.2/; revision=36249
2017-12-06 12:35:00 +00:00
Dennis Hartmann
c9cb42769a KFNS#51416
svn path=/Website/branches/v2017.2/; revision=36248
2017-12-06 12:33:58 +00:00
Dennis Hartmann
49e3de240b KFNS#51416
svn path=/Website/branches/v2017.2/; revision=36247
2017-12-06 12:33:39 +00:00
Ruud Lipper
5d26e74e8e AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36246
2017-12-06 12:33:08 +00:00
Ruud Lipper
c3eca9780b AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36245
2017-12-06 12:23:26 +00:00
Ruud Lipper
8b486f93c7 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36243
2017-12-06 12:16:48 +00:00
Ruud Lipper
22a1992755 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36242
2017-12-06 12:11:09 +00:00
Ruud Lipper
54797f134a AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36240
2017-12-06 11:57:07 +00:00
Ruud Lipper
312ee5a923 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36239
2017-12-06 11:44:50 +00:00
Ruud Lipper
87abaa47c8 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36238
2017-12-06 11:43:28 +00:00
Ruud Lipper
15a17f8ca5 AAFM#51309 wijziging naam
svn path=/Website/branches/v2017.2/; revision=36237
2017-12-06 11:34:11 +00:00
6e46c8af98 UWVA#51497 Nieuwe meldingen die als dubbele melding gekoppeld worden, krijgen nu ook de juist status mee
svn path=/Website/branches/v2017.2/; revision=36236
2017-12-06 11:31:20 +00:00
Jos Groot Lipman
1da99d13b5 FSN#51355 Auto-sso op basis van IP-adres beter bij SAML
svn path=/Website/branches/v2017.2/; revision=36230
2017-12-06 09:22:23 +00:00
Jos Groot Lipman
33e852b458 FSN#51355 Auto-sso op basis van IP-adres beter bij SAML
svn path=/Website/branches/v2017.2/; revision=36228
2017-12-06 08:33:56 +00:00
Ruud Lipper
d0e2297194 AAFM#51309 naamswijziging
svn path=/Website/branches/v2017.2/; revision=36227
2017-12-06 08:21:08 +00:00
Ruud Lipper
85bf0b9f28 AAFM#51309 naamswijziging
svn path=/Website/branches/v2017.2/; revision=36225
2017-12-06 07:58:52 +00:00
Ruud Lipper
a731c8e5fb AAFM#51309 naamswijziging
svn path=/Website/branches/v2017.2/; revision=36224
2017-12-06 07:53:45 +00:00
Ruud Lipper
d159a1597a AAFM#51309 naamswijziging
svn path=/Website/branches/v2017.2/; revision=36223
2017-12-06 07:48:16 +00:00
Maarten van der Heide
ffaf9fc07d BLCC#41738 AADS2BLCC/Opdracht-bijlagen
svn path=/Website/branches/v2017.2/; revision=36222
2017-12-05 16:34:11 +00:00
Jos Groot Lipman
0b1ad2bc74 FSN#51355 Auto-sso op basis van IP-adres beter bij SAML
svn path=/Website/branches/v2017.2/; revision=36220
2017-12-05 15:14:21 +00:00
Daniëlle Tolner
9736b67ae0 SUTF#39291: xml Scholten Medische Groep
svn path=/Website/branches/v2017.2/; revision=36218
2017-12-05 13:12:43 +00:00
Daniëlle Tolner
b9f5afc57a HPJI#50187: Kopje Betreft verwijderen
svn path=/Website/branches/v2017.2/; revision=36209
2017-12-05 10:35:39 +00:00
Arthur Egberink
9f60dc2c83 YKPN#41584 -- Bedrag kenmerk terugzetten naar materiaal
svn path=/Website/branches/v2017.2/; revision=36207
2017-12-05 10:23:18 +00:00
Dennis Hartmann
34f38df39e VGLD#51459 - key 381 toegevoegd
svn path=/Website/branches/v2017.2/; revision=36202
2017-12-05 08:55:25 +00:00
15415dcbf4 UWVA#51358 opdrachten lijst -> 'aanvrager' niet meer op Excel indien mld_opdr_show_requestor_in_list = 2
svn path=/Website/branches/v2017.2/; revision=36201
2017-12-05 08:39:20 +00:00
Arthur Egberink
cbf4bb1b3a PCHD#41213 -- TV Schermen voor monitoring
svn path=/Website/branches/v2017.2/; revision=36200
2017-12-05 07:49:41 +00:00
Maykel Geerdink
d97feb2856 MARX#51375: AiAi foutmelding invoeren facturen.
svn path=/Website/branches/v2017.2/; revision=36199
2017-12-04 15:23:26 +00:00
Daniëlle Tolner
b33d8b8f63 MDUX#45030 nu met juiste keys
svn path=/Website/branches/v2017.2/; revision=36194
2017-12-04 13:18:58 +00:00
Maykel Geerdink
244a9c2a0a FSN#51437: Gereedmelden van periodieke taak geeft Javascript fout - groupby is not defined.
svn path=/Website/branches/v2017.2/; revision=36193
2017-12-04 12:19:09 +00:00
Dennis Hartmann
120746870f AAHB#47368 - melding.xsl aangemaakt
svn path=/Website/branches/v2017.2/; revision=36192
2017-12-04 11:20:24 +00:00
Dennis Hartmann
b6917806d5 YKPN#51277
svn path=/Website/branches/v2017.2/; revision=36190
2017-12-04 08:18:59 +00:00
Suzan Wiegerinck
cbfa8e0c3d WZUV#41726 Fase 2: Exact koppeling en factuurimport Liander
svn path=/Website/branches/v2017.2/; revision=36188
2017-12-01 16:14:14 +00:00
Suzan Wiegerinck
7e3fee6ebc WZUV#41726 Fase 2: Exact koppeling
svn path=/Website/branches/v2017.2/; revision=36187
2017-12-01 16:13:28 +00:00
Dennis Hartmann
aa1eda7667 VGLD#51459 - opmerking veld toegevoegd inkooporder
svn path=/Website/branches/v2017.2/; revision=36184
2017-12-01 11:25:50 +00:00
Arthur Egberink
a73861c141 AAFM#51271 -- Implementatie Sint Jacob
svn path=/Website/branches/v2017.2/; revision=36183
2017-12-01 11:14:03 +00:00
Arthur Egberink
811a7e9ecd AAFM#39453 -- Omgevingen AAHU, AALB, AANS, AAVL en ASMS ontmantelen.
svn path=/Website/branches/v2017.2/; revision=36182
2017-12-01 10:45:19 +00:00
Dennis Hartmann
b8cbf4b950 MNNL#51430 - mijn oordeel aan afmeld bon toegevoegd
svn path=/Website/branches/v2017.2/; revision=36178
2017-12-01 08:51:36 +00:00
Arthur Egberink
f5c5fe6120 AAFM#39453 -- Omgevingen AAHU, AALB, AANS, AAVL en ASMS ontmantelen.
svn path=/Website/branches/v2017.2/; revision=36177
2017-12-01 08:31:07 +00:00
Daniëlle Tolner
b07c1873f9 MDUX#45030: OCI Staples nu met juiste keys
svn path=/Website/branches/v2017.2/; revision=36174
2017-11-30 15:02:20 +00:00
Daniëlle Tolner
61b8bd5ebd MDUX#45030: OCI Staples
svn path=/Website/branches/v2017.2/; revision=36173
2017-11-30 14:59:25 +00:00
Jos Groot Lipman
9e0fecf4f3 FSN#47247 Betere authorisatie API flexbijlagen
svn path=/Website/branches/v2017.2/; revision=36172
2017-11-30 14:31:33 +00:00
Jos Groot Lipman
4b013b77c3 Release 2017.2 Gold C
svn path=/Website/branches/v2017.2/; revision=36170
2017-11-30 11:39:32 +00:00
Erik Groener
17751156f5 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/branches/v2017.2/; revision=36169
2017-11-30 11:37:36 +00:00
Arthur Egberink
7c13657303 KFSG#51434 -- SCIM koppeling geeft foutmeldingen.
svn path=/Website/branches/v2017.2/; revision=36168
2017-11-30 11:32:08 +00:00
Jos Groot Lipman
d1af72f689 mld_melding_not_omschrijving wijzigen via elke tabel bewerken
svn path=/Website/branches/v2017.2/; revision=36167
2017-11-30 11:23:25 +00:00
Dennis Hartmann
6c4e1746f2 NYBU#51251 aanpassing partner charge eruit
svn path=/Website/branches/v2017.2/; revision=36166
2017-11-30 10:32:11 +00:00
Daniëlle Tolner
1d535b17af PCHW#41057: Punch out koppeling Bidfood
svn path=/Website/branches/v2017.2/; revision=36164
2017-11-30 10:00:05 +00:00
Ruud Lipper
d0f934ac83 CSUN#47147 CSU mobile thema
svn path=/Website/branches/v2017.2/; revision=36159
2017-11-30 09:04:07 +00:00
Jos Groot Lipman
fd4433610a UWVA#49828 In IE11 was het graphics plaatje weg bij tabwissel
svn path=/Website/branches/v2017.2/; revision=36151
2017-11-29 12:04:53 +00:00
Jos Groot Lipman
40be26f5f3 FSN#47247 Betere authorisatie API flexbijlagen
svn path=/Website/branches/v2017.2/; revision=36150
2017-11-29 11:29:04 +00:00
Arthur Egberink
b6e3d0f550 AAFM#51271 -- Implementatie Sint Jacob
svn path=/Website/branches/v2017.2/; revision=36149
2017-11-29 11:27:49 +00:00
Arthur Egberink
6593c87549 GVBA#46647 -- Koppeling met Strukton.
svn path=/Website/branches/v2017.2/; revision=36148
2017-11-29 10:48:49 +00:00
Robin Stoker
aa8d4fa9c9 Logo voor STCH (placeholder)
svn path=/Website/branches/v2017.2/; revision=36147
2017-11-29 10:39:34 +00:00
Robin Stoker
e679f12787 STCH map, Sitech
svn path=/Website/branches/v2017.2/; revision=36142
2017-11-28 16:43:11 +00:00
Dennis Hartmann
1fbf3af995 HCAS#51229 - formulierbewerker
svn path=/Website/branches/v2017.2/; revision=36139
2017-11-28 12:07:39 +00:00
Dennis Hartmann
7b1de50d5e HCAS#51229 - formulierbewerker
svn path=/Website/branches/v2017.2/; revision=36138
2017-11-28 12:07:28 +00:00
Dennis Hartmann
2276615a59 HCAS#51229 - formulierbewerker
svn path=/Website/branches/v2017.2/; revision=36137
2017-11-28 12:07:16 +00:00
Dennis Hartmann
dd3ab1934e HCAS#51229 - formulierbewerker
svn path=/Website/branches/v2017.2/; revision=36136
2017-11-28 12:07:03 +00:00
Dennis Hartmann
15b5ee2d52 HCAS#51229 - formulierbewerker
svn path=/Website/branches/v2017.2/; revision=36135
2017-11-28 12:06:49 +00:00
Dennis Hartmann
c90eb5cd5c HCAS#51229 - formulierbewerker
svn path=/Website/branches/v2017.2/; revision=36134
2017-11-28 12:06:37 +00:00
Dennis Hartmann
ba74fae033 HCAS#51229 - formulierbewerker
svn path=/Website/branches/v2017.2/; revision=36133
2017-11-28 12:06:18 +00:00
Maarten van der Heide
3d23f016b1 MNNL#41028 Deeplink naar melding in FACILITOR bovenaan op alle meldingbonnen
svn path=/Website/branches/v2017.2/; revision=36132
2017-11-28 10:20:12 +00:00
Marcel Bourseau
bdc1c2e4ce MARX#51371: RelationID in MessageService 2.40 vullen
svn path=/Website/branches/v2017.2/; revision=36127
2017-11-27 12:47:19 +00:00
Marcel Bourseau
c6423a77dc MARX#48947: Koppeling REMS <--> Mareon
svn path=/Website/branches/v2017.2/; revision=36126
2017-11-27 11:49:44 +00:00
Daniëlle Tolner
77c345f7a7 PCHW#41057: Punchout Bidfood
svn path=/Website/branches/v2017.2/; revision=36125
2017-11-27 11:30:47 +00:00
Marcel Bourseau
1515c657fe MARX#48947: Koppeling REMS <--> Mareon
svn path=/Website/branches/v2017.2/; revision=36123
2017-11-27 11:02:55 +00:00
Arthur Egberink
000eb5bb93 PCHD#41213 -- TV Schermen voor monitoring
svn path=/Website/branches/v2017.2/; revision=36119
2017-11-27 10:26:40 +00:00
Daniëlle Tolner
ab799697c2 stph#41897: [BES] Bestelstroom / OCI Bidfood (punchout)
svn path=/Website/branches/v2017.2/; revision=36117
2017-11-27 10:14:17 +00:00
Marcel Bourseau
b0e8598595 MARX#51183: ObjectID uit AX is niet pandnummer maar VGE nummer
svn path=/Website/branches/v2017.2/; revision=36116
2017-11-24 15:46:31 +00:00
Marcel Bourseau
b44d0dccf6 MARX#51332: Adresgegevens uitsplitsen
svn path=/Website/branches/v2017.2/; revision=36111
2017-11-24 13:47:40 +00:00
Ruud Lipper
8ed5d9c62b KFHT#41240 cust01 werkvergunning reminder
svn path=/Website/branches/v2017.2/; revision=36109
2017-11-24 13:33:21 +00:00
Dennis Hartmann
2e2004fd27 YKPN#48147 - crediteuren vervangen door KPN
svn path=/Website/branches/v2017.2/; revision=36104
2017-11-24 07:23:08 +00:00
Maykel Geerdink
c310159784 FSN#51259: Melder kan alleen onzichtbare aanvulling doen bij gekoppelde melding.
svn path=/Website/branches/v2017.2/; revision=36099
2017-11-23 13:50:06 +00:00
Maykel Geerdink
692395ccaf FCLT#51357: MJOB: Kopieer actuele situatie in nieuw scenario geeft melding.
svn path=/Website/branches/v2017.2/; revision=36097
2017-11-23 13:44:31 +00:00
Dennis Hartmann
20209b0781 spelfout
svn path=/Website/branches/v2017.2/; revision=36096
2017-11-23 12:52:24 +00:00
Arthur Egberink
e1a4ae965d YKPN#50947 -- Aanpassen kleuren reserveringen planbord
svn path=/Website/branches/v2017.2/; revision=36095
2017-11-23 12:34:40 +00:00
Daniëlle Tolner
74598e74a2 STPH#41897: Bidfood.xsl
svn path=/Website/branches/v2017.2/; revision=36094
2017-11-23 12:14:20 +00:00
Daniëlle Tolner
7d6008bdb1 STPH#41897: klantnummer voor Bidfood (deli xl)
svn path=/Website/branches/v2017.2/; revision=36093
2017-11-23 12:10:20 +00:00
Jos Groot Lipman
7884a527d1 FSN$51355 Auto-sso op basis van IP-adres
svn path=/Website/branches/v2017.2/; revision=36092
2017-11-23 11:52:33 +00:00
Maykel Geerdink
b3785ebfc8 FSN#51259: Melder kan alleen onzichtbare aanvulling doen bij gekoppelde melding.
svn path=/Website/branches/v2017.2/; revision=36091
2017-11-23 10:37:53 +00:00
Ruud Lipper
263e3242d1 FSN#51350 verkeerde autorisatie scenariobeheer + verkeerde icons
svn path=/Website/branches/v2017.2/; revision=36089
2017-11-23 09:24:25 +00:00
Arthur Egberink
f549a7fc91 VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=36088
2017-11-23 08:31:14 +00:00
Maarten van der Heide
c1f4c86e10 BLCC#51200 Verhuurfacturatie/Indexatie 2018
svn path=/Website/branches/v2017.2/; revision=36083
2017-11-22 15:36:12 +00:00
Dennis Hartmann
31ef6954c2 UWVA#51347 - opdrachttype/key=3261 IPV 3264
svn path=/Website/branches/v2017.2/; revision=36082
2017-11-22 15:23:57 +00:00
Robin Stoker
fba9be6e4d LOGI#40234 -- Styling voor QRcodes meetingrooms
svn path=/Website/branches/v2017.2/; revision=36081
2017-11-22 14:07:31 +00:00
Maykel Geerdink
da663b6c1f PLAT#41502: TB042 Kosten worden niet gevuld vanuit elementbeheer, is pas zichtbaar in MJOB.
svn path=/Website/branches/v2017.2/; revision=36075
2017-11-22 10:12:19 +00:00
Jos Groot Lipman
6dc8c8e1be FSN#51323 iOS App moet ook te gebruiken zijn zonder dat je een wachtwoord hebt
svn path=/Website/branches/v2017.2/; revision=36073
2017-11-22 08:59:59 +00:00
Maykel Geerdink
3e48bfea71 PLAT#47027: Bulkactie Freeze (Accorderen) op hoger nivo.
svn path=/Website/branches/v2017.2/; revision=36071
2017-11-21 15:18:23 +00:00
Suzan Wiegerinck
f866534a58 WZUV#41726 Implementatie fase 2
svn path=/Website/branches/v2017.2/; revision=36070
2017-11-21 15:13:37 +00:00
Maykel Geerdink
645435ee3c PLAT#47027: Bulkactie Freeze (Accorderen) op hoger nivo.
svn path=/Website/branches/v2017.2/; revision=36069
2017-11-21 15:00:20 +00:00
Suzan Wiegerinck
b468fbe239 WZUV#41726 Implementatie fase 2
svn path=/Website/branches/v2017.2/; revision=36067
2017-11-21 14:04:56 +00:00
Suzan Wiegerinck
823692e1e3 WZUV#41726 Implementatie fase 2
svn path=/Website/branches/v2017.2/; revision=36066
2017-11-21 14:04:21 +00:00
Suzan Wiegerinck
04b7667496 WZUV#41726 Implementatie fase 2
svn path=/Website/branches/v2017.2/; revision=36065
2017-11-21 14:03:55 +00:00
Maarten van der Heide
dc0a765817 UWVA#41812 Schonen stylesheet
svn path=/Website/branches/v2017.2/; revision=36057
2017-11-20 14:59:39 +00:00
Jos Groot Lipman
1d5b822609 YKPN#51275 Ook als een kostenplaats zonder fiatteur wordt gekozen moet de fvs voorkomen dat er gefiatteerd moet worden.
svn path=/Website/branches/v2017.2/; revision=36055
2017-11-20 13:49:37 +00:00
Dennis Hartmann
ff3789f2d7 NYBU#51251 - partnertoeslag bij bijkomende kosten in
svn path=/Website/branches/v2017.2/; revision=36053
2017-11-20 09:50:15 +00:00
Ruud Lipper
53a10d9af6 AAIT#51263 http://fonts.googleapis.com -> https
svn path=/Website/branches/v2017.2/; revision=36052
2017-11-20 09:29:14 +00:00
Dennis Hartmann
c896e657c9 ASTE#51285 - spelfouten aangepast
svn path=/Website/branches/v2017.2/; revision=36051
2017-11-20 09:10:44 +00:00
Jos Groot Lipman
51730a174d AAIT#51263 gecachete empty.asp moet een 'U bent niet ingelogd' niet cachen
svn path=/Website/branches/v2017.2/; revision=36050
2017-11-20 09:07:10 +00:00
Jos Groot Lipman
0d5d7193e3 _aanmaak velden in API2 consequent "created" noemen, doet SCIM ook
svn path=/Website/branches/v2017.2/; revision=36049
2017-11-20 08:20:46 +00:00
74e335af8c FSN#51250 Geavanceerd ook voor fronto beschikbaar gemaakt
svn path=/Website/branches/v2017.2/; revision=36047
2017-11-17 16:12:45 +00:00
3b1522b234 FSN#51272 Nieuwe mobile notities setten de flag ook meteen
svn path=/Website/branches/v2017.2/; revision=36045
2017-11-17 15:00:59 +00:00
Erik Groener
62a2d0d8f3 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/branches/v2017.2/; revision=36039
2017-11-17 13:09:04 +00:00
72996fabbf KFSG#45329 Planbord button opmaak verbeterd na onClick
svn path=/Website/branches/v2017.2/; revision=36034
2017-11-17 11:22:49 +00:00
08aeb15e9b FSN#51197 order of document.ready changed
svn path=/Website/branches/v2017.2/; revision=36032
2017-11-17 09:59:41 +00:00
Jos Groot Lipman
cc66d277aa Release 2017.2 Gold B
svn path=/Website/branches/v2017.2/; revision=36027
2017-11-16 14:08:10 +00:00
Maykel Geerdink
fa53bc1118 PLAT#47027: Bulkactie Freeze (Accorderen) op hoger nivo.
svn path=/Website/branches/v2017.2/; revision=36025
2017-11-16 14:03:53 +00:00
Jos Groot Lipman
186e03525b FSN#41943 Notities van Logcenter commit berichten standaard in klappen
svn path=/Website/branches/v2017.2/; revision=36022
2017-11-16 13:39:19 +00:00
Jos Groot Lipman
526243c585 FSN#51218 Resultset processing afbreken als de gebruiker venster sluit
svn path=/Website/branches/v2017.2/; revision=36021
2017-11-16 12:52:41 +00:00
Jos Groot Lipman
ddd90c472a FSN#51255 Via zoekveld melding bekijken moet ook flags tonen
svn path=/Website/branches/v2017.2/; revision=36020
2017-11-16 12:14:31 +00:00
Dennis Hartmann
b606ae8652 HSLE#51233 - lc-pas toegevoegd aan uitleenbon
svn path=/Website/branches/v2017.2/; revision=36017
2017-11-16 08:28:05 +00:00
Arthur Egberink
286936d97b CSUN#40729 -- Automatisering Facilitor koppelingen (bon KPN)
svn path=/Website/branches/v2017.2/; revision=36015
2017-11-15 15:39:08 +00:00
Jos Groot Lipman
da98fd182f FKNS#50287 Prodsearch term welke begint met een cijfer moet niet naar itemsearch springen maar bijvoorbeeld gewoon in FAQ zoeken
svn path=/Website/branches/v2017.2/; revision=36014
2017-11-15 14:55:12 +00:00
Maarten van der Heide
af05f538e9 FSN#47567 OFWD0
svn path=/Website/branches/v2017.2/; revision=36012
2017-11-15 14:10:07 +00:00
Maykel Geerdink
2d486b6c70 FSN#51212: ORA-03113: Einde-van-bestand op communicatiekanaal. - Opvragen MJOB lijst.
svn path=/Website/branches/v2017.2/; revision=36010
2017-11-15 14:00:41 +00:00
Dennis Hartmann
75646cc851 YKPN#51231 - aanpassing opdrachten
svn path=/Website/branches/v2017.2/; revision=36009
2017-11-15 13:45:17 +00:00
Marcel Bourseau
1bbf51ae63 MARX#48947: Koppeling REMS <--> Mareon
svn path=/Website/branches/v2017.2/; revision=36007
2017-11-15 12:23:36 +00:00
Maykel Geerdink
38a419611c FSN#49607: Notificatie bij doorsturen LOGC.
svn path=/Website/branches/v2017.2/; revision=36005
2017-11-15 12:18:31 +00:00
Suzan Wiegerinck
7dc16a5a3d STAM#51188 Aanpassen QR codes
svn path=/Website/branches/v2017.2/; revision=36004
2017-11-15 11:52:56 +00:00
Maykel Geerdink
1345e207bf FSN#49607: Notificatie bij doorsturen LOGC.
svn path=/Website/branches/v2017.2/; revision=36003
2017-11-15 11:49:26 +00:00
Ruud Lipper
eb41d446f0 HSLE#50887 flowmailer aanpassingen xml verborgen meesturen
svn path=/Website/branches/v2017.2/; revision=36002
2017-11-15 11:38:20 +00:00
Maykel Geerdink
f794aa0e98 UWVA#48807: SLE: Kan een sleutel niet wijzigen (mis het icoontje).
svn path=/Website/branches/v2017.2/; revision=35997
2017-11-15 09:15:15 +00:00
Jos Groot Lipman
f4dc5e9e74 FSN#51218 Resultset processing afbreken als de gebruiker venster sluit
svn path=/Website/branches/v2017.2/; revision=35993
2017-11-14 15:45:23 +00:00
Jos Groot Lipman
240b11fb75 FSN#49827 Voortaan ook in e-mail headers:
X-FCLT-noticode: MLDMAI
X-FCLT-notimode: email

svn path=/Website/branches/v2017.2/; revision=35992
2017-11-14 15:12:34 +00:00
Dennis Hartmann
310ae8669f VGLD#51127 aanpassing na opmerkingen
svn path=/Website/branches/v2017.2/; revision=35990
2017-11-14 14:28:12 +00:00
Dennis Hartmann
a9ccb26bc5 VGLD#51127 spelfoutje
svn path=/Website/branches/v2017.2/; revision=35989
2017-11-14 13:59:46 +00:00
Jos Groot Lipman
29ff32779f De 'Basic' van basic authentication hoort case-insensitive te zijn
https://github.com/rails/rails/issues/21199

svn path=/Website/branches/v2017.2/; revision=35988
2017-11-14 13:34:50 +00:00
Dennis Hartmann
57c7127e8f KFHT#51211 css rood kennisbank
svn path=/Website/branches/v2017.2/; revision=35987
2017-11-14 12:51:45 +00:00
Dennis Hartmann
6bfb9f8c78 VENR#51211 Css aangepast
svn path=/Website/branches/v2017.2/; revision=35986
2017-11-14 12:50:30 +00:00
Dennis Hartmann
f6189884be vgld#51127
svn path=/Website/branches/v2017.2/; revision=35985
2017-11-14 11:18:34 +00:00
Dennis Hartmann
66a75da18d VGLD#51127 - inkoopbon aangepast
svn path=/Website/branches/v2017.2/; revision=35984
2017-11-14 11:16:13 +00:00
Arthur Egberink
9c41eb7a42 PCHD#41213 -- TV Schermen voor monitoring
svn path=/Website/branches/v2017.2/; revision=35983
2017-11-14 11:02:37 +00:00
Arthur Egberink
211a829da3 PCHD#41213 -- TV Schermen voor monitoring
svn path=/Website/branches/v2017.2/; revision=35982
2017-11-14 10:11:56 +00:00
Ruud Lipper
3920bb2274 HSLE#50887 xml ook in bonnen (hidden) tbv flowmailer
svn path=/Website/branches/v2017.2/; revision=35981
2017-11-14 08:38:25 +00:00
Arthur Egberink
f2377bfb32 PCHA#49749 dgs logo
svn path=/Website/branches/v2017.2/; revision=35979
2017-11-13 12:30:29 +00:00
Arthur Egberink
c6791ed198 PCHA#49749 dgs logo
svn path=/Website/branches/v2017.2/; revision=35978
2017-11-13 12:24:17 +00:00
Arthur Egberink
b84f706c4e PCHA#49749 -idnova logo
svn path=/Website/branches/v2017.2/; revision=35976
2017-11-13 12:22:46 +00:00
Dennis Hartmann
18cca09deb PCHA#49749 dgs logo
svn path=/Website/branches/v2017.2/; revision=35975
2017-11-13 12:10:39 +00:00
Dennis Hartmann
13f2b6dbdb PCHA#49749 DGS LOGO
svn path=/Website/branches/v2017.2/; revision=35973
2017-11-13 12:06:10 +00:00
Dennis Hartmann
3156da4133 PCHA#49749 -idnova logo
svn path=/Website/branches/v2017.2/; revision=35972
2017-11-13 12:02:57 +00:00
Suzan Wiegerinck
45736e44da STAM#50227 foto's meenemen bij personenimport
svn path=/Website/branches/v2017.2/; revision=35971
2017-11-13 09:33:35 +00:00
Suzan Wiegerinck
006b2d27e1 STAM#50227 foto's meenemen bij personenimport
svn path=/Website/branches/v2017.2/; revision=35970
2017-11-13 09:33:05 +00:00
Peter Feij
66574fd7dd FSN#46067 niet alle thema's zijn geschikt voor mobile
svn path=/Website/branches/v2017.2/; revision=35963
2017-11-10 15:46:33 +00:00
Peter Feij
0f71129730 CSUN#50687 showall ondersteunen
svn path=/Website/branches/v2017.2/; revision=35958
2017-11-10 14:39:39 +00:00
Dennis Hartmann
d42db5ab0a AAES#51173 logo aangepast
svn path=/Website/branches/v2017.2/; revision=35955
2017-11-10 12:17:17 +00:00
Dennis Hartmann
45cb313e59 AAES#51173 rwe_logo toegevoegd
svn path=/Website/branches/v2017.2/; revision=35954
2017-11-10 11:40:28 +00:00
Dennis Hartmann
5a1ed413c3 WELK#50527 CSS bezoekers
svn path=/Website/branches/v2017.2/; revision=35953
2017-11-10 11:26:07 +00:00
Marcel Bourseau
36f0dc9d99 MARX#38938: Statuscodes van ketenstandaard ondersteunen
svn path=/Website/branches/v2017.2/; revision=35952
2017-11-10 11:08:13 +00:00
Daniëlle Tolner
23b50da5a9 HPJI#47248: Kaders opdrachtbonnen + opmerking reservering
svn path=/Website/branches/v2017.2/; revision=35946
2017-11-09 14:47:02 +00:00
75fe783b60 UWVA#49829 bugfix; in IE11 op de scrollbar van een suggest klikken liet dropdown verdwijnen. Scrollbalk werkt weer naar behoren.
svn path=/Website/branches/v2017.2/; revision=35945
2017-11-09 14:23:29 +00:00
Erik Groener
3a8cebf984 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/branches/v2017.2/; revision=35943
2017-11-09 13:04:56 +00:00
Ruud Lipper
d4f25e8694 SKAF#50587 berichten alleen kunnen verwijderen als het eigen berichten zijn.
svn path=/Website/branches/v2017.2/; revision=35939
2017-11-09 12:11:55 +00:00
0f4396fd7a FSN#49467 bugfix; behandelaar gegevens werden verkeerd doorgegeven bij onChangeVakgroep
svn path=/Website/branches/v2017.2/; revision=35938
2017-11-09 11:29:22 +00:00
Maykel Geerdink
84d79659d1 PLAT#47027: Bulkactie Freeze (Accorderen) op hoger nivo.
svn path=/Website/branches/v2017.2/; revision=35936
2017-11-09 11:04:00 +00:00
Maykel Geerdink
cec4b78077 PLAT#47027: Bulkactie Freeze (Accorderen) op hoger nivo.
svn path=/Website/branches/v2017.2/; revision=35935
2017-11-09 09:46:34 +00:00
Ruud Lipper
ba82229a5a HSLE#50887
svn path=/Website/branches/v2017.2/; revision=35934
2017-11-09 08:58:35 +00:00
Arthur Egberink
9eac2a8121 AAFM#49947 -- Implementatie EXPO
svn path=/Website/branches/v2017.2/; revision=35933
2017-11-09 08:48:18 +00:00
Dennis Hartmann
76a9328d35 46867
svn path=/Website/branches/v2017.2/; revision=35932
2017-11-08 15:06:26 +00:00
Dennis Hartmann
630214325c IVET#46867 telnr op bon
svn path=/Website/branches/v2017.2/; revision=35930
2017-11-08 15:03:26 +00:00
Arthur Egberink
8a81decf45 PCHD#41213 -- TV Schermen voor monitoring
svn path=/Website/branches/v2017.2/; revision=35928
2017-11-08 12:30:56 +00:00
Arthur Egberink
ea909cd1a2 PCHD#41213 -- TV Schermen voor monitoring
svn path=/Website/branches/v2017.2/; revision=35927
2017-11-08 12:27:35 +00:00
Arthur Egberink
e24f28a496 PCHD#41213 -- TV Schermen voor monitoring
svn path=/Website/branches/v2017.2/; revision=35926
2017-11-08 11:51:39 +00:00
Arthur Egberink
418592c3fa PCHD#41213 -- TV Schermen voor monitoring
svn path=/Website/branches/v2017.2/; revision=35925
2017-11-08 11:39:04 +00:00
Arthur Egberink
78cbc16910 KFSG#50609 -- Diverse stylesheet aanpassingen.
svn path=/Website/branches/v2017.2/; revision=35921
2017-11-07 14:30:15 +00:00
Peter Feij
83063831b3 FSN#41032
svn path=/Website/branches/v2017.2/; revision=35917
2017-11-07 12:20:10 +00:00
Daniëlle Tolner
43b396d919 KFNS#48707: Kien logo verwijderen
svn path=/Website/branches/v2017.2/; revision=35916
2017-11-07 11:38:32 +00:00
Dennis Hartmann
b0ffb13d58 KFNS#50427 - bezoekers tekst aangepast + engels
svn path=/Website/branches/v2017.2/; revision=35915
2017-11-07 11:02:05 +00:00
Dennis Hartmann
96f69328e0 PCHX#46427 - mldafm voor alle omgevingen - afhandelingstekst gekoppelde melding
svn path=/Website/branches/v2017.2/; revision=35914
2017-11-07 10:20:11 +00:00
Jos Groot Lipman
45a0f81368 FSN#50327 Als e-mail niet verstuurd kan worden (naar de interne SMTP server, schijf vol bijvoorbeeld) dit wel behandelen als fout die later opnieuw geprobeerd moet worden
svn path=/Website/branches/v2017.2/; revision=35912
2017-11-07 08:49:34 +00:00
Peter Feij
29496d7514 MNNL#49647 Flexkenmerken als FOF ook nog mogen wijzigen bij Ingezien
svn path=/Website/branches/v2017.2/; revision=35911
2017-11-07 08:32:09 +00:00
Ruud Lipper
809a065f68 AADO#50388 htmlsafe in block_start
svn path=/Website/branches/v2017.2/; revision=35910
2017-11-07 08:20:52 +00:00
Jos Groot Lipman
f3f2a25495 FSN#48548 Doorklikken naar leverancierscherm werkt niet meer
svn path=/Website/branches/v2017.2/; revision=35908
2017-11-06 16:25:55 +00:00
Jos Groot Lipman
a6841cae45 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/branches/v2017.2/; revision=35907
2017-11-06 13:47:28 +00:00
Erik Groener
3eb448d3f7 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
Andere volgorde van velden in het overzicht.

svn path=/Website/branches/v2017.2/; revision=35896
2017-11-03 12:40:46 +00:00
Erik Groener
976ef924ab FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
Bij Facturen een bedrijf kunnen selecteren zowel als project en/of subproject gekozen is. 

svn path=/Website/branches/v2017.2/; revision=35892
2017-11-03 10:03:00 +00:00
Arthur Egberink
385e506d32 GVBA#46647 -- Koppeling met Strukton.
svn path=/Website/branches/v2017.2/; revision=35890
2017-11-03 09:10:08 +00:00
Arthur Egberink
f7607a8949 AAGN#46028 -- Unica interface aanpassing
svn path=/Website/branches/v2017.2/; revision=35885
2017-11-02 13:19:46 +00:00
Arthur Egberink
707b3b4406 AAGN#46028 -- Unica interface aanpassing
svn path=/Website/branches/v2017.2/; revision=35884
2017-11-02 13:19:07 +00:00
Arthur Egberink
01c2a41c4d AAGN#46028 -- Unica interface aanpassing
svn path=/Website/branches/v2017.2/; revision=35883
2017-11-02 13:00:21 +00:00
Maarten van der Heide
ef2c7e8078 FSN#47567 OFWD0
svn path=/Website/branches/v2017.2/; revision=35882
2017-11-02 12:05:08 +00:00
Maarten van der Heide
54a3dbab3f FSN#47567 OFWD0
svn path=/Website/branches/v2017.2/; revision=35881
2017-11-02 12:00:16 +00:00
Dennis Hartmann
25c53f7af7 YKPN#48147 - tekst aanpassingen gedaan
svn path=/Website/branches/v2017.2/; revision=35880
2017-11-02 09:34:47 +00:00
Erik Groener
3160062054 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/branches/v2017.2/; revision=35879
2017-11-02 09:29:04 +00:00
Dennis Hartmann
14711790bf HCAS#49407
svn path=/Website/branches/v2017.2/; revision=35878
2017-11-02 08:27:53 +00:00
Dennis Hartmann
02b1bdad5f HCAS#49407 telefoonnummer opdrachtbon aangepast
svn path=/Website/branches/v2017.2/; revision=35877
2017-11-02 08:21:15 +00:00
Marcel Bourseau
1336c9fe38 MARX#49027: PDF uit XMLfactuur (harde node) werkt niet bij INSBOU004
svn path=/Website/branches/v2017.2/; revision=35875
2017-11-01 15:19:05 +00:00
Dennis Hartmann
356f1e56c6 SORO#49268 formulierbewerker
svn path=/Website/branches/v2017.2/; revision=35873
2017-11-01 14:16:55 +00:00
Dennis Hartmann
81b5c74cf4 SORO#49268 formulierbewerker
svn path=/Website/branches/v2017.2/; revision=35872
2017-11-01 14:16:43 +00:00
Dennis Hartmann
7132612281 SORO#49268 formulierbewerker
svn path=/Website/branches/v2017.2/; revision=35871
2017-11-01 14:16:32 +00:00
Dennis Hartmann
c3a9bc91b7 SORO#49268 formulierbewerker
svn path=/Website/branches/v2017.2/; revision=35870
2017-11-01 14:16:14 +00:00
Dennis Hartmann
149373d6bb svn path=/Website/branches/v2017.2/; revision=35859 2017-10-31 09:34:18 +00:00
Daniëlle Tolner
f61fa2e04e MDUX#41412: FCC op factuur vermelden
svn path=/Website/branches/v2017.2/; revision=35858
2017-10-31 09:28:15 +00:00
Marcel Bourseau
4907979af7 MARX#48987: Ondersteuning facturatie INSBOU004
svn path=/Website/branches/v2017.2/; revision=35854
2017-10-30 14:49:16 +00:00
Marcel Bourseau
50e1b750e1 MARX#48987: Ondersteuning facturatie INSBOU004
svn path=/Website/branches/v2017.2/; revision=35853
2017-10-30 14:48:46 +00:00
Ruud Lipper
13b254f9f2 KFNS#47407 rode verkleuring kb items
svn path=/Website/branches/v2017.2/; revision=35852
2017-10-30 14:41:27 +00:00
Dennis Hartmann
5320523035 PCHE#48527 email adres aangepast
svn path=/Website/branches/v2017.2/; revision=35850
2017-10-30 14:12:39 +00:00
Maarten van der Heide
dea24be3f4 FSN#47567 OFWD0
svn path=/Website/branches/v2017.2/; revision=35849
2017-10-30 13:02:08 +00:00
Dennis Hartmann
d285fe6304 HOUT#48887 tmpl_logo
svn path=/Website/branches/v2017.2/; revision=35848
2017-10-30 11:06:57 +00:00
Robin Stoker
0e5af4a66f VGLD#43547 -- Wijziging kostenplaatsen naar Exact
svn path=/Website/branches/v2017.2/; revision=35846
2017-10-30 09:06:07 +00:00
2be15d050b FSN#46368 Het aantal kolommen wordt nu weer goed geteld
svn path=/Website/branches/v2017.2/; revision=35843
2017-10-27 14:41:42 +00:00
Dennis Hartmann
ce507311df PCHW#46427 - afhandeling gekoppelde melding nu op bon
svn path=/Website/branches/v2017.2/; revision=35836
2017-10-27 12:00:39 +00:00
8404555ff7 VGLD#48467 Bijlagen met content-disposition null of "attachment" zijn per definitie veilig wat tabnabbing betreft, deze links kunnen dus zorgeloos via de 'onveilige' manier
svn path=/Website/branches/v2017.2/; revision=35834
2017-10-27 09:35:30 +00:00
Ruud Lipper
a941e063e4 VEBE#48547 objectsoort wijzigen via elke tabel bewerken
svn path=/Website/branches/v2017.2/; revision=35833
2017-10-27 09:22:30 +00:00
4f11bf9f59 KFNS#47407 Kennisbankitems gekoppeld aan een plaats worden nu rood gemaakt
svn path=/Website/branches/v2017.2/; revision=35832
2017-10-27 08:36:29 +00:00
04872defb7 KFNS#47407 Kennisbank betekenis displaymode teruggezet zodat deze weer gelijk is aan 2017.1
svn path=/Website/branches/v2017.2/; revision=35831
2017-10-27 07:57:47 +00:00
Arthur Egberink
b8b38bad46 ASLE#38748 -- Terugdraaien: Verbeteringen implementatie NH punt 4 en 7
svn path=/Website/branches/v2017.2/; revision=35821
2017-10-26 08:09:44 +00:00
Maykel Geerdink
52433e5a32 AAIT#48247: Doorsturen.
svn path=/Website/branches/v2017.2/; revision=35819
2017-10-26 07:48:56 +00:00
Jos Groot Lipman
d93b1778cb Merge 2017.1 changes voor encrypted bijlagen
svn path=/Website/branches/v2017.2/; revision=35818
2017-10-26 07:26:30 +00:00
Jos Groot Lipman
8375db5c48 aut_sp_duration is nooit aangemaakt
svn path=/Website/branches/v2017.2/; revision=35817
2017-10-25 15:01:44 +00:00
Jos Groot Lipman
4c8c9e792e FSN#40747 iOS doet het schijnbaar niet met relatieve paden, die dus absoluut maken
svn path=/Website/branches/v2017.2/; revision=35816
2017-10-25 14:42:08 +00:00
Jos Groot Lipman
eab3babf90 FSN#40747 iOS doet het schijnbaar niet met relatieve paden, die dus absoluut maken
svn path=/Website/branches/v2017.2/; revision=35815
2017-10-25 14:41:10 +00:00
Ruud Lipper
85db4402c3 AAEY#46707 boekmaand corrigeren via elke tabel bekijken
svn path=/Website/branches/v2017.2/; revision=35814
2017-10-25 11:55:26 +00:00
Jos Groot Lipman
fdb2fdc3bc FSN#41898: Vastgepinde filters werken niet in combinatie met autosearch
HCAS#40443 constateerde dat het bij BEZ nog niet werkt

svn path=/Website/branches/v2017.2/; revision=35812
2017-10-25 10:26:27 +00:00
Dennis Hartmann
7fd6b8e0c7 YKPN#45287 - html .missing toegevoegd
svn path=/Website/branches/v2017.2/; revision=35811
2017-10-25 10:12:42 +00:00
Dennis Hartmann
0b2a6616f4 KFHT#46348 - pbm's onder maatregelen gezet
svn path=/Website/branches/v2017.2/; revision=35808
2017-10-25 07:54:46 +00:00
Maykel Geerdink
01ba59b0a9 VGLD#47987: Dubbele regels bij Fiatteren aanvragen.
svn path=/Website/branches/v2017.2/; revision=35805
2017-10-24 13:08:43 +00:00
Arthur Egberink
3095e9b3c2 PCHW#48007 -- _ autorisatie groepen niet meer zichtbaar
svn path=/Website/branches/v2017.2/; revision=35804
2017-10-24 13:06:52 +00:00
Maykel Geerdink
2961bcba30 PLAT#47707: Bulkactie 'Voltooien' hangt niet af van instelling.
svn path=/Website/branches/v2017.2/; revision=35802
2017-10-24 11:56:19 +00:00
Maykel Geerdink
8382d52ffc PLAT#47707: Bulkactie 'Voltooien' hangt niet af van instelling.
svn path=/Website/branches/v2017.2/; revision=35801
2017-10-24 11:50:16 +00:00
Jos Groot Lipman
13bea3b054 KFSG#47267 Personen via SCIM/REST API kunnen reanimeren
svn path=/Website/branches/v2017.2/; revision=35800
2017-10-24 11:49:59 +00:00
Erik Groener
f19d64e074 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/branches/v2017.2/; revision=35799
2017-10-24 11:02:49 +00:00
Jos Groot Lipman
c66544f61b Codereview: enkele unused variabelen verwijderd
svn path=/Website/branches/v2017.2/; revision=35795
2017-10-24 08:49:51 +00:00
Maarten van der Heide
56f1472375 FSN#47567 OFWD0
svn path=/Website/branches/v2017.2/; revision=35790
2017-10-23 15:27:25 +00:00
Jos Groot Lipman
0b659932a1 Merge 2017.2 Gold A patches
svn path=/Website/branches/v2017.2/; revision=35789
2017-10-23 14:28:02 +00:00
Suzan Wiegerinck
84f5bcf21e WZUV#41244 Facturatie reserveringen
svn path=/Website/branches/v2017.2/; revision=35788
2017-10-23 14:23:00 +00:00
Maykel Geerdink
63926d2b16 PLAT#39733: MJOB Jaarovergang: schone lei.
svn path=/Website/branches/v2017.2/; revision=35784
2017-10-23 12:09:05 +00:00
Maykel Geerdink
64b631dd3e PLAT#39733: MJOB Jaarovergang: schone lei.
svn path=/Website/branches/v2017.2/; revision=35781
2017-10-23 11:16:07 +00:00
Maykel Geerdink
4f297e6a13 IVET#45368: Containers rapportage overzicht.
svn path=/Website/branches/v2017.2/; revision=35780
2017-10-23 06:17:07 +00:00
84f1444f24 SGGR#47247 Geen WEB_MLDMGT rechten meer nodig om bijlage te uploaden (achterhalen attributetype)
svn path=/Website/branches/v2017.2/; revision=35777
2017-10-20 13:56:44 +00:00
Arthur Egberink
4f7bfef102 KFSG#41700 -- Scim koppeling realiseren (functie verwijderen uit interface)
svn path=/Website/branches/v2017.2/; revision=35776
2017-10-20 12:12:17 +00:00
Arthur Egberink
a415202f48 KFSG#41700 -- Scim koppeling realiseren (functie verwijderen uit interface)
svn path=/Website/branches/v2017.2/; revision=35775
2017-10-20 12:01:40 +00:00
Arthur Egberink
0964c96f8e KFSG#41700 -- Scim koppeling realiseren (lege elementen verwdijderen)
svn path=/Website/branches/v2017.2/; revision=35774
2017-10-20 11:58:18 +00:00
Jos Groot Lipman
0857e92ec0 FSN#41529 Upload mogelijkheid voor xxxx.xsl iets betere dialoog titel
svn path=/Website/branches/v2017.2/; revision=35771
2017-10-19 14:56:07 +00:00
Maykel Geerdink
9637fa154e SGGR#46887: AiAi EOF BOF in mld_close_confirm.asp.
svn path=/Website/branches/v2017.2/; revision=35765
2017-10-19 14:14:06 +00:00
Peter Feij
145df00f11 ARBO#47167 Deels terug naar voor PLAT#41505.
svn path=/Website/branches/v2017.2/; revision=35764
2017-10-19 14:04:33 +00:00
Arthur Egberink
9f737397ca CSUN#40729 -- Automatisering Facilitor koppelingen (bon PostNL)
svn path=/Website/branches/v2017.2/; revision=35763
2017-10-19 13:42:41 +00:00
128fc90569 FSN#46568 Bulk (en single) actie 'verwerken' toegevoegd
svn path=/Website/branches/v2017.2/; revision=35762
2017-10-19 13:35:52 +00:00
Daniëlle Tolner
ad87ad0afb HPJI#47248: aanpassingen bestelbon
svn path=/Website/branches/v2017.2/; revision=35759
2017-10-19 13:24:06 +00:00
Arthur Egberink
63822c5500 VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35758
2017-10-19 13:19:58 +00:00
Maykel Geerdink
9150efae72 FSN#47347: MJOB: Doorvoeren scenario geeft timeout.
svn path=/Website/branches/v2017.2/; revision=35757
2017-10-19 13:16:17 +00:00
Jos Groot Lipman
d2c6e1d539 KFSG#47267 Personen via SCIM/REST API kunnen reanimeren
svn path=/Website/branches/v2017.2/; revision=35753
2017-10-19 11:00:33 +00:00
Erik Groener
cbf5472d99 FSN#46968 BGT: Deelproject aanmaken lukt niet (TWYN.BGT_PROJECT wordt gemuteerd)
svn path=/Website/branches/v2017.2/; revision=35750
2017-10-19 10:14:41 +00:00
Maykel Geerdink
d257efbf9b IVET#45368: Containers rapportage overzicht.
svn path=/Website/branches/v2017.2/; revision=35749
2017-10-19 10:08:20 +00:00
Arthur Egberink
aa2d79c3c4 KFSG#41700 -- Scim koppeling realiseren (onderdruk _ groepen)
svn path=/Website/branches/v2017.2/; revision=35748
2017-10-19 09:57:27 +00:00
Erik Groener
81b70244ee FSN#46968 BGT: Deelproject aanmaken lukt niet (TWYN.BGT_PROJECT wordt gemuteerd)
svn path=/Website/branches/v2017.2/; revision=35747
2017-10-19 09:43:45 +00:00
Jos Groot Lipman
9e9bf06792 Melding 46548 In ieder geval even zorgen dat de gewone pda-webversie wel weer gewoon de bijlagen opent
svn path=/Website/branches/v2017.2/; revision=35746
2017-10-19 09:19:07 +00:00
Erik Groener
4e87b3684b FSN#46947 BGT: toevoegen project geeft na opslaan 'Gegevens niet gevonden.'
svn path=/Website/branches/v2017.2/; revision=35744
2017-10-19 08:06:44 +00:00
Maykel Geerdink
e33a11709d MDUX#46748: AiAi eenheid_std is undefined /appl/ins/ins_xcp_save.asp.
svn path=/Website/branches/v2017.2/; revision=35741
2017-10-19 07:08:04 +00:00
Ruud Lipper
977914523d FSN#47129 als mld_info.behandel_key == "null" && behandelaar_key == -1 dan behandelaar niet saven en tracken
svn path=/Website/branches/v2017.2/; revision=35740
2017-10-19 07:03:16 +00:00
Arthur Egberink
8c9b4ff666 KFSG#41700 -- Scim koppeling realiseren (Error afhandeling)
svn path=/Website/branches/v2017.2/; revision=35739
2017-10-19 06:35:37 +00:00
Erik Groener
2ed249c62b FSN#47088 Zichtbaar voor melder ook aangevinkt bij doorsturen
svn path=/Website/branches/v2017.2/; revision=35737
2017-10-18 14:42:01 +00:00
Maykel Geerdink
98b8450846 WZUV#46667: Meldingen niet zichtbaar op de mobiel.
svn path=/Website/branches/v2017.2/; revision=35736
2017-10-18 14:08:52 +00:00
Peter Feij
bae63627ac FSN#47107 plaatsfilter moet ook resultaat opleveren als je niet Objecten beperkt tot.
svn path=/Website/branches/v2017.2/; revision=35735
2017-10-18 14:03:18 +00:00
Erik Groener
051587bd64 FSN#46970 BGT: budgetrubriek verplicht in interface
svn path=/Website/branches/v2017.2/; revision=35734
2017-10-18 13:11:52 +00:00
Erik Groener
2fcea8dd59 FSN#46967 BGT projectcode bij deelprojecten moet verplicht worden in de interface
svn path=/Website/branches/v2017.2/; revision=35733
2017-10-18 12:57:36 +00:00
Dennis Hartmann
7fbdc0106c ALLI#46927 - mobiel nummer tonen bij discipline 1181
svn path=/Website/branches/v2017.2/; revision=35727
2017-10-18 08:57:42 +00:00
Dennis Hartmann
35ca195e4e IVET#46867 - Entrop aangepast naar Remedy
svn path=/Website/branches/v2017.2/; revision=35726
2017-10-18 07:57:43 +00:00
Maykel Geerdink
5cfb924a1b FSN#45727: Bevindingen nav testen Facilitor APP.
svn path=/Website/branches/v2017.2/; revision=35725
2017-10-18 07:53:49 +00:00
Arthur Egberink
b9453bb0d3 VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35724
2017-10-18 07:47:36 +00:00
Arthur Egberink
31756d0db9 VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35723
2017-10-18 07:41:43 +00:00
Dennis Hartmann
dfb6645dd5 KFNS#40578 - xsl:if test="extra_key" toegevoegd
svn path=/Website/branches/v2017.2/; revision=35722
2017-10-18 07:19:11 +00:00
Arthur Egberink
749c4fec5e KFSG#41700 -- Scim koppeling realiseren (Error afhandeling)
svn path=/Website/branches/v2017.2/; revision=35721
2017-10-18 07:15:44 +00:00
Dennis Hartmann
bff6eeafab HPJI#46627 - email adres zichtbaar op factuur
svn path=/Website/branches/v2017.2/; revision=35720
2017-10-18 07:03:26 +00:00
Arthur Egberink
980f539686 GVBA#46647 -- Koppeling met Strukton.
svn path=/Website/branches/v2017.2/; revision=35718
2017-10-17 10:54:58 +00:00
Arthur Egberink
17b6a2ba76 KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35717
2017-10-17 10:29:00 +00:00
Arthur Egberink
ce0004b039 KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35716
2017-10-17 09:46:09 +00:00
Maykel Geerdink
7f6175583b FSN#46388: MLDUPD: XML document must have a top level element.
svn path=/Website/branches/v2017.2/; revision=35715
2017-10-17 08:14:13 +00:00
Jos Groot Lipman
a9b82c6d50 QUAW#42388:Vooral ook: resultcode/returntekst DoLoggen bij falen: minder false-positives
svn path=/Website/branches/v2017.2/; revision=35714
2017-10-17 07:36:21 +00:00
Arthur Egberink
7ca203f0f3 KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35713
2017-10-17 07:34:42 +00:00
Arthur Egberink
1587f8fc0d KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35712
2017-10-17 07:29:56 +00:00
Dennis Hartmann
10e5961aac KFHT#46348 - maatregel 4 en opmerkingen toegevoegd
svn path=/Website/branches/v2017.2/; revision=35711
2017-10-17 07:22:24 +00:00
Ruud Lipper
fbbe4cc3f5 FSN#46567 returncode moet resultcode zijn
svn path=/Website/branches/v2017.2/; revision=35710
2017-10-17 06:30:53 +00:00
Jos Groot Lipman
f7e9aa6fdf QUAW#42388: AiAi bij aanroep API=tsc_opdr. Vooral ook: resultcode/returntekst DoLoggen bij falen.
svn path=/Website/branches/v2017.2/; revision=35709
2017-10-16 17:53:13 +00:00
Jos Groot Lipman
9f997dc6a1 Release 2017.2 Gold
svn path=/Website/branches/v2017.2/; revision=35708
2017-10-16 15:30:12 +00:00
Ruud Lipper
e1c86e41ef AADS#46528 htmlsafe header toegevoegd
svn path=/Website/branches/v2017.2/; revision=35707
2017-10-16 13:41:23 +00:00
Jos Groot Lipman
fd6bf5b4b4 FSN#44507: (PDA) Bijlagen toevoegen herzien ook voor PRS
svn path=/Website/branches/v2017.2/; revision=35705
2017-10-16 09:59:05 +00:00
Peter Feij
5c7eef90a6 FSN#40747 Paden tbv app
svn path=/Website/branches/v2017.2/; revision=35704
2017-10-16 09:39:46 +00:00
Dennis Hartmann
db0bd422ad HOUT#46227 - prijs_info op 1 gezet.
svn path=/Website/branches/v2017.2/; revision=35703
2017-10-16 09:27:54 +00:00
Jos Groot Lipman
1f0ce15034 FSN#44507: (PDA) Bijlagen toevoegen herzien: (nog) even niet aanklikbaar omdat je niet terug kunt
svn path=/Website/branches/v2017.2/; revision=35702
2017-10-16 09:23:24 +00:00
Arthur Egberink
65ba5f3e19 YKPN#46367 -- Koppeling Strukton aanpassen
svn path=/Website/branches/v2017.2/; revision=35699
2017-10-16 07:14:42 +00:00
Ruud Lipper
2b4dc9749e FSN#45727
svn path=/Website/branches/v2017.2/; revision=35696
2017-10-13 14:39:30 +00:00
Dennis Hartmann
f76af60234 NYBU#46208 - res aan mld gehongen if rsv_ruimte
svn path=/Website/branches/v2017.2/; revision=35689
2017-10-13 11:27:53 +00:00
Ruud Lipper
74edf10757 FSN#45727 tellen werkplekken en ruimten verbeterd
svn path=/Website/branches/v2017.2/; revision=35688
2017-10-13 09:24:34 +00:00
8203858f81 FSN#41788 Similar calls achter een setting geplaatst (in show en edit mode, beide achter S(mld_show_search_similar))
svn path=/Website/branches/v2017.2/; revision=35686
2017-10-13 08:19:33 +00:00
Dennis Hartmann
ff93f1b285 MNNL#45527
svn path=/Website/branches/v2017.2/; revision=35685
2017-10-13 08:02:20 +00:00
Ruud Lipper
3c075140b2 FSN#46167 parkeerplaatsen uitsluiten als reserveerbare objecten
svn path=/Website/branches/v2017.2/; revision=35684
2017-10-13 07:49:56 +00:00
b982e9664a FSN#40747 quotes
svn path=/Website/branches/v2017.2/; revision=35683
2017-10-13 07:42:21 +00:00
Arthur Egberink
fb516e9750 KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35680
2017-10-13 07:02:02 +00:00
Ruud Lipper
69bfb92698 FSN#46147 Doorklikken vanuit showmode mogelijk + tabtitels
svn path=/Website/branches/v2017.2/; revision=35679
2017-10-13 06:48:09 +00:00
Arthur Egberink
640034a895 KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35678
2017-10-13 06:47:28 +00:00
Peter Feij
444bead8dd De calendar klapte altijd al direct open, lijkt logisch want verplicht, maar blijkt vervelend want je ziet niet wat er nog meer gevraagd wordt. Ik wil hem uit ;-).
svn path=/Website/branches/v2017.2/; revision=35676
2017-10-12 15:29:14 +00:00
Jos Groot Lipman
733aa6b03e FSN#44507: (PDA) Bijlagen toevoegen herzien: handtekening nog even old-style
svn path=/Website/branches/v2017.2/; revision=35675
2017-10-12 15:29:10 +00:00
Jos Groot Lipman
3b1a564b3f Tabs naar spaties
svn path=/Website/branches/v2017.2/; revision=35674
2017-10-12 14:46:17 +00:00
Maykel Geerdink
599d836a42 FSN#45988: AiAi bij toevoegen PDA reservering.
svn path=/Website/branches/v2017.2/; revision=35670
2017-10-12 14:09:08 +00:00
Jos Groot Lipman
cefc226e88 FSN#44507: (PDA) Bijlagen toevoegen herzien
svn path=/Website/branches/v2017.2/; revision=35669
2017-10-12 14:05:09 +00:00
Jos Groot Lipman
3b1a92d842 FSN#44507: (PDA) Bijlagen toevoegen herzien
svn path=/Website/branches/v2017.2/; revision=35668
2017-10-12 13:18:40 +00:00
Dennis Hartmann
2bfc7fefb0 ALLI#41752 outlook reservering - kenteken in titel
svn path=/Website/branches/v2017.2/; revision=35666
2017-10-12 13:12:11 +00:00
Jos Groot Lipman
d0e8b83407 API1 mld update iets robuuster als geen wijzigvelden meegestuurd
svn path=/Website/branches/v2017.2/; revision=35665
2017-10-12 12:57:28 +00:00
Daniëlle Tolner
7f51b9ebe5 45068: Staffelprijzen voor Zalsman-->aanvraagprijs
svn path=/Website/branches/v2017.2/; revision=35664
2017-10-12 12:55:48 +00:00
Arthur Egberink
e14b8d67c9 VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35663
2017-10-12 12:30:56 +00:00
Jos Groot Lipman
bca7d91587 FSN#45727 App kunnen herkennen in asp en dan geen 'naar classic' tonen
svn path=/Website/branches/v2017.2/; revision=35661
2017-10-12 10:11:36 +00:00
Dennis Hartmann
d40e769686 HPJI#42067 tmpl logo elker toegevoegd en tekst wijzigingen
svn path=/Website/branches/v2017.2/; revision=35660
2017-10-12 10:01:49 +00:00
Dennis Hartmann
8d0ced1723 HPJI#42067 tmpl logo elker toegevoegd en tekst wijzigingen
svn path=/Website/branches/v2017.2/; revision=35659
2017-10-12 10:01:17 +00:00
Jos Groot Lipman
8e47c92e4d FSN#44507: (PDA) Bijlagen toevoegen herzien savepoint
Ook vooral: mgt/mgt_tools naar api2/api2_tools verplaatst

svn path=/Website/branches/v2017.2/; revision=35657
2017-10-12 09:09:43 +00:00
Jos Groot Lipman
8280e20254 FSN#44507: (PDA) Bijlagen toevoegen herzien savepoint
Ook vooral: mgt/mgt_tools naar api2/api2_tools verplaatst

svn path=/Website/branches/v2017.2/; revision=35656
2017-10-12 08:59:35 +00:00
Arthur Egberink
f1d3ad9fe8 KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35654
2017-10-12 06:57:59 +00:00
Arthur Egberink
a0fa62ebb0 PCHW#41835 -- Infobord vergaderzalen
svn path=/Website/branches/v2017.2/; revision=35652
2017-10-11 14:16:15 +00:00
Dennis Hartmann
168e5bbd65 NUBY#45907 - partner toeslag toegevoegd
svn path=/Website/branches/v2017.2/; revision=35651
2017-10-11 13:51:55 +00:00
Dennis Hartmann
943f3a79a6 NYBU#45887 -- campus supervisor veranderd in services team
svn path=/Website/branches/v2017.2/; revision=35650
2017-10-11 12:40:37 +00:00
Dennis Hartmann
280ba6f009 NYBU#45887 -- supervisor veranderd in services team
svn path=/Website/branches/v2017.2/; revision=35649
2017-10-11 12:30:01 +00:00
Ruud Lipper
e76a7d8d36 HPJI#42067 afleveradres op basis van afleveradres bij melding
svn path=/Website/branches/v2017.2/; revision=35647
2017-10-11 11:23:48 +00:00
Arthur Egberink
029b9dbcd4 PCHW#37813 -- Implementatie Gemeente Westland
svn path=/Website/branches/v2017.2/; revision=35646
2017-10-11 11:06:39 +00:00
Jos Groot Lipman
d5d31c5760 Bij onverwachte application pool herstart beter aangeven via welke customerId/ url omdat het geen *echte* AiAi is.
Ook: padnaam in logger.inc voortaan forward slashes. Iets correcter. Of PATH_INFO vervangen kan worden door SCRIPT_NAME of URL heb ik geen zin om uit te zoeken

svn path=/Website/branches/v2017.2/; revision=35642
2017-10-11 09:47:30 +00:00
Jos Groot Lipman
6b955944b1 FSN#41668 SCIM geen onnodige __DoLog's
svn path=/Website/branches/v2017.2/; revision=35641
2017-10-11 08:52:32 +00:00
Ruud Lipper
fb3264ebe1 FSN#45727 zichtbaar voor melder alleen bij meldingen
svn path=/Website/branches/v2017.2/; revision=35638
2017-10-11 07:36:50 +00:00
Ruud Lipper
cc767338e8 FSN#45727 suggest op Mobile niet geel
svn path=/Website/branches/v2017.2/; revision=35637
2017-10-11 07:35:43 +00:00
Ruud Lipper
5e61b820e7 FSN#45707 mobile diensten zonder gekoppelde relatie niet tonen.
svn path=/Website/branches/v2017.2/; revision=35636
2017-10-11 06:53:24 +00:00
Maykel Geerdink
aa2f70b3ac FSN#45627: Starten van geplande inspectie geeft AiAi (HCAS.INS).
svn path=/Website/branches/v2017.2/; revision=35635
2017-10-11 06:51:57 +00:00
Jos Groot Lipman
ad69be3d4e FSN#41668 SCIM ook startIndex en Count ondersteunen
svn path=/Website/branches/v2017.2/; revision=35634
2017-10-10 14:16:56 +00:00
Arthur Egberink
9d4dd4c38c YKPN#40474 - Extra fiatteringsniveaus boven kostenplaatsgroep.
svn path=/Website/branches/v2017.2/; revision=35633
2017-10-10 13:25:31 +00:00
Maykel Geerdink
279dbedd49 FSN#45227: Selecteren listboxwaarde Mobile geeft foutmelding.
svn path=/Website/branches/v2017.2/; revision=35632
2017-10-10 13:19:05 +00:00
Jos Groot Lipman
b0c4f71075 FSN#44507: (PDA) Bijlagen toevoegen herzien savepoint
svn path=/Website/branches/v2017.2/; revision=35631
2017-10-10 13:05:22 +00:00
Dennis Hartmann
6707e6b16a RENK#45567 - factuurtekst aangepast
svn path=/Website/branches/v2017.2/; revision=35630
2017-10-10 12:23:46 +00:00
Peter Feij
4e1dec1eba FSN#40747 iOS doet het schijnbaar niet met relatieve paden, die dus absoluut maken
svn path=/Website/branches/v2017.2/; revision=35629
2017-10-10 12:13:46 +00:00
Dennis Hartmann
ae2a222871 MNNL#45527 achter naam_full oslogin op bon gezet
svn path=/Website/branches/v2017.2/; revision=35627
2017-10-10 11:27:25 +00:00
Maykel Geerdink
80ca4c4c7c IVET#43108: Verschil in status bij scannen containers.
svn path=/Website/branches/v2017.2/; revision=35625
2017-10-10 09:39:44 +00:00
Dennis Hartmann
e4b5c643d7 PCHW#41909 MLDAFM datum afgemeld toegevoegd
svn path=/Website/branches/v2017.2/; revision=35624
2017-10-10 08:42:54 +00:00
Peter Feij
7d395b6dc2 FSN#40747 iOS doet het schijnbaar niet met relatieve paden, die dus absoluut maken
svn path=/Website/branches/v2017.2/; revision=35621
2017-10-09 16:30:43 +00:00
Maarten van der Heide
0ff728600f VLKC#44267 Registreren PO-nr van Fleurop in bestelaanvraag
svn path=/Website/branches/v2017.2/; revision=35620
2017-10-09 15:50:37 +00:00
Maarten van der Heide
e3c079e7c6 VLKC#44267 Registreren PO-nr van Fleurop in bestelaanvraag
svn path=/Website/branches/v2017.2/; revision=35619
2017-10-09 15:28:21 +00:00
Maarten van der Heide
b0cc529cd6 VLKC#44267 Registreren PO-nr van Fleurop in bestelaanvraag
svn path=/Website/branches/v2017.2/; revision=35618
2017-10-09 15:07:32 +00:00
Arthur Egberink
c17454909e KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35617
2017-10-09 15:00:34 +00:00
Arthur Egberink
d79f40cd3b KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35616
2017-10-09 14:57:35 +00:00
Arthur Egberink
6eaf84c0ab KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35615
2017-10-09 14:56:46 +00:00
Arthur Egberink
3afb853b21 KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35614
2017-10-09 14:34:11 +00:00
Ruud Lipper
b95a4b99e8 CWTD#45308 Capaciteit aan overzicht reserveerbare ruimten toegevoegd
svn path=/Website/branches/v2017.2/; revision=35608
2017-10-09 11:16:43 +00:00
Ruud Lipper
d850579eb3 CWTD#45308 capaciteit ook op lijst tonen
svn path=/Website/branches/v2017.2/; revision=35606
2017-10-09 10:06:51 +00:00
Jos Groot Lipman
646f90f846 QUAW#42388: AiAi bij aanroep API=tsc_opdr. Vooral ook: resultcode/returntekst DoLoggen bij falen.
svn path=/Website/branches/v2017.2/; revision=35605
2017-10-09 09:15:00 +00:00
Ruud Lipper
3d1db6757b DCOL#45027 relatietype aan export import toegevoegd
svn path=/Website/branches/v2017.2/; revision=35604
2017-10-09 08:27:42 +00:00
Ruud Lipper
025cc706d9 FSN#45267 Eigen gegevens mobile aiai
svn path=/Website/branches/v2017.2/; revision=35603
2017-10-09 07:05:31 +00:00
Arthur Egberink
a6db4e9b50 KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35599
2017-10-06 12:09:01 +00:00
Arthur Egberink
ab35d77fa3 KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35598
2017-10-06 12:07:59 +00:00
Arthur Egberink
03f6eb6f40 KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35597
2017-10-06 12:06:54 +00:00
Ruud Lipper
dba59b55e8 FSN#45187 Klantcode prefix ook op mobile lijsten
svn path=/Website/branches/v2017.2/; revision=35596
2017-10-06 12:02:03 +00:00
Dennis Hartmann
cc5ce1764e HOUT#43767 headercolor weggehaald
svn path=/Website/branches/v2017.2/; revision=35594
2017-10-06 11:26:10 +00:00
Maarten van der Heide
0f9458e168 BLCC#37691 CFF en opmaak factuur+BLCC#36985 FIN-freeze/Terug naar 1e werkdag
svn path=/Website/branches/v2017.2/; revision=35593
2017-10-06 11:21:53 +00:00
Dennis Hartmann
cfe12a4aa4 HOUT#43767 banner aangepast
svn path=/Website/branches/v2017.2/; revision=35592
2017-10-06 11:10:17 +00:00
Dennis Hartmann
58357eeec0 SORO#40913 -- tekst voor resnew beschikbaar gemaakt
svn path=/Website/branches/v2017.2/; revision=35590
2017-10-06 10:18:19 +00:00
Ruud Lipper
6f3696923b FSN#45147 Vrijwillig fiatteren vinkje verschijnt nooit bij nieuwe opdrachten in versie 2017.2
svn path=/Website/branches/v2017.2/; revision=35586
2017-10-06 08:51:22 +00:00
Marcel Bourseau
bc0a46f7a5 MARX#43987: Strukton Premium - SAP facturen
svn path=/Website/branches/v2017.2/; revision=35584
2017-10-06 08:25:49 +00:00
Jos Groot Lipman
15567eed39 Release 2017.2 RC2
svn path=/Website/branches/v2017.2/; revision=35582
2017-10-05 14:17:42 +00:00
Arthur Egberink
8dd1c69064 KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35581
2017-10-05 14:01:33 +00:00
Jos Groot Lipman
285e202027 Meer absolute paden voor mobile App onder iOS
svn path=/Website/branches/v2017.2/; revision=35578
2017-10-05 12:23:51 +00:00
Jos Groot Lipman
1637e040bd FSN#44507: (PDA) Bijlagen toevoegen herzien savepoint
svn path=/Website/branches/v2017.2/; revision=35573
2017-10-05 10:45:54 +00:00
Peter Feij
2ac840d57c FSN#44509 Buttons moeten luisteren naar de daarvoor gedefinieerde condities. (en Home-knop tbv app)
svn path=/Website/branches/v2017.2/; revision=35571
2017-10-05 10:03:50 +00:00
Maykel Geerdink
f63774bf8a FSN#44509: Aiai tijdens starten van een taak.
svn path=/Website/branches/v2017.2/; revision=35569
2017-10-05 08:46:11 +00:00
Maykel Geerdink
874a389798 PLAT#39567: Van MJOB naar MJOP/R.
svn path=/Website/branches/v2017.2/; revision=35568
2017-10-05 08:20:31 +00:00
Jos Groot Lipman
be6598bbec FSN#41668 SCIM 2e aanzet ook users bij authorizationgroup
svn path=/Website/branches/v2017.2/; revision=35566
2017-10-05 07:39:10 +00:00
Jos Groot Lipman
e227941097 FSN#44427 API2 notities default jezelf al author
svn path=/Website/branches/v2017.2/; revision=35565
2017-10-05 07:21:34 +00:00
Arthur Egberink
2174b0ccc8 VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35563
2017-10-04 15:44:49 +00:00
Arthur Egberink
fc1e02b199 VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35562
2017-10-04 15:42:59 +00:00
Ruud Lipper
8d3583c64b FSN#44827 voor factuurframe op autorisatie controleren
svn path=/Website/branches/v2017.2/; revision=35560
2017-10-04 13:00:09 +00:00
Dennis Hartmann
06b070805c VLKC#43167 - Notitie bij opdracht toegevoegd
svn path=/Website/branches/v2017.2/; revision=35557
2017-10-04 12:05:52 +00:00
Jos Groot Lipman
f0c8447fe1 FSN#44767: Verwijderder facturen niet op nummer te vinden
svn path=/Website/branches/v2017.2/; revision=35556
2017-10-04 12:04:57 +00:00
Dennis Hartmann
4d57f411df #44688 - res email versturen border 0px weggehaald
svn path=/Website/branches/v2017.2/; revision=35553
2017-10-04 10:26:33 +00:00
Arthur Egberink
819e99b812 VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35552
2017-10-04 10:09:50 +00:00
Jos Groot Lipman
5a565d3825 FSN#44427 Upload windows-1252 encoded JSON wat robuuster gemaakt
svn path=/Website/branches/v2017.2/; revision=35551
2017-10-04 10:04:15 +00:00
Erik Groener
17504d35a2 FCLT-SUP#43187 Actie bij melder zetten ontbreekt op mobile
svn path=/Website/branches/v2017.2/; revision=35547
2017-10-04 08:09:35 +00:00
Jos Groot Lipman
1eff8346bb FSN#44427 API2 meldingkenmerken ook kunnen opvragen
Bestandnamen zijn nog niet jofel maar wel backwards compatible

svn path=/Website/branches/v2017.2/; revision=35546
2017-10-04 07:54:26 +00:00
Peter Feij
a8af526b08 LOGC#44567 Bolletjes als parameter ondersteunen (en iemand anders heeft die error eruitgehaald) - fix
svn path=/Website/branches/v2017.2/; revision=35544
2017-10-04 07:20:26 +00:00
Peter Feij
728845c7a9 LOGC#44567 Bolletjes als parameter ondersteunen (en iemand anders heeft die error eruitgehaald)
svn path=/Website/branches/v2017.2/; revision=35538
2017-10-03 14:09:51 +00:00
Arthur Egberink
6927b4b966 CSUN#40729 -- Automatisering Facilitor koppelingen (gebouwcode)
svn path=/Website/branches/v2017.2/; revision=35536
2017-10-03 13:44:46 +00:00
Arthur Egberink
c0099d33fb GOMX#44467 -- Logo's aanpassen voor NH Hotel
svn path=/Website/branches/v2017.2/; revision=35535
2017-10-03 13:27:34 +00:00
Arthur Egberink
221387eef9 GOMX#44467 -- Logo's aanpassen voor NH Hotel
svn path=/Website/branches/v2017.2/; revision=35534
2017-10-03 13:26:32 +00:00
Arthur Egberink
1c017f985a GOMX#44467 -- Logo's aanpassen voor NH Hotel
svn path=/Website/branches/v2017.2/; revision=35533
2017-10-03 13:25:03 +00:00
Robin Stoker
a258a756e0 export en import folder toegevoegd
svn path=/Website/branches/v2017.2/; revision=35532
2017-10-03 13:19:57 +00:00
Robin Stoker
b9fdf300c6 VEST#41990 -- Vesteda klaar voor productie
svn path=/Website/branches/v2017.2/; revision=35531
2017-10-03 13:08:22 +00:00
Erik Groener
b92b634ebe FCLT-SUP#43507 Rubriek verplicht bij kostensoortgroepen
svn path=/Website/branches/v2017.2/; revision=35530
2017-10-03 12:43:37 +00:00
Jos Groot Lipman
fde28ba7b9 44507: PDA Bijlagen toevoegen, redmine origineel
svn path=/Website/branches/v2017.2/; revision=35529
2017-10-03 12:29:09 +00:00
Erik Groener
f535037ea5 FCLT-SUP#43187 Actie bij melder zetten ontbreekt op mobile
svn path=/Website/branches/v2017.2/; revision=35528
2017-10-03 12:09:10 +00:00
Erik Groener
c204c7fe2b FCLT-SUP#43507 Rubriek verplicht bij kostensoortgroepen
svn path=/Website/branches/v2017.2/; revision=35525
2017-10-03 11:12:09 +00:00
Erik Groener
5c4b9d1f31 FCLT-SUP#43187 Actie bij melder zetten ontbreekt op mobile
svn path=/Website/branches/v2017.2/; revision=35524
2017-10-03 11:00:34 +00:00
Erik Groener
bfa44f3c29 FCLT-SUP#43507 Rubriek verplicht bij kostensoortgroepen
svn path=/Website/branches/v2017.2/; revision=35523
2017-10-03 10:07:10 +00:00
Jos Groot Lipman
2591a5ac0a FSN#44427 Bijlagen upload voor issues. Prio ook default '3'
svn path=/Website/branches/v2017.2/; revision=35522
2017-10-03 09:46:03 +00:00
Jos Groot Lipman
ee6bdccd6e FSN#44427 Bijlagen upload voor issues
svn path=/Website/branches/v2017.2/; revision=35521
2017-10-03 09:32:39 +00:00
Arthur Egberink
942cb1271b VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35520
2017-10-03 08:48:12 +00:00
Arthur Egberink
9f72f22a5e VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35519
2017-10-02 17:17:09 +00:00
Arthur Egberink
29495dff65 VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35518
2017-10-02 17:13:18 +00:00
Jos Groot Lipman
0aee8af313 Meer absolute paden voor mobile App onder iOS
svn path=/Website/branches/v2017.2/; revision=35516
2017-10-02 13:55:37 +00:00
Jos Groot Lipman
70d6b8db52 FSN#41668 SCIM 2e aanzet
svn path=/Website/branches/v2017.2/; revision=35515
2017-10-02 13:51:40 +00:00
Ruud Lipper
335da3d334 fsn#44167 ook behandelaar als parameter mee kunnen geven tbv menu-item meldingen zonder behandelaar.
svn path=/Website/branches/v2017.2/; revision=35514
2017-10-02 11:42:31 +00:00
Ruud Lipper
2806aa52b1 FSN#44027 doorsturen op mobile ook afhankelijk van mld_forward_opm_flags
svn path=/Website/branches/v2017.2/; revision=35512
2017-10-02 11:09:22 +00:00
Jos Groot Lipman
cef1fb3110 PLAT#39567: issuedate is niet verplicht bij nieuwe meldingen, gewoon default nu
svn path=/Website/branches/v2017.2/; revision=35511
2017-10-02 10:37:27 +00:00
Maykel Geerdink
afe3a08a1f PLAT#39567: Van MJOB naar MJOP/R.
svn path=/Website/branches/v2017.2/; revision=35509
2017-10-02 08:33:34 +00:00
Erik Groener
f283aceec4 FCLT-SUP#43187 Actie bij melder zetten ontbreekt op mobile
svn path=/Website/branches/v2017.2/; revision=35504
2017-10-02 07:34:42 +00:00
Ruud Lipper
7e7280a157 FSN#43927 Lege regels tonen niet afhankelijk van scenarios
svn path=/Website/branches/v2017.2/; revision=35503
2017-09-29 12:42:21 +00:00
Arthur Egberink
c7f7acf298 VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35501
2017-09-29 12:03:43 +00:00
0a1bd592e8 DJIN#41809 Interne uitvoerders of -niet contactpersonen- WEB_ORDBO2 mogen nu opdrachten gekoppeld aan interne bedrijven accepteren & afmelden
svn path=/Website/branches/v2017.2/; revision=35500
2017-09-29 12:01:37 +00:00
Dennis Hartmann
da32b198f9 CSUN#43869 - csu.png aangepast naar nieuwe banner
svn path=/Website/branches/v2017.2/; revision=35498
2017-09-29 09:49:54 +00:00
Arthur Egberink
99d2ca8879 VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35496
2017-09-29 08:44:14 +00:00
e65c16ea75 DENB#39784 Menuitem 'Voorziening reserveren' toegevoegd en voorwaarde voor reserveer knoppen onder 'lopende zaken' toegevoegd
svn path=/Website/branches/v2017.2/; revision=35495
2017-09-29 08:40:42 +00:00
Dennis Hartmann
541252d031 NYBU#40311 voor stdmelding 961 de MLDAFM aangepast
svn path=/Website/branches/v2017.2/; revision=35493
2017-09-29 08:03:26 +00:00
Jos Groot Lipman
31c9690e05 FSN#43787 bij doorsturen en alles gelijklaten in de dialoog blijven
svn path=/Website/branches/v2017.2/; revision=35490
2017-09-28 15:06:10 +00:00
Jos Groot Lipman
501c3b356a FSN#43787 bij doorsturen en alles gelijklaten weer echte waarschuwing tonen
svn path=/Website/branches/v2017.2/; revision=35489
2017-09-28 14:52:43 +00:00
Jos Groot Lipman
9cbe88920e Session("page_start") alleen vermelden bij meer dan 10 seconde, anders boeit het niet (genoeg)
svn path=/Website/branches/v2017.2/; revision=35486
2017-09-28 13:45:15 +00:00
Ruud Lipper
9b1f5f7310 FSN#43389 behandelaar ook wissen als er in status nieuw een behandelaar is ingevuld en wordt geaccepteerd met lege behandelaar
svn path=/Website/branches/v2017.2/; revision=35484
2017-09-28 12:56:15 +00:00
Arthur Egberink
2a5250af21 VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35483
2017-09-28 12:14:08 +00:00
Dennis Hartmann
e68b18b378 MDUX#41790 key stdmelding 51 naar discipline key 341 veranderd
svn path=/Website/branches/v2017.2/; revision=35482
2017-09-28 11:48:34 +00:00
Jos Groot Lipman
98f0e507b4 YKPN#40474 - Extra fiatteringsniveaus boven kostenplaatsgroep.
svn path=/Website/branches/v2017.2/; revision=35480
2017-09-28 11:22:49 +00:00
Erik Groener
1abadad76a FCLT-SUP#43507 Rubriek verplicht bij kostensoortgroepen
svn path=/Website/branches/v2017.2/; revision=35479
2017-09-28 11:21:16 +00:00
Ruud Lipper
201f6130d4 FSN#43389 behandelaar niet verplicht bij accepteren
svn path=/Website/branches/v2017.2/; revision=35478
2017-09-28 10:47:15 +00:00
Erik Groener
bfc53bbff4 FCLT-SUP#43187 Actie bij melder zetten ontbreekt op mobile
svn path=/Website/branches/v2017.2/; revision=35477
2017-09-28 10:40:46 +00:00
Maykel Geerdink
113737a8f4 PLAT#39567: Van MJOB naar MJOP/R.
svn path=/Website/branches/v2017.2/; revision=35475
2017-09-28 09:58:01 +00:00
Jos Groot Lipman
77bae38368 Oude quote tikfoutje
svn path=/Website/branches/v2017.2/; revision=35474
2017-09-28 09:51:44 +00:00
Erik Groener
87239d6ffb FCLT-DEV#43307 Doorsturen notitie wordt altijd 'verborgen'
svn path=/Website/branches/v2017.2/; revision=35473
2017-09-28 09:20:23 +00:00
Peter Feij
a6f6013316 LOGC#43647 indicatie "verborgen" in de notitielijst
svn path=/Website/branches/v2017.2/; revision=35472
2017-09-28 07:19:27 +00:00
Arthur Egberink
730ed3d995 VENR#41152 -- Implementatie Kien/Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35471
2017-09-27 15:41:20 +00:00
Ruud Lipper
9b180d0b3e FSN#43130 vergrootglas kleur + expire kleuren
svn path=/Website/branches/v2017.2/; revision=35467
2017-09-27 13:12:25 +00:00
Ruud Lipper
6512cc21d8 PCHW#41835 haakje teveel in javascript functie alternate
svn path=/Website/branches/v2017.2/; revision=35465
2017-09-27 11:49:19 +00:00
Jordy Polman
db7af482be VENR#41152 -- Nieuwe klant KIEN Schiphol Group
svn path=/Website/branches/v2017.2/; revision=35464
2017-09-27 11:15:28 +00:00
Jos Groot Lipman
7b9a0ecc5c FSN#42568: Signature van fac.nextcyclusdatedeel is gewijzigd
svn path=/Website/branches/v2017.2/; revision=35462
2017-09-27 09:55:19 +00:00
Jos Groot Lipman
4ca0ec3be5 Niet per ongeluk mldhandlingnote class zetten op tracking
svn path=/Website/branches/v2017.2/; revision=35459
2017-09-27 08:48:27 +00:00
Erik Groener
3c3bb1d613 FCLT-SUP#43187 Actie bij melder zetten ontbreekt op mobile
svn path=/Website/branches/v2017.2/; revision=35457
2017-09-27 06:53:19 +00:00
Jos Groot Lipman
b81d88bae7 Branch 2017.2
svn path=/Website/branches/v2017.2/; revision=35455
2017-09-26 15:20:38 +00:00
Jos Groot Lipman
3a1ee6b50b Merge 2017.1 Gold F patches
svn path=/Website/trunk/; revision=35454
2017-09-26 15:18:23 +00:00
Jos Groot Lipman
a938227d96 FSN#41951: Minder AiAi als via de API een foute waarde wordt gestuurd
svn path=/Website/trunk/; revision=35453
2017-09-26 15:03:37 +00:00
57ee312c95 HSLE#38125 Kruisje voor mobile bijlagen 'close' werkt weer (automatische close na upload ook)
svn path=/Website/trunk/; revision=35452
2017-09-26 14:43:34 +00:00
Jos Groot Lipman
2c1a0749d0 FSN#41951: Minder AiAi als via de API een foute waarde wordt gestuurd
svn path=/Website/trunk/; revision=35450
2017-09-26 14:09:09 +00:00
673c0c07ab HSLE#41904 #note.focus() werkt weer correct (S("mld_note_autoscroll") = true dus ook)
svn path=/Website/trunk/; revision=35449
2017-09-26 13:32:56 +00:00
Jos Groot Lipman
874f599fd0 500-error geen overbodige sourcecode logging bij timeout
svn path=/Website/trunk/; revision=35448
2017-09-26 13:24:08 +00:00
Jos Groot Lipman
85121e1e09 debug tekst niet tonen
svn path=/Website/trunk/; revision=35447
2017-09-26 13:02:30 +00:00
Erik Groener
a9729edaeb FCLT-SUP#43187 Actie bij melder zetten ontbreekt op mobile
svn path=/Website/trunk/; revision=35445
2017-09-26 12:07:34 +00:00
9a7306d2be FSN#43087 Behandelaar niet tracken als de huidige behandelaar dezelfde is als de toekomstige (bij het accepteren)
svn path=/Website/trunk/; revision=35444
2017-09-26 11:35:07 +00:00
f07291f2de DENB#39784 LCL's temp hardcoded
svn path=/Website/trunk/; revision=35441
2017-09-26 11:11:06 +00:00
d2ce5db428 PCHW#41592 Fullcalendar 1.5.4 -> 1.6.0
svn path=/Website/trunk/; revision=35440
2017-09-26 10:53:44 +00:00
Jos Groot Lipman
1458fb0516 Kolom standaardfilter ook altijd tonen bij rapport definitie
svn path=/Website/trunk/; revision=35439
2017-09-26 10:17:20 +00:00
8421c5d938 FSN#41607 Behandelaar wordt nu niet meer altijd ingevuld, dat is afhankelijk van S(mld_forward_auto_fill)
svn path=/Website/trunk/; revision=35438
2017-09-26 08:40:02 +00:00
Jos Groot Lipman
87d83581c6 FSN#43147 Van menuopties wordt gebruik niet meer geregistreerd
svn path=/Website/trunk/; revision=35437
2017-09-26 08:19:20 +00:00
Peter Feij
52953e9d85 HPJI#42708 email is 200 posities
svn path=/Website/trunk/; revision=35435
2017-09-26 08:10:24 +00:00
Jos Groot Lipman
727a9acf7c Merge 2017.1 Gold F patches
svn path=/Website/trunk/; revision=35432
2017-09-26 07:47:36 +00:00
8bd38ef3d6 DENB#39784 aantal objecten weggehaald in overzicht en button res voorziening toegevoegd aan 'lopende zaken'
svn path=/Website/trunk/; revision=35431
2017-09-26 07:35:38 +00:00
Jos Groot Lipman
4b94555567 FSN#41898: Vastgepinde filters werken niet in combinatie met autosearch
svn path=/Website/trunk/; revision=35428
2017-09-25 15:15:15 +00:00
Jos Groot Lipman
fb8ef56938 FSN#41898: Vastgepinde filters werken niet in combinatie met autosearch
svn path=/Website/trunk/; revision=35426
2017-09-25 13:57:21 +00:00
Erik Groener
7bd8fd65be FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=35423
2017-09-25 12:56:24 +00:00
Jos Groot Lipman
79fdd6f8a7 FSN#41986 Kleine API2 optimalisatie
svn path=/Website/trunk/; revision=35422
2017-09-25 12:18:01 +00:00
Maykel Geerdink
d6a1499e30 FSN#42707: INS:Foute rechten bepaling bij verwijderen exception record.
svn path=/Website/trunk/; revision=35420
2017-09-25 10:08:36 +00:00
Jos Groot Lipman
b508c00b19 FSN#42847: Stijlaanpassing label-kleuren deels terug
svn path=/Website/trunk/; revision=35418
2017-09-25 09:36:27 +00:00
Maykel Geerdink
6c0f5f50ed FSN#42689: 42689: INS: Wijziging inspect opslaan geeft aiai foutmelding.
svn path=/Website/trunk/; revision=35417
2017-09-25 08:58:20 +00:00
Maykel Geerdink
864561923f FSN#42689: 42689: INS: Wijziging inspect opslaan geeft aiai foutmelding.
svn path=/Website/trunk/; revision=35416
2017-09-25 08:46:29 +00:00
Peter Feij
5a31c2fa94 LOGC#42807 datumkolomopties bij lopende zaken
svn path=/Website/trunk/; revision=35408
2017-09-22 09:45:36 +00:00
Peter Feij
e9f3b5bed5 QA: met datatype currency stylen deze readonly velden heel anders en dat wil ik niet.
svn path=/Website/trunk/; revision=35406
2017-09-22 07:32:42 +00:00
Peter Feij
79850c65b8 LOGC#42767
svn path=/Website/trunk/; revision=35405
2017-09-22 07:24:38 +00:00
Peter Feij
d8306553d0 LOGC#42607 Refresh op lopende zaken (en dan ook maar Print/Excel)
svn path=/Website/trunk/; revision=35403
2017-09-21 15:47:03 +00:00
Peter Feij
d8b61f9e44 FSN#41607 behandelaar wordt nu toch bij het doorsturen ongeacht S(mld_forward_auto_fill), en labels beter
svn path=/Website/trunk/; revision=35401
2017-09-21 11:30:59 +00:00
Jos Groot Lipman
f7ccb5f080 Iets robuuster foreigns ophalen bij tracing, kan AiAi schelen
svn path=/Website/trunk/; revision=35399
2017-09-21 09:50:29 +00:00
Ruud Lipper
9f16329cd7 FSN#42627
svn path=/Website/trunk/; revision=35398
2017-09-21 09:29:56 +00:00
Jos Groot Lipman
83b886db01 FSN#42267: Omschrijving van de tracking van stdmelding verfijnder
svn path=/Website/trunk/; revision=35397
2017-09-21 09:10:55 +00:00
Ruud Lipper
e2e46e1f6c AASI#41982 kostenplaats bestelling kunnen wijzigen
svn path=/Website/trunk/; revision=35392
2017-09-21 06:42:57 +00:00
Peter Feij
4a63edaaf5 FSN#41889 Besloten om met Verwerken ook evt bolletjes te resetten
svn path=/Website/trunk/; revision=35390
2017-09-20 14:43:20 +00:00
Jos Groot Lipman
9a6c416f13 Release 2017.2 RC1
svn path=/Website/trunk/; revision=35389
2017-09-20 13:53:31 +00:00
Jos Groot Lipman
19ac96b7ed Kleine layout/ kleur verbeteringen
svn path=/Website/trunk/; revision=35385
2017-09-20 12:55:23 +00:00
Jos Groot Lipman
baf7a2eba3 STAM#41611 Na opslaan notities bij nieuwe meldingen vragen of melding geaccepteerd moet worden
svn path=/Website/trunk/; revision=35384
2017-09-20 12:34:30 +00:00
Jos Groot Lipman
283c69fd79 FSN#42109: Laatste notitie altijd compleet tonen
svn path=/Website/trunk/; revision=35383
2017-09-20 12:17:51 +00:00
Jos Groot Lipman
05f66e774b MJOB#36298: Scenario heeft eigen knoppen, de default 'Kopie' is te verwarrend
svn path=/Website/trunk/; revision=35382
2017-09-20 12:05:53 +00:00
Jos Groot Lipman
d5361046a0 FSN#42427: Afhandeling na afmelden wijzigen via setting mld_afrond_canremark
svn path=/Website/trunk/; revision=35381
2017-09-20 11:53:30 +00:00
Ruud Lipper
092e8d94c0 KFNS#40578 notitie met contract meesturen
svn path=/Website/trunk/; revision=35380
2017-09-20 11:32:35 +00:00
Jos Groot Lipman
06ab06fef1 Merge 2017.1 Gold F changes
svn path=/Website/trunk/; revision=35378
2017-09-20 11:11:41 +00:00
Jos Groot Lipman
3721eb987f In logging beter markeren dat een SQL-statement vanuit PutOrders komt
svn path=/Website/trunk/; revision=35373
2017-09-20 08:53:44 +00:00
Jos Groot Lipman
60f3212c38 FSN#41819 Puo_Logging iets robuuster
svn path=/Website/trunk/; revision=35371
2017-09-20 08:16:45 +00:00
Jos Groot Lipman
79e6c3134b FSN#42109 Meerdere tracking van dezelfde persoon in dezelfde minuut samennemen in mld_shownote2
svn path=/Website/trunk/; revision=35367
2017-09-19 14:12:03 +00:00
Jos Groot Lipman
e269a0f943 Vorige commit haalde alleen kruisje weg, hij bleef klagen bij sluiten. Dan maar niet
svn path=/Website/trunk/; revision=35366
2017-09-19 13:52:19 +00:00
Jos Groot Lipman
dda7248d15 Een simpel_page is nooit 'hot'
svn path=/Website/trunk/; revision=35365
2017-09-19 13:47:43 +00:00
Jos Groot Lipman
1c5ca3d1b2 FSN#41987 Filteren op meldingen zonder behandelaar
svn path=/Website/trunk/; revision=35364
2017-09-19 12:48:55 +00:00
Erik Groener
d5e213e1dd FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=35361
2017-09-19 09:33:23 +00:00
Jos Groot Lipman
e8fd6c865c FSN#42087 Controleren op melding flexkenmerken met verkeerde numerieke waarde
svn path=/Website/trunk/; revision=35360
2017-09-19 07:39:52 +00:00
Peter Feij
e2796416f0 LOGC#42127 inzage is voldoende om op te mogen kunnen filteren
svn path=/Website/trunk/; revision=35357
2017-09-19 07:12:23 +00:00
Jos Groot Lipman
4cec8d9700 Nieuwe SVN->logcentre deeplink
svn path=/Website/trunk/; revision=35345
2017-09-15 19:02:25 +00:00
Jos Groot Lipman
1befc35cac Nieuwe SVN->logcentre deeplink
svn path=/Website/trunk/; revision=35343
2017-09-15 18:53:32 +00:00
de9e995452 FSN#41788 Added S(mld_edit_search_similar) to determine what is similar in the mld_edit link to search similar calls
svn path=/Website/trunk/; revision=35340
2017-09-15 15:21:02 +00:00
227aa99459 FSN#41607 behandelaar wordt nu ingevuld bij het doorsturen ongeacht S(mld_forward_auto_fill)
svn path=/Website/trunk/; revision=35339
2017-09-15 14:57:02 +00:00
79d8085813 AADS#41438 Eedere aanpassing teruggedraaid
svn path=/Website/trunk/; revision=35336
2017-09-15 12:34:28 +00:00
82f847282d RWSN#41312 Doorklikken naar history gebouw vanuit locatie werkt nu weer (ajax conflict opgelost met #)
svn path=/Website/trunk/; revision=35335
2017-09-15 11:04:12 +00:00
b7ce7e587c DENB#39784 haakjes weg bij lege ruimte beschrijving en bugfix tabelnaam fout door kopiëren
svn path=/Website/trunk/; revision=35334
2017-09-15 10:30:17 +00:00
d0b221450b FSN#41783 mld link confirm messages improved
svn path=/Website/trunk/; revision=35333
2017-09-15 08:23:33 +00:00
Erik Groener
6212713485 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=35332
2017-09-15 07:47:15 +00:00
Erik Groener
5b1a787c03 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=35331
2017-09-15 07:44:10 +00:00
30557e9974 DJIN#37278 'Meer..' link nu ook in show_melding mode
svn path=/Website/trunk/; revision=35330
2017-09-15 07:27:12 +00:00
Peter Feij
cd02ca7119 Te kleine symbols in de header verbeterd
svn path=/Website/trunk/; revision=35329
2017-09-15 07:04:57 +00:00
Maykel Geerdink
f65fea7512 PLAT#39567: Van MJOB naar MJOP/R.
svn path=/Website/trunk/; revision=35323
2017-09-14 14:12:21 +00:00
Jos Groot Lipman
ca4c22fdca SQL injection in toevoegen Notes
svn path=/Website/trunk/; revision=35320
2017-09-14 13:24:19 +00:00
Maykel Geerdink
7f99cdb4c5 PLAT#39567: Van MJOB naar MJOP/R.
svn path=/Website/trunk/; revision=35310
2017-09-14 08:44:34 +00:00
Peter Feij
5bdba25af8 Verborgen notes krijgt grijzere bubble
svn path=/Website/trunk/; revision=35308
2017-09-14 07:16:12 +00:00
Jos Groot Lipman
55453535fc FSN#41943 Notities van Logcenter commit berichten standaard in klappen
svn path=/Website/trunk/; revision=35307
2017-09-13 21:11:59 +00:00
Peter Feij
b4bc583992 PCHW#41949 kostenplaatskolom erbij
svn path=/Website/trunk/; revision=35305
2017-09-13 17:07:54 +00:00
Jos Groot Lipman
6298766d60 FSN#41961 Ook windows-drive schijfruimte monitoring
svn path=/Website/trunk/; revision=35304
2017-09-13 15:40:10 +00:00
Jos Groot Lipman
f5643f0b8f toyear url overrule ook gewoon relatief
svn path=/Website/trunk/; revision=35294
2017-09-13 10:07:21 +00:00
Jos Groot Lipman
d52dc3606c eindjaar default goed zetten, huidig jaar is onzin
svn path=/Website/trunk/; revision=35293
2017-09-13 09:44:30 +00:00
Jos Groot Lipman
47115768e9 eindjaar default goed zetten
svn path=/Website/trunk/; revision=35292
2017-09-13 09:41:01 +00:00
Jos Groot Lipman
ee55dc58b9 AAIT#40392 mogelijkheid om (app)notificaties naar meerdere (bedrijfs)adressen te kunnen sturen
svn path=/Website/trunk/; revision=35291
2017-09-13 09:26:15 +00:00
Jos Groot Lipman
c37252d986 'Elke tabel bekijken' geen autosearch, is mij te traag
svn path=/Website/trunk/; revision=35289
2017-09-13 09:03:33 +00:00
Jos Groot Lipman
710cf816b3 AAIT#40392 mogelijkheid om (app)notificaties naar meerdere (bedrijfs)adressen te kunnen sturen
svn path=/Website/trunk/; revision=35288
2017-09-13 09:03:00 +00:00
Jos Groot Lipman
57a07d5701 FSN#41943 Notities van Logcenter commit berichten standaard in klappen
svn path=/Website/trunk/; revision=35280
2017-09-12 13:20:12 +00:00
Jos Groot Lipman
8fcdf9a39f FSN#41943 Notities van Logcenter commit berichten standaard in klappen
svn path=/Website/trunk/; revision=35277
2017-09-12 12:35:23 +00:00
Jos Groot Lipman
d3e317ff07 FSN#41819 MLD2BO notificatie efficiënter
svn path=/Website/trunk/; revision=35276
2017-09-12 11:37:09 +00:00
Arthur Egberink
3c6322d917 FSN#41941 -- MLDSOAP api initialiseert returntekst niet goed
svn path=/Website/trunk/; revision=35275
2017-09-12 10:21:09 +00:00
Jos Groot Lipman
dc1fb01d81 disciplinedata toevoegen aan een issuetype werkte helemaal niet en is dus alleen maar misleidend.
svn path=/Website/trunk/; revision=35273
2017-09-12 07:38:48 +00:00
Jos Groot Lipman
86a5ee483e Iets betere notitie layout als naam niet bekend
svn path=/Website/trunk/; revision=35267
2017-09-11 10:18:43 +00:00
Peter Feij
9a39a643ba Gebouwen hebben blijkbaar ook historie, die nog niemand kon zien.. Nu wel
svn path=/Website/trunk/; revision=35263
2017-09-08 13:32:36 +00:00
Peter Feij
236cae3827 FSN#32576 in de app is Home altijd prettig omdat Back niet altijd te vertrouwen is
svn path=/Website/trunk/; revision=35261
2017-09-08 12:37:21 +00:00
Peter Feij
fd8564225b RWSN#41312 ontbrekende history-page toegevoegd en doorklik naar niveau lager
svn path=/Website/trunk/; revision=35260
2017-09-08 12:29:34 +00:00
Peter Feij
7019cbf12a FSN#35297 Igv filter op behandelaar is status ondergeschikt, dus ook nieuw enzo, mocht dat voorkomen
svn path=/Website/trunk/; revision=35258
2017-09-08 12:01:27 +00:00
a7cec71638 RWSN#41312 block verwjidert en authlevel toegevoegd voor de gebouw/locatie lists
svn path=/Website/trunk/; revision=35256
2017-09-08 11:44:48 +00:00
8926cbbc2d NYBU#38375 setting added to enable FE visitor & room configuration editting for expired rooms
svn path=/Website/trunk/; revision=35253
2017-09-08 11:08:00 +00:00
Jos Groot Lipman
55634b806f FSN#41899 Bij één flexkenmerk in de lijst het label in de header zetten
svn path=/Website/trunk/; revision=35243
2017-09-07 13:36:00 +00:00
Jos Groot Lipman
3b58716a6a FSN#41899 Bij één flexkenmerk in de lijst het label in de header zetten
svn path=/Website/trunk/; revision=35242
2017-09-07 13:30:17 +00:00
Jos Groot Lipman
87a2abd47e FSN#41668 SCIM 2e aanzet
svn path=/Website/trunk/; revision=35240
2017-09-07 12:55:46 +00:00
Erik Groener
ca71113f7e FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=35239
2017-09-07 11:29:41 +00:00
Jos Groot Lipman
f59c3ba529 Session("page_start") bijhouden, kun je in AiAi logging terugvinden, interessant bij timeouts
svn path=/Website/trunk/; revision=35235
2017-09-07 08:54:43 +00:00
Peter Feij
492ed3c417 AAIT#40392 encoding json ook te kiezen
svn path=/Website/trunk/; revision=35228
2017-09-06 15:36:08 +00:00
Jos Groot Lipman
fa2955c56d AAIT#40392 Notificaties naar Office App
svn path=/Website/trunk/; revision=35227
2017-09-06 15:25:18 +00:00
Peter Feij
c9353b76a8 AAIT#40392 mogelijkheid om (app)notificaties naar meerdere (bedrijfs)adressen te kunnen sturen
svn path=/Website/trunk/; revision=35225
2017-09-06 14:01:58 +00:00
Peter Feij
f73010069b AAIT#40392 mogelijkheid om (app)notificaties naar meerdere (bedrijfs)adressen te kunnen sturen
svn path=/Website/trunk/; revision=35224
2017-09-06 13:49:15 +00:00
Jos Groot Lipman
271727690a Bij Accept: application/json ook altijd json errormessage proberen te geven
svn path=/Website/trunk/; revision=35222
2017-09-06 13:45:24 +00:00
Peter Feij
b77d35d94f MNNL#41847 default onderwerp mee kunnen geven
svn path=/Website/trunk/; revision=35218
2017-09-06 11:10:26 +00:00
Jos Groot Lipman
e986a81b5f FSN#41668 SCIM 2e aanzet
svn path=/Website/trunk/; revision=35216
2017-09-06 10:55:50 +00:00
Peter Feij
2882975134 FSN#41886 e
svn path=/Website/trunk/; revision=35215
2017-09-06 10:38:56 +00:00
Peter Feij
a784984ad3 Logo op bon niet centreren in het blok, maar links houden natuurlijk (ivm responsive)
svn path=/Website/trunk/; revision=35210
2017-09-06 07:44:31 +00:00
Peter Feij
fc7e38a7ca QA foutjes in styling
svn path=/Website/trunk/; revision=35208
2017-09-06 07:08:57 +00:00
Peter Feij
c49ebd2997 QA als (nu langer) mld-subject gevuld dan die niet ook meer rechtsboven herhalen (al wel in frame)
svn path=/Website/trunk/; revision=35207
2017-09-06 07:08:33 +00:00
Peter Feij
bff278b973 FSN#41886 e Het 0-bolletje ook tonen
svn path=/Website/trunk/; revision=35206
2017-09-05 16:15:23 +00:00
Peter Feij
cfb5bdc580 FSN#41886 e Het 0-bolletje ook tonen
svn path=/Website/trunk/; revision=35205
2017-09-05 16:14:17 +00:00
Peter Feij
7a7a014b4a QA GUI: als filter moeten we altijd lcl_search_generic tonen
svn path=/Website/trunk/; revision=35204
2017-09-05 15:54:25 +00:00
Peter Feij
31633bcdd1 FSN#41889 Knop om via de GUI melding Verwerkt te zetten
svn path=/Website/trunk/; revision=35202
2017-09-05 14:37:13 +00:00
Peter Feij
9010d43953 FSN#41886 a
svn path=/Website/trunk/; revision=35197
2017-09-05 11:17:22 +00:00
Peter Feij
cad775cde0 PLAT#41507 Telling bij wegfilteren verbeterd
svn path=/Website/trunk/; revision=35195
2017-09-05 09:06:44 +00:00
Peter Feij
ce229f4b9b FSN#35297 bold was te gek, kleur naar keuze nooit verkeerd
svn path=/Website/trunk/; revision=35192
2017-09-05 07:59:20 +00:00
Peter Feij
0b15c1f9ff UWVA#36431 wat commentaar gewijzigd
svn path=/Website/trunk/; revision=35191
2017-09-05 07:52:09 +00:00
Peter Feij
53ebd6151b QA GUI: als filter moeten we altijd lcl_search_generic tonen
svn path=/Website/trunk/; revision=35190
2017-09-04 16:16:29 +00:00
Peter Feij
4592f8636a FSN#41851 next stage. qa-fix
svn path=/Website/trunk/; revision=35186
2017-09-04 11:56:15 +00:00
Peter Feij
9ab068e203 FSN#41851 next stage. Is nu weer bij de tijd-er
svn path=/Website/trunk/; revision=35184
2017-09-04 10:56:51 +00:00
Jos Groot Lipman
ec6539dd4c DJIN#41807 Profiel als SAML attribuut
svn path=/Website/trunk/; revision=35181
2017-09-04 09:06:10 +00:00
b8ae59a472 FSN#39400 Multiupload mobile kan nu, het is nog niet opgelost om het upload scherm weg te laten gaan automatisch
svn path=/Website/trunk/; revision=35178
2017-09-01 15:05:19 +00:00
Peter Feij
2053c05443 FSN#41851 Persoonsgebonden objecten ook
svn path=/Website/trunk/; revision=35177
2017-09-01 12:35:26 +00:00
62e043d785 RWSN#41312 /PDA/gebouw_list.asp en /PDA/gebouw.asp toegevoegd voor gebouw en locatie mbv plaatsselector <- laatste puntjes op de i
svn path=/Website/trunk/; revision=35176
2017-09-01 09:39:46 +00:00
1a452dfcee RWSN#41312 /PDA/gebouw_list.asp en /PDA/gebouw.asp toegevoegd voor gebouw en locatie mbv plaatsselector
svn path=/Website/trunk/; revision=35175
2017-09-01 09:16:26 +00:00
Erik Groener
b7aff7b572 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=35173
2017-08-31 14:50:34 +00:00
Jos Groot Lipman
8503e8a5f0 Merge 2017.1 Gold F patches
svn path=/Website/trunk/; revision=35168
2017-08-31 12:32:04 +00:00
47da3ac0d2 BLCC#39847 bugfix: typo
svn path=/Website/trunk/; revision=35159
2017-08-31 08:34:51 +00:00
Peter Feij
fcf8af02fa YKPN#40474 puntjes op de i
svn path=/Website/trunk/; revision=35156
2017-08-30 15:29:23 +00:00
Peter Feij
1fba4d31b1 "LCL's worden geacht altijd HTML-safe te zijn, mogelijk dat hier een onterechte safe.html overheen gaat"
svn path=/Website/trunk/; revision=35155
2017-08-30 15:23:08 +00:00
Jos Groot Lipman
12fc3fa4df FSN#39312 Opstelling filter was verdwenen bij lijst reserveerbare ruimtes
svn path=/Website/trunk/; revision=35154
2017-08-30 15:03:01 +00:00
Erik Groener
85ba5df6b6 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=35153
2017-08-30 14:24:06 +00:00
Peter Feij
197a9a2ef8 FSN#41817 Poging om (tiny) lijst duidelijker te maken, als parameter gedefineerd
svn path=/Website/trunk/; revision=35151
2017-08-30 10:47:29 +00:00
Peter Feij
340097c4f1 FSN#41817 Poging om (tiny) lijst duidelijker te maken
svn path=/Website/trunk/; revision=35149
2017-08-30 10:41:30 +00:00
Peter Feij
26335f48ba Rename fclt>logc
svn path=/Website/trunk/; revision=35147
2017-08-30 08:48:13 +00:00
Peter Feij
e653139569 Niet dat appelblauw (erg bij MJB)
svn path=/Website/trunk/; revision=35145
2017-08-30 07:58:55 +00:00
Peter Feij
44660d58eb FSN#41815 kon niet goed tegen lege menu's
svn path=/Website/trunk/; revision=35144
2017-08-30 07:26:13 +00:00
Jos Groot Lipman
64e1b4d8fb Betere vermelding van errors in de input-xml
svn path=/Website/trunk/; revision=35142
2017-08-29 20:20:33 +00:00
Jos Groot Lipman
d43c103727 FSN#41656 Als bon altijd als HTML-bijlage wordt toegevoegd dan wel goede charset
svn path=/Website/trunk/; revision=35141
2017-08-29 18:46:27 +00:00
Jos Groot Lipman
1941902bb4 FSN#36298: Scenario’s doorvoeren optimaliseren en in transactie
svn path=/Website/trunk/; revision=35140
2017-08-29 17:39:03 +00:00
Jos Groot Lipman
4d37fc5813 FSN#36298: Scenario’s: voortaan key=1 voor actueel, deze niet tonen
svn path=/Website/trunk/; revision=35139
2017-08-29 11:10:06 +00:00
Jos Groot Lipman
7016162f21 FSN#38224: Iets scherpere autorisatie controle bij res-bezoekers opslaan.
svn path=/Website/trunk/; revision=35138
2017-08-29 11:00:27 +00:00
Jos Groot Lipman
e9c2d24c49 AKZA#41248 Bij aanmaken vervolgmelding wordt geen hook functie aangeroepen
svn path=/Website/trunk/; revision=35137
2017-08-29 10:46:00 +00:00
Jos Groot Lipman
17ef0d4778 Onzinnige '...' niet loggen
svn path=/Website/trunk/; revision=35136
2017-08-29 10:32:06 +00:00
Jos Groot Lipman
a82854746b Bij generic sql heel simpele sql-formatting toepassen
svn path=/Website/trunk/; revision=35134
2017-08-29 09:45:57 +00:00
Jos Groot Lipman
b6e8f6c82c Automatische SELECT linkjes in logger beter bestand tegen spaties
svn path=/Website/trunk/; revision=35133
2017-08-29 09:38:13 +00:00
Jos Groot Lipman
ab5a816e22 YKPN#40474 Extra fiatteringsniveaus boven kostenplaatsgroep
svn path=/Website/trunk/; revision=35123
2017-08-28 15:13:28 +00:00
2dfe960b68 PCHD#40496 note kan nu niet per ongeluk 2x opgeslagen worden
svn path=/Website/trunk/; revision=35121
2017-08-28 14:17:18 +00:00
6635feec6a PCHD#40075 Dubbelklik op menu triggert alleen toggleMenu() als je op het lege gedeelte klikt
svn path=/Website/trunk/; revision=35120
2017-08-28 13:58:56 +00:00
902d329d9e DJIN#38657 geen 3d scoping voor FE
svn path=/Website/trunk/; revision=35119
2017-08-28 13:41:39 +00:00
Jos Groot Lipman
0190152848 Merge 2017.1 Gold F patches
svn path=/Website/trunk/; revision=35118
2017-08-28 13:36:54 +00:00
Jos Groot Lipman
98e28efa33 FSN#41669 Basic Auth voor API2
svn path=/Website/trunk/; revision=35116
2017-08-28 13:12:25 +00:00
caacfe8ff3 FSN#41788 Added S(mld_show_search_similar) to determine what is similar in the mld_show link to search similar calls
svn path=/Website/trunk/; revision=35114
2017-08-28 12:49:37 +00:00
56d1092d5c FSN#41720 values having '0' should be retrieved as such
svn path=/Website/trunk/; revision=35113
2017-08-28 11:49:57 +00:00
2c4a667ee9 UWVA#38301 Wat nettere weergave voor FAC/fac_user.asp en FAC/fac_user_info.asp indien geen authorisatie
svn path=/Website/trunk/; revision=35111
2017-08-28 10:54:18 +00:00
Erik Groener
6d8d157c05 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=35109
2017-08-28 10:48:20 +00:00
Jos Groot Lipman
9b7f7611a8 HPJI#40743 adresselector.inc verwacht filtercode, geen filtcode.
svn path=/Website/trunk/; revision=35108
2017-08-28 09:54:40 +00:00
79d084551d UWVA#40654 mld_link tracking re-implemented
svn path=/Website/trunk/; revision=35105
2017-08-28 08:57:37 +00:00
4f4a7d6a57 PLAT#41496 Nu met juist Doctype (JSON_Result)
svn path=/Website/trunk/; revision=35101
2017-08-28 08:20:07 +00:00
Jos Groot Lipman
b078daef51 FSN#41583 Putorders logging per kanaal
svn path=/Website/trunk/; revision=35100
2017-08-28 07:52:44 +00:00
Jos Groot Lipman
a3036c1133 YKPN#40474 Extra fiatteringsniveaus boven kostenplaatsgroep savepoint
svn path=/Website/trunk/; revision=35099
2017-08-28 07:27:58 +00:00
7548515cf7 MNNL#41012 persoonsgebonden objecten geven ins_has_loc === false zodat locatie weer automatisch geselecteerd worden
svn path=/Website/trunk/; revision=35097
2017-08-25 13:36:49 +00:00
b75d5250a1 MNNL#41012 persoonsgebonden objecten voorkomen nu niet meer dat de persoonsselector de locatie niet alsvast invult
svn path=/Website/trunk/; revision=35096
2017-08-25 13:22:23 +00:00
510edf22ec FSN#40699 onderdrukt L(lcl_no_objects) indien er wel verbruiksartikelen zijn gereserveerd
svn path=/Website/trunk/; revision=35095
2017-08-25 12:19:10 +00:00
Peter Feij
f421b087e4 UWVA#36431 fix
svn path=/Website/trunk/; revision=35094
2017-08-25 12:07:31 +00:00
Peter Feij
e29bdb664d UWVA#36431 fix
svn path=/Website/trunk/; revision=35093
2017-08-25 12:06:42 +00:00
ed7897d59e PLAT#41496 Bij doorsturen naar een vakgroep waarop geen rechten zitten wordt het tabblad show_melding gesloten en een toaster getoond
svn path=/Website/trunk/; revision=35090
2017-08-25 10:49:58 +00:00
Peter Feij
cdf9606985 subject in header (kijken of dat bevalt)
en nog iets van Jos

svn path=/Website/trunk/; revision=35088
2017-08-25 07:59:08 +00:00
0a7b7970e0 FSN#41714 Bugfix@ sgBehandelaar not undefined when absent
svn path=/Website/trunk/; revision=35087
2017-08-25 07:29:04 +00:00
65d3b2e2d1 PLAT#41496 Het label voor hoeveelheid past zich nu aan onChangeSrtDeel
svn path=/Website/trunk/; revision=35085
2017-08-24 15:03:14 +00:00
9a565777f1 PLAT#39730 MJOB multiedit toegevoegd en de bulkactie 'herplannen taken' werkt nu met een relatief aantal jaren
svn path=/Website/trunk/; revision=35080
2017-08-24 13:49:06 +00:00
Jos Groot Lipman
b9f6defec0 FSN#41754 Code refactoring func_enabled_opdracht
svn path=/Website/trunk/; revision=35069
2017-08-24 07:45:18 +00:00
Jos Groot Lipman
685119ccc6 FSN#41754 Code refactoring func_enabled_opdracht
svn path=/Website/trunk/; revision=35066
2017-08-23 14:36:03 +00:00
af477a84dc PLAT#38415 Bulkactie 'Terugzetten (jaar)' bugfix: typo in if statement
svn path=/Website/trunk/; revision=35065
2017-08-23 12:57:06 +00:00
e0a5e1d982 FSN#41607 Er kan nu niet meer een verkeerde behandelaar gekozen worden tov de discipline
svn path=/Website/trunk/; revision=35064
2017-08-23 12:23:02 +00:00
66cdfd93dd PLAT#38415 Bulkactie 'Terugzetten (jaar)' bugfix: scenario key hoeft niet 1 te zijn (aangepast)
svn path=/Website/trunk/; revision=35060
2017-08-23 11:13:58 +00:00
Peter Feij
b876bb8be7 FSN#41744 onderwerp naar 80 pos
svn path=/Website/trunk/; revision=35058
2017-08-23 10:26:45 +00:00
6428a41073 PLAT#38415 Bugfix@Bulkactie 'Terugzetten (jaar)' toegevoegd om mjob inspecties terug te zetten naar hun oorspronkelijke jaar
svn path=/Website/trunk/; revision=35056
2017-08-23 10:00:06 +00:00
f84e5889a2 PLAT#38415 Bulkactie 'Terugzetten (jaar)' toegevoegd om mjob inspecties terug te zetten naar hun oorspronkelijke jaar
svn path=/Website/trunk/; revision=35052
2017-08-23 09:15:53 +00:00
Peter Feij
a3744a7d60 Drie classes waar je in customer.xsl iets mee kunt als je wilt.
svn path=/Website/trunk/; revision=35050
2017-08-23 07:26:04 +00:00
Jos Groot Lipman
7f1d4dae0c FSN#41733 Kostenplaatsgroepen ook via scaffolding
svn path=/Website/trunk/; revision=35034
2017-08-22 11:20:56 +00:00
Jos Groot Lipman
de2387cd3b FSN#41669 Basic Auth voor API2
svn path=/Website/trunk/; revision=35029
2017-08-21 19:39:19 +00:00
Jos Groot Lipman
92f94663e5 Layout aanpassing: veldnamen altijd lowercase in queries
svn path=/Website/trunk/; revision=35028
2017-08-21 19:38:36 +00:00
ce787059a2 FSN#41607 Bij bulk actie direct behandelaar kunnen kiezen
svn path=/Website/trunk/; revision=35025
2017-08-21 13:21:34 +00:00
Jos Groot Lipman
5d91ce83f7 Meer oRs.Close voorkomt out-of-cursors
svn path=/Website/trunk/; revision=35023
2017-08-21 10:30:58 +00:00
Jos Groot Lipman
29ce8e3c5e FSN#41668 SCIM 1e aanzet
svn path=/Website/trunk/; revision=35022
2017-08-21 10:26:27 +00:00
a43e52a8a5 NYBU#38375 Opstelling en aantal bezoekers weer wijzigbaar voor FE na expire
svn path=/Website/trunk/; revision=35020
2017-08-21 08:31:10 +00:00
Jos Groot Lipman
861507aa88 FSN#41669 Basic Auth voor API2
svn path=/Website/trunk/; revision=35019
2017-08-21 08:21:26 +00:00
e817b65e65 PCHW#41592 fullcalendar height dynamisch
svn path=/Website/trunk/; revision=35016
2017-08-18 14:48:09 +00:00
709068bede PCHW#41592 fullcalendar height aangepast naar initiële hoogte parent window
svn path=/Website/trunk/; revision=35015
2017-08-18 14:22:11 +00:00
c60aa91044 AADS#41438 Locatie-scope voor putorders van contracten toegevoegd
svn path=/Website/trunk/; revision=35008
2017-08-18 08:16:13 +00:00
Peter Feij
5619abc6ee Die hebben we hier niet nodig
svn path=/Website/trunk/; revision=35007
2017-08-18 08:00:03 +00:00
Peter Feij
83974795fe Styling, o.a. aparte stijloptie voor melding_onderwerp in lijst (tbv Logcentre)
svn path=/Website/trunk/; revision=35005
2017-08-18 07:30:36 +00:00
Jos Groot Lipman
5fcdd475e6 FSN#41669 Basic Auth en FSN#41668 aanzet
svn path=/Website/trunk/; revision=35003
2017-08-17 21:03:42 +00:00
Jos Groot Lipman
774d14879b Iets netter het bestelnummer tonen in alerts
svn path=/Website/trunk/; revision=34996
2017-08-17 13:02:16 +00:00
Jos Groot Lipman
f375d466f5 FSN#33999: Realisatie TMJ module voor TobiasAX obv Inspectiemodule.
svn path=/Website/trunk/; revision=34995
2017-08-17 13:01:48 +00:00
Jos Groot Lipman
08b6350129 Merge 2017.1 Gold E patches
svn path=/Website/trunk/; revision=34994
2017-08-17 12:57:02 +00:00
0a96f5916c STAM#41611 Na opslaan notities bij nieuwe meldingen vragen of melding geaccepteerd moet worden
svn path=/Website/trunk/; revision=34989
2017-08-17 12:32:56 +00:00
bef3427a78 STAM#41611 Na opslaan notities bij nieuwe meldingen vragen of melding geaccepteerd moet worden
svn path=/Website/trunk/; revision=34988
2017-08-17 12:30:34 +00:00
fedefc0519 STAM#41613 knop 'opslaan' heet nu 'doorgaan' bij nieuwe voorziening reserveringen
svn path=/Website/trunk/; revision=34983
2017-08-17 09:49:57 +00:00
Robin Stoker
16ce3ae979 AAIT#40683 -- Textarea schaalt nu mee met de tekst
svn path=/Website/trunk/; revision=34982
2017-08-17 09:41:12 +00:00
6bfd90b476 YKPN#40774 S("bez_show_flex_in_list") toegevoegd
svn path=/Website/trunk/; revision=34979
2017-08-17 09:10:05 +00:00
e593fb0bc8 FSN#41386 Deze is niet nodig (was er ook niet, dus nu ook niet)
svn path=/Website/trunk/; revision=34975
2017-08-17 08:01:46 +00:00
445b59b99a PNBR#41284 SQL-injection voorkomen
svn path=/Website/trunk/; revision=34970
2017-08-17 07:33:07 +00:00
bcbcf30991 FSN#41386FSN#41386 jQplot en plugins van 1.06 -> 1.09
svn path=/Website/trunk/; revision=34967
2017-08-16 15:42:58 +00:00
8bbb504134 FSN#41386 jQplot en plugins van 1.06 -> 1.09
svn path=/Website/trunk/; revision=34966
2017-08-16 15:29:56 +00:00
d87cb89787 FSN#41386 jQplot en plugins van 1.06 -> 1.09
svn path=/Website/trunk/; revision=34965
2017-08-16 15:28:24 +00:00
2e858a7fa7 FSN#41386 jQplot en plugins van 1.06 -> 1.09
svn path=/Website/trunk/; revision=34964
2017-08-16 15:27:46 +00:00
2970852750 PNBR#41284 kennisbankitems tonen nu: 0;popup 1;altijd tonen 2;beide
svn path=/Website/trunk/; revision=34961
2017-08-16 13:22:27 +00:00
Jos Groot Lipman
a3a6e8cbe5 UWVA#36431 Passend mandaat opzoeken in organisatieboom savepoint
svn path=/Website/trunk/; revision=34959
2017-08-16 12:26:16 +00:00
7630a45431 DJIN#37278 Doorklikken naar kennisbankitem vanuit melding kan nu indien er kenmerken gekoppeld zijn aan kennisbankitems
svn path=/Website/trunk/; revision=34956
2017-08-16 11:25:35 +00:00
061cc2b0b6 YKPN#40774 opdr flag toegevoegd aan de opdrsoap api (zowel insert als update)
svn path=/Website/trunk/; revision=34954
2017-08-16 09:54:01 +00:00
5355d254f9 KFNS#40578 Contract notities worden nu automatisch meegestuurd
svn path=/Website/trunk/; revision=34952
2017-08-16 08:43:02 +00:00
Jos Groot Lipman
0012b5dcac _aanmaak velden in API2 consequent "created" noemen, doet SCIM ook
svn path=/Website/trunk/; revision=34951
2017-08-16 07:57:14 +00:00
Peter Feij
3e1d20f731 PLAT#41503 S("mjb_show_years")
svn path=/Website/trunk/; revision=34950
2017-08-15 17:09:58 +00:00
Peter Feij
e78a31ba58 FSN#36298 bugfix
svn path=/Website/trunk/; revision=34947
2017-08-15 14:08:19 +00:00
Peter Feij
cbe58cc0bc FSN#36298 textfix
svn path=/Website/trunk/; revision=34941
2017-08-15 11:24:27 +00:00
Peter Feij
b8485ae3fb PCHD#40076 Detailfix (bij filtergebruik altijd afwijkende whenEmpty)
svn path=/Website/trunk/; revision=34940
2017-08-15 11:21:01 +00:00
Jos Groot Lipman
a0878049c5 Bij klikken 'alle' checkboxen ook class 'selected' toevoegen op de tr's
svn path=/Website/trunk/; revision=34939
2017-08-15 10:04:49 +00:00
Peter Feij
ffdf25d564 FSN#39567: Van MJOB naar MJOP/R details
svn path=/Website/trunk/; revision=34938
2017-08-15 09:59:56 +00:00
Peter Feij
8e57fd19fe FSN#39567: Van MJOB naar MJOP/R legenda
svn path=/Website/trunk/; revision=34937
2017-08-15 07:20:01 +00:00
135de9ef31 FSN#41637 undo van FSN#39055, to be fixed
svn path=/Website/trunk/; revision=34935
2017-08-14 15:30:13 +00:00
a4c74dd42e YKPN#40205 bezoeker flags toegevoegd aan show afspraak lijst
svn path=/Website/trunk/; revision=34933
2017-08-14 14:11:22 +00:00
80561a51e1 DJIN#37278 kennisbankitems worden nu ook via stdmelding knoppen laten zien en zijn in showmode weer klikbaar
svn path=/Website/trunk/; revision=34930
2017-08-14 11:59:51 +00:00
ab1e559a72 YKPN#40205 bezoeker flags toegevoegd aan zoek criteria en lijsten
svn path=/Website/trunk/; revision=34928
2017-08-14 10:21:14 +00:00
Jos Groot Lipman
1963f0ab9f YKPN#41337 Implementatie mld_typeopdr_fvs (FiatteringVrijStelling
svn path=/Website/trunk/; revision=34927
2017-08-14 09:28:57 +00:00
Jos Groot Lipman
d870b5e809 Merge 2017.1 Gold E patches
svn path=/Website/trunk/; revision=34926
2017-08-14 09:06:15 +00:00
Jos Groot Lipman
cd3a585fcd PCHE#38625 Export klaarzetten/annuleren betere lcl's
svn path=/Website/trunk/; revision=34923
2017-08-14 08:12:37 +00:00
Jos Groot Lipman
45016d5078 PLAT#41507 Lege regels in MJB overzicht kunnen onderdrukken via fnrowFilter
svn path=/Website/trunk/; revision=34922
2017-08-14 07:47:26 +00:00
Peter Feij
62f407636c PLAT#41505 sorteren vlnr
svn path=/Website/trunk/; revision=34920
2017-08-11 14:29:07 +00:00
Peter Feij
ad3d6822d7 PLAT#41505 , maar dan het zoekveld op code/naam als tekst ipv suggest
svn path=/Website/trunk/; revision=34919
2017-08-11 14:15:02 +00:00
Peter Feij
b3407df232 PLAT#41505 , maar dan het zoekveld op code/naam als tekst ipv suggest
svn path=/Website/trunk/; revision=34918
2017-08-11 14:07:30 +00:00
Peter Feij
6e7398ddad FSN#39567: Van MJOB naar MJOP/R. Zoiets bedoelde ik :-)
svn path=/Website/trunk/; revision=34915
2017-08-11 13:00:48 +00:00
Maykel Geerdink
94e80f19d0 FSN#39567: Van MJOB naar MJOP/R.
svn path=/Website/trunk/; revision=34913
2017-08-11 10:09:02 +00:00
Maykel Geerdink
db34623973 FSN#39567: Van MJOB naar MJOP/R.
svn path=/Website/trunk/; revision=34912
2017-08-11 10:05:35 +00:00
Peter Feij
bcdfea8b9b FSN#39567: Van MJOB naar MJOP/R. QA
svn path=/Website/trunk/; revision=34902
2017-08-10 11:42:19 +00:00
Peter Feij
2deffa0642 FSN#39567: Van MJOB naar MJOP/R.
svn path=/Website/trunk/; revision=34892
2017-08-10 08:58:03 +00:00
Peter Feij
b9d52813e1 FSN#39567: Van MJOB naar MJOP/R.
svn path=/Website/trunk/; revision=34891
2017-08-10 08:56:44 +00:00
Maykel Geerdink
a87dfbd195 FSN#39567: Van MJOB naar MJOP/R.
svn path=/Website/trunk/; revision=34878
2017-08-09 13:56:51 +00:00
Maykel Geerdink
de37bbcc28 FSN#39567: Van MJOB naar MJOP/R.
svn path=/Website/trunk/; revision=34877
2017-08-09 13:53:10 +00:00
Jos Groot Lipman
d0d2d5dfa3 FSN#41580 FACILITOR ook als identity provider
svn path=/Website/trunk/; revision=34869
2017-08-09 10:35:17 +00:00
Jos Groot Lipman
591bd4a200 PNBR#40889 Account verloop datum
svn path=/Website/trunk/; revision=34865
2017-08-09 09:22:40 +00:00
Peter Feij
6de56a3a47 VLKC#39450 factuurmatching voor C en O ook indien incl BTW: dat duidelijk bij Contract tonen
svn path=/Website/trunk/; revision=34861
2017-08-08 17:14:30 +00:00
Jos Groot Lipman
e8f63aedb7 DJIN#40651 Bij doorklikken naar (fac_list) van een persoon alleen de lopende meldingen tonen waar je rechten voor hebt
svn path=/Website/trunk/; revision=34858
2017-08-08 15:09:17 +00:00
Jos Groot Lipman
0b2025e691 AAES#36194 Ruimte nog wel mogen reserveren voor het *lopende* kwartier: voordeliger afronden
svn path=/Website/trunk/; revision=34857
2017-08-08 14:13:46 +00:00
Jos Groot Lipman
86f5f25ebd Merge 2017.1 Gold E patches
svn path=/Website/trunk/; revision=34851
2017-08-07 15:49:58 +00:00
Jos Groot Lipman
f900901a62 YKPN#41337 Imoplementatie mld_typeopdr_fvs (FiatteringVrijStelling)
svn path=/Website/trunk/; revision=34850
2017-08-07 15:44:17 +00:00
Jos Groot Lipman
0022cbfa15 YKPN#41337 Imoplementatie mld_typeopdr_fvs (FiatteringVrijStelling)
svn path=/Website/trunk/; revision=34847
2017-08-07 15:39:51 +00:00
Jos Groot Lipman
d84cded707 AAIT#34933 filters :null en :notnull (en :!null && :!notnull) toegevoegd voor scaffolding default filters
svn path=/Website/trunk/; revision=34845
2017-08-07 11:45:47 +00:00
Jos Groot Lipman
fcbac73ae0 FSN#41529 Upload mogelijkheid voor xxxx.xsl
svn path=/Website/trunk/; revision=34844
2017-08-07 11:21:10 +00:00
Peter Feij
3e9db52876 VLKC#41526 totaalbedragkolom erbij
svn path=/Website/trunk/; revision=34843
2017-08-07 10:30:54 +00:00
Jos Groot Lipman
eb289e2187 FSN#40926 Inlogcode inclusief domeinnaam ondersteunen
svn path=/Website/trunk/; revision=34842
2017-08-07 10:28:54 +00:00
Erik Groener
7a3e2d6cdd FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=34830
2017-08-04 14:47:11 +00:00
Erik Groener
abd07f83ea FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=34829
2017-08-04 14:43:53 +00:00
Erik Groener
d623fd439e ook kunnen sorteren op een field.sql
svn path=/Website/trunk/; revision=34813
2017-08-03 13:56:58 +00:00
Erik Groener
65ffb60811 ook kunnen sorteren op een field.sql
svn path=/Website/trunk/; revision=34811
2017-08-03 13:32:02 +00:00
Jos Groot Lipman
7e6a554388 FSN#41489 Vervallen afdeling mag (uiteindelijk) wel bekeken worden.
svn path=/Website/trunk/; revision=34806
2017-08-03 11:06:30 +00:00
Jos Groot Lipman
951fd3ab99 FSN#41489 Vervallen afdeling mag (uiteindelijk) wel bekeken worden.
svn path=/Website/trunk/; revision=34803
2017-08-02 15:12:12 +00:00
Erik Groener
afa2729098 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=34792
2017-08-01 14:38:57 +00:00
Erik Groener
ad10ba2d30 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=34791
2017-08-01 14:33:29 +00:00
Jos Groot Lipman
c14cd01161 NYBU#41349 Herhalen/kopieren van reserveringen in het verleden.
svn path=/Website/trunk/; revision=34788
2017-08-01 12:38:15 +00:00
Maykel Geerdink
d018593bf1 FSN#39567: Van MJOB naar MJOP/R.
svn path=/Website/trunk/; revision=34787
2017-08-01 12:06:23 +00:00
Jos Groot Lipman
c6f1db6cc1 FSN#37533 BLOCK_START titel altijd HTML-safe maken
svn path=/Website/trunk/; revision=34786
2017-08-01 11:19:43 +00:00
Jos Groot Lipman
e725e5244c FSN#39651: PLATO Logging/tracking
svn path=/Website/trunk/; revision=34758
2017-07-27 09:08:17 +00:00
Jos Groot Lipman
9d73edb806 FSN#36298: Scenario’s: voortaan key=1 voor actueel
svn path=/Website/trunk/; revision=34751
2017-07-26 13:57:28 +00:00
Erik Groener
e85cdcced1 FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=34749
2017-07-26 13:30:18 +00:00
Jos Groot Lipman
459fd84426 Merge 2017.1 Gold E changes
svn path=/Website/trunk/; revision=34748
2017-07-26 12:16:01 +00:00
Maykel Geerdink
6dea1d7d1a FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34725
2017-07-25 08:03:53 +00:00
Maykel Geerdink
1f93fae7f0 FSN#38224: Iets scherpere autorisatie controle bij res-bezoekers opslaan.
svn path=/Website/trunk/; revision=34720
2017-07-24 11:46:22 +00:00
Maykel Geerdink
b946070dea FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34719
2017-07-24 11:43:24 +00:00
Maykel Geerdink
9589058504 FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34717
2017-07-24 07:16:10 +00:00
Maykel Geerdink
eaea845292 FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34697
2017-07-20 14:55:17 +00:00
Maykel Geerdink
059140d6ee FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34695
2017-07-20 14:48:35 +00:00
Ruud Lipper
f2d3e72054 FSN#41351 fac_usrrap_functie via elke tabel bekijken kunnen wijzigen
svn path=/Website/trunk/; revision=34690
2017-07-20 13:36:37 +00:00
11f8f23886 FSN#37542 tabnabbing is prevented and situation is either as before of safer.
svn path=/Website/trunk/; revision=34685
2017-07-20 13:26:09 +00:00
ad840bda8f AAIT#34933 filters :null en :notnull (en :!null && :!notnull) toegevoegd voor scaffolding default filters
svn path=/Website/trunk/; revision=34682
2017-07-20 11:03:41 +00:00
0153acd952 FSN#37542 opent nu niet meer automatisch een nieuwe window in chrome of IE waar dat niet nodig is.
svn path=/Website/trunk/; revision=34678
2017-07-20 07:43:44 +00:00
Maykel Geerdink
839b7ab8f1 FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34676
2017-07-20 06:03:12 +00:00
Maykel Geerdink
3f05bb33f7 FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34675
2017-07-20 06:00:00 +00:00
e61b3e354f FSN#40662 onnodige false return veranderd in true ivm correcte werking singlepress
svn path=/Website/trunk/; revision=34666
2017-07-19 12:14:39 +00:00
14b457dbb0 YKPN#40774 display flex values for bez_list() in an additional column (if bez_kenmerk_systeem & 2)
svn path=/Website/trunk/; revision=34663
2017-07-19 11:09:29 +00:00
4541f5e97e FSN#37542 windowopen() aangepast zodat deze voor IE niet apart een 'null' scherm opent
svn path=/Website/trunk/; revision=34655
2017-07-19 07:27:23 +00:00
Maykel Geerdink
c2ed172ce5 FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34652
2017-07-19 05:32:03 +00:00
Maykel Geerdink
8d95282e2e FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34651
2017-07-19 05:31:20 +00:00
1b89d321ca FSN#40662 singlepress functionaliteit aan iface BUTTON() toegevoegd
svn path=/Website/trunk/; revision=34638
2017-07-17 14:36:24 +00:00
2c998c9af6 FSN#37542 prevent tabnabbing with our custom FcltMgr.windowopen which clears the window.opener
svn path=/Website/trunk/; revision=34632
2017-07-17 08:22:34 +00:00
238f7e5266 FSN#37542 window.open() -> FcltMgr.windowopen to prevent tabnabbing
svn path=/Website/trunk/; revision=34629
2017-07-14 15:08:05 +00:00
03bb95b8df DENB#39784 sql en syntactuele verbeteringen
svn path=/Website/trunk/; revision=34627
2017-07-14 13:11:16 +00:00
Jos Groot Lipman
d67cbdc6c3 Merge 2017.1 Gold D changes
svn path=/Website/trunk/; revision=34620
2017-07-13 18:48:29 +00:00
f659ad45b0 DENB#39784 Mobile voorzieningen reserveren toegevoegd, draft
svn path=/Website/trunk/; revision=34617
2017-07-13 14:09:45 +00:00
Jos Groot Lipman
c97bfc76ae Merge 2017.1 Gold D changes
svn path=/Website/trunk/; revision=34603
2017-07-13 07:10:56 +00:00
Robin Stoker
03f0bf628c AAIT#39782 -- Listbox toegevoegd voor extra tijd uitvoerder
svn path=/Website/trunk/; revision=34594
2017-07-12 08:50:09 +00:00
Maykel Geerdink
7267160081 FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34589
2017-07-11 11:05:47 +00:00
753560d8bc DJIN#37690 conflicting function names & removed flag filtering from opdr list's called from melding screens
svn path=/Website/trunk/; revision=34588
2017-07-11 08:31:05 +00:00
Maykel Geerdink
7b67044212 FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34586
2017-07-11 07:42:28 +00:00
Maykel Geerdink
a1919282bd FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34585
2017-07-11 07:41:42 +00:00
16be146397 FSN#37533 BLOCK_START html-safe gemaakt en onnodige safe.html's weggehaald
svn path=/Website/trunk/; revision=34571
2017-07-07 14:46:34 +00:00
247a252ae5 FSN#37533 BLOCK_START Maakt title nu zelf safe.html
svn path=/Website/trunk/; revision=34569
2017-07-07 12:12:08 +00:00
0b34f1b0bf NYBU#37484 lcl_host -> lcl_vis_visit voor de bezoekerslijst
svn path=/Website/trunk/; revision=34567
2017-07-07 11:20:50 +00:00
Jos Groot Lipman
8977c85acb Merge 2017.1 Gold D changes
svn path=/Website/trunk/; revision=34564
2017-07-06 15:41:50 +00:00
7dde6a23da Merge bugfix
svn path=/Website/trunk/; revision=34549
2017-07-06 09:27:30 +00:00
65a929478d AKZA#39536 fcltblockhead label's waren verticaal verkeerd uitgelijnd
svn path=/Website/trunk/; revision=34535
2017-07-05 13:03:17 +00:00
Maykel Geerdink
7950acef0a FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34534
2017-07-05 13:01:55 +00:00
Jos Groot Lipman
3df8a9dcac Merge 2017.1 Gold D changes
svn path=/Website/trunk/; revision=34522
2017-07-05 09:51:58 +00:00
Maykel Geerdink
e0cc25a4ca FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34520
2017-07-05 07:52:36 +00:00
Maykel Geerdink
b413a419e0 Divers
svn path=/Website/trunk/; revision=34501
2017-07-03 12:39:58 +00:00
Robin Stoker
7b75d203e5 AAIT#39782 -- savepoint, work in progress
svn path=/Website/trunk/; revision=34439
2017-06-27 11:49:45 +00:00
Ruud Lipper
24f9dd8093 FSN#41052 Inactieve objecten worden onterecht niet getoond
svn path=/Website/trunk/; revision=34424
2017-06-26 08:04:18 +00:00
Ruud Lipper
afde534dec FSN#41029 Lijst key-users automatisch op te vragen (zelfs door sales)
svn path=/Website/trunk/; revision=34421
2017-06-23 11:01:33 +00:00
Ruud Lipper
a82bc6e4c9 FSN#41052 Inactieve objecten werden niet bij ruimten getoond
svn path=/Website/trunk/; revision=34420
2017-06-23 09:52:45 +00:00
ab3ba4b1e3 FSN#40710 clearTimeout cleared nu alle (ajax) timeouts zodat hij er geen vergeet
svn path=/Website/trunk/; revision=34416
2017-06-22 15:17:05 +00:00
Jos Groot Lipman
da08e9ff58 Merge Gold C changes
svn path=/Website/trunk/; revision=34407
2017-06-22 13:25:48 +00:00
Ruud Lipper
c984469f10 FSN#41029 Lijst key-users automatisch op te vragen (zelfs door sales)
svn path=/Website/trunk/; revision=34391
2017-06-22 06:56:32 +00:00
Peter Feij
66d8c6b35a HCAS#39538 bedrijf doorklikbaar naar details fix
svn path=/Website/trunk/; revision=34390
2017-06-21 15:45:26 +00:00
Peter Feij
7b5f890edd HCAS#39538 bedrijf doorklikbaar naar details
svn path=/Website/trunk/; revision=34388
2017-06-21 15:39:48 +00:00
Maykel Geerdink
c964112693 FSN#36298: 1. Scenario’s (per complex moeten verschillende scenario’s gemaakt moeten kunnen.
svn path=/Website/trunk/; revision=34384
2017-06-21 14:31:56 +00:00
793d0d95f4 SGGR#38472 mobile collapsible labels verbeterd
svn path=/Website/trunk/; revision=34334
2017-06-19 08:07:57 +00:00
Erik Groener
7d162c502c FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Website/trunk/; revision=34312
2017-06-16 08:06:26 +00:00
Peter Feij
8a7f9cbcee FSN#39054 Budgetcontrole uitbreiding: BGT module - fix
svn path=/Website/trunk/; revision=34308
2017-06-16 06:57:39 +00:00
Jos Groot Lipman
284aadb8fb Merge 2017.1 Gold B patches
svn path=/Website/trunk/; revision=34303
2017-06-15 15:02:54 +00:00
704f21899d SGGR#38472 mobile collapsible block validatie verbetert en sluit nu block correct af
svn path=/Website/trunk/; revision=34298
2017-06-15 14:23:17 +00:00
bdf3d92673 SGGR#38472 mobile collapsible labels toegevoegd
svn path=/Website/trunk/; revision=34289
2017-06-15 11:40:40 +00:00
Maykel Geerdink
6f8b2a427c FSN#40942: Interne opdrachten/groepswerkwijze (DJIN#35660) per 2017.1 omgevallen?
svn path=/Website/trunk/; revision=34283
2017-06-15 09:42:22 +00:00
31ee7187f2 DJIN#37690 opdrachten flags toegevoegd
svn path=/Website/trunk/; revision=34281
2017-06-15 09:24:46 +00:00
901342ce85 DJIN#37690 opdrachten flags toegevoegd
svn path=/Website/trunk/; revision=34280
2017-06-15 09:22:34 +00:00
Maykel Geerdink
4fda73029c FSN#39651: PLATO Logging/tracking.
svn path=/Website/trunk/; revision=34276
2017-06-15 07:58:35 +00:00
Maykel Geerdink
e5561d8fd2 FSN#39651: PLATO Logging/tracking.
svn path=/Website/trunk/; revision=34273
2017-06-15 07:41:17 +00:00
6c580c5f90 AKZA#35988 'Plattegrond' aan ins_search en ins_edit_deel.asp toegevoegd
svn path=/Website/trunk/; revision=34264
2017-06-14 11:27:25 +00:00
Ruud Lipper
9577ca4fc2 FSN#40894 Timezone wordt niet getoond bij fac_user_info
svn path=/Website/trunk/; revision=34221
2017-06-12 13:22:18 +00:00
Jos Groot Lipman
f3ee0a36ae Niet meer bestaande LCL's hoef je ook niet te overrulen
svn path=/Website/trunk/; revision=34218
2017-06-12 11:22:04 +00:00
6dea3df9a3 FSN#40569 veldnamen veranderd mld_adres_fax -> mld_adres_email && mld_adres_contactpers_fax -> mld_adres_contactpers_email
svn path=/Website/trunk/; revision=34214
2017-06-12 08:58:08 +00:00
541368f835 KFNS#40578 notitie aan contract -> mail toegevoegd
svn path=/Website/trunk/; revision=34209
2017-06-12 08:02:51 +00:00
1e30c1139e KFNS#40578 notitie aan contract -> mail toegevoegd
svn path=/Website/trunk/; revision=34208
2017-06-12 08:02:36 +00:00
Jos Groot Lipman
8dbbbee545 Merge 2017.1 Gold A patches
svn path=/Website/trunk/; revision=34192
2017-06-08 16:32:49 +00:00
1e7f2b8927 KFNS#40578 notitie veld vast toegevoegd, rest volgt
svn path=/Website/trunk/; revision=34191
2017-06-08 15:24:31 +00:00
3ee0f21ef7 FSN#40710 Bij alle ajax.post's een spinner toegevoegd zoals bekend
svn path=/Website/trunk/; revision=34186
2017-06-08 14:00:50 +00:00
4b2b73cf37 FSN#40655 padding correctie voor readonly flexwaarde-velden
svn path=/Website/trunk/; revision=34154
2017-06-07 11:24:28 +00:00
494523ce47 DJIN#39649 Setting 'mld_opdr_show_requestor_in_list' toegevoegd
svn path=/Website/trunk/; revision=34148
2017-06-07 10:05:32 +00:00
4db635882d DJIN#37278 een 'meer..' linkje toegevoegd aan bepaalde kennisbankitems
svn path=/Website/trunk/; revision=34112
2017-06-01 14:46:55 +00:00
836cb8da6c AKZA#39536 Voorwaarden toegevoegd en fouten eruit gehaald
svn path=/Website/trunk/; revision=34095
2017-06-01 08:01:52 +00:00
Maykel Geerdink
83be4ab360 FSN#40740: INS: Controle kan onterecht niet opgeslagen worden.
svn path=/Website/trunk/; revision=34082
2017-05-31 11:50:51 +00:00
Jos Groot Lipman
4b04a2800d Nog missende lcl lcl_bes_no_order_yet in 2017.1
svn path=/Website/trunk/; revision=34066
2017-05-30 13:39:55 +00:00
Jos Groot Lipman
43f4faf373 Merge 2017.1 patches
svn path=/Website/trunk/; revision=34058
2017-05-30 09:46:55 +00:00
Maykel Geerdink
ece6aba100 FSN#38224: Iets scherpere autorisatie controle bij res-bezoekers opslaan.
svn path=/Website/trunk/; revision=34057
2017-05-30 09:32:17 +00:00
98a736e265 AKZA#39536 icoontje de juiste kleur gegeven
svn path=/Website/trunk/; revision=34039
2017-05-29 13:57:02 +00:00
27c0bb222b AKZA#39536 functionaleiten toegevoegd, zie log
svn path=/Website/trunk/; revision=34038
2017-05-29 13:39:46 +00:00
32e5583c95 HCAS#39538 show bedrijf scherm voor mobile toegevoegd, doorklikbaar vanuit contract.asp & order.asp
svn path=/Website/trunk/; revision=34018
2017-05-29 09:16:18 +00:00
066f9cad70 HCAS#39538 show bedrijf scherm voor mobile toegevoegd, doorklikbaar vanuit contract.asp & order.asp
svn path=/Website/trunk/; revision=34014
2017-05-29 09:05:51 +00:00
1379 changed files with 61172 additions and 33152 deletions

View File

@@ -131,6 +131,11 @@ function district_list(pautfunction, params)
sqln += " AND d.alg_district_key = " + dis_key;
}
if (params.distr_descr)
{
sqln += " AND UPPER(d.alg_district_omschrijving) LIKE " + safe.quoted_sql_wild(params.distr_descr + "%");
}
else if (reg_key)
{
sqln += " AND d.alg_regio_key = " + reg_key;

View File

@@ -52,10 +52,14 @@ var authparams = alg.checkAutorisation();
regiokey: regio_key,
districtkey: district_key,
startlevel: 0, // Regio
eindlevel: 1, // District
eindlevel: 0, // Regio
whenEmpty: L("lcl_search_generic")
});
%>
<tr class="primsearch">
<td class="label"><label><%=L("lcl_estate_district_man_descr")%>:</label></td>
<td><input type="text" class="wildcard" id="distr_descr" name="distr_descr" value=""></td>
</tr>
</table>
</td><!-- end column 1 -->
<td class="searchkolom2">

View File

@@ -4,9 +4,9 @@
$Id$
File: alg_district_search_list.asp
Description:
Parameters:
Context:
Description:
Parameters:
Context:
Note:
*/ %>
@@ -23,12 +23,14 @@ var outputmode = getQParamInt("outputmode", 0); // 0 = screen, 1 = print, 2 = e
var showall = getQParamInt("showall", 0) == 1;
var reg_key = getQParamInt("regiokey", -1); // Regio
var dis_key = getQParamInt("districtkey", -1); // District
var distr_descr = getQParam("distr_descr", ""); // Districtomschrijving
district_list ( "*",
{ outputmode: outputmode,
showall: showall,
reg_key: (reg_key != -1? reg_key : null),
dis_key: (dis_key != -1? dis_key : null)
dis_key: (dis_key != -1? dis_key : null),
distr_descr: distr_descr
}
);
%>

View File

@@ -188,7 +188,7 @@ else
label: L("lcl_delivery_address"),
adresKey: mld_adres,
emptyOption: "",
filtcode: "A",
filtercode: "A",
readonly: !this_alg.writeman
}) ;
manRWFIELD("bld_x", "fld", L("lcl_geoxcoord"), bld_x, {maxlength: 25});

View File

@@ -195,11 +195,13 @@ function locatie_list(pautfunction, params)
{
sqln += " AND d.alg_regio_key = " + reg_key;
}
if (params.loc_code)
sqln += " AND UPPER(l.alg_locatie_code) LIKE " + safe.quoted_sql_wild(params.loc_code + "%");
sqln += " ORDER BY l.alg_locatie_upper ASC "
if (params.loc_code)
sqln += " AND UPPER(l.alg_locatie_code) LIKE " + safe.quoted_sql_wild(params.loc_code + "%");
if (params.loc_descr)
sqln += " AND UPPER(l.alg_locatie_omschrijving) LIKE " + safe.quoted_sql_wild(params.loc_descr + "%");
sqln += " ORDER BY UPPER(alg_district_omschrijving), UPPER(alg_locatie_code)";
var addurl = "appl/alg/alg_locatie.asp";
// addurl += buildTransitParam(["loc_key", "bld_key", "flo_key", "room_key"], params) // TODO: welke allemaal?

View File

@@ -53,7 +53,7 @@ var authparams = alg.checkAutorisation();
districtkey: district_key,
locatiekey: locatie_key,
startlevel: 1, // District
eindlevel: 2, // locatie
eindlevel: 2, // Locatie
whenEmpty: L("lcl_search_generic") // want filter
});
%>
@@ -61,6 +61,10 @@ var authparams = alg.checkAutorisation();
<td class="label"><label><%=L("lcl_estate_locatie_man_code")%>:</label></td>
<td><input type="text" class="wildcard" id="loc_code" name="loc_code" value=""></td>
</tr>
<tr class="primsearch">
<td class="label"><label><%=L("lcl_estate_locatie_man_descr")%>:</label></td>
<td><input type="text" class="wildcard" id="loc_descr" name="loc_descr" value=""></td>
</tr>
</table>
</td><!-- end column 1 -->

View File

@@ -3,10 +3,10 @@
$Revision$
$Id$
File:
Description:
Parameters:
Context:
File:
Description:
Parameters:
Context:
Note:
*/ %>
@@ -26,6 +26,7 @@ var reg_key = getQParamInt("regiokey", -1); // Regio
var dis_key = getQParamInt("districtkey", -1); // District
var loc_key = getQParamInt("locatiekey", -1); // Locatie
var loc_code = getQParam("loc_code", ""); // Locatiecode
var loc_descr = getQParam("loc_descr", ""); // Locatienaam
locatie_list ( "*",
{ outputmode: outputmode,
@@ -33,7 +34,8 @@ locatie_list ( "*",
reg_key: (reg_key != -1? reg_key : null),
dis_key: (dis_key != -1? dis_key : null),
loc_key: (loc_key != -1? loc_key : null),
loc_code: loc_code,
loc_code: loc_code,
loc_descr: loc_descr,
noref: (noref != -1? noref : null)
}
);

View File

@@ -114,7 +114,7 @@ else
var insman_read = authparamsINSMAN;
if (insman_read)
{
var page4="../INS/ins_list.asp?embedded=1&tiny=1&ruimtekey=" + room_key
var page4="../INS/ins_list.asp?embedded=1&tiny=1&inacObjIncl=1&ruimtekey=" + room_key
IFRAMER("insdeel", page4, { initHeight: "450px" } );
}
var authparamsCNTUSE = user.checkAutorisation("WEB_CNTUSE", true);

View File

@@ -89,10 +89,9 @@ oRs.Close();
<% if (S("alg_fg_remote_maps") != "" && bld_x && bld_y) { %>
function openMaps(bldKey)
{
fwnd = window.open('../cad/ShowGoogleMap.asp?bld_key=' + bldKey, 'FGShow',
FcltMgr.windowopen('../cad/ShowGoogleMap.asp?bld_key=' + bldKey, 'FGShow',
"width=800, height=600, directories=no, location=no, menubar=no,"
+ "resizable=yes, status=no, titlebar=yes, toolbar=no");
fwnd.focus()
return;
}
<% } %>
@@ -129,7 +128,7 @@ oRs.Close();
{ gebouwkey: bld_key,
startlevel: 2, //Locatie
eindlevel: 3, // Gebouw
moreinfo: true,
moreinfo: true, // wel beetje suf om door te linken naar jezelf
readonly: true
});
sql = "SELECT alg_srtgebouw_key"
@@ -145,7 +144,11 @@ oRs.Close();
suppressEmpty: true,
readonly: true
});
ROFIELDTR("fld", L("lcl_estate_gebouw_man_code"), bld_code, {suppressEmpty:true});
params = { infoPointer: { Url: "appl/shared/status_info.asp?bld_key=" + bld_key,
Title: L("lcl_status_details") + " " + bld_naam
}
}
ROFIELDTR("fld", L("lcl_estate_gebouw_man_code"), bld_code, params);
ROFIELDTR("fld", L("lcl_estate_gebouw_man_opmerk"), bld_opmerk, {suppressEmpty:true});
sql = "SELECT prs_kostenplaats_key"
+ " , k.prs_kostenplaats_nr || ' ' || k.prs_kostenplaats_omschrijving"

View File

@@ -86,10 +86,9 @@ oRs.Close();
<% if (S("alg_fg_remote_maps") != "" && loc_x && loc_y) { %>
function openMaps(locKey)
{
fwnd = window.open('../cad/ShowGoogleMap.asp?loc_key=' + locKey, 'FGShow',
FcltMgr.windowopen('../cad/ShowGoogleMap.asp?loc_key=' + locKey, 'FGShow',
"width=800, height=600, directories=no, location=no, menubar=no,"
+ "resizable=yes, status=no, titlebar=yes, toolbar=no");
fwnd.focus()
return;
}
<% } %>

View File

@@ -289,7 +289,7 @@ else if (srtruimte_key > 0 && mode == "delete")
target="hidFrameSubmit"
onSubmit="alg_submit()">
<%
BLOCK_START("algInfo", safe.html(L("lcl_general_properties")));
BLOCK_START("algInfo", L("lcl_general_properties"));
ROFIELDTR( "fld", L("lcl_key"), srtruimte_key);
myFIELD("omschrijving", "fld", L("lcl_descr"), srtr_info.alg_srtruimte_omschrijving, { translate: {fld: "mld_afmeldtekst_naam", key: srtruimte_key} });

View File

@@ -17,6 +17,7 @@
THIS_FILE = "appl/api/api_mldsoap.asp";
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc" -->
<!-- #include file="../Shared/xml_converter.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/flexfiles.inc" -->
@@ -38,6 +39,7 @@ var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
if (API.apidata.stylesheet)
{
var iXsl = Server.CreateObject("MSXML2.DOMDocument.6.0");
iXsl.resolveExternals = true; // XSL kan includes hebben
if( ! iXsl.load(Server.MapPath(API.apidata.stylesheet)) )
{
API.error("Could not load XSL " + API.apidata.stylesheet + "\n" + iXsl.parseError.reason);
@@ -86,6 +88,7 @@ var meldingen = xmlReq.getElementsByTagName("melding");
for (i = 0; i < meldingen.length; i++)
{
resultcode = -1;
resulttekst = "";
// Lees per node de (optionele) tags en waarden.
var fields = []; // Bij te werken velden.
var ext_id = meldingen[i].getAttribute("key");
@@ -262,9 +265,12 @@ for (i = 0; i < meldingen.length; i++)
if (meld_oms)
fields.push({ dbs: "mld_melding_omschrijving", typ: "varchar", val: meld_oms, track: L("lcl_mld_inf_Omschrijving"), len: 4000 });
var mldUpd = buildTrackingUpdate("mld_melding", "mld_melding_key = " + mld_key, fields, { noValidateToken: true });
Oracle.Execute(mldUpd.sql);
mld.trackmeldingupdate(mld_key, L("lcl_mld_is_updatedbysoap").format(mld_key) + "\n" + mldUpd.trackarray.join("\n"));
if (fields.length>0)
{
var mldUpd = buildTrackingUpdate("mld_melding", "mld_melding_key = " + mld_key, fields, { noValidateToken: true });
Oracle.Execute(mldUpd.sql);
mld.trackmeldingupdate(mld_key, L("lcl_mld_is_updatedbysoap").format(mld_key) + "\n" + mldUpd.trackarray.join("\n"));
}
// De kenmerken.
upsertKenmerk(mldkenmerken, stdmld_key, mld_key);
@@ -441,11 +447,20 @@ for (i = 0; i < meldingen.length; i++)
{
__DoLog(pResult.errmsg, "#00FF00");
}
// De hookfunctie kan de stdmelding aanpassen.
if (pResult.stdmld_key)
{
// check de paden van de flexfiles als de stdmeldingkey aangepast is
mld.keepFlexDocuments(mld_key, stdmld_key, pResult.stdmld_key);
}
}
} // end geldige stdmld_key
} // end insert
} // end geldige ext_id
if (resultcode > 0)
__DoLog("api_mldsoap fail.\nResultcode: {0}\nReturntekst: {1}".format(resultcode, resulttekst), "#00FF00");
var binfo = {returncode: resultcode,
returntekst: resulttekst,
// executed:sql, // debug

View File

@@ -55,9 +55,14 @@ if ("ORDremark" in API.apidata.options)
var tsql = "-"; // Voor tijdelijke statement.
var sql = "-"; // De uiteindelijke insert/update-sql.
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
//if (API.apidata.loglevel) __Log2File(Request, API.APIname + "_IN1");
if (API.apidata.stylesheet)
{
var iXsl = Server.CreateObject("MSXML2.DOMDocument.6.0");
iXsl.resolveExternals = true; // XSL kan includes hebben
if( ! iXsl.load(Server.MapPath(API.apidata.stylesheet)) )
{
API.error("Could not load XSL " + API.apidata.stylesheet + "\n" + iXsl.parseError.reason);
@@ -79,7 +84,18 @@ if (API.apidata.stylesheet)
inputXML.transformNodeToObject(iXsl, xmlReq);
}
else
{
xmlReq.load(Request);
if (xmlReq.parseError.errorCode != 0)
{
__DoLog( "Error loading XML: "
+ xmlReq.parseError.errorCode
+ "\n" + xmlReq.parseError.reason
+ " regel " + xmlReq.parseError.line
+ "(" + xmlReq.parseError.linepos + ")"
, "#ff0000");
}
}
if (API.apidata.loglevel) __Log2File(xmlReq.xml, API.APIname + "_TUSSEN");
@@ -140,6 +156,7 @@ for (i=0; i < opdrachten.length; i++)
var meldingtekst = XMLval(opdrachten[i], "meldingtekst"); // NEW
var onderwerp = XMLval(opdrachten[i], "onderwerp"); // NEW
var opdr_kpn = XMLval(opdrachten[i], "kostenplaats");
var flag = parseInt(XMLval(opdrachten[i], "flag"), 10);
var txt_mut_datum = XMLval(opdrachten[i], "mut_datum"); // UPD
var opdrstatus = XMLval(opdrachten[i], "status"); // UPD
@@ -183,6 +200,7 @@ for (i=0; i < opdrachten.length; i++)
{
voor_key = oRs("prs_perslid_key").value;
}
oRs.Close();
// Kijk of er een opdracht bestaat met dit externe opdracht nummer.
// Ben je bang dat het nummer vaker voorkomt dan kun je deze prefixen in de xsl
@@ -200,6 +218,7 @@ for (i=0; i < opdrachten.length; i++)
// Als het externe opdracht nummer al bestaat weten we zeker dat het om een update gaat.
opdraction = "update";
}
oRs.Close();
if (opdraction == "insert")
{
@@ -231,6 +250,12 @@ for (i=0; i < opdrachten.length; i++)
resulttekst = "Undefined stdmelding " + stdm_key;
}
if (isNaN(voor_key))
{
resultcode = 3;
resulttekst = "Undefined 'voor': " + voor_email;
}
// Hier heb ik een geldige stdm_key.
if (resultcode == -1) // Nog steeds geen fouten.
{ // Bepaal kostenplaats via voor-user
@@ -384,6 +409,12 @@ for (i=0; i < opdrachten.length; i++)
fields.push({ dbs: "mld_opdr_omschrijving", typ: "varchar", val: opdrachttekst, len: 4000 });
}
// Flag, ignore if invalid
if (!isNaN(flag) && flag >= 0 && flag < S("mld_opdracht_flags"))
{
fields.push({ dbs: "mld_opdr_flag", typ: "number", val: flag });
}
var mldIns = buildInsert("mld_opdr", fields, { noValidateToken: true });
var sql = mldIns.sql;
var err = Oracle.Execute(sql, true);
@@ -404,7 +435,7 @@ for (i=0; i < opdrachten.length; i++)
mld.updatemeldingstatus (mld_key, 0);
}
}
else if (opdraction == "update")
else if (opdraction == "update" || opdraction == "note")
{ // Bestaande opdracht zoeken
var idarr = opdrid.split('/');
mld_key = parseInt(idarr[0], 10);
@@ -433,6 +464,13 @@ for (i=0; i < opdrachten.length; i++)
}
oRs.Close();
}
if (opdraction == "note" && resultcode == -1) // Nog steeds geen fouten.
{
tsql = "INSERT INTO mld_opdr_note(mld_opdr_key, prs_perslid_key, mld_opdr_note_omschrijving)"
+ " VALUES (" + opdr_key + "," + user_key + "," + safe.quoted_sql(opdropmerking) + ")";
Oracle.Execute(tsql);
resultcode = 0; // we zijn klaar.
}
}
else
{
@@ -530,6 +568,13 @@ for (i=0; i < opdrachten.length; i++)
if (autoorder) // Ooit: net als appendRemark via json configureerbaar maken?
mld_fields.push({ dbs: "mld_melding_einddatum", typ: "date", val: opdrgereeddate, track: L("lcl_mld_enddate") });
}
// Flag, ignore if invalid
if (!isNaN(flag) && flag >= 0 && flag < S("mld_opdracht_flags"))
{
opdr_fields.push({ dbs: "mld_opdr_flag", typ: "number", val: flag });
}
// We weten nu de updates, straks voeren we deze pas uit
// Eerst de eventuele statuswijzigingen
var newstatus = -1;
@@ -781,6 +826,10 @@ for (i=0; i < opdrachten.length; i++)
{
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze opdracht.
}
else if (resultcode > 0)
{
__DoLog("api_opdrsoap fail.\nResultcode: {0}\nReturntekst: {1}".format(resultcode, resulttekst), "#00FF00");
}
var binfo = {
returncode: resultcode,

View File

@@ -152,6 +152,11 @@ __Log("== Entering shorturl.asp ==");
}
var url = oRs("fac_bookmark_path").Value;
if (url.indexOf("{$*}") > 0) // default.asp?Jumpto=cust/uwva/pacta.asp{$*}
{
url = url.replace("{$*}", safe.url("?" + rest));
rest = "";
}
var refresher = oRs("fac_bookmark_refreshtime").Value;
var bookmark_naam = oRs("fac_bookmark_naam").Value;

View File

@@ -39,7 +39,7 @@ var fac_id = Request.QueryString("fac_id").Count > 0&&String(Request.QueryString
<body style='background-color:#E5EAF1; font-family: Helvetica; font-size: 0.8em;'>
<form method="post" onsubmit="doSubmit();return false;">
<table>
<th colspan="2">FACILITOR API2 tester - FOR INTERNAL USE ONLY [ <a href="<%=safe.htmlattr(HTTP.urlzelf())%>/api2/" target="_blank">API reference</a> ]</th>
<th colspan="2">FACILITOR API2 tester - FOR INTERNAL USE ONLY [ <a href="<%=safe.htmlattr(HTTP.urlzelf())%>/api2/" target="_blank" rel="noopener noreferrer">API reference</a> ]</th>
<tr><td><label>Format</label></td>
<td><input type='radio' id='format' name='format' value='json' checked='1'>json</input>
<input type='radio' id='format' name='format' value='xml'>xml</input>

View File

@@ -12,6 +12,7 @@
*/
%>
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="api2_tools.inc" -->
<%
api2 = {
form2JSONdata: function _form2JSONdata(model, params, formfields) // Maak een jsondata-object voor gebruik vanuit model_xxx.inc
@@ -176,6 +177,9 @@ api2 = {
continue;
if (filterval < 0 && field.typ == "key")
continue;
if (filter == "like" && typeof filterval == "string" &&
(filterval.toUpperCase() == "NULL" || filterval.toUpperCase() == "NOT NULL"))
continue; // niet compatible met "like" filter
}
// Voor ranges komt de naam (misschien) niet letterlijk voor, maar (mogelijk) met start_ of end_ ervoor
@@ -188,11 +192,19 @@ api2 = {
filterval1 = filterval;
if ((filterval1 === "" || filterval1 === null) && (filterval2 === "" || filterval2 === null))
continue;
if (typeof filterval1 == "string" && (filterval1.toUpperCase() == "NULL" || filterval1.toUpperCase() == "NOT NULL"))
continue; // niet compatible met "range" filter
}
// Nu is ook voor ranges alles weer normaal
var clause;
var operand = " = ";
switch (field.typ)
if (filterval && typeof filterval == "string" &&
(filterval.toUpperCase() == "NULL" || filterval.toUpperCase() == "NOT NULL"))
{
operand = " IS ";
var safe_val = filterval;
}
else switch (field.typ)
{
case "key":
if (!filterval)
@@ -302,6 +314,8 @@ api2 = {
var safe_val = 0;
else
var safe_val = parseInt(filterval, 10);
if (field.invert)
safe_val = (safe_val==1?0:1);
if (isNaN(safe_val))
{
return ["0=1"]; // niets gevonden
@@ -775,10 +789,12 @@ api2 = {
if (field.foreign.desc_is_unique) // Dan mag je die bij saven ook opgeven
{
field.typ = "sql";
newval = "(SELECT {0} FROM {1} WHERE {2} = {3})".format(field.foreign.key,
field.foreign.tbl,
field.foreign.desc,
safe.quoted_sql(newval.name));
var where = "{0} = {1}".format(field.foreign.desc, safe.quoted_sql(newval.name));
if (typeof field.foreign.desc_is_unique == "string")
where += " AND " + field.foreign.desc_is_unique;
newval = "(SELECT {0} FROM {1} WHERE {2})".format(field.foreign.key,
field.foreign.tbl,
where);
}
}
}
@@ -878,11 +894,14 @@ api2 = {
existing_includes[inckey].found = true;
}
}
for (oldi in existing_includes)
if (!incmodel.keyfield) // niet voor custom_fields
{
if (!existing_includes[oldi].found)
for (oldi in existing_includes)
{
incmodel.REST_DELETE(params, oldi);
if (!existing_includes[oldi].found)
{
incmodel.REST_DELETE(params, oldi);
}
}
}
}
@@ -894,6 +913,8 @@ api2 = {
}
},
// Geeft de GET terug van een enkel veld
// Onder bepaalde omstandigheden wordt deze functie *heel* veel aangroepen
// Houd hem daarom efficient.
sql2jsonval: function _sql2jsonval(oRs, fld, model)
{
var field = model.fields[fld];
@@ -901,26 +922,27 @@ api2 = {
if (field.val instanceof Function)
var val = field.val(oRs, field, model, sqlfieldname);
else if (field.dbs.indexOf(".") < 0)
{
var val = oRs(sqlfieldname).Value;
}
else
var val = oRs(field.dbs.split(".")[1]).Value;
if (field.typ == "check" || field.typ == "check0")
{
if (field.invert)
val = (val==1?0:1);
}
if (val === null)
if (val === null && !field.invert)
return val;
if (field.typ == "date")
val = new Date(val);
if (field.typ == "datetime")
val = new Date(val);
if (field.typ == "time") // In de database ondersteunen we dit niet maar komt voor bij fac_report
val = new Date(val);
switch (field.typ)
{
case "check":
case "check0":
if (field.invert)
val = (val==1?0:1);
return val;
break;
case "date":
case "datetime":
case "time": // In de database ondersteunen we dit niet maar komt voor bij fac_report
return new Date(val);
break;
}
// Wat te doen met lege waarde
// action: null
// action: {key: null, name: null}
@@ -1068,10 +1090,10 @@ api2 = {
var oRs = Oracle.Execute(sql, params.errmsg);
if (params.errmsg && oRs.friendlyMsg)
{
var record = {};
record[model.list.columns[0]] = oRs.friendlyMsg;
data.push(record);
return data;
var record = {};
record[model.list.columns[0]] = oRs.friendlyMsg;
data.push(record);
return data;
}
var lastkey = 0;
@@ -1084,6 +1106,8 @@ api2 = {
limit = params.filter.limit;
if (params.filter.nolimit || limit == -1)
limit = 99999999; // Excel/CSV alles tonen
var to_skip = params.filter.offset || 0;
while (!oRs.Eof)
{
if (data.length >= limit) // Alleen nog maar tellen
@@ -1102,6 +1126,7 @@ api2 = {
oRs.MoveNext();
continue;
}
var newrecord = true;
if (model.primary)
{
var key = oRs(model.primary).Value;
@@ -1114,13 +1139,18 @@ api2 = {
if (lastkey && !isEmptyObject(record)) // Record was er mogelijk uit gefilterd
{
data.push(record);
if (to_skip > 0)
to_skip --;
else
data.push(record);
total_count ++;
if (data.length == limit)
continue; // alleen nog tellen, 'volgende' record niet meer opbouwen
}
var record = {};
}
else
newrecord = false; // er komen nog wel include-records achteraan
}
// Complexe filtering die we niet voor elkaar kregen met een WHERE-clause
@@ -1135,21 +1165,24 @@ api2 = {
}
var fld;
for (fld in model.fields)
if (newrecord) // dan moeten de velden van het basis model eerst
{
if (fld.substring(0,1) == "_")
continue;
var field = model.fields[fld];
if (field.hidden)
continue;
if ("fields" in params.filter && !inArray(fld, params.filter.fields.split(",")))
continue;
for (fld in model.fields)
{
if (fld.substring(0,1) == "_")
continue;
var field = model.fields[fld];
if (field.hidden)
continue;
if ("fields" in params.filter && !inArray(fld, params.filter.fields.split(",")))
continue;
var val = api2.sql2jsonval(oRs, fld, model)
//waarom was dit aanwezig?
//if (field.readonly && !val.id)
// continue;
record[fld] = val;
var val = api2.sql2jsonval(oRs, fld, model)
//waarom was dit aanwezig?
//if (field.readonly && !val.id)
// continue;
record[fld] = val;
}
}
if (params.include && model.includes)
{
@@ -1207,6 +1240,7 @@ api2 = {
}
oRs.MoveNext();
}
oRs.Close();
if (lastkey && data.length < limit)
{
total_count ++;
@@ -1215,11 +1249,11 @@ api2 = {
if ("merged_model" in model) // de disc_params truc
{
model.merged_model.limit = limit;
//model.offset = offset;
model.merged_model.offset = params.filter.offset || 0;
model.merged_model.total_count = total_count;
}
model.limit = limit;
//model.offset = offset;
model.offset = params.filter.offset || 0;
model.total_count = total_count;
return data;
},
@@ -1438,7 +1472,10 @@ function generic_REST_GET(model, gparams)
for (var i = 0; i < params.orderby.length; i++)
{
var field = model.fields[params.orderby[i]];
orderbys.push(field._foreignname || field.dbs);
if (field.sql)
orderbys.push(field.sql);
else
orderbys.push(field._foreignname || field.dbs);
}
}
@@ -1560,7 +1597,7 @@ function generic_REST_POST(model, gparams)
var err = Oracle.Execute(xxxIns.sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
api2.error(400, err.friendlyMsg); // Veronderstel Bad Request
var inctrack = api2.process_includes(params, model, jsondata, the_key);
@@ -1612,22 +1649,29 @@ function generic_REST_PUT(model, gparams)
jsondata_dp[model.disc_params.joinfield] = the_key;
}
var dbfields = api2.update_fields(params, model, jsondata);
var wheres = [model.fields["id"].dbs + " = " + the_key];
var xxxUpd = buildTrackingUpdate(model.table, wheres.join(" AND " ), dbfields, { noValidateToken: true });
// TODO: Generieke tracking?
if (xxxUpd) // Misschien geen velden opgegeven.
if (params.custom_fields_only)
{
var err = Oracle.Execute(xxxUpd.sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
if (model.trackcode)
shared.trackaction(model.trackcode, the_key, xxxUpd.trackarray.join("\n"));
var xxxUpd = { trackarray: [] };
}
else
{
var dbfields = api2.update_fields(params, model, jsondata);
var wheres = [model.fields["id"].dbs + " = " + the_key];
var xxxUpd = buildTrackingUpdate(model.table, wheres.join(" AND " ), dbfields, { noValidateToken: true });
// TODO: Generieke tracking?
if (xxxUpd) // Misschien geen velden opgegeven.
{
var err = Oracle.Execute(xxxUpd.sql, true);
if (err.friendlyMsg)
api2.error(400, err.friendlyMsg); // Veronderstel Bad Request
if (model.trackcode && xxxUpd.trackarray.length > 0)
shared.trackaction(model.trackcode, the_key, L("lcl_updated") + "\n" + xxxUpd.trackarray.join("\n"));
}
}
var inctrack = api2.process_includes(params, model, jsondata, the_key);
if ("disc_params" in model)
if (!params.custom_fields_only && "disc_params" in model)
{
// Nu de one-on-one tabel
var dbfields = api2.update_fields(params, model.disc_params.model, jsondata_dp);
@@ -1637,7 +1681,7 @@ function generic_REST_PUT(model, gparams)
{
var err = Oracle.Execute(xxxUpd.sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
api2.error(400, err.friendlyMsg); // Veronderstel Bad Request
}
}
@@ -1672,7 +1716,7 @@ function generic_REST_DELETE(model, gparams)
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
api2.error(400, err.friendlyMsg); // Veronderstel Bad Request
return { key: the_key, warning: "" };
}

View File

@@ -55,7 +55,7 @@ var api2_mapper = {
"emailsettings" : { "filename": "appl/mgt/fac_email_setting.asp" },
"exportfunctions" : { "filename": "appl/mgt/fac_export_app.asp" },
"authorizationfunctions" : { "filename": "appl/mgt/fac_functie.asp" },
"authorizationgroups" : { "filename": "appl/mgt/fac_groep.asp" },
"authorizationgroups" : { "filename": "appl/api2/api_authorizationgroups.asp" },
"authorizations" : { "filename": "appl/mgt/fac_groeprechten.asp", "nodoc": true },
"identityproviders" : { "filename": "appl/mgt/aut_idp.asp" },
"importfunctions" : { "filename": "appl/mgt/fac_import_app.asp" },
@@ -82,7 +82,8 @@ var api2_mapper = {
"servicelevels" : { "filename": "appl/mgt/mld_dienstniveau.asp" },
"issuedisciplines" : { "filename": "appl/mgt/mld_discipline.asp" },
"unproductivetimes" : { "filename": "appl/mgt/mld_impropdr.asp" },
"issueproperties" : { "filename": "appl/mgt/mld_kenmerk.asp" },
"issueproperties" : { "filename": "appl/mgt/mld_mld_kenmerk.asp" },
"issueorderproperties" : { "filename": "appl/mgt/mld_kenmerk.asp" },
"expenses" : { "filename": "appl/mgt/mld_kosten.asp" },
"callsources" : { "filename": "appl/mgt/mld_meldbron.asp" },
"disciplinetypes" : { "filename": "appl/mgt/mld_srtdiscipline.asp" },
@@ -94,7 +95,8 @@ var api2_mapper = {
"workflowsteps" : { "filename": "appl/mgt/mld_workflowstep.asp", "nodoc": true },
"workflowexpressions" : { "filename": "appl/mgt/mld_workflow_expression.asp" },
"issuedisciplines" : { "filename": "appl/api2/api_issuedisciplines.asp", "module": "MLD" },
"orders" : { "filename": "appl/api2/api_orders.asp", "module": "MLD" },
// "orders" : { "filename": "appl/api2/api_orders.asp", "module": "MLD" },
"orders" : { "filename": "appl/bgt/mld_opdr.asp", "module": "MLD" },
"issues" : { "filename": "appl/api2/api_issues.asp", "module": "MLD" },
"issuetypes" : { "filename": "appl/api2/api_issuetypes.asp", "module": "MLD" },
"pinboardcategories" : { "filename": "appl/mgt/mrk_discipline.asp" },
@@ -105,7 +107,7 @@ var api2_mapper = {
"costtypegroups" : { "filename": "appl/mgt/prs_kostensoortgrp.asp" },
"costcentregroups" : { "filename": "appl/mgt/prs_kostenplaatsgrp.asp" },
"costcentres" : { "filename": "appl/mgt/prs_kostenplaats.asp" },
"persons" : { "filename": "appl/mgt/prs_perslid.asp", "nodoc": true },
"persons" : { "filename": "appl/api2/api_persons.asp", "nodoc": true },
"mandates" : { "filename": "appl/mgt/prs_perslidkostenplaats.asp" },
"relationtypes" : { "filename": "appl/mgt/prs_relatietype.asp" },
"employeefunctions" : { "filename": "appl/mgt/prs_srtperslid.asp" },
@@ -143,6 +145,8 @@ var api2_mapper = {
"reports" : { "filename": "appl/api2/api_reports.asp", "module": "FAC", "nodoc": true },
"invoices" : { "filename": "appl/api2/api_invoices.asp", "module": "FIN" },
"objects" : { "filename": "appl/api2/api_objects.asp", "module": "INS" },
"inspections" : { "filename": "appl/api2/api_ins_deelsrtcontrole.asp", "module": "INS" },
"statehistory" : { "filename": "appl/mgt/ins_deel_state_history.asp", "module": "INS" },
"companies" : { "filename": "appl/api2/api_companies.asp", "module": "PRS" },
"departments" : { "filename": "appl/mgt/prs_afdeling.asp", "module": "PRS" },

View File

@@ -18,47 +18,22 @@ var DEZE = this;
api2_rest = {
authenticate: function _authenticate()
{
var APIKEY;
if (S("fac_api_key_in_url"))
APIKEY = getQParam("APIKEY", "");
if (!APIKEY && Request.ServerVariables("HTTP_X_FACILITOR_API_KEY").Count)
APIKEY = String(Request.ServerVariables("HTTP_X_FACILITOR_API_KEY")); // Meegegeven als X-FACILITOR-API-Key
if (!APIKEY && Session("user_key") > 0)
var method = String(Request.ServerVariables("REQUEST_METHOD"));
if (method != "GET" && Session("stateless") != 1) // Vereis dan wel het CSRF token
{
user_key = Session("user_key"); // Hierdoor is de API intern te gebruiken zonder authenticatie
var method = String(Request.ServerVariables("REQUEST_METHOD"));
if (method != "GET") // Vereis dan wel het CSRF token
{
var token = Request.ServerVariables("HTTP_X_CSRF_TOKEN").Count // Meegegeven als X-CSRF-TOKEN
? String(Request.ServerVariables("HTTP_X_CSRF_TOKEN"))
: "";
protectRequest.validateToken(token);
}
var token = Request.ServerVariables("HTTP_X_CSRF_TOKEN").Count // Meegegeven als X-CSRF-TOKEN
? String(Request.ServerVariables("HTTP_X_CSRF_TOKEN"))
: "";
protectRequest.validateToken(token);
}
else
if (user_key < 0)
{
if (Session("user_key") > 0)
{} // Tijdens ontwikkeling heb je soms in tweede tab de GUI open. Laat dat ongemoeid.
else
Session.Abandon(); // Altijd, voor de zekerheid
var sql = "SELECT prs_perslid_key, prs_perslid_naam, prs_perslid_oslogin"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_verwijder IS NULL"
+ " AND prs_perslid_apikey = " + safe.quoted_sql(APIKEY);
var oRs = Oracle.Execute(sql);
if (oRs.Eof || !APIKEY)
{
Response.Status = "401 Unauthorized";
// Sommige applicaties kunnen in reactie hierop een b64 encoded username:password sturen
// Die onderscheppen wij in LoginTry.asp uiteindelijk
if (S("basic_auth_realm"))
Response.AddHeader("WWW-Authenticate", "Basic realm=\"" + S("basic_auth_realm") + "\"");
Response.End;
};
__Log("API2 User is: {0} ({1})".format(oRs("prs_perslid_naam").Value, oRs("prs_perslid_oslogin").Value));
/* global */ user_key = oRs("prs_perslid_key").Value;
Response.Status = "401 Unauthorized";
// Sommige applicaties kunnen in reactie hierop een b64 encoded username:password sturen
// Die onderscheppen wij in LoginTry.asp uiteindelijk
if (S("basic_auth_realm"))
Response.AddHeader("WWW-Authenticate", "Basic realm=\"" + S("basic_auth_realm") + "\"");
Response.End;
if (typeof NO_ADDHEADER == "undefined" && Request.Servervariables("HTTP_FCLT_VERSION").Count > 0)
{ // wordt opgepikt door FCLTAPI.DLL voor in de logging en daarna gestript. Niet in Fiddler dus
@@ -93,7 +68,6 @@ api2_rest = {
oRs.Close()
}
/* global */ user = new Perslid(user_key); // wordt mogelijk nog overruled door imporsonate
CheckForLogging(Request.QueryString("logging")); // Nu pas kan autorisatie via user gecontroleerd worden
},
@@ -160,6 +134,12 @@ api2_rest = {
/* global */ JSON_Result = true; // Zelf doen we er niets mee maar
// shared.simple_page kijkt er naar
var orgError = api2.error;
api2.error = function (code, msg)
{
api2_rest.plugin.error_handler(code, msg, orgError);
}
api2_rest.authenticate();
// Kip-ei: de omzetting naar new model() mag pas als je geauthenticeerd bent
// Hierboven willen we het echter al wel meegeven
@@ -175,20 +155,32 @@ api2_rest = {
Response.Status = "405 Method not allowed";
Response.End;
}
if (!("REST_" + method in model))
var key = getQParamInt("id", -1); // Voor POST/PUT/DELETE
var jsondata = {};
var filter = shared.qs2json(model);
filter = api2_rest.plugin.transform_filter(filter);
var requestparams = { filter: filter, include: getQParamArray("include", []) };
if (filter.mode == "attachment" && !("includes" in model && "custom_fields" in model.includes))
api2.error(400, "Attachment not supported for this model");
if (filter.mode == "attachment")
{
if (key > 0 && method == "POST") // het bestand mag dan wel nieuw zijn (POST is van toepassing),
method = "PUT"; // intern is het een update van een bestaand record, dus PUT
}
if (!("REST_" + method in model) || !model["REST_" + method])
{
Response.Status = "501 Not Implemented";
// TODO The response MUST include an Allow header containing a list of valid methods for the requested resource.
Response.End;
}
var jsondata = {};
var filter = shared.qs2json(model);
filter = api2_rest.plugin.transform_filter(filter);
var requestparams = { filter: filter, include: getQParamArray("include", []) };
if (/PUT|POST/.test(method)) // Dan is er in de body data meegestuurd
{
if (filter.mode == "attachment" && "custom_fields" in model.includes)
if (filter.mode == "attachment")
{
// Body bevat application/octet-stream, dat lezen we later wel uit
}
@@ -250,7 +242,6 @@ api2_rest = {
}
}
var key = getQParamInt("id", -1); // Voor POST/PUT/DELETE
var isSingle = /PUT|POST|DELETE/.test(method) || (key > 0); // PUT, POST en DELETE altijd single
if (outputformat == "doc")
@@ -304,10 +295,13 @@ api2_rest = {
{
if (method == "DELETE")
{
if (!(key > 0))
api2.error(400, "Missing id");
var result = model["REST_" + method]( requestparams, key );
}
else if (filter.mode == "attachment" && "custom_fields" in model.includes)
{ // GET/PUT/POST https://xxxx.facilitor.nl/trunk/api2/visitors/99685/attachments/1040/testfile.jpg"
else if (filter.mode == "attachment")
{ // GET/PUT/POST https://xxxx.facilitor.nl/api2/visitors/99685/attachments/1040/testfile.jpg" bestaande folder
// POST https://xxxx.facilitor.nl/api2/issues/0/attachments/1040/testfile.jpg" nieuw object, maakt TEMP aan
if (wasCodePage != 65001)
{
// Door de IIS rewriter is de filenaam in de url utf-8 encoded
@@ -341,17 +335,40 @@ api2_rest = {
{
var bytes = Request.TotalBytes;
if (bytes == 0)
{ // TODO
//__DoLog("api_gen_import empty body posted", "#ffff00");
//Response.Write("Error: no data posted for API import");
//Response.End; // Grof maar anders AiAi, dat is nog erger
}
api2.error(400, "Empty file");
var fileStream = Server.CreateObject("ADODB.Stream");
fileStream.Type = 1; // adTypeBinary eerst nog
fileStream.Open();
fileStream.Write(Request.BinaryRead(bytes));
try
{
fileStream.Write(Request.BinaryRead(bytes));
}
catch(e)
{
var msg = L("lcl_shared_upload_error_start") + e.description + L("lcl_shared_upload_error_end");
api2.error(400, msg);
}
jsondata["custom_fields"][0]["attachments"][0].datastream = fileStream;
if (key == 0) // new record
{
var token = model.includes["custom_fields"].model.REST_POST(requestparams, jsondata.custom_fields[0], -1);
var record = { xflexparentkey: -1, propertyid: jsondata.custom_fields[0].propertyid};
var fileparams = { getFiles: true, api2name: null, tmpfolder: token };
}
else
{
requestparams.custom_fields_only = true; // Voorkom bij nieuwe bijlage onnodige update vam hele issue
model["REST_" + method](requestparams, jsondata, key); // via het hoofdmodel met authorisatie controle en alles
var record = { xflexparentkey: key, propertyid: jsondata.custom_fields[0].propertyid};
var fileparams = { getFiles: true, api2name: model.records_name };
}
var data = model.includes["custom_fields"].model.get_file_info(requestparams, record, fileparams );
api2_rest.deliver(data, /* dummy model */ { record_name: "attachment" }, outputformat, true);
return;
}
// Geen atachment dus door met de reguliere code
var data = model["REST_" + method](requestparams, jsondata, key);
if (method == "GET")
{
@@ -370,6 +387,8 @@ api2_rest = {
}
else if (model.record_name in jsondata) // een enkel record
{
if (!(key > 0))
api2.error(400, "Missing id");
if (jsondata[model.record_name] instanceof Array)
api2.error(400, "{0} should be single record only.".format(method))
@@ -440,7 +459,7 @@ api2_rest = {
{
result.total_count = model.total_count;
result.limit = model.limit;
result.offset = 0;
result.offset = model.offset;
result[model.records_name] = data;
}
@@ -613,8 +632,12 @@ api2_rest = {
// str_antwoord heeft nu het te versturen antwoord
// Bepaal eTag
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var eTag = '"' + oCrypto.hex_sha1(String(S("cache_changecounter")) + "_" + str_antwoord).toLowerCase() + '"';
var eTag = api2_rest.plugin.get_eTag({}, resultdata);
if (!eTag)
{
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var eTag = '"' + oCrypto.hex_sha1(String(S("cache_changecounter")) + "_" + str_antwoord).toLowerCase() + '"';
}
Response.AddHeader("ETag", eTag);
if (Request.ServerVariables("HTTP_IF_NONE_MATCH") == eTag)
{ // We hebben een match! Effectief besparen wel alleen op dataverkeer, de queries zijn al geweest
@@ -749,7 +772,7 @@ api2_rest = {
var arrayElement = xmlDoc.createElement(rootname);
arrayElement.setAttribute("total_count", model.total_count);
arrayElement.setAttribute("limit", model.limit);
arrayElement.setAttribute("offset", 0);
arrayElement.setAttribute("offset", model.offset);
for (var i = 0; i < data.length; i++)
arrayElement.appendChild(record2json(data[i], record_name));
@@ -857,6 +880,16 @@ api2_rest = {
hook = null;
return outdata;
},
error_handler: function(code, msg, orgHandler)
{
var hook = api2_rest.find_plugin();
if ("error_handler" in hook)
outdata = hook.error_handler(code, msg, orgHandler);
else
outdata = orgHandler(code, msg);
hook = null;
return outdata;
},
transform_incoming: function(params, data)
{
var outdata = data;
@@ -876,6 +909,15 @@ api2_rest = {
outdata = hook.transform_outgoing(params, data);
hook = null;
return outdata;
},
get_eTag: function(params, data)
{
var outdata = null;
var hook = api2_rest.find_plugin();
if ("get_eTag" in hook)
outdata = hook.get_eTag(params, data);
hook = null;
return outdata;
}
}
}
@@ -898,7 +940,7 @@ function RequestJSON()
catch (e)
{
result = { error: e.description || (e.message + ": " + e.name) };
__DoLog("JSON eval faalt met: '{0}'\n{1}".format(result, jvraag), "ffff00");
__DoLog("JSON eval faalt met: '{0}'\n{1}".format(result.error, jvraag), "ffff00");
return result ;
}
return { json: vraag };
@@ -932,7 +974,13 @@ function BytesToStr(bytes)
stream.type = 2; // Text
stream.charset = "utf-8";
var sOut = stream.readtext();
// Als onverhoopt toch windows-1252 is gestuurd met diacrieten gaf
// stream.readtext() een 'The parameter is incorrect'
// Vreemd genoeg lijkt het expliciet meegeven van een lengte dat te voorkomen.
// Die mag zelfs gewoon veel 'te lang' zijn.
// Merk op dat we windows-1252 niet ondersteunen, je moet echt utf-8 sturen
// (we hadden waarschijnlijk ook 99999999 kunnen kiezen)
var sOut = stream.readtext(stream.Size * 2);
stream.close;
return sOut;
}

View File

@@ -2,13 +2,14 @@
$Revision$
$Id$
File: mgt_tools.inc
File: api2_tools.inc
Description:
Context:
Notes:
Notes: voorheen mgt/mgt_tools.inc maar de functies zijn essentieel
voor vele modellen dus moet het in api2_tools.inc
*/
%>
<%

View File

@@ -0,0 +1,26 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: api_authorizationgroups.asp
Description: ALG_GEBOUW API
Parameters:
Context: Door een remote systeem (geen persoon) om info uit FACILITOR te halen aan te roepen
Notes: Eigen bestand zodat we internal: true kunnen meegeven
*/
DOCTYPE_Disable = true;
ANONYMOUS_Allowed = 1; // Eigenlijk niet waar. We regelen echter alles zelf
THIS_FILE = "appl/api/api_authorizationgroups.asp";
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="./api2_rest.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="./model_fac_groep.inc" -->
<%
var groep = new model_fac_groep(null, { internal: true }); // internal zodat PUT/POST/DELETE ook kunnen
api2_rest.process(groep);
%>

View File

@@ -0,0 +1,25 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: api_ins_deelsrtcontrole.asp
Description: Inspecties model
Parameters:
Context: Door een remote systeem (geen persoon) om info uit FACILITOR te halen aan te roepen
Notes:
*/
DOCTYPE_Disable = true;
ANONYMOUS_Allowed = 1; // Eigenlijk niet waar. We regelen echter alles zelf
THIS_FILE = "appl/api/api_ins_deelsrtcontrole.asp";
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="./api2_rest.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="./model_ins_deelsrtcontrole.inc" -->
<%
api2_rest.process(model_ins_deelsrtcontrole);
%>

26
APPL/API2/api_persons.asp Normal file
View File

@@ -0,0 +1,26 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: api_persons.asp
Description: ALG_GEBOUW API
Parameters:
Context: Door een remote systeem (geen persoon) om info uit FACILITOR te halen aan te roepen
Notes: Eigen bestand zodat we internal: true kunnen meegeven
*/
DOCTYPE_Disable = true;
ANONYMOUS_Allowed = 1; // Eigenlijk niet waar. We regelen echter alles zelf
THIS_FILE = "appl/api/api_persons.asp";
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="./api2_rest.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="./model_prs_perslid.inc" -->
<%
var perslid = new model_prs_perslid({ internal: true }); // internal zodat PUT/POST/DELETE ook kunnen
api2_rest.process(perslid);
%>

View File

@@ -17,7 +17,7 @@ function model_aut_client(params)
this.record_name = "autclient";
this.table = "aut_client";
this.primary = "aut_client_key";
this.autfunction = "WEB_FACFAC";
this.autfunction = params.internal?false:"WEB_FACTAB";
this.record_title = L("aut_client");
this.records_title = L("aut_client_m");
@@ -32,7 +32,8 @@ function model_aut_client(params)
"dbs": "aut_client_id",
"label": L("aut_client_code"),
"typ": "varchar",
"filter": "exact"
"filter": "exact",
"caseinsensitive": true
},
"name": {
"dbs": "aut_client_omschrijving",
@@ -58,6 +59,12 @@ function model_aut_client(params)
"typ": "varchar",
"defaultvalue": shared.random(32),
"secret": true
},
"company": {
"dbs": "prs_bedrijf_key",
"label": L("prs_bedrijf_key"),
"typ": "key",
"foreign": "PRS_BEDRIJF"
}
/* ,
"redirect_uri": {
@@ -74,12 +81,8 @@ function model_aut_client(params)
};
this.REST_GET = generic_REST_GET(this);
if (params.internal) // Dan geloof ik het wel
{
this.autfunction = false;
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}
%>

View File

@@ -15,7 +15,7 @@ function model_aut_client_perslid(params)
this.table = "aut_client_perslid";
this.primary = "aut_client_perslid_key";
this.autSELF = "person";
this.autfunction = "WEB_FACFAC";
this.autfunction = params.self?false:"WEB_FACFAC";
this.record_title = L("aut_client_perslid");
this.records_title = L("aut_client_perslid_m");
@@ -38,12 +38,23 @@ function model_aut_client_perslid(params)
"desc": "aut_client_omschrijving"
}
},
"registrationdate": {
"dbs": "aut_client_perslid_aanmaak",
"label": L("aut_client_perslid_aanmaak"),
"typ": "datetime",
"readonly": "true"
},
"device_id": {
"dbs": "aut_client_perslid_device_id",
"label": L("aut_client_perslid_device"),
"label": L("aut_client_perslid_device_id"),
"typ": "varchar",
"filter": "exact"
},
"device_name": {
"dbs": "aut_client_perslid_device_name",
"label": L("aut_client_perslid_device_name"),
"typ": "varchar"
},
"scope": {
"dbs": "aut_client_perslid_scope",
"label": L("aut_client_perslid_scope"),
@@ -95,7 +106,7 @@ function model_aut_client_perslid(params)
};
this.list = {
"columns": ["person", "scope", "device"]
"columns": ["person", "scope", "device_id", "accessdate", "login"]
};
this.REST_GET = generic_REST_GET(this);
@@ -106,5 +117,20 @@ function model_aut_client_perslid(params)
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}
/*
TODO: je eigen device_name mogen bewerken en registratie mogen verwijderen
if (params.self) // Alleen device_name bewerken
{
for (var fld in this.fields)
{
if (fld != 'device_name')
{
this.fields[fld].readonly = true;
if (!inArray(fld,["autclient", "autclient","registrationdate", "refreshdate"]))
this.fields[fld].hidden_fld = true;
}
}
}
*/
}
%>

View File

@@ -53,10 +53,12 @@ function model_aut_idp_map(params)
+ ";9;" + L("lcl_prs_person_email")
+ ";10;" + L("lcl_prs_person_phone")
+ ";11;" + L("lcl_prs_person_mobile")
+ ";12;" + L("prs_perslid_externid")
// De foreign's
+ ";20;" + L("lcl_prs_person_function")
+ ";21;" + L("lcl_prs_organisatie")
+ ";22;" + L("lcl_prs_profile")
//+ kostenplaats ondersteunen we niet, dat is in FACILITOR een organisatie of mandatering
// ";99;prs_perslid_key" gereserveerd voor intern gebruik

116
APPL/API2/model_aut_sp.inc Normal file
View File

@@ -0,0 +1,116 @@
<% /*
$Revision$
$Id$
File: model_aut_sp.inc
Description:
Notes:
*/
%>
<!-- #include file="./model_aut_sp_map.inc" -->
<%
function model_aut_sp(params)
{
params = params || {};
this.records_name = "serviceproviders";
this.record_name = "serviceprovider";
this.table = "aut_sp";
this.primary = "aut_sp_key";
this.autfunction = params.internal?false:"WEB_FACTAB";
this.record_title = L("aut_sp");
this.records_title = L("aut_sp_m");
this.fields = {
"id": {
"dbs": "aut_sp_key",
"label": L("lcl_key"),
"typ": "key",
"seq": "aut_s_aut_sp_key"
},
"code": {
"dbs": "aut_sp_code",
"label": L("aut_sp_code"),
"typ": "varchar",
"filter": "exact"
},
"name": {
"dbs": "aut_sp_omschrijving",
"label": L("aut_sp_omschrijving"),
"typ": "varchar",
"required": true
},
"type": {
"dbs": "aut_sp_type",
"label": L("aut_sp_type"),
"typ": "key",
"required": true,
"LOV": L("aut_sp_typeLOV") // TODO?
},
"remark": {
"dbs": "aut_sp_opmerking",
"label": L("aut_sp_opmerking"),
"typ": "memo"
},
"secret": {
"dbs": "aut_sp_secret",
"label": L("aut_sp_secret"),
"typ": "varchar",
"defaultvalue": shared.random(32),
"secret": true
},
"audience": {
"dbs": "aut_sp_audience",
"label": L("aut_sp_audience"),
"typ": "varchar",
"placeholder": customerId + ".facilitor.nl"
},
"redirecturi": {
"dbs": "aut_sp_redirect_uri",
"label": L("aut_sp_redirect_uri"),
"typ": "varchar",
"placeholder": customerId + ".facilitor.nl"
},
"issuer": {
"dbs": "aut_sp_issuer",
"label": L("aut_sp_issuer"),
"typ": "varchar"
},
"algorithm": {
"dbs": "aut_sp_algorithm",
"label": L("aut_sp_algorithm"),
"typ": "varchar"
},
"authorization": {
"dbs": "fac_functie_key",
"label": L("aut_sp_functie_key"),
"typ": "key",
"foreign": "fac_functie"
},
"loglevel": {
"dbs": "aut_sp_loglevel",
"label": L("aut_sp_loglevel"),
"typ": "number",
"defaultvalue": 0
},
"internal": {
"dbs": "aut_sp_internal",
"label": L("aut_sp_internal"),
"typ": "check0",
"readonly": true
}
}
this.includes =
{ "spmappings": { model: new model_aut_sp_map(),
joinfield: "serviceprovider",
enable_update: true
}
};
this.REST_GET = generic_REST_GET(this);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}
%>

View File

@@ -2,38 +2,39 @@
$Revision$
$Id$
File: model_fac_sp_map.inc
File: model_aut_sp_map.inc
Description: Door sp 'released attributes'
Notes:
*/
function model_fac_sp_map()
function model_aut_sp_map(params)
{
params = params || {};
this.records_name = "spmappings";
this.record_name = "spmapping";
this.table = "fac_sp_map";
this.primary = "fac_sp_map_key";
this.autfunction = "WEB_FACFAC";
this.record_title = L("fac_sp_map");
this.records_title = L("fac_sp_map_m");
this.table = "aut_sp_map";
this.primary = "aut_sp_map_key";
this.autfunction = params.internal?false:"WEB_FACTAB";
this.record_title = L("aut_sp_map");
this.records_title = L("aut_sp_map_m");
this.fields = {
"id": {
"dbs": "fac_sp_map_key",
"dbs": "aut_sp_map_key",
"label": L("lcl_key"),
"typ": "key",
"seq": "fac_s_fac_sp_map_key"
"seq": "fac_s_aut_sp_map_key"
},
"serviceprovider": {
"dbs": "fac_sp_key",
"label": L("fac_sp"),
"dbs": "aut_sp_key",
"label": L("aut_sp"),
"typ": "key",
"hidden_fld": true,
"required": true
},
"name": {
"dbs": "fac_sp_map_from",
"label": L("fac_sp_map_from"),
"dbs": "aut_sp_map_from",
"label": L("aut_sp_map_from"),
"typ": "key",
"required": true,
"LOV": "1;" + L("lcl_prs_person_login")
@@ -48,8 +49,8 @@ function model_fac_sp_map()
+ ";101;" + L("fac_groeprechten_m")
},
"to": {
"dbs": "fac_sp_map_to",
"label": L("fac_sp_map_to"),
"dbs": "aut_sp_map_to",
"label": L("aut_sp_map_to"),
"typ": "varchar",
"required": true
}

View File

@@ -4,13 +4,14 @@
File: model_bes_kenmerk.inc
Description: Vanuit CodeCharge gegenereerd model voor bes_kenmerk
Description: Model voor bes_kenmerk
Context:
Notes:
*/
%>
<!-- #include file="model_bes_srtkenmerk.inc"-->
<%
function model_bes_kenmerk(params)
@@ -165,6 +166,11 @@ function model_bes_kenmerk(params)
}
};
this.getPropertyType = function (kenmerkdata)
{
var typedata = api2.GET(new model_bes_srtkenmerk({internal: params.internal}), kenmerkdata.orderpropertytype.id);
return typedata;
}
function buildBESKenmerkNiveauList()
{

View File

@@ -13,14 +13,15 @@
%>
<%
function model_bes_srtkenmerk()
function model_bes_srtkenmerk(params)
{
params = params || {};
this.records_name = "orderpropertytypes";
this.record_name = "orderpropertytype";
this.table = "bes_srtkenmerk";
this.primary = "bes_srtkenmerk_key";
this.soft_delete = "bes_srtkenmerk_verwijder";
this.autfunction = "WEB_BESMGT";
this.autfunction = params.internal?false:"WEB_BESMGT";
this.record_title = L("bes_srtkenmerk");
this.records_title = L("bes_srtkenmerk_m");

View File

@@ -90,8 +90,11 @@ function model_bez_kenmerk(params)
},
"system": {
"dbs": "bez_kenmerk_systeem",
"label": L("mgt_srtkenmerk_systeem"),
"typ": "check"
"label": L("mgt_kenmerk_systeem"),
"typ": "number",
"LOV": L("mgt_kenmerk_systeemLOV"),
"defaultvalue": 0,
"required": true
},
"length": {
"dbs": "bez_kenmerk_lengte",

View File

@@ -14,6 +14,7 @@
<!-- #include file="../bgt/bgt_tools.inc" -->
<!-- #include file="../api2/model_bgt_budgetmutatie.inc" -->
<%
var v_checkauth = getQParamInt("id", 0) > 0;
function model_bgt_budget()
{
@@ -41,8 +42,8 @@ function model_bgt_budget()
"typ": "key",
"required": true,
"insertonly": true,
"foreign": bgt_budgetdiscipline_foreign(),
"emptyoption": null
"foreign": bgt_budgetdiscipline_foreign(v_checkauth),
"showtransit": true
},
"budgetproject": {
"dbs": "bgt_project_key",
@@ -51,15 +52,16 @@ function model_bgt_budget()
"required": true,
"insertonly": true,
"foreign": bgt_budgetproject_foreign(),
"emptyoption": null
"showtransit": true
},
"budgetcostcategory": {
"dbs": "bgt_kostenrubriek_key",
"label": L("bgt_kostenrubriek_oms"),
"typ": "key",
"required": false,
"required": true,
"insertonly": true,
"foreign": bgt_budgetcostcategory_foreign()
"foreign": bgt_budgetcostcategory_foreign(),
"showtransit": true
},
"costtypegroup": {
"dbs": "prs_kostensoortgrp_key",
@@ -68,6 +70,7 @@ function model_bgt_budget()
"required": false,
"insertonly": true,
"foreign": bgt_costtypegroup_foreign(),
"showtransit": true,
"LOVinit": "",
"filter": "exact"
},
@@ -77,11 +80,12 @@ function model_bgt_budget()
"typ": "key",
"required": false,
"insertonly": true,
"foreign": bgt_costtype_foreign()
"foreign": bgt_costtype_foreign(),
"showtransit": true
},
"amountoriginal": {
"dbs": "bgt_budget_bedrag_origineel",
"sql": "(BGT.getBudgetOpDatum(bgt_budget.bgt_budget_key, NULL))",
"sql": "(BGT.getBudgetOpDatum(bgt_budget.bgt_budget_key, 0, NULL))",
"label": L("bgt_budget_origineel"),
"typ": "float",
"iscurrency": true,
@@ -89,7 +93,7 @@ function model_bgt_budget()
},
"amountmutation": {
"dbs": "bgt_budget_bedrag_mutatie",
"sql": "(BGT.getBudgetMutaties(bgt_budget.bgt_budget_key, NULL, NULL))",
"sql": "(BGT.getBudgetMutaties(bgt_budget.bgt_budget_key, 0, NULL, NULL))",
"label": L("bgt_budget_mutaties"),
"typ": "float",
"iscurrency": true,
@@ -101,7 +105,7 @@ function model_bgt_budget()
"typ": "float",
"iscurrency": true,
"total": true,
"required": true
"defaultvalue": 0
},
"vat": {
"dbs": "bgt_budget_btwbedrag",
@@ -109,14 +113,33 @@ function model_bgt_budget()
"typ": "float",
"iscurrency": true,
"total": true,
"required": true
"defaultvalue": 0
},
"amountincl": {
"dbs": "bgt_budget_bedrag_incl",
"sql": "bgt_budget_bedrag + bgt_budget_btwbedrag",
"label": L("lcl_fin_total_sum"),
"typ": "float",
"readonly": true,
"sqlshow": true,
"iscurrency": true,
"total": true,
"defaultvalue": "0",
"clone": false
},
"contingency": {
"dbs": "bgt_budget_isreserve",
"label": L("bgt_budget_isreserve"),
"typ": "check0",
"defaultvalue": 0
},
"account": {
"dbs": "prs_kostenplaats_key",
"label": L("bgt_budget_account"),
"typ": "key",
"foreign": bgt_account_foreign(),
"emptyoption": null
},
"begin": {
"dbs": "bgt_budget_begin",
"label": L("bgt_budget_begin"),
@@ -139,16 +162,6 @@ function model_bgt_budget()
"desc": "prs_kostenplaatsgrp_oms"
},
"hidden_fld": true
},
"account": {
"dbs": "prs_kostenplaats_key",
"label": L("bgt_budget_account"),
"typ": "key",
"foreign": {
"tbl": "prs_kostenplaats",
"key": "prs_kostenplaats_key",
"desc": "prs_kostenplaats_nr"
}
}
};
@@ -166,13 +179,45 @@ function model_bgt_budget()
]
};
this.hook_pre_edit = function (obj, fld)
{
var btw_data = {};
if (obj.id > -1)
{
fld.amount.readonly = true;
fld.vat.readonly = true;
var sql = "SELECT s.prs_kostensoort_btw"
+ " , f.fin_btwtabelwaarde_perc"
+ " FROM bgt_budget b"
+ " , prs_kostensoort s"
+ " , fin_btwtabelwaarde f"
+ " WHERE s.fin_btwtabelwaarde_key = f.fin_btwtabelwaarde_key"
+ " AND b.prs_kostensoort_key = s.prs_kostensoort_key"
+ " AND b.bgt_budget_key = " + obj.id;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
btw_data.btw_inc = oRs("prs_kostensoort_btw").Value;
btw_data.btw_val = oRs("fin_btwtabelwaarde_perc").Value;
}
oRs.Close();
}
else
{
// Een nieuw budget heeft nog geen origineel- en mutatie-bedrag.
delete fld.amountoriginal;
delete fld.amountmutation;
}
%>
<script type="text/javascript">
var cur_mode = "budget_edit"; // Laat alleen de kostensoorten zien waaraan nog geen budget gekoppeld is.
var btw_data = <%=JSON.stringify(btw_data)%>;
<% if (obj.budgetdiscipline) { %> var budgetdiscipline = "<%=obj.budgetdiscipline.id%>"; <% } %>
<% if (obj.budgetproject) { %> var budgetproject = "<%=obj.budgetproject.id%>"; <% } %>
</script>
<%
}
this.hook_pre_post = function(params, obj)

View File

@@ -132,11 +132,22 @@ function model_bgt_budgetmutatie()
"typ": "float",
"iscurrency": true
},
"amounttoincl": {
"dbs": "bgt_budget_bedrag_naar_incl",
"sql": "bgt_budget_bedrag_naar + bgt_budget_btwbedrag_naar",
"label": L("lcl_fin_total_sum"),
"typ": "float",
"readonly": true,
"sqlshow": true,
"iscurrency": true,
"defaultvalue": "0"
},
"amountdifference": {
"dbs": "bgt_budget_bedrag_verschil",
"sql": "COALESCE(bgt_budget_bedrag_van, 0) + COALESCE(bgt_budget_bedrag_naar, 0)",
"label": L("bgt_budgetmutatie"),
"typ": "float",
"readonly": true,
"iscurrency": true,
"total": true
}
@@ -190,6 +201,7 @@ function model_bgt_budgetmutatie()
}
oRs.Close();
}
%>
<script type="text/javascript">
// Deze variabelen zijn nodig in bgt_budgetmutatie.js
@@ -207,14 +219,29 @@ function model_bgt_budgetmutatie()
if ((!jsondata.amountto || jsondata.amountto == 0) && (!jsondata.vatto || jsondata.vatto == 0))
abort_with_warning(L("bgt_budgetmutatie_err2").format(L("bgt_budgetmutatie_bedrag"), L("bgt_budgetmutatie_btwbedrag")));
jsondata.amountfrom = -1 * jsondata.amountto;
jsondata.vatfrom = -1 * jsondata.vatto;
}
this.hook_pre_put = function (params, jsondata, key)
{
if ((!jsondata.amountto || jsondata.amountto == 0) && (!jsondata.vatto || jsondata.vatto == 0))
abort_with_warning(L("bgt_budgetmutatie_err2").format(L("bgt_budgetmutatie_bedrag"), L("bgt_budgetmutatie_btwbedrag")));
jsondata.amountfrom = -1 * jsondata.amountto;
jsondata.vatfrom = -1 * jsondata.vatto;
}
var budget_key = getQParamInt("budgetcommon", -1);
var mutatie_key = getQParamInt("id", -1);
if (budget_key > -1)
{
var v_where = ( mutatie_key > -1
? "bgt_budgetmutatie_key = {0}".format(mutatie_key)
: "bgt_budget_key_van = {0} or bgt_budget_key_naar = {0}".format(budget_key)
);
this.REST_GET = generic_REST_GET(this, {
"GET": {
"wheres": ["bgt_budget_key_van = {0} or bgt_budget_key_naar = {0}".format(budget_key)]
"wheres": [v_where]
}
});
}

View File

@@ -18,7 +18,7 @@ model_bgt_disc_params =
"record_name": "budgetdisciplineparam",
"table": "bgt_disc_params",
"primary": "bgt_disc_params_key",
"autfunction": "WEB_BGTMAN",
"autfunction": "WEB_BGTMGT",
"fields": {
@@ -47,7 +47,8 @@ model_bgt_disc_params =
"startdate": {
"dbs": "bgt_disc_params_startdatum",
"label": L("bgt_discipline_startdatum"),
"typ": "date"
"typ": "date",
"autosize": true
}
}
}

View File

@@ -42,7 +42,7 @@ function _model_bgt_discipline()
this.audit = { "childtable": "bgt_disc_params" }, // Parameters voor fac_audit.
this.primary = "ins_discipline_key";
this.soft_delete = "ins_discipline_verwijder"; // ik wil er eigenlijk liever niet standaard op kunnen filteren
this.autfunction = "WEB_BGTMAN";
this.autfunction = "WEB_BGTMGT";
this.record_title = L("bgt_discipline");
this.records_title = L("bgt_discipline_m");
@@ -79,11 +79,12 @@ function _model_bgt_discipline()
"dbs": "ins_discipline_btw",
"label": L("bgt_discipline_btw"),
"typ": "check",
"default": "false"
"default": "false",
"hidden_fld": true
}
};
this.print = { xmlnode: "budget", where: "discipline"};
// this.print = { xmlnode: "budget", where: "discipline"};
/* Velden van BGT_DISC_PARAMS komen er dynamisch bij */
this.disc_params = {

View File

@@ -45,7 +45,8 @@ function model_bgt_kostenrubriek()
"key": "bgt_project_key",
"desc": "bgt_project_omschrijving",
"where": "bgt_project_verwijder IS NULL"
}
},
"showtransit": true
},
"name": {
"dbs": "bgt_kostenrubriek_oms",

View File

@@ -12,6 +12,7 @@
*/
%>
<!-- #include file="../api2/model_bgt_kostenrubriek.inc" -->
<!-- #include file="../bgt/bgt_tools.inc" -->
<%
function model_bgt_project()
@@ -48,7 +49,8 @@ function model_bgt_project()
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving",
"where": "ins_discipline_module = 'BGT' AND ins_discipline_verwijder IS NULL"
}
},
"showtransit": true
},
"name": {
"dbs": "bgt_project_omschrijving",
@@ -60,7 +62,8 @@ function model_bgt_project()
"code": {
"dbs": "bgt_project_code",
"label": L("bgt_project_code"),
"typ": "varchar"
"typ": "varchar",
"required": true
},
"sequence": {
"dbs": "bgt_project_volgnr",
@@ -71,11 +74,7 @@ function model_bgt_project()
"dbs": "prs_kostenplaats_key",
"label": L("bgt_budget_account"),
"typ": "key",
"foreign": {
"tbl": "prs_kostenplaats",
"key": "prs_kostenplaats_key",
"desc": "prs_kostenplaats_nr"
}
"foreign": bgt_account_foreign()
},
"pricedate": {
"dbs": "bgt_project_prijspeildatum",
@@ -94,7 +93,68 @@ function model_bgt_project()
}
};
this.print = { xmlnode: "budget", where: "project"};
//this.print = { xmlnode: "budget", where: "project"};
this.hook_pre_edit = function (obj, fld)
{
if (mode != "save")
{
var sql = "SELECT count(*)"
+ " FROM bgt_kostenrubriek"
+ " WHERE bgt_project_key = " + obj.id;
var oRs = Oracle.Execute(sql);
if (oRs(0) == 0) // Een nieuw project, of een project waaraan nog geen rubrieken zijn gekoppeld.
{ // Voeg de selectie voor het standaardproject toe.
fld["import"] = {
"dbs": "fac_usrtab.fac_usrtab_key",
"label": "Standaard projectdata",
"typ": "key",
"foreign": {
"tbl": "(SELECT d.fac_usrdata_key"
+ " , d.fac_usrdata_code"
+ " FROM fac_usrtab t"
+ " , fac_usrdata d"
+ " WHERE d.fac_usrtab_key = t.fac_usrtab_key"
+ " AND t.fac_usrtab_naam = 'project_import')",
"key": "fac_usrdata_key",
"desc": "fac_usrdata_code"
}
};
}
oRs.Close();
if (obj.id > 0)
{
fld["account"].foreign.tbl = bgt_account_foreign_tbl(obj.id);
}
else
{
fld["account"].hidden_fld = true;
}
}
}
this.hook_pre_post = function(params, obj)
{
// Controle op, en wijzigingen aan data voordat het record wordt toegevoegd.
}
this.hook_post_post = function(params, obj, key)
{
// Nadat het project-record is toegevoegd is de key hiervan bekend.
create_default_kostenplaatsgrp(key);
var data_key = getFParamInt("import", -1);
create_default_projectdata(key, data_key);
}
this.hook_pre_put = function(params, obj, key)
{
// Wordt alleen gebruikt bij wijzigen.
create_default_kostenplaatsgrp(key);
var data_key = getFParamInt("import", -1);
create_default_projectdata(key, data_key);
}
// if (!S("bgt_enabled"))
// {
@@ -106,5 +166,37 @@ function model_bgt_project()
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
function create_default_kostenplaatsgrp(key)
{
var sql_u = "SELECT count(*) aantal"
+ " FROM prs_kostenplaatsgrp"
+ " WHERE bgt_project_key = " + key;
var oRs_u = Oracle.Execute(sql_u);
if (oRs_u("aantal").Value == 0)
{
var sql = "SELECT d.bgt_disc_params_code"
+ " , p.bgt_project_code"
+ " FROM bgt_disc_params d"
+ " , bgt_project p"
+ " WHERE d.bgt_ins_discipline_key = p.ins_discipline_key"
+ " AND p.bgt_project_key = " + key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
var sql_i = "INSERT INTO prs_kostenplaatsgrp"
+ " (prs_kostenplaatsgrp_nr, prs_kostenplaatsgrp_oms, bgt_project_key)"
+ " VALUES"
+ " (" + safe.quoted_sql(oRs("bgt_disc_params_code").Value)
+ " ," + safe.quoted_sql(oRs("bgt_project_code").Value)
+ " ," + key
+ " )";
Oracle.Execute(sql_i);
}
oRs.Close();
}
oRs_u.Close();
}
}
%>

View File

@@ -14,7 +14,6 @@
%>
<!-- #include file="../Shared/discxalg3d.inc"-->
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="../mgt/mgt_tools.inc"-->
<!-- #include file="./model_alg_kenmerk.inc"-->
<%
function model_buildings()

View File

@@ -11,7 +11,6 @@
Notes:
*/
%>
<!-- #include file="../mgt/mgt_tools.inc" -->
<%
function model_cad_label()

View File

@@ -11,7 +11,6 @@
Notes: TODO: JGL: Ik ben er nog niet helemaal uit hoe de bitjes netjes op te lossen
*/
%>
<!-- #include file="../mgt/mgt_tools.inc" -->
<%
function model_cad_thema()

View File

@@ -4,13 +4,14 @@
File: model_cnt_kenmerk.inc
Description: Vanuit CodeCharge gegenereerd model voor cnt_kenmerk
Description: Model voor cnt_kenmerk
Context:
Notes:
*/
%>
<!-- #include file="model_cnt_srtkenmerk.inc"-->
<%
function model_cnt_kenmerk(params)
@@ -139,6 +140,11 @@ function model_cnt_kenmerk(params)
}
};
this.getPropertyType = function (kenmerkdata)
{
var typedata = api2.GET(new model_cnt_srtkenmerk({internal: params.internal}), kenmerkdata.contractpropertytype.id);
return typedata;
}
this.hook_pre_edit = function (obj, fld)
{

View File

@@ -13,14 +13,15 @@
%>
<%
function model_cnt_srtkenmerk()
function model_cnt_srtkenmerk(params)
{
params = params || {};
this.records_name = "contractpropertytypes";
this.record_name = "contractpropertytype";
this.table = "cnt_srtkenmerk";
this.primary = "cnt_srtkenmerk_key";
this.soft_delete = "cnt_srtkenmerk_verwijder";
this.autfunction = "WEB_CNTMGT";
this.autfunction = params.internal?false:"WEB_CNTMGT";
this.record_title = L("cnt_srtkenmerk");
this.records_title = L("cnt_srtkenmerk_m");

View File

@@ -13,7 +13,6 @@
%>
<!-- #include file="../prs/prs.inc" -->
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="../mgt/mgt_tools.inc"-->
<!-- #include file="./model_prs_kenmerk.inc"-->
<%

View File

@@ -46,6 +46,12 @@ model_ctr_disc_params =
"label": L("ctr_ismjob"),
"typ": "check0",
"readonly": S("mjb_enabled") != 1
},
"stdmelding": {
"dbs": "mld_stdmelding_key",
"label": L("mld_stdmelding_key"),
"typ": "key",
"foreign": "mld_stdmelding"
}
}
}

View File

@@ -0,0 +1,83 @@
<% /*
$Revision$
$Id$
File: model_ctr_scenario.inc
Description: Model voor scenario's
Context:
Notes:
*/
%>
<!-- #include file="../ins/ins.inc" -->
<%
function model_ctr_scenario()
{
this.records_name = "scenarios";
this.record_name = "scenario";
this.table = "ins_scenario";
this.primary = "ins_scenario_key";
this.autfunction = "WEB_CTRMGT";
this.record_title = L("ctr_scenario");
this.records_title = L("ctr_scenario_m");
this.fields = {
"id": {
"dbs": "ins_scenario_key",
"label": L("lcl_key"),
"typ": "key",
"required": true,
"filter": "exact",
"seq": "ins_s_ins_scenario_key"
},
"name": {
"dbs": "ins_scenario_omschrijving",
"label": L("ctr_scenario_omschrijving"),
"typ": "varchar",
"required": true,
"translate": true
},
"nrelements": {
"dbs": "nn_elements",
"sql": "(SELECT COUNT(*) FROM ins_srtcontroledl_xcp isx WHERE isx.ins_scenario_key = ins_scenario.ins_scenario_key)",
"label": L("ctr_scenario_aantal"),
"typ": "number"
},
"remark": {
"dbs": "ins_scenario_opmerking",
"label": L("ctr_scenario_opmerking"),
"typ": "varchar",
"translate": true
},
"created": {
"dbs": "ins_scenario_aanmaak",
"label": L("ctr_scenario_aanmaak"),
"typ": "date",
"readonly": true
},
"status": {
"dbs": "ins_scenario_status",
"label": L("ctr_scenario_status"),
"foreign": ins.getscenariostatustext,
"typ": "exact"
},
"person": {
"dbs": "prs_perslid_key",
"label": L("lcl_user"),
"typ": "key",
"foreign" : "prs_perslid",
readonly: true
}
};
this.REST_GET = generic_REST_GET(this, { GET: { wheres: [ "ins_scenario_key <> 1"] }});
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this, {});
}
%>

View File

@@ -21,14 +21,9 @@
<!-- #include file="../Shared/resultset_flex.inc"-->
<%
function model_custom_fields(formodel, flexModule, flexParams)
function model_custom_fields(formodel, flexModel, flexParams)
{
var flexModel = null; // alleen nog niet bij issues
if (typeof flexModule != "string")
{
flexModel = flexModule;
flexModule = flexModel.module;
}
var flexModule = flexModel.module;
flexParams = flexParams || {};
this.module = flexModule;
@@ -93,34 +88,42 @@ function model_custom_fields(formodel, flexModule, flexParams)
}
};
this.get_file_info = function (params, record, fileparams)
{
var flexparam = flexProps(flexModule, record.xflexparentkey,
String(record.propertyid), flexParams.pNiveau,
fileparams);
var attachments = [];
for (var f in flexparam.files)
{
var file = flexparam.files[f];
var attachment = { name: file.name,
date: file.date,
size: file.size,
content_url: file.deepurl,
token: file.token,
digest: file.digest };
switch (params.filter.fileencoding) // De enige twee encodings die we ondersteunen
{
case "base64":
attachment.content_base64 = file.data;
break;
case "hex":
attachment.content_hex = file.data;
break;
}
attachments.push(attachment);
};
return attachments;
}
// Deze functie wordt na de GET aangeroepen. De bijlagen zijn zo afwijkend
// dat ik dat niet fatsoenlijk in 'fields' verwerkt kreeg
this.post_get = function (params, record)
{
if (record.type == 'F' || record.type == 'M')
{
var flexparam = flexProps(flexModule, record.xflexparentkey, String(record.propertyid), flexParams.pNiveau,
{ getFiles: true, getFileEncoded: params.filter.fileencoding, api2name: formodel.records_name });
record.attachments = [];
for (var f in flexparam.files)
{
var file = flexparam.files[f];
var attachment = { name: file.name,
date: file.date,
size: file.size,
content_url: file.deepurl,
digest: file.digest };
switch (params.filter.fileencoding) // De enige twee encodings die we ondersteunen
{
case "base64":
attachment.content_base64 = file.data;
break;
case "hex":
attachment.content_hex = file.data;
break;
}
record.attachments.push(attachment);
};
var fileparams = { getFiles: true, getFileEncoded: params.filter.fileencoding, api2name: formodel.records_name };
record.attachments = this.get_file_info(params, record, fileparams);
}
delete record["xflexparentkey"]; // nu niet meer nodig
}
@@ -166,11 +169,24 @@ function model_custom_fields(formodel, flexModule, flexParams)
{ // Let op: parameter the_key is de kenmerk_key, niet een een kenmerkwaarde_key
// Merk op dat flexProps ook wel het type oplevert. Ik wil echter migreren naar modellen
var kenmerkdata = api2.GET(flexModel, jsondata.propertyid);
// TODO: if (!kenmerkdata) en rechtencontrole
var typ = kenmerkdata.attributetype.id;
if ("attributetype" in kenmerkdata)
{
var typ = kenmerkdata.attributetype.id;
}
else
{
var typedata = flexModel.getPropertyType(kenmerkdata); // getPropertyType moet gedefinieerd zijn
var typ = typedata.attributetype.id;
}
if (typ == 'F' || typ == 'M')
{
var flexparams = flexProps(this.module, parent_key, the_key, flexParams.pNiveau);
if (!(parent_key > 0))
var tmpfolder = safe.filename(shared.random(32));
var flexparams = flexProps(this.module, parent_key, the_key, flexParams.pNiveau, { tmpfolder: tmpfolder });
// TODO: bij type F zorgen dat er <20><>n file overblijft
for (var i = 0; i < jsondata.attachments.length; i++)
{
@@ -193,13 +209,12 @@ function model_custom_fields(formodel, flexModule, flexParams)
}
else
{
Response.Status = "422 Unprocessable Entity";
Response.End;
api2.error(422, L("lcl_shared_file_ext_not_allowed"));
}
}
}
if (typ != "M")
if (typ != "M" && parent_key > 0)
{
var sql = "BEGIN flx.setflex({0}".format(safe.quoted_sql(this.module))
+ " , {0}".format(the_key) // == jsondata.propertyid
@@ -207,14 +222,17 @@ function model_custom_fields(formodel, flexModule, flexParams)
+ " , {0}".format(safe.quoted_sql(flexParams.pNiveau))
+ " , {0});".format(safe.quoted_sql(jsondata.value))
+ "END;"
Oracle.Execute(sql);
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
api2.error(400, err.friendlyMsg);
}
return tmpfolder;
}
if (flexModel) // nog even niet voor MLD
this.REST_POST = function (params, jsondata, parent_key) /* add custom_field */
{ // Voor flexvelden is er geen verschil tusen 'toevoegen' en 'bijwerken'
this.REST_PUT(params, jsondata, jsondata.propertyid, parent_key);
return this.REST_PUT(params, jsondata, jsondata.propertyid, parent_key);
}
this.disabled_REST_DELETE = function (params, the_key) /* remove custom_field */

View File

@@ -57,13 +57,24 @@ function model_fac_groep(groep_key, params)
"label": L("lcl_prs_substitutes"),
"typ": "check0"
},
"externalid": {
"dbs": "fac_groep_externid",
"label": L("fac_groep_externid"),
"typ": "varchar"
},
"membercount": {
"dbs": "nn_leden",
"sql": "(SELECT COUNT(*) FROM fac_gebruikersgroep WHERE fac_groep.fac_groep_key = fac_gebruikersgroep.fac_groep_key)",
"label": L("fac_groep_nn_leden"),
"typ": "number"
},
"created": {
"dbs": "fac_groep_aanmaak",
"label": "Aanmaakdatum",
"typ": "datetime",
"readonly": true
}
}
};
this.includes = {
"users": {
@@ -103,7 +114,17 @@ function model_fac_groep(groep_key, params)
+ " WHERE fgr.fac_functie_key = ff.fac_functie_key"
+ " AND ff.fac_functie_code = 'WEB_FACTAB')");
}
this.REST_GET = generic_REST_GET(this, xparams);
// _groepen geven we nooit mee
this.REST_GET = function (params)
{
if ("filter" in params && params.filter.nointernal)
xparams.GET.wheres.push("SUBSTR(fac_groep_omschrijving, 0, 1) <> '_'");
// Verder met de default
return generic_REST_GET(this, xparams)(params)
}
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);

View File

@@ -47,10 +47,11 @@ model_fac_session = // Internal only
"label": L("fac_session_data"),
"typ": "varchar"
},
"creation": {
"created": {
"dbs": "fac_session_aanmaak",
"label": L("fac_session_aanmaak"),
"typ": "datetime"
"typ": "datetime",
"readonly": true
},
"expire": {
"dbs": "fac_session_expire",

View File

@@ -1,155 +0,0 @@
<% /*
$Revision$
$Id$
File: model_fac_sp.inc
Description:
Notes:
*/
%>
<!-- #include file="./model_fac_sp_map.inc" -->
<%
function model_fac_sp()
{
this.records_name = "identityproviders";
this.record_name = "identityprovider";
this.table = "fac_sp";
this.primary = "fac_sp_key";
this.autfunction = "WEB_FACFAC";
this.record_title = L("fac_sp");
this.records_title = L("fac_sp_m");
this.fields = {
"id": {
"dbs": "fac_sp_key",
"label": L("lcl_key"),
"typ": "key",
"seq": "fac_s_fac_sp_key"
},
"code": {
"dbs": "fac_sp_code",
"label": L("fac_sp_code"),
"typ": "varchar",
"filter": "exact"
},
"name": {
"dbs": "fac_sp_omschrijving",
"label": L("fac_sp_omschrijving"),
"typ": "varchar",
"required": true
},
"type": {
"dbs": "fac_sp_type",
"label": L("fac_sp_type"),
"typ": "key",
"required": true,
"LOV": L("fac_aut_typeLOV") // TODO?
},
"remark": {
"dbs": "fac_sp_opmerking",
"label": L("fac_sp_opmerking"),
"typ": "memo"
},
"secret": {
"dbs": "fac_sp_secret",
"label": L("fac_sp_secret"),
"typ": "varchar",
"defaultvalue": shared.random(32),
"secret": true
},
"audience": {
"dbs": "fac_sp_audience",
"label": L("fac_sp_audience"),
"typ": "varchar",
"placeholder": customerId + ".facilitor.nl"
},
"issuer": {
"dbs": "fac_sp_issuer",
"label": L("fac_sp_issuer"),
"typ": "varchar"
},
"algorithm": {
"dbs": "fac_sp_algorithm",
"label": L("fac_sp_algorithm"),
"typ": "varchar"
},
"timeout": {
"dbs": "fac_sp_clockskew",
"label": L("fac_sp_clockskew"),
"typ": "number",
"defaultvalue": 30
},
"duration": {
"dbs": "fac_sp_duration",
"label": L("fac_sp_duration"),
"typ": "number"
},
"remoteloginurl": {
"dbs": "fac_sp_remote_loginurl",
"label": L("fac_sp_remote_loginurl"),
"typ": "varchar"
},
"remotelogouturl": {
"dbs": "fac_sp_remote_logouturl",
"label": L("fac_sp_remote_logouturl"),
"typ": "varchar"
},
"ipfilter": {
"dbs": "fac_sp_ipfilter",
"label": L("fac_sp_ipfilter"),
"typ": "varchar"
},
"_currentIP" : {
"dbs": "",
"label": "Current IP",
"typ": "label",
"labelvalue": String(Request.ServerVariables("REMOTE_ADDR"))
},
"ipauto": {
"dbs": "fac_sp_ipauto",
"label": L("fac_sp_ipauto"),
"typ": "check0"
},
/*
"company": {
"dbs": "prs_bedrijf_key",
"typ": "key",
"foreign": "prs_bedrijf",
"label": L("lcl_idp_company")
}
,
"department": {
"dbs": "prs_afdeling_key",
"typ": "key",
"foreign": "prs_afdeling",
"label": L("lcl_idp_department")
},
"authorization": {
"dbs": "fac_functie_key",
"label": L("fac_sp_functie_key"),
"typ": "key",
"foreign": "fac_functie"
},
*/
"internal": {
"dbs": "fac_sp_internal",
"label": L("fac_sp_internal"),
"typ": "check0",
"readonly": true
}
}
this.includes =
{ "spmappings": { model: new model_fac_sp_map(),
joinfield: "serviceprovider",
enable_update: true
}
};
this.REST_GET = generic_REST_GET(this);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}
%>

View File

@@ -86,7 +86,8 @@ function model_fac_widget()
"dbs": "fac_widget_aanmaak",
"label": L("fac_widget_aanmaak"),
"typ": "date",
"hidden_fld": true
"hidden_fld": true,
"readonly": true
},
"authorization": {
"dbs": "fac_functie_key",

View File

@@ -40,49 +40,65 @@ function model_fin_factuur()
"typ": "key",
"required": true,
"foreign": bgt_budgetdiscipline_foreign(),
"emptyoption": null
"showtransit": true
},
"budgetproject": {
"dbs": "bgt_project.bgt_project_key",
"label": L("bgt_project_omschrijving"),
"typ": "key",
"foreign": bgt_budgetproject_foreign()
},
"budgetcostcategory": {
"dbs": "bgt_kostenrubriek.bgt_kostenrubriek_key",
"label": L("bgt_kostenrubriek_oms"),
"typ": "key",
"foreign": bgt_budgetcostcategory_foreign()
},
"costtypegroup": {
"dbs": "prs_kostensoortgrp.prs_kostensoortgrp_key",
"label": L("prs_kostensoortgrp_key"),
"typ": "key",
"foreign": bgt_costtypegroup_foreign()
"foreign": bgt_budgetproject_foreign(),
"showtransit": true
},
"costtype": {
"dbs": "prs_kostensoort_key",
"label": L("prs_kostensoort_key"),
"typ": "key",
"foreign": bgt_costtype_foreign(),
"hidden_fld": true
"required": false
},
"company": {
"dbs": "mld_opdr.mld_uitvoerende_keys",
"label": L("lcl_ord_company"),
"typ": "key",
"foreign": bgt_company_foreign(),
"showtransit": true
},
"order": {
"dbs": "mld_opdr_key",
"label": L("lcl_fin_mld_opdr"),
"typ": "key",
"required": true,
"foreign": {
"tbl": "mld_opdr",
"key": "mld_opdr_key",
"desc": "mld_opdr_omschrijving"
},
"foreign": bgt_order_foreign(),
"showtransit": true,
"clone": false
},
"additional": {
"dbs": "mld_opdr.mld_opdr_meerwerk",
"label": L("lcl_mld_opdr_meerwerk"),
"typ": "check0",
"defaultvalue": 0,
"filter": "exact",
"multiedit": true
},
"ordernr_sort": {
"dbs": "mld_opdr_ordernr_int",
"label": L("bgt_opdr_ordernr"),
"sql": "fac.safe_to_number(mld_opdr.mld_opdr_ordernr)",
"typ": "number",
"readonly": true
},
"ordernr": {
"dbs": "mld_opdr.mld_opdr_ordernr",
"label": L("bgt_opdr_ordernr"),
"typ": "varchar"
"typ": "varchar",
"hidden_fld": true
},
"account": {
"dbs": "mld_opdr.prs_kostenplaats_key",
"label": L("bgt_budget_account"),
"typ": "key",
"foreign": bgt_account_foreign(),
"readonly": true
},
"invoice": {
"dbs": "fin_factuur_nr",
@@ -106,7 +122,14 @@ function model_fin_factuur()
"dbs": "fin_factuur_advies",
"label": L("lcl_fin_adviesdatum"),
"typ": "date",
"defaultvalue": new Date()
"defaultvalue": new Date(),
"multiedit": true
},
"isprinted": {
"dbs": "fin_factuur_bron",
"label": "Geprint",
"typ": "check0",
"multiedit": true
},
"month": {
"dbs": "fin_factuur_boekmaand",
@@ -118,24 +141,24 @@ function model_fin_factuur()
"label": L("lcl_fin_fin_status"),
"typ": "key",
"foreign": bgt_invoicestatus_foreign(),
"defaultvalue": "2",
"clone": false // Krijgt nu de default waarde.
"defaultvalue": "6",
"clone": false, // Krijgt nu de default waarde.
"multiedit": true
},
"total": {
"dbs": "fin_factuur_totaal",
"label": L("lcl_fin_CO_sum"),
"typ": "float",
"iscurrency": true,
"total": true,
"defaultvalue": "0"
"total": true
},
"totalvat": {
"dbs": "fin_factuur_totaal_btw",
"label": L("lcl_fin_btwsum"),
"typ": "float",
"defaultvalue": 0,
"iscurrency": true,
"total": true,
"defaultvalue": "0",
"clone": false
},
"totalincl": {
@@ -143,6 +166,8 @@ function model_fin_factuur()
"sql": "fin_factuur_totaal + fin_factuur_totaal_btw",
"label": L("lcl_fin_total_sum"),
"typ": "float",
"readonly": true,
"sqlshow": true,
"iscurrency": true,
"total": true,
"defaultvalue": "0",
@@ -162,19 +187,114 @@ function model_fin_factuur()
]
};
this.hook_pre_edit = function(obj, fld)
{
// Bij klonen: id=-1, invoice=niet leeg. Dan een (volgende) volgnummer erachter zetten.
if (obj.invoice)
var btw_data = {};
if (obj.id > -1)
{
var sql = "SELECT s.prs_kostensoort_btw"
+ " , f.fin_btwtabelwaarde_perc"
+ " FROM fin_factuur f"
+ " , prs_kostensoort s"
+ " , fin_btwtabelwaarde f"
+ " WHERE s.fin_btwtabelwaarde_key = f.fin_btwtabelwaarde_key"
+ " AND f.prs_kostensoort_key = s.prs_kostensoort_key"
+ " AND f.fin_factuur_key = " + obj.id;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
btw_data.btw_inc = oRs("prs_kostensoort_btw").Value;
btw_data.btw_val = oRs("fin_btwtabelwaarde_perc").Value;
}
oRs.Close();
}
%>
<script type="text/javascript">
var btw_data = <%=JSON.stringify(btw_data)%>;
</script>
<%
if (!obj.id && obj.invoice)
{
// Bij klonen: id=(bestaat niet), invoice=niet leeg. Dan een (volgende) volgnummer erachter zetten.
var invoice = obj.invoice;
var cur_inv = (invoice.indexOf("/") > -1 ? invoice.substring(0,invoice.indexOf("/")-1) : invoice);
var cur_seq = (invoice.indexOf("/") > -1 ? invoice.substring(invoice.indexOf("/")+1) : 0);
cur_seq = (cur_seq ? cur_seq : 0);
cur_seq = parseInt(cur_seq ? cur_seq : 0);
var sql = "SELECT MAX(CASE WHEN INSTR(f.fin_factuur_nr, '/') > 0"
+ " THEN TO_NUMBER(SUBSTR(f.fin_factuur_nr, INSTR(f.fin_factuur_nr, '/')+1))"
+ " ELSE 0"
+ " END) max_seq"
+ " FROM bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " , mld_opdr o"
+ " , fin_factuur f"
+ " WHERE r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
+ " AND o.mld_opdr_key = f.mld_opdr_key"
+ " AND r.bgt_project_key = " + obj.budgetproject.id
+ " AND f.fin_factuur_nr LIKE " + safe.quoted_sql(cur_inv + "%");
var oRs = Oracle.Execute(sql);
cur_seq = oRs("max_seq").Value;
oRs.Close();
var new_inv = cur_inv + "/" + (cur_seq + 1);
obj.invoice = new_inv;
}
else
{
var mld_opdr_key = getQParamInt("opdrachtcommon", -1);
if (obj.id == -1 && mld_opdr_key > -1)
{ // Nieuwe factuur bij bekende opdracht.
var sql = "SELECT p.ins_discipline_key"
+ " , p.bgt_project_key"
+ " , o.mld_uitvoerende_keys"
+ " , s.prs_kostensoort_key"
+ " , s.prs_kostensoort_oms"
+ " FROM mld_opdr o"
+ " , prs_kostensoort s"
+ " , prs_kostensoortgrp g"
+ " , bgt_kostenrubriek r"
+ " , bgt_project p"
+ " WHERE p.bgt_project_key = r.bgt_project_key"
+ " AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
+ " AND o.mld_opdr_key = " + mld_opdr_key;
var oRs = Oracle.Execute(sql);
var v_order = mld_opdr_key;
var v_discipline = oRs("ins_discipline_key").Value;
var v_project = oRs("bgt_project_key").Value;
var v_soort = oRs("prs_kostensoort_key").Value;
var v_srtoms = oRs("prs_kostensoort_oms").Value;
var v_company = oRs("mld_uitvoerende_keys").Value;
oRs.Close();
// Er is geen QParam voor costtype gezet, dus deze zelf vullen.
obj.costtype = {id: v_soort, name: v_srtoms};
}
else
{
var v_order = null;
var v_discipline = (obj.budgetdiscipline ? obj.budgetdiscipline.id : null);
var v_project = (obj.budgetproject ? obj.budgetproject.id : null);
var v_soort = (obj.costtype ? obj.costtype.id : null);
var v_company = (obj.company ? obj.company.id : null);
}
%>
<script type="text/javascript">
var cur_mode = "<%=mode%>"; // = "edit"
<% if (v_order) { %> var mldopdracht = "<%=v_order%>"; <% } %>
<% if (v_discipline) { %> var budgetdiscipline = "<%=v_discipline%>"; <% } %>
<% if (v_project) { %> var budgetproject = "<%=v_project%>"; <% } %>
<% if (v_soort) { %> var costtype = "<%=v_soort%>"; <% } %>
<% if (v_company) { %> var company = "<%=v_company%>"; <% } %>
</script>
<%
}
// De opdracht moet wel gewijzigd kunnen worden bij het klonen.
if (!obj.id)
fld.order.readonly = false;
@@ -182,11 +302,53 @@ function model_fin_factuur()
this.hook_pre_post = function(params, obj)
{
// Wordt alleen gebruikt bij toevoegen.
// Bij toevoegen van een factuur moet prs_kostensoort_key nog gevuld worden.
// Gebruik daarvoor die van mld_opdr.
setKostensoort(obj);
// Is het factuurnummer/volgnummer uniek binnen het project?
checkUniekFactuurnummer(-1, obj.budgetproject, obj.invoice);
}
this.hook_pre_put = function(params, obj, key)
{ //wijzigen factuur: bepaal ook opnieuw de som van de factuurregels.
{
// Bij wijzigen van factuur moet prs_kostensoort_key nog gevuld worden.
// Gebruik daarvoor die van mld_opdr.
setKostensoort(obj);
// Is de combinatie factuurnummer/volgnummer nog steeds uniek?
checkUniekFactuurnummer(key, obj.budgetproject, obj.invoice);
}
function setKostensoort(obj)
{
var sql = "SELECT o.prs_kostensoort_key"
+ " FROM mld_opdr o"
+ " WHERE mld_opdr_key = " + obj.order;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
obj.costtype = (!oRs.eof ? oRs("prs_kostensoort_key").Value : NULL);
oRs.Close();
}
function checkUniekFactuurnummer(p_factuur_key, p_project_key, p_factuurnr)
{
var sql = "SELECT count(*) aantal"
+ " FROM bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " , mld_opdr o"
+ " , fin_factuur f"
+ " WHERE r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
+ " AND o.mld_opdr_key = f.mld_opdr_key"
+ " AND r.bgt_project_key = " + p_project_key
+ " AND f.fin_factuur_nr = " + safe.quoted_sql(p_factuurnr)
+ (p_factuur_key != -1 ? " AND f.fin_factuur_key <> " + p_factuur_key : "");
var oRs = Oracle.Execute(sql);
var uniek_factuurnr = (oRs("aantal").Value == 0);
oRs.Close();
if (!uniek_factuurnr)
abort_with_warning("Factuurnummer {0} bestaat al in dit project.".format(p_factuurnr));
}
@@ -209,10 +371,10 @@ function model_fin_factuur()
"mld_opdr"
],
wheres: [
"fin_factuur.prs_kostensoort_key = prs_kostensoort.prs_kostensoort_key",
"prs_kostensoort.prs_kostensoortgrp_key = prs_kostensoortgrp.prs_kostensoortgrp_key",
"prs_kostensoortgrp.bgt_kostenrubriek_key = bgt_kostenrubriek.bgt_kostenrubriek_key",
"bgt_kostenrubriek.bgt_project_key = bgt_project.bgt_project_key",
"mld_opdr.prs_kostensoort_key = prs_kostensoort.prs_kostensoort_key",
"mld_opdr.mld_opdr_key = fin_factuur.mld_opdr_key"
]
}

View File

@@ -36,7 +36,7 @@ function model_fin_verkoopfactuurregels()
"filter": "exact",
"seq": "fin_s_fin_verkoopfactuur_key"
},
"creation": {
"created": {
"dbs": "fin_verkoopfactuur_aanmaak",
"label": L("lcl_fin_verkoopfactuur_aanmaak"),
"typ": "datetime",

View File

@@ -177,6 +177,8 @@ function model_generic(table, autfunction)
case "CHAR":
case "VARCHAR2":
field.typ = 'varchar';
if (ora_length > 50)
field.typ = 'memo';
break;
case "MLD_T_UITVOERTIJD":
field.typ = 'varchar';

View File

@@ -11,7 +11,6 @@
Notes:
*/
%>
<!-- #include file="../mgt/mgt_tools.inc" -->
<%
function model_ins_controlemode()

View File

@@ -0,0 +1,60 @@
<% /*
$Revision$
$Id$
File: model_ins_deel_state_history.inc
Description: State history model.
Parameters:
Context:
Notes: Altijd readonly.
Je moet WEB_INSUSE op de discipline hebben, er is (nog) geen 3D controle
Verondersteld wordt dat je in de praktijk altijd filtert op
bijvoorbeeld &start_statedate=2018-01-01T00:00:00Z
*/
%>
<%
function model_ins_deel_state_history(params)
{
params = params || {};
this.table = "ins_deel_state_history";
this.primary = "ins_deel_state_history_key";
this.records_name = "statehistory";
this.record_name = "statehistory";
this.autfunction = false; // Authorisatie alleen via ins_deel.ins_discipline_key
params.authparams = user.checkAutorisation("WEB_INSUSE");
this.fields = { "id" : { dbs: "ins_deel_state_history_key", typ: "key" },
"object" : { dbs: "ins_deel_key", typ: "key", foreign: "ins_deel" },
"state" : { dbs: "ins_deel_state", typ: "varchar" },
"statedate": { dbs: "ins_deel_statedate", typ: "datetime" },
"remark" : {
"dbs": "ins_deel_state_history_opmerk",
"typ": "memo"
}
};
var gparams = {
GET: {
tables: [
"ins_deel"
],
wheres: [
"ins_deel_state_history.ins_deel_key = ins_deel.ins_deel_key",
"ins_deel.ins_discipline_key IN"
+ " (SELECT ins_discipline_key"
+ " FROM fac_v_webgebruiker"
+ " WHERE fac_functie_key = " + params.authparams.autfunctionkey
+ " AND prs_perslid_key = " + user_key
+ " AND fac_gebruiker_prs_level_read < 9"
+ " AND fac_gebruiker_alg_level_read < 9)"
]
}
};
this.REST_GET = generic_REST_GET(this, gparams);
// updaten doe je door ins_deel.ins_deel_state te wijzigen
}
%>

View File

@@ -0,0 +1,40 @@
<% /*
$Revision$
$Id$
File: model_ins_deelsrtcontrole.inc
Description: Inspectie model.
Parameters:
Context:
Notes: Extreem rudimentair, uitsluitend om flexkenmerken (bijlagen) te kunnen opslaan
*/
%>
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="./model_ins_kenmerk.inc"-->
<%
function model_ins_deelsrtcontrole()
{
this.table = "ins_deelsrtcontrole";
this.primary = "ins_deelsrtcontrole_key";
this.records_name = "objects";
this.record_name = "object";
this.autfunction = false; // TODO?
this.fields = { "id" : { dbs: "ins_deelsrtcontrole_key", typ: "key" },
"object" : { dbs: "ins_deel_key", typ: "key", foreign: "ins_deel" }
};
this.includes = { "custom_fields" : {
"model": new model_custom_fields(this, new model_ins_kenmerk("C", { internal: true }), { readman: true, readuse: true }),
"joinfield": "flexparentkey",
"enable_update": true
}
},
this.REST_GET = generic_REST_GET(this);
this.REST_PUT = generic_REST_PUT(this);
}
%>

View File

@@ -12,6 +12,7 @@
Notes:
*/
%>
<!-- #include file="model_ins_srtkenmerk.inc"-->
<%
function model_ins_kenmerk(niveau, params)
@@ -181,6 +182,11 @@ function model_ins_kenmerk(niveau, params)
}
};
this.getPropertyType = function (kenmerkdata)
{
var typedata = api2.GET(new model_ins_srtkenmerk({internal: params.internal}), kenmerkdata.objectpropertytype.id);
return typedata;
}
this.list = {
"columns": ["id",

View File

@@ -12,7 +12,6 @@
*/
%>
<!-- #include file="./model_ins_kenmerk.inc"-->
<!-- #include file="../mgt/mgt_tools.inc" -->
<!-- #include file="./model_ctr_discipline.inc" -->
<%
function model_ins_srtcontrole()
@@ -24,29 +23,34 @@ function model_ins_srtcontrole()
this.autfunction = "WEB_INSMGT";
this.record_title = L("ins_srtcontrole");
this.records_title = L("ins_srtcontrole_m");
this.trackcode = "CTRSUP";
this.fields = {
"id": {
"dbs": "ins_srtcontrole_key",
"label": L("lcl_key"),
"typ": "key",
"infoPointer": { Url: "appl/shared/status_info.asp?urole=bo&inssc_key=", Title: L("lcl_key") + " " },
"required": true,
"filter": "exact",
"seq": "ins_s_ins_srtcontrole_key"
"seq": "ins_s_ins_srtcontrole_key",
"track": true
},
"level": {
"dbs": "ins_srtcontrole_niveau",
"label": L("ins_srtcontrole_niveau"),
"typ": "varchar",
"hidden_fld": true,
"LOV": fill_niveau_LOV()
"LOV": fill_niveau_LOV(),
"track": true,
"insertonly": true
},
"objectkey": {
"dbs": "ins_srtinstallatie_key",
"label": L("lcl_ins_object"),
"typ": "key",
"hidden_fld": true
"hidden_fld": true,
"insertonly": true
},
"objectdiscipline": {
"dbs": "ins_v_allsrtinstallatie.ins_discipline_key",
@@ -56,7 +60,8 @@ function model_ins_srtcontrole()
"foreign": { "tbl": "ins_v_aanwezigdiscipline",
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving"
}
},
"insertonly": true
},
"objectgroup": {
"dbs": "ins_v_allsrtinstallatie.ins_srtgroep_key",
@@ -65,7 +70,8 @@ function model_ins_srtcontrole()
"foreign": { "tbl": "ins_srtgroep",
"key": "ins_srtgroep_key",
"desc": "ins_srtgroep_omschrijving"
}
},
"insertonly": true
},
"objecttype": {
"dbs": "ins_v_allsrtinstallatie.ins_srtdeel_key",
@@ -74,20 +80,23 @@ function model_ins_srtcontrole()
"foreign": { "tbl": "ins_srtdeel",
"key": "ins_srtdeel_key",
"desc": "ins_srtdeel_omschrijving"
}
},
"insertonly": true
},
"name": {
"dbs": "ins_srtcontrole_omschrijving",
"label": L("ins_srtcontrole_omschrijving"),
"typ": "varchar",
"required": true,
"translate": true
"translate": true,
"track": true
},
"info": {
"dbs": "ins_srtcontrole_info",
"label": L("ins_srtcontrole_info"),
"typ": "memo",
"translate": true
"translate": true,
"track": true
},
"taskdiscipline": {
"dbs": "ctr_discipline_key",
@@ -97,46 +106,55 @@ function model_ins_srtcontrole()
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving"
},
"required": true
"required": true,
"track": true
},
"inspectionmode": {
"dbs": "ins_srtcontrole_mode",
"label": L("ins_srtcontrole_mode"),
"typ": "key",
"typ": "number",
"required": true,
"LOV": L("ins_srtcontrole_modeLOV")
"LOV": L("ins_srtcontrole_modeLOV"),
"track": true
},
"priority": {
"dbs": "ins_srtcontrole_level",
"label": L("ins_srtcontrole_level"),
"typ": "number",
"defaultvalue": 10,
"required": true
"required": true,
"multiedit": true,
"track": true
},
"period": {
"dbs": "ins_srtcontrole_periode",
"label": L("ins_srtcontrole_periode"),
"typ": "float",
"required": true
"required": true,
"multiedit": true,
"track": true
},
"unit": {
"dbs": "ins_srtcontrole_eenheid",
"label": L("ins_srtcontrole_eenheid"),
"typ": "key",
"typ": "number",
"required": true,
"LOV": L("ins_srtcontrole_eenheidLOV")
"LOV": L("ins_srtcontrole_eenheidLOV"),
"track": true
},
"bits": {
"dbs": "ins_srtcontrole_bits",
"label": L("ins_srtcontrole_bits"),
"typ": "number",
"hidden_fld": true
"hidden_fld": true,
"track": true
},
"_moment": {
"dbs": "",
"label": L("ins_srtcontrole_moment"),
"typ": "button",
"defaultvalue": L("lcl_select")
"defaultvalue": L("lcl_select"),
"track": true
},
"account": {
"dbs": "prs_kostenplaats_key",
@@ -144,56 +162,73 @@ function model_ins_srtcontrole()
"typ": "key",
"foreign": "prs_kostenplaats",
"foreignfiltercode": "A", // Alle kostenplaatsen tonen.
"filter": "exact"
"filter": "exact",
"track": true
},
"costs": {
"dbs": "ins_srtcontrole_kosten",
"label": L("ins_srtcontrole_kosten"),
"iscurrency": true,
"typ": "float"
"typ": "float",
"multiedit": true,
"track": true
},
"costs2": {
"dbs": "ins_srtcontrole_kosten2",
"label": L("ins_srtcontrole_kosten2"),
"iscurrency": true,
"typ": "float"
"typ": "float",
"multiedit": true,
"track": true
},
"costs3": {
"dbs": "ins_srtcontrole_kosten3",
"label": L("ins_srtcontrole_kosten3"),
"iscurrency": true,
"typ": "float"
"typ": "float",
"multiedit": true,
"track": true
},
"material": {
"dbs": "ins_srtcontrole_materiaal",
"label": L("ins_srtcontrole_materiaal"),
"iscurrency": true,
"typ": "float"
"typ": "float",
"multiedit": true,
"track": true
},
"hours": {
"dbs": "ins_srtcontrole_uren",
"label": L("ins_srtcontrole_uren"),
"typ": "float"
"typ": "float",
"multiedit": true,
"track": true
},
"enddate": {
"dbs": "ins_srtcontrole_eind",
"label": L("ins_srtcontrole_eind"),
"typ": "date"
"typ": "date",
"multiedit": true,
"track": true
},
"phasingouttime": {
"dbs": "ins_srtcontrole_afbouwtijd",
"label": L("ins_srtcontrole_afbouwtijd"),
"typ": "float"
"typ": "float",
"multiedit": true,
"track": true
},
"taskgroup": {
"dbs": "ins_srtcontrole_groep",
"label": L("ins_srtcontrole_groep"),
"typ": "varchar"
"typ": "varchar",
"track": true
},
"percentage": {
"dbs": "ins_srtcontrole_percentage",
"label": L("ins_srtcontrole_percentage"),
"typ": "float"
"typ": "float",
"track": true
},
"vat": {
"dbs": "fin_btwtabelwaarde_key",
@@ -206,7 +241,14 @@ function model_ins_srtcontrole()
+ " FROM fin_btwtabelwaarde"
+ " WHERE fin_btwtabelwaarde_key = " + S("fin_btw_default")
+ ")"
}
},
"track": true
},
"issuetype": {
"dbs": "mld_stdmelding_key",
"label": L("mld_stdmelding_key"),
"typ": "key",
"foreign": "mld_stdmelding"
},
"options": {
"dbs": "ins_srtcontrole_options",
@@ -245,12 +287,14 @@ function model_ins_srtcontrole()
}
]
}
]
],
"track": true
},
"remark": {
"dbs": "ins_srtcontrole_opmerking",
"label": L("ins_srtcontrole_opmerking"),
"typ": "memo"
"typ": "memo",
"track": true
}
};

View File

@@ -13,14 +13,15 @@
%>
<%
function model_ins_srtkenmerk()
function model_ins_srtkenmerk(params)
{
params = params || {};
this.records_name = "objectpropertytypes";
this.record_name = "objectpropertytype";
this.table = "ins_srtkenmerk";
this.primary = "ins_srtkenmerk_key";
this.soft_delete = "ins_srtkenmerk_verwijder";
this.autfunction = "WEB_INSMGT";
this.autfunction = params.internal?false:"WEB_INSMGT";
this.record_title = L("ins_srtkenmerk");
this.records_title = L("ins_srtkenmerk_m");

View File

@@ -25,7 +25,6 @@
<!-- #include file="./model_invoicelines.inc"-->
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="./model_fac_tracking.inc"-->
<!-- #include file="../mgt/mgt_tools.inc"-->
<!-- #include file="./model_fin_kenmerk.inc"-->
<%

View File

@@ -22,7 +22,6 @@
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="./model_fac_tracking.inc"-->
<!-- #include file="./model_mld_kenmerk.inc"-->
<!-- #include file="../mgt/mgt_tools.inc"-->
<%
function fnextendedStatus (oRs, field, model)
@@ -61,6 +60,10 @@ function model_issues(mld_key, params)
"terrain" : { dbs: "alg_v_allonroerendgoed.alg_terreinsector_key", typ: "key", foreign: "alg_terreinsector", label: L("lcl_room"), track: true, filter: "exact" },
"parent" : { dbs: "mld_melding_parentkey", typ: "key", xforeign: "mld_melding", label: L("lcl_mld_completion_in"), track: true, filter: "exact" },
"extern_id" : { dbs: "mld_melding_externnr", typ: "varchar", label: L("lcl_mld_externr"), track: true, filter: "exact" },
"kto_key" : { dbs: "mld_melding_kto_key", typ: "key", label: L("lcl_mld_linktoparent"), track: true, filter: "exact" },
"kto_type" : { dbs: "mld_melding_kto_type", typ: "varchar", label: L("lcl_mld_kto"), track: true, filter: "exact" },
"kto" : { dbs: "mld_melding_kto", typ: "number", label: L("lcl_mld_kto_invite"), track: true, filter: "exact" },
"priority" : { dbs: "mld_melding_spoed", typ: "key", label: L("lcl_mld_urg"), track: true, filter: "exact" },
"xstatus" : { dbs: "mld_melding_status",
val: fnextendedStatus, typ: "key", foreign: mld.getmldstatustext, label: L("lcl_extended_status"), track: true, filter: "exact", readonly: true }
};
@@ -68,9 +71,10 @@ function model_issues(mld_key, params)
this.list = { columns: ["id", "name", "requestor", "description"] };
this.includes =
{ "custom_fields": { model: new model_custom_fields(this, "MLD" /*new model_mld_kenmerk() is alleen voor opdrachten*/,
{ "custom_fields": { model: new model_custom_fields(this, new model_mld_kenmerk('M', { internal: true }),
{ pNiveau: "M", readman: true, readuse: true }),
joinfield: "flexparentkey"
joinfield: "flexparentkey",
"enable_update": true
},
"tracking": {
model: new model_tracking(['melding']),
@@ -235,7 +239,7 @@ function model_issues(mld_key, params)
// Startdatum is vandaag: starttijd is huidige tijd.
// Startdatum is niet vandaag: starttijd is begin werkdag.
var startdate_is_today = (startdate.midnight().getTime() == sysdate.midnight().getTime());
startdate = (startdate_is_today? sysdate : startdatebegin);
params.data.startdate = (startdate_is_today? sysdate : startdatebegin);
}
else
{ // Bestaande melding
@@ -256,11 +260,11 @@ function model_issues(mld_key, params)
oRs_1.Close();
var startdatum_is_registratiedatum = (startdate.midnight().getTime() == registratiedatum.midnight().getTime());
startdate = (startdatum_is_registratiedatum? registratiedatum : startdatebegin);
params.data.startdate = (startdatum_is_registratiedatum? registratiedatum : startdatebegin);
}
else
{ // else startdatum niet aanpassen.
startdate = oldstartdate;
params.data.startdate = oldstartdate;
}
oRs.Close();
}
@@ -269,7 +273,7 @@ function model_issues(mld_key, params)
{ // Situatie 2: Einddatum = COALESCE(huidige waarde, sysdate) + SLA
if (params.isNew)
{
startdate = new Date();
params.data.startdate = new Date();
}
else
{
@@ -297,6 +301,7 @@ function model_issues(mld_key, params)
alg_onroerendgoed_keys = gebouwkey;
}
params.data.alg_onroerendgoed_keys = alg_onroerendgoed_keys;
return params;
};
function _analyze_fields (dbfields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
@@ -385,30 +390,41 @@ function model_issues(mld_key, params)
var this_mld = mld.func_enabled_melding(mld_key);
user.auth_required_or_abort(this_mld.canChange); // Geen wijzigingen toestaan bij onvoldoende rechten.
_pre_analyze_fields(params, jsondata);
// Verwijder voor PUT wat niet gewijzigd mag worden.
delete jsondata.name;
delete jsondata.contact;
delete jsondata.requestor;
delete jsondata.issuetype;
delete jsondata.location;
var dbfields = api2.update_fields(params, this, jsondata); // Build updater
_analyze_fields(dbfields, params, jsondata);
_validate_fields(dbfields, params, jsondata);
if (params.custom_fields_only)
{
var mldUpd = { trackarray: [] };
}
else
{
params = _pre_analyze_fields(params, jsondata);
// Verwijder voor PUT wat niet gewijzigd mag worden.
delete jsondata.name;
delete jsondata.contact;
delete jsondata.requestor;
delete jsondata.issuetype;
delete jsondata.location;
var wheres = [" mld_melding_key = " + mld_key];
var mldUpd = buildTrackingUpdate("mld_melding", wheres.join(" AND " ), dbfields, { noValidateToken: true });
var dbfields = api2.update_fields(params, this, jsondata); // Build updater
_analyze_fields(dbfields, params, jsondata);
_validate_fields(dbfields, params, jsondata);
var err = Oracle.Execute(mldUpd.sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
var wheres = [" mld_melding_key = " + mld_key];
var mldUpd = buildTrackingUpdate("mld_melding", wheres.join(" AND " ), dbfields, { noValidateToken: true });
var err = Oracle.Execute(mldUpd.sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
}
var mldtrack = api2.process_includes(params, this, jsondata, mld_key);
shared.trackaction("MLDUPD",
mld_key,
L("lcl_mld_is_mldupdtrack").format(mld_key) + (mldUpd.trackarray.length > 0? "\n" : "") + mldUpd.trackarray.join("\n"));
if (mldUpd.trackarray.length)
{
shared.trackaction("MLDUPD",
mld_key,
L("lcl_mld_is_mldupdtrack").format(mld_key) + (mldUpd.trackarray.length > 0? "\n" : "") + mldUpd.trackarray.join("\n"));
}
if (jsondata.status > 0)
mld.setmeldingstatus(mld_key, jsondata.status, "");
@@ -440,6 +456,10 @@ function model_issues(mld_key, params)
api2.error(500, "Account could not be validated");
}
jsondata.account = kpkey;
if (!jsondata.issuedate)
jsondata.issuedate = new Date();
if (!jsondata.priority)
jsondata.priority = 3;
//
if (!jsondata.contact) jsondata.contact = user_key; // Als er geen aanvrager opgegeven is, dan de huidige gebruiker invullen.
@@ -450,7 +470,7 @@ function model_issues(mld_key, params)
}
params.isNew = true;
_pre_analyze_fields(params, jsondata);
params = _pre_analyze_fields(params, jsondata);
var this_mld = mld.func_enabled_mld(stdm_info.ins_discipline_key, "D");
user.auth_required_or_abort(this_mld.canFEwrite || this_mld.canFOwrite);
@@ -459,16 +479,18 @@ function model_issues(mld_key, params)
_analyze_fields(dbfields, params, jsondata);
_validate_fields(dbfields, params, jsondata);
dbfields["alg"] = { dbs: "mld_alg_onroerendgoed_keys", typ: "key", val: (params.data.alg_onroerendgoed_keys==-1 ? null : params.data.alg_onroerendgoed_keys) };
dbfields["origin"] = { dbs: "mld_meldbron_key", typ: "key", val: S("mld_meldbron_key") };
dbfields["module"] = { dbs: "mld_melding_module", typ: "varchar", val: "MLD" };
dbfields["issue"] = { dbs: "mld_melding_key", typ: "key", seq: "mld_s_mld_melding_key" };
dbfields["alg"] = { dbs: "mld_alg_onroerendgoed_keys", typ: "datetime", val: params.data.alg_onroerendgoed_keys == -1 ? null : params.data.alg_onroerendgoed_keys };
dbfields["origin"] = { dbs: "mld_meldbron_key", typ: "key", val: jsondata.meldbron? jsondata.meldbron : S("mld_meldbron_key") };
dbfields["module"] = { dbs: "mld_melding_module", typ: "varchar", val: "MLD" };
dbfields["issue"] = { dbs: "mld_melding_key", typ: "key", seq: "mld_s_mld_melding_key" };
var mldIns = buildInsert("mld_melding", dbfields, { noValidateToken: true });
var new_key = mldIns.sequences["mld_melding_key"];
var sql = mldIns.sql;
Oracle.Execute(mldIns.sql);
var mldtrack = api2.process_includes(params, this, jsondata, new_key);
mld.setmeldingstatus(new_key, (stdm.xmld_directklaar? 0 : 2)); // Zorgt ook voor tracking & daarmee notificatie
if (stdm_info.xis_kto_answer) // die direct afmelden

View File

@@ -104,7 +104,6 @@ function model_issuetypes(stdm_key, params)
if (!xxx_array.length)
shared.record_not_found();
this.data = xxx_array[0];
this.data.discipline = new model_mld_discipline("MLD", this.data.discipline.id);
}
}

View File

@@ -14,7 +14,6 @@
%>
<!-- #include file="../Shared/discxalg3d.inc"-->
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="../mgt/mgt_tools.inc" -->
<!-- #include file="./model_alg_kenmerk.inc"-->
<%
function model_alg_locatie()

View File

@@ -4,19 +4,20 @@
File: model_mld_kenmerk.inc
Description: Vanuit CodeCharge gegenereerd model voor mld_kenmerk
Description: Model voor mld_kenmerk
Context:
Notes: LET OP: uitsluitend gebruikt voor opdracht kenmerken. Daar
filteren we op en opdr_type is ook verplicht gemaakt.
Melding kenmerken komen in dezelfde tabel maar die hebben
eigen schermen via MLD\mld_kenmerk.asp
Notes: Opdracht kenmerk definities worden ook aangemaakt via dit model
Melding kenmerken definities komen in dezelfde tabel maar die hebben
eigen bewerk schermen via MLD\mld_kenmerk.asp
*Oproepen* via de API gaat voor MLD wel door dit bestand
*/
%>
<!-- #include file="model_mld_srtkenmerk.inc"-->
<%
function model_mld_kenmerk(params)
function model_mld_kenmerk(niveau, params)
{
params = params || {};
this.records_name = "issueproperties";
@@ -45,7 +46,7 @@ function model_mld_kenmerk(params)
"typ": "varchar",
"required": true,
"hidden_fld": true,
"defaultvalue": "O"
"defaultvalue": "O" // omdat we MLD toch nog niet bewerken via dit bestand
},
"issuepropertytype": {
"dbs": "mld_srtkenmerk_key",
@@ -78,7 +79,7 @@ function model_mld_kenmerk(params)
"key": "mld_typeopdr_key",
"desc": "mld_typeopdr_omschrijving"
},
"required": true,
"required": true, // omdat we MLD toch nog niet bewerken via dit bestand
"defaultvalue": null
},
"sequence": {
@@ -126,7 +127,7 @@ function model_mld_kenmerk(params)
"typ": "memo",
"translate": true
},
"call": {
"issuetype": {
"dbs": "mld_stdmelding_key",
"label": L("mld_stdmelding_key"),
"typ": "key",
@@ -158,22 +159,28 @@ function model_mld_kenmerk(params)
}
};
this.getPropertyType = function (kenmerkdata)
{
var typedata = api2.GET(new model_mld_srtkenmerk({internal: params.internal}), kenmerkdata.issuepropertytype.id);
return typedata;
}
this.hook_pre_edit = function (obj, fld)
{
%>
<script type="text/javascript">
<script>
var module = "MLD";
</script>
<%
}
var gparams = {"GET": {}};
if (niveau == 'O')
gparams.GET = { wheres: [ "mld_kenmerk.mld_kenmerk_niveau = 'O'" ] };
else
gparams.GET = { wheres: [ "mld_kenmerk.mld_kenmerk_niveau IN ('T','D','S')" ] };
this.REST_GET = generic_REST_GET(this, {
"GET": {
"wheres": ["mld_kenmerk_niveau = 'O'"]
}
});
this.REST_GET = generic_REST_GET(this, gparams);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);

View File

@@ -11,8 +11,10 @@
Notes:
*/
%>
<!-- #include file="../mgt/mgt_tools.inc" -->
<!-- #include file="../api2/model_fin_factuur.inc" -->
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="./model_mld_kenmerk.inc"-->
<!-- #include file="../bgt/bgt_tools.inc" -->
<%
function model_mld_opdr()
@@ -21,11 +23,15 @@ function model_mld_opdr()
this.record_name = "order";
this.table = "mld_opdr";
this.primary = "mld_opdr_key";
this.autfunction = "WEB_BGTORD";
this.autfunction = S("bgt_enabled")==1?"WEB_BGTORD":"WEB_ORDBOF";
this.record_title = L("lcl_fin_mld_opdr");
this.records_title = L("lcl_fin_opdrachten");
this.fields = {
var fields_main_1 = {};
var fields_main_2 = {};
var fields_bgt_1 = {};
fields_main_1 = {
"id": {
"dbs": "mld_opdr_key",
"label": L("lcl_key"),
@@ -34,73 +40,91 @@ function model_mld_opdr()
"required": true,
"filter": "exact",
"seq": "mld_s_mld_opdr_key"
},
"budgetdiscipline": {
"dbs": "bgt_project.ins_discipline_key",
"label": L("bgt_discipline_omschrijving"),
"typ": "key",
"required": true,
"foreign": bgt_budgetdiscipline_foreign(),
"emptyoption": null
},
"budgetproject": {
"dbs": "bgt_project.bgt_project_key",
"label": L("bgt_project_omschrijving"),
"typ": "key",
"foreign": bgt_budgetproject_foreign()
},
"budgetcostcategory": {
"dbs": "bgt_kostenrubriek.bgt_kostenrubriek_key",
"label": L("bgt_kostenrubriek_oms"),
"typ": "key",
"foreign": bgt_budgetcostcategory_foreign()
},
"costtypegroup": {
"dbs": "prs_kostensoortgrp.prs_kostensoortgrp_key",
"label": L("prs_kostensoortgrp_key"),
"typ": "key",
"foreign": bgt_costtypegroup_foreign()
},
"costtype": {
"dbs": "prs_kostensoort_key",
"label": L("prs_kostensoort_key"),
"typ": "key",
"foreign": bgt_costtype_foreign()
},
}
};
if (S("bgt_enabled"))
{
fields_bgt_1 = {
"budgetdiscipline": {
"dbs": "bgt_project.ins_discipline_key",
"label": L("bgt_discipline_omschrijving"),
"typ": "key",
"required": true,
"foreign": bgt_budgetdiscipline_foreign(),
"showtransit": true
},
"budgetproject": {
"dbs": "bgt_project.bgt_project_key",
"label": L("bgt_project_omschrijving"),
"typ": "key",
"required": true,
"foreign": bgt_budgetproject_foreign(),
"showtransit": true
},
"budgetcostcategory": {
"dbs": "bgt_kostenrubriek.bgt_kostenrubriek_key",
"label": L("bgt_kostenrubriek_oms"),
"typ": "key",
"required": true,
"foreign": bgt_budgetcostcategory_foreign(),
"showtransit": true
},
"costtypegroup": {
"dbs": "prs_kostensoortgrp.prs_kostensoortgrp_key",
"label": L("prs_kostensoortgrp_key"),
"typ": "key",
"required": true,
"foreign": bgt_costtypegroup_foreign(),
"showtransit": true
},
"costtype": {
"dbs": "prs_kostensoort_key",
"label": L("prs_kostensoort_key"),
"typ": "key",
"required": true,
"foreign": bgt_costtype_foreign(),
"showtransit": true
}
};
}
fields_main_2 = {
"company": {
"dbs": "mld_uitvoerende_keys",
"label": L("lcl_ord_company"),
"typ": "key",
"foreign": {
"tbl": "prs_bedrijf",
"key": "prs_bedrijf_key",
"desc": "prs_bedrijf_naam"
}
"foreign": bgt_company_foreign()
},
"reference": {
"dbs": "mld_opdr_id",
"label": L("lcl_opdr_id"),
"typ": "varchar"
},
"ordernr_sort": {
"dbs": "mld_opdr_ordernr_int",
"label": L("bgt_opdr_ordernr"),
"sql": "fac.safe_to_number(mld_opdr_ordernr)",
"typ": "number",
"readonly": true
},
"ordernr": {
"dbs": "mld_opdr_ordernr",
"label": L("bgt_opdr_ordernr"),
"typ": "varchar"
"typ": "varchar",
"hidden_fld": true
},
"sequence": {
"dbs": "mld_opdr_bedrijfopdr_volgnr",
"label": L("lcl_ins_volgnr"),
"typ": "number"
"typ": "number",
"defaultvalue": 0
},
"account": {
"dbs": "prs_kostenplaats_key",
"label": L("bgt_budget_account"),
"typ": "key",
"foreign": {
"tbl": "prs_kostenplaats",
"key": "prs_kostenplaats_key",
"desc": "prs_kostenplaats_nr"
}
"foreign": bgt_account_foreign()
},
"description": {
"dbs": "mld_opdr_omschrijving",
@@ -112,6 +136,26 @@ function model_mld_opdr()
"label": L("bgt_contractdatum"),
"typ": "date"
},
"estimate": {
"dbs": "estimate",
"sql": "CASE WHEN mld_statusopdr_key=10 THEN mld_opdr_kosten END",
"sqlshow": true,
"hidden_fld": true,
"label": "Raming",
"typ": "float",
"iscurrency": true,
"total": true
},
"contracted": {
"dbs": "contracted",
"sql": "CASE WHEN mld_statusopdr_key<>10 THEN mld_opdr_kosten END",
"sqlshow": true,
"hidden_fld": true,
"label": L("bgt_gecontracteerd"),
"typ": "float",
"iscurrency": true,
"total": true
},
"amount": {
"dbs": "mld_opdr_kosten",
"label": L("bgt_gecontracteerd"),
@@ -126,11 +170,25 @@ function model_mld_opdr()
"iscurrency": true,
"total": true
},
"amountincl": {
"dbs": "mld_opdr_kosten_incl",
"sql": "mld_opdr_kosten + mld_opdr_kosten_btw",
"label": L("lcl_fin_total_sum"),
"typ": "float",
"readonly": true,
"sqlshow": true,
"iscurrency": true,
"total": true,
"defaultvalue": "0",
"clone": false
},
"invoiced": {
"dbs": "mld_opdr_gefactureerd",
"sql": "(BGT.getGefactureerd(mld_opdr.mld_opdr_key, 0, NULL, NULL))",
"label": L("bgt_facturen"),
"typ": "float",
"readonly": true,
"sqlshow": true,
"iscurrency": true,
"total": true
},
@@ -139,6 +197,8 @@ function model_mld_opdr()
"sql": "(BGT.getTefactureren(mld_opdr.mld_opdr_key, 0, NULL, NULL))",
"label": L("bgt_facturentogo"),
"typ": "float",
"readonly": true,
"sqlshow": true,
"iscurrency": true,
"total": true
},
@@ -174,35 +234,341 @@ function model_mld_opdr()
"dbs": "mld_opdr_meerwerk",
"label": L("lcl_mld_opdr_meerwerk"),
"typ": "check0",
"defaultvalue": "0",
"defaultvalue": 0,
"filter": "exact"
}
}
};
this.includes = {
"invoices": {
"model": new model_fin_factuur(),
"joinfield": "order",
"enable_update": true
}
};
this.fields = object_merge({}, fields_main_1, (S("bgt_enabled") ? fields_bgt_1 : {}), fields_main_2);
var gparams = {
GET: {
tables: [
"prs_kostensoort",
"prs_kostensoortgrp",
"bgt_kostenrubriek",
"bgt_project"
],
wheres: [
"mld_opdr.prs_kostensoort_key = prs_kostensoort.prs_kostensoort_key",
"prs_kostensoort.prs_kostensoortgrp_key = prs_kostensoortgrp.prs_kostensoortgrp_key",
"prs_kostensoortgrp.bgt_kostenrubriek_key = bgt_kostenrubriek.bgt_kostenrubriek_key",
"bgt_kostenrubriek.bgt_project_key = bgt_project.bgt_project_key"
]
this.includes= {
"custom_fields" : {
"model": new model_custom_fields(this, new model_mld_kenmerk('O', { internal: true }), { pNiveau: "O" }),
"joinfield": "flexparentkey",
"enable_update": true
}
}
this.hook_pre_edit = function (obj, fld)
{
var btw_data = {};
if (obj.id > -1 || obj.ordernr_sort)
{
fld.ordernr.hidden_fld = false;
fld.ordernr.readonly = true;
}
};
if (obj.id > -1)
{
var sql = "SELECT s.prs_kostensoort_btw"
+ " , f.fin_btwtabelwaarde_perc"
+ " FROM mld_opdr o"
+ " , prs_kostensoort s"
+ " , fin_btwtabelwaarde f"
+ " WHERE s.fin_btwtabelwaarde_key = f.fin_btwtabelwaarde_key"
+ " AND o.prs_kostensoort_key = s.prs_kostensoort_key"
+ " AND o.mld_opdr_key = " + obj.id;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
btw_data.btw_inc = oRs("prs_kostensoort_btw").Value;
btw_data.btw_val = oRs("fin_btwtabelwaarde_perc").Value || "0";
}
oRs.Close();
}
%>
<script type="text/javascript">
var btw_data = <%=JSON.stringify(btw_data)%>;
<% if (obj.budgetdiscipline) { %> var budgetdiscipline = "<%=obj.budgetdiscipline.id%>"; <% } %>
<% if (obj.budgetproject) { %> var budgetproject = "<%=obj.budgetproject.id%>"; <% } %>
<% if (obj.budgetcostcategory) { %> var budgetcostcategory = "<%=obj.budgetcostcategory.id%>"; <% } %>
<% if (obj.costtypegroup) { %> var costtypegroup = "<%=obj.costtypegroup.id%>"; <% } %>
<% if (obj.costtype) { %> var costtype = "<%=obj.costtype.id%>"; <% } %>
</script>
<%
}
this.hook_pre_post = function(params, obj)
{
var parent_key = getQParamInt("id", -1);
if (!obj.sequence && obj.sequence!=0)
abort_with_warning("Vul een volgnummer voor het contract in.");
var v_costtype = (obj.costtype ? obj.costtype : getQParamInt("costtype", -1));
checkAanwezigBudget(v_costtype);
if (parent_key > -1) // Bij kopie van opdracht geen nieuw nummer genereren.
{
// Vul het contractnummer van het oorspronkelijke contract in.
var sql = "SELECT o.mld_opdr_ordernr"
+ " FROM mld_opdr o"
+ " WHERE o.mld_opdr_key = " + parent_key;
var oRs = Oracle.Execute(sql);
obj.ordernr = oRs("mld_opdr_ordernr").Value;
oRs.Close();
// Kopie contract. Volgnummer moet uniek zijn binnen dit contractnummer.
checkUniekContractnummer(-1, obj.budgetproject.id, obj.ordernr, obj.sequence);
}
else
{
// Genereer een uniek volgnummer binnen het project voor een nieuwe opdracht.
var prj_key = (obj.budgetproject ? obj.budgetproject : project_key);
var sql = "SELECT COALESCE(MAX(TO_NUMBER(o.mld_opdr_ordernr)), 0) + 1 new_ordernr"
+ " FROM bgt_project p"
+ " , bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " , mld_opdr o"
+ " WHERE p.bgt_project_key = r.bgt_project_key"
+ " AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
+ " AND p.bgt_project_key = " + prj_key;
var oRs = Oracle.Execute(sql);
obj.ordernr = oRs("new_ordernr").Value;
oRs.Close();
// Nieuw contract, dus volgnummer is altijd uniek hierbinnen.
}
checkBudgetoverschrijding(obj.id, obj.costtype, obj.amount, obj.vat);
}
this.hook_pre_put = function(params, obj, key)
{
var v_costtype = (obj.costtype ? obj.costtype : getQParamInt("costtype", -1) );
checkAanwezigBudget(v_costtype);
// Is de combinatie projectnummer/volgnummer nog steeds uniek?
var sql = "SELECT p.bgt_project_key"
+ " , o.prs_kostensoort_key"
+ " , o.mld_opdr_ordernr"
+ " FROM bgt_project p"
+ " , bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " , mld_opdr o"
+ " WHERE p.bgt_project_key = r.bgt_project_key"
+ " AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
+ " AND o.mld_opdr_key = " + key;
var oRs = Oracle.Execute(sql);
var v_ordernr = oRs("mld_opdr_ordernr").Value;
var v_project_key = oRs("bgt_project_key").Value;
var v_cur_costtype_key = oRs("prs_kostensoort_key").Value;
oRs.Close();
checkUniekContractnummer(key, v_project_key, v_ordernr, obj.sequence);
if (v_cur_costtype_key != v_costtype)
{ // contract verplaatsen naar ander kostensoort
checkBudgetoverschrijding(obj.id, v_cur_costtype_key, 0, 0); // bedrag van deze kostensoort verwijderen
checkBudgetoverschrijding(-1, v_costtype, obj.amount, obj.vat); // (aangepast) bedrag aan nieuwe kostensoort toevoegen
// facturen krijgen ook nieuwe kostensoort.
var sql = "UPDATE fin_factuur"
+ " SET prs_kostensoort_key = " + v_costtype
+ " WHERE mld_opdr_key = " + key;
Oracle.Execute(sql);
}
else
{
checkBudgetoverschrijding(obj.id, v_costtype, obj.amount, obj.vat);
}
}
this.hook_pre_delete = function(params, key)
{
var sql = "SELECT MAX(o.prs_kostensoort_key) kostensoort"
+ " , COUNT(f.fin_factuur_key) aantal"
+ " FROM mld_opdr o"
+ " , fin_factuur f"
+ " WHERE o.mld_opdr_key = f.mld_opdr_key(+)"
+ " AND o.mld_opdr_key = " + key;
var oRs = Oracle.Execute(sql);
var aantal_facturen = oRs("aantal").Value;
var prs_kostensoort = oRs("kostensoort").Value;
oRs.Close();
if (aantal_facturen > 0)
abort_with_warning("Verwijder eerst de facturen bij dit contract.");
// Eerst proberen of er automatisch terug geboekt moet worden doot bedrag te muteren naar 0.
checkBudgetoverschrijding(key, prs_kostensoort, 0, 0);
}
var gparams = {};
if (S("bgt_enabled") == 1)
{
gparams = {
GET: {
tables: [
"prs_kostensoort",
"prs_kostensoortgrp",
"bgt_kostenrubriek",
"bgt_project"
],
wheres: [
"mld_opdr.prs_kostensoort_key = prs_kostensoort.prs_kostensoort_key",
"prs_kostensoort.prs_kostensoortgrp_key = prs_kostensoortgrp.prs_kostensoortgrp_key",
"prs_kostensoortgrp.bgt_kostenrubriek_key = bgt_kostenrubriek.bgt_kostenrubriek_key",
"bgt_kostenrubriek.bgt_project_key = bgt_project.bgt_project_key"
]
}
};
}
function checkUniekContractnummer(p_contract_key, p_project_key, p_contractnr, p_volgnr)
{
var sql = "SELECT count(*) aantal"
+ " FROM bgt_project p"
+ " , bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " , mld_opdr o"
+ " WHERE p.bgt_project_key = r.bgt_project_key"
+ " AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
+ " AND p.bgt_project_key = " + p_project_key
+ " AND o.mld_opdr_ordernr = " + safe.quoted_sql(p_contractnr)
+ " AND o.mld_opdr_bedrijfopdr_volgnr = " + p_volgnr
+ (p_contract_key != -1 ? " AND o.mld_opdr_key <> " + p_contract_key : "");
var oRs = Oracle.Execute(sql);
var uniek_contractnr = (oRs("aantal").Value == 0);
oRs.Close();
if (!uniek_contractnr)
abort_with_warning("Contractnummer {0}.{1} bestaat al in dit project.".format(p_contractnr, p_volgnr));
}
function checkAanwezigBudget(p_kostensoort_key)
{
// kostensoort moet een budget hebben, anders mag er geen contract aan gekoppeld worden.
var sql = "SELECT count(*) aantal"
+ " FROM bgt_budget"
+ " WHERE prs_kostensoort_key = " + p_kostensoort_key;
var oRs = Oracle.Execute(sql);
var heeft_budget = oRs("aantal").Value == 1;
oRs.Close();
if (!heeft_budget)
abort_with_warning("Maak eerst een budget aan voor deze kostensoort voordat er contracten aan gekoppeld worden.");
}
function checkBudgetoverschrijding(data_id, data_costtype, data_amount, data_vat)
{
var sql = "SELECT MAX(b.bgt_budget_key) budget_s"
+ " , MAX(c.bgt_budget_key) budget_r"
+ " , MAX(COALESCE(b.bgt_budget_bedrag, 0)) budget_exc"
+ " , MAX(COALESCE(b.bgt_budget_btwbedrag, 0)) budget_btw"
+ " FROM bgt_budget b"
+ " , bgt_budgetmutatie m"
+ " , (SELECT r.bgt_project_key"
+ " , bgt_budget_key"
+ " FROM bgt_budget r"
+ " WHERE r.bgt_budget_isreserve = 1"
+ " ) c"
+ " WHERE b.bgt_project_key = c.bgt_project_key(+)"
+ " AND b.prs_kostensoort_key = " + data_costtype;
var oRs = Oracle.Execute(sql);
var budget_key_res = oRs("budget_r").Value;
var budget_key_srt = oRs("budget_s").Value;
var budget_exc = oRs("budget_exc").Value;
var budget_btw = oRs("budget_btw").Value;
oRs.Close();
if (budget_key_res == null)
abort_with_warning("Er is geen budget met kenmerk 'reserve' aanwezig voor dit project");
var amount_old_exc = 0;
var amount_old_btw = 0;
if (data_id > -1)
{
var sql = "SELECT COALESCE(t.mld_opdr_kosten, 0) amount_old_exc"
+ " , COALESCE(t.mld_opdr_kosten_btw, 0) amount_old_btw"
+ " FROM mld_opdr t"
+ " WHERE t.prs_kostensoort_key = " + data_costtype
+ " AND t.mld_opdr_key = " + data_id;
var oRs = Oracle.Execute(sql);
amount_old_exc = oRs("amount_old_exc").Value;
amount_old_btw = oRs("amount_old_btw").Value;
oRs.Close();
}
var sql = "SELECT SUM(o.mld_opdr_kosten) amount_total_exc"
+ " , SUM(o.mld_opdr_kosten_btw) amount_total_btw"
+ " FROM mld_opdr o"
+ " WHERE o.prs_kostensoort_key = " + data_costtype;
var oRs = Oracle.Execute(sql);
var amount_sum_exc = oRs("amount_total_exc").Value;
var amount_sum_btw = oRs("amount_total_btw").Value;
oRs.Close();
var sql = "SELECT SUM(m1.bgt_budget_bedrag_van) reserve_exc"
+ " , SUM(m1.bgt_budget_btwbedrag_van) reserve_btw"
+ " FROM bgt_budget b1"
+ " , bgt_budget b2"
+ " , bgt_budgetmutatie m1"
+ " WHERE b2.bgt_budget_isreserve = 1"
+ " AND b1.bgt_project_key = b2.bgt_project_key"
+ " AND m1.bgt_budget_key_van = b2.bgt_budget_key"
+ " AND m1.bgt_budget_Key_naar = b1.bgt_budget_key"
+ " AND b1.prs_kostensoort_key = " + data_costtype;
var oRs = Oracle.Execute(sql);
var reserve_exc = oRs("reserve_exc").Value;
var reserve_btw = oRs("reserve_btw").Value;
oRs.Close();
//
var bedrag_exc = 0;
var bedrag_btw = 0;
if (amount_old_exc < data_amount)
{
// verhoging contractwaarde exc
var overschot_exc = budget_exc - amount_sum_exc - (data_amount - amount_old_exc);
bedrag_exc = (overschot_exc < 0 ? overschot_exc : 0);
}
else
{
// verlaging contractwaarde exc
var overschot_exc = reserve_exc - (data_amount - amount_old_exc);
bedrag_exc = -1 * (overschot_exc > 0 ? reserve_exc : (data_amount - amount_old_exc) );
}
//
if (amount_old_btw < data_vat)
{
// verhoging contractwaarde btw
var overschot_btw = budget_btw - amount_sum_btw - (data_vat - amount_old_btw);
bedrag_btw = (overschot_btw < 0 ? overschot_btw : 0);
}
else
{
// verlaging contractwaarde btw
var overschot_btw = reserve_btw - (data_vat - amount_old_btw);
bedrag_btw = -1 * (overschot_btw > 0 ? reserve_btw : (data_vat - amount_old_btw) );
}
var sql_m = "INSERT INTO bgt_budgetmutatie"
+ "( bgt_budgetmutatie_datum"
+ ", bgt_budgetmutatie_omschrijving"
+ ", prs_perslid_key" // not null!
+ ", bgt_budget_key_van"
+ ", bgt_budget_bedrag_van"
+ ", bgt_budget_btwbedrag_van"
+ ", bgt_budget_key_naar"
+ ", bgt_budget_bedrag_naar"
+ ", bgt_budget_btwbedrag_naar"
//2017.3 + ", bgt_budgetmutatie_reserve"
+ ") VALUES"
+ "( SYSDATE"
+ ", 'AO Automatische overboeking'"
+ ", " + user_key
+ ", " + budget_key_res
+ ", " + bedrag_exc
+ ", " + bedrag_btw
+ ", " + budget_key_srt
+ ", " + (-1 * bedrag_exc)
+ ", " + (-1 * bedrag_btw)
//2017.3 + ", 1"
+ ")";
Oracle.Execute(sql_m);
}
this.REST_GET = generic_REST_GET(this, gparams);

View File

@@ -13,14 +13,15 @@
%>
<%
function model_mld_srtkenmerk()
function model_mld_srtkenmerk(params)
{
params = params || {};
this.records_name = "issuepropertytypes";
this.record_name = "issuepropertytype";
this.table = "mld_srtkenmerk";
this.primary = "mld_srtkenmerk_key";
this.soft_delete = "mld_srtkenmerk_verwijder";
this.autfunction = "WEB_MLDMGT";
this.autfunction = params.internal?false:"WEB_MLDMGT";
this.record_title = L("mld_srtkenmerk");
this.records_title = L("mld_srtkenmerk_m");

View File

@@ -86,7 +86,8 @@ function model_mld_typeopdr()
"dbs": "mld_typeopdr_afmeldmarge",
"label": L("mld_typeopdr_afmeldmarge"),
"typ": "number",
"defaultvalue": "0"
"defaultvalue": "0",
"multiedit": true
},
"visiblefe": {
"dbs": "mld_typeopdr_zichtbaarfe",
@@ -102,13 +103,22 @@ function model_mld_typeopdr()
"dbs": "mld_typeopdr_offertelimiet",
"label": L("mld_typeopdr_offertelimiet"),
"iscurrency": true,
"typ": "float"
"typ": "float",
"multiedit": true
},
"approval": {
"dbs": "mld_typeopdr_gvs",
"label": L("mld_typeopdr_gvs"),
"iscurrency": true,
"typ": "float"
"typ": "float",
"multiedit": true
},
"approvalfiat": {
"dbs": "mld_typeopdr_fvs",
"label": L("mld_typeopdr_fvs"),
"iscurrency": true,
"typ": "float",
"multiedit": true
},
"nextissueordertype": {
"dbs": "mld_typeopdr_typeopdr_key",
@@ -139,7 +149,8 @@ function model_mld_typeopdr()
"label": L("mld_typeopdr_kosten_verplicht"),
"typ": "number",
"LOV": L("mld_typeopdr_kosten_verplichtLOV"),
"emptyoption": null
"emptyoption": null,
"multiedit": true
},
"slamode": {
"dbs": "mld_typeopdr_slamode",
@@ -147,7 +158,8 @@ function model_mld_typeopdr()
"typ": "number",
"defaultvalue": "1",
"LOV": L("mld_typeopdr_slamodeLOV"),
"emptyoption": null
"emptyoption": null,
"multiedit": true
},
"sequential": {
"dbs": "mld_typeopdr_sequential",
@@ -155,7 +167,8 @@ function model_mld_typeopdr()
"typ": "number",
"defaultvalue": "0",
"LOV": L("mld_typeopdr_seqmodeLOV"),
"emptyoption": null
"emptyoption": null,
"multiedit": true
}
};

View File

@@ -115,7 +115,7 @@ function model_notes(module)
{ "id" : { dbs: tabel.id, typ: "key", seq: tabel.seq, filter: "exact" },
"author" : { dbs: "prs_perslid_key", typ: "key", foreign: "prs_perslid", filter: "exact" },
"description" : { dbs: tabel.naam + "_omschrijving", typ: "varchar", filter: "like" },
"createdate" : { dbs: tabel.naam + "_aanmaak", typ: "datetime"},
"created" : { dbs: tabel.naam + "_aanmaak", typ: "datetime", "readonly": true},
"parent" : { dbs: tabel.parent + "_key", typ: "key", filter: "exact" }
};
@@ -197,7 +197,7 @@ function model_notes(module)
//
var dbfields = api2.update_fields(params, this, jsondata); // Build updater
var wheres = [ this.id.dbs + " = " + the_key];
var wheres = [ this.fields.id.dbs + " = " + the_key];
wheres.push("prs_perslid = " + user_key);
var xxxUpd = buildTrackingUpdate(this.table, wheres.join(" AND " ), dbfields, { noValidateToken: true });
@@ -209,7 +209,10 @@ function model_notes(module)
this.REST_POST = function (params, jsondata) /* new note */
{
params.filter.parent_key = jsondata.parent;
params.filter.parent_key = parseInt(jsondata.parent, 10);
if (!jsondata.author)
jsondata.author = user_key;
_check_authorization(params, "POST");
//
var dbfields = api2.update_fields(params, this, jsondata); // Build updater

View File

@@ -39,12 +39,16 @@ model_objects =
"owner" : { dbs: "ins_v_deel_gegevens.prs_perslid_key", typ: "key", foreign: "prs_perslid" }
},
// een include van model_ins_deel_state_history lijkt voor de hand te liggen
// maar gaf (vast oplosbare) problemen met een dubbele ins_deel in de query
// Bovendien wil je in de praktijk altijd een datumfilter op de statedatum hebben
// wat niet kan op een include. Doe daarom maar /api2/statehistory?object=16506&start_statedate=2017-11-01T12:20:16Z&fields=state,statedate
includes: { "tracking": {
model: new model_tracking(['deel']),
joinfield: "trackingrefkey"
},
"custom_fields" : {
"model": new model_custom_fields(this, new model_ins_kenmerk({ internal: true }), { readman: true, readuse: true }),
"model": new model_custom_fields(this, new model_ins_kenmerk("D", { internal: true }), { readman: true, readuse: true }),
"joinfield": "flexparentkey",
"enable_update": true
}
@@ -55,7 +59,6 @@ model_objects =
var autfunction = urole == "fe"? "WEB_INSUSE" : "WEB_INSMAN";
params.authparams = user.checkAutorisation(autfunction, null, null, true); // pessimistisch
// TODO: Add authorization
var query = api2.sqlfields(params, model_objects);
query.wheres.push("ins_deel_verwijder IS NULL");
// Toon standaard alleen de niet vervallen objecten, behalve als specifiek op object identificatie wordt gezocht.
@@ -73,6 +76,16 @@ model_objects =
query.wheres.push("ins_alg_ruimte_key_org IS NULL");
}
// TODO: Add 3D authorization
// Alleen nog maar simpele 1D autorisatie
query.wheres.push(" ins_deel.ins_discipline_key IN"
+ " (SELECT ins_discipline_key"
+ " FROM fac_v_webgebruiker"
+ " WHERE fac_functie_key = " + params.authparams.autfunctionkey
+ " AND prs_perslid_key = " + user_key
+ " AND fac_gebruiker_prs_level_read < 9"
+ " AND fac_gebruiker_alg_level_read < 9)");
// TODO: We ondersteunen uitsluitend ruimte- werkplek- en persoonsgebonden objecten
query.tables.push("ins_v_deel_gegevens");
query.wheres.push("ins_deel.ins_alg_ruimte_type IN ('R', 'W', 'P') ");
@@ -94,15 +107,22 @@ model_objects =
},
REST_PUT: function (params, jsondata, the_key) /* update object */
{
var dbfields = api2.update_fields(params, model_objects, jsondata); // Build updater
//model_objects._validate_fields(dbfields, params, jsondata);
if (params.custom_fields_only)
{
var insUpd = { trackarray: [] };
}
else
{
var dbfields = api2.update_fields(params, model_objects, jsondata); // Build updater
//model_objects._validate_fields(dbfields, params, jsondata);
// TODO: Autorization
var wheres = [" ins_deel_key = " + the_key];
var insUpd = buildTrackingUpdate("ins_deel", wheres.join(" AND " ), dbfields, { noValidateToken: true });
Oracle.Execute(insUpd.sql);
// TODO: Autorization
var wheres = [" ins_deel_key = " + the_key];
var insUpd = buildTrackingUpdate("ins_deel", wheres.join(" AND " ), dbfields, { noValidateToken: true });
Oracle.Execute(insUpd.sql);
}
//var beztrack = api2.process_includes(params, model_objects, jsondata, the_key);
var instrack = api2.process_includes(params, model_objects, jsondata, the_key);
return { key: the_key };
},

View File

@@ -23,7 +23,6 @@
<!-- #include file="./model_notes.inc"-->
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="./model_fac_tracking.inc"-->
<!-- #include file="../mgt/mgt_tools.inc" -->
<!-- #include file="./model_mld_kenmerk.inc"-->
<%
@@ -87,8 +86,9 @@ function model_orders(opdr_key, params)
model: new model_notes("MLD"),
joinfield: "mld_opdr_key"
},
"custom_fields" : { model: new model_custom_fields(this, new model_mld_kenmerk({ internal: true }), { pNiveau: "O", readman: true, readuse: true }),
joinfield: "flexparentkey"
"custom_fields" : { model: new model_custom_fields(this, new model_mld_kenmerk('O', { internal: true }), { pNiveau: "O", readman: true, readuse: true }),
joinfield: "flexparentkey",
"enable_update": true
},
"tracking": {
model: new model_tracking(['opdracht']),
@@ -238,6 +238,7 @@ function model_orders(opdr_key, params)
+ " , mld_typeopdr_slamode"
+ " , mld_typeopdr_isofferte"
+ " , mld_typeopdr_gvs"
+ " , mld_typeopdr_fvs"
+ " , mld_typeopdr_kosten"
+ " FROM mld_typeopdr"
+ " WHERE mld_typeopdr_key = " + params.mld_opdr.opdr_type;
@@ -246,6 +247,7 @@ function model_orders(opdr_key, params)
params.mld_opdr.mld_typeopdr_slamode = oRs("mld_typeopdr_slamode").Value;
params.mld_opdr.mld_typeopdr_isofferte = oRs("mld_typeopdr_isofferte").Value;
params.mld_opdr.mld_typeopdr_gvs = oRs("mld_typeopdr_gvs").Value || 0;
params.mld_opdr.mld_typeopdr_fvs = oRs("mld_typeopdr_fvs").Value || 0;
var needKostenplaats = oRs("mld_typeopdr_kosten").Value == 1;
oRs.Close();
@@ -349,6 +351,12 @@ function model_orders(opdr_key, params)
var opdr_key = the_key;
if (opdr_key == -1)
abort_with_warning("PUT needs record key in url.");
if (params.custom_fields_only)
{
var mldtrack = api2.process_includes(params, this, jsondata, opdr_key);
return { key: opdr_key };
}
if (!jsondata.id) jsondata.id = opdr_key; // huidige key altijd in jsondata
//
this._pre_analyze_fields(params, jsondata);
@@ -452,6 +460,7 @@ function model_orders(opdr_key, params)
var disc_key = params.mld_opdr.dis_key;
var kostenplaats_key = params.mld_opdr.kostenplaats_key;
var mld_typeopdr_gvs = params.mld_opdr.mld_typeopdr_gvs;
var mld_typeopdr_fvs = params.mld_opdr.mld_typeopdr_fvs || 0;
var sla_mode = params.mld_opdr.mld_typeopdr_slamode;
var uitvoerende = params.mld_opdr.uitvoerende;
var act_key = params.mld_opdr.act_key;
@@ -525,10 +534,7 @@ function model_orders(opdr_key, params)
// Eerste fiatteur (pkey) mag niet fiatteren want het zit boven zijn profiel limiet.
// De melder van de melding (user_key) mag niet zelf goedkeuren boven het bedrag can_selfapprove.
// tot_kosten > can_selfapprove => user_key als exclude key meegeven.
if (tot_kosten > S("can_selfapprove"))
approver_key = prs.getKpVerantwoordelijkeExcept(kostenplaats_key, user_key);
else
approver_key = prs.getKpVerantwoordelijke(kostenplaats_key);
approver_key = prs.getFiatteur(kostenplaats_key, (tot_kosten > S("can_selfapprove"))?user_key:-1, tot_kosten, disc_key);
for_approval = true;
}
}
@@ -660,7 +666,12 @@ function model_orders(opdr_key, params)
requestApproval = true;
}
else if (requestApproval)
{
if (tot_kosten < mld_typeopdr_fvs)
requestApproval = false; // Hoge fiat vrijstelling, toch niet nodig
else
status = 3; // Ter fiattering.
}
// requestApproval heeft nu zijn definitieve waarde, en approver_key is geldig gedefinieerd.
// Status en tracking altijd met de functie setopdrachtstatus
@@ -818,10 +829,7 @@ function model_orders(opdr_key, params)
// Het mandaat is al te hoog voor de melder/aanvrager van de melding.
// De melder/aanmaker van de melding mag niet zelf goedkeuren boven het bedrag can_selfapprove.
// tot_kosten > can_selfapprove => mld_info.melder_key als exclude key meegeven.
if (tot_kosten > S("can_selfapprove"))
approver_key = prs.getKpVerantwoordelijkeExcept(kostenplaats_key, mld_info.melder_key);
else
approver_key = prs.getKpVerantwoordelijke(kostenplaats_key);
approver_key = prs.getFiatteur(kostenplaats_key, (tot_kosten > S("can_selfapprove"))?mld_info.melder_key:-1, tot_kosten, mld_info.disc);
if (approver_key == -1)
abort_with_warning(L("lcl_bes_exceed_limit"));
refiat = true;
@@ -1093,7 +1101,9 @@ function model_orders(opdr_key, params)
+ " mld_srtkenmerk t"
+ " WHERE m.mld_srtkenmerk_key = t.mld_srtkenmerk_key"
+ " AND m.mld_kenmerk_key = "; /* wordt in saveFlexkenmerken uitgebreid */
// TODO: deze saveFlexKenmerken moet via de standaard includes door model_custom_fields opgelost worden
// pas echter op: die verwacht een properyid voor elk kenmerk terwijl saveFlexKenmerken (nog) een 'id' verwacht
// In het bijzonder wordt in d:\Apps\Facilitor\Branch20172\CUST\ASLE\Appl ook nog de 'id' gezet!
var flextrack =
saveFlexKenmerken(opdr_key, { kenmerkTable: "mld_kenmerkopdr",
kenmerkParentKey : "mld_opdr_key",

View File

@@ -13,7 +13,6 @@
%>
<!-- #include file="../prs/prs.inc" -->
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="../mgt/mgt_tools.inc"-->
<!-- #include file="./model_prs_kenmerk.inc"-->
<%
@@ -29,7 +28,8 @@ function model_prs_afdeling()
this.fields = {
"id": {
"dbs": "prs_afdeling_key",
"typ": "key"
"typ": "key",
"seq": "prs_s_prs_afdeling_key"
},
"name": {
"dbs": "prs_afdeling_naam",
@@ -39,11 +39,10 @@ function model_prs_afdeling()
"dbs": "prs_afdeling_omschrijving",
"typ": "varchar"
},
"company": {
"dbs": "prs_afdeling_key",
"label": L("lcl_prs_company"),
"typ": "key",
"foreign": "prs_afdeling"
"externalid": {
"dbs": "prs_afdeling_externid",
"label": L("prs_afdeling_externid"),
"typ": "varchar"
},
"parent": {
"dbs": "prs_afdeling_parentkey",
@@ -52,7 +51,19 @@ function model_prs_afdeling()
"foreign": "prs_afdeling"
},
"company": {
"dbs": "pa.prs_bedrijf_key",
"dbs": "prs_bedrijf_key",
"label": L("lcl_prs_company"),
"typ": "key",
"foreign": {
"tbl": "prs_bedrijf",
"key": "prs_bedrijf_key",
"desc": "prs_bedrijf_naam",
"desc_is_unique": "prs_bedrijf_verwijder IS NULL"
}
},
"xcompany": {
"dbs": "top_prs_bedrijf_key",
"sql": "pa.prs_bedrijf_key",
"label": L("lcl_prs_company"),
"typ": "key",
"foreign": "prs_bedrijf"
@@ -64,9 +75,15 @@ function model_prs_afdeling()
"foreign": {
"tbl": "prs_kostenplaats",
"key": "prs_kostenplaats_key",
"desc": "prs_kostenplaats_nr"
},
"multiedit": true
"desc": "prs_kostenplaats_nr",
"desc_is_unique": "prs_kostenplaats_verwijder IS NULL"
}
},
"created": {
"dbs": "prs_afdeling_aanmaak",
"label": "Aanmaakdatum",
"typ": "datetime",
"readonly": true
}
};
@@ -84,7 +101,7 @@ function model_prs_afdeling()
}
}
var authparamsUSE = user.checkAutorisation("WEB_PRSUSE", true);
var authparamsUSE = user.checkAutorisation("WEB_PRSUSE");
if (authparamsUSE.PRSreadlevel == 0) // prs_bedrijf
{
gparams["GET"].wheres.push("pa.prs_bedrijf_key = " + user.afdeling().prs_bedrijf_key());
@@ -103,11 +120,9 @@ function model_prs_afdeling()
}
this.REST_GET = generic_REST_GET(this, gparams);
// (even) nog geen updates
//this.REST_POST = generic_REST_POST(this);
//this.REST_PUT = generic_REST_PUT(this);
//this.REST_DELETE = generic_REST_DELETE(this);
this.REST_GET = generic_REST_GET(this, gparams);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}
%>

View File

@@ -11,7 +11,7 @@
Notes:
*/
%>
<!-- #include file="../api2/model_prs_kostensoort.inc" -->
<!-- #include file="../bgt/bgt_tools.inc" -->
<%
function model_prs_kostenplaats()
@@ -21,8 +21,8 @@ function model_prs_kostenplaats()
this.table = "prs_kostenplaats";
this.primary = "prs_kostenplaats_key";
this.autfunction = (S("bgt_enabled")==1 ? ["WEB_FINMSU", "WEB_BGTMGT"] : ["WEB_FINMSU"]);
this.record_title = L("lcl_account");
this.records_title = L("lcl_menu_fin_kostenplaatsen");
this.record_title = (S("bgt_enabled")==1 ? L("bgt_kostenplaats") : L("lcl_account"));
this.records_title = (S("bgt_enabled")==1 ? L("bgt_kostenplaats_m") : L("lcl_menu_fin_kostenplaatsen"));
this.soft_delete = "prs_kostenplaats_verwijder";
this.fields = {
@@ -35,6 +35,30 @@ function model_prs_kostenplaats()
"filter": "exact",
"seq": "prs_s_prs_kostenplaats_key"
},
"budgetdiscipline": {
"dbs": "bgt_project.ins_discipline_key",
"label": L("bgt_discipline_omschrijving"),
"typ": "key",
"required": true,
"foreign": bgt_budgetdiscipline_foreign(),
"showtransit": true
},
"budgetproject": {
"dbs": "bgt_project.bgt_project_key",
"label": L("bgt_project_omschrijving"),
"typ": "key",
"required": true,
"foreign": bgt_budgetproject_foreign(),
"showtransit": true
},
"costgroup": {
"dbs": "prs_kostenplaatsgrp_key",
"label": L("lcl_prs_kostenpl_group"),
"typ": "key",
"required": true,
"foreign": bgt_accountgroup_foreign(),
"showtransit": true
},
"name": {
"dbs": "prs_kostenplaats_nr",
"label": L("lcl_prs_dept_name"),
@@ -60,16 +84,6 @@ function model_prs_kostenplaats()
"dbs": "prs_kostenplaats_eind",
"label": L("lcl_end_date"),
"typ": "date"
},
"costgroup": {
"dbs": "prs_kostenplaatsgrp_key",
"label": L("lcl_prs_kostenpl_group"),
"typ": "key",
"foreign": {
"tbl": "prs_kostenplaatsgrp",
"key": "prs_kostenplaatsgrp_key",
"desc": "prs_kostenplaatsgrp_oms"
}
},
"person": {
"dbs": "prs_perslid_key",
@@ -99,13 +113,99 @@ function model_prs_kostenplaats()
"dbs": "prs_kostenplaats_fiat",
"label": L("lcl_prs_kpnfiat"),
"typ": "check0"
},
"module": {
"dbs": "prs_kostenplaats_module",
"label": L("bgt_discipline_module"),
"typ": "varchar",
"hidden_fld": true,
"defaultvalue": "PRJ"
}
};
this.REST_GET = generic_REST_GET(this);
// Nog even readonly
//this.REST_POST = generic_REST_POST(this);
//this.REST_PUT = generic_REST_PUT(this);
//this.REST_DELETE = generic_REST_DELETE(this);
if (S("bgt_enabled")) // alleen voor budgetcontrole, de rest nog even readonly
{
// Deze hoeven ze niet voor BGT te zien:
delete this.fields.begin;
delete this.fields.end;
delete this.fields.person;
delete this.fields.costlimit;
delete this.fields.limitperiod;
delete this.fields.external;
delete this.fields.approval;
this.fields.costgroup.hidden_fld = true; // Deze wordt bepaald uit de gekozen project/deelproject.
this.hook_pre_edit = function (obj, fld)
{
%>
<script>
<% if (obj.budgetdiscipline) { %> var budgetdiscipline = "<%=obj.budgetdiscipline.id%>"; <% } %>
<% if (obj.budgetproject) { %> var budgetproject = "<%=obj.budgetproject.id%>"; <% } %>
</script>
<%
}
this.hook_pre_post = function (params, jsondata)
{
var v_discipline_key = jsondata.budgetdiscipline || getQParamInt("budgetdiscipline", -1);
var v_project_key = jsondata.budgetproject || getQParamInt("budgetproject", -1);
if (v_discipline_key > 0 && v_project_key > 0)
{
var sql_e = "SELECT prs_kostenplaatsgrp_key"
+ " FROM prs_kostenplaatsgrp kpg"
+ " WHERE kpg.bgt_project_key = " + v_project_key;
var oRs_e = Oracle.Execute(sql_e);
var v_kostenplaatsgrp_key = (!oRs_e.eof ? oRs_e("prs_kostenplaatsgrp_key").Value : -1);
oRs_e.Close();
//
if (v_kostenplaatsgrp_key == -1 && v_project_key > 0)
{
// Ontbrekende verwijzing tussen kostenplaats en project toevoegen.
var sql = "INSERT INTO prs_kostenplaatsgrp"
+ " (bgt_project_key, prs_kostenplaatsgrp_nr, prs_kostenplaatsgrp_oms)"
+ " SELECT " + v_project_key
+ " , d.bgt_disc_params_code"
+ " , p.bgt_project_code"
+ " FROM bgt_project p"
+ " , bgt_disc_params d"
+ " WHERE p.ins_discipline_key = d.bgt_ins_discipline_key"
+ " AND p.bgt_project_key = " + v_project_key;
Oracle.Execute(sql);
//
oRs_e = Oracle.Execute(sql_e);
v_kostenplaatsgrp_key = (!oRs_e.eof ? oRs_e("prs_kostenplaatsgrp_key").Value : -1);
oRs_e.Close();
//
if (v_kostenplaatsgrp_key == -1)
abort_with_warning("Er is een fout opgetreden bij het aanmaken van de kostenplaatsgroep");
}
//
jsondata.costgroup = v_kostenplaatsgrp_key;
}
}
this.REST_GET = generic_REST_GET(this, {
"GET": {
"tables": [ "prs_kostenplaatsgrp"
, "bgt_project"
],
"wheres": [ "prs_kostenplaatsgrp.bgt_project_key = bgt_project.bgt_project_key"
, "prs_kostenplaatsgrp.prs_kostenplaatsgrp_key = prs_kostenplaats.prs_kostenplaatsgrp_key"
]
}
});
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}
else
{
delete this.fields.budgetdiscipline;
delete this.fields.budgetproject;
this.REST_GET = generic_REST_GET(this);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}
}
%>

View File

@@ -4,7 +4,7 @@
File: model_prs_kostenplaatsgrp.inc
Description: Vanuit CodeCharge gegenereerd model voor prs_kostenplaatsgrp
Description: Model voor prs_kostenplaatsgrp
Context:
@@ -48,12 +48,23 @@ function model_prs_kostenplaatsgrp()
"label": L("lcl_prs_number"),
"typ": "varchar",
"translate": true,
"required": true,
"filter": "like"
},
"person": {
"dbs": "prs_perslid_key",
"label": L("lcl_prs_budgethouder"),
"label": L("prs_kostenplaatsgrp_fiat1_key").format(S("mld_opdr_kpg_fin_limit1")),
"typ": "key",
"foreign" : "prs_perslid"
},
"personfiat2": {
"dbs": "prs_kostenplaatsgrp_fiat2_key",
"label": L("prs_kostenplaatsgrp_fiat2_key").format(S("mld_opdr_kpg_fin_limit1"), S("mld_opdr_kpg_fin_limit2")),
"typ": "key",
"foreign" : "prs_perslid"
},
"personfiat3": {
"dbs": "prs_kostenplaatsgrp_fiat3_key",
"label": L("prs_kostenplaatsgrp_fiat3_key").format(S("mld_opdr_kpg_fin_limit2")),
"typ": "key",
"foreign" : "prs_perslid"
},
@@ -69,9 +80,36 @@ function model_prs_kostenplaatsgrp()
"LOV": "0;" + L("lcl_prs_none") +
";1;" + L("lcl_prs_month") +
";2;" + L("lcl_prs_year")
},
"kpcount": {
"dbs": "nn_leden",
"sql": "(SELECT COUNT(*) "
+ " FROM prs_kostenplaats"
+ " WHERE prs_kostenplaats.prs_kostenplaatsgrp_key = prs_kostenplaatsgrp.prs_kostenplaatsgrp_key"
+ " AND prs_kostenplaats_verwijder IS NULL)",
"label": L("lcl_menu_fin_kostenplaatsen"),
"readonly": true,
"typ": "number"
}
};
if (0) {
sql = "SELECT SUM(k.prs_kostenplaats_limiet) gebruikt_budget"
+ " FROM prs_kostenplaatsgrp kpg"
+ " , prs_kostenplaats k"
+ " WHERE kpg.prs_kostenplaatsgrp_key = k.prs_kostenplaatsgrp_key"
+ " AND kpg.prs_kostenplaatsgrp_key = " + kpngroep_key;
oRs = Oracle.Execute(sql);
var gebruikt_budget = oRs("gebruikt_budget").Value;
oRs.close();
if (kpngrp_limiet - gebruikt_budget > 0)
{
BLOCK_START("kpnGrp", L("lcl_prs_budgettering"));
ROFIELDTR("fldfreebudget" + (gebruikt_budget > kpngrp_limiet? " hot" : ""), L("lcl_prs_afwijking_budget") + "&nbsp;" + L("lcl_valutasign"), safe.curr(kpngrp_limiet - gebruikt_budget), {suppressEmpty: true});
BLOCK_END();
}
}
if (S("bgt_enabled"))
{
this.fields["budgetproject"] = {
@@ -90,9 +128,15 @@ function model_prs_kostenplaatsgrp()
}
this.REST_GET = generic_REST_GET(this);
// Nog even readonly
//this.REST_POST = generic_REST_POST(this);
//this.REST_PUT = generic_REST_PUT(this);
//this.REST_DELETE = generic_REST_DELETE(this);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = function (params, jsondata, the_key)
{
if (prs.exceeds_budgetkps(the_key, jsondata.grouplimit))
{ // Is de som van de kostenplaatslimieten(budgetten) lager dan de limiet(budget) van hun kostenplaatsgroep.
abort_with_warning(L("lcl_prs_exceed_limitkpg"));
}
return generic_REST_PUT(this)(params, jsondata, the_key);
}
this.REST_DELETE = generic_REST_DELETE(this);
}
%>

View File

@@ -35,8 +35,11 @@ function model_prs_kostensoort()
this.record_title = L("prs_kostensoort");
this.records_title = L("prs_kostensoort_m");
var fields_main = {};
var fields_ext = {};
this.fields = {
fields_main = {
"id": {
"dbs": "prs_kostensoort_key",
"label": L("lcl_key"),
@@ -50,20 +53,16 @@ function model_prs_kostensoort()
"dbs": "prs_kostensoortgrp_key",
"label": L("prs_kostensoortgrp_key"),
"required": true,
//"insertonly" : true,
"typ": "key",
"foreign": {
"tbl": "prs_kostensoortgrp",
"key": "prs_kostensoortgrp_key",
"desc": "prs_kostensoortgrp_oms"
},
"foreign": bgt_costtypegroup_foreign(),
"LOVinit": "",
"filter": "exact",
"multiedit": true
"multiedit": true,
"showtransit": true
},
"name": {
"dbs": "prs_kostensoort_oms",
"label": L("prs_kostensoort_oms"),
"label": (S("bgt_enabled") ? L("prs_kostensoort_opmerking") : L("prs_kostensoort_oms")),
"typ": "varchar",
"required": true, /* proberen */
"translate": true,
@@ -72,24 +71,24 @@ function model_prs_kostensoort()
},
"remark": {
"dbs": "prs_kostensoort_opmerking",
"label": L("prs_kostensoort_opmerking"),
"label": (S("bgt_enabled") ? L("prs_kostensoort_oms") : L("prs_kostensoort_opmerking")),
"typ": "varchar",
"required": (S("bgt_enabled") ? false : true),
"hidden_fld": (S("bgt_enabled") ? true : false),
"filter": "like"
},
"altcode": {
"dbs": "prs_kostensoort_altcode",
"label": L("prs_kostensoort_altcode"),
"typ": "varchar"
"label": (S("bgt_enabled") ? L("prs_kostensoort_oms") : L("prs_kostensoort_altcode")),
"typ": "varchar",
"required": (S("bgt_enabled") ? true : false)
},
"refcode": {
"dbs": "prs_kostensoort_refcode",
"label": L("prs_kostensoort_refcode"),
"typ": "varchar",
"translate": true
},
"charge": {
"dbs": "prs_kostensoort_doorbelasten",
"label": L("prs_kostensoort_doorbelasten"),
@@ -116,11 +115,7 @@ function model_prs_kostensoort()
"dbs": "prs_kostenplaats_key",
"label": L("prs_kostenplaats_key"),
"typ": "key",
"foreign": {
"tbl": "prs_kostenplaats",
"key": "prs_kostenplaats_key",
"desc": "prs_kostenplaats_nr"
},
"foreign": bgt_account_foreign(),
"multiedit": true
}
};
@@ -128,7 +123,45 @@ function model_prs_kostensoort()
if (S("bgt_enabled")) // alleen voor budgetcontrole
{
// Via Admin moet de context discipline/project toegevoegd worden.
fields_ext = {
"budgetdiscipline": {
"dbs": "bgt_project.ins_discipline_key",
"label": L("bgt_discipline_omschrijving"),
"typ": "key",
"required": true,
"foreign": bgt_budgetdiscipline_foreign(),
"showtransit": true
},
"budgetproject": {
"dbs": "bgt_project.bgt_project_key",
"label": L("bgt_project_omschrijving"),
"typ": "key",
"required": true,
"foreign": bgt_budgetproject_foreign(),
"showtransit": true
},
"budgetcostcategory": {
"dbs": "bgt_kostenrubriek.bgt_kostenrubriek_key",
"label": L("bgt_kostenrubriek"),
"typ": "key",
"required": true,
"foreign": bgt_budgetcostcategory_foreign(),
"showtransit": true
},
"costcategorycode": {
"dbs": "bgt_kostenrubriek.bgt_kostenrubriek_code",
"label": L("bgt_kostenrubriek_code"),
"typ": "varchar",
"readonly": true
}
};
this.fields = object_merge({}, fields_ext, fields_main);
delete this.fields.charge;
delete this.fields.refcode;
this.fields.inclvat.hidden_fld = true;
this.fields.costcentre.label = L("bgt_budget_account");
this.includes = {
"budgets": {
"model": new model_bgt_budget(),
@@ -136,10 +169,87 @@ function model_prs_kostensoort()
"enable_update": true
}
};
this.print = { xmlnode: "budget", where: "kostensoort"};
// this.print = { xmlnode: "budget", where: "kostensoort"};
this.hook_pre_show = function (obj, fld)
{
delete this.fields.costcategorycode;
}
this.hook_pre_edit = function (obj, fld)
{
if ((obj.id > -1) || (obj.costtypegroup && obj.costtypegroup.id > -1))
{
this.fields.budgetdiscipline.hidden_fld = false;
this.fields.budgetdiscipline.readonly = true;
this.fields.budgetproject.hidden_fld = false;
this.fields.budgetproject.readonly = true;
this.fields.budgetcostcategory.hidden_fld = false;
this.fields.budgetcostcategory.readonly = true;
delete this.fields.costcategorycode;
}
if (obj.costtypegroup && obj.costtypegroup.id != -1)
{ // Nog even de parent gegevens erbij halen zodat deze readonly getoond worden.
var sql = "SELECT p.ins_discipline_key"
+ " , p.bgt_project_key"
+ " , r.bgt_kostenrubriek_key"
+ " , dp.bgt_disc_params_code ||' - '|| di.ins_discipline_omschrijving oms_disc"
+ " , p.bgt_project_code ||' - '|| p.bgt_project_omschrijving oms_proj"
+ " , r.bgt_kostenrubriek_oms oms_rubr"
+ " FROM bgt_disc_params dp"
+ " , ins_tab_discipline di"
+ " , bgt_project p"
+ " , bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " WHERE dp.bgt_ins_discipline_key = p.ins_discipline_key"
+ " AND di.ins_discipline_key = p.ins_discipline_key"
+ " AND p.bgt_project_key = r.bgt_project_key"
+ " AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ " AND g.prs_kostensoortgrp_key = " + obj.costtypegroup.id
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
obj.budgetdiscipline = {id:oRs("ins_discipline_key").Value, name: oRs("oms_disc").Value};
obj.budgetproject = {id: oRs("bgt_project_key").Value, name: oRs("oms_proj").Value};
obj.budgetcostcategory = {id: oRs("bgt_kostenrubriek_key").Value, name: oRs("oms_rubr").Value};
}
oRs.Close();
}
var prj_key = (obj.budgetproject ? obj.budgetproject.id : -1);
fld["costcentre"].foreign.tbl = bgt_account_foreign_tbl(prj_key);
fld["costcentre"].multiedit = false;
%>
<script type="text/javascript">
<% if (obj.budgetdiscipline) { %> var budgetdiscipline = "<%=obj.budgetdiscipline.id%>"; <% } %>
<% if (obj.budgetproject) { %> var budgetproject = "<%=obj.budgetproject.id%>"; <% } %>
<% if (obj.budgetcostcategory) { %> var budgetcostcategory = "<%=obj.budgetcostcategory.id%>"; <% } %>
<% if (obj.costtypegroup) { %> var costtypegroup = "<%=obj.costtypegroup.id%>"; <% } %>
</script>
<%
}
this.REST_GET = generic_REST_GET(this, {
"GET": {
"tables": [
"bgt_project",
"bgt_kostenrubriek",
"prs_kostensoortgrp"
],
"wheres": [
"bgt_project.bgt_project_key = bgt_kostenrubriek.bgt_project_key",
"bgt_kostenrubriek.bgt_kostenrubriek_key = prs_kostensoortgrp.bgt_kostenrubriek_key",
"prs_kostensoortgrp.prs_kostensoortgrp_key = prs_kostensoort.prs_kostensoortgrp_key"
]
}
});
}
else
{
this.fields = fields_main;
delete this.fields.vat;
this.includes = {
"costcombinations": {
@@ -149,10 +259,8 @@ function model_prs_kostensoort()
"multiadd": "group"
}
};
this.REST_GET = generic_REST_GET(this);
}
this.REST_GET = generic_REST_GET(this);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);

View File

@@ -11,6 +11,7 @@
Notes:
*/
%>
<!-- #include file="../api2/model_bgt_budget.inc" -->
<!-- #include file="../api2/model_prs_kostensoort.inc" -->
<%
@@ -24,7 +25,11 @@ function model_prs_kostensoortgrp()
this.record_title = L("prs_kostensoortgrp");
this.records_title = L("prs_kostensoortgrp_m");
this.fields = {
var fields_main = {};
var fields_ext = {};
fields_main = {
"id": {
"dbs": "prs_kostensoortgrp_key",
"label": L("lcl_key"),
@@ -38,13 +43,10 @@ function model_prs_kostensoortgrp()
"dbs" : "bgt_kostenrubriek_key",
"label": L("bgt_kostenrubriek"),
"typ": "key",
//"required": true, /* TODO alleen als BGT */
"insertonly" : true,
"foreign": {
"tbl": "bgt_kostenrubriek",
"key": "bgt_kostenrubriek_key",
"desc": "bgt_kostenrubriek_oms"
}
"required": true,
"insertonly": true,
"foreign": bgt_budgetcostcategory_foreign(),
"showtransit": true
},
"name": {
"dbs": "prs_kostensoortgrp_oms",
@@ -62,12 +64,93 @@ function model_prs_kostensoortgrp()
}
};
if (S("bgt_enabled")) // alleen voor budgetcontrole
if (S("bgt_enabled"))
{
this.print = { xmlnode: "budget", where: "kostengroep"};
}
// Via Admin moet de context discipline/project toegevoegd worden.
fields_ext = {
"budgetdiscipline": {
"dbs": "bgt_project.ins_discipline_key",
"label": L("bgt_discipline_omschrijving"),
"typ": "key",
"required": true,
"foreign": bgt_budgetdiscipline_foreign(),
"showtransit": true
},
"budgetproject": {
"dbs": "bgt_project.bgt_project_key",
"label": L("bgt_project_omschrijving"),
"typ": "key",
"required": true,
"foreign": bgt_budgetproject_foreign(),
"showtransit": true
}
};
this.fields = object_merge({}, fields_ext, fields_main);
this.REST_GET = generic_REST_GET(this);
this.hook_pre_edit = function (obj, fld)
{
if ((obj.id > -1) || (obj.budgetcostcategory && obj.budgetcostcategory.id > -1))
{
this.fields.budgetdiscipline.hidden_fld = false;
this.fields.budgetdiscipline.readonly = true;
this.fields.budgetproject.hidden_fld = false;
this.fields.budgetproject.readonly = true;
}
if (obj.budgetcostcategory && obj.budgetcostcategory.id != -1)
{ // Nog even de parent gegevens erbij halen zodat deze readonly getoond worden.
var sql = "SELECT p.ins_discipline_key"
+ " , p.bgt_project_key"
+ " , r.bgt_kostenrubriek_key"
+ " , dp.bgt_disc_params_code ||' - '|| di.ins_discipline_omschrijving oms_disc"
+ " , p.bgt_project_code ||' - '|| p.bgt_project_omschrijving oms_proj"
+ " FROM bgt_disc_params dp"
+ " , ins_tab_discipline di"
+ " , bgt_project p"
+ " , bgt_kostenrubriek r"
+ " WHERE dp.bgt_ins_discipline_key = p.ins_discipline_key"
+ " AND di.ins_discipline_key = p.ins_discipline_key"
+ " AND p.bgt_project_key = r.bgt_project_key"
+ " AND r.bgt_kostenrubriek_key = " + obj.budgetcostcategory.id;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
obj.budgetdiscipline = {id:oRs("ins_discipline_key").Value, name: oRs("oms_disc").Value};
obj.budgetproject = {id: oRs("bgt_project_key").Value, name: oRs("oms_proj").Value};
}
oRs.Close();
}
%>
<script type="text/javascript">
<% if (obj.budgetdiscipline) { %> var budgetdiscipline = "<%=obj.budgetdiscipline.id%>"; <% } %>
<% if (obj.budgetproject) { %> var budgetproject = "<%=obj.budgetproject.id%>"; <% } %>
<% if (obj.budgetcostcategory) { %> var budgetcostcategory = "<%=obj.budgetcostcategory.id%>"; <% } %>
<% if (obj.costtypegroup) { %> var costtypegroup = "<%=obj.costtypegroup.id%>"; <% } %>
</script>
<%
}
this.REST_GET = generic_REST_GET(this, {
"GET": {
"tables": [
"bgt_project",
"bgt_kostenrubriek"
],
"wheres": [
"bgt_kostenrubriek.bgt_kostenrubriek_key = prs_kostensoortgrp.bgt_kostenrubriek_key",
"bgt_kostenrubriek.bgt_project_key = bgt_project.bgt_project_key"
]
}
});
}
else
{
this.fields = fields_main;
delete this.fields.budgetcostcategory;
this.REST_GET = generic_REST_GET(this);
}
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);

View File

@@ -20,7 +20,6 @@
<!-- #include file="../api2/model_fac_tracking.inc"-->
<!-- #include file="../api2/model_fac_gebruikersgroep.inc" -->
<!-- #include file="./model_prs_kenmerk.inc"-->
<!-- #include file="../mgt/mgt_tools.inc"-->
<%
function fnApiToken(oRs, field, model)
@@ -43,6 +42,7 @@ function model_prs_perslid(params)
this.records_name = "persons";
this.record_name = "person";
this.table = "prs_perslid";
this.trackcode = "PRSUPD";
this.audit = { // Parameters voor fac_audit.
"childtable": "fac_gebruikersgroep",
"childaudit": {"sql": "SELECT fac_audit_tabelkey"
@@ -51,11 +51,11 @@ function model_prs_perslid(params)
+ " AND fac_audit_waarde_oud IN ('{1}')"
}
};
this.softdelete = true;
this.soft_delete = "prs_perslid_verwijder";
this.primary = "prs_perslid_key";
this.record_title = L("prs_perslid");
this.records_title = L("prs_perslid_m");
this.autfunction = false; // we controleren zelf
this.autfunction = params.internal?false:"WEB_PRSSYS"; // we controleren zelf
this.fields = {
"id": {
@@ -87,12 +87,17 @@ function model_prs_perslid(params)
"label": L("lcl_prs_person_title"),
"typ": "varchar"
},
"employeenumber": {
"dbs": "prs_perslid_nr",
"label": L("lcl_prs_person_nr"),
"typ": "varchar"
},
"initials": {
"dbs": "prs_perslid_voorletters",
"label": L("lcl_prs_person_initials"),
"typ": "varchar"
},
"prefix": {
"middlename": {
"dbs": "prs_perslid_tussenvoegsel",
"label": L("lcl_prs_person_tussen"),
"typ": "varchar"
@@ -131,6 +136,12 @@ function model_prs_perslid(params)
"typ": "varchar",
"filter": "exact"
},
"externallogin": {
"dbs": "prs_perslid_externoslogin",
"label": L("prs_perslid_externoslogin"),
"typ": "varchar",
"filter": "exact"
},
"employment": {
"dbs": "prs_perslid_dienstverband",
"label": L("lcl_prs_person_dienstverband"),
@@ -146,6 +157,17 @@ function model_prs_perslid(params)
"label": L("lcl_prs_person_einddatum"),
"typ": "date"
},
"created": {
"dbs": "prs_perslid_aanmaak",
"label": L("prs_perslid_aanmaak"),
"typ": "datetime",
"readonly": true
},
"deactivated": {
"dbs": "prs_perslid_inactief",
"label": L("prs_perslid_inactief"),
"typ": "datetime"
},
"function": {
"dbs": "prs_srtperslid_key",
"label": L("lcl_prs_person_function"),
@@ -154,7 +176,18 @@ function model_prs_perslid(params)
"tbl": "prs_srtperslid",
"key": "prs_srtperslid_key",
"desc": "prs_srtperslid_omschrijving",
"desc_is_unique": true
"desc_is_unique": "prs_srtperslid_verwijder IS NULL"
}
},
"profile": {
"dbs": "fac_profiel_key",
"label": L("fac_profiel"),
"typ": "key",
"foreign": {
"tbl": "fac_profiel",
"key": "fac_profiel_key",
"desc": "fac_profiel_omschrijving",
"desc_is_unique": true // wordt overigens niet afgedwongen
}
},
"department": {
@@ -163,6 +196,11 @@ function model_prs_perslid(params)
"typ": "key",
"foreign": "prs_afdeling"
},
"externalid": {
"dbs": "prs_perslid_externid",
"label": L("prs_perslid_externid"),
"typ": "varchar"
},
"company": {
"dbs": "pa.prs_bedrijf_key",
"label": L("lcl_prs_company"),
@@ -244,6 +282,9 @@ function model_prs_perslid(params)
query.wheres.push("prs_perslid.prs_perslid_key = " + user_key);
else
{
// Zonder PRSSYS heb je hier niets mee te maken
query.wheres.push("SUBSTR(prs_perslid_oslogin, 0, 1) <> '_'");
// TODO: Ook nog ALG autorisatie?
if (authparamsUSE.PRSreadlevel == 0) // prs_bedrijf
{
@@ -278,9 +319,40 @@ function model_prs_perslid(params)
return json;
};
if (params.internal) // bijvoorbeeld idp die personen kan aanmaken
// We willen vooral dat je via Admin/Autorisatie personen niet met API kunt bewerken
if (!params.readonly) // wel bijvoorbeeld idp die personen kan aanmaken of SCIM api
{
this.REST_POST = generic_REST_POST(this);
this.REST_POST = function (params, jsondata, parent_key)
{
if (jsondata.externalid)
{ // Als hij al verwijderd bestond reanimeren we
// Onze eigen REST_GET geeft nooit verwijderde records, daarom via SQL
var sql = "SELECT prs_perslid_key, "
+ " prs_perslid_verwijder"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_externid = " + safe.quoted_sql(jsondata.externalid)
+ " AND prs_perslid_verwijder IS NOT NULL";
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
var the_key = oRs("prs_perslid_key").Value;
var verwijder = new Date(oRs("prs_perslid_verwijder").Value);
oRs.Close();
var sql = "UPDATE prs_perslid"
+ " SET prs_perslid_verwijder = NULL"
+ " WHERE prs_perslid_key = " + the_key;
Oracle.Execute(sql);
shared.trackaction("PRSLOG", the_key, "User was deleted on {0}, now reanimated.".format(toDateTimeString(verwijder, true)));
return generic_REST_PUT(this)(params, jsondata, the_key); // bijwerken
}
oRs.Close();
// doorvallen naar gewone POST
}
// Else gewoon een nieuwe
return generic_REST_POST(this)(params, jsondata, parent_key)
}
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}

View File

@@ -119,6 +119,7 @@ function model_reportcolumns(usrrap_key, params)
"datatype",
"visible",
"filter",
"filterdefault",
"group"
],
rowClass: this.fnrowClass

View File

@@ -301,9 +301,9 @@ function report_GET(params)
{
// Als parameters niet in de url zijn meegegeven is waarschijnlijk rechtstreeks de list
// aangeroepen. Pak dan de geconfigureerde defaults
def(params.filter, "scf_pivot", (this.list.autoPivot & 2)?2:0);
def(params.filter, "scf_graph", (this.list.autoGraph & 2) == 2?"on":"");
def(params.filter, "scf_cond", (this.list.autoCond & 2) == 2?"on":"");
def(params.filter, "scf_pivot", (this.list.autoPivot & 2) ? 1 : 0);
def(params.filter, "scf_graph", (this.list.autoGraph & 2) == 2 ? "on" : "");
def(params.filter, "scf_cond", (this.list.autoCond & 2) == 2 ? "on" : "");
if (!params.columns)
{

View File

@@ -11,6 +11,7 @@
Notes:
*/
%>
<!-- #include file="model_res_srtkenmerk.inc"-->
<%
function model_res_kenmerk(params)
{
@@ -124,6 +125,11 @@ function model_res_kenmerk(params)
}
};
this.getPropertyType = function (kenmerkdata)
{
var typedata = api2.GET(new model_res_srtkenmerk({internal: params.internal}), kenmerkdata.bookingpropertytype.id);
return typedata;
}
function buildVerplichtingList()
{ // LOV waarden voor required.

View File

@@ -249,7 +249,7 @@ function model_res_ruimte()
"dbs": "res_ruimte_extern_id",
"label": L("res_ruimte_extern_id"),
"typ": "varchar"
}
}
};
// veld "res_ruimte_extern_id" alleen te wijzigen met PRSSYS rechten.
@@ -268,7 +268,7 @@ function model_res_ruimte()
"joinfield": "bookingroom",
"multiadd": "bookingconfiguration",
"enable_update": true
}
}
};
// res_v_alg_ruimte_gegevens levert voor een koppelzaal meerdere records waardoor de opstelling ook meervoudig wordt weergegeven.

View File

@@ -12,14 +12,15 @@
*/
%>
<%
function model_res_srtkenmerk()
function model_res_srtkenmerk(params)
{
params = params || {};
this.records_name = "bookingpropertytypes";
this.record_name = "bookingpropertytype";
this.table = "res_srtkenmerk";
this.primary = "res_srtkenmerk_key";
this.soft_delete = "res_srtkenmerk_verwijder";
this.autfunction = "WEB_RESMGT";
this.autfunction = params.internal?false:"WEB_RESMGT";
this.record_title = L("mgt_srtkenmerk");
this.records_title = L("mgt_srtkenmerk_m");

View File

@@ -318,8 +318,8 @@ function model_reservations(rsv_key, params)
_validate_fields(dbfields, params, jsondata);
// Eerst een nieuw res_reservering record aanmaken
var resfields = { "id": { dbs: "res_reservering_key", typ: "key", seq: "res_s_res_reservering_key" },
"create": { dbs: "res_reservering_aanmaak", typ: "datetime", val: new Date() }
var resfields = { "id": { dbs: "res_reservering_key", typ: "key", seq: "res_s_res_reservering_key" },
"created": { dbs: "res_reservering_aanmaak", typ: "datetime", val: new Date() }
};
var resIns = buildInsert("res_reservering", resfields, { noValidateToken: true });
var reservering_key = resIns.sequences["res_reservering_key"];

View File

@@ -15,7 +15,6 @@
<!-- #include file="./model_cadcontours.inc" -->
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="./model_fac_tracking.inc"-->
<!-- #include file="../mgt/mgt_tools.inc"-->
<!-- #include file="./model_alg_kenmerk.inc"-->
<!-- #include file="./model_prs_ruimteafdeling.inc"-->
<%

View File

@@ -15,7 +15,6 @@
<!-- #include file="../Shared/discxalg3d.inc"-->
<!-- #include file="../bez/bez.inc" -->
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="../mgt/mgt_tools.inc"-->
<!-- #include file="./model_bez_kenmerk.inc"-->
<%
function model_visitors()

View File

@@ -0,0 +1,233 @@
<?xml version="1.0"?>
<component>
<?component error="true" debug="true"?>
<registration
description="scimgroups"
progid="flexwhere.WSC"
version="1.00"
classid="{6D817B6F-9D08-4636-AAD9-8BD7C5EFF56A}"
>
</registration>
<public>
<!-- properties -->
<!-- methods -->
<method name="initialize">
<PARAMETER name="params"/>
</method>
<method name="error_handler">
<PARAMETER name="code"/>
<PARAMETER name="msg"/>
<PARAMETER name="orgHandler"/>
</method>
<method name="transform_filter">
<PARAMETER name="filter"/>
</method>
<method name="transform_outgoing">
<PARAMETER name="params"/>
<PARAMETER name="data"/>
</method>
<method name="transform_incoming">
<PARAMETER name="params"/>
<PARAMETER name="data"/>
</method>
<method name="get_eTag">
<PARAMETER name="params"/>
<PARAMETER name="data"/>
</method>
</public>
<script language="javascript">
<![CDATA[
/* properties */
/* methods */
/*
/*
$Id$
File: scimgroups.wsc
*/
/* Globals */
var FCLT;
function initialize(params)
{
FCLT = params;
}
function error_handler(code, msg, orgHandler)
{
code = code || 500;
var data = {
"schemas" : ["urn:ietf:params:scim:api:messages:2.0:Error"],
"scimType": "invalidValue",
"detail" : msg,
"status" : code
};
FCLT.DEZE.Response.ContentType = "application/json";
FCLT.DEZE.Response.Write(FCLT.DEZE.JSON.stringify(data, null, 2));
var codestr = String(code);
if (typeof code == "number")
{
var codestr = { 400: "Bad request",
403: "Forbidden",
404: "Not Found",
422: "Unprocessable Entity" }[code];
if (codestr)
code = code + " " + codestr;
}
FCLT.DEZE.Response.Status = code;
FCLT.DEZE.Response.End;
}
function transform_filter(filter)
{
if ("count" in filter)
filter.limit = filter.count;
if ("startIndex" in filter)
filter.offset = filter.startIndex - 1;
if ("filter" in filter)
{
// Ontvangen filter: "filter": "id eq \"KFSG_authorizationgroup_703\""
var v_filter = filter.filter.replace ("id eq \"" + FCLT.DEZE.customerId + "_authorizationgroup_", "");
v_filter = v_filter.replace("\"", "");
filter.id = v_filter;
}
filter.nointernal = 1;
return filter;
}
function get_eTag(params, data)
{
if (data && typeof data == "object" && "meta" in data)
return data.meta.version;
return null;
}
function transform_incoming(params, data)
{
FCLT.DEZE.__Log(data);
var authorizationgroup =
{
name : data["displayName"],
externalid : data["externalId"]
};
var groep_key = data["id"].replace (FCLT.DEZE.customerId + "_authorizationgroup_", "");
var sql = "DELETE fac_rapport WHERE fac_rapport_node = 'SCIMGROUPS'";
FCLT.DEZE.Oracle.Execute(sql);
if (data["members"])
{
var oRs;
var member_id;
for (var j = 0; j < data["members"].length; j++)
{
if (data["members"][j].value)
{
member = data["members"][j].value;
member_id = member.replace (FCLT.DEZE.customerId + "_person_", "");
if (isNaN(member_id)) {
error_handler(500, "Ongeldige gebruiker", "");
}
sql = "INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel, fac_rapport_volgnr) "
+ " VALUES('SCIMGROUPS', " + groep_key + ", " + FCLT.DEZE.safe.quoted_sql(member_id) + ")";
oRs = FCLT.DEZE.Oracle.Execute(sql);
}
}
// We slaan de groep key tijdelijk op in fac_arapport_regel
// en de perslid_key in het volgnummer omdat deze uniek moet zijn.
sql = "INSERT INTO fac_gebruikersgroep ( fac_groep_key, prs_perslid_key) "
+ "SELECT fac_rapport_regel, fac_rapport_volgnr FROM fac_rapport r "
+ " WHERE NOT EXISTS (SELECT fac_gebruikersgroep_key "
+ " FROM fac_gebruikersgroep gg WHERE gg.prs_perslid_key = fac_rapport_volgnr AND gg.fac_groep_key = r.fac_rapport_regel)";
FCLT.DEZE.Oracle.Execute(sql);
sql = "DELETE fac_gebruikersgroep gg "
+ " WHERE fac_groep_key = " + groep_key
+ " AND NOT EXISTS (SELECT fac_rapport_volgnr "
+ " FROM fac_rapport r WHERE gg.prs_perslid_key = fac_rapport_volgnr AND gg.fac_groep_key = r.fac_rapport_regel)";
FCLT.DEZE.Oracle.Execute(sql);
//oRs.Close();
}
//FCLT.DEZE.__DoLog(authorizationgroup);
return { authorizationgroup: authorizationgroup };
}
function transform_one_group(params, authorizationgroup)
{
FCLT.DEZE.__Log(authorizationgroup);
var unique = FCLT.DEZE.customerId + "_authorizationgroup_" + String(authorizationgroup.id);
var onegroup = {
"displayName":authorizationgroup.name,
"externalId":authorizationgroup.externalid,
"id":unique,
"schemas":[
"urn:ietf:params:scim:schemas:core:2.0:Group",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:Group"
],
"members":[],
"meta":{
"created":authorizationgroup.created,
"lastModified":authorizationgroup.lastchange?authorizationgroup.lastchange:authorizationgroup.created,
"location":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Groups/" + unique,
"resourceType":"Group"
}
}
for (var j = 0; j < authorizationgroup.users.length; j++)
{
var user = authorizationgroup.users[j];
var unique = FCLT.DEZE.customerId + "_person_" + String(user.person.id);
onegroup.members.push({
"value":unique,
"type":"User",
"$ref":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Users/" + unique,
"display":user.person.name
})
}
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var eTag = '"' + oCrypto.hex_sha1(FCLT.DEZE.JSON.stringify(onegroup)).toLowerCase() + '"';
onegroup.meta["version"] = "W/" + eTag; // Weak eTag?
return onegroup;
}
function transform_outgoing(params, data)
{
if ("authorizationgroup" in data)
{
var oneauthorizationgroup = transform_one_group(params, data.authorizationgroup);
return oneauthorizationgroup;
}
if ("authorizationgroups" in data)
{
var allgroups = [];
for (var i = 0; i < data.authorizationgroups.length; i++)
{
var authorizationgroup = data.authorizationgroups[i];
allgroups.push(transform_one_group(params, authorizationgroup));
}
return {
"totalResults": data.total_count,
"itemsPerPage": allgroups.length,
"startIndex": 1,
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"Resources": allgroups
};
}
}
]]>
</script>
</component>

View File

@@ -0,0 +1,213 @@
<?xml version="1.0"?>
<component>
<?component error="true" debug="true"?>
<registration
description="scimOrgunits"
progid="scimOrgunits.WSC"
version="1.00"
classid="{6D817B6F-9D08-4636-AAD9-8BD7C5EFF56A}"
>
</registration>
<public>
<!-- properties -->
<!-- methods -->
<method name="initialize">
<PARAMETER name="params"/>
</method>
<method name="error_handler">
<PARAMETER name="code"/>
<PARAMETER name="msg"/>
<PARAMETER name="orgHandler"/>
</method>
<method name="transform_filter">
<PARAMETER name="filter"/>
</method>
<method name="transform_outgoing">
<PARAMETER name="params"/>
<PARAMETER name="data"/>
</method>
<method name="transform_incoming">
<PARAMETER name="params"/>
<PARAMETER name="data"/>
</method>
<method name="get_eTag">
<PARAMETER name="params"/>
<PARAMETER name="data"/>
</method>
</public>
<script language="javascript">
<![CDATA[
/* properties */
/* methods */
/*
/*
$Id$
File: scimorgunits.wsc
*/
/* Globals */
var FCLT;
// De omschrijving van de objecten in FACILITOR moet FW1, FW2 etc. zijn
var scimgroups_srtdeel_key = 258418;
function initialize(params)
{
FCLT = params;
}
function error_handler(code, msg, orgHandler)
{
code = code || 500;
var data = {
"schemas" : ["urn:ietf:params:scim:api:messages:2.0:Error"],
"scimType": "invalidValue",
"detail" : msg,
"status" : code
};
FCLT.DEZE.Response.ContentType = "application/json";
FCLT.DEZE.Response.Write(FCLT.DEZE.JSON.stringify(data, null, 2));
var codestr = String(code);
if (typeof code == "number")
{
var codestr = { 400: "Bad request",
403: "Forbidden",
404: "Not Found",
422: "Unprocessable Entity" }[code];
if (codestr)
code = code + " " + codestr;
}
FCLT.DEZE.Response.Status = code;
FCLT.DEZE.Response.End;
}
function transform_filter(filter)
{
if ("count" in filter)
filter.limit = filter.count;
if ("startIndex" in filter) {
filter.offset = filter.startIndex - 1;
filter.showall = 1;
}
if ("filter" in filter)
{
// Ontvangen filter: "filter": "id eq \"KFSG_department_703\""
var v_filter = filter.filter.replace ("id eq \"" + FCLT.DEZE.customerId + "_department_", "");
v_filter = v_filter.replace("\"", "");
filter.id = v_filter;
}
return filter;
}
function get_eTag(params, data)
{
if (data && typeof data == "object" && "meta" in data)
return data.meta.version;
return null;
}
function transform_incoming(params, data)
{
//FCLT.DEZE.__DoLog(data);
var department =
{
id : data["id"],
externalid : data["externalId"],
description: data["code"],
name : data["externalId"],
company : { name: "Schiphol Group" }
};
if ("costCenter" in data && data["costCenter"] != "")
{
department.costcentre = { name: data["costCenter"] }; // id mag achterwege blijven omdat desc_is_unique
var sql = "SELECT prs_kostenplaats_key FROM prs_kostenplaats "
+ "WHERE prs_kostenplaats_verwijder IS NULL "
+ " AND prs_kostenplaats_nr = " + FCLT.DEZE.safe.quoted_sql(department.costcentre.name);
var oRs = FCLT.DEZE.Oracle.Execute(sql);
if (oRs.eof)
{
sql = "INSERT INTO prs_kostenplaats (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module) "
+ "VALUES (" + FCLT.DEZE.safe.quoted_sql(department.costcentre.name) + "," + FCLT.DEZE.safe.quoted_sql(department.costcentre.name) + ",'PRS')";
FCLT.DEZE.Oracle.Execute(sql);
}
oRs.Close();
}
else
department.costcentre = { name: "" };
return { department: department };
}
function transform_one_department(params, department)
{
FCLT.DEZE.__Log(department);
var unique = FCLT.DEZE.customerId + "_department_" + String(department.id);
var onedepartment = {
"code":department.description,
"externalid":department.externalid,
"id":unique,
"schemas":[
"urn:ietf:params:scim:schemas:extension:2.0:OrgUnit",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:OrgUnit"
],
"meta":{
"created":department.created,
"lastModified":department.lastchange?department.lastchange:department.created,
"location":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/OrgUnits/" + unique,
"resourceType":"OrgUnit"
}
}
if (department.costcentre)
{
onedepartment.costCenter = department.costcentre.name;
}
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var eTag = '"' + oCrypto.hex_sha1(FCLT.DEZE.JSON.stringify(onedepartment)).toLowerCase() + '"';
onedepartment.meta["version"] = "W/" + eTag; // Weak eTag?
return onedepartment;
}
function transform_outgoing(params, data)
{
if ("department" in data)
{
var onedepartment = transform_one_department(params, data.department);
return onedepartment;
}
if ("departments" in data)
{
var alldepartments = [];
for (var i = 0; i < data.departments.length; i++)
{
var department = data.departments[i];
alldepartments.push(transform_one_department(params, department));
}
return {
"totalResults": data.total_count,
"itemsPerPage": alldepartments.length,
"startIndex": 1,
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"Resources": alldepartments
};
}
}
]]>
</script>
</component>

View File

@@ -0,0 +1,289 @@
<?xml version="1.0"?>
<component>
<?component error="true" debug="true"?>
<registration
description="scimusers"
progid="scimusers.WSC"
version="1.00"
classid="{6D817B6F-9D08-4636-AAD9-8BD7C5EFF56A}"
>
</registration>
<public>
<!-- properties -->
<!-- methods -->
<method name="initialize">
<PARAMETER name="params"/>
</method>
<method name="error_handler">
<PARAMETER name="code"/>
<PARAMETER name="msg"/>
<PARAMETER name="orgHandler"/>
</method>
<method name="transform_filter">
<PARAMETER name="filter"/>
</method>
<method name="transform_outgoing">
<PARAMETER name="params"/>
<PARAMETER name="data"/>
</method>
<method name="transform_incoming">
<PARAMETER name="params"/>
<PARAMETER name="data"/>
</method>
<method name="get_eTag">
<PARAMETER name="params"/>
<PARAMETER name="data"/>
</method>
</public>
<script language="javascript">
<![CDATA[
/* properties */
/* methods */
/*
/*
$Id$
File: scimusers.wsc
*/
/* Globals */
var FCLT;
function initialize(params)
{
FCLT = params;
}
function error_handler(code, msg, orgHandler)
{
code = code || 500;
var data = {
"schemas" : ["urn:ietf:params:scim:api:messages:2.0:Error"],
"scimType": "invalidValue",
"detail" : msg,
"status" : code
};
FCLT.DEZE.Response.ContentType = "application/json";
FCLT.DEZE.Response.Write(FCLT.DEZE.JSON.stringify(data, null, 2));
var codestr = String(code);
if (typeof code == "number")
{
var codestr = { 400: "Bad request",
403: "Forbidden",
404: "Not Found",
422: "Unprocessable Entity" }[code];
if (codestr)
code = code + " " + codestr;
}
FCLT.DEZE.Response.Status = code;
FCLT.DEZE.Response.End;
}
function transform_filter(filter)
{
if ("count" in filter)
filter.limit = filter.count;
if ("startIndex" in filter)
filter.offset = filter.startIndex - 1;
if ("filter" in filter)
{
// Ontvangen filter: "filter": "id eq \"KFSG_person_703\""
var v_filter = filter.filter.replace ("id eq \"" + FCLT.DEZE.customerId + "_person_", "");
v_filter = v_filter.replace("\"", "");
filter.id = v_filter;
}
return filter;
}
function get_eTag(params, data)
{
if (data && typeof data == "object" && "meta" in data)
return data.meta.version;
return null;
}
function get_element(data)
{
if (data == undefined) data = "";
return data;
}
function transform_incoming(params, data)
{
var enterprise = data["urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"];
var facilitor = data["urn:ietf:params:scim:schemas:extension:facilitor:2.0:User"];
var person =
{
login : get_element(data["userName"]),
externallogin: get_element(data["userName"]),
externalid : get_element(data["externalId"]),
lastname : get_element(data["name"]["familyName"]),
middlename : get_element(data["name"]["middleName"]),
firstname : get_element(data["name"]["givenName"]),
deactivated : data["active"]?null:new Date(),
employeenumber : get_element(enterprise["employeeNumber"])
};
person["function"] = { name: "Onbekend" }; // geen onderdeel van de interface
var dep_id = "";
if (facilitor["orgUnit"] && facilitor["orgUnit"]["value"] )
dep_id = facilitor["orgUnit"]["value"].replace (FCLT.DEZE.customerId + "_department_", "");
else
dep_id = 1; // bij het aanmaken van een nieuwe persoon is de afdeling nog leeg. Dan tijdelijke even onder onbekend hangen.
if (facilitor["initials"])
person.initials = get_element(facilitor["initials"]);
person["department"] = { id: dep_id };
if (data["emails"] && data["emails"][0])
{
person.email = get_element(data["emails"][0].value); // type:work/primary:true opzoeken ?
}
person.mobile = "";
person.phone = "";
if (data.phoneNumbers)
{
for (var j = 0; j < data["phoneNumbers"].length; j++)
{ if (data["phoneNumbers"][j]["type"] == 'mobile')
{
person.mobile = get_element(data["phoneNumbers"][j].value);
}
if (data["phoneNumbers"][j]["type"] == 'work')
{
person.phone = get_element(data["phoneNumbers"][j].value);
}
}
}
return { person: person };
}
function transform_one_person(params, person)
{
var unique = FCLT.DEZE.customerId + "_person_" + String(person.id);
var oneuser = {
"userName":person.externallogin || person.login,
"id":unique,
"name":{
"formatted":person.name,
"familyName":person.lastname
},
"schemas":[
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
],
"displayName":person.name,
"active": !person.deactivated,
"meta":{
"created":person.created,
"lastModified":person.lastchange?person.lastchange:person.created,
"location":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Users/" + unique,
"resourceType":"User"
},
"groups":[],
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" :
{
"employeeNumber":person.employeenumber
},
"urn:ietf:params:scim:schemas:extension:facilitor:2.0:User" :
{
"orgunit":
{
"value":FCLT.DEZE.customerId + "_department_" + String(person.department.id),
"$ref":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/OrgUnits/" + FCLT.DEZE.customerId + "_department_" + String(person.department.id)
},
"initials":person.initials
}
}
if (person.middlename) oneuser.name.middleName = person.middlename;
if (person.firstname) oneuser.name.givenName = person.firstname;
if (person.externalid) oneuser.externalId =person.externalid;
if (person.email)
{
oneuser.emails = [
{
"value":person.email,
"type":"work",
"primary":true
}];
}
var phoneNumbers = [];
if (person.mobile)
phoneNumbers.push(
{
"value":person.mobile,
"type":"mobile",
"primary":true
});
if (person.phone)
phoneNumbers.push(
{
"value":person.phone,
"type":"work",
"primary":false
});
oneuser.phoneNumbers = phoneNumbers;
var allgroups = [];
for (var j = 0; j < person.authorization.length; j++)
{
var group = person.authorization[j];
var unique = FCLT.DEZE.customerId + "_authorizationgroup_" + String(group.authorizationgroup.id);
oneuser.groups.push({
"value":unique,
"$ref":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Groups/" + unique,
"display":group.authorizationgroup.name
})
}
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var eTag = '"' + oCrypto.hex_sha1(FCLT.DEZE.JSON.stringify(oneuser)).toLowerCase() + '"';
oneuser.meta["version"] = "W/" + eTag; // Weak eTag?
return oneuser;
}
function transform_outgoing(params, data)
{
if ("person" in data)
{
var oneperson = transform_one_person(params, data.person);
return oneperson;
}
if ("persons" in data)
{
var allusers = [];
for (var i = 0; i < data.persons.length; i++)
{
var person = data.persons[i]; // _ users zijn er al wel uitgefiltert
allusers.push(transform_one_person(params, person));
}
return {
"totalResults": data.total_count,
"itemsPerPage": allusers.length,
"startIndex": (data.offset || 0) + 1,
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"Resources": allusers
};
}
}
]]>
</script>
</component>

View File

@@ -37,6 +37,7 @@ if (Session("org_user_key") > 0)
else
{
result.return_url = S("logoff_return_url");
var allow_auto_sso = false;
if (Session("idp_key") > 0)
{
var sql = "SELECT aut_idp_remote_logouturl"
@@ -44,11 +45,14 @@ else
+ " WHERE aut_idp_key = " + Session("idp_key");
var oRs = Oracle.Execute(sql);
if (oRs("aut_idp_remote_logouturl").Value)
{
result.return_url = oRs("aut_idp_remote_logouturl").Value;
allow_auto_sso = true;
}
oRs.Close();
}
doLogoff();
doLogoff(allow_auto_sso);
}
Response.Write(JSON.stringify(result));
Response.End;

23
APPL/AUT/LoggedOff.asp Normal file
View File

@@ -0,0 +1,23 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: LoggedOff.asp
Description: Toont simpelweg de tekst 'U bent uitgelogd' met een linkje terug naar het inlogscherm
Parameters:
Context: Bestand kan geconfigureerd worden als aut_idp_remote_logouturl
Note: Handig voor omgevingen waar de SSO op ip-adres automatisch
verloopt maar waar je geen goede generieke aut_idp_remote_logouturl weet
Dan kun je verwijzen naar ../aut/LoggedOff.asp
*/
ANONYMOUS_Allowed = 1;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="./login.inc" -->
<%
var lcl_loggedoff = "U bent nu afgemeld van FACILITOR.<br>Sluit uw browser of klik <a href='{0}'>hier</a> om weer aan te melden.".format(rooturl + "/");
shared.simpel_page(lcl_loggedoff);
%>

View File

@@ -18,14 +18,17 @@
<!-- #include file="../api2/model_prs_perslid.inc" -->
<%
// Elders is prs_key geauthenticeerd. Registreer die hier als de actieve gebruiker.
// stateless komen we hier al niet
function doLogin(prs_key, params)
{
__Log("==== doLogin " + prs_key);
params = params || {};
// Paranoia mode
var sql = "SELECT prs_perslid_login"
+ " , prs_perslid_einddatum"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_verwijder IS NULL"
+ " AND prs_perslid_inactief IS NULL"
+ " AND prs_perslid_key = " + prs_key;
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
@@ -34,8 +37,20 @@ function doLogin(prs_key, params)
eval("INTERNAL_ERROR_INVALID_LOGIN_" + prs_key);
}
var first_login = (oRs("prs_perslid_login").Value == null);
var einddatum = oRs("prs_perslid_einddatum").Value != null?new Date(oRs("prs_perslid_einddatum").Value): null;
oRs.Close();
if (S("prs_einddatum_login_grace") >= 0 && einddatum)
{
var last_allow_login = einddatum;
last_allow_login.setDate(last_allow_login.getDate() + S("prs_einddatum_login_grace"))
if (new Date().midnight() > last_allow_login)
{
doLogoff();
shared.simpel_page(L("lcl_einddatum_login_expired"));
}
}
if ("isFACFACinternal" in params) // vanuit JWT-sso
{
var deze = new Perslid(prs_key);
@@ -54,12 +69,6 @@ function doLogin(prs_key, params)
}
}
// Alvast nieuwe user_key loggen zodat je ziet wie er inlogt.
if (typeof NO_ADDHEADER == "undefined" && user_key != prs_key && Request.Servervariables("HTTP_FCLT_VERSION").Count > 0)
{ // wordt opgepikt door FCLTAPI.DLL voor in de logging en daarna gestript. Niet in Fiddler te zien dus
Response.AddHeader ("FCLT_USERID", customerId + "\\" + String(prs_key));
}
/* global */ user_key = prs_key;
//user_lang = oRs(1).Value; // globale moet er nog uit!
if (typeof LCL_Disable == "undefined")
@@ -74,7 +83,7 @@ function doLogin(prs_key, params)
var ip = String(Request.ServerVariables("REMOTE_ADDR"));
Session("last_ip") = ip; // onthouden voor ip_locking
if (!params.noFacSession) // AAEN infobord krijgt er anders 10 per minuut
if (!params.noFacSession && !params.stateless) // Oldstyle API krijgt er anders te veel
{
// Nu maar eens oudere opruimen. Effectief blijft altijd
// de laatste sessie van een gebruiker staan.
@@ -86,7 +95,7 @@ function doLogin(prs_key, params)
var agent = String(Request.ServerVariables("HTTP_USER_AGENT"));
// Welbeschouwd gebruiken we het volgende FAC_SESSION record nooit, we werken
// altijd met ASPSESSION==>IIS SESSION==>user_key
// altijd met ASPSESSION cookie==>IIS SESSION==>user_key
var sql = "INSERT INTO fac_session"
+ " (fac_session_sessionid_hash,"
+ " prs_perslid_key,"
@@ -141,7 +150,7 @@ function doLogin(prs_key, params)
oRs.Close();
// FACFAC tracken we altijd
if (!params.noFacSession) // fac_scan_cust genereert er anders te veel
if (!params.noFacSession && !params.stateless) // fac_scan_cust genereert er anders te veel
{
if (user.has("WEB_FACFAC"))
shared.trackaction("PRSLOG", user_key, L("lcl_logged_on").format(Session("ASPFIXATION").slice(-6)));
@@ -167,16 +176,6 @@ function doLogin(prs_key, params)
+ " )";
Oracle.Execute(sql, true);
}
else
{
__Log("Welcome.asp expired?");
var sql = "DELETE FROM fac_menu"
+ " WHERE fac_menu_altgroep = 5"
+ " AND fac_menu_alturl = " + safe.quoted_sql(S("fac_firstlogin_url"))
+ " AND prs_perslid_key = " + user_key
+ " AND fac_menu_aanmaak < SYSDATE - " + S("fac_firstlogin_expire");
Oracle.Execute(sql, true);
}
var fac_lang = getQParamSafe("fac_lang", "").toUpperCase(); // overrule via param
// Liever geen session maar m_connections heeft dit al nodig voor zijn fac.initsession
@@ -187,12 +186,21 @@ function doLogin(prs_key, params)
return true;
}
function doLoginStateless(prs_key, params)
{
/* global */ user_key = prs_key;
Session("user_key") = user_key; // Nu ben je pas *echt* ingelogd
/* global */ user = new Perslid(user_key); // wordt mogelijk nog overruled door imporsonate
Session("stateless") = 1;
Session.Abandon(); // Altijd, voor de zekerheid
}
// Session.Abondon is gevaarlijk: dan verlies je ook CustomerID etc.
// Bovendien krijg je met IIS dan nog steeds geen nieuwe ASPSESSIONID
function doLogoff()
function doLogoff(allow_auto_sso)
{
Session("no_sso") = 1; // Voorkom autosso
if (!allow_auto_sso)
Session("no_sso") = 1; // Voorkom auto_sso
Session.Contents.Remove("user_key");
Session.Contents.Remove("ASPFIXATION");
Session.Contents.Remove("must_reset_password");
@@ -245,7 +253,7 @@ function makeSessionCookie (sessionData)
+ "fac.makehash(" + safe.quoted_sql(sessionId) + "), "
+ user_key + ", "
+ safe.quoted_sql(sessionData) + ", "
+ " sysdate + " + S("login_remember_days") + ", " // sessie timeout op een half jaar.
+ " sysdate + " + S("login_remember_days") + ", " // sessie timeout op 30 dagen.
+ safe.quoted_sql(agent, 256) + ","
+ safe.quoted_sql(ip, 64) + " )"
Oracle.Execute(sql);
@@ -363,16 +371,16 @@ function testpassword(prs_key, wachtwoord, pmobile)
if (!wachtwoord)
return false;
var sql = " SELECT prs_perslid_key"
+ " , prs_perslid_flags"
+ " , prs_perslid_authenticatie"
+ " , prs_perslid_authenticatie_exp"
+ " , prs_perslid_salt"
+ " , prs_perslid_wachtwoord_hash"
+ " , prs_perslid_oslogin"
+ " , prs_perslid_apikey"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_key = " + prs_key;
var sql = "SELECT prs_perslid_key"
+ " , prs_perslid_flags"
+ " , prs_perslid_authenticatie"
+ " , prs_perslid_authenticatie_exp"
+ " , prs_perslid_salt"
+ " , prs_perslid_wachtwoord_hash"
+ " , prs_perslid_oslogin"
+ " , prs_perslid_apikey"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_key = " + prs_key;
var oRs = Oracle.Execute(sql);
var passsalt = oRs("prs_perslid_salt").Value;
@@ -383,14 +391,19 @@ function testpassword(prs_key, wachtwoord, pmobile)
var oslogin = oRs("prs_perslid_oslogin").Value;
oRs.Close();
if (pmobile==1 && mobauth) // Mobile 'verzonnen' wachtwoord
if (mobauth && mobauthexp && new Date() <= mobauthexp) // Mobile 'verzonnen' wachtwoord nog niet verlopen?
{
var mobww = wachtwoord.toLowerCase(); // wij sturen lowercase base32
mobww = mobww.replace(/0/i, 'o'); // 0 / 1 / 8 komen daar niet in voor
mobww = mobww.replace(/1/i, 'l');
mobww = mobww.replace(/8/i, 'b');
if (mobauth == mobww && mobauthexp && new Date() <= mobauthexp)
if (mobauth == mobww)
{
var sql = "UPDATE prs_perslid" // geen hergebruik
+ " SET prs_perslid_authenticatie = NULL"
+ " WHERE prs_perslid_key = " + prs_key;
Oracle.Execute(sql);
return true; // Goed
}
__Log("Mobile token check failed");
@@ -427,7 +440,7 @@ function testpassword(prs_key, wachtwoord, pmobile)
oRs.Close();
if (!found)
return false;
// else TODO upgraden!
// else iets verderop upgraden!
var workfactor = 0;
}
else // new style
@@ -474,11 +487,11 @@ function setpassword(prs_key, wachtwoord, expired)
{
var passsalt = shared.random(32);
var workfactor = S("prs_password_hash_factor");
var is_hash = pbkdf2(wachtwoord, passsalt, workfactor);
var new_hash = pbkdf2(wachtwoord, passsalt, workfactor);
var sql = "UPDATE prs_perslid" // Ooit expire op SYSDATE + fac.getsetting ('prs_password_expiration') als die is gevuld
+ " SET prs_perslid_wachtwoord_exp = " + (expired?"SYSDATE":"NULL")
+ " , prs_perslid_salt = " + safe.quoted_sql(passsalt)
+ " , prs_perslid_wachtwoord_hash = " + safe.quoted_sql('1${0}${1}'.format(workfactor, is_hash))
+ " , prs_perslid_wachtwoord_hash = " + safe.quoted_sql('1${0}${1}'.format(workfactor, new_hash))
+ " WHERE prs_perslid_key = " + prs_key;
Oracle.Execute(sql);
}
@@ -486,13 +499,12 @@ function setpassword(prs_key, wachtwoord, expired)
function testotp (prs_key, otprequest)
{
var sql = " SELECT prs_perslid_otpsecret"
+ " , prs_perslid_otpcounter"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_key = " + prs_key;
var sql = "SELECT prs_perslid_otpsecret"
+ " , prs_perslid_otpcounter"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_key = " + prs_key;
var oRs = Oracle.Execute(sql);
var otpsecret = oRs("prs_perslid_otpsecret").Value;
var otpcounter = oRs("prs_perslid_otpcounter").Value || -1;
oRs.Close();
@@ -536,6 +548,7 @@ function verify_otp (prs_key, otprequest, otpsecret, otpcounter)
return otp_oke;
}
// Op basis van usernaam/wachtwoord gaan we iemand authenticeren
function getIdentity(username, wachtwoord, params)
{
var result = { success: false, fail_reason: L("lcl_login_wrong") };
@@ -544,7 +557,7 @@ function getIdentity(username, wachtwoord, params)
if (!username || username == 'undefined')
return result;
if (username.indexOf("\\") > -1)
if (username.indexOf("\\") > -1 && S("aut_login_strip_domain") == 1)
username = username.split("\\")[1]; // strip domain name
// Brute force protection
@@ -601,32 +614,37 @@ function getIdentity(username, wachtwoord, params)
var oSLNKDWF = new ActiveXObject("SLNKDWF.About");
// maximaal 80 seconde slapen, anders ASP-timeout
var sleepsec = Math.min(80, S("prs_login_lockout_delay") * Math.pow(S("prs_login_lockout_delayfactor"), founddata.count - 1));
__Log("Vanwege {0} pogingen ga ik {1}ms slapen".format(founddata.count, 1000*sleepsec), "ffd0d0");
oSLNKDWF.Sleep(1000 * sleepsec);
}
var logins = [];
logins.push(" prs_perslid_apikey = " + safe.quoted_sql(username, 128)); // Die mag altijd wel
if (S("login_use_email"))
{
logins.push(" upper(prs_perslid_email) = " + safe.quoted_sql_upper(username));
}
else if (getQParam("API", ""))
{
logins.push(" prs_perslid_apikey = " + safe.quoted_sql_upper(username, 128));
wachtwoord = null;
}
else
{
logins.push(" prs_perslid_oslogin = " + safe.quoted_sql_upper(username, 30));
logins.push(" prs_perslid_oslogin2 = " + safe.quoted_sql_upper(username, 30));
}
var sql = " SELECT prs_perslid_key, "
+ " prs_perslid_flags"
+ " , prs_perslid_otpsecret"
+ " , prs_perslid_otpcounter"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_verwijder IS NULL"
+ " AND (" + logins.join(" OR ") + ")"
+ " AND BITAND(prs_perslid_flags, 1+4+8) = 0"; // 2==unconfirmed staan we nog heel even toe
var block_flags = 4+8; // Niet grouped of blocked, 2==unconfirmed staan we nog heel even toe
if (!params.stateless)
{
block_flags += 1; // systemuser ook niet interactief
}
var sql = "SELECT prs_perslid_key "
+ " , prs_perslid_flags"
+ " , prs_perslid_otpsecret"
+ " , prs_perslid_otpcounter"
+ " , prs_perslid_apikey"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_verwijder IS NULL"
+ " AND prs_perslid_inactief IS NULL"
+ " AND (" + logins.join(" OR ") + ")"
+ " AND BITAND(prs_perslid_flags, " + block_flags + ") = 0";
var oRs = Oracle.Execute(sql);
if (oRs.Eof) // Gebruikersnaam niet eens gevonden
@@ -637,9 +655,11 @@ function getIdentity(username, wachtwoord, params)
var usStart = oSLNKDWF.usTimer;
var test_hash = oCrypto.hex_pbkdf2("password", "salt", Math.pow(2, workfactor - 5), 20); // 1/32e van een echt wachtwoord als test
var tmicro = oSLNKDWF.usTimer - usStart;
__Log("Vanwege niet gevonden gebruiker {0}ms slapen".format(Math.round(tmicro / 1000 * 32)), "ffd0d0");
var oSLNKDWF = new ActiveXObject("SLNKDWF.About");
var sleepmsec = Math.min(80000, tmicro / 1000 * 32);
var sleepmsec = Math.min(80000, tmicro / 1000 * 31);
oSLNKDWF.Sleep(sleepmsec);
oRs.Close();
return result;
}
@@ -647,7 +667,13 @@ function getIdentity(username, wachtwoord, params)
var otpcounter = oRs("prs_perslid_otpcounter").Value || -1;
var found = false;
if (/* nog niet vanuit SAML/default.asp params.noPassword && */ wachtwoord == null) // SSO
if (oRs("prs_perslid_apikey").Value === username)
{
params.stateless = true;
wachtwoord = null; // die is verder irrelevant
found = true; // En zijn we verder wel klaar
}
else if (/* nog niet vanuit SAML/default.asp params.noPassword && */ wachtwoord == null) // SSO
found = true; // En zijn we verder wel klaar
else
found = testpassword(oRs("prs_perslid_key").Value, wachtwoord, params.mobile);
@@ -722,7 +748,12 @@ function tryLogin(username, wachtwoord, params)
return false;
if (ident.user_key > 0)
doLogin(ident.user_key, params);
{
if (ident.stateless || params.stateless)
doLoginStateless(ident.user_key, params);
else
doLogin(ident.user_key, params);
}
return true;
}
@@ -1002,11 +1033,6 @@ function SimpleSSO()
__Log('User#2a = '+username);
}
if (username !='' && username!='undefined') {
// Strip domain name
while( (i = username.indexOf('\\')) >= 0 ) {
l = username.length;
if( i < l-1 ) username = username.substring(i+1,l);
}
tryLogin(username, null, { noPassword: true });
}
}
@@ -1034,11 +1060,6 @@ function IntegratedSSO()
}
if (username !='' && username!='UNDEFINED')
{
// Strip domain name
while( (i = username.indexOf('\\')) >= 0 ) {
l = username.length;
if( i < l-1 ) username = username.substring(i+1,l);
}
tryLogin(username, null, { noPassword: true });
}
}
@@ -1048,20 +1069,24 @@ function jwt_create(perslid_key, aud)
{
var thisPrs = new Perslid(perslid_key)
var sp_key = -1;
var sql = "SELECT *"
+ " FROM fac_sp"
+ " WHERE fac_sp_audience = " + safe.quoted_sql(aud); // TODO ook issuer meenemen?
+ " FROM aut_sp"
+ " WHERE aut_sp_audience = " + safe.quoted_sql(aud); // TODO ook issuer meenemen?
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
shared.internal_error("Service provider for '{0}' is not configured for {1}".format(safe.html(aud), customerId));
sp_key = oRs("fac_sp_key").value;
var sp_key = oRs("aut_sp_key").value;
if (oRs("aut_sp_loglevel").Value > 0)
__Logging = oRs("aut_sp_loglevel").Value;
if (oRs("fac_functie_key").Value)
user.checkAutorisation(oRs("fac_functie_key").Value); // dan moet je die hebben
var params = {
usermapping: oRs("fac_sp_usermapping").Value,
iss: oRs("fac_sp_issuer").Value,
usermapping: oRs("aut_sp_usermapping").Value,
iss: oRs("aut_sp_issuer").Value,
aud: aud,
secret: oRs("fac_sp_secret").Value
secret: oRs("aut_sp_secret").Value
};
oRs.Close();
@@ -1073,18 +1098,18 @@ function jwt_create(perslid_key, aud)
aud: params.aud
}
// fac_sp_map bevat de attributen die wij vrijgeven voor deze SP
// aut_sp_map bevat de attributen die wij vrijgeven voor deze SP
if (sp_key > 0)
{
var sql = "SELECT *"
+ " FROM fac_sp_map"
+ " WHERE fac_sp_key = " + sp_key;
+ " FROM aut_sp_map"
+ " WHERE aut_sp_key = " + sp_key;
var oRs = Oracle.Execute(sql);
while (!oRs.Eof)
{
var clm = oRs("fac_sp_map_to").Value; // zo gaat hij heten in de JWT
switch (oRs("fac_sp_map_from").Value) // zie model_fac_sp_map.inc voor codering
var clm = oRs("aut_sp_map_to").Value; // zo gaat hij heten in de JWT
switch (oRs("aut_sp_map_from").Value) // zie model_aut_sp_map.inc voor codering
{
// Zo veel mogelijk volgens http://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims
case 1: claim[clm] = thisPrs.oslogin();
@@ -1266,6 +1291,8 @@ function trySSO(ssocode)
var isFACFACinternal = oRs("aut_idp_internal").Value != 0;
var ip_restrict = oRs("aut_idp_ipfilter").Value;
if (oRs("aut_idp_ipauto").Value)
ip_restrict = ""; // dan is het geen te forceren filter
if (isFACFACinternal && S("idp_internal_anyuser"))
ip_restrict = ""; // dan niet al te moeilijk doen
var ip_ok = true;
@@ -1284,7 +1311,7 @@ function trySSO(ssocode)
}
if (!ip_ok)
shared.internal_error("IP {0} not allowed for IDP '{0}'".format(ip, ssocode)); // TODO of 400 code forbidden?
shared.internal_error("IP {0} not allowed for IDP '{1}' ({2})".format(ip, ssocode, oRs("aut_idp_omschrijving").Value)); // TODO of 400 code forbidden?
var return_to = String(Request.ServerVariables("URL")).substr(rooturl.length) + "?" + String(Request.ServerVariables("QUERY_STRING"));
return_to = return_to.replace(/^\/default.asp/i, "/"); // default.asp vooraan hoeft niet, ik wil cleane url
@@ -1353,14 +1380,14 @@ function process_claim(claim, idp_data, params)
{
case 1: // login
settings.overrule_setting("login_use_email", 0);
tryLogin(claim[idpm.from], null, { noPassword: true, idp_code: idp_data.code, noFacSession: params.by_bearer, isFACFACinternal: isFACFACinternal });
tryLogin(claim[idpm.from], null, { noPassword: true, idp_code: idp_data.code, stateless: params.by_bearer, isFACFACinternal: isFACFACinternal });
break;
case 9: // email
settings.overrule_setting("login_use_email", 1);
tryLogin(claim[idpm.from], null, { noPassword: true, idp_code: idp_data.code, noFacSession: params.by_bearer, isFACFACinternal: isFACFACinternal });
tryLogin(claim[idpm.from], null, { noPassword: true, idp_code: idp_data.code, stateless: params.by_bearer, isFACFACinternal: isFACFACinternal });
break;
case 99: // internal, prs_perslid_key
doLogin(parseInt(claim[idpm.from], 10), { noFacSession: params.by_bearer, idp_code: idp_data.code, isFACFACinternal: isFACFACinternal });
doLogin(parseInt(claim[idpm.from], 10), { stateless: params.by_bearer, idp_code: idp_data.code, isFACFACinternal: isFACFACinternal });
break;
default:
if (idpm.name.id > 1000) // Flexkenmerk
@@ -1377,7 +1404,7 @@ function process_claim(claim, idp_data, params)
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
doLogin(oRs("prs_perslid_key").Value, { noFacSession: params.by_bearer, idp_code: idp_data.code, isFACFACinternal: isFACFACinternal });
doLogin(oRs("prs_perslid_key").Value, { stateless: params.by_bearer, idp_code: idp_data.code, isFACFACinternal: isFACFACinternal });
}
oRs.Close();
}
@@ -1397,218 +1424,227 @@ function process_claim(claim, idp_data, params)
|| user_key > 0 && idp_data.autocreate.id & 2 // en/ of bijwerken
)
{
var persdata = { };
for (var i =0; i < idp_data.idpmappings.length; i++)
{
var idpm = idp_data.idpmappings[i];
var val = idpm["default"];
if (idpm.from in claim)
val = claim[idpm.from];
process_claim_update(claim, idp_data, params)
}
}
switch (idpm.name.id) // zie model_aut_idp_map.inc voor codering
function process_claim_update(claim, idp_data, params)
{
var isFACFACinternal = idp_data.internal != 0;
var persdata = { };
for (var i =0; i < idp_data.idpmappings.length; i++)
{
var idpm = idp_data.idpmappings[i];
var val = idpm["default"];
if (idpm.from in claim)
val = claim[idpm.from];
switch (idpm.name.id) // zie model_aut_idp_map.inc voor codering
{
case 1: persdata["login"] = val; break;
case 2: persdata["lastname"] = val; break;
case 3: persdata["firstname"] = val; break;
case 4: persdata["middlename"] = val; break;
case 5: persdata["initials"] = val; break;
case 6: persdata["gender"] = val; break;
case 7: persdata["phone"] = val; break;
case 8: persdata["title"] = val; break;
case 9: persdata["email"] = val; break;
case 10: persdata["phone"] = val; break;
case 11: persdata["mobile"] = val; break;
case 12: persdata["externalid"] = val; break;
// de foreigns
case 20: if (val)
persdata["function"] = { name: val }; break; // Kan omdat fields.function.desc_is_unique is gezet
case 21: if (val) // afdeling
{
case 1: persdata["login"] = val; break;
case 2: persdata["lastname"] = val; break;
case 3: persdata["firstname"] = val; break;
case 4: persdata["prefix"] = val; break;
case 5: persdata["initials"] = val; break;
case 6: persdata["gender"] = val; break;
case 7: persdata["phone"] = val; break;
case 8: persdata["title"] = val; break;
case 9: persdata["email"] = val; break;
case 10: persdata["phone"] = val; break;
case 11: persdata["mobile"] = val; break;
// de foreigns
case 20: if (val)
persdata["function"] = { name: val }; break; // Kan omdat fields.function.desc_is_unique is gezet
case 21: if (val) // afdeling
// Zoek afdeling
var sql = "SELECT prs_afdeling_key"
+ " FROM prs_v_afdeling"
+ " WHERE prs_afdeling_verwijder IS NULL"
+ " AND prs_afdeling_upper = " + safe.quoted_sql_upper(val);
if (idp_data.department)
{
// Zoek afdeling
var sql = "SELECT prs_afdeling_key"
+ " FROM prs_v_afdeling"
+ " WHERE prs_afdeling_verwijder IS NULL"
+ " AND prs_afdeling_upper = " + safe.quoted_sql_upper(val);
if (idp_data.department)
{
sql += " AND prs_afdeling_parentkey = " + idp_data.department.id;
}
else
{
if (idp_data.company)
sql += " AND prs_bedrijf_key = " + idp_data.company.id;
}
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
{
__Log("Claimed department {0} not found".format(val));
// Er komt eventueel wel een fallback naar idp_data.department.id
}
else
{
var afd_key = oRs("prs_afdeling_key").Value;
oRs.MoveNext();
if (!oRs.Eof)
shared.internal_error("Claimed department {0} not unique".format(val));
persdata["department"] = afd_key;
}
oRs.Close();
break;
}
// De 1-n
case 100: persdata.authorisation = val; break;
case 101: persdata.workplace = val; break;
// case 102: persdata.workplacevirtual = val; break;
// case 103: reserved voor mandatering?
default:
if (idpm.name.id > 1000)
set_custom_field(persdata, idpm.name.id - 1000, val, "C");
break;
}
}
// Klantspecifieke check functie (hookfunction) voor de invoer
var pResult = new HookResult();
if (!custfunc.aut_process_claim(persdata, claim, idp_data, pResult))
{
abort_with_warning(pResult.errmsg);
}
if (!("department" in persdata))
{
if (!idp_data.department)
shared.internal_error("Department is not configured for Identity Provider {0} ({1})".format(idp_data.code, idp_data.name));
persdata["department"] = idp_data.department.id; // dan moet die ingevuld zijn
}
if (user_key < 0)
__Log("User automatically created with data:");
else
__Log("User automatically updated with data:");
__Log(persdata);
var persparams = {};
var person = new model_prs_perslid({ internal: true }); // Internal: true om dit (nog) anoniem te mogen doen
if (user_key > 0) // bijwerken
{
person.REST_PUT( persparams, persdata, user_key );
}
else // nieuwe
{
var prs = person.REST_POST( persparams, persdata );
__DoLog("Created user '{0} {1}' with key {2} for idp '{3}'".format(persdata["firstname"], persdata["lastname"], prs.key, idp_data.code));
// De nieuw aangemaakte gebruiker inloggen:
doLogin(prs.key, { idp_code: idp_data.code, isFACFACinternal: isFACFACinternal });
// En nu pas kunnen we tracken
shared.trackaction("PRSUPD", prs.key, "Created user '{0} {1}' for idp '{2}'".format(persdata["firstname"], persdata["lastname"], idp_data.code));
}
// Nu authorisatie groepen nog bijwerken
// Via het model was me even iets te hoog gegrepen: ik zou toch (nog) de id's er bij moeten halen
if ("authorisation" in persdata)
{ // authorisation bevat gebruikersgroepen gescheiden door '|' of ';'
/* SHIB: Within each CGI variable or header (see below), multiple attribute values
are separated by a semicolon, and semicolons in values are escaped with a backslash.
The data should be interpreted as UTF-8, which is a superset of ASCII.
*/
var autharr = persdata["authorisation"].toLowerCase().split(/[;\|]/); // lowerCase, insensitive dus
var sql = "DELETE FROM fac_gebruikersgroep"
+ " WHERE prs_perslid_key = " + user_key
+ " AND fac_groep_key NOT IN (SELECT fac_groep_key "
+ " FROM fac_groep"
+ " WHERE LOWER(fac_groep_omschrijving) IN ({0})".format(safe.quoted_sql_join(autharr))
+ " OR SUBSTR(fac_groep_omschrijving, 1, 1) = '_'" // Die blijven altijd
+ " )";
Oracle.Execute(sql);
var sql = "INSERT INTO fac_gebruikersgroep(prs_perslid_key, fac_groep_key)"
+ " SELECT " + user_key + ", fac_groep_key"
+ " FROM fac_groep fg"
+ " WHERE LOWER(fac_groep_omschrijving) IN ({0})".format(safe.quoted_sql_join(autharr))
+ " AND SUBSTR(fac_groep_omschrijving, 1, 1) <> '_'" // Die nooit
+ " AND NOT EXISTS (SELECT 1"
+ " FROM fac_gebruikersgroep fg2"
+ " WHERE fg2.fac_groep_key = fg.fac_groep_key"
+ " AND fg2.prs_perslid_key = " + user_key + ")";
Oracle.Execute(sql);
}
if ("workplace" in persdata)
{
// Eerst oude werkplekken ophalen
var sql = "SELECT pw.prs_werkplek_key, UPPER(alg_plaatsaanduiding) alg_plaatsaanduiding"
+ " FROM prs_perslidwerkplek pw, prs_werkplek wp, alg_v_plaatsaanduiding"
+ " WHERE pw.prs_perslid_key = " + user_key
+ " AND pw.prs_werkplek_key = wp.prs_werkplek_key"
+ " AND wp.prs_werkplek_type = 0" // alleen vaste plekken
+ " AND alg_onroerendgoed_keys = wp.prs_alg_ruimte_key"
+ " AND alg_onroerendgoed_type = 'R'";
var oRs = Oracle.Execute(sql);
var oldWP = {};
while (!oRs.Eof)
{
oldWP[oRs("alg_plaatsaanduiding").Value] = oRs("prs_werkplek_key").Value;
oRs.MoveNext();
}
oRs.Close();
// workplace bevat ruimtes gescheiden door '|' of ';'
// (we ondersteunen alleen impliciete werkplekken, geen 'named')
// Codering moet volgens alg_v_plaatsaanduiding zijn (locatiecode-gebouwcode-verdiepingcode-ruimtenr)
// Als er een '@' voor staat is het een virtuele werkplek
persdata["workplace"] = persdata["workplace"] || "";
var workplacearr = persdata["workplace"].split(/[;\|]/);
for (var i = 0; i < workplacearr.length; i++)
{
var wpcode = workplacearr[i];
var virtual = 0;
if (wpcode.substr(0, 1) == '@')
{
virtual = 1;
wpcode = wpcode.substr(1);
}
if (wpcode in oldWP)
{
delete oldWP[wpcode]; // Hoeven we straks niet te wissen
}
else // Toevoegen
{
var sql = "SELECT alg_onroerendgoed_keys"
+ " FROM alg_v_plaatsaanduiding"
+ " WHERE alg_onroerendgoed_type = 'R'"
+ " AND UPPER(alg_plaatsaanduiding) = " + safe.quoted_sql_upper(wpcode);
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
delete oldWP[wpcode.toUpperCase()]; // Die zal hergebruikt worden
var okey = oRs("alg_onroerendgoed_keys").Value;
sql = "BEGIN"
+ " prs.movetoruimte ({0}, {1}, '{2}', {3}); ".format(user_key, okey, 'G', virtual) // G want maar <20><>n werkplek per gebouw
+ "END;";
Oracle.Execute(sql);
}
else
__Log("Workplace '{0}' not found".format(workplacearr[i]));
oRs.Close();
}
}
for (wpcode in oldWP) // restant opruimen
{
__Log("Persoon verwijderen van WP {0}, wp-key {1}".format(wpcode, oldWP[wpcode]));
if (S("prs_werkplek_implicit") == 1)
{
var sql = "DELETE FROM prs_werkplek"
+ " WHERE prs_werkplek_key = " + oldWP[wpcode];
sql += " AND prs_afdeling_parentkey = " + idp_data.department.id;
}
else
{
var sql = "DELETE FROM prs_perslid_werkplek"
+ " WHERE prs_perslid_key = " + user_key
+ " AND prs_werkplek_key = " + oldWP[wpcode];
if (idp_data.company)
sql += " AND prs_bedrijf_key = " + idp_data.company.id;
}
Oracle.Execute(sql);
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
{
__Log("Claimed department {0} not found".format(val));
// Er komt eventueel wel een fallback naar idp_data.department.id
}
else
{
var afd_key = oRs("prs_afdeling_key").Value;
oRs.MoveNext();
if (!oRs.Eof)
shared.internal_error("Claimed department {0} not unique".format(val));
persdata["department"] = afd_key;
}
oRs.Close();
break;
}
case 22: if (val)
persdata["profile"] = { name: val }; break; // Kan omdat fields.function.desc_is_unique is gezet
// De 1-n
case 100: persdata.authorisation = val; break;
case 101: persdata.workplace = val; break;
// case 102: persdata.workplacevirtual = val; break;
// case 103: reserved voor mandatering?
default:
if (idpm.name.id > 1000)
set_custom_field(persdata, idpm.name.id - 1000, val, "C");
break;
}
}
// Klantspecifieke check functie (hookfunction) voor de invoer
var pResult = new HookResult();
if (!custfunc.aut_process_claim(persdata, claim, idp_data, pResult))
{
abort_with_warning(pResult.errmsg);
}
if (!("department" in persdata))
{
if (!idp_data.department)
shared.internal_error("Department is not configured for Identity Provider {0} ({1})".format(idp_data.code, idp_data.name));
persdata["department"] = idp_data.department.id; // dan moet die ingevuld zijn
}
if (user_key < 0)
__Log("User automatically created with data:");
else
__Log("User automatically updated with data:");
__Log(persdata);
var persparams = {};
var person = new model_prs_perslid({ internal: true }); // Internal: true om dit (nog) anoniem te mogen doen
if (user_key > 0) // bijwerken
{
person.REST_PUT( persparams, persdata, user_key );
}
else // nieuwe
{
var prs = person.REST_POST( persparams, persdata );
__DoLog("Created user '{0} {1}' with key {2} for idp '{3}'".format(persdata["firstname"], persdata["lastname"], prs.key, idp_data.code));
// De nieuw aangemaakte gebruiker inloggen:
doLogin(prs.key, { idp_code: idp_data.code, isFACFACinternal: isFACFACinternal });
// En nu pas kunnen we tracken
shared.trackaction("PRSUPD", prs.key, "Created user '{0} {1}' for idp '{2}'".format(persdata["firstname"], persdata["lastname"], idp_data.code));
}
// Nu authorisatie groepen nog bijwerken
// Via het model was me even iets te hoog gegrepen: ik zou toch (nog) de id's er bij moeten halen
if ("authorisation" in persdata)
{ // authorisation bevat gebruikersgroepen gescheiden door '|' of ';'
/* SHIB: Within each CGI variable or header (see below), multiple attribute values
are separated by a semicolon, and semicolons in values are escaped with a backslash.
The data should be interpreted as UTF-8, which is a superset of ASCII.
*/
var autharr = persdata["authorisation"].toLowerCase().split(/[;\|]/); // lowerCase, insensitive dus
var sql = "DELETE FROM fac_gebruikersgroep"
+ " WHERE prs_perslid_key = " + user_key
+ " AND fac_groep_key NOT IN (SELECT fac_groep_key "
+ " FROM fac_groep"
+ " WHERE LOWER(fac_groep_omschrijving) IN ({0})".format(safe.quoted_sql_join(autharr))
+ " OR SUBSTR(fac_groep_omschrijving, 1, 1) = '_'" // Die blijven altijd
+ " )";
Oracle.Execute(sql);
var sql = "INSERT INTO fac_gebruikersgroep(prs_perslid_key, fac_groep_key)"
+ " SELECT " + user_key + ", fac_groep_key"
+ " FROM fac_groep fg"
+ " WHERE LOWER(fac_groep_omschrijving) IN ({0})".format(safe.quoted_sql_join(autharr))
+ " AND SUBSTR(fac_groep_omschrijving, 1, 1) <> '_'" // Die nooit
+ " AND NOT EXISTS (SELECT 1"
+ " FROM fac_gebruikersgroep fg2"
+ " WHERE fg2.fac_groep_key = fg.fac_groep_key"
+ " AND fg2.prs_perslid_key = " + user_key + ")";
Oracle.Execute(sql);
}
if ("workplace" in persdata)
{
// Eerst oude werkplekken ophalen
var sql = "SELECT pw.prs_werkplek_key, UPPER(alg_plaatsaanduiding) alg_plaatsaanduiding"
+ " FROM prs_perslidwerkplek pw, prs_werkplek wp, alg_v_plaatsaanduiding"
+ " WHERE pw.prs_perslid_key = " + user_key
+ " AND pw.prs_werkplek_key = wp.prs_werkplek_key"
+ " AND wp.prs_werkplek_type = 0" // alleen vaste plekken
+ " AND alg_onroerendgoed_keys = wp.prs_alg_ruimte_key"
+ " AND alg_onroerendgoed_type = 'R'";
var oRs = Oracle.Execute(sql);
var oldWP = {};
while (!oRs.Eof)
{
oldWP[oRs("alg_plaatsaanduiding").Value] = oRs("prs_werkplek_key").Value;
oRs.MoveNext();
}
oRs.Close();
// workplace bevat ruimtes gescheiden door '|' of ';'
// (we ondersteunen alleen impliciete werkplekken, geen 'named')
// Codering moet volgens alg_v_plaatsaanduiding zijn (locatiecode-gebouwcode-verdiepingcode-ruimtenr)
// Als er een '@' voor staat is het een virtuele werkplek
persdata["workplace"] = persdata["workplace"] || "";
var workplacearr = persdata["workplace"].split(/[;\|]/);
for (var i = 0; i < workplacearr.length; i++)
{
var wpcode = workplacearr[i];
var virtual = 0;
if (wpcode.substr(0, 1) == '@')
{
virtual = 1;
wpcode = wpcode.substr(1);
}
if (wpcode in oldWP)
{
delete oldWP[wpcode]; // Hoeven we straks niet te wissen
}
else // Toevoegen
{
var sql = "SELECT alg_onroerendgoed_keys"
+ " FROM alg_v_plaatsaanduiding"
+ " WHERE alg_onroerendgoed_type = 'R'"
+ " AND UPPER(alg_plaatsaanduiding) = " + safe.quoted_sql_upper(wpcode);
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
delete oldWP[wpcode.toUpperCase()]; // Die zal hergebruikt worden
var okey = oRs("alg_onroerendgoed_keys").Value;
sql = "BEGIN"
+ " prs.movetoruimte ({0}, {1}, '{2}', {3}); ".format(user_key, okey, 'G', virtual) // G want maar <20><>n werkplek per gebouw
+ "END;";
Oracle.Execute(sql);
}
else
__Log("Workplace '{0}' not found".format(workplacearr[i]));
oRs.Close();
}
}
for (wpcode in oldWP) // restant opruimen
{
__Log("Persoon verwijderen van WP {0}, wp-key {1}".format(wpcode, oldWP[wpcode]));
if (S("prs_werkplek_implicit") == 1)
{
var sql = "DELETE FROM prs_werkplek"
+ " WHERE prs_werkplek_key = " + oldWP[wpcode];
}
else
{
var sql = "DELETE FROM prs_perslid_werkplek"
+ " WHERE prs_perslid_key = " + user_key
+ " AND prs_werkplek_key = " + oldWP[wpcode];
}
Oracle.Execute(sql);
}
}
}

View File

@@ -71,6 +71,8 @@
if (user_key > 0)
{
// Onthouden hoe je bent binnengekomen zodat logout naar logout_url kan leiden
Session("idp_key") = idp_data.id;
var return_to = getQParam("return_to", "/") || "/";
Response.Redirect(rooturl + return_to);
}

View File

@@ -24,6 +24,8 @@ var JSON_Result = true;
var client_id = getQParam("client_id");
var device_id = getQParam("device_id", "AUTO_" + shared.random(32)); // optional device identification
// Hetzelfde device krijgt altijd hetzelfde token terug
var device_name = getQParam("device_name", "<unkwown>"); // Friendly name naar de gebruiker toe
var model_client = new model_aut_client({ internal: true });
var client_data = api2.GET(model_client, { filter: { "code": client_id } }); // sp moet er dan zijn voor Service Provider
if (!client_data && client_id == "FCLTAPP1") // Voor FCLTAPP1 ondersteunen we auto-create
@@ -46,7 +48,7 @@ var JSON_Result = true;
client_data = api2.GET(model_client, result.key );
}
if (!client_data)
INTERNAL_ERROR_MISSING_SP;
shared.internal_error("Client-registration for {0} not found".format(client_id));
var model_client_perslid = new model_aut_client_perslid({ internal: true });
// Soms nieuwe cp_data maken. Het kan zijn dat je een ander device aan het registreren bent
@@ -56,6 +58,7 @@ var JSON_Result = true;
var cp_data = { "autclient" : client_data.id,
"scope" : "*",
"device_id" : device_id,
"device_name" : device_name,
"refreshtoken": '1$' + customerId + "_" + shared.random(32), // unused yet
"refreshdate" : new Date(),
"accesstoken" : '1$' + customerId + "_" + shared.random(32), // Does not expire yet?
@@ -65,7 +68,7 @@ var JSON_Result = true;
}
var result = model_client_perslid.REST_POST({}, cp_data);
// "App {0} aanmelding voor {1}/{2}";
shared.trackaction("PRSLOG", user_key, L("lcl_client_perslid_registered").format(client_id, getQParam("device_name", "<unkwown>"), device_id));
shared.trackaction("PRSLOG", user_key, L("lcl_client_perslid_registered").format(client_id, device_name, device_id));
cp_data = api2.GET(model_client_perslid, result.key );
}
@@ -91,6 +94,11 @@ var JSON_Result = true;
"issued_at": Math.floor(cp_data.accessdate.getTime() / 1000)
// "refresh_url": HTTP.urlzelf() + "/appl/aut/getapptoken.asp?client_id={0}&auth={1}".format(sp, spp_data.refreshtoken)
}
// een accesstoken wordt eventueel weer opgevangen in loginTry via http header X-FACILITOR-ACCESS-TOKEN
Session("aut_client_key") = cp_data.autclient.id;
Session("aut_client_name") = cp_data.autclient.name;
Response.Write(JSON.stringify(result));
Response.End;
%>

View File

@@ -6,11 +6,24 @@
Met vernieuwde kennis zou ik dit bestand authenticate.asp noemen
We weten niet wie de gebruiker is.
Probeer op allerlei manieren SSO
Probeer op allerlei manieren te authentiseren
Als het lukt geven we een user_key terug in Session("user_key");
Als het niet lukt zal doorgaans door common.inc verder gegaan worden in de interactieve Logon.asp
LET OP: Dit bestand wordt via Server.Transfer vanuit Common.inc aangeroepen
We onderscheiden twee soorten authenticatie
Statefull
Dit is voor een interactieve gebruiker met een browser. Initieel wordt op
allerlei manieren authenticatie geprobeerd maar daarna wordt de user_key
in een Session opgeslagen en de volgende keer wordt via een Session-coolie
vanuit die session de authenticatie gedaan
In prs_perslid_login wordt het laatste moment van inloggen bijgewrkt
Er wordt een fac_session record aangemaakt (waar we verder weinig mee doen)
Stateless
Dit is voor API aanroepen. ELKE aanroep komt de authenticatie opnieuw
mee. Dit wordt niet geregistreerd in prs_perslid_login
Er wordt een Session.abandon gedaan om niet te veel IIS sessies te houden
*/
DOCTYPE_Disable = 1;
ANONYMOUS_Allowed = 1;
@@ -46,6 +59,47 @@ if (typeof Session("sso_sgf") == "string") // Vanuit FACWS001-portal/ sso_sgf.as
Session.Contents.Remove("sso_sgf_realuser");
}
// De stateless varianten proberen we eerst, die worden tenslotte potentieel vaak uitgevoerd
if (user_key < 0)
{
var APIKEY;
if (S("fac_api_key_in_url"))
APIKEY = getQParam("APIKEY", "");
if (!APIKEY && Request.ServerVariables("HTTP_X_FACILITOR_API_KEY").Count)
APIKEY = String(Request.ServerVariables("HTTP_X_FACILITOR_API_KEY")); // Meegegeven als X-FACILITOR-API-Key
if (APIKEY)
{
var sql = "SELECT prs_perslid_key, prs_perslid_naam, prs_perslid_oslogin"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_verwijder IS NULL"
+ " AND prs_perslid_apikey = " + safe.quoted_sql(APIKEY);
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
__Log("API2 User is: {0} ({1})".format(oRs("prs_perslid_naam").Value, oRs("prs_perslid_oslogin").Value));
doLoginStateless(oRs("prs_perslid_key").Value);
}
// else negeren
oRs.Close()
}
}
if (user_key < 0)
{
var auth = String(Request.ServerVariables("HTTP_AUTHORIZATION"));
if (auth.match(/^Basic /i))
{
var b64 = auth.substring(6);
var plain = decode_b64(b64);
if (plain.split(":").length > 1)
{
var ww = plain.split(":");
ww.shift();
tryLogin(plain.split(":")[0], ww.join(":"), { stateless: true }); // Behoudt eventuele ':' in wachtwoord
}
}
}
if (user_key < 0)
SimpleSSO(); // de base64 simple sso
@@ -64,24 +118,7 @@ if (user_key < 0) // Probeer de user_key uit een cookie te halen
if (user_key < 0)
{
var auth = String(Request.ServerVariables("HTTP_AUTHORIZATION"));
if (auth.match(/^Basic /))
{
__Log("Found Authorization: Basic");
var b64 = auth.substring(6);
var plain = decode_b64(b64);
if (plain.split(":").length > 1)
{
var ww = plain.split(":");
ww.shift();
tryLogin(plain.split(":")[0], ww.join(":")); // Behoudt eventuele ':' in wachtwoord
}
}
}
if (user_key < 0)
{
var auth = String(Request.ServerVariables("HTTP_X_FACILITOR_ACCESS_TOKEN"));
var auth = String(Request.ServerVariables("HTTP_X_FACILITOR_ACCESS_TOKEN")); // Deze is aangemaakt in /aut/getapptoken.asp
if (auth.match(/^1\$/)) // Mode 1$xxxxxxx
{
__Log("Found HTTP_X_FACILITOR_ACCESS_TOKEN");
@@ -92,6 +129,8 @@ if (user_key < 0)
{
doLogin(cp_data.person.id);
model_client_perslid.REST_PUT({}, { login: new Date() }, cp_data.id);
Session("aut_client_key") = cp_data.autclient.id;
Session("aut_client_name") = cp_data.autclient.name;
}
}
}
@@ -269,7 +308,7 @@ if (user_key < 0 && APIname)
var API = new API_func(); // controleert vanzelf
if (API.apidata.prs_perslid_key)
doLogin(API.apidata.prs_perslid_key, { noFacSession: true });
doLogin(API.apidata.prs_perslid_key, { stateless: true });
}
// LogOff.asp kan Session("no_sso") gezet hebben
@@ -294,8 +333,40 @@ if (user_key < 0 && S("os_logon")
IntegratedSSO(); // Voor licentieklanten
}
//if (user_key < 0)
// trySSO("DEFAULT"); // zal je standaard naar het loginscherm sturen
// Tenslotte proberen we automatische iDP's
if (user_key < 0
&& typeof Session("no_sso") == "undefined"
&& !Request.ServerVariables("HTTP_X_FACILITOR_API_KEY").Count
&& !Request.QueryString("APIKEY").Count)
{
var ip = String(Request.ServerVariables("REMOTE_ADDR"));
var sql = "SELECT aut_idp_code"
+ " , aut_idp_ipfilter"
+ " FROM aut_idp"
+ " WHERE aut_idp_internal = 0"
+ " AND aut_idp_ipauto = 1"
+ " AND aut_idp_ipfilter IS NOT NULL"
+ " ORDER BY aut_idp_ipfilter"; // liefst wil ik sorteren met CIDR met de meeste significante bits (specifiekste) eerst?
var oRs = Oracle.Execute(sql);
while (user_key < 0 && !oRs.Eof)
{
var ip_restrict = oRs("aut_idp_ipfilter").Value;
var ip_ok = IP.inAnySubnet(ip, ip_restrict);
if (IP.inAnySubnet(ip, ip_restrict))
trySSO(oRs("aut_idp_code").Value);
oRs.MoveNext();
}
oRs.Close();
}
if (user_key > 0) // dan hebben we (nu) een nieuwe user
{
// Alvast nieuwe user_key loggen zodat je ziet wie er inlogt.
if (typeof NO_ADDHEADER == "undefined" && Request.Servervariables("HTTP_FCLT_VERSION").Count > 0)
{ // wordt opgepikt door FCLTAPI.DLL voor in de logging en daarna gestript. Niet in Fiddler dus
Response.AddHeader ("FCLT_USERID", customerId + "\\" + String(user_key));
}
}
__Log("== Leaving loginTry.asp ==");

View File

@@ -183,7 +183,7 @@
}
else
{
BLOCK_START("besInfo" , L("lcl_bes_key") + "&nbsp;" + S("bes_bestelling_prefix") + bes_bestelling.bes_key + (bes_bestelling.parent_key? "*" : ""));
BLOCK_START("besInfo" , L("lcl_bes_key") + " " + S("bes_bestelling_prefix") + bes_bestelling.bes_key + (bes_bestelling.parent_key? "*" : ""));
if (bes_bestelling.satisfaction)
AFIELDTR("fld", L("lcl_res_beoordeling"), "", "", {rating: {score: bes_bestelling.satisfaction, note: bes_bestelling.satisfaction_op} });
@@ -394,12 +394,6 @@
var staffel_info = bes.staffel_info(srtdeel_arr, amount_arr);
// Kan ik zelf fiatteren?: true: totaalbedrag <= can_selfapprove
// false totaalbedrag > can_selfapprove
// deze mag/hoeft niet meer te fiatteren
var exclude_fiatter =
"COALESCE(b.bes_bestelling_fiat_user, " + (staffel_info.totaalbedrag <= S("can_selfapprove")? -1 : "b.prs_perslid_key") + ") ";
// Get info of existing BES_BESTELLING
var sql = "SELECT b.bes_bestelling_status"
+ " , b.bes_bestelling_datum"
@@ -417,7 +411,6 @@
+ " , m.mld_adres_key"
+ " , b.bes_bestelling_leverdatum"
+ " , b.bes_bestelling_retourvan_key"
+ " , prs.getkpverantwoordelijke (b.prs_kostenplaats_key, " + S("prs_approvemethod") + ", " + exclude_fiatter + ") fiatteur_key"
+ " , b.bes_bestelling_fiat_user"
+ " , b.bes_bestelling_korting"
+ " , b.bes_bestelling_levkosten"
@@ -461,7 +454,6 @@
afleverruimte : oRs("bes_bestelling_plaats").Value,
rfoDeliverydate : new Date(oRs("bes_bestelling_leverdatum").Value),
rfoRetourVan : oRs("bes_bestelling_retourvan_key").Value,
fiatteur_key : oRs("fiatteur_key").Value, // degene die het moet doen
bes_bestelling_fiat_user : oRs("bes_bestelling_fiat_user").Value, // degene die al geweest is
rfoBesKosten : oRs("bes_bestelling_korting").Value,
rfoLevKosten : oRs("bes_bestelling_levkosten").Value,
@@ -479,10 +471,17 @@
}
oRs.close();
// Kan ik zelf fiatteren?: true: totaalbedrag <= can_selfapprove
// false totaalbedrag > can_selfapprove
// deze mag/hoeft niet meer te fiatteren
var exclude_fiatter =
bes_bestelling.bes_bestelling_fiat_user || (staffel_info.totaalbedrag <= S("can_selfapprove")? -1 : bes_bestelling.perslid_key);
// Nu de info die indirect uit de bestelaanvraag regels afgeleid moet worden
// Merk op dat het datamodel bestellingen uit meerdere catalogi ondersteund maar
// de interface niet. Daarom kan hieronder de MAX(bsg.ins_discipline_key) om <20><>n record te krijgen
var sql = "SELECT MAX(bsg.ins_discipline_key) ins_discipline_key"
+ " , prs.getfiatteur (" + bes_bestelling.kostenplaats_key + ", " + exclude_fiatter + ", " + staffel_info.totaalbedrag + ", MAX(bsg.ins_discipline_key)) fiatteur_key"
+ " , SUM(bi.bes_bestelling_item_aantal * bi.bes_bestelling_item_prijs) totaal"
+ " , SUM(bi.bes_bestelling_item_aantalontv) aantalontv"
+ " , MAX(bsg.bes_srtgroep_key) bes_srtgroep_key" // Wordt gebruikt tbv. singlegroep en dan is er maar eentje
@@ -510,10 +509,11 @@
if (oRs("ins_discipline_key").Value == null)
shared.internal_error("BES: no item lines.");
bes_bestelling.dis_key = oRs("ins_discipline_key").Value,
bes_bestelling.srtgroep = oRs("bes_srtgroep_key").Value,
bes_bestelling.singlegroep = oRs("singlegroep").Value == 1,
bes_bestelling.inclBTW = oRs("inclBTW").Value || 0,
bes_bestelling.dis_key = oRs("ins_discipline_key").Value;
bes_bestelling.fiatteur_key = oRs("fiatteur_key").Value; // degene die het moet doen
bes_bestelling.srtgroep = oRs("bes_srtgroep_key").Value;
bes_bestelling.singlegroep = oRs("singlegroep").Value == 1;
bes_bestelling.inclBTW = oRs("inclBTW").Value || 0;
bes_bestelling.totaal = oRs("totaal").Value || 0;
bes_bestelling.aantalontv = oRs("aantalontv").Value || 0;
if (oRs("aantal_bedrijf").Value == 1) // Anders te ingewikkeld
@@ -1366,37 +1366,29 @@
getApprover: function(params)
{ // Bepaalde de fiatteur (KP verantwoordelijke of KPG verantwoordlijke).
// Levert altijd de eerste fiatteur op maar controleert wel alvast of (als zijn
// budget niet echt genoeg is) of de KPG verantwoordelijke wel voldoende budget
// heeft. Anders stokt het verderop in het proces.
var prs_key = params.prs_key;
var prs_key_voor = params.prs_key_voor;
var dis_key = params.dis_key;
var kp_key = params.kp_key;
var totaalbedrag = params.totaalbedrag;
var bes_bestelling = params.bes_bestelling;
var bes_disc_info = params.bes_disc_info;
var pgb = bes_disc_info.disc_params_pgb;
var autoacceptrfo = bes_disc_info.disc_params_autoacceptrfo;
var isFE = params.isFE;
var oldStatus = params.oldStatus;
var act_mode = params.act_mode;
var approver_key = -1;
if (prs_key > 0 && totaalbedrag > S("can_selfapprove"))
approver_key = prs.getKpVerantwoordelijkeExcept(kp_key, prs_key);
else
approver_key = prs.getKpVerantwoordelijke(kp_key);
var approver_key = prs.getFiatteur(kp_key, totaalbedrag > S("can_selfapprove")?prs_key:-1, totaalbedrag, dis_key);
__Log('Eerstgevonden fiatteur: ' + approver_key);
if (approver_key == -1) {
// geen fiatteur gevonden, bestellen niet mogelijk
__Log('bestelling afgebroken');
abort_with_warning(L("lcl_bes_no_fiatteur"));
}
if (budget.exceeds_profiel(totaalbedrag, approver_key, dis_key))
// Bij methode 3 heeft getfiatteur() al gekeken naar de profielen en heeft daarbij al
// tot en met de kpgroepverantwoordelijke gekeken. Als de opgeleverde perslid die
// kpgroepverantw is, ga je hier geen hogere meer vinden. Niet doen dan dus.
if (S("prs_approvemethod") != 3 && budget.exceeds_profiel(totaalbedrag, approver_key, dis_key))
{ // de gevonden fiatteur heeft onvoldoende profiel, is er een hogere (kpngroepverantwoordelijke)
// Let wel: alleen controle of hij er bestaat. Wie het is doen we nog niets mee hier.
__Log('voldoet niet');
var nextapprover_key = prs.getKpVerantwoordelijkeExcept(kp_key, approver_key);
var nextapprover_key = prs.getFiatteur(kp_key, approver_key, totaalbedrag, dis_key);
__Log('Vervolgensgevonden fiatteur: ' + nextapprover_key);
if (nextapprover_key == -1 || budget.exceeds_profiel(totaalbedrag, nextapprover_key, dis_key))
{
@@ -1529,7 +1521,7 @@
upsert_deel: function _upsert_deel(dis_key, params)
{
if (!("srtdeel_btw" in params))
params.srtdeel_btw = 21.0;
params.srtdeel_btw = 21.0; // Wordt vaak in custfunctions.wsc/hook bes_punch_receive gecorrigeerd
if (!("srtgroep_omschrijving" in params) && params.srtgroep_key > 0)
{ // upsert_srtdeel werkt alleen op basis van omschrijving, helaas (nog) niet op srtgroep_key
var sql = "SELECT bes_srtgroep_omschrijving"

View File

@@ -66,19 +66,23 @@ for (var i = 0; i < ingesloten.length; i++)
var totaal = ingesloten[i].totaal - ingesloten[i].rfoBesKosten + ingesloten[i].rfoLevKosten;
// als het valt binnen onze limiet (of eigenlijk: degene die nu moet fiatteren als we vervanger zijn) dan zijn we klaar
// TODO in de volgende versie (zie docu PF) meerlaags fiattering met prs.getfiatteur() vgl opdr_approve.asp
// NB: de fiatteur kan nu direct de kpg-er zijn
if (!budget.exceeds_profiel(totaal, ingesloten[i].fiatteur_key, ingesloten[i].dis_key))
{ // Klaar met fiatteren.
{
// Klaar met fiatteren.
bes.setbestellingstatus(ingesloten[i].bes_key, 3); // helemaal Gefiatteerd
// Afhankelijk van de fiatterings/acceptatie flow zijn dit de acties:
// 1) "Fiatteur -> "BESBOF": bes_disc_params_fiatflow = 0 (fiatteren en dan accepteren).
// 1) "Fiatteur -> BESBOF": bes_disc_params_fiatflow = 0 (fiatteren en dan accepteren).
// Als het totaalbedrag onder de eerste bestellimiet is hoeft niet geaccepteerd te worden.
// De status kan dan naar "Geaccepteerd(4)" of naar status "Besteld(5)" als de setting auto_order is gezet.
// Dit is de standaard flow.
// 2) "BESBOF -> Fiatteur": bes_disc_params_fiatflow = 1 (accepteren en dan fiatteren).
// De eventuele acceptatie heeft al plaatsgevonden. De status kan naar "Besteld(5)" als de setting auto_order is gezet.
if (ingesloten[i].disc_params_fiatflow == 0)
{ // "Fiatteur -> "BESBOF"
{ // "Fiatteur -> BESBOF"
if (ingesloten[i].totaal <= ingesloten[i].disc_params_bestellimiet)
{
bes.setbestellingstatus(ingesloten[i].bes_key, 4); // Geaccepteerd door BO
@@ -97,11 +101,13 @@ for (var i = 0; i < ingesloten.length; i++)
// Nog wel even tracken
shared.trackaction("BESFIT", ingesloten[i].bes_key);
// vervolgens naar kostenplaatsgroep fiatteur sturen
// vervolgens naar de volgende/kostenplaatsgroep fiatteur sturen
// Fiatteringsproces moet gevolgd worden op de naam van de "voor wie" (bestelling voor)
// Als bes_disc_params_for_others niet is gezet zijn perslid_key en perslid_key_voor identiek
// Haal de kostenplaatsgroep verantwoordelijke/fiatteur op. De kolom b.bes_bestelling_fiat_user is gevuld met de user_key).
sql = "SELECT prs.getkpverantwoordelijke (b.prs_kostenplaats_key, 1, COALESCE (b.bes_bestelling_fiat_user, -1)) kpg_fiatteur_key"
// Geen methode 3 dus bedrag/ discipline hoeft er niet in. Strikt genomen wordt hier gewoon de volgende bepaald omdat we de
// eerste uitsluiten, volgens de huidige structuren is dat de kpgverantwoordelijk maar dat is niet cruciaal.
sql = "SELECT prs.getfiatteur (b.prs_kostenplaats_key, COALESCE (b.bes_bestelling_fiat_user, -1), NULL, NULL) kpg_fiatteur_key"
+ " FROM bes_bestelling b"
+ " WHERE b.bes_bestelling_key = " + ingesloten[i].bes_key;
var oRs = Oracle.Execute(sql);

View File

@@ -155,7 +155,7 @@ var TransitParam = buildTransitParam(["klant_key", "srtprod_key", "srtprod_keys"
var prod = srtprod_keys.length + " L("lcl_producten")";
}
BLOCK_START("besWeging", safe.html(prod));
BLOCK_START("besWeging", prod);
ROFIELDTR("fld", L("lcl_company"), bedrijf);
RWFIELDTR("weging", "fld", L("lcl_bes_weging"), safe.editablefloat(weging), {datatype: "float", html: "onBlur='calcTotal()'"});
RWFIELDTR("prijs", "fld", L("lcl_bes_price_per_unity"), safe.editablefloat(prijs), {datatype: "float", html: "onBlur='calcTotal()'"});

View File

@@ -198,8 +198,7 @@ transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key",
newWindow = true;
%>
punchwindow = true; // voorkomt 'hot'
var wnd = window.open(punch_url);
try { wnd.focus(); } catch (e) { };
FcltMgr.windowopen(punch_url);
<% } else { %>
window.location.href=punch_url;
<% } %>

View File

@@ -52,8 +52,9 @@ var bes_supAddress = "";
function navigateToSupplier()
{
fwnd = window.open(bes_supAddress, 'Supplier','');
try { fwnd.focus(); } catch (e) { };
FcltMgr.windowopen(bes_supAddress);
// Unsafe:
// FcltMgr.windowopen(bes_supAddress, 'Supplier','');
}
function onChangeArtikelgroep()

View File

@@ -713,7 +713,7 @@ else // nieuwe bestelling. Defaults bepalen
label: L("lcl_delivery_address"),
adresKey: bes_bestelling.mld_adres_key,
emptyOption: "",
filtcode: "A",
filtercode: "A",
autlevel: ALGreadlevel,
onChange: "onChangeAdres",
readonly: aflever_readonly || (adres_key > 0 && bes_key < 0),
@@ -763,7 +763,7 @@ else // nieuwe bestelling. Defaults bepalen
<% // ======== BLOCK om itemregels toe te voegen ========
if (this_bes.canItemsChange)
{
BLOCK_START("besItemSel" , L("lcl_bes_selectieblok") + " " + safe.html(bes_disc_info.discipline_omschrijving) + " " + (bes_bestelling.inclBTW? L("lcl_shared_inclBTW") : L("lcl_shared_exclBTW")));
BLOCK_START("besItemSel" , L("lcl_bes_selectieblok") + " " + bes_disc_info.discipline_omschrijving + " " + (bes_bestelling.inclBTW? L("lcl_shared_inclBTW") : L("lcl_shared_exclBTW")));
if (bes_disc_info.isFreeArticle)
{

View File

@@ -214,7 +214,7 @@ var this_bestelopdr = bes.func_enabled_bestelopdracht(opdr_key);
label: L("lcl_bes_adres_lev"),
adresKey: bes_bestelopdr.mld_adres_key_lev,
emptyOption: (bes_bestelopdr.mld_adres_key_lev < 0? null : ""),
filtcode: "A",
filtercode: "A",
autlevel: authparams.ALGreadlevel
}) ;
@@ -223,7 +223,7 @@ var this_bestelopdr = bes.func_enabled_bestelopdracht(opdr_key);
label: L("lcl_bes_adres_fac"),
adresKey: bes_bestelopdr.mld_adres_key_fac,
emptyOption: (bes_bestelopdr.mld_adres_key_fac < 0? null : ""),
filtcode: "F",
filtercode: "F",
autlevel: authparams.ALGreadlevel
}) ;
RWTEXTAREATR("opmerk", "fldtxt", L("lcl_remark"), bes_bestelopdr.opmerking, {html: "rows='3'", suppressEmpty: true}); // Afhandeling, reden niet akkoord

View File

@@ -1704,11 +1704,11 @@ function bes_list (pautfunction, params)
+ " WHERE k.prs_kostenplaats_key = b.prs_kostenplaats_key) budgethouder"
+ " , SUM(i.bes_bestelling_item_aantal) aantal"
+ " , MAX(bes_bestelopdr_item_key) isordered"
+ " , (SELECT " + S("prs_pers_string")
+ " FROM prs_perslid p"
+ " WHERE p.prs_perslid_key = prs.getkpverantwoordelijke (b.prs_kostenplaats_key, " + S("prs_approvemethod") + ", " + exclude_fiatter + ")) fiatteur"
+ " , (SELECT " + S("prs_pers_string")
+ " FROM prs_perslid p"
+ " , (SELECT prs_perslid_naam_full"
+ " FROM prs_v_perslid_fullnames_all p"
+ " WHERE p.prs_perslid_key = prs.getfiatteur (b.prs_kostenplaats_key, " + exclude_fiatter + ", " + totaalbedrag + ", bd.ins_discipline_key)) fiatteur"
+ " , (SELECT prs_perslid_naam_full"
+ " FROM prs_v_perslid_fullnames_all p"
+ " WHERE p.prs_perslid_key = b.bes_bestelling_fiat_user) fiat_user"
+ " , bd.ins_discipline_key"
+ " , l.alg_locatie_key"
@@ -1902,7 +1902,7 @@ function bes_list (pautfunction, params)
var fiatflow = oRs("bes_disc_params_fiatflow").Value;
if (((fiatflow == 0 && m_stat == 4) || (fiatflow == 1 && m_stat == 3)) &&
!oRs("isordered").Value)
return fncolStatusOmschr(oRs) + "<br>Nog geen opdracht"; // + L("lcl_bes_no_order_yet");
return fncolStatusOmschr(oRs) + "<br>" + L("lcl_bes_no_order_yet");
else
return fncolStatusOmschr(oRs);
}

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